RU2818228C2 - Уровни ограничения для нелинейного адаптивного контурного фильтра - Google Patents

Уровни ограничения для нелинейного адаптивного контурного фильтра Download PDF

Info

Publication number
RU2818228C2
RU2818228C2 RU2022101240A RU2022101240A RU2818228C2 RU 2818228 C2 RU2818228 C2 RU 2818228C2 RU 2022101240 A RU2022101240 A RU 2022101240A RU 2022101240 A RU2022101240 A RU 2022101240A RU 2818228 C2 RU2818228 C2 RU 2818228C2
Authority
RU
Russia
Prior art keywords
pixel
idx
levels
lim
video
Prior art date
Application number
RU2022101240A
Other languages
English (en)
Other versions
RU2022101240A (ru
Inventor
Виктор Алексеевич СТЕПИН
Сергей Юрьевич ИКОНИН
Елена Александровна АЛШИНА
Original Assignee
Хуавэй Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавэй Текнолоджиз Ко., Лтд. filed Critical Хуавэй Текнолоджиз Ко., Лтд.
Publication of RU2022101240A publication Critical patent/RU2022101240A/ru
Application granted granted Critical
Publication of RU2818228C2 publication Critical patent/RU2818228C2/ru

Links

Images

Abstract

Изобретение относится к области кодирования и декодирования видео. Техническим результатом является повышение эффективности кодирования и декодирования видео. Предложен cпособ внутриконтурной фильтрации путем выполнения адаптивной контурной фильтрации на восстановленном кадре видеопотока, реализуемый устройством кодирования или устройством декодирования, содержащий формирование разностей между пикселем восстановленного кадра и соседними пикселями в соединенной области пикселя, ограничение разностей согласно соответствующим уровням ограничения, формирование взвешенной суммы ограниченных разностей и добавление взвешенной суммы к пикселю для определения отфильтрованного пикселя, при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компоненты яркости и цветности. 6 н. и 7 з.п. ф-лы, 4 табл., 13 ил.

Description

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ
Эта заявка испрашивает приоритет международной патентной заявки PCT/RU2019/000454, поданной 24 июня 2019 г. в Патентное ведомство России, международной патентной заявки PCT/RU2019/000456, поданной 25 июня 2019 г. в Патентное ведомство России, международной патентной заявки PCT/RU2019/000476, поданной 3 июля 2019 г. в Патентное ведомство России, предварительной заявки США 62871200, поданной 7 июля 2019 г. в Патентное ведомство США, и международной патентной заявки PCT/RU2019/000483, поданной 8 июля 2019 г. в Патентном ведомстве России, раскрытия которого полностью включены в настоящий документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
В общем, настоящее раскрытие относится к области видеокодирования. Более конкретно, настоящее раскрытие относится к фильтру (например, нелинейному внутриконтурному (in-loop) фильтру) для видеокодирования и способу фильтрации восстановленных видеокадров, а также к устройству кодирования и устройству декодирования, содержащему фильтр для видеокодирования.
УРОВЕНЬ ТЕХНИКИ
Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-Ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.
Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательны улучшенные способы сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества изображения или вообще без таких потерь.
Недавно принятый стандарт ITU-T H.265/HEVC (ISO/IEC 23008-2: 2013, "Информационные технологии - Высокоэффективное кодирование и доставка мультимедиа в гетерогенных средах - Часть 2": Высокоэффективное кодирование видео", ноябрь 2013 г.) объявляет набор современных инструментов кодирования видео, которые обеспечивают разумный компромисс между эффективностью кодирования и вычислительной сложностью.
Обзор стандарта ITU-T H.265/HEVC был дан Гэри Дж. Салливаном, "Обзор стандарта высокоэффективного видеокодирования (HEVC)", в IEEE Transactions on Circuits and Systems for Video Technology, Vol. 22, No. 12 декабря 2012 г., полное содержание которого включено в настоящий документ посредством ссылки.
Одним из инструментов кодирования видео из этого стандарта является адаптивный контурный фильтр, который выполняет фильтрацию восстановленного кадра перед использованием этого кадра для предсказания. Обычный адаптивный контурный фильтр описан в Цянь Чен, Юньфэй Чжэн, Пэн Инь, Сяоан Лу, Джоэл Соле, Цянь Сю, Эдуард Франсуа и Дапенг Ву, "Адаптивный контурный фильтр на основе классифицированного квадродерева", Международная конференция и выставка IEEE по мультимедиа от 2011 г. Мультимедиа и выставка, страницы: 1-6. В этом фильтре каждый пиксель отфильтрованного восстановленного кадра представляет собой взвешенную сумму нескольких пикселей в соединенной области пикселя восстановленного кадра вокруг положения формируемого отфильтрованного пикселя. Соединенная область пикселя обычно определяется как набор соседних пикселей этого пикселя. Набор может быть симметрично расположен вокруг пикселя, при этом модификации могут применяться рядом с границей восстановленного кадра или границей восстановленного блока. Часто используемые наборы могут иметь форму ромба, такую как ромбовидная форма 7×7 для компонента яркости или ромбовидная форма 5×5 для компонентов цветности, как показано на рисунке 12.
Процесс фильтрации (линейного) адаптивного контурного фильтра выполняется следующим образом:
где выборки - это входные восстановленные выборки из соединенной области пикселя с координатами (x,y), - это отфильтрованная выходная восстановленная выборка (то есть результат фильтрации), и обозначает коэффициенты фильтра.
Вышеописанное уравнение может быть изменено (в соответствии со способом нелинейной адаптивной контурной фильтрации, описанным в JVET-M0385, который общедоступен по адресу http://phenix.it-sudparis.eu/jvet/) без влияния на эффективность кодирования, в следующем выражении:
Если максимальный весовой коэффициент w(i,j) представляет собой n-битное целое число, BitDepthLuma - битовая глубина компонента яркости (максимальное количество битов в пикселе яркости), BitDepthChroma - битовая глубина компонента цветности, тогда для реализации фильтра требуется N целочисленных умножений n-битных значений на (BitDepthLuma+3)-битные значения для фильтрации компонентов яркости и на (BitDepthChroma+3)-битные значения для фильтрации компонентов цветности, где N - длина фильтра.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Описанные ниже способы обеспечивают нелинейный внутриконтурный фильтр низкой сложности, который требует N умножений n-битных коэффициентов фильтра на (BitDepthLuma+2)-битные значения вместо N умножений n-битных коэффициентов фильтра на (BitDepthChroma+3)-битные значения в современном решении для компонента яркости. Для компонента цветности способы, описанные ниже, обеспечивают нелинейный внутриконтурный фильтр низкой сложности, который требует N умножений n-битных коэффициентов фильтра на (BitDepthChroma+2)-битные значения вместо N умножений n-битных коэффициентов фильтра на (BitDepthChroma+3)-битные значения в современном решении.
Варианты осуществления настоящего раскрытия обеспечивают улучшенный внутриконтурный фильтр низкой сложности для фильтрации восстановленного кадра.
Варианты осуществления настоящего раскрытия позволяют снизить сложность требуемых умножений без ухудшения качества фильтрации.
Вышеупомянутые и другие цели достигаются изобретением по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Вариант осуществления настоящего раскрытия обеспечивает способ внутриконтурной фильтрации путем выполнения адаптивной контурной фильтрации на восстановленном кадре видеопотока, реализуемый устройством кодирования или устройством декодирования, причем способ включает в себя формирование/определение разностей между, по меньшей мере, одним компонентов яркости и цветности пикселя восстановленного кадра и по меньшей мере одного из компонентов яркости и цветности соседних пикселей в соединенной области пикселя, ограничение разностей согласно соответствующим уровням ограничения, формирование/определение взвешенной суммы ограниченные разности и добавление взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пикселя для определения отфильтрованного соответствующего компонента пикселя, при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности.
Согласно настоящему раскрытию адаптивная контурная фильтрация может применяться к одному или нескольким компонентам яркости и цветности пикселя восстановленного кадра. Если адаптивная контурная фильтрация применяется к двум или более компонентам, в частности ко всем компонентам яркости и цветности пикселя, фильтрация выполняется отдельно для каждого компонента. Другими словами, этапы вышеупомянутого способа, которые более подробно описаны ниже, выполняются отдельно для каждого компонента, который подвергается адаптивной контурной фильтрации.
Адаптивная контурная фильтрация может применяться к одному пикселю восстановленного кадра, группе пикселей, в частности соответствующей блоку, например блоку кодирования, или всем пикселям восстановленного кадра.
Как упомянуто выше, соединенная область пикселя обычно может быть определена как набор соседних пикселей этого пикселя. Набор может быть симметрично расположен вокруг пикселя, при этом модификации могут применяться рядом с границей восстановленного кадра или границей восстановленного блока. Часто используемые наборы могут иметь форму ромба, например форму ромба 7×7 для компонента яркости или форму ромба 5×5 для компонентов цветности.
Для каждого соседнего пикселя в соединенной области определяется разность между по меньшей мере одним из компонентов яркости и цветности, то есть компонентом яркости или компонентом цветности, пикселя восстановленного кадра и по меньшей мере одним из компонентов яркости и цветности, т.е. то есть компонентом яркости или соответствующим компонентом цветности, соседнего пикселя. Каждая из результирующих разностей ограничивается в соответствии с соответствующим уровнем ограничения. Другими словами, каждый соседний пиксель в соединенной области имеет связанный соответствующий уровень ограничения для каждого из, по меньшей мере, одного из компонентов яркости и цветности. Соответствующие уровни ограничения, таким образом, зависят от фильтруемого компонента, а также от смещения (i, j) координат (x+i, y+j) соответствующего соседнего пикселя относительно координат (x, y) пиксель, по меньшей мере, один из компонентов яркости и цветности фильтруется.
Независимо от того, какой компонент, то есть компонент яркости или один из двух компонентов цветности, пикселя фильтруется, соответствующие уровни ограничения выбираются из единственного набора уровней ограничения. Один и тот же набор уровней ограничения может, в частности, включать в себя все разрешенные или возможные уровни ограничения как для компонентов яркости, так и для компонентов цветности.
Выбор уровней ограничения для компонентов яркости и цветности из одного и того же набора возможных уровней ограничения может упростить реализацию нелинейного адаптивного контурного фильтра. В частности, можно упростить определение уровней ограничения по формулам или по таблице.
Соответствующие уровни ограничения могут быть выбраны в соответствии с битовой глубиной по меньшей мере одного из компонентов яркости и цветности. Альтернативно или дополнительно, соответствующие уровни ограничения могут быть выбраны согласно соответствующим индексам ограничения для соответствующих соседних пикселей в соединенной области. Другими словами, для каждого соседнего пикселя соответствующий уровень ограничения выбирается согласно индексу ограничения для этого соседнего пикселя, который может быть различным для разных компонентов этого соседнего пикселя.
Выбор соответствующих уровней ограничения из одного и того же набора уровней ограничения для компонентов яркости и цветности может, в частности, означать, что один и тот же уровень ограничения выбран для компонента яркости и компонентов цветности для конкретного индекса ограничения, если компоненты яркости и цветности имеют такая же битовая глубина. Другими словами, битовая глубина и индекс ограничения однозначно идентифицируют уровень ограничения в наборе уровней ограничения независимо от того, выполняется ли фильтрация яркости или фильтрация цветности. Таким образом, набор уровней ограничения может быть унифицирован для компонентов яркости и цветности, поскольку один и тот же уровень ограничения выбирается из набора уровней ограничения для компонентов яркости и цветности одинаковой битовой глубины для одного и того же индекса ограничения. Это не исключает того, что разные уровни ограничения могут быть выбраны для компонентов яркости и цветности соседнего пикселя, если компоненты яркости и цветности соседнего пикселя имеют разные битовые глубины и/или разные индексы ограничения.
Соответствующие индексы ограничения могут передаваться в видеопотоке.
Соответствующие уровни ограничения могут быть положительными значениями ограничения, которые меньше или равны , где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности. В качестве альтернативы, соответствующие уровни ограничения могут быть положительными значениями ограничения, которые меньше или равны , где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности.
Первые ограничения для уровней ограничения могут позволить уменьшить битовую глубину фильтрующего умножения на 1 бит по равнению с существующим уровнем техники для каждого умножения, что экономит аппаратную квадратную область.
Согласно реализации, отфильтрованный соответствующий компонент пикселя с координатами (x, y) в восстановленном кадре может быть получен в соответствии со следующим уравнением:
Clip(, Lim)=Clip3(-,, ),
Clip3( x, y, z ) =
где - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности пикселей с координатами (x+i, y+j) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие соседним пикселям в соединенной области пикселя, положения которого имеют смещения (i, j) относительно отфильтрованного пикселя, а Lim(i,j) обозначает соответствующие уровни ограничения, соответствующие соседним пикселям в соединенной области пикселя со смещениями (i, j).
Соответствующие уровни ограничения могут быть положительными k-битными значениями ограничения с k<=BitDepth, где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности.
Соответствующие уровни ограничения могут, в частности, быть Lim(i,j)< для компонентов яркости и для компонентов цветности. В качестве альтернативы, соответствующие уровни ограничения могут, в частности, быть Lim(i,j)< для компонентов яркости и Lim(i,j)<= для компонентов цветности.
Согласно реализации, соответствующие уровни ограничения могут быть выбраны из справочной таблицы (LUT), представляющей набор возможных уровней ограничения для компонентов яркости и цветности.
Предоставление уровней ограничения в форме LUT может дополнительно упростить реализацию нелинейного ALF. Соответствующий уровень ограничения может быть определен на стороне декодера из соответствующей битовой глубины и индекса clipIdx ограничения, который может быть закодирован в и извлечен из битового потока.
LUT может быть задана следующим образом:
BitDepth clipIdx
0 1 2 3
8 28-1 25 23 21
9 29-1 26 24 22
10 210-1 27 25 23
11 211-1 28 26 24
12 212-1 29 27 25
13 213-1 210 28 26
14 214-1 211 29 27
15 215-1 212 210 28
16 216-1 213 211 29
где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности, а clipIdx обозначает индекс ограничения.
В качестве альтернативы LUT может быть задана следующим образом:
BitDepth clipIdx
0 1 2 3
8 28 25 23 21
9 29 26 24 22
10 210 27 25 23
11 211 28 26 24
12 212 29 27 25
13 213 210 28 26
14 214 211 29 27
15 215 212 210 28
16 216 213 211 29
где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности, а clipIdx обозначает индекс ограничения.
Набор уровней Lim(i,j) ограничения для компонентов яркости и цветности может быть определен в соответствии со следующими уравнениями:
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
В качестве альтернативы, набор уровней Lim(i,j) ограничения для компонентов яркости и цветности может быть определен в соответствии со следующими уравнениями:
и/или
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
В качестве альтернативы, набор уровней Lim(i,j) ограничения для компонентов яркости и цветности может быть определен в соответствии со следующими уравнениями:
и/или
посредством изменения битовой глубины яркости или компонентов BitDepth, а также индекса Idx(i,j).
LUT, предоставляющая набор уровней Lim(i,j) ограничения для компонентов яркости и цветности, может быть получена в соответствии со следующими уравнениями:
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
В качестве альтернативы LUT, представляющая набор уровней Lim(i,j) ограничения для компонентов яркости и цветности, может быть определена в соответствии со следующими уравнениями:
и/или
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
В качестве альтернативы LUT, представляющая набор уровней Lim(i,j) ограничения для компонентов яркости и цветности, может быть определена в соответствии со следующими уравнениями:
и/или
посредством изменения битовой глубины компонентов яркости или цветности BitDepth, а также индекса Idx(i,j).
Согласно реализации, индекс Idx(i,j) выбирается из диапазона положительных значений от 0 до m, где m - положительное целочисленное значение, для набора уровней ограничения. Согласно реализации, Idx(i,j)=0, 1, 2, …, m с положительным целым числом m для набора возможных уровней ограничения. m можно принять равным 3.
Согласно реализации, набор возможных уровней Lim(i,j) ограничения для компонентов яркости и цветности может быть определен в соответствии со следующими уравнениями:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=5, ShiftConst[3]=7
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=6
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
Внутриконтурная фильтрация может применяться к компонентам яркости и цветности восстановленного кадра.
Согласно аспекту варианта осуществления предоставляется устройство внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, в котором восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и при этом устройство внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью выполнения любого из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления предоставлен кодер, содержащий схему обработки для выполнения любого из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления предоставляется декодер, содержащий схему обработки для выполнения любого из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления предоставляется компьютерный программный продукт, содержащий инструкции, которые, когда программа выполняется компьютером, предписывают компьютеру выполнять любой из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления предоставляется кодер, содержащий один или несколько процессоров и не кратковременный считываемый компьютером носитель данных, соединенный с одним или несколькими процессорами и хранящий инструкции для выполнения упомянутыми одним или несколькими процессорами, при этом инструкции, когда они выполняются упомянутыми одним или несколькими процессорами, конфигурируют кодер для выполнения любого из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления предоставляется декодер, содержащий один или несколько процессоров и не кратковременный считываемый компьютером носитель данных, связанный с одним или несколькими процессорами и хранящий инструкции для выполнения упомянутыми одним или несколькими процессорами, при этом инструкции, когда они выполняются упомянутыми одним или несколькими процессорами, конфигурируют декодер для выполнения любого из способов согласно варианту осуществления.
Согласно дополнительному аспекту варианта осуществления, кодер предоставляется для обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и где кодер содержит блок вычитания, выполненный с возможностью формирования/определения разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и, по меньшей мере, одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя, блок ограничения настроен для ограничения разностей согласно соответствующим уровням ограничения, первый блок добавления, выполненный с возможностью формирования/определения взвешенной суммы ограниченных разностей, и второй блок добавления, выполненный с возможностью прибавления взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пиксель для определения отфильтрованного соответствующего компонента пикселя, при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности.
Согласно дополнительному аспекту варианта осуществления, предоставляется декодер для обработки восстановленного кадра для формирования фильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и при этом декодер содержит блок вычитания, выполненный с возможностью формирования/определения разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и, по меньшей мере, одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя, блок ограничения настроен для ограничения разностей согласно соответствующим уровням ограничения, первый блок добавления, выполненный с возможностью формирования/определения взвешенной суммы ограниченных разностей, и второй блок добавления, выполненный с возможностью прибавления взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пиксель для определения отфильтрованного соответствующего компонента пикселя, при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности.
В вышеописанном варианте осуществления разности формируются между пикселем восстановленного кадра (отфильтрованным пикселем или пикселем, который должен быть отфильтрован) и соседними пикселями в соединенной области пикселя, лежащей на линии вдоль одного направления. Другими словами, формируется взвешенная сумма нескольких пикселей в соединенной области пикселя из восстановленного кадра вокруг положения отфильтрованного пикселя, при этом соседние пиксели относятся к нескольким пикселям вокруг отфильтрованного пикселя в восстановленном кадре или блоке. В примере направление можно понимать как линию, которая проходит через m точек (например, 3 точки) с координатами (x, y), (x+i, x+j), (x-i, x-j). Другими словами, отфильтрованный пиксель соответствует координате (x, y), а соседние пиксели соответствуют координатам (x+i, x+j), (x-i, x-j) соответственно, и одна ограниченная разность между отфильтрованным пикселем (x, y) и соседний пиксель (x+i, x+j) и другая ограниченная разность между фильтрованным пикселем (x, y) и соседним пикселем (x-i, x-j) формируются для каждого направления и смещения (i, j). Для обеспечения симметричной фильтрации можно рассмотреть несколько направлений. Часто используемые примеры представляют собой ромбовидную форму 7×7 для фильтрации яркости и ромбовидную форму 5×5 для фильтрации цветности, как показано на рисунке 12.
Согласно дополнительному аспекту раскрытия вышеописанные способы фильтрации восстановленного кадра могут использоваться на стороне кодера и декодера и для компонентов яркости и цветности.
Согласно дополнительному аспекту раскрытие относится к устройству для декодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые предписывают процессору выполнять любой из способов согласно варианту осуществления.
Согласно дополнительному аспекту раскрытие относится к устройству для кодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые предписывают процессору выполнять любой из способов согласно варианту осуществления.
Согласно дополнительному аспекту предлагается считываемый компьютером носитель данных, на котором хранятся инструкции, которые при исполнении предписывают одному или нескольким процессорам, выполненных с возможностью кодирования видеоданных. Команды предписывают упомянутым одному или нескольким процессорам выполнять любой из способов согласно варианту осуществления.
Согласно дополнительному аспекту раскрытие относится к компьютерной программе, содержащей программный код для выполнения любого из способов согласно варианту осуществления, когда выполняется на компьютере.
Таким образом, описанный внутриконтурный фильтр может потребовать для компонентов яркости N умножений n-битных коэффициентов фильтра на (BitDepthLuma+2)-битные значения суммы двух ограниченных разностей между пикселем, который должен быть отфильтрован, и соседним пикселем, лежащим на линии вдоль одного направления вместо N умножений n-битных коэффициентов фильтра на (BitDepthLuma+3)-битные значения, как в современном решении. Для компонентов цветности внутриконтурный фильтр может потребовать N умножений n-битных коэффициентов фильтра на (BitDepthChroma+2)-битные значения суммы двух ограниченных разностей между пикселем, который нужно отфильтровать, и соседним пикселем, лежащим на линии вдоль в одном направлении вместо N умножений n-битных коэффициентов фильтра на (BitDepthChroma+3)-битные значения, как в современном решении.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Далее варианты осуществления изобретения описаны более подробно со ссылкой на прилагаемые фигуры и чертежи, на которых:
Фиг. 1A является блок-схемой, показывающей пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления настоящего раскрытия;
Фиг. 1B является блок-схемой, показывающей другой пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления настоящего раскрытия;
Фиг. 2 показывает схематическую диаграмму, иллюстрирующую устройство кодирования, содержащее фильтр согласно варианту осуществления раскрытия;
Фиг. 3 показывает схематическую диаграмму, иллюстрирующую устройство декодирования, содержащее фильтр, согласно варианту осуществления раскрытия;
Фиг. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;
Фиг. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;
Фиг. 6 - схематическая диаграмма, иллюстрирующая изменение уровней ограничения в соответствии с уровнем техники;
Фиг. 7 - схематическая диаграмма, иллюстрирующая примерный механизм примерного процесса согласно варианту осуществления раскрытия;
Фиг. 8 показывает блок-схему способа кодирования/декодирования видео согласно варианту осуществления раскрытия;
Фиг. 9 показывает блок-схему, иллюстрирующую пример устройства кодирования/декодирования согласно варианту осуществления раскрытия;
Фиг. 10 является блок-схемой, показывающей примерную структуру системы поставки контента, которая реализует услугу доставки контента; и
Фиг. 11 является блок-схемой, показывающей структуру примерного терминального устройства;
Фиг. 12 показаны примерные ромбовидные отводы фильтра 7×7 и 5×5 для ALF.
В дальнейшем идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящего изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего раскрытия. Понятно, что варианты осуществления данного раскрытия могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего раскрытия определяется прилагаемой формулой изобретения.
Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
В настоящем раскрытии используется следующая терминология:
блок кодирования: Блок MxN выборок для положительных целочисленных значений M и N, в котором разделение блока дерева кодирования (CTB) на блоки кодирования называется разделением.
блок дерева кодирования (CTB): Блок выборок LxL для положительного целочисленного значения L, в котором разделение кадра компонента на CTB называется разделением.
единица дерева кодирования (CTU): содержит CTB выборок яркости и два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксиса структуры, используемые для кодирования выборок.
единица кодирования (CU): содержит блок кодирования выборок яркости и два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок.
компонент: Массив или одиночная выборка из одного из трех массивов (яркость и две цветности), составляющих изображение в цветовом формате 4: 2: 0, 4: 2: 2 или 4: 4: 4, или массив, или одиночная выборка массива, составляющего картинку в монохромном формате.
рисунок: Массив выборок яркости в монохромном формате или массив выборок яркости и два соответствующих массива выборок цветности в цветовом формате 4: 2: 0, 4: 2: 2 и 4: 4: 4.
Видеокодирование обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина "изображение" можно использовать термин "кадр" или "изображение" как синонимы в области видеокодирования. Кодирование видео (или кодирование в целом) состоит из двух частей: кодирования видео и декодирования видео. Видеокодирование выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеоизображений для сокращения объема данных, требуемого для представления видеоизображений (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне получателя и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к "кодированию" видеоизображений (или изображений в целом), должны пониматься как относящиеся к "кодированию" или "декодированию" видеоизображений или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, т. е. Восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии, что во время хранения или передачи не происходит потери передачи или других потерь данных). В случае видеокодирования с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
Несколько стандартов видеокодирования принадлежат к группе "гибридных видеокодеков с потерями" (т.е. сочетают пространственное и временное предсказание в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (внутри изображения) предсказания и/или временного (между изображениями) предсказания для формирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что они оба будут формировать идентичные предсказания (например, внутрикадровое и межкадровое предсказания) и/или восстановления для обработки, то есть кодирования, последующих блоков.
В нижеследующих вариантах осуществления системы 10 видеокодирования, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. с 1 по 3.
Фиг. 1A представляет собой блок-схему, иллюстрирующую примерную систему 10 кодирования, например систему 10 видеокодирования (или сокращенно систему 10 кодирования), которая может использовать способы из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодирования представляют примеры устройств, которые могут быть выполнены с возможностью выполнения способов в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на Фиг. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 изображения, например в целевое устройство 14 для декодирования кодированных данных 13 изображения.
Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. опционально, содержать источник 16 изображений, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 изображений, а также интерфейс связи или блок 22 связи.
Источник 16 изображений может содержать или быть устройством захвата изображений любого типа, например камерой для захвата изображения реального мира, и/или устройством формирования изображений любого типа, например процессором компьютерной графики для формирования компьютерного анимированного изображения, или любым типом другого устройства для получения и/или предоставления изображения реального мира, формируемого компьютером изображения (например, содержимого экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображения дополненной реальности (AR)). Источником изображений может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 предварительной обработки, изображение или данные 17 изображения также могут именоваться необработанным (raw) изображением или необработанными данными 17 изображения.
Препроцессор 18 может быть выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Можно понять, что блок 18 предварительной обработки может быть необязательным компонентом.
Видеокодер 20 может быть выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, на основе фиг. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи этих кодированных данных 21 изображения (или любой их дальнейшей обработанной версии) по каналу 13 связи в другое устройство, например целевое устройство 14 или любое другое устройство, для сохранения или непосредственного восстановления.
Целевое устройство 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е., необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 постобработки) и устройство 34 отображения.
Коммуникационный интерфейс 28 целевого устройства 14 может быть выполнен с возможностью приема кодированных данных 21 изображения (или любой их дальнейшей обработанной версии), например, непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, такого как устройство хранения кодированных данных изображения и предоставить кодированные данные 21 изображения в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображения или кодированных данных 13 через прямую линию связи между устройством-источником 12 и целевым устройством 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.
Интерфейс 22 связи может быть выполнен с возможностью упаковки кодированных данных 21 изображения в соответствующий формат, например пакетов, и/или обработки кодированных данных изображения с использованием любого вида кодирования передачи или обработки для передачи по линии связи или сети связи.
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки передачи и/или деупаковки для получения кодированных данных 21 изображения.
И интерфейс 22 связи, и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для канала 13 связи на фиг. 1A, указывающей от устройства-источника 12 к целевому устройству 14, или как двунаправленные интерфейсы связи, и может быть выполнен с возможностью отправки и приема сообщений, например для установки соединения, для подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, такой как передача кодированных данных изображения.
Декодер 30 может быть выполнен с возможностью приема кодированных данных 21 изображения и предоставления декодированных данных 31 изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основе фиг. 3 или фиг. 5).
Постпроцессор 32 целевого устройства 14 может быть выполнен с возможностью пост-обработки декодированных данных 31 изображения (также называемых данными восстановленного изображения), например, декодированного изображения 31, для получения данных 33 постобработанного изображения, таких как постобработка изображение 33. Постобработка, выполняемая блоком 32 постобработки, может включать в себя любое одно или несколько преобразований цветового формата (например, из YCbCr в RGB), цветокоррекцию, ограничение или повторную выборку, или любую другую обработку, например, для подготовки декодированных данные 31 изображения для отображения, например, устройством 34 отображения.
Устройство 34 отображения целевого устройства 14 может быть выполнено с возможностью приема данных 33 изображения с постобработкой для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, такой как встроенный или внешний дисплей или монитор. Дисплей может быть жидкокристаллическим дисплеем (LCD), дисплеем на органических светодиодах (OLED), плазменным дисплеем, проектором, дисплеем на микро-светодиодах, жидким кристаллом на кремнии (LCoS), цифровым световым процессором (DLP). или любой другой дисплей.
Хотя фиг. 1A изображает устройство-источник 12 и целевое устройство 14 как отдельные устройства, варианты осуществления устройств также могут содержать оба устройства или обе функции, то есть устройство-источник 12 или соответствующие функции и целевое устройство 14 или соответствующие функции. В таких вариантах осуществления устройство-источник 12 или соответствующая функциональная возможность и целевое устройство 14 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.
Как будет очевидно для специального элемента на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 12 и/или целевом устройстве 14, как показано на Фиг. 1A, может варьироваться в зависимости от фактического устройства и применения.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или оба, кодер 20 и декодер 30 могут быть реализованы с помощью схемы обработки, показанной на фиг. 1B, например, одного или нескольких микропроцессоров, цифровых сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, аппаратное обеспечение, выделенное кодирование видео или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как описано в отношении кодера 20 на фиг. 2 и/или любой другой системы или подсистемы кодера, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 с Фиг. 3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном считываемом компьютером носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Видеокодер 20 и видеодекодер 30 могут быть интегрированы как часть комбинированного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг. 1B.
Система 40 видеокодирования, показанная на фиг. 1B, содержит схему обработки, реализующую как видеокодер 20, так и видеодекодер 30. Кроме того, одно или несколько устройств 41 формирования изображений, таких как камера для захвата изображений реального мира, антенна 42, одно или несколько запоминающих устройств 44, один или несколько процессоров 43 и/или устройство 45 отображения, такое как устройство 34 отображения, описанное выше, может быть предоставлено как часть системы 40 видеокодирования.
Устройство-источник 12 и целевое устройство 14 могут включать в себя любое из широкого диапазона устройств, включая любые виды портативных или стационарных устройств, например портативные или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, наборы- приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы служб контента или серверы доставки контента), устройства приемника вещания, устройства передатчика вещания и т.п. Операционная система. В некоторых случаях устройство-источник 12 и целевое устройство 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и целевое устройство 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 видеокодирования, проиллюстрированная на фиг. 1A, является просто примером, и способы настоящего приложения могут применяться к системам видеокодирования (например, кодирование видео или декодирование видео), которые не обязательно включают в себя какую-либо передачу данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковом режиме по сети или подобное. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые связь друг с другом не осуществляют, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания здесь описаны варианты осуществления данного раскрытия, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на эталонное программное обеспечение универсального видеокодирования (VVC), стандарт видеокодирования следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодированию (JCT-VC) экспертной группы по видеокодированию ITU-T (VCEG) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного раскрытия не ограничиваются HEVC или VVC.
Кодер и способ кодирования
Фиг. 2 показывает блок-схему примерного видеокодера 20, который выполнен с возможностью реализации способов настоящей заявки. В примере на фиг.2 видеокодер 20 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер декодированных изображений (DPB) 230, блок 260 выбора режима, блок 270 энтропийного кодирования и выход 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 разделения. Блок 244 межкадрового предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования и блок 260 выбора режима могут упоминаться как формирующие прямой путь сигнала кодера 20, тогда как блок 210 обратного квантования, блок обработки обратного преобразования 212, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB) 230, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания могут называться формирующими обратный путь сигнала видеокодера 20, при этом обратный путь сигнала видеокодера 20 соответствует пути сигнала декодера (см. видеодекодер 30 на фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB) 230, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания также относятся к формированию "Встроенный декодер" видеокодера 20.
Изображения и разделение изображений (изображения и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через вход 201, изображения 17 (или данных 17 изображения), например изображения последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения также могут представлять собой предварительно обработанное изображение 19 (или предварительно обработанные данные 19 изображения). Для простоты следующее описание относится к рисунку 17. Изображение 17 также может называться текущим изображением или изображением, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее кодированные и/или декодированные изображения той же видеопоследовательности, т.е. видеопоследовательность, которая также включает в себя текущее изображение).
(Цифровое) изображение является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента изображения) или пэл (pel). Количество выборок в горизонтальном и вертикальном направлении (или оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть изображение может быть представлено в виде трех массивов выборок или может включать в себя их. В формате RBG или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при видеокодировании каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновом изображении), в то время как две компоненты Cb и Cr цветности (chrominance) (или сокращенно цветность (chroma)) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости со значениями (Y) выборок яркости и два массива выборок цветности со значениями (Cb и Cr) цветности. Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr и наоборот. Этот процесс также известен как преобразование цвета или преобразование. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на Фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единицами дерева кодирования (CTU) (согласно H.265/HEVC и VVC). Блок разделения изображения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 изображения 17, например одного, нескольких или всех блоков, формирующих изображение 17. Блок 203 изображения также может именоваться текущим блоком изображения или блоком изображения, подлежащим кодированию.
Подобно изображению 17, блок 203 изображения является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, яркость и два массива цветности в случае цветного изображения 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, содержать массив выборок M × N (M-столбец на N-строк) или массив M × N коэффициентов преобразования.
Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть выполнены с возможностью кодирования изображения 17 блок за блоком, например кодирование и предсказание выполняется для каждого блока 203.
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования изображения с использованием сегментов (также называемых видеосегментами), при этом изображение может быть разделено или кодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клетки (tile) (H.265/HEVC и VVC) или фрагменты (VVC)).
Варианты осуществления видеокодера 20, показанные на фиг.2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием групп слайсов/мозаичных элементов (также называемых группами мозаичных изображений) и/или мозаичных элементов (также называемых мозаиками видео). ), в котором изображение может быть разделено на или закодировано с использованием одной или нескольких групп слайсов/мозаичных элементов (обычно не перекрывающихся), и каждая группа слайсов/мозаичных элементов может содержать один или несколько блоков (например, CTU) или один или несколько мозаичных элементов, при этом каждый тайл может иметь прямоугольную форму и может содержать один или несколько блоков (например, CTU), например полные или дробные блоки.
Вычисление остатка
Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также именуемого остатком 205) на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания приведены ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборок.
Преобразование
Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, такого как дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST), к значениям выборок остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также именоваться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, определенные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, например коэффициенты масштабирования представляют собой степень двойки для операций сдвига, битовая глубина коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т. д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например блоком 312 обработки обратного преобразования в видеодекодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например блоком 206 обработки преобразования, могут быть заданы надлежащим образом в кодере 20.
Варианты осуществления видеокодера 20 (соответственно, блока 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например типа преобразования или преобразований, например, непосредственно или закодированы или сжаты через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
Квантование
Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битный коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования могут применяться различные масштабирования для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом заранее определенного набора применимых размеров шага квантования. Например, небольшие параметры квантования могут соответствовать тонкому квантованию (небольшим размерам шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, а соответствующее и/или обратное деквантование, например, блоком 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления в соответствии с некоторыми стандартами, например HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации фиксированной точки уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, которая могла быть изменена из-за масштабирования, используемого в аппроксимации фиксированной точки упомянутого уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы настроенные таблицы квантования могут использоваться и сигнализироваться от кодера к декодеру, например в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шагов квантования.
Варианты осуществления видеокодера 20 (соответственно, блока 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или закодированных через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Обратное квантование
Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например путем применения обратной схемы квантования относительно таковой, применяемой блоком 208 квантования, на основе или с использованием того же размера шага квантования, что и блок 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя они обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.
Обратное преобразование
Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования относительно преобразования, применяемого блоком 206 обработки преобразования, например обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусного преобразования (DST) или других обратных преобразований для получения восстановленного остаточного блока 213 (или соответствующих деквантованных коэффициентов 213) в области выборок. Восстановленный остаточный блок 213 также может упоминаться как блок 213 преобразования.
Восстановление
Блок 214 восстановления (например, блок сложения или сумматор 214) выполнен с возможностью сложения блока 213 преобразования (т. е. восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборок, например посредством сложения - выборка за выборкой - значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.
Фильтрация
Блок 220 контурного фильтра (или сокращенно "контурный фильтр" 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра может быть выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр деблокирования, фильтр с адаптивным к выборке смещением (SAO) или один или несколько других фильтров, таких как адаптивный контурный фильтр (ALF), фильтр подавления шума. (NSF) или любое их сочетание. В одном примере, блок 220 контурного фильтра может содержать деблокирующий фильтр, SAO-фильтр и ALF-фильтр. Порядок процесса фильтрации может быть фильтром удаления блочности, SAO и ALF. В другом примере добавляется процесс, называемый преобразованием яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед снятием блокировки. В другом примере процесс фильтрации удаления блочности может также применяться к внутренним краям субблока, например, аффинным краям субблока, краю субблока ATMVP, краям преобразования субблока (SBT) и краям внутреннего субблока (ISP). Хотя блок 220 контурного фильтра показан на фиг. 2 как внутриконтурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как пост-контурный фильтр. Отфильтрованный блок 221 также может называться отфильтрованным восстановленным блоком 221.
Варианты осуществления видеокодера 20 (соответственно, блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как параметры фильтра SAO или параметры фильтра ALF или параметры LMCS), например, напрямую или закодированные с помощью блока 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Буфер декодированных изображений
Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных изображений может быть выполнен с возможностью сохранения одного или более отфильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, того же самого текущего изображения или разных изображений, например ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. Буфер декодированных изображений (DPB) 230 также может быть выполнен с возможностью хранения одного или нескольких нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например, если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.
Выбор режима (разделение и предсказание)
Блок 260 выбора режима содержит блок 262 разделения, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания и выполнен с возможностью приема или получения исходных данных изображения, таких как исходный блок 203 (текущий блок 203 текущего изображения 17), и данные восстановленного изображения, такие как отфильтрованные и/или нефильтрованные восстановленные выборки или блоки одного и того же (текущего) изображения и/или из одного или множества ранее декодированных изображений, например, из буфера 230 декодированных изображений или других буферов (например, строкового буфера, не показано). Данные восстановленного изображения используются в качестве данных опорного изображения для предсказания, например межкадрового предсказания или внутрикадрового предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутреннего или межкадрового предсказания) и формирования соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются блоком 260 выбора режима или доступны для него), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба фактора. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания на основе оптимизации скорость/искажение (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение при определенной скорости. Такие термины, как "лучший", "минимальный", "оптимальный" и т. д. в этом контексте не обязательно относятся к всеобъемлющему "лучшему", "минимуму", "оптимальному" и т.д., но также могут относиться к выполнению критерия выбора или прекращения, например когда значение превышает или падает ниже порогового значения, или других ограничений, потенциально ведущих к "субоптимальному выбору", но уменьшающих сложность и время обработки.
Другими словами, блок 262 разделения может быть выполнен с возможностью разделения изображения из видеопоследовательности на последовательность единиц дерева кодирования (CTU), а CTU 203 может быть дополнительно разделена на более мелкие блочные разделы или подблоки (которые снова образуют блоки), например, итеративно с использованием разбиения квадродеревом (QT), разбиения двоичным деревом (BT), разбиения на троичным деревом (TT) или любой их комбинации, и для выполнения предсказания для каждого из блочных разделов или подблоков, при этом выбор режима включает выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделов или подблоков блока.
Далее более подробно поясняется разделение (например, блоком 262 разделения) и обработка предсказания (блоком 244 межкадрового предсказания и блоком 254 внутрикадрового предсказания), выполняемые примерным видеокодером 20.
Разбиение
Блок 262 разделения может быть выполнен с возможностью разделения изображения из видеопоследовательности на последовательность единиц дерева кодирования (CTU), а блок 262 разделения может разбивать (или разделять) единицу 203 дерева кодирования (CTU) на меньшие разделы, например блоки меньшего размера квадратного или прямоугольного размера. Для изображения, которое имеет три массива выборок, CTU включает в себя блок N × N выборок яркости вместе с двумя соответствующими блоками выборок цветности. Максимально допустимый размер блока яркости в CTU определен как 128×128 в текущей спецификации универсального кодирования видео (VVC), но в будущем может быть указано значение, отличное от 128×128, например 256×256. CTU изображения могут быть сгруппированы/сгруппированы как фрагменты/группы фрагментов, фрагменты или блоки. Плитка покрывает прямоугольную область изображения, и она может быть разделена на один или несколько кирпичей. Кирпич состоит из ряда рядов CTU внутри плитки. Плитку, не разделенную на несколько кирпичей, можно назвать кирпичом. Однако кирпич - это истинное подмножество плитки и не называется плиткой. В VVC поддерживаются два режима групп фрагментов, а именно режим среза/группы фрагментов растрового сканирования и режим прямоугольного фрагмента. В режиме группы мозаичных фрагментов с растровым сканированием группа фрагментов/фрагментов содержит последовательность фрагментов при растровом сканировании изображения. В режиме прямоугольного фрагмента фрагмент содержит несколько блоков изображения, которые вместе образуют прямоугольную область изображения. Кирпичи внутри прямоугольного фрагмента находятся в порядке растрового сканирования фрагмента.
Меньшие блоки (которые также могут называться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на уровне корневого дерева 0 (уровень иерархии 0, глубина 0), может быть рекурсивно разделен, например разделен на два или более блоков следующий более низкий уровень дерева, например узлы на уровне дерева 1 (уровень иерархии 1, глубина 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровень дерева 2 (иерархия - уровень 2, глубина 2) и т.д. до тех пор, пока разделение не будет завершено, например, потому что критерий завершения выполняется, например, достигнута максимальная глубина дерева или минимальный размер блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), а дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).
Например, единица дерева кодирования (CTU) может быть или содержать CTB выборок яркости и два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодирования (CU) может быть или содержать блок кодирования выборок яркости и два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием три отдельные цветовые плоскости и синтаксические структуры, используемые для кодирования выборок. Соответственно, блок кодирования (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодирования является разделением.
В некоторых вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разделена на CU с использованием структуры квадродеревьев, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне конечных CU. Каждая листовая CU может быть дополнительно разделена на один, два или четыре PU в соответствии с типом разделения PU. Внутри одного PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU листовая CU может быть разделена на блоки преобразования (TU) в соответствии с другой структурой квадродеревьев, аналогичной дереву кодирования для CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом видеокодирования, который называется универсальным кодированием видео (VVC), объединенное вложенное многотиповое дерево Quad-tree с использованием структуры сегментации двоичного и троичного разбиения, например, используется для разделения единицы дерева кодирования. В структуре дерева кодирования внутри единицы дерева кодирования CU может иметь квадратную или прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется четвертичным деревом. Затем листовые узлы четвертичного дерева могут быть дополнительно разделены с помощью многотипной древовидной структуры. В многотипной древовидной структуре есть четыре типа разделения: вертикальное двоичное разделение (SPLIT_BT_VER), горизонтальное двоичное разделение (SPLIT_BT_HOR), вертикальное тройное разделение (SPLIT_TT_VER) и горизонтальное тройное разделение (SPLIT_TT_HOR). Листовые узлы многотипного дерева называются единицами кодирования (CU), и, если CU не слишком велика для максимальной длины преобразования, эта сегментация используется для предсказания и обработки преобразования без какого-либо дальнейшего разделения. Это означает, что в большинстве случаев CU, блоки предсказания (PU) и блоки преобразования (TU) имеют одинаковый размер блока в квадродереве с вложенной структурой блока кодирования дерева нескольких типов. Исключение возникает, когда максимальная поддерживаемая длина преобразования меньше ширины или высоты цветового компонента CU.
VVC разрабатывает уникальный механизм передачи информации о разделении разделов в дереве квадрантов с вложенной древовидной структурой кодирования многовидового дерева. В механизме сигнализации единица дерева кодирования (CTU) рассматривается как корень четвертичного дерева и сначала разделяется структурой четвертичного дерева. Каждый листовой узел четвертичного дерева (если он достаточно большой, чтобы его можно было использовать) затем разбивается на несколько типов древовидной структуры. В многотипной древовидной структуре первый флаг (mtt_split_cu_flag) сигнализируется, чтобы указать, разделен ли узел дальше; когда узел дополнительно разбивается на разделы, второй флаг (mtt_split_cu_vertical_flag) сигнализируется, чтобы указать направление разделения, а затем сигнализируется третий флаг (mtt_split_cu_binary_flag), чтобы указать, является ли разбиение двоичным или троичным. На основе значений mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, многотипный режим разделения дерева (MttSplitMode) CU может быть получен декодером на основе предопределенного правила или таблицы. Следует отметить, что для определенной реализации, например, для конвейерной обработки блока яркости 64×64 и конвейерной обработки цветности 32×32 в аппаратных декодерах VVC, разделение TT запрещено, когда ширина или высота блока кодирования яркости больше 64. Разделение TT также запрещено, если ширина или высота блока кодирования цветности больше 32. Конструкция конвейерной обработки разделит изображение на блоки данных виртуального конвейера (VPDU), которые определены как неперекрывающиеся блоки в изображении. В аппаратных декодерах последовательные блоки VPDU обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (ТБ). Однако в VVC разделение троичного (TT) и двоичного (BT) дерева может привести к увеличению размера VPDU.
Кроме того, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу изображения, блок узла дерева принудительно разделяется до тех пор, пока все выборки каждой кодированной CU не окажутся внутри границ изображения.
В качестве примера инструмент внутренних подразбиений (Intra Sub-Partitions, ISP)) может разделять блоки яркости с внутрикадровым предсказанием по вертикали или горизонтали на 2 или 4 подразбиения в зависимости от размера блока.
В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разбиения, описанных в данном документе.
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, предопределенных) режимов предсказания. Набор режимов предсказания может содержать режимы внутрикадрового предсказания и/или режимы межкадрового предсказания.
Внутрикадровое предсказания
Набор режимов внутрикадрового предсказания может содержать 35 различных режимов внутрикадрового предсказания, таких как ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутрикадрового предсказания, такие как ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, например, как определено для VVC. В качестве примера, несколько обычных режимов углового внутрикадрового предсказания адаптивно заменяются режимами широкоугольного внутрикадрового предсказания для неквадратных блоков, например, как определено в VVC. В качестве другого примера, чтобы избежать операций деления для предсказания DC, только длинная сторона используется для вычисления среднего для неквадратных блоков. И результаты внутрикадрового предсказания планарного режима могут быть дополнительно изменены с помощью способа позиционно-зависимой комбинации внутрикадрового предсказания (PDPC).
Блок 254 внутрикадрового предсказания выполнен с возможностью использования восстановленных выборок соседних блоков одного и того же текущего изображения для формирования блока 265 (внутрикадрового) предсказания в соответствии с режимом внутрикадрового предсказания из набора режимов внутрикадрового предсказания.
Блок 254 внутрикадрового предсказания (или, в общем, блок 260 выбора режима) может быть дополнительно выполнен с возможностью вывода параметров внутрикадрового предсказания (или, в общем, информации, указывающей выбранный режим внутрикадрового предсказания для блока) в блок 270 энтропийного кодирования в форма синтаксических элементов 266 для включения в кодированные данные 21 изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Интер-предсказание
Набор (или возможных) режимов межкадрового предсказания зависит от доступных опорных изображений (т.е. Предыдущих, по меньшей мере, частично декодированных изображений, например, сохраненных в DBP 230) и других параметров межкадрового предсказания, например, от того, все ли опорное изображение или только его часть, например, область окна поиска вокруг области текущего блока, опорного изображения используется для поиска наиболее подходящего опорного блока, и/или, например, применяется ли интерполяция пикселей, такая как половина/полупиксель, четверть пикселя и/или интерполяция 1/16 пикселя, или нет.
A В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска, прямой режим и/или другой режим межкадрового предсказания.
Например, для расширенного предсказания слияния список кандидатов на слияние для такого режима создается путем включения следующих пяти типов кандидатов по порядку: Пространственный MVP из пространственных соседних CU, временный MVP из совместно расположенных CU, MVP на основе истории из таблицы FIFO, попарный средний MVP и нулевые MV. И уточнение вектора движения на стороне декодера (DMVR) на основе двустороннего сопоставления может применяться для повышения точности MV режима слияния.
Режим слияния с MVD (MMVD) - это режим слияния с разностями векторов движения (MVD). Флаг MMVD сигнализируется сразу после отправки флага пропуска и флага слияния, чтобы указать, используется ли режим MMVD для CU. И может применяться схема адаптивного разрешения вектора движения (AMVR) на уровне CU. AMVR позволяет кодировать MVD CU с разной точностью. В зависимости от режима предсказания для текущей CU, MVD текущей CU могут выбираться адаптивно.
Когда CU кодируется в режиме слияния, комбинированный режим внутреннего/внутрикадрового предсказания (CIIP) может применяться к текущей CU. Для получения предсказания CIIP выполняется взвешенное усреднение сигналов внутреннего и внутрикадрового предсказания. При предсказании с компенсацией аффинного движения поле аффинного движения блока описывается информацией о движении векторов движения двух контрольных точек (4 параметра) или трех контрольных точек (6 параметров). Предсказание вектора движения на основе субблоков (SbTMVP) аналогично предсказанию вектора движения во времени (TMVP) в HEVC, но предсказывает векторы движения нескольких подблоков CU внутри текущей CU. Двунаправленный оптический поток (BDOF), ранее называвшийся BIO, представляет собой более простую версию, которая требует гораздо меньше вычислений, особенно с точки зрения количества умножений и размера умножителя. В режиме разбиения на треугольник CU равномерно разбивается на два участка в форме треугольника, используя либо диагональное, либо антидиагональное разбиение. Кроме того, режим двойного предсказания выходит за рамки простого усреднения, чтобы обеспечить взвешенное усреднение двух сигналов предсказания.
Блок 244 межкадрового предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба не показаны на фиг. 2). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 17) и декодированного изображения 231, или, по меньшей мере, одного или множества ранее восстановленных блоков, таких как восстановленные блоки одного или множество ранее декодированных изображений 231 для оценки движения. В качестве примера видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или разных изображений из множества ранее декодированных изображений и предоставления опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения), между положением (координаты x, y) опорного блока и положением текущего блока в качестве параметров межкадрового предсказания для блока оценки движения. Это смещение также называется вектором движения (MV).
Блок компенсации движения может быть выполнен с возможностью получения, например, приема параметра межкадрового предсказания и выполнения межкадрового предсказания на основе или с использованием параметра межкадрового предсказания для получения блока 265 (межкадрового) предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или формирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может формировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число блоков предсказания-кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений.
Блок компенсации движения может также формировать синтаксические элементы, связанные с блоками и слайсами видео, для использования видеодекодером 30 при декодировании блоков изображения слайса видео. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут формироваться или использоваться группы мозаичных элементов и/или мозаичные элементы и соответствующие синтаксические элементы.
Энтропийное кодирование
Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивной двоичное арифметическое кодирование (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с интервалом вероятности (PIPE) или другой метод или метод энтропийного кодирования) или обход (без сжатия) квантованных коэффициентов 209, меж- параметры предсказания, параметры внутрикадрового предсказания, параметры контурного фильтра и/или другие синтаксические элементы для получения кодированных данных 21 изображения, которые могут выводиться через выход 272, например, в форме кодированного потока 21 битов, так что, например, видеодекодер 30 может принимать и использовать параметры для декодирования. Кодированный битный поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.
Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
Фиг. 3 показывает пример видеодекодера 30, который выполнен с возможностью реализации способов настоящего приложения. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного битового потока 21), например кодированных кодером 20, чтобы получить декодированное изображение 331. Кодированные данные изображения или поток битов содержат информацию для декодирования кодированных данных изображения, например данные, которые представляют блоки изображения кодированного слайса видео (и/или группы или мозаичного элемента) и связанных синтаксических элементов.
В примере на фиг. 3 декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320,буфер 330 декодированных изображений (DBP), блок 360 применения режима, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 20 на фиг. 2.
Как объяснялось в отношении кодера 20, блока 210 обратного квантования, блока 212 обработки обратного преобразования, блока 214 восстановления, контурного фильтра 220, буфера декодированных изображений (DPB) 230, блока 244 межкадрового предсказания и блока 254 внутрикадрового предсказания также называется формированием "встроенного декодера" видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функции блоку 210 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функции блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функции блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных изображений может быть идентичен по функции буферу 230 декодированных изображений. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.
Энтропийное декодирование
Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, кодированных данных 21 изображения) и выполнения, например, энтропийного декодирования для кодированных данных 21 изображения, чтобы получить, например, квантованные коэффициенты 309 и/или параметры декодированного кодирования 366 , например, любой или все параметры межкадрового предсказания (например, индекс опорного изображения и вектор движения), параметры внутрикадрового предсказания (например, режим или индекс внутрикадрового предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и/или другой синтаксис элементы. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров межкадрового предсказания, параметров внутрикадрового предсказания и/или других синтаксических элементов блоку 360 применения режима и других параметров другим блоками декодера 30 предсказания. Видеодекодер 30 может принимать синтаксические элементы на уровне видеосегмента и/или уровне видеоблока. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы мозаичных элементов и/или мозаичные элементы и соответствующие синтаксические элементы.
Обратное квантование
Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока энтропийного декодирования). 304) и применять на основе параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеослайсе (или мозаичном элементе или группе мозаичных элементов), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.
Обратное преобразование
Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также именуемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для того, чтобы получить восстановленные остаточные блоки 313 в области выборок. Восстановленные остаточные блоки 313 также могут именоваться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое подлежит применению к деквантованным коэффициентам 311.
Восстановление
Блок 314 восстановления (например, блок сложения или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
Фильтрация
Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или несколько контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO) или один или несколько других фильтров, например адаптивный контурный фильтр (ALF), фильтр подавления шума (NSF) или любую их комбинацию. В одном примере блок 220 контурного фильтра может содержать фильтр удаления блочности, фильтр SAO и фильтр ALF. Порядок процесса фильтрации может быть фильтром удаления блочности, SAO и ALF. В другом примере добавляется процесс, называемый преобразованием яркости с масштабированием цветности (LMCS) (а именно, адаптивным внутриконтурным преобразователем). Этот процесс выполняется перед снятием блокировки. В другом примере процесс фильтрации удаления блочности может также применяться к внутренним краям субблока, например, аффинным краям субблока, краям субблока ATMVP, краям преобразования субблока (SBT) и краям внутри субблока (ISP). Хотя блок 320 контурного фильтра показан на фиг. 3 как внутриконтурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как пост-контурный фильтр.
Буфер декодированных изображений
Декодированные видеоблоки 321 изображения затем сохраняются в буфере 330 декодированных изображений, который сохраняет декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения для других изображений и/или для вывода или, соответственно, отображения.
Декодер 30 выполнен с возможностью вывода декодированного изображения 311, например, через вывод 312 для представления или просмотра пользователю.
Предсказание
Блок 344 межкадрового предсказания может быть идентичен блоку 244 межкадрового предсказания (в частности, блоку компенсации движения), а блок 354 внутрикадрового предсказания может быть идентичен блоку 254 внутрикадрового предсказания по функциям и выполняет разделение или решения о разделении и предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принятой из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью выполнения предсказания (внутреннего или межкадрового предсказания) для каждого блока на основе восстановленных изображений, блоков или соответствующих выборок (отфильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда фрагмент видео или изображение кодируется как фрагмент с внутренним кодированием (I), блок 354 внутрикадрового предсказания блока 360 применения режима конфигурируется для формирования блока 365 предсказания для блока изображения текущего фрагмента видео на основе сигнализируемого режима с внутрикадровым предсказанием и данных из ранее декодированных блоков текущего изображения. Когда слайс видео или изображение кодируется как слайс с межкадровым кодированием (т.е. B или P), блок 344 межкадрового предсказания (например, блок компенсации движения) блока 360 применения режима конфигурируется для создания блока 365 предсказания для видеоблока текущего слайса видео на основе векторов движения и других синтаксических элементов, принятых из блока 304 энтропийного декодирования. Для межкадрового предсказания блоки предсказания могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных изображений, Список 0 и Список 1, используя способы построения по умолчанию на основе опорных изображений, хранящихся в DPB 330. Тот же или подобный подход может быть применен для вариантов осуществления или с их помощью с использованием групп мозаичных элементов (например, группы видеоячейков) и/или фрагментов (например, видеоячейки) в дополнение или в качестве альтернативы к фрагментам (например, фрагментам видео), например, видео может быть закодировано с использованием I , Группы плиток P или B и/или плитки.
Блок 360 применения режима выполнен с возможностью определения информации предсказания для блока видео/изображения текущего слайса видео путем анализа векторов движения или связанной информации и других синтаксических элементов и использования информации предсказания для создания блоков предсказания для текущего видеоблока декодируется. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутри- или межкадровое предсказание), используемого для кодирования видеоблоков фрагмента видео, типа фрагмента с межкадровым предсказанием (например, B-слайс, P-слайс или GPB-слайс), информация о конструкции для одного или нескольких списков опорных изображений для слайса, векторы движения для каждого интеркодированного видеоблока слайса, статус межкадрового предсказания для каждого интеркодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем слайсе. Тот же или подобный подход может быть применен для вариантов осуществления или с их помощью с использованием групп мозаичных элементов (например, группы видеоячейков) и/или фрагментов (например, видеоячейки) в дополнение или в качестве альтернативы к фрагментам (например, фрагментам видео), например, видео может быть закодировано с использованием I , Группы плиток P или B и/или плитки.
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разбиения и/или декодирования изображения с использованием сегментов (также называемых видео сегментами), при этом изображение может быть разделено на или декодировано с использованием одного или более сегментов (обычно без перекрытия), и каждый сегмент может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, клетки (H.265/HEVC и VVC) или блоки (VVC)).
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием групп срезов/мозаичных элементов (также называемых группами мозаичных изображений) и/или мозаичных элементов (также называемых мозаичными изображениями)., в котором изображение может быть разделено на или декодировано с использованием одного или нескольких групп слайсов/мозаичных элементов (обычно не перекрывающихся), и каждая группа слайсов/мозаичных элементов может содержать один или несколько блоков (например, CTU) или один или несколько мозаичных элементов, при этом каждый мозаичный элемент может иметь прямоугольную форму и может содержать один или несколько блоков (например, CTU), например полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования кодированных данных 21 изображения. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурного фильтра. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.
Следует понимать, что в кодере 20 и декодере 30 результат обработки некоторого текущего этапа может быть обработан дополнительно, а затем выведен на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации, дополнительная операция, такая как Clip (усечение) или смещение, может выполняться над результатом обработки интерполяционной фильтрации, получения вектора движения или контурной фильтрации.
Фиг. 4 является схематической диаграммой устройства 400 кодирования видео согласно варианту осуществления настоящего раскрытия. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано ниже. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 по Фиг. 1A, или кодером, таким как видеокодер 20 по Фиг. 1A.
Устройство 400 кодирования видео может содержать входные порты 410 (или входные порты 410) и один или несколько приемных блоков (Rx) 420 для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; один или несколько передающих блоков (Tx) 440 и выходных портов 450 (или выходных портов 450) для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.
Процессор 430 может быть реализован аппаратно и программно. Процессор 430 может быть реализован в виде одного или более CPU-чипов, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 может поддерживать связь с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 может содержать модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше и ниже. Например, модуль 470 кодирования может реализовывать, обрабатывать, подготавливать или предоставлять различные операции кодирования. Следовательно, включение модуля 470 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 400 кодирования видео и обеспечивает трансформацию устройства 400 кодирования видео в другое состояние. В качестве альтернативы модуль 470 кодирования может быть реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).
Фиг. 5 является упрощенной блок-схемой устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и целевого устройства 14 из фиг. 1A согласно примерному варианту осуществления.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, которая существует в настоящее время или будет разработана в будущем. Хотя раскрытые реализации могут быть осуществлены на практике с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более одного процессора.
Память 504 в устройстве 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы.
Устройство 500 может также включать в себя одно или более устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным воспринимать сенсорный ввод (касанием). Дисплей 518 может быть соединен с процессором 502 через шину 512.
Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из множества шин. Кроме того, вторичное хранилище (не показано) может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, таких как несколько карт памяти. Таким образом, устройство 500 может быть реализовано в самых разнообразных конфигурациях.
Нелинейный адаптивный контурный фильтр
Настоящее раскрытие обеспечивает различные улучшения нелинейного адаптивного контурного фильтра (ALF), как описано в JVET-M0385, который общедоступен по адресу http://phenix.it-sudparis.eu/jvet/. Как описано во вводном разделе настоящего раскрытия, нелинейный ALF может быть реализован в блоке 220 контурного фильтра кодера 20, показанном на фиг. 2, и, соответственно, в блоке 320 контурного фильтра декодера 30, показанного на фиг. 3. Нелинейный ALF может выполнять фильтрацию восстановленного кадра перед использованием этого кадра для предсказания.
В общем, способы внутриконтурной фильтрации посредством выполнения адаптивной контурной фильтрации на восстановленном кадре видеопотока, реализованные устройством кодирования или устройством декодирования, согласно настоящему раскрытию, могут быть реализованы посредством следующих этапов, как показано на фиг. 8:
Этап 1310: формирование/определение разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и по меньшей мере одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя. Соединенная область пикселя обычно определяется как набор соседних пикселей этого пикселя. Набор может быть симметрично расположен вокруг пикселя, при этом модификации могут применяться рядом с границей восстановленного кадра или границей восстановленного блока. Часто используемые наборы могут иметь форму ромба, например форму ромба 7×7 для компонента яркости или форму ромба 5×5 для компонентов цветности. Внутриконтурная фильтрация может выполняться отдельно для компонентов яркости и цветности восстановленного кадра. Разности, входящие в соответствующие процессы фильтрации, определяются между соответствующими компонентами пикселей. Другими словами, разности между компонентами яркости пикселей определяются для выполнения нелинейной ALF-фильтрации на компоненте яркости. Аналогичным образом, для каждого компонента цветности определяются разности между соответствующими компонентами цветности пикселей, чтобы выполнить нелинейную фильтрацию ALF на соответствующем компоненте цветности.
Этап 1320: ограничение разностей согласно соответствующим уровням ограничения. Каждый соседний пиксель и, следовательно, каждая разность может иметь свой собственный уровень ограничения. Другими словами, уровни ограничения могут зависеть от смещения (i,j) соответствующего соседнего пикселя относительно координат (x, y) пикселя, который должен быть отфильтрован.
Этап 1330: формирование/определение взвешенной суммы ограниченных разностей. Весовые коэффициенты могут быть определены отдельно для каждой разности. Другими словами, весовые коэффициенты или веса могут зависеть от смещения (i, j) соответствующего соседнего пикселя относительно координат (x, y) пикселя, который должен быть отфильтрован.
Этап 1340: определение отфильтрованного соответствующего компонента пикселя, то есть компонента яркости или соответствующего компонента цветности, путем добавления взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пикселя.
Согласно аспекту настоящего раскрытия, соответствующие уровни ограничения могут быть выбраны из одного и того же набора возможных уровней ограничения для компонентов яркости и цветности. Другими словами, может быть предоставлен единственный набор уровней ограничения, из которого берутся все уровни ограничения, используемые в вышеописанных способах. Хотя для компонентов яркости и цветности могут применяться разные уровни ограничения, в частности, в соответствии с разной битовой глубиной компонентов яркости и цветности, один и тот же набор возможных уровней ограничения предоставляется для всех компонентов. Этот подход также обеспечивает последовательное ограничение для RGB-кодирования видео.
Набор возможных уровней ограничения может быть задан заранее или определен в соответствии с одной или несколькими заранее заданными формулами. Набор возможных уровней ограничения может быть предварительно определен в виде таблицы, в частности справочной таблицы (LUT). Набор возможных уровней ограничения, и в частности LUT, может быть определен в результате одной или нескольких параметрических формул. Другими словами, одна или несколько формул с параметрами могут использоваться для определения набора возможных значений ограничения. Параметры могут включать в себя битовую глубину и индекс. Посредством изменения параметров набор возможных значений ограничения может быть определен в виде таблицы с параметрами, указывающими строки и столбцы таблицы.
Настоящее раскрытие дополнительно предоставляет упрощения нелинейного адаптивного контурного фильтра, принятого для VVC Test Model 5.0 (VTM5.0), где операция адаптивного ограничения применяется во время процесса фильтрации. Для наихудшего сценария нелинейный адаптивный контурный фильтр требует 12 умножений 8-битного коэффициента фильтра на (BitDepth+3)-битное значение, которое равно сумме ограниченных разностей между фильтрующей выборкой и соседней выборкой.
Способ согласно варианту осуществления настоящего раскрытия изменяет формулу вычисления значения ограничения и применяет вторичное ограничение, чтобы гарантировать битовую глубину операнда умножения после добавления. Способ позволяет сохранить 2 бита битовой глубины умножения от 8x (BitDepth+3) до 8x (BitDepth+1) для каждого из 12 умножений в худшем случае. Как описано выше, одно и то же уравнение/формула уровня ограничения для компонентов яркости и цветности может использоваться для унификации вычислений. Упрощения демонстрируют незначительное изменение производительности, а именно: 0,00% / - 0,02% / - 0,01% и 0,02% / - 0,04% / - 0,04% (Y/Cb/Cr) в конфигурациях All-Intra (AI) и произвольного доступа (RA) соответственно.
Настоящее раскрытие в общих чертах обеспечивает три аспекта для упрощения нелинейной части адаптивного контурного фильтра (ALF):
1. Изменение формулы уровня ограничения, чтобы ограниченные разности находились в 11-битном диапазоне.
2. Применение вторичного ограничения, чтобы гарантировать, что сумма ограниченных разностей все еще находится в диапазоне 11 бит.
3. Использование того же набора возможных уровней ограничения, в частности ту же формулу для расчета значений ограничения яркости и цветности.
Эти модификации позволяют уменьшить битовую глубину умножения фильтрации с 8x (BitDepth+3) до 8x (BitDepth+1) для каждого из 12 умножений, что сохраняет квадратную область HardWare.
Аспект 1: изменение формулы расчета значения ограничения
В качестве первого аспекта настоящего раскрытия предлагается изменить формулу вычисления значения ограничения, чтобы гарантировать, что выходной сигнал после ограничения на отрицательное и положительное значение находится в 11-битном диапазоне (для внутренней BitDepth, равной 10 битам). Примерный набор формул для уровней ограничения для компонентов яркости и цветности может быть:
Согласно формуле, максимальный уровень ограничения достигается при Idx = 0, предполагая, что = 10 значение ограничения будет равно Это значение умещается в 10 бит для положительного значения и потребует 11 бит, если также учитываются отрицательные значения ограничения.
Для Idx возможны другие значения, в частности дробные.
В текст спецификации VVC могут быть внесены следующие изменения:
AlfClipL[adaptation_parameter_set_id][filtIdx][j]=filterClips[alf_luma_coeff_delta_idx[filtIdx]][j]
filterClips[sfIdx][j]=Round(2(BitDepthY*(4-alf_luma_clip_idx[sfIdx][j])/4) - 1)
AlfClipC[adaptation_parameter_set_id][j]=Round(2(BitDepthC-8)*2(8*(3-alf_chroma_clip_idx[j])/3) - 1)
Возможны альтернативные реализации, в частности, на основе различных формул, которые более подробно описаны ниже. Набор возможных уровней ограничения для двух параметров BitDepth и Idx может быть предоставлен в виде таблицы. Разные значения BitDepth могут быть связаны с разными строками в таблице. Разные значения Idx могут быть связаны с разными столбцами в таблице. В качестве альтернативы определению таблицы на основе вычисления ее записей с использованием одной из формул, описанных в настоящем раскрытии, таблица может быть предварительно определена, как также описано ниже.
Модификации экономят 1 бит умножения фильтрации на битовую глубину.
Аспект 2: вторичное ограничение
Согласно второму аспекту предлагается добавить вторичное ограничение суммы ограниченных разностей между фильтруемой выборкой, т.е. выборкой, которую нужно отфильтровать, и соседней выборкой, чтобы гарантировать, что сумма ограниченных разностей все еще находится в диапазоне 11 бит (для внутренних BitDepth 10 бит):
где Thr - уровень ограничения для вторичного ограничения.
Возможная модификация спецификации VVC, реализующая приведенные выше уравнения, может быть следующей:
ThrL=(1<<BitDepthY)-1
sum=f[idx[0]]*Clip3(-ThrL,ThrL,Clip3(-c[idx[0]],c[idx[0]],recPictureL[hx,vy+r3]-curr)+Clip3(-c[idx[0]], c[idx[0]], recPictureL[hx, vy-r3]-curr))+f[idx[1]]*Clip3(-ThrL, ThrL, Clip3(-c[idx[1]], c[idx[1]], recPictureL[hx+1, vy+r2] - curr)+Clip3(-c[idx[1]], c[idx[1]], recPictureL[hx-1, vy-r2] - curr))+f[idx[2]]*Clip3(-ThrL, ThrL, Clip3(-c[idx[2]], c[idx[2]], recPictureL[hx, vy+r2]-curr)+Clip3(-c[idx[2]], c[idx[2]], recPictureL[hx, vy-r2]-curr))+f[idx[3]]*Clip3(-ThrL, ThrL,(Clip3(-c[idx[3]], c[idx[3]], recPictureL[hx-1, vy+r2]-curr)+Cli3(c[idx[3]], c[idx[3]], recPictureL[hx+1,vy-r2]-curr))+f[idx[4]]*Clip3(-ThrL, ThrL,Clip3(-c[idx[4]], c[idx[4]], recPictureL[hx+2, vy+r1] - curr)+Clip3(-c[idx[4]], c[idx[4]], recPictureL[hx-2, vy-r1]-curr))+f[idx[5]]*Clip3(-ThrL, ThrL, Clip3(-c[idx[5]], c[idx[5]], recPictureL[hx+1, vy+r1] - curr)+Clip3(-c[idx[5]], c[idx[5]], recPictureL[hx-1, vy-r1] - curr))+f[idx[6]]*Clip3(-ThrL, ThrL, Clip3(-c[idx[6]], c[idx[6]], recPictureL[hx, vy+r1] - curr)+Clip3(-c[idx[6]], c[idx[6]], recPictureL[hx, vy-r1]curr))+f[idx[7]] *Clip3(-ThrL, ThrL, Clip3(-c[idx[7]], c[idx[7]], recPictureL[hx-1, vy+r1]-curr)+Clip3(-c[idx[7]], c[idx[7]], recPictureL[hx+1, vy-r1] - curr))+f[idx[8]] *Clip3(-ThrL, ThrL, Clip3(-c[idx[8]], c[idx[8]], recPictureL[hx-2, vy+r1] - curr)+Clip3(-c[idx[8]], c[idx[8]], recPictureL[hx+2, vy-r1] - curr))+f[idx[9]] *Clip3(-ThrL, ThrL, Clip3(-c[idx[9]], c[idx[9]], recPictureL[hx+3, vy] - curr)+Clip3(-c[idx[9]], c[idx[9]], recPictureL[hx-3, vy] - curr))+f[idx[10]]*Clip3(-ThrL, ThrL, Clip3(-c[idx[10]], c[idx[10]], recPictureL[hx+2,vy]-curr)+Clip3(-c[idx[10]], c[idx[10]], recPictureL[hx-2, vy] - curr))+f[idx[11]* Clip3(-ThrL, ThrL, Clip3(-c[idx[11]], c[idx[11]], recPictureL[hx+1, vy] - curr)+Clip3(-c[idx[11]], c[idx[11]], recPictureL[hx-1, vy] - curr))
где ThrL указывает уровень ограничения для вторичного ограничения для компонента яркости.
А для компонентов цветности:
- Thrc = (1<<BitDepthC)-1
sum=f[0]*Clip3(-Thrc, Thrc, Clip3(-c[0], c[0],recPicture[hx, vy+r2]-curr)+Clip3(-c[0],c[0],recPicture[hx,vy-r2]-curr))+f[1]*Clip3(-Thrc, Thrc,Clip3(-c[1],c[1],recPicture[hx+1,vy+r1]-curr)+Clip3(-c[1],c[1],recPicture[hx-1,vy-r1]-curr))+f[2]*Clip3(-Thrc, Thrc,Clip3(-c[2],c[2],recPicture[hx,vy+r1]-curr)+Clip3(-c[2],c[2],recPicture[hx,vy-r1]-curr))+f[3]*Clip3(-Thrc, Thrc,Clip3(-c[3],c[3],recPicture[hx-1,vy+r1]-curr)+Clip3(-c[3],c[3],recPicture[hx+1,vy-r1]-curr))+f[4]*Clip3(-Thrc, Thrc,Clip3(-c[4],c[4],recPicture[hx+2,vy]-curr)+Clip3(-c[4],c[4],recPicture[hx-2,vy]-curr))+f[5]*Clip3(-Thrc, Thrc, Clip3(-c[5],c[5], recPicture[hx+1,vy]-curr)+Clip3(-c[5],c[5],recPicture[hx-1,vy]-curr))
Эта модификация дополнительно сохраняет 1 бит битовой глубины умножения фильтрации.
Аспект 3: используйте ту же формулу для расчета значений ограничения яркости и цветности.
Согласно третьему аспекту предлагается использовать одну и ту же формулу для вычисления значения ограничения как для яркости, так и для цветности:
В спецификацию VVC могут быть внесены следующие изменения:
AlfClipL[adaptation_parameter_set_id][filtIdx][j]=filterClips[alf_luma_coeff_delta_idx[filtIdx]][j]
filterClips[sfIdx][j]=Round(2(BitDepthY*(4-alf_luma_clip_idx[sfIdx][j])/4) - 1)
AlfClipC[adaptation_parameter_set_id][j]=Round(2(BitDepthC*(4-alf_chroma_clip_idx [j])/4) - 1)
Фиг. 6 - схематическая диаграмма, иллюстрирующая описанное выше примерное изменение уровней ограничения относительно уровня техники. Уровни ограничения AlfClipL[adaptation_parameter_set_id][filtIdx][j] и AlfClipC[adaptation_parameter_set_id][j] для компонентов яркости и цветности согласно этому аспекту настоящего раскрытия определяются с использованием той же формулы, в которой битовая глубина (BitDepthY и BitDepthC) и индекс ограничения (alf_luma_clip_idx и alf_chroma_clip_idx) являются параметрами, которые определяют возможные уровни ограничения. Следовательно, набор возможных уровней ограничения может быть предоставлен в форме таблицы, такой как справочная таблица, в которой записи в таблице могут быть сформированы в соответствии с вышеупомянутыми формулами. Индекс ограничения (alf_luma_clip_idx и alf_chroma_clip_idx) зависит от sfIdx и j и, следовательно, от смещения (i,j) соответствующего соседнего пикселя. Понятно, что альтернативные формулы могут использоваться для определения уровней ограничения, в частности набора возможных уровней ограничения. В частности, вычитание 1 реализационного аспекта 1, как описано выше, может быть опущено.
Фиг. 7 - схематическая диаграмма, иллюстрирующая вышеописанное примерное изменение уровней ограничения относительно уровня техники в математических терминах. Те же формулы используются для определения уровней ограничения для компонентов яркости и цветности. В результате используется только один набор возможных уровней ограничения как для компонентов яркости, так и для компонентов цветности, при этом соответствующие битовая глубина и индекс ограничения могут использоваться в качестве параметров, указывающих на соответствующий применяемый уровень ограничения. Другими словами, хотя фактически применяемые уровни ограничения зависят от битовой глубины соответствующего компонента и индекса, который сам может зависеть от смещения (i, j) соседнего пикселя, уровни ограничения берутся из того же набора возможных уровней ограничения, которые определяются диапазоном возможных битовых глубин для компонентов и диапазоном индекса. Таким образом, один и тот же уровень ограничения будет применяться к компонентам яркости и цветности для одинаковой битовой глубины и соседнего пикселя. Использование одного и того же набора возможных уровней ограничения для компонентов яркости и цветности делает процесс фильтрации совместимым с кодированием RGB.
Как правило, один набор возможных уровней ограничения может использоваться для компонентов яркости и цветности. Уровни ограничения могут быть определены с использованием той же формулы для компонентов яркости и цветности, как указано выше. Результатом вычислений является набор возможных уровней ограничения с BitDepthLuma/BitDepthChroma и Idx, представляющими параметры, которые определяют набор возможных уровней ограничения. Поскольку набор определяется на основе двух параметров, он может быть представлен в виде таблицы. Как упомянуто выше, строки в таблице могут быть связаны с разными значениями BitDepthLuma/BitDepthChroma, в то время как столбцы могут быть связаны с разными значениями индекса Idx.
Записи в таблице могут быть вычислены, исходя из наборов допустимых значений для BitDepthLuma/BitDepthChroma и Idx согласно приведенной выше формуле или любой из формул, описанных ниже. В качестве альтернативы таблица может быть задана заранее.
Третий аспект вносит дополнительное упрощение за счет унификации значений ограничения или уровней ограничения, в частности их расчета, для компонентов яркости и цветности.
Согласно этому аспекту (гармонизация яркости/цветности) в другой реализации вместо формулы может использоваться таблица. Это также может быть объединено с первым аспектом (10-битная битовая глубина в формуле ограничения), как описано ниже.
Чтобы избежать операции с плавающей запятой при вычислении уровней ограничения согласно некоторым вариантам осуществления настоящего раскрытия, вместо этого может использоваться определение таблицы, которое в примерном варианте осуществления для битовых глубин 8, 9, 10,… 16 и 4 индексы ограничения Idx определяет целочисленные выходные данные (4×9=36 записей). Согласно третьему аспекту одна и та же таблица может использоваться для компонентов яркости и цветности и, в частности, может быть вычислена с использованием следующей формулы яркости:
filterClips[sfIdx][j]=Round(2(BitDepthY*(4-alf_luma_clip_idx[sfIdx][j])/4))..
В VTM-5.0 значения ограничения адаптивного контурного фильтра вычисляются с помощью арифметических операций с плавающей запятой. В настоящем раскрытии изобретения вычисление значений ограничения может быть упрощено за счет использования целочисленных операций. По сравнению с VTM-5.0 раскрытые способы достигают аналогичной эффективности кодирования и времени кодирования/декодирования в обычных условиях тестирования.
Как уже описано выше, внутриконтурный фильтр 320, 220 выполнен с возможностью обработки восстановленного кадра из декодированного восстановленного видеопотока для формирования отфильтрованного восстановленного кадра.
Фиг. 8 показывает блок-схему способа кодирования/декодирования видео согласно варианту осуществления раскрытия. Проиллюстрированный метод выполняет внутриконтурную фильтрацию, выполняя адаптивную контурную фильтрацию на восстановленном кадре видеопотока следующим образом: На этапе 1310 определяются разности между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и по меньшей мере одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя. На этапе 1320 определенные разности ограничиваются согласно соответствующим уровням ограничения. На этапе 1330 формируется взвешенная сумма ограниченных разностей. Наконец, на этапе 1340 взвешенная сумма добавляется по меньшей мере к одному из компонентов яркости и цветности пикселя, чтобы определить отфильтрованный соответствующий компонент пикселя. Соответствующие уровни ограничения выбираются из того же набора возможных уровней ограничения для компонентов яркости и цветности.
Фиг. 9 показывает блок-схему, иллюстрирующую пример устройства кодирования/декодирования согласно варианту осуществления раскрытия. Устройство 20/30 кодирования/декодирования содержит блок 1410 вычитания, выполненный с возможностью формирования разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и по меньшей мере одним из компонентов яркости и цветности соседних пикселей в соединенной области. пикселя, блок 1420 ограничения, выполненный с возможностью ограничения разностей согласно соответствующим уровням ограничения, первый блок 1430 добавления, выполненный с возможностью формирования взвешенной суммы ограниченных разностей, и второй блок 1440 добавления, выполненный с возможностью добавления взвешенной суммы к по меньшей мере, один из компонентов яркости и цветности пикселя для определения отфильтрованного соответствующего компонента пикселя, при этом соответствующие уровни ограничения выбираются из одного и того же набора возможных уровней ограничения для компонентов яркости и цветности.
Блоки 1430 и 1440 добавления, блок 1410 вычитания и блок 1420 ограничения могут быть реализованы в аппаратных средствах, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным блоком обработки. Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор", используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Настоящее раскрытие предоставляет следующие реализации нелинейного ALF согласно одному или более из описанных выше аспектов.
В следующих вариантах осуществления и реализациях ограничивающее значение m для диапазона индексов Idx(i,j) может быть установлено равным 3.
Согласно первой реализации, восстановленный кадр (например, каждый восстановленный кадр) делится на набор блоков (суперпикселей), и каждый блок фильтруется адаптивным контурным фильтром, так что каждый пиксель фильтрованного восстановленного кадра является взвешенным сумма нескольких пикселей в соединенной области пикселя из восстановленного кадра вокруг положения сформированного отфильтрованного пикселя в соответствии со следующими уравнениями:
где Idx(i,j) может быть выбран из диапазона положительных значений от 0 до m, где m - положительное целочисленное значение, например
Здесь - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значению пикселя (или яркости пикселя) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие положения пикселя со смещением (i,j) относительно отфильтрованного пикселя, Lim(i,j) - положительные k-битные значения ограничения, K<= BitDepth, для компонентов яркости и для компонентов цветности, индекс Idx(i,j) можно выбрать из диапазона положительных значений от 0 до m, где m - положительное целое число. Значения с плавающей запятой или дробные числа могут использоваться для Idx для формирования целочисленных показателей в приведенных выше уравнениях для уровней ограничения.
Согласно второй реализации уровни Lim(i,j) ограничения могут быть определены по следующим формулам для компонентов яркости и цветности:
где Idx(i,j) может быть выбран из диапазона положительных значений от 0 до m, где m - положительное целочисленное значение, например
Значения с плавающей запятой или дробные числа могут использоваться для Idx для формирования целочисленных показателей в приведенных выше уравнениях для уровней ограничения.
Согласно третьей реализации для фильтрации компонентов яркости, если BitDepthLuma равна 10, то максимальный уровень ограничения равен Lim(i,j)=1023, а если BitDepthLuma равен 8, то максимальный уровень ограничения равен Lim(i,j)=255.
Согласно четвертой реализации для фильтрации компонентов цветности, если BitDepthChroma равно 10, то максимальный уровень ограничения равен Lim(i,j)=1023, а если BitDepthChroma равен 8, то максимальный уровень ограничения равен Lim(i,j)=255.
Согласно пятой реализации уровни Lim(i,j) ограничения могут быть определены по следующим формулам для компонентов яркости и цветности:
где Idx(i,j) может быть выбран из диапазона положительных значений от 0 до m, где m - положительное целочисленное значение, например
.
В этой реализации уровни Lim(i,j) ограничения являются положительными k-битными значениями ограничения, с k <= BitDepth+1, Lim(i,j)< для компонентов яркости и для компонентов цветности.
Значения с плавающей запятой или дробные числа могут использоваться для Idx для формирования целочисленных показателей в приведенных выше уравнениях для уровней ограничения.
Согласно шестой реализации уровни Lim(i,j) ограничения могут быть определены с помощью следующих тех же формул для компонентов яркости и цветности:
и/или
где Idx(i,j) может быть выбран из диапазона положительных значений от 1 до m, где m - положительное целочисленное значение, например
Значения с плавающей запятой или дробные числа могут использоваться для Idx для формирования целочисленных показателей в приведенных выше уравнениях для уровней ограничения.
Согласно седьмой реализации уровни Lim(i,j) ограничения могут быть определены по следующим формулам для компонентов яркости и цветности:
и/или
где Idx(i,j) может быть выбран из диапазона положительных значений от 1 до m, где m - положительное целочисленное значение, например
где, например, может быть или .
Значения с плавающей запятой или дробные числа могут использоваться для Idx для формирования целочисленных показателей в приведенных выше уравнениях для уровней ограничения.
Реализации с пятой по седьмую обеспечивают единый набор возможных уровней Lim(i,j) ограничения, из которого уровень ограничения для соответствующего соседнего пикселя со смещением (i,j) определяется в соответствии со значением BitDepthLuma/BitDepthChroma и Idx(i,j). Только один набор уровней ограничения предоставляется как для компонентов яркости, так и для компонентов цветности, что упрощает процесс ALF.
Согласно восьмой реализации набор возможных уровней Lim(i,j) ограничения может быть определен табличным представлением согласно формулам любой из пятой-седьмой реализации.
В настоящем раскрытии уровни ограничения для фильтрации компонентов яркости и цветности могут иметь табличное представление.
В настоящем раскрытии здесь представлены следующие два примера табличного представления, и следует отметить, что табличное представление уровня ограничения может включать в себя, но не ограничивается следующими двумя примерами таблицы.
В одном примере уровни Lim(i,j) ограничения могут быть определены с использованием табличного представления:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 63, 15, 3];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 107, 22, 4];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 180, 31, 5];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 303, 44, 6];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 511, 63, 7];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 860, 90, 9];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1447, 127, 10];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2434, 180, 12]; и/или
если BitDepthLuma равна 16, то уровень ограничения Lim(idx)=[65535, 4095, 255, 15].
В другом примере уровни Lim(i,j) ограничения могут быть определены с использованием другого табличного представления:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 64, 16, 4];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 108, 23, 5];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 181, 32, 6];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 304, 45, 7];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 512, 64, 8];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 861, 91, 10];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1448, 128, 11];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2435, 181, 13];
и/или
если BitDepthLuma равно 16, то уровень ограничения Lim(idx)=[65535, 4096, 256, 16].
Согласно девятой реализации вышеописанные способы фильтрации восстановленного кадра могут использоваться на стороне кодера и декодера, а также для компонентов яркости и цветности.
Таким образом, описанный внутриконтурный фильтр с максимальным уровнем Lim(i,j) ограничения < для компонентов яркости и для компонентов цветности может потребовать для компонентов яркости N умножений на n-битные коэффициенты фильтра на (BitDepthLuma+2)-битные значения сумм двух ограниченных разностей между фильтрующим пикселем и соседним пикселем в соединенной области пикселя вместо N умножений n-битных коэффициентов фильтра на (BitDepthLuma+3)-битные значения в современном решении. Для компонентов цветности внутриконтурный фильтр может потребовать N умножений n-битных коэффициентов фильтра на (BitDepthChroma+2)-битные значения сумм двух ограниченных разностей между фильтрующим пикселем и соседним пикселем в соединенной области вместо N умножений. n-битных коэффициентов фильтрации по (BitDepthChroma+3)-битным значениям в современном решении. Как и в технике, соединенные области могут быть разными для фильтрации компонентов яркости и цветности.
Некоторые конкретные варианты осуществления описаны ниже. В приведенных ниже вариантах осуществления восстановленный кадр фильтруется адаптивным контурным фильтром (например, нелинейным ALF).
Согласно первому варианту осуществления, раскрытие относится к устройству внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, при этом устройство внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью:
фильтрования пикселя (а именно фильтрующий пиксель, такой как каждый пиксель) из восстановленного кадра, при этом отфильтрованный пиксель (например, каждый пиксель) отфильтрованного восстановленного кадра представляет собой сумму фильтрующего пикселя (такого как ) и взвешенная сумма (например ) ограниченных разностей между фильтрующим пикселем и соседними пикселями, или отфильтрованный пиксель отфильтрованного восстановленного кадра основан на сумме.
Уровни ограничения могут быть меньше или равны , где BitDepth - битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра или BitDepth - максимальное количество бит в выборке (пикселе) соответствующего компонента восстановленного кадра.
Отфильтрованный пиксель может, в частности, быть получен в соответствии со следующим уравнением:
где положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значению пикселя (или яркости пикселя) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие положению пикселя со смещением (i,j) относительно отфильтрованного пикселя, Lim(i,j) - положительные значения ограничения (например, Lim(i,j)=b в приведенном выше уравнении), для компонентов яркости и для компонент цветности.
Уровни ограничения (или значения ограничения) Lim(i,j) могут, в частности, быть положительными k-битными значениями ограничения с k<=BitDepth.
Уровни ограничения для фильтрации компонентов яркости и цветности могут иметь табличное представление, в частности, в форме справочной таблицы (LUT).
Уровни ограничения для фильтрации компонентов яркости и цветности могут быть получены или определены с помощью табличного представления, в частности, в форме справочной таблицы (LUT).
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. Согласно примеру Idx(i,j)=0,1,2 или m. В этой реализации уровни Lim(i,j) ограничения являются положительными k-битными значениями ограничения, с k <= BitDepth+1, Lim(i,j)< для компонентов яркости и для компонентов цветности.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
при этом индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до 3. Согласно реализации Idx(i,j)=0,1,2,3.
В соответствии с реализацией первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены с помощью тех же формул для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, или тот же уровень Lim(i,j) ограничения может применяться для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с его помощью, а табличное представление может быть получено или сформировано в соответствии со следующими такими же формулами для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, где представляет собой битовую глубину яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
В соответствии с реализацией первого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с его помощью, а табличное представление может быть получено или сформировано в соответствии со следующими такими же формулами для компонентов яркости и цветности, где является битовой глубиной яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть определены следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, где является битовой глубиной яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации первого варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равна 10, то максимальный уровень ограничения может быть Lim(i,j)=1023, и/или
если BitDepthLuma равно 8, то максимальный уровень ограничения может быть Lim(i,j)=255.
Согласно реализации первого варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равно 10, то максимальный уровень ограничения Lim(i,j)=1023, и/или
если BitDepthLuma равно 9, то максимальный уровень ограничения Lim(i,j)=511,
если BitDepthLuma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации первого варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равняется 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthLuma равняется 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthLuma равняется 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthLuma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthLuma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthLuma равно 11, то максимальный уровень ограничения Lim(i,j)=2047;
если BitDepthLuma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthLuma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или.
если BitDepthLuma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации первого варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 10, то максимальный уровень ограничения может быть Lim(i,j)=1023, и/или,
если BitDepthChroma равно 8, то максимальный уровень ограничения может быть Lim(i,j)=255.
Согласно реализации первого варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthChroma равно 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthChroma равно 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthChroma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthChroma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthChroma равно 11, то максимальный уровень ограничения Lim(i,j)=2047.
если BitDepthChroma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthChroma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или
если BitDepthChroma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=6, ShiftConst[3]=8
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=8.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть выбраны из того же набора возможных значений для компонентов яркости и цветности для фильтрующего пикселя (такого как ) восстановленного кадра.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. Согласно примеру Idx(i,j)=0,1,2 или m.
В этой реализации уровни Lim(i,j) ограничения являются положительными k-битными значениями ограничения, с k <= BitDepth+1, Lim(i,j)< для компонентов яркости и для компонентов цветности.
Согласно реализации первого варианта осуществления уровни ограничения (или значения ограничения) Lim(i,j) могут определяться следующим же табличным представлением для компонентов яркости и цветности восстановленного кадра:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[ 255, 63, 15, 3];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 107, 22, 4];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 180, 31, 5];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 303, 44, 6];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 511, 63, 7];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 860, 90, 9];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1447, 127, 10];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2434, 180, 12]; и/или
если BitDepthLuma равна 16, то уровень ограничения Lim(idx)=[65535, 4095, 255, 15].
Согласно реализации первого варианта осуществления уровни ограничения (или значения ограничения) Lim(i,j) могут определяться следующим же табличным представлением для компонентов яркости и цветности восстановленного кадра:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 64, 16, 4];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 108, 23, 5];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 181, 32, 6];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 304, 45, 7];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 512, 64, 8];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 861, 91, 10];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1448, 128, 11];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2435, 181, 13];
и/или
если BitDepthLuma равно 16, то уровень ограничения Lim(idx)=[65535, 4096, 256, 16].
Согласно реализации первого варианта осуществления, для использования в устройстве кодирования видео или устройстве декодирования вышеописанный внутриконтурный фильтр может быть выполнен с возможностью обработки текущего восстановленного блока, при этом текущий восстановленный блок содержит множество пикселей из восстановленного кадра.
Согласно реализации первого варианта осуществления, внутриконтурный фильтр может применяться для компонентов яркости и цветности восстановленного кадра.
Согласно реализации первого варианта осуществления отфильтрованный восстановленный кадр может использоваться для формирования кодированных видеоданных для видеосигнала для передачи или хранения или может использоваться для декодирования видеосигнала для отображения на устройстве отображения.
Согласно аспекту первого варианта осуществления предусмотрено устройство кодирования для кодирования текущего кадра из входного видеопотока, при этом устройство кодирования содержит устройство внутриконтурного фильтра согласно любой из реализаций первого варианта осуществления.
Согласно дополнительному аспекту первого варианта осуществления, устройство декодирования предоставляется для декодирования закодированного кадра, при этом устройство декодирования содержит устройство внутриконтурного фильтра согласно любой из реализаций первого варианта осуществления.
Согласно реализации первого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с его помощью, и то же самое табличное представление может использоваться для компонентов яркости и цветности.
Согласно реализации первого варианта осуществления уровни ограничения могут быть меньше или равны , где BitDepth - битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра, или BitDepth - максимальное количество битов в выборке (пикселе) соответствующего компонента восстановленного кадра
Согласно второму варианту осуществления, раскрытие относится к способу внутриконтурной фильтрации для обработки восстановленного кадра из декодированного видеопотока для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, причем каждый пиксель связан со значением пикселя, при этом способ внутриконтурной фильтрации включает в себя:
фильтрация пикселя (а именно фильтрующего пикселя, такого как каждый пиксель) из восстановленного кадра, при этом отфильтрованный пиксель фильтрованного восстановленного кадра является суммой фильтрующего пикселя и взвешенной суммы ограниченных разностей между фильтрующим пикселем и соседними пикселями, или отфильтрованный пиксель отфильтрованного восстановленного кадра основан на сумме.
Уровни ограничения могут быть меньше или равны , где BitDepth - битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра или BitDepth - максимальное количество бит в выборке (пикселе) соответствующего компонента восстановленного кадра.
Способ, в частности, может содержать обработку текущего восстановленного блока, при этом текущий восстановленный блок содержит множество пикселей из восстановленного кадра.
Отфильтрованный пиксель может, в частности, быть получен в соответствии со следующими уравнениями:
где - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значениям пикселей (или яркости пикселей) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие положению пикселя со смещением (i,j) относительно отфильтрованного пикселя Lim(i,j) являются положительными значениями ограничения. Согласно одной конкретной реализации, для компонентов яркости и для компонентов цветности.
В одном примере яркость пикселя или значение пикселя может быть значением, которое соответствует яркости пикселя на экране или дисплее. Другими словами, яркость пикселя - это величина, соответствующая пикселю.
В примере выборки яркости имеют координаты изображения, такие как (x, y), которые являются координатами изображения указанных выборок яркости.
В примере выборки цветности имеют координаты изображения, такие как (x, y), которые являются координатами изображения указанных выборок цветности.
Можно понять, что до или во время процесса фильтрации пиксель (например, ) понимается как пиксель, подлежащий фильтрации, или пиксель фильтрации, и после выполнения процесса фильтрации значение пикселя ( например, )может быть изменен и может пониматься как отфильтрованный пиксель (например, ).
Уровни Lim(i,j) ограничения могут, в частности, быть положительными k-битными значениями ограничения, где k <= BitDepth.
Уровни ограничения для фильтрации компонентов яркости и цветности могут иметь табличное представление, в частности, в форме справочной таблицы (LUT).
Уровни ограничения для фильтрации компонентов яркости и цветности могут быть получены или определены с помощью табличного представления, в частности, в форме справочной таблицы (LUT).
Согласно реализации второго варианта осуществления уровни lim(I,j) ограничения могут, в частности, определяться следующими формулами:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут, в частности, определяться следующими формулами:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. Согласно примеру Idx(i,j)=0,1,2 или m.
В этой реализации уровни Lim(i,j) ограничения являются положительными k-битными значениями ограничения, с k <= BitDepth+1, Lim(i,j)< для компонентов яркости и для компонентов цветности.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут, в частности, определяться следующими формулами:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения или значения ограничения Lim(i,j) табличного представления (такого как таблица или таблица LUT) могут быть определены по следующим формулам:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут быть определены по следующим формулам:
при этом индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до 3. Согласно реализации Idx(i,j)=0,1,2,3.
В соответствии с реализацией второго варианта осуществления уровни Lim(i,j) ограничения могут быть определены с помощью тех же формул для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, или тот же уровень Lim(i,j) ограничения может применяться для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с его помощью, а табличное представление может быть получено или сформировано в соответствии со следующими такими же формулами для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
В соответствии с реализацией второго варианта осуществления уровни Lim(i,j) ограничения могут быть определены с помощью следующих тех же формул для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, где представляет собой битовую глубину яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с его помощью, а табличное представление может быть получено или сформировано в соответствии со следующими такими же формулами для компонентов яркости и цветности, где является битовой глубиной яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
В соответствии с реализацией второго варианта осуществления уровни Lim(i,j) ограничения могут быть определены с помощью следующих тех же формул для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра, где представляет собой битовую глубину яркости или цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации второго варианта осуществления уровни ограничения (или значения ограничения) Lim(i,j) могут быть определены следующим же табличным представлением для компонентов яркости и цветности восстановленного кадра:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[ 255, 63, 15, 3];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 107, 22, 4];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 180, 31, 5];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 303, 44, 6];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 511, 63, 7];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 860, 90, 9];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1447, 127, 10];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2434, 180, 12]; и/или
если BitDepthLuma равна 16, то уровень ограничения Lim(idx)=[65535, 4095, 255, 15].
Согласно реализации второго варианта осуществления уровни ограничения (или значения ограничения) Lim(i,j) могут быть определены следующим же табличным представлением для компонентов яркости и цветности восстановленного кадра:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 64, 16, 4];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 108, 23, 5];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 181, 32, 6];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 304, 45, 7];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 512, 64, 8];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 861, 91, 10];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1448, 128, 11];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2435, 181, 13];
и/или
если BitDepthLuma равно 16, то уровень ограничения Lim(idx)=[65535, 4096, 256, 16].
Согласно реализации второго варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равна 10, то максимальный уровень ограничения может быть Lim(i,j)=1023, и/или
если BitDepthLuma равно 8, то максимальный уровень ограничения может быть Lim(i,j)=255.
Согласно реализации второго варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равняется 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthLuma равняется 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthLuma равняется 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthLuma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthLuma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthLuma равно 11, то максимальный уровень ограничения Lim(i,j)=2047;
если BitDepthLuma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthLuma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или.
если BitDepthLuma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации второго варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 10, то максимальный уровень ограничения может быть Lim(i,j)=1023, и/или,
если BitDepthChroma равно 8, то максимальный уровень ограничения может быть Lim(i,j)=255.
Согласно реализации второго варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthChroma равно 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthChroma равно 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthChroma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthChroma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthChroma равно 11, то максимальный уровень ограничения Lim(i,j)=2047.
если BitDepthChroma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthChroma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или
если BitDepthChroma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
В соответствии с реализацией второго варианта осуществления уровни Lim(i,j) ограничения могут быть определены с помощью следующих тех же формул для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=6, ShiftConst[3]=8
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=8.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ) восстановленного кадра:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. Согласно примеру Idx(i,j)=0,1,2 или m.
В этой реализации уровни Lim(i,j) ограничения являются положительными k-битными значениями ограничения, с k <= BitDepth+1, Lim(i,j)<для компонентов яркости, и
Lim(i,j)<=для компонентов цветности.
Согласно реализации второго варианта осуществления процедура округления может применяться к значениям ограничения Lim(i,j) в соответствии со следующими уравнениями:
где sign (x) - знак x, abs (x) - модуль x, floor (y) - наибольшее целое значение, не превышающее y.
Согласно реализации второго варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с помощью него, и такое же табличное представление может использоваться для компонентов яркости и цветности.
Согласно реализации второго варианта осуществления уровни ограничения могут быть меньше или равны , где BitDepth - это битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра, или BitDepth - максимальное количество битов в выборке (пикселе) соответствующего компонента восстановленного кадра.
Согласно третьему варианту осуществления, раскрытие относится к устройству внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, при этом устройство внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью:
фильтровать пиксель (а именно фильтрующий пиксель, такой как каждый пиксель) из восстановленного кадра, при этом фильтрованный пиксель (например, каждый пиксель) фильтрованного восстановленного кадра получается в соответствии со следующим уравнением:
Clip(Δ, Lim)=Clip3(-,, Δ)
Clip3(x, y, z ) =
при этом уровни ограничения (или значения ограничения) Lim(i,j) или уровни ограничения (или значения ограничения) Lim(i,j) табличного представления (такого как таблица или таблица LUT) являются положительными k-битными значениями ограничения, (i,j) - это смещение координаты пикселя относительно координаты фильтрующего пикселя, где, в частности, k <= BitDepth.
Согласно реализации третьего варианта осуществления уровни Lim(i,j) ограничения могут определяться следующими такими же формулами для компонентов яркости и цветности фильтрующего пикселя (например, ):
где - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значениям пикселей (или яркости пикселей) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие положению пикселя со смещением (i,j) в относительно отфильтрованного пикселя Lim(i,j) - положительные k-битные значения ограничения, k <= BitDepth+1, для компонентов яркости и для компоненты цветности, индекс Idx(i,j)<= быть выбран из диапазона положительных значений от 0 до m, m - положительное целое число. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно четвертому варианту осуществления, раскрытие относится к устройству внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, при этом устройство внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью:
фильтровать пиксель (а именно фильтрующий пиксель, такой как каждый пиксель) из восстановленного кадра, при этом фильтрованный пиксель (например, каждый пиксель) фильтрованного восстановленного кадра получается в соответствии со следующим уравнением:
Clip(Δ, Lim)=Clip3(-,,Δ)
где - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значениям пикселей (или яркости пикселей) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие положению пикселя со смещением (i,j) относительно отфильтрованного пикселя, при этом одинаковые уровни ограничения (или значения ограничения) Lim(i,j) применяются для компонента яркости и компонента цветности пикселя (такого как ) восстановленного кадра.
Одинаковые уровни ограничения (или значения ограничения) Lim(i,j) могут применяться для компонента яркости и компонента цветности текущего пикселя. Та же самая таблица уровней ограничения может использоваться для фильтрации компонентов яркости и цветности.
Согласно реализации четвертого варианта осуществления одинаковые уровни ограничения (или значения ограничения) для компонента яркости и компонента цветности могут быть определены из одной и той же таблицы на основе битовой глубины компонента яркости и компонентов цветности пикселя (например, ) восстановленного кадра и clipIdx, при этом clipIdx может быть элементом сигнализации, который используется для определения того, какой уровень ограничения из возможных наборов уровней ограничения может использоваться для текущего отвода в текущем фильтре.
Согласно реализации четвертого варианта осуществления уровни ограничения (или значения ограничения) для компонента яркости и компонента цветности могут быть определены из одной таблицы LUT, определенной следующим образом:
BitDepth clipIdx
0 1 2 3
8 28 25 23 21
9 29 26 24 22
10 210 27 25 23
11 211 28 26 24
12 212 29 27 25
13 213 210 28 26
14 214 211 29 27
15 215 212 210 28
16 216 213 211 29
Значения в столбце с clipIdx=0 соответствуют результатам следующих формул для уровней ограничения с Idx(i,j)=0:
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 0 до m, а m больше или равно нулю. В соответствии с реализацией Idx(i,j)=0,1,2 или m.
Согласно реализации четвертого варианта осуществления уровни ограничения (или значения ограничения) для компонента яркости и компонента цветности могут быть определены из одной таблицы LUT, определенной следующим образом:
BitDepth clipIdx
0 1 2 3
8 28 25 23 21
9 29 26 24 22
10 210 27 25 23
11 211 28 26 24
12 212 29 27 25
13 213 210 28 26
14 214 211 29 27
15 215 212 210 28
16 216 213 211 29
Согласно реализации четвертого варианта осуществления уровни ограничения (или значения ограничения) для компонента яркости и компонента цветности могут быть определены из одной таблицы LUT, определенной следующим образом:
BitDepth clipIdx
0 1 2 3
8 Не задано 25 23 21
9 Не задано 26 24 22
10 Не задано 27 25 23
11 Не задано 28 26 24
12 Не задано 29 27 25
13 Не задано 210 28 26
14 Не задано 211 29 27
15 Не задано 212 210 28
16 Не задано 213 211 29
Согласно пятому варианту осуществления, раскрытие относится к способу внутриконтурной фильтрации для обработки восстановленного кадра из декодированного видеопотока для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, причем каждый пиксель связан со значением пикселя, при этом способ внутриконтурной фильтрации включает в себя:
фильтровать пиксель (а именно фильтрующий пиксель, такой как каждый пиксель) из восстановленного кадра, при этом отфильтрованный пиксель (например, каждый пиксель) фильтрованного восстановленного кадра основан на следующих формулах:
при этом уровни ограничения (или значения ограничения) Lim(i,j) получаются или определяются представлением таблицы (например, таблицей или таблицей LUT).
Согласно реализации пятого варианта осуществления, - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значениям пикселей (или яркости пикселей) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие со смещением (i,j) относительно отфильтрованного пикселя, Lim(i,j) - положительные или неотрицательные значения ограничения (например, Lim(i,j)=b в таблице).
Согласно реализации пятого варианта осуществления, Lim(i,j)< для компонентов яркости и для компонентов цветности.
В соответствии с реализацией пятого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления (например, таблицы или таблицы LUT) или определены с помощью него, а табличное представление может быть получено или сформировано в соответствии с следующие формулы для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
В соответствии с реализацией пятого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления (например, таблицы или таблицы LUT) или определены с помощью него, а табличное представление может быть получено или сформировано в соответствии с следующие формулы для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, и m больше нуля, и где представляет или . В соответствии с реализацией Idx(i,j)=1,2 или m.
Согласно реализации пятого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления (например, таблицы или таблицы LUT) или определены с помощью него, и такое же табличное представление может использоваться для яркости и компоненты цветности.
Согласно реализации пятого варианта осуществления уровни ограничения могут быть меньше или равны , где BitDepth - это битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра, или BitDepth - максимальное количество битов в выборке (пикселе) соответствующего компонента восстановленного кадра.
Согласно реализации пятого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из следующего табличного представления или определены с помощью него:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[ 255, 63, 15, 3];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 107, 22, 4];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 180, 31, 5];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 303, 44, 6];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 511, 63, 7];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 860, 90, 9];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1447, 127, 10];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2434, 180, 12]; и/или
если BitDepthLuma равна 16, то уровень ограничения Lim(idx)=[65535, 4095, 255, 15].
Согласно реализации пятого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из следующего табличного представления или определены с помощью него:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 64, 16, 4];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 108, 23, 5];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 181, 32, 6];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 304, 45, 7];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 512, 64, 8];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 861, 91, 10];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1448, 128, 11];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2435, 181, 13];
и/или
если BitDepthLuma равно 16, то уровень ограничения Lim(idx)=[65535, 4096, 256, 16].
Согласно реализации пятого варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равняется 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthLuma равняется 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthLuma равняется 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthLuma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthLuma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthLuma равно 11, то максимальный уровень ограничения Lim(i,j)=2047;
если BitDepthLuma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthLuma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или.
если BitDepthLuma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации пятого варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthChroma равно 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthChroma равно 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthChroma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthChroma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthChroma равно 11, то максимальный уровень ограничения Lim(i,j)=2047.
если BitDepthChroma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthChroma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или
если BitDepthChroma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно шестому варианту осуществления, раскрытие относится к устройству внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, при этом восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, при этом устройство внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью:
фильтровать пиксель (а именно фильтрующий пиксель, такой как каждый пиксель) из восстановленного кадра, при этом отфильтрованный пиксель (например, каждый пиксель) фильтрованного восстановленного кадра основан на следующих формулах:
при этом уровни ограничения (или значения ограничения) Lim(i,j) получаются или определяются представлением таблицы (например, таблицей или таблицей LUT).
Согласно реализации шестого варианта осуществления, - положительные BitDepthLuma-битные значения для компонентов яркости или BitDepthChroma-битные значения для компонентов цветности, соответствующие значениям пикселей (или яркости пикселей) в точке с координатами (x+i, y+j) в восстановленном кадре, - отфильтрованный пиксель с координатами (x, y) в восстановленном кадре, обозначает n-битные целочисленные коэффициенты фильтра, соответствующие со смещением (i,j) относительно отфильтрованного пикселя, Lim(i,j) - положительные или неотрицательные значения ограничения (например, Lim(i,j)=b в таблице).
Согласно реализации шестого варианта осуществления, Lim(i,j)< для компонентов яркости и для компонентов цветности.
В соответствии с реализацией шестого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с помощью него (например, таблица или таблица LUT), а табличное представление может быть получено или сформировано в соответствии с следующие формулы для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, а m больше нуля. В соответствии с реализацией Idx(i,j)=1,2 или m.
В соответствии с реализацией шестого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления или определены с помощью него (например, таблица или таблица LUT), а табличное представление может быть получено или сформировано в соответствии с следующие формулы для компонентов яркости и цветности:
и/или
где индекс Idx(i,j) выбирается из диапазона неотрицательных значений от 1 до m, и m больше нуля, и где представляет или . В с реализацией Idx(i,j)=1,2 или m.
Согласно реализации шестого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из табличного представления (например, таблицы или таблицы LUT) или определены с помощью него, и такое же табличное представление может использоваться для яркости и компоненты цветности.
Согласно реализации шестого варианта осуществления уровни ограничения могут быть меньше или равны , где BitDepth - это битовая глубина компонента фильтрации (такого как компонент яркости или один из двух компонентов цветности) пикселя (например, ) восстановленного кадра, или BitDepth - максимальное количество битов в выборке (пикселе) соответствующего компонента восстановленного кадра.
В соответствии с реализацией шестого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из следующего табличного представления или определены с помощью него:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[ 255, 63, 15, 3];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 107, 22, 4];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 180, 31, 5];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 303, 44, 6];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 511, 63, 7];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 860, 90, 9];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1447, 127, 10];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2434, 180, 12]; и/или
если BitDepthLuma равна 16, то уровень ограничения Lim(idx)=[65535, 4095, 255, 15].
В соответствии с реализацией шестого варианта осуществления уровни Lim(i,j) ограничения могут быть получены из следующего табличного представления или определены с помощью него:
Если idx=Idx(i,j)=0,1,2 или 3:
если BitDepthLuma равно 8, то уровень ограничения Lim(idx)=[255, 64, 16, 4];
если BitDepthLuma равно 9, то уровень ограничения Lim(idx)=[511, 108, 23, 5];
если BitDepthLuma равно 10, то уровень ограничения Lim(idx)=[1023, 181, 32, 6];
если BitDepthLuma равно 11, то уровень ограничения Lim(idx)=[2047, 304, 45, 7];
если BitDepthLuma равно 12, то уровень ограничения Lim(idx)=[4095, 512, 64, 8];
если BitDepthLuma равно 13, то уровень ограничения Lim(idx)=[8191, 861, 91, 10];
если BitDepthLuma равна 14, то уровень ограничения Lim(idx)=[16383, 1448, 128, 11];
если BitDepthLuma равно 15, то уровень ограничения Lim(idx)=[32767, 2435, 181, 13];
и/или
если BitDepthLuma равно 16, то уровень ограничения Lim(idx)=[65535, 4096, 256, 16].
Согласно реализации шестого варианта осуществления для фильтрации компонента яркости,
если BitDepthLuma равняется 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthLuma равняется 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthLuma равняется 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthLuma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthLuma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthLuma равно 11, то максимальный уровень ограничения Lim(i,j)=2047;
если BitDepthLuma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthLuma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или.
если BitDepthLuma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно реализации шестого варианта осуществления для фильтрации компонента цветности,
если BitDepthChroma равно 16, то максимальный уровень ограничения Lim(i,j)=65535;
если BitDepthChroma равно 15, то максимальный уровень ограничения Lim(i,j)=32767;
если BitDepthChroma равно 14, то максимальный уровень ограничения Lim(i,j)=16383;
если BitDepthChroma равно 13, то максимальный уровень ограничения Lim(i,j)=8191;
если BitDepthChroma равно 12, то максимальный уровень ограничения Lim(i,j)=4095,
если BitDepthChroma равно 11, то максимальный уровень ограничения Lim(i,j)=2047.
если BitDepthChroma равно 10, то максимальный уровень ограничения Lim(i,j)=1023,
если BitDepthChroma равно 9, то максимальный уровень ограничения Lim(i,j)=511, и/или
если BitDepthChroma равно 8, то максимальный уровень ограничения Lim(i,j)=255.
Согласно седьмому варианту осуществления, раскрытие относится к компьютерному программному продукту, содержащему программный код для выполнения любого из способов согласно второму и пятому вариантам осуществления, когда он выполняется на компьютере или процессоре.
Согласно восьмому варианту осуществления, раскрытие относится к декодеру, содержащему один или несколько процессоров, и не кратковременный считываемый компьютером носитель данных, связанный с процессорами и хранящий программы для выполнения процессорами, причем программирование, когда выполняется процессоры, конфигурирует декодер для выполнения любого из способов согласно второму и пятому вариантам осуществления.
Согласно девятому варианту осуществления, раскрытие относится к кодеру, содержащему один или несколько процессоров и не кратковременный считываемый компьютером носитель данных, связанный с процессорами и хранящий программы для выполнения процессорами, причем программирование, когда выполняется процессоры, конфигурирует кодер для выполнения любого из способов согласно второму и пятому вариантам осуществления.
Согласно десятому варианту осуществления, раскрытие относится к не кратковременному считываемому компьютером носителю, несущему программный код, который при исполнении компьютерным устройством предписывают компьютерному устройству выполнять любой из способов согласно второму и пятому вариантам осуществления.
Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.
Фиг. 10 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и опционально включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.
Устройство 3102 захвата формирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по-отдельности.
В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR) / цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя целевое устройство 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.
Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR) / цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.
Фиг. 11 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.
После того, как блок 3202 обработки протокола обработает поток, формируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на закодированные аудиоданные и закодированные видеоданные. Как описано выше, в других практических сценариях, например, в системе видеоконференцсвязи, закодированные аудиоданные и закодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
Посредством обработки демультиплексирования формируются элементарный поток (elementary stream, ES) видео (видео ES), аудио ES и, опционально, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для формирования видеокадра и подает эти данные в блок 3212 синхронизации. эти данные в блок 3208 синхронизации. Аудиодекодер 3212 декодирует аудио ES для формирования аудиокадра и подает. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на Фиг. 11) перед его подачей в блок 3212 синхронизации. Точно так же аудиокадр может сохраняться в буфере (не показан на Фиг. 11) перед его подачей в блок 3212 синхронизации.
Блок 3212 синхронизации синхронизирует видеокадр и аудиокадр и подает видео/аудио в дисплей 3214 видео/аудио. Например, блок 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может кодироваться в синтаксисе с использованием временных меток, касающихся представления кодированных аудио- и видеоданных, а также временных меток, касающихся доставки самого потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.
Математические операторы
Математические операторы, используемые в этой заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и вещественнозначное деление. Правила нумерации и подсчета обычно начинаются с 0, т.е. "первый" эквивалентен 0-му, "второй" эквивалентен 1-му и т.д.
Арифметические операторы
Следующие арифметические операторы определены следующим образом:
+ Сложение
- Вычитание (как оператор с двумя аргументами) или отрицание (как унарный префиксный оператор)
* Умножение, в том числе матричное умножение
xy Возведение в степень. Определяет x в степени y. В других контекстах такое обозначение используется в качестве надстрочного индекса, которое не следует интерпретировать в качестве возведения в степень.
/ Целочисленное деление с усечением результата в сторону нуля. Например, 7/4 и -7 / -4 усекаются до 1, а -7/4 и 7 / -4 усекаются до -1.
÷ Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Суммирование f( i ), где i принимает все целые значения от x до y включительно.
x % y Операция по модулю. Остаток от деления x на y, определена только для целых чисел x и y, где x >= 0 и y > 0.
Логические операторы
Следующие логические операторы определены следующим образом:
x && y
х || y Булево логическое "или" для x и y
! Булево логическое "не"
x?y:z Если x равен ИСТИНЕ (TRUE) или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.
Операторы отношения
Следующие операторы отношения определены следующим образом:
> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
== Равно
!=Не равно
Когда оператор сравнения применяется к синтаксическому элементу или переменной, которому(ой) присвоено значение "na" (не применимо), значение "na" обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение "na" не считается равным любому другому значению.
Побитовые операторы
Следующие побитовые операторы определены следующим образом:
& Побитовое "и". При выполнении над целочисленными аргументами действует над представлением дополнения до двойки целочисленного значения. При выполнении над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
| При выполнении над целочисленными аргументами действует над представлением дополнения до двойки целочисленного значения. При выполнении над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
^ При выполнении над целочисленными аргументами действует над представлением дополнения до двойки целочисленного значения. При выполнении над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
x >> y Арифметический сдвиг вправо целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в старшие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB для x до операции сдвига.
x << y Арифметический сдвиг влево целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в младшие биты (LSB) в результате сдвига влево, имеют значение, равное 0.
Операторы присваивания
Следующие арифметические операторы определены следующим образом:
= Оператор присваивания
++ Приращение на единицу, т.е. x++ эквивалентно x=x+1; при использовании в индексе массива оценивается в значение переменной до операции приращения.
-- Уменьшение на единицу, т.е. x-- эквивалентно x=x - 1; при использовании в индексе массива оценивает значение переменной до операции уменьшения.
+= Увеличение на указанную величину, т.е. x += 3 эквивалентно x=x+3, а x += (-3) эквивалентно x=x + (-3).
-= Уменьшение на указанную величину, т.е. x -= 3 эквивалентно x=x - 3, а x -= (-3) эквивалентно x=x - (-3).
Обозначение диапазона
Следующее обозначение используется для указания диапазона значений:
x=y.. z x принимает целочисленные значения от y до z, включительно, где x, y и z являются целыми числами, а z больше y.
Математические функции
Определены следующие математические функции:
Abs( x )=
Asin (x) тригонометрическая обратная синусоидальная функция, работающая с аргументом x, который находится в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне от -π÷2 до π÷2 включительно, в единицах радиан.
Atan (x) тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от -π÷2 до π÷2 включительно в единицах радиан.
Atan2( y, x )=
Ceil( x ) - наименьшее целое, большее или равное x.
Clip1Y( x )=Clip3( 0, ( 1 << BitDepthY ) - 1, x)
Clip1C( x )=Clip3( 0, ( 1 << BitDepthC ) - 1, x)
Clip3( x, y, z )=
Cos( x ) тригонометрическая функция косинуса, работающая с аргументом x в единицах радиан.
Floor( x ) наибольшее целое число, меньшее или равное x.
GetCurrMsb( a, b, c, d )=
Ln( x ) натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма, равная2,281828...).
Log2( x ) логарифм x по основанию 2.
Log10( x ) логарифм x по основанию 10.
Min( x, y )=
Max( x, y )=
Round( x )=Sign( x ) * Floor( Abs( x ) + 0,5)
Sign( x )=
Sin( x ) тригонометрическая функция синуса, работающая с аргументом x в единицах радиан.
Sqrt( x )=
Swap( x, y )=( y, x )
Tan( x ) тригонометрическая функция тангенса, работающая с аргументом x в единицах радиан.
Порядок приоритетности операций
Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:
Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.
Операции с одинаковым приоритетом оцениваются последовательно слева направо.
В таблице ниже указан приоритет операций от наивысшего к низшему; более высокое положение в таблице указывает на более высокий приоритет.
Для тех операторов, которые также используются в языке программирования C, порядок приоритетности, используемый в этом описании, является таким же, что и в языке программирования C.
Таблица: Приоритетность операций от наивысшего (в верхней части таблицы) до низшего (в нижней части таблицы)
операции (с операндами x, y и z)
"x++", "x- -"
"!x", "-x" (как унарный префиксный оператор)
xy
"x * y", "x/y", "x ÷ y", "", "x % y"
"x+y", "x - y" (как оператор с двумя аргументами),
""
"x << y", "x >> y"
"x < y", "x <= y", "x > y", "x >= y"
"x== y", "x != y"
"x & y"
"x | y"
"x && y"
"x | | y"
"x ? y : z"
"x..y"
"x=y", "x += y", "x -= y"
Текстовое описание логических операций
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
if(условие 0) инструкция 0else if(условие 1) инструкция 1...else /* информативное примечание об оставшемся условии */ инструкция n
может быть описано следующим образом:
... следующим образом / ... применяется следующее:
- Если условие 0, инструкция 0
- Иначе, если условие 1, инструкция 1
- ...
- Иначе (информативное примечание об оставшемся условии), инструкция n
Каждое определение "Если ... Иначе, если ... Иначе, ..." в тексте, излагается и использованием "... как указано ниже " или "... применяется следующее", за которым сразу следует "Если ... ". Последнее условие определения "Если ... Иначе, если ... Иначе, ..." всегда может быть "Иначе, ...". Чередующиеся определения "Если ... Иначе, если ... Иначе, ..." могут быть идентифицированы за счет соседства с "... как указано ниже" или "... применяется следующее " с "Иначе, ..." в конце.
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
if(условие 0a && условие 0b) инструкция 0else if(условие 1a || условие 1b) инструкция 1...else инструкция n
может быть описано следующим образом:
... как указано ниже / ... применяется следующее:
-- Если все из следующих условий истинны, инструкция 0:
- условие 0a
- условие 0b
-- Иначе, если истинными являются одно или более из следующих условий, инструкция 1:
- условие 1a
- условие 1b
- ...
- Иначе, инструкция n
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
if( условие 0 ) определение 0 if( условие 1 ) определение 1
может быть описано следующим образом:
Когда условие 0, определение 0
Когда условие 1, определение 1
Хотя варианты осуществления раскрытия были в основном описаны на основе кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью того, чтобы обработка или кодирование изображения, то есть обработка или кодирование отдельного изображения независимо от любого предыдущего или последующего изображения, как при кодировании видео. В общем, только блоки 244 межкадрового предсказания (кодер) и 344 (декодер) могут не быть доступны в случае, если кодирование для обработки изображения ограничено одним изображением 17. Все другие функции (также называемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки статических изображений, например вычисление остатка 204/304, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, разделение 262, внутрикадровое предсказание 254/354 и/или контурная фильтрация 220, 320, энтропийное кодирование 270 и энтропийное декодирование 304.
Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, микропрограммным обеспечением или любой их комбинацией. Если они реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным блоком обработки. Считываемые компьютером носители могут включать в себя считываемые компьютером носители данных, которые соответствуют материальным носителям, таким как носители данных, или носители связи, включая любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером носителям данных, которые являются не кратковременными, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
В качестве примера, а не ограничения, такие считываемые компьютером носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемой компьютером средой. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная-, радио- и микроволновая- связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Диск и диск, используемые здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, а диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.
Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин "процессор", используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Способы этого раскрытия могут быть реализованы в большом количестве устройств или аппаратных компонентов, в том числе беспроводном телефоне, интегральной схеме (ИС) или наборе ИС (например, наборе микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе один или более процессоров, как описано выше, вместе с подходящим программным обеспечением (software) и/или микропрограммным обеспечением (firmware).

Claims (64)

1. Способ внутриконтурной фильтрации посредством выполнения адаптивной контурной фильтрации на восстановленном кадре видеопотока, реализуемый устройством кодирования или устройством декодирования, содержащий:
формирование (1310) разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и по меньшей мере одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя;
ограничение (1320) разностей согласно соответствующим уровням ограничения;
формирование (1330) взвешенной суммы ограниченных разностей; и
сложение взвешенной суммы по меньшей мере с одним из компонентов яркости и цветности пикселя для определения (1340) отфильтрованного соответствующего компонента пикселя;
при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности, когда битовая глубина яркости, BitDepthLuma, такая же, как и битовая глубина цветности, BitDepthChroma;
при этом набор уровней ограничения для компонентов яркости и цветности определяют согласно следующим выражениям:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=5, ShiftConst[3]=7
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=6
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
2. Способ по п. 1, в котором соответствующие уровни ограничения выбираются согласно битовой глубине по меньшей мере одного из компонентов яркости и цветности пикселя.
3. Способ по п. 1 или 2, в котором соответствующие уровни ограничения выбираются согласно соответствующим индексам ограничения для соответствующих соседних пикселей в соединенной области.
4. Способ по п. 3, в котором соответствующие индексы ограничения передаются в видеопотоке.
5. Способ по любому из предшествующих пунктов, в котором соответствующие уровни ограничения являются положительными значениями ограничения, которые меньше или равны или соответствующие уровни ограничения являются положительными значениями ограничения, которые меньше или равны , при этом BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности.
6. Способ по любому из предшествующих пунктов, в котором соответствующие уровни ограничения выбираются из справочной таблицы LUT, представляющей набор уровней ограничения для компонентов яркости и цветности.
7. Способ по п. 6, в котором справочную таблицу определяют следующим образом:
BitDepth clipIdx 0 1 2 3 8 28 25 23 21 9 29 26 24 22 10 210 27 25 23 11 211 28 26 24 12 212 29 27 25 13 213 210 28 26 14 214 211 29 27 15 215 212 210 28 16 216 213 211 29
где BitDepth обозначает битовую глубину по меньшей мере одного из компонентов яркости и цветности, а clipIdx обозначает индекс ограничения.
8. Способ по любому из предшествующих пунктов, в котором внутриконтурная фильтрация применяется к компонентам яркости и цветности восстановленного кадра.
9. Устройство (320, 220) внутриконтурной фильтрации для использования в устройстве кодирования видео или устройстве декодирования, при этом устройство (320, 220) внутриконтурной фильтрации выполнено с возможностью обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, в котором восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и при этом устройство (320, 220) внутриконтурного фильтра содержит одну или несколько схем обработки, выполненных с возможностью выполнения способа по любому из пп. 1-8.
10. Кодер (20), содержащий:
один или более процессоров; и
не кратковременный считываемый компьютером носитель данных, подключенный к одному или нескольким процессорам и хранящий инструкции для выполнения упомянутыми одним или несколькими процессорами, причем инструкции, когда выполняются упомянутыми одним или несколькими процессорами, конфигурируют кодер для выполнения способа в соответствии с любым из пп. 1-8.
11. Декодер (30), содержащий:
один или более процессоров; и
не кратковременный считываемый компьютером носитель данных, подключенный к одному или нескольким процессорам и хранящий инструкции для выполнения упомянутыми одним или несколькими процессорами, причем инструкции, когда выполняются упомянутыми одним или несколькими процессорами, конфигурируют декодер для выполнения способа в соответствии с любым из пп. 1-8.
12. Кодер (20) для обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, в котором восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и при этом кодер (20) содержит:
блок (1410) вычитания, выполненный с возможностью формирования разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и, по меньшей мере, одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя;
блок (1420) ограничения, выполненный с возможностью ограничения разностей согласно соответствующим уровням ограничения;
первый блок добавления (1430), выполненный с возможностью формирования взвешенной суммы ограниченных разностей; и
второй блок (1440) добавления, выполненный с возможностью добавления взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пикселя для определения (1340) отфильтрованного соответствующего компонента пикселя;
при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности, когда битовая глубина яркости, BitDepthLuma, такая же, как и битовая глубина цветности, BitDepthChroma;
при этом набор уровней ограничения для компонентов яркости и цветности определяют согласно следующим выражениям:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=5, ShiftConst[3]=7
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=6
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
13. Декодер (30) для обработки восстановленного кадра для формирования отфильтрованного восстановленного кадра, в котором восстановленный кадр содержит множество пикселей, каждый пиксель связан со значением пикселя, и при этом декодер (30) содержит:
блок (1410) вычитания, выполненный с возможностью формирования разностей между по меньшей мере одним из компонентов яркости и цветности пикселя восстановленного кадра и, по меньшей мере, одним из компонентов яркости и цветности соседних пикселей в соединенной области пикселя;
блок (1420) ограничения, выполненный с возможностью ограничения разностей согласно соответствующим уровням ограничения;
первый блок добавления (1430), выполненный с возможностью формирования взвешенной суммы ограниченных разностей; и
второй блок (1440) добавления, выполненный с возможностью добавления взвешенной суммы к по меньшей мере одному из компонентов яркости и цветности пикселя для определения (1340) отфильтрованного соответствующего компонента пикселя;
при этом соответствующие уровни ограничения выбираются из одного и того же набора уровней ограничения для компонентов яркости и цветности, когда битовая глубина яркости, BitDepthLuma, такая же, как и битовая глубина цветности, BitDepthChroma;
при этом набор уровней ограничения для компонентов яркости и цветности определяют согласно следующим выражениям:
ShiftConst[0]=0, ShiftConst[1]=3, ShiftConst[2]=5, ShiftConst[3]=7
или
ShiftConst[0]=0, ShiftConst[1]=2, ShiftConst[2]=4, ShiftConst[3]=6
посредством изменения битовой глубины компонента яркости BitDepthLuma и компонентов цветности BitDepthChroma, а также индекса Idx(i,j).
RU2022101240A 2019-06-24 2020-06-24 Уровни ограничения для нелинейного адаптивного контурного фильтра RU2818228C2 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
RUPCT/RU2019/000454 2019-06-24
RUPCT/RU2019/000456 2019-06-25
RUPCT/RU2019/000476 2019-07-03
US62/871,200 2019-07-07
RUPCT/RU2019/000483 2019-07-08

Publications (2)

Publication Number Publication Date
RU2022101240A RU2022101240A (ru) 2023-07-24
RU2818228C2 true RU2818228C2 (ru) 2024-04-26

Family

ID=

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JONATHAN TAQUET et al., CE5: Results of tests CE5-3.1, CE5-3.2, CE5-3.3 and CE5-3.4 on Non-Linear Adaptive Loop Filter, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0242, 14th Meeting: Geneva, 19-27 March 2019. JONATHAN TAQUET et al., Non-CE5: Complementary results of tests CE5-3 on Non-Linear ALF with alternative filters, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0243, 14th Meeting: Geneva, 19-27 March 2019. VADIM SEREGIN et al., CE5: Summary Report on Adaptive Loop Filter, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-N0025, 14th Meeting: Geneva, 19-27 March 2019. JONATHAN TAQUET et al., Non-Linear Adaptive Loop Filter, Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-M0385, 13th Meeting: Marrakech, 9-18 Jan. 2019. US 2017163982 A1 - 2017-06-08. RU 2636103 C2 - 2017-11-20. *

Similar Documents

Publication Publication Date Title
JP7239697B2 (ja) エンコーダ、デコーダ、インター予測のための対応する方法
JP7521057B2 (ja) エンコーダ、デコーダ、及びデブロッキングフィルタの境界強度導出の対応する方法
JP7303894B2 (ja) エンコーダ、デコーダ、及び対応するインター予測方法
JP7508645B2 (ja) モードおよびサイズに依存したブロックレベル制限の方法および装置
US11431988B2 (en) Method and apparatus for intra smoothing for intra sub-partitions
US20240031598A1 (en) Encoder, a decoder and corresponding methods for inter-prediction
JP2024055893A (ja) 非線形適応ループフィルタのためのクリッピングレベル
US20220264094A1 (en) Usage of DCT Based Interpolation Filter and Enhanced Bilinear Interpolation Filter in Affine Motion Compensation
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
US12047599B2 (en) Motion vector range derivation for enhanced interpolation filter
CN114556923B (zh) 编码器、解码器和使用插值滤波的对应方法
RU2818228C2 (ru) Уровни ограничения для нелинейного адаптивного контурного фильтра
US11997296B2 (en) Motion field storage optimization for a line buffer
RU2820991C1 (ru) Кодирующее устройство, декодирующее устройство и соответствующие способы уменьшения сложности при внутрикадровом прогнозировании для планарного режима
RU2800681C2 (ru) Кодер, декодер и соответствующие способы для внутреннего предсказания
RU2822448C2 (ru) Кодер, декодер и соответствующие способы интра-предсказания
RU2786427C2 (ru) Видеокодер, видеодекодер и соответствующие способы
US20220345729A1 (en) Encoder, decoder and corresponding methods of coding block partitioning restrictions derivation