RU2772795C1 - Reference picture resampling method with offset in video bitstream - Google Patents

Reference picture resampling method with offset in video bitstream Download PDF

Info

Publication number
RU2772795C1
RU2772795C1 RU2021129213A RU2021129213A RU2772795C1 RU 2772795 C1 RU2772795 C1 RU 2772795C1 RU 2021129213 A RU2021129213 A RU 2021129213A RU 2021129213 A RU2021129213 A RU 2021129213A RU 2772795 C1 RU2772795 C1 RU 2772795C1
Authority
RU
Russia
Prior art keywords
image
resampling
video
signaled
size
Prior art date
Application number
RU2021129213A
Other languages
Russian (ru)
Inventor
Бёнду ЧОЙ
Стефан ВЕНГЕР
Шань ЛЮ
Original Assignee
Тенсент Америка Ллс
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Тенсент Америка Ллс filed Critical Тенсент Америка Ллс
Application granted granted Critical
Publication of RU2772795C1 publication Critical patent/RU2772795C1/en

Links

Images

Abstract

FIELD: reference image resampling.
SUBSTANCE: invention relates to means for resampling a reference image with an offset in a video bitstream. A flag indicating that the match window is not used for reference picture resampling is obtained. Based on a flag indicating that the match window is not used for resampling the reference image, it is determined whether the size of the resampling image is signaled. Based on the determination that the size of the oversampling image is signaled, an oversampling ratio is determined based on the size of the oversampling image. Based on the determination that the oversampling image size is not signaled, an oversampling ratio is determined based on the output image size. The reference image is resampled for the current image using the resampling factor.
EFFECT: improving the efficiency of video decoding.
10 cl, 11 dwg, 1 tbl

Description

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

[1] По настоящей заявке испрашивается приоритет предварительной заявки на выдачу патента США №62/905,319, поданной 24 сентября 2019 года, и заявки на выдачу патента США №17/022,727, поданной 16 сентября 2020 года, содержание которых полностью включено в настоящее описание посредством ссылки.[1] This application claims priority of U.S. Provisional Application No. 62/905,319, filed September 24, 2019, and U.S. Patent Application No. 17/022,727, filed September 16, 2020, the contents of which are incorporated herein in their entirety by links.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES

[2] Изобретение относится к кодированию и декодированию видеоданных и, более конкретно, к сигнализации передискретизации опорного изображения с указанием размера изображения передискретизации.[2] The invention relates to the encoding and decoding of video data, and more particularly to reference picture resampling signaling with an indication of the size of the resampling picture.

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

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

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

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

[6] Исторически сложилось так, что видеокодеры и декодеры, как правило, работали с данным размером изображения, который в большинстве случаев был задан и оставался постоянным для кодированной видеопоследовательности (CVS, coded video sequence), группы изображений (GOP, Group of Pictures) или аналогичного временного интервала с несколькими изображениями. Например, в MPEG-2 известны системы, которые изменяют разрешение по горизонтали (и, следовательно, размер изображения) в зависимости от таких факторов, как активность в кадре, но только на I-изображениях, следовательно, обычно для GOP. Передискретизация опорных изображений для использования различных разрешений в CVS известна, например, из Рекомендации МСЭ-Т Н.263, Приложение Р. Однако здесь размер изображения не меняется, передискретизируются только опорные изображения, в результате чего потенциально могут использоваться только части изображения (в случае понижающей дискретизации) или только части снимаемого кадра (в случае повышающей дискретизации). Кроме того, приложение Q стандарта Н.263 позволяет производить передискретизацию отдельного макроблока с коэффициентом 2 (в каждом измерении) в направлении вверх или вниз. Опять же, размер изображения остается прежним. Размер макроблока в Н.263 фиксирован, и поэтому его не нужно сигнализировать.[6] Historically, video encoders and decoders have usually worked with a given image size, which in most cases was set and remained constant for a coded video sequence (CVS, coded video sequence), a group of pictures (GOP, Group of Pictures) or similar time frame with multiple images. For example, in MPEG-2, systems are known that change the horizontal resolution (and hence the image size) depending on factors such as activity in the frame, but only in I-pictures, hence typical for GOP. 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 image size is not changed, only the reference pictures are resampled, with the result that only parts of the image can potentially be used (in the case of downsampling). sampling) or only parts of the captured frame (in the case of upsampling). In addition, Annex Q of the H.263 standard allows single macroblock resampling by a factor of 2 (in each dimension) in the up or down direction. Again, the image size remains the same. The macroblock size in H.263 is fixed and therefore does not need to be signaled.

[7] Изменение размера изображения для предсказываемых изображений получило широко распространение в современном кодировании видеоданных. Например, VP9 позволяет выполнять передискретизацию опорного изображения и изменять разрешение для всего изображения. Аналогичным образом, некоторые предложения, сделанные в отношении VVC (в том числе, например, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", документ JVET-M0135-v1, 9-19 января 2019 года, полностью включенный в настоящий документ), позволяют выполнять передискретизацию целых опорных изображений с различными - более высокими или более низкими - разрешениями. В настоящем документе предлагается кодировать различные возможные разрешения в наборе параметров последовательности и ссылаться на синтаксические элементы для каждого изображения в наборе параметров изображения.[7] Image resizing for predicted images has become widespread in modern video coding. For example, VP9 allows you to resample the reference image and change the resolution for the entire image. Likewise, some proposals made in relation to VVC (including, for example, Hendry, et. al, "On adaptive resolution change (ARC) for VVC", document JVET-M0135-v1, January 9-19, 2019, are in full included herein) allow entire reference pictures to be resampled at various higher or lower resolutions. This document proposes to encode the various possible resolutions in a sequence parameter set and refer to the syntax elements for each picture in the picture parameter set.

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

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

[9] В варианте осуществления изобретения предлагается устройство для декодирования битового потока кодированных видеоданных, содержащее: по меньшей мере одну память, сконфигурированную для хранения программного кода, и по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает: код получения, сконфигурированный для обеспечения получения, по меньшей мере одним процессором, флага, указывающего на то, что окно соответствия не используется для опорного изображения передискретизации; первый код определения, сконфигурированный для обеспечения определения, по меньшей мере одним процессором, на основе флага, указывающего на то, что окно соответствия не используется для опорного изображения пере дискретизации, того, сигнализируется ли размер изображения передискретизации; второй код определения, сконфигурированный для обеспечения определения, по меньшей мере одним процессором, на основе определения того, что размер изображения передискретизации сигнализируется, коэффициента пере дискретизации на основе размера изображения передискретизации; третий код определения, сконфигурированный для обеспечения определения, по меньшей мере одним процессором, на основе определения того, что размер изображения пере дискретизации не сигнализируется, коэффициента передискретизации на основе размера выходного изображения, и код выполнения, сконфигурированный для обеспечения выполнения, по меньшей мере одним процессором, передискретизации опорного изображения для текущего изображения с использованием коэффициента передискретизации.[9] In an embodiment of the invention, there is provided an apparatus for decoding an encoded video bitstream, comprising: at least one memory configured to store a program code and at least one processor configured to read the program code and operate in accordance with the instructions of the program code. wherein the program code includes: an acquisition code configured to cause at least one processor to receive a flag indicating that the match window is not used for the resampling reference picture; a first determination code configured to cause at least one processor to determine, based on a flag indicating that a matching window is not used for the resampling reference image, whether the resampling image size is signaled; a second determination code configured to cause at least one processor to determine, based on the determination that the resampling image size is signaled, an oversampling factor based on the resampling image size; a third determination code configured to allow at least one processor to determine, based on a determination that the oversampling image size is not signaled, an oversampling factor based on the output image size, and an execution code configured to be executed by at least one processor , resampling the reference picture for the current picture using the resampling factor.

[10] В варианте осуществления изобретения предлагается машиночитаемый носитель, хранящий инструкции, включающие одну или более инструкций, которые при их исполнении одним или более процессорами устройства для декодирования битового потока кодированных видеоданных обеспечивают выполнение одним или более процессорами получения флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения; на основе флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения, определения, сигнализируется ли размер изображения передискретизации; на основе определения того, что размер изображения передискретизации сигнализируется, определения коэффициента передискретизации на основе размера изображения передискретизации; на основе определения того, что размер изображения передискретизации не сигнализируется, определения коэффициента передискретизации на основе размера выходного изображения, и выполнения передискретизации опорного изображения для текущего изображения с использованием коэффициента передискретизации.[10] In an embodiment, a computer-readable medium is provided that stores instructions comprising one or more instructions that, when executed by one or more processors of a device for decoding an encoded video bitstream, cause one or more processors to obtain a flag indicating that the window is matching is not used for reference picture resampling; based on a flag indicating that the match window is not used for resampling the reference picture, determining whether the size of the resampling picture is signaled; based on determining that the resampling image size is signaled, determining an oversampling ratio based on the resampling image size; based on determining that the resampling image size is not signalled, determining a resampling ratio based on the output image size, and performing resampling of the reference image on the current image using the resampling ratio.

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

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

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

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

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

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

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

[17] Фиг. 6А-6В схематические иллюстрации примеров таблиц синтаксиса в соответствии с вариантом осуществления изобретения.[17] FIG. 6A-6B are schematic illustrations of examples of syntax tables in accordance with an embodiment of the invention.

[18] Фиг. 7 - схематическая иллюстрация сигнализации размера изображения и окна соответствия в PPS в соответствии с вариантом осуществления изобретения.[18] FIG. 7 is a schematic illustration of image size signaling and matching window in PPS in accordance with an embodiment of the invention.

[19] Фиг. 8 схематическая иллюстрация сигнализации размера изображения и окна соответствия в PPS согласно варианту осуществления изобретения.[19] FIG. 8 is a schematic illustration of image size signaling and matching window in PPS according to an embodiment of the invention.

[20] Фиг. 9 блок-схема примера способа декодирования битового потока кодированных видеоданных в соответствии с вариантом осуществления изобретения.[20] FIG. 9 is a flowchart of an example of a method for decoding an encoded video bitstream according to an embodiment of the invention.

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

ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION

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

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

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

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

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

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

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

[29] Видеодекодер (210) может включать анализатор (320) для реконструкции символов (321) из энтропийно-кодированной видеопоследовательности. Категории этих символов включают информацию, используемую для управления работой декодера (210), и, возможно, информацию для управления устройством визуализации, например дисплеем (212), который не является неотъемлемой частью декодера, но может быть подключен к нему, как показано на фиг. 3. Информация управления для устройств(а) визуализации может представлять собой сообщения информации дополнительного улучшения (SEI, Supplemental Enhancement Information) или фрагменты набора параметров информации о возможности использования видео (VUI, Video Usability Information) (не показаны). Анализатор (320) может анализировать / энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование видеопоследовательности может осуществляться в соответствии с технологией или стандартом видео кодирования и может следовать принципам, известным специалисту в данной области техники, включая кодирование с переменной длиной серии, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и т.д. Анализатор (320) может извлекать из кодированной видеопоследовательности набор параметров подгруппы для по меньшей мере одной из подгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Подгруппы могут включать группы изображений (GOP, Groups of Pictures), изображения, субизображения, тайлы, слайсы, модули, макроблоки, единицы дерева кодирования (CTU, Coding Tree Unit), единицы кодирования (CU, Coding Unit), блоки, единицы преобразования (TU, Transform Unit), единицы предсказания (PU, Prediction Unit) и т.д. Тайл может указывать на прямоугольную область CU/CTU в определенном столбце и строке тайла на изображении. Модуль может указывать на прямоугольную область строк CU/CTU внутри определенного тайла. Слайс может указывать на один или более модулей изображения, которые содержатся в блоке NAL. Субизображение может указывать на прямоугольную область одного или более слайсов на изображении. Энтропийный декодер / анализатор также может извлекать из кодированной видеопоследовательности информацию, например, коэффициенты преобразования, значения параметров квантователя, векторы движения и т.д.[29] The video decoder (210) may include an analyzer (320) for reconstructing the symbols (321) from the entropy-coded video sequence. The categories of these symbols include information used to control the operation of the decoder (210) and possibly information to control a visualization device such as a display (212) that is not an integral part of the decoder but may be connected to it, as shown in FIG. 3. The control information for the rendering device(s) may be Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (320) may analyze/entropy decode the received encoded video sequence. The encoding of the video sequence may be in accordance with a video coding technology or standard, and may follow principles known to those skilled in the art, including variable run length coding, Huffman coding, arithmetic coding with or without context sensitivity, and so on. The analyzer (320) can extract from the encoded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. Subgroups may include groups of pictures (GOP, Groups of Pictures), pictures, sub-images, tiles, slices, modules, macroblocks, coding tree units (CTU, Coding Tree Unit), coding units (CU, Coding Unit), blocks, transformation units ( TU, Transform Unit), prediction units (PU, Prediction Unit), etc. A tile can point to a rectangular area of a CU/CTU in a specific column and row of a tile in an image. A module can point to a rectangular area of CU/CTU rows within a specific tile. A slice may point to one or more image units that are contained in a NAL unit. A sub-image may point to a rectangular area of one or more slices in an image. The entropy decoder/analyzer can also extract information from the encoded video sequence, such as transform coefficients, quantizer parameter values, motion vectors, etc.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[44] Согласно варианту осуществления изобретения, кодер (203) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (443) в реальном времени или с учетом любых других временных ограничений, налагаемых применением. Установление надлежащей скорости кодирования является одной из функций контроллера (450). Контроллер управляет другими функциональными модулями, как описано ниже, и функционально подключен к ним. Подключение для простоты не показано. Параметры, установленные контроллером, могут включать параметры, связанные с регулировкой частоты (пропуск изображения, квантователь, значение лямбда, применяемое в методах оптимизации "скорость-искажения", и т.д.), размер изображения, организацию групп изображений (GOP, group of pictures), максимальную зону поиска вектора движения и т.д. Специалисту в данной области техники понятно, что контроллер (450) может иметь другие подходящие функции, относящиеся к видеокодеру (203), оптимизированному для конкретной конструкции системы.[44] According to an embodiment of the invention, the encoder (203) may encode and compress images of the source video sequence into the encoded video sequence (443) in real time or subject to any other time constraints imposed by the application. Setting the proper coding rate is one of the functions of the controller (450). The controller controls other functional modules as described below and is functionally connected to them. The connection is not shown for simplicity. The parameters set by the controller may include parameters related to frequency adjustment (picture skip, quantizer, lambda value used in rate-distortion optimization techniques, etc.), image size, group of images (GOP, group of pictures), maximum motion vector search area, etc. One skilled in the art will appreciate that the controller (450) may have other suitable functions related to the video encoder (203) optimized for a particular system design.

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

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

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

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

[49] Локальный видеодекодер (433) может декодировать кодированные видеоданные кадров, которые могут быть указаны как опорные кадры, на основе символов, созданных кодером (430) источника. Операции механизма (432) кодирования могут быть преимущественно способами с потерями. Когда кодированные видеоданные могут декодироваться в видеодекодере (не показан на фиг. 4), реконструированная видеопоследовательность обычно может представлять собой копию исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (433) дублирует процессы декодирования, которые могут осуществляться видеодекодером на опорных кадрах, и может обеспечивать сохранение реконструированных опорных кадров в кэш-памяти (434) опорных изображений. Таким образом, кодер (203) может локально сохранять копии реконструированных опорных кадров, имеющие такое же содержимое, как реконструированные опорные кадры, которые будут получены удаленным видеодекодером (в отсутствие ошибок передачи).[49] The local video decoder (433) may decode the encoded video data of the frames, which may be indicated as reference frames, based on the symbols generated by the source encoder (430). The operations of the encoding engine (432) may be predominantly lossy methods. When the encoded video data can be decoded in a video decoder (not shown in FIG. 4), the reconstructed video sequence can typically be a copy of the original video sequence with some errors. The local video decoder (433) duplicates the decoding processes that may be performed by the video decoder on the reference frames and may store the reconstructed reference frames in the reference picture cache (434). Thus, the encoder (203) can locally store copies of the reconstructed key frames having the same content as the reconstructed key frames that would be received by the remote video decoder (in the absence of transmission errors).

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

[51] Контроллер (450) может управлять операциями кодирования видеокодера (430), включая, например, установление параметров, а также параметров подгруппы, используемых для кодирования видеоданных.[51] The controller (450) may control the encoding operations of the video encoder (430), including, for example, setting parameters as well as subgroup parameters used to encode video data.

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

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

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

[55] Изображение с внутренним кодированием (I-изображение), которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника для предсказания. Некоторые видеокодеки допускают разные типы изображений с внутренним кодированием, включая, например, изображения в формате независимого обновления декодера (IDR, Independent Decoder Refresh). Специалисту в данной области техники известны разновидности I-изображений и их соответствующие варианты применения и особенности.[55] An intra-coded picture (I-picture) that can be encoded and decoded without using any other frame in the sequence as a source for prediction. Some video codecs allow different types of intra-coded images, including, for example, images in the Independent Decoder Refresh (IDR) format. The person skilled in the art will be aware of the varieties of I-images and their respective applications and features.

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

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

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

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

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

[61] В последнее время некоторое внимание привлекает объединение сжатых областей или извлечение нескольких семантически независимых частей изображения с формированием одного видеоизображения. В частности, в контексте, например, 360-градусного кодирования или определенных приложений наблюдения, несколько семантически независимых исходных изображений (например, поверхность из шести граней 360-градусного изображения, спроецированного на куб, или отдельные входы камеры в случае установки наблюдения с несколькими камерами) могут потребовать отдельных настроек адаптивного разрешения, чтобы учесть различную активность для каждого изображения в данный момент времени. Другими словами, кодеры в данный момент времени могут использовать различные коэффициенты передискретизации для различных семантически независимых изображений, составляющих все 360-градусное изображение или сцену наблюдения. При объединении в одно изображение это, в свою очередь, требует выполнения передискретизации опорного изображения и сигнализации кодирования с адаптивным разрешением для частей кодированного изображения.[61] Recently, some attention has been attracted by combining compressed regions or extracting several semantically independent parts of an image to form a single video image. In particular, in the context of e.g. 360-degree encoding or certain surveillance applications, multiple semantically independent source images (e.g., a six-facet surface of a 360-degree image projected onto a cube, or separate camera inputs in the case of a multi-camera surveillance setup) may require separate adaptive resolution settings to account for different activity for each image at a given time. In other words, encoders at a given time may use different resampling factors for different semantically independent images that make up the entire 360-degree image or scene of observation. When combined into a single picture, this in turn requires performing reference picture resampling and adaptive resolution coding signaling for parts of the encoded picture.

[62] Ниже будет введено несколько терминов, которые будут использоваться в остальной части этого описания.[62] Several terms will be introduced below and will be used in the rest of this description.

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

[64] Передискретизация опорного изображения (RPR, Reference Picture Resampling) или адаптивное изменение разрешения (ARC, Adaptive Resolution Change) могут относиться к механизмам, которые позволяют изменять разрешение изображения или субизображения в кодированной видеопоследовательности, например, посредством передискретизации опорного изображения. Параметры RPR/ARC в дальнейшем относятся к управляющей информации, которая необходима для выполнения адаптивного изменения разрешения и может включать, например, параметры фильтра, коэффициенты масштабирования, разрешения выходных и/или опорных изображений, различные флаги управления и т.д.[64] Reference Picture Resampling (RPR) or Adaptive Resolution Change (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 the reference picture. The RPR/ARC parameters hereinafter refer to control information that is necessary to perform adaptive resolution change and may include, for example, filter parameters, scaling factors, output and/or reference picture resolutions, various control flags, and so on.

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

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

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

[68] - коэффициенты повышающей/понижающей дискретизации, по отдельности или в комбинации в измерениях X и Y[68] - upsampling/downsampling factors, singly or in combination in the X and Y dimensions

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

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

[71] - разрешение, по оси X или Y, в единицах отсчетов, блоков, макроблоков, единиц кодирования (CU) или любой другой подходящей степени разбиения входного изображения, выходного изображения, опорного изображения, кодированного изображения, рассматриваемых в комбинации или по отдельности. Если существует более одного разрешения (например, одно для входного изображения, одно для опорного изображения), то в некоторых случаях один набор значений может быть получен из другого набора значений. Это может управляться, например, с помощью флагов. Более подробный пример описан ниже.[71] is the resolution, along the X or Y axis, in units of samples, blocks, macroblocks, coding units (CUs), or any other suitable granularity of the input picture, output picture, reference picture, coded picture, considered in combination or separately. If there is more than one resolution (eg, one for the input image, one for the reference image), then in some cases one set of values may be derived from another set of values. This can be controlled, for example, with flags. A more detailed example is described below.

[72] - координаты "деформации" аналогичны координатам, используемым в Приложении Р стандарта Н.263, опять же с подходящей степенью разбиения, как упомянуто выше. В Приложении Р стандарта Н.263 определен эффективный способ кодирования таких координат деформации, но, возможно, могут быть разработаны и другие, потенциально более эффективные, способы. Например, обратимое кодирование переменной длины в стиле Хаффмана координат деформации из Приложения Р может быть заменено двоичным кодированием подходящей длины, где длина слова двоичного кода может быть, например, получена из максимального размера изображения, возможно, умноженного на определенный коэффициент и смещенного на определенное значение, чтобы сделать возможной "деформацию" за пределами границ максимального размера изображения.[72] - "warp" coordinates are similar to those used in H.263 Annex P, again with the appropriate degree of subdivision as mentioned above. Annex P of the H.263 standard defines an efficient way to encode such strain coordinates, but other, potentially more efficient ways may be devised. For example, the reversible Huffman-style variable-length encoding of warp coordinates from Annex P can be replaced by a suitable length binary encoding, where the length of a binary code word can be, for example, obtained from the maximum image size, perhaps multiplied by a certain factor and offset by a certain value, to allow "warping" beyond the bounds of the maximum image size.

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

[74] Последующее описание предполагает кодирование конечного набора коэффициентов повышающей/понижающей дискретизации (один и тот же коэффициент используется как в измерении X, так и в измерении Y), которые указаны посредством кодового слова. Это кодовое слово может кодироваться кодами переменной длины, например, с использованием экспоненциального кода Голомба, принятого для определенных синтаксических элементов в спецификациях кодирования видеоданных, таких как Н.264 и Н.265. Подходящее преобразование значений в коэффициенты повышающей/понижающей дискретизации может, например, соответствовать таблице 1:[74] The following description assumes encoding a finite set of upsampling/downsampling coefficients (the same coefficient is used in both the X dimension and the Y dimension) that are indicated by a codeword. This codeword may be encoded with variable length codes, for example using the Exponential Golomb code adopted for certain syntax elements in video coding specifications such as H.264 and H.265. A suitable conversion of values to upsampling/downsampling coefficients can, for example, follow Table 1:

Figure 00000001
Figure 00000001

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

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

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

[78] Как показано на фиг. 5, приложение Р стандарта Н.263 включает информацию ARC (502) в виде четырех координат деформации в заголовок (501) изображения, а именно в расширение заголовка Н.263 PLUSPTYPE (503). Это может быть разумным выбором при проектировании, если а) имеется заголовок изображения, и b) ожидается частая смена информации ARC. Однако накладные расходы при использовании сигнализации в соответствии с Н.263 могут быть довольно высокими, а коэффициенты масштабирования могут не относиться к границам изображения, поскольку заголовок изображения может иметь переходный характер.[78] As shown in FIG. 5, H.263 Annex P includes ARC information (502) in the form of four warp coordinates in the image header (501), namely the H.263 PLUSPTYPE header extension (503). This may be a reasonable design choice if a) there is an image header, and b) the ARC information is expected to change frequently. However, the overhead of using H.263 signaling can be quite high, and the scaling factors may not be related to picture boundaries because the picture header may be transient.

[79] В том же или другом варианте осуществления изобретения сигнализация параметров ARC может следовать подробному примеру, показанному на фиг. 6А-6В. На фиг. 6А-6В изображены синтаксические диаграммы в виде представления с использованием системы обозначений, которая примерно соответствует программированию в стиле С, используемому, например, в стандартах кодирования видеоданных по меньшей мере с 1993 года. Строки, выделенные жирным шрифтом, указывают на синтаксические элементы, присутствующие в битовом потоке, строки без жирного шрифта часто указывают на поток данных управления или установку переменных.[79] In the same or another embodiment of the invention, ARC parameter signaling may follow the detailed example shown in FIG. 6A-6B. In FIG. 6A-6B show syntax diagrams in a representation using a notation that roughly corresponds to C-style programming used, for example, in video coding standards since at least 1993. Lines in bold indicate syntax elements present in the bitstream, lines without bold often indicate a control data stream or variable setting.

[80] Как показано на фиг. 6А, заголовок (601) группы тайлов в качестве примера синтаксической структуры заголовка, применимого к (возможно, прямоугольной) части изображения, может условно содержать синтаксический элемент dec_pic_size_idx (602) (выделен жирным шрифтом) переменной длины, кодированный экспоненциальным кодом Голомба. Наличие этого синтаксического элемента в заголовке группы тайлов может быть обусловлено использованием адаптивного разрешения (603) - здесь значение флага не выделено жирным шрифтом, что означает, что флаг присутствует в битовом потоке в том месте, где он встречается в синтаксической диаграмме. О том, используется ли адаптивное разрешение для данного изображения или его части, может сигнализироваться в любой синтаксической структуре высокого уровня внутри или вне битового потока. В показанном примере это сигнализируется в наборе параметров последовательности, как описано ниже.[80] As shown in FIG. 6A, a tile group header (601), as an example of a header syntax structure applicable to a (possibly rectangular) part of an image, may conditionally contain a variable length dec_pic_size_idx (602) (bold) syntax element encoded in Exponential Golomb code. The presence of this syntax element in the tile group header may be due to the use of adaptive resolution (603) - here the flag value is not in bold, which means that the flag is present in the bitstream where it occurs in the syntax diagram. Whether adaptive resolution is being used for a given image or part of it can be signaled in any high-level syntactic structure inside or outside the bitstream. In the example shown, this is signaled in the sequence parameter set, as described below.

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

[82] При использовании адаптивного разрешения в данном примере кодируется выходное разрешение в единицах отсчетов (613). Цифра 613 относится как к output_pic_width_in_luma_samples, так и к output_pic_height_in_luma_samples, которые вместе могут задавать разрешение выходного изображения. В других местах технологии или стандарта кодирования видеоданных могут быть определены некоторые ограничения для любого из этих значений. Например, задание уровня может ограничить количество общих выходных отсчетов, которое может быть произведением значения этих двух синтаксических элементов. Кроме того, определенные технологии или стандарты кодирования видеоданных или внешние технологии или стандарты, такие как, например, стандарты, касающиеся систем, могут ограничивать диапазон нумерации (например, одно или оба измерения должны быть кратны степени числа 2) или соотношение сторон (например, соотношение ширины и высоты 4:3 или 16:9). Такие ограничения могут быть введены для облегчения аппаратных реализаций или по другим причинам и хорошо известны в данной области техники.[82] When using adaptive resolution, this example encodes the output resolution in units of samples (613). The number 613 refers to both output_pic_width_in_luma_samples and output_pic_height_in_luma_samples, which together can set the resolution of the output image. Elsewhere in the video coding technology or standard, some restrictions may be defined for any of these values. For example, setting the level may limit the number of total output samples that can be the product of the value of these two syntax elements. In addition, certain video coding technologies or standards or external technologies or standards, such as systems standards, for example, may restrict the numbering range (for example, one or both dimensions must be a multiple of a power of 2) or aspect ratio (for example, the ratio width and height 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.

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

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

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

[86] Некоторые технологии или стандарты кодирования видеоданных, например VP9, поддерживают пространственную масштабируемость путем реализации определенных форм передискретизации опорного изображения (сигнализируемых иначе, чем в настоящем изобретении) в сочетании с временной масштабируемостью, чтобы обеспечить возможность пространственной масштабируемости. В частности, к некоторым опорным изображениям может быть применена повышающая дискретизация с использованием технологий ARC до более высокого разрешения, чтобы сформировать основу пространственного уровня улучшения. Эти изображения после повышающей дискретизации могут быть уточнены с помощью обычных механизмов предсказания при высоком разрешении для добавления деталей.[86] Some video coding technologies or standards, such as VP9, support spatial scalability by implementing certain forms of reference picture resampling (signaled differently than in the present invention) in combination with temporal scalability to enable spatial scalability. In particular, some reference pictures may be upsampled using ARC technologies to higher resolution to form the basis of the spatial enhancement layer. These upsampled images can be refined using conventional high resolution prediction mechanisms to add detail.

[87] Варианты осуществления изобретения, обсуждаемые здесь, могут быть использованы в такой среде. В некоторых случаях, в том же или другом варианте осуществления изобретения, значение в заголовке блока NAL, например поле временного идентификатора (Temporal ID), может использоваться для указания не только временного, но и пространственного уровня. Это может иметь определенные преимущества для некоторых систем; например, существующие выбранные единицы перенаправления (SFU, Selected Forwarding Units), созданные и оптимизированные для выбранной пересылки на временном уровне на основе значения временного идентификатора в заголовке блока NAL, могут быть использованы без модификации для масштабируемых сред. Для этого может потребоваться преобразование размера кодированного изображения во временной уровень, на который указывает поле временного идентификатора в заголовке блока NAL.[87] Embodiments of the invention discussed here can be used in such an environment. In some cases, in the same or another embodiment of the invention, a value in the NAL unit header, such as a temporal identifier (Temporal ID) field, can be used to indicate not only the temporal but also the spatial level. This may have certain advantages for some systems; for example, existing Selected Forwarding Units (SFUs) created and optimized for selected forwarding at the temporal level based on the value of the temporal ID in the NAL header can be used without modification for scalable environments. This may require converting the encoded picture size to the temporal level indicated by the temporal identifier field in the NAL unit header.

[88] В одном из вариантов осуществления изобретения размер окна соответствия может сигнализироваться в PPS. Параметры окна соответствия могут использоваться для вычисления коэффициента передискретизации, когда размер окна соответствия опорного изображения отличается от размера окна соответствия текущего изображения. Декодеру может потребоваться распознать размер окна соответствия каждого изображения, чтобы определить необходимость процесса передискретизации.[88] In one embodiment of the invention, the match window size may be signaled in the PPS. The match window parameters can be used to calculate the resampling factor when the match window size of the reference picture is different from the match window size of the current picture. The decoder may need to recognize the size of the matching window of each picture to determine if a resampling process is needed.

[89] В одном из вариантов осуществления изобретения коэффициент масштабирования для передискретизации опорного изображения (RPR) может быть вычислен на основе ширины и высоты выходного изображения, которые могут быть получены из параметров окна соответствия между текущим изображением и опорным изображением. Это может позволить более точно вычислить коэффициент масштабирования по сравнению с использованием размера декодированного изображения. Такой подход может хорошо работать для большинства видеопоследовательностей, размер выходного изображения которых почти идентичен размеру декодированного изображения, с небольшими дополненными (padded) областями.[89] In one embodiment of the invention, the scaling factor for reference picture resampling (RPR) may be calculated based on the width and height of the output picture, which may be obtained from the match window parameters between the current picture and the reference picture. This may allow the scaling factor to be calculated more accurately than using the decoded image size. This approach can work well for most video sequences whose output image size is almost identical to the decoded image size, with small padded areas.

[90] Однако это также может вызвать различные проблемы. Например, когда размер окна соответствия сильно отличается от размера декодированного изображения с большими значениями смещения, для иммерсивных медиаприложений (таких как 360-градусная кубическая карта, стереоскопические изображения, облако точек), вычисление коэффициента масштабирования на основе размера окна соответствия может не гарантировать качество внешнего предсказания с различными разрешениями. В крайних случаях совмещенная область текущей CU в опорном изображении может отсутствовать. Когда RPR используется для масштабируемости с множеством уровней, смещения окна соответствия могут не использоваться для расчета ссылочной области между уровнями. Следует отметить, что ссылочная область каждого непосредственно зависимого уровня может быть явно передана в PPS-расширении, в расширении масштабируемости HEVC (SHVC, HEVC Scalability Extension). Когда из всего битового потока извлекается битовый субпоток, нацеленный на определенную область (субизображение), размер окна соответствия вовсе не совпадает с размером изображения. Следует отметить, что параметры окна соответствия не могут быть обновлены до тех пор, пока они используются для вычисления масштабирования после кодирования битового потока.[90] However, this can also cause various problems. For example, when the size of the match window is very different from the size of the decoded image with large offsets, for immersive media applications (such as 360-degree cubemap, stereoscopic images, point clouds), calculating the scaling factor based on the size of the match window may not guarantee the quality of inter prediction. with different permissions. In extreme cases, the matched area of the current CU may not be present in the reference picture. When RPR is used for multilayer scalability, match window offsets may not be used to calculate the link area between layers. It should be noted that the reference area of each directly dependent layer can be explicitly transferred in the PPS extension, in the HEVC scalability extension (SHVC, HEVC Scalability Extension). When a sub-bitstream targeted at a specific area (sub-image) is extracted from the entire bitstream, the size of the match window is not at all the same as the size of the image. It should be noted that the match window parameters cannot be updated until they are used to calculate the scaling after bitstream encoding.

[91] Исходя из вышеуказанных потенциальных проблем, вычисление коэффициентов масштабирования на основе размера окна соответствия может иметь угловые случаи, для которых требуются альтернативные параметры. В качестве запасного варианта, когда параметры окна соответствия не могут быть использованы для вычисления коэффициентов масштабирования, предлагается сигнализировать параметры опорной области, которые могут быть использованы для вычисления масштабирования для RPR и масштабируемости.[91] Based on the above potential problems, calculating scaling factors based on match window size may have corner cases that require alternative parameters. As a fallback, when the match window parameters cannot be used to calculate scaling factors, it is proposed to signal reference area parameters that can be used to calculate the scaling for RPR and scalability.

[92] В одном из вариантов осуществления изобретения, показанном на фиг. 7, флаг conformance_window_flag может сигнализироваться в PPS. Флаг conformance_window_flag, равный 1, может указывать на то, что параметры смещения окна соответствия для обрезки следуют далее в PPS. Флаг conformance_window_flag, равный 0, может указывать на то, что параметры смещения окна соответствия для обрезки отсутствуют.[92] In one embodiment of the invention shown in FIG. 7, the conformance_window_flag flag may be signaled in the PPS. A conformance_window_flag equal to 1 may indicate that the cropping conformance window offset parameters follow next in the PPS. A conformance_window_flag of 0 may indicate that there are no conformance window offset options for cropping.

[93] В варианте осуществления изобретения, показанном на фиг. 7, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset определяют отсчеты изображений, ссылающихся на PPS, которые выводятся в процессе декодирования, в отношении прямоугольной области, указанной в координатах изображения для вывода. Когда параметр conformance_window_flag равен 0, может быть сделан вывод, что значения conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset равны 0.[93] In the embodiment of the invention shown in FIG. 7, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset define the samples of images referring to PPS that are output during decoding with respect to a rectangular area specified in image coordinates for output. When the conformance_window_flag is 0, it can be inferred that the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are 0.

[94] В одном из вариантов осуществления изобретения флаг может присутствовать в PPS или другом наборе параметров и может указывать на то, сигнализируются ли явно в PPS или другом наборе параметров размеры (ширина и высота) изображения передискретизации или нет. Если параметры размера изображения сигнализируются явно, коэффициент передискретизации между текущим изображением и опорным изображением может быть вычислен на основе размеров изображения передискретизации.[94] In one embodiment, the flag may be present in the PPS or other parameter set and may indicate whether the dimensions (width and height) of the resampling image are explicitly signaled in the PPS or other parameter set or not. If the image size parameters are signaled explicitly, the resampling ratio between the current image and the reference image can be calculated based on the resampling image sizes.

[95] В одном из вариантов осуществления изобретения, показанном на фиг. 8А, флаг use_conf_win_for_rpr_flag, равный 0, может указывать на то, что resampled_pic_width_in_luma_samples и resampled_pic_height_in_luma samples следуют в подходящем месте, например, далее в PPS.[95] In one of the embodiments of the invention shown in FIG. 8A, a use_conf_win_for_rpr_flag flag of 0 may indicate that resampled_pic_width_in_luma_samples and resampled_pic_height_in_luma samples follow at an appropriate location, such as later in the PPS.

[96] В одном из вариантов осуществления изобретения флаг use_conf_win_for_rpr_flag, равный 1, может указывать на то, что resampling_pic_width_in_luma_samples и resampling_pic_height_in_luma samples отсутствуют.[96] In one embodiment, the use_conf_win_for_rpr_flag flag of 1 may indicate that resampling_pic_width_in_luma_samples and resampling_pic_height_in_luma samples are missing.

[97] В одном из вариантов осуществления изобретения параметр resampling_pic_width_in_luma_samples может означать ширину каждого опорного изображения, относящегося к PPS, в единицах отсчетов яркости для передискретизации. Значение параметра resampling_pic_width_in_luma_samples может быть не равно 0, может быть целым числом, кратным Мах(8, MinCbSizeY), и может быть меньше или равно значению pic_width_max_in_luma_samples.[97] In one embodiment, the resampling_pic_width_in_luma_samples parameter may indicate the width of each PPS reference picture in units of luminance samples to be resampled. The value of the resampling_pic_width_in_luma_samples parameter may not be equal to 0, may be an integer multiple of Max(8, MinCbSizeY), and may be less than or equal to the value of pic_width_max_in_luma_samples.

[98] В одном из вариантов осуществления изобретения параметр resampling_pic_height_in_luma_samples может означать высоту каждого опорного изображения, относящегося к PPS, в единицах отсчетов яркости, для передискретизации. Значение параметра resampling_pic_height_in_luma_samples может быть не равно 0, может быть целым числом, кратным Мах(8, MinCbSizeY), и может быть меньше или равно значению pic_height_max_in_luma_samples.[98] In one embodiment, the resampling_pic_height_in_luma_samples parameter may indicate the height of each PPS-related reference picture, in units of luma samples, for resampling. The value of the resampling_pic_height_in_luma_samples parameter may not be equal to 0, may be an integer multiple of Max(8, MinCbSizeY), and may be less than or equal to the value of pic_height_max_in_luma_samples.

[99] Если синтаксический элемент resampling_pic_width_in_luma_samples отсутствует, может быть сделан вывод, что значение resampling_pic_width_in_luma_samples равно PicOutputWidthL.[99] If the resampling_pic_width_in_luma_samples syntax element is absent, it can be concluded that the value of resampling_pic_width_in_luma_samples is equal to PicOutputWidthL.

[100] Если синтаксический элемент resampling_pic_height_in_luma_samples отсутствует, может быть сделан вывод, что значение resampling_pic_height_in_luma_samples равно PicOutputHeightL.[100] If the resampling_pic_height_in_luma_samples syntax element is absent, it can be concluded that the value of resampling_pic_height_in_luma_samples is equal to PicOutputHeightL.

[101] В одном из вариантов осуществления изобретения пример процесса дробной интерполяции с передискретизацией опорного изображения может быть выполнен следующим образом:[101] In one embodiment of the invention, an example of a fractional interpolation process with reference picture resampling can be performed as follows:

[102] Переменная fRefWidth может быть задана равной значению resampling_pic_width_in_luma_samples опорного изображения в отсчетах яркости.[102] The variable fRefWidth may be set equal to the resampling_pic_width_in_luma_samples value of the reference image in luma samples.

[103] Переменная fRefHeight может быть задана равной resampling_pic_height_in_luma_samples опорного изображения в отсчетах яркости.[103] The variable fRefHeight may be set to resampling_pic_height_in_luma_samples of the reference image in luma samples.

[104] Вектор движения mvLX может быть задан равным (refMvLX - mvOffset).[104] The motion vector mvLX may be set to (refMvLX - mvOffset).

[105] Если значение cIdx равно 0, коэффициенты масштабирования и их представления с фиксированной точкой могут быть заданы в соответствии с выражениями (1) и (2) ниже:[105] If the value of cIdx is 0, the scaling factors and their fixed-point representations can be set according to expressions (1) and (2) below:

Figure 00000002
Figure 00000002

Figure 00000003
Figure 00000003

[106] В варианте осуществления изобретения, показанном на фиг. 8В, флаг use_conf_win_for_rpr_flag, равный 0, может указывать на то, что resampled_pic_width_in_luma_samples и resampled_pic_height_in_luma_samples следуют далее в PPS. Значение use_conf_wid_for_rpr_flag, равное 1, указывает на то, что значения resampling_pic_width_in_luma_samples и resampling_pic_height_in_luma_samples отсутствуют.[106] In the embodiment of the invention shown in FIG. 8B, a use_conf_win_for_rpr_flag flag of 0 may indicate that resampled_pic_width_in_luma_samples and resampled_pic_height_in_luma_samples follow next in PPS. A use_conf_wid_for_rpr_flag value of 1 indicates that resampling_pic_width_in_luma_samples and resampling_pic_height_in_luma_samples are missing.

[107] В одном из вариантов осуществления изобретения параметр ref_region_left_offset может задавать горизонтальное смещение левого верхнего отсчета яркости опорной области в декодированном изображении. Значение refregion_left_offset должно находиться в диапазоне от -214 до 214 - 1 включительно. Если значение ref_region_left_offset отсутствует, можно сделать вывод, что оно равно conf_win_left_offset.[107] In one of the embodiments of the invention, the ref_region_left_offset parameter may specify a horizontal offset of the upper left brightness reference of the reference region in the decoded image. The value of refregion_left_offset must be between -2 14 and 2 14 - 1 inclusive. If there is no ref_region_left_offset value, it can be inferred that it is equal to conf_win_left_offset.

[108] В одном из вариантов осуществления изобретения параметр ref_region_top_offset может задавать вертикальное смещение левого верхнего отсчета яркости опорной области в декодированном изображении. Значение ref_region_top_offset должно находиться в диапазоне от -214 до 214 - 1 включительно. Если значение ref_region_top_offset отсутствует, можно сделать вывод, что оно равно conf_win_right_offset.[108] In one of the embodiments of the invention, the ref_region_top_offset parameter may specify a vertical offset of the top left brightness reference of the reference region in the decoded image. The value of ref_region_top_offset must be between -2 14 and 2 14 - 1 inclusive. If there is no ref_region_top_offset value, we can infer that it is equal to conf_win_right_offset.

[109] В одном из вариантов осуществления изобретения параметр ref_region_right_offset может задавать горизонтальное смещение нижнего правого отсчета яркости опорной области в декодированном изображении. Значение ref_layer_right_offset должно находиться в диапазоне от 214 до 214 1 включительно. Если значение ref_region_right_offset отсутствует, можно сделать вывод, что оно равно conf_win_top_offset.[109] In one of the embodiments of the invention, the ref_region_right_offset parameter may specify a horizontal offset of the lower right brightness reference of the reference region in the decoded image. The value of ref_layer_right_offset must be between 2 14 and 2 14 1 inclusive. If there is no ref_region_right_offset value, we can infer that it is equal to conf_win_top_offset.

[110] В одном из вариантов осуществления изобретения ref_region_bottom offset может задавать вертикальное смещение нижнего правого отсчета яркости опорной области в декодированном изображении. Значение ref_layer_bottom offset должно находиться в диапазоне от -214 до 214 - 1 включительно. Если значение ref_region_bottom_offset[ ref_loc_offset_layer id[i]] отсутствует, можно сделать вывод, что оно равно conf_win_bottom_offset.[110] In one of the embodiments of the invention ref_region_bottom offset may specify a vertical offset of the lower right reference region brightness sample in the decoded image. The value of ref_layer_bottom offset must be between -2 14 and 2 14 - 1 inclusive. If ref_region_bottom_offset[ ref_loc_offset_layer id[i]] is not present, it can be inferred that it is equal to conf_win_bottom_offset.

[111] Переменные PicRefWidthL и PicRefHeightL могут быть получены, как показано в выражениях (3) и (4) ниже:[111] The variables PicRefWidthL and PicRefHeightL can be obtained as shown in expressions (3) and (4) below:

Figure 00000004
Figure 00000004

Figure 00000005
Figure 00000005

[112] Переменная fRefWidth может быть задана равной значению PicRefWidthL опорного изображения в отсчетах яркости.[112] The variable fRefWidth may be set equal to the PicRefWidthL value of the reference image in luminance samples.

[113] Переменная fReffleight может быть задана равной значению PicRefHeightL опорного изображения в отсчетах яркости.[113] The variable fReffleight may be set equal to the PicRefHeightL value of the reference image in luminance samples.

[114] Вектор движения mvLX может быть задан равным (refMvLX mvOffset).[114] The mvLX motion vector may be set to (refMvLX mvOffset).

[115] Если cIdx равно 0, коэффициенты масштабирования и их представления с фиксированной точкой могут быть определены, как показано в выражениях (5) и (6) ниже:[115] If cIdx is 0, the scaling factors and their fixed-point representations can be determined as shown in expressions (5) and (6) below:

Figure 00000006
Figure 00000006

Figure 00000007
Figure 00000007

[116] Левая верхняя координата ограничивающего блока для дополнения (padding) опорных отсчетов (xSbIntL, ySbIntL) может быть задана равной[116] The upper left coordinate of the bounding box for padding the reference samples (xSbIntL, ySbIntL) may be set to

(xSb+(mvLX[0] >> 4), ySb+(mvLX[1] >> 4)).(xSb+(mvLX[0] >> 4), ySb+(mvLX[1] >> 4)).

[117] Для каждого местоположения отсчета яркости[117] For each brightness sample location

(xL=0..sbWidth - 1+brdExtSize, yL=0..sbHeight - 1+brdExtSize)(xL=0..sbWidth - 1+brdExtSize, yL=0..sbHeight - 1+brdExtSize)

в массиве отсчетов яркости для предсказания predSamplesLX, соответствующее значение отсчета яркости для предсказания predSamplesLX[xL][yL] может быть получено следующим образом:in an array of prediction luma samples predSamplesLX, the corresponding prediction luma sample value predSamplesLX[xL][yL] can be obtained as follows:

- Пусть (refxSbL, refySbL) и (refxL, refyL) являются местоположениями для яркости, на которые указывает вектор движения (refMvLX, refMvLX), заданный в единицах измерения 1/16 отсчета. Переменные refxSbL, refxL, refySbL и refyL могут быть получены, как показано в выражениях (7)-(10) ниже:- Let (refxSbL, refySbL) and (refxL, refyL) be the locations for luma pointed to by the motion vector (refMvLX, refMvLX) given in units of 1/16 of a sample. Variables refxSbL, refxL, refySbL and refyL can be obtained as shown in expressions (7)-(10) below:

Figure 00000008
Figure 00000008

Figure 00000009
Figure 00000009

Figure 00000010
Figure 00000010

Figure 00000011
Figure 00000011

[118] На фиг. 9 представлена блок-схема, представляющая собой пример способа 900 декодирования битового потока кодированных видеоданных. В некоторых вариантах осуществления изобретения один или более этапов способа на фиг. 9 могут выполняться декодером 210. В некоторых вариантах осуществления изобретения один или более этапов способа на фиг. 9 могут выполняться другим устройством или группой устройств, отдельных от декодера 210 или включающих декодер 210, например кодером 203.[118] FIG. 9 is a flowchart illustrating an example of a method 900 for decoding an encoded video bitstream. In some embodiments of the invention, one or more of the steps of the method of FIG. 9 may be performed by decoder 210. In some embodiments, one or more of the method steps in FIG. 9 may be performed by another device or group of devices separate from decoder 210 or including decoder 210, such as encoder 203.

[119] Как показано на фиг. 9, способ 900 может включать получение флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения (этап 910).[119] As shown in FIG. 9, method 900 may include obtaining a flag indicating that the match window is not being used for reference picture resampling (block 910).

[120] Как показано на фиг. 9, способ 900 может включать, на основе флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения, определение, сигнализируется ли размер изображения передискретизации (этап 920).[120] As shown in FIG. 9, method 900 may include, based on a flag indicating that a match window is not used for reference picture resampling, determining whether a resampling picture size is being signaled (block 920).

[121] Если определено, что второй флаг указывает на то, что размер изображения передискретизации сигнализируется (ветвь "Да" на этапе 920), способ 900 может перейти к этапу 930, а затем к этапу 950. На этапе 930 способ 900 может включать определение коэффициента передискретизации на основе размера изображения передискретизации.[121] If it is determined that the second flag indicates that the resampling image size is being signaled (Yes branch of block 920), method 900 may proceed to block 930 and then to block 950. At block 930, method 900 may include determining a resampling factor based on the resampling image size.

[122] Если определено, что второй флаг не указывает на то, что окно соответствия используется для передискретизации опорного изображения (ветвь "Нет" на этапе 920), способ 900 может перейти к этапу 940, а затем к этапу 950. На этапе 940 способ 900 может включать определение коэффициента передискретизации на основе размера выходного изображения.[122] If it is determined that the second flag does not indicate that the match window is being used for reference picture resampling ("No" branch at block 920), method 900 may proceed to block 940 and then to block 950. At block 940, method 900 may include determining a resampling factor based on the output image size.

[123] Как показано на фиг. 9, способ 900 может включать осуществление передискретизации опорного изображения для текущего изображения с использованием коэффициента передискретизации (этап 950).[123] As shown in FIG. 9, method 900 may include resampling the reference picture for the current picture using a resampling factor (step 950).

[124] В варианте осуществления флаг может сигнализироваться в наборе параметров изображения.[124] In an embodiment, the flag may be signaled in a set of image parameters.

[125] В одном из вариантов осуществления изобретения размер изображения передискретизации может сигнализироваться в битовом потоке кодированных видеоданных как ширина и/или высота изображения пере дискретизации.[125] In one embodiment of the invention, the size of the resampling image may be signaled in the encoded video bitstream as the width and/or height of the resampling image.

[126] В варианте осуществления изобретения ширина и/или высота могут сигнализироваться в наборе параметров изображения.[126] In an embodiment of the invention, the width and/or height may be signaled in a set of image parameters.

[127] В варианте осуществления изобретения ширина и/или высота могут быть выражены как количество отсчетов яркости, включенных в ширину и/или высоту.[127] In an embodiment of the invention, the width and/or height may be expressed as the number of luma samples included in the width and/or height.

[128] В варианте осуществления изобретения ширина и/или высота могут быть определены на основе по меньшей мере одного расстояния смещения между границей текущего изображения и заранее заданным отсчетом яркости опорной области.[128] In an embodiment of the invention, the width and/or height may be determined based on at least one offset distance between the boundary of the current image and a predetermined reference area brightness reference.

[129] В варианте осуществления изобретения по меньшей мере одно расстояние смещения может сигнализироваться в наборе параметров изображения.[129] In an embodiment of the invention, at least one offset distance may be signaled in a set of image parameters.

[130] В варианте осуществления изобретения по меньшей мере одно расстояние смещения может включать по меньшей мере одно из следующего: расстояние горизонтального смещения между левой границей текущего изображения и левым верхним отсчетом яркости опорной области, расстояние вертикального смещения между верхней границей текущего изображения и левым верхним отсчетом яркости опорной области, расстояние горизонтального смещения между правой границей текущего изображения и правым нижним отсчетом яркости опорной области и расстояние вертикального смещения между нижней границей текущего изображения и нижним правым отсчетом яркости опорной области.[130] In an embodiment of the invention, at least one offset distance may include at least one of the following: a horizontal offset distance between the left border of the current image and the upper left reference area brightness sample, a vertical offset distance between the upper border of the current image and the upper left sample the reference area brightness, a horizontal offset distance between the right edge of the current image and the right bottom brightness sample of the reference area, and a vertical offset distance between the bottom edge of the current image and the bottom right brightness sample of the reference area.

[131] Хотя на фиг. 9 показаны примеры этапов способа 900, в некоторых вариантах осуществления изобретения способ 900 может включать дополнительные этапы, меньшее количество этапов, другие этапы или этапы, расположенные по-другому, чем показано на фиг.9. Дополнительно или альтернативно два или более этапа способа 900 могут выполняться параллельно.[131] Although FIG. 9 shows examples of the steps of a method 900, in some embodiments of the invention, the method 900 may include additional steps, fewer steps, other steps, or steps arranged differently than shown in FIG. Additionally or alternatively, two or more steps of method 900 may be performed in parallel.

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

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

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

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

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

[137] Компьютерная система 1000 может включать некоторые устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода может отвечать за ввод одним или более пользователями посредством, например, тактильного ввода (например, нажатий на клавиши, махов, движений информационной перчатки), аудио-ввода (например, голосового, хлопков), визуального ввода (например, жестов), обонятельного ввода (не показан). Устройства интерфейса также могут использоваться для захвата некоторых информационных носителей, не обязательно напрямую связанных с осознанным вводом человеком, например звука (например, речи, музыки, внешнего звука), изображений (например, отсканированных изображений, фотографических изображений, полученных от камеры неподвижных изображений), видео (например, двумерного видео, трехмерного видео, включая стереоскопическое видео).[137] Computer system 1000 may include some human-machine interface input devices. Such an input device may be responsible for input by one or more users through, for example, tactile input (e.g., keystrokes, waving, glove movements), audio input (e.g., voice, claps), visual input (e.g., gestures), olfactory input (not shown). Interface devices may also be used to capture certain media not necessarily directly related to conscious human input, such as sound (e.g. speech, music, external sound), images (e.g. scanned images, photographic images received from a still camera), video (eg 2D video, 3D video including stereoscopic video).

[138] Входной человеко-машинный интерфейс устройства может включать одно или более из следующего (показано по одному): клавиатура 1001, мышь 1002, сенсорная панель 1003, сенсорный экран 1010 и связанный с ним графический адаптер 1050, информационная перчатка, джойстик 1005, микрофон 1006, сканер 1007 и камера 1008.[138] The input human-machine interface of the device may include one or more of the following (shown one at a time): keyboard 1001, mouse 1002, touch pad 1003, touch screen 1010 and associated graphics adapter 1050, data glove, joystick 1005, microphone 1006, scanner 1007 and camera 1008.

[139] Компьютерная система 1000 также может включать в себя некоторые устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода могут стимулировать органы чувств одного или более пользователей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода могут включать устройства тактильного вывода (например, тактильной обратной связи посредством сенсорного экрана 1010, информационной перчатки или джойстика 1005, а также устройства тактильной обратной связи, которые не служат устройствами ввода), устройства вывода аудио (например: динамики 1009, наушники (не показаны)), устройства визуального вывода (например, экраны 1010, в том числе экраны на электронно-лучевых трубках (CRT, cathode ray tube), жидкокристаллические экраны (LCD, liquid-crystal display), плазменные экраны, экраны на органических светодиодах (OLED, organic light-emitting diode), каждый с возможностями сенсорного экранного ввода или без них, каждый с возможностями тактильной обратной связи или без них, некоторые из них способны к двумерному визуальному выводу или более чем трехмерному выводу посредством, например, стереографическому выводу, очки виртуальной реальности (не показаны), голо графические дисплеи, дымовые баки (не показаны) и принтеры (не показаны).[139] Computer system 1000 may also include some human-machine interface output devices. Such output devices may stimulate the senses of one or more users through, for example, tactile output, sound, light, and smell/taste. Such output devices may include tactile output devices (for example, haptic feedback via a 1010 touch screen, data glove, or 1005 joystick, as well as haptic feedback devices that do not serve as input devices), audio output devices (for example: speakers 1009, headphones ( not shown)), visual output devices (e.g., 1010 screens, including cathode ray tube (CRT) screens), liquid-crystal display (LCD), plasma screens, organic light-emitting diode screens ( OLED, organic light-emitting diode), each with or without touch screen input capabilities, each with or without tactile feedback capabilities, some of them are capable of two-dimensional visual output or more than three-dimensional output through, for example, stereographic output, glasses virtual reality (not shown), holographic displays, smoke tanks (not shown) and printers (not shown). e shown).

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

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

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

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

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

[145] Устройства CPU 1041, GPU 1042, FPGA 1043 и ускорители 1044 могут выполнять некоторые инструкции, которые совместно могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в памяти ROM 1045 или RAM 1046. Временные данные также могут храниться в памяти RAM 1046, тогда как постоянные данные могут храниться, например, во внутреннем хранилище 1047 данных большой емкости. Быстрое сохранение и извлечение из любого запоминающего устройства может обеспечиваться за счет использования кэшпамяти, которая может быть тесно связана с одним или более процессорами CPU 1041, GPU 1042, хранилищем 1047 данных большой емкости, памятью ROM 1045, RAM 1046 и т.п.[145] CPU 1041, GPU 1042, FPGA 1043, and accelerators 1044 may execute some instructions that together may constitute the above computer code. This computer code may be stored in ROM 1045 or RAM 1046. Temporary data may also be stored in RAM 1046, while permanent data may be stored in, for example, internal high capacity data storage 1047. Rapid storage and retrieval from any storage device can be achieved through the use of a cache that can be tightly coupled to one or more CPU 1041, GPU 1042, mass storage 1047, ROM 1045, RAM 1046, and the like.

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

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

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

Claims (21)

1. Способ декодирования битового потока кодированных видеоданных с использованием по меньшей мере одного процессора, включающий:1. A method for decoding a bitstream of encoded video data using at least one processor, including: получение флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения;obtaining a flag indicating that the match window is not used for resampling the reference picture; на основе флага, указывающего на то, что окно соответствия не используется для передискретизации опорного изображения, определение, сигнализируется ли размер изображения передискретизации;based on a flag indicating that the match window is not used for resampling the reference picture, determining whether the size of the resampling picture is signaled; на основе определения того, что размер изображения передискретизации сигнализируется, определение коэффициента передискретизации на основе размера изображения передискретизации;based on determining that the size of the oversampling image is signaled, determining an oversampling ratio based on the size of the oversampling image; на основе определения того, что размер изображения передискретизации не сигнализируется, определение коэффициента передискретизации на основе размера выходного изображения; иbased on determining that the resampling image size is not signaled, determining an oversampling ratio based on the output image size; and выполнение передискретизации опорного изображения для текущего изображения с использованием коэффициента передискретизации.performing resampling of the reference picture on the current picture using the resampling factor. 2. Способ по п. 1, в котором флаг сигнализируют в наборе параметров изображения.2. The method of claim 1, wherein the flag is signaled in the image parameter set. 3. Способ по п. 1, в котором размер изображения передискретизации сигнализируют в битовом потоке кодированных видеоданных как ширину и/или высоту изображения передискретизации.3. The method of claim 1, wherein the resampling image size is signaled in the encoded video data bitstream as the width and/or height of the resampling image. 4. Способ по п. 3, в котором ширину и/или высоту сигнализируют в наборе параметров изображения.4. The method of claim 3, wherein the width and/or height are signaled in the image parameter set. 5. Способ по п. 3, в котором ширину и/или высоту выражают как количество отсчетов яркости, включенных в ширину и/или высоту.5. The method of claim 3, wherein the width and/or height is expressed as the number of luminance samples included in the width and/or height. 6. Способ по п. 3, в котором ширину и/или высоту определяют на основе по меньшей мере одного расстояния смещения между границей текущего изображения и заранее заданным отсчетом яркости опорной области.6. The method of claim 3, wherein the width and/or height is determined based on at least one offset distance between a current image boundary and a predetermined reference area brightness reference. 7. Способ по п. 6, в котором по меньшей мере одно расстояние смещения сигнализируют в наборе параметров изображения.7. The method of claim 6, wherein at least one offset distance is signaled in the image parameter set. 8. Способ по п. 6, в котором по меньшей мере одно расстояние смещения включает по меньшей мере одно из следующего:8. The method of claim 6, wherein the at least one offset distance comprises at least one of the following: расстояние горизонтального смещения между левой границей текущего изображения и левым верхним отсчетом яркости опорной области,horizontal offset distance between the left border of the current image and the upper left reference area brightness reading, расстояние вертикального смещения между верхней границей текущего изображения и левым верхним отсчетом яркости опорной области,vertical offset distance between the upper border of the current image and the upper left reference area brightness reading, расстояние горизонтального смещения между правой границей текущего изображения и правым нижним отсчетом яркости опорной области иhorizontal offset distance between the right border of the current image and the lower right reference area brightness reading, and расстояние вертикального смещения между нижней границей текущего изображения и правым нижним отсчетом яркости опорной области.vertical offset distance between the lower border of the current image and the lower right reference area brightness reading. 9. Устройство для декодирования битового потока кодированных видеоданных, содержащее:9. A device for decoding a bit stream of encoded video data, comprising: по меньшей мере одну память, сконфигурированную для хранения программного кода, иat least one memory configured to store program code, and по меньшей мере один процессор, сконфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода для осуществления способа декодирования битового потока кодированных видеоданных по любому из пп. 1-8.at least one processor configured to read the program code and operate in accordance with the instructions of the program code to implement the method for decoding the encoded video bitstream according to any one of paragraphs. 1-8. 10. Машиночитаемый носитель, хранящий инструкции, включающие: одну или более инструкций, которые при их исполнении одним или более процессорами устройства для декодирования битового потока кодированных видеоданных обеспечивают выполнение одним или более процессорами способа декодирования битового потока кодированных видеоданных по любому из пп. 1-8.10. A computer-readable medium 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 one or more processors to perform a method for decoding an encoded video bitstream according to any one of paragraphs. 1-8.
RU2021129213A 2019-09-24 2020-09-22 Reference picture resampling method with offset in video bitstream RU2772795C1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US62/905,319 2019-09-24
US17/022,727 2020-09-16

Publications (1)

Publication Number Publication Date
RU2772795C1 true RU2772795C1 (en) 2022-05-25

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308031B2 (en) * 1996-10-31 2007-12-11 Kabushiki Kaisha Toshiba Video encoding apparatus and video decoding apparatus
US20150304666A1 (en) * 2014-04-18 2015-10-22 Qualcomm Incorporated Conformance window information in multi-layer coding
US20150326865A1 (en) * 2012-09-27 2015-11-12 Doly Laboratories Licensing Corporation Inter-layer reference picture processing for coding standard scalability
US9319729B2 (en) * 2006-01-06 2016-04-19 Microsoft Technology Licensing, Llc Resampling and picture resizing operations for multi-resolution video coding and decoding
RU2653299C2 (en) * 2014-03-17 2018-05-07 Нокиа Текнолоджиз Ой Method and device for video coding and decoding
US20190075323A1 (en) * 2014-04-25 2019-03-07 Sharp Kabushiki Kaisha Image decoding device, image encoding device, and image decoding method
US20190174144A1 (en) * 2013-10-15 2019-06-06 Nokia Technologies Oy Video encoding and decoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7308031B2 (en) * 1996-10-31 2007-12-11 Kabushiki Kaisha Toshiba Video encoding apparatus and video decoding apparatus
US9319729B2 (en) * 2006-01-06 2016-04-19 Microsoft Technology Licensing, Llc Resampling and picture resizing operations for multi-resolution video coding and decoding
US20150326865A1 (en) * 2012-09-27 2015-11-12 Doly Laboratories Licensing Corporation Inter-layer reference picture processing for coding standard scalability
US20190174144A1 (en) * 2013-10-15 2019-06-06 Nokia Technologies Oy Video encoding and decoding
RU2653299C2 (en) * 2014-03-17 2018-05-07 Нокиа Текнолоджиз Ой Method and device for video coding and decoding
US20150304666A1 (en) * 2014-04-18 2015-10-22 Qualcomm Incorporated Conformance window information in multi-layer coding
US20190075323A1 (en) * 2014-04-25 2019-03-07 Sharp Kabushiki Kaisha Image decoding device, image encoding device, and image decoding method

Similar Documents

Publication Publication Date Title
CN112806009B (en) Method and related device for generating merging candidate list
JP7436602B2 (en) Methods, apparatus and computer programs for decoding encoded video bitstreams
AU2020356392B2 (en) Method for reference picture resampling with offset in video bitstream
CN113574873A (en) Tile and sub-image segmentation
KR102380591B1 (en) Signaling of scalability parameters in the video bitstream
CN113424546A (en) Method and apparatus for further improved context design of prediction modes and Coded Block Flags (CBFs)
CN112005549B (en) Intra-frame and inter-frame prediction control method, device, equipment and storage medium
AU2020348214B2 (en) Signaling of reference picture resampling with resampling picture size indication in video bitstream
CN111953996A (en) Method and device for video decoding
RU2772795C1 (en) Reference picture resampling method with offset in video bitstream
RU2782247C1 (en) Signalling of oversampling of the reference image indicating the size of the oversampled image in a video bitstream
RU2785364C1 (en) Method for cyclic motion compensation with oversampling of the reference image
RU2779911C1 (en) Signaling of scalability parameters in the video bitstream
RU2783382C1 (en) Signalling of inter-layer prediction in a video bitstream
RU2815415C2 (en) Signalling for reference image oversampling with indication of constant window size in video bit stream
JP7391994B2 (en) Method, apparatus and computer program product for signaling output picture size for reference picture resampling
RU2777924C1 (en) Method for signaling a set of output levels with a subimage
RU2785689C1 (en) Technique for extracting a subimage bit stream from a stream of encoded video data
RU2784414C1 (en) Signalling the size of the output image for oversampling the reference image
RU2791938C1 (en) Transmission of interlayer prediction in video bit stream
CN118476222A (en) Signaling of downsampling filters for intra prediction modes from luma to chroma