RU2783382C1 - Signalling of inter-layer prediction in a video bitstream - Google Patents

Signalling of inter-layer prediction in a video bitstream Download PDF

Info

Publication number
RU2783382C1
RU2783382C1 RU2021128764A RU2021128764A RU2783382C1 RU 2783382 C1 RU2783382 C1 RU 2783382C1 RU 2021128764 A RU2021128764 A RU 2021128764A RU 2021128764 A RU2021128764 A RU 2021128764A RU 2783382 C1 RU2783382 C1 RU 2783382C1
Authority
RU
Russia
Prior art keywords
layer
vps
parsing
picture
list
Prior art date
Application number
RU2021128764A
Other languages
Russian (ru)
Inventor
Бёнду ЧОЙ
Стефан ВЕНГЕР
Шань ЛЮ
Original Assignee
Тенсент Америка Ллс
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 Тенсент Америка Ллс filed Critical Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2783382C1 publication Critical patent/RU2783382C1/en

Links

Images

Abstract

FIELD: video data processing.
SUBSTANCE: invention relates to video encoding tools. Parsing of at least one video parameter set (VPS) containing at least one syntax element indicating whether at least one level in the scalable bitstream is one of the dependent layer of the scalable bitstream and the independent layer of the scalable bitstream is performed. A picture is decoded at the dependent level by analysing and interpreting the list of inter-layer reference pictures (ILRP). Each of a picture at the independent layer and another picture at the dependent layer are performed without parsing and interpreting the ILRP list.
EFFECT: increased efficiency of video encoding.
20 cl, 14 dwg

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИCROSS-REFERENCE TO RELATED APPLICATIONS

[0001] Настоящее изобретение испрашивает приоритет предварительной заявки США №62/903,647, поданной 20 сентября 2019 г., и приоритет патентной заявки США №17/019,567, поданной 14 сентября 2020 г., содержание которой целиком включено в состав настоящей заявки.[0001] The present invention claims priority of U.S. Provisional Application No. 62/903,647, filed September 20, 2019, and priority of U.S. Patent Application No. 17/019,567, filed September 14, 2020, the contents of which are incorporated herein in their entirety.

УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION

1. Область техники1. Technical field

[0002] Раскрытое изобретение относится к кодированию и декодированию видео, а более конкретно - к сигнализации межуровневого предсказания в битовом потоке видео.[0002] The disclosed invention relates to video coding and decoding, and more specifically to inter-layer prediction signaling in a video bitstream.

2. Описание существующего уровня техники2. Description of the prior art

[0003] Кодирование и декодирование видео с использованием предсказания между изображениями с компенсацией движения известно уже несколько десятилетий. Цифровое видео без сжатия может состоять из последовательности изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую «частотой кадров»), например, 60 изображений в секунду, или 60 Гц. К несжатым видеоданным предъявляются серьезные требования в отношении битовой скорости передаче. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 6000 Гб.[0003] Video encoding and decoding using motion-compensated inter-picture prediction has been known for several decades. An uncompressed digital video may consist of a sequence of images, each of which has a spatial size of, for example, 1920×1080 luminance samples and their associated chrominance samples. An image sequence may have a fixed or variable image rate (informally also referred to as a "frame rate"), such as 60 images per second, or 60 Hz. Uncompressed video data has significant bit rate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (resolution of 1920x1080 luminance samples at 60Hz frame rate) requires about 1.5Gbps of bandwidth. An hour of such video requires more than 6000 GB of memory.

[0004] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Для этого может применяться сжатие как без потерь, так и с потерями. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, так чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. Достижимая степень сжатия может отражать, что более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.[0004] One goal of video encoding and decoding may be to reduce redundancy in the input video signal by compressing. Compression can help to alleviate the aforementioned bandwidth or storage requirements, in some cases by two orders of magnitude or more. For this, both lossless and lossy compression can be used. Lossless compression refers to techniques for reconstructing an exact copy of the original signal from the compressed original signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the discrepancy between the original and reconstructed signals is small enough that the reconstructed signal can be used for the intended application. Lossy compression is widely used for video. The amount of distortion allowed depends on the application; for example, users of some custom streaming applications can tolerate higher distortion than users of broadcast TV applications. The achievable compression ratio may reflect that a higher allowed/allowable distortion may result in a higher compression ratio.

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

[0006] Исторически видеокодеры и видеодекодеры были предназначены для работы с заданным размером изображения, который в большинстве случаев для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного временного кадра с несколькими изображениями был определен и оставался постоянным. Например, что касается MPEG-2, известно, что конструкции системы изменяют горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов, как активность сцены, но только для I-изображений, что обычно является обычным для GOP. Повторная дискретизация опорных изображений для использования различных разрешений в рамках CVS известна, например, из стандарта ITU-T Rec. Н.263, приложение Р. Однако в этом случае размер изображения не изменяется, повторная дискретизация выполняется только для опорных изображений, в результате этого потенциально используются только части изображения (в случае понижающей дискретизации) или только части захватываемой сцены (в случае повышающей дискретизации). Кроме того, стандарт Н.263, приложение Q допускает повторную дискретизацию отдельного макроблока с коэффициентом два (в каждом измерении), в сторону повышения или понижения. Опять же, размер изображения не изменяется. Размер макроблока фиксирован в Н.263, и поэтому его не требуется передавать.[0006] Historically, video encoders and video decoders were designed to work with a given image size, which in most cases for a coded video sequence (CVS, Coded Video Sequence), a group of pictures (GOP, Group of Pictures) or a similar multi-picture time frame was defined and remained constant. For example, with respect to MPEG-2, system designs are known to change the horizontal resolution (and hence image size) depending on factors such as scene activity, but only for I-pictures, which is typically the case with GOP. The resampling of reference pictures to use different resolutions within CVS is known, for example, from the ITU-T Rec. H.263 Annex P. However, in this case the image size is not changed, only the reference pictures are resampled, potentially using only parts of the image (in the case of downsampling) or only parts of the captured scene (in the case of upsampling). In addition, H.263 Annex Q allows single macroblock resampling by a factor of two (in each dimension), up or down. Again, the image is not resized. The macroblock size is fixed in H.263 and therefore does not need to be transmitted.

[0007] Изменение размера изображения в предсказанных изображениях стало господствующей тенденцией в современных способах кодирования видео. Например. VP9 предоставляет возможность повторной дискретизации опорных изображений (RPR, Reference Picture Resampling) и изменения разрешения для всего изображения. Аналогично, некоторые решения для VVC (включая, например, решение под авторством Hendry и др., «Об изменении адаптивного разрешения (ARC) для VVC», документ организации Joint Video Team JVET-M0135-vl, от 9-19 января 2019 г., целиком включенный в настоящий документ) предоставляют возможность повторной дискретизации целых опорных изображений с другим, более высоким или более низким, разрешением. В этом документе предлагается кодировать различные варианты разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.[0007] Image resizing in predicted images has become mainstream in current video coding techniques. For example. VP9 provides the ability to resample reference pictures (RPR, Reference Picture Resampling) and change the resolution for the entire image. Likewise, some solutions for VVC (including, for example, the solution by Hendry et al., "Adaptive Resolution Change (ARC) for VVC", Joint Video Team document JVET-M0135-vl, January 9-19, 2019. , incorporated herein in its entirety) provide the possibility of resampling entire reference pictures with a different, higher or lower resolution. This document proposes to encode the different resolutions in a sequence parameter set and refer to them using the syntax elements for each image in the image parameter set.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

[0008] Для решения одной или более различных технических проблем в этом изобретении описаны новые синтаксисы и их использование, предназначенные для сигнализации масштабирования в битовом потоке видео. Таким образом, может быть достигнута улучшенная эффективность (де)кодирования.[0008] In order to solve one or more various technical problems, this invention describes new syntaxes and their uses for signaling scaling in a video bitstream. Thus, improved (de)coding efficiency can be achieved.

[0009] Согласно представленным вариантам осуществления, при повторной дискретизации опорного изображения (RPR, Reference Picture Resampling) или при изменении адаптивного разрешения (ARC, Adaptive Resolution Change) с помощью модификации синтаксиса высокого уровня (HLS, High-Level Syntax) могут быть получены дополнительные ресурсы для поддержки масштабируемости. В технических аспектах межуровневое предсказание используется в масштабируемой системе для повышения эффективности кодирования улучшенных уровней. Помимо пространственных и временных предсказаний с компенсацией движения, которые доступны в одноуровневом кодеке, для межуровневого предсказания используются передискретизированные видеоданные реконструированного опорного изображения из опорного уровня для предсказания текущего улучшенного уровня. Затем процесс передискретизации для межуровневого предсказания выполняется на уровне блоков путем модификации существующего процесса интерполяции для компенсации движения. Это означает, что для поддержки масштабируемости дополнительный процесс повторной дискретизации не требуется. В настоящем изобретении раскрыты элементы синтаксиса высокого уровня для поддержки пространственной масштабируемости/масштабируемости качества с использованием RPR.[0009] According to the present embodiments, when resampling the reference picture (RPR, Reference Picture Resampling) or when changing the adaptive resolution (ARC, Adaptive Resolution Change) using the modification of the high-level syntax (HLS, High-Level Syntax), additional resources to support scalability. In technical aspects, inter-layer prediction is used in a scalable system to improve the coding efficiency of the enhanced layers. In addition to the motion compensated spatial and temporal predictions that are available in the single layer codec, inter-layer prediction uses resampled video data of the reconstructed reference picture from the reference layer to predict the current enhancement layer. Then, the resampling process for inter-layer prediction is performed at the block level by modifying the existing interpolation process for motion compensation. This means that no additional resampling process is required to support scalability. The present invention discloses high level syntax elements to support spatial/quality scalability using RPR.

[0010] Включены способ и устройство, содержащее память, выполненную с возможностью хранения компьютерного программного кода, и процессор или процессоры, выполненные с возможностью доступа к компьютерному программному коду и работающие под управлением компьютерного программного кода. Компьютерный программный код включает в себя код синтаксического анализа, сконфигурированный таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один набор параметров видео (VPS, Video Parameter Set), содержащий по меньшей мере один элемент синтаксиса, указывающий, является ли по меньшей мере один уровень в масштабируемом битовом потоке одним из зависимого уровня масштабируемого битового потока и независимого уровня масштабируемого битового потока, первый код декодирования сконфигурирован таким образом, чтобы по меньшей мере один процессор декодировал изображение в зависимом уровне путем анализа и интерпретации списка межуровневых опорных изображений (ILRP, Inter-Layer Reference Picture), а второй код декодирования сконфигурирован таким образом, чтобы по меньшей мере один процессор декодировал изображение в независимом уровне без синтаксического анализа и интерпретации списка ILRP.[0010] Included is a method and apparatus comprising a memory capable of storing computer program code and a processor or processors capable of accessing the computer program code and operating under the control of the computer program code. The computer program code includes parsing code configured such that at least one processor parses at least one Video Parameter Set (VPS) containing at least one syntax element indicating whether at least at least one layer in the scalable bitstream by one of the dependent scalable bitstream layer and the independent scalable bitstream layer, the first decoding code is configured such that at least one processor decodes a picture in the dependent layer by parsing and interpreting an Inter-layer Reference Picture List (ILRP, Inter-Layer Reference Picture), and the second decoding code is configured such that at least one processor decodes the picture in an independent layer without parsing and interpreting the ILRP list.

[0011] Согласно вариантам осуществления, второй код декодирования дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор декодировал изображение в независимом уровне путем анализа и интерпретации списка опорных изображений, в котором не содержатся декодированные изображения другого уровня.[0011] According to embodiments, the second decoding code is further configured such that at least one processor decodes a picture in an independent layer by parsing and interpreting a reference picture list that does not contain decoded pictures of another layer.

[0012] Согласно вариантам осуществления, в списке межуровневых опорных изображений содержится декодированное изображение другого уровня.[0012] According to embodiments, the inter-layer reference picture list contains a decoded picture of another layer.

[0013] Согласно вариантам осуществления .код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли другой элемент синтаксиса максимальное количество уровней.[0013] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining if another syntax element specifies a maximum number of levels.

[0014] Согласно вариантам осуществления код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, что другой уровень в масштабируемом битовом потоке является опорным уровнем по меньшей мере для одного уровня.[0014] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating that another layer in the scalable bitstream is a reference layer for at least one level.

[0015] Согласно вариантам осуществления код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли флаг другой уровень в качестве опорного уровня по меньшей мере для одного уровня путем указания индекса другого уровня и индекса по меньшей мере одного уровня.[0015] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining whether a flag indicates another level as a reference level for at least one level by indicating an index of another level, and an index of at least one level.

[0016] Согласно вариантам осуществления код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли флаг, что другой уровень не является опорным уровнем по меньшей мере для одного уровня путем указания индекса другого уровня и индекса по меньшей мере одного уровня.[0016] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining if a flag indicates that another layer is not a reference layer for at least one layer by specifying an index of another level and an index of at least one level.

[0017] Согласно вариантам осуществления код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, что должно быть декодировано множество уровней, содержащее по меньшей мере один уровень, путем интерпретации списка ILRP.[0017] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating that a plurality of layers containing at least one layer should be decoded, by interpreting the ILRP list.

[0018] Согласно вариантам осуществления, код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, что должно быть декодировано множество уровней, содержащее по меньшей мере один уровень, без интерпретации списка ILRP.[0018] According to embodiments, the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating that a plurality of layers containing at least one layer should be decoded. , without interpreting the ILRP list.

[0019] Согласно вариантам осуществления, код синтаксического анализа дополнительно конфигурируется таким образом, чтобы по меньшей мере один процессор анализировал, выполняется ли по меньшей мере для одного VPS также определение, содержит ли VPS флаг, указывающий, что должно быть декодировано множество уровней, содержащее по меньшей мере один уровень, путем интерпретации списка ILRP.[0019] According to embodiments, the parsing code is further configured such that at least one processor analyzes whether at least one VPS also determines whether the VPS contains a flag indicating that a plurality of layers is to be decoded containing at least one level, by interpreting the ILRP list.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[0020] Дополнительные особенности, характер и различные преимущества раскрытого изобретения будут понятны из нижеследующего подробного описания и прилагаемых чертежей, на которых:[0020] Additional features, nature and various advantages of the disclosed invention will be apparent from the following detailed description and the accompanying drawings, in which:

[0021] фиг.1 - схематическое представление упрощенной блок-схемы системы связи согласно варианту осуществления;[0021] FIG. 1 is a schematic representation of a simplified block diagram of a communication system according to an embodiment;

[0022] фиг.2 - схематическое представление упрощенной блок-схемы системы связи согласно вариантам осуществления;[0022] FIG. 2 is a schematic representation of a simplified block diagram of a communication system according to embodiments;

[0023] фиг.3 - схематическое представление упрощенной блок-схемы декодера согласно вариантам осуществления;[0023] FIG. 3 is a schematic representation of a simplified block diagram of a decoder according to embodiments;

[0024] фиг.4 - схематическое представление упрощенной блок-схемы кодера согласно вариантам осуществления;[0024] FIG. 4 is a schematic representation of a simplified block diagram of an encoder according to embodiments;

[0025] фиг.5А - схематическое представление опций сигнализации параметров ARC/RPR согласно существующему уровню техники;[0025] FIG. 5A is a schematic representation of prior art ARC/RPR parameter signaling options;

[0026] фиг.5В - схематическое представление опций сигнализации параметров ARC/RPR согласно существующему уровню техники;[0026] FIG. 5B is a schematic representation of prior art ARC/RPR parameter signaling options;

[0027] фиг.5С - схематическое представление опций сигнализации параметров ARC/RPR согласно вариантам осуществления;[0027] FIG. 5C is a schematic representation of ARC/RPR parameter signaling options according to embodiments;

[0028] фиг.5D - схематическое представление опций сигнализации параметров ARC/RPR согласно вариантам осуществления;[0028] FIG. 5D is a schematic representation of ARC/RPR parameter signaling options according to embodiments;

[0029] фиг.5Е - схематическое представление опций сигнализации параметров ARC/RPR согласно вариантам осуществления;[0029] FIG. 5E is a schematic representation of ARC/RPR parameter signaling options according to embodiments;

[0030] фиг.6 - схематическое представление сигнализации разрешения изображений согласно вариантам осуществления;[0030] FIG. 6 is a schematic representation of image resolution signaling according to embodiments;

[0031] фиг.7 - схематическое представление сигнализации размера изображения и окна соответствия в SPS согласно вариантам осуществления;[0031] FIG. 7 is a schematic representation of image size signaling and matching window in SPS according to embodiments;

[0032] фиг.8 - схематическое представление сигнализации наличия межуровневого предсказания в SPS согласно вариантам осуществления;[0032] FIG. 8 is a schematic representation of signaling the presence of inter-layer prediction in SPS according to embodiments;

[0033] фиг.9 - схематическое представление сигнализации индекса межуровневого предсказания в заголовке слайса согласно вариантам осуществления;[0033] FIG. 9 is a schematic representation of inter-layer prediction index signaling in a slice header according to embodiments;

[0034] фиг.10 - схематическое представление компьютерной системы согласно вариантам осуществления.[0034] FIG. 10 is a schematic representation of a computer system according to embodiments.

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

[0035] Описываемые ниже предлагаемые функции могут использоваться отдельно или в сочетании друг с другом в любом порядке. Кроме того, каждый из вариантов осуществления может быть реализован схемой обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на компьютерно-считываемом носителе.[0035] The proposed functions described below can be used alone or in combination with each other in any order. In addition, each of the embodiments may be implemented by a processing circuit (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 computer-readable medium.

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

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

[0038] На фиг.1, оконечные устройства (110, 120, 130 и 140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110, 120, 130 и 140), включая, например, проводные и/или беспроводные сети связи. Сеть (150) связи позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[0038] In FIG. 1, terminal devices (110, 120, 130, and 140) can be illustrated as servers, personal computers, and smartphones, but this does not limit the principles of the present invention. Embodiments of the present invention find application in laptop computers, tablet computers, media players and/or dedicated video conferencing equipment. Network (150) represents any number of networks that carry encoded video data between terminals (110, 120, 130, and 140), including, for example, wired and/or wireless networks. The communication network (150) allows data to be exchanged in a circuit-switched and/or packet-switched mode. Exemplary networks include telecommunications networks, local area networks, wide area networks, and/or the Internet. For the purposes of this discussion, the architecture and topology of the network (150) may not be relevant to the present invention unless specifically noted below.

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

[0040] Система потоковой передачи может включать в себя подсистему (213) захвата, которая может включать в себя источник (201) видеосигнала, например, цифровую камеру, создающую, например, поток (202) отсчетов видео, не подвергнутых сжатию. Этот поток (202) отсчетов, показанный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с битовыми потоками кодированного видео, может быть обработан кодером (203), подключенным к камере (201). Кодер (203) может включать в себя оборудование, программное обеспечение или их комбинацию для обеспечения или реализации аспектов раскрытого изобретения, как более подробно описано ниже. Битовый поток (204) кодированного видео, показанный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на потоковом сервере (205) для использования в будущем. Один или более клиентов (206, 208) потоковой передачи могут осуществлять доступ к потоковому серверу (205) для извлечения копий (207, 209) битового потока (204) кодированного видео. Клиент (206) может включать в себя видеодекодер (210), который декодирует входящую копию битового потока (207) кодированного видео и создает исходящий поток (211) отсчетов видео, который может отображаться на дисплее (212) или на другом устройстве визуализации (не показано). В некоторых системах потоковой передачи битовые потоки видео (204, 207, 209) могут кодироваться согласно тем или иным стандартам кодирования/сжатия видео. Примеры этих стандартов включают в себя ITU-T Recommendation Н.265. Разрабатывается стандарт видеокодирования под официальным названием «Универсальное видеокодирование» (Versatile Video Coding) или VVC. Раскрытое изобретение может использоваться в контексте VVC.[0040] 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 stream (202) of samples, shown with a thick line to emphasize the large amount of data compared to the bitstreams of the encoded video, can be processed by the encoder (203) connected to the camera (201). The encoder (203) may include hardware, software, or a combination thereof for providing or implementing aspects of the disclosed invention, as described in more detail below. The encoded video bitstream (204), shown 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 produces 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 one video coding/compression standard or another. Examples of these standards include ITU-T Recommendation H.265. A video coding standard is being developed, officially called Versatile Video Coding, or VVC. The disclosed invention may be used in the context of VVC.

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

[0042] Приемник (310) может принимать одну или более видеопоследовательностей кодека для декодирования декодером (210); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие им используемые объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети буферная память (315) может быть подключена между приемником (310) и энтропийным декодером / анализатором (320) (далее «анализатором»). Если приемник (310) принимает данные из запоминающего устройства/устройства пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буфер (315) может не использоваться или иметь небольшой размер. Для использования в пакетных сетях наилучшей попытки, например, в Интернете, может потребоваться буферная память (315), которая может быть сравнительно большой и может иметь преимущественно адаптивный размер. [0043] Видеодекодер (210) может включать в себя анализатор (320) для реконструкции символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (210), и возможно информацию для управления устройством визуализации, например, дисплеем (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг.2. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplementary Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может выполняться согласно методу или стандарту видеокодирования и может следовать принципам, хорошо известным специалисту в этой области техники, включая кодирование с переменной длиной, кодирование по методу Хаффмана, арифметическое кодирование с учетом или без учета контекстной зависимости и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU, Coding Units), блоки, единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[0042] The receiver (310) may receive one or more codec video sequences for decoding by the decoder (210); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of other coded video sequences. The encoded video sequence may be received from a channel (312), which may be a hardware/software link to a storage device where the encoded video data is stored. The receiver (310) may receive encoded video data with other data, such as encoded audio data and/or auxiliary data streams, which may be relayed to their respective usable objects (not shown). The receiver (310) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) may be connected between the receiver (310) and the entropy decoder/analyzer (320) (hereinafter "analyzer"). If the receiver (310) receives data from a storage/forwarder with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer (315) may not be used or may be small. For use in best effort packet networks, such as the Internet, a buffer memory (315) may be required, which may be relatively large and may have a predominantly adaptive size. [0043] The video decoder (210) may include an analyzer (320) for reconstructing symbols (321) from an entropy coded video sequence. The categories of these symbols include information used to control the operation of the video decoder (210) and possibly information to control a visualization device such as a display (212) that is not an integral part of the decoder but may be connected to it, as shown in FIG. .2. The control information for the rendering device(s) may be Supplementary Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (320) may analyze/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be performed according to a video coding method or standard, and may follow principles well known to one skilled in the art, including variable length coding, Huffman coding, context sensitive or context sensitive arithmetic coding, etc. The analyzer (320) can 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 (GOP, Groups of Pictures), images, tiles, slices, macroblocks, coding units (CU, Coding Units), blocks, transformation units (TU, Transform Units), prediction units (PU, Prediction Units ) etc. The entropy decoder/analyzer can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.

[0044] Анализатор (320) может осуществлять операцию энтропийного декодирования / анализа видеопоследовательности, принятой из буфера (315), для создания символов (321).[0044] The analyzer (320) may perform an entropy decoding/analysis operation of the video sequence received from the buffer (315) to create symbols (321).

[0045] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например, интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются, и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.[0045] Several different modules may be used for symbol reconstruction (321) depending on the type of encoded video image or parts thereof (eg, inter- and intra-image, inter- and intra-block) and other factors. Which modules are used, and how, may be determined by the subgroup management information extracted from the encoded video sequence by the analyzer (320). The flow of such subgroup management information between the analyzer (320) and the multiple modules is not shown hereinafter for simplicity.

[0046] Помимо ранее упомянутых функциональных блоков, декодер (210) может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.[0046] In addition to the previously mentioned functional blocks, the decoder (210) can be fundamentally divided into several functional modules, as described below. In a practical implementation operating under commercial constraints, many of these modules interact closely with one another and can, at least partially, be nested within one another. However, for the purposes of describing the disclosed invention, a fundamental subdivision into the following functional modules is appropriate.

[0047] Первым модулем является модуль (351) масштабирования / обратного преобразования. Модуль (351) масштабирования / обратного преобразования принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Этот модуль может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).[0047] The first module is the scaling/inverse transform module (351). The scaling/inverse transform module (351) receives the quantized transform coefficient as well as control information including the transform used, block size, quantization factor, quantization scaling matrices, etc. as character(s) (321) from the analyzer (320). This module can output blocks containing sample values that can be entered into the aggregator (355).

[0048] В ряде случаев, выходные отсчеты блока (351) масштабирования / обратного преобразования могут относиться к внутренне-кодированному блоку; то есть блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем (352) предсказания внутри изображения. В ряде случаев модуль (352) предсказания внутри изображения генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из текущего (частично реконструированного) изображения (356). Агрегатор (355) в ряде случаев добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) внутреннего предсказания, в информацию выходных отсчетов, обеспеченную модулем (351) масштабирования / обратного преобразования.[0048] In some cases, the output samples of the scaling / inverse transform block (351) may refer to an intra-coded block; that is, a block that does not use predicted information from previously reconstructed images, but may use predicted information from previously reconstructed portions of the current image. Such predicted information may be provided by an intra-picture prediction module (352). In some cases, intra-image prediction module (352) generates a block of the same size and shape as the block to be reconstructed using previously reconstructed environment information extracted from the current (partially reconstructed) image (356). 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/inverse transform module (351).

[0049] В других случаях выходные отсчеты модуля (351) масштабирования / обратного преобразования могут относиться к внутренне кодированному блоку, возможно, с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может осуществлять доступ к памяти (357) опорных изображений для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования / обратного преобразования (в этом случае именуемому «остаточными отсчетами» или «остаточным сигналом») для генерации информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения, в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчетов, механизмы предсказания векторов движения и т.д.[0049] In other cases, the output samples of the scaling/inverse transform module (351) may refer to an intra-coded block, possibly with motion compensation. In such a case, the motion compensation prediction module (353) may access the reference picture memory (357) to retrieve samples used for prediction. After motion compensation has been applied to the extracted samples according to the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output signal of the scaler / inverse transform (in this case referred to as "residual samples" or "residual signal") to generate output sample information. The reference picture memory addresses from where the motion compensation prediction module retrieves the predicted samples may be governed by the motion vectors available to the motion compensation prediction module in the form of symbols (321), which may have X, Y and reference picture components, for example. Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate subsample motion vectors, motion vector prediction mechanisms, and so on are used.

[0050] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле (356) контурного фильтра. Технологии сжатия видео могут включать в себя методы деблокирующего фильтра под управлением параметров, включенных в битовый поток кодированного видео, и становиться доступными модулю (356) контурного фильтра в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[0050] Various loop filtering techniques can be applied to the aggregator (355) output samples in the loop filter module (356). The video compression techniques may include deblocking filter techniques under the control of parameters included in the encoded video bitstream and become available to the loop filter module (356) as symbols (321) from the parser (320), but may also respond to metainformation received during decoding of the previous (in the order of decoding) parts of the encoded image or encoded video sequence, as well as to respond to previously reconstructed and contour filtered sample values.

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

[0052] Некоторые кодированные изображения, будучи полностью реконструированными, могут использоваться в качестве опорных изображений для будущего предсказания. Когда кодированное изображение полностью реконструировано, и кодированное изображение идентифицировано как опорное изображение (например, анализатором (320)), буфер (356) текущего изображения может становиться частью буфера (357) опорных изображений, и свежий буфер текущего изображения может повторно выделяться до начала реконструкции следующего кодированного изображения.[0052] Some encoded pictures, when fully reconstructed, can be used as reference pictures for future prediction. When the encoded picture is completely reconstructed and the encoded picture is identified as a reference picture (e.g., by the analyzer (320)), the current picture buffer (356) may become part of the reference picture buffer (357), and a fresh current picture buffer may be re-allocated before reconstruction of the next picture begins. encoded image.

[0053] Видеодекодер 320 может выполнять операции декодирования в соответствии с предварительно определенным методом сжатия видеоданных, которая может документироваться в стандарте, таком как рекомендация ITU-T Н.265. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемым методом или стандартом сжатия видеоданных, в том смысле, что она придерживается синтаксиса метода или стандарта сжатия видеоданных, заданным в документе или стандарте по технологии сжатия видеоданных и, в особенности, в профильных документах этих стандартов. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемого в кодированной видеопоследовательности.[0053] Video decoder 320 may perform decoding operations in accordance with a predefined video data compression method, which may be documented in a standard such as ITU-T recommendation H.265. The encoded video sequence may conform to the syntax specified by the video compression method or standard used, in the sense that it adheres to the syntax of the video compression method or standard specified in a video compression technology document or standard, and in particular in the related documents of those standards. It may also be necessary for consistency that the complexity of the encoded video sequence remain within the boundaries given by the level of video compression technology or standard. In some cases, the levels limit the maximum image size, the maximum frame rate, the maximum sampling rate for reconstruction (measured in megasamples per second, for example), the maximum reference image size, and so on. The limits set by the levels, in some cases, may be further limited by the specifications of the hypothetical reference decoder (HRD, Hypothetical Reference Decoder) and metadata for managing the HRD buffer signaled in the encoded video sequence.

[0054] Согласно вариантам осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (320) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут предоставляться в виде, например, временных, пространственных или усовершенствованных уровней SNR, избыточных уровней, избыточных изображений, кодов с прямым исправлением ошибок и т.д.[0054] According to embodiments, the receiver (310) may receive additional (redundant) data with encoded video. Additional data may be included as part of the encoded video sequence(s). The additional data may be used by the video decoder (320) to correctly decode the data and/or more accurately reconstruct the original video data. The additional data may be provided in the form of, for example, temporal, spatial, or enhanced SNR levels, redundant levels, redundant images, forward error correction codes, and so on.

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

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

[0057] Источник (201) видео может обеспечивать исходную видеопоследовательность, подлежащую кодированию кодером (203), в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например, 8 битов, 10 битов, 12 битов и т.д.), любого цветового пространства (например, ВТ.601 Y CrCB, RGB и т.д.), и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником (201) видеосигнала может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником (203) видеосигнала может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Непосредственно изображения могут быть организованы как пространственный массив пикселей, каждый из которых может содержать одну или более выборок, в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание посвящено отсчетам.[0057] The video source (201) may provide the source video sequence to be encoded by the encoder (203) in the form of a digital video sample stream of any suitable bit depth (e.g., 8 bits, 10 bits, 12 bits, etc.), any color space (eg, BT.601 Y CrCB, RGB, etc.), and any suitable sampling structure (eg, Y CrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (201) may be a storage device where previously prepared video is stored. In a videoconferencing system, the video source (203) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of individual images that give a sense of movement when viewed in sequence. The images themselves can be organized as a spatial array of pixels, each of which may contain one or more samples, depending on the sampling structure, color space, etc. used. It is not difficult for a person skilled in the art to understand the relationship between pixels and samples. The following description is about readings.

[0058] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к этим функциональным модулям. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать в себя параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизация скорости-искажения т.д.), размер изображения, схему групп изображений (GOP, Group Of Pictures), максимальную зону поиска вектора движения и т.д. Специалист в этой области техники может легко идентифицировать другие функции контроллера (450) в той мере, в какой они могут относиться к видеокодеру (203), оптимизированному для конструкции определенной системы.[0058] According to an embodiment, the encoder (203) may encode and compress images of the source video sequence into the encoded video sequence (443) in real time or subject to any other time constraints imposed by the application. Setting the proper coding rate is one of the functions of the controller (450). The controller controls other function modules as described below and is operatively connected to these function modules. The connection is not shown for simplicity. The parameters set by the controller may include parameters related to frequency adjustment (picture skip, quantizer, lambda value applied in rate-distortion optimization, etc.), picture size, group of pictures scheme (GOP, Group Of Pictures), maximum motion vector search area, etc. A person skilled in the art can readily identify other functions of the controller (450) as they may relate to a video encoder (203) optimized for a particular system design.

[0059] Некоторые видеокодеры работают в режиме, который специалисту в этой области техники известен как «петля кодирования». В качестве очень упрощенного описания петля кодирования может включать в себя компонент кодирования кодера (430) (далее «исходного кодера») (отвечающего за создание символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)), и (локального) декодера (433), встроенного в кодер (203), который реконструирует символы для создания данных отсчетов, которые (удаленный) декодер также должен создавать (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Этот реконструированный поток отсчетов поступает в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое буфера опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказанная часть кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, как «видел» бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо известен специалисту в этой области техники.[0059] Some video encoders operate in a mode known to those skilled in the art as "coding loop". As a very simplified description, an encoding loop may include an encoding component of an encoder (430) (hereinafter "source encoder") (responsible for creating symbols based on the input image to be encoded and the reference image(s)), and ( local) decoder (433) built into the encoder (203) that reconstructs the symbols to produce sample data that the (remote) decoder must also produce (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies considered in the disclosed invention). This reconstructed sample stream enters the reference picture memory (434). Since decoding a stream of symbols produces bit-accurate results independent of the position of the decoder (local or remote), the contents of the reference picture buffer will also be the same bit-accuracy for the local encoder and the remote encoder. In other words, the predicted portion of the encoder "sees" as reference picture samples exactly the same sample values as the decoder would "see" if using prediction during decoding. This fundamental principle of reference picture synchronism (and eventually drift if synchronism cannot be maintained due to, for example, channel errors) is well known to those skilled in the art.

[0060] «Локальный» декодер (433) может действовать таким же образом, как «удаленный» декодер (210), подробно описанный выше со ссылкой на фиг.3. Однако, опять же, согласно фиг.3, поскольку символы доступны, и кодирование/декодирование символов в кодированной видеопоследовательности энтропийным кодером (445) и анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включающие в себя канал (312), приемник (310), буфер (315) и анализатор (320), могут быть не полностью реализованы в локальном декодере (433).[0060] The "local" decoder (433) may operate in the same manner as the "remote" decoder (210) detailed above with reference to FIG. However, again with respect to FIG. 3, since the symbols are available and the encoding/decoding of the symbols in the encoded video sequence by the entropy encoder (445) and parser (320) can be lossless, the entropy decoding portions of the decoder (210) including the channel ( 312), receiver (310), buffer (315), and parser (320) may not be fully implemented in the local decoder (433).

[0061] При этом можно сделать вывод, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодирования. Только в некоторых областях требуется более детальное описание, которое приведено ниже.[0061] In doing so, it can be concluded that any decoding technology present in a decoder, with the exception of analysis/entropy decoding, must also be present, in essentially identical functional form, in the corresponding encoder. For this reason, the disclosed invention is focused on the operation of the decoder. The description of the encoding technologies can be abbreviated as they are the inverse of the decoding technologies described in detail. Only in some areas a more detailed description is required, which is given below.

[0062] В ходе работы исходный кодер (430) может осуществлять кодирование с предсказанием и компенсацией движения, при котором входной кадр кодируется с предсказанием на основании одного или более ранее кодированных кадров из видеопоследовательности, указанных как «опорные кадры». Таким образом, машина (432) кодирования кодирует различия между пиксельными блоками входного кадра и пиксельными блоками опорного кадра(ов), которое(ые) может(ут) выбираться в качестве предсказанной(ых) ссылки(ок) на входной кадр.[0062] In operation, source encoder (430) may perform motion-compensated predictive coding in which an input frame is predictively encoded based on one or more previously encoded frames from the video sequence, referred to as "reference frames". Thus, the encoding engine (432) encodes the differences between the pixel blocks of the input frame and the pixel blocks of the reference frame(s) that can be selected as the predicted reference(s) to the input frame.

[0063] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть указаны как опорные кадры основе символов, созданных исходным кодером (430). Операции машины (432) кодирования могут быть преимущественно процессами с потерями. Если кодированные видеоданные декодируются в видеодекодере (не показан на фиг.4), то реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных кадрах, и может предписывать сохранение реконструированных опорных кадров в кэш-памяти (434) опорных изображений. Таким образом, кодер (203) может локально сохранять копии реконструированных опорных кадров, имеющих такое же содержимое, как реконструированные опорные кадры, которые будут получены видеодекодером на стороне приемника (в отсутствие ошибок передачи).[0063] The local video decoder (433) may decode the encoded video data of the frames, which may be specified as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may be predominantly lossy processes. If the encoded video data is decoded in a video decoder (not shown in FIG. 4), then the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) duplicates 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 the reference picture cache (434). Thus, the encoder (203) can locally store copies of the reconstructed key frames having the same content as the reconstructed key frames that will be received by the video decoder at the receiver side (in the absence of transmission errors).

[0064] Предсказатель (435) может осуществлять поиски предсказания для машины (432) кодирования. Таким образом, для нового кадра, подлежащего кодированию, предсказатель (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе «блоки отсчетов пиксельные блоки» для нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученным предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти (434) опорных изображений.[0064] The predictor (435) may perform prediction searches for the encoding engine (432). Thus, for a new frame to be encoded, the predictor (435) can search the reference picture memory (434) for sample data (as candidates for the role of reference pixel blocks) or some metadata, for example, motion vectors of the reference picture, block shapes etc., which can serve as a proper reference for predicting new images. The predictor (435) may operate on a "sample-to-pixel-blocks" basis to find proper references for prediction. In some cases, according to the search results obtained by the predictor (435), the input picture may have prediction references extracted from the plurality of reference pictures stored in the reference picture memory (434).

[0065] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установление параметров и параметров подгруппы, используемых для кодирования видеоданных.[0065] 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.

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

[0067] Передатчик (440) может буферизовать кодированную(ые) видеопоследовательность(и), созданную энтропийным кодером (445), для подготовки к передаче через канал (460) связи, который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[0067] The transmitter (440) may buffer the encoded video sequence(s) created by the entropy encoder (445) in preparation for transmission over a communication channel (460), which may be a hardware/software link to a storage device where encoded video data. The transmitter (440) may combine the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or auxiliary data streams (sources not shown).

[0068] Контроллер (450) может управлять работой кодера (203). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы кадров:[0068] The controller (450) may control the operation of the encoder (203). During encoding, the controller (450) may assign to each encoded picture one or another encoded picture type, which may determine the encoding methods applicable to the corresponding picture. For example, images can often be assigned the following frame types:

[0069] Внутреннее изображение (I-изображение) может представлять собой изображение, которое может кодироваться и декодироваться без использования любого другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера (IDR, Independent Decoder Refresh). Специалисту в данной области техники известны разновидности 1-изображений и их соответствующие варианты применения и особенности.[0069] An intra-picture (I-picture) may be an image 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 in the Independent Decoder Refresh (IDR) format. One skilled in the art will be aware of the 1-image varieties and their respective uses and features.

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

[0071] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.[0071] A bi-directionally predicted picture (B-picture) that can be encoded and decoded using intra prediction or inter prediction using no more than two motion vectors and reference indices to predict sample values of each block. Likewise, multi-predicted pictures may use more than two reference pictures and associated metadata to reconstruct a single block.

[0072] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе (блок за блоком). Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки 1-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Блоки пикселей Р-изображений могут кодироваться без предсказания, с использованием пространственного предсказания или временного предсказания со ссылкой на одно предварительно кодированное ссылочное изображение. Блоки В-изображений могут кодироваться без предсказания путем пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[0072] Source images typically allow for spatial division into multiple blocks of samples (eg, blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and coding on a block-by-block basis. Blocks may be predictively encoded with reference to other (previously encoded) blocks determined by the coding assignment applied to the respective images of those blocks. For example, 1-picture blocks can be coded without prediction or predictively with reference to previously coded blocks of the same picture (spatial prediction or intra prediction). Blocks of pixels of P-pictures can be encoded without prediction, using spatial prediction or temporal prediction with reference to one pre-coded reference picture. Blocks of B-pictures may be encoded without prediction by spatial prediction or temporal prediction with reference to one or two previously encoded reference pictures.

[0073] Видеокодер (203) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (203) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.[0073] The video encoder (203) may perform encoding operations according to a predetermined video coding 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 redundancies in the input video sequence. Therefore, the encoded video data may conform to the syntax given by the video coding technology or standard being used.

[0074] Согласно варианту осуществления передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут включать в свой состав временные/пространственные/SNR усовершенствованные уровни, другие виды избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной усовершенствованной информации (SEI, Supplementary Enhancement Information), фрагменты набора параметров применимости визуальной информации (VUI, Visual Usability Information) и т.д.[0074] According to an embodiment, transmitter (440) may transmit additional data with encoded video. Video encoder (430) may include such data as part of an encoded video sequence. Supplementary data may include temporal/spatial/SNR enhancement levels, other types of redundant data such as redundant images and slices, Supplementary Enhancement Information (SEI) messages, Visual Usability (VUI) parameter set fragments. Information), etc.

[0075] Перед более подробным описанием определенных аспектов раскрытого изобретения необходимо ввести несколько терминов, на которые будут выполняться ссылки в оставшейся части этого описания.[0075] Before a more detailed description of certain aspects of the disclosed invention, it is necessary to introduce several terms that will be referred to in the remainder of this description.

[0076] Далее субизображение относится, в некоторых случаях, к прямоугольной компоновке отсчетов, блоков, макроблоков, единиц кодирования или подобных объектов, которые семантически сгруппированы и которые могут независимо кодироваться с измененным разрешением. Одно или более субизображений могут формировать изображение. Одно или более кодированных субизображений могут формировать кодированное изображение. Одно или более субизображений может быть ассемблировано в изображение, и одно или более субизображений может быть извлечено из изображения. В определенных средах одно или более кодированных субизображений может быть ассемблировано в сжатой области без перекодирования до уровня отсчетов в кодированное изображение, и в тех же или в других определенных случаях одно или более кодированных субизображений может быть извлечено из кодированного изображения в сжатой области.[0076] Further, a sub-image refers, in some cases, to a rectangular arrangement of samples, blocks, macroblocks, coding units, or the like, which are semantically grouped and which can be independently encoded with a changed resolution. One or more sub-images may form an image. One or more encoded sub-images may form an encoded image. 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-images may be assembled in the compressed domain without being re-coded to the sample level in the encoded image, and in the same or in certain other cases, one or more encoded sub-images may be extracted from the encoded image in the compressed domain.

[0077] Далее повторная дискретизация опорного изображения (RPR, Reference Picture Resampling) или изменение адаптивного разрешения (ARC, Adaptive Resolution Change) относится к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, путем повторной дискретизации опорного изображения. Далее параметры RPR/ARC относятся к управляющей информации, требующейся для выполнения изменения адаптивного разрешения, которая может включать в себя, например, параметры фильтров, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д.[0077] Further, reference picture resampling (RPR, Reference Picture Resampling) or adaptive resolution change (ARC, Adaptive Resolution Change) refers to mechanisms that allow changing the resolution of a picture or sub-picture in a coded video sequence, for example, by resampling a reference picture. In the following, RPR/ARC parameters refer to control information required to perform adaptive resolution change, which may include, for example, filter parameters, scaling factors, output and/or reference picture resolutions, various control flags, and so on.

[0078] Описание выше ориентировано на кодировании и декодировании одиночного семантически независимого кодированного видеоизображения. Перед описанием реализации кодирования/декодирования множества субизображений с независимыми параметрами RPR/ARC и подразумеваемого дополнительного усложнения рабочего процесса должны быть описаны варианты сигнализации параметров RPR/ARC.[0078] The description above is focused on encoding and decoding a single semantically independent encoded video image. Before describing the implementation of encoding/decoding of multiple sub-images with independent RPR/ARC parameters and the implied additional complication of the workflow, options for signaling the RPR/ARC parameters should be described.

[0079] На фиг.5 показано несколько новых опций сигнализации параметров RPR/ARC. Необходимо отметить, что каждая из опций имеет определенные преимущества и недостатки с точки зрения эффективности кодирования, сложности и архитектуры. В стандарте или в технологии видеокодирования для сигнализации параметров RPR/ARC может быть выбрана одна или более этих опций или опций, известных из предшествующего уровня техники. Параметры могут не быть взаимоисключающими и предположительно могут меняться местами в зависимости от требований применения, используемых стандартов или выбора кодера.[0079] Figure 5 shows several new RPR/ARC parameter signaling options. It should be noted that each of the options has certain advantages and disadvantages in terms of coding efficiency, complexity and architecture. In a video coding standard or technology, one or more of these options, or options known in the art, may be selected for RPR/ARC parameter signaling. The parameters may not be mutually exclusive and are expected to be interchanged depending on application requirements, standards used, or encoder selection.

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

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

- коэффициенты повышающей/понижающей дискретизации с добавлением временного измерения, указывающего увеличение/уменьшение масштаба с постоянной скоростью для заданного количества изображений;- upsampling/downsampling coefficients with the addition of a temporal dimension indicating zooming in/out at a constant rate for a given number of images;

- любой из указанных выше двух пунктов может инициировать кодирование одного или более предположительно коротких элементов синтаксиса, которые могут указывать на таблицу, содержащую коэффициенты);- any of the above two clauses may trigger the encoding of one or more supposedly short syntax elements that may point to a table containing coefficients);

- разрешение, по измерению X или Y, в единицах отсчетов, блоков, макроблоков, CU или в любой другой подходящей степени детализации входного изображения, выходного изображения, опорного изображения, кодированного изображения, объединенного или отдельного. (Если имеется более одного разрешения (например, одно для входного изображения, и одно для опорного изображения); в некоторых случаях один набор значений может быть выведен из другого набора значений. Управление этим может выполняться, например, с помощью флагов. Более подробный пример см. ниже.);- resolution, in the X or Y dimension, in units of samples, blocks, macroblocks, CUs, or any other suitable granularity of the input picture, output picture, reference picture, coded picture, merged or separate. (If there is more than one resolution (for example, one for the input image, and one for the reference image); in some cases, one set of values can be derived from another set of values. This can be controlled, for example, using flags. For a more detailed example, see . below.);

- координаты «деформации», подобные используемым в приложении Р стандарта Н.263, опять же с подходящей степенью детализации, как описано выше (в приложении Р стандарта Н.263 определяется один эффективный способ кодирования таких координат деформации, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, согласно вариантам осуществления, реверсивное кодирование с переменной длиной по Хаффману координат деформации согласно приложению Р заменяется двоичным кодированием с подходящей длиной, где длина двоичного кодового слова может быть, например, определена на основе максимального размера изображения, возможно умноженного на определенный коэффициент и смещенного на определенное значение, чтобы допустить «деформацию» за пределами границ максимального размера изображения), и/или- "warp" coordinates like those used in Annex P of H.263, again with the appropriate granularity as described above (Annex P of H.263 defines one efficient way to encode such warp coordinates, but others may also be developed , potentially more efficient methods For example, according to embodiments, the reverse Huffman variable-length coding of warp coordinates according to Annex P is replaced by binary coding with an appropriate length, where the length of the binary codeword can be, for example, determined based on the maximum image size, possibly multiplied by by a certain factor and shifted by a certain amount to allow "warping" beyond the limits of the maximum image size), and/or

- параметры фильтра повышающей или понижающей дискретизации (В самом простом случае может использоваться только один фильтр для повышающей и/или понижающей дискретизации. Однако в некоторых случаях предпочтительнее может быть обеспечение большей гибкости в конструкции фильтра, для этого может потребоваться сигнализация параметров фильтра. Такие параметры могут быть выбраны с помощью индекса в списке возможных конструкций фильтров, фильтр может быть полностью определен (например, с помощью списка коэффициентов фильтра с использованием подходящих методов энтропийного кодирования), фильтр может быть неявно выбран с помощью соотношений повышающей/понижающей дискретизации в соответствии с которыми, в свою очередь, выполняется сигнализация в соответствии с любым из упомянутых выше механизмов и т.д.).- upsampling or downsampling filter parameters (In the simplest case, only one upsampling and/or downsampling filter can be used. However, in some cases it may be preferable to allow more flexibility in filter design, this may require signaling filter parameters. Such parameters may be selected by an index in 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 upsampling/downsampling relationships according to which, in in turn, the signaling is performed in accordance with any of the mechanisms mentioned above, etc.).

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

Figure 00000001
Figure 00000001

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

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

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

[0085] Как показано в примере на фиг.5А, иллюстрация (500А) показывает, что приложение Р стандарта Н.263 включает в себя информацию (502) ARC в форме четырех координат деформации в заголовке (501) изображения, в частности, в расширении заголовка Н.263 PLUSPTYPE (503). Это может быть разумным выбором конструкции, когда а) имеется доступный заголовок изображения и б) ожидаются частые изменения информации ARC. Однако объем данных при использовании сигнализации в стиле Н.263 может быть довольно большим, и коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь временный характер. Кроме того, как показано в примере на фиг.5В, иллюстрация (500 В) показывает, что JVET-M0135 включает в себя информацию (504) PPS, опорную информацию (505) ARC, информацию (507) SPS и информацию (506) таблицы целевого разрешения.[0085] As shown in the example of FIG. 5A, illustration (500A) shows that H.263 Application P includes ARC information (502) in the form of four warp coordinates in the image header (501), specifically in the extension H.263 PLUSPTYPE header (503). This may be a reasonable design choice when a) there is an image header available and b) frequent changes to the ARC information are expected. However, the amount of data when using H.263-style signaling can be quite large, and the scaling factors may not be related to picture boundaries because the picture header may be temporary. In addition, as shown in the example of FIG. 5B, illustration (500B) shows that JVET-M0135 includes PPS information (504), ARC reference information (505), SPS information (507), and table information (506). target permission.

[0086] Согласно примеру осуществления, на фиг.5С показан пример (500С), в котором показана информация (508) заголовка группы тайлов и информация (509) ARC; на фиг.5D показан пример (500D), в котором показана информация (514) заголовка группы тайлов, опорная информация (513) ARC, информация (516) SPS и информация (515) ARC, а на фиг.5Е показан пример (500Е), в котором показана информация (511) набора(ов) параметров адаптации (APS) и информация (512) ARC.[0086] According to the exemplary embodiment, FIG. 5C shows an example (500C) showing tile group header information (508) and ARC information (509); 5D shows an example (500D) showing tile group header information (514), ARC reference information (513), SPS information (516), and ARC information (515), and FIG. 5E shows an example (500E) , which shows information (511) set(s) of adaptation parameters (APS) and information (512) ARC.

[0087] На фиг.6 показан пример (600) таблицы, в которой используется адаптивное разрешение, в этом примере выходное разрешение кодируется в единицах отсчетов (613). Числовое значение (613) относится как элементу синтаксиса output_pic_width_in_luma_samples, и к элементу синтаксиса output_pic_height_in_luma_samples, которые вместе могут определять разрешение выходного изображения. В другом месте в методе или стандарте кодирования видео могут быть определены определенные ограничения для любого значения. Например, определение уровня может ограничивать количество общих выходных отсчетов, которые могут быть произведением значений этих двух элементов синтаксиса. Кроме того, определенные методы или стандарты кодирования видео, или внешние методы или стандарты, такие как, например, системные стандарты, могут ограничивать диапазон нумерации (например, одно или оба измерения должны делиться на степень числа 2) или формат изображения (например, ширина и высота должны иметь отношение 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций, либо по другим причинам, которые будут понятны специалисту в этой области техники с точки зрения раскрытия настоящего изобретения.[0087] Figure 6 shows an example (600) of a table that uses adaptive resolution, in this example the output resolution is encoded in units of samples (613). The numeric value (613) refers to both the output_pic_width_in_luma_samples syntax element and the output_pic_height_in_luma_samples syntax element, which together can define the resolution of the output image. Elsewhere in a video coding method or standard, certain restrictions may be defined 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. In addition, certain video coding methods or standards, or external methods or standards such as, for example, system standards, may restrict the numbering range (for example, one or both dimensions must be divisible by a power of 2) or image format (for example, width and height must have a ratio of 4:3 or 16:9). Such limitations may be introduced to facilitate hardware implementations, or for other reasons that will be clear to a person skilled in the art in terms of the disclosure of the present invention.

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

[0089] Определенные методы или стандарты видеокодирования, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм повторной дискретизации опорных изображений (реализуется совершенно иначе, чем раскрытое изобретение) в сочетании с временной масштабируемостью для обеспечения пространственной масштабируемости. В частности, для некоторых опорных изображений может выполняться повышающая дискретизация с использованием методов в стиле ARC с более высоким разрешением для формирования основы уровня пространственного улучшения. Эти изображения, для которых выполнена повышающая дискретизация, можно улучшить, используя обычные механизмы прогнозирования с высоким разрешением для добавления деталей.[0089] Certain video coding techniques or standards, such as VP9, support spatial scalability by implementing certain forms of reference picture resampling (implemented quite differently from the disclosed invention) in combination with temporal scalability to provide spatial scalability. In particular, some reference pictures may be upsampled using higher resolution ARC-style techniques to form the basis of the spatial enhancement layer. These upsampled images can be enhanced using conventional high resolution prediction engines to add detail.

[0090] Раскрытое изобретение может использоваться и используется в такой среде согласно вариантам осуществления. В некоторых случаях, в том же или в другом варианте осуществления, значение в заголовке блока NAL, например, поле временного идентификатора, может использоваться для указания не только временного, но и пространственного уровня. Это дает определенные преимущества для определенных систем; например, существующие выбранные блоки пересылки (SFU, Selected Forwarding Unit), созданные и оптимизированные для пересылки, выбранной на временном уровне на основе значения временного идентификатора заголовка блока NAL, могут использоваться без модификации для масштабируемых сред. Чтобы сделать это возможным, может существовать требование для соответствия между размером кодированного изображения и временным уровнем, указываемым полем временного идентификатора в заголовке блока NAL.[0090] The disclosed invention can be and is used in such an environment according to embodiments. In some cases, in the same or in a different embodiment, a value in the NAL unit header, such as a temporal identifier field, may be used to indicate not only the temporal but also the spatial level. This provides certain advantages for certain systems; for example, existing Selected Forwarding Units (SFUs) created and optimized for forwarding selected at the temporal level based on the NAL Header Temporal Identifier value can be used without modification for scalable environments. To make this possible, there may be a requirement for a match between the encoded picture size and the temporal level indicated by the temporal identifier field in the NAL unit header.

[0091] Согласно вариантам осуществления, информация о зависимости между уровнями может передаваться в VPS (или в сообщениях DPS, SPS или SEI). Информация о зависимости между уровнями может использоваться для идентификации того, какой уровень используется в качестве опорного для декодирования текущего уровня. Декодированное изображение picA в прямо зависимом уровне с nuh_layer_id, равным т, может использоваться в качестве опорного изображения для изображения picB с nuh_layer_id, равным n, когда n больше, чем m, и два изображения picA и picB относятся к одному и тому же блоку доступа.[0091] According to embodiments, inter-layer dependency information may be conveyed in the VPS (or in DPS, SPS, or SEI messages). The dependency information between layers may be used to identify which layer is used as a reference for decoding the current layer. The decoded picture picA in the forward layer with nuh_layer_id equal to m can be used as a reference picture for picture picB with nuh_layer_id equal to n when n is greater than m and the two pictures picA and picB belong to the same access unit.

[0092] Согласно тому же или другим вариантам осуществления, список межуровневых опорных изображений (ILRP, Inter-Layer Reference Picture) может явно передаваться со списком опорных изображений внутреннего предсказания (IPRP, biter-Prediction Reference Picture) в заголовке слайса (или в наборе параметров). И списки ILRP, и списки IPRP могут использоваться для формирования списков опорных изображений предсказания в прямом и в обратном направлениях.[0092] According to the same or other embodiments, a list of inter-layer reference pictures (ILRP, Inter-Layer Reference Picture) can be explicitly transmitted with a list of reference pictures of internal prediction (IPRP, biter-Prediction Reference Picture) in the slice header (or in the parameter set ). Both ILRPs and IPRPs can be used to generate forward and backward prediction reference picture lists.

[0093] Согласно тому же или другим вариантам осуществления, элементы синтаксиса в VPS (или в другом наборе параметров) могут указывать, является ли каждый уровень зависимым или независимым. В примере (700), показанном на фиг.7, элемент синтаксиса vps _ax_layers_minus1 (703) плюс 1 может указывать максимальное количество уровней, разрешенных в одном или более, потенциально всех, CVS, относящихся к VPS (701). Элемент синтаксиса vps_all_independent_layers_flag (704), равный 1, может указывать, что все уровни в CVS кодируются независимо, то есть без использования межуровневого предсказания. Элемент синтаксиса vps_all_independent_layers_flag (704), равный 0, может указывать, что один или более уровней в CVS могут использовать межуровневое предсказание. Когда этот элемент синтаксиса отсутствует, можно полагать, что значение элемента синтаксиса vps_all_independent_layers_flag равно 1. Когда значение элемента синтаксиса vps_all_independent_layers_flag равно 1, можно полагать, что значение элемента синтаксиса vps_independent_layer_flag[i] (706) равно 1. Когда значение элемента синтаксиса vps_all_independent_layers_flag равно 0, можно полагать, что значение элемента синтаксиса vps_independent_layer_flag[0] равно 1. На фиг.7 показано, что элемент синтаксиса vps_independent_layer_flag[i] (706), равный 1, может указывать, что на уровне с индексом i межуровневое предсказание не используется. Элемент синтаксиса vps_independent_layer_flag[i], равный 0, может указывать, что на уровне с индексом i может использоваться межуровневое предсказание, а vps_layer_dependency_flag [i] имеется в VPS. Элемент синтаксиса vps_direct_dependency_flagf[i][j] (707), равный 0, может указывать, что уровень с индексом j не является прямым опорным уровнем для уровня с индексом i. Элемент синтаксиса vps_direct_dependency_flag[i][j], равный 1, может указывать, что уровень с индексом j не является прямым опорным уровнем для уровня с индексом i. Когда vps_direct_dependency_flagf[i][j] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minusl включительно, можно полагать, что он равен 0. Переменная DirectDependentLayerIdx[i][j], указывающая j-ый прямой зависимый уровень i-го уровня, определяется следующим образом:[0093] According to the same or other embodiments, the syntax elements in the VPS (or other parameter set) may indicate whether each layer is dependent or independent. In the example (700) shown in FIG. 7, the vps syntax element _ax_layers_minus1 (703) plus 1 may indicate the maximum number of layers allowed in one or more, potentially all, VPS-related CVSs (701). The syntax element vps_all_independent_layers_flag (704) equal to 1 may indicate that all layers in CVS are encoded independently, ie without using inter-layer prediction. The syntax element vps_all_independent_layers_flag (704) equal to 0 may indicate that one or more layers in CVS may use inter-layer prediction. When this syntax element is absent, the value of the vps_all_independent_layers_flag syntax element may be considered to be 1. When the value of the vps_all_independent_layers_flag syntax element is 1, the value of the vps_independent_layer_flag[i] (706) syntax element may be considered to be 1. When the value of the vps_all_independent_layers_flag syntax element is 0, the value of the syntax element vps_independent_layer_flag[0] may be considered to be 1. FIG. 7 shows that the syntax element vps_independent_layer_flag[i] (706) of 1 may indicate that inter-layer prediction is not used at the layer index i. The syntax element vps_independent_layer_flag[i] equal to 0 may indicate that inter-layer prediction can be used at the layer index i and vps_layer_dependency_flag[i] is present in the VPS. The syntax element vps_direct_dependency_flagf[i][j] (707) equal to 0 may indicate that the level at index j is not a direct reference level for the level at index i. The vps_direct_dependency_flag[i][j] syntax element equal to 1 may indicate that the level at index j is not a direct reference level for the level at index i. When vps_direct_dependency_flagf[i][j] is absent for i and j in the range 0 to vps_max_layers_minusl inclusive, it can be assumed to be 0. DirectDependentLayerIdx[i][j] variable indicating the j-th direct dependent layer of the i-th layer is defined as follows:

Figure 00000002
Figure 00000002

[0094] Переменная GeneralLayerldx [i], указывающая индекс уровня с nuh_layer_id, равным vps_layer_id [i], определяется следующим образом:[0094] The variable GeneralLayerldx[i] indicating the index of the layer with nuh_layer_id equal to vps_layer_id[i] is defined as follows:

Figure 00000003
Figure 00000003

[0095] Согласно тому же или другим вариантам осуществления? на фиг.7 показано, что, когда значение элемента синтаксиса vps_max_layers_minusl больше нуля и значение элемента синтаксиса vps_all_independent_layers_flag равно нулю, могут передаваться элементы синтаксиса vps_output_layers_mode и vps_output_layer_flags [i]. Элемент синтаксиса vps_output_layers_mode (708), равный 0, может указывать, что выводится только самый высокий уровень. Элемент синтаксиса vps_output_layer_mode, равный 1, может указывать, что могут выводиться все уровни. Элемент синтаксиса vps_output_layer_mode, равный 2, может указывать, что выводятся уровни с элементом синтаксиса vps_output_layer_flag [i] (709), равным 1. Значение элемента синтаксиса vps_output_layers_mode должно находиться в диапазоне от 0 до 2 включительно. Значение 3 элемента синтаксиса vps_output_layer_mode может быть зарезервировано для использования в будущем. Когда этот элемент синтаксиса отсутствует, можно полагать, что значение элемента синтаксиса vps_output_layers_mode равно 1. Элемент синтаксиса vps_output_layer_flag[i], равный 1, может указывать, что выводится i-ый уровень. Элемент синтаксиса vps_output_layer_flag[i], равный 0, может указывать, что i-ый уровень не выводится. Список OutputLayerFlagf[i], для которого значение 1 может указывать, что выводится i-ый уровень, а значение 0 указывает, что i-ый уровень не выводится, определяется следующим образом:[0095] According to the same or other embodiments? 7 shows that when the value of the vps_max_layers_minusl syntax element is greater than zero and the value of the vps_all_independent_layers_flag syntax element is zero, the vps_output_layers_mode and vps_output_layer_flags [i] syntax elements can be transmitted. The syntax element vps_output_layers_mode (708) equal to 0 may indicate that only the highest layer is output. The syntax element vps_output_layer_mode equal to 1 may indicate that all levels may be output. The vps_output_layer_mode syntax element equal to 2 may indicate that levels are output with the vps_output_layer_flag [i] (709) syntax element equal to 1. The value of the vps_output_layers_mode syntax element must be in the range 0 to 2 inclusive. The value 3 of the vps_output_layer_mode syntax element may be reserved for future use. When this syntax element is absent, the value of the vps_output_layers_mode syntax element may be assumed to be 1. The vps_output_layer_flag[i] syntax element equal to 1 may indicate that the i-th layer is being output. The syntax element vps_output_layer_flag[i] equal to 0 may indicate that the i-th layer is not output. The list OutputLayerFlagf[i], for which a value of 1 can indicate that the i-th level is output, and a value of 0 indicates that the i-th level is not output, is defined as follows:

Figure 00000004
Figure 00000004

[0096] Согласно тому же или другим вариантам осуществления, вывод текущего изображения может быть определен следующим образом:[0096] According to the same or other embodiments, the output of the current image can be defined as follows:

- Если значение элемента синтаксиса PictureOutputFlag равно 1, и значение элемента синтаксиса DpbOutputTimef [n] равно значению элемента синтаксиса CpbRemovalTime[n], то выводится текущее изображение.- If the value of the syntax element PictureOutputFlag is 1, and the value of the syntax element DpbOutputTimef[n] is equal to the value of the syntax element CpbRemovalTime[n], then the current image is output.

- В противном случае, если значение элемента синтаксиса PictureOutputFlag равно 0, то текущее изображение не выводится, но будет сохранено в DPB, как указано в ниже.- Otherwise, if the value of the PictureOutputFlag syntax element is 0, then the current image is not output, but will be stored in the DPB as specified in below.

В противном случае (значение элемента синтаксиса PictureOutputFlag равно 1, а значение элемента синтаксиса DpbOutputTimef [n] больше значения элемента синтаксиса CpbRemovalTime [n]) текущее изображение выводится позже и сохраняется в DPB (как указано ниже) и выводится в момент времени DpbOutputTimef [n], если не указано, что оно выводится путем декодирования или вывода элемента синтаксиса no_output_of_prior_pics_flag, равного 1, в момент времени, предшествующий времени DpbOutputTimef [n].Otherwise (the value of the PictureOutputFlag syntax element is 1 and the value of the DpbOutputTimef[n] syntax element is greater than the value of the CpbRemovalTime[n] syntax element), the current image is output later and stored in the DPB (as specified below) and output at time DpbOutputTimef[n] , unless specified to be output by decoding or outputting the no_output_of_prior_pics_flag syntax element equal to 1 at a time prior to DpbOutputTimef[n].

При выводе изображение обрезается с использованием соответствующего окнаOn output, the image is cropped using the appropriate window

обрезки, указанного в PPS для изображения.cropping specified in the PPS for the image.

[0097] Согласно тому же или другим вариантам осуществления, элемент синтаксиса PictureOutputFlag может быть определен следующим образом:[0097] According to the same or other embodiments, the PictureOutputFlag syntax element can be defined as follows:

- Если выполняется одно из следующих условий, то для PictureOutputFlag устанавливается значение 0:- If one of the following conditions is true, then PictureOutputFlag is set to 0:

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

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

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

значение PicOrderCntVal текущего изображения меньше значения RpPicOrderCntVal связанного изображения GDR.the PicOrderCntVal value of the current picture is less than the RpPicOrderCntVal value of the associated GDR picture.

- значение vps_output_layer_mode равно 0 или 2, а значение OutputLayerFlag[GeneralLayerldx[nuh layer id]] равно 0.- vps_output_layer_mode is 0 or 2 and OutputLayerFlag[GeneralLayerldx[nuh layer id]] is 0.

- В противном случае для PictureOutputFlag устанавливается значение pic_output_flag.- Otherwise, PictureOutputFlag is set to pic_output_flag.

[0098] Согласно тому же или другим вариантам осуществления элемент синтаксиса PictureOutputFlag также может быть определен следующим образом:[0098] According to the same or other embodiments, the PictureOutputFlag syntax element can also be defined as follows:

Если выполняется одно из следующих условий, то для PictureOutputFlagIf one of the following conditions is true, then PictureOutputFlag

устанавливается значение 0:set to 0:

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

- значение gdr_enab_led_flag равно 1, а текущее изображение является изображением GDR с NoIncorrectPicOutputFlag, равным 1.- gdr_enab_led_flag is 1 and the current image is a GDR image with NoIncorrectPicOutputFlag set to 1.

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

значение PicOrderCntVal текущего изображения меньше значения RpPicOrderCntVal связанного изображения GDR.the PicOrderCntVal value of the current picture is less than the RpPicOrderCntVal value of the associated GDR picture.

Значение vps_output_layer_mode равно 0, а текущий блок доступа содержит изображение, у которого значение PictureOutputFlag равно 1, а значение nuh_layer_id nuhLid больше, чем у текущего изображения, и относится к выходному уровню (то есть, значение OutputLayerFlag[GeneralLayerIdx[nuhLid]] равно 1).The value of vps_output_layer_mode is 0 and the current accessor contains an image that has a PictureOutputFlag value of 1 and a nuh_layer_id nuhLid value greater than that of the current image that is related to the output layer (that is, the value of OutputLayerFlag[GeneralLayerIdx[nuhLid]] is 1) .

- значение vps_output_layer_mode равно 2, а значение OutputLayerFlag[GeneralLayerldx[nuh layer id]] равно 0.- vps_output_layer_mode is 2 and OutputLayerFlag[GeneralLayerldx[nuh layer id]] is 0.

- В противном случае для PictureOutputFlag устанавливается значение pic_output_flag.- Otherwise, PictureOutputFlag is set to pic_output_flag.

[0099] Согласно тому же или другим вариантам осуществления, флаг в VPS (или в другом наборе параметров) может указывать, передаются ли списки ILRP для текущего слайса (или изображения). Например, в примере (800), показанном на фиг.8, элемент синтаксиса inter_layer_refjtics_jtresent flag, равный 0, может указывать, что никакие ILRP не используются для внутреннего предсказания кодированных изображений в CVS. Элемент синтаксиса inter_layer_ref_pics flag, равный 1, может указывать, что ILRP могут использоваться для внутреннего предсказания одного или более кодированных изображений в CVS.[0099] According to the same or other embodiments, a flag in the VPS (or another set of parameters) may indicate whether ILRPs are being transmitted for the current slice (or picture). For example, in the example (800) shown in FIG. 8, the inter_layer_refjtics_jtresent flag syntax element equal to 0 may indicate that no ILRPs are used for intra-coded picture prediction in CVS. An inter_layer_ref_pics flag syntax element of 1 may indicate that ILRPs may be used for intra-prediction of one or more coded pictures in CVS.

[0100] Согласно тому же или другим вариантам осуществления, список межуровневых опорных изображений (ILRP, Inter-Layer Reference Picture) для изображения на k-ом уровне может передаваться или может не передаваться, когда k-ый уровень является зависимым уровнем. Однако список ILRP для изображения на k-ом уровне не должен передаваться, и никакой ILRP не должен вводиться в список опорных изображений, когда k-ый уровень является независимым уровнем.[0100] According to the same or other embodiments, an Inter-Layer Reference Picture List (ILRP) for an image in the k-th layer may or may not be transmitted when the k-th layer is layer dependent. However, the ILRP list for a picture in the k-th layer should not be transmitted, and no ILRP should be entered in the reference picture list when the k-th layer is an independent layer.

Для inter_layer_ref_pics_present_flag может быть установлено значение 0, когда значение sps_video_parameter_set_id равно 0, когда значение nuhlayerid равно 0 или когда значение vpsindependentlayer_flag[GeneralLayerIdx[nuh layer id]] равно 1.inter_layer_ref_pics_present_flag may be set to 0 when sps_video_parameter_set_id is 0, when nuhlayerid is 0, or when vpsindependentlayer_flag[GeneralLayerIdx[nuh layer id]] is 1.

[0101] Согласно тому же или другим вариантам осуществления, в примере (900) на фиг.9 показано, что списки опорных изображений RefPicList[0] и RefPicListf[1] могут формироваться следующим образом:[0101] According to the same or other embodiments, example (900) in FIG. 9 shows that reference picture lists RefPicList[0] and RefPicListf[1] can be formed as follows:

Figure 00000005
Figure 00000005

Figure 00000006
Figure 00000006

Figure 00000007
Figure 00000007

[0102] Описанные выше методы передачи параметров адаптивного разрешения могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг.10 показана компьютерная система (1000), пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.[0102] The adaptive resolution parameter transmission techniques 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. 10 shows a computer system (1000) suitable for implementing some embodiments of the disclosed invention.

[0103] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или языка программирования, который может ассемблироваться, компилироваться, компоноваться или с помощью подобных механизмов формировать код, содержащий команды, которые могут выполняться непосредственно или интерпретироваться, выполняться в виде микрокоманд и т.п. центральными процессорами компьютера (CPU, Central Processing Unit), графическими процессорами (GPU, Graphics Processing Unit) ит.п.[0103] Computer software may be coded using any suitable machine code or programming language that can be assembled, compiled, linked, or similar mechanisms to form code containing instructions that can be directly executed or interpreted, executed as microinstructions, etc. .P. computer central processing units (CPU, Central Processing Unit), graphic processors (GPU, Graphics Processing Unit), etc.

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

[0105] Компоненты, показанные на фиг.10 для компьютерной системы (1000), носят иллюстративный характер и не призваны налагать какое-либо ограничение на объем применения или функциональные возможности компьютерного программного обеспечения, реализующего варианты осуществления настоящего изобретения. Конфигурацию компонентов также не следует интерпретировать как имеющую какую-либо зависимость или требование в связи с любым одним или комбинацией компонентов, показанных в иллюстративном варианте осуществления компьютерной системы (1000).[0105] The components shown in FIG. 10 for the computer system (1000) are illustrative and are not intended to impose any limitation on the scope of application or functionality of the computer software implementing embodiments of the present invention. The configuration of the components should also not be interpreted as having any dependency or requirement in connection with any one or combination of the components shown in the illustrative embodiment of the computer system (1000).

[0106] Компьютерная система (1000) может включать в себя некоторые устройства ввода интерфейса с человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса с человеком также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).[0106] The computer system (1000) may include some human interface input devices. Such an input device may be responsible for input by one or more users through, for example, tactile input (e.g., keystrokes, waving, glove movements), audio input (e.g., voice, claps), visual input (e.g., gestures), olfactory input (not shown). Human 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, external sound), images (e.g. scanned images, photographic images received from a still image camera). ), video (eg, 2D video, 3D video including stereoscopic video).

[0107] Входной человеческий интерфейс устройства может включать в себя один или более следующих компонентов (по одному из изображенных): клавиатуры (1001), мыши (1002), сенсорной панели (1003), сенсорного экрана (1010), джойстика (1005), микрофона (1006), сканера (1007), камеры (1008).[0107] The input human interface of the device may include one or more of the following components (one of each depicted): keyboard (1001), mouse (1002), touch pad (1003), touch screen (1010), joystick (1005), microphone (1006), scanner (1007), camera (1008).

[0108] Компьютерная система (1000) также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана (1010) или джойстика (1005), но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например, громкоговорители (1009), наушники (не показаны)), устройства визуального вывода (например, экраны (1010), в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеров (не показаны).[0108] The computer system (1000) may also include some human interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (e.g., tactile feedback via touch screen (1010) or joystick (1005), but may also be tactile feedback devices that do not serve as input devices), audio output devices (e.g., speakers (1009), headphones (not shown)), visual output devices (e.g., screens (1010), including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capabilities , each with or without haptic feedback capabilities, some of which are capable of 2D visual output or more than 3D output through, for example, stereographic output; virtual reality goggles (not shown), holographic displays, and smoke tanks (not shown)) and printers (not shown).

[0109] Компьютерная система (1000) также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW (1020) с носителями (1021) CD/DVD и т.п., карты (1022) флэш-памяти, сменный жесткий диск или твердотельный диск (1023), традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[0109] The computer system (1000) may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW (1020) with CD/DVD media (1021), etc. .p., flash memory cards (1022), removable hard drive or solid state drive (1023), conventional magnetic media such as tape and floppy disk (not shown), dedicated ROM/ASIC/PLD based devices such as security hardware keys (not shown) and the like.

[0110] Специалисты в данной области техники также должны понимать, что термин «компьютерно-считываемые носители», используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[0110] Those skilled in the art should also understand that the term "computer-readable media" as used in connection with the invention disclosed herein does not encompass transmission media, carrier waves, or other short-term signals.

[0111] Компьютерная система (1000) также может включать в себя интерфейс с одной или более сетями связи. Сети могут быть, например, беспроводными, проводными, оптическими. Сети могут быть, дополнительно, локальными, глобальными, городскими, транспортными и промышленными, реального времени, допускающими задержку и т.д. Примеры сетей включают в себя локальные сети, например, Ethernet, беспроводные LAN, сотовые сети, в том числе GSM, 3G, 4G, 5G, LTE и т.п., глобальные цифровые сети проводного или беспроводного телевидения, в том числе кабельное телевидение, спутниковое телевидение и наземное телевещание, транспортные и промышленные включают в себя CANBus и т.д. Некоторые сети обычно требуют внешних адаптеров сетевого интерфейса, которые подключены к некоторым портам данных общего назначения или периферийным шинам (1049) (например, USB-порты компьютерной системы (1000)); другие обычно встраиваются в ядро компьютерной системы (1000) путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему PC или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (1000) может осуществлять связь с другими объектами. Такая связь может быть однонаправленной с возможностью только приема (например, телевещания), однонаправленной с возможностью только передачи (например, CANBus к некоторым устройствам CANBus) или двунаправленной, например, к другим компьютерным системам с использованием локальной или глобальной цифровой сети. Некоторые протоколы и стеки протоколов могут использоваться в каждой из этих сетей и вышеописанных сетевых интерфейсов.[0111] The computer system (1000) may also include an interface to one or more communication networks. Networks can be, for example, wireless, wired, optical. Networks may additionally be local, wide area, metropolitan, transport and industrial, real-time, latency, etc. Examples of networks include local area networks such as Ethernet, wireless LANs, cellular networks including GSM, 3G, 4G, 5G, LTE, etc., digital wide area networks for wired or wireless television, including cable television, satellite TV and terrestrial TV, transport and industrial include CANBus, etc. Some networks typically require external network interface adapters that are connected to some general purpose data ports or peripheral buses (1049) (for example, computer system USB ports (1000)); others are typically built into the core of the computer system (1000) by connecting to a system bus as described below (eg, an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1000) can communicate with other entities. Such communications may be unidirectional with receive-only capability (eg, broadcast), unidirectional with transmit-only capability (eg, CANBus to some CANBus devices), or bidirectional, eg, to other computer systems using a local or wide area digital network. Several protocols and protocol stacks may be used on each of these networks and the network interfaces described above.

[0112] Вышеупомянутые устройства человеческого интерфейса, доступные человеку запоминающие устройства и сетевые интерфейсы могут подключаться к ядру (1040) компьютерной системы (1000).[0112] The aforementioned human interface devices, human accessible storage devices, and network interfaces can be connected to the core (1040) of the computer system (1000).

[0113] Ядро (1040) может включать в себя один или более центральных процессоров (CPU) (1041), графические процессоры (GPU) (1042), специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Arrays) (1043), аппаратные ускорители для некоторых задач (1044) и т.д. Эти устройства, совместно с постоянной памятью (ROM) (1045), оперативной памятью (1046), внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. (1047), могут соединяться посредством системной шины (1048). В некоторых компьютерных системах системная шина (1048) может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине (1048) ядра, либо через периферийную шину (1049). Архитектуры периферийной шины включают в себя PCI, USB и т.п.[0113] The core (1040) may include one or more central processing units (CPUs) (1041), graphics processing units (GPUs) (1042), specialized programmable processing modules in the form of Field Programmable Gate Arrays (FPGAs). ) (1043), hardware accelerators for some tasks (1044), etc. These devices, together with read-only memory (ROM) (1045), random access memory (1046), high capacity internal storage such as user-inaccessible internal hard drives, SSD, etc. (1047) can be connected via the system bus (1048). In some computer systems, the system bus (1048) may be available in the form of one or more physical connectors to allow for expansions with additional CPUs, GPUs, and the like. Peripherals can be connected either directly to the system bus (1048) of the kernel, or via a peripheral bus (1049). Peripheral bus architectures include PCI, USB, and the like.

[0114] CPU (1041), GPU (1042), FPGA (1043) и ускорители (1044) могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM (1045) или RAM (1046). Переходные данные также могут храниться в RAM (1046), тогда как постоянные данные могут храниться, например, во внутреннем хранилище (1047) данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с один или более CPU (1041), GPU (1042), хранилищем (1047) данных большой емкости, ROM (1045), RAM (1046) и т.п.[0114] CPUs (1041), GPUs (1042), FPGAs (1043), and accelerators (1044) may execute some instructions, which together may constitute the aforementioned computer code. This computer code may be stored in ROM (1045) or RAM (1046). Transient data may also be stored in RAM (1046), while persistent data may be stored, for example, in an internal mass storage (1047). Fast storage and retrieval from any storage device can be achieved through the use of cache memory, which can be closely associated with one or more CPU (1041), GPU (1042), mass storage (1047), ROM (1045), RAM (1046) etc.

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

[0116] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру (1000), и, в частности, ядро (1040) может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителей. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра (1040), носящим долговременный характер, например, внутренним хранилищем (1047) данных большой емкости или ROM (1045). Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром (1040). Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными требованиями. Программное обеспечение может предписывать ядру (1040) и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM (1046), и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель (1044)), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, Integrated Circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.[0116] By way of example, and not limitation, a computer system having an architecture (1000), and in particular a core (1040), can provide functionality through execution by processor(s) (including(and) CPU, GPU, FPGAs, accelerators, etc.) software embodied in one or more tangible computer-readable media. Such computer-readable media can be media associated with the user-accessible mass storage described above, as well as some persistent storage (1040) such as internal mass storage (1047) or ROM (1045). Software implementing various embodiments of the present invention may be stored on such devices and executed by the core (1040). The computer-readable medium may include one or more memory devices or microcircuits, in accordance with specific requirements. The software may cause the core (1040) and, in particular, its processors (including CPU, GPU, FPGA, etc.) to execute specific processes or specific parts of the specific processes described here, including setting data structures stored in RAM (1046) , and modifying such data structures according to processes defined by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., an accelerator (1044)) that may operate in place of or in conjunction with software to perform specific processes or specific portions of the specific processes described herein. A reference to software may cover logic, and vice versa when appropriate. Reference to computer-readable media can encompass a circuit (eg, an integrated circuit (IC, Integrated Circuit)) where software is stored for execution, a circuit embodying logic for execution, or both, as appropriate. The present invention encompasses any suitable combination of hardware and software.

[0117] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[0117] Although several illustrative embodiments are described here, variations, permutations, and various replacement equivalents are possible and are within the scope of the invention. Thus, those skilled in the art can provide numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the invention and thus fall within its spirit and scope.

Claims (31)

1. Способ видеодекодирования масштабируемого битового потока, содержащий:1. A method for video decoding a scalable bitstream, comprising: синтаксический анализ по меньшей мере одного набора параметров видео (VPS), содержащего по меньшей мере один элемент синтаксиса, указывающий, является ли по меньшей мере один уровень в масштабируемом битовом потоке одним из зависимого уровня масштабируемого битового потока и независимого уровня масштабируемого битового потока;parsing at least one video parameter set (VPS) comprising at least one syntax element indicating whether at least one layer in the scalable bitstream is one of a dependent scalable bitstream layer and an independent scalable bitstream layer; декодирование изображения в зависимом уровне путем анализа и интерпретации списка межуровневых опорных изображений (ILRP); иdecoding the picture in the dependent layer by parsing and interpreting an inter-layer reference picture list (ILRP); and декодирование каждого из изображения в независимом уровне и другого изображения в зависимом уровне без синтаксического анализа и интерпретации списка ILRP.decoding each of the picture in the independent layer and the other picture in the dependent layer without parsing and interpreting the ILRP list. 2. Способ по п. 1, в котором декодирование изображения в независимом уровне включает в себя анализ и интерпретацию списка опорных изображений, в котором не содержатся декодированные изображения другого уровня.2. The method of claim 1, wherein decoding an image in an independent layer includes parsing and interpreting a list of reference pictures that does not contain decoded images of another layer. 3. Способ по п. 1, в котором в списке межуровневых опорных изображений содержится декодированное изображение другого уровня.3. The method of claim 1, wherein the list of inter-layer reference pictures contains a decoded picture of another layer. 4. Способ по п. 1, в котором анализ по меньшей мере одного VPS также включает в себя определение, указывает ли другой элемент синтаксиса максимальное количество уровней.4. The method of claim 1, wherein parsing the at least one VPS also includes determining if another syntax element specifies a maximum number of levels. 5. Способ по п. 1, в котором анализ по меньшей мере одного VPS также включает в себя определение, содержит ли VPS флаг, указывающий, является ли другой уровень в масштабируемом битовом потоке опорным уровнем для упомянутого по меньшей мере одного уровня.5. The method of claim 1, wherein parsing the at least one VPS also includes determining if the VPS contains a flag indicating whether another layer in the scalable bitstream is a reference layer for the at least one layer. 6. Способ по п. 5, в котором анализ по меньшей мере одного VPS также включает в себя определение, указывает ли упомянутый флаг другой уровень в качестве опорного уровня для упомянутого по меньшей мере одного уровня путем указания индекса другого уровня и индекса упомянутого по меньшей мере одного уровня.6. The method of claim 5, wherein parsing at least one VPS also includes determining if said flag indicates another layer as a reference layer for said at least one layer by specifying an index of another layer and an index of said at least one level. 7. Способ по п. 5, в котором анализ по меньшей мере одного VPS также включает в себя определение, указывает ли упомянутый флаг, что другой уровень не является опорным уровнем для упомянутого по меньшей мере одного уровня путем указания индекса другого уровня и индекса упомянутого по меньшей мере одного уровня.7. The method of claim 5, wherein parsing the at least one VPS also includes determining if said flag indicates that the other layer is not a reference layer for said at least one layer by specifying an index of another layer and an index of said at least one level. 8. Способ по п. 1, в котором анализ по меньшей мере одного VPS также включает в себя определение, содержит ли VPS флаг, указывающий, должно ли быть декодировано множество уровней, содержащее упомянутый по меньшей мере один уровень, путем интерпретации списка ILRP.8. The method of claim 1, wherein parsing the at least one VPS also includes determining if the VPS contains a flag indicating whether a plurality of layers containing said at least one layer should be decoded by interpreting the ILRP list. 9. Способ по п. 1, в котором анализ по меньшей мере одного VPS также включает в себя определение, содержит ли VPS флаг, указывающий, должно ли быть декодировано множество уровней, содержащее упомянутый по меньшей мере один уровень, без интерпретации списка ILRP.9. The method of claim 1, wherein analyzing the at least one VPS also includes determining if the VPS contains a flag indicating whether a plurality of layers containing said at least one layer should be decoded without interpreting the ILRP list. 10. Способ по п. 1, в котором список ILRP передают со списком опорных изображений внутреннего предсказания (IPRP) в VPS.10. The method of claim 1, wherein the ILRP list is transmitted with the intra prediction reference picture (IPRP) list to the VPS. 11. Устройство для видеодекодирования масштабируемого битового потока, содержащее:11. A device for video decoding of a scalable bit stream, comprising: по меньшей мере одну память, сконфигурированную для хранения компьютерного программного кода; иat least one memory configured to store computer program code; and по меньшей мере один процессор, сконфигурированный для доступа к компьютерному программному коду и для работы под управлением компьютерного программного кода, при этом компьютерный программный код содержит:at least one processor configured to access the computer program code and to operate under the control of the computer program code, the computer program code comprising: код синтаксического анализа, сконфигурированный таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один набор параметров видео (VPS), содержащий по меньшей мере один элемент синтаксиса, указывающий, является ли по меньшей мере один уровень в масштабируемом битовом потоке одним из зависимого уровня масштабируемого битового потока и независимого уровня масштабируемого битового потока;parsing code configured such that at least one processor parses at least one video parameter set (VPS) containing at least one syntax element indicating whether at least one layer in the scalable bitstream is one of the dependent a scalable bitstream layer and an independent scalable bitstream layer; первый код декодирования, сконфигурированный таким образом, чтобы по меньшей мере один процессор декодировал изображение в зависимом уровне путем анализа и интерпретации списка межуровневых опорных изображений (ILRP); иa first decoding code configured such that at least one processor decodes a picture in a dependent layer by parsing and interpreting an inter-layer reference picture list (ILRP); and второй код декодирования, сконфигурированный таким образом, чтобы по меньшей мере один процессор декодировал каждое из изображения в независимом уровне и другого изображения в зависимом уровне без синтаксического анализа и интерпретации списка ILRP.a second decoding code configured such that at least one processor decodes each of the picture in the independent layer and the other picture in the dependent layer without parsing and interpreting the ILRP list. 12. Устройство по п. 11, в котором второй код декодирования дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор декодировал изображение в независимом уровне путем анализа и интерпретации списка опорных изображений, в котором не содержатся декодированные изображения другого уровня.12. The apparatus of claim 11, wherein the second decoding code is further configured such that at least one processor decodes an independent layer picture by parsing and interpreting a reference picture list that does not contain other layer decoded pictures. 13. Устройство по п. 11, в котором в списке межуровневых опорных изображений содержится декодированное изображение другого уровня.13. The apparatus of claim 11, wherein the list of inter-layer reference pictures contains a decoded picture of another layer. 14. Устройство по п. 11, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли другой элемент синтаксиса максимальное количество уровней.14. The apparatus of claim 11, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining whether another syntax element specifies a maximum number of levels. 15. Устройство по п. 11, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, является ли другой уровень в масштабируемом битовом потоке опорным уровнем для упомянутого по меньшей мере одного уровня.15. The apparatus of claim 11, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating whether another layer in the scalable bitstream is a reference layer. for said at least one level. 16. Устройство по п. 15, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли упомянутый флаг другой уровень в качестве опорного уровня для упомянутого по меньшей мере одного уровня путем указания индекса другого уровня и индекса упомянутого по меньшей мере одного уровня.16. The apparatus of claim 15, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining if said flag indicates another layer as a reference layer for said at least one layer. by specifying an index of another level and an index of said at least one level. 17. Устройство по п. 15, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, указывает ли упомянутый флаг, что другой уровень не является опорным уровнем для упомянутого по меньшей мере одного уровня путем указания индекса другого уровня и индекса упомянутого по меньшей мере одного уровня.17. The apparatus of claim 15, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining if said flag indicates that another layer is not a reference layer for said at least one level by specifying an index of another level and an index of said at least one level. 18. Устройство по п. 11, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, должно ли быть декодировано множество уровней, содержащее упомянутый по меньшей мере один уровень, путем интерпретации списка ILRP.18. The apparatus of claim. 11, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating whether a plurality of layers should be decoded containing the at least one level, by interpreting the ILRP list. 19. Устройство по п. 11, в котором код синтаксического анализа дополнительно конфигурирован таким образом, чтобы по меньшей мере один процессор анализировал по меньшей мере один VPS путем определения, содержит ли VPS флаг, указывающий, должно ли быть декодировано множество уровней, содержащее упомянутый по меньшей мере один уровень, без интерпретации списка ILRP.19. The apparatus of claim. 11, wherein the parsing code is further configured such that at least one processor parses at least one VPS by determining whether the VPS contains a flag indicating whether a plurality of layers should be decoded containing the at least one level, without interpreting the ILRP list. 20. Компьютерно-считываемый носитель, на котором хранится программа, сконфигурированная так, чтобы заставлять компьютер выполнять:20. A computer-readable medium that stores a program configured to cause a computer to do: синтаксический анализ по меньшей мере одного набора параметров видео (VPS), содержащего по меньшей мере один элемент синтаксиса, указывающий, является ли по меньшей мере один уровень в масштабируемом битовом потоке одним из зависимого уровня масштабируемого битового потока и независимого уровня масштабируемого битового потока;parsing at least one video parameter set (VPS) comprising at least one syntax element indicating whether at least one layer in the scalable bitstream is one of a dependent scalable bitstream layer and an independent scalable bitstream layer; декодирование изображения в зависимом уровне путем анализа и интерпретации списка межуровневых опорных изображений (ILRP); иdecoding the picture in the dependent layer by parsing and interpreting an inter-layer reference picture list (ILRP); and декодирование каждого из изображения в независимом уровне и другого изображения в зависимом уровне без синтаксического анализа и интерпретации списка ILRP.decoding each of the picture in the independent layer and the other picture in the dependent layer without parsing and interpreting the ILRP list.
RU2021128764A 2019-09-20 2020-09-18 Signalling of inter-layer prediction in a video bitstream RU2783382C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/903,647 2019-09-20
US17/019,567 2020-09-14

Publications (1)

Publication Number Publication Date
RU2783382C1 true RU2783382C1 (en) 2022-11-11

Family

ID=

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140301456A1 (en) * 2013-04-08 2014-10-09 Qualcomm Incorporated Inter-layer picture signaling and related processes
US20140314148A1 (en) * 2013-04-17 2014-10-23 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US20140362910A1 (en) * 2013-06-11 2014-12-11 Qualcomm Incorporated Processing bitstream constraints relating to inter-layer prediction types in multi-layer video coding
US20150319453A1 (en) * 2012-12-26 2015-11-05 Electronics And Telecommunications Research Institute Method for encoding/decoding images, and apparatus using same
US20160227232A1 (en) * 2013-10-12 2016-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding multilayer video, and method and apparatus for decoding multilayer video
US9648326B2 (en) * 2013-07-02 2017-05-09 Qualcomm Incorporated Optimizations on inter-layer prediction signalling for multi-layer video coding
US9813722B2 (en) * 2013-12-02 2017-11-07 Nokia Technologies Oy Video encoding and decoding
US10368089B2 (en) * 2013-01-23 2019-07-30 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150319453A1 (en) * 2012-12-26 2015-11-05 Electronics And Telecommunications Research Institute Method for encoding/decoding images, and apparatus using same
US10368089B2 (en) * 2013-01-23 2019-07-30 Samsung Electronics Co., Ltd. Video encoding method and apparatus, and video decoding method and apparatus
US20140301456A1 (en) * 2013-04-08 2014-10-09 Qualcomm Incorporated Inter-layer picture signaling and related processes
US20140314148A1 (en) * 2013-04-17 2014-10-23 Nokia Corporation Apparatus, a method and a computer program for video coding and decoding
US20140362910A1 (en) * 2013-06-11 2014-12-11 Qualcomm Incorporated Processing bitstream constraints relating to inter-layer prediction types in multi-layer video coding
US9648326B2 (en) * 2013-07-02 2017-05-09 Qualcomm Incorporated Optimizations on inter-layer prediction signalling for multi-layer video coding
US20160227232A1 (en) * 2013-10-12 2016-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding multilayer video, and method and apparatus for decoding multilayer video
US9813722B2 (en) * 2013-12-02 2017-11-07 Nokia Technologies Oy Video encoding and decoding

Similar Documents

Publication Publication Date Title
JP7164728B2 (en) Signaling for reference image resampling
AU2020234957B2 (en) Signaling of adaptive picture size in video bitstream
AU2020348846B2 (en) Signaling of inter layer prediction in video bitstream
AU2020415272B2 (en) Method for adaptation parameter set reference and constraints in coded video stream
CA3133707C (en) Signaling of inter layer prediction in video bitstream
CN112005549B (en) Intra-frame and inter-frame prediction control method, device, equipment and storage medium
US11863773B2 (en) Method for support of scalability with adaptive picture resolution
JP2023115169A (en) Method for parameter set reference constraints in coded video stream
US20200404303A1 (en) Method for support of scalability with adaptive picture resolution
RU2783382C1 (en) Signalling of inter-layer prediction in a video bitstream
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
RU2779911C1 (en) Signaling of scalability parameters in the video bitstream
RU2782247C1 (en) Signalling of oversampling of the reference image indicating the size of the oversampled image in a video bitstream
RU2783961C1 (en) Method for indicating the number of sublevels in a multilevel video stream
RU2777924C1 (en) Method for signaling a set of output levels with a subimage
RU2810966C1 (en) Methods of signaling combination of reference image resampling and spatial scalability
RU2799572C1 (en) Method for signaling a set of output layers with a subimage
RU2803890C1 (en) Layer alignment method in encoded video stream
RU2785689C1 (en) Technique for extracting a subimage bit stream from a stream of encoded video data
RU2808148C1 (en) Method and device for video coding
JP7297929B2 (en) Method, computer system, and computer program for signaling rectangular slice divisions in an encoded video stream
RU2806281C1 (en) Method for signaling sub-image separation in an encoded video stream
RU2772795C1 (en) Reference picture resampling method with offset in video bitstream