ПОДДЕРЖКА СМЕШАННЫХ СНИМКОВ IRAP И НЕ-IRAP В ПРЕДЕЛАХ ЕДИНИЦЫ ДОСТУПА В МНОГОСЛОЙНЫХ БИТОВЫХ ПОТОКАХ ВИДЕО Российский патент 2024 года по МПК H04N19/50 

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

[0001] Данная патентная заявка притязает на приоритет предварительной патентной заявки США № 62/905,141, поданной 24 сентября 2019 г. Е-Куи Вангом (Ye-Kui Wang) и озаглавленной “Support of Mixed RAP and Non-IRAP Pictures Within An Access Unit In Multiple-Layer Video Bitstreams” (“Поддержка смешанных снимков IRAP и не-IRAP в пределах единицы доступа в многослойных битовых потоках видео”), которая настоящим включена посредством ссылки.

ОБЛАСТЬ ТЕХНИКИ

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

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

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

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

[0004] Первый аспект относится к способу декодирования, реализуемому видеодекодером, содержащему этапы, на которых: принимают, посредством видеодекодера, битовый поток, включающий в себя набор параметров последовательности (SPS) и заголовок, ссылающийся на SPS, причем SPS содержит первый флаг, при этом заголовок содержит второй флаг, указатель длины значения старших битов (MSB) порядкового номера снимка (POC) и это значение MSB POC, причем значение первого флага задает, что второй флаг присутствует в заголовке, при этом значение второго флага задает, что значение MSB POC присутствует в заголовке; определяют, посредством видеодекодера, значение POC на основе значения MSB POC; идентифицируют, посредством видеодекодера, снимок из потока битов на основе значения POC; и декодируют, посредством видеодекодера, этот снимок для получения декодированного снимка.

[0005] Этим способом обеспечиваются методики, которые упрощают получение порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит как снимки IRAP, так и снимки не-IRAP. В однослойном кодировании видео значение старшего бита (MSB) POC сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC, когда встречается снимок IRAP, приведет к тому, что этот снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

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

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

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

[0010] В необязательном порядке, в любом из предыдущих аспектов другая реализация аспекта предусматривает, что значение РОС определяется путем конкатенации значения MSB POC со значением младших битов (LSB) POC.

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

[0012] В необязательном порядке, в любом из предыдущих аспектов другая реализация аспекта предусматривает, что указатель длины плюс 1 указывает длину MSB POC в битах.

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

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

[0015] Этим способом обеспечиваются методики, которые упрощают получение порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит как снимки IRAP, так и снимки не-IRAP. В однослойном кодировании видео значение старшего бита POC (MSB) сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

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

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

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

[0020] Устройство декодирования обеспечивает методики, которые упрощают вывод порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит как снимки IRAP, так и снимки не-IRAP. В однослойном кодировании видео значение старшего бита (MSB) POC сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

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

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

[0024] Четвертый аспект относится к устройству кодирования, содержащему память, содержащую инструкции; процессор, соединенный с памятью, причем процессор выполнен с возможностью реализации инструкций для предписания устройству кодирования устанавливать первый флаг в наборе параметров последовательности (SPS) в значение для задания того, что второй флаг присутствует в заголовке, ссылающемся на SPS; обеспечивать указатель длины значения старших битов (MSB) порядкового номера снимка (POC) в SPS, когда оно присутствует в заголовке, ссылающемся на SPS; устанавливать второй флаг в значение для задания того, что значение MSB POC присутствует в заголовке; и кодировать SPS и заголовок в битовый поток; и передатчик, соединенный с процессором, причем передатчик выполнен с возможностью передачи потока битов в видеодекодер.

[0025] Устройство кодирования предоставляет методики, которые упрощают вывод порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит как снимки IRAP, так и снимки не-IRAP. В однослойном кодировании видео значение старшего бита POC (MSB) сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

[0026] В необязательном порядке, в любом из предыдущих аспектов другая реализация аспекта предусматривает, что первый флаг содержит флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag, и при этом второй флаг содержит другой флаг MSB POC и обозначен как ph_poc_msb_cycle_present_flag.

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

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

[0029] Устройство кодирования/декодирования обеспечивает методики, которые упрощают вывод порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит снимки как IRAP, так и не-IRAP. При однослойном кодировании видео значение старшего бита POC (MSB) сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

[0031] Шестой аспект относится к системе. Система включает в себя кодер и декодер на связи с кодером, при этом кодер или декодер включает в себя устройство декодирования, устройство кодирования или устройство кодирования/декодирования, раскрытые в настоящем документе.

[0032] Система предоставляет методики, которые упрощают получение порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит как снимки IRAP, так и снимки не-IRAP. При однослойном кодировании видео значение старшего бита POC (MSB) сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

[0034] Средство кодирования/декодирования предоставляет методики, которые упрощают вывод порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит снимки как IRAP, так и не-IRAP. В однослойном кодировании видео значение старшего бита POC (MSB) сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP, из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

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

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

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

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

[0038] Фиг.1 представляет блок-схему последовательности операций примерного способа кодирования/декодирования видеосигнала.

[0039] Фиг.2 - принципиальная схема примерной системы кодирования и декодирования (кодека) для кодирования видео.

[0040] Фиг.3 представляет схематичное представление, иллюстрирующее примерный видеокодер.

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

[0042] Фиг.5 иллюстрирует пример многослойного кодирования для пространственной масштабируемости.

[0043] Фиг.6 является представлением взаимосвязи между снимком IRAP относительно головных снимков и замыкающих снимков в порядке декодирования и порядке представления.

[0044] Фиг.7 иллюстрирует битовый поток видео, сконфигурированный для реализации технологии постепенного обновления декодирования (GDR).

[0045] Фиг.8 представляет схематическую диаграмму, иллюстрирующую нежелательный поиск движения при использовании ограничения кодера для поддержки GDR.

[0046] Фиг.9 иллюстрирует вариант осуществления битового потока видео.

[0047] Фиг.10 - вариант осуществления способа декодирования кодированного битового потока видео.

[0048] Фиг.11 - вариант осуществления способа кодирования битового кодируемого потока видео.

[0049] Фиг.12 - схематическая диаграмма устройства кодирования/декодирования видео.

[0050] Фиг.13 представляет собой схематическое представление варианта осуществления средства кодирования/декодирования.

ПОДРОБНОЕ ОПИСАНИЕ

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

[0052] Нижеследующие термины определяются следующим образом до тех пор, пока они не используются здесь в противоположном контексте. В частности, нижеследующие определения призваны внести дополнительную ясность в настоящее раскрытие. Однако термины могут быть описаны иначе в других контекстах. Соответственно, нижеследующие определения следует рассматривать в качестве дополнения и не следует рассматривать их в качестве ограничивающих любые другие определения в описаниях, предусмотренных здесь для таких терминов.

[0053] Битовый поток представляет собой последовательность битов, включающих в себя видеоданные, которые сжаты для передачи между кодером и декодером. Кодер представляет собой устройство, которое выполнено с возможностью использования процессов кодирования для сжатия видеоданных в битовый поток. Декодер - это устройство, которое выполнено с возможностью использования процессов декодирования для восстановления видеоданных из битового потока для отображения. Снимок представляет собой массив дискретных отсчетов (выборок) яркости и/или массив выборок цветности, которые образуют кадр или его поле. Снимок, который кодируется или декодируется, может называться текущим снимком для ясности обсуждения. Опорный снимок – это снимок, который содержит опорные выборки, которые можно использовать при кодировании других снимков по ссылке в соответствии с интер-предсказанием и/или межслойным предсказанием. Список опорных снимков представляет собой список опорных снимков, используемых для интер-предсказания и/или межслойного предсказания. Некоторые системы кодирования/декодирования видео используют два списка опорных снимков, которые можно обозначить как первый список опорных снимков и нулевой список опорных снимков. Структура списка опорных снимков представляет собой адресуемую синтаксическую структуру, которая содержит несколько списков опорных снимков. Интер-предсказание представляет собой механизм кодирования выборок текущего снимка посредством ссылки на указанные выборки в опорном снимке, который отличается от текущего снимка, где опорный снимок и текущий снимок находятся на одном слое. Запись структуры списка опорных снимков представляет собой адресуемое место в структуре списка опорных снимков, которое указывает опорный снимок, связанный со списком опорных снимков. Заголовок сегмента (слайса) - это часть кодированного слайса, содержащая элементы данных, относящиеся ко всем видеоданным в клетке, представленной в слайсе. Набор параметров последовательности (SPS) - это набор параметров, который содержит данные, относящиеся к последовательности снимков. Набор параметров снимков (PPS) - это синтаксическая структура, содержащая синтаксические элементы, которые применяются к нулю или более полным кодированным снимкам, как определяется посредством синтаксических элементов, которые находятся в каждом заголовке снимка.

[0054] Флаг - это переменная или однобитовый синтаксический элемент, который может принимать одно из двух возможных значений: 0 и 1. Единица доступа (AU) представляет собой набор из одного или более кодированных снимков, связанных с одним и тем же временем отображения (например, одним и тем же порядковым номером снимка) для вывода из буфера декодированных снимков (DPB) (например, для отображения пользователю). Разделитель единиц доступа (AUD) - это указатель или структура данных, используемая для указания начала AU или границы между AU. Декодированная видеопоследовательность - это последовательность снимков, которые были восстановлены декодером при подготовке к отображению пользователю.

[0055] Кодированная видеопоследовательность (CVS) представляет собой последовательность единиц доступа (AU), которая включает в себя, в порядке декодирования, AU начала кодированной видеопоследовательности (CVSS), за которой следует ноль или более AU, не являющихся AU CVSS, включая все последующие AU вплоть до, но не включая, любых последующих AU, которые являются AU CVSS. AU CVSS представляет собой AU, в которой имеется единица предсказания (PU) для каждого слоя, задаваемого набором параметров видео (VPS), и кодированный снимок в каждой PU представляет собой снимок начала видеопоследовательности кодированного слоя (CLVSS). В варианте осуществления каждый снимок находится в пределах AU. PU представляет собой набор единиц уровня сетевой абстракции (NAL), которые связаны друг с другом в соответствии с заданным правилом классификации, являются последовательными в порядке декодирования и содержат ровно один закодированный снимок.

[0056] Порядковый номер снимка (POC) - это переменная, которая ассоциирована с каждым снимком, однозначно идентифицирует ассоциированный снимок среди всех снимков в CLVS и, когда ассоциированный снимок должен быть выведен из DPB, указывает позицию ассоциированного снимка в порядке вывода относительно позиций порядка вывода других снимков в той же CLVS, которые должны выводиться из DPB. Старший бит (MSB, также называемый битом высокого порядка) - это битовая позиция в двоичном числе, имеющая наибольшее значение. MSB иногда называют битом высокого порядка или крайним левым битом из-за соглашения о позиционной записи более значащих разрядов дальше слева. Заголовок снимка (PH) представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всем слайсам кодированного снимка.

[0057] Здесь используются следующие сокращения: единица доступа (AU), блок дерева кодирования (CTB), единица дерева кодирования (CTU), единица кодирования (CU), видеопоследовательность кодированного слоя (CLVS), начало видеопоследовательности кодированного слоя (CLVSS), кодированная видеопоследовательность (CVS), начало кодированной видеопоследовательности (CVSS), Объединенная группа экспертов по видео (JVET), набор клеток с ограничением движения (MCTS), максимальная единица передачи (MTU), уровень сетевой абстракции (NAL), набор выходных слоев (OLS), порядковый номер снимка (POC), набор параметров снимка (PPS), точка произвольного доступа (RAP), полезная нагрузка необработанной последовательности байтов (RBSP), набор параметров последовательности (SPS), набор параметров видео (VPS), универсальное кодирование видео (VVC) и рабочий проект (WD).

[0058] Фиг.1 представляет собой блок-схему последовательности операций примерного рабочего способа 100 кодирования/декодирования видеосигнала. В частности, видеосигнал кодируется в кодере. Процесс кодирования сжимает видеосигнал, используя различные механизмы для уменьшения размера видеофайла. Меньший размер файла позволяет передавать сжатый видеофайл пользователю, уменьшая при этом связанное с этим потребление ресурсов полосы пропускания. Затем декодер декодирует сжатый видеофайл, чтобы восстановить исходный видеосигнал для отображения конечному пользователю. Процесс декодирования, как правило, зеркально отражает процесс кодирования, что позволяет декодеру последовательно восстанавливать видеосигнал.

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

[0060] На этапе 103 видео разделяется на блоки. Разделение включает в себя подразделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, при Высокоэффективном кодировании видео (HEVC, High Efficiency Video Coding) (также известном как H.2 и MPEG-H часть 2) кадр может быть сперва разделен на единицы дерева кодирования (CTU), которые представляют собой блоки заранее определенного размера (к примеру, шестьдесят четыре пикселя на шестьдесят четыре пикселя). CTU содержат выборки как яркости, так и цветности. Деревья кодирования могут использоваться, чтобы разбивать единицы дерева кодирования (CTU) на блоки, а затем рекурсивно подразделять блоки до тех пор, пока не будут достигнуты конфигурации, которые поддерживают дальнейшее кодирование. Например, компоненты яркости кадра могут подразделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения освещения. Кроме того, компоненты цветности кадра могут подразделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения различаются в зависимости от содержимого видеокадров.

[0061] На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, полученных разделением на этапе 103. Например, может быть использовано интер-предсказание и/или интра-предсказание. Интер-предсказание предназначено для получения преимущества от того факта, что для объектов в общей сцене характерно появляться в последовательных кадрах. Соответственно, блок, представляющий объект в опорном кадре, не нужно повторно описывать в смежных кадрах. В частности, объект, такой как стол, может оставаться в постоянном положении в течение нескольких кадров. Следовательно, стол описывается один раз, и смежные кадры могут ссылаться обратно на опорный кадр. Механизмы сопоставления с образцами могут использоваться для сопоставления объектов по множеству кадров. Кроме того, движущиеся объекты могут быть представлены во множестве кадров, например, из-за движения объекта или движения камеры. В качестве конкретного примера, видео может показывать автомобиль, который движется по экрану в течение нескольких кадров. Векторы движения могут быть использованы для описания такого движения. Вектор движения представляет собой двумерный вектор, который обеспечивает смещение из координат объекта в кадре в координаты объекта в опорном кадре. Таким образом, интер-предсказание может кодировать блок изображения в текущем кадре в качестве набора векторов движения, указывающих смещение от соответствующего блока в опорном кадре.

[0062] Интра-предсказание кодирует блоки в общем кадре. Интра-предсказание использует преимущество, связанное с тем фактом, что для компонентов яркости и цветности характерно кластеризоваться в кадре. Например, для фрагмента зелени в части дерева характерно располагаться смежно с аналогичными фрагментами зелени. Интра-предсказание использует несколько направленных режимов предсказания (например, тридцать три в HEVC), планарный режим и режим прямого течения (DC). Направленные режимы указывают, что текущий блок аналогичен/совпадает с выборками соседнего блока в соответствующем направлении. Планарный режим указывает, что ряд блоков вдоль строки/столбца (например, плоскости) может быть интерполирован на основе соседних блоков на краях строки. Планарный режим, по сути, указывает на плавный переход света/цвета через строку/столбец путем использования относительно постоянного наклона при изменении значений. Режим DC используется для сглаживания границ и указывает, что блок похож/аналогичен среднему значению, ассоциированному с выборками всех соседних блоков, ассоциированных с угловыми направлениями направленных режимов предсказания. Соответственно, блоки интра-предсказания могут представлять блоки изображения как значения различных реляционных режимов предсказания вместо фактических значений. Кроме того, блоки интер-предсказания могут представлять блоки изображения как значения векторов движения вместо фактических значений. В любом случае, блоки предсказания могут не точно представлять блоки изображения в некоторых случаях. Любые различия хранятся в остаточных блоках. Преобразования могут быть применены к остаточным блокам для дальнейшего сжатия файла.

[0063] На этапе 107 могут применяться различные методики фильтрации. В HEVC фильтры применяются по схеме внутриконтурной (in-loop) фильтрации. Основывающееся на блоках предсказание, рассмотренное выше, может привести к созданию изображений с блочностью в декодере. Кроме того, схема основывающегося на блоках предсказания может кодировать блок, а затем восстановить закодированный блок для последующего использования в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет к блокам/кадрам фильтры шумоподавления, фильтры устранения блочности, адаптивные контурные фильтры и фильтры с адаптивным к выборке смещением (SAO). Эти фильтры смягчают такие артефакты блочности, с тем чтобы можно было точно восстановить закодированный файл. Кроме того, эти фильтры смягчают артефакты в восстановленных опорных блоках, так что артефакты с меньшей вероятностью создают дополнительные артефакты в последующих блоках, которые кодируются на основе этих восстановленных опорных блоков.

[0064] После разделения, сжатия и фильтрации видеосигнала полученные в результате данные кодируются в битовый поток на этапе 109. Битовый поток включает в себя данные, рассмотренные выше, а также любые данные сигнализации, необходимые для поддержки надлежащего восстановления видеосигнала в декодере. Например, такие данные могут включать данные разбиения, данные предсказания, остаточные блоки и различные флаги, обеспечивающие инструкции кодирования/декодирования, для декодера. Битовый поток может быть сохранен в памяти для передачи в декодер по запросу. Битовый поток может также передаваться посредством широковещания и/или группового вещания в направлении множества декодеров. Создание битового потока является итеративным процессом. Соответственно, этапы 101, 103, 105, 107 и 109 могут происходить непрерывно и/или одновременно в отношении многих кадров и блоков. Порядок, показанный на Фиг.1, представлен для ясности и простоты обсуждения и не предназначен для ограничения процесса кодирования/декодирования видео определенным порядком.

[0065] Декодер принимает битовый поток и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующие синтаксические и видео данные. Декодер использует синтаксические данные из битового потока для определения разбиений для кадров на этапе 111. Разбиение должно совпадать с результатами разбиения на блоки на этапе 103. Теперь описывается энтропийное кодирование/декодирование, используемое на этапе 111. Кодер делает множество выборов во время процесса сжатия, например выбирает схемы разбиения на блоки из нескольких возможных вариантов выбора на основе пространственного расположения значений во входном изображении(ях). Для сигнализирования точных выборов может использоваться большое число двоичных элементов (бинов). Как используется в данном документе, бин (bin) представляет собой двоичное значение, которое обрабатывается как переменная (например, значение бита, которое может изменяться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбрасывать любые опции, которые явно не подходят для конкретного случая, оставляя набор допустимых опций. Каждой допустимой опции затем назначается кодовое слово. Длина кодовых слов основывается на числе допустимых опций (например, один бин для двух опций, два бина для трех-четырех опций и т.д.). Затем кодер кодирует кодовое слово для выбранной опции. Эта схема уменьшает размер кодовых слов, так чтобы кодовые слова были настолько велики, насколько это необходимо, чтобы однозначно указывать выбор из небольшого подмножества допустимых опций, в отличие от однозначного указания выбора из потенциально большого набора всех возможных опций. Затем декодер декодирует выбор посредством определения набора допустимых опций аналогично кодеру. Посредством определения набора допустимых опций, декодер может считывать кодовое слово и определять выбор, сделанный кодером.

[0066] На этапе 113 декодер выполняет декодирование блоков. В частности, декодер применяет обратные преобразования для генерирования остаточных блоков. Затем декодер применяет остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения согласно разбиению. Блоки предсказания могут включать в себя как блоки интра-предсказания, так и блоки интер-предсказания, сгенерированные кодером на этапе 105. Затем восстановленные блоки изображения размещаются в кадры восстанавливаемого видеосигнала согласно данным разбиения, определенным на этапе 111. Синтаксис для этапа 113 также может быть просигнализирован в битовом потоке посредством энтропийного кодирования, как описано выше.

[0067] На этапе 115 фильтрация выполняется в отношении кадров восстановленного видеосигнала способом, аналогичным этапу 107 в кодере. Например, фильтры шумоподавления, фильтры устранения блочности, адаптивные контурные фильтры и фильтры SAO могут быть применены к кадрам для удаления артефактов блочности. После фильтрации кадров видеосигнал может выводиться на дисплей на этапе 117 для просмотра конечным пользователем.

[0068] Фиг.2 представляет собой схематичное представление примерной системы 200 кодирования и декодирования (кодека) для кодирования/декодирования видео. В частности, система 200 кодека обеспечивает функциональные возможности для поддержки реализации рабочего способа 100. Система 200 кодека обобщена так, чтобы представлять компоненты, применяемые как в кодере, так и в декодере. Система 200 кодека принимает и разбивает видеосигнал, как описано в отношении этапов 101 и 103 в рабочем способе 100, в результате чего получается разделенный видеосигнал 201. Затем система 200 кодека сжимает разделенный видеосигнал 201 в закодированный битовый поток, действуя в качестве кодера, как описано в отношении этапов 105, 107 и 109 в способе 100. Действуя в качестве декодера, система 200 кодека генерирует выходной видеосигнал из битового потока, как описано в отношении этапов 111, 113, 115 и 117 в рабочем способе 100. Система 200 кодека включает в себя компонент 211 общего управления кодером/декодером, компонент 213 преобразования, масштабирования и квантования, компонент 215 внутриснимочной (intra-picture) оценки, компонент 217 внутриснимочного предсказания, компонент 219 компенсации движения, компонент 221 оценки движения, компонент 229 обратного преобразования и масштабирования, компонент 227 анализа для управления фильтрами, компонент 225 внутриконтурных фильтров, компонент 223 буфера декодированных снимков и компонент 231 форматирования заголовка и контекстно-адаптивного двоичного арифметического кодирования (CABAC). Такие компоненты соединены, как показано. На Фиг.2 черные линии указывают перемещение данных, подлежащих кодированию/декодированию, а пунктирные линии указывают перемещение управляющих данных, которые управляют работой других компонентов. Все компоненты системы 200 кодека могут присутствовать в кодере. Декодер может включать в себя подмножество компонентов системы 200 кодека. Например, декодер может включать в себя компонент 217 внутриснимочного предсказания, компонент 219 компенсации движения, компонент 229 обратного преобразования и масштабирования, компонент 225 внутриконтурных фильтров и компонент 223 буфера декодированных снимков. Эти компоненты описаны далее.

[0069] Разделенный видеосигнал 201 представляет собой захваченную видеопоследовательность, которая была разделена на блоки пикселей посредством дерева кодирования. Дерево кодирования использует различные режимы разбиения для подразделения блока пикселей на более мелкие блоки пикселей. Затем эти блоки могут быть дополнительно подразделены на более мелкие блоки. Блоки могут называться узлами в дереве кодирования. Более крупные родительские узлы разделяются на более мелкие дочерние узлы. Число раз, которое узел подразделяется, называется глубиной узла/дерева кодирования. Полученные разделением блоки могут быть включены в единицы кодирования (CU) в некоторых случаях. Например, CU может быть частью CTU, которая содержит блок яркости, блок(и) цветоразности красного (Cr) и блок(и) цветоразности синего (Cb) вместе с соответствующими инструкциями синтаксиса для CU. Режимы разбиения могут включать в себя двоичное дерево (BT), троичное дерево (TT) и квадратичное дерево (QT), используемые для разделения узла на два, три или четыре дочерних узла, соответственно, различных форм в зависимости от используемых режимов разбиения. Разделенный видеосигнал 201 пересылается в компонент 211 общего управления кодером/декодером, компонент 213 преобразования, масштабирования и квантования, компонент 215 внутриснимочной оценки, компонент 227 анализа для управления фильтрами и компонент 221 оценки движения для сжатия.

[0070] Компонент 211 общего управления кодером/декодером выполнен с возможностью принятия решений, связанных с кодированием изображений видеопоследовательности в битовый поток в соответствии с ограничениями варианта применения. Например, компонент 211 общего управления кодером/декодером управляет оптимизацией битрейта/размера битового потока в зависимости от качества восстановления. Такие решения могут приниматься на основе доступности пространства хранения/полосы пропускания и запросов разрешения изображения. Компонент 211 общего управления кодером/декодером также управляет использованием буфера с учетом скорости передачи, чтобы смягчить проблемы недостаточного заполнения и переполнения буфера. Чтобы справиться с этими проблемами, компонент 211 общего управления кодером/декодером управляет разбиением, предсказанием и фильтрацией, выполняемыми посредством других компонентов. Например, компонент 211 общего управления кодером/декодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшать сложность сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером/декодером управляет другими компонентами системы 200 кодека, чтобы сбалансировать качество восстановления видеосигнала с учетом битрейта. Компонент 211 общего управления кодером/декодером создает управляющие данные, которые управляют работой других компонентов. Управляющие данные также пересылаются в компонент 231 форматирования заголовка и CABAC для их кодирования в битовом потоке, чтобы сигнализировать параметры для декодирования в декодере.

[0071] Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для интер-предсказания. Кадр или слайс разделенного видеосигнала 201 может быть разбит на несколько блоков видео. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют кодирование с интер-предсказанием в отношении принятого блока видео относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодека может выполнять несколько проходов кодирования/декодирования, например, для выбора надлежащего режима кодирования/декодирования для каждого блока видеоданных.

[0072] Компонент 221 оценки движения и компонент 219 компенсации движения могут быть в высокой степени интегрированы, но показаны отдельно в концептуальных целях. Оценка движения, выполняемая компонентом 221 оценки движения, представляет собой процесс генерирования векторов движения, которые оценивают движение для блоков видео. Вектор движения, например, может указать смещение кодируемого объекта относительно предиктивного блока. Предиктивный блок является блоком, который обнаружен как точно соответствующий блоку, который подлежит кодированию, в плане разности пикселей. Предиктивный блок также может именоваться опорным блоком. Такая разность пикселей может быть определена посредством суммы абсолютных разностей (SAD), суммы квадратов разностей (SSD) или других разностных показателей. HEVC использует несколько кодируемых объектов, в том числе CTU, блоки дерева кодирования (CTB) и единицы кодирования (CU). Например, CTU можно разбить на CTB, которые затем можно разбить на блоки кодирования (CB) для включения в CU. CU может быть закодирована как единица предсказания (PU), содержащая данные предсказания, и/или единица преобразования (TU), содержащая преобразованные остаточные данные для CU. Компонент 221 оценки движения генерирует векторы движения, единицы предсказания (PU) и единицы преобразования (TU) с использованием анализа скорость-искажение в рамках процесса оптимизации скорость-искажение. Например, компонент 221 оценки движения может определять несколько опорных блоков, несколько векторов движения и т.д. для текущего блока/кадра и может выбирать опорные блоки, векторы движения и т.д., имеющие наилучшие характеристики скорость-искажение. Наилучшие характеристики скорость-искажение уравновешивают качество восстановления видео (например, объем потерь данных при сжатии) с эффективностью кодирования/декодирования (например, размер окончательного кодирования).

[0073] В некоторых примерах система 200 кодека может вычислять значения для позиций субцелочисленных пикселей опорных снимков, сохраненных в компоненте 223 буфера декодированных снимков. Например, система 200 кодека может интерполировать значения позиций одной четверти пикселя, позиций одной восьмой пикселя или других позиций дробных пикселей опорного снимка. Следовательно, компонент 221 оценки движения может выполнять поиск движения относительно позиций полных пикселей и позиций дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для PU блока видео в интер-кодируемом слайсе путем сравнения позиции PU с позицией предиктивного блока опорного снимка. Компонент 221 оценки движения выводит вычисленный вектор движения в качестве данных движения в компонент 231 форматирования заголовка и CABAC для кодирования и в компонент 219 компенсации движения.

[0074] Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать в себя получение или генерирование предиктивного блока на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы в некоторых примерах. После приема вектора движения для PU текущего блока видео, компонент 219 компенсации движения может находить предиктивный блок, на который указывает вектор движения. Затем формируется остаточный блок видео путем вычитания значений пикселей предиктивного блока из значений пикселей текущего кодируемого блока видео, что формирует значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, а компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости, как для компонентов цветности, так и для компонентов яркости. Блок предсказания и остаточный блок направляются в компонент 213 преобразования, масштабирования и квантования.

[0075] Разделенный видеосигнал 201 также отправляется в компонент 215 внутриснимочной оценки и компонент 217 внутриснимочного предсказания. Как и в случае с компонентом 221 оценки движения и компонентом 219 компенсации движения, компонент 215 внутриснимочной оценки и компонент 217 внутриснимочного предсказания могут быть в высокой степени интегрированы, но в концептуальных целях проиллюстрированы отдельно. Компонент 215 внутриснимочной оценки и компонент 217 внутриснимочного предсказания осуществляют интра-предсказание текущего блока относительно блоков в текущем кадре, в качестве альтернативы интер-предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 внутриснимочной оценки определяет режим интра-предсказания для использования, чтобы кодировать текущий блок. В некоторых примерах компонент 215 внутриснимочной оценки выбирает надлежащий режим интра-предсказания для кодирования текущего блока из множества проверяемых режимов интра-предсказания. Выбранные режимы интра-предсказания затем пересылаются в компонент 231 форматирования заголовка и CABAC для кодирования.

[0076] Например, компонент 215 внутриснимочной оценки вычисляет значения скорость-искажение, используя анализ скорость-искажение для различных тестируемых режимов интра-предсказания, и выбирает режим интра-предсказания, имеющий лучшие характеристики скорость-искажение среди проверяемых режимов. Анализ скорость-искажение обычно определяет степень искажения (или ошибку) между закодированным блоком и исходным незакодированным блоком, который был закодирован для получения этого закодированного блока, а также битрейт (например, число битов), используемый для получения данного закодированного блока. Компонент 215 внутриснимочной оценки вычисляет отношения по искажениям и скоростям для различных закодированных блоков, чтобы определить, какой режим интра-предсказания демонстрирует наилучшее значение скорость-искажение для блока. Кроме того, компонент 215 внутриснимочной оценки может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM) на основе оптимизации скорость-искажение (RDO).

[0077] Компонент 217 внутриснимочного предсказания может генерировать остаточный блок из предиктивного блока на основе выбранных режимов интра-предсказания, определенных компонентом 215 внутриснимочной оценки, при реализации в кодере, или считывать остаточный блок из битового потока при реализации в декодере. Остаточный блок включает в себя разность значений между предиктивным блоком и исходным блоком, представленную в виде матрицы. Остаточный блок затем пересылается в компонент 213 преобразования, масштабирования и квантования. Компонент 215 внутриснимочной оценки и компонент 217 внутриснимочного предсказания могут работать как в отношении компонентов яркости, так и в отношении компонентов цветности.

[0078] Компонент 213 преобразования, масштабирования и квантования выполнен с возможностью дальнейшего сжатия остаточного блока. Компонент 213 преобразования, масштабирования и квантования применяет преобразование, такое как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) или концептуально аналогичное преобразование, к остаточному блоку, создавая блок видео, содержащий остаточные значения коэффициентов преобразования. Также могут быть использованы вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование может переводить остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Компонент 213 преобразования, масштабирования и квантования также выполнен с возможностью масштабирования преобразованной остаточной информации, например на основе частоты. Такое масштабирование включает в себя применение коэффициента масштабирования к остаточной информации, так что информация разных частот квантуется с разными степенями детализации, что может повлиять на конечное визуальное качество восстановленного видео. Компонент 213 преобразования, масштабирования и квантования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения битрейта. Процесс квантования может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством корректировки параметра квантования. В некоторых примерах компонент 213 преобразования, масштабирования и квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования пересылаются в компонент 231 форматирования заголовка и CABAC для их кодирования в битовый поток.

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

[0080] Компонент 227 анализа для управления фильтрами и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 обратного преобразования и масштабирования может быть объединен с соответствующим блоком предсказания из компонента 217 внутриснимочного предсказания и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах фильтры могут быть применены к остаточным блокам. Как и в случае с другими компонентами на Фиг.2, компонент 227 анализа для управления фильтрами и компонент 225 внутриконтурных фильтров являются в высокой степени интегрируемыми и могут быть реализованы вместе, но представлены в концептуальных целях по отдельности. Фильтры, применяемые к восстановленным опорным блокам, применяются к конкретным пространственным областям и включают в себя несколько параметров для корректировки того, как такие фильтры применяются. Компонент 227 анализа для управления фильтрами анализирует восстановленные опорные блоки для определения того, где такие фильтры должны применяться, и устанавливает соответствующие параметры. Такие данные пересылаются в компонент 231 форматирования заголовка и CABAC в качестве данных управления фильтрами для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтрами. Фильтры могут включать в себя фильтр устранения блочности, фильтр шумоподавления, фильтр SAO и адаптивный контурный фильтр. Такие фильтры могут применяться в пространственной/пиксельной области (например, к восстановленному блоку пикселей) или в частотной области, в зависимости от примера.

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

[0082] Компонент 231 форматирования заголовка и CABAC принимает данные от различных компонентов системы 200 кодека и кодирует такие данные в кодируемый битовый поток для передачи на декодер. В частности, компонент 231 форматирования заголовка и CABAC генерирует различные заголовки для кодирования управляющих данных, таких как общие данные управления и данные управления фильтрами. Кроме того, данные предсказания, включающие в себя данные движения и интра-предсказания, а также остаточные данные в форме данных квантованных коэффициентов преобразования, все кодируются в битовом потоке. Окончательный битовый поток включает в себя всю информацию, необходимую декодеру для восстановления исходного разделенного видеосигнала 201. Такая информация может также включать в себя таблицы индексов режимов интра-предсказания (также называемые таблицами соответствия кодовых слов), определения контекстов кодирования для различных блоков, указания наиболее вероятных режимов интра-предсказания, указание информации разделения и т.д. Такие данные могут быть закодированы с использованием энтропийного кодирования. Например, информация может быть закодирована с использованием контекстно-адаптивного кодирования с переменной длиной (CAVLC), CABAC, основывающегося на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с вероятностным интервалом разделения (PIPE) или другого метода энтропийного кодирования. После энтропийного кодирования кодированный битовый поток может быть передан на устройство (например, видеодекодер) или помещен в архив для последующей передачи или извлечения.

[0083] Фиг.3 представляет собой блок-схему, иллюстрирующую примерный видеокодер 300. Видеокодер 300 может использоваться для реализации функций кодирования системы 200 кодека и/или реализации этапов 101, 103, 105, 107 и/или 109 рабочего способа 100. Кодер 300 разделяет входной видеосигнал, в результате чего получается разделенный видеосигнал 301, который по существу аналогичен разделенному видеосигналу 201. Затем разделенный видеосигнал 301 сжимается и кодируется в битовый поток компонентами кодера 300.

[0084] В частности, разделенный видеосигнал 301 пересылается в компонент 317 внутриснимочного предсказания для интра-предсказания. Компонент 317 внутриснимочного предсказания может быть по существу аналогичен компоненту 215 внутриснимочной оценки и компоненту 217 внутриснимочного предсказания. Разделенный видеосигнал 301 также пересылается в компонент 321 компенсации движения для интер-предсказания на основе опорных блоков в компоненте 323 буфера декодированных снимков. Компонент 321 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки предсказания и остаточные блоки из компонента 317 внутриснимочного предсказания и компонента 321 компенсации движения пересылаются в компонент 313 преобразования и квантования для преобразования и квантования остаточных блоков. Компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 преобразования, масштабирования и квантования. Преобразованные и квантованные остаточные блоки и соответствующие блоки предсказания (вместе с ассоциированными управляющими данными) пересылаются в компонент 331 энтропийного кодирования для кодирования в битовый поток. Компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и CABAC.

[0085] Преобразованные и квантованные остаточные блоки и/или соответствующие блоки предсказания также пересылаются из компонента 313 преобразования и квантования в компонент 329 обратного преобразования и квантования для восстановления в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 обратного преобразования и масштабирования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяются к остаточным блокам и/или восстановленным опорным блокам, в зависимости от примера. Компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа для управления фильтрами и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может включать в себя несколько фильтров, как описано в отношении компонента 225 внутриконтурных фильтров. Затем отфильтрованные блоки сохраняются в компоненте 323 буфера декодированных снимков для использования в качестве опорных блоков компонентом 321 компенсации движения. Компонент 323 буфера декодированных снимков может быть по существу аналогичен компоненту 223 буфера декодированных снимков.

[0086] Фиг.4 представляет собой блок-схему, иллюстрирующую примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодека и/или реализации этапов 111, 113, 115 и/или 117 рабочего способа 100. Декодер 400 принимает битовый поток, например, от кодера 300, и формирует восстановленный выходной видеосигнал на основе битового потока для отображения конечному пользователю.

[0087] Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как кодирование CAVLC, CABAC, SBAC, PIPE, или других методик энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка для обеспечения контекста для интерпретации дополнительных данных, закодированных как кодовые слова в битовом потоке. Декодированная информация включает в себя любую требуемую информацию для декодирования видеосигнала, такую как общие управляющие данные, данные управления фильтрами, информация разделения, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования пересылаются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.

[0088] Восстановленные остаточные блоки и/или блоки предсказания пересылаются в компонент 417 внутриснимочного предсказания для восстановления в блоки изображения на основе операций интра-предсказания. Компонент 417 внутриснимочного предсказания может быть по существу аналогичен компоненту 215 внутриснимочной оценки и компоненту 217 внутриснимочного предсказания. В частности, компонент 417 внутриснимочного предсказания использует режимы предсказания для нахождения опорного блока в кадре и применяет остаточный блок к результату для восстановления интра-предсказанных блоков изображения. Восстановленные интра-предсказанные блоки изображения и/или остаточные блоки и соответствующие данные интер-предсказания пересылаются в компонент 423 буфера декодированных снимков через компонент 425 внутриконтурных фильтров, которые могут быть по существу аналогичны компоненту 223 буфера декодированных снимков и компоненту 225 внутриконтурных фильтров, соответственно. Компонент 425 внутриконтурных фильтров фильтрует восстановленные блоки изображения, остаточные блоки и/или блоки предсказания, и такая информация сохраняется в компоненте 423 буфера декодированных снимков. Восстановленные блоки изображения из компонента 423 буфера декодированных снимков пересылаются в компонент 421 компенсации движения для интер-предсказания. Компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения из опорного блока для генерирования блока предсказания и применяет остаточный блок к результату для восстановления блока изображения. Получаемые в результате восстановленные блоки также можно переслать через компонент 425 внутриконтурных фильтров в компонент 423 буфера декодированных снимков. Компонент 423 буфера декодированных снимков продолжает сохранять дополнительные восстановленные блоки изображения, которые могут быть восстановлены в кадры посредством информации разделения. Такие кадры также могут быть помещены в последовательность. Последовательность выводится на дисплей в виде восстановленного выходного видеосигнала.

[0089] Принимая во внимание вышеизложенное, технологии сжатия видео выполняют пространственное (внутриснимочное) предсказание и/или временное (межснимочное) предсказание для уменьшения или устранения избыточности, присущей видеопоследовательностям. Для кодирования видео на основе блоков слайс видео (т.е. видеоснимок или часть видеоснимка) может быть разделен на блоки видео, которые также могут называться блоками дерева, блоками дерева кодирования (CTB), единицами дерева кодирования (CTU), единицами кодирования (CU) и/или узлами кодирования. Блоки видео в интра-кодированном (I) слайсе снимка кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в том же снимке. Блоки видео в интер-кодированном (P или B) слайсе снимка могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в том же снимке или временное предсказание относительно опорных выборок в других опорных снимках. Снимки могут упоминаться как кадры, а опорные снимки могут упоминаться как опорные кадры.

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

[0091] Сжатие изображений и видео быстро развивалось, что привело к появлению различных стандартов кодирования. К таким стандартам кодирования видео относятся ITU-T H.261, Международная организация по стандартизации/Международная электротехническая комиссия (ISO/IEC) MPEG-1 Part 2, ITU-T H.262 или ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), также известный как ITU-T H.264 или ISO/IEC MPEG-4 Part 10, и стандарт Высокоэффективного кодирования видео (HEVC), также известный как ITU-T H.265 или MPEG-H часть 2. AVC включает такие расширения, как масштабируемое кодирование видео (SVC), многоракурсное кодирование видео (MVC) и многоракурсное кодирование видео плюс глубина (MVC+D) и 3D AVC (3D-AVC). HEVC включает такие расширения, как Масштабируемое HEVC (SHVC), Многоракурсное HEVC (MV-HEVC) и 3D HEVC (3D-HEVC).

[0092] Существует также новый стандарт кодирования видео под названием Универсальное кодирование видео (VVC), который разрабатывается объединенной группой экспертов по видео (JVET) ITU-T и ISO/IEC. Хотя стандарт VVC имеет несколько рабочих проектов, конкретно один рабочий проект (WD) VVC, а именно B. Bross, J. Chen and S. Liu, «Versatile Video Coding (Draft 5)», JVET-N1001-v3, 13-th JVET Meeting, 27.03.2019 (VVC Draft 5) упоминается здесь.

[0093] Многослойное кодирование видео также называют масштабируемым кодированием видео или кодированием видео c масштабируемостью. Масштабируемость кодирования видео обычно поддерживается за счет использования технологий многослойного кодирования. Многослойный битовый поток содержит базовый слой (BL) и один или несколько слоев улучшения (EL). Пример масштабируемости включает пространственную масштабируемость, масштабируемость качества/отношения сигнал-шум (SNR), масштабируемость с несколькими представлениями и т.д. Когда используется технология многослойного кодирования, снимок или его часть могут быть закодированы (1) без использования опорного снимка, т.е. с использованием интра-предсказания; (2) путем обращения к опорным снимкам, которые находятся на том же слое, т.е. с использованием интер-предсказания; или (3) путем обращения к опорным снимкам, которые находятся на другом слое(ях), т.е. с использованием межслойного предсказания. Опорный снимок, используемый для межслойного предсказания текущего снимка, называется межслойным опорным снимком (ILRP).

[0094] Фиг.5 представляет собой схематическую диаграмму, иллюстрирующую пример предсказания 500 на основе слоев, например, как выполняется для определения векторов движения (MV) на этапе 105 сжатия блока, этапе 113 декодирования блока, компоненте 221 оценки движения, компоненте 219 компенсации движения, компоненте 321 компенсации движения и/или компоненте 421 компенсации движения. Предсказание 500 на основе слоев совместимо с однонаправленным интер-предсказанием и/или двунаправленным интер-предсказанием, но также выполняется между снимками на разных слоях.

[0095] Предсказание 500 на основе слоев применяется между снимками 511, 512, 513 и 514 и снимками 515, 516, 517 и 518 на разных слоях. В показанном примере снимки 511, 512, 513 и 514 являются частью слоя N+1 532, а снимки 515, 516, 517 и 518 являются частью слоя N 531. Слой, такой как слой N 531 и/или слой N+1 532, представляет собой группу снимков, которые все связаны с аналогичным значением характеристики, такой как аналогичный размер, качество, разрешение, отношение сигнал/шум, возможности и т.д. В показанном примере слой N+1 532 связан с большим размером изображения, чем слой N 531. Соответственно, снимки 511, 512, 513 и 514 в слое N+1 532 имеют больший размер снимка (например, большую высоту и ширину и, следовательно, больше выборок), чем снимки 515, 516, 517 и 518 в слое N 531 в этом примере. Однако такие снимки могут быть разделены между слоем N+1 532 и слоем N 531 по другим характеристикам. Хотя показаны только два слоя, слой N+1 532 и слой N 531, набор снимков может быть разделен на любое количество слоев на основе соответствующих характеристик. Слой N+1 532 и слой N 531 также могут обозначаться идентификатором (ID) слоя. ID слоя - это элемент данных, который связан со снимком и указывает, что снимок является частью указываемого слоя. Соответственно, каждый снимок 511-518 может быть связан с соответствующим ID слоя для указания того, какой слой N+1 532 или слой N 531 включает в себя соответствующий снимок.

[0096] Снимки 511-518 в разных слоях 531-532 сконфигурированы для отображения альтернативным образом. Как таковые, снимки 511-518 на разных слоях 531-532 могут совместно использовать один и тот же временной идентификатор (ID) и могут быть включены в одну и ту же AU. Используемый здесь термин AU представляет набор из одного или более кодированных снимков, связанных с одним и тем же временем отображения для вывода из DPB. Например, декодер может декодировать и отображать снимок 515 в текущее время отображения, если требуется снимок меньшего размера, или декодер может декодировать и отображать снимок 511 в текущее время отображения, если требуется снимок большего размера. Таким образом, снимки 511-514 на более высоком слое N+1 532 содержат по существу те же данные изображения, что и соответствующие снимки 515-518 на более низком слое N 531 (несмотря на разницу в размере изображения). В частности, снимок 511 содержит по существу те же данные изображения, что и снимок 515, снимок 512 содержит по существу те же данные изображения, что и снимок 516, и т.д.

[0097] Снимки 511-518 могут быть закодированы посредством ссылки на другие снимки 511-518 в том же слое N 531 или N+1 532. Кодирование снимка со ссылкой на другой снимок на том же слое приводит к интер-предсказанию 523, которое является совместимым однонаправленным интер-предсказанием и/или двунаправленным интер-предсказанием. Интер-предсказание 523 изображено сплошными стрелками. Например, снимок 513 может быть закодирован используя интер-предсказание 523 с использованием одного или двух из снимков 511, 512 и/или 514 на слое N+1 532 в качестве опорного, где один снимок используется для однонаправленного интер-предсказания и/или два снимка используются для двунаправленного интер-предсказания. Кроме того, снимок 517 может быть закодирован с использованием интер-предсказания 523 с использованием одного или двух из снимков 515, 516 и/или 518 на слое N 531 в качестве опорного, где один снимок используется для однонаправленного интер-предсказания и/или два снимка используются для двунаправленного интер-предсказания. Когда снимок используется в качестве опорного для другого снимка на том же слое при выполнении интер-предсказания 523, этот снимок может называться опорным снимком. Например, снимок 512 может быть опорным снимком, используемым для кодирования снимка 513 в соответствии с интер-предсказанием 523. Интер-предсказание 523 также может называться внутрислойным предсказанием в многослойном контексте. Таким образом, интер-предсказание 523 представляет собой механизм кодирования выборок текущего снимка посредством ссылки на указанные выборки в опорном снимке, которые отличаются от текущего снимка, где опорный снимок и текущий снимок находятся на одном слое.

[0098] Снимки 511-518 также могут быть закодированы посредством ссылки на другие снимки 511-518 в других слоях. Этот процесс известен как межслойное предсказание 521 и изображен пунктирными стрелками. Межслойное предсказание 521 представляет собой механизм кодирования выборок текущего снимка посредством ссылки на указанные выборки в опорном снимке, где текущий снимок и опорный снимок находятся на разных слоях и, следовательно, имеют разные идентификаторы слоя. Например, снимок на нижнем слое N 531 может использоваться в качестве опорного снимка для кодирования соответствующего снимка на более высоком слое N+1 532. В качестве конкретного примера, снимок 511 может быть закодирован со ссылкой на снимок 515 в соответствии с межслойным предсказанием 521. В таком случае снимок 515 используется как межслойный опорный снимок. Межслойный опорный снимок является опорным снимком, используемым для межслойного предсказания 521. В большинстве случаев межслойное предсказание 521 ограничено таким образом, что текущий снимок, такой как снимок 511, может использовать только межслойный опорный снимок (снимки), которые включены в одну и ту же AU и находятся на более низком слое, например, снимок 515. Когда доступно несколько слоев (например, более двух), межслойное предсказание 521 может кодировать/декодировать текущий снимок на основе нескольких межслойных опорных снимков на более низких слоях, чем текущий снимок.

[0099] Видеокодер может использовать предсказание 500 на основе слоев для кодирования снимков 511-518 с помощью множества различных комбинаций и/или перестановок интер-предсказания 523 и межслойного предсказания 521. Например, снимок 515 может быть закодирован в соответствии с интра-предсказанием. Затем снимки 516-518 могут быть закодированы в соответствии с интер-предсказанием 523 с использованием снимка 515 в качестве опорного снимка. Кроме того, снимок 511 может быть закодирован в соответствии с межслойным предсказанием 521 с использованием снимка 515 в качестве межслойного опорного снимка. Затем снимки 512-514 могут быть закодированы в соответствии с интер-предсказанием 523 с использованием снимка 511 в качестве опорного снимка. Таким образом, опорный снимок может служить и в качестве однослойного опорного снимка, и в качестве межслойного опорного снимка для различных механизмов кодирования. Путем кодирования снимков более высокого слоя N+1 532 на основе N 531 снимков более низкого слоя, более высокий слой N+1 532 может избежать использования интра-предсказания, которое имеет гораздо более низкую эффективность кодирования, чем межслойное предсказание 523 и межслойное предсказание 521. Как таковая, низкая эффективность кодирования интра-предсказания может быть ограничена самыми малыми снимками / снимками самого низкого качества и, следовательно, ограничена кодированием наименьшего количества видеоданных. Снимки, используемые в качестве опорных снимков и/или межслойных опорных снимков, могут быть указаны в записях списка(ов) опорных снимков, содержащихся в структуре списка опорных снимков.

[00100] Каждая AU 506 на Фиг.5 может содержать несколько снимков. Например, одна АU 506 может содержать снимки 511 и 515. Другая AU 506 может содержать снимки 512 и 516. Действительно, каждая AU 506 представляет собой набор из одного или более кодированных снимков, связанных с одним и тем же временем отображения (например, с одним и тем же временным идентификатором) для вывода из буфера декодированных снимков (DPB) (например, для отображения пользователю). Каждый разделитель единиц доступа (AUD) 508 является указателем или структурой данных, используемой для указания начала AU (например, AU 506) или границы между AU.

[00101] В одном варианте осуществления одна AU (например, AU 506) содержит снимок IRAP (внутренняя точки произвольного доступа) (например, снимок 515) на одном слое (например, слое N 531) и снимок не-IRAP (например, снимок 511) на другом слое (например, слое N+1 532). То есть, одна и та же AU содержит как IRAP, так и не-IRAP снимки на разных слоях. В то время как AU показана содержащей один снимок IRAP и один снимок не-IRAP, в практических приложениях в AU может быть включено различное количество снимков IRAP и не-IRAP. Снимки IRAP подробно обсуждаются ниже.

[00102] Предыдущие семейства кодирования видео H.26x обеспечивали поддержку масштабируемости в отдельном профиле(ях) из профиля(ей) для однослойного кодирования. Масштабируемое кодирование видео (SVC) - это масштабируемое расширение AVC/H.264, обеспечивающее поддержку пространственной масштабируемости, временной масштабируемости и масштабируемости по качеству. Для SVC в каждом макроблоке (MB) в снимках EL сигнализируется флаг, чтобы указать, предсказывается ли MB EL с использованием совмещенного блока с нижнего слоя. Предсказание исходя из совмещенного блока может включать в себя текстуру, векторы движения и/или режимы кодирования. Реализации SVC не могут напрямую повторно использовать немодифицированные реализации H.264/AVC в своей конструкции. Синтаксис макроблока EL SVC и процесс декодирования отличаются от синтаксиса и процесса декодирования H.264/AVC.

[00103] Масштабируемый HEVC (SHVC) - это расширение стандарта HEVC/H.265, которое обеспечивает поддержку пространственной масштабируемости и масштабируемости по качеству, многоракурсный HEVC (MV-HEVC) - это расширение HEVC/H.265, которое обеспечивает поддержку многоракурсного масштабирования, а 3D HEVC (3D-HEVC) - это расширение HEVC/H.264, которое обеспечивает поддержку трехмерного (3D) кодирования видео, которое является более продвинутым и более эффективным, чем MV-HEVC. Следует отметить, что временная масштабируемость включена как неотъемлемая часть однослойного кодека HEVC. В конструкции многослойного расширения HEVC используется идея, согласно которой декодированные изображения, используемые для межслойного предсказания, поступают только из одной и той же единицы доступа (AU) и обрабатываются как долгосрочные опорные снимки (LTRP), и им присваиваются опорные индексы в списке(ах) опорных снимков вместе с другими временными опорными снимками на текущем слое. Межслойное предсказание (ILP) достигается на уровне единицы предсказания (PU) путем установки значения опорного индекса так, чтобы оно ссылалось на межслойный опорный снимок (снимки) в списке(ах) опорных снимков.

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

[00105] Последняя версия VVC поддерживает многослойное кодирование видео. Битовый поток VVC может включать в себя несколько слоев. Все слои могут быть независимыми друг от друга, т.е. каждый слой кодируется без использования межслойного предсказания (ILP). В этом случае слои также называются слоями параллельного вещания (simulcast). Также возможно, что некоторые слои кодируются с использованием ILP. Флаг в VPS используется для указания того, являются ли слои simulcast-слоями или используют ли некоторые слои ILP. Когда некоторые слои используют ILP, отношения зависимости слоев между слоями также сигнализируются в VPS.

[00106] В отличие от SHVC и MV-HEVC, последний проект VVC не определяет OLS. OLS - это набор слоев, для которых один или несколько слоев указаны в качестве выходных слоев. Выходной слой - это слой набора выходных слоев, который выводится.

[00107] В последнем проекте VVC, когда слои являются simulcast-слоями, указано, что для декодирования и вывода может быть выбран только один слой. В последнем проекте VVC, когда некоторые слои используют ILP, все слои в битовом потоке задаются как подлежащие декодированию, но только определенные слои задаются как выходные слои. Выходные слои могут быть указаны как 1) только самый высокий слой, 2) все слои или 3) самый высокий слой плюс набор указанных нижерасположенных слоев.

[00108] Фиг.6 является представлением 600 взаимосвязи между снимком 602 IRAP (внутренняя точка произвольного доступа) относительно головных снимков 604 и замыкающих снимков 606 в порядке 608 декодирования и порядке 610 представления (также известном как порядок вывода). В варианте осуществления снимок 602 IRAP упоминается как снимок с чистым произвольным доступом (CRA) или как снимок мгновенного обновления декодера (IDR) со снимком, декодируемым с произвольным доступом (RADL). В HEVC снимки IDR, снимки CRA и снимки с разорванной цепочкой доступа (BLA) считаются снимками 602 IRAP. Для VVC, во время 12-го собрания JVET в октябре 2018 года было решено использовать снимки IDR и CRA в качестве снимков IRAP. В варианте осуществления снимки с разорванной цепочкой доступа (BLA) и постепенным обновлением декодера (GDR) также могут рассматриваться как снимки IRAP. Процесс декодирования кодированной видеопоследовательности всегда начинается с IRAP. Снимки IRAP обеспечивают точку произвольного доступа (RAP).

[00109] Как показано на Фиг.6, головные снимки 604 (например, снимки 2 и 3) следуют за снимком 602 IRAP в порядке декодирования 608, но предшествуют снимку 602 IRAP в порядке представления 610. Замыкающий снимок 606 следует за снимком 602 IRAP как в порядке 608 декодирования, так и в порядке 610 представления. Хотя два головных снимка 606 и один замыкающий снимок 6 изображены на Фиг.6, специалисты в данной области техники поймут, что больше или меньше головных снимков 606 и/или замыкающих снимков 608 может присутствовать в порядке 608 декодирования и порядке 610 представления в практических приложениях.

[00110] Головные снимки 604 на Фиг.6 были разделены на два типа, а именно: головной с пропуском произвольного доступа (RASL) и RADL. Когда декодирование начинается со снимка 602 IRAP (например, снимка 1), снимок RADL (например, снимок 3) может быть правильно декодирован; однако снимок RASL (например, снимок 2) не может быть правильно декодирован. Таким образом, снимок RASL отбрасывается. В свете различия между снимками RADL и RASL тип головного снимка 604, связанный со снимком 602 IRAP, должен быть идентифицирован как RADL или RASL для эффективного и правильного кодирования. В HEVC, когда присутствуют снимки RASL и RADL, ограничено, что для снимков RASL и RADL, которые связаны с одним и тем же снимком 602 IRAP, снимки RASL должны предшествовать снимкам RADL в порядке 610 представления.

[00111] Снимок 602 IRAP обеспечивает следующие две важные функции/преимущества. Во-первых, наличие снимка 602 IRAP указывает, что процесс декодирования может начинаться с этого снимка. Эта функциональность обеспечивает функциональное свойство произвольного доступа, при котором процесс декодирования начинается в этой позиции в битовом потоке, не обязательно в начале битового потока, лишь бы снимок 602 IRAP присутствовал в данной позиции. Во-вторых, наличие снимка 602 IRAP обновляет процесс декодирования, так что кодированный снимок, начинающийся со снимка 602 IRAP, исключая снимки RASL, кодируется без какой-либо ссылки на предыдущие снимки. Наличие снимка 602 IRAP в битовом потоке, следовательно, остановит распространение любой ошибки, которая может произойти во время декодирования закодированных снимков, предшествующих снимку 602 IRAP, на снимок IRAP 602 и те снимки, которые следуют за снимком IRAP 602 в порядке декодирования 608.

[00112] Хотя снимки 602 IRAP обеспечивают важные функциональные возможности, они снижают эффективность сжатия. Наличие снимка 602 IRAP вызывает резкое повышение битрейта. Это снижение эффективности сжатия связано с двумя причинами. Во-первых, поскольку снимок 602 IRAP является интра-предсказанным, сам снимок потребует относительно большего количества битов для представления по сравнению с другими снимками (например, головными снимками 604, замыкающими снимками 606), которые являются интер-предсказанными снимками. Во-вторых, поскольку наличие снимка 602 IRAP нарушает временное предсказание (это имеет место потому, что декодер обновляет процесс декодирования, в котором одним из действий процесса декодирования является удаление предыдущих опорных снимков в буфере декодированных снимков (DPB)) снимок 602 IRAP приводит к тому, что кодирование снимков, следующих за снимком 602 IRAP в порядке 608 декодирования, становится менее эффективным (то есть, для представления требуется больше битов), потому что они имеют меньше опорных снимков для их кодирования с интер-предсказанием.

[00113] Среди типов снимков, которые считаются снимками 602 IRAP, снимок IDR в HEVC имеет другую сигнализацию и получение по сравнению с другими типами снимков. Некоторые отличия заключаются в следующем.

[00114] Для сигнализации и получения значения порядкового номера снимка (POC) изображения IDR часть POC, соответствующая старшему биту (MSB), не выводится из предыдущего ключевого снимка, а просто устанавливается равной 0.

[00115] Что касается информации сигнализации, необходимой для управления опорными снимками, то заголовок слайса снимка IDR не содержит информации, которая должна быть передана для содействия управлению опорными снимками. Для других типов снимков (например, CRA, замыкающие (Trailing), с доступом к временным подуровням (TSA) и т.д.) такая информация, как набор опорных снимков (RPS), описанный ниже, или другие формы подобной информации (например, списки опорных снимков), необходима для процесса маркировки опорных снимков (т.е. процесса определения статуса опорных снимков в буфере декодированных снимков (DPB), либо используемых для ссылки, либо не используемых для ссылки). Однако для снимка IDR такая информация не должна передаваться, поскольку наличие IDR указывает на то, что процесс декодирования должен просто пометить все опорные снимки в DPB как не используемые для ссылки.

[00116] В HEVC и VVC снимкам IRAP и головным снимкам присваиваются разные типы единиц NAL (NUT), чтобы их можно было легко идентифицировать приложениями системного уровня. Например, средству видеомонтажа необходимо понимать типы кодированных снимков без необходимости понимать слишком много деталей синтаксического элемента в кодированном битовом потоке, в частности, для идентификации снимков IRAP от снимков не-IRAP и для идентификации головных снимков, включая определение снимков RASL и RADL, от замыкающих снимков. Замыкающие снимки - это снимки, которые связаны со снимком IRAP и следуют за снимком IRAP в порядке вывода. Снимок, связанный с конкретным снимком IRAP, следует за этим конкретным снимком IRAP в порядке декодирования и предшествует любому другому снимку IRAP в порядке декодирования. Для этого таким вариантам применения может помочь придание снимкам IRAP и головным снимкам их собственного типа единицы NAL.

[00117] В HEVC каждый снимок имеет присвоенное ему значение POC, обозначаемое как PicOrderCntVal. POC имеет три основных применения: для уникальной идентификации снимков, для указания позиции вывода относительно других снимков в той же CVS и для выполнения масштабирования вектора движения в процессе декодирования слоя кодирования видео нижнего уровня (VCL). Все снимки в одной CVS имеют уникальное значение POC. Снимки из разных CVS могут иметь одно и то же значение POC, но снимки по-прежнему могут быть однозначно идентифицированы, поскольку нет возможности смешивать снимки из одной CVS с любым снимком из другой CVS. В CVS допускаются промежутки в значениях POC. То есть, разность значений РОС между двумя снимками, которые являются последовательными в порядке вывода, может отличаться более чем на единицу (и фактически величина, на которую могут отличаться значения РОС для последовательных снимков, может варьироваться произвольно).

[00118] В HEVC значение POC снимка сигнализируется с использованием кодового слова в заголовке слайса. Диапазон допустимых значений POC составляет от -231 до 231-1, поэтому для сохранения битов в заголовке слайса сигнализируются только младшие биты значения POC (LSB POC). Количество битов, используемых для LSB POC, может составлять от 4 до 16 и сигнализируется в SPS. Остальные из битов являются старшими битами значения POC (MSB POC). Поскольку в заголовке слайса сообщается только LSB POC, MSB POC для текущего снимка выводится из предыдущего снимка, называемого prevTid0Pic. Чтобы вывод POC работал одинаково, даже когда снимки удалены, prevTid0Pic устанавливается на ближайший предыдущий снимок временного слоя 0, который не является снимком RASL, снимком RADL или неопорным снимком подслоя. Декодер получает значение MSB POC путем сравнения значения POC текущего снимка со значением POC снимка prevTid0Pic.

[00119] К сожалению, существующие схемы кодирования имеют недостатки. Например, в SHVC и MV-HEVC смешанные снимки IRAP и не-IRAP могут быть включены в одну и ту же единицу доступа (например, снимки 511 и 515 в AU 506 на Фиг.5), но конструкция очень сложна. Действительно, общий процесс декодирования для этой конструкции указан в SHVC и MV-HEVC с использованием нескольких страниц текста в разделе F.8.1 последнего стандарта HEVC. В тексте используется множество глобальных флагов/переменных/списков, включая NoClrasOutputFlag, LayerInitializedFlag, LayerResetFlag, FirstPicInLayerDecodedFlag, NumPredictedLayers, IdPredictedLayer, IdDirectRefLayer, NumDirectRefLayers, NumActiveRefLayerPics, NumActiveRefLayerPics0, NumActiveRefLa. Многие другие места в SHVC и MV-HEVC, которые обеспечивают поддержку смешанных снимков IRAP и не-IRAP в единице доступа, также сложны. Это включает в себя процесс получения POC.

[00120] В данном документе раскрыты способы, которые упрощают вывод порядкового номера снимка (POC) при многослойном кодировании видео, когда одна и та же единица доступа (AU) содержит снимки как IRAP, так и не-IRAP. В однослойном кодировании видео значение старшего бита (MSB) POC сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке (а не выводятся, как в HEVC). Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

[00121] Фиг.7 показан битовый поток 750 видео, сконфигурированный для реализации методики 700 постепенного обновления декодирования (GDR). В данном контексте битовый поток 750 видео также может называться кодированным битовым потоком видео, потоком битов или вариантами этого. Как показано на Фиг.7, битовый поток 750 содержит набор параметров последовательности (SPS) 752, набор параметров снимка (PPS) 754, заголовок 756 слайса и данные 758 изображения.

[00122] SPS 752 содержит данные, общие для всех снимков в последовательности снимков (SOP). Напротив, PPS 754 содержит данные, общие для всего снимка. Заголовок 756 слайса содержит информацию о текущем слайсе, такую как, например, тип слайса, какой из опорных снимков будет использоваться и т.д. SPS 752 и PPS 754 в общем случае могут называться набором параметров. SPS 752, PPS 754 и заголовок 756 слайса являются типами единиц уровня сетевой абстракции (NAL). Единица NAL - это синтаксическая структура, содержащая указание типа данных, которому нужно следовать (например, кодированные видеоданные). Единицы NAL подразделяются на единицы слоя кодирования видео (VCL) и не-VCL единицы NAL. VCL единицы NAL содержат данные, которые представляют значения выборок в видеоснимках, а не-VCL единицы NAL содержат любую связанную дополнительную информацию, такую как наборы параметров (важные данные, которые могут применяться к ряду VCL единиц NAL), и дополнительную информацию улучшения (информацию привязки ко времени и другие дополнительные данные, которые могут повысить удобство использования декодированного видеосигнала, но не являются необходимыми для декодирования значений выборок в видеоснимках). Специалисты в данной области техники поймут, что битовый поток 750 может содержать другие параметры и информацию в практических приложениях.

[00123] Данные 758 изображения по Фиг.7 содержат данные, связанные с кодируемыми или декодируемыми изображениями или видео. Данные 758 изображения могут просто называться полезной нагрузкой или данными, переносимыми в битовом потоке 750. В варианте осуществления данные 758 изображения содержат CVS 708 (или CLVS), содержащие снимок 702 GDR, один или несколько замыкающих снимков 704 и снимок 706 точки восстановления. В варианте осуществления снимок 702 GDR упоминается как головной снимок CVS (CVSS). CVS 708 представляет собой кодированную видеопоследовательность для каждой видеопоследовательности кодированного слоя (CLVS) в битовом видеопотоке 750. Примечательно, что CVS и CLVS одинаковы, когда битовый поток видео включает в себя один слой. CVS и CLVS отличаются только тогда, когда битовый поток 750 видео включает в себя множество слоев. В варианте осуществления замыкающие снимки 704 могут рассматриваться как форма снимка GDR, поскольку они предшествуют снимку 706 точки восстановления в периоде GDR.

[00124] В варианте осуществления снимок 702 GDR, замыкающие снимки 704 и снимок 706 точки восстановления могут определять период GDR в CVS 708. В варианте осуществления порядок декодирования начинается со снимка 702 GDR, продолжается замыкающими снимками 704, а затем переходит к снимку 706 восстановления.

[00125] CVS 708 представляет собой серию снимков (или их частей), начинающуюся со снимка 702 GDR, и включает в себя все снимки (или их части) вплоть до, но не включая, следующего снимка GDR или до конца битового потока 750. Период GDR представляет собой серию снимков, начинающуюся с снимка 702 GDR, и включает в себя все снимки до снимка 706 точки восстановления включительно. Процесс декодирования для CVS 708 всегда начинается со снимка 702 GDR.

[00126] Как показано на Фиг.7, технология или принцип GDR 700 работает в отношении серии снимков, начиная со снимка 702 GDR и заканчивая снимком 706 точки восстановления. Снимок 702 GDR содержит обновленную/чистую область 710, содержащую блоки, которые все были закодированы с использованием интра-предсказания (т.е. интра-предсказанные блоки), и необновленную/грязную область 712, содержащую блоки, которые все были закодированы с использованием интер-предсказания (т.е. интер-предсказанные блоки).

[00127] Замыкающий снимок 704, непосредственно примыкающий к снимку 702 GDR, содержит обновленную/чистую область 710, имеющую первую часть 710A, закодированную с использованием интра-предсказания, и вторую часть 710B, закодированную с использованием интер-предсказания. Вторая часть 710B кодируется посредством ссылки на обновленную/чистую область 710, например, предыдущего снимка в пределах периода GDR CVS 708. Как показано, обновленная/чистая область 710 замыкающих снимков 704 расширяется по мере того, как процесс кодирования перемещается или продвигается в согласованном направлении (например, слева направо), что соответственно сжимает необновленную/грязную область 712. В конце концов, в результате процесса кодирования получается снимок 706 точки восстановления, который содержит только обновленную/чистую область 710. Примечательно, и как будет дополнительно рассмотрено ниже, вторая часть 710B обновленной/чистой области 710, которая закодирована как интер-предсказанные блоки, может относиться только к обновленной/чистой области 710 в опорном снимке.

[00128] Как показано на Фиг.7, каждый из фрагментов снимка 702 GDR, замыкающих снимков 704 и снимка 706 точки восстановления в CVS 708 содержится в своей собственной VCL единице 730 NAL.

[00129] В варианте осуществления VCL единица 730 NAL, содержащая снимок 702 GDR в CVS 708, имеет тип GDR единицы NAL (GDR_NUT). То есть, в варианте осуществления VCL единица 730 NAL, содержащая снимок 702 GDR в CVS 708, имеет свой собственный уникальный тип единицы NAL относительно замыкающих снимков 704 и снимка 706 точки восстановления. В варианте осуществления GDR_NUT позволяет битовому потоку 750 начинаться со снимка 702 GDR вместо того, чтобы битовый поток 750 начинался со снимка IRAP (внутренняя точка произвольного доступа). Обозначение VCL единицы 730 NAL снимка 702 GDR как GDR_NUT может указывать, например, декодеру, что начальная VCL единица 730 NAL в CVS 708 содержит снимок 702 GDR. В варианте осуществления снимок 702 GDR является начальным снимком в CVS 708. В варианте осуществления снимок 702 GDR является начальным снимком в периоде GDR.

[00130] Фиг.8 представляет собой схематическую диаграмму, иллюстрирующую поиск 800 нежелательного движения при использовании ограничения кодера для поддержки GDR. Как показано, поиск 800 движения показывает текущий снимок 802 и опорный снимок 804. Каждый из текущего снимка 802 и опорного снимка 804 включает в себя обновленную область 806, закодированную с интра-предсказанием, обновленную область 808, закодированную с интер-предсказанием, и необновленную область 810. Обновленная область 806, обновленная область 808 и необновленная область 810 аналогичны первой части 710А обновленной/чистой области 710, второй части 710В обновленной/чистой области 710 и необновленной/грязной области 712 на Фиг.7.

[00131] Во время процесса поиска 800 движения кодер ограничен или ему запрещено выбирать любой вектор 812 движения, что приводит к тому, что некоторые выборки опорного блока 814 находятся за пределами обновленной области 806. Это происходит даже тогда, когда опорный блок 814 обеспечивает наилучшие критерии стоимости в плане соотношения скорости-искажения при предсказании текущего блока 816 в текущем снимке 802. Таким образом, Фиг.8 иллюстрирует причину неоптимальности в поиске движения 800 при использовании ограничения кодера для поддержки GDR.

[00132] Фиг.9 иллюстрирует вариант осуществления битового потока 900 видео. В данном контексте битовый поток 900 видео также может называться кодированным битовым потоком видео, потоком битов или вариантами этого. Как показано на Фиг.9, битовый поток 900 содержит по меньшей мере одну единицу снимка (PU) 901. Хотя три из PU 901 показаны на Фиг.9, в практических применениях в битовом потоке 900 может присутствовать другое количество PU 901. Каждая PU 901 представляет собой набор единиц NAL, которые связаны друг с другом в соответствии с заданным правилом классификации, являются последовательными в порядке декодирования и содержат ровно один кодированный снимок (например, снимок 914).

[00133] В варианте осуществления каждая PU 901 содержит одно или несколько из следующего: информация о возможностях декодирования (DCI) 902, набор параметров видео (VPS) 904, набор параметров последовательности (SPS) 906, набор параметров снимка (PPS) 908, заголовок снимка (PH) 912 и снимок 914. Каждый из DCI 902, VPS 904, SPS 906 и PPS 908 в общем случае может называться набором параметров. В варианте осуществления другие наборы параметров, не показанные на Фиг.9, также могут быть включены в битовый поток 900, такой как, например, набор параметров адаптации (APS), который представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулю или более слайсам, как определено нулем или более синтаксическими элементами, обнаруженными в заголовках слайсов.

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

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

[00136] SPS 906 содержит данные, общие для всех снимков в последовательности снимков (SOP). SPS 906 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулю или более полным CLVS, что определяется содержанием синтаксического элемента, находящийся в PPS, на который ссылается синтаксический элемент, находящийся в заголовке каждого снимка. Напротив, PPS 908 содержит данные, общие для всего снимка. PPS 908 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулю или более полным кодированным снимкам, как определено синтаксическим элементом, находящимся в заголовке каждого снимка (например, РН 912).

[00137] В варианте осуществления SPS 906 содержит первый флаг 930, который представляет собой флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag. Когда первый флаг 930 имеет первое значение (например, 1), первый флаг 930 задает, что каждый заголовок (например, заголовок 912 снимка) содержит второй флаг 940, который является другим флагом MSB POC, обозначенным как ph_poc_msb_cycle_present_flag. Когда первый флаг 930 имеет второе значение (например, 0), первый флаг 930 задает, что заголовки (например, заголовок 912 снимка) не содержат второй флаг 940. Как используется здесь, второй флаг 940 может упоминаться как синтаксический элемент ph_poc_msb_cycle_present_flag.

[00138] SPS 906 также содержит указатель длины 950 значения MSB POC, когда значение MSB POC содержится в заголовке, ссылающемся на SPS 906. В варианте осуществления указатель 950 длины обозначается как sps_poc_msb_cycle_len_minus1. В варианте осуществления sps_poc_msb_cycle_len_minus1 плюс 1 задает длину в битах значения MSB POC, когда значение MSB POC присутствует в заголовке, ссылающемся на SPS. В варианте осуществления значение указателя находится в диапазоне от нуля (0) до 32 - sps_log2_max_pic_order_cnt_lsb_minus4 - 5 включительно. sps_log2_max_pic_order_cnt_lsb_minus4 задает значение переменной MaxPicOrderCntLsb (например, LSB порядкового номера снимка), используемой в процессе декодирования для порядкового номера снимка, следующим образом: MaxPicOrderCntLsb=2(sps_log2_max_pic_order_cnt_lsb_minus4 + 4), где значение sps_log2_max_pic_order_cnt_lsb_minus4 должно находиться в диапазоне от 0 до 12 включительно.

[00139] Второй флаг 940 задает, присутствует ли в заголовке значение 960 MSB POC. В варианте осуществления значение 960 MSB POC присутствует для смешанных AU, содержащих снимки как IRAP, так и не-IRAP, как описано в настоящем документе. Когда второй флаг 940 имеет первое значение (например, 1), второй флаг 940 задает, что значение 960 POC MSB присутствует в заголовке (например, заголовке 912 снимка). Когда второй флаг 940 имеет второе значение (например, 0), второй флаг 940 задает, что значение 960 MSB POC отсутствует в заголовке. В варианте осуществления значение 960 MSB POC может упоминаться как синтаксический элемент или элементы значения MSB POC.

[00140] Значение 960 MSB POC задает значение цикла MSB POC текущего снимка (например, снимка 914). В варианте осуществления значение 960 POC MSB обозначается как ph_poc_msb_cycle_val. Таким образом, значение 960 MSB POC явно сигнализируется в битовом потоке 900 вместо того, чтобы быть полученным на основе предыдущего снимка. В варианте осуществления значение MSB POC, переданное в битовом потоке, используется для получения значения POC. В одном варианте осуществления значение POC определяется путем конкатенации значения MSB POC и LSB POC, которые также могут сигнализироваться в битовом потоке 900.

[00141] Каждый закодированный снимок связан с переменной порядкового номера снимка, обозначенной как PicOrderCntVal. PicOrderCntVal получается следующим образом: PicOrderCntVal = PicOrderCntMsb + ph_pic_order_cnt_lsb, где PicOrderCntMsb - это MSB POC, а ph_pic_order_cnt_lsb - это LSB POC.

[00142] Как будет более подробно объяснено ниже, использование вышеупомянутых флагов позволяет использовать несинхронизированные снимки IRAP по слоям. Описанная здесь обработка POC гарантирует, что значения POC всех снимков в пределах AU одинаковы. Для осуществления этого, значения MSB POC сигнализируются (вместо получения) для снимков IRAP, т.е. снимков IDR, CRA и GDR. Это обеспечивает значительно более простую конструкцию для получения POC по сравнению со смешанным механизмом сброса POC и механизмом сигнализирования MSB POC в SHVC и MV-HEVC.

[00143] DCI 902, VPS 904, SPS 906 и PPS 908 содержатся в различных типах единиц слоя сетевой абстракции (NAL). Единица NAL - это синтаксическая структура, содержащая указание типа данных, которому нужно следовать (например, кодированные видеоданные). Единицы NAL подразделяются на единицы слоя кодирования видео (VCL) и не-VCL единицы NAL. VCL единицы NAL содержат данные, которые представляют значения выборок в видеоснимках, а не-VCL единицы NAL содержат любую связанную дополнительную информацию, такую как наборы параметров (важные данные, которые могут применяться к ряду VCL единиц NAL), и дополнительную информацию улучшения (информацию привязки ко времени и другие дополнительные данные, которые могут повысить удобство использования декодированного видеосигнала, но не являются необходимыми для декодирования значений выборок в видеоснимках).

[00144] В варианте осуществления DCI 902 содержится в не-VCL единице NAL, обозначенной как DCI единица NAL или DPS единица NAL. То есть, DCI единица NAL имеет тип DCI единицы NAL (NUT), а DPS единица NAL имеет NUT DPS. В варианте осуществления VPS 904 содержится в не-VCL единице NAL, обозначенной как VPS единица NAL. Следовательно, VPS единица NAL имеет NUT VPS. В варианте осуществления SPS 906 представляет собой не-VCL единицу NAL, обозначенную как SPS единица NAL. Следовательно, SPS единица NAL имеет NUT SPS. В варианте осуществления PPS 908 содержится в не-VCL единице NAL, обозначенной как PPS единица NAL. Следовательно, PPS единица NAL имеет NUT PPS.

[00145] РН 912 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всем слайсам (например, слайсам 918) кодированного снимка (например, снимка 914). В одном варианте осуществления РН 912 находится в новом типе не-VCL единицы NAL, обозначенной как PH единица NAL. Следовательно, PH единица NAL имеет NUT PH (например, PH_NUT). В варианте осуществления в каждую PU 901 входит один и только один РН 912. То есть, PU 901 содержит один или единственный РН 912. В варианте осуществления ровно одна PH единица NAL присутствует для каждого снимка 914 в битовом потоке 900.

[00146] В варианте осуществления PH единица NAL, связанная с PH 912, имеет временной ID и ID слоя. Временной ID указывает позицию PH единицы NAL во времени относительно других PH единиц NAL в битовом потоке (например, битовом потоке 900). ID слоя указывает слой (например, слой 531 или слой 532), который содержит PH единицу NAL. В варианте осуществления временной ID аналогичен POC, но отличается от него. POC однозначно идентифицирует каждый снимок по порядку. В однослойном битовом потоке временной ID и POC будут одинаковыми. В многослойном битовом потоке (например, см. Фиг.5) снимки в одной и той же AU будут иметь разные POC, но один и тот же временной ID.

[00147] В варианте осуществления PH единица NAL предшествует VCL единице NAL, содержащей первый слайс 918 ассоциированного снимка 914. Это устанавливает ассоциацию между РН 912 и слайсами 918 снимка 914, ассоциированными с РН 912, без необходимости иметь ID заголовка снимка, который сигнализируется в РН 912 и на который имеется ссылка из заголовка 920 слайса. Следовательно, можно сделать логический вывод, что все VCL единицы NAL между двумя PH 912 принадлежат одному и тому же снимку 914 и что снимок 914 ассоциирован с первым PH 912 между двумя PH 912. В варианте осуществления первая VCL единица NAL, которая следует за PH 912, содержит первый слайс 918 снимка 914, ассоциированный с PH 912.

[00148] В варианте осуществления PH единица NAL следует за наборами параметров уровня снимка (например, PPS) или наборами параметров более высокого уровня, такими как DCI (он же DPS), VPS, SPS, PPS и т.д., имеющими как временной ID, так и ID слоя меньшие, чем временной ID и ID слоя PH единицы NAL, соответственно. Следовательно, эти наборы параметров не повторяются в пределах снимка или единицы доступа. Благодаря такому упорядочению, PH 912 может быть выявлен немедленно. То есть, наборы параметров, которые содержат параметры, относящиеся ко всему снимку, располагаются в битовом потоке перед PH единицей NAL. Все, что содержит параметры для части снимка, располагается после PH единицы NAL.

[00149] Согласно одному альтернативному варианту, PH единица NAL следует за наборами параметров уровня снимка и сообщениями с префиксной дополнительной информацией улучшения (SEI) или наборами параметров более высокого уровня, такими как DCI (он же DPS), VPS, SPS, PPS, APS, сообщение SEI и т.д.

[00150] В варианте осуществления РН 912 может содержать синтаксический элемент (например, флаг и т.д.), который задает тип снимка для снимка 914, ассоциированного с РН 912. Тип снимка может включать, помимо прочего, следующие типы: снимок с мгновенным обновлением декодера (IDR), снимок с чистым произвольным доступом (CRA), снимок GDR, снимок не-IRAP, который является снимком не-GDR и содержит только интра-предсказанные слайсы (I-слайсы), снимок не-IRAP, который является снимком не-GDR и содержит только однонаправленные интер-предсказанные слайсы (P-слайсы) и I-слайсы, и снимок не-IRAP, который является снимком не-GDR и содержит только двунаправленные интер-предсказанные слайсы (B-слайсы), P-слайсы и I-слайсы. Таким образом, один флаг в РН 912 может указывать, являются ли все слайсы (например, слайсы 918) в снимке (например, снимке 914), например, слайсами снимка GDR (например, снимка 702 GDR). Это также поддерживает сигнализирование порядкового номера снимка (POC) точки восстановления для снимка GDR один раз в РН 912, вместо того, чтобы делать это в каждом заголовке слайса (например, заголовке 920 слайса).

[00151] В варианте осуществления один или несколько синтаксических элементов сигнализируются в РН 912 вместо заголовков 920 слайсов снимка 914, ассоциированного с РН 912. Эти синтаксические элементы представляют собой идентификатор PPS, на который ссылается снимок 914, флаг, задающий то, является ли снимок 914 опорным снимком или нет, цветовую плоскость снимка 914, младший бит (LSB) POC снимка 914, POC точки восстановления, если снимок 914 является снимком GDR (например, снимком 702 GDR), флаг, задающий то, выводятся ли снимки, предшествующие снимку 914, и флаг, задающий то, является ли снимок 914 выходным снимком или нет. ID PPS представляет собой идентификатор, который идентифицирует конкретный PPS для снимка 914. Цветовая плоскость снимка 914 содержит компоненты яркости и цветности (например, Y, Cb и Cr и т.д.) для снимка 914. LSB POC - это бит (или биты), идентифицирующий POC. POC представляет собой переменную, которая ассоциирована с каждым снимком (например, снимком 914), однозначно идентифицирует ассоциированный снимок среди всех снимков в CLVS и, когда ассоциированный снимок должен быть выведен из DPB, указывает позицию ассоциированного снимка в порядке вывода относительно позиций в порядке вывода других снимков в той же CLVS, которые должны выводиться из DPB. POC точки восстановления - это POC, который идентифицирует точку восстановления и, следовательно, снимок точки восстановления.

[00152] Перемещение этих синтаксических элементов из заголовков 920 слайсов в РН 912 позволяет сигнализировать синтаксические элементы один раз для всего снимка 914 вместо повторения синтаксических элементов в каждом заголовке 920 слайса. Это снижает избыточность и повышает эффективность кодирования.

[00153] Снимок 914 представляет собой массив выборок яркости в монохромном формате или массив выборок яркости и два соответствующих массива выборок цветности в формате цвета 4:2:0, 4:2:2 и 4:4:4. В варианте осуществления в каждую PU 901 включен один и только один снимок 914. Таким образом, в каждой PU 901 имеется только один РН 912 и только один снимок 914, соответствующий этому РН 912. То есть, PU 901 содержит один или единственный снимок 914.

[00154] Снимок 914 может быть либо кадром, либо полем. Однако в одной CVS 916 либо все снимки 914 являются кадрами, либо все снимки 914 являются полями. CVS 916 представляет собой кодированную видеопоследовательность для каждой видеопоследовательности кодированного слоя (CLVS) в битовом потоке 900 видео. Примечательно, что CVS 916 и CLVS одинаковы, когда битовый поток 900 видео включает в себя один слой. CVS 916 и CLVS различаются только тогда, когда битовый поток 900 видео включает в себя множество слоев (например, как показано на Фиг.5).

[00155] PU 901 вместе могут составлять CLVS. CLVS - это последовательность PU 901 с одним и тем же значением nuh_layer_id, которая состоит в порядке декодирования из PU начала видеопоследовательности кодированного слоя (CLVSS), за которыми следует ноль или более PU 901, которые не являются PU CLVSS, включая все последующие PU 901 вплоть до, но не включая, любого последующего PU 901, который является PU CLVSS. PU CLVSS представляет собой PU 901, в которой кодированный снимок (например, снимок 914) является снимком CLVSS. Снимок CLVSS является закодированным снимком, который представляет собой снимок IRAP с флагом NoOutputBeforeRecoveryFlag, равным 1, или снимок GDR (например, снимок 702 GDR) с флагом NoOutputBeforeRecoveryFlag, равным 1.

[00156] Каждый снимок 914 содержит один или более слайсов 918. Слайс 918 представляет собой целое число полных клеток или целое число последовательных полных строк CTU в клетке снимка (например, снимка 914). Каждый слайс 918 содержится исключительно в одной единице NAL (например, VCL единице NAL). Клетка (не показана) представляет собой прямоугольную область единиц дерева кодирования (CTU) в конкретном столбце клетки и конкретной строке клетки в снимке (например, снимке 914). CTU (не показана) представляет собой CTB выборок яркости, два соответствующих CTB выборок цветности снимка, который имеет три массива выборок, или CTB выборок монохромного снимка или снимка, который закодирован с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. CTB (не показан) представляет собой блок выборок N×N для некоторого значения N, так что разделение компонента на CTB представляет собой разбиение. Блок (не показан) представляет собой массив M×N (M столбцов на N строк) выборок (например, пикселей) или массив M×N коэффициентов преобразования.

[00157] В варианте осуществления каждый слайс 918 содержит заголовок 920 слайса. Заголовок 920 слайса представляет собой часть закодированного слайса 918, содержащую элементы данных, относящиеся ко всем клеткам или строкам CTU в клетке, представленной в слайсе 918. То есть, заголовок 920 слайса содержит информацию о слайсе 918, такую как, например, тип слайса, какой из опорных снимков будет использоваться и т.д.

[00158] Снимки 914 и их слайсы 918 содержат данные, связанные с кодируемыми или декодируемыми изображениями или видео. Таким образом, снимки 914 и их слайсы 918 могут просто называться полезной нагрузкой или данными, переносимыми в битовом потоке 900.

[00159] Специалисты в данной области техники поймут, что битовый поток 900 может содержать другие параметры и информацию в практических приложениях.

[00160] Фиг.10 - вариант осуществления способа 1000 декодирования, реализуемого видеодекодером (например, видеодекодером 400). Способ 1000 может выполняться после того, как битовый поток был непосредственно или опосредованно принят от видеокодера (например, видеокодера 300). Способ 1000 совершенствует процесс декодирования, предоставляя методики, которые упрощают получение POC при многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP. При однослойном кодировании видео значение MSB POC сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

[00161] На этапе 1002 видеодекодер принимает битовый поток, включающий в себя SPS (например, SPS 906), содержащий первый флаг (например, первый флаг 930) и указатель длины (например, указатель длины 950) значения MSB POC (например, значения 960 MSB POC), когда значение MSB POC присутствует в заголовке (например, заголовке 912 снимка), ссылающемся на SPS. В варианте осуществления первый флаг представляет собой флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag. Значение первого флага задает, присутствует ли второй флаг (например, второй флаг 940) в заголовке, ссылающемся на SPS. В варианте осуществления, когда значение первого флага равно 1, второй флаг присутствует в каждом заголовке, ссылающемся на SPS. В варианте осуществления, когда значение первого флага равно 0, второй флаг отсутствует в заголовках, ссылающихся на SPS.

[00162] В варианте осуществления второй флаг является другим флагом MSB POC и обозначается как ph_poc_msb_cycle_present_flag. Значение второго флага задает, присутствует ли значение MSB POC в заголовке. В варианте осуществления значение 960 MSB POC присутствует для смешанных AU, содержащих снимки как IRAP, так и не-IRAP, как описано в настоящем документе. В варианте осуществления, когда значение второго флага равно 1, значение MSB POC присутствует в заголовке, ссылающемся на SPS. В варианте осуществления, когда значение второго флага равно 0, значение MSB POC не присутствует в заголовке, ссылающемся на SPS.

[00163] На этапе 1004 видеодекодер определяет значение POC на основе значения MSB POC. Значение POC представляет собой переменную, ассоциированную с каждым снимком. Значение POC однозначно идентифицирует ассоциированный снимок среди всех снимков в CLVS, определяет, когда ассоциированный снимок должен быть выведен из DPB, и указывает позицию ассоциированного снимка в порядке вывода относительно позиций порядка вывода других снимков в той же CLVS, которые должны выводиться из DPB. В варианте осуществления значение POC определяется путем конкатенации или иного объединения значения MSB POC и значения POS LSB (например, значение POC = MSB POC + LSB POC).

[00164] На этапе 1006 видеодекодер идентифицирует снимок (например, снимок 914) из потока битов на основе значения POC. На этапе 1008 видеодекодер декодирует снимок, чтобы получить декодированный снимок. После декодирования снимок может быть использован для генерирования или создания последовательности изображений или видео для отображения пользователю на дисплее или экране электронного устройства (например, смартфона, планшета, ноутбука, персонального компьютера и т. д.).

[00165] Фиг.11 - вариант осуществления способа 1100 кодирования битового потока видео, реализуемого видеокодером (например, видеокодером 300). Способ 1100 может выполняться, когда снимок (например, из видео) должен быть закодирован в битовый поток видео и затем передан в видеодекодер (например, видеодекодер 400). Способ 1100 совершенствует процесс кодирования, предоставляя методики, которые упрощают получение POC при многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP. При однослойном кодировании видео значение MSB POC сбрасывается, когда встречается снимок IRAP. При многослойном кодировании видео, когда одна и та же AU содержит снимки как IRAP, так и не-IRAP на разных слоях, сброс значения MSB POC при обнаружении снимка IRAP приведет к тому, что снимок IRAP и снимок не-IRAP будут иметь разные значения MSB POC, что может привести к ошибкам кодирования. Чтобы решить эту проблему, вместо сброса значения MSB POC для снимка IRAP из битового потока получают значение MSB POC для снимка IRAP и длину MSB POC для снимка IRAP. То есть, значение MSB POC для снимка IRAP и длина MSB POC для снимка IRAP сигнализируются в битовом потоке. Это гарантирует, что значения MSB POC снимков IRAP и не-IRAP в одной и той же AU остаются одинаковыми, что устраняет потенциальные ошибки кодирования. Таким образом, кодер/декодер (он же «кодек») в кодировании/декодировании видео улучшен по сравнению с текущими кодеками. С практической точки зрения улучшенный процесс кодирования видео предлагает пользователю более качественный уровень пользовательского взаимодействия при отправке, получении и/или просмотре видео.

[00166] На этапе 1102 видеокодер устанавливает первый флаг (например, первый флаг 930) в SPS (например, SPS 906) в значение, чтобы указать, что второй флаг (например, второй флаг 940) присутствует в заголовке, ссылающемся на SPS. В варианте осуществления первый флаг представляет собой флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag. В варианте осуществления, когда значение первого флага равно 1, второй флаг присутствует в заголовке, ссылающемся на SPS. В варианте осуществления, когда значение первого флага равно 0, второй флаг не присутствует в заголовке, ссылающемся на SPS.

[00167] На этапе 1104 видеокодер предоставляет указатель длины (например, указатель длины 950) значения MSB POC (например, значения 960 MSB POC) в SPS, когда значение MSB POC присутствует в заголовке, ссылающемся на SPS.

[00168] На этапе 1106 видеокодер устанавливает второй флаг в значение, чтобы указать, что значение MSB POC присутствует в заголовке. В варианте осуществления второй флаг является другим флагом MSB POC и обозначается как ph_poc_msb_cycle_present_flag. В варианте осуществления, когда значение второго флага равно 1, значение MSB POC присутствует в заголовке, ссылающемся на SPS. В варианте осуществления, когда значение второго флага равно 0, значение MSB POC отсутствует в заголовке, ссылающемся на SPS.

[00169] На этапе 1108 видеокодер кодирует SPS и заголовок в битовый поток. На этапе 1110 видеокодер сохраняет битовый поток для передачи в видеодекодер. Битовый поток видео может храниться в памяти до тех пор, пока битовый поток видео не будет передан в видеодекодер. После приема видеодекодером закодированный битовый поток видео может быть декодирован (например, как описано выше), чтобы сгенерировать или создать последовательность изображений или видео для отображения пользователю на дисплее или экране электронного устройства (например, смартфона, планшета, ноутбука, персонального компьютера и т.п.).

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

[00171] В варианте осуществления ассоциированный снимок IRAP (конкретного снимка с nuh_layer_id, равным конкретному значению layerId) является предыдущим снимком IRAP в порядке декодирования с nuh_layer_id, равным layerId (если он присутствует), между которыми нет снимка GDR с nuh_layer_id, равным layerId. nuh_layer_id задает идентификатор слоя, которому принадлежит VCL единица NAL, или идентификатор слоя, к которому применяется не-VCL единица NAL. Значение nuh_layer_id должно находиться в диапазоне от 0 до 55 включительно. Другие значения для nuh_layer_id зарезервированы ITU-T|ISO/IEC для будущего использования.

[00172] Используемая здесь PU также может называться единицей доступа к слою. В варианте осуществления единица доступа к слою, соответствующая чистому произвольному доступу (CRA), представляет собой едницу доступа к слою, в которой кодированный снимок является снимком CRA. В варианте осуществления снимок чистого произвольного доступа (CRA) представляет собой снимок IRAP, для которого каждая VCL единица NAL имеет nal_unit_type, равный CRA_NUT. В варианте осуществления снимок CRA не использует интер-предсказание в процессе декодирования и может быть первым снимком в битовом потоке в порядке декодирования или может появляться позже в битовом потоке. В варианте осуществления снимок CRA может иметь ассоциированные снимки RADL или RASL. Когда снимок CRA имеет флаг NoOutputBeforeRecoveryFlag, равный 1, ассоциированные снимки RASL не выводятся декодером, поскольку они могут быть недекодируемыми, так как они могут содержать ссылки на снимки, отсутствующие в битовом потоке.

[00173] В варианте осуществления видеопоследовательность кодированного слоя (CLVS) представляет собой последовательность PU с одинаковым значением nuh_layer_id, состоящую в порядке декодирования из PU CLVSS, за которой следует ноль или более PU, не являющихся PU CLVSS, включая все последующие PU вплоть до любого последующего PU, который является PU CLVSS, но не включая его. В одном варианте осуществления PU CLVSS может быть PU IDR, PU CRA или PU GDR. Значение NoOutputBeforeRecoveryFlag равно 1 для каждой PU IDR и каждой PU CRA, у которой HandleCraAsClvsStartFlag равен 1, и каждой PU CRA или GDR, которая является первой PU в слое битового потока в порядке декодирования или первой PU в слое битового потока, который следует за EOS единицей NAL в порядке декодирования.

[00174] В варианте осуществления единица доступа к слою, соответствующая началу видеопоследовательности кодированного слоя (CLVSS), представляет собой единицу доступа к слою, в которой кодированный снимок представляет собой снимок CLVSS. Снимок начала видеопоследовательности кодированного слоя (CLVSS) представляет собой кодированный снимок, который является снимком IRAP с NoIncorrectPicOutputFlag, равным 1, или снимком GDR с NoIncorrectPicOutputFlag, равным 1.

[00175] В варианте осуществления кодированная видеопоследовательность (CVS): Последовательность единиц доступа, которая состоит, в порядке декодирования, из единицы доступа CVSS, за которой следует ноль или более единиц доступа, не являющихся единицами доступа CVSS, включая все последующие единицы доступа вплоть до любой последующей единицы доступа, являющейся единицей доступа CVSS, но не включая ее.

[00176] В варианте осуществления единица доступа, соответствующая началу кодированной видеопоследовательности (CVSS): Единица доступа, в которой имеется единица доступа к слою для каждого слоя в CVS, и кодированным снимком в каждой единице доступа к слою является снимок CLVSS. Следует отметить, что для этого требуется, чтобы каждая AU CVSS была полной AU, а каждый снимок в AU CVSS был снимком CLVSS. В варианте осуществления единица доступа с постепенным обновлением декодирования (GDR): единица доступа, в которой кодированным снимком в каждой присутствующей единице доступа к слою является снимок GDR. В варианте осуществления единица доступа к слою с постепенным обновлением декодирования (GDR): Единица доступа к слою, в которой закодированный снимок является снимком GDR. В варианте осуществления снимок с постепенным обновлением декодирования (GDR): Снимок, для которого каждая VCL единица NAL имеет nal_unit_type, равный GDR_NUT.

[00177] Синтаксис SPS имеет следующий вид:

seq_parameter_set_rbsp() { Дескриптор ... log2_max_pic_order_cnt_lsb_minus4 ue(v) poc_msb_in_rap_pics_flag u(1) если ( poc_msb_in_rap_pics_flag > 0 ) poc_msb_len_minus1 ue(v) ... }

[00178] В варианте осуществления указанные выше синтаксические элементы, выделенные полужирным шрифтом, могут быть включены в VPS.

[00179] Синтаксис заголовка слайса имеет следующий вид:

slice_header() { Дескриптор slice_pic_parameter_set_id ue(v) если ( rect_slice_flag || NumBricksInPic > 1 ) slice_address u(v) если( !rect_slice_flag && !single_brick_per_slice_flag ) num_bricks_in_slice_minus1 ue(v) non_reference_picture_flag u(1) slice_type ue(v) если (separate_colour_plane_flag == 1) color_plane_id u(2) slice_pic_order_cnt_lsb u(v) если( poc_msb_in_rap_pics_flag && nal_unit_type >= IDR_W_RADL && nal_unit_type <= GDR_NUT ) poc_msb_val u(v) если ( nal_unit_type == GDR_NUT ) recovery_poc_cnt ue(v) ... }

[00180] В варианте осуществления часть условия синтаксиса «&& nal_unit_type >= IDR_W_RADL && nal_unit_type <= GDR_NUT» может быть удалена. То есть, сигнализируется poc_msb_val для слайсов с любым значением nal_unit_type, когда poc_msb_in_rap_pics_flag равен 1.

[00181] В варианте осуществления добавляется один флаг уровня снимка, чтобы обусловить присутствие синтаксического элемента poc_msb_val. То есть, кодерам разрешается решать, сигнализировать или не сигнализировать poc_msb_val по отдельности для каждого слайса снимка IRAP или GDR, когда poc_msb_in_rap_pics_flag равен 1.

[00182] В варианте осуществления применяются обе вышеуказанных альтернативы. В варианте осуществления сигнализируют poc_msb_val с использованием se(v) или ue(v) и удаляют синтаксический элемент poc_msb_len_minus1 из синтаксиса SPS.

[00183] Предоставляется семантика заголовка единицы NAL.

[00184] nuh_layer_id задает идентификатор слоя, которому принадлежит VCL единица NAL, или идентификатор слоя, к которому применяется не-VCL единица NAL.

[00185] Значение nuh_layer_id должно быть одинаковым для всех VCL единиц NAL кодированного снимка. Значение nuh_layer_id кодированного снимка или единицы доступа к слою является значением nuh_layer_id VCL единиц NAL кодированного снимка или единицы доступа к слою.

[00186] nal_unit_type задает тип единицы NAL, т.е. тип структуры данных RBSP, содержащейся в единице NAL.

[00187] Значение nal_unit_type должно быть одинаковым для всех единиц NAL кодированного слайса снимка. Снимок или единица доступа к слою упоминается как имеющий тот же тип единицы NAL, что и единицы NAL кодированного слайса снимка или единицы доступа к слою. Следует отметить, что два приведенных выше абзаца позволяют VCL единицам NAL в AU иметь разные типы единиц NAL, что допускает наличие смешанных снимков RAP и не-RAP в AU. Снимок RAP представляет собой снимок IDR, CAR или GDR.

[00188] Значение nal_unit_type должно быть одинаковым для снимков единицы доступа CVSS.

[00189] Обеспечивается порядок единиц доступа и ассоциация с CVS.

[00190] Битовый поток, соответствующий стандарту, включает одну или несколько CVS. CVS состоит из одной или нескольких единиц доступа. Первой единицей доступа CVS является единица доступа CVSS, при этом каждая присутствующая единица доступа к слою является единицей доступа к слою CLVSS, которая является либо IRAP-единицей доступа к слою с NoIncorrectPicOutputFlag, равным 1, либо GDR-единицей доступа к слою с NoIncorrectPicOutputFlag, равным 1. Каждая единица доступа CVSS должна иметь снимок на каждом из слоев, присутствующих в CVS. Требованием соответствия битового потока является то, что при наличии каждая единица доступа к слою в следующей единице доступа после единицы доступа, которая содержит единицу NAL конца последовательности или единицу NAL конца битового потока, должна быть IRAP-единицей доступа к слою, которая может быть IDR-единицей доступа к слою или CRA-единицей доступа к слою, либо GDR-единицей доступа к слою.

[00191] Предоставляется семантика SPS.

[00192] log2_max_pic_order_cnt_lsb_minus4 задает значение переменной MaxPicOrderCntLsb, которая используется в процессе декодирования для порядкового номера снимка следующим образом:

[00193] MaxPicOrderCntLsb = 2 (log2_max_pic_order_cnt_lsb_minus4 + 4)

[00194] Значение log2_max_pic_order_cnt_lsb_minus4 должно находиться в диапазоне от 0 до 12 включительно.

[00195] Значение poc_msb_in_rap_pics_flag, равное 1, задает, что синтаксический элемент poc_msb_val сигнализируется для снимков, которые ссылаются на SPS и для которых VCL единицы NAL имеют nal_unit_type в диапазоне от IDR_W_RADL до GDR_NUT включительно. Значение poc_msb_in_rap_pics_flag, равное 0, задает, что синтаксический элемент poc_msb_val не сигнализируется для снимков, ссылающихся на SPS.

[00196] poc_msb_len_minus1 плюс 1 задает длину в битах синтаксических элементов poc_msb_val, если они присутствуют. Значение poc_msb_len_minus1 должно находиться в диапазоне от 0 до 32 − log2_max_pic_order_cnt_lsb_minus4 − 5 включительно.

[00197] Предоставляется семантика заголовка слайса.

[00198] slice_pic_order_cnt_lsb задает порядковый номер снимка по модулю MaxPicOrderCntLsb для текущего снимка. Длина синтаксического элемента slice_pic_order_cnt_lsb составляет log2_max_pic_order_cnt_lsb_minus4 + 4 бита. Значение slice_pic_order_cnt_lsb должно находиться в диапазоне от 0 до MaxPicOrderCntLsb − 1 включительно.

[00199] poc_msb_val задает значение MSB POC текущего снимка. Длина синтаксического элемента poc_msb_val равна poc_msb_len_minus1 + 1 бит.

[00200] Обеспечивается процесс декодирования для кодированного снимка.

[00201] PictureOutputFlag устанавливается следующим образом:

[00202] - Если выполняется одно из следующих условий, PictureOutputFlag устанавливается равным 0.

[00203] - текущий снимок является снимком RASL и NoIncorrectPicOutputFlag ассоциированного снимка IRAP равен 1.

[00204] - gdr_enabled_flag равен 1 и текущий снимок является снимком GDR с NoIncorrectPicOutputFlag, равным 1.

[00205] - gdr_enabled_flag равен 1, текущий снимок ассоциирован со снимком GDR с NoIncorrectPicOutputFlag, равным 1, и PicOrderCntVal текущего снимка меньше, чем RpPicOrderCntVal ассоциированного снимка GDR.

[00206] - Текущий снимок не принадлежит выходному слою.

[00207] - В противном случае PictureOutputFlag устанавливается равным pic_output_flag.

[00208] Предусмотрен процесс декодирования для порядкового номера снимка.

[00209] Результатом этого процесса является PicOrderCntVal, порядковый номер снимка для текущего снимка.

[00210] Каждый закодированный снимок ассоциирован с переменной порядкового номера снимка, обозначенной как PicOrderCntVal.

[00211] Когда poc_msb_val не присутствует для снимка и текущий снимок не является снимком CLVSS, переменные prevPicOrderCntLsb и prevPicOrderCntMsb получаются следующим образом:

[00212] - Пусть prevTid0Pic будет предыдущим снимком в порядке декодирования, который имеет nuh_layer_id, равный nuh_layer_id текущего снимка, и TemporalId, равный 0, и который не является снимком RASL или RADL.

[00213] - Переменная prevPicOrderCntLsb устанавливается равной slice_pic_order_cnt_lsb у prevTid0Pic.

[00214] - Переменная prevPicOrderCntMsb устанавливается равной PicOrderCntMsb у prevTid0Pic.

[00215] Переменная PicOrderCntMsb текущего снимка получается следующим образом.

[00216] - Если для снимка присутствует poc_msb_val, PicOrderCntMsb устанавливается равным poc_msb_val * MaxPicOrderCntLsb.

[00217] - В противном случае (poc_msb_val для снимка не присутствует), если текущий снимок является снимком CLVSS, PicOrderCntMsb устанавливается равным 0.

[00218] - В противном случае PicOrderCntMsb получается следующим образом.

если ( ( slice_pic_order_cnt_lsb < prevPicOrderCntLsb ) &&

( ( prevPicOrderCntLsb - slice_pic_order_cnt_lsb ) >= ( MaxPicOrderCntLsb/2 )) )

PicOrderCntMsb=prevPicOrderCntMsb+MaxPicOrderCntLsb (8-1)

иначе если( (slice_pic_order_cnt_lsb > prevPicOrderCntLsb ) &&

( ( slice_pic_order_cnt_lsb - prevPicOrderCntLsb ) > ( MaxPicOrderCntLsb/2 )) )

PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb

иначе

PicOrderCntMsb = prevPicOrderCntMsb

[00219] PicOrderCntVal получается следующим образом.

[00220] PicOrderCntVal = PicOrderCntMsb + slice_pic_order_cnt_lsb (8-2)

[00221] ПРИМЕЧАНИЕ. - Все снимки CLVSS, для которых poc_msb_val отсутствует, будут иметь PicOrderCntVal, равный slice_pic_order_cnt_lsb, поскольку для этих снимков PicOrderCntMsb устанавливается равным 0.

[00222] Значение PicOrderCntVal должно находиться в диапазоне от -231 до 231-1 включительно.

[00223] В одной CVS значения PicOrderCntVal для любых двух закодированных снимков с одинаковым значением nuh_layer_id не должны совпадать.

[00224] Все снимки в любой конкретной единице доступа должны иметь одинаковое значение PicOrderCntVal.

[00225] Функция PicOrderCnt(picX) определяется следующим образом:

[00226] PicOrderCnt(picX)=PicOrderCntVal снимка picX (8-3)

[00227] Функция DiffPicOrderCnt(picA, picB) определяется следующим образом:

[00228] DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) − PicOrderCnt(picB) (8-4)

[00229] Битовый поток не должен содержать данных, результатом которых являются используемые в процессе декодирования значения DiffPicOrderCnt(picA, picB), которые не находятся в диапазоне от -215 до 215-1 включительно.

[00230] ПРИМЕЧАНИЕ. - Пусть X – текущий снимок, а Y и Z - два других снимка в той же CVS, Y и Z считаются расположенными в том же направлении порядка вывода от X, когда оба из DiffPicOrderCnt(X, Y) и DiffPicOrderCnt(X, Z) положительны или оба отрицательны.

[00231] Фиг.12 - схематическое представление устройства 1200 кодирования/декодирования видео (например, видеокодера 300 или видеодекодера 400) в соответствии с вариантом осуществления раскрытия. Устройство 1200 кодирования/декодирования видео подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. Устройство 1200 кодирования/декодирования видео содержит входные порты 1210 и приемные устройства (Rx) 1220 для приема данных; процессор, логическое устройство или центральный процессор (ЦП) 1230 для обработки данных; передающие устройства (Tx) 1240 и выходные порты 1250 для передачи данных; и память 1260 для хранения данных. Устройство 1200 кодирования/декодирования видео также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 1210, приемным устройствам 1220, передающим устройствам 1240 и выходным портам 1250 для обеспечения ввода или вывода оптических или электрических сигналов.

[00232] Процессор 1230 реализуется посредством аппаратных средств и программного обеспечения. Процессор 1230 может быть реализован в виде одной или более микросхем CPU, ядер (например, в форме многоядерного процессора), программируемых пользователем вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 1230 поддерживает связь с входными портами 1210, приемными устройствами 1220, передающими устройствами 1240, выходными портами 1250 и памятью 1260. Процессор 1230 содержит модуль 1270 кодирования. Модуль 1270 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 1270 кодирования реализует, обрабатывает, подготавливает или обеспечивает различные функции кодека. Следовательно, включение модуля 1270 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1200 кодирования/декодирования видео и обеспечивает трансформацию устройства 1200 кодирования/декодирования видео в другое состояние. В качестве альтернативы, модуль 1270 кодирования реализуется как инструкции, хранящиеся в памяти 1260 и исполняемые процессором 1230.

[00233] Устройство 1200 кодирования/декодирования видео может также включать в себя устройства 1280 ввода и/или вывода (I/O) для передачи данных пользователю и от пользователя. Устройства 1280 I/O могут включать в себя устройства вывода, такие как дисплей, для отображения видеоданных, динамики для вывода аудиоданных и т.д. Устройства 1280 I/O могут также включать в себя устройства ввода, такие как клавиатура, мышь, шаровой манипулятор и т.д., и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.

[00234] Память 1260 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 1260 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянное запоминающее устройство (ПЗУ, ROM), оперативное запоминающее устройство (ОЗУ, RAM), троичную память с адресацией по содержимому (ТСАМ) и/или статическое оперативное запоминающее устройство (SRAM).

[00235] Фиг.13 - схематическая диаграмма варианта осуществления средства 1300 кодирования/декодирования. В варианте осуществления средство 1300 кодирования/декодирования реализовано в устройстве 1302 кодирования/декодирования видео (например, видеокодере 300 или видеодекодере 400). Устройство 1302 кодирования/декодирования видео включает в себя приемные средства 1301. Приемные средства 1301 выполнены с возможностью приема снимка для кодирования или для приема битового потока для декодирования. Устройство 1302 кодирования/декодирования видео включает в себя средства 1307 передачи, соединенные с приемными средствами 1301. Средства 1307 передачи выполнены с возможностью передачи битового потока в декодер или передачи декодированного снимка в средство отображения (например, одно из устройств 1280 I/O).

[00236] Устройство 1302 кодирования/декодирования видео включает в себя средство 1303 хранения. Средство 1303 хранения соединено с по меньшей мере одним из приемных средств 1301 и средств 1307 передачи. Средство 1303 хранения приспособлено для хранения инструкций. Устройство 1302 кодирования/декодирования видео также включает в себя средство 1305 обработки. Средство 1305 обработки соединено со средством 1303 хранения. Средство 1305 обработки выполнено с возможностью исполнения инструкций, хранящихся в средстве хранения, для осуществления способов.

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

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

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

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

название год авторы номер документа
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2819585C1
УКАЗАНИЕ ТОЧКИ ПРОИЗВОЛЬНОГО ДОСТУПА И ВЫВОД ИЗОБРАЖЕНИЯ В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2021
  • Чой Бёнду
  • Венгер Стефан
  • Лю Шань
RU2787579C1
СПОСОБЫ СИГНАЛИЗИРОВАНИЯ КОМБИНАЦИИ ПЕРЕДИСКРЕТИЗАЦИИ ОПОРНОГО ИЗОБРАЖЕНИЯ И ПРОСТРАНСТВЕННОЙ МАСШТАБИРУЕМОСТИ 2021
  • Чой Беондоо
  • Венгер Штефан
  • Лю Шань
RU2810966C1
СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО 2020
  • Ли Сон
RU2808199C1
СПОСОБ СИГНАЛИЗИРОВАНИЯ РАЗДЕЛЕНИЯ СУБИЗОБРАЖЕНИЙ В КОДИРОВАННОМ ПОТОКЕ ВИДЕО 2021
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2806281C1
СПОСОБ ВЫРАВНИВАНИЯ ПО СЛОЯМ В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2020
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2803890C1
Способ сигнализации заголовка изображения в потоке кодированных видеоданных 2021
  • Чой Бёнду
  • Лю Шань
  • Венгер Стефан
RU2789520C1
Способ поуровневого произвольного доступа в кодированном видеопотоке 2020
  • Чой Бёнду
  • Лю Шань
  • Венгер Стефан
RU2775739C1
СПОСОБ СИГНАЛИЗАЦИИ РАЗДЕЛЕНИЯ ПРЯМОУГОЛЬНОГО СЛАЙСА В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2021
  • Чой Беондоо
  • Лю Шань
  • Венгер Штефан
RU2814858C1
СПОСОБ ПОДДЕРЖКИ БЛОКОВ УРОВНЯ СЕТЕВОЙ АБСТРАКЦИИ (NAL) СМЕШАННЫХ ТИПОВ В КОДИРОВАННОМ ИЗОБРАЖЕНИИ 2020
  • Чой Бёнду
  • Венгер Стефан
  • Лю Шань
RU2782245C1

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

Реферат патента 2024 года ПОДДЕРЖКА СМЕШАННЫХ СНИМКОВ IRAP И НЕ-IRAP В ПРЕДЕЛАХ ЕДИНИЦЫ ДОСТУПА В МНОГОСЛОЙНЫХ БИТОВЫХ ПОТОКАХ ВИДЕО

Изобретение относится к кодированию видео. Техническим результатом является повышение эффективности сжатия видео. Результат достигается тем, что принимают битовый поток, включающий в себя набор параметров последовательности (SPS), содержащий первый флаг и указатель длины значения старших битов (MSB) порядкового номера снимка (POC), когда оно присутствует в заголовке, ссылающемся на SPS, где значение первого флага задает, что в заголовке, ссылающемся на SPS, присутствует второй флаг, и где значение второго флага задает, что в заголовке присутствует значение MSB POC; определяют значение POC на основе значения MSB POC; идентифицируют снимок из битового потока на основе значения POC; и декодируют этот снимок для получения декодированного снимка. 3 н. и 11 з.п. ф-лы, 13 ил.

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

1. Способ декодирования, реализуемый видеодекодером, при этом способ содержит этапы, на которых:

принимают посредством видеодекодера битовый поток, включающий в себя набор параметров последовательности (SPS) и заголовок, ссылающийся на SPS, причем SPS содержит первый флаг, при этом заголовок содержит второй флаг, указатель длины значения старших битов (MSB) порядкового номера снимка (POC) и это значение MSB POC, при этом значение первого флага задает, что второй флаг присутствует в заголовке, и при этом значение второго флага задает, что значение MSB POC присутствует в заголовке;

определяют посредством видеодекодера значение POC на основе значения MSB POC;

идентифицируют посредством видеодекодера снимок из потока битов на основе значения POC; и

декодируют посредством видеодекодера этот снимок, чтобы получить декодированный снимок.

2. Способ по п.1, в котором первый флаг содержит флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag.

3. Способ по любому из пп.1, 2, в котором значение первого флага равно единице.

4. Способ по любому из пп.1-3, в котором второй флаг содержит другой флаг MSB POC и обозначается как ph_poc_msb_cycle_present_flag.

5. Способ по любому из пп.1-4, в котором значение второго флага равно единице.

6. Способ по любому из пп.1-5, в котором значение POC определяется путем конкатенации значения MSB POC со значением младших битов (LSB) POC.

7. Способ по любому из пп.1-6, в котором второй флаг является флагом уровня снимка.

8. Способ по любому из пп.1-7, в котором указатель длины плюс 1 задает длину MSB POC в битах.

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

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

приемник, выполненный с возможностью принимать битовый поток, включающий в себя в себя набор параметров последовательности (SPS), содержащий первый флаг и указатель длины значения старших битов (MSB) порядкового номера снимка (POC), когда оно присутствует в заголовке, ссылающемся на SPS;

память, соединенную с приемником, причем память хранит инструкции; и

процессор, соединенный с памятью, при этом процессор выполнен с возможностью исполнения инструкций для предписания устройству декодирования:

определять, присутствует ли второй флаг в заголовке, ссылающемся на SPS, на основе значения первого флага;

определять, присутствует ли значение MSB POC в заголовке, на основе значения второго флага, когда второй флаг присутствует;

определять значение POC на основе значения MSB POC, когда значение MSB POC присутствует;

идентифицировать снимок из битового потока на основе значения POC; и

декодировать этот снимок, чтобы получить декодированный снимок.

11. Устройство декодирования по п.10, при этом первый флаг содержит флаг MSB POC, обозначенный как sps_poc_msb_cycle_flag.

12. Устройство декодирования по любому из пп.10, 11, при этом второй флаг содержит другой флаг MSB POC и обозначен как ph_poc_msb_cycle_present_flag.

13. Устройство декодирования по любому из пп.10-12, при этом второй флаг является флагом уровня снимка.

14. Машиночитаемый носитель данных, на котором записана программа, при этом программа предписывает компьютеру выполнять способ по любому одному из пп.1-9.

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

US 2015181233 A1, 2015.06.25
WO 2014006854 A1, 2014.01.09
US 2019166372 A1, 2019.05.30
US 2015195577 A1, 2015.07.09
US 10362304 B2, 2019.07.23
US 9654774 B2, 2017.05.16
КОДИРОВАНИЕ МЛАДШИХ ЗНАЧАЩИХ БИТОВ ЗНАЧЕНИЙ СЧЕТА ПО ПОРЯДКУ КАРТИНКИ, ИДЕНТИФИЦИРУЮЩИХ ДОЛГОСРОЧНЫЕ ОПОРНЫЕ КАРТИНКИ 2012
  • Ван Е-Куй
  • Рамасубрамониан Адарш Кришнан
  • Чен Ин
RU2594760C2

RU 2 815 736 C1

Авторы

Ван, Е-Куй

Даты

2024-03-21Публикация

2020-09-16Подача