RU2810966C1 - Methods of signaling combination of reference image resampling and spatial scalability - Google Patents

Methods of signaling combination of reference image resampling and spatial scalability Download PDF

Info

Publication number
RU2810966C1
RU2810966C1 RU2021131294A RU2021131294A RU2810966C1 RU 2810966 C1 RU2810966 C1 RU 2810966C1 RU 2021131294 A RU2021131294 A RU 2021131294A RU 2021131294 A RU2021131294 A RU 2021131294A RU 2810966 C1 RU2810966 C1 RU 2810966C1
Authority
RU
Russia
Prior art keywords
image
cvs
value
layer
flag
Prior art date
Application number
RU2021131294A
Other languages
Russian (ru)
Inventor
Беондоо ЧОЙ
Штефан ВЕНГЕР
Шань ЛЮ
Original Assignee
TEНСЕНТ АМЕРИКА ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TEНСЕНТ АМЕРИКА ЭлЭлСи filed Critical TEНСЕНТ АМЕРИКА ЭлЭлСи
Application granted granted Critical
Publication of RU2810966C1 publication Critical patent/RU2810966C1/en

Links

Images

Abstract

FIELD: video encoding.
SUBSTANCE: first flag is obtained from the encoded video bitstream indicating that resampling of the reference image is enabled for the encoded video sequence (CVS). The value of the second flag indicating whether the image resolution is changed in the CVS is determined. Based on the value of the second flag indicating that the image resolution is changed in the CVS, the CVS is decoded using reference image resampling for spatial scalability and adaptive resolution resampling (ARC). Based on the value of the second flag indicating that the image resolution is not changed in the CVS, the CVS is decoded using reference picture resampling for spatial scalability and without using reference picture resampling for ARC. Based on the value of the second flag indicating that the image resolution is not changed in CVS, a fifth flag included in the image parameter set referencing the SPS indicates that the image resolution is not changed in CVS.
EFFECT: increase of efficiency of image encoding.
15 cl, 34 dwg, 1 tbl

Description

Перекрестная ссылка на родственную заявкуCross reference to related application

[1] Эта заявка испрашивает приоритет согласно 35 USC § 119 по предварительной заявке США № 63/027 835, поданной 20 мая 2020 г., предварительной заявке США № 63/035 647, поданной 5 июня 2020 г., предварительной заявке США № 63/036 174, поданная 8 июня 2020 г., предварительной заявке США № 63/036 342, поданной 8 июня 2020 г., и заявке США № 17/211 236, поданной 24 марта 2021 г. в Агентство по патентам и товарным знакам США, содержание которых включено в настоящий документ посредством ссылки во всей своей полноте.[1] This application claims priority under 35 USC § 119 to US Provisional Application No. 63/027,835 filed May 20, 2020, US Provisional Application No. 63/035,647 filed June 5, 2020, US Provisional Application No. 63 /036,174, filed June 8, 2020, U.S. Provisional Application No. 63/036,342, filed June 8, 2020, and U.S. Application No. 17/211,236, filed March 24, 2021, with the United States Patent and Trademark Office , the contents of which are incorporated herein by reference in their entirety.

Область техники, к которой относится изобретениеField of technology to which the invention relates

[2] Раскрытый объект изобретения относится к кодированию и декодированию видео, а конкретнее, к сигнализированию комбинации передискретизации опорного изображения и пространственной масштабируемости в кодированном потоке видео с множеством слоев.[2] The disclosed subject matter of the invention relates to video encoding and decoding, and more specifically to signaling a combination of reference picture resampling and spatial scalability in a multi-layer video codestream.

Уровень техникиState of the art

[3] Известно кодирование и декодирование видео с использованием межкадрового предсказания с компенсацией движения. Несжатое цифровое видео может состоять из серии изображений, причем каждое изображение имеет пространственный размер, например, 1920 x 1080 отсчетов яркости и связанных отсчетов цветности. Серия изображений может иметь фиксированную или переменную частоту изображений (неофициально также известную как частота кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео имеет значительные требования к битрейту. Например, для видео 1080p60 4:2:0 с частотой 8 бит на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 гигабайт (ГБ) дискового пространства.[3] Video encoding and decoding using inter-frame prediction with motion compensation is known. Uncompressed digital video may consist of a series of images, each image having a spatial dimension, such as 1920 x 1080 luminance samples and associated chrominance samples. A series of images can have a fixed or variable image rate (informally also known as frame rate), such as 60 images per second or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video at 8 bits per sample (1920x1080 luminance samples resolution at 60 Hz frame rate) requires a bandwidth of close to 1.5 Gbps. An hour of such video requires more than 600 gigabytes (GB) of disk space.

[4] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к полосе пропускания или пространству для хранения, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого приложения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских приложений потоковой передачи допустимы более высокие искажения, чем для пользователей приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия.[4] One of the purposes of video encoding and decoding may be to reduce redundancy in the input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage space requirements, in some cases by two orders of magnitude or more. Both lossless and lossy compression, or a combination of both, can be used. Lossless compression refers to techniques in which an exact copy of the original signal can be reconstructed from the compressed original signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough to make the reconstructed signal suitable for the intended application. In the case of video, lossy compression is widely used. The acceptable degree of distortion depends on the application; for example, users of certain consumer streaming applications may tolerate higher distortion than users of broadcast television applications. The achievable compression ratio may reflect the following: Higher resolution/acceptable distortion may result in a higher compression ratio.

[5] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже.[5] The video encoder and video decoder may use techniques from several broad categories, including, for example, motion compensation, transform, quantization, and entropy coding, some of which will be presented below.

[6] Исторически видеокодеры и видеодекодеры имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS), группы изображений (GOP) или аналогичного временного кадра с множеством изображений. Например, в MPEG-2 известно, что конструкция системы изменяет горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендаций МСЭ-Т H.263, Приложение P. Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально могут использоваться только части холста изображения (в случае понижающей дискретизации) или захватываться только части сцены (в случае повышающей дискретизации). Кроме того, Приложение Q H.263 разрешает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в H.263, и поэтому его не нужно сигнализировать.[6] Historically, video encoders and video decoders have tended to operate at a given picture size, which in most cases was defined and remained constant for a coded video sequence (CVS), group of pictures (GOP), or similar multi-picture time frame. For example, in MPEG-2 it is known that the system design changes the horizontal resolution (and thus the image size) depending on factors such as scene activity, but only for I-pictures, hence typically for GOP. Resampling of reference images to use different resolutions in CVS is known, for example, from ITU-T Rec. H.263, Annex P. However, here the image size is not changed, only the reference images are resampled, resulting in potentially only parts of the image canvas being used (in in the case of downsampling) or capturing only parts of the scene (in the case of upsampling). In addition, H.263 Annex Q allows an individual macroblock to be resampled by a factor of two (in each dimension), up or down. Again, the image size remains the same. The macroblock size is fixed in H.263 and therefore does not need to be signalled.

[7] Изменение размера изображения в предсказанных изображениях стало более распространенным явлением в современном кодировании видео. Например, VP9 позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (включая, например, Hendry, и др., «On adaptive resolution change (ARC) for VVC», документ Объединенной команды видеоэкспертов (JVT) JVET-M0135-v1, 9-19 января 2019 г., полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений с другим - более высоким или более низким - разрешением. В этом документе предлагается кодировать различные кандидаты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.[7] Image resizing in predicted images has become more common in modern video coding. For example, VP9 allows you to resample a reference image and change the resolution of the entire image. Likewise, some proposals made regarding VVC (including, for example, Hendry, et al., “On adaptive resolution change (ARC) for VVC,” JVT paper JVET-M0135-v1, January 9-19 2019, incorporated herein in its entirety) allow entire reference images to be resampled to a different, higher or lower, resolution. This document proposes to encode different resolution candidates in a sequence parameter set and refer to them using syntax elements for each image in the image parameter set.

Раскрытие сущности изобретенияDisclosure of the invention

[8] В варианте осуществления предусматривается способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий: получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS; на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC.[8] In an embodiment, there is provided a method for decoding a coded video bitstream using at least one processor, comprising: obtaining from the coded video bitstream a first flag indicating that resampling of a reference picture is enabled for a coded video sequence (CVS); determining a value of a second flag indicating whether the image resolution is changed in CVS; based on the value of the second flag indicating that the image resolution is changed in the CVS, decoding the CVS using resampling of the reference image for spatial scalability and adaptive resolution resampling (ARC); and, based on the value of the second flag indicating that the image resolution is not changed in the CVS, decoding the CVS using reference picture resampling for spatial scalability and without using reference picture resampling for ARC.

[9] В варианте осуществления предусматривается устройство для декодирования кодированного битового потока видео, включающее по меньшей мере один элемент памяти, конфигурированную для хранения программного кода; и по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, при этом программный код включает: первый код получения, конфигурированный предписывать по меньшей мере одному процессору получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); код определения, конфигурированный предписывать по меньшей мере одному процессору определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS; первый код декодирования, конфигурированный предписывать по меньшей мере одному процессору на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и второй код декодирования, конфигурированный предписывать по меньшей мере одному процессору на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC[9] In an embodiment, there is provided an apparatus for decoding an encoded video bitstream, including at least one memory element configured to store program code; and at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: a first acquisition code configured to cause the at least one processor to obtain from the encoded video bitstream a first flag indicating that reference image resampling is enabled for coded video sequence (CVS); determination code configured to cause the at least one processor to determine the value of a second flag indicating whether the image resolution is changed in CVS; a first decoding code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is changed in the CVS, to decode the CVS using reference image resampling for spatial scalability and adaptive resolution resampling (ARC); and a second decoding code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is not changed in the CVS, to decode the CVS using reference picture resampling for spatial scalability and without using reference picture resampling for ARC

[10] В варианте осуществления предусмотрен невременный машиночитаемый носитель, хранящий инструкции, включающие: одну или несколько инструкций, которые при выполнении одним или несколькими процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам: получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS); определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS; на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); и на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC.[10] In an embodiment, a non-transitory computer-readable medium is provided storing instructions including: one or more instructions that, when executed by one or more processors of an apparatus for decoding an encoded video bitstream, cause one or more processors to: obtain from the encoded video bitstream a first flag, indicating that resampling of the reference picture is enabled for the coded video sequence (CVS); determine the value of a second flag indicating whether the image resolution is changed in CVS; based on the value of the second flag indicating that the image resolution is changed in the CVS, decode the CVS using reference image resampling for spatial scalability and adaptive resolution resampling (ARC); and based on the value of the second flag indicating that the image resolution is not changed in the CVS, decode the CVS using reference picture resampling for spatial scalability and without using reference picture resampling for ARC.

Краткое описание чертежейBrief description of drawings

[11] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более понятны из следующего подробного описания и прилагаемых чертежей, на которых изображено следующее:[11] Additional features, spirit and various advantages of the disclosed subject matter will be better understood from the following detailed description and the accompanying drawings, in which the following is shown:

[12] На фиг. 1 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.[12] In FIG. 1 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment.

[13] На фиг. 2 показана схематическая иллюстрация упрощенной блок-схемы системы связи в соответствии с вариантом осуществления.[13] In FIG. 2 is a schematic illustration of a simplified block diagram of a communication system in accordance with an embodiment.

[14] На фиг. 3 показана схематическая иллюстрация упрощенной блок-схемы декодера в соответствии с вариантом осуществления.[14] In FIG. 3 is a schematic illustration of a simplified block diagram of a decoder in accordance with an embodiment.

[15] На фиг. 4 показана схематическая иллюстрация упрощенной блок-схемы кодера в соответствии с вариантом осуществления.[15] In FIG. 4 is a schematic illustration of a simplified block diagram of an encoder in accordance with an embodiment.

[16] На фиг. 5A-5E показаны схематические иллюстрации вариантов сигнализации параметров ARC в соответствии с вариантом осуществления, в соответствии с вариантом осуществления.[16] In FIG. 5A-5E show schematic illustrations of ARC parameter signaling options in accordance with an embodiment, in accordance with an embodiment.

[17] На фиг. 6A-6B показаны схематические иллюстрации примеров синтаксических таблиц в соответствии с вариантом осуществления.[17] In FIG. 6A-6B show schematic illustrations of examples of syntax tables in accordance with an embodiment.

[18] На фиг.7 показан пример структуры предсказания для масштабируемости с изменением адаптивного разрешения в соответствии с вариантом осуществления.[18] FIG. 7 shows an example of a prediction structure for adaptive resolution scalability according to an embodiment.

[19] На фиг.8 показан пример таблицы синтаксиса в соответствии с вариантом осуществления.[19] FIG. 8 shows an example of a syntax table according to an embodiment.

[20] На фиг. 9 показана схематическая иллюстрация упрощенной блок-схемы синтаксического анализа и декодирования цикла POC на единицу доступа и значение счетчика единиц доступа в соответствии с вариантом осуществления.[20] In FIG. 9 is a schematic illustration of a simplified flowchart of parsing and decoding a POC cycle per access unit and access unit counter value in accordance with an embodiment.

[21] На фиг. 10 показана схематическая иллюстрация структуры видеобитового потока, содержащей многослойные субизображения, в соответствии с вариантом осуществления.[21] In FIG. 10 is a schematic illustration of a video bitstream structure containing multi-layer sub-images in accordance with an embodiment.

[22] а фиг. 11 показана схематическая иллюстрация отображения выбранного субизображения с улучшенным разрешением в соответствии с вариантом осуществления.[22] and fig. 11 is a schematic illustration of displaying a selected sub-image with improved resolution in accordance with an embodiment.

[23] На фиг. 12 показана блок-схема процесса декодирования и отображения битового потока видео, содержащего многослойные субизображения, в соответствии с вариантом осуществления.[23] In FIG. 12 is a flowchart of a process for decoding and displaying a video bitstream containing multi-layer sub-images in accordance with an embodiment.

[24] На фиг. 13 показана схематическая иллюстрация отображения видео 360° с улучшенным слоем субизображения в соответствии с вариантом осуществления.[24] In FIG. 13 is a schematic illustration of a 360° video display with an enhanced sub-image layer in accordance with an embodiment.

[25] На фиг. 14 показан пример информации компоновки субизображения и его соответствующего слоя и структуры предсказания изображения в соответствии с вариантом осуществления.[25] In FIG. 14 shows an example of arrangement information of a sub-image and its corresponding layer and image prediction structure according to an embodiment.

[26] На фиг. 15 показан пример информации компоновки субизображения и их соответствующего слоя и структуры предсказания изображения с модальностью пространственной масштабируемости локальной области в соответствии с вариантом осуществления.[26] In FIG. 15 shows an example of sub-image layout information and their corresponding layer and image prediction structure with local area spatial scalability modality in accordance with an embodiment.

[27] На фиг. 16A-16B показаны примеры таблиц синтаксиса для информации компоновки субизображения в соответствии с вариантами осуществления.[27] In FIG. 16A-16B show examples of syntax tables for sub-image layout information in accordance with embodiments.

[28] На фиг. 17 показан пример таблицы синтаксиса сообщения SEI для информации компоновки субизображения в соответствии с вариантом осуществления.[28] In FIG. 17 shows an example of a SEI message syntax table for sub-image layout information according to an embodiment.

[29] На фиг. 18 показан пример таблицы синтаксиса для указания выходных слоев и информации профиля/яруса/уровня для каждого набора выходных слоев согласно варианту осуществления.[29] In FIG. 18 shows an example syntax table for specifying output layers and profile/tier/layer information for each set of output layers according to an embodiment.

[30] На фиг. 19 показан пример таблицы синтаксиса, чтобы указать режим выходного слоя для каждого набора выходных слоев согласно варианту осуществления.[30] In FIG. 19 shows an example of a syntax table to indicate an output layer mode for each set of output layers according to an embodiment.

[31] На фиг. 20 показан пример таблицы синтаксиса для указания текущего субизображения каждого слоя для каждого набора выходных слоев в соответствии с вариантом осуществления.[31] In FIG. 20 shows an example syntax table for specifying the current sub-image of each layer for each set of output layers in accordance with an embodiment.

[32] На фиг. 21 показан пример таблицы синтаксиса полезной нагрузки необработанной последовательности байтов (RBSP).[32] In FIG. Figure 21 shows an example of a raw byte sequence payload (RBSP) syntax table.

[33] На фиг. 22 показан пример таблицы синтаксиса для указания набора выходного слоя с режимом набора выходного слоя.[33] In FIG. 22 shows an example syntax table for specifying an output layer set with an output layer set mode.

[34] На фиг.23 показан пример таблицы синтаксиса для указания передискретизации опорного изображения и изменений разрешения в кодированной видеопоследовательности в наборе параметров последовательности (SPS).[34] FIG. 23 shows an example syntax table for indicating reference picture resampling and resolution changes in a coded video sequence in a sequence parameter set (SPS).

[35] На фиг. 24 показан пример таблицы синтаксиса для указания размера изображения в PPS (PPS).[35] In FIG. Figure 24 shows an example syntax table for specifying the image size in PPS (PPS).

[36] На фиг. 25A-25C показаны блок-схемы примерных процессов декодирования кодированного битового потока видео в соответствии с вариантом осуществления.[36] In FIG. 25A-25C show flow diagrams of exemplary processes for decoding an encoded video bitstream in accordance with an embodiment.

[37] На фиг. 26 показана схематическая иллюстрация компьютерной системы в соответствии с одним вариантом осуществления.[37] In FIG. 26 is a schematic illustration of a computer system in accordance with one embodiment.

Осуществление изобретенияCarrying out the invention

[38] На фиг.1 проиллюстрирована упрощенная блок-схема системы (100) связи согласно варианту осуществления настоящего раскрытия. Система (100) может включать в себя по меньшей мере два терминала (110-120), соединенных между собой через сеть (150). Для однонаправленной передачи данных первый терминал (110) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (120) через сеть (150). Второй терминал (120) может принимать кодированные видеоданные другого терминала из сети (150), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т. п.[38] FIG. 1 illustrates a simplified block diagram of a communication system (100) according to an embodiment of the present disclosure. The system (100) may include at least two terminals (110-120) connected to each other via a network (150). For unidirectional data transmission, the first terminal (110) may encode video data at a local location for transmission to another terminal (120) via the network (150). The second terminal (120) may receive encoded video data of another terminal from the network (150), decode the encoded data, and display the reconstructed video data. Unidirectional data transfer may be common in media serving applications and the like.

[39] На фиг.1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.[39] FIG. 1 shows a second pair of terminals (130, 140) providing support for bi-directional transmission of encoded video, which may occur, for example, during video conferencing. For bidirectional data transmission, each terminal (130, 140) may encode video data captured at a local location for transmission to another terminal via the network (150). Each terminal (130, 140) can also receive encoded video data transmitted by another terminal, can decode the encoded data, and can display the reconstructed video data on a local display device.

[40] На фиг.1 терминалы (110-140) могут быть изображены как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не могут быть ограничены этим. Варианты осуществления настоящего изобретения находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (150) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (110-140), включая, например, сети проводной и/или беспроводной связи. Сеть (150) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (150) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.[40] In FIG. 1, the terminals (110-140) may be depicted as servers, personal computers, and smartphones, but the principles of the present disclosure cannot be limited to this. Embodiments of the present invention find use in laptop computers, tablet computers, media players, and/or specialized videoconferencing equipment. Network (150) is any number of networks that transmit encoded video data between terminals (110-140), including, for example, wired and/or wireless communication networks. The communications network (150) may communicate over circuit-switched and/or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and/or the Internet. For purposes of this discussion, the architecture and topology of the network (150) may not be essential to the operation of the present disclosure unless explained below herein.

[41] На фиг.2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.[41] FIG. 2 illustrates, as an example of an application for the disclosed subject matter, the placement of a video encoder and a video decoder in a streaming environment. The disclosed subject matter may be equally applicable to other video-enabled applications including, for example, video conferencing, digital television, compressed video storage on digital media including CD, DVD, memory card, etc., and so on. .

[42] Система потоковой передачи может включать в себя субсистему (213) захвата, которая может включать в себя источник (201) видео, например цифровую камеру, создающую, например, поток (202) отсчетов несжатого видео. Данный поток (202) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми потоками видео, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток (204) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на сервере (205) потоковой передачи для будущего использования. Один или более клиентов (206, 208) потоковой передачи могут получить доступ к серверу (205) потоковой передачи для извлечения копий (207, 209) кодированного битового потока (204) видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию кодированного битового потока видео (207) и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или другом устройстве визуализации (не изображено). В некоторых системах потоковой передачи битовые потоки (204, 207, 209) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Рекомендацию МСЭ-T H.265. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео или VVC. Раскрытый объект изобретения может использоваться в контексте VVC.[42] The streaming system may include a capture subsystem (213), which may include a video source (201), such as a digital camera, producing, for example, a stream (202) of uncompressed video samples. This sample stream (202), represented by a thick line to highlight the large amount of data compared to the encoded video bitstreams, can be processed by an encoder (203) connected to the camera (201). The encoder (203) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), depicted as a thin line to emphasize the smaller amount of data compared to the sample stream, may be stored on the streaming server (205) for future use. One or more streaming clients (206, 208) may access the streaming server (205) to retrieve copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video bitstream (207) and creates an outgoing stream (211) of video samples that can be displayed on a display (212) or other rendering device (not shown) . In some streaming systems, the video bitstreams (204, 207, 209) may be encoded according to certain video encoding/compression standards. Examples of these standards include ITU-T Recommendation H.265. A video encoding standard, informally known as Universal Video Coding or VVC, is under development. The disclosed subject matter may be used in the context of VVC.

[43] Фиг.3 может быть функциональной блок-схемой видеодекодера (210) согласно варианту осуществления настоящего раскрытия.[43] FIG. 3 may be a functional block diagram of a video decoder (210) according to an embodiment of the present disclosure.

[44] Приемник (310) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (210); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (310) и энтропийным декодером/парсером (320) (далее «парсер») может быть подключена буферная память (315). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буферная память (315) может не понадобиться или может быть небольшой. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (315), который может быть сравнительно большим и может быть предпочтительно адаптивного размера.[44] The receiver (310) may receive one or more encoded video sequences to be decoded by the decoder (210); in the same or another embodiment, one encoded video sequence at a time, where the decoding of each encoded video sequence is independent of other encoded video sequences. The encoded video sequence may be received from a channel (312), which may be a hardware/software connection to a storage device in which the encoded video data is stored. The receiver (310) may receive the encoded video data with other data, such as encoded audio data and/or ancillary data streams, which may be sent to their respective using entities (not shown). The receiver (310) can separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) can be connected between the receiver (310) and the entropy decoder/parser (320) (“parser”). When the receiver (310) receives data from a storage/forwarding device with sufficient bandwidth and controllability or from an iso-synchronous network, the buffer memory (315) may not be needed or may be small. For use in best quality packet networks such as the Internet, a buffer (315) may be required, which may be relatively large and may preferably be of an adaptive size.

[45] Видеодекодер (210) может включать в себя синтаксический анализатор (320) для восстановления символов (321) из энтропийной кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как это было показано на фиг.3. Управляющая информация для устройства (устройств) визуализации может быть в форме дополнительной информации улучшения (сообщения SEI) или фрагментов набора параметров информации о пригодности видео (VUI) (не изображены). Парсер (320) может выполнять парсинг и/или энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (320) может извлекать из кодированной видеопоследовательности набор параметров субгруппы по меньшей мере для одной из субгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, кирпичики, макроблоки, единицы дерева кодирования (CTU), единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Тайл может указывать прямоугольную область CU/CTU в конкретном столбце и ряде тайлов в изображении. Кирпичик может указывать на прямоугольную область рядов CU/CTU в пределах конкретного тайла. Слайс может указывать на один или несколько кирпичиков изображения, которые содержатся в единице NAL. Субизображение может указывать на прямоугольную область одного или нескольких слайсов в изображении. Энтропийный декодер/парсер также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и так далее.[45] The video decoder (210) may include a parser (320) for recovering symbols (321) from the entropy encoded video sequence. Categories of these symbols include information used to control the operation of the decoder (210), and potentially information to control a visualization device, such as a display (212), which is not an integral part of the decoder, but may be connected to it, as has been shown in figure 3. The control information for the rendering device(s) may be in the form of additional enhancement information (SEI messages) or video usability information (VUI) parameter set fragments (not shown). The parser (320) may parse and/or entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be performed in accordance with a video encoding technology or standard and may follow principles well known to those skilled in the art, including variable length encoding, Huffman encoding, arithmetic encoding with or without context sensitivity, and so on. The parser (320) may extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include Groups of Pictures (GOPs), Pictures, Tiles, Slices, Bricks, Macroblocks, Coding Tree Units (CTUs), Coding Units (CUs), Blocks, Transform Units (TUs), Prediction Units (PUs), and so on. . A tile can indicate a rectangular CU/CTU area in a specific column and a number of tiles in an image. A brick may indicate a rectangular area of CU/CTU rows within a particular tile. A slice can point to one or more image bricks that are contained in a NAL unit. A sub-image can point to a rectangular area of one or more slices in an image. An entropy decoder/parser can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

[46] Парсер (320) может выполнять операцию энтропийного декодирования и/или парсинга видеопоследовательности, принятой из буфера (315), чтобы создавать символы (321).[46] The parser (320) may perform an entropy decoding and/or parsing operation on the video sequence received from the buffer (315) to create symbols (321).

[47] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: интер- и интраизображение, интер- и интраблок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации субгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (320). Поток такой управляющей информации субгруппы между парсером (320) и множеством модулей ниже не показан для ясности.[47] Symbol recovery 321 may include a variety of different modules depending on the type of video image or portions thereof (such as inter- and intra-picture, inter- and intrablock) and other factors being encoded. Which modules are enabled and how can be controlled by subgroup control information parsed from the encoded video sequence using the parser (320). The flow of such subgroup control information between the parser (320) and the plurality of modules is not shown below for clarity.

[48] Помимо уже упомянутых функциональных блоков, декодер 210 может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.[48] In addition to the functional blocks already mentioned, the decoder 210 can be conceptually divided into a number of functional modules, as described below. In a practical implementation operating under commercial constraints, many of these modules interact closely with each other and can be at least partially integrated into each other. However, for purposes of describing the disclosed subject matter, it is appropriate to conceptually subdivide it into functional modules as follows.

[49] Первым модулем является модуль (351) масштабирования и/или обратного преобразования. Модуль (351) масштабирования и/или обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (321) от парсера (320). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (355).[49] The first module is a scaling and/or inverse transform module (351). The scaling and/or inverse transform module (351) receives the quantized transform factor, as well as control information, including which transform to use, block size, quantization factor, quantization scaling matrices, and so on, as symbol(s) (321) from parser (320). It can output blocks containing sample values that can be entered into the aggregator (355).

[50] В некоторых случаях выходные отсчеты модуля (351) масштабирования и/или обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях модуль (352) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (358). Агрегатор (355), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (351) масштабирования и/или обратного преобразования.[50] In some cases, the output samples of the scaling and/or demapping module (351) may be related to an intra-encoded block; that is, to a block that does not use prediction information from previously reconstructed images, but may use prediction information from previously reconstructed portions of the current image. Such prediction information may be provided by an intra-frame prediction module (352). In some cases, the intra-frame prediction module (352) generates a block of the same size and shape as the block being reconstructed using surrounding already reconstructed information extracted from the current (partially reconstructed) image (358). The aggregator (355), in some cases, adds for each sample the prediction information generated by the intra-prediction module (352) to the output sample information provided by the scaling and/or inverse transform module (351).

[51] В других случаях выходные отсчеты модуля (351) масштабирования и/или обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу модуля масштабирования и/или обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.[51] In other cases, the output samples of the scaling and/or inverse transform module (351) may be related to an intercoding and potentially motion-compensated block. In such a case, the motion compensated prediction module (353) may access the reference image memory (357) to retrieve samples used for prediction. After motion compensation of the selected samples in accordance with the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output of the scaler and/or inverse transform module (here called residual samples or residual signal) to generate information about output samples. The addresses in the reference picture memory from which the motion-compensated prediction module selects prediction samples may be controlled by motion vectors available to the motion-compensated prediction module in the form of symbols (321), which may have, for example, X, Y, and reference picture components. Motion compensation may also include interpolation of sample values retrieved from reference image memory, where precise subsample motion vectors, motion vector prediction mechanisms, and so on are used.

[52] Выходные отсчеты агрегатора (355) могут подвергаться различным методам петлевой фильтрации в модуле (356) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (356) петлевой фильтрации как символы (321) из парсера (320), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.[52] The output samples of the aggregator (355) can be subjected to various loop filtering techniques in the loop filter module (356). Video compression technologies may include intra-loop filtering technologies that are controlled by parameters included in the encoded video bitstream and provided to the loop filtering module (356) as symbols (321) from the parser (320), but may also respond to meta-information received during decoding previous (in decoding order) parts of the encoded image or encoded video sequence, and also respond to sample values previously restored and filtered through loop filtering.

[53] Выходной сигнал модуля (356) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (212) визуализации, а также сохранен в памяти опорных изображений для использования в будущем межкадровом предсказании.[53] The output of the loop filter module (356) may be a stream of samples, which may be output to the renderer (212) and also stored in reference picture memory for use in future inter-frame prediction.

[54] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, парсером (320)), текущее опорное изображение (358) может стать частью буфера (357) опорных изображений, и свежая память текущих изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.[54] Certain encoded images, after complete restoration, can be used as reference images for future prediction. After the encoded picture has been completely reconstructed and the encoded picture has been identified as a reference picture (eg, by the parser (320)), the current reference picture (358) may become part of the reference picture buffer (357), and fresh current picture memory may be reallocated before starting to restore the next encoded image.

[55] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как ITU-T Rec. H.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах границ, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.[55] Video decoder 210 may perform decoding operations according to a predetermined video compression technology, which may be documented in a standard such as ITU-T Rec. H.265. The encoded video sequence may conform to the syntax specified by a video compression technology or standard in use, in the sense that it matches the syntax of the video compression technology or standard as specified in the video compression technology document or standard and, in particular, in its profiles document. It may also be necessary for compliance to ensure that the complexity of the encoded video sequence is within the boundaries defined by the technology level or video compression standard. In some cases, levels limit the maximum image size, the maximum frame rate, the maximum reconstruction sampling rate (measured, for example, in megasamples per second), the maximum reference image size, and so on. The limits set by the layers can in some cases be further limited by hypothetical reference decoder (HRD) specifications and HRD buffer management metadata signaled in the encoded video sequence.

[56] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.[56] In an embodiment, the receiver (310) may receive additional (redundant) coded video data. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (210) to correctly decode the data and/or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant images, forward error correction codes, and so on.

[57] Фиг.4 может быть функциональной блок-схемой видеокодера (203) согласно варианту осуществления настоящего раскрытия.[57] FIG. 4 may be a functional block diagram of a video encoder (203) according to an embodiment of the present disclosure.

[58] Кодер (203) может принимать отсчеты видео от источника (201) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (203).[58] The encoder (203) may receive video samples from a video source (201) (which is not part of the encoder), which may capture video image(s) for encoding by the encoder (203).

[59] Источник (201) видео может предоставлять исходную видеопоследовательность для кодирования кодером (203) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, ...), любое цветовое пространство (например, BT.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (203) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т. д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.[59] The video source (201) may provide the original video sequence for encoding by the encoder (203) in the form of a digital video sample stream, which may be of any suitable bit depth (eg: 8 bits, 10 bits, 12 bits, ...), any color space (eg BT.601 Y CrCB, RGB, ...) and any suitable sample structure (eg Y CrCb 4:2:0, Y CrCb 4:4:4). In a multimedia serving system, the video source (201) may be a storage device storing pre-prepared video. In a video conferencing system, the video source (203) may be a camera that captures local image information as a video sequence. Video data may be provided as many individual images that, when viewed sequentially, convey motion. The images themselves may be organized as a spatial array of pixels, in which each pixel may contain one or more samples depending on the sample structure used, color space, etc. The relationship between pixels and samples can be readily understood by one skilled in the art. The description below is oriented towards readings.

[60] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.[60] In an embodiment, the encoder (203) may encode and compress images of the original video sequence into an encoded video sequence (443) in real time or with any other timing constraints as required by the application. Providing an appropriate encoding rate is one of the functions of the controller (450). The controller controls other functional modules as described below and is functionally connected to these modules. The connection is not depicted for clarity. Parameters set by the controller may include parameters related to rate control (image skip, quantizer, lambda value of rate-distortion optimization methods, ...), image size, group of picture (GOP) layout, maximum motion vector search range, and so on . Other functions of the controller (450) can be readily recognized by one skilled in the art as they may relate to a video encoder (203) optimized for a particular system design.

[61] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (430) (далее «кодер источника») (ответственной за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения(й)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое буфера опорных изображений также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалисту в данной области техники.[61] Some video encoders operate in what one skilled in the art would readily recognize as a "coding loop". As a simplified description, the encoding loop may consist of an encoding portion of the encoder 430 (hereinafter referred to as the "source encoder") (responsible for generating symbols based on the input image to be encoded and the reference image(s)), and a (local) decoder (433) built into an encoder (203) that reconstructs the symbols to create sample data that the (remote) decoder can also create (since any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosed subject matter ). This reconstructed stream of samples is entered into the reference image memory (434). Since decoding a symbol stream produces bit-accurate results regardless of the location of the decoder (locally or remotely), the contents of the reference picture buffer are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction portion of the encoder "sees" as reference picture samples exactly the same sample values that the decoder would "see" using prediction during decoding. This fundamental principle of reference picture synchronicity (and the resulting drift if synchronicity cannot be maintained, for example due to channel errors) is well known to one skilled in the art.

[62] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше со ссылкой на фиг.3. Кратко ссылаясь также на фиг.4, однако, поскольку символы доступны, и кодирование и/или декодирование символов в кодированную видеопоследовательность энтропийным кодером (445) и парсером (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и парсер (320), не могут быть полностью реализованы в локальном декодере (433).[62] The operation of the "local" decoder (433) may be the same as that of the "remote" decoder (210), which has already been described in detail above with reference to FIG. 3. Briefly referring also to FIG. 4, however, since the symbols are available, and encoding and/or decoding of the symbols into the encoded video sequence by the entropy encoder (445) and parser (320) can be performed losslessly, the entropy decoding portion of the decoder (210), including the channel ( 312), sink (310), buffer (315) and parser (320), cannot be fully implemented in the local decoder (433).

[63] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме парсинга и/или энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. По этой причине раскрытый объект изобретения фокусируется на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.[63] At this point, the observation can be made that any decoding technology other than parsing and/or entropy decoding that is present in the decoder must also necessarily be present in substantially identical functional form in the corresponding encoder. For this reason, the disclosed subject matter of the invention focuses on the operation of the decoder. The description of encoding technologies may be shortened because they are the inverse of the fully described decoding technologies. Only some areas require more detailed description, which is given below.

[64] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.[64] As part of its operation, the source encoder (430) may perform motion-compensated predictive encoding that predictively encodes the input frame with reference to one or more previously encoded frames from the video sequence that have been designated “reference frames.” Thus, the encoding engine 432 encodes the differences between blocks of pixels of the input frame and blocks of pixels of the reference frame(s) that can be selected as prediction reference(s) for the input frame.

[65] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг.4), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (434) опорных изображений. Таким образом, кодер (203) может локально хранить копии восстановленных опорных кадров, которые имеют общее содержимое, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).[65] The local video decoder (433) may decode encoded frame video data, which may be referred to as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may preferably be lossy processes. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can usually be a copy of the original video sequence with some errors. The local video decoder (433) copies the decoding processes that may be performed by the video decoder on the reference frames and may cause the reconstructed reference frames to be stored in a reference picture cache (434). Thus, the encoder (203) may locally store copies of reconstructed reference frames that have common content as reconstructed reference frames that will be received by the far-end video decoder (assuming no transmission errors).

[66] Предиктор (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.[66] The predictor (435) may perform predictive searches for the encoding engine (432). That is, for a new image to be encoded, the predictor (435) may search the reference image memory (434) for sample data (as reference pixel block candidates) or certain metadata such as reference image motion vectors, block shapes, etc. further, which can serve as a suitable prediction standard for new images. The predictor (435) may operate on a block-by-pixel basis of samples to find appropriate prediction references. In some cases, as determined by the search results obtained by the predictor (435), the input image may have prediction patterns taken from a plurality of reference images stored in the reference image memory (434).

[67] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установку параметров и параметров субгруппы, используемых для кодирования видеоданных.[67] The controller (450) may control the encoding operations of the video encoder (430), including, for example, setting parameters and subgroup parameters used to encode video data.

[68] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.[68] The output signals of all the above functional modules may be entropy encoded in an entropy encoder (445). The entropy encoder translates the symbols generated by the various functional modules into an encoded video sequence by losslessly compressing the symbols according to techniques known to those skilled in the art, such as Huffman encoding, variable length encoding, arithmetic encoding, and so on.

[69] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).[69] The transmitter (440) may buffer the encoded video sequence(s) generated by the entropy encoder (445) to prepare it for transmission through a communication channel (460), which may be a hardware/software connection to a storage device that will store the encoded video data . The transmitter (440) may merge the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or ancillary data streams (sources not shown).

[70] Контроллер (450) может управлять работой кодера (203). Во время кодирования контроллер (450) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов кадров:[70] The controller (450) may control the operation of the encoder (203). During encoding, the controller (450) may assign each encoded image a specific encoded image type, which may affect the encoding techniques that can be applied to the corresponding image. For example, images can often be classified into one of the following frame types:

[71] Интра-изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы интра-изображений, включая, например, изображения с независимым обновлением декодера. Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.[71] An intra-picture (I-picture) may be one that can be encoded and decoded without using any other frame in the sequence as a prediction source. Some video codecs allow different types of intra-pictures, including, for example, pictures with independent decoder update. One skilled in the art is aware of these variants of I-images and their respective applications and features.

[72] Изображение с предсказанием (P-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[72] A prediction picture (P picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction using at most one motion vector and a reference index to predict the sample values of each block.

[73] Изображение с двунаправленным предсказанием (B-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.[73] A bidirectional prediction picture (B picture) may be one that can be encoded and decoded using intra prediction or inter prediction using at most two motion vectors and reference indices to predict the sample values of each block. Likewise, multi-prediction images can use more than two reference images and associated metadata to reconstruct a single block.

[74] Исходные изображения обычно могут быть пространственно разделены на множество блоков отсчетов (например, блоки из 4x4, 8x8, 4x8 или 16x16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки P-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки B-изображений могут кодироваться без предсказания, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[74] Source images can typically be spatially divided into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and encoded on a block-by-block basis. Blocks may be predictively encoded with reference to other (already encoded) blocks, as determined by the encoding assignment applied to the corresponding block images. For example, I-picture blocks may be encoded without prediction, or they may be predictively encoded with reference to already encoded blocks of the same image (spatial prediction or intra-prediction). P-picture pixel blocks may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one previously encoded reference picture. B-picture blocks may be encoded without prediction, by spatial prediction, or by temporal prediction with reference to one or two previously encoded reference pictures.

[75] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т H.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.[75] The video encoder (203) may perform encoding operations in accordance with a predefined video encoding technology or standard, such as ITU-T Rec. H.265. In operation, the video encoder (203) may perform various compression operations, including predictive encoding operations, that exploit temporal and spatial redundancy in the input video sequence. The encoded video data may therefore follow the syntax specified by the video encoding technology or standard being used.

[76] В варианте осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать в себя такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной информации улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.[76] In an embodiment, the transmitter (440) may transmit additional data with encoded video. The video encoder (430) may include such data as part of the encoded video sequence. The additional data may include temporal/spatial/SNR enhancement layers, other forms of redundant data such as redundant images and slices, additional enhancement information (SEI) messages, video suitability information (VUI) parameter set fragments, and so on.

[77] В последнее время некоторое внимание привлекла агрегация сжатой области или извлечение множества семантически независимых частей изображения в одно видеоизображение. В частности, в контексте, например, кодирования 360 или определенных приложений наблюдения, несколько семантически независимых исходных изображений (например, поверхность шести кубов проектируемой кубом сцены 360 или входы отдельных камер в случае многокамерного наблюдения setup) могут потребоваться отдельные настройки адаптивного разрешения, чтобы справиться с различной активностью каждой сцены в данный момент времени. Другими словами, кодеры в данный момент времени могут выбирать использование разных коэффициентов передискретизации для разных семантически независимых изображений, составляющих всю 360-градусную сцену или сцену наблюдения. При объединении в одно изображение, в свою очередь, возникает необходимость в выполнении передискретизации опорного изображения и доступности сигнализирования кодирования с адаптивным разрешением для частей кодированного изображения.[77] Compressed region aggregation, or extracting multiple semantically independent parts of an image into a single video image, has received some attention recently. Particularly in the context of, for example, 360 encoding or certain surveillance applications, multiple semantically independent source images (for example, the surface of six cubes of a cube-projected 360 scene, or individual camera inputs in the case of a multi-camera surveillance setup) may require separate adaptive resolution settings to cope with different activity of each scene at a given time. In other words, coders at a given time may choose to use different resampling factors for different semantically independent images that make up the entire 360-degree scene or surveillance scene. Combining into a single image in turn requires resampling of the reference image and the availability of adaptive resolution encoding signaling for portions of the encoded image.

[78] Ниже представлены несколько терминов, на которые приводится ссылка в оставшейся части этого описания.[78] Below are several terms that are referenced in the remainder of this description.

[79] Суб-изображение может относиться к, в некоторых случаях, прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и которые могут быть независимо кодированы с измененным разрешением. Одно или несколько субизображений могут образовывать изображение. Одно или более кодированных субизображений могут образовывать кодированное изображение. Одно или более субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В определенных средах одно или более кодированных суб-изображений могут быть собраны в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или других случаях одно или более кодированных суб-изображений могут быть извлечены из кодированного изображения в сжатой области.[79] A sub-image may refer to, in some cases, a rectangular arrangement of samples, blocks, macroblocks, encoding units, or similar objects that are semantically grouped and that can be independently encoded at a modified resolution. One or more sub-images may form an image. One or more coded sub-pictures may form a coded picture. One or more sub-images may be assembled into an image, and one or more sub-images may be extracted from the image. In certain environments, one or more encoded sub-pictures may be collected in a compressed region without recoding to the sample level into the encoded image, and in the same or other cases, one or more encoded sub-images may be extracted from a coded image in the compressed region.

[80] Адаптивное изменение разрешения (ARC) может относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. В дальнейшем параметры ARC относятся к управляющей информации, необходимой для выполнения адаптивного изменения разрешения, которая может включать в себя, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и так далее.[80] Adaptive Resolution Changing (ARC) may refer to mechanisms that allow the resolution of an image or sub-image in an encoded video sequence to be changed, for example, by resampling a reference image. In the following, ARC parameters refer to the control information necessary to perform adaptive resolution change, which may include, for example, filter parameters, scaling factors, output and/or reference image resolutions, various control flags, and so on.

[81] В вариантах осуществления кодирование и декодирование могут выполняться для одного семантически независимого кодированного видеоизображения. Перед описанием последствий кодирования/декодирования множества субизображений с независимыми параметрами ARC и их подразумеваемой дополнительной сложности должны быть описаны варианты сигнализации параметров ARC.[81] In embodiments, encoding and decoding may be performed on a single semantically independent encoded video image. Before describing the consequences of encoding/decoding multiple sub-pictures with independent ARC parameters and their implied additional complexity, ARC parameter signaling options must be described.

[82] На фиг. 5A-5E показаны несколько вариантов осуществления сигнализирования параметров ARC. Как отмечено для каждого из вариантов осуществления, они могут иметь определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео могут выбрать один или более из этих вариантов осуществления или вариантов, известных из уровня техники, для сигнализирования параметров ARC. Варианты осуществления могут не быть взаимоисключающими и, возможно, могут быть взаимозаменяемыми в зависимости от потребностей приложения, используемых стандартов или выбора кодера.[82] In FIG. 5A-5E illustrate several embodiments of ARC parameter signaling. As noted for each of the embodiments, they may have certain advantages and certain disadvantages in terms of coding efficiency, complexity and architecture. A video coding standard or technology may select one or more of these embodiments or those known in the art for signaling ARC parameters. The embodiments may not be mutually exclusive and may possibly be interchangeable depending on the needs of the application, the standards used, or the choice of encoder.

[83] Классы параметров ARC могут включать в себя:[83] ARC parameter classes may include:

[84] - коэффициенты повышающей и/или понижающей дискретизации, отдельные или объединенные в измерениях X и Y,[84] - upsampling and/or downsampling factors, separate or combined in the X and Y dimensions,

[85] - коэффициенты повышающей и/или понижающей дискретизации с добавлением временного измерения, указывающие на увеличение/уменьшение размера с постоянной скоростью для заданного количества изображений,[85] - upsampling and/or downsampling factors with the addition of a time dimension, indicating an increase/decrease in size at a constant rate for a given number of images,

[86] - любой из двух вышеупомянутых вариантов может включать в себя кодирование одного или более предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициент(ы),[86] - either of the above two options may involve encoding one or more presumably short syntax elements that may indicate a table containing the coefficient(s),

[87] Разрешение в измерении X или Y в единицах отсчетов, блоках, макроблоках, единицах кодирования (CU) или любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, в сочетании или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть выведен из другого набора значений. Это может быть передано, например, путем использования флагов. Более подробный пример см. ниже.[87] Resolution in the X or Y dimension in sample units, blocks, macroblocks, coding units (CU), or any other suitable granularity of the input image, output image, reference image, coded image, in combination or individually. If there is more than one resolution (for example, one for the input image, one for the reference image), then in some cases one set of values can be inferred from another set of values. This can be conveyed, for example, by using flags. See below for a more detailed example.

[88] координаты «деформации», подобные тем, которые используются в Приложении P H.263, опять же с подходящей степенью детализации, как описано выше. Приложение P H.263 определяет один эффективный способ кодирования таких координат деформации, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, реверсивное кодирование Хаффмана с переменной длиной координат деформации согласно Приложению P может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформацию» за пределами границ максимального размера изображения.[88] "deformation" coordinates similar to those used in H.263 Annex P, again with a suitable level of detail as described above. Annex P H.263 specifies one efficient way to encode such deformation coordinates, but other, potentially more efficient ways may also be being developed. For example, reverse Huffman coding with variable length warp coordinates according to Appendix P can be replaced by binary coding of suitable length, where the length of the binary codeword can be, for example, derived from the maximum image size, perhaps multiplied by a certain factor and offset by a certain value, so that take into account “deformation” beyond the limits of the maximum image size.

[89] Параметры фильтра с повышающей и/или понижающей дискретизацией. В вариантах осуществления может быть только один фильтр для повышающей и/или понижающей дискретизации. Однако в вариантах осуществления может быть желательным обеспечить большую гибкость в конструкции фильтра, и для этого может потребоваться сигнализирование параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью соответствующих соотношений повышающей и/или понижающей дискретизации, которые, в свою очередь, сигнализируются в соответствии с любым из механизмов, упомянутых выше, и так далее.[89] Upsampling and/or downsampling filter options. In embodiments, there may be only one filter for upsampling and/or downsampling. However, in embodiments, it may be desirable to provide greater flexibility in filter design, and this may require signaling of filter parameters. Such parameters may be selected by an index into a list of possible filter designs, the filter may be fully specified (e.g. by a list of filter coefficients using suitable entropy coding techniques), the filter may be implicitly selected by appropriate upsampling and/or downsampling ratios , which in turn are signaled according to any of the mechanisms mentioned above, and so on.

[90] Ниже описание предполагает кодирование конечного набора коэффициентов повышающей и/или понижающей дискретизации (тот же коэффициент, который должен использоваться в измерениях X и Y), указанных с помощью кодового слова. Это кодовое слово может быть закодировано с переменной длиной, например, с использованием экспоненциального кода Голомба, общего для определенных элементов синтаксиса в спецификациях кодирования видео, таких как H.264 и H.265. Одно подходящее сопоставление значений для коэффициентов повышающей и/или понижающей дискретизации может, например, соответствовать Таблице 1:[90] The following description assumes encoding a finite set of upsampling and/or downsampling coefficients (the same coefficient to be used in the X and Y dimensions) specified by a codeword. This codeword may be encoded with a variable length, for example using exponential Golomb code, common to certain syntax elements in video encoding specifications such as H.264 and H.265. One suitable mapping of values for upsampling and/or downsampling factors could, for example, be as shown in Table 1:

ТАБЛИЦА 1TABLE 1 Кодовое словоA codeword Экспоненциальный код ГоломбаExponential Golomb code Исходное/Целевое разрешениеSource/Target Resolution 00 11 1/11/1 11 010010 1/1,5 (увеличение на 50%)1/1.5 (50% increase) 22 011011 1,5/1 (уменьшение на 50%)1.5/1 (50% reduction) 33 0010000100 1/2 (увеличение на 100%)1/2 (100% increase) 44 0010100101 2/1 (уменьшение на 100%)2/1 (100% reduction)

[91] Многие аналогичные сопоставления могут быть разработаны в соответствии с потребностями приложения и возможностями механизмов повышения и понижения дискретизации, доступных в технологии или стандарте сжатия видео. Таблица может быть расширена до большего количества значений. Значения также могут быть представлены механизмами энтропийного кодирования, отличными от Экспоненциальных кодов Голомба, например, с использованием двоичного кодирования. Это может иметь определенные преимущества, когда коэффициенты передискретизации представляли интерес за пределами самих механизмов обработки видео (прежде всего кодера и декодера), например, посредством MANE. Следует отметить, что для ситуаций, когда изменение разрешения не требуется, может быть выбран Экспоненциальный код Голомба, который является коротким; в таблице выше только один бит. Это может иметь преимущество в эффективности кодирования по сравнению с использованием двоичных кодов для наиболее распространенного случая.[91] Many similar mappings can be developed according to the needs of the application and the capabilities of the upsampling and downsampling mechanisms available in the video compression technology or standard. The table can be expanded to include more values. Values can also be represented by entropy encoding mechanisms other than Exponential Golomb codes, such as using binary encoding. This may have certain advantages where resampling factors were of interest outside of the video processing engines themselves (primarily the encoder and decoder), for example through MANE. It should be noted that for situations where a change in resolution is not required, the Exponential Golomb code, which is short, can be chosen; there is only one bit in the table above. This may have an advantage in coding efficiency over using binary codes for the most common case.

[92] Количество записей в таблице, а также их семантика могут быть полностью или частично настраиваемыми. Например, основная структура таблицы может быть передана в «высоком» наборе параметров, таком как последовательность или набор параметров декодера. В вариантах осуществления, одна или более таких таблиц могут быть определены в технологии или стандарте кодирования видео и могут быть выбраны, например, с помощью декодера или набора параметров последовательности.[92] The number of records in the table, as well as their semantics, can be fully or partially customized. For example, the underlying table structure may be conveyed in a "high" parameter set, such as a sequence or decoder parameter set. In embodiments, one or more such tables may be defined in a video encoding technology or standard and may be selected, for example, by a decoder or sequence parameter set.

[93] Ниже приведено описание того, как коэффициент повышающей и/или понижающей дискретизации (информация ARC), закодированный, как описано выше, может быть включен в технологию кодирования видео или стандартный синтаксис. Подобные соображения могут применяться к одному или нескольким кодовым словам, управляющим фильтрами повышающей/понижающей дискретизации. Смотри ниже обсуждение, когда для фильтра или других структур данных требуются сравнительно большие объемы данных.[93] The following is a description of how the upsampling and/or downsampling factor (ARC information) encoded as described above can be included in a video encoding technology or standard syntax. Similar considerations may apply to one or more codewords driving the upsampling/downsampling filters. See the discussion below when a filter or other data structures require relatively large amounts of data.

[94] Как показано на фиг.5А, приложение P H.263 включает информацию (502) ARC в форме четырех координат деформации в заголовок (501) изображения, в частности, в расширение заголовка PLUSPTYPE (503) H.263. Это может быть разумным выбором структуры, когда а) имеется доступный заголовок изображения и б) ожидаются частые изменения информации ARC. Однако служебные данные при использовании сигнализации в стиле H.263 могут быть довольно высокими, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер.[94] As shown in FIG. 5A, H.263 Annex P includes ARC information (502) in the form of four warp coordinates in the image header (501), specifically in the H.263 PLUSPTYPE header extension (503). This may be a reasonable design choice when a) the image header is available and b) frequent changes to the ARC information are expected. However, the overhead when using H.263 style signaling can be quite high, and the scaling factors may not apply to image boundaries since the image header may be temporary.

[95] Как показано на фиг.5В, JVCET-M135-v1 включает эталонную информацию ARC (505) (индекс), расположенную в наборе (504) параметров изображения, индексирует таблицу (506), включая целевые разрешения, которая, в свою очередь, находится внутри набора (507) параметров последовательности. Размещение возможного разрешения в таблице (506) в наборе (507) параметров последовательности может, в соответствии со словесными заявлениями, сделанными авторами, быть оправдано использованием SPS в качестве точки согласования совместимости во время обмена возможностями. Разрешение может изменяться в пределах, установленных значениями в таблице (506) от изображения к изображению, путем обращения к соответствующему набору (504) параметров изображения.[95] As shown in FIG. 5B, JVCET-M135-v1 includes ARC reference information (505) (index) located in the image parameter set (504), index table (506) including target resolutions, which in turn , is inside the sequence parameter set (507). Placing a possible resolution in a table (506) in a sequence parameter set (507) may, in accordance with verbal statements made by the authors, be justified by using the SPS as a point of interoperability negotiation during capability exchange. The resolution can be varied within the limits set by the values in the table (506) from image to image by accessing the appropriate set (504) of image parameters.

[96] Ссылаясь на фиг. 5C-5E, следующие варианты осуществления могут существовать для передачи информации ARC в битовом потоке видео. Каждая из этих опций имеет определенные преимущества по сравнению с вариантами осуществления, описанными выше. Варианты осуществления могут одновременно присутствовать в одной и той же технологии или стандарте видеокодирования.[96] Referring to FIG. 5C-5E, the following embodiments may exist for transmitting ARC information in a video bitstream. Each of these options has certain advantages over the embodiments described above. Embodiments may simultaneously be present in the same video coding technology or standard.

[97] В вариантах осуществления, например, в варианте осуществления с фиг. 5C, информация (509) ARC , такая как коэффициент передискретизации (масштабирования), может присутствовать в заголовке слайса, заголовке GOP, заголовке тайла или заголовке группы тайлов. Фиг. 5C иллюстрирует вариант осуществления, в котором используется заголовок (508) группы тайлов. Этого может быть достаточно в случае информации ARC небольшого размера, такой как одиночное кодовое слово переменной длины ue(v) или кодовое слово фиксированной длины из нескольких битов, например, как показано выше. Наличие информации ARC непосредственно в заголовке группы тайлов имеет дополнительное преимущество, поскольку информация ARC может быть применима к субизображению, представленному, например, этой группой тайлов, а не ко всему изображению. См. также ниже. Кроме того, даже если технология или стандарт сжатия видео предусматривает только изменение адаптивного разрешения всего изображения (в отличие, например, от изменений адаптивного разрешения на основе группы тайлов), размещение информации ARC в заголовке группы тайлов вместо помещения ее в заголовок изображения в стиле H.263 имеет определенные преимущества с точки зрения устойчивости к ошибкам.[97] In embodiments such as the embodiment of FIG. 5C, ARC information (509) such as a resampling (scaling) factor may be present in a slice header, a GOP header, a tile header, or a tile group header. Fig. 5C illustrates an embodiment that uses a tile group header (508). This may be sufficient in the case of small-sized ARC information, such as a single variable-length codeword ue(v) or a fixed-length codeword of several bits, such as shown above. Having ARC information directly in the tile group header has the added benefit that the ARC information can be applied to a sub-image represented by, for example, that tile group rather than the entire image. See also below. Additionally, even if a video compression technology or standard only provides for changing the adaptive resolution of the entire image (as opposed to, for example, adaptive resolution changes on a per-tile group basis), placing the ARC information in the tile group header instead of placing it in the H. 263 has certain advantages in terms of error tolerance.

[98] В вариантах осуществления, например, в варианте осуществления с фиг. 5D, информация (512) ARC сама по себе может присутствовать в соответствующем наборе параметров, таком как, например, набор параметров изображения, набор параметров заголовка, набор параметров мозаичного элемента, набор параметров адаптации и так далее. Фиг. 5D иллюстрирует вариант осуществления, в котором используется набор (511) параметров адаптации. Объем этого набора параметров предпочтительно может быть не больше, чем изображение, например группа тайлов. Использование информации ARC неявно осуществляется путем активации соответствующего набора параметров. Например, когда технология или стандарт кодирования видео рассматривают только ARC на основе изображения, тогда подходящим вариантом может быть набор параметров изображения или эквивалент.[98] In embodiments such as the embodiment of FIG. 5D, the ARC information (512) itself may be present in a corresponding parameter set, such as, for example, an image parameter set, a title parameter set, a tile parameter set, an adaptation parameter set, and so on. Fig. 5D illustrates an embodiment in which an adaptation parameter set (511) is used. The scope of this parameter set may preferably be no larger than an image, such as a group of tiles. The use of ARC information is implemented implicitly by activating the appropriate set of parameters. For example, when a video encoding technology or standard considers only image-based ARC, then an image parameter set or equivalent may be an appropriate option.

[99] В вариантах осуществления, например, в варианте осуществления с фиг. 5E, опорная информация (513) ARC может присутствовать в заголовке (514) группы тайлов или аналогичной структуре данных. Данная эталонная информация (513) может относиться к субнабору информации (515) ARC, доступному в наборе (516) параметров с объемом, выходящим за рамки одного изображения, например, наборе параметров последовательности или наборе параметров декодера.[99] In embodiments such as the embodiment of FIG. 5E, ARC reference information (513) may be present in a tile group header (514) or similar data structure. This reference information (513) may refer to a subset of ARC information (515) available in a parameter set (516) with a scope beyond a single image, such as a sequence parameter set or a decoder parameter set.

[100] Как показано на фиг.6А, заголовок группы тайлов (601) в качестве примерной синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать, кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (602) (выделен жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть ограничено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Тот факт, используется ли адаптивное разрешение для этого изображения или его частей, можно быть сигнализировано в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как показано ниже.[100] As shown in FIG. 6A, the tile group header (601), as an exemplary syntactic structure of the header applied to the (possibly rectangular) portion of the image, may conventionally include an exponential Golomb code encoded variable length syntax element dec_pic_size_idx (602 ) (in bold). The presence of this syntax element in a tile group header can be limited by the use of adaptive resolution (603) - here the flag value is not in bold, meaning that the flag is present in the bitstream at the point where it occurs in the syntax diagram. The fact whether adaptive resolution is used for this image or parts thereof can be signaled in any high-level syntactic structure inside or outside the bitstream. In the example shown, this is signaled in the sequence parameter set as shown below.

[101] На фиг.6В показана также выборка набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). При значении истина (true), этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.[101] FIG. 6B also shows a sample of a sequence parameter set (610). The first syntax element shown is adaptive_pic_resolution_change_flag (611). When true, this flag may indicate the use of adaptive resolution, which in turn may require certain control information. In the example, such control information is present conditionally based on the value of a flag based on the if() statement in the parameter set (612) and the tile group header (601).

[102] Когда используется адаптивное разрешение, в этом примере кодировано выходное разрешение в единицах отсчетов (613). Номер позиции 613 относится как к output_pic_width_in_luma_samples, так и к output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте технологии или стандарта кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Также, определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень 2) или соотношение ширины и высоты (например, ширина и высота должны быть в таком соотношении, как 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам, и они хорошо известны в данной области техники.[102] When adaptive resolution is used, this example encodes the output resolution in sample units (613). Item number 613 refers to both output_pic_width_in_luma_samples and output_pic_height_in_luma_samples, which together can determine the resolution of the output image. Elsewhere in the video encoding technology or standard, certain limits may be specified for any value. For example, the level definition may limit the number of total output samples that can be the product of the values of these two syntax elements. Also, certain video encoding technologies or standards, or external technologies or standards, such as system standards, may limit the numbering range (for example, one or both dimensions must be divisible by a power of 2) or the width-to-height ratio (for example, width and height should be in a ratio such as 4:3 or 16:9). Such restrictions may be introduced to facilitate hardware implementations or for other reasons, and are well known in the art.

[103] В некоторых приложениях может быть целесообразно, чтобы кодер инструктировал декодер использовать определенный размер опорного изображения вместо того, чтобы неявно предполагать, что этот размер является размером выходного изображения. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) передает условное присутствие размеров (615) опорного изображения (опять же, номер позиции относится как к ширине, так и к высоте).[103] In some applications, it may be desirable for the encoder to instruct the decoder to use a certain reference image size, rather than implicitly assuming that this size is the output image size. In this example, the syntax element reference_pic_size_present_flag (614) conveys the conditional presence of the dimensions (615) of the reference picture (again, the position number refers to both width and height).

[104] Наконец, показана таблица возможной ширины и высоты изображения декодирования. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). «Minus1» может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой «строки» в таблице в синтаксис (617) включаются ширина и высота декодированного изображения.[104] Finally, a table of possible decoding image widths and heights is shown. Such a table can be expressed, for example, by specifying the table (num_dec_pic_size_in_luma_samples_minus1) (616). "Minus1" may refer to the interpretation of the meaning of this syntax element. For example, if the encoded value is zero, there is one entry in the table. If the value is five, there are six table entries. Then, for each "row" in the table, the width and height of the decoded image are included in the syntax (617).

[105] Представленные записи (617) таблицы могут быть проиндексированы с использованием элемента синтаксиса dec_pic_size_idx (602) в заголовке группы тайлов, тем самым разрешая различные декодированные размеры - в сущности, коэффициенты масштабирования - для каждой группы тайлов.[105] The represented table entries (617) may be indexed using the dec_pic_size_idx syntax element (602) in the tile group header, thereby allowing different decoded sizes—essentially, scaling factors—for each tile group.

[106] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (сигнализируемую совершенно иначе, чем в раскрытом объекте изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость. В частности, некоторые опорные изображения могут подвергаться повышающей дискретизации с использованием технологий в стиле ARC до более высокого разрешения для формирования базы слоя пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя нормальные механизмы предсказания с высоким разрешением, чтобы добавить деталей.[106] Some video encoding technologies or standards, such as VP9, support spatial scalability by implementing certain forms of reference image resampling (signaled entirely differently than in the disclosed subject matter) in combination with temporal scalability to provide spatial scalability. In particular, some reference images may be upsampled using ARC-style techniques to a higher resolution to form the base of the spatial enhancement layer. These upsampled images can be enhanced by using normal high-resolution prediction engines to add detail.

[107] Обсуждаемые здесь варианты осуществления могут использоваться в такой среде. В некоторых случаях, в том же или другом варианте осуществления, значение в заголовке единицы NAL, например поле временного идентификатора, может использоваться для указания не только временного, но и пространственного слоя. Это может иметь определенные преимущества для определенных конфигураций систем; например, существующая архитектура Selected Forwarding Units (SFU), созданная и оптимизированная для выбранных временных слоев, пересылаемых на основе значения временного идентификатора заголовка единицы NAL, может использоваться без модификации для масштабируемых сред. Для того чтобы сделать это возможным, может существовать требование для сопоставления между размером кодированного изображения и временным слоем, указываемым полем временного идентификатора в заголовке единицы NAL.[107] The embodiments discussed herein may be used in such an environment. In some cases, in the same or another embodiment, a value in the NAL unit header, such as a temporal identifier field, may be used to indicate not only a temporal layer, but also a spatial layer. This may have certain benefits for certain system configurations; for example, an existing Selected Forwarding Units (SFU) architecture designed and optimized for selected temporal layers forwarded based on the NAL unit header temporary identifier value can be used without modification for scale-out environments. To make this possible, there may be a requirement for a mapping between the encoded image size and the temporal layer indicated by the temporary identifier field in the NAL unit header.

[108] В некоторых технологиях кодирования видео единица доступа (AU) может относиться к кодированному изображению(ям), слайсу(ам), тайлу(ам), блоку(ам) NAL и так далее, которые были захвачены и скомпонованы в соответствующие изображение, слайс, тайл и/или битовый поток единицы NAL в данный момент времени. Таким моментом во времени может быть, например, время компоновки.[108] In some video encoding technologies, an access unit (AU) may refer to the encoded image(s), slice(s), tile(s), NAL block(s), and so on, that have been captured and arranged into a corresponding image, slice, tile and/or bitstream of a NAL unit at a given time. Such a point in time could be, for example, the time of composition.

[109] В HEVC и некоторых других технологиях кодирования видео значение счетчика порядка изображений (POC) может использоваться для указания выбранного опорного изображения среди множества опорных изображений, хранящихся в буфере декодированных изображений (DPB). Когда единица доступа (AU) содержит одно или более изображений, слайсов или тайлов, каждое изображение, слайс или тайл, принадлежащие одной и той же AU, могут нести одно и то же значение POC, из которого можно сделать вывод, что они были созданы из содержимого то же времени компоновки. Другими словами, в сценарии, где два изображения/слайса/тайла несут одно и то же заданное значение POC, это может указывать на то, что два изображения/слайса/тайла принадлежат одной и той же AU и имеют одинаковое время компоновки. И наоборот, два изображения/среза/мозаичных элемента, имеющие разные значения POC, могут указывать, что эти изображения/срезы/мозаичных элемента принадлежат разным AU и имеют разное время композиции.[109] In HEVC and some other video encoding technologies, a picture order counter (POC) value can be used to indicate a selected reference picture among a plurality of reference pictures stored in a decoded picture buffer (DPB). When an access unit (AU) contains one or more images, slices or tiles, each image, slice or tile belonging to the same AU may carry the same POC value, from which it can be inferred that it was created from content at the same layout time. In other words, in a scenario where two images/slices/tiles carry the same set POC value, it may indicate that the two images/slices/tiles belong to the same AU and have the same layout time. Conversely, two images/slices/tiles having different POC values may indicate that these images/slices/tiles belong to different AUs and have different composition times.

[110] В вариантах осуществления эта жесткая взаимосвязь может быть ослаблена, поскольку блок доступа может содержать изображения, срезы или мозаичные элементы с разными значениями POC. Допуская различные значения POC в AU, становится возможным использовать значение POC для идентификации потенциально независимо декодируемых изображений/слайсов/тайлов с идентичным временем представления. Это, в свою очередь, может обеспечить поддержку множества масштабируемых слоев без изменения сигнализации выбора опорного изображения (например, сигнализации набора опорных изображений или сигнализации списка опорных изображений), как более подробно описано ниже.[110] In embodiments, this tight relationship may be relaxed because the access block may contain images, slices, or tiles with different POC values. By allowing different POC values in the AU, it becomes possible to use the POC value to identify potentially independently decodable pictures/slices/tiles with identical presentation times. This, in turn, can support multiple scalable layers without changing reference picture selection signaling (eg, reference picture set signaling or reference picture list signaling), as described in more detail below.

[111] Однако все еще желательно иметь возможность идентифицировать AU, которой принадлежит изображение/слайс/тайл, по отношению к другому изображению/слайсу/тайлу, имеющему другие значения POC, только на основе значения POC. Этого можно добиться, как описано ниже.[111] However, it is still desirable to be able to identify the AU that owns an image/slice/tile with respect to another image/slice/tile having different POC values based only on the POC value. This can be achieved as described below.

[112] В вариантах осуществления счетчик единиц доступа (AUC) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Значение AUC может использоваться, чтобы идентифицировать, какие единицы NAL, изображения, слайсы или тайлы принадлежат данной AU. Значение AUC может соответствовать отдельному моменту времени компоновки. Значение AUC может быть кратным значению POC. Путем деления значения POC на целочисленное значение можно вычислить значение AUC. В некоторых случаях операции деления могут накладывать определенную нагрузку на реализации декодеров. В таких случаях небольшие ограничения в пространстве нумерации значений AUC могут позволить заменить операцию деления операциями сдвига. Например, значение AUC может быть равно значению старшего значащего бита (MSB) диапазона значений POC.[112] In embodiments, an access unit counter (AUC) may be signaled in a high-level syntactic structure such as a NAL unit header, a slice header, a tile group header, an SEI message, a parameter set, or an AU delimiter. The AUC value can be used to identify which NAL units, images, slices or tiles belong to a given AU. The AUC value may correspond to a single point in time of the composition. The AUC value can be a multiple of the POC value. By dividing the POC value by an integer value, the AUC value can be calculated. In some cases, division operations may impose some overhead on decoder implementations. In such cases, slight restrictions in the numbering space of AUC values may allow the division operation to be replaced by shift operations. For example, the AUC value may be equal to the value of the most significant bit (MSB) of the POC value range.

[113] В вариантах осуществления значение цикла POC для каждой AU (poc_cycle_au) может сигнализироваться в синтаксической структуре высокого уровня, такой как заголовок единицы NAL, заголовок слайса, заголовок группы тайлов, сообщение SEI, набор параметров или ограничитель AU. Величина poc_cycle_au может указывать, сколько различных и последовательных значений POC может быть связано с одной и той же AU. Например, если значение poc_cycle_au равно 4, изображения, слайсы или тайлы со значением POC, равным 0-3 включительно, могут быть связаны с AU со значением AUC, равным 0, а изображения, слайсы или тайлы со значением POC, равным 4-7 включительно, могут быть связаны с AU со значением AUC, равным 1. Следовательно, значение AUC может быть выведено путем деления значения POC на значение poc_cycle_au.[113] In embodiments, the POC cycle value for each AU (poc_cycle_au) may be signaled in a high-level syntactic structure such as a NAL unit header, slice header, tile group header, SEI message, parameter set, or AU delimiter. The poc_cycle_au value can indicate how many different and consecutive POC values can be associated with the same AU. For example, if the value of poc_cycle_au is 4, images, slices or tiles with a POC value of 0-3 inclusive can be associated with an AU with an AUC value of 0, and images, slices or tiles with a POC value of 4-7 inclusive , can be associated with an AU with an AUC value of 1. Therefore, the AUC value can be derived by dividing the POC value by the poc_cycle_au value.

[114] В вариантах осуществления значение poc_cyle_au может быть получено из информации, расположенной, например, в наборе параметров видео (VPS), которая идентифицирует количество пространственных слоев или слоев SNR в кодированной видеопоследовательности. Пример такой возможной взаимосвязи кратко описывается ниже. Хотя получение, как описано выше, может сэкономить несколько битов в VPS и, следовательно, может повысить эффективность кодирования, в некоторых вариантах осуществления poc_cycle_au может быть явно кодирован в соответствующей синтаксической структуре высокого уровня иерархически ниже набора параметров видео, чтобы иметь возможность минимизировать poc_cycle_au для данной небольшой части битового потока, такого как изображение. Эта оптимизация может сэкономить больше битов, чем может быть сохранено посредством процесса получения, описанного выше, потому что значения POC и/или значения элементов синтаксиса, косвенно относящиеся к POC могут быть кодированы в синтаксических структурах низкого уровня.[114] In embodiments, the poc_cyle_au value may be obtained from information located, for example, in a video parameter set (VPS) that identifies the number of spatial layers or SNR layers in the encoded video sequence. An example of such a possible relationship is briefly described below. Although obtaining as described above may save a few bits in the VPS and therefore may improve encoding efficiency, in some embodiments poc_cycle_au may be explicitly encoded in an appropriate high-level syntactic structure hierarchically below the video parameter set to be able to minimize poc_cycle_au for a given a small portion of a bit stream, such as an image. This optimization can save more bits than can be stored through the acquisition process described above because POC values and/or syntax element values indirectly related to POC can be encoded in low-level syntactic structures.

[115] В вариантах осуществления на фиг.8 показан пример таблиц синтаксиса для сигнализации элемента синтаксиса vps_poc_cycle_au в VPS (или SPS), который указывает poc_cycle_au, используемый для всех изображений/слайсов в кодированной видеопоследовательности, и элемента синтаксиса slice_poc_cycle_au, который указывает poc_cycle _au текущего слайса в заголовке слайса. Если значение POC увеличивается равномерно для каждого AU, vps_contant_poc_cycle_per_au в VPS может быть установлено равным 1, и vps_poc_cycle_au может сигнализироваться в VPS. В этом случае slice_poc_cycle_au может сигнализируется неявно, и значение AUC для каждой AU может вычисляться путем деления значения POC на vps_poc_cycle_au. Если значение POC не увеличивается равномерно на AU, vps_contant_poc_cycle_per_au в VPS может устанавливаться равным 0. В этом случае vps _access_unit_cnt может не сигнализироваться, в то время как slice_access_unit_cnt может сигнализироваться в заголовке слайса для каждого слайса или изображения. Каждый слайс или изображение может иметь различное значение slice_access_unit_cnt. Значение AUC для каждой AU может вычисляться путем деления значения POC на slice_poc_cycle_au.[115] In embodiments, FIG. 8 shows example syntax tables for signaling a vps_poc_cycle_au syntax element in a VPS (or SPS) that indicates the poc_cycle_au used for all pictures/slices in a coded video sequence, and a slice_poc_cycle_au syntax element that indicates the poc_cycle_au of the current slice in the slice header. If the POC value increases uniformly for each AU, vps_contant_poc_cycle_per_au in the VPS can be set to 1, and vps_poc_cycle_au can be signaled in the VPS. In this case, slice_poc_cycle_au may be signaled implicitly, and the AUC value for each AU may be calculated by dividing the POC value by vps_poc_cycle_au. If the POC value does not increase uniformly per AU, vps_contant_poc_cycle_per_au in the VPS may be set to 0. In this case, vps _access_unit_cnt may not be signaled, while slice_access_unit_cnt may be signaled in the slice header for each slice or image. Each slice or image can have a different slice_access_unit_cnt value. The AUC value for each AU can be calculated by dividing the POC value by slice_poc_cycle_au.

[116] На фиг. 9 показана блок-схема, иллюстрирующая пример вышеописанного процесса. Например, в операции S910 может быть проанализирован VPS (или SPS), а в операции S920 может быть определено, является ли цикл POC на AU постоянным в пределах кодированной видеопоследовательности. Если цикл POC на AU является постоянным (ДА в операции S920), то значение счетчика единиц доступа для конкретной единицы доступа может быть вычислено из poc_cycle_au, который сигнализируется для кодированной видеопоследовательности, и значения POC конкретной единицы доступа в операции S930. Если цикл POC на AU не является постоянным (НЕТ в операции S920), то значение счетчика единиц доступа для конкретной единицы доступа может быть вычислено из poc_cycle_au, который сигнализируется на уровне изображения, и значения POC конкретной единицы доступа в операции S940. В операции S950 новый VPS (или SPS) может быть проанализирован.[116] In FIG. 9 is a flowchart illustrating an example of the above-described process. For example, in step S910 the VPS (or SPS) can be analyzed, and in step S920 it can be determined whether the POC cycle on the AU is constant within the encoded video sequence. If the POC cycle on the AU is constant (YES in step S920), then the value of the access unit counter for a specific access unit can be calculated from the poc_cycle_au that is signaled for the encoded video sequence and the POC value of the specific access unit in step S930. If the POC cycle on the AU is not constant (NO in operation S920), then the value of the access unit counter for a specific access unit can be calculated from poc_cycle_au, which is signaled at the picture level, and the POC value of the specific access unit in operation S940. In operation S950, the new VPS (or SPS) can be analyzed.

[117] В вариантах осуществления, даже если значение POC изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени декодирования или вывода. Следовательно, без какой-либо зависимости от интерпарсинга/декодирования между изображениями, слайсами или тайлами в одной и той же AU, все или субнабор изображений, слайсов или тайлов, связанных с одной и той же AU, могут быть декодированы параллельно и могут быть выведены в один и тот же момент времени.[117] In embodiments, even though the POC value of an image, slice, or tile may be different, the image, slice, or tile corresponding to AUs with the same AUC value may be associated with the same decoding or output timing. Therefore, without any dependency on interparsing/decoding between images, slices or tiles in the same AU, all or a subset of images, slices or tiles associated with the same AU can be decoded in parallel and can be output to the same point in time.

[118] В вариантах осуществления, даже если значение POC изображения, слайса или тайла может быть другим, изображение, слайс или тайл, соответствующие AU с одинаковым значением AUC, могут быть связаны с одним и тем же моментом времени компоновки/отображения. Когда время компоновки содержится в формате контейнера, даже если изображения соответствуют разным AU, если изображения имеют одинаковое время компоновки, изображения могут отображаться в один и тот же момент времени.[118] In embodiments, even though the POC value of an image, slice, or tile may be different, an image, slice, or tile corresponding to an AU with the same AUC value may be associated with the same layout/display time. When the layout time is contained in the container format, even if the images correspond to different AUs, as long as the images have the same layout time, the images can be displayed at the same point in time.

[119] В вариантах осуществления каждое изображение, слайс или тайл может иметь один и тот же временной идентификатор (temporal_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с одним и тем же временным субслоем. В вариантах осуществления каждое изображение, слайс или тайл может иметь одинаковый или другой идентификатор пространственного слоя (layer_id) в одной и той же AU. Все или субнабор изображений, слайсов или тайлов, соответствующих моменту времени, могут быть связаны с тем же или другим пространственным слоем.[119] In embodiments, each image, slice, or tile may have the same temporal identifier (temporal_id) in the same AU. All or a subset of images, slices or tiles corresponding to a point in time can be associated with the same time sublayer. In embodiments, each image, slice, or tile may have the same or a different spatial layer identifier (layer_id) in the same AU. All or a subset of images, slices, or tiles corresponding to a point in time can be associated with the same or a different spatial layer.

[120] На фиг.7 показан пример структуры видеопоследовательности с комбинацией значений temporal_id, layer_id, POC и AUC с адаптивным изменением разрешения. В этом примере изображение, слайс или тайл в первой AU с AUC = 0 может иметь temporal_id = 0 и layer_id = 0 или 1, в то время как изображение, слайс или тайл во второй AU с AUC = 1 может иметь temporal_id = 1 и layer_id = 0 или 1 соответственно. Значение POC увеличивается на 1 для каждого изображения независимо от значений temporal_id и layer_id. В этом примере значение poc_cycle_au может быть равно 2. В вариантах осуществления значение poc_cycle_au может быть установлено равным количеству слоев (пространственной масштабируемости). Следовательно, в этом примере значение POC увеличивается на 2, а значение AUC увеличивается на 1.[120] FIG. 7 shows an example of a video sequence structure with a combination of temporal_id, layer_id, POC and AUC values with adaptive resolution changing. In this example, an image, slice, or tile in the first AU with AUC = 0 may have temporal_id = 0 and layer_id = 0 or 1, while an image, slice, or tile in the second AU with AUC = 1 may have temporal_id = 1 and layer_id = 0 or 1 respectively. The POC value is incremented by 1 for each image, regardless of the temporal_id and layer_id values. In this example, the value of poc_cycle_au may be equal to 2. In embodiments, the value of poc_cycle_au may be set to the number of layers (spatial scalability). Therefore, in this example, the POC value is increased by 2 and the AUC value is increased by 1.

[121] В вышеупомянутых вариантах осуществления все или субнабор структуры межкадрового или межслойного предсказания и индикация опорного изображения могут поддерживаться с использованием сигнализации существующего набора опорных изображений (RPS) в HEVC или сигнализации списка опорных изображений (RPL). В RPS или RPL выбранное опорное изображение может указываться посредством сигнализации значения POC или значения дельты POC между текущим изображением и выбранным опорным изображением. В вариантах осуществления RPS и RPL могут использоваться для указания структуры предсказания интер-изображения или интер-слоя без изменения сигнализации, но со следующими ограничениями. Если значение temporal_id опорного изображения больше, чем значение temporal_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний. Если значение layer_id опорного изображения больше, чем значение layer_id текущего изображения, текущее изображение может не использовать опорное изображение для компенсации движения или других предсказаний.[121] In the above embodiments, all or a subset of the inter-frame or inter-layer prediction structure and reference picture indication may be supported using existing reference picture set (RPS) signaling in HEVC or reference picture list (RPL) signaling. In RPS or RPL, the selected reference picture may be indicated by signaling a POC value or a POC delta value between the current picture and the selected reference picture. In embodiments, RPS and RPL can be used to indicate an inter-picture or inter-layer prediction structure without changing the signaling, but with the following limitations. If the temporal_id value of the reference picture is greater than the temporal_id value of the current picture, the current picture may not use the reference picture for motion compensation or other predictions. If the layer_id value of the reference image is greater than the layer_id value of the current image, the current image may not use the reference image for motion compensation or other predictions.

[122] В вариантах осуществления масштабирование вектора движения на основе разности POC для временного предсказания вектора движения может быть отключено для множества изображений в единице доступа. Следовательно, хотя каждое изображение может иметь различное значение POC в единице доступа, вектор движения не масштабируется и используется для временного предсказания вектора движения в единице доступа. Это связано с тем, что опорное изображение с другим POC в одной и той же AU считается опорным изображением, имеющим тот же момент времени. Следовательно, в варианте осуществления функция масштабирования вектора движения может возвращать 1, когда опорное изображение принадлежит AU, связанной с текущим изображением.[122] In embodiments, POC difference-based motion vector scaling for temporal motion vector prediction may be disabled for multiple images in an access unit. Therefore, although each image may have a different POC value in an access unit, the motion vector is not scaled and is used to temporally predict the motion vector in an access unit. This is because a reference picture with a different POC in the same AU is considered a reference picture having the same point in time. Therefore, in an embodiment, the motion vector scaling function may return 1 when the reference image belongs to an AU associated with the current image.

[123] В вариантах осуществления масштабирование вектора движения на основе разности POC для временного предсказания вектора движения может быть опционально отключено для множества изображений, когда пространственное разрешение опорного изображения отличается от пространственного разрешения текущего изображения. Когда масштабирование вектора движения разрешено, вектор движения масштабируется на основе как разности POC, так и отношения пространственного разрешения между текущим изображением и опорным изображением.[123] In embodiments, POC difference-based motion vector scaling for temporal motion vector prediction may be optionally disabled for multiple images when the spatial resolution of the reference image differs from the spatial resolution of the current image. When motion vector scaling is enabled, the motion vector is scaled based on both the POC difference and the spatial resolution ratio between the current image and the reference image.

[124] В вариантах осуществления вектор движения может масштабироваться на основе разности AUC вместо разности POC для временного предсказания вектора движения, особенно когда poc_cycle_au имеет неоднородное значение (когда vps_contant_poc_cycle_per_au == 0). В противном случае (например, когда vps_contant_poc_cycle_per_au == 1) масштабирование вектора движения на основе разности AUC может быть идентично масштабированию вектора движения на основе разности POC.[124] In embodiments, the motion vector may be scaled based on the AUC difference instead of the POC difference to temporally predict the motion vector, especially when poc_cycle_au has a non-uniform value (when vps_contant_poc_cycle_per_au == 0). Otherwise (eg, when vps_contant_poc_cycle_per_au == 1), scaling the motion vector based on the AUC difference may be identical to scaling the motion vector based on the POC difference.

[125] В вариантах осуществления, когда вектор движения масштабируется на основе разности AUC, опорный вектор движения в том же AU (с тем же значением AUC) с текущим изображением не масштабируется на основе разности AUC и используется для предсказания вектора движения без масштабирования или с масштабированием на основе отношения пространственного разрешения между текущим изображением и опорным изображением.[125] In embodiments, when the motion vector is scaled based on the AUC difference, the reference motion vector in the same AU (with the same AUC value) with the current image is not scaled based on the AUC difference and is used to predict the motion vector without scaling or with scaling based on the spatial resolution relationship between the current image and the reference image.

[126] В вариантах осуществления значение AUC может использоваться для идентификации границы AU и используется для операции гипотетического эталонного декодера (HRD), для которой требуется синхронизация ввода и вывода с детализацией AU. В вариантах осуществления декодированное изображение с самым высоким слоем в AU может выводиться для отображения. Значение AUC и значение layer_id могут использоваться для идентификации выходного изображения.[126] In embodiments, the AUC value can be used to identify the boundary of the AU and is used for a hypothetical reference decoder (HRD) operation that requires input and output synchronization to the AU granularity. In embodiments, the decoded image with the highest layer in the AU may be output for display. The AUC value and layer_id value can be used to identify the output image.

[127] В вариантах осуществления изображение может включать в себя одно или несколько субизображения. Каждое субизображения может охватывать локальную область или всю область изображения. Область, поддерживаемая субизображением, может перекрываться или не перекрываться с областью, поддерживаемой другим субизображением. Область, покрытая одним или более субизображениями, может покрывать или не покрывать всю область изображения. Если изображение включает субизображения, область, поддерживаемая субизображением, может быть идентична области, поддерживаемой изображением.[127] In embodiments, an image may include one or more sub-images. Each sub-image can cover a local area or the entire image area. The area supported by a sub-image may or may not overlap with the area supported by another sub-image. The area covered by one or more sub-images may or may not cover the entire image area. If the image includes sub-images, the area supported by the sub-image may be identical to the area supported by the image.

[128] В вариантах осуществления субизображение может быть закодировано способом кодирования, аналогичным способу кодирования, используемому для кодированного изображения. Субизображение может быть независимо закодировано или может быть закодировано в зависимости от другого субизображения или кодированного изображения. Субизображение может иметь или не иметь какую-либо зависимость парсинга от другого субизображения или кодированного изображения.[128] In embodiments, the sub-image may be encoded with an encoding method similar to the encoding method used for the encoded image. The sub-image may be independently encoded or may be encoded depending on another sub-image or encoded image. A sub-image may or may not have any parsing dependency on another sub-image or encoded image.

[129] В варианте осуществления кодированное субизображение может содержаться в одном или более слоев. Кодированное субизображение в слое может иметь другое пространственное разрешение. Исходное субизображение может подвергаться пространственной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами пространственного разрешения и содержаться в битовом потоке, соответствующем слою.[129] In an embodiment, the encoded sub-image may be contained in one or more layers. The encoded sub-image in a layer may have a different spatial resolution. The original sub-image may be spatially resampled (eg, upsampled or downsampled), encoded at different spatial resolution parameters, and contained in a bitstream corresponding to the layer.

[130] В вариантах осуществления субизображение с (W, H), где W обозначает ширину субизображения, а H обозначает высоту субизображения, соответственно, может кодироваться и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как субизображение с повышающей (или понижающей) дискретизацией из субизображения с исходным пространственным разрешением, с (W*S w , k , H* S h , k ), может быть кодировано и содержаться в кодированном битовом потоке, соответствующем слою k, где S w , k , S h , k указывают коэффициенты передискретизации по горизонтали и вертикали. Если значения S w , k , S h , k больше 1, передискретизация может быть повышающей дискретизацией. В то время как, если значения S w , k , S h , k меньше 1, передискретизация может быть понижающей дискретизацией.[130] In embodiments, a sub-image with ( W , H ), where W denotes the width of the sub-image and H denotes the height of the sub-image, respectively, may be encoded and contained in the encoded bitstream corresponding to layer 0, while the sub-image is up (or downsampling from a sub-image with the original spatial resolution, with ( W*S w , k , H* S h , k ), can be encoded and contained in the encoded bitstream corresponding to layer k, where S w , k , S h , k indicate the horizontal and vertical resampling factors. If the values of S w , k , S h , k are greater than 1, the resampling may be upsampling. Whereas, if the values of S w , k , S h , k are less than 1, the resampling may be downsampling.

[131] В вариантах осуществления кодированное субизображение в слое может иметь визуальное качество, отличное от качества кодированного субизображения в другом слое в том же субизображении или другом субизображении. Например, субизображение i в слое n может кодироваться параметром квантования Qi, n, тогда как субизображение j в слое m может кодироваться параметром квантования Qj, m.[131] In embodiments, an encoded sub-image in a layer may have a different visual quality than an encoded sub-image in another layer in the same sub-image or a different sub-image. For example, sub-image i in layer n may be encoded by a quantization parameter Qi , n , while sub-image j in layer m may be encoded by a quantization parameter Qj , m .

[132] В вариантах осуществления кодированное субизображение в слое может быть декодировано независимо, без какой-либо зависимости от парсинга или декодирования, из кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно независимо декодировать без ссылки на другой слой субизображения той же локальной области, может быть независимым слоем субизображения. Кодированное субизображение в независимом слое субизображения может иметь или не иметь зависимость декодирования или парсинга от ранее кодированного субизображения в том же слое субизображения, но кодированное субизображение может не иметь никакой зависимости от кодированного изображения в другом слое субизображения.[132] In embodiments, an encoded sub-image in a layer can be decoded independently, without any dependency on parsing or decoding, from an encoded sub-image in another layer of the same local area. A sub-image layer that can be independently decoded without reference to another sub-image layer of the same local region may be an independent sub-image layer. An encoded subimage in an independent subimage layer may or may not have a decoding or parsing dependency on a previously encoded subimage in the same subimage layer, but an encoded subimage may not have any dependency on an encoded image in another subimage layer.

[133] В вариантах осуществления кодированное субизображение в слое может быть декодировано зависимо, с определенной зависимостью парсинга или декодирования от кодированного субизображения в другом слое той же локальной области. Слой субизображения, который можно зависимо декодировать со ссылкой на другой слой субизображения той же локальной области, может быть зависимым слоем субизображения. Кодированное субизображение в зависимом субизображении может ссылаться на кодированное субизображение, принадлежащее тому же субизображению, ранее кодированное субизображение в том же слое субизображения или на оба опорных субизображения.[133] In embodiments, an encoded sub-image in a layer may be decoded dependently, with a particular parsing or decoding dependency on an encoded sub-image in another layer of the same local area. A sub-image layer that can be dependently decoded with reference to another sub-image layer of the same local region may be a dependent sub-image layer. An encoded subimage in a dependent subimage may reference an encoded subimage belonging to the same subimage, a previously encoded subimage in the same subimage layer, or both reference subimages.

[134] В вариантах осуществления, кодированное субизображение может содержать один или несколько независимых слоев субизображений и один или несколько зависимых слоев субизображений. Однако по меньшей мере одно независимое субизображение может присутствовать для кодированного субизображения. Значение идентификатора слоя (layer_id), которое может присутствовать в заголовке единицы NAL или другой синтаксической структуре высокого уровня, независимого слоя субизображения может быть равно 0. Слой субизображения с layer_id, равным 0, может быть базовым слоем субизображения.[134] In embodiments, an encoded sub-image may comprise one or more independent sub-image layers and one or more dependent sub-image layers. However, at least one independent sub-picture may be present for the encoded sub-picture. The layer identifier value (layer_id), which may be present in the NAL unit header or other high-level syntactic structure, of an independent sub-image layer may be 0. A sub-image layer with a layer_id equal to 0 may be the base layer of the sub-image.

[135] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана и одно субизображение заднего плана. Область, поддерживаемая субизображением заднего плана, может быть равна области изображения. Область, поддерживаемая субизображением переднего плана, может перекрываться с областью, поддерживаемой субизображением заднего плана. Субзображение заднего плана может быть базовым слоем субизображения, тогда как субизображение переднего плана может быть не-базовым (улучшающим) слоем субизображения. Один или несколько неосновных слоев субизображения могут ссылаться на один и тот же базовый слой для декодирования. Каждый не-базовый слой субизображения с layer_id, равным a, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где a больше b.[135] In embodiments, an image may include one or more foreground sub-images and one background sub-image. The area supported by the background subimage may be equal to the image area. The region supported by the foreground sub-image may overlap with the region supported by the background sub-image. The background subimage may be a base layer of the subimage, while the foreground subimage may be a non-baseline (enhancement) layer of the subimage. One or more non-base layers of a sub-image may reference the same base layer for decoding. Each non-base subimage layer with layer_id equal to a can reference a non-base subimage layer with layer_id equal to b , where a is greater than b .

[136] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Каждое субизображение может иметь свой собственный базовый слой субизображения и один или более не-базовых (улучшающих) слоев. На каждый базовый слой субизображения может ссылаться один или более не-базовых слоев субизображения. Каждый не-базовый слой субизображения с layer_id, равным a, может ссылаться на не-базовый слой субизображения с layer_id, равным b, где a больше b.[136] In embodiments, an image may include one or more foreground sub-images with or without one background sub-image. Each sub-image may have its own base sub-image layer and one or more non-base (enhancement) layers. Each sub-image base layer may be referenced by one or more non-base sub-image layers. Each non-base subimage layer with layer_id equal to a can reference a non-base subimage layer with layer_id equal to b , where a is greater than b .

[137] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. На каждое кодированное субизображение в (базовом или не-базовом) слое субизображения может ссылаться одно или более субизображений не-базового слоя, принадлежащих одному и тому же субизображению, и одно или более субизображений не-базового слоя, которые не принадлежат одному и тому же субизображению.[137] In embodiments, an image may include one or more foreground sub-images with or without one background sub-image. Each encoded sub-image in a (base or non-base) sub-image layer may be referenced by one or more non-base layer sub-images that belong to the same sub-image, and one or more non-base layer sub-images that do not belong to the same sub-image. .

[138] В вариантах осуществления, изображение может включать в себя одно или более субизображений переднего плана с одним субизображением заднего плана или без него. Субизображение в слое a может быть дополнительно разделено на множество субизображений в одном и том же слое. Одно или более кодированных субизображений в слое b могут ссылаться на разделенные субизображения в слое a.[138] In embodiments, an image may include one or more foreground sub-images with or without one background sub-image. The sub-image in layer a can be further divided into multiple sub-images in the same layer. One or more encoded sub-pictures in layer b may reference divided sub-pictures in layer a .

[139] В вариантах осуществления, кодированная видеопоследовательность (CVS) может быть группой кодированных изображений. CVS может включать одну или более последовательность кодированных субизображений (CSPS), где CSPS может быть группой кодированных субизображений, покрывающих одну и ту же локальную область изображения. CSPS может иметь то же или другое временное разрешение, что и кодированная видеопоследовательность.[139] In embodiments, a coded video sequence (CVS) may be a group of coded pictures. The CVS may include one or more coded sub-picture sequences (CSPS), where a CSPS may be a group of coded sub-pictures covering the same local image area. CSPS may have the same or a different temporal resolution as the encoded video sequence.

[140] В вариантах осуществления, CSPS может быть закодирована и содержаться на одном или нескольких слоях. CSPS может включать в себя один или несколько слоев CSPS. Декодирование одного или более слоев CSPS, соответствующих CSPS, может восстанавливать последовательность субизображений, соответствующих одной и той же локальной области.[140] In embodiments, the CSPS may be encoded and contained in one or more layers. The CSPS may include one or more CSPS layers. Decoding one or more CSPS layers corresponding to the CSPS can reconstruct a sequence of sub-images corresponding to the same local region.

[141] В вариантах осуществления количество слоев CSPS, соответствующих CSPS, может быть идентичным или отличаться от количества слоев CSPS, соответствующих другой CSPS.[141] In embodiments, the number of CSPS layers corresponding to a CSPS may be identical to or different from the number of CSPS layers corresponding to another CSPS.

[142] В вариантах осуществления слой CSPS может иметь временное разрешение (например, частоту кадров), отличное от другого слоя CSPS. Исходная (несжатая) последовательность субизображений может подвергаться временной передискретизации (например, повышающей или понижающей дискретизации), кодироваться с различными параметрами временного разрешения и содержаться в битовом потоке, соответствующем слою.[142] In embodiments, a CSPS layer may have a different temporal resolution (eg, frame rate) than another CSPS layer. The original (uncompressed) subimage sequence may be temporally resampled (eg, upsampled or downsampled), encoded at different temporal resolution parameters, and contained in a bitstream corresponding to the layer.

[143] В вариантах осуществления последовательность субизображений с частотой кадров F может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою 0, в то время как последовательность субизображений с временной повышающей (или понижающей) дискретизацией из исходной последовательности субизображений с F* St , k может быть кодирована и содержаться в кодированном битовом потоке, соответствующем слою k , где St , k указывает коэффициент временной дискретизации для слоя k. Если значение St , k больше 1, процесс временной передискретизации может быть преобразованием с повышением частоты кадров. Тогда как, если значение S t , k меньше 1, процесс временной передискретизации может быть преобразованием с понижением частоты кадров.[143] In embodiments, a sub-image sequence at frame rate F may be encoded and contained in the encoded bitstream corresponding to layer 0, while the sub-image sequence is temporally upsampled (or downsampled) from the original sub-image sequence at F* St , k may be encoded and contained in the encoded bitstream corresponding to layer k , where St , k indicates the time sampling rate for layer k. If the value of St , k is greater than 1, the temporal resampling process may be frame rate upconversion. Whereas, if the value of S t , k is less than 1, the temporal resampling process may be frame rate down-conversion.

[144] В вариантах осуществления, когда на субизображения со слоем a CSPS a ссылается субизображение со слоем b CSPS для компенсации движения или любого межслойного предсказания, если пространственное разрешение слоя a CSPS отличается исходя из пространственного разрешения слоя b CSPS, декодированные пиксели на слое a CSPS передискретизируются и используются в качестве опорных. Для процесса передискретизации может использоваться фильтрация с повышающей или понижающей дискретизацией.[144] In embodiments where sub-images with CSPS layer a are referenced by sub-images with CSPS layer b for motion compensation or any inter-layer prediction, if the spatial resolution of CSPS layer a is different based on the spatial resolution of CSPS layer b , the decoded pixels on CSPS layer a are resampled and used as reference. The resampling process can use upsampling or downsampling filtering.

[145] На фиг.10 показан примерный поток видео, включающий в себя CSPS видео заднего плана с layer_id, равным 0, и множество слоев CSPS переднего плана. Хотя кодированное субизображение может включать один или более слоев CSPS, область заднего плана, которая не принадлежит какому-либо слою CSPS переднего плана, может включать базовый слой. Базовый слой может содержать область заднего плана и области переднего плана, в то время как слой CSPS улучшения может содержать область переднего плана. Слой CSPS улучшения может иметь лучшее визуальное качество, чем базовый слой, в той же области. Слой CSPS улучшения может ссылаться на восстановленные пиксели и векторы движения базового слоя, соответствующие одной и той же области.[145] FIG. 10 shows an example video stream including a background CSPS video with a layer_id of 0 and a plurality of foreground CSPS layers. Although the encoded sub-image may include one or more CSPS layers, a background region that does not belong to any foreground CSPS layer may include a base layer. The base layer may contain a background region and a foreground region, while the CSPS enhancement layer may contain a foreground region. The CSPS enhancement layer may have better visual quality than the base layer in the same area. The CSPS enhancement layer may reference the reconstructed pixels and motion vectors of the base layer corresponding to the same region.

[146] В вариантах осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS, соответствующие каждому субизображению, содержатся в отдельной дорожке в видеофайле.[146] In embodiments, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layers corresponding to each sub-image are contained in a separate track in the video file.

[147] В вариантах осуществления битовый поток видео, соответствующий базовому слою, содержится в дорожке, в то время как слои CSPS с тем же layer_id содержатся в отдельной дорожке. В этом примере дорожка, соответствующая слою k , включает в себя только слои CSPS, соответствующие слою k.[147] In embodiments, the video bitstream corresponding to the base layer is contained in a track, while the CSPS layers with the same layer_id are contained in a separate track. In this example, the track corresponding to layer k includes only the CSPS layers corresponding to layer k .

[148] В вариантах осуществления каждый слой CSPS каждого субизображения хранится в отдельной дорожке. Каждая дорожка может иметь или не иметь зависимости синтаксического анализа или декодирования от одной или нескольких других дорожек.[148] In embodiments, each CSPS layer of each sub-image is stored in a separate track. Each track may or may not have parsing or decoding dependencies on one or more other tracks.

[149] В вариантах осуществления каждая дорожка может содержать битовые потоки, соответствующие от слоям от i до j слоев CSPS всех или субнабора субизображений, где 0<i=j=k, и k является слоем самого верхнего слоя CSPS.[149] In embodiments, each track may contain bitstreams corresponding to layers i to j of the CSPS layers of all or a subset of sub-images, where 0<i=j=k, and k is the layer of the topmost CSPS layer.

[150] В вариантах осуществления изображение содержит один или более тип связанных мультимедийных данных, включая карту глубины, альфа-карту, данные трехмерной геометрии, карту занятости и т. д. Такие связанные синхронизированные мультимедийные данные могут быть разделены на один или множество субпотоков данных, каждый из которых соответствует одному субизображению.[150] In embodiments, an image contains one or more types of associated media data, including a depth map, an alpha map, 3D geometry data, an occupancy map, etc. Such associated synchronized media data may be divided into one or multiple sub-data streams, each of which corresponds to one sub-image.

[151] На фиг. 11 показан пример видеоконференции, основанной на способе создания многослойных субизображений. В потоке видео содержатся один битовый поток видео базового слоя, соответствующий изображению заднего плана, и один или более битовых потоков видео слоя улучшения, соответствующих субизображениям переднего плана. Каждый битовый поток видео слоя улучшения может соответствовать слою CSPS. На дисплее по умолчанию отображается изображение, соответствующее базовому слою. Он содержит изображение одного или более пользователей в изображении (PIP). Когда конкретный пользователь выбирается управлением клиента, слой CSPS улучшения, соответствующий выбранному пользователю, может декодироваться и отображаться с улучшенным качеством или пространственным разрешением.[151] In FIG. 11 shows an example of a video conference based on a method for creating multi-layer sub-images. The video stream contains one base layer video bitstream corresponding to a background image and one or more enhancement layer video bitstreams corresponding to foreground sub-images. Each video bitstream of the enhancement layer may correspond to a CSPS layer. The default display shows the image corresponding to the base layer. It contains one or more users' picture in picture (PIP). When a particular user is selected by the client control, the CSPS enhancement layer corresponding to the selected user may be decoded and displayed with improved quality or spatial resolution.

[152] На фиг. 12 показана блок-схема, иллюстрирующая пример описанного выше процесса. Например, в операции S1210 может быть декодирован битовый поток видео с множеством слоев. В операции S1220 могут быть идентифицированы задний план и одно или несколько субизображений переднего плана. В операции S1230 может быть определено, выбрана ли конкретная область субизображения, например одно из субизображений переднего плана. Если выбрана конкретная область субизображения (ДА в операции S1240), улучшенное субизображение может быть декодировано и отображено. Если конкретная область субизображения не выбрана (НЕТ в операции S1240), область заднего плана может быть декодирована и отображена.[152] In FIG. 12 is a flowchart illustrating an example of the above process. For example, in operation S1210, a video bitstream with multiple layers may be decoded. In operation S1220, a background and one or more foreground sub-images may be identified. In step S1230, it can be determined whether a specific sub-image area, such as one of the foreground sub-images, is selected. If a specific sub-image area is selected (YES in S1240), the enhanced sub-image can be decoded and displayed. If a specific sub-image area is not selected (NO in S1240), the background area can be decoded and displayed.

[153] В вариантах осуществления промежуточный блок сети (например, маршрутизатор) может выбирать подмножество слоев для отправки пользователю в зависимости от своей полосы пропускания. Организация изображения/субизображения может использоваться для адаптации полосы пропускания. Например, если у пользователя нет полосы пропускания, маршрутизатор разделяет слои или выбирает некоторые субизображения из-за их важности или на основе используемых настроек, и это может делаться динамически для адаптации к полосе пропускания.[153] In embodiments, a network intermediate unit (eg, a router) may select a subset of layers to send to the user based on its bandwidth. The image/sub-image organization can be used to adapt the bandwidth. For example, if the user does not have the bandwidth, the router splits the layers or selects some sub-images based on their importance or based on the settings used, and this can be done dynamically to adapt to the bandwidth.

[154] НА фиг. 13 показан вариант осуществления, относящийся к варианту использования 360-градусного видео. Когда сферическое 360-градусное изображение, например изображение 1310, проецируется на плоское изображение, изображение проекции 360 может быть разделено на множество субизображений в качестве базового слоя. Например, несколько субизображений могут включать в себя обратное стандартное изображение, верхнее стандартное изображение, правое стандартное изображение, левое стандартное изображение, прямое стандартное изображение и нижнее стандартное изображение. Слой улучшения конкретного субизображения, например прямого субизображения, может быть кодирован и передан клиенту. Декодер может декодировать как базовый слой, включающий в себя все субизображения, так и слой улучшения выбранного субизображения. Когда текущее окно просмотра идентично выбранному субизображению, отображаемое изображение может иметь более высокое качество с декодированным субизображением со слоем улучшения. В противном случае декодированное изображение с базовым слоем может отображаться с более низким качеством.[154] IN FIG. 13 shows an embodiment related to a 360-degree video use case. When a 360-degree spherical image, such as image 1310, is projected onto a planar image, the 360 projection image can be divided into a plurality of sub-images as a base layer. For example, the multiple sub-pictures may include an inverse stock picture, an upper stock image, a right stock image, a left stock image, a forward stock image, and a lower stock image. An enhancement layer of a particular sub-image, eg a direct sub-image, may be encoded and transmitted to the client. The decoder can decode both a base layer including all sub-images and an enhancement layer of a selected sub-image. When the current viewport is identical to the selected sub-image, the displayed image may have a higher quality with the decoded sub-image with an enhancement layer. Otherwise, the decoded image with the base layer may be displayed with lower quality.

[155] В вариантах осуществления любая информация компоновки для отображения может присутствовать в файле в качестве дополнительной информации (например, сообщения SEI или метаданные). Одно или более декодированных субизображений могут быть перемещены и отображены в зависимости от сигнализированной информации компоновки. Информация компоновки может быть сигнализирована сервером потоковой передачи или вещательной компанией, или может быть восстановлена сетевым объектом или облачным сервером, или может быть определена индивидуальной настройкой пользователя.[155] In embodiments, any layout information for display may be present in the file as additional information (eg, SEI messages or metadata). One or more decoded sub-pictures may be moved and displayed depending on the signaled arrangement information. The layout information may be signaled by the streaming server or broadcaster, or may be retrieved by the network entity or cloud server, or may be determined by the user's individual settings.

[156] В вариантах осуществления, когда входное изображение делится на одну или более (прямоугольных) субобластей, каждая субобласть может кодироваться как независимый слой. Каждый независимый слой, соответствующий локальной области, может иметь уникальное значение layer_id. Для каждого независимого слоя может сигнализироваться информация о размере и местоположении субизображения. Например, размер изображения (ширина, высота), информация о смещении левого верхнего угла (x_offset, y_offset). На фиг.14 показан пример макета разделенных субизображений, информации о размере и положении его субизображений и его соответствующей структуры предсказания изображения. Информация компоновки, включая размер(ы) субизображения и положение(я) субизображения, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров, заголовок группы слайсов или тайлов или сообщение SEI.[156] In embodiments where the input image is divided into one or more (rectangular) sub-regions, each sub-region may be encoded as an independent layer. Each independent layer corresponding to a local area can have a unique layer_id value. For each independent layer, information about the size and location of the sub-image can be signaled. For example, image size (width, height), information about the offset of the upper left corner (x_offset, y_offset). FIG. 14 shows an example of a divided sub-image layout, size and position information of its sub-images, and its corresponding image prediction structure. Layout information, including sub-image size(s) and sub-image position(s), may be signaled in a high-level syntactic structure such as parameter set(s), a slice or tile group header, or an SEI message.

[157] В вариантах осуществления каждое субизображение, соответствующее независимому слою, может иметь свое уникальное значение POC в пределах AU. Когда опорное изображение среди изображений, хранящихся в DPB, указывается с использованием элемента(ов) синтаксиса в структуре RPS или RPL, может использоваться значение(я) POC каждого субизображения, соответствующего слою.[157] In embodiments, each sub-image corresponding to an independent layer may have its own unique POC value within the AU. When a reference image among the images stored in the DPB is specified using syntax element(s) in an RPS or RPL structure, the POC value(s) of each sub-image corresponding to the layer may be used.

[158] В вариантах осуществления, чтобы указать структуру (межслойного) предсказания, layer_id может не использоваться, и может использоваться значение POC (дельта).[158] In embodiments, to indicate the (inter-layer) prediction structure, the layer_id may not be used and a POC (delta) value may be used.

[159] В вариантах осуществления субизображение со значением POC, равным N, соответствующее слою (или локальной области), может использоваться или не использоваться в качестве опорного изображения субизображения со значением POC, равным N+K, соответствующего тому же слою (или той же локальной области) для предсказания с компенсацией движения. В большинстве случаев значение числа K может быть равно максимальному количеству (независимых) слоев, которое может быть идентично количеству субобластей.[159] In embodiments, a sub-image with a POC value equal to N corresponding to a layer (or local region) may or may not be used as a reference image of a sub-image with a POC value equal to N+K corresponding to the same layer (or the same local region). area) for motion compensated prediction. In most cases, the value of the number K can be equal to the maximum number of (independent) layers, which can be identical to the number of subregions.

[160] В вариантах осуществления, на фиг. 15 показан расширенный случай с фиг. 14. Когда входное изображение разделено на множество (например, четыре) субобластей, каждая локальная область может быть кодирована с одним или более слоями. В этом случае количество независимых слоев может быть равно количеству субобластей, и один или более слоев могут соответствовать субобласти. Таким образом, каждая субобласть может быть кодирована одним или более независимых слоев и нулем или более зависимых слоев.[160] In the embodiments of FIGS. 15 shows an extended case of FIG. 14. When the input image is divided into multiple (eg four) sub-regions, each local region can be encoded with one or more layers. In this case, the number of independent layers may be equal to the number of sub-regions, and one or more layers may correspond to a sub-region. Thus, each sub-region may be encoded by one or more independent layers and zero or more dependent layers.

[161] В вариантах осуществления с фиг.15, входное изображение может быть разделено на четыре субобласти. Например, правая верхняя субобласть может быть кодирована как два слоя, которые являются слоем 1 и слоем 4, в то время как правая нижняя субобласть может быть кодирована как два слоя, которые являются слоем 3 и слоем 5. В этом случае слой 4 может ссылаться на слой 1 для предсказания с компенсацией движения, тогда как слой 5 может ссылаться на слой 3 для компенсации движения.[161] In the embodiments of FIG. 15, the input image may be divided into four sub-regions. For example, the upper right subregion may be encoded as two layers, which are layer 1 and layer 4, while the lower right subregion may be encoded as two layers, which are layer 3 and layer 5. In this case, layer 4 may refer to layer 1 is for motion compensated prediction, while layer 5 can reference layer 3 for motion compensation.

[162] В вариантах осуществления внутрипетлевая фильтрация (например, деблокирующая фильтрация, адаптивная внутрипетлевая фильтрация, изменение формы, двусторонняя фильтрация или любая фильтрация на основе глубокого обучения) через границу слоя может быть (опционально) отключена.[162] In embodiments, intra-loop filtering (eg, deblocking filtering, adaptive intra-loop filtering, shapeshifting, two-way filtering, or any deep learning-based filtering) across a layer boundary can be (optionally) disabled.

[163] В вариантах осуществления предсказание с компенсацией движения или внутриблочное копирование через границу слоя может быть (опционально) отключено.[163] In embodiments, motion compensated prediction or intra-block copying across a layer boundary can be (optionally) disabled.

[164] В вариантах осуществления граничное заполнение для предсказания с компенсацией движения или внутрипетлевая фильтрация на границе субизображения может обрабатываться опционально. Флаг, указывающий, обрабатывается ли граничное заполнение или нет, может сигнализироваться в синтаксической структуре высокого уровня, такой как набор(ы) параметров (VPS, SPS, PPS или APS), заголовок группы слайсов или тайлов или сообщение SEI.[164] In embodiments, boundary padding for motion-compensated prediction or intra-loop filtering at the sub-image boundary may be processed optionally. A flag indicating whether boundary padding is processed or not may be signaled in a high-level syntactic structure, such as a parameter set(s) (VPS, SPS, PPS, or APS), a slice or tile group header, or an SEI message.

[165] В вариантах осуществления информация компоновки суб-области (суб-областей) (или суб-изображения, суб-изображений) может сигнализироваться в VPS или SPS. Фиг. 16A показывает пример элементов синтаксиса в VPS, а фиг. 16B показывает пример элементов синтаксиса в SPS. В этом примере vps_sub_picture_dividing_flag сигнализируется в VPS. Флаг может указывать, разделено ли входное(ые) изображение(я) на множество субобластей или нет. Когда значение vps _sub_picture_dividing_flag равно 0, входное изображение(я) в кодированной видеопоследовательности(ях), соответствующей текущей VPS, не может быть разделено на несколько субобластей. В этом случае размер входного изображения может быть равен размеру кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), который сигнализируется в SPS. Когда значение vps _sub_picture_dividing_flag равно 1, входное изображение(я) может быть разделено на множество субобластей. В этом случае элементы синтаксиса vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples сигнализируются в VPS. Значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples могут быть равны ширине и высоте входного изображения(й) соответственно.[165] In embodiments, the layout information of the sub-area(s) (or sub-image(s)) may be signaled to the VPS or SPS. Fig. 16A shows an example of syntax elements in a VPS, and FIG. 16B shows an example of syntax elements in the SPS. In this example, vps_sub_picture_dividing_flag is signaled to the VPS. The flag may indicate whether the input image(s) are divided into multiple subregions or not. When the value of vps_sub_picture_dividing_flag is 0, the input picture(s) in the encoded video sequence(s) corresponding to the current VPS cannot be divided into multiple sub-pictures. In this case, the size of the input image may be equal to the size of the encoded image (pic_width_in_luma_samples, pic_height_in_luma_samples) which is signaled in the SPS. When the value of vps_sub_picture_dividing_flag is 1, the input image(s) can be divided into multiple sub-pictures. In this case, the vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples syntax elements are signaled to the VPS. The values of vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples can be equal to the width and height of the input image(s), respectively.

[166] В вариантах осуществления значения vps_full_pic_width_in_luma_samples и vps_full_pic_height_in_luma_samples не могут использоваться для декодирования, но могут использоваться для компоновки и отображения.[166] In embodiments, the vps_full_pic_width_in_luma_samples and vps_full_pic_height_in_luma_samples values cannot be used for decoding, but can be used for layout and display.

[167] В вариантах осуществления, когда значение vps_sub_picture_dividing_flag равно 1, элементы синтаксиса pic_offset_x и pic_offset_y могут сигнализироваться в SPS, что соответствует (а) конкретному слою (слоям). В этом случае размер кодированного изображения (pic_width_in_luma_samples, pic_height_in_luma_samples), сигнализируемый в SPS, может быть равен ширине и высоте субобласти, соответствующей конкретному слою. Также, положение (pic_offset_x, pic_offset_y) левого верхнего угла субобласти может сигнализироваться в SPS.[167] In embodiments, when the value of vps_sub_picture_dividing_flag is 1, the pic_offset_x and pic_offset_y syntax elements may be signaled in the SPS that correspond to (a) specific layer(s). In this case, the encoded image size (pic_width_in_luma_samples, pic_height_in_luma_samples) signaled in the SPS may be equal to the width and height of the sub-region corresponding to a particular layer. Also, the position (pic_offset_x, pic_offset_y) of the upper left corner of the sub-region may be signaled to the SPS.

[168] В вариантах осуществления информация о положении (pic_offset_x, pic_offset_y) левого верхнего угла субобласти не может использоваться для декодирования, но может использоваться для компоновки и отображения.[168] In embodiments, the position information (pic_offset_x, pic_offset_y) of the upper left corner of the sub-region cannot be used for decoding, but can be used for layout and display.

[169] В вариантах осуществления информация компоновки (размер и положение) всех или суб-набора суб-областей входного изображения(й), информация о зависимости между слоем (слоями) может сигнализироваться в наборе параметров или сообщении SEI. На фиг.17 показан пример элементов синтаксиса для указания информации о макете субобластей, зависимости между слоями и отношения между субобластью и одним или более слоев. В этом примере элемент синтаксиса num_sub_region указывает количество (прямоугольных) субобластей в текущей кодированной видеопоследовательности; элемент синтаксиса num_layers указывает количество слоев в текущей кодированной видеопоследовательности. Значение num_layers может быть равно или больше значения num_sub_region. Когда любая субобласть кодируется как один слой, значение num_layers может быть равно значению num_sub_region. Когда одна или более субобластей кодируются как множество слоев, значение num_layers может быть больше, чем значение num_sub_region. Элемент синтаксиса direct_dependency_flag [i] [j] указывает зависимость от j-го слоя к i-му слою; num_layers_for_region [i] указывает количество слоев, связанных с i-й субобластью; sub_region_layer_id [i] [j] указывает layer_id j-го слоя, связанного с i-й субобластью. Значения sub_region_offset_x [i] и sub_region_offset_y [i] указывают, соответственно, горизонтальное и вертикальное положение левого верхнего угла i-й субобласти. Значения sub_region_width [i] и sub_region_height [i] указывают, соответственно, ширину и высоту i-й субобласти.[169] In embodiments, the layout information (size and position) of all or a sub-set of sub-regions of the input image(s), dependency information between layer(s) may be signaled in a parameter set or SEI message. FIG. 17 shows an example of syntax elements for specifying layout information of sub-regions, dependencies between layers, and a relationship between a sub-region and one or more layers. In this example, the num_sub_region syntax element specifies the number of (rectangular) subregions in the current encoded video sequence; The num_layers syntax element specifies the number of layers in the current encoded video sequence. The value of num_layers can be equal to or greater than the value of num_sub_region. When any subregion is encoded as a single layer, the value of num_layers can be equal to the value of num_sub_region. When one or more subregions are encoded as multiple layers, the value of num_layers may be greater than the value of num_sub_region. The syntax element direct_dependency_flag[i][j] specifies the dependency from the j-th layer to the i-th layer; num_layers_for_region[i] specifies the number of layers associated with the i-th subregion; sub_region_layer_id[i][j] specifies the layer_id of the jth layer associated with the ith subregion. The values sub_region_offset_x [i] and sub_region_offset_y [i] indicate, respectively, the horizontal and vertical position of the upper left corner of the i-th subregion. The sub_region_width[i] and sub_region_height[i] values indicate the width and height of the i-th subregion, respectively.

[170] В вариантах осуществления один или более элементов синтаксиса, которые задают набор выходных слоев для указания одного или более слоев, которые должны выводиться с информацией уровня яруса профиля или без нее, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS APS или сообщение SEI. Обращаясь к фиг.18, элемент синтаксиса num_output_layer_sets, указывающий количество наборов выходных слоев (OLS) в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев output_layer_flag может сигнализироваться столько, сколько имеется выходных слоев.[170] In embodiments, one or more syntax elements that define a set of output layers to indicate one or more layers to be output with or without profile tier level information may be signaled in a high-level syntax structure, such as VPS, DPS, SPS , PPS APS or SEI message. Referring to FIG. 18, a num_output_layer_sets syntax element indicating the number of output layer sets (OLS) in a coded video sequence related to the VPS may be signaled to the VPS. For each set of output layers, output_layer_flag can be signaled as many as there are output layers.

[171] В вариантах осуществления output_layer_flag [i], равное 1, может указывать, что выводится i-й слой; vps_output_layer_flag [i], равное 0, может указывать, что i-й слой не выводится.[171] In embodiments, output_layer_flag[i] equal to 1 may indicate that the i-th layer is output; vps_output_layer_flag[i] equal to 0 may indicate that the i-th layer is not output.

[172] В вариантах осуществления один или более элементов синтаксиса, которые задают информацию уровня яруса профиля для каждого набора выходных слоев, могут сигнализироваться в синтаксической структуре высокого уровня, например VPS, DPS, SPS, PPS, APS или сообщении SEI. По-прежнему обращаясь к фиг.18, элемент синтаксиса num_profile_tile_level, указывающий количество информации уровня яруса профиля на OLS в кодированной видеопоследовательности, относящейся к VPS, может сигнализироваться в VPS. Для каждого набора выходных слоев набор элементов синтаксиса для информации уровня яруса профиля или индекс, указывающий конкретную информацию уровня яруса профиля среди записей в информации уровня яруса профиля, может сигнализироваться столько, сколько имеется выходных слоев.[172] In embodiments, one or more syntax elements that specify profile tier level information for each set of output layers may be signaled in a high-level syntax structure, such as a VPS, DPS, SPS, PPS, APS, or SEI message. Still referring to FIG. 18, a num_profile_tile_level syntax element indicating the amount of profile tier level information on the OLS in the encoded video sequence related to the VPS may be signaled to the VPS. For each set of output layers, a set of syntax elements for profile tier level information, or an index indicating specific profile tier level information among entries in the profile tier level information, may be signaled as many as there are output layers.

[173] В вариантах осуществления profile_tier_level_idx [i] [j] может указывать индекс в списке синтаксических структур profile_tier_level () в VPS синтаксической структуры profile_tier_level (), которая применяется к j-му слою i-го OLS.[173] In embodiments, profile_tier_level_idx[i][j] may indicate an index in the profile_tier_level() syntax structure list in the VPS of the profile_tier_level() syntax structure that applies to the j-th layer of the i-th OLS.

[174] В вариантах осуществления, как показано на фиг.20, элементы синтаксиса num_profile_tile_level и/или num_output_layer_sets могут сигнализироваться, когда количество максимальных слоев больше 1 (vps_max_layers_minus1> 0).[174] In embodiments, as shown in FIG. 20, the num_profile_tile_level and/or num_output_layer_sets syntax elements may be signaled when the number of maximum layers is greater than 1 (vps_max_layers_minus1 > 0).

[175] В вариантах осуществления, как показано на фиг.20, элемент синтаксиса vps_output_layers_mode [i], указывающий режим сигнализации выходного слоя для i-го набора выходных слоев, может присутствовать в VPS.[175] In embodiments, as shown in FIG. 20, a syntax element vps_output_layers_mode [i] indicating the output layer signaling mode for the i-th set of output layers may be present in the VPS.

[176] В вариантах осуществления vps_output_layers_mode [i], равное 0, может указывать, что только самый верхний слой выводится с i-м набором выходных слоев; vps_output_layer_mode [i], равное 1, может указывать, что все слои выводятся с i-м набором выходных слоев; vps_output_layer_mode [i], равное 2, может указывать, что выводимые слои - это слои с vps_output_layer_flag [i] [j], равным 1, с i-м набором выходных слоев. Могут быть зарезервированы другие значения.[176] In embodiments, a vps_output_layers_mode[i] of 0 may indicate that only the topmost layer is output with the i-th set of output layers; vps_output_layer_mode[i] equal to 1 may indicate that all layers are output with the i-th set of output layers; vps_output_layer_mode[i] equal to 2 may indicate that the output layers are those with vps_output_layer_flag[i][j] equal to 1 with the i-th set of output layers. Other values may be reserved.

[177] В вариантах осуществления output_layer_flag [i] [j] может сигнализироваться или не сигнализироваться в зависимости от значения vps_output_layers_mode [i] для i-го набора выходных слоев.[177] In embodiments, output_layer_flag[i][j] may or may not be signaled depending on the value of vps_output_layers_mode[i] for the i-th set of output layers.

[178] В вариантах осуществления, со ссылкой на фиг. 19, флаг vps_ptl_signal_flag [i] может присутствовать для i-го набора выходных слоев. В зависимости от значения vps_ptl_signal_flag [i] информация уровня яруса профиля для i-го набора выходных слоев может сигнализироваться или не сигнализироваться.[178] In embodiments, with reference to FIGS. 19, the flag vps_ptl_signal_flag[i] may be present for the i-th set of output layers. Depending on the value of vps_ptl_signal_flag[i], the profile tier level information for the i-th set of output layers may or may not be signaled.

[179] В вариантах осуществления, как показано на фиг.20, число субизображений, max_subpics_minus1, в текущем CVS может сигнализироваться в синтаксической структуре высокого уровня, например, в VPS, DPS, SPS, PPS, APS или сообщении SEI.[179] In embodiments, as shown in FIG. 20, the number of subpics, max_subpics_minus1, in the current CVS may be signaled in a high-level syntax structure, such as a VPS, DPS, SPS, PPS, APS, or SEI message.

[180] В вариантах осуществления, как показано на фиг.21, идентификатор субизображения, sub_pic_id [i], для i-го субизображения может сигнализироваться, когда число субизображений больше 1 (max_subpics_minus1> 0).[180] In embodiments, as shown in FIG. 21, a subpicture identifier, sub_pic_id[i], for the i-th subpicture may be signaled when the number of subpictures is greater than 1 (max_subpics_minus1 > 0).

[181] В вариантах осуществленияодин или несколько синтаксических элементов, указывающих идентификатор субизображения, принадлежащий каждому слою каждого набора выходных слоев, могут сигнализироваться в VPS. Обращаясь к фиг.20, sub_pic_id_layer [i] [j] [k], который указывает k-е субизображение, присутствующее в j-м слое i-го набора выходных слоев. С помощью этой информации декодер может определить, какое субизображение может быть декодировано и выведено для каждого слоя конкретного набора выходных слоев.[181] In embodiments, one or more syntax elements indicating a sub-image identifier belonging to each layer of each set of output layers may be signaled to the VPS. Referring to FIG. 20, sub_pic_id_layer[i][j][k], which indicates the k-th sub-image present in the j-th layer of the i-th set of output layers. With this information, the decoder can determine which sub-image can be decoded and output for each layer of a particular set of output layers.

[182] В варианте осуществления заголовок изображения (PH) представляет собой синтаксическую структуру, содержащую элементы синтаксиса, которые применяются ко всем слайсам кодированного изображения. Единица изображения (PU) - это набор единиц NAL, которые связаны друг с другом согласно заданному правилу классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение. PU может содержать заголовок изображения (PH) и один или более единиц NAL VCL, составляющих кодированное изображение.[182] In an embodiment, a picture header (PH) is a syntax structure containing syntax elements that apply to all slices of an encoded picture. A picture unit (PU) is a set of NAL units that are related to each other according to a given classification rule, are sequential in decoding order, and contain exactly one encoded picture. The PU may contain a picture header (PH) and one or more NAL VCL units constituting the encoded picture.

[183] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства.[183] In an embodiment, the SPS (RBSP) may be available to the decoding process before it is referenced, included in at least one AU with a TemporalId of 0, or provided through external means.

[184] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[184] In an embodiment, an SPS (RBSP) may be available to the decoding process before it is referenced and included in at least one AU with a TemporalId of 0 in a CVS that contains one or more PPSs. related to SPS, or provided through external means.

[185] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[185] In an embodiment, an SPS (RBSP) may be available to the decoding process before it is referenced by one or more PPSs, it is included in at least one PU with a nuh_layer_id equal to the smallest nuh_layer_id value of the NAL PPS units that refer to an SPS NAL unit in CVS that contains one or more SPS-related PPS or is provided through external means.

[186] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0, и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS или предоставлены через внешние средства.[186] In an embodiment, the SPS (RBSP) may be available to the decoding process before it is referenced by one or more PPSs, it is included in at least one PU with a TemporalId equal to 0 and nuh_layer_id equal to the smallest value nuh_layer_id of NAL PPS units that are assigned to a NAL SPS unit or provided through external means.

[187] В варианте осуществления SPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PPS, он будет включен по меньшей мере в одну PU с TemporalId, равным 0 и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS в CVS, который содержит один или более PPS, относящихся к SPS, или предоставлен через внешние средства.[187] In an embodiment, an SPS (RBSP) may be available to the decoding process before it is referenced by one or more PPSs, it is included in at least one PU with a TemporalId equal to 0 and nuh_layer_id equal to the smallest value of nuh_layer_id NAL PPS units that relate to a NAL SPS unit in a CVS that contains one or more PPS related to an SPS or is provided through external means.

[188] В том же или другом варианте осуществления pps_seq_parameter_set_id может указывать значение sps_seq_parameter_set_id для SPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в кодированной послойной видеопоследовательности (CLVS).[188] In the same or another embodiment, pps_seq_parameter_set_id may indicate the value of sps_seq_parameter_set_id for the referenced SPS. The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by coded pictures in a coded layered video sequence (CLVS).

[189] В том же или другом варианте осуществления все единицы NAL SPS с конкретным значением sps_seq_parameter_set_id в CVS могут иметь одинаковое содержимое.[189] In the same or another embodiment, all SPS NAL units with a particular sps_seq_parameter_set_id value in CVS may have the same content.

[190] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL SPS могут совместно использовать одно и то же пространство значений sps_seq_parameter_set_id.[190] In the same or another embodiment, regardless of the nuh_layer_id values, the SPS NAL units may share the same sps_seq_parameter_set_id value space.

[191] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL SPS может быть равно наименьшему значению nuh_layer_id единиц NAL PPS, которые относятся к единице NAL SPS.[191] In the same or another embodiment, the nuh_layer_id value of the NAL SPS unit may be equal to the smallest nuh_layer_id value of the NAL PPS units that are related to the NAL SPS unit.

[192] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более PPS с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[192] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more PPS with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n, or ( direct or indirect) reference layer of a layer with nuh_layer_id equal to m.

[193] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.[193] In an embodiment, the PPS (RBSP) may be available to the decoding process before it is referenced, included in at least one AU with a TemporalId equal to the TemporalId of the NAL PPS unit, or provided through external means.

[194] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.[194] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced, it will be included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit in the CVS that contains one or more PH (or coded slice NAL units) related to the PPS, or provided through external means.

[195] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[195] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it is included in at least one PU with nuh_layer_id equal to the smallest the nuh_layer_id value of the coded slice NAL units that relate to a PPS NAL unit in the CVS that contains one or more PHs (or coded slice NAL units) that relate to the PPS or are provided through external means.

[196] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[196] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or coded slice NAL units) included in at least one PU with a TemporalId equal to the TemporalId of the NAL unit PPS and nuh_layer_id equal to the smallest value of the nuh_layer_id of the coded slice NAL units that refer to the PPS NAL unit in the CVS that contains one or more PHs (or coded slice NAL units) that relate to the PPS, or are provided through external means.

[197] В том же или другом варианте осуществления ph_pic_parameter_set_id в PH может указывать значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.[197] In the same or another embodiment, the ph_pic_parameter_set_id in the PH may indicate the pps_pic_parameter_set_id value for the referenced PPS in use. The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by encoded images in CLVS.

[198] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.[198] In the same or another embodiment, all NAL PPS units with a particular pps_pic_parameter_set_id value in the PU may have the same content.

[199] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.[199] In the same or another embodiment, regardless of nuh_layer_id values, NAL PPS units may share the same pps_pic_parameter_set_id value space.

[200] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.[200] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the smallest nuh_layer_id value of the encoded slice NAL units that reference the PPS NAL unit.

[201] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[201] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more NAL units of an encoded slice with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n , or the (direct or indirect) reference layer of a layer with nuh_layer_id equal to m.

[202] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS, или предоставлен через внешние средства.[202] In an embodiment, the PPS (RBSP) may be available to the decoding process before it is referenced, included in at least one AU with a TemporalId equal to the TemporalId of the NAL PPS unit, or provided through external means.

[203] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по меньшей мере в одну AU с TemporalId, равным TemporalId единицы NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированного слайса), относящихся к PPS, или предоставлен через внешние средства.[203] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced, included in at least one AU with a TemporalId equal to the TemporalId of the PPS NAL unit in the CVS that contains one or more PH (or coded slice NAL units) related to the PPS, or provided through external means.

[204] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), он будет включен по меньшей мере в одну PU с nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[204] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or encoded slice NAL units), it is included in at least one PU with nuh_layer_id equal to the smallest the nuh_layer_id value of the coded slice NAL units that relate to a PPS NAL unit in the CVS that contains one or more PHs (or coded slice NAL units) that relate to the PPS or are provided through external means.

[205] В варианте осуществления PPS (RBSP) может быть доступен процессу декодирования до того, как на него будет сделана ссылка одним или более PH (или единиц NAL кодированного слайса), включенный по меньшей мере в одну PU с TemporalId, равным TemporalId единицы NAL PPS и nuh_layer_id, равным наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые относятся к единице NAL PPS в CVS, который содержит один или более PH (или единиц NAL кодированных слайсов), относящихся к PPS, или предоставлен через внешние средства.[205] In an embodiment, a PPS (RBSP) may be available to the decoding process before it is referenced by one or more PHs (or coded slice NAL units) included in at least one PU with a TemporalId equal to the TemporalId of the NAL unit PPS and nuh_layer_id equal to the smallest value of the nuh_layer_id of the coded slice NAL units that refer to the PPS NAL unit in the CVS that contains one or more PHs (or coded slice NAL units) that relate to the PPS, or are provided through external means.

[206] В том же или другом варианте осуществления ph_pic_parameter_set_id в PH может указывать значение pps_pic_parameter_set_id для используемого PPS, на который делается ссылка. Значение pps_seq_parameter_set_id может быть одинаковым во всех PPS, на которые ссылаются кодированные изображения в CLVS.[206] In the same or another embodiment, the ph_pic_parameter_set_id in the PH may indicate the pps_pic_parameter_set_id value for the referenced PPS in use. The value of pps_seq_parameter_set_id may be the same in all PPSs referenced by encoded images in CLVS.

[207] В том же или другом варианте осуществления все единицы NAL PPS с конкретным значением pps_pic_parameter_set_id в PU могут иметь одно и то же содержимое.[207] In the same or another embodiment, all NAL PPS units with a particular pps_pic_parameter_set_id value in the PU may have the same content.

[208] В том же или другом варианте осуществления, независимо от значений nuh_layer_id, единицы NAL PPS могут совместно использовать одно и то же пространство значений pps_pic_parameter_set_id.[208] In the same or another embodiment, regardless of nuh_layer_id values, NAL PPS units may share the same pps_pic_parameter_set_id value space.

[209] В том же или другом варианте осуществления значение nuh_layer_id единицы NAL PPS может быть равно наименьшему значению nuh_layer_id единиц NAL кодированного слайса, которые ссылаются на единицу NAL PPS.[209] In the same or another embodiment, the nuh_layer_id value of the PPS NAL unit may be equal to the smallest nuh_layer_id value of the encoded slice NAL units that reference the PPS NAL unit.

[210] В варианте осуществления, когда на PPS с nuh_layer_id, равным m, делается ссылка одной или более единицами NAL кодированного слайса с nuh_layer_id, равным n, слой с nuh_layer_id, равным m, может быть таким же, как слой с nuh_layer_id, равным n, или (прямым или косвенным) опорным слоем слоя с nuh_layer_id, равным m.[210] In an embodiment, when a PPS with nuh_layer_id equal to m is referenced by one or more NAL units of an encoded slice with nuh_layer_id equal to n, the layer with nuh_layer_id equal to m may be the same as the layer with nuh_layer_id equal to n , or the (direct or indirect) reference layer of a layer with nuh_layer_id equal to m.

[211] Когда изображения кодируются в битовый поток, который включает в себя один или несколько слоев с разными разрешениями, каждая кодированная видеопоследовательность слоя может использовать передискретизацию опорного изображения, когда опорное изображение может иметь разрешение, отличное от текущего изображения. Желательно указать элементы синтаксиса, которые указывают передискретизацию опорного изображения для пространственной масштабируемости или адаптивных изменений разрешения изображения (ARC).[211] When images are encoded into a bitstream that includes one or more layers with different resolutions, each encoded video sequence of the layer may use reference image resampling, where the reference image may have a different resolution than the current image. It is desirable to specify syntax elements that specify resampling of the reference image for spatial scalability or adaptive image resolution changes (ARC).

[212] Как показано на фиг. 21, выходной слой может указывать слой набора выходных слоев, который является выходным. Набор выходных слоев (OLS) может указывать набор слоев, содержащий указанный набор слоев, где один или более слоев в наборе слоев указаны как выходные слои. Индекс слоя набора выходных слоев (OLS) - это индекс слоя в OLS к списку слоев в OLS.[212] As shown in FIG. 21, the output layer may indicate a layer of the output layer set that is output. An output layer set (OLS) may indicate a layer set containing a specified layer set, where one or more layers in the layer set are specified as output layers. The output layer set (OLS) layer index is the layer index in OLS to the list of layers in OLS.

[213] Субслой может указывать на временный масштабируемый слоей временного масштабируемого битового потока, включающего единицы NAL VCL с конкретным значением переменной TemporalId и связанных единиц NAL, не относящихся к VCL. Представление субслоя может указывать субмножество битового потока, который включает в себя единицы NAL конкретного субслоя и нижних субслоев.[213] A sublayer may point to a temporary scalable layer of a temporary scalable bitstream including VCL NAL units with a particular TemporalId variable value and associated non-VCL NAL units. The sublayer representation may indicate a subset of the bitstream that includes the NAL units of a particular sublayer and lower sublayers.

[214] RBSP VPS может быть доступен процессу декодирования до того, как на него будет сделана ссылка, он будет включен по крайней мере в одну AU с TemporalId, равным 0, или предоставлен через внешние средства. Все единицы NAL VPS с определенным значением vps_video_parameter_set_id в CVS могут иметь одинаковое содержимое.[214] The RBSP VPS may be available to the decoding process before it is referenced, included in at least one AU with a TemporalId of 0, or provided through external means. All VPS NAL units with a specific vps_video_parameter_set_id value in CVS can have the same content.

[215] Как показано на фиг. 22, в вариантах осуществления vps_video_parameter_set_id предоставляет идентификатор VPS для ссылки другими элементами синтаксиса. Значение vps_video_parameter_set_id может быть больше 0.[215] As shown in FIG. 22, in embodiments, the vps_video_parameter_set_id provides a VPS identifier for reference by other syntax elements. The value of vps_video_parameter_set_id can be greater than 0.

[216] В вариантах осуществления значение vps_max_layers_ minus1 плюс 1 может указывает максимально допустимое количество слоев в каждом CVS, ссылающемся на VPS.[216] In embodiments, the value vps_max_layers_minus1 plus 1 may indicate the maximum allowed number of layers in each CVS referencing the VPS.

[217] Значение vps_max_sublayers_ minus1 plus 1 может указывать максимальное количество временных субслоев, которые могут присутствовать в слое в каждом CVS, ссылающемся на VPS. Значение vps_max_sublayers_minus1 может находиться в диапазоне от 0 до 6 включительно.[217] The value vps_max_sublayers_ minus1 plus 1 may indicate the maximum number of temporary sublayers that can be present in a layer in each CVS referencing the VPS. The value of vps_max_sublayers_minus1 can be in the range from 0 to 6 inclusive.

[218] В вариантах осуществления значение vps_all_layers_same_num_sublayers_flag , равное 1, может указывать, что количество временных субслоев одинаково для всех слоев в каждом CVS, ссылающемся на VPS. Значение vps_all_layers_same_num_sublayers_flag, равное 0, может указывать, что слои в каждом CVS, ссылающеся на VPS, могут иметь или не иметь одинаковое количество временных субслоев. При отсутствии, значение vps_all_layers_same_num_sublayers_flag может быть выведено равным 1.[218] In embodiments, a vps_all_layers_same_num_sublayers_flag value of 1 may indicate that the number of temporary sublayers is the same for all layers in each CVS referencing the VPS. A vps_all_layers_same_num_sublayers_flag value of 0 may indicate that the layers in each CVS referencing the VPS may or may not have the same number of temporary sublayers. If absent, the value of vps_all_layers_same_num_sublayers_flag may be output to 1.

[219] В вариантах осуществления vps_all_independent_layers_flag, равный 1, может указывать, что все слои в CVS независимо кодируются без использования межслойного предсказания.[219] In embodiments, a vps_all_independent_layers_flag equal to 1 may indicate that all layers in the CVS are independently encoded without using inter-layer prediction.

[220] В вариантах осуществления vps_all_independent_layers_flag, равный 0, может указывать, что один или несколько слоев в CVS могут использовать межслойное предсказание. При отсутствии, значение vps_all_independent_layers_flag может быть выведено равным 1.[220] In embodiments, a vps_all_independent_layers_flag equal to 0 may indicate that one or more layers in CVS can use inter-layer prediction. If absent, the value of vps_all_independent_layers_flag may be output to 1.

[221] В вариантах осуществления vps_layer_id [i] может указывать значение nuh_layer_id i-го слоя. Для любых двух неотрицательных целочисленных значений m и n, когда m меньше n, значение vps_layer_id [m] может быть меньше vps_layer_id [n].[221] In embodiments, vps_layer_id[i] may indicate the nuh_layer_id value of the i-th layer. For any two non-negative integer values m and n, when m is less than n, the value of vps_layer_id[m] can be less than vps_layer_id[n].

[222] В вариантах осуществления значение vps_independent_layer_flag [i] , равное 1, может указывать, что слой с индексом i не использует межслойное предсказание. Значение vps_independent_layer_flag [i], равное 0, может указывать, что слой с индексом i может использовать межслойное предсказание, а элементы синтаксиса vps_direct_ref_layer_flag [i] [j] для j в диапазоне от 0 до i - 1 включительно присутствуют в VPS. При отсутствии, значение vps_independent_layer_flag [i] может выведено равным 1.[222] In embodiments, a vps_independent_layer_flag[i] value of 1 may indicate that layer index i does not use inter-layer prediction. A vps_independent_layer_flag[i] value of 0 may indicate that layer index i can use cross-layer prediction, and vps_direct_ref_layer_flag[i][j] syntax elements for j in the range 0 to i - 1 inclusive are present in the VPS. If absent, the value of vps_independent_layer_flag [i] may be output to 1.

[223] В вариантах осуществления значение vps_direct_ref_layer_flag [i] [j], равное 0, может указывать, что слой с индексом j не является прямым опорным слоем для слоя с индексом i. Значение vps_direct_ref_layer_flag [i] [j], равное 1, может указывать, что слой с индексом j является прямым опорным слоем для слоя с индексом i. Когда vps_direct_ref_layer_flag [i] [j] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, оно может быть выведено равным 0. Когда vps_independent_layer_flag [i] равно 0, может быть по меньшей мере одно значение j в диапазоне от 0 до i - 1 включительно, так что значение vps_direct_ref_layer_flag [i] [j] равно 1.[223] In embodiments, a vps_direct_ref_layer_flag[i][j] value of 0 may indicate that layer index j is not a direct reference layer for layer index i. A vps_direct_ref_layer_flag[i][j] value of 1 may indicate that layer index j is the direct reference layer for layer index i. When vps_direct_ref_layer_flag[i][j] is missing for i and j in the range 0 to vps_max_layers_minus1 inclusive, it may be output equal to 0. When vps_independent_layer_flag[i] is 0, there may be at least one value of j in the range 0 to i - 1 inclusive, so the value of vps_direct_ref_layer_flag[i][j] is 1.

[224] Переменные NumDirectRefLayers [i], DirectRefLayerIdx [i] [d], NumRefLayers [i], RefLayerIdx [i] [r] и LayerUsedAsRefLayerFlag [j] могут быть выведены следующим образом:[224] The variables NumDirectRefLayers[i], DirectRefLayerIdx[i][d], NumRefLayers[i], RefLayerIdx[i][r], and LayerUsedAsRefLayerFlag[j] can be inferred as follows:

[225] Переменная GeneralLayerIdx [i], определяющая индекс слоя для слоя с nuh_layer_id, равным vps_layer_id [i], может быть получена следующим образом:[225] The variable GeneralLayerIdx[i], which specifies the layer index for a layer with nuh_layer_id equal to vps_layer_id[i], can be obtained as follows:

[226] Для любых двух разных значений i и j, оба в диапазоне от 0 до vps_max_layers_minus1 включительно, когда dependencyFlag [i] [j] равно 1, может быть требование соответствия битового потока, чтобы значения chroma_format_idc и bit_depth_minus8, которые применяются к i-му слою, могли быть равными значениям chroma_format_idc и bit_depth_minus8, соответственно, которые применяются к j-му слою.[226] For any two different values of i and j, both in the range 0 to vps_max_layers_minus1 inclusive, when dependencyFlag[i][j] is 1, there may be a bitstream matching requirement so that the values of chroma_format_idc and bit_depth_minus8 that apply to i- th layer could be equal to the values of chroma_format_idc and bit_depth_minus8, respectively, which are applied to the j-th layer.

[227] Значение max_tid_ref_present_flag[i], равное 1, может указывать, что присутствует элемент синтаксиса max_tid_il_ref_pics_plus1 [i]. Значение max_tid_ref_present_flag[i], равное 0, может указывать, что элемент синтаксиса max_tid_il_ref_pics_plus1 [i] отсутствует.[227] A max_tid_ref_present_flag[i] value of 1 may indicate that the max_tid_il_ref_pics_plus1[i] syntax element is present. A max_tid_ref_present_flag[i] value of 0 may indicate that the max_tid_il_ref_pics_plus1[i] syntax element is missing.

[228] Значение max_tid_il_ref_pics_plus1[i], равное 0, может указывать, что межслойное предсказание не используется изображениями не-IRAP i-го слоя. Значение max_tid_il_ref_pics_plus1 [i] больше 0 может указывать, что для декодирования изображений i-го слоя ни одно изображение с TemporalId, превышающим max_tid_il_ref_pics_plus1 [i] - 1, не используется в качестве ILRP. При отсутствии, значение max_tid_il_ref_pics_plus1 [i] может быть выведено равным 7.[228] A max_tid_il_ref_pics_plus1[i] value of 0 may indicate that inter-layer prediction is not used by non-IRAP images of the i-th layer. A value of max_tid_il_ref_pics_plus1 [i] greater than 0 may indicate that for decoding the i-th layer images, no image with a TemporalId greater than max_tid_il_ref_pics_plus1 [i] - 1 is used as an ILRP. If absent, the value max_tid_il_ref_pics_plus1 [i] can be output as 7.

[229] Значение each_layer_is_an_ols_flag, равное 1, может указывать, что каждый OLS содержит только один слой, а каждый слой сам по себе в CVS, относящийся к VPS, является OLS с единственным включенным слоем, который является единственным выходным слоем. Значение each_layer_is_an_ols_flag, равное 0, означает, что OLS может содержать более одного слоя. Если vps_max_layers_minus1 равно 0, значение each_layer_is_an_ols_flag может быть выведено равным 1. В противном случае, когда vps_all_independent_layers_flag равно 0, значение each_layer_is_an_ols_flag может быть выведено равным 0.[229] A value of each_layer_is_an_ols_flag equal to 1 may indicate that each OLS contains only one layer, and each layer itself in the CVS related to the VPS is an OLS with a single layer included, which is the only output layer. An each_layer_is_an_ols_flag value of 0 means that an OLS can contain more than one layer. If vps_max_layers_minus1 is 0, the value of each_layer_is_an_ols_flag can be output as 1. Otherwise, when vps_all_independent_layers_flag is 0, the value of each_layer_is_an_ols_flag can be output as 0.

[230] Значение ols_mode_idc, равное 0, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 + 1, причем i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводится только слой самого высокого уровня в OLS.[230] An ols_mode_idc value of 0 may indicate that the total number of OLSs specified by the VPS is vps_max_layers_minus1 + 1, where the i-th OLS includes layers with layer indices from 0 to i inclusive, and for each OLS only the layer is output the highest level in OLS.

[231] Значение ols_mode_idc , равное 1, может указывать, что общее количество OLS, указанных VPS, равно vps_max_layers_minus1 + 1, причем i-й OLS включает в себя слои с индексами слоев от 0 до i включительно, и для каждого OLS выводятся все слои в OLS.[231] An ols_mode_idc value of 1 may indicate that the total number of OLSs specified by the VPS is vps_max_layers_minus1 + 1, where the i-th OLS includes layers with layer indices from 0 to i inclusive, and for each OLS all layers are output in OLS.

[232] Значение ols_mode_idc, равное 2, может указывать, что общее количество OLS, указанных VPS, явно сигнализировано, и для каждого OLS выходные слои явно сигнализированы, а другие слои являются слоями, которые являются прямыми или косвенными опорными слоями выходных слоев OLS.[232] An ols_mode_idc value of 2 may indicate that the total number of OLSs indicated by the VPS are explicitly signaled, and for each OLS, the output layers are explicitly signaled and the other layers are layers that are direct or indirect reference layers of the OLS output layers.

[233] Значение ols_mode_idc может находиться в диапазоне от 0 до 2 включительно. Значение 3 ols_mode_idc зарезервировано для будущего использования МСЭ-Т | ИСО/МЭК.[233] The value of ols_mode_idc can range from 0 to 2, inclusive. Value 3 ols_mode_idc reserved for future use by ITU-T | ISO/IEC.

[234] Когда vps_all_independent_layers_flag равно 1 и each_layer_is_an_ols_flag равно 0, значение ols_mode_idc может быть выведено равным 2.[234] When vps_all_independent_layers_flag is 1 and each_layer_is_an_ols_flag is 0, the value of ols_mode_idc can be output to 2.

[235] num_output_layer_sets_minus1 плюс 1 может указывать общее количество OLS, указанных VPS, когда ols_mode_idc равно 2.[235] num_output_layer_sets_minus1 plus 1 can indicate the total number of OLS specified by the VPS when ols_mode_idc is 2.

[236] Переменная TotalNumOlss, указывающая общее количество OLS, указанных VPS, может быть выведена следующим образом:[236] The TotalNumOlss variable indicating the total number of OLSs specified by the VPS can be output as follows:

[237] ols_output_layer_flag [i] [j], равный 1, может указывать, что слой с nuh_layer_id, равным vps_layer_id [j], является выходным слоем i-го OLS, когда ols_mode_idc равен 2. ols_output_layer_flag [i] [j] равен 0 может указать, что слой с nuh_layer_id, равным vps_layer_id [j], не является выходным слоем i-го OLS, когда ols_mode_idc равно 2.[237] ols_output_layer_flag[i][j] equal to 1 can indicate that the layer with nuh_layer_id equal to vps_layer_id[j] is the output layer of the i-th OLS when ols_mode_idc is equal to 2. ols_output_layer_flag[i][j] is equal to 0 can indicate that the layer with nuh_layer_id equal to vps_layer_id[j] is not the output layer of the i-th OLS when ols_mode_idc is equal to 2.

[238] Переменная NumOutputLayersInOls [i], указывающая количество выходных слоев в i-м OLS, переменная NumSubLayersInLayerInOLS [i] [j], указывающая количество субслоев в j-м слое в i-м OLS, переменная OutputLayerIdInOls [i] [j], определяющая значение nuh_layer_id j-го выходного слоя в i-м OLS, и переменную LayerUsedAsOutputLayerFlag [k], определяющую, используется ли k-й слой в качестве выходного слоя по меньшей мере в одном OLS, может быть получено следующим образом:[238] Variable NumOutputLayersInOls [i], indicating the number of output layers in the i-th OLS, variable NumSubLayersInLayerInOLS [i] [j], indicating the number of sublayers in the j-th layer in the i-th OLS, variable OutputLayerIdInOls [i] [j] , which determines the nuh_layer_id value of the j-th output layer in the i-th OLS, and the variable LayerUsedAsOutputLayerFlag [k], which determines whether the k-th layer is used as an output layer in at least one OLS, can be obtained as follows:

[239] Для каждого значения i в диапазоне от 0 до vps_max_layers_minus1 включительно значения LayerUsedAsRefLayerFlag [i] и LayerUsedAsOutputLayerFlag [i] не могут быть равными 0 одновременно. Другими словами, может не быть слоя, который не является ни выходным слоем по меньшей мере одного OLS, ни прямым опорным слоем любого другого слоя.[239] For each value of i in the range 0 to vps_max_layers_minus1 inclusive, the values LayerUsedAsRefLayerFlag[i] and LayerUsedAsOutputLayerFlag[i] cannot be equal to 0 at the same time. In other words, there may be no layer that is neither an output layer of at least one OLS nor a direct reference layer of any other layer.

[240] Для каждой OLS может быть по меньшей мере один слой, который является выходным слоем. Другими словами, для любого значения i в диапазоне от 0 до TotalNumOlss - 1 включительно значение NumOutputLayersInOls [i] может быть больше или равно 1.[240] For each OLS there may be at least one layer that is an output layer. In other words, for any value of i in the range 0 to TotalNumOlss - 1 inclusive, the value of NumOutputLayersInOls[i] can be greater than or equal to 1.

[241] Можно получить переменную NumLayersInOls [i], определяющую количество слоев в i-м OLS, и переменную LayerIdInOls [i] [j], определяющую значение nuh_layer_id j-го слоя в i-м OLS следующим образом:[241] You can get the NumLayersInOls [i] variable that defines the number of layers in the i-th OLS, and the LayerIdInOls [i] [j] variable that defines the nuh_layer_id value of the j-th layer in the i-th OLS as follows:

[242] Переменная OlsLayerIdx [i] [j], определяющая индекс слоя OLS для слоя с nuh_layer_id, равным LayerIdInOls [i] [j], получается следующим образом:[242] The OlsLayerIdx[i][j] variable defining the OLS layer index for a layer with nuh_layer_id equal to LayerIdInOls[i][j] is obtained as follows:

[243] Самый нижний слой в каждой OLS может быть независимым слоем. Другими словами, для каждого i в диапазоне от 0 до TotalNumOlss - 1 включительно значение vps_independent_layer_flag [GeneralLayerIdx [LayerIdInOls [i] [0]]] может быть равно 1.[243] The lowest layer in each OLS may be an independent layer. In other words, for every i in the range 0 to TotalNumOlss - 1 inclusive, the value of vps_independent_layer_flag [GeneralLayerIdx [LayerIdInOls [i] [0]]] can be equal to 1.

[244] Каждый слой может быть включен по крайней мере в один OLS, указанный VPS. Другими словами, для каждого слоя с конкретным значением nuh_layer_id nuhLayerId, равным одному из vps_layer_id [k] для k в диапазоне от 0 до vps_max_layers_minus1 включительно, может быть по крайней мере одна пара значений i и j, где i находится в диапазоне от 0 до TotalNumOlss - 1 включительно, а j находится в диапазоне NumLayersInOls [i] - 1 включительно, так что значение LayerIdInOls [i] [j] равно nuhLayerId.[244] Each layer can be included in at least one OLS specified by the VPS. In other words, for each layer with a particular nuh_layer_id nuhLayerId value equal to one of vps_layer_id[k] for k in the range 0 to vps_max_layers_minus1 inclusive, there can be at least one pair of values i and j, where i is in the range 0 to TotalNumOlss - 1 inclusive, and j is in the range NumLayersInOls[i] - 1 inclusive, so the value of LayerIdInOls[i][j] is nuhLayerId.

[245] В вариантах осуществления, для текущего изображения CurrPic процесс декодирования может выполняться следующим образом:[245] In embodiments, for the current CurrPic picture, the decoding process may be performed as follows:

- PictureOutputFlag может быть установлен следующим образом:- PictureOutputFlag can be set as follows:

- Если выполняется одно из следующих условий, PictureOutputFlag может быть устанавлен равным 0:- If one of the following conditions is true, PictureOutputFlag can be set to 0:

- текущее изображение является RASL изображением, и значение NoOutputBeforeRecoveryFlag связанного изображения IRAP равно 1.- the current image is a RASL image, and the NoOutputBeforeRecoveryFlag value of the associated IRAP image is 1.

- gdr_enabled_flag равен 1, а текущее изображение - это изображение GDR с NoOutputBeforeRecoveryFlag, равным 1.- gdr_enabled_flag is equal to 1 and the current image is a GDR image with NoOutputBeforeRecoveryFlag equal to 1.

- элемент синтаксиса gdr_enabled_flag равен 1, текущее изображение связано с изображением GDR с NoOutputBeforeRecoveryFlag, равным 1, и PicOrderCntVal текущего изображения меньше RpPicOrderCntVal связанного изображения GDR;- the gdr_enabled_flag syntax element is equal to 1, the current image is associated with a GDR image with NoOutputBeforeRecoveryFlag equal to 1, and the PicOrderCntVal of the current image is less than the RpPicOrderCntVal of the associated GDR image;

- sps_video_parameter_set_id больше 0, ols_mode_idc равно 0, и текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям:- sps_video_parameter_set_id is greater than 0, ols_mode_idc is equal to 0, and the current AU contains an image picA that satisfies all of the following conditions:

- PicA имеет PictureOutputFlag, равный 1.- PicA has a PictureOutputFlag equal to 1.

- PicA nuh_layer_id имеет nuhLid больше, чем у текущего изображения.- PicA nuh_layer_id has a nuhLid greater than that of the current image.

- PicA принадлежит к выходному слою OLS (т.е. OutputLayerIdInOls [TargetOlsIdx] [0] равен nuhLid).- PicA belongs to the OLS output layer (i.e. OutputLayerIdInOls[TargetOlsIdx][0] is equal to nuhLid).

- sps_video_parameter_set_id больше 0, ols_mode_idc равно 2, а ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx [nuh_layer_id]] равно 0.- sps_video_parameter_set_id is greater than 0, ols_mode_idc is equal to 2, and ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx [nuh_layer_id]] is equal to 0.

- В противном случае PictureOutputFlag может быть установлено равным pic_output_flag.- Otherwise, PictureOutputFlag may be set to pic_output_flag.

[246] После того, как все срезы текущего изображения были декодированы, текущее декодированное изображение помечено как «используется для краткосрочной ссылки», и каждая запись ILRP в RefPicList [0] или RefPicList [1] помечена как «используется для краткосрочной справки».[246] After all slices of the current image have been decoded, the current decoded image is marked as "used for short-term reference", and each ILRP entry in RefPicList[0] or RefPicList[1] is marked as "used for short-term reference".

[247] В вариантах осуществления, когда каждый слой является набором выходных слоев, PictureOutputFlag может быть установлен равным pic_output_flag, независимо от значения ols_mode_idc.[247] In embodiments where each layer is a set of output layers, PictureOutputFlag may be set to pic_output_flag regardless of the value of ols_mode_idc.

[248] В вариантах осуществелния, PictureOutputFlag устанавливается равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равен 0, ols_mode_idc равен 0, а текущий AU содержит изображение picA, которое удовлетворяет всем следующим условиям: PicA имеет PictureOutputFlag, равный 1, PicA имеет nuh_layer_id nuhLid больше, чем у текущего изображения, и PicA принадлежит к выходному слою OLS (то есть OutputLayerIdInOls [TargetOlsIdx] [0] равно nuhLid ).[248] In embodiments, PictureOutputFlag is set to 0 when sps_video_parameter_set_id is greater than 0, each_layer_is_an_ols_flag is 0, ols_mode_idc is 0, and the current AU contains an image picA that satisfies all of the following conditions: PicA has a PictureOutputFlag equal to 1, PicA has nuh_layer_id nuhLid greater than the current image, and PicA belongs to the OLS output layer (that is, OutputLayerIdInOls[TargetOlsIdx][0] equals nuhLid).

[249] В вариантах осуществления PictureOutputFlag может быть установлен равным 0, когда sps_video_parameter_set_id больше 0, each_layer_is_an_ols_flag равен 0, ols_mode_idc равен 2, а ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx] [GeneralLayerIdx] равен 0.[249] In embodiments, PictureOutputFlag may be set to 0 when sps_video_parameter_set_id is greater than 0, each_layer_is_an_ols_flag is 0, ols_mode_idc is 2, and ols_output_layer_flag [TargetOlsIdx] [GeneralLayerIdx] [GeneralLayerIdx] is 0.

[250] Передискретизация опорного изображения может разрешить адаптивное изменение разрешения в кодированной (многослойной) видеопоследовательности и пространственную масштабируемость по слоям, которые имеют зависимость между слоями, принадлежащими одному и тому же набору выходных слоев.[250] Resampling of a reference image can allow adaptive resampling of the encoded (multi-layer) video sequence and spatial scalability across layers that have dependencies between layers belonging to the same set of output layers.

[251] В вариантах осуществления, показанных на фиг. 23, sps_ref_pic_resampling_enabled_flag сигнализируется в наборе параметров (например, наборе параметров последовательности). Флаг sps_ref_pic_resampling_enabled_flag может указывать, используется ли передискретизация опорного изображения для адаптивного изменения разрешения в кодированной видеопоследовательности, ссылающейся на SPS, или пространственной масштабируемости по слоям. Флаг sps_ref_pic_resampling_enabled_flag, равный 1, может указывать, что передискретизация опорного изображения разрешена, и один или несколько слайсов изображений в CLVS относятся к опорному изображению с другим пространственным разрешением в активной записи списка опорных изображений. Флаг sps_ref_pic_resampling_enabled_flag, равный 0, может указывать, что передискретизация опорного изображения запрещена и ни один слайс изображений в CLVS не ссылается на опорное изображение с другим пространственным разрешением в активной записи списка опорных изображений.[251] In the embodiments shown in FIGS. 23, sps_ref_pic_resampling_enabled_flag is signaled in a parameter set (eg, a sequence parameter set). The sps_ref_pic_resampling_enabled_flag may indicate whether reference picture resampling is used to adaptively resample the encoded video sequence referencing the SPS or for spatial scaling across layers. An sps_ref_pic_resampling_enabled_flag equal to 1 may indicate that reference picture resampling is enabled and one or more image slices in the CLVS refer to a reference picture with a different spatial resolution in the active reference picture list entry. An sps_ref_pic_resampling_enabled_flag of 0 may indicate that reference picture resampling is disabled and that no image slice in CLVS references a reference picture of a different spatial resolution in the active reference picture list entry.

[252] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением либо принадлежит тому же самому слою, либо другому слою, чем слой, содержащий текущее изображение.[252] In embodiments, when sps_ref_pic_resampling_enabled_flag is 1, for the current image, a reference image with a different spatial resolution either belongs to the same layer or a different layer than the layer containing the current image.

[253] В другом варианте осуществления sps_ref_pic_resampling_enabled_flag, равный 1, может указывать, что передискретизация опорного изображения разрешена, и один или несколько слайсов изображений в CLVS ссылаются на опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений. При этом sps_ref_pic_resampling_enabled_flag, равный 0, может указывать, что передискретизация опорного изображения запрещена и ни один слайс изображений в CLVS не ссылается на к опорное изображение с другим пространственным разрешением или другим окном масштабирования в активной записи списка опорных изображений.[253] In another embodiment, sps_ref_pic_resampling_enabled_flag equal to 1 may indicate that resampling of the reference picture is enabled, and one or more image slices in the CLVS reference a reference picture with a different spatial resolution or a different scaling window in the active reference picture list entry. However, an sps_ref_pic_resampling_enabled_flag of 0 may indicate that reference picture resampling is disabled and that no image slice in CLVS references a reference picture with a different spatial resolution or a different scaling window in the active reference picture list entry.

[254] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1, для текущего изображения опорное изображение с другим пространственным разрешением или другим окном масштабирования либо принадлежит тому же самому слою, либо другому слою, чем слой, содержащий текущее изображение.[254] In embodiments, when sps_ref_pic_resampling_enabled_flag is equal to 1, for the current image, a reference image with a different spatial resolution or a different zoom window either belongs to the same layer or a different layer than the layer containing the current image.

[255] В вариантах осуществления sps_res_change_in_clvs_allowed_flag может указывать, изменяется ли разрешение изображения в пределах CLVS или CVS или нет. При этом sps_res_change_in_clvs_allowed_flag, равный 1, может указывать, что пространственное разрешение изображения может изменяться в пределах CLVS со ссылкой на SPS. При этом sps_res_change_in_clvs_allowed_flag, равный 0, может указывать, что пространственное разрешение изображения не изменяется в рамках любого CLVS, ссылающегося на SPS. Если отсутствует, значение sps_res_change_in_clvs_allowed_flag может быть выведено равным 0.[255] In embodiments, sps_res_change_in_clvs_allowed_flag may indicate whether the image resolution is changed within CLVS or CVS or not. However, sps_res_change_in_clvs_allowed_flag equal to 1 may indicate that the spatial resolution of the image can change within the CLVS with reference to the SPS. However, an sps_res_change_in_clvs_allowed_flag of 0 may indicate that the spatial resolution of the image is not changed within any CLVS referencing the SPS. If missing, sps_res_change_in_clvs_allowed_flag may be output as 0.

[256] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1 и sps_res_change_in_clvs_allowed_flag равно 0, передискретизация опорного изображения может использоваться только для пространственной масштабируемости, а не для адаптивного изменения разрешения в CLVS.[256] In embodiments where sps_ref_pic_resampling_enabled_flag is 1 and sps_res_change_in_clvs_allowed_flag is 0, reference image resampling can only be used for spatial scalability and not for adaptive resolution resampling in CLVS.

[257] В вариантах осуществления, когда sps_ref_pic_resampling_enabled_flag равно 1 и sps_res_change_in_clvs_allowed_flag равно 1, передискретизация опорного изображения может использоваться как для пространственной масштабируемости, так и для адаптивного изменения разрешения в CLVS.[257] In embodiments where sps_ref_pic_resampling_enabled_flag is equal to 1 and sps_res_change_in_clvs_allowed_flag is equal to 1, reference image resampling can be used for both spatial scalability and adaptive resolution resampling in CLVS.

[258] Когда sps_ref_pic_resampling_enabled_flag равно 1, sps_res_change_in_clvs_allowed_flag равно 0 и sps_video_parameter_set_id равно 0, pps_scaling_window_explicit_signalling_flag может быть равно 1. Это подразумевает, что параметры окна масштабирования должны явно сигнализироваться, вместо того, чтобы выводить значения из параметров окна согласованности, когда разрешение изображения является постоянным в пределах CLVS или CVS и используется передискретизация опорного изображения.[258] When sps_ref_pic_resampling_enabled_flag is 1, sps_res_change_in_clvs_allowed_flag is 0, and sps_video_parameter_set_id is 0, pps_scaling_window_explicit_signalling_flag can be 1. This implies that the scaling window parameters must be explicitly signaled, rather than inferring values from the consistency window parameters when the image resolution is constant in within CLVS or CVS and oversampling of the reference image is used.

[259] В вариантах осуществления sps_virtual_boundaries_present_flag сигнализируется в SPS, как показано на фиг. 23. Флаг sps_virtual_boundaries_present_flag может указывать, сигнализируется ли информация о виртуальной границе в SPS или нет.[259] In embodiments, sps_virtual_boundaries_present_flag is signaled to the SPS, as shown in FIG. 23. The sps_virtual_boundaries_present_flag may indicate whether virtual boundary information is signaled to the SPS or not.

[260] В вариантах осуществления, sps_virtual_boundaries_present_flag сигнализируется при определенных обстоятельствах только тогда, когда sps_res_change_in_clvs_allowed_flag равен 0, потому что, когда используется передискретизация опорного изображения, информация о виртуальной границе может не сигнализироваться в SPS.[260] In embodiments, sps_virtual_boundaries_present_flag is signaled under certain circumstances only when sps_res_change_in_clvs_allowed_flag is 0 because when reference picture resampling is used, virtual boundary information may not be signaled in the SPS.

[261] В вариантах осуществления sps_virtual_boundaries_present_flag, равный 1, может указывать, что информация о виртуальных границах сигнализируется в SPS. При этом sps_virtual_boundaries_present_flag, равный 0, может указывать, что информация о виртуальных границах не сигнализируется в SPS. Когда в SPS сигнализируется одна или несколько виртуальных границ, операции внутрипетлевой фильтрации через виртуальные границы отключаются на изображениях, ссылающихся на SPS. Операции внутрипетлевой фильтрации включают в себя фильтр удаления блочности, адаптивный фильтр смещения отсчета и операции адаптивного петлевого фильтра. Если отсутствует, значение sps_virtual_boundaries_present_flag выводится равным 0.[261] In embodiments, sps_virtual_boundaries_present_flag equal to 1 may indicate that virtual boundary information is signaled to the SPS. However, sps_virtual_boundaries_present_flag equal to 0 may indicate that virtual boundary information is not signaled to the SPS. When one or more virtual boundaries are signaled in the SPS, intra-loop filtering operations across the virtual boundaries are disabled on images referencing the SPS. Intra-loop filtering operations include deblocking filter, adaptive sample offset filter, and adaptive loop filter operations. If absent, sps_virtual_boundaries_present_flag is output as 0.

[262] В вариантах осуществления sps_subpic_info_present_flag сигнализируется в SPS, как показано на фиг. 23. Флаг sps_subpic_info_present_flag может указывать, сигнализируется ли информация о разделении субизображения в SPS или нет.[262] In embodiments, sps_subpic_info_present_flag is signaled to the SPS, as shown in FIG. 23. The sps_subpic_info_present_flag may indicate whether the subpicture division information is signaled in the SPS or not.

[263] В вариантах осуществления, sps_subpic_info_present_flag условно сигнализируется только тогда, когда sps_res_change_in_clvs_allowed_flag равен 0, потому что, когда используется передискретизация опорного изображения, информация о разделении субизображения может не сигнализироваться в SPS.[263] In embodiments, sps_subpic_info_present_flag is conditionally signaled only when sps_res_change_in_clvs_allowed_flag is 0 because when reference picture resampling is used, subpicture division information may not be signaled in the SPS.

[264] В вариантах осуществления sps_subpic_info_present_flag, равный 1, может указывать, что информация субкадра присутствует для CLVS, и в каждом изображении CLVS может быть одно или несколько субкадров. sps_subpic_info_present_flag, равный 0, может указывать, что информация о субизображении отсутствует для CLVS и что в каждом изображении CLVS есть только одно субизображение. Если отсутствует, значение sps_subpic_info_present_flag может быть выведено равным 0.[264] In embodiments, an sps_subpic_info_present_flag equal to 1 may indicate that subframe information is present for the CLVS, and there may be one or more subframes in each CLVS picture. sps_subpic_info_present_flag equal to 0 may indicate that there is no subpicture information for the CLVS and that there is only one subpicture in each CLVS picture. If missing, sps_subpic_info_present_flag may be output as 0.

[265] В вариантах осуществления, pps_res_change_in_clvs_allowed_flag может сигнализироваться в PPS, как показано на фиг. 24. Значение pps_res_change_in_clvs_allowed_flag в PPS может быть равно значению sps_res_change_in_clvs_allowed_flag в SPS, на который ссылается PPS.[265] In embodiments, pps_res_change_in_clvs_allowed_flag may be signaled in the PPS, as shown in FIG. 24. The value of pps_res_change_in_clvs_allowed_flag in the PPS may be equal to the value of sps_res_change_in_clvs_allowed_flag in the SPS referenced by the PPS.

[266] В том же варианте осуществления информация о ширине и высоте изображения может передаваться в PPS, только когда значение pps_res_change_in_clvs_allowed_flag равно 1. Когда pps_res_change_in_clvs_allowed_flag равно 0, выводится, что значения ширины и высоты изображения равны значениям максимальной ширины и высоты изображения, передаваемым в SPS.[266] In the same embodiment, image width and height information can be passed to the PPS only when the value of pps_res_change_in_clvs_allowed_flag is 1. When pps_res_change_in_clvs_allowed_flag is 0, the image width and height values are inferred to be equal to the maximum image width and height values passed to the SPS .

[267] В вариантах осуществления pps_pic_width_in_luma_samples может указывать ширину каждого декодированного изображения со ссылкой на PPS в единицах отсчетов яркости. При этом pps_pic_width_in_luma_samples не должно быть равно 0, должно быть целым числом, кратным Max (8, MinCbSizeY), и должно быть меньше или равно sps_pic_width_max_in_luma_samples. Если отсутствует, значение pps_pic_width_in_luma_samples может быть выведено равным sps_pic_width_max_in_luma_samples. Когда sps_ref_wraparound_enabled_flag равно 1, значение (CtbSizeY / MinCbSizeY + 1) должно быть меньше или равно значению (pps_pic_width_in_luma_samples / MinCbSizeY - 1). При этом pps_pic_height_in_luma_samples может указывать высоту каждого декодированного изображения со ссылкой на PPS в единицах отсчетов яркости. При эжтом pps_pic_height_in_luma_samples не должно быть равно 0, должно быть целым числом, кратным Max (8, MinCbSizeY), и должно быть меньше или равно sps_pic_height_max_in_luma_samples. Если отсутствует, значение pps_pic_height_in_luma_samples может быть выведено равным sps_pic_height_max_in_luma_samples.[267] In embodiments, pps_pic_width_in_luma_samples may indicate the width of each decoded picture with reference to the PPS in units of luma samples. In this case, pps_pic_width_in_luma_samples must not be equal to 0, must be an integer multiple of Max (8, MinCbSizeY), and must be less than or equal to sps_pic_width_max_in_luma_samples. If missing, the value of pps_pic_width_in_luma_samples may be output to be equal to sps_pic_width_max_in_luma_samples. When sps_ref_wraparound_enabled_flag is 1, the value (CtbSizeY / MinCbSizeY + 1) must be less than or equal to the value (pps_pic_width_in_luma_samples / MinCbSizeY - 1). In this case, pps_pic_height_in_luma_samples can indicate the height of each decoded image with reference to PPS in units of luminance samples. In this case, pps_pic_height_in_luma_samples must not be equal to 0, must be an integer multiple of Max(8, MinCbSizeY), and must be less than or equal to sps_pic_height_max_in_luma_samples. If missing, the value of pps_pic_height_in_luma_samples may be inferred to be equal to sps_pic_height_max_in_luma_samples.

[268] На фиг. 25A-25C показаны блок-схемы, иллюстрирующие примерные процессы 2500A, 2500B и 2500C для декодирования кодированного битового потока видео. В некоторых реализациях один или более блоков процессов с фиг. 25A-25C могут выполняться декодером 210. В некоторых реализациях один или более блоков процессов с фиг. 25A-25C могут выполняться другим устройством или группой устройств, отдельной от декодера 210 или включающего в себя его, например кодером 203.[268] In FIG. 25A-25C are block diagrams illustrating exemplary processes 2500A, 2500B, and 2500C for decoding an encoded video bitstream. In some implementations, one or more process blocks of FIG. 25A-25C may be executed by decoder 210. In some implementations, one or more process blocks of FIGS. 25A-25C may be performed by another device or group of devices separate from or including decoder 210, such as encoder 203.

[269] Как показано на фиг. 25A, процесс 2500A может включать в себя получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS) (блок 2511). В вариантах осуществления первый флаг может соответствовать sps_ref_pic_resampling_enabled_flag.[269] As shown in FIG. 25A, process 2500A may include obtaining from the coded video bitstream a first flag indicating that resampling of a reference picture is enabled for the coded video sequence (CVS) (block 2511). In embodiments, the first flag may correspond to sps_ref_pic_resampling_enabled_flag.

[270] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS (блок 2512). В вариантах осуществления первый флаг может соответствовать sps_res_change_in_clvs_allowed_flag.[270] As further shown in FIG. 25A, process 2500A may include determining the value of a second flag indicating whether the image resolution is changed in CVS (block 2512). In embodiments, the first flag may correspond to sps_res_change_in_clvs_allowed_flag.

[271] Как дополнительно показано на фиг. 25А, процесс 2500А может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2513).[271] As further shown in FIG. 25A, process 2500A may include determining whether the value of the second flag indicates whether the image resolution is changed in CVS (block 2513).

[272] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя, на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2515), декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC) (блок 2514).[272] As further shown in FIG. 25A, process 2500A may include, based on the value of a second flag indicating that the image resolution is being changed in CVS (YES at block 2515), decoding the CVS using reference image resampling for spatial scalability and adaptive resolution resampling (ARC) (block 2514 ).

[273] Как дополнительно показано на фиг. 25A, процесс 2500A может включать в себя, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2513), декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC (блок 2515).[273] As further shown in FIG. 25A, process 2500A may include, based on the value of the second flag indicating that the image resolution is not changed in CVS (NO at block 2513), decoding the CVS using reference picture resampling for spatial scalability and without using reference picture resampling for ARC ( block 2515).

[274] Как показано на фиг. 25В, процесс 2500В может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2523). В вариантах осуществления блок 2523 процесса 2500В может соответствовать блоку 2513 процесса 2500A.[274] As shown in FIG. 25B, process 2500B may include determining whether the value of the second flag indicates whether the image resolution is changed in CVS (block 2523). In embodiments, block 2523 of process 2500B may correspond to block 2513 of process 2500A.

[275] Как дополнительно показано на фиг. 25B, процесс 2500B может включать, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2523), получение третьего флага, указывающего, сигнализируется ли информация о виртуальной границе (блок 2525). В вариантах осуществления третий флаг может соответствовать sps_virtual_boundaries_present_flag.[275] As further shown in FIG. 25B, process 2500B may include, based on the value of a second flag indicating that the image resolution is not changed in CVS (NO at block 2523), obtaining a third flag indicating whether virtual boundary information is signaled (block 2525). In embodiments, the third flag may correspond to sps_virtual_boundaries_present_flag.

[276] Как дополнительно показано на фиг. 25B, процесс 2500B может включать: на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2523), третий флаг может не сигнализироваться (блок 2524).[276] As further shown in FIG. 25B, process 2500B may include: based on the value of a second flag indicating that the image resolution is being changed in CVS (YES at block 2523), the third flag may not be signaled (block 2524).

[277] Как показано на фиг. 25C, процесс 2500C может включать определение, указывает ли значение второго флага, изменяется ли разрешение изображения в CVS (блок 2533). В вариантах осуществления блок 2533 процесса 2500C может соответствовать блоку 2513 процесса 2500A.[277] As shown in FIG. 25C, process 2500C may include determining whether the value of the second flag indicates whether the image resolution is changed in CVS (block 2533). In embodiments, block 2533 of process 2500C may correspond to block 2513 of process 2500A.

[278] Как дополнительно показано на фиг. 25C, процесс 2500C может включать, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS (НЕТ в блоке 2533), получение четвертого флага, указывающего, сигнализируется ли информация о разделении субизображения (блок 2535). В вариантах осуществления четвертый флаг может соответствовать sps_subpic_info_present_flag.[278] As further shown in FIG. 25C, process 2500C may include, based on the value of a second flag indicating that the image resolution is not changed in CVS (NO at block 2533), obtaining a fourth flag indicating whether sub-image division information is signaled (block 2535). In embodiments, the fourth flag may correspond to sps_subpic_info_present_flag.

[279] Как дополнительно показано на фиг. 25C, процесс 2500C может включать: на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS (ДА в блоке 2533), четвертый флаг может не сигнализироваться (блок 2534).[279] As further shown in FIG. 25C, process 2500C may include: based on the value of a second flag indicating that the image resolution is being changed in CVS (YES at block 2533), the fourth flag may not be signaled (block 2534).

[280] В вариантах осуществления один или несколько блоков процессов 2500A, 2500B и 2500C могут быть объединены в любом порядке. Кроме того, хотя на фиг. 25A-25C показаны примерные блоки процессов 2500A, 2500B и 2500C, в некоторых реализациях процессы 2500A, 2500B и 2500C могут включать в себя дополнительные блоки, меньшее количество блоков, различные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 25A-25C. Дополнительно или альтернативно, два или более блока процессов 2500A, 2500B и 2500C могут выполняться параллельно.[280] In embodiments, one or more process blocks 2500A, 2500B, and 2500C may be combined in any order. In addition, although in FIG. 25A-25C show exemplary process blocks 2500A, 2500B, and 2500C; in some implementations, processes 2500A, 2500B, and 2500C may include additional blocks, fewer blocks, different blocks, or blocks arranged differently than those depicted in FIG. 25A-25C. Additionally or alternatively, two or more process blocks 2500A, 2500B, and 2500C may be executed in parallel.

[281] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе, для осуществления одного или более из предложенных способов.[281] In addition, the proposed methods may be implemented by processing circuits (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program that is stored on a non-transitory computer-readable medium to implement one or more of the proposed methods.

[282] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг.26 показана компьютерная система 2600, подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.[282] The methods described above may be implemented in computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, FIG. 26 illustrates a computer system 2600 suitable for implementing certain embodiments of the disclosed subject matter.

[283] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и и т. п., центральными процессорами компьютера (CPU), графическими процессорами (GPU) и т. п.[283] Computer software may be encoded using any suitable machine code or computer language that may be subject to assembly, compilation, linking, or similar mechanisms to create code containing instructions that can be executed directly or through interpretation, execution of microcode, and etc., computer central processing units (CPU), graphic processing units (GPU), etc.

[284] Инструкции могут исполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т. п.[284] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, Internet of Things devices, and the like.

[285] Компоненты, показанные на фиг.26 для компьютерной системы 2600, являются примерными по своей природе и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы 2600.[285] The components shown in FIG. 26 for computer system 2600 are exemplary in nature and are not intended to suggest any limitations as to the scope of use or functionality of computer software implementing embodiments of the present invention. The configuration of components should also not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of computer system 2600.

[286] Компьютерная система 2600 может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).[286] Computer system 2600 may include certain human-machine interface input devices. Such a human-machine interface input device may respond to input from one or more human users through, for example, tactile input (e.g., key presses, swipes, control glove movement), audio input (e.g., voice, hand clapping), visual input (for example: gestures), olfactory input (not shown). Human-machine interface devices can also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, ambient sound), images (e.g. scanned images, photographic images captured from a camera for still images), video (e.g. 2D video, 3D video, including stereoscopic video).

[287] Устройства ввода с человеческо-машинным интерфейсом могут включать в себя одно или более из (только одно из каждого изображенного): клавиатура 2601, мышь 2602, трекпад 2603, сенсорный экран 2610 и связанный графический адаптер 2650, управляющая перчатка, джойстик 2605, микрофон 2606, сканер 2607, камера 2608.[287] Human-machine interface input devices may include one or more of (only one of each illustrated): keyboard 2601, mouse 2602, trackpad 2603, touch screen 2610 and associated graphics adapter 2650, control glove, joystick 2605, microphone 2606, scanner 2607, camera 2608.

[288] Компьютерная система 2600 также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 2610, управляющей перчатки или джойстика 2605, но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода, устройства вывода звука (например: динамики 2609, наушники (не изображены)), устройства вывода изображения (например, экраны 2610, включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).[288] The computer system 2600 may also include certain human-machine interface output devices. Such human-machine interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such HMI output devices may include haptic output devices (e.g., haptic feedback from touch screen 2610, control glove, or joystick 2605, but there may also be haptic feedback devices that do not serve as input devices, devices audio output devices (for example: speakers 2609, headphones (not shown)), image output devices (for example, screens 2610, including CRT screens, LCD screens, plasma screens, OLED screens, each of which may or may not have input capabilities touch screens, each with or without haptic feedback capability - some of which may be capable of producing two-dimensional visual output or more than three-dimensional output through means such as stereographic output; virtual reality glasses (not shown), holographic displays and smoke displays tanks (not shown)) and printers (not shown).

[289] Компьютерная система (2600) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (2620) с CD/DVD или подобными носителями (2621), флэш-накопитель (2622), съемный жесткий диск или твердотельный накопитель (2623), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т. п.[289] The computer system (2600) may also include human accessible storage devices and associated media, such as optical media, including CD/DVD ROM/RW (2620) with CD/DVD or similar media (2621), flash drive (2622), removable hard drive or solid state drive (2623), previously developed magnetic media such as tape and floppy disk (not pictured), specialized ROM/ASIC/PLD based devices such as dongles (not pictured) and so on.

[290] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.[290] Those skilled in the art will also understand that the term "machine readable medium" as used in connection with the subject matter disclosed herein does not cover transmission media, carrier waves, or other time signals.

[291] Компьютерная система (2600) также может включать в себя интерфейс к одной или более коммуникационным сетям (955). Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т. д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные вычислительные сети (LAN), сотовые сети, включая глобальные системы мобильной связи (GSM), третьего поколения (3G), четвертого поколения (4G), пятого поколения (5G), сети стандарта "Долгосрочное развитие" (LTE) и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CAN-шину, и так далее. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры (954), которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (например, к портам универсальной последовательной шины (USB) компьютерной системы 2600); другие обычно интегрированы в ядро компьютерной системы 2600 путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Например, сеть 2655 может быть подключена к периферийной шине 2649 с использованием сетевого интерфейса 2654. Используя любую из этих сетей, компьютерная система 2600 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов (954) могут использоваться определенные протоколы и стеки протоколов, как описано выше.[291] The computer system (2600) may also include an interface to one or more communications networks (955). Networks can be, for example, wireless, wired, optical. Additionally, networks can be LAN, WAN, metropolitan, automotive and industrial, real-time, latency tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless local area networks (LAN), cellular networks, including global systems for mobile communications (GSM), third generation (3G), fourth generation (4G), fifth generation (5G), Long Term Evolution (LTE) networks, etc., wired television or wireless global digital networks, including cable television, satellite television and terrestrial broadcast television, automotive and industrial, including CAN bus, and so on. Some networks typically require external network interface adapters (954) that are connected to certain general purpose data ports or peripheral buses (949) (for example, the universal serial bus (USB) ports of a 2600 computer system); others are typically integrated into the core of the computer system 2600 by connecting to a system bus, as described below (for example, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). For example, network 2655 may be connected to peripheral bus 2649 using network interface 2654. Using any of these networks, computer system 2600 can communicate with other entities. Such communication may be unidirectional, receive only (for example, broadcast television), unidirectional, send only (for example, CAN bus to certain CAN bus devices), or bidirectional, such as for other computer systems using a local or wide area digital network . Each of these networks and network interfaces (954) may use specific protocols and protocol stacks, as described above.

[292] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру 2640 компьютерной системы 2600.[292] The aforementioned human-machine interface devices, human-accessible storage devices, and network interfaces may be attached to the core 2640 of the computer system 2600.

[293] Ядро (2640) может включать в себя один или несколько центральных процессоров (CPU) (2641), графических процессоров (GPU) (2642), специализированных программируемых процессоров в виде программируемых вентильных областей (FPGA) (2643), аппаратные ускорители (2644) для определенных задач, и т. д. Эти устройства, наряду с постоянным запоминающим устройством (ROM) 2645, оперативным запоминающим устройством (RAM) 2646, внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т. п. 2647, могут быть подключены через системную шину 2648. В некоторых компьютерных системах системная шина 2648 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т. п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 2648 ядра, либо через периферийную шину 2649. Архитектура периферийной шины включает соединение периферийных компонентов (PCI), USB и т.п.[293] The core (2640) may include one or more central processing units (CPUs) (2641), graphics processing units (GPUs) (2642), field programmable gate area (FPGA) processors (2643), hardware accelerators ( 2644) for specific tasks, etc. These devices, along with read-only memory (ROM) 2645, random access memory (RAM) 2646, internal mass storage such as internal hard drives not accessible to the user, solid-state drives (SSD ) etc. 2647, can be connected via the 2648 system bus. On some computer systems, the 2648 system bus may be available as one or more physical connectors to allow expansion with additional CPUs, GPUs, etc. Peripherals can be connected either directly to the core system bus 2648 or via a peripheral bus 2649. The peripheral bus architecture includes peripheral component interconnection (PCI), USB, etc.

[294] CPU 2641, GPU 2642, FGPA 2643 и ускорители 2644 могут выполнять определенные инструкции, которые в комбинации могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 2645 или RAM 2646. Переходные данные также могут храниться в RAM 2646, тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости 2647. Быстрое хранение и извлечение на любое из запоминающих устройств могут быть доступны посредством использования кэш-памяти, которая может быть тесно связана с одним или более CPU 2641, GPU 2642, ЗУ 2647 большой емкости, ROM 2645, RAM 2646 и т. п.[294] The CPU 2641, GPU 2642, FGPA 2643, and accelerators 2644 may execute certain instructions that, in combination, may constitute the aforementioned computer code. This computer code may be stored in ROM 2645 or RAM 2646. Transient data may also be stored in RAM 2646, while persistent data may be stored, for example, in the internal mass storage device 2647. Rapid storage and retrieval to either storage device can be accessed by using a cache memory that may be closely coupled to one or more of the CPU 2641, GPU 2642, mass storage device 2647, ROM 2645, RAM 2646, etc.

[295] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего изобретения, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.[295] A computer-readable medium may contain computer code for performing various computer-implemented operations. The media and computer code may be specifically designed and constructed for the purposes of the present invention, or they may be well known and available to those skilled in the computer software art.

[296] В качестве примера, но не ограничения, компьютерная система, имеющая архитектуру (2600) и, в частности, ядро (2640), может обеспечивать функциональность за счет процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т. п.), исполняющего программное обеспечение, воплощенное на одном или более материальных машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 2640, которые имеют невременную природу, такими как внутреннее ЗУ 2647 большой емкости или ROM 2645. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 2640. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (2640) и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т. п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM (2646) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 2644), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (IC)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее изобретение включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.[296] By way of example, and not limitation, a computer system having an architecture (2600) and, in particular, a core (2640), may provide functionality through processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.). etc.) executing software embodied on one or more tangible machine-readable media. Such computer-readable media may be media associated with user-accessible mass storage, as described above, as well as certain storage devices of core 2640 that are non-transitory in nature, such as internal mass storage 2647 or ROM 2645. Software implementing various embodiments implementation of the present invention may be stored in such devices and executed by the core 2640. The computer readable medium may include one or more storage devices or chips according to specific needs. Software may cause the core (2640) and, in particular, processors therein (including CPUs, GPUs, FPGAs, etc.) to execute certain processes or certain portions of specific processes described herein, including defining data structures stored in RAM (2646) and modifying such data structures according to processes defined by the software. In addition or alternatively, a computer system may provide functionality as a result of logic built into hardware circuitry or otherwise embodied in circuitry (e.g., accelerator 2644), which may operate instead of or in conjunction with software to perform certain processes or portions of specific processes described in this document. A reference to software may include logic and vice versa where applicable. Reference to a computer-readable medium may include circuitry (eg, an integrated circuit (IC)) storing software for execution, circuitry embodying logic for execution, or both, where applicable. The present invention includes any suitable combination of hardware and software.

[297] Хотя это описание раскрывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем изобретения. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы изобретения и, таким образом, находятся в рамках его сущности и объема.[297] Although this description discloses several exemplary embodiments, there are variations, permutations, and various substitute equivalents that fall within the scope of the invention. Thus, it will be appreciated that those skilled in the art will be able to develop numerous systems and methods that, although not expressly shown or described herein, embody the principles of the invention and are thus within the spirit and scope thereof.

Claims (42)

1. Способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, содержащий:1. A method for decoding an encoded video bitstream using at least one processor, comprising: получение из кодированного битового потока видео первого флага, указывающего, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS);obtaining from the coded video bitstream a first flag indicating that resampling of the reference picture is enabled for the coded video sequence (CVS); определение значения второго флага, указывающего, изменяется ли разрешение изображения в CVS;determining a value of a second flag indicating whether the image resolution is changed in CVS; на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); иbased on the value of the second flag indicating that the image resolution is changed in the CVS, decoding the CVS using resampling of the reference image for spatial scalability and adaptive resolution resampling (ARC); And на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодирование CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC,based on the value of the second flag indicating that the image resolution is not changed in CVS, CVS decoding using reference picture resampling for spatial scalability and without using reference picture resampling for ARC, причем первый флаг и второй флаг сигнализируют в наборе параметров последовательности (SPS); иwherein the first flag and the second flag are signaled in a sequence parameter set (SPS); And при этом на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения не изменяется в CVS,wherein, based on the value of the second flag indicating that the image resolution is not changed in CVS, a fifth flag included in the Picture Parameter Set (PPS) referring to the SPS indicates that the image resolution is not changed in CVS, причем на основе пятого флага, указывающего, что разрешение изображения не изменяется в CVS, явно не сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS, иwherein, based on the fifth flag indicating that the image resolution is not changed in the CVS, at least one of the width and height of the image corresponding to the PPS is not explicitly signaled, and при этом по меньшей мере одно из ширины и высоты выводят равным по меньшей мере одному из максимальной ширины и максимальной высоты, сигнализируемых в SPS.wherein at least one of the width and the height is output equal to at least one of the maximum width and maximum height signaled in the SPS. 2. Способ по п. 1, в котором CVS является кодированной послойной видеопоследовательностью (CLVS).2. The method of claim 1, wherein the CVS is a coded layered video sequence (CLVS). 3. Способ по п. 1, в котором второй флаг не сигнализируют в кодированном битовом потоке видео, и3. The method of claim 1, wherein the second flag is not signaled in the encoded video bitstream, and при этом значение второго флага выводят для указания того, что разрешение изображения не изменяется в CVS.the value of the second flag is output to indicate that the image resolution is not changed in CVS. 4. Способ по п. 1, дополнительно содержащий:4. The method according to claim 1, additionally containing: на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получение третьего флага, указывающего, сигнализируется ли информация о виртуальной границе.based on the value of the second flag indicating that the image resolution is not changed in CVS, obtaining a third flag indicating whether virtual boundary information is signaled. 5. Способ по п. 1, дополнительно содержащий:5. The method according to claim 1, additionally containing: на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получение четвертого флага, указывающего, сигнализируется ли информация о разделении субизображения.based on the value of the second flag indicating that the image resolution is not changed in CVS, obtaining a fourth flag indicating whether sub-image division information is signaled. 6. Способ по п. 1, в котором на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, не сигнализируются параметры окна масштабирования.6. The method of claim 1, wherein based on the value of the second flag indicating that the image resolution is not changed in CVS, no zoom window parameters are signaled. 7. Способ по п. 1, в котором на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения изменяется в CVS, и7. The method of claim 1, wherein, based on the value of the second flag indicating that the image resolution is changed in CVS, the fifth flag included in the picture parameter set (PPS) referring to the SPS indicates that the image resolution is changed in CVS, And при этом на основе пятого флага, указывающего, что разрешение изображения изменяется в CVS, явно сигнализируют по меньшей мере одно из ширины и высоты изображения, соответствующего PPS.wherein, based on the fifth flag indicating that the image resolution is changed in the CVS, at least one of the width and height of the image corresponding to the PPS is explicitly signaled. 8. Устройство для декодирования кодированного битового потока видео, содержащее:8. A device for decoding an encoded video bitstream, comprising: по меньшей мере один элемент памяти, конфигурированный для хранения программного кода; иat least one memory element configured to store program code; And по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя:at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: первый код получения, конфигурированный предписывать по меньшей мере одному процессору получать из кодированного битового потока видео первый флаг, указывающий, что передискретизация опорного изображения разрешена для кодированной видеопоследовательности (CVS);a first acquisition code configured to cause the at least one processor to obtain, from the coded video bitstream, a first flag indicating that reference picture resampling is enabled for the coded video sequence (CVS); код определения, конфигурированный предписывать по меньшей мере одному процессору определять значение второго флага, указывающего, изменяется ли разрешение изображения в CVS;determination code configured to cause the at least one processor to determine the value of a second flag indicating whether the image resolution is changed in CVS; первый код декодирования, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и адаптивного изменения разрешения (ARC); иa first decoding code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is changed in the CVS, to decode the CVS using reference image resampling for spatial scalability and adaptive resolution resampling (ARC); And второй код декодирования, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, декодировать CVS с использованием передискретизации опорного изображения для пространственной масштабируемости и без использования передискретизации опорного изображения для ARC;a second decoding code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is not changed in the CVS, to decode the CVS using reference picture resampling for spatial scalability and without using reference picture resampling for ARC; причем первый флаг и второй флаг сигнализируются в наборе параметров последовательности (SPS),wherein the first flag and the second flag are signaled in the Sequence Parameter Set (SPS), причем на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения не изменяется в CVS,wherein, based on the value of the second flag indicating that the image resolution is not changed in CVS, a fifth flag included in the Picture Parameter Set (PPS) referring to the SPS indicates that the image resolution is not changed in CVS, причем на основе пятого флага, указывающего, что разрешение изображения не изменяется в CVS, явно не сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS, иwherein, based on the fifth flag indicating that the image resolution is not changed in the CVS, at least one of the width and height of the image corresponding to the PPS is not explicitly signaled, and при этом по меньшей мере одно из ширины и высоты выводится равным по меньшей мере одному из максимальной ширины и максимальной высоты, сигнализируемых в SPS.wherein at least one of the width and the height is output equal to at least one of the maximum width and maximum height signaled in the SPS. 9. Устройство по п. 8, в котором CVS является кодированной послойной видеопоследовательностью (CLVS).9. The apparatus of claim 8, wherein the CVS is a coded layered video sequence (CLVS). 10. Устройство по п. 8, в котором второй флаг не сигнализируется в кодированном битовом потоке видео, и10. The apparatus of claim 8, wherein the second flag is not signaled in the encoded video bitstream, and при этом значение второго флага выводится для указания того, что разрешение изображения не изменяется в CVS.the value of the second flag is output to indicate that the image resolution is not changed in CVS. 11. Устройство по п. 8, в котором программный код дополнительно включает:11. The device according to claim 8, in which the program code additionally includes: второй код получения, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получать третий флаг, указывающий, сигнализируется ли информация о виртуальной границе.a second acquisition code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is not changed in the CVS, to obtain a third flag indicating whether the virtual boundary information is signaled. 12. Устройство по п. 8, в котором программный код дополнительно включает:12. The device according to claim 8, in which the program code additionally includes: третий код получения, конфигурированный предписывать по меньшей мере одному процессору, на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, получать четвертый флаг, указывающий, сигнализируется ли информация о разделении субизображения.a third acquisition code configured to cause the at least one processor, based on the value of the second flag indicating that the image resolution is not changed in the CVS, to obtain a fourth flag indicating whether sub-image division information is signaled. 13. Устройство по п. 8, в котором на основе значения второго флага, указывающего, что разрешение изображения не изменяется в CVS, не сигнализируются параметры окна масштабирования.13. The apparatus of claim 8, wherein based on the value of the second flag indicating that the image resolution is not changed in CVS, no zoom window parameters are signaled. 14. Устройство по п. 8, в котором на основе значения второго флага, указывающего, что разрешение изображения изменяется в CVS, пятый флаг, включенный в набор параметров изображения (PPS), ссылающийся на SPS, указывает, что разрешение изображения изменяется в CVS, и14. The apparatus of claim 8, wherein, based on the value of the second flag indicating that the image resolution is changed in CVS, the fifth flag included in the picture parameter set (PPS) referring to the SPS indicates that the image resolution is changed in CVS, And при этом на основе пятого флага, указывающего, что разрешение изображения изменяется в CVS, явно сигнализируется по меньшей мере одно из ширины и высоты изображения, соответствующего PPS.wherein, based on the fifth flag indicating that the image resolution is changed in the CVS, at least one of the width and height of the image corresponding to the PPS is explicitly signaled. 15. Невременный машиночитаемый носитель, хранящий инструкции, содержащие: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования битового потока видео предписывают одному или более процессорам:15. A non-transitory computer-readable medium storing instructions containing: one or more instructions that, when executed by one or more processors of a video bitstream decoding device, instruct one or more processors to: исполнять этапы способа по любому из пп. 1-7.carry out the steps of the method according to any one of paragraphs. 1-7.
RU2021131294A 2020-05-20 2021-04-12 Methods of signaling combination of reference image resampling and spatial scalability RU2810966C1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US63/027,835 2020-05-20
US63/035,647 2020-06-05
US63/036,342 2020-06-08
US63/036,174 2020-06-08
US17/211,236 2021-03-24

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023135882A Division RU2023135882A (en) 2020-05-20 2021-04-12 METHODS OF SIGNALING A COMBINATION OF REFERENCE IMAGE RESAMPLING AND SPATIAL SCALABILITY

Publications (1)

Publication Number Publication Date
RU2810966C1 true RU2810966C1 (en) 2024-01-09

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665968B2 (en) * 2009-09-30 2014-03-04 Broadcom Corporation Method and system for 3D video coding using SVC spatial scalability
US20150304671A1 (en) * 2012-07-01 2015-10-22 Sharp Kabushiki Kaisha Device for signaling a long-term reference picture in a parameter set
US20170195670A1 (en) * 2012-04-11 2017-07-06 Texas Instruments Incorporated Virtual Boundary Processing Simplification for Adaptive Loop Filtering (ALF) in Video Coding
US20170353718A1 (en) * 2012-10-09 2017-12-07 Cisco Technology, Inc. Output Management of Prior Decoded Pictures at Picture Format Transitions in Bitstreams
RU2017125451A (en) * 2014-12-31 2019-02-06 Нокиа Текнолоджиз Ой Inter-layer prediction for scalable encoding and decoding of video information

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8665968B2 (en) * 2009-09-30 2014-03-04 Broadcom Corporation Method and system for 3D video coding using SVC spatial scalability
US20170195670A1 (en) * 2012-04-11 2017-07-06 Texas Instruments Incorporated Virtual Boundary Processing Simplification for Adaptive Loop Filtering (ALF) in Video Coding
US20150304671A1 (en) * 2012-07-01 2015-10-22 Sharp Kabushiki Kaisha Device for signaling a long-term reference picture in a parameter set
US20170353718A1 (en) * 2012-10-09 2017-12-07 Cisco Technology, Inc. Output Management of Prior Decoded Pictures at Picture Format Transitions in Bitstreams
RU2017125451A (en) * 2014-12-31 2019-02-06 Нокиа Текнолоджиз Ой Inter-layer prediction for scalable encoding and decoding of video information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Byeongdoo Choi et al., "AHG8: Signaling and Filtering for Reference Picture Resampling", JVET-O0332, 15th Meeting, Gothenburg, July 2019. Stephan Wenger et al., "[AHG19] On Signaling of Adaptive Resolution Change", JVET-N0052, 14th Meeting, Geneva, March 2019. *

Similar Documents

Publication Publication Date Title
JP7472157B2 (en) Method, apparatus and computer program for video coding
US11706431B2 (en) Method for output layer set mode in multilayered video stream
JP7297919B2 (en) A Method for Adaptive Parameter Set Referencing and Constraints in Coded Video Streams
US20220182679A1 (en) Method for output layer set for multilayered video stream
AU2023203644A1 (en) Techniques for Signaling Combination of Reference Picture Resampling and Spatial Scalability
US11863780B2 (en) Method for indication of sublayer numbers in multilayered video stream
US11936891B2 (en) Method for derivation on sublayer-wise output layer set
RU2810966C1 (en) Methods of signaling combination of reference image resampling and spatial scalability
RU2806281C1 (en) Method for signaling sub-image separation in an encoded video stream
RU2807213C1 (en) Method for outputting a set of layers for multilayer video stream
RU2803890C1 (en) Layer alignment method in encoded video stream
RU2809562C1 (en) Induction method based on a set of output layers by sublayer
RU2814858C1 (en) Method of signaling division of rectangular slice in encoded video stream
RU2804274C1 (en) Image output method with a set of output layers
RU2799572C1 (en) Method for signaling a set of output layers with a subimage
RU2787579C1 (en) Allocation of a random access point and image display in an encoded video stream
RU2785687C1 (en) Method for signaling a mixed type of nal block and splitting into subimages in an encoded video stream
RU2777924C1 (en) Method for signaling a set of output levels with a subimage
RU2808148C1 (en) Method and device for video coding
RU2785689C1 (en) Technique for extracting a subimage bit stream from a stream of encoded video data
RU2783382C1 (en) Signalling of inter-layer prediction in a video bitstream
AU2021246616B2 (en) Method for signaling subpicture partitioning in coded video stream
RU2783961C1 (en) Method for indicating the number of sublevels in a multilevel video stream
RU2787213C1 (en) Method for restricting referencing to a set of parameters in an encoded video stream
US20230388487A1 (en) Method for derivation of picture output for non-referenced picture in coded video stream