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 PDFInfo
- 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
Links
Images
Abstract
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
[0063] На этапе 101 видеосигнал вводится в кодер. Например, видеосигнал может быть несжатым видеофайлом, хранящимся в памяти. В качестве другого примера видеофайл может быть захвачен устройством видеозахвата, например, видеокамерой, и закодирован для поддержки потоковой передачи видео в реальном времени. Видеофайл может включать в себя как аудиокомпонент, так и видеокомпонент. Компонент видео содержит серию кадров изображения, которые при просмотре в последовательности создают визуальное впечатление движения. Кадры содержат пиксели, которые выражаются в единицах света, называемых здесь компонентами яркости (или выборками яркости), и цветом, который упоминается как компоненты цветности (или выборки цвета). В некоторых примерах кадры могут также содержать значения глубины для поддержки трехмерного просмотра.[0063] At
[0064] На этапе 103 видео разбивается на блоки. Разделение включает в себя разделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, при высокоэффективном кодировании видео (HEVC, High Efficiency Video Coding) (также известном как H.265 и MPEG-H, часть 2) кадр сначала можно разделить на блоки дерева кодирования (CTU), которые представляют собой блоки заранее определенного размера (например, шестьдесят-четыре пикселя на шестьдесят четыре пикселя). Блоки CTU содержат выборки яркости и цветности. Деревья кодирования могут использоваться для разделения CTU на блоки, а затем рекурсивно разделять блоки до тех пор, пока не будут достигнуты конфигурации, поддерживающие дальнейшее кодирование. Например, компоненты яркости кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения освещения. Кроме того, компоненты цветности кадра могут быть подразделены до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения меняются в зависимости от содержимого видеокадров.[0064] At
[0065] На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, разделенных на этапе 103. Например, может использоваться межкадровое предсказание и/или внутреннее предсказание. Межкадровое предсказание предназначено для использования того факта, что объекты в общей сцене имеют тенденцию появляться в последовательных кадрах. Соответственно, блок, изображающий объект в опорном кадре, не нужно повторно описывать в соседних кадрах. В частности, объект, такой как таблица, может оставаться в постоянной позиции на протяжении нескольких кадров. Следовательно, таблица описывается один раз, и соседние кадры могут относиться к опорному кадру. Механизмы сопоставления с могут использоваться для сопоставления объектов во множестве кадров. Кроме того, движущиеся объекты могут быть представлены во множестве кадров, например, из-за движения объекта или движения камеры. В качестве конкретного примера видео может показывать автомобиль, который движется по экрану во множестве кадров. Векторы движения могут использоваться для описания такого движения. Вектор движения - это двумерный вектор, который обеспечивает смещение от координат объекта в кадре до координат объекта в опорном кадре. По существу, межкадровое предсказание может кодировать блок изображения в текущем кадре как набор векторов движения, указывающих смещение от соответствующего блока в опорном кадре.[0065] At
[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
[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
[0069] Декодер принимает битовый поток и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующий синтаксис и видеоданные. Декодер использует данные синтаксиса из битового потока для определения разделов для кадров на этапе 111. Разделение должно соответствовать результатам разделения блока на шаге 103. Теперь описывается энтропийное кодирование/декодирование, используемое на этапе 111. Кодер делает множество вариантов в процессе сжатия, таких как выбор схем разбиения на блоки из нескольких возможных вариантов на основе пространственного позиционирования значений во входном изображении (-ях). Для передачи сигналов о точном выборе может использоваться большое количество интервалов. В данном контексте бин - это двоичное значение, которое обрабатывается как переменная (например, битовое значение, которое может варьироваться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбросить любые параметры, которые явно не подходят для конкретного случая, оставив набор допустимых вариантов. Затем каждому допустимому варианту присваивается кодовое слово. Длина кодовых слов основана на количестве допустимых опций (например, одна ячейка для двух вариантов, две ячейки для трех-четырех вариантов и т.д.). Затем кодер кодирует кодовое слово для выбранной опции. Эта схема уменьшает размер кодовых слов, поскольку кодовые слова настолько велики, насколько желательно, чтобы однозначно указать выбор из небольшого подмножества допустимых вариантов, в отличие от однозначного указания выбора из потенциально большого набора всех возможных вариантов. Затем декодер декодирует выбор, определяя набор допустимых опций аналогично кодеру. Определив набор допустимых опций, декодер может прочитать кодовое слово и определить выбор, сделанный кодером.[0069] The decoder receives the bitstream and begins the decoding process at
[0070] На этапе 113 декодер выполняет блочное декодирование. В частности, декодер использует обратное преобразование для формирования остаточных блоков. Затем декодер использует остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения в соответствии с разделением. Блоки предсказания могут включать в себя как блоки внутреннего предсказания, так и блоки межкадрового предсказания, сформированные в кодере на этапе 105. Блоки восстановленного изображения затем размещаются в кадрах восстановленного видеосигнала в соответствии с данными разделения, определенными на этапе 111. Синтаксис для этапа 113 также может передаваться в битовом потоке посредством энтропийного кодирования, как описано выше.[0070] At
[0071] На этапе 115 выполняется фильтрация кадров восстановленного видеосигнала аналогично этапу 107 в кодере. Например, фильтры подавления шума, фильтры деблокирования, адаптивные контурные фильтры и фильтры SAO могут применяться к кадрам для удаления артефактов блокировки. После фильтрации кадров видеосигнал может выводиться на дисплей на этапе 117 для просмотра конечным пользователем.[0071] At
[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)
[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
[0074] Компонент 211 общего управления кодером выполнен с возможностью принятия решений, связанных с кодированием изображений видеопоследовательности в битовый поток в соответствии с ограничениями приложения. Например, компонент 211 общего управления кодером управляет оптимизацией скорости передачи/размера битового потока по сравнению с качеством восстановления. Такие решения могут быть приняты на основе доступности дискового пространства/полосы пропускания и запросов разрешения изображения. Компонент 211 общего управления кодером также управляет использованием буфера с учетом скорости передачи, чтобы уменьшить проблемы опустошения и переполнения буфера. Чтобы управлять этими проблемами, компонент 211 общего управления кодером управляет разделением, предсказанием и фильтрацией посредством других компонентов. Например, компонент 211 общего управления кодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшения сложности сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером управляет другими компонентами системы 200 кодека, чтобы сбалансировать качество восстановления видеосигнала с проблемами скорости передачи данных. Компонент 211 общего управления кодером создает данные управления, которые управляют работой других компонентов. Управляющие данные также направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовом потоке, чтобы сигнализировать параметры для декодирования в декодере.[0074] General
[0075] Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для межкадрового предсказания. Кадр или слайс разделенного видеосигнала 201 может быть разделен на множество видеоблоков. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют кодирование с межкадровым предсказанием принятого видеоблока относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодека может выполнять множество проходов кодирования, например, чтобы выбрать соответствующий режим кодирования для каждого блока видеоданных.[0075] The divided
[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
[0077] В некоторых примерах система 200 кодека может вычислять значения для положений субцелочисленных пикселей опорных изображений, сохраненных в компоненте 223 буфера декодированных изображений. Например, система 200 видеокодека может интерполировать значения положений четверти пикселя, положений одной восьмой пикселя или других положений дробных пикселей опорного изображения. Следовательно, компонент 221 оценки движения может выполнять поиск движения относительно положений полных пикселей и положений дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для PU видеоблока в межкадровом кодированном слайсе путем сравнения положения PU с положением блока предсказания опорного изображения. Компонент 221 оценки движения выводит вычисленный вектор движения как данные движения для компонента 231 форматирования заголовка и CABAC для кодирования и движения в компонент 219 компенсации движения.[0077] In some examples,
[0078] Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать в себя выборку или формирование блока предсказания на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, в некоторых примерах компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего видеоблока компонент 219 компенсации движения может определить местонахождение блока предсказания, на который указывает вектор движения. Затем формируется остаточный видеоблок путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, а компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок предсказания и остаточный блок направляются в компонент 213 масштабирования и квантования преобразования.[0078] The motion compensation performed by the
[0079] Разделенный видеосигнал 201 также отправляется компоненту 215 оценки внутри изображения и компоненту 217 предсказания внутри изображения. Как и в случае компонента 221 оценки движения и компонента 219 компенсации движения, компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения могут быть сильно интегрированы, но проиллюстрированы отдельно для концептуальных целей. Компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения предсказывают текущий блок относительно блоков в текущем кадре в качестве альтернативы межкадровому предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 оценки внутри изображения определяет режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах компонент 215 оценки внутри изображения выбирает соответствующий режим внутреннего предсказания для кодирования текущего блока из множества проверенных режимов внутреннего предсказания. Выбранные режимы внутреннего предсказания затем направляются в компонент 231 форматирования заголовка и CABAC для кодирования.[0079] The divided
[0080] Например, компонент 215 оценки внутри изображения вычисляет значения скоростного искажения, используя анализ скоростного искажения для различных тестируемых режимов внутреннего предсказания, и выбирает режим внутреннего предсказания, имеющий лучшие характеристики скоростного искажения среди тестированных режимов. Анализ искажения скорости обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для создания закодированного блока, а также скорость передачи данных (например, количество битов), используемую для создания закодированного блока. Компонент 215 оценки внутри изображения вычисляет отношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутреннего предсказания показывает наилучшее значение искажения скорости для блока. Кроме того, компонент 215 оценки внутри изображения может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием режима моделирования глубины (DMM, depth modeling mode) на основе оптимизации скорости-искажения (RDO, rate-distortion optimization ).[0080] For example, the
[0081] Компонент 217 предсказания внутри изображения может формировать остаточный блок из блока предсказания на основе выбранных режимов внутреннего предсказания, определенных компонентом 215 оценки внутри изображения, когда он реализован на кодере, или считывать остаточный блок из битового потока, когда реализован на декодере. Остаточный блок включает в себя разницу в значениях между блоком предсказания и исходным блоком, представленную в виде матрицы. Остаточный блок затем пересылается в компонент 213 масштабирования и квантования преобразования. Компонент 215 оценки внутри изображения и компонент 217 предсказания внутри изображения могут работать как с компонентами яркости, так и с компонентами цветности.[0081] The
[0082] Компонент 213 масштабирования и квантования преобразования выполнен с возможностью дополнительного сжатия остаточного блока. Компонент 213 масштабирования и квантования преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT, discrete cosine transform), дискретное синусоидальное преобразование (DST, discrete sine transform) или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий значения коэффициентов остаточного преобразования. Также можно использовать вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Компонент 213 масштабирования и квантования преобразования также выполнен с возможностью масштабирования преобразованной остаточной информации, например, на основе частоты. Такое масштабирование включает в себя применение масштабного коэффициента к остаточной информации, так что разная частотная информация квантуется с разной степенью детализации, что может повлиять на окончательное визуальное качество восстановленного видео. Компонент 213 масштабирования и квантования преобразования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения скорости передачи битов. Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена путем регулировки параметра квантования. В некоторых примерах компонент 213 масштабирования и квантования преобразования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовом потоке.[0082] The transform scaling and
[0083] Компонент 229 масштабирования и обратного преобразования применяет обратную операцию компонента 213 масштабирования и квантования преобразования для поддержки оценки движения. Компонент 229 масштабирования и обратного преобразования применяет обратное масштабирование, преобразование и/или квантование для восстановления остаточного блока в области пикселей, например, для последующего использования в качестве опорного блока, который может стать блоком предсказания для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения может вычислять опорный блок, добавляя остаточный блок обратно к соответствующему блоку предсказания для использования при оценке движения более позднего блока/кадра. Фильтры применяются к восстановленным опорным блокам для уменьшения артефактов, возникающих во время масштабирования, квантования и преобразования. В противном случае такие артефакты могут вызвать неточное предсказание (и создать дополнительные артефакты) при предсказании последующих блоков.[0083] The scaling and
[0084] Компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 масштабирования и обратного преобразования может быть объединен с соответствующим блоком предсказания из компонента 217 предсказания внутри изображения и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах вместо этого фильтры могут применяться к остаточным блокам. Как и в случае с другими компонентами на фиг. 2, компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров сильно интегрированы и могут быть реализованы вместе, но изображены отдельно для концептуальных целей. Фильтры, применяемые к восстановленным опорным блокам, применяются к конкретным пространственным областям и включают несколько параметров для настройки того, как такие фильтры применяются. Компонент 227 анализа управления фильтрами анализирует восстановленные опорные блоки, чтобы определить, где такие фильтры должны быть применены, и устанавливает соответствующие параметры. Такие данные пересылаются в компонент 231 форматирования заголовка и CABAC в качестве данных управления фильтром для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтром. Фильтры могут включать в себя фильтр удаления блочности, фильтр подавления шума, фильтр SAO и адаптивный контурный фильтр. Такие фильтры могут применяться в пространственной/пиксельной области (например, в восстановленном блоке пикселей) или в частотной области, в зависимости от примера.[0084] Filter
[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
[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
[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
[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
[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
[0090] Фиг. 4 - это блок-схема, иллюстрирующая примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодека и/или реализации этапов 111, 113, 115 и/или 117 способа 100 работы.. Декодер 400 принимает битовый поток, например, от кодера 300 , и формирует восстановленный выходной видеосигнал на основе битового потока для отображения конечному пользователю.[0090] FIG. 4 is a block diagram illustrating an
[0091] Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как CAVLC, CABAC, SBAC, PIPE-кодирование или другие методы энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка, чтобы обеспечить контекст для интерпретации дополнительных данных, закодированных как кодовые слова в битовом потоке. Декодированная информация включает в себя любую желаемую информацию для декодирования видеосигнала, такую как общие данные управления, данные управления фильтром, информацию о разделах, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования направляются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.[0091] The bitstream is received by
[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
[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
[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
[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
[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
[0101] Изображение 502 IRAP обеспечивает следующие две важные функции/преимущества. Во-первых, наличие изображения 502 IRAP указывает, что процесс декодирования может начинаться с этого изображения. Эта функциональность позволяет использовать функцию произвольного доступа, в которой процесс декодирования начинается в этой позиции в битовом потоке, не обязательно в начале битового потока, пока изображение 502 IRAP присутствует в этой позиции. Во-вторых, наличие изображения 502 IRAP обновляет процесс декодирования, так что кодированное изображение, начинающееся с изображения 502 IRAP, исключая изображения RASL, кодируется без какой-либо ссылки на предыдущие изображения. Наличие изображения 502 IRAP, присутствующего в битовом потоке, следовательно, остановит любую ошибку, которая может произойти во время декодирования кодированных изображений до изображения 502 IRAP для распространения на изображение 502 IRAP и те изображения, которые следуют за изображением 502 IRAP в порядке 508 декодирования.[0101]
[0102] Хотя изображения 502 IRAP обеспечивают важные функциональные возможности, они снижают эффективность сжатия. Присутствие изображения 502 IRAP вызывает скачок скорости передачи данных. Это снижение эффективности сжатия вызвано двумя причинами. Во-первых, поскольку изображение 502 IRAP является изображением с внутренним предсказанием, само изображение потребует относительно большего количества битов для представления по сравнению с другими изображениями (например, ведущими изображениями 504, замыкающими изображениями 506), которые являются изображениями с межкадровым предсказанием. Во-вторых, поскольку наличие изображения 502 IRAP нарушает временное предсказание (это потому, что декодер обновляет процесс декодирования, в котором одним из действий процесса декодирования является удаление предыдущих опорных изображений в буфере декодированных изображений (DPB )) изображение 502 IRAP приводит к тому, что кодирование изображений, следующих за изображением 502 IRAP в порядке 508 декодирования, становится менее эффективным (то есть для представления требуется больше битов), потому что они имеют меньше опорных изображений для их кодирования с межкадровым предсказанием.[0102] Although
[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,
[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
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.
[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.
[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.
[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
[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
[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
[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
[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
[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
[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
[0153] Однонаправленное межкадровое предсказание 700 использует опорный кадр 730 с опорным блоком 731 для предсказания текущего блока 711 в текущем кадре 710. Опорный кадр 730 может быть размещен во времени после текущего кадра 710, как показано (например, как последующий опорный кадр), но также может быть временно расположен перед текущим кадром 710 (например, как предыдущий опорный кадр) в некоторых примерах. Текущий кадр 710 является примером кадра/изображения, кодируемого/декодируемого в конкретное время. Текущий кадр 710 содержит объект в текущем блоке 711, который соответствует объекту в опорном блоке 731 опорного кадра 730. Опорный кадр 730 - это кадр, который используется в качестве опорного для кодирования текущего кадра 710, а опорный блок 731 - это блок в опорном кадре 730, который содержит объект, также содержащийся в текущем блоке 711 текущего кадра 710.[0153]
[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]
[0155] Фиг. 8 - схематическая диаграмма, иллюстрирующая пример двунаправленного межкадрового предсказания 800. Двунаправленное межкадровое предсказание может использоваться для определения векторов движения для кодированных и/или декодированных блоков, созданных при разделении изображения.[0155] FIG. 8 is a schematic diagram illustrating an example of
[0156] Двунаправленное межкадровое предсказание 800 аналогично однонаправленному межкадровому предсказанию 700, но использует пару опорных кадров для предсказания текущего блока 811 в текущем кадре 810. Следовательно, текущий кадр 810 и текущий блок 811 по существу аналогичны текущему кадру 710 и текущему блоку 711 соответственно. Текущий кадр 810 позиционируется во времени между предыдущим опорным кадром 820, который возникает перед текущим кадром 810 в видеопоследовательности, и последующим опорным кадром 830, который происходит после текущего кадра 810 в видеопоследовательности. Предыдущий опорный кадр 820 и последующий опорный кадр 830 в остальном по существу аналогичны опорному кадру 730.[0156]
[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
[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
[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
[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
[00161] Фиг. 9 иллюстрирует битовый поток 900 видео. В данном контексте битовый поток 900 видео также может называться кодированным битовым потоком видео, битовым потоком или. Как показано на фиг. 9, битовый поток 900 содержит набор 902 параметров последовательности (SPS, sequence parameter set), набор 904 параметров изображения (PPS, picture parameter set), заголовок 906 слайса и данные 908 изображения.[00161] FIG. 9 illustrates a
[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]
[00163] Данные 908 изображения по фиг. 9 содержат данные, связанные с изображениями или видео, которые кодируются или декодируются. Данные 908 изображения могут называться просто полезной нагрузкой или данными, переносимыми в битовом потоке 900. В варианте осуществления данные 908 изображения содержат CVS 914 (или CLVS), содержащие множество изображений 910. CVS 914 представляет собой кодированную видеопоследовательность для каждой видеопоследовательности кодированного уровня (CLVS, coded layer video sequence) в битовом потоке 900 видео. Примечательно, что CVS и CLVS одинаковы, когда битовый поток видео включает в себя один уровень. CVS и CLVS отличаются только тогда, когда битовый поток 900 видео включает в себя множество уровней.[00163]
[00164] Как показано на фиг. 9, слайс каждого изображения 910 может содержаться в его собственном блоке 912VCL NAL. Набор блоков 912 VCL NAL в CVS 914 может называться блоком доступа.[00164] As shown in FIG. 9, a slice of each
[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
[00166] Каждый блок 1014 может быть разделен на множество выборок 1016 (например, пикселей). В варианте осуществления размер каждого блока 1014 измеряется в выборках яркости. Хотя шестнадцать выборок 1016 изображены на фиг. 10, в практических приложениях можно использовать больше или меньше выборок.[00166] Each
[00167] В варианте осуществления к изображению 1010 применяется окно 1060 соответствия. Как отмечено выше, окно 1060 соответствия используется для обрезки, уменьшения или иного изменения размера изображения 1010 (например, восстановленного/декодированного изображения) в процессе подготовки изображения к выводу. Например, декодер может применить окно соответствия 1060 к изображению 1010, чтобы обрезать, корректировать, сжимать или иным образом изменять размер изображения 1010 изображения до того, как изображение будет выведено для отображения пользователю. Размер окна соответствия 1060 определяется путем применения смещения 1062 вверх окна соответствия, смещения 1064 вниз окна соответствия, смещения 1066 влево окна соответствия и смещения 1068 вправо окна соответствия к изображению 1010 для уменьшения размера изображения 1010 перед выводом. То есть выводится только часть изображения 1010, которая существует в окне 1060 соответствия. Таким образом, изображение 1010 обрезается по размеру перед выводом. В варианте осуществления, каждый первый набор параметров изображения и второй набор параметров изображения относятся к одному и тому же набору параметров последовательности и имеют одинаковые значения ширины изображения и высоты изображения. По существу, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения для окна соответствия.[00167] In an embodiment, a
[00168] Фиг. 11 - вариант осуществления способа 1100 декодирования, реализованного видеодекодером (например, видеодекодером 400). Способ 1100 может выполняться после того, как декодированный битовый поток был прямо или косвенно принят от видеокодера (например, видеокодера 300). Способ 1100 улучшает процесс декодирования, поддерживая одинаковый размер окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения. Таким образом, передискретизация опорного изображения (RPR, reference picture resampling) может оставаться включенной или включенной для всей CVS. Путем поддержания согласованного размера окна соответствия для наборов параметров изображения, имеющих одинаковый размер изображения, эффективность кодирования может быть повышена. Следовательно, с практической точки зрения производительность кодека улучшается, что приводит к лучшему взаимодействию с пользователем.[00168] FIG. 11 illustrates an embodiment of a
[00169] В блоке 1102 видеодекодер принимает первый набор параметров изображения (например, ppsA) и второй набор параметров изображения (например, ppsB), каждый из которых относится к одному и тому же набору параметров последовательности. Когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия. В варианте осуществления ширина изображения и высота изображения измеряются в выборках яркости.[00169] At
[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
[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
[00177] На этапе 1202 видеокодер формирует первый набор параметров изображения и второй набор параметров изображения, каждый из которых относится к одному и тому же набору параметров последовательности. Когда первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения ширины и высоты изображения, первый набор параметров изображения и второй набор параметров изображения имеют одинаковые значения окна соответствия. В варианте осуществления ширина изображения и высота изображения измеряются в выборках яркости.[00177] At
[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
[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.
[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.
[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
[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
[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.
[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
[00260] Устройство 1300 видеокодирования может также включать в себя устройства 1380 ввода и/или вывода (I/O, input/output) для передачи данных пользователю и от пользователя. Устройства 1380 ввода-вывода могут включать в себя устройства вывода, такие как дисплей для отображения видеоданных, динамики для вывода аудиоданных и т.д. Устройства 1380 ввода-вывода могут также включать в себя устройства ввода, такие как клавиатура, мышь, трекбол и т.д., и/или соответствующие интерфейсы для взаимодействия с такими устройствами вывода.[00260]
[00261] Память 1360 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 1360 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM, read-only memory), оперативную память (RAM, random access memory), троичную память с адресацией по содержимому (TCAM, ternary content-addressable memory) и/или статическую память с произвольным доступом (SRAM, static random-access memory).[00261]
[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
[00263] Устройство 1402 видеокодирования включает в себя средство 1403 хранения. Средство 1403 хранения соединено по меньшей мере с одним из средств 1401 приема или средства 1407 передачи. Средство 1403 хранения выполнено с возможностью хранения инструкций. Устройство 1402 видеокодирования также включает в себя средство 1405 обработки. Средство 1405 обработки соединено со средством 1403 хранения. Средство 1405 обработки выполнено с возможностью выполнения инструкций, хранящихся в средстве 1403 хранения, для осуществления способов.[00263]
[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)
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)
| 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)
| 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 |