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

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

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

[1] Настоящая заявка испрашивает приоритет по заявке на патент США № 17/088073 «СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО», поданной 3 ноября 2020 г., которая испрашивает приоритет по предварительной заявке США № 62/960930, «СИГНАЛИЗАЦИЯ МАКСИМАЛЬНОГО КОЛИЧЕСТВА КАНДИДАТОВ ДЛЯ СЛИЯНИЯ ДЛЯ ВНЕШНЕГО ПРЕДСКАЗАНИЯ», поданной 14 января 2020 г. Полное раскрытие предшествующих заявок включено в данный документ посредством ссылки во всей своей полноте.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

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

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

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

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

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

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

[8] Различные механизмы предсказания MV описаны в H.265/HEVC (Рекомендация ITU-T H.265, «Высокоэффективное кодирование видео», декабрь 2016 г.). Из множества механизмов предсказания MV, предлагаемых H.265, в данном документе описывается технология, называемая ниже «пространственным слиянием».

[9] Со ссылкой на фиг.1 текущий блок (101) содержит сэмплы, которые были обнаружены кодером во время процесса поиска движения как предсказуемые из предыдущего блока того же размера, который был пространственно сдвинут. Вместо кодирования этого MV непосредственно, MV может быть получен из метаданных, связанных с одним или более опорными изображениями, например, из самого последнего (в порядке декодирования) опорного изображения, используя MV, связанный с одним из пяти окружающих сэмплов, обозначенных A0, A1 и B0, B1, B2 (от 102 до 106 соответственно). В H.265 предсказание MV может использовать предикторы из того же опорного изображения, которое использует соседний блок.

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

[10] Аспекты раскрытия предусматривают способы и устройства для кодирования/декодирования видео. В некоторых примерах устройство для декодирования видео включает в себя обрабатывающую схему. Обрабатывающая схема может декодировать, из кодированного битового видеопотока, первый элемент синтаксиса, сигнализированный на первом уровне кодирования. Первый элемент синтаксиса может указывать максимальное количество кандидатов для слияния при предсказании вектора движения (MVP). Первый уровень кодирования может находиться выше уровня набора параметров изображения (PPS). Обрабатывающая схема может определять максимальное количество кандидатов для слияния при MVP на основе первого элемента синтаксиса. Обрабатывающая схема может восстанавливать блоки кодирования, связанные с первым уровнем кодирования, на основе, по меньшей мере, максимального количества кандидатов для слияния при MVP.

[11] В варианте осуществления обрабатывающая схема может декодировать, из кодированного битового видеопотока, второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса, сигнализированные на первом уровне кодирования. Второй элемент синтаксиса может указывать максимальное количество кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP на основе субблоков и четвертый элемент синтаксиса может указывать максимальное количество кандидатов для слияния внутриблочной копии (IBC) при предсказании вектора блока (BVP). Обрабатывающая схема может определять (i) максимальное количество кандидатов для слияния в режиме геометрического слияния на основе второго элемента синтаксиса, (ii) максимальное количество кандидатов для слияния при MVP на основе субблоков на основе третьего элемента синтаксиса и (iii) максимальное количество кандидатов для слияния IBC при BVP на основе четвертого элемента синтаксиса.

[12] В варианте осуществления первый уровень кодирования представляет собой уровень последовательности, а первый элемент синтаксиса сигнализируют в наборе параметров последовательности (SPS).

[13] В варианте осуществления обрабатывающая схема может декодировать, из кодированного битового видеопотока и на основе удовлетворенного условия, второй элемент синтаксиса, сигнализированный на втором уровне кодирования. Второй элемент синтаксиса может указывать максимальное количество кандидатов для слияния для одного из режима геометрического слияния, режима слияния на основе субблоков и режима слияния внутриблочной копии (IBC). В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим геометрического слияния. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния в режиме геометрического слияния. Второй элемент синтаксиса указывает максимальное количество кандидатов для слияния в режиме геометрического слияния. Условием является то, что режим геометрического слияния разрешен на втором уровне кодирования и максимальное количество кандидатов для слияния при MVP больше или равно 3. Обрабатывающая схема может определять максимальное количество кандидатов для слияния в режиме геометрического слияния на основе второго элемента синтаксиса.

[14] В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния на основе субблоков. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния при MVP на основе субблоков. Второй элемент синтаксиса указывает максимальное количество кандидатов для слияния при MVP на основе субблоков. Условием является разрешение аффинного режима на втором уровне кодирования. Обрабатывающая схема может определять максимальное количество кандидатов для слияния при MVP на основе субблоков на основе второго элемента синтаксиса. В одном примере второй элемент синтаксиса модифицируют на уровне кодирования, находящемся ниже второго уровня кодирования. В одном примере первый уровень кодирования и второй уровень кодирования представляют собой уровень последовательности, а уровень кодирования, находящийся ниже второго уровня кодирования, представляет собой уровень изображения.

[15] В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния IBC. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния IBC при предсказании вектора блока (BVP). Второй элемент синтаксиса указывает максимальное количество кандидатов для слияния IBC при BVP. Условием является то, что режим слияния IBC разрешен на втором уровне кодирования. Обрабатывающая схема может определять максимальное количество кандидатов для слияния IBC при BVP на основе второго элемента синтаксиса.

[16] В одном примере первый уровень кодирования и второй уровень кодирования представляют собой уровень последовательности.

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

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

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

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

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

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

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

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

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

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

[26] Фиг.8 показывает примерный режим геометрического слияния.

[27] Фиг.9 показывает примерный синтаксис, сигнализированный в наборе параметров изображения (PPS).

[28] Фиг.10 показывает примерный синтаксис, сигнализированный в заголовке изображения.

[29] Фиг.11 показывает примерный синтаксис, сигнализированный в наборе параметров последовательности (SPS).

[30] Фиг.12 показывает примерный синтаксис, сигнализированный в PPS.

[31] Фиг.13 показывает примерный синтаксис, сигнализированный в заголовке изображения.

[32] Фиг.14 показывает примерный синтаксис, сигнализированный в заголовке изображения.

[33] Фиг.15 показывает примерный синтаксис в заголовке изображения.

[34] Фиг.16 показывает примерный синтаксис в SPS.

[35] Фиг.17 показывает примерный синтаксис в SPS.

[36] Фиг.18А показывает примерный синтаксис в SPS.

[37] Фиг.18В показывает примерный синтаксис в заголовке изображения.

[38] Фиг.19А показывает примерный синтаксис в SPS.

[39] Фиг.19В показывает примерный синтаксис в заголовке изображения.

[40] Фиг.20 показывает примерный синтаксис в SPS.

[41] Фиг.21 показывает блок-схему, описывающую процесс (2100) согласно варианту осуществления раскрытия.

[42] Фиг.22 - схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[61] Видео декодер (410) может выполнять операции декодирования согласно предварительно определенной технологии сжатия видео по стандарту, такому как ITU-T Rec. H.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность соответствует как синтаксису технологии или стандарту сжатия видео, так и профилям, документированным в технологии или стандарте сжатия видео. В частности, профиль может выбирать определенные инструменты как единственные инструменты, доступные для использования в этом профиле из всех инструментов, доступных в технологии или стандарте сжатия видео. Также для соответствия может быть необходимо, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту сэмплов восстановления (измеряемую, например, в мегасэмплах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены спецификациями гипотетического опорного декодера (HRD) и метаданными для управления буфером HRD, сигнализированными в кодированной видеопоследовательности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[80] Изображения источника обычно могут быть пространственно разделены на множество блоков сэмплов (например, блоки из 4x4, 8x8, 4x8 или 16x16 сэмплов каждый) и кодированы на поблочной основе. Блоки могут быть кодированы с предсказанием со ссылкой на другие (уже кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут быть кодированы без предсказания или они могут быть кодированы с предсказанием со ссылкой на уже кодированные блоки того же изображения (пространственное предсказание или внутреннее предсказание). Блоки пикселей P-изображений могут быть кодированы с предсказанием посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно прежде кодированное опорное изображение. Блоки пикселей В-изображений могут быть кодированы с предсказанием посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два прежде кодированных опорных изображения.

[81] Видео кодер (503) может выполнять операции кодирования в соответствии с предварительно определенной технологией или стандартом кодирования видео, например ITU-T Rec. H.265. При своей работе видео кодер (503) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, использующие временную и пространственную избыточности во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.

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

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

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

[85] Кроме того, может использоваться технология режима слияния для улучшения эффективности кодирования при межкадровом предсказании.

[86] Согласно некоторым вариантам осуществления раскрытия, предсказания, такие как межкадровое предсказания и внутрикадровое предсказания, выполняются в единице блоков. Например, в соответствии со стандартом HEVC изображение в последовательности видеоизображений разделяется на единицы кодового дерева (CTU) для сжатия, CTU в изображении имеют одинаковый размер, например 64x64 пикселей, 32x32 пикселей или 16x16 пикселей. В целом, CTU включает в себя три блока кодового дерева (CTB), представляющих собой один CTB яркости и два CTB цветности. Каждая CTU может быть рекурсивно разделена с помощью квадродерева на одну или более единиц кодирования (CU). Например, CTU из 64x64 пикселей может быть разделена на одну CU из 64x64 пикселей или 4 CU из 32x32 пикселей, или 16 CU из 16x16 пикселей. В одном примере каждая CU анализируется для определения типа предсказания для CU, такого как тип внешнего предсказания или тип внутреннего предсказания. CU разделяется на одну или более единиц предсказания (PU) в зависимости от временного и/или пространственного предсказания. В целом, каждая PU включает в себя блок предсказания яркости (PB) и два PB цветности. В варианте осуществления операция предсказания при кодировании (кодирование/декодирование) выполняется в единице блока предсказания. Используя блок предсказания яркости в качестве примера блока предсказания, блок предсказания включает в себя матрицу значений (например, значений яркости) для пикселей, таких как 8x8 пикселей, 16x16 пикселей, 8x16 пикселей, 16x8 пикселей и тому подобное.

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

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

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

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

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

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

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

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

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

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

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

[98] Внешний декодер (780) конфигурирован для приема информации внешнего предсказания и генерации результатов внешнего предсказания на основе информации внешнего предсказания.

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

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

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

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

[103] Аспекты раскрытия относятся к технологиям кодирования видео, таким как сигнализация длины (длин) различных списков кандидатов для слияния для соответствующих инструментов внешнего кодирования с предсказанием, таких как обычный режим слияния, режим слияния на основе субблоков, режим слияния внутриблочной копии (IBC) и режим геометрического слияния (GEO), которые, например, выходят за рамки HEVC и используются в VVC.

[104] Режим геометрического слияния (также называемый режимом геометрического разделения) может поддерживать множество различных способов разделения. Фиг.8 показывает примерный режим геометрического слияния. В режиме геометрического слияния, CU (800) может быть разделена на два раздела, разделы 1-2, разделенные линией или границей (810). Каждый из двух разделов может иметь любую подходящую форму, например треугольник, трапеция, пятиугольник и тому подобное.

[105] Кандидаты для слияния для внешнего предсказания могут быть эффективными при кодировании видео, например, в HEVC и VVC. В варианте осуществления, таком как VVC, четыре разных списка кандидатов для слияния (или списки слияния) могут присутствовать и создаваться на стороне кодера и декодера. Четыре списка кандидатов для слияния могут включать в себя список кандидатов для слияния (или первый кандидат для слияния) для обычного режима слияния, список кандидатов для слияния (или второй кандидат для слияния) для режима геометрического слияния, список кандидатов для слияния (или третий кандидат для слияния) для режима слияния на основе субблоков и список кандидатов для слияния (или четвертый кандидат для слияния) для режима слияния IBC.

[106] По сравнению с соответствующей технологией (такой как некоторые технологии в HEVC), первый список кандидатов для слияния для обычного режима слияния может быть расширен для включения большего количества вариантов кандидатов для слияния. Кроме того, максимальное количество кандидатов для слияния (или кандидатов для слияния при предсказании вектора движения (MVP)) в первом списке кандидатов для слияния может быть расширено, например, с 5 до 6. Максимальное количество кандидатов для слияния при MVP в первом списке кандидатов для слияния может быть сигнализировано в наборе параметров изображения (PPS) на уровне PPS или в заголовке изображения на уровне изображения.

[107] Фиг.9 показывает первый параметр уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1), сигнализированный в PPS. Первый параметр уровня PPS может указывать максимальное количество кандидатов для слияния при MVP. Фиг.10 показывает первый параметр уровня изображения (например, pic_six_minus_max_num_merge_cand), сигнализированный в заголовке изображения. Первый параметр уровня изображения может указывать максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand).

[108] Первый элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP, сигнализированное на соответствующем уровне кодирования. Например, первый элемент синтаксиса относится к первому параметру уровня PPS, сигнализированному на уровне PPS, или к первому параметру уровня изображения, сигнализированному на уровне изображения.

[109] Первый параметр уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1), равный 0, может указывать, что первый параметр уровня изображения (например, pic_six_minus_max_num_merge_cand) присутствует (или сигнализирован) в заголовках изображения, относящихся к PPS. Первый параметр уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1), превышающий 0, может указывать, что первый параметр уровня изображения (например, pic_six_minus_max_num_merge_cand) отсутствует (или не сообщен) в заголовках изображения, относящихся к PPS. Значение первого параметра уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1) может находиться в диапазоне от 0 до 6 включительно. Когда первый параметр уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1) отсутствует, первый параметр уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1) может быть принят равным 0.

[110] Первый параметр уровня изображения (например, pic_six_minus_max_num_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand), поддерживаемое в слайсах, связанных с заголовком изображения, вычтенное из 6. Максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) может быть определено с использованием уравнения 1.

MaxNumMergeCand = 6 - pic_six_minus_max_num_merge_cand

(Уравнение 1)

[111] Значение MaxNumMergeCand может находиться в диапазоне от 1 до 6 включительно. Когда первый параметр уровня изображения отсутствует, значение первого параметра уровня изображения (например, pic_six_minus_max_num_merge_cand) может быть принято равным первому параметру уровня PPS (например, pps_six_minus_max_num_merge_cand_plus1) - 1.

[112] Режим геометрического слияния может быть разрешен или не разрешен на уровне последовательности с использованием элемента синтаксиса SPS в наборе параметров последовательности (SPS). В одном примере элемент синтаксиса SPS представляет собой первый флаг уровня последовательности (например, sps_geo_enabled_flag). Фиг.11 показывает первый флаг уровня последовательности (например, sps_geo_enabled_flag), сигнализированный в SPS.

[113] Первый флаг уровня последовательности (например, sps_geo_enabled_flag) может указывать, может ли компенсация движения на основе режима геометрического слияния использоваться для внешнего предсказания. Первый флаг уровня последовательности (например, sps_geo_enabled_flag), равный 0, может указывать, что синтаксис должен быть ограничен таким образом, что компенсация движения на основе режима геометрического слияния не используется в кодированной видеопоследовательности уровня (CLVS), и элементы синтаксиса, связанные с режимом геометрического слияния, отсутствуют в синтаксисе единицы кодирования CLVS. Первый флаг уровня последовательности (например, sps_geo_enabled_flag), равный 1, может указывать, что компенсация движения на основе режима геометрического слияния может использоваться в CLVS.

[114] Параметр (параметры), указывающий максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand), может быть сигнализирован явно на уровне PPS или уровне изображения.

[115] Фиг.12 показывает примерный синтаксис, сигнализированный в PPS. Синтаксис включает в себя второй параметр уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1), указывающий максимальное количество кандидатов для слияния в режиме геометрического слияния. Фиг.13 показывает примерный синтаксис, сигнализированный в заголовке изображения. Синтаксис включает в себя второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand), указывающий максимальное количество кандидатов для слияния в режиме геометрического слияния.

[116] Второй элемент синтаксиса может указывать максимальное количество кандидатов для слияния в режиме геометрического слияния, сигнализированное на соответствующем уровне кодирования. Например, второй элемент синтаксиса относится ко второму параметру уровня PPS, сигнализированному на уровне PPS, или ко второму параметру уровня изображения, сигнализированному на уровне изображения.

[117] Второй параметр уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1), равный 0, может указывать, что второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) присутствует или сигнализирован в заголовках изображения слайсов, относящихся к PPS. Второй параметр уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1), превышающий 0, может указывать, что второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) отсутствует в заголовках изображения, относящихся к PPS. Значение второго параметра уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1) может находиться в диапазоне от 0 до MaxNumMergeCand - 1. Когда второй параметр уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1) отсутствует, второй параметр уровня PPS может принят равным 0.

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

[119] Когда второй параметр уровня изображения отсутствует, первый флаг уровня последовательности (например, sps_geo_enabled_flag) равен 1, а максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) больше или равно 2, второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) может быть принят равным (второй параметр уровня PPS- 1) (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1 - 1).

[120] Максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть определено на основе максимального количества кандидатов для слияния при MVP (MaxNumMergeCand) и второго параметра уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand), например, с использованием Уравнения 2.

MaxNumGeoMergeCand = MaxNumMergeCand - pic_max_num_merge_cand_minus_max_num_geo_cand (Уравнение 2)

[121] Когда второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) присутствует (то есть сигнализирован), значение MaxNumGeoMergeCand может находиться в диапазоне от 2 до MaxNumMergeCand включительно.

[122] Когда второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) отсутствует (т.е. не сигнализирован) и одно из (i) первый флаг уровня последовательности (например, sps_geo_enabled_flag) равен 0 и (ii) максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) меньше 2 удовлетворено, максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть установлено равным 0.

[123] Когда максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) равно 0, режим геометрического слияния не разрешен для слайсов, связанных с заголовком изображения.

[124] Второй параметр уровня PPS (например, pps_max_num_merge_cand_minus_max_num_geo_cand_plus1), второй параметр уровня изображения (например, pic_max_num_merge_cand_minus_max_num_geo_cand) и максимальное количество кандидатов для слияния при MVP (MaxNumGeoMergeCand) могут быть использованы для определения максимального количества кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand). Максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть установлено так, что оно не превышает значения MaxNumMergeCand. Значение MaxNumGeoMergeCand может варьироваться, например, в зависимости от конкретных приложений. Сигнализация PPS может быть эффективной, когда значение MaxNumGeoMergeCand не варьируется часто и, следовательно, его не нужно сигнализировать для каждого изображения. С другой стороны, сигнализация заголовка изображения может быть эффективной, когда MaxNumGeoMergeCand часто изменяется, например, от одного изображения на другое изображение.

[125] Фиг.14 показывает примерный синтаксис, сигнализированный в заголовке изображения. Синтаксис включает в себя третий параметр уровня изображения, сигнализированный в заголовке изображения (например, pic_five_minus_max_num_subblock_merge_cand), указывающий максимальное количество кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) (также называемое максимальным количеством кандидатов для слияния для режима слияния на основе субблоков).

[126] Третий элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP на основе субблоков, сигнализированное на соответствующем уровне кодирования. Например, третий элемент синтаксиса относится к третьему параметру уровня изображения, сигнализированному на уровне изображения.

[127] Третий параметр уровня изображения (например, pic_five_minus_max_num_subblock_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP на основе субблоков, поддерживаемых в слайсе, вычитаемое из значения 5. Когда третий параметр уровня изображения отсутствует (или не сигнализирован), значение третьего параметра уровня изображения (например, pic_five_minus_max_num_subblock_merge_cand) может быть принято равным (5 - (sps_sbtmvp_enabled_flag && pic_temporal_mvp_enabled_flag)). В одном примере sps_sbtmvp_enabled_flag является флагом уровня SPS, указывающим, разрешен ли режим SBTMVP на уровне SPS. В одном примере pic_temporal_mvp_enabled_flag является флагом уровня изображения, указывающим, разрешен ли временный режим MVP на уровне изображения.

[128] Максимальное количество кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) может быть определено на основе третьего параметра уровня изображения, например, (например, pic_five_minus_max_num_subblock_merge_cand) с использованием Уравнения 3.

MaxNumSubblockMergeCand = 5 - pic_five_minus_max_num_subblock_merge_cand (Уравнение 3)

[129] Значение максимального количества кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) может находиться в диапазоне от 0 до 5 включительно.

[130] Фиг.15 показывает примерный синтаксис, сигнализированный в заголовке изображения. Синтаксис включает в себя четвертый параметр уровня изображения (например, pic_six_minus_max_num_ibc_merge_cand), указывающий максимальное количество кандидатов для слияния IBC при предсказании вектора блока (BVP) (MaxNumIbcMergeCand) для режима слияния IBC.

[131] Четвертый элемент синтаксиса может указывать максимальное количество кандидатов для слияния IBC при BVP, сигнализированное на соответствующем уровне кодирования. Например, четвертый элемент синтаксиса относится к четвертому параметру уровня изображения, сигнализированному на уровне изображения.

[132] Четвертый параметр уровня изображения (например, pic_six_minus_max_num_ibc_merge_cand) может задавать максимальное количество кандидатов для слияния IBC при BVP, поддерживаемых в слайсах, связанных с заголовком изображения, вычтенное из значения 6. Максимальное количество кандидатов для слияния IBC при BVP (MaxNumIbcMergeCand) может быть определено на основе четвертого параметра уровня изображения (например, pic_six_minus_max_num_ibc_merge_cand), например, с использованием Уравнения 4.

MaxNumIbcMergeCand = 6 - pic_six_minus_max_num_ibc_merge_cand (Уравнение 4)

[133] Значение максимального количества кандидатов для слияния IBC при BVP (MaxNumIbcMergeCand) может находиться в диапазоне от 1 до 6 включительно.

[134] Элементы синтаксиса могут включать в себя первый элемент синтаксиса, второй элемент синтаксиса, третий элемент синтаксиса, четвертый элемент синтаксиса и тому подобное. Как описано выше, первый элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP, сигнализированное на соответствующем уровне кодирования (например, уровень кодирования выше уровня слайса или уровня изображения), и, таким образом, первый элемент синтаксиса может указывать длину списка кандидатов для слияния при MVP для обычного режима слияния. Список кандидатов для слияния при MVP может включать в себя кандидаты для слияния при MVP для обычного режима слияния. Например, первый элемент синтаксиса относится к первому параметру уровня PPS, сигнализированному на уровне PPS, или к первому параметру уровня изображения, сигнализированному на уровне изображения.

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

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

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

[138] Согласно аспектам раскрытия, первый элемент синтаксиса, сигнализированный на первом уровне кодирования, может быть декодирован из кодированного битового потока видео. Первый элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP. Первым уровнем кодирования может быть любой подходящий уровень кодирования, например, более высокий, чем уровень слайса. В одном примере первый уровень кодирования выше уровня PPS. Максимальное количество кандидатов для слияния при MVP может быть определено на основе первого элемента синтаксиса, например, на основе Уравнения 5. Как следствие, блоки кодирования, связанные с первым уровнем кодирования, могут быть восстановлены на основе, по меньшей мере, максимального количества кандидатов для слияния при MVP. В одном примере первый уровень кодирования представляет собой уровень последовательности, а первый элемент синтаксиса сигнализирован в SPS. Эффективность кодирования может увеличиваться, а затраты на сигнализацию могут уменьшаться, когда первый уровень кодирования увеличивается с более низкого уровня кодирования (например, уровень PPS) до более высокого уровня кодирования (например, уровень последовательности).

[139] Согласно аспектам раскрытия один или более элементов синтаксиса, относящихся к длине (длинам) соответствующих списков кандидатов для слияния (например, список кандидатов для слияния при MVP, список кандидатов для слияния в режиме геометрического слияния, список кандидатов для слияния при MVP на основе субблоков, список кандидатов для слияния IBC при BVP и/или тому подобное) могут быть сигнализированы на первом уровне кодирования. Первым уровнем кодирования может быть любой подходящий уровень кодирования. В одном примере первый уровень кодирования выше уровня слайса или уровня изображения. В одном примере первый уровень кодирования выше уровня PPS. Один или более элементов синтаксиса могут включать в себя первый элемент синтаксиса.

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

[141] В варианте осуществления второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса могут быть сигнализированы на первом уровне кодирования и могут быть декодированы из кодированного битового видеопотока. Второй элемент синтаксиса может указывать максимальное количество кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса может указывать максимальное количество кандидатов для слияния при MVP на основе субблоков и четвертый элемент синтаксиса может указывать максимальное количество кандидатов для слияния IBC при BVP. Максимальное количество кандидатов для слияния в режиме геометрического слияния может быть определено на основе второго элемента синтаксиса, максимальное количество кандидатов для слияния при MVP на основе субблоков может быть определено на основе третьего элемента синтаксиса, и максимальное количество кандидатов для слияния IBC при BVP может быть определено на основе четвертого элемента синтаксиса.

[142] Фиг.16 показывает примерный синтаксис в SPS. Элементы синтаксиса включают в себя первый элемент синтаксиса (например, six_minus_max_num_merge_cand), второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand), третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand_cand_cand_subblock_merge_cand_cand) и четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand).

[143] Первый элемент синтаксиса (например, six_minus_max_num_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) может быть определено на основе первого элемента синтаксиса (например, six_minus_max_num_merge_cand), например, на основе Уравнения 5.

MaxNumMergeCand = 6 - six_minus_max_num_merge_cand (Уравнение 5)

[144] Значение MaxNumMergeCand может находиться в диапазоне от 1 до 6 включительно.

[145] Второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) может задавать максимальное количество кандидатов для слияния в режиме геометрического слияния, поддерживаемых в SPS, вычитаемое из MaxNumMergeCand.

[146] Максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть определено на основе второго элемента синтаксиса и максимального количества кандидатов для слияния при MVP, например, с использованием Уравнения 6.

MaxNumGeoMergeCand = MaxNumMergeCand - max_num_merge_cand_minus_max_num_geo_cand (Уравнение 6)

[147] Когда второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) присутствует (или сигнализирован), значение максимального количества кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может находиться в диапазоне от 2 до максимального количества кандидатов для слияния при MVP (MaxNumMergeCand) включительно.

[148] Третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP на основе субблоков, поддерживаемых в SPS, вычитаемое из значения 5.

[149] Максимальное количество кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) может быть определено на основе третьего элемента синтаксиса (например, five_minus_max_num_subblock_merge_cand), например, с использованием Уравнения 7.

MaxNumSubblockMergeCand =

5 - five_minus_max_num_subblock_merge_cand (Уравнение 7)

[150] Значение MaxNumSubblockMergeCand может находиться в диапазоне от 0 до 5 включительно.

[151] Четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) может задавать максимальное количество кандидатов для слияния IBC при BVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния IBC при BVP (MaxNumIbcMergeCand) может быть определено на основе четвертого элемента синтаксиса (например, six_minus_max_num_ibc_merge_cand), например, с использованием Уравнения 8.

MaxNumIbcMergeCand = 6 - six_minus_max_num_ibc_merge_cand (Уравнение 8)

[152] Значение MaxNumIbcMergeCand может находиться в диапазоне от 0 до 6 включительно.

[153] В одном примере элементы синтаксиса, включая первый элемент синтаксиса, второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса, сигнализируются в PPS. Таким образом, первый элемент синтаксиса, второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса могут не изменяться внутри PPS и могут изменяться от первого PPS на второй PPS.

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

[155] В варианте осуществления элемент синтаксиса, сигнализированный на втором уровне кодирования, может быть декодирован из кодированного битового видеопотока на основе удовлетворенного условия. Элемент синтаксиса может указывать максимальное количество кандидатов для слияния для одного из режима геометрического слияния, режима слияния на основе субблоков, режима слияния IBC и тому подобное.

[156] В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим геометрического слияния. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния в режиме геометрического слияния. Элемент синтаксиса представляет собой второй элемент синтаксиса, указывающий максимальное количество кандидатов для слияния в режиме геометрического слияния. Со ссылкой на блок (1712) на фиг.17, условием является то, что режим геометрического слияния разрешен на втором уровне кодирования и максимальное количество кандидатов для слияния при MVP больше или равно 3. Максимальное количество кандидатов для слияния в режиме геометрического слияния может быть определено на основе второго элемента синтаксиса.

[157] В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния на основе субблоков. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния при MVP на основе субблоков. Элемент синтаксиса представляет собой третий элемент синтаксиса, указывающий максимальное количество кандидатов для слияния при MVP на основе субблоков. Со ссылкой на блок (1710) на фиг.17, условием является то, что аффинный режим разрешен на втором уровне кодирования. Максимальное количество кандидатов для слияния при MVP на основе субблоков может быть определено на основе третьего элемента синтаксиса.

[158] В одном примере один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния IBC. Максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния IBC при BVP. Элементом синтаксиса является четвертый элемент синтаксиса, указывающий максимальное количество кандидатов для слияния IBC при BVP. Со ссылкой на блок (1711) на фиг.17, условием является то, что режим слияния IBC разрешен на втором уровне кодирования. Максимальное количество кандидатов для слияния IBC при BVP может быть определено на основе четвертого элемента синтаксиса.

[159] В одном примере первый элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP, сигнализируется в SPS, а второй элемент синтаксиса, указывающий длину списка кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP на основе субблоков, и четвертый элемент синтаксиса, указывающий длину списка кандидатов для слияния IBC, сигнализируются условно, например, на уровне последовательности, как показано на фиг.17.

[160] Со ссылкой на фиг.17, первый элемент синтаксиса (например, six_minus_max_num_merge_cand) сигнализируется в SPS. Как описано выше, первый элемент синтаксиса (например, six_minus_max_num_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) может быть определено на основе первого элемента синтаксиса (например, six_minus_max_num_merge_cand), например, на основе Уравнения 5. Значение MaxNumMergeCand может находиться в диапазоне от 1 до 6 включительно.

[161] Со ссылкой на блок (1712) на фиг.17, второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) может быть сигнализирован, когда первый флаг уровня последовательности (например, sps_geo_enabled_flag) равен 1, а максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) больше или равно 3. В одном примере, первый флаг уровня последовательности (например, sps_geo_enabled_flag), равный 1, указывает, что режим геометрического слияния разрешен на уровне последовательности.

[162] Второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) может задавать максимальное количество кандидатов для слияния в режиме геометрического слияния, поддерживаемых в SPS, вычитаемое из MaxNumMergeCand.

[163] Максимальное количество кандидатов в режиме слияния GEO (MaxNumGeoMergeCand) может быть определено с помощью Уравнения 6.

[164] Когда второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) присутствует, значение максимального количества кандидатов режима слияния GEO (MaxNumGeoMergeCand) может находиться в диапазоне от 2 до максимального количества кандидатов для слияния при MVP (MaxNumMivergeCand), включительно.

[165] Когда второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) отсутствует, первый флаг уровня последовательности (например, sps_geo_enabled_flag) равен 1, а максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) равно 2, максимальное количество кандидатов в режиме слияния GEO (MaxNumGeoMergeCand) может быть установлено равным 2.

[166] Когда второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) отсутствует (или не сигнализирован) и одно из (i) первый флаг уровня последовательности (например, sps_geo_enabled_flag) равен 0 и (ii) максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) меньше 2 удовлетворено, максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть установлено равным 0.

[167] Со ссылкой на блок (1710) на фиг.17, третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) может быть сигнализирован, когда второй флаг уровня последовательности (например, sps_affine_enabled_flag) равен 1. В одном примере то, что второй флаг уровня последовательности (например, sps_affine_enabled_flag) равен 1, указывает, что аффинный режим разрешен на уровне последовательности.

[168] Третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP на основе субблоков, поддерживаемых в SPS, вычитаемое из значения 5. Когда третий элемент синтаксиса отсутствует, значение третьего элемента синтаксиса (например, five_minus_max_num_subblock_merge_cand) может быть принято равным (5 - sps_sbtmvp_enabled_flag).

[169] Максимальное количество кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) может быть определено на основе Уравнения 7.

[170] Значение MaxNumSubblockMergeCand может находиться в диапазоне от 0 до 5 включительно.

[171] Со ссылкой на блок (1711) на фиг.17, четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) может быть сигнализирован, когда третий флаг уровня последовательности (например, sps_ibc_enabled_flag) равен 1. В одном примере то, что третий флаг уровня последовательности (например, sps_ibc_enabled_flag) равен 1 указывает, что режим слияния IBC разрешен на уровне последовательности.

[172] Четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) может задавать максимальное количество кандидатов для слияния IBC при BVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния IBC при BVP (MaxNumIbcMergeCand) может быть определено на основе четвертого элемента синтаксиса (например, six_minus_max_num_ibc_merge_cand), например, с использованием Уравнения 8.

[173] Когда четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) отсутствует, MaxNumIbcMergeCand может быть равно 0.

[174] Значение MaxNumIbcMergeCand может находиться в диапазоне от 0 до 6 включительно.

[175] В одном примере, показанном на фиг.17, первый элемент синтаксиса сигнализируется на первом уровне кодирования (например, уровень последовательности), а второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса условно сигнализируются на втором уровне кодирования (например, уровень последовательности). Как альтернатива, первый элемент синтаксиса сигнализируется на первом уровне кодирования (например, уровень последовательности), а один или более из (i) второго элемента синтаксиса, (ii) третьего элемента синтаксиса, (iii) четвертого элемента синтаксиса, и/или другого элемента синтаксиса условно сигнализируются на втором уровне кодирования (например, на уровне последовательности). Первый уровень кодирования может быть идентичен второму уровню кодирования или быть выше него. В одном примере первый уровень кодирования и второй уровень кодирования представляют собой уровень последовательности.

[176] В варианте осуществления первый элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP, сигнализируется на первом уровне кодирования, а второй элемент синтаксиса, указывающий длину списка кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP на основе субблоков, и четвертый элемент синтаксиса, указывающий длину списка кандидатов для слияния IBC, сигнализируются условно на первом уровне кодирования. В одном примере первый уровень кодирования выше уровня слайса (или заголовка слайса), уровня изображения (или заголовка изображения) и тому подобное. В одном примере первый уровень кодирования представляет собой уровень последовательности.

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

[178] В варианте осуществления первый элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP, сигнализируется на первом уровне кодирования, а второй элемент синтаксиса, указывающий длину списка кандидатов для слияния в режиме геометрического слияния, и четвертый элемент синтаксиса, указывающий длину списка кандидатов для слияния IBC, сигнализируются условно на первом уровне кодирования. Другой элемент (элементы) синтаксиса, указывающий длину (длины) других списков кандидатов для слияния, такой как третий элемент синтаксиса, указывающий длину списка кандидатов для слияния при MVP на основе субблоков, может быть сигнализирован на втором уровне кодирования, находящемся ниже первого уровня кодирования. В одном примере первый уровень кодирования представляет собой уровень последовательности, а второй уровень кодирования представляет собой уровень PPS, уровень изображения или уровень слайса.

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

[180] Фиг.18A показывает, что первый элемент синтаксиса, второй элемент синтаксиса и четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) сигнализируются в SPS на уровне последовательности. Фиг.18B показывает, что третий элемент синтаксиса сигнализируется в заголовке изображения на уровне изображения. Элементы синтаксиса, показанные на фиг.18A-18B, могут быть применимы, когда первый элемент синтаксиса (например, six_minus_max_num_merge_cand), второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) и четвертый элемент синтаксиса не изменяются на уровне последовательности, а третий элемент синтаксиса (например, five_num_me_merge_ge_max_minus) может изменяться внутри последовательности.

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

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

[183] Фиг.19A показывает, что первый элемент синтаксиса, второй элемент синтаксиса и четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) сигнализируются в SPS на уровне последовательности и остаются неизменными на уровне последовательности. Фиг.19A-19B показывают, что третий элемент синтаксиса сигнализируется в SPS на уровне последовательности и может быть дополнительно модифицирован в заголовке изображения на уровне изображения. Элементы синтаксиса, показанные на фиг.19A-19B, могут быть применимы, когда первый элемент синтаксиса (например, six_minus_max_num_merge_cand), второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) и четвертый элемент синтаксиса не изменяются на уровне последовательности, а третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) может быть модифицирован от одного изображения на другое изображение.

[184] Когда третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) отсутствует в SPS и оба pic_temporal_mvp_enabled_flag и sps_sbtmvp_enabled_flag равны 1, максимальное количество кандидатов для слияния при MVP на основе субблоков может быть равным 1 для слайсов, связанных с текущим заголовком изображения.

[185] Согласно аспектам раскрытия, когда один или более из первого элемента синтаксиса, второго элемента синтаксиса, третьего элемента синтаксиса и четвертого элемента синтаксиса сигнализируются на первом уровне кодирования (например, уровень последовательности), например, выше уровня слайса или уровня изображения. Один или более из первого элемента синтаксиса, второго элемента синтаксиса, третьего элемента синтаксиса и четвертого элемента синтаксиса не могут быть обновлены, переопределены или модифицированы на уровне кодирования (например, на уровне PPS, уровне изображения или уровне слайса) ниже первого уровня кодирования (например, уровень последовательности).

[186] В одном примере первый элемент синтаксиса, второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса сигнализируются в SPS на уровне последовательности, и первый элемент синтаксиса, второй элемент синтаксиса, третий элемент синтаксиса и четвертый элемент синтаксиса не могут быть обновлены, переопределены или модифицированы на уровне кодирования (например, уровень PPS, уровень изображения или уровень слайса) ниже уровня последовательности.

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

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

[189] В одном примере, как показано с помощью блока (2010) на фиг.20, элемент синтаксиса или флаг (например, флаг six_minus_max_num_ibc_merge_cand_present), указывающий наличие четвертого элемента синтаксиса, относящегося к длине списка кандидатов для слияния IBC при BVP, используется для дополнительного указания на то, присутствует ли четвертый элемент синтаксиса, как показано на фиг.20. Соответственно, наличие четвертого элемента синтаксиса условно определяется на основе элемента синтаксиса (например, флаг six_minus_max_num_ibc_merge_cand_present) в дополнение к третьему флагу уровня последовательности (например, sps_ibc_enabled_flag). Четвертый элемент синтаксиса условно сигнализируется на основе элемента синтаксиса (например, флаг six_minus_max_num_ibc_merge_cand_present) и третьего флага уровня последовательности (например, sps_ibc_enabled_flag). Вышеприведенное описание может быть соответствующим образом адаптировано к сигнализации других элементов синтаксиса, таких как второй элемент синтаксиса, третий элемент синтаксиса и/или тому подобное.

[190] Первый элемент синтаксиса (например, six_minus_max_num_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния при MVP (MaxNumMergeCand) может быть определено на основе Уравнения 5, как описано выше. Значение MaxNumMergeCand может находиться в диапазоне от 1 до 6 включительно.

[191] Второй элемент синтаксиса (например, max_num_merge_cand_minus_max_num_geo_cand) может задавать максимальное количество кандидатов для слияния в режиме геометрического слияния, поддерживаемых в SPS, вычитаемое из MaxNumMergeCand.

[192] Максимальное количество кандидатов для слияния в режиме геометрического слияния (MaxNumGeoMergeCand) может быть определено на основе Уравнения 6, как описано выше.

[193] Когда max_num_merge_cand_minus_max_num_geo_cand присутствует, значение MaxNumGeoMergeCand может находиться в диапазоне от 2 до MaxNumMergeCand включительно.

[194] Когда max_num_merge_cand_minus_max_num_geo_cand отсутствует, а sps_geo_enabled_flag равен 1 и MaxNumMergeCand равен 2, MaxNumGeoMergeCand устанавливается равным 2.

[195] Когда max_num_merge_cand_minus_max_num_geo_cand отсутствует и (sps_geo_enabled_flag равен 0 или MaxNumMergeCand меньше 2), MaxNumGeoMergeCand устанавливается равным 0.

[196] Третий элемент синтаксиса (например, five_minus_max_num_subblock_merge_cand) может задавать максимальное количество кандидатов для слияния при MVP на основе субблоков, поддерживаемых в SPS, вычитаемое из значения 5. Когда второй элемент синтаксиса отсутствует, значение five_minus_max_num_subblock_c может быть принято равным (5 - sps_sbtmvp_enabled_flag).

[197] Максимальное количество кандидатов для слияния при MVP на основе субблоков (MaxNumSubblockMergeCand) может быть определено на основе Уравнения 7, как описано выше.

[198] Значение MaxNumSubblockMergeCand может находиться в диапазоне от 0 до 5 включительно.

[199] Элемент синтаксиса, флаг six_minus_max_num_ibc_merge_cand_present, может задавать наличие максимального числа кандидатов для слияния IBC при BVP. Когда флаг six_minus_max_num_ibc_merge_cand_present отсутствует, флаг six_minus_max_num_ibc_merge_cand_present может быть принят равным 0. Когда флаг six_minus_max_num_ibc_merge_cand_present присутствует, четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) присутствует в битовом потоке.

[200] Четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) может задавать максимальное количество кандидатов для слияния IBC при BVP, поддерживаемых в SPS, вычитаемое из значения 6. Максимальное количество кандидатов для слияния IBC при BVP (MaxNumIbcMergeCand) может быть определено с использованием Уравнения 8.

[201] Когда четвертый элемент синтаксиса (например, six_minus_max_num_ibc_merge_cand) отсутствует, MaxNumIbcMergeCand может быть равно 0.

[202] Значение MaxNumIbcMergeCand может находиться в диапазоне от 1 до 6 включительно.

[203] Фиг.21 показывает блок-схему, описывающую процесс (2100) согласно варианту осуществления раскрытия. Процесс (2100) может использоваться для сигнализации различных элементов синтаксиса, указывающих максимальные количества кандидатов для слияния, таких как максимальное количество кандидатов для слияния при MVP, максимальное количество кандидатов для слияния в режиме геометрического слияния, максимальное количество кандидатов для слияния при MVP на основе субблоков, максимальное количество кандидатов для слияния IBC при BVP и/или тому подобное. В различных вариантах осуществления процесс (2100) выполняется с помощью обрабатывающей схемы, такой как обрабатывающая схема в терминальных устройствах (210), (220), (230) и (240), обрабатывающая схема, выполняющая функции видео кодера (303), обрабатывающая схема, выполняющая функции видео декодера (310), обрабатывающая схема, выполняющая функции видео декодера (410), обрабатывающая схема, выполняющая функции видео кодера (503) и тому подобное. В некоторых вариантах осуществления процесс (2100) реализован в программных инструкциях, таким образом, когда обрабатывающая схема выполняет программные инструкции, обрабатывающая схема выполняет процесс (2100). Процесс начинается на (S2101) и переходит к (S2110).

[204] На (S2110) первый элемент синтаксиса, сигнализированный на первом уровне кодирования, может быть декодирован из кодированного битового видеопотока. Первый элемент синтаксиса может указывать максимальное количество кандидатов для слияния при предсказании вектора движения (MVP). Первый уровень кодирования может находиться выше уровня набора параметров изображения (PPS). В одном примере первый уровень кодирования представляет собой уровень последовательности.

[205] На (S2120) максимальное количество кандидатов для слияния при MVP может быть определено на основе первого элемента синтаксиса

[206] На (S2130) блоки кодирования, связанные с первым уровнем кодирования, могут быть восстановлены на основе, по меньшей мере, максимального количества кандидатов для слияния при MVP. Процесс (2100) переходит к (S2199) и завершается.

[207] Процесс (2100) может быть адаптирован соответствующим образом. Этап (этапы) в процессе (2100) может быть модифицирован и/или опущен. Могут быть добавлены дополнительные этапы. Может быть использован любой подходящий порядок реализации.

[208] В некоторых примерах дополнительные элементы синтаксиса, такие как один или более из второго элемента синтаксиса, третьего элемента синтаксиса и четвертого элемента синтаксиса, могут быть сигнализированы или условно сигнализированы. Соответственно, максимальное количество кандидатов для слияния в режиме геометрического слияния может быть определено на основе второго элемента синтаксиса, максимальное количество кандидатов для слияния при MVP на основе субблоков может быть определено на основе третьего элемента синтаксиса и максимальное количество кандидатов для слияния IBC при BVP может быть определено на основе четвертого элемента синтаксиса.

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

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

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

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

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

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

[215] Устройства ввода с человеческим интерфейсом могут включать в себя одно или более из (в каждом случае изображено только одно): клавиатура (2201), мышь (2202), трекпад (2203), сенсорный экран (2210), цифровая перчатка (не показана), джойстик (2205), микрофон (2206), сканер (2207), камера (2208).

[216] Компьютерная система (2200) также может включать в себя некоторые устройства вывода с человеческим интерфейсом. Такие устройства вывода с человеческим интерфейсом могут стимулировать чувства одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеческим интерфейсом могут включать в себя тактильные устройства вывода (например, тактильная обратная связь от сенсорного экрана (2210), цифровая перчатка (не показана) или джойстик (2205), однако также могут иметься устройства тактильной обратной связи, не служащие как устройства ввода), устройства звукового вывода (такие как: динамики (2209), наушники (не показаны)), устройства вывода изображения (такие как экраны (2210), включая экраны CRT, экраны LCD, плазменные экраны, экраны OLED, каждый с возможностью ввода с сенсорного экрана или без нее, каждый с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).

[217] Компьютерная система (2200) также может включать в себя доступные для пользователя устройства хранения и их связанные носители, такие как оптические носители, включая CD/DVD ROM/RW (2220) с CD/DVD или подобные носители (2221), флеш-накопитель (2222), съемный жесткий диск или твердотельный диск (2223), устаревшие магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе ROM/ASIC/PLD, такие как активационные аппаратные ключи (не показаны) и тому подобное.

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

[219] Компьютерная система (2200) также может включать в себя интерфейс для одной или более сетей связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные LAN, сотовые сети, включая GSM, 3G, 4G, 5G, LTE и тому подобное, проводные или беспроводные глобальные телевизионные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное телевизионное вещание, автомобильное и промышленное, включая CANBus и т.д. Для некоторых сетей обычно требуются адаптеры внешнего сетевого интерфейса, присоединенные к определенным портам данных общего назначения или периферийным шинам (2249) (такие как, например, порты USB компьютерной системы (2200)); другие обычно интегрированы в ядро компьютерной системы (2200) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (2200) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CANbus к определенным устройствам CANbus) или двунаправленной, например, к другим компьютерным системам, использующим локальные или глобальные цифровые сети. Определенные протоколы и стеки протоколов могут быть использованы в каждой из этих сетей и сетевых интерфейсов, как описано выше.

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

[221] Ядро (2240) может включать в себя один или более центральных процессоров (CPU) (2241), графических процессоров (GPU) (2242), специализированных программируемых процессоров в виде программируемых пользователем вентильных матриц (FPGA) (2243), аппаратные ускорители для определенных задач (2244) и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ROM) (2245), оперативным запоминающим устройством (2246), внутренними массовыми запоминающими устройствами, такими как внутренние жесткие диски, не доступные пользователю, твердотельные накопители и тому подобное (2247), могут быть подключены через системную шину (2248). В некоторых компьютерных системах системная шина (2248) может быть доступна в виде одного или более физических разъемов для обеспечения расширения с помощью дополнительных CPU, GPU и тому подобное. Периферийные устройства могут быть подключены либо непосредственно к системной шине (2248) ядра, либо через периферийную шину (2249). Архитектуры периферийной шины включают в себя PCI, USB и тому подобное.

[222] CPU (2241), GPU (2242), FPGA (2243) и ускорители (2244) могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (2245) или RAM (2246). Переходные данные также могут храниться в RAM (2246), тогда как постоянные данные могут храниться, например, во внутреннем массовом запоминающем устройстве (2247). Быстрое хранение и извлечение в любое из запоминающих устройств могут быть обеспечены за счет использования кэш-памяти, которая может быть тесно связана с одним или более CPU (2241), GPU (2242), массовым запоминающим устройством (2247), ROM (2245), RAM (2246) и тому подобное.

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

[224] Как пример, но не в качестве ограничения, компьютерная система, имеющая архитектуру (2200) и, в частности, ядро (2240), может обеспечивать функциональность в результате исполнения процессором (процессорами) (включая центральные процессоры, графические процессоры, FPGA, ускорители, и тому подобное) программного обеспечения, реализованного на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя массовым запоминающим устройством, как описано выше, а также определенным запоминающим устройством ядра (2240), которые являются невременными, такие как внутреннее массовое запоминающее устройство (2247) или ROM (2245). Программное обеспечение, реализующее различные варианты осуществления настоящего раскрытия, может храниться в таких устройствах и выполняться ядром (2240). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными требованиями. Программное обеспечение может побуждать ядро (2240) и, в частности, процессоры в нем (включая CPU, GPU, FPGA и тому подобное) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (2246), и модифицирование таких структур данных в соответствии с процессами, определенными программным обеспечением. Дополнительно или как альтернатива, компьютерная система может обеспечивать функциональность в результате логики, жестко кодированной или иным образом реализованной в схеме (например, ускоритель (2244)), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это необходимо. Ссылка на машиночитаемый носитель может охватывать схему (такую как интегральная схема (IC)), хранящую программное обеспечение для выполнения, схему, реализующую логику для выполнения, или обе, где это необходимо. Настоящее раскрытие охватывает любую подходящую комбинацию аппаратного и программного обеспечения.

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

JEM: модель совместного исследования

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

BMS: набор сравнительных тестов

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

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

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

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

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

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

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

CTU: единицы кодового дерева

CTB: блоки кодового дерева

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

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

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

CPU: центральные процессоры

GPU: графические процессоры

CRT: электронно-лучевая трубка

LCD: жидкокристаллический дисплей

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

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

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

ROM: постоянное запоминающее устройство

RAM: оперативное запоминающее устройство

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

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

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

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

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

CANBus: шина CAN

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

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

FPGA: программируемые пользователем вентильные матрицы

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

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

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

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

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

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Ли Лин
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2799066C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2021
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2810318C1
Построение списка слияний в треугольном предсказании 2020
  • Ли Сян
  • Ли Гуйчунь
  • Сюй Сяочжун
  • Лю Шань
RU2781275C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ВИДЕОКОДИРОВАНИЯ C ИСПОЛЬЗОВАНИЕМ УЛУЧШЕННОГО РЕЖИМА СЛИЯНИЯ С РАЗНОСТЬЮ ВЕКТОРОВ ДВИЖЕНИЯ 2019
  • Лай, Чен-Йен
  • Хсяо, Ю-Линг
  • Чуанг, Тзу-Дер
  • Чен, Чинг-Йех
RU2795830C2
Способ и устройство для передачи информации о размере списка кандидатов предсказателя 2020
  • Сюй Сяочжун
  • Ли Сян
  • Лю Шань
RU2779931C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ВИДЕОСИГНАЛА НА ОСНОВАНИИ ОСНОВАННОГО НА ИСТОРИИ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ 2019
  • Чжао, Джейн
  • Ким, Сеунгхван
RU2773431C1
Способ и устройство для кодирования видео 2020
  • Сюй Сяочжун
  • Чой Беондоо
  • Лю Шань
RU2780424C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ ВИДЕОСИГНАЛА НА ОСНОВАНИИ ОСНОВАННОГО НА ИСТОРИИ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ 2019
  • Чжао, Джейн
  • Ким, Сеунгхван
RU2807594C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ВИДЕОКОДИРОВАНИЯ C ИСПОЛЬЗОВАНИЕМ УЛУЧШЕННОГО РЕЖИМА СЛИЯНИЯ С РАЗНОСТЬЮ ВЕКТОРОВ ДВИЖЕНИЯ 2019
  • Лай, Чен-Йен
  • Хсяо, Ю-Линг
  • Чуанг, Тзу-Дер
  • Чен, Чинг-Йех
RU2768377C1
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Чэнь Лиэнь-Фэй
  • Ли Сян
  • Ли Гуйчунь
  • Лю Шань
RU2801587C1

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

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

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео. Декодируют из кодированного битового видеопотока первый элемент синтаксиса, сигнализированный на первом уровне кодирования. Причем первый элемент синтаксиса указывает максимальное количество кандидатов для слияния при предсказании вектора движения (MVP). При этом первый уровень кодирования находится выше уровня набора параметров изображения (PPS). Определяют максимальное количество кандидатов для слияния при MVP на основе декодированного первого элемента синтаксиса. Выполняют восстановление блоков кодирования, связанных с первым уровнем кодирования, на основе, по меньшей мере, определенного максимального количества кандидатов для слияния при MVP. 3 н. и 17 з.п. ф-лы, 22 ил.

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

1. Способ декодирования видео в декодере, содержащий:

декодирование, из кодированного битового видеопотока, первого элемента синтаксиса, сигнализированного на первом уровне кодирования, причем первый элемент синтаксиса указывает максимальное количество кандидатов для слияния при предсказании вектора движения (MVP), при этом первый уровень кодирования находится выше уровня набора параметров изображения (PPS);

определение максимального количества кандидатов для слияния при MVP на основе декодированного первого элемента синтаксиса; и

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

2. Способ по п.1, дополнительно содержащий:

декодирование, из кодированного битового видеопотока, второго элемента синтаксиса, третьего элемента синтаксиса и четвертого элемента синтаксиса, сигнализированных на первом уровне кодирования, причем второй элемент синтаксиса указывает максимальное количество кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса указывает максимальное количество кандидатов для слияния при MVP на основе субблоков и четвертый элемент синтаксиса указывает максимальное количество кандидатов для слияния внутриблочной копии (IBC) при предсказании вектора блока (BVP); и

определение (i) максимального количества кандидатов для слияния в режиме геометрического слияния на основе второго элемента синтаксиса, (ii) максимального количества кандидатов для слияния при MVP на основе субблоков на основе третьего элемента синтаксиса и (iii) максимального количества кандидатов для слияния IBC при BVP на основе четвертого элемента синтаксиса.

3. Способ по п.1, в котором первый уровень кодирования представляет собой уровень последовательности, а первый элемент синтаксиса сигнализируют в наборе параметров последовательности (SPS).

4. Способ по п.1, дополнительно содержащий:

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

5. Способ по п.4, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим геометрического слияния;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния в режиме геометрического слияния;

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния в режиме геометрического слияния;

условием является то, что режим геометрического слияния разрешен на втором уровне кодирования и максимальное количество кандидатов для слияния при MVP больше или равно 3; и

способ дополнительно включает в себя определение максимального количества кандидатов для слияния в режиме геометрического слияния на основе второго элемента синтаксиса.

6. Способ по п.4, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния на основе субблоков;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния при MVP на основе субблоков;

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния при MVP на основе субблоков;

условием является разрешение аффинного режима на втором уровне кодирования; и

способ дополнительно включает в себя определение максимального количества кандидатов для слияния при MVP на основе субблоков на основе второго элемента синтаксиса.

7. Способ по п.4, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния IBC;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния IBC при предсказании вектора блока (BVP);

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния IBC при BVP;

условием является то, что режим слияния IBC разрешен на втором уровне кодирования; и

способ дополнительно включает в себя определение максимального количества кандидатов для слияния IBC при BVP на основе второго элемента синтаксиса.

8. Способ по п.4, в котором первый уровень кодирования и второй уровень кодирования представляют собой уровень последовательности.

9. Способ по п.6, в котором второй элемент синтаксиса модифицируют на уровне кодирования, находящемся ниже второго уровня кодирования.

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

11. Устройство для декодирования видео, содержащее обрабатывающую схему, конфигурированную для:

декодирования, из кодированного битового видеопотока, первого элемента синтаксиса, сигнализированного на первом уровне кодирования, причем первый элемент синтаксиса указывает максимальное количество кандидатов для слияния при предсказании вектора движения (MVP), при этом первый уровень кодирования находится выше уровня набора параметров изображения (PPS);

определения максимального количества кандидатов для слияния при MVP на основе декодированного первого элемента синтаксиса; и

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

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

декодирования, из кодированного битового видеопотока, второго элемента синтаксиса, третьего элемента синтаксиса и четвертого элемента синтаксиса, сигнализированных на первом уровне кодирования, причем второй элемент синтаксиса указывает максимальное количество кандидатов для слияния в режиме геометрического слияния, третий элемент синтаксиса указывает максимальное количество кандидатов для слияния при MVP на основе субблоков и четвертый элемент синтаксиса указывает максимальное количество кандидатов для слияния внутриблочной копии (IBC) при предсказании вектора блока (BVP); и

определения (i) максимального количества кандидатов для слияния в режиме геометрического слияния на основе второго элемента синтаксиса, (ii) максимального количества кандидатов для слияния при MVP на основе субблоков на основе третьего элемента синтаксиса и (iii) максимального количества кандидатов для слияния IBC при BVP на основе четвертого элемента синтаксиса.

13. Устройство по п.11, в котором первый уровень кодирования представляет собой уровень последовательности, а первый элемент синтаксиса сигнализируется в наборе параметров последовательности (SPS).

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

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

15. Устройство по п.14, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим геометрического слияния;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния в режиме геометрического слияния;

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния в режиме геометрического слияния;

условием является то, что режим геометрического слияния разрешен на втором уровне кодирования и максимальное количество кандидатов для слияния при MVP больше или равно 3; и

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

16. Устройство по п.14, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния на основе субблоков;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния при MVP на основе субблоков;

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния при MVP на основе субблоков;

условием является разрешение аффинного режима на втором уровне кодирования; и

обрабатывающая схема дополнительно конфигурирована для определения максимального количества кандидатов для слияния при MVP на основе субблоков на основе второго элемента синтаксиса.

17. Устройство по п.14, в котором

один из режима геометрического слияния, режима слияния на основе субблоков и режима слияния IBC представляет собой режим слияния IBC;

максимальное количество кандидатов для слияния представляет собой максимальное количество кандидатов для слияния IBC при предсказании вектора блока (BVP);

второй элемент синтаксиса указывает максимальное количество кандидатов для слияния IBC при BVP;

условием является то, что режим слияния IBC разрешен на втором уровне кодирования; и

обрабатывающая схема дополнительно конфигурирована для определения максимального количества кандидатов для слияния IBC при BVP на основе второго элемента синтаксиса.

18. Устройство по п.14, в котором первый уровень кодирования и второй уровень кодирования представляют собой уровень последовательности.

19. Устройство по п.16, в котором второй элемент синтаксиса модифицирован на уровне кодирования, находящемся ниже второго уровня кодирования.

20. Невременный машиночитаемый носитель, хранящий инструкции, которые при выполнении компьютером для декодирования видео побуждают компьютер выполнять:

декодирование, из кодированного битового видеопотока, первого элемента синтаксиса, сигнализированного на первом уровне кодирования, причем первый элемент синтаксиса указывает максимальное количество кандидатов для слияния при предсказании вектора движения (MVP), при этом первый уровень кодирования находится выше уровня набора параметров изображения (PPS);

определение максимального количества кандидатов для слияния при MVP на основе декодированного первого элемента синтаксиса; и

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

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

Токарный резец 1924
  • Г. Клопшток
SU2016A1
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами 1924
  • Ф.А. Клейн
SU2017A1
Станок для придания концам круглых радиаторных трубок шестигранного сечения 1924
  • Гаркин В.А.
SU2019A1
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
ВЫПОЛНЕНИЕ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2012
  • Чэнь Цзяньлэ
  • Кобан Мухаммед Зейд
  • Ван Е-Куй
  • Ван Сянлинь
  • Карчевич Марта
  • Чиэнь Вей-Дзунг
RU2573227C1

RU 2 804 382 C1

Авторы

Ли Лин

Ли Сян

Лю Шань

Даты

2023-09-28Публикация

2021-01-12Подача