УСТРОЙСТВО И СПОСОБ ВЫПОЛНЕНИЯ УДАЛЕНИЯ БЛОЧНОСТИ
DEVICE AND METHOD FOR REMOVAL OF BLOCKING ARTIFACTS

Область техники, к которой относится изобретение
Варианты осуществления настоящего изобретения относятся к области обработки изображений, например, кодированию статических изображений и/или видеоизображений. В частности, варианты реализации изобретения раскрывают усовершенствованный фильтр удаления блочности.
Уровень техники
В широком спектре приложений цифрового изображения применяется кодирование изображения (кодирование и декодирование), например, для приложений цифрового телевещания, передачи видео через интернет и мобильные сети, диалоговых приложений в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-ray дисков, систем сбора и редактирования видеоконтента и для видеокамер безопасности.
В 1990 году после разработки в H.261 стандарте блочного гибридного подхода к кодированию видео, были разработаны новые способы и инструменты кодирования видео, которые легли в основу новых стандартов кодирования видео. Одной из задач большинства стандартов кодирования видео было снижение битовой скорости по сравнению с его предшественником без снижения качества изображения. Дополнительные стандарты кодирования видео содержат MPEG-1 видео, MPEG-2 видео, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), ITU-T H.265, высокоэффективное кодирование видео (HEVC), ITU-T H.266/универсальное кодирование видео (VVC) и расширения, например, масштабируемость и/или трехмерные (3D) расширения этих стандартов.
Общим для схем блочного кодирования изображений является то, что вдоль краев блоков могут появляться краевые артефакты. Эти артефакты возникают из-за независимого кодирования блоков кодирования. Эти краевые артефакты часто легко видны пользователю. Задачей блочного кодирования изображений является уменьшение краевых артефактов ниже порогового значения видимости. Данная техническая задача решается посредством фильтрации удаления блочности. Такая фильтрация удаления блочности выполняется, с одной стороны, на стороне декодирования для удаления видимых краевых артефактов, но также и на стороне кодирования для предотвращения появления краевых артефактов в изображение при кодировании. В частности, для блока изображения (такого как блок преобразования (TU), блок предсказания (PU), блок кодирования (CU)), который использует инструменты субблоков, фильтрация удаления блочности может представлять собой сложную задачу.
Раскрытие сущности изобретения
Ввиду вышеупомянутой технической задачи варианты реализации настоящего изобретения направлены на улучшение обычной фильтрации удаления блочности. Варианты реализации настоящего изобретения предлагают устройство фильтра удаления блочности, кодер, декодер и соответствующие способы, которые могут выполнять фильтрацию удаления блочности с уменьшенным временем обработки. Кроме того, удаление блочности должен быть эффективным и точным.
Варианты осуществления изобретения определены признаками независимых пунктов формулы изобретения и дополнительные полезные реализации вариантов осуществления определены признаками зависимых пунктов формулы изобретения.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения и другие варианты осуществления предложены в зависимых пунктах формулы изобретения.
Согласно первому аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:
n
блок локализации края, выполненный с возможностью определять края между блоками, причем края между блоками содержат край блока (например, CU край или CU границу или TU границу) между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т. е. первый Р блок кодирования или второй Q блок кодирования имеет субблоки, либо первый Р блок кодирования или второй Q блок кодирования используют инструменты субблока), в котором первый Р блок кодирования имеет размер M × N выборок или N × M выборок, второй Q блок кодирования имеет размер блока L × T выборок или T × L выборок (размер блока любого из двух блоков кодирования также может быть представлен как W * H, в котором W и H указывают ширину и высоту соответствующего блока кодирования), например, N или T являются четным целым числом 2 (т.е. целочисленной степени два, в котором n является целым числом) и больше порогового значения (например, значение 8 или 16 и т. д.);
блок определения удаления блочности, выполненный с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра (т.е. более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра); и
блок фильтрации удаления блочности, выполненный с возможностью применять первый фильтр (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором модифицируются не более число MA значений выборок первого блока кодирования, перпендикулярного и смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, перпендикулярного и смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB , в частности, MA < MB, например, MA < MB = 7. Например, MA = 3 и MB = 7; или MA = 4 и MB = 7; или MA = 5 и MB = 7 и т. д. Можно понять, что значение MA или MB зависит от значения N или T.
n
n
n
Если второй блок Q изображения является текущим блоком, который имеет субблоки или использует инструменты субблока, и первый Р блок изображения является соседним блоком текущего блока, соответственно, во втором блоке кодирования, для каждой строки входных выборок, которые перпендикулярны и смежные с краем блока, модифицируется не более число МА выборок для генерирования выходных фильтрованных выборок; в первом блоке кодирования для каждой строки входных выборок, которые перпендикулярны и смежные с краем блока, модифицируется не более MB выборок для генерирования выходных фильтрованных выборок. В примере N или T является четным целым числом 2, большее 8, M или L является четным целым числом 2, большее 2 (например, M или L могут иметь следующие значения 4, 8, 16 или 32,…), M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T; M × N, в котором N > 8 применяется для горизонтальных краев, и N × M, в котором N > 8, применяется для вертикальных краев. В другом примере N или T является четным целым числом 2, большее 16, M × N, в котором N> 16, применяется для горизонтальных краев, и N × M, в котором N> 16, применяется для вертикальных краев.
Далее будет приведено описание разницы между краем блока и краями субблока. Край субблока является краем, который является внутренним по отношению к блоку, который использует инструменты субблока, которые включают в себя инструменты субблока, такие как Affine или расширенное прогнозирование вектора временного движения (ATMVP), и край блока (то есть, край блока кодирования (CU) или край блока кодирования или CU граница) является краем, совместно используемым между двумя блоками кодирования или двумя блоками кодирования или двумя блоками преобразования. Инструменты субблока также могут включать в себя такие инструменты, как инструменты внутреннего суб-раздела (ISP) и преобразования субблока (SBT).
Следует отметить, что в настоящем изобретении используется термин «блок», «блок кодирования» или «блок изображения», который может применяться для блоков преобразования (TUs), блоков предсказания (PUs), блоков кодирования (CUs) и т.д. В VVC, обычно, блоки преобразования и блоки кодирования в основном выровнены, за исключением нескольких сценариев, когда используются TU плитка или преобразование субблока (SBT). Можно понять, что в настоящем изобретении термины «блок/блок изображения/блок кодирования/блок преобразования» и «размер блока/размер блока преобразования» могут быть заменены друг на друга. В настоящем изобретении термины «выборка/пиксель» являются взаимозаменяемыми.
Изобретение относится как для вертикальных, так и для горизонтальных краев. Для вертикальных краев проверяется ширина первого или второго блока кодирования, а именно, превышает ли ширина 8 выборок (например, 16 или 32). Для горизонтальных краев проверяется высота первого или второго блока кодирования, превышает ли высота 8 выборок (например, 16 или 32). Для вертикальных краев учитывается ширина блока, только для блоков с шириной> = 16 или шириной> 16, применяется более длинный отводной фильтр (а именно, длинный фильтр). Для горизонтальных краев учитывается высота блока, только для блоков с высотой> = 16 или высотой> 16, применяется более длинный отводной фильтр (а именно, длинный фильтр).
Следует отметить, что первый фильтр (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) является фильтром, который использует DA выборки для принятия решения о фильтрации на одной стороне края блока и использует DB выборки для решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на одной стороне края блока (CU edge или TU edge), в то время, как MA выборки модифицируются на другой стороне края блока (CU edge или TU edge), в котором MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. В общем, DA = MA + 1 и DB = MB + 1. Первый фильтр может быть асимметричным фильтром, который модифицирует разное количество выборок на каждой стороне края блока (например, CU edge или TU edge).
Это позволяет по-разному обрабатывать две стороны края блока и, следовательно, в способе можно не допустить фильтрацию перекрытий между краем блока и краем субблока и, таким образом, может гарантировать, что удаление блочности может выполняться параллельно. Таким образом, значительно сокращается время обработки для фильтрации удаления блочности.
Следует отметить, что устройство фильтра может включать в себя процессор, выполненный с возможностью выполнять фильтрацию и модификацию. Кроме того, это также может гарантировать возможность параллельно выполнять удаление блочности, особенно края между блоками, в которых любой из блоков использует инструменты субблока.
В возможной форме реализации устройства согласно первому аспекту как таковому, в котором внутри первого блока кодирования находиться край субблока между субблоками и внутри второго блока кодирования находиться край субблока между субблоками (т.е. блок кодирования и второй блок кодирования имеют субблоки), блок определения удаления блочности дополнительно выполнен с возможностью определять присутствует ли край блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован путем применения второго фильтра (например, HEVC сильного фильтра); и
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять второй фильтр (например, HEVC сильный фильтр) к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован с помощью применения второго фильтра (например, HEVC сильного фильтра), в котором модифицируется число МА' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = MB', например, MA'= MB' <7, например, MA'= MB' = 3 или MA'= MB' = 5.
Следует отметить, что второй фильтр может быть HEVC сильным фильтром, в котором модифицируются MA' выборки (например, 3) на одной стороне края блока (CU edge) и модифицируются MB' выборки (например, 3) на другой стороне края блока (CU edge). В другом примере второй фильтр является сильным фильтром, который может модифицировать не более трех выборок по обе стороны от края. В HEVC два фильтра определены как фильтр удаления блочности: обычный фильтр и сильный фильтр. Обычный фильтр модифицирует не более двух выборок по обе стороны края. В сильном фильтре выполняется три дополнительных проверок между выборками по краю.
В возможной форме реализации устройства согласно первому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри второго блока кодирования, но край субблока между субблоками находится внутри первого блока кодирования (т.е. когда первый блок кодирования имеет субблоки), модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7;
или
при отсутствии внутри первого блока кодирования края субблока между субблоками, но при наличии края субблока между субблоками внутри второго блока кодирования (то есть, когда второй блок кодирования имеет субблоки), модифицируются не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть фильтрован путем применения первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) на основании
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра, и
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра.
В общем, DA = MA + 1 и DB = MB + 1. Если MA = 3 и MB = 3, DA = DB = 4; или, если MA = 7 и MB = 7, DA = DB = 8; или, если MA = 3 и MB = 7, DA = 4, DB = 8; или, если MA = 4 и MB = 7, DA = 5, DB = 8; или, если MA = 5 и MB = 7, DA = 6, DB = 8.
Это позволяет очень точно и параллельно определять, на каких краях действительно выполнен удаление блочности и на каких краях не выполнен удаление блочности.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при наличии края субблока между субблоками внутри второго Q блока кодирования (т.е. если второй Q блок кодирования имеет субблоки), блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли первое условие, определенное следующим первым уравнением:
i
j
в котором β обозначает параметр порогового значения и q представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и p представляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
Предлагается новое условие фильтрации. Это значительно сокращает объем памяти строк, необходимый для хранения значений пикселей предшествующих блоков кодирования, необходимых для выполнения удаления блочности на крае блока кодирования.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при наличии края субблока между субблоками внутри первого Р блока кодирования (т.е. если первый Р блок кодирования имеет субблоки), блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли второе условие, определенное следующим вторым уравнением:
i
j
в котором β обозначает параметр порогового значения и p представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и q представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
Предлагается новое условие фильтрации. Это значительно сокращает объем памяти строк, необходимый для хранения значений пикселей предшествующих блоков кодирования, необходимых для выполнения удаления блочности на крае блоков кодирования.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоки и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки второй выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, если внутри первого Р блока кодирования отсутствует край субблока между субблоками, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т. е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки третьей выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Предлагаются новые коэффициенты фильтра. Это позволяет использовать два вида коэффициентов фильтра, содержащие HEVC коэффициенты сильного фильтра и коэффициенты асимметричного более длинного отводного фильтра.
В возможной форме реализации устройства согласно любой предшествующей реализации первого аспекта или первого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (т.е. первый Р блок кодирования не имеет субблоков и второй Q блок кодирования имеет субблоки) блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края (505) между первым блоком изображения P и вторым блоком изображения Q (503a, 503b) выборок на основании следующего уравнения:
,
,
,
,
,
,
,
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Это позволяет использовать новые коэффициенты асимметричного более длинного отводного фильтра.
Согласно второму аспекту обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:
n
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т.е. первый Р блок кодирования или второй Q блок кодирования имеет субблоки, или первый Р блок кодирования или второй Q блок кодирования использует инструменты субблока), в котором первый Р блок кодирования имеет размер блока равный M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, например, N или T является четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т.д.);
блок определения удаления блочности, выполненный с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр); и
блок фильтрации удаления блочности, выполненный с возможностью применять третий фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB <7, например MA = MB = 4.
n
n
В одном примере N или T являются четными целыми числами 2, большее 8, M или L являются четными целыми числами 2, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T;
В одном из примеров третий фильтр может быть HEVC сильным фильтром, который может модифицировать максимум четыре выборки по обе стороны от края блока (CU edge). Другими словами, третий фильтр может быть HEVC сильным фильтром, в котором модифицируются максимум четыре выборки на одной стороне края блока (CU edge), в то время как на другой стороне края блока (CU edge) модифицируются максимум четыре выборки.
Это позволяет модифицировать небольшое количество значений выборок на двух сторонах края блока и, следовательно, этот способ может не допустить фильтрации перекрытий между краем блока и краем субблока до определенной степени и, таким образом, может гарантировать, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности может быть сокращено.
Согласно третьему аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:
n
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (т.е. первый P блок кодирования или второй Q блок кодирования имеет субблоки), в котором первый P блок кодирования имеет размер блока, равный M × N или N × M, второй Q блок кодирования имеет блок размер L × T или T × L, например, N или T является четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т. д.);
блок определения удаления блочности, выполненный с возможностью определять край субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определять край субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не подвержен удаление блочностиу; и
блок фильтрации удаления блочности, выполненный с возможностью применять четвертый фильтр (нормальный более длинный отводной фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируется число МА значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ значений выборок второго блока кодирования, смежного с краем блока, MA = MB, например, MA = MB = 7.
n
n
В примере N или T являются четным целым числом 2, большее 8, M или являются четным целым числом 2, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.
В одном примере четвертый фильтр может быть нормальным более длинным отводным фильтром, который может модифицировать до 7 выборок по обе стороны от края блока (например, CU край или CU граница).
Это позволяет не выполнять обработку удаления блочности края субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования и, следовательно, способ может не допустить фильтрацию перекрытия между краем блока и краем субблока, таким образом, можно гарантировать, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.
Согласно четвертому аспекту изобретения обеспечивается устройство кодирования видео. Устройство (100) кодирования видео для кодирования изображения видеопотока, в котором устройство (100) кодирования видео содержит:
блок (114) восстановления, выполненный с возможностью восстанавливать изображение; и
устройство (120) фильтра, как описано ранее, для обработки восстановленного изображения в фильтрованное восстановленное изображение.
Это позволяет очень эффективно и точно кодировать изображение.
Согласно пятому аспекту изобретения обеспечивается устройство декодирования видео. Устройство (200) декодирования видео для декодирования изображения кодированного видеопотока (303), в котором устройство (200) декодирования видео содержит:
блок (214) восстановления, выполненный с возможностью восстанавливать изображение; и
устройство (220) контурного фильтра, как описано ранее, для обработки восстановленного изображения в фильтрованное восстановленное изображение.
Это позволяет особенно точно и эффективно декодировать изображение.
Согласно шестому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:
n
определение краев между блоками, в котором края между блоками содержат край блока между первым P блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования (например, первый Р блок кодирования или второй Q блок кодирования имеет субблоки, или первый Р блок кодирования или второй Q блок кодирования имеет инструменты субблока), в котором первый Р блок кодирования имеет размер блока, равный M × N выборок или N × M выборок, второй Q блок кодирования имеет размер блока, равный L × T выборок или T × L выборок, например, в котором N или T является четным целым числом 2, превышающим пороговое значение (например, 8, 16 или т.д.);
определение, должен ли быть отфильтрован край блока между первым Р блоком кодирования и вторым Q блоком кодирования путем применения первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр), другими словами, определение, подлежит ли обработке удаления блочности край блока между первым Р блоком кодирования и вторым Q блоком кодирования путем применения первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр); и
применение первого фильтра (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB, в частности, MA <MB, например, MA <MB = 7. Например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.
n
n
В примере N или T является четным целым числом 2, большее 8 (например, N или T равны 16 или 32,…), M или L является четным целым числом 2, большее 2 (например, M или L равны 4, 8, 16 или 32,…); M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.
n
n
В другом примере N или T является четным целым числом 2, большее 16 (например, N или T равно 32 или 64,…), M или L является четным целым числом 2, большее 2 (например, M или L равно 4, 8, 16. или 32,…), M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T; M × N, в котором N> 16 применяется для горизонтальных краев, а N × M, в котором N> 16, применяется для вертикальных краев.
В примере, первый фильтр (то есть, более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр) является фильтром, который использует DB выборки для принятия решения о фильтрации на одной стороне края блока и использует DA выборки для принятия решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на упомянутой одной стороне края блока (CU edge или TU edge), в то время как MA выборки модифицируются на упомянутой другой стороне края блока (CU edge или TU edge), MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. Первый фильтр может быть асимметричным фильтром, который модифицирует разное количество выборок по обе стороны от края блока (например, CU edge или TU edge).
Это обеспечивает особенно точную и эффективную обработку удаления блочности. В частности, это позволяет по-разному обрабатывать две стороны края блока и, следовательно, способ позволяет избежать фильтрации наложения между краем блока и краем субблока, таким образом, может быть гарантировано, что удаление блочности может выполняться параллельно. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.
В возможной форме реализации способа согласно шестому аспекту как таковому, при наличии края субблока между субблоками внутри первого блока кодирования, и при наличии края субблока между субблоками внутри второго блока кодирования (например, первый Р блок кодирования и второй Q блок кодирования имеют субблоки или первый Р блок кодирования и второй Q блок кодирования имеют инструменты субблока).
Способ дополнительно содержит:
определение, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения второго фильтра; и
применение второго фильтра к значениям выборок рядом с краем блока, когда определено, что должен быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения второго фильтра, в котором модифицируется число MA' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число MB' значений выборок второго блока кодирования, смежного с краем блока, MA' = MB ', например, MA' = MB '= 3, или MA' = MB' = 5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри второго блока кодирования (например, первый Р блок кодирования имеет субблоки в то время как второй Q блок кодирования не имеет субблоков), модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока, на строку, и модифицируются не более число МВ значений выборок второго блока кодирования смежного с краем блока на строку, MA = 3 и MB = 7 или MA = 4 и MB = 7, MA = 5 и MB = 7;
или
при отсутствии внутри первого блока кодирования края субблока между субблоками (например, второй Q блок кодирования имеет субблоки, в то время как первый Р блок кодирования не имеет субблоков), модифицируется не более число МА значений выборок второго блок кодирования, смежного с краем блока на строку, и модифицируется не более число МВ выборочных значений первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, МА = 5 и МБ = 7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового определяется, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра на основании
- не более число DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первой фильтрации, и
- не более число DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второй фильтрации.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при наличии края субблока между субблоками внутри второго Q блока кодирования (например, второй Q блок кодирования имеет субблоки) определяется, удовлетворяется ли первое условие, определенное следующим первым уравнением:
i
j
в котором β обозначает параметр порогового значения и q представляет значения выборок второго Q блока кодирования, i = 0,1,2,3 и p представляет значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при наличии края субблока между субблоками внутри первого Р блока кодирования (например, первый Р блок кодирования имеет субблоки), определяется, удовлетворяется ли второе условие, определенное следующим вторым уравнением:
i
j
в котором β обозначает параметр порогового значения и p представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и q представляет значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, в котором определяется параметр β порогового значения на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоком внутри второго Q блока кодирования (например, первый P блок кодирования не имеет субблоков, а второй Q блок кодирования имеет субблоки), определяется отфильтрованное значение  выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
;
или,
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение выборки второй выборки текущей строки или столбца выборок для правого или нижнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и qпредставляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение  выборки третьей выборки текущей строки или столбца выборок для правого или нижнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования (например, P блок кодирования не имеет субблоков и Q блок кодирования имеет субблоки), определяется отфильтрованное значение  выборки соответствующей выборки текущей строки или столбца выборок для левого или верхнего вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
,
,
,
,
,
,
,
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
n
В возможной форме реализации способа согласно любой предшествующей реализации шестого аспекта или шестого аспекта как такового, если N и T являются четными целыми числами 2 больше 16, MA = 3 и MB = 7 или MA = 4 и MB = 7, или MA = 5 и MB = 7.
Согласно седьмому аспекту изобретение относится к способу удаления блочности края блока между первым Р блоком кодирования и вторым Q блоком кодирования изображения для кодирования изображения и/или декодирования изображения,
n
n
в котором первый Р блок кодирования имеет размер M * N или N * M, второй Q блок кодирования имеет размер L * T или T * L, например, N или T является четным целым числом 2, большим, чем 8, в частности, N или T являются четным целым числом 2 больше 16, и при наличии края субблока между субблоками первого блока кодирования или второго блока кодирования (т.е. первый блок кодирования или второй блок кодирования имеет субблоки), в котором способ содержит:
в случае, если край субблока между субблоками первого блока кодирования (т.е. первый блок кодирования имеет субблоки или первый блок кодирования использует инструменты субблока, в котором первый блок кодирования является текущим блоком),
- модификацию не более число МА значений выборок первого блока кодирования, смежного с краем блока, в качестве выходных значений выборок первого фильтра; и
- модификацию не более число МВ значений выборок второго блока кодирования, смежного с краем блока, в качестве выходных значений выборок второго фильтра; в котором MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.;
или,
в случае, если край субблока между субблоками второго блока кодирования (т.е. второй блок кодирования имеет субблоки или второй блок кодирования использует инструменты субблока, в котором второй блок кодирования является текущим блоком),
- модификацию не более число МА значений выборок второго блока кодирования, смежного с краем блока, в качестве выходных значений выборок первого фильтра; и
- модификацию (1404) не более число MB значений выборок первого блока (902, 1302) кодирования, смежных с краем блока, в качестве выходных значений выборок второго фильтра, в котором MA ≠ MB, в частности? MA <MB, например MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7 и т.д.
Это обеспечивает особенно точный и эффективный удаление блочности. В частности, обеспечивается разные способы обработки двух сторон края блока и, следовательно, способ позволяет не выполнять фильтрацию наложения между краем блока и краем субблока и, таким образом, обеспечивается параллельная обработка удаления блочности. Таким образом, время обработки для фильтрации удаления блочности значительно сокращается.
Согласно восьмому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L;
определение, должен ли быть отфильтрован край блока между первым Р блоком кодирования и вторым Q блоком кодирования применением первого фильтра (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр); и
применение третьего фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на строку, MA = MB, например, MA = MB <7, например, MA = MB = 4.
n
n
n
В одном примере N или T является четным целым числом 2, большее 8, в частности, N или T является четным целым числом 2, большее 16, M или L является четным целым числом 2, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.
В примере первый фильтр (т.е. более длинный отводной фильтр или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный длинный фильтр) представляет собой фильтр, который использует DB выборки для принятия решения о фильтрации на одной стороне края блока и использует DA выборки для принятия решения о фильтрации на другой стороне края блока, и MB выборки модифицируются на упомянутой одной стороне края блока (CU edge или TU edge), в то время, как MA выборки модифицируются на упомянутой другой стороне края блока (CU edge или TU edge), MA ≠ MB, в частности, MA <MB, например, MA <MB = 7, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.
В одном из примеров третий фильтр может быть HEVC сильным фильтром, который может модифицировать максимум четыре выборки по обе стороны края блока (CU edge или TU edge). Другими словами, третий фильтр может быть HEVC сильным фильтром, в котором модифицируются максимум четыре выборки на одной стороне края блока (CU edge или TU edge), в то время как модифицируются максимум четыре выборки на другой стороне края блока (CU edge или TU edge).
Это обеспечивает особенно точный и эффективный удаление блочности.
Согласно девятому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L;
определение, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не должен фильтроваться (например, определение, что удаление блочности края субблока между субблоками первого Р блока кодирования или второго Q блока кодирования отключен); и
применение четвертого фильтра (стандартный более удлинённый отводной фильтр) к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируются число МА значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ выборочных значений второго блока кодирования, смежного с краем блока, MA = MB, например MA = MB = 7.
n
n
n
В одном примере N или T является четным целым числом 2, большее 8, в частности, N или T является четным целым числом 2, большее 16, M или L является четным целым числом 2, большее 2; M отличается от N или M совпадает с N; или L отличается от T, или L совпадает с T.
В одном примере четвертый фильтр может быть нормальным более удлинённым отводным фильтром, который может модифицировать до 7 выборок по обе стороны края блока (например, CU edge или CU boundary).
Это обеспечивает особенно точный и эффективный удаление блочности.
Согласно десятому аспекту изобретение относится к способу кодирования для кодирования изображения, содержащему ранее или позже описанный способ удаления блочности согласно любой реализации любого аспекта или любого аспекта как такового.
Это позволяет очень эффективно и точно кодировать изображение.
Согласно одиннадцатому аспекту изобретение относится к способу декодирования для декодирования изображения, содержащему ранее или позже описанный способ удаления блочности согласно любой реализации любого аспекта или любого аспекта как такового. Это позволяет очень эффективно и точно декодировать изображение.
Согласно двенадцатому аспекту изобретения обеспечивается устройство фильтра удаления блочности. Устройство фильтра удаления блочности предназначено для использования в кодере изображения и/или декодере изображения. Устройство фильтра удаления блочности содержит:
n
блок локализации края, выполненный с возможностью определять края между блоками, в котором края между блоками содержат край блока (например, CU edge) между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока (например, sud-pu edge) между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L, например, N или T является четным целым числом 2, превышающее пороговое значение (например, 8 или 16 и т.д.);
блок определения удаления блочности, выполненный с возможностью определять край блока между первым Р блоком кодирования и вторым Q блоком кодирования и должен быть отфильтрован первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не должен фильтроваться; и
блок фильтрации удаления блочности, выполненный с возможностью выполнять фильтрацию удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования и выполнять фильтрацию удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого P блока кодирования и/или второго Q блока кодирования.
Например, блок определения удаления блочности может быть выполнен с возможностью определять край «первого» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определяют край «первого» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, для которого обработка удаления блочности отключена.
Например, блок определения удаления блочности может быть выполнен с возможностью определять край «последнего» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования, который не должен фильтроваться; другими словами, определяют край «последнего» субблока между субблоками (внутри) первого Р блока кодирования или второго Q блока кодирования для которого обработка удаления блочности отключена.
Например, блок определения удаления блочности может быть выполнен с возможностью определять все края субблоков, которые перекрываются с сеткой 16 x 16 для первого Р блока кодирования и/или второго Q блока кодирования, и применять удаление блочности только к этим внутренним краям. Другие внутренние края субблоков не подвергаются обработке удаления блочности. Кроме того, для удаления блочности внутренних краев субблоков, которые перекрываются с сеткой 16 x 16, может быть применен более длинный отводной фильтр можно, в то время как для CU края может быть применен более длинный отводной фильтр.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множество краев субблока, за исключением края первого субблока и края последнего субблока, между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому P блоку кодирования и второму Q блоку кодирования, в котором край последнего субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму блоку Q кодирования и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором блок фильтрации удаления блочности выполнен с возможностью применять пятый фильтр к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируется не более число NB значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA, NB = 4.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение  выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применить пятый фильтр, являющийся HEVC фильтрацией удаления блочности:
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблоков, которые перекрываются сеткой 16 × 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором блок фильтрации удаления блочности выполнен с возможностью применять шестой фильтр к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, и модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA' = NB'= 7. Можно понять, что NA' и NB' могут определяться на основании размера блока, другими словами, NA' и NB' зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока > = 32, максимальное количество измененных выборок может составлять 7 (соответствует длинному фильтру).
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому в случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять значения и отфильтрованной выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования, соответственно, на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования фильтроваться путем применения первого фильтра; и
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять первый фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блок кодирования должен быть отфильтрован применением первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования смежные к краю блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором в случае наличия множества краев субблока между субблоками внутри первого блока кодирования, и наличия множества краев субблока между субблоками внутри второго блока кодирования,
блок определения удаления блочности дополнительно выполнен с возможностью определять край блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован, применяя второй фильтр; и
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять второй фильтр к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируется число МА' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA'= 3 и MB' = 3.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри второго блока кодирования, модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на каждую строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку;
или
когда внутри первого блока кодирования нет края субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли быть отфильтрован край блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра на основании
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра и
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли первое условие, определенное следующим первым уравнением:
i
j
в котором β обозначает параметр порогового значения и qпредставляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pпредставляет значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором, при наличии множества краев субблока между субблоками внутри первого Р блока кодирования, блок определения удаления блочности выполнен с возможностью определять, удовлетворяется ли второе условие, определенное следующим вторым уравнением:
i
j
в котором β обозначает параметр порогового значения и p представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и qпредставляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, в котором параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение  выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:
;
или,
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1…7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение  выборки второй выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:
;
или,
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение выборки третьей выборки текущей строки или столбца выборок справа или внизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, блок фильтрации удаления блочности выполнен с возможностью определять отфильтрованное значение  выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:
,
,
,
,
,
,
,
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации устройства согласно двенадцатому аспекту как таковому, блок определения удаления блочности дополнительно выполнен с возможностью определять, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования фильтроваться путем применения первого фильтра; и
блок фильтрации удаления блочности дополнительно выполнен с возможностью применять третий фильтр к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число MB значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB = 4.
Согласно тринадцатому аспекту изобретение относится к способу удаления блочности для использования при кодировании изображения и/или декодировании изображения, в котором способ содержит:
n
определение краев между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, например, в котором N или T является четным целым числом 2 , больше чем пороговое значение (например, 8 или 16 и т. д.);
определение края блока между первым Р блоком кодирования и вторым Q блоком кодирования и первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, который должен быть отфильтрован, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не подлежит фильтрации; и
выполнение фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования и выполнение фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множества краев субблоков, за исключением края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму Q блоку кодирования, в котором край последнего субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первому Р блоку кодирования и второму блоку Q кодирования, и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:
применение пятого фильтра к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируются не более число NA значений выборок на одной стороне соответствующего блока из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируются не более число NB значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA = NB = 4.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применить пятый фильтр, который является HEVC фильтром удаления блочности:
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблоков, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:
применение шестого фильтра к значениям выборок рядом с каждым из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одному из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора краев субблока, NA'= NB' = 7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования,
этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:
определение отфильтрованного значения  выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и qпредставляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, в случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования,
этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:
определение отфильтрованного значения  и  выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования соответственно на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому способ дополнительно содержит:
определение, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра; и
применение первого фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть отфильтрован применением первого фильтра, в котором модифицируется не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA = 3 и MB = 7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, в случае наличия множества краев субблока между субблоками внутри первого блока кодирования, и наличия множества краев субблока между субблоками внутри второго блока кодирования, способ дополнительно содержит:
определение края блока между первым блоком кодирования и вторым блоком кодирования, который должен быть отфильтрован путем применения второго фильтра; и
применение второго фильтра к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируется число MA' значений выборок первого блока кодирования, смежного с краем блока, и модифицируется число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = 3 и MB'= 3.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри второго блока кодирования, модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на каждую строку, и модифицируется не более количество МВ значений выборок второго блока кодирования, смежного с краем блока на строку;
или
когда внутри первого блока кодирования нет края субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежный с краем блока на строку, MA = 3 и MB = 7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, способ дополнительно содержит: определение, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра на основании
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений принятия решения первого фильтра, DA = 4 и
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений принятия решения второго фильтра, DB = 4.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, способ дополнительно содержит: определение, удовлетворено ли первое условие, определенное следующим первым уравнением:
i
j
в котором β обозначает параметр порогового значения и q представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и pпредставляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при наличии множества краев субблока между субблоками внутри первого Р блока кодирования, способ дополнительно содержит: определение, выполняется ли второе условие, определенное следующим вторым уравнением:
i
j
в котором β обозначает параметр порогового значения и p представляет значения выборок первого P блока кодирования, i = 0,1,2,3 и q представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения  выборки первой выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборок на основании следующего уравнения:
;
или
;
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения  выборки второй выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения  выборки третьей выборки текущей строки или столбца выборок справа или снизу вертикального или горизонтального края между первым P блоком кодирования и вторым Q блоком кодирования выборки на основании следующего уравнения:
;
или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого P блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому, при отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение значения  отфильтрованной выборки соответствующей выборки текущей строки или столбца выборок слева или вверху вертикального или горизонтального края между первым и вторым блоком кодирования на основании следующего уравнения:
,
,
,
,
,
,
,
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1…7.
В возможной форме реализации способа согласно тринадцатому аспекту как таковому способ дополнительно содержит:
определение, должен ли край блока между первым Р блоком кодирования и вторым Q блоком кодирования быть отфильтрован путем применения первого фильтра; и
применение третьего фильтра к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на строку, MA = MB = 4.
Способ согласно шестому или седьмому аспекту изобретения может быть выполнен устройством согласно первому аспекту изобретения. Дополнительные признаки и формы реализации способа согласно шестому или седьмому аспекту изобретения являются прямым результатом функциональности устройства согласно первому аспекту изобретения и его различных форм реализации.
Способ согласно восьмому аспекту изобретения может быть выполнен устройством согласно второму аспекту изобретения. Дополнительные признаки и формы реализации способа согласно восьмому аспекту изобретения являются прямым результатом функциональных возможностей устройства согласно второму аспекту изобретения и его различных форм реализации.
Способ согласно тринадцатому аспекту изобретения может быть выполнен устройством согласно двенадцатому аспекту изобретения. Дополнительные признаки и формы реализации способа согласно восьмому аспекту изобретения являются прямым результатом функциональных возможностей устройства согласно второму аспекту изобретения и его различных форм реализации.
Согласно другому аспекту изобретение относится к устройству для декодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые побуждают процессор выполнять способ удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предыдущего аспекта как такового.
Согласно другому аспекту изобретение относится к устройству для кодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые побуждает процессор выполнять способ удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предыдущего аспекта как такового.
Согласно другому аспекту предлагается машиночитаемый носитель данных, на котором хранятся инструкции, которые при исполнении побуждают один или более процессоров выполнять кодирование видеоданных. Инструкции побуждают один или более процессоров выполнять способ удаления блочности согласно любой предшествующей реализации любого предыдущего аспекта или любого предшествующего аспекта как такового.
Согласно другому аспекту обеспечивается компьютерный программный продукт с программным кодом для выполнения способа удаления блочности согласно любой предшествующей реализации любого предшествующего аспекта или любого предшествующего аспекта как такового, когда компьютерная программа выполняется на компьютере.
Подробности одного или нескольких вариантов осуществления изложены на прилагаемых чертежах и в описании ниже. Другие признаки, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.
Краткое описание чертежей
Следующие варианты осуществления изобретения описаны более подробно со ссылкой на прилагаемые чертежи, на которых:
Фиг.1 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг.2 является блок-схемой, показывающей примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг.3 является блок-схемой, показывающей пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;
Фиг.4 показывает два примерных блока кодирования, в которых Q блок кодирования использует инструменты субблока (в общем, sub-block tools);
Фиг.5 показывает два примерных блока кодирования и соответствующие значения выборок, используемые и модифицируемые во время фильтрации с помощью примерного способа, показанного на фиг. 10;
Фиг.6 показывает первый вариант осуществления устройства фильтра удаления блочности согласно вариантам осуществления изобретения;
Фиг.7 показывает блок-схему алгоритма, иллюстрирующую способ определения, следует ли использовать более длинный отводной фильтр;
Фиг.8 показывает блок-схему алгоритма, иллюстрирующую способ определения, удовлетворяется ли условие HEVC сильного фильтра;
Фиг.9 показывает два примерных блока кодирования и значений выборок, используемых и модифицированных во время фильтрации согласно другому варианту осуществления изобретения, и
Фиг.10 показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;
Фиг.11A показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;
Фиг.11B показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;
Фиг.12 показывает блок-схему алгоритма, изображающую примерный процесс повышения эффективности фильтрации удаления блочности;
Фиг.13 показывает упрощенную блок-схему устройства 1300, которое может использоваться в качестве одного или обоих из устройства 310 источника и устройства 320 назначения с фиг.3 согласно примерному варианту осуществления;
Фиг.14 представляет схему устройства для кодирования видео;
Фиг.15 показывает, как может быть применен удаление блочности ко всем внутренним краям субблоков, которые находятся в сетке 16 x 16,
Фиг.16 показывает способ применения HEVC удаления блочности ко всем внутренним краям субблоков, кроме краев первого и последнего субблоков;
Фиг.17 показывает два примерных субблока внутри блока кодирования, в котором блок кодирования использует инструменты субблоков;
Фиг.18 показывает примерные субблоки внутри блока кодирования, в котором блок кодирования использует инструменты субблоков, в которых каждый из этих субблоков использует отдельные векторы движения; и
Фиг.19 иллюстрирует выборки изображений горизонтальных и вертикальных границ блока на сетке 8 * 8.
Далее идентичные ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным элементам. Частично на разных чертежах использовались разные ссылочные позиции, относящиеся к одним и тем же объектам.
Осуществление изобретения
Нижеследующее описание приведено со ссылкой на сопроводительные чертежи, которые составляют часть настоящего изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Очевидно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на чертежах. Поэтому нижеследующее подробное описание не следует рассматривать в ограничительном смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
Например, понятно, что настоящее изобретение раскрывает способ, который также может быть использован для соответствующего устройства или системы, выполненной с возможностью выполнять способ, и vice versa. Например, если описан один или более конкретных этапов способа, соответствующее устройство может включать в себя один или более блоков, например, функциональные блоки для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов) даже, если на чертежах такой один или более блоков явно не описаны и не проиллюстрированы. С другой стороны, например, если конкретное устройство описано на основании одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множество блоков) даже, если на чертежах такой один или множество этапов явно не описаны или не проиллюстрированы. Кроме того, следует понимать, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «изображение» могут использоваться как синонимы в области кодирования видео. Кодирование видео содержит две части: кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника, как правило, содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать, как относящиеся как к «кодированию», так и «декодированию» видеоизображений. Комбинация части кодирования и части декодирования также называется CODEC (Coding and Decoding).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, т.е. восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, посредством квантования для уменьшения количества данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, видео обычно обрабатывается в кодере, то есть, кодируется на уровне блока (видеоблока), например, используя пространственное (внутреннее изображение) предсказание и временное (внешнее изображение) предсказание для генерирования блока предсказания, вычитание блока предсказания из текущего блока (блок, который в настоящее время обрабатывается/будет обработан) для получения остаточного блока, преобразование остаточного блока и квантование остаточного блока в области преобразования для уменьшения объема данных, которые должны быть переданы (сжатие), тогда как для представления применяется обратная обработка в декодере по сравнению с кодером к закодированному или сжатому блоку для восстановления текущего блока. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказание) и/или восстановление для обработки, то есть, кодирования, последующих блоков.
Поскольку обработка видеоизображения (также называемая обработкой движущегося изображения) и обработка неподвижного изображения (термин обработка, содержащая кодирование) имеют много общих концепций и технологий или инструментов, в дальнейшем термин «изображение» используется для обозначения видеоизображения видеопоследовательность (как объяснено выше) и/или неподвижное изображение, чтобы избежать ненужных повторов и различий между видеоизображениями и неподвижными изображениями, в котором это не обязательно. Если описание относится только к неподвижным изображениям (или неподвижным изображениям), следует использовать термин «неподвижное изображение».
В следующих вариантах осуществления кодера 100, декодера 200 и системы 300 кодирования описываются на основании фиг.1-3 перед более подробным описанием вариантов осуществления изобретения на основании фиг. 4-14.
Фиг.3 представляет собой концептуальную или схематическую блок-схему, иллюстрирующую вариант осуществления системы 300 кодирования, например, системы 300 кодирования изображений, в котором система 300 кодирования содержит устройство 310 источника, выполненное с возможностью предоставлять кодированные данные 330, например, закодированное изображение 330, например, в устройство 320 назначения для декодирования закодированных данных 330.
Устройство 310 источника содержит кодер 100 или блок 100 кодирования и может дополнительно, т.е. возможно, содержать источник 312 изображения, блок 314 предварительной обработки, например, блок 314 предварительной обработки изображения и интерфейс связи или блок 318 связи.
Источник 312 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата изображения реального мира и/или устройством генерирования изображения любого типа, например, процессором компьютерной графики для генерирования компьютерного анимированного изображения, или устройством любого типа для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, контента экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображения дополненной реальности (AR)). В дальнейшем все эти виды изображений и любые другие изображения будут называться «изображение» или «кадр», если специально не указано иное, в то время как предшествующие пояснения в отношении термина «изображение» охватывают «видеоизображения» и «неподвижные изображения» по-прежнему остаются в силе, если явно не указано иное.
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрицу выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или пикселем. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или включать в себя три массива выборок. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (сокращенно от яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (сокращенно от цветности) Cb и Cr представляют компоненты информации цветности или цвета. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений (Y) выборок яркости и два массива выборок цветности значений (Cb и Cr) цветности. Изображения в формате RGB могут быть преобразованы или преобразованы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета или конверсия. Если изображение является монохромным, оно может содержать только массив выборок яркости.
Источник 312 изображения может быть, например, камерой для захвата изображения, памятью, например, памятью изображения, содержащую или хранящую ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство источника, память может быть локальной или интегрированной памятью, например, интегрированной в устройство источника. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства генерирования изображения, например, внешнего компьютерного графического процессора, компьютера или сервера. Интерфейс может быть любым, например, проводным или беспроводным интерфейсом, оптическим интерфейсом в соответствии с любым проприетарным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 312 изображения может быть тем же интерфейсом, что и интерфейс 318 связи, или его частью.
В отличие от блока 314 предварительной обработки и обработки, выполняемой блоком 314 предварительной обработки, изображение или данные 313 изображения также могут называться необработанным изображением или данными 313 необработанного изображения.
Блок 314 предварительной обработки выполнен с возможностью принимать (необработанные) данные 313 изображения и выполнять предварительную обработку данных 313 изображения для получения предварительно обработанного изображения 315 или предварительно обработанных данных 315 изображения. Предварительная обработка выполняется блоком 314 предварительной обработки и может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов.
Кодер 100 выполнен с возможностью принимать предварительно обработанные данные 315 изображения и предоставлять данные 171 кодированного изображения (дополнительные подробности будут описаны, например, со ссылкой на фиг.1).
Интерфейс 318 связи устройства 310 источника может быть выполнен с возможностью принимать данные 171 закодированного изображения и напрямую передавать их на другое устройство, например, устройство 320 назначения или любое другое устройство для хранения или прямого восстановления или для обработки данных 171 кодированного изображения, соответственно, до сохранения кодированных данных 330 и/или передачи кодированных данных 330 на другое устройство, например, устройство 320 назначения или любое другое устройство для декодирования или сохранения.
Устройство 320 назначения содержит декодер 200 или блок 200 декодирования и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 322 связи, процессор 326 постобработки и устройство 328 отображения.
Интерфейс 322 связи устройства 320 назначения выполнен с возможностью принимать данные 171 кодированного изображения или кодированные данные 330, например, непосредственно из устройства 310 источника или из любого другого источника, например, память, например, память данных закодированного изображения.
Интерфейс 318 связи и интерфейс 322 связи могут быть выполнены с возможностью передавать, соответственно, принимать данные 171 кодированного изображения или закодированные данные 330 через прямую линию связи между устройством 310 источника и устройством 320 назначения, например, по прямому проводному или беспроводному соединению или через любую сеть, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную сеть и сеть общего пользования, или любую их комбинацию.
Интерфейс 318 связи может быть, например, выполнен с возможностью упаковывать данные 171 закодированного изображения в соответствующий формат, например, пакеты для передачи по каналу связи или сети связи и могут дополнительно содержать защиту от потери данных и восстановление после потери данных.
Интерфейс 322 связи, образующий аналог интерфейса 318 связи, может быть, например, выполнен с возможностью распаковывать закодированные данные 330 для получения данных 171 закодированного изображения, а также может быть выполнен с возможностью выполнения защиты от потери данных и восстановления после потери данных, например, содержащую маскировку ошибок.
И интерфейс 318 связи, и интерфейс 322 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 330 закодированного изображения на фиг.3, указывающей от устройства 310 источника к устройству 320 назначения, или как двунаправленные интерфейсы связи, и могут быть выполнены с возможностью, например, отправлять и принимать сообщения, например, для установки соединения, подтверждения и/или повторной отправки потерянных или задержанных данных, включающие в себя данные изображения, и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передача данных закодированного изображения.
Декодер 200 выполнен с возможностью принимать данные 171 кодированного изображения и предоставлять данные 231 декодированного изображения или декодированного изображения 231 (дополнительные подробности будут описаны, например, со ссылкой на фиг. 2).
Блок 326 постобработки устройства 320 назначения выполнен с возможностью выполнять пост-обработку данных 231 декодированного изображения, например, декодированного изображения 231, для получения данных 327 изображения после обработки, например, пост-обработанное изображение 327. Постобработка, выполняемая блоком 326 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекция, обрезка или повторная выборка, или любая другая обработка, например, для подготовки данных 231 декодированного изображения для отображения, например, с помощью устройства 328 отображения.
Устройство 328 отображения устройства 320 назначения выполнено с возможностью принимать данные 327 изображения с постобработкой для отображения изображения, например, пользователю или зрителю. Устройство 328 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, встроенный или внешний дисплей или монитор. Дисплеи могут, например, состоят из электронно-лучевых трубок (CRT), жидкокристаллических дисплеев (LCD), плазменных дисплеев, дисплеев на органических светодиодах (OLED) или любых других дисплеев… луча, голограммы (3D),…
Хотя фиг.3 изображает устройство 310 источника и устройство 320 назначения как отдельные устройства, варианты осуществления устройств также могут содержать как функциональные возможности устройства 310 источника, так и соответствующие функциональные возможности устройства 320 назначения. В таких вариантах осуществления устройство 310 источника или соответствующие функциональные возможности и устройство 320 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве 310 источника и/или устройстве 320 назначения, как показано на фиг.3, может варьироваться в зависимости от фактического устройства и приложения.
Следовательно, устройство 310 источника и устройство 320 назначения, как показано на фиг.3, являются просто примерными вариантами осуществления изобретения, и варианты осуществления изобретения не ограничиваются показанными на фиг. 3.
Устройство 310 источника и устройство 320 назначения могут содержать любое из широкого диапазона устройств, включающие в себя любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потоковой передачи видео, устройства приемника вещания и т.д. (также серверы и рабочие станции для крупномасштабного профессионального кодирования/декодирования, например, сетевые объекты) и могут не использовать операционную систему любого типа или не использовать ее.
На фиг.1 показана схематическая/концептуальная блок-схема варианта осуществления кодера 100, например, кодера 100 изображений, который содержит вход 102, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования, блок 110 обратного квантования и блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (DPB), блок 160 предсказания [блок 142 внешней оценки, блок 144 внешнего предсказания, блок 152 внутренней оценки, блок 154 внутреннего предсказания, блок 162 выбора режима], блок 170 энтропийного кодирования и выход 172. Видеокодер 100, показанный на фиг.1, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
Например, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования и блок 170 энтропийного кодирования образуют прямой тракт сигнала кодера 100, тогда как, например, блок 110 обратного квантования, блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (DPB), блок 144 внешнего предсказания и блок 154 внутреннего предсказания образуют обратный тракт сигнала кодера, в котором обратный тракт сигнала кодера соответствует тракту сигнала декодера (см. декодер 200 на фиг. 2).
Кодер выполнен с возможностью принимать, например, через вход 102, изображение 101 или блок 103 изображения изображения 101, например, изображение последовательности изображений, образующих видео или видеопоследовательность. Блок 103 изображения также может называться текущим блоком изображения или блоком изображения, подлежащим кодированию, и изображение 101 является текущим изображением или изображением, которое подлежит кодированию (в частности, при кодировании видео для отличия текущего изображения от других изображений, например, ранее закодированных и/или декодированные изображения одной и той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).
Варианты осуществления кодера 100 могут содержать блок разделения (не показан на фиг. 1), например, который также может называться блоком разделения изображения, выполненный с возможностью разделять изображение 103 на множество блоков, например, блоки, подобные блоку 103, обычно на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующую сетку, определяющую размер блока, или изменять размер блока между изображениями или подмножествами или группами изображений, а также разделять каждое изображение на соответствующие блоки.
Подобно изображению 101, блок 103 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 101. Другими словами, блок 103 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 101) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 101) или любое другое количество и/или тип массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 103 определяет размер блока 103.
Кодер 100, как показано на фиг.1, выполнен с возможностью кодировать изображение 101 блок за блоком, например, кодирование и предсказание выполняется в блоке 103.
Блок 104 вычисления остатка выполнен с возможностью вычислять остаточный блок 105 на основании блока 103 изображения и блока 165 предсказания (дополнительные подробности о блоке 165 предсказания предоставлены позже), например, путем вычитания значений выборок блока 165 предсказания из значений выборок блока 103 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 105 в области выборки.
Блок 106 преобразования выполнен с возможностью применять преобразования, например, пространственно-частотное преобразование или линейное пространственное преобразование, например дискретное косинусное преобразование (DCT) или дискретное синусоидальное преобразование (DST) на значениях выборки остаточного блока 105 для получения преобразованных коэффициентов 107 в области преобразования. Преобразованные коэффициенты 107 могут также называться преобразованными остаточными коэффициентами и представлять остаточный блок 105 в области преобразования.
Блок 106 преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, таких как базовые преобразования, определенные для HEVC/H.265. По сравнению с ортонормированным DCT преобразованием такие целочисленные аппроксимации обычно масштабируются определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, равные степени два для операции сдвига, битовая глубина преобразованных коэффициентов, компромисс между точностью и затратами на реализацию и т.д. Могут быть определены, соответственно, конкретные коэффициенты масштабирования, например, которые указываются для обратного преобразования, например, блоком 212 обратного преобразования в декодере 200 (и соответствующим обратным преобразованием, например, блоком 112 обратного преобразования в кодере 100) и соответствующими масштабными коэффициентами для прямого преобразования, например, с помощью блока 106 преобразования в кодере 100.
Блок 108 квантования выполнен с возможностью квантовать преобразованные коэффициенты 107 для получения квантованных коэффициентов 109, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 109 также могут называться квантованными остаточными коэффициентами 109. Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шагов квантования) и большие параметры квантования могут соответствовать грубому квантованию (большие размеры шагов квантования) или наоборот. Квантование может включать в себя деление по размеру шага квантования и соответствующее обратное деквантование, например, посредством блока 110 обратного квантования, может включать в себя умножение на размер шага квантования.
Варианты осуществления согласно HEVC могут быть сконфигурированы для использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающей в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования для восстановления нормы остаточного блока, который может быть модифицирован масштабированием, используемого в аппроксимации с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантования могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и сигнализироваться из кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, в котором потери возрастают с увеличением размеров шагов квантования.
Варианты осуществления кодера 100 (или, соответственно, блок 108 квантования) могут быть выполнены с возможностью выводить схему квантования и размер шага квантования, например, с помощью соответствующего параметра квантования, так что декодер 200 может принимать и применять соответствующее обратное квантование. Варианты осуществления кодера 100 (или блока 108 квантования) могут быть выполнены с возможностью выводить схему квантования и размер шага квантования, например, кодируется непосредственно или энтропийно через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования.
Блок 110 обратного квантования выполнен с возможностью применять обратное квантование блока 108 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 111, например, путем применения схемы, обратной схемы квантования, применяемой блоком 108 квантования, на основании или с использованием того же размера шага квантования, что и блок 108 квантования. Деквантованные коэффициенты 111 также могут называться деквантованными остаточными коэффициентами 111 и соответствуют, хотя обычно они не идентичны преобразованным коэффициентам из-за потери при квантовании, преобразованным коэффициентам 108.
Блок 112 обратного преобразования выполнен с возможностью применять обратное преобразование, применяемого блоком 106 преобразования, например, обратное дискретное косинусное преобразование (DCT) или обратное дискретное синусоидальное преобразование (DST) для получения блока 113 обратного преобразования в области выборки. Блок 113 обратного преобразования также может упоминаться как деквантованный блок 113 обратного преобразования или остаточный блок 113 обратного преобразования.
Блок 114 восстановления выполнен с возможностью объединять блок 113 обратного преобразования и блок 165 предсказания для получения восстановленного блока 115 в области выборки, например, путем дискретного сложения значений выборок декодированного остаточного блока 113 и значений выборок блока 165 предсказания.
Буферный блок 116 (или кратко «буфер» 116), например, строчный буфер 116 выполнен с возможностью буферизировать или хранить восстановленный блок и соответствующие значения выборок, например, для внутренней оценки и/или внутреннего предсказания. В дополнительных вариантах осуществления кодер может быть выполнен с возможностью использовать нефильтрованные восстановленные блоки и/или соответствующие значения выборок, хранящиеся в блоке 116 буфера, для любого вида оценки и/или предсказания.
Варианты осуществления кодера 100 могут быть сконфигурированы так, что, например, блок 116 буфера используется не только для хранения восстановленных блоков 115 для внутренней оценки 152 и/или внутреннего предсказания 154, но также для блока 120 контурного фильтра (не показан на фиг.1) и/или такого, что, например, блок 116 буфера и буфер 130 декодированного изображения образуют один буфер. Дополнительные варианты осуществления могут быть выполнены с возможностью использовать фильтрованные блоки 121 и/или блоки или выборки из буфера 130 декодированных изображений (оба не показаны на фиг.1) в качестве входных данных или основы для внутренней оценки 152 и/или внутреннего предсказания 154.
Блок 120 контурного фильтра (или кратко «контурный фильтр» 120) выполнен с возможностью фильтрации восстановленного блока 115 для получения отфильтрованного блока 121, например, путем применения фильтра удаления блочности с адаптивным смещением (SAO) или других фильтров, например, фильтры повышения резкости или сглаживания или совместные фильтры. Отфильтрованный блок 121 также может называться отфильтрованным восстановленным блоком 121. Контурный фильтр 120 далее также называется фильтром удаления блочности. Дополнительные подробности блока 120 контурного фильтра будут описаны ниже, например, на основании фиг. 6 или фиг.7 или фиг.10-фиг.12.
Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг.1) блок анализа фильтра и блок фактического фильтра, в котором блок анализа фильтра выполнен с возможностью определять параметры контурного фильтра для фактического фильтра. Блок анализа фильтра может быть выполнен с возможностью применять фиксированные заранее определенные параметры фильтра к фактическому контурному фильтру, адаптивный выбор параметров фильтра из набора заранее определенных параметров фильтра или адаптивного вычисления параметров фильтра для фактического контурного фильтра.
Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг.1) один или множество фильтров (компоненты/подфильтры контурного фильтра), например, один или более различных видов или типов фильтров, например, соединены последовательно или параллельно или в любой их комбинации, в котором каждый из фильтров может содержать отдельно или совместно с другими фильтрами из множества фильтров блок анализа фильтров для определения соответствующих параметров контурного фильтра, например, как описано в предшествующем абзаце.
Варианты осуществления кодера 100 (соответственно блок 120 контурного фильтра) могут быть выполнена с возможностью выводить параметры контурного фильтра, например, кодируется непосредственно или энтропийно через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования, так что, например, декодер 200 может принимать и применять одни и те же параметры контурного фильтра для декодирования.
Буфер 130 декодированного изображения (DPB) выполнен с возможностью принимать и хранить фильтрованной блок 121. Буфер 130 декодированного изображения может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленные и отфильтрованные блоки 121 одного и того же текущего изображения или разных изображений, например, ранее восстановленные изображения и могут предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для внешней оценки и/или внешнего предсказания.
Дополнительные варианты осуществления изобретения также могут быть выполнены с возможностью использовать ранее отфильтрованные блоки и соответствующие отфильтрованные значения выборок буфера 130 декодированного изображения для любого вида оценки или предсказания, например, внутренняя и внешняя оценка и предсказание.
Блок 160 предсказания, также называемый блоком 160 предсказания блока, выполнен с возможностью принимать или получать блок 103 изображения (текущий блок 103 изображения текущего изображения 101) и декодированные или, по меньшей мере, восстановленные данные изображения, например, опорные выборки того же (текущего) изображения из буфера 116 и/или данных 231 декодированного изображения из одного или множества ранее декодированных изображений из буфера 130 декодированных изображений, и обрабатывать такие данные для предсказания, то есть, обеспечивать блок 165 предсказания, который может быть блоком 145 внешнего предсказания или блоком 155 внутреннего предсказания.
Блок 162 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режим внутреннего или внешнего предсказания) и/или соответствующего блока 145 или 155 предсказания, который будет использоваться в качестве блока 165 предсказания для вычисления остаточного блока 105 и для восстановления восстановленного блока 115.
Варианты осуществления блока 162 выбора режима могут быть выполнены с возможностью выбирать режим предсказания (например, из тех, которые поддерживаются блоком 160 предсказания), который обеспечивает наилучшее соответствие или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает и то, и другое. Блок 162 выбора режима может быть выполнен с возможностью определять режим предсказания на основании оптимизации искажения скорости (RDO), то есть, выбирать режим предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью или какое ассоциированное искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.
Далее будет приведено подробное описание процесса обработки предсказания (например, блоком 160 предсказания и выбор режима (например, блоком 162 выбора режима), выполняемый примерным кодером 100.
Как описано выше, кодер 100 выполнен с возможностью определять или выбирать наилучший или оптимальный режим предсказания из набора (заданных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.
Набор режимов внутреннего предсказания может содержать 32 различных режима внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим или направленные режимы, например, как определено в H.264, или может содержать 65 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено в H.265.
Набор (или возможные) режимов внешнего предсказания зависит от доступных опорных изображений (то есть, предшествующих, по меньшей мере, частично декодированных изображений, например, сохраненных в DBP 230) и других параметров внешнего предсказания, например, будь то все опорное изображение или только его часть, например, для поиска наилучшего соответствия опорного блока используется окно поиска область вокруг области текущего блока, опорного кадра и/или, например, применяется ли интерполяция пикселей, например половинный/полупиксельная и/или четверть пиксельная интерполяция или нет.
В дополнение к вышеуказанным режимам предсказания могут применяться режим пропуска и/или прямой режим.
Блок 160 предсказания может быть дополнительно выполнен с возможностью разделять блок 103 на более мелкие части или субблоки, например, итеративно с использованием четырехугольного разбиения (QT), двоичного разбиения (BT) или троичного разбиения (TT) или любой их комбинации и выполнять, например, предсказание для каждого из разделов или подблоков блока, в котором выбор режима содержит выбор древовидной структуры разделенного блока 103 и режимов предсказания, применяемых к каждому из разделов или подблоков блока.
Блок 142 внешней оценки, также называемый блоком 142 внешней оценки изображения, выполнен с возможностью принимать или получать блок 103 изображения (блока 103 текущего изображения текущего изображения 101) и декодированного изображения 231 или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленные блоки одного или множества других/различных ранее декодированных изображений 231 для внешней оценки (или «внешней оценки изображения»). Например. видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 100 может, например, быть выполнен с возможностью выбирать опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и поставлять опорное изображение (или индекс опорного кадра, ...) и/или смещение (пространственное смещение) между позицией (X, Y координаты) опорного блока и позицией текущего блока в качестве параметров 143 внешней оценки в блок 144 внешнего предсказания. Это смещение также называется вектором движения (MV). Внешняя оценка также называется оценкой движения (ME) и внешнее предсказание также называется предсказанием движения (MP).
Блок 144 внешнего предсказания выполнен с возможностью получать, например, принимать параметр 143 внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра 143 внешнего предсказания для получения блока 145 внешнего предсказания.
Хотя на фиг.1 показаны два отдельные блоки (или этапы) для внешнего кодирования, а именно, внешняя оценка 142 и внешнее предсказание 152, обе функции могут выполняться как одна (внешняя оценка) и требует/содержит вычисление блока внешнего предсказания, т.е. или «тип» внешнего предсказания 152), например, путем итеративного тестирования всех возможных или заданного подмножества возможных режимов внешнего предсказания с сохранением текущего лучшего режима внешнего предсказания и соответствующего блока внешнего предсказания и использования текущего лучшего режима внешнего предсказания и соответствующего блока внешнего предсказания в качестве (окончательного) параметра 143 внешнего предсказания и блока 145 внешнего предсказания, не выполняя в другой раз внешнее предсказание 144.
Блок 152 внутренней оценки выполнен с возможностью получать, например, принимать, блок 103 изображения (текущий блок изображения) и один или множество ранее восстановленных блоков, например, восстановленные соседние блоки одного и того же изображения для внутренней оценки. Кодер 100 может, например, быть выполнен с возможностью выбирать режим внутреннего предсказания из множества (заранее определенных) режимов внутреннего предсказания и предоставлять его в качестве параметра 153 внутренней оценки в блок 154 внутреннего предсказания.
Варианты осуществления кодера 100 могут быть выполнены с возможностью выбирать режим внутреннего предсказания на основании критерия оптимизации, например, минимальный остаток (например, режим внутреннего предсказания, обеспечивающий блок 155 предсказания, наиболее похожий на текущий блок 103 изображения) или искажение с минимальной скоростью.
Блок 154 внутреннего предсказания выполнен с возможностью определять на основании параметра 153 внутреннего предсказания, например, выбранный режим 153 внутреннего предсказания, блок 155 внутреннего предсказания.
Хотя на фиг.1 показаны два отдельные блоки (или этапы) для внутреннего кодирования, а именно, внутренняя оценка 152 и внутреннее предсказание 154, обе функции могут выполняться как одна (внутренняя оценка) и требует/содержит вычисление блока внутреннего предсказания, т.е. или «тип» внутреннего предсказания 154), например, путем итеративного тестирования всех возможных или заранее заданного подмножества возможных режимов внутреннего предсказания с сохранением лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания и использования лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания в качестве (окончательного) параметра 153 внутреннего предсказания и блока 155 внутреннего предсказания без повторного выполнения внутреннего предсказания 154.
Блок 170 энтропийного кодирования выполнен с возможностью применять алгоритм или схему энтропийного кодирования (например, схему кодирования с переменной длиной (VLC), контекстно-адаптивную схему VLC (CALVC), схему арифметического кодирования, схему контекстно-адаптивного двоичного арифметического кодирования (CABAC)) на квантованных остаточных коэффициентах 109, параметрах 143 внешнего предсказания, параметре 153 внутреннего предсказания и/или параметрах контурного фильтра, по отдельности или совместно (или не выполнять) для получения данных 171 кодированного изображения, которые могут выводиться выходом 172, например, в виде кодированного битового потока 171.
Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 100. Например, кодер 100, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока обработки преобразования для конкретных блоков или кадров. В другой реализации кодер 100 может иметь блок квантования и блок обратного квантования, объединенные в единый блок.
Фиг.2 показывает примерный видеодекодер 200, выполненный с возможностью принимать данные 171 кодированного изображения (например, кодированный битовый поток), например, кодируемые кодером 100, чтобы получить декодированное изображение 231.
Декодер 200 содержит вход 202, блок 204 энтропийного декодирования, блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания, блок 244 внешнего предсказания, блок 254 внутреннего предсказания, блок 262 выбора режима и выход 232.
Блок 204 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование данных 171 кодированного изображения для получения, например, квантованных коэффициентов 209 и/или параметров декодированного кодирования (не показаны на фиг.2), например, (декодированный) любой или все параметры 143 внешнего предсказания, параметр 153 внутреннего предсказания и/или параметры контурного фильтра.
В вариантах осуществления декодера 200 блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания и блок 262 выбора режима выполнены с возможностью выполнять обратный процесс обработки кодера 100 (и соответствующих функциональных блоков) для декодирования данных 171 кодированного изображения.
В частности, блок 210 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 212 обратного преобразования может быть идентичным по функциям блоку 112 обратного преобразования, блок 214 восстановления может быть идентичным по функции блоку 114 восстановления, буфер 216 может быть идентичен по функциям буферу 116, контурный фильтр 220 может быть идентичен по функции контурному фильтру 120 (что касается фактического контурного фильтра, поскольку контурный фильтр 220 обычно не содержит блок анализа фильтра для определения параметров фильтра на основании исходного изображения 101 или блока 103, но принимает (явно или неявно) или получает параметры фильтра, используемые для кодирования, например, из блока 204 энтропийного декодирования), и буфер 230 декодированного изображения может быть идентичен по функциям буферу 130 декодированного изображения.
Блок 260 предсказания может содержать блок 244 внешнего предсказания и блок 254 внутреннего предсказания, в котором блок 244 внешнего предсказания может быть идентичен по функциям блоку 244 внешнего предсказания и блок 254 внутреннего предсказания может быть идентичным по функциям блоку 154 внутреннего предсказания. Блок 260 предсказания и блок 262 выбора режима обычно выполнены с возможностью выполнять предсказание блока и/или получать блок 265 предсказания только из кодированных данных 171 (без какой-либо дополнительной информации об исходном изображении 101) и принимать или получать (явно или неявно) параметры 143 или 153 предсказания и/или информацию о выбранном режиме предсказания, например, из блока 204 энтропийного декодирования.
Декодер 200 выполнен с возможностью выводить декодированное изображение 231, например, через выход 232 для презентации или просмотра пользователю.
Хотя варианты осуществления изобретения были в основном описаны на основании кодирования видео, следует отметить, что варианты осуществления кодера 100 и декодера 200 (и, соответственно, системы 300) также могут быть выполнены с возможностью обработки или кодирования неподвижных изображений, то есть, обработки или кодирования отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, в случае, если обработка кодирования изображения ограничено одним изображением 101 не выполняется только внешняя оценка 142, внешнее предсказание 144, 242. Большинство, если не все другие функции (также называемые инструментами или технологиями) видеокодера 100 и видеодекодер 200 для неподвижных изображений могут одинаково использоваться, например, разделение, преобразование (масштабирование) 106, квантование 108, обратное квантование 110, обратное преобразование 112, внутренняя оценка 142, внутреннее предсказание 154, 254 и/или контурная фильтрация 120, 220, энтропийное кодирование 170 и энтропийное декодирование 204.
Настоящее изобретение относится к внутренним механизмам фильтра удаления блочности, также называемого контурным фильтром на фиг.1 и фиг.2. Далее будет приведено подробное описание блока 120, 220 контурного фильтра, например, на основании фиг.6 или фиг.7 или фиг.10 - фиг.12 или фиг.15 - фиг.16.
На основании успешного принципа гибридного кодирования видео на основании блоков разработаны схемы кодирования видео, такие как H.264/AVC и HEVC. Используя этот принцип, изображение сначала разделяется на блоки и затем каждый блок предсказывается с использованием внутреннего или внешнего предсказания. Эти блоки кодируются относительно соседних блоков и аппроксимируют исходный сигнал с некоторой степенью сходства. Поскольку кодированные блоки только аппроксимируют исходный сигнал, разница между приближениями может вызвать разрывы на границах блоков предсказания и преобразования. Эти неоднородности подавляются фильтром удаления блочности. HEVC заменяет структуру макроблоков H.264/AVC концепцией блока дерева кодирования (CTU) с максимальным размером 64x64 пикселей. CTU может быть дополнительно разделен на схему разложения дерева квадрантов на меньшие блоки кодирования (CU), которые могут быть разделены до минимального размера 8 x 8 пикселей. HEVC также вводит концепции блоков предсказания (PB) и блоков преобразования (TB).
В HEVC в фильтре удаления блочности определены два фильтра: обычный фильтр и сильный фильтр. Обычный фильтр модифицирует не более две выборки по обе стороны края. В сильном фильтре оцениваются три дополнительных проверки между выборками по краю и некоторым заранее заданным пороговым значением. Если все эти проверки верны, применяется сильный фильтр. Сильный фильтр имеет более интенсивный эффект сглаживания для выборок по краю и может модифицировать не более три выборки по обеим сторонам края.
ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают видеокодек следующего поколения: универсальное кодирование видео (VVC). Этот новый стандарт видеокодеков нацелен на возможность сжатия, которая значительно превосходит возможности текущего стандарта HEVC (включающий в себя его текущие расширения и краткосрочные расширения для кодирования контента экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках проекта совместной работы, известного как Joint Video Exploration Team (JVET), для оценки технологий сжатия, предложенных их экспертами в этой области.
Тестовая модель VVC (VTM) описывает признаки, которые проходят скоординированное исследование тестовой модели Объединенной группой исследования видео (JVET) ITU-T VCEG и ISO/IEC MPEG как потенциально улучшенная технология кодирования видео, выходящая за рамки возможностей HEVC.
Программное обеспечение VTM использует новую схему блочной структуры разделения, называемую дерево квадрантов плюс двоичное дерево плюс тройное дерево (QTBTTT).
Структура QTBTTT удаляет концепции нескольких типов разделения, то есть, удаляет разделение блоков кодирования (CU), блоков предсказания (PU) и блоков преобразования (TU). Следовательно, CU = PU = TU.
QTBTTT поддерживает более гибкие формы разделов CU, в которых CU может иметь квадратную или прямоугольную форму. Минимальная ширина и высота CU могут составлять 4 выборки и размеры CU также могут быть 4 x N или N x 4, в котором N может принимать значения в диапазоне [4, 8, 16, 32]. Кроме того, самый большой размер CTU был увеличен до 128x128 пикселей, что в 4 раза больше, чем размер CTU в HEVC.
Для прямоугольных CUs искажение вблизи более короткого края может быть очевидным, что приводит к блочным артефактам даже при применении HEVC сильного фильтра. Блочный артефакт также можно наблюдать на краю больших CUs, в котором искажения значительны из-за более крупных операций предсказания и преобразования.
Дополнительные инструменты Sub-pu (обычно именуемые инструменты субблока), такие как Affine и ATMVP, теперь адаптированы к стандарту универсального кодирования видео (VVC). В способе реализации для инструментов sub-pu, особенно Affine, деблокирование также может выполняться для краев/границ sub-pu, которые перекрываются с сеткой 8 x 8. В другом способе реализации для инструментов sub-pu, особенно Affine, только границы sub-pu, которые перекрываются с сеткой 16 x 16, подвержены удалению блочности, все другие границы sub-pu не обрабатываются удалением блочности, то есть, для границ sub-pu удаление блочности, которые перекрываются с сеткой 8 x 8, не выполняется, как показано на фиг.15. В другом способе реализации, для инструментов sub-pu, особенно Affine, внутренние границы первого и последнего sub-pu не подвержены обработке удаления блочности. Все другие внутренние края sub-pu подвержены обработке удаления блочности, как показано на фиг.16. Другими словами, решения, показанные на фиг.15 и фиг.16, по меньшей мере, позволяют выполнять обработку удаления блочности некоторых из внутренних краев sub-pu. Все эти реализации, в основном, предназначены для согласования применения более длинных отводных фильтров, когда один из блоков, имеющий общий край, использует инструменты sub-pu, такие как Affine или ATMVP.
На фиг.4 проиллюстрирована текущая операция фильтра удаления блочности (разделение деревом квадрантов плюс двоичное дерево плюс тройное дерево (QTBTTT)).
На фиг.4 проиллюстрирована техническая задача применения «более длинного отводного фильтра» к инструментам sub-pu. Блоки 401, 402 кодирования, также называемые P, Q, представляют собой два CUs, размер CU составляет 16x4 выборок.
0,0
6,0
7,0
6,0
5,0
При фильтрации CU края (отмечен толстой черной линией), модифицируется максимум 7 выборок по обе стороны CU края. Поэтому модифицируются выборки от Q до Q. Также в операции принятия решения по применению удаления блочности границы sub-pu используются выборки QQQ(отмечены тонкой черной линией). Следовательно, фильтрация образовывает перекрытие и, кроме того, приводит к тому, что операция удаления блочности края не может быть выполнена параллельно.
Следовательно, необходимо выполнять фильтрацию удаления блочности последовательно. Это приводит к очень долгому времени обработки. Это приводит к неоправданно длительному времени обработки, особенно с появлением новых технологий обработки, использующих все больше и больше параллельных структур обработки. Адаптировав фильтрацию удаления блочности к параллельной обработке, можно сэкономить значительное время обработки.
Более подробно, распараллеливание фильтрации удаления блочности может быть достигнуто подходом, как проиллюстрировано на фиг.5, фиг.15 или фиг.16.
7.1. варианты осуществления изобретения
Решение 1:
1.1 Если текущий Q блок использует инструменты Sub-pu, такие как Affine или ATMVP, то в настоящем изобретении используется асимметричная версия более длинного отводного фильтра, то есть, для удаления блочности CU границы между блоками P и Q используется асимметричный фильтр, как показано в таблице 1; в основном, блок кодирования может использовать внешнее предсказание. При внешнем предсказании применяют несколько различных инструментов, которые может использовать блок кодирования. Affine и ATMVP представляют собой два инструмента sub-pu. Инструменты sub-pu означают, что заданный блок кодирования будет дополнительно использовать меньшие блоки предсказания (sub-pus), и выполняется компенсация движения отдельно для каждого из sub-pus. Например, при наличии блока кодирования размером 16 x 4 аффинный инструмент использует 2 sub-pus размером 8 x 4 (как показано на фиг.4) или 4 sub-pus размером 4 x 4. Например, при наличии блока кодирования размером 16 x 16, аффинный инструмент использует 16 sub-pus размером 4 x 4 или 4 субблока размером 8 x 8, как показано на фиг.17 (a) и (b). Каждый из этих sub-pus или субблоков использует отдельные векторы движения, как показано на фиг.18.
Поэтому для Q блока кодирования, который использует инструменты Sub-pu, модифицируется максимум три выборки, тогда как для блока Р кодирования модифицируется максимум до 7 выборок. См. фиг.4 или фиг.5, если ширина блока Р кодирования больше 8 выборок, например, 16 или 32 выборки, для блока Р кодирования модифицируется максимум до 7 выборок. Можно отметить, что в некоторых сценариях для блока P, Q кодирования также могут быть модифицированы 3, 4, 5 или 6 выборок.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Как проиллюстрировано в таблице 1, в примере первые выходные значения (относящиеся к Q блоку кодирования) соответствуют q2, q1, q0; и вторые выходные значения (относящиеся к P блоку кодирования) соответствуют p0, p1, p2, … p5, p6. Соответственно, Q блок кодирования соответствует второму блоку изображения, который использует инструмент субблока, и Р блок кодирования соответствует первому блоку изображения. Q блок кодирования является текущим блоком и Р блок кодирования является соседним блоком текущего блока.
Кроме того, условие фильтра (уравнение 1) гарантирует, что для принятия решения фильтрации используются максимум 4 выборки из Q блока.
В примере для первой и четвертой строк сегмента удаления блочности:
(уравнение 1)
Как правило, процесс фильтра удаления блочности может включать в себя три этапа: обнаружение границы/края, решение о фильтрации (решение о включении/выключении фильтра) и процесс фильтрации для вертикальных и горизонтальных краев.
0
3
Для принятия решения фильтрации (для уравнения 1) используется только 4 выборки. Поэтому в уравнении 1 для Q блока используются выборки только от q до q. В уравнении 1 для Р блока можно использовать четыре выборки, как показано в уравнении 1. В примере вторые значения решения соответствуют q3, q2, q1, q0; и значения первого решения соответствуют p0, p3, p4, p7, p0, p2, p3, p5.
0
2
Если уравнение 1 удовлетворяется, то можно использовать более длинный отводной фильтр, указанный в таблице 1. Если уравнение 1 не удовлетворяется, то можно использовать HEVC сильный фильтр. Также модифицируются максимум 3 выборки из Q блока, то есть, от q до q .. В основном, чтобы применить более длинный отводной фильтр, рассматривается уравнение 1. Только если уравнение/условие1 истинно, может применяться более длинный отводной фильтр, показанный в таблице 1. Можно отметить, что уравнение 1 можно использовать на этапе 707 на фиг. 7.
0
3
Уравнение 1 в основном проверяет градиент по обе стороны CU края. Поскольку для принятия решения фильтрации из Q блока доступно только максимум 4 выборки, то из Q блока используются только выборки с q по q, в котором β обозначает параметр порогового значения, известный, например, из HEVC стандарта. Для условия фильтрации значение параметра β порогового значения зависит от параметра квантования QP. Как уже описано выше, QP представляет собой хорошо известный параметр в стандартах кодирования видео, который управляет компромиссом между скоростью передачи данных и качеством видеоконтента. В варианте осуществления QP может находиться в диапазоне от 0 до 51. В варианте осуществления схема обработки устройства 120, 220 фильтра выполнена с возможностью определять параметра β порогового значения на основании параметра квантования QP с использованием справочной таблицы. В варианте осуществления справочная таблица может быть определена следующим образом:
Для получения дополнительных сведений о параметре β порогового значения и его зависимости от QP сделана ссылка на главу 7 книги «High Efficiency Video Coding (HEVC)», Sze et al., Которая полностью включена в настоящее описание посредством ссылки.
1.2 Если соседний Р блок использует инструменты Sub-pu, такие как Affine или ATMVP, то в настоящем изобретении используется асимметричная версия более длинного отводного фильтра, то есть, используется асимметричный фильтр, как показано в таблице 2, для выполнения удаления блочности CU границы между P и Q блоками;
Поэтому для Р блока кодирования, который использует инструменты Sub-pu, в примере модифицируется максимум три выборки, тогда как для текущего Q блока кодирования модифицируется максимум до 7 выборок.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Как проиллюстрировано в таблице 2, в примере первые выходные значения (относящиеся к Р блоку кодирования) соответствуют p2, p1, p0; и вторые выходные значения (относящиеся к блоку кодирования Q) соответствуют q0, q1, q2, … q5, q6. Соответственно, Р блок кодирования соответствует второму блоку изображения, который использует инструменты субблока, и Q блок кодирования соответствует первому блоку изображения. Р блок кодирования является текущим блоком и Q блок кодирования является соседним блоком текущего блока.
Также условие фильтрации (уравнение 2) гарантирует, что для принятия решения фильтрации используется только максимум 4 выборки Р блока.
В примере для первой и четвертой строк сегмента удаления блочности:
(уравнение 2)
Как правило, процесс фильтра удаления блочности может включать в себя три этапа: обнаружение границы/края, решение фильтрации (решение о включении/выключении фильтра) и процесс фильтрации для вертикальных и горизонтальных краев.
0
3
3
2
1
0
0
3
4
7
0
2
3
5
Для принятия решения фильтрации (для уравнения 2) могут быть использованы только 4 выборки. Поэтому в уравнении 2 для Р блока используются выборки только от p до p. В уравнении 2 для Q блока можно использовать четыре выборки, как показано в уравнении 2. В примере значения второго решения соответствуют p, p, p, p; и значения первого решения соответствуют q, q, q, q, q, q, q, q.
0
2
Если уравнение 2 удовлетворяется, то можно использовать более длинный отводной фильтр, упомянутый в таблице 2. Если уравнение 2 не удовлетворяется, можно использовать HEVC сильный фильтр. Также здесь модифицируются максимум 3 выборки из Р блока, то есть, от p до p. В основном, чтобы применить более длинный отводной фильтр, рассматривается уравнение 2. Только если уравнение 2 верно, то можно применять более длинный отводной фильтр, показанный в таблице 2. Можно отметить, что уравнение 2 может использоваться на этапе 707 на фиг.7.
Разрешено использовать максимум 4 выборки из Р блока для принятия решения фильтрации. Следовательно, выборки p4, p5… p7 нельзя использовать и, следовательно, коэффициенты фильтрации выборок p4, p5… p7 равны нулю. Таким образом, в операциях фильтрации p4, p5… p7 не используются.
0
3
Уравнение 2 в основном проверяет градиент по обе стороны блока. Поскольку для принятия решения фильтрации из Р блока доступно не более 4 выборок, из Р блока используются только выборки с p по p.
0
1
2
0
1
2
1.3 В альтернативной реализации коэффициенты для p, p, p или q, q, q также могут использовать коэффициенты HEVC сильного фильтра. Коэффициенты для случая, когда Р блок кодирования использует инструменты Sub-pu, показаны в таблице 3. Другими словами, настоящее изобретение может использовать асимметричную версию более длинного отводного фильтра, то есть, может использовать асимметричный фильтр, как показано на таблице 3, для удаления блочности CU границы между P и Q блоками. Соответственно, Р блок кодирования соответствует второму блоку изображения и Q блока кодирования соответствует первому блоку изображения. Р блок кодирования является текущим блоком и Q блок кодирования является соседним блоком текущего блока.
0
1
2
0
1
2
В качестве альтернативы коэффициенты для p, p, p или q, q, q фильтра также могут использовать коэффициенты HEVC сильного фильтра. В таблице 4 показаны коэффициенты фильтра для случая, в котором Q блок кодирования использует инструменты Sub-pu. Другими словами, настоящее изобретение может использовать асимметричную версию более длинного отводного фильтра, то есть, может использовать асимметричный фильтр, как показано в таблице 4, для удаления блочности CU границы между P и Q блоками. Соответственно, Q блок кодирования соответствует второму блоку изображения и Р блок кодирования соответствует первому блоку изображения. Q блок кодирования является текущим блоком и Р блок кодирования является соседним блоком текущего блока.
Используемое условие фильтрации может быть уравнением 1 или уравнением 2 в зависимости от того, использует ли Р блок или Q блок инструменты sub-pu. Например, если Р блок использует инструменты sub-pu, условием фильтрации является уравнение 2; если Q блок использует инструменты sub-pu, условием фильтрации является уравнение 1;
1.4 Если и Q блок кодирования, и Р блок кодирования используют инструменты sub-pu, то на CU границе больше не применяется более длинный отводной фильтр. HEVC сильный фильтр можно рассматривать для CU края (сокращение от CE). В реализации модифицируются максимум 3 выборки на стороне CU края в P блоке, и модифицируются максимум 3 выборки на другой стороне CU края в Q блоке. В таблице 5 показан используемый фильтр. Другими словами, настоящее изобретение может использовать фильтр, показанный в таблице 5, для удаления блочности CU границы между P и Q блоками.
На фиг.7 представлена блок-схема алгоритма, иллюстрирующая способ определения, следует ли использовать более длинный отводной фильтр (или асимметричный длинный фильтр). Как проиллюстрировано на фиг.7, должно выполняться условие HEVC сильного фильтра, чтобы выполнялись условия «более длинного отводного фильтра». На этапе 707 подробности были описаны выше. Более длинный отводной фильтр, используемый на этапе 709, отличается от нормального более длинного отводного фильтра, использованного на этапе 708, подробности были описаны выше. Состояние стандартного более длинного отводного фильтра может быть следующим:
В некоторых примерах, поверх HEVC фильтра, нормальный более длинный отводной фильтр на этапе 708 использует 8 выборок для принятия решения фильтрации на каждой стороне края, и на каждой стороне края модифицируются 7 выборок. Однако более длинный отводной фильтр на этапе 709 использует DB выборки для принятия решения фильтрации на одной стороне края и DA выборки для принятия решения фильтрации на другой стороне края, и на упомянутой одной стороне края модифицируются MB выборки, в то время как на другой стороне края модифицируются выборки MA. MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. В общем, DA = MA + 1; DB = DB + 1.
На фиг.8 проиллюстрированы детали для определения, должно ли выполняться условие HEVC сильного фильтра. На фиг.8 показана блок-схема алгоритма, где показан общий процесс принятия решений фильтрации удаления блочности для границы блока, включающих в себя решения между сильной и нормальной фильтрацией.
На первом этапе 800 проверяется, совмещен ли край фильтруемого в данный момент блока с сеткой 8 × 8 выборки кодирования. Если это так, то на втором этапе 801 проверяется, является ли край блока, подлежащего фильтрации, границей между блоками предсказания или блоками преобразования. Если это так, то на третьем этапе 802 проверяется, является ли граничная прочность Bs> 0. Если это условие также удовлетворяется, то на четвертом этапе 803 проверяется, истинно ли условие 7.1.
Условие 7.1 используется для проверки, применяется ли фильтрация удаления блочности к границе блока или нет. Условие особенно проверяет, насколько сигнал на каждой стороне границы блока отклоняется от прямой линии (пилообразная форма).
Если это условие не удовлетворяется или любая из проверок на этапах 800, 801 и 802 не выполняется, то на пятом этапе 804 принимается решение, что фильтрация не выполняется.
На шестом этапе 805 (не показан на фиг. 8) теперь проверяется, равен ли размер блока любого из двух блоков, окружающих край, подлежащий фильтрации, четырем. Если это не так, на седьмом этапе 806 проверяется, удовлетворяется ли дополнительные условия 7.2, 7.3 и 7.4.
Условие 7.2 проверяет отсутствие значительных изменений сигнала на сторонах границы блока. Условие 7.3 проверяет ровность границы с обеих сторон. Условие 7.4 гарантирует, что шаг между значениями выборки на сторонах границы блока будет небольшим.
Если все эти условия верны, на восьмом этапе 807 выполняется сильная фильтрация, этап 807 напрямую заменяется этапом 702 на фиг.7. Если это не так, на девятом этапе 808 решается, что выполняется нормальная фильтрация.
Это решение вводит в действие часть блок-схемы алгоритма удаления блочности, так что выполняется только одна модификация выборки.
n
n
Это позволяет значительно сократить количество проверок, необходимых для определения, выполняется ли фильтрация и какой тип фильтрации выполняется, в случае, если хотя бы один из размеров блока является четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т.д.), особенно в случае, если, по меньшей мере, один из размеров блока является четным целым числом 2 больше 16.
Для предотвращения перекрытия фильтров, когда к блокам применяется более длинный отводной фильтр, один или оба из которых используют инструменты sub-pu, такие как Affine и ATMVP, в настоящем изобретении предлагаются следующие решения.
Решение 1. Использовать «асимметричный» фильтр, который позволяет модифицировать до МА выборок для блока, использующего инструменты sub-pu, если в Q блоке или Р блоке используются инструменты Sub-pu, такие как Affine или ATMVP, например MA = 3 , 4, 5 или 6.
Решение 2. Для CU края не может быть применен более длинный отводной фильтр, если и Q блок кодирования, и Р блок кодирования используют инструменты Sub-pu. Для края рассматривается HEVC сильный фильтр. Поэтому для P и Q блоков модифицируется одинаковое количество выборок по обе стороны CU края, MA'= MB'.
Решение 3. Отключить удаление блочности для sub-pu краев, в то время как выполняется удаление блочности только на CU краях, если любой из Q блока или Р блока использует инструменты Sub-pu, такие как Affine или ATMVP.
Решения 4 и 5: если один из Q или P блоков использует инструменты Sub-pu, такие как Affine или ATMVP, то не только выполняется удаление блочности на некоторых из краев Sub-pu, но также выполняется на CU краях.
Решение 4. В этом решении более длинный отводной фильтр удаления блочности или ко всем CU краям можно применить нормальный HEVC фильтр удаления блочности. Для внутренних краев Sub-pu выполняется удаление блочности только на краях, которые перекрываются сеткой 16 x 16. Внутренние края Sub-pu, которые перекрываются сеткой 8 x 8, не подвергают обработке удаления блочности. Основное преимущество этого решения состоит в том, что может быть применен более длинный отводной фильтр к некоторым внутренним краям Sub-pu, кроме CU краев.
Как показано на фиг.15, пример включает в себя три блока (blocks) P, Q, R кодирования. Q блок использует инструменты sub-pu, такие как Affine или ATMVP, и поэтому состоит из внутреннего края sub-pu. Есть два края блоков кодирования, один край используется совместно между Р блоком (например, CU P) и Q блоком (например, CU Q), и другой край блока кодирования используется совместно между Q блоком (например, CU Q) и R блоком (например, CU R). Чтобы применить более длинный отводной фильтр для края блока кодирования без введения перекрытий фильтров и, следовательно, не жертвуя параллельным удаление блочностиом, предлагаемое решение выполняет удаление блочности только всех внутренних краев sub-pu, которые перекрываются с сеткой 16 x 16. Все остальные внутренние края sub-pu не подвергают удаление блочностиу. Эта ситуация также изображена на фиг.15, пунктирные линии иллюстрируют внутренние sub-pu края, которые перекрываются с сеткой 8 x 8 и не подвергают удаление блочностиу. Нормальные линии изображают внутренние края sub-pu, которые перекрываются сеткой 16 x 16, поэтому к ним применяют удаление блочности. Важным свойством этого решения является то, что: более длинный отводной фильтр может применяться к краям CU и к внутренним sub-pu краям, которые перекрываются сеткой 16 x 16.
n
Р, Q, R блок имеет размер блока, равный M × N, или N × M, или L × T, или T × L, и N или T, являющиеся четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т.д.). Например, размер (т.е. ширина или высота) Р, Q, R блока может составлять 32 или 64 выборки.
Для сетки 16 x 16, по меньшей мере, один внутренний край sub-pu, который перекрывается. В общем, для меньших блоков внутренний край первого и последнего sub-pu, перекрывающееся сеткой 8x8, будет только одним, и поэтому его нельзя подвергнуть удаление блочностиу. Это ситуация, изображенная на фиг.4.
На фиг.19 показана сетка 8 x 8. Сетка 8 x 8 будет иметь вертикальные и горизонтальные линии, разделенные с интервалом в 8 выборок. Сетка 16 x 16 будет иметь вертикальные и горизонтальные линии, разделенные интервалом в 16 выборок.
Может использоваться шестой фильтр, такой как более длинный отводной фильтр, который модифицирует максимум 7 выборок по обе стороны от края субблока, то есть, NA'= NB' = 7. Между прочим, HEVC нормальный фильтр удаления блочности также может быть применен ко всем этим суб-pu краям, которые перекрываются сеткой 16 x 16. Как правило, HEVC нормальный фильтр удаления блочности может модифицировать максимум 3 выборки по обе стороны края. Когда применяется HEVC нормальный фильтр удаления блочности к этим краям sub-pu, которые перекрываются с сеткой 16 x 16, количество выборок, которые должны быть модифицированы с каждой стороны краев sub-pu, может быть адаптировано согласно различным сценариям.
На фиг.15, то есть, для решения 4 (сетка 16 x 16), шестой фильтр может относиться к более длинному отводному фильтру. Более длинный отводной фильтр представляет собой фильтр, который модифицирует одинаковое количество выборок по обе стороны от края. В этом случае можно использовать любой более длинный отводной фильтр с NA'= NB' = 7, т.е. более длинный отводной фильтр может модифицировать не более 7 выборок с каждой стороны края. Если это более длинный отводной фильтр, то NA'= NB' = 7. Более длинный отводной фильтр модифицирует максимум 7 выборок по обе стороны от края sub-PU. Также можно применить HEVC нормальный фильтр. Для принятия решения о фильтрации и модификации фильтра используются выборки, внутренние для блока sub-pu.
Решение 5. В этом решении удаление блочности отключен для внутренних краев первого и последнего sub-pu, например, перекрытие сеткой 8 х 8. Для всех остальных краев sub-pu, например, с перекрытием с сеткой 8 x 8, может быть применен пятый фильтр (например, HEVC нормальный фильтр удаления блочности или любой другой фильтр), который модифицирует максимум до 4 выборок. Более длинный отводной фильтр удаления блочности можно безопасно применять ко всем краям CU.
Как показано на фиг.16, пример состоит из трех блоков (blocks) кодирования P, Q, R. Q блок использует инструменты sub-pu, такие как Affine или ATMVP, и поэтому состоит из внутреннего края sub-pu. Имеется два края блоков кодирования, один край используется совместно между Р блоком и Q блоком и другой край блока кодирования используется совместно между Q блоком и R блоком. Чтобы применить более длинный отводной фильтр для края блока кодирования без введения перекрытий фильтров и, следовательно, без ущерба для параллельного удаления блочности, решение выполняет удаление блочности только всех внутренних краев sub-pu, за исключением краев первого и последнего sub-pu. Также пятый фильтр, такой как HEVC фильтр удаления блочности, который модифицирует максимум 3 выборки, или любой другой фильтр удаления блочности, который модифицирует максимум до 4 выборок, может использоваться для удаления блочности всех других внутренних краев sub-pu, кроме краев первого и последнего sub-pu. Следует отметить, что для внутренних краев sub-pu в этом решении 5, потому что каждый последующий край отстоит только на 8 выборок, поскольку мы обычно выполняем фильтрацию на сетке 8 × 8. Следовательно, в решении 5 можно использовать HEVC нормальный фильтр удаления блочности или любой другой фильтр, который может модифицировать максимум до 4 выборок.
На фиг.16, то есть, для решения 5 (кроме первого и последнего), пятый фильтр может также относиться к более длинному отводному фильтру. Более длинный отводной фильтр может быть фильтром, который модифицирует одинаковое количество выборок по обе стороны от края. В этом случае можно использовать любой другой более длинный отводной фильтр с NA = NB = 4. Если это более длинный отводной фильтр, то NA = NB = 4. Более длинный отводной фильтр модифицирует максимум 4 выборки по обе стороны от края sub-PU. Также можно применить HEVC нормальный фильтр. Для принятия решения о фильтрации и модификации фильтра используются выборки, внутренние для блока sub-pu.
n
Р, Q, R блок имеет размер блока M × N или N × M, или L × T, или T × L, а N или T является четным целым числом 2 больше 8. Например, размер (такой как ширина или высота) Р, Q, R блока может составлять 32 или 64 выборки. В общем, для меньших блоков внутренние края первого и последнего sub-pu с перекрытием с сеткой 8x8, будет только одним, и поэтому нельзя выполнить удаление блочности. Это ситуация, изображенная на фиг.4.
Для края первого sub-pu и края последнего sub-pu между субблоками внутри первого Р блока кодирования или второго Q блока кодирования край первого sub-pu находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и край последнего sub-pu является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;
Настоящее изобретение так же успешно применимо как к вертикальным краям, так и к горизонтальным краям. Настоящее изобретение может определять край первого sub-pu, используя верхнее левое положение (x, y) sub-pu блока, и для первого вертикального края мы можем сказать, что верхнее левое положение имеет (x + n, y + 8), в котором n является приращением по краю, но их положение является тем же самым. Для последнего вертикального края мы можем сказать, что положение находится рядом с положением соседних блоков (p, q), тогда положение последнего вертикального края будет начинаться с (p + n, q- 8). Для горизонтального края наоборот.
Подводя итог, можно сказать, что решения могут гарантировать возможность выполнения параллельных операций удаления блочности и, следовательно, улучшить субъективное и объективное качество кодирования видео. Решение 3 предусматривает отсутствие удаления блочности для всех внутренних краев sub-pu, тогда как решение 4 и решение 5, по меньшей мере, предусматривает применение удаления блочности для некоторых внутренних краев sub-pu.
Этот подход также показан на фиг.15 или фиг.16. На фиг. 5 показано изображение 500, содержащее два блока 501, 502. Край 504 блока разделяет блоки 501 и 502. Край 505 блока разделяет блок 502 на блоки 5021 и 5022. Согласно первому варианту осуществления изобретения модифицируются семь значений выборки рядом с краем 504 блока внутри блока 501, и модифицируются три значения выборки рядом с краем 504 блока внутри блока 502, 5021, в то время как с обеих сторон края 504 блока два последовательных значения выборки используются в качестве входных значений фильтра. На фиг.9 изображены только соответствующие блоки 901 и 902 изображения 900, то же самое относится и к горизонтальным краям. Изобретение применимо ко всем типам блоков для применения более длинного отводного фильтра, изобретение применимо как для вертикальных, так и для горизонтальных краев, например, для вертикальных краев с шириной> 8.
В будущем стандарте кодирования видео может использоваться фильтр «длинного отвода», который модифицирует более 3 выборок. Далее фильтр с «длинным отводом», который использует 8 выборок в качестве входных значений фильтра и модифицирует до 7 выборок, может использоваться всякий раз, когда размер блока больше или равен 16 выборкам.
Чтобы гарантировать возможность параллельного удаления блочности в таком сценарии, в котором текущий блок использует инструменты субблока, предлагаются следующие улучшенные механизмы:
Механизм 1a: применить фильтр «длинного отвода», когда текущий размер блоков составляет ≥ 16 выборок, а также когда размер соседних блоков также составляет ≥ 16 выборок.
Механизм 2a: применить «асимметричный фильтр», как объяснялось ранее.
Следовательно, «Асимметричный фильтр» модифицирует выборки, используемые в качестве входных значений, и модифицированные значения в соответствии с шириной блока:
Например: если
• ширина блока == 4, тогда в решении фильтрации можно использовать три выборки и может быть модифицирована одна выборка
• ширина блока == 8, тогда в решении фильтрации можно модифицировать и использовать 4 выборки
• для ширины блока> = 16 может быть применен более длинный отводной фильтр,
как описано ранее, например, в случае, если в текущем блоке используются инструменты субблока, модифицируется не более число МА значений выборки текущего блока (который использует инструменты субблока), смежные к краю блока на строку, и модифицируются не более число МВ выборки значения соседнего блока, смежные к краю блока на строку; MA ≠ MB, в частности, MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7. Можно понять, что в сценарии, в котором текущий блок имеет инструменты субблока, MA и MB могут определяться на основании размера блока, другими словами, MA и MB зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока> = 32, максимальное модифицированное количество выборок может составлять 7 (соответствует длинному фильтру).
Фиг.6 является блок-схемой, иллюстрирующей примерное устройство 600 фильтра удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8 или фиг. 10, 11A, 11B, 12). Устройство 600 фильтра удаления блочности может быть выполнено с возможностью выполнять способы удаления блочности в соответствии с различными примерами, описанными в настоящем изобретении. В общем, один или оба из контурных фильтров 120 на фиг.1 и контурный фильтр 220 на фиг.2 может включать в себя компоненты, по существу, аналогичные компонентам устройства 600 фильтра удаления блочности. Другие устройства кодирования видео, такие как видеокодеры, видеодекодеры, видеокодеры/декодеры (CODEC) и т.п., также могут включать в себя компоненты, по существу, аналогичные фильтру 600 удаления блочности. Устройство 600 фильтра удаления блочности может быть реализовано в виде аппаратных средств, программного обеспечения, встроенного программного обеспечения или любой их комбинации. При реализации в программном обеспечении или встроенном программном обеспечении также может быть предоставлено соответствующее оборудование (например, один или более процессоров или процессоров и память для хранения инструкций для программного обеспечения или встроенного программного обеспечения).
В примере на фиг. 6, устройство 600 фильтра удаления блочности включает в себя блок 604 определения удаления блочности, определения 602 поддержки, хранящиеся в памяти, блок 606 фильтрации удаления блочности, параметры 608 фильтра удаления блочности, хранящиеся в памяти, блок 603 локализации краев и структуру 605 данных местоположений краев. Любой или все компоненты фильтра 600 удаления блочности могут быть функционально интегрированы. Компоненты фильтра 600 удаления блочности показаны отдельно только в целях иллюстрации. В общем, фильтр 600 удаления блочности принимает данные для декодированных блоков, например, из компонента 114, 214 суммирования, который объединяет данные предсказания с остаточными данными для блоков. Данные могут дополнительно включать в себя указание того, как были предсказаны блоки. В примере, описанном ниже, устройство 600 фильтра удаления блочности выполнено с возможностью принимать данные, включающие в себя декодированный видеоблок, ассоциированный с CTB (или LCU), и дерево квадрантов CU для CTB, в котором дерево квадрантов CU описывает, как CTB разбивается на CU и режимы предсказания для PUs и TUs листового узла CUs.
Устройство 600 фильтра удаления блочности может поддерживать структуру 605 данных местоположений краев в памяти устройства 600 фильтра удаления блочности или во внешней памяти, предоставленной соответствующим устройством кодирования видео. В некоторых примерах блок 603 локализации краев может принимать дерево квадрантов, соответствующее CTB, которое указывает, как CTB разбивается на CUs. Блок 603 локализации краев может затем анализировать дерево квадрантов CU для определения краев между декодированными видеоблоками, ассоциированными с TUs и PUs CUs в CTB, которые являются кандидатами на удаление блочности.
Структура 605 данных местоположений краев может содержать массив, имеющий горизонтальный размер, вертикальный размер и размер, представляющий горизонтальные края и вертикальные края. В общем, края между видеоблоками могут возникать между двумя видеоблоками, ассоциированные с CUs наименьшего размера CTB или TUs и PUs для CUs. Предполагая, что CTB имеет размер N × N, и предполагая, что CU наименьшего размера CTB имеет размер M × M, массив может содержать размер [N / M] × [N / M] × 2, в котором «2» представляет два возможных направления краев между CUs (горизонтальное и вертикальное). Например, предполагая, что CTB имеет 64 × 64 пикселя и CU наименьшего размера 8 × 8, массив может содержать [8] × [8] × [2] записи.
Каждая запись обычно может соответствовать возможному краю между двумя видеоблоками. На самом деле края могут отсутствовать на каждой из позиций в пределах LCU, соответствующей каждой из записей структуры 605 данных местоположений краев. Соответственно, значения структуры данных могут быть инициализированы как ложные. В общем, блок 603 локализации краев может анализировать дерево квадрантов CU, чтобы определять местоположения краев между двумя видеоблоками, ассоциированные с TUs и PUs блоков CUs CTB, и устанавливать соответствующие значения в структуре 605 данных местоположений краев как истинные.
В общем, записи массива могут описывать, существует ли соответствующий край в CTB в качестве кандидата на удаление блочности. То есть, когда блок 603 локализации краев определяет, что при наличии края между двумя соседними видеоблоками, ассоциированные с TUs и PUs из CUs CTB, блок 603 локализации краев может установить значение соответствующей записи в структуре 605 данных местоположений краев для указания наличия края (например, со значением «истина»).
Блок 604 определения удаления блочности обычно определяет, следует ли выполнять удаление блочности края между двумя блоками для двух соседних блоков. Блок 604 определения удаления блочности может определять местоположения краев с использованием структуры 605 данных местоположений краев. Когда значение структуры 605 данных местоположений краев имеет логическое значение, блок 604 определения удаления блочности может определять, что «истинное» значение указывает на наличие края, и значение «ложное» указывает, что в некоторых примерах край отсутствует.
В общем, блок 604 определения удаления блочности сконфигурирован с одной или несколькими функциями определения удаления блочности. Функции могут включать в себя множество коэффициентов, применяемых к линиям пикселей, которые пересекают край между блоками. Например, функции могут применяться к строке пикселей, которая перпендикулярна краю, в котором MA (например, 3, 4 или 5) пикселей находятся в одном из двух блоков, и пиксели MB (например, 7) находятся в другом из двух блоков. Определения 602 поддержки определяют поддержку функций. В общем, «поддержка» соответствует пикселям, к которым применяются функции.
Блок 604 определения удаления блочности может быть выполнен с возможностью применять одну или более функций определения удаления блочности к одному или нескольким наборам поддержки, как определено определениями 602 поддержки, для определения, следует ли выполнять удаление блочности конкретного края между двумя блоками видеоданных. Пунктирная линия, исходящая из блока 604 определения удаления блочности, представляет данные для блоков, выводимых без фильтрации. В случаях, когда блок 604 определения удаления блочности определяет, что край между двумя блоками не должен фильтроваться, фильтр 600 удаления блочности может выводить данные для блоков без изменения данных. То есть, данные могут обойти блок 606 фильтрации удаления блочности. С другой стороны, когда блок 604 определения удаления блочности определяет, что край должен быть подвергнут удалению блочности, блок 604 определения удаления блочности может побудить блок 606 фильтрации удаления блочности отфильтровать значения соседних пикселей для выполнения удаления блочности края.
Блок 606 фильтрации удаления блочности извлекает определения фильтров удаления блочности из параметров 608 фильтра удаления блочности для краев, которые должны быть подвергнуты удаление блочностиу, как указано блоком 604 определения удаления блочности. В общем, фильтрация края использует значения пикселей из окрестности текущего края, подлежащего удаление блочностиу. Следовательно, как функции принятия решения удаления блочности, так и фильтры удаления блочности могут иметь определенную область поддержки с обеих сторон края. Применяя фильтр удаления блочности к пикселям в окрестности края, блок 606 фильтрации удаления блочности может сглаживать значения пикселей посредством подавления высокочастотных переходов около края. Таким образом, применение фильтров удаления блочности к пикселям около края может уменьшить артефакты блочности около края.
Фиг.10 является блок-схемой алгоритма, иллюстрирующей примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8).
На фиг.10 показан вариант осуществления способа удаления блочности.
n
На первом этапе 1001 определяются края между блоками, в котором края между блоками содержат край блока между первым блоком кодирования и вторым блоком кодирования и край субблока между субблоками первого блока кодирования или второго блока кодирования (например, первый блок кодирования или второй блок кодирования имеет субблоки, или первый блок кодирования или второй блок кодирования имеет инструменты субблока), в котором первый блок кодирования имеет размер блока M × N или N × M второй блок кодирования имеет размер L × T или T × L, а N или T является четным целым числом 2, превышающее пороговое значение (например, 8 или 16 и т. д.);
На втором этапе 1002 определяется, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного длинного фильтра или асимметричного отводного фильтра); другими словами, определяется, выполняется ли удаление блочности края блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра (то есть, более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра);
На третьем этапе 1003 применяется первый фильтр (более длинный отводной фильтр, или асимметричный фильтр, или асимметричный отводной фильтр, или асимметричный более длинный отводной фильтр) к значениям выборок (то есть, входным пикселям) вблизи края блока между первым блоком кодирования и вторым блоком кодирования, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения первого фильтра, в котором в случае, когда первый блок кодирования имеет субблоки (или первый блок кодирования имеет инструменты субблока, первый блок кодирования является текущим блоком, и второй блок кодирования является соседним блоком текущего блока), модифицируется не более число МА значений выборок первого блока кодирования, смежного (т. е. перпендикулярного) краю блока на строку и модифицируется не более число МВ значений выборок второго блока кодирования, смежного (т. е. перпендикулярного) краю блока на строку; или, в случае, когда второй блок кодирования имеет субблоки (или второй блок кодирования имеет инструменты субблока, второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока), модифицируется не более число МА значений выборок второго блока кодирования, смежных (т. е. перпендикулярных) краю блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежных (т. е. перпендикулярных) краю блока на строки, MA ≠ MB, в частности, MA <MB, например MA <MB = 7.
Например, MA = 3 и MB = 7,
MA = 4 и MB = 7, или
MA = 5 и MB = 7.
Можно понять, что в сценарии, в котором текущий блок имеет инструменты субблока, MA и MB могут определяться на основании размера блока, другими словами, MA и MB зависят от размера блока соответствующего блока. В способе реализации для больших блоков, то есть, размера блока > = 32, максимальное количество модифицированных выборок может составлять 7 (соответствует длинному фильтру).
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.
В последующем описании может быть сделана ссылка на ранее описанные подробности способа удаления блочности и повторно не приводятся.
Фиг. 11A является блок-схемой алгоритма, иллюстрирующей другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 7, 8).
На фиг. 11A показан другой вариант способа удаления блочности.
n
На первом этапе 1101 определяются края между блоками, в котором края между блоками содержат край блока между первым блоком кодирования и вторым блоком кодирования и край субблока между субблоками первого блока кодирования или второго блока кодирования, в котором первый блок кодирования имеет размер M × N или N × M, второй блок кодирования имеет размер L × T или T × L, а N или T является четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т.д.);
На втором этапе 1102 определяется, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра или асимметричного длинного фильтра); другими словами, определяется, выполняется ли удаление блочности края блока между первым блоком кодирования и вторым блоком кодирования путем применения первого фильтра (более длинного отводного фильтра или асимметричного фильтра, или асимметричного отводного фильтра, или асимметричного длинного фильтра);
На втором этапе 1103 применяется третий фильтр к значениям выборок (то есть, входным пикселям) около края блока между первым блоком кодирования и вторым блоком кодирования, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования не должен фильтроваться путем применения первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного (т. е. перпендикулярно) краю блока на строку, и модифицируются не более число MB выборок значения второго блока кодирования, смежного (то есть, перпендикулярного) краю блока на строку, MA = MB, например, MA = MB = 4.
Можно понять, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.
Далее может быть сделана ссылка на ранее раскрытые подробности примерного способа удаления блочности и повторения опущены.
Фиг. 11B является блок-схемой алгоритма, иллюстрирующая другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 7, 8).
На фиг. 11B показан другой вариант способа удаления блочности.
n
На первом этапе 1121 определяются края между блоками, в котором края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер блока L × T или T × L, а N или T является четным целым числом 2 больше порогового значения (например, 8 или 16 и т. д.);
На втором этапе 1122 определяется, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не должен фильтроваться; другими словами, определяется, что край субблока между субблоками первого Р блока кодирования или второго Q блока кодирования не подвергается удалению блочности;
На третьем этапе 1123 применяется четвертый фильтр (например, нормальный более длинный отводной фильтр) к значениям выборок (то есть, входным пикселям) около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, в котором модифицируются число MA значений выборок первого блока кодирования, смежного (т. е. перпендикулярно) краю блока, и модифицируются число МВ значений выборок второго блока кодирования, смежного (т. е. перпендикулярно) краю блока, MA = MB = 7.
Очевидно, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации, и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.
Фиг.12 является блок-схемой алгоритма, иллюстрирующей другой примерный способ удаления блочности согласно описанным в настоящем изобретении технологиям (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг.7, 8, 10, 11A, 11B, 12 и фиг.15, 16).
На фиг. 12 показан другой вариант способа удаления блочности.
n
На первом этапе 1201 края между блоками, в котором определяются края между блоками содержат край блока между первым Р блоком кодирования и вторым Q блоком кодирования и край субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором первый Р блок кодирования имеет размер M × N или N × M, второй Q блок кодирования имеет размер L × T или T × L, например, N или T быть четным целым числом 2, превышающим пороговое значение (например, 8 или 16 и т. д.);
На втором этапе 1202 определяется, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования и первый набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования должны быть отфильтрованы, и второй набор краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования не должен фильтроваться; и
На третьем этапе 1203 выполняется фильтрация удаления блочности при значениях выборок рядом с краем блока между первым Р блоком кодирования и вторым Q блоком кодирования, и выполняется фильтрация удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого блока кодирования P и/или второго Q блока кодирования.
Очевидно, что первый блок кодирования является текущим блоком и второй блок кодирования является соседним блоком текущего блока, или второй блок кодирования является текущим блоком и первый блок кодирования является соседним блоком текущего блока.
Входные пиксели соответствуют значениям пикселей или значениям выборок, используемым для фильтрации и выходные пиксели соответствуют модифицированным значениям выборок. Следует отметить, что входные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока. Кроме того, выходные пиксели могут быть последовательными пикселями, перпендикулярными краю блока, начиная с края блока.
Как показано на фиг.16, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) множество краев субблока, за исключением края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и последний край субблока является ближайшим к другому из первого Р блока кодирования и второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования состоит из края первого субблока и края последнего субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором край первого субблока находится ближе всего к одному из первого Р блока кодирования и второго Q блока кодирования, и край последнего субблока находится ближе всего к другому из первого Р блока кодирования и второго Q блока кодирования.
На втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:
применение пятого фильтра к значениям выборок около каждого из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируются не более число NA значений выборок на одной стороне соответствующего блока из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, и модифицируются не более число NB значений выборок на другой стороне соответствующего одного из первого набора субблока края, NA = NB = 4.
Если внутри первого Р блока кодирования отсутствуют края субблока между субблоками, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования, на втором этапе 1203 этап выполнения фильтрации удаления блочности по значениям выборок рядом с каждым из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения, когда принято решение применять пятый фильтр для HEVC фильтрации удаления блочности:
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i = 0, 1, j = 0, 1..3.
Как показано на фиг.15, первый набор краев субблока между субблоками внутри первого блока кодирования и/или второго блока кодирования содержит (состоит из) один или более краев субблока, которые перекрываются с сеткой 16 x 16 между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования;
второй набор краев субблока между субблоками внутри первого или второго блока кодирования содержит (состоит из) один или более краев субблока, за исключением краев субблока, которые перекрываются сеткой 16 x 16 между субблоками внутри первого Р блок кодирования и/или второго Q блока кодирования.
Соответственно, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками первого Р блока кодирования и/или второго Q блока кодирования содержит:
применение шестого фильтра к значениям выборок рядом с каждым из первого набора краев субблока внутри первого Р блока кодирования и/или второго Q блока кодирования, в котором модифицируется не более число NA' значений выборок на одной стороне соответствующего одного из первого набора краев субблока внутри первого Р блока кодирования или второго Q блока кодирования, и модифицируется не более число NB' значений выборок на другой стороне соответствующего одного из первого набора субблока края, NA'= NB' = 7.
Если внутри первого Р блока кодирования отсутствует край субблока между субблоками, и при наличии множества краев субблока между субблоками внутри второго Q блока кодирования (например, если первый Р блок кодирования не имеет субблоков, но второй Q блок кодирования имеет субблоки),
Соответственно, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования содержит:
определение отфильтрованного значения выборки соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
В случае наличия множества краев субблока между субблоками внутри первого Р блока кодирования и наличия множества краев субблока между субблоками внутри второго Q блока кодирования, на втором этапе 1203 этап выполнения фильтрации удаления блочности при значениях выборок около каждого из первого набора краев субблока между субблоками внутри первого Р блока кодирования и/или второго Q блока кодирования, содержит:
определение отфильтрованного значения  и  соответствующей выборки текущей строки или столбца выборок на соответствующей стороне вертикального или горизонтального края субблока внутри второго Q блока кодирования и первого Р блока кодирования соответственно на основании следующего уравнения:
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
; и/или
;
i
j
в котором p представляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Способ удаления блочности согласно вариантам осуществления дополнительно содержит:
определение, следует ли фильтровать край блока между первым Р блоком кодирования и вторым Q блоком кодирования, применяя первый фильтр; и первый фильтр применяется к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определено, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования должен быть фильтрован с применением первого фильтра, в котором модифицируется не более число MA значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежного с краем блока, на каждую строку; или модифицируется не более число МА значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число МВ значений выборок первого блока кодирования, смежного с краем блока на строку, MA ≠ MB , в частности MA <MB, например, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.
В случае при наличии множества краев субблока между субблоками внутри первого блока кодирования и при наличии множества краев субблока между субблоками внутри второго блока кодирования, способ дополнительно содержит:
определение, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра; и второй фильтр применяется к значениям выборок около края блока, когда определено, что край блока между первым блоком кодирования и вторым блоком кодирования должен быть отфильтрован путем применения второго фильтра, в котором модифицируются число MA' выборки значения первого блока кодирования, смежного с краем блока, и модифицируются число МВ' значений выборок второго блока кодирования, смежного с краем блока, MA' = 3 и MB '= 3.
Когда во втором блоке кодирования отсутствует край субблока между субблоками, модифицируется не более числа MA значений выборок первого блока кодирования, примыкающего к краю блока на строку, и модифицируется не более число MB значений выборок второго блока кодирования, смежный с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7;
или
когда внутри первого блока кодирования отсутствует край субблока между субблоками, модифицируется не более число MA значений выборок второго блока кодирования, смежного с краем блока на строку, и модифицируется не более число MB значений выборок первого блок кодирования, смежный с краем блока на строку, MA = 3 и MB = 7, или MA = 4 и MB = 7, или MA = 5 и MB = 7.
Способ, дополнительно содержащий: определение, должен ли край блока между первым блоком кодирования и вторым блоком кодирования быть отфильтрован путем применения первого фильтра на основании
- не более числа DA значений выборок первого блока кодирования, смежного с краем блока, в качестве значений решения первого фильтра, DA = 4 и
- не более числа DB значений выборок второго блока кодирования, смежного с краем блока, в качестве значений решения второго фильтра, DB = 4.
При наличии множества краев субблока между субблоками внутри второго Q блока кодирования, способ дополнительно содержит: определение, удовлетворяется ли первое условие, определенное следующим первым уравнением:
i
j
в котором β обозначает параметр порогового значения и q представляют значения выборок второго Q блока кодирования, i = 0,1,2,3 и p представляют значения выборок первого Р блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
При наличии внутри первого Р блока кодирования множества краев субблока между субблоками, способ дополнительно содержит: определение, удовлетворяется ли второе условие, определенное следующим вторым уравнением:
i
j
в котором β обозначает параметр порогового значения и p представляет значения выборок первого Р блока кодирования, i = 0,1,2,3 и q представляют значения выборок второго Q блока кодирования, j = 0, 3, 4, 7 или j = 0, 2, 3, 5.
Параметр β порогового значения определяется на основании параметра квантования, QP, ассоциированного с размером шага квантования множества выборок, или
параметр β порогового значения определяется на основании параметра квантования, QP, с использованием справочной таблицы.
Если край субблока между субблоками отсутствует внутри первого Р блока кодирования, и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения выборки первой выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:
;
или
;
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержат:
определение отфильтрованного значения выборки второй выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:
;
или
;
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения выборки третьей выборки текущей строки или столбца выборок справа или снизу от вертикального или горизонтального края между первым Р блоком кодирования и вторым Q блоком кодирования на основании следующего уравнения:
;
или
;
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
При отсутствии края субблока между субблоками внутри первого Р блока кодирования и при наличии края субблока между субблоками внутри второго Q блока кодирования, этап выполнения фильтрации удаления блочности при значениях выборок вблизи края блока между первым Р блоком кодирования и вторым Q блоком кодирования содержит:
определение отфильтрованного значения  выборки соответствующей выборки текущей строки или столбца выборок слева или вверху от вертикального или горизонтального края между первым и вторым блоком кодирования на основании следующего уравнения:
,
,
,
,
,
,
,
i
j
в котором pпредставляет соответствующее значение выборки части текущей строки или столбца выборок первого Р блока кодирования и q представляет соответствующее значение выборки части текущей строки или столбца выборок второго Q блока кодирования, i, j = 0, 1..7.
Способ удаления блочности согласно вариантам осуществления дополнительно содержит:
определение, следует ли фильтровать край блока между первым Р блоком кодирования и вторым Q блоком кодирования, применяя первый фильтр; и третий фильтр применяется к значениям выборок около края блока между первым Р блоком кодирования и вторым Q блоком кодирования, когда определяется, что край блока между первым Р блоком кодирования и вторым Q блоком кодирования не должен быть отфильтрован путем применения первого фильтра, в котором модифицируются не более число МА значений выборок первого блока кодирования, смежного с краем блока на строку, и модифицируются не более число МВ значений выборок второго блока кодирования, смежного с краем блока на строку, MA = MB = 4.
Очевидно, что первый фильтр, второй фильтр, третий фильтр, четвертый фильтр, пятый фильтр и шестой фильтр соответствуют различной фильтрации края блока. Другими словами, все различные фильтры используют в качестве входных и выходных выборок: выборки, которые перпендикулярны и примыкают к заданному краю блока. Более того, разные фильтры используют разное количество максимальных выборок фильтрации в качестве входных данных и также модифицируют разное количество максимальных выборок в качестве выходных данных фильтра.
Фиг.13 является упрощенной блок-схемой устройства 1300, которое может использоваться как одно или оба устройство 310 источника и устройство 320 назначения по фиг.3 согласно примерному варианту осуществления. Устройство 1300 может реализовывать способы настоящего изобретения. Устройство 1300 может быть реализовано в форме вычислительной системы, включающей в себя несколько вычислительных устройств, или в форме одного вычислительного устройства, например, мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера и т.д.
Процессор 1302 устройства 1300 может быть центральным процессором. В качестве альтернативы процессор 1302 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например процессором 1302, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
В настоящем изобретении память 1304 в устройстве 1300 может быть устройством постоянной памяти (ROM) или устройством оперативной памяти (RAM). В качестве памяти 1304 может использоваться любой другой подходящий тип запоминающего устройства. Память 1304 может использоваться для хранения кода и/или данных 1306, к которым обращается процессор 1302 по шине 1312. Память 1304 дополнительно может использоваться для хранения операционной системы 1308 и прикладных программ 1310. Прикладные программы 1310 могут включать в себя, по меньшей мере, одну программу, которая позволяет процессору 1302 выполнять описанные в настоящем документе способы. Например, прикладные программы 1310 могут включать в себя приложения с 1 по N и дополнительно включать в себя приложение кодирования видео, которое выполняет описанные в настоящем документе способы. Устройство 1300 также может включать в себя дополнительную память в виде вторичного хранилища 1314, которое может, например, быть картой памяти, используемой с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать значительный объем информации, они могут быть сохранены полностью или частично в хранилище 1314 и загружены в память 1304 по мере необходимости для обработки.
Устройство 1300 также может включать в себя одно или более устройств вывода, таких как дисплей 1318. Дисплей 1318 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным распознавать сенсорные вводы. Дисплей 1318 может быть соединен с процессором 1302 через шину 1312. В дополнение к дисплею 1318 или в качестве альтернативы ему могут быть предоставлены другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 1300. Когда устройство вывода является или включает в себя дисплей, дисплей может быть реализован различными способами, в том числе с помощью жидкокристаллического дисплея (LCD), дисплея с электронно-лучевой трубкой (CRT), плазменного дисплея или дисплея на светоизлучающих диодах (LED), например, дисплеем на органических светодиодах (OLED).
Устройство 1300 также может включать в себя или взаимодействовать с устройством 1320 формирования изображений, например, камеру, или любое другое устройство 1320 формирования изображений, существующее используемому в настоящее время или разработанному в будущем, которое может воспринимать изображение, такое как изображение пользовательского операционного устройства 1300. Устройство 1320 формирования изображения может быть расположено так, чтобы оно было направлено к устройству 1300 управления пользователя. В примере положение и оптическая ось устройства 1320 формирования изображения могут быть сконфигурированы так, что поле зрения включает в себя область, которая непосредственно расположена рядом с дисплеем 1318 и с которого виден дисплей 1318.
Устройство 1300 также может включать в себя устройство 1322 обнаружения звука, например, микрофон, или любое другое устройство обнаружения звука, существующее в настоящее время или разработанное в будущем, которое может воспринимать звуки рядом с устройством 1300, или взаимодействовать с ним. Устройство 1322 обнаружения звука может быть расположено таким образом чтобы быть направленным на устройство 1300 управления пользователя и может быть выполнено с возможностью принимать звуки, например, речь или другие звуки, издаваемые пользователем, когда пользователь управляет устройством 1300.
Хотя фиг.13 изображает процессор 1302 и память 1304 устройства 1300 как интегрированные в единое устройство, могут использоваться другие конфигурации. Операции процессора 1302 могут быть распределены между несколькими машинами (каждая машина имеет один или более процессоров), которые могут быть соединены напрямую или через локальную область или другую сеть. Память 1304 может быть распределена между несколькими машинами, такими как сетевая память или память на множестве машин, выполняющих операции устройства 1300. Хотя здесь изображена одна шина, шина 1312 устройства 1300 может содержать несколько шин. Кроме того, вторичное хранилище 1314 может быть напрямую соединено с другими компонентами устройства 1300 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или более блоков, таких как несколько карт памяти. Таким образом, устройство 1300 может быть реализовано в широком разнообразии конфигураций.
Фиг.14 является схемой примерного устройства 1400 кодирования для кодирования видео согласно варианту осуществления настоящего изобретения. Устройство 1400 кодирования выполнено с возможностью реализации раскрытых вариантов осуществления, как описано в настоящем документе. В варианте осуществления устройство 1400 кодирования может быть декодером, таким как видеодекодер 200 по фиг.2 или кодер, такой как видеокодер 100 по фиг.1. В варианте осуществления устройство 1400 кодирования может быть одним или несколькими компонентами видеодекодера 200 по фиг.2 или видеокодера 100 по фиг.1, как описано выше.
Устройство 1400 кодирования содержит входные порты 1420 и блоки 1410 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 1430 для обработки данных; блоки 1440 передатчика (Tx) и выходные порты 1450 для передачи данных; память 1460 для хранения данных. Устройство 1400 кодирования может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 1420, блокам 1410 приемника, блокам 1440 передатчика и выходным портам 1450 для вывода или ввода оптических или электрических сигналов. В некоторых примерах устройство 1400 кодирования также может включать в себя беспроводные передатчики и/или приемники.
Процессор 1430 реализован посредством аппаратного и программного обеспечения. Процессор 1430 может быть реализован как одна или более микросхем CPU, ядер (например, как многоядерный процессор), программируемых вентильных матриц (FPGA), специализированных интегральных схем (ASIC) и процессоров цифровых сигналов (DSP). Процессор 1430 соединен с входными портами 1420, блоками 1410 приемника, блоками 1440 передатчика, выходными портами 1450 и памятью 1460. Процессор 1430 содержит модуль 1414 кодирования. Модуль 1414 кодирования реализует раскрытые, описанные выше варианты осуществления. Например, модуль 1414 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использованием модуля 1414 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1400 кодирования и обеспечивает преобразование устройства 1400 кодирования в другое состояние. В качестве альтернативы модуль 1414 кодирования реализован как инструкции, хранящиеся в памяти 1460 и выполняемые процессором 1430 (например, как компьютерный программный продукт, хранящийся на постоянном носителе данных).
Память 1460 содержит один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных с переполнением, для хранения программ, когда такие программы выбраны для выполнения, и для хранения инструкций и данных, которые считываются. во время выполнения программы. Память 1460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), троичное запоминающее устройство с адресацией по содержимому (TCAM) и/или статическое запоминающее устройство с произвольным доступом (SRAM). Устройство 1400 кодирования может также иметь устройство ввода/вывода (I/O) для взаимодействия с конечным пользователем. Например, устройство 1400 кодирования может включать в себя дисплей, такой как монитор, для визуального вывода, динамики для вывода звука, а также клавиатуру/мышь /шаровой манипулятор и т.д. для пользовательского ввода.
Настоящее изобретение было описано вместе с различными вариантами осуществления. Однако другие варианты раскрытых вариантов осуществления могут быть поняты и осуществлены специалистами в данной области техники при практическом применении заявленного изобретения на основании изучения чертежей, описания и прилагаемой формулы изобретения. В формуле изобретения слово «содержащий» не исключает других элементов или этапов, и неопределенный артикль «а» или «an» не исключает множественности. Один процессор или другое устройство может выполнять функции нескольких элементов, указанных в формуле изобретения. Простой факт, что определенные меры изложены в обычно различных зависимых пунктах формулы изобретения, не означает, что комбинация этих мер не может быть использована с выгодой. Компьютерная программа может храниться/распространяться на подходящем носителе, таком как оптический носитель данных или твердотельный носитель, поставляемый вместе с другим оборудованием или как его часть, но также может распространяться в других формах, например, через интернет или другие системы проводной или беспроводной связи.
В тексте настоящего документа, в котором варианты осуществления и описание относятся к термину «память», термин «память» следует понимать и/или должен содержать [список всех возможных запоминающих устройств] магнитный диск, оптический диск, постоянное запоминающее устройство (Read-Only Memory, ROM) или оперативное запоминающее устройство (Random Access Memory, RAM),…, если явно не указано иное.
В тексте настоящего документа, в котором варианты осуществления и описание относятся к термину «сеть», термин «сеть» следует понимать и/или должен содержать [список всех возможных сетей]…, если явно не указано иное.
Для специалиста в данной области техники очевидно, что «блоки» («units») на различных чертежах (способ и устройство) представляют или описывают функциональные возможности вариантов осуществления изобретения (а не обязательно отдельные «блоки» в аппаратном или программном обеспечении) и таким образом описывают в равной степени функции или признаки вариантов осуществления устройства, а также варианты осуществления способа (блок = этапу).
Терминология «блоков» используется просто для иллюстративных целей функциональных возможностей вариантов осуществления кодера/декодера и не предназначена для ограничения настоящего изобретения.
В нескольких вариантах осуществления, представленных в настоящем изобретении, следует понимать, что раскрытые система, устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является просто примерным. Например, разделение на блоки представляет собой просто разделение логических функций и может быть другим разделением в реальной реализации. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые функции могут игнорироваться или не выполняться. Дополнительно, отображаемые или обсуждаемые взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы с использованием некоторых интерфейсов. Непрямые связи или коммуникационные соединения между устройствами или блоками могут быть реализованы в электронной, механической или других формах.
Блоки, описанные как отдельные части, могут быть или не быть физически отдельными, и части, отображаемые как блоки, могут быть или не быть физическими блоками, могут быть расположены в одной позиции или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны в соответствии с фактическими потребностями для достижения целей решений вариантов осуществления.
Дополнительно, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый из блоков может использоваться отдельно физически, или два или более блоков объединены в один блок.
Варианты осуществления изобретения могут дополнительно содержать устройство, например, кодер и/или декодер, который содержит схему обработки, выполненную с возможностью выполнять любой из способов и/или процессов, описанных в данном документе.
Варианты осуществления могут быть реализованы как аппаратное обеспечение, встроенное программное обеспечение, программное обеспечение или любая их комбинация. Например, функциональные возможности кодера/кодирования или декодера/декодирования могут выполняться схемой обработки с или без встроенного программного обеспечения или программного обеспечения, например, процессор, микроконтроллер, цифровой сигнальный процессор (DSP), программируемая пользователем вентильная матрица (FPGA), специализированная интегральная схема (ASIC) и т.п.
Функциональные возможности кодера 100 (и соответствующего способа 100 кодирования) и/или декодера 200 (и соответствующего способа 200 декодирования) могут быть реализованы с помощью программных инструкций, сохраненных на машиночитаемом носителе. Программные инструкции при исполнении побуждают схему обработки, компьютер, процессор и т.п. выполнять этапы способов кодирования и/или декодирования. Машиночитаемый носитель может быть любым носителем, включающий в себя постоянный носитель данных, на котором хранится программа, например, диск Bluray, DVD, CD, USB (флэш-накопитель), жесткий диск, серверное хранилище, доступное через сеть и т. д.
Вариант осуществления изобретения содержит компьютерную программу, содержащую программный код для выполнения любого из способов, описанных в данном документе, при исполнении на компьютере.
Вариант осуществления изобретения содержит или является машиночитаемым носителем, содержащим программный код, который при исполнении процессором побуждает компьютерную систему выполнять любой из описанных в настоящем документе способов.
В одном или нескольких примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе и выполняться аппаратным процессором. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающий в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или более компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации способов, описанных в этом изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель данных.
В качестве примера, а не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие устройства магнитного хранения, флэш-память или любой другой носитель, который может использоваться для хранения необходимого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Дополнительно, любое соединение правильно называть машиночитаемым носителем данных. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и микроволновый сигнал, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и микроволновый сигнал необходимо рассматривать в качестве среды. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого представляют собой энергонезависимые материальные носители данных. Диск и диск, используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), дискету и диск Blu-ray, в котором диски обычно воспроизводят данные магнитным способом, и диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем машиночитаемых носителей.
Инструкции могут выполняться одним или несколькими процессорами, такими как один или более процессоров цифровых сигналов (DSPs), микропроцессоры общего назначения, специализированные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs) или другие эквивалентные интегральные или дискретные логические схемы. Соответственно, термин «процессор», используемый в настоящем описании, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных способов. Дополнительно, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Дополнительно, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.
Способы настоящего изобретения могут быть реализованы в большом количестве устройств или устройств, включающие в себя беспроводной телефон, интегральную схему (IC) или набор ICs (например, набор микросхем). В этом изобретении описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнять раскрытые технологии, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или обеспечены набором взаимодействующих аппаратных блоков, включающие в себя один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.
Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах, не выходя за рамки объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и настоящее изобретение не ограничиваться приведенными в настоящем документе деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
Дополнительно, способы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как дискретные или отдельные, могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами, не выходя за рамки объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или могут взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Специалисту в данной области техники очевидны другие примеры изменений, замен и модификаций, которые могут быть реализованы без отступления от сущности и объема настоящего изобретения.