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

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

Info

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

Links

Abstract

FIELD: video encoding and decoding.
SUBSTANCE: invention relates to encoding and decoding video, and more specifically to signalling the size of an image or parts of an image, which can vary from image to image. Disclosed is a method of decoding an encoded video bitstream, which includes: obtaining a first flag indicating whether a constant image size is used in an encoded video sequence including a current image; based on a 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 the constant size of the image is not used, obtaining a second flag indicating whether the size of the matching window is signalled; based on the second flag indicating that the matching window size is signalled, obtaining the matching window size, determining the resampling coefficient between the current image and the reference image based on the size of the matching window and performing resampling of the reference image on the current image using the resampling coefficient. First flag is signalled in the sequence parameter set (SPS) and indicates whether the SPS matching window parameters are signalled in the SPS.
EFFECT: high efficiency of encoding and decoding a video bit stream.
17 cl, 10 dwg, 1 tbl

Description

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

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

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

[1] Раскрытый предмет изобретения относится к кодированию и декодированию видео, а более конкретно, к сигнализированию размера изображения или частей изображения, которые могут меняться от изображения к изображению или от части изображения к части изображения.[1] The disclosed subject matter 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] Video encoding and decoding using inter-frame prediction with motion compensation is known. Uncompressed digital video may consist of a series of images, each image having a spatial dimension of, for example, 1920 x 1080 luma samples and associated chroma samples. The series of images may have a fixed or variable picture rate (also known informally as a frame rate), for example, 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 luma sample resolution at 60 Hz frame rate) requires a bandwidth of close to 1.5 Gbps. An hour of such video requires over 600 GB of disk space.

[3] Одной из целей кодирования и декодирования видео может быть уменьшение избыточности входного видеосигнала посредством сжатия. Сжатие может помочь снизить вышеупомянутые требования к полосе пропускания или пространству для хранения, в некоторых случаях на два порядка или более. Могут использоваться как сжатие без потерь, так и сжатие с потерями, а также их комбинация. Сжатие без потерь относится к методам, при которых из сжатого исходного сигнала может быть восстановлена точная копия исходного сигнала. При использовании сжатия с потерями восстановленный сигнал может не быть идентичным исходному сигналу, но искажение между исходным и восстановленным сигналами достаточно мало, чтобы сделать восстановленный сигнал пригодным для предполагаемого приложения. В случае видео широко применяется сжатие с потерями. Допустимая степень искажения зависит от приложения; например, для пользователей определенных потребительских приложений потоковой передачи допустимы более высокие искажения, чем для пользователей приложений вещательного телевидения. Достижимая степень сжатия может отражать следующее: более высокое разрешаемое/допустимое искажение может привести к более высокой степени сжатия. [3] One of the goals of video encoding and decoding can be to reduce the redundancy of the input video signal through compression. Compression can help reduce the above-mentioned bandwidth or storage space requirements, in some cases by two orders of magnitude or more. Both lossless and lossy compression, as well as 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 source signal. With lossy compression, 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 degree of distortion tolerable depends on the application; for example, higher distortion can be tolerated by users of certain consumer streaming applications than by users of broadcast television applications. The achievable compression ratio can reflect the following: a higher allowable/tolerable distortion can lead to a higher compression ratio.

[4] Видеокодер и видеодекодер могут использовать методы из нескольких широких категорий, включая, например, компенсацию движения, преобразование, квантование и энтропийное кодирование, некоторые из которых будут представлены ниже. [4] A 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 decoders have tended to operate with 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, the system design is known to vary the horizontal resolution (and hence the picture size) depending on factors such as scene activity, but only for I-pictures, and hence typically for GOPs. Resampling of reference pictures to use different resolutions in CVS is known, for example, from ITU-T Rec. H.263, Annex P. However, here the picture size is not changed, only the reference pictures are resampled, with the result that potentially only parts of the picture canvas may be used (in the case of downsampling) or only parts of the scene may be captured (in the case of upsampling). Furthermore, H.263 Annex Q allows resampling of an individual macroblock 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] Changing the image size of predicted images has become more common in modern video coding. For example, VP9 allows resampling the reference image and changing the resolution of the entire image. Similarly, some proposals made for VVC (including, e.g., Hendry, et. al., “On adaptive resolution change (ARC) for VVC,” JVT paper JVET-M0135-v1, January 9-19, 2019, incorporated herein in its entirety) allow resampling entire reference images to a different - higher or lower - resolution. This paper proposes to encode different resolution candidates in a sequence parameter set and reference them using syntax elements for each image in the picture parameter set.

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

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

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

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

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

[10] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых: [10] Additional features, nature 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 shows a schematic illustration of a simplified block diagram of a communication system according to an embodiment.

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

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

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

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

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

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

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

[19] На фиг. 9 показана блок-схема примерного процесса декодирования кодированного битового потока видео в соответствии с вариантом осуществления.[19] Fig. 9 shows a flow chart of an exemplary process for decoding an encoded video bitstream according to an embodiment.

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

Осуществление изобретенияImplementation of 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, a first terminal (110) may encode video data at a local location for transmission to another terminal (120) via the network (150). A second terminal (120) may receive the encoded video data of the other terminal from the network (150), decode the encoded data, and display the reconstructed video data. Unidirectional data transmission may be common in multimedia service applications and the like.

[22] На фиг.1 показана вторая пара терминалов (130, 140), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (130, 140) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (150). Каждый терминал (130, 140) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.[22] Fig. 1 shows a second pair of terminals (130, 140) that support bidirectional transmission of encoded video, which may occur, for example, during a video conference. For bidirectional data transmission, each terminal (130, 140) may encode video data captured at a local location for transmission to the other terminal via a network (150). Each terminal (130, 140) may also receive encoded video data transmitted by the other terminal, may decode the encoded data, and may 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 may not be limited thereto. Embodiments of the present disclosure find application in laptop computers, tablet computers, media players and/or specialized videoconferencing equipment. The network (150) represents any number of networks that transmit encoded video data between the terminals (110-140), including, for example, wired and/or wireless communication networks. The communication network (150) may exchange data in circuit-switched and/or packet-switched channels. Representative networks include telecommunication networks, local area networks, wide area networks and/or the Internet. For the purposes of the present discussion, the architecture and topology of the network (150) may be immaterial to the operation of the present disclosure unless explained below herein.

[24] На фиг.2 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и видеодекодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее. [24] Fig. 2 illustrates, as an example of 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, videoconferencing, digital television, storage of compressed video 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, creating, for example, a stream (202) of uncompressed video samples. This sample stream (202), depicted with a thick line to emphasize the large amount of data compared to encoded video bitstreams, may be processed by an encoder (203) connected to the camera (201). The encoder (203) may include hardware, software, or a combination of both to include or implement aspects of the disclosed subject matter, as described in more detail below. The encoded video bitstream (204), depicted with a thin line to emphasize the smaller amount of data compared to the sample stream, may be stored on the streaming server (205) for future use. One or more streaming clients (206, 208) may access a streaming server (205) to retrieve copies (207, 209) of an 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 may be displayed on a display (212) or other visualization device (not shown). In some streaming systems, the video bitstreams (204, 207, 209) may be encoded in accordance with certain video encoding/compression standards. Examples of these standards include ITU-T Recommendation H.265. A video encoding standard informally known as universal video coding or VVC is under development. The disclosed subject matter may be used in the context of VVC.

[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 coded video sequences to be decoded by the decoder (210); in the same or another embodiment, one coded video sequence at a time, where the decoding of each coded video sequence is independent of the other coded video sequences. The coded video sequence may be received from a channel (312), which may be a hardware/software connection to a storage device in which the coded video data is stored. The receiver (310) may receive the coded video data with other data, such as coded audio data and/or auxiliary data streams, which may be sent to their respective using entities (not shown). The receiver (310) may separate the coded video sequence from the other data. To combat jitter in the network, a buffer memory (315) can be connected between the receiver (310) and the entropy decoder/parser (320) (hereinafter referred to as the "parser"). When the receiver (310) receives data from a storage/forwarding device with sufficient bandwidth and controllability or from an isosynchronous network, the buffer memory (315) may not be needed or may be small. For use in high-quality packet networks, such as the Internet, a buffer (315) may be needed, 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 for controlling a rendering device, such as a display (212), which is not an integral part of the decoder but may be connected to it, as was shown in Fig. 3. The control information for the rendering device(s) may be in the form of additional enhancement information (SEI messages) or fragments of a video suitability information (VUI) parameter set (not shown). The parser (320) may parse/entropy decode the received encoded video sequence. The coding of the coded video sequence may be performed in accordance with a video coding technology or standard and may follow principles well known to those skilled in the art, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The parser (320) may extract from the coded video sequence a set of subgroup parameters for at least one of the pixel subgroups in the video decoder based on at least one parameter corresponding to the group. The 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 may indicate a rectangular area of CUs/CTUs in a specific column and row of tiles in a picture. A brick may indicate a rectangular area of CUs/CTU rows within a specific tile. A slice may refer to one or more image bricks contained in a NAL unit. A sub-image may refer to a rectangular region of one or more slices in an image. The entropy decoder/parser may also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, and so on.

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

[30] Восстановление символов (321) может включать в себя множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: внешнее и внутреннее изображение, внешний и внутренний блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации подгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (320). Поток такой управляющей информации подгруппы между парсером (320) и множеством модулей ниже не показан для ясности. [30] The symbol recovery (321) may include a plurality of different modules depending on the type of the encoded video image or its parts (such as: outer and inner image, outer and inner block) and other factors. Which modules are involved and how can be controlled using subgroup control information that has been 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 below is not shown for clarity.

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

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

[33] В некоторых случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (352) внутрикадрового предсказания. В некоторых случаях модуль (352) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (358). Агрегатор (355), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (352) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (351) масштабирования/обратного преобразования. [33] In some cases, the output samples of the scaling/inverse transform module (351) may relate to an intra-coded 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 the intra-prediction module (352). In some cases, the intra-prediction module (352) generates a block of the same size and shape as the block being reconstructed, using surrounding already reconstructed information extracted from the current (partially reconstructed) image (358). The aggregator (355), in some cases, adds for each sample the prediction information generated by the intra-prediction module (352) to the information of the output samples provided by the scaling/inverse transform module (351).

[34] В других случаях выходные отсчеты модуля (351) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (353) предсказания с компенсацией движения может обращаться к памяти (357) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (321), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (355) к выходу модуля масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (321), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.[34] In other cases, the output samples of the scaling/inverse transform module (351) may relate to an inter-coded and potentially motion-compensated block. In such a case, the motion-compensated prediction module (353) may access the reference picture memory (357) to retrieve the samples used for prediction. After motion compensation of the selected samples in accordance with the symbols (321) related to the block, these samples may be added by the aggregator (355) to the output of the scaling/inverse transform module (here called residual samples or residual signal) to generate information about the output samples. The addresses in the reference picture memory from which the motion-compensated prediction module selects the 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 involve interpolation of sample values retrieved from reference image memory, when using precise sub-sample motion vectors, motion vector prediction mechanisms, and so on.

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

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

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

[38] Видеодекодер 210 может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как ITU-T Rec. H.265. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического опорного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности. [38] The 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 coded video sequence may conform to the syntax defined by the video compression technology or standard used, in the sense that it conforms to the syntax of the video compression technology or standard as specified in the video compression technology document or standard, and in particular in their profile document. Also, for conformance, it may be necessary that the complexity of the coded video sequence be within the limits defined by the level of the video compression technology or standard. In some cases, the levels limit the maximum image size, the maximum frame rate, the maximum reconstruction sampling rate (measured, for example, in megasamples per second), the maximum size of the reference image, and so on. The limits set by the levels may in some cases be further limited by the specifications of a hypothetical reference decoder (HRD) and metadata for managing the HRD buffer transmitted in the coded video sequence.

[39] В варианте осуществления приемник (310) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (210) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.[39] In an embodiment, the receiver (310) may receive additional (redundant) data with the encoded video. The 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 a source video sequence for encoding by the encoder (203) in the form of a digital stream of video samples, which may have any suitable bit depth (e.g.: 8 bits, 10 bits, 12 bits, ...), any color space (e.g. BT.601 Y CrCB, RGB, ...) and any suitable sample structure (e.g. 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 videoconferencing system, the video source (203) may be a camera that captures local image information in the form of a video sequence. The video data may be provided as a plurality of individual images that convey motion when viewed sequentially. The images themselves may be organized as a spatial array of pixels, where each pixel may contain one or more samples, depending on the sample structure used, the color space, etc. A person skilled in the art can easily understand the relationship between pixels and samples. The description below is focused on samples.

[43] Согласно варианту осуществления кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (450), поскольку они могут относиться к видеокодеру (203), оптимизированному для определенной конструкции системы.[43] According to an embodiment, the encoder (203) can encode and compress the images of the original video sequence into the encoded video sequence (443) in real time or with any other time constraints, as required by the application. Ensuring 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 shown for clarity. The parameters set by the controller can include parameters related to rate control (picture skip, quantizer, lambda value of rate-distortion optimization methods, ...), image size, group of pictures (GOP) layout, maximum motion vector search range, and so on. A person skilled in the art can easily determine other functions of the controller (450), as they can relate to a 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 will readily recognize as a "coding loop". As a simplified description, the coding loop may consist of a coding portion of the encoder (430) (hereinafter "source encoder") (responsible for generating symbols based on the input picture to be encoded and the reference picture(s)), and a (local) decoder (433) embedded in the encoder (203) that reconstructs the symbols to generate sample data that a (remote) decoder can also generate (since any compression between the symbols and the encoded video bitstream is lossless in the video compression technologies discussed in the disclosed subject matter). This reconstructed sample stream is input into a reference picture memory (434). Since decoding the symbol stream produces bit-accurate results regardless of the location of the decoder (local or remote), the contents of the reference picture buffer are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction part of the encoder "sees" as reference picture samples exactly the same sample values that the decoder would "see" if the prediction was used during decoding. This fundamental principle of reference picture synchronicity (and the resulting drift if synchronicity cannot be maintained, e.g. due to channel errors) is well known to those 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 has already been described in detail above in the description of Fig. 3. Referring briefly also to Fig. 4, however, since the symbols are available and the encoding/decoding of the symbols into the coded video sequence by the entropy encoder (445) and the parser (320) can be performed without loss, the entropy decoding parts of the decoder (210), including the channel (312), the receiver (310), the buffer (315) and the parser (320), cannot be completely implemented in the local decoder (433).

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

[47] В качестве части своей работы кодер (430) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (432) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.[47] As part of its operation, the source encoder (430) may perform motion-compensated predictive coding, which encodes an input frame with prediction by reference to one or more previously encoded frames from a video sequence, which have been designated as "reference frames." In this way, the coding engine (432) encodes differences between blocks of pixels of the input frame and blocks of pixels of the reference frame(s), which may 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 the encoded video data of frames, which may be designated as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may preferably be lossy processes. When the encoded video data may be decoded in the video decoder (not shown in Fig. 4), the reconstructed video sequence may typically be a copy of the original video sequence with some errors. The local video decoder (433) replicates the decoding processes that may be performed by the video decoder on the reference frames, and may cause the reconstructed reference frames to be stored in the reference picture cache (434). In this way, the encoder (203) may locally store copies of the reconstructed reference frames, which have common content, as reconstructed reference frames, which will be received by the video decoder at the far end (in the absence of transmission errors).

[49] Предиктор (435) может выполнять поиски с предсказанием для механизма (432) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (435) может искать в памяти (434) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (435) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (435), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (434) опорных изображений.[49] The predictor (435) may perform predictive searches for the encoding engine (432). That is, for a new image to be encoded, the predictor (435) may search the reference image memory (434) for sample data (as candidates for blocks of reference pixels) or for certain metadata, such as motion vectors of reference images, block shapes, and so on, that may serve as suitable prediction references for new images. The predictor (435) may operate on a block-by-pixel sample 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 references 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-mentioned functional modules may be subjected to entropy encoding in an entropy encoder (445). The entropy encoder converts the symbols generated by the various functional modules into an encoded video sequence by lossless compression of the symbols according to technologies known to those skilled in the art, such as Huffman encoding, variable length encoding, arithmetic encoding, and so on.

[52] Передатчик (440) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (445), чтобы подготовить ее к передаче через канал (460) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (440) может обеспечивать слияние кодированных видеоданных из видеокодера (430) с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны). [52] The transmitter (440) may buffer the encoded video sequence(s) created by the entropy encoder (445) to prepare it for transmission via the 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 provide merging of the encoded video data from the video encoder (430) with other data to be transmitted, such as encoded audio data and/or auxiliary data streams (sources not shown).

[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 to a specific encoded image type, which may affect the encoding methods that may be applied to the corresponding image. For example, images may often be assigned to one of the following frame types:

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

[55] Изображение с предсказанием (P-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока. [55] A predictive image (P-image) 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 bidirectionally predicted image (B-image) 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-predicted images may use more than two reference images and associated metadata to reconstruct a single block.

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

[58] Видеокодер (203) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, такой как Рекомендация МСЭ-Т H.265. В своей работе видеокодер (203) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео. [58] The video encoder (203) may perform encoding operations in accordance with a predetermined video encoding technology or standard, such as ITU-T Recommendation H.265. In its 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 conform to a syntax specified by the video encoding technology or standard used.

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

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

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

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

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

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

[65] На фиг. 5 показаны несколько вариантов осуществления сигнализирования параметров RPR/ARC. Как отмечено для каждого из вариантов осуществления, они могут иметь определенные преимущества и определенные недостатки с точки зрения эффективности кодирования, сложности и архитектуры. Стандарт или технология кодирования видео могут выбрать один или более из этих вариантов осуществления или вариантов, известных из уровня техники, для передачи параметров RPR/ARC. Варианты осуществления могут не быть взаимоисключающими и, возможно, могут быть взаимозаменяемыми в зависимости от потребностей приложения, используемых стандартов или выбора кодера. [65] FIG. 5 shows several embodiments of signaling RPR/ARC parameters. 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 embodiments known in the art for transmitting 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 the X and Y dimensions

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

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

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

[71] координаты «деформации», подобные тем, которые используются в Приложении P H.263, опять же с подходящей степенью детализации, как описано выше. Приложение P H.263 определяет один эффективный способ кодирования таких координат деформации, но, возможно, также разрабатываются другие, потенциально более эффективные способы. Например, реверсивное кодирование Хаффмана с переменной длиной координат деформации согласно Приложению P может быть заменено двоичным кодированием подходящей длины, где длина двоичного кодового слова может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы учесть «деформацию» за пределами границ максимального размера изображения.[71] "warp" coordinates similar to those used in Annex P of H.263, again with a suitable level of granularity as described above. Annex P of H.263 defines one efficient way of encoding such warp coordinates, but other, potentially more efficient ways may also be under development. For example, the variable-length reversible Huffman coding of the warp coordinates according to Annex P could be replaced by a binary coding of a suitable length, where the length of the binary codeword could, for example, be derived from the maximum image size, possibly multiplied by a certain factor and offset by a certain value to account for "warp" beyond the boundaries of the maximum image size.

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

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

ТАБЛИЦА 1TABLE 1

Кодовое словоCode word Экспоненциальный код Голомба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 developed according to the needs of the application and the capabilities of the upsampling and downsampling mechanisms available in the video compression technology or standard. The table can be expanded to include more values. The values can also be represented by entropy coding mechanisms other than Exponential Golomb codes, for example using binary coding. This can have certain advantages when the resampling factors are of interest outside the video processing mechanisms themselves (primarily the encoder and decoder), for example by MANE. It should be noted that for situations where resolution changes are not required, the Exponential Golomb code can be chosen, which is short; in the table above it is only one bit. This can have an advantage in coding efficiency compared to using binary codes for the most common case.

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

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

[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 picture header (501), in particular in the H.263 PLUSPTYPE header extension (503). This may be a reasonable design choice when a) there is an available picture header and b) frequent changes in the ARC information are expected. However, the overhead of using H.263 style transmission may be quite high, and the scaling factors may not be relative to picture boundaries, since the picture header may be temporary.

[78] В том же или другом варианте осуществления передача параметров ARC может соответствовать подробному примеру, как показано на фиг.6А-6В. Фиг. 6A-6B изображают синтаксические диаграммы в типе представления с использованием нотации, которая примерно соответствует программированию в стиле C, например, используемому в стандартах кодирования видео, по меньшей мере, с 1993 года. Строки, выделенные жирным шрифтом, указывают на элементы синтаксиса, присутствующие в битовом потоке, строки без жирного шрифта часто указывают на поток управления или установку переменных. [78] In the same or another embodiment, the passing of ARC parameters may correspond to a detailed example as shown in Figs. 6A-6B. Figs. 6A-6B depict syntax diagrams in a representation type using a notation that roughly corresponds to C-style programming, such as has been 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 variable setting.

[79] Как показано на фиг.6А, заголовок группы тайлов (601) в качестве примерной синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать, кодированный с помощью экспоненциального кода Голомба элемент синтаксиса переменной длины dec_pic_size_idx (602) (выделен жирным шрифтом). Наличие этого элемента синтаксиса в заголовке группы тайлов может быть ограничено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в той точке, где он встречается на синтаксической диаграмме. Тот факт, используется ли адаптивное разрешение для этого изображения или его частей, можно передавать в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это передается в наборе параметров последовательности, как показано ниже.[79] As shown in Fig. 6A, the tile group header (601) may conventionally contain, as an exemplary syntactic structure of a header applicable to a (possibly rectangular) portion of an image, an Exponential Golomb coded variable-length syntax element dec_pic_size_idx (602) (shown in bold). The presence of this syntax element in the tile group header may be constrained by the use of adaptive resolution (603) - here the flag value is not shown 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 its portions may be conveyed in any high-level syntactic structure inside or outside the bitstream. In the example shown, it is conveyed in the sequence parameter set, as shown below.

[80] На фиг.6В показана также выборка набора (610) параметров последовательности. Первый показанный элемент синтаксиса - это adaptive_pic_resolution_change_flag (611). При значении истина, этот флаг может указывать на использование адаптивного разрешения, которое, в свою очередь, может требовать определенной управляющей информации. В примере такая управляющая информация присутствует условно на основе значения флага на основе оператора if() в наборе (612) параметров и заголовке (601) группы тайлов.[80] Fig. 6B also shows a selection 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 an adaptive resolution, which in turn may require certain control information. In the example, such control information is conditionally present based on the value of the 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, the output resolution in units of samples (613) is encoded in this example. Item number 613 refers to both output_pic_width_in_luma_samples and output_pic_height_in_luma_samples, which together may define the output image resolution. Certain restrictions on either value may be defined elsewhere in the video coding technology or standard. For example, a level definition may limit the number of total output samples that may be the product of the values of these two syntax elements. Also, certain video coding technologies or standards, or external technologies or standards such as system standards, may limit the range of the numbering (e.g., one or both dimensions must be divisible by a power of 2) or the ratio of the width to the height (e.g., the width and height must 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 appropriate for the encoder to instruct the decoder to use a specific reference picture size, rather than implicitly assuming that this size is the output picture size. In this example, the reference_pic_size_present_flag syntax element (614) conveys the conditional presence of the dimensions (615) of the reference picture (again, the position number refers to both the width and the height).

[83] Наконец, показана таблица возможной ширины и высоты изображения декодирования. Такая таблица может быть выражена, например, указанием таблицы (num_dec_pic_size_in_luma_samples_minus1) (616). «Minus1» может относиться к интерпретации значения этого элемента синтаксиса. Например, если кодированное значение равно нулю, присутствует одна запись в таблице. Если значение равно пяти, присутствуют шесть записей таблицы. Затем для каждой «строки» в таблице в синтаксис (617) включаются ширина и высота декодированного изображения.[83] Finally, a table of possible widths and heights of the decoded image is shown. Such a table can be expressed, for example, by specifying a table (num_dec_pic_size_in_luma_samples_minus1) (616). "Minus1" can refer to the interpretation of the value of this syntax element. For example, if the encoded value is zero, there is one table entry. 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] The table entries (617) provided can be indexed using the dec_pic_size_idx (602) syntax element in the tile group header, thereby allowing different decoded sizes - essentially scaling factors - for each tile group.

[85] Некоторые технологии или стандарты кодирования видео, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (передаваемую совершенно иначе, чем в раскрытом объекте изобретения) в сочетании с временной масштабируемостью, чтобы обеспечить пространственную масштабируемость. В частности, некоторые опорные изображения могут подвергаться повышающей дискретизации с использованием технологий ARC-стиля до более высокого разрешения для формирования базы слоя пространственного улучшения. Эти изображения с повышенной дискретизацией можно улучшить, используя нормальные механизмы предсказания с высоким разрешением, чтобы добавить деталей.[85] Some video coding technologies or standards, such as VP9, support spatial scalability by implementing certain forms of reference image resampling (transmitted in a completely different manner than in the disclosed subject matter) in combination with temporal scalability to provide spatial scalability. In particular, certain reference images may be upsampled using ARC-style techniques to a higher resolution to form the basis of a spatial enhancement layer. These upsampled images may be enhanced using normal high-resolution prediction mechanisms 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 a 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 advantages for certain system configurations; for example, the existing Selected Forwarding Units (SFU) architecture, created and optimized for selected temporal layers forwarded based on the temporal identifier value of a NAL unit header, may be used without modification for scalable environments. In order to make this possible, there may be a requirement for a mapping between the coded picture size and the temporal layer indicated by the temporal identifier field in the NAL unit header.

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

[88] В вариантах осуществления не все отсчеты восстановленного изображения предназначены для вывода. Кодер может указать прямоугольную часть изображения, предназначенную для вывода, с использованием окна соответствия. Окно соответствия может быть описано или обозначено, например, посредством смещения влево и вправо от краев изображения, как определено размером изображения. Определенные варианты использования могут быть идентифицированы, когда окна соответствия могут иметь значение, в том числе растянутая развертка, пространственная сборка видов в системах Multiview или системы 360, где окна соответствия могут указывать на одну из нескольких поверхностей кубической карты для вывода. [88] In embodiments, not all samples of the reconstructed image are intended for output. The encoder may specify a rectangular portion of the image intended for output using a correspondence window. The correspondence window may be described or designated, 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 may be identified where correspondence windows may be important, including stretched scanning, spatial assembly of views in Multiview systems, or 360 systems, where correspondence windows may point to one of several surfaces of a cube map 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, may harm coding efficiency, the availability of such parameters may be restricted by a flag.

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

[91] В вариантах осуществления, флаг, который указывает, имеет ли декодированное / выводимое изображение тот же самый размер и коэффициент передискретизации равен 1 в кодированной видеопоследовательности (CVS) /битовом потоке, может сигнализироваться в наборе высокоуровневых параметров, таком как набор параметров декодирования (DPS), набор параметров видео (VPS) или набор параметров последовательности (SPS). Флаг может использоваться для согласования сеанса для потоковой передачи видео или конфигурации декодера и настройки отображения.[91] In embodiments, a flag that indicates whether the decoded/output image has the same size and the 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), a video parameter set (VPS), or a sequence parameter set (SPS). The flag may be used to negotiate a session for video streaming or to configure a decoder 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, the constant_pic_size_flag (704) flag equal to 1 may indicate that the sizes of the images in the CVS are the same. However, the constant_pic_size_flag equal to 0 may indicate that the image sizes of the images in the CVS may or may not be the same. If the value of constant_pic_size_flag is 1, the sps_conformance_window_flag (705) flag may be present in the SPS (701). However, the sps_conformance_window_flag equal to 1 may indicate that the conformance crop window offset parameters follow in an appropriate position, such as later in the SPS. However, the sps_conformance_window_flag equal to 0 may indicate that the conformance crop window offset parameters are missing.

[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 point to image samples in the CVS that are output from the image decoding process as a rectangular region 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 where 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 not present, 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 inferred to be 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 define the width of each decoded picture 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 absent, the value of pic_width_in_luma_samples may be derived as equal to pic_width_max_in_luma_samples. Wherein, pic_height_in_luma_samples (803) may indicate the height of each decoded picture based on the PPS in units of luma 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 absent, the value of pic_height_in_luma_samples may be inferred 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, conformance_window_flag (804) equal to 1 may indicate that the parameters of the conformity cropping window offset follow in a suitable place, for example, following in the PPS (801). In this case, conformance_window_flag equal to 0 may indicate that the parameters of the conformity cropping window offset are absent. In this case, conf_win_left_offset (805), conf_win_right_offset (806), conf_win_top_offset (807) and conf_win_bottom_offset (808) may indicate the samples of images based on the PPS, which are output from the decoding process, as a rectangular area specified in the coordinates of the image for output.

[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 absent, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset may be inferred to be 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 matching crop window may comprise brightness 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) may be less than pic_width_in_luma_samples, and the value of SubHeightC * (conf_win_top_offset + conf_win_bottom_offset) may be less than pic_height_in_luma_samples.

[100] Переменные PicOutputWidthL и PicOutputHeightL могут быть получены, как показано в Уравнении 1 и Уравнении 2 ниже:[100] The variables PicOutputWidthL and PicOutputHeightL 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 data for this process may be a luma location (xSb, ySb) indicating the upper left sample of the current coding sub-unit relative to the upper left luma sample of the current picture, a variable sbWidth indicating the width of the current coding sub-unit, a variable sbHeight indicating the height of the current coding sub-unit, a motion vector offset mvOffset, a refined motion vector refMvLX, a selected array of reference picture samples refPicLX, an index of the half-sample interpolation filter hpelIfIdx, a bidirectional optical flow flag bdofFlag, and a variable cIdx indicating the index of the color component of the current block.

[103] Выходными данными этого процесса могут быть: массив predSamplesLX (sbWidth + brdExtSize) x (sbHeight + brdExtSize) значений отсчетов предсказания.[103] The output of this process might be: an array predSamplesLX (sbWidth + brdExtSize) x (sbHeight + brdExtSize) of 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 PicOutputWidthL of the reference image in luminance samples. The variable fRefHeight can be set equal to PicOutputHeightL of the reference image in luminance samples. The motion vector mvLX can be set equal to (refMvLX - mvOffset).

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

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

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

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

vert_scale_fp = ((fRefHeight<<14)+(PicOutputHeightL vert_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 specified in integer sample units, and (xFracL,yFracL) may be the offset specified in 1/16 sample units. These variables can be used in this section to specify fractional sample locations within the refPicLX arrays of reference samples.

Верхняя левая координата ограничивающего блока для заполнения опорным отсчетом (xSbIntL,ySbIntL) может быть установлена равной (xSb+(mvLX[0]>>4),ySb+(mvLX[1]>>4)).The upper left coordinate of the bounding box for filling with the reference sample (xSbIntL,ySbIntL) 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 samples 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 (refxSbL, refySbL) and (refxL,refyL) be the luminance locations pointed to by the motion vector (refMvLX, refMvLX), given in units of 1/16 counts. The variables refxSbL, refxL, refySbL, and refyL can be obtained as shown in equations 6-9 below:

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

refxL=((Sign(refxSb)*((Abs(refxSb)+128)>>8)
+ xL*((hori_scale_fp+8)>>4))+32)>>6(Уравнение 7)
refxL=((Sign(refxSb)*((Abs(refxSb)+128)>>8)
+ xL*((hori_scale_fp+8)>>4))+32)>>6(Equation 7)

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

refyL=((Sign(refySb)*((Abs(refySb)+128)>>8)+yL*
((vert_scale_fp+8)>>4))+32)>>6(Уравнение 9)
refyL=((Sign(refySb)*((Abs(refySb)+128)>>8)+yL*
((vert_scale_fp+8)>>4))+32)>>6(Equation 9)

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

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

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

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

yFracL=refyL & 15 (Уравнение 13)yFracL=refyL & 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 predicted luma sample value predSamplesLX[xL][yL]may be obtained by invoking the integer luma sample extraction process as specified in the relevant clause of the video coding specification, with (xIntL+(xFracL>>3)-1),yIntL+(yFracL>>3)-1) and refPicLX as input.

1. xL равно 0.1. xL is equal to 0.

2. xL равно sbWidth+1.2. xL is equal to sbWidth+1.

3. yL равно 0.3. yL is equal to 0.

4. yL равен sbHeight + 1.4. yL 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 predicted luminance sample value predSamplesLX[xL][yL] can be obtained by invoking the 8-way luminance sample interpolation filtering process as specified in the corresponding clause of the video coding specification with (xIntL - (brdExtSize > 0 ? 1:0),yIntL - (brdExtSize>0?1:0)), (xFracL, yFracL), (xSbIntL, ySbIntL), 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 chroma location specified in integer sample units, and (xFracC, yFracC) be the offset specified in 1/32 sample units. These variables can be used in this section to specify common fractional sample locations within the refPicLX arrays of reference samples.

2. Верхняя левая координата ограничивающего блока для заполнения опрным отсчетом (xSbIntC, ySbIntC) устанавливается равной ((xSb / SubWidthC) + (mvLX [0] >> 5), (ySb / SubHeightC) + (mvLX [1]) >> 5)).2. The top 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 samples 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 (refxSbC, refySbC) and (refxC,refyC) be the chromaticity locations pointed to by the motion vector (mvLX[0], mvLX[1]), specified in units of 1/32 of a sample. The variables refxSbC, refySbC, refxC, and refyC can be obtained as shown in equations 14-17 below:

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

refxC = ((Sign (refxSbC)* ((Abs (refxSbC ) + 256) >> 9)
+ xC * ((hori_scale_fp + 8) >> 4)) + 16) >> 5 (Уравнение 15)
refxC = ((Sign (refxSbC)* ((Abs (refxSbC ) + 256) >> 9)
+ xC * ((hori_scale_fp + 8) >> 4)) + 16) >> 5 (Equation 15)

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

refyC = ((Sign (refySbC)* ((Abs (refySbC ) + 256) >> 9)
+ yC * ((vert_scale_fp + 8) >> 4)) + 16) >> 5 (Уравнение 17)
refyC = ((Sign (refySbC)* ((Abs (refySbC ) + 256) >> 9)
+ yC * ((vert_scale_fp + 8) >> 4)) + 16) >> 5 (Equation 17)

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

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

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

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

yFracC = refyC&31 (Уравнение 21)yFracC = refyC&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 invoking 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] Fig. 9 shows an example flow chart of a process 900 for decoding an encoded video bitstream. In some implementations, one or more of the process blocks of Fig. 9 may be performed by decoder 210. In some implementations, one or more of the 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 receiving a first flag indicating whether a constant picture size is used in an encoded video sequence including the current picture (step 910).

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

[112] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя, на основании первого флага, указывающего, что используется постоянный размер изображения (ДА на этапе 920), декодирование текущего изображения без выполнения передискретизации опорного изображения (этап 930).[112] As further shown in Fig. 9, the process 900 may include, based on a first flag indicating that a constant picture size is used (YES in step 920), decoding the current picture without performing resampling of 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 in 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 receiving a second flag indicating whether the compliance window size is signaled (step 940).

[115] Как дополнительно показано на фиг. 9, процесс 900 может включать в себя, на основании второго флага, указывающего, что размер окна соответствия сигнализируется, получение размера окна соответствия (блок 950), определение коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия (блок 960), и выполнение передискретизации опорного изображения для текущего изображения с использованием указанного коэффициента передискретизации (блок 970). [115] As further shown in Fig. 9, the process 900 may include, based on a second flag indicating that a correspondence window size is signaled, obtaining the correspondence window size (block 950), determining a resampling factor between the current picture and the reference picture based on the correspondence window size (block 960), and performing resampling of the reference picture for the current picture 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 the SPS and a picture parameter set (PPS).

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

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

[120 В одном из вариантов осуществления, на основании первого флага, указывающего, что размер изображения не является постоянным, процесс 900 может включать в себя получение третьего флага, указывающего, сигнализируются ли в PPS параметры окна соответствия PPS.[120 In one embodiment, based on the first flag indicating that the image size is not constant, the process 900 may include receiving a third flag indicating whether the PPS matching 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 conformance window parameters are signaled in the SPS and the third flag indicating that the PPS conformance window parameters are not signaled in the PPS, the conformance window size may be obtained based on the SPS conformance window parameters.

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

[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 shown in Fig. 9. Additionally or alternatively, two or more blocks of process 900 may be executed in parallel.

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

[125] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг.10 показана компьютерная система 1000, подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения. [125] The methods described above may be implemented as computer software using machine-readable instructions and physically stored on one or more machine-readable media. For example, Fig. 10 shows 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 can be subject to assembly, compilation, linking, or similar mechanisms to produce code containing instructions that can be executed directly or through interpretation, microcode execution, etc., by computer central processing units (CPUs), graphics processing units (GPUs), 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, etc.

[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 limitation as to the scope of use or functionality of computer software implementing embodiments of the present disclosure. Nor should the configuration of components be interpreted as having any dependency or requirement relating 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 movements), audio input (e.g., voice, hand claps), visual input (e.g., gestures), olfactory input (not shown). Human-machine interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as sound (e.g., speech, music, ambient sound), images (e.g., scanned images, photographic images obtained from a still image camera), video (e.g., two-dimensional video, three-dimensional 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 corresponding 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 human-machine interface output devices may include haptic output devices (e.g., haptic feedback from a touch screen (1010), a control glove (1004), or a joystick (1005), but there may also be haptic feedback devices that do not serve as input devices), audio output devices (e.g., speakers (1009), headphones (not shown)), image output devices (e.g., screens (1010), including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capability, each with or without haptic feedback capability - some of which may be capable of outputting two-dimensional visual output or more than three-dimensional output by such means as stereographic output; virtual reality glasses (not shown), holographic displays and smoke tanks (not shown)) and printers (not shown).

[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 disk 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 security keys (not shown), etc.

[133] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы. [133] Those skilled in the art will also appreciate that the term "machine-readable medium" as used in connection with the subject matter disclosed herein does not include 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] The computer system 1000 may also include an interface(s) to one or more communication networks (1155). The networks may be, for example, wireless, wired, optical. In addition, the networks may be local, wide area, metropolitan, vehicular and industrial, real-time, delay-tolerant, etc. Examples of networks include local area networks such as Ethernet, wireless local area networks (LANs), 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 wide area digital networks including cable television, satellite television and terrestrial broadcast television, vehicular 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) (e.g., universal serial bus (USB) ports of computer system 1000); others are typically integrated into the core of computer system 1000 by connecting to a system bus, as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). For example, network 1055 can 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 can be unidirectional, for receiving only (e.g., broadcast television), unidirectional for sending only (e.g., a CAN bus to certain devices with a CAN bus), or bidirectional, such as for other computer systems using a local or wide area digital network. Each of these networks and network interfaces (1154) can use specific protocols and protocol stacks, as described above.

[135] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру 1040 компьютерной системы 1000.[135] The above-mentioned human-machine interface devices, human accessible storage devices and network interfaces may be connected 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 programmable processors in the form of field programmable gate arrays (FPGAs) (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 that are not accessible to the user, solid-state drives (SSDs), etc. 1047, may be connected via a system bus 1048. In some computer systems, the system bus 1048 may be accessible as one or more physical slots to provide the ability to expand with additional CPUs, GPUs, etc. Peripheral devices may be connected either directly to the system bus 1048 cores, or via the 1049 peripheral bus. The peripheral bus architecture includes the connection of peripheral components (PCI), USB, etc.

[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, the GPU 1042, the FPGA 1043, and the accelerators 1044 may execute certain instructions that, in combination, may constitute the aforementioned computer code. This computer code may be stored in the ROM 1045 or the RAM 1046. Transient data may also be stored in the RAM 1046, while persistent data may be stored, for example, in the internal mass storage 1047. Fast storage and retrieval to any of the storage devices may be achieved through the use of a cache memory, which may be tightly coupled to one or more of the CPU 1041, the GPU 1042, the mass storage 1047, the ROM 1045, the RAM 1046, and the like.

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

[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 by having a processor(s) (including CPUs, GPUs, FPGAs, accelerators, etc.) executing software embodied on one or more tangible, computer-readable media. Such computer-readable media may be media associated with a user-accessible mass storage device as described above, as well as certain memory devices of core 1040 that are non-transitory in nature, such as internal mass storage device 1047 or ROM 1045. Software implementing various embodiments of the present disclosure may be stored in such devices and executed by core 1040. The computer-readable medium may include one or more memory devices or chips according to particular needs. The software may cause the core 1040, and in particular the processors therein (including the CPU, GPU, FPGA, etc.), to perform certain processes or certain portions of certain processes described herein, including defining data structures stored in the RAM 1046 and modifying such data structures in accordance with the processes defined by the software. In addition or as an alternative, the computer system may provide functionality as a result of logic embedded in hardware circuitry or otherwise embodied in circuitry (e.g., accelerator 1044) that may operate in place of or in conjunction with software to perform certain processes or certain portions of certain processes described herein. Reference to software may include logic and vice versa, where applicable. Reference to a computer-readable medium may include circuitry (e.g., 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 modifications, permutations, and various substitution equivalents that fall within the scope of the disclosure. It will thus be appreciated that those skilled in the art will be able to devise numerous systems and methods that, although not explicitly shown or described herein, embody the principles of the disclosure and are thus within its spirit and scope of protection.

Claims (29)

1. Способ кодирования битового потока видео с использованием по меньшей мере одного процессора, причем способ содержит:1. A method for encoding a video bitstream using at least one processor, wherein the method comprises: на основании определения, что постоянный размер изображения не используется для кодирования видеопоследовательности, включающей в себя текущее изображение, установку первого флага, указывающего, сигнализируется ли размер окна соответствия; иbased on the determination that a constant picture size is not used to encode a video sequence that includes the current picture, setting a first flag indicating whether the size of the matching window is signaled; and на основании первого флага, указывающего, что сигнализируется размер окна соответствия:based on the first flag indicating that the match window size is being signaled: установку размера окна соответствия, иsetting the size of the matching window, and сигнализирование коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия.signaling the resampling factor between the current image and the reference image based on the size of the matching window. 2. Способ по п.1, в котором размер окна соответствия сигнализируется как по меньшей мере одно расстояние смещения от границы текущего изображения.2. The method according to claim 1, wherein the size of the correspondence window is signaled as at least one offset distance from the boundary of the current image. 3. Способ по п.1, в котором первый флаг сигнализируется в одном из набора параметров последовательности (SPS) и набора параметров изображения (PPS).3. The method according to claim 1, wherein the first flag is signaled in one of a sequence parameter set (SPS) and a picture parameter set (PPS). 4. Способ по п.3, в котором первый флаг сигнализируется в SPS и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.4. The method according to claim 3, wherein the first flag is signaled in the SPS and indicates whether the SPS conformance window parameters are signaled in the SPS. 5. Способ по п.4, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, размер окна соответствия устанавливают на основании параметров окна соответствия SPS.5. The method according to claim 4, wherein based on the first flag indicating that the SPS conformance window parameters are signaled in the SPS, the conformance window size is set based on the SPS conformance window parameters. 6. Способ по п.4, дополнительно содержащий установку второго флага, указывающего, сигнализируются ли в PPS параметры окна соответствия PPS, на основании определения, что размер изображения не постоянный.6. The method of claim 4, further comprising setting a second flag indicating whether the PPS correspondence window parameters are signaled in the PPS based on a determination that the image size is not constant. 7. Способ по п.6, в котором, на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS не сигнализируются в PPS, размер окна соответствия определяют на основании параметров окна соответствия SPS.7. The method according to claim 6, wherein, based on the first flag indicating that the SPS conformance window parameters are signaled in the SPS and the second flag indicating that the PPS conformance window parameters are not signaled in the PPS, the conformance window size is determined based on the SPS conformance window parameters. 8. Способ по п.6, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS не сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS сигнализируются в PPS, размер окна соответствия определяют на основании параметров окна соответствия PPS.8. The method according to claim 6, wherein based on the first flag indicating that the SPS conformance window parameters are not signaled in the SPS and the second flag indicating that the PPS conformance window parameters are signaled in the PPS, the conformance window size is determined based on the PPS conformance window parameters. 9. Устройство для кодирования битового потока видео, причем устройство содержит:9. A device for encoding a video bitstream, the device comprising: по меньшей мере один элемент памяти, конфигурированный для хранения программного кода; иat least one memory element configured to store program code; and по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя:at least one processor configured to read program code and operate in accordance with the instructions of the program code, wherein the program code includes: первый код установки, конфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании определения, что постоянный размер изображения не используется для кодирования видеопоследовательности, включающей в себя текущее изображение, устанавливать первый флаг, указывающий, сигнализируется ли размер окна соответствия; иa first setting code configured to cause at least one processor, based on a determination that a constant picture size is not used to encode a video sequence including the current picture, to set a first flag indicating whether a match window size is signaled; and код выполнения, конфигурированный так, чтобы предписывать по меньшей мере одному процессору, на основании первого флага, указывающего, что размер окна соответствия сигнализируется, устанавливать размер окна соответствия, и сигнализировать коэффициент передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия.execution code configured to cause at least one processor, based on a first flag indicating that a match window size is signaled, to set a match window size, and to signal an oversampling factor between the current image and the reference image based on the match window size. 10. Устройство по п.9, в котором размер окна соответствия сигнализируется как по меньшей мере одно расстояние смещения от границы текущего изображения.10. The device of claim 9, wherein the size of the matching window is signaled as at least one offset distance from the boundary of the current image. 11. Устройство по п.9, в котором первый флаг сигнализируется в одном из набора параметров последовательности (SPS) и набора параметров изображения (PPS).11. The device of claim 9, wherein the first flag is signaled in one of a sequence parameter set (SPS) and a picture parameter set (PPS). 12. Устройство по п.11, в котором первый флаг сигнализируется в SPS и указывает, сигнализируются ли в SPS параметры окна соответствия SPS.12. The device of claim 11, wherein the first flag is signaled in the SPS and indicates whether the SPS compliance window parameters are signaled in the SPS. 13. Устройство по п.12, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, размер окна соответствия устанавливается на основании параметров окна соответствия SPS.13. The device according to claim 12, wherein based on the first flag indicating that the SPS conformance window parameters are signaled in the SPS, the conformance window size is set based on the SPS conformance window parameters. 14. Устройство по п.12, в котором программный код дополнительно включает в себя второй код установки, конфигурированный так, чтобы предписывать по меньшей мере одному процессору устанавливать второй флаг, указывающий, сигнализируются ли в PPS параметры окна соответствия PPS, на основании определения, что размер изображения не постоянный.14. The device of claim 12, wherein the program code further includes a second setting code configured to cause at least one processor to set a second flag indicating whether the PPS correspondence window parameters are signaled in the PPS based on the determination that the image size is not constant. 15. Устройство по п.14, в котором, на основании первого флага, указывающего, что параметры окна соответствия SPS сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS не сигнализируются в PPS, размер окна соответствия устанавливается на основании параметров окна соответствия SPS.15. The device of claim 14, wherein, based on the first flag indicating that the SPS conformance window parameters are signaled in the SPS and the second flag indicating that the PPS conformance window parameters are not signaled in the PPS, the conformance window size is set based on the SPS conformance window parameters. 16. Устройство по п.14, в котором на основании первого флага, указывающего, что параметры окна соответствия SPS не сигнализируются в SPS, и второго флага, указывающего, что параметры окна соответствия PPS сигнализируются в PPS, размер окна соответствия устанавливается на основании параметров окна соответствия PPS.16. The device according to claim 14, wherein based on the first flag indicating that the SPS conformance window parameters are not signaled in the SPS and the second flag indicating that the PPS conformance window parameters are signaled in the PPS, the conformance window size is set based on the PPS conformance window parameters. 17. Невременный машиночитаемый носитель, хранящий битовый поток, который может быть кодирован посредством:17. A non-transitory machine-readable medium storing a bit stream that may be encoded by: на основании определения, что постоянный размер изображения не используется для кодирования видеопоследовательности, включающей в себя текущее изображение, установки первого флага, указывающего, сигнализируется ли размер окна соответствия; иbased on determining that a constant picture size is not used to encode a video sequence that includes the current picture, setting a first flag indicating whether the size of the matching window is signaled; and на основании первого флага, указывающего, что сигнализируется размер окна соответствия:based on the first flag indicating that the match window size is being signaled: установки размера окна соответствия, иsetting the size of the matching window, and сигнализирования коэффициента передискретизации между текущим изображением и опорным изображением на основании размера окна соответствия.signaling the resampling factor between the current image and the reference image based on the size of the matching window.
RU2024106047A 2019-09-20 2024-03-07 Signalling oversampling of reference image with indication of constant window size in video bit stream RU2830974C1 (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
RU2023109621A Division RU2815415C2 (en) 2019-09-20 2020-09-10 Signalling for reference image oversampling with indication of constant window size in video bit stream

Publications (1)

Publication Number Publication Date
RU2830974C1 true RU2830974C1 (en) 2024-11-28

Family

ID=

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2420915C2 (en) * 2006-01-06 2011-06-10 Майкрософт Корпорейшн Operations for re-discretisation and measurement of image size for coding and decoding multiresolution video

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2420915C2 (en) * 2006-01-06 2011-06-10 Майкрософт Корпорейшн Operations for re-discretisation and measurement of image size for coding and decoding multiresolution video

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 *

Similar Documents

Publication Publication Date Title
AU2024227176B2 (en) Signaling of Reference Picture Resampling with Constant Window Size Indication in Video Bitstream.
AU2023203938B2 (en) Signaling of reference picture resampling with resampling picture size indication in video bitstream
US12445622B2 (en) Method for signaling of reference picture resampling with resampling picture size indication in video bitstream
AU2023201466B2 (en) Signaling of scalability parameters in video bitstream
RU2830974C1 (en) Signalling oversampling of reference image with indication of constant window size in video bit stream
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