RU2783348C1 - Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter - Google Patents
Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter Download PDFInfo
- Publication number
- RU2783348C1 RU2783348C1 RU2021119570A RU2021119570A RU2783348C1 RU 2783348 C1 RU2783348 C1 RU 2783348C1 RU 2021119570 A RU2021119570 A RU 2021119570A RU 2021119570 A RU2021119570 A RU 2021119570A RU 2783348 C1 RU2783348 C1 RU 2783348C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- predicted
- blocks
- value
- boundary
- Prior art date
Links
Images
Abstract
Description
Область техники, к которой относится изобретениеThe field of technology to which the invention belongs
Варианты осуществления настоящего изобретения (раскрытия) в основном относятся к области обработки изображения и, более конкретно, к кодеру, декодеру и соответствующим способам получения граничной мощности фильтра деблокинга.Embodiments of the present invention (disclosure) mainly relate to the field of image processing and, more specifically, to an encoder, a decoder, and corresponding methods for obtaining a deblocking filter cutoff power.
Уровень техникиState of the art
Кодирование видео (кодирование и декодирование видео) используется в широком диапазоне приложений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu- Ray диски, системы сбора и редактирования видеоконтента и в приложениях видеокамер безопасности. Video encoding (video encoding and decoding) is used in a wide range of digital video applications, such as digital television broadcast, video transmission over the Internet and mobile networks, real-time conversational applications such as video chat, video conferencing, DVD and Blu-ray discs. , video content collection and editing systems and security camera applications.
Объем видеоданных, необходимых для изображения даже относительно короткого видео, может быть существенным, что может затруднить передачу данных в сети связи с ограниченной пропускной способностью. Таким образом, в современных сетях связи до передачи видеоданные обычно сжимаются. Размер видео также имеет значение, поскольку ресурсы памяти могут быть ограничены для хранения видео в устройстве хранения. Устройства сжатия видео часто используют программное обеспечение и/или аппаратное обеспечение на источнике для кодирования видеоданных до передачи или хранения, тем самым, уменьшая объем данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в точке назначения устройством распаковки видео, которое декодирует видеоданные. Благодаря ограниченным сетевым ресурсам и постоянно растущим требованиям более высокого качества видео, требуются усовершенствованные технологии сжатия и распаковки, которые повышают коэффициент сжатия практически без ухудшения качества изображения.The amount of video data required to display even a relatively short video can be significant, which can make it difficult to transfer data over a communication network with limited bandwidth. Thus, in modern communication networks, video data is usually compressed prior to transmission. The size of the video also matters because memory resources may be limited to store the video on the storage device. Video compression devices often use source software and/or hardware to encode video data prior to transmission or storage, thereby reducing the amount of data required to represent digital video images. The compressed data is then received at the destination by a video decompressor, which decodes the video data. With limited network resources and ever-increasing demands for higher video quality, advanced compression and decompression technologies are required that increase the compression ratio with little or no degradation in image quality.
Сущность изобретенияThe essence of the invention
Варианты осуществления настоящего изобретения предлагают устройства и способы кодирования и декодирования в соответствии с независимыми пунктами формулы изобретения.Embodiments of the present invention provide devices and methods for encoding and decoding in accordance with the independent claims.
Вышеуказанные и другие задачи настоящего изобретения решаются посредством независимых пунктов формула изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.The above and other objects of the present invention are solved by independent claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.
Согласно первому аспекту изобретение относится к способу кодирования, в котором кодирование включает в себя декодирование или кодирование, способ включает в себя: определение, предсказан ли, по меньшей мере, один из двух блоков с использованием CIIP (или MH) предсказания, в котором два блока включают в себя первый блок (блок Q) и второй блок (блок Р) и, в котором два блока ассоциированы с границей. Способ также включает в себя: установку граничной мощности (Bs) границы на первое значение, когда, по меньшей мере один из двух блоков является блоком с CIIP; или установку граничной мощности (Bs) границы на второе значение, когда ни один из двух блоков не является блоком с CIIP.According to a first aspect, the invention relates to an encoding method in which encoding includes decoding or encoding, the method includes: determining whether at least one of two blocks is predicted using CIIP (or MH) prediction, in which two blocks include a first block (Q block) and a second block (P block) and in which two blocks are associated with a boundary. The method also includes: setting a boundary power (Bs) of the boundary to a first value when at least one of the two blocks is a CIIP block; or setting the boundary power (Bs) of the boundary to a second value when neither of the two blocks is a CIIP block.
Способ по первому аспекту изобретения может быть выполнен устройством в соответствии со вторым аспектом изобретения. Устройство в соответствии со вторым аспектом изобретения включает в себя блок определения, выполненный с возможностью определять, предсказывается ли, по меньшей мере, один из двух блоков с применением комбинированного внешнего-внутреннего предсказания (CIIP), в котором два блока включают в себя первый блок (блок Q) и второй блок (блок Р) и, в котором два блока ассоциированы с границей. Устройство в соответствии со вторым аспектом изобретения также включает в себя блок установки, выполненный с возможностью устанавливать граничную мощность (Bs) границы на первое значение, когда, по меньшей мере, один из двух блоков предсказывается с применением CIIP, и устанавливать граничную мощность (Bs) границы на второе значение, когда ни один из двух блоков не предсказан с применением CIIP.The method according to the first aspect of the invention can be performed by the device according to the second aspect of the invention. The device according to the second aspect of the invention includes a determination unit configured to determine whether at least one of the two blocks is predicted using combined inter-intra prediction (CIIP), in which the two blocks include the first block ( block Q) and a second block (block P) and in which two blocks are associated with the boundary. The device according to the second aspect of the invention also includes a setting unit configured to set the border power (Bs) of the border to a first value when at least one of the two blocks is predicted using CIIP, and set the border power (Bs) bounds to the second value when neither of the two blocks is predicted using CIIP.
Дополнительные признаки и формы реализации способа согласно второму аспекту изобретения соответствуют признакам и формам реализации устройства в соответствии с первым аспектом изобретения.Additional features and forms of implementation of the method according to the second aspect of the invention correspond to the features and forms of implementation of the device in accordance with the first aspect of the invention.
Согласно третьему аспекту изобретение относится к устройству для декодирования видеопотока, которое включает в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ в соответствии с первым аспектом.According to a third aspect, the invention relates to a device for decoding a video stream, which includes a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the first aspect.
Согласно четвертому аспекту изобретение относится к устройству для кодирования видеопотока, которое включает в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ в соответствии с первым аспектом.According to a fourth aspect, the invention relates to a device for encoding a video stream, which includes a processor and a memory. The memory stores instructions that cause the processor to execute the method according to the first aspect.
Согласно пятому аспекту предложен машиночитаемый носитель, который хранит по нем инструкции, которые при выполнении, побуждают один или несколько процессоров кодировать видеоданные. Инструкции побуждают один или несколько процессоров выполнять способ в соответствии с первым или вторым аспектом или любым возможным вариантом осуществления первого аспекта.According to a fifth aspect, a computer-readable medium is provided that stores instructions thereon that, when executed, cause one or more processors to encode video data. The instructions cause one or more processors to execute a method in accordance with the first or second aspect, or any possible embodiment of the first aspect.
Согласно шестому аспекту, изобретение относится к компьютерной программе, содержащей программный код для выполнения способа на компьютере, в соответствии с первым аспектом или любым возможным вариантом осуществления первого аспекта.According to a sixth aspect, the invention relates to a computer program containing program code for executing a method on a computer according to the first aspect or any possible embodiment of the first aspect.
Согласно вариантам осуществления изобретения, путем установки граничной мощности на первое значение (например, установлено на 2), когда, по меньшей мере, один из двух блоков является блоком с CIIP, эффективность фильтрации деблокинга краев блока, которые предсказываются с применением CIIP предсказания, увеличивается.According to embodiments of the invention, by setting the edge power to a first value (e.g., set to 2) when at least one of the two blocks is a CIIP block, the deblocking filtering efficiency of block edges that are predicted using CIIP prediction is increased.
В прилагаемых чертежах и описании изложено подробное описание одного или нескольких вариантов осуществления. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.The accompanying drawings and description set forth a detailed description of one or more embodiments. Other features, objects and advantages will be apparent from the description, drawings and claims.
Краткое описание чертежейBrief description of the drawings
Далее приведено подробное описание вариантов осуществления настоящего изобретения со ссылкой на прилагаемые чертежи, в которых:The following is a detailed description of embodiments of the present invention with reference to the accompanying drawings, in which:
фиг. 1А является блок-схемой, показывающей пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1A is a block diagram showing an example of a video coding system capable of implementing embodiments of the invention;
фиг. 1В является блок-схемой, показывающей другой пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1B is a block diagram showing another example of a video coding system capable of implementing embodiments of the invention;
фиг. 2 представляет собой блок-схему, показывающую пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 2 is a block diagram showing an example of a video encoder capable of implementing embodiments of the invention;
фиг. 3 представляет собой блок-схему, показывающую примерную структуру видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 3 is a block diagram showing an exemplary structure of a video encoder capable of implementing embodiments of the invention;
фиг. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;fig. 4 is a block diagram illustrating an example of an encoding device or a decoding device;
фиг. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;fig. 5 is a block diagram illustrating another example of an encoding device or a decoding device;
фиг. 6А показывает пример всех границ субблока в CU с применением комбинированного внешнего-внутреннего предсказания (CIIP);fig. 6A shows an example of all subblock boundaries in a CU using combined inter-intra prediction (CIIP);
фиг. 6В показывает пример P и Q блоков границы;fig. 6B shows an example of P and Q border blocks;
фиг. 7 показан пример процесса получения Bs в варианте 1 осуществления;fig. 7 shows an example of a Bs production process in
фиг. 8 показывает пример процесса получения Bs в VVC;fig. 8 shows an example of a process for obtaining Bs in VVC;
фиг. 9 показывает пример процесса получения Bs в варианте 2 осуществления;fig. 9 shows an example of a Bs production process in
фиг. 10 показывает пример процесса получения Bs в варианте 3 осуществления;fig. 10 shows an example of a Bs production process in Embodiment 3;
фиг. 11 показывает пример деблокинга всех краев субблока в CU, который перекрывается с (выровнен с) 8x8 сеткой выборки;fig. 11 shows an example of deblocking all edges of a subblock in a CU that overlaps with (aligns with) an 8x8 sample grid;
фиг. 12 показывает пример деблокинга всех краев субблока в CU, который перекрывается с (выровнен с) 4x4 сеткой выборки;fig. 12 shows an example of deblocking all edges of a subblock in a CU that overlaps with (aligns with) a 4x4 sample grid;
фиг. 13 представляет собой блок-схему, показывающую пример структуры устройства для процесса получения граничной мощности;fig. 13 is a block diagram showing an example of a device structure for a power edge acquisition process;
фиг. 14 представляет собой блок-схему, показывающую примерную структуру системы 3100 поставки контента, которая реализует службу доставки контента; иfig. 14 is a block diagram showing an exemplary structure of a content delivery system 3100 that implements a content delivery service; and
фиг. 15 является блок-схемой, показывающей примерную структуру оконечного устройства.fig. 15 is a block diagram showing an exemplary structure of a terminal device.
В последующем описании идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентные признакам, если явно не указано иное.In the following description, identical reference numerals refer to identical or at least functionally equivalent features, unless expressly stated otherwise.
Описание вариантов осуществленияDescription of Embodiments
В нижеследующем описании приведена ссылка на сопроводительные чертежи, которые составляют часть настоящего изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form part of the present invention and show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present invention may be used. Obviously, embodiments of the invention can be used in other aspects and contain structural or logical changes not shown in the drawings. Therefore, the following detailed description should not be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
Например, очевидно, что настоящее изобретение с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и наоборот. Например, если описан один или несколько конкретных этапов способа, соответствующее устройство может включать в себя один или несколько блоков, например, функциональные блоки, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или несколько из множества этапов) даже, если такой один или несколько блоков не описаны и не проиллюстрированы явно на чертежах. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множество блоков) даже, если такой один или множество этапов явно не описаны или не проиллюстрированы на чертежах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is obvious that the present invention with the described method can also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, to perform the one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks , each of which performs one or more of a plurality of steps) even if such one or more units are not described and illustrated explicitly in the drawings. On the other hand, for example, if a particular device is described in terms of one or more blocks, such as functional blocks, the corresponding method may include one step to perform the functionality of one or more blocks (for example, one step to perform the functionality of one or more blocks). blocks, or a plurality of steps, each of which performs the functionality of one or more of the plurality of blocks) even if such one or more steps is not explicitly described or illustrated in the drawings. In addition, it is understood that features of the various exemplary embodiments and/or aspects described herein may be combined with one another unless specifically noted otherwise.
Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» можно использовать термин «кадр» или «изображение» как синонимы в области кодирования видео. Кодирование видео, используемое в настоящем изобретении (или настоящем раскрытии), указывает либо кодирование видео, либо декодирование видео. Кодирование видео выполняется на стороне источника, обычно, содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать как относящиеся либо к «кодированию», либо к «декодированию» видеопоследовательности. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).Video coding generally refers to the processing of a sequence of images that form a video or video sequence. Instead of the term "image", the term "frame" or "image" can be used as synonyms in the field of video coding. The video coding used in the present invention (or the present disclosure) indicates either video coding or video decoding. Video encoding is performed at the source side, typically involving processing (eg, by compressing) the source video images to reduce the amount of data needed to represent the video images (for more efficient storage and/or transmission). Video decoding is performed on the destination side and usually contains inverse processing compared to the encoder for recovering video images. Embodiments relating to "encoding" video images (or images in general, as will be explained later) should be understood to refer to either "encoding" or "decoding" a video sequence. The combination of an encoding part and a decoding part is also called CODEC (Coding and Decoding).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, то есть, восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования, для уменьшения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, то есть, качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.In the case of lossless video coding, the original video images can be reconstructed, that is, the reconstructed video images have the same quality as the original video images (assuming there is no transmission loss or other data loss during storage or transmission). In the case of lossy video coding, additional compression is performed, for example by quantization, to reduce the amount of data representing video images that cannot be fully reconstructed in the decoder, i.e., the quality of the reconstructed video images is lower or worse compared to the quality of the original video images.
Несколько стандартов кодирования видео принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказания в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть, кодируется, на уровне блока (видеоблока), например, с использованием пространственного (внутреннее изображение) предсказания и временного (внешнее изображение) предсказания для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блока, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжаты), тогда как в декодере частично выполняется обратная обработка по сравнению с кодером к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или повторно восстанавливать для обработки, то есть, кодировать, последующие блоки.Several video coding standards belong to the group of "hybrid lossy video codecs" (ie, combine spatial and temporal sample-domain prediction and 2D transform coding to apply transform-domain quantization). Each picture of a video sequence is usually divided into a set of non-overlapping blocks, and encoding is usually done at the block level. In other words, in the encoder, video is usually processed, that is, encoded, at the block (video block) level, for example, using spatial (inner picture) prediction and temporal (outer picture) prediction to generate a prediction block, subtracting the prediction block from the current block ( block currently being processed/to be processed) to obtain a residual block, transforming the residual block, and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compressed), while the decoder partially performs inverse processing compared to with the encoder to the encoded or compressed block to reconstruct the current block for presentation. In addition, the encoder duplicates the processing cycle of the decoder so that both will generate identical predictions (eg, intra and inter prediction) and/or re-restore for processing, ie, encoding, subsequent blocks.
В следующих вариантах осуществления со ссылкой на фиг.1-3 приведено описание кодера 20, декодера 30 и системы 10 кодирования.In the following embodiments, the
Фиг.1A представляет собой блок-схему, иллюстрирующую пример системы 10 кодирования, например, системы 10 кодирования видео (или сокращенно, система 10 кодирования), которая может использовать способы этого настоящего изобретения. Видеокодер 20 (например, кодер 20) и видеодекодер 30 (например, декодер 30) системы 10 кодирования видео представляют собой примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении.1A is a block diagram illustrating an example of a
Как показано на фиг.1A, система 10 кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять данные 21 закодированного изображения, например, в устройство 14 назначения для декодирования данных 13 закодированного изображения.As shown in FIG. 1A, the
Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. возможно, содержать источник 16 изображения, препроцессор 18 (блок предварительной обработки), например, препроцессор 18 изображения и интерфейс связи или блок 22 связи.The
Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или любого вида изображения или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются часть изображения или изображения, которое должно быть закодировано), устройство генерирования, например процессор компьютерной графики для генерирования компьютерного анимированного изображения, или любое устройство для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, контент экрана, изображение виртуальной реальности (VR)) и/или любую их комбинацию (например, изображение дополненной реальности (AR)). Источником изображения может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения также могут называться необработанным изображением или данными 17 исходного изображения.Unlike the
Препроцессор 18 выполнен с возможностью принимать (необработанные) данные 17 изображения и выполнять предварительную обработку данных 17 изображения для получения предварительно обработанного изображения 19 или данных 19 предварительно обработанного изображения. Предварительная обработка выполняется препроцессором 18, которая, например, содержит обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Очевидно, что препроцессор 18 может быть возможным компонентом.The
Видеокодер 20 выполнен с возможностью принимать данные 19 предварительно обработанного изображения и предоставлять данные 21 закодированного изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.2).
Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и передавать данные 21 закодированного изображения (или любой их дополнительной обработанной версии) по каналу 13 связи в другое устройство, например, устройство 14 назначения или любое другое устройство для хранения или прямого восстановления.
Устройство 14 назначения содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (блок 32 постобработки) и устройство 34 отображения.
Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать данные 21 закодированного изображения (или любой их дополнительно обработанной версии), например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающее устройство, например, устройство хранения данных закодированного изображения, и предоставить данные 21 закодированного изображения в декодер 30.The communication interface 28 of the
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать данные 21 кодированного изображения или закодированные данные 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводная или беспроводная сеть или любая их комбинация, или любая частная и общественная сеть, или любая их комбинация.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковывать данные 21 закодированного изображения в соответствующий формат, например, пакеты и/или обрабатывать данные закодированного изображения с использованием любого вида кодирования передачи или обработки для передачи по каналу связи или сети связи.The
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью принимать переданные данные и обрабатывать передаваемые данные с использованием любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения данных 21 закодированного изображения.Communication interface 28 analogous to
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 13 закодированного изображения на фиг.1A, указывающей от устройства 12 источника к устройству 14 назначения или, как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и получать сообщения, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.Both the
Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставлять данные 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основании фиг.3 или фиг.5).The
Постпроцессор 32 устройства 14 назначения выполнен с возможностью пост-обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31, для получения данных 33 изображения после обработки, например, пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.The post processor 32 of the
Устройство 34 отображения устройства 14 назначения выполнено с возможностью принимать данные 33 изображения после обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из жидкокристаллических дисплеев (LCD), дисплеев на органических светодиодах (OLED), плазменных дисплеев, проекторов, микро-светодиодных дисплеев, жидких кристаллов на кремнии (LCoS), цифрового светового процессора (DLP) или любого другого дисплея.The display device 34 of the
Хотя фиг.1A изображает устройство 12 источника и устройство 14 назначения как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности. В таких вариантах осуществления устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although FIG. 1A depicts
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 12 источника и/или устройстве 14 назначения, как показано на фиг.1A, может варьироваться в зависимости от фактического устройства и реализации.As will be apparent to those skilled in the art based on the description, the presence and (exact) separation of functionality of various blocks or functions in
Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) или оба кодер 20 или декодер 30 может быть реализован посредством схемы обработки, как показано на фиг.1В, такой как один или несколько микропроцессоров, процессоров цифровых сигналов (DSPs), специальные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs), дискретная логика, оборудование или любые их комбинации. Кодер 20 может быть реализован посредством схемы 46 обработки для реализации различных модулей, как обсуждалось в отношении кодера 20 на фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной в данном документе. Декодер 30 может быть реализован через посредством схемы 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на фиг.3 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнять различные операции, как описано ниже. Как показано на фиг.5, если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или несколько процессоров для выполнения способов этого настоящего изобретения. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг.1B.Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30), or both encoder 20 or
Устройство 12 источника и устройство 14 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы служб контента или контент серверы доставки), широковещательное приемное устройство, широковещательное передающее устройство и т.п. и могут использовать или не использовать любой тип операционной системы. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для осуществления беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.
В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 1A, является просто примером, и способы настоящего изобретения могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство для кодирования видео может кодировать и сохранять данные в памяти, и/или устройство для декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в памяти и/или извлекают и декодируют данные из памяти.In some cases, the
Для удобства описания в настоящем документе описаны варианты осуществления изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального кодирования видео (VVC), стандарта кодирования видео следующего поколения, разработанного группой сотрудничества по кодированию видео (JCT-VC) группы экспертов ITU-T по кодированию видео (VCEG) и ISO/IEC группой экспертов по движущимся изображениям (MPEG). Для специалиста в данной области техники очевидно, что варианты осуществления изобретения не ограничиваются HEVC или VVC.For convenience of description, embodiments of the invention are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software, the next generation video coding standard developed by the Collaborative Video Coding Group (JCT-VC). ) ITU-T Video Coding Expert Group (VCEG) and ISO/IEC Moving Picture Expert Group (MPEG). For a person skilled in the art it is obvious that the embodiments of the invention are not limited to HEVC or VVC.
Кодер и способ кодированияEncoder and encoding method
Фиг.2 показывает блок-схему примерного видеокодера 20, который выполнен с возможностью реализации способов настоящего изобретения. В примере на фиг.2, видеокодер 20 содержит вход 202 (или входной интерфейс 202), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 обработки предсказания, блок 270 энтропийного кодирования и блок 272 выхода (или выходной интерфейс 272). Блок 260 обработки предсказания может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 выбора режима. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.2 shows a block diagram of an
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 обработки предсказания образуют прямой путь сигнала кодера 20, тогда как, например, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 244 внешнего предсказания и блок 254 внутреннего предсказания образуют обратный путь сигнала кодера, в котором обратный путь сигнала кодера соответствует пути сигнала декодера (см. декодер 30 на фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20.The
Изображения & разделение изображения (изображения и блоки)Images & image sharing (images and blocks)
Кодер 20 выполнен с возможностью принимать, например, через вход 201 изображение 17 (или данные 17 изображения), например, изображение последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут быть предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для простоты описания далее в настоящем документе упоминаться как изображение 17. Изображение 17 также упоминается, как текущее изображение или изображение, подлежащее кодированию (в частности, при кодировании видео для различия текущего изображения от других изображений, например, ранее закодированных и/или декодированных изображений одной и той же видеопоследовательности, то есть, видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или содержать три массива выборок. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или кратко, яркость) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или кратко, цветность) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в 4:2:0, 4:2:2 и 4:4:4 цветовой формат.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be called a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, that is, an image can be represented or contain three arrays of samples. In RGB format or color space, an image contains a corresponding array of red, green, and blue color samples. However, in video encoding, each pixel is usually represented in a luma and chrominance format or color space, such as YCbCr, which contains a luma component labeled Y (sometimes L is also used instead) and two chrominance components labeled Cb and Cr. The Y component of luminance (or briefly, luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance components (or briefly, chrominance) Cb and Cr represent components of chrominance or color information. Accordingly, an image in YCbCr format contains an array of luma samples of luminance sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). RGB images can be converted to YCbCr format and vice versa, a process also known as color conversion. If the image is monochrome, it can only contain an array of brightness samples. Accordingly, the image may be, for example, an array of luminance samples in monochrome format, or an array of luminance samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color format.
Варианты осуществления кодера 20 могут содержать блок разделения (не показан на фиг.2), выполненный с возможностью разделять изображение 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или блоками дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменять размер блока между изображениями, подмножествами или группами изображений и разделять каждое изображение на соответствующие блоки.Embodiments of
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью принимать непосредственно блок 203 изображения 17, например один, несколько или все блоки, образующие изображение 17. Блок 203 изображения также может упоминаться как текущий блок изображения или блок изображения, который должен быть кодирован. In additional embodiments, the video encoder may be configured to directly receive block 203 of image 17, such as one, several or all of the blocks that make up image 17. Image block 203 may also be referred to as the current image block or the image block to be encoded.
Подобно изображению 17, блок 203 изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или видов массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, представлять собой массив выборок MxN (M-столбец на N-строку) или MxN массив коэффициентов преобразования.Like image 17, image block 203 is again, or can be viewed as, a two-dimensional array or matrix of samples with intensity values (sample values), albeit smaller than image 17. In other words, block 203 may contain, for example, one array of samples (for example , a luma array in the case of a monochrome image 17 or a luminance or chrominance array in the case of a color image) or three arrays of samples (for example, a luminance array and two chrominance arrays in the case of a color image 17) or any other number and/or types of arrays, depending on the applied color format. The number of samples in the horizontal and vertical direction (or axis) of block 203 determines the size of block 203. Accordingly, the block may, for example, be an array of MxN samples (M-column per N-row) or an MxN array of transform coefficients.
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью кодировать изображение 17 блок за блоком, например, разделять и кодировать блок 203. Embodiments of
Вычисление остаткаRemainder Calculation
Блок 204 вычисления остатка выполнен с возможностью вычислять остаточный блок 205 (также обозначен как остаток 205) на основании блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 205 в области выборки.The
Преобразованиеtransformation
Блок 206 обработки преобразования выполнен с возможностью применять преобразования, например, дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST) на значениях выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.Transform processing
Блок 206 обработки преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, такие как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные приближения обычно масштабируются с определенным коэффициентом. Для сохранения нормы остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью два для операции сдвига, разрядности коэффициентов преобразования, компромисса между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например, блоком 312 обработки обратного преобразования в декодере 30) и соответствующие коэффициенты масштабирования для прямого преобразования, например, блоком 206 обработки преобразования в кодере 20, соответственно.Transform processing
Варианты осуществления видеокодера 20 (соответственно блока 206 обработки преобразования) могут быть выполнены с возможностью выводить параметры преобразования, например, тип преобразования или преобразования, например, непосредственно или закодированные или сжатые блоком 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.Embodiments of video encoder 20 (respectively, transform processing unit 206) may be configured to output transform parameters, such as the type of transform or transform, such as directly or encoded or compressed by entropy encoding unit 270, such that, for example,
КвантованиеQuantization
Блок 208 квантования выполнен с возможностью квантовать коэффициенты 207 преобразования для получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования также могут упоминаться как квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен с понижением до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры этапов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шага квантования), и большие параметры квантования могут соответствовать грубому квантованию (большие размеры шага квантования) или наоборот. Квантование может включать в себя деление по размеру шага квантования и соответствующее или обратное деквантование, например, блоком 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например HEVC, могут быть выполнены с возможностью использовать параметр квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающей в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования для восстановления нормы остаточного блока, который может быть изменен из-за масштабирования, используемого при аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантования могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и сигнализироваться из кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шага квантования.The quantization process may reduce the bit depth associated with some or all of the transform coefficients 207 . For example, an n-bit transform factor may be rounded down to an m-bit transform factor during quantization, where n is greater than m. The degree of quantization can be changed by adjusting the quantization parameter (QP). For example, for scalar quantization, different scaling may be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size may be indicated by a quantization parameter (QP). The quantization parameter may, for example, be an index to a predetermined set of applicable quantization step sizes. For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to coarse quantization (large quantization step sizes), or vice versa. Quantization may include division by the quantization step size and corresponding or inverse dequantization, for example by
Варианты осуществления видеокодера 20 (соответственно, блок 208 квантования) могут быть выполнены с возможностью выводить параметры квантования (QP), например, непосредственно или закодированы блоком 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.Embodiments of video encoder 20 (respectively, quantizer 208) may be configured to output quantization parameters (QPs), for example, directly or encoded by entropy coding unit 270, such that, for example,
Обратное квантованиеInverse quantization
Блок 210 обратного квантования выполнен с возможностью применять обратное квантование блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения схемы обратного квантования, применяемой блоком 208 квантования, на основании или с использованием того же размера шага квантования, что и блок 208 квантования. Деквантованные коэффициенты 211 также могут называться деквантованными остаточными коэффициентами 211 и соответствовать, хотя обычно не идентичны коэффициентам преобразования из-за потерь при квантовании, коэффициентам 207 преобразования.
Обратное преобразованиеReverse transformation
Блок 212 обработки обратного преобразования выполнен с возможностью применять обратное преобразование, применяемое блоком 206 обработки преобразования, например, обратное дискретное косинусное преобразование (DCT) или обратное дискретное синусоидальное преобразование (DST) для получения восстановленного остаточного блока 213 (или соответствующих деквантованных коэффициентов 213) в области выборки. Восстановленный остаточный блок 213 также может называться блоком 213 преобразования.The inverse
ВосстановлениеRecovery
Блок 214 восстановления (например, блок суммирования или сумматор 214) выполнен с возможностью добавлять блок 213 преобразования (то есть, восстановленный остаточный блок 213) к блоку 265 предсказания для получения восстановленного блока 215 в области выборки, например, путем сложения, выборка к выборке, значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.Restoration block 214 (e.g., adder or adder 214) is configured to add transform block 213 (i.e., reconstructed residual block 213) to prediction block 265 to obtain reconstructed block 215 in the sample area, for example, by addition, sample by sample, the sample values of the reconstructed
ФильтрацияFiltration
Блок 220 контурного фильтра (или коротко, «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215 для получения отфильтрованного блока 221 или, как правило, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра предназначен, например, для сглаживания пиксельных переходов или для иного способа повышения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным сдвигом (SAO) или другие фильтры, например двусторонний фильтр или адаптивный контурный фильтр (ALF), или фильтры повышения резкости или сглаживания, или коллаборативные фильтры или любую их комбинацию. Хотя блок 220 контурного фильтра показан на фиг.2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может упоминаться как фильтрованный восстановленный блок 221.The loop filter block 220 (or "loop filter" 220 for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221 or, typically, to filter the reconstructed samples to obtain filtered samples. The edge filter block is designed, for example, to smooth out pixel transitions or otherwise improve video quality. The loop filter block 220 may comprise one or more loop filters, such as a deblocking filter, an adaptive shift (SAO) filter, or other filters, such as a two-sided filter or an adaptive loop filter (ALF), or sharpening or smoothing filters, or collaborative filters or any combination of them. Although the loop filter block 220 is shown as a loop filter in FIG. 2, in other configurations, the loop filter block 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221.
Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра (такие как информация адаптивного смещения выборки), например, непосредственно или закодированные блоком 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively, loop filter unit 220) may be configured to output loop filter parameters (such as adaptive sample offset information), for example, directly or encoded by entropy encoding unit 270, so that, for example,
Буфер декодированных изображенийDecoded picture buffer
Буфер 230 декодированных изображений (DPB) может быть памятью опорных изображений, в которой хранятся данные опорных изображений для использования при кодировании видеоданных видеокодером 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память произвольного доступа (DRAM), включающая в себя синхронную DRAM (SDRAM), магниторезистивную RAM (MRAM), резистивную RAM (RRAM) или другие типы запоминающих устройств. Буфер 230 декодированных изображений (DPB) выполнен с возможностью хранить фильтрованный блок 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленные и отфильтрованные блоки 221 одного и того же текущего изображения или разных изображений, например, ранее восстановленные изображения, и могут предоставлять полные ранее реконструированные, то есть, декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. Буфер 230 декодированного изображения (DPB) также выполнен с возможностью хранить один или несколько нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованные восстановленные выборки, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра или любой другой дополнительно обработанной версией восстановленных блоков или выборок.Decoded picture buffer (DPB) 230 may be a reference picture memory that stores reference picture data for use in encoding video data by
Выбор режима (разделение и предсказание)Mode selection (separation and prediction)
Блок 260 обработки предсказания содержит блок 262 выбора режима, блок 244 внешнего предсказания и блок 254 внутреннего предсказания и выполнен с возможностью принимать или получать исходные данные изображения, например, исходный блок 203 (текущий блок 203 текущего изображения 17) и восстановленные данные изображения, например, фильтрованные и/или нефильтрованные восстановленные выборки или блоки одного и того же (текущего) изображения и/или из одного или множества ранее декодированных изображений, например, из буфера 230 декодированного изображения или других буферов (например, линейный буфер, не показан). Данные восстановленное изображение используется в качестве данных опорного изображения для предсказания, например, внешнее предсказание или внутреннее предсказание, для получения блока 265 предсказания или предиктора 265.The
Блок 260 обработки предсказания может быть выполнен с возможностью определять или выбирать разделение для режима предсказания текущего блока (включающее в себя отсутствие разделения) и режима предсказания (например, режим внутреннего или внешнего предсказания) и генерировать соответствующий блок 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления блока 260 обработки предсказания могут быть выполнены с возможностью выбирать разделение и режим предсказания (например, из тех, которые поддерживаются или доступны для блока 260 обработки предсказания), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает оба. Блок 260 обработки предсказания может быть выполнен с возможностью определять режим разделения и предсказания на основании оптимизации искажения скорости (RDO), то есть, выбирать режим предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимум», «оптимальный» и т.д. в этом контексте не обязательно относятся к общему «лучшему», «минимуму», «оптимальному» и т.д., но также могут относиться к выполнению прекращения или критерий выбора, такой как значение, превышающее или падающее ниже порогового значения, или другие ограничения, потенциально ведущие к «неоптимальному выбору», но уменьшающие сложность и время обработки.Embodiments of
Другими словами, блок разделения может быть выполнен с возможностью разделять блок 203 на уменьшенные блоки или субблоки (которые вновь образуют блоки), например, итеративно с использованием разделения дерева квадрантов (QT), двоичного разделения (BT) или троичного дерева (TT) или любой их комбинации и для выполнения, например, предсказания для каждого из разделов блоков или субблоков, в котором выбор режима содержит выбор древовидной структуры разделенного блока 203 и режимы предсказания применяются к каждому из разделов или субблокам.In other words, the partitioner may be configured to partition the block 203 into smaller blocks or subblocks (which again form blocks), for example, iteratively using quadtree partitioning (QT), binary partitioning (BT), or ternary tree (TT), or any combinations thereof, and to perform, for example, prediction for each of the partitions of blocks or subblocks, wherein the mode selection comprises selecting a tree structure of the partitioned block 203 and the prediction modes are applied to each of the partitions or subblocks.
Далее более подробно поясняется процесс разделения (например, блоком 260 разделения) и обработка предсказания (блоком 244 внешнего предсказания и блоком 254 внутреннего предсказания), выполняемые примерным видеокодером 20.The following explains in more detail the splitting process (for example, splitter 260) and prediction processing (
РазделениеSeparation
Блок разделения может разделять (или разбивать) текущий блок 203 на меньшие разделы, например, блоки меньшего размера квадратной или прямоугольной формы. Эти меньшие блоки (которые также могут называться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на корневом уровне 0 дерева (уровень 0 иерархии, глубина 0) может быть рекурсивно разделен, например, разделен на два или более блока следующего более нижнего уровня дерева, например, узлы на уровне 1 дерева (уровень 1 иерархии, глубина 1), в котором эти блоки могут быть снова разделены на два или более блоков следующего более нижнего уровня, например, уровень 2 дерева (уровень 2 иерархии, глубина 2) и т.д., пока не будет завершено разделение, например, при выполнении критерия прекращения, например, достигается максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется тройным деревом (TT) и дерево, использующее разделение на четыре раздела, называется деревом квадрантов (QT).The partition block may divide (or split) the current block 203 into smaller sections, such as smaller square or rectangular blocks. These smaller blocks (which may also be referred to as sub-blocks) can be further subdivided into even smaller sections. This is also called tree splitting or hierarchical tree splitting, in which a root box, for example, at
Как упоминало ранее, термин «блок», используемый в настоящем документе, может быть частью, конкретно, частью квадратной или прямоугольной формы изображения. Со ссылкой, например, на HEVC и VVC, блок может быть или соответствовать блоку дерева кодирования (CTU), блоку кодирования (CU), блоку предсказания (PU) и блоку преобразования (TU) и/или соответствовать блокам, например, блоку дерева кодирования (CTB), блоку кодирования (CB), блоку преобразования (TB) или блоку предсказания (PB).As mentioned earlier, the term "block" as used herein may be part, specifically, part of a square or rectangular shape of an image. With reference to, for example, HEVC and VVC, a block may either correspond to a coding tree block (CTU), a coding unit (CU), a prediction block (PU), and a transform unit (TU), and/or correspond to blocks, for example, a coding tree block (CTB), coding block (CB), transform block (TB), or prediction block (PB).
Например, блок дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTBs выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком NxN выборок для некоторого значения N, так что разделение компонента на CTBs является разделением. Блок кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемые для кодирования выборок. Соответственно, блок кодирования (CB) может быть блоком MxN выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением.For example, a coding tree unit (CTU) may be either a luminance sample CTB, two corresponding chrominance sample CTBs of an image that has three sample arrays, or a monochrome image sample CTB or an image that is encoded using three separate color planes and the syntax structures used to encode samples. Accordingly, a coding tree block (CTB) may be a block of NxN samples for some value of N, such that splitting a component into CTBs is a split. A coding unit (CU) may be or comprise a luminance sample coding unit, two corresponding chrominance sample coding units of an image that has three sample arrays, or a monochrome image sample coding unit or an image that is encoded using three separate color planes and the syntax structures used to encode samples. Accordingly, a coding block (CB) may be a block of MxN samples for some values of M and N, so that the division of the CTB into coding blocks is a division.
В вариантах осуществления, например, в соответствии с HEVC, блок дерева кодирования (CTU) может быть разделен на CUs с использованием структуры дерева квадратов, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с использованием внешнего (временного) или внутреннего (пространственного) предсказания, принимается на CU уровне. Каждый CU может быть дополнительно разделен на один, два или четыре PUs в соответствии с типом разделения PU. Внутри одного PU применяется тот же процесс предсказания, и соответствующая информация передается в декодер на основании PU. После получения остаточного блока путем применения процесса предсказания на основании типа разделения PU, CU может быть разделен на блоки преобразования (TUs) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодирования для CU.In embodiments, such as in accordance with HEVC, a coding tree unit (CTU) may be partitioned into CUs using a square tree structure referred to as a coding tree. The decision as to whether to encode an image area using extrinsic (temporal) or intrinsic (spatial) prediction is made at the CU layer. Each CU can be further divided into one, two or four PUs according to the type of partition of the PU. Within one PU, the same prediction process is applied and the corresponding information is transmitted to the decoder based on the PU. After obtaining the residual block by applying a prediction process based on the division type of the PU, the CU may be divided into transform units (TUs) according to a different quadtree structure similar to the coding tree for the CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который называется универсальным кодированием видео (VVC), разделение дерева квадратов и двоичного дерева (QTBT) с использованием разделения блока кодирования. В QTBT структуре блока, CU может иметь либо квадратную, либо прямоугольную форму. Например, блок дерева кодирования (CTU) сначала разделяется структурой деревом квадрантов. Листовые узлы дерева квадрантов могут быть дополнительно разделены с помощью древовидной структуры двоичного дерева или троичного (или тройного) дерева. Листовые узлы дерева квадрантов называются блоками кодирования (CUs) и сегментация используются для предсказания и преобразования без любого дополнительного разделения. Это означает, что в большинстве случаев CU, PU и TU имеют одинаковый размер блока в QTBT структуре блока кодирования. Параллельно, также было предложено множество разделений, например, разделение троичного дерева было использовано совместно с QTBT структуре блока.In embodiments, for example, in accordance with the latest video coding standard currently being developed, called universal video coding (VVC), square tree and binary tree (QTBT) splitting using coding block splitting. In the QTBT block structure, the CU can be either square or rectangular. For example, a coding tree unit (CTU) is first divided by a quadtree structure. The leaf nodes of a quadtree can be further subdivided using a binary tree or ternary (or ternary) tree structure. The leaf nodes of the quadtree are called coding units (CUs) and segmentation is used for prediction and transformation without any additional partitioning. This means that in most cases CU, PU and TU have the same block size in the QTBT coding block structure. In parallel, many partitions have also been proposed, for example, ternary tree partitioning has been used in conjunction with the QTBT block structure.
В одном примере блок 260 обработки предсказания видеокодера 20 может быть выполнен с возможностью выполнять любую комбинацию способов разделения, описанных в данном документе.In one example,
Как описано выше, кодер 20 выполнен с возможностью определять или выбирать наилучший или оптимальный режим предсказания из набора (предопределенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.As described above,
Внутреннее предсказаниеInternal prediction
Набор режимов внутреннего предсказания может содержать 35 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено для VVC.The intra prediction mode set may contain 35 different intra prediction modes, such as non-directional modes such as DC (or average) mode and planar mode, or directional modes such as defined in HEVC, or may contain 67 different intra prediction modes such as , non-directional modes such as DC (or medium) mode and planar mode, or directional modes such as those defined for VVC.
Блок 254 внутреннего предсказания выполнен с возможностью использовать восстановленные выборки соседних блоков одного и того же текущего изображения для генерирования блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.The
Блок 254 внутреннего предсказания (или, в общем, блок 260 обработки предсказания) дополнительно выполнен с возможностью выводить параметры внутреннего предсказания (или, в общем, информацию, указывающую выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в данные 21 кодированного изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.The intra prediction block 254 (or, more generally, the prediction processing block 260) is further configured to output the intra prediction parameters (or, more generally, information indicative of the selected intra prediction mode for the block) to the entropy encoding block 270 in the form of syntax elements 266 for including an encoded image in data 21 so that, for example,
Внешнее предсказаниеexternal prediction
Набор (или возможные) режимов внешнего предсказания зависит от доступных опорных изображений (то есть, предшествующих, по меньшей мере, частично декодированных изображений, например, сохраненных в DBP 230) и других параметров внешнего предсказания, например будь то опорное изображение целиком или только его часть, например, окно поиска области вокруг области текущего блока, опорного кадра используется для поиска наилучшего соответствия опорного блока и/или, например, применяется ли интерполяция пикселей, например, интерполяция пол/полупикселя, четверти пикселя и/или 1/16 пикселя или нет.The set (or possible) inter prediction modes depends on the available reference pictures (i.e., previous at least partially decoded pictures, such as those stored in DBP 230) and other inter prediction parameters, such as whether the reference picture is all or only part of it. , for example, an area search box around the region of the current block, the reference frame is used to find the best match of the reference block and/or, for example, whether pixel interpolation is applied, such as half/half pixel, quarter pixel and/or 1/16 pixel interpolation or not.
В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска и/или прямой режим.In addition to the aforementioned prediction modes, a skip mode and/or a direct mode may be applied.
Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба не показаны на фиг.2). Блок оценки движения выполнен с возможностью принимать или получать блок 203 изображения (текущий блок 203 изображения текущего изображения 201) и декодированное изображение 231 или, по меньшей мере, один или множество ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например. видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и предоставлять опорное изображение (или индекс опорного изображения) и/или сдвиг (пространственное сдвиг) между позицией (x, y координат) опорного блока и позицией текущего блока в качестве параметров внешнего предсказания в блок оценки движения. Это сдвиг также называется вектором движения (MV).The
Блок компенсации движения выполнен с возможностью получать, например, принимать параметр внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра внешнего предсказания для получения блока 265 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения, может содержать выборку или генерирование блока предсказания на основании вектора движения/блока, определяемого оценкой движения, возможно выполнение интерполяции до субпиксельной точности. Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, таким образом, потенциально увеличивая количество кандидатов блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может локализовать блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений.The motion compensation block is configured to receive, for example, receive an inter prediction parameter and perform inter prediction based on or using the inter prediction parameter to obtain
Блок компенсации движения может также генерировать элементы синтаксиса, ассоциированные с блоками и сегментом видео, для использования видеодекодером 30 при декодировании блоков изображения сегмента видео.The motion compensation block may also generate syntax elements associated with blocks and a video segment for use by
Энтропийное кодированиеEntropy coding
Блок 270 энтропийного кодирования выполнен с возможностью применять алгоритм или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CALVC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с интервалом вероятности (PIPE) или другие технологии или способы энтропийного кодирования) или схему обхода (без сжатия) на квантованных остаточных коэффициентах 209, параметрах внешнего предсказания, параметрах внутреннего предсказания и/или параметрах контурного фильтра и/или других элементах синтаксиса для получения данных 21 закодированного изображения, которые могут выводиться посредством выхода 272, например, в форме кодированного битового потока 21, так что, например, декодер 30 может принимать и использовать параметры для декодирования. Закодированный битовый поток 21 может быть передан в видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.The entropy encoding unit 270 is configured to apply an entropy encoding algorithm or schemes (e.g., variable length coding (VLC) schemes, context adaptive VLC scheme (CALVC), arithmetic coding scheme, context adaptive binary arithmetic coding (CABAC) based on context adaptive binary arithmetic coding (SBAC), probability interval entropy coding (PIPE), or other entropy coding technologies or methods) or bypass scheme (no compression) on quantized
Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 20. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для конкретных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.Other structural variations of
Декодер и способ декодированияDecoder and decoding method
На фиг.3 показан пример видеодекодера 30, который выполнен с возможностью реализации способов настоящего изобретения. Видеодекодер 30 выполнен с возможностью принимать данные 21 кодированного изображения (например, кодированного битового потока 21), например, кодируемые кодером 20, для получения декодированного изображения 331. Данные кодированного изображения или битовый поток содержит информацию для декодирования данных кодированного изображения, например, данные, которые представляют собой блоки изображения кодированного сегмента видео и ассоциированные элементы синтаксиса.Figure 3 shows an example of a
В примере на фиг.3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 декодированного изображения (DBP), блок 344 внешнего предсказания и блок 354 внутреннего предсказания. Блок внешнего предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять процесс декодирования, в целом, обратный этапу кодирования, описанный применительно к видеокодеру 100 на фиг.2.In the example of FIG. 3, the
Как объяснялось в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 декодированного изображения (DPB), блок 344 внешнего предсказания и блок 354 внутреннего предсказания также называется формированием «встроенного декодера» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичным по функциям блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функциям блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функциям контурному фильтру 220 и буфер 330 декодированного изображения может быть идентичен по функциям буферу 230 декодированного изображения. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применяются соответственно к соответствующим блокам и функциям видеодекодера 30.As explained with respect to the
Энтропийное декодированиеEntropy decoding
Блок 304 энтропийного декодирования выполнен с возможностью выполнять синтаксический анализ битового потока 21 (или, в общем, данных 21 закодированного изображения) и выполнять, например, энтропийное декодирование данных 21 кодированного изображения для получения, например, квантованных коэффициентов 309 и/или параметров декодированного кодирования (не показано на фиг.3), например, любого или всех параметров внешнего предсказания (например, индекс опорного изображения и вектор движения), параметров внутреннего предсказания (например, режим внутреннего предсказания или индекс), параметров преобразования, параметров квантования, параметров контурного фильтра и/или других элементов синтаксиса. Блок 304 энтропийного декодирования может быть выполнен с возможностью применять алгоритмы или схемы декодирования, соответствующие схемам кодирования, как описано в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставлять параметры внешнего предсказания, параметр внутреннего предсказания и/или другие элементы синтаксиса в блок 360 выбора режима и другие параметры в другие блоки декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне видеоблока.The
Обратное квантованиеInverse quantization
Блок 310 обратного квантования может быть выполнен с возможностью принимать параметры квантования (QP) (или, в общем, информацию, относящуюся к обратному квантованию) и квантованные коэффициенты из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применять на основании параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого блока видео в сегменте видео, для определения степени квантования и аналогично степени обратного квантования.The
Обратное преобразованиеReverse transformation
Блок 312 обработки обратного преобразования может быть выполнен с возможностью принимать деквантованные коэффициенты 311, также называемые коэффициентами 311 преобразования и применять преобразования к деквантованным коэффициентам 311 для получения восстановленных остаточных блоков 213 в области выборки. Восстановленные остаточные блоки 213 также могут называться блоками преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью принимать параметры преобразования или соответствующую информацию из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) для определения преобразования, которое должно применяться к деквантованным коэффициентам 311.The
ВосстановлениеRecovery
Блок 314 восстановления (например, сумматор 314) выполнен с возможностью добавлять восстановленный остаточный блок 313 к блоку 365 предсказания для получения восстановленного блока 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.A reconstructor 314 (e.g., adder 314) is configured to add the reconstructed residual block 313 to the prediction block 365 to obtain a reconstructed block 315 in the sample area, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of the prediction block 365.
ФильтрацияFiltration
Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного повышения качества видео. Блок 320 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным сдвигом (SAO) или один или несколько других фильтров, например, двунаправленный фильтр, адаптивный контурный фильтр (ALF), фильтр сглаживания, фильтр увеличения резкости или коллоборативные фильтры или любую их комбинацию. Хотя на фиг.3 показан блок 320 контурного фильтра как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. The
Буфер декодированного изображенияDecoded image buffer
Затем декодированные видеоблоки 321 в данном кадре или изображении сохраняются в буфере 330 декодированного изображения, в котором хранятся декодированные изображения 331 в качестве опорных изображений, используемые для последующей компенсации движения для других изображений и/или вывода соответствующего изображения для отображения на дисплее.The decoded video blocks 321 in that frame or picture are then stored in the decoded
Декодер 30 выполнен с возможностью выводить декодированное изображение 311, например, через выход 312 для представления или просмотра пользователю.The
ПредсказаниеPrediction
Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения) и блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функциям и выполняет решения о разделении или разбиении и предсказания на основании параметров разделения и/или предсказания или соответствующей информации, принятой из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 выбора режима может быть выполнен с возможностью выполнять предсказание (внутреннее или внешнее предсказание) для каждого блока на основании восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда сегмент видео кодируется как внутри кодированный (I) сегмент, блок 354 внутреннего предсказания блока 360 выбора режима выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнализируемого режима внутреннего предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как внешне кодируемый (то есть, B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 выбора режима выполнен с возможностью формировать блоки 365 предсказания для блока видео текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основании опорных изображений, хранящихся в DPB 330. When a video segment is encoded as an intra-coded (I) segment, the
Блок 360 выбора режима выполнен с возможностью определять информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения или других элементов синтаксиса, и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 360 выбора режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента внешнего предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информации о построении для одного или нескольких списков опорных изображений для сегмента, векторов движения для каждого внешне кодированного блока видео сегмента, статус внешнего предсказания для каждого внешне кодированного блока видео сегмента и другую информацию для декодирования блоков видео в текущем сегменте видео. The mode selector 360 is configured to determine prediction information for the video block of the current video segment by analyzing motion vectors or other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, the mode selector 360 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode the video blocks of a video segment, the inter prediction segment type (eg, B-segment, P-segment, or GPB- segment), construction information for one or more reference picture lists for the segment, motion vectors for each externally coded video block of the segment, inter prediction status for each externally coded video block of the segment, and other information for decoding video blocks in the current video segment.
Для декодирования данных 21 закодированного изображения могут использоваться другие варианты видеодекодера 30. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное преобразование квантования остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.Other variants of the
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после интерполяционной фильтрации, вывода вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как ограничение или сдвиг, над результатом обработки интерполяционной фильтрации, вывода вектора движения или контурной фильтрации.It should be understood that in
Следует отметить, что к полученным векторам движения текущего блока (включающие в себя, но не ограничивающие, векторы движения точки управления аффинного режима, векторы движения субблока аффинного, планарного, ATMVP режимов, временные векторы движения и т.п.) могут быть применены дополнительные операции. Например, значение вектора движения ограничивается заданным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth, то диапазон составляет -2 ^ (bitDepth-1) ~ 2 ^ (bitDepth-1) -1, в котором «^» означает возведение в степень. Например, если bitDepth установлен равный 16, то диапазон составляет -32768 ~ 32767; если bitDepth установлен равным 18, то диапазон составляет -131072 ~ 131071. Например, значение полученного вектора движения (например, MVs четырех 4x4 субблоков в пределах одного 8x8 блока) ограничено таким образом, что максимальная разница между целыми частями четырех 4х4 субблока MVs не превышает N пикселей, например, не более 1 пикселя. It should be noted that additional operations can be applied to the received motion vectors of the current block (including, but not limited to, affine mode control point motion vectors, sub-block motion vectors of affine, planar, ATMVP modes, temporal motion vectors, etc.). . For example, the motion vector value is limited to a given range according to its representing bit. If the representing bit of the motion vector is bitDepth, then the range is -2^(bitDepth-1)~2^(bitDepth-1)-1, in which "^" means exponentiation. For example, if bitDepth is set to 16, then the range is -32768 ~ 32767; if bitDepth is set to 18, then the range is -131072 ~ 131071. For example, the value of the received motion vector (for example, MVs of four 4x4 subblocks within one 8x8 block) is limited such that the maximum difference between the integer parts of four 4x4 subblock MVs does not exceed N pixels, for example, no more than 1 pixel.
Настоящее изобретение предлагает два способа для ограничения вектора движения в соответствии с bitDepth.The present invention provides two methods for limiting a motion vector according to bitDepth.
Способ 1: удалить переполнение MSB (наиболее значимый бит) посредством операций истеченияMethod 1: Remove MSB (Most Significant Bit) Overflow Through Expiration Operations
ux = (mvx + 2bitDepth)% 2 bitDepth (1)ux = (mvx + 2 bitDepth )% 2 bitDepth (1)
mvx = (ux> = 2 bitDepth -1)? (ux - 2 bitDepth): ux (2)mvx = (ux >= 2 bitDepth -1 )? (ux - 2 bitDepth ): ux(2)
uy = (mvy + 2 bitDepth)% 2bitDepth (3)uy = (mvy + 2 bitDepth )% 2 bitDepth (3)
mvy = (uy> = 2 bitDepth -1)? (uy - 2 bitDepth): uy (4)mvy = (uy >= 2 bitDepth -1 )? (uy - 2 bitDepth ): uy(4)
в котором mvx является горизонтальным компонентом вектора движения блока изображения или субблока, mvy является вертикальным компонентом вектора движения блока изображения или субблока и ux и uy указывают на промежуточное значение;in which mvx is the horizontal component of the motion vector of the image block or sub-block, mvy is the vertical component of the motion vector of the image block or sub-block, and ux and uy indicate an intermediate value;
Например, если значение mvx составляет -32769, после применения формулы (1) и (2), полученное значение составляет 32767. В компьютерной системе десятичные числа хранятся в виде двоичной компоненты. Двоичная компонента -32769 составляет 1, 0111,1111,1111,1111 (17 битов) и MSB отбрасывается, поэтому полученная двоичная компонента равна 0111,1111,1111,1111 (десятичное число 32767), что является таким же, как выходное значение после применения формулы (1) и (2).For example, if the mvx value is -32769, after formula (1) and (2) is applied, the resulting value is 32767. In a computer system, decimal numbers are stored as a binary component. The binary component of -32769 is 1.0111.1111.1111.1111 (17 bits) and the MSB is discarded, so the resulting binary component is 0111.1111.1111.1111 (decimal 32767), which is the same as the output value after applying formulas (1) and (2).
ux = (mvpx + mvdx + 2bitDepth)% 2bitDepth (5)ux = (mvpx + mvdx + 2 bitDepth )% 2 bitDepth (5)
mvx = (ux> = 2bitDepth -1)? (ux - 2bitDepth): ux (6)mvx = (ux >= 2 bitDepth -1 )? (ux - 2 bitDepth ): ux(6)
uy = (mvpy + mvdy + 2bitDepth)% 2bitDepth (7)uy = (mvpy + mvdy + 2 bitDepth )% 2 bitDepth (7)
mvy = (uy> = 2bitDepth -1)? (uy - 2bitDepth): uy (8)mvy = (uy >= 2 bitDepth -1 )? (uy - 2 bitDepth ): uy(8)
Операции могут быть применены во время суммирования mvp и mvp, как показано в формуле (5) до (8).Operations can be applied during summation of mvp and mvp as shown in formula (5) to (8).
Способ 2: удалить переполнение MSB посредством ограничения значенияMethod 2: Remove MSB overflow via value constraint
vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)vx = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)vy = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vy)
в котором vx является горизонтальным компонентом вектора движения блока изображения или субблока, vy является вертикальным компонентом вектора движения блока изображения или субблока; x, y и z соответствуют трем входным значениям процесса ограничения MV и определение функции Clip3 является следующим:in which vx is the horizontal component of the motion vector of the image block or sub-block, vy is the vertical component of the motion vector of the image block or sub-block; x, y and z correspond to the three input values of the MV clipping process and the Clip3 function definition is as follows:
Clip3( x, y, z ) = Clip3(x, y, z) =
Фиг.4 является схемой устройства 400 кодирования видео согласно варианту осуществления настоящего изобретения. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 по фиг.1A или кодер, такой как видеокодер 20 по фиг. 1А. 4 is a diagram of a
Устройство 400 кодирования видео содержит входные порты 410 и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и выходные порты 450 для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.The
Процессор 430 реализован аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), FPGAs, ASICs и DSPs. Процессор 430 связан с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использование модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 кодирования видео и обеспечивает преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).
Фиг.5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба устройство 310 источника и устройство 320 назначения по фиг.1 согласно примерному варианту осуществления. FIG. 5 is a simplified block diagram of a
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
В реализации память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или устройством оперативной памяти (RAM). В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно содержать в себя операционную систему 508 и прикладные программы 510, прикладные программы 510 включают в себя, по меньшей мере, одну программу, которая позволяет процессору 502 выполнять описанные в настоящем документе способы. Например, прикладные программы 510 могут содержать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы. Устройство 500 также может включать в себя одно или несколько устройств вывода, таких как дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 518 может быть подключен к процессору 502 через шину 512.In an implementation,
Хотя изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, например, несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.Although depicted as a single bus,
Комбинированное внешнее-внутреннее предсказание (CIIP)Combined Outer-Inner Prediction (CIIP)
Условно, блок кодирования является либо внутренне предсказанным (то есть, с использованием опорных выборок на том же изображении), либо внешне предсказанным (то есть, с использованием опорных выборок на других изображениях). Мульти-гипотетическое предсказание сочетает в себе эти два подхода предсказания. Следовательно, иногда называют комбинированным внешним-внутренним предсказанием (CIIP). При использовании комбинированного внешнего-внутреннего предсказания, к внутренне предсказанным и внешне предсказанным выборкам применяют веса и конечное предсказание представляет собой средневзвешенные выборки.By convention, a coding block is either intra-predicted (ie, using reference samples in the same picture) or externally predicted (ie, using reference samples in other pictures). Multi-hypothetical prediction combines these two prediction approaches. Hence, sometimes referred to as combined inter-intra prediction (CIIP). When using combined inter-intra prediction, weights are applied to the intra-predicted and inter-predicted samples and the final prediction is the weighted average of the samples.
Для указания применения комбинированного внешне-внутреннего предсказания (CIIP) используется флаг.A flag is used to indicate the use of combined inter-intra prediction (CIIP).
Блок, с применением CIIP, может быть дополнительно разделен на несколько субблоков, как показано на фиг.6А. В одном примере субблоки получают путем деления блока в горизонтальном направлении, при этом каждый субблок имеет такую же ширину, как исходный блок, но имеет ¼ высоту исходного блока.The block, using CIIP, can be further divided into several sub-blocks, as shown in figa. In one example, sub-blocks are obtained by dividing a block in the horizontal direction, with each sub-block having the same width as the original block but ¼ of the original block's height.
В одном примере субблоки получают путем разделения блока в вертикальном направлении, при этом каждый субблок имеет одну и ту же высоту, что и исходный блок, но имеет ¼ ширину исходного блока.In one example, sub-blocks are obtained by splitting a block in the vertical direction, with each sub-block having the same height as the original block but ¼ of the original block's width.
Процесс CIIP предсказания вызывает артефакты блочности, так как при выполнении внутреннего предсказания обычно используются больше остаточных сигналов. Артефакты блочности возникают не только на границах CIIP блока, но также на краях субблока внутри CIIP блока, таких как вертикальный край A, B, C субблока на фиг.6А. Могут быть идентифицированы, соответственно, горизонтальные края субблока.The CIIP prediction process causes blocking artifacts because more residual signals are typically used when performing intra prediction. Blocking artifacts occur not only at the boundaries of the CIIP block, but also at the edges of the subblock within the CIIP block, such as the vertical edge A, B, C of the subblock in FIG. 6A. The horizontal edges of the subblock can be identified, respectively.
Хотя артефакты блочности могут возникать как на CIIP границах, так и на краях внутри CIIP блоков, искажения, вызванные этими двумя границами, могут быть разными, и могут потребовать различных граничных мощностей.Although blocking artifacts can occur both at CIIP boundaries and at edges within CIIP blocks, the distortion caused by these two boundaries can be different and may require different edge powers.
В остальной части настоящего описания используется следующая терминология:In the rest of this description, the following terminology is used:
CIIP блоки: блоки кодирования, которые предсказываются посредством применения мульти-гипотетического предсказания (CIIP).CIIP blocks: coding blocks that are predicted by applying multi-hypothetical prediction (CIIP).
Внутренне кодированные блоки: блоки кодирования, которые предсказываются посредством применения внутреннего предсказания, но не CIIP предсказания.Intra-coded blocks: coding blocks that are predicted by applying intra prediction, but not CIIP prediction.
Внешне кодированные блоки: блоки кодирования, которые предсказываются применением внешнего предсказания, но не CIIP предсказания.Inter-coded blocks: coding blocks that are predicted using inter-prediction but not CIIP prediction.
Фильтр деблокинга и граничная мощностьDeblocking filter and edge power
Наряду с успешным принципом гибридного блочного кодирования видео, также применяются схемы кодирования видео, такие как HEVC и VVC. Используя этот принцип, изображение сначала распределяется на блоки, и затем каждый блок предсказывается с использованием режимам внутреннего или внешнего предсказания. Эти блоки кодируются относительно соседних блоков и приближают к исходному сигналу с некоторой степенью сходства. Поскольку кодированные блоки только приближены к исходному сигналу, разница между приближениями может привести к разрывам при предсказании и преобразовании границ блока. Эти разрывы ослабляются фильтром деблокинга.Along with the successful principle of hybrid block video coding, video coding schemes such as HEVC and VVC are also being applied. Using this principle, the image is first divided into blocks, and then each block is predicted using intra or inter prediction modes. These blocks are encoded relative to adjacent blocks and approximate the original signal with some degree of similarity. Since the encoded blocks are only approximate to the original signal, the difference between the approximations can lead to discontinuities in the prediction and transformation of the block boundaries. These gaps are attenuated by the deblocking filter.
Для принятия решения фильтрации границы блока используется информация битового потока, такая как режимы предсказания и векторы движения. Некоторые условия кодирования, скорее всего, вызывают сильные артефакты блочности, которые представлены так называемой переменной граничной мощности (Bs или BS), которая назначается каждой границе блока и определяется согласно таблице 1.Bitstream information such as prediction modes and motion vectors is used to make a block boundary filtering decision. Some coding conditions are likely to cause strong blocking artifacts, which are represented by a so-called boundary power variable (Bs or BS) that is assigned to each block boundary and determined according to Table 1.
Таблица 1Table 1
Деблокинг применяется только к границам блока с Bs, превышающей ноль для компоненты яркости и Bs более 1 для компонентов цветности. Более высокие значения Bs обеспечивают более сильную фильтрацию с использованием более высоких значений параметра ограничения. Условия получения Bs отражают вероятность появления более сильных артефактов блочности на границах внутренне предсказанных блоков.Deblocking only applies to block boundaries with Bs greater than zero for the luma component and Bs greater than 1 for the chrominance components. Higher values of Bs provide stronger filtering using higher clipping parameter values. The conditions for obtaining Bs reflect the probability of the appearance of stronger blocking artifacts at the boundaries of internally predicted blocks.
Обычно границу двух соседних блоков обозначают, как P и Q, как показано на фиг.6В. Фиг.6В изображает случай вертикальной границы. Если рассматривается горизонтальная граница, то на фиг.6В изображение следует повернуть на 90 градусов по часовой стрелке, где P будет выше и Q ниже.Typically, the boundary of two adjacent blocks is denoted as P and Q, as shown in Fig.6B. Figv depicts the case of a vertical border. If a horizontal boundary is considered, then in FIG. 6B the image should be rotated 90 degrees clockwise, where P will be higher and Q lower.
Составление списка наиболее вероятного режимаListing the Most Likely Mode
Для повышения эффективности кодирования в режиме внутреннего предсказания используется список наиболее вероятного режима (MPM). Из-за большого количества режимов внутреннего предсказания (например, 35 в HEVC и 67 в VVC), режим внутреннего предсказания текущего блока напрямую не сигнализируется. Вместо этого составляется список наиболее вероятного режима текущего блока на основании его соседних режимов внутреннего предсказания блоков. В качестве режима внутреннего предсказания текущего блока относительно к своим соседям, MPM список обычно предоставляет высокий уровень предсказания, поскольку указывается его название (Most Probable Mode list), таким образом, режим внутреннего предсказания текущего блока c высокой вероятностью находится в MPM списке. Таким образом, для получения режима внутреннего предсказания текущего блока сигнализируется только индекс MPM списка. По сравнению с общим количеством режимов внутреннего предсказания длина MPM списка намного меньше (например, 3-MPM список используется в HEVC и 6-MPM список используется в VVC), поэтому для кодирования в режиме внутреннего предсказания требуется меньше битов. Флаг (MPM_FLAG) используется для указания, принадлежит ли режим внутреннего предсказания блока к его МРМ списку или нет. Если утверждение истинно, то режим внутреннего предсказания текущего блока может быть проиндексирован с использованием MPM списка. В противном случае режим внутреннего предсказания напрямую сигнализируется с помощью бинаризованного кода. В VVC и HEVC MPM список составлен на основании его соседних левых и верхних блоков. Когда левый соседний блок и верхний соседний блок текущего блока недоступны для предсказания, используется список режимов по умолчанию.To improve coding efficiency in the intra prediction mode, a Most Likely Mode (MPM) list is used. Due to the large number of intra prediction modes (eg, 35 in HEVC and 67 in VVC), the intra prediction mode of the current block is not directly signaled. Instead, the most likely mode of the current block is listed based on its neighboring intra block prediction modes. As the intra prediction mode of the current block relative to its neighbors, the MPM list generally provides a high prediction level because its name is specified (Most Probable Mode list), thus the intra prediction mode of the current block is in the MPM list with high probability. Thus, only the list MPM index is signaled to obtain the intra prediction mode of the current block. Compared to the total number of intra prediction modes, the length of the MPM list is much smaller (for example, a 3-MPM list is used in HEVC and a 6-MPM list is used in VVC), so fewer bits are required for intra prediction mode coding. A flag (MPM_FLAG) is used to indicate whether the block's intra prediction mode belongs to its MPM list or not. If the assertion is true, then the intra prediction mode of the current block can be indexed using the MPM list. Otherwise, the intra prediction mode is directly signaled with a binarized code. In VVC and HEVC MPM, the list is based on its adjacent left and top blocks. When the left neighbor block and the top neighbor block of the current block are not available for prediction, the default mode list is used.
Предсказание вектора движенияMotion vector prediction
Предсказание вектора движения является технологией, используемой при кодировании данных движения. Вектор движения обычно имеет два компонента х и у, относящиеся к движению в горизонтальном и вертикальном направлениях, соответственно. Векторы движения текущего блока обычно коррелируются с векторами движения соседних блоков в текущем изображении или в более ранних кодированных изображениях. Поскольку соседние блоки вполне вероятно соответствуют одному и тому же движущемуся объекту с аналогичным движением, и движение объекта с низкой вероятность может изменяться со временем. Следовательно, использование векторов движения в соседних блоках в качестве предикторов, уменьшает размер сигнализированной разности вектора движения. Предикторы вектора движения (MVPs) обычно получают из уже декодированных векторов движения из пространственных соседних блоков или из временных соседних блоков в совместно используемом изображении.Motion vector prediction is a technique used in encoding motion data. The motion vector typically has two components x and y, referring to movement in the horizontal and vertical directions, respectively. The motion vectors of the current block are usually correlated with the motion vectors of neighboring blocks in the current picture or in earlier coded pictures. Since neighboring blocks are quite likely to correspond to the same moving object with similar motion, and the motion of the object with low probability may change over time. Therefore, using the motion vectors in adjacent blocks as predictors reduces the size of the signaled motion vector difference. Motion vector predictors (MVPs) are typically derived from already decoded motion vectors from spatial neighbor blocks or from temporal neighbor blocks in a shared image.
При определении подлежащего предсказанию блока путем применения CIIP предсказания, его окончательные предсказанные выборки частично основаны на внутренне предсказанных выборках. Поскольку, при выполнении внутреннего предсказания также в большей степени используются остаточные и преобразование коэффициенты по сравнению с блоками с внешним предсказанием (mvd, слияние, пропуск). Поэтому, когда эти MH блоки примыкают к другим блокам граница будет более неоднородна. В HEVC и VVC, когда любые из двух соседних блоков границы является внутренне предсказанными, для этой границы применяется сильный фильтр деблокинга, в котором параметр граничной мощности (Bs) устанавливается на 2 (самый сильный).When a block to be predicted is determined by applying CIIP prediction, its final predicted samples are based in part on the intra-predicted samples. Because, when performing intra prediction, residual and transformation coefficients are also used to a greater extent compared to blocks with inter prediction (mvd, merge, skip). Therefore, when these MH blocks are adjacent to other blocks, the boundary will be more heterogeneous. In HEVC and VVC, when either of two neighboring blocks of a boundary is intra-predicted, a strong deblocking filter is applied to that boundary, in which the boundary power parameter (Bs) is set to 2 (strongest).
В VTM3.0, однако, потенциальный артефакт блочности, вызванный предсказанными блоками посредством CIIP предсказания, НЕ рассматривается. В процессе получения граничной мощности по-прежнему используются блоки с CIIP предсказаниями в качестве внешне предсказанных блоков. При определенных обстоятельствах такой подход обработки может привести к низкому субъективному и объективному качеству.In VTM3.0, however, the potential blocking artifact caused by predicted blocks via CIIP prediction is NOT considered. The power edge derivation process still uses blocks with CIIP predictions as externally predicted blocks. Under certain circumstances, this processing approach can lead to low subjective and objective quality.
Для улучшения фильтра деблокинга варианты осуществления настоящего изобретения предлагают несколько альтернатив использования MH блоков, в котором на процесс получения граничной мощности конкретной границы оказывают влияние MH блоки.In order to improve the deblocking filter, embodiments of the present invention offer several alternatives to using MH blocks, in which the process of deriving the edge power of a particular edge is influenced by MH blocks.
Нормативный документ стандарта «Универсальное кодирование видео» (проект 3) определяется как VVC проект 3.0 и может быть найден по следующей ссылкеThe normative document of the Universal Video Coding standard (draft 3) is defined as VVC draft 3.0 and can be found at the following link
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v3.zip.http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1001-v3.zip.
Вариант 1 осуществления
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок) граничная мощность определяется следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as P block and Q block), the boundary power is defined as follows:
- Как показано на фиг.7, если, по меньшей мере, один блок P и Q является блоком с CIIP предсказанием, то параметр граничной мощности этой границы устанавливается на первое значение, например, первое значение может равно 2.- As shown in FIG. 7, if at least one P and Q block is a CIIP prediction block, then the boundary power parameter of this boundary is set to a first value, for example, the first value may be 2.
- Если оба P и Q блока не предсказаны применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока P предсказан путем применения внутреннего предсказания, граничная мощность определяется равной 2.- If both P and Q blocks are not predicted by applying CIIP prediction, and if at least one of the Q block or P block is predicted by applying intra prediction, the edge power is determined to be 2.
- Если оба P и Q блока не предсказываются применением CIIP предсказания и, если оба Q и P блока предсказываются путем применения внешнего предсказания, то граничная мощность определяется, как меньше, чем 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками), процесс получения граничной мощности этой границы показан на фиг.7.- If both P and Q blocks are not predicted by applying CIIP prediction, and if both Q and P blocks are predicted by applying inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates), the process of obtaining the boundary power of this boundary is shown in Fig.7.
- Для сравнения способ, указанный в VVC или ITU-H.265 стандарте кодирования видео, представлен на фиг.8.- For comparison, the method specified in the VVC or ITU-H.265 video coding standard is shown in Fig.8.
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с применением фильтра деблокинга в соответствии с определенной граничной мощностью.- The pixel samples contained in the Q block and the P block are filtered using a deblocking filter in accordance with a certain boundary power.
Вариант 2 осуществления
Как показано на фиг.9, для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок) граничная мощность получена следующим образом:As shown in Fig. 9, for a border with two sides (where the spatially adjacent blocks on each side are denoted as P block and Q block), the boundary power is obtained as follows:
- Если, по меньшей мере, один блок P и Q является внутренне предсказанным блоком, то граничная мощность устанавливается на 2- If at least one P and Q block is an intra predicted block, then the power edge is set to 2
- В противном случае, если, по меньшей мере, один блок P и Q представляет собой блоком с CIIP предсказанием, то параметр граничной мощности этой границы устанавливается на первое значение, например, 1 или 2.Otherwise, if at least one P and Q block is a CIIP prediction block, then the boundary power parameter of that boundary is set to a first value, such as 1 or 2.
- В противном случае, если, по меньшей мере, один из соседних блоков P и Q имеет ненулевые коэффициенты преобразования. Затем параметр граничной мощности этой границы устанавливается на второе значение, например, 1- Otherwise, if at least one of the neighboring blocks P and Q has non-zero transform coefficients. Then the boundary power parameter of this boundary is set to the second value, for example, 1
- В противном случае, если абсолютная разность между векторами движения, которые принадлежат к блокам P и Q, больше или равна одной цельно численной выборки яркости, то параметр граничной мощности этой границы устанавливается на второе значение, например, 1.- Otherwise, if the absolute difference between the motion vectors that belong to blocks P and Q is greater than or equal to one integer brightness sample, then the boundary power parameter of this boundary is set to the second value, for example, 1.
- В противном случае, если предсказание движения в соседних блоках относится к разным опорным изображениям или количество векторов движения отличается, то параметр граничной мощности этой границы устанавливается на 1- Otherwise, if the motion prediction in adjacent blocks refers to different reference pictures or the number of motion vectors is different, then the boundary power parameter of this boundary is set to 1
- В противном случае параметр граничной мощности этой границы устанавливается на 0.- Otherwise, the power limit parameter of this limit is set to 0.
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с применением фильтра деблокинга в соответствии с определенной граничной мощностью.- The pixel samples contained in the Q block and the P block are filtered using a deblocking filter in accordance with a certain boundary power.
Вариант 3 осуществления Embodiment 3
Как показано на фиг.10, для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок) параметр граничной мощности этой границы устанавливается следующим образом:As shown in FIG. 10, for a border with two sides (where the spatially adjacent blocks on each side are denoted as P block and Q block), the boundary power parameter of this border is set as follows:
- Если, по меньшей мере, один блок P и Q предсказан с применением внутреннего предсказания и не применением CIIP предсказания (возможности включают в себя P блок, предсказанный внутренним предсказанием, а не предсказанный мульти гипотетическим предсказанием, и Q блок предсказан любой функцией предсказания и наоборот), тогда граничная мощность устанавливается равной 2.- If at least one P and Q block is predicted using intra prediction and not using CIIP prediction (possibilities include P block predicted by intra prediction rather than predicted by multi-hypothetical prediction, and Q block predicted by any prediction function and vice versa ), then the power limit is set to 2.
- Если оба блока Q и P предсказываются либо с применением внешнего предсказания, либо с применением CIIP предсказания (возможности включают в себя Р блок, который является внешне предсказанным блоком, и Q блок является внешне предсказанным блоком, или альтернативно, Р блок является внешне предсказанным блоком и Q блок является MH блоком, или в качестве альтернативы P блок является MH блоком и Q блок является внешне предсказанным блоком, или в качестве альтернативы, P блок является MH блоком и Q блок является МН блоком).- If both Q and P blocks are predicted either using inter prediction or using CIIP prediction (possibilities include a P block which is an inter predicted block and a Q block is an inter predicted block, or alternatively a P block is an inter predicted block and the Q block is an MH block, or alternatively the P block is an MH block and the Q block is an externally predicted block, or alternatively, the P block is an MH block and the Q block is an MH block).
- Если, по меньшей мере, один из блоков P и Q имеет ненулевые коэффициенты преобразования, то параметр граничной мощности упомянутой границы устанавливается равным 1.- If at least one of the blocks P and Q has non-zero transform coefficients, then the boundary power parameter of said boundary is set to 1.
- В противном случае (если блоки Q и P не имеют ненулевых коэффициентов преобразования), если абсолютная разница между векторами движения, которые используются для предсказания блоков P и Q, больше или равна одной целочисленной выборке, то параметр граничной мощности этой границы устанавливается равный 1.- Otherwise (if the Q and P blocks do not have non-zero transform coefficients), if the absolute difference between the motion vectors that are used to predict the P and Q blocks is greater than or equal to one integer sample, then the boundary power parameter of this boundary is set to 1.
- В противном случае (если блоки Q и P не имеют ненулевых коэффициентов преобразования, и абсолютная разница между векторами движения меньше 1 выборки), если блоки P и Q предсказаны на основании различных опорных изображений, или количество векторов движения, которые используются для предсказания блока Q и блока P не равны, то параметр граничной мощности этой границы устанавливается равным 1.- Otherwise (if the Q and P blocks do not have non-zero transform coefficients, and the absolute difference between the motion vectors is less than 1 sample), if the P and Q blocks are predicted based on different reference pictures, or the number of motion vectors that are used to predict the Q block and block P are not equal, then the boundary power parameter of this boundary is set to 1.
- В противном случае (если вышеупомянутые 3 условия оцениваются как ложные), то параметр граничной мощности этой границы устанавливается равным 0.- Otherwise (if the above 3 conditions are evaluated as false), then the boundary power parameter of this boundary is set to 0.
- Если, по меньшей мере, один блок P и Q представляет собой блок с CIIP - If at least one P and Q block is a CIIP block
предсказанием, то граничная мощность модифицирована следующим образом:prediction, then the boundary power is modified as follows:
- Если граничная мощность не равна заданному первому значению (в одном примере заданное первое значение равно 2), то граничная мощность увеличивается на заданное второе значение (в одном примере заданное второе значение равно 1).- If the limit power is not equal to the predetermined first value (in one example, the predetermined first value is 2), then the limit power is increased by the predetermined second value (in one example, the predetermined second value is 1).
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с - The pixel samples contained in the Q block and the P block are filtered with
применением фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Вариант 4 осуществления
Для границы с двумя сторонами (P и Q, как описано в VVC Проект 3.0), граничная мощность получена следующим образом:For a boundary with two sides (P and Q, as described in VVC Draft 3.0), the boundary power is obtained as follows:
- Если эта граница представляет собой горизонтальную границу и P и Q - If this boundary is a horizontal boundary and P and Q
принадлежат различным CTUs, тоbelong to different CTUs, then
- Если блок Q представляет собой блок с CIIP предсказанием, то граничная мощность устанавливается на 2.- If the Q block is a CIIP prediction block, then the power limit is set to 2.
- В противном случае граничная мощность получена, как определено в VVC Проект 3.0- Otherwise, power limit is obtained as defined in VVC Draft 3.0
- В противном случае,- Otherwise,
- Если, по меньшей мере, один блок P и Q является блоком с CIIP предсказанием, то параметр граничной мощности этой границы устанавливается на 2.- If at least one P and Q block is a CIIP prediction block, then the boundary power parameter of that boundary is set to 2.
В противном случае граничную мощность этой границы получают согласно VVC Проект 3.0.Otherwise, the boundary power of this boundary is obtained according to VVC Draft 3.0.
Вариант 5 осуществленияOption 5 implementation
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок), граничная мощность определяется следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as a P block and a Q block), the boundary power is defined as follows:
- Если, по меньшей мере, один из блоков P блока или Q блока предсказан с - If at least one of the blocks P block or Q block is predicted with
применении внутреннего предсказания и не применением CIIP предсказания (возможности включают в себя P блок, предсказанный внутренним предсказанием и не предсказан мульти гипотетическим предсказанием, и Q блок предсказан любой функцией предсказания и наоборот), то граничная мощность устанавливается равной 2.applying intra prediction and not applying CIIP prediction (possibilities include P block predicted by intra prediction and not predicted by multi-hypothetical prediction, and Q block predicted by any prediction function and vice versa), then the boundary power is set to 2.
- Если оба блока предсказываются с применении либо внешнего предсказания, либо CIIP предсказанием (возможности включают в себя Р блок, который является внешне предсказанным блоком, и Q блок, являющимся внешне предсказанным блоком, или альтернативно P блок, являющийся внешне предсказанным блоком и Q блок является МН блоком, или альтернативно Р является МН блоком и Q блок, являющийся внешне предсказанным блоком, или в качестве альтернативы P блок является MH блоком и Q блок является MH блоком),- If both blocks are predicted using either inter prediction or CIIP prediction (features include a P block that is an inter predicted block and a Q block that is an inter predicted block, or alternatively a P block that is an inter predicted block and Q block is MH block, or alternatively P is an MH block and Q block is an externally predicted block, or alternatively P block is an MH block and Q block is an MH block),
- Если упомянутая граница представляет собой горизонтальную границу и P и Q, расположены в двух разных CTUs, то- If said boundary is a horizontal boundary and P and Q are located in two different CTUs, then
- Если блок Q (где блок Q обозначается как блок, который расположен в нижнем направлении по сравнению с блоком P) предсказан путем применения CIIP предсказания, то параметр граничного мощности упомянутой границы устанавливается равным 1.- If a Q block (where a Q block is denoted as a block that is downstream of a P block) is predicted by applying CIIP prediction, then the boundary power parameter of said boundary is set to 1.
- В противном случае (если блок Q не предсказан с применением CIIP предсказания), если, по меньшей мере, один из соседних блоков P и Q имеет ненулевые коэффициенты преобразования, то параметр граничной мощности упомянутой границы устанавливается равным 1- Otherwise (if block Q is not predicted using CIIP prediction), if at least one of the neighboring blocks P and Q has non-zero transform coefficients, then the boundary power parameter of said boundary is set to 1
- В противном случае, если абсолютная разница между векторами движения, которые используются для предсказания блоков P и Q, больше или равны одной целочисленной выборке яркости, то параметр граничной мощности упомянутой границы устанавливается равным 1.Otherwise, if the absolute difference between the motion vectors that are used to predict the P and Q blocks is greater than or equal to one integer luma sample, then the boundary power parameter of said boundary is set to 1.
- В противном случае, если выполняется компенсированное предсказание движения в соседних блоках P и Q на основании различных опорных изображений или, если количество векторов движения, которые используются для предсказания блоков Q и P, не равно, то параметр граничной мощности упомянутой границы устанавливается равной 1Otherwise, if compensated motion prediction is performed in adjacent P and Q blocks based on different reference pictures, or if the number of motion vectors that are used to predict Q and P blocks is not equal, then the boundary power parameter of said boundary is set to 1
- В противном случае параметр граничной мощности упомянутой границы устанавливается равным 0.- Otherwise, the boundary power parameter of said boundary is set to 0.
- В противном случае (если упомянутая граница представляет собой вертикальную - Otherwise (if said boundary is a vertical
границу или, если блок Q и блок P содержится внутри одного и того же CTU),boundary or, if the Q block and the P block are contained within the same CTU),
- Если, по меньшей мере, один из блоков P и Q предсказан путем применения CIIP предсказания, то параметр граничной мощности упомянутой границы устанавливается равным 1.- If at least one of the P and Q blocks is predicted by applying CIIP prediction, then the boundary power parameter of said boundary is set to 1.
- В противном случае, если, по меньшей мере, один из соседних блоков P и Q имеет ненулевые коэффициенты преобразования, то параметр граничной мощности упомянутой границы устанавливается равным 1- Otherwise, if at least one of the adjacent blocks P and Q has non-zero transform coefficients, then the boundary power parameter of said boundary is set to 1
- В противном случае, если абсолютная разница между векторами движения, которые используются для предсказания блоков P и Q блоков, больше или равна одной целочисленной выборке яркости, то параметр граничной мощности упомянутой границы устанавливается равным 1.Otherwise, if the absolute difference between the motion vectors that are used to predict the P and Q blocks is greater than or equal to one integer luma sample, then the boundary power parameter of said boundary is set to 1.
- В противном случае, если выполняется компенсированное предсказание движения в соседних блоках P и Q на основании различных опорных изображений или, если количество векторов движения, которые используются для предсказания блоков Q и P, не равно, то параметр граничной мощности упомянутой границы устанавливается равной 1Otherwise, if compensated motion prediction is performed in adjacent P and Q blocks based on different reference pictures, or if the number of motion vectors that are used to predict Q and P blocks is not equal, then the boundary power parameter of said boundary is set to 1
- В противном случае параметр граничной мощности этой границы устанавливается равным 0.- Otherwise, the boundary power parameter of this boundary is set to 0.
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются при - The pixel samples contained in the Q block and the P block are filtered when
применении фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Вариант 6 осуществленияEmbodiment 6
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок), граничная мощность определяется следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as a P block and a Q block), the boundary power is defined as follows:
- Во-первых, определить граничную мощность упомянутой границы в соответствии - First, determine the boundary power of the said boundary in accordance with
со способом, указанным в VVC или ITU-H.265стандарте кодирования видео.with the method specified in the VVC or ITU-H.265 video coding standard.
- Если упомянутая граница представляет собой горизонтальную границу и P и Q - If said boundary is a horizontal boundary and P and Q
расположены в двух разных CTUs, тоlocated in two different CTUs, then
- Если блок Q предсказан с применением CIIP предсказания, граничная мощность модифицирована следующим образом:- If the Q block is predicted using CIIP prediction, the boundary power is modified as follows:
- Если граничная мощность не равна 2, то граничная мощность увеличивается на 1.- If the power limit is not equal to 2, then the power limit is increased by 1.
- В противном случае (если упомянутая граница представляет собой вертикальную - Otherwise (if said boundary is a vertical
границу или, если блок Q и блок P содержится внутри одного и того же CTU),boundary or, if the Q block and the P block are contained within the same CTU),
- Если, по меньшей мере, один из блока P или блока Q предсказан с применением CIIP предсказания, то параметр граничной мощности упомянутой границы корректируется следующим образом:- If at least one of the P block or the Q block is predicted using CIIP prediction, then the boundary power parameter of said boundary is adjusted as follows:
- Если граничная мощность не равна 2, то граничная мощность увеличивается на 1.- If the power limit is not equal to 2, then the power limit is increased by 1.
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с - The pixel samples contained in the Q block and the P block are filtered with
применением фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Вариант 7 осуществленияEmbodiment 7
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как Р блок и Q блок), граничная мощность получена следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as a P block and a Q block), the boundary power is obtained as follows:
- Если упомянутая граница представляет собой горизонтальную границу и блоки P и - If said boundary is a horizontal boundary and blocks P and
Q расположены в разных CTUs, тоQ are located in different CTUs, then
- Если блок Q (где блок Q обозначается как блок, который расположен в нижнем направлении по сравнению с Р блоком) предсказан с применения CIIP предсказания, то граничная мощность устанавливается равной 2.- If a Q block (where a Q block is denoted as a block that is downstream of the P block) is predicted using CIIP prediction, then the power edge is set to 2.
- Если блок Q не предсказан с применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока Р предсказан с применением внутреннего предсказания, граничная мощность определяется равной 2.- If the Q block is not predicted using CIIP prediction and if at least one of the Q block or the P block is predicted using intra prediction, the edge power is determined to be 2.
- Если блоки Q не предсказан с применением CIIP предсказания и, если оба блока Q и P предсказываются с применением внешнего предсказания, то граничная мощность определяется меньше 2 (точное значение граничной мощности определяется в соответствии с дополнительными обусловленными оценками).- If Q blocks are not predicted using CIIP prediction and if both Q and P blocks are predicted using inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- В противном случае (если упомянутая граница представляет собой вертикальную - Otherwise (if said boundary is a vertical
границу или, если блок Q и блок Р содержится внутри одного и того же CTU),boundary, or if the Q block and the P block are contained within the same CTU),
- Если, по меньшей мере, один из блоков P или Q предсказан с применением CIIP предсказания, то параметр граничной мощности упомянутой границы устанавливается равным 2.- If at least one of the P or Q blocks is predicted using CIIP prediction, then the boundary power parameter of said boundary is set to 2.
- Если оба P и Q блок не предсказаны с применением CIIP предсказания и, если, по меньшей мере один из блока Q или блока P предсказан с применением внутреннего предсказания, граничная мощность определяется равной 2.- If both P and Q block are not predicted using CIIP prediction and if at least one of the Q block or P block is predicted using intra prediction, the edge power is determined to be 2.
- Если оба P и Q блоки не предсказываются с применением CIIP предсказания и, если оба блока Q и P предсказываются путем применения внешнего предсказания, то граничная мощность определяется меньше, чем 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками).- If both P and Q blocks are not predicted using CIIP prediction, and if both Q and P blocks are predicted using inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- Выборки пикселей, содержащиеся в блоке q и блока P, фильтруются при нанесении фильтра деблокинга в соответствии с определенной границей.- The pixel samples contained in the q block and the P block are filtered when applying the deblocking filter according to a certain boundary.
Вариант 8 осуществленияEmbodiment 8
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как P блок и Q блок) граничная мощность определяется следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as P block and Q block), the boundary power is defined as follows:
- Если, по меньшей мере, один блок P и Q предсказан с применением внутреннего - If at least one P and Q block is predicted using the internal
предсказания и без применения CIIP предсказания (возможности включают в себя P блок, предсказанный внутренним предсказанием и не мульти гипотетическим предсказанием и Q блок, предсказанный любой функцией предсказания, и наоборот), то граничная мощность устанавливается равной 2.prediction and without applying CIIP prediction (capabilities include P block predicted by intra prediction and non-multi-hypothetical prediction and Q block predicted by any prediction function, and vice versa), then the boundary power is set to 2.
- Если оба блока Q и Р предсказаны либо с применением внешнего предсказания, - If both Q and P blocks are predicted either using inter prediction,
либо с применением CIIP предсказания (возможности включают в себя Р блок, который является внешне предсказанным блоком, и Q блок, являющийся внешне предсказанным блоком, или в качестве альтернативы Р блок является внешне предсказанным блоком и Q блок является МН блоком, или альтернативно P блок, являющийся MH блоком и Q блок, являющийся внешне предсказанным блоком, или альтернативно P блок, являющийся MH блоком и Q блок, являющийся MH блоком)either using CIIP prediction (features include a P block which is an externally predicted block and a Q block which is an externally predicted block, or alternatively a P block is an externally predicted block and a Q block is an MH block, or alternatively a P block, being an MH block and a Q block being an externally predicted block, or alternatively a P block being an MH block and a Q block being an MH block)
- Если, по меньшей мере, один из блоков P и Q имеет ненулевые коэффициенты преобразования, то параметр граничной мощности упомянутой границы устанавливается равным 1- If at least one of the blocks P and Q has non-zero transform coefficients, then the boundary power parameter of said boundary is set to 1
- В противном случае (если блоки Q и P не имеют ненулевые коэффициенты преобразования), если абсолютная разность между векторами движения, которые используются для предсказания блоков P и Q, больше или равна одной целочисленной выборки, то параметр граничной мощности этой границы устанавливается равный 1.- Otherwise (if the Q and P blocks do not have non-zero transform coefficients), if the absolute difference between the motion vectors that are used to predict the P and Q blocks is greater than or equal to one integer sample, then the boundary power parameter of this boundary is set to 1.
- В противном случае (если блоки Q и P не имеют ненулевых коэффициентов преобразования, и абсолютная разность между векторами движения меньше 1 выборки), если блоки P и Q предсказаны на основании различных опорных изображений или количество векторов движения, которые используются для предсказания блока Q и блока P не равны, то параметр граничной мощности этой границы устанавливается равным 1.- Otherwise (if the Q and P blocks do not have non-zero transform coefficients, and the absolute difference between the motion vectors is less than 1 sample), if the P and Q blocks are predicted based on different reference pictures or the number of motion vectors that are used to predict the Q block and block P are not equal, then the boundary power parameter of this boundary is set equal to 1.
- В противном случае (если вышеупомянутые 3 условия оцениваются ложными) параметр граничной мощности этой границы устанавливается равным 0.- Otherwise (if the above 3 conditions evaluate to false), the boundary power parameter of this boundary is set to 0.
- Если упомянутая граница представляет собой горизонтальную границу и P и Q - If said boundary is a horizontal boundary and P and Q
расположены в двух разных CTUs, тоlocated in two different CTUs, then
- Если блок Q предсказан с применением CIIP предсказания, то определенная граничная мощность модифицирована следующим образом:- If the Q block is predicted using CIIP prediction, then the defined boundary power is modified as follows:
- Если граничная мощность не равна 2, то граничная мощность увеличивается на 1.- If the power limit is not equal to 2, then the power limit is increased by 1.
- Если упомянутая граница представляет собой вертикальную границу или, если - If said boundary is a vertical boundary or if
блок Q и блок P содержится внутри одного и того же CTU,block Q and block P are contained within the same CTU,
- Если, по меньшей мере, один из блока P и блока Q предсказан с применением CIIP предсказания, то параметр граничной мощности упомянутой границы корректируется следующим образом:- If at least one of the P block and the Q block is predicted using CIIP prediction, then the boundary power parameter of said boundary is adjusted as follows:
- Если граничная мощность не равна 2, то граничная мощность увеличивается на 1.- If the power limit is not equal to 2, then the power limit is increased by 1.
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с- The pixel samples contained in the Q block and the P block are filtered with
применением фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Вариант 9 осуществленияOption 9 implementation
В одном примере граничная мощность (Bs) границ CIIP блоков устанавливается на значение 2, но граничная мощность границ субблоков внутри CIIP устанавливается на значение 1. Когда границы субблоков не выровнены по 8х8 сетке выборки, то граничную мощность таких краев устанавливают на значение 0. На фиг.11 показана 8x8 сетка.In one example, the boundary power (Bs) of CIIP block boundaries is set to 2, but the boundary power of sub-block boundaries within a CIIP is set to 1. When sub-block boundaries are not aligned to the 8x8 sampling grid, then the boundary power of such edges is set to 0. In FIG. .11 shows an 8x8 grid.
В другом примере граничная мощность края определяется следующим образом:In another example, the boundary power of an edge is defined as follows:
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как Р блок и Q блок) граничная мощность получена следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as a P block and a Q block), the boundary power is obtained as follows:
- Если упомянутая граница представляет собой горизонтальную границу и блоки P и - If said boundary is a horizontal boundary and blocks P and
Q расположены в разных CTUs, тоQ are located in different CTUs, then
- Если блок Q (где блок Q обозначается как блок, который расположен в нижнем направлении по сравнению с Р блоком) предсказан с применением CIIP предсказания, то граничная мощность устанавливается равной 2.- If a Q block (where a Q block is denoted as a block that is downstream of the P block) is predicted using CIIP prediction, then the power edge is set to 2.
- Если блок Q не предсказан с применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока Р предсказан путем применения внутреннего предсказания, граничная мощность определяется равной 2.- If the Q block is not predicted using CIIP prediction, and if at least one of the Q block or P block is predicted using intra prediction, the edge power is determined to be 2.
- Если блок Q не предсказан путем применения CIIP предсказания и, если оба блока Q и P предсказываются путем применения внешнего предсказания, то граничная мощность определяется меньше 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками).- If the Q block is not predicted by applying CIIP prediction, and if both Q and P blocks are predicted by applying inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- В противном случае (если P и Q, соответствующие двум субблокам внутри CIIP- Otherwise (if P and Q corresponding to two sub-blocks within CIIP
блока, то есть, целевая граница представляет собой границу субблока внутри CIIP блока)block, that is, the target boundary is a sub-block boundary within the CIIP block)
- Если граница субблока выровнена с 8x8 решеткой, установить граничную мощность на значение 1.- If the sub-block border is aligned with the 8x8 grid, set the border power to 1.
- В противном случае (граница субблока не выровнена с 8x8 решеткой), установить граничную мощность до значения 0.- Otherwise (the subblock border is not aligned with the 8x8 grid), set the border power to 0.
- В противном случае (если упомянутая граница представляет собой вертикальную - Otherwise (if said boundary is a vertical
границу или, если блок Q и блок P содержится внутри одного и того же CTU, и P и Q не находится в том же CIIP блоке)boundary, or if Q and P are contained within the same CTU and P and Q are not in the same CIIP)
- Если, по меньшей мере, один из блоков P или Q предсказан с применением CIIP предсказания, то параметр граничной мощности упомянутой границы устанавливается равным 2.- If at least one of the P or Q blocks is predicted using CIIP prediction, then the boundary power parameter of said boundary is set to 2.
- 2. Если оба P и Q блок не предсказаны с применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока P предсказаны путем применения внутреннего предсказания, граничная мощность определяется равной 2.- 2. If both P and Q block are not predicted using CIIP prediction and if at least one of the Q block or P block is predicted using intra prediction, the edge power is determined to be 2.
- 3. Если оба P и Q блок не предсказываются с применением CIIP предсказания и, если оба блока Q и P предсказываются путем применения внешнего предсказания, то граничная мощность определяется меньше 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками).- 3. If both P and Q blocks are not predicted using CIIP prediction, and if both Q and P blocks are predicted using inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- Выборки пикселей, содержащиеся в блоке Q и блоке Р, фильтруются при - The pixel samples contained in the Q block and the P block are filtered when
применении фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Вариант 10 осуществления
В одном примере граничная мощность (Bs) границ CIIP блоков устанавливается на значение 2, но устанавливают граничную мощность границ субблока внутри CIIP блока на значение 1. Когда границы субблока не выровнены при 4х4 сетке выборки, то граничная мощность таких краев устанавливают на значение 0. На фиг.12 показана 4x4 сетка.In one example, the boundary power (Bs) of CIIP block boundaries is set to 2, but the boundary power of sub-block boundaries within the CIIP block is set to 1. 12 shows a 4x4 grid.
В другом примере граничная мощность края устанавливается следующим образом:In another example, the boundary power of an edge is set as follows:
Для границы с двумя сторонами (где пространственно соседние блоки на каждой стороне обозначены как Р блок и Q блок) граничная мощность получена следующим образом:For a border with two sides (where the spatially adjacent blocks on each side are denoted as a P block and a Q block), the boundary power is obtained as follows:
- Если упомянутая граница представляет собой горизонтальную границу и блоки P и - If said boundary is a horizontal boundary and blocks P and
Q расположены в разных CTUs, тоQ are located in different CTUs, then
- Если блок Q (где блок Q обозначается как блок, который расположен в нижнем направлении по сравнению с Р блоком) предсказан с применением CIIP предсказания, то граничная мощность устанавливается равной 2.- If a Q block (where a Q block is denoted as a block that is downstream of the P block) is predicted using CIIP prediction, then the power edge is set to 2.
- Если блок Q не предсказан с применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока Р предсказан с применением внутреннего предсказания, граничная мощность определяется равной 2.- If the Q block is not predicted using CIIP prediction and if at least one of the Q block or the P block is predicted using intra prediction, the edge power is determined to be 2.
- Если блок Q не предсказан с применением CIIP предсказания и, если оба блока Q и P предсказываются путем применения внешнего предсказания, то граничная мощность определяется меньше 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками).- If the Q block is not predicted using CIIP prediction, and if both Q and P blocks are predicted using inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- В противном случае (если P и Q, соответствующие двум субблокам внутри CIIP - Otherwise (if P and Q corresponding to two sub-blocks within CIIP
блока, то есть, целевая граница представляет собой границу субблока внутри CIIP блока)block, that is, the target boundary is a sub-block boundary within the CIIP block)
- Если граница субблока выровнена с помощью 4x4 сетка, граничная мощность устанавливается на значение 1.- If the sub-block boundary is aligned with a 4x4 grid, the boundary power is set to 1.
- В противном случае (граница субблока не выровнена с 4x4 сеткой) граничная мощность устанавливается на значение 0.- Otherwise (the sub-block boundary is not aligned with the 4x4 grid) the boundary power is set to 0.
- В противном случае (если упомянутая граница представляет собой вертикальную - Otherwise (if said boundary is a vertical
границу или, если блок Q и блок P содержаться в внутри одного и того же CTU, и P и Q не находятся в том же CIIP блоке)boundary, or if Q and P are contained within the same CTU, and P and Q are not in the same CIIP)
- Если, по меньшей мере, один из блоков P или Q предсказан с применением CIIP предсказания, параметр граничной мощности упомянутой границы устанавливается равным 2.- If at least one of the P or Q blocks is predicted using CIIP prediction, the boundary power parameter of said boundary is set to 2.
- Если оба P блок и Q блок не предсказаны с применением CIIP предсказания и, если, по меньшей мере, один из блока Q или блока P предсказан с применением внутреннего предсказания, граничная мощность определяется равной 2.- If both P block and Q block are not predicted using CIIP prediction, and if at least one of the Q block or P block is predicted using intra prediction, the edge power is determined to be 2.
- Если оба P и Q блоки не предсказываются с применением CIIP предсказания и, если оба блока Q и P предсказываются с применением внешнего предсказания, то граничная мощность определяется меньше 2 (точное значение граничной мощности определяется в соответствии с дополнительными условными оценками).- If both P and Q blocks are not predicted using CIIP prediction, and if both Q and P blocks are predicted using inter prediction, then the edge power is determined to be less than 2 (the exact value of the edge power is determined according to additional conditional estimates).
- Выборки пикселей, содержащиеся в блоке Q и блоке P, фильтруются с - The pixel samples contained in the Q block and the P block are filtered with
применением фильтра деблокинга в соответствии с определенной граничной мощностью.applying a deblocking filter in accordance with a certain boundary power.
Настоящее приложение дополнительно предоставляет следующие варианты осуществления:This application further provides the following embodiments:
Вариант 1 осуществления. Способ кодирования, в котором кодирование включает в себя декодирование или кодирование, и способ содержит:
определение, предсказан или нет текущий блок кодирования (или блок кодирования) с применением комбинированного внешнего-внутреннего предсказания;determining whether or not the current coding block (or coding block) is predicted using the combined inter-intra prediction;
когда текущий блок кодирования предсказан с применением комбинированного внешнего-внутреннего предсказания,when the current coding block is predicted using combined inter-intra prediction,
установку граничной мощности (Bs) границы текущего блока кодирования на первое значение;setting a boundary power (Bs) of the boundary of the current coding block to a first value;
иand
установку граничной мощности (Bs) границы блока суб-кодирования на второе значение, текущий блок кодирования содержит, по меньшей мере, два блока суб-кодирования и граница блока суб-кодирования является границей между, по меньшей мере, двумя блоками суб-кодирования.setting a power boundary (Bs) of a sub-coding block boundary to a second value, the current coding block contains at least two sub-coding blocks, and the sub-coding block boundary is a boundary between at least two sub-coding blocks.
Вариант 2 осуществления. Способ 1 осуществления, в котором способ дополнительно содержит:
выполнение деблокинга, когда значение Bs больше нуля для компонента яркости; илиperforming deblocking when the value of Bs is greater than zero for the luma component; or
выполнение деблокинга, когда значение Bs превышает 1 для компонентов цветности, в котором значение Bs является одним из первым значением или вторым значением.performing deblocking when the value of Bs exceeds 1 for the chroma components, in which the value of Bs is one of the first value or the second value.
Вариант 3 осуществления. Способ по варианту 1 или 2 осуществления, в котором, когда текущий блок кодирования (или блок) предсказан с применением комбинированного внешнего-внутреннего предсказания, текущий блок кодирования считается блоком с внутренним предсказанием при выполнении деблокинга.Option 3 implementation. The method of
ФИГ.13 представляет собой блок-схему, показывающую примерную структуру устройства 1300 для процесса получения граничной мощности. Устройство 1300 выполнено с возможностью выполнять вышеуказанные способы и может включать в себя:FIG. 13 is a block diagram showing an
блок 1302 определения, выполненный с возможностью определять, предсказывается ли, по меньшей мере, один из двух блоков с применением комбинированного внешнего-внутреннего предсказания (CIIP), в котором два блока включают в себя первый блок (блок Q) и второй блок (блок P), и в котором два блока ассоциированы с границей;a
блок 1304 установки, выполненный с возможностью устанавливать граничную мощность (Bs) границы на первое значение, когда, по меньшей мере, один из двух блоков предсказывается с применением CIIP; и устанавливать граничную мощность (Bs) границы на второе значение когда ни один из двух блоков не предсказывается с применением CIIP.a
Например, блок установки выполнен с возможностью устанавливать Bs границы на первое значение, когда первый блок предсказывается с применением CIIP или, когда второй блок предсказывается с применением CIIP.For example, the setter is configured to set the bounds Bs to a first value when the first block is predicted using CIIP or when the second block is predicted using CIIP.
Устройство 2500 может дополнительно включать в себя устройство синтаксического анализа (не показано на фиг.13), выполненное с возможностью выполнять синтаксический анализ битового потока для получения флага, в котором флаг используется для указания, предсказывается ли, по меньшей мере, один из двух блоков с применением CIIP.The device 2500 may further include a parser (not shown in FIG. 13) configured to parse the bitstream to obtain a flag, in which the flag is used to indicate whether at least one of the two blocks is predicted with using CIIP.
Блок 1302 определения может быть выполнен с возможностью определять, предсказывается ли, по меньшей мере, один из двух блоков с применением внутреннего предсказания. Блок 1304 установки выполнен с возможностью устанавливать Bs границы на первое значение, когда ни один из двух блоков не предсказывается с применением внутреннего предсказания и, когда, по меньшей мере, один из двух блоков предсказывается с применением CIIP. Например, первое значение может быть 1 или 2.The
Блок 1304 установки выполнен с возможностью устанавливать Bs границы на второе значение, когда ни один из двух блоков не предсказывается с применением внутреннего предсказания и, когда ни один из двух блоков не предсказывается с применением CIIP. Например, второе значение может быть 1, когда, по меньшей мере, один из двух блоков (P и Q) имеет ненулевые коэффициенты преобразования.A
Эффект изобретенияInvention Effect
Фильтрация деблокинга блоков, предсказанных с применением мульти гипотетического предсказания, выполняется с помощью фильтра деблокинга со средней мощностью (граничная мощность, равная 1).Deblocking filtering of blocks predicted using multi-hypothetical prediction is performed with a medium power deblocking filter (cutoff power equal to 1).
Если блок предсказывается с применением CIIP предсказания, то получают первое предсказание с применением внешнего предсказания и второе предсказание получают с применением внутреннего предсказания, которые впоследствии объединяются. Поскольку окончательное предсказание включает в себя часть внутреннего предсказания, то, обычно, в этой части наблюдается больше артефактов блочности. Следовательно, возможно, что на границах блока, который предсказывается CIIP предсказанием, могут быть артефакты блочности. Для устранения данного недостатка граничная мощность устанавливается на 2 в соответствии с вариантами осуществления изобретения, что увеличивает вероятность успешной фильтрации деблокинга краев блока, которые предсказывают с применением CIIP предсказания.If the block is predicted using CIIP prediction, then a first prediction using inter prediction is obtained and a second prediction is obtained using intra prediction, which are subsequently combined. Since the final prediction includes the intra-prediction part, there are usually more blocking artifacts in this part. Therefore, it is possible that there may be blocking artifacts at the boundaries of a block that is predicted by CIIP prediction. To overcome this shortcoming, the edge power is set to 2 in accordance with embodiments of the invention, which increases the probability of successful deblocking filtering of block edges that are predicted using CIIP prediction.
Дополнительно, варианты осуществления настоящего изобретения обеспечивают снижение необходимого объема линейной памяти следующим образом. Линейная память определяется как память, необходимая для хранения информации, соответствующей верхней строке CTU, и которые необходимы при обработке соседней нижней строки CTU. Например, для фильтрации горизонтальной границы между двумя строками CTU, информация предсказания (внутреннего предсказания/внешнего предсказания/мульти гипотетического предсказания) верхнего CTU должна храниться в списке памяти. Поскольку для описания режима предсказания блока возможны 3 состояния (внутреннего предсказания/внешнего предсказания/мульти гипотетического предсказания), требование линейной памяти можно определить как 2 бита на блок.Additionally, embodiments of the present invention reduce the required amount of linear memory as follows. Linear memory is defined as the memory required to store information corresponding to the top line of the CTU, and which is needed in processing the adjacent bottom line of the CTU. For example, in order to filter a horizontal boundary between two rows of CTUs, prediction information (intra prediction/inter prediction/multi-hypothetical prediction) of the upper CTU must be stored in a memory list. Since 3 states (intra prediction/inter prediction/multi-hypothetical prediction) are possible to describe the block prediction mode, the linear memory requirement can be defined as 2 bits per block.
Согласно вариантам осуществления настоящего изобретения, если блок (блок P в вариантах осуществления) принадлежит к верхней строке CTU, то операция деблокинга требует только информацию определения, предсказывается ли блок с применением внешнего предсказания или внутреннего предсказания (поэтому только 2 состояния можно хранить с помощью одного бита на блок). Далее изложено обоснование данного утверждения:According to the embodiments of the present invention, if a block (block P in the embodiments) belongs to the top row of the CTU, then the deblocking operation only requires determination information whether the block is predicted using inter prediction or intra prediction (therefore, only 2 states can be stored with one bit per block). The following is the rationale for this assertion:
Если граница между Р блоком и Q блоком представляет собой горизонтальную границу и, если Q блок и P блок принадлежат к 2 различным CTUs (Q блок является одним нижним по отношению к Р блоку во всех вариантах осуществления), то информация определения, предсказывается ли блок с применением CIIP предсказания не используется в определении параметра граничной мощности. Поэтому ее не нужно хранить. С помощью вариантов осуществления изобретения в аппаратной реализации режим предсказания P блока может быть временно изменен в виде внешнего предсказания (когда P блока предсказывается с применением СIIP предсказания), и определение граничной мощности может быть выполнено в соответствии с измененным режимом предсказания. После этого (после определения граничной мощности) режим предсказания можно изменить обратно на CIIP предсказание. Следует отметить, что аппаратные реализации не ограничиваются этим способом, описанным в настоящем документе (изменение режима предсказания P блока на CTU границе), но просто представлены в качестве примера для пояснения того, что, в соответствии с вариантами осуществления изобретения, информация определения, предсказан ли блок P с применением CIIP предсказания, не требуется при определении граничной мощности (на горизонтальных CTU границах).If the border between the P block and the Q block is a horizontal border, and if the Q block and the P block belong to 2 different CTUs (the Q block is one lower with respect to the P block in all embodiments), then the determination information whether the block is predicted with application of CIIP prediction is not used in determining the boundary power parameter. Therefore, it does not need to be stored. With embodiments of the invention, in a hardware implementation, the P block prediction mode can be temporarily changed as inter prediction (when P block is predicted using CIIP prediction), and edge power determination can be performed according to the changed prediction mode. After that (after determining the boundary power), the prediction mode can be changed back to CIIP prediction. It should be noted that hardware implementations are not limited to this method described herein (changing P block prediction mode at CTU boundary), but are simply provided as an example to clarify that, according to embodiments of the invention, the information of determining whether P block using CIIP prediction is not required when determining power edge (at horizontal CTU boundaries).
Следовательно, в соответствии с вариантами осуществления изобретения, объем требуемой линейной памяти снижается с 2 бит на блок до 1 бита на блок. Следует отметить, что общий объем линейной памяти, который необходим для реализации в аппаратном обеспечении, пропорционален изображению и обратно пропорционален минимальной ширине блока.Therefore, according to embodiments of the invention, the amount of linear memory required is reduced from 2 bits per block to 1 bit per block. It should be noted that the total amount of linear memory required for implementation in hardware is proportional to the image and inversely proportional to the minimum block width.
Отмечено, что в соответствии со всеми описанными ранее вариантами осуществления настоящего изобретения, если блок предсказывается с применением CIIP предсказания, первое предсказание получают путем применения внешнего предсказания и второе предсказание получают путем применения внутреннего предсказания, которые впоследствии объединяются.It is noted that in accordance with all the previously described embodiments of the present invention, if a block is predicted using CIIP prediction, a first prediction is obtained by applying inter prediction and a second prediction is obtained by applying intra prediction, which are subsequently combined.
Приведенные выше варианты осуществления указывают, что CIIP блоки рассматриваются в качестве блоков с внутренним предсказанием в различной степени при выполнении фильтра деблокинга. Вариант 1, 2 и 3 осуществления используется в трех различных стратегиях для регулировки граничной мощности границы. Вариант 1 осуществления относится к MH блокам, которые полностью являются блоками с внутренним предсказанием. Следовательно, в таблице 1 условие установки Bs на 2 одинаково.The above embodiments indicate that CIIP blocks are considered as intra prediction blocks to varying degrees when the deblocking filter is executed.
Вариант 2 осуществления также рассматривает условие, при котором степень искажения, вызванное MH блоками, не так высоко, как блоками с внутренним предсказанием. Следовательно, условия граничной мощности проверяются сначала для блоков с внутренним предсказанием и затем для CIIP блоков. Однако, при обнаружении CIIP блока, Bs все еще равно 2.
Вариант 3 осуществления относится к MH блокам частично в виде блоков с внутренним предсказанием, где Bs увеличивается на единицу, если, по меньшей мере, один соседний блок границы является MH блоком. Если Bs уже равна 2, то используется обычная стратегия получения и Bs не изменяется.Embodiment 3 refers to MH blocks partly as intra prediction blocks, where Bs is incremented by one if at least one neighboring boundary block is an MH block. If Bs is already 2, then the normal acquisition strategy is used and Bs is not changed.
Фиг.8 иллюстрирует блок-схему алгоритма процесса получения Bs в VVC Проект 3.0. Фиг.7, 9 и 10 изображают изменения в процессе получения Bs для вариантов 1, 2 и 3 осуществления, соответственно.8 illustrates a flowchart of the Bs acquisition process in VVC Draft 3.0. Fig.7, 9 and 10 depict changes in the process of obtaining Bs for
Стоит отметить, что посредством вариантов 1 и 2 осуществления снижают не только потенциальное искажение, но сокращают логику обработки. В вариантах 1 и 2 осуществления, если P или Q блок является MH блоком, проверка коэффициентов и вектора движения больше не требуется, тем самым, сокращается задержка для проверки состояния.It is worth noting that through
Варианты 4, 5, 6 осуществления являются соответствующими вариациями вариантов 1, 2 и 3 осуществления, где рассматривается линейная буферная память. Основное отличие от вариантов 1, 2 и 3 осуществления заключается в том, что когда две стороны P и Q, расположенные в разных CTUs и край является горизонтальным, проверка MH блока осуществляется асимметрично. А именно, сторона Р блока (т.е. верхняя сторона) не проверяется, но проверяется только сторона Q блока (то есть, нижняя сторона). Таким образом, для хранения флага CIIP стороны Р блока, который находится в другом CTU, никакой дополнительной линейной буферной памяти не выделяется.
В дополнение к вышеупомянутым вариантам осуществления, один дополнительный признак MH блоков может заключаться в том, что MH блоки не нужно рассматривать как блоки с внутренним предсказанием последовательно. В одном примере при поиске предикторов вектора движения текущего блока, если его соседние блоки являются MH блоком, то вектор движения этих MH блоков можно рассматривать как предикторы вектора движения. В этом случае используется информация внешнего предсказания MH блоков и, следовательно, MH блоки больше не рассматриваются, как блоки с внутренним предсказанием. В другом примере при составлении MPM списка для блоков с внутренним предсказанием соседние MH блоки текущего блока можно рассматривать как не включающие в себя информацию внутреннего предсказания. Следовательно, при проверке доступности MH блоков для составления MPM списка текущего блока, они обозначены как НЕ доступные. Обратите внимание, что MH блоки, упомянутые в этом абзаце, не ограничены только MH блоками, которые используются для определения значения Bs фильтра деблокинга.In addition to the above embodiments, one additional feature of the MH blocks may be that the MH blocks do not need to be considered as intra prediction blocks sequentially. In one example, when looking for motion vector predictors of a current block, if its neighboring blocks are an MH block, then the motion vector of those MH blocks can be considered as motion vector predictors. In this case, the inter-prediction information of the MH blocks is used, and therefore the MH blocks are no longer considered to be intra-predictive blocks. In another example, when compiling an MPM list for intra prediction blocks, adjacent MH blocks of the current block may be considered as not including intra prediction information. Therefore, when checking the availability of MH blocks for the MPM to list the current block, they are marked as NOT available. Note that the MH blocks mentioned in this paragraph are not limited to the MH blocks that are used to determine the Bs value of the deblocking filter.
В дополнение к вышеупомянутым шести вариантам осуществления, один дополнительный признак MH блоков может заключаться в том, что MH блоки считаются постоянно блоками с внутренним предсказанием. В одном примере при поиске предикторов вектора движения текущего блока, если его соседние блоки представляют собой MH блоки, их вектор движения исключается из предикторов вектора движения. В этом случае информация внешнего предсказания MH блоков НЕ используется и, следовательно, MH блоки рассматриваются как блоки с внутренним предсказанием. В другом примере при составлении MPM списка для блоков с внутренним предсказанием соседние MH блоки текущего блока можно рассматривать как включающие в себя информацию внутреннего предсказания. Поэтому при проверке доступности MH блоков для составления MPM списка текущего блока они обозначены как доступные. Обратите внимание, что MH блоки, упомянутые в этом абзаце, не ограничены только MH блоками, которые используются для определения значения Bs фильтра деблокинга.In addition to the above six embodiments, one additional feature of MH blocks may be that MH blocks are considered to be intra-predictive blocks all the time. In one example, when searching for motion vector predictors of a current block, if its neighboring blocks are MH blocks, their motion vector is excluded from the motion vector predictors. In this case, the inter prediction information of the MH blocks is NOT used, and therefore the MH blocks are considered as intra prediction blocks. In another example, when compiling an MPM list for intra prediction blocks, adjacent MH blocks of the current block may be considered to include intra prediction information. Therefore, when checking the availability of MH blocks to compile the MPM list of the current block, they are marked as available. Note that the MH blocks mentioned in this paragraph are not limited to the MH blocks that are used to determine the Bs value of the deblocking filter.
Ниже приведено объяснение реализаций способа кодирования и способа декодирования, как показано в вышеупомянутых вариантах осуществления, и система, их использующая.The following is an explanation of the implementations of the encoding method and the decoding method as shown in the above embodiments, and the system using them.
Фиг.14 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Эта система 3100 поставки контента содержит в себя устройство 3102 захвата, оконечное устройство 3106 и возможно включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с оконечным устройством 3106 по линии 3104 связи. Линия связи может содержать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, помимо прочего, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию и т.п.14 is a block diagram showing a content supply system 3100 for implementing a content distribution service. This content delivery system 3100 includes a
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на чертежах), и сервер кодирует данные и передает закодированные данные в оконечное устройство 3106. Устройство 3102 захвата включает в себя, но не ограничивается, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, PDA, устройство, установленное на транспортном средстве, или их комбинация и т.п. Например, устройство 3102 захвата может включать в себя устройство 12 источника, как описано выше. Когда данные включают в себя видео, видеокодер 20, содержащийся в устройстве 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть, голос), аудиокодер, содержащийся в устройстве 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата отдельно распределяет кодированные аудиоданные и кодированные видеоданные на оконечное устройство 3106.The
В системе 3100 поставки контента оконечное устройство 310 принимает и воспроизводит закодированные данные. Оконечное устройство 3106 может быть устройством, выполненным с возможностью принимать и восстанавливать данные, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка ( STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, или их комбинация или тому подобное, выполненное с возможностью декодировать вышеупомянутые закодированные данные. Например, оконечное устройство 3106 может включать в себя устройство 14 назначение, как описано выше. Когда кодированные данные включают в себя видео, для выполнения декодирования видео предоставляется приоритет видеодекодеру 30, содержащемуся в оконечном устройстве. Когда кодированные данные включают в себя звук, аудиодекодер, содержащийся в оконечном устройстве, получает приоритет для выполнения обработки декодирования звука.In the content delivery system 3100, the
Для оконечного устройства с дисплеем, например, смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или устройства 3124, установленного на транспортном средстве, оконечное устройство может передавать декодированные данные на свой дисплей. Для оконечного устройства, не оборудованного дисплеем, например, STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.For a display terminal such as a 3108 Smartphone or Tablet, 3110 Computer or Laptop, 3112 Network Video Recorder (NVR)/DVR (DVR), 3114 TV, 3122 Personal Digital Assistant (PDA), or 3124 Vehicle Mounted Device, the terminal may transmit the decoded data to its display. For a terminal device not equipped with a display, such as STB 3116, video conferencing system 3118 or video surveillance system 3120, it establishes contact with an
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство для кодирования изображения или устройство для декодирования изображения, как показано в вышеупомянутых вариантах осуществления.When each device in this system performs encoding or decoding, an image encoding device or an image decoding device may be used as shown in the above embodiments.
Фиг.15 является схемой, показывающей структуру примера оконечного устройства 3106. После того, как оконечное устройство 3106 принимает поток из устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи потока. Протокол содержит, помимо прочего, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию или тому подобное.15 is a diagram showing the structure of an
После того, как блок 3202 обработки протокола обработает поток, формируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации закодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.After the
Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, возможно, субтитры. Видеодекодер 3206, который содержит видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для генерирования аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на фиг.18) перед подачей его в блок 3212 синхронизации. Аналогично, аудиокадр может сохраняться в буфере (не показан на фиг.18) перед подачей его в блок 3212 синхронизации.Through the demultiplexing processing, a video elementary stream (ES), audio ES, and possibly subtitles are generated. The
Блок 3212 синхронизации синхронизирует видеокадр и звуковой кадр и подает видео/аудио на видео/аудио дисплей 3214. Например, блок 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может быть закодирована в синтаксисе с использованием временных меток, касающихся представления кодированных аудио- и визуальных данных, и временных меток, относящихся доставки самого потока данных.The
При наличии субтитр в потоке, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры в дисплей 3216 видео/аудио/субтитров.If there is a subtitle in the stream, the
Настоящее изобретение не ограничивается вышеупомянутой системой, и в вышеупомянутых вариантах осуществления либо устройство для кодирования изображения, либо устройство для декодирования изображения может быть включено в другую систему, например, автомобильную систему.The present invention is not limited to the above system, and in the above embodiments, either the image encoding device or the image decoding device may be included in another system such as an automobile system.
Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, то есть, обработка или кодирование отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, если обработка кодирования изображения ограничена одним изображением 17, могут быть недоступны только блоки 244 (кодер) и 344 (декодер) внешнего предсказания. Все другие функции (также называемые инструментами или технологиями) видеокодера 20 и видеодекодер 30 могут в равной степени использоваться для обработки неподвижных изображений, например, вычисление остатка 204/304, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, разделение 262/362, внутреннее предсказание 254/354 и/или контурная фильтрация 220, 320 и энтропийное кодирование 270 и энтропийное декодирование 304.Although embodiments of the invention have been primarily described in terms of video coding, it should be noted that the embodiments of
Варианты осуществления, например, кодера 20 и декодера 30, а также описанные здесь функции, например, применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на машиночитаемом носителе или передаваться через среду связи в виде одной или нескольких инструкций или кода и выполняться аппаратным процессором. Машиночитаемый носитель может содержать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающему в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода и/или структур данных для реализации способов, описанных в настоящем изобретении. Компьютерный программный продукт может содержать в себя машиночитаемый носитель.Embodiments of, for example,
В качестве примера, но не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения требуемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Дополнительно, любое соединение правильно называть машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновый сигнал, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал рассматриваются в качестве среды связи. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого относятся к энергонезависимым материальным носителям данных. Диск, как используется в настоящем документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, и диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем машиночитаемых носителей.By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk or other magnetic storage devices, flash memory, or any other media which can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. Additionally, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are considered as the communication medium. However, it should be understood that computer-readable storage media and storage media do not include connections, carrier waves, signals, or other temporary media, but instead refer to non-volatile, tangible storage media. A disc as used herein includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disk, and a Blu-ray disc, where the discs usually reproduce data magnetically and the discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer readable media.
Инструкции могут выполняться одним или несколькими процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый в настоящем описании, может относиться к любой из вышеупомянутой структуре или любой другой структуре, подходящей для реализации описанных способов. Дополнительно, в некоторых аспектах, описанные в настоящем документе, функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Дополнительно, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structure, or any other structure suitable for implementing the described methods. Additionally, in some aspects described herein, functionality may be provided within dedicated hardware and/or software modules capable of encoding and decoding or contained in a combined codec. Additionally, the methods may be fully implemented in one or more circuits or logic elements.
Способы настоящего изобретения могут быть реализованы в большом количестве устройств или приспособлений, включающие в себя беспроводной телефон, интегральную схему (IC) или набор ICs (например, набор микросхем). В настоящем изобретении описаны различные компоненты, модули или блоки для представления функциональных аспектов устройств, выполненных с возможностью выполнять раскрытые технологии, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включающий в себя один или несколько процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.The methods of the present invention may be implemented in a wide variety of devices or appliances, including a wireless telephone, an integrated circuit (IC), or a set of ICs (eg, a chipset). The present invention describes various components, modules, or blocks to represent the functional aspects of devices capable of performing the disclosed technologies, but not necessarily requiring implementation in different hardware blocks. Rather, as described above, the various blocks may be combined into a codec hardware block, or provided by a set of cooperating hardware blocks, including one or more processors, as described above, in combination with suitable software and/or firmware.
Claims (75)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US62/776,491 | 2018-12-07 | ||
| US62/792,380 | 2019-01-14 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2783348C1 true RU2783348C1 (en) | 2022-11-11 |
Family
ID=
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8085845B2 (en) * | 2003-08-26 | 2011-12-27 | Thomson Licensing | Method and apparatus for encoding hybrid intra-inter coded blocks |
| WO2013042923A1 (en) * | 2011-09-20 | 2013-03-28 | 엘지전자 주식회사 | Method and apparatus for encoding/decoding image information |
| RU2547707C2 (en) * | 2010-08-17 | 2015-04-10 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for encoding video using variable tree structure conversion unit, and method and apparatus for decoding video |
| RU2580056C2 (en) * | 2010-05-18 | 2016-04-10 | Сони Корпорейшн | Image processing device and method |
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8085845B2 (en) * | 2003-08-26 | 2011-12-27 | Thomson Licensing | Method and apparatus for encoding hybrid intra-inter coded blocks |
| RU2580056C2 (en) * | 2010-05-18 | 2016-04-10 | Сони Корпорейшн | Image processing device and method |
| RU2547707C2 (en) * | 2010-08-17 | 2015-04-10 | Самсунг Электроникс Ко., Лтд. | Method and apparatus for encoding video using variable tree structure conversion unit, and method and apparatus for decoding video |
| WO2013042923A1 (en) * | 2011-09-20 | 2013-03-28 | 엘지전자 주식회사 | Method and apparatus for encoding/decoding image information |
Non-Patent Citations (1)
| Title |
|---|
| BENJAMIN BROSS et al., Versatile Video Coding (Draft 3), JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/ IEC JTC 1/SC 29/WG 11, JVET-L1001-v9, 12 October 2018. * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP7692096B2 (en) | Corresponding methods of boundary strength derivation for the encoder, decoder, and deblocking filter | |
| JP7469475B2 (en) | Filtering method and apparatus for cross-component linear model prediction - Patents.com | |
| JP2022537064A (en) | Encoders, decoders and corresponding methods | |
| CN113545063A (en) | Method and apparatus for intra prediction using linear model | |
| EP3868110B1 (en) | An encoder, a decoder and corresponding methods of deblocking filter adaptation | |
| CN112673640A (en) | Encoder, decoder and corresponding methods using palette coding | |
| CN113678437A (en) | Method and apparatus for intra smoothing | |
| CN113287301A (en) | Inter-component linear modeling method and device for intra-frame prediction | |
| AU2024201152A1 (en) | An encoder, a decoder and corresponding methods using intra mode coding for intra prediction | |
| CN113228632A (en) | Encoder, decoder, and corresponding methods for local illumination compensation | |
| RU2783348C1 (en) | Encoder, decoder and corresponding methods for obtaining the boundary power of the debloking filter | |
| RU2809841C2 (en) | Method and device for intra-frame prediction using linear model | |
| RU2777967C1 (en) | Deblocking filter for the boundaries of subsections that arise under the influence of the intra-subsection coding tool | |
| RU2824186C2 (en) | Encoder, decoder and related methods | |
| EP4622267A2 (en) | An encoder, a decoder and corresponding methods of reduction on intra prediction for the planar mode |