Область техники, к которой относится изобретение
Данный документ относится к технологиям кодирования и декодирования видео и изображений.
Уровень техники
На цифровое видео приходится самая большая доля использования полосы пропускания в Интернете и других сетях цифровой связи. Ожидается, что по мере увеличения количества подключенных пользовательских устройств, способных принимать и отображать видео, потребность в полосе пропускания для использования цифрового видео будет продолжать расти.
Раскрытие сущности изобретения
Раскрытые технологии могут использоваться в вариантах осуществления декодера или кодера видео или изображения, в которых используются геометрические разбиения с помощью предсказания вектора движения на основе истории (HMVP).
В одном примерном аспекте раскрыт способ обработки видео. Способ включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока на основе определения того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти.
В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти, при этом по меньшей мере одна подчасть не является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.
В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния; определение процессором первой подчасти и второй подчасти для первого видеоблока, причем одна или обе из первой подчасти или второй подчасти являются непрямоугольными и неквадратными частями первого видеоблока; и дополнительную обработку первого видеоблока с использованием первой подчасти и второй подчасти, причем дополнительная обработка первого видеоблока с использованием первой подчасти и второй подчасти основана на интер- или внутренне кодированной информации о несмежных пространственных видеоблоках по отношению к первому видеоблоку.
В другом примерном аспекте способ обработки видео включает в себя определение того, что первый видеоблок кодирован в режиме треугольной части (TPM) с использованием треугольной части предсказания первого видеоблока, и что второй видеоблок кодируется с использованием не-TPM, использующего часть нетреугольного предсказания второго видеоблока; дополнительную обработку первого видеоблока и второго видеоблока с использованием сохраненных кандидатов HMVP и сохранение кандидатов HMVP, ассоциированных с первым видеоблоком и вторым видеоблоком.
В другом примерном аспекте способ обработки видео включает в себя определение процессором того, что первый видеоблок включает в себя части предсказания, которые являются непрямоугольными и неквадратными частями первого видеоблока; идентификацию кандидата HMVP; добавление одного или множества кандидатов движения, полученных из кандидата HMVP, в список слияния, ассоциированный с видеоблоками, которые включают в себя части предсказания, которые являются непрямоугольными и неквадратными; и дополнительную обработку первого видеоблока с использованием списка слияния.
В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение информации внешнего предсказания множества подчастей; преобразование текущего блока с использованием информации внешнего предсказания множества подчастей; и где текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.
В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение информации о движении множества подчастей; преобразование текущего блока с использованием информации о движении множества подчастей; и где текущий блок не является внешне кодированным со слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.
В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; обработку первой подчасти в режиме внутренне кодирования; и обработку второй подчасти в режиме внешне кодирования.
В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; где по меньшей мере одна из множества подчастей внешне кодирована со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.
В другом примерном аспекте способ обработки видео включает в себя: преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму; и преобразование с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках.
В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения; определение, на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения на основе истории (HMVP), которые включают в себя информацию о движении на основе ранее кодированных блоков, информации о движении по меньшей мере одной подчасти первого блока; преобразование первого блока с использованием определенной информации о движении.
В другом примерном аспекте способ обработки видео включает в себя: определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения; определение информации о движении по меньшей мере одной подчасти первого блока; преобразование первого блока с использованием информации о движении по меньшей мере одной подчасти; причем определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.
В другом примерном аспекте вышеописанный способ может быть реализован устройством видеокодера, которое содержит процессор.
В другом примерном аспекте вышеописанный способ может быть реализован устройством видеодекодера, которое содержит процессор.
В еще одном примерном аспекте эти способы могут быть воплощены в виде инструкций, исполняемых процессором и хранящихся на машиночитаемом носителе программ.
Эти и другие аспекты дополнительно описаны в настоящем документе.
Краткое описание чертежей
Фиг.1 – пример процесса получения для создания списка кандидатов слияния.
Фиг.2 – пример позиций пространственных кандидатов слияния.
Фиг.3 – пример пар кандидатов, подлежащих проверке на избыточность пространственного кандидата слияния.
Фиг.4 – пример позиций второй PU разбиений N×2N и 2N×N.
Фиг.5 – пример масштабирования вектора движения для временного кандидата слияния.
Фиг.6 – пример позиций кандидатов для временных кандидатов C0 и C1 слияния.
Фиг.7 – пример объединенного кандидата слияния с би-предсказанием.
Фиг.8 – пример процесса получения для кандидатов предсказания вектора движения.
Фиг.9 – пример масштабирования вектора движения для пространственного кандидата вектора движения.
Фиг.10 – пример предсказания движения ATMVP для CU.
Фиг.11 – пример одной CU с четырьмя подблоками (AD) и его соседними блоками (a-d).
Фиг.12 – пример блок-схемы кодирования с различной точностью MV.
Фиг.13 – примеры разбиения CU на две треугольные единицы предсказания (два типа разбиения).
Фиг.14 – пример позиций соседних блоков.
Фиг.15 – пример CU, применяющего 1-ю группу весовых коэффициентов.
Фиг.16 – пример хранения вектора движения.
Фиг.17 – пример соседних блоков (A и L), используемых для выбора контекста при кодировании флага TPM.
Фиг.18 – пример подблоков, где применяется OBMC.
Фиг.19 – пример соседних выборок, используемых для получения параметров IC.
Фиг.20 – пример упрощенной модели аффинного движения.
Фиг.21 – пример аффинного MVF для каждого подблока.
Фиг.22 – пример (а) 4-параметрической аффинной модели и (b) 6-параметрической аффинной модели.
Фиг.23 – пример MVP для AF_INTER.
Фиг.24 – пример кандидатов для AF_MERGE.
Фиг.25 – пример позиции кандидатов для режима аффинного слияния.
Фиг.26 – пример траектории оптического потока.
Фиг.27 – пример BIO расширения блока w/o: a) позиции доступа находятся вне блока; b) заполнение используется во избежание излишнего обращения к памяти и вычислений.
Фиг.28 – пример DMVR на основе двустороннего согласования с шаблоном.
Фиг.29 – блок-схема примера устройства обработки видео.
Фиг.30 – блок-схема примерной реализации видеокодера.
Фиг.31 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.32 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.33 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.34 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.35 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.36 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.37 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.38 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.39 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.40 – блок-схема последовательности операций для примера способа обработки видео.
Фиг.41 - блок-схема последовательности операций для примера способа обработки видео.
Фиг.42 – блок-схема последовательности операций для примера способа обработки видео.
Осуществление изобретения
В данном документе представлены различные технологии, которые могут использоваться в декодере битовых потоков видео или изображения для улучшения качества восстановленного или декодированного цифрового видео или цифровых изображений. Для краткости термин "видео" используется в данном документе для обозначения как последовательности изображений (традиционно называемых видео), так и отдельных изображений. Кроме того, видеокодер позволяет также реализовать эти технологии в процессе кодирования для восстановления декодированных кадров, используемых для дальнейшего кодирования.
Заголовки разделов используются в данном документе для упрощения понимания и не ограничивают варианты осуществления и технологии соответствующими разделами. Таким образом, варианты осуществления из одного раздела могут быть объединены с вариантами осуществления из других разделов.
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, H.264/MPEG-4 усовершенствованное кодирование видео (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.
На фиг.30 показана блок-схема примерной реализации видеокодера. На фиг.30 показано, что реализация кодера имеет встроенный тракт обратной связи, в котором видеокодер также выполняет функциональные возможности декодирования видео (восстанавливая сжатое представление видеоданных для использования при кодировании следующих видеоданных).
2.1 Внешнее предсказание в HEVC/H.265
Каждая внешне предсказанная PU имеет параметры движения для одного или двух списков опорных изображений. Параметры движения включают в себя вектор движения и индекс опорного изображения. Использование одного из двух списков опорных изображений также может сигнализироваться с помощью inter_pred_idc. Векторы движения могут быть явно закодированы как дельты по отношению к предикторам.
Когда CU кодируются в режиме пропуска, одна PU ассоциируется с CU, и отсутствуют какие-либо существенные остаточные коэффициенты, дельта некодированных векторов движения или индекс опорного кадра. Режим слияния точно определяется, в результате чего параметры движения для текущей PU получаются из соседних PU, включая пространственные и временные кандидаты. Режим слияния может применяться к любой внешне предсказанный PU, а не только к режиму пропуска. Альтернативой режиму слияния является явная передача параметров движения, где вектор движения (если быть более точным, разность векторов движения по сравнению с предиктором вектора движения), соответствующий индекс опорного кадра для каждого списка опорных изображений и использование списка опорных изображений сигнализируются в явном виде для каждой PU. В настоящем раскрытии такой режим называется улучшенным предсказанием вектора движения (AMVP).
Когда сигнализация указывает, что должен использоваться один из двух списков опорных изображений, PU создается из одного блока выборок. Это называется "уни-предсказанием". Уни-предсказание доступно как для P-слайсов, так и для B-слайсов.
Когда сигнализация указывает, что должны использоваться оба списка опорных изображений, PU создается из двух блоков выборок. Это упоминается как "би-предсказание". Би-предсказание доступно только для B-слайсов.
В последующем тексте представлены подробные сведения о режимах внешнего предсказания, определенных в HEVC. Описание начинается с режима слияния.
2.1.1. Список опорных изображений
В HEVC термин "внешнее предсказание" используется для обозначения предсказания, полученного из элементов данных (например, значений выборок или векторов движения) опорных изображений, которые отличаются от текущего декодированного изображения. Как и в H.264/AVC, изображение может быть предсказано из множества опорных изображений. Опорные изображения, которые используются для внешнего предсказания, объединены в один или несколько списков опорных изображений. Опорный индекс указывает то, какое из опорных изображений в списке следует использовать для создания сигнала предсказания.
Один список опорных изображений, список 0, используется для P-слайса, и два списка опорных изображений, список 0 и список 1, используются для B-слайсов. Следует отметить, что контрольные изображения, включенные в список 0/1, могут быть из прошлых и будущих изображений с точки зрения порядка захвата/отображения.
2.1.2 Режим слияния
2.1.2.1 Получение кандидатов для режима слияния
Когда PU предсказывается с использованием режима слияния, индекс, указывающий на запись в списке кандидатов слияния, анализируется из битового потока и используется для извлечения информации о движении. Построение этого списка точно определено в стандарте HEVC и может быть кратко изложено в соответствии со следующей последовательностью этапов:
Этап 1: Получение исходных кандидатов
Этап 1.1: Получение пространственных кандидатов
Этап 1.2: Проверка на избыточность для пространственных кандидатов
Этап 1.3: Получение временных кандидатов
Этап 2: Добавление дополнительных кандидатов
Этап 2.1: Создание кандидатов с би-предсказанием
Этап 2.2: Вставка кандидатов с нулевым движением
Эти этапы также схематично изображены на фиг.1. Для получения пространственного кандидата слияния выбирается максимум четыре кандидата слияния из кандидатов, которые расположены в пяти разных позициях. Для получения временного кандидата слияния из двух кандидатов выбирается максимум один кандидат слияния. Так как в декодере предполагается постоянное количество кандидатов для каждой PU, дополнительные кандидаты вырабатываются тогда, когда количество кандидатов не достигает максимального количества кандидатов слияния (MaxNumMergeCand), которое сигнализируется в заголовке слайса. Так как количество кандидатов является постоянным, индекс лучшего кандидата слияния кодируется с использованием усеченной унарной бинаризации (TU). Если размер CU равен 8, все PU текущей CU совместно используют один список кандидатов слияния, который идентичен списку кандидатов слияния блока предсказания размером 2N×2N.
Далее подробно описываются операции, связанные с вышеупомянутыми этапами.
На фиг.1 показан пример процесса получения для построения списка кандидатов слияния.
2.1.2.2. Получение пространственных кандидатов
При получении пространственных кандидатов слияния максимум четыре кандидата слияния выбираются среди кандидатов, расположенных в позициях, изображенных на фиг.2. Порядок получения является следующим: A1, B1, B0, A0 и B2. Позиция B2 рассматривается только тогда, когда любая PU из позиции A1, B1, B0, A0 недоступна (например, так как она принадлежит другому слайсу или тайлу) или внутренне кодирована. После того, как добавлен кандидат в позиции A1, добавление оставшихся кандидатов подлежит проверке на избыточность, которая гарантирует, что кандидаты с одинаковой информацией о движении исключены из списка, поэтому повышается эффективность кодирования. Чтобы уменьшить вычислительную сложность, не все возможные пары кандидатов рассматриваются в упомянутой проверке на избыточность. Вместо этого рассматриваются только пары, связанные стрелкой, показанной на фиг.3, и кандидат добавляется в список только в том случае, если соответствующий кандидат, используемый для проверки на избыточность, не имеет такой же информации о движении. Еще одним источником дублированной информации о движении является "вторая PU", ассоциированная с разбиениями, которые отличаются от 2Nx2N. В качестве примера на фиг.4 показана вторая PU для случая N×2N и 2N×N, соответственно. Когда текущая PU разделена как N×2N, кандидат в позиции A1 не рассматривается для построения списка. В некоторых вариантах осуществления добавление этого кандидата может привести к двум блокам предсказания, имеющим одинаковую информацию о движении, которая является избыточной для того, чтобы иметь только одну PU в блоке кодирования. Аналогичным образом, позиция B1 не учитывается тогда, когда текущая PU разделена как 2N×N. Фактически, добавление этого кандидата приведет к двум единицам предсказания, имеющим одинаковую информацию о движении, которая является избыточной, чтобы иметь только одну PU в единице кодирования. Аналогичным образом, позиция B1 не рассматривается, когда текущая PU разделена как 2N×N.
На фиг.2 показан пример позиций пространственных кандидатов слияния.
На фиг.3 показан пример пар кандидатов, подлежащих проверке на избыточность пространственного кандидата слияния.
На Фиг.4 показан пример позиций для второй PU из разбиений N×2N и 2N×N.
2.1.2.3. Получение временных кандидатов
На этом этапе в список добавляется только один кандидат. В частности, при получении этого временного кандидата слияния масштабированный вектор движения получается на основе совмещенной PU, принадлежащей изображению, которое имеет наименьшую разницу POC с текущим изображением в данном списке опорных изображений. Список опорных изображений, который должен использоваться для получения совмещенной PU, явно сигнализируется в заголовке слайса. Получается масштабированный вектор движения для временного кандидата слияния, который проиллюстрирован пунктирной линией на фиг.5 и который масштабируется относительно вектора движения совмещенной PU с использованием расстояний POC, tb и td, где tb определяется как разность POC между опорным изображением текущего изображения и текущего изображения, и td определяется как разность POC между опорным изображением совмещенного изображения и совмещенным изображением. Индекс опорного изображения временного кандидата слияния устанавливается равным нулю. Практическая реализация процесса масштабирования описана в спецификации HEVC. Для B-слайса два вектора движения, один для списка 0 опорных изображений, и другой для списка 1 опорных изображений, получаются и объединяются для выработки кандидата слияния с би-предсказанием.
На фиг.5 показан пример масштабирования вектора движения для кандидата временного слияния.
В совмещенной PU (Y), принадлежащей к опорному кадру, позиции для временного кандидата выбираются между кандидатами С0 и С1, как показано на фиг.6. Если PU в позиции С0 недоступна, внутренне кодирована или находится за пределами текущей CTU, используется позиция C1. В иных случаях позиция С0 используется при получении временного кандидата слияния.
На фиг.6 показан пример позиций кандидатов для временных кандидатов C0 и C1 слияния.
2.1.2.4. Вставка дополнительных кандидатов
Помимо пространственно-временных кандидатов слияния существует два дополнительных типа кандидатов слияния: объединенный кандидат слияния с би-предсказанием и нулевой кандидат слияния. Объединенные кандидаты слияния с би-предсказанием вырабатываются с использованием пространственно-временных кандидатов слияния. Объединенный кандидат слияния с двунаправленным предсказанием используется только для B-слайса. Объединенные кандидаты с би-предсказанием вырабатываются путем объединения параметров движения из первого списка опорных изображений одного исходного кандидата с параметрами движения из второго списка опорных изображений другого исходного кандидата. Если эти два кортежа будут предоставлять разные гипотезы движения, они сформируют новый кандидат с би-предсказанием. В качестве примера на фиг.7 показан случай, когда два кандидата в исходном списке (слева), которые имеют mvL0 и refIdxL0 или mvL1 и refIdxL1, используются для создания объединенного кандидата слияния с би-предсказанием, добавленного в окончательный список (справа). Существует множество правил относительно комбинаций, которые рассматриваются для выработки этих дополнительных кандидатов слияния.
На фиг.7 показан пример объединенного кандидата слияния с би-предсказанием.
Нулевые кандидаты движения вставляются для заполнения оставшихся записей в списке кандидатов слияния и, следовательно, достигают максимальной емкости MaxNumMergeCand. Эти кандидаты имеют нулевое пространственное смещение и индекс опорного изображения, который начинается с нуля и увеличивается каждый раз, когда новый кандидат нулевого движения добавляется в список. Количество опорных кадров, используемых этими кандидатами, равно одному и двум для однонаправленного предсказания (уни-предсказания) и двунаправленного предсказания (би-предсказания), соответственно. Наконец, для этих кандидатов не выполняется проверка на избыточность.
2.1.2.5. Области оценки движения для параллельной обработки
Чтобы ускорить процесс кодирования, оценка движения может выполняться параллельно, в результате чего векторы движения для всех единиц предсказания внутри заданной области получаются одновременно. Получение кандидатов слияния из пространственного соседства может мешать параллельной обработке, так как одна единица предсказания не может получать параметры движения из соседней PU до тех пор, пока не будет завершена ассоциированная с ней оценка движения. Чтобы смягчить компромисс между эффективностью кодирования и задержкой при обработке, HEVC определяет область оценки движения (MER), размер которой сигнализируется в наборе параметров изображения с использованием синтаксического элемента "log2_parallel_merge_level_minus2". Когда MER определена, кандидаты слияния, попадающие в одну и ту же область, помечаются как недоступные и, следовательно, не рассматриваются при построении списка.
2.1.3. AMVP
В AMVP используется пространственно-временная корреляция вектора движения с соседними PU, которая используется для явной передачи параметров движения. Для каждого списка опорных изображений создается список кандидатов вектора движения путем сначала проверки доступности левых, верхних временных соседних позиций PU, удаления избыточных кандидатов и добавления нулевого вектора, чтобы сделать список кандидатов с постоянной длиной. Затем кодер может выбрать лучший предиктор из списка кандидатов и передать соответствующий индекс, указывающий выбранный кандидат. По аналогии с сигнализацией индекса слияния индекс лучшего кандидата вектора движения кодируется с использованием усеченного унарного кода. Максимальное значение, которое должно быть закодировано в этом случае, равно 2 (смотри фиг.8). В следующих разделах представлены подробности о процессе получения кандидата предсказания вектора движения.
2.1.3.1 Получение кандидатов AMVP
На фиг.8 обобщенно показан процесс получения кандидата предсказания вектора движения.
При предсказании вектора движения рассматриваются два типа кандидатов вектора движения: пространственный кандидат вектора движения и временный кандидат вектора движения. Для получения кандидатов векторов движения в конечном итоге получаются два кандидата вектора движения на основе векторов движения каждой PU, расположенной в пяти разных позициях, как ранее показано на фиг.2.
Для получения временных кандидатов вектора движения один кандидат вектора движения выбирается из двух кандидатов, которые получаются на основе двух разных совмещенных позиций. После составления первого списка пространственно-временных кандидатов удаляются дублированные кандидаты вектора движения в списке. Если число потенциальных кандидатов больше двух, из списка удаляются кандидаты вектора движения, чей индекс опорного изображения в ассоциированном списке опорных изображений больше 1. Если количество пространственно-временных кандидатов вектора движения меньше двух, в список добавляются дополнительные кандидаты нулевого вектора движения.
2.1.3.2. Пространственные кандидаты векторов движения
При получении пространственных кандидатов векторов движения рассматривается максимум два кандидата из пяти потенциальных кандидатов, которые получены из PU, расположенных в позициях, как ранее показано на фиг.2, причем эти позиции совпадают с позициями слияния движения. Порядок получения для левой стороны текущей PU определяется как A0, A1, масштабированный A0, масштабированный A1. Порядок получения для указанной выше стороны текущей PU определяется как B0, B1, B2, масштабированный B0, масштабированный B1, масштабированный B2. Таким образом, для каждой стороны существует четыре случая, которые можно использовать в качестве кандидата вектора движения: два случая, когда не требуется использовать пространственное масштабирование, и два случая, когда используется пространственное масштабирование. Четыре различных случая кратко изложены следующим образом:
При отсутствии пространственного масштабирования
(1) Один и тот же список опорных изображений и один и тот же индекс опорных изображений (один и тот же POC)
(2) Другой список опорных изображений, но одно и то же опорное изображение (такой же POC)
При наличии пространственного масштабирования
(3) Один и тот же список опорных изображений, но другое опорное изображение (другой POC)
(4) Другой список опорных изображений, и другое опорное изображение (другой POC)
Сначала проверяются случаи отсутствия пространственного масштабирования, а затем случаи, которые допускают пространственное масштабирование. Пространственное масштабирование рассматривается тогда, когда POC отличается между опорным изображением соседней PU и опорным изображением текущей PU независимо от списка опорных изображений. Если все PU левых кандидатов недоступны или имеют внутренне кодирование, допускается масштабирование для вышеупомянутого вектора движения, чтобы способствовать параллельному получению левого и верхнего MV-кандидатов. В иных случаях пространственное масштабирование для вышеуказанного вектора движения не допускается.
На фиг.9 показан пример масштабирования вектора движения для пространственного кандидата вектора движения.
В процессе пространственного масштабирования вектор движения соседней PU масштабируется таким же образом, как и при временном масштабировании, как показано на фиг.9. Одно отличие состоит в том, что список опорных изображений и индекс текущей PU задаются как входные данные, при этом фактический процесс масштабирования является таким же, как и при временном масштабировании.
2.1.3.3. Временные кандидаты векторов движения
Кроме опорного изображения индекса получения все процессы для получения временных кандидатов слияния являются такими же, как для получения пространственных кандидатов векторов движения (смотри фиг.6). Индекс опорного изображения сигнализируется в декодер.
2.2. Новые способы внешнего предсказания в JEM
2.2.1. Предсказание вектора движения на основе под-CU
В JEM при использовании QTBT каждая CU может иметь не более одного набора параметров движения для каждого направления предсказания. Два способа предсказания вектора движения на уровне под-CU рассматриваются в кодере посредством разбиения большой CU на под-CU и получения информации о движении для всех под-CU большой CU. Способ предсказания альтернативных временных векторов движения (ATMVP) позволяет каждой CU извлекать многочисленные наборы информации о движении из многочисленных блоков меньшего размера, чем текущая CU в совмещенном опорном изображении. В способе предсказания пространственно-временных векторов движения (STMVP) векторы движения под-CU получаются рекурсивно с использованием предиктора временного вектора движения и соседнего вектора движения.
Чтобы сохранить более точное поле движения для предсказания движения под-CU, можно отключить сжатие движения для опорных кадров.
На фиг.10 показан пример предсказания движения ATMVP для CU.
2.2.1.1. Альтернативное предсказание временного вектора движения
В способе альтернативного временного предсказания вектора движения (ATMVP) предсказание временного вектора движения (TMVP) векторов движения модифицируется путем извлечения многочисленных наборов информации о движении (включая векторы движения и опорные индексы) из блоков, меньших по размеру, чем текущая CU. Под-CU представляют собой квадратные блоки размером N×N (по умолчанию для N установлено значение 4).
ATMVP предсказывает векторы движения под-CU в CU в два этапа. На первом этапе идентифицируется соответствующий блок в опорном кадре с помощью так называемого временного вектора. Опорное изображение называется изображением источника движения. На втором этапе разделяется текущая CU на под-CU, и получаются векторы движения, а также опорные индексы каждой под-CU из блока, соответствующего каждой под-CU.
На первом этапе опорное изображение и соответствующий блок определяются с помощью информации о движении пространственных соседних блоков текущей CU. Во избежание процесса повторного сканирования соседних блоков, используется первый кандидат слияния в списке кандидатов слияния текущей CU. Первый доступный вектор движения, а также ассоциированный с ним опорный индекс устанавливается на временной вектор, а индекс устанавливается на изображение источника движения. Таким образом, в ATMVP соответствующий блок может быть более точно идентифицирован по сравнению с TMVP, где соответствующий блок (иногда называемый совмещенным блоком) всегда находится в нижней правой или центральной позиции по отношению к текущей CU.
На втором этапе соответствующий блок под-CU идентифицируется с помощью временного вектора в изображении источника движения путем добавления к координате текущей CU временного вектора. Для каждой под-CU информация о движении ее соответствующего блока (наименьшая сетка движения, которая охватывает центральную выборку) используется для получения информации о движении для под-CU. После того, как информация о движении соответствующего блока N×N идентифицирована, она преобразуется в векторы движения и опорные индексы текущей под-CU таким же образом, как TMVP в HEVC, при этом применяются масштабирование движения и другие процедуры. Например, декодер проверяет, выполняется ли условие малой задержки (то есть меньше ли значения POC всех опорных изображений текущего изображения, чем значения РОС текущего изображения) и, возможно, использует вектор движения MVx (вектор движения, соответствующий списку X опорных изображений) для предсказания вектора MVy движения (при X, равном 0 или 1, и Y, равном 1-X) для каждой под-CU.
2.2.1.2. Пространственно-временное предсказание вектора движения (STMVP)
В этом способе векторы движения под-CU получаются рекурсивно, следуя порядку сканирования растра. Фиг.11 иллюстрирует эту концепцию. Рассмотрим CU размером 8×8, которая содержит четыре под-CU A, B, C и D размером 4×4. Соседние блоки размером 4×4 в текущем кадре помечены как a, b, c и d.
Получение движения для под-CU A начинается с идентификации двух его пространственных соседей. Первый сосед представляет собой блок размером N×N над под-CU A (блок c). Если этот блок c недоступен или внутренне кодирован, проверяются другие блоки N×N над под-CU A (слева направо, начиная с блока c). Второй сосед представляет собой блок слева от под-CU A (блок b). Если блок b недоступен или внутренне кодирован, проверяются другие блоки слева от под-CU A (сверху вниз, начиная с блока b). Информация о движении, полученная из соседних блоков для каждого списка, масштабируется в соответствии с первым опорным кадром для данного списка. Затем предиктор временного вектора движения (TMVP) подблока A получается, следуя той же процедуре получения TMVP, как определено в HEVC. Информация о движении совмещенного блока в местоположении D извлекается и масштабируется, соответственно. Наконец, после извлечения и масштабирования информации о движении все доступные векторы движения (до 3) усредняются отдельно для каждого списка опорных изображений. Усредненный вектор движения назначается как вектор движения текущей под-CU.
2.2.1.3. Сигнализация режима предсказания движения под-CU
Режимы под-CU активированы как дополнительные кандидаты слияния, и дополнительный элемент синтаксиса не требуется для сигнализации режимов. Два дополнительных кандидата слияния добавляются в список кандидатов слияния каждой CU, чтобы представить режим ATMVP и режим STMVP. Если набор параметров последовательности указывает, что ATMVP и STMVP включены, то используются до семи кандидатов слияния. Логика кодирования дополнительных кандидатов слияния является такой же, как и для кандидатов слияния в HM, что означает, что для каждой CU в P или B слайсе требуются еще две проверки RD для двух дополнительных кандидатов слияния.
В JEM все бины индекса слияния представляют собой контекст, кодированный с помощью CABAC. В HEVC только первый бин кодируется контекстно, а остальные бины кодируются в обход контекста.
2.2.2. Адаптивное разрешение разности векторов движения
В HEVC разности векторов движения (MVD) (между вектором движения и предсказываемым вектором движения PU) передаются в единицах в одну четверть выборки яркости, когда use_integer_mv_flag равен 0 в заголовке слайса. В JEM вводится локально адаптивное разрешение вектора движения (LAMVR). В JEM MVD может быть закодировано в единицах в одну четверть выборки яркости, целочисленные выборки яркости или четыре выборки яркости. Управление разрешением MVD осуществляется на уровне единицы кодирования (CU), и флаги разрешения MVD условно сигнализируются для каждой CU, которая имеет по меньшей мере один ненулевой компонент MVD.
Для CU, которая имеет по меньшей мере один ненулевой компонент MVD, первый флаг сигнализируется для того, чтобы указать, используется ли точность MV в одну четверть выборки яркости в CU. Когда первый флаг (равный 1) указывает, что точность MV в одну четверть выборки яркости не используется, сигнализируется другой флаг, чтобы указать, используется ли точность MV в целочисленные выборки яркости или точность MV в четыре выборки яркости.
Когда первый флаг разрешения MVD CU равен нулю или не кодирован для CU (что означает, что все MVD в CU равны нулю), для CU используется разрешение MV в одну четверть яркости. Когда CU использует точность MV целочисленной выборки яркости или точность MV четырех выборок яркости, MVP в списке кандидатов AMVP для CU округляются до соответствующей точности.
В кодере проверки RD на уровне CU используются для определения того, какое разрешение MVD должно использоваться для CU. То есть проверка RD на уровне CU выполняется три раза для каждого разрешения MVD. Для увеличения скорости кодера в JEM применяются следующие схемы кодирования.
Во время проверки RD CU с нормальным разрешением MVD в одну четверть яркости сохраняется информация о движении текущей CU (точность целочисленной выборки яркости). Сохраненная информация о движении (после округления) используется в качестве начальной точки для дальнейшего уточнения вектора движения с малым диапазоном во время проверки RD для одной и той же CU с целочисленной выборкой яркости и разрешением MVD с 4 выборками яркости, поэтому трудоемкий процесс оценки движения не дублируется три раза.
Проверка RD блока CU с разрешением MVD с 4 выборками яркости вызывается условно. Для CU, когда разрешение MVD целочисленной выборки яркости с издержками RD намного больше, чем разрешение MVD в одну четверть выборки яркости, проверка RD разрешения MVD 4-х выборок яркости для CU пропускается.
Процесс кодирования показан на фиг.12. Сначала тестируется MV 1/4 pel, издержки RD вычисляются и обозначаются как RDCost0, затем проверяется целочисленный MV, и издержки RD обозначаются как RDCost1. Если RDCost1 < th * RDCost0 (где th – положительная величина), то проверяется MV 4-pel; в противном случае MV 4-pel пропускается. В принципе, информация о движении, издержки RD и т.д. уже известны для MV 1/4 pel при проверке целочисленного MV или MV 4-pel, которые можно повторно использовать для ускорения процесса кодирования целочисленного MV или MV 4 pel.
2.2.3. Режим треугольного предсказания
Концепция режима треугольного предсказания (TPM) состоит во введении нового треугольного разбиения для предсказания с компенсацией движения. Как показано на фиг.13, он разбивает CU на две треугольные единицы предсказания, в диагональном или обратном диагональном направлении. Каждый модуль предсказания треугольной формы в CU интерпредсказывается с использованием своего собственного вектора движения уни-предсказания и индекса опорного кадра, которые получаются из списка кандидатов уни-предсказания. Процесс адаптивного взвешивания выполняется по отношению к диагональному краю после предсказания единиц треугольного предсказания. Затем процесс преобразования и квантования применяется ко всей CU. Следует отметить, что этот режим применяется только к режимам пропуска и слияния.
2.2.3.1 Список кандидатов уни-предсказания для TPM
Список кандидатов уни-предсказания состоит из пяти кандидатов векторов движения уни-предсказания. Он получен из семи соседних блоков, включая пять пространственных соседних блоков (1-5) и два временных совмещенных блока (6-7), как показано на фиг.14. Векторы движения семи соседних блоков собираются и помещаются в список кандидатов уни-предсказания в соответствии с порядком векторов движения уни-предсказания, вектора движения L0 векторов движения с би-предсказанием, вектора движения L1 векторов движения с би-предсказанием и усредненного вектора движения векторов движения L0 и L1 векторов движения би-предсказания. Если количество кандидатов меньше пяти, в список добавляется нулевой вектор движения.
Более конкретно, ниже приведены следующие этапы:
Получить кандидаты движения из A1, B1, B0, A0, B2, Col и Col2 (соответствующих блоку 1-7 на фиг.14) без каких-либо операций усечения.
Установить переменную numCurrMergeCand = 0
Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой уни-предсказание (либо из списка 0, либо из списка 1), он добавляется в список слияния с numCurrMergeCand, увеличенным на 1. Такие добавленные кандидаты движения называются "первоначально уни-предсказанными кандидатами".
Применяется полное усечение.
Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание, информация о движении из списка 0 добавляется в список слияния (то есть, изменяется на уни-предсказание из списка 0), и numCurrMergeCand увеличивается на 1. Такие добавленные кандидаты движения называются "предсказанным кандидатом из усеченного списка 0".
Применяется полное усечение.
Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание, информация о движении из списка 1 добавляется в список слияния (то есть, изменяется на уни-предсказание из списка 1), и numCurrMergeCand увеличивается на 1. Такие добавленные кандидаты движения называются "предсказанным кандидатом из усеченного списка 1".
Применяется полное усечение.
Для каждого кандидата движения, полученного из A1, B1, B0, A0, B2, Col и Col2, и numCurrMergeCand меньше 5, если кандидат движения представляет собой би-предсказание,
Если слайс QP опорного изображения из списка 0 меньше слайса QP опорного изображения из списка 1, информация о движении из списка 1 сначала масштабируется до списка 0 опорного изображения, и среднее значение двух MV (одно получается из первоначального списка 0, а другое представляет собой масштабированный MV из списка 1) добавляется в список слияния, который является усредненным уни-предсказанием из кандидата движения из списка 0 и numCurrMergeCand, увеличенного на 1.
В противном случае информация о движении из списка 0 сначала масштабируется до опорного изображения из списка 1, и среднее значение двух MV (одно получается из исходного списка 1, и другое представляет собой масштабированный MV из списка 0) добавляется в список слияния, который является усредненным уни-предсказанием из кандидата движения из списка 1, и numCurrMergeCand, увеличенного на 1.
Применяется полное усечение.
Если numCurrMergeCand меньше 5, добавляются кандидаты нулевого вектора движения.
2.2.3.2. Процесс адаптивного взвешивания
После предсказания каждой треугольной единицы предсказания процесс адаптивного взвешивания применяется к диагональному краю между двумя единицами треугольного предсказания, чтобы получить окончательное предсказание для всей CU. Две группы весовых коэффициентов определяются следующим образом:
1-я группа весовых коэффициентов: {7/8, 6/8, 4/8, 2/8, 1/8} и {7/8, 4/8, 1/8} используется для выборок яркости и цветности, соответственно;
2-я группа весовых коэффициентов: {7/8, 6/8, 5/8, 4/8, 3/8, 2/8, 1/8} и {6/8, 4/8, 2/8 } используется для выборок яркости и цветности, соответственно.
Группа весовых коэффициентов выбирается на основе сравнения векторов движения двух блоков треугольного предсказания. 2-ая группа весовых коэффициентов используется тогда, когда опорные изображения двух блоков треугольного предсказания отличаются друг от друга, или их разность векторов движения превышает 16 пикселей. В противном случае используется первая группа весовых коэффициентов. Пример показан на фиг.15.
2.2.3.3. Хранение вектора движения
Векторы движения (Mv1 и Mv2 на фиг.16) блоков треугольного предсказания хранятся в сетках 4×4. Для каждой сетки 4×4 сохраняется вектор движения либо с уни-предсказанием, либо с би-предсказанием, в зависимости от позиции сетки 4×4 в CU. Как показано на фиг.16, вектор движения с уни-предсказанием, Mv1 или Mv2, сохраняется для сетки 4×4, расположенной в невзвешенной области (то есть не на диагональном крае). С другой стороны, вектор движения с би-предсказанием сохраняется для сетки 4×4, расположенной во взвешенной области. Вектор движения с двунаправленным предсказанием получается из Mv1 и Mv2 в соответствии со следующими правилами:
В случае, когда Mv1 и Mv2 имеют вектор движения с разных направлений (L0 или L1), Mv1 и Mv2 просто объединяются для образования вектора движения с би-предсказанием.
В случае, когда как Mv1, так и Mv2 исходят из одного направления L0 (или L1),
Если опорное изображение Mv2 является таким же, как изображение в списке L1 (или L0) опорных изображений, Mv2 масштабируется до изображения Mv1. Mv1 и масштабированный Mv2 объединяются для образования вектора движения с би-предсказанием.
Если опорное изображение Mv1 является таким же, как изображение в списке L1 (или L0) опорных изображений, Mv1 масштабируется до изображения Mv2. Масштабированное Mv1 и Mv2 объединяются для образования вектора движения с би-предсказанием.
В противном случае для взвешенной области сохраняется только Mv1.
2.2.3.4. Сигнализация режима треугольного предсказания (TPM)
Сначала может быть просигнализирован однобитовый флаг для указания того, используется ли TPM. После этого дополнительно сигнализируются указания двух шаблонов разбиения (как показано на фиг.13) и выбранные индексы слияния для каждого из двух разбиений.
2.2.3.4.1 Сигнализация флага TPM
Обозначим ширину и высоту одного блока яркости W и H, соответственно. Если W*H < 64, режим треугольного предсказания отключен.
Когда один блок кодируется в аффинном режиме, режим треугольного предсказания также отключается.
Когда один блок кодируется в режиме слияния, однобитовый флаг может сигнализироваться для указания того, включен или отключен режим треугольного предсказания для блока.
Флаг кодируется с 3 контекстами на основе следующего уравнения:
Индекс Ctx = ((доступный левый блок L && L кодируется с помощью TPM?) 1: 0)
+ ((доступный вышеуказанный блок A && A кодируется с помощью TPM?) 1: 0);
2.2.3.4.2. Сигнализация указания двух шаблонов разбиения (как показано на фиг.13) и выбранных индексов слияния для каждого из двух разбиений
Следует отметить, что шаблоны разбиения, индексы слияния двух разбиений кодируются совместно. Ограничением является то, что два разбиения не могут использовать один и тот же опорный индекс. Таким образом, существует 2 (шаблона разбиения) * N (максимальное количество кандидатов слияния) * (N-1) возможных вариантов, где N установлено равным 5. Кодируется одно указание, выполняется отображение между типами разбиения, и два индекса слияния получаются из массива, определенного ниже:
const uint8_t g_TriangleCombination [TRIANGLE_MAX_NUM_CANDS] [3] = {
{0, 1, 0}, {1, 0, 1}, {1, 0, 2}, {0, 0, 1}, {0, 2, 0},
{1, 0, 3}, {1, 0, 4}, {1, 1, 0}, {0, 3, 0}, {0, 4, 0},
{0, 0, 2}, {0, 1, 2}, {1, 1, 2}, {0, 0, 4}, {0, 0, 3},
{0, 1, 3}, {0, 1, 4}, {1, 1, 4}, {1, 1, 3}, {1, 2, 1},
{1, 2, 0}, {0, 2, 1}, {0, 4, 3}, {1, 3, 0}, {1, 3, 2},
{1, 3, 4}, {1, 4, 0}, {1, 3, 1}, {1, 2, 3}, {1, 4, 1},
{0, 4, 1}, {0, 2, 3}, {1, 4, 2}, {0, 3, 2}, {1, 4, 3},
{0, 3, 1}, {0, 2, 4}, {1, 2, 4}, {0, 4, 2}, {0, 3, 4}};
Тип разбиения (45 градусов или 135 градусов) = g_TriangleCombination[просигнализированное указание][0];
Индекс слияния кандидата A = g_TriangleCombination[просигнализированное указание][1];
Индекс слияния кандидата B = g_TriangleCombination[просигнализированное указание][2].
Как только получены два кандидата A и B движения, информация о движении двух разбиений (PU1 и PU2) может быть установлена либо из A, либо из B. То, использует ли PU1 информацию о движении кандидата слияния A или B, зависит от направлений предсказания двух кандидатов движения. В таблице 1 представлены соотношения между двумя полученными кандидатами A и B движения при двух разбиениях.
Таблица 1. Получение информации о движении при разбиении от полученных двух кандидатов слияния (A, B)
2.2.3.4.3. Энтропийное кодирование указания (обозначенного merge_triangle_idx)
merge_triangle_idx находится в диапазоне [0, 39] включительно. Экспоненциальный код Голомба (EG) K-го порядка используется для бинаризации merge_triangle_idx, когда K установлен в 1.
EG k-ого порядка
Чтобы кодировать большие числа меньшим количеством битов (за счет использования большего количества битов для кодирования меньших чисел), это можно обобщить, используя неотрицательный целочисленный параметр k. Чтобы кодировать неотрицательное целое число x в экспоненциальном коде Голомба k-ого порядка:
кодировать с использованием экспоненциального кода Голомба 0-ого порядка, описанного выше, затем
кодировать x mod 2k в двоичном формате
Таблица 2: Примеры кодирования с использованием экспоненциального кода Голомба k-ого порядка
2.2.4. Компенсация движения перекрывающихся блоков
Компенсация движения перекрывающихся блоков (OBMC) ранее использовалась в H.263. В JEM, в отличие от H.263, OBMC можно включать и выключать, используя синтаксис на уровне CU. Когда OBMC используется в JEM, OBMC выполняется для всех границ блока компенсации движения (MC), кроме правой и нижней границ CU. Более того, она применяется как для компонентов яркости, так и для компонентов цветности. В JEM блок MC соответствует блоку кодирования. Когда CU кодируется в режиме под-CU (включает в себя слияние под-CU, аффинный режим и режим FRUC), каждый подблок CU является блоком MC. Чтобы обрабатывать границы CU единообразным образом, OBMC выполняется на уровне подблока для всех границ блока MC, где размер подблока устанавливается равным 4×4, как показано на фиг.18.
Когда OBMC применяется к текущему подблоку, помимо текущих векторов движения, векторы движения четырех связанных соседних подблоков, если они доступны и не идентичны текущему вектору движения, также используются для получения блока предсказания для текущего подблока. Эти многочисленные блоки предсказания на основе многочисленных векторов движения объединяются для выработки окончательного сигнала предсказания текущего подблока.
Блок предсказания, основанный на векторах движения соседнего подблока, обозначается как PN, где N указывает индекс для соседнего верхнего, нижнего, левого и правого подблоков, и блок предсказания на основе векторов движения текущего подблока обозначается как PC. Когда PN основан на информации о движении соседнего подблока, который содержит ту же информацию движения, что и текущий подблок, OBMC не выполняется из PN. В иных случаях каждая выборка PN добавляется к той же выборке в PC, то есть четыре строки/столбца PN добавляются в PC. Весовые коэффициенты {1/4, 1/8, 1/16, 1/32} используются для PN, и весовые коэффициенты {3/4, 7/8, 15/16, 31/32} используются для PC. Исключением являются маленькие блоки MC (то есть когда высота или ширина блока кодирования равна 4, или CU кодируется в режиме под-CU), для которых только две строки/столбца PN добавляются в PC. В этом случае весовые коэффициенты {1/4, 1/8} используются для PN, и весовые коэффициенты {3/4, 7/8} используются для PC. Для PN, выработанного на основе векторов движения соседнего по вертикали (по горизонтали) подблока, выборки в той же строке (столбце) PN добавляются в PC с тем же весовым коэффициентом.
В JEM для CU с размером, меньшим или равным 256 выборкам яркости, сигнализируется флаг уровня CU для того, чтобы указать, применяется или нет OBMC для текущей CU. Для CU размером более 256 выборок яркости или не закодированных в режиме AMVP по умолчанию применяется OBMC. В кодере, когда OBMC применяется для CU, его влияние учитывается на этапе оценки движения. Сигнал предсказания, сформированный OBMC с использованием информации о движении верхнего соседнего блока и левого соседнего блока, используется для компенсации верхней и левой границ исходного сигнала текущей CU, и затем применяется нормальный процесс оценки движения.
2.2.5. Компенсация локальной освещенности
Компенсация локальной освещенности (LIC) основана на линейной модели для изменений освещенности с использованием коэффициента масштабирования a и смещения b, и она включается или выключается адаптивно для каждой единицы кодирования (CU), кодированной в режиме внешне кодирования.
Когда LIC применяется для CU, способ наименьших квадратов ошибок используется для получения параметров a и b с использованием соседних выборок текущей CU и их соответствующих опорных выборок. Более конкретно, как показано на фиг.19, в опорном изображении используются субдискретизированные (с субдискретизацией 2:1) соседние выборки CU и соответствующие выборки (идентифицированные с помощью информации о движении текущей CU или под-CU). Параметры IC получаются и применяются отдельно для каждого направления предсказания.
Когда CU кодируется в режиме слияния, флаг LIC копируется из соседних блоков аналогично копированию информации о движении в режиме слияния; в противном случае для CU сигнализируется флаг LIC, чтобы указать, применяется или нет LIC.
Когда LIC включена для изображения, необходима дополнительная проверка RD на уровне CU, чтобы определить, применяется или нет LIC для CU. Когда LIC включена для CU, для поиска движения целочисленного пикселя и поиска движения дробного пикселя вместо SAD и SATD используются, соответственно, средняя-удаленная сумма абсолютной разности (MR-SAD) и средняя-удаленная сумма абсолютной разности, полученной с помощью преобразования Адамара (MR-SATD).
Чтобы снизить сложность кодирования, в JEM применяется следующая схема кодирования.
LIC отключается для всего изображения, когда нет очевидного изменения освещенности между текущим изображением и его опорными изображениями. Для того, чтобы определить эту ситуацию, в кодере вычисляются гистограммы текущего изображения и каждого опорного изображения текущего изображения. Если разность гистограмм между текущим изображением и каждым опорным изображением текущего изображения меньше заданного порога, LIC отключается для текущего изображения; в противном случае LIC включается для текущего изображения.
2.2.6. Предсказание компенсации аффинного движения
В HEVC для предсказания компенсации движения (MCP) применяется только модель поступательного движения. В реальном мире существует множество видов движения, например, увеличение/уменьшение, поворот, перспективные движения и другие виды неравномерного движения. В JEM применяется упрощенное предсказание компенсации движения с аффинным преобразованием. Как показано на фиг.20, аффинное поле движения блока описывается двумя векторами движения контрольной точки.
Векторное поле (MVF) движения блока описывается следующим уравнением:
(1-a)
Для 6-парметрического аффинного кандидата
(1-b)
где (v0x, v0y) – вектор движения контрольной точки в верхнем левом углу, (v1x, v1y) – вектор движения контрольной точки в верхнем правом углу, и (v2x, v2y) – вектор движения контрольной точки в нижнем левом углу, (x, y) представляет координату репрезентативной точки относительно левой верхней выборки в текущем блоке. В VTM репрезентативная точка определяется как центральная позиция подблока, например, когда координата левого верхнего угла подблока относительно верхней левой выборки в текущем блоке равна (xs, ys), координата репрезентативной точки определяется как (xs+2, ys+2).
Для дальнейшего упрощения предсказания компенсации движения применяется предсказание аффинного преобразования на основе подблоков. Размер подблока получается, как в уравнении (2), где MvPre – точность доли вектора движения (1/16 в JEM), (v2x, v2y) – вектор движения нижней левой контрольной точки, вычисленный согласно уравнению (1).
(2)
После получения M и N из уравнения (2), они должны быть скорректированы в сторону уменьшения, если необходимо сделать их делителями w и h, соответственно.
Чтобы получить вектор движения каждого подблока M×N, вектор движения центральной выборки каждого подблока, как показано на фиг.21, вычисляется в соответствии с уравнением (1) и округляется до точности доли 1/16. Затем интерполяционные фильтры компенсации движения, упомянутые в данном документе, применяются для выработки предсказания каждого подблока с полученным вектором движения.
После MCP вектор движения высокой точности каждого подблока округляется и сохраняется с той же точностью, что и нормальный вектор движения.
2.2.6.1. Режим AF_INTER
В JEM существует два режима аффинного движения: режим AF_INTER и режим AF_MERGE. Для CU с шириной и высотой больше 8 может применяться режим AF_INTER. В битовом потоке сигнализируется аффинный флаг на уровне CU, чтобы указать, используется ли режим AF_INTER. В этом режиме список кандидатов с парой векторов движения создается с использованием соседних блоков. Как показано на фиг.23, выбирается из векторов движения блока A, B или C. Вектор движения из соседнего блока масштабируется в соответствии со списком опорных изображений и соотношением между POC опорного изображения для соседнего блока, POC опорного изображения для текущей CU и POC текущей CU. Подход к выбору из соседнего блока D и E является аналогичным. Если количество списков кандидатов меньше 2, список дополняется парой векторов движения, составленной путем дублирования каждого из кандидатов AMVP. Когда список кандидатов больше 2, кандидаты сначала сортируются в соответствии с совместимостью соседних векторов движения (например, на основе подобия двух векторов движения в паре кандидатов), и сохраняются только первые два кандидата. Проверка издержек RD используется для определения, какой кандидат из пары векторов движения выбран в качестве предсказания вектора движения контрольной точки (CPMVP) текущей CU. Индекс, указывающий позицию CPMVP в списке кандидатов, сигнализируется в битовом потоке. После определения CPMVP текущей аффинной CU применяется оценка аффинного движения и определяется вектор движения контрольной точки (CPMV). Затем разность CPMV и CPMVP сигнализируется в битовом потоке.
В режиме AF_INTER, когда используется 4-/6-параметрический аффинный режим, требуются 2/3 контрольных точки, и, следовательно, 2/3 MVD должны быть кодированы для этих контрольных точек, как показано на фиг.22. Предлагается получать MV следующим образом, то есть mvd1 и mvd2 предсказываются из mvd0.
где , mvdi и mv1 представляют собой предсказываемый вектор движения, разность векторов движения и вектор движения верхнего левого пикселя (i = 0), верхнего правого пикселя (i = 1) или левого нижнего пикселя (i = 2.), соответственно, как показано на фиг.22 (b). Следует отметить, что сложение двух векторов движения (например, mvA(xA, yA) и mvB(xB, yB)) равно суммированию двух компонентов по отдельности, то есть newMV = mvA + mvB, и два компонента newMV устанавливаются в (xA + xB) и (yA + yB), соответственно.
2.2.6.2. Режим AF_MERGE
Когда CU применяется в режиме AF_MERGE, она получает первый блок, кодированный в аффинном режиме, из действительных соседних восстановленных блоков. Как показано на фиг.24a, порядок выбора для блока-кандидата представляет собой следующее: слева, сверху, сверху справа, слева снизу, сверху слева. Если соседний левый нижний блок A кодирован в аффинном режиме, как показано на фиг.24b, вычисляются векторы движения , и в верхнем левом углу, верхнем правом углу и левом нижнем углу блока CU, который содержит блок A. И вектор движения в верхнем левом углу текущей CU вычисляется согласно , и . Во-вторых, вычисляется вектор движения в правом верхнем углу текущей CU.
После того, как получены CPMV текущей CU и , в соответствии с уравнением (1) упрощенной модели аффинного движения, вырабатывается MVF текущей CU. Чтобы определить, кодирована ли текущая CU в режиме AF_MERGE, в битовом потоке сигнализируется аффинный флаг в том случае, когда имеется по меньшей мере один соседний блок, кодированный в аффинном режиме.
Список кандидатов аффинного слияния создается на следующих этапов:
Вставить унаследованные аффинные кандидаты
Унаследованный аффинный кандидат означает, что кандидат получен из модели аффинного движения его действительного соседнего аффинного кодированного блока. В общем случае, как показано на фиг.25, порядок сканирования позиций кандидатов является следующим: A1, B1, B0, A0 и B2.
После того, как кандидат получен, выполняется процесс полного усечения, чтобы проверить, был ли вставлен в список одинаковый кандидат. Если одинаковый кандидат существует, полученный кандидат отбрасывается.
Вставить построенные аффинные кандидаты
Если количество кандидатов в списке кандидатов аффинного слияния меньше, чем MaxNumAffineCand (в этом сообщении установлено значение 5), построенные аффинные кандидаты вставляются в список кандидатов. Фраза "построенный аффинный кандидат" означает, что кандидат создается путем объединения информации о движении соседей каждой контрольной точки.
Информация о движении для контрольных точек сначала получается из указанных пространственных соседей и временных соседей, показанных на фиг.25. CPk (k = 1, 2, 3, 4) представляет собой k-ю контрольную точку. A0, A1, A2, B0, B1, B2 и B3 – пространственные позиции для предсказания CPk (k = 1, 2, 3); T – временная позиция для предсказания CP4.
Координаты CP1, CP2, CP3 и CP4 представляют собой (0, 0), (W, 0), (H, 0) и (W, H), соответственно, где W и H – ширина и высота текущего блока.
Информация о движении каждой контрольной точки получается в соответствии со следующим порядком приоритета:
Для CP1 приоритетом проверки является B2->B3-> A2. B2 используется, если он доступен. В противном случае, если B2 не доступен, используется B3. Если одновременно недоступны B2 и B3, используется A2. Если все три кандидата недоступны, информация о движении CP1 не может быть получена.
Для CP2 приоритетом проверки является B1-> B0.
Для CP3 приоритетом проверки является A1-> A0.
Для CP4 используется T.
Во-вторых, комбинации контрольных точек используются для построения аффинного кандидата слияния.
Информация о движении трех контрольных точек необходима для построения 6-параметрического аффинного кандидата. Три контрольные точки можно выбрать из одной из следующих четырех комбинаций ({CP1, CP2, CP4}, {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}). Комбинации {CP1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4} будут преобразованы в 6-параметрическую модель движения, представленную верхней левой, верхней правой и нижней левой контрольными точками.
Информация о движении двух контрольных точек необходима для построения 4-параметрического аффинного кандидата. Две контрольные точки можно выбрать из одной из следующих шести комбинаций ({CP1, CP4}, {CP2, CP3}, {CP1, CP2}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4}). Комбинации {CP1, CP4}, {CP2, CP3}, {CP2, CP4}, {CP1, CP3}, {CP3, CP4} будут преобразованы в 4-параметрическую модель движения, представленную верхней левой и верхней правой контрольными точками.
Комбинации построенных аффинных кандидатов вставляются в список кандидатов в следующем порядке:
{CP1, CP2, CP3}, {CP1, CP2, CP4}, {CP1, CP3, CP4}, {CP2, CP3, CP4}, {CP1, CP2}, {CP1, CP3}, {CP2, CP3}, {CP1, CP4}, {CP2, CP4}, {CP3, CP4}
Для контрольного списка X (X равен 0 или 1) комбинации контрольный индекс с наивысшим коэффициентом использования в контрольных точках выбирается в качестве контрольного индекса списка X, и векторы движения, которые указывают на разностное опорное изображение, будут масштабированы.
После того, как кандидат получен, выполняется процесс полного усечения, чтобы проверить, был ли вставлен в список одинаковый кандидат. Если одинаковый кандидат существует, полученный кандидат отбрасывается.
Заполнение нулевыми векторами движения
Если количество кандидатов в списке кандидатов аффинного слияния меньше 5, нулевые векторы движения с нулевыми опорными индексами вставляются в список кандидатов то тех пор, пока не будет заполнен список.
2.2.7. Двунаправленный оптический поток
Двунаправленный оптический поток (BIO) представляет собой уточнение движения по выборкам, которое выполняется поверх поблочной компенсации движения для би-предсказания. Уточнение движения на уровне выборки не использует сигнализацию.
Пусть I(k) будет значением яркости из опорного изображения k (k=0, 1) после компенсации движения блока, и обозначим и как горизонтальные и вертикальные составляющие градиента I(k), соответственно. Предполагая, что оптический поток является действительным, векторное поле движения задается уравнением
(3)
Объединение этого уравнения оптического потока с эрмитовой интерполяцией для траектории движения каждой выборки приводит к уникальному полиному третьего порядка, который соответствует как значениям I(k) функции, так и производным и на концах. Значение этого полинома при t=0 является предсказанием BIO:
(3)
В данном документе и обозначают расстояния до опорных кадров, как показано на фиг.26. Расстояния и вычисляются на основе POC для Ref0 и Ref1: τ0=POC(текущий) − POC(Ref0), τ1= POC(Ref1) − POC(текущий). Если оба предсказания исходят из одного и того же временного направления (либо из прошлого, либо из будущего), то знаки являются разными (то есть ). В этом случае BIO применяется только в тех случаях, когда предсказание не относится к одному и тому же моменту времени (то есть ), обе упомянутые области имеют ненулевое движение (), и векторы движения блоков пропорциональны временному расстоянию ().
Векторное поле движения определяется путем минимизации разности между значениями в точках А и В (в точках пересечения траекторий движения и плоскостей опорных кадров на фиг.9). Модель использует только первый линейный член локального разложения Тейлора для :
(5)
Все значения в уравнении (5) зависят от местоположения выборки, которое до сих пор было опущено в обозначениях. Предполагая, что движение согласовано в локальной окружающей области, мы минимизируем квадратное окно размером (2M+1)×(2M+1) с центром в текущей предсказанной точке , где M равно 2:
(6)
Для этой задачи оптимизации JEM использует упрощенный подход, выполняя сначала минимизацию в вертикальном направлении, а затем в горизонтальном направлении. Это приводит к уравнению:
(7)
(8)
где,
(9)
Во избежание деления на ноль или на очень маленькое значение в уравнения (7) и (8) вводятся параметры регуляризации r и m.
(10)
(11)
Здесь – битовая глубина выборок видео.
Чтобы сохранить доступ к памяти для BIO таким же, как для регулярной компенсации движения с би-предсказанием, все значения предсказания и градиентов вычисляются только для позиций внутри текущего блока. В уравнении (9) квадратное окно размером (2M+1)×(2M+1) с центром в текущей предсказываемой точке на границе предсказываемого блока необходимо для доступа к позициям за пределами блока (как показано на фиг.27(a)). В JEM значения вне блока устанавливаются равными ближайшему доступному значению внутри блока. Например, его можно реализовать в виде заполнения, как показано на фиг.27(b).
При использовании BIO возможно, что поле движения может быть уточнено для каждой выборки. Чтобы уменьшить вычислительную сложность, в JEM используется блочная конструкция BIO. Уточнение движения рассчитывается на основе блока 4×4. В блочном BIO значения sn в уравнении (9) для всех выборок в блоке 4×4 агрегируются, и затем агрегированные значения sn используются для смещения полученных векторов движения BIO для блока 4×4. Более конкретно, для получения BIO на основе блоков используется следующая формула:
(12)
где bk обозначает набор выборок, принадлежащих k-му блоку 4×4 предсказанного блока. sn в уравнениях (7) и (8) заменяются на ((sn,bk) >> 4) для получения ассоциированных смещений вектора движения.
В некоторых сценариях многочисленные MV BIO могут быть ненадежными из-за шума или нерегулярного движения. Таким образом, в BIO величина многочисленных MV ограничена пороговым значением thBIO. Пороговое значение определяется на основе того, поступают ли с одного направления все опорные изображения текущего изображения. Если все опорные изображения текущего изображения поступают с одного направления, значение порога устанавливается равным ; в иных случаях устанавливается значение .
Градиенты для BIO вычисляются одновременно с интерполяцией компенсации движения с использованием операций, соответствующих процессу компенсации движения HEVC (2D разделяемый FIR). Входным сигналом для этого 2D разделяемого FIR является такая же выборка опорного кадра, как для процесса компенсации движения и дробной позиции (fracX, fracY) согласно дробной части вектора движения блока. В случае сигнала горизонтального градиента, он сначала интерполируется по вертикали с использованием BIOfilterS, соответствующего дробной позиции fracY со сдвигом демасштабирования d−8, затем градиентный фильтр BIOfilterG применяется в горизонтальном направлении, соответствующем дробной позиции fracX со сдвигом демасштабирования 18−d. В случае вертикального градиента , сначала применяется градиентный фильтр по вертикали с использованием BIOfilterG, соответствующего дробной позиции fracY со сдвигом демасштабирования d−8, затем выполняется смещение сигнала с использованием BIOfilterS в горизонтальном направлении, соответствующего дробной позиции fracX со сдвигом демасштабирования 18−d. Длина интерполяционного фильтра для вычисления градиентов BIOfilterG и смещения BIOfilterF сигнала является более короткой (имеет 6 отводов) для того, чтобы поддерживать сложность на приемлемом уровне. В таблице 3 указаны фильтры, используемые для вычисления градиентов для различных дробных позиций вектора движения блока в BIO. В таблице 4 указаны интерполяционные фильтры, используемые для выработки сигнала предсказания в BIO.
Таблица 3. Фильтры для вычисления градиентов в BIO
Таблица 4. Интерполяционные фильтры для выработки сигнала предсказания в BIO
В JEM BIO применяется ко всем блокам с би-предсказанием, когда два предсказания получаются из разных опорных изображений. Когда LIC включена для CU, BIO отключен.
В JEM OBMC применяется для блока после нормального процесса MC. Чтобы уменьшить вычислительную сложность, BIO не применяется во время процесса OBMC. Это означает, что BIO применяется только в процессе MC для блока тогда, когда используется его собственный MV, и не применяется в процессе MC тогда, когда во время процесса OBMC используется MV соседнего блока.
2.2.8. Уточнение вектора движения на стороне декодера
В операции би-предсказания для предсказания одной области блока два блока предсказания, сформированные с использованием вектора движения (MV) из списка 0 (list0) и MV из списка 1 (list1), соответственно, объединяются для формирования единого сигнала предсказания. В способе уточнения вектора движения на стороне декодера (DMVR) два вектора движения би-предсказания дополнительно уточняются в процессе двустороннего согласования с шаблоном. Двустороннее согласование с шаблоном применяется в декодере для выполнения поиска на основе искажения между двусторонним шаблоном и восстанавливаемыми выборками в опорных изображениях для того, чтобы получить уточненный MV без передачи дополнительной информации о движении.
В DMVR двусторонний шаблон вырабатывается в виде взвешенной комбинации (то есть усредненной) из двух блоков предсказания, из начального MV0 из list0 и MV1 из list1, соответственно, как показано на фиг.28. Операция согласования с шаблоном состоит из вычисления меры издержек между выработанным шаблоном и областью выборки (вокруг начального блока предсказания) в опорном изображении. Для каждого из двух опорных изображений MV, который имеет минимальные издержки шаблона, считается обновленным MV из этого списка для замены исходного. В JEM для каждого списка отыскивается девять кандидатов MV. Девять кандидатов MV включают в себя исходный MV и 8 окружающих MV со смещением одной выборки яркости относительно исходного MV либо в горизонтальном, либо в вертикальном направлении, либо в обоих направлениях. Наконец, два новых MV, то есть MV0’и MV1’, как показано на фиг.28, используются для выработки окончательных результатов би-предсказания. Сумма абсолютных разностей (SAD) используется в качестве меры издержек. Следует отметить, что при вычислении издержек блока предсказания, выработанного одним окружающим MV, округленный MV (до целого числа pel) фактически используется для получения блока предсказания вместо реального MV.
DMVR применяется для режима слияния би-предсказания с одним MV из опорного изображения в прошлом и другим MV из опорного изображения в будущем без передачи дополнительных элементов синтаксиса. В JEM, когда LIC, аффинное движение, FRUC или кандидат слияния суб-CU включены для CU, DMVR не применяется.
Предсказание вектора движения на основе LUT, базирующееся на раскрытой технологии, которая позволяет улучшить как существующие, так и будущие стандарты кодирования видео, поясняется на следующих примерах, описанных для различных реализаций. Так как LUT позволяют выполнять процесс кодирования/декодирования на основе исторических данных (например, блоков, которые были обработаны), предсказание вектора движения на основе LUT также может называться способом предсказания вектора движения на основе истории (HMVP). В способе предсказания вектора движения на основе LUT во время процесса кодирования/декодирования ведутся одна или несколько таблиц с информацией о движении из ранее кодированных блоков. Эти кандидаты движения, хранящиеся в LUT, называются кандидатами HMVP. Во время кодирования/декодирования одного блока ассоциированная информация о движении в LUT может добавляться в списки кандидатов движения (например, в списки кандидатов слияния/AMVP) и после кодирования/декодирования одного блока LUT может обновляться. Затем обновленные LUT используются для кодирования последующих блоков. Таким образом, обновление кандидатов движения в LUT основано на порядке кодирования/декодирования блоков. Приведенные ниже примеры следует рассматривать как примеры, объясняющие общие концепции. Эти примеры не следует толковать в узком смысле. Кроме того, эти примеры можно комбинировать любым способом.
3. Примеры проблем, решаемых с помощью вариантов осуществления
В конфигурации треугольного разбиения один блок может быть разделен на два разбиения. Чтобы сэкономить пропускную способность памяти из-за компенсации движения, необходимо, чтобы два разбиения были уни-предсказуемыми. В процессе компенсации движения би-предсказание используется для диагонального края, и уни-предсказание используется для всех остальных частей. Если для каждого разбиения разрешено би-предсказание, то выборки, расположенные на диагональном крае, будут иметь четыре MV: два из одного разбиения и два из другого разбиения. У такой конфигурации имеются следующие проблемы:
В процессе создания списка слияния проверяются только пространственные соседние блоки и временные блоки.
Технология предсказания вектора движения на основе истории не разрешена для треугольного разбиения.
Как обращаться с режимом треугольного разбиения в режиме внутриблочного копирования неизвестно.
4. Примеры вариантов осуществления
Предложенные технологии могут быть применены к любым неквадратным/непрямоугольным разбиениям, например, к геометрическим разбиениям. В последующем описании мы используем "режим треугольного разбиения", чтобы представить его в качестве примера режима неквадратного/непрямоугольного разбиения (TPM). Следует отметить, что могут применяться и другие виды разбиений.
Технологии, подробно изложенные ниже, следует рассматривать как примеры для объяснения общих концепций. Эти технологии не следует толковать в узком смысле. Кроме того, эти технологии согласно изобретению могут быть объединены любым способом. Обозначим размер блока как W×H.
1. Вместо того, чтобы всегда применять режим треугольного предсказания с режимом слияния, предлагается включить режим треугольного предсказания для внутренне кодированных блоков или внешне кодированных блоков без слияния.
а) В одном примере два разбиения предсказываются в разных режимах внешнего предсказания.
b) Кроме того, альтернативно могут быть дополнительно отфильтрованы значения предсказания выборок вдоль краевых границ.
c) В одном примере информация о движении (такая как MV) двух треугольных разбиений не может предсказать друг друга;
i) Альтернативно информация о движении (например, MV) одного треугольного разбиения может использоваться для предсказания другого разбиения.
2. Предлагается, что, когда один блок разделен на два геометрических разбиения, одно разбиение можно кодировать в режиме внешнего предсказания, и другое разбиение можно кодировать в режиме внешнего предсказания.
а) В одном примере для разбиения с внешне кодированием может также применяться би-предсказание.
b) В одном примере такой способ может быть просигнализирован тогда, когда текущий блок закодирован в режиме слияния, то есть для внешне кодированного разбиения информация о движении сигнализируется с помощью индекса слияния.
c) Кроме того, в качестве альтернативы, могут быть дополнительно отфильтрованы значения предсказания выборок вдоль краевых границ.
d) В одном примере может применяться только поднабор режимов внешнего предсказания.
i) Поднаборы для двух разбиений могут быть разными.
ii) Поднаборы могут зависеть от позиции разбиения.
iii) Поднаборы могут зависеть от размера блока и/или формы блока.
3. Как описано в пп.1 и 2, внешне кодированный блок со слиянием или без слияния может использовать текущее изображение в качестве опорного изображения.
4. Предлагается, чтобы при кодировании одного блока в режиме треугольного разбиения внешне/внутренне кодированная информация несмежных пространственных блоков также могла бы рассматриваться в качестве предикторов для кодирования текущего блока.
а) В одном примере может использоваться информация о движении несмежных пространственных блоков.
b) В одном примере может использоваться режим внешнего предсказания несмежных пространственных блоков.
c) В качестве альтернативы, кодированная информация временных блоков может дополнительно использоваться для кодирования одного блока с TPM.
5. Предлагается добавлять кандидаты движения, полученные из кандидатов HMVP, в процессе создания списка слияния для TPM-кодированных блоков, где кандидат HMVP (предсказание вектора движения на основе истории) является информацией о движении, унаследованной или полученной из ранее кодированных блоков.
Ведение таблиц для хранения кандидатов HMVP
а) Ведение кандидатов HMVP и/или обновление таблиц для хранения и/или кандидатов HMVP может быть таким же, как HMVP для нормального вектора движения.
b) В одном примере для хранения кандидатов HMVP можно вести одну и ту же таблицу, которая может использоваться как для не-TPM-кодированных блоков, так и для TPM-кодированных блоков.
i) В одном примере информация о движении, используемая TPM, не помещается в хранилище HMVP. Таблицы HMVP не обновляются после кодирования/декодирования TPM-кодированного блока.
c) В одном примере отдельные таблицы можно вести для хранения кандидатов HMVP для кодирования TPM-кодированных блоков.
i) Таблицы можно вести для хранения кандидатов HMVP с информацией о движении исключительно из TPM-кодированных блоков.
ii) Две таблицы можно вести для хранения уни- и би-предсказанных кандидатов HMVP, соответственно.
iii) Две таблицы можно вести для хранения информации о движении первого и второго разбиений, соответственно.
iv) Две таблицы можно вести для хранения информации о движении из списка 0 и списка 1 информации о движении, соответственно.
v) В качестве альтернативы, три таблицы можно вести для хранения уни-предсказанных кандидатов из списка 0, уни-предсказанных кандидатов из L1 и би-предсказанных кандидатов HMVP, соответственно.
d) После кодирования с помощью TPM-кодированного блока таблицы для хранения кандидатов HMVP могут не обновляться.
i) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении первого разбиения.
ii) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении второго разбиения.
iii) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении из обоих разбиений путем добавления двух кандидатов HMVP.
iv) В качестве альтернативы, одна/несколько таблиц для хранения кандидатов HMVP могут обновляться информацией о движении из обоих разбиений путем добавления одного кандидата HMVP (например, когда два разбиения предсказаны из двух списков опорных изображений).
v) То, добавить ли один или два кандидата движения в таблицу HMVP, может зависеть от того, предсказаны ли два разбиения из одних и тех же списков опорных изображений и/или одного и того же опорного изображения.
vi) То, добавить ли информацию о движении первого или второго разбиения в таблицу HMVP, может зависеть от разницы POC между опорными изображениями и текущим изображением.
е) Когда отдельные таблицы хранятся для кодирования TPM-кодированных блоков и не-TPM- кодированных блоков, обновление таблиц может быть вызвано на основе режима одного блока.
i) В одном примере после декодирования TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования TPM-кодированных блоков.
ii) В одном примере после декодирования не-TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования не-TPM-кодированных блоков.
iii) Кроме того, в качестве альтернативы, после декодирования не-TPM-кодированного блока, информация о движении может использоваться для обновления таблицы для кодирования TPM-кодированных блоков.
Использование кандидатов HMVP в TPM-кодированных блоках
f) Кандидат HMVP может быть напрямую добавлен в список слияния для TPM-кодированных блоков.
i) В качестве альтернативы, один кандидат HMVP может использоваться для получения двух кандидатов движения, например, один представляет собой уни-предсказание с информацией о движении из списка 0, и другой - с уни-предсказанием с информацией о движении из списка 1 кандидата HMVP.
ii) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с другими кандидатами движения, полученными/унаследованными от пространственных или временных блоков.
iii) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с кандидатом движения, полученным/унаследованным от другого кандидата HMVP.
iv) Усечение может применяться при вставке кандидата движения, полученного/унаследованного от кандидата HMVP, с другим кандидатом движения, полученным/унаследованным от одного и того же кандидата HMVP.
g) В одном примере один или несколько кандидатов движения, полученных из одного или множества кандидатов HMVP, могут быть добавлены после кандидатов движения, полученных из пространственных и/или временных блоков, таких как блок 1-7, показанный на фиг.14. В этом случае кандидат HMVP обрабатывается таким же образом, как и другие кандидаты пространственного/временного слияния.
h) Кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния сразу после или перед конкретным этапом в процессе создания списка слияния, который основан на информации о движении пространственных/временных блоков.
i) В качестве альтернативы, кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния сразу после или перед несколькими заданными этапами.
ii) В одном примере один или несколько кандидатов HMVP с уни-предсказанием могут быть добавлены сразу после всех первоначально предсказанных кандидатов с текущей конфигурацией.
iii) В одном примере один или несколько кандидатов HMVP с уни-предсказанием из L0 или би-предсказанием могут быть добавлены сразу после всех предсказанных кандидатов из усеченного списка 0. Кроме того, в качестве альтернативы, если кандидат HMVP имеет би-предсказание, храниться может только информация о движении из списка 0.
iv) В одном примере один или несколько кандидатов HMVP с уни-предсказанием из L1 или би-предсказанием могут быть добавлены сразу после всех предсказанных кандидатов из усеченного списка 1. Кроме того, в качестве альтернативы, если кандидат HMVP имеет би-предсказание, храниться может только информация о движении из списка 1.
v) В одном примере один или несколько кандидатов HMVP могут быть добавлены сразу после всего усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.
vi) В одном примере один или несколько кандидатов HMVP могут быть добавлены сразу перед всем усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.
i) Кандидаты движения, унаследованные/полученные из кандидатов HMVP, могут быть добавлены в список слияния с чередованием с кандидатами движения, унаследованными/полученными из информации о движении пространственных/временных блоков.
j) В одном примере кандидаты движения, полученные из списка 0 и списка 1 каждого кандидата HMVP, могут быть добавлены по порядку перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP.
k) В одном примере кандидаты движения, полученные из списка 0 первого набора кандидатов HMVP, могут быть добавлены по порядку перед теми кандидатами движения, которые были получены из списка 1 второго набора кандидатов HMVP.
i) В одном примере первый набор и второй набор представляют собой один и тот же набор, то есть все доступные кандидаты HMVP.
ii) В качестве альтернативы, первый набор и второй набор могут быть разными, например, первый набор кандидатов HMVP включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием; в то время как второй набор кандидатов HMVP включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.
iii) Количество кандидатов HMVP, ассоциированных с первым и вторым наборами, может быть разным.
l) Кандидаты HMVP из списка LX могут сначала масштабироваться до списка L(1-X) и затем использоваться для списка L(1-X).
i) Масштабированные кандидаты могут быть вставлены после всех других кандидатов.
ii) Масштабированные кандидаты могут быть вставлены после всех других кандидатов, кроме временных кандидатов.
m) Порядок проверки кандидатов HMVP, которые должны использоваться для получения кандидатов движения, которые будут добавлены в список слияния TPM, может зависеть от индексов кандидатов HMVP.
i) В качестве альтернативы, этот порядок может зависеть от направлений предсказания.
ii) В качестве альтернативы, это порядок может зависеть от информации о движении.
6. Количество HMVP для проверки в процессе создания списка слияния TPM может быть определено заранее, например, 5.
а) Количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, может зависеть от размера блока/формы блока/количества доступных кандидатов перед проверкой кандидатов HMVP.
b) Количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, может сигнализироваться в SPS/VPS/PPS/заголовке изображения/заголовке слайса/заголовке группы тайлов/строках CTU/CTU/группе CTU.
c) Когда часть доступных кандидатов HMVP должна быть проверена в процессе создания списка слияния в TPM, выбор кандидатов HMVP может зависеть от направления предсказания/информации MV/индекса опорного изображения/расстояний POC опорного изображения и текущего изображения кандидата и/или индекса кандидата.
7. То, применять ли и как применять HMVP к TPM-кодированному блоку, может зависеть от размера блока (например, ширины и/или высоты, соотношения ширины и высоты) или формы блока (например, квадратной или неквадратной).
8. Предложенные способы могут быть также применимы к другим типам списков кандидатов движения (например, к списку AMVP) для геометрических разбиений.
9. Размер таблицы HMVP (то есть может быть сохранено максимальное количество кандидатов движения на основе истории) может зависеть от функции одного или множества размеров списка кандидатов движения.
а) В одном примере размер таблицы HMVP может зависеть от размера регулярного списка слияния, размера списка слияния TPM, размера списка слияния IBC, размера регулярного списка интер-AMVP, размера регулярного списка интер-IBC и т.д.
b) В одном примере размер таблицы HMVP может зависеть от тех списков кандидатов движения, которые обращаются к одной и той же таблице HMVP.
c) В одном примере функция может быть функцией Max(значения входных параметров), которая возвращает максимальное значение среди множества значений входных параметров.
d) В одном примере размер таблицы HMVP может быть определен как Max(размер регулярного списка слияния минус K0, размер списка слияния TPM минус K1, размер списка слияния IBC минус K2).
i) В одном примере K0 = K1 = K2 = 1.
10. Размер таблицы HMVP (то есть может быть сохранено максимальное количество кандидатов движения на основе истории) может зависеть от функции одного или большего количества кандидатов HMVP (обозначенных numHMVP), которые могут быть добавлены в списки кандидатов движения.
а) В одном примере этот размер таблицы HMVP может зависеть от количества кандидатов HMVP, которые могут быть добавлены в списки кандидатов движения (например, регулярный список слияния, список слияния TPM, список слияния IBC, регулярный список интер-AMVP, регулярный список интер-IBC и т.д.).
b) В одном примере функция может быть функцией Max(значения входных параметров), которая возвращает максимальное значение среди множества значений входных параметров.
c) В одном примере размер таблицы HMVP может быть определен как Max(numHMVP для регулярного списка слияния минус K0, numHMVP для регулярного списка AMVP минус K1).
ii) В одном примере K0 = 1, и K1 = 0.
d) В одном примере размер таблицы HMVP может быть определен как Max(numHMVP для регулярного списка слияния минус K0, numHMVP для списка слияния TPM минус K1, numHMVP для размера списка слияния IBC минус K2).
iii) В одном примере K0 = K1 = K2 = 1.
11. Размер таблицы HMVP для одного режима кодирования может отличаться от размера таблицы HMVP для другого режима кодирования и может зависеть от размера списка кандидатов движения.
а) В одном примере размер таблицы HMVP для списков регулярного слияния и слияния TPM может зависеть от размера регулярного списка слияния.
iv) В одном примере размер таблицы HMVP может быть равен размеру регулярного списка слияния минус K0, например, K0 = 1.
b) В одном примере размер таблицы HMVP для списков регулярного слияния и слияния TPM может зависеть от размера регулярного списка слияния и размера списка слияния TPM.
v) В одном примере размер таблицы HMVP может быть определен как Max(размер регулярного списка слияния минус K0, размер списка слияния TPM минус K1).
vi) В одном примере таблица HVMP для нормального интер-AMVP следует за таблицей, которая используется для списков регулярного слияния и слияния TPM.
c) В одном примере размер таблицы HMVP для блоков, кодированных IBC, зависит от этого размера для регулярного списка слияния и/или списка слияния TPM.
vii) Например, размер таблицы HMVP для блоков, кодированных IBC, равен размеру для регулярного списка слияния и/или списка слияния TPM.
viii) В качестве альтернативы, размер таблицы HMVP для блоков слияния/AVMP с кодированием IBC может зависеть от размера списка кандидатов слияния IBC/AMVP.
d) Указания размеров таблицы HMVP могут передаваться в битовом потоке.
ix) Когда просигнализированный размер равен 0, кандидаты HMVP не вставляются ни в какие списки кандидатов движения.
x) В одном примере размер таблицы HMVP не может быть равен 0.
xi) В качестве альтернативы, сигнализируется размер таблицы HMVP минус K0, например, K0 = 1.
12. Указания количества разрешенных кандидатов HMVP, которые могут быть добавлены в списки кандидатов движения, могут передаваться в битовом потоке.
а) В одном примере для каждого режима (например, для IBC или не-IBC; слияния без AMVP) указание количества разрешенных кандидатов HMVP может сигнализироваться независимым образом.
b) В качестве альтернативы, указания количества разрешенных кандидатов HMVP могут сигнализироваться посредством предсказания.
c) Кроме того, в качестве альтернативы, размеры таблицы HMVP могут зависеть от разрешенного количества кандидатов HMVP.
d) Например, количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения, не может быть равным 0.
е) В качестве альтернативы, может быть просигнализировано количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения минус K0, например, K0 = 1.
f) В качестве альтернативы, может применяться кодирование с предсказанием количества разрешенных кандидатов HMVP, которое может быть добавлено в список кандидатов движения (обозначенный numHMVP), и количества максимальных кандидатов движения в списке кандидатов движения (обозначенных numMotionList).
12) В одном примере может быть кодирована разница между numMotionList и numHMVP.
13) В одном примере может быть кодирована разница между (numMotionList-K0) и numHMVP, например, K0 = 1.
13. Количество разрешенных кандидатов HMVP, которое может быть добавлено в списки кандидатов движения, может зависеть от размеров списка кандидатов движения.
а) В одном примере оно может быть получено из соответствующего размера списка кандидатов движения, такого как (размер списка минус K0), например, K0 = 0 или 1.
b) В одном примере это количество может быть получено из размера соответствующей таблицы HMVP, которая используется списком кандидатов движения, например, (размер таблицы минус K0), например, K0 = 0 или 1.
14. Соответствующий битовый поток должен удовлетворять тому, что количество разрешенных кандидатов HMVP, которые могут быть добавлены в список кандидатов движения, не превышает количества максимальных кандидатов движения в списке кандидатов движения.
а) В качестве альтернативы, соответствующий битовый поток должен удовлетворять тому, что в список кандидатов движения могут быть добавлены разрешенные кандидаты HMVP, количество которых не превышает (количества максимальных кандидатов движения в списке кандидатов движения минус K0), например, K0 = 1.
На фиг.29 показана блок-схема устройства 2900 обработки видео. Устройство 2900 можно использовать для реализации одного или более способов, описанных в данном документе. Устройство 2900 может быть воплощено в смартфоне, планшетном компьютере, компьютере, приемнике Интернета вещей (IoT) и т.д. Устройство 2900 может включать в себя один или более процессоров 2902, одно или более устройств 2904 памяти и аппаратные средства 2906 обработки видео. Один или более процессоров 2902 могут быть выполнены с возможностью реализации одного или более способов, описанных в настоящем документе. Одно или более устройств 2904 памяти могут быть использованы для хранения данных и кода, используемых для реализации способов и технологий, описанных в данном документе. Аппаратные средства 2906 обработки видео могут использоваться для реализации в аппаратных схемах некоторых технологий, описанных в данном документе.
На фиг.31 показана блок-схема последовательности операций способа 3100 обработки видео. Способ 3100 включает в себя определение (3105) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3110) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока на основе определения того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, причем одна или обе из первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3115) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания.
На фиг.32 показана блок-схема последовательности операций способа 3200 обработки видео. Способ 3200 включает в себя определение (3205) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3210) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока, причем одна или обе из: первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3215) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания, причем по меньшей мере одна часть предсказания является внешне кодированной со слиянием или без слияния с использованием текущего изображения в качестве опорного изображения.
На фиг.33 показана блок-схема последовательности операций способа 3300 обработки видео. Способ 3300 включает в себя определение (3305) того, что первый видеоблок внутренне кодирован или внешне кодирован без слияния, определение (3310) первой подчасти предсказания и второй подчасти предсказания для первого видеоблока, причем одна или обе из: первой подчасти предсказания или второй подчасти предсказания являются непрямоугольными и неквадратными частями первого видеоблока, и дополнительную обработку (3315) первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания, причем дополнительная обработка первого видеоблока с использованием первой подчасти предсказания и второй подчасти предсказания основана на интра- или внешне кодированной информации о несмежных пространственных блоках по отношению к первому видеоблоку.
На фиг.34 показана блок-схема последовательности операций способа 3400 обработки видео. Способ 3400 включает в себя определение (3405) того, что первый видеоблок кодируется в режиме треугольной части (TPM) с использованием треугольной части предсказания первого видеоблока, и что второй видеоблок кодируется с использованием не-TPM, использующей нетреугольную часть предсказания второго видеоблока, дополнительную обработку (3410) первого видеоблока и второго видеоблока с использованием сохраненных кандидатов HMVP и сохранение (3415) кандидатов HMVP, ассоциированных с первым видеоблоком и вторым видеоблоком.
На фиг.35 показана блок-схема последовательности операций способа 3500 обработки видео. Способ 3500 включает в себя определение (3505) того, что первый видеоблок включает в себя части предсказания, которые являются непрямоугольными и неквадратными частями первого видеоблока, идентификацию (3510) кандидата HMVP, добавление (3515) одного или более кандидатов движения, полученных из кандидата HMVP, в список слияния, ассоциированный с видеоблоками, которые включают в себя части предсказания, которые являются непрямоугольными и неквадратными, и дополнительную обработку (3520) первого видеоблока с использованием списка слияния.
Что касается способов 3100, 3200, 3300, 3400 и 3500, некоторые примеры определения кандидата для кодирования и их использования описаны в разделе 4 настоящего документа. Например, как описано в разделе 4, видеоблоки могут обрабатываться с использованием частей предсказания, которые являются неквадратными и непрямоугольными.
Что касается способов 3100, 3200, 3300, 3400 и 3500, видеоблок может быть кодирован в битовом потоке видео, в котором эффективность битов может быть достигнута путем использования правила выработки битового потока, которое относится к предсказанию информации о движении.
Способы могут включать в себя определение информации изображения первой подчасти предсказания с использованием первого режима внешнего предсказания; и определение информации изображения второй подчасти предсказания с использованием второго режима внешнего предсказания, при этом первый режим внешнего предсказания отличается от второго режима внешнего предсказания.
Способы могут включать в себя фильтрацию значений предсказания, которые относятся к первой подчасти предсказания и второй подчасти предсказания, вдоль крайней границы между первой частью предсказания и второй частью предсказания.
Способы могут включать в себя определение процессором первой информации о движении первой подчасти предсказания; и определение процессором второй информации о движении для второй подчасти предсказания, причем первая информация о движении определяется без использования второй информации о движении, и вторая информация о движении определяется без использования первой информации о движении.
Способы могут включать в себя определение процессором первой информации о движении первой подчасти предсказания; и определение процессором второй информации о движении для второй подчасти предсказания, причем вторая информация о движении определяется с использованием первой информации о движении.
Способы могут включать в себя обработку первой подчасти предсказания с помощью кодирования в режиме внутреннего предсказания; и обработку второй подчасти предсказания с помощью кодирования в режиме внешнего предсказания.
Способы могут включать в себя то, что обработка второй подчасти предсказания включает в себя применение би-предсказания.
Способы могут включать в себя то, что обработка второй подчасти предсказания включает в себя определение информации о движении, просигнализированной с помощью индекса слияния.
Способы могут включать в себя фильтрацию значений предсказания, которые относятся к первой подчасти предсказания и второй подчасти предсказания, вдоль крайней границы между первой частью предсказания и второй частью предсказания.
Способы могут включать в себя использование поднабора кодирования в режиме внешнего предсказания.
Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внешнего предсказания.
Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внутренне кодирования на основе позиций первой подчасти предсказания и второй подчасти предсказания.
Способы могут включать в себя то, что первая подчасть предсказания и вторая подчасть предсказания ассоциируются с разными поднаборами кодирования в режиме внутренне кодирования на основе одного или множества из: размера первого видеоблока или формы первого видеоблока.
Способы могут включать в себя то, что внешне или внутренне кодированная информация несмежных пространственных видеоблоков включает в себя информацию о движении несмежных пространственных видеоблоков.
Способы могут включать в себя использование режима внешнего предсказания несмежных пространственных видеоблоков.
Способы могут включать в себя использование кодированной информации временных блоков.
Способы могут включать в себя добавление кандидатов предсказания вектора движения (HMVP) на основе истории в список кандидатов предсказания вектора движения, причем кандидаты HMVP включают в себя информацию о движении на основе ранее кодированных видеоблоков; и декодирование первого видеоблока на основе кандидатов HMVP.
Способы могут включать в себя то, что кандидаты HMVP хранятся в таблице, и информация о движении, используемая TPM, не хранится в таблице.
Способы могут включать в себя то, что таблица не обновляется после кодирования или декодирования первого видеоблока с использованием TPM.
Способы могут включать в себя то, что кандидаты HMVP хранятся в первой таблице и во второй таблице, причем первая таблица хранит кандидаты HMVP для TPM, и вторая таблица хранит кандидаты HMVP для не-TPM.
Способы могут включать в себя то, что одна из первой или второй таблиц хранит уни-предсказанные кандидаты HMVP, а другая хранит би-предсказанные кандидаты HMVP.
Способы могут включать в себя то, что одна из первой таблицы или второй таблицы хранит информацию о движении первой подчасти разбиения, а другая хранит информацию о движении второй подчасти разбиения.
Способы могут включать в себя то, что одна из первой таблицы или второй таблицы хранит информацию о движении из списка 0, а другая хранит информацию о движении из списка 1.
Способы могут включать в себя то, что первая таблица хранит уни-предсказанные кандидаты HMVP из списка 0, вторая таблица хранит уни-предсказанные кандидаты HMVP из списка 1, и третья таблица хранит би-предсказанные кандидаты HMVP.
Способы могут включать в себя то, что таблицы для хранения кандидатов HMVP не обновляются на основании того, что одна или обе из первой подчасти предсказания или второй подчасти предсказания являются частями с непрямоугольной и неквадратной геометрией первого видеоблока.
Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении первой подчасти разбиения.
Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении второй подчасти разбиения.
Способы могут включать в себя обновление одной или множества из первой таблицы или второй таблицы для хранения кандидатов HMVP с информацией о движении первой подчасти разбиения и информацией о движении второй подчасти разбиения.
Способы могут включать в себя определение того, что первая подчасть разбиения и вторая подчасть разбиения предсказаны из двух списков опорных изображений; и обновление одной или множества таблиц для хранения кандидатов HMVP с информацией о движении одного кандидата HMVP на основе определения того, что первая часть разбиения и вторая часть разбиения предсказаны из двух списков опорных изображений.
Эти способы могут включать в себя определение того, что первая часть разбиения и вторая часть разбиения предсказаны с использованием одного и того же списка опорных изображений или одного и того же опорного изображения, при этом таблицы обновляются на основе определения того, что первая часть разбиения и вторая часть разбиения предсказаны с использованием одного и того же списка опорных изображений или одного и того же опорного изображения.
Способы могут включать в себя определение разницы последовательности изображений (POC) между опорным изображением и текущим изображением, причем информация о движении первой подчасти разбиения или второй подчасти разбиения добавляется в одну или несколько таблиц на основе разницы POC.
Способы могут включать в себя определение характеристик относительно кодирования первого видеоблока; и обновление одной или обеих первой таблицы или второй таблицы на основе характеристик относительно кодирования первого видеоблока.
Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками TPM после декодирования видеоблока TPM.
Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками не-TPM, после декодирования видеоблока не-TPM.
Способы могут включать в себя использование информации о движении для обновления таблицы, ассоциированной с видеоблоками TPM, после декодирования видеоблока не-TPM.
Способы могут включать в себя определение первого кандидата движения и второго кандидата движения из кандидата HMVP, при этом один из первого кандидата слияния или второго кандидата слияния представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, а другой представляет собой универсальное предсказание с информацией о движении из списка 1 кандидата HMVP.
Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках.
Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP.
Способы могут включать в себя усечение на основе вставки кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, ассоциированного с первым видеоблоком, в список слияния после кандидатов движения, полученных из одного или обоих пространственных или временных видеоблоков.
Способы могут включать в себя добавление кандидата движения, полученного из кандидата HMVP, в список слияния после или до процесса создания списка слияния на основе информации о движении пространственных или временных видеоблоков.
Способы могут включать в себя добавление кандидата движения, полученного из кандидата HMVP, в список слияния после или перед заданным этапом.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием, после других первоначально уни-предсказанных кандидатов.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием из списка 0 или би-предсказанием, после предсказанных кандидатов из усеченного списка 0.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP с уни-предсказанием из списка 1 или би-предсказанием после предсказанных кандидатов из усеченного списка 1.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.
Способы могут включать в себя добавление кандидатов движения, полученных из кандидата HMVP, перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.
Способы могут включать в себя то, что кандидаты движения, полученные из кандидатов HMVP, добавляются в список слияния в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных видеоблоков по отношению к первому видеоблоку.
Способы могут включать в себя то, что кандидаты движения, полученные из списка 0 и списка 1 кандидата HMVP, добавляются по порядку перед кандидатами движения, полученными из списка 1 другого кандидата HMVP.
Способы могут включать в себя то, что кандидаты движения, полученные из списка 0 первого набора кандидатов HMVP, добавляются по порядку перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP.
Способы могут включать в себя то, что первый набор и второй набор являются одинаковыми, причем первый набор и второй набор включают в себя все доступные кандидаты HMVP.
Способы могут включать в себя то, что первый набор и второй набор являются разными, первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.
Способы могут включать в себя то, что первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, причем первое количество и второе количество являются разными.
Способы могут включать в себя то, что масштабированный кандидат движения может быть получен из кандидата HMVP путем масштабирования его вектора движения из списка LX - списка L(1-X), и масштабированному кандидату движения назначается масштабированный вектор движения и список L(1-Х).
Способы могут включать в себя то, что масштабированные кандидаты движения, полученные из кандидатов HMVP, вставляются после других кандидатов движения, полученных из кандидатов HMVP.
Способы могут включать в себя то, что масштабированные кандидаты движения, полученные из кандидатов HMVP, вставляются перед временными кандидатами.
Способы могут включать в себя то, что порядок проверки кандидатов HMVP, добавляемых в список слияния, основан на индексах кандидатов HMVP.
Способы могут включать в себя то, что порядок проверки кандидатов HMVP, добавляемых в список слияния, основан на направлениях предсказания.
Способы могут включать в себя порядок проверки кандидатов HMVP, добавляемых в список слияния, на основе информации о движении.
Способы могут включать в себя то, что заранее определено количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM.
Способы могут включать в себя то, что количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, основано на размере блока первого видеоблока, форме блока первого видеоблока или количестве кандидатов, доступных перед проверкой кандидатов HMVP.
Способы могут включать в себя то, что количество кандидатов HMVP, подлежащих проверке в процессе создания списка слияния TPM, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU.
Способы могут включать в себя то, что отбор кандидатов HMVP основан на направлении предсказания, информации о векторе движения (MV), индексе опорного изображения, расстояниях POC опорного изображения и текущем изображении одного или обоих из: кандидата или индекса кандидата.
Способы могут включать в себя то, что применение HMVP совместно с первым видеоблоком основано на размере блока первого видеоблока или форме блока первого видеоблока.
Способы могут включать в себя то, что непрямоугольные и неквадратные части являются треугольными.
Следует принимать во внимание, что раскрытые технологии могут быть воплощены в кодерах или декодерах видео для повышения эффективности сжатия, когда сжатые блоки кодирования имеют форму, значительно отличающуюся от традиционных квадратных блоков или прямоугольных блоков, которые имеют частично квадратную форму. Например, новые инструменты кодирования, которые используют длинные или высокие блоки кодирования, такие как блоки размером 4x32 или 32x4, могут извлечь выгоду из раскрытых технологий.
На фиг.36 показана блок-схема последовательности операций способа 3600 обработки видео. Способ 3600 включает в себя определение (3605) во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных множества подчастей для текущего блока; определение (3610) информации внешнего предсказания для множества подчастей; и преобразование (3615) текущего блока с использованием информации внешнего предсказания множества подчастей; и где текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью. Следует отметить, что эта подчасть может быть эквивалентна описанной выше части предсказания.
В некоторых реализациях в способе 3600 могут быть выполнены дополнительные модификации. Например, определение информации внешнего предсказания множества подчастей содержит: определение первой информации внешнего предсказания первой подчасти в множества подчастях с использованием первого режима внешнего предсказания; определение второй информации внешнего предсказания второй подчасти в множества подчастях с использованием второго режима внешнего предсказания; где первый режим внешнего предсказания отличается от второго режима внешнего предсказания. Первая информация внешнего предсказания определяется с использованием первого поднабора режимов внешнего предсказания, и вторая информация внешнего предсказания определяется с использованием второго поднабора режимов внешнего предсказания; где первый поднабор режимов внешнего предсказания отличается от второго поднабора режимов внешнего предсказания. Поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции, размера и формы первой подчасти и/или второй подчасти. Определение информации внешнего предсказания множества подчастей дополнительно содержит: фильтрацию предсказываемых значений выборок по крайней границе по меньшей мере одной из множества подчастей. Первая информация внешнего предсказания первой подчасти из множества подчастей определяется без использования второй информации внешнего предсказания второй подчасти из множества подчастей, и вторая информация внешнего предсказания второй подчасти определяется без использования первой информации внешнего предсказания первой подчасти. Первая информация внешнего предсказания первой подчасти из множества подчастей определяется с использованием второй информации внешнего предсказания второй подчасти из множества подчастей, и/или вторая информация внешнего предсказания второй подчасти определяется с использованием первой информации внешнего предсказания первой подчасти.
На фиг.37 показана блок-схема последовательности операций способа 3700 обработки видео. Способ 3700 включает в себя определение (3705), во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множества подчастей для текущего блока; определение (3710) информации о движении множества подчастей; преобразование (3715) текущего блока с использованием информации о движении множества подчастей; и где текущий блок не является внешне кодированным без слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.
В некоторых реализациях в способе 3700 могут быть выполнены дополнительные модификации. Например, определение информации о движении множества подчастей содержит: определение первой информации о движении первой подчасти в множества подчастях с использованием первого режима внешнего предсказания; определение второй информации о движении второй подчасти в множества подчастях с использованием второго режима внешнего предсказания. Определение внешнего предсказания множества подчастей дополнительно содержит: фильтрацию предсказываемых значений выборок по крайней границе по меньшей мере одной из множества подчастей. Первая информация о движении первой подчасти определяется без использования второй информации о движении второй подчасти, и вторая информация о движении второй подчасти определяется без использования первой информации о движении первой подчасти. Первая информация о движении первой подчасти определяется с использованием второй информации о движении второго предсказания, и/или вторая информация о движении второй подчасти определяется с использованием первой информации о движении первой подчасти.
На фиг.38 показана блок-схема последовательности операций способа 3800 обработки видео. Способ 3800 включает в себя преобразование (3805) между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; обработку (3810) первой подчасти в режиме внутренне кодирования; и обработку (3815) второй подчасти в режиме внешне кодирования.
В некоторых реализациях в способе 3800 могут быть выполнены дополнительные модификации. Например, вторая подчасть обрабатывается с применением би-предсказания; сигнализация информации о движении с помощью индекса слияния в ответ на кодирование текущего блока в режиме слияния; и определение информации о движении первой подчасти предсказания с использованием поднабора режима внешнего предсказания. Поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции первой подчасти предсказания, размера первой подчасти предсказания и формы первой подчасти предсказания.
На фиг.39 показана блок-схема последовательности операций способа 3900 обработки видео. Способ 3900 включает в себя преобразование (3905) между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается несколько подчастей в соответствии с шаблоном разбиения, при этом первая подчасть имеет непрямоугольную, неквадратную форму; где по меньшей мере одна из множества подчастей является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.
На фиг.40 показана блок-схема последовательности операций способа 4000 обработки видео. Способ 4000 включает в себя преобразование (4005) между текущим блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, причем текущий блок разбивается на множество подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму; и преобразование (4010) с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках.
В некоторых реализациях в способе 4000 могут быть выполнены дополнительные модификации. Например, интер- или внутренне кодированная информация одного или более пространственных блоков содержит информацию о движении одного или более пространственных блоков. Преобразование текущего блока с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках содержит: преобразование текущего блока с использованием режима внешнего предсказания одного или более пространственных блоков. В этом случае используется кодированная информация временных блоков.
На фиг.41 показана блок-схема последовательности операций способа 4100 обработки видео. Способ 4100 включает в себя определение (4105), во время преобразования между первым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, первого блока, кодированного в режиме геометрического разбиения; определение (4110), на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения (HMVP) на основе истории, которые включают в себя информацию о движении на основе ранее кодированных блоков, информации о движении по меньшей мере одной подчасти первого блока; преобразование (4115) первого блока с использованием определенной информации о движении.
В некоторых реализациях в способе 4100 могут быть выполнены дополнительные модификации. Например, первый блок, кодируемый в режиме геометрического разбиения, содержит: разбиение первого блока на несколько подчастей; причем по меньшей мере одна из множества частей является непрямоугольной и неквадратной частью. Определение, во время преобразования между вторым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, информации о движении второго блока на основе такой же таблицы, которая используется для первого блока, и во втором блоке не используется режим геометрического разбиения. Информация о движении, используемая первым блоком, воздерживается от сохранения по меньшей мере в одной таблице. По меньшей мере одна таблица не обновляется после преобразования первого блока. По меньшей мере одна таблица включает в себя несколько таблиц, которые ведутся для хранения кандидатов HMVP для блоков в режиме геометрического разбиения. По меньшей мере для одной таблицы сохраненные кандидаты HMVP имеют только информацию о движении в соответствии с информацией, используемой блоками в режиме геометрического разбиения. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения уни-предсказанных кандидатов HMVP и би-предсказанных кандидатов HMVP, соответственно. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения информации о движении первой подчасти и второй подчасти первого блока, соответственно. По меньшей мере одна таблица включает в себя две таблицы, которые ведутся для хранения информации о движении из списка 0 и списка 1, соответственно. По меньшей мере одна таблица включает в себя три таблицы, которые ведутся для хранения уни-предсказанных кандидатов HMVP из списка 0, уни-предсказанных кандидатов HMVP из списка 1 и би-предсказанных кандидатов HMVP, соответственно. По меньшей мере одна таблица обновляется информацией о движении части подчастей первого блока. По меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти, причем первая подчасть и вторая подчасть являются подчастями первого блока. По меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти путем добавления одного кандидата HMVP. То, обновить ли по меньшей мере одну таблицу путем добавления одного или двух кандидатов движения, зависит от того, используют ли первая подчасть и вторая подчасть один и тот же список опорных изображений или одно и тот же опорное изображение. То, обновить ли по меньшей мере одну таблицу путем добавления информации о движении первой подчасти или второй подчасти, зависит от разницы подсчета последовательности изображений (POC) между опорным изображением и текущим изображением. После обработки блока с непрямоугольной и неквадратной частью информация о движении блока с непрямоугольной и неквадратной частью используется для обновления таблицы, которая ведется для хранения кандидатов HMVP для блока с непрямоугольной и неквадратной частью. После обработки блока без непрямоугольной и неквадратной части информация о движении блока без непрямоугольной и неквадратной части используется для обновления таблицы, которая ведется для хранения кандидатов HMVP для блока без непрямоугольной и неквадратной части. После обработки блока без непрямоугольной и неквадратной части информация о движении блока без непрямоугольной и неквадратной части используется для обновления таблицы, которая ведется для хранения кандидатов предсказания вектора движения (HMVP) для блока с непрямоугольной и неквадратной частью. Режим геометрического разбиения содержит режим треугольного разбиения. Способ применим к другим видам списков кандидатов движения.
На фиг.42 показана блок-схема последовательности операций способа 4200 обработки видео. Способ 4200 включает в себя определение (4205), во время преобразования между первым блоком визуальных мультимедийных данных и соответствующим кодированным представлением визуальных мультимедийных данных, первого блока, кодированного в режиме геометрического разбиения; определение (4210) информации о движении по меньшей мере одной подчасти первого блока; преобразование (4215) первого блока с использованием информации о движении по меньшей мере одной подчасти; причем определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.
В некоторых реализациях в способе 4200 могут быть выполнены дополнительные модификации. Например, первый блок, кодированный в режиме геометрического разбиения, содержит: разбиение первого блока несколько подчастей; причем по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью. По меньшей мере, один кандидат HMVP добавляется непосредственно в список кандидатов движения. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: использование одного кандидата HMVP для определения первого кандидата движения и второго кандидата движения, причем один из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, и другой из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 1 кандидата HMVP; усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках; усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP; и усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после кандидатов движения, полученных из одного или обоих пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед заранее определенным этапом в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед несколькими заранее определенными этапами в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием, в список кандидатов движения после всех первоначально уни-предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP, с уни-предсказанием из списка 0 или би-предсказанием, в список кандидатов движения после усеченного списка 0 предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, с уни-предсказанием из списка 1 или би-предсказанием, в список кандидатов движения после усеченного списка 1 предсказанных кандидатов. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных блоков по отношению к текущему блоку. Полученный кандидат движения из кандидата HMVP устанавливается равным кандидату HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из списка 0 и списка 1 кандидата HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление по меньшей мере одного кандидата движения, полученного из списка 0 первого набора кандидатов HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP. Первый набор и второй набор являются одинаковыми. Первый набор и второй набор являются разными, первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, и второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием. Первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, и первое количество и второе количество являются разными. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: масштабирование кандидатов HMVP из списка LX-списка L(1-X) для выработки масштабированных кандидатов HMVP, которые используются для L(1-X). Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP. Использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит: добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP, и перед временными кандидатами. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на индексах кандидатов HMVP. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на направлениях предсказания. Порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на информации о движении. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, заранее определено. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, основано на размере блока текущего блока, форме блока текущего блока или количестве кандидатов, доступных перед проверкой кандидатов HMVP. Количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU. Кандидаты HMVP, выбранные для проверки в списке кандидатов движения, основаны по меньшей мере на одном из: направления предсказания, информации о векторе движения (MV), индекса опорного кадра, расстояний РОС опорного изображения и текущего изображения кандидата и индекса кандидата. Применение HMVP к текущему блоку основано на размере блока текущего блока или форме блока текущего блока. Список кандидатов движения содержит список слияния. Список кандидатов движения применим к другим видам списков кандидатов движения, за исключением списка кандидатов слияния.
Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах.
(1) Способ обработки видео, содержащий этапы, на которых:
определяют, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множество подчастей текущего блока;
определяют информацию внешнего предсказания для множества подчастей;
преобразуют текущий блок с использованием информации внешнего предсказания множества подчастей; причем
текущий блок является внутренне кодированным, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.
(2) Способ по (1), в котором этап определения информации внешнего предсказания множества подчастей содержит подэтапы, на которых:
определяют первую информацию внешнего предсказания первой подчасти из множества подчастей с использованием первого режима внешнего предсказания;
определяют вторую информацию внешнего предсказания второй подчасти из множества подчастей с использованием второго режима внешнего предсказания; причем
первый режим внешнего предсказания отличается от второго режима внешнего предсказания.
(3) Способ по (2), в котором первая информация внешнего предсказания определяется с использованием первого поднабора режимов внешнего предсказания, а вторая информация внешнего предсказания определяется с использованием второго поднабора режимов внешнего предсказания; при этом
первый поднабор режимов внешнего предсказания отличается от второго поднабора режимов внешнего предсказания.
(4) Способ по (3), в котором поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции, размера и формы первой подчасти и/или второй подчасти.
(5) Способ по любому из (1)-(4), в котором этап определения информации внешнего предсказания множества подчастей дополнительно содержит подэтап, на котором:
осуществляют фильтрацию предсказываемых значений выборок вдоль крайней границы по меньшей мере одной из множества подчастей.
(6) Способ по любому из (1)-(5), в котором первая информация внешнего предсказания первой подчасти из множества подчастей определяется без использования второй информации внешнего предсказания второй подчасти из множества подчастей, а вторая информация внешнего предсказания второй подчасти определяется без использования первой информации внешнего предсказания первой подчасти.
(7) Способ по любому из пп.1-5, в котором первая информация внешнего предсказания первой подчасти из множества подчастей определяется с использованием второй информации внешнего предсказания второй подчасти из множества подчастей, и/или вторая информация внешнего предсказания второй подчасти определяется с использованием первой информации внешнего предсказания первой подчасти.
(8) Способ обработки видео, содержащий этапы, на которых:
определяют, во время преобразования между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, множество подчастей текущего блока;
определяют информацию о движении множества подчастей;
преобразуют текущий блок с использованием информации о движении множества подчастей; причем
текущий блок не является внешне кодированным со слиянием, и по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной подчастью.
(9) Способ по (8), в котором этап определения информации о движении множества подчастей содержит подэтапы, на которых:
определяют первую информацию о движении первой подчасти из множества подчастей с использованием первого режима внешнего предсказания;
определяют вторую информацию о движении второй подчасти из множества подчастей с использованием второго режима внешнего предсказания.
(10) Способ по любому из (8)-(9), в котором определение внешнего предсказания множества подчастей дополнительно содержит:
фильтрацию предсказываемых значений выборок вдоль крайней границы по меньшей мере одной из множества подчастей.
(11) Способ по любому из (8)-(9), в котором первая информация о движении первой подчасти определяется без использования второй информации о движении второй подчасти, и вторая информация о движении второй подчасти определяется без использования первой информации о движении первой подчасти.
(12) Способ по любому из (8)-(9), в котором первая информация о движении первой подчасти определяется с использованием второй информации о движении второго предсказания, и/или вторая информация о движении второй подчасти определяется с использованием первой информации о движении первой подчасти.
(13) Способ обработки видео, содержащий:
преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разделен несколько подчастей в соответствии с шаблоном разбиения, где первая подчасть имеет непрямоугольную, неквадратную форму;
обработку первой подчасти в режиме внутренне кодирования; и
обработку второй подчасти в режиме внешне кодирования.
(14) Способ по (13), в котором вторая подчасть обрабатывается путем применения би-предсказания.
(15) Способ по (13) или (14), дополнительно содержит:
сигнализацию информации о движении с индексом слияния в ответ на кодирование текущего блока в режиме слияния.
(16) Способ по любому из (13)-(15), дополнительно содержит:
определение информации о движении первой подчасти предсказания с использованием поднабора режима внешнего предсказания.
(17) Способ по (16), в котором поднабор режимов внешнего предсказания основан по меньшей мере на одном из: позиции первой подчасти предсказания, размера первой подчасти предсказания и формы первой подчасти предсказания.
(18) Способ обработки видео, содержащий:
преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбит на несколько подчастей в соответствии с шаблоном разбиения, где первая подчасть имеет непрямоугольную, неквадратную форму;
где по меньшей мере одна из множества подчастей является внешне кодированной со слиянием или без слияния и использует текущее изображение в качестве опорного изображения.
(19) Способ обработки видео, содержащий:
преобразование между текущим блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, причем текущий блок разбивается на несколько подчастей в соответствии с шаблоном разбиения, при этом первое разбиение предсказания имеет непрямоугольную, неквадратную форму;
и преобразование с использованием внешне или внутренне кодированной информации одного или более пространственных блоков.
(20) Способ по (19), в котором внешне или внутренне кодированная информация одного или более пространственных блоков содержит информацию о движении одного или более пространственных блоков.
(21) Способ по (19), в котором преобразование текущего блока с использованием интер- или внутренне кодированной информации об одном или более пространственных блоках содержит:
преобразование текущего блока с использованием режима внешнего предсказания одного или более пространственных блоков.
(22) Способ по (19), в котором используется кодированная информация временных блоков.
(23) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа, изложенного в любом из (1)-(22).
(24) Устройство по (23), в котором устройство представляет собой видеокодер.
(25) Устройство по (23), в котором устройство представляет собой видеодекодер.
(26) Машиночитаемый носитель записи, на котором записана программа, содержащая код, причем программа предназначена для процессора, чтобы выполнять способ, изложенный в любом из (1)-(22).
Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах.
(1) Способ обработки видео, содержащий этапы, на которых:
определяют, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первый блок, кодированный в режиме геометрического разбиения;
определяют, на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения (HMVP) на основе истории, включающие в себя информацию о движении на основе ранее кодированных блоков, информацию о движении по меньшей мере одной подчасти первого блока;
преобразуют первый блок с использованием определенной информации о движении.
(2) Способ по (1), в котором первый блок, кодируемый в режиме геометрического разбиения, содержит:
разбиение первого блока на множество подчастей; при этом
по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью.
(3) Способ по (1), дополнительно содержащий этап, на котором:
определяют, во время преобразования между вторым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, информацию о движении второго блока на основе одной и той же таблицы, используемой для первого блока, причем
второй блок не использует режим геометрического разбиения.
(4) Способ по любому из (1)-(3), в котором информация о движении, используемая первым блоком, не сохраняется по меньшей мере в одной таблице.
(5) Способ по любому из (1)-(4), в котором по меньшей мере одна таблица не обновляется после преобразования первого блока.
(6) Способ по любому из (1)-(5), в котором по меньшей мере одна таблица включает в себя множество таблиц, ведущихся для хранения кандидатов HMVP для блоков в режиме геометрического разбиения.
(7) Способ по (6), в котором, по меньшей мере для одной таблицы, сохраненные кандидаты HMVP имеют только информацию о движении в соответствии с информацией о движении, используемой блоками в режиме геометрического разбиения.
(8) Способ по любому из (1)-(7), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения уни-предсказанных кандидатов HMVP и би-предсказанных кандидатов HMVP, соответственно.
(9) Способ по любому из (1)-(8), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения информации о движении первой подчасти и второй подчасти первого блока, соответственно.
(10) Способ по любому из (1)-(9), в котором по меньшей мере одна таблица включает в себя две таблицы, ведущиеся для хранения информации о движении из списка 0 и списка 1, соответственно.
(11) Способ по любому из (1)-(10), в котором по меньшей мере одна таблица включает в себя три таблицы, ведущиеся для хранения уни-предсказанных кандидатов HMVP из списка 0, уни-предсказанных кандидатов HMVP из списка 1 и би-предсказанных кандидатов HMVP, соответственно.
(12) Способ по любому из (1)-(11), в котором по меньшей мере одна таблица обновляется информацией о движении части подчастей первого блока.
(13) Способ по любому из (1)-(12), в котором по меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти, причем первая подчасть и вторая подчасть представляют собой подчасти первого блока.
(14) Способ по (13), в котором по меньшей мере одна таблица обновляется информацией о движении первой подчасти и информацией о движении второй подчасти посредством добавления одного кандидата HMVP.
(15) Способ по (14), в котором то, обновлять ли по меньшей мере одну таблицу посредством добавления одного или двух кандидатов движения, зависит от того, используют ли, первая подчасть и вторая подчасть, один и тот же список опорных изображений или одно и то же опорное изображение.
(16) Способ по (14), в котором то, обновлять ли по меньшей мере одну таблицу посредством добавления информации о движении первой подчасти или второй подчасти, зависит от разницы подсчета последовательности изображений (POC) между опорным изображением и текущим изображением.
(17) Способ по любому из (1)-(16), в котором способ дополнительно содержит этап, на котором:
используют, после этапа обработки блока с непрямоугольной и неквадратной частью, информацию о движении блока с непрямоугольной и неквадратной частью для обновления таблицы, ведущеся для хранения кандидатов HMVP для блока с непрямоугольной и неквадратной частью.
(18) Способ по любому из (1)-(16), дополнительно содержащий этап, на котором:
используют, после этапа обработки блока без непрямоугольной и неквадратной части, информацию о движении блока без непрямоугольной и неквадратной части для обновления таблицы, ведущейся для хранения кандидатов HMVP для блока без непрямоугольной и неквадратной части.
(19) Способ по (1)-(16), дополнительно содержащий этап, на котором:
используют, после этапа обработки блока без непрямоугольной и неквадратной части, информации о движении блока без непрямоугольной и неквадратной части для обновления таблицы, ведущейся для хранения кандидатов предсказания вектора движения (HMVP) для блока с непрямоугольной и неквадратной частью.
(20) Способ по любому из (1)-(19), в котором режим геометрического разбиения содержит режим треугольного разбиения.
(21) Способ по любому из (1)-(20), в котором способ применим к другим видам списков кандидатов движения.
(22) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа по любому из (1)-(21).
(23) Устройство по (22), в котором устройство представляет собой видеокодер.
(24) Устройство по (22), в котором устройство представляет собой видеодекодер.
(25) Машиночитаемый носитель записи, хранящий программу, содержащую код, причем программа, вызывает, при исполнении процессором, выполнение способа по любому из (1)-(21).
Некоторые особенности, предпочтительно реализованные в некоторых вариантах осуществления, теперь будут раскрыты в формате, основанном на пунктах.
(1) Способ обработки видео, содержащий:
определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;
определение информации о движении по меньшей мере одной подчасти первого блока;
преобразование первого блока с использованием информации о движении по меньшей мере одной подчасти; причем
определение информации о движении по меньшей мере одной подчасти содержит использование по меньшей мере одного кандидата предсказания вектора движения на основе истории (HMVP), который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения и определения информации о движении из списка кандидатов движения.
(2) Способ по (1), в котором первый блок, кодируемый в режиме геометрического разбиения, содержит:
разбиение первого блока на несколько подчастей; причем
по меньшей мере одна из множества подчастей является непрямоугольной и неквадратной частью.
(3) Способ по (1), в котором
по меньшей мере один кандидат HMVP добавляется непосредственно в список кандидатов движения.
(4) Способ по любому из (1)-(3), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
использованием одного кандидата HMVP для определения первого кандидата движения и второго кандидата движения, причем один из первого кандидата движения и второго кандидата движения представляет собой уни-предсказание с информацией о движении из списка 0 кандидата HMVP, а другой представляет собой уни-предсказание с информацией о движении из списка 1 кандидата HMVP.
(5) Способ по любому из (1)-(4), дополнительно содержащий:
усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на пространственных или временных видеоблоках.
(6) Способ по любому из (1)-(5), дополнительно содержащий:
усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на других кандидатах HMVP.
(7) Способ по любому из (1)-(6), дополнительно содержащий:
усечение в ответ на вставку кандидата движения, полученного из кандидата HMVP, с другими кандидатами движения, которые основаны на кандидате HMVP.
(8) Способ по любому из (1)-(7), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после кандидатов движения, извлеченных из одного или обоих пространственных или временных блоков.
(9) Способ по любому из (1)-(8), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед заданным этапом в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков.
10. Способ по любому из (1)-(9), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения после или перед несколькими заданными этапами в процессе создания списка кандидатов движения на основе информации о движении пространственных или временных блоков.
(11) Способ по любому из (1)-(10), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление, по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием, в список кандидатов движения после всех первоначально предсказанных кандидатов.
(12) Способ по любому из (1)-(11), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием из списка 0 или би-предсказанием, в список кандидатов движения после предсказанных кандидатов из усеченного списка 0.
(13) Способ по любому из (1)-(12), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP с уни-предсказанием из списка 1 или би-предсказанием, в список кандидатов движения после предсказанных кандидатов из усеченного списка 1.
(14) Способ по любому из (1)-(13), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения после усредненного уни-предсказания из кандидатов движения из списка 0 или списка 1.
(15) Способ по любому из (1)-(14), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление, по меньшей мере одного кандидата движения, полученного из по меньшей мере одного кандидата HMVP, в список кандидатов движения перед усредненным уни-предсказанием из кандидатов движения из списка 0 или списка 1.
(16) Способ по любому из (1)-(15), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из кандидата HMVP, в список кандидатов движения в соответствии с чередованием с кандидатами движения, которые основаны на информации о движении пространственных или временных блоков по отношению к текущему блоку.
(17) Способ по любому из (8)-(16), в котором
кандидат движения, полученный из кандидата HMVP, устанавливается равным кандидату HMVP.
(18) Способ по любому из (1)-(17), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из списка 0 и списка 1 кандидата HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 0 и списка 1 другого кандидата HMVP.
(19) Способ по любому из (1)-(18), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление по меньшей мере одного кандидата движения, полученного из списка 0 первого набора кандидатов HMVP, в список кандидатов движения перед кандидатами движения, полученными из списка 1 второго набора кандидатов HMVP.
(20) Способ по (19), в котором первый набор и второй набор являются одинаковыми.
(21) Способ по (19), в котором первый набор и второй набор являются разными, и первый набор включает в себя кандидаты HMVP с уни-предсказанием из списка 0 и би-предсказанием, причем второй набор включает в себя кандидаты HMVP с уни-предсказанием из списка 1 и би-предсказанием.
(22) Способ по (19), в котором первый набор включает в себя первое количество кандидатов HMVP, второй набор включает в себя второе количество кандидатов HMVP, и первое количество и второе количество являются разными.
(23) Способ по любому из (1)-(22), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
масштабирование кандидатов HMVP из списка LX - списка L(1-X) для выработки масштабированных кандидатов HMVP, которые используются для L(1-X).
(24) Способ по (23), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP.
(25) Способ по (23), в котором использование по меньшей мере одного кандидата HMVP, который включает в себя информацию о движении на основе ранее кодированного блока для создания списка кандидатов движения, содержит:
добавление масштабированных кандидатов HMVP после других кандидатов движения, полученных из кандидатов HMVP, и перед временными кандидатами.
(26) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на индексах кандидатов HMVP.
(27) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на направлениях предсказания.
(28) Способ по любому из (1)-(25), в котором порядок проверки кандидатов HMVP, добавляемых в список кандидатов движения, основан на информации о движении.
(29) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, определено заранее.
(30) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, основано на размере блока текущего блока, форме блока текущего блока или количестве кандидатов, доступных до проверки кандидатов HMVP.
(31) Способ по любому из (1)-(28), в котором количество кандидатов HMVP, подлежащих проверке в процессе создания списка кандидатов движения, сигнализируется в наборе параметров видео (VPS), наборе параметров последовательности (SPS), наборе параметров изображения (PPS), заголовке изображения, заголовке группы тайлов, заголовке слайса, группе строк единиц дерева кодирования (CTU), CTU или группе CTU.
(32) Способ по любому из (1)-(28), в котором кандидаты HMVP, выбранные для проверки в списке кандидатов движения, основаны по меньшей мере на одном из: направления предсказания, информации о векторе движения (MV), индекса опорного кадра, расстояний РОС опорного изображения и текущего изображения кандидата и индекса кандидата.
(33) Способ по любому из (1)-(28), в котором применение HMVP к текущему блоку основано на размере блока текущего блока или форме блока текущего блока.
(34) Способ по любому из (1)-(33), в котором список кандидатов движения содержит список слияния.
(35) Способ по любому из (1)-(33), в котором список кандидатов движения применим к другим видам списков кандидатов движения, за исключением списка кандидатов слияния.
(36) Устройство обработки видео, содержащее процессор, выполненный с возможностью реализации способа по любому из (1)-(35).
(37) Устройство по (36), в котором устройство является видеокодером.
(38) Устройство по (36), в котором устройство является видеодекодером.
(39) Машиночитаемый носитель записи, на котором записана программа, содержащая код, причем программа предназначена для процессора, чтобы выполнять способ по любому из (1)-(35).
Раскрытые и другие решения, примеры, варианты осуществления, модули и функциональные операции, описанные в данном документе, могут быть реализованы в цифровых электронных схемах или в компьютерном программном обеспечении, программно-аппаратных средствах или аппаратных средствах, включая структуры, раскрытые в данном документе, и их структурные эквиваленты, или в комбинациях одного или множества из них. Раскрытые и другие варианты осуществления могут быть реализованы в виде одного или множества компьютерных программных продуктов, то есть одного или множества модулей компьютерных программных инструкций, кодированных на машиночитаемом носителе информации, для их исполнения устройством обработки данных или для управления его работой. Машиночитаемой средой может быть машиночитаемое запоминающее устройство, машиночитаемый носитель информации, запоминающее устройство, состав вещества, влияющий на машиночитаемый распространяемый сигнал, или комбинацией одного или множества из них. Термин "устройство обработки данных" охватывает все аппаратные устройства, устройства и машины для обработки данных, включая, посредством примера, программируемый процессор, компьютер и многочисленные процессоры или компьютеры. Устройство может включать в себя, помимо аппаратных средств, код, который создает среду исполнения для рассматриваемой компьютерной программы, например, код, составляющий микропрограммное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию из одного или более из них. Распространяемый сигнал представляет собой искусственно выработанный сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, который вырабатывается для кодирования информации для передачи в подходящее приемное устройство.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий или код) может быть написана на языка программирования любого вида, включая скомпилированные или интерпретируемые языки, и ее можно развернуть в любом виде, в том числе как автономную программу или как модуль, компонент, подпрограмму или другой блок, подходящий для использования в вычислительной среде. Компьютерная программа необязательно соответствует файлу в файловой системе. Программа может храниться в части файла, который содержит другие программы или данные (например, один или несколько сценариев, хранящихся в документе на языке разметки), в одном файле, выделенном рассматриваемой программе, или в множества скоординированных файлах (например, в файлах, в которых хранятся один или более модулей, подпрограмм или частей кода). Компьютерная программа может быть развернута для ее исполнения на одном компьютере или на множества компьютерах, которые расположены в одном месте или распределены по многочисленным местам и связаны между собой сетью связи.
Процессы и логические потоки, описанные в данном документе, могут выполняться одним или более программируемыми процессорами, исполняющими одну или более компьютерных программ для выполнения функций, оперируя входными данными и вырабатывая выходные данные. Процессы и логические потоки могут также выполняться логической схемой специального назначения, например, программируемой вентильной матрицей (FPGA) или специализированной интегральной схемой (ASIC), и устройство может быть также реализовано в виде них.
Процессоры, подходящие для исполнения компьютерной программы, включают в себя, посредством примера, микропроцессоры как общего, так и специального назначения, и любой один или более процессоров цифрового компьютера любого типа. В общем, процессор будет принимать инструкции и данные из постоянного запоминающего устройства или оперативного запоминающего устройства, либо из обоих. Существенными элементами компьютера являются процессор для исполнения инструкций и одно или более запоминающих устройств для хранения инструкций и данных. В общем, компьютер также будет включать в себя или функционально связан для приема данных из или передачи данных в одно или оба устройства хранения большой емкости для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако в компьютере такие устройства не обязательны. Машиночитаемые носители информации, подходящие для хранения инструкций и данных компьютерных программ, включают в себя все виды энергонезависимой памяти, носителей информации и запоминающих устройств, в том числе, например, полупроводниковые запоминающие устройства, например, EPROM, EEPROM и устройства флэш-памяти; магнитные диски, например внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут быть дополнены логической схемой специального назначения или включены в нее.
Хотя данный патентный документ содержит много специфичных деталей, их не следует рассматривать не как ограничение объема любого изобретения или того, что может быть заявлено, а скорее как описания признаков, которые могут быть специфичными для конкретных вариантов осуществления конкретных технологий. Некоторые признаки, которые описаны в данном патентном документе в контексте отдельных вариантов осуществления, также могут быть реализованы в виде комбинации в одном варианте осуществления. Напротив, различные признаки, которые описаны в контексте одного варианта осуществления, могут быть также реализованы во множестве вариантов осуществления отдельно или в любой подходящей подкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в определенных комбинациях и даже изначально заявлены как таковые, в некоторых случаях один или более признаков заявленной комбинации могут быть исключены из комбинации, и заявленная комбинация может быть сориентирована на подкомбинацию или вариацию подкомбинации.
Аналогичным образом, хотя операции изображены на чертежах в определенном порядке, это не следует понимать как требование того, чтобы такие операции выполнялись в конкретном показанном порядке или в последовательном порядке, или чтобы все проиллюстрированные операции выполнялись для достижения желаемых результатов. Более того, разбиение различных компонентов системы в вариантах осуществления, описанных в данном патентном документе, не следует понимать как требующее такого разбиения во всех вариантах осуществления
Выше было описано только несколько реализаций и примеров, и другие реализации, улучшения и изменения могут быть выполнены на основе того, что описано и проиллюстрировано в данном патентном документе.
Изобретение относится к области кодирования/декодирования видео. Техническим результатом является повышение эффективности кодирования/декодирования. Предложен способ обработки видео, содержащий: определение, во время преобразования между первым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения; определение, на основе по меньшей мере одной таблицы, хранящей кандидаты предсказания вектора движения (HMVP) на основе истории, которые включают в себя информацию о движении на основе ранее кодированных блоков, информации о движении по меньшей мере одной подчасти первого блока; преобразование первого блока с использованием определенной информации о движении. 4 н. и 12 з.п. ф-лы, 42 ил., 4 табл.
1. Способ обработки видеоданных, содержащий этапы, на которых:
определяют, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первый блок, кодированный в режиме геометрического разбиения;
составляют, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе ранее кодированных блоков, список кандидатов движения, соответствующий списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);
определяют, содержащийся в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; и
выполняют преобразование первого блока с использованием информации о движении первого блока.
2. Способ по п. 1, в котором информация о движении, используемая первым блоком, не сохраняется в указанной таблице.
3. Способ по п. 1, в котором указанная таблица не обновляется после преобразования первого блока.
4. Способ по п. 1, дополнительно содержащий этап, на котором:
определяют, во время преобразования между вторым блоком визуальных медиаданных и соответствующим кодированным представлением визуальных медиаданных, информацию о движении второго блока на основе одной и той же таблицы, используемой для первого блока, причем
второй блок кодирован без использования режима геометрического разбиения.
5. Способ по п. 1, в котором этап составления списка кандидатов движения, дополнительно, содержит составление списка кандидатов движения на основе кандидатов движения, полученных из пространственных и/или временных блоков.
6. Способ по п. 1, в котором этап составления, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе предварительно кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, содержит подэтап, на котором:
добавляют по меньшей мере одного кандидата движения, полученного из таблицы для первого блока.
7. Способ по п. 6, в котором этап добавления кандидатов движения, полученных из таблицы для первого блока, содержит подэтап, на котором:
добавляют по меньшей мере один кандидат движения, полученный из таблицы, в список кандидатов движения после получения кандидатов движения от пространственных блоков и/или временных блоков.
8. Способ по п. 6, в котором по меньшей мере один кандидат движения, полученный из таблицы, установлен равным соответствующему по меньшей мере одному кандидату движения в таблице.
9. Способ по п. 6, в котором порядок проверки кандидатов движения в таблице, подлежащей добавлению в список кандидатов движения, основан на указателях кандидатов движения в таблице.
10. Способ по п. 1, в котором режим геометрического разбиения содержит множество схем разбиения, причем по меньшей мере одна схема разбиения обеспечивает разделение первого блока на две геометрические части, по меньшей мере одна из которых является непрямоугольной и неквадратной.
11. Способ по п. 1, в котором режим геометрического разбиения содержит режим треугольного разбиения.
12. Способ по п. 1, в котором этап преобразования содержит декодирование первого блока из соответствующего битового потока.
13. Способ по п. 1, в котором этап преобразования содержит кодирование первого блока в соответствующий битовый поток.
14. Устройство обработки видеоданных, содержащее процессор и машиночитаемый носитель записи, хранящий инструкции, вызывающие, при исполнении процессором, выполнение процессором:
определения, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;
составления, на основе таблицы, хранящей одного или более кандидатов, ассоциированных с информацией движения на основе ранее кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);
определения, содержащегося в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; и
выполнения преобразования первого блока с использованием информации о движении первого блока.
15. Машиночитаемый носитель записи, хранящий инструкции, вызывающие выполнение процессором:
определения, во время преобразования между первым блоком визуальных медиаданных и соответствующим битовым потоком визуальных медиаданных, первого блока, кодированного в режиме геометрического разбиения;
составления, на основе таблицы из одного или более кандидатов, ассоциированных с информацией движения на основе ранее кодированных блоков, списка кандидатов движения, соответствующего списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);
определения, содержащегося в битовом потоке, индекса слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока; и
выполнения преобразования первого блока с использованием информации о движении первого блока.
16. Способ сохранения битового потока видео, содержащий этапы, на которых:
определяют, во время генерирования битового потока визуальных медиаданных из первого блока визуальных медиаданных, первый блок, являющийся единицей кодирования, кодированный в режиме геометрического разбиения, являющемся режимом предсказания для блока кодирования;
составляют, на основе таблицы, хранящей одного или более кандидатов движения, ассоциированных с информацией движения на основе ранее кодированных блоков, список кандидатов движения, соответствующий списку кандидатов слияния, причем указанная таблица содержит таблицу предсказания векторов движения на основе истории (HMVP);
определяют, содержащийся в битовом потоке, индекс слияния режима геометрического разбиения для геометрического разбиения первого блока, причем индекс слияния режима геометрического разбиения и список кандидатов движения относятся к информации о движении первого блока;
генерируют битовый поток из первого блока с использованием информации движения первого блока; и
сохраняют битовый поток на энергонезависимом машиночитаемом носителе записи.
RU-LING LIAO еt al, CE10.3.1.b: Triangular prediction unit mode, Joint Video Exploration Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0124-v1, 12th Meeting: Macao, 3-12 Oct | |||
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
MAN-SHU CHIANG et al, CE10.1: Combined and multi-hypothesis prediction, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC |
Авторы
Даты
2023-11-30—Публикация
2019-11-04—Подача