RU2779911C1 - Signaling of scalability parameters in the video bitstream - Google Patents

Signaling of scalability parameters in the video bitstream Download PDF

Info

Publication number
RU2779911C1
RU2779911C1 RU2021128459A RU2021128459A RU2779911C1 RU 2779911 C1 RU2779911 C1 RU 2779911C1 RU 2021128459 A RU2021128459 A RU 2021128459A RU 2021128459 A RU2021128459 A RU 2021128459A RU 2779911 C1 RU2779911 C1 RU 2779911C1
Authority
RU
Russia
Prior art keywords
syntax element
levels
output
element indicating
vps
Prior art date
Application number
RU2021128459A
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 RU2779911C1 publication Critical patent/RU2779911C1/en

Links

Images

Abstract

FIELD: video technology.
SUBSTANCE: group of inventions relates to video encoding/decoding technologies, or rather to signaling scalability in terms of space, quality and multiple angles in the video bitstream. A method for determining the output level for inter-level prediction using at least one processor is proposed. According to the method, an encoded video sequence is obtained from an encoded video bitstream. Next, the first syntactic element is obtained indicating the number of levels included in the encoded video sequence; the second syntactic element is obtained indicating whether all levels included in the encoded video sequence are independent; the third syntactic element is obtained indicating the output mode based on the first syntactic element indicating that the number of levels is more than one, and a second syntactic element indicating that not all levels are independent. And also the output mode is determined based on the third syntactic element; one or more output levels from a set of levels are determined based on the output mode that has been determined; and one or more output levels are output.
EFFECT: increase in scalability signaling accuracy with respect to multiple angles in the video bitstream.
20 cl, 11 dwg, 1 tbl

Description

Ссылка на родственную заявкуLink to related application

[1] Настоящее изобретение испрашивает приоритет предварительной заявки США №62/903,603, поданной 20 сентября 2019 г., и обычной заявки США №17/019,959, поданной 14 сентября 2020 г., полный объем которых включен в данный документ.[1] The present invention claims priority of U.S. Provisional Application No. 62/903,603, filed September 20, 2019, and U.S. Ordinary Application No. 17/019,959, filed September 14, 2020, the entire scope of which is incorporated herein.

Область техники, к которой относится изобретениеThe technical field to which the invention belongs

[2] Представленное в данной заявке изобретение относится к кодированию и декодированию видео, а точнее к сигнализации масштабируемости в отношении пространства, качества и множества ракурсов в битовом потоке видео.[2] Presented in this application, the invention relates to the encoding and decoding of video, and more specifically to signaling scalability in terms of space, quality and multiple angles in the video bitstream.

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

[3] Известно кодирование и декодирование видео посредством предсказания между изображениями с компенсацией движения. Цифровое видео без сжатия может включать в себя последовательность изображений, каждое из которых имеет пространственный размер, например, 1920×1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту смены изображений (неформально также называемую частотой кадров), например, 60 изображений в секунду, или 60 Гц. Видео без сжатия предъявляет значительные требования к битовой скорости. Например, видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение отсчетов яркости 1920×1080 при частоте кадров 60 Гц) требует полосы около 1,5 Гбит/с. Час такого видео требует объема памяти более 600 ГБ.[3] It is known to encode and decode video by inter-picture prediction with motion compensation. Uncompressed digital video may include a sequence of images, each of which has a spatial size of, for example, 1920×1080 luma samples and their associated chrominance samples. The image sequence may have a fixed or variable image rate (informally also referred to as frame rate), such as 60 images per second, or 60 Hz. Uncompressed video has significant bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (resolution of 1920x1080 luma samples at 60Hz frame rate) requires about 1.5Gbps of bandwidth. An hour of such video requires more than 600 GB of storage.

[4] Одной целью кодирования и декодирования видеосигнала может быть снижение избыточности во входном видеосигнале путем сжатия. Сжатие может способствовать смягчению вышеупомянутых требований к полосе или объему памяти, в ряде случаев на два порядка величины или более. Можно использовать как сжатие без потерь, так и сжатие с потерями, а также их комбинацию. Сжатие без потерь относится к методам реконструкции точной копии исходного сигнала из сжатого исходного сигнала. При использовании сжатия с потерями реконструированный сигнал может быть не идентичен исходному сигналу, но расхождение между исходным и реконструированным сигналами достаточно мало, чтобы реконструированный сигнал можно было использовать для намеченного применения. Сжатие с потерями широко применяется для видео. Допустимая степень искажения зависит от применения; например, пользователи некоторых заказных потоковых приложений могут мириться с более высокими искажениями, чем пользователи телевещательных приложений. При достижимой степени сжатия более высокое разрешенное/допустимое искажение может давать более высокую степень сжатия.[4] 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. You can use both lossless and lossy compression, as well as a combination of both. 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 may tolerate higher distortion than users of broadcast television applications. With an achievable compression ratio, a higher allowed/allowable distortion may result in a higher compression ratio.

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

[6] Традиционно кодеры и декодеры видео работали с заданным размером изображения, который в большинстве случаев определялся и оставался постоянной величиной для кодированной видеопоследовательности (CVS), группы изображений (GOP) или схожего временного периода для группы изображений. Например, в MPEG-2 системные решения меняют горизонтальное разрешение (и, следовательно, размер изображения) в зависимости от таких факторов как активность сцены, но только при изображениях I, то есть, как правило, для группы изображений. Применяют передискретизацию опорных изображений для разных разрешений в кодированной видеопоследовательности, например в ITU-T Rec. Н.263, приложение Р. При этом размер изображения не меняется, пересчитываются только опорные изображения, что потенциально сказывается только на элементах применяемого изображения (в случае снижения разрешения) или только на элементах обрабатываемой сцены (при повышении разрешения). Далее, Н.263, приложение Q позволяет делать передискретизацию индивидуального макроблока с увеличением или сокращением вдвое (по каждому измерению). Опять же размер изображения остается неизменным. Размер макроблока фиксирован в Н.263, и, следовательно, его не нужно сигнализировать.[6] Traditionally, video encoders and decoders worked with a given picture size, which in most cases was determined and remained constant for a coded video sequence (CVS), a group of pictures (GOP), or a similar time period for a group of pictures. For example, in MPEG-2, system decisions change the horizontal resolution (and hence image size) depending on factors such as scene activity, but only for I images, that is, typically for a group of images. Apply resampling of reference pictures for different resolutions in the encoded video sequence, such as in ITU-T Rec. H.263, Appendix P. In this case, the image size does not change, only reference images are recalculated, which potentially affects only the elements of the applied image (in the case of a decrease in resolution) or only on the elements of the processed scene (when the resolution is increased). Further, in H.263, Annex Q allows the resampling of an individual macroblock by halving or halving (on each dimension). Again, the image size remains unchanged. The macroblock size is fixed in H.263 and therefore does not need to be signaled.

[7] Изменения размера предсказанных изображений стали общей тенденцией в современном видеокодировании. Например, VP9 позволяет передискретизировать опорное изображение и менять разрешение всего изображения. Аналогичные предложения, поступающие для VVC (например, в работе Гендри и соавторов "Адаптивное изменение разрешения (ARC) в VVC", документ группы Joint Video Team JVET-M0135-v1, Jan 9-19, 2019, включенный в данный документ в полном объеме), позволяют делать передискретизацию опорных изображений целиком для получения различных (более высоких или более низких) разрешений. В этом документе предлагалось кодировать различные потенциальные разрешения в наборе параметров последовательности со ссылкой на них посредством элементов синтаксиса каждого изображения в наборе параметров изображения.[7] Predicted image resizing has become a common trend in modern video coding. For example, VP9 allows you to resample the reference image and change the resolution of the entire image. Similar proposals coming in for VVC (e.g., in Gendry et al. "Adaptive Resolution Resizing (ARC) in VVC", Joint Video Team paper JVET-M0135-v1, Jan 9-19, 2019, incorporated herein in its entirety ) allow resampling the entire reference images to obtain different (higher or lower) resolutions. In this document, it has been proposed to encode the various potential resolutions in a sequence parameter set with reference to them via the syntax elements of each image in the image parameter set.

Сущность изобретенияThe essence of the invention

[8] Вариант осуществления предоставляет способ декодирования кодированного битового потока видео по меньшей мере одним процессором. Способ включает получение кодированной видеопоследовательности из кодированного битового потока видео; получение первого элемента синтаксиса с указанием количества уровней, включенных в кодированную видеопоследовательность; получение второго элемента синтаксиса с указанием, независимы ли все уровни, включенные в кодированную видеопоследовательность; получение третьего элемента синтаксиса с указанием режима вывода на основании первого элемента синтаксиса, указывающего, что уровней более одного, и второго элемента синтаксиса, указывающего, что не все уровни независимые; определение режима вывода на основании третьего синтаксического элемента; определение одного или более выходных уровней из множества уровней на основании режима вывода, который был определен; и вывод одного или более выходных уровней.[8] An embodiment provides a method for decoding an encoded video bitstream by at least one processor. The method includes obtaining an encoded video sequence from an encoded video bitstream; obtaining a first syntax element indicating the number of levels included in the encoded video sequence; obtaining a second syntax element indicating whether all layers included in the encoded video sequence are independent; obtaining a third syntax element indicating the output mode based on the first syntax element indicating that there are more than one levels and the second syntax element indicating that not all levels are independent; determining an output mode based on the third syntax element; determining one or more output levels from the plurality of levels based on the output mode that has been determined; and outputting one or more output levels.

[9] Вариант осуществления предоставляет устройство декодирования кодированного битового потока видео. Устройство включает по меньшей мере одну память, конфигурированную для хранения программного кода и по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с командами программного кода. Программный код включает первый код получения, настроенный на получение кодированной видеопоследовательности из кодированного битового потока видео по меньшей мере одним процессором; второй код получения, настроенный на получение по меньшей мере одним процессором первого элемента синтаксиса, указывающего на количество уровней, включенных в кодированную видеопоследовательность; третий код получения, настроенный на получение по меньшей мере одним процессором второго элемента синтаксиса, указывающим, независимы ли все уровни, включенные в кодированную видеопоследовательность; четвертый код получения, настроенный на получение по меньшей мере одним процессором третьего синтаксического элемента, указывающего на режим вывода, на основании первого элемента синтаксиса, указывающего на наличие более одного уровня, и второго элемента синтаксиса, указывающего на то, что не все уровни независимы. Первый код определения настроен на определение режима вывода по меньшей мере одним процессором на основании третьего элемента синтаксиса. Второй код определения настроен на определение одного или более выходных уровней на основании режима вывода, который был определен. Код вывода настроен на вывод по меньшей мере одним процессором одного или более выходных уровней.[9] An embodiment provides a device for decoding an encoded video bitstream. The device includes at least one memory configured to store program code and at least one processor configured to read the program code and operate in accordance with instructions of the program code. The program code includes a first acquisition code configured to obtain an encoded video sequence from an encoded video bitstream by at least one processor; a second acquisition code configured to receive, by at least one processor, a first syntax element indicating the number of layers included in the encoded video sequence; a third acquisition code configured to receive, by at least one processor, a second syntax element indicating whether all layers included in the encoded video sequence are independent; a fourth obtaining code configured to receive by at least one processor a third syntax element indicating an output mode based on a first syntax element indicating more than one level and a second syntax element indicating that not all levels are independent. The first determination code is configured to determine the output mode by at least one processor based on the third syntax element. The second determination code is configured to determine one or more output levels based on the output mode that has been determined. The output code is configured for at least one processor to output one or more output levels.

[10] Вариант осуществления предоставляет компьютерно-считываемый носитель информации, хранящий инструкции, содержащие одну или более инструкций, которые, при исполнении одним или более процессором устройства для декодирования битового потока кодированного видео, обеспечивают выполнение одним или более процессором следующих операций: получение кодированной видеопоследовательности из кодированного битового потока видео; получение первого элемента синтаксиса, указывающего на количество уровней, включенных в кодированную видеопоследовательность; получение второго элемента синтаксиса, указывающего, независимы ли все уровни, включенные в кодированную видеопоследовательность; получение третьего элемента синтаксиса, указывающего на режим вывода, на основании первого элемента синтаксиса, указывающего на то, что уровней более одного, и второго элемента синтаксиса, указывающего, что не все уровни являются независимыми; определение режима вывода на основании третьего элемента синтаксиса; определение одного или более выходных уровней из множества уровней на основании режима вывода, который был определен, и вывод одного или более выходных уровней.[10] An embodiment provides a computer-readable storage medium that stores instructions containing one or more instructions that, when executed by one or more processors of a device for decoding an encoded video bitstream, cause the one or more processors to perform the following operations: obtain an encoded video sequence from encoded video bitstream; obtaining a first syntax element indicating the number of layers included in the encoded video sequence; obtaining a second syntax element indicating whether all layers included in the encoded video sequence are independent; deriving a third syntax element indicating an output mode based on a first syntax element indicating that there are more than one levels and a second syntax element indicating that not all levels are independent; determining an output mode based on the third syntax element; determining one or more output levels from the plurality of levels based on the output mode that has been determined, and outputting the one or more output levels.

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

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

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

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

[14] Фиг. 3 - схематичное изображение упрощенной блок-схемы декодера в соответствии с вариантом осуществления.[14] FIG. 3 is a schematic diagram of a simplified block diagram of a decoder according to an embodiment.

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

[16] Фиг. 5 - схематичное изображение опций для сигнализации параметров ARC/RPR в соответствии с вариантом осуществления.[16] FIG. 5 is a schematic representation of options for ARC/RPR parameter signaling in accordance with an embodiment.

[17] Фиг. 6А-6В - примеры таблиц синтаксиса в соответствии с вариантом осуществления.[17] FIG. 6A-6B are examples of syntax tables according to an embodiment.

[18] Фиг. 7 - схематичное изображение зависимости уровней сигнализации в VPS согласно варианту осуществления.[18] FIG. 7 is a schematic representation of signaling levels in a VPS according to an embodiment.

[19] Фиг. 8 - схематичное изображение сигнализации списка форматов отображения в VPS согласно варианту осуществления.[19] FIG. 8 is a schematic diagram of display format list signaling in a VPS according to an embodiment.

[20] Фиг. 9 - схематичное изображение сигнализации указателя форматов отображения в VPS согласно варианту осуществления.[20] FIG. 9 is a schematic representation of display format indicator signaling in a VPS according to an embodiment.

[21] Фиг. 10 - блок-схема примера процесса декодирования кодированного битового потока видео в соответствии с вариантом осуществления.[21] FIG. 10 is a flowchart of an example of a process for decoding an encoded video bitstream according to an embodiment.

[22] Фиг. 11 - схематичное изображение компьютерной системы в соответствии с вариантом осуществления.[22] FIG. 11 is a schematic representation of a computer system in accordance with an embodiment.

Подробное описаниеDetailed description

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

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

[25] На фиг. 1 оконечные устройства (110, 120, 130, 140) могут быть проиллюстрированы как серверы, персональные компьютеры и смартфоны, но это не ограничивает принципы настоящего изобретения. Варианты осуществления настоящего изобретения находят применение для портативных компьютеров, планшетных компьютеров, медиаплееров и/или специального оборудования для видеоконференцсвязи. Сеть (150) представляет любое количество сетей, которые переносят кодированные видеоданные между оконечными устройствами (110-140), включая, например, проводные и/или беспроводные сети связи. Сеть связи (150) позволяет обмениваться данными в режиме канальной коммутации и/или пакетной коммутации. Иллюстративные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или интернет. В целях настоящего рассмотрения, архитектура и топология сети (150) могут не иметь отношения к настоящему изобретению, если конкретно не указаны ниже.[25] FIG. 1, terminal devices (110, 120, 130, 140) may 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-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.

[26] На фиг. 2 показано, в порядке примера применения раскрытого изобретения, размещение видеокодера и видеодекодера в окружении потоковой передачи. Раскрытое изобретение может быть в равной степени применимо к другим применениям обработки видео, включая, например, видеоконференцсвязь, цифровое телевидение, хранение сжатого видео на цифровых носителях, в том числе CD, DVD, карте памяти и т.п.[26] FIG. 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, and the like.

[27] Система потоковой передачи может включать в себя подсистему захвата (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. Разрабатывается стандарт видеокодирования под неофициальным названием "универсальное видеокодирование" (VVC, Versatile Video Coding). Раскрытое изобретение может использоваться в контексте VVC.[27] The streaming system may include a capture subsystem (213), which may include a video source (201), such as a digital camera, creating, for example, an uncompressed video stream (202). The sample stream (202), shown in bold to highlight the large amount of data compared to the encoded video data, may be processed by an encoder (203) connected to a 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 data (204), shown with 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 data (204). The client (206) may include a video decoder (210) that decodes an incoming copy of the encoded video data (207) and creates an outgoing video stream (211) that can be rendered on a display (212) or other rendering device (not shown). In some streaming systems, the encoded video data (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 under the informal name "universal video coding" (VVC, Versatile Video Coding). The disclosed invention may be used in the context of VVC.

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

[29] Приемник (310) может принимать одну или более кодированных видеопоследовательностей для декодирования видеодекодером (210); в том же или другом варианте осуществления, по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или вспомогательными потоками данных, которые могут ретранслироваться на соответствующие использующие их объекты (не показаны). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети, буферная память (315) может быть подключена между приемником (310) и энтропийным декодером / анализатором (320) (далее "анализатором"). Когда приемник (310) принимает данные от устройства хранения/ретрансляции с достаточной полосой и управляемостью или из изосинхронной сети, буферная память (315) может быть не нужна или может быть мала. Для использования в пакетных сетях наилучшей попытки, например, Интернете, буферная память (315) может требоваться, может быть сравнительно большой и может иметь предпочтительно адаптивный размер.[29] The receiver (310) may receive one or more encoded video sequences for decoding by the video 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 utilizing entities (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"). When the receiver (310) receives data from a storage/relay device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (315) may not be needed or may be small. For use in best effort packet networks, such as the Internet, buffer memory (315) may be required, may be relatively large, and may preferably have an adaptive size.

[30] Видеодекодер (210) может включать в себя анализатор (320) для реконструкции символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой видеодекодера (210), и возможно информацию для управления устройством визуализации, например, отображающим экраном (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации пригодности видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом видеокодирования и может следовать различным хорошо известным принципам, в том числе кодированию с переменной длиной серии, кодированию по Хаффману, арифметическому кодированию с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основании по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP, Groups of Pictures), изображения, субизображения, тайлы, слайсы, блоки, макроблоки, единицы кодирования (CU, Coding Units), "кирпичи" (bricks), единицы преобразования (TU, Transform Units), единицы предсказания (PU, Prediction Units) и т.д. Тайл может указывать на прямоугольную область CU/CTU в определенной колонке и ряде тайлов в изображении. "Кирпич" может указывать прямоугольную область рядов CU/CTU в определенном тайле. Слайс может указывать на один или более "кирпичей" изображения, которые находятся в блоке NAL. Субизображение может указывать на прямоугольную область одного или более слайсов в изображении. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[30] The video decoder (210) may include an analyzer (320) for reconstructing the symbols (321) from the 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 screen (212) that is not an integral part of the decoder but may be connected to it, as shown in fig. 3. The control information for the rendering device(s) may be Supplemental 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 in accordance with a video coding technology or standard and may follow various well-known principles, including variable run length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. 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, sub-images, tiles, slices, blocks, macroblocks, coding units (CU, Coding Units), "bricks" (bricks), transformation units (TU, Transform Units ), prediction units (PU, Prediction Units), etc. A tile can point to a rectangular area of a CU/CTU in a specific column and row of tiles in an image. "Brick" can indicate a rectangular area of CU/CTU rows in a particular tile. A slice may point to one or more image "bricks" that reside in a NAL unit. A sub-image may indicate a rectangular region of one or more slices in an image. The entropy decoder/analyzer can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.

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

[32] Для реконструкции символов (321) могут использоваться несколько разных модулей в зависимости от типа кодированного видеоизображения или его частей (например: интер- и интра-изображения, интер- и интра-блока) и других факторов. Какие модули используются и как, может определяться информацией управления подгруппами, выделенной из кодированной видеопоследовательности анализатором (320). Поток такой информации управления подгруппами между анализатором (320) и множественными модулями для простоты в дальнейшем не показан.[32] 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-pictures, inter- and intra-block) and other factors. Which modules are used and how can 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 multiple modules is not shown hereinafter for simplicity.

[33] Помимо ранее упомянутых функциональных блоков, видеодекодер 210 может принципиально подразделяться на несколько функциональных модулей, как описано ниже. В практической реализации, работающей в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут, по меньшей мере частично, встраиваться один в другой. Однако в целях описания раскрытого изобретения уместно принципиальное подразделение на нижеперечисленные функциональные модули.[33] In addition to the previously mentioned functional blocks, video 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.

[34] Первым модулем является модуль масштабирования/обратного преобразования (351). Модуль масштабирования / обратного преобразования (351) принимает квантованный коэффициент преобразования, а также информацию управления, включающую в себя используемое преобразование, размер блока, коэффициент квантования, матрицы масштабирования квантования и т.д. в качестве символа(ов) (321) от анализатора (320). Такой модуль может выводить блоки, содержащие значения отсчетов, которые можно вводить в агрегатор (355).[34] 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, and so on. as character(s) (321) from the analyzer (320). Such a module can output blocks containing sample values that can be entered into the aggregator (355).

[35] В ряде случаев, выходные отсчеты блока масштабирования/обратного преобразования (351) могут относиться к внутренне-кодированному блоку; то есть к блоку, который не использует предсказанную информацию из ранее реконструированных изображений, но может использовать предсказанную информацию из ранее реконструированных частей текущего изображения. Такая предсказанная информация может обеспечиваться модулем предсказания (352) внутри изображения. В ряде случаев модуль предсказания внутри изображения (352) генерирует блок такого же размера и формы, как блок, подлежащий реконструкции, с использованием информации ранее реконструированного окружения, извлеченной из буфера текущего (частично реконструированного) изображения (358). Агрегатор (355) в ряде случаев добавляет, для каждого отсчета, информацию предсказания, сгенерированную модулем внутреннего предсказания (352), в информацию выходных отсчетов, обеспеченную модулем масштабирования / обратного преобразования (351).[35] In some cases, the output samples of the scaling/inverse transform block (351) may refer to an intra-coded block; that is, to 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 the prediction module (352) within the picture. In some cases, the 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 retrieved from the current (partially reconstructed) image buffer (358). The aggregator (355) in some cases adds, for each sample, the prediction information generated by the intra prediction module (352) to the output sample information provided by the scaler/inverse transform module (351).

[36] В других случаях выходные отсчеты модуля масштабирования/обратного преобразования (351) могут относиться к внешне кодированному блоку, возможно, с компенсацией движения. В таком случае, модуль предсказания с компенсацией движения (353) может осуществлять доступ к памяти опорных изображений (357) для извлечения отсчетов, используемых для предсказания. После применения компенсации движения к извлеченным отсчетам в соответствии с символами (321), относящимися к блоку, эти отсчеты могут добавляться агрегатором (355) к выходному сигналу модуля масштабирования/обратного преобразования (в этом случае именуемому остаточными отсчетами или остаточным сигналом) для генерации информации выходных отсчетов. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения извлекает предсказанные отсчеты, могут регулироваться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения под-отсчетов, механизмы предсказания векторов движения и т.д.[36] In other cases, the output samples of the scaler/demapper (351) may refer to an externally 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 an aggregator (355) to the output of the scaler/demapper (in this case referred to as residual samples or residual signal) to generate output information. counts. Reference picture memory addresses from where the motion compensation prediction module retrieves predicted samples may be governed by motion vectors available to the motion compensation prediction module in symbol form (321), which may have, for example, X, Y and reference picture components. Motion compensation may also include interpolation of sample values retrieved from reference picture memory when accurate sub-sample motion vectors, motion vector prediction mechanisms, etc. are used.

[37] К выходным отсчетам агрегатора (355) можно применять различные методы контурной фильтрации в модуле контурного фильтра (356). Технологии сжатия видео могут включать в себя технологии деблокирующего фильтра под управлением параметров, включенных в битовый поток кодированного видео, и становиться доступными модулю контурного фильтра (356) в качестве символов (321) от анализатора (320), но также могут реагировать на метаинформацию, полученную в ходе декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее реконструированные и подвергнутые контурной фильтрации значения отсчетов.[37] The output samples of the aggregator (355) can be applied to various loop filtering methods in the loop filter module (356). The video compression technologies may include deblocking filter technologies 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 analyzer (320), but may also be responsive 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.

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

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

[40] Видеодекодер 210 может осуществлять операции декодирования согласно заранее заданной технологии сжатия видео, например, по стандарту ITU-T Rec. Н.265. Кодированная видеопоследовательность может согласовываться с синтаксисом, заданным используемой технологией или стандартом сжатия видео, в том смысле, что кодированная видеопоследовательность может придерживаться как синтаксиса технологии или стандарта сжатия видео, согласно документу или стандарту технологии сжатия видео, в частности согласно профилям данного документа. Также для согласованности может быть необходимо, чтобы сложность кодированной видеопоследовательности оставалась в границах, заданных уровнем технологии или стандарта сжатия видео. В ряде случаев, уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов для реконструкции (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в ряде случаев могут дополнительно ограничиваться спецификациями гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданными для управления буфером HRD, сигнализируемым в кодированной видеопоследовательности.[40] Video decoder 210 may perform decoding operations according to a predetermined video compression technology, such as ITU-T Rec. H.265. The encoded video sequence may conform to the syntax given by the used video compression technology or standard, in the sense that the encoded video sequence may adhere to both the syntax of the video compression technology or standard, according to a document or video compression technology standard, in particular according to the profiles of this document. It may also be necessary for consistency that the complexity of the encoded video sequence remain within the boundaries set by the video compression technology level 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) and metadata for managing the HRD buffer signaled in the encoded video sequence.

[41] Согласно варианту осуществления, приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной(ых) видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или более точной реконструкции исходных видеоданных. Дополнительные данные могут представлять собой, например, уровни улучшения во времени, пространстве или для отношения сигнал/шум (SNR, signal noise ratio), избыточные слайсы, избыточные изображения, коды прямой коррекции ошибок и т.д.[41] According to an embodiment, 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 (210) to correctly decode the data and/or more accurately reconstruct the original video data. The side data may be, for example, levels of improvement in time, space, or signal-to-noise ratio (SNR), redundant slices, redundant images, forward error correction codes, and so on.

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

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

[44] Источник видеосигнала (201) может обеспечивать исходную видеопоследовательность, подлежащую кодированию видеокодером (203), в форме потока отсчетов цифрового видео любой подходящей битовой глубины (например: 8 бит, 10 бит, 12 бит, …), любого цветового пространства (например, ВТ.601 Y CrCB, RGB, …) и любой подходящей структуры дискретизации (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе службы массовой информации источником видеосигнала (201) может быть запоминающее устройство, где хранится ранее подготовленное видео. В системе видеоконференцсвязи источником видеосигнала (203) может быть камера, которая захватывает информацию локального изображения как видеопоследовательность. Видеоданные могут обеспечиваться как множество отдельных изображений, которые создают ощущение движения при наблюдении в последовательности. Сами изображения могут быть организованы как пространственный массив пикселей, где каждый пиксель может содержать один или более отсчетов в зависимости от используемых структуры дискретизации, цветового пространства и т.д. Специалисту в данной области техники нетрудно понять соотношение между пикселями и отсчетами. Нижеследующее описание касается отсчетов.[44] The video source (201) may provide the source video sequence to be encoded by the video encoder (203) in the form of a digital video sample stream of any suitable bit depth (eg: 8 bit, 10 bit, 12 bit, ...), any color space (eg , VT.601 Y CrCB, RGB, …) 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 may be organized as a spatial array of pixels, where each pixel 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 for samples.

[45] Согласно варианту осуществления, видеокодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер (450) управляет другими функциональными модулями, как описано ниже, и функционально подключен к этим модулям. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать в себя параметры, связанные регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое при оптимизации скорости-искажения, …), размер изображения, схему групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Специалист в данной области техники может легко выявить другие функции контроллера (450), которые могут относиться к видеокодеру (203), оптимизированному под определенную системную разработку.[45] According to an embodiment, the video 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 (450) controls other functional modules as described below and is operatively connected to these modules. The connection is not shown for simplicity. Parameters set by the controller may include parameters related to frequency adjustment (picture skip, quantizer, lambda value applied in rate-distortion optimization, …), image size, group of pictures scheme (GOP, group of pictures), maximum search area motion vectors, etc. A person skilled in the art can easily identify other features of the controller (450) that may be related to the video encoder (203) optimized for a particular system design.

[46] Ряд видеокодеров выполнен с возможностью работать в петле кодирования, хорошо известной специалистам в данной области техники. В качестве очень упрощенного описания, петля кодирования может включать в себя кодирующий элемент кодера (430) ("кодер источника") (отвечающий за создание символов на основе входного изображения, подлежащего кодированию, и опорного(ых) изображения(ий)) и (локальный) декодер (433), встроенный в видеокодер (203), реконструирующий символы для создания данных отсчетов, как это делал бы (удаленный) декодер (поскольку любое сжатие между символами и битовым потоком кодированного видео происходит без потерь в технологиях сжатия видео, рассматриваемых в раскрытом изобретении). Реконструированный поток отсчетов поступает в память опорных изображений (434). Поскольку декодирование потока символов приводит к результатам, с точностью до бита, не зависящим от положения декодера (локального или удаленного), содержимое памяти опорных изображений также будет одинаковым с точностью до бита для локального кодера и удаленного кодера. Другими словами, предсказывающая часть кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, как "видел" бы декодер при использовании предсказания в ходе декодирования. Этот фундаментальный принцип синхронизма опорного изображения (и, в итоге, дрейф, если синхронизм не удается поддерживать, например, вследствие канальных ошибок) хорошо знаком специалисту в данной области техники.[46] A number of video encoders are configured to operate in a coding loop well known to those skilled in the art. As a very simplified description, an encoding loop may include an encoder coding element (430) ("source encoder") (responsible for creating symbols based on the input image to be encoded and the reference image(s)) and (local ) a decoder (433) built into the video encoder (203) that reconstructs the symbols to produce sample data as a (remote) decoder would (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosed invention). The reconstructed sample stream enters the reference picture memory (434). Since decoding a stream of symbols results in bit-accurate results independent of the location of the decoder (local or remote), the contents of the reference picture memory will also be the same bit-accurate for the local encoder and the remote encoder. In other words, the predictive part 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.

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

[48] При этом можно отметить, что любая технология декодирования, присутствующая в декодере, за исключением анализа/энтропийного декодирования, также обязательно должна присутствовать, по существу в идентичной функциональной форме в соответствующем кодере. По этой причине раскрытое изобретение сконцентрировано на работе декодера. Описание технологий кодирования может быть сокращено, поскольку они являются обратными подробно описанным технологиям декодированная. Только в некоторых областях требуется более детальное описание, которое приведено ниже.[48] It can be noted 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 encoding technologies can be abbreviated as they are the inverse of the decoded technologies described in detail. Only in some areas a more detailed description is required, which is given below.

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

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

[51] Предсказатель (435) может осуществлять поиски предсказания для машины кодирования (432). Таким образом, для нового изображения, подлежащего кодированию, предсказатель (435) может искать в памяти опорных изображений (634) данные отсчетов (в качестве кандидатов на роль опорных пиксельных блоков) или те или иные метаданные, например, векторы движения опорного изображения, формы блоков и т.д., которые могут служить надлежащей ссылкой для предсказания новых изображений. Предсказатель (435) может работать на основе "блоки отсчетов - пиксельные блоки" в целях нахождения надлежащих ссылок для предсказания. В ряде случаев, согласно результатам поиска, полученных предсказателем (435), входное изображение может иметь ссылки для предсказания, извлеченные из множества опорных изображений, хранящихся в памяти опорных изображений (434).[51] The predictor (435) may perform prediction searches for the encoding engine (432). Thus, for a new picture to be encoded, the predictor (435) can search the reference picture memory (634) 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-block-pixel-block basis in order to find appropriate references for prediction. In some cases, according to the search results obtained by the predictor (435), the input image may have prediction references extracted from a plurality of reference pictures stored in the reference picture memory (434).

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

[53] Выходной сигнал всех вышеупомянутых функциональных модулей может подвергаться энтропийному кодированию в энтропийном кодере (445). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия символов без потерь, согласно технологиям, известным специалисту в данной области техники, например, кодирования по Хаффману, кодирования с переменной длиной серии, арифметического кодирования и т.д.[53] The output signal of all the above functional modules can 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, etc.

[54] Передатчик (440) может буферизовать кодированную видеопоследовательность, созданную энтропийным кодером (445), для подготовки к передаче через канал связи (460), который может быть аппаратной/программной линией связи с запоминающим устройством, где хранятся кодированные видеоданные. Передатчик (440) может объединять кодированные видеоданные от видеокодера (430) с другими данными, подлежащими передаче, например, с кодированными аудиоданными и/или вспомогательными потоками данных (источники не показаны).[54] The transmitter (440) may buffer the encoded video sequence generated 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 the encoded video data is stored. 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).

[55] Контроллер (450) может управлять работой видеокодера (203). В ходе кодирования контроллер (450) может назначать каждому кодированному изображению тот или иной тип кодированного изображения, который может определять методы кодирования, применимые к соответствующему изображению. Например, изображениям часто могут назначаться следующие типы изображения:[55] The controller (450) may control the operation of the video 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 image types:

[56] Интра-изображение (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого изображения в последовательности как источник предсказания. Некоторые видеокодеки допускают разные типы интра-изображений, включая, например, изображения в формате независимого обновления декодера ("IDR", Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.[56] An intra-picture (I-picture) that can be encoded and decoded without using any other picture 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 I-image varieties and their respective applications and features.

[57] Предсказанное изображение (Р-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.[57] 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.

[58] Двунаправленно-предсказанное изображение (В-изображение), которое можно кодировать и декодировать с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Аналогично, мультипредсказанные изображения могут использовать более двух опорных изображений и связанные метаданные для реконструкции единого блока.[58] 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.

[59] Исходные изображения обычно допускают пространственное разделение на множество блоков отсчетов (например, блоки 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодирование на поблочной основе. Блоки могут кодироваться предиктивно со ссылкой на другие (ранее кодированные) блоки, определенные назначением кодирования, применяемым к соответствующим изображениям этих блоков. Например, блоки I-изображений могут кодироваться без предсказания или с предсказанием со ссылкой на ранее кодированные блоки того же изображения (пространственным предсказанием или внутренним предсказанием). Пиксельные блоки Р-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться без предсказания, посредством пространственного предсказания или временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.[59] 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, I-picture blocks may be encoded without prediction or predictively with reference to previously encoded blocks of the same picture (spatial prediction or intra prediction). P-picture pixel blocks may be encoded without prediction, either by spatial prediction or temporal prediction with reference to one previously encoded 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.

[60] Видеокодер (203) может осуществлять операции кодирования согласно заранее заданной технологии или стандарту видеокодирования, например, ITU-T Rec. Н.265. В своей работе видеокодер (203) может осуществлять различные операции сжатия, в том числе операции предиктивного кодирования, которые используют временные и пространственные избыточности во входной видеопоследовательности. Поэтому кодированные видеоданные могут согласовываться с синтаксисом, заданным используемой технологией или стандартом видеокодирования.[60] 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.

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

[62] В последнее время стал привлекать внимание метод агрегации сжатой области или извлечения многочисленных семантически независимых элементов изображений в одно видеоизображение. В частности, например, в контексте кодирования 360° или определенных приложений видеонаблюдения, многочисленные семантически независимые исходные изображения (например, шестикубовая поверхность кубической сцены в 360° или входящие изображения с камер при настройке наблюдения с нескольких камер) могут потребовать отдельных настроек адаптивного разрешения для обработки различных сцен в определенный момент времени. Другими словами, кодеры в определенный момент времени могут выбрать различные коэффициенты передискретизации для разных семантически независимых изображений, составляющих всю сцену видеонаблюдения или сцену в 360°. При сборке в единое изображение, это, в свою очередь, требует передискретизации опорного изображения и доступности сигнализации кодирования адаптивного разрешения для частей кодированного изображения.[62] Recently, a method of aggregating a compressed area or extracting multiple semantically independent image elements into a single video image has received attention. In particular, for example, in the context of 360° encoding or certain video surveillance applications, multiple semantically independent source images (for example, a six-cube surface of a 360° cube scene, or incoming camera images in a multi-camera surveillance setup) may require separate adaptive resolution settings for processing. different scenes at a certain point in time. In other words, encoders at a given point in time can choose different resampling factors for different semantically independent images that make up an entire video surveillance scene or a 360° scene. When assembled into a single picture, this in turn requires the resampling of the reference picture and the availability of adaptive resolution coding signaling for portions of the encoded picture.

[63] Далее будут представлены термины, которые будут упоминаться в оставшейся части данного документа.[63] The following are terms that will be referred to in the remainder of this document.

[64] В ряде случаев субизображение представляет собой прямоугольную компоновку отсчетов, блоков, макроблоков, единиц кодирования или схожих семантически объединенных образований, которые могут быть кодированы самостоятельно в другом разрешении. Одно или более субизображений могут составлять изображение. Одно или более кодированных субизображений могут составлять кодированное изображение. Одно или более кодированных субизображений могут быть собраны в изображение, и одно или более субизображений могут быть извлечены из изображения. В некоторых средах одно или более кодированных субизображений можно собрать в сжатую область без перекодирования на уровне отсчетов в кодированном изображении, и в аналогичных или других случаях одно или более кодированных субизображений можно извлечь из кодированного изображения в сжатой области.[64] In some cases, a sub-image is a rectangular arrangement of samples, blocks, macroblocks, coding units, or similar semantically combined entities that can be encoded on their own in a different resolution. One or more sub-images may comprise an image. One or more encoded sub-images may constitute an encoded image. One or more encoded sub-images may be assembled into an image, and one or more sub-images may be extracted from the image. In some environments, one or more coded sub-images can be assembled into a compressed region without sample-level recoding in the coded picture, and in similar or other cases, one or more coded sub-images can be extracted from the coded picture in the compressed region.

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

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

[67] Фиг. 5 демонстрирует несколько вариантов осуществления для сигнализации параметров RPR/ARC. У каждого варианта осуществления отмечаются определенные преимущества и недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Для сигнализации параметров RPR/ARC стандарт или технология видеокодирования может выбрать один или более таких вариантов осуществления либо опций из предыдущей области техники. Варианты осуществления должны быть совместимы, и в принципе они могут быть взаимозаменяемы, исходя из потребностей приложения, стандартов применяемой технологии или выбора кодера.[67] FIG. 5 shows several embodiments for RPR/ARC parameter signaling. Each embodiment has certain advantages and disadvantages in terms of coding efficiency, complexity, and architecture. For RPR/ARC parameter signaling, a video coding standard or technology may choose one or more such embodiments or options from the prior art. The embodiments must be compatible, and in principle they can be interchanged based on the needs of the application, the standards of the applied technology, or the choice of encoder.

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

[69] - коэффициенты увеличения/снижения разрешения в координатах X и Y по отдельности или в совокупности[69] - x and y resolution up/down factors individually or in combination

[70] - коэффициенты увеличения/снижения разрешения с добавлением временного измерения, указывающим на увеличение/уменьшение ряда изображений с постоянной скоростью[70] - resolution up/down ratios with the addition of a temporal dimension indicating an increase/decrease in a series of images at a constant rate

[71] - любая из перечисленных выше групп коэффициентов может включать кодирование одного или более предположительно короткого синтаксического элемента, которые могут указывать на таблицу, содержащую коэффициент(ы).[71] - any of the above groups of coefficients may include encoding one or more supposedly short syntactic elements that may indicate a table containing the coefficient(s).

[72] - разрешение в координатах X и Y, единицах отсчетов, блоках, макроблоках, единицах кодирования (CU) или любом другом подходящем элементе входного/выходного изображения, опорного изображения, кодированного изображения по отдельности или в совокупности. При наличии нескольких разрешений (например, одно разрешение для входного изображения, другое - для опорного изображения) в ряде случаев один набор значений может быть получен из другого набора значений. Это можно регулировать, например, с помощью флагов. Далее представлен более подробный пример.[72] - resolution in X and Y coordinates, sample units, blocks, macroblocks, coding units (CU), or any other suitable element of the input/output picture, reference picture, encoded picture, individually or in combination. When there are multiple resolutions (eg, one resolution for the input image, another for the reference image), in some cases one set of values may be derived from another set of values. This can be controlled, for example, using flags. The following is a more detailed example.

[73] - "деформированные" (warping) координаты, наподобие координат, применяемых в Н.263 Приложение Р, опять же в подходящей детализации, как было представлено выше. Н.263 Приложение Р определяет один эффективный способ кодирования деформированных координат, но при этом также разрабатываются другие потенциально более эффективные способы. Например, обратимая переменная длина, где кодирование кодом Хаффмана деформированных координат Приложения Р заменяется двоичным кодированием подходящей длины, где длину двоичного кодового слова можно получить, например, из максимального размера изображения с возможным умножением на определенный множитель и смещением на определенное значение, чтобы "деформация" происходила за пределами максимального размера изображения.[73] - "warped" coordinates, like those used in H.263 Annex P, again in suitable detail as presented above. H.263 Annex P defines one efficient way to encode warped coordinates, but other potentially more efficient ways are also being developed. For example, reversible variable length, where the Huffman encoding of the warped Annex P coordinates is replaced by a binary encoding of an appropriate length, where the length of the binary codeword can be derived, for example, from the maximum image size, possibly multiplied by a certain factor and offset by a certain value, so that the "warp" occurred outside the maximum image size.

[74] - параметры фильтров повышения/снижения разрешения. В вариантах осуществления применяется один фильтр для повышения/снижения разрешения. Однако в вариантах осуществления эффективнее будет придать гибкости фильтру, что может потребовать сигнализации параметров фильтра. Такие параметры можно выбирать через указатель перечня возможных конструкций фильтров. Фильтр может быть полностью задан (например, посредством перечня фильтровых коэффициентов и подходящих методов энтропийного кодирования), фильтр может быть неявно выбран через коэффициенты повышения/снижения разрешения, в соответствии с которыми осуществляется сигнализация по какому-либо вышеперечисленному механизму, и т.д.[74] - parameters of filters for increasing/decreasing resolution. In embodiments, a single filter is applied to up/down the resolution. However, in embodiments, it is more efficient to give flexibility to the filter, which may require filter parameter signaling. Such parameters can be selected through the index of the list of possible filter designs. The filter may be fully specified (eg, through a list of filter coefficients and suitable entropy coding methods), the filter may be implicitly selected through upscaling/downsampling factors signaled by any of the above mechanisms, and so on.

[75] Далее описание предполагает кодирование фиксированного количества коэффициентов повышения/снижения разрешения (один и тот же коэффициент может применяться в координатах X и Y), обозначенного кодовым словом. Это кодовое слово может быть преимущественно кодировано с переменной длиной, например, посредством кода Ext-Golomb характерного для определенных элементов синтаксиса в характеристиках видеокодирования, например, в Н.264 и Н.265. Подходящее масштабирование значений коэффициентов повышения/снижения разрешения можно подобрать, например, согласно таблице 1:[75] The following description assumes encoding a fixed number of upscaling/downscaling factors (the same factor can be applied in X and Y coordinates) denoted by a codeword. This codeword may advantageously be encoded with a variable length, eg, with an Ext-Golomb code specific to certain syntax elements in the video coding characteristics, eg, in H.264 and H.265. A suitable scaling of the upscaling/downscaling factors can be selected, for example, according to Table 1:

Figure 00000001
Figure 00000001

[76] Множество подобных отображений можно моделировать согласно потребностям приложения и возможностям механизмов увеличения/снижения разрешения в технологии или стандарте сжатия видео. В таблице могут быть представлены и другие значения. Значения могут быть также представлены механизмами энтропийного кодирования, не включающими коды Ext-Golomb, например, двоичным кодированием. У таких механизмов могут быть определенные преимущества при рассмотрении коэффициентов передискретизации за пределами средств обработки видео (в основном кодера и декодера), например, посредством MANE. Необходимо отметить, что для случаев, когда не требуется смена разрешения, можно выбрать короткий код Ext-Golomb. В приведенной выше таблице этот код представлен одним битом. Для наиболее типичного случая такой код более эффективен по сравнению с двоичными кодами.[76] Many of these mappings can be modeled according to the needs of the application and the capabilities of resolution up/down mechanisms in a video compression technology or standard. Other values may be presented in the table. Values may also be represented by entropy encoding mechanisms that do not include Ext-Golomb codes, such as binary encoding. Such mechanisms may have certain advantages when considering resampling factors outside of the video processing means (mainly the encoder and decoder), for example, via MANE. It should be noted that for cases where a resolution change is not required, you can choose the short code Ext-Golomb. In the table above, this code is represented by one bit. For the most typical case, such a code is more efficient than binary codes.

[77] Количество записей в таблице, а также их семантику можно настраивать, полностью или частично. Например, базу таблицы можно задать набором параметров на высоком уровне, например, набором параметров последовательности или декодера. В вариантах осуществления можно задать одну или более таких таблиц в технологии или стандарте кодирования видео. Таблицы также можно выбирать, например, посредством набора параметров декодера или последовательности.[77] The number of entries in the table, as well as their semantics, can be configured, in whole or in part. For example, the table base can be specified by a high-level parameter set, such as a sequence or decoder parameter set. In embodiments, one or more such tables may be defined in a video coding technology or standard. The tables may also be selected, for example, by means of a set of decoder or sequence parameters.

[78] Далее мы описываем способ включения коэффициента увеличения/снижения разрешения (данные ARC), кодированного по указанной выше методике, в технологию видеокодирования или синтаксис стандарта. Подобные способы можно применять к одному или нескольким кодовым словам, которые управляют фильтрами увеличения/снижения разрешения. Далее представлены спорные ситуации, когда относительно большие объемы данных необходимы для фильтра или других структур данных.[78] Next, we describe a method for incorporating an upscaling/downscaling factor (ARC data) encoded by the above technique into a video coding technology or standard syntax. Similar techniques may be applied to one or more codewords that control the resolution up/down filters. The following are controversial situations where relatively large amounts of data are needed for a filter or other data structures.

[79] Фиг. 5А демонстрирует включение ARC данных (502) стандартом Н.263 Приложение Р в виде четырех деформированных координат в заголовок изображения (501), а точнее в расширение заголовка Н.263 PLUSPTYPE (503). Выбор такой структуры оправдан при а) наличии заголовка изображения и b) ожидании частого изменения ARC данных. Однако непроизводительная передача может оказаться довольно большой при сигнализации посредством Н.263, а коэффициенты масштабирования могут выходить за границы изображения, поскольку заголовок изображения может быть временным.[79] FIG. 5A shows the inclusion of ARC data (502) by the H.263 Annex P standard as four warped coordinates in the image header (501), more specifically in the H.263 PLUSPTYPE header extension (503). The choice of such a structure is justified by a) the presence of an image header and b) the expectation of frequent changes in the ARC data. However, overhead can be quite large with H.263 signaling, and scaling factors can be out of picture bounds because the picture header may be temporary.

[80] В том же или других вариантах осуществления сигнализация параметров ARC может проходить по примеру, подробно представленному на фиг. 6А-6В. Фиг. 6А-6В изображают синтаксические схемы в типе отображения посредством обозначения, примерно в рамках программирования на С, которое применяется, например, в стандартах кодирования видео по меньшей мере с 1993 года. Строки, выделенные жирным шрифтом, обозначают синтаксические элементы в битовом потоке, обычные строки часто обозначают поток управления или настройку переменных.[80] In the same or other embodiments, ARC parameter signaling may follow the example detailed in FIG. 6A-6B. Fig. 6A-6B depict syntax diagrams in display type by means of notation, roughly within the scope of C programming, which has been used, for example, in video coding standards since at least 1993. Lines in bold indicate syntax elements in the bitstream, normal lines often indicate control flow or setting variables.

[81] Согласно фиг. 6А, заголовок группы тайлов (601) в виде иллюстративной синтаксической структуры заголовка, применяемого к (возможно прямоугольному) субизображению может условно включать длину переменной, элемент синтаксиса dec_pic_size_idx в кодировке Exp-Golomb (602) (изображен жирным шрифтом). Наличие такого элемента синтаксиса в заголовке группы тайлов можно регулировать с применением адаптивного разрешения (603) - здесь значение флага не изображается жирным шрифтом. Это означает, что флаг находится в точке битового потока согласно схеме синтаксиса. Можно сигнализировать в любой высокоуровневой структуре синтаксиса, внутри или за пределами битового потока, применяется ли адаптивное разрешение для этого изображения или его частей. В представленном примере сигнализация осуществляется в наборе параметров последовательности, как показано ниже.[81] Referring to FIG. 6A, a tilegroup header (601) in the form of an exemplary header syntax structure applied to a (possibly rectangular) sub-image may conditionally include a variable length, the Exp-Golomb (602) encoded dec_pic_size_idx syntax element (depicted in bold). The presence of such a syntax element in the header of a group of tiles can be controlled using adaptive resolution (603) - here the flag value is not displayed in bold. This means that the flag is at a point in the bitstream according to the syntax scheme. It is possible to signal in any high-level syntax structure, inside or outside of the bitstream, whether adaptive resolution is applied to this image or parts of it. In the example shown, the signaling is done in a sequence parameter set as shown below.

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

[83] При использовании адаптивного разрешения в этом примере кодируется выходное разрешение в единицах отсчетов (613). Позиция 613 относится к параметрам output_pic_width_in_luma_samples и output_pic_height_in_luma_samples, которые совместно могут определить разрешение изображения на выходе. В других ситуациях на любое значение можно устанавливать определенные ограничения в технологии или стандарте кодирования видео. Например, определение уровня может ограничивать количество выходных отсчетов, которое может быть произведением значений этих двух элементов синтаксиса. Также определенные технологии или стандарты кодирования видео, или внешние технологии или стандарты, например, стандарты системы, могут ограничивать количественный диапазон (например, одно или более измерений должно делиться на степень двойки) или соотношение сторон (например, ширина и высота должны быть в соотношении 4:3 или 16:9). Подобные ограничения, хорошо известные в данной области техники, могут вводиться для снижения нагрузки на аппаратные устройства или по другим причинам.[83] When using adaptive resolution, this example encodes the output resolution in units of samples (613). Position 613 refers to the parameters output_pic_width_in_luma_samples and output_pic_height_in_luma_samples, which together can determine the output image resolution. In other situations, any value can be subject to certain restrictions in the video coding technology or standard. For example, the level definition may limit the number of output samples that can be the product of the values of these two syntax elements. Also, certain video coding technologies or standards, or external technologies or standards, such as system standards, may restrict the quantitative range (for example, one or more dimensions must be divisible by a power of two) or aspect ratio (for example, width and height must be in the ratio of 4 :3 or 16:9). Such restrictions, well known in the art, may be introduced to reduce the load on hardware devices or for other reasons.

[84] В ряде приложений можно рекомендовать применение декодером определенного размера опорных изображений по команде кодера, а не принимать размер выходного изображения по умолчанию. В этом примере элемент синтаксиса reference_pic_size_present_flag (614) контролирует условные размеры опорных изображений (615) (опять же число относится к ширине и высоте).[84] In some applications, it may be recommended that the decoder use a specific reference picture size at the command of the encoder, rather than accepting the default output picture size. In this example, the syntax element reference_pic_size_present_flag (614) controls the reference picture reference sizes (615) (again, the number refers to the width and height).

[85] Наконец показана таблица возможных значений ширины и высоты декодируемого изображения. Такая таблица может быть представлена, например, табличным указателем (num_dec_pic_size_in_luma_samples_minus1) (616). Значение "minus1" может обозначать интерпретацию значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, то в наличии будет одна табличная запись. Если значение равно пяти, то в таблице будет шесть записей. Далее для каждой "строки" таблицы ширина и высота декодированного изображения вводится в синтаксис (617).[85] Finally, a table of possible values for the width and height of the decoded image is shown. Such a table may be represented, for example, by a table index (num_dec_pic_size_in_luma_samples_minus1) (616). The value "minus1" may indicate an interpretation of the meaning of this syntax element. For example, if the encoded value is zero, then there will be one table entry available. If the value is five, then the table will have six records. Next, for each "row" of the table, the width and height of the decoded image is entered into the syntax (617).

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

[87] Определенные технологии или стандарты кодирования видео, например, VP9 поддерживают пространственное масштабирование посредством определенных форм передискретизации опорного изображения (сигнализируемых раскрытым изобретением совершенно иначе) в связке со временным масштабированием для включения пространственного масштабирования. В частности, у определенных опорных изображений можно повышать разрешение с помощью ARC технологий для формирования базы пространственного уровня улучшения. Эти изображения с повышенным разрешением можно улучшить посредством стандартных механизмов предсказания при высоком разрешении, чтобы добавить детали.[87] Certain video coding technologies or standards, such as VP9, support spatial scaling through certain forms of reference picture resampling (signaled differently by the disclosed invention) in conjunction with temporal scaling to enable spatial scaling. In particular, certain reference images can be upsampled using ARC techniques to form a spatial enhancement layer base. These higher resolution images can be enhanced with standard high resolution prediction engines to add detail.

[88] Представленные в этом документе варианты осуществления можно применять в подобной среде. В ряде случаев, в том же или другом варианте осуществления, значение заголовка блока NAL, например, поле временного ID, можно использовать для указания не только временного, но и пространственного уровня. Такой подход имеет определенные преимущества для определенных конструкций системы: например, при существующих блоках выборочной переадресации (SFU, Selected Forwarding Unit), созданных и оптимизированных для выборочной переадресации временного уровня на основе заголовка блока NAL, значение временного ID может использоваться без изменений для масштабируемых сред. Для этого необходимо масштабирование между размером кодированного изображения и временным уровнем, указанным полем временного ID в заголовке блока NAL.[88] The embodiments presented herein can be used in such an environment. In some cases, in the same or another embodiment, a NAL unit header value, such as a temporal ID field, can be used to indicate not only the temporal but also the spatial level. This approach has certain advantages for certain system designs: for example, with existing Selected Forwarding Units (SFUs) created and optimized for temporal selective forwarding based on the NAL unit header, the temporal ID value can be used unchanged for scalable environments. This requires scaling between the encoded picture size and the temporal level indicated by the temporal ID field in the NAL unit header.

[89] При передискретизации опорного изображения (RPR) или адаптивном изменении разрешения (ARC) дополнительной нагрузкой для поддержки масштабируемости может стать незначительное изменение синтаксиса высокого уровня (HLS). В вариантах осуществления предсказание между уровнями осуществляется в масштабируемой системе для улучшения эффективности кодирования уровней улучшения. Помимо пространственных и временных предсказаний с компенсацией движения, доступных в кодеке с одним уровнем, предсказание между уровнями может использовать видеоданные передискретизации реконструированного опорного изображения из опорного уровня для предсказания текущего уровня улучшения. Далее, процесс передискретизации для предсказания между уровнями можно выполнять на блочном уровне посредством модификации существующего процесса интерполяции для компенсации движения. В вариантах осуществления дополнительный процесс передискретизации для поддержки масштабирования может быть не нужен. Варианты осуществления относятся к элементам синтаксиса высокого уровня для поддержки масштабирования пространства/качества посредством RPR.[89] With Reference Picture Resampling (RPR) or Adaptive Resolution Resampling (ARC), a minor change in High Level Syntax (HLS) can become an additional burden to support scalability. In embodiments, inter-layer prediction is performed in a scalable system to improve the enhancement layer coding efficiency. In addition to the motion compensated spatial and temporal predictions available in a single layer codec, interlayer prediction can use resampling video data of the reconstructed reference picture from the reference layer to predict the current enhancement layer. Further, the resampling process for interlayer prediction can be performed at the block level by modifying the existing interpolation process for motion compensation. In embodiments, an additional resampling process to support scaling may not be needed. Embodiments refer to high level syntax elements for supporting space/quality scaling by RPR.

[90] В том же или другом варианте осуществления, согласно фиг. 7, элемент синтаксиса vps_max_layers_minus1 (703) плюс 1 может обозначать максимально допустимое количество уровней в каждом CVS со ссылкой на VPS (701). Переменная vps_all_independent_layers_flag (704), равная единице, может означать, что все уровни в CVS кодируются независимо без применения предсказания между уровнями. Переменная vps_all_independent_layers_flag (704), равная нулю, может означать, что один или более уровней в CVS могут применять предсказание между уровнями. При несоблюдении этого условия значение vps_all_independent_layers_flag можно считать равным единице. Когда переменная vps_all_independent_layers_flag равна единице, значение переменной vps_independent_layer_flag[i] (706) можно считать равным единице. Когда переменная vps_all_independent_layers_flag равна нулю, значение vps_independent_layer_flag[0] можно считать равным единице.[90] In the same or another embodiment, referring to FIG. 7, the syntax element vps_max_layers_minus1 (703) plus 1 may denote the maximum allowed number of layers in each CVS with reference to the VPS (701). The variable vps_all_independent_layers_flag (704) equal to one may mean that all layers in CVS are encoded independently without applying prediction between layers. The variable vps_all_independent_layers_flag (704) equal to zero may mean that one or more layers in CVS can apply interlayer prediction. If this condition is not met, the vps_all_independent_layers_flag value can be considered equal to one. When the variable vps_all_independent_layers_flag is equal to one, the value of the variable vps_independent_layer_flag[i] (706) can be considered equal to one. When the variable vps_all_independent_layers_flag is zero, the value of vps_independent_layer_flag[0] can be considered equal to one.

[91] Согласно фиг. 7, переменная vps_independent_layer_flag[i] (706) равная единице может означать, что уровень с указателем i не использует предсказания между уровнями. Переменная vps_independent_layer_flag[i] равная нулю может означать, что уровень с указателем i может применять предсказание между уровнями, и что переменная vps_layer_dependency_flag[i] присутствует в VPS. Переменная vps_direct_dependency_flag[i][j] (707) равная нулю может означать, что уровень с указателем j не является прямым опорным уровнем для уровня с указателем i. Переменная vps_direct_dependency_flag[i][j] равная единице может означать, что уровень с указателем j является прямым опорным уровнем для уровня с указателем i. Когда переменная vps_direct_dependency_flag[i][j] не присутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, то ее значение можно считать равным нулю. Переменную DirectDependentLayerIdx[i][j], обозначающую прямой зависимый уровень j уровня i, можно получить следующим образом:[91] Referring to FIG. 7, the variable vps_independent_layer_flag[i] (706) equal to one may mean that the layer with pointer i does not use interlayer prediction. A vps_independent_layer_flag[i] variable of zero may mean that the layer with the i pointer can apply inter-layer prediction, and that the vps_layer_dependency_flag[i] variable is present in the VPS. The variable vps_direct_dependency_flag[i][j] (707) equal to zero may mean that the level with pointer j is not a direct reference level for the level with pointer i. The variable vps_direct_dependency_flag[i][j] equal to one can mean that the level with pointer j is a direct reference level for the level with pointer i. When the variable vps_direct_dependency_flag[i][j] is not present for i and j in the range 0 to vps_max_layers_minus1 inclusive, then its value can be assumed to be zero. The variable DirectDependentLayerIdx[i][j], denoting the direct dependent layer j of layer i, can be obtained as follows:

for(i=1; i<vps_max_layers_minus1; i--)for(i=1; i<vps_max_layers_minus1; i--)

if(!vps_independent_layer_flag[i])if(!vps_independent_layer_flag[i])

for(j=i, k=0; j>=0; j--)for(j=i, k=0; j>=0; j--)

if(vps_direct_dependency_flag[i][j])if(vps_direct_dependency_flag[i][j])

DirectDependentLayerIdx[i][k++]=jDirectDependentLayerIdx[i][k++]=j

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

for(i=0; i<=vps_max_layers_minus1; i++)for(i=0; i<=vps_max_layers_minus1; i++)

GeneralLayerIdx[vps_layer_id[i]]=iGeneralLayerIdx[vps_layer_id[i]]=i

[93] В том же или другом варианте осуществления, согласно фиг. 7, когда переменная vps_max_layers_minus1 больше нуля и значение vps_all_independent_layers_flag равно нулю, сигнализируются переменная vps_output_layers_mode и vps_output_layer_flags[i]. Переменная vps_output_layers_mode (708) равная нулю может означать, что выходным является только высший уровень. Переменная vps_output_layers_mode равная единице может означать, что все уровни являются выходными. Переменная vps_output_layers_mode равная двум может означать, что все выходные уровни являются уровнями с переменной vps_output_layer_flag[i] (709) равной единице. Значение переменной vps_output_layers_mode может быть в районе от 0 до 2 включительно. Значение 3 переменной vps_output_layers_mode резервируется для применения стандартами ITU-T | ISO/IEC в будущем. При несоблюдении этого условия значение vps_output_layers_mode можно считать равным единице. Переменная vps_output_layer_flag[i] равная единице может означать, что уровень i подлежит выводу. Переменная vps_output_layer_flag[i] равная нулю может означать, что уровень i не подлежит выводу. Список OutputLayerFlag[i], при котором значение 1 может означать, что уровень i подлежит выводу, а значение 0 может означать, что уровень i не выходной, можно получить следующим образом:[93] In the same or another embodiment, referring to FIG. 7, when vps_max_layers_minus1 is greater than zero and vps_all_independent_layers_flag is zero, vps_output_layers_mode and vps_output_layer_flags[i] are signalled. The variable vps_output_layers_mode (708) equal to zero can mean that only the highest layer is the output. The variable vps_output_layers_mode equal to one can mean that all levels are output. A vps_output_layers_mode variable of two can mean that all output levels are levels with vps_output_layer_flag[i] (709) set to one. The value of the vps_output_layers_mode variable can range from 0 to 2 inclusive. The value 3 of vps_output_layers_mode is reserved for use by ITU-T | ISO/IEC in the future. If this condition is not met, the vps_output_layers_mode value can be considered equal to one. Variable vps_output_layer_flag[i] equal to one may mean that layer i is to be output. Variable vps_output_layer_flag[i] equal to zero may mean that level i is not to be output. The list OutputLayerFlag[i], where the value 1 can mean that level i is to be output, and the value 0 can mean that level i is not an output, can be obtained as follows:

OutputLayerFlag[vps_max_layers_minus1]=1OutputLayerFlag[vps_max_layers_minus1]=1

for(i=0; i<vps_max_layers_minus1; i++)for(i=0; i<vps_max_layers_minus1; i++)

if(vps_output_layers_mode==0)if(vps_output_layers_mode==0)

OutputLayerFlag[i]=0OutputLayerFlag[i]=0

else if(vps_output_layers_mode==1)else if(vps_output_layers_mode==1)

OutputLayerFlag[i]=1OutputLayerFlag[i]=1

else if(vps_output_layers_mode==2)else if(vps_output_layers_mode==2)

OutputLayerFlag[i]=vps_output_layer_flag[i]OutputLayerFlag[i]=vps_output_layer_flag[i]

[94] В том же или другом варианте осуществления, согласно фиг. 8, переменная vps_num_rep_formats_minus1 плюс 1 может обозначать количество синтаксических структур rep_format() в VPS. Значение vps_num_rep_formats_minus1 может быть в районе от 0 до 255 включительно. Переменная vps_rep_format_idx[i] задавать указатель (в списке синтаксических структур rep_format() в VPS) синтаксической структуры, применяемой к уровню с переменной GeneralLayerIdx[nuh_layer_id] равной i. Значение vps_rep_format_idx[i] может быть в районе от 0 до vps_num_rep_formats_minus1 включительно. Количество битов, применяемых для отображения vps_rep_format_idx[i] составляет Ceil(Log2(vps_num_rep_formats_minus1+1)). Переменные pic_width_max_vps_in_luma_samples, pic_height_max_vps_in_luma_samples, chroma_format_vps_idc, separate_colour_plane_vps_flag, bit_depth_vps_luma_minus8 и bit_depth_vps_chroma_minus8 применяются для получения значений синтаксических элементов SPS pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8 и bit_depth_chroma_minus8 соответственно для каждого SPS, относящегося к VPS. Переменная pic_width_max_vps_in_luma_samples не может быть равна 0 и может быть целым числом кратным max(8, MinCbSizeY). Переменная pic_height_max_vps_in_luma_samples не может быть равна 0 и может быть целым числом кратным max(8, MinCbSizeY). Значение переменной chroma_format_vps_idc может быть в районе от 0 до 3 включительно. Переменная bit_depth_vps_chroma_minus8 может быть в районе от 0 до 8 включительно.[94] In the same or another embodiment, referring to FIG. 8, the variable vps_num_rep_formats_minus1 plus 1 may indicate the number of rep_format() syntax structures in the VPS. The vps_num_rep_formats_minus1 value can range from 0 to 255 inclusive. The vps_rep_format_idx[i] variable specifies the pointer (in the rep_format() list of syntax structures in the VPS) of the syntax structure applied to the layer with the GeneralLayerIdx[nuh_layer_id] variable equal to i. The vps_rep_format_idx[i] value can range from 0 to vps_num_rep_formats_minus1 inclusive. The number of bits used to map vps_rep_format_idx[i] is Ceil(Log2(vps_num_rep_formats_minus1+1)). Переменные pic_width_max_vps_in_luma_samples, pic_height_max_vps_in_luma_samples, chroma_format_vps_idc, separate_colour_plane_vps_flag, bit_depth_vps_luma_minus8 и bit_depth_vps_chroma_minus8 применяются для получения значений синтаксических элементов SPS pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8 и bit_depth_chroma_minus8 соответственно для каждого SPS, относящегося к VPS. The variable pic_width_max_vps_in_luma_samples cannot be equal to 0 and can be an integer multiple of max(8, MinCbSizeY). The variable pic_height_max_vps_in_luma_samples cannot be equal to 0 and can be an integer multiple of max(8, MinCbSizeY). The value of the chroma_format_vps_idc variable can range from 0 to 3 inclusive. The bit_depth_vps_chroma_minus8 variable can range from 0 to 8 inclusive.

[95] Переменная subpics_vps_present_flag равная единице указывает, что параметры субизображений присутствуют в синтаксисе VPS RBSP. Переменная subpics_present_flag равная нулю указывает, что параметры субизображений не присутствуют в синтаксисе VPS RBSP. Переменные syntax, max_subpics_vps_minus1, subpic_grid_vps_col_width_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_idx[i][j], subpic_treated_as_pic_vps_flag[i] и loop_filter_across_subpic_enabled_vps_flag[i] применяются для получения значений элементов синтаксиса SPS max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[i] соответственно для каждого SPS, относящегося к VPS.[95] The subpics_vps_present_flag variable equal to one indicates that the subpicture parameters are present in the VPS RBSP syntax. The subpics_present_flag variable equal to zero indicates that the subpicture parameters are not present in the VPS RBSP syntax. Переменные syntax, max_subpics_vps_minus1, subpic_grid_vps_col_width_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_idx[i][j], subpic_treated_as_pic_vps_flag[i] и loop_filter_across_subpic_enabled_vps_flag[i] применяются для получения значений элементов синтаксиса SPS max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] and loop_filter_across_subpic_enabled_flag[i] respectively for each VPS related SPS.

[96] В том же или другом варианте осуществления, согласно фиг. 9, переменная use_rep_format_flag равная единице может означать присутствие переменной sps_rep_format_idx. Переменная use_rep_format_flag равная нулю может означать отсутствие переменной sps_rep_format_idx и присутствие следующих переменных в SPS: pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8, max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[i]. Переменная sps_rep_format_idx может означать, что синтаксические структуры sps_rep_format_idx-th rep_format() в упоминаемых VPS применяются к уровням, относящимся к этому SPS. При наличии переменные pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8, max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[i] предполагаются равными значениям pic_width_max_vps_in_luma_samples, pic_height_max_vps_in_luma_samples, chroma_format_vps_idc, separate_colour _plane_vps_flag, bit_depth_vps_luma_minus8, bit_depth_vps_chroma_minus8, max_subpics_vps_minus1, subpic_grid_vps_col_width_minus1 subpic_grid_vps_row_height_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_idx[i][j], subpic_treated_as_pic_vps_flag[i] и loop_filter_across_subpic_enabled_vps_flag[i] в синтаксических структурах sps_rep_format_idx-th rep_format() в ссылочном VPS. Переменная subpics_present_flag равная единице указывает, что параметры субизображения присутствуют в синтаксисе SPS RBSP. Переменная subpics_present_flag равная нулю указывает, что параметры субизображения отсутствуют в синтаксисе SPS RBSP. Переменная max_subpics_minus1 плюс 1 может обозначать максимальное количество субизображений, которые могут присутствовать в CVS. Переменная max_subpics_minus1 может быть в районе от 0 до 254. Переменная subpic_grid_col_width_minus1 плюс 1 может обозначать ширину каждого элемента идентификационной решетки субизображения в блоках из четырех отсчетов. Длина элемента синтаксиса составляет Ceil(Log2(pic_width_max_in_luma_samples / 4)) битов.[96] In the same or another embodiment, referring to FIG. 9, the variable use_rep_format_flag equal to one may indicate the presence of the variable sps_rep_format_idx. Переменная use_rep_format_flag равная нулю может означать отсутствие переменной sps_rep_format_idx и присутствие следующих переменных в SPS: pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8, max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[ i]. The sps_rep_format_idx variable can mean that the sps_rep_format_idx-th rep_format() syntax structures in the referenced VPS apply to the levels related to that SPS. При наличии переменные pic_width_max_in_luma_samples, pic_height_max_in_luma_samples, chroma_format_idc, separate_colour_plane_flag, bit_depth_luma_minus8, bit_depth_chroma_minus8, max_subpics_minus1, subpic_grid_col_width_minus1 subpic_grid_row_height_minus1, subpic_grid_row_height_minus1, subpic_grid_idx[i][j], subpic_treated_as_pic_flag[i] и loop_filter_across_subpic_enabled_flag[i] предполагаются равными значениям pic_width_max_vps_in_luma_samples, pic_height_max_vps_in_luma_samples, chroma_format_vps_idc, separate_colour _plane_vps_flag , bit_depth_vps_luma_minus8, bit_depth_vps_chroma_minus8, max_subpics_vps_minus1, subpic_grid_vps_col_width_minus1 subpic_grid_vps_row_height_minus1, subpic_grid_vps_row_height_minus1, subpic_grid_vps_idx[i][j], subpic_treated_as_pic_vps_flag[i] и loop_filter_across_subpic_enabled_vps_flag[i] в синтаксических структурах sps_rep_format_idx-th rep_format() в ссылочном VPS. The subpics_present_flag variable equal to one indicates that the subpicture parameters are present in the RBSP SPS syntax. The subpics_present_flag variable equal to zero indicates that the subpicture parameters are not present in the RBSP SPS syntax. The variable max_subpics_minus1 plus 1 can indicate the maximum number of subpics that can be present in CVS. The variable max_subpics_minus1 may range from 0 to 254. The variable subpic_grid_col_width_minus1 plus 1 may indicate the width of each subpicture identification grid element in blocks of four samples. The length of the syntax element is Ceil(Log2(pic_width_max_in_luma_samples / 4)) bits.

[97] Переменная NumSubPicGridCols может быть получена следующим образом: NumSubPicGridCols=([97] The NumSubPicGridCols variable can be obtained as follows: NumSubPicGridCols=(

pic_width_max_in_luma_samples + subpic grid col width minus1*4+3)/pic_width_max_in_luma_samples + subpic grid col width minus1*4+3)/

(subpic_grid_col_width_minus1*4+4)(subpic_grid_col_width_minus1*4+4)

[98] Переменная subpic_grid_row_height_minus1 плюс 1 может обозначать высоту каждого элемента идентификационной решетки субизображения в блоках из четырех отсчетов. Длина элемента синтаксиса составляет[98] The variable subpic_grid_row_height_minus1 plus 1 may indicate the height of each element of the sub-image identification grid in blocks of four samples. The length of the syntax element is

Ceil(Log2(pic_height_max_in_luma_samples / 4)) битов.Ceil(Log2(pic_height_max_in_luma_samples / 4)) bits.

[99] Переменную NumSubPicGridRows можно получить следующим образом: NumSubPicGridRows=([99] You can get the NumSubPicGridRows variable like this: NumSubPicGridRows=(

pic_height_max_in_luma_samples + subpic_grid_row_height_minus1*4+3) / (subpic_grid_row_height_minus1*4+4)pic_height_max_in_luma_samples + subpic_grid_row_height_minus1*4+3) / (subpic_grid_row_height_minus1*4+4)

[100] Переменная subpic_grid_idx[i][j] может обозначать указатель субизображения положения решетки (i, j). Длина синтаксического элемента составляет[100] The variable subpic_grid_idx[i][j] may denote a subpicture pointer of the position of the grid (i, j). The length of the syntax element is

Ceil(Log2(max_subpics_minus1+1)) битов.Ceil(Log2(max_subpics_minus1+1)) bits.

[101] Переменные SubPicTop[subpic_grid_idx[i][j]],[101] Variables SubPicTop[subpic_grid_idx[i][j]],

SubPicLeft[subpic_grid_idx[i][j]], SubPicWidth[subpic_grid_idx[i][j]],SubPicLeft[subpic_grid_idx[i][j]], SubPicWidth[subpic_grid_idx[i][j]],

SubPicHeight[subpic_grid_idx[i][j]], и NumSubPics можно получить следующим образом:SubPicHeight[subpic_grid_idx[i][j]], and NumSubPics can be obtained like this:

NumSubPics=0NumSubPics=0

for(i=0; i.<NumSubPicGridRows; i++) {for(i=0; i.<NumSubPicGridRows; i++) {

for(j=0; j<NumSubPicGridCols; j++) {for(j=0; j<NumSubPicGridCols; j++) {

if(i=0)if(i=0)

SubPicTop[subpic_grid_idx[i][j]]=0SubPicTop[subpic_grid_idx[i][j]]=0

else if(subpic_grid_idx[i][j] !=subpic_grid_idx[i-1][j]) {else if(subpic_grid_idx[i][j] !=subpic_grid_idx[i-1][j]) {

SubPicTop[subpic_grid_idx[i][j]]=iSubPicTop[subpic_grid_idx[i][j]]=i

SubPicHeight[subpic_grid_idx[i-1][j]]=SubPicHeight[subpic_grid_idx[i-1][j]]=

i - SubPicTop[subpic_grid_idx[i-1][j]]i - SubPicTop[subpic_grid_idx[i-1][j]]

}}

if(j=0)if(j=0)

SubPicLeft[subpic_grid_idx[i][j]]=0SubPicLeft[subpic_grid_idx[i][j]]=0

else if (subpic_grid_idxf i][j] !=subpic_grid_idx[i][j-1]) {else if (subpic_grid_idxf i][j] !=subpic_grid_idx[i][j-1]) {

SubPicLeft[subpic_grid_idx[i][j]]=jSubPicLeft[subpic_grid_idx[i][j]]=j

SubPicWidth[subpic_grid_idx[i][j]]=SubPicWidth[subpic_grid_idx[i][j]]=

j - SubPicLeft[subpic_grid_idx[i][j-1]]j - SubPicLeft[subpic_grid_idx[i][j-1]]

}}

if (i==NumSubPicGridRows-1)if (i==NumSubPicGridRows-1)

SubPicHeightf subpic_grid_idx[i][j]]=SubPicHeightf subpic_grid_idx[i][j]]=

i - SubPicTop[subpic_grid_idx[i-1][j]]+1i - SubPicTop[subpic_grid_idx[i-1][j]]+1

if (j=NumSubPicGridRows-1)if (j=NumSubPicGridRows-1)

SubPicWidth[subpic_grid_idx[i][j]]=SubPicWidth[subpic_grid_idx[i][j]]=

j - SubPicLeft[subpic_grid_idx[i][j-1]]+1j - SubPicLeft[subpic_grid_idx[i][j-1]]+1

if(subpic_grid_idx[i][j]>NumSubPics)if(subpic_grid_idx[i][j]>NumSubPics)

NumSubPics=subpic_grid_idx[i][j]NumSubPics=subpic_grid_idx[i][j]

}}

}}

[102] Переменная subpic_treated_as_pic_flag[i] равная единице может обозначать, что субизображение i каждого кодированного изображения в CVS обрабатывается как изображение в процессе декодирования, исключающего операции контурной фильтрации. Переменная subpic_treated_as_pic_flag[i] равная нулю может обозначать, что субизображение i каждого кодированного изображения в CVS не обрабатывается как изображение в процессе декодирования, исключающего операции контурной фильтрации. При несоблюдении данного условия значение переменной subpic_treated_as_pic_flag[i] можно считать равным нулю.[102] The variable subpic_treated_as_pic_flag[i] equal to one may indicate that subpicture i of each encoded picture in CVS is treated as a picture in a decoding process that excludes edge filtering operations. The variable subpic_treated_as_pic_flag[i] equal to zero may indicate that subpicture i of each encoded picture in CVS is not treated as a picture in a decoding process that excludes edge filtering operations. If this condition is not met, the value of the subpic_treated_as_pic_flag[i] variable can be considered equal to zero.

[103] Переменная loop_filter_across_subpic_enabled_flag[i] равная единице может обозначать, что операции контурной фильтрации можно выполнять по границам субизображения i каждого кодированного изображения в CVS. Переменная loop_filter_across_subpic_enabled_flag[i] равная нулю может обозначать, что операции контурной фильтрации не выполняются по границам субизображения i каждого кодированного изображения в CVS. При несоблюдении данного условия значение переменной loop_filter_across_subpic_enabled_pic_flag[i] можно считать равным единице.[103] The variable loop_filter_across_subpic_enabled_flag[i] equal to one may indicate that loop filtering operations can be performed on the boundaries of sub-image i of each encoded picture in CVS. The variable loop_filter_across_subpic_enabled_flag[i] equal to zero may indicate that loop filtering operations are not performed on the boundaries of subpicture i of each encoded picture in CVS. If this condition is not met, the value of the loop_filter_across_subpic_enabled_pic_flag[i] variable can be considered equal to one.

[104] Фиг. 10 - блок-схема примера процесса 1000 для декодирования битового потока кодированного видео. В некоторых вариантах осуществления один или более блоков обработки фиг. 10 можно выполнить посредством декодера 210. В некоторых вариантах осуществления один или более блоков обработки фиг. 10 можно выполнить другим устройством или группой устройств без или с декодером 210, например, кодером 203.[104] FIG. 10 is a flow diagram of an example process 1000 for decoding an encoded video bitstream. In some embodiments, one or more of the processing units of FIG. 10 may be performed by decoder 210. In some embodiments, one or more processing units of FIG. 10 can be performed by another device or group of devices without or with decoder 210, such as encoder 203.

[105] Согласно фиг. 10, процесс 1000 может включать получение кодированной видеопоследовательности из битового потока кодированного видео (блок 1001).[105] Referring to FIG. 10, process 1000 may include deriving an encoded video sequence from an encoded video bitstream (block 1001).

[106] Далее, согласно фиг. 10, процесс 1000 может включать получение первого элемента синтаксиса, указывающего на количество уровней, включенных в кодированную видеопоследовательность, и второго элемента синтаксиса, указывающего, являются ли все уровни, включенные в кодированную видеопоследовательность, независимыми уровнями (блок 1002).[106] Further, referring to FIG. 10, process 1000 may include obtaining a first syntax element indicating the number of layers included in the coded video sequence and a second syntax element indicating whether all levels included in the coded video sequence are independent layers (block 1002).

[107] Далее, согласно фиг. 10, процесс 1000 может включать следующее определение на основании первого элемента синтаксиса: превышает ли количество уровней, включенных в CVS, один уровень (блок 1003).[107] Further, referring to FIG. 10, process 1000 may include the following determination, based on the first syntax element, whether the number of levels included in CVS is greater than one level (block 1003).

[108] Далее, согласно фиг. 10, на основании первого элемента синтаксиса, указывающего, что количество уровней, включенных в CVS не превышает одного уровня (НЕТ на блоке 1003), процесс 1000 может перейти к блоку 1004, в котором один уровень определяется как выходной уровень, а затем к блоку 1010, в котором выходной уровень подлежит выводу.[108] Further, referring to FIG. 10, based on the first syntax element indicating that the number of levels included in CVS does not exceed one level (NO at block 1003), process 1000 may proceed to block 1004, in which one level is defined as the output level, and then to block 1010 , in which the output level is to be output.

[109] Далее, согласно фиг. 10, на основании первого элемента синтаксиса, указывающего, что количество уровней, включенных в CVS, превышает один уровень (ДА на блоке 1003), процесс 1000 может перейти к блоку 1005.[109] Further, referring to FIG. 10, based on the first syntax element indicating that the number of levels included in CVS is greater than one level (YES at block 1003), process 1000 may proceed to block 1005.

[110] Далее, согласно фиг. 10, процесс 1000 может включать следующее определение на основании второго элемента синтаксиса: являются ли все уровни, включенные в кодированную видеопоследовательность, независимыми уровнями (блок 1005).[110] Further, referring to FIG. 10, process 1000 may include determining, based on the second syntax element, whether all layers included in the coded video sequence are independent layers (block 1005).

[111] Далее, согласно фиг. 10, процесс 1000 может перейти к блоку 1006, в котором все уровни определены как выходные, а затем к блоку 1010, в котором все уровни выводят, на основании второго элемента синтаксиса, указывающего на независимость всех уровней, включенных в кодированную видеопоследовательность (ДА на блоке 1005).[111] Further, referring to FIG. 10, process 1000 may proceed to block 1006, in which all levels are defined as output, and then to block 1010, in which all levels are output, based on the second syntax element indicating the independence of all levels included in the encoded video sequence (YES on block 1005).

[112] Далее, согласно фиг. 10, на основании второго элемента синтаксиса, указывающего, что не все уровни, включенные в кодированную[112] Further, referring to FIG. 10, based on the second syntax element indicating that not all levels included in the coded

видеопоследовательность, являются независимыми (НЕТ на блоке 1003), процесс 1000 может перейти к блоку 1007.video sequence are independent (NO at block 1003), process 1000 may proceed to block 1007.

[113] Далее, согласно фиг. 10, процесс 1000 может включать получение третьего элемента синтаксиса, указывающего на режим вывода (блок 1007).[113] Further, referring to FIG. 10, process 1000 may include obtaining a third syntax element indicating an output mode (block 1007).

[114] Далее, согласно фиг. 10, процесс 1000 может включать определение режима вывода на основании третьего элемента синтаксиса (блок 1008).[114] Further, referring to FIG. 10, process 1000 may include determining an output mode based on the third syntax element (block 1008).

[115] Далее, согласно фиг. 10, процесс 1000 может включать определение одного или более выходных уровней из множества уровней на основании режима вывода, который был определен (блок 1009).[115] Further, referring to FIG. 10, process 1000 may include determining one or more output levels from a plurality of levels based on an output mode that has been determined (block 1009).

[116] Далее, согласно фиг. 10, процесс 1000 может включать вывод одного или более выходных уровней (блок 1010).[116] Further, referring to FIG. 10, process 1000 may include outputting one or more output levels (block 1010).

[117] В варианте осуществления, основанном на третьем элементе синтаксиса, указывающем, что режим вывода является первым режимом, один или более выходных уровней могут включать только высший уровень из множества уровней.[117] In an embodiment based on the third syntax element indicating that the output mode is the first mode, one or more output levels may include only the highest level of the plurality of levels.

[118] В варианте осуществления, основанном на третьем элементе синтаксиса, указывающим, что режим вывода является вторым режимом, один или более выходных уровней могут включать множество уровней.[118] In an embodiment based on the third syntax element indicating that the output mode is the second mode, one or more output levels may include a plurality of levels.

[119] В варианте осуществления процесс 1000 может также включать получение четвертого элемента синтаксиса, указывающего, что соответствующий уровень из множества уровней должен быть выходным, где (на основании третьего элемента синтаксиса, указывающего на то, что режим вывода является третьим режимом) один или более выходных уровней могут включать этот соответствующий уровень.[119] In an embodiment, process 1000 may also include obtaining a fourth syntax element indicating that the corresponding level of the set of levels is to be output, where (based on the third syntax element indicating that the output mode is the third mode) one or more output levels may include this corresponding level.

[120] В варианте осуществления первый, второй и третий элементы синтаксиса могут быть сигнализированы в наборе параметров видео (VPS).[120] In an embodiment, the first, second, and third syntax elements may be signaled in a video parameter set (VPS).

[121] В варианте осуществления VPS может также включать пятый элемент синтаксиса, указывающий множество сигнализируемых в VPS форматов изображения, и шестой элемент синтаксиса, указывающий на индекс формата изображения из множества форматов изображения, который должен быть применен к уровню из множества уровней.[121] In an embodiment, the VPS may also include a fifth syntax element indicating the set of image formats signaled to the VPS, and a sixth syntax element indicating an image format index of the set of image formats to be applied to the layer of the set of levels.

[122] В варианте осуществления VPS может также включать седьмой элемент синтаксиса, указывающий, сигнализируются ли параметры субизображения в VPS.[122] In an embodiment, the VPS may also include a seventh syntax element indicating whether the sub-image parameters are signaled to the VPS.

[123] В варианте осуществления набор параметров последовательности (SPS) со ссылкой на VPS может включать восьмой элемент синтаксиса, указывающий на включение девятого элемента синтаксиса в SPS. Девятый элемент синтаксиса указывает на индекс формата изображения из множества форматов изображения, сигнализируемого в VPS, который должен быть применен к уровню из множества уровней.[123] In an embodiment, a sequence parameter set (SPS) with reference to a VPS may include an eighth syntax element indicating the inclusion of a ninth syntax element in the SPS. The ninth element of the syntax indicates the index of the image format of the set of image formats, signaled in the VPS, which should be applied to the level of the set of levels.

[124] В варианте осуществления SPS может также включать шестой элемент синтаксиса, указывающий, сигнализируются ли параметры субизображения в SPS.[124] In an embodiment, the SPS may also include a sixth syntax element indicating whether the sub-image parameters are signaled in the SPS.

[125] Несмотря на то, что фиг. 10 демонстрирует примеры блоков процесса 1000, в ряде случаев процесс 1000 может также включать дополнительные блоки, меньшее количество блоков, различные блоки или иную компоновку блоков по сравнению с фиг. 10. Одновременно можно обрабатывать два или более блоков процесса 1000 в качестве дополнения или альтернативы.[125] Although FIG. 10 shows examples of process blocks 1000, in some cases process 1000 may also include additional blocks, fewer blocks, different blocks, or a different block arrangement compared to FIG. 10. Two or more process blocks 1000 may be processed at the same time as an addition or alternative.

[126] Далее, предложенные способы можно выполнять обрабатывающей схемой (например, одним или несколькими процессорами, а также одной или несколькими интегральными схемами). В одном примере один или более процессоров выполняют программу, хранящуюся на компьютерно-считываемом носителе информации для реализации одного или более предложенных способов.[126] Further, the proposed methods can be performed by a processing circuit (eg, one or more processors, as well as one or more integrated circuits). In one example, one or more processors execute a program stored on a computer-readable storage medium to implement one or more of the proposed methods.

[127] Вышеописанные способы могут быть реализованы в виде компьютерного программного обеспечения, использующего компьютерно-считываемые инструкции и физически хранящегося на одном или более компьютерно-считываемых носителях. Например, на фиг. 11 показана компьютерная система 1100, пригодная для реализации некоторых вариантов осуществления раскрытого изобретения.[127] The above methods may be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, in FIG. 11 shows a computer system 1100 suitable for implementing some embodiments of the disclosed invention.

[128] Компьютерное программное обеспечение может кодироваться с использованием любого подходящего машинного кода или компьютерного языка, который может подвергаться ассемблированию, компиляции, редактированию связей или аналогичной обработке для создания кода, содержащего инструкции, которые могут выполняться напрямую, или посредством интерпретации, выполнения микрокода и т.п., одним или более компьютерными центральными процессорами (CPU, central processing units), графическими процессорами (GPU, Graphics Processing Units) и т.п.[128] Computer software may be coded using any suitable machine code or computer language that may be assembled, compiled, linked, or similarly processed to produce code containing instructions that can be executed directly, or through interpretation, execution of microcode, etc. .p., one or more computer central processing units (CPU, central processing units), graphic processors (GPU, Graphics Processing Units), etc.

[129] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства интернета вещей и т.п.[129] The 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.

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

[131] Компьютерная система (1100) может включать в себя некоторые устройства ввода интерфейса человеком. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например, звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двухмерного видео, трехмерного видео, включающего в себя стереоскопическое видео).[131] The computer system (1100) 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). Interface devices may also be used to capture certain media not necessarily directly related to conscious human input, e.g. sound (e.g. speech, music, external sound), images (e.g. scanned images, photographic images received from a still camera) , video (eg, 2D video, 3D video including stereoscopic video).

[132] Устройства входного человеческого интерфейса могут включать в себя одно или более устройств (по одному из изображенных): клавиатуру 1101, мышь 1102, сенсорную панель 1103, сенсорный экран 1110 и подключенный к нему графический адаптер 1150, джойстик 1105, микрофон 1106, сканер 1107, камеру 1108.[132] The human interface input devices may include one or more of the following (as depicted): keyboard 1101, mouse 1102, touch pad 1103, touch screen 1110 and associated graphics adapter 1150, joystick 1105, microphone 1106, scanner 1107, chamber 1108.

[133] Компьютерная система 1100 также может включать в себя некоторые устройства вывода интерфейса с человеком. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать в себя устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 1110, цифровой перчатки или джойстика 1105, но также могут быть устройствами тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: громкоговорители 1109, наушники (не показаны)), устройства визуального вывода (например, экраны 1110, в том числе CRT-экраны, LCD-экраны, плазменные экраны, OLED-экраны, каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из которых способны к двухмерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографического вывода; очков виртуальной реальности (не показаны), голографических дисплеев и дымовых баков (не показаны)) и принтеры (не показаны).[133] Computer system 1100 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 (for example, haptic feedback via the 1110 touch screen, digital glove or 1105 joystick, but may also be haptic feedback devices that do not serve as input devices), audio output devices (for example: speakers 1109, headphones (not shown)), visual output devices (e.g., 1110 screens, including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capabilities, each with tactile or no feedback, some of which are capable of 2D visual output or more than 3D output via, for example, stereographic output; virtual reality goggles (not shown), holographic displays and smoke tanks (not shown)) and printers (not shown) .

[134] Компьютерная система 1100 также может включать в себя доступные человеку запоминающие устройства и связанные с ними носители, например, оптические носители, включающие в себя CD/DVD ROM/RW 1120 с носителями CD/DVD 1121 и т.п., карты флэш-памяти 1122, сменный жесткий диск или твердотельный диск 1123, традиционные магнитные носители, например, ленту и флоппи-диск (не показан), специализированные устройства на основе ROM/ASIC/PLD, например, защитные аппаратные ключи (не показаны) и т.п.[134] The computer system 1100 may also include human accessible storage devices and associated media, such as optical media including CD/DVD ROM/RW 1120 with CD/DVD media 1121 and the like, flash cards 1122 memories, 1123 removable hard drive or solid state drive, traditional magnetic media such as tape and floppy disk (not shown), dedicated ROM/ASIC/PLD based devices such as security dongles (not shown), etc. P.

[135] Специалисты в данной области техники также должны понимать, что термин "компьютерно-считываемые носители", используемый в связи с раскрытым здесь изобретением, не охватывает среды передачи, несущие волны или другие кратковременные сигналы.[135] 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.

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

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

[138] Ядро 1140 может включать в себя один или более центральных процессоров (CPU) 1141, графические процессоры (GPU) 1142, специализированные программируемые модули обработки в форме вентильных матриц, программируемых пользователем (FPGA, Field Programmable Gate Areas) 1143, аппаратные ускорители 1144 для некоторых задач и т.д. Эти устройства, совместно с постоянной памятью (ROM) 1145, оперативной памятью 1146, внутренним хранилищем данных большой емкости, например, внутренними жесткими дисками, недоступными пользователю, SSD и т.п. 1147, могут соединяться посредством системной шины 1148. В некоторых компьютерных системах системная шина 1148 может быть доступна в форме одного или более физических разъемов для обеспечения расширений за счет дополнительных CPU, GPU и т.п. Периферийные устройства могут подключаться либо напрямую к системной шине ядра 1148, либо через периферийную шину 1149. Архитектуры периферийной шины включают в себя PCI, USB и т.п.[138] The core 1140 may include one or more central processing units (CPUs) 1141, graphics processing units (GPUs) 1142, dedicated field programmable gate area (FPGA) 1143, hardware accelerators 1144 for some tasks, etc. These devices, together with read-only memory (ROM) 1145, RAM 1146, large capacity internal storage such as user-inaccessible internal hard drives, SSDs, and the like. 1147 may be connected via system bus 1148. In some computer systems, system bus 1148 may be available in the form of one or more physical connectors to allow for expansion with additional CPUs, GPUs, and the like. Peripherals may be connected either directly to the 1148 core system bus or via the 1149 peripheral bus. Peripheral bus architectures include PCI, USB, and the like.

[139] CPU 1141, GPU 1142, FPGA 1143 и ускорители 1144 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ROM 1145 или RAM 1146. Переходные данные также могут храниться в RAM 1146, тогда как постоянные данные могут храниться, например, во внутреннем хранилище данных большой емкости 1147. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэш-памяти, которая может быть тесно связана с одним или более CPU 1141, GPU 1142, хранилищем данных большой емкости 1147, ROM 1145, RAM 1146 и т.п.[139] CPU 1141, GPU 1142, FPGA 1143, and accelerators 1144 may execute some instructions that together may constitute the aforementioned computer code. This computer code may be stored in ROM 1145 or RAM 1146. Transient data may also be stored in RAM 1146, while persistent data may be stored in, for example, an internal mass storage 1147. the use of cache memory, which may be closely associated with one or more of the CPU 1141, GPU 1142, mass storage 1147, ROM 1145, RAM 1146, and the like.

[140] На компьютерно-считываемых носителях может храниться компьютерный код для осуществления различных компьютерно-реализуемых операций. Носители и компьютерный код могут быть специально созданы в целях настоящего изобретения или могут относиться к хорошо известным и доступным специалистам в области компьютерного программного обеспечения.[140] 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.

[141] В порядке примера, но не ограничения, компьютерная система, имеющая архитектуру 1100, и, в частности, ядро 1140 может обеспечивать функциональные возможности благодаря выполнению процессором(ами) (включающим(и) в себя CPU, GPU, FPGA, ускорители и т.п.) программного обеспечения, воплощенного в одном или более материальных компьютерно-считываемых носителях. Такие компьютерно-считываемые носители могут быть носителями, связанными с доступным пользователю хранилищем данных большой емкости, представленным выше, а также некоторым хранилищем ядра 1140, носящим долговременный характер, например, внутренним хранилищем данных большой емкости 1147 или ROM 1145. Программное обеспечение, реализующее различные варианты осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 1140. Компьютерно-считываемый носитель может включать в себя одно или более запоминающих устройств или микросхем, в соответствии с конкретными нуждами. Программное обеспечение может предписывать ядру 1140 и, в частности, его процессорам (включая CPU, GPU, FPGA и т.п.) выполнять конкретные процессы или конкретные части описанных здесь конкретных процессов, включая задание структур данных, хранящихся в RAM 1146, и модификацию таких структур данных согласно процессам, заданным программным обеспечением. Дополнительно или альтернативно, компьютерная система может обеспечивать функциональные возможности благодаря логике, зашитой или иным образом воплощенной в схеме (например, ускоритель 1144), который может действовать вместо или совместно с программным обеспечением для выполнения конкретных процессов или конкретных частей описанных здесь конкретных процессов. Ссылка на программное обеспечение может охватывать логику, и наоборот, когда это уместно. Ссылка на компьютерно-считываемые носители может охватывать схему (например, интегральную схему (IC, integrated circuit)), где хранится программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или обе из них, когда это уместно. Настоящее изобретение охватывает любую подходящую комбинацию оборудования и программного обеспечения.[141] By way of example, and not limitation, a computer system having architecture 1100, and in particular core 1140, can provide functionality through execution by processor(s) (including(s) CPU, GPU, FPGA, accelerators, and 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 permanent storage of the kernel 1140, such as internal mass storage 1147 or ROM 1145. implementation of the present invention may be stored in such devices and executed by the core 1140. Computer-readable media may include one or more memory devices or chips, in accordance with specific needs. The software may direct the core 1140, and in particular its processors (including CPUs, GPUs, FPGAs, and the like), to execute specific processes or specific portions of the specific processes described herein, including defining data structures stored in RAM 1146 and modifying such data structures according to the processes defined by the software. Additionally or alternatively, the computer system may provide functionality through logic hardwired or otherwise embodied in circuitry (e.g., accelerator 1144) that may operate instead 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 may encompass a circuit (eg, an integrated circuit (IC)) 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.

[142] Хотя здесь описано несколько иллюстративных вариантов осуществления, возможны изменения, перестановки и различные эквиваленты для замены, которые находятся в объеме изобретения. Таким образом, специалисты в данной области техники могут предложить многочисленные системы и способы, которые, хотя в явном виде здесь не показаны и не описаны, воплощают принципы изобретения и, таким образом, соответствуют его сущности и объему.[142] 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 (43)

1. Способ определения выходного уровня при межуровневом предсказании с использованием по меньшей мере одного процессора, в котором:1. A method for determining the output level in inter-layer prediction using at least one processor, in which: получают кодированную видеопоследовательность из кодированного битового потока видео;obtaining an encoded video sequence from the encoded video bitstream; получают первый синтаксический элемент, указывающий на количество уровней, включенных в кодированную видеопоследовательность;get the first syntax element indicating the number of levels included in the encoded video sequence; получают второй синтаксический элемент, указывающий, являются ли независимыми все уровни, включенные в кодированную видеопоследовательность;getting a second syntax element indicating whether all layers included in the encoded video sequence are independent; получают третий синтаксический элемент, указывающий на режим вывода, на основании первого синтаксического элемента, указывающего, что число уровней больше одного, и второго синтаксического элемента, указывающего, что не все уровни независимы;obtaining a third syntax element indicating the output mode based on the first syntax element indicating that the number of levels is greater than one and the second syntax element indicating that not all levels are independent; определяют режим вывода на основании третьего синтаксического элемента; определяют один или более выходных уровней из множества уровней на основании режима вывода, который был определен; и выводят один или более выходных уровней.determining an output mode based on the third syntax element; determining one or more output levels from the plurality of levels based on the output mode that has been determined; and outputting one or more output levels. 2. Способ по п. 1, в котором на основании третьего синтаксического элемента, указывающего на то, что режим вывода является первым режимом, упомянутый один или более выходных уровней включает только высший уровень из множества уровней.2. The method of claim 1, wherein based on the third syntax element indicating that the output mode is the first mode, said one or more output levels includes only the highest level of the plurality of levels. 3. Способ по п. 1, в котором на основании третьего синтаксического элемента, указывающего на то, что режим вывода является вторым режимом, упомянутый один или более выходных уровней включает множество уровней.3. The method of claim 1, wherein, based on the third syntax element indicating that the output mode is the second mode, said one or more output levels includes a plurality of levels. 4. Способ по п. 1, также включающий получение четвертого синтаксического элемента, указывающего на то, что соответствующий уровень из множества уровней подлежит выводу,4. The method of claim 1, further comprising obtaining a fourth syntax element indicating that the corresponding level of the plurality of levels is to be inferred, при этом на основании третьего синтаксического элемента, указывающего на то, что режим вывода является третьим режимом, упомянутый один или более выходных уровней содержит упомянутый соответствующий уровень.wherein, based on the third syntax element indicating that the output mode is the third mode, said one or more output levels contains said corresponding level. 5. Способ по п. 1, в котором первый, второй и третий синтаксические элементы сигнализируют в наборе параметров видео (VPS).5. The method of claim 1, wherein the first, second, and third syntax elements are signaled in a video parameter set (VPS). 6. Способ по п. 5, в котором VPS также включает пятый синтаксический элемент, указывающий на количество форматов изображения, сигнализируемых в VPS, и шестой синтаксический элемент, указывающий индекс формата изображения из множества форматов изображения для применения к уровню из множества уровней.6. The method of claim 5, wherein the VPS also includes a fifth syntax element indicating the number of image formats signaled to the VPS and a sixth syntax element indicating an image format index of the plurality of image formats to apply to a layer of the plurality of layers. 7. Способ по п. 5, в котором VPS также включает седьмой синтаксический элемент, указывающий, сигнализируются ли параметры субизображения в VPS.7. The method of claim 5, wherein the VPS also includes a seventh syntax element indicating whether the sub-image parameters are signaled to the VPS. 8. Способ по п. 5, в котором набор параметров последовательности (SPS), ссылающийся на VPS, включает восьмой синтаксический элемент, указывающий, что SPS включает девятый синтаксический элемент, указывающий индекс формата изображения из множества форматов изображения, сигнализируемых в VPS, для применения к уровню из множества уровней.8. The method of claim 5, wherein the Sequence Parameter Set (SPS) referring to the VPS includes an eighth syntax element indicating that the SPS includes a ninth syntax element indicating an index of an image format from a plurality of image formats signaled to the VPS to apply. to a level of multiple levels. 9. Способ по п. 8, в котором SPS также включает шестой синтаксический элемент, указывающий, сигнализируются ли параметры субизображения в SPS.9. The method of claim 8, wherein the SPS also includes a sixth syntax element indicating whether the sub-image parameters are signaled to the SPS. 10. Устройство для определения выходного уровня при межуровневом предсказании, содержащее:10. A device for determining the output level for inter-level prediction, comprising: по меньшей мере одну память, конфигурированную для хранения программного кода; иat least one memory configured to store program code; and по меньшей мере один процессор, конфигурированный для считывания программного кода и работы согласно инструкциям программного кода, при этом программный код включает:at least one processor configured to read the program code and operate according to the instructions of the program code, wherein the program code includes: первый код получения, конфигурированный так, чтобы заставлять по меньшей мере один процессор получать кодированную видеопоследовательность из битового потока кодированного видео;a first acquisition code configured to cause at least one processor to obtain an encoded video sequence from the encoded video bitstream; второй код получения, конфигурированный так, чтобы заставлять по меньшей мере один процессор получать первый синтаксический элемент, указывающий на количество уровней, включенных в кодированную видеопоследовательность;a second acquisition code configured to cause at least one processor to obtain a first syntax element indicative of the number of levels included in the encoded video sequence; третий код получения, конфигурированный так, чтобы заставлять по меньшей мере один процессор получать второй синтаксический элемент, указывающий, являются ли независимыми все уровни, включенные в кодированную видеопоследовательность;a third acquisition code configured to cause at least one processor to obtain a second syntax element indicating whether all layers included in the encoded video sequence are independent; четвертый код получения, конфигурированный так, чтобы заставлять по меньшей мере один процессор получать третий синтаксический элемент, указывающий на режим вывода, на основании первого синтаксического элемента, указывающего, что количество уровней превышает один уровень, и второго синтаксического элемента, указывающего, что не все уровни являются независимыми;a fourth acquisition code configured to cause at least one processor to obtain a third syntax element indicating an output mode based on a first syntax element indicating that the number of levels is greater than one level and a second syntax element indicating that not all levels are independent; первый код определения, конфигурированный так, чтобы заставлять по меньшей мере один процессор определять режим вывода на основании третьего синтаксического элемента;a first determination code configured to cause at least one processor to determine an output mode based on the third syntax element; второй код определения, конфигурированный так, чтобы заставлять по меньшей мере один процессор определять один или более выходных уровней из множества уровней на основании режима вывода, который был определен; иa second determination code configured to cause at least one processor to determine one or more output levels from the plurality of levels based on the output mode that has been determined; and код вывода, конфигурированный так, чтобы заставлять по меньшей мере один процессор выводить упомянутый один или более выходных уровней.output code configured to cause at least one processor to output said one or more output levels. 11. Устройство по п. 10, в котором упомянутый один или более выходных уровней включает только высший уровень из множества уровней на основании третьего синтаксического элемента, указывающего на то, что режим вывода является первым режимом.11. The apparatus of claim 10, wherein said one or more output levels includes only the highest level of the plurality of levels based on a third syntax element indicating that the output mode is the first mode. 12. Устройство по п. 10, в котором один или более выходных уровней включают множество уровней на основании третьего синтаксического элемента, указывающего на то, что режим вывода является вторым режимом.12. The apparatus of claim 10, wherein the one or more output levels include a plurality of levels based on a third syntax element indicating that the output mode is the second mode. 13. Устройство по п. 10, в котором программный код также включает пятый код получения для получения четвертого синтаксического элемента, указывающего на то, что соответствующий уровень из множества уровней подлежит выводу,13. The apparatus of claim 10, wherein the program code also includes a fifth acquisition code for obtaining a fourth syntax element indicating that the corresponding level of the plurality of levels is to be output, при этом упомянутый один или более выходных уровней содержит упомянутый соответствующий уровень на основании третьего синтаксического элемента, указывающего на то, что режим вывода является третьим режимом.wherein said one or more output levels comprises said corresponding level based on the third syntax element indicating that the output mode is the third mode. 14. Устройство по п. 10, в котором первый, второй и третий синтаксические элементы сигнализируются в наборе параметров видео (VPS).14. The apparatus of claim 10, wherein the first, second, and third syntax elements are signaled in a video parameter set (VPS). 15. Устройство по п. 14, в котором VPS также включает пятый синтаксический элемент, указывающий на количество форматов изображения, сигнализируемых в VPS, и шестой синтаксический элемент, указывающий индекс формата изображения из множества форматов изображения для применения к уровню из множества уровней.15. The apparatus of claim 14, wherein the VPS also includes a fifth syntax element indicating the number of image formats signaled to the VPS and a sixth syntax element indicating an image format index of the plurality of image formats to apply to a layer of the plurality of layers. 16. Устройство по п. 14, в котором VPS также включает седьмой синтаксический элемент, указывающий, сигнализируются ли параметры субизображения в VPS.16. The apparatus of claim 14, wherein the VPS also includes a seventh syntax element indicating whether the sub-image parameters are signaled to the VPS. 17. Устройство по п. 14, в котором набор параметров последовательности (SPS), ссылающийся на VPS, включает восьмой синтаксический элемент, указывающий, что SPS включает девятый синтаксический элемент, который указывает индекс формата изображения из множества форматов изображения, сигнализируемых в VPS, для применения к уровню из множества уровней.17. The apparatus of claim 14, wherein the Sequence Parameter Set (SPS) referring to the VPS includes an eighth syntax element indicating that the SPS includes a ninth syntax element that indicates an index of an image format from a plurality of image formats signaled to the VPS for application to a level from a plurality of levels. 18. Устройство по п. 17, в котором SPS также включает шестой синтаксический элемент, указывающий, сигнализируются ли параметры субизображения в SPS.18. The apparatus of claim 17, wherein the SPS also includes a sixth syntax element indicating whether the sub-image parameters are signaled to the SPS. 19. Компьютерно-считываемый носитель информации, хранящий инструкции, содержащие одну или более инструкций, которые, при исполнении одним или более процессором устройства для определения выходного уровня при межуровневом предсказании, обеспечивают выполнение одним или более процессором:19. A computer-readable storage medium that stores instructions containing one or more instructions that, when executed by one or more processors of the device for determining the output level in inter-layer prediction, cause one or more processors to execute: получения кодированной видеопоследовательности из битового потока кодированного видео;obtaining an encoded video sequence from the encoded video bitstream; получения первого синтаксического элемента, указывающего на количество уровней, включенных в кодированную видеопоследовательность;obtaining a first syntax element indicating the number of levels included in the encoded video sequence; получения второго синтаксического элемента, указывающего, являются ли независимыми все уровни, включенные в кодированную видеопоследовательность;obtaining a second syntax element indicating whether all layers included in the encoded video sequence are independent; получения третьего синтаксического элемента, указывающего на режим вывода, на основании первого синтаксического элемента, указывающего, что количество уровней больше одного, и второго синтаксического элемента, указывающего, что не все уровни являются независимыми;obtaining a third syntax element indicating the output mode, based on the first syntax element indicating that the number of levels is greater than one, and the second syntax element indicating that not all levels are independent; определения режима вывода на основании третьего синтаксического элемента;determining an output mode based on the third syntax element; определения одного или более выходных уровней из множества уровней на основании режима вывода, который был определен; иdetermining one or more output levels from the plurality of levels based on the output mode that has been determined; and вывода одного или более выходных уровней.outputting one or more output levels. 20. Компьютерно-считываемый носитель по п. 19, в котором первый, второй и третий синтаксические элементы сигнализируются в наборе параметров видео (VPS).20. The computer-readable medium of claim 19, wherein the first, second, and third syntax elements are signaled in a video parameter set (VPS).
RU2021128459A 2019-09-20 2020-09-18 Signaling of scalability parameters in the video bitstream RU2779911C1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
RU2779911C1 true RU2779911C1 (en) 2022-09-15

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2497302C2 (en) * 2006-08-16 2013-10-27 Майкрософт Корпорейшн Methodologies of copying and decoding of digital video with alternating resolution
US20160227248A1 (en) * 2013-10-12 2016-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding scalable video for encoding auxiliary picture, method and apparatus for decoding scalable video for decoding auxiliary picture
US20170019666A1 (en) * 2014-03-13 2017-01-19 Sharp Kabushiki Kaisha Constrained reference picture parameters
US20170214923A1 (en) * 2013-10-11 2017-07-27 Vid Scale, Inc. High level syntax for hevc extensions
US20180184098A1 (en) * 2015-06-16 2018-06-28 Canon Kabushiki Kaisha Method, device, and computer program for obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set
RU2669685C2 (en) * 2013-07-12 2018-10-12 Сони Корпорейшн Image decoding device and method
US20190058895A1 (en) * 2013-04-07 2019-02-21 Dolby International Ab Signaling change in output layer sets

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2497302C2 (en) * 2006-08-16 2013-10-27 Майкрософт Корпорейшн Methodologies of copying and decoding of digital video with alternating resolution
US20190058895A1 (en) * 2013-04-07 2019-02-21 Dolby International Ab Signaling change in output layer sets
RU2669685C2 (en) * 2013-07-12 2018-10-12 Сони Корпорейшн Image decoding device and method
US20170214923A1 (en) * 2013-10-11 2017-07-27 Vid Scale, Inc. High level syntax for hevc extensions
US20160227248A1 (en) * 2013-10-12 2016-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding scalable video for encoding auxiliary picture, method and apparatus for decoding scalable video for decoding auxiliary picture
US20170019666A1 (en) * 2014-03-13 2017-01-19 Sharp Kabushiki Kaisha Constrained reference picture parameters
US20180184098A1 (en) * 2015-06-16 2018-06-28 Canon Kabushiki Kaisha Method, device, and computer program for obtaining media data and metadata from encapsulated bit-streams wherein operating point descriptors can be dynamically set

Similar Documents

Publication Publication Date Title
AU2020301123B2 (en) Signaling for reference picture resampling
AU2023201809B2 (en) Method for signaling output layer set with sub-picture
US11595696B2 (en) Subpicture layout and partial output with layers
AU2020415272B2 (en) Method for adaptation parameter set reference and constraints in coded video stream
CN112005549B (en) Intra-frame and inter-frame prediction control method, device, equipment and storage medium
US11812035B2 (en) Method for alignment across layers in coded video stream
AU2020412559B2 (en) Method for parameter set reference in coded video stream
RU2779911C1 (en) Signaling of scalability parameters in the video bitstream
RU2783382C1 (en) Signalling of inter-layer prediction in a video bitstream
RU2782247C1 (en) Signalling of oversampling of the reference image indicating the size of the oversampled image in a video bitstream
RU2777924C1 (en) Method for signaling a set of output levels with a subimage
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
RU2772795C1 (en) Reference picture resampling method with offset in video bitstream
RU2803890C1 (en) Layer alignment method in encoded video stream
CA3137426C (en) Method for signaling rectangular slice partitioning in coded video stream