RU2786022C1 - Device and method for limitations of block level depending on mode and size - Google Patents
Device and method for limitations of block level depending on mode and size Download PDFInfo
- Publication number
- RU2786022C1 RU2786022C1 RU2021121554A RU2021121554A RU2786022C1 RU 2786022 C1 RU2786022 C1 RU 2786022C1 RU 2021121554 A RU2021121554 A RU 2021121554A RU 2021121554 A RU2021121554 A RU 2021121554A RU 2786022 C1 RU2786022 C1 RU 2786022C1
- Authority
- RU
- Russia
- Prior art keywords
- block
- intra prediction
- value
- idx
- prediction mode
- Prior art date
Links
- 241000023320 Luma <angiosperm> Species 0.000 claims description 8
- 230000002085 persistent Effects 0.000 claims description 7
- 101700045773 CLIP1 Proteins 0.000 claims description 3
- 101700002690 CLIP3 Proteins 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 238000005303 weighing Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 27
- 230000000875 corresponding Effects 0.000 description 25
- 230000015654 memory Effects 0.000 description 24
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 description 18
- 238000000034 method Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 15
- 230000001131 transforming Effects 0.000 description 13
- 230000003044 adaptive Effects 0.000 description 10
- 238000001914 filtration Methods 0.000 description 10
- 238000007906 compression Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000001419 dependent Effects 0.000 description 5
- 238000000926 separation method Methods 0.000 description 5
- 241001442055 Vipera berus Species 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000001702 transmitter Effects 0.000 description 4
- 101710013302 CTBS Proteins 0.000 description 3
- 230000003287 optical Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 239000000969 carrier Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000009499 grossing Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006011 modification reaction Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 240000001290 Cordia sebestena Species 0.000 description 1
- 210000002381 Plasma Anatomy 0.000 description 1
- 210000004915 Pus Anatomy 0.000 description 1
- 230000003190 augmentative Effects 0.000 description 1
- 230000002457 bidirectional Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement Effects 0.000 description 1
- 230000004059 degradation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 230000004301 light adaptation Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 229920002635 polyurethane Polymers 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static Effects 0.000 description 1
- 230000001360 synchronised Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001052 transient Effects 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe technical field to which the invention belongs
Варианты осуществления настоящей заявки (раскрытия) в общем относятся к области обработки изображений и, в частности, к внутреннему предсказанию с позиционно-зависимой комбинацией предсказания.Embodiments of the present application (disclosure) generally relate to the field of image processing and, in particular, to intra prediction with a position-dependent prediction combination.
Уровень техники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.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Ввиду вышеупомянутых технических задач настоящее раскрытие предлагает решение вышеупомянутых технических задач.In view of the above technical problems, the present disclosure provides a solution to the above technical problems.
Варианты осуществления настоящего раскрытия предлагают устройства и способы внутреннего предсказания блока изображения в соответствии с независимыми пунктами формулы изобретения.Embodiments of the present disclosure provide devices and methods for intra prediction of an image block in accordance with the independent claims.
Решения вышеуказанных и других задач настоящего раскрытия изложены в независимых пунктах формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.Solutions to the above and other objectives of the present disclosure are set forth in the independent claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.
Настоящее раскрытие предлагает:This disclosure suggests:
способ внутреннего предсказания блока изображения, содержит, для выборки из множества выборок блока:an image block intra-prediction method, contains, for sampling from a plurality of block samples:
определение значения предсказанной выборки из одного или более значений опорной выборки посредством внутреннего предсказания с использованием режима внутреннего предсказания, выбранного из одного из DC режима внутреннего предсказания, планарного режима внутреннего предсказания и углового режима внутреннего предсказания;determining a predicted sample value from one or more reference sample values by intra prediction using an intra prediction mode selected from one of DC intra prediction mode, planar intra prediction mode, and angular intra prediction mode;
определение первого веса на основании режима внутреннего предсказания и одного из высоты блока, ширина блока или обоих;determining a first weight based on the intra prediction mode and one of a block height, a block width, or both;
определение второго веса на основании режима внутреннего предсказания и одного из высоты блока, ширина блока или обоих;determining a second weight based on the intra prediction mode and one of the block height, block width, or both;
вычисление дополнительного значения в качестве взвешенной суммы значения верхней опорной выборки и значения левой опорной выборки посредством взвешивания значения верхней опорной выборки первым весом и значения левой опорной выборки вторым весом;calculating an additional value as a weighted sum of the upper reference sample value and the left reference sample value by weighting the upper reference sample value with a first weight and the left reference sample value with a second weight;
умножение значения предсказанной выборки на весовой коэффициент выборки для получения взвешенного значения предсказанной выборки;multiplying the predicted sample value by the sample weight to obtain a weighted predicted sample value;
добавление дополнительного значения к взвешенному значению предсказанной выборки для получения ненормализованного модифицированного значения предсказанной выборки; иadding an additional value to the weighted value of the predicted sample to obtain a non-normalized modified value of the predicted sample; and
нормализация ненормализованного модифицированного значения предсказанной выборки посредством арифметического правого сдвига целочисленного представления ненормализованного модифицированного значения предсказанной выборки для получения нормализованного модифицированного значения предсказанной выборки.normalizing the non-normalized modified predicted sample value by arithmetic right shifting an integer representation of the non-normalized modified predicted sample value to obtain a normalized modified predicted sample value.
В частности, в настоящем документе первый вес и второй вес могут быть разными.In particular, herein, the first weight and the second weight may be different.
В возможной форме реализации способа в соответствии с предшествующим аспектом как таковым, в котором способ содержит внутреннее предсказание блока изображения, содержащий каждую выборку множества выборок блока.In an exemplary form of implementing the method according to the foregoing aspect, as such, wherein the method comprises intra-prediction of an image block containing each sample of a plurality of block samples.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в которомIn a possible form of implementation of the method according to any previous implementation of the previous aspect or the previous aspect as such, in which
определение первого веса и определения второго веса содержит определение коэффициента масштабирования на основании режима внутреннего предсказания и одного из высоты блока, ширины блока или обоих; в котором первый вес и второй вес определяются на основании коэффициента масштабирования, соответственно.determining the first weight and determining the second weight comprises determining a scaling factor based on the intra prediction mode and one of a block height, a block width, or both; in which the first weight and the second weight are determined based on the scaling factor, respectively.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового; в которомIn a possible form of implementation of the method according to any previous implementation of the previous aspect or the previous aspect as such; wherein
определение первого веса содержит определение вертикального коэффициента масштабирования, обозначенный nScaleY, на основании высоты блока и режима внутреннего предсказания, в котором первый вес определяется на основании вертикального коэффициента масштабирования, nScaleY;determining the first weight comprises determining a vertical scale factor, denoted nScaleY, based on the block height and an intra prediction mode in which the first weight is determined based on the vertical scale factor, nScaleY;
определение второго веса содержит определение горизонтального коэффициента масштабирования, обозначенный nScaleX, на основании ширины блока и режима внутреннего предсказания, в котором второй вес определяется на основании горизонтального коэффициента масштабирования, nScaleX, нормализацию ненормализованного значения предсказанной выборки арифметическим правым сдвигом целочисленного представления ненормализованного значения предсказанной выборки для получения нормализованного значения предсказанной выборки.determining the second weight comprises determining a horizontal scale factor, denoted nScaleX, based on the block width and an intra prediction mode in which the second weight is determined based on the horizontal scale factor, nScaleX, normalizing the denormalized predicted sample value by arithmetic right shifting the integer representation of the denormalized predicted sample value to obtain the normalized value of the predicted sample.
В настоящем изобретении определение первого веса содержит определение вертикального коэффициента масштабирования, тогда как определение второго веса содержит определение горизонтального коэффициента масштабирования, в котором следует понимать, что в зависимости от типа режима внутреннего предсказания, эти коэффициенты могут быть разными.In the present invention, the definition of the first weight contains the definition of the vertical scaling factor, while the definition of the second weight contains the definition of the horizontal scaling factor, in which it should be understood that depending on the type of intra prediction mode, these coefficients may be different.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором nScaleX и nScaleY получены на основании индекса класса режима, соответственно, в котором индекс класса режима получен с использованием группы режимов внутреннего предсказания.In an exemplary form of implementing the method according to any prior implementation of the preceding aspect or the preceding aspect as such, wherein nScaleX and nScaleY are derived based on a mode class index, respectively, wherein the mode class index is derived using an intra prediction mode group.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором индекс класса режима отображается на конкретную группу режимов внутреннего предсказания в соответствии с одной из следующих таблиц:In an exemplary implementation form of the method according to any prior implementation of the preceding aspect, or the preceding aspect as such, wherein a mode class index is mapped to a particular group of intra prediction modes according to one of the following tables:
в котором DC_IDX означает DC режим, который имеет индекс режима внутреннего предсказания равный 1, HOR_IDX и VER_IDX означают горизонтальный и вертикальный режимы, которые имеют индексы режима внутреннего предсказания 18 и 50 соответственно, VDIA_IDX обозначает диагональный режим, который имеет индекс режима внутреннего предсказания равный 66.wherein DC_IDX denotes a DC mode which has an intra prediction mode index of 1, HOR_IDX and VER_IDX denotes horizontal and vertical modes which have intra prediction mode indices of 18 and 50 respectively, VDIA_IDX denotes a diagonal mode which has an intra prediction mode index of 66.
В настоящем изобретении показаны разные отображения групп режимов внутреннего предсказания на разные классы.The present invention shows different mappings of intra prediction mode groups to different classes.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором nScaleX и nScaleY получают в соответствии со следующим отображением:In an exemplary form of implementing the method according to any prior implementation of the preceding aspect, or the preceding aspect as such, wherein nScaleX and nScaleY are obtained according to the following mapping:
в котором nTbW и nTbH обозначают ширину и высоту предсказанного блока, соответственно, и «>>» обозначает операцию правого сдвига;in which nTbW and nTbH denote the width and height of the predicted block, respectively, and ">>" denotes a right shift operation;
в котором Floor является функцией округления до ближайшего целого в меньшую сторону, Log2 нормализует целочисленный логарифм к основанию 2, Min означает наименьший из его аргументов и «>>» обозначает операцию правого сдвига.where Floor is a function of rounding down to the nearest integer, Log2 normalizes the integer logarithm to
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором индекс класса режима отображается на конкретную группу режимов внутреннего предсказания в соответствии со следующей таблицей:In an exemplary form of implementation of the method according to any prior implementation of the preceding aspect, or the preceding aspect as such, wherein a mode class index is mapped to a particular group of intra prediction modes according to the following table:
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором nScaleX и nScaleY получают в соответствии со следующим отображением:In an exemplary form of implementing the method according to any prior implementation of the preceding aspect, or the preceding aspect as such, wherein nScaleX and nScaleY are obtained according to the following mapping:
в котором nTbW и nTbH обозначают ширину и высоту предсказанного блока, соответственно, и «>>» обозначает операцию правого сдвига;in which nTbW and nTbH denote the width and height of the predicted block, respectively, and ">>" denotes a right shift operation;
в котором Floor является функцией округления до ближайшего целого в меньшую сторону, Log2 нормализует целочисленный логарифм к основанию 2, Min означает наименьший из его аргументов и «>>» обозначает операцию правого сдвига; в котором invAngle является параметром обратного угла, который получен с использованием intraPredAngle следующим образом:where Floor is a function of rounding down to the nearest integer, Log2 normalizes the integer logarithm to
в котором IntraPredAngle является параметром угла, который получен из режима внутреннего предсказания, заданный переменной predModelntra, используя таблицу поиска, LUT.wherein IntraPredAngle is an angle parameter that is obtained from the intra prediction mode specified by the predModelntra variable using a lookup table, LUT.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором LUT задается следующей таблицейIn a possible form of implementation of the method according to any prior implementation of the preceding aspect or the preceding aspect as such, in which the LUT is given by the following table
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором нормализация ненормализованного модифицированного значения предсказанной выборки содержит вычисление значения предсказанной выборки как In an exemplary form of implementing the method of any prior implementation of the preceding aspect, or the preceding aspect as such, wherein normalizing the de-normalized modified predicted sample value comprises computing the predicted sample value as
в которомwherein
P(x,у) является ненормированным модифицированным предсказанным значением выборки,P(x, y) is the unnormalized modified sample predicted value,
представляют собой значения ближайших опорных выборок, расположенных выше и слева от каждой выборки, are the values of the closest reference samples located above and to the left of each sample,
wL=V>>((х<<1)>>nScaleX) является горизонтальным весовым коэффициентом,wL=V>>((x<<1)>>nScaleX) is the horizontal weighting factor,
wT=V>>((у<<1)>>nScaleY) является вертикальным весовым коэффициентом,wT=V>>((y<<1)>>nScaleY) is the vertical weight,
V является базовым значением;V is the base value;
х является горизонтальной координатой каждой выборки иx is the horizontal coordinate of each sample, and
у является вертикальной координатой выборки;y is the vertical sample coordinate;
в котором cliplCmp устанавливается следующим образом:in which cliplCmp is set like this:
в случае, если cIdx равен 0, clip1Cmp устанавливается равным CliplY;if cIdx is 0, clip1Cmp is set to CliplY;
в противном случае clip1Cmp устанавливается равным Clip1C;otherwise clip1Cmp is set equal to Clip1C;
в котором cIdx является переменной, указывающей цветовой компонент текущего блока; иin which cIdx is a variable indicating the color component of the current block; and
в котором BitDepthy является битовой глубиной выборок яркости.where BitDepthy is the bit depth of the luma samples.
в котором BitDepthc является битовой глубиной выборок цветности.where BitDepthc is the bit depth of the chrominance samples.
В возможной форме реализации способа в соответствии с предшествующим аспектом как таковым, в котором для планарного режима wTL=0, в то время как для горизонтального режима wTL=wT и для вертикального режима wTL=wL.In a possible form of implementing the method according to the preceding aspect as such, wherein for planar mode wTL=0 while for horizontal mode wTL=wT and for vertical mode wTL=wL.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором нормализация ненормализованного модифицированного значения предсказанной выборки содержит вычисление нормированного модифицированного значения предсказанной выборки какIn an exemplary form of implementing the method of any prior implementation of the preceding aspect, or the preceding aspect as such, wherein normalizing the non-normalized modified predicted sample value comprises computing the normalized modified predicted sample value as
в которомwherein
является нормализованным модифицированным предсказанным значением выборки, is the normalized modified sample predicted value,
P(x,у) является ненормированным модифицированным предсказанным значением выборки,P(x, y) is the unnormalized modified sample predicted value,
представляют значения ближайших опорных выборок, расположенных выше и слева от каждой выборки, represent the values of the closest reference samples located above and to the left of each sample,
wL=V>>((х<<1)>>nScaleX) является горизонтальным весовым коэффициентом,wL=V>>((x<<1)>>nScaleX) is the horizontal weighting factor,
wT=V>>((у<<1)>>nScaleY) является вертикальным весовым коэффициентом,wT=V>>((y<<1)>>nScaleY) is the vertical weight,
х является горизонтальной координатой каждой выборки иx is the horizontal coordinate of each sample, and
у является вертикальной координатой выборки.y is the vertical coordinate of the sample.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором каждая выборка не обновляетсяIn an exemplary form of implementing the method of any prior implementation of the preceding aspect, or the preceding aspect as such, in which each sample is not updated
если сумма ширины блока и высоты блока, заданная в выборках, соответственно, превышает 64 выборок, иif the sum of the block width and block height given in the samples, respectively, exceeds 64 samples, and
либо режим внутреннего предсказания является несимметричным не диагональным, либо режим внутреннего предсказания является планарным режимом внутреннего предсказания.either the intra prediction mode is single-ended non-diagonal, or the intra prediction mode is a planar intra prediction mode.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, в котором intraPredMode является несимметричным недиагональным, если intraPredMode не равно 2 или VDIA_IDX и одно из следующего является истинным: intraPredMode не менее чем VDIA_IDX - numModes или intraPredMode не превышает 2+numModes.In an exemplary form of implementing the method of any prior implementation of the preceding aspect, or the preceding aspect as such, wherein intraPredMode is non-symmetric non-diagonal if intraPredMode is not equal to 2 or VDIA_IDX and one of the following is true: intraPredMode is not less than VDIA_IDX - numModes or intraPredMode is not greater than 2 +numModes.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такого, изображение является частью видеопоследовательности.In an exemplary form of implementation of the method according to any prior implementation of the preceding aspect, or the preceding aspect as such, the image is part of a video sequence.
В возможной форме реализации способа по любой предшествующей реализации предшествующего аспекта или предшествующего аспекта как такового, дополнительно содержащийIn a possible form of implementation of the method according to any previous implementation of the previous aspect or the previous aspect as such, further comprising
добавление остаточного значения к нормализованному модифицированному предсказанному значению выборки для получения значения восстановленной выборки.adding a residual value to the normalized modified predicted sample value to obtain a reconstructed sample value.
Настоящее раскрытие дополнительно предлагает кодер (20), содержащий схему обработки для выполнения способа по любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового.The present disclosure further provides an encoder (20) containing a processing circuit for performing a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Настоящее раскрытие дополнительно предлагает декодер (30), содержащий схему обработки для выполнения способа по любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового.The present disclosure further provides a decoder (30) comprising a processing circuit for performing a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Настоящее раскрытие дополнительно предлагает компьютерную программу, содержащую программный код для выполнения способа по любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового.The present disclosure further provides a computer program comprising program code for executing a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Настоящее раскрытие может дополнительно предоставить компьютерный программный продукт, содержащий программный код для выполнения способа по любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового.The present disclosure may further provide a computer program product containing program code for executing a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Настоящее раскрытие дополнительно предлагает декодер, содержащий:The present disclosure further provides a decoder comprising:
один или более процессоров; иone or more processors; and
постоянный машиночитаемый носитель соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют декодер выполнить способ по любой предшествующей реализации любого предшествующего аспекта или любому предшествующему аспекту как таковому.a persistent computer-readable medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configure a decoder to execute a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Настоящее раскрытие дополнительно предлагает кодер, содержащий: один или более процессоров; иThe present disclosure further provides an encoder comprising: one or more processors; and
постоянный машиночитаемый носитель, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют кодер выполнить способ по любой предшествующей реализации любого предшествующего аспекта или любому предшествующему аспекту как таковому.a persistent computer-readable medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configure an encoder to execute a method according to any prior implementation of any prior aspect, or any prior aspect as such.
Подробное описание одного или более вариантов осуществления изложено в прилагаемых чертежах и описании ниже. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.A detailed description of one or more embodiments is set forth in the accompanying drawings and the description below. 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 invention with reference to the accompanying drawings, in which:
фиг. 1А схематично иллюстрирует пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1A schematically illustrates an example of a video coding system capable of implementing embodiments of the invention;
фиг. 1В схематически иллюстрирует другой пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1B schematically illustrates another example of a video coding system capable of implementing embodiments of the invention;
фиг. 2 схематично иллюстрирует пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 2 schematically illustrates an example of a video encoder capable of implementing embodiments of the invention;
фиг. 3 схематично иллюстрирует пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 3 schematically illustrates an example of the structure of a video decoder capable of implementing embodiments of the invention;
фиг. 4 схематически иллюстрирует пример устройства кодирования или устройства декодирования;fig. 4 schematically illustrates an example of an encoding device or a decoding device;
фиг. 5 схематично иллюстрирует другой пример устройства кодирования или устройства декодирования;fig. 5 schematically illustrates another example of an encoding device or a decoding device;
фиг. 6 схематически иллюстрирует угловые направления внутреннего предсказания и ассоциированные режимы внутреннего предсказания в HEVC;fig. 6 schematically illustrates intra prediction angular directions and associated intra prediction modes in HEVC;
фиг. 7 схематически иллюстрирует угловые направления внутреннего предсказания и ассоциированные режимы внутреннего предсказания в JEM;fig. 7 schematically illustrates intra prediction angular directions and associated intra prediction modes in JEM;
фиг. 8 схематично иллюстрирует угловые направления внутреннего предсказания и ассоциированные режимы внутреннего предсказания в проекте v.3 спецификации VTM-3.0 и VVC.fig. 8 schematically illustrates intra prediction angular directions and associated intra prediction modes in draft v.3 of the VTM-3.0 specification and VVC.
фиг. 9 схематично иллюстрирует угловые направления внутреннего предсказания и ассоциированные режимы внутреннего предсказания в проекте v.3 спецификации VTM-3.0 и VVC;fig. 9 schematically illustrates intra prediction angular directions and associated intra prediction modes in draft v.3 of the VTM-3.0 specification and VVC;
фиг. 10 схематично иллюстрирует пример PDPC весов DC режима для (0, 0) и (1, 0) позиций внутри 4×4 блока;fig. 10 schematically illustrates an example of PDPC mode DC weights for (0, 0) and (1, 0) positions within a 4×4 block;
фиг. 11 схематично иллюстрирует пример внутреннего предсказания блока из опорных выборок основной опорной стороны;fig. 11 schematically illustrates an example of intra-prediction of a block from reference samples of the main reference side;
фиг. 12 иллюстрирует пример PDPC весов DC режима для (0, 0) и (1, 0) позиций внутри 4×4 блока;fig. 12 illustrates an example of PDPC mode DC weights for (0, 0) and (1, 0) positions within a 4×4 block;
фиг. 13 схематично иллюстрирует пример способа определения вертикального и горизонтального коэффициента масштабирования;fig. 13 schematically illustrates an example of a method for determining the vertical and horizontal scaling factor;
фиг. 14 схематично иллюстрирует пример способа определения вертикального и горизонтального коэффициента масштабирования;fig. 14 schematically illustrates an example of a method for determining the vertical and horizontal scaling factor;
фиг. 15 схематично иллюстрирует альтернативный пример способа определения вертикального и горизонтального коэффициента масштабирования.fig. 15 schematically illustrates an alternative example of a method for determining vertical and horizontal scaling factors.
В последующем описании идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным признакам, если явно не указано иное.In the following description, identical reference numerals refer to identical or at least functionally equivalent features, unless expressly stated otherwise.
Осуществление изобретенияImplementation of the invention
В нижеследующем описании приведена ссылка на сопроводительные чертежи, которые составляют часть настоящего раскрытия и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего раскрытия. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего раскрытия определяется прилагаемой формулой изобретения.In the following description, reference is made to the accompanying drawings, which form part of the present disclosure and show, by way of illustration, specific aspects of embodiments of the invention or specific aspects in which embodiments of the present disclosure 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 disclosure is defined by the appended claims.
Например, очевидно, что настоящее раскрытие с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и наоборот. Например, если описан один или несколько конкретных этапов способа, соответствующее устройство может включать в себя один или несколько блоков, например, функциональные блоки, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или несколько из множества этапов) даже, если такой один или несколько блоков не описаны и не проиллюстрированы явно на чертежах. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множество блоков) даже, если такой один или множество этапов явно не описаны или не проиллюстрированы на чертежах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.For example, it is obvious that the present disclosure 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 blocks 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 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, with reference to FIG. 1-3, the
Фиг. 1А представляет собой блок-схему, иллюстрирующую пример системы 10 кодирования, например, системы 10 кодирования видео (или сокращенно, система 10 кодирования), которая может использовать способы этого настоящего раскрытия. Видеокодер 20 (например, кодер 20) и видеодекодер 30 (например, декодер 30) системы 10 кодирования видео представляют собой примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении.Fig. 1A is a block diagram illustrating an example of a
Как показано на фиг. 1А, система 10 кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять данные 13 закодированного изображения, например, в устройство 14 назначения для декодирования данных 13 закодированного изображения.As shown in FIG. 1A, encoding
Устройство 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
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать данные 21 кодированного изображения или закодированные данные 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводная или беспроводная сеть или любая их комбинация, или любая частная и общественная сеть, или любая их комбинация.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковывать данные 21 закодированного изображения в соответствующий формат, например, пакеты и/или обрабатывать данные закодированного изображения с использованием любого вида кодирования передачи или обработки для передачи по каналу связи или сети связи.The
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью принимать переданные данные и обрабатывать передаваемые данные с использованием любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения данных 21 закодированного изображения.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 13 закодированного изображения на фиг. 1А, указывающей от устройства 12 источника к устройству 14 назначения или, как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и получать сообщения, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.Both the
Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставлять данные 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основании фиг. 3 или фиг. 5).The
Постпроцессор 32 устройства 14 назначения выполнен с возможностью постобработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31, для получения данных 33 изображения после обработки, например, пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.The
Устройство 34 отображения устройства 14 назначения выполнено с возможностью принимать данные 33 изображения после обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из жидкокристаллических дисплеев (LCD), дисплеев на органических светодиодах (OLED), плазменных дисплеев, проекторов, микро-светодиодных дисплеев, жидких кристаллов на кремнии (LCoS), цифрового светового процессора (DLP) или любого другого дисплея.The
Хотя фиг. 1А изображает устройство 12 источника и устройство 14 назначения как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности. В таких вариантах осуществления устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although FIG. 1A depicts
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 12 источника и/или устройстве 14 назначения, как показано на фиг. 1А, может варьироваться в зависимости от фактического устройства и реализации.As will be apparent to those skilled in the art based on the description, the presence and (precise) separation of the functionality of the various blocks or functions in
Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30), каждый может быть реализован как любая из множества подходящих схем, таких как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), прикладных программ, специальные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, оборудование или любые их комбинации. Кодер 20 может быть реализован посредством схемы 46 обработки для реализации различных модулей, как обсуждалось в отношении кодера 20 на фиг. 2 и/или любой другой кодирующей системе или подсистеме, описанной в данном документе. Декодер 30 может быть реализован через посредством схемы 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнять различные операции, как описано ниже. Как показано на фиг. 5, если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или несколько процессоров для выполнения способов этого настоящего раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг. 1В.Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30) may each be implemented as any of a variety of suitable circuits, such as one or more microprocessors, digital signal processors (DSPs), application programs, application specific integrated circuits ( ASICs), Field Programmable Gate Arrays (FPGAs), Discrete Logic, Hardware, or any combination thereof.
Устройство 12 источника и устройство 14 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы служб контента или контент серверы доставки), широковещательное приемное устройство, широковещательное передающее устройство и т.п. и могут использовать или не использовать любой тип операционной системы. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для осуществления беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.
В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 1А, является просто примером, и способы настоящего раскрытия могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство для кодирования видео может кодировать и сохранять данные в памяти, и/или устройство для декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в памяти и/или извлекают и декодируют данные из памяти.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). ) the ITU-T Video Coding Expert Group (VCEG) and the 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 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 выбора режима, блок 270 энтропийного кодирования и блок 272 выхода (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 разделения. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.Fig. 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 residual calculator 204, the
Изображения и разделение изображения (изображения и блоки)Images and Image Sharing (Images and Blocks)
Кодер 20 выполнен с возможностью принимать, например, через вход 201 изображение 17 (или данные 17 изображения), например, изображение последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут быть предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для простоты описания далее в настоящем документе упоминаться как изображение 17. Изображение 17 также упоминается, как текущее изображение или изображение, подлежащее кодированию (в частности, при кодировании видео для различия текущего изображения от других изображений, например, ранее закодированных и/или декодированных изображений одной и той же видеопоследовательности, то есть, видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или содержать три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или кратко, яркость) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или кратко, цветность) Сb и Сг представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате 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 RBG 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 luma (or briefly, luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance (or briefly, chrominance) components Cb and Cr represent chroma components 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) или блоками дерева кодирования (СТВ) или блоками дерева кодирования (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
Подобно изображению 201, блок 203 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или видов массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, представлять собой массив выборок MxN (М - столбец на N - строку) или MxN массив коэффициентов преобразования.Like image 201, 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
Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть дополнительно выполнены с возможностью кодировать изображение 17 блок за блоком, например, разделять и кодировать блок 203.Embodiments of
Вычисление остаткаRemainder Calculation
Блок 204 вычисления остатка выполнен с возможностью вычислять остаточный блок 205 (также обозначен как остаток 205) на основании блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 205 в области выборки.Residual block 204 is configured to calculate residual block 205 (also referred to as residual 205) based on image block 203 and prediction block 265 (more details about
Преобразованиеtransformation
Блок 206 обработки преобразования выполнен с возможностью применять преобразования, например, дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST) на значениях выборки остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.Transform processing
Блок 206 обработки преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, такие как преобразования, указанные для HEVC/H.265. По сравнению с ортогональным преобразованием DCT, такие целочисленные приближения обычно масштабируются с определенным коэффициентом. Для сохранения нормы остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью два для операции сдвига, разрядности коэффициентов преобразования, компромисса между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например, блоком 312 обработки обратного преобразования в декодере 30) и соответствующие коэффициенты масштабирования для прямого преобразования, например, блоком 206 обработки преобразования в кодере 20, соответственно.The
Варианты осуществления видеокодера 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
Квантование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
Обратное квантование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 residual block 213 and the sample values of the
Фильтрация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
Варианты осуществления видеокодера 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
Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра (такие как информация адаптивного смещения выборки), например, кодируется непосредственно или блоком 270 энтропийного кодирования или любым другим блоком энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра для декодирования.Embodiments of video encoder 20 (respectively, loop filter block 220) may be configured to output loop filter parameters (such as adaptive sample offset information), for example, encoded directly or by
Буфер декодированных изображений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.The
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбирать разделение и режим предсказания (например, из тех, которые поддерживаются или доступны для блока 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает оба. Блок 260 выбора режима может быть выполнен с возможностью определять режим разделения и предсказания на основании оптимизации искажения скорости (RDO), то есть, выбирать режим предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как «лучший», «минимум», «оптимальный» и т.д. в этом контексте не обязательно относятся к общему «лучшему», «минимуму», «оптимальному» и т.д., но также могут относиться к выполнению прекращения или критерий выбора, такой как значение, превышающее или падающее ниже порогового значения, или другие ограничения, потенциально ведущие к «неоптимальному выбору», но уменьшающие сложность и время обработки.Embodiments of
Другими словами, блок 262 разделения может быть выполнен с возможностью разделять блок 203 на уменьшенные блоки или субблоки (которые вновь образуют блоки), например, итеративно с использованием разделения дерева квадрантов (QT), двоичного разделения (ВТ) или троичного дерева (ТТ) или любой их комбинации и для выполнения, например, предсказания для каждого из разделов блоков или субблоков, в котором выбор режима содержит выбор древовидной структуры разделенного блока 203 и режимы предсказания применяются к каждому из разделов или субблокам.In other words,
Далее более подробно поясняется процесс разделения (например, блоком 260 разделения) и обработка предсказания (блоком 244 внешнего предсказания и блоком 254 внутреннего предсказания), выполняемые примерным видеокодером 20.The following explains in more detail the splitting process (for example, splitter 260) and prediction processing (
РазделениеSeparation
Блок 262 разделения может разделять (или разбивать) текущий блок 203 на меньшие разделы, например, блоки меньшего размера квадратной или прямоугольной формы. Эти меньшие блоки (которые также могут называться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на корневом уровне 0 дерева (уровень 0 иерархии, глубина 0) может быть рекурсивно разделен, например, разделен на два или более блока следующего более нижнего уровня дерева, например, узлы на уровне 1 дерева (уровень 1 иерархии, глубина 1), в котором эти блоки могут быть снова разделены на два или более блоков следующего более нижнего уровня, например, уровень 2 дерева (уровень 2 иерархии, глубина 2) и т.д., пока не будет завершено разделение, например, при выполнении критерия прекращения, например, достигается максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (ВТ), дерево, использующее разделение на три раздела, называется тройным деревом (ТТ) и дерево, использующее разделение на четыре раздела, называется деревом квадрантов (QT).
Как упоминало ранее, термин «блок», используемый в настоящем документе, может быть частью, конкретно, частью квадратной или прямоугольной формы изображения. Со ссылкой, например, на HEVC и VVC, блок может быть или соответствовать блоку дерева кодирования (CTU), блоку кодирования (CU), блоку предсказания (PU) и блоку преобразования (TU) и/или соответствовать блокам, например, блоку дерева кодирования (СТВ), блоку кодирования (СВ), блоку преобразования (ТВ) или блоку предсказания (РВ).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), a coding block (CB), a transformation block (TV), or a prediction block (PB).
Например, блок дерева кодирования (CTU) может быть или содержать СТВ выборок яркости, два соответствующих CTBs выборок цветности изображения, которое имеет три массива выборок, или СТВ выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (СТВ) может быть блоком NxN выборок для некоторого значения N, так что разделение компонента на CTBs является разделением. Блок кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемые для кодирования выборок. Соответственно, блок кодирования (СВ) может быть блоком MxN выборок для некоторых значений М и N, так что разделение СТВ на блоки кодирования является разделением.For example, a coding tree unit (CTU) can be either a luma sample CTB, two corresponding chrominance sample CTBs of an image that has three sample arrays, or a monochrome image CTB or an image that is encoded using three separate color planes and the syntax structures used for coding 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 for coding 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, for example 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 region using extrinsic (temporal) or intrinsic (spatial) prediction is made at the CU layer. Each CU may be further partitioned into one, two or four PUs according to the partition type 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 comprise 35 different intra prediction modes, such as non-directional modes such as DC (or average) mode and planar mode, or directional modes such as those defined in HEVC, or may comprise 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.
VTM (многоцелевая испытательная модель) версия 3.0 использует 93 режимов внутреннего предсказания и несколько внутренних инструментов сглаживания, включающие в себя четырех отводную внутреннюю интерполяционную фильтрацию субпикселя и позиционно-зависимую комбинацию внутреннего предсказания (PDPC). PDPC предложена в качестве унифицированного механизма модификации предсказанных выборок, полученных в результате внутреннего предсказания с использованием DC, PLANAR или угловых режимов внутреннего предсказания.VTM (Multipurpose Test Model) version 3.0 uses 93 intra-prediction modes and several internal dithering tools, including four-tap sub-pixel internal interpolation filtering and position-dependent intra prediction combination (PDPC). PDPC has been proposed as a unified mechanism for modifying predicted samples resulting from intra prediction using DC, PLANAR or intra angle modes.
Блок 254 внутреннего предсказания выполнен с возможностью использовать восстановленные выборки соседних блоков одного и того же текущего изображения для генерирования блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.The intra prediction block 254 is configured to use the reconstructed samples of adjacent blocks of the same current picture to generate the
Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью выводить параметры внутреннего предсказания (или, в общем, информацию, указывающую выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в данные 21 кодированного изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.Block 254 intra prediction (or, in General, block 260 mode selection) is further configured to output parameters of intra prediction (or, in General, information indicating the selected intra prediction mode for the block) in
Внешнее предсказание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, e.g. stored in DBP 230) and other inter prediction parameters, e.g. , for example, an area search box around the area of the current block, a 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) и блок компенсации движения (МС) (оба не показаны на фиг. 2). Блок оценки движения выполнен с возможностью принимать или получать блок 203 изображения (текущий блок 203 изображения текущего изображения 201) и декодированное изображение 231 или, по меньшей мере, один или множество ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и предоставлять опорное изображение (или индекс опорного изображения) и/или сдвиг (пространственное сдвиг) между позицией (х, у координат) опорного блока и позицией текущего блока в качестве параметров внешнего предсказания в блок оценки движения. Это сдвиг также называется вектором движения (MV).The
Блок компенсации движения выполнен с возможностью получать, например, принимать параметр внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра внешнего предсказания для получения блока 265 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения, может содержать выборку или генерирование блока предсказания на основании вектора движения/блока, определяемого оценкой движения, возможно выполнение интерполяции до субпиксельной точности. Интерполяционная фильтрация может генерировать дополнительные выборки пикселей из известных выборок пикселей, таким образом, потенциально увеличивая количество кандидатов блоков предсказания, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может локализовать блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений.The motion compensation block is configured to obtain, 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), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (САВАС), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с интервалом вероятности (PIPE) или другие технологии или способы энтропийного кодирования) или схему обхода (без сжатия) на квантованных остаточных коэффициентах 209, параметрах внешнего предсказания, параметрах внутреннего предсказания и/или параметрах контурного фильтра и/или других элементах синтаксиса для получения данных 21 закодированного изображения, которые могут выводиться посредством выхода 272, например, в форме кодированного битового потока 21, так что, например, декодер 30 может принимать и использовать параметры для декодирования. Закодированный битовый поток 21 может быть передан в видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.The
Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 20. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для конкретных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.Other structural variations of
Декодер и способ декодированияDecoder and decoding method
На фиг. 3 показан пример видеодекодера 30, который выполнен с возможностью реализации способов настоящего раскрытия. Видеодекодер 30 выполнен с возможностью принимать данные 21 кодированного изображения (например, кодированного битового потока 21), например, кодируемые кодером 20, для получения декодированного изображения 331. Данные кодированного изображения или битовый поток содержит информацию для декодирования данных кодированного изображения, например, данные, которые представляют собой блоки изображения кодированного сегмента видео и ассоциированные элементы синтаксиса.In FIG. 3 shows an example of a
В примере на фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 декодированного изображения (DBP), блок 344 внешнего предсказания и блок 354 внутреннего предсказания. Блок внешнего предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять процесс декодирования, в целом, обратный этапу кодирования, описанный применительно к видеокодеру 100 на фиг. 2.In the example in 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
Блок 312 обработки обратного преобразования может быть выполнен с возможностью принимать деквантованные коэффициенты 311, также называемые коэффициентами 311 преобразования и применять преобразования к деквантованным коэффициентам 311 для получения восстановленных остаточных блоков 213 в области выборки. Восстановленные остаточные блоки 213 также могут называться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным 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
Фильтрация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 выполнен с возможностью выводить декодированное изображение 331, например, через выход 332 для представления или просмотра пользователю.The
ПредсказаниеPrediction
Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения) и блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функциям и выполняет решения о разделении или разбиении и предсказания на основании параметров разделения и/или предсказания или соответствующей информации, принятой из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 выбора режима может быть выполнен с возможностью выполнять предсказание (внутреннее или внешнее предсказание) для каждого блока на основании восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда сегмент видео кодируется как внутри кодированный (I) сегмент, блок 354 внутреннего предсказания блока 360 выбора режима выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнализируемого режима внутреннего предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как внешне кодируемый (то есть, В или Р) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 выбора режима выполнен с возможностью формировать блоки 365 предсказания для блока видео текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основании опорных изображений, хранящихся в DPB 330.When a video segment is encoded as an intra-coded (I) segment, the
Блок 360 выбора режима выполнен с возможностью определять информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения или других элементов синтаксиса, и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 360 выбора режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента внешнего предсказания (например, В-сегмент, Р-сегмент или 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 четырех 4×4 субблоков в пределах одного 8×8 блока) ограничено таким образом, что максимальная разница между целыми частями четырех 4×4 субблока MVs не превышает N пикселей, например, не более 1 пикселя. Настоящее раскрытие предлагает два способа для ограничения вектора движения в соответствии с bitDepth.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 4×4 subblocks within one 8×8 block) is limited such that the maximum difference between the integer parts of four 4× 4 subblock MVs does not exceed N pixels, for example, not more than 1 pixel. The present disclosure proposes two methods for limiting the motion vector according to bitDepth.
Способ 1: удалить переполнение MSB (наиболее значимый бит) посредством операций истеченияMethod 1: Remove MSB (Most Significant Bit) Overflow Through Expiration Operations
в котором 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).
Операции могут быть применены во время суммирования 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 является горизонтальным компонентом вектора движения блока изображения или субблока, vy является вертикальным компонентом вектора движения блока изображения или субблока; х, у и 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 clipping process MV and the definition of the Clip3 function is as follows:
Фиг. 4 является схемой устройства 400 кодирования видео согласно варианту осуществления настоящего раскрытия. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 по фиг. 1А или кодер, такой как видеокодер 20 по фиг. 1А.Fig. 4 is a diagram of a
Устройство 400 кодирования видео содержит входные порты 410 и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Тх) и выходные порты 450 для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (ОЕ) компоненты и электрические-оптические (ЕО) компоненты, подключенные к входным портам 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, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы.In an implementation,
Устройство 500 также может включать в себя одно или несколько устройств вывода, таких как дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 518 может быть подключен к процессору 502 через шину 512.The
Хотя изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, например, несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.Although depicted as a single bus,
Конкретная реализация упрощенной PDPC может быть выполнена по-разному, в зависимости от режима внутреннего предсказания:The specific implementation of simplified PDPC can be done in different ways, depending on the intra prediction mode:
Для планарного, DC, HOR/VER режимов внутреннего предсказания (обозначенные, как 0, 1, 18, 50 соответственно на фиг.7 и фиг.8), выполняются следующие этапы:For planar, DC, HOR/VER intra prediction modes (denoted as 0, 1, 18, 50 respectively in FIG. 7 and FIG. 8), the following steps are performed:
Предсказанная выборка Р(х,у), расположенная на (х, у), рассчитывается следующим образом:The predicted sample P(x, y) located on (x, y) is calculated as follows:
в котором представляют собой опорные выборки, расположенные сверху и слева от текущей выборки (х, у), и представляет собой опорную выборку, расположенную в верхнем левом углу текущего блока, функция clip1Cmp устанавливается следующим образом:wherein are the pivot samples above and to the left of the current sample (x, y), and is a reference sample located in the upper left corner of the current block, the clip1Cmp function is set as follows:
- если cIdx равен 0, clip1Cmp устанавливается равным Clip1Y.- if cIdx is 0, clip1Cmp is set to Clip1Y.
- в противном случае, clip1Cmp устанавливается равным Clip1C- otherwise, clip1Cmp is set equal to Clip1C
BitDepthy является битовой глубиной выборок яркости.BitDepthy is the bit depth of the luma samples.
BitDepthc является битовой глубиной выборок цветности.BitDepthc is the bit depth of the chrominance samples.
BitDepthy и BitDepthc могут быть сигнализированы в наборе параметров последовательности (SPS) битового потока.BitDepthy and BitDepthc may be signaled in the Sequence Parameter Set (SPS) of the bitstream.
Возможны альтернативные определения Clip1Y (х) и Clip1C (с). В частности, как описано F. Galpin, P. Bordes и F. Le Léannec в JVET-C0040 «Адаптивное ограничение вAlternative definitions of Clip1Y (x) and Clip1C (c) are possible. In particular, as described by F. Galpin, P. Bordes and F. Le Léannec in JVET-C0040 "Adaptive constraint in
ГЕМ2.0», GEM2.0",
в котором minC является нижней границей ограничения, используемая в текущем сегменте для компонента ID С,where min C is the lower bound of the constraint used in the current segment for component ID C,
maxC является верхней границей ограничения, используемого в текущем сегменте для компонента ID С,max C is the upper bound of the constraint used in the current segment for component ID C,
С представляет собой цветовой компонент (например, Y для яркости, Cb и Cr для цветности),C represents the color component (e.g. Y for luminance, Cb and Cr for chrominance),
«х >> у» является арифметическим правым сдвигом целочисленного представления двоичного комплемента х на у двоичных цифр. Эта функция определяется только для неотрицательных целочисленных значений у. Биты, сдвинутые в наиболее значимые биты (MSBs) в результате правого сдвига, имеют значение, равное MSB х до операции сдвига."x >> y" is the arithmetic right shift of the integer representation of the binary complement of x by y binary digits. This function is only defined for non-negative integer values of y. The bits shifted to the most significant bits (MSBs) as a result of a right shift have a value equal to MSB x before the shift operation.
Веса DC режима рассчитывается следующим образом:DC mode weights are calculated as follows:
wT=32>>((у<<l)>>shift),wT=32>>((y<<l)>>shift),
vL=32>>((x<<l)>>shift),vL=32>>((x<<l)>>shift),
wTL=-(wL>> 4)-(wT>>4).wTL=-(wL>> 4)-(wT>>4).
в котором wherein
Для планарного режима wTL=0, в то время, как для горизонтального режима wTL=wT и для вертикального режима wTL=wL. PDPC веса (wL, wT, wTL) DC режима для (0, 0) и (1, 0) позиций внутри одного 4x4 блока показаны на фиг. 9.For planar mode wTL=0, while for horizontal mode wTL=wT and for vertical mode wTL=wL. PDPC weights (wL, wT, wTL) DC mode for (0, 0) and (1, 0) positions within one 4x4 block are shown in FIG. nine.
Для диагонального (обозначается как 2 и 66 на фиг. 7 и фиг. 8) и соседнего режимов (направленные режимы не менее 58 и не более 10 на фиг. 7 или фиг. 8) выполняется обработка, как описано ниже, используя одинаковую формулу (1).For the diagonal (denoted as 2 and 66 in Fig. 7 and Fig. 8) and adjacent modes (directional modes no less than 58 and no more than 10 in Fig. 7 or Fig. 8), processing is performed as described below using the same formula ( one).
Фиг. 10А иллюстрирует определение опорных выборок для расширения PDPC до верхнего правого диагонального режима. Выборка предсказания pred(x', у') находится в (х', у') в блоке предсказания. Координата х опорной выборки Rx,-1 задана:Fig. 10A illustrates the definition of reference samples. to expand PDPC to upper right diagonal mode. The prediction sample pred(x', y') is at (x', y') in the prediction block. The x-coordinate of the reference sample R x,-1 is given by:
х=х'+у'+1,x=x'+y'+1,
и координата у опорной выборки R1,у задана аналогичным образом: у=х'+у'+1.and the y-coordinate of the reference sample R 1,y is given in the same way: y=x'+y'+1.
PDPC веса для верхнего диагонального режима являются:The PDPC weights for the upper diagonal mode are:
wT=16>>((у'<<1)>>shift),wT=16>>((y'<<1)>>shift),
wL=16>>((х'<<1)>>shift),wL=16>>((x'<<1)>>shift),
wTL=0.wTL=0.
Аналогично, фиг. 10В иллюстрирует определение опорных Rx,-1, R-1,y и R-1,-1 для расширения PDPC до нижнего левого диагонального режима. Координата х опорной выборки Rx,-1 задана:Similarly, FIG. 10B illustrates the definition of reference R x, -1 , R -1, y and R -1, -1 for PDPC extension to the lower left diagonal mode. The x-coordinate of the reference sample R x,-1 is given by:
х=х'+у'+1,x=x'+y'+1,
и координата у опорной выборки R-1,y задана:and the coordinate of the reference sample R -1,y is given:
у=х'+у'+1.y=x'+y'+1.
PDPC для верхнего диагонального режима:PDPC for upper diagonal mode:
wT=16>>((у'<<1)>>shift),wT=16>>((y'<<1)>>shift),
wL=16>>((х'<<1)>>shift),wL=16>>((x'<<1)>>shift),
wTL=0.wTL=0.
На фиг. 10С показан случай соседнего верхнего правого диагонального режима. PDPC веса для соседнего верхнего правого диагонального режима являются:In FIG. 10C shows the case of the adjacent upper right diagonal mode. The PDPC weights for the adjacent upper right diagonal mode are:
wT=32>>((у'<<1)>>shift),wT=32>>((y'<<1)>>shift),
wL=0,wL=0,
wTL=0.wTL=0.
Аналогично, на фиг. 10D показан случай соседнего нижнего левого диагонального режима. PDPC веса для соседнего нижнего левого диагонального режима являются:Similarly, in FIG. 10D shows the case of the neighboring lower left diagonal mode. The PDPC weights for the adjacent lower left diagonal mode are:
wL=32>>((х'<<1)>>shift),wL=32>>((x'<<1)>>shift),
wT=0,wT=0,
wTL=0.wTL=0.
Координаты опорной выборки для последних двух случаев вычисляются с использованием таблиц, которые уже используются для углового режима внутреннего предсказания. Используется линейная интерполяция опорных выборок, если вычисляются координаты дробной опорной выборки.The reference sample coordinates for the last two cases are calculated using the tables already used for the intra-prediction angular mode. Linear datum interpolation is used if fractional datum coordinates are computed.
Упрощенный PDPC может быть выполнен, как указано в VVC спецификации. Далее используются следующие обозначение:Simplified PDPC can be done as specified in the VVC specification. The following notation is used below:
является значением обратного угла, Round(х)=Sign(х)*Floor(Abs(x)+0.5), is the value of the inverse angle, Round(x)=Sign(x)*Floor(Abs(x)+0.5),
Floor (x) является наибольшим целым числом меньше или равно х,Floor(x) is the largest integer less than or equal to x,
Log2 (х) является логарифм х с основанием 2.Log2(x) is the logarithm of x with
IntraPredAngle является параметром угла, указанного в таблице 6,IntraPredAngle is the angle parameter specified in Table 6,
А=С?В:D является операцией тройного назначения, в котором А устанавливается равным В, если условие С верно. В противном случае, если условие С является ложным, А установлен равный D.A=C?B:D is a triple assignment operation in which A is set equal to B if condition C is true. Otherwise, if condition C is false, A is set equal to D.
INTRA_PLANAR является планарным режимом внутреннего предсказания (),INTRA_PLANAR is planar intra prediction mode (),
INTRA_DC является DC режимом внутреннего предсказания,INTRA_DC is the DC intra prediction mode,
INTRA_ANGULARXX является одним из направленных режимов внутреннего предсказания, в котором XX обозначает его число и соответствующее направление, показанное на фиг. 8.INTRA_ANGULARXX is one of the directional intra prediction modes, in which XX denotes its number and the corresponding direction shown in FIG. eight.
Если термин не объясняется в настоящем изобретении, очевидно, что его определение можно найти в VVC спецификации или HEVC/H.265 стандартной спецификации.If the term is not explained in the present invention, it is obvious that its definition can be found in the VVC specification or HEVC/H.265 standard specification.
Учитывая вышеприведенное описание, этапы упрощенного PDPC могут быть определены следующим образом:Given the above description, the steps of a simplified PDPC can be defined as follows:
Входные данные к этому процессу являются:The input to this process are:
- режим внутреннего предсказания predModeIntra,- intra prediction mode predModeIntra,
- переменная nTbW, указывающая ширину блока преобразования,- variable nTbW indicating the width of the transform block,
- переменная nTbH, указывающая высоту блока преобразования,- variable nTbH indicating the height of the transform block,
- переменная refW, указывающая ширину опорных выборок,- variable refW indicating the width of the reference samples,
- переменная refH, указывающая высоту опорных выборок,- variable refH indicating the height of the reference samples,
- предсказанные выборки predSamples[х][у], с х=0…nTbW-1, у=0….nTbH-1,- predicted samples predSamples[x][y], with x=0…nTbW-1, y=0….nTbH-1,
- соседние выборки р[х][у], с х=-1, у=-1…refH-1 и х=0…refW-1, у=-1,- neighboring samples p[x][y], with x=-1, y=-1…refH-1 and x=0…refW-1, y=-1,
- переменная cIdx, указывающая цветовой компонент текущего блока.- variable cIdx indicating the color component of the current block.
Выходные данные этого процесса являются модифицированными предсказанными выборками predSamples[х][у] с х=0…nTbW-1, у=0…nTbH-1.The output of this process is the modified predicted samples predSamples[x][y] with x=0...nTbW-1, y=0...nTbH-1.
В зависимости от значения cIdx функция clip1Cmp устанавливается следующим образом:Depending on the value of cIdx, the clip1Cmp function is set as follows:
- если cIdx равен 0, clip1Cmp устанавливается равным Clip1Y.- if cIdx is 0, clip1Cmp is set to Clip1 Y .
- в противном случае, clip1Cmp устанавливается равным Clip1c.- otherwise, clip1Cmp is set equal to Clip1c.
Переменная nScale установлена на ((Log2(nTbW)+Log2(nTbH)-2)>>2).The nScale variable is set to ((Log2(nTbW)+Log2(nTbH)-2)>>2).
Массивы опорной выборки mainRef[х] и sideRef[у], с х=0…refW-1 и у=0…refH-1 получены следующим образом:Reference sample arrays mainRef[x] and sideRef[y], with x=0...refW-1 and y=0...refH-1 are obtained as follows:
mainRef[х]=р[х][-1] sideRef[у]=р[-1][у]mainRef[x]=p[x][-1] sideRef[y]=p[-1][y]
Переменные refL[х][у], refT[х][у], wT[у], wL[х] и wTL[х][у] с х=0…nTbW-1, у=0…nTbH-1 получены следующим образом:Variables refL[x][y], refT[x][y], wT[y], wL[x] and wTL[x][y] with x=0…nTbW-1, y=0…nTbH-1 received as follows:
- если predModeIntra равен INTRA_PLANAR, INTRA_DC, INTRA_ANGULAR 18 или INTRA_ANGULAR50, применяется следующее:- if predModeIntra is equal to INTRA_PLANAR, INTRA_DC,
refL[x][y]=p[-1][y]refL[x][y]=p[-1][y]
refT[x][y]=p[x][-1]refT[x][y]=p[x][-1]
wT[у]=32>>((у<<1)>>nScale)wT[y]=32>>((y<<1)>>nScale)
wL[х]=32>>((х<<1)>>nScale)wL[x]=32>>((x<<1)>>nScale)
wTL[x][у]=(predModeIntra=INTRA_DC) ? ((wL[x]>>4)+(wT[у]>>4)): 0wTL[x][y]=(predModeIntra=INTRA_DC) ? ((wL[x]>>4)+(wT[y]>>4)): 0
- в противном случае, если predModeIntra равен INTRA_ANGULAR2 или INTRA_ANGULAR66, применяется следующее:- otherwise, if predModeIntra is equal to INTRA_ANGULAR2 or INTRA_ANGULAR66, the following applies:
refL[x][y]=p[-1][x+y+l]refL[x][y]=p[-1][x+y+l]
refT[x][y]=p[x+y+1][-1]refT[x][y]=p[x+y+1][-1]
wT[у]=(32>>1)>>((у<<1)>>nScale)wT[y]=(32>>1)>>((y<<1)>>nScale)
wL[х]=(32>>1)>>((х<<1)>>nScale)wL[x]=(32>>1)>>((x<<1)>>nScale)
wTL[x][y]=0wTL[x][y]=0
- в противном случае, если predModeIntra меньше или равен INTRA_ANGULAR10, применяются следующие упорядоченные этапы:- otherwise, if predModeIntra is less than or equal to INTRA_ANGULAR10, the following ordered steps apply:
1. Переменные dXPos[у], dXFrac[у], dXInt[у] and dX[х][у] получены следующим образом, используя invAngle:1. Variables dXPos[y], dXFrac[y], dXInt[y] and dX[x][y] are obtained as follows using invAngle:
2. Переменные refL[х][у], refT[х][у], wT[у], wL[х] и wTL[х][у] получены следующим образом:2. Variables refL[x][y], refT[x][y], wT[y], wL[x] and wTL[x][y] are obtained as follows:
- в противном случае, если predModeIntra больше или равно INTRA_ANGULAR58 (см. фиг. 8), применяются следующие упорядоченные этапы:- otherwise, if predModeIntra is greater than or equal to INTRA_ANGULAR58 (see FIG. 8), the following ordered steps apply:
1. переменные dYPos[х], dYFrac[х], dYInt[х] и dY[х][у] получены следующим образом, используя invAngle, как указано ниже в зависимости от intraPredMode:1. Variables dYPos[x], dYFrac[x], dYInt[x], and dY[x][y] are obtained as follows, using invAngle as below depending on intraPredMode:
2. Переменные refL[х][у], refT[х][у], wT[у], wL[х] и wTL[х][у] получены следующим образом:2. Variables refL[x][y], refT[x][y], wT[y], wL[x] and wTL[x][y] are obtained as follows:
- в противном случае refL[х][у], refT[х][у], wT[у], wL[х] и wTL[х][у] все установлены равными 0.- otherwise refL[x][y], refT[x][y], wT[y], wL[x] and wTL[x][y] are all set to 0.
Значения модифицированных предсказанных выборок predSamples[х][у] с х=0…nTbW-1, у=0…nTbH-1 получены следующим образом:The values of the modified predicted samples predSamples[x][y] with x=0…nTbW-1, y=0…nTbH-1 are obtained as follows:
В уравнении 1 используется для упрощенной PDPC для интерполяции ближайшего соседа вместо линейной:
refT[х][у]=(dX[х][у]<refW-1) ? mainRef[dX[х][у]]: 0refT[x][y]=(dX[x][y]<refW-1) ? mainRef[dX[x][y]]: 0
Точно так же назначение уравнения 2 может также использовать интерполяцию ближайшего соседа:Similarly,
refL[х][у]=(dY[х][у]<refH-1) ? sideRef[dY[х][у]]: 0refL[x][y]=(dY[x][y]<refH-1) ? sideRef[dY[x][y]]: 0
Таким образом, на обоих сторонах кодера и декодера предлагаемый способ использует следующее в качестве входных данных:Thus, on both sides of the encoder and decoder, the proposed method uses the following as input:
направленный режим внутреннего предсказания (дополнительно обозначается как predModeIntra, который показан на фиг. 7 и фиг. 8)directional intra prediction mode (further referred to as predModeIntra, which is shown in FIG. 7 and FIG. 8)
параметр nTbS размера блока, который устанавливается равным (log2(nTbW)+Log2(nTbH))>>1, в котором nTbW и nTbH обозначают ширину и высоту предсказанного блока, соответственно, и «>>» обозначает операцию правого сдвига.block size parameter nTbS, which is set to (log2(nTbW)+Log2(nTbH))>>1, where nTbW and nTbH denote the width and height of the predicted block, respectively, and ">>" denotes a right shift operation.
Модификация VVC спецификации, которая позволяет использовать предложенный способ, может содержать замену «соседних выборок р[х][у]» на «опорные выборки р[х][у]» в разделе, описывающем упрощенную PDPC.A modification of the VVC specification that allows the proposed method to be used may include replacing "neighbor samples p[x][y]" with "reference samples p[x][y]" in the section describing the simplified PDPC.
Угловой параметр intraPredAngle обозначает сдвиг субпикселя между двумя соседними строками предсказанных выборок в представлении фиксированной точки, имеющей длину дробной части, равной 5-битам. Этот параметр может быть получен из режима внутреннего предсказания, полученный из predModeIntra, и примерное получение intraPredAngle из predModeIntra может быть определено посредством LUT, например, как показано в таблице 1.The angular parameter intraPredAngle denotes the sub-pixel offset between two adjacent rows of predicted samples in a fixed-point representation having a fractional length of 5-bits. This parameter may be derived from the intraprediction mode derived from predModeIntra, and an exemplary derivation of intraPredAngle from predModeIntra may be determined by the LUT, for example, as shown in Table 1.
В настоящем изобретении предлагается обновлять предсказанные выборки, полученные из опорных выборок с использованием направленного, планарного или DC режимов внутреннего предсказания. На фиг. 11 показаны этапы процедуры обновления. На первому этапе 1101 выполняется вычисление значений nScaleX и nScaleY масштаба в зависимости от формы и размера блока. Дополнительно на фиг. 13 проиллюстрирована форма реализации вычисления.The present invention proposes to update the predicted samples obtained from the reference samples using directional, planar, or DC intra prediction modes. In FIG. 11 shows the steps in the update procedure. In the
Этапы 1103 и 1104 выполняются в цикле по всем позициям предсказанных выборок. На этапе 1102 выполняется инициализация итераций цикла х и у, на этапах 1105 и 1107 выполняются граничные проверки итераций, на этапах 1106 и 1108 выполняется приращения для итераций. На этапе 1108 выполняется сброс итераций х и у к началу следующей строки, т.е. х устанавливается равным нулю и итерация по строке у увеличивается на 1.
На этапе 1103 выполняется вычисление зависящих от позиционирования весовых значений wL[x] и wT[y]. Эти весовые значения получают правым сдвигом базового значения V. Значение V соотнесено с операцией правого сдвига этапа 4. Если правый сдвиг установлен на s, то практическое значение V может быть определено, например, как 2s, 2s-1 или 2s. В примерном варианте осуществления, показанном на фиг. 11, значение s устанавливается равным 6 и значение V устанавливается равным 32, то есть, 25.In
В отличие от современных способов, на этапе 1103 wL[x] и wT[y] используют различные значения масштабов nScaleX и nScaleY, соответственно. Эти весовые значения wL[x] и wT[y] дополнительно используются на этапе 1104 для вычисления модифицированного значения предсказанных выборок.Unlike current methods, at
На фиг. 12 показан альтернативный вариант осуществления обновления предсказанных выборок. В этом варианте осуществления вес wT[y] пересчитывается только один раз на строку, то есть, при увеличении итерации у.In FIG. 12 shows an alternative implementation of updating the predicted samples. In this embodiment, the weight wT[y] is recalculated only once per row, that is, as the iteration of y increases.
Благодаря QTBT и МТТ разделению, блоки предсказания могут не иметь квадратную форму (в основном, прямоугольную). Однако современный PDPC не рассматривает потенциальное неравенство ширины и высоты блока предсказания. Механизм взвешивания, основанный только на значении расстояния до левой и верхней сторон предсказанного блока, может обеспечить слишком сглаженную операцию получения предсказанных выборок, если коэффициент пропорциональности предсказанного блока отличается от 1. В настоящем изобретении предложено решение балансировки эффекта размера блока и коэффициента пропорциональности блока с использованием режима внутреннего предсказания. Используя информацию направления, предоставленную режимом внутреннего предсказания, можно определить расстояние распространения и направленность PDPC эффекта сглаживания. Следовательно, предлагается использовать группу режима внутреннего предсказания и применять выделенную адаптацию масштабирования веса для каждой группы. В этом случае даже продолговатые блоки предсказания будут использовать сглаживание в соответствии с длиной стороны, где целесообразно, в зависимости от режима внутреннего предсказания и размерности блока предсказания.Due to QTBT and MTT separation, prediction blocks may not be square (mostly rectangular). However, modern PDPC does not consider the potential disparity in the width and height of the prediction block. A weighting mechanism based only on the value of the distance to the left and top sides of the predicted block may provide a too smooth operation for obtaining predicted samples if the predicted block aspect ratio differs from 1. The present invention proposes a solution for balancing the effect of the block size and the aspect ratio of the block using the mode internal prediction. Using the direction information provided by the intra prediction mode, the propagation distance and directionality of the PDPC smoothing effect can be determined. Therefore, it is proposed to use an intra prediction mode group and apply a dedicated weight scaling adaptation for each group. In this case, even elongated prediction blocks will use dithering according to side length, where appropriate, depending on the intra prediction mode and prediction block size.
В предложенном изобретении предлагается использовать отдельные nScale значения при получении весов wT[у] и wL[х]. В частности, в описании выше (этап 1103) будут использоваться следующие формулы (значение V устанавливается, соответственно, на 16 или 32):In the proposed invention, it is proposed to use separate nScale values when obtaining the weights wT[y] and wL[x]. In particular, in the description above (step 1103), the following formulas will be used (the value of V is set to 16 or 32, respectively):
wT[у]=V>>((у<<1)>>nScaleY)wT[y]=V>>((y<<1)>>nScaleY)
wL[х]=V>>((х<<1)>>nScaleX)wL[x]=V>>((x<<1)>>nScaleX)
Как показано на фиг. 14, может быть выполнено вычисление масштабов (этап 1101). Данный способ является альтернативным вычислением по сравнению с тем, что показано на фиг. 12. На первом этапе 1301 получают значение режима intraPredAngle внутреннего предсказания предсказанного блока, например, посредством синтаксического анализа битового потока. На следующем этапе 1302 выполняется классификация режима внутреннего предсказания на одну из групп.As shown in FIG. 14, scaling may be performed (block 1101). This method is an alternative calculation to that shown in FIG. 12. In a
Далее в описании используется дополнительное определение несимметричного недиагонального режима внутреннего предсказания:Further in the description, the additional definition of non-symmetric off-diagonal intra prediction mode is used:
intraPredMode является несимметричным недиагональным, если intraPredMode не равен 2 или VDIA_IDX и одно из следующего является верным: intraPredMode не менее, чем VDIA_IDX - numModes или intraPredMode не превышает 2+numModesintraPredMode is asymmetric off-diagonal if intraPredMode is not equal to 2 or VDIA_IDX and one of the following is true: intraPredMode is not less than VDIA_IDX - numModes or intraPredMode is not greater than 2+numModes
В таблице 2 указана примерная классификация.Table 2 shows an example classification.
В зависимости от индекса класса режима, получение nScaleX and nScaleY может быть разным. Этапы 1303, …, 1312 представляют отображение индекса класса на формулы получения, как показано в таблице 3.Depending on the mode class index, getting nScaleX and nScaleY can be different.
В таблицах 4, 5 и 6 приведены альтернативные классификации.Tables 4, 5 and 6 show alternative classifications.
В таблице 6 класс 1 указывает не только диагональные режимы, но и широкоугольные режимы, которые имеют не дробное значение IntraPredAngle (т.е. кратное 32 в таблице 1).In Table 6,
Дополнительное ограничение, которое можно подразумевать по данному изобретению, не применяется к этапам обновления предсказанных выборок в случае конкретных комбинаций условий размера блока и режима внутреннего предсказания (intraPredMode).An additional limitation that may be implied by the present invention does not apply to the steps of updating the predicted samples in the case of specific combinations of block size conditions and intra-prediction mode (intraPredMode).
Предполагая, что заданный параметр numModes равен 8, конкретная реализация может содержать следующее условие отключения PDPC, то есть, не выполнение обновления предсказанной выборки:Assuming the given numModes parameter is 8, a particular implementation may contain the following condition to disable PDPC, i.e., not performing a predicted sample update:
- сумма ширины блока и высоты блока превышает 64 выборок и, либо intraPredMode является несимметричным недиагональным, либо равным PLANAR_IDX.- the sum of the block width and the block height exceeds 64 samples and either intraPredMode is asymmetric off-diagonal or equal to PLANAR_IDX.
Конкретные реализации изобретения могут продемонстрировать улучшение производительности сжатия. Модификации программного обеспечения VTM-3.0, описываемое в таблице 4 и таблице 3, приводит к повышению эффективности сжатия (таблица 7).Particular implementations of the invention may demonstrate improvements in compression performance. The modifications to the VTM-3.0 software described in Table 4 and Table 3 result in improved compression efficiency (Table 7).
В других вариантах осуществления значение nScale устанавливается зависимым от значения обратного угла, которое получено из режима внутреннего предсказания. Согласно варианту осуществления выполняется следующие этапы для получения значения nScale коэффициента в соответствии со значением режима внутреннего предсказания (predModeIntra):In other embodiments, the nScale value is set dependent on the inverse angle value that is obtained from the intra prediction mode. According to an embodiment, the following steps are performed to obtain the coefficient value nScale according to the intra prediction mode (predModeIntra) value:
- получить значение параметра intraPredAngle на основании значения режима предсказания predModeIntra;- get the value of the intraPredAngle parameter based on the value of the prediction mode predModeIntra;
- получить значение обратного угла (invAngle) на основании параметра intraPredAngle; и- get the value of the inverse angle (invAngle) based on the intraPredAngle parameter; and
- получить значение nScale коэффициента на основании размера блока и значения invAngle.- get the value of the nScale coefficient based on the block size and the value of invAngle.
Получение значения intraPredAngle параметра на основании predModeIntra значения режима предсказания может быть реализовано посредством таблицы поиска. Примерная таблица поиска приведена в таблице 8.Deriving the intraPredAngle parameter value based on the predModeIntra prediction mode value may be implemented via a lookup table. An exemplary lookup table is shown in Table 8.
Параметр invAngle обратного угла получен на основании intraPredAngle следующим образом:The invAngle parameter of the inverse angle is derived from the intraPredAngle as follows:
Таблица 9 и таблица 10 используются для указания значения nScale на основании predModelntra и invAngle значений.Table 9 and table 10 are used to indicate the value of nScale based on the predModelntra and invAngle values.
Фиг. 15 показывает этапы настоящего раскрытия в соответствии с классификацией, приведенной в таблице 9 и таблице 10. Переменная, обозначенная в фиг. 13, как «IntraPredAngle» обозначается на фиг.15 как «predModeIntra». Эта переменная указывает на возможность получать предсказанные значения выборок в режиме внутреннего предсказания, которые являются входными значениями в PDPC процессе фильтрации. На фиг. 8 показано соответствие между значениями predModeIntra и направлениями внутреннего предсказания.Fig. 15 shows the steps of the present disclosure according to the classification given in Table 9 and Table 10. The variable denoted in FIG. 13 as "IntraPredAngle" is referred to as "predModeIntra" in FIG. 15. This variable indicates the ability to obtain the predicted values of the samples in the intra prediction mode, which are input values in the PDPC filtering process. In FIG. 8 shows the correspondence between predModeIntra values and intra prediction directions.
Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть сконфигурированы для обработки фотографий или кодирования изображений, т.е. обработки или кодирования индивидуального изображения, независимо от любого предшествующего или последовательного изображения, как в кодировании видео. В целом, только блоки 244 (кодер) и 344 (декодер) внешнего предсказания могут быть недоступны в случае, если процесс кодирования изображения ограничен одним изображением 17. Все остальные функции (также называются инструментами или технологиями) видеокодера 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 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 without limitation, such a computer-readable medium may comprise a RAM, ROM, EEPROM, CD-ROM or other optical disk, a magnetic disk or other magnetic storage devices, flash memory, or any other medium that can be used to store the desired program code in in the form of instructions or data structures, and which can be accessed by a computer. In addition, any connection is also referred to as a computer-readable storage 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 technology 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 included in the definition of media. However, it should be understood that the computer-readable storage medium and the computer-readable storage medium do not include connections, carriers, signals, or other transient media, but instead, should be considered as a permanent tangible medium. A disc as used herein includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disc, a Blu-ray disc, in which discs typically reproduce data magnetically while how discs reproduce data optically by means of a laser. Combinations of the above are also included within the scope of the computer readable media definitions.
Инструкции могут быть выполнены одним или несколькими процессорами, такими как один или более процессоры цифровых сигналов (DSPs), микропроцессоры общего назначения, специализированные интегрированные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», как используется в данном документе, может относиться к любой из вышеупомянутой структуре или любой другой структуре, подходящей для реализации способов, описанных в настоящем изобретении. Дополнительно, в некоторых аспектах функциональные возможности, описанные в данном документе, могут быть предусмотрены в пределах выделенного аппаратного обеспечения и/или модулей программного обеспечения, выполненных с возможностью кодировать и декодировать или содержаться в комбинированном кодеке. Кроме того, способы могут быть полностью реализованы в одной или более схемах или логических элементах.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), field programmable gate 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 methods described in the present invention. Additionally, in some aspects, the functionality described herein may be provided within dedicated hardware and/or software modules configured to encode and decode or be contained within a combined codec. In addition, the methods may be fully implemented in one or more circuits or logic elements.
Способы настоящего раскрытия могут быть реализованы в широком спектре устройств или приспособлений, включающие в себя беспроводную трубку, интегральную схему (IC) или набор ICs (например, набор микросхем). Различные компоненты, модули или блоки описаны в настоящем изобретении для предоставления функциональных аспектов устройств, выполненных с возможностью выполнять описанные способы, но не обязательно требуют реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратном блоке кодека или предоставлены набором взаимодействующих аппаратных блоков, включающие в себя один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или прошивкой.The methods of the present disclosure may be implemented in a wide variety of devices or appliances, including a cordless handset, an integrated circuit (IC), or a set of ICs (eg, a chipset). Various components, modules, or blocks are described in the present invention to provide functional aspects of devices capable of performing the described methods, but do not necessarily require implementation by different hardware blocks. Rather, as described above, the various blocks may be combined in a codec hardware block, or provided by a set of interacting hardware blocks, including one or more processors, as described above, in combination with suitable software and/or firmware.
Настоящее раскрытие включает в себя следующие дополнительные аспекты.The present disclosure includes the following additional aspects.
Первый аспект способа внутреннего предсказывания блока изображения содержит для каждой выборки из множества выборок блока:The first aspect of the image block intra-prediction method contains, for each sample from a plurality of block samples:
определение значения предсказанной выборки из одного или более значений опорной выборки посредством внутреннего предсказания с использованием одного из DC режима внутреннего предсказания, PLANAR режима внутреннего предсказания и углового режима внутреннего предсказания;determining a predicted sample value from one or more reference sample values by intra prediction using one of DC intra prediction mode, PLANAR intra prediction mode, and intra prediction angle mode;
умножение значения предсказанной выборки на весовой коэффициент выборки для получения возвышенного значения предсказанной выборки;multiplying the predicted sample value by the sample weight to obtain an elevated predicted sample value;
определение вертикального коэффициента масштабирования (nScaleY) на основании высоты блока и режима внутреннего предсказания;determining a vertical scaling factor (nScaleY) based on the block height and intra prediction mode;
определение горизонтального коэффициента масштабирования (nScaleX) на основании ширины блока и режима внутреннего предсказания;determining a horizontal scaling factor (nScaleX) based on the block width and intra prediction mode;
определение первого веса на основании вертикального коэффициента масштабирования (nScaleY);determining a first weight based on a vertical scaling factor (nScaleY);
определение второго веса на основании горизонтального коэффициента масштабирования (nScaleX);determining a second weight based on a horizontal scale factor (nScaleX);
вычисление дополнительного значения в качестве взвешенной суммы значения верхней опорной выборки и значения левой опорной выборки, посредством взвешивания значения верхней опорной выборки первым весом и значения левой опорной выборки вторым весом;calculating an additional value as a weighted sum of the upper reference sample value and the left reference sample value by weighting the upper reference sample value with a first weight and the left reference sample value with a second weight;
добавление дополнительного значения к взвешенному значению предсказанной выборки для получения ненормированного значения предсказанной выборки; иadding an additional value to the weighted value of the predicted sample to obtain an unnormalized value of the predicted sample; and
нормализация ненормализованного значения предсказанной выборки посредством арифметического правого сдвига целочисленного представления ненормализованного значения предсказанной выборки для получения нормализованного значения предсказанной выборки.normalizing the denormalized predicted sample value by arithmetic right shifting an integer representation of the denormalized predicted sample value to obtain a normalized predicted sample value.
Второй аспект способа в соответствии с первым аспектом, в котором изображение является частью видеопоследовательности.The second aspect of the method according to the first aspect, wherein the image is part of a video sequence.
Третий аспект способа согласно первому или второму аспекту, в котором нормализация ненормализованного значения предсказанной выборки содержит вычисление нормализованного значения предсказанной выборки какA third aspect of the method according to the first or second aspect, wherein normalizing the denormalized predicted sample value comprises calculating the normalized predicted sample value as
в которомwherein
является нормализованным значением предсказанной выборки, is the normalized value of the predicted sample,
P(x,у) является ненормализованным значением предсказанной выборки,P(x,y) is the unnormalized value of the predicted sample,
представляют значения ближайших опорных выборок, расположенных выше и слева от каждой выборки, represent the values of the closest reference samples located above and to the left of each sample,
wL=V>>((х<<1)>>nScaleX) является горизонтальный весовым коэффициентом,wL=V>>((x<<1)>>nScaleX) is the horizontal weighting factor,
wT=V>>((у<<1)>>nScaleY) является вертикальный весовым коэффициентом,wT=V>>((y<<1)>>nScaleY) is the vertical weighting factor,
х является горизонтальной координатой выборки, иx is the horizontal coordinate of the sample, and
у является вертикальной координатой выборки.y is the vertical coordinate of the sample.
Четвертый аспект способа по любому из предшествующих аспектов, в котором каждая выборка не обновляется, если сумма ширины блока и высоты блока превышает 64 выборки и, либо intraPredMode является несимметричным недиагональным или является PLANAR_IDX.A fourth aspect of the method according to any of the preceding aspects, wherein each sample is not updated if the sum of the block width and block height exceeds 64 samples and either intraPredMode is asymmetric off-diagonal or is PLANAR_IDX.
Пятый аспект кодера (20), содержащий схему обработки для выполнения способа по любому из первого по четвертый аспекты.The fifth aspect of the encoder (20), containing the processing circuit for performing the method according to any of the first to fourth aspects.
Шестой аспект декодера (30), содержащий схему обработки для выполнения способа по любому из первого по четвертый аспекты.The sixth aspect of the decoder (30), containing the processing circuit for performing the method according to any of the first to fourth aspects.
Седьмой аспект компьютерного программного продукта, содержащий программный код для выполнения способа по любому одному из первого по четвертый аспекты.A seventh aspect of a computer program product, comprising program code for performing the method according to any one of the first to fourth aspects.
Восьмой аспект декодера, содержащий: один или более процессоров; иThe eighth aspect of the decoder, containing: one or more processors; and
постоянный машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют декодер выполнить способ по любому одному первому по четвертый аспекты.a persistent computer-readable medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configure the decoder to execute the method of any one of the first to fourth aspects.
Девятый аспект кодера, содержащий:The ninth aspect of the encoder, containing:
один или более процессоров; иone or more processors; and
постоянный машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют декодер выполнить способ по любому одному первому по четвертый аспекты.a persistent computer-readable medium coupled to the processors and storing programs for execution by the processors, wherein the programs, when executed by the processors, configure the decoder to execute the method of any one of the first to fourth aspects.
Claims (86)
DC_IDX, HOR_IDX,2,
DC_IDX, HOR_IDX,
-14 -12 -10 -6, 2, VDIA_IDX, 72, 76, 78, 80Diagonal modes with integer subpixel pitch:
-14 -12 -10 -6, 2, VDIA_IDX, 72, 76, 78, 80
nScaleY = (Log2(nTbH) – 2 + 1) >> 1 nScaleX = (Log2(nTbW) – 2 + 1) >> 1
nScaleY = (Log2(nTbH) – 2 + 1) >> 1
nScaleY = Log2(nTbH) > 3 ? 1 : 0nScaleX = Log2(nTbW) > 3 ? 10
nScaleY = Log2(nTbH) > 3 ? 10
predModeIntra!=0 && predModeIntra!=1predModeIntra<18 &&
predModeIntra!=0 && predModeIntra!=1
Min( 2, Log2(nTbH) − Floor(Log2(3 * invAngle − 2)) + 8)nScaleY=nScaleX=
Min( 2, Log2(nTbH) − Floor(Log2(3 * invAngle − 2)) + 8)
Min( 2, Log2(nTbW) − Floor( Log2(3 * invAngle − 2)) + 8) Log2(nTbH) > 3 ? 1 : 0nScaleY=nScaleX=
Min( 2, Log2(nTbW) − Floor( Log2(3 * invAngle − 2)) + 8) Log2(nTbH) > 3 ? 10
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/784,345 | 2018-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2786022C1 true RU2786022C1 (en) | 2022-12-16 |
Family
ID=
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050254584A1 (en) * | 2001-03-05 | 2005-11-17 | Chang-Su Kim | Systems and methods for enhanced error concealment in a video decoder |
US20070248164A1 (en) * | 2006-04-07 | 2007-10-25 | Microsoft Corporation | Quantization adjustment based on texture level |
US8503536B2 (en) * | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
WO2017165391A1 (en) * | 2016-03-21 | 2017-09-28 | Qualcomm Incorporated | Using luma information for chroma prediction with separate luma-chroma framework in video coding |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050254584A1 (en) * | 2001-03-05 | 2005-11-17 | Chang-Su Kim | Systems and methods for enhanced error concealment in a video decoder |
US20070248164A1 (en) * | 2006-04-07 | 2007-10-25 | Microsoft Corporation | Quantization adjustment based on texture level |
US20110255595A1 (en) * | 2006-04-07 | 2011-10-20 | Microsoft Corporation | Quantization adjustment based on texture level |
US8503536B2 (en) * | 2006-04-07 | 2013-08-06 | Microsoft Corporation | Quantization adjustments for DC shift artifacts |
WO2017165391A1 (en) * | 2016-03-21 | 2017-09-28 | Qualcomm Incorporated | Using luma information for chroma prediction with separate luma-chroma framework in video coding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7508645B2 (en) | Method and apparatus for mode and size dependent block level restriction - Patents.com | |
US11589055B2 (en) | Method and apparatus of mode- and size-dependent block-level restrictions for position dependent prediction combination | |
CA3121219A1 (en) | Method of intra predicting a block of a picture | |
CA3114341C (en) | An encoder, a decoder and corresponding methods using compact mv storage | |
US20230396765A1 (en) | Encoder, decoder and corresponding methods using dct2 enabled high level flag | |
AU2020232820B2 (en) | The method of efficient signalling of CBF flags | |
WO2019204672A1 (en) | Interpolation filter for an intra prediction apparatus and method for video coding | |
WO2021037053A1 (en) | An encoder, a decoder and corresponding methods of cabac coding for the indices of geometric partition flag | |
RU2786022C1 (en) | Device and method for limitations of block level depending on mode and size | |
RU2783385C2 (en) | Encoder, decoder and related methods using compact mv storage | |
RU2771925C1 (en) | Encoder, decoder and corresponding methods using a compact mv storage | |
RU2787217C1 (en) | Method and device for interpolation filtration for encoding with prediction | |
US11985322B2 (en) | Encoder, a decoder and corresponding methods of filter modification on general intra prediction process |