RU2822510C1 - Параметр квантования для деблокирующей фильтрации цветности - Google Patents

Параметр квантования для деблокирующей фильтрации цветности Download PDF

Info

Publication number
RU2822510C1
RU2822510C1 RU2022108234A RU2022108234A RU2822510C1 RU 2822510 C1 RU2822510 C1 RU 2822510C1 RU 2022108234 A RU2022108234 A RU 2022108234A RU 2022108234 A RU2022108234 A RU 2022108234A RU 2822510 C1 RU2822510 C1 RU 2822510C1
Authority
RU
Russia
Prior art keywords
block
video
quantization information
variable
quantization
Prior art date
Application number
RU2022108234A
Other languages
English (en)
Inventor
Вэйцзя ЧЖУ
Ли ЧЖАН
Цзичжэн СЮЙ
Original Assignee
Байтдэнс Инк.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Байтдэнс Инк. filed Critical Байтдэнс Инк.
Application granted granted Critical
Publication of RU2822510C1 publication Critical patent/RU2822510C1/ru

Links

Abstract

Изобретение относится к технологиям видеокодирования. Техническим результатом является повышение эффективности видеокодирования. Результат достигается тем, что определяют, для преобразования между блоком компонента цветности видео и представлением битового потока видео, применять ли или как применять процесс фильтрации к краю блока, на основе первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, и/или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом, которое основано на режиме кодирования, применимом к блоку для кодирования отсчетов на указанной одной стороне или отсчетов на указанной другой стороне края. Правило устанавливает, что для определения первой информации квантования или второй информации квантования используется множество смещений параметра квантования (QP) на различных уровнях видеоблока. 4 н. и 5 з.п. ф-лы, 27 ил., 3 табл.

Description

Область техники, к которой относится изобретение
Настоящий патентный документ относится к технологиям, устройствам и системам видеокодирования.
Уровень техники
В настоящее время предпринимаются усилия по улучшению характеристик текущих технологий видеокодеков, чтобы добиться более лучших коэффициентов сжатия или обеспечить схемы кодирования и видеокодирования, которые позволяют понизить сложность или иметь параллельные реализации. Промышленные эксперты недавно предложили несколько новых инструментов видеокодирования и в настоящее время проводится их тестирование для определения эффективности этих инструментов.
Раскрытие сущности изобретения
Описываются устройства, системы и способы, относящиеся к цифровому видеокодированию и, в частности, к управлению векторами движения. Описанные способы могут применяться к существующим стандартам видеокодирования (например, к стандарту видеокодирования высокой эффективности (High Efficiency Video Coding, HEVC) или стандарту универсального видеокодирования (Versatile Video Coding)) и к будущим стандартам видеокодирования или видеокодекам.
При одном репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, на котором выполняют преобразование между блоком компонента цветности видео и представлением битового потока видео. Во время преобразования процесс деблокирующей фильтрации выборочно применяется к отсчетам, расположенным вдоль краев блока, и смещения параметров квантования (QP) цветности добавляются к выходному результату таблицы QP цветности для определения параметров процесса деблокирующего фильтра.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ включает в себя этап, на котором определяют, для преобразования между блоком компонента цветности видео и представлением битового потока видео, применять ли или как применять процесс фильтрации к краю блока на основе первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, и/или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом. Правило основано на режиме кодирования, применимого к блоку для кодирования отсчетов, расположенных на одной стороне, или отсчетов, расположенных на другой стороне края. Правило устанавливает, что множество смещений QP на различных уровнях видеоблока используются для определения первой информации квантования или второй информации квантования. Способ также содержит этап, на котором выполняют преобразование на основе указанного определения.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап. накотором определяют, для преобразования между текущим блоком видео и представлением битового потока видео, разрешать ли использование смещения параметра квантования (QP) цветности для текущего блока в соответствии с элементом синтаксиса на уровне видеоблока. Видеоблок содержит текущий блок и второй блок видео.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап. на котором выполняют преобразование между видео, содержащим первый компонент цветности и второй компонент цветности, и представлением битового потока видео. Остатки первого блока цветности первого компонента цветности и второго блока цветности второго компонента цветности совместно кодируются в представлении битового потока с использованием режим кодирования в соответствии с правилом. Правило устанавливает, что способ получения параметра квантования (QP) для преобразования не зависит от режима кодирования.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, на котором выполняют преобразование между первым блоком видео и представлением битового потока видео. Видео имеет цветовой формат из множества цветовых компонентов, и первый блок связан с первым цветовым компонентом видео. Во время преобразования применяется процесс деблокирующей фильтрации по меньшей мере к некоторым отсчетам вдоль границы первого блока. Способ также содержит этап, на котором выполняют последующие преобразования между блоками, связанными с остающимися компонентами видео, и представлением битового потока видео. Во время последующих преобразований применяется процесс деблокирующей фильтрации по меньшей мере к некоторым отсчетам вдоль границы каждого из блоков таким же способом, что при преобразовании первого блока.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, накотором определяют, для преобразования между видео и представлением битового потока видео, прочность границы для границы между двумя блоками видео. Прочность границы определяется независимо от того, кодируется ли какой-либо из двух блоков в режиме совместного кодирования остатков цветности (joint coding of chroma residuals, JCCR). Способ также содержит этап, на котором выполняют преобразование на основе указанного определении.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, на котором определяют, для преобразования между видео и представлением битового потока видео, прочность границы для границы между первым блоком и вторым блоком. Определение выполняется без сравнения информации первого блока с соответствующей информацией второго блока. Информация содержит опорное изображение и/или множество векторов движения соответствующего блока, и прочность границы используется для определения, может ли процесс деблокирующей фильтрации быть применен к границе. Способ также содержит этап, на котором выполняют преобразование на основе указанного определения.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, на котором определяют, для преобразования между видеоблоком видео и представлением битового потока видео, параметр квантования (quantization parameter, QP), используемый для применения деблокирующей фильтрации к видеоблоку в соответствии с правилом. Правило устанавливает, что первый QP, используемый для определения в случае, когда видеоблок кодирован с использованием режим пропуска преобразования (transform skip, TS), в котором остаток видеоблока кодирован в представлении битового потока посредством применения пропуска преобразования. Второй QP, который отличается от первого QP, используется для определения в случае, когда видеоблок кодирован с использованием режима пропуска без преобразования, в котором остаток видеоблока кодирован в представлении битового потока после применения преобразования. Способ также содержит этап, на котором выполняют преобразование на основе указанного определения.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, накотором определяют, для преобразования между видеоблоком видео и представлением битового потока видео, градиент для определения применимости процесса деблокирующей фильтрации по меньшей мере к некоторым отсчетам на краю видеоблока в соответствии с правилом. Правило устанавливает, что способ, которым определяется градиент, не зависит от размера видеоблока. Способ также содержит этап, на котормо выполняют преобразование на основе указанного определении.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения способа видеообработки. Способ содержит этап, на котором выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при этом во время преобразования использует деблокирующий фильтр на границах видеоблока так, что, когда для получения параметров деблокирующего фильтра используется таблица параметров квантования (QP) цветности, обработка с помощью таблицы QP цветности выполняется на индивидуальных значениях QP цветности.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения другого способа видеообработки. Способ содержит этап, на котором выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при этом во время преобразования используется деблокирующий фильтр на границах видеоблока так, что используются смещения QP цветности в деблокирующем фильтре, причем смещения QP цветности находятся на уровне изображения/секции/плитки/элемента/субизображения.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения другого способа видеообработки. Способ содержит этап, на котором выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при этом во время преобразования используется деблокирующий фильтр на границах видеоблока так, что используются смещения QP цветности в деблокирующем фильтре, причем информация, относящаяся к одному и тому же блоку кодирования яркости, используется в деблокирующем фильтре и для получения смещения QP цветности.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения другого способа видеообработки. Этот способ содержит выполнение преобразования между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором индикация разрешения использования смещений QP цветности сообщается в представлении битового потока.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения другого способа видеообработки. Способ содержит этап, на котором выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при этом во время преобразования используется деблокирующий фильтр на границах видеоблока так, что используются смещения QP цветности в деблокирующем фильтре, причем смещения QP цветности, используемые в деблокирующем фильтре, идентичны независимо от того, применяется ли способ кодирования JCCR на границе видеоблока, или способа, отличный от способа кодирования JCCR, применяется на границе видеоблока.
При другом репрезентативном подходе раскрытая технология может использоваться для обеспечения другого способа видеообработки. Способ содержит этап, на котором выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при этом во время преобразования деблокирующий фильтр используется на границах видеоблока так, что смещения QP цветности используются в деблокирующем фильтре, причем прочность границы (boundary strength, BS) деблокирующего фильтра вычисляется без сравнения опорных изображений и/или множества векторов движения (motion vector, MV), связанных с видеоблоком на границе стороны Р, со опорными изображениями видеоблока на границе стороны Q.
Дополнительно, при репрезентативном подходе раскрывается устройство в видеосистеме, содержащее процессор и память долгосрочного пользования с хранящимися в ней командами. Команды, при их исполнении процессором, вызывают реализацию процессором одного или более раскрытых способов.
Дополнительно, при репрезентативном подходе устройство видеодекодирования, содержащее процессор, выполнено с возможностью реализации одного или более из раскрытых способов.
При другом репрезентативном подходе устройство видеодекодирования, содержащее процессор, выполнено с возможностью реализации любого одного или более из раскрытых способов.
Также, раскрывается компьютерный программный продукт, хранящийся на считываемом компьютером носителе долговременного пользования, причем компьютерный программный продукт содержит программный код для выполнения любого одного или более раскрытых способов.
Представленные выше и другие подходы и признаки раскрытой технологии описаны с большими подробностями на чертежах, в описании и в формуле изобретения.
Краткое описание чертежей
Фиг. 1 - примерная блок-схема последовательности выполнения операций процесса блокирования деблокирующей фильтрации.
Фиг. 2 - примерная блок-схема последовательности выполнения операций вычисления Bs.
Фиг. 3 - пример опорной информации для вычисления Bs на границе CTU.
Фиг. 4 - пример пикселей, участвующих в принятии решения по включению/выключению фильтра и выборе сильного/слабого фильтра.
Фиг. 5 - пример общей блок-схемы последовательности выполнения операций процесса деблокирующей фильтрации согласно VVC.
Фиг. 6 - пример процесса деблокирующей фильтрации яркости согласно VVC.
Фиг. 7 - пример процесса деблокирующей фильтрации цветности согласно VVC.
Фиг. 8 - пример определения длины фильтра для границ субблока PU.
Фиг. 9А - пример центральных положений блока цветности.
Фиг. 9В - другой пример центральных положений блока цветности.
Фиг. 10 - примеры блоков на стороне Р и на стороне Q.
Фиг. 11 - примеры использования декодированной информации блока яркости.
Фиг. 12 - блок-схема примера аппаратной платформы для реализации технологии декодирования визуального носителя или кодирования визуального носителя, описанной в настоящем документе.
Фиг. 13 - блок-схема последовательности выполнения операций примерного способа видеокодирования.
Фиг. 14 - блок-схема примерной системы видеообработки, в которой могут быть реализованы раскрытые технологии.
Фиг. 15 - блок-схема последовательности выполнения операций способа видеообработки в соответствии с представленной технологией.
Фиг. 16 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 17 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 18 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 19 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 20 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 21 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 22 - блок-схема последовательности выполнения операций другого способа видеообработки в соответствии с представленной технологией.
Фиг. 23 - блок-схема последовательности выполнения операций еще одного другого способа видеообработки в соответствии с представленной технологией.
Фиг. 24 - блок-схема примера системы видеообработки.
Фиг. 25 - блок-схема кодера, соответствующего некоторым вариантам осуществления настоящего раскрытия.
Фиг. 26 - блок-схема декодера, соответствующего некоторым вариантам осуществления настоящего раскрытия.
Осуществление изобретения
1. Видеокодирование по стандарту HEVC/H.265
Стандарты видеокодирования разрабатывались, в первую очередь, через развитие хорошо известных стандартов организаций ITU-T и ISO/IEC. ITU-T разработала стандарты H.261 и H.263, ISO/IEC разработала стандарты MPEG-1 и MPEG-4 Visual и эти две организации совместно создали стандарты H.262/MPEG-2 Video и H.264/MPEG-4 Advanced Video Coding (AVC) и H.265/HEVC. Начиная со стандарта H.262, стандарты видеокодирования основываются на гибридной структуре видеокодирования, в которой используются временное предсказание плюс кодирование с преобразованием. Для использования будущих технологий видеокодирования, следующих за HEVC, в 2015 г. VCEG и MPEG была совместно основана Совместная Группа по исследованию видео (Joint Video Exploration Team, JVET). С тех пор JVET было принято много новых способов, которые были объединены в справочном программном обеспечении под названием Joint Exploration Model (JEM, совместная модель исследований). В апреле 2018 г.между VCEG (Q6/16) и ISO/IEC JTC1 SC29/WG11 (MPEG) была создана Совместная группа экспертов по видео (Joint Video Expert Team, JVET) для работы над стандартом VVC, нацеленным на 50-типроцентное снижение битовой скорости передачи по сравнению со стандартом HEVC.
2.1. Схема деблокирования в стандарте HEVC
Процесс деблокирующей фильтрации выполняется для каждого CU в том же самом порядке, что и процесс декодирования. Сначала фильтруются вертикальные края (горизонтальная фильтрация), а затем фильтруются горизонтальные края (вертикальная фильтрация). Фильтрация применяется к границам блока 8х8, которые определены для фильтрации для обоих компонентов, яркости и цветности. Границы блока 4х4 не обрабатываются, чтобы понизить сложность.
На фиг. 1 показана общая блок-схема последовательности выполнения операций процесса деблокирующей фильтрации. Граница может иметь три состояния фильтрации: отсутствие фильтрации, слабая фильтрация и сильная фильтрация. Каждое решение по фильтрации основывается на прочности границы (boundary strength, Bs) и пороговых значениях β и tC.
В процесс фильтрации могут включаться три вида границ: граница CU, граница TU и граница PU. Границы CU, которые являются внешними краями блока CU, всегда включаются в процесс фильтрации, поскольку границы CU всегда являются также границей TU или границей PU. Когда формой блока PU является 2NxN (N > 4) и глубина RQT равна 1, граница блока TU на сетке блоков 8х8 и граница PU между каждым PU внутри CU включаются в процесс фильтрации. Единственным исключением является, что когда граница PU находится внутри блока TU, граница не фильтруется.
2.1.1. Вычисление прочности границы
Вообще говоря, прочность границы (boundary strength, Bs) отражает то, насколько сильная фильтрация необходима для границы. Если Bs большая, должна рассматриваться сильная фильтрация.
Пусть P и Q определяются как блоки, которые включаются в фильтрацию, где P представляет блок, расположенный на левой (в случае вертикального края) или на верхней (в случае горизонтального края) стороне границы, и Q представляет блок, расположенный на правой (в случае вертикального края) или верхней (в случае горизонтального края) стороне границы. На фиг. 2 показано, как вычисляется значение Bs, основываясь на режиме внутрикадрового кодирования, существовании ненулевых коэффициентов преобразования и информации о движении, опорном изображении, количестве векторов движения и разности векторов движения.
Bs вычисляется на основе блоков 4x4, но они преобразуются в сетку 8x8. Максимум из двух значений Bs, которые соответствуют 8 пикселям, составляющим линию в сетке 4х4, выбирается в качестве Bs для границ в сетке 8х8.
Чтобы уменьшить требование к памяти линейного буфера, только для границы CTU информация в каждом втором блоке (сетки 4x4) на левой или верхней стороне используется повторно, как показано на фиг. 3.
2.1.2. Принятие решения по β и tC
Пороговые значения β и tC, которые включаются в процесс решения по включению/выключения фильтра, выбору сильного и слабого фильтра, получают, основываясь на параметре квантования яркости блоков P и Q, QPP и QPQ, соответственно. Q, используемое для получения β и tC вычисляется следующим образом:
Q = ( ( QPP + QPQ + 1 ) >> 1 ).
Переменную β получают согласно таблице 1, основываясь на Q. Если Bs больше 1, переменная tC определяется, как указано в таблице 1 с Clip3(0, 55, Q + 2 ) в качестве входных данных. В противном случае, (BS равно или меньше 1), переменная tC определяется согласно таблице 1 с Q в качестве входных данных.
Таблица 1
Получение пороговых переменных β и tC из входных данных Q
Q 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
β 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 7 8
tC 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
Q 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
β 9 10 11 12 13 14 15 16 17 18 20 22 24 26 28 30 32 34 36
tC 1 1 1 1 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4
Q 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
β 38 40 42 44 46 48 50 52 54 56 58 60 62 64 64 64 64 64
tC 5 5 6 6 7 8 9 9 10 10 11 11 12 12 13 13 14 14
2.1.3. Принятие решения о включении/выключении фильтра для 4 строк
Принятие решения о включении/выключении фильтра выполняется для четырех строк в качестве блока. На фиг. 4 показаны пиксели, участвующие в принятии решения о включении/выключении фильтра. 6 пикселей в двух отмеченных красным блоках для первых четырех строк используются для определения включения/выключения фильтра для четырех строк. 6 пикселей в двух отмеченных красным блоках для вторых четырех строк используются для определения включения/выключения фильтра для вторых четырех строк.
Если dp0+dq0+dp3+dq3 < β, фильтрация для первых четырех строк включается и применяется процесс выбора сильного/слабого фильтра. Каждую переменную получают следующим образом.
dp0 = | p2,0 - 2*p1,0 + p0,0 |, dp3 = | p2,3 - 2*p1,3 + p0,3 |, dp4 = | p2,4 - 2*p1,4 + p0,4 |, dp7 = | p2,7 - 2*p1,7 + p0,7 |
dq0 = | q2,0 - 2*q1,0 + q0,0 |, dq3 = | q2,3 - 2*q1,3 + q0,3 |, dq4 = | q2,4 - 2*q1,4 + q0,4 |, dq7 = | q2,7 - 2*q1,7 + q0,7 |
Если условие не выполняется, для первых 4 строк никакая фильтрация не производится. Дополнительно, если условие выполняется, получают dE, dEp1 и dEp2 для процесса слабой фильтрации. Переменная dE устанавливается равной 1. Если dp0 + dp3 < (β + ( β >> 1 )) >> 3, переменная dEp1 устанавливается равной 1. Если dq0 + dq3 < (β + ( β >> 1 )) >> 3, переменная dEq1 устанавливается равной 1.
Для вторых четырех строк решение принимается таким же способом, который указан выше.
2.1.4. Выбор сильного/слабого фильтра для 4 строк
После того, как в процессе принятия решения о включении/выключении фильтра определены первые четыре строки для фильтрации, если следующие два условия удовлетворяются, для фильтрации первых четырех строк используется сильный фильтр. В противном случае, для фильтрации используется слабый фильтр. Участвующими пикселями являются те же самые пиксели, что и те, которые используются при принятии решения о включении/выключении фильтра, как показано на фиг. 4.
1) 2*(dp0+dq0) < ( β >> 2 ), | p30 - p00 | + | q00 - q30 | < ( β >> 3 ) и | p00 - q00 | < ( 5* tC + 1 ) >> 1
2) 2*(dp3+dq3) < ( в >> 2 ), | p33 - p03 | + | q03 - q33 | < ( в >> 3 ) и | p03 - q03 | < ( 5* tC + 1 ) >> 1
Таким же способом, если существующие два условия выполняются, для вторых 4 строк используется сильный фильтр. В противном случае, для фильтрации используется слабый фильтр.
1) 2*(dp4+dq4) < ( β >> 2 ), | p34 - p04 | + | q04 - q34 | < (β >> 3 ) и | p04 - q04 | < ( 5* tC + 1 ) >> 1
2) 2*(dp7+dq7) < ( β >> 2 ), | p37 - p07 | + | q07 - q37 | < ( β >> 3 ) и | p07 - q07 | < ( 5* tC + 1 ) >> 1
2.1.4.1. Сильная фильтрация
Для сильной фильтрации отфильтрованные пиксельные значения получают посредством следующих уравнений. Стоит заметить, что три пикселя модифицируются, используя четыре пикселя в качестве входных данных для каждого блока P и Q, соответственно.
p0' = ( p2 + 2*p1 + 2*p0 + 2*q0 + q1 + 4 ) >> 3
q0' = ( p1 + 2*p0 + 2*q0 + 2*q1 + q2 + 4 ) >> 3
p1' = ( p2 + p1 + p0 + q0 + 2 ) >> 2
q1' = ( p0 + q0 + q1 + q2 + 2 ) >> 2
p2' = ( 2*p3 + 3*p2 + p1 + p0 + q0 + 4 ) >> 3
q2' = ( p0 + q0 + q1 + 3*q2 + 2*q3 + 4 ) >> 3
2.1.4.2. Слабая фильтрация
Определим Δ следующим образом.
Δ = ( 9 * ( q0 - p0 ) - 3 * ( q1 - p1 ) + 8 ) >> 4
Когда abs(Δ) меньше tC *10,
Δ = Clip3( - tC, tC, Δ )
p0' = Clip1Y( p0 + Δ )
q0' = Clip1Y( q0 - Δ )
Если dEp1 равно 1,
Δp = Clip3( -( tC >> 1), tC >> 1, ( ( ( p2 + p0 + 1 ) >> 1 ) - p1 + Δ ) >>1 )
p1' = Clip1Y( p1 + Δp )
Если dEp1 равно 1,
Δq = Clip3( -( tC >> 1), tC >> 1, ( ( ( q2 + q0 + 1 ) >> 1 ) - q1 - Δ ) >>1 )
q1' = Clip1Y( q1 + Δq )
Стоит заметить, что максимум два пикселя модифицируются, используя три пикселя в качестве входных данных для каждого блока P и Q, соответственно.
2.1.4.3. Фильтрация цветности
Bs для фильтрации цветности получают из яркости. Если Bs > 1 или если существует случай кодированных коэффициентов цветности, выполняется фильтрации цветности. Никакого другого решения о фильтрации здесь нет. И только один фильтр применяется для цветности. Никакой процесс выбора фильтра для цветности не используется. Значения p0' и q0' отфильтрованных отсчетов получают следующим образом.
Δ = Clip3( -tC, tC, ( ( ( ( q0 - p0 ) << 2 ) + p1 - q1 + 4 ) >> 3 ) )
p0' = Clip1C( p0 + Δ )
q0' = Clip1C( q0 - Δ )
2.2 Схема деблокирования в стандарте VVC
В VTM6 процесс деблокирующей фильтрации является, главным образом, таким же, как в HEVC. Однако, добавляются следующие видоизменения.
A) Сила фильтра для деблокирующего фильтра зависит от усредненного уровня яркости реконструированных отсчетов.
B) Расширение таблицы tC деблокирования и адаптация до 10-битового видео.
C) Сетка 4x4 деблокирования для яркости.
D) Более сильный деблокирующий фильтр для яркости.
E) Более сильный деблокирующий фильтр для цветности.
F) Деблокирующий фильтр для границы субблоков.
G) Решение о деблокировании, принимаемое при малой разнице в движении.
На фиг. 5 представлена блок-схема последовательности выполнения операций процесса деблокирующей фильтрации в стандарте VVC для блока кодирования.
2.2.1. Сила фильтра, зависящая от реконструированной усредненной яркости
В HEVC сила фильтра для деблокирующего фильтра управляется переменными β и tC, которые получают из усредненных параметров qPL квантования. В VTM6 деблокирующий фильтр управляет силой деблокирующего фильтра, добавляя смещение к qPL в соответствии с уровнем яркости реконструированных отсчетов, если флаг SPS этого способа является действительным. Блочный вектор LL яркости получают следующим образом:
где значения pi,k и qi,k отсчетов с i = 0..3 и k = 0 и 3 могут быть получены. Затем LL используется для принятия решения о смещении qpOffset, основываясь на пороге, сообщаемом в SPS. После этого, qPL, которое получают как указано ниже, используют для получения β и tC.
где QpQ и QpP обозначают параметры квантования блоков кодирования, содержащих отсчеты q0,0 и p0,0, соответственно. В текущем VVC этот способ применяется только для процесса деблокирования яркости.
2.2.2. Сетка 4x4 деблокирования для яркости.
HEVC использует сетку 8x8 деблокирования как для яркости, так и для цветности. В VTM6 деблокирование на сетке 4x4 для границ яркости было введено для управления артефактами блокировки из прямоугольных форм преобразования. Параллельно удобное деблокирование яркости на сетке 4x4 достигается путем ограничения количества отсчетов, которые должны деблокироваться, до 1 отсчета на каждой стороне вертикальной границы яркости, где одна сторона имеет ширину 4 или меньше, или до 1 отсчета на каждой стороне горизонтальной границы яркости, где одна сторона имеет высоту 4 отсчета или меньше.
2.2.3. Получение прочности границ для яркости
Подробное описание получения прочности границы можно найти в таблице 2. Условия, указанные в таблице 2, проверяются последовательно.
Таблица 2
Получение прочности границы
Условия Y U V
P и Q являются BDPCM 0 N/A N/A
P или Q являются внутрикадровыми 2 2 2
Это край блока преобразования и P или Q является CIIP 2 2 2
Это край блока преобразования и P или Q имеет ненулевые коэффициенты преобразования 1 1 1
Это край блока преобразования и P или Q является JCCR N/A 1 1
P и Q находятся в различных режимах кодирования 1 1 1
Одно или более из нижеследующих условий являются действительными:
1. P и Q оба являются IBC, и расстояние BV >= половина пикселя в x-направлении или y-направлении
2. P и Q имеют различные опорные изображения* или имеют различное количество MV
3. P и Q оба имеют только один mv и расстояние MV >= половина пикселя в x-направлении или y-направлении
4. P имеет два MV, указывающих на два различных опорных изображения, и P и Q имеют одинаковые опорные изображения в списке 0, пара MV в списке 0 или списке 1 имеет расстояние >= половина пикселя в x-направлении или y-направлении
5. P имеет два MV, указывающих на два различных опорных изображения, и P и Q имеют различные опорные изображения в списке 0, MV из P в списке 0 и MV из Q в списке 1 имеют расстояние >= половина пикселя в x-направлении или y-направлении, или MV из P в списке 1 и MV из Q в списке 0 имеют расстояние >= половина пикселя в x-направлении или y-направлении
6. P и Q оба имеют два MV, указывающих на одни и те же опорные изображения, и оба из следующих двух условий удовлетворяются: pointing to the same ref pictures, and both of the following two conditions are satisfied:
○ MV из P в списке 0 и MV из Q в списке 0 имеет расстояние >= половина пикселя в x-направлении или y-направлении или MV из P в списке 1 и MV из Q в списке 1 имеют расстояние >= половина пикселя в x-направлении или y-направлении
○ MV из P в списке 0 и MV из Q в списке 1 имеет расстояние >= половина пикселя в x-направлении или y-направлении или MV из P в списке 1 и MV из Q в списке 1 имеют расстояние >= половина пикселя в x-направлении или y-направлении
*Примечание:
Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или различными, основывается только на том, какие изображения являются опорными, без обращения к тому, формируется ли предсказание, используя индекс внутри списка 0 опорных изображений или индекс в списке 1 опорных изображений, а также без обращения к тому, является ли другим положение индекса внутри списка опорных изображений.
1 N/A N/A
В противном случае 0 0 0
2.2.4. Более сильный деблокирующий фильтр для яркости.
Предложение использует билинейный фильтр, когда отсчеты на любой одной из сторон границы принадлежат большому блоку. Отсчет, принадлежащий к большому блоку, определяется, как когда ширина>= 32 для вертикального края и когда высота >=32 для горизонтального края.
Билинейный фильтр представляется ниже.
Отсчеты pi границы блока samples для i=0 - Sp-1 и qi для j=0 - Sq-1 (pi и qi следуют определениям деблокирования, описанным выше в HEVC) затем заменяются линейной интерполяцией следующим образом:
где термин и является положением, зависящим от сжатия, описанным в разделе 2.2.5, и , , , и приводятся ниже:
Sp, Sq
7, 7
(сторона p: 7,
сторона q : 7)
7, 3
(сторона p: 7
сторона q : 3)
3, 7
(сторона p: 3
сторона q : 7)
7, 5
(сторона p: 7
сторона q : 5)

5, 7
(сторона p: 5
сторона q : 7)
5, 5
(сторона p: 5
сторона q : 5)
5, 3
(сторона p: 5
сторона q : 3)
3, 5
(сторона p: 3
сторона q : 5)
2.2.5. Управление деблокированием для яркости
В этом подразделе описывается процесс принятия решения о деблокировании.
Более широкие-более сильные фильтры являются фильтрами, которые используются, только если все условия, условие 1, условие 2 и условие 3, являются действительными (TRUE).
Условием 1 является "условие большого блока". Это условие обнаруживает, принадлежат ли отсчеты на P-стороне и на Q-стороне большим блокам, которые представляются переменной bSidePisLargeBlk и bSideQisLargeBlk, соответственно. bSidePisLargeBlk и bSideQisLargeBlk определяются следующим образом.
bSidePisLargeBlk = ((тип края является вертикальным и p0 принадлежит CU с шириной >= 32) | | (тип края является горизонтальным и p0 принадлежит CU с высотой >= 32))? TRUE (действительно): FALSE (ложь)
bSidePisLargeBlk = ((тип края является вертикальным и 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( p5,0 - 2 * p4,0 + p3,0 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p5,3 - 2 * p4,3 + p3,3 ) + 1 ) >> 1
если (сторона q больше или равна 32)
dq0 = ( dq0 + Abs( q5,0 - 2 * q4,0 + q3,0 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q5,3 - 2 * q4,3 + q3,3 ) + 1 ) >> 1
dpq0, dpq3, dp, dq, d затем получают как в HEVC.
Затем условие 2 определяют следующим образом.
Условие 2 = (d < β) ? TRUE (действительно): FALSE (ложь)
Где d=dp0+dq0+dp3+dq3, как показано в разделе 2.1.4.
Если условие 1 и условие 2 действительны, проверяют, используются ли какие-либо блоки субблоки:
If(bSidePisLargeBlk)
If(mode block P == SUBBLOCKMODE)
Sp =5
else
Sp =7
else
Sp =3
If(bSideQisLargeBlk)
If(mode block Q == SUBBLOCKMODE)
Sq =5
else
Sq =7
else
Sq =3
Наконец, если условие 1 и условие 2 оба являются действительными, предложенный способ деблокирования будет проверять условие 3 (условие сильного фильтра большого блока), которое определяется следующим образом.
В условии 3, условие сильного фильтра, получают следующие переменные:
dpq получают как в HEVC.
sp3 = Abs(p3 - p0 ), получают как в HEVC
если (сторона p больше или равна 32)
if(Sp==5)
sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1
else
sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1
sp3 = Abs(p3 - p0 ), получают как в HEVC
если (сторона q больше или равна 32)
Если (Sp==5)
sq3 = ( sq3 + Abs( q5 - q3 ) + 1) >> 1
далее
sq3 = ( sq3 + Abs( q7 - q3 ) + 1) >> 1
Как при получении в HEVC, условие сильного фильтра (dpq меньше, чем ( в >> 2 ), sp3 + sq3 меньше, чем ( 3*в >> 5 ), и Abs( p0 - q0 ) меньше, чем ( 5 * tC + 1 ) >> 1) ? TRUE (действительно): FALSE (ложь)
На фиг. 6 показана общая блок-схема последовательности выполнения операций процесса деблокирующей фильтрации яркости.
2.2.6. Сильный деблокирующий фильтр для цветности
Ниже определяется сильный деблокирующий фильтр для цветности:
p2'= (3*p3+2*p2+p1+p0+q0+4) >> 3
p1'= (2*p3+p2+2*p1+p0+q0+q1+4) >> 3
p0'= (p3+p2+p1+2*p0+q0+q1+q2+4) >> 3
Предложенный фильтр цветности выполняет деблокирование на сетке 4х4 отсчетов цветности.
2.2.7. Управление деблокированием для цветности
Представленный выше фильтр цветности выполняет деблокирование на сетке 8х8 отсчетов цветности. Сильные фильтры цветности используются на обеих сторонах границы блока. Здесь, фильтр цветности выбирается, когда обе стороны края цветности больше или равны 8 (в единицах отсчетов цветности) и удовлетворяется нижеследующее решение с тремя условиями. Первое условие служит для принятия решения о прочности границы, а также, о большом блоке. Второе и третье условия являются, главным образом, такими же, как для принятия решения о яркости в HEVC, которые являются решением о включении/выключении и решением о сильном фильтре, соответственно.
На фиг. 7 показана блок-схема последовательности выполнения операций процесса деблокирующей фильтрации цветности.
2.2.8. Сжатие, зависящее от положения
Предложение также вводит сжатие tcPD, зависящее от положения, которое применяется к выходным отсчетам процесса фильтрации яркости, включающего сильные и длиные фильтры, которые модифицируют 7, 5 и 3 отсчетов на границе. Принимая распределение ошибки квантования, предполагается увеличить значение сжатия для отсчетов, которые, как ожидается, должны иметь более высокий шум квантования, и, таким образом, как ожидается, должны иметь более высокую девиацию реконструированного значения отсчета от действительного значения отсчета.
Для каждой границы P или Q, отфильтрованной предполагаемым асимметричным фильтром, в зависимости от результата принятия решения, описанного в разделе 2.2, таблица порога, зависимого от положения, выбирается из таблиц Tc7 и Tc3, которые предоставляются декодеру в качестве побочной информации:
Tc7 = { 6, 5, 4, 3, 2, 1, 1};
Tc3 = { 6, 4, 2 };
tcPD = (SP == 3) ? Tc3 : Tc7;
tcQD = (SQ == 3) ? Tc3 : Tc7;
Для границы Р или 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 являются порогами сжатия, которые получают из параметра tc VVC и tcPD и tcQD. Член clip3 является функцией сжатия, которая описывается в VVC.
2.2.9. Регулирование деблокирования субблоков
Чтобы позволить удобное параллельное деблокирование, используя как длинные фильтры, так и деблокирование субблоков, длинные фильтры ограничиваются для модификации, самое большее, 5 отсчетами на той стороне, которая использует деблокирование субблоков (AFFINE или ATMVP), как показано в управлении яркостью для длинных фильтров. Дополнительно, деблокирование субблоков регулируется, чтобы границы субблоков на сетке 8x8, которые близки к CU или неявной границе TU, ограничивались для модификации, максимально, двумя отсчетами на каждой стороне.
Нижеследующее применяется к границам субблоков, которые не совпадают с границей CU.
If(mode block Q == SUBBLOCKMODE && edge!=0){
if (!(implicitTU && (edge == (64 / 4))))
if (edge == 2 || edge == (orthogonalLength - 2) || edge == (56 / 4) || edge == (72 / 4))
Sp = Sq = 2;
else
Sp = Sq = 3;
else
Sp = Sq = bSideQisLargeBlk? 5:3
}
Там, где край равен 0, это соответствует границе CU, где край равен 2 или равен orthogonalLength-2, что соответствует 8 отсчетам границы субблока от границы CU и т.д. Неявный TU действителен, если используется неявное разбиение TU. На фиг. 8 показаны блок-схемы последовательности выполнения операций процесса определения границ TU и границ субблоков PU
Фильтрация горизонтальной границы ограничивается Sp= 3 для яркости, Sp=1 и Sq=1 для цветности, когда горизонтальная граница совпадает с границей CTU.
2.2.10. Принятие решения о деблокировании, принимаемое при малой разнице в движении
HEVC разрешает деблокирование границы блока предсказания, когда разность по меньшей мере в одном компоненте вектора движения между блоками на соответствующей стороне границы равна или больше порога, равного 1 отсчету. В VTM6 вводится порог, равный половинному отсчету яркости, чтобы также разрешить удаление артефактов блокоирования, появляющихся из-за границ между блоками предсказания, которые имеют малую разность векторов движения.
2.3. Объединенное межкадровое и внутрикадровое предсказание (Combined inter and intra prediction (CIIP)
В VTM6, когда CU кодируется в режиме слияния, если CU содержит по меньшей мере 64 отсчета яркости (то есть, ширина CU, умноженная на высоту CU, равна или больше 64) и если ширина CU и высота CU одновременно меньше 128 отсчетов яркости, сообщается дополнительный флаг, чтобы указать, применяется ли режим объединенного межкадрового/внутрикадрового предсказания (CIIP) к текущему CU. Как указывает его название, предсказание CIIP объединяет сигнал межкадрового предсказания с сигналом внутрикадрового предсказания. Сигнал Pinter межкадрового предсказания в режиме CIIP получают, используя тот же самый процесс межкадрового предсказания, который применяется к обычному режиму слияния; и сигнал Pintra получают, следуя обычному процессу внутрикадрового предсказания с помощью планарного режима. Затем, сигналы внутрикадрового и межкадрового предсказания объединяются, используя взвешенное усреднение, где значение веса вычисляется в зависимости от режимов кодирования верхнего и левого соседних блоков, как описано ниже:
- Если верхний сосед доступен и внутрикадрово кодирован, то устанавливают isIntraTop на 1, в противном случае, устанавливают isIntraTop на 0.
- Если левый сосед доступен и внутрикадрово кодирован, то устанавливают isIntraLeft на 1, в противном случае, устанавливают isIntraLeft на 0.
- Если (isIntraLeft + isIntraLeft) равно 2, то wt устанавливают равным 3;
- В противном случае (isIntraLeft + isIntraLeft) равно 1, то wt устанавливают равным 2;
- В противном случае, устанавливают равным 1.
Предсказание CIIP формируют следующим образом:
Построение таблицы QP цветности в VTM-6.0
В некоторых вариантах осуществления используется таблица QP цветности. В некоторых вариантах осуществления для таблиц QP цветности используется механизм сигнализации, который позволяет гибким способом предоставлять кодерам благоприятную возможность оптимизации таблицы для контента SDR и HDR. Это поддерживает отдельное сообщение таблиц для компонент Cb и Cr components. Предложенный механизм сообщает таблицу QP цветности в качестве кусочно-линейной функции.
2.5. Пропуск преобразования (Transform Skip,TS)
Как и в HEVC, остаток блока может кодироваться с помощью режима пропуска преобразования. Чтобы избежать избыточности кодирования синтаксиса, флаг пропуска преобразования не сообщается, когда уровень CU MTS_CU_flag не равен нулю. Ограничение размера блока для пропуска преобразования является таким же, как для MTS в JEM4, где указано, что пропуск преобразования может применяться для CU, когда как ширина, так и высота блока оба равны или меньше 32. Заметим, что неявное преобразование MTS устанавливается на DCT2, когда LFNST или MIP активируется для текущего CU. Кроме того, неявное MTS может все еще разрешаться, когда MTS разрешается для межкадрово кодированных блоков.
Дополнительно, для блока пропуска преобразования минимально разрешенный параметр квантования (QP) определяется как 6*(internalBitDepth - inputBitDepth) + 4.
2.6. Совместное кодирование остатков цветности (Joint coding of chroma residuals, JCCR)
В некоторых вариантах осуществления остатки цветности кодируются совместно. Использование (активация) режима совместного кодирования цветности указывается флагом TU-уровня tu_joint_cbcr_residual_flag и выбранный режим неявно указывается CBF цветности. Флаг tu_joint_cbcr_residual_flag представляется, если один или оба CBF цветности для TU равны 1. В PPS и заголовке секции значения смещения QP цветности сообщаются для режима совместного кодирования остатков цветности, чтобы дифференцироваться от обычных значений смещения QP цветности, сообщаемых для обычного режима кодирования остатков цветности. Эти значения смещения QP цветности используются для получения значений QP цветности для этих блоков, кодированных, используя совместный режим кодирования остатков цветности. Когда в TU активируется соответствующий совместный режим кодирования цветности (режимы 2 в таблице 3), это смещение QP цветности добавляется к применяемому QP цветности, полученному из яркости, во время квантования и декодирования этого TU. Для других режимов (режимы 1 и 3 в таблице 3) QP цветности получают таким же способом, как для обычных блоков Cb или Cr. Процесс реконструкции остатков цветности (resCb и resCr) из переданных блоков преобразования показан в таблице 3. Когда этот режим активируется, один одиночный остаточный блок цветности (resJointC[x][y] в таблице 3) сообщается и остаточный блок для Cb (resCb) и остаточный блок для Cr (resCr) получаются, рассматривая такую информацию, как tu_cbf_cb, tu_cbf_cr и CSign, которая является значением знака, указываемым в заголовке секции.
На стороне кодера совместные компоненты цветности получают так, как объясняется далее. В зависимости от режима (перечисленных в приведенных выше таблицах), resJointC{1,2} формируются кодером следующим образом:
• Если режимом является режим 2 (одиночный остаток с реконструкцией Cb = C, Cr = CSign * C), совместный остаток определяется в соответствии с:
resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2.
• В против ном случае, если режимом является режим 1 (одиночный остаток с реконструкцией Cb = C, Cr = (CSign * C) / 2), совместный остаток определяется в соответствии с:
resJointC[ x ][ y ] = ( resCb[ x ][ y ] + CSign * resCr[ x ][ y ] ) / 2.
• В противном случае, если режимом является режим 3 (одиночный остаток с реконструкцией Cr = C, Cb = (CSign * C) / 2), совместный остаток определяется в соответствии с
resJointC[ x ][ y ] = ( 4 * resCr[ x ][ y ] + 2 * CSign * resCb[ x ][ y ] ) / 5.
Таблица 3
Реконструкция остатков цветности. Значение CSign является значением знака (+1 или -1), которое указывается в заголовке секции, resJointC[ ][ ] является передаваемым остатком
tu_cbf_cb tu_cbf_cr Реконструкция остатков Cb и Cr Режим
1 0 resCb[ x ][ y ] = resJointC[ x ][ y ]
resCr[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1
1
1 1 resCb[ x ][ y ] = resJointC[ x ][ y ]
resCr[ x ][ y ] = CSign * resJointC[ x ][ y ]
2
0 1 resCb[ x ][ y ] = ( CSign * resJointC[ x ][ y ] ) >> 1
resCr[ x ][ y ] = resJointC[ x ][ y ]
3
Различные QP используются согласно трем приведенным выше режимам. Для режима 2 применяется смещение QP, сообщаемое в PPS для кодированного блока JCCR, тогда как для двух других режимов это не применяется, а взамен применяется смещение QP, сообщаемое PPS для кодированного блока не-JCCR.
Соответствующая спецификация является следующей:
8.7.1 Процесс получения параметров квантования
Переменную QpY получают следующим образом:
Параметр Qp'Y квантования яркости получают следующим образом:
Когда ChromaArrayType не равно 0 и treeType равно SINGLE_TREE или DUAL_TREE_CHROMA, применяют следующее:
- Когда treeType равно DUAL_TREE_CHROMA, переменная QpY устанавливается равной параметру QpY квантования яркости блока кодирования яркости, который охватывает местоположение ( xCb + cbWidth / 2, yCb + cbHeight / 2 ).
- Переменные qPCb, qPCr и qPCbCr получают следующим образом:
- Параметры квантовани я цветности для компонентов Cb и Cr, Qp'Cb и Qp'Cr, и Qp'CbCr совместно кодируемых Cb-Cr получают следующим образом:
8.7.3 Процесс масштабирования коэффициентов преобразования
Входными данными этого процесса являются:
- местоположение яркости (xTbY, yTbY), указывающее верхний левый отсчет текущего блока преобразования яркости относительно левого верхнего отсчета яркости текущего изображения,
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная cIdx, указывающая компонент цветности текущего блока,
- переменная bitDepth, указывающая битовую глубину текущего компонента цветности.
Выходным результатом этого процесса является массив d (nTbW)x(nTbH) масштабированных коэффициентов преобразования с элементами d[ x ][ y ].
Параметр qP квантования получают следующим образом:
- Если cIdx равно 0 и transform_skip_flag[ xTbY ][ yTbY ] равно 0, применяют следующее:
- В противном случае, если cIdx равно 0 (и transform_skip_flag[ xTbY ][ yTbY ] равно 1, применяют следующее:
- В противном случае, если TuCResMode[ xTbY ][ yTbY ] равно 2, применяют следующее:
- В противном случае, если cIdx равно 1, применяют следующее:
- В противном случае (cIdx равно 2), применяют следующее:
3. Недостатки существующих реализаций
DMVR и BIO не включают в себя исходный сигнал во время уточнения векторов движения, что может в результате давать блоки кодирования с неточной информацией о движении. Кроме того, DMVR и BIO иногда используют дробные векторы движения после уточнения движения, тогда как экранные видео обычно имеют целочисленные векторы движения, которые делают текущую информацию о движении более неточной и ухудшают характеристики кодирования.
1. Взаимодействие между таблицей QP цветности и деблокированием цветности может иметь проблемы, например, таблица QP цветности может применяться к индивидуальному QP, но не к взвешенной сумме QP.
2. Логика процесса деблокирующей фильтрации яркости сложна для построения аппаратных средств.
3. Логика получения прочности границы слишком сложна как для программного обеспечения, так и для построения аппаратных средств.
4. В процессе принятия решения BS, JCCR обрабатывается отдельно от тех блоков, которые кодированы без применения JCCT. Однако, JCCR является единственным специальным способом кодирования остатка. Поэтому такое построение может вносить дополнительную сложность без получения явных преимуществ.
5. При принятии решения о крае цветности QpQ и QpP устанавливаются равными значениям QpY блоков кодирования, которые содержат блоки кодирования, имеющие отсчет q0,0 и p0,0, соответственно. Однако, в процессе квантования/деквантования QP для отсчета цветности получают из QP блока яркости, включающего в себя соответствующий отсчет яркости центральной позиции текущего CU цветности. Когда разрешено двоичное дерево, результатом могут быть различные расположения блоков яркости в различных QP. Поэтому в процесс деблокирования яркости при принятии решения о фильтре могут использоваться ложные QP. Такое несоответствие может приводить к визуальным артефактам. Пример этого показан на фиг. 9, содержащем фиг. 9(а) и фиг. 9(b). На фиг. 9 левая сторона (фиг. 9(a)) является соответствующим разделением CTB для блока яркости, а правая сторона (фиг. 9(b)) является разделением CTB цветности для двоичного дерева. При определении QP для блока цветности, обозначенного CUc1, сначала получают центральное положение CUc1. Затем соответствующий отсчет яркости центрального положения CUc1 идентифицируется и QP яркости, связанный с CU яркости, который включает в себя соответствующий отсчет яркости, то есть, CUY3, затем используется для получения QP для CUc1. Однако, при принятии решений о фильтре для показанных трех отсчетов (со сплошными кругами) выбираются QP для CU, которые охватывают соответствующие 3 отсчета. Поэтому, для для первой, второй и третьей отсчетов цветности (показанных на фиг. 9(b)), используются QP для CUY2, CUY3, CUY4, respectivley. То есть, отсчеты цветности в одном и том же CU могут использовать различные QP для принятия решения о фильтре, что может в результате приводить к неверным решениям.
6. Различное смещение QP на уровне изображения (то есть, pps_joint_cbcr_qp_offset) применяется к кодированным блокам JCCR, которые отличаются от смещений на уровне изображения для Cb/Cr (напримр, pps_cb_qp_offset и pps_cr_qp_offset), применяемых к кодированным блокам не-JCCR. Однако, в процессе принятия решения о деблокирующем фильтре цветности для кодированных блоков не-JCCR используются эти смещения. Отсутствие рассмотрения кодированных режимов может привести в результате ложного решения о фильтре.
7. Кодированные блоки TS и не-TS используют различные QP в процессе деквантования, которые также могут учитываться в процессе деблокирования..
8. Различные QP используются в процессе масштабирования (квантования/деквантования) для блоков JCCR, кодированных с различными режимами. Такое построение является несовместимым.
4. Примеры технологий и вариантов осуществления
Подробно описанные ниже варианты осуществления должны рассматриваться как примеры, служащие для объяснения общих концепций. Эти варианты осуществления не должны интерпретироваться узким способом. Дополнительно, эти варианты осуществления могут объединяться в любой манере.
Способы, описанные ниже, могут также быть применимы к другим технологиям получения информации о движении для декодера в дополнение к упомянутым ниже DMVR и BIO.
В последующих примерах MVM[i].x и MVM[i].y обозначают горизонтальный и вертикальный компоненты вектора движения в списке i опорных изображений (i равно 0 или 1) блока на стороне M (M является P или Q). Abs обозначает операцию получения абсолютного значения входных данных и “&&” и “||” обозначает логическую операцию AND (И) и OR (ИЛИ). Как показано на фиг. 10, P может означать отсчеты на стороне P и Q может означать отсчеты на стороне Q. Блоки на стороне P и Q могут означать блок, маркированный пунктирными линиями.
По поводу QP цветности в деблокировании
1. Когда таблица QP цветности используется для получения параметров, чтобы управлять деблокированием цветности (например, в процессе принятия решения для краев блока цветности), смещения QP цветности могут применяться после применения таблицы QP цветности.
a. В одном примере смещения QP цветности могут добавляться к значению, выводимому таблицей QP цветности.
b. В одном примере смещения QP цветности могут добавляться к значению, выводимому таблицей QP цветности.
c. В одном примере смещения QP цветности могут смещением параметра квантования цветности на уровне изображения или на другом уровне видеоблока (секции/плитки/элемента/субизображения) (например, pps_cb_qp_offset, pps_cr_qp_offset в этом описании).
2. Сжатие QP может не применяться к входным данным таблицы QP цветности.
3. Предполагается рассмотреть смещения параметра квантования на уровне изображения/секции/плитки/элемента/субизображения, используемые для различных способов кодирования в процессе принятия решения о деблокирующем фильтре.
a. В одном примере выбор смещений параметров квантования на уровне изображения/секции/плитки/элемента/субизображения для принятия решения о фильтре (непример, решения о крае цветности в процессе деблокирующего фильтра) может зависеть от способов кодирования на каждой стороне.
b. В одном примере процесс фильтрации (нпример, процесс принятия решения о крае цветности), который требует использования параметров квантования для блоков цветности, может зависеть от того, используют ли блоки JCCR.
i. Альтернативно, дополнительно, смещения QP на уровне изображения/секции (например, pps_joint_cbcr_qp_offset), применяемых к кодированным блокам JCCR, могут дополнительно учитываться в процессе деблокирующей фильтрации.
ii. В одном примере, cQpPicOffset, которое используется для принятия решения об установках Tc и β, могут устанавливаться на pps_joint_cbcr_qp_offset вместо pps_cb_qp_offset или pps_cr_qp_offset при определенных условиях:
1. В одном примере, когда один из блоков на стороне P или Q использует JCCR.
2. В одном примере, когда оба блока на сторонах P или Q использует JCCR.
4. Процесс фильтрации цветности (нпример, процесс принятия решения о крае цветности), который требует доступа к декодированной информации блока яркости, может использовать информацию, связанную с тем же самым блоком кодирования яркости, которая использовалась для получения QP цветности в процессе деквантования/квантования.
a. В одном примере процесс фильтрации цветности (нпример, процесс принятия решения о крае цветности), который требует использования параметров квантования для блоков яркости, может использовать блок кодирования яркости, охватывающий соответствующий отсчет яркости в центральном положении текущего CU цветности.
b. На фиг. 9 описывается пример, в котором декодированная информация CUY3 может использоваться для принятия решения о фильтрации трех отсчетов цветности (1-ой, 2-ой и 3-ей) на фиг. 9(b).
5. Процесс фильтрации цветности (например, процесс принятия решения о крае цветности) может зависеть от параметра квантования, применяемого к процессу масштабирования блока цветности (например, квантования/деквантования).
a. В одном примере, QP, используемый для получения β и Tc, может зависеть от QP, применяемого к процессу масштабирования блока цветности.
b. Альтернативно, дополнительно, QP, используемый в процессе масштабирования блока цветности, может учитывать смещение QP на уровне CU цветности.
6. Привлекать ли приведенные выше положения, зависит от того, находится ли отсчет, который должен фильтроваться, в блоке на стороне P или Q.
a. Например, использовать ли информацию блока кодирования яркости, охватывающего соответствующий отсчет яркости текущего отсчета цветности, или использовать информацию блока кодирования яркости, охватывающего соответствующий отсчет яркости центрального положения блока кодирования цветности, охватывающего текущий отсчет цветности, может зависеть от положения блока.
i. В одном примере, если текущий отсчет цветности находится в блоке на стороне Q, может использоваться информация QP блока кодирования яркости, охватывающего соответствующий отсчет яркости в центральном положении блока кодирования цветности, охватывающего текущий отсчет цветности.
ii. В одном примере, если текущий отсчет цветности находится в блоке на стороне P, может использоваться информация QP блока кодирования яркости, охватывающего соответствующий отсчет яркости отсчета цветности.
Об установках QP
7. Предлагается сообщать индикацию разрешения смещения QP цветности на уровне блока (например, флаг slice_cu_chroma_qp_offset_enabled_flag) на уровне секции/плитки/элемента/субизображения.
a. Альтернативно, сообщение такой индикации может сообщаться условно.
i. В одном примере, оно может сообщаться при условии флага разрешения JCCR.
ii. В одном примере, оно может сообщаться при условии флага разрешения смещения QP цветности на уровне блока уровня изображения.
iii. Альтернативно, взамен может быть получена такая индикация.
b. В одном примере, флаг slice_cu_chroma_qp_offset_enabled_flag может сообщаться, только когда является действительным флаг PPS смещения QP цветности (например, slice_cu_chroma_qp_offset_enabled_flag).
c. В одном примере, флаг slice_cu_chroma_qp_offset_enabled_flag может приниматься как ложный, только когда является ложным флаг PPS смещения QP цветности (например, slice_cu_chroma_qp_offset_enabled_flag).
d. В одном примере, использовать ли смещение QP цветности, может быть основано на флагах смещения QP цветности на уровне PPS и/или уровне секции.
8. Различные QP используются в процессе масштабирования (квантования/деквантования) для блоков JCCR, кодированных с различными режимами.
a. В одном примере, для JCCR с режимом 1 и 3 QP зависит от смещения QP, сообщаемого на уровне изображения/секции (например, pps_cbcr_qp_offset, slice_cbcr_qp_offset).
Процедуры фильтрации
9. Деблокирование для всех цветовых компонентов, не считая первого цветового компонента, может следовать процессу деблокирования для первого цветового компонента.
a. В одном примере, когда цветовым форматом является 4:4:4, процесс деблокирования для второго и третьего компонентов может следовать процессу деблокирования для первого компонента.
b. В одном примере, когда цветовым форматом является 4:4:4 в цветовом пространстве RGB, процесс деблокирования для второго и третьего компонентов может следовать процессу деблокирования для первого компонента.
c. В одном примере, когда цветовым форматом является 4:2:2, вертикальный процесс деблокирования для второго и третьего компонентов может следовать вертикальному процессу деблокирования для первого компонента.
d. В приведенных выше примерах процесс деблокирования может относиться к процессу принятия решения о деблокировании и/или процессу фильтрации деблокирования.
О получении прочности границы
10. Предлагается обрабатывать кодированные блоки JCCR как такие кодированные блоки не-JCCR в процессе принятия решения о прочности границы.
a. В одном примере, определене прочности границы (boundary strength, BS) может быть независимым от проверки использования JCCR для двух блоков на сторонах P и Q.
b. В одном примере, прочность границы (BS) для блока может определяться независимо от того, кодируется ли блок с помощью JCCR или нет.
11. Предлагается получать прочность границы (BS) без сравнения опорных изображений и/или количества MV, связанных с блоком на стороне P, со опорными изображениями блока на стороне Q.
b. В одном примере, деблокирующий фильтр может быть запрещен, даже когда два блока связаны с разными опорными изображениями.
c. В одном примере, деблокирующий фильтр может быть запрещен, даже когда два блока связаны с разными количествами MV (например, один является уни-предсказываемым, а другой - би-предсказываемым).
d. В одном примере значение BS может быть установлено на 1, когда разности векторов движения для одного или всех списков опорных изображений между блоками на стороне Р и на стороне Q больше или равны порогу Th.
i) Альтернативно, дополнительно, значение BS может быть установлено на 0, когда разности векторов движения для одного или всех списков опорных изображений между блоками на стороне Р и на стороне Q больше или равны порогу Th.
e. В одном примере, разность векторов движения двух блоков, являющаяся большей, чем порог Th, может быть определена как (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)
i. Альтернативно, разность векторов движения, являющаяся больше, чем порог Th, может быть определена как (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)
ii. В одном примере, разность векторов движения двух блоков, являющаяся большей, чем порог Th, может быть определена как (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th ) && (Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th)
iii. В одном примере, разность векторов движения двух блоков, являющаяся большей, чем порог Th, может быть определена как (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th ) || (Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th)
f. В одном примере, блок, который не имеет вектора движения в заданном списке, может обрабатываться как имеющий нулевой вектор движения в этом списке.
g. В приведенных выше примерах, Th является целвм числом (например, 4, 8 или 16).
h. В приведенных выше примерах Th может зависеть от:
i. видеоконтентов (например, экранные содержания или естественные содержания)
ii. сообщения, передаваемого в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовке секции/заголовке группы плиток/наибольшем блоке кодирования (Largest coding unit, LCU)/блоке кодирования (Coding unit, CU)/строке LCU/группе LCU/TU/блоке PU/блоке видеокодирования
iii. положения CU/PU/TU/блока/блока видеокодирования
iv. кодированных режимов блоков, содержащих отсчеты, расположенные вдоль краев
v. матриц преобразования, применяемых к блокам, содержащим отсчеты, расположенные вдоль краев
vi. размера блоков/формы блоков текущего блока и/или соседних блоков
vii. индикации цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)
viii. структуры дерева кодирования (такой двоичное дерево или одиночное дерево)
ix. типа секции/группы плиток и/или типа изображения
x. цветового компонента (например, может применяться только для Cb или Cr)
xi. временного идентификатора уровня
xii. профилей/уровней/категорий стандарта
xiii. Альтернативно, Th может сообщаться декодеру.
i. Приведенные выше примеры могут применяться при определенных условиях.
i. В одном примере условием является blkP и blkQ, которые не кодируются внутрикадровыми режимами.
ii. В одном примере условием является blkP и blkQ, имеющие нулевые компоненты для компонента яркости.
iii. В одном примере условием является blkP и blkQ, которые не кодируются в режиме CIIP.
iv. В одном примере условием является blkP и blkQ, которые кодируются с одним и тем же режимом предсказания (например, IBC или межкадровое).
О процессе деблокирующей фильтрации яркости
12. Деблокирование может использовать различные QP для TS-кодированных блоков и для не-TS кодированных блоков.
a. В одном примере QP для TS может использоваться для TS-кодированных блоков, тогда как QP для не-TS может использоваться для не-TS-кодированных блоков.
13. Процесс фильтрации яркости (например, процесс принятия решения о крае яркости) может зависеть от параметра квантования, применяемого к процессу масштабирования блока яркости.
a. В одном примере, QP, используемый для получения β и Tc, может зависеть от диапазона сжатия пропуска преобразования, например, как указывается QpPrimeTsMin.
14. Предлагается использовать идентичное вычисление градиента как для границ больших блоков, так и для границ малых блоков.
a. В одном примере, принятие решения о включении/выключении деблокирующего фильтра, описанное в разделе 2.1.4, может также применяться к границе больших блоков.
i. В одном примере, порог β в решении может быть модифицирован для границы большого блока.
1. В одном примере, β может зависеть от параметра квантования.
2. В одном примере, β, используемый для принятия решения о включении/выключении деблокирующего фильтра для границ большого блока, может быть меньше, чем для границ малого блока.
a. В одном примере, β, используемый для принятия решения о включении/выключении деблокирующего фильтра для границ большого блока, может быть меньше, чем для границ малого блока.
b. В одном примере, β, используемый для принятия решения о включении/выключении деблокирующего фильтра для границ большого блока, может быть меньше, чем для границ малого блока.
3. В одном примере β является целвым числом и мжет быть основано на следующем:
a. видеоконтент (например, экранные содержания или естественные содержания)
b. Сообщение, передаваемое в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовке секции/заголовке группы плиток/наибольшем блоке кодирования (Largest coding unit, LCU)/блоке кодирования (Coding unit, CU)/строке LCU/группе LCU/TU/блоке PU/блоке видеокодирования
c. положение CU/PU/TU/блока/блока видеокодирования
d. кодированные режимы блоков, содержащих отсчеты, расположенные вдоль краев
e. матрицы преобразования, применяемые к блокам, содержащим отсчеты, расположенные вдоль краев
f. размер блоков текущего блока и/или соседних блоков
g. форма блоков текущего блока и/или соседних блоков
h. индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)
i. структура дерева кодирования (такая как двоичное дерево или одиночное дерево)
j. тип секции/группы плиток и/или типа изображения
k. цветовой компонент (например, может применяться только для Cb или Cr)
l. временной идентификатор уровня
m. профили/уровни/категории стандарта
n. альтернативно, β может сообщаться декодеру.
Общие положения
15. Предложенные выше способы могут применяться при определенных условиях.
a. В одном примере, условием является цветовой формат 4:2:0 и/или 4:2:2.
i. Альтернативно, дополнительно, для цветового формата 4:4:4 то, как применять деблокирующий фильтр к двум цветовым компонентам цветности может следовать текущему построению.
b. В одном примере, индикация использования представленных выше способов может сообщаться в последовательности/изображении/секции/плитке/элементе /уровне видеообласти, таких как SPS/PPS/заголовок изображения/заголовок секции.
c. В одном примере, использование представленных выше способов может зависеть от следующего:
i. видеоконтент (например, экранные содержания или естественные содержания)
ii. Сообщение, передаваемое в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовке секции/заголовке группы плиток/наибольшем блоке кодирования (Largest coding unit, LCU)/блоке кодирования (Coding unit, CU)/строке LCU/группе LCU/TU/блоке PU/блоке видеокодирования
iii. положение CU/PU/TU/блока/блока видеокодирования
iv. кодированные режимы блоков, содержащих отсчеты, расположенные вдоль краев
v. матрицы преобразования, применяемые к блокам, содержащим отсчеты, расположенные вдоль краев
vi. размер блоков текущего блока и/или соседних блоков
vii. форма блоков текущего блока и/или соседних блоков
viii. индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)
ix. структура дерева кодирования (такая как двоичное дерево или одиночное дерево)
x. тип секции/группы плиток и/или типа изображения
xi. цветовой компонент (например, может применяться только для Cb или Cr)
xii. временной идентификатор уровня
xiii. профили/уровни/категории стандарта
xiv. Альтернативно, m или n могут сообщаться декодеру.
5. Дополнительные варианты осуществления
Вновь добавленные тексты помечены подчеркнутым, полужирным курсивом. Удаленные тексты отмечены как [[]].
5.1. Вариант 1 осуществления для QP цветности при деблокировании
8.8.3.6 Процесс фильтрации краев для одного направления
- В противном случае, (cIdx не равно 0), процесс фильтрации для краев в блоке кодирования цветности, определяемый cIdx, из следующих по порядку этапов:
1. Переменную cQpPicOffset получают следующим образом:
cQpPicOffset = cIdx = = 1 ? pps_cb_qp_offset : pps_cr_qp_offset (8-1065)
8.8.3.6.3 Процесс принятия решений для краев блока цветности
Переменные QpQ и QpP устанавливаются равными значениям QpY блоков кодирования, которые включают в себя блоки кодирования, содержащие отсчеты q0,0 и p0,0, соответственно.
Переменную QpC получают следующим образом:
Примечание. Переменная cQpPicOffset обеспечивает регулирование значения of pps_cb_qp_offset или pps_cr_qp_offset, в соответствии с тем, является ли отфильтрованный компонент цветности компонентом Cb или Cr. Однако, чтобы избежать необходимости варьировать объем регулирования внутри изображения, процесс фильтрации не содержит ни регулирования значения slice_cb_qp_offset или slice_cr_qp_offset, ни (когда флаг cu_chroma_qp_offset_enabled_flag равен 1) для значения CuQpOffsetCb, CuQpOffsetCr, или CuQpOffsetCbCr.
Значение переменной β' определяется согласно указанному в таблице 8-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_beta_offset_div2 - значение элемента синтаксиса slice_beta_offset_div2 для секции, содержащей отсчет q0,0.
Переменную β получают следующим образом:
Значение переменной tC' определяется согласно указанному в таблице 8-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_tc_offset_div2 - значение элемента синтаксиса slice_tc_offset_div2 для секции, содержащей отсчет q0,0.
Переменную tC получают следующим образом:
5.2. Вариант 2 осуществления получения прочности границы
8.8.3.5 Процесс получения прочности границы при фильтрации
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения,
- местоположение (xCb, yCb ), указывающее верхнюю-левую отсчет текущего блока кодирования относительно левого верхнего отсчета яркости текущего изображения,
- переменная cIdx, указывающая ширину текущего блока кодирования,
- переменная nCbH, указывающая высоту текущего блока кодирования,
- переменная edgeType, указывающая фильтруется ли вертикальный (EDGE_VER) край или горизонтальный (EDGE_HOR) край,
- переменная cIdx, указывающая компонент цветности текущего блока кодирования,
- двумерный массив (nCbW)x(nCbH) edgeFlags.
Выходным результатом этого процесса является двумерный массив bS (nCbW) x (nCbH), указывающий прочность фильтрации границ.
Для xDi с i = 0..xN и yDj с j = 0..yN применяют следующее:
- Если edgeFlags[ xDi ][ yDj ] равно 0, переменная bS[ xDi ][ yDj ] устанавливается равной 0.
- В противном случае, применяют следующее:
- Переменную 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.
- В противном случае, если край блока является также краем блока преобразования, cIdx больше 0 и отсчет p0 или q0 находится в блоке преобразования с флагом tu_joint_cbcr_residual_flag, равным 1, bS[ xDi ][ yDj ] устанавливается равным 1.
- В противном случае, если режим предсказания субблока кодирования, содержащего отсчет p0, отличается от режима предсказания субблока кодирования, содержащего отсчет q0 (то есть, один их субблоков кодирования кодируется в режиме предсказания IBC, а другой кодируется в режиме межкадрового предсказания), bS[ xDi ][ yDj ] устанавливается равным 1.
- В противном случае, если cIdx равно 0 и одно или более из следующих условий действительно, bS[ xDi ][ yDj ] устанавливается равным 1:
- [[Субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, оба кодируются в режиме предсказания IBC и абсолютная разность между горизонтальным или вертикальным компонентом векторов блоков, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Для предсказания субблока кодирования, содержащего отсчет p0, используются другие опорные изображения или другое количество векторов движения, отличные от тех, которые используются для предсказания субблока кодирования, содержащего отсчет q0.
Примечание 1. Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или различными, основывается только на том, на какие изображения делается ссылка, без обращения к тому, формируется ли предсказание, используя индекс внутри списка 0 опорных изображений или индекс в списке 1 опорных изображений, а также без обращения к тому, является ли другим положение индекса внутри списка опорных изображений.
Примечание 2. Количество векторов движения, которые используются для предсказания субблока кодирования с верхним левым отсчетом, охватывающим ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].
- Один вектор движения используется для предсказания субблока кодирования, содержащего отсчет p0, и один вектор движения используется для предсказания субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальным или вертикальным компонентом используемых векторов блоков больше или равна 8 в единицах 1/16 отсчетов яркости.
- Два вектора движения и два различных опорных изображения используются для предсказания субблока кодирования, содержащего отсчет p0, два вектора движения для одних и тех же двух опорных изображений используются для предсказания субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальным или вертикальным компонентом двух векторов движения, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Два вектора движения для одного и того же опорного изображения используются для предсказания субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для предсказания субблока кодирования, содержащего отсчет q0, и оба из двух следующих условий являются действительными:
- Абсолютная разность между горизонтальным или вертикальным компонентом из векторов движения списка 0, используемых при предсказании двух субблоков кодирования, больше или равна 8 в 1/16 отсчетов яркости или абсолютная разность между горизонтальным или вертикальным компонентом из векторов движения списка 1, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Абсолютная разность между горизонтальным или вертикальным компонентом вектора движения из списка 0, используемого при предсказании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого при предсказании субблока кодирования, содержащего отсчет q0, больше или равна 8 в единицах 1/16 отсчетов яркости, или абсолютная разность между горизонтальным и вертикальным компонентом вектора движения из списка 1, используемого при предсказании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого при предсказании субблока кодирования, содержащего отсчет q0, больше или равна 8 в единицах 1/16 отсчетов яркости.]]
- В противном случае, переменная bS[ xDi ][ yDj ] устанавливается равной 0.
[125] 5.3. Вариант 3 осуществления получения прочности границы
8.8.3.5 Процесс получения прочности границы при фильтрации
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения,
- местоположение (xCb, yCb ) блока кодирования яркости, указывающее верхний левый отсчет текущего блока кодирования относительно левого верхнего отсчета яркости текущего изображения,
- переменная cIdx, указывающая ширину текущего блока кодирования,
- переменная nCbH, указывающая высоту текущего блока кодирования,
- переменная edgeType, указывающая фильтруется ли вертикальный (EDGE_VER) край или горизонтальный (EDGE_HOR) край,
- переменная cIdx, указывающая компонент цветности текущего блока кодирования,
- двумерный массив (nCbW)x(nCbH) edgeFlags.
Выходным результатом этого процесса является двумерный массив bS (nCbW) x (nCbH), указывающий прочность фильтрации границ.
Для xDi с i = 0..xN и yDj с j = 0..yN применяют следующее:
- Если edgeFlags[ xDi ][ yDj ] равно 0, переменная bS[ xDi ][ yDj ] устанавливается равной 0.
- В противном случае, применяют следующее:
- Переменную 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.
- [[В противном случае, если край блока является также краем блока преобразования, cIdx больше 0 и отсчет p0 или q0 находится в блоке преобразования с флагом tu_joint_cbcr_residual_flag, равным 1, bS[ xDi ][ yDj ] устанавливается равным 1.]]
- В противном случае, если режим предсказания субблока кодирования, содержащего отсчет p0, отличается от режима предсказания субблока кодирования, содержащего отсчет q0 (то есть, один их субблоков кодирования кодируется в режиме предсказания IBC, а другой кодируется в режиме межкадрового предсказания), bS[ xDi ][ yDj ] устанавливается равным 1.
- В противном случае, если cIdx равно 0 и одно или более из следующих условий действительно, bS[ xDi ][ yDj ] устанавливается равным 1:
- Субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, оба кодируются в режиме предсказания IBC и абсолютная разность между горизонтальным или вертикальным компонентом векторов блоков, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Для предсказания субблока кодирования, содержащего отсчет p0, используются другие опорные изображения или другое количество векторов движения, отличные от тех, которые используются для предсказания субблока кодирования, содержащего отсчет q0.
Примечание 1. Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или различными, основывается только на том, на какие изображения делается ссылка, без обращения к тому, формируется ли предсказание, используя индекс внутри списка 0 опорных изображений или индекс внутри списка 1 опорных изображений, а также без обращения к тому, является ли другим положение индекса внутри списка опорных изображений.
Примечание 2. Количество векторов движения, которые используются для предсказания субблока кодирования с верхним левым отсчетом, охватывающим ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].
- Один вектор движения используется для предсказания субблока кодирования, содержащего отсчет p0, и один вектор движения используется для предсказания субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальным или вертикальным компонентом используемых векторов блоковбольше или равна 8 в единицах 1/16 отсчетов яркости.
- Два вектора движения и два различных опорных изображения используются для предсказания субблока кодирования, содержащего отсчет p0, два вектора движения для одних и тех же двух опорных изображений используются для предсказания субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальным или вертикальным компонентом двух векторов движения, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Два вектора движения для одного и того же опорного изображения используются для предсказания субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для предсказания субблока кодирования, содержащего отсчет q0, и оба из двух следующих условий являются действительными:
- Абсолютная разность между горизонтальным или вертикальным компонентом из векторов движения списка 0, используемых при предсказании двух субблоков кодирования, больше или равна 8 в 1/16 отсчетов яркости или абсолютная разность между горизонтальным или вертикальным компонентом из векторов движения списка 1, используемых при предсказании двух субблоков кодирования, больше или равна 8 в единицах 1/16 отсчетов яркости.
- Абсолютная разность между горизонтальным или вертикальным компонентом вектора движения из списка 0, используемого при предсказании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого при предсказании субблока кодирования, содержащего отсчет q0, больше или равна 8 в единицах 1/16 отсчетов яркости, или абсолютная разность между горизонтальным и вертикальным компонентом вектора движения из списка 1, используемого при предсказании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого при предсказании субблока кодирования, содержащего отсчет q0, больше или равна 8 в единицах 1/16 отсчетов яркости.
- В противном случае, переменная bS[ xDi ][ yDj ] устанавливается равной 0.
5.4. Вариант 4 осуществления процесса деблокирующей фильтрации яркости
8.8.3.6.1 Процесс принятия решений для краев блока яркости
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения,
- местоположение (xCb, yCb ) блока кодирования яркости, указывающее верхий левый отсчет текущего блока кодирования относительно левого верхнего отсчета яркости текущего изображения,
- местоположение (xBl, yBl ), указывающее верхний левый отсчет текущего блока относительно верхнего левого отсчета текущего блока кодирования,
- переменная edgeType, указывающая фильтруется ли вертикальный (EDGE_VER) край или горизонтальный (EDGE_HOR) край,
- переменная bS, указывающая прочность фильтрации границы,
- переменная maxFilterLengthP, указывающая максимальную длину фильтра,
- переменная maxFilterLengthQ, указывающая максимальную длину фильтра,
Выходными данными этого процесса являются:
- переменные dE, dEp и dEq, содержащие решения,
- модифицированные переменные длины фильтра maxFilterLengthP и maxFilterLengthQ
- переменная tC.
Применяются нижеследующие упорядоченные этапы:
1. Когда sidePisLargeBlk или sideQisLargeBlk больше 0, применяют следующее:
a. Переменные dp0L, dp3 получают и maxFilterLengthP модифицируется следующим образом:
- [[Если переменная sidePisLargeBlk равна 1, применяют следующее:
- В противном случае, применяют следующее:]]
b. Переменные dq0L и dq3L получают следующим образом:
- [[Если переменная sideQisLargeBlk равна 1, применяют следующее:
- В противном случае, применяют следующее:]]
2. Переменные dE, dEp и dEq получают следующим образом:
5.5. Вариант 5 осуществления процесса деблокирующей фильтрации цветности
8.8.3.6.3 Процесс принятия решений для краев блока цветности
Этот процесс используется, только когда ChromaArrayType не равно 0.
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения цветности,
- местоположение (xCb, yCb ), указывающее верхний левый отсчет текущего блока кодирования цветности относительно верхнего левого отсчета цветности текущего изображения,
- местоположение (xBl, yBl ) цветности, указывающее верхний левый отсчет текущего блока цветности относительно верхнего левого отсчета текущего блока кодирования цветности,
- переменная edgeType, указывающая фильтруется ли вертикальный (EDGE_VER) край или горизонтальный (EDGE_HOR) край,
- переменная cIdx, указывающая индекс цветового компонента,
- переменная cQpPicOffset, определяющая смещение параметра квантования цветности на уровне изображения,
- переменная bS, указывающая прочность фильтрации границы,
- переменная maxFilterLengthCbCr.
Выходными данными этого процесса являются:
- модифицированная переменная maxFilterLengthCbCr,
- переменная tC.
Переменную maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
Значения pi и qi с i = 0.. maxFilterLengthCbCr и k = 0..maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
Значение переменной β' определяется согласно указанному в таблице t-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_beta_offset_div2 - значение элемента синтаксиса slice_beta_offset_div2 для секции, содержащей отсчет q0,0.
Переменную β получают следующим образом:
Значение переменной tC' определяется согласно указанному в таблице 8-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_tc_offset_div2 - значение элемента синтаксиса slice_tc_offset_div2 для секции, содержащей отсчет q0,0.
Переменную tC получают следующим образом:
Когда maxFilterLengthCbCr равно 1 и bS не равно 2, maxFilterLengthCbCr устанавливается равным 0.
5.6. Вариант 6 осуществления для QP цветности при деблокировании
8.8.3.6.3 Процесс принятия решений для краев блока цветности
Этот процесс используется, только когда ChromaArrayType не равно 0.
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения цветности,
- местоположение (xCb, yCb ), указывающее верхний левый отсчет текущего блока кодирования цветности относительно верхнего левого отсчета цветности текущего изображения,
- местоположение (xBl, yBl ) цветности, указывающее верхний левый отсчет текущего блока цветности относительно верхнего левого отсчета текущего блока кодирования цветности,
- переменная edgeType, указывающая фильтруется ли вертикальный (EDGE_VER) край или горизонтальный (EDGE_HOR) край,
- переменная cIdx, указывающая индекс цветового компонента,
- переменная cQpPicOffset, определяющая смещение параметра квантования цветности на уровне изображения,
- переменная bS, указывающая прочность фильтрации границы,
- переменная maxFilterLengthCbCr.
Выходными данными этого процесса являются:
- модифицированная переменная maxFilterLengthCbCr,
- переменная tC.
Переменную maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
Значения pi и qi с i = 0.. maxFilterLengthCbCr и k = 0..maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
Переменные QpQ и QpP устанавливаются равными значениям QpY блоков кодирования, которые включают в себи блоки кодирования, содержащие отсчет q0,0 и p0,0, соответственно.
Переменную QpC получают следующим образом:
Примечание. Переменная cQpPicOffset обеспечивает регулирование значения of pps_cb_qp_offset или pps_cr_qp_offset, в соответствии с тем, является ли отфильтрованный компонент цветности компонентом Cb или Cr. Однако, чтобы избежать необходимости варьировать объем регулирования внутри изображения, процесс фильтрации не содержит ни регулирования значения slice_cb_qp_offset или slice_cr_qp_offset, ни (когда флаг cu_chroma_qp_offset_enabled_flag равен 1) для значения CuQpOffsetCb, CuQpOffsetCr, или CuQpOffsetCbCr.
5.7. Вариант 7 осуществления для QP цветности при деблокировании
8.8.3.6.3 Процесс принятия решений для краев блока цветности
Этот процесс используется, только когда ChromaArrayType не равно 0.
Входными данными этого процесса являются:
- массив recPicture отсчетов изображения цветности,
- местоположение (xCb, yCb), указывающее верхний левый отсчет текущего блока кодирования цветности относительно верхнего левого отсчета цветности текущего изображения,
- …
Выходными данными этого процесса являются:
- модифицированная переменная maxFilterLengthCbCr,
- переменная tC.
Переменную maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
Значения pi и qi с i = 0.. maxFilterLengthCbCr и k = 0..maxK получают следующим образом:
- Если edgeType равно EDGE_VER, применяют следующее:
- В противном случае (edgeType равно EDGE_HOR), применяют следующее:
[[Переменные QpQ и QpP устанавливаются равными значениям QpY блоков кодирования, которые включают в себи блоки кодирования, содержащие отсчет q0,0 и p0,0, соответственно.]]
Переменную QpC получают следующим образом:
Примечание. Переменная cQpPicOffset обеспечивает регулирование значения of pps_cb_qp_offset или pps_cr_qp_offset, в соответствии с тем, является ли отфильтрованный компонент цветности компонентом Cb или Cr. Однако, чтобы избежать необходимости варьировать объем регулирования внутри изображения, процесс фильтрации не содержит ни регулирования значения slice_cb_qp_offset или slice_cr_qp_offset, ни (когда флаг cu_chroma_qp_offset_enabled_flag равен 1) для значения CuQpOffsetCb, CuQpOffsetCr, или CuQpOffsetCbCr.
Значение переменной β' определяется согласно указанному в таблице 8-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_beta_offset_div2 - значение элемента синтаксиса slice_beta_offset_div2 для секции, содержащей отсчет q0,0.
Переменную β получают следующим образом:
Значение переменной tC' определяется согласно указанному в таблице 8-18, основанной на параметре Q квантования, полученном следующим образом:
где slice_tc_offset_div2 - значение элемента синтаксиса slice_tc_offset_div2 для секции, содержащей отсчет q0,0.
5.8. Вариант 8 осуществления для QP цветности при деблокировании
При принятии решений о фильтре для показанных трех отсчетов (со сплошными кругами) выбираются QP для CU яркости, который охватывает центральное положение CU цветности, включающее в себя 3 отсчета.
Поэтому, для первой, второй и третьей отсчетов цветности (показанных на фиг. 11), используют только QP для CUY3, соответственно.
Таким образом, то, как выбрать CU яркости для процесса квантования/деквантования цветности, совпадает с процессом принятия решения для фильтра цветности.
5.9. Вариант 9 осуществления на QP, используемого для кодированных блоков JCCR
8.7.3 Процесс масштабирования коэффициентов преобразования
Входными данными этого процесса являются:
- местоположение яркости ( xTbY, yTbY ), указывающее верхний левый отсчет текущего блока преобразования яркости относительно левого верхнего отсчета яркости текущего изображения,
- переменная nTbW, указывающая ширину блока преобразования,
- переменная nTbH, указывающая высоту блока преобразования,
- переменная cIdx, указывающая компонент цветности текущего блока,
- переменная bitDepth, указывающая битовую глубину текущего компонента цветности.
Выходным результатом этого процесса является массив d (nTbW)x(nTbH) масштабированных коэффициентов преобразования с элементами d[ x ][ y ].
Параметр qP квантования получают следующим образом:
- Если cIdx равно 0 и transform_skip_flag[ xTbY ][ yTbY ] равно 0, применяют следующее:
- В противном случае, если cIdx равно 0 (и transform_skip_flag[ xTbY ][ yTbY ] равно 1, применяют следующее:
- В противном случае, если TuCResMode[ xTbY ][ yTbY ] не равно 0 [[равно 2]], применяют следующее:
- В противном случае, если cIdx равно 1, применяется следующее:
- В противном случае (cIdx равно 2), применяется следующее:
6. Примерные реализации раскрытой технологии
На фиг. 12 представлена блок-схема устройства 1200 видеообработки. Устройство 1200 может использоваться для осуществления одного или более из описанных здесь способов. Устройство 1200 может быть реализовано в виде смартфона, планшета, компьютера, приемника Интернета вещей (Internet of Things, IoT) и т.д. Устройство 1200 может содержать один или более процессоров 1202, одну или более памятей 1204 и аппаратные средства 1206 видеообработки. Процессор(-ы) 1202 может быть выполнен с возможностью реализации одного или более способов, описанных в настоящем документе. Память(-и) 1204 могут использоваться для хранения данных и управляющей программы, используемых для реализации описанных здесь способов и технологий. Аппаратные средства 1206 видеообработки могут использоваться для реализации в схеме аппаратных средств некоторых технологий, описанных в настоящем документе, и могут, частично или полностью, быть частью процессоров 1202 (например, графического процессора (graphics processor core, GPU) или другой схемы обработки сигналов).
В представленном документе термин "видеообработка" может относиться к видеокодированию, видеодекодированию, видеосжатию или видеораспаковке. Например, алгоритмы видеосжатия могут применяться во время преобразования из пиксельного представления видео в соответствующее представление битового потока видео и наоборот. Представление битового потока текущего видеоблока может, например, соответствовать битам, которые являются либо совместно расположенными, либо распределенными в различных местах внутри битового потока, как определяется синтаксисом. Например, макроблок может быть кодирован с точки зрения преобразованных и кодированных остаточных значений ошибки и также использования битов в заголовках и других полях в битовом потоке.
Следует понимать, что раскрытые способы и технологии будут обеспечивать преимущества вариантов осуществления кодеров и/или декодиров, включенных в состав устройств видеообработки, таких как смартфоны, ноутбуки, настольные компьютеры и аналогичные устройства, разрешая использование технологий, раскрытых в настоящем документе.
На фиг. 13 представлена блок-схема последовательности выполнения операций примерного процесса 1300 видеообработки. Способ 1300 на этапе 1310 содержит выполнение преобразования между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что когда для получения параметров деблокирующего фильтра используется таблица параметров квантования (QP) цветности, обработка с помощью таблицы QP цветности выполняется на индивидуальных значениях QP цветности.
Некоторые варианты осуществления могут быть описаны, используя нижеследующий, основанный по пунктах формат.
1. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что когда для получения параметров деблокирующего фильтра используется таблица параметров квантования (QP) цветности, обработка с помощью таблицы QP цветности выполняется на индивидуальных значениях QP цветности.
2. Способ по п. 1, в котором смещения QP цветности добавляются к индивидуальным значениям QP цветности вслед за обработкой таблицей QP цветности.
3. Способ по любому из пп. 1-2, в котором смещения QP цветности добавляются к значениям, выводимым таблицей QP цветности.
4. Способ по любому из пп. 1-2, в котором смещения QP цветности не учитываются в качестве входных данных для таблицы QP цветности.
5. Способ по п. 2, в котором смещения QP цветности находятся на уровне изображения или на уровне видеоблока.
6. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором смещения QP цветности находятся на уровне изображения/секции/плитки/элемента/субизображения.
7. Способ по п. 6, в котором смещения QP цветности, используемые в деблокирующем фильтре, связываются со способом кодирования, применяемым на границе видеоблока.
8. Способ по п. 7, в котором способ кодирования является способом совместного кодирования остатков цветности (joint coding of chrominance residuals, JCCR).
9. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором информация, относящаяся к одному и тому же блоку кодирования яркости, используется как в деблокирующем фильтре, так и для получения смещения QP цветности.
10. Способ по п. 9, в котором один и тот же блок кодирования яркости охватывает соответствующий отсчет яркости центрального положения видеоблока, в котором видеоблок является блоком кодирования цветности.
11. Способ по п. 9, в котором к видеоблоку применяют процесс масштабирования и в котором один или более параметров деблокирующего фильтра зависят, по меньшей мере, частично, от параметров квантования/деквантования процесса масштабирования.
12. Способ по п. 11, в котором параметры квантования/деквантования процесса масштабирования содержат смещение QP цветности.
13. Способ по любому из пп. 9-12, в котором отсчет яркости в видеоблоке находится на стороне Р или на стороне Q.
14. Способ по п. 13, в котором информация, относящаяся к одному и тому же блоку кодирования яркости, зависит от относительного положения блока кодирования относительно того же самого блока кодирования яркости.
15. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором индикация разрешения использования смещений QP цветности сообщается в представлении битового потока.
16. Способ по п. 15, в котором индикация сообщается на определенных условиях в ответ на обнаружение одного или более флагов.
17. Способ по п. 16, в котором один или более флагов связываются с флагом разрешения JCCR или с флагом разрешения смещения QP цветности.
18. Способ по п. 15, в котором индикация сообщается, основываясь на ее получении.
19. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором смещения QP цветности, используемые в деблокирующем фильтре, идентичны либо способу кодирования JCCR, применяемому на границе видеоблока, либо способу кодирования, отличному от способа кодирования JCCR, применяемому на границе видеоблока.
20. Способ видеообработки, содержащий этап, на котором:
выполняют преобразование между видеоблоком и представлением битового потока видеоблока, при котором во время преобразования деблокирующий фильтр используется на границах видеоблока таким образом, что смещения QP цветности используются в деблокирующем фильтре, в котором прочность границы (boundary strength, BS) деблокирующего фильтра вычисляется без сравнения опорных изображений и/или множества векторов движения (motion vector, MV), связанных с видеоблоком на границе стороны Р, со опорными изображениями видеоблока и/или с множеством векторов движения (MV), связанных с видеоблоком на стороне Q.
21. Способ по п. 20, в котором деблокирующий фильтр запрещается при одном или более условиях.
22. Способ по п. 21, в котором одно или более условий связаны со следующим: величина векторов движения (MV) или пороговое значение.
23. Способ по п. 22, в котором пороговое значение связывается по меньшей мере с одним из следующего: i. контенты видеоблока, ii. сообщение, сообщаемое в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовке секции/заголовке группы плиток/наибольшем блоке кодирования (Largest coding unit, LCU)/блоке кодирования (Coding unit, CU)/строке LCU/группе LCU/TU/блоке PU/блоке видеокодирования, iii. положение CU/PU/TU/блока/блока видеокодирования, iv. режим кодирования блоков с отсчетами, расположенными вдоль границ, v. матрица преобразования, применяемая к видеоблокам с отсчетами, расположенными вдоль границ, vi. форма или размеры видеоблока, vii. индикация цветового формата, viii. структура дерева кодирования, ix. тип секции/тип группы плиток и/или тип изображения type, x. цветовой компонент, xi. a Временный идентификатор уровня, или xii. профиль/уровень/категория стандарта.
24. Способ по п. 20, в котором различные смещения QP используются для TS-кодированных видеоблоков и не-TS-кодированных видеоблоков.
25. Способ по п. 20, в котором QP, используемый на этапе фильтрации яркости, связывается с QP, используемым в процессе масштабирования блока яркости.
26. Устройство видеодекодирования, содержащее процессор, выполненный с возможностью реализации способа, представленного в одном или более из пп. 1-25.
27. Устройство видеодекодирования, содержащее процессор, выполненный с возможностью реализации способа, представленного в одном или более из пп. 1-25.
28. Компьютерный программный продукт, на котором хранится управляющая программа, которая, когда исполняется процессором, заставляет процессор реализовывать способ, представленный в любом из пп. 1-25.
29. Способ, устройство или система, описанные в настоящем документе.
На фиг. 14 представлена блок-схема примерной системы 1400 видеообработки, в которой могут быть реализованы различные технологии. Различные реализации могут содержать некоторые или все компоненты системы 1400. Система 1400 может содержать вход 1402 для приема видеоконтента. Видеоконтент может приниматься в строчном или несжатом формате, например, 8-ми или 10-тибитовые многокомпонентные пиксельные значения, или может быть в сжатом или кодированном формате. Вход может представлять собой сетевой интерфейс, интерфейс периферийной шины или интерфейс запоминающего устройства. Примеры сетевого интерфейса содержат проводные интерфейсы, такие как Ethernet, пассивную оптическую сеть (passive optical network, PON), и т.д. и бевпроводные интерфейсы, такие как Wi-Fi-интерфейс или сотовые интерфейсы.
Система 1400 может содержать компонент 1404 кодирования, который может реализовывать различные способы кодирования, описанные в настоящем документе. Компонент 1404 кодирования может снижать среднюю битовую скорость видео, поступающего со входа 1402, к выходу компонента 1404 кодирования, чтобы создать представление битового потока видео. Технологии кодирования поэтому иногда называют технологиями видеосжатия или технологиями видеотранскодирования. Выходной сигнал компонента 1404 кодирования может либо запоминаться, либо передаваться по присоединенному связному соединению, которое представлено компонентом 1406. Запомненное или передаваемое представление битового потока (или кодированное) видео, принимаемое на входе 1402, может использоваться компонентом 1408 для формирования пиксельных значений или отображаемого видео, которое подается на интерфейс 1410 дисплея. Процесс формирования просматриваемого пользователем видео из представления битового потока иногда называют распаковкой видео. Дополнительно, хоты некоторые операции видеообработки упоминаются как "кодирование" или инструменты, следует понимать, что инструменты или операции кодирования используются кодером и соответствующие инструменты или операции декодирования, которые выполняют операции, обратные кодированию, будут выполняться декодером.
Примеры периферийного интерфейса шины или интерфейса дисплея могут содержать универсальную последовательную шину (universal serial bus, USB) или мультимедийный интерфейс высокого разрешения (high definition multimedia interface, HDMI) или Displayport и т.п. Примеры интерфейсов запоминающего устройства содержат SATA (serial advanced technology attachment), интерфейс PCI, IDE и т.п. Технологии, описанные в настоящем документе, могут осуществляться в различных электронных устройствах, таких как мобильные телефоны, ноутбуки, смартфоны или другие устройства, способные выполнять цифровую обработку данных и/или отображение видео.
На фиг. 15 представлена блок-схема последовательности выполнения операций способа 1500 видеообработки в соответствии с представленной технологией. Способ 1500 на этапе 1510 содержит выполнение преобразования между блоком компонента цветности видео и представлением битового потока видео. Во время преобразования процесс деблокирующей фильтрации выборочно применяется, по меньшей мере, к некоторым отсчетам, расположенным вдоль края блока и смещения параметра квантования (quantization parameter, QP) цветности добавляются к выходному результату таблицы QP цветности, чтобы определить параметры для процесса деблокирующего фильтра.
В некоторых вариантах осуществления смещения QP цветности указываются элементами синтаксиса, по меньшей мере, на уровне изображения или на уровне видеоблока в представлении битового потока. В некоторых вариантах осуществления видеоблок содержит секцию, плитку, элемент, субизображение или блок. В некоторых вариантах осуществления смещения QP цветности содержат, по меньшей мере, pps_cb_qp_offset и/или pps_cr_qp_offset. В некоторых вариантах осуществления процесс сжатия QP запрещается для ввода в таблицу QP цветности. В некоторых вариантах осуществления компонент цветности содержит компонент Cr видео. В некоторых вариантах осуществления компонент цветности содержит компонент Cb видео.
На фиг. 16 представлена блок-схема последовательности выполнения операций способа 1600 видеообработки в соответствии с представленной технологией. Способ 1600 на этапе 1610 для преобразования между блоком компонента цветности видео и представлением битового потока видео содержит определение, применять ли или как применять в соответствии с правилом процесс фильтрации к краю блока, основываясь на первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, и/или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом. Правило основывается на режиме кодирования, применяемом к блоку для кодирования отсчетов, расположенных на одной стороне, или отсчетов, расположенных на другой стороне границы. Правило определяет, что многочисленные смещения QP на различных уровнях видеоблока используются для определения первой информации квантования или второй информации квантования. Способ 1600 на этапе 1620 также содержит выполнение преобразования, основываясь на определении.
В некоторых вариантах осуществления различные уровни видеоблока содержат уровень изображения, уровень секции, уровень плитки, уровень элемента или уровень субизображения. В некоторых вариантах осуществления многочисленные смещения QP содержат смещения для компонента Cb видео. В некоторых вариантах осуществления многочисленные смещения QP содержат смещения для компонента Cr видео.
В некоторых вариантах осуществления правило определяет, что выбор множества смещений QP основывается на режиме кодирования. В некоторых вариантах осуществления режим кодирования содержит режим совместного кодирования остатков цветности (joint coding of chroma residuals, JCCR). В некоторых вариантах осуществления, в случае, когда блок кодируется в режиме кодирования JCCR, многочисленные смещения QP содержат смещение QP на уровне изображения или смещение QP на уровне секции. В некоторых вариантах осуществления многочисленные смещения QP, которые используются для определения пороговых значений в и tC для процесса фильтрации, содержат значение смещения QP для режима кодирования JCCR в случае, когда по меньшей мере одна из первой видеообласти или второй видеообласти кодируется, используя режим кодирования JCCR.
В некоторых вариантах осуществления информация соответствующего блока компонента яркости используется для определения первой информации квантования для первой видеообласти или второй информации квантования для второй видеообласти. В некоторых вариантах осуществления для фильтрации текущего отсчета цветности в блоке компонента цветности информация блока кодирования яркости, которая охватывает отсчет яркости, соответствующий текущему отсчету цветности, используется для определения первой информации квантования для первой видеообласти или второй информации квантования для второй видеообласти.
В некоторых вариантах осуществления, применять ли или как применять процесс фильтрации, основывается на процессе масштабирования, применяемом к блоку. В некоторых вариантах осуществления первая информация квантования для первой видеообласти или вторая информация квантования для второй видеообласти, используемая для определения пороговых значений в и tC, основывается на информации квантования, используемой в процесс масштабирования. В некоторых вариантах осуществления одно или более смещений QP уровня блока кодирования используются для определения информации квантования, используемой в процессе масштабирования.
В некоторых вариантах осуществления применяемость способа основывается на том, находится ли блок на одной стороне края или на другой стороне края. В некоторых вариантах осуществления, используется ли информация соответствующего блока компонента яркости для процесса фильтрации, основывается на положении блока. В некоторых вариантах осуществления, в случае, когда блок находится на другой стороне края, информация соответствующего блока компонента яркости используется для процесса фильтрации. В некоторых вариантах осуществления, в случае, когда блок находится на одной стороне края, информация соответствующего блока компонента яркости используется для процесса фильтрации.
На фиг. 17 представлена блок-схема последовательности выполнения операций способа 1700 видеообработки в соответствии с представленной технологией. Способ 1700 на этапе 1710 для преобразования между текущим блоком видео и представлением битового потока видео, содержит определение, разрешать ли использование смещения параметра квантования (QP) цветности для текущего блока в соответствии с элементом синтаксиса на уровне видеоблока. Видеоблок содержит текущий блок и второй блок видео. Способ 1700 на этапе 1720 также содержит выполнение преобразования, основываясь на определении.
В некоторых вариантах осуществления видеоблок содержит секцию. В некоторых вариантах осуществления видеоблок дополнительно содержит плитку, элемент или субизображение.
В некоторых вариантах осуществления элемент синтаксиса при определенных условиях включается в представление битового потока на уровне видеоблока. В некоторых вариантах осуществления элемент синтаксиса при определенных условиях включается в представление битового потока, основываясь на том, разрешается ли режим совместного кодирования остатков цветности. В некоторых вариантах осуществления элемент синтаксиса включается в представление битового потока на уровне видеоблока, основываясь на втором элементе синтаксиса на уровне изображения, который указывает использование смещения параметра квантования (QP) цветности на уровне блока. В некоторых вариантах осуществления элемент синтаксиса пропускается в представлении битового потока и использование смещения параметра квантования (QP) цветности на уровне блока определяется как запрещенное в случае, когда второй элемент синтаксиса на уровне изображения указывает запрещение использования смещения параметра квантования (QP) цветности на уровне блока. В некоторых вариантах осуществления использование смещения параметра квантования (QP) для текущего блока определяется, основываясь одновременно на элементе синтаксиса на уровне секции или на втором элементе синтаксиса на уровне изображения.
На фиг. 18 представлена блок-схема последовательности выполнения операций способа 1800 видеообработки в соответствии с представленной технологией. Способ 1800 на этапе 1810 содержит выполнение преобразования между видео, содержащим первый компонент цветности и второй компонент цветности и представление битового потока видео. Остатки первого блока цветности первого компонента цветности и второго блока цветности второго компонента цветности совместно кодируются в представлении битового потока, используя режим кодирования, соответствующий правилу. Правило определяет, что способ получения параметра квантования (QP) для преобразования не зависит от режима кодирования. В некоторых вариантах осуществления QP для преобразования получают, основываясь на смещении QP, сообщаемом на уровне изображения или на уровне секции в представлении битового потока.
На фиг. 19 представлена блок-схема последовательности выполнения операций способа 1900 видеообработки в соответствии с представленной технологией. Способ 1900 на этапе 1910 содержит выполнение преобразования между первым блоком видео и представлением битового потока видео. Видео имеет цветовой формат многочисленных цветовых компонент и первый блок связывается с первым цветовым компонентом видео. Во время преобразования процесс деблокирующей фильтрации применяется, по меньшей мере, к некоторым отсчетам вдоль границы первого блока. Способ 1900 на этапе 1920 содержит выполнение последовательных преобразований между блоками, связанными с остающимися цветовыми компонентами видео и представлением битового потока видео. Во время последующих преобразований процесс деблокирующей фильтрации применяется, по меньшей мере, к некоторым отсчетам вдоль границы каждого из блоков в такой же манере, что и преобразование первого блока.
В некоторых вариантах осуществления цветовым форматом является 4:4:4. В некоторых вариантах осуществления цветовым форматом является 4:4:4 в цветовом пространстве красный-зеленый-синий (Red-Green-Blue, RGB). В некоторых вариантах осуществления цветовым форматом является 4:2:2 и процесс деблокирующего фильтра применяется в вертикальном направлении. В некоторых вариантах осуществления процесс деблокирующего фильтра содержит процесс принятия решения и/или процесс фильтрации.
На фиг. 20 представлена блок-схема последовательности выполнения операций способа 2000 видеообработки в соответствии с представленной технологией. Способ 2000 на этапе 2010 содержит для преобразования между видео и представлением битового потока видео определение прочности границы для границы между двумя блоками видео. Прочность границы определяется независимо от того, кодируется ли любой один из двух блоков в режиме совместного кодирования остатков цветности (joint coding of chroma residuals, JCCR). Способ 2000 на этапе 2020 содержит выполнение преобразования, основанное на определении.
В некоторых вариантах осуществления, в случае, когда один блок из двух блоков кодируется в режиме JCCR, блок обрабатывается как кодированный в режиме не-JCCR для определения прочности границы. В некоторых вариантах осуществления прочность границы определяется независимо от использования JCCR для двух блоков.
На фиг. 21 представлена блок-схема последовательности выполнения операций способа 2100 видеообработки в соответствии с представленной технологией. Способ 2100 на этапе 2110 содержит для преобразования между видео и представлением битового потока видео определение прочности границы для границы между первым блоком и вторым блоком. Определение выполняется без сравнения информации первого блока с соответствующей информацией второго блока. Информация содержит опорное изображение и/или множество векторов движения соответствующего блока и прочность границы используется для определения, может ли процесс деблокирующей фильтрации быть применен к границе. Способ 2100 на этапе 2120 также содержит выполнение преобразования, основываясь на определении.
В некоторых вариантах осуществления прочность границы указывает, что процесс деблокирующей фильтрации запрещается в случае, когда опорное изображение первого блока отличается от опорного изображения второго блока. В некоторых вариантах осуществления прочность границы указывает, что процесс деблокирующей фильтрации запрещается в случае, когда количество векторов движения первого блока отличается от количества векторов движения второго блока.
В некоторых вариантах осуществления прочность границы устанавливается равной 1 в случае, когда разность между одним или более векторами движения первого блока и одним или более векторами движения второго блока больше или равна порогу, где порог является целым числом. В некоторых вариантах осуществления один или более вектороу движения первого блока обозначаются как MVP[0] и MVP[1], а один или более векторов движения второго блока обозначаются как MVQ[0] и MVQ[1]. Разность является большей или равной порогу Th, в случае (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th || Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th). В некоторых вариантах осуществления разность является большей или равной порогу Th, в случае (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th && Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th). В некоторых вариантах осуществления разность является большей или равной порогу Th, в случае (Abs(MVP[0].x - MVQ[0].x) > Th || Abs(MVP[0].y - MVQ[0].y) > Th ) && (Abs(MVP[1].x - MVQ[1].x) > Th) || Abs(MVP[1].y - MVQ[1].y) > Th). В некоторых вариантах осуществления разность является большей или равной порогу Th, в случае (Abs(MVP[0].x - MVQ[0].x) > Th && Abs(MVP[0].y - MVQ[0].y) > Th ) || (Abs(MVP[1].x - MVQ[1].x) > Th) && Abs(MVP[1].y - MVQ[1].y) > Th). В некоторых вариантах осуществления прочность границы устанавливается равной 0 в случае, когда разность между вектором движения первого блока и вектором движения второго блока меньше или равна порогу, где порог является целым числом. В некоторых вариантах осуществления порог равен 4, 8 или 16. В некоторых вариантах осуществления порог основывается на характеристике видео.
В некоторых вариантах осуществления применяемость способа определяется на основе некоторого условия. В некоторых вариантах осуществления способ может применяться в случае, когда первый блок и второй блок не кодируются в режиме внутрикадрового предсказания. В некоторых вариантах осуществления способ может применяться в случае, когда первый блок и второй блок имеют нулевые коэффициенты для компонента яркости. В некоторых вариантах осуществления способ может применяться в случае, когда первый блок и второй блок не кодируются с помощью объединенного режима межкадрового и внутрикадрового предсказания. В некоторых вариантах осуществления способ может применяться в случае, когда первый блок и второй блок кодируются в одном и том же режиме предсказания, причем один и тот же режим предсказания является режимом внутрикадрового предсказания с копированием блока или режимом межкадрового предсказания.
На фиг. 22 представлена блок-схема последовательности выполнения операций способа 2200 видеообработки в соответствии с представленной технологией. Способ 2200 на этапе 2210 для преобразования между видеоблоком видео и представлением битового потока видео содержит определение параметра квантования (quantization parameter, QP), используемого для применения на видеоблоке деблокирующей фильтрации в соответствии с правилом. Правило определяет, что первый QP, используемый для определения в случае, когда видеоблок кодируется, используя режим пропуска преобразования (transform skip, TS), в котором остаток видеоблока кодируется в представлении битового потока посредством применения пропуска преобразования. Второй QP, который отличается от первого QP, используется для определения в случае, когда видеоблок кодируется, используя режим пропуска без преобразования, в котором остаток видеоблока кодируется в представлении битового потока после применения преобразования. Способ 2200 на этапе 2220 также содержит выполнение преобразования, основываясь на определении.
В некоторых вариантах осуществления для преобразования блока яркости процесс фильтрации, применяемый к блоку яркости, основывается на QP, применяемом к процессу масштабирования блока яркости. В некоторых вариантах осуществления, QP, используемый для определения, применим ли процесс фильтрации к блоку яркости, определяется на основе диапазона сжатия режама TS.
На фиг. 23 представлена блок-схема последовательности выполнения операций способа 2300 видеообработки в соответствии с представленной технологией. Способ 2300 на этапе 2310 для преобразования между видеоблоком видео и представлением битового потока видео содержит определение градиента для определения применимости процесса деблокирующей фильтрации, по меньшей мере, к некоторым отсчетам на границе видеоблока в соответствии с правилом. Правило определяет, что манера, в которой определяется градиент, не зависит от размера видеоблока. Способ 2300 на этапе 2320 также содержит выполнение преобразования, основываясь на определении.
В некоторых вариантах осуществления порог для определения, разрешать ли процесс деблокирующего фильтра, регулируется для блоков, имеющих различные размеры границ, причем порог является целым числом. В некоторых вариантах осуществления порог основывается на параметре квантования, определяемом для процесса деблокирующей фильтрации. В некоторых вариантах осуществления порог для блока, имеющего большую границу, меньше, чем второй порог для блока, имеющего малую границу. В некоторых вариантах осуществления порог для блока, имеющего большую границу, больше, чем второй порог для блока, имеющего малую границу. В некоторых вариантах осуществления порог для блока, имеющего большую границу, равен второму порогу для блока, имеющего малую границу. В некоторых вариантах порог основывается на характеристике видео.
В некоторых вариантах применяемость одного или более описанных выше способов, основывается на характеристике видео. В некоторых вариантах осуществления характеристика видео содержит контент видео. В некоторых вариантах осуществления характеристика видео содержит информацию, сообщаемую в наборе параметров декодера, наборе параметров секции, наборе параметров видео, наборе параметров изображения, наборе параметров адаптации, в заголовке изображения, заголовке секции, заголовке группы плиток, наибольшем блоке кодирования (largest coding unit, LCU), блоке кодирования, строке LCU, группе LCU, блоке преобразования, блоке изображения или блоке видеокодирования в представлении битового потока. В некоторых вариантах осуществления характеристика видео содержит положениеблока кодирования, блока изображения, блока преобразования, блока или блока видеокодирования внутри видео. В некоторых вариантах осуществления характеристика видео содержит режим кодирования блока, который включает в себя, по меньшей мере, несколько отсчетов вдоль края. В некоторых вариантах осуществления характеристика видео содержит матрицу преобразования, которая применяется к блоку, который включает в себя, по меньшей мере, несколько отсчетов вдоль края. В некоторых вариантах осуществления характеристика текущего блока или соседних блоков текущего блока содержит размер текущего блока или размер соседнего блока текущего блока. В некоторых вариантах осуществления характеристика текущего блока или соседних блоков текущего блока содержит форму текущего блока или форму соседнего блока текущего блока. В некоторых вариантах осуществления характеристика видео содержит индикацию цветового формата видео. В некоторых вариантах осуществления характеристика видео содержит структуру дерева кодирования, применяемого к видео. В некоторых вариантах осуществления характеристика видео содержит тип секции, тип группы плиток или тип изображения видео. В некоторых вариантах осуществления характеристика видео содержит цветовой компонент видео. В некоторых вариантах осуществления характеристика видео содержит временный идентификатор уровня видео. В некоторых вариантах осуществления характеристика видео содержит профиль, уровень или категорию стандарта видео.
В некоторых вариантах осуществления преобразование содержит кодирование видео в представление битового потока. В некоторых вариантах осуществления преобразование содержит декодирование представления битового потока в видео.
На фиг. 24 представлена блок-схема примера системы 100 видеокодирования, которая может использовать технологии настоящего раскрытия.
Как показано на фиг. 24, система 100 видеокодирования может содержать устройство 110 источника и устройство 120 места назначения. Устройство 110 источника создает кодированные видеоданные и может упоминаться как устройство видеокодирования. Устройство 120 места назначения может декодировать кодированные видеоданные, сформированные устройством 110 источника, и может упоминаться как устройство видеодекодирования.
Устройство 110 источника может включать в себя видеоисточник 112, видеокодер 114 и интерфейс 116 ввода-вывода (input/output, I/O).
Видеоисточник 112 может содержать такой источник, как устройство получения изображения, интерфейс для приема видеоданных от провайдера видеоконтента и/или системы компьютерной графики для формирования видеоданных или сочетание таких источников. Видеоданные могут содержать одно или более изображений. Видеокодер 114 кодирует видеоданные, полученные от источника 112 видео, чтобы сформировать битовый поток. Битовый поток может содержать последовательность битов, которые формируют кодированное представление видеоданных. Битовый поток может содержать кодированные изображения и сопутствующие данные. Кодированное изображение является кодированным представлением изображения. Сопутствующие данные могут содержать наборы параметров последовательности, наборы параметров изображения и другие структуры синтаксиса. Интерфейс 116 ввода-вывода может содержать модулятор/демодулятор (модем) и/или передатчик. Кодированные видеоданные могут передаваться непосредственно устройству 120 места назначения посредством интерфейса 116 ввода-вывода через сеть 130а. Кодированные видеоданные могут также сохраняться на носителе запоминающего устройства/сервере 130b для получения доступа устройством 120 места назначения.
Устройство 120 места назначения может содержать интерфейс 126 ввода-вывода, видеодекодер 124 и дисплей 122.
Интерфейс 126 ввода-вывода может содержать приемник и/или модем. Интерфейс 126 ввода-вывода может получать кодированные видеоданные от устройства 110 источника или от носителя запоминающего устройства/сервера 130b. Видеодекодер 1245 может декодировать кодированные видеоданные. Дисплей 122 может отображать декодированные видеоданные пользователю. Дисплей 122 может быть интегрирован с устройством 120 места назначения или может быть внешним по отношению к устройству 120 места назначения, которое может быть выполнено с возможностью сопряжения с внешним дисплеем.
Видеокодер 114 и видеодекодер 124 могут действовать в соответствии со стандартом по видеосжатию, таким как стандарт видеокодирования высокой эффективности (High Efficiency Video Coding, HEVC), стандарт универсального видеокодирования (Versatile Video Coding, VVC) и другие текущие и/или будущие стандарты.
На фиг. 25 представлена блок-схема примера видеокодера 200, который может быть видеокодером 114 в системе 100, показанной на фиг. 24.
Видеокодер 200 может быть выполнен с возможностью осуществления любой или всех технологий настоящего раскрытия. В примере на фиг. 25 видеокодер 200 содержит множество функциональных компонент. Технологии, описанные в настоящем раскрытии, могут совместно использоваться различными компонентами видеокодера 200. В некоторых примерах процессор может быть выполнен с возможностью осуществления любой или всех технологий, описанных в настоящем раскрытии.
Функциональные компоненты видеокодера 200 могут содержать блок 201 разделения, блок 202 предсказания, который может включать в себя блок 203 выбора режима, блок 204 оценки движения, блок 205 кмпенсации движения и блок 206 внутрикадрового предсказания, блок 207 формирования остатка, блок 208 преобразования, блок 209 квантования, блок 210 обратного квантования, блок 211 обратного преобразования, блок 212 реконструкции, буфер 213 и блок 214 энтропийного кодирования.
В других примерах видеокодер 200 может содержать больше, меньше или другие функциональные компоненты. В этом примере блок 202 предсказания может включать в себя блок копирования внукадрового блока (intra block copy, IBC). Блок IBC может выполнять предсказание в режиме IBC, в котором по меньшей мере одно опорное изображение является изображением, в котором располагается текущий видеоблок.
Дополнительно, некоторые компоненты, такие как блок 204 оценки движения и блок 205 компенсации движения, могут в высокой степени быть интегрированы, но на фиг. 5 представляются раздельно с цель. объяснений.
Блок 201 разделения может разделять изображение на один или более видеоблоков. Видеокодер 200 и видеодекодер 300 могут поддерживать различные размеры видеоблоков.
Блок 203 выбора режима может выбирать один из режимов кодирования, внутрикадровый или межкадровый, например, основываясь на ошибочных результатах, и предсоставлять полученный в результате внутрикадрово кодированный или межкадрово кодированный блок на блок 207 формирования остатка, чтобы сформировать остаточные блочные данные, и на блок 212 реконструкции для реконструкции кодированного блока для использования в качестве опорного изображения. В одном из примеров блок 203 выбора режима может выбрать режим сочетания внутрикадрово кодированного и межкадрово кодированного предсказания (combination of intra and inter predication, CIIP), в котором предсказание основано на сегнале межкадрового предсказания и внутрикадрового предсказания. Блок 203 выбора режима может также выбирать разрешающую способность для вектора движения (например, субпиксельную или целочисленную пиксельную точность) для блока в случае межкадрового предсказания.
Чтобы выполнить межкадровое предсказание на текущем видеоблоке, блок 204 оценки движения может формировать информацию о движении для текущего видеоблока, сравнивая одно или более опорных изображений, взятых из буфера 213, с текущим видеоблоком. Блок 205 компенсации движения может определять предсказанный видеоблок для текущего видеоблока, основываясь на информации о движении и декодированных отсчетах изображений, полученных из буфера 213, отличных от изображения, связанного с текущим видеоблоком.
Блок 204 оценки движения и блок 205 компенсации движения могут выполнять различные операции для текущего видеоблока, например, в зависимости от того, находится ли текущий видеблок в I-секции, P-секции или B-секции.
В некоторых примерах, блок 204 оценки движения может выполнять однонаправленное предсказание текущего видеоблока и блок 204 оценки движения может искать опорное изображение из списка 0 или списка 1 для опорного видеоблока текущего видеоблока. Блок 204 оценки движения может формировать индекс опорной картинки, указывающий опорную картинку в перечне 0, содержащем опорный блок PU и вектор движения, который указывает пространственное смещение между пиксельным блоком PU и опорным блоком. Блок 204 оценки движения может выводить ссылочный индекс, индикатор нправления предсказания и вектор движения в качестве информации о движении текущего видеоблока. Блок 205 компенсации движения может формировать предсказанный видеоблок текущего блока, основываясь на опорном видеоблоке, указанном информацией о движении текущего видеоблока.
В других примерах, блок 204 оценки движения может выполнять двунаправленное предсказание текущего видеоблока и блок 204 оценки движения может искать опорные изображения в списке 0 для опорного видеоблока для текущего видеоблока и может также искать опорные изображения в списке 1 для другого опорного видеоблока для текущего видеоблока. Блок 204 оценки движения может затем формировать ссылочные индексы, указывающие опорные изображения в списке 0 и в списке 1, содержащих опорные видеоблоки и векторы движения, указывающие пространственные смещения между опорными видеоблоками и текущим видеоблоком. Блок 204 оценки движения может выводить ссылочные индексы и векторы движения текущего видеоблока в качестве информации о движении текущего видеоблока. Блок 205 компенсации движения может формировать предсказанный видеоблок текущего видеоблока, основываясь на опорных видеоблоках, указанных информацией о движении текущего видеоблока.
В некоторых примерах блок 204 оценки движения может выводить полный набор информации о движении для процесса декодирования, выполняемого декодером.
В некоторых примерах блок 204 оценки движения может не выводить полный набор информации о движении для текущего видео. Предпочтительно, блок 204 оценки движения может сообщать информацию о движении текущего видеоблока со ссылкой на информацию о движении другого видеоблока. Например, блок 204 оценки движения может определить, что информация о движении текущего видеоблока достаточно похожа на информацию о движении соседнего видеоблока.
В одном примере, блок 204 оценки движения может указать в структуре синтаксиса, связанной с текущим видеоблоком, значение, указывающее видеодекодеру 300, что текущий видеоблок имеет ту же самую информацию о движении, что и другой видеоблок.
В другом примере, блок 204 оценки движения может идентифицировать в структуре синтаксиса, связанной с текущим видеоблоком, другой видеоблок и разность векторов движения (motion vector difference, MVD). Разность векторов движения указывает разность между вектором движения текущего видеоблока и вектором движения указанного видеоблока. Видеодекодер 300 может использовать вектор движения указанного видеоблока и разность векторов движения, чтобы определить вектор движения текущего видеоблока.
Как описано выше, видеокодер 200 может предиктивно сообщить вектор движения. Два примера технологии предиктивной сигнализации, которые могут реализовываться видеокодером 200, содержат опережающее предсказание вектора движения (motion vector predication, AMVP) и сигнаализацию режима слияния.
Блок 206 внутрикадрового предсказания может выполнять внутрикадровое предсказание на текущем видеоблоке. Когда блок 206 внутрикадрового предсказания выполняет внутрикадровое предсказание на текущем видеоблоке, блок 206 внутрикадрового предсказания может формировать данные предсказания для текущего видеоблока, основываясь на декодированных отсчетах других видеоблоков в том же самом изображении. Данные предсказания для текущего видеоблока могут содержать предсказанный видеоблок и различные элементы синтаксиса.
Блок 207 формирования остатка может формировать остаточные данные для текущего видеоблока путем вычитания (например, указываемого знаком "минус") предсказанного видеоблока(-ов) текущего видеоблока из текущего видеоблока. Остаточные данные текущего видеоблока могут содержать остаточные видеоблоки, соответствующие различным компонентам отсчетов для отсчетов из текущего видеоблока.
В других примерах, для текущего видеоблока не могут существовать никакие остаточные данные для текущего видеоблока, например, в режиме пропуска, и блок 207 формирования остатка не может выполнять операцию вычитания.
Блок 208 преобразования может формировать один или более видеоблоков коэффициентов преобразования для текущего видеоблока, применяя одно или более преобразований в остаточному видеоблоку, связанному с текущим видеоблоком.
После того, как блок 208 преобразования сформирует видеоблок коэффициентов преобразования, связанный с текущим видеоблоком, блок 209 квантования может квантовать видеоблок коэффициентов преобразования, связанный с текущим видеоблоком, основываясь на одном или более значениях параметров квантования (QP), связанных с текущим видеоблоком.
Блок 210 обратного квантования и блок 211 обратного преобразования могут применять обратное квантование и обратное преобразование к видеоблоку коэффициентов преобразования, соответственно, чтобы реконструировать остаточный видеоблок из видеоблока коэффициентов преобразования. Блок 212 реконструкции может добавлять реконструированный остаточный видеоблок к соответствующим отсчетам из одного или более предсказанных видеоблоков, сформированных блоком 202 предсказания, чтобы создать реконструированный видеоблок, связанный с текущим блоком, для его сохранения в буфере 213.
После того, как блок 212 реконструкции реконструирует видеоблок, может быть выполнена операция контурной фильтрации, чтобы уменьшить артефакты видеоблокирования в видеоблоке.
Блок 214 энтропийного кодирования может принимать данные от других функциональных компонентов видеокодера 200. Когда блок 214 энтропийного кодирования принимает данные, блок 214 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования, чтобы сформировать энтропийно кодированные данные и вывести битовый поток, содержащий энтропийно кодированные данные.
На фиг. 26 представлена блок-схема примера видеокодера 300, который может быть видеодекодером 114 в системе 100, показанной на фиг. 24.
Видеодекодер 300 может быть выполнен с возможностью осуществления любой одной или всех технологий настоящего раскрытия. В примере на фиг. 26 видеодекодер 300 содержит множество функциональных компонент. Технологии, описанные в настоящем раскрытии, могут использоваться совместно различными компонентами декодера 300. В некоторых примерах процессор может быть выполнен с возможностью реализации любой одной или всех технологий, описанных в настоящем раскрытии.
В примере, показанном на фиг. 26, видеодекодер 300 содержит блок 301 энтропийного декодирования, блок 302 компенсации движения, блок 303 внутрикадрового предсказания, блок 304 обратного квантования, блок 305 процесса обратного преобразования и блок 306 реконструкции и буфер 307. Видеодекодер 300 в некоторых примерах может выполнять цикл декодирования, обычно обратный циклу кодирования, описанному со ссылкой на видеокодер 200 (фиг. 25).
Блок 301 энтропийного декодирования может восстанавливать кодированный битовый поток. Кодированный битовый поток может содержать кодированные видеоданные (например, кодированные блоки видеоданных). Блок 301 энтропийного декодирования может декодировать энтропийно кодированные видеоданные и из энтропийно декодированных видеоданных блок 302 компенсации движения может определить информацию о движении, включающую в себя векторы движения, точность векторов движения, индексы списка опорных изображений и другую информацию о движении. Блок 302 компенсации движения может, например, определять такую информацию, выполняя AMVP и режим слияния.
Блок 302 компенсации движения может создавать блоки с компенсированным движением, возможно, выполняя интерполяцию, основанную на фильтрах интерполяции. Идентификаторы фильтров интерполяции, которые должны использоваться с субпиксельной точностью, могут быть включены в элементы синтаксиса.
Блок 302 компенсации движения может использовать фильтры интерполяции, как они используются видеокодером 20 во время выполнения кодирования видеоблока, чтобы вычислить интерполированные значения для субцелочисленных пикселей опорного блока. Блок 302 компенсации движения может определять фильтры интерполяции, используемые видеокодиром 200, в соответствии с принятой информацией синтаксиса и использовать фильтры интерполяции для создания предсказываемых блоков.
Блок 302 компенсации движения может использовать некоторую информацию синтаксиса, чтобы определить размеры блоков, используемых для кодирования кадра(-ов) и/или секции(-ий) кодированной видеопоследовательности, информацию о разделении, которая описывает, как разделяется каждый макроблок изображения кодированной видеопоследовательности, режимы, указывающие, как кодируется каждое разделение, один или более опорных кадров (и списки опорных кадров) для каждого межкадрово кодированного блока и другую информацию для декодирования кодированной видеопоследовательности.
Блок 303 внутрикадрового кодирования может использовать режимы внутрикадрового кодирования, например, принимаемые в битовом потоке, чтобы сформировать блок предсказания из пространственно соседствующих блоков. Блок 303 обратного квантования обратно квантует, например, деквантует, квантованные коэффициенты видеоблока, представленные в битовом потоке и декодируемые блоком 301 энтропийного декодирования. Блок 303 обратного преобразования применяет обратное преобразование.
Блок 306 реконструкции может суммировать остаточные блоки с соответствующими блоками предсказания, сформированными блоком 202 компенсации движения или блоком 303 внутрикадрового преобразования, для формирования декодированных блоков. Если требуется, деблокирующий фильтр может также применяться для фильтрации декодированных блоков, чтобы удалить артефакты блочности. Декодированные видеоблоки могут затем быть сохранены в буфере 307, который представляет опорные блоки для последующей компенсации движения, а также создает декодированное видео для представления на дисплее.
Некоторые варианты осуществления раскрытой технологии содержат принятие решения или определение, разрешать ли инструмент или режим видеообработки. В этом примере, когда инструмент или режим видеообработки блока видео разрешается, кодер может использовать или реализовать инструмент или режим при обработке блока видео, не может в обязательном порядке модифицировать результирующий битовый поток, основываясь на использовании инструмента или режима. То есть, преобразование из блока видео в представление битового потока видео будет использовать инструмент или режим видеообработки , когда это разрешено, основываясь на решении или определении. В другом примере, когда инструмент или режим видеообработки разрешен, декодер будет обрабатывать битовый поток, зная, что битовый поток был модифицирован, основываясь на инструменте или режиме видеообработки. То есть, преобразование из представления битового потока видео в блок видео будет выполняться, используя инструмент или режим видеообработки, который разрешен, основываясь на решении или определении использовать инструмент или режим видеообработки, когда это разрешено, основываясь на решении или определении.
Некоторые варианты осуществления раскрытой технологии содержат принятие решения или определение запретить инструмент или режим видеообработки. В этом примере, когда инструмент или режим видеообработки запрещается, кодер не будет использовать инструмент или режим при преобразовании блока видео в представление битового потока видео. В другом примере, когда инструмент или режим видеообработки запрещен, декодер будет обрабатывать битовый поток, зная, что битовый поток не был модифицирован, используя инструмент или режим видеообработки, который был разрешен, основываясь на решении или определении.
Раскрытые и другие решения, варианты осуществления, модули и функциональные операции, описанные в этом документе, могут быть реализованы в цифровой электронной схемотехнике или в компьютерном программном обеспечении, встроенном программном обеспечении или аппаратных средствах, включая структуры, раскрытые в этом документе, и их структурные эквиваленты или сочетания одного или более из них. Раскрытые и другие варианты осуществления могут быть реализованы как один или более компьютерных программных продуктов, то есть, как один или более модулей команд компьютерной программы, кодированных на считываемом компьютером носителе, для исполнения или управления работой устройства обработки данных. Считываемый компьютером носитель может быть машиночитаемым запоминающим устройством, машиночитаемой подложной запоминающего устройства, устройством памяти, их сочетанием, обрабатывающим машиночитаемый распространяющийся сигнал или сочетанием одного или более из них. Термин "устройство обработки данных" включает в себя все устройств, оборудования и машины для обработки данных, в том числе, например, программируемый процессор, компьютер или многочисленные процессоры или компьютеры. Устройство может содержать, в дополнение к аппаратным средствам, управляющую программу, которая создает среду исполнения для упомянутой компьютерной программы, например, управляющую программу, которая составляет встроенное программное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или сочетание одного или более из них. Распространяющийся сигнал является искусственно формируемым сигналом, например, машинно формируемым электрическим, оптическим или электромагнитным сигналом, который формируется для кодирования информации для передачи соответствующему приемному устройству.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий или код) может быть записана в любой форме языка программирования, включая компилированные или интерпретируемые языки, и может быть развернута в любой форме, включая как автономную программу, так и модуль, компонент, подпрограмму или другой блок, пригодный для использования в компьютерной среде. Компьютерная программа не обязательно соответствует файлу в файловой системе. Программа может храниться частично в файле, который хранит другие программы или данные (например, в одном или более сценариях, хранящихся в документе на языке с разметкой), в одиночном файле, выделенном для упомянутой программы, или в многочисленных скоординированных файлах (например, файлах, которые хранят один или более модулей, субпрограмм или частей управляющей программы). Компьютерная программа может быть развернута для исполнения на одном компьютере или на множестве компьютеров, которые располагаются в одном месте или распределены по множеству мест и соединяются между собой компьютерной сетью.
Процессы и логические потоки, описанные в этом документе, могут выполняться одним или более программируемыми процессорами, исполняющими одну или более компьютерных программ, чтобы выполнять функции, используя входные данные и формируя выходной результат. Процессы и логические потоки могут также выполняться и устройства могут также реализовываться как логические схемы специального назначения, например, FPGA (field programmable gate array, программируемые логические интегральные схемы) или ASIC (application specific integrated circuit, прикладные интегральные схемы специального назначения).
Процессоры, пригодные для исполнения компьютерной программы, содержат, например, микропроцессоры, как универсальные, так и специального назначения, и любой один или более процессоров любого рода для цифрового компьютера. В целом, процессор может принимать команды и данные из постоянной памяти или оперативной памяти или из обеих. Существенными элементами компьютера являются процессор для выполнения команд и одно или более устройств памяти для хранения команд и данных. В целом, компьютер будет также содержать или оперативно связываться для приема данных или передачи данных или того и другого, с одним или более запоминающими устройствами большого объема для хранения данных, например, магнитными, магнитооптическими дисками или оптическими дисками. Однако, компьютеру нужны не только такие устройства. Считываемый компьютером носитель для хранения команд компьютерных программ и данных содержит все формы энергонезависимой памяти, носители и устройства памяти, содержащие, например, полупроводниковые устройства памяти, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например, встроенные жесткие диски или съемные диски; и диски CD ROM и DVD-ROM. Процессор и память могут дополняться или включаться в состав логической схемотехники специального назначения.
Хотя патентный документ содержит много конкретных подробностей, они не должны истолковываться как ограничения объема любой реализации или того, что может быть заявлено, а рассматриваться скорее как описания признаков, которые могут быть конкретными для частных вариантов осуществления частных технологий. Некоторые признаки, которые описываются в этом патентном документе в контексте отдельных вариантов осуществления, также могут быть реализованы в сочетании в едином варианте осуществления. И напротив, различные признаки, которые описываются в контексте единого варианта осуществления, также могут быть реализованы во множестве вариантов осуществления отдельно или в любом подходящем субсочетании. Более того, хотя признаки могут быть описаны выше как действующие в определенных сочетаниях и даже первоначально заявляться в таком виде, один или более признаков из заявленного сочетания могут в некоторых случаях изыматься из сочетания и заявленное сочетание может быть отнесено к субсочетанию или к варианту субсочетания.
Аналогично, хотя операции показаны на чертежах в определенном порядке, это не должно пониматься как требование, чтобы такие операции выполнялись именно в таком конкретном показанном порядке или в последовательном порядке или чтобы выполнялись все показанные операции, чтобы достигнуть желаемых результатов. Более того, разделение различных системных компонент в вариантах осуществления, описанных в этом патентном документе, не должно пониматься как требование такого разделения во всех вариантах осуществления.
Здесь описываются только несколько реализаций и примеров и могут быть созданы и другие реализации, улучшения и варианты, основанные на том, что описано и показано в этом патентном документе.

Claims (43)

1. Способ обработки видеоданных, содержащий этапы, на которых:
определяют, для преобразования между блоком цветности видео и битовым потоком видео, применять ли или как применять процесс деблокирующей фильтрации к краю блока цветности, на основе по меньшей мере одной из первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом, при этом на основе информации квантования, определяемой на основе первой информации квантования и/или второй информации квантования без применения операции сжатия, определяются переменные β и tC, используемые в процессе деблокирующей фильтрации; и
выполняют преобразование на основе указанного определения;
при этом правило устанавливает, что первая информация квантования и вторая информация квантования определяются следующим образом:
определяют третью информацию квантования первого соответствующего блока яркости, которая используется для определения первой информации квантования, и четвертую информацию квантования второго соответствующего блока яркости, которая используется для определения второй информации квантования, при этом в случае, когда первым типом дерева первой видеообласти является двоичное дерево, первый соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению первой видеообласти, или в случае, когда вторым типом дерева второй видеообласти является двоичное дерево, второй соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению второй видеообласти;
определяют первую переменную qPinput1 на основе третьей информации квантования и вторую переменную qPinput2 на основе четвертой информации квантования;
определяют третью переменную qPoutput1 на основе первой операции табличного соответствия с использованием первой переменной qPinput1 в качестве входной переменной и четвертую переменную qPoutput2 на основе второй операции табличного соответствия с использованием второй переменной qPinput2 в качестве входной переменной;
определяют пятую информацию квантования на основе первого режима кодирования первой видеообласти путем прибавления первого множества смещений QP на различных уровнях видеоблока к третьей переменной qPoutput1 и шестую информацию квантования на основе второго режима кодирования второй видеообласти путем прибавления второго множества смещений QP на различных уровнях видеоблока к четвертой переменной qPoutput2, при этом первое множество смещений QP основано на том, является ли первый режим кодирования режимом совместного кодирования остатков цветности, и второе множество смещений QP основано на том, является ли второй режим кодирования режимом совместного кодирования остатков цветности; и
определяют первую информацию квантования на основе применения первой операции сжатия к пятой информации квантования и определяют вторую информацию квантования на основе применения второй информации сжатия к шестой информации квантования, причем нижний предел первой операции сжатия и второй операции сжатия равен –QpBdOffset, а верхний предел первой операции сжатия и второй операции сжатия равен 63, где QpBdOffset указывает смещение битовой глубины параметра квантования.
2. Способ по п. 1, в котором различные уровни видеоблока содержат, по меньшей мере, уровень изображения и уровень секции.
3. Способ по п. 1, в котором, в случае, когда первая видеообласть кодирована в режиме совместного кодирования остатков цветности, первое множество смещений QP содержит совместное кодирование смещения QP остатков цветности для первого уровня изображения в параметр квантования яркости и совместное кодирование смещения QP остатков цветности для первого уровня секции в параметр квантования яркости; а
в случае, когда вторая видеообласть кодирована в режиме совместного кодирования остатков цветности, второе множество смещений QP содержит совместное кодирование смещения QP остатков цветности для второго уровня изображения в параметр квантования яркости и совместное кодирование смещения QP остатков цветности для второго уровня секции в параметр квантования яркости.
4. Способ по п. 1, в котором первый соответствующий блок яркости совпадает с блоком яркости, который используется для получения QP цветности в процессе деквантования или квантования для первой видеообласти; или
второй соответствующий блок яркости совпадает с блоком яркости, который используется для получения QP цветности в процессе деквантования или квантования для второй видеообласти.
5. Способ по п. 1, в котором на этапе преобразования кодируют видео в битовый поток.
6. Способ по п. 1, в котором на этапе преобразования декодируют видео из битового потока.
7. Устройство обработки видеоданных, содержащее процессор и память долговременного пользования с содержащимися в ней командами, причем команды при их исполнении процессором вызывают выполнение процессором:
определения, для преобразования между блоком цветности видео и битовым потоком видео, применять ли или как применять процесс деблокирующей фильтрации к краю блока цветности, на основе по меньшей мере одной из первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом, при этом на основе информации квантования, определяемой на основе первой информации квантования и/или второй информации квантования без применения операции сжатия, определяются переменные β и tC, используемые в процессе деблокирующей фильтрации; и
выполнения преобразования на основе указанного определения;
при этом правило устанавливает, что первая информация квантования и вторая информация квантования определяются следующим образом:
определение третьей информации квантования первого соответствующего блока яркости, которая используется для определения первой информации квантования, и четвертой информации квантования второго соответствующего блока яркости, которая используется для определения второй информации квантования, при этом в случае, когда первым типом дерева первой видеообласти является двоичное дерево, первый соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению первой видеообласти, или в случае, когда вторым типом дерева второй видеообласти является двоичное дерево, второй соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению второй видеообласти;
определение первой переменной qPinput1 на основе третьей информации квантования и второй переменной qPinput2 на основе четвертой информации квантования;
определение третьей переменной qPoutput1 на основе первой операции табличного соответствия с использованием первой переменной qPinput1 в качестве входной переменной и четвертой переменной qPoutput2 на основе второй операции табличного соответствия с использованием второй переменной qPinput2 в качестве входной переменной;
определение пятой информации квантования на основе первого режима кодирования первой видеообласти путем прибавления первого множества смещений QP на различных уровнях видеоблока к третьей переменной qPoutput1 и шестой информации квантования на основе второго режима кодирования второй видеообласти путем прибавления второго множества смещений QP на различных уровнях видеоблока к четвертой переменной qPoutput2, при этом первое множество смещений QP основано на том, является ли первый режим кодирования режимом совместного кодирования остатков цветности, и второе множество смещений QP основано на том, является ли второй режим кодирования режимом совместного кодирования остатков цветности; и
определение первой информации квантования на основе применения первой операции сжатия к пятой информации квантования и определение второй информации квантования на основе применения второй информации сжатия к шестой информации квантования, причем нижний предел первой операции сжатия и второй операции сжатия равен –QpBdOffset, а верхний предел первой операции сжатия и второй операции сжатия равен 63, где QpBdOffset указывает смещение битовой глубины параметра квантования.
8. Считываемый компьютером носитель запоминающего устройства долговременного пользования, хранящий команды, вызывающие выполнение процессором:
определения, для преобразования между блоком цветности видео и битовым потоком видео, применять ли или как применять процесс деблокирующей фильтрации к краю блока цветности, на основе по меньшей мере одной из первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом, при этом на основе информации квантования, определяемой на основе первой информации квантования и/или второй информации квантования без применения операции сжатия, определяются переменные β и tC, используемые в процессе деблокирующей фильтрации; и
выполнения преобразования на основе указанного определения;
при этом правило устанавливает, что первая информация квантования и вторая информация квантования определяются следующим образом:
определение третьей информации квантования первого соответствующего блока яркости, которая используется для определения первой информации квантования, и четвертой информации квантования второго соответствующего блока яркости, которая используется для определения второй информации квантования, при этом в случае, когда первым типом дерева первой видеообласти является двоичное дерево, первый соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению первой видеообласти, или в случае, когда вторым типом дерева второй видеообласти является двоичное дерево, второй соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению второй видеообласти;
определение первой переменной qPinput1 на основе третьей информации квантования и второй переменной qPinput2 на основе четвертой информации квантования;
определение третьей переменной qPoutput1 на основе первой операции табличного соответствия с использованием первой переменной qPinput1 в качестве входной переменной и четвертой переменной qPoutput2 на основе второй операции табличного соответствия с использованием второй переменной qPinput2 в качестве входной переменной;
определение пятой информации квантования на основе первого режима кодирования первой видеообласти путем прибавления первого множества смещений QP на различных уровнях видеоблока к третьей переменной qPoutput1 и шестой информации квантования на основе второго режима кодирования второй видеообласти путем прибавления второго множества смещений QP на различных уровнях видеоблока к четвертой переменной qPoutput2, при этом первое множество смещений QP основано на том, является ли первый режим кодирования режимом совместного кодирования остатков цветности, и второе множество смещений QP основано на том, является ли второй режим кодирования режимом совместного кодирования остатков цветности; и
определение первой информации квантования на основе применения первой операции сжатия к пятой информации квантования и определение второй информации квантования на основе применения второй информации сжатия к шестой информации квантования, причем нижний предел первой операции сжатия и второй операции сжатия равен –QpBdOffset, а верхний предел первой операции сжатия и второй операции сжатия равен 63, где QpBdOffset указывает смещение битовой глубины параметра квантования.
9. Способ сохранения битового потока видео, содержащий этапы, на которых:
определяют, для блока цветности видео и битового потока видео, применять ли или как применять процесс деблокирующей фильтрации к краю блока цветности, на основе по меньшей мере одной из первой информации квантования для первой видеообласти, содержащей отсчеты на одной стороне края, или второй информации квантования для второй видеообласти, содержащей отсчеты на другой стороне края, в соответствии с правилом, при этом на основе информации квантования, определяемой на основе первой информации квантования и/или второй информации квантования без применения операции сжатия, определяются переменные β и tC, используемые в процессе деблокирующей фильтрации; формируют битовый поток на основе указанного определения;
сохраняют битовый поток на считываемом компьютером носителе запоминающего устройства долговременного пользования для записи данных;
при этом правило устанавливает, что первая информация квантования и вторая информация квантования определяются следующим образом:
определяют третью информацию квантования первого соответствующего блока яркости, которая используется для определения первой информации квантования, и четвертую информацию квантования второго соответствующего блока яркости, которая используется для определения второй информации квантования, при этом в случае, когда первым типом дерева первой видеообласти является двоичное дерево, первый соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению первой видеообласти, или в случае, когда вторым типом дерева второй видеообласти является двоичное дерево, второй соответствующий блок яркости является блоком кодирования яркости, который охватывает отсчет яркости, соответствующий центральному положению второй видеообласти;
определяют первую переменную qPinput1 на основе третьей информации квантования и вторую переменную qPinput2 на основе четвертой информации квантования;
определяют третью переменную qPoutput1 на основе первой операции табличного соответствия с использованием первой переменной qPinput1 в качестве входной переменной и четвертую переменную qPoutput2 на основе второй операции табличного соответствия с использованием второй переменной qPinput2 в качестве входной переменной;
определяют пятую информацию квантования на основе первого режима кодирования первой видеообласти путем прибавления первого множества смещений QP на различных уровнях видеоблока к третьей переменной qPoutput1 и шестую информацию квантования на основе второго режима кодирования второй видеообласти путем прибавления второго множества смещений QP на различных уровнях видеоблока к четвертой переменной qPoutput2, при этом первое множество смещений QP основано на том, является ли первый режим кодирования режимом совместного кодирования остатков цветности, и второе множество смещений QP основано на том, является ли второй режим кодирования режимом совместного кодирования остатков цветности; и
определяют первую информацию квантования на основе применения первой операции сжатия к пятой информации квантования и определяют вторую информацию квантования на основе применения второй информации сжатия к шестой информации квантования, причем нижний предел первой операции сжатия и второй операции сжатия равен –QpBdOffset, а верхний предел первой операции сжатия и второй операции сжатия равен 63, где QpBdOffset указывает смещение битовой глубины параметра квантования.
RU2022108234A 2019-09-14 2020-09-14 Параметр квантования для деблокирующей фильтрации цветности RU2822510C1 (ru)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/105831 2019-09-14

Publications (1)

Publication Number Publication Date
RU2822510C1 true RU2822510C1 (ru) 2024-07-08

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015187978A1 (en) * 2014-06-04 2015-12-10 Qualcomm Incorporated Block adaptive color-space conversion coding
RU2636103C2 (ru) * 2012-04-03 2017-11-20 Квэлкомм Инкорпорейтед Смещение qp цветности на уровне слайдов и устранение блочности

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2636103C2 (ru) * 2012-04-03 2017-11-20 Квэлкомм Инкорпорейтед Смещение qp цветности на уровне слайдов и устранение блочности
WO2015187978A1 (en) * 2014-06-04 2015-12-10 Qualcomm Incorporated Block adaptive color-space conversion coding

Similar Documents

Publication Publication Date Title
CN114586370B (zh) 在视频编解码中使用色度量化参数的方法、装置及介质
JP7321364B2 (ja) ビデオコーディングにおけるクロマ量子化パラメータ
US11785260B2 (en) Cross-component adaptive loop filtering in video coding
JP7508558B2 (ja) ビデオコーディングにおける量子化グループの使用
KR20220115951A (ko) 비디오 코딩을 위한 크로스 컴포넌트 적응형 루프 필터링
RU2822510C1 (ru) Параметр квантования для деблокирующей фильтрации цветности
CN114503597B (zh) 视频编解码中的色度去方块方法