RU2787217C1 - Method and device for interpolation filtration for encoding with prediction - Google Patents
Method and device for interpolation filtration for encoding with prediction Download PDFInfo
- Publication number
- RU2787217C1 RU2787217C1 RU2021121545A RU2021121545A RU2787217C1 RU 2787217 C1 RU2787217 C1 RU 2787217C1 RU 2021121545 A RU2021121545 A RU 2021121545A RU 2021121545 A RU2021121545 A RU 2021121545A RU 2787217 C1 RU2787217 C1 RU 2787217C1
- Authority
- RU
- Russia
- Prior art keywords
- filter
- block
- video
- coefficients
- sub
- Prior art date
Links
- 238000001914 filtration Methods 0.000 title claims abstract description 37
- 230000000694 effects Effects 0.000 abstract description 2
- 238000006073 displacement reaction Methods 0.000 abstract 2
- 239000000126 substance Substances 0.000 abstract 1
- 230000000875 corresponding Effects 0.000 description 39
- 230000015654 memory Effects 0.000 description 33
- 238000004891 communication Methods 0.000 description 32
- 238000010586 diagram Methods 0.000 description 27
- 238000000034 method Methods 0.000 description 22
- UIIMBOGNXHQVGW-UHFFFAOYSA-M buffer Substances [Na+].OC([O-])=O UIIMBOGNXHQVGW-UHFFFAOYSA-M 0.000 description 20
- 230000001419 dependent Effects 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 14
- 230000001131 transforming Effects 0.000 description 12
- 241000023320 Luma <angiosperm> Species 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 9
- 230000004044 response Effects 0.000 description 9
- 230000003044 adaptive Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000007906 compression Methods 0.000 description 7
- 238000009499 grossing Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 230000002085 persistent Effects 0.000 description 5
- 238000011084 recovery Methods 0.000 description 5
- 238000000926 separation method Methods 0.000 description 5
- 230000001702 transmitter Effects 0.000 description 5
- 101700002690 CLIP3 Proteins 0.000 description 4
- 241001442055 Vipera berus Species 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 4
- 230000002123 temporal effect Effects 0.000 description 4
- 230000003287 optical Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 101700045773 CLIP1 Proteins 0.000 description 2
- 229940040608 SPS Drugs 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 239000000969 carrier Substances 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000005457 optimization 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
- 230000015556 catabolic process Effects 0.000 description 1
- 230000004059 degradation Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 229920002635 polyurethane Polymers 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling 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
Images
Abstract
Description
Область техники, к которой относится изобретениеThe technical field to which the invention belongs
Варианты осуществления настоящего раскрытия (изобретения), в общем, относятся к области обработки изображений и, в частности, к кодированию и декодированию изображения и/или видео и, в частности, к способу и устройству внутреннего/внешнего предсказания. Embodiments of the present disclosure (invention) generally relate to the field of image processing and, in particular, to the encoding and decoding of an image and/or video, and, in particular, to an intra/inter prediction method and apparatus.
Уровень техники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. Due to 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
Варианты осуществления настоящего раскрытия предлагают устройства и способы кодирования и декодирования в соответствии с независимыми пунктами формулы изобретения.Embodiments of the present disclosure provide devices and methods for encoding and decoding in accordance with the independent claims.
Вышеуказанные и другие задачи настоящего раскрытия решаются посредством независимых пунктов формула изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и чертежей.The above and other objects of the present disclosure are solved by independent claims. Additional forms of implementation are obvious from the dependent claims, description and drawings.
Варианты осуществления изобретения определяются признаками независимых пунктов формулы изобретения и дополнительными предпочтительными реализациями вариантов осуществления по признакам зависимых пунктов формулы изобретения.Embodiments of the invention are defined by the features of the independent claims and further preferred embodiments of the embodiments by the features of the dependent claims.
Согласно аспекту настоящего раскрытия, предложен способ внутреннего или внешнего предсказания обработки видеокадров, содержащий этапы: получение опорной выборки; получение значения смещения субпикселя; и фильтрация, используя 4-отводной интерполяционный фильтр субпикселя, опорную выборку для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя удовлетворяют:According to an aspect of the present disclosure, a method for intra or inter prediction of video frame processing is provided, comprising the steps of: obtaining a reference sample; obtaining a sub-pixel offset value; and filtering, using the 4-tap sub-pixel interpolation filter, a reference sample to obtain a predicted sample value in which the filter coefficients of the 4-tap sub-pixel interpolation filter satisfy:
в котором p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтрации 4-отводного интерполяционного фильтра субпикселя.in which p is the fractional part of the sub-pixel offset value and , , and are the filter coefficients of the 4-tap sub-pixel interpolation filter.
В одной примерной реализации опорные выборки могут обозначаться ref [x], сIn one exemplary implementation, reference samples may be denoted ref[x], with
ref[ x ] = p[ −1 − refIdx + x ][ −1 − refIdx ], с x = 0..nTbW + refIdx + 1.ref[ x ] = p[ −1 − refIdx + x ][ −1 − refIdx ], with x = 0..nTbW + refIdx + 1.
соответствующий массив опорных выборок и «р», относящихся к х-y двумерному массиву p[ x ][ y ], содержащий значения выборки. Количество используемых опорных выборок может быть, по меньше, одна. В другом примере количество опорных выборок может быть четыре.the corresponding array of reference samples and "p" referring to the x-y two-dimensional array p[ x ][ y ] containing the values of the sample. The number of reference samples used may be less than one. In another example, the number of reference samples may be four.
В одной примерной реализации полученное значение смещения субпикселя может быть обозначаться, какIn one exemplary implementation, the resulting sub-pixel offset value may be denoted as
(y + 1 + refIdx ) * intraPredAngle(y + 1 + refIdx ) * intraPredAngle
где «IntraPredAngle» является значением угла внутреннего предсказания.where "IntraPredAngle" is an intra prediction angle value.
В одной примерной реализации предсказанное значение выборки «predSamples[ x ][ y ]» может быть получено следующим образомIn one exemplary implementation, the predicted sample value "predSamples[ x ][ y ]" can be obtained as follows
predSamples[ x ][ y ] = Clip1( ( ( ) + 32 ) >> 6 )predSamples[ x ][ y ] = Clip1( ( ( ) + 32 ) >> 6 )
где fT[ i ] относится к коэффициентам фильтрации. Эти коэффициенты могут представлять собой коэффициенты фильтра яркости или цветности для внешнего предсказания, относящегося к fG и fC, соответственно.where fT[ i ] refers to the filter coefficients. These coefficients may be luminance or chrominance filter coefficients for inter prediction related to fG and fC, respectively.
Выбор коэффициентов фильтра как яркости, так и цветности, может быть реализован путем использования и установки флага «flterFlag», например, какThe choice of filter coefficients, both luma and chrominance, can be implemented by using and setting the "flterFlag" flag, for example, as
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]fT[j] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
с With
iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31.iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31.
Значение «31» относится к дробной части значения смещения субпикселя и может принять другие значения, отличные от «31». Значения коэффициентов фильтра fG (яркости) и/или fC (цветности), получают аналитически по ходу выполнения с использованием вышеуказанного аналитического выражения для коэффициентов фильтра 4-отводного фильтра. Таким образом, коэффициенты фильтра определяются в соответствии со значением смещения субпикселя.The value "31" refers to the fractional part of the sub-pixel offset value and can take other values than "31". The values of the filter coefficients fG (luminance) and/or fC (chrominance) are obtained analytically at runtime using the above analytical expression for the filter coefficients of the 4-tap filter. Thus, the filter coefficients are determined according to the sub-pixel offset value.
Следовательно, коэффициенты фильтра получают без доступа к соответствующим значениям коэффициентов фильтра из LUT, а скорее получают путем расчета.Therefore, the filter coefficients are obtained without access to the corresponding filter coefficient values from the LUT, but rather are obtained by calculation.
Альтернативно, коэффициенты фильтра могут быть рассчитаны с использованием приведенных выше уравнений и значения могут храниться в LUT.Alternatively, the filter coefficients can be calculated using the above equations and the values can be stored in the LUT.
Согласно аспекту настоящего раскрытия, коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются в таблице следующим образом:According to an aspect of the present disclosure, the filter coefficients of a 4-tap sub-pixel interpolation filter are defined in a table as follows:
Согласно аспекту настоящего раскрытия предложен способ внутреннего или внешнего предсказания обработки видеокадров, содержащий этапы: получение опорной выборки; получение значения смещения субпикселя; и фильтрация с использованием 4-отводного интерполяционного фильтра субпикселя, опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются следующим образом:According to an aspect of the present disclosure, a method for intra or inter prediction of video frame processing is provided, comprising the steps of: obtaining a reference sample; obtaining a sub-pixel offset value; and filtering using a 4-tap sub-pixel interpolation filter, a reference sample to obtain a predicted sample value, in which the filter coefficients of the 4-tap sub-pixel interpolation filter are determined as follows:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
В одной примерной реализации значения коэффициентов фильтра могут храниться в LUT. Это означает, что для интерполяционной фильтрации субпикселя соответствующие значения коэффициентов фильтра должны быть получены из LUT.In one exemplary implementation, filter coefficient values may be stored in a LUT. This means that for sub-pixel interpolation filtering, the corresponding values of the filter coefficients must be obtained from the LUT.
Фиг. 23 показывает блок-схему алгоритма процесса внутреннего/внешнего предсказания. На этапе 2301 получают опорную выборку. Опорная выборка может включать в себя одну или более опорных выборок. На этапе 2302 получено значение смещения субпикселя. На этапе 2303 опорную выборку затем фильтруют с использованием интерполяционного фильтра субпикселя, имеющего коэффициенты с i = 0, … 3 фильтра. Это называется 4-отводным фильтром и/или 4-точечным фильтром.Fig. 23 shows a flowchart of an intra/inter prediction process. At 2301, a reference sample is obtained. The reference sample may include one or more reference samples. At
Коэффициенты фильтра могут быть получены из аналитических выражений с заданной дробной частью р значения смещения субпикселя. Коэффициенты фильтра также могут быть получены из LUT со ссылкой на р значения.The filter coefficients can be obtained from analytical expressions with a given fractional part p of the sub-pixel offset value. The filter coefficients can also be obtained from the LUT with reference to p values.
Согласно аспекту настоящего раскрытия, бит р устанавливается на ноль.According to an aspect of the present disclosure, the p bit is set to zero.
Согласно аспекту настоящего раскрытия, р увеличивается на 1 и затем младший бит увеличенного р установлен на установлен на ноль до использования этого значения для получения коэффициентов фильтра.According to an aspect of the present disclosure, p is incremented by 1 and then the least significant bit of the incremented p is set to zero prior to using that value to derive the filter coefficients.
Согласно аспекту настоящего раскрытия, получение коэффициентов фильтра содержит этап вычисления коэффициентов фильтра в соответствии сAccording to an aspect of the present disclosure, obtaining the filter coefficients comprises the step of calculating the filter coefficients in accordance with
Это может обеспечить преимущество вычисления коэффициента фильтра из предшествующего коэффициента фильтра. Это может дополнительно сократить время для расчета коэффициентов фильтра.This may provide the advantage of calculating the coefficient filter from previous coefficient filter. This can further reduce the time to calculate the filter coefficients.
Согласно аспекту настоящего раскрытия, предусмотрен способ кодирования видео, способ содержит процесс внутреннего предсказания блока видеокадра, содержащий: фильтрацию, с использованием 4-отводного интерполяционного фильтра субпикселя, опорной выборки видеокадра; в котором 4-отводной интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, с коэффициентами фильтра, по меньшей мере, один из фильтров, удовлетворяющий:According to an aspect of the present disclosure, a video coding method is provided, the method comprising a process of intra prediction of a video frame block, comprising: filtering, using a 4-tap sub-pixel interpolation filter, a video frame reference sample; wherein the 4-tap sub-pixel interpolation filter is a combination of filters, with filter coefficients of at least one of the filters satisfying:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 24 показывает блок-схему алгоритма процесса кодирования видео. На этапе 2401 выполняется процесс внутреннего предсказания путем фильтрации опорной выборки блока с использованием 4-отводного интерполяционного фильтра субпикселя.Fig. 24 shows a flowchart of a video encoding process. In
Согласно аспекту настоящего раскрытия, 4-отводной интерполяционный фильтр является сглаживающим фильтром, который является параллельной комбинацией двух фазозависимых линейных фильтров и фильтра нижних частот.According to an aspect of the present disclosure, the 4-tap interpolation filter is an anti-aliasing filter that is a parallel combination of two phase dependent linear filters and a low pass filter.
Согласно аспекту настоящего раскрытия, 4-отводной интерполяционный фильтр субпикселя представляет собой фильтр увеличения резкости, который представляет собой параллельную комбинацию одного фазозависимого линейного фильтра и высокочастотного фильтра с изменяющейся мощностью.According to an aspect of the present disclosure, the 4-tap sub-pixel interpolation filter is a sharpening filter that is a parallel combination of one phase-dependent linear filter and a power-varying high-pass filter.
Согласно аспекту нынешнего изобретения, высокочастотный фильтр с изменяющейся мощностью представляет собой фазонезависимый высокочастотный фильтр с конечной импульсной характеристикой FIR, выход которого умножен на параметр фазозависимой мощности.According to an aspect of the present invention, the power-changing high-pass filter is a phase-independent finite impulse response high-pass filter FIR whose output is multiplied by a phase-dependent power parameter.
Согласно любому из предшествующих аспектов настоящего раскрытия, младший бит р устанавливается на ноль.According to any of the preceding aspects of the present disclosure, the least significant bit of p is set to zero.
Согласно аспекту настоящего раскрытия, р увеличивается на 1, и затем младший бит увеличенного значения установлен на ноль до использования этого значения для получения коэффициентов интерполяционного фильтра.According to an aspect of the present disclosure, p is incremented by 1 and then the least significant bit of the incremented value is set to zero prior to using that value to derive the interpolation filter coefficients.
Согласно аспекту настоящего раскрытия, выполняется операция отсечения для выхода высокочастотного фильтра с изменяющейся мощностью.According to an aspect of the present disclosure, a clipping operation is performed for the output of a power varying high pass filter.
Согласно аспекту настоящего раскрытия, предложено устройство для внутреннего или внешнего предсказания видеокадра, включающее в себя: блок получения опорной выборки, выполненный с возможностью получать опорную выборку; блок получения значения смещения субпикселя, выполненный с возможностью получать значения смещения субпикселя; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя удовлетворяют:According to an aspect of the present disclosure, an apparatus for intra or inter prediction of a video frame is provided, including: a reference sample acquisition unit configured to acquire a reference sample; a sub-pixel offset value obtaining unit, configured to obtain sub-pixel offset values; and a 4-tap sub-pixel interpolation filter configured to filter the reference sample to obtain a predicted sample value in which the filter coefficients of the 4-tap sub-pixel interpolation filter satisfy:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра 4-отводного интерполяционного фильтра субпикселя.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients of the 4-tap sub-pixel interpolation filter.
Согласно аспекту настоящего раскрытия, коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются в таблице следующим образом:According to an aspect of the present disclosure, the filter coefficients of a 4-tap sub-pixel interpolation filter are defined in a table as follows:
Согласно аспекту настоящего раскрытия, предложено устройство для внутреннего или внешнего предсказания видеокадра, содержащее: блок получения опорной выборки, выполненный с возможностью получать опорную выборку; блок получения значения смещения субпикселя, выполненный с возможностью получать значение смещения субпикселя; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются следующим образом:According to an aspect of the present disclosure, a device for intra or inter prediction of a video frame is provided, comprising: a reference sample acquisition unit configured to obtain a reference sample; a sub-pixel offset value obtaining unit, configured to obtain the sub-pixel offset value; and a 4-tap sub-pixel interpolation filter configured to filter the reference sample to obtain a predicted sample value, wherein the filter coefficients of the 4-tap sub-pixel interpolation filter are determined as follows:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 25 показывает схему модуля 2500 обработки внутреннего/внешнего предсказания, который содержит блок 2510 получения опорной выборки, блок 2520 получения значения смещения субпикселя и интерполяционный фильтр 2530 субпикселя.Fig. 25 shows a diagram of an intra/inter
Согласно аспекту настоящего раскрытия, предложено устройство для кодирования видео, содержащее: блок обработки внутреннего предсказания, выполненный с возможностью выполнять внутреннее предсказание блока видеокадра; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки видеокадра; в котором 4-отводной интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, с коэффициентами фильтра, по меньшей мере, одного из фильтров, удовлетворяющий:According to an aspect of the present disclosure, a device for encoding a video is provided, comprising: an intra prediction processing unit configured to perform intra prediction of a block of a video frame; and a 4-tap sub-pixel interpolation filter configured to filter a video frame reference sample; wherein the 4-tap sub-pixel interpolation filter is a combination of filters, with filter coefficients of at least one of the filters, satisfying:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 26 показывает схему модуля 2600 кодирования видео, который содержит блок 2610 обработки внутреннего предсказания и интерполяционный фильтр 2620 субпикселя.Fig. 26 shows a diagram of a
Согласно аспекту настоящего раскрытия, предусмотрен кодер (20), содержащий схему обработки для выполнения способа по любому из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, an encoder (20) is provided, containing a processing circuit for performing the method according to any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предложен декодер (30), содержащий схему обработки для выполнения способа по любому из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a decoder (30) is provided, comprising a processing circuit for performing a method according to any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предоставляется компьютерный программный продукт, содержащий программный код для выполнения способа в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a computer program product is provided that contains program code for performing a method in accordance with any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предусмотрен декодер, содержащий: один или более процессоров; и постоянный машиночитаемый носитель, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют декодер выполнить способ в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a decoder is provided, 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 in accordance with any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предусмотрен кодер, содержащий: один или более процессоров; и постоянный машиночитаемый носитель, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют кодер выполнить способ в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, an encoder is provided, 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 in accordance with any of the preceding aspects of the present disclosure.
Настоящее изобретение по любому из предшествующих аспектов может обеспечить более эффективный способ внутреннего/внешнего предсказания видеокадра. Это связано с тем, что коэффициенты фильтра интерполяционного фильтра получены аналитическими способом, то есть, упомянутые коэффициенты вычисляются в процессе обработки. Это позволяет избежать хранения коэффициентов в таблице поиска (LUT), требующих времени доступа для чтения коэффициентов из памяти.The present invention according to any of the preceding aspects can provide a more efficient method for intra/inter prediction of a video frame. This is due to the fact that the filter coefficients of the interpolation filter are obtained in an analytical way, that is, the said coefficients are calculated during processing. This avoids storing the coefficients in a lookup table (LUT), requiring access time to read the coefficients from memory.
Таким образом, предсказание становится более эффективным и требует меньшего объема памяти. Это обеспечивает также недорогую реализацию предсказания. Более того, поскольку аналитические коэффициенты фильтра являются линейными на позиции р дробной выборки, и используются операции деления на 2, соответствующая операция может быть эффективно выполнена, используя быструю низкоуровневую битовую операцию. Соответствующее время для выполнения битовой операции и для расчета коэффициентов фильтра короче времени доступа к хранимым коэффициентам из LUT. Таким образом, задержка обработки сокращается.Thus, the prediction becomes more efficient and requires less memory. It also provides an inexpensive implementation of the prediction. Moreover, since the analytic coefficients filters are linear at position p of a fractional sample, and divide-by-2 operations are used, the corresponding operation can be efficiently performed using a fast low-level bit operation. The corresponding time to perform a bit operation and to calculate the filter coefficients is shorter than the time to access the stored coefficients from the LUT. Thus, the processing delay is reduced.
Более того, конкретная аналитическая структура коэффициентов фильтра может обеспечить преимущество реализации низкой сложности блока (блоков) фильтра. Как было описано ранее, частотная характеристика фильтра (т.е. частотная характеристика) для различных позиций субпикселей соответствует отношению амплитуде и фазы и предотвращает появления артефактов в частотной характеристике, в частности, на высоких частотах. Линейность коэффициентов фильтра может обеспечить преимущество повторного использования оборудования.Moreover, the specific analytical structure of the filter coefficients may provide the advantage of implementing a low complexity filter block(s). As previously described, the filter's frequency response (ie, frequency response) for different subpixel positions follows the amplitude-to-phase relationship and prevents artifacts in the frequency response, particularly at high frequencies. The linearity of the filter coefficients can provide the benefit of equipment reuse.
Далее приведено подробное описание одного или нескольких вариантов осуществления со ссылкой на прилагаемые чертежи. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.The following is a detailed description of one or more embodiments with reference to the accompanying drawings. Other features, objects and advantages will be apparent from the description, drawings and claims.
Изобретение может быть реализовано в аппаратном и/или программном обеспечении.The invention may be implemented in hardware and/or software.
В целях ясности любой из вышеперечисленных вариантов осуществления может быть объединен с любыми или несколькими другими вышеуказанными вариантами осуществления для получения нового варианта осуществления в объеме настоящего раскрытия.For purposes of clarity, any of the above embodiments may be combined with any or more of the other above embodiments to provide a new embodiment within the scope of this disclosure.
Эти и другие признаки будут более поняты из следующего подробного описания со ссылкой на прилагаемые чертежи и формулу изобретения.These and other features will be better understood from the following detailed description with reference to the accompanying 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:
фиг. 1A является блок-схемой, показывающей пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1A is a block diagram showing an example of a video coding system capable of implementing embodiments of the invention;
фиг. 1B является блок-схемой, показывающей другой пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;fig. 1B is a block diagram showing another example of a video coding system capable of implementing embodiments of the invention;
фиг. 2 представляет собой блок-схему, показывающую пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 2 is a block diagram showing an example of a video encoder capable of implementing embodiments of the invention;
фиг. 3 представляет собой блок-схему, показывающую примерную структуру видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;fig. 3 is a block diagram showing an exemplary structure of a video encoder capable of implementing embodiments of the invention;
фиг. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;fig. 4 is a block diagram illustrating an example of an encoding device or a decoding device;
фиг. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;fig. 5 is a block diagram illustrating another example of an encoding device or a decoding device;
фиг. 6 является схемой, показывающей угловые направления внутреннего предсказания и ассоциированные с ними режимы внутреннего предсказания в HEVC;fig. 6 is a diagram showing intra prediction angular directions and their associated intra prediction modes in HEVC;
фиг. 7 является схемой, показывающей угловые направления внутреннего предсказания и ассоциированные с ними режимы внутреннего предсказания в JEM;fig. 7 is a diagram showing intra prediction angular directions and associated intra prediction modes in JEM;
фиг. 8 представляет собой схему, показывающую угловые направления внутреннего предсказания и ассоциированные режимы внутреннего предсказания в VTM-3.0 и VVC проекте v.3 спецификации;fig. 8 is a diagram showing intra prediction angular directions and associated intra prediction modes in the VTM-3.0 and VVC draft v.3 specifications;
фиг. 9 представляет собой схему, показывающую пример комбинации фильтра для сглаживания, где в интерполяционный фильтр вводится набор опорных выборок;fig. 9 is a diagram showing an example of a filter combination for smoothing, where a set of reference samples is input to the interpolation filter;
фиг. 10 представляет собой схему, показывающую примерную комбинацию фильтров для повышения резкости интерполяционной фильтрации, включающую в себя операцию отсечения;fig. 10 is a diagram showing an exemplary filter combination for sharpening interpolation filtering, including a clipping operation;
фиг. 11 представляет собой схему, показывающую примерную комбинацию фильтров для повышения резкости интерполяционной фильтрации с альтернативным положением операции отсечения;fig. 11 is a diagram showing an exemplary filter combination for sharpening interpolation filtering with an alternative clipping position;
фиг. 12А представляет собой схему, показывающую примерную комбинацию фильтров для повышения резкости интерполяционной фильтрации, используя фильтр регулируемой мощности;fig. 12A is a diagram showing an exemplary filter combination for sharpening interpolation filtering using a variable power filter;
фиг. 12В представляет собой схему, показывающую еще одну примерную комбинацию фильтров для повышения резкости интерполяционной фильтрации с использованием фильтра регулируемой мощности;fig. 12B is a diagram showing another exemplary filter combination for sharpening interpolation filtering using a variable power filter;
фиг. 13-21 представляют собой схемы, показывающие различные комбинации LUT и аналитические представления коэффициентов интерполяционного фильтра;fig. 13-21 are diagrams showing various combinations of LUTs and analytical representations of interpolation filter coefficients;
фиг. 22 представляет собой схему, показывающую примерную реализацию способа расчета коэффициентов;fig. 22 is a diagram showing an exemplary implementation of the coefficient calculation method;
фиг. 23 представляет собой блок-схему алгоритма процесса внутреннего/внешнего предсказания;fig. 23 is a flowchart of an intra/inter prediction process;
фиг. 24 представляет собой блок-схему алгоритма кодирования видео;fig. 24 is a block diagram of a video coding algorithm;
фиг. 25 представляет собой блок-схему модуля обработки внутреннего/внешнего предсказания, включающего в себя блок получения опорной выборки, блок получения смещения субпикселя и интерполяционный фильтр субпикселя;fig. 25 is a block diagram of an intra/inter prediction processing unit including a reference sample acquisition unit, a subpixel offset acquisition unit, and a subpixel interpolation filter;
фиг. 26 представляет собой блок-схему модуля кодирования видео, включающий в себя блок обработки внешнего предсказания и интерполяционный фильтр субпикселя.fig. 26 is a block diagram of a video encoding unit including an inter prediction processing unit and a sub-pixel interpolation filter.
В последующем описании идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным признакам, если явно не указано иначе.In the following description, identical reference numerals refer to identical or at least functionally equivalent features, unless expressly indicated 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 invention with the described method can also be true for the corresponding device or system configured to perform the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more blocks, such as functional blocks, to perform the one or more method steps described (for example, one block performing one or more steps, or a plurality of blocks , each of which performs one or more of a plurality of steps) even if such one or more units are not explicitly described and illustrated 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
Фиг. 1A представляет собой блок-схему, иллюстрирующую пример системы 10 кодирования, например, системы 10 кодирования видео (или сокращенно, система 10 кодирования), которая может использовать способы этого настоящего раскрытия. Видеокодер 20 (например, кодер 20) и видеодекодер 30 (например, декодер 30) системы 10 кодирования видео представляют собой примеры устройств, которые могут быть выполнены с возможностью выполнять способы в соответствии с различными примерами, описанными в настоящем изобретении. Fig. 1A is a block diagram illustrating an example of a
Как показано на фиг. 1A, система 10 кодирования содержит устройство 12 источника, выполненное с возможностью предоставлять данные 21 закодированного изображения, например, в устройство 14 назначения для декодирования данных 13 закодированного изображения.As shown in FIG. 1A, the
Устройство 12 источника содержит кодер 20 и может дополнительно, т.е. возможно, содержать источник 16 изображения, препроцессор 18 (блок предварительной обработки), например, препроцессор 18 изображения и интерфейс связи или блок 22 связи.The
Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или любого вида изображения или комментария (для кодирования содержимого экрана некоторые тексты на экране также считаются часть изображения или изображения, которое должно быть закодировано), устройство генерирования, например процессор компьютерной графики для генерирования компьютерного анимированного изображения, или любое устройство для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, контент экрана, изображение виртуальной реальности (VR)) и/или любую их комбинацию (например, изображение дополненной реальности (AR)). Источником изображения может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения также могут называться необработанным изображением или данными 17 исходного изображения.Unlike the
Препроцессор 18 выполнен с возможностью принимать (необработанные) данные 17 изображения и выполнять предварительную обработку данных 17 изображения для получения предварительно обработанного изображения 19 или данных 19 предварительно обработанного изображения. Предварительная обработка выполняется препроцессором 18, которая, например, содержит обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Очевидно, что препроцессор 18 может быть возможным компонентом.The
Видеокодер 20 выполнен с возможностью принимать данные 19 предварительно обработанного изображения и предоставлять данные 21 закодированного изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 2).
Интерфейс 22 связи устройства 12 источника может быть выполнен с возможностью принимать данные 21 закодированного изображения и передавать данные 21 закодированного изображения (или любой их дополнительной обработанной версии) по каналу 13 связи в другое устройство, например, устройство 14 назначения или любое другое устройство для хранения или прямого восстановления.
Устройство 14 назначения содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (блок 32 постобработки) и устройство 34 отображения.
Интерфейс 28 связи устройства 14 назначения выполнен с возможностью принимать данные 21 закодированного изображения (или любой их дополнительно обработанной версии), например, непосредственно из устройства 12 источника или из любого другого источника, например, запоминающее устройство, например, устройство хранения данных закодированного изображения, и предоставить данные 21 закодированного изображения в декодер 30.The
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передавать или принимать данные 21 кодированного изображения или закодированные данные 13 через прямую линию связи между устройством 12 источника и устройством 14 назначения, например, прямое проводное или беспроводное соединение или через любую сеть, например, проводная или беспроводная сеть или любая их комбинация, или любая частная и общественная сеть, или любая их комбинация.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковывать данные 21 закодированного изображения в соответствующий формат, например, пакеты и/или обрабатывать данные закодированного изображения с использованием любого вида кодирования передачи или обработки для передачи по каналу связи или сети связи.The
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью принимать переданные данные и обрабатывать передаваемые данные с использованием любого вида соответствующего декодирования передачи или обработки и/или распаковки для получения данных 21 закодированного изображения.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 13 закодированного изображения на фиг. 1A, указывающей от устройства 12 источника к устройству 14 назначения или, как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и получать сообщения, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.Both the
Декодер 30 выполнен с возможностью принимать данные 21 кодированного изображения и предоставлять данные 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основании фиг. 3 или фиг. 5).The
Постпроцессор 32 устройства 14 назначения выполнен с возможностью пост-обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированное изображение 31, для получения данных 33 изображения после обработки, например, пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 31 декодированного изображения для отображения, например, с помощью устройства 34 отображения.The
Устройство 34 отображения устройства 14 назначения выполнено с возможностью принимать данные 33 изображения после обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из жидкокристаллических дисплеев (LCD), дисплеев на органических светодиодах (OLED), плазменных дисплеев, проекторов, микро-светодиодных дисплеев, жидких кристаллов на кремнии (LCoS), цифрового светового процессора (DLP) или любого другого дисплея.The
Хотя фиг. 1A изображает устройство 12 источника и устройство 14 назначения как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности. В таких вариантах осуществления устройство 12 источника или соответствующие функциональные возможности и устройство 14 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.Although FIG. 1A depicts
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 12 источника и/или устройстве 14 назначения, как показано на фиг. 1A, может варьироваться в зависимости от фактического устройства и реализации.As will be apparent to those skilled in the art based on the description, the presence and (precise) separation of the functionality of the various blocks or functions in
Кодер 20 (например, видеокодер 20) и декодер 30 (например, видеодекодер 30) или оба кодер 20 или декодер 30 может быть реализован посредством схемы обработки, как показано на фиг. 1В, такой как один или более микропроцессоров, процессоров цифровых сигналов (DSPs), специальные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs), дискретная логика, оборудование или любые их комбинации. Кодер 20 может быть реализован посредством схемы 46 обработки для реализации различных модулей, как обсуждалось в отношении кодера 20 на фиг. 2 и/или любой другой кодирующей системе или подсистеме, описанной в данном документе. Декодер 30 может быть реализован посредством схемы 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в данном документе. Схема обработки может быть выполнена с возможностью выполнять различные операции, как описано ниже. Как показано на фиг. 5, если способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения способов этого настоящего раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг. 1B.Encoder 20 (eg, video encoder 20) and decoder 30 (eg, video decoder 30), or both encoder 20 or
Устройство 12 источника и устройство 14 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы служб контента или контент серверы доставки), широковещательное приемное устройство, широковещательное передающее устройство и т.п. и могут использовать или не использовать любой тип операционной системы. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для осуществления беспроводной связи. Таким образом, устройство 12 источника и устройство 14 назначения могут быть устройствами беспроводной связи.
В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 1A, является просто примером, и способы настоящего раскрытия могут применяться к настройкам кодирования видео (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются по сети и т.п. Устройство для кодирования видео может кодировать и сохранять данные в памяти, и/или устройство для декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в памяти и/или извлекают и декодируют данные из памяти.In some cases, the
Для удобства описания в настоящем документе описаны варианты осуществления изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального кодирования видео (VVC), стандарта кодирования видео следующего поколения, разработанного группой сотрудничества по кодированию видео (JCT-VC) группы экспертов ITU-T по кодированию видео (VCEG) и ISO/IEC группой экспертов по движущимся изображениям (MPEG). Для специалиста в данной области техники очевидно, что варианты осуществления изобретения не ограничиваются HEVC или VVC. For convenience of description, embodiments of the invention are described herein, for example, with reference to High Efficiency Video Coding (HEVC) or Universal Video Coding (VVC) reference software, the next generation video coding standard developed by the Collaborative Video Coding Group (JCT-VC). ) 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
Изображения & разделение изображения (изображения и блоки)Images & image sharing (images and blocks)
Кодер 20 выполнен с возможностью принимать, например, через вход 201 изображение 17 (или данные 17 изображения), например, изображение последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут быть предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для простоты описания далее в настоящем документе упоминаться как изображение 17. Изображение 17 также упоминается, как текущее изображение или изображение, подлежащее кодированию (в частности, при кодировании видео для различия текущего изображения от других изображений, например, ранее закодированных и/или декодированных изображений одной и той же видеопоследовательности, то есть, видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или содержать три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или кратко, яркость) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или кратко, цветность) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в 4:2:0, 4:2:2 и 4:4:4 цветовой формат.A (digital) image is, or can be viewed as, a two-dimensional array or matrix of samples with intensity values. A sample in an array can also be called a pixel (short for picture element) or a pixel. The number of samples in the horizontal and vertical direction (or axis) of the array or image determines the size and/or resolution of the image. Three color components are typically used to represent a color, that is, an image can be represented or contain three arrays of samples. In 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 luminance (or briefly, luminance) represents the brightness or intensity of the gray level (eg, as in a grayscale image), while the two chrominance components (or briefly, chrominance) Cb and Cr represent components of chrominance or color information. Accordingly, an image in YCbCr format contains an array of luma samples of luminance sample values (Y) and two chrominance sample arrays of chrominance values (Cb and Cr). RGB images can be converted to YCbCr format and vice versa, a process also known as color conversion. If the image is monochrome, it can only contain an array of brightness samples. Accordingly, the image may be, for example, an array of luminance samples in monochrome format, or an array of luminance samples and two corresponding arrays of chrominance samples in 4:2:0, 4:2:2 and 4:4:4 color format.
Варианты осуществления кодера 20 могут содержать блок разделения (не показан на фиг. 2), выполненный с возможностью разделять изображение 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или блоками дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменять размер блока между изображениями, подмножествами или группами изображений и разделять каждое изображение на соответствующие блоки.Embodiments of
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью принимать непосредственно блок 203 изображения 17, например один, несколько или все блоки, образующие изображение 17. Блок 203 изображения также может упоминаться как текущий блок изображения или блок изображения, который должен быть кодирован. In additional embodiments, the video encoder may be configured to directly receive block 203 of
Подобно изображению 17, блок 203 изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или видов массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, представлять собой массив выборок MxN (M-столбец на N-строку) или MxN массив коэффициентов преобразования.Like
Варианты осуществления видеокодера 20, как показано на фиг. 2, могут быть дополнительно выполнены с возможностью кодировать изображение 17 блок за блоком, например, разделять и кодировать блок 203. Embodiments of
Вычисление остаткаRemainder Calculation
Блок 204 вычисления остатка выполнен с возможностью вычислять остаточный блок 205 (также обозначен как остаток 205) на основании блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 205 в области выборки.
Преобразование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 loop filter block 220 may comprise one or more loop filters, such as a deblocking filter, an adaptive shift (SAO) filter, or other filters, such as a two-sided filter or an adaptive loop filter (ALF), or sharpening or smoothing filters, or collaborative filters. or any combination of them. Although the loop filter unit 220 is shown in FIG. 2 as a loop filter, in other configurations, the loop filter unit 220 may be implemented as a post loop filter. The filtered block 221 may also be referred to as the filtered reconstructed block 221.
Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра (такие как информация адаптивного смещения выборки), например, непосредственно или закодированные блоком 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.Embodiments of video encoder 20 (respectively, loop filter unit 220) may be configured to output loop filter parameters (such as adaptive sample offset information), for example, directly or encoded by
Буфер декодированных изображений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), двоичного разделения (BT) или троичного дерева (TT) или любой их комбинации и для выполнения, например, предсказания для каждого из разделов блоков или субблоков, в котором выбор режима содержит выбор древовидной структуры разделенного блока 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) и т.д., пока не будет завершено разделение, например, при выполнении критерия прекращения, например, достигается максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется тройным деревом (TT) и дерево, использующее разделение на четыре раздела, называется деревом квадрантов (QT).
Как упоминало ранее, термин «блок», используемый в настоящем документе, может быть частью, конкретно, частью квадратной или прямоугольной формы изображения. Со ссылкой, например, на HEVC и VVC, блок может быть или соответствовать блоку дерева кодирования (CTU), блоку кодирования (CU), блоку предсказания (PU) и блоку преобразования (TU) и/или соответствовать блокам, например, блоку дерева кодирования (CTB), блоку кодирования (CB), блоку преобразования (TB) или блоку предсказания (PB). As mentioned earlier, the term "block" as used herein may be part, specifically, part of a square or rectangular shape of an image. With reference to, for example, HEVC and VVC, a block may either correspond to a coding tree block (CTU), a coding unit (CU), a prediction block (PU), and a transform unit (TU), and/or correspond to blocks, for example, a coding tree block (CTB), coding block (CB), transform block (TB), or prediction block (PB).
Например, блок дерева кодирования (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTBs выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком NxN выборок для некоторого значения N, так что разделение компонента на CTBs является разделением. Блок кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемые для кодирования выборок. Соответственно, блок кодирования (CB) может быть блоком MxN выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением.For example, a coding tree unit (CTU) may be either a luminance sample CTB, two corresponding chrominance sample CTBs of an image that has three sample arrays, or a monochrome image sample CTB or an image that is encoded using three separate color planes and the syntax structures used 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.
Блок 254 внутреннего предсказания выполнен с возможностью использовать восстановленные выборки соседних блоков одного и того же текущего изображения для генерирования блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.The
Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью выводить параметры внутреннего предсказания (или, в общем, информацию, указывающую выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в данные 21 кодированного изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Внешнее предсказание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) и блок компенсации движения (MC) (оба не показаны на фиг. 2). Блок оценки движения выполнен с возможностью принимать или получать блок 203 изображения (текущий блок 203 изображения текущего изображения 201) и декодированное изображение 231 или, по меньшей мере, один или множество ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и предоставлять опорное изображение (или индекс опорного изображения) и/или сдвиг (пространственное сдвиг) между позицией (x, y координат) опорного блока и позицией текущего блока в качестве параметров внешнего предсказания в блок оценки движения. Это сдвиг также называется вектором движения (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), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (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
Обратное преобразованиеReverse transformation
Блок 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 prediction block 365 to obtain a reconstructed block 315 in the sample area, for example, by adding the sample values of the reconstructed residual block 313 and the sample values of the prediction block 365.
ФильтрацияFiltration
Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного повышения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр деблокинга, фильтр с адаптивным сдвигом (SAO) или один или более других фильтров, например, двунаправленный фильтр, адаптивный контурный фильтр (ALF), фильтр сглаживания, фильтр увеличения резкости или коллоборативные фильтры или любую их комбинацию. Хотя на фиг. 3 показан блок 320 контурного фильтра как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.The loop filter block 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. The
Буфер декодированного изображенияDecoded image buffer
Затем декодированные видеоблоки 321 в данном кадре или изображении сохраняются в буфере 330 декодированного изображения, в котором хранятся декодированные изображения 331 в качестве опорных изображений, используемые для последующей компенсации движения для других изображений и/или вывода соответствующего изображения для отображения на дисплее.The decoded video blocks 321 in that frame or picture are then stored in the decoded
Декодер 30 выполнен с возможностью выводить декодированное изображение 311, например, через выход 312 для представления или просмотра пользователю.The
ПредсказаниеPrediction
Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения) и блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функциям и выполняет решения о разделении или разбиении и предсказания на основании параметров разделения и/или предсказания или соответствующей информации, принятой из данных 21 закодированного изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 выбора режима может быть выполнен с возможностью выполнять предсказание (внутреннее или внешнее предсказание) для каждого блока на основании восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда сегмент видео кодируется как внутри кодированный (I) сегмент, блок 354 внутреннего предсказания блока 360 выбора режима выполнен с возможностью генерировать блок 365 предсказания для блока изображения текущего сегмента видео на основании сигнализируемого режима внутреннего предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как внешне кодируемый (то есть, B или P) сегмент, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 выбора режима выполнен с возможностью формировать блоки 365 предсказания для блока видео текущего сегмента видео на основании векторов движения и других элементов синтаксиса, принятых из блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основании опорных изображений, хранящихся в DPB 330. When a video segment is encoded as an intra-coded (I) segment, the
Блок 360 выбора режима выполнен с возможностью определять информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения или других элементов синтаксиса, и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 360 выбора режима использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента внешнего предсказания (например, B-сегмент, P-сегмент или GPB-сегмент), информации о построении для одного или нескольких списков опорных изображений для сегмента, векторов движения для каждого внешне кодированного блока видео сегмента, статус внешнего предсказания для каждого внешне кодированного блока видео сегмента и другую информацию для декодирования блоков видео в текущем сегменте видео. The mode selector 360 is configured to determine prediction information for the video block of the current video segment by analyzing motion vectors or other syntax elements, and uses the prediction information to generate prediction blocks for the current video block being decoded. For example, the mode selector 360 uses some of the received syntax elements to determine the prediction mode (eg, intra or inter prediction) used to encode the video blocks of a video segment, the inter prediction segment type (eg, B-segment, P-segment, or GPB- segment), construction information for one or more reference picture lists for the segment, motion vectors for each externally coded video block of the segment, inter prediction status for each externally coded video block of the segment, and other information for decoding video blocks in the current video segment.
Для декодирования данных 21 закодированного изображения могут использоваться другие варианты видеодекодера 30. Например, декодер 30 может формировать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное преобразование квантования остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.Other variants of the
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем выведен на следующий этап. Например, после интерполяционной фильтрации, вывода вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как ограничение или сдвиг, над результатом обработки интерполяционной фильтрации, вывода вектора движения или контурной фильтрации.It should be understood that in
Следует отметить, что к полученным векторам движения текущего блока (включающие в себя, но не ограничивающие, векторы движения точки управления аффинного режима, векторы движения субблока аффинного, планарного, ATMVP режимов, временные векторы движения и т.п.) могут быть применены дополнительные операции. Например, значение вектора движения ограничивается заданным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth, то диапазон составляет -2 ^ (bitDepth-1) ~ 2 ^ (bitDepth-1) -1, в котором «^» означает возведение в степень. Например, если bitDepth установлен равный 16, то диапазон составляет -32768 ~ 32767; если bitDepth установлен равным 18, то диапазон составляет -131072 ~ 131071. Например, значение полученного вектора движения (например, MVs четырех 4x4 субблоков в пределах одного 8x8 блока) ограничено таким образом, что максимальная разница между целыми частями четырех 4х4 субблока MVs не превышает N пикселей, например, не более 1 пикселя. It should be noted that additional operations can be applied to the received motion vectors of the current block (including, but not limited to, affine mode control point motion vectors, sub-block motion vectors of affine, planar, ATMVP modes, temporal motion vectors, etc.). . For example, the motion vector value is limited to a given range according to its representing bit. If the representing bit of the motion vector is bitDepth, then the range is -2^(bitDepth-1)~2^(bitDepth-1)-1, in which "^" means exponentiation. For example, if bitDepth is set to 16, then the range is -32768 ~ 32767; if bitDepth is set to 18, then the range is -131072 ~ 131071. For example, the value of the received motion vector (for example, MVs of four 4x4 subblocks within one 8x8 block) is limited such that the maximum difference between the integer parts of four 4x4 subblock MVs does not exceed N pixels, for example, no more than 1 pixel.
Настоящее изобретение предлагает два способа для ограничения вектора движения в соответствии с bitDepth.The present invention provides two methods for limiting a motion vector according to bitDepth.
Способ 1: удалить переполнение MSB (наиболее значимый бит) посредством операций истеченияMethod 1: Remove MSB (Most Significant Bit) Overflow Through Expiration Operations
ux = (mvx + 2bitDepth)% 2 bitDepth … (1)ux = (mvx + 2 bitDepth )% 2 bitDepth … (1)
mvx = (ux> = 2 bitDepth -1)? (ux - 2 bitDepth): ux … (2)mvx = (ux >= 2 bitDepth -1 )? (ux - 2 bitDepth ): ux ... (2)
uy = (mvy + 2 bitDepth)% 2bitDepth … (30)uy = (mvy + 2 bitDepth )% 2 bitDepth … (30)
mvy = (uy> = 2 bitDepth -1)? (uy - 2 bitDepth): uy … (4)mvy = (uy >= 2 bitDepth -1 )? (uy - 2 bitDepth ): uy … (4)
в котором mvx является горизонтальным компонентом вектора движения блока изображения или субблока, mvy является вертикальным компонентом вектора движения блока изображения или субблока и ux и uy указывают на промежуточное значение;in which mvx is the horizontal component of the motion vector of the image block or sub-block, mvy is the vertical component of the motion vector of the image block or sub-block, and ux and uy indicate an intermediate value;
Например, если значение mvx составляет -32769, после применения формулы (1) и (2), полученное значение составляет 32767. В компьютерной системе десятичные числа хранятся в виде двоичной компоненты. Двоичная компонента -32769 составляет 1, 0111,1111,1111,1111 (17 битов) и MSB отбрасывается, поэтому полученная двоичная компонента равна 0111,1111,1111,1111 (десятичное число 32767), что является таким же, как выходное значение после применения формулы (1) и (2).For example, if the mvx value is -32769, after formula (1) and (2) is applied, the resulting value is 32767. In a computer system, decimal numbers are stored as a binary component. The binary component of -32769 is 1.0111.1111.1111.1111 (17 bits) and the MSB is discarded, so the resulting binary component is 0111.1111.1111.1111 (decimal 32767), which is the same as the output value after applying formulas (1) and (2).
ux = (mvpx + mvdx + 2bitDepth)% 2bitDepth … (5)ux = (mvpx + mvdx + 2 bitDepth )% 2 bitDepth ... (5)
mvx = (ux> = 2bitDepth -1)? (ux - 2bitDepth): ux … (6)mvx = (ux >= 2 bitDepth -1 )? (ux - 2 bitDepth ): ux ... (6)
uy = (mvpy + mvdy + 2bitDepth)% 2bitDepth … (7)uy = (mvpy + mvdy + 2 bitDepth )% 2 bitDepth ... (7)
mvy = (uy> = 2bitDepth -1)? (uy - 2bitDepth): uy …. (8)mvy = (uy >= 2 bitDepth -1 )? (uy - 2 bitDepth ): uy …. (8)
Операции могут быть применены во время суммирования mvp и mvp, как показано в формуле (5) до (8).Operations can be applied during summation of mvp and mvp as shown in formula (5) to (8).
Способ 2: удалить переполнение MSB посредством ограничения значенияMethod 2: Remove MSB overflow via value constraint
vx = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)vx = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vx)
vy = Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)vy = Clip3(-2 bitDepth-1 , 2 bitDepth-1 -1, vy)
в котором vx является горизонтальным компонентом вектора движения блока изображения или субблока, vy является вертикальным компонентом вектора движения блока изображения или субблока; x, y и z соответствуют трем входным значениям процесса ограничения MV и определение функции Clip3 является следующим:in which vx is the horizontal component of the motion vector of the image block or sub-block, vy is the vertical component of the motion vector of the image block or sub-block; x, y and z correspond to the three input values of the MV clipping process and the Clip3 function definition is as follows:
Clip3( x, y, z ) = Clip3(x, y, z) =
Фиг. 4 является схемой устройства 400 кодирования видео согласно варианту осуществления настоящего раскрытия. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 по фиг. 1A или кодер, такой как видеокодер 20 по фиг. 1А. Fig. 4 is a diagram of a
Устройство 400 кодирования видео содержит входные порты 410 и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и выходные порты 450 для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.The
Процессор 430 реализован аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или более микросхем CPU, ядер (например, как многоядерный процессор), FPGAs, ASICs и DSPs. Процессор 430 связан с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использование модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 кодирования видео и обеспечивает преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).The
Фиг. 5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба устройство 12 источника и устройство 14 назначения по фиг. 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,
Фиг. 6 иллюстрирует схему множества режимов внутреннего предсказания, используемых в UIP HEVC схеме. Для блоков яркости режимы внутреннего предсказания могут содержать до 36 режимов внутреннего предсказания, что может включать в себя три ненаправленных режима и 33 направленных режима. Ненаправленные режимы могут содержать режим по среднему предсказания (DC) и режим предсказания цветности из (LM) режима предсказания яркости. Планарный режим предсказания может выполнять предсказание, предполагая, что поверхность амплитуды блока с горизонтальной и вертикальной составляющей наклонена от границы блока. DC режим предсказания может выполнять предсказание, предполагая плоскую поверхность блока со значением, соответствующим среднему значению границы блока. Режим предсказания LM может выполнять предсказание, при условии, что значение цветности для блока совпадает с значением яркости для блока.Fig. 6 illustrates a design of a plurality of intra prediction modes used in the UIP HEVC design. For luma blocks, the intra prediction modes may contain up to 36 intra prediction modes, which may include three non-directional modes and 33 directional modes. The non-directional modes may comprise a mean prediction mode (DC) and a chrominance prediction mode from (LM) a luminance prediction mode. The planar prediction mode can perform prediction by assuming that the amplitude surface of the block with horizontal and vertical components is sloped from the block boundary. The DC prediction mode can perform prediction by assuming a flat block surface with a value corresponding to the average value of the block boundary. The LM prediction mode can perform prediction as long as the chrominance value for the block matches the luma value for the block.
На фиг. 7 показан пример 67 режимов внутреннего предсказания, например, как, предложенные для VVC, множество режимов внутреннего предсказания из 67 режимов внутреннего предсказания, содержат: планарный режим (индекс 0), dc режим (индекс 1) и угловые режимы с индексами 2-66, в котором левый нижний угловой режим на фиг. 7 относится к индексу 2, и нумерация индексов увеличивается до того, как индекс 66 не будет равным верхнему правому угловому режиму на фиг. 7.In FIG. 7 shows an example of 67 intra prediction modes, for example, as proposed for VVC, a plurality of intra prediction modes of 67 intra prediction modes include: planar mode (index 0), dc mode (index 1), and angular modes with indices 2-66, in which the lower left corner mode in FIG. 7 refers to
Как показано на фиг. 8, начиная со второй версии VVC, используют несколько режимов, соответствующие наклонным направлениям внутреннего предсказания, включающие в себя широкоугольные (показанные как пунктирные линии). Для любого из этих режимов следует выполнять предсказания выборок в блочной интерполяции набора соседних опорных выборок, если соответствующее положение на стороне блока является дробным. HEVC и VVC используют линейную интерполяцию между двумя соседними опорными выборками. JEM использует более сложные 4-выводные интерполяционные фильтры. Коэффициенты фильтра выбираются как гауссовые, либо кубические в зависимости от ширины или значения высоты. Решение о том, следует ли использовать ширину или высоту, согласуется с решением о выборе главной опорной стороны: когда режим внутреннего предсказания больше или равен диагональному режиму, то выбирается верхняя сторона опорных выборок в качестве главной опорной стороны и значение ширины выбирается для определения использования интерполяционного фильтра. В противном случае основная опорная сторона выбирается с левой стороны блока и высота, управляет процессом выбора фильтра. В частности, если выбранная длина боковой стороны меньше или равна 8 выборкам, применяется 4-отводная кубическая интерполяция. В противном случае интерполяционный фильтр является 4-отводным гауссовским.As shown in FIG. 8, since the second version of VVC, several modes are used corresponding to the oblique directions of intra prediction, including wide-angle (shown as dotted lines). For any of these modes, sample predictions in block interpolation of a set of adjacent reference samples should be performed if the corresponding position on the side of the block is fractional. HEVC and VVC use linear interpolation between two adjacent reference samples. JEM uses more complex 4-pin interpolation filters. The filter coefficients are selected as either Gaussian or Cubic depending on the width or height value. The decision whether to use the width or height is consistent with the decision to select the main reference side: when the intra prediction mode is greater than or equal to the diagonal mode, then the top side of the reference samples is selected as the main reference side, and the width value is selected to determine the use of the interpolation filter . Otherwise, the base seat is selected from the left side of the block and the height controls the filter selection process. In particular, if the selected side length is less than or equal to 8 samples, 4-tap cubic interpolation is applied. Otherwise, the interpolation filter is a 4-tap Gaussian.
Подобно внешнему предсказанию, внутреннее предсказание может потребовать интерполяционной фильтрации, когда выборки внутри блока предсказаны согласно режиму дробного наклона. Если для этой цели используется линейный фильтр, коэффициенты фильтра могут быть легко рассчитаны, если предсказуемая выборка в блоке находится на дробной (субпиксельной) позиции в отношении опорных выборок. Таким образом, линейный фильтр не требует LUT (таблица поиска) для хранения его коэффициента. Тем не менее, его можно использовать, а непосредственно вычислять. Тем не менее, если модуль предсказания использует многоотводные (например, 4- или 8-отводные) интерполяционные фильтры, то может потребоваться LUT для сохранения коэффициента интерполяционных фильтров, так это реализуется в модуле внешнего предсказания, где в таблице храниться 8-выводной DCT-IF для яркости 4-отводной DCT-IF для цветности, как показано в таблице 1 и таблице 2, соответственно.Like inter prediction, intra prediction may require interpolation filtering when intra-block samples are predicted according to the fractional slope mode. If a linear filter is used for this purpose, the filter coefficients can be easily calculated if the predicted sample in the block is in a fractional (subpixel) position with respect to the reference samples. Thus, a linear filter does not require a LUT (lookup table) to store its coefficient. However, it can be used and directly computed. However, if the prediction module uses multi-tap (e.g. 4-tap or 8-tap) interpolation filters, then a LUT may be required to store the coefficient of the interpolation filters, as this is implemented in the inter-prediction module, where the 8-tap DCT-IF is stored in the table for luminance 4-tap DCT-IF for chrominance, as shown in Table 1 and Table 2, respectively.
Таблица 1. Спецификация коэффициентов fL[p] интерполяционного фильтра внешнего предсказания яркости для каждой 1/16 позиции р дробной выборки.Table 1. Specification of coefficients f L [p] of interpolation luma prediction filter for each 1/16 position p of the fractional sample.
Таблица 2. Спецификация коэффициентов fC[p] интерполяционного фильтра внешнего предсказания цветности для каждой 1/32 позиции р дробной выборки.Table 2 Specification of interpolation chroma prediction interpolation filter coefficients f C [p] for each 1/32 position p of the fractional sample.
Может быть определен конкретный набор коэффициентов, как показано в таблице 3.A specific set of coefficients can be defined, as shown in Table 3.
Таблица 3. Спецификация коэффициентов fC и fG интерполяции внутреннего предсказания, как описано в спецификации VVC версии 3.Table 3 Specification of the intra prediction interpolation coefficients fC and fG as described in the
Вычисляется выборка с внутренним предсказанием путем свертывания с коэффициентами, определенными в соответствии со смещением субпикселя и типом фильтра следующим образом:An intra-predictive convolution sample is computed with coefficients determined according to the sub-pixel offset and filter type as follows:
В этом уравнении указывает побитовую операцию сдвига вправо.In this equation specifies a bitwise right shift operation.
Набор коэффициентов извлечен из таблицы поиска (LUT). В таблице 3 приведен пример значений, хранящихся в соответствии с текущей структурой VVC, описанной в проекте спецификации версии 3 (DJVET-L1001 «Универсальное кодирование видео (проект 3)». Осуществляется выбор между сглаживающим (fG), повышения резкости (fG) и интерполяционными фильтрами с использованием условий MDIS (зависимый от режима внутреннего сглаживания). Таким образом, fC или fG могут использоваться для генерирования предсказанных выборок блока.Set of coefficients retrieved from a lookup table (LUT). Table 3 shows an example of the values stored according to the current VVC structure described in the Draft Specification Version 3 (DJVET-L1001 Universal Video Coding (Draft 3)). filters using MDIS (internal smoothing mode dependent) conditions.Thus, fC or fG can be used to generate predicted block samples.
Если выбран фильтр повышения резкости, предсказанная выборка дополнительно обрезается до допустимого диапазона значений, который либо определяется с использованием SPS, или получен из битой глубины выбранного компонента.If a sharpening filter is selected, the predicted sample optionally clipped to a valid range of values, which is either determined using SPS or derived from the bit depth of the selected component.
Для некоторых случаев использования можно выгодно избежать сохранения явных LUTs для интерполяционных фильтров, поскольку обработка LUT требует дополнительной памяти и, таким образом, повышает потребление энергии, а также размер кристалла. 1-й аспект имеет решающее значение для мобильных приложений. 2-й аспект неблагоприятно влияет на цену.For some use cases, saving explicit LUTs for interpolation filters can be advantageously avoided because LUT processing requires additional memory and thus increases power consumption as well as chip size. The 1st aspect is critical for mobile applications. The 2nd aspect adversely affects the price.
Для упомянутых случаев использования разумно аналитически определить коэффициенты интерполяционных фильтров. Вместо того, чтобы выполнять извлечение из LUT, коэффициенты фильтра могут быть рассчитаны от входной позиции р дробной выборки.For the mentioned use cases, it is reasonable to analytically determine the interpolation filter coefficients. Instead of extracting from the LUT, the filter coefficients can be calculated from the input position p of the fractional sample.
Согласно варианту осуществления настоящего раскрытия, предложен способ внутреннего или внешнего предсказания обработки видеокадров, содержащий этапы: получение опорной выборки; получение значения смещения субпикселя; и фильтрация, используя 4-отводной интерполяционный фильтр субпикселя, опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя удовлетворяют:According to an embodiment of the present disclosure, a method for intra or inter prediction of video frame processing is provided, comprising the steps of: obtaining a reference sample; obtaining a sub-pixel offset value; and filtering, using the 4-tap sub-pixel interpolation filter, the reference sample to obtain a predicted sample value in which the filter coefficients of the 4-tap sub-pixel interpolation filter satisfy:
В котором р является дробной частью значения смещения субпикселя и , , , и являются коэффициентами фильтра 4-отводного интерполяционного фильтра субпикселя.Wherein p is the fractional part of the sub-pixel offset value and , , , and are the filter coefficients of the 4-tap sub-pixel interpolation filter.
В одной примерной реализации опорные выборки могут обозначаться ref[ x ], с In one exemplary implementation, reference samples may be denoted ref[ x ], with
ref[ x ] = p[ −1 − refIdx + x ][ −1 − refIdx ], with x = 0..nTbW + refIdx + 1.ref[ x ] = p[ −1 − refIdx + x ][ −1 − refIdx ], with x = 0..nTbW +
Соответствующий массив опорных выборок и «р» относится к x-y двумерным массивам p[ x ][ y ], содержащий значения выборки. Количество используемых опорных выборок может быть, по меньшей мере, один. В другом примере количество опорных выборок может быть четыре.The corresponding array of reference samples and "p" refers to x-y two-dimensional arrays p[ x ][ y ] containing sample values. The number of reference samples used may be at least one. In another example, the number of reference samples may be four.
В одной примерной реализации полученное значение смещения субпикселя может обозначатьсяIn one exemplary implementation, the resulting sub-pixel offset value may be denoted
(y + 1 + refIdx ) * intraPredAngle(y + 1 + refIdx ) * intraPredAngle
где «IntraРredAngle» является значением угла внутреннего предсказания.where "IntraPredAngle" is an intra prediction angle value.
В одной примерной реализации предсказанное значение выборки «predSamples[ x ][ y ]» может быть получено с помощьюIn one exemplary implementation, the predicted sample value "predSamples[ x ][ y ]" can be obtained using
predSamples[ x ][ y ] = Clip1( ( ( ) + 32 ) >> 6 )predSamples[ x ][ y ] = Clip1( ( ( ) + 32 ) >> 6 )
где fT[ i ] обозначает коэффициенты фильтрации. Эти коэффициенты могут представлять собой коэффициенты фильтра яркости или цветности для внешнего предсказания, относящиеся к fG и fC соответственно.where fT[ i ] denotes the filter coefficients. These coefficients may be inter prediction luminance or chrominance filter coefficients related to fG and fC, respectively.
Выбор коэффициентов фильтра, являющихся цветности или яркости, может быть реализован путем использования и установки флага «filterFlag», например, какThe choice of filter coefficients being chrominance or luma can be implemented by using and setting the "filterFlag" flag, for example, as
fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]fT[ j ] = filterFlag ? fG[ iFact ][ j ] : fC[ iFact ][ j ]
с With
iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31.iFact = ( ( y + 1 + refIdx ) * intraPredAngle ) & 31.
Значение «31» относится к дробной части значения смещения субпикселя и может принять другие значения, отличные от «31». Значения коэффициентов фильтра fG (яркости) и/или fC (цветности), получают аналитически по ходу выполнения с использованием вышеуказанного аналитического выражения для коэффициентов фильтра 4-отводного фильтра. Таким образом, коэффициенты фильтра определяются в соответствии со значением смещения субпикселя.The value "31" refers to the fractional part of the sub-pixel offset value and can take other values than "31". Filter coefficient values fG (luminance) and/or fC (chrominance) are obtained analytically at runtime using the above analytical expression for the 4-tap filter coefficients. Thus, the filter coefficients are determined according to the sub-pixel offset value.
Следовательно, коэффициенты фильтра получают без доступа к соответствующим значениям коэффициентов фильтра из LUT, а скорее получают путем расчета.Therefore, the filter coefficients are obtained without access to the corresponding filter coefficient values from the LUT, but rather are obtained by calculation.
Альтернативно, коэффициенты фильтра могут быть рассчитаны с использованием приведенные выше уравнения и значения могут храниться в LUT.Alternatively, the filter coefficients can be calculated using the equations above and the values can be stored in the LUT.
Согласно варианту осуществления настоящего раскрытия, коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определены в таблице следующим образом:According to an embodiment of the present disclosure, the filter coefficients of the 4-tap sub-pixel interpolation filter are defined in the table as follows:
Согласно аспекту настоящего раскрытия предложен способ внутреннего или внешнего предсказания обработки видеокадров, содержащий этапы: получение опорной выборки; получение значения смещения субпикселя; и фильтрация с использованием 4-отводного интерполяционного фильтра субпикселя, опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются следующим образом:According to an aspect of the present disclosure, a method for intra or inter prediction of video frame processing is provided, comprising the steps of: obtaining a reference sample; obtaining a sub-pixel offset value; and filtering using a 4-tap sub-pixel interpolation filter, a reference sample to obtain a predicted sample value, in which the filter coefficients of the 4-tap sub-pixel interpolation filter are determined as follows:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра 4-отводного интерполяционного фильтра субпикселя.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients of the 4-tap sub-pixel interpolation filter.
В одной примерной реализации значения коэффициентов фильтра могут храниться в LUT. Это означает, что для интерполяционной фильтрации субпикселей соответствующие значения коэффициентов фильтра должны быть извлечены из LUT.In one exemplary implementation, filter coefficient values may be stored in a LUT. This means that for sub-pixel interpolation filtering, the corresponding values of the filter coefficients must be extracted from the LUT.
Фиг. 23 показывает блок-схему алгоритма процесса внутреннего/внешнего предсказания. На этапе 2301 получается опорную выборку. Опорная выборка может включать в себя одну или более опорных выборок. На этапе 2302 получено значение смещения субпикселя. На этапе 2303 опорную выборку затем фильтруют с использованием интерполяционного фильтра субпикселя, имеющего коэффициенты фильтра с i = 0, … 3. Это называется 4-отводным фильтром и/или 4-точечным фильтром.Fig. 23 shows a flowchart of an intra/inter prediction process. At
Коэффициенты фильтра могут быть получены из аналитических выражений с заданной дробной частью р значения смещения субпикселя. Коэффициенты фильтра также могут быть получены из LUT со ссылкой на значения р.The filter coefficients can be obtained from analytical expressions with a given fractional part p of the sub-pixel offset value. The filter coefficients can also be obtained from the LUT with reference to p values.
Согласно варианту осуществления настоящего раскрытия, бит р устанавливается на ноль.According to an embodiment of the present disclosure, the p bit is set to zero.
Согласно варианту осуществления настоящего раскрытия, р увеличивается на 1 и впоследствии младший бит увеличенного р устанавливается на ноль до того, как упомянутый р используется для получения коэффициентов фильтра.According to an embodiment of the present disclosure, p is incremented by 1 and subsequently the least significant bit of the incremented p is set to zero before said p is used to derive the filter coefficients.
Согласно варианту осуществления настоящего раскрытия, получение коэффициентов фильтра содержит этап вычисления коэффициентов фильтра в соответствии сAccording to an embodiment of the present disclosure, obtaining the filter coefficients comprises the step of calculating the filter coefficients according to
Это может обеспечить преимущество вычисления коэффициента фильтра от предшествующего коэффициента фильтра. Это может дополнительно уменьшить время для расчета коэффициентов фильтра.This may provide the advantage of calculating the coefficient filter from the previous coefficient filter. This can further reduce the time to calculate the filter coefficients.
Предлагаемое изобретение позволяет использовать оба подхода для получения коэффициентов фильтра: получение из LUT и непосредственным вычислением в соответствии с предлагаемыми уравнениями.The present invention allows using both approaches to obtain the filter coefficients: obtaining from the LUT and direct calculation in accordance with the proposed equations.
Один из признаков интерполяционного фильтра состоит в линейной зависимости его фазового сдвига на позиции р дробной выборки. Варианты осуществления изобретения используют эту зависимость, чтобы получить значение коэффициента фильтра с использованием простых операций на позиции р дробной выборки.One of the signs of the interpolation filter is the linear dependence of its phase shift at the position p of the fractional sample. Embodiments of the invention use this relationship to obtain the value of the filter coefficient using simple operations on position p of the fractional sample.
Линейная зависимость используется для получения коэффициентов fG сглаживания интерполяционного фильтра. Получение коэффициентов fC повышения резкости интерполяционного фильтра основано на получении абсолютного значения линейного выражения на основе p.The linear relationship is used to obtain the smoothing coefficients fG of the interpolation filter. Deriving the sharpening coefficients fC of the interpolation filter is based on deriving the absolute value of a linear expression based on p.
Согласно варианту осуществления настоящего раскрытия, предложен способ кодирования видео, способ содержит обработку внутреннего предсказания блока видеокадра, содержащую: фильтрацию с использованием 4-отводного интерполяционного фильтра субпикселя опорной выборки видеокадра; в котором 4-отводной интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, с коэффициентами фильтра, по меньшей мере, одного из фильтров, удовлетворяющий:According to an embodiment of the present disclosure, a video coding method is provided, the method comprising intra prediction processing of a video frame block, comprising: filtering using a 4-tap interpolation filter of a sub-pixel of a reference sample of a video frame; wherein the 4-tap sub-pixel interpolation filter is a combination of filters, with filter coefficients of at least one of the filters, satisfying:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра. where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 24 показывает блок-схему алгоритма процесса кодирования видео. На этапе 2410 выполняется обработка внутреннего предсказания путем фильтрации опорной выборки блока с использованием 4-отводного интерполяционного фильтра субпикселя.Fig. 24 shows a flowchart of a video encoding process. In step 2410, intra prediction processing is performed by filtering the block reference sample using a 4-tap sub-pixel interpolation filter.
Согласно варианту осуществления настоящего раскрытия, 4-отводной интерполяционный фильтр субпикселя представляет собой сглаживающий фильтр, который представляет собой параллельную комбинацию двух фазозависимых линейных фильтров и фильтра низких частот.According to an embodiment of the present disclosure, the 4-tap sub-pixel interpolation filter is an anti-aliasing filter that is a parallel combination of two phase dependent linear filters and a low pass filter.
Согласно варианту осуществления настоящего раскрытия, 4-отводной интерполяционный фильтр субпикселя представляет собой фильтр повышения резкости, который представляет собой параллельную комбинацию одного фазозависимого линейного фильтра и высокочастотного фильтра с изменяющейся мощностью.According to an embodiment of the present disclosure, the 4-tap sub-pixel interpolation filter is a sharpening filter that is a parallel combination of one phase-dependent linear filter and a power-varying high-pass filter.
Согласно аспекту нынешнего изобретения, высокочастотный фильтр с изменяющейся мощностью представляет собой фазонезависимый высокочастотный фильтр с конечной импульсной характеристикой FIR, выход которого умножен на параметр фазозависимой мощности.According to an aspect of the present invention, the power-changing high-pass filter is a phase-independent finite impulse response high-pass filter FIR whose output is multiplied by a phase-dependent power parameter.
Согласно любому из предшествующих аспектов настоящего раскрытия, младший бит р устанавливается на ноль.According to any of the preceding aspects of the present disclosure, the least significant bit of p is set to zero.
Согласно аспекту настоящего раскрытия, р увеличивается на 1, и затем младший бит увеличенного значения установлен на ноль до использования этого значения для получения коэффициентов интерполяционного фильтра.According to an aspect of the present disclosure, p is incremented by 1 and then the least significant bit of the incremented value is set to zero prior to using that value to derive the interpolation filter coefficients.
Согласно аспекту настоящего раскрытия, выполняется операция отсечения для выхода высокочастотного фильтра с изменяющейся мощностью.According to an aspect of the present disclosure, a clipping operation is performed for the output of a power varying high pass filter.
Варианты осуществления изобретения выражают коэффициент фильтра как комбинация двух или более FIR (конечная импульсная характеристика) фильтров. Эта комбинация может содержать следующие варианты:Embodiments of the invention express the filter coefficient as a combination of two or more FIR (finite impulse response) filters. This combination may contain the following options:
- последовательная комбинация, то есть, свертка коэффициентов;- sequential combination, that is, convolution of coefficients;
- параллельная комбинация, то есть, взвешенная сумма коэффициентов.- a parallel combination, that is, a weighted sum of coefficients.
Каждый из этих фильтров может или не может зависеть от параметра P фазы, который является функцией позиции р дробной выборки. Коэффициенты фильтров, принадлежащих к комбинации, имеют простое представление из параметра P фазы.Each of these filters may or may not depend on the phase parameter P, which is a function of the fractional sample position p. The coefficients of the filters belonging to the combination have a simple representation from the phase parameter P.
В одном варианте осуществления на фиг. 9, используется набор опорных выборок в интерполяционном фильтре.In one embodiment, in FIG. 9, a set of reference samples is used in the interpolation filter.
В одном варианте осуществления для случая сглаживающего интерполяционного фильтра значение параметра P фазы является таким же значение позиции р дробной выборки. На фиг. 9, блоки F1 и F2 представляют линейные интерполяционные фильтры. Коэффициенты для каждого из этих фильтров выражены из параметра P фазы следующим образом:In one embodiment, for the case of a smoothing interpolation filter, the value of the phase parameter P is the same as the value of the position p of the fractional sample. In FIG. 9, blocks F1 and F2 represent linear interpolation filters. The coefficients for each of these filters are expressed from the phase parameter P as follows:
В примере, здесь и дальше, операция разделения может быть определена с округлением или без возобновления, то есть:In the example here and below, the split operation can be defined with or without rounding, i.e.:
илиor
В котором «а» является знаменателем деления, и «n» является степенью двух параметров знаменателя.In which "a" is the denominator of the division, and "n" is the power of the two parameters of the denominator.
Блок F3 представляет собой двухотводной фильтр низких частот, имеющий постоянные коэффициенты:Block F3 is a two-tap low-pass filter with constant coefficients:
, ,
. .
В примере, фильтры F1..F3 не нормированы, F3 имеет более высокий DC усиления, чем F1 и F3 имеют более высокий DC усиления, чем F2.In the example, filters F1..F3 are not normalized, F3 has a higher DC gain than F1 and F3 has a higher DC gain than F2.
Выход фильтров F1 .. F3 суммируется и нормализован. Нормализация (блок «>>») может быть выполнена, например, смещением вправо или делением с округлением, как описано выше.The output of filters F1 .. F3 is summed and normalized. The normalization (">>" block) can be performed, for example, by shifting to the right or division with rounding, as described above.
Результирующее уравнение для этой комбинации (эквивалентный 4-отводному фильтру) выражается следующим образом:The resulting equation for this combination (equivalent to a 4-tap filter) is expressed as:
Этот вариант осуществления обеспечивает реализацию на основе LUT. Согласно этой реализации, значения коэффициентов также могут быть определены с использованием LUT. Значения, хранящиеся в этой LUT, определяются с помощью таблицы 4 (для обоих случаев: с и без округления).This embodiment provides a LUT-based implementation. According to this implementation, coefficient values can also be determined using the LUT. The values stored in this LUT are determined using Table 4 (for both cases: with and without rounding).
Таблица 4 - Спецификация коэффициента фильтра интерполяции внутреннего предсказания сглаживающего фильтра.Table 4 - Specification of the smoothing filter intra prediction interpolation filter coefficient.
Из таблицы 4 можно заметить, что коэффициенты находятся в пределах диапазона [0, 31]. Этот факт объясняет техническую выгоду изобретения, которая состоит в использовании 16-битных множителей для 8-битных и 10-битных изображений, которые используются и будут использоваться, по меньшей мере, на среднесрочной перспективе. Типичная реализация изобретения будет содержать четыре параллельные операции умножения, в котором операнды умножения имеют битовые глубины, максимум 6 для коэффициентов фильтра и 10 для выборок. Результат умножения не превысит 16-битное значение, что делает предложенные коэффициенты, дружественные от точки зрения реализации.From Table 4, you can see that the coefficients are within the range [0, 31]. This fact explains the technical benefit of the invention, which is the use of 16-bit multipliers for 8-bit and 10-bit images, which are and will be used, at least in the medium term. A typical implementation of the invention will contain four parallel multiplication operations, in which the multiplication operands have bit depths, a maximum of 6 for filter coefficients and 10 for samples. The result of the multiplication will not exceed a 16-bit value, which makes the proposed coefficients implementation-friendly.
В режиме внешнего предсказания выполняется компенсация движения блока движения. Компенсация движения может содержать этап интерполяционной фильтрации, которая аналогична фильтрации внутреннего предсказания. Еще одно полезное свойство изобретения состоит в том, что коэффициенты интерполяционных фильтров имеют одинаковую точность (то есть, глубина битов значения коэффициентов одинакова) для режимов внутреннего и внешнего предсказания. Если точность коэффициентов интерполяционных фильтров выше в случае внутреннего предсказания, что может отрицательно повлиять на вычислительную сложность видеокодека. Причина в том, что внутреннее предсказание по своей природе последовательно, поскольку требуется восстановленных выборок предшествующих блоков. Напротив, внешнее предсказание можно выполнять параллельно. Следовательно, если точность интерполяции выше для внутреннего предсказания, чем для внешнего предсказания, что может углубить несоответствие осуществления между конвейерами внутреннего и внешнего предсказания. Это выравнивание точности позволяет избежать таких негативных последствий.In the inter prediction mode, motion compensation of the motion block is performed. The motion compensation may comprise an interpolation filtering step, which is similar to intra prediction filtering. Another useful feature of the invention is that the coefficients of the interpolation filters have the same precision (ie, the bit depth of the coefficient value is the same) for the intra and inter prediction modes. If the accuracy of the interpolation filter coefficients is higher in the case of intra prediction, which can adversely affect the computational complexity of the video codec. The reason is that intra-prediction is by nature sequential, since it requires reconstructed samples of previous blocks. In contrast, extrinsic prediction can be performed in parallel. Therefore, if the interpolation accuracy is higher for intra prediction than for inter prediction, which may deepen the implementation mismatch between the intra and inter prediction pipelines. This leveling of accuracy avoids such negative consequences.
Еще одним преимуществом предлагаемого изобретения является уменьшение разнообразия коэффициентов. Учитывая, что пары соседних строк табл.4 идентичны, практическая реализация изобретения будет использовать LUT, которая имеет всего 16 строк (строки, соответствующие четным значениям p в столбце «без округления», и строки, соответствующие нечетным значениям p в столбце «с округлением») вместо 32 строк.Another advantage of the present invention is the reduction in coefficient diversity. Given that pairs of adjacent rows in Table 4 are identical, a practical implementation of the invention would use a LUT that has a total of 16 rows (rows corresponding to even p values in the "no rounding" column and rows corresponding to odd p values in the "rounded" column ) instead of 32 lines.
Техническим эффектом изобретения является возможность реализаций, по меньшей мере, следующих:The technical effect of the invention is the possibility of implementing at least the following:
- реализация без LUT, которые вычисляют коэффициенты фильтра с использованием значений р, в котором вычисление основано на аналитических уравнениях, описанных выше; и- implementation without LUT, which calculate the filter coefficients using p-values, in which the calculation is based on the analytical equations described above; and
- реализация на основании LUT, которые получают коэффициенты фильтра из LUT, используя значение индекса на основании значения p.is an LUT-based implementation that derives the filter coefficients from the LUT using an index value based on the p-value.
Точность значения p уменьшается при вычислении значений коэффициентов. В частности, значение коэффициентов получены на основании результата целочисленного деления на 2, то есть, р/2, которые могут быть реализованы в виде смещения вправо на 1, что просто реализуется в оборудовании. Для реализации на основе LUT точность уменьшается, что приводит к снижению памяти, необходимой для хранения LUT. В оборудовании это также уменьшит количество проводов адресной шины LUT.The precision of the p-value decreases as the coefficient values are calculated. In particular, the value of the coefficients are obtained based on the result of an integer division by 2, i.e., p/2, which can be implemented as a right-shift by 1, which is simply implemented in the hardware. For a LUT-based implementation, the precision is reduced, resulting in a reduction in the memory required to store the LUT. In hardware, this will also reduce the number of LUT address bus wires.
Согласно варианту осуществления настоящего раскрытия, предложено устройство для внутреннего или внешнего предсказания обработки видеокадра, включающее в себя: блок получения опорной выборки, выполненный с возможностью получать опорную выборку; блок получения значения смещения субпикселя, выполненный с возможностью получать значение смещения субпикселя; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя удовлетворяют:According to an embodiment of the present disclosure, an apparatus for intra or inter prediction of video frame processing is provided, including: a reference sample acquisition unit configured to acquire a reference sample; a sub-pixel offset value obtaining unit, configured to obtain the sub-pixel offset value; and a 4-tap sub-pixel interpolation filter configured to filter the reference sample to obtain a predicted sample value in which the filter coefficients of the 4-tap sub-pixel interpolation filter satisfy:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра 4-отводного интерполяционного фильтра субпикселя. where p is the fractional part of the subpixel offset value and , , and are the filter coefficients of the 4-tap sub-pixel interpolation filter.
Согласно варианту осуществления настоящего раскрытия, коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определены в таблице следующим образом:According to an embodiment of the present disclosure, the filter coefficients of the 4-tap sub-pixel interpolation filter are defined in the table as follows:
Согласно аспекту настоящего раскрытия, предложено устройство для внутреннего или внешнего предсказания видеокадра, содержащее: блок получения опорной выборки, выполненный с возможностью получать опорную выборку; блок получения значения смещения субпикселя, выполненный с возможностью получать значение смещения субпикселя; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра 4-отводного интерполяционного фильтра субпикселя определяются следующим образом:According to an aspect of the present disclosure, a device for intra or inter prediction of a video frame is provided, comprising: a reference sample acquisition unit configured to obtain a reference sample; a sub-pixel offset value obtaining unit, configured to obtain the sub-pixel offset value; and a 4-tap sub-pixel interpolation filter configured to filter the reference sample to obtain a predicted sample value, wherein the filter coefficients of the 4-tap sub-pixel interpolation filter are determined as follows:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра. where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 25 показывает схему модуля 2500 обработки внутреннего/внешнего предсказания, который содержит блок 2510 получения опорной выборки, блок 2520 получения значения смещения субпикселя и интерполяционный фильтр 2530 субпикселя.Fig. 25 shows a diagram of an intra/inter
Согласно аспекту настоящего раскрытия, предложено устройство для кодирования видео, содержащее: блок обработки внутреннего предсказания, выполненный с возможностью выполнять внутреннее предсказание блока видеокадра; и 4-отводной интерполяционный фильтр субпикселя, выполненный с возможностью фильтрации опорной выборки видеокадра; в котором 4-отводной интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, с коэффициентами фильтра, по меньшей мере, одного из фильтров, удовлетворяющий:According to an aspect of the present disclosure, a device for encoding a video is provided, comprising: an intra prediction processing unit configured to perform intra prediction of a block of a video frame; and a 4-tap sub-pixel interpolation filter configured to filter a video frame reference sample; wherein the 4-tap sub-pixel interpolation filter is a combination of filters, with filter coefficients of at least one of the filters, satisfying:
где p является дробной частью значения смещения субпикселя и , , и являются коэффициентами фильтра.where p is the fractional part of the subpixel offset value and , , and are the filter coefficients.
Фиг. 26 показывает схему модуля 2600 кодирования видео, который содержит блок 2610 обработки внутреннего предсказания и интерполяционный фильтр 2620 субпикселя.Fig. 26 shows a diagram of a
Согласно аспекту настоящего раскрытия, предусмотрен кодер (20), содержащий схему обработки для выполнения способа по любому из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, an encoder (20) is provided, containing a processing circuit for performing the method according to any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предложен декодер (30), содержащий схему обработки для выполнения способа по любому из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a decoder (30) is provided, comprising a processing circuit for performing a method according to any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предоставляется компьютерный программный продукт, содержащий программный код для выполнения способа в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a computer program product is provided that contains program code for performing a method in accordance with any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предусмотрен декодер, содержащий: один или более процессоров; и постоянный машиночитаемый носитель, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют декодер выполнить способ в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, a decoder is provided, 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 in accordance with any of the preceding aspects of the present disclosure.
Согласно аспекту настоящего раскрытия, предусмотрен кодер, содержащий: один или более процессоров; и постоянный машиночитаемый носитель, соединенный с процессорами и хранящий программы для выполнения процессорами, в котором программы, при выполнении процессорами, конфигурируют кодер выполнить способ в соответствии с любым из предшествующих аспектов настоящего раскрытия.According to an aspect of the present disclosure, an encoder is provided, 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 in accordance with any of the preceding aspects of the present disclosure.
Настоящее изобретение по любому из предшествующих аспектов может обеспечить более эффективный способ внутреннего/внешнего предсказания видеокадра. Это связано с тем, что коэффициенты фильтра интерполяционного фильтра получены аналитическими способом, то есть, упомянутые коэффициенты вычисляются в процессе обработки. Это позволяет избежать хранения коэффициентов в таблице поиска (LUT), требующих времени доступа для чтения коэффициентов из памяти.The present invention according to any of the preceding aspects can provide a more efficient method for intra/inter prediction of a video frame. This is due to the fact that the filter coefficients of the interpolation filter are obtained in an analytical way, that is, the said coefficients are calculated during processing. This avoids storing the coefficients in a lookup table (LUT), requiring access time to read the coefficients from memory.
Таким образом, предсказание становится более эффективным и требует меньшего объема памяти. Это обеспечивает также недорогую реализацию предсказания. Более того, поскольку аналитические коэффициенты фильтра являются линейными на позиции р дробной выборки, и используются операции деления на 2, соответствующая операция может быть эффективно выполнена, используя быструю низкоуровневую битовую операцию. Соответствующее время для выполнения битовой операции и для расчета коэффициентов фильтра короче времени доступа к хранимым коэффициентам из LUT. Таким образом, задержка обработки сокращается.Thus, the prediction becomes more efficient and requires less memory. It also provides an inexpensive implementation of the prediction. Moreover, since the analytic coefficients filters are linear at position p of a fractional sample, and divide-by-2 operations are used, the corresponding operation can be efficiently performed using a fast low-level bit operation. The corresponding time to perform a bit operation and to calculate the filter coefficients is shorter than the time to access the stored coefficients from the LUT. Thus, the processing delay is reduced.
Более того, конкретная аналитическая структура коэффициентов фильтра может обеспечить преимущество реализации низкой сложности блока (блоков) фильтра. Как было описано ранее, частотная характеристика фильтра (т.е. частотная характеристика) для различных позиций субпикселей соответствует отношению амплитуде и фазы и предотвращает появления артефактов в частотной характеристике, в частности, на высоких частотах. Линейность коэффициентов фильтра может обеспечить преимущество повторного использования оборудования.Moreover, the specific analytical structure of the filter coefficients may provide the advantage of implementing a low complexity filter block(s). As previously described, the filter's frequency response (ie, frequency response) for different subpixel positions follows the amplitude-to-phase relationship and prevents artifacts in the frequency response, particularly at high frequencies. The linearity of the filter coefficients can provide the benefit of equipment reuse.
В одном варианте осуществления для случая интерполяционного фильтра повышения резкости параметр S мощности определяется следующим образом:In one embodiment, for the case of an interpolation sharpening filter, the power parameter S is defined as follows:
Этот параметр S мощности определяется для получения максимального значения на позиции полупикселя (p = 16). Для позиций субпикселей, близких к целочисленным, параметр S мощности имеет более низкое значение. Примерная комбинация фильтров показана на фиг. 10. Блок F1 в этой фигуре представляет собой линейный фильтр с его коэффициентами, определенными следующим образом:This power parameter S is determined to obtain the maximum value at the half-pixel position (p = 16). For subpixel positions close to integer, the power parameter S has a lower value. An exemplary filter combination is shown in FIG. 10. Block F1 in this figure is a linear filter with its coefficients defined as follows:
, ,
. .
Блок F2 представляет собой высокочастотный фильтр, имеющий следующие коэффициенты:Block F2 is a high pass filter having the following coefficients:
Выход блока F2 умножается на параметр S мощности. Результат умножения дополнительно суммируется с выходом линейного фильтра F1, и полученная сумма нормализована.The output of block F2 is multiplied by the power parameter S. The result of the multiplication is additionally summed with the output of the linear filter F1, and the resulting sum is normalized.
Результирующее уравнение для этой комбинации (эквивалентный 4-отводному фильтру) выражается следующим образом:The resulting equation for this combination (equivalent to a 4-tap filter) is expressed as:
Для этого уравнения также возможна реализация на основе LUT. Таблица 5 иллюстрирует значения коэффициентов.For this equation, a LUT-based implementation is also possible. Table 5 illustrates the values of the coefficients.
Таблица 5. Спецификация интерполяционного фильтра внутреннего предсказания коэффициента фильтра повышения резкостиTable 5 Specification of the interpolation filter of the sharpening filter coefficient intra prediction
Поскольку фильтр F2 имеет отрицательные коэффициенты, нормализованный результат дополнительно обрезается, чтобы соответствовать диапазону допустимых значений, которые могут быть либо сигнализируются в SPS или получены из битовой глубины выборок.Because filter F2 has negative coefficients, the normalized result is further clipped to fit the range of valid values that can either be signaled in the SPS or obtained from the bit depth of the samples.
Альтернативный вариант осуществления состоит в том, чтобы указать альтернативную позицию операции отсечения (см. фиг. 11). Этот альтернативный вариант основан на том, что линейный фильтр F1 может не иметь выходного значения, которое ниже или выше, чем любое из его входных значений.An alternative implementation is to indicate an alternative position of the clipping operation (see Fig. 11). This alternative is based on the fact that the F1 linear filter may not have an output value that is lower or higher than any of its input values.
В одном варианте осуществления блок отсечения работает с использованием следующих этапов.In one embodiment, the pruning unit operates using the following steps.
Этап один состоит в определении выполнить отсечение по минимальному пороговому значению или максимальному пороговому значению.Step one is to determine whether to clip on the minimum threshold or the maximum threshold.
Этап два зависит от результата этапа один. В частности, выполняется отсечение либо минимальному, либо по максимальному пороговому значению.Stage two depends on the outcome of stage one. In particular, clipping is performed on either the minimum or maximum threshold value.
Минимальное пороговое значение применяется в случае, когда вход в блок отсечения является отрицательным. В противном случае применяется максимальное пороговое значение. Выход этапа два (и блока отсечения) может быть определен следующим образом:The minimum threshold applies when the clipping block input is negative. Otherwise, the maximum threshold is applied. Output stage two (and the clipping block) can be defined as follows:
Для входного значения рассчитывается вывод минимального порогового значения следующим образом:For input value the output of the minimum threshold value is calculated in the following way:
Выход максимального порогового значения рассчитывается следующим образом:The maximum threshold output is calculated as follows:
в котором является максимальным значением диапазона допустимого значения выборки.wherein is the maximum value of the range of valid sample value.
Значения и являются входными опорными выборками, показанными на фиг. 11, которые являются входом линейного фильтра F1.Values and are the input reference samples shown in FIG. 11, which are the input of the line filter F1.
В одном варианте осуществления на случае выполнения отсечения после операции умножения, рассчитывается следующим образом:In one embodiment, in the case of performing a cut after a multiplication operation, calculated as follows:
В некоторых вариантах осуществления фильтр F3 на фиг. 9, фильтр F2 на фиг. 10 и фиг. 11 может не зависеть от параметра Р фазы. Эти варианты осуществления упрощают реализацию, поскольку вывод этих фильтров может быть одинаковым для каждого входной строки предсказанных выборок, таким образом, этот этап может быть выполнен перед началом процесса интерполяции, например, на этапе фильтрации опорной выборки. Этот подход увеличивает параллелизм и, таким образом, снижает задержку направленной фильтрации.In some embodiments, filter F3 in FIG. 9, filter F2 in FIG. 10 and FIG. 11 may not depend on the parameter P of the phase. These embodiments simplify implementation because the output of these filters may be the same for each input row of predicted samples, thus this step can be performed before starting the interpolation process, for example, in the reference sample filtering step. This approach increases concurrency and thus reduces directional filtering latency.
Другой альтернативный вариант осуществления (см. фиг. 12) использует фильтр регулируемой мощности, а не только множитель выхода фильтра. Фиг. 12А показывает случай, когда выполняется отсечение выхода высокочастотного фильтра F2. Фиг. 12B показывает случай, когда выполняется отсечение выхода нормированного выхода комбинации F1 и F2. Пример фильтров регулируемой мощности может быть следующим: двусторонний фильтр, фильтр обратного преобразования и т.д.Another alternative implementation (see FIG. 12) uses a variable power filter and not just a filter output multiplier. Fig. 12A shows the case where the output of the high pass filter F2 is clipped. Fig. 12B shows the case where output clipping of the normalized output of the combination of F1 and F2 is performed. An example of adjustable power filters could be: a two-way filter, an inverse transform filter, etc.
Другой вариант осуществления использует снижение разрешения р, то есть, только 16 из 32 записей. Это достигается, например, установкой наименее значимого бита р на ноль.Another embodiment uses resolution reduction p, that is, only 16 out of 32 entries. This is achieved, for example, by setting the least significant bit of p to zero.
Как показано на фиг. 13-21, различные комбинации с использованием LUT и аналитических представлений коэффициентов интерполяционного фильтра возможны как для внутреннего, так и для внешнего предсказания. Для примеров фиг. 14 иллюстрирует случай использования, когда вычисляются коэффициенты для сглаживания интерполяционного фильтра, используемыми в случае внутреннего предсказания, в то время, как коэффициенты для других интерполяционных фильтров для внутреннего предсказания, так и для внешнего предсказания хранятся в LUTs. Дополнительно, спецификация кодирования видео может включать в себя как LUT, так и аналитические представления коэффициентов интерполяционного фильтра для осуществления различных реализаций. Если описаны оба представления на основе LUT и аналитические представления должны обеспечивать идентичные коэффициенты.As shown in FIG. 13-21, various combinations using LUTs and analytic representations of the interpolation filter coefficients are possible for both intra and inter prediction. For the examples of FIG. 14 illustrates a use case where coefficients for smoothing an interpolation filter used in the case of intra prediction are calculated, while coefficients for other interpolation filters for both intra prediction and inter prediction are stored in LUTs. Additionally, the video coding specification may include both LUTs and analytic representations of the interpolation filter coefficients for various implementations. If both LUT-based representations and analytic representations are described, they must provide identical coefficients.
Фиг. 22 представляет собой реализацию способа расчета коэффициентов, как показано на фиг. 1.Fig. 22 is an implementation of the coefficient calculation method as shown in FIG. 1.
В уравненииIn the equation
Параметр S мощности определяется следующим образом:The power parameter S is defined as follows:
Эта реализация соответствует другому способу получения параметра S мощности (обозначается как результирующее значение «q» на фиг. 22). Значение позиции р дробной выборки p направляется в демультиплексор Demux, который управляется входным 1-битным сигналом SEL, который устанавливается на значение 5-го наименьшего значимого бита р (имеющего и индекс 4, если индексация начинается с нуля). Если этот бит равен «1», то сигнал SEL указывает, что значение р больше 16, и следует рассчитывать следующее значение:This implementation corresponds to another way of obtaining the power parameter S (denoted as the resulting value "q" in Fig. 22). The value of the fractional sample position p p is sent to the Demux demultiplexer, which is controlled by the input 1-bit signal SEL, which is set to the value of the 5th least significant bit of p (which also has
= − ( not (31 xor ) ), = − ( not (31xor ) ),
Где «not» и «xor» являются побитовыми операциями NOT и XOR, соответственно. Это выражение относится к q = (32 - р) и может быть записано на языках программирования C/C ++, какWhere "not" and "xor" are the bitwise NOT and XOR operations, respectively. This expression refers to q = (32 - p) and can be written in C/C++ programming languages as
= -(~(0x1F ^ )). = -(~(0x1F ^ )).
В противном случае (то есть, если входной сигнал SEL демультиплексора Demux равен «0»), любые расчеты обойдены, и сигнал р направляется в мультиплексор MUX, как сигнал q. Выходной сигнал r мультиплексора MUX передается в модуль, который вычисляет значение t следующим образом:Otherwise (that is, if the input signal SEL of the Demux is "0"), any calculations are bypassed and signal p is sent to the MUX as signal q. The output signal r of the MUX multiplexer is passed to the module, which calculates the value t as follows:
t = ((r << 1) + r) >> 3,t = ((r << 1) + r) >> 3,
Где «<<» и «>>» являются смещением вправо и влево, соответственно.Where "<<" and ">>" are offsets to the right and left, respectively.
Фактически, это значение t представляет собой параметр S мощности. Возможна дополнительная оптимизация путем выполнения этапов, показанных на фиг. 22, параллельно с одним из коэффициентов линейного фильтра:In fact, this value of t is the power parameter S. Further optimization is possible by performing the steps shown in FIG. 22, in parallel with one of the linear filter coefficients:
z = (64 - (p << 1))z = (64 - (p << 1))
Как только значения z и S были вычислены, их можно добавить друг к другу для получения .Once the z and S values have been calculated, they can be added to each other to get .
Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, то есть, обработка или кодирование отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, если обработка кодирования изображения ограничена одним изображением 17, могут быть недоступны только блоки 244 (кодер) и 344 (декодер) внешнего предсказания. Все другие функции (также называемые инструментами или технологиями) видеокодера 20 и видеодекодер 30 могут в равной степени использоваться для обработки неподвижных изображений, например, вычисление остатка 204/304, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, разделение 262/362, внутреннее предсказание 254/354 и/или контурная фильтрация 220, 320 и энтропийное кодирование 270 и энтропийное декодирование 304.Although embodiments of the invention have been primarily described in terms of video coding, it should be noted that the embodiments of
Варианты осуществления, например, кодера 20 и декодера 30, а также описанные здесь функции, например, применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, встроенным программным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на машиночитаемом носителе или передаваться через среду связи в виде одной или нескольких инструкций или кода и выполняться аппаратным процессором. Машиночитаемый носитель может содержать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающему в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации способов, описанных в настоящем изобретении. Компьютерный программный продукт может содержать в себя машиночитаемый носитель.Embodiments of, for example,
В качестве примера, но не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения требуемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Дополнительно, любое соединение правильно называть машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновый сигнал, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал рассматриваются в качестве среды связи. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого относятся к энергонезависимым материальным носителям данных. Диск, как используется в настоящем документе, включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, и диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем машиночитаемых носителей.By way of example, and not limitation, such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk or other magnetic storage devices, flash memory, or any other media which can be used to store the required program code in the form of instructions or data structures and can be accessed by a computer. Additionally, any connection is properly referred to as a computer-readable medium. For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are considered as the communication medium. However, it should be understood that computer-readable storage media and storage media do not include connections, carrier waves, signals, or other temporary media, but instead refer to non-volatile, tangible storage media. A disc as used herein includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disk, and a Blu-ray disc, where the discs usually reproduce data magnetically and the discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer readable media.
Инструкции могут выполняться одним или несколькими процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый в настоящем описании, может относиться к любой из вышеупомянутой структуре или любой другой структуре, подходящей для реализации описанных способов. Дополнительно, в некоторых аспектах, описанные в настоящем документе, функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Дополнительно, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.The instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the aforementioned structure, or any other structure suitable for implementing the described methods. Additionally, in some aspects described herein, functionality may be provided within dedicated hardware and/or software modules capable of encoding and decoding or contained in a combined codec. Additionally, the methods may be fully implemented in one or more circuits or logic elements.
Способы настоящего раскрытия могут быть реализованы в большом количестве устройств или приспособлений, включающие в себя беспроводной телефон, интегральную схему (IC) или набор ICs (например, набор микросхем). В настоящем изобретении описаны различные компоненты, модули или блоки для представления функциональных аспектов устройств, выполненных с возможностью выполнять раскрытые технологии, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включающий в себя один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.The methods of the present disclosure may be implemented in a wide variety of devices or appliances, including a wireless telephone, an integrated circuit (IC), or a set of ICs (eg, a chipset). The present invention describes various components, modules, or blocks to represent the functional aspects of devices capable of performing the disclosed technologies, but not necessarily requiring implementation in different hardware blocks. Rather, as described above, the various blocks may be combined into a codec hardware block or provided by a set of cooperating hardware blocks including one or more processors, as described above, in combination with suitable software and/or firmware.
Суммируя, настоящее изобретение относится к внутреннему или внешнему предсказанию для кодирования и декодирования видео. Для этой цели устройство и способы получают опорную выборку и значение смещения субпикселя. Для получения предсказанного значения для фильтрации опорного выборки используется 4-отводной интерполяционный фильтр субпикселя. Коэффициенты фильтрации 4-отводного интерполяционного фильтра субпикселя определены в соответствии со значением смещения субпикселя, таких как , , и , = p / 2, р является дробной частью значения смещения субпикселя.In summary, the present invention relates to intra or inter prediction for video encoding and decoding. For this purpose, the apparatus and methods obtain a reference sample and a sub-pixel offset value. A 4-tap sub-pixel interpolation filter is used to obtain the predicted value for filtering the reference sample. The filter coefficients of the 4-tap sub-pixel interpolation filter are determined according to the sub-pixel offset value, such as , , and , = p / 2, p is the fractional part of the sub-pixel offset value.
Дополнительные варианты осуществления суммированы в следующих пунктах:Additional embodiments are summarized in the following paragraphs:
Пункт 1: Способ внутреннего или внешнего предсказания технологии кодирования видео, способ содержит:Item 1: The video coding technology intra or inter prediction method, the method comprises:
получение опорной выборки (то есть, по меньшей мере, одну опорную выборку в примере, количество опорных выборок может быть четыре);obtaining a reference sample (ie, at least one reference sample in the example, the number of reference samples may be four);
получение значения смещения субпикселя; иobtaining a sub-pixel offset value; and
фильтрация, используя интерполяционный фильтр субпикселя, опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра интерполяционного фильтра субпикселя получают в соответствии со значением смещения субпикселя.filtering, using the sub-pixel interpolation filter, the reference sample to obtain a predicted sample value, in which the filter coefficients of the sub-pixel interpolation filter are obtained in accordance with the sub-pixel offset value.
Пункт 2: Способ по п. 1, в котором коэффициент фильтра интерполяционного фильтра субпикселя получают в зависимости от дробной части значения смещения субпикселя.Claim 2: The method of
Пункт 3: Способ по п. 1 или п. 2, в котором интерполяционный фильтр субпикселя представляет собой эквивалентный 4-отводной фильтр.Claim 3: The method of
Пункт 4: Способ по п. 3, в котором коэффициенты фильтра интерполяционного фильтра субпикселя получают в соответствии сClaim 4: The method of
в котором р является дробной частью значения смещения субпикселя.in which p is the fractional part of the sub-pixel offset value.
Пункт 5: Способ по п. 3, в котором коэффициенты фильтрации интерполяционного фильтра субпикселя получают в соответствии сClaim 5: The method of
где параметр S мощности определяется следующим образом:where the power parameter S is defined as follows:
в котором р является дробной частью значения смещения субпикселя.in which p is the fractional part of the sub-pixel offset value.
Пункт 6: Способ по любому из пп. 1-5, в котором бит (например, младший бит или самый младший бит) смещения р субпикселя устанавливается на ноль.Item 6: The method according to any one of paragraphs. 1-5, in which a bit (eg, the least significant bit or least significant bit) of the sub-pixel offset p is set to zero.
Пункт7: Способ по любому из пп. 1-5, в котором значение смещения p увеличивается на 1, и после этого младший бит увеличенного значения установлен на нулевое значение до использования этого значения для получения коэффициентов фильтра.Item 7: The method according to any one of paragraphs. 1-5, in which the offset value p is incremented by 1, and thereafter the least significant bit of the incremented value is set to a value of zero prior to using this value to obtain the filter coefficients.
Пункт 8: Способ кодирования видео, способ содержит обработку внутреннего предсказание блока, содержащий интерполированную фильтрацию субпикселя, применяемую к опорным выборкам;Item 8: A video coding method, the method comprises block intra-prediction processing comprising interpolated sub-pixel filtering applied to the reference samples;
в котором интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, по меньшей мере, одного из фильтров, определяемый в соответствии со смещением субпикселя.wherein the sub-pixel interpolation filter is a combination of filters of at least one of the filters determined according to the sub-pixel offset.
Пункт 9: Способ по п. 8, в котором интерполяционный фильтр представляет собой сглаживающий фильтр, который является параллельной комбинацией двух фазозависимых линейных фильтров и фильтра нижних частот.Claim 9: The method of
Пункт 10: Способ по п. 8, в котором интерполяционный фильтр представляет собой фильтр повышения резкости, который является параллельной комбинацией одного фазозависимого линейного фильтра и высокочастотного фильтра с изменяющейся мощностью.Claim 10: The method of
Пункт 11: Способ по п. 10, в котором высокочастотного фильтра с изменяющейся мощностью представляет собой фазозависимый высокочастотный фильтр, выход которого умножается на фазозависимый параметр мощности.Claim 11: The method of
Пункт 12: Способ по п. 9, в котором комбинация фильтра представляет собой эквивалент 4-отводного фильтра, имеющий коэффициенты, указанные в соответствии с уравнениями:Item 12: The method of
в котором р является позицией р дробной выборки.where p is the position p of the fractional sample.
Пункт 13: Способ по п. 11, в котором комбинация фильтра представляет собой эквивалент 4-отводного фильтра, имеющий коэффициенты, указанные в соответствии с уравнениями:Claim 13: The method of claim 11 wherein the filter combination is the equivalent of a 4-tap filter having coefficients given according to the equations:
в котором параметр S мощности определяется следующим образом:in which the power parameter S is defined as follows:
Пункт 14: Способ по любому из предшествующих пунктов, в котором младший бит позиции р дробной выборки устанавливается на ноль.Claim 14: The method according to any of the preceding claims, wherein the least significant bit of position p of the fractional sample is set to zero.
Пункт 15: Способ по любому из пп. 8-13, в котором позиция р дробной выборки увеличивается на 1, и после этого младший бит увеличенного значения устанавливается на ноль до использования для получения коэффициентов интерполяционного фильтра.Item 15: The method according to any one of paragraphs. 8-13, in which the position p of the fractional sample is incremented by 1, and thereafter the least significant bit of the incremented value is set to zero before being used to obtain the interpolation filter coefficients.
Пункт 16: Способ по п. 10 или п. 11, в котором операция отсечения выполняется для вывода высокочастотного фильтра с изменяющейся мощностью.Claim 16: The method according to claim 10 or claim 11, wherein the clipping operation is performed to output a power-changing high-pass filter.
Пункт 17: Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 1-16.Item 17: Encoder (20) containing the processing circuit for performing the method according to any one of paragraphs. 1-16.
Пункт 18: Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-16.Item 18: Decoder (30) containing the processing circuit for performing the method according to any one of paragraphs. 1-16.
Пункт 19: Компьютерный программный продукт, содержащий программный код для выполнения способа по любому из пп. 1-16.Item 19: A computer program product containing program code for performing the method according to any one of paragraphs. 1-16.
Пункт 20: Декодер, содержащий:Item 20: A decoder comprising:
один или более процессоров; иone or more processors; and
машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессором, в котором программы при выполнении процессором, побуждают декодер выполнить способ по любому из пп. 1-16.a computer-readable medium coupled to the processors and storing programs for execution by the processor, wherein the programs, when executed by the processor, cause the decoder to execute the method of any one of claims. 1-16.
Пункт 21: Кодер, содержащий:Item 21: An encoder containing:
один или более процессоров; иone or more processors; and
машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессором, в котором программы при выполнении процессором, побуждают кодер выполнить способ по любому из пп. 1-16.a computer-readable medium coupled to the processors and storing programs for execution by the processor, wherein the programs, when executed by the processor, cause the encoder to execute the method of any one of claims. 1-16.
Пункт 22: Способ для внутреннего или внешнего предсказания технологии кодирования видео, способ содержит:Item 22: A method for intra or inter prediction of video coding technology, the method comprises:
получение опорной выборки (то есть, по меньшей мере, одну опорную выборку в примере, количество опорных выборок может быть четыре);obtaining a reference sample (ie, at least one reference sample in the example, the number of reference samples may be four);
получение позиции дробной выборки; иgetting the position of a fractional sample; and
фильтрацию с использованием интерполяционного фильтра субпикселя опорной выборки для получения предсказанного значения выборки, в котором коэффициенты фильтра интерполяционного фильтра субпикселя получены в соответствии сfiltering using the reference sample sub-pixel interpolation filter to obtain a predicted sample value in which the filter coefficients of the sub-pixel interpolation filter are obtained according to
в котором S является параметром мощности, р является позицией дробной выборки, являются коэффициентами фильтра.where S is the power parameter, p is the position of the fractional sample, are the filter coefficients.
Пункт 23: Способ по п. 22, в котором способ дополнительно содержит:Claim 23: The method of
получение значения сигнала SEL путем принятия N-го наиболее значительного бита позиции р дробной выборки, N является положительным целым числом;obtaining the value of the SEL signal by taking the N-th most significant bit of the position p of the fractional sample, N being a positive integer;
получение промежуточного значения q, в котором q устанавливается равным значению позиции р дробной выборки, когда сигнал SEL равен нулю; или q установлен на - (not (31 xor p)), когда сигнал SEL не нулевой;obtaining an intermediate value q, in which q is set to the value of the fractional sample position p when the signal SEL is zero; or q is set to - (not (31 xor p)) when the SEL signal is non-zero;
получение параметра S мощности, используя одну дополнительную операцию и операции сдвига:obtaining the power parameter S using one additional operation and shift operations:
S = (( << 1) + ) >> 3S = (( << 1) + ) >> 3
Пункт 24: Способ по п. 23, где N равен 5.Item 24: The method according to item 23, where N is 5.
Пункт 25: Способ по любому из пп. 22-24, в котором интерполяционный фильтр субпикселя представляет собой эквивалент 4-отводного фильтра.Item 25: The method according to any one of paragraphs. 22-24, in which the sub-pixel interpolation filter is the equivalent of a 4-tap filter.
Пункт 26: Способ по любому из пп. 22-25, в котором параметр S мощности рассчитывается параллельно с коэффициентом z линейного фильтра, в котором коэффициент z линейного фильтра используется для получения коэффициента интерполяционного фильтра и гдеItem 26: The method according to any one of paragraphs. 22-25, in which the power parameter S is calculated in parallel with the coefficient z of the linear filter, in which the coefficient z of the linear filter is used to obtain the coefficient interpolation filter and where
Пункт 27: Способ по любому из пп. 22-25, в котором бит (например, младший бит или более низкий бит) позиции р дробной выборки устанавливается на ноль.Item 27: The method according to any one of paragraphs. 22-25, in which a bit (eg, the least significant bit or lower bit) of the position p of the fractional sample is set to zero.
Пункт 28: Способ по любому из пп. 22-26, в котором позиция р дробной выборки повышается на 1 и затем младший бит увеличенного значения устанавливается на ноль до использования данного значения для получения коэффициентов фильтра.Item 28: The method according to any one of paragraphs. 22-26, in which the position p of the fractional sample is incremented by 1 and then the least significant bit of the incremented value is set to zero before the value is used to obtain the filter coefficients.
Пункт 29: Способ кодирования видео, способ содержит обработку внутреннего предсказания блока, содержащую интерполяционную фильтрацию субпикселя, применяемую к опорным выборкам;Item 29: A video coding method, the method comprises block intra prediction processing comprising sub-pixel interpolation filtering applied to the reference samples;
в котором интерполяционный фильтр субпикселя представляет собой комбинацию фильтров, по меньшей мере, одного из фильтров, определяемого в соответствии с позицией дробной выборки.wherein the sub-pixel interpolation filter is a combination of filters of at least one of the filters determined according to the position of the fractional sample.
Пункт 29: Способ по п. 28, в котором интерполяционный фильтр представляет собой сглаживающий фильтр, который является параллельной комбинацией двух фазозависимых линейных фильтров и фильтра нижних частот.Claim 29: The method of
Пункт 30: способ по п. 29, в котором интерполяционный фильтр представляет собой фильтр повышения резкости, который представляет собой параллельную комбинацию одного фазозависимого линейного фильтра и высокочастотного фильтра с изменяющейся мощностью.Claim 30: The method of Claim 29, wherein the interpolation filter is a sharpening filter that is a parallel combination of one phase-dependent linear filter and a power-varying high-pass filter.
Пункт 31: Способ по п. 30, в котором высокочастотный фильтр с изменяющейся мощностью представляет собой FIR фазонезависимый высокочастотный фильтр, выход которого умножается на параметр фазозависимой мощности.Claim 31: The method of
Пункт 32: Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 22-31.Item 32: Encoder (20) containing the processing circuit for performing the method according to any one of paragraphs. 22-31.
Пункт 33: декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 22-31.Item 33: decoder (30) containing the processing circuit for performing the method according to any one of paragraphs. 22-31.
Пункт 34: Компьютерный программный продукт, содержащий программный код для выполнения способа по любому из пп. 22-31.Item 34: A computer program product containing program code for performing the method according to any one of paragraphs. 22-31.
Пункт 35: Декодер, содержащий:Item 35: A decoder comprising:
один или более процессоров; а такжеone or more processors; as well as
машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессором, в котором программы при выполнении процессором, побуждают декодер выполнить способ по любому из пп. 22-31.a computer-readable medium coupled to the processors and storing programs for execution by the processor, wherein the programs, when executed by the processor, cause the decoder to execute the method of any one of claims. 22-31.
Пункт 36: Кодер, содержащий:Item 36: An encoder containing:
один или более процессоров; иone or more processors; and
машиночитаемый носитель, соединенный с процессорами, и хранящий программы для выполнения процессором, в котором программы при выполнении процессором, побуждают кодер выполнить способ по любому из пп. 22-31.a computer-readable medium coupled to the processors and storing programs for execution by the processor, wherein the programs, when executed by the processor, cause the encoder to execute the method of any one of claims. 22-31.
Список ссылочных позицийList of reference positions
Фиг. 1АFig. 1A
10 система кодирования видео10 video encoding system
12 устройство источника12 source device
13 канал связи13 communication channel
14 устройство назначения14 destination device
16 источник изображения16 image source
17 данные изображения17 image data
18 предварительный процессор18 preprocessor
19 предварительно обработанные данные изображения19 preprocessed image data
20 видеокодер20 video encoder
21 закодированные данные изображения21 encoded image data
22 интерфейс связи22 communication interface
28 интерфейс связи28 communication interface
30 видеодекодер30 video decoder
31 данные декодированного изображения31 decoded image data
32 постпроцессор32 postprocessor
33 пост-обработанные данные изображения33 post-processed image data
34 устройство отображения34 display device
Фиг1В.Fig1B.
40 система кодирования видео40 video encoding system
41 устройство (устройства) визуализации41 imaging device(s)
42 антенна42 antenna
43 процессор (ы)43 processor(s)
44 память44 memory
45 устройство отображения45 display device
46 схема обработки46 processing scheme
20 видеокодер20 video encoder
30 видеодекодер30 video decoder
Фиг. 2.Fig. 2.
17 изображение (данные)17 image (data)
19 предварительно обработанное изображение (данные)19 preprocessed image (data)
20 кодер20 encoder
21 данные закодированного изображения21 encoded image data
201 вход (интерфейс)201 inputs (interface)
204 вычисление остатка [блок или этап]204 calculation of remainder [block or step]
206 блок обработки преобразования206 conversion processing unit
208 блок квантования208 quantization block
210 блок обратного квантования210 inverse quantizer
212 блок обработки обратного преобразования212 inverse conversion processing unit
214 блок восстановления214 recovery block
220 блок контурного фильтра220 loop filter unit
230 буфер декодированных изображений (DPB)230 Decoded Picture Buffer (DPB)
260 блок выбора режима260 mode selection block
270 блок энтропийного кодирования270 entropy coding block
272 выход (интерфейс)272 output (interface)
244 блок внешнего предсказания244 inter prediction block
254 блок внутреннего предсказания254 intra prediction block
262 блок разделения262 separation unit
203 блок изображения203 image block
205 остаточный блок205 residual block
213 восстановленный остаточный блок213 restored residual block
215 восстановленный блок215 restored block
221 фильтрованный блок221 filter blocks
231 декодированное изобретение231 inventions decoded
265 блок предсказания265 prediction block
266 синтаксические элементы266 syntax elements
207 коэффициенты преобразования207 conversion factors
209 квантовые коэффициенты209 quantum coefficients
211 деквантованные коэффициенты211 dequantized coefficients
Фиг. 3Fig. 3
21 данные закодированного изображения21 encoded image data
30 видеодекодер30 video decoder
304 блок энтропийного декодирования304 entropy decoding block
309 квантованные коэффициенты309 quantized coefficients
310 блок обратного квантования310 inverse quantizer
311 деквантованные коэффициентов311 dequantized coefficients
312 блок обработки обратного преобразования312 inverse conversion processing unit
313 восстановленный остаточный блок313 rebuilt residual block
314 блок восстановления 314 recovery block
315 восстановленный блок315 rebuilt block
320 контурный фильтр320 loop filter
321 отфильтрованный блок321 filtered blocks
330 буфер декодированного изображения DBP330 DBP decoded picture buffer
331 декодированное изображение331 decoded pictures
360 блок применения режима360 mode application block
365 блок предсказания365 prediction block
366 синтаксические элементы366 syntax elements
344 блок внешнего предсказания344 inter prediction block
354 блок внутреннего предсказания354 intra prediction block
Фиг. 4.Fig. four.
400 устройство кодирования видео400 video encoder
410 порты ввода / порты входа410 input ports / input ports
420 блоки приемника RX420 RX receiver blocks
430 процессор430 processor
440 блоки передатчика TX440 TX transmitter units
450 порты вывода / порты выхода450 output ports / output ports
460 память460 memory
470 модуль кодирования470 encoding module
Фиг. 5.Fig. five.
500 устройство источника или устройство назначения500 source device or destination device
502 процессор502 processor
504 память504 memory
506 код и данные506 code and data
508 операционной системы508 operating system
510 прикладные программы510 application programs
512 шина512 tire
518 дисплей518 display
Фиг. 23Fig. 23
2300 блок-схема алгоритма способа обработки внутреннего/внешнего предсказания2300 flowchart of the intra/inter prediction processing method
Фиг. 24Fig. 24
2400 блок-схема алгоритма способа кодирования видео2400 flowchart of a video encoding method
Фиг. 25.Fig. 25.
2500 модуль внутреннего/внешнего предсказания2500 internal/external prediction module
2510 блок получения опорной выборки2510 reference sample acquisition block
2520 блок получения значения смещения субпикселя2520 sub-pixel offset value acquisition block
2530 интерполяционный фильтр субпикселя2530 subpixel interpolation filter
Фиг. 26Fig. 26
2600 модуль кодирования видео2600 video encoding module
2610 блок обработки внутреннего предсказания2610 Intra prediction processing block
2620 интерполяционный фильтр субпикселя2620 subpixel interpolation filter
Claims (39)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US62/784,319 | 2018-12-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2787217C1 true RU2787217C1 (en) | 2022-12-30 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140161189A1 (en) * | 2012-12-07 | 2014-06-12 | Qualcomm Incorporated | Advanced residual prediction in scalable and multi-view video coding |
US20160014425A1 (en) * | 2012-10-01 | 2016-01-14 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Scalable video coding using inter-layer prediction contribution to enhancement layer prediction |
US9451254B2 (en) * | 2013-07-19 | 2016-09-20 | Qualcomm Incorporated | Disabling intra prediction filtering |
WO2017086823A1 (en) * | 2015-11-17 | 2017-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus of adaptive filtering of samples for video coding |
US20180338150A1 (en) * | 2012-09-10 | 2018-11-22 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180338150A1 (en) * | 2012-09-10 | 2018-11-22 | Sun Patent Trust | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
US20160014425A1 (en) * | 2012-10-01 | 2016-01-14 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Scalable video coding using inter-layer prediction contribution to enhancement layer prediction |
US20140161189A1 (en) * | 2012-12-07 | 2014-06-12 | Qualcomm Incorporated | Advanced residual prediction in scalable and multi-view video coding |
US9451254B2 (en) * | 2013-07-19 | 2016-09-20 | Qualcomm Incorporated | Disabling intra prediction filtering |
WO2017086823A1 (en) * | 2015-11-17 | 2017-05-26 | Huawei Technologies Co., Ltd. | Method and apparatus of adaptive filtering of samples for video coding |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7508645B2 (en) | Method and apparatus for mode and size dependent block level restriction - Patents.com | |
AU2020232820B2 (en) | The method of efficient signalling of CBF flags | |
US11936860B2 (en) | Method and apparatus of sharpening interpolation filtering for predictive coding | |
US20230074457A1 (en) | Method and apparatus of subsample interpolation filtering | |
AU2020206492B2 (en) | Encoder, decoder, non-transitionary computer-readable medium and method of video coding a block of a picture | |
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 | |
CN113647103A (en) | Method and apparatus for quantizing coefficients for matrix-based intra prediction techniques | |
RU2787217C1 (en) | Method and device for interpolation filtration for encoding with prediction | |
JP7293361B2 (en) | Interpolation filtering method and apparatus for predictive coding | |
RU2786022C1 (en) | Device and method for limitations of block level depending on mode and size | |
RU2771925C1 (en) | Encoder, decoder and corresponding methods using a compact mv storage | |
RU2783385C2 (en) | Encoder, decoder and related methods using compact mv storage | |
RU2801589C2 (en) | Encoder, decoder and corresponding methods using dct2 high level permission flag | |
RU2821334C2 (en) | Encoder, decoder and related methods using high-level resolution flag dct2 | |
WO2021068785A1 (en) | An encoder, a decoder and corresponding methods of unifying interplolation filter of luma and chroma components |