RU2815415C2 - Signalling for reference image oversampling with indication of constant window size in video bit stream - Google Patents

Signalling for reference image oversampling with indication of constant window size in video bit stream Download PDF

Info

Publication number
RU2815415C2
RU2815415C2 RU2023109621A RU2023109621A RU2815415C2 RU 2815415 C2 RU2815415 C2 RU 2815415C2 RU 2023109621 A RU2023109621 A RU 2023109621A RU 2023109621 A RU2023109621 A RU 2023109621A RU 2815415 C2 RU2815415 C2 RU 2815415C2
Authority
RU
Russia
Prior art keywords
sps
signaled
size
image
flag indicating
Prior art date
Application number
RU2023109621A
Other languages
Russian (ru)
Other versions
RU2023109621A (en
Inventor
Беондоо ЧОЙ
Штефан ВЕНГЕР
Шань ЛЮ
Original Assignee
TEНСЕНТ АМЕРИКА ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TEНСЕНТ АМЕРИКА ЭлЭлСи filed Critical TEНСЕНТ АМЕРИКА ЭлЭлСи
Publication of RU2023109621A publication Critical patent/RU2023109621A/en
Application granted granted Critical
Publication of RU2815415C2 publication Critical patent/RU2815415C2/en

Links

Abstract

FIELD: video encoding.
SUBSTANCE: signalling the size of an image or parts of an image that may vary from image to image. A method for decoding an encoded video bit stream is provided, which includes: obtaining the first flag indicating whether a constant image size is used in an encoded video sequence including the current image; based on the first flag indicating that a constant image size is used, decoding the current image without performing resampling of the reference image; based on the first flag indicating that a constant image size is not used, obtaining the second flag indicating whether the matching window size is signalled; based on the second flag indicating that the size of the match window is signalled, obtaining the size of the match window, determining an oversampling factor between the current image and the reference image based on the size of the match window, and performing resampling of the reference image on the current image using the oversampling factor. The first flag is signalled in the Sequence Parameter Set (SPS) and indicates whether the SPS match window parameters are signalled in the SPS.
EFFECT: improved efficiency of encoding and decoding the video bit stream.
16 cl, 10 dwg, 1 tbl

Description

[1] Настоящая заявка испрашивает приоритет предварительной заявки на патент США № 62/903,601, поданной 20 сентября 2019 г., и заявки на патент США № 17/009,979, поданной 2 сентября 2020 г., которые полностью включены в настоящий документ. [1] This application claims priority to U.S. Provisional Patent Application No. 62/903,601, filed September 20, 2019, and U.S. Patent Application No. 17/009,979, filed September 2, 2020, which are incorporated herein in their entirety.

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

[1] Раскрытый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к сигнализированию размера изображения или частей изображения, которые могут меняться от изображения к изображению или от части изображения к части изображения.[1] The disclosed subject matter of the invention relates to video encoding and decoding, and more particularly to signaling the size of an image or portions of an image that may vary from image to image or from portion of an image to portion of an image.

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

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

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

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

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

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

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

[7] В одном из вариантов осуществления предложен способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, причем способ включает в себя получение первого флага, указывающего, используется ли постоянный размер изображения в кодированной видеопоследовательности, включающей текущее изображение; на основании первого флага, указывающего, что используется постоянный размер изображения, декодирование текущего изображения без выполнения передискретизации опорного изображения; на основании первого флага, указывающего, что постоянный размер изображения не используется, получение второго флага, указывающего, сигнализируется ли размер окна соответствия; на основании второго флага, указывающего, что размер окна соответствия сигнализируется, получение размера окна соответствия, определение коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия и выполнение передискретизации опорного изображения на текущем изображении с использованием коэффициента передискретизации.[7] In one embodiment, a method is provided for decoding an encoded video bitstream using at least one processor, the method including: obtaining a first flag indicating whether a constant image size is used in an encoded video sequence including the current image; based on the first flag indicating that a constant image size is used, decoding the current image without performing resampling of the reference image; based on the first flag indicating that a constant image size is not used, obtaining a second flag indicating whether the matching window size is signaled; based on the second flag indicating that the size of the match window is signaled, obtaining the size of the match window, determining a resampling ratio between the current image and the reference image based on the size of the match window, and performing resampling of the reference image on the current image using the resampling ratio.

[8] В одном из вариантов осуществления предложено устройство для декодирования кодированного битового потока видео, при этом устройство включает в себя по меньшей мере один элемент памяти, сконфигурированный для хранения программного кода; и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя: первый код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору получать первый флаг, указывающий, используется ли постоянный размер изображения в кодированной видеопоследовательности, включающей в себя текущее изображение; код декодирования, сконфигурированный так, чтобы предписывать по меньшей мере одному процессора, на основании первого флага, указывающего, что используется постоянный размер изображения, декодировать текущее изображение без выполнения передискретизации опорного изображения; второй код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании первого флага, указывающего, что постоянный размер изображения не используется, получать второй флаг, указывающий, сигнализируется ли размер окна соответствия; и код выполнения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании второго флага, указывающего, что размер окна соответствия сигнализируется, получать размер окна соответствия, определять коэффициент передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия и выполнять передискретизацию опорного изображения на текущем изображении с использованием коэффициента передискретизации.[8] In one embodiment, an apparatus is provided for decoding an encoded video bitstream, the apparatus including at least one memory element configured to store program code; and at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: a first acquisition code configured to cause the at least one processor to receive a first flag indicating whether a constant image size in the encoded video sequence including the current image; decoding code configured to cause the at least one processor, based on the first flag indicating that a constant image size is used, to decode the current image without performing resampling of the reference image; a second acquisition code configured to cause the at least one processor, based on the first flag indicating that a constant image size is not used, to obtain a second flag indicating whether the matching window size is signaled; and execution code configured to cause the at least one processor, based on the second flag indicating that the match window size is signaled, to obtain the match window size, determine a resampling ratio between the current image and the reference picture based on the match window size, and perform the resampling reference image on the current image using an oversampling factor.

[9] В одном из вариантов осуществления предложен невременный машиночитаемый носитель, хранящий инструкции, включающие в себя: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам: получать первый флаг, указывающий, используется ли постоянный размер изображения в кодированной видеопоследовательности, включающей текущее изображение; на основании первого флага, указывающего, что используется постоянный размер изображения, декодировать текущее изображение без выполнения передискретизации опорного изображения; на основании первого флага, указывающего, что постоянный размер изображения не используется, получать второй флаг, указывающий, сигнализируется ли размер окна соответствия; на основании второго флага, указывающего, что размер окна соответствия сигнализируется, получать размер окна соответствия, определять коэффициент передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия и выполнять передискретизацию опорного изображения на текущем изображении с использованием коэффициента передискретизации.[9] In one embodiment, a non-transitory computer-readable medium is provided storing instructions including: one or more instructions that, when executed by one or more processors of an apparatus for decoding an encoded video bitstream, instruct one or more processors to: obtain a first flag indicating whether a constant image size is used in the encoded video sequence including the current image; based on the first flag indicating that a constant image size is used, decode the current image without performing resampling of the reference image; based on the first flag indicating that a constant image size is not used, obtain a second flag indicating whether the matching window size is signaled; based on the second flag indicating that the match window size is signaled, obtain the match window size, determine an oversampling ratio between the current image and the reference image based on the match window size, and resample the reference image on the current image using the oversampling ratio.

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

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

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

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

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

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

[15] На фиг.5 показана схематическая иллюстрация вариантов сигнализирования параметров ARC / RPR в соответствии с вариантом осуществления.[15] FIG. 5 is a schematic illustration of ARC/RPR parameter signaling options in accordance with an embodiment.

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

[17] На фиг.7 показана схематическая иллюстрация передачи размера изображения и окна соответствия в SPS в соответствии с вариантами осуществления.[17] FIG. 7 is a schematic illustration of transmitting an image size and a matching window to the SPS in accordance with embodiments.

[18] На фиг.8 показана схематическая иллюстрация передачи размера изображения и окна соответствия в PPS в соответствии с вариантами осуществления.[18] FIG. 8 is a schematic illustration of transmitting an image size and a matching window to a PPS in accordance with embodiments.

[19] На фиг. 9 показана блок-схема примерного процесса декодирования кодированного битового потока видео в соответствии с вариантом осуществления.[19] In FIG. 9 is a flow diagram of an exemplary process for decoding an encoded video bitstream in accordance with an embodiment.

[20] На фиг.10 показана схематическая иллюстрация компьютерной системы в соответствии с вариантом осуществления.[20] FIG. 10 is a schematic illustration of a computer system according to an embodiment.

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

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

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

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

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

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

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

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

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

[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] The symbol recovery 321 may include a number of different modules depending on the type of video image or portions thereof (such as: outer and inner image, outer and inner block) and other factors. Which modules are engaged and how can be controlled by subgroup control information parsed from the encoded video sequence using the parser (320). The flow of such subgroup control information between the parser (320) and the plurality of modules is not shown below for clarity.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[45] Работа «локального» декодера (433) может быть такой же, как у «удаленного» декодера (210), который уже был подробно описан выше в описании к фиг. 3. Кратко ссылаясь также на фиг.4, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (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), which was already described in detail above in the description of FIG. 3. Briefly referring also to FIG. 4, however, since the symbols are available, and encoding/decoding of the symbols into the encoded video sequence by the entropy encoder (445) and parser (320) can be performed losslessly, the entropy decoding portion of the decoder (210), including the channel ( 312), sink (310), buffer (315) and parser (320), cannot be fully implemented in the local decoder (433).

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

[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 that have been designated “reference frames.” Thus, the encoding engine 432 encodes the differences between blocks of pixels of the input frame and blocks of pixels of the reference frame(s) that can be selected as the prediction reference(s) for the input frame.

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

[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 image to be encoded, the predictor (435) may search the reference image memory (434) for sample data (as reference pixel block candidates) or certain metadata such as reference image motion vectors, block shapes, etc. further, which can serve as a suitable prediction standard for new images. The predictor (435) may operate on a block-by-pixel basis to find appropriate prediction references. In some cases, as determined by the search results obtained by the predictor (435), the input image may have prediction patterns taken from a plurality of reference images stored in the reference image memory (434).

[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 signals of all the above functional modules may be entropy encoded in an entropy encoder (445). The entropy encoder translates the symbols generated by the various functional modules into an encoded video sequence by losslessly compressing the symbols according to techniques known to those skilled in the art, such as Huffman 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 through a communication channel (460), which may be a hardware/software connection to a storage device that will store the encoded video data . The transmitter (440) may merge the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or ancillary data streams (sources not shown).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[68] коэффициенты повышения/понижения дискретизации с добавлением временного измерения, указывающие на увеличение/уменьшение размера с постоянной скоростью для заданного количества изображений[68] upsampling/downsampling factors with added time dimension indicating upsampling/downsampling at a constant rate for a given number of images

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

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

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

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

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

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

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

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

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

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

[78] В том же или другом варианте осуществления передача параметров ARC может соответствовать подробному примеру, как показано на фиг.6А-6В. Фиг. 6A-6B изображают синтаксические диаграммы в типе представления с использованием нотации, которая примерно соответствует программированию в стиле C, например, используемому в стандартах кодирования видео, по меньшей мере, с 1993 года. Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в битовом потоке, строки без жирного шрифта часто указывают на поток управления или установку переменных.[78] In the same or another embodiment, the transmission of ARC parameters may follow a detailed example, as shown in FIGS. 6A-6B. Fig. 6A-6B depict syntax diagrams in a representation type using a notation that roughly corresponds to C-style programming, such as that used in video coding standards since at least 1993. Lines in bold indicate syntax elements present in the bitstream; lines without bold often indicate control flow or setting variables.

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

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

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

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

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

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

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

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

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

[88] В вариантах осуществления не все отсчеты восстановленного изображения предназначены для вывода. Кодер может указать прямоугольную часть изображения, предназначенную для вывода, с использованием окна соответствия. Окно соответствия может быть описано или обозначено, например, посредством смещения влево и вправо от краев изображения, как определено размером изображения. Определенные варианты использования могут быть идентифицированы, когда окна соответствия могут иметь значение, в том числе растянутая развертка, пространственная сборка видов в системах Multiview или системы 360, где окна соответствия могут указывать на одну из нескольких поверхностей кубической карты для вывода.[88] In embodiments, not all samples of the reconstructed image are intended for output. The encoder can specify the rectangular portion of the image to be output using a match window. The correspondence window may be described or indicated, for example, by an offset to the left and right of the edges of the image, as determined by the size of the image. Certain use cases can be identified where correspondence windows may be relevant, including stretched sweeps, spatial assembly of views in Multiview systems, or 360 systems where correspondence windows may point to one of several cubemap surfaces for output.

[89] Поскольку не все приложения требуют использования окна соответствия и поскольку параметры окна соответствия могут потребовать определенного количества битов в битовом потоке и, следовательно, когда они не используются, это может повредить эффективности кодирования, и наличие таких параметров может быть ограничено флагом.[89] Since not all applications require the use of a match window, and since match window parameters may require a certain number of bits in the bitstream and therefore, when not used, it may harm encoding efficiency, and the presence of such parameters may be limited by a flag.

[90] В вариантах осуществления размер окна соответствия может сигнализироваться в наборе параметров изображения (PPS). Параметры окна соответствия, которые могут указывать размер окна соответствия, могут использоваться для вычисления коэффициента передискретизации, когда размер окна соответствия опорного изображения отличается от размера окна текущего изображения. Декодеру может потребоваться распознать размер окна соответствия каждого изображения, чтобы определить, требуется ли процесс передискретизации. Когда коэффициент передискретизации не равен 1, размер выходного изображения не является постоянным в кодированной видеопоследовательности (CVS), и может использоваться специальная обработка и постобработка выходных изображений, например масштабирование с увеличением/уменьшением для отображения.[90] In embodiments, the size of the match window may be signaled in a picture parameter set (PPS). Match window parameters, which can specify the size of the match window, can be used to calculate the oversampling factor when the match window size of the reference image is different from the window size of the current image. The decoder may need to recognize the size of the matching window of each image to determine whether a resampling process is required. When the oversampling factor is not 1, the size of the output image is not constant in the encoded video sequence (CVS), and special processing and post-processing of the output images, such as up/down scaling for display, may be used.

[91] В вариантах осуществления, флаг, который указывает, имеет ли декодированное / выводимое изображение тот же самый размер и коэффициент передискретизации равен 1 в кодированной видеопоследовательности (CVS) /битовом потоке, может сигнализироваться в наборе высокоуровневых параметров, таком как набор параметров декодирования (DPS), набор параметров видео (VPS) или набор параметров последовательности (SPS). Флаг может использоваться для согласования сеанса для потоковой передачи видео или конфигурации декодера и настройки отображения.[91] In embodiments, a flag that indicates whether the decoded/output image has the same size and resampling factor is 1 in the coded video sequence (CVS)/bitstream may be signaled in a high-level parameter set, such as a decoding parameter set ( DPS), Video Parameter Set (VPS), or Sequence Parameter Set (SPS). The flag can be used for session negotiation for video streaming or decoder configuration and display settings.

[92] Ссылаясь на фиг. 7, флаг constant_pic_size_flag (704), равный 1, может указывать, что размеры изображений в CVS одинаковы. При этом constant_pic_size_flag, равный 0, может указывать на то, что размеры изображений для изображений в CVS могут быть или не быть одинаковыми. Если значение constant_pic_size_flag равно 1, флаг sps_conformance_window_flag (705) может быть представлен в SPS (701). При этом sps_conformance_window_flag, равный 1, может указывать, что параметры смещения окна обрезки соответствия следуют в подходящем положении, например, далее, в SPS. При этом sps_conformance_window_flag, равный 0, может указывать на то, что параметры смещения параметры смещения окна обрезки соответствия отсутствуют.[92] Referring to FIG. 7, constant_pic_size_flag (704) equal to 1 can indicate that the image sizes in CVS are the same. That being said, a constant_pic_size_flag of 0 may indicate that the image sizes for images in CVS may or may not be the same. If the value of constant_pic_size_flag is 1, the sps_conformance_window_flag (705) may be present in SPS (701). In this case, sps_conformance_window_flag equal to 1 may indicate that the conformance crop window offset parameters follow in a suitable position, for example, further, in SPS. However, an sps_conformance_window_flag of 0 may indicate that there are no conformance crop window offset parameters.

[93] В вариантах осуществления sps_conf_win_left_offset (706), sps_conf_win_right_offset (707), sps_conf_win_top_offset (708) и sps_conf_win_bottom_offset (709) могут указывать на отсчеты изображений в CVS, которые выводятся из процесса декодирования изображения в виде прямоугольной области, указанной в координатах изображения для вывода.[93] In embodiments, sps_conf_win_left_offset (706), sps_conf_win_right_offset (707), sps_conf_win_top_offset (708), and sps_conf_win_bottom_offset (709) may indicate image samples in CVS that are output from the image decoding process as a rectangular area specified in the image coordinates for output .

[94] В вариантах осуществления, когда элементы синтаксиса sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset и sps_conf_win_bottom_offset отсутствуют, значения sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, и sps_conf_win_bottom_offset могут быть выведены равными 0.[94] In embodiments, when the syntax elements sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, and sps_conf_win_bottom_offset are missing, the values of sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset, and sps_conf_win_bottom_offset may be output equal to 0.

[95] В вариантах осуществления, как показано на фиг. 8, pic_width_in_luma_samples (802) может определять ширину каждого декодированного изображения, опирающегося на PPS (801) в единицах выборок яркости. В вариантах осуществления pic_width_in_luma_samples может быть не равно 0, может быть целым числом, кратным Max( 8, MinCbSizeY), и может быть меньше или равно pic_width_max_in_luma_samples. Если отсутствует, значение pic_width_in_luma_samples может быть выведено как равное pic_width_max_in_luma_samples. При этом pic_height_in_luma_samples (803) может указывать высоту каждого декодированного изображения, опирающегося на PPS в единицах отсчетов яркости. При этом pic_height_in_luma_samples в некоторых случаях может быть не равным 0, а может быть целым числом, кратным Max (8, MinCbSizeY), и может быть меньше или равным pic_height_max_in_luma_samples. Если отсутствует, значение pic_height_in_luma_samples может быть выведено как равное pic_ height_max_in_luma_samples.[95] In embodiments as shown in FIG. 8, pic_width_in_luma_samples (802) may determine the width of each decoded image based on the PPS (801) in units of luma samples. In embodiments, pic_width_in_luma_samples may not be equal to 0, may be an integer multiple of Max(8, MinCbSizeY), and may be less than or equal to pic_width_max_in_luma_samples. If missing, pic_width_in_luma_samples may be output as equal to pic_width_max_in_luma_samples. In this case, pic_height_in_luma_samples (803) may indicate the height of each decoded PPS-based image in units of luminance samples. In this case, pic_height_in_luma_samples in some cases may not be equal to 0, but may be an integer multiple of Max (8, MinCbSizeY), and may be less than or equal to pic_height_max_in_luma_samples. If missing, the value of pic_height_in_luma_samples may be output as equal to pic_height_max_in_luma_samples.

[96] В вариантах осуществления, как все еще показано на фиг. 8, conformance_window_flag (804), равный 1, может указывать на то, что параметры смещения окна обрезки соответствия следуют в подходящем месте, например, следующим в PPS (801). При этом conformance_window_flag, равный 0, может указывать на то, что параметры смещения окна обрезки соответствия отсутствуют. При этом conf_win_left_offset (805), conf_win_right_offset (806), conf_win_top_offset (807) и conf_win_bottom_offset (808) могут указывать на отсчеты изображений, опирающиеся на PPS, которые выводятся из процесса декодирования, в виде прямоугольной области, указанной в координатах изображения для вывода.[96] In embodiments, as still shown in FIG. 8, a conformance_window_flag (804) equal to 1 may indicate that the conformance trim window offset parameters follow in an appropriate location, such as following in the PPS (801). However, a conformance_window_flag of 0 may indicate that there are no conformance crop window offset parameters. However, conf_win_left_offset (805), conf_win_right_offset (806), conf_win_top_offset (807) and conf_win_bottom_offset (808) can point to PPS-based image samples that are output from the decoding process, as a rectangular area specified in the output image coordinates.

[97] В том же варианте осуществления, когда элементы синтаксиса conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset отсутствуют, значения conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset могут быть выведены равными значениям sps_conf_win_left_offset, sps_conf_win_right_offset, sps_conf_win_top_offset и sps_conf_win_bottom_offset соответственно.[97] In the same embodiment, when the syntax elements conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset are missing, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset can be output equal to the values of sps_conf_win_left_offset, sps _conf_win_right_offset, sps_conf_win_top_offset and sps_conf_win_bottom_offset respectively.

[98] В вариантах осуществления, окно обрезки соответствия может содержать отсчеты яркости с горизонтальными координатами изображения от SubWidthC * conf_win_left_offset до pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset + 1) и вертикальными координатами изображения от SubHeightC * conf_win_top_offset до pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 ), включительно.[98] In embodiments, the match trim window may contain luminance samples with horizontal image coordinates from SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset + 1) and vertical image coordinates from SubHeightC * conf_win_top_offset to pic_height_in_luma_samples - ( SubHeightC * conf_win_bottom_offset + 1 ) , inclusive.

[99] Значение SubWidthC * (conf_win_left_offset + conf_win_right_offset) может быть меньше pic_width_in_luma_samples, а значение SubHeightC * (conf_win_top_offset + conf_win_bottom_offset) может быть меньше pic_height_in_luma_samples.[99] The value of SubWidthC * (conf_win_left_offset + conf_win_right_offset) can be less than pic_width_in_luma_samples, and the value of SubHeightC * (conf_win_top_offset + conf_win_bottom_offset) can be less than pic_height_in_luma_samples.

[100] Переменные PicOutputWidthL и PicOutputHeightL могут быть получены, как показано в Уравнении 1 и Уравнении 2 ниже:[100] The PicOutputWidthL and PicOutputHeightL variables can be obtained as shown in Equation 1 and Equation 2 below:

PicOutputWidthL = pic_width_in_luma_samples - SubWidthC * (conf_win_right_offset + conf_win_left_offset) (Уравнение 1)PicOutputWidthL = pic_width_in_luma_samples - SubWidthC * (conf_win_right_offset + conf_win_left_offset) (Equation 1)

PicOutputHeightL = pic_height_in_luma_samples - SubHeightC * (conf_win_bottom_offset + conf_win_top_offset) (Уравнение 2)PicOutputHeightL = pic_height_in_luma_samples - SubHeightC * (conf_win_bottom_offset + conf_win_top_offset) (Equation 2)

[101] В вариантах осуществления процесс дробной интерполяции с передискретизацией опорного изображения может обрабатываться следующим образом.[101] In embodiments, the fractional interpolation process with resampling of the reference image may be processed as follows.

[102] Входными данными для этого процесса может быть местоположение яркости (xSb, ySb), указывающее верхний левый отсчет текущего субблока кодирования относительно верхнего левого отсчета яркости текущего изображения, переменная sbWidth, указывающая ширину текущего субблока кодирования, переменная sbHeight, указывающая высоту текущего субблока кодирования, смещение вектора движения mvOffset, уточненный вектор движения refMvLX, выбранный массив отсчетов опорного изображения refPicLX, индекс фильтра интерполяции половинных отсчетов hpelIfIdx, флаг двунаправленного оптического потока bdofFlag и переменная cIdx, указывающая индекс компонента цвета текущего блока.[102] The input to this process may be a luminance location (xSb, ySb) indicating the top left luminance reference of the current encoding subblock relative to the top left luminance reference of the current image, a variable sbWidth indicating the width of the current encoding subblock, a variable sbHeight indicating the height of the current encoding subblock , the motion vector offset mvOffset, the refined motion vector refMvLX, the selected reference image sample array refPicLX, the half-sample interpolation filter index hpelIfIdx, the bidirectional optical flow flag bdofFlag, and the variable cIdx indicating the color component index of the current block.

[103] Выходными данными этого процесса могут быть: массив predSamplesLX (sbWidth + brdExtSize) x (sbHeight + brdExtSize) значений отсчетов предсказания.[103] The output of this process can be: an array of predSamplesLX (sbWidth + brdExtSize) x (sbHeight + brdExtSize) prediction sample values.

[104] Размер расширения границы блока предсказания brdExtSize может быть получен, как показано в Уравнении 3 ниже:[104] The prediction block boundary extension size brdExtSize can be obtained as shown in Equation 3 below:

brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2: 0 (Уравнение 3)brdExtSize = ( bdofFlag | | ( inter_affine_flag[ xSb ][ ySb ] && sps_affine_prof_enabled_flag ) ) ? 2:0 (Equation 3)

[105] Переменная fRefWidth может быть установлена равной PicOutputWidthL опорного изображения в отсчетах яркости. Переменная fRefHeight может быть установлена равной PicOutputHeightL опорного изображения в отсчетах яркости. Вектор движения mvLX может быть установлен равным (refMvLX - mvOffset).[105] The variable fRefWidth can be set equal to the PicOutputWidthL of the reference image in luminance samples. The variable fRefHeight can be set to the PicOutputHeightL of the reference image in luminance samples. The motion vector mvLX can be set to (refMvLX - mvOffset).

[106] Если cIdx равно 0, может применяться следующее:[106] If cIdx is 0, the following may apply:

- Коэффициенты масштабирования и их представления с фиксированной точкой могут быть определены согласно Уравнению 4 и Уравнению 5 ниже:- Scaling factors and their fixed-point representations can be determined according to Equation 4 and Equation 5 below:

hori_scale_fp = ( ( fRefWidth << 14 ) + ( PicOutputWidthLhori_scale_fp = ( ( fRefWidth << 14 ) + ( PicOutputWidthL

>> 1 ) ) / PicOutputWidthL (Уравнение 4)>> 1 ) ) / PicOutputWidthL (Equation 4)

vert_scale_fp = ( ( fRefHeight << 14 ) + ( PicOutputHeightLvert_scale_fp = ( ( fRefHeight << 14 ) + ( PicOutputHeightL

>> 1 ) ) / PicOutputHeightL (Уравнение 5)>> 1 ) ) / PicOutputHeightL (Equation 5)

- Пусть ( xIntL, yIntL ) будет местоположением яркости, заданным в единицах целого отсчета, а ( xFracL, yFracL ) может быть смещением, заданным в единицах 1/16 отсчета. Эти переменные могут использоваться в этом пункте для указания местоположений дробных отсчетов внутри массивов refPicLX опорных отсчетов.- Let ( xIntL, yIntL ) be the luminance location, given in integer count units, and ( xFracL, yFracL ) could be the offset, given in 1/16 count units. These variables can be used at this point to specify locations of fractional samples within refPicLX arrays of reference samples.

- Верхняя левая координата ограничивающего блока для заполнения опорным отсчетом (xSbIntL,ySbIntL ) может быть установлена равной ( xSb + ( mvLX[ 0 ] >> 4 ), ySb + ( mvLX[ 1 ] >> 4 ) ).- The top left coordinate of the bounding box to fill with the reference sample (xSbInt L ,ySbInt L ) can be set to ( xSb + ( mvLX[ 0 ] >> 4 ), ySb + ( mvLX[ 1 ] >> 4 ) ).

- Для каждого местоположения отсчета яркости (xL= 0..sbWidth - 1 + brdExtSize, yL= 0..sbHeight - 1 + brdExtSize) внутри массива предсказанных отсчетов яркости predSamplesLX соответствующее значение предсказанного отсчета яркости predSamplesLX [xL ] [yL ] получают следующим образом:- For each luminance sample location (xL = 0..sbWidth - 1 + brdExtSize, yL = 0..sbHeight - 1 + brdExtSize) within the predicted luminance sample array predSamplesLX, the corresponding predicted luminance sample value predSamplesLX [ xL ] [ yL ] is obtained as follows :

- Пусть (refxSbL, refySbL) и (refxL,refyL ) будут местоположениями яркости, на которые указывает вектор движения (refMvLX, refMvLX), заданный в единицах 1/16 отсчета. Переменные refxSbL, refxL, refySbL и refyL могут быть получены, как показано в уравнениях 6-9 ниже:- Let (refxSb L , refySb L ) and (refx L ,refy L ) be the luminance locations pointed to by the motion vector (refMvLX, refMvLX) specified in 1/16 count units. The variables refxSb L , refx L , refySb L and refy L can be obtained as shown in equations 6-9 below:

refxSbL = ( ( xSb<< 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (Уравнение 6)refxSb L = ( ( xSb<< 4 ) + refMvLX[ 0 ] ) * hori_scale_fp (Equation 6)

refxL = ( ( Sign( refxSb ) * ( ( Abs( refxSb ) + 128 ) >> 8 )refx L = ( ( Sign( refxSb ) * ( ( Abs( refxSb ) + 128 ) >> 8 )

+ xL * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (Уравнение 7)+ x L * ( ( hori_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (Equation 7)

refySbL = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (Уравнение 8)refySb L = ( ( ySb << 4 ) + refMvLX[ 1 ] ) * vert_scale_fp (Equation 8)

refyL = ( ( Sign( refySb ) * ( ( Abs( refySb ) + 128 ) >> 8 ) + yL *refyL = ( ( Sign( refySb ) * ( ( Abs( refySb ) + 128 ) >> 8 ) + yL *

( ( vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (Уравнение 9)( (vert_scale_fp + 8 ) >> 4 ) ) + 32 ) >> 6 (Equation 9)

- Переменные xIntL, yIntL,xFracL и yFracL могут быть получены, как показано в уравнениях 10-13 ниже:- The variables xInt L , yInt L , xFrac L and yFrac L can be obtained as shown in equations 10-13 below:

xIntL = refxL >> 4 (Уравнение 10)xInt L = refx L >> 4 (Equation 10)

yIntL = refyL > > 4 (Уравнение 11)yInt L = refy L >> 4 (Equation 11)

xFracL = refxL & 15 (Уравнение 12)xFrac L = refx L & 15 (Equation 12)

yFracL = refyL & 15 (Уравнение 13)yFrac L = refy L & 15 (Equation 13)

- Если bdofFlag равен TRUE или (sps_affine_prof_enabled_flag равен TRUE и inter_affine_flag [xSb] [ySb] равен TRUE), и одно или несколько из следующих условий истинны, значение предсказанного отсчета яркости predSamplesLX [xL] [yL ] может быть получено посредством обращения к процессу извленчения целочисленного отсчета яркости, как указано в соответствующем пункте спецификации кодирования видео, с (xIntL + ( xFracL >> 3) - 1),yIntL + (yFracL >> 3) - 1) и refPicLX в качестве входных данных.- If bdofFlag is TRUE or (sps_affine_prof_enabled_flag is TRUE and inter_affine_flag [xSb] [ySb] is TRUE), and one or more of the following conditions are true, the value of the predicted luminance sample predSamplesLX [x L ] [y L ] can be obtained by accessing the process of extracting an integer luminance sample as specified in the appropriate clause of the video encoding specification, with (xInt L + ( xFrac L >> 3) - 1),yInt L + (yFrac L >> 3) - 1) and refPicLX as input .

1. xL равно 0.1. x L equals 0.

2. xL равно sbWidth + 1.2. x L equals sbWidth + 1.

3. yL равно 0.3. y L equals 0.

4. yL равен sbHeight + 1.4. y L is equal to sbHeight + 1.

- В противном случае, значение предсказанного отсчета яркости predSamplesLX [xL] [yL] может быть получено посредством обращения к процессу 8-позиционной интерполяционной фильтрации отсчета яркости, как указано в соответствующем пункте спецификации кодирования видео с (xIntL - (brdExtSize > 0 ? 1 : 0 ), yIntL - ( brdExtSize > 0 ? 1: 0)), (xFracL, yFracL), (xSbIntL, ySbIntL ), refPicLX, hpelIfIdx, sbWidth, sbHeight и (xSb, ySb) в качестве вводных данных.- Otherwise, the value of the predicted luminance sample predSamplesLX [xL] [yL] can be obtained by referring to the 8-position luminance sample interpolation filtering process as specified in the corresponding clause of the video encoding specification with (xIntL - (brdExtSize > 0 ? 1 : 0), yIntL - (brdExtSize > 0 ? 1:0)), (xFracL, yFracL), (xSbInt L , ySbInt L ), refPicLX, hpelIfIdx, sbWidth, sbHeight and (xSb, ySb) as inputs.

[107] В противном случае (cIdx не равно 0), может применяться следующее:[107] Otherwise (cIdx is not 0), the following may apply:

1. Пусть (xIntC, yIntC) будет местоположением цветности, заданным в единицах целого отсчета, а (xFracC, yFracC) будет смещением, заданным в единицах 1/32 отсчета. Эти переменные могут использоваться в этом пункте для указания общих местоположений дробных отсчетов внутри массивов refPicLX опорных отсчетов.1. Let (xIntC, yIntC) be the chromaticity location, specified in integer count units, and (xFracC, yFracC) be the offset, specified in 1/32 count units. These variables can be used at this point to indicate general locations of fractional samples within refPicLX arrays of reference samples.

2. Верхняя левая координата ограничивающего блока для заполнения опрным отсчетом (xSbIntC, ySbIntC) устанавливается равной ((xSb / SubWidthC) + (mvLX [0] >> 5), (ySb / SubHeightC) + (mvLX [1]) >> 5)).2. The upper left coordinate of the bounding box to fill with the reference count (xSbIntC, ySbIntC) is set to ((xSb / SubWidthC) + (mvLX [0] >> 5), (ySb / SubHeightC) + (mvLX [1]) >> 5 )).

3. Для каждого местоположения отсчета цветности (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) внутри массивов предсказанных отсчетов цветности predSamplesLX соответствующее значение предсказанного отсчета цветности predSamplesLX [xC] [yC] может быть получено следующим образом :3. For each chroma sample location (xC = 0..sbWidth - 1, yC = 0 .. sbHeight - 1) within the predicted chroma sample arrays predSamplesLX, the corresponding predicted chroma sample value predSamplesLX [xC] [yC] can be obtained as follows:

- Пусть (refxSbC, refySbC) и (refxC,refyC ) будут местоположениями цветности, на которые указывает вектор движения (mvLX [0], mvLX [1]), заданный в единицах 1/32 отсчета. Переменные refxSbC, refySbC, refxC и refyC могут быть получены, как показано в уравнениях 14-17 ниже:- Let (refxSb C , refySb C ) and (refx C ,refy C ) be the chroma locations pointed to by the motion vector (mvLX[0], mvLX[1]) specified in 1/32 count units. The variables refxSb C , refySb C , refx C and refy C can be obtained as shown in equations 14-17 below:

refxSbC =( (xSb / SubWidthC << 5) + mvLX [0]) * hori_scale_fp (Уравнение 14)refxSb C =( (xSb / SubWidthC << 5) + mvLX [0]) * hori_scale_fp (Equation 14)

refxC = ((Sign (refxSbC)* ((Abs (refxSbC ) + 256) >> 9)refx C = ((Sign (refxSb C )* ((Abs (refxSb C ) + 256) >> 9)

+ xC * ((hori_scale_fp + 8) >> 4)) + 16) >> 5 (Уравнение 15)+ xC * ((hori_scale_fp + 8) >> 4)) + 16) >> 5 (Equation 15)

refySbC =( (ySb / SubHeightC<< 5) + mvLX [1]) * vert_scale_fp (Уравнение 16)refySb C =( (ySb / SubHeightC<< 5) + mvLX [1]) * vert_scale_fp (Equation 16)

refyC = ((Sign (refySbC)* ((Abs (refySbC ) + 256) >> 9)refy C = ((Sign (refySb C )* ((Abs (refySb C ) + 256) >> 9)

+ yC * ((vert_scale_fp + 8) >> 4)) + 16) >> 5 (Уравнение 17)+ yC * ((vert_scale_fp + 8) >> 4)) + 16) >> 5 (Equation 17)

Переменные xIntC, yIntC, xFracC и yFracC могут быть получены, как показано в Уравнениях 18-21 ниже:The variables xInt C , yInt C , xFrac C and yFrac C can be obtained as shown in Equations 18-21 below:

xIntC = refxC> > 5 (Уравнение 18)xInt C = refx C >> 5 (Equation 18)

yIntC = refyC> > 5 (Уравнение 19)yInt C = refy C >> 5 (Equation 19)

xFracC = refyC & 31 (Уравнение 20)xFrac C = refy C & 31 (Equation 20)

yFracC = refyC & 31 (Уравнение 21)yFrac C = refy C & 31 (Equation 21)

[108] Значение предсказанного отсчета predSamplesLX [xC] [yC] может быть получено посредством обращения к вышеуказанному процессу с (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight и refPicLX в качестве входных данных.[108] The predicted sample value predSamplesLX [xC] [yC] can be obtained by calling the above process with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight and refPicLX as inputs.

[109] На фиг. 9 показана примерная блок-схема процесса 900 декодирования кодированного битового потока видео. В некоторых реализациях один или более блоков процессов с фиг.9 могут выполняться декодером 210. В некоторых реализациях один или более блоков процессов с фиг. 9 могут выполняться другим устройством или группой устройств, отдельной от декодера 210 или включающего в себя его, например кодером 203.[109] In FIG. 9 shows an exemplary flow diagram of a process 900 for decoding an encoded video bitstream. In some implementations, one or more process blocks of FIG. 9 may be executed by decoder 210. In some implementations, one or more process blocks of FIG. 9 may be performed by another device or group of devices separate from or including decoder 210, such as encoder 203.

[110] Как показано на фиг. 9, процесс 900 может включать в себя получение первого флага, указывающего, использован ли постоянный размер изображения в кодированной видеопоследовательности, включающей в себя текущее изображение (этап 910).[110] As shown in FIG. 9, process 900 may include obtaining a first flag indicating whether a constant image size is used in the encoded video sequence including the current image (step 910).

[111] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя определение по первому флагу, используется ли постоянный размер изображения (этап 920).[111] As further shown in FIG. 9, process 900 may include determining from the first flag whether a constant image size is being used (step 920).

[112] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя, на основании первого флага, указывающего, что используется постоянный размер изображения (ДА на этапе 920), декодирование текущего изображения без выполнения передискретизации опорного изображения (этап 930).[112] As further shown in FIG. 9, process 900 may include, based on a first flag indicating that a constant picture size is being used (YES at step 920), decoding the current picture without resampling the reference picture (step 930).

[113] Как дополнительно показано на фиг. 9, на основе первого флага, указывающего, что постоянный размер изображения не используется (НЕТ в блоке 920), процесс 900 может перейти к блоку 940, блоку 950, блоку 960 и блоку 970.[113] As further shown in FIG. 9, based on the first flag indicating that a constant image size is not used (NO at block 920), process 900 may proceed to block 940, block 950, block 960, and block 970.

[114] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя получение второго флага, указывающего, сигнализируется ли размер окна соответствия (этап 940).[114] As further shown in FIG. 9, process 900 may include obtaining a second flag indicating whether the match window size is being signaled (block 940).

[115] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя, на основании второго флага, указывающего, что размер окна соответствия сигнализируется, получение размера окна соответствия (блок 950), определение коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия (блок 960), и выполнение передискретизации опорного изображения для текущего изображения с использованием указанного коэффициента передискретизации (блок 970).[115] As further shown in FIG. 9, process 900 may include, based on a second flag indicating that the match window size is signaled, obtaining the match window size (block 950), determining an oversampling ratio between the current image and the reference picture based on the match window size (block 960), and resampling the reference image for the current image using the specified resampling factor (block 970).

[116] В одном из вариантов осуществления размер окна соответствия может сигнализироваться как по меньшей мере одно расстояние смещения от границы текущего изображения.[116] In one embodiment, the size of the matching window may be signaled as at least one offset distance from the boundary of the current image.

[117] В одном из вариантов осуществления первый флаг может сигнализироваться в наборе параметров последовательности (SPS), а второй флаг может сигнализироваться в одном из SPS и набора параметров изображения (PPS).[117] In one embodiment, the first flag may be signaled in a sequence parameter set (SPS), and the second flag may be signaled in one of an SPS and a picture parameter set (PPS).

[118] В одном из вариантов осуществления второй флаг может сигнализироваться в SPS и может указывать, сигнализируются ли в SPS параметры окна соответствия SPS.[118] In one embodiment, the second flag may be signaled to the SPS and may indicate whether the SPS match window parameters are signaled to the SPS.

[119] В одном из вариантов осуществления, на основании второго флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, размер окна соответствия может быть получен на основании параметров окна соответствия SPS.[119] In one embodiment, based on the second flag indicating that the SPS match window parameters are signaled to the SPS, the match window size may be obtained based on the SPS match window parameters.

[120] В одном из вариантов осуществления, на основании первого флага, указывающего, что размер изображения не является постоянным, процесс 900 может включать в себя получение третьего флага, указывающего, сигнализируются ли в PPS параметры окна соответствия PPS.[120] In one embodiment, based on the first flag indicating that the image size is not constant, process 900 may include obtaining a third flag indicating whether PPS match window parameters are signaled in the PPS.

[121] В одном из вариантов осуществления, на основании второго флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, и третьего флага, указывающего, что параметры окна соответствия PPS не сигнализируются в PPS, размер окна соответствия может быть получен на основании параметров окна соответствия SPS.[121] In one embodiment, based on the second flag indicating that the SPS match window parameters are signaled to the SPS and the third flag indicating that the PPS match window parameters are not signaled to the PPS, the match window size may be obtained based on the parameters SPS compliance windows.

[122] В одном из вариантов осуществления, на основании второго флага, указывающего, что параметры окна соответствия SPS не сигнализируются в SPS, и третьего флага, указывающего, что параметры окна соответствия PPS сигнализируются в PPS, размер окна соответствия может быть получен на основании параметров окна соответствия PPS.[122] In one embodiment, based on the second flag indicating that the SPS match window parameters are not signaled to the SPS and the third flag indicating that the PPS match window parameters are signaled to the PPS, the match window size may be obtained based on the parameters PPS compliance windows.

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

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

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

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

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

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

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

[130] Устройства ввода с человеческим интерфейсом могут включать в себя одно или несколько из (только одно из каждого приведенного): клавиатура 1001, мышь 1002, трекпад 1003, сенсорный экран 1010 и соответствующий графический адаптер 1050, управляющая перчатка, джойстик 1005, микрофон 1006, сканер 1007, камера 1008.[130] Human interface input devices may include one or more of (only one of each): keyboard 1001, mouse 1002, trackpad 1003, touch screen 1010 and associated graphics adapter 1050, control glove, joystick 1005, microphone 1006 , scanner 1007, camera 1008.

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

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

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

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

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

[136] Ядро (1040) может включать в себя один или более центральных процессоров (ЦП) (1041), графических процессоров (ГП) (1042), специализированных программируемых процессоров в виде программируемых пользователем вентильных матриц (ППВМ) (1043), аппаратных ускорителей (1044) для определенных задач и т. д. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ) 1045, оперативным запоминающим устройством (RAM) 1046, внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т. п. 1047, могут быть подключены через системную шину 1048. В некоторых компьютерных системах системная шина 1048 может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т. п. Периферийные устройства могут быть подключены либо непосредственно к системной шине 1048 ядра, либо через периферийную шину 1049. Архитектура периферийной шины включает соединение периферийных компонентов (PCI), USB и т.п.[136] The core (1040) may include one or more central processing units (CPUs) (1041), graphics processing units (GPUs) (1042), specialized field programmable gate array (FPGA) processors (1043), hardware accelerators (1044) for specific tasks, etc. These devices, along with read only memory (ROM) 1045, random access memory (RAM) 1046, internal mass storage such as internal hard drives not accessible to the user, solid state drives (SSD ) etc. 1047 may be connected via the system bus 1048. On some computer systems, the system bus 1048 may be available as one or more physical connectors to allow expansion with additional CPUs, GPUs, etc. Peripherals may be connected either directly to the core system bus 1048 or via a peripheral bus 1049. The peripheral bus architecture includes peripheral component interconnection (PCI), USB, and the like.

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

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

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

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

Claims (35)

1. Способ декодирования кодированного битового потока видео с использованием по меньшей мере одного процессора, причем способ содержит:1. A method for decoding an encoded video bitstream using at least one processor, the method comprising: на основании определения, что постоянный размер изображения не используется в кодированной видеопоследовательности, включающей в себя текущее изображение, получение первого флага, указывающего, сигнализируется ли размер окна соответствия;based on determining that a constant image size is not used in the encoded video sequence including the current image, obtaining a first flag indicating whether the matching window size is signaled; на основании первого флага, указывающего, что сигнализируется размер окна соответствия:based on the first flag indicating that the matching window size is being signaled: получение размера окна соответствия,getting the matching window size, определение коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия, иdetermining an oversampling ratio between the current image and the reference image based on the size of the correspondence window, and выполнение передискретизации опорного изображения на текущем изображении с использованием коэффициента передискретизации;performing resampling of the reference image on the current image using a resampling factor; причем первый флаг сигнализируется в наборе параметров последовательности (SPS) и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.wherein the first flag is signaled in the sequence parameter set (SPS) and indicates whether the SPS match window parameters are signaled in the SPS. 2. Способ по п.1, в котором размер окна соответствия сигнализируется как по меньшей мере одно расстояние смещения от границы текущего изображения.2. The method of claim 1, wherein the size of the matching window is signaled as at least one offset distance from the boundary of the current image. 3. Способ по п.1, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, размер окна соответствия получают на основании параметров окна соответствия SPS.3. The method of claim 1, wherein based on the first flag indicating that the SPS match window parameters are signaled to the SPS, the match window size is obtained based on the SPS match window parameters. 4. Способ по п.1, дополнительно содержащий, на основании определения, что постоянный размер изображения не используется, получение второго флага, указывающего, сигнализируются ли в наборе параметров изображения (PPS) параметры окна соответствия PPS.4. The method of claim 1, further comprising, based on the determination that a constant image size is not used, obtaining a second flag indicating whether PPS match window parameters are signaled in the picture parameter set (PPS). 5. Способ по п.4, в котором, на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS не сигнализируются в PPS, размер окна соответствия получают на основании параметров окна соответствия SPS.5. The method of claim 4, wherein based on the first flag indicating that the SPS match window parameters are signaled to the SPS and the second flag indicating that the PPS match window parameters are not signaled to the PPS, the match window size is obtained based on the parameters SPS compliance windows. 6. Способ по п.4, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS не сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS сигнализируются в PPS, размер окна соответствия получают на основании параметров окна соответствия PPS.6. The method of claim 4, wherein based on the first flag indicating that the SPS match window parameters are not signaled to the SPS and the second flag indicating that the PPS match window parameters are signaled to the PPS, the match window size is obtained based on the window parameters PPS compliance. 7. Устройство для декодирования кодированного битового потока видео, причем устройство содержит:7. A device for decoding an encoded video bitstream, the device comprising: по меньшей мере один элемент памяти, сконфигурированный для хранения программного кода; и at least one memory element configured to store program code; And по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя:at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: первый код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании определения, что постоянный размер изображения не используется в кодированной видеопоследовательности, включающей в себя текущее изображение, получать первый флаг, указывающий, сигнализируется ли размер окна соответствия; иa first acquisition code configured to cause the at least one processor, based on determining that a constant image size is not used in the encoded video sequence including the current image, to obtain a first flag indicating whether the matching window size is signaled; And код выполнения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании первого флага, указывающего, что размер окна соответствия сигнализируется, получать размер окна соответствия, определять коэффициент передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия и выполнять передискретизацию опорного изображения на текущем изображении с использованием коэффициента передискретизации;execution code configured to cause the at least one processor, based on the first flag indicating that the size of the match window is signaled, to obtain the size of the match window, determine a resampling factor between the current image and the reference picture based on the size of the match window, and resample the reference images on the current image using the resampling factor; причем первый флаг сигнализируется в наборе параметров последовательности (SPS) и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.wherein the first flag is signaled in the sequence parameter set (SPS) and indicates whether the SPS match window parameters are signaled in the SPS. 8. Устройство по п.7, в котором размер окна соответствия сигнализируется как по меньшей мере одно расстояние смещения от границы текущего изображения.8. The apparatus of claim 7, wherein the size of the matching window is signaled as at least one offset distance from the boundary of the current image. 9. Устройство по п.7, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, размер окна соответствия получают на основании параметров окна соответствия SPS.9. The apparatus of claim 7, wherein based on the first flag indicating that the SPS match window parameters are signaled to the SPS, the match window size is obtained based on the SPS match window parameters. 10. Устройство по п.7, в котором программный код дополнительно включает в себя второй код получения, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании определения, что постоянный размер изображения не используется, получать второй флаг, указывающий, сигнализируются ли в наборе параметров изображения (PPS) параметры окна соответствия PPS.10. The apparatus of claim 7, wherein the program code further includes a second acquisition code configured to cause the at least one processor, based on a determination that a constant image size is not being used, to obtain a second flag indicating whether the in the Picture Parameter Set (PPS) PPS match window parameters. 11. Устройство по п.10, в котором, на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS не сигнализируются в PPS, размер окна соответствия получают на основании параметров окна соответствия SPS.11. The apparatus of claim 10, wherein based on the first flag indicating that the SPS match window parameters are signaled to the SPS and the second flag indicating that the PPS match window parameters are not signaled to the PPS, the match window size is obtained based on the parameters SPS compliance windows. 12. Устройство по п.10, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS не сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS сигнализируются в PPS, размер окна соответствия получают на основании параметров окна соответствия PPS.12. The apparatus of claim 10, wherein based on the first flag indicating that the SPS match window parameters are not signaled to the SPS and the second flag indicating that the PPS match window parameters are signaled to the PPS, the match window size is obtained based on the window parameters PPS compliance. 13. Способ кодирования видео с использованием по меньшей мере одного процессора, причем способ содержит:13. A method for encoding video using at least one processor, the method comprising: на основании определения, что постоянный размер изображения не используется, сигнализирование размера окна соответствия;based on determining that a constant image size is not used, signaling a matching window size; кодирование текущего изображения для генерирования кодированной видеопоследовательности, причем кодированная видеопоследовательность включает в себя текущее изображение и первый флаг, указывающий, сигнализируется ли размер окна соответствия;encoding the current image to generate an encoded video sequence, the encoded video sequence including the current image and a first flag indicating whether a matching window size is signaled; причем первый флаг сигнализируется в наборе параметров последовательности (SPS) и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.wherein the first flag is signaled in the sequence parameter set (SPS) and indicates whether the SPS match window parameters are signaled in the SPS. 14. Устройство кодирования видео, причем устройство содержит:14. A video encoding device, the device comprising: по меньшей мере один элемент памяти, сконфигурированный для хранения программного кода; иat least one memory element configured to store program code; And по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя:at least one processor configured to read the program code and operate in accordance with the instructions of the program code, the program code including: код сигнализирования, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании определения, что постоянный размер изображения не используется, сигнализировать размер окна соответствия;signaling code configured to cause the at least one processor, based on a determination that a constant image size is not used, to signal a matching window size; код кодирования, сконфигурированный так, чтобы предписывать по меньшей мере одному процессору кодировать текущее изображение для генерирования кодированной видеопоследовательности, причем кодированная видеопоследовательность включает в себя текущее изображение и первый флаг, указывающий, сигнализируется ли размер окна соответствия;encoding code configured to cause the at least one processor to encode the current image to generate an encoded video sequence, the encoded video sequence including the current image and a first flag indicating whether a match window size is signaled; причем первый флаг сигнализируется в наборе параметров последовательности (SPS) и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.wherein the first flag is signaled in the sequence parameter set (SPS) and indicates whether the SPS match window parameters are signaled in the SPS. 15. Невременный машиночитаемый носитель, хранящий инструкции, причем инструкции содержат: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам выполнять способ по любому из пп.1-6.15. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of the apparatus for decoding an encoded video bitstream, cause the one or more processors to perform the method of any one of claims 1 to 6. 16. Невременный машиночитаемый носитель, хранящий инструкции, причем инструкции содержат: одну или более инструкций, которые при исполнении одним или более процессорами устройства для декодирования кодированного битового потока видео предписывают одному или более процессорам выполнять способ по п.13.16. A non-transitory computer-readable medium storing instructions, the instructions comprising: one or more instructions that, when executed by one or more processors of the apparatus for decoding an encoded video bitstream, cause the one or more processors to perform the method of claim 13.
RU2023109621A 2019-09-20 2020-09-10 Signalling for reference image oversampling with indication of constant window size in video bit stream RU2815415C2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/903,601 2019-09-20
US17/009,979 2020-09-02

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
RU2021127639A Division RU2794483C1 (en) 2019-09-20 2020-09-10 Reference picture oversampling signalling with indication of constant window size in video bitstream

Publications (2)

Publication Number Publication Date
RU2023109621A RU2023109621A (en) 2023-04-19
RU2815415C2 true RU2815415C2 (en) 2024-03-14

Family

ID=

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HENDRY SEUNGWOOK HONG еt al, AHG8: Support for reference picture resampling - handling of picture size signalling, conformance windows, and DPB management, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O0133-v1, 15th Meeting: Gothernburg, 3-12 July 2019. TSUI-SHAN CHANG et al, AHG8: Support for reference picture resampling - handling of resampling, TMVP, DMVR, and BDOF, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG, JVET-O0134-v1, 15th Meeting: Gothernburg, 3-12 July 2019. BENJAMIN BROSS et al, Versatile Video Coding (Draft 5), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N1001-v8, 14th Meeting: Geneva, 19-27 Mar. 2019. J. SAMUELSSON еt al, AHG 8: Adaptive Resolution Change (ARC) High-Level Syntax (HLS), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O0204, 15th Meeting: Gothenburg, 3-12 July 2019. STEPHAN WENGER еt al, AHG8: Sig *

Similar Documents

Publication Publication Date Title
AU2023201375B2 (en) Signaling of adaptive picture size in video bitstream
AU2020351096B2 (en) Signaling of reference picture resampling with constant window size indication in video bitstream
AU2020356392B2 (en) Method for reference picture resampling with offset in video bitstream
AU2020348402B2 (en) Signaling of scalability parameters in video bitstream
AU2023203938B2 (en) Signaling of reference picture resampling with resampling picture size indication in video bitstream
US20200404303A1 (en) Method for support of scalability with adaptive picture resolution
RU2815415C2 (en) Signalling for reference image oversampling with indication of constant window size in video bit stream
RU2794483C1 (en) Reference picture oversampling signalling with indication of constant window size in video bitstream
RU2782247C1 (en) Signalling of oversampling of the reference image indicating the size of the oversampled image in a video bitstream
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
RU2772795C1 (en) Reference picture resampling method with offset in video bitstream