RU2809841C2 - Способ и устройство для внутрикадрового предсказания с использованием линейной модели - Google Patents

Способ и устройство для внутрикадрового предсказания с использованием линейной модели Download PDF

Info

Publication number
RU2809841C2
RU2809841C2 RU2021127560A RU2021127560A RU2809841C2 RU 2809841 C2 RU2809841 C2 RU 2809841C2 RU 2021127560 A RU2021127560 A RU 2021127560A RU 2021127560 A RU2021127560 A RU 2021127560A RU 2809841 C2 RU2809841 C2 RU 2809841C2
Authority
RU
Russia
Prior art keywords
samples
luminance
block
chroma
sample
Prior art date
Application number
RU2021127560A
Other languages
English (en)
Other versions
RU2021127560A (ru
Inventor
Алексей Константинович Филиппов
Василий Алексеевич Руфицкий
Цзяньлэ Чэнь
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2021127560A publication Critical patent/RU2021127560A/ru
Application granted granted Critical
Publication of RU2809841C2 publication Critical patent/RU2809841C2/ru

Links

Abstract

Изобретение относится к средствам в области обработки изображений. Технический результат - улучшение внутрикадрового предсказания цветности с использованием межкомпонентного линейного моделирования. Определяют набор фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок. Получают выборки с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации. Определяют один или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, соответствующих эталонным выборкам с пониженной дискретизацией. Получают выборки предсказания блока цветности, соответствующего блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости, причем выбранные эталонные выборки яркости содержат по меньшей мере одни из: соседних выборок яркости, расположенных выше блока яркости и выбранных на основе L доступных эталонных выборок цветности, или соседних выборок яркости, оставшихся в блоке яркости и выбранных на основе L доступных эталонных выборок цветности. 7 н. и 18 з.п. ф-лы, 10 табл., 22 ил.

Description

Область техники, к которой относится изобретение
Варианты осуществления настоящего раскрытия относятся, в общем, к области обработки изображений и, в частности, к внутрикадровому предсказанию (например, внутрикадровому предсказанию цветности) с использованием межкомпонентного линейного моделирования (CCLM) и, в частности, к пространственной фильтрации, используемой в межкомпонентной линейном модели для внутрикадрового предсказания с различными форматами цветности.
Уровень техники
Кодирование видео (кодирование и декодирование видео) используется в широком диапазоне приложений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в режиме реального времени, таких как видеоразговор, видеоконференц-связь, DVD. и диски Blu-ray, системы сбора и редактирования содержания видео и записывающие видеокамеры приложений безопасности.
Объем видеоданных, необходимых для изображения даже относительно короткого видео, может быть значительным, что может привести к затруднениям в тех случаях, когда данные должны передаваться в потоковом режиме или иным образом по сети связи с ограниченной пропускной способностью. Таким образом, перед передачей по современным телекоммуникационным сетям видеоданные, как правило, сжимаются. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, так как ресурсы памяти могут быть ограничены. В источнике устройства сжатия видео часто используют программное обеспечение и/или аппаратные средства для кодирования видеоданных перед передачей или хранением, тем самым уменьшая объем данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в месте назначения устройством распаковки видео, которое декодирует видеоданные. При ограниченных сетевых ресурсах и постоянно растущих требованиях к более высокому качеству видео желательно использовать улучшенные технологии сжатия и распаковки, которые позволили бы повысить степень сжатия практически без потери качества изображения.
В частности, текущий кодер универсальной модели кодирования видео и тестирования (VTM) в основном поддерживает формат 4:2:0 цветности в качестве формата входного изображения. Сбой кодера VTM может произойти, когда входной формат цветности становится 4:4:4. Во избежание такой проблемы, крайне желателен и даже обязателен кодер, который поддерживает другие форматы цветности (например, 4:4:4 или 4:2:2) для самых разных приложений.
Раскрытие сущности изобретения
Принимая во внимание вышеупомянутые проблемы, в настоящем раскрытии предложена модификация процесса кодирования видео для поддержки множества форматов цветности. В частности, для повышения эффективности кодирования варианты осуществления настоящего приложения нацелены на предоставление устройства, кодера, декодера и соответствующих способов межкомпонентного предсказания для изображения, в которых набор фильтров понижающей дискретизации, применяемых во время предсказания, зависит от формата цветности, который может быть одним из многочисленных поддерживаемых форматов цветности.
Варианты осуществления определены признаками независимых пунктов формулы изобретения, и дополнительные преимущественные реализации вариантов осуществления - признаками зависимых пунктов формулы изобретения.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения, и другие варианты осуществления - в зависимых пунктах формулы изобретения.
Предмет изобретения, изложенный в независимых пунктах формулы изобретения, обеспечивает решение вышеупомянутых и других задач. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Согласно первому аспекту изобретения выполнен способ выполнения внутрикадрового предсказания с использованием линейной модели, который содержит:
определение набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок;
получение выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости (соседних с блоком яркости) с использованием соответствующих фильтров понижающей дискретизации из (выбранных из) набора фильтров понижающей дискретизации;
определение одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и (выбранных или доступных) эталонных выборок цветности, которые соответствуют эталонным выборкам с пониженной дискретизацией; и
получение выборок предсказания блока цветности, который соответствует блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.
Таким образом, выполнен улучшенный способ, позволяющий получить более точный сигнал предсказания цветности и уменьшить ошибки предсказания за счет выбора набора фильтров на основе информации о формате цветности. Техническим результатом меньшей ошибки предсказания является уменьшение остаточной энергии сигнала. Этот способ кодирования может использовать это уменьшение, чтобы уменьшить искажение восстановленного сигнала, уменьшить скорость передачи битов, которая требуется для кодирования остаточного сигнала, или уменьшить как искажение, так и скорость передачи битов. Эти полезные эффекты, достигаемые настоящим изобретением, улучшают значения общей эффективности сжатия способа кодирования, который используется в настоящем изобретении.
Следует отметить, что термин "блок", "блок кодирования" или "блок изображения" используется в настоящем раскрытии, который может применяться к единицам преобразования (TU), единицам предсказания (PU), единицам кодирования (CU) и т.д. В общем, в VVC единицы преобразования и единицы кодирования в основном выравниваются, за исключением нескольких сценариев, когда используется мозаика TU или преобразование подблоков (SBT). Можно понять, что в настоящем раскрытии термины "блок/блок изображения/блок кодирования/блок преобразования" и "размер блока/размер блока преобразования" могут использоваться взаимозаменяемо. В настоящем раскрытии термины "выборка/пиксель" могут использоваться взаимозаменяемо.
В возможной форме реализации способа согласно по существу первому аспекту, определение набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) на основе информации формата цветности содержит:
определение информации о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях (таких как переменные SubWidthC и SubHeightC) на основе информации о формате цветности; и
определение набора фильтров понижающей дискретизации на основе информации о коэффициенте субдискретизации (такой как переменные SubWidthC и SubHeightC).
В возможной форме реализации способа по существу согласно любой предыдущей реализации первого аспекта или первого аспекта, для формата цветности, представляющего собой формат 4:2:0 цветности, первый набор фильтров понижающей дискретизации (набор коэффициентов фильтра понижающей дискретизации) используется для блока яркости текущего блока;
для формата цветности, представляющего собой формат 4:2:2 цветности, второй набор фильтров понижающей дискретизации (набор коэффициентов фильтра понижающей дискретизации) используется для блока яркости текущего блока; или для формата цветности, представляющего собой формат 4:4:4 цветности, третий набор фильтров понижающей дискретизации (то есть фильтр с коэффициентом [1], то есть как обходной фильтр) используется для блока яркости текущего блока.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, определение набора фильтров понижающей дискретизации на основе информации о коэффициенте субдискретизации содержит одно или несколько из:
когда переменные SubWidthC=2 и SubHeightC=2, определения первого набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока;
когда SubWidthC=2 и SubHeightC=1, определения второго набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока; или
когда SubWidthC=1 и SubHeightC=1, определения третьего набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке,
получение выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации содержит:
получение выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости путем применения первого фильтра понижающей дискретизации к первому набору восстановленных выборок яркости, причем первый набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости (выборки яркости с пониженной дискретизацией); и
получение эталонной выборки яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости путем применения первого фильтра понижающей дискретизации ко второму набору восстановленных выборок яркости, причем второй набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости (выборки яркости с пониженной дискретизацией);
где первый фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, когда используется формат 4:2:2 цветности (SubWidthC=2 и SubHeightC=1), первый фильтр понижающей дискретизации является одномерным неотделимым фильтром; или
Когда используется формат 4:2:0 цветности (SubWidthC=2 и SubHeightC=2), первый фильтр понижающей дискретизации является двухмерным неотделимым фильтром.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, когда используется формат 4:2:2 цветности (SubWidthC=2 и SubHeightC=1), первый фильтр понижающей дискретизации (одномерный неотделимый фильтр F2, изложенный в стандарте) представлен как [1,2, 1] или , где ненулевые коэффициенты в позициях, которые являются смежными по горизонтали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, если используется формат 4:2:0 цветности (SubWidthC=2 и SubHeightC=2), первый фильтр понижающей дискретизации (двухмерный неотделяемый фильтр F3, изложенный в стандарте VVC) представлен как , где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "4" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке,
получение выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации, содержит:
получение выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости путем применения второго фильтра понижающей дискретизации к третьему набору восстановленных выборок яркости, причем третий набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости (выборки яркости с пониженной дискретизацией); и
получение эталонной выборки яркости с пониженной дискретизацией по меньшей мере одной выбранной эталонной выборки яркости путем применения вторых фильтров понижающей дискретизации к четвертому набору восстановленных выборок яркости, причем четвертый набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости (выборки яркости с пониженной дискретизацией);
где второй фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, если используется формат 4:2:2 цветности (SubWidthC=2 и SubHeightC=1), второй фильтр понижающей дискретизации является одномерным неотделимым фильтром; или, если используется формат 4:2:0 цветности (SubWidthC=2 и SubHeightC=2), второй фильтр понижающей дискретизации является двухмерным неотделимым фильтром.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, если используется формат 4:2:2 цветности (SubWidthC=2 и SubHeightC=1), второй фильтр понижающей дискретизации (одномерный неотделимый фильтр F1, F2, изложенный в стандарте) представлен как [2, 0] или [1,2, 1] или , где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости).
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, если используется формат 4:2:0 цветности (SubWidthC=2 и SubHeightC=2), второй фильтр понижающей дискретизации (двухмерный неотделимый фильтр F4, изложенный в стандарте VVC) представлен как , где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любое из следующего:
- тип2 выборки цветности или
- тип 4 выборки цветности.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любое из следующего:
- тип 0 выборки цветности,
- тип 1 выборки цветности,
- тип 3 выборки цветности или
- тип 5 выборки цветности.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, в котором набор фильтров понижающей дискретизации определяется следующим образом:
если формат 4:4:4 цветности, используется обходной фильтр; в противном случае набор фильтров {F2, F3, F5, F6} определяется следующим образом:
F3[0]=1, F3[1]=2, F3[2]=1
F5[ i ][ j ]=F6[ i ][ j ]=0, где i=0..2, j=0..2
Если форматом цветности является формат 4:2:0 цветности,
F5[0][1]=1, F5[1][1]=4, F5[2][1]=1, F5[1][0]=1, F5[1][2]=1
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
Если форматом цветности является формат 4:2:2 цветности,
F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0.
Как указано выше, фильтры для форматов 4:2:0 и 4:2:2 цветности позволяют минимизировать сложность вычислений за счет минимального доступа к соседним выборкам. Таким образом, это позволяет обеспечить желаемые спектральные характеристики и эффект сглаживания. Кроме того, это позволяет специфицировать процесс фильтрации яркости для случая, когда компонент цветности не подвергается субдискретизации.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, набор фильтров понижающей дискретизации определяется следующим образом:
Если по меньшей мере первое условие, включающее в себя SubWidthC==1, и SubHeightC==1, не выполняется, набор фильтров {F2, F3, F5, F6} определяется следующим образом:
F3[0]=1, F3[1]=2, F3[2]=1
F5[ i ][ j ]=F6[ i ][ j ]=0, где i=0..2, j=0..2
Если выполняется по меньшей мере второе условие, где второе условие включает в себя SubWidthC==2, и SubHeightC==2,
F5[0][1]=1, F5[1][1]=4, F5[2][1]=1, F5[1][0]=1, F5[1][2]=1
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
В противном случае,
F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0.
Как указано выше, фильтры для форматов 4:2:0 и 4:2:2 цветности позволяют минимизировать сложность вычислений за счет минимального доступа к соседним выборкам. Таким образом, это позволяет обеспечить желаемые спектральные характеристики и эффект сглаживания.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, выбранные эталонные выборки яркости содержат по меньшей мере одно из:
соседних выборок яркости, которые находятся выше блока яркости и которые выбираются на основе L доступных эталонных выборок цветности, или
соседних выборок яркости, которые остаются в блоке яркости и которые выбираются на основе L доступных эталонных выборок цветности.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, позиции доступных эталонных выборок цветности определяются как:
S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда применяется режим LM, и доступны соседние выборки цветности, которые находятся как выше, так и слева;
S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A, или доступны только те соседние выборки цветности, которые находятся выше; или
S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8], когда применяется режим LM-L, или доступны только левые соседние выборки;
где блок цветности имеет размер W×H, и W’ и H’ заданы как
W’=W, H’=H, когда применяется режим LM;
W’=W+H, когда применяется режим LM-А;
H’=H+W, когда применяется режим LM-L.
В возможной форме реализации способа согласно по существу любой предыдущей реализации первого аспекта или первого аспекта, определение одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости и эталонных выборок цветности, которые соответствуют эталонным выборкам с пониженной дискретизацией, содержит:
определение максимального значения яркости и минимального значения яркости на основе эталонных выборок с пониженной дискретизацией;
получение первого значения цветности на основе по меньшей мере частично одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с максимальным значением яркости;
получение второго значения цветности на основе по меньшей мере частично одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с минимальным значением яркости;
вычисление одного или более коэффициентов линейной модели на основе первого значения цветности, второго значения цветности, максимального значения яркости и минимального значения яркости.
Согласно второму аспекту изобретения выполнен способ определения одного или нескольких фильтров понижающей дискретизации (фильтр понижающей дискретизации яркости), используемых в межкомпонентном предсказании текущего блока изображения видеоданных, содержащий:
определение коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности текущего изображения, которому принадлежит текущий блок изображения;
когда значения коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях равны первому значению, определение первого набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока;
когда значение коэффициента масштабирования цветности в горизонтальном направлении равно первому значению, и значение коэффициента масштабирования цветности в вертикальном направлении равно второму значению, определение второго набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока; или
когда значения коэффициентов масштабирования цветности в горизонтальном и вертикальном направлениях равны второму значению, определение третьего набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока.
Согласно третьему аспекту изобретения выполнен способ определения одного или нескольких фильтров понижающей дискретизации яркости, используемых при межкомпонентном предсказанияии текущего блока видеоданных, причем способ содержит:
определение формата цветности изображения, которому принадлежит текущий блок;
когда форматом цветности является формат 4:2:0 цветности, определение первого набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации), который должен использоваться для блока яркости текущего блока;
когда форматом цветности является формат 4:2:2 цветности, определение второго набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации), который должен использоваться для блока яркости текущего блока;
когда форматом цветности является формат 4:4:4 цветности, определение третьего набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации), который должен использоваться для блока яркости текущего блока.
Согласно четвертому аспекту изобретения выполнено устройство для внутрикадрового предсказания с использованием линейной модели, содержащее:
блок определения, выполненный с возможностью определения набора фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок;
блок фильтрации, выполненный с возможностью получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации;
блок получения линейной модели, выполненный с возможностью определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, которые соответствуют эталонным выборкам с пониженной дискретизацией; и
блок обработки предсказания, выполненный с возможностью получения выборок предсказания блока цветности, который соответствует блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.
Следует отметить, что термин "блок", "блок кодирования" или "блок изображения" используется в настоящем раскрытии, который может применяться к единицам преобразования (TU), единицам предсказания (PU), единицам кодирования (CU) и т.д. В общем, в VVC единицы преобразования и единицы кодирования в основном выровнены, за исключением нескольких сценариев, когда используется мозаика TU или преобразование подблоков (SBT). Можно понять, что термины "блок/блок изображения/блок кодирования/блок преобразования" и "размер блока/размер блока преобразования" могут использоваться взаимозаменяемо в настоящем раскрытии. В настоящем раскрытии термины "выборка/пиксель" могут использоваться взаимозаменяемо.
Таким образом, выполнено улучшенное устройство, обеспечивающее более точный сигнал предсказания цветности и уменьшение ошибок предсказания за счет выбора набора фильтров на основе информации о формате цветности. Техническим результатом уменьшения ошибки предсказания является уменьшение остаточной энергии сигнала. Этот способ кодирования может использовать это уменьшение для того, чтобы уменьшить искажение восстановленного сигнала, уменьшить скорость передачи битов, которая требуется для кодирования остаточного сигнала, или уменьшить как искажение, так и скорость передачи битов. Эти полезные эффекты, достигаемые настоящим изобретением, улучшают общую эффективность сжатия способа кодирования, который используется в настоящем изобретении.
В возможной форме реализации устройства согласно по существу четвертому аспекту, блок определения выполнен с возможностью:
определения информации о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях на основе информации о формате цветности; и
определения набора фильтров с понижающей дискретизацией на основе информации о коэффициенте субдискретизации.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта,
для формата цветности, представляющего собой формат 4:2:0 цветности, первый набор фильтров понижающей дискретизации используется для блока яркости текущего блока;
для формата цветности, представляющего собой формат 4:2:2 цветности, второй набор фильтров понижающей дискретизации используется для блока яркости текущего блока; или
для формата цветности, представляющего собой формат 4:4:4 цветности, третий набор фильтров понижающей дискретизации используется для блока яркости текущего блока.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, блок определения выполнен с возможностью:
когда переменные SubWidthC=2, и SubHeightC=2, определение первого набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока;
когда SubWidthC=2, и SubHeightC=1, определение второго набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока; или
когда SubWidthC=1 и SubHeightC=1, определение третьего набора фильтров понижающей дискретизации (набора коэффициентов фильтра понижающей дискретизации) для блока яркости текущего блока.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке,
Блок фильтрации выполнен с возможностью: получения выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости путем применения первого фильтра понижающей дискретизации к первому набору восстановленных выборок яркости, причем первый набор восстановленных выборок яркости выборки содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости; и
получения эталонной выборки яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости путем применения первого фильтра понижающей дискретизации ко второму набору восстановленных выборок яркости, причем второй набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости;
где первый фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, когда используется формат 4:2:2 цветности (SubWidthC=2, и SubHeightC=1), первый фильтр понижающей дискретизации является одномерным неотделимым фильтром; или
Когда используется формат 4:2:0 цветности (SubWidthC=2, и SubHeightC=2), первый фильтр понижающей дискретизации является двухмерным неотделимым фильтром.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, когда используется формат 4:2:2 цветности (SubWidthC=2, и SubHeightC=1), первый фильтр понижающей дискретизации (одномерный неотделимый фильтр F2, изложенный в стандарте) представлен как [1,2, 1] или , где ненулевые коэффициенты в позициях, которые являются смежными по горизонтали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, если используется формат 4:2:0 цветности (SubWidthC=2, и SubHeightC=2), первый фильтр понижающей дискретизации (двухмерный неотделимый фильтр F3, изложенный в стандарте VVC) представлен как , где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "4" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке,
блок фильтрации выполнен с возможностью: получения выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости путем применения второго фильтра понижающей дискретизации к третьему набору восстановленных выборок яркости, причем третий набор восстановленных выборок яркости выборки содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости; и
получения эталонной выборки яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости путем применения вторых фильтров понижающей дискретизации к четвертому набору восстановленных выборок яркости, причем четвертый набор восстановленных выборок яркости содержит: восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости;
где второй фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, если используется формат 4:2:2 цветности (SubWidthC=2, и SubHeightC=1), второй фильтр понижающей дискретизации является одномерным неотделимым фильтром; или
Если используется формат 4:2:0 цветности (SubWidthC=2, и SubHeightC=2), второй фильтр понижающей дискретизации является двухмерным неотделимым фильтром.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, если используется формат 4:2:2 цветности (SubWidthC=2, и SubHeightC=1), второй фильтр понижающей дискретизации (одномерный неотделимый фильтр F1, F2, изложенный в стандарте) представлен как [2, 0] или [1,2, 1] или где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости).
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, если используется формат 4:2:0 цветности (SubWidthC=2, и SubHeightC=2), второй фильтр понижающей дискретизации (двухмерный неотделимый фильтр F4, изложенный в стандарте VVC) представлен как , где ненулевые коэффициенты находятся в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, при этом центральная позиция с коэффициентом "2" соответствует позиции фильтрованной восстановленной выборки яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любое из следующего:
- тип2 выборки цветности или
- тип 4 выборки цветности.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, случай, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке, возникает тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любое из следующего:
- тип0выборки цветности,
- тип1выборки цветности,
- тип 3 выборки цветности или
- тип 5 выборки цветност.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, блок определения выполнен с возможностью определения набора фильтров понижающей дискретизации:
если форматом цветности является формат 4:4:4 цветности, используется обходной фильтр; в противном случае набор фильтров {F2, F3, F5, F6} определяется следующим образом:
F3[0]=1, F3[1]=2, F3[2]=1
F5[ i ][ j ]=F6[ i ][ j ]=0, где i=0..2, j=0..2
Если форматом цветности является формат 4:2:0 цветности,
F5[0][1]=1, F5[1][1]=4, F5[2][1]=1, F5[1][0]=1, F5[1][2]=1
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
Если форматом цветности является формат 4:2:2 цветности,
F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, блок определения выполнен с возможностью определения набора фильтров {F2, F3, F5, F6} следующим образом:
F3[0]=1, F3[1]=2, F3[2]=1
F5[ i ][ j ]=F6[ i ][ j ]=0, где i=0..2, j=0..2
где, если выполняется по меньшей мере второе условие, второе условие включает в себя SubWidthC==2, и SubHeightC==2,
F5[0][1]=1, F5[1][1]=4, F5[2][1]=1, F5[1][0]=1, F5[1][2]=1
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
В противном случае,
F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, выбранные эталонные выборки яркости содержат по меньшей мере одно из:
соседних выборок яркости, которые находятся выше блока яркости и которые выбираются на основе L доступных эталонных выборок цветности, или
Соседние выборки яркости, которые остаются в блоке яркости и которые выбираются на основе L доступных эталонных выборок цветности.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, позиции доступных эталонных выборок цветности определяются как:
S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда режим применяется LM, и доступны соседние выборки цветности, которые находятся как выше, так и слева цветности;
S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A, или доступны только те соседние выборки цветности, которые находятся выше цветности;
S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8], когда применяется режим LM-L, или доступны только те соседние выборки цветности, которые находятся выше;
в котором блок цветности имеет размер W×H, и W’ и H’ заданы как
W’=W, H’=H, когда применяется режим LM;
W’=W+H, когда применяется режим LM-A;
H’=H+W, когда применяется режим LM-L.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации четвертого аспекта или четвертого аспекта, блок получения линейной модели выполнен с возможностью определения максимального значения яркости и минимального значения яркости на основе эталонных выборок яркости с пониженной дискретизацией;
получения первого значения цветности на основе по меньшей мере частично одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с максимальным значением яркости;
получения второго значения цветности на основе по меньшей мере частично одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с минимальным значением яркости;
вычисления одного или более коэффициентов линейной модели на основе первого значения цветности, второго значения цветности, максимального значения яркости и минимального значения яркости.
Согласно пятому аспекту раскрытие относится к способу кодирования, реализованному устройством кодирования, содержащему:
выполнение внутрикадрового предсказания с использованием линейной модели (такой как межкомпонентная линейная модель (CCLM) или многонаправленная линейная модель (MDLM)) согласно любому из предыдущих аспектов; и
выработку битового потока, включающего в себя множество синтаксических элементов, причем множество синтаксических элементов включает в себя синтаксический элемент, который указывает выбор фильтра для выборки яркости, принадлежащей блоку (например, выбор фильтра яркости CCLM, в частности, флаг SPS, например, sps_cclm_colocated_chroma_flag).
В возможной форме реализации способа согласно по существу пятому аспекту, в котором, когда значение синтаксического элемента равно 0 или значению "ложь", фильтр применяется к выборке яркости для определения линейной модели и предсказания; и
когда значение синтаксического элемента равно1или значению "истина", фильтр не применяется к выборке яркости для определения линейной модели и предсказания.
Согласно шестому аспекту раскрытие относится к способу декодирования, реализуемому устройством декодирования, содержащему:
синтаксический анализ из битового потока множества синтаксических элементов, причем множество синтаксических элементов включает в себя синтаксический элемент, который указывает выбор фильтра для выборки яркости, принадлежащей блоку (например, выбор фильтра яркости CCLM, в частности, флаг SPS, например, sps_cclm_colocated_chroma_flag); и
выполнение внутрикадрового предсказания с использованием указанной линейной модели (такой как CCLM) согласно любому из предыдущих аспектов.
В возможной форме реализации способа согласно по существу шестому аспекту, когда значение синтаксического элемента равно0или значению "ложь", фильтр применяется к выборке яркости для определения линейной модели и предсказания;
Когда значение синтаксического элемента равно1или значению "истина", фильтр не применяется к выборке яркости для определения линейной модели и предсказания, например, при совмещении фильтр яркости не используется.
Согласно седьмому аспекту раскрытие относится к декодеру, содержащему:
один или более процессоров; и
невременный машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для ее исполнения процессорами, причем программа при ее исполнении процессорами, конфигурирует декодер для выполнения способа согласно любому из предыдущих аспектов или любому возможному варианту осуществления предыдущих аспектов.
Согласно восьмому аспекту, раскрытие относится к кодеру, содержащему:
один или более процессоров; и
невременный машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для ее исполнения процессорами, причем программа при ее исполнении процессорами, конфигурирует кодер для выполнения способа согласно предыдущим аспектам или любому другому возможному варианту осуществления предыдущих аспектов.
Способ согласно первому аспекту раскрытия может выполняться устройством согласно четвертому аспекту раскрытия. Дополнительные признаки и формы реализации способа согласно первому аспекту раскрытия соответствуют характеристикам и формам реализации устройства согласно четвертому аспекту раскрытия.
Способ согласно первому аспекту раскрытия может выполняться устройством согласно четвертому аспекту раскрытия. Дополнительные признаки и формы реализации способа согласно первому аспекту раскрытия соответствуют характеристикам и формам реализации устройства согласно четвертому аспекту раскрытия.
Согласно другому аспекту раскрытие относится к устройству для декодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые предписывают процессору выполнять способ согласно первому или третьему аспекту.
Согласно другому аспекту раскрытие относится к устройству для кодирования видеопотока, включающему в себя процессор и память. В памяти хранятся инструкции, которые предписывают процессору выполнять способ согласно второму аспекту.
Согласно другому аспекту выполнен машиночитаемый носитель информации, на котором хранятся инструкции, которые при их исполнении предписывают одному или более процессорам, кодировать видеоданные. Инструкции предписывают одному или более процессорам выполнять способ согласно первому или второму или третьему аспекту или любому возможному варианту осуществления первого, второго или третьего аспекта.
Согласно другому аспекту, раскрытие относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому, второму или третьему аспекту или любому возможному варианту осуществления первого, второго или третьего аспекта при его исполнении на компьютере.
Подробности одного или нескольких вариантов осуществления показаны на сопроводительных чертежах и изложены в описании ниже. Другие признаки, задачи и преимущества будут очевидны из описания, чертежей и формулы изобретения.
Краткое описание чертежей
Далее приводится более подробное описание вариантов осуществления со ссылкой на сопроводительные фигуры и чертежи, на которых:
фиг. 1A - блок-схема, показывающая пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления, раскрытых в данном документе;
фиг. 1B - блок-схема, показывающая другой пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления, раскрытых в данном документе;
фиг. 2 - блок-схема, показывающая пример видеокодера, выполненного с возможностью реализации вариантов осуществления, раскрытых в данном документе;
фиг. 3 - блок-схема, показывающая примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления, раскрытых в данном документе;
фиг. 4 - блок-схема, иллюстрирующая пример устройства кодирования или устройства декодирования согласно варианту осуществления, раскрытому в данном документе;
фиг. 5 - блок-схема, иллюстрирующая другой пример устройства кодирования или устройства декодирования согласно примерному варианту осуществления, раскрытому в данном документе;
фиг. 6A - пример, иллюстрирующий номинальные вертикальные и горизонтальные позиции выборок яркости и цветности 4:2:0 в изображении;
фиг. 6В - пример, иллюстрирующий номинальные вертикальные и горизонтальные позиции выборок яркости и цветности 4:2:2 в изображении;
фиг. 6С - пример, иллюстрирующий номинальные вертикальные и горизонтальные местоположения выборок яркости и цветности 4:4:4 в изображении;
фиг. 6D иллюстрирует различные шаблоны выборки для чересстрочного изображения;
фиг. 6E - чертеж, иллюстрирующий концепцию межкомпонентной линейной модели для внутрикадрового предсказания цветности;
фиг. 7A - пример, иллюстрирующий совмещенные блоки яркости и цветности, которые включены в текущий блок изображения текущего изображения, и ассоциированные с ними эталонные выборки яркости и цветности, когда форматом цветности текущего изображения является формат 4:2:0.
фиг. 7В - пример, иллюстрирующий совмещенные блоки яркости и цветности, которые включены в текущий блок изображения текущего изображения, и ассоциированные с ними эталонные выборки яркости и цветности, когда форматом цветности текущего изображения является формат 4:2:2;
фиг. 7С - пример, иллюстрирующий совмещенные блоки яркости и цветности, которые включены в текущий блок изображения текущего изображения, и ассоциированные с ними эталонные выборки яркости и цветности, когда форматом цветности текущего изображения является формат 4:4:4;
фиг. 7D - пример, иллюстрирующий выборки 719 яркости с пониженной дискретизацией из выбранных эталонных выборок 715 яркости блока 711 яркости, и эталонные выборки 705 цветности, которые соответствуют выборкам 719 яркости с пониженной дискретизацией, когда форматом цветности текущего изображения является формат 4:2:0;
фиг. 8 - чертеж, иллюстрирующий примеры эталонных выборок цветности и яркости, используемых для получения параметров линейной модели;
фиг. 9 - схема, иллюстрирующая пространственные позиции выборок яркости, участвующих в понижающей дискретизации во время межкомпонентного внутрикадрового предсказания, когда форматом цветности текущего изображения является формат 4:2:0.
фиг. 10 - схематичное представление, иллюстрирующее примерные механизмы понижающей дискретизации для поддержания межкомпонентного внутрикадрового предсказания.
фиг. 11 - блок-схема последовательности операций, иллюстрирующая процесс выполнения межкомпонентного внутрикадрового предсказания согласно некоторым аспектам настоящего раскрытия.
фиг. 12 - схематичное представление устройства, выполненного с возможностью выполнения межкомпонентного внутрикадрового предсказания согласно некоторым аспектам настоящего раскрытия;
фиг. 13 - блок-схема, показывающая примерную структуру системы доставки содержания, которая реализует услугу доставки содержания; и
фиг. 14 - блок-схема, показывающая структуру примера терминального устройства.
Приведенные ниже идентичные ссылочные позиции относятся к идентичным или по меньшей мере функционально эквивалентным признакам, если явно не указано иное.
Осуществление изобретения
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть раскрытия и которые показывают в качестве иллюстрации конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Понятно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения ограничен сопроводительной формулой изобретения.
В данном документе применяются следующие сокращения:
Например, понятно, что раскрытие в связи с описанным способом также справедливо для соответствующего устройства или системы, которые выполнены с возможностью выполнения способа, и наоборот. Например, если описан один этап или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например, функциональных блоков, для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов или множество блоков, каждый из которых выполняет один или несколько из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например, функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функции одного или множества блоков, или множество этапов, каждый из которых выполняет функции одного или нескольких из множества блоков), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Кодирование видео, как правило, относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина "изображение" можно использовать термин "кадр" или "картинка" как синонимы в области кодирования видео. Кодирование видео (или кодирование в целом) содержит две части: кодирование видео и декодирование видео. Кодирование видео выполняется на стороне источника, как правило, содержащего обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимого для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и, как правило, содержит обратную обработку по отношению к кодеру для восстановления видеоизображений. Варианты осуществления, относящиеся к "кодированию" видеоизображений (или изображений в целом), следует понимать как относящиеся к "кодированию" или "декодированию" видеоизображений или соответствующих видеопоследовательностей. Комбинация части кодирования и части декодирования также упоминается как CODEC (кодирование и декодирование).
В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, то есть восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, путем квантования, чтобы уменьшить объем данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, то есть качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
Несколько стандартов кодирования видео принадлежат к группе "гибридных видеокодеков с потерями" (то есть объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности, как правило, разделяется на набор неперекрывающихся блоков, и кодирование, как правило, выполняется на уровне блоков. Другими словами, в кодере видео, как правило, обрабатывается, то есть кодируется, на уровне блока (видеоблока), например, с использованием пространственного (изображения с внутрикадровым предсказанием) предсказания и/или временного (изображения с межкадровым предсказанием) предсказания для выработки блока предсказания, вычитания блока предсказания из текущего блока (блока, который обрабатывается на данный момент времени или который должен быть обработан) для получения остаточного блока, преобразовывая остаточного блока и квантования остаточного блока в области преобразования для уменьшения объема данных, подлежащих передаче (сжатию), тогда как в декодере обратная обработка по сравнению с кодером применяется к закодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует контур обработки декодера, так что оба будут вырабатывать идентичные предсказания (например, внутрикадровое предсказание и межкадровое предсказание) и/или восстановления для обработки, то есть кодирования, последующих блоков.
В следующих вариантах осуществления системы 10 кодирования видео, видеокодер 20 и видеодекодер 30 описываются на основе фиг. 1-3.
На фиг. 1A показана схематичная блок-схема, иллюстрирующая примерную систему 10 кодирования, например, систему 10 кодирования видео (или систему 10 короткого кодирования), которая может использовать технологии этой настоящей заявки. Видеокодер 20 (или короткий кодер 20) и видеодекодер 30 (или короткий декодер 30) системы 10 кодирования видео представляют примеры устройств, которые могут быть выполнены с возможностью выполнения технологий в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на фиг. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления данных 21 кодированного изображения, например, в устройство-адресат 14 для декодирования данных 21 кодированного изображения.
Устройство-источник 12 содержит кодер 20 и может дополнительно, то есть необязательно, содержать источник 16 изображения, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 изображения, и интерфейс связи или блок 22 связи.
Источник 16 изображения может содержать или быть устройством захвата изображения любого типа, например, камерой для захвата реального изображения, и/или устройства выработки изображения любого типа, например, процессором компьютерной графики для выработки компьютерного анимационное изображение или любое другое устройство для получения и/или предоставления реального изображения, компьютерного изображения (например, содержания экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображение дополненной реальности (AR)). Источником изображения может быть память или хранилище любого типа, в котором хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой блоком 18 предварительной обработки, изображение или данные 17 изображения также могут называться необработанным изображением или данными 17 необработанного изображения.
Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать отсечение, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов. Можно понять, что блок 18 предварительной обработки может быть необязательным компонентом.
Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема данных 21 кодированного изображения и передачи данных 21 кодированного изображения (или любой их дальнейшей обработанной версии) по каналу связи 13 в другое устройство, например, в устройство-адресат 14 или любое другое устройство для хранения или прямого восстановления.
Устройство-адресат 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, то есть необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 последующей обработки) и устройство 34 отображения.
Интерфейс 28 связи устройства-адресата 14 выполнен с возможностью приема кодированных данных 21 изображения (или любой их дальнейшей обработанной версии), например, непосредственно из устройства-источника 12 или из любого другого источника, например, запоминающего устройства, например, устройства хранения кодированных данных изображения, и предоставления данных 21 кодированного изображения в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображения или кодированных данных 21 через прямую линию связи между устройством-источником 12 и устройством-адресатом 14, например, прямое проводное или беспроводное соединение, или через любой вид сети, например, проводную или беспроводную сеть или любую их комбинацию, или любой вид частной и публичной сети, или любую их комбинацию.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки данных 21 кодированного изображения в соответствующий формат, например, в пакеты, и/или обработки данных кодированного изображения с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.
Интерфейс 28 связи, образующий аналог интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки переданных данных с использованием любого вида соответствующего декодирования или обработки передачи и/или распаковки для получения данных 21 кодированного изображения.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть сконфигурированы как интерфейсы однонаправленной связи, как показано стрелкой для канала 13 связи на фиг. 1A, указывающей от устройства-источника 12 к устройству-адресату 14, или как интерфейсы двунаправленной связи и могут быть выполнены, например, с возможностью отправки и приема сообщений, например, для установки соединения, подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, передаче данных кодированного изображения.
Декодер 30 выполнен с возможностью приема данных 21 кодированного изображения и предоставления данных 31 декодированного изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, со ссылкой на фиг. 3 или фиг. 5).
Процессор 32 последующей обработки устройства-адресата 14 выполнен с возможностью последующей обработки данных 31 декодированного изображения (также называемых данными восстановленного изображения), например, декодированного изображения 31, для получения данных 33 постобработанного изображения, например, постобработанного изображения 33. Последующая обработка, выполняемая блоком 32 последующей обработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, отсечение или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 31 изображения для отображения, например, устройством 34 отображения.
Устройство 34 отображения устройства-адресата 14 выполнено с возможностью приема данных 33 изображения после последующей обработки для отображения изображения, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, микросветодиодные дисплеи, жидкие кристаллы на кремнии (LCoS), цифровой световой процессор (DLP) или любые другие дисплеи.
Хотя на фиг. 1A показаны устройство-источник 12 и устройство-адресат 14 как отдельные устройства, варианты осуществления устройств могут также содержать обе или как функциональные возможности устройства-источника 12 или соответствующие функциональные возможности, так и устройства-адресата 14 или соответствующие функциональные возможности. В таких вариантах осуществления устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности могут быть реализованы с использованием одних и тех же аппаратных средств и/или программного обеспечения или с помощью отдельных аппаратных средств и/или программного обеспечения или любой их комбинации.
Как будет очевидно специалистам в данной области техники на основе описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 12 и/или устройстве-адресате 14, как показано на фиг. 1A, может варьироваться в зависимости от фактического устройства и приложения.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или как кодер 20, так и декодер 30 могут быть реализованы с помощью схемы обработки, показанной на фиг. 1B, такой как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретных логических схем, аппаратных средств, специализированных схем кодирования видео или любых их комбинаций. Кодер 20 может быть реализован с помощью схемы 46 обработки для осуществления различных блоков, как обсуждалось в отношении кодера 20, показанного на фиг. 2, и/или любой другой системы или подсистемы кодера, описанной в данном документе. Декодер 30 может быть реализован с помощью схемы 46 обработки для осуществления различных блоков, как обсуждалось в отношении декодера 30, показанного на фиг. 3, и/или любой другой системы или подсистемы декодера, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, как описано ниже. Как показано на фиг. 5, если технологии реализованы частично в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем невременном машиночитаемом носителе информации и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения технологий настоящего раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на фиг. 1B.
Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого разнообразия устройств, включая любые виды портативных или стационарных устройств, например, портативные или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео (например, серверы предоставления услуг по передаче содержания или серверы доставки содержания), устройство широковещательного приемника, устройство широковещательного передатчика или тому подобное, и могут использовать или не использовать операционную систему любого типа. В некоторых случаях устройство-источник 12 и устройство-адресат 14 могут быть выполнены с возможностью поддержания беспроводной связи. Таким образом, устройство-источник 12 и устройство-адресат 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 кодирования видео, проиллюстрированная на фиг. 1A, является просто примером, и технологии настоящей заявки могут применяться к настройкам кодирования видео (например, кодированию видео или декодированию видео), которые необязательно включают в себя какой-либо обмен данными между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются потоком по сети или т.п. Устройство кодирования видео может кодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняются устройствами, которые не обмениваются данными друг с другом, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания в данном документе описаны варианты осуществления изобретения, например, со ссылкой на высокоэффективное кодирование видео (HEVC) или на эталонное программное обеспечение универсального кодирования видео (VVC), стандарт кодирования видео следующего поколения, разработанный объединенной группой сотрудничества по кодированию видео (JCT-VC) группы экспертов по кодированию видео ITU-T (VCEG) и группы экспертов по движущимся изображениям (MPEG) ISO/IEC. Обычный специалист в данной области техники поймет, что варианты осуществления, раскрытые в данном документе, не ограничиваются HEVC или VVC.
Кодер и способ кодирования
На фиг. 2 показана схематичная блок-схема примерного видеокодера 20, который выполнен с возможностью реализации технологий настоящей заявки. В примере, показанном на фиг. 2, видеокодер 20 содержит вход 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 декодированных изображений (DPB), блок 260 выбора режима, блок 270 энтропийного кодирования и выход 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 межкадрового предсказания, блок 254 внутрикадрового предсказания и блок 262 разделения. Блок 244 межкадрового предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг. 2, может также упоминаться как гибридный видеокодер или видеокодер, соответствующий гибридному видеокодеку.
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут упоминаться как формирующие прямой путь сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратнго преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений (DPB), блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания могут упоминаться как формирующие обратный путь прохождения сигнала видеокодера 20, где обратный путь прохождения сигнала видеокодера 20 соответствует пути сигнала декодера (смотри видеодекодер 30 на фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных изображений (DPB)230, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания также относятся к формированию "встроенного декодера" видеокодера 20.
Изображения и разделение изображений (изображения и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через вход 201, изображения 17 (или данных 17 изображения), например, изображения, состоящего из последовательности изображений, образующих видео или видеопоследовательность. Принятое изображение или данные изображения могут быть также предварительно обработанным изображением 19 (или предварительно обработанными данными 19 изображения). Для упрощения изложения нижеследующее описание относится к изображению 17. Изображение 17 также может называться текущим изображением или изображением, которое должно быть кодировано (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений одной и той же видеопоследовательности, то есть видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение представляют собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве может также называться пикселем (сокращенная форма английского словосочетания "picture element" (элемент изображения)) или пэлом. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета, как правило, используются три цветовых компонента, то есть изображение может быть представлено или включать в себя три массива выборок. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель, как правило, представлен в формате яркости и цветности или в цветовом пространстве, например, YCbCr, которое содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты цветности или информации о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений выборок яркости (Y) и два массива выборок цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть обращены или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или конверсия. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовой формат 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера20 могут содержать блок разделения изображения (не показан на фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут упоминаться как корневые блоки, макроблоки (H.264/AVC) или блоки дерева кодирования (CTB) или блоки дерева кодирования (CTU) (H.265/HEVC и VVC). Единица разделения изображения может быть выполнена с возможностью использования одного и того же размера блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей текущий размер блока, или изменения текущего размера блока между изображениями, или поднаборами или группами изображений, и разделения каждого изображения на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 изображения 17, например, одного, нескольких или всех блоков, образующих изображение 17. Блок 203 изображения может также называться текущим блоком изображения или блоком изображения, подлежащим кодированию.
Подобно изображению 17, блок 203 изображения снова представляют собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, текущий блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 17) или любое другое количество и/или любой вид массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлениях (или по горизонтальной и вертикальной осям) текущего блока 203 определяют размер блока 203. Соответственно, блок может быть, например, массивом выборок размером MxN (размером M столбцов на N строк) или массивом коэффициентов преобразования размером MxN.
Варианты осуществления видеокодера20, как показано на фиг. 2, могут быть выполнены с возможностью кодирования изображения 17 поблочно, например, кодирование и предсказание выполняются для каждого блока 203.
Варианты осуществления видеокодера 20, показанного на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием слайсов (также называемых видеослайсами), причем изображение может быть разделено на или закодировано с использованием одного или несколько слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).
Варианты осуществления видеокодера 20, показанного на фиг. 2, могут быть дополнительно выполнены с возможностью разделения и/или кодирования изображения с использованием групп плиток (также называемых группами плиток) и/или плиток (также называемых видеоплиткаами), в котором изображение может быть разделено на или закодировано с использованием одной или более групп плиток (обычно не перекрывающихся), и каждая группа плиток может содержать, например, один или более блоков (например, CTU) или один или несколько плиток, где каждый плитка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например, полные или дробные блоки.
Вычисление остатка
Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также называемого остатком 205) на основе блока 203 изображения и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания будут предоставлены позже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 изображения, выборки за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборки.
Преобразование
Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например, дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборок остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования также могут называться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, указанные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT, такие целочисленные аппроксимации, как правило, масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования, как правило, выбираются на основе определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью два для операций сдвига, разрядность коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, с помощью блока212 обработки обратного преобразования (и соответствующего обратного преобразования, например, с помощью блока 312 обработки обратного преобразования в видеодекодере 30), и, соответственно, могут быть указаны соответствующие коэффициенты масштабирования для прямого преобразования, например, с помощью блока206 обработки преобразования, в кодере 20.
Варианты осуществления видеокодера 20 (соответственно, блока 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например, типа преобразования или преобразований, например, напрямую или в закодированом или сжатом виде через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
Квантование
Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить глубину в битах, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-разрядный коэффициент преобразования может быть округлен до m--разрядного коэффициента преобразования во время квантования, где n больше, чем m. Степень квантования может быть изменена путем регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малым размерам шагов квантования), и большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, и соответствующее деквантование и/или обратное квантование, например, с помощью блока 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например, HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. В общем, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении с фиксированной точкой уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться таблицы квантования, выполненные с учетом потребностей заказчика, и кодер может передавать их в декодер, например, в битовом потоке. Квантование представляет собой операцию с потерями, в которой потери возрастают с увеличением размера шага квантования.
Варианты осуществления видеокодера 20 (соответственно, блок 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или в закодированном виде через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Обратное квантование
Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования, применяемой блоком208 квантования, на основе или с использованием того же размер шага квантования, что и у блока 208 квантования. Деквантованные коэффициенты211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать (хотя, как правило, они не идентичны коэффициентам преобразования из-за потери при квантовании) коэффициентам 207 преобразования.
Обратное преобразование
Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования преобразования, применяемого блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST) или других обратных преобразований, чтобы получить восстановленный остаточный блок 213 (или соответствующие деквантованные коэффициенты 213) в области выборки. Восстановленный остаточный блок 213 может также называться блоком 213 преобразования.
Восстановление
Блок 214 восстановления (например, суммирующее устройство или сумматор 214) выполнен с возможностью сложения блока213 преобразования (то есть восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборки, например, путем сложения (выборки за выборкой) значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.
Фильтрация
Блок 220 контурного фильтра (или сокращенно "контурный фильтр" 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра выполнен, например, с возможностью сглаживания пиксельных переходов или иного повышения качества видео. Блок 220 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного к выборке смещение (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), повышение резкости, сглаживающие фильтры или объединённые фильтры или любые их комбинации. Хотя блок 220 контурного фильтра показан на фиг. 2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Фильтрованный блок 221 может также называться фильтрованным восстановленным блоком 221.
Варианты осуществления видеокодера20 (соответственно, блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация об адаптивном смещении выборки), например, напрямую или в закодированном виде через блок 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Буфер декодированного изображения
Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных видеокодером 20. DPB230 может быть сформирован любым из множества запоминающих устройств, таких как динамическое оперативное запоминающее устройство (DRAM), в том числе синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Буфер230 декодированных изображений (DPB) может быть выполнен с возможностью хранения одного или более фильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221 одного и того же текущего изображения или различных изображений, например, ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, то есть декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадрового предсказания. Буфер декодированных изображений (DPB) 230 также может быть выполнен с возможностью хранения одного или нескольких нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например, если восстановленный блок 215 не фильтруется блоком 220 контурной фильтрации, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.
Выбор режима (разделение и предсказание)
Блок 260 выбора режима содержит блок 262 разделения, блок 244 межкадрового предсказания и блок 254 внутрикадрового предсказания и выполнен с возможностью приема или получения исходных данных изображения, например, исходного блока 203 (текущего блока 203 текущего изображения 17), и данных восстановленного изображения, например, отфильтрованных и/или нефильтрованных восстановленных выборок или блоков одного и того же (текущего) изображения и/или из одного или множества ранее декодированных изображений, например, из буфера 230 декодированных изображений или других буферов (например, строкового буфера, не показан). Данные восстановленного изображения используются в качестве данных опорного изображения для предсказания, например, межкадрового предсказания или внутрикадрового предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутрикадровего или межкадрового предсказания) и выработки соответствующего блока 265 предсказания, который используется для вычисления остаточного блока205 и для восстановления восстановленного блока215.
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются или доступны для блока 260 выбора режима), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальное количество служебных данных сигнализации (минимальное количество служебных данных сигнализации означает лучшее сжатие для передачи или хранения), или которое учитывает или уравновешивает и то, и другое. Блок 260 выбора режима может быть выполнен с возможностью определения разделения и режима предсказания на основе оптимизации отношения "скорость-искажение" (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение скорости. Такие термины, как "лучший", "минимальный", "оптимальный" и т.д. в данном контексте необязательно относятся, в общем, к "лучшему", "минимальному", "оптимальному" и т.д., но также могут относиться к выполнению критерия завершения или выбора, такому как значение, которое превышает или находится ниже порогового значения, или к другим ограничениям, потенциально ведущим к "подоптимальному выбору", но уменьшающим сложность и время обработки.
Другими словами, блок 262 разделения может быть выполнен с возможностью разделения текущего блока 203 на более маленькие разделы или подблоки (которые снова образуют блоки), например, итеративно с использованием разделения квадродерева (QT), двоичного разделения (BT) или разделения троичного дерева (TT) или любой их комбинации, и выполнения, например, предсказания для каждого из разделов текущего блоков или подблоков, причем выбор режима содержит выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделов текущего блока или подблоков.
Далее будут объяснены более подробно разделение (например, с помощью блока 260 разделения) и обработка предсказания (с помощью блока 244 межкадрового предсказания и блока 254 внутрикадрового предсказания), выполняемые примерным видеокодером 20.
Разделение
Блок 262 разделения может разделять (или разбивать) текущий блок 203 на меньшие разделы, например, на меньшие блоки квадратной или прямоугольной формы. Эти меньшие блоки (которые также могут называться подблоками) могут быть дополнительно разделены на еще более меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на уровне корневого дерева 0 (уровень 0 иерархии, глубина 0), может быть рекурсивно разделен, например, разделен на два или более блоков следующего более низкого уровня дерева, например, на узлы на уровне дерева 1 (уровень 1 иерархии, глубина 1), причем эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровень 2 дерева (уровень 2 иерархии, глубина 2) и т.д. до тех пор, пока разделение не будет завершено, например, так как критерий завершения выполнен, например, достигнута максимальная глубина дерева или минимальный размер блока. Блоки, которые не разделяются далее, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), и дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).
Как упоминалось ранее, используемый в данном документе термин "блок", может быть частью, в частности, квадратной или прямоугольной частью изображения. Со ссылкой, например, на HEVC и VVC, блок может представлять собой или соответствовать единице дерева кодирования (CTU), единице кодирования (CU), единице предсказания (PU) и единице преобразования (TU) и/или соответствующим блокам, например, блоку дерева кодирования (CTB), блоку кодирования (CB), блоку преобразования (TB) или блоку предсказания (PB).
Например, единица дерева кодирования (CTU) может представлять собой или содержать CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок дерева кодирования (CTB) может быть блоком размером NxN выборок для некоторого значения N, так что разделение компонента на CTB является разделением. Единица кодирования (CU) может представлять собой или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодирования (CB) может быть блоком MxN выборок для некоторых значений M и N, так что разделение CTB на блоки кодирования является разделением.
В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разделена на CU с использованием структуры квадродерева, обозначенной как дерево кодирования. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, принимается на уровне CU. Каждая CU может быть дополнительно разделена на одну, дву или четыре PU в соответствии с типом разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, и соответствующая информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой квадродерева, аналогичной дереву кодирования для CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом кодирования видео, который называется универсальным кодированием видео (VVC), объединенный способ разделения квадродерева и двоичного дерева (QTBT) используется, например, для разделения блока кодирования. В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Например, единица дерева кодирования (CTU) сначала разделяется структурой квадродерева. Листовые узлы квадродерева дополнительно разделяются с помощью структуры двоичного дерева или третичного (или тройного) дерева. Листовые узлы дерева разделения называются единицами кодирования (CU), и эта сегментация используется для предсказания и процесса преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT можно использовать многочисленные разделы, например, троичное дерево.
В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любой комбинации технологий разделения, описанных в данном документе.
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, заранее определенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутрикадрового предсказания и/или режимы межкадрового предсказания.
Внутрикадровое предсказание
Набор режимов внутрикадрового предсказания может содержать 35 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или среднего значения) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 различных режимов внутрикадрового предсказания, например, ненаправленные режимы, такие как режим DC (или среднего значения) и планарный режим, или направленные режимы, например, как определено для VVC.
Блок 254 внутрикадрового предсказания выполнен с возможностью использования восстановленных выборок соседних блоков одного и того же текущего изображения для выработки блока 265 внутрикадрового предсказания согласно режиму внутрикадрового предсказания набора режимов внутрикадрового предсказания.
Блок 254 внутрикадрового предсказания (или, в общем, блок260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутрикадрового предсказания (или, в общем, информации, указывающей выбранный режим внутрикадрового предсказания для текущего блока) в блок270 энтропийного кодирования в виде синтаксических элементов266 для включения в кодированные данные21 изображения, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Межкадровое предсказание
Набор (или возможных) режимов межкадрового предсказания зависит от доступных опорных изображений (то есть предыдущих по меньшей мере частично декодированных изображений, например, сохраненных в DPB230) и других параметров межкадрового предсказания, например, от того, все ли опорное изображение или только часть его, например, область окна поиска вокруг области текущего блока, опорного изображения используется для поиска наиболее подходящего опорного блока, и/или, например, применяется или нет интерполяция пикселей, например, половинная пиксельная/полупиксельная и/или четвертьпиксельная интерполяция.
Дополнительно к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.
Блок 244 межкадрового предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба не показаны на фиг. 2). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (блока 203 текущего изображения текущего изображения 17) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множества других/различных ранее декодированных изображений 231 для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут представлять собой или могут формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одного и того же или разных изображений из множества других изображений и предоставления опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения) между позицией (координаты x, y) опорного блока и позицией текущего блока в качестве параметров межкадрового предсказания для блока оценки движения. Это смещение также называется вектором движения (MV).
Блок компенсации движения выполнен с возможностью получения, например, приема, параметра межкадрового предсказания и выполнения межкадрового предсказания на основе или с использованием параметра межкадрового предсказания для получения блока265 межкадрового предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя выборку или выработку блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, и, возможно, выполнение интерполяции с точностью до подпикселя. Интерполяционная фильтрация может вырабатывать дополнительные выборки пикселей из известных выборок пикселей, таким образом потенциально увеличивая количество блоков предсказания кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может найти блок предсказания, на который указывает вектор движения, в одном из списков опорных изображений.
Блок компенсации движения может также вырабатывать синтаксические элементы, ассоциированные с текущими блоками, и видеослайсы для использования видеодекодером 30 при декодировании блоков изображения видеослайса. В качестве альтернативы или в дополнение к слайсам и соответствующим синтаксическим элементам могут быть выработаны или использованы группы плиток и/или плиткаы и соответствующие синтаксические элементы.
Энтропийное кодирование
Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с интервалом вероятности (PIPE) или другой методология или технологии энтропийного кодирования) или обхода (без сжатия) квантованных коэффициентов 209, параметров межкадрового предсказания, параметров внутрикадрового предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения данных 21 кодированного изображения, которые могут выводиться через выход 272, например, в виде кодированного битового потока 21, так что, например, видео декодер 30 может принимать и использовать параметры для декодирования. Кодированный битовый поток 21 может быть передан в видеодекодер 30 или сохранен в памяти для последующей передачи или поиска видеодекодером 30.
Другие структурные вариации видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
На фиг. 3 показан пример видеодекодера 30, который выполнен с возможностью реализации технологий этой настоящей заявки. Видеодекодер 30 выполнен с возможностью приема данных 21 кодированного изображения (например, кодированного битового потока 21), например, закодированного кодером 20, для получения декодированного изображения 331. Данные кодированного изображения или битовый поток содержат информацию для декодирования данных кодированного изображения, например, данных, которые представляют блоки изображения кодированного видеослайса (и/или группы плиток или плитки) и ассоциированные с ними синтаксические элементы.
В примере, показанном на фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер декодированных изображений (DPB) 330, блок 360 применения режима, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания. Блок 344 межкадрового предсказания может представлять собой или включать в себя блок компенсации движения. В некоторых примерах видеодекодер 30 может выполнять этап декодирования, в целом обратный этапу кодирования, описанному применительно к видеокодеру 100, показанному на фиг. 2.
Как объяснялось в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурного фильтра 220, буфер декодированных изображений (DPB) 230, блок 344 межкадрового предсказания и блок 354 внутрикадрового предсказания также упоминаются как формирующие "встроенный декодер" видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по своим по функциям блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по своим по функциям блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по своим по функциям блоку 214 восстановления, контурный фильтр 320 может быть идентичен по своим по функциям контурному фильтру 220, и буфер 330 декодированных изображений может быть идентичен по своим по функциям буферу 230 декодированных изображений. Таким образом, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применяются, соответственно, к соответствующим блокам и функциям видеодекодера 30.
Энтропийное декодирование
Блок 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 кодированного изображения) и выполнения, например, энтропийного декодирования кодированных данных21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, любых или всех параметров межкадрового предсказания (например, индекса опорного изображения и вектора движения), параметра внутрикадрового предсказания (например, режима или индекса внутрикадрового предсказания), параметров преобразования, параметров квантования, параметров контурного фильтра и/или других синтаксических элементов. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, которые описаны в отношении блока 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров межкадрового предсказания, параметра внутрикадрового предсказания и/или других синтаксических элементов для блока 360 применения режима и других параметров для других блоков декодера 30. Видеодекодер 30 может принимать синтаксические элементы на уровне видеослайса и/или уровне видеоблока. В качестве альтернативы или в дополнение к слайсам и соответствующим синтаксическим элементам, могут приниматься и/или использоваться группы плиток и/или плиткаы и соответствующие синтаксические элементы.
Обратное квантование
Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования) и применения на основе параметров квантования обратного квантования к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами преобразования 311. Процесс обратного квантования может включать в себя использование параметра квантования, определенного с помощью видеокодера 20 для каждого видеоблока в видеослайсе (или плитке или группе плиток) для того, чтобы определить степень квантования и, аналогично, степень обратного квантования, которое будет применяться.
Обратное преобразование
Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также называемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для получения восстановленных остаточных блоков 213 в области выборки. Восстановленные остаточные блоки 213 также могут называться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования), чтобы определять преобразование, которое должно применяться к деквантованным коэффициентам 311.
Восстановление
Блок 314 восстановления (например, суммирующее устройство или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания для получения восстановленного блока 315 в области выборки, например, путем сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
Фильтрация
Блок 320 контурной фильтрации (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания пиксельных переходов или иного повышения качества видео. Блок 320 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр удаления блочности, фильтр адаптивного к выборке смещение (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), повышение резкости, сглаживающие фильтры или объединённые фильтры или любые их комбинации. Хотя блок 320 контурного фильтра показан на фиг. 3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.
Буфер декодированного изображения
Декодированные видеоблоки 321 изображения затем сохраняются в буфере 330 декодированных изображений, который хранит декодированные изображения 331 в качестве опорных изображений для последующей компенсации движения для других изображений и/или для вывода, соответственно, отображения
Декодер 30 выполнен с возможностью вывода декодированного изображения 311, например, через вывод 312, для представления или просмотра пользователю.
Предсказание
Блок 344 межкадрового предсказания может быть идентичен модулю 244 межкадрового предсказания (в частности, модулю компенсации движения), и блок 354 межкадрового предсказания может быть идентичен модулю 254 межкадрового предсказания по своим функциям и выполняет решения относительно разделения или разбиения и предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принятой из данных 21 кодированного изображения (например, путем синтаксического анализа и/или декодирования, например, с помощью блока 304 энтропийного декодирования). Блок 360 применения режима может быть выполнен с возможностью выполнения предсказания (внутрикадрового предсказания или межкадрового предсказания) для каждого блока на основе восстановленных изображений, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда видеослайс кодируется как слайс (I) с внутрикадровым предсказанием, блок 354 внутрикадрового предсказания блока 360 применения режима конфигурируется для выработки блока 365 предсказания для блока изображения текущего видеослайса на основе просигнализированного режима внутрикадрового предсказания и данных из ранее декодированных блоков текущего изображения. Когда видеоизображение кодируется как слайс с межкадровым предсказанием (то есть B или P), блок 344 межкадрового предсказания (например, блок компенсации движения) блока 360 применения режима конфигурируется для создания блоков 365 предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принятых из блока 304 энтропийного декодирования. Для межкадрового предсказания блоки предсказания могут быть созданы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может создавать списки опорных кадров, Список 0 и Список 1, используя технологии построения по умолчанию на основе опорных изображений, хранящихся в DPB 330. То же самое или аналогичное может применяться для вариантов осуществления с использованием групп плиток (например, групп видеоплиток) или плиток (например, видеоплиток) альтернативно или в дополнение к слайсам (например, видеослайсам), например, видео может быть закодировано с использованием групп плиток I, P или B и/или плиток.
Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем анализа векторов движения или ассоциированной информации и других синтаксических элементов, и использует информацию предсказания для создания блоков предсказания для текущего видеоблока, который будет декодирован. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутрикадрового предсказания или межкадрового предсказания), используемого для кодирования видеоблоков видеослайса, тип слайса межкадрового предсказания (например, B-слайс, P-слайс или GPB-слайс), информацию создания одного или нескольких списков опорных изображений для слайса, векторы движения для каждого межкадрового кодированного видеоблока слайса, статус межкадрового предсказания для каждого межкадрового кодированного видеоблока слайса и другую информацию для декодирования видеоблоков в текущем видеослайсе. То же самое или аналогичное может применяться для или посредством вариантов осуществления с использованием групп плиток (например, групп видеоплиток) и/или плиток (например, видеоплиток) в качестве или в дополнение к слайсам (например, видеослайсам), например, видео может быть закодировано с использованием группы плиток I, P или B и/или плиток.
Варианты осуществления видеодекодера 30, как показано на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием слайсов (также называемых видеослайсами), где изображение может быть разделено на или декодировано с использованием одного или более слайсов (обычно не перекрывающихся), и каждый слайс может содержать один или более блоков (например, CTU).
Варианты осуществления видеодекодера 30, который показан на фиг. 3, могут быть выполнены с возможностью разделения и/или декодирования изображения с использованием групп плиток (также называемых группами плиток) и/или плиток (также называемых видеоплиткаами), где изображение может быть разделено на или декодировано с использованием одной или более групп плиток (обычно не перекрывающихся), и каждая группа плиток может содержать, например, один или более блоков (например, CTU) или один или более плиток, причем каждый плитка, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например, полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования данных21 кодированного изображения. Например, декодер 30 может вырабатывать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, которые объединены в единый блок.
Следует понимать, что в кодере 20 и декодере 30 результат обработки текущего этапа может быть дополнительно обработан и затем передан на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации может выполняться дополнительная операция, такая как отсечение (Clip) или сдвиг, над результатом обработки интерполяционной фильтрации, получение вектора движения или контурная фильтрация.
Следует отметить, что дополнительные операции могут применяться к производным векторам движения текущего блока (включая, но не ограничиваясь ими, векторы движения контрольной точки аффинного режима, векторы движения подблока в аффинном режиме, планарном, и режиме ATMVP, временное движение векторы и т.д.). Например, значение вектора движения ограничено заданным диапазоном в соответствии с представляющим его битом. Если представляющим битом вектора движения является bitDepth, то диапазон равен -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, где "^" означает возведение в степень. Например, если bitDepth установлен равным 16, диапазон составляет -32768 ~ 32767; если bitDepth установлен равным 18, диапазон составляет -131072 ~ 131071. Например, значение производного вектора движения (например, MV четырех подблоков 4x4 в одном блоке 8x8) ограничено таким образом, чтобы максимальная разность между целыми частями четырех MV подблока 4x4 не превышала N пикселей, например, не более1пикселя. В данном документе представлены два способа ограничения вектора движения в соответствии с bitDepth.
Способ 1: удалить старший бит переполнения (старший значащий бит) с помощью потоковых операций.
ux (mvx+2bitDepth) %2bitDepth (1)
mvx=(ux >=2bitDepth-1) ? (ux -2bitDepth) : ux (2)
uy=(mvy+2bitDepth) %2bitDepth (3)
mvy=(uy >=2bitDepth-1) ? (uy -2bitDepth) : uy (4)
где mvx - горизонтальный компонент вектора движения блока или подблока изображения, mvy - вертикальный компонент вектора движения блока или подблока изображения, и ux и uy указывают промежуточное значение.
Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение будет равно 32767. В компьютерной системе десятичные числа хранятся в виде дополнения до двух. Дополнение до двух -32769 равно 1,0111,1111,1111,1111 (17 разрядов), затем старший бит отбрасывается, поэтому полученное дополнение до двух равно 0111,1111,1111,1111 (десятичное число 32767), что совпадает с результатом при применении формулы (1) и (2).
ux (mvpx + mvdx +2bitDepth) %2bitDepth (5)
mvx=(ux >=2bitDepth-1) ? (ux -2bitDepth) : ux (6)
u=(mvpy + mvdy +2bitDepth) %2bitDepth (7)
mvy=(uy >=2bitDepth-1) ? (uy -2bitDepth) : uy (8)
Операции могут применяться во время суммирования mvp и mvd, как показано в формулах (5)-(8).
Способ2. Удалить старший бит переполнения путем отсечения значения
vx=Clip3(-2bitDepth-1,2bitDepth-1 -1, vx)
vy=Clip3(-2bitDepth-1,2bitDepth-1 -1, vy)
где vx - горизонтальный компонент вектора движения блока изображения или подблока, vy - вертикальный компонент вектора движения блока изображения или подблока; x, y и z, соответственно, соответствуют трем входным значениям процесса отсечения MV, и определение функции Clip3 выглядит следующим образом:
Clip3(x, y, z)=
На фиг. 4 показано схематичное представление устройства 400 кодирования видео согласно варианту осуществления раскрытия. Устройство 400 кодирования видео подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 кодирования видео может быть декодером, таким как видеодекодер 30 (фиг. 1A) или кодер, такой как видеокодер 20 (фиг. 1А).
Устройство 400 кодирования видео содержит входные порты 410 (или входные порты 410) и блоки 420 приемника (Rx) для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 передатчика (Tx) и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрооптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.
Процессор 430 реализован аппаратно и программно. Процессор 430 может быть реализован в виде одной или более микросхем CPU, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 подключен к входным портам 410, блокам 420 приемника, блокам 440 передатчика, выходными портам 450 и памяти 460. Процессор 430 содержит блок 470 кодирования. Блок 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, блок 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, включение блока 470 кодирования обеспечивает существенное повышение функциональных возможностей устройства 400 кодирования видео и выполняет преобразование устройства 400 кодирования видео в другое состояние. В качестве альтернативы, блок 470 кодирования реализован в виде инструкций, хранящихся в памяти 460 и исполняемых процессором 430.
Память 460 может содержать один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных при переполнении для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программы. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянным запоминающим устройством (ROM), оперативным запоминающим устройством (RAM), троичной памятью с адресацией по содержанию (TCAM) и/или статическим оперативным запоминающим устройством (SRAM).
На фиг. 5 показана упрощенная блок-схема устройства 500, которое может использоваться как одно или оба из устройства-источника 12 и устройства-адресата 14 (фиг. 1А) согласно примерному варианту осуществления.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с помощью одного процессора, как показано, например, с помощью процессора 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
В одной реализации память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или оперативным запоминающим устройством (RAM). В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения 1-N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные в данном документе способы.
Устройство 500 может также включать в себя одно или несколько устройств вывода, таких как дисплей 518. В одном примере дисплей 518 может быть сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, способным воспринимать ввод касанием. Дисплей 518 может быть подключен к процессору 502 через шину 512.
Хотя в данном документе показана одна шина, шина 512 устройства 500 может состоять из нескольких шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами устройства 500, или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, например, несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.
Представленные в данном документе варианты осуществления будут описаны более подробно следующим образом. Источник видео, представленный потоком битов, может включать в себя последовательность изображений в порядке декодирования.
Каждое из изображений (которое может быть исходным изображением или декодированным изображением) включает в себя один или несколько из следующих массивов выборок:
- только яркость (Y) (монохромный);
- яркость и две цветности (YCbCr или YCgCo);
- зеленый, синий и красный (GBR, также известные как RGB); и
- массивы, представляющие другие неопределенные монохромные или трехцветные выборки цветов (например, YZX, известные также как XYZ).
Для удобства обозначений и терминологии в настоящем раскрытии, переменные и термины, ассоциированные с этими массивами, упоминаются как яркость (или L или Y) и цветность, где два массива цветности упоминаются как Cb и Cr.
На фиг. 6A показаны местоположения компонентов цветности для схемы дискретизации 4:2:0. В схеме дискретизации 4:2:0 каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости. На фиг. 6В показаны местоположения компонентов цветности для схемы дискретизации 4:2:2. В схеме дискретизации 4:2:2 каждый из двух массивов цветности имеет одинаковую высоту и половину ширины массива яркости. На фиг. 6С показаны местоположения компонентов цветности для схемы дискретизации 4:4:4. В схеме выборки 4:4:4, если separate_colour_plane_flag равен 0, каждый из двух массивов цветности имеет ту же высоту и ширину, что и массив яркости. На фиг. 6D показаны различные образцы дисретизации для чересстрочного изображения. На фиг. 6D представлены тип0выборки цветности, тип1выборки цветности, тип2 выборки цветности, тип 3 выборки цветности, тип 4 выборки цветности и тип 5 выборки цветности.
Внутрикадровое предсказание выборок цветности может выполняться с использованием выборок восстановленного блока яркости.
Во время разработки HEVC была предложена межкомпонентная линейная модель (CCLM) для внутрикадрового предсказания цветности [J. Kim, S.-W. Park, J.-Y. Park, and B.-M. Jeon, Intra Chroma Prediction Using Inter Channel Correlation, document JCTVC-B021, Jul.2010]. CCLM использует линейную корреляцию между выборкой цветности и выборкой яркости в позиции в блоке кодирования, соответствующем позиции выборки цветности. Когда блок цветности кодируется с использованием CCLM, линейная модель получается из восстановленных соседних выборок яркости и цветности посредством линейной регрессии. Затем можно предсказать выборки цветности в текущем блоке, используя восстановленные выборки яркости в текущем блоке с полученной линейной моделью (как показано на фиг. 6E):
,
где C и L указывают значения выборки цветности и яркости, соответственно. Параметры и определяются способом наименьших квадратов следующим образом:
,
где M(A) представляет собой среднее значение A и R(A,B) определяется следующим образом:
.
Если закодированное или декодированное изображение имеет формат, который определяет различное количество выборок для компонентов яркости и цветности (например, формат YCbCr 4:2:0, как показано на фиг. 6), выборки яркости подвергаются понижающей дискретизации перед моделированием и предсказанием.
Способ был принят для использования в VTM2.0.
В частности, вывод параметров выполняется следующим образом:
,
,
где представляет верхнюю и левую соседние восстановленные выборки яркости с пониженной дискретизацией, представляет верхнюю и левую соседние восстановленные выборки цветности.
В [G. Laroche, J. Taquet, C. Gisquet, P. Onno (Canon), “CE3: Cross-component linear model simplification (Test 5.1)”, Input document to 12th JVET Meeting in Macao, China, Oct.2018] был предложен другой способ для получения α и β восстановленной выборки 713 яркости (как показано на фиг. 8). В частности, параметры α и β линейной модели получаются согласно следующим уравнениям:
,
где and - позиции максимальных и минимальных значений в выборках яркости.
На фиг. 7A показано местоположение верхней и левой причинных выборок и выборок текущего блока, задействованного в режиме CCLM, если используется формат 4:2:0 цветности YCbCr. Следует понимать, что "верхняя и левая выборки" также могут упоминаться как "левая и верхняя выборки", "левая и верхняя выборки" или "верхняя и левая выборки". Эти выборки относятся к выборкам в соседних блоках слева и наверху (или выше) текущего блока.
Для выполнения межкомпонентного предсказания для формата 4:2:0 цветности восстановленный блок яркости должен быть субдискретизирован, чтобы соответствовать размеру сигнала цветности, или выборок цветности или блока цветности. Фильтр понижающей дискретизации, используемый по умолчанию в режиме CCLM, выглядит следующим образом.
(0)
Следует отметить, что эта понижающая дискретизация предполагает, что фазовое соотношение "типа 0" определено для позиций выборок цветности относительно позиций выборок яркости, то есть совмещенную дискретизацию по горизонтали и промежуточную дискретизацию по вертикали. Вышеупомянутый 6-отводный фильтр понижающей дискретизации, показанный в уравнении (0), используется в качестве фильтра по умолчанию как для режима CCLM с одной моделью, так и для режима CCLM с несколькими моделями. Пространственные позиции выборок, используемых этим 6-отводным фильтром понижающей дискретизации, проиллюстрированы на фиг. 9. На этой фигуре показаны выборка 901, выборка 902 и выборка 903, которые отмечены с использованием различной штриховкой. Во время фильтрации выборки 901, 902 и 903 имеют веса 2, 1 и 0 соответственно.
Если выборки яркости расположены на границе блока, и смежные верхний и левый блоки недоступны, используются следующие формулы:
, если строка при y=0 является 1-й строкой CTU, x=0, а также левый и верхний смежные блоки недоступны; или
, если строка при y=0 является 1-й строкой CTU, и верхний соседний блок недоступен; или
, если x=0, а также левый и верхний смежные блоки недоступны.
При рассмотрении дискретизации компонентов яркости и цветности в схеме дискретизации 4:2:0 может быть сдвиг между сетками компонентов яркости и цветности. В блоке размером 2×2 пикселей компоненты цветности фактически сдвинуты на половину пикселя по вертикали по сравнению с компонентом яркости (показанным на фиг. 6А). Такой сдвиг может влиять на интерполяционные фильтры, когда выполняется понижающая дискретизация, или когда выполняется повышающая дискретизация. То же, что описано выше, может применяться к другим схемам выборки, показанным на фиг. 6B или 6C. На фиг. 6D представлены различные шаблоны выборки для чересстрочного изображения. Это означает, что также учитывается четность, то есть то, находятся ли пиксели в верхнем или нижнем полях чересстрочного изображения.
Как предложено в [P. Hanhart, Y. He, “CE3: Modified CCLM downsampling filter for “type-2” content (Test2.4)”, Input document JVET-M0142 to the 13th JVET Meeting in Marrakech, Morocco, Jan.2019] и включено в проект спецификации VVC (версия 4), чтобы избежать отсутствия выравнивания между выборками цветности и выборками яркости с понижающей дискретизацией в CCLM для содержания "типа 2", следующие фильтры понижающей дискретизации применяются к выборким яркости для определения линейной модели и предсказания:
3-х отводный:
5-ти отводный:
Во избежание увеличения количества строковых буферов, эти модификации не применяются на верхней границе CTU. Выбор фильтра понижающей дискретизации регулируется флагом SPS sps_cclm_colocated_chroma_flag. Когда значение sps_cclm_colocated_chrom a_flag равно0или значению "ложь", фильтр понижающей дискретизации применяется к выборкам яркости для определения линейной модели и предсказания; когда значение sps_cclm_colocated_chroma_flag равно1или значению "истина", фильтр понижающей дискретизации не применяется к выборкам яркости для определения линейной модели и предсказания.
Граничные восстановленные выборки яркости, которые используются для получения параметров линейной модели, как описано выше, подвергаются субдискретизации из фильтрованных выборок яркости.
Процесс фильтрации выборок яркости и субдискретизации в предыдущем проекте описан в п.8.3.4.2.8 спецификации VVC:
8.3.4.2.8. Спецификация режима внутрикадрового предсказания INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM
Входными данными для этого процесса являются:
- режим predModeIntra внутрикадрового предсказания,
- местоположение выборок (xTbC, yTbC) верхней левой выборки текущего блока преобразования относительно верхней левой выборки текущего изображения,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования,
- соседние выборки цветности p[x][y], где x=-1, y=0..2 * nTbH -1и x=0..2 * nTbW - 1, y=- 1.
Результатом этого процесса являются предсказанные выборки predSampleS[x][y], где x=0..nTbW - 1, y=0..nTbH - 1.
Текущее местоположение выборок яркости (xTbY, yTbY) получается следующим образом:
Переменные availL, availT и availTL получаются следующим образом:
- Доступность процесса получения левых соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается availL.
- Доступность процесса получения верхних соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается availT.
- Доступность процесса получения соседних выборок, расположенных сверху слева, для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается availTL.
Количество доступных выборок numTopRight цветности, расположенных справа сверху, получается следующим образом:
Переменная numTopRight устанавливается равным 0, и availTR устанавливается равным TRUE.
Когда predModeIntra равно INTRA_T_CCLM, для x=nTbW..2 * nTbW -1 применяется следующее то тех пор, пока availTR не станет равным значению "ложь" или x не станет равным 2 * nTbW - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC + x, yTbC - 1) выборок цветности в качестве входных данных, и выходным данным назначается availableTR.
- Когда availableTR равно значению "истина", numTopRight увеличивается на единицу.
- Количество доступных соседних выборок numLeftBelow цветности, расположенных слева внизу, получается следующим образом:
- Переменная numLeftBelow устанавливается равной 0, и availLB устанавливается равным значению "истина".
- Когда predModeIntra равно INTRA_L_CCLM, следующее применяется для y=nTbH..2 * nTbH -1до тех пор, пока availLB не станет равным значению "ложь", или y не станет равным2 * nTbH - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением цветности (xTbC - 1, yTbC + y) в качестве входных данных, и выходным данным назначается availableLB
- Когда availableLB равно значению "истина", numLeftBelow увеличивается на единицу.
Количество доступных соседних выборок numTopSamp цветности, расположенных сверху справа, и количество доступных соседних выборок nLeftSamp цветности, расположенных слева и слева внизу, получаются следующим образом:
- Если predModeIntra равно INTRA_LT_CCLM, применяется следующее:
- В противном случае применяется следующее:
Переменная bCTUboundary получается следующим образом:
Выборки predSamples[x][y] предсказания при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если как numSampL, так и numSampT равны 0, применяется следующее:
- В противном случае применяются следующие упорядоченные этапы:
1. Совмещенные выборки pY[x][y] яркости при x=0..nTbW * 2 - 1, y= 0..nTbH * 2 -1устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
2. Соседние выборки pY[x][y] яркости получаются следующим образом:
- Когда numSampL больше 0, соседние левые выборки pY[x][y] яркости при x=-1..-3, y=0..2 * numSampL -1 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
- Когда numSampT больше 0, соседние верхние выборки pY[x][y] яркости при x=0..2 * numSampT - 1, y=-1, -2 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
- Когда availTL равно значению "истина", соседние верхние левые выборки pY[x][y] яркости при x=-1, y=-1, -2 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
3. Совмещенные выборки pDsY[x][y] яркости с пониженной дискретизацией при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
pDsY[x][y]=(pY[2 * x ][2 * y -1] + pY[2 * x -1][2 * y ] + 4 * pY[2 * x ][2 * y ] + pY[2 * x +1][2 * y ] + pY[2 * x ][2 * y +1] + 4) >> 3. (8-162)
- Если availL равно значению "истина", pDsY[0][y] при y=1..nTbH -1 получается следующим образом:
pDsY[0][y]=(pY[0][2 * y -1] + pY[ -1 ][2 * y] + 4*pY[0][2 * y] + pY[1][2 * y ] + pY[0][2 * y +1] + 4) >>3. (8-163)
- В противном случае pDsY[0][y] при y=1..nTbH -1 получается следующим образом:
pDsY[0][y]=(pY[0][2 * y -1] +2 * pY[0][2 * y ] + pY[0][2 * y +1] +2) >>2. (8-164)
- Если availT равно значению "истина", pDsY[x][0] при x=1..nTbW -1 получается следующим образом:
pDsY[x][0]=(pY[2 * x ][ -1] + pY[2 * x -1][0] + 4 * pY[2 * x ][0] + pY[2 * x +1][0] + pY[2 * x ][1] + 4) >> 3. (8-165)
- В противном случае pDsY[x][0] при x=1..nTbW -1 получается следующим образом:
pDsY[x][0]=(pY[2 * x -1][0] +2 * pY[2 * x ][0] + pY[2 * x +1][0] +2) >>2. (8-166)
- Если availL равно значению "истина", и availT равно значению "истина", pDsY[0][0] получается следующим образом:
pDsY[0][0]=(pY[0][ -1 ] + pY[ -1 ][0] + 4 * pY[0][0] + pY[1][0] + pY[0][1] + 4) >> 3. (8-167)
- В противном случае, если availL равно значению "истина", и availT равно значению "ложь", pDsY[0][0] получается следующим образом:
pDsY[0][0]=(pY[ -1 ][0] +2 * pY[0][0] + pY[1][0] +2) >>2. (8-168)
- В противном случае, если availL равно значению "ложь", и availT равно значению "истина", pDsY[ 0][0] получается следующим образом:
pDsY[0][0]=(pY[0][ -1 ] +2 * pY[0][0] + pY[0][1] +2) >>2. (8-169)
- В противном случае (availL равно значению "ложь", и availT равно значению "ложь") pDsY[0][0] получается следующим образом:
pDsY[0][0]=pY[0][0]. (8-170)
- В противном случае применяется следующее:
- pDsY[x][y] при x=1..nTbW - 1, y=0..nTbH -1 получается следующим образом:
pDsY[x][y]=(pY[2 * x -1][2 * y ] + pY[2 * x -1][2 * y +1] +
2* pY[2 * x ][2 * y ] + 2*pY[2 * x ][2 * y +1] + pY[2 * x +1][2 * y ] + pY[2 * x +1][2 * y +1] + 4) >> 3. (8-171)
- Если availL равно значению "истина", pDsY[0][y] при y=0..nTbH -1 получается следующим образом:
pDsY[0][y]=(pY[ -1 ][2 * y ] + pY[ -1 ][2 * y +1] + 2* pY[0][2 * y ] +2*pY[0][2*y +1] + pY[1][2 * y ] + pY[1][2 * y +1] + 4) >> 3. (8-172)
- В противном случае pDsY[0][y], где y=0..nTbH -1 получается следующим образом:
pDsY[0][y]=(pY[0][2 * y ] + pY[0][2 * y +1] +1) >>1. (8-173)
CCLM предсказывает значения выборок цветности в блоке цветности с использованием субдискретизированного блока яркости (субдискретизированного блока яркости), который совмещен в пространстве с блоком цветности. Субдискретизация или понижающая дискретизация блока яркости содержит фильтрацию для подавления артефактов наложения спектров, вызванных зеркальным отображением спектра. Выбор типа интерполяционного фильтра зависит от типа подвыборки и значения пространственных смещений подвыборок между выборками цветности и яркости исходного изображения.
В предыдущем построении набор интерполяционных фильтров определялся без учета формата цветности, и, следовательно, когда коэффициент субдискретизации цветности в горизонтальном направлении (SubWidthC) не равен коэффициенту субдискретизации сигнала цветности в вертикальном направлении (SubHeightC), могут возникнуть следующие недостатки:
- дополнительное сглаживание;
- неправильный фазовый сдвиг фильтрованного сигнала яркости.
Настоящее раскрытие предоставляет способ учета формата цветности изображения при предсказании выборок цветности из выборок яркости. За счет выбора набора фильтров на основе формата цветности могут быть устранены недостатки предыдущего построения, что приводит к более точному сигналу предсказания цветности и, таким образом, к снижению ошибок предсказания. Техническим результатом меньшей ошибки предсказания является уменьшение остаточной энергии сигнала. Способы кодирования могут использовать это уменьшение для того, чтобы уменьшить искажение восстановленного сигнала, уменьшить скорость передачи битов, которая требуется для кодирования остаточного сигнала, или уменьшить как искажение, так и скорость передачи битов. Эти полезные эффекты, достигаемые настоящим раскрытием, повышают общую эффективность сжатия способа кодирования.
В таблице1представлены форматы цветности, которые могут поддерживаться в настоящем раскрытии. Информация о формате цветности, такая как chroma_format_idc и/или separate_colour_plane_flag, которая может использоваться для определения значений переменных SubWidthC и SubHeightC.
chroma_format_idc точно определяет дискретизацию цветности относительно дискретизации яркости. Значение chroma_format_idc должно находиться в диапазоне от0до 3 включительно.
separate_colour_plane_flag, равный 1, указывает, что три цветовых компонента формата 4:4:4 цветности кодируются по отдельности. separate_colour_plane_flag, равный 0, указывает, что компоненты цвета не кодируются по отдельности. Когда separate_colour_plane_flag отсутствует, предполагается, что он равен 0. Когда separate_colour_plane_flag равен 1, кодированное изображение состоит из трех отдельных компонентов, каждый из которых состоит из кодированных выборок одной цветовой плоскости (Y, Cb или Cr) и использует синтаксис монохромного кодирования.
Формат цветности определяет приоритет и субдискретизацию массивов цветности;
В монохромной выборке есть только один массив выборок, который номинально считается массивом яркости.
При дискретизации 4:2:0 каждый из двух массивов цветности имеет половину высоты и половину ширины массива яркости, как показано на фиг. 6A.
При дискретизации 4:2:2 каждый из двух массивов цветности имеет одинаковую высоту и половину ширины массива яркости, как показано на фиг. 6B.
В дискретизации 4:4:4, в зависимости от значения own_colour_plane_flag, применяется следующее:
- Если separate_colour_plane_flag равен 0, каждый из двух массивов цветности имеет ту же высоту и ширину, что и массив яркости, как показано на фиг. 6С.
- В противном случае (separate_colour_plane_flag равен 1) три цветовые плоскости обрабатываются по отдельности как монохромные дискретизированные изображения.
В настоящем раскрытии выполнен способ обработки выборок яркости, которые используются в качестве входных данных для определения параметров линейной модели. Линейная модель может включать в себя, но без ограничения, межкомпонентную линейную модель (CCLM) или многонаправленную линейную модель (MDLM). Способ включает в себя определение набора фильтров (например, двух фильтров), которые условно применяются в вертикальном и горизонтальном направлениях.
В некоторых вариантах осуществления вводится набор условий, которые проверяются для того, чтобы определять коэффициенты фильтра, которые должны применяться к восстановленным выборкам яркости. Набор условий включает в себя, но не ограничивается ими, условия, включающие в себя коэффициенты дискретизации цветности (а именно, коэффициенты дискретизации цветности, такие как переменные SubWidthC и SubHeightC).
На фиг. 7A показано схематичное представление, иллюстрирующее примерный механизм выполнения внутрикадрового предсказания 700 CCLM. Внутрикадровое предсказание 700 CCLM является одним из типов межкомпонентного внутрикадрового предсказания. Следовательно, внутрикадровое предсказание 700 CCLM может выполняться блоком254 внутрикадрового предсказания кодера20 и/или блоком 354 внутрикадрового предсказания декодера 30 Внутрикадровое предсказание 700 CCLM предсказывает выборки 703 цветности в блоке 701 цветности. Выборки 703 цветности появляются в целочисленных позициях, показанных в виде сеток или ячеек, образованных пересекающимися линиями. Предсказание частично основано на соседних эталонных выборках, которые показаны черными кружками. Выборки 703 цветности не предсказываются исключительно на основе соседних эталонных выборок 705 цветности, которые обозначены как восстановленные выборки цветности (Rec'C). Выборки 703 цветности также предсказываются на основе восстановленных выборок 713 яркости и соседних эталонных выборок 715 яркости. В частности, CU содержит блок 711 яркости и два блока 701 цветности. Генерируется модель, в которой выборки 703 цветности коррелируют с восстановленными выборками яркости 713 в одной той же CU. Линейные коэффициенты для модели могут быть определены путем сравнения соседних эталонных выборок 715 яркости с соседними эталонными выборками 705 цветности. В примере, линейные коэффициенты для модели могут быть определены путем сравнения эталонных выборок 719 яркости с пониженной дискретизацией выбранных соседних эталонных выборок яркости выборок 715 для выбранных соседних эталонных выборок 705 цветности, и позиции выбранных соседних эталонных выборок 705 цветности могут соответствовать позициям эталонных выборок 719 яркости с пониженной дискретизацией.
Соседние эталонные выборки 705 цветности выбираются из выборок цветности в соседних блоках 701. Соседние эталонные выборки 705 цветности выбираются из верхнего шаблона 707 и/или левого шаблона 706. Например, соседние эталонные выборки 705 цветности могут быть выбраны на основе доступности верхнего шаблона 707 и/или левого шаблона 706. Как показано на фиг. 7D, можно выбрать четыре соседних эталонных выборки 705 цветности. Так как соседние эталонные выборки 705 цветности являются восстановленными выборками, соседние эталонные выборки 705 цветности обозначаются как восстановленные выборки цветности (Rec'C). Восстановленные выборки 713 яркости получаются из блока 711 яркости в том же CU, что и блок 701 цветности. Соседние эталонные выборки 715 яркости выбираются из выборок яркости в соседних блоках, смежных с блоком 711 яркости. Соседние эталонные выборки 715 яркости являются выбирается из верхнего шаблона 717 и/или левого шаблона 716. Например, как показано на фиг. 7D, для получения четырех эталонных выборок 719 яркости с пониженной дискретизацией, которые соответствуют выбранным четырем соседним эталонным выборкам 705 цветности (то есть позиции четырех эталонных выборок 719 яркости с пониженной дискретизацией соответствуют позициям выбранных четырех соседних эталонных выборок цветности 705), выбираются соседние эталонные выборки 715 яркости. Например, если применяется 6-отводный фильтр понижающей дискретизации, шесть соседних эталонных выборок 715 яркости используются для получения одной эталонной выборки 719 яркости с пониженной дискретизацией, которая соответствует одной выбранной соседней эталонной выборке 705 цветности. Восстановленные выборки 713 яркости обозначаются как Rec'L. Кроме того, как также используется в данном документе, шаблон 706, 707, 716 и 717 является механизмом, в котором соседние эталонные выборки 715 яркости коррелируют с соседними эталонными выборками 705 цветности.
Как показано, блок 711 яркости содержит в четыре раза больше выборок, чем блок 701 цветности. В частности, блок 701 цветности содержит N на N выборок, тогда как блок 711 яркости содержит 2N на 2N выборок. Следовательно, разрешение блока 711 яркости в четыре раза больше, чем разрешение блока 701 цветности. Чтобы предсказание работало с восстановленными выборками 713 яркости и (выбранными) соседними эталонными выборками 715 яркости, восстановленные выборки 713 яркости и (выбранные) соседние эталонные выборки 715 яркости подвергаются понижающей дискретизации для того, чтобы обеспечить точное сравнение с соседними эталонными выборками 705 цветности и выборками 703 цветности. Понижающая дискретизация представляет собой процесс уменьшения разрешения группы выборок.
После того, как (выбранные) соседние эталонные выборки 715 яркости и восстановленные выборки 713 яркости подверглись понижающей дискретизации, может быть выработана модель для предсказания выборок 703 цветности блока 701 цветности.
В частности, при внутрикадровом предсказании 700 CCLM, предсказание для выборок цветности 703 блока цветности 701 можно определить в соответствии с моделью, описываемой приведенным ниже уравнением 1:
, (1)
где представляет собой выборку предсказания цветности 703 блока цветности 701 в местоположении (i, j), где i - индекс по горизонтали, и j - индекс по вертикали, - выборка яркости с пониженной дискретизацией в местоположении (i, j) восстановленной выборки 713 яркости, и α и β - линейные коэффициенты, определяемые на основе эталонных выборок с пониженной дискретизацией из (выбранных) соседних эталонных выборок 715 яркости и (выбранных) эталонных выборок 705 цветности. Для формата 4:2:0 YUV каждая выборка цветности имеет 4 совмещенных эталонных выборки яркости, поэтому как выборки яркости, используемые для получения α и β, так и выборки, используемые для вычисления предсказанных выборок цветности, подвергаются понижающей дискретизации (смотри фиг. 6A).
В примере α и β определяются на основе минимального и максимального значений соседних эталонных выборок 719 яркости с пониженной дискретизацией из выбранных соседних эталонных выборок 715 яркости, как описано со ссылкой на фиг. 8 и фиг. 7D. В одной примерной реализации после определения максимального значения яркости и минимального значения яркости на основе эталонных выборок 719 яркости с пониженной дискретизацией; первое значение цветности получается на основе по меньшей частично одной или более позиций (например, двух позиций) одной или более эталонных выборок с пониженной дискретизацией (таких как две эталонные выборки яркости с пониженной дискретизацией), ассоциированных с максимальным значением яркости; например, первое значение цветности получается на основе двух эталонных выборок цветности в двух позициях, которые соответствуют двум эталонным выборкам с пониженной дискретизацией, ассоциированным с максимальным значением яркости. Второе значение цветности получается на основе по меньшей частично одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с минимальным значением яркости; Например, второе значение цветности получается на основе двух эталонных выборок цветности в двух позициях, которые соответствуют двум эталонным выборкам с пониженной дискретизацией, ассоциированным с минимальным значением яркости. Коэффициенты α и β линейной модели вычисляются на основе первого значения цветности, второго значения цветности, максимального значения яркости и минимального значения яркости (смотри фиг. 7D и фиг. 8).
Как отмечено выше, (выбранные) соседние эталонные выборки 715 яркости и восстановленные выборки 713 яркости подвергаются понижающей дискретизации перед выработкой линейной модели. Кроме того, использование нескольких линий/строк и столбцов для выработки соседних эталонных выборок 715 яркости существенно не увеличивает точность оставшихся вычислений в соответствии с внутрикадровым предсказанием 700 CCLM. Таким образом, одна строка и/или столбец соседних эталонных выборок яркости 715 может использоваться во время понижающей дискретизации, что снижает использование памяти строчного буфера без значительного влияния на точность и/или эффективность кодирования внутрикадрового предсказания 700 CCLM.
На фиг. 7B показаны местоположения левой и верхней причинных выборок и выборки текущего блока, задействованного в режиме CCLM, если используется формат 4:4:4 цветности YCbCr. В этом случае понижающая дискретизация для CCLM не выполняется.
На фиг. 7C показаны местоположения левой и верхней причинных выборок и выборки текущего блока, задействованного в режиме CCLM, если используется формат 4:2:2 цветности YCbCr. В этом случае фильтрация выполняется перед понижающей дискретизацией выборок яркости в горизонтальном направлении для CCLM.
На фиг. 10 показано схематичное представление, иллюстрирующее пример механизма 1500 понижающей дискретизации для поддержания межкомпонентного внутрикадрового предсказания.
Механизм 1500 использует одну строку 1518 соседних эталонных выборок яркости и один столбец 1520 соседних эталонных выборок яркости. Строка 1518 и столбец 1520 непосредственно примыкают к блоку 1511 яркости, который использует CU совместно с блоком цветности, предсказанным согласно межкомпонентному внутрикадровому предсказанию. После понижающей дискретизации строка 1518 соседних эталонных выборок яркости становится строкой 1516 соседних эталонных выборок яркости с пониженной дискретизацией. Кроме того, столбец 1520 соседних эталонных выборок яркости подвергается понижающей дискретизации, в результате чего получается единственный столбец 1517 соседних эталонных выборок яркости с пониженной дискретизацией. Соседние эталонные выборки яркости с пониженной дискретизацией из строки 1516 и столбца 1517 могут затем использоваться для межкомпонентного внутрикадрового предсказания согласно уравнению 1.
Соответственно, в одной примерной реализации одна строка 1518 соседних эталонных выборок яркости и один столбец 1520 соседних эталонных выборок яркости подвергаются понижающей дискретизации для использования при межкомпонентном внутрикадровом предсказании. Следует отметить, что в другой примерной реализации выбранные эталонные выборки яркости одной строки 1518 соседних эталонных выборок яркости и выбранные эталонные выборки яркости одного столбца 1520 соседних эталонных выборок подвергаются понижающей дискретизации для использования в межкомпонентном внутрикадровом предсказании.
Для блока 1511 яркости верхняя соседняя строка 1518, обозначенная как A1, используется для понижающей дискретизации, чтобы получить соседнюю строку 1516 с пониженной дискретизацией, обозначенную как A. A[i] является i-й выборкой в A, и A1[i] - i-й выборкой в A1. В конкретном примере один или более фильтров понижения дискретизации, которые определяются или выбираются в зависимости от формата цветности изображения, могут применяться к соседней строке 1518 для получения соседней строки 1516 с пониженной дискретизацией. В другом конкретном примере один или более фильтров понижающей дискретизации, которые определяются или выбираются в зависимости от формата цветности изображения, могут применяться к некоторым выбранным эталонным выборкам яркости A1[i] единственной строки 1518 для получения эталонных выборок с пониженной дискретизацией, как показано на фиг. 7D. Подробности этого случая будут представлены ниже.
Кроме того, левый соседний столбец 1520 обозначен как L1 используется для понижающей дискретизации, чтобы получить соседний столбец 1517 с пониженной дискретизацией, обозначенный как L. L[i] является i-й выборкой в L, и L1[i] - i-й выборкой в L1. В конкретном примере один или более фильтров понижающей дискретизации, которые определяются или выбираются в зависимости от формата цветности изображения, могут применяться к соседнему столбцу 1520 для получения соседнего столбца 1517 с пониженной дискретизацией. Подробности этого случая будут представлены ниже. В другом конкретном примере один или более фильтров понижающей дискретизации, которые определяются или выбираются в зависимости от формата цветности изображения, могут быть применены к некоторым выбранным эталонным выборкам L1[i] яркости одного столбца 1520, чтобы получить эталонные выборки яркости с пониженной дискретизацией, как показано на фиг. 7D.
Кроме того, следует также отметить, что механизм 1500 также может применяться, когда размеры строк 1518 и/или 1516 и/или столбцов 1520 и/или 1517 больше, чем ширина или высота блока 1511 яркости или блока 1512 яркости с пониженной дискретизацией. В альтернативном построении этот механизм 1500 также может применяться к некоторым выбранным соседним эталонным выборкам A1[i] и/или некоторым выбранным соседним эталонным выборкам L1[i].
На фиг. 11 показана блок-схема примерного процесса 1100 для выполнения внутрикадрового предсказания с использованием линейной модели согласно некоторым вариантам осуществления настоящего раскрытия. Способ может выполняться видеокодером20 и/или видеодекодером 30 системы 10 или 40 кодеков, показанной на фиг. 1А и 1B. В частности, способ может выполняться блоком244 внутрикадрового предсказания видеокодера20, показанным на фиг. 2, и/или блоком 354 внутрикадрового предсказания видеодекодера 30, показанным на фиг. 3.
На этапе 1101 определяется набор фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок, при этом текущий блок содержит блок яркости и совмещенный блок цветности. Можно понять, что каждый фильтр понижающей дискретизации из набора фильтров понижающей дискретизации может быть определен одним или более коэффициентами фильтра понижающей дискретизации. Этот случай будет подробно описан ниже.
В блоке 1103 выборки яркости с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонные выборки яркости с пониженной дискретизацией из выбранных эталонных выборок яркости (а именно, из выбранных соседних (смежных) выборок яркости) блока яркости получаются с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации.
Можно понять, что пространственное разрешение блока яркости обычно больше, чем у блока цветности, и блок яркости (то есть восстановленный блок яркости) подвергается понижающей дискретизации для получения блока яркости с пониженной дискретизацией, как показано на фиг. 10. Восстановленные выборки яркости, которые являются смежными по горизонтали и/или по вертикали с выбранной соседней выборкой яркости (эталонной выборкой яркости с пониженной дискретизацией), используются для получения эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости вне блока яркости, как показано на фиг. 9 или 10.
На этапе 1105 один или более коэффициентов линейной модели определяются или выводятся на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, которые соответствуют (или ассоциированы с) эталонными выборками яркости с пониженной дискретизацией; и
на этапе 1107 выборки предсказания блока цветности, который соответствует блоку яркости, получаются на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.
Этап 1101 предназначен для определения, или получения или выбора значений переменных SubWidthC) и SubHeightC на основе информации о формате цветности, указывающей формат цветности кодируемого изображения.
Этап 1101 предназначен для уточнения или определения фильтра "F", используемого для значений переменных SubWidthC и SubHeightC.
Примерные варианты осуществления, касающиеся того, как фильтры могут быть ассоциированы с соответствующими значениями SubWidthC и SubHeightC, представлены в таблицах 2-5. Пространственный фильтр "F" определяется в виде матрицы коэффициентов. Позиции выборок, к которым применяются эти коэффициенты, определяются следующим образом, где позиция фильтрованных или модифицированных выборок яркости обозначена как (x, y):
. (5)
Когда позиция выходной фильтрованной восстановленной выборки находится на границе блока, некоторые из соседних позиций могут стать недоступными из-за недоступности соседних блоков. В этом случае выбор входных выборок модифицируется для дублирования выборок на границе блока. Эта модификация может быть реализована как применение другого фильтра к меньшему набору выборок с другими коэффициентами фильтра.
В частности, когда выходная выборка находится на левой границе текущего блока, и выборки, смежные слева от блока яркости, недоступны, позиции выборок, используемых для фильтрации, определяются следующим образом:
. (6)
Когда выходная выборка находится на верхней границе текущего блока, и выборки, смежные с верхней стороной блока яркости, недоступны, позиции выборок, используемых для фильтрации, определяются следующим образом:
. (7)
Когда позиция выходной выборки находится на правой границе текущего блока, позиции выборок, используемых для фильтрации, определяются следующим образом:
. (8)
Когда позиция выходной выборки находится на нижней границе текущего блока, позиции выборок, используемых для фильтрации, определяются следующим образом:
(9)
Таблица 2. Пример связи пространственного фильтра со значениями SubWidthC и SubHeightC
SubWidthC SubHeightC Пространственный фильтр F
1 1
1 2
2 1
2 2
Таблица 3. Пример связи пространственного фильтра со значениями SubWidthC и SubHeightC
SubWidthC SubHeightC Пространственный фильтр
1 1
1 2
2 1
2 2
Таблица 4. Пример связи пространственного фильтра со значениями SubWidthC и SubHeightC
SubWidthC SubHeightC Пространственный фильтр F
1 1
1 2
2 1
2 2
Таблица 5. Пример связи пространственного фильтра со значениями SubWidthC и SubHeightC
SubWidthC SubHeightC Пространственный фильтр F
1 1
1 2
2 1
2 2
Блок 1103 должен выполнять фильтрацию восстановленной выборки яркости для того, чтобы получить значения фильтрованной выборки яркости. В частности, это выполняется путем применения выбранного фильтра "F" к восстановленным выборкам
,
где F представляет собой пространственный фильтр, N представляет собой сумму коэффициентов пространственного фильтра F, и (x, y) представляет собой позиция восстановленной выборки. Эта фильтрация соответствует сценарию, показанному в уравнении (5). В других сценариях, таких как описанные выше по отношению к уравнениям (6)-(9), фильтрация может быть применена путем регулировки вышеупомянутой фильтрации на основе позиций выборок, показанных в уравнениях (6)-(9).
В дополнительном варианте осуществления фильтр может переключаться между различными типами фильтров (такими как различные ассоциации фильтров, определенные в таблицах 2-5) в зависимости от позиции субдискретизированных выборок цветности относительно выборок яркости. В качестве примера, когда субдискретизированные выборки цветности не совмещены с соответствующими выборкими яркости (как показано на фиг. 6D, смотри тип 0, 1, 3 или 5 выборки цветности, о чем сигнализирует флаг (например, sps_cclm_colocated_chroma_flag является значением 0) в битовом потоке), используется таблица 4. В противном случае для текущего блока используется таблица 2 или таблица 3.
Определение относительно использования таблицы 2 или таблицы 3 может быть выполнено на основе количества выборок яркости в текущем блоке. Например, для блоков, содержащих 64 или менее выборок, фильтрация цветности не применяется тогда, когда не выполняется субдискретизация цветности (таким образом, для использования выбирается таблица 2). С другой стороны, когда размер блока превышает 64 выборки, для определения фильтра "F" используется таблица 3. Следует отметить, что 64 выборки используются только в качестве примера, могут использоваться и другие пороговые значения для количества выборок.
В другом варианте осуществления фильтр F выбирается в соответствии с информацией, указывающей формат цветности и тип цветности, как показано в таблицах 6-10. Тип цветности определяет смещение компонента цветности и показан на фиг. 6D. На фиг. 6D для выборки цветности типа 2 и 4 выборки цветности субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости. Для типов выборок цветности 0, 1, 3 и 5 субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости. В таблицах 6-10 фильтры, указанные в столбце "YUV 4:2:0", используются в предыдущем проекте проекта VVC. Столбцы "YUV 4:2:2" и "YUV 4:4:4" определяют фильтры, которые могут заменить фильтры, определенные в столбце "YUV 4:2:0" в том случае, когда определен соответствующий формат цветности.
Таблица 6. Связь пространственного фильтра F со значениями формата цветности и типом цветности (типы цветности показаны на фиг. 6D).
Тип цветности YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
Тип цветности - 0
Тип цветности -2
Таблица 7. Связь пространственного фильтра F со значениями формата цветности и типом цветности.
Тип цветности YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
Тип цветности - 0
Тип цветности -2
Таблица 8. Связь пространственного фильтра F со значениями формата цветности и типом цветности.
Тип цветности YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
Тип цветности - 0
Тип цветности -2
Таблица 9. Связь пространственного фильтра F со значениями формата цветности и типом цветности.
Тип цветности YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
Тип цветности - 0
Тип цветности -2
Таблица 10. Связь пространственного фильтра F со значениями формата цветности и типом цветности.
Тип цветности YUV 4:2:0 YUV 4:2:2 YUV 4:4:4
Тип цветности - 0
Тип цветности -2
Фильтр может быть реализован различными способами, включая операцию обхода фильтром (то есть путем установки выходного значения на входное значение, то есть фильтр является обходным фильтром).
В качестве альтернативы это может быть реализовано с использованием аналогичных операций сложения и сдвига, то есть:
Согласно предложенным изменениям, подробности процесса выполнения внутрикадрового предсказания с использованием линейной модели (межкомпонентное предсказание блока) согласно одному примерному варианту осуществления, представленному в данном документе, описаны следующим образом в формате части спецификации проекта VVC:
3. Совмещенные выборки pDsY[x][y] with x=0..nTbW - 1, y=0..nTbH -1 яркости с пониженной дискретизацией получаются следующим образом:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
- pDsY[x][y] with x=1..nTbW - 1, y=1..nTbH -1 получается следующим образом:
pDsY[x][y]=
(F[1][0] * pY[ SubWidthC * x ][ SubHeightC * y -1] +
+ F[0][1] * pY[ SubWidthC * x -1][ SubHeightC * y ] +
+ F[1][1] * pY[ SubWidthC * x ][ SubHeightC * y ] +
+ F[2][1] * pY[ SubWidthC * x +1][ SubHeightC * y ] +
+ F[1][2] * pY[ SubWidthC * x ][ SubHeightC * y +1] + 4) >> 3
- Если availL равно значению "истина", pDsY[0][y] при y=1..nTbH -1 получается следующим образом:
pDsY[0][y]=
(F[1][0] * pY[0][ SubHeightC * y -1] +
+ F[0][1] * pY[ -1][ SubHeightC * y ] +
+ F[1][1] * pY[0][ SubHeightC * y ] +
+2) >>2
- В противном случае pDsY[0][y] при y=1..nTbH -1 получается следующим образом:
pDsY[0][y]=
(2 * F[1][0] * pY[0][ SubHeightC * y -1] +
+ F[1][1] * pY[0][ SubHeightC * y ] +
+2) >>2
- Если availT равно значению "истина", pDsY[x][0] при x=1..nTbW -1 получается следующим образом:
pDsY[x][0]=
(F[1][0] * pY[ SubWidthC * x ][ -1] +
+ F[0][1] * pY[ SubWidthC * x -1][0] +
+ F[1][1] * pY[ SubWidthC * x ][0] +
+ F[2][1] * pY[ SubWidthC * x +1][0] +
+ F[1][2] * pY[ SubWidthC * x ][ 1] + 4) >> 3
- В противном случае pDsY[x][0] при x=1..nTbW -1 получается следующим образом:
pDsY[x][0]=
(F[1][0] * pY[ SubWidthC * x ][ -1] +
+ F[0][1] * pY[ SubWidthC * x -1][0] +
+ F[1][1] * pY[ SubWidthC * x ][0] +
+ F[2][1] * pY[ SubWidthC * x +1][0] +
+ F[1][2] * pY[ SubWidthC * x ][ 1] + 4) >> 3
- Если availL равно значению "истина", и availT равно значению "истина", pDsY[0][0] получается следующим образом:
pDsY[0][0]=
p[x][y]
+ F[0][1] * pY[ -1][0] +
+ F[1][1] * pY[0][0] +
+ F[2][1] * pY[1][0] +
+ F[1][2] * pY[0][ 1] + 4) >> 3
- В противном случае, если availL равно значению "истина", и availT равно значению "ложь", pDsY[0][0] получается следующим образом:
pDsY[0][0]=
(F[0][1] * pY[ -1][0] +
+ F[1][1] * pY[0][0] +
+ F[2][1] * pY[1][0] +
+2) >>2
- В противном случае, если availL равно значению "ложь", и availT равно значению "истина", pDsY[0][0] получается следующим образом:
pDsY[0][0]=(pY[0][ -1 ] +2 * pY[0][0] + pY[0][1] +2) >>2 (8-169)
- В противном случае (availL равно значению "ложь", и availT равно значению "ложь") pDsY[0][0] получается следующим образом:
pDsY[0][0]=pY[0][0] (8-170)
- В противном случае применяется следующее:
pDsY[x][y] при x=1..nTbW - 1, y=0..nTbH -1 получается следующим образом:
pDsY[x][y]=
(F[0][1] * pY[ SubWidthC * x -1][ SubHeightC * y ] +
+ F[0][2] * pY[ SubWidthC * x -1][ SubHeightC * y +1] +
+ F[1][1] * pY[ SubWidthC * x ][ SubHeightC * y ] +
+ F[1][2] * pY[ SubWidthC * x ][ SubHeightC * y + 1] +
+ F[2][1] * pY[ SubWidthC * x +1][ SubHeightC * y ] +
+ F[2][2] * pY[ SubWidthC * x +1][ SubHeightC * y +1] + 4) >> 3
- Если availL равно значению "истина", pDsY[0][y] при y=0..nTbH -1 получается следующим образом:
pDsY[0][y]=
(F[0][1] * pY[ -1][ SubHeightC * y ] +
+ F[0][2] * pY[ -1][ SubHeightC * y +1] +
+ F[1][1] * pY[0][ SubHeightC * y ] +
+ F[1][2] * pY[0][ SubHeightC * y + 1] +
+ F[2][1] * pY[1][ SubHeightC * y ] +
+ F[2][2] * pY[1][ SubHeightC * y +1] + 4) >> 3
- В противном случае pDsY[0][y] при y=0..nTbH -1 получается следующим образом:
pDsY[0][y]=
(F[1][1] * pY[0][ SubHeightC * y ] +
+ F[1][2] * pY[0][ SubHeightC * y + 1] +1) >> 1
Фильтр F[i][j], упомянутый в описании выше, определен в соответствии с вариантами осуществления, представленными в данном документе.
Подробности процесса для выполнения внутрикадрового предсказания с использованием линейной модели (межкомпонентного предсказания блока) согласно другому примерному варианту осуществления описаны следующим образом в формате части спецификации проекта VVC:
8.4.4.2.8 Спецификация режима внутрикадрового предсказания INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM
Входными данными в этом процессе являются:
- режим predModeIntra внутрикадрового предсказания,
- местоположение выборки (xTbC, yTbC) верхней левой выборки текущего блока преобразования относительно верхней левой выборки текущего изображения,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования,
- соседние выборки p[x][y] цветности при x=-1, y=0..2 * nTbH -1и x=0..2 * nTbW - 1, y=- 1.
Результатом этого процесса являются предсказанные выборки predSamples[x][y] при x=0..nTbW - 1, y=0..nTbH - 1.
Текущее местоположение выборок (xTbY, yTbY) яркости получается следующим образом:
(xTbY, yTbY)=(xTbC << (SubWidthC - 1), yTbC << (SubHeightC - 1))(8-156)
Переменные availL, availT и availTL получаются следующим образом:
- Доступность процесса получения левых соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается availL.
- Доступность процесса получения верхних соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается пользование.
- Доступность процесса получения соседних выборок, расположенных сверху слева, для блока связана с текущим местоположением сигнала (xCurr, yCurr) цветности, установленным равным (xTbC, yTbC), и с местоположением (xTbC - 1, yTbC - 1) соседней выборки цветности в качестве входных данных, и выходным данным назначается availTL.
- Количество доступных выборок numTopRight цветности, расположенных справа сверху, получается следующим образом:
- Переменная numTopRight устанавливается равной 0, и availTR устанавливается равным значению "истина".
- Когда predModeIntra равно INTRA_T_CCLM, для x=nTbW..2 * nTbW -1 применяется следующее до тех, пока availTR не станет равным значению "ложь", или x не станет равным2 * nTbW - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC + x, yTbC - 1) выборок цветности в качестве входных данных, и выходным данным назначается availableTR.
- Когда availableTR равно значению "истина", numTopRight увеличивается на единицу.
- Количество доступных слева внизу соседних выборок цветности numLeftBelow получается следующим образом:
- Переменная numLeftBelow устанавливается равной 0, и availLB устанавливается равным значению "истина".
- Когда predModeIntra равно INTRA_L_CCLM, следующее применяется для y=nTbH..2 * nTbH -1до тех пор, пока availLB не станет равным значению "ложь", или y не станет равным2 * nTbH - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением цветности (xTbC - 1, yTbC + y) в качестве входных данных, и выходным данным назначается availableLB
- Когда availableLB равно значению "истина", numLeftBelow увеличивается на единицу.
Количество доступных соседних выборок numTopSamp цветности, расположенных сверху и сверху справа, и количество доступных соседних выборок цветности, расположенных слева и слева под nLeftSamp получаются следующим образом:
- Если predModeIntra равно INTRA_LT_CCLM, применяется следующее:
numSampT=availT? nTbW: 0
numSampL=availL? нТбН: 0
- В противном случае применяется следующее:
numSampT=(availT && predModeIntra==INTRA_T_CCLM) ? (nTbW + numTopRight): 0
numSampL=(availL && predModeIntra==INTRA_L_CCLM) ? (nTbH + numLeftBelow): 0
Переменная bCTUboundary получается следующим образом:
bCTUboundary=(yTbC & (1<< (CtbLog2SizeY -1) -1)== 0) ? TRUE : FALSE.
- Выборки predSamples[x][y] предсказания при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если как numSampL, так и numSampT равны 0, применяется следующее:
predSamples[x][y]=1<< (BitDepthC - 1)
- В противном случае применяются следующие упорядоченные этапы:
1. Совмещенные выборки pY[x][y] яркости при x=0..nTbW * SubWidthC - 1, y=0..nTbH * SubHeightC-1 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
2. Соседние выборки выборок pY[x][y] яркости получаются следующим образом:
- Когда numSampL больше 0, соседние левые выборки яркости pY[x][y ] при x=-1..- 3, y=0..SubHeightC * numSampL -1 устанавливаются равными восстановленной выборки яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
- Когда numSampT больше 0, соседние верхние выборки pY[x][y] яркости при x=0..SubWidthC * numSampT - 1, y=-1, -2, устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
- Когда availTL равно значению "истина", соседние верхние левые выборки pY[x][y] яркости при x=-1, y=-1, -2 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
3. Совмещенные выборки pDsY[x][y] яркости с пониженной дискретизацией при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
- pDsY[x][y] при x=1..nTbW-1, y=1..nTbH -1 получается следующим образом:
pDstY[x][y]=pY[x][y]
// Пояснительные примечания: понижающая дискретизация не требуется, то есть фильтрация не выполняется тогда, когда 4:4:4 (если оба SubWidthC и SubHeightC равны 1), и это также может быть интерпретировано как фильтр с коэффициентом [1], то есть как обходной фильтр //
- В противном случае для набора фильтров {F3, F5, F6} применяется следующее.
// Пояснительные примечания: Здесь определяют коэффициенты фильтров, когда 4:2:0 или 4:2:2 (если оба SubWidthC и SubHeightC не равны 1), при этом F2 принадлежит как первому, так и второму наборам фильтров понижающей дискретизации //
-
F3[0]=1, F3[1]=2, F3[2]=1
- Если SubWidthC==2, и SubHeightC==2
F5[0][1]=1, F5[1][1]=4, F3[2][1]=1, F5[1][0]=1, F5[1][2]=1"
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
- В противном случае
F5[0][1]=0, F5[1][1]=8, F3[2][1]=0, F5[1][0]=0, F5[1][2]=0"
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0
Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
pDsY[x][y] при x=x=1..nTbW - 1, y=1..nTbH -1 получается следующим образом, путем установки F равным F5:
pDsY[x][y]=
(F[1][0] * pY[SubWidthC * x][SubHeightC * y - 1] +
+ F[0][1] * pY[SubWidthC * x - 1][SubHeightC * y] +
+ F[1][1] * pY[SubWidthC * x][SubHeightC * y] +
+ F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] +
+ F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + 4) >> 3
// Пояснительные примечания: F5 соответствует заявленному первому фильтру понижающей дискретизации //
//
- Если availL равно значению "истина", pDsY[0][y] при y=1..nTbH -1 получается для F, установленного на F5, следующим образом:
pDsY[0][y]=
(F[1][0] * pY[0][SubHeightC * y - 1] +
+ F[0][1] * pY[- 1][SubHeightC * y] +
+ F[1][1] * pY[0][SubHeightC * y] +
+ F[2][1] * pY[1][SubHeightC * y] +
+ F[1][2] * pY[0][SubHeightC * y + 1] + 4) >> 3
- В противном случае pDsY[0][y] при y=1..nTbH -1 получается для F, установленного на F3, следующим образом:
pDsY[0][y]=
(F[0] * pY[0][SubHeightC * y - 1] +
+ F[1] * pY[0][SubHeightC * y] +
+ F[2] * pY[0][SubHeightC * y + 1] +
+2) >>2
Если availT равно значению "истина", pDsY[x][0] при x=1..nTbW -1 получается для F, установленного на F5, следующим образом:
pDsY[x][0]=
(F[1][0] * pY[SubWidthC * x][- 1] +
+ F[0][1] * pY[SubWidthC * x - 1][0] +
+ F[1][1] * pY[SubWidth C * x][0] +
+ F[2][1] * pY[SubWidthC * x + 1][0] +
+ F[1][2] * pY[SubWidthC * x][1] + 4) >> 3
- В противном случае pDsY[x][0] при x=1..nTbW -1 получается для F, установленного на F3, следующим образом:
pDsY[x][0]=
= (F[0] * pY[SubWidthC * x - 1][0] +
+ F[1] * pY[SubWidthC * x][0] +
+ F[2] * pY[SubWidthC * x + 1][0] +2) >>2
Если availL равно значению "истина", и availT равно значению "истина", pDsY[0][0] получается для F, установленного на F5, следующим образом:
pDsY[0][0]=
(F[1][0] * pY[0][- 1] +
+ F[0][1] * pY[- 1][0] +
+ F[1][1] * pY[0][0] +
+ F[2][1] * pY[1][0] +
+ F[1][2] * pY[0][1] + 4) >> 3
- В противном случае, если availL равно значению "истина", и availT равно значению "ложь", pDsY[0][0] получается для F, установленного на F3, следующим образом:
pDsY[0][0]=
(F[0] * pY[- 1][0] +
+ F[1] * pY[0][0] +
+ F[2] * pY[1][0] +
+2) >>2
- В противном случае, если availL равно значению "ложь", и availT равно значению "истина", pDsY[0][0] получается для F, установленного на F3, следующим образом:
pDsY[0][0]=
(F[0] * pY[0][-1] +
+ F[1] * p Y[0][0] ++ F[2] * pY[0][1] +
+2) >>2
- В противном случае (availL равно значению "ложь", и availT равно значению "ложь") pDsY[0][0] получается следующим образом:
pDsY[0][0]=pY[0][0]
- В противном случае применяется следующее:
pDsY[x][y] при x=1..nTbW - 1, y=0..nTbH -1 получается для F, установленного на F6, следующим образом:
pDsY[x][y]=
(F[0][1] * pY[SubWidthC * x - 1][SubHeightC * y] +
+ F[0][2] * pY[SubWidthC * x - 1][SubHeightC * y + 1] +
+ F[1][1] * pY[SubWidthC * x][SubHeightC * y] +
+ F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] +
+ F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] +
+ F[2][2] * pY[SubWidthC * x +1][SubHeightC * y + 1] + 4) >> 3
Если availL равно значению "истина", pDsY[0][y] при y=0..nTbH -1 получается для F, установленного на F6, следующим образом:
pDsY[0][y]=
(F[0][1] * pY[- 1][SubHeightC * y] +
+ F[0][2] * pY[- 1][SubHeightC * y + 1] +
+ F[1][1] * pY[0][SubHeightC * y] +
+ F[1][2] * pY[0][SubHeightC * y + 1] +
+ F[2][1] * pY[1][SubHeightC * y] +
+ F[2][2] * pY[1][SubHeightC * y + 1] + 4) >> 3
- В противном случае pDsY[0][y] при y=0..nTbH -1 получается для F, установленного на F2, следующим образом:
pDsY[0][y]=
(F[0] * pY[0][SubHeightC * y] +
+ F[1] * pY[0][SubHeightC * y + 1] + 1) >> 1
// Этап 3 представляет собой реализацию для получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока с использованием соответствующих фильтров понижающей дискретизации.
4. Когда numSampL больше 0, соседние левые выборки яркости pLeftDsY[y] с пониженной дискретизацией при y=0..numSampL -1 получаются следующим образом:
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
- pLeftDsY[y] при y=0..nTbH -1получается следующим образом: pLeftDsY[y]=pY[-1][y]
- В противном случае применяется следующее:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
- pLeftDsY[y] при y=1..nTbH -1получается для F, установленного на F5, следующим образом:
pLeftDsY[y]=
= F[1][0] * pY[- SubWidthC][SubHeightC * y - 1] +
+ F[0][1] * pY[-1 - SubWidthC][SubHeightC * y] +
+ F[1][1] * pY[- SubWidthC ][SubHeightC * y] +
+ F[2][1] * pY[1 - SubWidthC][SubHeightC * y] +
+ F[1][2] * pY[- SubWidthC][SubHeightC * y + 1] + 4) >> 3
- Если availTL равно значению "истина", pLeftDsY[0] получается для F, установленного на F5, следующим образом:
pLeftDsY[0]=
= F[1][0] * pY[- SubWidthC][- 1] +
+ F[0][1] * pY[-1 - SubWidthC][0] +
+ F[1][1] * pY[- SubWidthC][0] +
+ F[2][1] * pY[1 - SubWidthC][0] +
+ F[1][2] * pY[- SubWidthC][1] + 4) >> 3
- В противном случае pDsY[x][0] при x=1..nTbW -1 получается для F, установленного на F3, следующим образом:
pLeftDsY[0]=
(F[0] * pY[-1 - SubWidthC][0] +
+ F[1] * pY[- SubWidthC][0] +
+ F[2] * pY[1 - SubWidthC][0] +
+2) >>2
- В противном случае для F, установленного на F6, применяется следующее:
pLeftDsY[y]=
= (F[0][1] * pY[-1- Su bWidthC][SubHeightC * y] +
+ F[0][2] * pY[-1 - SubWidthC][SubHeightC * y + 1] +
+ F[1][1] * pY[- SubWidthC][SubHeightC * y] +
+ F[1][2] * pY[- SubWidthC][SubHeightC * y + 1] +
+ F[2][1] * pY[1 - SubWidthC][SubHeightC * y] +
+ F[2][2] * pY[1 - SubWidthC][SubHeightC * y + 1] + 4) >> 3
// Пояснительные примечания: Этапы 4 и 5 представляют собой реализацию для получения эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации.//
5. Когда numSampT больше 0, соседние верхние выборки яркости pTopDsY[x] с пониженной дискретизацией при x=0..numSampT -1 устанавливаются следующим образом:
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
- pTopDsY[x]=pY[x][- 1] для x=0..numSampT-1
- В противном случае применяется следующее:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
- pTopDsY[x] при x=1..numSampT -1 получается следующим образом:
- Если bCTUboundary равно значению "ложь", то для F, установленного на F5, применяется следующее:
pTopDsY[x]=
= (F[1][0] * pY[SubWidthC * x][-1- SubHeightC] +
+ F[0][1] * pY[SubWidthC * x - 1][- SubHeightC] +
+ F[1][1] * pY[SubWidthC * x][- SubHeightC] +
+ F[2][1] * pY[SubWidthC * x + 1][- SubHeightC] +
+ F[1][2] * pY[SubWidthC * x][1 - SubHeig htC] + 4) >> 3
- В противном случае (bCTUboundary равно значению "истина") для F, установленного на F3, применяется следующее:
pTopDsY[x]=
= (F[0] * pY[SubWidthC * x - 1][-1] +
+ F[1] * pY[SubWidthC * x][-1] +
+ F[2] * pY[SubWidthC * x + 1][-1] +
+2) >>2
- pTopDsY[0] получается следующим образом:
- Если availTL равно значению "истина", и bCTUboundary равно значению "ложь", то для F, установленного на F5, применяется следующее:
pTopDsY[0]=
= F[1][0] * pY[- 1][-1- SubHeightC] +
+ F[0][1] * pY[- 1][- SubHeightC] +
+ F[1][1] * pY[0][- SubHeightC] +
+ F[2][1] * pY[1][- SubHeightC] + +
+ F[1][2] pY[- 1][1 - SubHeightC] + + 4) >> 3
- В противном случае, если availTL равно значению "истина", и bCTUboundary равно значению "истина", то для F, установленного на F3, применяется следующее:
pTopDsY[0]=
= (F[0] * pY[-1][-1] +
+ F[1] * pY[0][-1] +
+ F[2] * pY[1][-1] +
+2) >>2
- В противном случае, если availTL равно значению "ложь", и bCTUboundary равно значению "ложь", то для F, установленного на F3, применяется следующее:
pTopDsY[0]=
= (F[0] * pY[0][-1] +
+ F[1] * pY[0][-2] +
+ F[2] * pY[0][-1] +
+2) >>2
- В противном случае (availTL равно значению "ложь", и bCTUboundary равно значению "истина") применяется следующее:
pTopDsY[0]=pY[0][-1]
- В противном случае применяется следующее:
- pTopDsY[x] при x=1..numSampT -1 получается следующим образом:
- Если bCTUboundary равно значению "ложь", то для F, установленного на F6, применяется следующее:
pTopDsY[x]=
= (F[0][1] * pY[SubWidthC * x - 1][-2] +
+ F[0][2] * pY[SubWidthC * x - 1][-1] +
+ F[1][1] * pY[SubWidthC * x][-2] +
+ F[1][2] * pY[SubWidthC * x][-1] +
+ F[2][1] * pY[SubWidthC * x + 1][-2] +
+ F[2][2] * pY[SubWidthC * x + 1][-1] + 4) >> 3
- В противном случае (bCTUboundary равно значению "истина") для F, установленного на F3, применяется следующее:
pTopDsY[x]=
= (F[0] * pY[SubWidthC * y - 1][- 1] +
+ F[1] * pY[SubWidthC * y][- 1] +
+ F[2] * pY[SubWidthC * y + 1][- 1] +
+2) >>2
- pTopDsY[0] получается следующим образом:
- Если availTL равно значению "истина", и bCTUboundary равно значению "ложь", то для F, установленного на F6, применяется следующее:
pTop DsY[0]=
= (F[0][1] * pY[- 1][-2] +
+ F[0][2] * pY[- 1][-1] +
+ F[1][1] * pY[0][-2] +
+ F[1][2] * pY[0][-1] +
+ F[2][1] * pY[1][-2] +
+ F[2][2] * pY[1][-1] + 4) >> 3
- В противном случае, если availTL равно значению "истина", и bCTUboundary равно значению "истина", то для F, установленного на F3, применяется следующее:
pTopDsY[0]=
= (F[0] * pY[- 1][- 1] +
+ F[1] * pY[0][- 1] +
+ F[2] * pY[1][- 1] +
+2) >>2
- В противном случае, если availTL равно значению "ложь", и bCTUboundary равно значению "ложь", то для F, установленного на F2, применяется следующее:
pTopDsY[0]=(F[1] * pY[0][-2] + F[0] * pY[0][-1] + 1) >> 1
- В противном случае (availTL равно значению "ложь", и bCTUboundary равно значению "истина") применяется следующее:
pTopDsY[0]=pY[0][-1]
// Пояснительные примечания: Этапы 4 и 5 представляют собой реализацию для получения эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости блока яркости путем применения соответствующего фильтра понижающей дискретизации. //
6. Переменные nS, xS, yS получаются следующим образом:
- Если predModeIntra равно INTRA_LT_CCLM, применяется следующее:
nS=((availL && availT) ? Min(nTbW, nTbH) : (availL ? nTbH : nTbW))
xS=1 << (((nTbW > nTbH) && availL && availT) ? (Log2(nTbW) - Log2(nTbH)) :0) (8-192)
yS=1<< (((nTbH > nTbW) && availL && availT) ? (Log2(nTbH) - Log2(nTbW)) :0) (8-193)
- В противном случае, если predModeIntra равно INTRA_L_CCLM, применяется следующее:
nS=numSampL
xS=1
yS=1
- В противном случае (predModeIntra равно INTRA_T_CCLM) применяется следующее:
nS=numSampT
xS=1
yS=1
7. Переменные minY, maxY, minC и maxC получаются следующим образом:
Переменная minY устанавливается равной 1<< (BitDepthY) + 1, и переменная maxY устанавливается равной -1.
- Если availT равно значению "истина", переменные minY, maxY, minC и maxC при x=0..nS -1 получаются следующим образом:
- Если minY больше pTopDsY[x * xS], применяется следующее:
minY=pTopDsY[x * xS]
minC=p[x * xS][-1]
- Если maxY меньше pTop DsY[x * xS], применяется следующее:
maxY=pTopDsY[x * xS]
maxC=p[x * xS][-1]
- Если availL равно значению "истина", переменные minY, maxY, minC и maxC при y=0..nS -1 получаются следующим образом:
- Если minY больше pLeftDsY[y * yS], применяется следующее:
minY=pLeftDsY[y * yS]
minC=p[-1][y * yS]
- Если maxY меньше pLeftDsY[y * yS], применяется следующее:
maxY=pLeftDsY[y * yS]
maxC=p[-1][y * yS]
8. Переменные a, b и k получаются следующим образом:
- Если numSampL равно 0, и numSampT равно 0, применяется следующее:
к=0
а=0
b=1 << (BitDepthC - 1)
- В противном случае применяется следующее:
diff=maxY - minY
- Если diff не равно 0, применяется следующее:
diffC=maxC - minC
x=Floor(Log2(diff))
normDiff=((diff << 4) >> x) & 15
х +=(normDiff!=0)? 1: 0
y=Floor(Log2(Abs(diffC))) + 1
a=(diffC * (divSigTable [normDiff] | 8) +2y - 1) >> y
к=((3 + х - у) <1)? 1: 3 + х - у
а=((3 + х - у) <1)? Sign(а) * 15: а
b=minC - ((a * minY) >> k)
где divSigTable [] указывается следующим образом:
divSigTable []={0, 7, 6, 5, 5, 4, 4, 3, 3,2,2, 1, 1, 1, 1, 0}
- В противном случае (diff равен 0) применяется следующее:
к=0
а=0
b=minC
// Пояснительные примечания: Этапы 6-8 представляют собой реализацию для определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости и эталонных выборок цветности, которые соответствуют эталонным выборкам яркости с пониженной дискретизацией; в частности, определение коэффициентов линейной модели основано на minY, maxY, minC и maxC.
9. Выборки predSamples[x][y] предсказания при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
predSamples[x][y]=Clip1C(((pDsY[x][y] * a) >> k) + b)
// Пояснительные примечания: Этап 9 является реализацией для получения выборок предсказания блока цветности, который соответствует блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.//
Следует отметить, что в настоящем раскрытии для набора фильтров {F2, F3, F5, F6} одноразрядное число, следующее за "F", является индексом, используемым для представления различных фильтров в наборе фильтров. Фильтр определяется одним или более коэффициентами фильтра, которые должны применяться к соответствующим выборкам. Например, если один или более коэффициентов фильтра понижающей дискретизации, которые должны применяться к соответствующим выборкам в F3, совпадают с одним или более коэффициентами фильтра понижающей дискретизации, применяемыми к соответствующим выборкам в F2, можно понять, что F3 и F2 - это один и тот же фильтр; например, если F3[0]=1, F3[1]=2, F3[2]=1и F2[0]=1, F2[1]=2, F2[2]=1, то F3=F2 .
Например, если один или более коэффициентов фильтра понижающей дискретизации, которые должны применяться к соответствующим выборкам в F5, отличаются от одного или более коэффициентов фильтра понижающей дискретизации, применяемых к соответствующим выборкам в F5, можно понять, что F5 и F5 - это разные фильтры, даже если названия у них одинаковые; например, если F5[0][1]=1, F5[1][1]=4, F 5[2][1]=1, F5[1][0]=1, F5[1][2]=1и F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0, то F5 ≠ F5.
Следует отметить, что в настоящем раскрытии используется фильтр с коэффициентом [1], то есть как обходной фильтр, одномерный неотделимый фильтр (F[i]) и двухмерный неотделимый фильтр (F[i][j]).
В другом варианте осуществления описан способ получения параметров CCLM максимум с четырьмя соседними выборками цветности и их соответствующими выборками яркости с пониженной дискретизацией.
Предположим, что текущие блок цветности имеет размер W×H, то W’ и H’ устанавливаются как
W’=W, H’=H, когда применяется режим LM (в режиме LM используются верхний и левый шаблоны);
W’=W+H, когда применяется режим LM-A (в режиме LM-A используется только верхний шаблон);
H’=H+W, когда применяется режим LM-L (в режиме LM-L используются только левые шаблоны);
Вышеупомянутые соседние выборки (то есть соседние выборки цветности, которые находятся выше текущего блока) обозначаются как S[0, -1]… S[W'-1, -1], и соседние левые выборки (то есть соседние выборки цветности, которые находятся слева от текущего блока) обозначаются как S[-1, 0]… S[-1, H'-1]. Здесь S[x, y] обозначает выборку в позиции (x, y). (x, y) измеряется относительно левой верхней выборки текущего блока (то есть левая верхняя выборка блока отмечена как (0,0)). Затем четыре соседних выборки цветности, используемые для получения параметров CCLM, могут быть указаны как (соответственно, позиции четырех соседних выборок с пониженной дискретизацией из выбранных соседних выборок яркости обозначены как):
• S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда применяется режим LM, и доступны соседние выборки цветности, которые находятся как выше, так и слева;
• S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A, или доступны только те соседние выборки цветности, которые находятся выше;
• S[-1, H'/ 8], S[-1, 3H'/8], S[-1, 5H'/ 8], S[-1, 7H'/8], когда применяется режим LM-L, или доступны только левые соседние выборки;
Каждая из четырех соседних выборок яркости с пониженной дискретизацией получается путем применения соответствующего фильтра понижающей дискретизации к части или ко всем выбранным соседним выборкам яркости. Четыре соседних выборки яркости с пониженной дискретизацией, соответствующие четырем соседним выборкам цветности, выбранным выше, сравниваются четыре раза, чтобы найти два меньших значения: x0 A и x1 A, и два больших значения: x0 B и x1 B, где любой из x0 B и x1 B больше любого из x0 A и x1 A. Соответствующие им значения выборки цветности обозначаются как y0 A, y1 A, y0 B. Тогда xA, xB, yA и yB выводятся как:
xA=(x0 A + x1 A +1)>>1; xB=(x0 B + x1 B +1)>>1; yA=(y0 A + y1 A +1)>>1;
yB=(y0 B + y1 B +1)>>1.
Подробности процесса для выполнения внутрикадрового предсказания с использованием линейной модели (межкомпонентное предсказание блока) согласно другому примерному варианту осуществления, представленному в данном документе, описываются следующим образом в формате части спецификации проекта VVC (версия приведенного ниже раздела 8.4.4.2.8 отличается от версии приведенного выше раздела 8.4.4.2.8):
8.4.4.2.8 Спецификация режима внутрикадрового предсказания INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM
Входными данными в этом процессе являются:
- режим predModeIntra внутрикадрового предсказания,
- местоположение выборок (xTbC, yTbC) верхней левой выборки текущего блока преобразования относительно верхней левой выборки текущего изображения,
- переменная nTbW, определяющая ширину блока преобразования,
- переменная nTbH, определяющая высоту блока преобразования,
- соседние выборки цветности p[x][y] при x=-1, y=0..2 * nTbH -1и x=0..2 * nTbW - 1, y=- 1.
Результатом этого процесса являются предсказанные выборки predSamples[x][y] при x=0..nTbW - 1, y=0..nTbH - 1.
Текущее местоположение выборок (xTbY, yTbY) яркости получается следующим образом:
(xTbY, yTbY)=(xTbC << (SubWidthC - 1), yTbC << (SubHeightC - 1))
Переменные availL, availT и availTL получаются следующим образом:
- Доступность процесса получения левых соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC - 1, yTbC) выборок цветности, выбранным в качестве входных данных, и выходным данным назначается availL.
- Доступность процесса получения верхних соседних выборок для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением цветности (xTbC, yTbC - 1) в качестве входных данных, и выходным данным назначается availT.
- Доступность процесса получения соседних выборок, расположенных сверху слева, для блока связана с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с местоположением (xTbC - 1, yTbC - 1) соседней выборки цветности в качестве входных данных, и выходным данным назначается availTL
- Количество доступных выборок numTopRight цветности, расположенных справа сверху, получается следующим образом:
- Переменная numTopRight устанавливается равным 0, и availTR устанавливается равным значению "истина".
- Когда predModeIntra равно INTRA_T_CCLM, для x=nTbW..2 * nTbW -1 применяется следующее до тех пор, пока availTR не станет равным значению "ложь", или x не станет равным2 * nTbW - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением (xTbC + x, yTbC - 1) выборок цветности в качестве входных данных, и выходным данным назначается availableTR
- Когда availableTR равно значению "истина", numTopRight увеличивается на единицу.
- Количество доступных слева ниже соседних выборок цветности numLeftBelow получается следующим образом:
- Переменная numLeftBelow устанавливается равной 0, и availLB устанавливается равным значению "истина".
- Когда predModeIntra равно INTRA_L_CCLM, применяется следующее для y=nTbH..2 * nTbH -1 до тех пор, пока availLB не станет равным значению "ложь", или y не станет равным2 * nTbH - 1:
- Процесс получения доступности для блока связан с текущим местоположением (xCurr, yCurr) выборок цветности, установленным равным (xTbC, yTbC), и с соседним местоположением цветности (xTbC - 1, yTbC + y) в качестве входных данных, и выходным данным назначается availableLB
- Когда availableLB равно значению "истина", numLeftBelow увеличивается на единицу.
Количество доступных соседних выборок numTopSamp цветности, расположенных сверху и сверху справа, и количество доступных соседних выборок nLeftSamp цветности, расположенных слева и слева внизу, получаются следующим образом:
- Если predModeIntra равно INTRA_LT_CCLM, применяется следующее:
numSampT=availT? nTbW: 0
numSampL=availL? нТбН: 0
- В противном случае применяется следующее:
numSampT=(availT && predModeIntra== INTRA_T_CCLM)?
(nTbW + Min (numTopRight, nTbH)): 0
numSampL=(availL && predModeIntra== INTRA_L_CCLM)?
(nTbH + Min (numLeftBelow, nTbW)) : 0
Переменная bCTUboundary получается следующим образом:
bCTUboundary=(yTbC & (1<< (CtbLog2SizeY -1) -1)== 0) ? TRUE : FALSE.
Переменная cntN и массив pickPosN [], где N заменяется на L и T, получаются следующим образом:
- Переменная numIs4N устанавливается равной ((availT && availL && predModeIntra==INTRA_LT_CCLM)? 0: 1).
- Переменная startPosN устанавливается равной numSampN >> (2 + numIs4N).
- Переменная pickStepN устанавливается равной Max (1, numSampN >> (1 + numIs4N)).
- Если availN равно значению "истина", и predModeIntra равно INTRA_LT_CCLM или INTRA_N_CCLM, cntN устанавливается равным Min (numSampN, (1 + numIs4N) << 1), и pickPosN [pos] устанавливается равным (startPosN + pos * pickStepN) при pos=0..(cntN -1).
- В противном случае cntN устанавливается равным 0.
Выборки predSamples[x][y] предсказания при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если как numSampL, так и numSampT равны 0, применяется следующее:
predSamples[x][y]=1<< (BitDepthC - 1)
- В противном случае применяются следующие этапы:
1. Совмещенные выборки pY[x][y] яркости при x=0..nTbW * SubWidthC - 1, y=0..nTbH * SubHeightC-1 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
2. Соседние выборки pY[x][y] яркости получаются следующим образом:
- Когда numSampL больше 0, соседние левые выборки pY[x][y] яркости при x=-1..- 3, y=0..SubHeightC * numSampL -1 устанавливаются равными восстановленным выборкам яркости до обработки фильтром удаления блочности в местоположениях (xTbY + х, yTbY + у).
- Когда numSampT больше 0, то соседние верхние выборки р [х][у] яркости при х=0..SubWidthC * numSampT - 1, у=-1, -2, устанавливается равным восстановленные выборки яркостных до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
- Когда availTL равно значению "истина", соседние верхние левые выборки яркости PY[х][у] при х=-1, у=-1, -2, устанавливаются равным восстановленные выборки яркости до обработки фильтром удаления блочности в местоположениях (xTbY + x, yTbY + y).
3. Совмещенные выборки pDsY[x][y] яркости с пониженной дискретизацией при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
pDsY[x][y] при x=1..nTbW-1, y=1..nTbH -1 получается следующим образом:
pDstY[x][y]=pY[x][y]
// Пояснительные примечания: предназначены только для пояснения: при отсутствии фильтра для формата 4:4:4 YUV понижающая дискретизация не требуется, то есть фильтрация не выполняется при формате 4:4:4 (если оба SubWidthC и SubHeightC равны 1), и фильтр может также интерпретироваться как фильтр с коэффициентом [1], то есть как обходной фильтр.//
- В противном случае для набора фильтров {F3, F5, F6} применяется следующее: // Пояснительные примечания: Здесь следует определить коэффициенты фильтров в случае форматов 4:2:0 или 4:2:2 (если оба SubWidthC и SubHeightC не равны 1), при этом F2 принадлежит как первому, так и второму набору фильтров понижающей дискретизации.//
F3[0]=1, F3[1]=2, F3[2]=1
- Если SubWidthC==2, и SubHeightC==2
F5[0][1]=1, F5[1][1]=4, F3[2][1]=1, F5[1][0]=1, F5[1][2]=1"
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1
- В противном случае
F5[0][1]=0, F5[1][1]=8, F3[2][1]=0, F5[1][0]=0, F5[1][2]=0"
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2 ]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
pDsY[x][y] при x=1..nTbW - 1, y=1..nTbH -1 получается следующим образом путем установки F равным F5:
pDsY[x][y]=
(F[1][0] * pY[SubWidthC * x][SubHeightC * y - 1] +
+ F[0][1] * pY[SubWidthC * x - 1][SubHeightC * y] +
+ F[1][1] * pY[SubWidthC * x][SubHeightC * y] +
+ F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] +
+ F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] + 4) >> 3 // Пояснительные примечания: F5 соответствует заявленному первому фильтру понижающей дискретизации //
- Если availL равно значению "истина", pDsY[0][y] при y=1..nTbH -1 получается для F, установленного на F5, следующим образом:
pDsY[0][y]=
(F[1][0] * pY[0][SubHeightC * y - 1] +
+ F[0][1] * pY[- 1][SubHeightC * y] +
+ F[1][1] * pY[0][SubHeightC * y] +
+ F[2][1] * pY[1][SubHeightC * y] +
+ F[1][2] * pY[0][SubHeightC * y + 1] + 4) >> 3
- В противном случае pDsY[0][y] при y=1..nTbH -1 получается для F, установленного на F3 следующим образом:
pDsY[0][y]=
(F[0] * pY[0][SubHeightC * y - 1] +
+ F[1] * pY[0][SubHeightC * y] +
+ F[2] * pY[0][SubHeightC * y + 1] +
+2) >>2
- Если availT равно значению "истина", pDsY[x][0] при x=1..nTbW -1 получается для F, установленного на F5, следующим образом:
pDsY[x][0]=
(F[1][0] * pY[SubWidthC * x][- 1] +
+ F[0][1] * pY[SubWidthC * x - 1][0] +
+ F[1][1] * pY[SubWidthC * x][0] +
+ F[2][1] * pY[SubWidthC * x + 1][0] +
+ F[1][2] * pY[SubWidthC * x][1] + 4) >> 3
- В противном случае pDsY[x][0] при x=1..nTbW -1 получается для F, установленного на F3, следующим образом:
pDsY[x][0]=
= (F[0] * pY[SubWidthC * x - 1][0] +
+ F[1] * pY[SubWidthC * x][0] +
+ F[2] * pY[SubWidthC * x + 1][0] +2) >>2
- Если availL равно значению "истина", и availT равно значению "истина", pDsY[0][0] получается для F, установленного на F5, следующим образом:
pDsY[0][0]=
(F[1][0] * pY[0][- 1] +
+ F[0][1] * pY[- 1][0] +
+ F[1][1] * pY[0][0] +
+ F[2][1] * pY[1][0] +
+ F[1][2] * pY[0][1] + 4) >> 3
- В противном случае, если availL равно значению "истина", и availT равно значению "ложь", pDsY[0][0] получается для F, установленного на F3, следующим образом:
pDsY[0][0]=
(F[0] * pY[- 1][0] +
+ F[1] * pY[0][0] +
+ F[2] * pY[1][0] +
+2) >>2
- В противном случае, если availL равно значению "ложь", и availT равно значению "истина", pDsY[0][0] получается для F, установленного на F3, следующим образом:
pDsY[0][0]=
(F[0] * pY[0][-1] +
+ F[1] * pY[0][0] +
+ F[2] * pY[0][1] +
+2) >>2
- В противном случае (availL равно значению "ложь", и availT равно значению "ложь") pDsY[0][0] получается следующим образом:
pDsY[0][0]=pY[0][0]
- В противном случае применяется следующее:
pDsY[x][y] при x=1..nTbW - 1, y=0..nTbH -1 получается для F, установленного на F6, следующим образом:
pDsY[x][y]=
(F[0][1] * pY[SubWidthC * x - 1][SubHeightC * y] +
+ F[0][2] * pY[SubWidthC * x - 1][SubHeightC * y + 1] +
+ F[1][1] * pY[SubWidthC * x ][SubHeightC * y] +
+ F[1][2] * pY[SubWidthC * x][SubHeightC * y + 1] +
+ F[2][1] * pY[SubWidthC * x + 1][SubHeightC * y] +
+ F[2][2] * pY[SubWidthC * x +1][SubHeightC * y + 1] + 4) >> 3
- Если availL равно значению "истина", pDsY[0][y] при y=0..nTbH -1 получается для F, установленного на F6, следующим образом:
pDsY[0][y]=
(F[0][1] * pY[- 1][SubHeightC * y] +
+ F[0][2] * pY[- 1][SubHeightC * y + 1] +
+ F[1][1] * pY[0][SubHeightC * y] +
+ F[1][2] * pY[0][SubHeightC * y + 1] +
+ F[2][1] * pY[ 1][SubHeightC * y] +
+ F[2][2] * pY[1][SubHeightC * y + 1] + 4) >> 3
- В противном случае pDsY[0][y] при y=0..nTbH -1получается для F, установленного на F2, следующим образом:
pDsY[0][y]=
(F[0] * pY[0][SubHeightC * y] +
+ F[1] * pY[0][SubHeightC * y + 1] + 1) >> 1
// Этап 3 является реализацией для получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока с использованием соответствующих фильтров понижающей дискретизации.//
4. Когда numSampL больше 0, выбранные соседние левые выборки цветности pSelC[idx] устанавливаются равными p[-1][pickPosL[idx]] при idx=0..(cntL - 1), и выбранные с пониженной дискретизацией соседние левые выборки яркости pSelDsY[idx] при idx=0..(cntL-1) получаются следующим образом:
- Переменная y устанавливается равной pickPosL[idx].
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
pSelDsY[i]=pY[-1][y]
- В противном случае применяется следующее:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
- Если y >0|| availTL==TRUE, если F установлен на F5:
pSelDsY[idx]=
= F[1 ][0] * pY[- SubWidthC][SubHeightC * y - 1] +
+ F[0][1] * pY[-1 - SubWidthC][SubHeightC * y] +
+ F[1][1] * pY[- SubWidthC][SubHeightC * y] +
+ F[2][1] * pY[1 - SubWidthC][SubHeightC * y] +
+ F[1][2] * pY[- SubWidthC][SubHeightC * y + 1] + 4) >> 3
- В противном случае F установить на F3:
pSelDsY[idx]=
(F[0] * pY[-1 - SubWidthC][0] +
+ F[1] * pY[- SubWidthC][0] +
+ F[2] * pY[1 - SubWidthC][0] +
+2) >>2
- В противном случае для F, установленного на F6, применяется следующее:
pSelDsY[idx]=
= (F[0][1] * pY[-1- SubWidthC][SubHeightC * y] +
+ F[0][2] * pY[-1 - SubWidthC][SubHeightC * y + 1] +
+ F[1][1] * pY[- SubWidthC][SubHeightC * y] +
+ F[1][2] * pY[- SubWidthC][SubHeightC * y + 1] +
+ F[2][1] * pY[1 - SubWidthC][SubHeigh tC * y] +
+ F[2][2] * pY[1 - SubWidthC][SubHeightC * y + 1] + 4) >> 3
// Пояснительные примечания: Этапы 4 и 5 представляют собой реализацию для получения эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации.
Когда numSampT больше 0, выбранные соседние верхние выборки цветности pSelC[idx] устанавливаются равными p[pickPosT[idx - cntL]][-1] при idx=cntL..pSelC[idx], и соседние верхние выборки яркости pSelDsY[idx] с пониженной дискретизацией при idx=cntL..cntL + cntT -1устанавливаются следующим образом:
Переменная x устанавливается равной pickPosT[idx - cntL].
- Если SubWidthC==1, и SubHeightC==1, применяется следующее:
pSelDsY[idx]=pY[x][- 1]
- В противном случае применяется следующее:
- Если sps_cclm_colocated_chroma_flag равно 1, применяется следующее:
- Если x > 0:
- Если bCTUboundary равно значению "ложь", то для F, установленного на F5, применяется следующее:
pSelDsY[idx]=
= (F[1][0] * pY[SubWidthC * x][- 1- SubHeightC] +
+ F[0][1] * pY[SubWidthC * x - 1][- SubHeightC] +
+ F[1][1] * pY[SubWidthC * x][- SubHeightC] +
+ F[2][1] * pY[SubWidthC * x + 1][- SubHeightC] +
+ F[1][2] * pY[SubWidthC * x][1 - SubHeightC] + 4) >> 3
- В противном случае (bCTUboundary равно значению "истина") для F, установленного на F3, применяется следующее:
pSelDsY[idx]=
= (F[0] * pY[SubWidthC * x - 1][-1] +
+ F[1] * pY[SubWidthC * x][-1] +
+ F[2] * pY[SubWidthC * x + 1][-1] +
+2) >>2
- В противном случае:
- Если availTL равно значению "истина", и bCTUboundary равно значению "ложь", то для F, установленного на F5, применяется следующее:
pSelDsY[idx]=
= F[1][0] * pY[- 1][- 1- SubHeightC] +
+ F[0][1] * pY[- 1][- SubHeightC] +
+ F[1][1] * pY[0][- SubHeightC] +
+ F[2][1] * pY[1][- SubHeightC] +
+ F[1][2] pY[- 1][1 - SubHeightC] + 4) >> 3
- В противном случае, если availTL равно значению "истина", и bCTUboundary равно значению "истина", то для F, установленного на F3, применяется следующее:
pSelDsY[idx]=
= (F[0] * pY[-1][-1] +
+ F[1] * pY[0][-1] + (8 182)
+ F[2] * pY[1][-1] +
+2) >>2
- В противном случае, если availTL равно значению "ложь", и bCTUboundary равно значению "ложь", то для F, установленного на F3, применяется следующее:
pSelDsY[idx]=
= (F[0] * pY[0][-1] +
+ F[1] * pY[0][-2] +
+ F[2] * pY[0][-1] +
+2) >>2
- В противном случае (availTL равно значению "ложь", и bCTUboundary равно значению "истина") применяется следующее:
pSelDsY[idx]=pY[0][-1]
- В противном случае применяется следующее:
- Если x > 0:
- Если bCTUboundary равно значению "ложь", то для F, установленного на F6, применяется следующее:
pSelDsY[idx]=
= (F[0][1] * pY[SubWidthC * x - 1][-2] +
+ F[0][2] * pY[SubWidthC * x - 1][-1] +
+ F[1][1] * pY[SubWidthC * x][-2] +
+ F[1][2] * pY[SubWidthC * x][-1] +
+ F[2][1] * pY[SubWidthC * x + 1][-2] +
+ F[2][2] * pY[SubWidthC * x + 1][-1] + 4) >> 3
- В противном случае (bCTUboundary равно значению "истина") для F, установленного на F3, применяется следующее:
pSelDsY[idx]=
= (F[0] * pY[SubWidthC * y - 1][- 1] +
+ F[1] * pY[SubWidthC * y][- 1] +
+ F[2] * pY[SubWidthC * y + 1][- 1] +
+2) >>2
- В противном случае:
- Если availTL равно значению "истина", и bCTUboundary равно значению "ложь", то для F, установленного на F6, применяется следующее:
pSelDsY[idx]=
= (F[0][1] * pY[- 1][-2] +
+ F[0][2] * pY[- 1][-1] +
+ F[1][1] * pY[0][-2] +
+ F[1][2] * pY[0][-1] +
+ F[2][1] * pY[1][-2] +
+ F[2][2] * pY[1][-1] + 4) >> 3
- В противном случае, если availTL равно значению "истина", и bCTUboundary равно значению "истина", то для F, установленного на F3, применяется следующее:
pSelDsY[idx]=
= (F[0] * pY[- 1][- 1] +
+ F[1] * pY[0][- 1] +
+ F[2] * pY[1][- 1] +
+2) >>2
- В противном случае, если availTL равно значению "ложь", и bCTUboundary равно значению "ложь", то для F, установленного на F2, применяется следующее:
pSelDsY[idx]=(F[1] * pY[0][-2] + F[0] * pY[0][-1] + 1) >> 1
- В противном случае (availTL равно значению "ложь", и bCTUboundary равно значению "истина") применяется следующее:
pSelDsY[idx]=pY[0][-1]
// Пояснительные примечания: Этапы 4 и 5 представляют собой реализацию для получения эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости блока яркости путем применения соответствующего фильтра понижающей дискретизации.
Когда cntT+cntL не равно 0, переменные minY, maxY, minC и maxC получаются следующим образом:
Когда cntT+cntL равно2, установить pSelComp[3] равным pSelComp[0], pSelComp[2] равным pSelComp[1], pSelComp[0] равным pSelComp[1] и pSelComp[1] ] равный pSelComp[3], где Comp заменяется на DsY и C.
Массивы minGrpIdx[] и maxGrpIdx[] задаются следующим образом: minGrpIdx[0]=0, minGrpIdx[1]=2, maxGrpIdx[0]=1, maxGrpIdx[1]=3.
- Если pSelDsY[minGrpIdx[0]] > pSelDsY[minGrpIdx[1]], Swap(minGrpIdx[0], minGrpIdx[1]).
- Если pSelDsY[maxGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(maxGrpIdx[0], maxGrpIdx[1]).
- Если pSelDsY[minGrpIdx[0]] > pSelDsY[maxGrpIdx[1]], Swap(minGrpIdx, maxGrpIdx).
- Если pSelDsY[minGrpIdx[1]] > pSelDsY[maxGrpIdx[0]], Swap(minGrpIdx[1], maxGrpIdx[0]).
maxY=(pSelDsY[maxGrpIdx[0]] + pSelDsY[maxGrpIdx[1]] + 1) >> 1.
maxC=(pSelC[maxGrpIdx[0]] + pSelC[maxGrpIdx[1]] + 1) >> 1.
minY=(pSelDsY[minGrpIdx[0]] + pSelDsY[minGrpIdx[1]] + 1) >> 1.
minC=(pSelC[minGrpIdx[0]] + pSelC[minGrpIdx[1]] + 1) >> 1.
Переменные a, b и k получаются следующим образом:
- Если numSampL равно 0, и numSampT равно 0, применяется следующее:
к=0
а=0
b=1 << (BitDepthC - 1)
- В противном случае применяется следующее:
diff=maxY - minY
- Если diff не равно 0, применяется следующее:
diffC=maxC - minC
x=Floor(Log2(diff))
normDiff=((diff << 4) >> x) & 15
х +=(normDiff!=0)? 1: 0
y=Floor(Log2(Abs(diffC))) + 1
a=(diffC * (divSigTable [normDiff] | 8) +2y - 1) >> y
к=((3 + х - у) <1)? 1: 3 + х - у
а=((3 + х - у) <1)? Sign(а) * 15: а
b=minC - ((a * minY) >> k)
где divSigTable [] указывается следующим образом:
divSigTable []={0, 7, 6, 5, 5, 4, 4, 3, 3,2,2, 1, 1, 1, 1, 0}
- В противном случае (diff равен 0) применяется следующее:
к=0
а=0
b=minC
// Пояснительные примечания: Этапы 6-7 представляют собой реализацию для определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией из выбранных соседних выборок яркости и эталонных выборок цветности, которые соответствуют эталонным выборкам яркости с пониженной дискретизацией; в частности, определение коэффициентов линейной модели основано на minY, maxY, minC и maxC.//
Выборки predSamples[x][y] предсказания при x=0..nTbW - 1, y=0..nTbH -1 получаются следующим образом:
predSamples[x][y]=Clip1C(((pDsY[x][y] * a) >> k) + b) // Пояснительные примечания: Этап 8 является реализацией для получения выборок предсказания блока цветности, который соответствует блоку яркости на основе коэффициентов линейной модели, и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.
На фиг. 12 показано устройство для выполнения внутрикадрового предсказания с использованием линейной модели согласно другому аспекту раскрытия. Устройство 1200 содержит:
блок 1201 определения, выполненный с возможностью определения набора фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок;
блок 1203 фильтрации, выполненный с возможностью получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости (или выбранных соседних выборок яркости) блока яркости с использованием соответствующих фильтров понижающей дискретизации из (выбранных из) набора фильтров понижающей дискретизации;
блок 1205 получения линейной модели, выполненный с возможностью определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, которые соответствуют эталонным выборкам с пониженной дискретизацией; и
блок 1207 предсказания, выполненный с возможностью получения выборок предсказания блока цветности, который соответствует блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости.
Соответственно, в примере примерная структура устройства 1200 может соответствовать кодеру20, показанному на фиг. 2. В другом примере примерная структура устройства 1200 может соответствовать декодеру 30, показанному на фиг. 3.
В другом примере примерная структура устройства 1200 может соответствовать блоку 254 внутрикадрового предсказания, показанному на фиг. 2. В другом примере примерная структура устройства 1200 может соответствовать блоку 354 внутрикадрового предсказания, показанному на фиг. 3.
Настоящее раскрытие предоставляет следующие дополнительные аспекты.
Согласно первому аспекту раскрытие относится к способу внутрикадрового предсказания с использованием линейной модели. Способ выполняется устройством кодирования (в частности, устройством для внутрикадрового предсказания). Способ включает в себя:
- определение фильтра для выборки яркости (например, каждой выборки яркости), принадлежащей блоку (то есть внутренним выборкам текущего блока), на основе формата цветности изображения, которому принадлежит текущий блок; в частности, разные выборки яркости могут соответствовать разным фильтрам. В основном, в зависимости от того, находится ли он на границе.
- в позиции выборки яркости (такой как каждая выборка яркости), принадлежащей текущему блоку, применение определенного фильтра к области восстановленных выборок яркости для того, чтобы получить фильтрованную восстановленную выборку яркости (такую как );
- получение на основе фильтрованной восстановленной выборки яркости набора выборок яркости, используемых в качестве входных данных для получения линейной модели; и
выполнение межкомпонентного предсказания (такого как межкомпонентное предсказание цветности по яркости или предсказание CCLM) на основе коэффициентов линейной модели получения линейной модели и фильтрованной восстановленной выборки яркости.
Настоящее раскрытие относится к фильтру яркости CCLM. Раскрытие касается фильтрации выборок яркости. Раскрытие относится к выбору фильтра, который выполняется внутри CCLM.
CCLM относится к предсказанию цветности использует восстановленную яркость для предсказания сигнала цветности.
В возможной форме реализации способа согласно по существу первому аспекту определение фильтра содержит:
определение фильтра на основе позиции выборки яркости в текущем блоке и формата цветности; или
определение соответствующих фильтров для множества выборок яркости, принадлежащих текущему блоку, на основе соответствующих позиций выборок яркости в текущем блоке и формата цветности. Можно понять, что если доступны выборки, смежные с текущим блоком, фильтр может использовать их также для фильтрации граничной зоны текущего блока.
В возможной форме реализации способа согласно по существу первому аспекту, определение фильтра содержит: определение фильтра на основе одного или нескольких из следующего:
формат цветности изображения, которому принадлежит текущий блок,
позиция выборки яркости в текущем блоке,
количество выборок яркости, принадлежащих текущему блоку,
ширина и высота текущего блока, и
позиция субдискретизированной выборки цветности относительно выборки яркости в текущем блоке.
В возможной форме реализации способа согласно по существу первому аспекту, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости, первое соотношение (например, таблица 4) между множеством фильтров и значениями ширины и высоты текущего блока используется для определения фильтра;
когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости, второе или третье соотношение (например, таблица 2 или таблица 3) между множеством фильтров и значениями ширины и высоты текущего блок используется для определения фильтра.
В возможной форме реализации способа согласно по существу первому аспекту, второе или третье соотношение (например, таблица 2 или таблица 3) между множеством фильтров и значениями ширины и высоты текущего блока определяется на основе количества выборок яркости, принадлежащих текущему блоку.
В возможной форме реализации способа согласно по существу первому аспекту, фильтр содержит ненулевые коэффициенты в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, когда компонент цветности текущего блок не субдискретизирован. (Например, , где центральная позиция с коэффициентом "4" соответствует позиции фильтрованной восстановленной выборки яркости
В возможной форме реализации способа согласно по существу первому аспекту, зона восстановленных выборок яркости включает в себя множество восстановленных выборок яркости, которые относятся к позиции фильтрованной восстановленной выборки, и позиция фильтрованной восстановленной выборки яркости соответствует позиции выборки яркости, принадлежащей текущему блоку, и позиция фильтрованной восстановленной выборки яркости находится внутри блока яркости текущего блока.
В возможной форме реализации способа согласно по существу первому аспекту, зона восстановленных выборок яркости включает в себя множество восстановленных выборок яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованных восстановленных выборок яркости, и позиция фильтрованной восстановленной выборки яркости соответствует позиции выборки яркости, принадлежащей текущему блоку, и позиция фильтрованной восстановленной выборки яркости находится внутри текущего блока (такого как текущий блок яркости или компонент яркости текущего блока). Например, позиция фильтрованной восстановленной выборки яркости находится внутри текущего блока (правая часть фиг. 8, мы применяем фильтр к выборкам яркости).
В возможной форме реализации способа согласно по существу первому аспекту формат цветности содержит формат 4:4:4 цветности YCbCr, формат 4:2:0 цветности YCbCr, формат 4:2:2 цветности YCbCr или монохромный формат.
В возможной форме реализации способа согласно по существу первому аспекту, набор выборок яркости, используемых в качестве входных данных для получения линейной модели, содержит:
граничные восстановленные выборки яркости, которые субдискретизируются из фильтрованных восстановленных выборок яркости (например, ).
В возможной форме реализации способа согласно по существу первому аспекту предиктор для текущего блока цветности получается на основе:
где представляет собой выборку сигнала цветности, и представляет собой соответствующую восстановленную выборку яркости.
В возможной форме реализации способа согласно по существу первому аспекту, линейная модель является многонаправленной линейной моделью (MDLM), и коэффициенты линейной модели используются для получения MDLM.
Согласно второму аспекту раскрытия выполнен способ внутрикадрового предсказания с использованием линейной модели, содержащий:
- определение фильтра для компонента яркости текущего блока на основе формата цветности изображения, которому принадлежит текущий блок;
- применение определенного фильтра к зоне восстановленных выборок яркости компонента яркости текущего блока и выборок яркости в выбранной соседней позиции (одна или несколько строк/один или несколько столбцов, смежных с левой или верхней стороной текущего блока) к текущему блоку для того, чтобы получить фильтрованные восстановленные выборки яркости (например, фильтрованные восстановленные выборки яркости внутри текущего блока (например, компонент яркости текущего блока));
получение, на основе фильтрованных восстановленных выборок яркости в качестве входных данных получения линейной модели (например, набор выборок яркости включает в себя фильтрованные восстановленные выборки яркости внутри текущего блока и фильтрованные соседние выборки яркости вне текущего блока, например, определенный фильтр может также применяться к соседним выборкам яркости вне текущего блока), коэффициентов линейной модели; и
выполнение межкомпонентного предсказания на основе полученных коэффициентов линейной модели и фильтрованных восстановленных выборок яркости текущего блока (например, фильтрованных восстановленных выборок яркости внутри текущего блока (например, компонента яркости текущего блока)) для получения предиктора текущего блока цветности.
В возможной форме реализации способа согласно по существу второму аспекту определение фильтра содержит:
определение фильтра на основе позиции выборки яркости в текущем блоке и формата цветности; или
определение соответствующих фильтров для множества выборок яркости, принадлежащих текущему блоку, на основе соответствующих позиций выборок яркости в текущем блоке и формата цветности.
В возможной форме реализации способа согласно по существу второму аспекту, определение фильтра содержит: определение фильтра на основе одного или более из следующего:
информация о коэффициенте субдискретизации (такая как SubWidthC и SubHeightC, которая может быть получена из таблицы в соответствии с форматом цветности изображения, которому принадлежит текущий блок),
формат цветности изображения, которому принадлежит текущий блок (например, в котором формат цветности используется для получения информации о коэффициенте субдискретизации (такой как SubWidthC и SubHeightC)),
позиция выборки яркости в текущем блоке,
количество выборок яркости, принадлежащих текущему блоку,
ширина и высота текущего блока, и/или
позиция субдискретизированной выборки цветности относительно выборки яркости в текущем блоке.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости, первое предварительно установленное соотношение (например, таблица 4) между множеством фильтров и информацией о коэффициенте субдискретизации (такой как SubWidthC и SubHeightC или такой как значения ширины и высоты текущего блока) используется для определения фильтра; и/или
когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости, предварительно установленное второе или третье предварительно установленное соотношение (например, таблица 2 или таблица 3) между множеством фильтров и информацией о коэффициенте субдискретизации (такой как SubWidthC и SubHeightC или такой как значения ширины и высоты текущего блока) используется для определения фильтра.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, второе или третье соотношение (например, таблица 2 или таблица 3) между множеством фильтров и информацией о коэффициенте субдискретизации (такой как SubWidthC и SubHeightC или такой как значения ширины и высоты текущего блока) определяется на основе количества определенных выборок яркости (таких как доступная выборка яркости), принадлежащих текущему блоку.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, фильтр определяется условно следующим образом:
если первое условие (например, информация о коэффициенте субдискретизации, полученная из таблицы, определенной в спецификации, например, SubWidthC==1, и SubHeightC==1) не выполняется, то для набора фильтров {F3, F5, F6} применяется следующее;
F3[0]=1, F3[1]=2, F3[2]=1;
если второе условие (например, информация о коэффициенте субдискретизации, полученная из таблицы, например, SubWidthC==2, и SubHeightC==2) выполняется, то
F5[0][1]=1, F5[1][1]=4, F3[2][1]=1, F5[1][0]=1, F5[1][2]=1
F6[0][1]=1, F6[1][1]=2, F6[2][1]=1,
F6[0][2]=1, F6[1][2]=2, F6[2][2]=1,
F2[0]=1, F2[1]=1.
В противном случае (например, если второе условие (информация о коэффициенте субдискретизации, полученная из таблицы, такая как SubWidthC==2, и SubHeightC==2) не выполняется, то
F5[0][1]=0, F5[1][1]=8, F5[2][1]=0, F5[1][0]=0, F5[1][2]=0
F6[0][1]=2, F6[1][1]=4, F6[2][1]=2,
F6[0][2]=0, F6[1][2]=0, F6[2][2]=0,
F2[0]=2, F2[1]=0.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, фильтр содержит ненулевые коэффициенты в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборкы яркости, когда компонент цветности текущего блока не субдискретизирован.
(например, , где центральная позиция с коэффициентом "4" соответствует позиции фильтрованной восстановленной выборки яркости
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, зона восстановленных выборок яркости включает в себя множество восстановленных выборок яркости, которые относятся к позиции фильтрованных восстановленных выборки, и позиция фильтрованной восстановленной выборки яркости соответствует позиции выборки яркости, принадлежащей блоку, и позиция фильтрованной восстановленной выборки яркости находится внутри блока яркости блока.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, зона восстановленных выборок яркости включает в себя множество восстановленных выборок яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией фильтрованной восстановленной выборки яркости, и позиция фильтрованной восстановленной выборки яркости соответствует позиции фильтрованной восстановленной выборки яркости, принадлежащей блоку, и позиция фильтрованной восстановленной выборки яркости находится внутри блока (такого как текущий блок яркости или компонент яркости текущего блока).
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, формат цветности содержит формат 4:4:4 цветности YCbCr, формат 4:2:0 цветности YCbCr, формат 4:2:2 цветности YCbCr или монохромный формат.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, набор выборок яркости, используемых в качестве входных данных для получения линейной модели, содержит:
граничные восстановленные выборки яркости, которые субдискретизируются из фильтрованных восстановленных выборок яркости (таких как ).
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, предиктор для текущего блока цветности получается на основе:
где представляет собой выборка сигнала цветности, и представляет собой соответствующее восстановленное значение выборки яркости (например, позиция соответствующей восстановленной выборке яркости находится внутри текущего блока), α и β представляют собой коэффициенты линейной модели.
В возможной форме реализации способа согласно по существу любой предыдущей реализации второго аспекта или второго аспекта, линейная модель является многонаправленной линейной моделью (MDLM), и коэффициенты линейной модели используются для получения MDLM.
Согласно третьему аспекту раскрытия выполнен способ кодирования, реализуемый устройством кодирования, содержащий:
выполнение внутрикадрового предсказания с использованием линейной модели (такой как межкомпонентная линейная модель (CCLM) или многонаправленная линейная модель (MDLM)), которая описана в настоящем раскрытии; и
выработку битового потока, включающего в себя множество синтаксических элементов, причем множество синтаксических элементов включает в себя синтаксический элемент, который указывает выбор фильтра для выборки яркости, принадлежащей блоку (например, выбор фильтра яркости CCLM, в частности, флаг SPS, например, sps_cclm_colocated_chroma_flag).
В возможной форме реализации способа согласно по существу третьему аспекту, когда значение синтаксического элемента равно1или значению "истина", фильтр не применяется к выборке яркости для определения линейной модели и предсказания;
Когда значение синтаксического элемента равно0или значению "ложь", фильтр применяется к выборке яркости для определения линейной модели и предсказания.
Согласно четвертому аспекту раскрытия выполнен способ декодирования, реализуемый устройством декодирования, содержащий:
синтаксический анализ из битового потока множества синтаксических элементов, причем множество синтаксических элементов включает в себя синтаксический элемент, который указывает выбор фильтра для выборки яркости, принадлежащей блоку (например, выбор фильтра яркости CCLM, в частности, флаг SPS, например, sps_cclm_colocated_chroma_flag); и
выполнение внутрикадрового предсказания с использованием указанной линейной модели (такой как CCLM), как описано в настоящем раскрытии.
В возможной форме реализации способа согласно по существу четвертому аспекту, когда значение синтаксического элемента равно0или значению "ложь", фильтр применяется к выборке яркости для определения линейной модели и предсказания;
когда значение синтаксического элемента равно1или значению "истина", фильтр не применяется к выборке яркости для определения линейной модели и предсказания.
Согласно пятому аспекту раскрытия выполнено устройство для внутрикадрового предсказания с использованием линейной модели, содержащее:
- блок определения, выполненный с возможностью определения фильтра для выборки яркости, принадлежащей блоку, на основе формата цветности изображения, которому принадлежит текущий блок;
- блок фильтрации, выполненный с возможностью, в позиции выборки яркости, принадлежащей текущему блоку, применения определенного фильтра к зоне восстановленных выборок яркости, чтобы получить фильтрованную восстановленную выборку яркости;
- блок получения, выполненный с возможностью получения на основе фильтрованной восстановленной выборки яркости, набора выборок яркости, используемых в качестве входных данных для получения линейной модели; и
блок предсказания, выполненный с возможностью выполнения межкомпонентного предсказания на основе коэффициентов линейной модели получения линейной модели и фильтрованной восстановленной выборки яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, количество фильтрованных восстановленных выборок равно или больше, чем размер текущего блока яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, CCLM выполняется для восстановленных выборок с пониженной дискретизацией.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, только одна строка из соседних восстановленных выборок яркости используется для получения фильтрованных восстановленных выборок, когда текущий блок цветности находится на верхней границе.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, линейная модель является многонаправленной линейной моделью (MDLM), и коэффициенты линейной модели используются для получения MDLM.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, вывод параметров CCLM или MDLM выполняется для фильтрованных восстановленных выборок, принадлежащих только верхнему шаблону текущего блока яркости или принадлежащих только левому шаблону текущего блока яркости, или где восстановленные выборки принадлежат верхнему шаблону текущего блока яркости и левому шаблону текущего блока яркости.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, выборки яркости в выбранной позиции, соседней с текущим блоком, так что являются соседней с верхней частью текущего блока, и/или в столбце выборок, соседнем слева от текущего блока, являются выборками, равномерно разделенными интервалом/расстоянием/количеством пикселей между ними.
В возможной форме реализации устройства согласно по существу любой предыдущей реализации пятого аспекта или пятого аспекта, выбранная позиция, соседняя с текущим блоком, указывается посредством:
S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда применяется режим LM, и доступны соседние выборки цветности, которые находятся как выше, так и слева;
S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A, или доступны только те соседние выборки цветности, которые находятся выше;
S[-1, H'/ 8], S[-1, 3H'/8], S[-1, 5H'/ 8], S[-1, 7H'/8], когда применяется режим LM-L, или доступны только левые соседние выборки.
Шестой аспект декодера (30), содержащий схему обработки для выполнения способа согласно любому из аспектов с первого по третий.
Седьмой аспект компьютерного программного продукта, содержащий программный код для выполнения способа согласно любому из первого - третьего аспектов.
Восьмой аспект декодера, содержащий:
один или более процессоров; и невременный машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для ее исполнения процессорами, причем программа при ее исполнении процессорами, конфигурирует декодер для выполнения способа согласно любому из первого - третьего аспектов.
Девятый аспект кодера, содержащий:
один или более процессоров; и невременный машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для ее исполнения процессорами, причем программа при ее исполнении процессорами, конфигурирует кодер для выполнения способа согласно любому из первого - третьего аспектов.
Десятый аспект невременного машиночитаемого носителя информации, несущего программный код, который при его исполнении компьютерным устройством предписывает компьютерному устройству выполнять способ согласно любому из первого - третьего аспектов.
Одиннадцатый аспект кодера (20), содержащий схему обработки для выполнения способа согласно любому из первого - третьего аспектов.
Основываясь на вышеизложенном, раскрытые в данном документе варианты осуществления имеют следующие технические преимущества: варианты осуществления, раскрытые в данном документе, учитывают формат цветности изображения при предсказании выборок цветности из выборок яркости. За счет выбора набора фильтров на основе формата цветности устраняются недостатки предыдущего построения, что приводит к уменьшению ошибок предсказания и, таким образом, к более точному предсказанию цветности. Техническим результатом меньшей ошибки предсказания является уменьшение остаточной энергии сигнала. Способы кодирования могут использовать это уменьшение для того, чтобы уменьшить искажение восстановленного сигнала, уменьшить скорость передачи битов, которая требуется для кодирования остаточного сигнала, или уменьшить как искажение, так и скорость передачи битов. Эти полезные эффекты, достигаемые вариантами осуществления, представленными в данном документе, повышают общую эффективность сжатия способа кодирования.
Кроме того, фильтры, раскрытые в данном документе, обладают следующими двумя свойствами:
- количество отводов по горизонтали и вертикали не превышает 3-х.
- значения коэффициентов являются степенью два.
Первое свойство позволяет области, к которой осуществляется доступ для фильтрации, не превышает 3 выборок (наименьший возможный размер поддержки фильтра без сдвига фазы). Второе свойство (коэффициенты в степени два) позволяет реализовать фильтры без умножения. Вместо этого фильтры могут быть реализованы с использованием сдвига влево на постоянное значение, что требует минимальной сложности при проектировании аппаратных средств.
Ни в одном из предшествующих уровней техники не было предложено практических фильтров FIR (конечная импульсная характеристика), которые обладают вышеуказанными свойствами. Ни один из фильтров FIP в данной области техники не может обеспечить такие же свойства сглаживания и, между тем, иметь такую же простую реализацию, которая раскрыта в данном документе.
Ниже приводится пояснение приложений способа кодирования, а также способа декодирования, который показан в вышеупомянутых вариантах осуществления, и системы, использующей их.
На фиг. 13 показана блок-схема, показывающая систему 3100 доставки содержания для реализации услуги распространения содержания. Эта система 3100 доставки содержания включает в себя устройство 3102 захвата, терминальное устройство 3106 и дополнительно включает в себя дисплей 3126. Устройство 3102 захвата обменивается данными с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB, любую их комбинацию или т.п.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, как показано в приведенных выше вариантах осуществления. В качестве альтернативы, устройство 3102 захвата может передавать данные на сервер потоковой передачи (не показан на фигурах), и сервер кодирует данные и передает закодированные данные в терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения, камеру, смартфон или планшетный компьютер, компьютер или ноутбук, систему видеоконференцсвязи, PDA, устройство, установленное на транспортном средстве, любую их комбинацию или т.п. Например, устройство 3102 захвата может включать в себя устройство-источник 12, как описано выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования видео. Когда данные включают в себя звук (то есть голос), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку кодирования звука. Для некоторых практических сценариев устройство 3102 захвата распределяет закодированные видео- и аудиоданные, мультиплексируя их вместе. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распределяет по отдельности кодированные аудиоданные и кодированные видеоданные для терминального устройства 3106.
В системе 3100 доставки содержания терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и восстановления данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеомагнитофон (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, персональный цифровой помощник (PDA) 3122, устройство 3124, установленное на транспортном средстве, любая их комбинация или т.п, которые способны декодировать вышеупомянутые кодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-адресат 14, как описано выше. Когда кодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения декодирования видео. Когда кодированные данные включают в себя звук, аудиодекодер, включенный в терминальное устройство, получает приоритет для выполнения обработки декодирования звука.
Для терминального устройства с собственным дисплеем, например, смартфона или планшетного компьютера 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеомагнитофона (DVR) 3112, телевизора 3114, персонального цифрового помощника (PDA) 3122 или устройства 3124, установленного на транспортном средстве, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, например, STB 3116, системы 3118 видеоконференцсвязи или системы 3120 видеонаблюдения, в нем устанавливается контакт с внешним дисплеем 3126 для приема и отображения декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображения или устройство декодирования изображения, как показано в вышеупомянутых вариантах осуществления.
На фиг. 14 показана схема, иллюстрирующая структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 примет поток из устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи потока. Протокол включает в себя, но без ограничения, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи в реальном времени HTTP (HLS), MPEG-DASH, транспортный протокол в реальном времени (RTP), протокол обмена сообщениями в реальном времени (RTMP), любую их комбинацию или тому подобное.
После того, как блок 3202 обработки протокола обработает поток, генерируется потоковый файл. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на кодированные аудиоданные и кодированные видеоданные. Как описано выше, для некоторых практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются в видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
При использовании процесса демультиплексирования вырабатываются элементарный видеопоток (ES), аудио ES и при необходимости субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, как объяснено в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для выработки видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3208 декодирует аудио ES для выработки аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может храниться в буфере (не показан на фиг. 14) перед подачей его в блок 3212 синхронизации. Аналогичным образом, аудиокадр может храниться в буфере (не показан на фиг. 9) перед подачей его в блок 3212 синхронизации.
Блок 3212 синхронизации синхронизирует видеокадр и звуковой кадр и подает видео/аудио в блок 3214 отображения видео/аудио. Например, блок 3212 синхронизации синхронизирует представление информации видео и аудио. Информация может быть закодирована в синтаксисе с использованием меток времени, касающихся представления кодированных аудио- и визуальных данных, и меток времени, касающихся доставки непосредственно потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры в блок 3216 отображения видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображения, либо устройство декодирования изображения в вышеупомянутых вариантах осуществления могут быть включено в другую систему, например, в автомобильную систему.
Математические операторы
Математические операторы, используемые в настоящей заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определены более точно, и определены дополнительные операции, такие как возведение в степень и деление действительных чисел. Правила нумерации и подсчета, как правило, начинаются с 0, например, "первый" эквивалентен 0-му, "второй" эквивалентен 1-му и т.д.
Арифметические операторы
Приведенные ниже арифметические операторы определены следующим образом:
+ Сложение
- Вычитание (как оператор с двумя аргументами) или отрицание (как унарный оператор префикса)
* Умножение, включая умножение матриц
xy Возведение в степень. Указывает x в степени y. В других контекстах такое обозначение используется для надстрочного индекса, не предназначенного для интерпретации возведения в степень.
/ Целочисленное деление с усечением результата до нуля. Например, 7/4 и -7/-4 усекаются до 1, и -7/4 и 7/-4 усекаются до -1.
÷ Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Используется для обозначения деления в математических уравнениях, где не предполагается усечение или округление.
Суммирование f(i), где i принимает все целые значения от x до y включительно.
x % y Модуль. Остаток от деления x на y, определен только для целых чисел x и y при x >=0и y > 0.
Логические операторы
Приведенные ниже логические операторы определены следующим образом:
x && y булево логическое "И" для x и y
x | | y булево логическое "ИЛИ" x и y
! булево логическое "НЕ"
x ? y : z если x равен значению "ИСТИНА" (TRUE) или не равен 0, вычисляется значение y; иначе вычисляется значение z.
- Операторы отношения
Приведенные ниже операторы отношения определены следующим образом:
> больше
>= больше или равно
< меньше
<= меньше или равно
==равно
!= не равно
Когда оператор отношения применяется к синтаксическому элементу или переменной, которой было присвоено значение "na" (не применимо), значение "na" обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение "na" не считается равным любому другому значению.
Поразрядные операторы
Приведенные ниже поразрядные операторы определены следующим образом:
& Поразрядное "И". При выполнении операций с целочисленными аргументами производится действие над представлением целочисленного значения с дополнением до двух. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
| Поразрядное "ИЛИ". При выполнении операций с целочисленными аргументами производится действие над представлением с дополнением до двух целочисленного значения. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
^ Поразрядное "ИСКЛЮЧАЮЩЕЕ ИЛИ". При выполнении операций с целочисленными аргументами производится действие над представлением с дополнением до двух целочисленного значения. При выполнении операций с двоичным аргументом, который содержит меньше разрядов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значимых разрядов, равных 0.
x >> y Арифметический сдвиг вправо целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Разряды, сдвинутые в старшие значащие разряды (MSB) в результате сдвига вправо, имеют значение, равное MSB x до операции сдвига.
x << y Арифметический сдвиг влево целочисленного представления x с дополнением до двух на y двоичных цифр. Эта функция определена только для неотрицательных целых значений y. Разряды, сдвинутые в младшие значащие разряды (LSB) в результате сдвига влево, имеют значение, равное 0.
Операторы присваивания
Приведенные ниже арифметические операторы определены следующим образом:
= Оператор присваивания
+ + Приращение, то есть x + + эквивалентно x=x + 1, при его использовании в индексе массива, оценивает значение переменной до операции приращения.
- - Уменьшение, то есть x- - эквивалентно x=x - 1, при его использовании в индексе массива, оценивает значение переменной до операции уменьшения.
+= Увеличение на указанную величину, то есть X +=3 эквивалентно x=x + 3, и x +=(-3) эквивалентно x=x + (-3).
-= Уменьшение на указанную величину, то есть X -=3 эквивалентно x=x - 3, и x -=(-3) эквивалентно x=x - (-3).
Обозначение диапазона
Для указания диапазона значений используются следующие обозначения:
x=y..z x принимает целые значения, начиная с y до z, включительно, где x, y и z являются целыми числами, и z больше y.
Математические функции
Приведенные ниже математические функции определены следующим образом:
Abs(x)=
Asin(x) тригонометрическая обратная функция синуса, которая производит действие над аргументом x, который находится в диапазоне от -1,0 до 1,0 включительно, с выходным значением в диапазоне - от π ÷ 2 до π ÷ 2 включительно в радианах.
Atan(x) the тригонометрическая функция арктангенса, которая производит действие над аргументом x при выходном значении в диапазоне от - π ÷ 2 до π ÷ 2 включительно в радианах.
Atan2(y, x)=
Ceil(x) наименьшее целое число, большее или равное х.
Clip1Y(x)=Clip3(0, (1 << BitDepthY) - 1, x)
Clip1C(x)=Clip3(0, (1 << BitDepthC) - 1, x)
Clip3(x, y, z)=
Cos(x) тригонометрическая косинусная функция, работающая с аргументом x в радианах.
Floor(x) наибольшее целое число, меньшее или равное x.
GetCurrMsb(a, b, c, d)=
Ln(x) натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма2,718281 828…).
Log2(x) логарифм по основанию2 числа x.
Log10(x) десятичный логарифм x.
Min(x, y)=
Max(x, y)=
Round(x)=Sign(x) * Floor(Abs(x) + 0.5)
Sign(x)=
Sin(x) тригонометрическая функция синуса, работающая с аргументом x в радианах
Sqrt(x)=
Swap(x, y)=(y, x)
Tan(x) тригонометрическая тангенциальная функция, которая производит действие над аргументом x в радианах.
Порядок приоритета операций
Когда порядок приоритета в выражении явно не указан с помощью круглых скобок, применяются следующие правила:
- Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.
- Операции с одинаковым приоритетом оцениваются последовательно слева направо.
В таблице ниже указан приоритет операций от высшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.
Для тех операторов, которые также используются в языке программирования C, порядок приоритета, используемый в данном описании, является таким, который используется в языке программирования C.
Текстовое описание логических операций
В тексте представлено изложение логических операций, которые могут быть описаны математически в следующей форме:
if(условие 0)
утверждение 0
else if(условие 1)
утверждение 1

else /* информативное замечание по оставшемуся условию */
утверждение n
можно описать следующим образом:
… следующим образом /… применяется следующее:
- If условие 0, утверждение 0
- В противном случае, if условие 1, утверждение 1
- …
- В противном случае (информативное замечание по оставшемуся условию), утверждение n
Каждое утверждение "Если … В противном случае, если … В противном случае, …" в тексте вводится с фразой "… следующим образом" или "… применяется следующее" за которой сразу следует "Если …". Последнее условие "Если … В противном случае, если … В противном случае, …" представляет собой всегда "В противном случае, …". Чередующиеся утверждения "Если … В противном случае, если … В противном случае, …" могут быть идентифицированы путем сопоставления "… следующим образом "или"… применяется следующее" с окончанием "В противном случае, …".
В тексте утверждение логических операций будет математически описано в следующем виде:
if(условие 0a && условие 0b)
утверждение 0
else if(условие 1a | | условие 1b)
утверждение 1

else
утверждение n
можно описать следующим образом:
… следующим образом / … применяется следующее:
- Если все следующие условия верны, утверждение 0:
- условие 0a
- условие 0b
- В противном случае, если выполняется одно или несколько из следующих условий, утверждение 1:
- условие 1a
- условие 1b
- …
- В противном случае, утверждение n
В тексте утверждение логических операций, как было бы математически описано в следующей форме:
if (условие 0)
утверждение 0
if (условие 1)
утверждение 1
можно описать следующим образом:
Когда условие 0, утверждение 0
Когда условие 1, утверждение 1.
Хотя варианты осуществления, раскрытые в данном документе, были в основном описаны на основе кодирования видео, следует отметить, что варианты осуществления системы 10 кодирования, кодера 20 и декодера 30 (и, соответственно, системы 10) и другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодирования неподвижного изображения, то есть обработки или кодирования отдельного изображения независимо от любого предшествующего или последовательного изображения, как при кодировании видео. В общем, блоки 244 (кодер) и 344 (декодер) межкадрового предсказания могут быть недоступны только в случае, если кодирование обработки изображения ограничено одним изображением 17. Все другие функциональные возможности (которые упоминаются также как инструментальные средства или технологии) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных изображений, например, вычисления остатка 204/304, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, внутрикадрового предсказания 254/354, и/или контурной фильтрации 220, 320, энтропийного кодирования 270 и энтропийного декодирования 304.
Варианты осуществления, например, кодера 20 и декодера 30, и функции, описанные в данном документе, например, со ссылкой на кодер 20 и декодер 30, могут быть реализованы в аппаратных средствах, программном обеспечении, программно-аппаратных средствах или любой их комбинации. В случае реализации в программном обеспечении, функции могут храниться на машиночитаемом носителе информации или передаваться через среду связи в виде одной или нескольких инструкций или кода и исполняться аппаратным процессором. Машиночитаемые носители информации могут включать в себя машиночитаемый носитель информации, который соответствует материальному носителю информации, например, носителю информации, или носителю связи, в том числе любой носитель информации, который облегчает передачу компьютерной программы из одного места в другое, например, в соответствии с протоколом связи. Таким образом, машиночитаемые носители информации, как правило, могут соответствовать (1) материальным машиночитаемым носителям информации, которые являются невременными, или (2) среде передачи данных, такой как сигнал или несущая волна. Носители информации могут быть любыми доступными носителями информации, к которым может обращаться один или несколько компьютеров или один или более процессоров для извлечения инструкций, кода и/или структур данных для реализации технологий, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя машиночитаемый носитель информации.
В качестве примера, но не ограничения, такие машиночитаемые носители информации могут содержать RAM, ROM, EEPROM, CD-ROM или другой накопитель на оптических дисках, накопитель на магнитных дисках или другие магнитные запоминающие устройства, флэш-память, или любой другой носитель информации, который может быть использован для хранения желаемого программного кода в виде инструкций или структур данных, и к которым может обращаться компьютер. Кроме того, любое соединение называется соответствующим образом машиночитаемым носителем информации. Например, если инструкции передаются из веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио- и микроволновая, то коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасные, радио- и микроволновые, включены в определение носителя информации. Однако следует понимать, что машиночитаемые носители информации и носители для хранения данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, и вместо этого направлены на невременные, материальные носители информации. Используемые в данном документе термины "магнитный диск" и "оптический диск" включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий магнитный диск и Blu-ray диск, где магнитные диски, как правило, воспроизводят данные магнитным способом, тогда как оптические диски воспроизводят данные оптическим способом с помощью лазеров, Комбинации вышеупомянутых носителей информации также должны быть включены в объем охраны машиночитаемых носителей информации.
Инструкции могут исполняться одним или несколькими процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие эквивалентные интегрированные или дискретные логические схемы. Соответственно, используемый в данном документе термин "процессор" может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных в данном документе технологий. Кроме того, в некоторых аспектах описанные в данном документе функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, технологии могут быть также полностью реализованы в одной или нескольких схемах или логических элементах.
Технологии настоящего раскрытия могут быть реализованы в большом количестве устройств или устройств, включая беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В настоящем раскрытии описаны различные компоненты, модули или блоки для того, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но необязательно требующих реализации с помощью различных аппаратных блоков. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены набором взаимодействующих аппаратных блоков, включая один или более процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или программно-аппаратными средствами.

Claims (162)

1. Способ выполнения внутрикадрового предсказания с использованием линейной модели, содержащий этапы, на которых:
определяют набор фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок;
получают выборки с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации;
определяют один или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, соответствующих эталонным выборкам с пониженной дискретизацией; и
получают выборки предсказания блока цветности, соответствующего блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости, причем
выбранные эталонные выборки яркости содержат по меньшей мере одни из:
соседних выборок яркости, расположенных выше блока яркости и выбранных на основе L доступных эталонных выборок цветности, или
соседних выборок яркости, оставшихся в блоке яркости и выбранных на основе L доступных эталонных выборок цветности, а
позиции доступных эталонных выборок цветности определяются как:
S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда применяется режим LM и доступны соседние выборки цветности, расположенные как выше, так и слева;
S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A или доступны только те соседние выборки цветности, которые расположены выше; или
S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8], когда применяется режим LM-L или доступны только левые соседние выборки;
где блок цветности имеет размер W×H и W’ и H’ заданы как
W’=W, H’=H, когда применяется режим LM;
W’=W+H, когда применяется режим LM-A;
H’=H+W, когда применяется режим LM-L.
2. Способ по п.1, в котором этап определения набора фильтров понижающей дискретизации на основе информации о формате цветности содержит подэтапы, на которых:
определяют информацию о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях на основе информации о формате цветности; и
определяют набор фильтров понижающей дискретизации на основе информации о коэффициенте субдискретизации.
3. Способ по п.1, в котором
для формата цветности, представляющего собой формат 4:2:0 цветности, первый набор фильтров понижающей дискретизации используется для блока яркости текущего блока;
для формата цветности, представляющего собой формат 4:2:2 цветности, второй набор фильтров понижающей дискретизации используется для блока яркости текущего блока; или
для формата цветности, представляющего собой формат 4:4:4 цветности, третий набор фильтров понижающей дискретизации используется для блока яркости текущего блока.
4. Способ по любому из пп.1-3, в котором, когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке,
этап получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации содержит подэтапы, на которых:
получают выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости посредством применения первого фильтра понижающей дискретизации к первому набору восстановленных выборок яркости, причем первый набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, которые являются смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости; и
получают эталонную выборку яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости посредством применения первого фильтра понижающей дискретизации ко второму набору восстановленных выборок яркости, причем второй набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, являющихся смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости; причем
первый фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
5. Способ по любому из пп.1-3, в котором, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке,
этап получения выборки с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации содержит подэтапы, на которых:
получают выборки яркости с пониженной дискретизацией из восстановленной выборки яркости в блоке яркости посредством применения второго фильтра понижающей дискретизации к третьему набору восстановленных выборок яркости, причем третий набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, являющихся смежными по горизонтали и/или по вертикали с позицией восстановленной выборки яркости; и
получают эталонные выборки яркости с пониженной дискретизацией по меньшей мере одной выбранной эталонной выборки яркости, посредством применения вторых фильтров понижающей дискретизации к четвертому набору восстановленных выборок яркости, причем четвертый набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, являющихся смежными по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости; причем
второй фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
6. Способ по п.4, в котором субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любой из:
- типа 2 выборки цветности или
- типа 4 выборки цветности.
7. Способ по п.5, в котором случай, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке, возникает тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любой из:
- типа 0 выборки цветности,
- типа 1 выборки цветности,
- типа 3 выборки цветности или
- типа 5 выборки цветности.
8. Способ по любому из пп.1-7, в котором
набор фильтров понижающей дискретизации содержит обходной фильтр, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:4:4 цветности; или
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:2:0 цветности, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1,
F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1,
F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1,
F2[0] = 1, F2[1] = 1; или
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:2:2 цветности, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0,
F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2,
F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0,
F2[0] = 2, F2[1] = 0.
9. Способ по любому из пп.2-7, в котором информация о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях представлена значениями переменных SubWidthC и SubHeightC соответственно; и
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется по меньшей мере одно условие, в том числе SubWidthC==2 и SubHeightC==2, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1,
F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1,
F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1,
F2[0] = 1, F2[1] = 1;
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется хотя бы одно условие, в том числе SubWidthC==2 и SubHeightC==1, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0,
F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2,
F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0,
F2[0] = 2, F2[1] = 0.
10. Способ по любому из пп.1-9, в котором этап определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости и эталонных выборок цветности, соответствующих эталонным выборкам с пониженной дискретизацией выборки, содержит подэтапы, на которых:
определяют максимальное значение яркости и минимальное значение яркости на основе эталонных выборок с пониженной дискретизацией;
получают первое значение цветности по меньшей мере частично на основе одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с максимальным значением яркости;
получают второе значение цветности по меньшей мере частично на основе одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с минимальным значением яркости;
вычисляют один или более коэффициентов линейной модели на основе первого значения цветности, второго значения цветности, максимального значения яркости и минимального значения яркости.
11. Устройство внутрикадрового предсказания с использованием линейной модели, содержащее:
блок определения, выполненный с возможностью определения набора фильтров понижающей дискретизации на основе информации о формате цветности, причем информация о формате цветности указывает формат цветности изображения, которому принадлежит текущий блок;
блок фильтрации, выполненный с возможностью получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости текущего блока и эталонных выборок с пониженной дискретизацией из выбранных эталонных выборок яркости блока яркости с использованием соответствующих фильтров понижающей дискретизации из набора фильтров понижающей дискретизации;
блок получения линейной модели, выполненный с возможностью определения одного или более коэффициентов линейной модели на основе эталонных выборок с пониженной дискретизацией и эталонных выборок цветности, соответствующих эталонным выборкам с пониженной дискретизацией; и
блок обработки предсказания, выполненный с возможностью получения выборок предсказания блока цветности, соответствующий блоку яркости, на основе коэффициентов линейной модели и выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости, причем
выбранные эталонные выборки яркости содержат по меньшей мере одни из:
соседних выборок яркости, расположенных выше блока яркости и выбранных на основе L доступных эталонных выборок цветности, или
соседних выборок яркости, оставшихся в блоке яркости и выбранных на основе L доступных эталонных выборок цветности, а
позиции доступных эталонных выборок цветности определяются как:
S[W’/4, -1], S[3W’/4, -1], S[-1, H’/4], S[-1, 3H’/4], когда применяется режим LM и доступны соседние выборки цветности, расположенные как выше, так и слева;
S[W’/8, -1], S[3W’/8, -1], S[5W’/8, -1], S[7W’/8, -1], когда применяется режим LM-A или доступны только те соседние выборки цветности, которые расположены выше; или
S[-1, H’/8], S[-1, 3H’/8], S[-1, 5H’/8], S[-1, 7H’/8], когда применяется режим LM-L или доступны только левые соседние выборки;
где блок цветности имеет размер W×H и W’ и H’ заданы как
W’=W, H’=H, когда применяется режим LM;
W’=W+H, когда применяется режим LM-A;
H’=H+W, когда применяется режим LM-L.
12. Устройство по п.11, в котором блок определения выполнен с возможностью:
определения информации о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях на основе информации о формате цветности; и
определения набора фильтров с понижающей дискретизацией на основе информации о коэффициенте субдискретизации.
13. Устройство по п.11, в котором
для формата цветности, представляющего собой формат 4:2:0 цветности, первый набор фильтров понижающей дискретизации используется для блока яркости текущего блока;
для формата цветности, представляющего собой формат 4:2:2 цветности, второй набор фильтров понижающей дискретизации используется для блока яркости текущего блока; или
для формата цветности, представляющего собой формат 4:4:4 цветности, третий набор фильтров понижающей дискретизации используется для блока яркости текущего блока.
14. Устройство по любому из пп.11-13, в котором, когда субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке,
блок фильтрации выполнен с возможностью:
получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости посредством применения первого фильтра понижающей дискретизации к первому набору восстановленных выборок яркости, причем первый набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, смежных по горизонтали и/или по вертикали с позицией восстановленных выборок яркости; и
получения эталонной выборки яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости посредством применения первого фильтра понижающей дискретизации ко второму набору восстановленных выборок яркости, причем второй набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, смежных по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости; причем
первый фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
15. Устройство по любому из пп.11-13, в котором, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке,
блок фильтрации выполнен с возможностью:
получения выборок с пониженной дискретизацией из восстановленных выборок яркости в блоке яркости посредством применения второго фильтра понижающей дискретизации к третьему набору восстановленных выборок яркости, причем третий набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, смежных по горизонтали и/или по вертикали с позицией восстановленных выборок яркости; и
получения эталонной выборки яркости с пониженной дискретизацией по меньшей мере из одной выбранной эталонной выборки яркости посредством применения вторых фильтров понижающей дискретизации к четвертому набору восстановленных выборок яркости, причем четвертый набор восстановленных выборок яркости содержит восстановленные выборки яркости в позициях, смежных по горизонтали и/или по вертикали с позицией выбранной эталонной выборки яркости; причем
второй фильтр понижающей дискретизации выбирается из набора фильтров понижающей дискретизации.
16. Устройство по п.14, в котором субдискретизированная выборка цветности совмещена с соответствующей выборкой яркости в текущем блоке тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любой из:
- типа 2 выборки цветности или
- типа 4 выборки цветности.
17. Устройство по п.15, в котором
случай, когда субдискретизированная выборка цветности не совмещена с соответствующей выборкой яркости в текущем блоке, возникает тогда, когда тип выборки цветности субдискретизированной выборки цветности содержит любой из:
- типа 0 выборки цветности,
- типа 1 выборки цветности,
- типа 3 выборки цветности или
- типа 5 выборки цветности.
18. Устройство по любому из пп.11-17, в котором блок определения выполнен с возможностью определения набора фильтров понижающей дискретизации, причем
набор фильтров понижающей дискретизации содержит обходной фильтр, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:4:4 цветности; или
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:2:0, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1,
F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1,
F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1,
F2[0] = 1, F2[1] = 1; или
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется по меньшей мере одно условие, содержащее то, что форматом цветности является формат 4:2:2 цветности, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0,
F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2,
F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0,
F2[0] = 2, F2[1] = 0.
19. Устройство по любому из пп.12-17, в котором информация о коэффициенте субдискретизации в горизонтальном и вертикальном направлениях представлена значениями переменных SubWidthC и SubHeightC соответственно; и
блок определения выполнен с возможностью определения набора фильтров понижающей дискретизации, где:
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется хотя бы одно условие, в том числе SubWidthC==2 и SubHeightC==2, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 1, F5[1][1] = 4, F5[2][1] = 1, F5[1][0] = 1, F5[1][2] = 1,
F6[0][1] = 1, F6[1][1] = 2, F6[2][1] = 1,
F6[0][2] = 1, F6[1][2] = 2, F6[2][2] = 1,
F2[0] = 1, F2[1] = 1;
набор фильтров понижающей дискретизации содержит набор фильтров {F2, F3, F5, F6}, если выполняется хотя бы одно условие, в том числе SubWidthC==2 и SubHeightC==1, где:
F3[0] = 1, F3[1] = 2, F3[2] = 1,
F5[ i ][ j ] = F6[ i ][ j ] = 0, где i=0…2, j=0…2,
F5[0][1] = 0, F5[1][1] = 8, F5[2][1] = 0, F5[1][0] = 0, F5[1][2] = 0,
F6[0][1] = 2, F6[1][1] = 4, F6[2][1] = 2,
F6[0][2] = 0, F6[1][2] = 0, F6[2][2] = 0,
F2[0] = 2, F2[1] = 0.
20. Устройство по любому из пп.11-19, в котором блок получения линейной модели выполнен с возможностью определения значения максимальной яркости и значения минимальной яркости на основе эталонных выборок яркости с пониженной дискретизацией, получения первого значения цветности по меньшей частично на основе одной или более позиций одной или более эталонных выборок с пониженной дискретизацией, ассоциированных с максимальным значением яркости; получения второго значения цветности по меньшей частично на основе одной или более позиций одной или более эталонных выборок яркости с пониженной дискретизацией, ассоциированных со значением минимальной яркости; и
вычисления одного или более коэффициентов линейной модели на основе первого значения цветности, второго значения цветности, максимального значения яркости и минимального значения яркости.
21. Кодер (20), содержащий схему обработки для выполнения способа по любому из пп.1-10.
22. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп.1-10.
23. Энергонезависимый машиночитаемый носитель информации, хранящий программный код, вызывающий, при его исполнении компьютерным устройством, выполнение, компьютерным устройством, способа по любому из пп.1-10.
24. Декодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель информации, подключенный к процессорам и хранящий программу, вызывающую, при исполнении процессорами, конфигурирование декодера для выполнения способа по любому из пп.1-10.
25. Кодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель информации, подключенный к процессорам и хранящий программу для ее исполнения процессорами, вызывающую, при исполнении процессорами, конфигурирование кодера для выполнения способа по любому из пп.1-10.
RU2021127560A 2019-02-22 2020-02-24 Способ и устройство для внутрикадрового предсказания с использованием линейной модели RU2809841C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US62/809,555 2019-02-22
US62/825,796 2019-03-28
US62/825,021 2019-03-28

Publications (2)

Publication Number Publication Date
RU2021127560A RU2021127560A (ru) 2023-03-22
RU2809841C2 true RU2809841C2 (ru) 2023-12-19

Family

ID=

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012175646A1 (en) * 2011-06-22 2012-12-27 Canon Kabushiki Kaisha Method and device for processing colour information in an image
US20160277762A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Downsampling process for linear model prediction mode
RU2637480C2 (ru) * 2013-04-12 2017-12-04 Интел Корпорейшн Упрощенное кодирование глубины с модифицированным внутрикадровым кодированием для кодирования трехмерных видеоданных

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012175646A1 (en) * 2011-06-22 2012-12-27 Canon Kabushiki Kaisha Method and device for processing colour information in an image
RU2637480C2 (ru) * 2013-04-12 2017-12-04 Интел Корпорейшн Упрощенное кодирование глубины с модифицированным внутрикадровым кодированием для кодирования трехмерных видеоданных
US20160277762A1 (en) * 2015-03-20 2016-09-22 Qualcomm Incorporated Downsampling process for linear model prediction mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jianle Chen et al, Algorithm description for Versatile Video Coding and Test Model 4 (VTM 4), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, Document: JVET-M1002-v2, [Найдено 21.02.2023] в Интернет URL http://phenix.int-evry.fr/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M1002-v2.zip, 18.01.2019, 62 с. *

Similar Documents

Publication Publication Date Title
KR102711465B1 (ko) 디블로킹 필터의 경계 강도를 도출하는 인코더, 디코더 및 대응 방법
JP7332703B2 (ja) クロマサブブロックのアフィンベースのインター予測のための方法及び装置
JP2023103292A (ja) エンコーダ、デコーダ、および対応するイントラ予測方法
JP7469475B2 (ja) 交差成分線形モデル予測のためのフィルタリングの方法及び装置
US12063350B2 (en) Method and apparatus for intra prediction using linear model
JP7562797B2 (ja) イントラ平滑化のための方法および装置
JP2022541700A (ja) イントラ予測モードに関連するエンコーダ、デコーダ、および対応する方法
AU2024201152A1 (en) An encoder, a decoder and corresponding methods using intra mode coding for intra prediction
JP7299331B2 (ja) ビデオコーディングにおけるクロマイントラ予測のための方法及び装置
EP4094441A2 (en) Sample fetching and padding for downsampling filtering
RU2809841C2 (ru) Способ и устройство для внутрикадрового предсказания с использованием линейной модели
RU2783348C1 (ru) Кодер, декодер и соответствующие способы получения граничной мощности фильтра деблокинга
RU2803063C2 (ru) Кодер, декодер и соответствующие способы, которые используются для процесса преобразования
WO2021057755A1 (en) An encoder, a decoder and corresponding methods of complexity reduction on intra prediction for the planar mode
JP2024150594A (ja) 線形モデルを使用したイントラ予測のための方法および装置