RU2773642C1 - Signaling for reference picture oversampling - Google Patents

Signaling for reference picture oversampling Download PDF

Info

Publication number
RU2773642C1
RU2773642C1 RU2021127811A RU2021127811A RU2773642C1 RU 2773642 C1 RU2773642 C1 RU 2773642C1 RU 2021127811 A RU2021127811 A RU 2021127811A RU 2021127811 A RU2021127811 A RU 2021127811A RU 2773642 C1 RU2773642 C1 RU 2773642C1
Authority
RU
Russia
Prior art keywords
image
encoded video
video bitstream
reference picture
encoded
Prior art date
Application number
RU2021127811A
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 RU2773642C1 publication Critical patent/RU2773642C1/en

Links

Images

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: inventions group relates to video encoding and decoding technologies, and more specifically, to signaling information related to reference image resampling and adaptive resolution change. A method for decoding an encoded video bitstream using at least one processor is proposed. The method includes the step of obtaining an encoded image from an encoded video bitstream. Next, the encoded image is decoded to form a decoded image. The first flag is obtained indicating whether resampling of the reference image is allowed. Next, a second flag is obtained indicating whether the reference pictures have a constant reference picture size. A third flag is obtained indicating whether the output images have a constant output image size specified in the encoded video bitstream.
EFFECT: improving the efficiency of encoding/decoding the video bitstream.
20 cl, 8 dwg, 3 tbl

Description

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

[1] В соответствии с §119 раздела 35 Кодекса США (35 U.S.С.) по настоящей заявке испрашивается приоритет на основании предварительной заявки США №62/865955, поданной 24 июня 2019 г., и заявки США№16/899202, поданной 11 июня 2020 г. в Ведомство по патентам и товарным знакам США, содержание которых в их полном объеме включено в настоящий документ посредством ссылки.[1] Pursuant to 35 U.S.C. §119, this application claims priority on U.S. Provisional Application No. 62/865955, filed June 24, 2019, and U.S. Application No. 16/899,202, filed on June 11 June 2020 to the United States Patent and Trademark Office, the contents of which are hereby incorporated by reference in their entirety.

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

[2] Раскрываемый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к сигнализации информации, относящейся к передискретизации опорного изображения и адаптивному изменению разрешения.[2] The disclosed subject matter relates to video coding and decoding, and more specifically, signaling information related to reference picture resampling and adaptive resampling.

Предпосылки создания изобретенияPrerequisites for the creation of the invention

[3] Кодирование и декодирование видео с использованием внешнего предсказания с компенсацией движения известны. Несжатое цифровое видео может состоять из последовательности изображений, где каждое изображение имеет пространственный размер, например, 1920x1080 отсчетов яркости и связанных с ними отсчетов цветности. Последовательность изображений может иметь фиксированную или переменную частоту изображений (неофициально также называемую частотой кадров), например, 60 изображений в секунду или 60 Гц. Несжатое видео предъявляет значительные требования к скорости передачи битов. Например, для видео 1080р60 4:2:0 с 8 битами на отсчет (разрешение 1920x1080 отсчетов яркости при частоте кадров 60 Гц) требуется полоса пропускания, близкая к 1,5 Гбит/с. Час такого видео требует более 600 Гбайт дискового пространства.[3] Video encoding and decoding using motion-compensated inter prediction is known. Uncompressed digital video may consist of a sequence of images, where each image has a spatial dimension, such as 1920x1080 luminance samples and their associated chrominance samples. An image sequence can have a fixed or variable image rate (informally also called 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 luminance samples at 60Hz frame rate) requires bandwidth close to 1.5Gbps. An hour of such video requires more than 600 GB of disk space.

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

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

[6] Исторически кодеры и декодеры видео имели тенденцию работать с заданным размером изображения, который в большинстве случаев был определен и оставался постоянным для кодированной видеопоследовательности (CVS, Coded Video Sequence), группы изображений (GOP, Group of Pictures) или аналогичного интервала времени с множественными изображениями. Например, в стандарте Экспертной группы по движущимся изображениям (MPEG, Moving Picture Experts Group) MPEG-2 известны структуры системы для изменения горизонтального разрешения (и, следовательно, размера изображения) в зависимости от таких факторов, как активность сцены, но только для изображений I (Intra-coded picture - изображение кодируется с использованием только той информации, которая содержится в нем самом), следовательно, обычно для группы изображений (GOP, Group of Pictures). Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Приложения Р Рекомендации Н.263 Сектора стандартизации электросвязи Международного союза электросвязи (ITU-T, (International Telecommunication Union-Telecommunication Standardization Sector). Однако здесь размер изображения не изменяется, только опорные изображения подвергаются передискретизации, в результате чего потенциально используются только части холста изображения (в случае понижения частоты дискретизации) или только части захватываемой сцены (в случае повышения частоты дискретизации). Кроме того, Приложение Q Рекомендации Н.263 допускает передискретизацию отдельного макроблока с коэффициентом два (в каждом измерении) в сторону увеличения или уменьшения. Опять же, размер изображения остается прежним. Размер макроблока фиксирован в Н.263, и поэтому не требуется его сигнализировать.[6] Historically, video encoders and decoders tended to work with a given image size, which in most cases was defined and remained constant for a coded video sequence (CVS, Coded Video Sequence), a group of pictures (GOP, Group of Pictures) or a similar time interval from multiple images. For example, the MPEG-2 Moving Picture Experts Group (MPEG) standard knows system structures for changing horizontal resolution (and hence picture size) depending on factors such as scene activity, but only for I images. (Intra-coded picture - the image is encoded using only the information contained in itself), therefore, usually for a group of images (GOP, Group of Pictures). Resampling of reference pictures to use different resolutions in CVS is known, for example, from Annex P of Recommendation H.263 of the International Telecommunication Union-Telecommunication Standardization Sector (ITU-T). However, here the picture size is not changed, only reference images are resampled, potentially using only portions of the image canvas (in case of downsampling) or only portions of the captured scene (in case of upsampling). in each dimension) up or down. Again, the image size remains the same. The macroblock size is fixed in H.263 and therefore does not need to be signaled.

[7] Изменение размера изображения в предсказываемых изображениях стало более распространенной тенденцией в современном кодировании видеосигналов. Например, стандарт VP9 (Video Processor 9 - Видеопроцессор 9) позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении Универсального кодирования видео (VVC, Versatile Video Coding) (включая, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-v1, 9-19 января 2019 г., группы экспертов (JVET, Joint Video Experts Team) в рамках совместной программы (JVT, Joint Video Team), полностью включенный в настоящий документ) позволяют выполнять передискретизацию целых опорных изображений для получения другого, более высокого или более низкого, разрешения. В этом документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на них с помощью элементов синтаксиса для каждого изображения в наборе параметров изображения.[7] Image resizing in predictive images has become a more common trend in modern video coding. For example, the VP9 standard (Video Processor 9 - Video Processor 9) allows you to resample the reference image and change the resolution for the entire image. Similarly, some of the proposals made regarding Versatile Video Coding (VVC) (including, for example, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", document JVET-M0135-v1, 9 -January 19, 2019, JVET (Joint Video Experts Team) within the joint program (JVT, Joint Video Team, fully incorporated in this document) allows resampling of entire reference pictures to obtain a different, higher or lower , permissions. This document proposes to encode the various possible resolutions in a sequence parameter set and refer to them using the syntax elements for each image in the image parameter set.

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

[8] В одной из форм осуществления изобретения предлагается способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий получение кодированного изображения из кодированного битового потока видео; декодирование кодированного изображения для формирования декодированного изображения; получение из кодированного битового потока видео первого флага, указывающего, разрешена ли передискретизация опорного изображения; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео второго флага, указывающего, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео третьего флага, указывающего, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формирование опорного изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранение опорного изображения в буфере декодированных изображений; и на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формирование выходного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выведение выходного изображения.[8] In one embodiment, the invention provides a method for decoding an encoded video bitstream using at least one processor, comprising deriving an encoded image from an encoded video bitstream; decoding the encoded image to generate a decoded image; deriving from the encoded video bitstream a first flag indicating whether resampling of the reference picture is allowed; based on the first flag indicating that resampling of the reference picture is allowed, deriving from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size specified in the encoded video bitstream; based on the first flag indicating that resampling of the reference picture is allowed, deriving from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; based on a second flag indicating that the reference pictures have a constant reference picture size, generating a reference picture by resampling the decoded picture to have a constant reference picture size, and storing the reference picture in a decoded picture buffer; and based on the third flag indicating that the output images have a constant output image size, generating an output image by resampling the decoded image to have a constant output image size, and outputting the output image.

[9] В одной из форм осуществления изобретения предлагается устройство для декодирования кодированного битового потока видео, при этом устройство содержит по меньшей мере одну память, сконфигурированную для хранения программного кода; и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с командами программного кода, причем программный код содержит: первый код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать кодированное изображение из кодированного битового потока видео; код декодирования, сконфигурированный так, чтобы заставлять по меньшей мере один процессор декодировать кодированное изображение для формирования декодированного изображения; второй код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли передискретизация опорного изображения; третий код получения, сконфигурированный так, чтобы, на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; четвертый код получения, сконфигурированный так, чтобы на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; первый формирующий код, сконфигурированный так, чтобы на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, заставлять по меньшей мере один процессор формировать опорное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; и второй формирующий код, сконфигурированный так, чтобы на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, заставлять по меньшей мере один процессор формировать выходное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.[9] In one embodiment, the invention provides an apparatus for decoding an encoded video bitstream, the apparatus comprising 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 the instructions of the program code, the program code comprising: a first acquisition code configured to cause at least one processor to obtain an encoded image from the encoded video bitstream; a decoding code configured to cause at least one processor to decode the encoded image to generate a decoded image; a second acquisition code configured to cause at least one processor to obtain from the encoded video bitstream a first flag indicating whether resampling of the reference picture is enabled; a third acquisition code configured to, based on the first flag indicating that resampling of the reference picture is allowed, cause at least one processor to obtain from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size, specified in the encoded video bitstream; a fourth acquisition code configured to, based on a first flag indicating that reference picture resampling is enabled, cause at least one processor to obtain from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; a first generation code configured to, based on a second flag indicating that the reference pictures have a constant reference picture size, cause at least one processor to generate a reference picture by resampling the decoded picture to have a constant reference picture size, and store the reference an image in the decoded image buffer; and a second generation code configured to cause at least one processor to generate an output image by resampling the decoded image to have a constant output image size based on the third flag indicating that the output images have a constant output image size, and output output image.

[10] В одной из форм осуществления изобретения предлагается машиночитаемый носитель, на котором хранятся команды, содержащие: одну или более команд, которые при выполнении одним или более процессорами устройства для декодирования кодированного битового потока видео заставляют один или более процессоров: получать кодированное изображения из кодированного битового потока видео; декодировать кодированное изображение для формирования декодированного изображения; получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли пере дискретизация опорного изображения; на основе первого флага, указывающего на то, что ли пере дискретизация опорного изображения разрешена, получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формировать опорное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; и на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формировать выходное изображение путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.[10] In one form of the invention, a computer-readable medium is provided 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, causes one or more processors to: obtain an encoded image from an encoded video bitstream; decode the encoded image to generate a decoded image; obtain from the encoded video bitstream a first flag indicating whether resampling of the reference picture is allowed; based on the first flag indicating whether resampling of the reference picture is allowed, obtain from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size specified in the encoded video bitstream; based on the first flag indicating that resampling of the reference picture is allowed, obtain from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; based on a second flag indicating that the reference pictures have a constant reference picture size, generate a reference picture by resampling the decoded picture to have a constant reference picture size, and store the reference picture in a decoded picture buffer; and based on the third flag indicating that the output images have a constant output image size, generate an output image by resampling the decoded image to have a constant output image size, and output the output image.

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

[11] Дополнительные особенности, сущность и различные преимущества раскрываемого предмета изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:[11] Additional features, essence and various advantages of the disclosed subject matter will be more 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 of the invention.

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

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

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

[16] Фиг. 5 - схематическое изображение упрощенной блок-схемы кодера в соответствии с формой осуществления изобретения.[16] FIG. 5 is a schematic diagram of a simplified block diagram of an encoder in accordance with an embodiment of the invention.

[17] Фиг. 6 - схематическое изображение упрощенной блок-схемы декодера в соответствии с формой осуществления изобретения.[17] FIG. 6 is a schematic diagram of a simplified block diagram of a decoder in accordance with an embodiment of the invention.

[18] Фиг. 7 -блок-схема последовательности операций иллюстративного процесса для декодирования кодированного битового потока видео соответствии с формой осуществления изобретения.[18] FIG. 7 is a flow diagram of an exemplary process for decoding an encoded video bitstream in accordance with an embodiment of the invention.

[19] Фиг. 8 - схематическая иллюстрация компьютерной системы в соответствии с формой осуществления изобретения.[19] FIG. 8 is a schematic illustration of a computer system in accordance with an embodiment of the invention.

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

[20] Раскрываемые здесь формы осуществления изобретения могут использоваться отдельно или комбинироваться в любом порядке. Кроме того, каждый из способов (или форм осуществления), кодер и декодер могут быть реализованы схемой обработки данных (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на машиночитаемом носителе.[20] The embodiments disclosed herein may be used alone or combined in any order. In addition, each of the methods (or implementation forms), encoder, and decoder may be implemented by a data processing circuit (eg, one or more processors or one or more integrated circuits). In one example, one or more processors execute a program that is stored on a computer-readable medium.

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

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

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

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

[25] Система потоковой передачи может содержать подсистему (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 Н.265. В стадии разработки находится стандарт кодирования видеосигналов, неофициально известный как Универсальное кодирование видео (VVC, Versatile Video Coding). Раскрываемый предмет изобретения может использоваться в контексте стандарта VVC.[25] The streaming system may include a video capture subsystem (213), which may include a source (201) of video signals, such as a digital camera, creating, for example, a stream (202) of uncompressed video samples. This stream (202) of samples, depicted with a thick line to emphasize the large amount of data compared to the encoded video bitstreams, can be processed by an encoder (203) connected to the camera (201). The encoder (203) may include hardware, software, or a combination thereof to enable or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), drawn 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) can access the streaming server (205) to obtain copies (207, 209) of the encoded video bitstream (204). The client (206) may include a video decoder (210) that decodes an incoming copy (207) of the encoded video bitstream and produces an outgoing stream (211) of video samples that can be displayed on a display (212) or other visualization device (not shown) . In some streaming systems, video bitstreams (204, 207, 209) may be encoded according to certain video coding/compression standards. Examples of these standards include ITU-T Recommendation H.265. A video coding standard known informally as Versatile Video Coding (VVC) is under development. The disclosed subject matter may be used in the context of the VVC standard.

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

[27] Приемник (310) может принимать одну или более видеопоследовательностей кодека, которые должны быть декодированы декодером (210); в той же или другой форме осуществления изобретения - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может приниматься из канала (312), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (310) может принимать кодированные видеоданные вместе с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут пересылаться их соответствующим объектам использования (не изображенным). Приемник (310) может отделять кодированную видеопоследовательность от других данных. Для борьбы с джиттером сети может быть включена буферная память (315) между приемником (310) и энтропийным декодером/синтаксическим анализатором (320) (далее - "синтаксическим анализатором"). Когда приемник (310) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемости, или из изосинхронной сети, буфер (315) может не понадобиться или может быть небольшим. Для использования в пакетных сетях с максимальной эффективностью, таких как Интернет, может потребоваться буфер (315), он может быть сравнительно большим и предпочтительно может иметь адаптивный размер.[27] The receiver (310) may receive one or more codec video sequences to be decoded by the decoder (210); in the same or another embodiment of the invention, one encoded video sequence at a time, where the decoding of each encoded video sequence is independent of other encoded video sequences. An encoded video sequence may be received from a channel (312), which may be a hardware/software connection to a storage device that stores the encoded video data. The receiver (310) may receive encoded video data along with other data, such as encoded audio data and/or ancillary data streams, which may be forwarded to their respective uses (not shown). The receiver (310) may separate the encoded video sequence from other data. To combat network jitter, a buffer memory (315) can be included between the receiver (310) and the entropy decoder/parser (320) (hereinafter referred to as "parser"). When the receiver (310) receives data from a storage/transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer (315) may not be needed or may be small. For use in packet networks with maximum efficiency, such as the Internet, a buffer (315) may be required, it may be relatively large, and preferably may have an adaptive size.

[28] Видеодекодер (210) может содержать синтаксический анализатор (320) для восстановления символов (321) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (210), и потенциально информацию для управления устройством визуализации, таким как дисплей (212), который не является неотъемлемой частью декодера, но может быть присоединен к нему, как это было показано на фиг. 3. Управляющая информация для устройства (устройств) визуализации может быть в форме фрагментов набора параметров дополнительной уточняющей информацией (сообщений SEI (Supplementary Enhancement Information)) или информацией по использованию видео (VUI, Video Usability Information) (не показанных). Синтаксический анализатор (320) может анализировать/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с учетом контекста или без него и т.д. Синтаксический анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы по меньшей мере для одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать в себя группы изображений (GOP), изображения, фрагменты изображения, тайлы, слайсы, "кирпичи" (bricks), макроблоки, пакеты кодового дерева (CTU, Coding Tree Unit), кодовые пакеты (CU, Coding Unit), блоки, пакеты преобразования (TU, Transform Unit), пакеты предсказания (PU, Prediction Unit,) и т.д. Тайл может указывать прямоугольную область из CU/CTU в конкретном столбце и строке тайлов в изображении. "Кирпич" может указывать на прямоугольную область из строк CU/CTU внутри конкретного тайла. Слайс может указывать на один или более "кирпичей" изображения, которые содержатся в пакете сетевого уровня абстракции (NAL, Network Abstraction Layer). Фрагмент изображения может указывать на прямоугольную область из одного или более слайсов в изображении. Энтропийный декодер/синтаксический анализатор также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[28] The video decoder (210) may include a parser (320) for recovering symbols (321) from the entropy coded video sequence. The categories of these symbols include information used to control the operation of the decoder (210) and potentially information to control a visualization device such as a display (212) that is not an integral part of the decoder but can be attached to it as shown. in fig. 3. The control information for the rendering device(s) may be in the form of parameter set fragments, Supplementary Enhancement Information (SEI) messages or Video Usability Information (VUI) (not shown). A parser (320) may parse/entropy decode the received encoded video sequence. Encoding of the encoded video sequence may be in accordance with a video coding technology or standard, including variable length coding, Huffman coding, arithmetic coding with or without context, etc. The parser (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 images (GOPs), images, image fragments, tiles, slices, "bricks" (bricks), macroblocks, code tree packages (CTU, Coding Tree Unit), code packages (CU, Coding Unit), blocks , transformation packages (TU, Transform Unit), prediction packages (PU, Prediction Unit,), etc. A tile may indicate a rectangular area from a CU/CTU in a particular column and row of tiles in an image. "Brick" can point to a rectangular area of CU/CTU lines within a particular tile. A slice can point to one or more image "bricks" that are contained in a Network Abstraction Layer (NAL) packet. An image fragment may point to a rectangular region of one or more slices in the image. The entropy decoder/parser may also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

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

[30] Восстановление символов (321) может включать в себя несколько различных блоков в зависимости от типа кодированного видеоизображения или его частей (например, изображения, кодированного с внутренним и внешним предсказанием, блока, кодированного с внутренним и внешним предсказанием) и других факторов. Какие блоки задействовать и каким образом, можно управлять с помощью управляющей информации подгруппы, которая была синтаксически проанализирована из кодированной видеопоследовательности с помощью синтаксического анализатора (320). Поток такой управляющей информации подгруппы между синтаксическим анализатором (320) и множеством блоков не показан для ясности.[30] Symbol recovery (321) may include several different blocks depending on the type of encoded video image or parts thereof (e.g., intra-inter prediction encoded image, intra-inter prediction encoded block) and other factors. Which blocks to use and how can be controlled by the subgroup control information that has been parsed from the encoded video sequence by the parser (320). The flow of such subgroup control information between the parser (320) and the plurality of blocks is not shown for clarity.

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

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

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

[34] В других случаях выходные отсчеты блока (351) масштабирования/обратного преобразования могут относиться к блоку, кодированному с внешним предсказанием и, возможно, с компенсацией движения. В таком случае блок (353) предсказания с компенсацией движения может получать доступ к памяти (357) опорных изображений для выборки отсчетов, используемых для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходному сигналу блока масштабирования/обратного преобразования (в этом случае называемых остаточными отсчетами или остаточным сигналом), чтобы сформировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда блок компенсации движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными блоку компенсации движения в форме символов (321), которые могут иметь, например, X, Y и компоненты опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения подотсчета, механизмы предсказания вектора движения и т.д.[34] In other cases, the output samples of the scaling/inverse transform block (351) may refer to a block encoded with inter prediction and possibly with motion compensation. In such a case, the motion-compensated predictor (353) may access the reference picture memory (357) to fetch samples used for prediction. After compensating for the movement of the selected samples according to the symbols (321) associated with the block, these samples can be added by the aggregator (355) to the output signal of the scaler/detransform block (in this case called residual samples or residual signal) to form information about output counts. Reference picture memory addresses from where the motion compensator selects prediction samples may be driven by motion vectors available to the motion compensator 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 subsample motion vectors, motion vector prediction mechanisms, and so on are used.

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

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

[37] Некоторые кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено и кодированное изображение было идентифицировано как опорное изображение (например, синтаксическим анализатором (320)), текущее опорное изображение (356) может стать частью буфера (357) опорных изображений, и память свежего текущего изображения может быть перераспределена перед началом восстановления следующего кодированного изображения.[37] Some encoded pictures after full recovery can be used as reference pictures for future prediction. Once the encoded picture has been completely reconstructed and the encoded picture has been identified as a reference picture (e.g., by the parser 320), the current reference picture 356 may become part of the reference picture buffer 357 and the fresh current picture memory may be reallocated before starting the reconstruction of the next encoded image.

[38] Видеодекодер 320 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как Рекомендация Н.265 ITU-T. Кодированная видеопоследовательность может соответствовать синтаксису, указанному используемой технологией или стандартом сжатия видео, в том смысле, что она придерживается синтаксиса технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в профилях, задокументированных в них. Для соответствия также необходимо, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту отсчетов восстановления (измеряемую, например, в миллионах отсчетов в секунду), максимальный размер опорного изображения и т.д. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD, Hypothetical Reference Decoder) и метаданных для управления буфером HRD, сигнализируемых в кодированной видеопоследовательности.[38] Video decoder 320 may perform decoding operations according to a predetermined video compression technology, which may be documented in a standard such as ITU-T Recommendation H.265. The encoded video sequence may conform to the syntax specified by the video compression technology or standard used, in the sense that it adheres to the syntax of the video compression technology or standard as specified in the video compression technology document or standard and, in particular, in the profiles documented therein. Compliance also requires that the complexity of the encoded video sequence be within the limits defined by the level of technology or video compression standard. In some cases, levels limit the maximum image size, the maximum frame rate, the maximum recovery sample rate (measured in Ms/s, for example), the maximum reference image size, and so on. The limits set by the layers can in some cases be further limited by Hypothetical Reference Decoder (HRD) specifications and metadata for managing the HRD buffer signaled in the encoded video sequence.

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

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

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

[42] Источник (201) видео может предоставлять исходную видеопоследовательность, которая должна быть кодирована кодером (203), в форме потока отсчетов цифрового видео, который может иметь какую-то подходящую глубину в битах (например: 8 бит, 10 бит, 12 бит, …), какое-то цветовое пространство (например, пространство Y CrCB по рекомендации ITU-R ВТ.601, RGB, …), какую-то подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (201) видео может быть запоминающим устройством, хранящим заранее подготовленное видео. В системе видеоконференцсвязи видеосигналов источник (203) может быть камерой, которая фиксирует информацию локального изображения в виде видеопоследовательности. Видеоданные могут предоставляться в виде множества отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, при этом каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалисты в данной области техники могут легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.[42] The video source (201) may provide the source video sequence to be encoded by the encoder (203) in the form of a digital video sample stream that may have some suitable bit depth (eg: 8 bit, 10 bit, 12 bit , ...), some color space (for example, Y CrCB space as recommended by ITU-R BT.601, RGB, ...), some suitable sampling structure (for example, Y CrCb 4:2:0, Y CrCb 4: 4:4). In a media serving system, the video source (201) may be a storage device storing a pre-prepared video. In a videoconferencing system of video signals, the 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 which, when viewed sequentially, convey motion. The images themselves can be organized as a spatial array of pixels, with each pixel containing one or more samples depending on the sample structure used, color space, and so on. Those skilled in the art can easily understand the relationship between pixels and samples. The description below is based on readings.

[43] Согласно одной из форм осуществления изобретения кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует применение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными блоками, как описано ниже, и функционально соединен с этими блоками. Соединение не изображено для ясности. Параметры, установленные контроллером, могут включать в себя параметры, связанные с управлением скоростью (пропуск изображения, квантователь, значение лямбда технологий оптимизации скорость-искажение, …), размером изображения, структурой группы изображений (GOP), максимальным диапазоном поиска вектора движения и т.д. Специалисты в данной области техники могут легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной структуры системы.[43] According to one embodiment of the invention, the encoder (203) can encode and compress images of the source video sequence into the encoded video sequence (443) in real time or with any other time constraints as required by the application. Providing an appropriate coding rate is one of the functions of the controller (450). The controller controls other functional blocks as described below and is operatively connected to these blocks. The connection is not shown for clarity. The parameters set by the controller may include parameters related to speed control (picture skip, quantizer, lambda value of speed-distortion optimization technologies, ...), picture size, group of pictures (GOP) structure, maximum motion vector search range, etc. d. Those skilled in the art can easily identify other functions of the controller (450) as they may relate to a video encoder (203) optimized for a particular system design.

[44] Некоторые видеокодеры работают таким способом, который специалисты в данной области называют "петля кодирования". В качестве упрощенного описания, петля кодирования может состоять из кодирующей части кодера (430) (далее "кодера источника") (ответственного за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения (изображений)), и (локального) декодера (433), встроенного в кодер (203), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создавать (поскольку любое сжатие между символами и кодированным битовым потоком видео не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрываемом предмете изобретения). Этот восстановленный поток отсчетов вводится в память (434) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита независимым от местоположения декодера (локального или удаленного), содержимое буфера опорных изображений также имеет точность до бита между локальным кодером и удаленным кодером. Другими словами, блок предсказания кодера "видит" в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер "видел бы" при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалистам в данной области техники.[44] Some video encoders operate in a manner known to those skilled in the art as a "coding loop". As a simplified description, an encoding loop may consist of an encoding part of an encoder (430) (hereinafter "source encoder") (responsible for creating symbols based on the input image to be encoded and the reference image(s)), and (local) a decoder (433) built into the encoder (203) that decompresses the symbols to create sample data that the (remote) decoder can also produce (because any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosure the subject matter of the invention). This reconstructed sample stream is entered into the reference picture memory (434). Because the decoding of a symbol stream results in bit-accurate results independent of the location of the decoder (local or remote), the contents of the reference picture buffer also have bit-accuracy between the local encoder and the remote encoder. In other words, the encoder's predictor "sees" as reference picture samples exactly the same sample values that the decoder would "see" using prediction during decoding. This fundamental principle of reference picture synchronism (and the resulting drift if synchronism cannot be maintained due to, for example, channel errors) is well known to those skilled in the art.

[45] Работа "локального" декодера (433) может быть такой же, как у "удаленного" декодера (210), который уже был подробно описан выше в связи с фиг. 3. Кратко обратимся также к фиг. 3, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированной видеопоследовательности энтропийным кодером (445) и синтаксическим анализатором (320) может осуществляться без потерь, части энтропийного декодирования декодера (210), включая канал (312), приемник (310), буфер (315) и синтаксический анализатор (320) могут не быть полностью реализованы в локальном декодере (433).[45] The operation of the "local" decoder (433) may be the same as that of the "remote" decoder (210) already described in detail above in connection with FIG. 3. Referring also briefly to FIG. 3, however, since the symbols are available and the encoding/decoding of symbols in the encoded video sequence by the entropy encoder (445) and the parser (320) can be lossless, the entropy decoding parts of the decoder (210), including the channel (312), the receiver (310) , buffer (315), and parser (320) may not be fully implemented in the local decoder (433).

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

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

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

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

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

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

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

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

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

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

[56] Изображение, кодированное с двунаправленным предсказанием, (В-изображение) (В Picture, Bi-directionally predictive picture) может быть таким, которое может быть кодировано и декодировано с использованием внутреннего предсказания или внешнего предсказания с использованием не более двух векторов движения и справочных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения, кодированные с множественным предсказанием, могут использовать более двух опорных изображений и связанных метаданных для восстановления одиночного блока.[56] A picture encoded with bi-directional prediction (B-picture) (B Picture, Bi-directionally predictive picture) may be one that can be encoded and decoded using intra prediction or inter prediction using no more than two motion vectors and reference indexes for predicting the values of the samples of each block. Similarly, multi-prediction encoded pictures may use more than two reference pictures and associated metadata to reconstruct a single block.

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

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

[59] В одной из форм осуществления изобретения передатчик (440) может передавать дополнительные данные с кодированным видео. Видеокодер (430) может включать такие данные как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные/улучшающие SNR уровни, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения дополнительной уточняющей информации (SEI), фрагменты набора параметров информации по использованию видео (VUI) и т.д.[59] In one form of the invention, 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 comprise temporal/spatial/SNR enhancement levels, other forms of redundant data such as redundant images and slices, Supplemental Informative Information (SEI) messages, Video Usage Information (VUI) parameter set fragments, and so on.

[60] На фиг. 5 показан пример кодера 500 согласно одной из форм осуществления изобретения, а на фиг. 6 показан пример декодера 600 согласно одной из форм осуществления изобретения. Как показано на фиг. 5, кодер 500 может содержать понижающий дискретизатор 501, разделитель 502 изображений, деквантователь 503, энтропийный кодер 504, внутрипетлевой фильтр 505, внутренний предсказатель 506, буфер 507 декодированных изображений (DPB, Decoded Picture Buffer), передискретизатор 508 и внешний предсказатель 509. Как показано на фиг. 6, декодер 600 может содержать буфер 601 кодированного изображения, синтаксический анализатор 602 видео, деквантователь 603, внутрипетлевой фильтр 604, буфер 605 декодированного изображения, передискретизатор 606, внешний предсказатель 607 и внутренний предсказатель 608.[60] FIG. 5 shows an example of an encoder 500 according to one embodiment of the invention, and FIG. 6 shows an example of a decoder 600 according to one embodiment of the invention. As shown in FIG. 5, encoder 500 may include a downsampler 501, a picture splitter 502, a dequantizer 503, an entropy encoder 504, an in-loop filter 505, an internal predictor 506, a Decoded Picture Buffer (DPB) 507, a resampler 508, and an external predictor 509. As shown, in fig. 6, decoder 600 may include an encoded picture buffer 601, a video parser 602, a dequantizer 603, an in-loop filter 604, a decoded picture buffer 605, a resampler 606, an outer predictor 607, and an inner predictor 608.

[61] В формах осуществления изобретения один или более элементов, показанных на фиг. 5 и/или фиг. 6, может соответствовать или выполнять аналогичные функции одному или нескольким элементам, показанным на фиг. 3 и/или фиг. 4.[61] In embodiments of the invention, one or more of the elements shown in FIG. 5 and/or FIG. 6 may correspond or perform similar functions to one or more of the elements shown in FIG. 3 and/or FIG. four.

[62] В формах осуществления изобретения, например, формах осуществления, показанных на фиг. 5 и 6, можно изменять ширину и высоту изображения на уровне зернистости изображения независимо от типа изображения. В кодере 500 данные входного изображения могут подвергаться понижающей дискретизации до выбранного размера изображения, используя, например, понижающий дискретизатор 501 для кодирования текущего изображения. После того, как первое входное изображение кодировано как изображение с внутренним кодированием, декодированное изображение сохраняется в буфере DPB 507. Когда последующее изображение подвергается понижающей дискретизации с другим коэффициентом дискретизации и кодируется как изображение с внешним кодированием, опорные изображения в буфере DPB могут быть увеличены или уменьшены в масштабе в соответствии с пространственным соотношением между размером опорного изображения и текущим размером изображения, используя, например, передискретизатор 508.[62] In the embodiments of the invention, for example, the embodiments shown in FIG. 5 and 6, it is possible to change the image width and height at the image grain level regardless of the image type. In the encoder 500, the input image data may be downsampled to a selected image size using, for example, a downsampler 501 to encode the current image. After the first input picture is encoded as an intra-coded picture, the decoded picture is stored in the DPB 507. When the subsequent picture is downsampled with a different sampling rate and encoded as an inter-coded picture, the reference pictures in the DPB may be scaled up or down. scaled according to the spatial relationship between the reference image size and the current image size, using, for example, a resampler 508.

[63] В декодере 600 декодированное изображение может сохраняться в буфере DPB 605 без передискретизации. Однако опорное изображение в буфере DPB 605 может быть масштабировано с повышением или с понижением по отношению к пространственному соотношению между текущим декодированным изображением и эталоном, например, с использованием передискретизатора 606, когда используется для компенсации движения. Декодированное изображение может быть подвергнуто повышающей дискретизации до размера исходного изображения или желаемого размера выходного изображения, используя, например, повышающий дискретизатор 609, когда оно подгоняется для отображения. В процессе оценки/компенсации движения векторы движения могут масштабироваться в соответствии с соотношением размеров изображения, а также разницы в порядковом номере изображения.[63] In the decoder 600, the decoded image may be stored in the DPB 605 without resampling. However, the reference picture in the DPB 605 may be up-scaled or down-scaled with respect to the spatial relationship between the current decoded picture and the reference, for example, using a resampler 606 when used for motion compensation. The decoded image may be upsampled to the original image size or the desired output image size using, for example, an upsampler 609 as it is fit for display. In the motion estimation/compensation process, the motion vectors may be scaled according to the aspect ratio of the image as well as the difference in image sequence number.

[64] Схема передискретизации опорного изображения (RPR, Reference Picture Resampling), используемая, например, в формах осуществления изобретения, раскрываемых в данном документе, может включать в себя поддержку адаптивного изменения разрешения (декодированного) изображения в кодированной видеопоследовательности, поддержку постоянного разрешения опорного изображения для упрощения процесса компенсации движения, поддержку постоянного разрешения выходного изображения для управляемого разрешения дисплея и поддержку режимов адаптивной передискретизации, как с дополнительной фильтрацией, так и без нее.[64] The Reference Picture Resampling (RPR) scheme used, for example, in the embodiments disclosed herein, may include support for adaptively resampling a (decoded) image in an encoded video sequence, support for constant reference image resolution to simplify the motion compensation process, support for a constant output image resolution for controlled display resolution, and support for adaptive resampling modes, both with and without additional filtering.

[65] В формах осуществления изобретения, чтобы поддерживать желаемые функции для RPR и адаптивного изменения разрешения (ARC, Adaptive Resolution Change), может использоваться набор модификаций синтаксиса высокого уровня.[65] In the embodiments of the invention, to support the desired functions for RPR and adaptive resolution change (ARC, Adaptive Resolution Change), a set of high-level syntax modifications can be used.

[66] Например, в формах осуществления изобретения минимальное/максимальное разрешение изображения может сигнализироваться в наборе параметров декодера (DPS, Decoder Parameter Set) для облегчения обмена верхними пределами / их согласования.[66] For example, in embodiments of the invention, the minimum/maximum image resolution may be signaled in a Decoder Parameter Set (DPS) to facilitate upper limit exchange/negotiation.

[67] В формах осуществления изобретения флаг, указывающий, что RPR разрешена в кодированной видеопоследовательности, может сигнализироваться в наборе параметров последовательности (SPS, Sequence Parameter Set). Разрешение декодированного изображения может быть указано в таблице в SPS. Эта таблица может включать в себя список размеров декодированных изображений, которые могут использоваться одним или более изображениями в кодированной видеопоследовательности.[67] In embodiments of the invention, a flag indicating that RPR is allowed in an encoded video sequence may be signaled in a Sequence Parameter Set (SPS). The resolution of the decoded picture may be indicated in a table in the SPS. This table may include a list of decoded picture sizes that may be used by one or more pictures in the encoded video sequence.

[68] В формах осуществления изобретения флаг, указывающий, что любое опорное изображение имеет одинаковое пространственное разрешение, и постоянный размер опорного изображения, может сигнализироваться в наборе SPS. Если значение флага равно 1, любое декодированное изображение в кодированной видеопоследовательности может быть масштабировано с увеличением с помощью процесса пере дискретизации, так что любое опорное изображение, хранящееся в буфере декодированных изображений (DPB, Decoded Picture Buffer) может иметь тот же размер изображения с размером опорного изображения, о котором сигнализируется в наборе SPS.[68] In embodiments, a flag indicating that any reference picture has the same spatial resolution and a constant reference picture size may be signaled in the SPS set. If the flag value is 1, any decoded picture in the encoded video sequence can be scaled up using the resampling process, so that any reference picture stored in the Decoded Picture Buffer (DPB) can have the same picture size as the reference picture. the image signaled in the SPS set.

[69] В формах осуществления изобретения флаг, указывающий, что любое выходное изображение имеет одинаковое пространственное разрешение и постоянный размер выходного изображения, может передаваться в наборе SPS. Если значение флага равно 1, любое выходное изображение в кодированной видеопоследовательности может быть масштабировано с увеличением с помощью процесса передискретизации, так что любое выходное изображение может иметь тот же размер изображения, что и размер выходного изображения, переданный в наборе SPS.[69] In embodiments of the invention, a flag indicating that any output image has the same spatial resolution and constant output image size may be transmitted in the SPS set. If the flag value is 1, any output image in the encoded video sequence may be upscaled by the resampling process such that any output image may have the same image size as the output image size transmitted in the SPS set.

[70] В формах осуществления индекс, указывающий размер декодированного изображения из числа кандидатов, сигнализированных в наборе SPS, может быть передан в наборе параметров изображения (PPS, Picture Parameter Set). Этот индекс может использоваться для обеспечения обмена верхними пределами / их согласования.[70] In embodiments, an index indicating the size of a decoded picture among the candidates signaled in the SPS set may be transmitted in a Picture Parameter Set (PPS). This index can be used to ensure that upper limits are exchanged/negotiated.

[71] В формах осуществления изобретения флаг, указывающий, что масштабирование вектора движения для временного предсказания вектора движения запрещено, может сигнализироваться в наборе PPS. Если значение флага равно 1, любое временное предсказание вектора движения может обрабатываться без масштабирования вектора движения.[71] In embodiments, a flag indicating that motion vector scaling for temporal motion vector prediction is prohibited may be signaled in the PPS set. If the flag value is 1, any temporal motion vector prediction may be processed without motion vector scaling.

[72] В формах осуществления изобретения выбор режима фильтрации может передаваться в наборе PPS.[72] In embodiments of the invention, the filter mode selection may be transmitted in the PPS.

[73] Пример синтаксиса набора DPS для сигнализации описанных выше форм осуществления изобретения показан в таблице 1 ниже:[73] An example DPS syntax for signaling the embodiments described above is shown in Table 1 below:

Figure 00000001
Figure 00000001

[74] В формах осуществления изобретения элемент max_pic_width_in_luma_samples может указывать максимальную ширину декодированных изображений в единицах отсчетов яркости в битовом потоке. Элемент max_pic_width_in_luma_samples не может быть равен 0 и может быть целым кратным MinCbSizeY. Значение max_pic_width_in_luma_samples[i] не может быть больше, чем значение max_pic_width_in_luma_samples.[74] In embodiments, the max_pic_width_in_luma_samples element may indicate the maximum width of decoded pictures in units of luma samples in the bitstream. The element max_pic_width_in_luma_samples cannot be equal to 0 and can be an integer multiple of MinCbSizeY. The value of max_pic_width_in_luma_samples[i] cannot be greater than the value of max_pic_width_in_luma_samples.

[75] В формах осуществления изобретения элемент max_pic_height_in_luma_samples может указывать максимальную высоту декодированных изображений в единицах отсчетов яркости. Элемент max_pic_height_in_luma_samples не может быть равен 0 и может быть целым кратным MinCbSizeY. Значение max_pic_height_in_luma_samples[i] не может быть больше, чем значение max_pic_height_in_luma_samples.[75] In embodiments of the invention, the max_pic_height_in_luma_samples element may indicate the maximum height of decoded pictures in units of luma samples. The max_pic_height_in_luma_samples element cannot be 0 and can be an integer multiple of MinCbSizeY. The value of max_pic_height_in_luma_samples[i] cannot be greater than the value of max_pic_height_in_luma_samples.

[76] Пример синтаксиса набора SPS для сигнализации описанных выше форм осуществления показан в табл. 2 ниже:[76] An example of the syntax of the SPS set for signaling the above embodiments is shown in Table. 2 below:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

[77] В формах осуществления изобретения элемент reference_pic_resampling_flag, равный 1, может указывать на то, что размер декодированного изображения для кодированного изображения, связанного с набором SPS, может изменяться или не изменяться в кодированной видеопоследовательности. Элемент reference_pic_resampling_flag, равный 0, указывает на то, что размер декодированного изображения кодированного изображения, связанного с набором SPS, не может изменяться в пределах кодированной видеопоследовательности. Когда значение reference_pic_resampling_flag равно 1, могут присутствовать один или более размеров декодированного изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]), которые могут указываться и использоваться кодированным изображением в кодированной видеопоследовательности, и присутствуют постоянный размер опорного изображения (reference_pic_width_in_luma_samples, reference_pic_height_in_luma_samples) и постоянный размер выходного изображения output_pic_width_in_luma_samples, output_pic_height_in_luma_samples), обусловленные значениями constant_ref_pic size_presentsent_flag и constant_output_pic_size_present_flag, соответственно.[77] In embodiments, the reference_pic_resampling_flag element equal to 1 may indicate that the decoded picture size for the encoded picture associated with the SPS set may or may not change in the encoded video sequence. The reference_pic_resampling_flag element equal to 0 indicates that the decoded picture size of the encoded picture associated with the SPS set cannot be changed within the encoded video sequence. When the value of reference_pic_resampling_flag is 1, there may be one or more decoded picture sizes (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) that may be indicated and used by the encoded picture in the encoded video sequence, and there are a constant reference picture size (reference_pic_width_in_luma_samples, reference_pic_height_in_luma_samples) and a constant size of the output image (output_pic_width_in_luma_samples, output_pic_height_in_luma_samples) determined by the constant_ref_pic size_presentsent_flag and constant_output_pic_size_present_flag values, respectively.

[78] В формах осуществления изобретения элемент constant_ref_pic_size_flag равный 1, может указывать на то, что присутствуют элементы reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples.[78] In embodiments, a constant_ref_pic_size_flag element of 1 may indicate that reference_pic_width_in_luma_samples and reference_pic_height_in_luma_samples are present.

[79] В формах осуществления изобретения элемент reference_pic_width_in_luma_samples может указывать ширину опорного изображения в единицах отсчетов яркости. Элемент reference_pic_width_in_luma_samples не может быть равен 0. Если не указано, значение reference_pic_width_in_luma_samples может быть логически выведено равным dec_pic_width_in_luma_samples[i].[79] In embodiments, the reference_pic_width_in_luma_samples element may indicate the width of the reference image in units of luma samples. The element reference_pic_width_in_luma_samples cannot be 0. If not specified, the value of reference_pic_width_in_luma_samples can be inferred to be dec_pic_width_in_luma_samples[i].

[80] В формах осуществления изобретения элемент reference_pic_height_in_luma_samples может указывать высоту опорного изображения в единицах отсчетов яркости. Элемент reference_pic_height_in_luma_samples не может быть равным 0. Если он отсутствует, значение reference_pic_height_in_luma_samples может быть логически выведено равным dec_pic_height_in_luma_samples[i]. Размер опорного изображения, хранящегося в буфере DPB, может быть равен значениям reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples, когда значение элемента constant_pic_size_present_flag равно 1. В этом случае какой-либо дополнительный процесс передискретизации может не выполняться для компенсации движения.[80] In embodiments of the invention, the element reference_pic_height_in_luma_samples may indicate the height of the reference image in units of luma samples. The element reference_pic_height_in_luma_samples cannot be 0. If it is absent, the value of reference_pic_height_in_luma_samples can be inferred to be dec_pic_height_in_luma_samples[i]. The size of the reference picture stored in the DPB may be equal to the values of reference_pic_width_in_luma_samples and reference_pic_height_in_luma_samples when the value of constant_pic_size_present_flag is 1. In this case, any additional resampling process may not be performed for motion compensation.

[81] В формах осуществления изобретения элемент constant_output_pic_size_flag, равный 1, может указывать на то, что присутствуют элементы output_pic_width_in_luma_samples и output_pic_height_in_luma_samples.[81] In embodiments, the constant_output_pic_size_flag element equal to 1 may indicate that the output_pic_width_in_luma_samples and output_pic_height_in_luma_samples elements are present.

[82] В формах осуществления изобретения элемент output_pic_width_in_luma_samples может указывать ширину выходного изображения в единицах отсчетов яркости. Элемент output_pic_width_in_luma_samples не должен быть равен 0. Если он отсутствует, значение output_pic_width_in_luma_samples может быть логически выведено равным dec_pic_width_in_luma_samples [i].[82] In embodiments of the invention, the output_pic_width_in_luma_samples element may indicate the width of the output image in units of luma samples. The element output_pic_width_in_luma_samples shall not be equal to 0. If it is absent, the value of output_pic_width_in_luma_samples can be inferred to be dec_pic_width_in_luma_samples[i].

[83] В формах осуществления изобретения элемент output_pic_height_in_luma_samples может указывать высоту выходного изображения в единицах отсчетов яркости. Элемент output_pic_height_in_luma_samples не может быть равным 0. Если он отсутствует, значение output_pic_height_in_luma_samples может быть логически выведено равным dec_pic_height_in_luma_samples[i]. Размер выходного изображения может быть равен значениям output_pic_width_in_luma_samples и output_pic_height_in_luma_samples, когда значение constant_output_pic_size_flag равно 1.[83] In embodiments of the invention, the output_pic_height_in_luma_samples element may indicate the height of the output image in units of luma samples. The element output_pic_height_in_luma_samples cannot be 0. If it is absent, the value of output_pic_height_in_luma_samples can be inferred to be dec_pic_height_in_luma_samples[i]. The output image size can be equal to output_pic_width_in_luma_samples and output_pic_height_in_luma_samples when constant_output_pic_size_flag is 1.

[84] В формах осуществления изобретения элемент num_dec_pic_size_in_luma_samples_minus1 plus 1 может указывать количество декодированных размеров изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) в единицах отсчетов яркости в кодированной видеопоследовательности.[84] In embodiments, the num_dec_pic_size_in_luma_samples_minus1 plus 1 element may indicate the number of decoded image sizes (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) in units of luma samples in the encoded video sequence.

[85] В формах осуществления изобретения элемент dec_pic_width_in_luma_samples[i] может указывать i-ю ширину размеров декодированного изображения в единицах отсчетов яркости в кодированной видеопоследовательности. Элемент dec_pic_width_in_luma_samples[i] не может быть равен 0 и может быть целым кратным MinCbSizeY.[85] In embodiments, the dec_pic_width_in_luma_samples[i] element may indicate the i-th width of the decoded image sizes in units of luma samples in the encoded video sequence. The element dec_pic_width_in_luma_samples[i] cannot be equal to 0 and can be an integer multiple of MinCbSizeY.

[86] В формах осуществления изобретения элемент dec_pic_height_in_luma_samples[i] может указывать i-ю высоту размеров декодированного изображения в единицах отсчетов яркости в кодированной видеопоследовательности. Элемент dec_pic_height_in_luma_samples[i] не может быть не равен 0 и может быть целым кратным MinCbSizeY. Размер i-го декодированного изображения (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) может быть равен размеру декодированного изображения декодированного изображения в кодированной видеопоследовательности.[86] In embodiments, the dec_pic_height_in_luma_samples[i] element may indicate the i-th height of the decoded image dimensions in units of luma samples in the encoded video sequence. The element dec_pic_height_in_luma_samples[i] cannot be equal to 0 and can be an integer multiple of MinCbSizeY. The i-th decoded picture size (dec_pic_width_in_luma_samples[i], dec_pic_height_in_luma_samples[i]) may be equal to the decoded picture size of the decoded picture in the encoded video sequence.

[87] Пример синтаксиса набора PPS для сигнализации описанных выше форм осуществления изобретения показан в таблице 3 ниже:[87] An example PPS syntax for signaling the embodiments described above is shown in Table 3 below:

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

[88] В формах осуществления изобретения элемент dec_pic_size_idx может указывать, что ширина декодированного изображения должна быть равна pic_width_in_luma_samples[dec_pic_size_idx], а высота декодированного изображения должна быть равна pic_height_in_luma_samples[dec_pic_size_idx].[88] In embodiments, the dec_pic_size_idx element may indicate that the width of the decoded image should be equal to pic_width_in_luma_samples[dec_pic_size_idx], and the height of the decoded image should be equal to pic_height_in_luma_samples[dec_pic_size_idx].

[89] В формах осуществления изобретения элемент disabling_motion_vector_scaling_flag, равный 1, может указывать на то, что используется опорный вектор движения без процесса масштабирования, зависящего от значений порядкового номера изображения (РОС, Picture Order Count) или пространственных разрешений, для временного предсказания вектора движения. Элемент disabling_motion_vector_scaling_flag, равный 0, может указывать на то, что опорный вектор движения используется с процессом масштабирования или без него в зависимости от значений РОС или пространственных разрешений для временного предсказания вектора движения.[89] In embodiments, the disabling_motion_vector_scaling_flag element equal to 1 may indicate that a reference motion vector is used without a scaling process dependent on Picture Order Count values or spatial resolutions for temporal motion vector prediction. The disabling_motion_vector_scaling_flag element equal to 0 may indicate that the reference motion vector is used with or without a scaling process depending on the POC values or spatial resolutions for temporal motion vector prediction.

[90] В формах осуществления изобретения элемент rpr_resampling_mode, равный 0, может указывать на то, что интерполированные пиксели в опорном изображении не фильтруются дополнительно для компенсации движения, когда разрешение текущего изображения отличается от опорного изображения. Элемент rpr_resampling_mode, равный 1, может указывать на то, что интерполированные пиксели в опорном изображении дополнительно фильтруются для компенсации движения, когда разрешение текущего изображения отличается от разрешения опорного изображения. Элемент rpr_resampling_mode, равный 2, может указывать на то, что пиксели в опорном изображении фильтруются и интерполируются для компенсации движения, когда разрешение текущего изображения отличается от разрешения опорного изображения. Другие значения могут быть зарезервированы.[90] In embodiments, an rpr_resampling_mode element of 0 may indicate that the interpolated pixels in the reference image are not further filtered to compensate for motion when the resolution of the current image is different from the reference image. An rpr_resampling_mode element of 1 may indicate that the interpolated pixels in the reference image are further filtered to compensate for motion when the resolution of the current image is different from the resolution of the reference image. An rpr_resampling_mode element of 2 may indicate that the pixels in the reference image are filtered and interpolated to compensate for motion when the resolution of the current image is different from the resolution of the reference image. Other values may be reserved.

[91] Изменение ARC может быть включено в "базовый/основной" профили. Для их удаления можно использовать субпрофилирование, если оно не требуется для определенных сценариев применения. Некоторые ограничения могут быть приемлемыми. В связи с этим определенные профили Н.263+ и "рекомендуемые режимы" (которые предшествовали профилям) включали ограничение для Приложения Р, которое должно использоваться только как "неявный коэффициент 4", т.е. диадическая понижающая дискретизация в обоих измерениях. Этого было достаточно для поддержки быстрого старта (быстрого получения кадра I) в видеоконференцсвязи.[91] The ARC change may be included in the "basic/main" profiles. Subprofiling can be used to remove them if it is not required for certain use cases. Some restrictions may be acceptable. As such, certain H.263+ profiles and "recommended modes" (which preceded the profiles) included a restriction for Annex P to be used only as an "implicit factor of 4", i.e. dyadic downsampling in both dimensions. This was sufficient to support fast start (fast I frame acquisition) in video conferencing.

[92] В формах осуществления изобретения вся фильтрация может выполняться "на лету", при этом может отсутствовать или иметься незначительно увеличение пропускной способности памяти. В результате может не потребоваться помещать ARC в экзотические профили.[92] In embodiments, all filtering may be performed on the fly, with little or no increase in memory bandwidth. As a result, it may not be necessary to put ARC in exotic profiles.

[93] Сложные таблицы и тому подобное по существу не могут быть использованы при обмене возможностями, как это утверждалось в Марракеше в связи с документом JVET-M0135. Число вариантов может быть просто слишком большим, чтобы обеспечить значимую совместимость между поставщиками, предполагая предложение-ответ и аналогичные подтверждения установления связи с ограниченной глубиной. Чтобы поддерживать ARC разумным путем в сценарии обмена возможностями, можно использовать несколько пунктов взаимодействия. Например: без ARC, ARC с неявным коэффициентом 4, полное ARC. В качестве альтернативы мы могли бы указать необходимую поддержку для всех ARC и оставить ограничения по сложности битового потока для объектов данных об услуге (SDO, Service Data Object) более высокого уровня.[93] Complex tables and the like per se cannot be used in capability exchange as argued in Marrakech in connection with JVET-M0135. The number of options may simply be too large to provide meaningful interoperability between providers, assuming offer-response and similar handshaking acknowledgments of limited depth. To support ARC in a sensible way in a capability exchange scenario, multiple interaction points can be used. For example: no ARC, ARC with an implicit factor of 4, full ARC. Alternatively, we could specify the required support for all ARCs and leave the bitstream complexity limits for higher-level Service Data Objects (SDOs).

[94] Что касается уровней, то в качестве условия соответствия битового потока в некоторых формах осуществления изобретения количество отсчетов изображений с повышающей дискретизацией должно соответствовать уровню битового потока, независимо от того, до какой степени передискретизация сигнализируется в битовом потоке, и что все отсчеты должны соответствовать кодированному изображению с повышающей дискретизацией. Отметим, что в Н263+ этого не произошло; там было возможно, чтобы определенные отсчеты отсутствовали.[94] With regard to levels, as a condition of bitstream matching in some embodiments of the invention, the number of samples of upsampled images must match the level of the bitstream, regardless of how much oversampling is signaled in the bitstream, and that all samples must match upsampled encoded image. Note that this did not happen in H263+; there it was possible that certain readings were missing.

[95] Фиг. 7 является блок схемой, которая представляет собой пример процесса 700 для декодирования кодированного битового потока видео в соответствии с формами осуществления изобретения, описанными выше. В некоторых реализациях один или более блоков обработки на фиг. 7 могут выполняться декодером 210 или декодером 600. В некоторых реализациях один или более блоков обработки на фиг. 7 могут выполняться другим устройством или группой устройств, отдельных от декодера 210 или декодера 600, или включающих в себя его, например, кодером 203 или кодером 500.[95] FIG. 7 is a flow diagram that is an example of a process 700 for decoding an encoded video bitstream in accordance with the embodiments described above. In some implementations, one or more processing units in FIG. 7 may be performed by decoder 210 or decoder 600. In some implementations, one or more processing units in FIG. 7 may be performed by another device or group of devices separate from or including decoder 210 or decoder 600, such as encoder 203 or encoder 500.

[96] Как показано на фиг. 7, процесс 700 может включать в себя получение кодированного изображения из кодированного битового потока видео (блок 701).[96] As shown in FIG. 7, process 700 may include deriving an encoded image from an encoded video bitstream (block 701).

[97] Как показано на фиг. 7, процесс 700 может включать в себя декодирование кодированного изображения для формирования декодированного изображения (блок 702).[97] As shown in FIG. 7, process 700 may include decoding an encoded picture to generate a decoded picture (block 702).

[98] Как далее показано на фиг. 7, процесс 700 может включать в себя получение, из битового потока кодированного видео, первого флага, указывающего, разрешена ли передискретизация опорного изображения (блок 703). В формах осуществления изобретения первый флаг может соответствовать элементу reference_pic_resampling_flag, описанному выше.[98] As further shown in FIG. 7, process 700 may include deriving, from the encoded video bitstream, a first flag indicating whether reference picture resampling is enabled (block 703). In embodiments of the invention, the first flag may correspond to the reference_pic_resampling_flag element described above.

[99] Как далее показано на фиг. 7, процесс 700 может включать в себя определение по первому флагу, разрешена ли передискретизация опорного изображения (блок 704). Если разрешена передискретизация опорного изображения (YES (ДА) в блоке 704), процесс 700 может перейти к блоку 705. В формах осуществления изобретения, если передискретизация опорного изображения не разрешена, процесс 700 может декодировать кодированный битовый поток видео в соответствии с другим процессом.[99] As further shown in FIG. 7, process 700 may include determining, based on a first flag, whether resampling of the reference picture is enabled (block 704). If reference picture resampling is enabled (YES at block 704), process 700 may proceed to block 705. In embodiments, if reference picture resampling is not enabled, process 700 may decode the encoded video bitstream in accordance with another process.

[100] Как показано на фиг. 7, процесс 700 может включать в себя получение, из кодированного битового потока видео, второго флага, указывающего, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео, и третьего флага, указывающего, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео (блок 705). В формах осуществления изобретения второй флаг может соответствовать элементу constant_ref_pic_size_flag, описанному выше, а третий флаг может соответствовать элементу constant_output_pic_size_flag, описанному выше.[100] As shown in FIG. 7, process 700 may include deriving, from the encoded video bitstream, a second flag indicating whether the reference pictures have a constant size of the reference picture indicated in the encoded video bitstream and a third flag indicating whether the output pictures have a constant output size. the image specified in the encoded video bitstream (block 705). In embodiments, the second flag may correspond to the constant_ref_pic_size_flag element described above, and the third flag may correspond to the constant_output_pic_size_flag element described above.

[101] Как показано на фиг. 7, процесс 700 может включать в себя определение, указывает ли второй флаг на то, что опорные изображения имеют постоянный размер опорного изображения (блок 706). Если опорные изображения имеют постоянный размер опорного изображения (YES (ДА) в блоке 706), процесс 700 может перейти к блоку 707, а затем к блоку 708. Если опорные изображения не имеют постоянного размера опорного изображения (NO (НЕТ) в блоке 706), процесс 700 может перейти непосредственно к блоку 708.[101] As shown in FIG. 7, process 700 may include determining if the second flag indicates that the reference pictures have a constant reference picture size (block 706). If the reference pictures have a constant reference picture size (YES at block 706), process 700 may proceed to block 707 and then to block 708. If the reference pictures do not have a constant reference picture size (NO at block 706) , process 700 may proceed directly to block 708.

[102] Как далее показано на фиг. 7, процесс 700 может включать в себя формирование опорного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер опорного изображения (блок 707).[102] As further shown in FIG. 7, process 700 may include generating a reference picture by resampling a decoded picture to have a constant reference picture size (block 707).

[103] Как показано на фиг. 7, процесс 700 может включать в себя сохранение опорного изображения в буфере декодированных изображений (блок 708). Если блок 707 не выполняется, декодированное изображение может быть сохранено как опорное изображение без передискретизации.[103] As shown in FIG. 7, process 700 may include storing a reference picture in a decoded picture buffer (block 708). If block 707 is not executed, the decoded picture may be stored as a reference picture without resampling.

[104] Как далее показано на фиг. 7, процесс 700 может включать в себя определение, указывает ли третий флаг на то, что выходные изображения имеют постоянный размер выходного изображения (этап 709). Если выходные изображения имеют постоянный размер выходного изображения (ДА в блоке 709), процесс 700 может перейти к блоку 710, а затем к блоку 711. Если выходные изображения не имеют постоянный размер выходного изображения (НЕТ в блоке 709), процесс 700 может перейти непосредственно к блоку 711.[104] As further shown in FIG. 7, process 700 may include determining if the third flag indicates that the output images have a constant output image size (block 709). If the output images have a constant output image size (YES at block 709), process 700 may proceed to block 710 and then to block 711. If the output images do not have a constant output image size (NO at block 709), process 700 may proceed directly to block 711.

[105] Как далее показано на фиг. 7, процесс 700 может включать в себя создание выходного изображения путем передискретизации декодированного изображения, чтобы иметь постоянный размер выходного изображения (этап 710).[105] As further shown in FIG. 7, process 700 may include creating an output image by resampling a decoded image to have a constant output image size (block 710).

[106] Как далее показано на фиг. 7, процесс 700 может включать в себя вывод выходного изображения (этап 711). Если блок 710 не выполняется, декодированное изображение может выводиться как выходное изображение без передискретизации.[106] As further shown in FIG. 7, process 700 may include outputting an output image (block 711). If block 710 is not executed, the decoded image may be output as an output image without resampling.

[107] В формах осуществления изобретения первый флаг, второй флаг и третий флаг могут сигнализироваться в наборе параметров последовательности, включенном в кодированный битовый поток видео.[107] In embodiments, the first flag, the second flag, and the third flag may be signaled in a sequence parameter set included in the encoded video bitstream.

[108] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение информации о разрешении изображения из кодированного битового потока видео, при этом информация о разрешении изображения указывает по меньшей мере одно из максимального разрешения изображения и минимального разрешения изображения.[108] In embodiments of the invention, process 700 may further include obtaining image resolution information from the encoded video bitstream, wherein the image resolution information indicates at least one of a maximum image resolution and a minimum image resolution.

[109] В формах осуществления изобретения информация о разрешении изображения может сигнализироваться в наборе параметров декодера, включенном в кодированный битовый поток видео.[109] In embodiments of the invention, image resolution information may be signaled in a decoder parameter set included in the encoded video bitstream.

[110] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение списка размеров изображения из кодированного битового потока видео.[110] In embodiments of the invention, process 700 may further include obtaining a list of image sizes from the encoded video bitstream.

[111] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение индекса, указывающего размер декодированного изображения в списке размеров изображения.[111] In embodiments of the invention, the process 700 may further include obtaining an index indicating the size of the decoded image in the list of image sizes.

[112] В формах осуществления изобретения список размеров изображения может сигнализироваться в наборе параметров последовательности, включенном в кодированный битовый поток видео, а индекс может сигнализироваться в наборе параметров изображения, включенном в кодированный битовый поток видео.[112] In embodiments, a list of image sizes may be signaled in a sequence parameter set included in the encoded video bitstream, and an index may be signaled in an image parameter set included in the encoded video bitstream.

[113] В формах осуществления изобретения процесс 700 может дополнительно включать в себя получение четвертого флага, указывающего, разрешено ли масштабирование вектора движения. В формах осуществления изобретения четвертый флаг может соответствовать элементу disabling_motion_vector_scaling_flag, описанному выше.[113] In embodiments of the invention, process 700 may further include obtaining a fourth flag indicating whether motion vector scaling is enabled. In embodiments of the invention, the fourth flag may correspond to the disabling_motion_vector_scaling_flag element described above.

[114] В формах осуществления изобретения четвертый флаг может сигнализироваться в наборе параметров изображения, включенном в кодированный битовый поток видео.[114] In embodiments of the invention, a fourth flag may be signaled in an image parameter set included in the encoded video bitstream.

[115] Хотя на фиг. 7 показаны иллюстративные блоки процесса 700, в некоторых реализациях процесс 700 может включать в себя дополнительные блоки, меньшее количество блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 7. Дополнительно или альтернативно, два или более блока процесса 700 могут выполняться параллельно.[115] Although FIG. 7 shows exemplary blocks of process 700, in some implementations process 700 may include additional blocks, fewer blocks, different blocks, or blocks arranged differently from those depicted in FIG. 7. Additionally or alternatively, two or more blocks of process 700 may be executed in parallel.

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

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

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

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

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

[121] Компьютерная система 800 может содержать определенные устройства ввода с интерфейсом пользователя. Такое устройство ввода с интерфейсом пользователя может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, проведения по экрану, движения информационной перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельный ввода (не изображенного). Устройства с интерфейсом пользователя также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные от камеры для съемки неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).[121] Computer system 800 may include certain input devices with a user interface. Such a user interface input device may respond to input from one or more human users through, for example, tactile input (e.g., keystrokes, swiping, movement of an information glove), audio input (e.g., voice, hand clapping), visual input (eg: gestures), olfactory input (not shown). User Interface Devices can also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, ambient sound), images (e.g. scanned images, photographic images taken from a camera for capturing still images), video (eg 2D video, 3D video including stereoscopic video).

[122] Устройства ввода с человеком могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатуры 801, мыши 802, трекпада 803, сенсорного экрана 810 и соответствующего графического адаптера 850, информационной перчатки 1204, джойстика 805, микрофона 806, сканера 807, камеры 808.[122] Human input devices may include one or more of (only one of each depicted): keyboard 801, mouse 802, trackpad 803, touch screen 810 and associated graphics adapter 850, data glove 1204, joystick 805, microphone 806, scanner 807, camera 808.

[123] Компьютерная система 800 может также содержать определенные устройства вывода с интерфейсом пользователя. Такие устройства вывода с интерфейсом пользователя могут стимулировать чувства одного или нескольких пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с интерфейсом пользователя могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана 810, информационной перчатки для данных 1204 или джойстика 805, но также могут быть устройства с тактильной обратной связью, которые не служат в качестве устройств ввода), устройства звукового выхода (такие как громкоговорители 809, головные телефоны (не показанные)), устройства визуального вывода (например, экраны 710, включая экраны электронно-лучевой трубки (CRT, Cathode Ray Tube), экраны жидкокристаллического дисплея (LCD, Liquid-Crystal Display), плазменные экраны, экраны на органических светодиодах (OLED, Organic Light-Emitting Diode), каждый с возможностью сенсорного ввода или без нее, каждый с возможностью тактильной обратной связи или без нее; - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображенные), голографические дисплеи и дымовые баки (не изображенные) и принтеры (не изображенные).[123] Computer system 800 may also include certain output devices with a user interface. Such user interface output devices may stimulate the senses of one or more human users through, for example, tactile output, sound, light, and smell/taste. Such user interface output devices may include tactile output devices (e.g., haptic feedback from the 810 touch screen, 1204 data glove, or 805 joystick, but there may also be tactile feedback devices that do not serve as input devices. ), audio output devices (such as 809 speakers, headphones (not shown)), visual output devices (e.g., 710 screens, including cathode ray tube (CRT) screens), liquid crystal display (LCD, Liquid- Crystal Display), plasma screens, Organic Light-Emitting Diode (OLED) screens, each with or without touch input capability, each with or without haptic feedback capability; - some of which may be capable of outputting a 2D visual output or more than three-dimensional output by means such as stereographic output; virtual glasses oh reality (not pictured), holographic displays and smoke tanks (not pictured), and printers (not pictured).

[124] Компьютерная система 800 также может содержать доступные пользователю устройства хранения данных и связанные с ними носители, такие как оптические средства включая средства 720 только для чтения (ROM, Read Only Memory)/для чтения и многократной записи (RW, Read and Write) с компакт-дисками (CD, Compact Disk)/цифровыми универсальными дисками (DVD, Digital Versatile Disc) или тому подобные носители 821, флэш-накопитель 822, съемный жесткий диск или твердотельный накопитель 823, традиционные магнитные носители, такие как лента и дискета (не показаны), специализированные устройства на основе постоянных запоминающих устройств (Read Only Memory ROM/специализированных интегральных схем (ASIC, Application-Specific Integrated Circuit)/программируемых логических интегральных схем (PLD, Programmable Logic Device), такие как защитные ключи (не показанные) и т.п.[124] The computer system 800 may also include user-accessible storage devices and associated media, such as optical media including read-only (ROM, Read Only Memory)/read and rewrite (RW, Read and Write) 720 with CDs (CD, Compact Disk)/Digital Versatile Discs (DVD, Digital Versatile Disc) or the like 821, flash drive 822, removable hard disk or solid state drive 823, traditional magnetic media such as tape and floppy disk ( not shown), Read Only Memory ROM/Application-Specific Integrated Circuit (ASIC)/Programmable Logic Device (PLD)-based dedicated devices such as security keys (not shown) etc.

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

[126] Компьютерная система 800 также может включать в себя интерфейс(-ы) к одной или нескольким сетям (955) связи. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные сети (LAN, Local Area Network), сотовые сети, включая глобальную систему мобильной связи (GSM, Global System for Mobile communications), сети связи третьего поколения (3G, 3-rd Generation), сети связи четвертого поколения (4G, 4-th Generation), сети связи пятого поколения (5G, 5-th Generation), сеть связи по технологии долгосрочной эволюции (LTE, Long-Term Evolution) и т.п., телевизионные (TV, Television) проводные или беспроводные глобальные цифровые сети, включая кабельное телевидение (TV), спутниковое телевидение (TV) и наземное телевещание, автомобильное и промышленное, включая локальную сеть контроллеров (CANBus, Controller Area Network Bus) и т.д. Некоторым сетям обычно требуются адаптеры (954) внешнего сетевого интерфейса, которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (таким как, например, порты универсальной последовательной шины (USB, Universal Serial Bus) компьютерной системы 800; другие обычно интегрируются в ядро компьютерной системы 800 путем подключения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему персональных компьютеров (PC, Personal Computer) или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система 800 может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное TV), однонаправленной только для передачи (например, CANbus к определенным устройствам CANbus) или двунаправленной, например, с другими компьютерными системами, использующими локальные или глобальные цифровые сети. Определенные протоколы и стеки протоколов могут использоваться в каждой из этих сетей и сетевых интерфейсах (954), как описано выше.[126] Computer system 800 may also include interface(s) to one or more communication networks (955). Networks can be, for example, wireless, wired, optical. In addition, networks can be local, wide area, metropolitan, automotive, industrial, real-time, latency tolerant, and so on. Examples of networks include local area networks such as Ethernet, wireless local area networks (LAN, Local Area Network), cellular networks, including global system for mobile communications (GSM, Global System for Mobile communications), third generation communications networks (3G, 3- rd Generation), fourth generation communication networks (4G, 4th Generation), fifth generation communication networks (5G, 5th Generation), long-term evolution technology communication network (LTE, Long-Term Evolution), etc., television (TV, Television) wired or wireless global digital networks, including cable television (TV), satellite television (TV) and terrestrial television broadcasting, automotive and industrial, including a local area network of controllers (CANBus, Controller Area Network Bus), etc. Some networks typically require external network interface adapters (954) that are connected to certain general purpose data ports or peripheral buses (949) (such as, for example, the Universal Serial Bus (USB) ports of the 800 computer system; others are usually integrated to the core of computer system 800 by connecting to a system bus as described below (for example, an Ethernet interface to a personal computer system (PC, Personal Computer) or a cellular network interface to a smartphone computer system.) Using any of these networks, computer system 800 can communicate with other entities Such communication can be unidirectional, receive-only (e.g. broadcast TV), unidirectional, transmit-only (e.g. CANbus to certain CANbus devices), or bidirectional, e.g. with other computer systems using local or wide area digital networks .Specific protocols and pro stacks Tocols can be used on each of these networks and network interfaces (954) as described above.

[127] Вышеупомянутые устройства интерфейса пользователя, доступные пользователю устройства хранения данных и сетевые интерфейсы могут быть присоединены к ядру 840 компьютерной системы 800.[127] The aforementioned user interface devices, user accessible storage devices, and network interfaces may be coupled to the core 840 of the computer system 800.

[128] Ядро 840 может содержать один или более центральных процессоров (CPU, Central Processing Unit) 841, графических процессоров (GPU, Graphics Processing Unit) 842, специализированных программируемых блоков обработки в виде программируемых пользователем матриц логических элементов (FPGA, Field Programmable Gate Area) 843, аппаратных ускорителей 844 для определенных задач, и т.д. Эти устройства, наряду с постоянным запоминающим устройством (ROM, Readonly Memory) 845, оперативным запоминающим устройством (RAM, Random-Access Memory) 846, графическим адаптером 850, внутренним запоминающим устройством 847 большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD, Solid State Drive) и т.п., могут быть подключены через системную шину 848. В некоторых компьютерных системах системная шина 848 может быть доступна в форме одного или нескольких физических разъемов для обеспечения возможности расширения с помощью дополнительных процессоров, графических процессоров и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 848 ядра, либо через периферийную шину 849. Архитектуры периферийной шины включают шину ввода-вывода для подключения периферийных устройств PCI (Peripheral Component Interconnect), USB и т.п.[128] The core 840 may contain one or more central processing units (CPU, Central Processing Unit) 841, graphic processors (GPU, Graphics Processing Unit) 842, specialized programmable processing units in the form of user-programmable matrix logic elements (FPGA, Field Programmable Gate Area ) 843, hardware accelerators 844 for certain tasks, etc. These devices, along with Readonly Memory (ROM) 845, Random-Access Memory (RAM) 846, graphics adapter 850, high-capacity internal storage 847 such as internal hard drives that are not user accessible, solid state drives (SSD, Solid State Drive), etc., can be connected via the 848 system bus. In some computer systems, the 848 system bus may be available in the form of one or more physical connectors to allow expansion with additional processors, graphics processors etc. Peripherals can be connected either directly to the core system bus 848 or via a peripheral bus 849. Peripheral bus architectures include an I/O bus for connecting peripherals PCI (Peripheral Component Interconnect), USB, and the like.

[129] Процессоры CPU 841, GPU 842, матрицы FPGA 843 и ускорители 844 могут выполнять определенные команды, которые в комбинации могут составлять вышеупомянутый машинный код. Этот машинный код может храниться в ROM 845 или RAM 846. Временные данные также могут храниться в RAM 846, тогда как постоянные данные могут храниться, например, во внутреннем запоминающем устройстве 847 большой емкости. Возможность быстрого запоминания и выборки для любого из запоминающих устройств может быть обеспечена посредством использования кэш-памяти, которая может быть тесно связана с одним или более процессорами CPU 841, GPU 842, запоминающим устройством 847 большой емкости, памятью ROM 845, запоминающим устройством RAM 846 и т.п.[129] CPUs 841, GPUs 842, FPGAs 843, and accelerators 844 may execute certain instructions, which in combination may constitute the above machine code. This machine code may be stored in ROM 845 or RAM 846. Temporary data may also be stored in RAM 846, while permanent data may be stored in internal mass storage 847, for example. Fast storage and retrieval capability for any of the storage devices may be provided through the use of a cache memory that may be tightly coupled to one or more of the CPU 841, GPU 842, mass storage 847, ROM 845, RAM 846, and etc.

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

[131] В качестве примера, а не в качестве ограничения, компьютерная система, имеющая архитектуру 800, и, в частности, ядро 840, может обеспечивать функциональные возможности в результате выполнения процессором(-и) (включая процессоры CPU, GPU, матрицы FPGA, ускорители и т.п.) программного обеспечения, воплощенного на одном или нескольких материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя запоминающим устройством большой емкости, как описано выше, а также определенными запоминающими устройствами ядра 840, которые имеют энергонезависимый характер, такими как внутреннее запоминающее устройство 847 большой емкости или ROM 845. Программное обеспечение, реализующее различных формы осуществления настоящего изобретения, может храниться в таких устройствах и выполняться ядром 840. Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или интегральных схем в соответствии с конкретными потребностями. Программное обеспечение может заставлять ядро 840 и, в частности, процессоры в нем (включая процессоры CPU, GPU, матрицу FPGA и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в RAM 846, и изменение таких структур данных в соответствии с процессами, определяемыми программным обеспечением. Вдобавок или в качестве альтернативы компьютерная система может обеспечивать функциональные возможности в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускорителе 844), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или определенных частей конкретных процессов, описанных здесь. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это уместно. Ссылка на машиночитаемый носитель может охватывать схему (например, интегральную схему (1С, Integrated Circuit), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это необходимо. Настоящее изобретение охватывает любую подходящую комбинацию аппаратного и программного обеспечения.[131] By way of example, and not limitation, a computer system having architecture 800, and in particular core 840, may provide functionality as a result of execution by processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.) software embodied on one or more tangible, machine-readable media. Such computer-readable media can be media associated with user-accessible mass storage as described above, as well as certain core storage devices 840 that are non-volatile in nature, such as internal mass storage 847 or ROM 845. various embodiments of the present invention may be stored in such devices and executed by the core 840. The computer-readable medium may include one or more memories or integrated circuits in accordance with particular needs. The software may cause core 840, and in particular the processors therein (including CPUs, GPUs, FPGAs, and the like), to execute certain processes or certain portions of specific processes described herein, including determining data structures stored in RAM 846, and changing such data structures in accordance with processes defined by the software. In addition or alternatively, a computer system may provide functionality as a result of logic embedded in hardware circuitry or otherwise embodied in circuitry (e.g., an 844 accelerator) that can operate in place of or in conjunction with software to perform certain processes or certain portions of particular processes. described here. The link to the software may include logic and vice versa where appropriate. Reference to a computer-readable medium may encompass a circuit (for example, an integrated circuit (IC, Integrated Circuit) storing software to execute, a circuit embodying logic to execute, or both, where appropriate. The present invention encompasses any suitable combination of hardware and software.

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

Claims (47)

1. Способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, включающий:1. A method for decoding an encoded video bitstream using at least one processor, including: получение кодированного изображения из кодированного битового потока видео;obtaining an encoded image from the encoded video bitstream; декодирование кодированного изображения для формирования декодированного изображения;decoding the encoded image to generate a decoded image; получение из кодированного битового потока видео первого флага, указывающего, разрешена ли передискретизация опорного изображения;deriving from the encoded video bitstream a first flag indicating whether resampling of the reference picture is allowed; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео второго флага, указывающего, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео;based on the first flag indicating that resampling of the reference picture is allowed, deriving from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size specified in the encoded video bitstream; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получение из кодированного битового потока видео третьего флага, указывающего, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео;based on the first flag indicating that resampling of the reference picture is allowed, deriving from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формирование опорного изображения путем передискретизации декодированного изображения так, чтобы иметь постоянный размер опорного изображения, и сохранение опорного изображения в буфере декодированных изображений; иbased on a second flag indicating that the reference pictures have a constant reference picture size, generating a reference picture by resampling the decoded picture to have a constant reference picture size, and storing the reference picture in a decoded picture buffer; and на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формирование выходного изображения путем передискретизации декодированного изображения так, чтобы иметь постоянный размер выходного изображения, и вывод выходного изображения.based on the third flag indicating that the output images have a constant output image size, generating an output image by resampling the decoded image so as to have a constant output image size, and outputting the output image. 2. Способ по п. 1, в котором первый флаг, второй флаг и третий флаг сигнализируются в наборе параметров последовательности, включенном в кодированный битовый поток видео.2. The method of claim 1, wherein the first flag, the second flag, and the third flag are signaled in a sequence parameter set included in the encoded video bitstream. 3. Способ по п. 1, дополнительно включающий получение информации о разрешении изображения из кодированного битового потока видео,3. The method of claim 1, further comprising obtaining image resolution information from the encoded video bitstream, при этом информация о разрешении изображения указывает по меньшей мере одно из максимального разрешения изображения и минимального разрешения изображения.wherein the image resolution information indicates at least one of the maximum image resolution and the minimum image resolution. 4. Способ по п. 3, в котором информация о разрешении изображения сигнализируется в наборе параметров декодера, включенном в кодированный битовый поток видео.4. The method of claim 3, wherein the image resolution information is signaled in a decoder parameter set included in the encoded video bitstream. 5. Способ по п. 1, дополнительно включающий получение списка размеров изображения из кодированного битового потока видео.5. The method of claim 1, further comprising obtaining a list of image sizes from the encoded video bitstream. 6. Способ по п. 5, дополнительно включающий получение индекса, указывающего размер декодированного изображения в списке размеров изображения.6. The method of claim 5, further comprising obtaining an index indicating the size of the decoded image in the list of image sizes. 7. Способ по п. 6, в котором список размеров изображения сигнализируется в наборе параметров последовательности, включенном в кодированный битовый поток видео,7. The method of claim 6, wherein the list of image sizes is signaled in a sequence parameter set included in the encoded video bitstream, при этом индекс сигнализируется в наборе параметров изображения, включенном в кодированный битовый поток видео.wherein the index is signaled in a picture parameter set included in the encoded video bitstream. 8. Способ по п. 1, дополнительно включающий получение четвертого флага, указывающего, разрешено ли масштабирование вектора движения.8. The method of claim 1, further comprising receiving a fourth flag indicating whether motion vector scaling is enabled. 9. Способ по п. 8, в котором четвертый флаг сигнализируется в наборе параметров изображения, включенном в кодированный битовый поток видео.9. The method of claim 8, wherein the fourth flag is signaled in a picture parameter set included in the encoded video bitstream. 10. Устройство для декодирования кодированного битового потока видео, содержащее:10. A device for decoding an encoded video bitstream, comprising: по меньшей мере одну память, сконфигурированную для хранения программного кода; и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 from the program code, the program code comprising: первый код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать кодированное изображение из кодированного битового потока видео;a first acquisition code configured to cause at least one processor to obtain an encoded image from the encoded video bitstream; код декодирования, сконфигурированный так, чтобы заставлять по меньшей мере один процессор декодировать кодированное изображение для формирования декодированного изображения;a decoding code configured to cause at least one processor to decode the encoded image to generate a decoded image; второй код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли передискретизация опорного изображения;a second acquisition code configured to cause at least one processor to obtain from the encoded video bitstream a first flag indicating whether resampling of the reference picture is enabled; третий код получения, сконфигурированный так, чтобы на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео;a third acquisition code configured to, based on a first flag indicating that reference picture resampling is enabled, cause at least one processor to obtain from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size specified in the encoded video bitstream; четвертый код получения, сконфигурированный так, чтобы на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, заставлять по меньшей мере один процессор получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео;a fourth acquisition code configured to, based on a first flag indicating that reference picture resampling is enabled, cause at least one processor to obtain from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; первый формирующий код, сконфигурированный так, чтобы на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, заставлять по меньшей мере один процессор формировать опорное изображение путем передискретизации декодированного изображения так, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; иa first generation code configured to, based on a second flag indicating that the reference pictures have a constant reference picture size, cause at least one processor to generate a reference picture by resampling the decoded picture to have a constant reference picture size, and store a reference picture in the decoded picture buffer; and второй формирующий код, сконфигурированный так, чтобы на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, заставлять по меньшей мере один процессор формировать выходное изображение путем передискретизации декодированного изображения так, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.a second generation code configured to cause at least one processor to generate an output image by resampling the decoded image to have a constant output image size based on a third flag indicating that the output images have a constant output image size, and output output image. 11. Устройство по п. 10, в котором первый флаг, второй флаг и третий флаг сигнализируются в наборе параметров последовательности, включенном в кодированный битовый поток видео.11. The apparatus of claim 10, wherein the first flag, second flag, and third flag are signaled in a sequence parameter set included in the encoded video bitstream. 12. Устройство по п. 10, в котором программный код дополнительно содержит четвертый код получения, выполненный с возможностью заставлять по меньшей мере один процессор получать информацию о разрешении изображения из кодированного битового потока видео,12. The apparatus of claim 10, wherein the program code further comprises a fourth acquisition code configured to cause at least one processor to obtain image resolution information from the encoded video bitstream, при этом информация о разрешении изображения указывает по меньшей мере одно из максимального разрешения изображения и минимального разрешения изображения.wherein the image resolution information indicates at least one of the maximum image resolution and the minimum image resolution. 13. Устройство по п. 12, в котором информация о разрешении изображения сигнализируется в наборе параметров декодера, включенном в кодированный битовый поток видео.13. The apparatus of claim 12, wherein the image resolution information is signaled in a decoder parameter set included in the encoded video bitstream. 14. Устройство по п. 10, в котором программный код дополнительно содержит пятый код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать список размеров изображений из кодированного битового потока видео.14. The apparatus of claim 10, wherein the program code further comprises a fifth acquisition code configured to cause at least one processor to obtain a list of image sizes from the encoded video bitstream. 15. Устройство по п. 14, в котором программный код дополнительно включает в себя шестой код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать индекс, указывающий размер изображения декодированного изображения в списке размеров изображений.15. The apparatus of claim 14, wherein the program code further includes a sixth acquisition code configured to cause at least one processor to obtain an index indicating an image size of the decoded image in the image size list. 16. Устройство по п. 15, в котором список размеров изображений сигнализируется в наборе параметров последовательности, включенном в кодированный битовый поток видео, и16. The apparatus of claim 15, wherein the list of image sizes is signaled in a sequence parameter set included in the encoded video bitstream, and при этом индекс сигнализируется в наборе параметров изображения, включенном в кодированный битовый поток видео.wherein the index is signaled in a picture parameter set included in the encoded video bitstream. 17. Устройство по п. 10, в котором программный код дополнительно содержит седьмой код получения, сконфигурированный так, чтобы заставлять по меньшей мере один процессор получать четвертый флаг, указывающий, разрешено ли масштабирование вектора движения.17. The apparatus of claim 10, wherein the program code further comprises a seventh acquisition code configured to cause at least one processor to acquire a fourth flag indicating whether motion vector scaling is enabled. 18. Устройство по п. 17, в котором четвертый флаг сигнализируется в наборе параметров изображения, включенном в кодированный битовый поток видео.18. The apparatus of claim 17, wherein the fourth flag is signaled in a picture parameter set included in the encoded video bitstream. 19. Машиночитаемый носитель, на котором хранятся команды, содержащие: одну или более команд, которые, при выполнении одним или более процессорами устройства для декодирования кодированного битового потока видео, заставляют один или более процессоров:19. A computer-readable 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 one or more processors: получать кодированное изображение из кодированного битового потока видео;obtain an encoded image from the encoded video bitstream; декодировать кодированное изображение для формирования декодированного изображения;decode the encoded image to generate a decoded image; получать из кодированного битового потока видео первый флаг, указывающий, разрешена ли передискретизация опорного изображения;obtain from the encoded video bitstream a first flag indicating whether resampling of the reference picture is allowed; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получать из кодированного битового потока видео второй флаг, указывающий, имеют ли опорные изображения постоянный размер опорного изображения, указанный в кодированном битовом потоке видео;based on the first flag indicating that resampling of the reference picture is allowed, obtain from the encoded video bitstream a second flag indicating whether the reference pictures have a constant reference picture size indicated in the encoded video bitstream; на основе первого флага, указывающего на то, что разрешена передискретизация опорного изображения, получать из кодированного битового потока видео третий флаг, указывающий, имеют ли выходные изображения постоянный размер выходного изображения, указанный в кодированном битовом потоке видео;based on the first flag indicating that resampling of the reference picture is allowed, obtain from the encoded video bitstream a third flag indicating whether the output pictures have a constant output picture size specified in the encoded video bitstream; на основе второго флага, указывающего на то, что опорные изображения имеют постоянный размер опорного изображения, формировать опорное изображение путем передискретизации декодированного изображения так, чтобы иметь постоянный размер опорного изображения, и сохранять опорное изображение в буфере декодированных изображений; иbased on a second flag indicating that the reference pictures have a constant reference picture size, generate a reference picture by resampling the decoded picture so as to have a constant reference picture size, and store the reference picture in a decoded picture buffer; and на основе третьего флага, указывающего на то, что выходные изображения имеют постоянный размер выходного изображения, формировать выходное изображение путем передискретизации декодированного изображения так, чтобы иметь постоянный размер выходного изображения, и выводить выходное изображение.based on the third flag indicating that the output images have a constant output image size, generate an output image by resampling the decoded image so as to have a constant output image size, and output the output image. 20. Машиночитаемый носитель по п. 19, в котором первый флаг, второй флаг и третий флаг сигнализируются в наборе параметров последовательности, включенном в кодированный битовый поток видео.20. The computer-readable medium of claim 19, wherein the first flag, second flag, and third flag are signaled in a sequence parameter set included in the encoded video bitstream.
RU2021127811A 2019-06-24 2020-06-18 Signaling for reference picture oversampling RU2773642C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/865,955 2019-06-24
US16/899,202 2020-06-11

Publications (1)

Publication Number Publication Date
RU2773642C1 true RU2773642C1 (en) 2022-06-06

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040130664A1 (en) * 2001-05-17 2004-07-08 Stessen Jeroen Hubert Christoffel Jacobus TV-receiver, image display apparatus, tv-system and method for displaying an image
US20040213345A1 (en) * 2002-09-04 2004-10-28 Microsoft Corporation Multi-resolution video coding and decoding
US20100150231A1 (en) * 2008-12-11 2010-06-17 Novatek Microelectronics Corp. Apparatus for reference picture resampling generation and method thereof and video decoding system using the same
US20120320984A1 (en) * 2011-06-14 2012-12-20 Minhua Zhou Inter-Prediction Candidate Index Coding Independent of Inter-Prediction Candidate List Construction in Video Coding
US20130177084A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Motion vector scaling in video coding
RU2514787C1 (en) * 2007-06-28 2014-05-10 Мицубиси Электрик Корпорейшн Image encoding device and image decoding device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040130664A1 (en) * 2001-05-17 2004-07-08 Stessen Jeroen Hubert Christoffel Jacobus TV-receiver, image display apparatus, tv-system and method for displaying an image
US20040213345A1 (en) * 2002-09-04 2004-10-28 Microsoft Corporation Multi-resolution video coding and decoding
RU2514787C1 (en) * 2007-06-28 2014-05-10 Мицубиси Электрик Корпорейшн Image encoding device and image decoding device
US20100150231A1 (en) * 2008-12-11 2010-06-17 Novatek Microelectronics Corp. Apparatus for reference picture resampling generation and method thereof and video decoding system using the same
US20120320984A1 (en) * 2011-06-14 2012-12-20 Minhua Zhou Inter-Prediction Candidate Index Coding Independent of Inter-Prediction Candidate List Construction in Video Coding
US20130177084A1 (en) * 2012-01-10 2013-07-11 Qualcomm Incorporated Motion vector scaling in video coding

Similar Documents

Publication Publication Date Title
AU2020301123B2 (en) Signaling for reference picture resampling
AU2023201809B2 (en) Method for signaling output layer set with sub-picture
AU2023201375A1 (en) Signaling of adaptive picture size in video bitstream
US11812035B2 (en) Method for alignment across layers in coded video stream
AU2023201466A1 (en) Signaling of scalability parameters in video bitstream
US20240098288A1 (en) Method for support of scalability with adaptive picture resolution
US20230013085A1 (en) Region-wise scalability with adaptive resolution change
US20240107045A1 (en) Derivation on sublayer-wise output layer set
AU2023204022A1 (en) Method for Parameter Set Reference Constraints in Coded Video Stream
US20230089992A1 (en) Method for indication of sublayer numbers in multilayered video stream
US11166038B2 (en) Method for support of scalability with adaptive picture resolution
RU2773642C1 (en) Signaling for reference picture oversampling
RU2775390C1 (en) Adaptive image size signaling in video bitstream
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
RU2787213C1 (en) Method for restricting referencing to a set of parameters in an encoded video stream
RU2783382C1 (en) Signalling of inter-layer prediction in a video bitstream