Область техники, к которой относится изобретения
Настоящий документ относится к технологиям кодирования видео и изображений.
Уровень техники
Цифровое видео занимает наибольшую долю полосы частот в сети Интернет и в других цифровых сетях связи. Поскольку число присоединенных пользовательских устройств, способных принимать и представлять видео на дисплее, увеличивается, ожидается, что потребности в полосе для использования цифровым видео будут продолжать расти.
Раскрытие сущности изобретения
Предлагаемая технология может быть использована в вариантах декодирующих устройств или кодирующих устройств для видео или изображений, в которых применяется кодирование в режиме палитры.
Согласно одному примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразования между блоком видеообласти видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается согласно первому правилу форматирования, которое указывает, сообщать ли первую индикацию использования режима палитры в форме сигнализации для блока, и второму правилу форматирования, которое указывает позицию первой индикации относительно второй индикации использования режима прогнозирования для этого блока.
Согласно одному примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между блоком видеообласти видео и представлением видео в виде потока битов данных, режим прогнозирования на основе одного или более допустимых режимов прогнозирования, которые включат в себя по меньшей мере режим палитры, для блока. Индикация использования режима палитры определяется согласно режиму прогнозирования. Способ содержит также этап, на котором выполняют преобразование на основе одного или более допустимых режимов прогнозирования.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этап, на котором выполняют преобразование между блоком видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается в соответствии с правилом форматирования, которое указывает первую индикацию использования режима палитры и вторую индикацию использования режима внутрикадрового копирования блоков (intra block copy (IBC)), которые передаются в виде сигнализации зависимыми друг от друга.
Согласно другому примеру аспекта предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации использования режима палитры в представлении в виде потока битов данных на основе размера указанного блока; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации для использования режима внутрикадрового копирования блоков (IBC) в представлении в виде потока битов данных на основе размера указанного блока и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим палитры для блока, на основе второй индикации для видеообласти, содержащей рассматриваемый блок; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим внутрикадрового копирования блоков (IBC) для блока, на основе второй индикации для видеообласти, содержащей указанный блок; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этапы, на которых определяют, что для обработки единицы транформации, блока кодирования или области подлежит использованию режим палитры, причем использование режима палитры кодируется отдельно от режима прогнозирования, и выполняют дальнейшую обработку единицы трансформации, блока кодирования или области с использованием режима палитры.
Согласно другому примерному аспекту раскрыт способ обработки видео. Способ содержит этапы, на которых определяют, для текущего видеоблока, что отсчет, ассоциированный с одной позицией палитры режима палитры, имеет первую битовую глубину, отличную от второй битовой глубины, ассоциированной с текущим видеоблоком, и выполняют, на основе указанной по меньшей мере одной позиции палитры, дальнейшую обработку текущего видеоблока.
Согласно еще одному примерному аспекту раскрыт другой способ обработки видео. Способ содержит этап, на котором выполняют преобразование между текущим видеоблоком изображения видео и представлением видео в виде потока битов данных, причем информация о том, используется ли режим внутрикадрового копирования блоков при преобразовании, принимается в виде сигнализации в представлении в виде потока битов данных или выводится на основе условий кодирования текущего видеоблока, причем режим внутрикадрового копирования блоков содержит кодирование текущего видеоблока на основе другого видеоблока в изображении.
Согласно еще одному примерному аспекту раскрыт другой способ обработки видео. Способ содержит этапы, на которых определяют, следует ли применить деблокирующий фильтр в процессе преобразования текущего видеоблока изображения видео, причем текущий видеоблок кодируется с использованием кодирования в режиме палитры, в котором текущий видеоблок представлен с использованием значений репрезентативных отсчетов, число которых меньше общего числа пикселей в текущем видеоблоке, и выполняют преобразование так, что деблокирующий фильтр применяется в случае, когда определено, что подлежит применению деблокирующий фильтр.
Согласно еще одному другому примерному аспекту раскрыт другой способ обработки видео. Способ содержит этапы, на которых определяют процедуру квантования или процедуру обратного квантования для использования в процессе преобразования между текущим видеоблоком изображения видео и представлением видео в виде потока битов данных, причем текущий видеоблок кодируется с использованием кодирования в режиме палитры, в котором текущий видеоблок представлен с использованием значений репрезентативных отсчетов, число которых меньше общего числа пикселей в текущем видеоблоке, и выполняют преобразование на основе указанного определения процедуры квантования или процедуры обратного квантования.
Согласно еще одному другому примеру аспекта, предложен другой способ обработки видео. Этот способ содержит определение, для преобразования между текущим видео блоком видео, содержащего множество видео блоков, и представлением этого видео в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве блока, кодируемого с применением внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или величин репрезентативных отсчетов.
Согласно еще одному другому примеру аспекта, предложен другой способ обработки видео. Этот способ содержит
Согласно еще одному другому примеру аспекта, предложен другой способ обработки видео. Этот способ содержит определение, для преобразования между текущим видео блоком видео, содержащего множество видео блоков, и представлением этого видео в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодировании палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве блока, кодируемого не с применением внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или величин репрезентативных отсчетов.
Согласно еще одному другому примеру аспекта, предложен другой способ обработки видео. Этот способ содержит определение, для преобразования между текущим видео блоком видео, содержащего множество видео блоков, и представлением этого видео в форме потока битов данных, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видео блока в качестве недоступного блока, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или величин репрезентативных отсчетов.
Согласно еще одному другому примеру аспекта, предложен другой способ обработки видео. Этот способ содержит определение, в ходе преобразования между текущим видео блоком и представлением в форме потока битов данных этого текущего видео блока, что текущий видео блок представляет собой блок, кодируемый в режиме кодирования палитры, определение, на основе того, что текущий видео блок является блоком, кодируемым в режиме кодирования палитры, диапазона секций (двоичных разрядов) с контекстно-зависимым кодированием, используемых для преобразования, и осуществление преобразования на основе диапазона секций (разрядов) с контекстно-зависимым кодированием.
Согласно еще одному другому примеру аспекта, описанный выше способ может быть реализован посредством видео кодирующего устройства, содержащего процессор.
Согласно еще одному другому примеру аспекта, эти способы могут быть реализованы в форме выполняемых процессором команд и сохранены на читаемом компьютером носителе программы.
Эти и другие аспекты дополнительно описаны в настоящем документе.
Краткое описание чертежей
Фиг. 1 показывает пример внутрикадрового копирования блоков.
Фиг. 2 показывает пример блока, кодированного в режиме палитры.
Фиг. 3 показывает пример использования предиктора палитры для передачи входных позиций в палитре в форме.
Фиг. 4 показывает пример горизонтального и вертикального поперечного сканирования.
Фиг. 5 показывает пример кодирования индексов палитры.
Фиг. 6 представляет блок-схему примера устройства для обработки видео.
Фиг. 7 показывает блок-схему примера реализации видео кодирующего устройства.
Фиг. 8 представляет логическую схему примера способа обработки видео.
Фиг. 9 показывает пример пикселей, вовлеченных в принятие решения о включении/выключении фильтра и в выбор сильного/слабого фильтра.
Фиг. 10 показывает пример бинаризации четырех режимов.
Фиг. 11 показывает пример бинаризации четырех режимов.
Фиг. 12 показывает примеры 67 направлений для внутрикадрового прогнозирования.
Фиг. 13 показывает примеры соседних видео блоков.
Фиг. 14 показывает примеры форм ALF-фильтров (цветностная составляющая: 5×5 ромб, яркостная составляющая: 7×7 ромб).
Фиг. 15 (a) показывает примеры вычислений субдискретизированного оператора Лапласа для вертикального градиента.
Фиг. 15 (b) показывает примеры вычислений субдискретизированного оператора Лапласа для горизонтального градиента.
Фиг. 15 (c) показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.
Фиг. 15 (d) показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.
Фиг. 16 показывает примеры модифицированной классификации блоков по виртуальным границам.
Фиг. 17 показывает примеры модифицированной ALF-фильтрации для яркостной составляющей на виртуальных границах.
Фиг. 18 показывает пример четырех одномерных (1-D) 3-пиксельных структур для классификации пикселей в структуре со смещением края (EO).
Фиг. 19 показывает пример четырех полос, сгруппированных вместе и представленный позицией стартовой полосы.
Фиг. 20 показывает пример верхнего и левого соседних блоков, используемых для вывода весовых коэффициентов для режима прогнозирования CIIP.
Фиг. 21 показывает пример архитектуры для отображения яркостной составляющей с масштабированием цветностной составляющей.
Фиг. 22 показывает пример порядка сканирования для блока размером 4x4.
Фиг. 23 показывает другой пример порядка сканирования для блока размером 4x4.
Фиг. 24 представляет блок-схему примера обработки видео, в которой может быть реализована предлагаемая технология.
Фиг. 25 показывает представление логической схемы способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 26 показывает представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 27 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 28 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 29 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 30 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 31 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Осуществление изобретения
Настоящий документ предлагает различные способы, которые могут быть использованы декодирующими устройствами для декодирования изображения или потока битов данных видео с целью улучшения качества расширенного или декодированного цифрового видео или изображений. Для краткости, термин «видео» используется здесь для того, чтобы охватывать как последовательность изображений (традиционно называемую «видео»), так и индивидуальные изображения. Более того, видео кодирующее устройство может также реализовать эти способы в процессе кодирования с целью реконструировать декодированные кадры, используемые для дальнейшего кодирования.
Заголовки разделов в настоящем документе используются для облегчения понимания и не ограничивают варианты и способы только соответствующими разделами. Поэтому, варианты из одного раздела можно комбинировать с вариантами из других разделов.
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 выводят следующим образом:
Таким образом, случай, когда опорный блок накладывается на текущий блок или опорный блок находится вне изображения, не возникнет.Поэтому, нет необходимости «заполнять» опорный или прогнозируемый блок.
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 учитывают только тогда, когда какая-либо из единиц 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 Кодирование входных позиций палитры
Для кодирования входных позиций палитры поддерживают предиктор палитры. Максимальный размер палитры, равно как и предиктор палитры, сообщают в виде сигнализации в наборе 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 затем заменяют посредством линейной интерполяции следующим образом:
- pi'=(fi Middles,t+(64 - fi) Ps+32)>>6), усечено до pi±tcPDi
- qi'=(gi Middles,t+(64 - gi) Qs+32)>>6), усечено до qi±tcPDi
где слагаемые tcPDi и tcPDj определяют зависимое от положения усечение, описываемое в Разделе 2.3.6 и параметры gj, fi, Middles.t, Ps и Qs приведены в таблице 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
Предлагаемый фильтр для цветностной составляющей осуществляет деблокирование на сетке отсчетов 4x4 цветностной составляющей.
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’i и 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 && край !=0) {
если (!(implicitTU && (край=(64 / 4))))
если (край=2 || край=(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 учитываются следующие три аспекта:
i. Режимы внутрикадрового прогнозирования по умолчанию
ii. Соседние режимы внутрикадрового прогнозирования
iii. Выводимые режимы внутрикадрового прогнозирования
Унифицированный список 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-режима для цветностной составляющей непосредственно «наследуется» режим внутрикадрового прогнозирования для соответствующего блока яркостной составляющей, покрывающего центр текущего блока цветностной составляющей.
(0<=X<=66)
2.8 Дифференциальная импульсно-кодовая модуляция квантованного блока остатка (Quantized residual Block Differential Pulse-code Modulation(QR-BDPCM))
В документе JVET-M0413, предложен способ дифференциальной импульсно-кодовой модуляции квантованного блока остатка (QR-BDPCM) для эффективного кодирования контента экрана.
Направления прогнозирования, используемые при модуляции QR-BDPCM, могут соответствовать вертикальным и горизонтальным режимам прогнозирования. Внутрикадровое прогнозирование осуществляется для всего блока путем копирования отсчетов в направлении прогнозирования (горизонтальное или вертикальное прогнозирование). Остаток квантуют и разницу между квантованным остатком и квантованной величиной его предиктора (горизонтального или вертикального) кодируют.Это может быть описано следующим образом: Для блока размером M (строк) (N (столбцов), пусть ri,j, 0 ≤ i ≤ (M-1), 0 ≤ j ≤ (N-1) представляет собой остаток прогнозирования после осуществления внутрикадрового прогнозирования в горизонтальном направлении (копирование величины соседнего слева пикселя по прогнозируемому блоку строка за строкой) или в вертикальном направлении (копирование соседней сверху строки на каждую строку в прогнозируемом блоке) с использованием нефильтрованных отсчетов сверху или слева от отсчетов на границе блока. Пусть Q(ri,j), 0 ≤ i ≤ (M-1), 0 ≤ j ≤ (N-1) обозначает квантованную версию остатка ri,j, где остаток представляет собой разность между величинами из исходного блока и прогнозируемого блока. Затем модуляцию DPCM блока применяют к квантованным отсчетам остатка, результатом чего является модифицированная матрица размером M (N с элементами . Когда в виде сигнализации сообщают о модуляции BDPCM в вертикальном направлении:
Для горизонтального прогнозирования применяются аналогичные правила, и квантованные отсчеты остатка получают по формуле
Квантованные отсчеты остатка передают декодирующему устройству.
На стороне декодирующего устройства приведенные выше вычисления инвертируют для получения Q(ri,j), 0 ≤ i ≤ (M-1), 0 ≤ j ≤ (N-1). Для случая вертикального прогнозирования,
Для горизонтального случая,
Обратно квантованные остатки, Q-1(Q(ri,j)), добавляют к прогнозируемым величинам в блоке при внутрикадровом прогнозировании для получения реконструированных величин отсчетов.
Главным преимуществом этой схемы является то, что обратная модуляция DPCM может быть выполнена в реальном времени («на лету») в процессе синтаксического анализа коэффициентов просто путем добавления предиктора в ходе синтаксического анализа этих коэффициентов или после такого синтаксического анализа.
2.9 Адаптивный контурный фильтр
В документе VTM5, применяется адаптивный контурный фильтр (Adaptive Loop Filter (ALF)) с адаптацией этого фильтра на блочной основе. Для яркостной составляющей выбирают один из 25 фильтров для каждого блока размером 4×4, на основе направления и активности локальных градиентов.
2.9.1 Форма фильтра
1.
2.
2.1.
2.2.
2.3.
2.4.
2.5.
2.5.1.
1.1.2.
В документе VTM5, используют два фильтра в форме ромба (как показано на фиг. 14). Форма ромба размером 7×7 применяется для яркостной составляющей, и форма ромба размером 5×5 применяется для цветностных составляющих.
2.9.2 Классификация блоков
Для яркостной составляющей каждый из блоков 4×4 классифицируют и относят к одному из 25 классов. Индекс C классификации выводят, на основе направленности D и квантованной величины активности Â, следующим образом:
Для вычисления параметров D и Â, сначала вычисляют градиенты для горизонтального, вертикального и двух диагональных направлений с использованием одномерного (1-D) оператора Лапласа:
Где индексы i и j обозначают координаты верхнего левого отсчета в блоке 4×4 и R(i,j) обозначает реконструированный с координатами (i,j).
Для уменьшения сложности классификации блока применяют вычисление субдискретизированного одномерного оператора Лапласа. Как показано на фиг. 15 (a)-(d), одни и те же субдискретизированные позиции используются для вычисления градиентов во всех направлениях.
Затем максимальные и минимальные величины градиентов в горизонтальном и вертикальном направлениях устанавливают в виде:
Максимальные и минимальные величины градиента в двух диагональных направлениях устанавливают в виде:
Для вывода величины направленности D, эти величины сравнивают одним с другими и с двумя пороговыми величинами t1 и t2:
Этап 1. Если оба соотношения и являются истинными, направленность D устанавливают равной 0.
Этап 2. Если , далее продолжают от Этапа 3; в противном случае продолжают от Этапа 4.
Этап 3. Если , устанавливают равной 2; в противном случае D устанавливают равной 1.
Этап 4. Если , D устанавливают равной 4; в противном случае D устанавливают равной .
Величину активности A вычисляют как:
Величину A далее квантуют в диапазон 0 - 4, включительно, и квантованную величину обозначают как Â.
Для цветностных составляющих в изображении никакие способы классификации не применяются, т.е. единственный набор коэффициентов фильтрации ALF применяется для каждой цветностной составляющей.
2.9.3. Геометрическая трансформация коэффициентов фильтрации и уровней усечения
Прежде фильтрации каждого блока размером 4×4 яркостной составляющей, к коэффициентам f(k,l) фильтрации и к уровням c(k,l) усечения фильтра применяют геометрические трансформации, такие как поворот, либо переворачивание вокруг диагональной или вертикальной оси, в зависимости от величины градиента, вычисленной для рассматриваемого блока. Это эквивалентно применению такой трансформации к области поддержки фильтра. Идея состоит в том, чтобы сделать разные блоки, к которым применяется фильтрация ALF, более похожими один на другой путем совмещения их направленностей.
Введены три вида геометрических трансформаций, включая переворачивание вокруг диагонали, переворачивание вокруг вертикали и поворот:
Переворачивание вокруг диагонали:
Переворачивание вокруг вертикали:
Поворот:
где K обозначает размер фильтра и 0 ≤ k, l ≤ K-1 обозначают координаты коэффициентов фильтрации, так что пункт (0,0) находится в верхнем левом углу и пункт (K-1), находится в нижнем правом углу. Указанные трансформации применяют к коэффициентам f(k, l) фильтрации и к уровням c(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, фильтруют каждый отсчет R(i,j) в единице CU, результатом чего является величина R'(i,j) отсчета, как показано ниже,
где f(k,l) обозначает декодированные коэффициенты фильтрации, K(x,y) обозначает функцию усечения и c(k,l) обозначает декодированные параметры усечения. Переменные k и l варьируются между и , где L обозначает длину фильтра. Функция усечения имеет вид K(x,y)=min(y,max(-y,x)), что соответствует функции Clip3(-y, y, x).
2.9.6 Процедура фильтрации виртуальной границы для уменьшения буфера строки
В документе VTM5, для уменьшения требований к буферу строки для фильтра ALF, используют модифицированную классификацию блоков и фильтрацию применительно к отсчетам возле горизонтальных границ единиц CTU. Для этой цели виртуальную границу определяют как строку путем сдвига горизонтальной границы единицы CTU с “N” отсчетами, как показано на фиг. 16, где N равно 4 для яркостной составляющей и равно 2 для цветностной составляющей.
Модифицированная классификация блоков применяется к яркостной составляющей, как показано на фиг. 2 - 11. Для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4x4 выше виртуальной границы используются только отсчеты, расположенные выше виртуальной границы. Аналогично, для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4x4 ниже виртуальной границы используются только отсчеты, расположенные ниже виртуальной границы. Квантование величины активности 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, Pinter, получают с использованием той же самой процедуры межкадрового прогнозирования, какая применяется в обычном режиме объединения; и сигнал Pintra внутрикадрового прогнозирования получают с использованием обычной процедуры внутрикадрового прогнозирования с планарным режимом. Затем сигналы внутрикадрового и межкадрового прогнозирования комбинируют с применением взвешенного усреднения, где весовые коэффициенты вычисляют в зависимости от режимов кодирования для верхнего и левого соседних блоков (показаны на фиг. 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. Индикация использования режима палитры для единицы преобразования/единицы прогнозирования/блока кодирования/области может быть кодирована отдельно от режима прогнозирования.
а. В одном примере, указание режима прогнозирования может быть кодировано прежде индикации использования палитры.
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. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования, может быть дополнительно передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом палитры или нет.
1. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда режим палитры активизирован для одной единицы данных видео (например, последовательности/изображения/группы плиток/плитки).
2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока.
3. Кроме того, в качестве альтернативы, если режим не является режимом палитры, один флаг может быть далее передан в виде сигнализации для индикации, является ли этот режим режимом модуляции ИКМ или нет.
4. В одном из примеров, указанный «другой флаг» может быть подвергнут контекстному кодированию в соответствии с информацией о соседних блоках. В качестве альтернативы, этот «другой флаг» может быть подвергнут контекстному кодированию в соответствии только с одним контекстом. В качестве альтернативы, этот «другой флаг» может быть кодирован «в обход», т.е. без контекста.
ii. В качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования, может быть далее передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом копирования IBC.
1. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда активизирован режим копирования IBC для одной единицы данных видео (например, последовательности/ изображения/группы плиток/плитки).
2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока
2. Предлагается добавить режим палитры в качестве дополнительного кандидата на роль режима прогнозирования. Индикация использования режима палитры может быть определена/передана в виде сигнализации на основе режима прогнозирования, например, как обсуждается в примере варианта 1 выше. В некоторых вариантах, нет необходимости передавать в виде сигнализации индикацию использования режима палитры отдельно от индикации режима прогнозирования.
a. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
b. В качестве альтернативы, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
c. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для блоков размером 4x4.
d. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
e. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
f. В качестве альтернативы, совокупность режимов прогнозирования может содержать по меньшей мере два режима из следующего списка - режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры.
g. В одном из примеров, режим межкадрового прогнозирования может не быть включен в совокупность режимов прогнозирования для блоков размером 4x4.
h. В одном из примеров, когда блок не кодирован в режиме пропуска (что является специальным случаем режима межкадрового прогнозирования), индекс режима прогнозирования может быть подвергнут контекстному кодированию с использованием разных секций (разрядов). В некоторых вариантах, передача одной или нескольких секций (разрядов) в виде сигнализации может быть пропущена из-за некоторого условия, такого как размер блока (например, 4x4), либо режим прогнозирования не активизирован (например, режим копирования IBC не активизирован, так что соответствующие секции (разряды) пропускают).
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. В одном из примеров, сигнализация о режиме по умолчанию может быть передана в составе набора 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, в терминах секций с контекстно-зависимым кодированием.
ii. В одном из примеров, число секций (разрядов) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, может быть установлено равным (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. В одном из примеров, порядок сканирования для блока размером 4x4 может быть таким, как показано на фиг. 22.
b. В одном из примеров, может быть использован обратный порядок вертикального поперечного сканирования, определяемый следующим образом.
i. В одном из примеров, направление сканирования для нечетных строк может быть сверху вниз.
ii. В одном из примеров, направление сканирования для четных строк может быть снизу вверх.
iii. В одном из примеров, порядок сканирования для блока размером 4x4 может быть таким, как показано на фиг. 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
1. Переменную bitDepth определяют следующим образом:
bitDepth=(cIdx=0) ? BitDepthY: BitDepthC (8-241)
2. Список levelScale[] специфицирован как levelScale[k]={ 40, 45, 51, 57, 64, 72 } при k=0..5.
[Ed. (BB): Для единиц CU, кодируемых не в режиме палитры, параметр levelScale зависит от rectNonTsFlag, это должно быть применено здесь тоже?]
1. Применяется следующее:
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]]
- Переменная 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]]
- Переменная 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 Синтаксис единицы кодирования
!(((cbWidth=4 && cbHeight=4) | | modeType=MODE_TYPE_INTRA)
&& !sps_ibc_enabled_flag))
&& !(cbWidth=4 && cbHeight=4) && modeType=MODE_TYPE_ALL)
(slice_type !=I && (CuPredMode[chType][x0][y0] !=MODE_INTRA | |
(cbWidth=4 && cbHeight=4 && cu_skip_flag[x0][y0]=0)))) &&
cbWidth<=64 && cbHeight<=64 && modeType !=MODE_TYPE_INTER &&
sps_ibc_enabled_flag && treeType !=DUAL_TREE_CHROMA)
CuPredMode[x0][y0]=MODE_INTRA) | |
(slice_type !=I && !(cbWidth=4 && cbHeight=4) && !sps_ibc_enabled_flag
&& CuPredMode[x0][y0] !=MODE_INTRA)) && sps_palette_enabled_flag &&
cbWidth<=64 && cbHeight<=64 && && cu_skip_flag[x0][y0]=0 &&
modeType !=MODE_INTER)
CuPredMode[chType][x0][y0]=MODE_PLT) {
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 параметр 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=0
for(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=0
for(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-кадр. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков, режим палитры и режим межкадрового прогнозирования.
В некоторых вариантах, блок имеет размер 4x4. В некоторых вариантах, из указанной совокупности одного или нескольких допустимых режимов прогнозирования исключен режим межкадрового прогнозирования, если рассматриваемый блок имеет размер 4x4.
В некоторых вариантах, представление в форме потока битов данных содержит по меньшей мере индекс режима прогнозирования, представляющий один или несколько допустимых режимов прогнозирования, если рассматриваемый блок не кодируют в режиме пропуска, где индекс режима прогнозирования представлен с использованием одной или нескольких секций.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), где значение «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 допустимым.
В некоторых вариантах, процедура преобразования генерирует текущий блок из представления в форме потока битов данных. В некоторых вариантах, процедура преобразования генерирует представление в форме потока битов данных из текущего блока.
Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует активизировать инструмент или режим обработки видео. В одном из примеров, когда инструмент или режим обработки видео активизирован, кодирующее устройство будет использовать этот инструмент или режим при обработке блока видео, но может не обязательно модифицировать результирующий поток битов данных на основе использования этого инструмента или режима. Иными словами, процедура преобразования от блока видео к представлению этого видео в форме потока битов данных будет использовать указанный инструмент или режим обработки видео, когда он активизирован на основе принятого решения или определения. В другом примере, когда инструмент или режим обработки видео активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что поток битов данных был модифицирован на основе инструмента или режима обработки видео. Иными словами, преобразование от представления этого видео в форме потока битов данных в блок видео будет осуществляться с использованием упомянутого инструмента или режима обработки видео на основе указанного режима или определения.
Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует отменить активизацию инструмента или режима обработки видео. В одном из примеров, когда инструмент или режим обработки видео не активизирован, кодирующее устройство не будет использовать этот инструмент или режим при преобразовании блока видео в представление этого видео в форме потока битов данных. В другом примере, когда инструмент или режим обработки видео не активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что этот поток битов данных не был модифицирован с использованием указанного инструмента или режима обработки видео, который был активизирован на основе принятого решения или определения.
Предлагаемые и другие решения, примеры, варианты, модули и функциональные операции, описываемые в этом документе, могут быть реализованы в цифровой электронной схеме или в компьютерном загружаемом программном обеспечении, встроенном программном обеспечении или аппаратуре, включая структуры, рассматриваемые в настоящем документе, и их структурные эквиваленты, либо в комбинации одного или нескольких перечисленных компонентов. Рассмотренные и другие варианты могут быть реализованы в одном или нескольких компьютерных программных продуктах, т.е. в одном или нескольких модулях компьютерных программных команд, закодированных на читаемом компьютером носителе информации для выполнения посредством устройства обработки данных или для управления работой этого устройства обработки данных. Этот читаемый компьютером носитель может представлять собой машиночитаемое устройство для хранения информации, машиночитаемую подложку для хранения информации, запоминающее устройство, композицию объектов, генерирующую машиночитаемый распространяющийся сигнал или комбинацию одного или нескольких перечисленных объектов. Термин «устройство обработки данных» охватывает все устройства, аппаратуру и машины для обработки данных, включая, например, программируемый процессор, компьютер, либо нескольких процессоров или компьютеров. Такое устройство может содержать, в дополнение к аппаратуре, код, создающий среду для выполнения рассматриваемой компьютерной программы, например, код, составляющий встроенное программное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию одного или нескольких перечисленных объектов. Распространяющийся сигнал представляет собой искусственно генерируемый сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, генерируемый для кодирования информации с целью передачи подходящему приемному устройству.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий (скрипт) или код) может быть написана на каком-либо языке программирования, включая компилируемые или интерпретируемые языки, и может быть развернута в любой форме, включая автономную программу или в виде модуля, компонента, подпрограммы или другой единицы, подходящей для использования в компьютерной среде. Компьютерная программа необязательно соответствует файлу в файловой системе. Программа может быть сохранена в части файла, который содержит также другие программы или данные (например, один или несколько сценариев сохраняются в документе на языке разметки), в одном файле, специально предназначенном только для рассматриваемой программы, или в нескольких координированных файлах (например, в файлах, сохраняющих один или несколько модулей, подпрограмм или фрагментов кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, расположенных в одном пункте или распределенных по нескольким пунктам и соединенных посредством сети связи.
Процедуры и логические схемы, описываемые в настоящем документе, могут быть осуществлены одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для реализации функций путем оперирования над входными данными и генерации выходных данных. Эти процедуры и логические схемы могут также быть осуществлены посредством, и аппаратура может также быть реализована в виде, логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA (field programmable gate array)) или специализированной интегральной схемы (ASIC (application specific integrated circuit)).
К процессорам, подходящим для выполнения компьютерной программы, относятся, например, микропроцессоры общего и специального назначения и какие-либо один или несколько процессоров цифрового компьютера какого-либо типа. В общем случае, процессор будет принимать команды и данные из постоянного запоминающего устройства и/или из запоминающего устройства с произвольной выборкой. Основными элементами компьютера являются процессор для выполнения команд и одно или несколько запоминающих устройств для сохранения команд и данных. В общем случае, компьютер должен также содержать или быть оперативно связанным для приема данных и/или для передачи данных, одно или несколько запоминающих устройств большой емкости для хранения данных, например, магнитные устройства, магнитооптические диски или оптические диски. Однако компьютеру необязательно иметь такие устройства. К читаемым компьютером носителям для сохранения команд компьютерных программ и данных относятся все формы энергонезависимых запоминающих устройств и носителей информации, включая, например, полупроводниковые запоминающие устройства, например, стираемое, программируемое постоянное запоминающее устройство (СППЗУ (EPROM)), электрически стираемое программируемое запоминающее устройство (ЭСППЗУ (EEPROM)) и устройства флэш-памяти; магнитные диски, например, встроенные жесткие диски или съемные диски; магнитооптические диски; и диски CD ROM и DVD-ROM. Процессор и запоминающее устройство могут быть дополнены или встроены в логическую схему специального назначения.
Хотя настоящий патентный документ содержит много конкретных деталей, их не следует толковать в качестве ограничений объема какого-либо предмета изобретения или того, что может быть заявлено в Формуле изобретения, а всего лишь как описание признаков, которые могут быть специфичны для конкретных вариантов конкретных способов. Некоторые признаки, описываемые в настоящем патентном документе в контексте раздельных вариантов, могут также быть реализованы в сочетании в одном варианте. Напротив, различные признаки, описываемые в контексте одного варианта, могут также быть реализованы в нескольких вариантах по отдельности или в какой-либо подходящей субкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в некоторых комбинациях и даже первоначально заявлены таковыми, один или несколько признаков из заявленной комбинации могут, в некоторых случаях, быть исключены из такой комбинации, и заявленная комбинация может быть превращена в субкомбинацию или в вариацию субкомбинации.
Аналогично, хотя операции показаны на чертежах в конкретном порядке, это не следует понимать как требование, чтобы такие операции всегда осуществлялись именно в показанном конкретном порядке, или в последовательном порядке, или чтобы все показанные операции были выполнены, для достижения желаемого результата. Более того, разделение разнообразных компонентов системы в описываемых в настоящем патентном документе вариантах не следует понимать как требование такого разделения во всех вариантах.
Здесь описано только небольшое число реализаций и примеров, но и другие варианты реализации, усовершенствования и вариации могут быть сделаны на основе того, что описано и иллюстрируется в настоящем патентном документе.
Изобретение относится к кодированию и декодированию видео. Технический результат заключается в повышении эффективности кодирования и декодирования видео. Такой результат обеспечивается за счет того, что выполняют преобразование между блоком видеообласти видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается в соответствии с первым правилом форматирования, определяющим, передавать ли первую индикацию использования режима палитры для указанного блока, и со вторым правилом форматирования, определяющим позицию первой индикации относительно второй индикации использования режима прогнозирования для указанного блока. 4 н. и 9 з.п. ф-лы, 34 ил.
1. Способ обработки данных видео, содержащий этапы, на которых:
определяют, для преобразования между текущим видеоблоком видео и потоком битов данных видео, включена ли первая индикация использования первого режима прогнозирования в указанный поток битов данных в соответствии с правилом; и
выполняют преобразование между текущим видеоблоком и указанным потоком битов данных;
при этом в первом режиме прогнозирования реконструированные отсчеты представлены набором репрезентативных цветовых значений, причем набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов и 3) информации о палитре, входящей в поток битов данных, и
указанное правило определяет, что первая индикация не включается в поток битов данных и первая индикация считается ложной в ответ на то, что к текущему видеоблоку применен режим, не являющийся режимом внутрикадрового прогнозирования,
при этом указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе структуры дерева кодирования для текущего видеоблока, причем структура дерева кодирования представляет собой структуру одиночного дерева кодирования или структуру двойного дерева кодирования.
2. Способ по п. 1, в котором указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе размера текущего видеоблока.
3. Способ по п. 1 или 2, в котором указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе цветового формата текущего видеоблока.
4. Способ по любому из пп. 1-3, в котором режим, не являющийся режимом внутрикадрового прогнозирования, представляет собой второй режим прогнозирования, причем во втором режиме прогнозирования прогнозируемые отсчеты выводятся из значений реконструированных отсчетов того же изображения, которое содержит текущий видеоблок.
5. Способ по любому из пп. 1-3, в котором режим, не являющийся режимом внутрикадрового прогнозирования, представляет собой режим межкадрового прогнозирования.
6. Способ по любому из пп. 1-3, в котором режим, не являющийся режимом внутрикадрового прогнозирования, представляет собой режим пропуска.
7. Способ по п. 4, в котором в ответ на то, что видеосрез, содержащий текущий видеоблок, является I-срезом, только один из первого режима прогнозирования, второго режима прогнозирования и режима внутрикадрового прогнозирования используется для генерирования прогнозируемых отсчетов текущего видеоблока.
8. Способ по п. 7, в котором первый режим кодирования не зависит от режима внутрикадрового прогнозирования.
9. Способ по любому из пп. 1-8, в котором на этапе преобразования кодируют текущий видеоблок в поток битов данных.
10. Способ по любому из пп. 1-8, в котором на этапе преобразования декодируют текущий видеоблок из потока битов данных.
11. Устройство обработки данных видео, содержащее процессор и энергонезависимое запоминающее устройство с записанными в нем командами, причем команды при исполнении процессором вызывают выполнение процессором:
определения, для преобразования между текущим видеоблоком видео и потоком битов данных видео, включена ли первая индикация использования первого режима прогнозирования в указанный поток битов данных в соответствии с правилом; и
преобразования между текущим видеоблоком и указанным потоком битов данных;
при этом в первом режиме прогнозирования реконструированные отсчеты представлены набором репрезентативных цветовых значений, причем набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов и 3) информации о палитре, входящей в поток битов данных, и
указанное правило определяет, что первая индикация не включается в поток битов данных и первая индикация считается ложной в ответ на то, что к текущему видеоблоку применен режим, не являющийся режимом внутрикадрового прогнозирования,
при этом указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе структуры дерева кодирования для текущего видеоблока, причем структура дерева кодирования представляет собой структуру одиночного дерева кодирования или структуру двойного дерева кодирования.
12. Энергонезависимый читаемый компьютером носитель для хранения информации, хранящий команды, которые вызывают при исполнении процессором:
определение, для преобразования между текущим видеоблоком видео и потоком битов данных видео, включена ли первая индикация использования первого режима прогнозирования в указанный поток битов данных в соответствии с правилом; и
преобразование между текущим видеоблоком и указанным потоком битов данных;
при этом в первом режиме прогнозирования реконструированные отсчеты представлены набором репрезентативных цветовых значений, причем набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов и 3) информации о палитре, входящей в поток битов данных, и
указанное правило определяет, что первая индикация не включается в поток битов данных и первая индикация считается ложной в ответ на то, что к текущему видео блоку применен режим, не являющийся режимом внутрикадрового прогнозирования,
при этом указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе структуры дерева кодирования для текущего видеоблока, причем структура дерева кодирования представляет собой структуру одиночного дерева кодирования или структуру двойного дерева кодирования.
13. Способ сохранения потока битов данных видео, содержащий этапы, на которых:
определяют, для текущего видеоблока видео, включена ли первая индикация использования первого режима прогнозирования в указанный поток битов данных в соответствии с правилом;
генерируют поток битов данных на основе результата определения; и
сохраняют указанный поток битов данных на энергонезависимом читаемом компьютером носителе для хранения информации;
при этом в первом режиме прогнозирования реконструированные отсчеты представлены набором репрезентативных цветовых значений, причем набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов и 3) информации о палитре, входящей в поток битов данных, и
указанное правило определяет, что первая индикация не включается в поток битов данных и первая индикация считается ложной в ответ на то, что к текущему видео блоку применен режим, не являющийся режимом внутрикадрового прогнозирования,
при этом указанное правило дополнительно определяет, следует ли включить первую индикацию в поток битов данных, на основе структуры дерева кодирования для текущего видеоблока, причем структура дерева кодирования представляет собой структуру одиночного дерева кодирования или структуру двойного дерева кодирования.
US 20150373325 A1, 24.12.2015 | |||
US 20150312573 A1, 29.10.2015 | |||
US 20160227226 A1, 04.08.2016 | |||
US 20120257678 A1, 11.10.2012 | |||
CN 106471809 A, 01.03.2017 | |||
CN 106797478 A, 31.05.2017 | |||
ОПРЕДЕЛЕНИЕ РАЗМЕРА ПАЛИТРЫ, ЗАПИСЕЙ ПАЛИТРЫ И ФИЛЬТРОВАНИЕ БЛОКОВ, КОДИРОВАННЫХ НА ОСНОВЕ ПАЛИТРЫ, ПРИ КОДИРОВАНИИ ВИДЕО | 2015 |
|
RU2678490C2 |
Авторы
Даты
2024-04-05—Публикация
2020-02-24—Подача