[go: up one dir, main page]

RU2817618C2 - Processing multiple image sizes and matching windows for resampling reference image when encoding video - Google Patents

Processing multiple image sizes and matching windows for resampling reference image when encoding video Download PDF

Info

Publication number
RU2817618C2
RU2817618C2 RU2022102797A RU2022102797A RU2817618C2 RU 2817618 C2 RU2817618 C2 RU 2817618C2 RU 2022102797 A RU2022102797 A RU 2022102797A RU 2022102797 A RU2022102797 A RU 2022102797A RU 2817618 C2 RU2817618 C2 RU 2817618C2
Authority
RU
Russia
Prior art keywords
image
samples
luma
parameters
pic
Prior art date
Application number
RU2022102797A
Other languages
Russian (ru)
Other versions
RU2022102797A (en
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 Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2022102797A publication Critical patent/RU2022102797A/en
Application granted granted Critical
Publication of RU2817618C2 publication Critical patent/RU2817618C2/en

Links

Images

Abstract

FIELD: physics.
SUBSTANCE: invention relates to image encoding techniques. Result is achieved by the fact that the decoding method includes receiving a first set of image parameters and a second set of image parameters, each of which relates to the same set of sequence parameters, wherein, when the first set of image parameters and the second set of image parameters have the same image width and image height, first set of image parameters and second set of image parameters have the same matching window values; and applying a match window to the current image corresponding to the first set of image parameters or the second set of image parameters.
EFFECT: high efficiency of encoding images.
21 cl, 14 dwg

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИCROSS REFERENCE TO RELATED APPLICATIONS

[0001] Настоящая заявка на патент испрашивает приоритет предварительной заявки на патент США №. 62/871,493, поданной 8 июля 2019 г., Jianle Chen и др., и озаглавленной «Обработка множественного размеров изображения и окна соответствия для передискретизации опорного изображения при кодировании видео», которая полностью включена в настоящий документ посредством ссылки. [0001] This patent application claims priority to U.S. Provisional Patent Application No. 62/871,493, filed July 8, 2019, Jianle Chen et al., entitled “Multiple Image Size and Correspondence Window Processing for Reference Image Resampling in Video Coding,” which is incorporated herein by reference in its entirety.

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

[0002] В общем, настоящее изобретение описывает методы для поддержки множества размеров изображения и окон соответствия (conformance window) при кодировании видео. Более конкретно, настоящее изобретение обеспечивает, что наборы параметров изображения, которые имеют одинаковый размер изображения, также имеют одинаковое окно соответствия. [0002] In general, the present invention describes methods for supporting multiple image sizes and conformance windows in video encoding. More specifically, the present invention ensures that image parameter sets that have the same image size also have the same matching window.

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

[0003] Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео желательны улучшенные методы сжатия и распаковки, которые улучшают степень сжатия с минимальными потерями в качестве изображения или вообще без них. [0003] The amount of video data required to present even a relatively short video can be significant, which can lead to difficulties when the data must be streamed or otherwise transmitted over a communications network with limited bandwidth. Thus, video data is typically compressed before being transmitted over modern telecommunications networks. Video size can also be an issue when the video is stored on a storage device, as memory resources may be limited. Video compression devices often use software and/or hardware at the source to encode video data before transmission or storage, thereby reducing the amount of data required to represent digital video images. The compressed data is then received by the recipient's video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher video quality, improved compression and decompression techniques are desired that improve compression rates with little or no loss in image quality.

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

[0004] Первый аспект относится к способу декодирования кодированного битового потока видео, осуществляемомуосуществляемому видеодекодером. Способ включает в себя прием видеодекодером первого набора параметров изображения и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности, при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины изображения и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия; и применение видеодекодером окна соответствия к текущему изображению, соответствующему первому набору параметров изображения или второму набору параметров изображения.[0004] The first aspect relates to a method for decoding an encoded video bitstream performed by a video decoder. The method includes receiving by a video decoder a first set of image parameters and a second set of image parameters, each of which refers to the same set of sequence parameters, wherein the first set of image parameters and the second set of image parameters have the same image width and image height values. , the first set of image parameters and the second set of image parameters have the same matching window values; and applying, by the video decoder, a matching window to the current image corresponding to the first set of image parameters or the second set of image parameters.

[0005] Способ обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR, reference picture resampling). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0005] The method provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters that have the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0006] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.[0006] Possibly in any of the preceding aspects, another implementation of the aspect provides that the match window comprises a match window offset left, a match window right offset, a match window offset up, and a match window offset down.

[0007] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает декодирование текущего изображения, соответствующего первому набору параметров изображения или второму набору параметров изображения, с использованием межкадрового предсказания после применения окна соответствия, при этом межкадровое предсказание основано на передискретизированном опорном изображении.[0007] Possibly in any of the preceding aspects, another implementation of the aspect provides decoding of the current image corresponding to the first set of image parameters or the second set of image parameters using inter-frame prediction after applying a matching window, wherein the inter-frame prediction is based on the resampled reference image.

[0008] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает передискретизацию опорного изображения, связанного с текущим изображением, соответствующим первому набору параметров изображения или второму набору параметров изображения, с использованием передискретизации опорного изображения (RPS).[0008] Possibly in any of the preceding aspects, another embodiment of the aspect resamples a reference picture associated with a current picture corresponding to a first set of picture parameters or a second set of picture parameters using reference picture resampling (RPS).

[0009] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что передискретизация опорного изображения изменяет разрешение опорного изображения, используемого для межкадрового предсказания текущего изображения, соответствующего первому набору параметров изображения или второму набору параметров изображения.[0009] Possibly in any of the preceding aspects, another implementation of the aspect provides that resampling the reference image changes the resolution of the reference image used for inter-frame prediction of the current image corresponding to the first set of image parameters or the second set of image parameters.

[0010] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что ширина изображения и высота изображения измеряются в выборках яркости.[0010] Possibly in any of the preceding aspects, another implementation of the aspect ensures that the image width and image height are measured in luminance samples.

[0011] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает определение, включен ли двунаправленный оптический поток (BDOF, bi-direction optical flow) для декодирования изображения на основе ширины изображения, высоты изображения и окна соответствия текущего изображения и опорного изображения для текущего изображения.[0011] Possibly in any of the preceding aspects, another implementation of the aspect provides for determining whether bi-directional optical flow (BDOF) is enabled for decoding an image based on the image width, image height, and the matching window between the current image and a reference image for the current Images.

[0012] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает определение, включено ли уточнение вектора движения на стороне декодера (DMVR, decoder-side motion vector refinement) для декодирования изображения на основе ширины изображения, высоты изображения и окна соответствия текущего изображения и опорного изображения для текущего изображения.[0012] Possibly in any of the preceding aspects, another implementation of the aspect provides for determining whether decoder-side motion vector refinement (DMVR) is enabled for decoding a picture based on the picture width, picture height, and match window of the current picture, and reference image for the current image.

[0013] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает отображение на дисплее электронного устройства изображения, сформированного с использованием текущего блока.[0013] Possibly in any of the preceding aspects, another embodiment of the aspect causes an image generated using the current block to be displayed on the display of an electronic device.

[0014] Второй аспект относится к способу кодирования битового потока видео, осуществляемому видеокодером. Способ включает в себя создание посредством видеокодера первого набора параметров изображения и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности, при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины изображения и высоту изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия; кодирование посредством видеокодера первого набора параметров изображения и второго набора параметров изображения в битовый поток видео; и сохранение посредством видеокодера битового потока видео для передачи в видеодекодер.[0014] The second aspect relates to a method for encoding a video bitstream by a video encoder. The method includes creating, by a video encoder, a first set of image parameters and a second set of image parameters, each of which relates to the same set of sequence parameters, wherein the first set of image parameters and the second set of image parameters have the same image width and height values. images, the first set of image parameters and the second set of image parameters have the same matching window values; encoding, by a video encoder, the first set of image parameters and the second set of image parameters into a video bitstream; and storing, by the video encoder, the video bit stream for transmission to the video decoder.

[0015] Способ обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0015] The method provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters having the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0016] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.[0016] Possibly in any of the preceding aspects, another implementation of the aspect provides that the match window comprises a match window offset left, a match window right offset, a match window offset up, and a match window offset down.

[0017] Возможно, в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что ширина изображения и высота изображения измеряются в выборках яркости.[0017] Optionally, in any of the preceding aspects, another implementation of the aspect ensures that the image width and image height are measured in luminance samples.

[0018] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает передачу битового потока видео, содержащего первый набор параметров изображения и второй набор параметров изображения, в видеодекодер.[0018] Possibly in any of the preceding aspects, another embodiment of the aspect provides a video bitstream comprising a first set of image parameters and a second set of image parameters to a video decoder.

[0019] Третий аспект относится к устройству декодирования. Устройство декодирования включает в себя приемник, выполненный с возможностью приема кодированного битового потока видео; память, соединенную с приемником, хранящую инструкции; и процессор, соединенный с памятью, при этом процессор выполнен с возможностью выполнения инструкций для инициирования устройства декодирования для: приема первого набора параметров изображения и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности, при этом когда первый набор параметров изображения и второй набор параметров изображения имеет одинаковые значения ширины изображения и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия; и применения окна соответствия к текущему изображению, соответствующему первому набору параметров изображения или второму набору параметров изображения.[0019] The third aspect relates to the decoding device. The decoding device includes a receiver configured to receive an encoded video bitstream; a memory connected to the receiver that stores instructions; and a processor coupled to the memory, wherein the processor is configured to execute instructions for causing the decoding device to: receive a first set of image parameters and a second set of image parameters, each of which relates to the same set of sequence parameters, wherein when the first set image parameters and the second set of image parameters have the same image width and image height, the first set of image parameters and the second set of image parameters have the same matching window values; and applying a match window to the current image corresponding to the first set of image parameters or the second set of image parameters.

[0020] Устройство декодирования обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда включена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0020] The decoding apparatus provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters that have the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0021] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает окно соответствия, содержащее смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.[0021] Possibly in any of the preceding aspects, another implementation of the aspect provides a match window comprising a left offset match window, a right offset match window, an up offset match window, and a down offset match window.

[0022] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает декодирование текущего изображения, соответствующего первому набору параметров изображения или второму набору параметров изображения, с использованием межкадрового предсказания после применения окна соответствия, при этом межкадровое предсказание основано на передискретизированном опорном изображении.[0022] Possibly in any of the preceding aspects, another implementation of the aspect provides decoding of the current image corresponding to the first set of image parameters or the second set of image parameters using inter-frame prediction after applying a matching window, wherein the inter-frame prediction is based on the resampled reference image.

[0023] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает отображение, выполненное с возможностью отображения изображения, созданного на основе текущего изображения.[0023] Possibly in any of the preceding aspects, another implementation of the aspect provides a display configured to display an image created based on the current image.

[0024] Четвертый аспект относится к устройству кодирования. Устройство кодирования включает в себя память, содержащую инструкции; процессор, соединенный с памятью, при этом процессор выполнен с возможностью выполнения инструкций, для инициирования устройства кодирования для: формирования первого набора параметров изображения и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности, при этом когда первый набор параметров изображения и второй набор параметров изображения имеет одинаковые значения ширины изображения и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия; и кодирование первого набора параметров изображения и второго набора параметров изображения в битовый поток видео; и передатчик, соединенный с процессором, при этом передатчик выполнен с возможностью передачи битового потока видео, содержащего первый набор параметров изображения и второй набор параметров изображения, в видеодекодер.[0024] The fourth aspect relates to the encoding device. The encoding device includes a memory containing instructions; a processor coupled to the memory, wherein the processor is configured to execute instructions to initiate an encoder to: generate a first set of image parameters and a second set of image parameters, each of which relates to the same set of sequence parameters, wherein when the first set image parameters and the second set of image parameters have the same image width and image height, the first set of image parameters and the second set of image parameters have the same matching window values; and encoding the first set of image parameters and the second set of image parameters into a video bitstream; and a transmitter coupled to the processor, wherein the transmitter is configured to transmit a video bitstream comprising a first set of image parameters and a second set of image parameters to the video decoder.

[0025] Устройство кодирования обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0025] The encoder provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters having the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0026] Возможно, в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает окно соответствия, содержащее смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.[0026] Optionally, in any of the preceding aspects, another implementation of the aspect provides a match window comprising a left offset match window, a right offset match window, an up offset match window, and a down offset match window.

[0027] Возможно, в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает, что ширина и высота изображения измеряются в выборках яркости.[0027] Perhaps in any of the preceding aspects, another embodiment of the aspect ensures that the width and height of the image are measured in luminance samples.

[0028] Пятый аспект относится к оборудованию кодирования. Оборудование кодирования включает в себя приемник, выполненный с возможностью приема изображения для кодирования или для приема битового потока для декодирования; передатчик, соединенный с приемником, при этом передатчик выполнен с возможностью передачи битового потока на декодер или для передачи декодированного изображения на дисплей; память, соединенную по меньшей мере с одним из приемника или передатчика, при этом память выполнена с возможностью хранения инструкций; и процессор, соединенный с памятью, при этом процессор выполнен с возможностью выполнения инструкций, хранящихся в памяти, для выполнения любого из способов, раскрытых в данном документе.[0028] The fifth aspect relates to encoding equipment. The encoding equipment includes a receiver configured to receive an image for encoding or to receive a bit stream for decoding; a transmitter coupled to the receiver, wherein the transmitter is configured to transmit a bit stream to a decoder or to transmit a decoded image to a display; a memory connected to at least one of the receiver or transmitter, the memory being configured to store instructions; and a processor coupled to the memory, wherein the processor is configured to execute instructions stored in the memory to perform any of the methods disclosed herein.

[0029] Оборудование кодирования обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0029] Encoding hardware provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters having the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0030] Возможно в любом из предшествующих аспектов, другое осуществление аспекта обеспечивает дисплей, выполненный с возможностью отображения изображения.[0030] Possibly in any of the preceding aspects, another embodiment of the aspect provides a display configured to display an image.

[0031] Шестой аспект относится к системе. Система включает в себя кодер; и декодер, соединенный с кодером, при этом кодер или декодер включает в себя устройство декодирования, устройство кодирования или оборудование кодирования, раскрытые в данном документе.[0031] The sixth aspect relates to the system. The system includes an encoder; and a decoder coupled to the encoder, wherein the encoder or decoder includes a decoding apparatus, an encoding apparatus, or an encoding equipment disclosed herein.

[0032] Система обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0032] The system provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters having the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0033] Седьмой аспект относится к средству кодирования. Средство кодирования включает в себя средство приема, выполненное с возможностью приема изображения для кодирования или для приема битового потока для декодирования; средство передачи, соединенное со средством приема, средство передачи, выполненное с возможностью передачи битового потока на средство декодирования или передачи декодированного изображения на средство отображения; средство хранения, соединенное по меньшей мере с одним из средства приема или средства передачи, средство хранения выполнено с возможностью хранения инструкций; и средство обработки, соединенное со средством хранения, средство обработки, выполненное с возможностью выполнения инструкций, хранящихся в средстве хранения, для выполнения любого из способов, раскрытых в данном документе.[0033] The seventh aspect relates to the encoding means. The encoding means includes receiving means configured to receive an image for encoding or to receive a bit stream for decoding; transmission means connected to the reception means, transmission means configured to transmit a bit stream to the decoding means or transmit a decoded image to the display means; a storage means connected to at least one of the receiving means or the transmitting means, the storage means configured to store instructions; and processing means coupled to the storage means, the processing means configured to execute instructions stored in the storage means to perform any of the methods disclosed herein.

[0034] Средство кодирования обеспечивает методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0034] The encoding engine provides methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters having the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0035] Для ясности любой из вышеупомянутых вариантов осуществления изобретения может быть объединен с любым одним или более другими вышеупомянутыми вариантами осуществления изобретения, чтобы создать новый вариант осуществления в пределах объема настоящего изобретения.[0035] For clarity, any of the above embodiments may be combined with any one or more of the other above embodiments to create a new embodiment within the scope of the present invention.

[0036] Эти и другие особенности будут более понятны из следующего подробного описания, рассматриваемого вместе с сопроводительными чертежами и формулой изобретения. [0036] These and other features will be better understood from the following detailed description when taken in conjunction with the accompanying drawings and claims.

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

[0037] Для более полного понимания настоящего изобретения дана ссылка на следующее краткое описание, взятое в связи с сопроводительными чертежами и подробным описанием, в котором одинаковые номера позиций представляют одинаковые части.[0037] To provide a more complete understanding of the present invention, reference is made to the following brief description taken in conjunction with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.

[0038] Фиг. 1 - блок-схема примерного способа кодирования видеосигнала.[0038] FIG. 1 is a flow diagram of an exemplary method for encoding a video signal.

[0039] Фиг. 2 - схематическая диаграмма примерной системы кодирования и декодирования (кодека) для видеокодирования.[0039] FIG. 2 is a schematic diagram of an exemplary encoding and decoding system (codec) for video encoding.

[0040] Фиг. 3 - схематическая диаграмма, иллюстрирующая пример видеокодера.[0040] FIG. 3 is a schematic diagram illustrating an example of a video encoder.

[0041] Фиг. 4 - схематическая диаграмма, иллюстрирующая пример видеодекодера.[0041] FIG. 4 is a schematic diagram illustrating an example of a video decoder.

[0042] Фиг. 5 - кодированная видеопоследовательность, изображающая взаимосвязь между изображением внутренней точки произвольного доступа (IRAP, intra random access point) относительно начальных и конечных изображений в порядке декодирования и порядке представления.[0042] FIG. 5 is a coded video sequence depicting the relationship between an intra random access point (IRAP) image with respect to leading and trailing images in decoding order and presentation order.

[0043] Фиг. 6 иллюстрирует пример многоуровневого кодирования для пространственной масштабируемости.[0043] FIG. 6 illustrates an example of layered coding for spatial scalability.

[0044] Фиг. 7 - схематическая диаграмма, иллюстрирующая пример однонаправленного межкадрового предсказания. [0044] FIG. 7 is a schematic diagram illustrating an example of unidirectional inter-frame prediction.

[0045] Фиг. 8 - схематическая диаграмма, иллюстрирующая пример двунаправленного межкадрового предсказания.[0045] FIG. 8 is a schematic diagram illustrating an example of bidirectional inter-frame prediction.

[0046] Фиг. 9 иллюстрирует битовый поток видео.[0046] FIG. 9 illustrates a video bitstream.

[0047] Фиг. 10 иллюстрирует метод разделения изображения.[0047] FIG. 10 illustrates the image division method.

[0048] Фиг. 11 - вариант осуществления способа декодирования кодированного битового потока видео.[0048] FIG. 11 illustrates an embodiment of a method for decoding an encoded video bitstream.

[0049] Фиг. 12 - вариант осуществления способа кодирования битового потока кодированного видео.[0049] FIG. 12 illustrates an embodiment of a method for encoding a coded video bitstream.

[0050] Фиг. 13 - схематическая диаграмма устройства видеокодирования.[0050] FIG. 13 is a schematic diagram of a video encoding device.

[0051] Фиг. 14 - схематическая диаграмма варианта осуществления средства кодирования. [0051] FIG. 14 is a schematic diagram of an embodiment of an encoding means.

ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF OPTIONS FOR IMPLEMENTING THE INVENTION

[0052] Вначале следует понимать, что хотя иллюстративная реализация одного или более вариантов осуществления представлена ниже, раскрытые системы и/или способы могут быть реализованы с использованием любого количества методов, известных в настоящее время или существующих. Изобретение ни в коем случае не должно ограничиваться иллюстративными реализациями, чертежами и технологиями, проиллюстрированными ниже, включая иллюстративные конструкции и реализации, проиллюстрированные и описанные здесь, но может быть изменено в пределах объема прилагаемой формулы изобретения вместе с полным объемом их эквивалентов.[0052] At the outset, it should be understood that while an illustrative implementation of one or more embodiments is presented below, the disclosed systems and/or methods may be implemented using any number of techniques currently known or existing. The invention is in no way intended to be limited to the exemplary implementations, drawings and techniques illustrated below, including the exemplary designs and implementations illustrated and described herein, but may be varied within the scope of the appended claims along with the full scope of their equivalents.

[0053] Следующие ниже термины определены следующим образом, если они не используются в данном документе в противоположном контексте. В частности, следующие определения предназначены для дополнительной ясности настоящего изобретения. Однако в разных контекстах термины могут описываться по-разному. Соответственно, следующие определения следует рассматривать как дополнение и не следует рассматривать как ограничение каких-либо других определений описаний, обеспеченных для таких терминов в данном документе.[0053] The following terms are defined as follows unless otherwise used herein. In particular, the following definitions are intended to further clarify the present invention. However, the terms may be described differently in different contexts. Accordingly, the following definitions should be considered in addition to, and should not be construed as a limitation of, any other definitions of the descriptions provided for such terms herein.

[0054] Битовый поток - это последовательность битов, включающая видеоданные, которые сжимаются для передачи между кодером и декодером. Кодер - это устройство, которое выполнено с возможностью использования процессов кодирования для сжатия видеоданных в битовый поток. Декодер - это устройство, которое выполнено с возможностью использования процессов декодирования для восстановления видеоданных из битового потока для отображения. Изображение - это массив выборок яркости и/или массив выборок цветности, которые создают кадр или его поле. Изображение, которое кодируется или декодируется, может называться текущим изображением для ясности обсуждения.[0054] A bitstream is a sequence of bits including video data that is compressed for transmission between an encoder and a decoder. An encoder is a device that is configured to use encoding processes to compress video data into a bit stream. A decoder is a device that is configured to use decoding processes to recover video data from a bitstream for display. An image is an array of luminance samples and/or an array of chrominance samples that create a frame or its field. The image that is being encoded or decoded may be called the current image for clarity of discussion.

[0055] Опорное изображение - это изображение, которое содержит опорные выборки, которые могут использоваться при кодировании других изображений по ссылке в соответствии с межкадровым предсказанием и/или межуровневым предсказанием. Список опорных изображений - это список опорных изображений, используемых для межкадрового предсказания и/или межуровневого предсказания. Некоторые системы кодирования видео используют два списка опорных изображений, которые могут быть обозначены как первый список опорных изображений и нулевой список опорных изображений. Структура списка опорных изображений - это адресуемая структура синтаксиса, которая содержит множество списков опорных изображений. Межкадровое предсказание - это механизм кодирования выборок текущего изображения посредством ссылки на указанные выборки в опорном изображении, которое отличается от текущего изображения, где опорное изображение и текущее изображение находятся на одном уровне. Элемент структуры списка опорных изображений - это адресуемое место в структуре списка опорных изображений, которое указывает опорное изображение, связанное со списком опорных изображений.[0055] A reference picture is a picture that contains reference samples that can be used when encoding other pictures by reference in accordance with inter-picture prediction and/or inter-layer prediction. The reference picture list is a list of reference pictures used for inter-picture prediction and/or inter-layer prediction. Some video coding systems use two reference picture lists, which may be referred to as the first reference picture list and the zero reference picture list. A reference picture list structure is an addressable syntax structure that contains a plurality of reference picture lists. Inter-picture prediction is a mechanism for encoding samples of a current picture by reference to said samples in a reference picture that is different from the current picture, where the reference picture and the current picture are at the same level. A reference picture list structure element is an addressable location in the reference picture list structure that indicates a reference picture associated with the reference picture list.

[0056] Заголовок слайса - это часть кодированного слайса, содержащая элементы данных, относящиеся ко всем видеоданным в мозаике, представленной в слайсе. Набор параметров изображения (PPS, picture parameter set) - это набор параметров, который содержит данные, относящиеся ко всему изображению. Более конкретно, PPS - это структура синтаксиса, содержащая синтаксические элементы, которые применяются к нулю или более целым кодированным изображениям, как определено синтаксическим элементом, найденным в каждом заголовке изображения. Набор параметров последовательности (SPS, sequence parameter set) - это набор параметров, который содержит данные, относящиеся к последовательности изображений. Блок доступа (AU, access unit) - это набор из одного или более кодированных изображений, связанных с одним и тем же временем отображения (например, с одним и тем же счетчиком порядка изображений) для вывода из буфера декодированных изображений (DPB, decoded picture buffer) (например, для отображения пользователю). Декодированная видеопоследовательность - это последовательность изображений, которые были восстановлены декодером при подготовке к отображению пользователю.[0056] A slice header is a portion of the encoded slice containing data elements related to all video data in the mosaic represented in the slice. A picture parameter set (PPS) is a set of parameters that contains data related to the entire image. More specifically, a PPS is a syntax structure containing syntax elements that apply to zero or more entire encoded pictures, as defined by the syntax element found in each picture header. A sequence parameter set (SPS) is a set of parameters that contains data related to a sequence of images. An access unit (AU) is a set of one or more coded pictures associated with the same display time (for example, the same picture order counter) for output from the decoded picture buffer (DPB). ) (for example, for display to the user). A decoded video sequence is a sequence of images that have been reconstructed by the decoder in preparation for display to the user.

[0057] Окно обрезки соответствия (или просто окно соответствия) относится к окну выборок изображения в кодированной видеопоследовательности, выводимой в результате процесса кодирования. Битовый поток может обеспечивать параметры обрезки окна соответствия, чтобы указать область вывода кодированного изображения. Ширина изображения - это ширина изображения, измеренная в выборках яркости. Высота изображения - это высота изображения, измеренная в выборках яркости. Смещения окна соответствия (например, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset) определяют выборки изображений, ссылающихся на PPS, которые выводятся из процесса декодирования, в терминах прямоугольной области, указанной в координатах изображения для вывода.[0057] A match crop window (or simply a match window) refers to a window of image samples in the encoded video sequence output from the encoding process. The bitstream may provide matching window trimming parameters to indicate an output region of the encoded image. Image width is the width of the image measured in luminance samples. Image height is the height of the image measured in luminance samples. The match window offsets (eg, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset) define the samples of images referencing the PPS that are output from the decoding process, in terms of a rectangular area specified by the output image coordinates.

[0058] Уточнение вектора движения на стороне декодера (DMVR, Decoder-Side Motion Vector Refinement) - это процесс, алгоритм или инструмент кодирования, используемый для уточнения вектора движения или векторов движения для предсказанного блока. DMVR позволяет найти вектор движения на основе двух векторов движения, найденных для двунаправленного предсказания, с использованием процесса двустороннего сопоставления шаблонов. В DMVR может быть найдена взвешенная комбинация блоков кодирования предсказания, сформированная с каждым из двух векторов движения, и два вектора движения могут быть уточнены путем замены их новыми векторами движения, которые наилучшим образом указывают на объединенный блок кодирования предсказания. Двунаправленный оптический поток (BDOF, Bi-Direction Optical Flow) - это процесс, алгоритм или инструмент кодирования, используемый для уточнения движения или векторов движения для предсказанного блока. BDOF позволяет находить векторы движения для блоков субкодирования на основе градиента разницы между двумя опорными изображениями.[0058] Decoder-Side Motion Vector Refinement (DMVR) is a coding process, algorithm, or tool used to refine the motion vector or motion vectors for a predicted block. DMVR allows one to find a motion vector based on two motion vectors found for bidirectional prediction using a two-way template matching process. In the DMVR, a weighted combination of prediction coding blocks formed with each of the two motion vectors can be found, and the two motion vectors can be refined by replacing them with new motion vectors that best point to the combined prediction coding block. Bi-Direction Optical Flow (BDOF) is a coding process, algorithm, or tool used to refine motion or motion vectors for a predicted block. BDOF allows motion vectors for subcoding blocks to be found based on the gradient of the difference between two reference images.

[0059] Передискретизация опорного изображения (RPR, Reference Picture Resampling) - это способность изменять пространственное разрешение кодированных изображений в середине битового потока без необходимости внутреннего кодирования изображения в месте изменения разрешения. Используемое здесь разрешение описывает количество пикселей в видеофайле. То есть разрешение - это ширина и высота проецируемого изображения, измеряемая в пикселях. Например, видео может иметь разрешение 1280 (пикселей по горизонтали) × 720 (пикселей по вертикали). Обычно это записывается просто как 1280 × 720 или сокращенно до 720 пикс.[0059] Reference Picture Resampling (RPR) is the ability to change the spatial resolution of encoded images in the middle of a bitstream without the need for internal image encoding at the location of the resolution change. The resolution used here describes the number of pixels in a video file. That is, resolution is the width and height of the projected image, measured in pixels. For example, a video might have a resolution of 1280 (horizontal pixels) × 720 (vertical pixels). This is usually written simply as 1280×720 or shortened to 720px.

[0060] Уточнение вектора движения на стороне декодера (DMVR, Decoder-side motion vector refinement) - это процесс, алгоритм или инструмент кодирования, используемый для уточнения вектора движения или векторов движения для предсказанного блока. Двунаправленный оптический поток (BDOF, bi-directional optical flow), который также известен как двунаправленный оптический поток (BIO), представляет собой процесс, алгоритм или инструмент кодирования, используемый для уточнения движения или векторов движения для предсказанного блока. Функция передискретизации опорного изображения (RPR, reference picture resampling) - это способность изменять пространственное разрешение кодированных изображений в середине битового потока без необходимости внутреннего кодирования изображения в месте изменения разрешения.[0060] Decoder-side motion vector refinement (DMVR) is a process, algorithm, or encoding tool used to refine the motion vector or motion vectors for a predicted block. Bi-directional optical flow (BDOF), also known as bidirectional optical flow (BIO), is a coding process, algorithm, or tool used to refine motion or motion vectors for a predicted block. Reference picture resampling (RPR) is the ability to change the spatial resolution of encoded images in the middle of a bitstream without the need for internal image encoding at the point where the resolution is changed.

[0061] В данном документе используются следующие сокращения: блок дерева кодирования (CTB, Coding Tree Block), блок дерева кодирования (CTU, Coding Tree Unit), блок кодирования (CU, Coding Unit), закодированная видеопоследовательность (CVS, Coded Video Sequence), объединенная группа экспертов по видео (JVET, Joint Video Experts Team), набор плиток с ограничением движения (MCTS, Motion-Constrained Tile Set), максимальный блок передачи (MTU, Maximum Transfer Unit), уровень сетевой абстракции (NAL, Network Abstraction Layer), счетчик порядка изображений (POC, Picture Order Count), полезная нагрузка необработанной байтовой последовательности (RBSP, Raw Byte Sequence Payload), набор параметров последовательности (SPS, Sequence Parameter Set), универсальное кодирование видео (VVC, Versatile Video Coding) и рабочий черновик (WD, Working Draft).[0061] The following abbreviations are used in this document: Coding Tree Block (CTB), Coding Tree Unit (CTU), Coding Unit (CU), Coded Video Sequence (CVS) , Joint Video Experts Team (JVET), Motion-Constrained Tile Set (MCTS), Maximum Transfer Unit (MTU), Network Abstraction Layer (NAL) ), picture order counter (POC, Picture Order Count), raw byte sequence payload (RBSP, Raw Byte Sequence Payload), sequence parameter set (SPS, Sequence Parameter Set), universal video coding (VVC, Versatile Video Coding) and worker draft (WD, Working Draft).

[0062] Фиг. 1 является блок-схемой примерного рабочего способа 100 кодирования видеосигнала. В частности, видеосигнал кодируется в кодере. Процесс кодирования сжимает видеосигнал, используя различные механизмы для уменьшения размера видеофайла. Меньший размер файла позволяет передавать сжатый видеофайл пользователю, уменьшая при этом накладные расходы на полосу пропускания. Затем декодер декодирует сжатый видеофайл, чтобы восстановить исходный видеосигнал для отображения конечному пользователю. Процесс декодирования обычно отражает процесс кодирования, чтобы декодер мог последовательно восстанавливать видеосигнал.[0062] FIG. 1 is a flow diagram of an exemplary operating method 100 for encoding a video signal. In particular, the video signal is encoded in the encoder. The encoding process compresses the video signal using various mechanisms to reduce the size of the video file. The smaller file size allows the compressed video file to be transmitted to the user while reducing bandwidth overhead. The decoder then decodes the compressed video file to reconstruct the original video signal for display to the end user. The decoding process usually mirrors the encoding process so that the decoder can reconstruct the video signal sequentially.

[0063] На этапе 101 видеосигнал вводится в кодер. Например, видеосигнал может быть несжатым видеофайлом, хранящимся в памяти. В качестве другого примера видеофайл может быть захвачен устройством видеозахвата, например, видеокамерой, и закодирован для поддержки потоковой передачи видео в реальном времени. Видеофайл может включать в себя как аудиокомпонент, так и видеокомпонент. Компонент видео содержит серию кадров изображения, которые при просмотре в последовательности создают визуальное впечатление движения. Кадры содержат пиксели, которые выражаются в единицах света, называемых здесь компонентами яркости (или выборками яркости), и цветом, который упоминается как компоненты цветности (или выборки цвета). В некоторых примерах кадры могут также содержать значения глубины для поддержки трехмерного просмотра.[0063] At step 101, the video signal is input to the encoder. For example, the video signal may be an uncompressed video file stored in memory. As another example, a video file may be captured by a video capture device, such as a video camera, and encoded to support real-time video streaming. A video file may include both an audio component and a video component. A video component contains a series of image frames that, when viewed in sequence, create the visual impression of movement. Frames contain pixels that are expressed in units of light, referred to here as luminance components (or luminance samples), and color, which are referred to as chrominance components (or color samples). In some examples, frames may also contain depth values to support 3D viewing.

[0064] На этапе 103 видео разбивается на блоки. Разделение включает в себя разделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, при высокоэффективном кодировании видео (HEVC, High Efficiency Video Coding) (также известном как H.265 и MPEG-H, часть 2) кадр сначала можно разделить на блоки дерева кодирования (CTU), которые представляют собой блоки заранее определенного размера (например, шестьдесят-четыре пикселя на шестьдесят четыре пикселя). Блоки CTU содержат выборки яркости и цветности. Деревья кодирования могут использоваться для разделения CTU на блоки, а затем рекурсивно разделять блоки до тех пор, пока не будут достигнуты конфигурации, поддерживающие дальнейшее кодирование. Например, компоненты яркости кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения освещения. Кроме того, компоненты цветности кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения меняются в зависимости от содержимого видеокадров.[0064] At step 103, the video is divided into blocks. Dividing involves dividing the pixels in each frame into square and/or rectangular blocks for compression. For example, in High Efficiency Video Coding (HEVC) (also known as H.265 and MPEG-H Part 2), a frame can first be divided into Coding Tree Units (CTUs), which are blocks of a predetermined size (e.g. , sixty-four pixels by sixty-four pixels). CTU blocks contain luma and chrominance samples. Encoding trees can be used to partition a CTU into blocks and then recursively partition the blocks until configurations that support further encoding are reached. For example, the luminance components of a frame can be subdivided until the individual blocks contain relatively uniform illuminance values. Additionally, the chrominance components of a frame can be subdivided until the individual blocks contain relatively uniform color values. Accordingly, the division mechanisms vary depending on the content of the video frames.

[0065] На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, разделенных на этапе 103. Например, может использоваться межкадровое предсказание и/или внутреннее предсказание. Межкадровое предсказание предназначено для использования того факта, что объекты в общей сцене имеют тенденцию появляться в последовательных кадрах. Соответственно, блок, изображающий объект в опорном кадре, не нужно повторно описывать в соседних кадрах. В частности, объект, такой как таблица, может оставаться в постоянной позиции на протяжении нескольких кадров. Следовательно, таблица описывается один раз, и соседние кадры могут относиться к опорному кадру. Механизмы сопоставления с могут использоваться для сопоставления объектов во множестве кадров. Кроме того, движущиеся объекты могут быть представлены во множестве кадров, например, из-за движения объекта или движения камеры. В качестве конкретного примера видео может показывать автомобиль, который движется по экрану во множестве кадров. Векторы движения могут использоваться для описания такого движения. Вектор движения - это двумерный вектор, который обеспечивает смещение от координат объекта в кадре до координат объекта в опорном кадре. По существу, межкадровое предсказание может кодировать блок изображения в текущем кадре как набор векторов движения, указывающих смещение от соответствующего блока в опорном кадре.[0065] At step 105, various compression mechanisms are used to compress the image blocks divided at step 103. For example, inter-frame prediction and/or intra prediction may be used. Inter-frame prediction is designed to take advantage of the fact that objects in a shared scene tend to appear in consecutive frames. Accordingly, a block representing an object in a reference frame does not need to be re-described in adjacent frames. In particular, an object such as a table may remain in a constant position for several frames. Therefore, the table is described once, and adjacent frames can refer to the reference frame. Matching mechanisms can be used to match objects across multiple frames. In addition, moving objects may be represented in multiple frames, for example due to object movement or camera movement. As a specific example, a video might show a car moving across the screen in multiple frames. Motion vectors can be used to describe such motion. A motion vector is a two-dimensional vector that provides an offset from the coordinates of an object in the frame to the coordinates of the object in the reference frame. As such, inter-frame prediction can encode an image block in the current frame as a set of motion vectors indicating an offset from the corresponding block in the reference frame.

[0066] Внутреннее предсказание кодирует блоки в общем кадре. Внутреннее предсказание использует тот факт, что компоненты яркости и цветности имеют тенденцию группироваться в кадре. Например, участок зеленого цвета на части дерева имеет тенденцию располагаться рядом с аналогичными участками зеленого цвета. Внутреннее предсказание использует несколько режимов направленного предсказания (например, тридцать три в HEVC), планарный режим и режим постоянного тока (DC, direct current). Направленные режимы указывают, что текущий блок подобен/совпадает с выборками соседнего блока в соответствующем направлении. Планарный режим указывает, что последовательность блоков вдоль строки/столбца (например, плоскости) может быть интерполирована на основе соседних блоков на краях строки. Фактически планарный режим указывает на плавный переход света/цвета по строке/столбцу за счет использования относительно постоянного наклона при изменении значений. Режим DC используется для сглаживания границ и указывает, что блок подобен/совпадает со средним значением, связанным с выборками всех соседних блоков, связанных с угловыми направлениями режимов направленного предсказания. Соответственно, блоки внутреннего предсказания могут представлять блоки изображения как различные значения режима реляционного предсказания вместо фактических значений. Кроме того, блоки межкадрового предсказания могут представлять блоки изображения как значения вектора движения вместо фактических значений. В любом случае в некоторых случаях блоки предсказания могут не точно представлять блоки изображения. Любые отличия хранятся в остаточных блоках. К остаточным блокам могут применяться преобразования для дальнейшего сжатия файла.[0066] Intra prediction encodes blocks in a common frame. Intra prediction takes advantage of the fact that luma and chrominance components tend to cluster together in a frame. For example, a patch of green on a piece of wood tends to be located next to similar patches of green. Intra prediction uses several directional prediction modes (for example, thirty-three in HEVC), planar mode, and direct current mode. Directional modes indicate that the current block is similar/matches the samples of the neighboring block in the corresponding direction. Planar mode specifies that a sequence of blocks along a row/column (such as a plane) can be interpolated based on adjacent blocks at the edges of the row. In effect, planar mode refers to a smooth transition of light/color across a row/column by using a relatively constant slope as values change. The DC mode is used to smooth edges and indicates that a block is similar to/matches the average value associated with the samples of all neighboring blocks associated with the angular directions of the directional prediction modes. Accordingly, intra prediction blocks may represent image blocks as different relational prediction mode values instead of actual values. In addition, inter-frame prediction blocks may represent image blocks as motion vector values instead of actual values. In any case, in some cases the prediction blocks may not accurately represent the image blocks. Any differences are stored in residual blocks. Transformations can be applied to the remaining blocks to further compress the file.

[0067] На этапе 107 могут применяться различные методы фильтрации. В HEVC фильтры применяются в соответствии со схемой внутриконтурной фильтрации. Обсуждаемое выше предсказание на основе блоков может привести к созданию блочных изображений в декодере. Кроме того, схема предсказания на основе блоков может кодировать блок, а затем восстанавливать кодированный блок для последующего использования в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет фильтры подавления шума, деблокирующие фильтры, адаптивные контурные фильтры и фильтры с адаптивным смещением выборки (SAO, sample adaptive offset) к блокам/кадрам. Эти фильтры уменьшают такие артефакты блокировки, чтобы можно было точно восстановить закодированный файл. Кроме того, эти фильтры уменьшают артефакты в восстановленных опорных блоках, так что артефакты с меньшей вероятностью создают дополнительные артефакты в последующих блоках, которые кодируются на основе восстановленных опорных блоков.[0067] At step 107, various filtering techniques may be applied. In HEVC, filters are applied according to an in-loop filtering scheme. The block-based prediction discussed above may result in blocky images in the decoder. In addition, the block-based prediction scheme can encode a block and then recover the encoded block for later use as a reference block. The in-loop filtering scheme iteratively applies noise reduction filters, deblocking filters, adaptive loop filters, and sample adaptive offset (SAO) filters to blocks/frames. These filters reduce such blocking artifacts so that the encoded file can be accurately reconstructed. In addition, these filters reduce artifacts in the reconstructed reference blocks, so that artifacts are less likely to create additional artifacts in subsequent blocks that are encoded based on the reconstructed reference blocks.

[0068] После того, как видеосигнал разделен, сжат и отфильтрован, полученные данные кодируются в битовом потоке на этапе 109. Битовый поток включает в себя данные, описанные выше, а также любые данные сигнализации, необходимые для поддержки надлежащего восстановления видеосигнала в декодере. Например, такие данные могут включать в себя данные раздела, данные предсказания, остаточные блоки и различные флаги, обеспечивающие инструкции кодирования для декодера. Битовый поток может храниться в памяти для передачи декодеру по запросу. Битовый поток также может быть широковещательным и/или многоадресным для множества декодеров. Создание битового потока - это итеративный процесс. Соответственно, этапы 101, 103, 105, 107 и 109 могут происходить непрерывно и/или одновременно во многих кадрах и блоках. Порядок, показанный на фиг. 1 представлен для ясности и простоты обсуждения и не предназначен для ограничения процесса видеокодирования конкретным порядком.[0068] After the video signal is separated, compressed, and filtered, the resulting data is encoded into a bitstream at step 109. The bitstream includes the data described above as well as any signaling data necessary to support proper reconstruction of the video signal at the decoder. For example, such data may include section data, prediction data, residual blocks, and various flags providing encoding instructions to the decoder. The bitstream may be stored in memory for transmission to the decoder upon request. The bitstream may also be broadcast and/or multicast to multiple decoders. Creating a bitstream is an iterative process. Accordingly, steps 101, 103, 105, 107 and 109 may occur continuously and/or simultaneously across multiple frames and blocks. The order shown in FIG. 1 is presented for clarity and ease of discussion and is not intended to limit the video encoding process to a particular order.

[0069] Декодер принимает битовый поток и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующий синтаксис и видеоданные. Декодер использует данные синтаксиса из битового потока для определения разделов для кадров на этапе 111. Разделение должно соответствовать результатам разделения блока на шаге 103. Теперь описывается энтропийное кодирование/декодирование, используемое на этапе 111. Кодер делает множество вариантов в процессе сжатия, таких как выбор схем разбиения на блоки из нескольких возможных вариантов на основе пространственного позиционирования значений во входном изображении (-ях). Для передачи сигналов о точном выборе может использоваться большое количество интервалов. В данном контексте бин - это двоичное значение, которое обрабатывается как переменная (например, битовое значение, которое может варьироваться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбросить любые параметры, которые явно не подходят для конкретного случая, оставив набор допустимых вариантов. Затем каждому допустимому варианту присваивается кодовое слово. Длина кодовых слов основана на количестве допустимых опций (например, одна ячейка для двух вариантов, две ячейки для трех-четырех вариантов и т.д.). Затем кодер кодирует кодовое слово для выбранной опции. Эта схема уменьшает размер кодовых слов, поскольку кодовые слова настолько велики, насколько желательно, чтобы однозначно указать выбор из небольшого подмножества допустимых вариантов, в отличие от однозначного указания выбора из потенциально большого набора всех возможных вариантов. Затем декодер декодирует выбор, определяя набор допустимых опций аналогично кодеру. Определив набор допустимых опций, декодер может прочитать кодовое слово и определить выбор, сделанный кодером.[0069] The decoder receives the bitstream and begins the decoding process at step 111. Specifically, the decoder uses an entropy decoding circuit to convert the bitstream into appropriate syntax and video data. The decoder uses the syntax data from the bitstream to determine partitions for frames at step 111. The partition must correspond to the results of the block partition at step 103. The entropy encoding/decoding used at step 111 is now described. The encoder makes many choices in the compression process, such as the choice of schemes dividing into blocks of several possible options based on the spatial positioning of values in the input image(s). A large number of slots can be used to signal precise selection. In this context, a bean is a binary value that is treated as a variable (for example, a bit value that can vary depending on the context). Entropy coding allows the encoder to discard any parameters that are clearly not suitable for a particular case, leaving a set of valid options. Each valid option is then assigned a code word. The length of the codewords is based on the number of valid options (for example, one cell for two options, two cells for three or four options, etc.). The encoder then encodes the codeword for the selected option. This scheme reduces the size of codewords because codewords are as large as desired to unambiguously indicate a choice from a small subset of valid options, as opposed to unambiguously indicating a choice from a potentially large set of all possible options. The decoder then decodes the choice, determining the set of valid options in a similar manner to an encoder. Having determined the set of valid options, the decoder can read the codeword and determine the choice made by the encoder.

[0070] На этапе 113 декодер выполняет блочное декодирование. В частности, декодер использует обратное преобразование для формирования остаточных блоков. Затем декодер использует остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения в соответствии с разделением. Блоки предсказания могут включать в себя как блоки внутреннего предсказания, так и блоки межкадрового предсказания, сформированные в кодере на этапе 105. Блоки восстановленного изображения затем размещаются в кадрах восстановленного видеосигнала в соответствии с данными разделения, определенными на этапе 111. Синтаксис для этапа 113 также может передаваться в битовом потоке посредством энтропийного кодирования, как описано выше.[0070] At step 113, the decoder performs block decoding. In particular, the decoder uses the inverse transform to generate residual blocks. The decoder then uses the residual blocks and corresponding prediction blocks to reconstruct the image blocks according to the division. The prediction blocks may include both intra prediction blocks and inter-frame prediction blocks generated in the encoder at step 105. The reconstructed image blocks are then allocated to frames of the reconstructed video signal in accordance with the partition data determined at step 111. The syntax for step 113 may also transmitted in the bitstream using entropy encoding as described above.

[0071] На этапе 115 выполняется фильтрация кадров восстановленного видеосигнала аналогично этапу 107 в кодере. Например, фильтры подавления шума, фильтры деблокирования, адаптивные контурные фильтры и фильтры SAO могут применяться к кадрам для удаления артефактов блокировки. После фильтрации кадров видеосигнал может выводиться на дисплей на этапе 117 для просмотра конечным пользователем.[0071] At step 115, frames of the reconstructed video signal are filtered, similar to step 107 in the encoder. For example, noise reduction filters, deblocking filters, adaptive edge filters, and SAO filters can be applied to frames to remove blocking artifacts. After frame filtering, the video signal may be displayed at step 117 for viewing by the end user.

[0072] Фиг. 2 является схематической диаграммой примерной системы 200 кодирования и декодирования (кодека) для видеокодирования. В частности, система 200 кодеков обеспечивает функциональные возможности для поддержки реализации способа 100 работы. Система 200 кодека обобщена для изображения компонентов, используемых как в кодере, так и в декодере. Система 200 кодека принимает и разделяет видеосигнал, как описано в отношении шагов 101 и 103 в способе 100 работы , что приводит к разделенному видеосигналу 201. Система 200 кодека затем сжимает разделенный видеосигнал 201 в кодированный битовый поток, действуя в качестве кодера, как описано в отношении этапов 105, 107 и 109 в способе 100. Действуя в качестве декодера, система 200 кодека формирует выходной видеосигнал из битового потока, как описано в отношении этапов 111, 113, 115 и 117 в способе 100 работы . Система 200 кодека включает в себя компонент 211 общего управления кодером, компонент 213 масштабирования преобразования и квантования, компонент 215 оценки внутри изображения, компонент 217 предсказания внутри изображения, компонент 219 компенсации движения, компонент 221 оценки движения, компонент 229 масштабирования и обратного преобразования, компонент 227 анализа управления фильтром, компонент 225 внутриконтурных фильтров, компонент 223 буфера декодированных изображений и компонент 231 форматирования заголовка и контекстно-адаптивного двоичного арифметического кодирования (CABAC, context adaptive binary arithmetic coding). Такие компоненты соединяются, как показано. На фиг. 2 черные линии указывают перемещение данных, которые должны быть закодированы/декодированы, а пунктирные линии указывают перемещение данных управления, которые управляют работой других компонентов. Все компоненты системы 200 кодека могут присутствовать в кодере. Декодер может включать в себя подмножество компонентов системы 200 кодеков. Например, декодер может включать в себя компонент 217 предсказания внутри изображения, компонент 219 компенсации движения, компонент 229 масштабирования и обратного преобразования, компонент 225 внутриконтурных фильтров и компонент 223 буфера декодированных изображений. Эти компоненты теперь описаны.[0072] FIG. 2 is a schematic diagram of an exemplary encoding and decoding (codec) system 200 for video encoding. In particular, the codec system 200 provides functionality to support an implementation of the method 100 of operation. Codec system 200 is generalized to depict components used in both an encoder and a decoder. The codec system 200 receives and splits the video signal as described in relation to steps 101 and 103 in the operating method 100, resulting in a split video signal 201. The codec system 200 then compresses the split video signal 201 into an encoded bitstream, acting as an encoder, as described in relation to steps 105, 107 and 109 in method 100. Acting as a decoder, codec system 200 generates a video output signal from the bitstream as described with respect to steps 111, 113, 115 and 117 in method 100 of operation. The codec system 200 includes a general encoder control component 211, a transform scaling and quantization component 213, an intra-image estimation component 215, an intra-image prediction component 217, a motion compensation component 219, a motion estimation component 221, a scaling and inverse transform component 227 filter control analysis, in-loop filter component 225, decoded image buffer component 223, and header formatting and context adaptive binary arithmetic coding (CABAC) component 231. Such components are connected as shown. In fig. The 2 black lines indicate the movement of data that must be encoded/decoded, and the dotted lines indicate the movement of control data that controls the operation of other components. All components of the codec system 200 may be present in the encoder. The decoder may include a subset of codec system 200 components. For example, the decoder may include an in-picture prediction component 217, a motion compensation component 219, a scaling and inverse transform component 229, an in-loop filter component 225, and a decoded image buffer component 223. These components are now described.

[0073] Разделенный видеосигнал 201 представляет собой захваченную видеопоследовательность, которая была разделена на блоки пикселей посредством дерева кодирования. Дерево кодирования использует различные режимы разделения для разделения блока пикселей на более мелкие блоки пикселей. Затем эти блоки можно разделить на более мелкие блоки. Блоки могут называться узлами в дереве кодирования. Более крупные родительские узлы разделяются на более мелкие дочерние узлы. Количество раз, когда узел делится на подразделения, называется глубиной дерева узлов/кодирования. В некоторых случаях разделенные блоки могут быть включены в блоки кодирования (CU). Например, CU может быть частью CTU, которая содержит блок яркости, блок(-и) цветности красного (Cr) и блок(-и) синего сигнала цветности (Cb) вместе с соответствующими инструкциями синтаксиса для CU. Режимы разделения могут включать в себя двоичное дерево (BT, binary tree), троичное дерево (TT, triple tree) и квадратичное дерево (QT, quad tree), используемые для разделения узла на два, три или четыре дочерних узла, соответственно, различной формы в зависимости от используемых режимов разделения. Разделенный видеосигнал 201 пересылается в компонент 211 общего управления кодером, компонент 213 масштабирования и квантования преобразования, компонент 215 оценки внутри изображения, компонент 227 анализа управления фильтром и компонент 221 оценки движения для сжатия.[0073] The divided video signal 201 is a captured video sequence that has been divided into blocks of pixels by a coding tree. The coding tree uses different partitioning modes to divide a block of pixels into smaller blocks of pixels. These blocks can then be divided into smaller blocks. Blocks may be called nodes in a coding tree. Larger parent nodes are split into smaller child nodes. The number of times a node is divided into subdivisions is called the node/encoding tree depth. In some cases, the divided blocks may be included in coding units (CUs). For example, a CU may be part of a CTU that contains a luminance block, chrominance red (Cr) block(s), and chrominance blue block(s) (Cb), along with corresponding syntax instructions for the CU. Partitioning modes can include binary tree (BT, triple tree), ternary tree (TT, triple tree) and quad tree (QT), used to split a node into two, three or four child nodes, respectively, of different shapes depending on the separation modes used. The divided video signal 201 is sent to a general encoder control component 211, a transform scaling and quantization component 213, an intra-image estimation component 215, a filter control analysis component 227, and a motion estimation component 221 for compression.

[0074] Компонент 211 общего управления кодером выполнен с возможностью принятия решений, связанных с кодированием изображений видеопоследовательности в битовый поток в соответствии с ограничениями приложения. Например, компонент 211 общего управления кодером управляет оптимизацией скорости передачи/размера битового потока по сравнению с качеством восстановления. Такие решения могут быть приняты на основе доступности дискового пространства/полосы пропускания и запросов разрешения изображения. Компонент 211 общего управления кодером также управляет использованием буфера с учетом скорости передачи, чтобы уменьшить проблемы опустошения и переполнения буфера. Чтобы управлять этими проблемами, компонент 211 общего управления кодером управляет разделением, предсказанием и фильтрацией посредством других компонентов. Например, компонент 211 общего управления кодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшения сложности сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером управляет другими компонентами системы 200 кодека, чтобы сбалансировать качество восстановления видеосигнала с проблемами скорости передачи данных. Компонент 211 общего управления кодером создает данные управления, которые управляют работой других компонентов. Управляющие данные также направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовом потоке, чтобы сигнализировать параметры для декодирования в декодере.[0074] General encoder control component 211 is configured to make decisions related to encoding images of a video sequence into a bitstream in accordance with application constraints. For example, the encoder general control component 211 controls the optimization of bitrate/bitstream size versus reconstruction quality. Such decisions can be made based on disk space/bandwidth availability and image resolution requests. The general encoder control component 211 also controls buffer usage based on the bit rate to reduce buffer underrun and overflow problems. To manage these problems, the general encoder control component 211 controls separation, prediction, and filtering through other components. For example, the general encoder control component 211 may dynamically increase compression complexity to increase resolution and increase bandwidth utilization, or decrease compression complexity to decrease resolution and bandwidth utilization. Therefore, the general encoder control component 211 controls the other components of the codec system 200 to balance the quality of the video signal reconstruction with data rate issues. The encoder general control component 211 creates control data that controls the operation of other components. Control data is also sent to header formatting and CABAC component 231 for encoding into a bitstream to signal parameters for decoding at the decoder.

[0075] Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для межкадрового предсказания. Кадр или слайс разделенного видеосигнала 201 может быть разделен на множество видеоблоков. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют кодирование с межкадровым предсказанием принятого видеоблока относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодека может выполнять множество проходов кодирования, например, чтобы выбрать соответствующий режим кодирования для каждого блока видеоданных.[0075] The divided video signal 201 is also sent to the motion estimation component 221 and the motion compensation component 219 for inter-frame prediction. A frame or slice of divided video signal 201 may be divided into multiple video blocks. Motion estimation component 221 and motion compensation component 219 perform inter-frame prediction coding of a received video block with respect to one or more blocks in one or more reference frames to provide temporal prediction. Codec system 200 may perform multiple encoding passes, for example, to select an appropriate encoding mode for each block of video data.

[0076] Компонент 221 оценки движения и компонент 219 компенсации движения могут быть сильно интегрированы, но проиллюстрированы отдельно для концептуальных целей. Оценка движения, выполняемая компонентом 221 оценки движения, представляет собой процесс формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение кодированного объекта относительно блока предсказания. Блок предсказания - это блок, который, как установлено, близко соответствует блоку, который должен быть кодирован, с точки зрения разности пикселей. Блок предсказания также может называться опорным блоком. Такая разность пикселей может определяться суммой абсолютной разности (SAD, sum of absolute difference), суммой квадратов разности (SSD, sum of square difference) или другими показателями разности. HEVC использует несколько закодированных объектов, включая CTU, блоки дерева кодирования (CTB) и CU. Например, CTU можно разделить на CTB, которые затем можно разделить на CB для включения в CU. CU может быть закодирован как блок предсказания (PU, prediction unit), содержащий данные предсказания, и/или блок преобразования (TU, transform unit), содержащий преобразованные остаточные данные для CU. Компонент 221 оценки движения формирует векторы движения, PU и TU, используя анализ искажения скорости как часть процесса оптимизации искажения скорости. Например, компонент 221 оценки движения может определять множество опорных блоков, множество векторов движения и т.д. для текущего блока/кадра и может выбирать опорные блоки, векторы движения и т.д., имеющие наилучшие характеристики скорость-искажение. Наилучшие характеристики соотношение "скорость-искажение" уравновешивают как качество восстановления видео (например, количество потерь данных при сжатии), так и эффективность кодирования (например, размер окончательного кодирования).[0076] The motion estimation component 221 and the motion compensation component 219 may be highly integrated, but are illustrated separately for conceptual purposes. Motion estimation performed by motion estimation component 221 is a process for generating motion vectors that estimate motion for video blocks. The motion vector, for example, may indicate an offset of the encoded object relative to the prediction block. A prediction block is a block that is found to closely match the block to be encoded in terms of pixel difference. The prediction block may also be called a reference block. This pixel difference can be determined by the sum of absolute difference (SAD, sum of absolute difference), sum of squared difference (SSD, sum of square difference), or other difference measures. HEVC uses several encoded entities, including CTUs, coding tree blocks (CTBs), and CUs. For example, CTUs can be divided into CTBs, which can then be divided into CBs to be included in a CU. The CU may be encoded as a prediction unit (PU) containing the prediction data and/or a transform unit (TU) containing the transformed residual data for the CU. Motion estimation component 221 generates motion vectors, PU and TU, using speed distortion analysis as part of the speed distortion optimization process. For example, motion estimation component 221 may determine multiple reference blocks, multiple motion vectors, etc. for the current block/frame and can select reference blocks, motion vectors, etc. that have the best speed-distortion characteristics. The best rate-distortion performance balances both video restoration quality (eg, amount of data loss during compression) and encoding efficiency (eg, final encoding size).

[0077] В некоторых примерах система 200 кодека может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в компоненте 223 буфера декодированных изображений. Например, система 200 видеокодека может интерполировать значения положений четверти пикселя, положений одной восьмой пикселя или других положений дробных пикселей опорного изображения. Следовательно, компонент 221 оценки движения может выполнять поиск движения относительно положений полных пикселей и положений дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для PU видеоблока в межкадровом кодированном слайсе путем сравнения положения PU с положением блока предсказания опорного изображения. Компонент 221 оценки движения выводит вычисленный вектор движения как данные движения для компонента 231 форматирования заголовка и CABAC для кодирования и движения в компонент 219 компенсации движения.[0077] In some examples, codec system 200 may calculate values for sub-integer pixel positions of reference pictures stored in decoded picture buffer component 223. For example, video codec system 200 may interpolate the values of quarter pixel positions, eighth pixel positions, or other fractional pixel positions of a reference image. Therefore, the motion estimation component 221 can search for motion with respect to full pixel positions and fractional pixel positions and output a motion vector with fractional pixel precision. Motion estimation component 221 calculates a motion vector for a video block PU in the inter-frame coded slice by comparing the position of the PU with the position of the reference picture prediction block. The motion estimation component 221 outputs the calculated motion vector as motion data for the header formatting component 231 and CABAC for encoding and motion to the motion compensation component 219 .

[0078] Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать в себя выборку или формирование блока предсказания на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, в некоторых примерах компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока компонент 219 компенсации движения может определить местонахождение блока предсказания, на который указывает вектор движения. Затем формируется остаточный видеоблок путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, а компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок предсказания и остаточный блок направляются в компонент 213 масштабирования и квантования преобразования.[0078] The motion compensation performed by the motion compensation component 219 may include sampling or generating a prediction block based on the motion vector determined by the motion estimation component 221 . Again, in some examples, motion estimation component 221 and motion compensation component 219 may be functionally integrated. After receiving the motion vector for the PU of the current video block, motion compensation component 219 can locate the prediction block pointed to by the motion vector. A residual video block is then generated by subtracting the pixel values of the prediction block from the pixel values of the current video block being encoded, generating pixel difference values. In general, motion estimation component 221 performs motion estimation relative to luminance components, and motion compensation component 219 uses motion vectors calculated based on luminance components for both chrominance and luminance components. The prediction block and the residual block are sent to the transform scaling and quantization component 213 .

[0079] Разделенный видеосигнал 201 также отправляется компоненту 215 оценки внутри изображения и компоненту 217 предсказания внутри изображения. Как и в случае компонента 221 оценки движения и компонента 219 компенсации движения, компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения могут быть сильно интегрированы, но проиллюстрированы отдельно для концептуальных целей. Компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения предсказывают текущий блок относительно блоков в текущем кадре в качестве альтернативы межкадровому предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 оценки внутри изображения определяет режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах компонент 215 оценки внутри изображения выбирает соответствующий режим внутреннего предсказания для кодирования текущего блока из множества проверенных режимов внутреннего предсказания. Выбранные режимы внутреннего предсказания затем направляются в компонент 231 форматирования заголовка и CABAC для кодирования.[0079] The divided video signal 201 is also sent to the intra-image estimation component 215 and the intra-image prediction component 217 . As with the motion estimation component 221 and the motion compensation component 219, the intra-image estimation component 215 and the intra-image prediction component 217 may be highly integrated but are illustrated separately for conceptual purposes. The intra-image estimation component 215 and the intra-image prediction component 217 predict the current block relative to blocks in the current frame as an alternative to the inter-frame prediction performed by the motion estimation component 221 and the inter-frame motion compensation component 219 as described above. In particular, the intra-image estimation component 215 determines the intra prediction mode to use for encoding the current block. In some examples, the in-image evaluation component 215 selects an appropriate intra-prediction mode for encoding the current block from a plurality of tested intra-prediction modes. The selected intra prediction modes are then sent to header formatting component 231 and CABAC for encoding.

[0080] Например, компонент 215 оценки внутри изображения вычисляет значения скоростного искажения, используя анализ скоростного искажения для различных тестируемых режимов внутреннего предсказания, и выбирает режим внутреннего предсказания, имеющий лучшие характеристики скоростного искажения среди тестированных режимов. Анализ искажения скорости обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для создания закодированного блока, а также скорость передачи данных (например, количество битов), используемую для создания закодированного блока. Компонент 215 оценки внутри изображения вычисляет отношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутреннего предсказания показывает наилучшее значение искажения скорости для блока. Кроме того, компонент 215 оценки внутри изображения может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM, depth modeling mode) на основе оптимизации скорости-искажения (RDO, rate-distortion optimization ).[0080] For example, the intra-image evaluation component 215 calculates the speed distortion values using the speed distortion analysis for the various intra prediction modes tested, and selects the intra prediction mode having the best speed distortion characteristics among the tested modes. Rate distortion analysis typically determines the amount of distortion (or error) between the encoded block and the original uncoded block that was encoded to create the encoded block, as well as the data rate (e.g., number of bits) used to create the encoded block. Intra-image estimation component 215 calculates ratios of distortions and rates for various coded blocks to determine which intra prediction mode shows the best rate distortion value for the block. In addition, the intra-image estimation component 215 may be configured to encode the depth blocks of the depth map using a depth modeling mode (DMM) based on rate-distortion optimization (RDO).

[0081] Компонент 217 предсказания внутри изображения может формировать остаточный блок из блока предсказания на основе выбранных режимов внутреннего предсказания, определенных компонентом 215 оценки внутри изображения, когда он реализован на кодере, или считывать остаточный блок из битового потока, когда реализован на декодере. Остаточный блок включает в себя разницу в значениях между блоком предсказания и исходным блоком, представленную в виде матрицы. Остаточный блок затем пересылается в компонент 213 масштабирования и квантования преобразования. Компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения могут работать как с компонентами яркости, так и с компонентами цветности.[0081] The intra-image prediction component 217 may generate a residual block from the prediction block based on selected intra-prediction modes determined by the intra-image estimation component 215 when implemented on an encoder, or read the residual block from a bitstream when implemented on a decoder. The residual block includes the difference in values between the prediction block and the original block, represented as a matrix. The residual block is then sent to the transform scaling and quantization component 213 . The intra-image estimation component 215 and the intra-image prediction component 217 may operate on both luma and chrominance components.

[0082] Компонент 213 масштабирования и квантования преобразования выполнен с возможностью дополнительного сжатия остаточного блока. Компонент 213 масштабирования и квантования преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT, discrete cosine transform), дискретное синусоидальное преобразование (DST, discrete sine transform) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения коэффициентов остаточного преобразования. Также можно использовать вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Компонент 213 масштабирования и квантования преобразования также выполнен с возможностью масштабирования преобразованной остаточной информации, например, на основе частоты. Такое масштабирование включает в себя применение масштабного коэффициента к остаточной информации, так что разная частотная информация квантуется с разной степенью детализации, что может повлиять на окончательное визуальное качество восстановленного видео. Компонент 213 масштабирования и квантования преобразования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения скорости передачи битов. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена путем регулировки параметра квантования. В некоторых примерах компонент 213 масштабирования и квантования преобразования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовом потоке.[0082] The transform scaling and quantization component 213 is configured to further compress the residual block. Transform scaling and quantization component 213 applies a transform, such as a discrete cosine transform (DCT), a discrete sine transform (DST), or a conceptually similar transform, to the residual block, creating a video block containing the values of the residual transform coefficients. You can also use wavelet transforms, integer transforms, subrange transforms, or other types of transforms. The transform may transform residual information from a pixel domain into a transform domain such as a frequency domain. The transform scaling and quantization component 213 is also configured to scale the transformed residual information, for example, based on frequency. Such scaling involves applying a scale factor to the residual information so that different frequency information is quantized at different levels of detail, which can affect the final visual quality of the reconstructed video. Transform scaling and quantization component 213 is also configured to quantize transform coefficients to further reduce the bit rate. The quantization process may reduce the bit depth associated with some or all of the coefficients. The degree of quantization can be changed by adjusting the quantization parameter. In some examples, transform scaling and quantization component 213 may then scan a matrix including the quantized transform coefficients. The quantized transform coefficients are sent to header formatting component 231 and CABAC for encoding into the bitstream.

[0083] Компонент 229 масштабирования и обратного преобразования применяет обратную операцию компонента 213 масштабирования и квантования преобразования для поддержки оценки движения. Компонент 229 масштабирования и обратного преобразования применяет обратное масштабирование, преобразование и/или квантование для восстановления остаточного блока в области пикселей, например, для последующего использования в качестве опорного блока, который может стать блоком предсказания для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения может вычислять опорный блок, добавляя остаточный блок обратно к соответствующему блоку предсказания для использования при оценке движения более позднего блока/кадра. Фильтры применяются к восстановленным опорным блокам для уменьшения артефактов, возникающих во время масштабирования, квантования и преобразования. В противном случае такие артефакты могут вызвать неточное предсказание (и создать дополнительные артефакты) при предсказании последующих блоков.[0083] The scaling and inverse transform component 229 applies the inverse operation of the transform scaling and quantization component 213 to support motion estimation. The scaling and detransforming component 229 applies descaling, transforming, and/or quantization to reconstruct a residual block in a pixel domain, for example, for later use as a reference block that can become a prediction block for another current block. Motion estimation component 221 and/or motion compensation component 219 may calculate a reference block by adding a residual block back to the corresponding prediction block for use in motion estimation of a later block/frame. Filters are applied to the reconstructed reference blocks to reduce artifacts introduced during scaling, quantization, and transformation. Otherwise, such artifacts may cause inaccurate prediction (and create additional artifacts) when predicting subsequent blocks.

[0084] Компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 масштабирования и обратного преобразования может быть объединен с соответствующим блоком предсказания из компонента 217 предсказания внутри изображения и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах вместо этого фильтры могут применяться к остаточным блокам. Как и в случае с другими компонентами на фиг. 2, компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров сильно интегрированы и могут быть реализованы вместе, но изображены отдельно для концептуальных целей. Фильтры, применяемые к восстановленным опорным блокам, применяются к конкретным пространственным областям и включают несколько параметров для настройки того, как такие фильтры применяются. Компонент 227 анализа управления фильтрами анализирует восстановленные опорные блоки, чтобы определить, где такие фильтры должны быть применены, и устанавливает соответствующие параметры. Такие данные пересылаются в компонент 231 форматирования заголовка и CABAC в качестве данных управления фильтром для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтром. Фильтры могут включать в себя фильтр удаления блочности, фильтр подавления шума, фильтр SAO и адаптивный контурный фильтр. Такие фильтры могут применяться в пространственной/пиксельной области (например, в восстановленном блоке пикселей) или в частотной области, в зависимости от примера.[0084] Filter control analysis component 227 and in-loop filter component 225 apply filters to residual blocks and/or reconstructed image blocks. For example, the transformed residual block from the upscaling and inverse transform component 229 may be combined with the corresponding prediction block from the intra-image prediction component 217 and/or the motion compensation component 219 to restore the original image block. Filters can then be applied to the reconstructed image block. In some examples, filters may be applied to residual blocks instead. As with the other components in FIG. 2, the filter control analysis component 227 and the in-loop filter component 225 are highly integrated and may be implemented together, but are depicted separately for conceptual purposes. Filters applied to reconstructed reference blocks apply to specific spatial regions and include several options to customize how such filters are applied. The filter control analysis component 227 analyzes the reconstructed reference blocks to determine where such filters should be applied and sets the appropriate parameters. Such data is sent to header formatting component 231 and CABAC as filter control data for encoding. The in-loop filter component 225 applies such filters based on filter control data. The filters may include a deblocking filter, a noise reduction filter, a SAO filter, and an adaptive loop filter. Such filters may be applied in the spatial/pixel domain (eg, in a reconstructed block of pixels) or in the frequency domain, depending on the example.

[0085] При работе в качестве кодера отфильтрованный восстановленный блок изображения, остаточный блок и/или блок предсказания сохраняются в компоненте 223 буфера декодированных изображений для последующего использования при оценке движения, как описано выше. При работе в качестве декодера компонент 223 буфера декодированных изображений сохраняет и пересылает восстановленные и отфильтрованные блоки на дисплей как часть выходного видеосигнала. Компонент 223 буфера декодированных изображений может быть любым устройством памяти, способным хранить блоки предсказания, остаточные блоки и/или восстановленные блоки изображения.[0085] When operating as an encoder, the filtered reconstructed image block, residual block, and/or prediction block are stored in decoded image buffer component 223 for later use in motion estimation as described above. When operating as a decoder, the decoded image buffer component 223 stores and forwards the reconstructed and filtered blocks to the display as part of the output video signal. The decoded image buffer component 223 may be any memory device capable of storing prediction blocks, residual blocks, and/or reconstructed image blocks.

[0086] Компонент 231 форматирования заголовка и CABAC принимает данные от различных компонентов системы 200 кодеков и кодирует такие данные в кодированный битовый поток для передачи в декодер. В частности, компонент 231 форматирования заголовка и CABAC формирует различные заголовки для кодирования данных управления, таких как общие данные управления и данные управления фильтром. Кроме того, данные предсказания, включая данные внутреннего предсказания и движения, а также остаточные данные в форме данных квантованных коэффициентов преобразования, все кодируются в битовом потоке. Конечный битовый поток включает в себя всю информацию, требуемую декодером для восстановления исходного разделенного видеосигнала 201. Такая информация может также включать в себя таблицы индексов режима внутреннего предсказания (также называемые таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков, указания наиболее вероятных режимов внутреннего предсказания, указание информации о разделах и т.д. Такие данные могут быть закодированы с использованием энтропийного кодирования. Например, информация может быть закодирована с использованием контекстно-адаптивного кодирования с переменной длиной (CAVLC, context adaptive variable length coding), CABAC, основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC, yntax-based context-adaptive binary arithmetic coding), энтропийного кодирования с вероятностным интервалом разделения (PIPE, probability interval partitioning entropy) или другого метода энтропийного кодирования. После энтропийного кодирования закодированный битовый поток может быть передан на другое устройство (например, видеодекодер) или заархивирован для последующей передачи или поиска.[0086] Header formatting and CABAC component 231 receives data from various components of codec system 200 and encodes such data into a coded bitstream for transmission to a decoder. Specifically, the header formatting and CABAC component 231 generates various headers for encoding control data such as general control data and filter control data. In addition, prediction data, including intra prediction and motion data, as well as residual data in the form of quantized transform coefficient data, are all encoded in the bitstream. The final bit stream includes all information required by the decoder to reconstruct the original divided video signal 201. Such information may also include intra prediction mode index tables (also called codeword mapping tables), definitions of encoding contexts for various blocks, indications of the most likely modes internal prediction, indicating partition information, etc. Such data can be encoded using entropy coding. For example, information can be encoded using context adaptive variable length coding (CAVLC), CABAC, based on the syntax of context-adaptive binary arithmetic coding (SBAC), entropy coding with probability interval partitioning entropy (PIPE) or another entropy coding method. After entropy encoding, the encoded bitstream can be transferred to another device (such as a video decoder) or archived for later transmission or retrieval.

[0087] Фиг. 3 представляет собой блок-схему, иллюстрирующую примерный видеокодер 300. Видеокодер 300 может использоваться для реализации функций кодирования системы 200 кодека и/или реализации этапов 101, 103, 105, 107 и/или 109 способа 100 работы. Кодер 300 разделяет входной видеосигнал, в результате чего получается разделенный видеосигнал 301, который по существу аналогичен разделенному видеосигналу 201. Разделенный видеосигнал 301 затем сжимается и кодируется в битовый поток компонентами кодера 300.[0087] FIG. 3 is a block diagram illustrating an example video encoder 300. Video encoder 300 may be used to implement encoding functions of codec system 200 and/or implement steps 101, 103, 105, 107 and/or 109 of method 100 of operation. Encoder 300 splits the input video signal, resulting in split video 301, which is substantially the same as split video 201. Split video 301 is then compressed and encoded into a bitstream by components of encoder 300.

[0088] В частности, разделенный видеосигнал 301 пересылается в компонент 317 предсказания внутри изображения для внутреннего предсказания. Компонент 317 предсказания внутри изображения может быть по существу аналогичным компоненту 215 оценки внутри изображения и компоненту 217 предсказания внутри изображения. Разделенный видеосигнал 301 также пересылается в компонент 321 компенсации движения для межкадрового предсказания на основе опорных блоков в компоненте 323 буфера декодированных изображений. Компонент 321 компенсации движения может быть по существу аналогичным компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки предсказания и остаточные блоки из компонента 317 предсказания внутри изображения и компонента 321 компенсации движения направляются в компонент 313 преобразования и квантования для преобразования и квантования остаточных блоков. Компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 масштабирования и квантования преобразования. Преобразованные и квантованные остаточные блоки и соответствующие блоки предсказания (вместе со связанными данными управления) направляются в компонент 331 энтропийного кодирования для кодирования в битовый поток. Компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и CABAC.[0088] Specifically, the divided video signal 301 is sent to the intra-picture prediction component 317 for intra prediction. The intra-image prediction component 317 may be substantially similar to the intra-image estimation component 215 and the intra-image prediction component 217 . The divided video signal 301 is also sent to motion compensation component 321 for inter-frame prediction based on reference blocks in decoded image buffer component 323. The motion compensation component 321 may be substantially similar to the motion estimation component 221 and the motion compensation component 219 . The prediction blocks and residual blocks from the intra-image prediction component 317 and the motion compensation component 321 are sent to the transform and quantize component 313 to transform and quantize the residual blocks. The transform and quantization component 313 may be substantially similar to the transform scaling and quantization component 213 . The transformed and quantized residual blocks and corresponding prediction blocks (along with associated control data) are sent to entropy encoding component 331 for encoding into a bitstream. The entropy encoding component 331 may be substantially similar to the header formatting component 231 and CABAC.

[0089] Преобразованные и квантованные остаточные блоки и/или соответствующие блоки предсказания также направляются из компонента 313 преобразования и квантования в компонент 329 обратного преобразования и квантования для восстановления в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 масштабирования и обратного преобразования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяются к остаточным блокам и/или восстановленным опорным блокам, в зависимости от примера. Компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа управления фильтром и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может включать в себя множество фильтров, как обсуждалось в отношении компонента 225 внутриконтурных фильтров. Отфильтрованные блоки затем сохраняются в компоненте 323 буфера декодированных изображений для использования в качестве опорных блоков компонентом 321 компенсации движения. Компонент 323 буфера декодированных изображений может быть по существу аналогичен компоненту 223 буфера декодированных изображений.[0089] The transformed and quantized residual blocks and/or corresponding prediction blocks are also sent from the transform and quantization component 313 to the inverse transform and quantization component 329 for reconstruction into reference blocks for use by the motion compensation component 321. The demapping and quantization component 329 may be substantially similar to the scaling and demapping component 229 . The in-loop filters in the in-loop filter component 325 are also applied to the residual blocks and/or recovered reference blocks, depending on the example. The in-loop filter component 325 may be substantially similar to the filter control analysis component 227 and the in-loop filter component 225 . The in-loop filter component 325 may include a plurality of filters, as discussed with respect to the in-loop filter component 225. The filtered blocks are then stored in the decoded image buffer component 323 for use as reference blocks by the motion compensation component 321 . The decoded image buffer component 323 may be substantially similar to the decoded image buffer component 223.

[0090] Фиг. 4 - это блок-схема, иллюстрирующая примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодека и/или реализации этапов 111, 113, 115 и/или 117 способа 100 работы.. Декодер 400 принимает битовый поток, например, от кодера 300 , и формирует восстановленный выходной видеосигнал на основе битового потока для отображения конечному пользователю.[0090] FIG. 4 is a block diagram illustrating an exemplary video decoder 400. The video decoder 400 may be used to implement decoding functions of the codec system 200 and/or implement steps 111, 113, 115 and/or 117 of the operating method 100. The decoder 400 receives a bit stream, for example, from encoder 300, and generates a reconstructed video output based on the bitstream for display to the end user.

[0091] Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как CAVLC, CABAC, SBAC, PIPE-кодирование или другие методы энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка, чтобы обеспечить контекст для интерпретации дополнительных данных, закодированных как кодовые слова в битовом потоке. Декодированная информация включает в себя любую желаемую информацию для декодирования видеосигнала, такую как общие данные управления, данные управления фильтром, информацию о разделах, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования направляются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.[0091] The bitstream is received by entropy decoding component 433. The entropy decoding component 433 is configured to implement an entropy decoding scheme such as CAVLC, CABAC, SBAC, PIPE encoding, or other entropy encoding methods. For example, entropy decoding component 433 may use header information to provide context for interpreting additional data encoded as codewords in the bitstream. The decoded information includes any desired information for decoding a video signal, such as general control data, filter control data, section information, motion data, prediction data, and quantized transform coefficients from residual blocks. The quantized transform coefficients are sent to the inverse transform and quantization component 429 for reconstruction into residual blocks. The inverse transform and quantization component 429 may be similar to the inverse transform and quantization component 329 .

[0092] Восстановленные остаточные блоки и/или блоки предсказания пересылаются в компонент 417 предсказания внутри изображения для восстановления в блоки изображения на основе операций внутреннего предсказания. Компонент 417 предсказания внутри изображения может быть аналогичен компоненту 215 оценки внутри изображения и компоненту 217 предсказания внутри изображения. В частности, компонент 417 предсказания внутри изображения использует режимы предсказания, чтобы найти опорный блок в кадре, и применяет остаточный блок к результату для восстановления блоков изображения, предсказанных внутри изображения. Восстановленные блоки изображения с внутренним предсказанием и/или остаточные блоки и соответствующие данные межкадрового предсказания пересылаются в компонент 423 буфера декодированных изображений через компонент 425 внутриконтурных фильтров, который может быть по существу аналогичен компоненту 223 буфера декодированных изображений и компоненту 225 внутриконтурных фильтров соответственно. Компонент 425 внутриконтурных фильтров фильтрует восстановленные блоки изображений, остаточные блоки и/или блоки предсказания, и такая информация сохраняется в компоненте 423 буфера декодированных изображений. Восстановленные блоки изображения из компонента 423 буфера декодированных изображений пересылаются в компонент 421 компенсации движения для межкадрового предсказания. Компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения из опорного блока для формирования блока предсказания и применяет остаточный блок к результату для восстановления блока изображения. Результирующие восстановленные блоки также могут быть отправлены через компонент 425 внутриконтурных фильтров в компонент 423 буфера декодированных изображений. Компонент 423 буфера декодированных изображений продолжает хранить дополнительные восстановленные блоки изображения, которые могут быть преобразованы в кадры через информацию о разделах. Такие кадры также можно размещать последовательно. Последовательность выводится на дисплей как восстановленный выходной видеосигнал.[0092] The reconstructed residual blocks and/or prediction blocks are sent to the intra-image prediction component 417 to be reconstructed into image blocks based on intra-prediction operations. The intra-image prediction component 417 may be similar to the intra-image estimation component 215 and the intra-image prediction component 217 . Specifically, the intra-image prediction component 417 uses prediction modes to find a reference block in a frame, and applies a residual block to the result to recover image blocks predicted within the image. The reconstructed intra-prediction image blocks and/or residual blocks and corresponding inter-prediction data are sent to the decoded image buffer component 423 through the in-loop filter component 425, which may be substantially similar to the decoded image buffer component 223 and the in-loop filter component 225, respectively. The in-loop filter component 425 filters the reconstructed image blocks, residual blocks, and/or prediction blocks, and such information is stored in the decoded image buffer component 423. The reconstructed image blocks from the decoded image buffer component 423 are sent to the motion compensation component 421 for inter-frame prediction. Motion compensation component 421 may be substantially similar to motion estimation component 221 and/or motion compensation component 219 . Specifically, motion compensation component 421 uses motion vectors from the reference block to form a prediction block and applies the residual block to the result to reconstruct the image block. The resulting reconstructed blocks may also be sent through the in-loop filter component 425 to the decoded image buffer component 423. The decoded image buffer component 423 continues to store additional reconstructed image blocks that can be converted into frames via partition information. Such frames can also be placed sequentially. The sequence is displayed as a reconstructed video output.

[0093] Имея в виду вышеизложенное, методы сжатия видео выполняют пространственное (внутри изображения) предсказание и/или временное (межкадровое) предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям. Для блочного кодирования видео слайс видео (то есть видеоизображение или часть видеоизображения) может быть разделен на видеоблоки, которые также могут называться древовидными блоками, блоками дерева кодирования (CTB), блоками дерева кодирования (CTU), блоками кодирования (CU) и/или узлами кодирования. Видеоблоки в внутрикодироавнном (I) слайсе изображения кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в одном и том же изображении. Видеоблоки в межкодированном (P или B) слайсе изображения могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в одном и том же изображении или временное предсказание относительно опорных выборок в других опорных изображениях. Изображения могут называться кадрами, а опорные изображения могут называться опорными кадрами.[0093] With the above in mind, video compression techniques perform spatial (intra-image) prediction and/or temporal (inter-frame) prediction to reduce or remove redundancy inherent in video sequences. For block video encoding, a video slice (i.e. a video image or part of a video image) can be divided into video blocks, which can also be called tree blocks, coding tree blocks (CTB), coding tree units (CTU), coding units (CU) and/or nodes coding. Video blocks in an intra-encoded (I) slice of an image are encoded using spatial prediction relative to reference samples in adjacent blocks in the same image. Video blocks in an inter-coded (P or B) slice of a picture may use spatial prediction relative to reference samples in adjacent blocks in the same picture or temporal prediction relative to reference samples in other reference pictures. The images may be called frames, and the reference pictures may be called reference frames.

[0094] Пространственное или временное предсказание приводит к блоку предсказания для блока, который должен быть кодирован. Остаточные данные представляют собой пиксельные различия между исходным блоком, который должен быть кодирован, и блоком предсказания. Межкодированный блок кодируется согласно вектору движения, который указывает на блок опорных выборок, образующих блок предсказания, и остаточным данным, указывающим разницу между кодированным блоком и блоком предсказания. Блок с внутренним кодированием кодируется в соответствии с режимом внутреннего кодирования и остаточными данными. Для дальнейшего сжатия остаточные данные могут быть преобразованы из области пикселей в область преобразования, в результате чего будут получены остаточные коэффициенты преобразования, которые затем могут быть квантованы. Квантованные коэффициенты преобразования, изначально расположенные в двумерном массиве, могут сканироваться для создания одномерного вектора коэффициентов преобразования, и может применяться энтропийное кодирование для достижения еще большего сжатия.[0094] Spatial or temporal prediction results in a block prediction for the block to be encoded. The residual data represents the pixel differences between the original block to be encoded and the prediction block. The inter-coded block is encoded according to a motion vector that indicates a block of reference samples forming a prediction block, and residual data indicating the difference between the coded block and the prediction block. The intra-encoded block is encoded according to the intra-encoding mode and residual data. For further compression, the residual data can be transformed from the pixel domain to the transform domain, resulting in residual transform coefficients, which can then be quantized. The quantized transform coefficients, initially located in a two-dimensional array, can be scanned to create a one-dimensional vector of transform coefficients, and entropy encoding can be applied to achieve even greater compression.

[0095] Сжатие изображений и видео быстро растет, что привело к появлению различных стандартов кодирования. К таким стандартам кодирования видео относятся ITU-T H.261, International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) MPEG-1 Part 2, ITU-T H.262 или ISO/IEC MPEG-2 Part 2, ITU-T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), также известный как ITU-T H.264 или ISO/IEC MPEG-4 Part 10, и High Efficiency Video Coding (HEVC), также известный как ITU-T H.265 или MPEG-H Part 2. AVC включает такие расширения, как масштабируемое кодирование видео (SVC, Scalable Video Coding), кодирование видео с множественными ракурсами (MVC, Multiview Video Coding) и кодирование видео с множественными ракурсами плюс глубина (MVC+D, Multiview Video Coding plus Depth) и 3D AVC (3D-AVC). HEVC включает в себя такие расширения, как Scalable HEVC (SHVC), Multiview HEVC (MV-HEVC) и 3D HEVC (3D-HEVC).[0095] Image and video compression is growing rapidly, leading to the emergence of various encoding standards. These video coding standards include ITU-T H.261, International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) MPEG-1 Part 2, ITU-T H.262 or ISO/IEC MPEG-2 Part 2, ITU- T H.263, ISO/IEC MPEG-4 Part 2, Advanced Video Coding (AVC), also known as ITU-T H.264 or ISO/IEC MPEG-4 Part 10, and High Efficiency Video Coding (HEVC), also known as ITU-T H.265 or MPEG-H Part 2. AVC includes extensions such as Scalable Video Coding (SVC), Multiview Video Coding (MVC), and Multiview Video Coding plus depth (MVC+D, Multiview Video Coding plus Depth) and 3D AVC (3D-AVC). HEVC includes extensions such as Scalable HEVC (SHVC), Multiview HEVC (MV-HEVC) and 3D HEVC (3D-HEVC).

[0096] Существует также новый стандарт кодирования видео, названный Универсальное кодирование видео (VVC, Versatile Video Coding), который разрабатывается совместной группой экспертов по видео (JVET) ITU-T и ISO/IEC. Хотя стандарт VVC имеет несколько рабочих проектов, в частности, один рабочий проект (WD) VVC, а именно B. Bross, J. Chen, and S. Liu, "Versatile Video Coding (Draft 5)," JVET-N1001-v3, 13th JVET Meeting, 27 марта 2019 г. (VVC Draft 5). Каждая из ссылок в этом параграфе и в предыдущем параграфе полностью включена посредством ссылки.[0096] There is also a new video coding standard called Versatile Video Coding (VVC), which is being developed by the Joint Video Experts Team (JVET) of ITU-T and ISO/IEC. Although the VVC standard has several working drafts, one VVC working draft (WD) in particular, namely B. Bross, J. Chen, and S. Liu, “Versatile Video Coding (Draft 5),” JVET-N1001-v3, 13th JVET Meeting, March 27, 2019 (VVC Draft 5). Each of the references in this paragraph and the preceding paragraph is incorporated by reference in its entirety.

[0097] Описание методов, раскрытых в данном документе, основано на разрабатываемом стандарте кодирования видео Versatile Video Coding (VVC) объединенной группой экспертов по видео (JVET) ITU-T и ISO/IEC. Однако эти методы также применимы к другим спецификациям видеокодеков.[0097] The description of the methods disclosed in this document is based on the Versatile Video Coding (VVC) video coding standard being developed by the Joint Video Experts Team (JVET) of ITU-T and ISO/IEC. However, these techniques are also applicable to other video codec specifications.

[0098] Фиг. 5 является представлением 500 взаимосвязи между изображением 502 внутренней точки произвольного доступа (IRAP, intra random access point) относительно начальных изображений 504 и замыкающих изображений 506 в порядке 508 декодирования и порядке 510 представления. В варианте осуществления изображение 502 IRAP упоминается как изображение чистого произвольного доступа (CRA, clean random access) или как изображение мгновенного обновления декодера (IDR, instantaneous decoder refresh) с изображением, декодируемым произвольным доступом (RADL, random access decodable). В HEVC изображения IDR, изображения CRA и изображения с нарушенным доступом соединения (BLA, Broken Link Access) считаются изображениями 502 IRAP. Что касается VVC, во время 12-го заседания JVET в октябре 2018 года было решено использовать изображения IDR и CRA в качестве изображений IRAP. В варианте осуществления изображения с нарушенным доступом соединения (BLA) и постепенного обновления декодера (GDR, Gradual Decoder Refresh) также могут рассматриваться как изображения IRAP. Процесс декодирования кодированной видеопоследовательности всегда начинается с IRAP.[0098] FIG. 5 is a representation 500 of the relationship between an intra random access point (IRAP) image 502 with respect to leading images 504 and trailing images 506 in decoding order 508 and presentation order 510. In an embodiment, the IRAP picture 502 is referred to as a clean random access (CRA) picture or an instantaneous decoder refresh (IDR) picture with a random access decodable (RADL) picture. In HEVC, IDR images, CRA images , and Broken Link Access (BLA) images are considered 502 IRAP images. Regarding VVC, during the 12th JVET meeting in October 2018, it was decided to use IDR and CRA images as IRAP images. In an embodiment, broken connection access (BLA) and Gradual Decoder Refresh (GDR) pictures may also be considered as IRAP pictures. The decoding process of an encoded video sequence always starts with the IRAP.

[0099] Как показано на фиг. 5, ведущие изображения 504 (например, изображения 2 и 3) следуют за изображением 502 IRAP в порядке 508 декодирования, но предшествуют изображению 502 IRAP в порядке 510 представления. Конечное изображение 506 следует за изображением 502 IRAP как в порядке 508 декодирования, так и в порядке 510 представления. Хотя два ведущих изображения 504 и одно замыкающее изображение 506 изображены на фиг. 5, специалисты в данной области техники поймут, что больше или меньше начальных изображений 504 и/или замыкающих изображений 506 может присутствовать в порядке 508 декодирования и порядке 510 представления в практических приложениях.[0099] As shown in FIG. 5, leading pictures 504 (eg, pictures 2 and 3) follow the IRAP picture 502 in decoding order 508, but precede the IRAP picture 502 in presentation order 510. The final picture 506 follows the IRAP picture 502 in both decoding order 508 and presentation order 510. Although two leading images 504 and one trailing image 506 are shown in FIG. 5, those skilled in the art will appreciate that more or less leading images 504 and/or trailing images 506 may be present in decoding order 508 and presentation order 510 in practical applications.

[0100] Ведущие изображения 504 на фиг. 5 были разделены на два типа, а именно: произвольный доступ с пропущенным ведущим (RASL) и RADL. Когда декодирование начинается с изображения 502 IRAP (например, изображения 1), изображение RADL (например, изображение 3) может быть правильно декодировано; однако изображение RASL (например, изображение 2) не может быть правильно декодировано. Таким образом, изображение RASL отбрасывается. В свете различия между изображениями RADL и RASL тип ведущего изображения 504, связанного с изображением 502 IRAP, должен быть идентифицирован как RADL или RASL для эффективного и правильного кодирования. В HEVC, когда присутствуют изображения RASL и RADL, ограничено, что для изображений RASL и RADL, которые связаны с одним и тем же изображением 502 IRAP, изображения RASL должны предшествовать изображениям RADL в порядке 510 представления.[0100] Leading images 504 in FIG. 5 have been divided into two types, namely random access skipped leader (RASL) and RADL. When decoding starts from the IRAP picture 502 (eg, picture 1), the RADL picture (eg, picture 3) can be decoded correctly; however, the RASL picture (eg picture 2) cannot be decoded correctly. Thus, the RASL image is discarded. In light of the difference between RADL and RASL pictures, the type of the leading picture 504 associated with the IRAP picture 502 must be identified as RADL or RASL for efficient and correct encoding. In HEVC, when RASL and RADL pictures are present, it is limited that for RASL and RADL pictures that are associated with the same IRAP picture 502, the RASL pictures must precede the RADL pictures in presentation order 510.

[0101] Изображение 502 IRAP обеспечивает следующие две важные функции/преимущества. Во-первых, наличие изображения 502 IRAP указывает, что процесс декодирования может начинаться с этого изображения. Эта функциональность позволяет использовать функцию произвольного доступа, в которой процесс декодирования начинается в этой позиции в битовом потоке, не обязательно в начале битового потока, пока изображение 502 IRAP присутствует в этой позиции. Во-вторых, наличие изображения 502 IRAP обновляет процесс декодирования, так что кодированное изображение, начинающееся с изображения 502 IRAP, исключая изображения RASL, кодируется без какой-либо ссылки на предыдущие изображения. Наличие изображения 502 IRAP, присутствующего в битовом потоке, следовательно, остановит любую ошибку, которая может произойти во время декодирования кодированных изображений до изображения 502 IRAP для распространения на изображение 502 IRAP и те изображения, которые следуют за изображением 502 IRAP в порядке 508 декодирования.[0101] IRAP Image 502 provides the following two important features/benefits. First, the presence of an IRAP picture 502 indicates that the decoding process can begin with that picture. This functionality allows the use of a random access function in which the decoding process begins at this position in the bitstream, not necessarily at the beginning of the bitstream, as long as the IRAP image 502 is present at that position. Second, the presence of IRAP picture 502 updates the decoding process so that the encoded picture starting with IRAP picture 502, excluding RASL pictures, is encoded without any reference to previous pictures. Having the IRAP picture 502 present in the bitstream will therefore stop any error that may occur during decoding of the encoded pictures up to the IRAP picture 502 from being propagated to the IRAP picture 502 and those pictures that follow the IRAP picture 502 in the decoding order 508.

[0102] Хотя изображения 502 IRAP обеспечивают важные функциональные возможности, они снижают эффективность сжатия. Присутствие изображения 502 IRAP вызывает скачок скорости передачи данных. Это снижение эффективности сжатия вызвано двумя причинами. Во-первых, поскольку изображение 502 IRAP является изображением с внутренним предсказанием, само изображение потребует относительно большего количества битов для представления по сравнению с другими изображениями (например, ведущими изображениями 504, замыкающими изображениями 506), которые являются изображениями с межкадровым предсказанием. Во-вторых, поскольку наличие изображения 502 IRAP нарушает временное предсказание (это потому, что декодер обновляет процесс декодирования, в котором одним из действий процесса декодирования является удаление предыдущих опорных изображений в буфере декодированных изображений (DPB )) изображение 502 IRAP приводит к тому, что кодирование изображений, следующих за изображением 502 IRAP в порядке 508 декодирования, становится менее эффективным (то есть для представления требуется больше битов), потому что они имеют меньше опорных изображений для их кодирования с межкадровым предсказанием.[0102] Although IRAP images 502 provide important functionality, they reduce compression efficiency. The presence of a 502 IRAP image causes the data rate to spike. This decrease in compression efficiency is due to two reasons. First, since IRAP picture 502 is an intra-prediction picture, the picture itself will require relatively more bits to represent compared to other pictures (eg, leading pictures 504, trailing pictures 506) that are inter-picture prediction pictures. Secondly, since the presence of a 502 IRAP picture violates temporal prediction (this is because the decoder updates the decoding process, in which one of the actions of the decoding process is to remove previous reference pictures in the decoded picture buffer (DPB)) the 502 IRAP picture causes The encoding of pictures following IRAP picture 502 in decoding order 508 becomes less efficient (ie, more bits are required to represent) because they have fewer reference pictures to encode with inter-frame prediction.

[0103] Среди типов изображения, которые считаются изображениями 502 IRAP, изображение IDR в HEVC имеет другую сигнализацию и происхождение по сравнению с другими типами изображений. Некоторые отличия заключаются в следующем.[0103] Among the picture types that are considered IRAP pictures 502, the IDR picture in HEVC has a different signaling and origin compared to other picture types. Some differences are as follows.

[0104] Для сигнализации и вывода значения счетчика порядка изображений (POC, picture order count) IDR-изображения часть старшего бита (MSB, most significant bit) POC не выводится из предыдущего ключевого изображения, а просто устанавливается равной 0.[0104] To signal and output the picture order count value of an IDR picture, the most significant bit portion of the POC is not derived from the previous key picture, but is simply set to 0.

[0105] Что касается сигнальной информации, необходимой для управления опорным изображением, заголовок слайса IDR-изображения не содержит информации, необходимой для передачи сигналов для помощи в управлении опорным изображением. Для других типов изображений (например, CRA, трейлинг, доступ к временному подуровню (TSA, temporal sub-layer access) и т.д.) Информация, такая как набор опорных изображений (RPS, reference picture set), описанная ниже, или другие формы аналогичной информации (например, списки опорных изображений) являются необходим для процесса маркировки опорных изображений (т.е. процесса определения статуса опорных изображений в буфере декодированных изображений (DPB, decoded picture buffer), которые используются для справки или не используются для справки). Однако для изображения IDR такую информацию не нужно сообщать, потому что наличие IDR указывает, что процесс декодирования должен просто пометить все опорные изображения в DPB как неиспользуемые для справки.[0105] With respect to the signaling information necessary to control the reference picture, the IDR picture slice header does not contain information necessary to carry signals to assist in controlling the reference picture. For other picture types (eg, CRA, trailing, TSA, temporal sub-layer access, etc.) Information such as the reference picture set described below, or others forms of similar information (eg, lists of reference pictures) are necessary for the process of marking reference pictures (ie, the process of determining the status of reference pictures in the decoded picture buffer (DPB) that are used for reference or not used for reference). However, for an IDR picture, such information does not need to be reported because the presence of the IDR indicates that the decoding process should simply mark all reference pictures in the DPB as unused for reference.

[0106] Помимо концепции изображений IRAP, есть также ведущие изображения, которые, если они есть, связаны с изображением IRAP. Ведущие изображения - это изображения, которые следуют за связанным с ним изображением IRAP в порядке декодирования, но предшествуют изображению IRAP в порядке вывода. В зависимости от конфигурации кодирования и структуры ссылок на изображения ведущие изображения далее идентифицируются по двум типам. Первый тип - это начальные изображения, которые могут быть некорректно декодированы, если процесс декодирования начинается с связанного с ним изображения IRAP. Это может происходить из-за того, что эти ведущие изображения кодируются со ссылкой на изображения, которые предшествуют изображению IRAP в порядке декодирования. Такие начальные изображения называются начальными кадрами с произвольным доступом с пропуском (RASL, random access skipped leading). Второй тип - это начальные изображения, которые должны быть правильно декодированы, даже если процесс декодирования начинается с связанного с ним изображения IRAP. Это возможно, потому что эти ведущие изображения кодируются без ссылки прямо или косвенно на изображения, которые предшествуют изображению IRAP в порядке декодирования. Такие ведущие изображения называются ведущими изображениями, декодируемыми с произвольным доступом (RADL, called random access decodable leading). В HEVC, когда присутствуют изображения RASL и RADL, ограничено, что для изображений RASL и RADL, которые связаны с одним и тем же изображением IRAP, изображения RASL должны предшествовать изображениям RADL в порядке вывода.[0106] In addition to the concept of IRAP images, there are also leading images that, if present, are associated with the IRAP image. Lead pictures are pictures that follow its associated IRAP picture in decoding order, but precede the IRAP picture in output order. Depending on the encoding configuration and image link structure, leading images are further identified into two types. The first type is seed pictures, which may not be decoded correctly if the decoding process starts from the associated IRAP picture. This may occur because these leading pictures are encoded with reference to pictures that precede the IRAP picture in the decoding order. These leading images are called random access skipped leading (RASL) frames. The second type are seed pictures, which must be decoded correctly even if the decoding process starts from the associated IRAP picture. This is possible because these leading pictures are encoded without reference directly or indirectly to pictures that precede the IRAP picture in the decoding order. Such leading pictures are called random access decodable leading pictures (RADL, called random access decodable leading). In HEVC, when RASL and RADL images are present, the constraint is that for RASL and RADL images that are associated with the same IRAP image, the RASL images must precede the RADL images in output order.

[0107] В HEVC и VVC изображения 502 IRAP и начальные изображения 504 могут каждое содержаться в одном блоке уровня абстракции сети (NAL, network abstraction layer). Набор блоков NAL может называться блоком доступа. Изображениям 502 IRAP и начальным изображениям 504 присваиваются разные типы блоков NAL, чтобы их можно было легко идентифицировать приложениями системного уровня. Например, монтажному устройству видео необходимо понимать типы кодированных изображений без необходимости понимать слишком много деталей синтаксического элемента в кодированном битовом потоке, в частности, чтобы идентифицировать изображения 502 IRAP из изображений, не относящихся к IRAP, и идентифицировать ведущие изображения 504, включая определение RASL и Изображения RADL из замыкающих изображений 506. Конечные изображения 506 - это те изображения, которые связаны с изображением 502 IRAP и следуют за изображением 502 IRAP в порядке 510 представления. Изображение может следовать за конкретным изображением 502 IRAP в порядке 508 декодирования и предшествовать любому другому изображению 502 IRAP в порядке 508 декодирования. Для этого обеспечение изображений 502 IRAP и первых изображений 504 их собственного типа блока NAL помогает таким приложениям.[0107] In HEVC and VVC, IRAP images 502 and seed images 504 may each be contained in a single network abstraction layer (NAL) block. A set of NAL blocks may be called an access block. IRAP pictures 502 and seed pictures 504 are assigned different NAL block types so that they can be easily identified by system-level applications. For example, a video editor needs to understand the types of encoded pictures without needing to understand too many details of the syntax element in the encoded bitstream, particularly to identify IRAP pictures 502 from non-IRAP pictures and to identify leading pictures 504, including the definition of RASL and Pictures RADL from trailing pictures 506. Trailing pictures 506 are those pictures that are associated with IRAP picture 502 and follow IRAP picture 502 in presentation order 510. An image may follow a particular IRAP image 502 in decoding order 508 and precede any other IRAP image 502 in decoding order 508. To this end, providing IRAP images 502 and first images 504 of their own NAL block type helps such applications.

[0108] Для HEVC типы блоков NAL для изображений IRAP включают следующее: [0108] For HEVC, NAL block types for IRAP images include the following:

BLA с ведущим изображением (BLA_W_LP): Блок NAL изображения доступа к нарушенному соединению (BLA, Broken Link Access), за которым может следовать одно или более ведущих изображений в порядке декодирования. BLA with Leading Picture (BLA_W_LP): A Broken Link Access (BLA) picture NAL block that may be followed by one or more leading pictures in decoding order.

BLA с RADL (BLA_W_RADL): Блок NAL изображения BLA, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования. BLA with RADL (BLA_W_RADL): A NAL block of a BLA picture that may be followed by one or more RADL pictures, but not a RASL picture in decoding order.

BLA без ведущего изображения (BLA_N_LP): Блок NAL изображения BLA, за которым не следует ведущее изображение в порядке декодирования. BLA without leading picture (BLA_N_LP): A NAL block of a BLA picture that is not followed by a leading picture in decoding order.

IDR с RADL (IDR_W_RADL): Блок NAL изображения IDR, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования. IDR with RADL (IDR_W_RADL): A NAL block of an IDR picture that may be followed by one or more RADL pictures, but not a RASL picture in decoding order.

IDR без ведущего изображения (IDR_N_LP): Блок NAL изображения IDR, за которым не следует ведущее изображение в порядке декодирования. IDR without leading picture (IDR_N_LP): A NAL block of an IDR picture that is not followed by a leading picture in decoding order.

CRA: Блок NAL изображения с чистым произвольным доступом (CRA, Clean Random Access), за которым могут следовать начальные изображения (т.е. либо изображения RASL, либо изображения RADL, либо и то, и другое). CRA: A NAL block of a Clean Random Access (CRA) image, which may be followed by initial images (ie, either RASL images, RADL images, or both).

RADL: Блок NAL изображения RADL. RADL: NAL block of RADL image.

RASL: Блок NAL изображения RASL. RASL: RASL image NAL block.

[0109] Для VVC тип блока NAL для изображений 502 IRAP и ведущих изображений 504 следующий: [0109] For VVC, the NAL block type for IRAP pictures 502 and leading pictures 504 is as follows:

IDR с RADL (IDR_W_RADL): Блок NAL изображения IDR, за которым может следовать одно или более изображений RADL, но не изображение RASL в порядке декодирования. IDR with RADL (IDR_W_RADL): A NAL block of an IDR picture that may be followed by one or more RADL pictures, but not a RASL picture in decoding order.

IDR без ведущего изображения (IDR_N_LP): Блок NAL изображения IDR, за которым не следует ведущее изображение в порядке декодирования. IDR without leading picture (IDR_N_LP): A NAL block of an IDR picture that is not followed by a leading picture in decoding order.

CRA: Блок NAL изображения с чистым произвольным доступом (CRA, Clean Random Access), за которым могут следовать начальные изображения (т.е. Либо изображения RASL, либо изображения RADL, либо и то, и другое). CRA: A NAL block of a Clean Random Access (CRA) image, which may be followed by initial images (ie, either RASL images or RADL images, or both).

RADL: Блок NAL изображения RADL. RADL: NAL block of RADL image.

RASL: Блок NAL изображения RASL. RASL: RASL image NAL block.

[0110] Функция передискретизации опорного изображения (RPR, reference picture resampling) - это способность изменять пространственное разрешение кодированных изображений в середине битового потока без необходимости внутреннего кодирования изображения в месте изменения разрешения. Чтобы сделать это возможным, изображение должно иметь возможность ссылаться для целей межкадрового предсказания на одно или более опорных изображений, для которых пространственное разрешение отличается от разрешения текущего изображения. Следовательно, передискретизация такого опорного изображения или его части необходима для кодирования и декодирования текущего изображения. Таким образом, название RPR. Эта функция также может называться адаптивным изменением разрешения (ARC) или другими названиями. Существуют сценарии использования или сценарии приложений, для которых функция RPR может быть полезна, в том числе следующие.[0110] Reference picture resampling (RPR) is the ability to change the spatial resolution of encoded images in the middle of a bitstream without the need for internal image encoding at the location of the resolution change. To make this possible, the image must be able to reference, for inter-picture prediction purposes, one or more reference images for which the spatial resolution is different from the resolution of the current image. Therefore, resampling of such a reference picture or part thereof is necessary for encoding and decoding the current picture. Thus the name RPR. This feature may also be called adaptive resolution rescanning (ARC) or other names. There are use cases or application scenarios for which the RPR feature may be useful, including the following.

[0111] Адаптация скорости в видеотелефонии и конференц-связи. Это необходимо для адаптации закодированного видео к изменяющимся условиям сети. Когда состояние сети ухудшается, и доступная пропускная способность становится ниже, кодер может адаптироваться к этому, кодируя изображения с меньшим разрешением.[0111] Rate adaptation in video telephony and conferencing. This is necessary to adapt the encoded video to changing network conditions. When network conditions deteriorate and the available bandwidth becomes lower, the encoder can adapt to this by encoding images at a lower resolution.

[0112] Смена активного выступающего в многосторонней видеоконференцсвязи. Для многосторонней видеоконференцсвязи обычно размер видео для активного выступающего больше или больше, чем размер видео для остальных участников конференции. При смене активного выступающего может также потребоваться настройка разрешения изображения для каждого участника. Необходимость иметь функции ARC становится более важной, когда смена активного динамика происходит часто.[0112] Changing the active speaker in a multiparty video conference. For multi-party video conferencing, it is common for the video size for the active speaker to be larger or larger than the video size for the rest of the conference participants. When changing the active speaker, you may also need to adjust the image resolution for each participant. The need to have ARC functionality becomes more important when the active speaker changes frequently.

[0113] Быстрый старт в потоковой передаче. Для потокового приложения обычно выполняется буферизация декодированных изображений до определенной длины перед тем, как начать отображение изображений. Запуск битового потока с меньшим разрешением позволит приложению иметь достаточно изображений в буфере для более быстрого отображения.[0113] A quick start to streaming. For a streaming application, it is common to buffer decoded images to a certain length before starting to display the images. Running the bitstream at a lower resolution will allow the application to have enough images in the buffer for faster rendering.

[0114] Адаптивное переключение потоков в потоковой передаче. Спецификация динамической адаптивной потоковой передачи через HTTP (DASH) включает функцию с именем @mediaStreamStructureId. Эта функция позволяет переключаться между различными представлениями в точках произвольного доступа открытой группы изображений (GOP, open-group of picture) с не декодируемыми ведущими изображениями, например, изображения CRA со связанными изображениями RASL в HEVC. Когда два разных представления одного и того же видео имеют разные битрейты, но одинаковое пространственное разрешение и одинаковое значение @mediaStreamStructureId, может выполняться переключение между двумя представлениями в изображении CRA со связанными изображениями RASL, а изображения RASL, связанные с переключающиеся изображения CRA могут быть декодированы с приемлемым качеством, что обеспечивает плавное переключение. С ARC функция @mediaStreamStructureId также может использоваться для переключения между представлениями DASH с различным пространственным разрешением.[0114] Adaptive stream switching in streaming. The Dynamic Adaptive Streaming over HTTP (DASH) specification includes a function named @mediaStreamStructureId. This feature allows you to switch between different views at open-group of picture (GOP) random access points with non-decodable leading pictures, such as CRA pictures with associated RASL pictures in HEVC. When two different representations of the same video have different bitrates but the same spatial resolution and the same @mediaStreamStructureId value, switching between the two representations in a CRA picture with associated RASL pictures can be performed, and the RASL pictures associated with the switching CRA pictures can be decoded with acceptable quality, which ensures smooth switching. With ARC, the @mediaStreamStructureId function can also be used to switch between DASH representations at different spatial resolutions.

[0115] Различные методы упрощают базовые методы поддержки RPR/ARC, такие как сигнализация списков разрешений изображений, некоторые ограничения передискретизации опорных изображений в DPB и т.д.[0115] Various techniques simplify basic RPR/ARC support methods, such as signaling of picture resolution lists, some restrictions on resampling of reference pictures in DPB, etc.

[0116] Одним из компонентов метода, необходимого для поддержки RPR, является метод передачи сигналов разрешения изображения, которое может присутствовать в битовом потоке. В некоторых примерах это решается путем изменения текущей сигнализации разрешения изображения со списком разрешений изображения в SPS, как показано ниже. [0116] One component of the method required to support RPR is a method for signaling the image resolution that may be present in the bitstream. Some examples solve this by changing the current image resolution signaling with a list of image resolutions in the SPS, as shown below.

seq_parameter_set_rbsp () {seq_parameter_set_rbsp() { ДескрипторDescriptor ...... num_pic_size_in_luma_samples_minus1num_pic_size_in_luma_samples_minus1 ue(v)ue(v) for( i = 0; i <= num_pic_size_in_luma_samples_minus1; i++ ) {for( i = 0; i <= num_pic_size_in_luma_samples_minus1; i++ ) { pic_width_in_luma_samples[ i ] pic_width_in_luma_samples [i] ue(v)ue(v) pic_height_in_luma_samples[ i ] pic_height_in_luma_samples [i] ue(v)ue(v) }} ...... }}

[0117] num_pic_size_in_luma_samples_minus1 плюс 1 определяет количество размеров изображения (ширины и высоты) в единицах выборок яркости, которые могут присутствовать в кодированной видеопоследовательности.[0117] num_pic_size_in_luma_samples_minus1 plus 1 specifies the number of picture sizes (width and height) in units of luma samples that may be present in the encoded video sequence.

[0118] pic_width_in_luma_samples [i] определяет i-ю ширину декодированных изображений в единицах выборок яркости, которые могут присутствовать в кодированной видеопоследовательности. pic_width_in_luma_samples [i] не должно быть равно 0 и должно быть целым кратным MinCbSizeY.[0118] pic_width_in_luma_samples [i] specifies the i-th width of the decoded images in units of luma samples that may be present in the encoded video sequence. pic_width_in_luma_samples [i] must not be 0 and must be an integer multiple of MinCbSizeY.

[0119] pic_height_in_luma_samples [i] определяет i-ю высоту декодированных изображений в единицах выборок яркости, которые могут присутствовать в кодированной видеопоследовательности. pic_height_in_luma_samples [i] не должно быть равно 0 и должно быть целым кратным MinCbSizeY.[0119] pic_height_in_luma_samples [i] specifies the i-th height of the decoded images in units of luminance samples that may be present in the encoded video sequence. pic_height_in_luma_samples [i] must not be 0 and must be an integer multiple of MinCbSizeY.

[0120] Во время 15-й встречи JVET был обсужден другой вариант сигнального размера изображения и окон соответствия для поддержки RPR. Сигнализация следующая.[0120] During the 15th JVET meeting, another option for signal image size and matching windows to support RPR was discussed. The alarm is as follows.

[0121] - Укажите максимальный размер изображения (т.е. ширину и высоту изображения) в SPS[0121] - Specify the maximum image size (i.e. image width and height) in SPS

[0122] - Размер изображения сигнала в наборе параметров изображения (PPS, picture parameter set).[0122] - Size of the signal image in the picture parameter set (PPS, picture parameter set).

[0123] - Переместить текущую сигнализацию окон соответствия с SPS на PPS. Информация окна соответствия используется для обрезки восстановленных/декодированных изображений в процессе подготовки изображения к выводу. Размер кадрированного изображения - это размер изображения после кадрирования изображения с использованием связанного с ним окна соответствия.[0123] - Move current matching window signaling from SPS to PPS. The match window information is used to crop the reconstructed/decoded images in the process of preparing the image for output. The cropped image size is the size of the image after cropping the image using its associated match window.

[0124] Сигнализация размеров изображения и окон соответствия выглядит следующим образом. [0124] The image size and matching window signaling is as follows.

seq_parameter_set_rbsp( ) {seq_parameter_set_rbsp() { ДескрипторDescriptor ...... pic_width_in_luma_samplespic_width_in_luma_samples ue(v)ue(v) pic_height_in_luma_samplespic_height_in_luma_samples ue(v)ue(v) max_width_in_luma_samplesmax_width_in_luma_samples ue(v)ue(v) max_height_in_luma_samplesmax_height_in_luma_samples ue(v)ue(v) ...... }}

[0125] max_width_in_luma_samples определяет, что требование соответствия битового потока, чтобы pic_width_in_luma_samples для любого изображения, для которого этот SPS активен, было меньше или равно max_width_in_luma_samples.[0125] max_width_in_luma_samples specifies that the bitstream matching requirement that pic_width_in_luma_samples for any image for which this SPS is active is less than or equal to max_width_in_luma_samples.

[0126] max_height_in_luma_samples определяет, что требование соответствия битового потока, чтобы pic_height_in_luma_samples для любого изображения, для которого этот SPS активен, было меньше или равно max_height_in_luma_samples.[0126] max_height_in_luma_samples specifies that the bitstream matching requirement that pic_height_in_luma_samples for any image for which this SPS is active is less than or equal to max_height_in_luma_samples.

pic_parameter_set_rbsp( ) {pic_parameter_set_rbsp() { ДескрипторDescriptor ...... pps_seq_parameter_set_idpps_seq_parameter_set_id ue(v)ue(v) pic_width_in_luma_samplespic_width_in_luma_samples ue(v)ue(v) pic_height_in_luma_samplespic_height_in_luma_samples ue(v)ue(v) conformance_window_flagconformance_window_flag u(1)u(1) if( conformance_window_flag ) {if( conformance_window_flag ) { conf_win_left_offsetconf_win_left_offset ue(v)ue(v) conf_win_right_offsetconf_win_right_offset ue(v)ue(v) conf_win_top_offsetconf_win_top_offset ue(v)ue(v) conf_win_bottom_offsetconf_win_bottom_offset ue(v)ue(v) }} ...... }}

[0127] pic_width_in_luma_samples определяет ширину каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости. pic_width_in_luma_samples не должно быть равно 0 и должно быть целым числом, кратным MinCbSizeY.[0127] pic_width_in_luma_samples specifies the width of each decoded image with reference to PPS in units of luma samples. pic_width_in_luma_samples must not be 0 and must be an integer multiple of MinCbSizeY.

[0128] pic_height_in_luma_samples определяет высоту каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости. pic_height_in_luma_samples не должно быть равно 0 и должно быть целым кратным MinCbSizeY.[0128] pic_height_in_luma_samples specifies the height of each decoded image with reference to PPS in units of luma samples. pic_height_in_luma_samples must not be 0 and must be an integer multiple of MinCbSizeY.

[0129] Требование соответствия битового потока состоит в том, чтобы выполнялись все следующие условия для каждого активного опорного изображения, ширина и высота которого равны reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples: [0129] The bitstream matching requirement is that all of the following conditions are met for each active reference picture whose width and height are reference_pic_width_in_luma_samples and reference_pic_height_in_luma_samples:

2 * pic_width_in_luma_samples>=reference_pic_width_in_luma_samples2 * pic_width_in_luma_samples>=reference_pic_width_in_luma_samples

2 * pic_height_in_luma_samples>=reference_pic_height_in_luma_samples2 * pic_height_in_luma_samples>=reference_pic_height_in_luma_samples

pic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samplespic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samples

pic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samplespic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samples

[0130] Переменные PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC и PicHeightInSamplesC выводятся следующим образом: [0130] The variables PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC and PicHeightInSamplesC are output as follows:

PicWidthInCtbsY=Ceil (pic_width_in_luma_samples ÷ CtbSizeY) (1)PicWidthInCtbsY=Ceil (pic_width_in_luma_samples ÷ CtbSizeY) (1)

PicHeightInCtbsY=Ceil (pic_height_in_luma_samples ÷ CtbSizeY) (2)PicHeightInCtbsY=Ceil (pic_height_in_luma_samples ÷ CtbSizeY) (2)

PicSizeInCtbsY=PicWidthInCtbsY * PicHeightInCtbsY (3)PicSizeInCtbsY=PicWidthInCtbsY * PicHeightInCtbsY (3)

PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (4)PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (4)

PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (5)PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (5)

PicSizeInMinCbsY=PicWidthInMinCbsY * PicHeightInMinCbsY (6)PicSizeInMinCbsY=PicWidthInMinCbsY * PicHeightInMinCbsY (6)

PicSizeInSamplesY=pic_width_in_luma_samples * pic_height_in_luma_samples (7)PicSizeInSamplesY=pic_width_in_luma_samples * pic_height_in_luma_samples (7)

PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (8)PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (8)

PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (9)PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (9)

[0131] conformance_window_flag, равное 1, указывает, что параметры смещения окна обрезки соответствия следуют далее в PPS. conformance_window_flag, равное 0, указывает, что параметры смещения окна обрезки соответствия отсутствуют.[0131] conformance_window_flag equal to 1 indicates that the conformance trim window offset parameters follow further in the PPS. conformance_window_flag equal to 0 indicates that there are no conformance crop window offset options.

[0132] 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.[0132] conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset define samples of PPS-referencing images that are output from the decoding process in terms of a rectangular area specified in the output image coordinates. When conformance_window_flag is 0, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset are considered to be 0.

[0133] Окно обрезки соответствия содержит выборки яркости с горизонтальными координатами изображения от SubWidthC * conf_win_left_offset до pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset+1) и вертикальными координатами изображения от SubHeightC * conf_win_top_offset до pic_height_in_luma_samples − ( SubHeightC * conf_win_bottom_offset + 1 ) включительно.[0133] The match trim window contains luminance samples with horizontal image coordinates from SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset+1) and vertical image coordinates from SubHeightC * conf_win_top_offset to pic_height_in_luma_samples − ( SubHeightC * conf_win_bot tom_offset + 1 ) inclusive.

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

[0135] Переменные PicOutputWidthL и PicOutputHeightL выводятся следующим образом: [0135] The PicOutputWidthL and PicOutputHeightL variables are output as follows:

PicOutputWidthL=pic_width_in_luma_samples - (10) SubWidthC * (conf_win_right_offset+conf_win_left_offset) PicOutputWidthL=pic_width_in_luma_samples - (10) SubWidthC * (conf_win_right_offset+conf_win_left_offset)

PicOutputHeightL=pic_height_in_pic_size_units - (11) SubHeightC * (conf_win_bottom_offset+conf_win_top_offset) PicOutputHeightL=pic_height_in_pic_size_units - (11) SubHeightC * (conf_win_bottom_offset+conf_win_top_offset)

[0136] Когда ChromaArrayType не равно 0, соответствующие определенные выборки двух массивов цветности являются выборками, имеющими координаты изображения (x/SubWidthC, y/SubHeightC), где (x, y) - координаты изображения определенных выборок яркости.[0136] When ChromaArrayType is not 0, the corresponding defined samples of the two chroma arrays are samples having image coordinates (x/SubWidthC, y/SubHeightC), where (x, y) are the image coordinates of the defined luminance samples.

[0137] ПРИМЕЧАНИЕ - Параметры смещения окна обрезки соответствия применяются только на выходе. Все внутренние процессы декодирования применяются к размеру необрезанного изображения.[0137] NOTE - The match trim window offset parameters apply only on output. All internal decoding processes are applied to the uncropped image size.

[0138] Сигнализация размера изображения и окна соответствия в PPS создает следующие проблемы.[0138] Image size and matching window signaling in PPS creates the following problems.

[0139] - Поскольку множество PPS могут присутствовать в кодированной видеопоследовательности (CVS), возможно, что два PPS могут содержать сигнализацию одного и того же размера изображения, но разные окна соответствия. Это приведет к ситуации, когда два изображения, относящиеся к разным PPS, будут иметь одинаковый размер изображения, но разный размер обрезки.[0139] - Since multiple PPS may be present in a coded video sequence (CVS), it is possible that two PPS may contain the same picture size signaling but different matching windows. This will lead to a situation where two images belonging to different PPS will have the same image size, but different crop size.

[0140] - Для поддержки RPR было предложено отключить несколько инструментов кодирования для кодирования блока, когда текущее изображение и опорное изображение блока имеют разные размеры изображения. Однако, поскольку теперь возможно, что размер обрезки также может отличаться, даже если два изображения имеют одинаковый размер изображения, необходимо иметь дополнительную проверку на основе размера обрезки.[0140] - To support RPR, it has been proposed to disable several encoding tools for block encoding when the current image and the block reference image have different image sizes. However, since it is now possible that the crop size can also be different even if two images have the same image size, it is necessary to have an additional check based on the crop size.

[0141] В данном документе раскрыты методы, которые ограничивают наборы параметров изображения, которые имеют одинаковый размер изображения, чтобы они также имели одинаковый размер окна соответствия (например, размер окна обрезки). Сохраняя окно соответствия одного и того же размера для наборов параметров изображения, имеющих одинаковый размер изображения, можно избежать чрезмерно сложной обработки, когда разрешена передискретизация опорного изображения (RPR, reference picture resampling). Таким образом, использование процессора, памяти и/или сетевых ресурсов может быть уменьшено как в кодере, так и в декодере. Таким образом, кодер/декодер (также известный как «кодек») при кодировании видео улучшен по сравнению с текущими кодеками. На практике улучшенный процесс кодирования видео предлагает пользователю лучший пользовательский опыт при отправке, получении и/или просмотре видео.[0141] Disclosed herein are methods that constrain sets of image parameters that have the same image size so that they also have the same matching window size (eg, crop window size). By keeping the matching window the same size for sets of image parameters that have the same image size, excessively complex processing can be avoided when reference picture resampling (RPR) is enabled. In this way, the use of processor, memory and/or network resources can be reduced in both the encoder and decoder. Thus, the encoder/decoder (also known as "codec") in video encoding is improved over current codecs. In practice, an improved video encoding process offers the user a better user experience when sending, receiving and/or watching videos.

[0142] Масштабируемость при кодировании видео обычно поддерживается за счет использования методов многоуровневого кодирования. Многоуровневый битовый поток содержит базовый уровень (BL, base layer) и один или более уровней расширения (EL, enhancement layers). Примеры масштабируемости включают в себя пространственную масштабируемость, масштабируемость качества/отношения сигнал/шум (SNR, signal-to-noise), масштабируемость с множеством представлений и т.д. Когда используется метод многоуровневого кодирования, изображение или его часть могут кодироваться (1) без использования опорного изображения, то есть с использованием внутреннего предсказания; (2) путем ссылки на опорные изображения, которые находятся на одном уровне, т.е. С использованием межкадрового предсказания; или (3) путем ссылки на опорные изображения, которые находятся на другом уровне (ах), т.е. с использованием межуровневого предсказания. Опорное изображение, используемое для межуровневого предсказания текущего изображения, называется межуровневым опорным изображением (ILRP, inter-layer reference picture ).[0142] Scalability in video encoding is typically supported through the use of multi-layer encoding techniques. A multi-level bitstream contains a base layer (BL, base layer) and one or more enhancement layers (EL, enhancement layers). Examples of scalability include spatial scalability, quality/signal-to-noise ratio (SNR) scalability, multi-view scalability, etc. When a multi-level coding method is used, an image or part thereof may be encoded (1) without using a reference image, that is, using intra prediction; (2) by referring to reference images that are at the same level, i.e. Using interframe prediction; or (3) by referring to reference images that are on a different level(s), i.e. using cross-layer prediction. The reference picture used for inter-layer prediction of the current image is called an inter-layer reference picture (ILRP, inter-layer reference picture).

[0143] Фиг. 6 является схематической диаграммой, иллюстрирующей пример предсказания 600 на основе уровней, например, выполняемого для определения MV на этапе 105 сжатия блока, этапе 113 декодирования блока, компоненте 221 оценки движения, компоненте 219 компенсации движения, компоненте 321 компенсации движения и/или Компонент компенсации движения 421. Предсказание 600 на основе уровней совместимо с однонаправленным межкадровым предсказанием и/или двунаправленным межкадровым предсказанием, но также выполняется между изображениями на разных уровнях.[0143] FIG. 6 is a schematic diagram illustrating an example of layer-based prediction 600, for example, performed to determine the MV in the block compression step 105, block decoding step 113, motion estimation component 221, motion compensation component 219, motion compensation component 321, and/or Motion Compensation Component 421. Layer-based prediction 600 is compatible with unidirectional inter-prediction and/or bi-directional inter-prediction, but is also performed between pictures at different layers.

[0144] Предсказание 600 на основе уровней применяется между изображениями 611, 612, 613 и 614 и изображениями 615, 616, 617 и 618 на разных уровнях. В показанном примере изображения 611, 612, 613 и 614 являются частью уровеня N+1 632, а изображения 615, 616, 617 и 618 являются частью уровень N 631. Уровень, такой как уровень N 631 и/или уровень N+1 632, представляет собой группу изображений, которые все связаны с аналогичным значением характеристики, например, аналогичным размером, качеством, разрешением, отношением сигнал/шум, возможностями, и т.д. В показанном примере уровень N+1 632 связан с большим размером изображения, чем уровень N 631. Соответственно, изображения 611, 612, 613 и 614 в уровне N+1 632 имеют больший размер изображения (например, большую высоту и ширину и, следовательно, больше выборок), чем изображения 615, 616, 617 и 618 в уровне N 631 в этом пример. Однако такие изображения могут быть разделены между уровнем N+1 632 и уровнем N 631 другими характеристиками. Хотя показаны только два уровня, уровень N+1 632 и уровень N 631, набор изображений может быть разделен на любое количество уровней на основе связанных характеристик. Уровень N+1 632 и уровень N 631 также могут обозначаться идентификатором уровня. Идентификатор уровня - это элемент данных, который связан с изображением и обозначает, что изображение является частью указанного уровня. Соответственно, каждое изображение 611-618 может быть связано с соответствующим идентификатором уровня, чтобы указать, какой уровень N+1 632 или уровень N 631 включает в себя соответствующее изображение.[0144] Level-based prediction 600 is applied between images 611, 612, 613, and 614 and images 615, 616, 617, and 618 at different levels. In the example shown, images 611, 612, 613 and 614 are part of layer N+1 632, and images 615, 616, 617 and 618 are part of layer N 631. A layer such as layer N 631 and/or layer N+1 632, is a group of images that are all associated with a similar characteristic value, such as similar size, quality, resolution, signal-to-noise ratio, capabilities, etc. In the example shown, level N+1,632 is associated with a larger image size than level N 631. Accordingly, images 611, 612, 613, and 614 in level N+1,632 have a larger image size (e.g., greater height and width, and therefore more samples) than images 615, 616, 617 and 618 in level N 631 in this example. However, such images may be separated between the N+1 632 level and the N 631 level by other characteristics. Although only two levels are shown, level N+1 632 and level N 631, the set of images can be divided into any number of levels based on associated characteristics. Level N+1 632 and level N 631 can also be designated by a level identifier. A layer identifier is a data element that is associated with an image and indicates that the image is part of the specified layer. Accordingly, each image 611-618 may be associated with a corresponding layer identifier to indicate which layer N+1 632 or layer N 631 includes the corresponding image.

[0145] Изображения 611-618 на разных уровнях 631-632 конфигурируются для отображения в альтернативе. По существу, изображения 611-618 на разных уровнях 631-632 могут совместно использовать один и тот же временной идентификатор (ID) и могут быть включены в один и тот же AU. Как здесь используется, AU - это набор из одного или более кодированных изображений, связанных с одним и тем же временем отображения для вывода из DPB. Например, декодер может декодировать и отображать изображение 615 в текущее время отображения, если требуется меньшее изображение, или декодер может декодировать и отображать изображение 611 в текущее время отображения, если требуется большее изображение. По существу, изображения 611-614 на более высоком уровне N+1 632 содержат по существу те же данные изображения, что и соответствующие изображения 615-618 на нижнем уровне N 631 (несмотря на разницу в размере изображения). В частности, изображение 611 содержит по существу те же данные изображения, что и изображение 615, изображение 612 содержит по существу те же данные изображения, что и изображение 616, и т.д.[0145] Images 611-618 at different levels 631-632 are configured to be displayed in the alternative. As such, images 611-618 at different layers 631-632 may share the same temporary identifier (ID) and may be included in the same AU. As used here, an AU is a set of one or more encoded pictures associated with the same display time for output from the DPB. For example, the decoder may decode and display image 615 at the current display time if a smaller image is required, or the decoder may decode and display image 611 at the current display time if a larger image is required. Essentially, the images 611-614 at the higher layer N+1 632 contain substantially the same image data as the corresponding images 615-618 at the lower layer N 631 (despite the difference in image size). Specifically, image 611 contains substantially the same image data as image 615, image 612 contains substantially the same image data as image 616, etc.

[0146] Изображения 611-618 могут быть закодированы посредством ссылки на другие изображения 611-618 на том же уровне N 631 или N+1 632. Кодирование изображения по отношению к другому изображению на том же уровне приводит к межкадровому предсказанию 623, которое является совместимым с однонаправленным межкадровым предсказанием и/или двунаправленным межкадровым предсказанием. Межкадровое предсказание 623 показано стрелками, сплошными линиями. Например, изображение 613 может быть закодировано с использованием межкадрового предсказания 623 с использованием одного или двух изображений 611, 612 и/или 614 на уровне N+1 632 в качестве эталона, где на одно изображение ссылаются для однонаправленного межкадрового предсказания и/или два изображения являются опорными для двунаправленного межкадрового предсказания. Кроме того, изображение 617 может быть закодировано с использованием межкадрового предсказания 623 с использованием одного или двух изображений 615, 616 и/или 618 на уровне N 631 в качестве эталона, где на одно изображение ссылаются для однонаправленного межкадрового предсказания и/или два изображения являются опорными для двунаправленного межкадрового предсказания. Когда изображение используется в качестве эталона для другого изображения на том же уровне при выполнении 623 межкадрового предсказания, изображение может называться опорным изображением. Например, изображение 612 может быть опорным изображением, используемым для кодирования изображения 613 согласно межкадровому предсказанию 623. Межкадровое предсказание 623 также может называться внутриуровневым предсказанием в многоуровневом контексте. Таким образом, межкадровое предсказание 623 представляет собой механизм кодирования выборок текущего изображения посредством ссылки на указанные выборки в опорном изображении, которое отличается от текущего изображения, где опорное изображение и текущее изображение находятся на одном уровне.[0146] Pictures 611-618 may be encoded by reference to other pictures 611-618 at the same layer N 631 or N+1 632. Encoding a picture with respect to another picture at the same layer results in inter-frame prediction 623 that is compatible with unidirectional interframe prediction and/or bidirectional interframe prediction. Inter-frame prediction 623 is shown by arrows, solid lines. For example, picture 613 may be encoded using inter-picture prediction 623 using one or two pictures 611, 612 and/or 614 at the N+1 632 level as a reference, where one picture is referenced for unidirectional inter-picture prediction and/or two pictures are reference for bidirectional interframe prediction. In addition, picture 617 may be encoded using inter-picture prediction 623 using one or two pictures 615, 616 and/or 618 at layer N 631 as a reference, where one picture is referenced for unidirectional inter-picture prediction and/or two pictures are reference for bidirectional interframe prediction. When an image is used as a reference for another image at the same level when performing inter-frame prediction 623, the image may be called a reference image. For example, picture 612 may be a reference picture used to encode picture 613 according to inter-picture prediction 623. Inter-picture prediction 623 may also be referred to as intra-layer prediction in a multi-layer context. Thus, inter-picture prediction 623 is a mechanism for encoding samples of a current picture by reference to said samples in a reference picture that is different from the current picture, where the reference picture and the current picture are at the same level.

[0147] Изображения 611-618 также можно кодировать со ссылкой на другие изображения 611-618 на разных уровнях. Этот процесс известен как межуровневое предсказание 621 и обозначен пунктирными стрелками. Межуровневое предсказание 621 - это механизм кодирования выборок текущего изображения со ссылкой на указанные выборки в опорном изображении, где текущее изображение и опорное изображение находятся на разных уровнях и, следовательно, имеют разные идентификаторы уровня. Например, изображение на нижнем уровне N 631 может использоваться в качестве опорного изображения для кодирования соответствующего изображения на более высоком уровне N+1 632. В качестве конкретного примера изображение 611 может быть закодировано со ссылкой на изображение 615 согласно межуровневому предсказанию 621. В таком случае изображение 615 используется в качестве межуровневого опорного изображения. Межуровневое опорное изображение - это опорное изображение, используемое для межуровневого предсказания 621. В большинстве случаев межуровневое предсказание 621 ограничено таким образом, что текущее изображение, такое как изображение 611, может использовать только межуровневое опорное(-ые) изображение(-я), которые включены в один и тот же AU и находятся на более низком уровне, например изображение 615. Когда доступно множество уровней (например, более двух), межуровневое предсказание 621 может кодировать/декодировать текущее изображение на основе множестве межуровневых опорных изображений на более низких уровнях, чем текущее изображение.[0147] Images 611-618 may also be encoded with reference to other images 611-618 at different levels. This process is known as cross-layer prediction 621 and is indicated by dotted arrows. Inter-layer prediction 621 is a mechanism for encoding samples of the current picture with reference to said samples in a reference picture, where the current picture and the reference picture are at different layers and therefore have different layer identifiers. For example, an image in a lower layer N+1 631 may be used as a reference image to encode a corresponding image in a higher layer N+1 632. As a specific example, an image 611 may be encoded with reference to an image 615 according to inter-layer prediction 621. In such a case, the image 615 is used as an inter-layer reference image. An inter-layer reference picture is a reference picture used for inter-layer prediction 621. In most cases, inter-layer prediction 621 is limited such that the current picture, such as picture 611, can only use the inter-layer reference picture(s) that are included into the same AU and are at a lower layer, such as picture 615. When multiple layers are available (eg, more than two), inter-layer prediction 621 may encode/decode the current picture based on multiple cross-layer reference pictures at lower layers than the current image.

[0148] Видеокодер может использовать предсказание 600 на основе уровней для кодирования изображений 611-618 посредством множества различных комбинаций и/или перестановок межкадрового предсказания 623 и межуровневого предсказания 621. Например, изображение 615 может быть закодировано согласно внутреннему предсказанию. Изображения 616-618 затем могут быть кодированы согласно межкадровому предсказанию 623 с использованием изображения 615 в качестве опорного изображения. Кроме того, изображение 611 может быть закодировано согласно межуровневому предсказанию 621 с использованием изображения 615 в качестве межуровневого опорного изображения. Изображения 612-614 затем могут быть кодированы согласно межкадровому предсказанию 623 с использованием изображения 611 в качестве опорного изображения. По существу, опорное изображение может служить как одноуровневым опорным изображением, так и межуровневым опорным изображением для различных механизмов кодирования. Посредством кодирования N+1 632 изображений более высокого уровня на основе изображений N 631 нижнего уровня, N+1 632 более высокого уровня может избежать использования внутреннего предсказания, которое имеет гораздо более низкую эффективность кодирования, чем межкадровое предсказание 623 и межуровневое предсказание 621. По существу, низкая эффективность кодирования внутреннего предсказания может быть ограничена изображениями наименьшего/самого низкого качества и, следовательно, ограничена кодированием наименьшего объема видеоданных. Изображения, используемые в качестве опорных изображений и/или межуровневых опорных изображений, могут быть указаны в записях списка (-ов) опорных изображений, содержащихся в структуре списка опорных изображений.[0148] The video encoder may use layer-based prediction 600 to encode pictures 611-618 through a variety of different combinations and/or permutations of inter-frame prediction 623 and inter-layer prediction 621. For example, picture 615 may be encoded according to intra prediction. Pictures 616-618 may then be encoded according to inter-frame prediction 623 using picture 615 as a reference picture. In addition, image 611 may be encoded according to inter-layer prediction 621 using image 615 as an inter-layer reference image. Pictures 612-614 may then be encoded according to inter-picture prediction 623 using picture 611 as a reference picture. As such, a reference picture can serve as either a single-layer reference picture or an inter-layer reference picture for various encoding mechanisms. By encoding N+1,632 higher layer pictures based on lower layer N+1,631 pictures, the higher layer N+1,632 can avoid using intra prediction, which has a much lower coding efficiency than inter-picture prediction 623 and inter-layer prediction 621. Essentially ,low efficiency of intra prediction coding may be limited ,to the smallest/lowest quality images and therefore limited to ,encoding the smallest amount of video data. Pictures used as reference pictures and/or inter-layer reference pictures may be specified in reference picture list(s) entries contained in a reference picture list structure.

[0149] Предыдущие семейства кодирования видео H.26x обеспечивали поддержку масштабируемости в профиле (-ях), отличном от профиля (-ей) для одноуровневого кодирования. Масштабируемое кодирование видео (SVC) - это масштабируемое расширение AVC/H.264, которое обеспечивает поддержку пространственной, временной масштабируемости и масштабируемости качества. Для SVC в каждом макроблоке (MB, macroblock) в изображениях EL сигнализируется флаг, чтобы указать, предсказывается ли MB EL с использованием совместно размещенного блока с нижнего уровня. Предсказание из совместно размещенного блока может включать в себя текстуру, векторы движения и/или режимы кодирования. Реализации SVC не могут напрямую повторно использовать немодифицированные реализации H.264/AVC в своих проектах. Синтаксис и процесс декодирования макроблока SVC EL отличается от синтаксиса и процесса декодирования H.264/AVC.[0149] Previous H.26x video encoding families provided scalability support in profile(s) other than the profile(s) for single-layer encoding. Scalable Video Coding (SVC) is a scalable extension to AVC/H.264 that provides support for spatial, temporal, and quality scalability. For the SVC, a flag is signaled in each macroblock (MB) in the EL pictures to indicate whether the EL MB is predicted using a co-located block from the lower layer. The prediction from a co-located block may include texture, motion vectors, and/or encoding modes. SVC implementations cannot directly reuse unmodified H.264/AVC implementations in their projects. The syntax and decoding process for an SVC EL macroblock is different from the syntax and decoding process for H.264/AVC.

[0150] Масштабируемый HEVC (SHVC) - это расширение стандарта HEVC/H.265, которое обеспечивает поддержку пространственной масштабируемости и качества, многоракурсный HEVC (MV-HEVC) - это расширение HEVC/H.265, которое обеспечивает поддержку многовидового масштабирования, а 3D HEVC (3D-HEVC) - это расширение HEVC/H.264, которое обеспечивает поддержку трехмерного (3D) кодирования видео, которое является более продвинутым и более эффективным, чем MV-HEVC. Обратите внимание, что временная масштабируемость включена как неотъемлемая часть одноуровневый кодека HEVC. В конструкции многоуровневого расширения HEVC используется идея, согласно которой декодированные изображения, используемые для межуровневого предсказания, поступают только из одного и того же блока доступа (AU, access unit) и обрабатываются как долгосрочные опорные изображения (LTRP, long-term reference picture), и им назначаются опорные индексы в списке (-ах) опорных изображений вместе с другими временными опорными изображениями в текущем уровне. Межуровневое предсказание (ILP) достигается на уровне блока предсказания (PU, prediction unit) путем установки значения опорного индекса для ссылки на межуровневое опорное изображение(-я) в списке(-ах) опорных изображений.[0150] Scalable HEVC (SHVC) is an extension of the HEVC/H.265 standard that provides support for spatial scalability and quality, multi-view HEVC (MV-HEVC) is an extension of HEVC/H.265 that provides support for multi-view scaling, and 3D HEVC (3D-HEVC) is an extension of HEVC/H.264 that provides support for three-dimensional (3D) video encoding, which is more advanced and more efficient than MV-HEVC. Note that temporal scalability is included as an integral part of the single-layer HEVC codec. The HEVC multi-layer extension design uses the idea that the decoded pictures used for inter-layer prediction come only from the same access unit (AU) and are treated as long-term reference pictures (LTRP), and they are assigned reference indices in the reference picture list(s) along with other temporary reference pictures in the current layer. Inter-layer prediction (ILP) is achieved at the prediction unit (PU) level by setting a reference index value to reference the inter-layer reference picture(s) in the reference picture list(s).

[0151] Примечательно, что функции передискретизации опорного изображения и пространственной масштабируемости требуют передискретизации опорного изображения или его части. Передискретизация опорного изображения может быть реализована либо на уровне изображения, либо на уровне блока кодирования. Однако, когда RPR упоминается как функция кодирования, это функция для одноуровневого кодирования. Даже в этом случае возможно или даже предпочтительно с точки зрения разработки кодека использовать один и тот же фильтр передискретизации как для функции RPR одноуровневого кодирования, так и для функции пространственной масштабируемости для многоуровневого кодирования. [0151] Notably, the functions of reference image resampling and spatial scalability require resampling of a reference image or a portion thereof. Resampling of the reference image can be implemented either at the image level or at the encoding block level. However, when RPR is referred to as a coding function, it is a function for single-level coding. Even so, it is possible or even preferable from a codec design point of view to use the same oversampling filter for both the single-level RPR function and the multi-level spatial scalability function.

[0152] Фиг. 7 - схематическая диаграмма, иллюстрирующая пример однонаправленного межкадрового предсказания 700. Однонаправленное межкадровое предсказание может использоваться для определения векторов движения для кодированных и/или декодированных блоков, созданных при разделении изображения.[0152] FIG. 7 is a schematic diagram illustrating an example of unidirectional inter-frame prediction 700. Uni-directional inter-frame prediction may be used to determine motion vectors for coded and/or decoded blocks created by dividing an image.

[0153] Однонаправленное межкадровое предсказание 700 использует опорный кадр 730 с опорным блоком 731 для предсказания текущего блока 711 в текущем кадре 710. Опорный кадр 730 может быть размещен во времени после текущего кадра 710, как показано (например, как последующий опорный кадр), но также может быть временно расположен перед текущим кадром 710 (например, как предыдущий опорный кадр) в некоторых примерах. Текущий кадр 710 является примером кадра/изображения, кодируемого/декодируемого в конкретное время. Текущий кадр 710 содержит объект в текущем блоке 711, который соответствует объекту в опорном блоке 731 опорного кадра 730. Опорный кадр 730 - это кадр, который используется в качестве опорного для кодирования текущего кадра 710, а опорный блок 731 - это блок в опорном кадре 730, который содержит объект, также содержащийся в текущем блоке 711 текущего кадра 710.[0153] Unidirectional inter-frame prediction 700 uses a reference frame 730 with a reference block 731 to predict the current block 711 in the current frame 710. The reference frame 730 may be placed in time after the current frame 710 as shown (eg, as a subsequent reference frame), but may also be temporarily located before the current frame 710 (eg, as a previous reference frame) in some examples. The current frame 710 is an example of a frame/image being encoded/decoded at a particular time. Current frame 710 contains an object in current block 711 that corresponds to an object in reference block 731 of reference frame 730. Reference frame 730 is a frame that is used as a reference for encoding the current frame 710, and reference block 731 is a block in reference frame 730 , which contains an object also contained in the current block 711 of the current frame 710.

[0154] Текущий блок 711 - это любая единица кодирования, которая кодируется/декодируется в определенной точке процесса кодирования. Текущий блок 711 может быть целым разделенным блоком или может быть субблоком при использовании режима аффинного межкадрового предсказания. Текущий кадр 710 отделен от опорного кадра 730 некоторым временным расстоянием (TD, temporal distance) 733. TD 733 указывает количество времени между текущим кадром 710 и опорным кадром 730 в видеопоследовательности и может измеряться в единицах кадров. Информация предсказания для текущего блока 711 может ссылаться на опорный кадр 730 и/или опорный блок 731 посредством опорного индекса, указывающего направление и временное расстояние между кадрами. В течение периода времени, представленного TD 733, объект в текущем блоке 711 перемещается из позиции в текущем кадре 710 в другую позицию в опорном кадре 730 (например, в позицию опорного блока 731). Например, объект может двигаться по траектории 713 движения, которая является направлением движения объекта во времени. Вектор 735 движения описывает направление и величину движения объекта по траектории 713 движения над TD 733. Соответственно, кодированный вектор 735 движения, опорный блок 731 и остаток, включающий разницу между текущим блоком 711 и опорным блоком 731, обеспечивают информацию, достаточную для восстановления текущего блока 711 и размещения текущего блока 711 в текущем кадре 710.[0154] Current block 711 is any encoding unit that is encoded/decoded at a specific point in the encoding process. The current block 711 may be an entire divided block or may be a subblock when using the affine inter-prediction mode. The current frame 710 is separated from the reference frame 730 by a temporal distance (TD) 733. TD 733 indicates the amount of time between the current frame 710 and the reference frame 730 in the video sequence and can be measured in units of frames. The prediction information for the current block 711 may reference the reference frame 730 and/or the reference block 731 by means of a reference index indicating the direction and temporal distance between frames. During the period of time represented by TD 733, an object in the current block 711 moves from a position in the current frame 710 to another position in the reference frame 730 (eg, the position of the reference block 731). For example, an object may move along a motion path 713, which is the direction in which the object moves over time. Motion vector 735 describes the direction and magnitude of motion of an object along motion path 713 over TD 733. Accordingly, encoded motion vector 735, reference block 731, and a remainder including the difference between current block 711 and reference block 731 provide information sufficient to reconstruct current block 711 and placing the current block 711 in the current frame 710.

[0155] Фиг. 8 - схематическая диаграмма, иллюстрирующая пример двунаправленного межкадрового предсказания 800. Двунаправленное межкадровое предсказание может использоваться для определения векторов движения для кодированных и/или декодированных блоков, созданных при разделении изображения.[0155] FIG. 8 is a schematic diagram illustrating an example of bidirectional inter-prediction 800. Bi-directional inter-prediction may be used to determine motion vectors for coded and/or decoded blocks created by dividing an image.

[0156] Двунаправленное межкадровое предсказание 800 аналогично однонаправленному межкадровому предсказанию 700, но использует пару опорных кадров для предсказания текущего блока 811 в текущем кадре 810. Следовательно, текущий кадр 810 и текущий блок 811 по существу аналогичны текущему кадру 710 и текущему блоку 711 соответственно. Текущий кадр 810 позиционируется во времени между предыдущим опорным кадром 820, который возникает перед текущим кадром 810 в видеопоследовательности, и последующим опорным кадром 830, который происходит после текущего кадра 810 в видеопоследовательности. Предыдущий опорный кадр 820 и последующий опорный кадр 830 в остальном по существу аналогичны опорному кадру 730.[0156] Bidirectional interframe prediction 800 is similar to unidirectional interframe prediction 700, but uses a pair of reference frames to predict the current block 811 in the current frame 810. Therefore, the current frame 810 and the current block 811 are essentially the same as the current frame 710 and the current block 711, respectively. The current frame 810 is positioned in time between a previous reference frame 820 that occurs before the current frame 810 in the video sequence and a subsequent reference frame 830 that occurs after the current frame 810 in the video sequence. The previous reference frame 820 and the subsequent reference frame 830 are otherwise substantially the same as the reference frame 730.

[0157] Текущий блок 811 соответствует предыдущему опорному блоку 821 в предыдущем опорном кадре 820 и последующему опорному блоку 831 в последующем опорном кадре 830. Такое совпадение указывает, что в ходе видеопоследовательности объект перемещается из позиции в предыдущем опорном блоке 821 в позицию в последующем опорном блоке 831 по траектории 813 движения и через текущий блок 811. Текущий кадр 810 отделен от предыдущего опорного кадра 820 некоторым предыдущим временным расстоянием (TD0) 823 и отделен от последующего опорного кадра 830 некоторым последующим временным расстоянием (TD1) 833. TD0 823 указывает количество времени между предыдущим опорным кадром 820 и текущим кадром 810 в видеопоследовательности в единицах кадров. TD1 833 указывает количество времени между текущим кадром 810 и последующим опорным кадром 830 в видеопоследовательности в единицах кадра. Следовательно, объект перемещается от предыдущего опорного блока 821 к текущему блоку 811 по траектории 813 движения в течение периода времени, указанного TD0 823. Объект также перемещается от текущего блока 811 к последующему опорному блоку 831 по траектории 813 движения в течение периода времени, указанного TD1 833. Информация предсказания для текущего блока 811 может ссылаться на предыдущий опорный кадр 820 и/или предшествующий опорный блок 821 и последующий опорный кадр 830 и/или последующий опорный блок 831 посредством пары опорных индексов, указывающих направление и временное расстояние между кадрами.[0157] The current block 811 corresponds to the previous reference block 821 in the previous reference frame 820 and the subsequent reference block 831 in the subsequent reference frame 830. Such a match indicates that during the video sequence the object moves from a position in the previous reference block 821 to a position in the subsequent reference block 831 along the motion path 813 and through the current block 811. The current frame 810 is separated from the previous reference frame 820 by some previous time distance (TD0) 823 and is separated from the subsequent reference frame 830 by some subsequent time distance (TD1) 833. TD0 823 indicates the amount of time between the previous reference frame 820 and the current frame 810 in the video sequence in frame units. TD1 833 indicates the amount of time between the current frame 810 and the subsequent reference frame 830 in the video sequence in frame units. Therefore, the object moves from the previous reference block 821 to the current block 811 along the motion path 813 during the period of time indicated by TD0 823. The object also moves from the current block 811 to the subsequent reference block 831 along the motion path 813 during the time period indicated by TD1 833 The prediction information for the current block 811 may reference a previous reference frame 820 and/or a previous reference block 821 and a subsequent reference frame 830 and/or a subsequent reference block 831 by a pair of reference indices indicating the direction and temporal distance between frames.

[0158] Предыдущий вектор движения (MV0) 825 описывает направление и величину движения объекта по траектории 813 движения по TD0 823 (например, между предыдущим опорным кадром 820 и текущим кадром 810). Последующий вектор движения (MV1) 835 описывает направление и величину движения объекта по траектории 813 движения по TD1 833 (например, между текущим кадром 810 и последующим опорным кадром 830). По существу, при двунаправленном межкадровом предсказании 800 текущий блок 811 может быть закодирован и восстановлен с использованием предыдущего опорного блока 821 и/или последующего опорного блока 831, MV0 825 и MV1 835.[0158] Previous motion vector (MV0) 825 describes the direction and amount of movement of an object along a motion path 813 along TD0 823 (eg, between the previous reference frame 820 and the current frame 810). The subsequent motion vector (MV1) 835 describes the direction and amount of movement of an object along a motion path 813 along TD1 833 (eg, between the current frame 810 and the subsequent reference frame 830). As such, in bidirectional interframe prediction 800, the current block 811 can be encoded and reconstructed using the previous reference block 821 and/or the subsequent reference block 831, MV0 825 and MV1 835.

[0159] В варианте осуществления межкадровое предсказание и/или двунаправленное межкадровое предсказание может выполняться на основе выборки за выборкой (например, пиксель за пикселем), а не на поблочной основе. То есть вектор движения, указывающий на каждую выборку в предыдущем опорном блоке 821 и/или последующем опорном блоке 831, может быть определен для каждой выборки в текущем блоке 811. В таких вариантах осуществления вектор 825 движения и вектор 835 движения, показанные на фиг. 8 представляют множество векторов движения, соответствующих множеству выборок в текущем блоке 811, предыдущем опорном блоке 821 и последующем опорном блоке 831.[0159] In an embodiment, inter-frame prediction and/or bi-directional inter-frame prediction may be performed on a sample-by-sample basis (eg, pixel by pixel) rather than on a block-by-block basis. That is, a motion vector pointing to each sample in the previous reference block 821 and/or the subsequent reference block 831 may be determined for each sample in the current block 811. In such embodiments, motion vector 825 and motion vector 835 shown in FIG. 8 represent a plurality of motion vectors corresponding to a plurality of samples in the current block 811, the previous reference block 821, and the subsequent reference block 831.

[0160] Как в режиме слияния, так и в режиме расширенного предсказания вектора движения (AMVP, advanced motion vector prediction) список кандидатов формируется путем добавления векторов движения кандидатов в список кандидатов в порядке, определенном шаблоном определения списка кандидатов. Такие векторы движения-кандидаты могут включать в себя векторы движения согласно однонаправленному межкадровому предсказанию 700, двунаправленному межкадровому предсказанию 800 или их комбинациям. В частности, векторы движения формируются для соседних блоков, когда такие блоки кодируются. Такие векторы движения добавляются в список кандидатов для текущего блока, и вектор движения для текущего блока выбирается из списка кандидатов. Затем вектор движения может быть передан как индекс выбранного вектора движения в списке кандидатов. Декодер может создать список кандидатов, используя тот же процесс, что и кодер, и может определить выбранный вектор движения из списка кандидатов на основе переданного индекса. Следовательно, векторы движения-кандидаты включают в себя векторы движения, сформированные согласно однонаправленному межкадровому предсказанию 700 и/или двунаправленному межкадровому предсказанию 800, в зависимости от того, какой подход используется при кодировании таких соседних блоков.[0160] In both fusion mode and advanced motion vector prediction (AMVP) mode, the candidate list is generated by adding candidate motion vectors to the candidate list in the order specified by the candidate list definition template. Such candidate motion vectors may include motion vectors according to unidirectional inter-prediction 700, bi-directional inter-prediction 800, or combinations thereof. In particular, motion vectors are generated for adjacent blocks when such blocks are encoded. Such motion vectors are added to the candidate list for the current block, and the motion vector for the current block is selected from the candidate list. The motion vector can then be passed as the index of the selected motion vector in the candidate list. The decoder can create a candidate list using the same process as the encoder and can determine the selected motion vector from the candidate list based on the passed index. Therefore, the candidate motion vectors include motion vectors generated according to unidirectional inter-prediction 700 and/or bi-directional inter-prediction 800, depending on which approach is used in encoding such adjacent blocks.

[00161] Фиг. 9 иллюстрирует битовый поток 900 видео. В данном контексте битовый поток 900 видео также может называться кодированным битовым потоком видео, битовым потоком или. Как показано на фиг. 9, битовый поток 900 содержит набор 902 параметров последовательности (SPS, sequence parameter set), набор 904 параметров изображения (PPS, picture parameter set), заголовок 906 слайса и данные 908 изображения.[00161] FIG. 9 illustrates a video bitstream 900. In this context, video bitstream 900 may also be referred to as encoded video bitstream, bitstream, or. As shown in FIG. 9, bitstream 900 contains a sequence parameter set 902, a picture parameter set 904, a slice header 906, and picture data 908.

[00162] SPS 902 содержит данные, общие для всех изображений в последовательности изображений (SOP, sequence of pictures). Напротив, PPS 904 содержит данные, общие для всего изображения. Заголовок 906 слайса содержит информацию о текущем слайсе, такую как, например, тип слайса, какое из опорных изображений будет использоваться, и так далее. SPS 902 и PPS 904 в общем могут называться набором параметров. SPS 902, PPS 904 и заголовок 906 слайса являются типами блоков уровня абстракции сети (NAL, Network Abstraction Layer). Блок NAL - это синтаксическая структура, содержащая указание типа данных, которым следует следовать (например, кодированные видеоданные). Блоки NAL подразделяются на блоки уровня кодирования видео (VCL) и блоки NAL, не относящиеся к VCL. Блоки VCL NAL содержат данные, которые представляют значения выборок в видеоизображениях, а блоки NAL, не относящиеся к VCL, содержат любую связанную дополнительную информацию, такую как наборы параметров (важные данные заголовка, которые могут применяться к большому количеству блоков NAL VCL) и дополнительная улучшающая информация (информация о синхронизации и другие дополнительные данные, которые могут повысить удобство использования декодированного видеосигнала, но не являются необходимыми для декодирования значений выборок в видеоизображениях). Специалисты в данной области техники поймут, что битовый поток 900 может содержать другие параметры и информацию в практических приложениях.[00162] SPS 902 contains data common to all pictures in a sequence of pictures (SOP, sequence of pictures). In contrast, PPS 904 contains data common to the entire image. The slice header 906 contains information about the current slice, such as, for example, the slice type, which reference image will be used, and so on. SPS 902 and PPS 904 can generally be called a parameter set. SPS 902, PPS 904 and slice header 906 are network abstraction layer (NAL) block types. A NAL block is a syntactic structure containing an indication of the type of data to be followed (for example, encoded video data). NAL blocks are divided into video coding layer (VCL) blocks and non-VCL NAL blocks. VCL NAL blocks contain data that represents sample values in video images, and non-VCL NAL blocks contain any associated additional information such as parameter sets (important header data that can apply to a large number of VCL NAL blocks) and additional enhancement information (timing information and other additional data that may enhance the usability of the decoded video signal, but is not necessary for decoding sample values in video images). Those skilled in the art will appreciate that bitstream 900 may contain other parameters and information in practical applications.

[00163] Данные 908 изображения по фиг. 9 содержат данные, связанные с изображениями или видео, которые кодируются или декодируются. Данные 908 изображения могут называться просто полезной нагрузкой или данными, переносимыми в битовом потоке 900. В варианте осуществления данные 908 изображения содержат CVS 914 (или CLVS), содержащие множество изображений 910. CVS 914 представляет собой кодированную видеопоследовательность для каждой видеопоследовательности кодированного уровня (CLVS, coded layer video sequence) в битовом потоке 900 видео. Примечательно, что CVS и CLVS одинаковы, когда битовый поток видео включает в себя один уровень. CVS и CLVS отличаются только тогда, когда битовый поток 900 видео включает в себя множество уровней.[00163] Image data 908 of FIG. 9 contain data associated with images or videos that are encoded or decoded. The image data 908 may be referred to simply as the payload or data carried in the bitstream 900. In an embodiment, the image data 908 comprises a CVS 914 (or CLVS) containing a plurality of images 910. The CVS 914 is a coded video sequence for each coded layer video sequence (CLVS, coded layer video sequence) in the 900 video bitstream. Notably, CVS and CLVS are the same when the video bitstream includes a single layer. CVS and CLVS differ only when the video bitstream 900 includes multiple layers.

[00164] Как показано на фиг. 9, слайс каждого изображения 910 может содержаться в его собственном блоке 912VCL NAL. Набор блоков 912 VCL NAL в CVS 914 может называться блоком доступа.[00164] As shown in FIG. 9, a slice of each image 910 may be contained in its own NAL block 912VCL. A set of VCL NAL blocks 912 in CVS 914 may be referred to as an access block.

[00165] Фиг. 10 иллюстрирует метод 1000 разделения для изображения 1010. Изображение 1010 может быть аналогично любому из изображений 910 на фиг. 9. Как показано, изображение 1010 может быть разделено на множество слайсов 1012. Слайс - это пространственно отличная область кадра (например, изображения), которая кодируется отдельно от любой другой области в том же кадре. Хотя на фиг. 10 изображены три слайса 1012, в практических приложениях можно использовать больше или меньше слайсов. Каждый слайс 1012 может быть разделен на множество блоков 1014. Блоки 1014 на фиг. 10 могут быть аналогичным текущему блоку 811, предыдущему опорному блоку 821 и последующему опорному блоку 831 на фиг. 8. Блок 1014 может представлять CU. Хотя четыре блока 1014 изображены на фиг. 10, в практических приложениях можно использовать больше или меньше блоков.[00165] FIG. 10 illustrates a division method 1000 for image 1010. Image 1010 may be similar to any of the images 910 in FIG. 9. As shown, an image 1010 may be divided into a plurality of slices 1012. A slice is a spatially distinct region of a frame (eg, an image) that is encoded separately from any other region in the same frame. Although in FIG. 10 shows three slices 1012, in practical applications more or fewer slices may be used. Each slice 1012 may be divided into a plurality of blocks 1014. Blocks 1014 in FIG. 10 may be similar to current block 811, previous reference block 821, and subsequent reference block 831 in FIG. 8. Block 1014 may represent a CU. Although four blocks 1014 are shown in FIG. 10, in practical applications, more or fewer blocks can be used.

[00166] Каждый блок 1014 может быть разделен на множество выборок 1016 (например, пикселей). В варианте осуществления размер каждого блока 1014 измеряется в выборках яркости. Хотя шестнадцать выборок 1016 изображены на фиг. 10, в практических приложениях можно использовать больше или меньше выборок.[00166] Each block 1014 may be divided into a plurality of samples 1016 (eg, pixels). In an embodiment, the size of each block 1014 is measured in luminance samples. Although sixteen samples 1016 are depicted in FIG. 10, more or fewer samples can be used in practical applications.

[00167] В варианте осуществления к изображению 1010 применяется окно 1060 соответствия. Как отмечено выше, окно 1060 соответствия используется для обрезки, уменьшения или иного изменения размера изображения 1010 (например, восстановленного/декодированного изображения) в процессе подготовки изображения к выводу. Например, декодер может применить окно соответствия 1060 к изображению 1010, чтобы обрезать, корректировать, сжимать или иным образом изменять размер изображения 1010 изображения до того, как изображение будет выведено для отображения пользователю. Размер окна соответствия 1060 определяется путем применения смещения 1062 вверх окна соответствия, смещения 1064 вниз окна соответствия, смещения 1066 влево окна соответствия и смещения 1068 вправо окна соответствия к изображению 1010 для уменьшения размера изображения 1010 перед выводом. То есть выводится только часть изображения 1010, которая существует в окне 1060 соответствия. Таким образом, изображение 1010 обрезается по размеру перед выводом. В варианте осуществления, каждый первый набор параметров изображения и второй набор параметров изображения относятся к одному и тому же набору параметров последовательности и имеют одинаковые значения ширины изображения и высоты изображения. По существу, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения для окна соответствия.[00167] In an embodiment, a match window 1060 is applied to the image 1010. As noted above, the correspondence window 1060 is used to crop, reduce, or otherwise resize the image 1010 (eg, the reconstructed/decoded image) in the process of preparing the image for output. For example, the decoder may apply a match window 1060 to the image 1010 to crop, adjust, compress, or otherwise resize the image image 1010 before the image is output for display to the user. The size of the match window 1060 is determined by applying a match window up offset 1062, a match window down offset 1064, a match window left offset 1066, and a match window right offset 1068 to the image 1010 to reduce the size of the image 1010 before output. That is, only the portion of the image 1010 that exists in the matching window 1060 is output. Thus, the image 1010 is cropped to size before output. In an embodiment, each first image parameter set and second image parameter set belong to the same sequence parameter set and have the same image width and image height values. Essentially, the first set of image parameters and the second set of image parameters have the same values for the matching window.

[00168] Фиг. 11 - вариант осуществления способа 1100 декодирования, реализованного видеодекодером (например, видеодекодером 400). Способ 1100 может выполняться после того, как декодированный битовый поток был прямо или косвенно принят от видеокодера (например, видеокодера 300). Способ 1100 улучшает процесс декодирования, поддерживая одинаковый размер окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения. Таким образом, передискретизация опорного изображения (RPR, reference picture resampling) может оставаться включенной или включенной для всей CVS. Путем поддержания согласованного размера окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения, эффективность кодирования может быть повышена. Следовательно, с практической точки зрения производительность кодека улучшается, что приводит к лучшему взаимодействию с пользователем.[00168] FIG. 11 illustrates an embodiment of a decoding method 1100 implemented by a video decoder (eg, video decoder 400). Method 1100 may be performed after the decoded bitstream has been directly or indirectly received from a video encoder (eg, video encoder 300). Method 1100 improves the decoding process by maintaining the same match window size for image parameter sets having the same image size. Thus, reference picture resampling (RPR) can remain enabled or enabled for the entire CVS. By maintaining a consistent matching window size for sets of image parameters having the same image size, coding efficiency can be improved. Therefore, from a practical point of view, the codec's performance is improved, resulting in a better user experience.

[00169] В блоке 1102 видеодекодер принимает первый набор параметров изображения (например, ppsA) и второй набор параметров изображения (например, ppsB), каждый из которых относится к одному и тому же набору параметров последовательности. Когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия. В варианте осуществления ширина изображения и высота изображения измеряются в выборках яркости.[00169] At block 1102, the video decoder receives a first set of picture parameters (eg, ppsA) and a second set of picture parameters (eg, ppsB), each of which refers to the same set of sequence parameters. When the first set of image parameters and the second set of image parameters have the same image width and height values, the first set of image parameters and the second set of image parameters have the same match window values. In an embodiment, the image width and image height are measured in luminance samples.

[00170] В варианте осуществления ширина изображения обозначается как pic_width_in_luma_samples. В варианте осуществления высота изображения обозначается как pic_height_in_luma_samples. В варианте осуществления pic_width_in_luma_samples определяет ширину каждого декодированного изображения, относящегося к PPS, в единицах выборок яркости. В варианте осуществления pic_height_in_luma_samples определяет высоту каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости.[00170] In an embodiment, the width of the image is denoted as pic_width_in_luma_samples. In an embodiment, the height of the image is denoted as pic_height_in_luma_samples. In an embodiment, pic_width_in_luma_samples specifies the width of each decoded PPS image in units of luma samples. In an embodiment, pic_height_in_luma_samples specifies the height of each decoded image with reference to PPS in units of luma samples.

[00171] В варианте осуществления окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия, которые в совокупности представляют размер окна соответствия. В варианте осуществления смещение влево окна соответствия обозначается как pps_conf_win_left_offset. В варианте осуществления смещение вправо окна соответствия обозначается как pps_conf_win_right_offset. В варианте осуществления смещение вверх окна соответствия обозначается как pps_conf_win_top_offset. В варианте осуществления смещение вниз окна соответствия обозначается как pps_conf_win_bottom_offset. В варианте осуществления размер или значения окна соответствия сообщаются в PPS.[00171] In an embodiment, the match window comprises a match window left offset, a match window right offset, a match window offset up, and a match window offset down, which together represent the size of the match window. In an embodiment, the left offset of the matching window is denoted as pps_conf_win_left_offset. In an embodiment, the right offset of the matching window is denoted as pps_conf_win_right_offset. In an embodiment, the top offset of the matching window is denoted as pps_conf_win_top_offset. In an embodiment, the downward offset of the matching window is denoted as pps_conf_win_bottom_offset. In an embodiment, the size or values of the matching window are reported in the PPS.

[00172] В блоке 1104 видеодекодер применяет окно соответствия к текущему изображению, соответствующему первому набору параметров изображения или второму набору параметров изображения. Таким образом, видеокодер обрезает текущее изображение до размера окна соответствия.[00172] At block 1104, the video decoder applies a match window to the current image corresponding to the first set of image parameters or the second set of image parameters. Thus, the video encoder crops the current image to the size of the matching window.

[00173] В варианте осуществления способ дополнительно содержит использование межкадрового предсказания для декодирования текущего изображения на основе передискретизированного опорного изображения. В варианте осуществления способ дополнительно содержит передискретизацию опорного изображения, соответствующего текущему изображению, с использованием передискретизации опорного изображения (RPS, reference picture resampling). В варианте осуществления передискретизация опорного изображения изменяет разрешение опорного изображения.[00173] In an embodiment, the method further comprises using inter-frame prediction to decode the current picture based on the resampled reference picture. In an embodiment, the method further comprises resampling a reference picture corresponding to the current picture using reference picture resampling (RPS). In an embodiment, resampling the reference image changes the resolution of the reference image.

[00174] В варианте осуществления способ дополнительно содержит определение, включен ли двунаправленный оптический поток (BDOF, bi-direction optical flow) для декодирования изображения на основе ширины изображения, высоты изображения и окна соответствия текущего изображения и опорного изображения для текущего изображения. В варианте осуществления способ дополнительно содержит определение, разрешено ли уточнение вектора движения на стороне декодера (DMVR, decoder-side motion vector refinement) для декодирования изображения на основе ширины изображения, высоты изображения и окна соответствия текущего изображения и опорного изображения для текущего изображения.[00174] In an embodiment, the method further comprises determining whether bi-direction optical flow (BDOF) is enabled for decoding the image based on an image width, an image height, and a matching window between the current image and a reference image for the current image. In an embodiment, the method further comprises determining whether decoder-side motion vector refinement (DMVR) is enabled for decoding a picture based on a picture width, a picture height, and a matching window between the current picture and a reference picture for the current picture.

[00175] В варианте осуществления способ дополнительно содержит отображение на дисплее электронного устройства (например, смартфона, планшета, ноутбука, персонального компьютера и т.д.) Изображения, созданного с использованием текущего блока.[00175] In an embodiment, the method further comprises displaying on the display of an electronic device (eg, a smartphone, tablet, laptop, personal computer, etc.) an image created using the current block.

[00176] Фиг. 12 - вариант осуществления способа 1200 кодирования битового потока видео, реализованного видеокодером (например, видеокодером 300). Способ 1200 может выполняться, когда изображение (например, из видео) должно быть закодировано в битовый поток видео и затем передано в видеодекодер (например, видеодекодер 400). Способ 1200 улучшает процесс кодирования, поддерживая одинаковый размер окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения. Таким образом, передискретизация опорного изображения (RPR, reference picture resampling) может оставаться включенной или активированной для всей CVS. Путем поддержания согласованного размера окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения, эффективность кодирования может быть повышена. Следовательно, с практической точки зрения производительность кодека улучшается, что приводит к лучшему взаимодействию с пользователем.[00176] FIG. 12 illustrates an embodiment of a method 1200 for encoding a video bitstream implemented by a video encoder (eg, video encoder 300). Method 1200 may be performed when an image (eg, from a video) is to be encoded into a video bitstream and then transmitted to a video decoder (eg, video decoder 400). Method 1200 improves the encoding process by maintaining the same match window size for image parameter sets having the same image size. Thus, reference picture resampling (RPR) can remain enabled or enabled for the entire CVS. By maintaining a consistent matching window size for sets of image parameters having the same image size, coding efficiency can be improved. Therefore, from a practical point of view, the codec's performance is improved, resulting in a better user experience.

[00177] На этапе 1202 видеокодер формирует первый набор параметров изображения и второй набор параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности. Когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия. В варианте осуществления ширина изображения и высота изображения измеряются в выборках яркости.[00177] At step 1202, the video encoder generates a first set of image parameters and a second set of image parameters, each of which relates to the same set of sequence parameters. When the first set of image parameters and the second set of image parameters have the same image width and height values, the first set of image parameters and the second set of image parameters have the same match window values. In an embodiment, the image width and image height are measured in luminance samples.

[00178] В варианте осуществления ширина изображения обозначается как pic_width_in_luma_samples. В варианте осуществления высота изображения обозначается как pic_height_in_luma_samples. В варианте осуществления pic_width_in_luma_samples определяет ширину каждого декодированного изображения, относящегося к PPS, в единицах выборок яркости. В варианте осуществления pic_height_in_luma_samples определеляет высоту каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости.[00178] In an embodiment, the width of the image is denoted as pic_width_in_luma_samples. In an embodiment, the height of the image is denoted by pic_height_in_luma_samples. In an embodiment, pic_width_in_luma_samples specifies the width of each decoded PPS image in units of luma samples. In an embodiment, pic_height_in_luma_samples specifies the height of each decoded image with reference to PPS in units of luma samples.

[00179] В варианте осуществления окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия, которые в совокупности представляют размер окна соответствия. В варианте осуществления смещение влево окна соответствия обозначается как pps_conf_win_left_offset. В варианте осуществления смещение вправо окна соответствия обозначается как pps_conf_win_right_offset. В варианте осуществления смещение вверх окна соответствия обозначается как pps_conf_win_top_offset. В варианте осуществления смещение вниз окна соответствия обозначается как pps_conf_win_bottom_offset. В варианте осуществления размер или значения окна соответствия сообщаются в PPS.[00179] In an embodiment, the match window comprises a match window left offset, a match window right offset, a match window offset up, and a match window offset down, which together represent the size of the match window. In an embodiment, the left offset of the matching window is denoted as pps_conf_win_left_offset. In an embodiment, the right offset of the matching window is denoted as pps_conf_win_right_offset. In an embodiment, the top offset of the matching window is denoted as pps_conf_win_top_offset. In an embodiment, the downward offset of the matching window is denoted as pps_conf_win_bottom_offset. In an embodiment, the size or values of the matching window are reported in the PPS.

[00180] На этапе 1204 видеокодер кодирует первый набор параметров изображения и второй набор параметров изображения в битовый поток видео. На этапе 1206 видеокодер сохраняет битовый поток видео для передачи в видеодекодер. В варианте осуществления видеокодер передает битовый поток видео, содержащий первый набор параметров изображения и второй набор параметров изображения, в видеодекодер.[00180] At step 1204, the video encoder encodes the first set of image parameters and the second set of image parameters into a video bitstream. At step 1206, the video encoder stores the video bitstream for transmission to the video decoder. In an embodiment, the video encoder transmits a video bitstream containing a first set of image parameters and a second set of image parameters to the video decoder.

[00181] В варианте осуществления обеспечивается способ кодирования битового потока видео. Битовый поток содержит множество наборов параметров и множество изображений. Каждое изображение из множества изображений содержит множество слайсов. Каждый слайс из множества слайсов содержит множество блоков кодирования. Способ содержит формирование и запись набора параметров parameterSetA в битовый поток, содержащий информацию, которая включает в себя размер изображения picSizeA и окно соответствия confWinA. Параметр может быть набором параметров изображения (PPS, picture parameter set). Способ дополнительно включает в себя создание и запись другого набора параметров parameterSetB в битовый поток, содержащий информацию, которая включает в себя размер изображения picSizeB и окно соответствия confWinB. Параметр может быть набором параметров изображения (PPS, picture parameter set). Способ дополнительно включает в себя ограничение значений для окна соответствия confWinA в parameterSetA и confWinB в parameterSetB, чтобы они были одинаковыми, когда значения picSizeA в parameterSetA и picSizeB в parameterSetB одинаковы, и ограничение значений размера изображения picSizeA в parameterSetA и picSizeB в parameterSetB быть одинаковым, если значения confWinA в parameterSetA и confWinB в parameterSetB совпадают. Способ дополнительно включает в себя кодирование битового потока.[00181] In an embodiment, a method for encoding a video bitstream is provided. The bitstream contains many sets of parameters and many images. Each image of a plurality of images contains a plurality of slices. Each slice of the plurality of slices contains a plurality of encoding blocks. The method comprises generating and writing a set of parameters parameterSetA into a bit stream containing information that includes the image size picSizeA and the matching window confWinA. The parameter can be a set of picture parameters (PPS, picture parameter set). The method further includes creating and writing another parameter set parameterSetB to a bitstream containing information that includes an image size picSizeB and a match window confWinB. The parameter can be a set of picture parameters (PPS, picture parameter set). The method further includes constraining the values for the match window confWinA in parameterSetA and confWinB in parameterSetB to be the same when the values of picSizeA in parameterSetA and picSizeB in parameterSetB are the same, and constraining the image size values picSizeA in parameterSetA and picSizeB in parameterSetB to be the same if the values of confWinA in parameterSetA and confWinB in parameterSetB are the same. The method further includes encoding the bit stream.

[00182] В варианте осуществления обеспечивается способ декодирования битового потока видео. Битовый поток содержит множество наборов параметров и множество изображений. Каждое изображение из множества изображений содержит множество слайсов. Каждый слайс из множества слайсов содержит множество блоков кодирования. Способ содержит синтаксический анализ набора параметров для получения размера изображения и размера окна соответствия, связанного с текущим изображением currPic. Полученная информация используется для определения размера изображения и размера кадрирования текущего изображения. Способ дополнительно включает в себя синтаксический анализ другого набора параметров для получения размера изображения и размера окна соответствия, связанных с опорным изображением refPic. Полученная информация используется для определения размера изображения и размера кадрирования опорного изображения. Способ дополнительно включает в себя определение refPic в качестве опорного изображения для декодирования текущего блока curBlock, который находится в текущем изображении currPic, определение того, используется ли двунаправленный оптический поток (BDOF, bi-direction optical flow) или разрешен ли он для декодирования текущего блока кодирования на основе размера изображения и окна соответствия текущего изображения и опорного изображения и декодирование текущего блока.[00182] In an embodiment, a method for decoding a video bitstream is provided. The bitstream contains many sets of parameters and many images. Each image of a plurality of images contains a plurality of slices. Each slice of the plurality of slices contains a plurality of encoding blocks. The method comprises parsing a set of parameters to obtain an image size and a matching window size associated with the current image currPic. The information obtained is used to determine the image size and crop size of the current image. The method further includes parsing another set of parameters to obtain an image size and a match window size associated with the reference image refPic. The information obtained is used to determine the image size and crop size of the reference image. The method further includes determining refPic as a reference picture for decoding the current curBlock that is in the current picture currPic, determining whether bi-direction optical flow (BDOF) is used or enabled for decoding the current encoding block based on the image size and the matching window between the current image and the reference image, and decoding the current block.

[00183] В варианте осуществления BDOF не используется или отключен для декодирования текущего блока кодирования, когда размер изображения и окно соответствия текущего изображения и опорного изображения различаются.[00183] In an embodiment, BDOF is not used or disabled for decoding the current encoding block when the image size and correspondence window of the current image and the reference image are different.

[00184] В варианте осуществления обеспечивается способ декодирования битового потока видео. Битовый поток содержит множество наборов параметров и множество изображений. Каждое изображение из множества изображений содержит множество слайсов. Каждый слайс из множества слайсов содержит множество блоков кодирования. Способ содержит синтаксический анализ набора параметров для получения размера изображения и размера окна соответствия, связанного с текущим изображением currPic. Полученная информация используется для определения размера изображения и размера кадрирования текущего изображения. Способ дополнительно включает в себя синтаксический анализ другого набора параметров для получения размера изображения и размера окна соответствия, связанных с опорным изображением refPic. Полученная информация используется для определения размера изображения и размера кадрирования опорного изображения. Способ дополнительно включает в себя определение refPic в качестве опорного изображения для декодирования текущего блока curBlock, который находится в текущем изображении currPic, определение того, используется ли уточнение вектора движения (DMVR, decoder-side motion vector refinement) на стороне декодера для декодирования текущего блока кодирования на основе размер изображения и окно соответствия текущего изображения и опорного изображения, а также декодирование текущего блока.[00184] In an embodiment, a method for decoding a video bitstream is provided. The bitstream contains many sets of parameters and many images. Each image of a plurality of images contains a plurality of slices. Each slice of the plurality of slices contains a plurality of encoding blocks. The method comprises parsing a set of parameters to obtain an image size and a matching window size associated with the current image currPic. The information obtained is used to determine the image size and crop size of the current image. The method further includes parsing another set of parameters to obtain an image size and a match window size associated with the reference image refPic. The information obtained is used to determine the image size and crop size of the reference image. The method further includes determining refPic as a reference picture for decoding the current curBlock that is in the current picture currPic, determining whether decoder-side motion vector refinement (DMVR) is used on the decoder side to decode the current encoding block based on the image size and window matching of the current image and the reference image, as well as the decoding of the current block.

[00185] В варианте осуществления DMVR не используется или отключается для декодирования текущего блока кодирования, когда размер изображения и окно соответствия текущего изображения и опорного изображения различаются.[00185] In an embodiment, the DMVR is not used or disabled for decoding the current encoding block when the picture size and matching window of the current picture and the reference picture are different.

[00186] В варианте осуществления обеспечивается способ кодирования битового потока видео. В варианте осуществления битовый поток содержит множество наборов параметров и множество изображений. Каждое изображение из множества изображений содержит множество слайсов. Каждый слайс из множества слайсов содержит множество блоков кодирования. Способ включает в себя создание набора параметров, содержащего размер изображения и размер окна соответствия, ассоциированного с текущим изображением currPic. Информация используется для получения размера изображения и размера кадрирования текущего изображения. Способ дополнительно содержит создание другого набора параметров, содержащего размер изображения и размер окна соответствия, связанного с опорным изображением refPic. Полученная информация используется для определения размера изображения и размера кадрирования опорного изображения. Способ дополнительно включает в себя ограничение того, что опорное изображение refPic не должно использоваться в качестве совмещенного опорного изображения для временного предсказания вектора движения (TMVP, temporal motion vector prediction) всех слайсов, которые принадлежат текущему изображению currPic, когда размер изображения и окно соответствия текущего изображения и опорное изображение отличается. То есть ограничение, что если опорное изображение refPic является совмещенным опорным изображением для кодирования блоков в текущем изображении currPic для TMVP, размер изображения и окно соответствия текущего изображения и опорного изображения должны быть одинаковыми. Способ дополнительно включает в себя декодирование битового потока.[00186] In an embodiment, a method for encoding a video bitstream is provided. In an embodiment, the bitstream contains a plurality of parameter sets and a plurality of images. Each image of a plurality of images contains a plurality of slices. Each slice of the plurality of slices contains a plurality of encoding blocks. The method includes creating a parameter set containing an image size and a match window size associated with the current image currPic. The information is used to obtain the image size and crop size of the current image. The method further comprises creating another set of parameters comprising an image size and a matching window size associated with the reference image refPic. The information obtained is used to determine the image size and crop size of the reference image. The method further includes a constraint that the reference picture refPic should not be used as a combined reference picture for temporal motion vector prediction (TMVP) of all slices that belong to the current picture currPic when the size of the picture and the matching window of the current picture and the reference image is different. That is, the constraint is that if the reference picture refPic is a co-located reference picture for encoding blocks in the current picture currPic for TMVP, the picture size and matching window of the current picture and the reference picture must be the same. The method further includes decoding the bitstream.

[00187] В варианте осуществления обеспечивается способ декодирования битового потока видео. Битовый поток содержит множество наборов параметров и множество изображений. Каждое изображение из множества изображений содержит множество слайсов. Каждый слайс из множества слайсов содержит множество блоков кодирования. Способ содержит синтаксический анализ набора параметров для получения размера изображения и размера окна соответствия, связанного с текущим изображением currPic. Полученная информация используется для определения размера изображения и размера кадрирования текущего изображения. Способ дополнительно включает в себя синтаксический анализ другого набора параметров для получения размера изображения и размера окна соответствия, связанных с опорным изображением refPic. Полученная информация используется для определения размера изображения и размера кадрирования опорного изображения. Способ дополнительно включает в себя определение refPic в качестве опорного изображения для декодирования текущего блока curBlock, который находится в текущем изображении currPic, синтаксический анализ синтаксического элемента (slice_DVMR_BDOF_enable_flag), чтобы определить, требуется ли уточнение вектора движения (DMVR, decoder-side motion vector refinement) на стороне декодера и/или двунаправленное оптический поток (BDOF, bi-direction optical flow) используется или разрешается для декодирования текущего кодирующего изображения и/слайса. Способ дополнительно включает в себя ограничение значений для синтаксического элемента (slice_DVMR_BDOF_enable_flag) равным нулю, когда окно соответствия confWinA в parameterSetA и confWinB в parameterSetB не одинаковы или когда значения picSizeA в parameterSetA и picSizeB в parameterSetB не совпадают.[00187] In an embodiment, a method for decoding a video bitstream is provided. The bitstream contains many sets of parameters and many images. Each image of a plurality of images contains a plurality of slices. Each slice of the plurality of slices contains a plurality of encoding blocks. The method comprises parsing a set of parameters to obtain an image size and a matching window size associated with the current image currPic. The information obtained is used to determine the image size and crop size of the current image. The method further includes parsing another set of parameters to obtain an image size and a match window size associated with the reference image refPic. The information obtained is used to determine the image size and crop size of the reference image. The method further includes defining a refPic as a reference image for decoding the current curBlock that is in the current image currPic, parsing the syntax element (slice_DVMR_BDOF_enable_flag) to determine whether decoder-side motion vector refinement (DMVR) is required. on the decoder side and/or bi-direction optical flow (BDOF) is used or enabled to decode the current encoding picture and/or slice. The method further includes limiting the values for the syntax element (slice_DVMR_BDOF_enable_flag) to zero when the matching window confWinA in parameterSetA and confWinB in parameterSetB are not the same or when the values of picSizeA in parameterSetA and picSizeB in parameterSetB are not the same.

[00188] Приведенное ниже описание относится к основному тексту, который является рабочим проектом VVC. То есть описывается только дельта, в то время как тексты в основном тексте, которые не упомянуты ниже, применяются как есть. Удаленный текст выделяется курсивом, а добавленный текст - жирным шрифтом.[00188] The following description refers to the main text, which is the VVC working draft. That is, only the delta is described, while texts in the main text that are not mentioned below are applied as is. Deleted text appears in italics, and added text appears in bold.

[00189] Обеспечены синтаксис и семантика набора параметров последовательности. [00189] Sequence parameter set syntax and semantics are provided.

seq_parameter_set_rbsp () {seq_parameter_set_rbsp() { ДескрипторDescriptor ...... pic_width_in_luma_samples pic_width_in_luma_samples ue(v)ue(v) pic_height_in_luma_samples pic_height_in_luma_samples ue(v)ue(v) max_width_in_luma_samples max_width_in_luma_samples ue(v)ue(v) max_height_in_luma_samples max_height_in_luma_samples ue(v)ue(v) ...... }}

[00190] max_width_in_luma_samples определяет, что требование соответствия битового потока, чтобы pic_width_in_luma_samples для любого изображения, для которого этот SPS активен, было меньше или равно max_width_in_luma_samples.[00190] max_width_in_luma_samples specifies that the bitstream matching requirement that pic_width_in_luma_samples for any image for which this SPS is active is less than or equal to max_width_in_luma_samples.

[00191] max_height_in_luma_samples определяет, что требование соответствия битового потока, чтобы pic_height_in_luma_samples для любого изображения, для которого этот SPS активен, было меньше или равно max_height_in_luma_samples.[00191] max_height_in_luma_samples specifies that the bitstream matching requirement that pic_height_in_luma_samples for any image for which this SPS is active is less than or equal to max_height_in_luma_samples.

[00192] Обеспечены синтаксис и семантика набора параметров изображения. [00192] The syntax and semantics of an image parameter set are provided.

pic_parameter_set_rbsp () {pic_parameter_set_rbsp() { ДескрипторDescriptor ...... pps_seq_parameter_set_id pps_seq_parameter_set_id ue(v)ue(v) pic_width_in_luma_samples pic_width_in_luma_samples ue(v)ue(v) pic_height_in_luma_samples pic_height_in_luma_samples ue(v)ue(v) conformance_window_flag conformance_window_flag u(1)u(1) if (conformance_window_flag) { if (conformance_window_flag) { conf_win_left_offset conf_win_left_offset ue(v)ue(v) conf_win_right_offset conf_win_right_offset ue(v)ue(v) conf_win_top_offset conf_win_top_offset ue(v)ue(v) conf_win_bottom_offset conf_win_bottom_offset ue(v)ue(v) }} ...... }}

[00193] pic_width_in_luma_samples определяет ширину каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости. pic_width_in_luma_samples не должно быть равно 0 и должно быть целым числом, кратным MinCbSizeY.[00193] pic_width_in_luma_samples specifies the width of each decoded image with reference to PPS in units of luma samples. pic_width_in_luma_samples must not be 0 and must be an integer multiple of MinCbSizeY.

[00194] pic_height_in_luma_samples определяет высоту каждого декодированного изображения со ссылкой на PPS в единицах выборок яркости. pic_height_in_luma_samples не должно быть равно 0 и должно быть целым кратным MinCbSizeY.[00194] pic_height_in_luma_samples specifies the height of each decoded image with reference to PPS in units of luma samples. pic_height_in_luma_samples must not be 0 and must be an integer multiple of MinCbSizeY.

[00195] Требование соответствия битового потока состоит в том, чтобы выполнялись все следующие условия для каждого активного опорного изображения, ширина и высота которого равны reference_pic_width_in_luma_samples и reference_pic_height_in_luma_samples:[00195] The bitstream matching requirement is that all of the following conditions are met for each active reference picture whose width and height are reference_pic_width_in_luma_samples and reference_pic_height_in_luma_samples:

[00196] - 2 * pic_width_in_luma_samples>=reference_pic_width_in_luma_samples[00196] - 2 * pic_width_in_luma_samples>=reference_pic_width_in_luma_samples

[00197] - 2 * pic_height_in_luma_samples>=reference_pic_height_in_luma_samples[00197] - 2 * pic_height_in_luma_samples>=reference_pic_height_in_luma_samples

[00198] - pic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samples[00198] - pic_width_in_luma_samples <= 8 * reference_pic_width_in_luma_samples

[00199] - pic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samples[00199] - pic_height_in_luma_samples <= 8 * reference_pic_height_in_luma_samples

[00200] Переменные PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC и PicHeightInSamplesC выводятся следующим образом.[00200] The variables PicWidthInCtbsY, PicHeightInCtbsY, PicSizeInCtbsY, PicWidthInMinCbsY, PicHeightInMinCbsY, PicSizeInMinCbsY, PicSizeInSamplesY, PicWidthInSamplesC and PicHeightInSamplesC are output as follows.

[00201] PicWidthInCtbsY=Ceil (pic_width_in_luma_samples ÷ CtbSizeY) (1)[00201] PicWidthInCtbsY=Ceil (pic_width_in_luma_samples ÷ CtbSizeY) (1)

[00202] PicHeightInCtbsY=Ceil (pic_height_in_luma_samples ÷ CtbSizeY) (2)[00202] PicHeightInCtbsY=Ceil (pic_height_in_luma_samples ÷ CtbSizeY) (2)

[00203] PicSizeInCtbsY=PicWidthInCtbsY * PicHeightInCtbsY (3)[00203] PicSizeInCtbsY=PicWidthInCtbsY * PicHeightInCtbsY (3)

[00204] PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (4)[00204] PicWidthInMinCbsY=pic_width_in_luma_samples/MinCbSizeY (4)

[00205] PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (5)[00205] PicHeightInMinCbsY=pic_height_in_luma_samples/MinCbSizeY (5)

[00206] PicSizeInMinCbsY=PicWidthInMinCbsY * PicHeightInMinCbsY (6)[00206] PicSizeInMinCbsY=PicWidthInMinCbsY * PicHeightInMinCbsY (6)

[00207] PicSizeInSamplesY=pic_width_in_luma_samples * pic_height_in_luma_samples (7)[00207] PicSizeInSamplesY=pic_width_in_luma_samples * pic_height_in_luma_samples (7)

[00208] PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (8)[00208] PicWidthInSamplesC=pic_width_in_luma_samples/SubWidthC (8)

[00209] PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (9)[00209] PicHeightInSamplesC=pic_height_in_luma_samples/SubHeightC (9)

[00210] conformance_window_flag, равное 1, указывает, что параметры смещения окна обрезки соответствия следуют далее в PPS. conformance_window_flag, равное 0, указывает, что параметры смещения окна обрезки соответствия отсутствуют.[00210] conformance_window_flag equal to 1 indicates that the conformance trim window offset parameters follow further in the PPS. conformance_window_flag equal to 0 indicates that there are no conformance crop window offset options.

[00211] 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.[00211] conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset define samples of PPS-referencing images that are output from the decoding process in terms of a rectangular area specified in the output image coordinates. When conformance_window_flag is 0, the values of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset are considered to be 0.

[00212] Окно обрезки соответствия содержит выборки яркости с горизонтальными координатами изображения от SubWidthC * conf_win_left_offset до pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset+1) и вертикальные координаты изображения от SubHeightC * conf_win_top_offset до pic_height_in_luma_samples − ( SubHeightC * conf_win_bottom_offset + 1 ) включительно.[00212] The match trim window contains luminance samples with horizontal image coordinates from SubWidthC * conf_win_left_offset to pic_width_in_luma_samples - (SubWidthC * conf_win_right_offset+1) and vertical image coordinates from SubHeightC * conf_win_top_offset to pic_height_in_luma_samples − ( SubHeightC * conf_win_ bottom_offset + 1 ) inclusive.

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

[00214] Переменные PicOutputWidthL и PicOutputHeightL выводятся следующим образом:[00214] The PicOutputWidthL and PicOutputHeightL variables are output as follows:

[00215] PicOutputWidthL=pic_width_in_luma_samples - (10)[00215] PicOutputWidthL=pic_width_in_luma_samples - (10)

[00216] SubWidthC * (conf_win_right_offset+conf_win_left_offset)[00216] SubWidthC * (conf_win_right_offset+conf_win_left_offset)

[00217] PicOutputHeightL=pic_height_in_pic_size_units - (11)[00217] PicOutputHeightL=pic_height_in_pic_size_units - (11)

[00218] SubHeightC * (conf_win_bottom_offset+conf_win_top_offset)[00218] SubHeightC * (conf_win_bottom_offset+conf_win_top_offset)

[00219] Когда ChromaArrayType не равно 0, соответствующие определенные выборки двух массивов цветности являются выборками, имеющими координаты изображения (x/SubWidthC, y/SubHeightC), где (x, y) - координаты изображения определенных выборок яркости.[00219] When ChromaArrayType is not equal to 0, the corresponding defined samples of the two chroma arrays are samples having image coordinates (x/SubWidthC, y/SubHeightC), where (x, y) are the image coordinates of the defined luminance samples.

[00220] ПРИМЕЧАНИЕ. Параметры смещения окна обрезки соответствия применяются только при выводе. Все внутренние процессы декодирования применяются к размеру необрезанного изображения.[00220] NOTE: The match crop window offset settings apply only to output. All internal decoding processes are applied to the uncropped image size.

[00221] Пусть PPS_A и PPS_B будут наборами параметров изображения, относящимися к одному и тому же набору параметров последовательности, для соответствия битового потока требуется выполнение всех следующих условий, если значения pic_width_in_luma_samples в PPS_A и PPS_B одинаковы, а значения pic_height_in_luma_samples в PPS_A и PPS_B одинаковы: [00221] Let PPS_A and PPS_B be image parameter sets related to the same sequence parameter set, the bitstream matching requires all of the following conditions to be met if the pic_width_in_luma_samples values in PPS_A and PPS_B are the same and the pic_height_in_luma_samples values in PPS_A and PPS_B are the same:

Значения conf_win_left_offset в PPS_A и PPS_B одинаковыThe conf_win_left_offset values in PPS_A and PPS_B are the same

Значения conf_win_right_offset в PPS_A и PPS_B одинаковыThe conf_win_right_offset values in PPS_A and PPS_B are the same

Значения conf_win_top_offset в PPS_A и PPS_B одинаковыThe conf_win_top_offset values in PPS_A and PPS_B are the same

Значения conf_win_bottom_offset в PPS_A и PPS_B одинаковыThe conf_win_bottom_offset values in PPS_A and PPS_B are the same

[00222] Следующая константа добавляется к семантике collocated_ref_idx[00222] The following constant is added to the collocated_ref_idx semantics

[00223] collocated_ref_idx определяет опорный индекс совместно размещенного изображения, используемого для временного предсказания вектора движения.[00223] collocated_ref_idx defines the reference index of a collocated image used for temporal motion vector prediction.

[00224] Когда slice_type равен P или когда slice_type равен B и collocated_from_l0_flag равен 1, collocated_ref_idx относится к изображению в списке 0, а значение collocated_ref_idx должно быть в диапазоне от 0 до NumRefIdxActive [0] - 1 включительно. .[00224] When slice_type is P or when slice_type is B and collocated_from_l0_flag is 1, collocated_ref_idx refers to the image in list 0, and the value of collocated_ref_idx must be in the range from 0 to NumRefIdxActive[0] - 1 inclusive. .

[00225] Когда slice_type равен B и collocated_from_l0_flag равен 0, collocated_ref_idx относится к изображению в списке 1, а значение collocated_ref_idx должно быть в диапазоне от 0 до NumRefIdxActive [1] - 1 включительно.[00225] When slice_type is B and collocated_from_l0_flag is 0, collocated_ref_idx refers to the image in list 1, and the value of collocated_ref_idx must be in the range from 0 to NumRefIdxActive[1] - 1 inclusive.

[00226] Когда collocated_ref_idx отсутствует, предполагается, что значение collocated_ref_idx равно 0.[00226] When collocated_ref_idx is missing, the value of collocated_ref_idx is assumed to be 0.

[00227] Требование соответствия битового потока состоит в том, чтобы изображение, на которое ссылается collocated_ref_idx, было одинаковым для всех слайсов кодированного изображения.[00227] The bitstream matching requirement is that the image referenced by collocated_ref_idx be the same across all slices of the encoded image.

[00228] Для соответствия битового потока требуется, чтобы разрешения опорного изображения, на которое ссылается collocated_ref_idx, и текущего изображения были одинаковыми. [00228] Bitstream matching requires that the resolutions of the reference image referenced by collocated_ref_idx and the current image be the same.

[00229] Требование соответствия битового потока состоит в том, чтобы размеры изображения и окна соответствия опорного изображения, на которое ссылается collocated_ref_idx, и текущего изображения были одинаковыми. [00229] The bitstream matching requirement is that the dimensions of the image and matching window of the reference image referenced by collocated_ref_idx and the current image are the same.

[00230] Изменены следующие условия для установки dmvrFlag в 1.[00230] The following conditions for setting dmvrFlag to 1 have been changed.

[00231] - Когда выполняются все следующие условия, dmvrFlag устанавливается равным 1:[00231] - When all of the following conditions are met, dmvrFlag is set to 1:

[00232] - sps_dmvr_enabled_flag равен 1[00232] - sps_dmvr_enabled_flag is equal to 1

[00233] - general_merge_flag [xCb] [yCb] равно 1[00233] - general_merge_flag [xCb] [yCb] equals 1

[00234] - оба predFlagL0 [0] [0] и predFlagL1 [0] [0] равны 1[00234] - both predFlagL0 [0] [0] and predFlagL1 [0] [0] are 1

[00235] - mmvd_merge_flag [xCb] [yCb] равен 0[00235] - mmvd_merge_flag [xCb] [yCb] is 0

[00236] - DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0]) равно DiffPicOrderCnt (RefPicList [1] [refIdxL1], currPic)[00236] - DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0]) equals DiffPicOrderCnt (RefPicList [1] [refIdxL1], currPic)

[00237] - BcwIdx [xCb] [yCb] равно 0[00237] - BcwIdx [xCb] [yCb] equals 0

[00238] - Оба luma_weight_l0_flag [refIdxL0] и luma_weight_l1_flag [refIdxL1] равны 0[00238] - Both luma_weight_l0_flag [refIdxL0] and luma_weight_l1_flag [refIdxL1] are 0

[00239] - cbWidth больше или равно 8[00239] - cbWidth is greater than or equal to 8

[00240] - cbHeight больше или равно 8[00240] - cbHeight is greater than or equal to 8

[00241] - cbHeight * cbWidth больше или равно 128[00241] - cbHeight * cbWidth greater than or equal to 128

[00242] - - Для X равного 0 и 1, pic_width_in_luma_samples и pic_height_in_luma_samples опорного изображения refPicLX, связанные с refIdxLX, равны pic_width_in_luma_samples и pic_height_in_luma_samples текущего изображения, соответственно. [00242] - - For X equal to 0 and 1, the pic_width_in_luma_samples and pic_height_in_luma_samples of the reference image refPicLX associated with refIdxLX are equal to the pic_width_in_luma_samples and pic_height_in_luma_samples of the current image, respectively.

[00243] - - Для X равного 0 и 1, pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset опорного изображения refPicLX, связанные с refIdxLX равны pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offset текущего изображения соответственно. [00243] - - For X equal to 0 and 1, pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset of the refPicLX reference image associated with refIdxLX are equal to pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offset of the current image respectively.

[00244] Изменены следующие условия для установки dmvrFlag в 1.[00244] The following conditions for setting dmvrFlag to 1 have been changed.

[00245] - Если все следующие условия верны, bdofFlag устанавливается равным TRUE.[00245] - If all of the following conditions are true, bdofFlag is set to TRUE.

[00246] - sps_bdof_enabled_flag равен 1.[00246] - sps_bdof_enabled_flag is equal to 1.

[00247] - predFlagL0 [xSbIdx] [ySbIdx] и predFlagL1 [xSbIdx] [ySbIdx] оба равны 1.[00247] - predFlagL0 [xSbIdx] [ySbIdx] and predFlagL1 [xSbIdx] [ySbIdx] are both 1.

[00248] - DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0]) * DiffPicOrderCnt (currPic, RefPicList [1] [refIdxL1]) меньше 0.[00248] - DiffPicOrderCnt (currPic, RefPicList [0] [refIdxL0]) * DiffPicOrderCnt (currPic, RefPicList [1] [refIdxL1]) is less than 0.

[00249] - MotionModelIdc [xCb] [yCb] равен 0.[00249] - MotionModelIdc [xCb] [yCb] is 0.

[00250] - merge_subblock_flag [xCb] [yCb] равен 0.[00250] - merge_subblock_flag [xCb] [yCb] is equal to 0.

[00251] - sym_mvd_flag [xCb] [yCb] равно 0.[00251] - sym_mvd_flag [xCb] [yCb] is equal to 0.

[00252] - BcwIdx [xCb] [yCb] равен 0.[00252] - BcwIdx [xCb] [yCb] is equal to 0.

[00253] - luma_weight_l0_flag [refIdxL0] и luma_weight_l1_flag [refIdxL1] оба равны 0.[00253] - luma_weight_l0_flag [refIdxL0] and luma_weight_l1_flag [refIdxL1] are both 0.

[00254] - cbHeight больше или равно 8[00254] - cbHeight is greater than or equal to 8

[00255] - - Для X равного 0 и 1, pic_width_in_luma_samples и pic_height_in_luma_samples опорного изображения refPicLX, связанные с refIdxLX, равны pic_width_in_luma_samples и pic_height_in_luma_samples текущего изображения, соответственно. [00255] - - For X equal to 0 and 1, the pic_width_in_luma_samples and pic_height_in_luma_samples of the reference image refPicLX associated with refIdxLX are equal to the pic_width_in_luma_samples and pic_height_in_luma_samples of the current image, respectively.

[00256] - - Для X равного из 0 и 1, pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offse опорного изображения refPicLX, связанные с refIdxLX равны pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset и conf_win_bottom_offse текущего изображения соответственно. [00256] - - For X equal to 0 and 1, pic_width_in_luma_samples, pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offse of the refPicLX reference image associated with refIdxLX are equal to pic_width_in_luma_samples , pic_height_in_luma_samples, conf_win_left_offset, conf_win_right_offset, conf_win_top_offset and conf_win_bottom_offse of the current image respectively.

[00257] - cIdx равен 0.[00257] - cIdx is 0.

[00258] Фиг. 13 является схематической диаграммой устройства 1300 видеокодирования (например, видеокодера 20 или видеодекодера 30) согласно варианту осуществления изобретения. Устройство 1300 видеокодирования подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. Устройство 1300 видеокодирования содержит входные порты 1310 и приемные блоки (Rx) 1320 для приема данных; процессор, логический блок или центральный процессор (CPU, central processing unit) 1330 для обработки данных; блоки 1340 передатчика (Tx) и выходные порты 1350 для передачи данных; и память 1360 для хранения данных. Устройство 1300 видеокодирования также может содержать компоненты преобразования оптических сигналов в электрические (OE, optical-to-electrical) и компоненты преобразования электрических сигналов в оптические (EO, electrical-to-optical), подключенные к входным портам 1310, блокам 1320 приемника, блокам 1340 передатчика и выходным портам 1350 для обеспечения входа или выхода оптических или электрических сигналов.[00258] FIG. 13 is a schematic diagram of a video encoding device 1300 (eg, video encoder 20 or video decoder 30) according to an embodiment of the invention. Video encoding apparatus 1300 is suitable for implementing the disclosed embodiments that are described herein. The video encoding device 1300 includes input ports 1310 and receiver units (Rx) 1320 for receiving data; processor, logical unit or central processing unit (CPU, central processing unit) 1330 for data processing; transmitter (Tx) blocks 1340 and data output ports 1350; and 1360 memory for data storage. The video encoding device 1300 may also include optical-to-electrical (OE) components and electrical-to-optical (EO) components connected to input ports 1310, receiver blocks 1320, blocks 1340 transmitter and output ports 1350 to provide input or output of optical or electrical signals.

[00259] Процессор 1330 реализуется аппаратным обеспечением и программным обеспечением. Процессор 1330 может быть реализован как одна или более микросхем ЦП, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGA, field-programmable gate arrays), специализированных интегральных схем (ASIC, application specific integrated circuit) и процессоров цифровых сигналов (DSP, digital signal processor). Процессор 1330 поддерживает связь с входными портами 1310, блоками 1320 приемника, блоками 1340 передатчика, выходными портами 1350 и памятью 1360. Процессор 1330 содержит модуль 1370 кодирования. Модуль 1370 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 1370 кодирования. Следовательно, включение модуля 1370 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1300 видеокодирования и обеспечивает трансформацию устройства 1300 видеокодирования в другое состояние. В качестве альтернативы модуль 1370 кодирования реализуется как инструкции, хранящиеся в памяти 1360 и исполняемые процессором 1330.[00259] The processor 1330 is implemented in hardware and software. The processor 1330 may be implemented as one or more CPU chips, cores (eg, as a multi-core processor), field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), and digital signal processors ( DSP, digital signal processor). Processor 1330 communicates with input ports 1310, receiver blocks 1320, transmitter blocks 1340, output ports 1350, and memory 1360. Processor 1330 includes an encoding module 1370. Encoding module 1370 implements the disclosed embodiments described above. For example, encoding module 1370. Therefore, the inclusion of the encoding module 1370 provides a significant improvement in the functionality of the video encoding device 1300 and allows the video encoding device 1300 to be transformed into a different state. Alternatively, encoding module 1370 is implemented as instructions stored in memory 1360 and executed by processor 1330.

[00260] Устройство 1300 видеокодирования может также включать в себя устройства 1380 ввода и/или вывода (I/O, input/output) для передачи данных пользователю и от пользователя. Устройства 1380 ввода-вывода могут включать в себя устройства вывода, такие как дисплей для отображения видеоданных, динамики для вывода аудиоданных и т.д. Устройства 1380 ввода-вывода могут также включать в себя устройства ввода, такие как клавиатура, мышь, трекбол и т.д., и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.[00260] Video encoding device 1300 may also include input and/or output (I/O) devices 1380 for transmitting data to and from the user. The input/output devices 1380 may include output devices such as a display for displaying video data, speakers for outputting audio data, etc. I/O devices 1380 may also include input devices such as a keyboard, mouse, trackball, etc., and/or corresponding interfaces for interacting with such output devices.

[00261] Память 1360 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 1360 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM, read-only memory), оперативную память (RAM, random access memory), троичную память с адресацией по содержимому (TCAM, ternary content-addressable memory) и/или статическую память с произвольным доступом (SRAM, static random-access memory).[00261] Memory 1360 contains one or more disks, tape drives, and solid state drives and can be used as an overflow storage device, for storing programs when such programs are selected for execution, and for storing instructions and data that are read during execution. programs. Memory 1360 may be volatile and/or non-volatile and may be read-only memory (ROM), random access memory (RAM), ternary content-addressable memory (TCAM), and /or static random-access memory (SRAM, static random-access memory).

[00262] Фиг. 14 - схематическая диаграмма варианта осуществления средства 1400 кодирования. В варианте осуществления средства кодирования 1400 реализованы в устройстве 1402 видеокодирования (например, видеокодере 20 или видеодекодере 30). Устройство 1402 видеокодирования включает в себя средство 1401 приема. Средство 1401 приема выполнено с возможностью приема изображения для кодирования или приема битового потока для декодирования. Устройство 1402 видеокодирования включает в себя средство 1407 передачи, соединенное со средством 1401 приема. Средство 1407 передачи выполнено с возможностью передачи битового потока в декодер или передачи декодированного изображения на средство отображения (например, одно из устройств 1380 ввода/вывода).[00262] FIG. 14 is a schematic diagram of an embodiment of encoding means 1400. In an embodiment, the encoding means 1400 is implemented in a video encoding device 1402 (eg, video encoder 20 or video decoder 30). The video encoding device 1402 includes a receiving means 1401. The receiving means 1401 is configured to receive an image for encoding or receive a bitstream for decoding. The video encoding device 1402 includes a transmission means 1407 connected to a reception means 1401. The transmission means 1407 is configured to transmit a bit stream to a decoder or transmit a decoded image to a display device (eg, one of the input/output devices 1380).

[00263] Устройство 1402 видеокодирования включает в себя средство 1403 хранения. Средство 1403 хранения соединено по меньшей мере с одним из средств 1401 приема или средства 1407 передачи. Средство 1403 хранения выполнено с возможностью хранения инструкций. Устройство 1402 видеокодирования также включает в себя средство 1405 обработки. Средство 1405 обработки соединено со средством 1403 хранения. Средство 1405 обработки выполнено с возможностью выполнения инструкций, хранящихся в средстве 1403 хранения, для осуществления способов.[00263] Video encoding device 1402 includes storage means 1403. The storage means 1403 is connected to at least one of the receiving means 1401 or the transmitting means 1407. The storage means 1403 is configured to store instructions. Video encoding device 1402 also includes processing means 1405. The processing means 1405 is connected to the storage means 1403. The processing means 1405 is configured to execute instructions stored in the storage means 1403 to implement the methods.

[00264] Также следует понимать, что этапы примерных способов, изложенных в данном документе, не обязательно должны выполняться в описанном порядке, и порядок этапов таких способов следует понимать как просто примерный. Аналогичным образом, в такие способы могут быть включены дополнительные этапы, а некоторые этапы могут быть опущены или объединены в способах, согласующихся с различными вариантами осуществления настоящего раскрытия.[00264] It should also be understood that the steps of the exemplary methods set forth herein need not be performed in the order described, and the order of the steps of such methods is to be understood as merely exemplary. Likewise, additional steps may be included in such methods, and some steps may be omitted or combined in methods consistent with various embodiments of the present disclosure.

[00265] Хотя в настоящем раскрытии представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отклонения от сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и цель не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.[00265] Although the present disclosure presents several embodiments, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. These examples should be considered illustrative and not restrictive, and it is not intended to be limited by the details given here. For example, various elements or components may be combined or integrated into another system, or certain functions may be omitted or not implemented.

[00266] Кроме того, методы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как отдельные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами без отклонения от объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений, замен и переделок могут быть установлены специалистом в данной области техники и могут быть выполнены без отклонения от сущности и объема, раскрытых в данном документе.[00266] Additionally, the methods, systems, subsystems, and methods described and illustrated in various embodiments as separate or distinct may be combined or integrated with other systems, modules, technologies, or methods without departing from the scope of the present invention. Other elements shown or discussed as being connected or directly connected or interacting with each other may be indirectly connected or interacting through some interface, device or intermediate component, electrically, mechanically or otherwise. Other examples of changes, substitutions and alterations may be ascertained by one skilled in the art and may be made without departing from the spirit and scope disclosed herein.

Claims (47)

1. Способ декодирования, реализуемый видеодекодером, содержащий: 1. A decoding method implemented by a video decoder, containing: прием видеодекодером первого набора параметров изображения (PPS) и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности (SPS), при этом каждый из первого набора параметров изображения и второго набора параметров изображения содержит pic_width_in_luma_samples, pic_height_in_luma_samples и параметры окна соответствия, при этом pic_width_in_luma_samples указывает ширину каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости, а pic_height_in_luma_samples указывает высоту каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости; при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения pic_width_in_luma_samples и pic_height_in_luma_samples соответственно, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения параметров окна соответствия; иreceiving by a video decoder a first picture parameter set (PPS) and a second picture parameter set, each of which refers to the same sequence parameter set (SPS), wherein each of the first picture parameter set and the second picture parameter set comprises pic_width_in_luma_samples, pic_height_in_luma_samples and parameters matching windows, wherein pic_width_in_luma_samples indicates the width of each decoded image referring to the corresponding set of image parameters, in units of luma samples, and pic_height_in_luma_samples indicates the height of each decoded image referring to the corresponding set of image parameters, in units of luma samples; wherein, when the first set of image parameters and the second set of image parameters have the same values of pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, the first set of image parameters and the second set of image parameters have the same values of the correspondence window parameters; And применение видеодекодером окна соответствия к текущему изображению, соответствующему первому набору параметров изображения или второму набору параметров изображения. applying the match window to the current image corresponding to the first set of image parameters or the second set of image parameters by the video decoder. 2. Способ по п. 1, в котором параметры окна соответствия содержат смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.2. The method according to claim 1, wherein the parameters of the match window comprise a left offset of the match window, a right offset of the match window, an upward offset of the match window, and a downward offset of the match window. 3. Способ по любому из пп. 1, 2, дополнительно содержащий декодирование текущего изображения, соответствующего первому набору параметров изображения или второму набору параметров изображения, с использованием межкадрового предсказания после применения окна соответствия, при этом межкадровое предсказание основано на передискретизованном опорном изображении.3. Method according to any one of paragraphs. 1, 2, further comprising decoding a current image corresponding to the first set of image parameters or the second set of image parameters using inter-frame prediction after applying a matching window, wherein the inter-frame prediction is based on the resampled reference image. 4. Способ по любому из пп. 1-3, дополнительно содержащий передискретизацию опорного изображения, связанного с текущим изображением, соответствующим первому набору параметров изображения или второму набору параметров изображения, с использованием передискретизации опорного изображения (RPS).4. Method according to any one of paragraphs. 1-3, further comprising resampling a reference picture associated with a current picture corresponding to the first set of picture parameters or the second set of picture parameters using reference picture resampling (RPS). 5. Способ по любому из п. 4, в котором передискретизация опорного изображения изменяет разрешение опорного изображения, используемого для межкадрового предсказания текущего изображения, соответствующего первому набору параметров изображения или второму набору параметров изображения.5. The method of claim 4, wherein resampling the reference image changes the resolution of the reference image used for inter-frame prediction of the current image corresponding to the first set of image parameters or the second set of image parameters. 6. Способ по любому из пп. 1-5, дополнительно содержащий определение, включен ли двунаправленный оптический поток (BDOF) для декодирования текущего изображения на основе pic_width_in_luma_samples, pic_height_in_luma_samples и параметров окна соответствия текущего изображения и опорного изображения для текущего изображения.6. Method according to any one of paragraphs. 1-5, further comprising determining whether bidirectional optical flow (BDOF) is enabled for decoding the current picture based on pic_width_in_luma_samples, pic_height_in_luma_samples, and match window parameters of the current picture and a reference picture for the current picture. 7. Способ по любому из пп. 1-5, дополнительно содержащий определение, включено ли уточнение вектора движения (DMVR) на стороне декодера для декодирования текущего изображения на основе ширины изображения, высоты изображения и окна соответствия текущего изображения и опорного изображения для текущего изображения.7. Method according to any one of paragraphs. 1-5, further comprising determining whether motion vector refinement (DMVR) is enabled on the decoder side to decode the current picture based on the picture width, the picture height, and the matching window of the current picture and a reference picture for the current picture. 8. Способ по любому из пп. 1-5, дополнительно содержащий отображение на дисплее электронного устройства изображения, сформированного с использованием текущего изображения.8. Method according to any one of paragraphs. 1-5, further comprising displaying on a display of the electronic device an image generated using the current image. 9. Способ кодирования, реализуемый видеокодером, содержащий: 9. A coding method implemented by a video encoder, containing: формирование посредством видеокодера первого набора параметров изображения (PPS) и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности (SPS), при этом каждый из первого набора параметров изображения и второго набора параметров изображения содержит pic_width_in_luma_samples, pic_height_in_luma_samples и параметры окна соответствия, при этом pic_width_in_luma_samples указывает ширину каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости, а pic_height_in_luma_samples указывает высоту каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости; при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения pic_width_in_luma_samples и pic_height_in_luma_samples соответственно, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения параметров окна соответствия; generating, by the video encoder, a first picture parameter set (PPS) and a second picture parameter set, each of which refers to the same sequence parameter set (SPS), wherein each of the first picture parameter set and the second picture parameter set comprises pic_width_in_luma_samples, pic_height_in_luma_samples, and match window parameters, wherein pic_width_in_luma_samples indicates the width of each decoded image referring to the corresponding set of image parameters, in units of luma samples, and pic_height_in_luma_samples indicates the height of each decoded image referring to the corresponding set of image parameters, in units of luma samples; wherein, when the first set of image parameters and the second set of image parameters have the same values of pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, the first set of image parameters and the second set of image parameters have the same values of the correspondence window parameters; кодирование посредством видеокодера первого набора параметров изображения и второго набора параметров изображения в битовый поток видео; иencoding, by a video encoder, the first set of image parameters and the second set of image parameters into a video bitstream; And сохранение посредством видеокодера битового потока видео для передачи в видеодекодер.storing a video bitstream by the video encoder for transmission to the video decoder. 10. Способ по п. 9, в котором окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.10. The method of claim 9, wherein the match window comprises a match window left offset, a match window right offset, a match window offset up, and a match window offset down. 11. Способ по п. 9 или 10, дополнительно содержащий передачу битового потока видео, содержащего первый набор параметров изображения и второй набор параметров изображения, в видеодекодер.11. The method of claim 9 or 10, further comprising transmitting a video bitstream comprising a first set of image parameters and a second set of image parameters to a video decoder. 12. Устройство декодирования, содержащее: 12. A decoding device comprising: приемник, выполненный с возможностью приема кодированного битового потока видео; a receiver configured to receive an encoded video bit stream; память, соединенную с приемником, хранящую инструкции; иa memory connected to the receiver that stores instructions; And процессор, соединенный с памятью, при этом процессор выполнен с возможностью выполнения инструкций для инициирования устройства декодирования для: a processor coupled to the memory, wherein the processor is configured to execute instructions to initiate a decoding device to: приема первого набора параметров изображения (PPS) и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности (SPS), при этом каждый из первого набора параметров изображения и второго набора параметров изображения содержит pic_width_in_luma_samples, pic_height_in_luma_samples и параметры окна соответствия, при этом pic_width_in_luma_samples указывает ширину каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости, а pic_height_in_luma_samples указывает высоту каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости; при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения pic_width_in_luma_samples и pic_height_in_luma_samples соответственно, первый набор параметров изображения и второй набор параметров изображения имеет те же значения параметров окна соответствия; иreceiving a first picture parameter set (PPS) and a second picture parameter set, each of which refers to the same sequence parameter set (SPS), wherein each of the first picture parameter set and the second picture parameter set comprises pic_width_in_luma_samples, pic_height_in_luma_samples, and window parameters matches, wherein pic_width_in_luma_samples indicates the width of each decoded image referring to the corresponding set of image parameters, in units of luma samples, and pic_height_in_luma_samples indicates the height of each decoded image referring to the corresponding set of image parameters, in units of luma samples; wherein, when the first set of image parameters and the second set of image parameters have the same values of pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, the first set of image parameters and the second set of image parameters have the same values of the correspondence window parameters; And применения окна соответствия к текущему изображению, соответствующему первому набору параметров изображения или второму набору параметров изображения.applying a match window to the current image corresponding to the first set of image parameters or the second set of image parameters. 13. Устройство декодирования по п. 12, в котором параметры окна соответствия содержат смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.13. The decoding apparatus of claim 12, wherein the match window parameters comprise a match window left offset, a match window right offset, a match window up offset, and a match window down offset. 14. Устройство декодирования п. 12 или 13, в котором процессор дополнительно выполнен с возможностью выполнения инструкций для предписания устройству декодирования декодировать текущее изображение, соответствующее первому набору параметров изображения или второму набору параметров изображения, с использованием межкадрового предсказания после применения окна соответствия, при этом межкадровое предсказание основано на передискретизации опорного изображения.14. The decoding apparatus of claim 12 or 13, wherein the processor is further configured to execute instructions for causing the decoding apparatus to decode a current image corresponding to the first set of image parameters or the second set of image parameters using inter-frame prediction after applying a matching window, wherein the inter-frame the prediction is based on resampling the reference image. 15. Устройство декодирования по п. 13 или 14, дополнительно содержащее дисплей, выполненный с возможностью отображения изображения, сформированного на основе текущего изображения.15. The decoding device according to claim 13 or 14, further comprising a display configured to display an image generated based on the current image. 16. Устройство кодирования, содержащее: 16. An encoding device containing: память, содержащую инструкции; memory containing instructions; процессор, соединенный с памятью, процессор выполнен с возможностью выполнения инструкций для инициирования устройства кодирования для: a processor coupled to a memory, the processor configured to execute instructions to initiate an encoder for: формирования первого набора параметров изображения и второго набора параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности, при этом каждый из первого набора параметров изображения и второго набора параметров изображения содержит pic_width_in_luma_samples, pic_height_in_luma_samples и параметры окна соответствия, при этом pic_width_in_luma_samples указывает ширину каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости, а pic_height_in_luma_samples указывает высоту каждого декодированного изображения, ссылающегося на соответствующий набор параметров изображения, в единицах выборок яркости; при этом, когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения pic_width_in_luma_samples и pic_height_in_luma_samples соответственно, первый набор параметров изображения и второй набор параметров изображения имеет те же значения параметров окна соответствия; иgenerating a first set of image parameters and a second set of image parameters, each of which refers to the same set of sequence parameters, wherein each of the first set of image parameters and the second set of image parameters contains pic_width_in_luma_samples, pic_height_in_luma_samples, and match window parameters, wherein pic_width_in_luma_samples indicates the width of each decoded image referring to the corresponding set of image parameters, in units of luma samples, and pic_height_in_luma_samples indicates the height of each decoded image referring to the corresponding set of image parameters, in units of luma samples; wherein, when the first set of image parameters and the second set of image parameters have the same values of pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, the first set of image parameters and the second set of image parameters have the same values of the correspondence window parameters; And кодирования первого набора параметров изображения и второго набора параметров изображения в битовый поток видео; иencoding the first set of image parameters and the second set of image parameters into a video bitstream; And сохранения битового потока видео для передачи видеодекодеру;storing the video bitstream for transmission to the video decoder; при этом передатчик соединен с процессором, при этом передатчик выполнен с возможностью передачи битового потока видео, содержащего первый набор параметров изображения и второй набор параметров изображения, в видеодекодер. wherein the transmitter is coupled to the processor, wherein the transmitter is configured to transmit a video bitstream comprising a first set of image parameters and a second set of image parameters to the video decoder. 17. Устройство кодирования по п. 16, в котором окно соответствия содержит смещение влево окна соответствия, смещение вправо окна соответствия, смещение вверх окна соответствия и смещение вниз окна соответствия.17. The encoding apparatus of claim 16, wherein the match window comprises a match window left offset, a match window right offset, a match window offset up, and a match window offset down. 18. Оборудование кодирования/декодирования, содержащее: 18. Encoding/decoding equipment containing: приемник, выполненный с возможностью приема изображения для кодирования или для приема битового потока для декодирования; a receiver configured to receive an image for encoding or to receive a bit stream for decoding; передатчик, соединенный с приемником, при этом передатчик выполнен с возможностью передачи битового потока на декодер или для передачи декодированного изображения на дисплей; a transmitter coupled to the receiver, wherein the transmitter is configured to transmit a bit stream to a decoder or to transmit a decoded image to a display; память, соединенную по меньшей мере с одним из приемника или передатчика, при этом память выполнена с возможностью хранения инструкций; а такжеa memory connected to at least one of the receiver or transmitter, the memory being configured to store instructions; and процессор, соединенный с памятью, при этом процессор выполнен с возможностью выполнения инструкций, хранящихся в памяти, для осуществления способа по любому из пп. 1-8 и любому из пп. 9-11.a processor coupled to the memory, wherein the processor is configured to execute instructions stored in the memory to implement the method of any one of claims. 1-8 and any of paragraphs. 9-11. 19. Оборудование кодирования/декодирования по п. 18, дополнительно содержащее дисплей, выполненный с возможностью отображения изображения.19. Encoding/decoding equipment according to claim 18, further comprising a display configured to display an image. 20. Система для кодирования/декодирования, содержащая: 20. System for encoding/decoding, containing: кодер; иencoder; And декодер, соединенный с кодером, при этом декодер включает в себя устройство декодирования по любому из пп. 12-15, а кодер включает в себя устройство кодирования по любому из пп. 16-17. a decoder coupled to the encoder, wherein the decoder includes a decoding device according to any one of claims. 12-15, and the encoder includes an encoding device according to any one of claims. 16-17. 21. Средство кодирования/декодирования, содержащее: 21. Encoding/decoding means containing: средство приема, выполненное с возможностью приема изображения для кодирования или для приема битового потока для декодирования; receiving means configured to receive an image for encoding or to receive a bit stream for decoding; средство передачи, соединенное со средством приема, при этом средство передачи выполнено с возможностью передачи битового потока на средство декодирования или передачи декодированного изображения на средство отображения; transmission means connected to the reception means, wherein the transmission means is configured to transmit a bit stream to the decoding means or transmit a decoded image to the display means; средство хранения, соединенное по меньшей мере с одним из средства приема или средства передачи, при этом средство хранения выполнено с возможностью хранения инструкций; иstorage means connected to at least one of the receiving means or the transmitting means, wherein the storage means is configured to store instructions; And средство обработки, соединенное со средством хранения, при этом средство обработки выполнено с возможностью выполнения инструкций, хранящихся в средстве хранения, для осуществления способа по любому из пп. 1-8 и любому из пп. 9-11.processing means connected to the storage means, wherein the processing means is configured to execute instructions stored in the storage means to implement the method according to any one of claims. 1-8 and any of paragraphs. 9-11.
RU2022102797A 2019-07-08 2020-07-07 Processing multiple image sizes and matching windows for resampling reference image when encoding video RU2817618C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US62/871,493 2019-07-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2024110042A Division RU2024110042A (en) 2019-07-08 2020-07-07 PROCESSING MULTIPLE IMAGE SIZES AND CORRESPONDENCE WINDOWS FOR REFERENCE IMAGE RESAMPLING IN VIDEO ENCODING

Publications (2)

Publication Number Publication Date
RU2022102797A RU2022102797A (en) 2023-08-08
RU2817618C2 true RU2817618C2 (en) 2024-04-17

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358701B2 (en) * 2005-04-15 2013-01-22 Apple Inc. Switching decode resolution during video decoding
US9420307B2 (en) * 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
RU2639958C2 (en) * 2013-04-17 2017-12-25 Нокиа Текнолоджиз Ой Device, method and computer program for coding and decoding videoinformation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8358701B2 (en) * 2005-04-15 2013-01-22 Apple Inc. Switching decode resolution during video decoding
US9420307B2 (en) * 2011-09-23 2016-08-16 Qualcomm Incorporated Coding reference pictures for a reference picture set
RU2639958C2 (en) * 2013-04-17 2017-12-25 Нокиа Текнолоджиз Ой Device, method and computer program for coding and decoding videoinformation

Similar Documents

Publication Publication Date Title
US12177486B2 (en) Signaling of picture header in video coding
US12439048B2 (en) Handling of multiple picture size and conformance windows for reference picture resampling in video coding
US12464118B2 (en) Reference picture management in layered video coding
US12069284B2 (en) Signaling of non-picture-level syntax elements at the picture level
CN114430907A (en) Supporting inclusion of hybrid IRAP and non-IRAP pictures within an access unit in a multi-layer video bitstream
KR20220063261A (en) Concurrent Layer for Multiview in Video Coding
US12323578B2 (en) Types of reference pictures in reference picture lists
RU2817618C2 (en) Processing multiple image sizes and matching windows for resampling reference image when encoding video
JP7789833B2 (en) Handling multiple picture sizes and conformance windows for reference picture resampling in video coding
RU2832214C1 (en) Signaling image header when encoding video
RU2831305C1 (en) Signaling image header when encoding video
RU2829981C1 (en) Signaling picture header when encoding video
RU2822313C1 (en) Signalling image header when encoding video
RU2819585C1 (en) Signaling image header when encoding video
RU2826697C1 (en) Signaling syntax elements at image level without images at image level
RU2822714C1 (en) Support of mixed images irar and he-irar within access unit in multilayer bit video streams
HK40060114A (en) Handling of multiple picture size and conformance windows for reference picture resampling in video coding
HK40060114B (en) Handling of multiple picture size and conformance windows for reference picture resampling in video coding