СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО Российский патент 2023 года по МПК H04N19/105 H04N19/52 

Описание патента на изобретение RU2810318C1

ВКЛЮЧЕНИЕ ПОСРЕДСТВОМ ССЫЛКИ

[0001] В настоящей заявке испрашивается приоритет по заявке на патент США №17/217,595 «СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО», поданной 30 марта 2021 г., в которой испрашивается приоритет по предварительной заявке США №63/005,511», СПОСОБ УСТАНОВЛЕНИЯ КОЛИЧЕСТВА КАНДИДАТОВ НА СЛИЯНИЕ СУББЛОКОВ», поданной 6 апреля 2020 года. Полное раскрытие предшествующих заявок полностью включено в настоящее описание посредством ссылки.

Область техники, к которой относится изобретение

[0002] Настоящее изобретение описывает варианты осуществления, в основном относящиеся к кодированию видео.

УРОВЕНЬ ТЕХНИКИ

[0003] Описание уровня техники, представленное в данном документе, предназначено для общего представления контекста изобретения. Работа названных здесь изобретателей, в той мере, в какой она описана в этом разделе описания уровня техники, а также аспекты описания, которые в противном случае не могут считаться предшествующим уровнем техники на момент подачи заявки, ни прямо, ни косвенно не признаются в качестве предшествующего уровня техники в отношении настоящего изобретения.

[0004] Кодирование и декодирование видео могут выполняться с использованием интер-кадрового предсказания с компенсацией движения. Несжатое цифровое видео может включать в себя серию изображений, при этом каждое изображение имеет пространственный размер, например, 1920×1080 отсчетов сигнала яркости и связанных отсчетов сигнала цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет значительные требования к битрейту. Например, для видео 1080р60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920×1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 ГБ дискового пространства.

[0005] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к полосе пропускания или пространству для хранения, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал полезным для предполагаемого применения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, пользователи определенных потребительских приложений потоковой передачи могут допускать более высокие искажения, чем пользователи приложений распределения телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.

[0006] Компенсация движения может представлять собой технологию сжатия с потерями и может относиться к технологиям, в которых блок отсчетных данных из ранее восстановленного изображения или его части (опорное изображение) после пространственного сдвига в направлении, указанном посредством вектора движения (далее ВД), используется для предсказания нового восстановленного изображения или части изображения. В некоторых случаях опорное изображение может быть таким же, как восстанавливаемое в настоящее время изображение. MV могут иметь два измерения X и Y или три измерения, причем третье является показателем используемого опорного изображения (последнее, косвенно, может быть измерением времени).

[0007] В некоторых методах сжатия видео MV, применимый к определенной области отсчетных данных, может быть предсказан из других MV, например, из тех, которые относятся к другой области отсчетных данных, пространственно смежных с восстанавливаемой областью и предшествующих этому MV в порядке декодирования. Это может существенно уменьшить объем данных, необходимых для кодирования MV, тем самым устраняя избыточность и увеличивая степень сжатия. Предсказание MV может работать эффективно, например, потому что при кодировании входного видеосигнала, полученного с камеры (известного как естественное видео), существует статистическая вероятность того, что области, большие, чем область, к которой применим отдельный MV, перемещаются в аналогичном направлении и, следовательно, в некоторых случаях могут быть предсказаны с использованием аналогичного вектора движения, полученного из MV соседней области. Это приводит к тому, что MV, найденный для данной области, аналогичен или совпадает с MV, предсказанным из окружающих MV, и который, в свою очередь, может быть представлен после энтропийного кодирования в меньшем количестве битов, чем то, которое было бы использовано при кодировании MB напрямую. В некоторых случаях предсказание MV может быть примером сжатия без потерь сигнала (а именно: MV), полученного из исходного сигнала (а именно: потока отсчетов). В других случаях само предсказание MV может быть с потерями, например, из-за ошибок округления при вычислении предиктора из нескольких окружающих MV.

[0008] Различные механизмы прогнозирования MV описаны в H.265/HEVC (ITU-T Rec. Н.265, «High Efficiency Video Coding», декабрь 2016 г.). Из множества механизмов предсказания MV, которые предлагает Н.265, здесь описывается метод, далее именуемый «пространственным слиянием».

[0009] Как показано на фиг. 1, текущий блок (101) содержит отсчеты, которые были обнаружены кодером во время процесса поиска движения как предсказываемые из предыдущего блока того же размера, который был пространственно сдвинут.Вместо того, чтобы кодировать этот MV напрямую, MV может быть получен из метаданных, связанных с одним или несколькими опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, с использованием MV, связанного с одним из пяти окружающих отсчетов, обозначенных А0, А1 и В0, B1, В2 (от 102 до 106 соответственно). В Н.265 предсказание MV может использовать предикторы из того же опорного изображения, которое использует соседний блок.

РАСКРЫТИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ

[0010] Аспекты изобретения относятся к способам и устройствам для кодирования/декодирования видео. В некоторых примерах устройство декодирования видео включает в себя схему приема и схему обработки. Например, схема обработки определяет параметр на основе информации предсказания, декодированной из кодированного битового потока видео. Параметр находится в диапазоне, который зависит от флага, указывающего состояние включения/выключения предсказания вектора движения на основе субблока. Затем схема обработки вычисляет максимальное количество кандидатов в списках кандидатов на слияние на основе субблока на основе параметра и восстанавливает в ответ на текущий блок в режиме предсказания на основе субблока отсчеты текущего блока на основе выбора кандидата из составленного на основе субблока списка кандидатов на слияние текущего блока. Созданный список кандидатов на слияние на основе субблока для текущего блока ограничен максимальным количеством кандидатов в списках кандидатов на слияние на основе субблока.

[0011] В некоторых примерах схема обработки определяет максимальное количество кандидатов в списках кандидатов на слияние на основе субблока, вычитая параметр из числа по умолчанию. В примере число по умолчанию равно 5.

[0012] В некоторых вариантах осуществления верхний предел диапазона зависит от флага, указывающего состояние включения/выключения предсказания вектора движения на основе субблока.

[0013] В одном примере схема обработки принимает параметр, который сигнализируется в кодированном потоке битов видео. В другом примере схема обработки выводит параметр на основе числа по умолчанию и флага, указывающего состояние включения/выключения предсказания вектора движения на основе субблока в ответ на параметр, не сигнализируемый в кодированном битовом потоке видео.

[0014] В некоторых примерах флаг указывает состояние включения/выключения временного предсказания вектора движения на основе субблока на уровне набора параметров последовательности (SPS).

[0015] В некоторых вариантах осуществления параметр находится в диапазоне, который зависит от первого флага, указывающего состояние включения/выключения временного предсказания вектора движения на основе субблока на уровне набора параметров последовательности (SPS), и второго флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне заголовка изображения (РН). В некоторых примерах схема обработки может выводить параметр на основе номера по умолчанию, причем первый флаг указывает состояние включения/выключения временного предсказания вектора движения на основе субблока на уровне SPS, и второй флаг указывает состояние включения/выключения временного предсказания вектора движения на уровне РН в ответ на то, что параметр не сигнализируется в кодированном битовом потоке видео.

[0016] Аспекты изобретения также относятся к не временному машиночитаемому носителю, хранящем инструкции, которые при исполнении компьютером для декодирования видео побуждают компьютер выполнять способ декодирования видео.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0017] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых изображено следующее:

[0018] - на фиг. 1 показана схематическая иллюстрация текущего блока и окружающих его кандидатов на пространственное слияние в одном примере;

[0019] - на фиг. 2 показана схематическая иллюстрация упрощенной блок-схемы системы (200) связи в соответствии с вариантом осуществления.

[0020] - на фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы системы (300) связи в соответствии с вариантом осуществления;

[0021] - на фиг. 4 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления;

[0022] - на фиг. 5 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления;

[0023] - на фиг. 6 показана блок-схема кодера в соответствии с другим вариантом осуществления;

[0024] - на фиг. 7 показана блок-схема декодера в соответствии с другим вариантом осуществления;

[0025] - на фиг. 8А-8В показаны модели аффинного движения;

[0026] - на фиг. 9 показан пример аффинного векторного поля движения для каждого субблока;

[0027] - на фиг. 10 показан пример для определения унаследованных векторов движения контрольной точки в режиме аффинного слияния;

[0028] - на фиг. 11 показан пример пространственного соседа и временного соседа согласно некоторым вариантам осуществления изобретения;

[0029] - на фиг. 12 показана схема, иллюстрирующая использование вектора движения для наследования аффинных данных движения в некоторых примерах;

[0030] - на фиг. 13 показана схематическая иллюстрация примера уточнения предсказания с помощью способа оптического потока в соответствии с вариантом осуществления изобретения;

[0031] - на фиг. 14-15 показан пример процесса временного предсказания вектора движения (SbTMVP) на основе субблока согласно некоторым вариантам осуществления изобретения;

[0032] -на фиг. 16 показан пример таблицы синтаксиса для набора параметров последовательности (SPS) в некоторых примерах;

[0033] - на фиг. 17 показан пример таблицы синтаксиса для структуры заголовка изображения в некоторых примерах;

[0034] - на фиг. 18 показана блок-схема, описывающая пример процесса согласно некоторым вариантам осуществления изобретения.

[0035] - на фиг. 19 показана схематическая иллюстрация компьютерной системы в соответствии с одним вариантом осуществления.

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

[0036] На фиг. 2 проиллюстрирована упрощенная блок-схема системы (200) связи согласно варианту осуществления настоящего изобретения. Система (200) связи включает в себя множество оконечных устройств, которые могут связываться друг с другом, например, через сеть (250). Например, система (200) связи включает в себя первую пару оконечных устройств (210) и (220), соединенных между собой через сеть (250). В примере с фиг. 2 первая пара оконечных устройств (210) и (220) выполняет однонаправленную передачу данных. Например, оконечное устройство (210) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством (210)) для передачи другому оконечному устройству (220) через сеть (250). Кодированные видеоданные могут быть переданы в форме одного или более кодированных битовых потоков видео. Оконечное устройство (220) может принимать кодированные видеоданные из сети (250), декодировать кодированные видеоданные для восстановления видеоизображений и отображать видеоизображения в соответствии с восстановленными видеоданными. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.

[0037] В другом примере система (200) связи включает в себя вторую пару оконечных устройств (230) и (240), которые выполняют двунаправленную передачу кодированных видеоданных, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных, в примере, каждое оконечное устройство из оконечных устройств (230) и (240) может кодировать видеоданные (например, поток видеоизображений, которые захватываются оконечным устройством) для передачи на другое оконечное устройство из оконечных устройств (230) и (240) через сеть (250). Каждое оконечное устройство из оконечных устройств (230) и (240) также может принимать кодированные видеоданные, переданные другим оконечным устройством из оконечных устройств (230) и (240), и может декодировать кодированные видеоданные для восстановления видеоизображений и может отображать видеоизображения на доступном устройстве отображения в соответствии с восстановленными видеоданными.

[0038] В примере с фиг. 2 оконечные устройства (210), (220), (230) и (240) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (250) представляет собой любое количество сетей, которые передают кодированные видеоданные между оконечными устройствами (210), (220), (230) и (240), включая, например, проводные (соединенные проводами) и/или беспроводные сети связи. Сеть (250) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Характерные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего описания архитектура и топология сети (250) могут быть несущественными для работы настоящего изобретения, если это не объясняется в данном документе ниже.

[0039] На фиг. 3 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в среде потоковой передачи. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.

[0040] Система потоковой передачи может включать в себя подсистему (313) захвата, которая может включать в себя источник (301) видео, например, цифровую камеру, создавая, например, поток (302) видеоизображений, которые не сжаты. В примере поток видеоизображений (302) включает в себя отсчеты, снятые цифровой камерой. Поток видеоизображений (302), изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными видеоданными (304) (или кодированными битовыми потоками видео), может обрабатываться электронным устройством (320), которое включает в себя видео кодер (303), подключенный к источнику (301) видео. Видеокодер (303) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированные видеоданные (304) (или кодированный битовый поток видео (304)), изображенные тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком видеоизображений (302), могут быть сохранены на сервере потоковой передачи (305) для будущего использования. Одна или более клиентских подсистем потоковой передачи, таких как клиентские подсистемы (306) и (308) на фиг. 3, могут получить доступ к потоковому серверу (305) для извлечения копий (307) и (309) кодированных видеоданных (304). Клиентская подсистема (306) может включать в себя видеодекодер (310), например, в электронном устройстве (330). Видеодекодер (310) декодирует входящую копию (307) кодированных видеоданных и создает исходящий поток видеоизображений (311), которые могут быть визуализированы на дисплее (312) (например, экране дисплея) или другом устройстве визуализации (не показано). В некоторых системах потоковой передачи кодированные видеоданные (304), (307) и (309) (например, битовые потоки видео) могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-Т Н.265. В одном примере разрабатываемый стандарт кодирования видео неофициально известен как универсальное кодирование видео (VVC). Раскрытый объект изобретения может использоваться в контексте VVC.

[0041] Следует отметить, что электронные устройства (320) и (330) могут включать в себя другие компоненты (не показаны). Например, электронное устройство (320) может включать в себя видеодекодер (не показан), а электронное устройство (330) также может включать в себя видеокодер (не показан).

[0042] На фиг. 4 показана блок-схема видеодекодера (410) согласно варианту осуществления настоящего раскрытия. Видеодекодер (410) может быть включен в электронное устройство (430). Электронное устройство (430) может включать в себя приемник (431) (например, приемную схему). Видеодекодер (410) может использоваться вместо видеодекодера (310) в примере с фиг. 3.

[0043] Приемник (431) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы видеодекодером (410); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (401), который может быть аппаратной/программной связью с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (431) может принимать закодированные видеоданные с другими данными, например, закодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (431) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (431) и энтропийным декодером/парсером (420) (далее «парсер (420)») может быть подключена буферная память (415). В некоторых приложениях буферная память (415) является частью видеодекодера (410). В других случаях она может находиться снаружи видеодекодера (410) (не показано). В других случаях может иметься буферная память (не изображена) снаружи видеодекодера (410), например, для борьбы с дрожанием сети, и, кроме того, другая буферная память (415) внутри видеодекодера (410), например, для обработки времени воспроизведения. Когда приемник (431) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (415) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буферная память (415), которая может быть сравнительно большой и может быть предпочтительно адаптивного размера, и может по меньшей мере частично быть реализована в операционной системе или аналогичных элементах (не изображены) снаружи видеодекодера (410).

[0044] Видеодекодер (410) может включать в себя парсер (420) для восстановления символов (421) из кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (410), и потенциально информацию для управления устройством визуализации, таким как устройство визуализации (412) (например, экран дисплея), которое не является неотъемлемой частью электронного устройство (430), но может быть подключено к электронному устройству (430), как показано на фиг. 4. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной расширенной информации (сообщения SEI) или информации о пригодности видео (VUI) (не изображены). Парсер (420) может выполнять парсинг/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование закодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным принципам, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (420) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Парсер (420) также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.

[0045] Парсер (420) может выполнять операцию энтропийного декодирования/парсинга видеопоследовательности, принятой из буферной памяти (415), чтобы создавать символы (421).

[0046] Восстановление символов (421) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: интер- и интраизображение, интер- и интраблок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации подгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (420). Поток такой информации управления подгруппой между парсером (420) и множеством модулей ниже не показан для ясности.

[0047] Помимо уже упомянутых функциональных блоков, видеодекодер (410) может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.

[0048] Первым модулем является модуль (451) масштабирования/обратного преобразования. Модуль (451) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (421) от парсера (420). Модуль (451) масштабирования/обратного преобразования может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (455).

[0049] В некоторых случаях выходные отсчеты модуля (451) масштабирования/обратного преобразования могут относиться к интра-кодированному блоку; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (452) внутрикадрового предсказания. В некоторых случаях модуль (452) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из буфера (458) текущих изображений. Буфер (458) текущих изображений буферизует, например, частично восстановленное текущее изображение и/или полностью восстановленное текущее изображение. Агрегатор (455) в некоторых случаях добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (452) интра-предсказания, к информации выходных отсчетов, предоставляемой модулем (451) масштабирования/обратного преобразования.

[0050] В других случаях выходные отсчеты модуля (451) масштабирования/обратного преобразования могут относиться к интеркодированному блоку и потенциально блоку с компенсацией движения. В таком случае модуль (453) предсказания с компенсацией движения может обращаться к памяти (457) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (421), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (455) к выходу модуля (451) масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти (457) опорных изображений, откуда модуль (453) предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю (453) предсказания с компенсацией движения в форме символов (421), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти (457) опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.

[0051] Выходные отсчеты агрегатора (455) могут подвергаться различным методам петлевой фильтрации в модуле (456) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в кодированную видеопоследовательность (также называемую битовым потоком кодированного видео) и предоставляемые модулю (456) петлевой фильтрации как символы (421) из парсера (420), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные петлей значения отсчетов.

[0052] Выходной сигнал модуля (456) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (412) визуализации, а также сохранен в памяти (457) опорных изображений для использования в будущем интер-кадровом предсказании.

[0053] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. Например, после того, как кодированное изображение, соответствующее текущему изображению, полностью восстановлено, и кодированное изображение было идентифицировано как опорное изображение (например, парсером (420)), буфер (458) текущих изображений может стать частью памяти (457) опорных изображений, и буфер свежего текущего изображения может быть перераспределен перед началом восстановления следующего кодированного изображения.

[0054] Видеодекодер (410) может выполнять операции декодирования согласно заранее определенной технологии сжатия видео в стандарте, таком как Рекомендации МСЭ-Т Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, задокументированным в технологии или стандарте сжатия видео. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле, из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах границ, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.

[0055] В варианте осуществления приемник (431) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (410) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.

[0056] На фиг. 5 показана блок-схема видеодекодера (503) согласно варианту осуществления настоящего раскрытия. Видеокодер (503) включен в электронное устройство (520). Электронное устройство (520) включает в себя передатчик (540) (например, передающую схему). Видеокодер (503) может использоваться вместо видеокодера (303) в примере с фиг. 3.

[0057] Видеокодер (503) может принимать отсчеты видео от источника (501) видео (который не является частью электронного устройства (520) в примере с фиг. 5), который может захватывать видеоизображение(я) для кодирования с помощью видеокодера (503). В другом примере источник (501) видео является частью электронного устройства (520).

[0058] Источник (501) видео может предоставить исходную видеопоследовательность для кодирования видеокодером (503) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (501) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (501) видео может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры дискретизации, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.

[0059] Согласно варианту осуществления видеокодер (503) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (543) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (550). В некоторых вариантах осуществления контроллер (550) управляет другими функциональными модулями, как описано ниже, и функционально связан с другими функциональными модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером (550), могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Контроллер (550) может быть конфигурирован так, чтобы иметь другие подходящие функции, которые относятся к видеокодеру (503), оптимизированному для определенной конструкции системы.

[0060] В некоторых вариантах осуществления видеокодер (503) конфигурирован для работы в контуре кодирования. В качестве упрощенного описания, в примере контур кодирования может включать в себя кодер (530) источника (например, ответственный за создание символов, таких как поток символов, на основе входного изображения для кодирования, и опорного изображения (изображений), а также (локальный) декодер (533), встроенный в видеокодер (503). Декодер (533) восстанавливает символы для создания данных отсчетов аналогично тому, как (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте изобретения). Восстановленный поток отсчетов (данные отсчетов) вводится в память опорных изображений (534). Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое в памяти опорных изображений (534) также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые бы «видел» декодер при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) также используется в некоторых смежных областях техники.

[0061] Работа «локального» декодера (533) может быть такой же, как у «удаленного» декодера, такого как видеодекодер (410), который уже был подробно описан выше в описании к фиг. 4. Кратко ссылаясь также на фиг. 4, однако, поскольку символы доступны, и кодирование/декодирование символов в закодированную видеопоследовательность энтропийным кодером (545) и парсером (420) может быть без потерь, части энтропийного декодирования видеодекодера (410), включая буферную память (415) и парсер (420), не могут быть полностью реализованы в локальном декодере (533).

[0062] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме синтаксического анализа (парсинга)/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в по существу идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.

[0063] Во время работы в некоторых примерах исходный кодер (530) может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входное изображение с предсказанием со ссылкой на одно или более ранее кодированных изображений из видеопоследовательности, которые были обозначены как «опорные изображения». Таким образом, механизм (532) кодирования кодирует различия между блоками пикселей входного изображения и блоками пикселей опорного изображения (изображений), которые могут быть выбраны в качестве эталона(ов) предсказания для входного изображения.

[0064] Локальный видеодекодер (533) может декодировать кодированные видеоданные изображений, которые могут быть обозначены как опорные изображения, на основе символов, созданных кодером (530) источника. Операции механизма (532) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 5), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (533) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных изображениях, и может вызывать сохранение восстановленных опорных изображений в кэше (534) опорных изображений. Таким образом, видеокодер (503) может локально хранить копии восстановленных опорных изображений, которые имеют общий контент, в качестве восстановленных опорных изображений, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).

[0065] Предиктор (535) может выполнять поиски с предсказанием для механизма (532) кодирования. То есть, для нового изображения, которое должно быть закодировано, предиктор (535) может искать в памяти (534) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (535) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (535), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (534) опорных изображений.

[0066] Контроллер (550) может управлять операциями кодирования кодера (530) источника, включая, например, установку параметров и параметров подгруппы, используемых для кодирования видеоданных.

[0067] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (545). Энтропийный кодер (545) переводит символы, сгенерированные различными функциональными модулями, в закодированную видеопоследовательность путем сжатия без потерь символов согласно таким технологиям, как кодирование Хаффмана, кодирование с переменной длиной, арифметическое кодирование и так далее.

[0068] Передатчик (540) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (545), чтобы подготовиться к передаче через канал (560) связи, который может быть аппаратным/программным соединением с устройством хранения, которое будет хранить кодированные видеоданные. Передатчик (540) может объединять кодированные видеоданные из видеокодера (503) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).

[0069] Контроллер (550) может управлять работой видеокодера (503). Во время кодирования контроллер (550) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов изображений:

[0070] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера («IDR»). Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.

[0071] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.

[0072] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интра-предсказания или интер-предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.

[0073] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и закодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки 1-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интра-предсказание). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.

[0074] Видеокодер (503) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендации МСЭ-Т Н.265. В своей работе видеокодер (503) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.

[0075] В варианте осуществления передатчик (540) может передавать дополнительные данные с кодированным видео. Кодер (530) источника может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения SEI, фрагменты набора параметров VUI и так далее.

[0076] Видео может быть захвачено как множество исходных изображений (видеоизображений) во временной последовательности. Внутрикадровое предсказание (часто сокращенно называемое интра-предсказанием) использует пространственную корреляцию в данном изображении, а интер-кадровое предсказание использует (временную или другую) корреляцию между изображениями. В примере конкретное изображение при кодировании/декодировании, называемое текущим изображением, разделяется на блоки. Когда блок в текущем изображении подобен опорному блоку в ранее кодированном и все еще буферизованном опорном изображении в видео, блок в текущем изображении может быть кодирован вектором, который называется вектором движения. Вектор движения указывает на опорный блок в опорном изображении и может иметь третье измерение, идентифицирующее опорное изображение, в случае использования множества опорных изображений.

[0077] В некоторых вариантах осуществления при интер-кадровом предсказании может использоваться метод двойного предсказания. Согласно методу двойного предсказания, используются два опорных изображения, такие как первое опорное изображение и второе опорное изображение, которые оба предшествуют в порядке декодирования текущему изображению в видео (но могут быть в прошлом и будущем, соответственно, в порядке отображения). Блок в текущем изображении может быть кодирован первым вектором движения, который указывает на первый опорный блок в первом опорном изображении, и вторым вектором движения, который указывает на второй опорный блок во втором опорном изображении. Блок может быть предсказан комбинацией первого опорного блока и второго опорного блока.

[0078] Кроме того, в интер-кадровом предсказании может использоваться метод режима слияния для повышения эффективности кодирования.

[0079] Согласно некоторым вариантам осуществления изобретения, предсказания, такие как интер-кадровые предсказания и внутрикадровые предсказания, выполняются в единице блоков. Например, в соответствии со стандартом HEVC, изображение в последовательности видеоизображений разделяется на единицы дерева кодирования (CTU) для сжатия, причем CTU в изображении имеют одинаковый размер, например 64×64 пикселей, 32×32 пикселей или 16×16 пикселей. В общем, CTU включает в себя три блока дерева кодирования (СТВ), которые представляют собой один СТВ яркости и два СТВ цветности. Каждая CTU может быть рекурсивно разделена на квадродерево на одну или множество единиц кодирования (CU). Например, CTU размером 64×64 пикселей можно разделить на одну CU из 64×64 пикселей, или 4 CU из 32×32 пикселей, или 16 CU из 16×16 пикселей. В примере каждая CU анализируется для определения типа предсказания для CU, такого как тип интер-предсказания или тип интра-предсказания. CU разделяется на одну или более единиц предсказания (PU) в зависимости от временной и/или пространственной предсказуемости. Обычно каждая PU включает в себя блок предсказания яркости (РВ) и два РВ цветности. В варианте осуществления операция предсказания при кодировании (кодировании/декодировании) выполняется в единицах блоков предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, такую как 8×8 пикселей, 16×16 пикселей, 8×16 пикселей, 16×8 пикселей и т.п.

[0080] На фиг. 6 показана схему видеокодера (603) согласно другому варианту осуществления раскрытия. Видеокодер (603) конфигурирован для приема блока обработки (например, блока предсказания) из значений отсчетов в текущем видеоизображении в последовательности видеоизображений и кодирования блока обработки в кодированное изображение, которое является частью кодированной видеопоследовательности. В одном примере видеокодер (603) используется вместо видеокодера (303) на примере с фиг. 3.

[0081] В примере HEVC видеокодер (603) принимает матрицу значений отсчетов для блока обработки, такого как блок предсказания из 8×8 отсчетов и т.п. Видеокодер (603) определяет, кодируется ли блок обработки лучше всего при использовании интра-режима, интер-режима или режима двойного предсказания, использующего, например, оптимизацию скорости-искажения. Когда блок обработки должен быть кодирован в интра-режиме, видеокодер (603) может использовать метод интрапредсказания для кодирования блока обработки в кодированное изображение; а когда блок обработки должен быть кодирован в интер-режиме или режиме двойного предсказания, видеокодер (603) может использовать метод интерпредсказания или двойного предсказания, соответственно, для кодирования блока обработки в кодированное изображение. В некоторых технологиях кодирования видео, режим слияния может быть субрежимом интер-кадрового предсказания, в котором вектор движения выводят из одного или более предикторов вектора движения без преимущества кодированного компонента вектора движения вне предикторов. В некоторых других технологиях кодирования видео может присутствовать компонент вектора движения, применимый к рассматриваемому блоку. В одном примере видеокодер (603) включает в себя другие компоненты, такие как модуль выбора режима (не показан), для определения режима блоков обработки.

[0082] На примере с фиг. 6 видеокодер (603) включает в себя интер-кодер (630), интра-кодер (622), вычислитель (623) остатка, переключатель (626), кодер (624) остатка, общий контроллер (621) и энтропийный кодер (625), соединенные вместе, как показано на фиг. 6.

[0083] Интеркодер (630) конфигурирован для приема отсчетов текущего блока (например, блока обработки), сравнения блока с одним или более опорными блоками в опорных изображениях (например, блоков в предыдущих изображениях и последующих изображениях), генерации информации интерпредсказания (например, описания избыточной информации согласно методу интеркодирования, векторов движения, информации режима слияния) и вычисления результатов интерпредсказания (например, предсказанный блок) на основе информации интерпредсказания с использованием любого подходящего метода. В некоторых примерах опорные изображения являются декодированными опорными изображениями, которые декодируются на основе кодированной видеоинформации.

[0084] Интракодер (622) конфигурирован для приема отсчетов текущего блока (например, блока обработки), в некоторых случаях сравнения блока с блоками, уже кодированными в том же изображении, генерации квантованных коэффициентов после преобразования, а в некоторых случаях также информации интрапредсказания (например, информации направления интрапредсказания согласно одному или более методов интракодирования). В одном примере интра-кодер (622) также вычисляет результаты интра-предсказания (например, предсказанный блок) на основе информации интра-предсказания и опорных блоков в одном и том же изображении.

[0085] Общий контроллер (621) конфигурирован для определения общих данных управления и управления другими компонентами видеокодера (603) на основе общих данных управления. В одном примере общий контроллер (621) определяет режим блока и подает управляющий сигнал на переключатель (626) на основе режима. Например, когда режим является интра-режимом, общий контроллер (621) управляет переключателем (626), чтобы выбрать результат интра-режима для использования вычислителем (623) остатка, и управляет энтропийным кодером (625), чтобы выбрать информацию интрапредсказания и включить информацию интрапредсказания в битовый поток; и когда режимом является интер-режим, общий контроллер (621) управляет переключателем (626), чтобы выбрать результат интерпредсказания для использования вычислителем (623) остатка, и управляет энтропийным кодером (625), чтобы выбрать информацию интерпредсказания и включить информацию интерпредсказания в битовый поток.

[0086] Вычислитель (623) остатка конфигурирован для вычисления разницы (данных остатка) между принятым блоком и результатами предсказания, выбранными из интракодера (622) или интеркодера (630). Кодер (624) остатка конфигурирован для работы на основе данных остатка, чтобы кодировать данные остатка, чтобы генерировать коэффициенты преобразования. В одном примере кодер (624) остатка конфигурирован для преобразования данных остатка из пространственной области в частотную область и генерации коэффициентов преобразования. Коэффициенты преобразования затем подвергаются обработке квантования для получения квантованных коэффициентов преобразования. В различных вариантах осуществления видеокодер (603) также включает в себя декодер (628) остатка. Декодер (628) остатка конфигурирован для выполнения обратного преобразования и генерации декодированных данных остатка. Декодированные данные остатка могут подходящим образом использоваться интракодером (622) и интеркодером (630). Например, интеркодер (630) может генерировать декодированные блоки на основе декодированных данных остатка и информации интерпредсказания, а интракодер (622) может генерировать декодированные блоки на основе декодированных данных остатка и информации интрапредсказания. Декодированные блоки соответствующим образом обрабатываются для генерирования декодированных изображений, и декодированные изображения могут быть буферизованы в схеме памяти (не показана) и использоваться в качестве опорных изображений в некоторых примерах.

[0087] Энтропийный кодер (625) конфигурирован для форматирования битового потока, чтобы включить в него кодированный блок. Энтропийный кодер (625) конфигурирован для включения различной информации в соответствии с подходящим стандартом, таким как стандарт HEVC. В одном примере энтропийный кодер (625) конфигурирован для включения общих данных управления, выбранной информации предсказания (например, информации интрапредсказания или информации интерпредсказания), информации остатка и другой подходящей информации в битовом потоке. Следует отметить, что согласно раскрытому объекту изобретения при кодировании блока в субрежиме слияния либо интер-режима, либо режима двойного предсказания информация остатка отсутствует.

[0088] На фиг. 7 показана схема видеодекодера (710) согласно другому варианту осуществления раскрытия. Видеодекодер (710) конфигурирован для приема кодированных изображений, которые являются частью кодированной видеопоследовательности, и декодирования кодированных изображений для создания восстановленных изображений. В одном примере видеодекодер (710) используется вместо видеодекодера (310) в примере с фиг. 3.

[0089] В примере с фиг. 7 видеодекодер (710) включает в себя энтропийный декодер (771), интердекодер (780), декодер (773) остатка, модуль (774) восстановления и интрадекодер (772), соединенные вместе, как показано на фиг. 7.

[0090] Энтропийный декодер (771) может быть конфигурирован для восстановления из кодированного изображения определенных символов, которые представляют элементы синтаксиса, из которых состоит кодированное изображение. Такие символы могут включать в себя, например, режим, в котором кодируется блок (такой как, например, интра-режим, интер-режим, режим двойного предсказания, причем последние два в субрежиме слияния или другом субрежиме), информацию предсказания (такую как, например, информация интрапредсказания или информация интер-предсказания), которая может идентифицировать определенный отсчет или метаданные, которые используются для предсказания интра-декодером (772) или интер-декодером (780), соответственно, остаточную информацию в форме, например, квантованных коэффициентов преобразования и т.п. В одном примере, когда режимом предсказания является интер-режим или режим двунаправленного предсказания, информация интер-предсказания предоставляется в интер-декодер (780); а когда тип предсказания является типом интра-предсказания, информация интра-предсказания предоставляется в интра-декодер (772). Остаточная информация может подвергаться обратному квантованию и предоставляется декодеру (773) остатка.

[0091] Интер-декодер (780) конфигурирован для приема информации интерпредсказания и генерации результатов интер-предсказания на основе информации интерпредсказания.

[0092] Интра-декодер (772) конфигурирован для приема информации интрапредсказания и генерации результатов предсказания на основе информации интрапредсказания.

[0093] Декодер (773) остатка конфигурирован для выполнения обратного квантования для извлечения деквантованных коэффициентов преобразования, и обработки деквантованных коэффициентов преобразования для преобразования остатка из частотной области в пространственную область. Декодер (773) остатка может также потребовать определенную управляющую информацию (чтобы включить параметр квантователя (QP)), и эта информация может быть предоставлена энтропийным декодером (771) (путь данных не показан, поскольку это может быть только управляющая информация малого объема).

[0094] Модуль (774) восстановления конфигурирован для объединения в пространственной области остатка, выводимого декодером (773) остатка, и результатов предсказания (выводимых модулями интер- или интра-предсказания, в зависимости от случая) для формирования восстановленного блока, который может быть частью восстановленного изображения, которое, в свою очередь, может быть частью восстановленного видео. Следует отметить, что для улучшения визуального качества могут выполняться другие подходящие операции, такие как операция деблокирования и т.п..

[0095] Следует отметить, что видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием любого подходящего метода. В варианте осуществления видеокодеры (303), (503) и (603) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одной или более интегральных схем. В другом варианте осуществления видеокодеры (303), (503) и (503) и видеодекодеры (310), (410) и (710) могут быть реализованы с использованием одного или более процессоров, которые исполняют программные инструкции.

[0096] Аспекты изобретения предоставляют методы в области интер-предсказания в усовершенствованном видеокодеке. Эти методы могут использоваться для установки количества кандидатов в списке кандидатов, который может называться списком кандидатов на слияние субблоков.

[0097] В различных вариантах осуществления для интер-предсказанных CU параметры движения, включая векторы движения, индексы опорных изображений, индекс использования списка опорных изображений и/или другую дополнительную информацию, могут использоваться для генерации интер-предсказанного отсчета. Интер-кадровое предсказание может включать в себя единичное предсказание, двойное предсказание и/или подобное. При единичном предсказании можно использовать список опорных изображений (например, список первых опорных изображений или список 0 (L0), или второй список опорных изображений или список 1 (L1)). В двойном предсказании могут использоваться как L0, так и L1. Индекс использования списка опорных изображений может указывать, что список (списки) опорных изображений включает в себя L0, L1 или L0 и L1.

[0098] Параметры движения могут сигнализироваться явным или неявным образом. Когда CU кодируется в режиме пропуска, CU может быть связан с одним PU и может не включать в себя никаких значимых остаточных коэффициентов (например, остаточные коэффициенты равны нулю), разницы кодированных векторов движения (MVD) или индекса опорного изображения.

[0099] Может использоваться режим слияния, в котором параметры движения для текущего CU могут быть получены из соседних CU, включая пространственные и временные кандидаты слияния и, опционально, другие кандидаты слияния. Режим слияния может применяться к интер-предсказанному CU и может использоваться для режима пропуска. В качестве альтернативы параметры движения могут быть явно переданы или сигнализированы. Например, векторы движения, соответствующий индекс опорных изображений для каждого списка опорных изображений, флаг использования списка опорных изображений и другая информация могут сообщаться явно для каждой CU.

[0100] В некоторых примерах (например, VVC) используется один или несколько из следующих инструментов кодирования с интер-кадровым предсказанием: (1) расширенное предсказание слияния, (2) режим слияния с разностью векторов движения (MMVD), (3) симметричный MVD (SMVD) сигнализация, (4) предсказание с компенсацией аффинного движения, (5) временное предсказание вектора движения на основе субблоков (SbTMVP), (6) адаптивное разрешение вектора движения (AMVR), (7) хранение поля движения: хранение MV отсчета 1/16 яркости и сжатие поля движения 8×8, (8) двунаправленное предсказание с весом на уровне CU (BCW), (9) двунаправленный оптический поток (BDOF), (10) уточнение вектора движения на стороне декодера (DMVR), (11) режим геометрического разделения (GPM) и (12) комбинированное интер и интра предсказание (CIIP).

[0101] Согласно аспекту изобретения некоторые инструменты кодирования интерпредсказания могут работать на основе списка кандидатов на слияние на основе субблоков. В одном примере предсказание с компенсацией аффинного движения может выполняться в режиме аффинного слияния (который в некоторых примерах также называется режимом слияния на основе субблоков). В режиме аффинного слияния предсказание может выполняться на основе списка кандидатов на аффинное слияние, который в некоторых примерах называется списком кандидатов на слияние на основе субблоков. В другом примере предсказание временного вектора движения на основе субблока (SbTMVP) также может работать на основе списка кандидатов на слияние на основе субблока.

[0102] Для предсказания с компенсацией аффинного движения в некоторых примерах (например, HEVC) для предсказания компенсации движения применяется только модель поступательного движения (МСР). В реальном мире есть много видов движения, например увеличение/уменьшение, вращение, перспективные движения и другие нерегулярные движения. В некоторых примерах (например, VVC) применяется предсказание компенсации движения с аффинным преобразованием на основе блоков.

[0103] На фиг. 8А-8В показаны модели аффинного движения. На фиг. 8А показано поле аффинного движения блока, которое описывается информацией о движении двух контрольных точек СР0 и СР1 (аффинная модель с 4 параметрами), а на фиг. 8В показано поле аффинного движения блока, которое описывается тремя контрольными точками СР0, СР1 и СР2 (6-параметрическая аффинная модель).

[0104] В некоторых вариантах осуществления 4-параметрическая модель аффинного движения, вектор движения (mvx, mvy) в местоположении отсчета (х, у) в блоке может быть получен как (Ур. 1) и 6-параметрической модели аффинного движения, вектор движения в месте отсчета (х, у) в блоке может быть получен как (Ур. 2):

где mv0 или (mv0x, mv0y) обозначает вектор движения контрольной точки СР0 верхнего левого угла, mv1 или (mv1x, mv1y) вектор движения контрольной точки верхнего правого угла СР1, mv2 или (mv2x, mv2y) является вектор движения контрольной точки СР2 нижнего левого угла, W обозначает ширину блока, а Н обозначает высоту блока.

[0105] Чтобы упростить предсказание компенсации движения, может применяться предсказание аффинного преобразования на основе блоков.

[0106] На фиг. 9 показан пример аффинного векторного поля движения для каждого субблока. В примере текущий CU 910 (например, из 16×16 отсчетов яркости) делится на субблоки яркости 4×4 (каждый субблок может быть 4×4 отсчетами яркости). Чтобы получить вектор движения каждого субблока яркости 4×4, вектор движения центрального отсчета каждого субблока, как показано на фиг. 9, вычисляется согласно приведенным выше уравнениям (Ур. 1) и (Ур. 2). Вектор движения может быть округлен, например, с точностью до 1/16 доли. Затем применяются фильтры интерполяции компенсации движения для генерации предсказания каждого субблока с полученным вектором движения. В некоторых примерах размер субблока компонентов цветности также может быть установлен равным 4×4, и, таким образом, субблок цветности 4×4 включает в себя четыре соответствующих субблока яркости 4×4. MV субблока цветности 4×4 вычисляется как среднее значение MV четырех соответствующих субблоков яркости 4×4 в примере.

[0107] Следует отметить, что субблоки могут быть определены так, чтобы иметь другое подходящее количество отсчетов яркости. Также следует отметить, что в некоторых примерах субблоки называются суб-CU.

[0108] Для интер-кадрового предсказания поступательного движения могут использоваться два режима интер-кадрового прогнозирования аффинного движения, которые называются режимом аффинного слияния (AF_MERGE) и режимом аффинного расширенного MVP (affine AMVP).

[0109] Для предсказания аффинного слияния, например, режим AF_MERGE может применяться для блоков CU с шириной и высотой больше или равными 8. В режиме AF_MERGE векторы движения контрольных точек (CPMV) текущего CU генерируются на основе информации о движении пространственно соседних CU. В одном примере список кандидатов на аффинное слияние (также называемый списком кандидатов на слияние на основе субблоков) может включать в себя до пяти кандидатов-предикторов вектора движения контрольной точки (CPMVP), а индекс сигнализируется, чтобы указать тот, который будет использоваться для текущего CU. В примере три типа кандидатов CPMVP используются для формирования списка кандидатов на аффинное слияние. Первый тип кандидатов CPMVP - это унаследованные кандидаты на аффинное слияние, экстраполированные из CPMV соседних CU. Второй тип кандидатов CPMVP - это сконструированные CPMVP кандидатов на аффинное слияние, которые получены с использованием трансляционных MV соседних CU. Третий тип кандидатов CPMVP использует нулевые MV.

[0110] В некоторых примерах, таких как VVC, можно использовать максимум два унаследованных аффинных кандидата. В примере два унаследованных аффинных кандидата получены из моделей аффинного движения соседних блоков, один из левых соседних CU (называемых левым предиктором) и один из вышеперечисленных соседних CU (упоминаемых как вышеупомянутый предиктор). Используя соседние блоки, показанные на фиг. 1 в качестве примера, для левого предсказателя порядок сканирования А0->А1, а для вышеуказанного предсказателя порядок сканирования В0->B1->В2. В примере выбирается только первый унаследованный кандидат, доступный с каждой стороны. В некоторых примерах проверка отсечения не выполняется между двумя унаследованными кандидатами. Когда идентифицируется соседний аффинный CU, векторы движения контрольной точки соседнего аффинного CU используются для получения кандидата CPMVP в списке кандидатов на аффинное слияние текущего CU.

[0111] На фиг. 10 показан пример для определения унаследованных векторов движения контрольной точки в режиме аффинного слияния. Как показано на фиг. 10, когда соседний левый нижний субблок А кодируется в аффинном режиме, могут быть получены mv2 векторы движения mv3 и mv4 верхнего левого угла, верхнего правого угла и левого нижнего угла CU, который содержит субблок А. Когда субблок А кодируется с помощью 4-параметрической аффинной модели, два CPMV текущего CU вычисляются в соответствии с mv2, mv3H. В случае, если субблок А кодируется с помощью 6-параметрической аффинной модели, три CPMV текущего CU вычисляются в соответствии cmv2, mv3 mv4H.

[0112] В некоторых примерах сконструированный аффинный кандидат создается путем объединения информации о поступательном движении соседа каждой контрольной точки. Информация о движении для контрольных точек может быть получена из указанных пространственных соседей и временных соседей.

[0113] На фиг. 11 показан пример пространственных соседей (например, субблоков А0-А2 и В0-В3) и временных соседей (например, Т) согласно некоторым вариантам осуществления изобретения. В примере CPMVk (k=1, 2, 3, 4) представляет k-ю контрольную точку. Для CPMV1 проверяются блоки В2->В3->А2 (-> используется для проверки порядка), и MV первого доступного блока используется как CPMV1. Для cpmv2 проверяются блоки В1->В0, и MV первого доступного блока используется как CPMV2. Для CPMV3 проверяются блоки А1->А0, и MV первого доступного блока используется как CPMV3. Для TMVP Т проверяется и используется как CPMV4, если доступно MV блока Т.

[0114] После получения MV четырех контрольных точек cpmv1-cpmv4, на основе этой информации о движении конструируются кандидаты на аффинное слияние. Следующие комбинации MV контрольной точки могут быть использованы для построения по порядку: {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4},{CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2}, {CPMV1, CPMV3}.

[0115] Комбинация 3 CPMV обеспечивает построение 6-параметрического кандидата на аффинное слияние, а комбинация 2 CPMV обеспечивает построение 4-параметрического кандидата на аффинное слияние. В примере, чтобы избежать процесса масштабирования движения, когда опорные индексы контрольных точек отличаются, связанная комбинация MV контрольных точек может быть отброшена.

[0116] В примере после проверки унаследованных кандидатов на аффинное слияние и созданных кандидатов на аффинное слияние, если список кандидатов все еще не полон, в конец списка вставляются нулевые MV.

[0117] Для аффинного предсказания AMVP режим аффинного AMVP может применяться к CU, ширина и высота которых больше или равны 16. В некоторых примерах аффинный флаг на уровне CU сигнализируется в потоке битов (например, поток битов кодированного видео), чтобы указать, используется ли аффинный режим AMVP в CU, а затем сигнализируется другой флаг, указывающий, используется ли 4-параметрический аффинный или 6-параметрический аффинный. В аффинном режиме AMVP разность CPMV текущего CU и их предикторов CPMVP может передаваться в потоке битов. Размер списка аффинных кандидатов AMVP равен 2, а список кандидатов аффинного AMVP генерируется с использованием следующих четырех типов кандидатов CPMV в следующем порядке: (1) унаследованные аффинные кандидаты AMVP, экстраполированные из CPMV соседних CU; (2) сконструированные CPMVP аффинных кандидатов AMVP, которые получены с использованием трансляционных MV соседних CU; (3) трансляционные MV из соседних CU; и (4) нулевые MV.

[0118] В некоторых примерах порядок проверки унаследованных кандидатов аффинного AMVP может быть таким же, как порядок проверки унаследованных кандидатов аффинного слияния. В примере единственная разница между аффинным предсказанием слияния и аффинным предсказанием AMVP состоит в том, что для кандидата AMVP учитывается только аффинный CU, который имеет то же опорное изображение, что и текущий блок. В примере при вставке унаследованного предиктора аффинного движения в список кандидатов не требуется никакого процесса отсечения.

[0119] В некоторых примерах сконструированный кандидат AMVP может быть получен из указанных пространственных соседей, показанных на фиг. 11. В примере используется тот же порядок проверки, что и при построении кандидата для предсказания аффинного слияния. Кроме того, также может проверяться индекс опорного изображения соседнего блока. Используется первый блок в порядке проверки, который подвергнут интеркодированию и имеет то же опорное изображение, что и в текущих CU. Когда текущий CU закодирован в 4-параметрическом аффинном режиме и векторы движения двух контрольных точек (например, {CPMV1, CPMV2}) доступны, векторы движения двух контрольных точек добавляются как один кандидат в аффинном списке AMVP. Когда текущий CU закодирован в аффинном режиме с 6 параметрами, и все три вектора движения контрольных точек CPMV (например, {CPMV1, CPMV2, CPMV3}) доступны, они добавляются как один кандидат в список аффинных AMVP. В противном случае построенный кандидат AMVP устанавливается как недоступный.

[0120] Если после проверки унаследованных кандидатов аффинных AMVP и построенного кандидата AMVP число кандидатов списка аффинных AMVP по-прежнему меньше 2, будут добавлены CPMV1, CPMV2 и CPMV3, в порядке, в качестве поступательных MV для предсказания всех MV контрольных точек текущей CU, при доступности. Наконец, нулевые MV используются для заполнения аффинного списка AMVP, если аффинный список AMVP все еще не заполнен.

[0121] Согласно некоторым аспектам изобретения информация о движении может храниться в подходящих буферах, таких как локальный буфер, буфер строк изображения и т.п. Локальный буфер используется для хранения информации о движении на уровне CTU, такой как векторы движения блоков 4×4 в CTU. Например, когда CU в CTU декодируется на основе интер-предсказания, векторы движения соответствующих блоков 4×4 CU могут быть сохранены в локальном буфере и могут использоваться для декодирования более поздних CU. Буфер строки изображения используется для хранения информации о движении CTU, которые находятся над текущим CTU, например векторов движения блоков 4×4 в нижней части вышеупомянутых CTU. Вышеупомянутые CTU текущего CTU могут упоминаться как указанная выше линия CTU.

[0122] В некоторых примерах (например, VVC) CPMV аффинных CU хранятся отдельно от векторов движения блоков 4×4. В одном примере локальный буфер включает в себя первую часть для хранения векторов движения блоков 4×4 в CTU и вторую часть для хранения CPMV аффинных CU в CTU. Сохраненные CPMV во второй части локального буфера можно использовать для генерации унаследованных CPMVP в режиме аффинного слияния и аффинном режиме AMVP для недавно закодированных CU. MV субблока, полученные из CPMV, используются для компенсации движения, получения MV из списка слияния/AMVP поступательных MV и деблокирования.

[0123] В некоторых вариантах осуществления буфер строки изображения не хранит дополнительные CPMV аффинных CU в указанной выше строке CTU. В некоторых примерах наследование данных аффинного движения от CU из вышеперечисленных CTU обрабатывается иначе, чем наследование от нормальных соседних CU в той же строке CTU. Когда CU-кандидат для наследования данных аффинного движения находится в расположенной выше строке CTU, для получения аффинного MVP вместо CPMV используются нижний левый и нижний правый MV субблока в буфере строки изображения. Таким образом, CPMV хранятся только в локальном буфере, а не в буфере строки изображения в некоторых примерах. В примере, если CU-кандидат был подвергнут 6-параметрическому аффинному кодированию, аффинная модель может быть понижена до 4-параметрической модели.

[0124] На фиг. 12 показана схема, иллюстрирующая использование вектора движения для наследования аффинных данных движения в некоторых примерах. На фиг. 12, каждый маленький квадрат представляет субблок 4×4, и вектор движения субблока может быть вектором движения в центре субблока. Кроме того, текущий CU расположен в верхней части текущего CTU. Как показано на фиг. 12, в соседних CU текущего CU, CU-E и CU-D имеют аффинное кодирование. CU-D находится в той же строке CTU, что и текущий CU, a CU-E находится в указанной выше строке CTU текущего CU. CPMV CU-D могут храниться в локальном буфере. Например, для 4-параметрической аффинной модели mvD0 и mvD1 хранятся в локальном буфере, a CPMV (например, mv0 и mv1) текущего CU могут быть рассчитаны в соответствии с mvD0 и mvD1 и соответствующими положениями контрольных точек для mvD0 и mvD1.

[0125] В одном примере буфер строки изображения хранит векторы движения субблоков, которые находятся внизу указанной выше строки CTU. CPMV CU-E, такие как показанные mvE0 и mvE1, не сохраняются в буфере строки изображения. В примере векторы движения нижнего левого субблока и нижнего правого субблока CU-E, такие как показанные mvLE0 и mvLE1, используются для аффинного наследования текущего CU. Например, CPMV (например, mv0 и mv1) текущего CU могут быть вычислены в соответствии с mvLE0 и mvle1 и соответствующими центральными положениями двух субблоков.

[0126] В некоторых вариантах осуществления может быть реализовано уточнение предсказания с оптическим потоком (PROF) (также называемое методом PROF) для улучшения компенсации аффинного движения на основе субблока для достижения более тонкой детализации компенсации движения без увеличения полосы пропускания доступа к памяти для компенсации движения. В варианте осуществления (например, VVC) после того, как выполняется компенсация аффинного движения на основе субблока, различия (или значения уточнения, уточнения, уточнения предсказания), полученные на основе уравнения оптического потока, могут быть добавлены к предсказанным отсчетам (например, предсказанным отсчетам яркости, или отсчетам предсказания яркости) для получения уточненных предсказанных отсчетов.

[0127] На фиг. 13 показана схематическая иллюстрацию примера метода PROF в соответствии с вариантом осуществления изобретения. Текущий блок (1310) можно разделить на четыре субблока (1312, 1314, 1316 и 1318). Каждый из субблоков (1312, 1314, 1316 и 1318) может иметь размер 4×4 пикселя или отсчетов. Субблок MV (1320) для субблока (1312) может быть получен согласно CPMV текущего блока 1310, например, с использованием центрального положения субблока (1312) и модели аффинного движения (например, аффинного с 4 параметрами модель движения, 6-параметрическая модель аффинного движения). Субблок MV (1320) может указывать на опорный субблок (1332) в опорном изображении. Предсказанные отсчеты начального субблока могут быть определены согласно опорному субблоку (1332).

[0128] В некоторых примерах поступательное движение от опорного субблока (1332) к субблоку (1312), как описано субблоком MV (1320), может не предсказывать субблок (1312) с высокой точностью. В дополнение к поступательному движению, описанному субблоком MV (1320), субблок (1312) также может испытывать непереводное движение (например, вращение, как показано на фиг. 13). Как показано на фиг. 13, субблок (1350) в опорном изображении, имеющий закрашенные выборки (например, отсчет (1332а)), соответствует и может использоваться для восстановления отсчетов в субблоке (1312). Закрашенный отсчет (1332а) может быть сдвинут пикселем MV (1340) для восстановления отсчета (1312а) в субблоке (1312) с высокой точностью. Таким образом, в некоторых примерах, когда происходит непереводное движение, для повышения точности предсказания подходящий способ уточнения предсказания может применяться в модели аффинного движения, как описано ниже.

[0129] В примере метод PROF реализуется с использованием следующих четырех шагов. На этапе (1) компенсация аффинного движения на основе субблока может выполняться для генерации предсказания, такого как начальное предсказание субблока I(i,j), для текущего субблока (например, субблока (1312)), где i и j - координаты, соответствующие позиции отсчета (i,j) (также называемой позицией отсчета, положением отсчета) в текущем субблоке (1312).

[0130] На этапе (2) могут быть выполнены вычисления градиента, где пространственные градиенты gx(i,j) gy(i,j) и предсказание начального субблока I(i,j) в каждой позиции отсчета (i,j) могут быть вычислены с использованием, например, 3-отводного фильтра [-1, 0, 1] согласно уравнению 3 и уравнению 4, как показано ниже:

Предсказание субблока может быть расширено на один пиксель с каждой стороны для вычислений градиента. В некоторых вариантах осуществления, чтобы уменьшить полосу пропускания памяти и сложность, пиксели на расширенных границах могут быть скопированы из позиции ближайшего целого пикселя в опорном изображении (например, опорном изображении, включающем субблок (1332)). Следовательно, можно избежать дополнительной интерполяции для области заполнения.

[0131] На этапе (3) уточнение предсказания ΔI(i,j) может быть вычислено по формуле 5 (например, уравнение оптического потока), как показано ниже.

где Δmv(i,j) (например, ΔMV (1342)) - это разница MV между пиксельным MV или отсчетом MV mv(i,j) (например, пиксель MV (1340)) для местоположения отсчета (i,j) и блоком MV Mv_SB (например, субблоком MV (1320)) субблока (например, субблок (1312)), в котором (i,j) находится место отсчета, также Δmv(i,j) может называться уточнением MV (MVR) для отсчета, который находится в месте отсчета (i,j), или отсчет (i,j). Δmv(ij) можно определить с помощью уравнения. 6, как показано ниже.

Δmv_x (i,j) и Δmv_y (i,j) являются составляющей x (например, горизонтальной составляющей) и у-составляющей (например, вертикальной составляющей) разности MV Δmv(i,j), соответственно.

[0132] Поскольку параметры аффинной модели и положения пикселей относительно центрального положения субблока не изменяются от одного субблока к другому субблоку, их Δmv(i,j) можно вычислить для первого субблока (например, субблока (1312)) и повторно использовать для других субблоков (например, субблоки (1314), (1316) и (1318)) в одном текущем блоке (1310). В некоторых примерах, х и у представляют горизонтальный сдвиг и вертикальный сдвиг позиции отсчета (i,j) относительно центральной позиции субблока (1312) Δmv(i,j) (например, включая Δmvx(i,j) и Δmvy(i,j)) могут быть получены с помощью уравнения 7, как показано ниже,

где Δmvx(x,y) - компонентах, Δmvx(i,j) a Δmvy(x,y) - компонента у Δmvy(i,j).

[0133] В примере для 4-параметрической модели аффинного движения параметры ad описываются формулой (Ур. 1). Для 6-параметрической модели аффинного движения параметры ad описываются формулой (Ур. Как изложено выше.

[0134] На этапе (4) уточнение предсказания ΔI(i,j) (например, уточнение предсказания яркости) может быть добавлено к первоначальному предсказанию субблока, I(i,j) чтобы сгенерировать другое предсказание, такое как уточненное предсказание I'(i,j). Уточненное предсказание I' может быть произведено с помощью уравнения 8, как показано ниже для отсчета (i,j):

[0135] В некоторых случаях PROF не применяется для CU с аффинным кодом. В примере все MV контрольной точки одинаковы, что указывает на то, что CU имеет только поступательное движение, a PROF не применяется. В другом примере параметры аффинного движения больше указанного предела, тогда применяется PROF. Во втором случае компенсация аффинного движения на основе субблока снижается до компенсации движения на основе CU, чтобы избежать требования большой пропускной способности доступа к памяти.

[0136] В некоторых вариантах осуществления может применяться способ быстрого кодирования для уменьшения сложности кодирования оценки аффинного движения с помощью PROF. В методе быстрого кодирования PROF не применяется на этапе оценки аффинного движения в следующих двух ситуациях. В первой ситуации, если текущий CU не является корневым блоком и его родительский блок не выбирает аффинный режим в качестве наилучшего режима, PROF не применяется, поскольку возможность для текущего CU выбрать аффинный режим как лучший режим мала. Во второй ситуации, если величина четырех аффинных параметров (a-d) меньше заранее определенного порога и текущее изображение не является изображением с низкой задержкой, PROF не применяется, потому что улучшение, внесенное PROF, мало для этой ситуации. Таким образом, оценка аффинного движения с помощью PROF может быть ускорена.

[0137] В некоторых примерах (например, VVC) может использоваться предсказание вектора движения на основе субблока (SbTMVP). Подобно временному предсказанию вектора движения (TMVP) в HEVC, SbTMVP использует поле движения в совмещенном изображении для улучшения предсказания вектора движения и режима слияния для CU в текущем изображении. В некоторых примерах для SbTMVP используется одно и то же совмещенное изображение, используемое TMVP. SbTMVP отличается от TMVP в двух аспектах. В первом аспекте TMVP предсказывает движение на уровне CU, но SbTMVP предсказывает движение на уровне под-CU. Во втором аспекте TMVP выбирает временные векторы движения из совмещенного блока в совмещенном изображении (совмещенный блок является нижним правым или центральным блоком относительно текущего CU), SbTMVP применяет сдвиг движения перед извлечением информации о временном движении из совмещенное изображение. Сдвиг движения получается из вектора движения из одного из пространственных соседних блоков текущего CU.

[0138] На фиг. 14-15 показан пример процесса SbTMVP согласно некоторым вариантам осуществления настоящего изобретения. SbTMVP предсказывает векторы движения суб-CU в текущем CU в два этапа. На первом этапе рассматривается пространственный сосед А1, показанный на фиг. 14. Если пространственный сосед А1 имеет вектор движения, который использует совмещенное изображение в качестве своего опорного изображения, вектор движения выбирается как применяемый сдвиг движения. Если такое движение не идентифицировано, то сдвиг движения устанавливается на (0, 0).

[0139] На втором этапе сдвиг движения, идентифицированный на первом этапе, применяется (то есть добавляется к координатам текущего блока) для получения информации о движении субуровня CU (векторы движения и опорные индексы) из совмещенного изображения, как показано на фиг. 15. На примере фиг. 15, вектор движения А1 задан как сдвиг движения (1510). Затем для каждой суб-CU информация о движении соответствующего блока (наименьшая сетка движения, которая покрывает центральный отсчет) в совмещенном изображении используется для получения информации о движении для суб-CU. После того, как информация о движении совместно размещенного суб-CU идентифицирована, она преобразуется в векторы движения и опорные индексы текущего суб-CU аналогично процессу TMVP в HEVC. Например, масштабирование временного движения применяется для выравнивания опорных изображений векторов временного движения с изображениями текущего CU.

[0140] В некоторых примерах, таких как VVC, список кандидатов на слияние на основе субблоков используется для сигнализации режима слияния на основе субблоков. Список кандидатов на слияние на основе субблоков может включать в себя как кандидата SbTMVP, так и кандидатов на аффинное слияние, и в некоторых примерах называется объединенным списком кандидатов на слияние на основе субблока. Режим SbTMVP включается/выключается флагом, например флагом набора параметров последовательности (SPS). Когда режим SbTMVP включен, в примере, предсказатель SbTMVP добавляется как первая запись в объединенном списке кандидатов на слияние на основе субблоков, за которым следуют аффинные кандидаты слияния. В некоторых примерах (например, VVC) максимально допустимый размер объединенного списка кандидатов на слияние на основе субблоков равен 5. Следует отметить, что максимально допустимый размер объединенного списка кандидатов на слияние на основе субблоков может быть другим подходящим числом.

[0141] В примере размер суб-CU, используемый в SbTMVP, фиксирован равным 8×8, и, как это сделано для режима аффинного слияния, режим SbTMVP применим только к CU, ширина и высота которого больше или равны 8.

[0142] В некоторых вариантах осуществления логика кодирования дополнительного кандидата на слияние SbTMVP такая же, как и для других кандидатов на слияние. В примере для каждого CU в Р- или В-срезе выполняется дополнительная проверка искажения скорости, чтобы решить, следует ли использовать кандидата SbTMVP.

[0143] Согласно некоторым аспектам изобретения, максимальное количество кандидатов в объединенном списке кандидатов на слияние на основе субблока может сигнализироваться.

[0144] На фиг. 16 показан пример (1600) таблицы синтаксиса для набора параметров последовательности (SPS) в некоторых примерах. SPS включает в себя информацию, которая может применяться к серии последовательно кодированных видеоизображений (также называемой кодированной видеопоследовательностью).

[0145] В примере таблицы синтаксиса (1600) сигнализируется флаг sps_temporal_mvp_enabled_flag, как показано посредством (1610). Флаг sps_temporal_mvp_enabled_flag, равный 1, указывает, что в кодированном видео могут использоваться предсказатели временного вектора движения; а флаг sps_temporal_mvp_enabled_flag, равный 0, указывает, что предикторы временных векторов движения не используются в кодированном видео. В некоторых примерах кодированное видео может называться видеопоследовательностью кодированного уровня (CLVS), которая представляет собой группу изображений, принадлежащих к одному уровню, начиная с точки произвольного доступа, за которой следуют изображения, которые могут зависеть друг от друга, и изображение точки произвольного доступа.

[0146] В примере связанной синтаксической таблицы (1600), когда флаг sps_temporal_mvp_enabled_flag равен 1, два флага sps_sbtmvp_enabled_flag и sps_affine_enabled_flag могут сигнализироваться, как показано посредством (1620) и (1630). Флаг sps_sbtmvp_enabled_flag, равный 1, указывает, что предсказатели временного вектора движения на основе субблока могут использоваться при декодировании изображений со слайсами, имеющими тип слайса, не равный I (интра-кодирование) в кодированном видео. Флаг sps_sbtmvp_enabled_flag, равный 0, указывает, что предсказатели временного вектора движения на основе субблока не используются в кодированном видео. В примере, когда флаг sps_sbtmvp_enabled_flag не передается, можно сделать вывод, что флаг sps_sbtmvp_enabled_flag равен 0.

[0147] Флаг sps_affine_enabled_flag указывает, может ли компенсация движения на основе аффинной модели использоваться для интер-кадрового предсказания. Когда флаг sps_affine_enabled_flag равен 0, в некоторых примерах синтаксис ограничен так, что в кодированном видео не используется компенсация движения на основе аффинной модели. В противном случае (sps_affine_enabled_flag равно 1) в кодированном видео может использоваться компенсация движения на основе аффинной модели.

[0148] В примере (1600) таблицы синтаксиса, когда флаг sps_affine_enabled_flag равен 1, может передаваться сигнал о параметре, например, five_minus_max_num_subblock_merge_cand. Параметр five_minus_max_num_subblock_merge_cand указывает максимальное количество кандидатов на слияние на основе субблоков, поддерживаемых в SPS, за вычетом 5. Значение five_minus_max_num_subblock_merge_cand находится в диапазоне от 0 до 5 включительно в некоторых примерах. Например, когда значение five_minus_max_num_subblock_merge_cand равно 2, максимальное количество кандидатов в объединенном списке кандидатов на слияние на основе субблока равно 3 (5 вычитает 2).

[0149] В некоторых примерах предсказатель временного вектора движения может быть включен/отключен на уровне заголовка изображения. На фиг. 17 показан пример (1700) таблицы синтаксиса для структуры заголовка изображения в некоторых примерах.

[0150] В примере таблицы синтаксиса (1700), когда флаг sps_temporal_mvp_enabled_flag уровня SPS равен 1, сигнализируется флаг ph temporal mvp enabled flag, как показано посредством (1710). Флаг ph_temporal_mvp_enabled_flag указывает, можно ли использовать предикторы временного вектора движения для интер-кадрового предсказания для слайсов, связанных с заголовком изображения. Если ph_temporal_mvp_enabled_flag равен 0, элементы синтаксиса слайсов, ассоциированных с заголовком изображения, ограничены так, что никакой предсказатель временного вектора движения не используется при декодировании слайсов. В противном случае (ph_temporal_mvp_enabled_flag равно 1) временные предсказатели вектора движения могут использоваться при декодировании слайсов, связанных с заголовком изображения. Если его нет, в примере значение ph_temporal_mvp_enabled_flag предполагается равным 0. Когда ни одно опорное изображение в буфере декодированных изображений не имеет того же пространственного разрешения, что и текущее изображение, значение ph_temporal_mvp_enabled_flag должно быть равно 0.

[0151] Максимальное количество кандидатов на слияние на основе субблоков может быть получено на основе флагов и параметров, о которых сообщается или делается вывод. В примере переменная MaxNumSubblockMergeCand используется для обозначения максимального количества кандидатов на слияние на основе субблока. В примере, когда sps_affine_enabled_flag равно 1, MaxNumSubblockMergeCand выводится согласно (Ур. 9), и когда sps_affine_enabled_flag равно 0, MaxNumSubblockMergeCand выводится согласно (Ур. 10):

[0152] В некоторых примерах значение MaxNumSubblockMergeCand находится в диапазоне от 0 до 5 включительно.

[0153] Согласно аспекту изобретения, когда sps_affine_enabled_flag сигнализируется как 1, MaxNumSubblockMergeCand является производным от five_minus_max_num_subblock_merge_cand, как описано в (Ур. 9). В некоторых примерах разрешен сценарий, в котором sps_affine_enabled_flag сигнализируется как 1, а five_minus_max_num_subblock_merge_cand сигнализируется как равное 5. В этом сценарии максимальное количество кандидатов на слияние на основе субблока MaxNumSubblockMergeCand получается как 0, что может отключить режим аффинного слияния, а также для SbTMVP независимо от флагов включения SbTMVP, и может вызывать конфликты, когда флаги включения SbTMVP указывают на то, что sbTMVP является включено.

[0154] Аспекты изобретения предусматривают методы для установки диапазона значений числа для кандидатов на слияние на основе субблока (также называемого максимальным количеством кандидатов на слияние на основе субблока) в соответствии с числом по умолчанию (например, обозначенным N) кандидатов на слияние на основе субблока и связанных флаг использования высокого уровня для инструментов кодирования affine и/или SbTMVP. Например, когда флаги включения SbTMVP указывают на то, что SbTMVP включен, максимальное количество кандидатов на слияние на основе субблоков не равно 0.

[0155] В некоторых вариантах осуществления параметр five_minus_max_num_subblock_merge_cand имеет отрицательную корреляцию с максимальным количеством кандидатов на слияние на основе субблока, и верхний предел параметра five_minus_max_num_subblock_merge_cand определяется на основе флагов включения SbTMVP.

[0156] В варианте осуществления параметр five_minus_max_num_subblock_merge_cand задает максимальное количество кандидатов предсказания вектора движения на основе слияния на основе субблока, поддерживаемых в SPS, вычтенном из N, и, кроме того, значение параметра five_minus_max_num_subblock_merge_cand ограничено диапазоном от 0_pcd_svcd, включая Nd_s_vcd - sp. Верхний предел параметра five_minus_max_num_subblock_merge_cand зависит от флага sps_sbtmvp_enabled_flag.

[0157] В некоторых примерах значение по умолчанию N равно 5, когда флаг sps_sbtmvp_enabled_flag равен 0 (SbTMVP отключен), значение параметра five_minus_max_num_subblock_merge_cand может находиться в диапазоне от 0 до 5 включительно. Однако, когда флаг sps_sbtmvp_enabled_flag равен 1 (SbTMVP включен), значение параметра five_minus_max_num_subblock_merge_cand может находиться в диапазоне от 0 до 4 включительно. В примере на стороне кодировщика, когда флаг sps_sbtmvp_enabled_flag равен 1, а вычисленное значение параметра five_minus_max_num_subblock_merge_cand равно 5, что выше верхнего предела, сигнальное значение параметра five_minus_max_num_subblock_merge_cand - в кодированном битовом потоке видео равно 4, которое ограничено в диапазоне от 0 до 4 включительно.

[0158] В некоторых примерах, когда значение параметра five_minus_max_num_subblock_merge_cand равно верхнему пределу диапазона, параметр five_minus_max_num_subblock_merge_cand может не передаваться в битовом потоке кодированного видео со стороны кодера. На стороне декодера, когда декодер обнаруживает, что параметр five_minus_max_num_subblock_merge_cand не присутствует в кодированном потоке битов видео, декодер может сделать вывод, что значение параметра five_minus_max_num_subblock_merge_cand является верхним пределом диапазона. Верхний предел диапазона может быть определен на основе флагов включения SbTMVP. Например, значение five_minus_max_num_subblock_merge_cand предполагается равным N - sps_sbtmvp_enabled_flag. В некоторых примерах значение по умолчанию N равно 5, когда флаг sps_sbtmvp_enabled_flag равен 0 (SbTMVP отключен), значение параметра five_minus_max_num_subblock_merge_cand может быть от 0 до 5. Однако, когда флаг sps_sbtmvp_enabled_flag равен 1 (SbTMVP включен), значение параметра five_minus_max_num_subblock_merge_cand может быть 4.

[0159] В другом варианте осуществления верхний предел параметра five_minus_max_num_subblock_merge_cand определяется на основе комбинации нескольких флагов включения SbTMVP, таких как первый флаг sps_sbtmvp_enabled_flag на уровне SPS и второй флаг ph_temporal_mvp_enabled_flag на уровне заголовка изображения. В примере значение параметра five minus_max_num_subblock_merge_cand ограничено диапазоном от 0 до N - (sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag) включительно. Когда параметр five_minus_max_num_subblock_merge_cand не присутствует в битовом потоке кодированного видео, значение five_minus_max_num_subblock_merge_cand предполагается равным N - (sps_sbtmvp_enabled_flag && ph_temporal_mv_mv_temporal_mv.

[0160] В некоторых примерах значение по умолчанию N равно 5, когда по меньшей мере один из первого флага sps_sbtmvp_enabled_flag и второго флага ph_temporal_mvp_enabled_flag равен 0 (SbTMVP отключен), значение параметра five_minus_max_num_subblock_merge_cand может находиться в диапазоне от 0 до 5 включительно. Однако, когда и первый флаг sps_sbtmvp_enabled_flag, и второй флаг ph_temporal_mvp_enabled_flag равны 1 (SbTMVP включен), значение параметра five_minus_max_num_subblock_merge_cand может находиться в диапазоне от 0 до 4 включительно. В примере на стороне кодировщика, когда оба из первого флага sps_sbtmvp_enabled_flag и второго флага ph_temporal_mvp_enabled_flag равны 1, a вычисленное значение параметра five_minus_max_num_subblock_merge_cand равно 5, что выше верхнего предела, сигнализированное значение параметра five_minus_max_num_subblock_merge_cand в кодированном битовом потоке видео равно 4, который ограничен в диапазоне от 0 до 4 включительно.

[0161] В некоторых примерах, когда значение параметра five_minus_max_num_subblock_merge_cand равно верхнему пределу диапазона, параметр five_minus_max_num_subblock_merge_cand может не передаваться в битовом потоке кодированного видео со стороны кодера. На стороне декодера, когда декодер обнаруживает, что параметр five_minus_max_num_subblock_merge_cand не присутствует в кодированном потоке битов видео, декодер может сделать вывод, что значение параметра five_minus_max_num_subblock_merge_cand является верхним пределом диапазона. Верхний предел диапазона может быть определен на основе, например, подходящей комбинации первого флага sps_sbtmvp_enabled_flag и второго флага ph_temporal_mvp_enabled_flag. Например, значение five_minus_max_num_subblock_merge_cand предполагается равным N - (sps_sbtmvp_enabled_flag && ph_temporal_mvp_enabled_flag). В некоторых примерах число по умолчанию N равно 5, когда по меньшей мере один из первого флага sps_sbtmvp_enabled_flag и второго флага ph_temporal_mvp_enabled_flag равен 0 (SbTMVP отключен), значение параметра five_minus_max_num_subblock_merge_cand может находиться в диапазоне от 0 до 5 включительно. Однако, когда и первый флаг sps_sbtmvp_enabled_flag, и второй флаг ph_temporal_mvp_enabled_flag равны 1 (SbTMVP включен), значение параметра five_minus_max_num_subblock_merge_cand может быть равно 4.

[0162] На фиг. 18 показана блок-схема, описывающая процесс (1800) согласно варианту осуществления изобретения. Процесс (1800) может использоваться при реконструкции блока, чтобы сгенерировать блок предсказания для восстанавливаемого блока. В различных вариантах осуществления процесс (1800) выполняется схемой обработки, например, схемой обработки в оконечных устройствах (210), (220), (230) и (240), причем схема обработки выполняет функции видеокодера (303), схема обработки выполняет функции видеодекодера (310), схема обработки выполняет функции видеодекодера (410), схема обработки выполняет функции видеокодера (503), и т.п. В некоторых вариантах осуществления процесс (1800) реализован в программных инструкциях, таким образом, когда схема обработки выполняет программные инструкции, схема обработки выполняет процесс (1800). Процесс начинается с (S1801) и переходит к (S1810).

[0163] На этапе (S1810) параметр (например, five_minus_max_num_subblock_merge_cand, который указывает максимальное количество кандидатов в списках кандидатов на слияние на основе субблоков) определяется на основе информации предсказания, декодированной из кодированного битового потока видео. Параметр находится в диапазоне, который зависит от флага, указывающего состояние включения/выключения предсказания вектора движения на основе субблока. В некоторых примерах верхний предел диапазона зависит от флага, указывающего состояние включения/выключения предсказания вектора движения на основе субблока. В примере флаг указывает состояние включения/выключения временного предсказания вектора движения на основе субблока на уровне набора параметров последовательности (SPS).

[0164] В варианте осуществления значение параметра передается в кодированном битовом потоке видео. В другом примере, когда значение параметра не сигнализируется в кодированном потоке битов видео, значение параметра может быть выведено как верхний предел диапазона. В примере параметр может выводиться на основе числа по умолчанию и флага, указывающего состояние включения/выключения временного предсказания вектора движения на основе субблока в ответ на параметр, не сигнализируемый в кодированном битовом потоке видео.

[0165] В некоторых вариантах осуществления параметр находится в диапазоне, который зависит от первого флага, указывающего состояние включения/выключения временного предсказания вектора движения на основе субблока на уровне набора параметров последовательности (SPS), и второго флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне заголовка изображения (РН). В некоторых примерах, в ответ на то, что параметр не сообщается в кодированном битовом потоке видео, параметр может быть выведен на основе номера по умолчанию, первый флаг указывает статус включения/выключения временного предсказания вектора движения на основе субблока на уровне SPS, и второй флаг, указывает состояние включения/выключения временного предсказания вектора движения на уровне РН.

[0166] На этапе (S1820) максимальное количество кандидатов в списках кандидатов на слияние на основе субблоков вычисляется на основе параметра. В некоторых примерах максимальное количество кандидатов в списках кандидатов на слияние на основе субблоков вычисляется путем вычитания параметра из числа по умолчанию, например, используя (Ур. 9). В примере число по умолчанию равно 5.

[0167] На этапе (S1830), в ответ на текущий блок в режиме предсказания на основе субблока, отсчеты текущего блока восстанавливаются на основе выбора кандидата из созданного списка кандидатов на слияние на основе субблока текущего блока. Созданный список кандидатов на слияние на основе субблока для текущего блока ограничен максимальным количеством кандидатов в списках кандидатов на слияние на основе субблока.

[0168] Затем процесс переходит к (S1899) и завершается.

[0169] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 19 показана компьютерная система (1900), подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.

[0170] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т.п., одним или более центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т.п.

[0171] Инструкции могут исполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.

[0172] Компоненты, показанные на фиг. 19 для компьютерной системы (1900), являются примерными по своей сущности и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (1900).

[0173] Компьютерная система (1900) может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).

[0174] Устройства ввода с человеком могут включать в себя одно или несколько из (только по одному из каждого изображенного): клавиатура (1901), мышь (1902), трекпад (1903), сенсорный экран (1910), перчатка для данных (не показана), джойстик (1905), микрофон (1906), сканер (1907) и камера (1908).

[0175] Компьютерная система (1900) также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (1910), управляющей перчатки (не показана) или джойстика (1905), но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики (1909), наушники (не показаны)), устройства вывода изображения (например, экраны (1910), включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), топографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).

[0176] Компьютерная система (1900) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (1920) с CD/DVD или подобными носителями (1921), флэш-накопитель (1922), съемный жесткий диск или твердотельный накопитель (1923), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.

[0177] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.

[0178] Компьютерная система (1900) также может включать в себя интерфейс к одной или более коммуникационным сетям. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевещание, автомобильное и промышленное оборудование, включая CAN-шину и т.д. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры, которые подключены к определенным портам данных общего назначения или периферийным шинам (1949) (например, к портам USB компьютерной системы (1900)); другие обычно интегрированы в ядро компьютерной системы (1900) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1900) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.

[0179] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру (1940) компьютерной системы (1900).

[0180] Ядро (1940) может включать в себя один или несколько центральных процессоров (CPU) (1941), графических процессоров (GPU) (1942), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (1943), аппаратные ускорители (1944) для определенных задач, и т.д. Эти устройства, наряду с постоянной памятью (ROM) (1945), памятью с произвольным доступом (1946), внутренними запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и т.п. (1947), могут быть подключены через системную шину (1948). В некоторых компьютерных системах системная шина (1948) может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (1948) ядра, либо через периферийную шину (1949). Архитектуры для периферийной шины включают PCL, USB и т.п.

[0181] CPU (1941), GPU (1942), FGPA (1943) и ускорители (1944) могут исполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1945) или RAM (1946). Переходные данные также могут храниться в RAM (1946), тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости (1947). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть включены за счет использования кэш-памяти, которая может быть тесно связана с одним или несколькими CPU (1941), GPU (1942), запоминающим устройством (1947), ROM (1945), RAM (1946) и тому подобное.

[0182] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.

[0183] В качестве примера, но не ограничения, компьютерная система, имеющая архитектуру (1900) и, в частности, ядро (1940), может обеспечивать функциональность за счет процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), исполняющего программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенным хранилищем ядра (1940), которые имеют невременной характер, например, внутренним ЗУ (1947) большой емкости ядра или ROM (1945). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1940). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (1940) и, в частности, процессоры в нем (включая CPU, GPU, FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (1946) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель (1944)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее изобретение включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.

Приложение А: Сокращения

JEM: объединенная исследовательская модель

VVC: универсальное кодирование видео

BMS: набор тестов

MV: вектор движения

HEVC: высокоэффективное видеокодирование

SEI: дополнительная расширенная информация

VUI: информация о свойствах видео

GOPs: группы изображений

TUs: единицы преобразования,

PUs: единицы предсказания

CTUs: единицы дерева кодирования

CTBs: блоки дерева кодирования

PBs: блоки предсказания

HRD: гипотетический эталонный декодер

SNR: соотношение сигнал-шум

CPUs (ЦП): центральные процессоры

GPUs (ГП): графические процессоры

CRT (ЭЛТ): электронно-лучевая трубка

LCD (ЖКД): жидкокристаллический дисплей

OLED: органический светоизлучающий диод

CD: компакт-диск

DVD: цифровой видеодиск

ROM (ПЗУ): постоянное запоминающее устройство

RAM (ОЗУ): оперативное запоминающее устройство

ASIC: специализированная интегральная схема

PLD: программируемое логическое устройство

LAN: локальная сеть

GSM: глобальная система мобильной связи

LTE: долгосрочное развитие

CANBus (CAN-шина): шина локальной сети контроллера

USB: универсальная последовательная шина

PCI: соединение периферийных компонентов

FPGA (ППВМ): программируемые пользователем вентильные матрицы

SSD: твердотельный накопитель

IC: интегральная схема

CU: единица кодирования

[0184] Хотя это описание раскрывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в рамках его сущности и объема.

Похожие патенты RU2810318C1

название год авторы номер документа
Способ и устройство для видеокодирования 2020
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2789146C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2021
  • Ли Лин
  • Ли Сян
  • Лю Шань
RU2804382C1
СПОСОБ И УСТРОЙСТВО КОДИРОВАНИЯ ИЛИ ДЕКОДИРОВАНИЯ ВИДЕО 2020
  • Чжао Синь
  • Сюй Сяочжун
  • Ли Сян
  • Лю Шань
RU2782435C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Ли Лин
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2799066C1
Построение списка слияний в треугольном предсказании 2020
  • Ли Сян
  • Ли Гуйчунь
  • Сюй Сяочжун
  • Лю Шань
RU2781275C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Чэнь Лиэнь-Фэй
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2801587C1
Способ и устройство для передачи информации о размере списка кандидатов предсказателя 2020
  • Сюй Сяочжун
  • Ли Сян
  • Лю Шань
RU2779931C1
СПОСОБ И УСТРОЙСТВО СИГНАЛИЗАЦИИ ФЛАГОВ РЕЖИМА ПРОПУСКАНИЯ 2021
  • Сюй Сяочжун
  • Ли Гуйчунь
  • Лю Шань
RU2801586C1
ВЫВЕДЕНИЕ ВЕКТОРА ДВИЖЕНИЯ ПРИ ВИДЕОКОДИРОВАНИИ 2016
  • Ли, Сян
  • Чэнь, Ин
  • Чжан, Ли
  • Лю, Хонгбинь
  • Чэнь, Цзяньлэ
  • Карчевич, Марта
RU2742298C2
РЕЖИМ ГЕОМЕТРИЧЕСКОГО РАЗДЕЛЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕОДАННЫХ 2020
  • Чэнь Льень-Фэй
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2773732C1

Иллюстрации к изобретению RU 2 810 318 C1

Реферат патента 2023 года СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО

Изобретение относится к области кодирования/декодирования видео. Техническим результатом является повышение эффективности кодирования/декодирования. Предложено устройство декодирования видео, которое включает схемы приема и обработки, которые определяют параметр на основе информации предсказания, декодированной из кодированного битового потока видео. Параметр находится в диапазоне, который зависит от флага, указывающего состояние включения/выключения временного предсказания вектора движения на основе субблока. Схема обработки вычисляет максимальное количество кандидатов в списках кандидатов на слияние на основе субблока на основе параметра и восстанавливает, в ответ на текущий блок в режиме предсказания на основе субблока, отсчеты текущего блока на основе выбора кандидата из составленного на основе субблока списка кандидатов на слияние текущего блока. Составленный на основе субблока список кандидатов на слияние текущего блока ограничен максимальным числом. 3 н. и 14 з.п. ф-лы. 20 ил.

Формула изобретения RU 2 810 318 C1

1. Способ декодирования видео в декодере, включающий следующие этапы: определение процессором параметра на основе информации предсказания, декодированной из кодированного битового потока видео;

вычисление процессором максимального количества кандидатов в списках кандидатов на слияние на основе субблока на основе параметра, причем параметр находится в диапазоне от 0 до 5-sps_sbtmvp_enabled_flag, причем sps_sbtmvp_enabled_flag, равный 1, указывает, что предсказатели временного вектора движения на основе субблока используются при декодировании изображений со слайсами, имеющими тип слайса, не равный I (интра-кодирование) в кодированном видео, a sps_sbtmvp_enabled_flag, равный 0, указывает, что предсказатели временного вектора движения на основе субблока не используются в кодированном видео; и

восстановление, в ответ на текущий блок в режиме предсказания на основе субблока, отсчетов текущего блока на основе выбора кандидата из составленного списка кандидатов на слияние на основе субблока текущего блока, причем составленный на основе субблока список кандидатов на слияние текущего блока ограничен максимальным количеством кандидатов в списках кандидатов на слияние на основе субблока.

2. Способ по п. 1, дополнительно включающий: вычисление максимального количества кандидатов в списках кандидатов на слияние на основе субблока путем вычитания параметра из числа по умолчанию.

3. Способ по п. 2, в котором число по умолчанию равно 5.

4. Способ по п. 1, дополнительно включающий: получение параметра, сигнализируемого в кодированном битовом потоке видео.

5. Способ по п. 1, дополнительно включающий: вывод параметра на основе числа по умолчанию и sps_sbtmvp_enabled_flag в ответ на то, что параметр не сигнализируется в кодированном битовом потоке видео.

6. Способ по п. 1, в котором sps_sbtmvp_enabled_flag находится на уровне набора параметров последовательности (SPS).

7. Способ по п. 1, в котором параметр находится в диапазоне, который определяется на основе sps_sbtmvp_enabled_flag на уровне набора параметров последовательности (SPS), и флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне заголовка изображения (РН).

8. Способ по п. 7, дополнительно включающий: вывод параметра на основе числа по умолчанию, sps_sbtmvp_enabled_flag на уровне SPS, и флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне РН в ответ на то, что параметр не сигнализируется в кодированном битовом потоке видео.

9. Устройство декодирования видео, содержащее:

схему обработки, конфигурированную для:

определения параметра на основе информации предсказания, декодированной из кодированного битового потока видео;

вычисления максимального количества кандидатов в списках кандидатов на слияние на основе субблока на основе параметра, причем параметр находится в диапазоне от 0 до 5-sps_sbtmvp_enabled_flag, причем sps_sbtmvp_enabled_flag, равный 1, указывает, что предсказатели временного вектора движения на основе субблока используются при декодировании изображений со слайсами, имеющими тип слайса, не равный I (интра-кодирование) в кодированном видео, a sps_sbtmvp_enabled_flag, равный 0, указывает, что предсказатели временного вектора движения на основе субблока не используются в кодированном видео; и

восстановления, в ответ на текущий блок в режиме предсказания на основе субблока, отсчетов текущего блока на основе выбора кандидата из составленного списка кандидатов на слияние на основе субблока текущего блока, причем составленный на основе субблока список кандидатов на слияние текущего блока ограничен максимальным количеством кандидатов в списках кандидатов на слияние на основе субблока.

10. Устройство по п. 9, в котором схема обработки дополнительно конфигурирована для: вычисления максимального количества кандидатов в списках кандидатов на слияние на основе субблока путем вычитания параметра из числа по умолчанию.

11. Устройство по п. 10, в котором число по умолчанию равно 5.

12. Устройство по п. 9, в котором схема обработки конфигурирована для: получения параметра, сигнализируемого в кодированном битовом потоке видео.

13. Устройство по п. 9, в котором схема обработки конфигурирована для: вывода параметра на основе числа по умолчанию и sps_sbtmvp_enabled_flag в ответ на то, что параметр не сигнализируется в кодированном битовом потоке видео.

14. Устройство по п. 9, в котором sps_sbtmvp_enabled_flag находится на уровне набора параметров последовательности (SPS).

15. Устройство по п. 9, в котором параметр находится в диапазоне, который определяется на основе sps_sbtmvp_enabled_flag на уровне набора параметров последовательности (SPS), и флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне заголовка изображения (РН).

16. Устройство по п. 15, в котором схема обработки конфигурирована для: вывода параметра на основе числа по умолчанию, sps_sbtmvp_enabled_flag на уровне SPS, и флага, указывающего состояние включения/выключения временного предсказания вектора движения на уровне РН в ответ на то, что параметр не сигнализируется в кодированном битовом потоке видео.

17. Невременный машиночитаемый носитель, хранящий инструкции, которые при исполнении компьютером для декодирования видео предписывают компьютеру выполнять способ по любому из пп. 1-8.

Документы, цитированные в отчете о поиске Патент 2023 года RU2810318C1

OLENA CHUBACH et al, CE4-related: On maximum number of subblock-based merging candidates, Joint Video Experts Team (JVET) of ITU-T SG 16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-P0152-v1, 16th Meeting: Geneva, 1-11 October 2019
RUOYANG YU et al, AHG9: Max num of subblock merge candidate signalling, Joint Video Experts Team (JVET) of ITU-T SG 16

RU 2 810 318 C1

Авторы

Ли Гуйчунь

Ли Сян

Сюй Сяочжун

Лю Шань

Даты

2023-12-26Публикация

2021-04-01Подача