Область техники, к которой относится изобретение
Данный документ относится к технологиям кодирования и декодирования видео и изображений.
Уровень техники
На цифровое видео приходится наибольшая полоса пропускания в Интернете и других сетях цифровой связи. Ожидается, что по мере увеличения количества подключенных пользовательских устройств, способных принимать и отображать видео, потребность в полосе пропускания для использования цифрового видео будет продолжать расти.
Раскрытие сущности изобретения
Раскрытые способы могут использоваться в вариантах осуществления декодера или кодера видео или изображения, в которых кодирование или декодирование выполняется на основе подизображения.
В одном примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором определяют, для преобразования между текущим блоком первого изображения видео и представлением битового потока видео, кандидата движения на основе информации движения из второго изображения в соответствии с правилом. Правило устанавливает, что позиция, из которой осуществляется доступ к информации движения, ограничена тем, что находится в пределах конкретного подизображения второго изображения. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором определяют, для преобразования текущего блока первого изображения видео и представления битового потока видео, целочисленный отсчет из второго изображения в соответствии с правилом. Второе изображение содержит опорное изображение, которое не используется в процессе интерполяции. Правило устанавливает, что позиция, из которой осуществляется доступ к целочисленному отсчету, должна находиться в пределах конкретного подизображения второго изображения. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором определяют, для преобразования текущего блока видео и представления битового потока видео, позицию, в которой осуществляется доступ к восстановленному отсчету яркости в соответствии с правилом. Правило устанавливает, что позиция ограничена конкретным подизображением видеоизображения. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором определяют, для преобразования текущего блока видео и представления битового потока видео, позицию, в которой проверка границы изображения выполняется в соответствии с правилом. Правило устанавливает, что позиция ограничена конкретным подизображением видеоизображения. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этапы, на которых сбрасывают, после преобразования подизображения видеоизображения видео и представления битового потока видео, таблицу кандидатов движения, полученную на основе прошлых преобразований, и выполняют преобразование последующего подизображения видеоизображения и представления битового потока с использованием указанной таблицы после сброса.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видео, содержащим видеоизображение, которое включает в себя множество подизображений и множество видеоблоков, и кодированным представлением видео, в соответствии с правилом. Правило устанавливает, что граница между любыми двумя подизображениями также является границей между двумя видеоблоками. Видеоблок на видеоизображении перекрывается одним подизображением видеоизображения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видеоблоком видео и кодированным представлением видео с использованием по меньшей мере видеоизображения, причем для видеоблока разрешен только один режим из режима кодирования подизображений или режима кодирования с изменением разрешения. Режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешение видеоизображения регулируется во время преобразования.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видеоблоком видео и кодированным представлением видео с использованием по меньшей мере видеоизображения, причем для видеоблока разрешены как режим кодирования подизображений, так и режим кодирования с изменением разрешения. Режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешение видеоизображения регулируется во время преобразования.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап. на котором выполняют преобразование между видео, содержащим одно или множество видеоизображений, и кодированным представлением видео, причем размер отдельного видеоизображения должен быть больше или равен 8. В некоторых вариантах осуществления размер представляет собой ширину отдельного видеоизображения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видеоизображением видео и кодированным представлением видео в соответствии с правилом. Видеоизображение содержит по меньшей мере одно подизображение, и правило устанавливает, что характеристика подизображения представлена по меньшей мере одним синтаксическим элементом в кодированном представлении, причем указанный по меньшей мере один синтаксический элемент отличается от значения индекса сетки подизображений на видеоизображении.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видеоизображением видео и кодированным представлением видео в соответствии с правилом. Видеоизображение содержит множество подизображений, каждое подизображение содержит множество элементов. Правило устанавливает, что размер отдельных элементов в подизображении удовлетворяет ограничению.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видео, содержащим изображение, которое включает в себя множество подизображений, и кодированным представлением видео с использованием режима кодирования в соответствии с правилом. Правило устанавливает, что некоторая сохраненная информация о предыдущем подизображении сбрасывается перед обработкой каждого следующего подизображения из указанного множества подизображений.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором выполняют операции временной фильтрации при преобразовании между видео и кодированным представлением видео в соответствии с правилом. Видео содержит множество видеоизображений, каждое из которых содержит множество подизображений. Правило устанавливает, что, для временной фильтрации текущего отсчета в текущем подизображении видеоизображения, доступны только отсчеты в пределах того же текущего подизображения или подизображения в другом видеоизображении, соответствующем текущему подизображению.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этап, на котором определяют, для преобразования между блоком на видеоизображении видео и кодированным представлением видео, способ применения способа разделения к блоку на основе того, пересекает ли блок одну или более границ подизображения видеоизображения. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя, для преобразования между видеоизображением видеоизображения и кодированным представлением видео, две подобласти видеоизображения. Первая подобласть содержит множество подизображений видеоизображения, а вторая подобласть содержит оставшиеся отсчеты на видеоизображении. Способ также включает в себя этап, на котором выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт способ обработки видео. Способ включает в себя этапы, на которых определяют, для видеоблока в первой видеообласти видео, находится ли позиция, в которой определен временной предиктор вектора движения для преобразования между видеоблоком и представлением битового потока текущего видеоблока с использованием аффинного режима, в пределах второй видеообласти; и выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя этапы, на которых определяют для видеоблока в первой видеообласти видео, находится ли позиция, в которой извлекается целочисленный отсчет в опорном изображении для преобразования между видеоблоком и представлением битового потока текущего видеоблока, в пределах второй видеообласти, в которой опорное изображение не используется в процессе интерполяции во время преобразования; и выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя этапы, на которых определяют, для видеоблока в первой видеообласти видео, находится ли позиция, в которой восстановленное значение отсчета яркости извлекается для преобразования между видеоблоком и представлением битового потока текущего видеоблока, в пределах второй видеообласти; и выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя этап, на котором определяют, для видеоблока в первой видеообласти видео, находится ли позиция, в которой выполняется проверка относительно разделения, получения глубины или сигнализации флага разделения для видеоблока во время преобразования между видеоблоком и представлением битового потока текущего видеоблока, во второй видеообласти; и выполняют преобразование на основе указанного определения.
В другом примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видео, содержащим одно или более видеоизображений, содержащих один или более видеоблоков, и кодированным представлением видео, причем кодированное представление соответствует требованию синтаксиса кодирования, согласно которому преобразование не должно использовать кодирование/декодирование подизображения и инструмент кодирования/декодирования с динамическим преобразованием разрешения или инструмент передискретизации опорного изображения в видеоблоке.
В другом примерном аспекте раскрыт другой способ обработки видео. Способ включает в себя этап, на котором выполняют преобразование между видео, содержащим одно или более видеоизображений, содержащих один или более видеоблоков, и кодированным представлением видео, причем кодированное представление соответствует требованию синтаксиса кодирования относительно того, что первый синтаксический элемент subpic_grid_idx[i][j] не больше, чем второй синтаксический элемент max_subpics_minus1.
В еще одном примерном аспекте вышеописанный способ может быть реализован устройством видеокодера, которое содержит процессор.
В еще одном примерном аспекте вышеописанный способ может быть реализован устройством видеодекодера, которое содержит процессор.
В еще одном примерном аспекте эти способы могут быть воплощены в виде исполняемых процессором инструкций и сохранены на машиночитаемом носителе программы.
Эти и другие аспекты дополнительно описаны в настоящем документе.
Краткое описание чертежей
Фиг. 1 – пример ограничения области при временном предсказании вектора движения (TMVP) и подблока TMVP.
Фиг. 2 – пример иерархической схемы оценки движения.
Фиг. 3 – блок-схема примера аппаратной платформы, используемой для реализации технологий, описанных в данном документе.
Фиг. 4 – блок-схема примерного способа обработки видео.
Фиг. 5 – блок-схема, иллюстрирующая примерную систему обработки видео, в которой могут быть реализованы различные способы, раскрытые в данном документе.
Фиг. 6 – блок-схема последовательности операций способа обработки видео в соответствии с настоящей технологией.
Фиг. 7 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 8 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 9 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 10 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 11 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 12 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 13 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 14 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 15 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 16 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 17 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 18 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 19 – блок-схема последовательности операций другого способа обработки видео в соответствии с настоящей технологией.
Фиг. 20 – блок-схема последовательности операций еще одного способа обработки видео в соответствии с настоящей технологией.
Осуществление изобретения
Настоящий документ предоставляет различные способы, которые могут использоваться декодером битовых потоков изображения или видео для повышения качества распакованных или декодированных цифровых видео или изображений. Для краткости термин "видео" используется в данном документе для включения как последовательности изображений (традиционно называемых видео), так и отдельных изображений. Кроме того, видеокодер также может реализовать эти способы в процессе кодирования, чтобы восстановить декодированные кадры, используемые для дальнейшего кодирования.
Заголовки разделов используются в настоящем документе для простоты понимания и не ограничивают варианты осуществления и технологии соответствующими разделами. Таким образом, варианты осуществления из одного раздела могут быть объединены с вариантами осуществления из других разделов.
1. Краткое изложение
Данный документ относится к технологиям кодирования видео. В частности, он относится к кодированию палитры с использованием представления на основе базовых цветов при кодировании видео. Он может быть применен к существующему стандарту кодирования видео, например, HEVC, или к стандарту (универсальному кодированию видео), который будет доработан. Он может также применяться в будущих стандартах кодирования видео или видеокодекам.
2. Краткое обсуждение
Стандарты кодирования видео развивались в основном благодаря разработке хорошо известных стандартов ITU-T и ISO/IEC. ITU-T выпустил H.261 и H.263, ISO/IEC выпустил MPEG-1 и MPEG-4 Visual, и две организации совместно выпустили стандарты H.262/MPEG-2 Video и усовершенствованное кодирование видео (AVC) H.264/MPEG-4 Advanced. Стандарты кодирования видео (AVC) и H.265/HEVC. Начиная с H.262, стандарты кодирования видео основаны на структуре гибридного кодирования видео, в которой используются временное предсказание плюс кодирование с преобразованием. Для исследования будущих технологий кодирования видео, выходящих за рамки HEVC, в 2015 году VCEG и MPEG создали объединенную группу по исследованию видео (JVET). С тех пор JVET были одобрены многие новые способы и добавлены в справочное программное обеспечение под названием "модель совместного исследования (JEM)". В апреле 2018 года была создана объединенная группа экспертов по исследованию видео (JVET) между VCEG (Q6/16) и ISO/IEC JTC1 SC29/WG11 (MPEG) для работы над стандартом VVC с целью снижения скорости передачи данных на 50% по сравнению с HEVC.
2.1 Ограничение области в TMVP и подблоке TMVP в VVC
На фиг. 1 показано примерное ограничение области в TMVP и подблоке TMVP. В TMVP и подблоке TMVP ограничивается то, что временный MV может быть выбран только из совмещенной CTU плюс столбца блоков 4×4, как показано на фиг. 1.
2.2 Пример подизображения
В некоторых вариантах осуществления могут быть реализованы способы кодирования на основе подизображений, основанные на подходе гибкого мозаичного разделения. Краткое изложение способов кодирования на основе подизображения включает в себя следующее:
(1) Изображения можно разделить на подизображения.
(2) Указатель существования подизображений указывается в SPS вместе с другой информацией об уровне последовательности подизображений.
(3) Обработкой подизображения как изображения в процессе декодирования (за исключением операций внутриконтурной фильтрации) можно управлять с помощью битового потока.
(4) Отключением внутриконтурной фильтрации по границам подизображения можно управлять с помощью битового потока для каждого подизображения. Процессы DBF, SAO и ALF обновляются для управления операциями внутриконтурной фильтрации по границам подизображения.
(5) Для упрощения в качестве отправной точки ширина, высота, смещение по горизонтали и смещение по вертикали подизображения указываются в единицах отсчетов яркости в SPS. Границы подизображений ограничиваются границами слайсов.
(6) Обработка подизображения как изображения в процессе декодирования (за исключением операций внутриконтурной фильтрации) определяется небольшим обновлением синтаксиса coding_tree_unit() и обновлением следующих процессов декодирования:
- Процесс получения для (расширенного) предсказания временного вектора движения яркости
- Процесс билинейной интерполяции отсчета яркости
- Процесс интерполяционной фильтрации отсчета яркости с 8 касаниями
- Процесс интерполяции отсчета цветности
(7) ID подизображений явно указаны в SPS и включены в заголовки группы тайлов, чтобы обеспечить извлечение последовательностей подизображений без необходимости изменения блоков NAL VCL.
(8) Выходные наборы подизображений (OSPS) предлагаются для определения нормативных точек извлечения и соответствия для подизображений и их наборов.
2.3 Пример подизображений при универсальном кодировании видео
Синтаксис RBSP набора параметров последовательности
subpics_present_flag, равный 1, указывает то, что параметры подизображения присутствуют в настоящем в синтаксисе RBSP SPS. subpics_present_flag, равный 0, указывает то, что параметры подизображения не присутствуют в настоящем в синтаксисе RBSP SPS.
Примечание 2. – Когда битовый поток является результатом процесса извлечения подбитового потока и содержит только поднабор подизображений входного битового потока для процесса извлечения подбитового потока, может потребоваться установить значение subpics_present_flag равным 1 в RBSP SPS.
max_subpics_minus1 плюс 1 указывает максимальное количество подизображений, которые могут присутствовать в CVS. max_subpics_minus1 должно находиться в диапазоне от 0 до 254. Значение 255 зарезервировано для будущего использования ITU-T | ISO/IEC.
subpic_grid_col_width_minus1 плюс 1 указывает ширину каждого элемента сетки идентификаторов подизображений в единицах из 4 отсчетов. Длина синтаксического элемента составляет Ceil(Log2(pic_width_max_in_luma_samples / 4)) битов.
Переменная NumSubPicGridCols получается следующим образом:
NumSubPicGridCols = (pic_width_max_in_luma_samples + subpic_grid_col_width_minus1 * 4 + 3) /
(subpic_grid_col_width_minus1 * 4 + 4) … (7 - 5)
subpic_grid_row_height_minus1 плюс 1 указывает высоту каждого элемента сетки идентификаторов подизображений в единицах из 4 отсчетов. Длина синтаксического элемента составляет Ceil(Log2(pic_height_max_in_luma_samples / 4)) битов.
Переменная NumSubPicGridRows получается следующим образом:
NumSubPicGridRows = (pic_height_max_in_luma_samples + subpic_grid_row_height_minus1 * 4 + 3) /
(subpic_grid_row_height_minus1 * 4 + 4) … (7-6)
subpic_grid_idx[ i ][ j ] указывает индекс подизображения позиции сетки (i, j). Длина синтаксического элемента составляет Ceil(Log2(max_subpics_minus1 + 1)) битов.
Переменные SubPicTop[ subpic_grid_idx[ i ][ j ] ], SubPicLeft[ subpic_grid_idx[ i ][ j ] ], SubPicWidth[ subpic_grid_idx[ i ][ j ] ], SubPicHeight[ subpic_grid_idx[ i ][ j ] ] и NumSubPics получаются следующим образом:
NumSubPics = 0
for(i = 0; i. < NumSubPicGridRows; i++) {
for(j = 0; j < NumSubPicGridCols; j++) {
if (i = = 0)
SubPicTop[ subpic_grid_idx[ i ][ j ] ] = 0
else if(subpic_grid_idx[ i ][ j ] != subpic_grid_idx[ i – 1 ][ j ]) {
SubPicTop[ subpic_grid_idx[ i ][ j ] ] = i
SubPicHeight[ subpic_grid_idx[ i − 1][ j ] ] = i − SubPicTop[ subpic_grid_idx[ i − 1 ][ j ]
}
if (j = = 0)
SubPicLeft[ subpic_grid_idx[ i ][ j ] ] = 0
else if (subpic_grid_idx[ i ][ j ] != subpic_grid_idx[ i ][ j − 1 ]) {
SubPicLeft[ subpic_grid_idx[ i ][ j ] ] = j
SubPicWidth[ subpic_grid_idx[ i ][ j ] ] = j − SubPicLeft[ subpic_grid_idx[ i ][ j − 1 ] ]
}
if (i = = NumSubPicGridRows − 1)
SubPicHeight[ subpic_grid_idx[ i ][ j ] ] =
i − SubPicTop[ subpic_grid_idx[ i − 1 ][ j ] ] + 1
if (j = = NumSubPicGridRows − 1)
SubPicWidth[ subpic_grid_idx[ i ][ j ] ] =
j − SubPicLeft[ subpic_grid_idx[ i ][ j − 1 ] ] + 1
if(subpic_grid_idx[ i ][ j ] > NumSubPics)
NumSubPics = subpic_grid_idx[ i ][ j ]
}
}
subpic_treated_as_pic_flag [ i ], равный 1, указывает то, что i-ое подизображение каждого кодированного изображения в CVS обрабатывается как изображение в процессе декодирования, за исключением операций внутриконтурной фильтрации. subpic_treated_as_pic_flag[ i ], равное 0, указывает то, что i-ое подизображение каждого кодированного изображения в CVS не обрабатывается как изображение в процессе декодирования, за исключением операций внутриконтурной фильтрации. Если он отсутствует, предполагается, что значение subpic_treated_as_pic_flag[ i ] равно 0.
loop_filter_across_subpic_enabled_flag [ i ], равное 1, указывает то, что операции внутриконтурной фильтрации могут выполняться по границам i-го подизображения в каждом кодированном изображении в CVS. loop_filter_across_subpic_enabled_flag[ i ], равное 0, указывает то, что операции внутриконтурной фильтрации не выполняются за границами i-го подизображения в каждом кодированном изображении в CVS. Если параметр отсутствует, предполагается, что значение loop_filter_across_subpic_enabled_pic_flag[ i ] равно 1.
Требованием соответствия битового потока являются следующие ограничения:
- Для любых двух подизображений subpicA и subpicB, когда индекс subpicA меньше индекса subpicB, любая кодированная единица NAL subPicA должна следовать за любой кодированной единицей NAL subPicB в порядке декодирования.
- Формы подизображений должны быть такими, чтобы каждое подизображение при декодировании имело всю левую границу и всю верхнюю границу, состоящую из границ изображения или состоящую из границ ранее декодированных подизображений.
Список CtbToSubPicIdx[ ctbAddrRs ] для ctbAddrRs в диапазоне от 0 до PicSizeInCtbsY − 1 включительно, указывающий преобразование из адреса CTB в растровом скане изображения в индекс подизображения, получается следующим образом:
for( ctbAddrRs = 0; ctbAddrRs < PicSizeInCtbsY; ctbAddrRs++ ) {
posX = ctbAddrRs % PicWidthInCtbsY * CtbSizeY
posY = ctbAddrRs / PicWidthInCtbsY * CtbSizeY
CtbToSubPicIdx[ ctbAddrRs ] = −1
for( i = 0; CtbToSubPicIdx[ ctbAddrRs ] < 0 && i < NumSubPics; i++ ) {
if( ( posX >= SubPicLeft[ i ] * ( subpic_grid_col_width_minus1 + 1 ) * 4 ) &&
( posX < ( SubPicLeft[ i ] + SubPicWidth[ i ] ) *
( subpic_grid_col_width_minus1 + 1 ) * 4 ) &&
( posY >= SubPicTop[ i ] *
( subpic_grid_row_height_minus1 + 1 ) * 4 ) &&
( posY < ( SubPicTop[ i ] + SubPicHeight[ i ] ) *
( subpic_grid_row_height_minus1 + 1 ) * 4 ) )
CtbToSubPicIdx[ ctbAddrRs ] = i
}
}
num_bricks_in_slice_minus1, если этот параметр присутствует, указывает количество базовых блоков в слайсе минус 1. Значение num_bricks_in_slice_minus1 должно быть в диапазоне от 0 до NumBricksInPic − 1 включительно. Когда rect_slice_flag равно 0, и single_brick_per_slice_flag равно 1, предполагается, что значение num_bricks_in_slice_minus1 равно 0. Когда single_brick_per_slice_flag равно 1, значение num_bricks_in_slice_minus1 предполагается равным 0.
Переменная NumBricksInCurrSlice, указывающая количество базовых блоков в текущем слайсе, и SliceBrickIdx[ i ], указывающая индекс i-го базового блока в текущем слайсе, выводятся следующим образом:
if( rect_slice_flag ) {
sliceIdx = 0
while( slice_address != slice_id[ sliceIdx ] )
sliceIdx++
NumBricksInCurrSlice = NumBricksInSlice[ sliceIdx ]
brickIdx = TopLeftBrickIdx[ sliceIdx ]
for( bIdx = 0; brickIdx <= BottomRightBrickIdx[ sliceIdx ]; brickIdx++ ) … (792)
if( BricksToSliceMap[ brickIdx ] = = sliceIdx )
SliceBrickIdx[ bIdx++ ] = brickIdx
} else {
NumBricksInCurrSlice = num_bricks_in_slice_minus1 + 1
SliceBrickIdx[ 0 ] = slice_address
for( i = 1; i < NumBricksInCurrSlice; i++ )
SliceBrickIdx[ i ] = SliceBrickIdx[ i − 1 ] + 1
}
Переменные SubPicIdx, SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos и SubPicBotBoundaryPos получаются следующим образом:
SubPicIdx = CtbToSubPicIdx[ CtbAddrBsToRs[ FirstCtbAddrBs[ SliceBrickIdx[ 0 ] ] ] ]
if(subpic_treated_as_pic_flag[ SubPicIdx ]) {
SubPicLeftBoundaryPos = SubPicLeft[ SubPicIdx ] * (subpic_grid_col_width_minus1 + 1) * 4
SubPicRightBoundaryPos = (SubPicLeft[ SubPicIdx ] + SubPicWidth[ SubPicIdx ]) *
(subpic_grid_col_width_minus1 + 1) * 4
SubPicTopBoundaryPos = SubPicTop[ SubPicIdx ] * (subpic_grid_row_height_minus1 + 1)* 4
SubPicBotBoundaryPos = (SubPicTop[ SubPicIdx ] + SubPicHeight[ SubPicIdx ]) *
(subpic_grid_row_height_minus1 + 1) * 4
}
…
Процесс получения для предсказания временного вектора движения яркости
Входными данными для этого процесса являются:
– местоположение (xCb, yCb) яркости верхнего левого отсчета текущего блока кодирования яркости временного слияния яркости временного слияния,
– переменная cbWidth, указывающая ширину текущего блока кодирования в отсчетах яркости,
– переменная cbHeight, указывающая высоту текущего блока кодирования в отсчетах яркости,
– опорный индекс refIdxLX, где X равен 0 или 1.
Результатами этого процесса являются:
– предсказание mvLXCol вектора движения с точностью до дробного отсчета 1/16,
– флаг availableFlagLXCol доступности.
Переменная currCb указывает текущий блок кодирования яркости в местоположении яркости (xCb, yCb).
Переменные mvLXCol и availableFlagLXCol получаются следующим образом:
– Если slice_temporal_mvp_enabled_flag равно 0, или (cbWidth * cbHeight) меньше или равно 32, оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
– В противном случае (slice_temporal_mvp_enabled_flag равно 1) применяются следующие упорядоченные шаги:
1. Нижний правый совмещенный вектор движения, и нижняя и правая граничные местоположения отсчета получаются следующим образом:
xColBr = xCb + cbWidth (8-421)
yColBr = yCb + cbHeight (8-422)
rightBoundaryPos = subpic_treated_as_pic_flag[ SubPicIdx ] ?
SubPicRightBoundaryPos : pic_width_in_luma_samples – 1 … (8-423)
botBoundaryPos = subpic_treated_as_pic_flag[ SubPicIdx ] ?
SubPicBotBoundaryPos : pic_height_in_luma_samples – 1 … (8-424)
– Если yCb >> CtbLog2SizeY равно yColBr >> CtbLog2SizeY, yColBr меньше или равно botBoundaryPos, и xColBr меньше или равно rightBoundaryPos, применяется следующее:
– Переменная colCb указывает блок кодирования яркости, перекрывающий измененное местоположение, заданное ((xColBr >> 3) << 3, (yColBr >> 3) << 3) внутри совмещенного изображения, указанного ColPic.
– Местоположение (xColCb, yColCb) яркости устанавливается равным верхнему левому отсчету совмещенного блока кодирования яркости, указанной colCb, относительно верхнего левого отсчета яркости совмещенного изображения, указанного ColPic.
– Процесс получения для совмещенных векторов движения, как указано в пункте 8.5.2.12, вызывается с currCb, colCb, (xColCb, yColCb), refIdxLX и sbFlag, установленными равными 0, в качестве входных данных, и выходные данные назначаются mvLXCol и availableFlagLXCol.
В противном случае оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
…
Процесс билинейной интерполяции отсчета яркости
Входными данными для этого процесса являются:
– местоположение яркости в единицах полного отсчета (xIntL, yIntL),
– местоположение яркости в единицах дробного отсчета (xFracL , yFracL),
– массив refPicLX L опорных отсчетов яркости.
Результатом этого процесса является предсказанное значение отсчета яркости predSampleLXL.
Переменные shift1, shift2, shift3, shift4, offset1, offset2 и offset3 получаются следующим образом:
shift1 = BitDepthY – 6 … (8-453)
offset1 = 1 << (shift1 − 1) … (8-454)
shift2 = 4 … (8-455)
offset2 = 1 << (shift2 − 1) … (8-456)
shift3 = 10 − BitDepthY … (8-457)
shift4 = BitDepthY – 10 … (8-458)
offset4 = 1 << (shift4 − 1) … (8-459)
Переменная picW устанавливается равной pic_width_in_luma_samples, и переменная picH устанавливается равной pic_height_in_luma_samples.
Коэффициенты fbL[ p ] интерполяционного фильтра яркости для каждой 1/16 позиции p дробного отсчета, равной xFracL или yFrac L, указаны в таблице 8-10.
Местоположения яркости в единицах полного отсчета (xInti, yInti) получаются следующим образом для i = 0..1:
– Если значение subpic_treated_as_pic_flag[ SubPicIdx ] равно 1, применяется следующее:
xInti = Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i) (8-460)
yInti = Clip3(SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i) (8-461)
– В противном случае (subpic_treated_as_pic_flag[ SubPicIdx ] равно 0), применяется следующее:
xInti = Clip3(0, picW − 1, sps_ref_wraparound_enabled_flag ?
ClipH((sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY, picW, (xIntL + i)) : (8-462)
xIntL + i)
yInti = Clip3(0, picH − 1, yIntL + i) … (8-463)
…
Процесс получения кандидатов временного слияния на основе подблоков
Входными данными для этого процесса являются:
– местоположение яркости (xCb, yCb) верхнего левого отсчета текущего блока кодирования яркости временного слияния яркости временного слияния,
– переменная cbWidth, указывающая ширину текущего блока кодирования в отсчетах яркости,
– переменная cbHeight, указывающая высоту текущего блока кодирования в отсчетах яркости.
– флаг availableFlagA1 доступности соседней единицы кодирования,
– опорный индекс refIdxLXA1 соседней единицы кодирования при X, равным 0 или 1,
– флаг predFlagLXA1 использования списка предсказания соседней единицы кодирования при X, равным 0 или 1,
– вектор движения с точностью до 1/16 дробного отсчета mvLXA1 соседней единицы кодирования при X, равным 0 или 1.
Результатами этого процесса являются:
– флаг availableFlagSbCol доступности,
– количество подблоков кодирования яркости в горизонтальном направлении numSbX и в вертикальном направлении numSbY,
– опорные индексы refIdxL0SbCol и refIdxL1SbCol,
– векторы движения яркости с точностью до 1/16 mvL0SbCol[ xSbIdx ][ ySbIdx ] и mvL1SbCol[ xSbIdx ][ ySbIdx ] при XSbIdx = 0..numSbX − 1, ySbIdx = 0 .. numSbY − 1,
– флаги predFlagL0SbCol[ xSbIdx ][ ySbIdx ] и predFlagL1SbCol[ xSbIdx ][ ySbIdx ] использования списка предсказаний при XSbIdx = 0..numSbX − 1, ySbIdx = 0 .. numSbY − 1.
Флаг availableFlagSbCol доступности получается следующим образом.
– Если выполняется одно или несколько из следующих условий, availableFlagSbCol устанавливается равным 0.
– slice_temporal_mvp_enabled_flag равно 0.
– sps_sbtmvp_enabled_flag равно 0.
– cbWidth меньше 8.
– cbHeight меньше 8.
– В противном случае применяются следующие упорядоченные шаги:
1. Местоположение (xCtb, yCtb) верхнего левого отсчета блока дерева кодирования яркости, который содержит текущий блок кодирования, и местоположение (xCtr, yCtr) нижней правого центрального отсчета текущего блока кодирования яркости получаются следующим образом:
xCtb = (xCb >> CtuLog2Size) << CtuLog2Size … (8-542)
yCtb = (yCb >> CtuLog2Size) << CtuLog2Size … (8-543)
xCtr = xCb + (cbWidth / 2) … (8-544)
yCtr = yCb + (cbHeight / 2) … (8-545)
2. Местоположение яркости (xColCtrCb, yColCtrCb) устанавливается равным верхнего левого отсчета блока кодирования яркости, перекрывающего местоположение, заданное (xCtr, yCtr) внутри ColPic, относительно верхнего левого отсчета яркости совмещенного изображения, указанного ColPic.
3. Процесс получения базовых данных движения о временном слиянии на основе подблоков, как указано в пункте 8.5.5.4, вызывается путем указания местоположения (xCtb, yCtb), местоположения (xColCtrCb, yColCtrCb), флага availableFlagA1 доступности и флага predFlagLXA1 использования списка предсказаний, опорного индекса refIdxLXA1 и вектора mvLXA1 движения, где X равно 0 и 1, в качестве входных данных, и векторов ctrMvLX движения, флагов ctrPredFlagLX использования списка предсказания совмещенного блока, где X равно 0 и 1, и временного вектора tempMv движения в качестве выходных данных.
4. Переменная availableFlagSbCol получается следующим образом:
– Если и ctrPredFlagL0, и ctrPredFlagL1 равны 0, availableFlagSbCol устанавливается равным 0.
– В противном случае, availableFlagSbCol устанавливается равным 1.
Когда availableFlagSbCol равно 1, применяется следующее:
– Переменные numSbX, numSbY, sbWidth, sbHeight и refIdxLXSbCol получаются следующим образом:
numSbX = cbWidth >> 3 … (8-546)
numSbY = cbHeight >> 3 … (8-547)
sbWidth = cbWidth / numSbX … (8-548)
sbHeight = cbHeight / numSbY … (8-549)
refIdxLXSbCol = 0 … (8-550)
– Для xSbIdx = 0..numSbX − 1 и ySbIdx = 0 .. numSbY − 1 векторы mvLXSbCol[ xSbIdx ][ ySbIdx ] движения и флаги predFlagLXSbCol[ xSbIdx ][ ySbIdx ] использования списка предсказаний получаются следующим образом:
– Местоположение (xSb, ySb) яркости, указывающее верхний левый отсчет текущего подблока кодирования относительно верхнего левого отсчета яркости временного слияния, получается следующим образом:
xSb = xCb + xSbIdx * sbWidth + sbWidth / 2 … (8-551)
ySb = yCb + ySbIdx * sbHeight + sbHeight / 2 … (8-552)
– Местоположение (xColSb, yColSb) совмещенного подблока внутри ColPic определяется следующим образом.
– Применяется следующее:
yColSb = Clip3(yCtb,
Min(CurPicHeightInSamplesY − 1, yCtb + (1 << CtbLog2SizeY) − 1), … (8-553)
ySb + (tempMv[1] >> 4))
– Если значение subpic_treated_as_pic_flag[ SubPicIdx ] равно 1, применяется следующее:
xColSb = Clip3(xCtb,
Min(SubPicRightBoundaryPos, xCtb + (1 << CtbLog2SizeY) + 3), … (8-554)
xSb + (tempMv[0] >> 4))
– В противном случае (subpic_treated_as_pic_flag[ SubPicIdx ] равно 0), применяется следующее:
xColSb = Clip3(xCtb,
Min(CurPicWidthInSamplesY − 1, xCtb + (1 << CtbLog2SizeY) + 3), … (8-555)
xSb + (tempMv[0] >> 4))
…
Процесс получения базовых данных движения о временном слиянии на основе подблоков
Входными данными для этого процесса являются:
– местоположение (xCtb, yCtb) верхнего левого отсчета блока дерева кодирования яркости, который содержит текущий блок кодирования,
– местоположение (xColCtrCb, yColCtrCb) верхнего левого отсчета совмещенного блока кодирования яркости, который перекрывает нижний правый центральный отсчет.
– флаг availableFlagA1 доступности соседней единицы кодирования,
– опорный индекс refIdxLXA1 соседней единицы кодирования,
– флаг predFlagLXA1 использования списка предсказания соседней единицы кодирования,
– вектор движения с точностью до 1/16 дробного отсчета mvLXA1 соседней единицы кодирования.
Результатами этого процесса являются:
– векторы ctrMvL0 и ctrMvL1 движения,
– флаги ctrPredFlagL0 и ctrPredFlagL1 использования списка предсказаний,
– временной вектор tempMv движения.
Переменная tempMv устанавливается следующим образом:
tempMv[ 0 ] = 0 … (8-558)
tempMv[ 1 ] = 0 … (8-559)
Переменная currPic указывает текущее изображение.
Когда availableFlagA1 равно значению «истина», применяется следующее:
– Если выполняются все следующие условия, tempMv устанавливается равным mvL0A1:
– predFlagL0A1 равно 1,
– DiffPicOrderCnt(ColPic, RefPicList[ 0 ][refIdxL0A1 ]) равно 0,
– В противном случае, если выполняются все следующие условия, tempMv устанавливается равным mvL1A1:
– slice_type равно B,
– predFlagL1A1 равно 1,
– DiffPicOrderCnt(ColPic, RefPicList[ 1 ][refIdxL1A1]) равно 0.
Местоположение (xColCb, yColCb) совмещенного блока внутри ColPic определяется следующим образом.
– Применяется следующее:
yColCb = Clip3(yCtb,
Min(CurPicHeightInSamplesY − 1, yCtb + (1 << CtbLog2SizeY) − 1), … (8-560)
yColCtrCb + (tempMv[1] >> 4))
– Если значение subpic_treated_as_pic_flag[ SubPicIdx ] равно 1, применяется следующее:
xColCb = Clip3(xCtb,
Min(SubPicRightBoundaryPos, xCtb + (1 << CtbLog2SizeY) + 3), … (8561)
xColCtrCb + (tempMv[0] >> 4))
– В противном случае (subpic_treated_as_pic_flag[ SubPicIdx ] равно o, применяется следующее:
xColCb = Clip3(xCtb,
Min(CurPicWidthInSamplesY − 1, xCtb + (1 << CtbLog2SizeY) + 3), … (8562)
xColCtrCb + (tempMv[0] >> 4))
…
Процесс фильтрации интерполяции отсчета яркости
Входными данными для этого процесса являются:
– местоположение яркости в единицах полного отсчета (xIntL, yIntL),
– местоположение яркости в единицах дробного отсчета (xFracL, yFracL),
– местоположение яркости в единицах полного отсчета (xSbIntL, ySbIntL), указывающее верхний левый отсчет ограничивающего блока для заполнения опорного отсчета относительно верхнего левого отсчета яркости опорного изображения,
– массив refPicLXL опорных отсчетов яркости,
– индекс hpelIfIdx интерполяционного фильтра половинного отсчета,
– переменная sbWidth, указывающая ширину текущего подблока,
– переменная sbHeight, указывающая высоту текущего подблока,
– местоположение (xSb, ySb) яркости, указывающее верхнего левого отсчета текущего подблока относительно верхнего левого отсчета яркости временного слияния,
Результатом этого процесса является предсказанное значение predSampleLXL отсчета яркости.
Переменные shift1, shift2 и shift3 получаются следующим образом:
– Переменная shift1 устанавливается равной Min(4, BitDepthY − 8), переменная shift2 устанавливается равной 6, и переменная shift3 устанавливается равной Max(2, 14 − BitDepthY).
– Переменная picW устанавливается равной pic_width_in_luma_samples, и переменная picH устанавливается равной pic_height_in_luma_samples.
Коэффициенты fL[ p ] интерполяционного фильтра яркости для каждой 1/16 позиции дробного отсчета p, равной xFracL или yFrac L, получаются следующим образом:
– Если MotionModelIdc[ xSb ][ ySb ] больше 0, и sbWidth и sbHeight оба равны 4, коэффициенты fL[ p ] интерполяционного фильтра яркости указываются в таблице 8-12.
– В противном случае коэффициенты fL[ p ] интерполяционного фильтра яркости указываются в таблице 8-11 в зависимости от hpelIfIdx.
Местоположения яркости в единицах полного отсчета (xInti, yInti) получаются следующим образом для i = 0..7:
– Если значение subpic_treated_as_pic_flag[ SubPicIdx ] равно 1, применяется следующее:
xInti = Clip3(SubPicLeftBoundaryPos, SubPicRightBoundaryPos, xIntL + i − 3)… (8-771)
yInti = Clip3(SubPicTopBoundaryPos, SubPicBotBoundaryPos, yIntL + i − 3)… (8-772)
– В противном случае (subpic_treated_as_pic_flag[ SubPicIdx ] равно 0), применяется следующее:
xInti = Clip3(0, picW − 1, sps_ref_wraparound_enabled_flag ?
ClipH((sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY, picW, xIntL + i − 3) : (8-773)
xIntL + i − 3)
yInti = Clip3(0, picH − 1, yIntL + i − 3) … (8-774)
…
Процесс интерполяции отсчета цветности
Входными данными для этого процесса являются:
– местоположение цветности в единицах полного отсчета (xIntC, yIntC),
– местоположение цветности в 1/32 дробных единицах отсчета (xFracC, yFracC),
– местоположение цветности в единицах полного отсчета (xSbIntC, ySbIntC), указывающее верхний левый отсчет ограничивающего блока для заполнения опорного отсчета относительно верхнего левого отсчета цветности опорного изображения,
– переменная sbWidth, указывающая ширину текущего подблока,
– переменная sbHeight, указывающая высоту текущего подблока,
– массив refPicLXC опорных отсчетов цветности.
Результатом этого процесса является предсказанное значение predSampleLXC отсчета цветности.
Переменные shift1, shift2 и shift3 получаются следующим образом:
– Переменная shift1 устанавливается равной Min(4, BitDepthC − 8), переменная shift2 устанавливается равной 6, и переменная shift3 устанавливается равной Max(2, 14 − BitDepthC).
– Переменная picWC устанавливается равной pic_width_in_luma_samples / SubWidthC, и переменная picHC устанавливается равной pic_height_in_luma_samples / SubHeightC.
Коэффициенты fC[ p ] интерполяционного фильтра цветности для каждой 1/32 дробной позиции отсчета p, равной xFracC или yFracC, указаны в таблице 8-13.
Переменная xOffset устанавливается равной (sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY) / SubWidthC.
Местоположение цветности в единицах полного отсчета (xInti, yInti) получается следующим образом для i = 0..3:
– Если значение subpic_treated_as_pic_flag[ SubPicIdx ] равно 1, применяется следующее:
xInti = Clip3(SubPicLeftBoundaryPos / SubWidthC, SubPicRightBoundaryPos / SubWidthC, xIntL + i) (8-785)
yInti = Clip3(SubPicTopBoundaryPos / SubHeightC, SubPicBotBoundaryPos / SubHeightC, yIntL + i) (8-786)
– В противном случае (subpic_treated_as_pic_flag[ SubPicIdx ] равно 0), применяется следующее:
xInti = Clip3(0, picWC − 1, sps_ref_wraparound_enabled_flag ? ClipH(xOffset, picWC, xIntC + i − 1) : … (8-787)
xIntC + i − 1)
yInti = Clip3(0, picHC − 1, yIntC + i − 1) … (8-788)
2.4 Пример временного фильтра на основе GOP только для кодера
В некоторых вариантах осуществления может быть реализован временной фильтр только для кодера. Фильтрация выполняется на стороне кодера в качестве этапа предварительной обработки. Считываются исходные изображения до и после выбранного изображения для кодирования, и к этим исходным изображениям применяется способ блочной компенсации движения относительно выбранного изображения. Отсчеты в выбранном изображении фильтруются во времени с использованием значений отсчетов после компенсации движения.
Общая мощность фильтра устанавливается в зависимости от временного подслоя выбранного изображения, а также от QP. Фильтруются только изображения на временных под слоях 0 и 1, и изображения слоя 0 фильтруются более сильным фильтром, чем изображения слоя 1. Мощность фильтра для отсчета регулируется в зависимости от разницы между значением отсчета в выбранном изображении и совмещенными отсчетами в изображениях с компенсацией движения, так что небольшие различия между изображением с компенсацией движения и выбранным изображением фильтруются сильнее, чем большие различия.
Временной фильтр на основе GOP
Временной фильтр вводится непосредственно после считывания изображения и перед кодированием. Ниже приводится более подробное описание последовательности операций.
Операция 1: Изображения считываются кодером
Операция 2: Если изображение находится достаточно низко в иерархии кодирования, то оно фильтруется перед кодированием. В противном случае изображение кодируется без фильтрации. Изображения RA с POC % 8 == 0 фильтруются так же, как изображения LD с POC % 4 == 0. Изображения AI никогда не фильтруются.
Общая мощность фильтра s0 устанавливается в соответствии с приведенным ниже уравнением для RA.
,
где n – количество считанных изображений.
Для случая LD используется s0(n)=0.95.
Операция 3: Считываются два изображения до и/или после выбранного изображения (называемого далее исходным изображением). В крайних случаях, например, если изображением является первое изображение или близкое к последнему изображению, считываются только доступные изображения.
Операция 4: Движение считанных изображений до и после, относительно исходного изображения, оценивается по блоку изображения 8x8.
Используется иерархическая схема оценки движения, и слои L0, L1 и L2 показаны на фиг. 2. Субдискретизированные изображения вырабатываются путем усреднения каждого блока 2x2 для всех считанных изображений и исходного изображения, например, L1 на фиг. 1. L2 получается из L1 с использованием одного и того же способа субдискретизации.
На фиг. 2 показаны примеры различных уровней иерархической оценки движения, где L0 – исходное разрешение, L1 – субдискретизированная версия L0, и L2 –субдискретизированная версия L1.
Во-первых, оценка движения выполняется для каждого блока 16x16 в L2. Квадрат разности вычисляется для каждого выбранного вектора движения, и выбирается вектор движения, соответствующий наименьшей разности. Выбранный вектор движения затем используется в качестве начального значения при оценке движения в L1. Затем то же самое делается для оценки движения в L0. В качестве последнего шага оценивается движение подпикселя для каждого блока 8x8 с использованием интерполяционного фильтра при L0.
Интерполяционный фильтр VTM с 6 отводами может использовать:
Операция 5: Компенсация движения применяется к изображениям до и после исходного изображения в соответствии с наиболее совпадающим движением для каждого блока, например таким образом, чтобы координаты отсчетов исходного изображения в каждом блоке имели наиболее совпадающие координаты в опорных изображениях.
Операция 6: Отсчеты обрабатываются одна за другой для каналов яркости и цветности, как описано в следующих этапах.
Операция 7: Новое значение In отсчета вычисляется с использованием следующей формулы.
,
где I0 – значение отсчета исходного отсчета, Ir(i) –интенсивность соответствующего отсчета изображения i с компенсацией движения, и wr(i,a) – вес изображения i с компенсацией движения, когда количество доступных изображений с компенсацией движения равно a.
В канале яркости веса wr(i,a) определяются следующим образом:
,
где
Для всех остальных случаев i и a: sr(i,a)=0.3
Для каналов цветности веса wr(i,a) определяются следующим образом:
,
где sc=0.55 и σc=30
Операция 8: Фильтр применяется к текущему отсчету. Результирующее значение отсчета сохраняется отдельно.
Операция 9: Кодируется фильтрованное изображение.
3. Примеры технических задач, решаемых раскрытыми вариантами осуществления.
(1) Существуют некоторые конструкции, которые могут нарушать ограничения на подизображения.
A. TMVP в аффинно построенных кандидатах может извлекать MV в совмещенном изображении из диапазона текущих подизображений.
B. При получении градиентов в двунаправленном оптическом потоке (BDOF) и оптическом потоке с уточнением предсказания (PROF) необходимо извлечь две расширенные строки и два расширенных столбца целочисленных опорных отсчетов. Эти опорные отсчеты могут находиться за пределами диапазона текущего подизображения.
C. При получении коэффициента масштабирования остатка цветности при масштабировании цветности с сопоставлением яркости (LMCS) доступ к восстановленным отсчетам яркости может находиться за пределами диапазона текущего подизображения.
D. Соседний блок может находиться за пределами диапазона текущего подизображения при получении режима внутрикадрового предсказания яркости, опорных отсчетов для внутрикадрового предсказания, опорных отсчетов для CCLM, доступности соседнего блока для пространственных соседних кандидатов для слияния/AMVP/CIIP/IBC/LMCS, параметров квантования, процесса инициализации CABAC, получении ctxInc с использованием левого и верхнего синтаксических элементов и ctxInc для синтаксического элемента mtt_split_cu_vertical_flag. Представление подизображений может привести к получению подизображений с неполными CTU. Может потребоваться, чтобы разделы CTU и процесс разделения CU учитывали неполные CTU.
(2) Просигнализированные синтаксические элементы, относящиеся к подизображению, могут быть произвольно большими, что может вызвать проблему переполнения.
(3) Представление подизображений может привести к непрямоугольным подизображениям.
(4) В настоящее время подизображение и сетка подизображений определяются в единицах из 4 отсчетов. Поэтому длина синтаксического элемента зависит от высоты изображения, деленной на 4. Однако, так как текущие pic_width_in_luma_samples и pic_height_in_luma_samples должны быть целым числом, кратным Max(8, MinCbSizeY), может потребоваться определить сетку подизображений в единицах из 8 отсчетов.
(5) Синтаксис SPS, pic_width_max_in_luma_samples и pic_height_max_in_luma_samples, возможно, необходимо ограничить до 8.
(6) Взаимодействие между передискретизацией/масштабируемостью опорного изображения и подизображением в текущем проекте не рассматривается.
(7) При временной фильтрации могут потребоваться отсчеты по разным подизображениям.
4. Примеры технологий и вариантов осуществления
Приведенный ниже подробный список следует рассматривать в качестве примеров, которые поясняют общие концепции. Эти пункты не следует трактовать в узком смысле. Кроме того, эти пункты можно комбинировать любым образом. Далее, временной фильтр используется для представления фильтров, которые требуют отсчетов в других изображениях. Max(x, y) выдает одно наибольшее значение из значений x и y. Min(x, y) выдает одно наименьшее значение из значений x и y.
1. Позиция (названная позицией RB), в которой временной предиктор MV получается на изображении для выработки кандидатов аффинного движения (например, построенный кандидат аффинного слияния), должна находиться в требуемом подизображении при условии, что координатами требуемого подизображения в верхнем левом углу являются (xTL, yTL), и координатами требуемого правого нижнего подизображения являются (xBR, yBR).
a) В одном примере требуемым подизображением является подизображение, перекрывающее текущий блок.
b) В одном примере, если позиция RB с координатами (x, y) находится за пределами требуемого подизображения, временной предиктор MV рассматривается как недоступный.
1) В одном примере позиция RB находится за пределами требуемого подизображения, если x > xBR.
2) В одном примере позиция RB находится за пределами требуемого подизображения, если y > yBR.
3) В одном примере позиция RB находится за пределами требуемого подизображения, если x < xTL.
4) В одном примере позиция RB находится за пределами требуемого подизображения, если y < yTL.
c) В одном примере, если позиция RB находится за пределами требуемого подизображения, используется замена RB.
1) Альтернативно или дополнительно, позиция замены должна находиться в требуемом подкадре.
d) В одном примере позиция RB ограничивается таким образом, чтобы она находилась в требуемом подизображении.
1) В одном примере x ограничивается как x = Min(x, xBR).
2) В одном примере y ограничивается как y = Min(y, yBR).
3) В одном примере x ограничивается как x = Max(x, xTL).
4) В одном примере y ограничивается как y = Max(y, yTL).
e) В одном примере позиция RB может быть нижней правой позицией внутри соответствующего блока текущего блока в совмещенном изображении.
f) Предложенный способ может быть использован в других средствах кодирования, которые требуют доступа к информации движения из изображения, отличного от временного слияния.
g) В одном примере, то, применяются ли вышеперечисленные способы (например, позиция RB должна быть в требуемом подизображении (например, чтобы сделать то, что заявлено в п.1.a) и/или п.1.b)), может зависеть от одного или нескольких сигнализируемых синтаксических элементов. в VPS/DPS/SPS/PPS/APS/заголовке слайса/заголовке группы тайлов. Например, синтаксический элемент может быть subpic_treated_as_pic_flag[SubPicIdx], где SubPicIdx является индексом подизображения для подизображения, перекрывающего текущий блок.
2. Позиция (называемая позицией S), в которой извлекается целочисленный отсчет в эталоне, не используемом в процессе интерполяции, должна находиться в требуемом подизображении при условии, что координатами требуемого подизображения в верхнем левом углу являются (xTL, yTL), и координатами требуемого правого нижнего подизображения являются (xBR, yBR).
a) В одном примере требуемым подизображением является подизображение, перекрывающее текущий блок.
b) В одном примере, если позиция S с координатами (x, y) находится за пределами требуемого подизображения, опорный отсчет рассматривается как недоступный.
1) В одном примере позиция S находится за пределами требуемого подизображения, если x > xBR.
2) В одном примере позиция S находится за пределами требуемого подизображения, если y > yBR.
3) В одном примере позиция S находится за пределами требуемого подизображения, если x < xTL.
4) В одном примере позиция S находится за пределами требуемого подизображения, если y < yTL.
c) В одном примере позиция S ограничивается таким образом, чтобы она находилась в требуемом подизображении.
1) В одном примере x ограничивается как x = Min(x, xBR).
2) В одном примере y ограничивается как y = Min(y, yBR).
3) В одном примере x ограничивается как x = Max(x, xTL).
4) В одном примере y ограничивается как y = Max(y, yTL).
d) В одном примере, то, должна ли позиция S находиться в требуемом подизображении (например, чтобы сделать то, что заявлено в п.2.a) и/или п.2.b)), может зависеть от одного или нескольких синтаксических элементов, сигнализируемых в VPS/DPS/SPS/PPS/APS/заголовке слайса/заголовке группы тайлов. Например, синтаксический элемент может быть subpic_treated_as_pic_flag[ SubPicIdx ], где SubPicIdx является индексом подизображения для подизображения, перекрывающего текущий блок.
e) В одном примере выбранный целочисленный отсчет используется для создания градиентов в BDOF и/или PORF.
3. Позиция (называемая позицией R), в которой извлекается восстановленное значение отсчета яркости, может находиться в требуемом дополнительном изображении, предполагая, что координатами требуемого подизображения в верхнем левом углу являются (xTL, yTL), и координатами требуемого нижнего правого подизображения являются (xBR, yBR).
a) В одном примере требуемым подизображением является подизображение, перекрывающее текущий блок.
b) В одном примере, если позиция R с координатами (x, y) находится за пределами требуемого подизображения, опорный отсчет считается недоступным.
1) В одном примере позиция R находится за пределами требуемого подизображения, если x > xBR.
2) В одном примере позиция R находится за пределами требуемого подизображения, если y > yBR.
3) В одном примере позиция R находится за пределами требуемого подизображения, если x < xTL.
4) В одном примере позиция R находится за пределами требуемого подизображения, если y < yTL.
c) В одном примере позиция R ограничивается таким образом, чтобы она находилась в требуемом подизображении.
1) В одном примере x ограничивается как x = Min(x, xBR).
2) В одном примере y ограничивается как y = Min(y, yBR).
3) В одном примере x ограничивается как x = Max(x, xTL).
4) В одном примере y ограничивается как y = Max(y, yTL).
d) В одном примере то, должна ли позиция R находиться в требуемом подизображении (например, чтобы сделать то, что заявлено в п.4.a) и/или п.4.b)), может зависеть от одного или нескольких синтаксических элементов, сигнализируемых в VPS/DPS/SPS/PPS/APS/заголовке слайса/заголовке группы тайлов. Например, синтаксический элемент может быть subpic_treated_as_pic_flag[ SubPicIdx ], где SubPicIdx является индексом подизображения для подизображения, перекрывающего текущий блок.
e) В одном примере извлеченный отсчет яркости используется для получения коэффициента масштабирования для компонента(ов) цветности в LMCS.
4. Позиция (называемая позицией N), в которой проверка границы изображения на разделение BT/TT/QT, определение глубины BT/TT/QT и/или сигнализация флага разделения CU, должна находиться в требуемом подизображении при условии, что координатами требуемого подизображения в верхнем левом углу являются (xTL, yTL) и координатами требуемого правого нижнего подизображения являются (xBR, yBR).
a) В одном примере требуемым подизображением является подизображение, перекрывающее текущий блок.
b) В одном примере, если позиция N с координатами (x, y) находится за пределами требуемого подизображения, опорный отсчет считается недоступным.
1) В одном примере позиция N находится за пределами требуемого подизображения, если x > xBR.
2) В одном примере позиция N находится за пределами требуемого подизображения, если y > yBR.
3) В одном примере позиция N находится за пределами требуемого подизображения, если x < xTL.
4) В одном примере позиция N находится за пределами требуемого подизображения, если y < yTL.
c) В одном примере позиция N ограничивается таким образом, чтобы она находилась в требуемом подизображении.
1) В одном примере x ограничивается как x = Min(x, xBR).
2) В одном примере y ограничивается как y = Min(y, yBR).
3) В одном примере x ограничивается как x = Max(x, xTL).
d) В одном примере у ограничивается как у = Max(y, yTL). В одном примере то, должна ли позиция N находиться в требуемом подизображении (например, чтобы сделать то, что заявлено в п.5.a) и/или п.5.b)), зависит от одного или нескольких синтаксических элементов, указанных в VPS/DPS/SPS/PPS/APS/заголовке слайса/заголовке группы тайлов. Например, синтаксический элемент может быть subpic_treated_as_pic_flag[ SubPicIdx ], где SubPicIdx является индексом подизображения для подизображения, перекрывающего текущий блок.
5. Таблица предсказания вектора движения на основе истории (HMVP) может быть сброшена перед декодированием нового подизображения в одном изображении.
a) В одном примере таблица HMVP, используемая для кодирования IBC, может быть сброшена.
b) В одном примере таблица HMVP, используемая для внутрикадрового кодирования, может быть сброшена.
c) В одном примере таблица HMVP, используемая для межкадрового кодирования, может быть сброшена.
6. Синтаксические элементы подизображения могут быть определены в единицах N (например, N = 8, 32 и т.д.) отсчетов.
a) В одном примере ширина каждого элемента сетки идентификаторов подизображений в единицах N отсчетов.
b) В одном примере высота каждого элемента сетки идентификаторов подизображений в единицах N отсчетов.
c) В одном примере N устанавливается равным ширине и/или высоте CTU.
7. Синтаксический элемент ширины изображения и высоты изображения может быть ограничен не меньше, чем K (K>=8).
a) В одном примере может потребоваться ограничить ширину изображения, чтобы она была не меньше 8.
b) В одном примере может потребоваться ограничить высоту изображения, чтобы она была не меньше 8.
8. Битовый поток соответствия должен удовлетворять тому, что кодирование подизображений и адаптивное преобразование разрешения (ARC)/динамическое преобразование разрешения (DRC)/передискретизация опорного изображения (RPR) не могут быть разрешены для одного видеоблока (например, последовательности).
a) В одном примере сигнализация разрешения кодирования подизображения может осуществляться в условиях запрещения ARC/DRC/RPR.
1) В одном примере, когда подизображение разрешено, например, флаг subpics_present_flag равен 1, pic_width_in_luma_samples для всех изображений, для которых активен этот SPS, равно max_width_in_luma_samples.
b) В качестве альтернативы, кодирование подизображения и ARC/DRC/RPR могут быть разрешены для одного видеоблока (например, последовательности).
1) В одном примере битовый поток соответствия должен удовлетворять тому, чтобы субдискретизированное подизображение вследствие ARC/DRC/RPR по-прежнему имело форму K CTU по ширине и M CTU по высоте, где K и M являются целыми числами.
2) В одном примере битовый поток соответствия должен удовлетворять тому, чтобы для подизображений, не расположенных на границах изображений (например, на правой границе и/или нижней границе), субдискретизированное подизображение вследствие ARC/DRC/RPR по-прежнему должно иметь форму K CTU по ширине и M CTU по высоте, где K и M являются целыми числами.
3) В одном примере размеры CTU могут адаптивно изменяться на основе разрешения изображения.
1) В одном примере максимальный размер CTU может быть указан в SPS. Для каждого изображения с меньшим разрешением размер CTU может быть, соответственно, изменен на основе уменьшенного разрешения.
2) В одном примере размер CTU может сигнализироваться на уровне SPS и PPS и/или на уровне подизображения.
9. Синтаксический элемент subpic_grid_col_width_minus1 и subpic_grid_row_height_minus1 могут быть ограничены.
a) В одном примере subpic_grid_col_width_minus1 не должен быть больше (или должен быть меньше), чем T1.
b) В одном примере subpic_grid_row_height_minus1 не должен быть больше (или должен быть меньше), чем T2.
c) В одном примере в битовом потоке соответствия subpic_grid_col_width_minus1 и/или subpic_grid_row_height_minus1 должны следовать ограничению, такому как маркеры п.3.a) или 3.b.
d) В одном примере T1 в п.3.a) и/или T2 в п.3.b) могут зависеть от профилей/уровней/рангов стандарта кодирования видео.
e) В одном примере T1 в п.3.a) может зависеть от ширины изображения.
1) Например, T1 равно pic_width_max_in_luma_samples/4 или pic_width_max_in_luma_samples/4+Off. Off может быть равно 1, 2, -1, -2 и т.д.
f) В одном примере T2 в п.3.b) может зависеть от ширины изображения.
1) Например, T2 равно pic_height_max_in_luma_samples/4 или pic_height_max_in_luma_samples/4-1+Off. Off может быть равно 1, 2, -1, -2 и т.д.
10. Ограничение состоит в том, что граница между двумя подизображениями должна быть границей между двумя CTU.
a) Другими словами, CTU не может перекрываться более чем одним подизображением.
b) В одном примере единицей измерения subpic_grid_col_width_minus1 может быть ширина CTU (например, 32, 64, 128) вместо 4, как в VVC. Ширина сетки подизображений должна быть равна (subpic_grid_col_width_minus1+1) * ширина CTU.
c) В одном примере единицей измерения subpic_grid_col_height_minus1 может быть высота CTU (например, 32, 64, 128) вместо 4, как в VVC. Высота сетки подизображений должна быть равна (subpic_grid_col_height_minus1+1) * высота CTU.
d) В одном примере, в битовом потоке соответствия, ограничение должно соблюдаться в том случае, если применяется подход подизображения.
11. Ограничение состоит в том, что форма подизображения должна быть прямоугольной.
a) В одном примере, в битовом потоке соответствия, ограничение должно соблюдаться в том случае, если применяется подход подизображения.
b) Подизображение может содержать только прямоугольные слайсы. Например, в битовом потоке соответствия ограничение должно соблюдаться в том случае, если применяется подход подизображения.
12. Ограничение состоит в том, что два подизображения не могут перекрываться.
a) В одном примере, в битовом потоке соответствия, ограничение должно соблюдаться в том случае, если применяется подход подизображения.
b) В качестве альтернативы, два подизображения могут накладываться друг на друга.
13. Ограничение состоит в том, что любая позиция на изображении должна перекрываться одним и только одним подизображением.
a) В одном примере, в битовом потоке соответствия, ограничение должно соблюдаться в том случае, если применяется подход подизображения.
b) В качестве альтернативы, один отсчет может не принадлежать ни одному подизображению.
c) В качестве альтернативы, один отсчет может принадлежать более чем одному подизображению.
14. Может быть установлено ограничение, согласно которому подизображения, определенные в SPS, сопоставленные с каждым разрешением, представленным в одной и той же последовательности, должны подчиняться ограничениям по местоположению и/или размеру, упомянутым выше.
a) В одном примере ширина и высота подизображения, определенного в SPS, сопоставленного с разрешением, представленным в одной и той же последовательности, должны быть целочисленным множителем N (например, 8, 16, 32) отсчетов яркости.
b) В одном примере подизображения могут быть определены для определенного слоя и могут быть сопоставлены с другими слоями.
1) Например, подизображения могут быть определены для слоя с самым высоким разрешением в последовательности.
2) Например, подизображения могут быть определены для слоя с самым низким разрешением в последовательности.
3) То, для какого слоя определены подизображения, может быть указано в SPS/VPS/PPS/заголовке слайса.
c) В одном примере, когда применяются подизображения и разные разрешения, все разрешения (например, ширина и/или высота) могут быть целыми числами, кратными заданному разрешению.
d) В одном примере ширина и/или высота подизображения, определенного в SPS, может быть целочисленным множителем (например, M) размера CTU.
e) В качестве альтернативы, подизображения и различные разрешения в последовательности могут быть не разрешены одновременно.
15. Подизображения могут применяться только к определенному слою (слоям)
a) В одном примере подизображения, определенные в SPS, могут применяться только к слою с самым высоким разрешением в последовательности.
b) В одном примере подизображения, определенные в SPS, могут применяться только к уровню с наименьшим временным идентификатором в последовательности.
c) К какому уровню (уровням) могут быть применены подизображения, может быть указано одним или несколькими синтаксическими элементами в SPS/VPS/PPS.
d) К какому уровню (уровням) нельзя применить это подизображение, может быть указано одним или несколькими синтаксическими элементами в SPS/VPS/PPS.
16. В одном примере позиция и/или размеры подизображения могут сигнализироваться без использования subpic_grid_idx.
a) В одном примере может сигнализироваться верхняя левая позиция подизображения.
b) В одном примере может сигнализироваться нижняя правая позиция подизображения.
c) В одном примере может сигнализироваться ширина подизображения.
d) В одном примере может сигнализироваться высота подизображения.
17. Для временного фильтра, при выполнении временной фильтрации отсчета, могут использоваться только отсчеты в пределах одного и того же подизображения, к которому принадлежит текущий отсчет. Требуемые отсчеты могут находиться в одном и том же изображении, к которому принадлежит текущий отсчет, или в других изображениях.
18. В одном примере то, следует ли применять и/или как применять способ разделения (такой как QT, горизонтальный BT, вертикальный BT, горизонтальный TT, вертикальный TT или без разделения и т.д.), может зависеть от того, пересекает ли текущий блок (или раздел) одну или несколько границ подизображения.
a) В одном примере способ обработки границ изображения для разделения в VVC также может применяться в случае, когда граница изображения заменяется границей подизображения.
b) В одном примере то, следует ли анализировать синтаксический элемент (например, флаг), который представляет способ разделения (такой как QT, горизонтальный BT, вертикальный BT, горизонтальный TT, вертикальный TT или без разделения и т.д.), может зависеть от того, пересекает ли текущий блок (или раздел) одну или несколько границ подизображения.
19. Вместо разделения одного изображения на несколько подизображений с независимым кодированием каждого подизображения, предлагается разделять изображение по меньшей мере на два набора подобластей, причем первый набор включает в себя несколько подизображений, и второй набор включает в себя все остальные отсчеты.
a) В одном примере отсчет во втором наборе не находится в каких-либо подизображениях.
b) Альтернативно или дополнительно, второй набор может быть кодирован/декодирован на основе информации первого набора.
c) В одном примере значение по умолчанию может использоваться для обозначения того, принадлежит ли подобласть отсчета/MxK второму набору.
1) В одном примере значение по умолчанию может быть установлено равным (max_subpics_minus1 + K), где K является целым числом, большим 1.
2) Значение по умолчанию может быть присвоено subpic_grid_idx[i][j], чтобы указать, что сетка принадлежит второму набору.
20. Предполагается, что синтаксический элемент subpic_grid_idx[i][j] не может быть больше, чем max_subpics_minus1.
a) Например, ограничивается то, что в битовом потоке соответствия subpic_grid_idx[i][j] не может быть больше, чем max_subpics_minus1.
b) Например, кодовое слово для кода subpic_grid_idx[i][j] не может быть больше, чем max_subpics_minus1.
21. Предполагается, что любое целое число от 0 до max_subpics_minus1 должно быть равно хотя бы одному subpic_grid_idx[i][j].
22. Виртуальный буфер IBC может быть сброшен перед декодированием нового подизображения в одном изображении.
a) В одном примере все отсчеты в виртуальном буфере IBC могут быть сброшены до -1.
23. Список элементов палитры может быть сброшен перед декодированием нового подизображения в одном изображении.
a) В одном примере PredictorPaletteSize может быть установлен равным 0 перед декодированием нового подизображения в одном изображении.
5. Варианты осуществления
В следующих вариантах осуществления вновь добавленные тексты выделены полужирным курсивом, и удаленные тексты отмечены «[[ ]]».
5.1 Вариант 1 осуществления: ограничение подизображения для аффинно построенных кандидатов слияния
8.5.5.6 Процесс получения для построенных аффинных кандидатов слияния векторов движения контрольных точек
Входными данными для этого процесса являются:
– местоположение (xCb, yCb) яркости, указывающее верхний левый отсчет текущего блока кодирования яркости временного слияния яркости временного слияния,
– две переменные cbWidth и cbHeight, указывающие ширину и высоту текущего блока кодирования яркости,
– флаги availableA0, availableA1, availableA2, availableB0, availableB1, availableB2, availableB3 доступности,
– местоположения (xNbA0, yNbA0), (xNbA1, yNbA1), (xNbA2, yNbA2), (xNbB0, yNbB0), (xNbB1, yNbB1), (xNbB2, yNbB2) и (xNbB3, yNbB3) отсчетов.
Результатом этого процесса являются:
– флаг доступности построенного аффинного вектора движения контрольной точки, объединяющего кандидаты availableFlagConstK, где K = 1..6,
– опорные индексы refIdxLXConstK, где K = 1..6, X равен 0 или 1,
– флаги predFlagLXConstK использования списка предсказаний, где K = 1..6, X равен 0 или 1,
– индексы motionModelIdcConstK модели аффинного движения, где K = 1..6,
– весовые индексы bcwIdxConstK двойного предсказания, где K = 1..6,
– построенные векторы движения аффинной контрольной точки cpMvLXConstK[ cpIdx ], где cpIdx = 0..2, K = 1..6 и X равен 0 или 1.
…
Четвертый (нижний правый) вектор движения контрольной точки cpMvLXCorner[ 3 ], опорный индекс refIdxLXCorner[ 3 ], флаг predFlagLXCorner[ 3 ] использования списка предсказаний и флаг availableFlagCorner[ 3 ] доступности, где X равен 0 и 1, получаются следующим образом:
– Опорные индексы для кандидата временного слияния, refIdxLXCorner[ 3 ], где X равен 0 или 1, устанавливаются равными 0.
– Переменные mvLXCol и availableFlagLXCol, где X равен 0 или 1, получаются следующим образом:
– Если slice_temporal_mvp_enabled_flag равно 0, оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
– В противном случае (slice_temporal_mvp_enabled_flag равно 1) применяется следующее:
xColBr = xCb + cbWidth … (8-601)
yColBr = yCb + cbHeight (8-602)
– Переменная colCb указывает блок кодирования яркости, перекрывающий измененное местоположение, заданное ((xColBr >> 3) << 3, (yColBr >> 3) << 3) внутри совмещенного изображения, указанного ColPic.
– Местоположение (xColCb, yColCb) яркости устанавливается равным верхнему левому отсчету совмещенного блока кодирования яркости, указанной colCb, относительно верхнему левому отсчету яркости совмещенного изображения, указанного ColPic.
– Процесс получения совмещенных векторов движения, как указано в пункте 8.5.2.12, вызывается с помощью currCb, colCb, (xColCb, yColCb), refIdxLXCorner[ 3 ] и sbFlag, установленными равными 0, в качестве входных данных, и выходные данные назначаются mvLXCol и availableFlagLXCol.
– В противном случае оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
…
5.2 Вариант 2: ограничение подизображений для аффинно построенных кандидатов слияния
8.5.5.6 Процесс получения для построенных аффинных кандидатов слияния векторов движения контрольных точек
Входными данными для этого процесса являются:
– местоположение (xCb, yCb) яркости, указывающее верхний левый отсчет текущего блока кодирования яркости временного слияния яркости временного слияния,
– две переменные cbWidth и cbHeight, указывающие ширину и высоту текущего блока кодирования яркости,
– флаги availableA0, availableA1, availableA2, availableB0, availableB1, availableB2, availableB3 доступности,
– местоположение (xNbA0, yNbA0), (xNbA1, yNbA1), (xNbA2, yNbA2), (xNbB0, yNbB0), (xNbB1, yNbB1), (xNbB2, yNbB2) и (xNbB3, yNbB3) отсчетов.
Результатом этого процесса являются:
– флаг доступности построенного аффинного вектора движения контрольной точки, объединяющего кандидаты availableFlagConstK, где K = 1..6,
– опорные индексы refIdxLXConstK, где K = 1..6, X равен 0 или 1,
– флаги predFlagLXConstK использования списка предсказаний, где K = 1..6, X равен 0 или 1,
– индексы motionModelIdcConstK модели аффинного движения, где K = 1..6,
– весовые индексы bcwIdxConstK двойного предсказания, где K = 1..6,
– построенные векторы движения аффинной контрольной точки cpMvLXConstK[ cpIdx ] с cpIdx = 0..2, K = 1..6 и X равным 0 или 1.
…
Четвертый (нижний правый) вектор движения контрольной точки cpMvLXCorner[ 3 ], опорный индекс refIdxLXCorner[ 3 ], флаг predFlagLXCorner[ 3 ] использования списка предсказаний и флаг availableFlagCorner[ 3 ] доступности, где X равен 0 и 1, получаются следующим образом:
– Опорные индексы для кандидата временного слияния, refIdxLXCorner[ 3 ], где X равен 0 или 1, устанавливаются равными 0.
– Переменные mvLXCol и availableFlagLXCol, где X равен 0 или 1, получаются следующим образом:
– Если slice_temporal_mvp_enabled_flag равно 0, оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
– В противном случае (slice_temporal_mvp_enabled_flag равно 1) применяется следующее:
xColBr = xCb + cbWidth … (8-601)
yColBr = yCb + cbHeight …(8-602)
– Если yCb >> CtbLog2SizeY равно yColBr >> CtbLog2SizeY, [[yColBr меньше, чем pic_height_in_luma_samples, и xColBr меньше, чем pic_width_in_luma_samples, применяется следующее]]:
– Переменная colCb указывает блок кодирования яркости, перекрывающий измененное местоположение, заданное ((xColBr >> 3) << 3, (yColBr >> 3) << 3) внутри совмещенного изображения, указанного ColPic.
– Местоположение (xColCb, yColCb) яркости устанавливается равным верхнему левому отсчету совмещенного блока кодирования яркости, указанной colCb, относительно верхнего левого отсчета яркости совмещенного изображения, указанного ColPic.
– Процесс получения для совмещенных векторов движения, как указано в пункте 8.5.2.12, вызывается с помощью currCb, colCb, (xColCb, yColCb), refIdxLXCorner[ 3 ] и sbFlag, установленными равными 0, в качестве входных данных, и выходные данные назначаются mvLXCol и availableFlagLXCol.
– В противном случае оба компонента mvLXCol устанавливаются равными 0, и availableFlagLXCol устанавливается равным 0.
…
5.3 Вариант 3 осуществления: извлечение целочисленных отсчетов при ограничении подизображений
8.5.6.3.3 Процесс извлечения целочисленного отсчета яркости
Входными данными для этого процесса являются:
– местоположение яркости в единицах полного отсчета (xIntL, yIntL),
– массив refPicLXL опорных отсчетов яркости,
Результатом этого процесса является предсказанное значение отсчета яркости predSampleLXL.
Переменная shift устанавливается равной Max(2, 14 − BitDepthY).
Переменная picW устанавливается равной pic_width_in_luma_samples, и переменная picH устанавливается равной pic_height_in_luma_samples.
Позиции яркости в единицах полного отсчета (xInt, yInt) получаются следующим образом:
xInt = Clip3(0, picW − 1, sps_ref_wraparound_enabled_flag ? … (8-782)
ClipH((sps_ref_wraparound_offset_minus1 + 1) * MinCbSizeY, picW, xIntL) : xIntL)
yInt = Clip3(0, picH − 1, yIntL) … (8-783)
Предсказанное значение отсчета яркости predSampleLXL получается следующим образом:
predSampleLXL = refPicLXL[ xInt ][ yInt ] << shift3 … (8-784)
5.4 Вариант 4 осуществления: получение переменной invAvgLuma при масштабировании остатка цветности LMCS
8.7.5.3 Восстановление изображения с помощью процесса масштабирования остатка цветности в зависимости от яркости для отсчетов цветности
Входными данными для этого процесса являются:
– местоположение цветности (xCurr, yCurr) верхнего левого отсчета цветности текущего блока преобразования цветности временного слияния цветности временного слияния,
– переменная nCurrSw, указывающая ширину блока преобразования цветности,
– переменная nCurrSh, указывающая высоту блока преобразования цветности,
– переменную tuCbfChroma, указывающую флаг кодированного блока текущего блока преобразования цветности,
– массив (nCurrSw)x(nCurrSh) predSamples, указывающий отсчеты предсказания цветности текущего блока,
– массив (nCurrSw)x(nCurrSh) resSamples, указывающий остаточные отсчеты цветности текущего блока,
Результатом этого процесса является восстановленный массив отсчетов изображения цветности recSamples.
Переменная sizeY устанавливается равной Min(CtbSizeY, 64).
Восстановленный отсчет изображения цветности recSamples получается следующим образом для i = 0..nCurrSw − 1, j = 0..nCurrSh − 1:
– …
– В противном случае применяется следующее:
– …
– Переменная currPic указывает массив восстановленных отсчетов яркости в текущем изображении.
– Для получения переменной varScale применяются следующие упорядоченные шаги:
1. Переменная invAvgLuma получается следующим образом:
– Массив recLuma[ i ] с i=0.. (2 * sizeY − 1) и переменная cnt получаются следующим образом:
– Переменная cnt устанавливается равной 0.
– Когда availL равно значению «истина», массив recLuma[ i ] с i = 0..sizeY − 1 устанавливается равным currPic[ xCuCb − 1 ][ Min(yCuCb + i, [[pic_height_in_luma_samples – 1]] ] с i = 0..sizeY − 1, и cnt устанавливается равным sizeY
– Когда availT равно значению «истина», массив recLuma[ cnt + i ] с i = 0..sizeY – 1 устанавливается равным currPic[ Min(xCuCb + i, [[pic_width_in_luma_samples − 1]] ][ yCuCb − 1 ] с i = 0..sizeY − 1, и cnt устанавливается равным (cnt + sizeY)
– Переменная invAvgLuma получается следующим образом:
– Если cnt больше 0, применяется следующее:
invAvgLuma = Clip1Y((+ (cnt >> 1)) >> Log2(cnt)) … (8-1013)
– В противном случае (cnt равно 0) применяется следующее:
invAvgLuma = 1 << (BitDepthY – 1) … (8-1014)
5.5 Вариант 5 осуществления: пример определения элемента подизображения в единицах измерения N (например, N=8 или 32), отличных от 4 отсчетов
7.4.3.3 Семантика RBSP набора параметров последовательности
subpic_grid_col_width_minus1 плюс 1 указывает ширину каждого элемента сетки идентификаторов подизображений в единицах из отсчетов. Длина синтаксического элемента составляет Ceil(Log2(pic_width_max_in_luma_samples / ))) битов.
Переменная NumSubPicGridCols получается следующим образом:
NumSubPicGridCols = (pic_width_max_in_luma_samples + subpic_grid_col_width_minus1 *[[4+ 3]] /
(subpic_grid_col_width_minus1 * [[4+ 3]] … (7-5) плюс 1 указывает высоту каждого элемента сетки идентификаторов подизображений в единицах из 4 отсчетов. Длина синтаксического элемента составляет Ceil(Log2(pic_height_max_in_luma_samples / )) битов.
Переменная NumSubPicGridRows получается следующим образом:
NumSubPicGridRows = (pic_height_max_in_luma_samples + subpic_grid_row_height_minus1 * /
(subpic_grid_row_height_minus1 *[[4+ 3]
7.4.7.1 Общая семантика заголовка слайса
Переменные SubPicIdx, SubPicLeftBoundaryPos, SubPicTopBoundaryPos, SubPicRightBoundaryPos и SubPicBotBoundaryPos получаются следующим образом:
SubPicIdx = CtbToSubPicIdx[ CtbAddrBsToRs[ FirstCtbAddrBs[ SliceBrickIdx[ 0 ] ] ] ]
if(subpic_treated_as_pic_flag[ SubPicIdx ]) {
SubPicLeftBoundaryPos = SubPicLeft[ SubPicIdx ] *(subpic_grid_col_width_minus1 + 1) *
SubPicRightBoundaryPos = (SubPicLeft[ SubPicIdx ] + SubPicWidth[ SubPicIdx ]) *
(subpic_grid_col_width_minus1 + 1) * … (7-93)
SubPicTopBoundaryPos = SubPicTop[ SubPicIdx ] * (subpic_grid_row_height_minus1 + 1)*
SubPicBotBoundaryPos = (SubPicTop[ SubPicIdx ] + SubPicHeight[ SubPicIdx ]) *
(subpic_grid_row_height_minus1 + 1) *
}
5.6 Вариант 6 осуществления: ограничить ширину изображения и высоту изображения равными или большими, чем 8
7.4.3.3 Семантика RBSP набора параметров последовательности
указывает максимальную ширину в единицах отсчетов яркости каждого декодированного изображения, относящегося к SPS. pic_width_max_in_luma_samples не должно быть равным 0 и должно быть целым числом, кратным [[MinCbSizeY]] .
pic_height_max_in_luma_samples указывает максимальную высоту в единицах отсчетов яркости каждого декодированного изображения, относящегося к SPS. pic_height_max_in_luma_samples не должно быть равным 0 и должно быть целым числом, кратным [[MinCbSizeY]] .
5.7 Вариант 7 осуществления: проверка границы подизображения для разделения BT/TT/QT, определения глубины BT/TT/QT и/или сигнализации флага разделения CU
6.4.2 Разрешенный процесс бинарного разделения
Переменная allowBtSplit получается следующим образом:
– …
– В противном случае, если все следующие условия истинны, для параметра allowBtSplit устанавливается значение «ложь».
– btSplit равно SPLIT_BT_VER
– В противном случае, если все следующие условия истинны, для параметра allowBtSplit устанавливается значение «ложь».
– btSplit равно SPLIT_BT_VER
– cbHeight больше, чем MaxTbSizeY
– В противном случае, если все следующие условия истинны, для параметра allowBtSplit устанавливается значение «ложь».
– btSplit равно SPLIT_BT_HOR
– cbWidth больше, чем MaxTbSizeY
– В противном случае, если все следующие условия истинны, для параметра allowBtSplit устанавливается значение «ложь».
– cbWidth больше, чем minQtSize
– В противном случае, если все следующие условия истинны, для параметра allowBtSplit устанавливается значение «ложь».
– btSplit равно SPLIT_BT_HOR
6.4.2 Разрешенный процесс троичного разделения
Переменная allowTtSplit получается следующим образом:
– Если одно или несколько из следующих условий истинны, для параметра allowTtSplit устанавливается значение «ложь»:
– cbSize меньше или равно 2 * MinTtSizeY
– cbWidth больше Min(MaxTbSizeY, maxTtSize)
– cbHeight больше Min(MaxTbSizeY, maxTtSize)
– mttDepth больше или равно maxMttDepth
– treeType равно DUAL_TREE_CHROMA и (cbWidth / SubWidthC) * (cbHeight / SubHeightC) меньше или равно 32
– treeType равно DUAL_TREE_CHROMA, и modeType равно MODE_TYPE_INTRA
– В противном случае для параметра allowTtSplit устанавливается значение «истина».
7.3.8.2 Синтаксис единицы дерева кодирования
7.3.8.4 Синтаксис дерева кодирования
На фиг. 3 показана блок-схема устройства 300 обработки видео. Устройство 300 может использоваться для реализации одного или нескольких способов, описанных в данном документе. Устройство 300 может быть воплощено в смартфоне, планшете, компьютере, приемнике Интернета вещей (IoT) и т.д. Устройство 300 может включать в себя один или несколько процессоров 302, одно или несколько устройств 304 памяти и аппаратные средства 306 обработки видео. Процессор(ы) 302 может/могут быть выполнен(ы) с возможностью реализации одного или нескольких способов, описанных в данном документе. Устройство(a) 304 памяти может/могут использоваться для хранения данных и кода, используемых для реализации способов и технологий, описанных в данном документе. Аппаратные средства 306 обработки видео могут использоваться для реализации в аппаратных схемах некоторых способов, описанных в данном документе.
На фиг. 4 показана блок-схема последовательности операций способа 400 обработки видео. Способ 1800 включает в себя определение (402), для видеоблока в первой видеообласти видео, того, находится ли позиция, в которой определен временной предиктор вектора движения для преобразования между видеоблоком и представлением битового потока текущего видеоблока с использованием аффинного режима, во второй видеообласти, и выполнение (404) преобразования на основе определения.
Следующие решения могут быть реализованы в качестве предпочтительных решений в некоторых вариантах осуществления.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 1).
1. Способ обработки видео, содержащий: определение, для видеоблока в первой видеообласти видео, того, находится ли позиция, в которой определен временной предиктор вектора движения для преобразования между видеоблоком и представлением битового потока текущего видеоблока с использованием аффинного режима, в пределах второй видеообласти; и выполнение преобразования на основе определения.
2. Способ по решению 1, в котором видеоблок перекрывается первой областью и второй областью.
3. Способ по любому из решений 1-2, в котором в случае, если позиция предиктора временного вектора движения находится за пределами второй видеообласти, то временной предиктор вектора движения помечается как недоступный и не используется при преобразовании.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 2).
4. Способ обработки видео, содержащий: определение, для видеоблока в первой видеообласти видео, относительно того, находится ли позиция, в которой целочисленный отсчет в опорном изображении извлекается для преобразования между видеоблоком и представлением битового потока текущего видеоблока, в пределах второй видеообласти, в которой опорное изображение не используется в процессе интерполяции во время преобразования; и выполнение преобразования на основе определения.
5. Способ по решению 4, в котором видеоблок перекрывается первой областью и второй областью.
6. Способ по любому из решений 4-5, в котором в случае, если позиция отсчета находится за пределами второй видеообласти, отсчет помечается как недоступный и не используется при преобразовании.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 3).
7. Способ обработки видео, содержащий: определение, для видеоблока в первой видеообласти видео, того находится ли позиция, в которой восстановленное значение отсчета яркости извлекается для преобразования между видеоблоком и представлением битового потока текущего видеоблока, во второй видеообласти; и выполнение преобразования на основе определения.
8. Способ по решению 7, в котором отсчет яркости перекрывается первой областью и второй областью.
9. Способ по любому из решений 7-8, в котором в случае, если позиция отсчета яркости находится за пределами второй видеообласти, отсчет яркости помечается как недоступный и не используется при преобразовании.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 4).
10. Способ обработки видео, содержащий: определение, для видеоблока в первой видеообласти видео, того, находятся ли позиция, в которой выполняется проверка в отношении разделения, получения глубины или сигнализации флага разделения для видеоблока во время преобразования между видеоблоком и представлением битового потока текущего видеоблока, во второй видеообласти; и выполнение преобразования на основе определения.
11. Способ по решению 10, в котором позиция перекрывается первой областью и второй областью.
12. Способ по любому из решений 10-11, в котором в случае, если позиция находится за пределами второй видеообласти, отсчет яркости помечается как недоступный и не используется при преобразовании.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 8).
13. Способ обработки видео, содержащий: выполнение преобразования между видео, содержащим одно или несколько видеоизображений, содержащих один или несколько видеоблоков, и кодированным представлением видео, где кодированное представление соответствует требованию синтаксиса кодирования относительно того, чтобы преобразование не использовало кодирование/декодирование подизображений и средство кодирования/декодирования с динамическим преобразованием разрешения или средство передискретизации опорного изображения в видеоблоке.
14. Способ по решению 13, в котором видеоблок соответствует последовательности из одного или более видеоизображений.
15. Способ по любому из решений 13-14, в котором средство кодирования/декодирования с динамическим преобразованием разрешения содержит средство кодирования/декодирования с адаптивным преобразованием разрешения.
16. Способ по любому из решений 13-14, в котором средство кодирования/декодирования с динамическим преобразованием разрешения содержит средство кодирования/декодирования с динамическим преобразованием разрешения.
17. Способ по любому из решений 13-16, в котором кодированное представление указывает то, что видеоустройство соответствует требованию синтаксиса кодирования.
18. Способ по решению 17, в котором кодированное представление указывает то, что видеоблок использует кодирование подизображений.
19. Способ по решению 17, в котором кодированное представление указывает то, что видеоблок использует средство кодирования/декодирования с динамическим преобразованием разрешения или средство передискретизации опорного изображения.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 10).
20. Способ по любому из решений 1-19, в котором вторая видеообласть содержит подизображение видео, и в котором границы второй видеообласти и другой видеообласти также являются границей между двумя единицами дерева кодирования.
21. Способ по любому из решений 1-19, в котором вторая видеообласть содержит подизображение видео, и в котором границы второй видеообласти и другой видеообласти также являются границей между двумя единицами дерева кодирования.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 11).
22. Способ по любому из решений 1-21, в котором первая видеообласть и вторая видеообласть имеют прямоугольную форму.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 12).
23. Способ по любому из решений 1-22, в котором первая видеообласть и вторая видеообласть не перекрываются.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 13).
24. Способ по любому из решений 1-23, в котором видеоизображение делится на видеообласти таким образом, что пиксель на видеоизображении перекрывается одной и только одной видеообластью.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 15).
25. Способ по любому из решений 1-24, в котором видеоизображение разделяется на первую видеообласть и вторую видеообласть из-за того, что видеоизображение находится в специфическом слое видеопоследовательности.
Следующие решения могут быть реализованы вместе с дополнительными способами, описанными в пунктах, перечисленных в предыдущем разделе (например, пункт 10).
26. Способ обработки видео, содержащий: выполнение преобразования между видео, содержащим одно или несколько видеоизображений, содержащих один или несколько видеоблоков, и кодированным представлением видео, где кодированное представление соответствует требованию синтаксиса кодирования относительно того, что первый синтаксический элемент subpic_grid_idx[i][j] не больше второго синтаксического элемента max_subpics_minus1.
27. Способ по решению 26, в котором кодовое слово, представляющее первый синтаксический элемент, не больше, чем кодовое слово, представляющее второй синтаксический элемент.
28. Способ по любому из решений 1-27, в котором первая видеообласть содержит подизображение видео.
29. Способ по любому из решений 1-28, в котором вторая видеообласть содержит подизображение видео.
30. Способ по любому из решений 1-29, в котором преобразование содержит кодирование видео в кодированное представление.
31. Способ по любому из решений 1-29, в котором преобразование содержит декодирование кодированного представления для выработки значений пикселей видео.
32. Устройство для декодирования видео, содержащее процессор, выполненный с возможностью реализации способа по одному или нескольким решениям 1-31.
33. Устройство для кодирования видео, содержащее процессор, выполненный с возможностью реализации способа по одному или нескольким решениям 1-31.
34. Компьютерный программный продукт, имеющий хранящийся в нем компьютерный код, причем код при его исполнении процессором предписывает процессору реализовать способ по любому из решений 1-31.
35. Способ, устройство или система, описанные в данном документе.
На фиг. 5 показан еще один пример блок-схемы системы 500 обработки видео, в которой могут быть реализованы раскрытые технологии. Различные реализации могут включать в себя некоторые или все компоненты системы 500. Система 500 может включать в себя вход 502 для приема видеосодержания. Видеосодержание может приниматься в необработанном или несжатом формате, например, с 8- или 10-разрядными значениями многокомпонентных пикселей, или может быть в сжатом или кодированном формате. Вход 502 может представлять собой сетевой интерфейс, интерфейс периферийной шины или интерфейс запоминающего устройства. Примеры сетевого интерфейса включают в себя проводные интерфейсы, такие как Ethernet, пассивная оптическая сеть (PON) и т.д., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.
Система 500 может включать в себя компонент 504 кодирования, который может реализовывать различные способы кодирования или шифрования, описанные в настоящем документе. Компонент 504 кодирования позволяет уменьшить среднюю скорость передачи битов видео от входа 502 до выхода компонента 504 кодирования, чтобы создать кодированное представление видео. Поэтому технологии кодирования иногда называют технологиями сжатия видео или транскодирования видео. Выходной сигнал компонента 504 кодирования может быть либо сохранен, либо передан через подключенную связь, как представлено компонентом 506. Сохраненное или переданное битовое (или кодированное) представление видео, полученного на входе 502, может использоваться компонентом 508 для выработки пиксельных значений или отображаемого видео, которое отправляется в интерфейс 510 дисплея. Процесс выработки доступного для просмотра пользователем видео из представления битового потока иногда называется распаковкой видео. Кроме того, хотя определенные операции обработки видео упоминаются как операции или средства "кодирования", следует понимать, что средства или операции кодирования используются в кодере, и соответствующие средства или операции декодирования, которые выполняют процесс, обратный кодированию, над результатами кодирования, будут выполняться декодером.
Примеры интерфейса периферийной шины или интерфейса дисплея могут включать в себя универсальную последовательную шину (USB) или мультимедийный интерфейс высокой четкости (HDMI) или Displayport и т.д. Примеры интерфейсов хранения включают в себя SATA (последовательное подключение передовых технологий), PCI, интерфейс IDE и т.п. Способы, описанные в настоящем документе, могут быть реализованы в различных электронных устройствах, таких как мобильные телефоны, ноутбуки, смартфоны или другие устройства, способные выполнять цифровую обработку данных и/или отображение видео.
На фиг. 6 показана блок-схема последовательности операций способа 600 обработки видео в соответствии с настоящей технологией. Способ 600 включает в себя на этапе 610 определение, для преобразования между текущим блоком первого изображения видео и представлением битового потока видео, кандидата движения на основе информации движения из второго изображения в соответствии с правилом. Правило указывает то, что позиция, из которой осуществляется доступ к информации движения, ограничена тем, что находится в пределах специфического подизображения второго изображения. Способ 600 также включает в себя на этапе 620 выполнение преобразования на основе определения.
В некоторых вариантах осуществления информация движения содержит вектор движения, и кандидат движения содержит кандидат аффинного движения. В некоторых вариантах осуществления правило указывает то, что позиция используется в качестве замены первой позиции в случае, если первая позиция находится за пределами специфического подизображения. В некоторых вариантах осуществления позиция находится в правом нижнем углу блока видеоизображения, который соответствует текущему блоку.
На фиг. 7 показана блок-схема последовательности операций способа 700 обработки видео в соответствии с настоящей технологией. На этапе 710 способ 700 включает в себя определение для преобразования текущего блока первого изображения видео и представления битового потока видео целочисленного отсчета из второго изображения в соответствии с правилом. Второе изображение содержит опорное изображение, которое не используется в процессе интерполяции. Правило указывает то, что позиция, из которой осуществляется доступ к целочисленному отсчету, должна находиться в пределах специфического подизображения второго изображения. На этапе 720 способ 700 также включает в себя выполнение преобразования на основе определения. В некоторых вариантах осуществления целочисленный отсчет используется для создания одного или нескольких градиентов в процессе двунаправленного оптического потока или процесса оптического потока с уточнением предсказания.
На фиг. 8 показана блок-схема последовательности операций способа 800 обработки видео в соответствии с настоящей технологией. На этапе 810 способ 800 включает в себя определение для преобразования текущего блока видео и представления битового потока видео позиции, в которой осуществляется доступ к восстановленному отсчету яркости в соответствии с правилом. Правило указывает то, что позиция ограничена специфическим подизображением видеоизображения. На этапе 820 способ 800 также включает в себя выполнение преобразования на основе определения. В некоторых вариантах осуществления восстановленный отсчет яркости используется для получения коэффициента масштабирования для компонента цветности в процессе масштабирования цветности с сопоставлением яркости.
На фиг. 9 показана блок-схема последовательности операций способа 900 обработки видео в соответствии с настоящей технологией. На этапе 910 способ 900 включает в себя определение для преобразования текущего блока видео и представления битового потока видео позиции, в которой выполняется проверка границ изображения в соответствии с правилом. Правило указывает то, что позиция ограничена специфическим подизображением видеоизображения. На этапе 920 способ 900 также включает в себя выполнение преобразования на основе определения.
В некоторых вариантах осуществления проверка границ изображения выполняется по меньшей мере для одного из: (1) разбиения бинарного дерева, третичного дерева или квадродерева, (2) получения глубины для бинарного дерева, третичного дерева или квадродерева, или (3) сигнализации флага разделения для текущего блока. В некоторых вариантах осуществления специфическое подизображение представляет собой совмещенное подизображение, которое перекрывает текущий блок.
В некоторых вариантах осуществления правило указывает то, что информация в позиции рассматривается как недоступная в случае, если позиция находится за пределами специфического подизображения. Позиция представлена как (x, y), верхний левый угол специфического подизображения представлен как (xTL, yTL), и нижний правый угол специфического подизображения представлен как (xBR, yBR). В некоторых вариантах осуществления позиция находится за пределами специфического подизображения в случае, если x > xBR, y > yBR, x < xTL, или y < yTL. В некоторых вариантах осуществления правило указывает то, что позиция ограничивается таким образом, чтобы она находилась в пределах специфического подизображения видеоизображения. Позиция представлена как (x, y), верхний левый угол специфического подизображения представлен как (xTL, yTL), и нижний правый угол специфического подизображения представлен как (xBR, yBR). В некоторых вариантах осуществления x ограничивается таким образом, чтобы иметь наименьшее значение x и xBR. В некоторых вариантах осуществления y ограничивается таким образом, чтобы иметь наименьшее значение y и yBR. В некоторых вариантах осуществления x ограничивается таким образом, чтобы иметь наибольшее значение x и xTL. В некоторых вариантах осуществления y ограничивается таким образом, чтобы иметь наибольшее значение y и yTL.
В некоторых вариантах осуществления применимость правила зависит от синтаксического элемента в представлении битового потока. В некоторых вариантах осуществления синтаксический элемент сигнализируется в наборе параметров видео, наборе параметров зависимости, наборе параметров слайса, наборе параметров изображения, наборе активных параметров, заголовке слайса или заголовке группы тайлов. В некоторых вариантах осуществления синтаксический элемент содержит subpic_treated_as_pic_flag[SubPicIdx], где SubPicIdx является индексом специфического подизображения, которое перекрывает текущий блок.
В некоторых вариантах осуществления преобразование вырабатывает текущий блок из представления битового потока. В некоторых вариантах осуществления преобразование вырабатывает представление битового потока из текущего блока.
На фиг. 10 показана блок-схема последовательности операций способа 1000 обработки видео в соответствии с настоящей технологией. На этапе 1010 способ 1000 включает в себя сброс после преобразования подизображений видеоизображения видео и представления битового потока видео таблицы кандидатов движения, полученной на основе последних преобразований. На этапе 1020 способ 1000 также включает в себя выполнение преобразования последующего подизображения видеоизображения и представления битового потока с использованием таблицы после сброса.
В некоторых вариантах осуществления таблица кандидатов движения содержит кандидаты движения для режима внутриблочного кодирования. В некоторых вариантах осуществления таблица кандидатов движения содержит кандидаты движения для режима межкадрового кодирования. В некоторых вариантах осуществления таблица кандидатов движения содержит кандидаты движения для режима внутрикадрового кодирования.
В некоторых вариантах осуществления преобразование вырабатывает подизображение или последующее подизображение из представления битового потока. В некоторых вариантах осуществления преобразование вырабатывает представление битового потока из подизображения или последующего подизображения.
На фиг. 11 показана блок-схема последовательности операций способа 1100 обработки видео в соответствии с настоящей технологией. На этапе 1110 способ 1100 включает в себя выполнение преобразования между видео, содержащим видеоизображение, которое включает в себя несколько подизображений и несколько видеоблоков, и кодированным представлением видео в соответствии с правилом. Правило указывает то, что граница между любыми двумя подизображениями также является границей между двумя видеоблоками. Видеоблок на видеоизображении перекрывается одним подизображением видеоизображения.
В некоторых вариантах осуществления любая позиция на видеоизображении перекрывается не более чем одним подизображением видеоизображения. В некоторых вариантах осуществления позиция на видеоизображении не перекрывается каким-либо подизображением видеоизображения. В некоторых вариантах осуществления два подизображения видеоизображения не имеют области перекрытия.
В некоторых вариантах осуществления размер подизображений видеоизображения определяется на основе размера видеоблока. В некоторых вариантах осуществления подизображение содержит несколько элементов. Синтаксический элемент, указывающий ширину элемента в подизображении, представлен как N отсчетов, и ширина подизображения определяется на основе N отсчетов. В некоторых вариантах осуществления ширина видеоблока содержит N отсчетов.
В некоторых вариантах осуществления подизображение содержит несколько элементов. Синтаксический элемент, указывающий высоту элемента в подизображении, представлен как N отсчетов, и высота подизображения определяется на основе N отсчетов. В некоторых вариантах осуществления высота видеоблока содержит N отсчетов.
В некоторых вариантах осуществления видеоблок представляет собой единицу дерева кодирования (CTB) или единицу дерева кодирования (CTU). В некоторых вариантах осуществления подизображение имеет прямоугольную форму. В некоторых вариантах осуществления подизображение содержит прямоугольные слайсы. В некоторых вариантах осуществления подизображение применимо только к одному или нескольким выбранным слоям видео. В некоторых вариантах осуществления подизображение определяется в наборе параметров последовательности в представлении битового потока, и подизображение применимо к слою с наивысшим разрешением в соответствующей последовательности. В некоторых вариантах осуществления подизображение определяется в наборе параметров последовательности в представлении битового потока, и подизображение применимо к слою с самым низким разрешением в соответствующей последовательности. В некоторых вариантах осуществления выбранный один или несколько слоев, к которым применимо подизображение, сигнализируются в одном или нескольких синтаксических элементов в представлении битового потока. В некоторых вариантах осуществления один или несколько слоев, к которым подизображение неприменимо, сигнализируются в одном или нескольких синтаксических элементов в представлении битового потока. В некоторых вариантах осуществления один или более синтаксических элементов сигнализируются в наборе параметров последовательности, наборе параметров видео или наборе параметров изображения в представлении битового потока.
На фиг. 12 показана блок-схема последовательности операций способа 1200 обработки видео в соответствии с настоящей технологией. На этапе 1210 способ 1200 включает в себя выполнение преобразования между видеоэлементом видео и кодированным представлением видео с использованием по меньшей мере видеоизображения, где только один режим из режима кодирования подизображения или режима кодирования с изменением разрешения включен для видеоблока. Режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на несколько подизображений, и режим кодирования с изменением разрешения представляет собой режим, в котором разрешение видеоизображения регулируется во время преобразования.
В некоторых вариантах осуществления видеоизображение содержит текущее изображение или опорное изображение. В некоторых вариантах осуществления режим кодирования с изменением разрешения содержит режим передискретизации опорного изображения (PRP). В некоторых вариантах осуществления режим кодирования с изменением разрешения содержит режим динамического преобразования разрешения (DRC). В некоторых вариантах осуществления режим кодирования с изменением разрешения содержит режим адаптивного преобразования разрешения (ARC).
В некоторых вариантах осуществления видеоблок содержит видеопоследовательность. В некоторых вариантах осуществления синтаксический элемент включен в кодированное представление, чтобы указать, что режим кодирования подизображения разрешен для единицы кодирования в случае, если режим кодирования с изменением разрешения запрещен. В некоторых вариантах осуществления режим кодирования с изменением разрешения запрещен, если синтаксический элемент включен в кодированное представление, чтобы указать, что режим кодирования подизображения разрешен. В некоторых вариантах осуществления синтаксический элемент содержит subpics_present_flag. В некоторых вариантах осуществления ширина видеоизображения устанавливается равной максимальной ширине, разрешенной для видеоизображений в видеоблоке, в случае, если синтаксический элемент указывает то, что режим кодирования подизображения разрешен.
На фиг. 13 показана блок-схема последовательности операций способа 1300 обработки видео в соответствии с настоящей технологией. На этапе 1310 способ 1300 включает в себя выполнение преобразования между видеоэлементом видео и кодированным представлением видео с использованием по меньшей мере видеоизображения, где разрешены как режим кодирования подизображения, так и режим кодирования с изменением разрешения для видеоблока. Режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на несколько подизображений, и режим кодирования с изменением разрешения представляет собой режим, в котором разрешение видеоизображения регулируется во время преобразования.
В некоторых вариантах осуществления видеоблок содержит видеопоследовательность. В некоторых вариантах осуществления режим кодирования с изменением разрешения содержит режим адаптивного преобразования разрешения (ARC), режим динамического преобразования разрешения (DRC), режим передискретизации опорного изображения (PRP).
В некоторых вариантах осуществления видеоизображение включает в себя несколько видеоблоков, каждый из которых имеет размер W×H. Подизображение, отрегулированное в соответствии с режимом кодирования с изменением разрешения, имеет ширину K×W и высоту M×H, где K и M являются целыми числами. В некоторых вариантах осуществления подизображение не местоположено на границе видеоизображения. В некоторых вариантах осуществления граница содержит правую границу или нижнюю границу.
В некоторых вариантах осуществления видеоизображение включает в себя несколько видеоблоков, и размер отдельных видеоблоков регулируется на основе разрешения видеоизображения. В некоторых вариантах осуществления кодированное представление содержит синтаксический элемент, указывающий максимальный размер видеоблока, и размер отдельного видеоблока регулируется на основе максимального размера и разрешения видеоизображения. В некоторых вариантах осуществления размер отдельных видеоблоков сигнализируется в наборе параметров последовательности, наборе параметров изображения или на уровне подизображения в кодированном представлении.
На фиг. 14 показана блок-схема последовательности операций способа 1400 обработки видео в соответствии с настоящей технологией. На этапе 1410 способ 1400 включает в себя выполнение преобразования между видео, содержащим одно или несколько видеоизображений, и кодированным представлением видео, где размер отдельного видеоизображения должен быть больше или равен 8. В некоторых вариантах осуществления размер представляет собой ширину отдельного видеоизображения. В некоторых вариантах осуществления размер представляет собой высоту отдельного видеоизображения.
На фиг. 15 показана блок-схема последовательности операций способа 1500 обработки видео в соответствии с настоящей технологией. На этапе 1510 способ 1500 включает в себя выполнение преобразования между видеоизображением видео и кодированным представлением видео в соответствии с правилом. Видеоизображение содержит по меньшей мере одно подизображение, и правило указывает то, что характеристика подизображения представлена по меньшей мере одним синтаксическим элементом в кодированном представлении, причем по меньшей мере один синтаксический элемент отличается от значения индекса сетки подизображений на видеоизображении.
В некоторых вариантах осуществления характеристика содержит верхнюю левую позицию подизображения. В некоторых вариантах осуществления характеристика содержит нижнюю правую позицию подизображения. В некоторых вариантах осуществления характеристика содержит ширину подизображения. В некоторых вариантах осуществления характеристика содержит высоту подизображения. В некоторых вариантах осуществления значение индекса подизображения на видеоизображении меньше, чем максимальное количество подизображений на видеоизображении. В некоторых вариантах осуществления целочисленное значение в диапазоне [0, максимальное количество подизображений-1] имеет однозначное соответствие со значениями индексов подизображений на видеоизображении.
На фиг. 16 показана блок-схема последовательности операций способа 1600 обработки видео в соответствии с настоящей технологией. На этапе 1610 способ 1600 включает в себя выполнение преобразования между видеоизображением видео и кодированным представлением видео в соответствии с правилом. Видеоизображение содержит несколько подизображений, каждое подизображение содержит несколько элементов. Правило указывает то, что размер отдельных элементов в подизображении удовлетворяет ограничению.
В некоторых вариантах осуществления ограничение указывает то, что ширина отдельного элемента меньше T1. В некоторых вариантах осуществления ограничение указывает то, что высота отдельного элемента меньше T2. В некоторых вариантах осуществления видеоизображение содержит несколько видеоблоков, и ограничение указывает то, что подизображение, определенное на основе размера отдельных элементов, перекрывается текущим видеоблоком, обработанным во время преобразования. В некоторых вариантах осуществления отсчет за пределами подизображения, перекрываемого текущим видеоблоком, считается недоступным для преобразования. В некоторых вариантах осуществления ограничение указывает то, что размер отдельных элементов определяется на основе профиля, уровня или ранга стандарта кодирования видео. В некоторых вариантах осуществления ограничение указывает то, что размер отдельных элементов определяется на основе ширины видеоизображения. В некоторых вариантах осуществления ширина отдельных элементов равна pic_width_max_in_luma_samples/4+offset, где pic_width_max_in_luma_samples представляет максимальную ширину изображения в отсчетах яркости, и смещение равно нулю или ненулевому целому числу. В некоторых вариантах осуществления ограничение указывает то, что размер отдельных элементов определяется на основе высоты видеоизображения. В некоторых вариантах осуществления высота отдельных элементов равна pic_height_max_in_luma_samples/4+offset, где pic_height_max_in_luma_samples представляет максимальную высоту изображения в отсчетах яркости, и смещение равно нулю или ненулевому целому числу.
В некоторых вариантах осуществления преобразование вырабатывает видеоизображение из представления битового потока. В некоторых вариантах осуществления преобразование вырабатывает представление битового потока из видеоизображения.
На фиг. 17 показана блок-схема последовательности операций способа 1700 обработки видео в соответствии с настоящей технологией. На этапе 1710 способ 1700 включает в себя выполнение преобразования между видео, содержащим изображение, которое включает в себя несколько подизображений, и кодированным представлением видео с использованием режима кодирования в соответствии с правилом. Правило указывает то, что определенная сохраненная информация о предыдущем подизображении сбрасывается перед обработкой каждого следующего подизображения из нескольких подизображений.
В некоторых вариантах осуществления определенная сохраненная информация содержит виртуальный буфер, используемый для режима кодирования с внутриблочным копированием, в котором текущий блок на видеоизображении кодируется с помощью отсчетов из видеоизображения. В некоторых вариантах осуществления определенная сохраненная информация содержит список записей, используемых для режима кодирования палитры, в котором текущий блок на видеоизображении кодируется с использованием палитры значений репрезентативных отсчетов.
На фиг. 18 показана блок-схема последовательности операций способа 1800 обработки видео в соответствии с настоящей технологией. На этапе 1810 способ 1800 включает в себя выполнение операции временной фильтрации при преобразовании между видео и кодированным представлением видео в соответствии с правилом. Видео содержит несколько видеоизображений, каждое из которых содержит несколько подизображений. Правило указывает то, что, для временной фильтрации текущего отсчета в текущем подизображении видеоизображения, доступны только отсчеты в пределах одного и того же текущего подизображения или подизображения в другом видеоизображении, соответствующем текущему подизображению.
На фиг. 19 показана блок-схема последовательности операций способа 1900 обработки видео в соответствии с настоящей технологией. На этапе 1910 способ 1900 включает в себя определение, для преобразования между блоком на видеоизображении видео и кодированным представлением видео, способа применения способа разделения к блоку на основе того, пересекает ли блок один или более границ подизображения видеоизображения. На этапе 1920 способ 1900 также включает в себя выполнение преобразования на основе определения.
В некоторых вариантах осуществления способ разделения содержит по меньшей мере одно из следующего: способ разделения квадродерева, способ разделения горизонтального двоичного дерева, способ разделения вертикального двоичного дерева, способ разделения горизонтального третичного дерева, способ разделения вертикального третичного дерева или способ без разделения. В некоторых вариантах осуществления способ дополнительно указывает то, применим ли способ обработки границ к блоку. В некоторых вариантах осуществления способ включает в себя определение способа обработки синтаксического элемента в кодированном представлении, указывающего способ разделения, на основе того, расположен ли блок на одной или более границах подизображения видеоизображения.
На фиг. 20 показана блок-схема последовательности операций способа 2000 обработки видео в соответствии с настоящей технологией. На этапе 2010 способ 2000 включает в себя определение, для преобразования между видеоизображением видеоизображения и кодированным представлением видео, двух подобластей видеоизображения. Первая подобласть содержит несколько подизображений видеоизображения, и вторая подобласть содержит оставшиеся отсчеты на видеоизображении. На этапе 2020 способ 2000 также включает в себя выполнение преобразования на основе определения.
В некоторых вариантах осуществления отсчет во второй подобласти не расположен ни на одном подизображении видеоизображения. В некоторых вариантах осуществления вторая подобласть обрабатывается для преобразования на основе информации о первой подобласти. В некоторых вариантах осуществления при преобразовании используется значение по умолчанию, чтобы указать то, находится ли отсчет или область видеоизображения во второй подобласти. В некоторых вариантах осуществления значение по умолчанию установлено равным (max_subpics_minus1 + K), где max_subpics_minus1 указывает максимальное количество подизображений на видеоизображении, и K представляет собой целое число, большее 1. В некоторых вариантах осуществления значение по умолчанию присваивается каждому элементу в массиве значений индекса, представляющих подизображения на видеоизображении.
В некоторых вариантах преобразование вырабатывает видео из кодированного представления. В некоторых вариантах осуществления преобразование вырабатывает кодированное представление из видео.
Некоторые варианты осуществления раскрытой технологии включают в себя принятие решения или определение включения средства или режима обработки видео. В одном примере, когда средство или режим обработки видео включены, кодер будет использовать или реализовывать средство или режим при обработке видеоблока, но не обязательно может изменять результирующий битовый поток на основе использования средства или режима. То есть преобразование из видеоблока в представление битового потока видео будет использовать средство или режим обработки видео, когда он включен, на основе решения или определения. В другом примере, когда средство или режим обработки видео включены, декодер будет обрабатывать битовый поток, зная, что битовый поток был изменен, на основе средства или режима обработки видео. То есть преобразование из представления битового потока видео в видеоблок будет выполняться с использованием средства обработки видео или режима, который был включен на основе решения или определения.
Некоторые варианты осуществления раскрытой технологии включают в себя принятие решения или определение относительно того, отключить средство или режим обработки видео. В одном примере, когда средство или режим обработки видео отключены, кодер не будет использовать средство или режим при преобразовании видеоблока в представление битового потока видео. В другом примере, когда средство или режим обработки видео отключены, декодер будет обрабатывать битовый поток, зная, что битовый поток не был изменен, с использованием средства или режима обработки видео, которые были включены на основе решения или определения.
Раскрытые и другие решения, примеры, варианты осуществления, модули и функциональные операции, описанные в данном документе, могут быть реализованы в цифровых электронных схемах или в компьютерном программном обеспечении, встроенном программном обеспечении или аппаратных средствах, включая структуры, раскрытые в данном документе и их структурных эквивалентах, либо в комбинации одного или нескольких из них. Раскрытые и другие варианты осуществления могут быть реализованы в виде одного или нескольких компьютерных программных продуктов, например, в виде одного или нескольких модулей компьютерных программных инструкций, закодированных на машиночитаемом носителе информации, для выполнения или для управления работой устройства обработки данных. Машиночитаемый носитель информации может быть машиночитаемым запоминающим устройством, машиночитаемым запоминающим носителем информации, запоминающим устройством, смесью веществ, воздействующей на машиночитаемый распространяющийся сигнал, или комбинацией одного или нескольких из них. Термин "устройство обработки данных" охватывает все аппаратные устройства, устройства и машины для обработки данных, включая, например, программируемый процессор, компьютер или несколько процессоров или компьютеров. Устройство может включать в себя, помимо аппаратного обеспечения, код, который создает среду выполнения для рассматриваемой компьютерной программы, например, код, который составляет микропрограммное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию из одного или большего их количества. Распространяющийся сигнал представляет собой искусственно выработанный сигнал, например, выработанный с помощью машины, электрический, оптический или электромагнитный сигнал, который вырабатывается для кодирования информации для передачи в подходящее приемное устройство.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, программный модуль, сценарий или код) может быть написана на языке программирования любого вида, включая компилированные или интерпретируемые языки, и может быть развернута в любом виде, в том числе как автономная программа или как модуль, компонент, подпрограмма или другая единица, подходящая для использования в вычислительной среде. Компьютерная программа не обязательно соответствует файлу в файловой системе. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько сценариев, хранящихся в документе на языке разметки), в одном файле, выделенном для рассматриваемой программы, или в нескольких скоординированных файлах (например, файлах, в которых хранятся один или несколько модулей, подпрограмм или частей кодa). Компьютерная программа может быть развернута для исполнения на одном компьютере или на нескольких компьютерах, которые расположены на одном сайте или распределены по нескольким сайтам и связаны между собой сетью связи.
Процессы и логические потоки, описанные в данном документе, могут выполняться одним или несколькими программируемыми процессорами, исполняющими одну или более компьютерных программ для выполнения функций, оперируя входными данными и вырабатывая выходные данные. Процессы и логические потоки также могут выполняться с помощью, и устройство может быть реализовано также в виде логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA) или специализированной интегральной схемы (ASIC).
Процессоры, подходящие для выполнения компьютерной программы, включают в себя, например, микропроцессоры как общего, так и специального назначения, а также любой один или более процессоров любого типа цифрового компьютера. В общем, процессор будет принимать инструкции и данные из постоянного запоминающего устройства, оперативного запоминающего устройства или того и другого. Существенными элементами компьютера являются процессор, предназначенный для выполнения инструкций, и одно или более запоминающих устройств для хранения инструкций и данных. Как правило, компьютер также будет включать в себя или будет функционально подключенным для приема данных из или передачи данных в, или и того и другого, одно или более устройств массовой памяти для хранения данных, например, магнитные диски, магнитооптические диски или оптические диски. Однако компьютер необязательно должен иметь такие устройства. Машиночитаемые носители информации, подходящие для хранения инструкций компьютерных программ и данных, включают в себя все виды энергонезависимой памяти, носителей информации и запоминающих устройств, в том числе, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены специальной логической схемой или включены в нее.
Хотя данный патентный документ содержит много конкретных деталей, таковые не должны толковаться в качестве ограничений на объем какого бы то ни было предмета изобретения или на объем того, что может быть заявлено в формуле изобретения, но скорее в качестве описаний признаков, которые могут быть характерны для конкретных реализаций конкретных технологий. Некоторые признаки, которые описаны в данном патентном документе в контексте отдельных вариантов осуществления, могут быть также реализованы в комбинации в одном варианте осуществления. И наоборот, различные признаки, которые описаны в контексте одного варианта осуществления, могут быть также реализованы в многочисленных вариантах осуществления по отдельности или в любой подходящей подкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в определенных комбинациях и даже первоначально заявленные как таковые, один или несколько признаков заявленной комбинации в некоторых случаях могут быть исключены из комбинации, и заявленная комбинация может быть направлена на подкомбинацию или вариацию подкомбинации.
Аналогичным образом, хотя операции изображены на чертежах в определенном порядке, это не следует понимать как требование, чтобы такие операции выполнялись в конкретном показанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись для достижения желаемых результатов. Более того, разбиение различных компонентов системы в вариантах осуществления, описанных в данном патентном документе, не следует понимать как требующее такого разбиения во всех вариантах осуществления.
Выше было описано только несколько реализаций и примеров, и другие реализации, улучшения и изменения могут быть сделаны на основе того, что описано и проиллюстрировано в данном патентном документе.
Изобретение относится к области кодирования/декодирования видео и изображений. Техническим результатом является повышение эффективности кодирования/декодирования. Предложен cпособ обработки видео, включающий этап преобразования между видеоблоком видео и кодированным представлением видео с использованием по меньшей мере видеоизображения. Только один режим из режима кодирования подизображений или режима кодирования с изменением разрешения разрешен для видеоустройства. Режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешение видеоизображения регулируется во время преобразования. 4 н. и 12 з.п. ф-лы, 20 ил.
1. Способ обработки видеоданных, содержащий этапы, на которых:
определяют, для преобразования между видеоблоком видео и битовым потоком видео, разрешен ли режим кодирования с изменением разрешения для видеоблока, причем видеоблок содержит одно или более видеоизображений, и
запрещают режим кодирования подизображений для видеоблока при определении, что режим кодирования с изменением разрешения разрешен для видеоблока,
причем режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешено изменение пространственного разрешения между видеоизображениями видеоблока, и
в случае, когда режим кодирования с изменением разрешения запрещен, ширина видеоизображения в видеоблоке устанавливается равной максимальной ширине, разрешенной для видеоизображений в видеоблоке.
2. Способ по п. 1, в котором видеоблок содержит видеопоследовательность.
3. Способ по п. 1 или 2, в котором в битовый поток включен первый синтаксический элемент для указания, разрешен ли режим кодирования подизображений для видеоблока.
4. Способ по п. 1, в котором в битовый поток включен второй синтаксический элемент для указания максимальной ширины, разрешенной для видеоизображений в видеоблоке.
5. Способ по п. 4, в котором значение второго синтаксического элемента не может быть меньше 8.
6. Способ по п. 4, в котором в битовый поток включен третий синтаксический элемент для указания максимальной высоты, разрешенной для видеоизображений в видеоблоке, причем значение третьего синтаксического элемента не может быть меньше 8.
7. Способ по п. 1, в котором в битовый поток включен четвертый синтаксический элемент для указания ширины подизображения и пятый синтаксический элемент для указания высоты подизображения.
8. Способ по п. 1, в котором в битовый поток включен шестой синтаксический элемент для указания позиции верхнего левого угла подизображения.
9. Способ по любому из пп. 1-8, в котором позиция и размер подизображения определяются без ссылки на идентификацию подизображения.
10. Способ по любому из пп. 1-9, в котором для видеоблока могут быть разрешены как передискретизация опорного изображения, так и режим кодирования подизображений.
11. Способ по любому из пп. 1-10, в котором режим кодирования с изменением разрешения разрешен тогда, когда разрешена передискретизация опорного изображения.
12. Способ по любому из пп. 1-11, в котором преобразование содержит кодирование видео в битовый поток.
13. Способ по любому из пп. 1-11, в котором преобразование содержит декодирование видео из битового потока.
14. Устройство для обработки видеоданных, содержащее процессор и энергонезависимую память с хранящимися на ней инструкциями, причем инструкции при их исполнении процессором вызывают выполнение процессором:
определения, для преобразования между видеоблоком видео и битовым потоком видео, разрешен ли режим кодирования с изменением разрешения для видеоблока, причем видеоблок содержит одно или более видеоизображений, и
запрещения режима кодирования подизображений для видеоблока при определении, что режим кодирования с изменением разрешения разрешен для видеоблока,
причем режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешено изменение пространственного разрешения между видеоизображениями видеоблока, и
в случае, когда режим кодирования с изменением разрешения запрещен, ширина видеоизображения в видеоблоке устанавливается равной максимальной ширине, разрешенной для видеоизображений в видеоблоке.
15. Энергонезависимый машиночитаемый носитель информации, хранящий инструкции, которые вызывают выполнение процессором:
определения, для преобразования между видеоблоком видео и битовым потоком видео, разрешен ли режим кодирования с изменением разрешения для видеоблока, причем видеоблок содержит одно или более видеоизображений, и
запрещения режима кодирования подизображений для видеоблока при определении, что режим кодирования с изменением разрешения разрешен для видеоблока,
причем режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешено изменение пространственного разрешения между видеоизображениями видеоблока, и
в случае, когда режим кодирования с изменением разрешения запрещен, ширина видеоизображения в видеоблоке устанавливается равной максимальной ширине, разрешенной для видеоизображений в видеоблоке.
16. Способ сохранения битового потока видео, содержащий этапы, на которых:
определяют, для видеоблока видео, разрешен ли режим кодирования с изменением разрешения для видеоблока, причем видеоблок содержит одно или более видеоизображений,
запрещают режим кодирования подизображений для видеоблока при определении, что режим кодирования с изменением разрешения разрешен для видеоблока,
вырабатывают битовый поток на основе указанного определения, и
сохраняют битовый поток на энергозависимом машиночитаемом носителе для записи информации,
причем режим кодирования подизображений представляет собой режим, в котором видеоизображение делится на множество подизображений, а режим кодирования с изменением разрешения представляет собой режим, в котором разрешено изменение пространственного разрешения между видеоизображениями видеоблока, и
в случае, когда режим кодирования с изменением разрешения запрещен, ширина видеоизображения в видеоблоке устанавливается равной максимальной ширине, разрешенной для видеоизображений в видеоблоке.
B | |||
BROSS et al., Versatile Video Coding (Draft 6), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-02001 -vE, 15th Meeting: Gothenburg, 3-12 July 2019 | |||
BYEONGDOO CHOI еt al., AHG12: On sub-picture partitioning, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0055-v2, |
Авторы
Даты
2024-06-11—Публикация
2020-08-10—Подача