ДЕБЛОКИРУЮЩИЙ ФИЛЬТР ДЛЯ ГРАНИЦ ПОДРАЗДЕЛОВ, ВОЗНИКАЮЩИХ ПОД ДЕЙСТВИЕМ ИНСТРУМЕНТА КОДИРОВАНИЯ ИНТРА-ПОДРАЗДЕЛОВ
DEBLOCKING FILTER FOR THE BOUNDARIES OF SUBSECTIONS THAT ARISE UNDER THE INFLUENCE OF THE INTRA-SUBSECTION CODING TOOL

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная патентная заявка испрашивает приоритет по предварительной патентной заявке США № 62/791,003, поданной 10 января 2019 года. Раскрытие вышеупомянутой патентной заявки включается в данный документ путем ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящего раскрытия в целом относятся к области обработки изображений и, в частности, к деблокирующему (устраняющему блочность) фильтру для границ подразделов, возникающих под действием инструмента кодирования интра-подразделов (ISP).
УРОВЕНЬ ТЕХНИКИ
Видеокодирование (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-ray дисках, системах сбора и редактирования видеоконтента, а также в видеокамерах приложений безопасности.
Объем видеоданных, необходимый для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая объем данных, необходимый для представления цифровых видеоизображений. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательны улучшенные методы сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества изображения или вообще без таких потерь.
В частности, в контексте интра-предсказания недавно был представлен инструмент кодирования интра-подразделов (ISP), в котором блок изображения (такой как единица преобразования (TU), единица предсказания (PU), единица кодирования (CU)) разделяется на множество подразделов. Однако интра-подраздел (ISP) может вызвать неоднородности в значениях выборок на границах подразделов, тем самым вызывая нежелательные артефакты краев или границ, которые заметны зрителю. Целью блочного кодирования изображений является уменьшение артефактов краев ниже порогового значения видимости. Это делается путем выполнения деблокирующей фильтрации. Такая деблокирующая фильтрация выполняется, с одной стороны, на стороне декодирования, чтобы удалить видимые артефакты краев, но также и на стороне кодирования, чтобы предотвратить кодирование каких-либо артефактов краев в изображение.
Таким образом, существует потребность в улучшенном способе и устройстве внутриконтурного деблокирующего фильтра, которые обеспечивают эффективное удаление артефактов блочности, которые могут возникать под действием инструмента кодирования интра-подразделов.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Ввиду вышеупомянутых проблем варианты осуществления настоящей заявки направлены на предоставление устройства деблокирующего фильтра, кодера, декодера и соответствующих способов, которые могут смягчить или даже полностью устранить артефакты блочности, которые могут быть вызваны инструментом кодирования интра-подразделов, чтобы повысить эффективность кодирования.
Варианты осуществления изобретения определяются признаками независимых пунктов формулы изобретения, а дополнительные преимущественные реализации вариантов осуществления - признаками зависимых пунктов формулы изобретения.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения, а другие варианты осуществления - в зависимых пунктах формулы изобретения.
Вышеупомянутые и другие цели достигаются изобретением по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Согласно первому аспекту настоящего раскрытия предоставлен способ деблокирования для деблокирования границы подразделов в блоке кодирования при кодировании изображения и/или декодировании изображения, в котором текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу (например, второй подраздел находится в правом или нижнем блоке относительно первых подразделов). В примере второй подраздел интра-предсказывается на основе первого подраздела (т.е. текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP, в частности текущий блок кодирования разделяется на подразделы посредством инструмента кодирования ISP и внутренние подразделы интра-предсказываются один за другим, например, слева направо или сверху вниз); при этом способ содержит:
- определение первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;
- модификацию (т.е. фильтрацию) значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или
- модификацию (т.е. фильтрацию) значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.
Можно понять, что первая максимальная длина фильтра для первого подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к границе подразделов, максимальное число выборок, разрешенных для модификации для первого подраздела. Вторая максимальная длина фильтра для второго подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к границе подразделов, максимальное число выборок, разрешенных для модификации для второго подраздела. Можно понять, что, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой/ом строке или столбце, перпендикулярной/ом и примыкающей/ем к границе подразделов.
Изобретение работает как для вертикальных, так и для горизонтальных границ подразделов. Для вертикальной границы подразделов проверяется ширина первого или второго подраздела, равна ли эта ширина 4 выборкам. Для горизонтальной границы подразделов проверяется высота первого или второго подраздела, равна ли эта высота 4 выборкам.
Следует отметить, что в настоящем раскрытии используются термины «блок», «блок кодирования» или «блок изображения», которые могут применяться к единицам предсказания (PU), единицам кодирования (CU) и т. д. В VVC в целом единицы преобразования и единицы кодирования в основном выровнены, за исключением нескольких сценариев, когда используется разбиение TU на мозаичные элементы, субблочное преобразование (SBT) или ISP. Можно понять, что термины «блок/блок изображения/блок кодирования» могут использоваться взаимозаменяемо в настоящем раскрытии. Термины «выборка/пиксель» могут использоваться взаимозаменяемо в настоящем раскрытии.
Инструмент кодирования интра-подразделов разделяет блок интра-предсказания (т.е. блок интра-кодирования, что является сокращенным наименованием для текущего блока кодирования, который кодируется в режиме интра-предсказания) на подразделы и предсказывает подразделы внутри один за другим. На границе подраздела может быть неоднородность. Предлагается улучшенный процесс фильтрации для уменьшения артефакта, вызванного этими границами подразделов, в котором фильтрация не более одной выборки выполняется в первом или втором подразделе, когда высота первого или второго подраздела составляет 4 выборки или когда ширина первого или второго подраздела составляет 4 выборки. Это позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакты блочности, которые быть вызваны границами подразделов в текущем блоке кодирования из-за применения ISP. Такая слабая фильтрация выгодна с точки зрения вычислительной нагрузки.
В возможной форме реализации способа согласно первому аспекту как таковому, выборку в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе между первым и вторым подразделами, модифицируют, когда высота первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к границе подразделов.
В возможной форме реализации способа согласно первому аспекту как таковому, выборку в числе не более одной, которую получают из строки первого или второго подраздела, которая перпендикулярна и примыкает к границе между первым и вторым подразделами, модифицируют, когда ширина первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к границе подразделов.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; В качестве альтернативы, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел может находиться слева от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения (например восстановленной версии) первого подраздела;
если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел может находиться сверху от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения (например восстановленной версии) первого подраздела.
Можно понять, что второй подраздел интра-предсказывается на основе восстановленной версии (т.е. восстановленных значений) первого подраздела. Восстановленный первый подраздел представляет собой опорный элемент для интра-предсказания второго подраздела. Следует отметить, что после восстановления текущего изображения, к которому принадлежит текущий блок кодирования, восстановленное изображение вводится в процесс фильтрации. Во время восстановления текущего изображения текущий блок кодирования, к которому применяется инструмент кодирования ISP, интра-предсказывается для получения предиктивного блока (например, предсказанных значений) текущего блока кодирования, в частности, подразделы внутри текущего блока интра-кодирования интра-предсказываются один за другим.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, число подразделов равно 2 или 4.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому,
- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,
- иначе число подразделов равно 4.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборку в числе не более одной в первом или втором подразделе модифицируют даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n - целое число.
Обеспечивается возможность деблокирования целевых границ, которые не выровнены с n x n сеткой, а вызваны посредством ISP и представляют собой внутреннюю границу между подразделами блока кодирования.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборку в числе не более одной в первом или втором подразделе модифицируют только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n - целое число, например n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.
Более того, фильтрация не более одной выборки в подразделах может выполняться только тогда, когда высота всех подразделов составляет 4 выборки, или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.
В общем, подразделы могут быть прямоугольными подразделами блока преобразования.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.
В возможной форме реализации способа согласно любой предшествующей реализации первого аспекта или первому аспекту как таковому, порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. То есть разделение блока предсказания на подразделы может выполняться в вертикальном направлении. В этом случае порядком интра-предсказания подразделов является порядок один за другим, слева направо. В качестве альтернативы, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении. В этом случае порядком интра-предсказания двух подразделов является порядок один за другим, сверху вниз.
В настоящем раскрытии текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP.
В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.
Кроме того, в описанных выше вариантах осуществления способ может содержать получение значений флага кодированного блока, CBF, соответствующих двум смежным подразделам, определение интенсивности границы между двумя смежными подразделами текущего блока согласно значениям CBF, соответствующим двум смежным подразделам, и
принятие решения о фильтрации, следует ли выполнять фильтрацию, согласно определенной интенсивности границы. По меньшей мере одно из значений CBF, соответствующих двум смежным подразделам, может быть не равно 0, где 0 означает, что остаточные данные после квантования этого подраздела отсутствуют.
Согласно второму аспекту настоящего раскрытия предоставлен способ деблокирования для деблокирования краев блоков между блоками изображения при кодировании изображения и/или декодировании изображения, в котором края блоков содержат край между текущим подразделом текущего блока кодирования (т.е. текущего блока интра-кодирования) и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы (или текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или подразделы возникают под действием инструмента интра-подразделения, ISP); при этом способ содержит:
- определение третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;
- модификацию значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или
- модификацию значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.
Следует отметить, что, если число подразделов равно двум, текущий подраздел может быть первым подразделом или вторым подразделом в соответствии с первым аспектом как таковым. Если число подразделов больше двух, например четыре, текущий подраздел может быть крайним левым подразделом или крайним правым подразделом внутри текущего блока кодирования, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или текущий подраздел может быть крайним верхним подразделом или крайним нижним подразделом внутри текущего блока кодирования, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.
Во втором аспекте настоящего раскрытия текущий подраздел интра-предсказывается на основе соседнего блока, который примыкает сверху или слева. Следует отметить, что соседний блок может не быть блоком кодирования с дополнительными разделами, то есть, вероятно, у соседнего блока не будет подраздела.
Можно понять, что третья максимальная длина фильтра для текущего подраздела может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к краю, максимальное число выборок, разрешенных для модификации для текущего подраздела. Четвертая максимальная длина фильтра для соседнего блока может означать, в каждой строке или столбце, которые перпендикулярны и примыкают к краю, максимальное число выборок, разрешенных для модификации для соседнего блока. Можно понять, что, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой/ом строке или столбце, перпендикулярной/ом и примыкающей/ем к границе подразделов.
Изобретение работает как для вертикального, так и для горизонтального края между текущим подразделом и соседним блоком. Для вертикального края проверяется ширина текущего подраздела или соседнего блока, равна ли эта ширина 4 выборкам. Для горизонтального края проверяется высота текущего подраздела или соседнего блока, равна ли эта высота 4 выборкам.
Разница между краем блока и границей подразделов описана в нижеследующем описании. Границей подразделов является край, который является внутренним по отношению к блоку кодирования, в котором используются инструменты кодирования интра-подразделов (ISP), а край блока (т.е. край единицы кодирования (CU) или край блока кодирования или граница CU) является краем, который является общим между двумя единицами кодирования или двумя блоками кодирования.
Инструмент кодирования интра-подразделов разделяет блок интра-предсказания (т.е. блок интра-кодирования, что является сокращенным наименованием для текущего блока кодирования, который кодируется в режиме интра-предсказания) на подразделы и предсказывает подразделы внутри блока интра-предсказания один за другим. Может иметь место неоднородность на крае между текущим подразделом текущего блока кодирования и соседним блоком текущего блока кодирования. Следовательно, предложен улучшенный процесс фильтрации для уменьшения артефакта, вызванного таким краем, в котором фильтрацию не более одной выборки выполняют в текущем подразделе или соседнем блоке, когда высота текущего подраздела составляет 4 выборки или ширина текущего подраздела составляет 4 выборки. Это позволяет модифицировать небольшое число значений выборок на крае и, следовательно, способ может уменьшать артефакты блочности, которые могут быть вызваны упомянутым краем между текущим блоком, к которому применено ISP, и соседним блоком, избегая при этом перекрытий фильтрации между краем и границей подразделов до определенной степени.
В возможной форме реализации способа согласно второму аспекту как таковому,
выборку в числе не более одной, которую получают из столбца текущего подраздела, который перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к краю.
В возможной форме реализации способа согласно второму аспекту как таковому,
выборку в числе не более одной, которую получают из строки текущего подраздела, которая перпендикулярна и примыкает к краю между текущим подразделом и соседним блоком, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к краю.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, текущий подраздел находится справа от соседнего блока и текущий подраздел интра-предсказывается на основе восстановленного значения соседнего блока;
если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, текущий подраздел находится снизу от соседнего блока и текущий подраздел интра-предсказывается на основе восстановленного значения соседнего блока.
Текущий подраздел может быть интра-предсказан на основе другого блока кодирования, который расположен смежно с блоком кодирования. Этот другой блок кодирования может находится сверху от блока кодирования или слева от блока кодирования. Точнее, текущий подраздел может быть интра-предсказан на основе восстановленной версии соседнего блока кодирования.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, число подразделов равно 2 или 4.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому,
- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,
- иначе число подразделов равно 4.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборку в числе не более одной в текущем подразделе или в соседнем блоке модифицируют даже если край между текущим подразделом и соседним блоком не перекрывается с n x n сеткой выборок, где n - целое число. Например, n=4 или n =8.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборку в числе не более одной в текущем подразделе или в соседнем блоке модифицируют только если край между текущим подразделом и соседним блоком перекрывается с n x n сеткой выборок, где n - целое число. Например, n=4 или n =8.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, подразделы представляют собой прямоугольные подразделы блока преобразования.
В возможной форме реализации способа согласно любой предшествующей реализации второго аспекта или второму аспекту как таковому, текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.
Согласно третьему аспекту настоящего раскрытия предоставлено устройство для использования в кодере изображения и/или декодере изображения для деблокирования границы подразделов в блоке кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, при этом второй подраздел интра-предсказывается на основе первого подраздела;
при этом устройство содержит деблокирующий фильтр, выполненный с возможностью:
- определения первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;
- модификации значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или
- модификации значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.
Согласно четвертому аспекту настоящего раскрытия предоставлено устройство для использования в кодере изображения и/или декодере изображения для деблокирования краев блоков между блоками изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы;
при этом устройство содержит деблокирующий фильтр, выполненный с возможностью:
- определения третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;
- модификации значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или
- модификации значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.
Способ согласно первому аспекту изобретения может быть выполнен устройством согласно третьему аспекту изобретения. Дополнительные признаки и формы реализации устройства согласно третьему аспекту изобретения соответствуют признакам и формам реализации способа согласно первому аспекту изобретения.
Способ согласно второму аспекту изобретения может быть выполнен устройством согласно четвертому аспекту изобретения. Дополнительные признаки и формы реализации устройства согласно четвертому аспекту изобретения соответствуют признакам и формам реализации способа согласно второму аспекту изобретения.
Согласно пятому аспекту изобретение относится к устройству для декодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ согласно первому или второму аспекту.
Согласно шестому аспекту изобретение относится к устройству для кодирования видеопотока, включающему в себя процессор и память. Память хранит инструкции, которые побуждают процессор выполнять способ согласно первому или второму аспекту.
Согласно седьмому аспекту предложен считываемый компьютером носитель, на котором хранятся инструкции, которые при исполнении обеспечивают работу одного или более процессоров, выполненных с возможностью кодирования видеоданных. Инструкции побуждают один или более процессоров выполнять способ согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта.
Согласно восьмому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта при исполнении на компьютере.
Согласно девятому аспекту изобретение относится к кодеру или декодеру, содержащему схему обработки для выполнения способа согласно первому или второму аспекту, или любому возможному варианту осуществления первого или второго аспекта.
Согласно десятому аспекту изобретения предусмотрено устройство видеокодирования. Устройство видеокодирования для кодирования изображения видеопотока, при этом устройство видеокодирования содержит:
блок восстановления, выполненный с возможностью восстановления изображения, при этом восстановление изображения содержит генерирование восстановленного блока текущего блока кодирования, который принадлежит изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, при этом второй подраздел интра-предсказывается на основе первого подраздела; и
блок фильтрации, выполненный с возможностью обработки восстановленного изображения в отфильтрованное восстановленное изображение, при этом блок фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, или когда ширина текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к границе, или при этом блок фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе соответствующей максимальной длины фильтра для текущего подраздела и соответствующей максимальной длины фильтра для соседнего блока, и обе эти соответствующие максимальные длины фильтра равны 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.
Это позволяет эффективно улучшать качество восстанавливаемых изображений в рамках ISP.
В возможной форме реализации выборка в числе не более одной, которую получают из столбца первого или второго подраздела, который перпендикулярен и примыкает к границе между первым и вторым подразделами, модифицируется, когда высота первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждом столбце, перпендикулярном и примыкающем к границе подразделов.
В возможной форме реализации выборка в числе не более одной, которую получают из строки первого или второго подраздела, которая перпендикулярна и примыкает к границе между первым и вторым подразделами, модифицируется, когда ширина первого или второго подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным. Можно понять, что «модификация выборки в числе не более одной» может означать, что допускается модификация не более одной выборки. То есть, в зависимости от конкретной фазы принятия решения о фильтрации, в некоторых случаях никакая выборка может не модифицироваться, или в других случаях только одна выборка может модифицироваться в каждой строке, перпендикулярной и примыкающей к границе подразделов.
В возможной форме реализации, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница подразделов между первым и вторым подразделами является горизонтальной границей подразделов; В качестве альтернативы, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница подразделов между первым и вторым подразделами является вертикальной границей подразделов.
В возможной форме реализации, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел может находиться слава от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения первого подраздела;
Если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел может находиться сверху от второго подраздела, а второй подраздел может интра-предсказываться на основе восстановленного значения первого подраздела.
Можно понять, что второй подраздел интра-предсказывается на основе восстановленной версии (т.е. восстановленных значений) первого подраздела. Восстановленный первый подраздел представляет собой опорный элемент для интра-предсказания второго подраздела. Следует отметить, что после восстановления текущего изображения, к которому принадлежит текущий блок кодирования, восстановленное изображение вводится в процесс фильтрации. Во время восстановления текущего изображения текущий блок кодирования, к которому применяется инструмент кодирования ISP, интра-предсказывается для получения предиктивного блока (например, предсказанных значений) текущего блока кодирования, в частности, подразделы внутри текущего блока интра-кодирования интра-предсказываются один за другим.
В возможной форме реализации число подразделов равно 2 или 4.
В возможной форме реализации
- если ширина текущего блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина текущего блока кодирования равна 8, а высота текущего блока кодирования равна 4, число подразделов равно 2,
- иначе число подразделов равно 4.
В возможной форме реализации, выборка в числе не более одной в первом или втором подразделе модифицируется даже если граница подразделов между первым и вторым подразделами не перекрывается с n x n сеткой выборок, где n - целое число.
Обеспечивается возможность деблокирования целевых границ, которые не выровнены с n x n сеткой, а вызваны посредством ISP и представляют собой внутреннюю границу между подразделами блока кодирования.
В возможной форме реализации, выборка в числе не более одной в первом или втором подразделе модифицируется только если граница подразделов между первым и вторым подразделами перекрывается с n x n сеткой выборок, где n - целое число, например n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.
Более того, фильтрация не более одной выборки в подразделах может выполняться только тогда, когда высота всех подразделов составляет 4 выборки или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.
В общем, подразделы могут быть прямоугольными подразделами блока преобразования.
В возможной форме реализации выборки подразделов являются выборками яркости или выборки подразделов являются выборками цветности.
В возможной форме реализации порядком интра-предсказания подразделов является порядок слева направо, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, или порядком интра-предсказания подразделов является порядок сверху вниз, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным. То есть разделение блока предсказания на подразделы может выполняться в вертикальном направлении. В этом случае порядком интра-предсказания подразделов является порядок один за другим, слева направо. В качестве альтернативы, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении. В этом случае порядком интра-предсказания двух подразделов является порядок один за другим, сверху вниз.
В настоящем раскрытии текущий блок кодирования кодируется с использованием инструмента интра-подразделения, ISP, или граница подразделов возникает под действием инструмента интра-подразделения, ISP.
В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.
Более того, значения флага кодированного блока, CBF, могут быть получены согласно двум смежным подразделам, интенсивность границы для границы определяется между этими двумя смежными подразделами текущего блока согласно значениям CBF, соответствующим упомянутым двум смежным подразделам, а
принятие решения о фильтрации, следует ли выполнять фильтрацию, может быть выполнено согласно определенной интенсивности границы. По меньшей мере одно из значений CBF, соответствующих двум смежным подразделам, может быть не равно 0, где 0 означает, что остаточные данные после квантования этого подраздела отсутствуют.
Согласно одиннадцатому аспекту изобретения предусмотрено устройство видеодекодирования. Устройство видеодекодирования для декодирования изображения кодированного видеопотока, при этом устройство видеодекодирования содержит:
блок восстановления, выполненный с возможностью восстановления изображения, при этом восстановление изображения содержит генерирование восстановленного блока текущего блока кодирования, который принадлежит текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, при этом второй подраздел интра-предсказывается на основе первого подраздела; и
блок фильтрации, выполненный с возможностью обработки восстановленного изображения в отфильтрованное восстановленное изображение, при этом блок фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, или когда ширина текущего подраздела или другого подраздела, который примыкает к текущему подразделу, составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к границе, или при этом блок фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе соответствующей максимальной длины фильтра для текущего подраздела и соответствующей максимальной длины фильтра для соседнего блока, и обе эти соответствующие максимальные длины фильтра равны 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.
Это позволяет эффективно улучшать качество восстанавливаемых изображений в рамках ISP.
Кроме того, предусмотрен кодер, содержащий средство для кодирования текущего блока кодирования текущего изображения, при этом это средство содержит средство для генерирования восстановленного блока текущего блока кодирования и средство для фильтрации восстановленного изображения текущего изображения согласно любому из описанных выше вариантов осуществления способов по настоящему изобретению.
Кроме того, предусмотрен декодер, содержащий средство для декодирования текущего блока кодирования текущего изображения, при этом это средство содержит средство для генерирования восстановленного блока текущего блока кодирования и средство для фильтрации восстановленного изображения текущего изображения согласно любому из описанных выше вариантов осуществления способов по настоящему изобретению.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
В следующих вариантах осуществления изобретение описано более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:
ФИГ. 1A является блок-схемой, показывающей пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;
ФИГ. 1B является блок-схемой, показывающей другой пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;
ФИГ. 2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
ФИГ. 3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
ФИГ. 4 является блок-схемой, иллюстрирующей пример устройства кодирования или устройства декодирования;
ФИГ. 5 является блок-схемой, иллюстрирующей другой пример устройства кодирования или устройства декодирования;
ФИГ. 6 является блок-схемой, иллюстрирующей пример деблокирования краев подразделов в единице кодирования (CU), которая использует инструмент интра-подразделения (ISP);
ФИГ. 7 является блок-схемой, иллюстрирующей другой пример деблокирования краев подразделов в CU, которая использует инструмент интра-подразделения (ISP);
ФИГ. 8 является блок-схемой, иллюстрирующей пример деблокирования краев подразделов в CU, которые перекрываются с 8×8 сеткой выборок;
ФИГ. 9 является блок-схемой, иллюстрирующей пример деблокирования всех краев подразделов в CU, которые перекрываются с 8×8 сеткой выборок;
ФИГ. 10 является блок-схемой, иллюстрирующей пример, согласно которому, когда размер подразделов составляет <8 выборок ортогонально в направлении деблокирования, тогда используется слабый фильтр, который использует только 3 выборки при решении о деблокировании и который модифицирует только одну выборку;
ФИГ. 11 показывает блок-схему последовательности операций, иллюстрирующую примерный процесс для деблокирующей фильтрации;
ФИГ. 12 показывает блок-схему последовательности операций, иллюстрирующую другой примерный процесс для деблокирующей фильтрации;
ФИГ. 13 показывает схематичное представление устройства для деблокирования границы подразделов в блоке кодирования.
ФИГ. 14 показывает схематичное представление устройства для деблокирования краев блоков.
ФИГ. 15 показывает блок-схему последовательности операций, иллюстрирующую примерный процесс кодирования, реализуемый в устройстве декодирования или устройстве кодирования;
ФИГ. 16 показывает блок-схему последовательности операций, иллюстрирующую другой примерный процесс кодирования, реализуемый в устройстве декодирования или устройстве кодирования;
ФИГ. 17 показывает схематичное представление устройства для видеокодирования;
ФИГ. 18 показывает схематичное представление устройства для видеокодирования;
ФИГ. 19 является блок-схемой, показывающей примерную структуру системы подачи контента, которая реализует услугу доставки контента; и
ФИГ. 20 является блок-схемой, показывающей структуру примерного терминального устройства.
Одинаковые ссылочные позиции далее относятся к идентичным или по меньшей мере функционально эквивалентным признакам, если явно не указано иное.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть данного раскрытия и которые показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использованы. Понятно, что варианты осуществления данного изобретения могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретное устройство описано на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
Видеокодирование обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «картинка» могут использоваться как синонимы в области видеокодирования. Видеокодирование (или кодирование (coding) в целом) содержит две части: видеокодирование (video encoding) и видеодекодирование. Видеокодирование выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеоизображений для сокращения объема данных, требуемого для представления видеоизображений (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне получателя (адресата) и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом), должны пониматься как относящиеся к «кодированию» или «декодированию» видеоизображений или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (кодирование и декодирование).
В случае видеокодирования без потерь исходные видеоизображения могут быть восстановлены, т.е. восстановленные видеоизображения имеют такое же качество, что и исходные видеоизображения (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае видеокодирования с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеоизображения, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
Несколько стандартов видеокодирования принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (интра-изображения) предсказания и/или временного (интер-изображения) предсказания для генерирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует контур обработки декодера, так что они оба будут генерировать идентичные предсказания (например, интра- и интер-предсказания) и/или реконструкции для обработки, то есть кодирования (coding), последующих блоков.
В нижеследующих вариантах осуществления системы 10 видеокодирования, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. с 1 по 3.
ФИГ. 1A представляет собой схематичное блочное представление, иллюстрирующее примерную систему 10 кодирования, например систему 10 видеокодирования (или сокращенно систему 10 кодирования), которая может использовать методы из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодирования представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методов в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на ФИГ. 1A, система 10 кодирования содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 изображения, например в устройство-получатель 14 для декодирования кодированных данных 13 изображения.
Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. опционально, содержать источник 16 изображений, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 изображений, а также интерфейс связи или блок 22 связи.
Источник 16 изображений может содержать или быть устройством захвата изображений любого типа, например камерой для захвата изображения реального мира, и/или устройством генерирования изображений любого типа, например процессором компьютерной графики для генерирования компьютерного анимированного изображения, или любым типом другого устройства для получения и/или предоставления изображения реального мира, генерируемого компьютером изображения (например, содержимого экрана, изображения виртуальной реальности (VR)) и/или любой их комбинации (например, изображения дополненной реальности (AR)). Источником изображений может быть любой тип памяти или хранилища, где хранятся любые из вышеупомянутых изображений.
В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 предварительной обработки, изображение или данные 17 изображения также могут именоваться необработанным (raw) изображением или необработанными данными 17 изображения.
Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 изображения и выполнения предварительной обработки в отношении этих данных 17 изображения для получения предварительно обработанного изображения 19 или предварительно обработанных данных 19 изображения. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Должно быть понятно, что модуль 18 предварительной обработки может быть опциональным компонентом.
Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 изображения и предоставления кодированных данных 21 изображения (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема кодированных данных 21 изображения и передачи этих кодированных данных 21 изображения (или любой их дальнейшей обработанной версии) по каналу 13 связи в другое устройство, например устройство-получатель 14 или любое другое устройство, для сохранения или непосредственного восстановления.
Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. опционально, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 постобработки) и устройство 34 отображения.
Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема кодированных данных 21 изображения (или любой их дальнейшей обработанной версии), например непосредственно от устройства-источника 12 или из любого другого источника, например запоминающего устройства, например устройства хранения кодированных данных изображений, и предоставления кодированных данных 21 изображения в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 изображений или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например прямое проводное или беспроводное соединение, или через сеть любого типа, например проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки кодированных данных 21 изображения в надлежащий формат, например, в пакеты, и/или обработки кодированных данных изображения с использованием любого типа кодирования передачи или обработки для передачи по линии связи или сети связи.
Интерфейс 28 связи, являющийся аналогом интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки и/или распаковки передачи для получения кодированных данных 21 изображения.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть выполнены как интерфейсы однонаправленной связи, как показано стрелкой для канала 13 связи на Фиг. 1A, указывающей от устройства-источника 12 к устройству-получателю 14, или как интерфейсы двунаправленной связи, и могут быть выполнены с возможностью, например отправки и приема сообщений, например для установления соединения, для подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, например передаче кодированных данных изображения.
Декодер 30 выполнен с возможностью приема кодированных данных 21 изображения и предоставления декодированных данных 31 изображения или декодированного изображения 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг. 3 или Фиг. 5).
Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки декодированных данных 31 изображения (также называемых данными восстановленного изображения), таких как декодированное изображение 31, чтобы получить пост-обработанные данные 33 изображения, такие как пост-обработанное изображение 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например для подготовки декодированных данных 31 изображения для отображения, например с помощью устройства 34 отображения.
Устройство 34 отображения из состава устройства-получателя 14 выполнено с возможностью приема пост-обработанных данных 33 изображения для отображения изображения, например пользователю или зрителю. Устройство 34 отображения может представлять собой или содержать дисплей любого типа для представления восстановленного изображения, например, интегрированный или внешний дисплей, или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, дисплеи на микро-LED, жидкий кристалл на кремнии (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) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного изобретения не ограничиваются 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, буфер 230 (DPB) декодированных изображений, блок 244 интер-предсказания и блок 254 интра-предсказания также относятся к формированию «встроенного декодера» видеокодера 20.
Изображения и разделение изображений (изображения и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через ввод 201, изображения 17 (или данных 17 изображения), например изображения из последовательности изображений, образующих видео, или видеопоследовательности. Принятое изображение или данные изображения также могут представлять собой предварительно обработанное изображение 19 (или предварительно обработанные данные 19 изображения). Для простоты нижеследующее описание ссылается на изображение 17. Изображение 17 также может именоваться текущим изображением или изображением, которое подлежит кодированию (в частности, при видеокодировании, чтобы отличать текущее изображение от других изображений, например, ранее кодированных и/или декодированных изображений той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущее изображение).
(Цифровое) изображение является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента изображения) или pel (элемент изображения). Число выборок в горизонтальном и вертикальном направлении (или оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовые компоненты, т.е. изображение может быть представлено или включать в себя три массива выборок. В формате RBG или цветовом пространстве изображение содержит соответствующий массив красных, зеленых или синих выборок. Однако при видеокодировании каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновом изображении), в то время как две компоненты Cb и Cr цветности (chrominance) (или сокращенно цветности (chroma)) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости со значениями (Y) выборок яркости и два массива выборок цветности со значениями (Cb и Cr) цветности. Изображения в формате RGB могут быть конвертированы или преобразованы в формат YCbCr и наоборот, процесс также известен как цветовое преобразование или конвертация. Если изображение является монохромным, оно может содержать только массив выборок яркости. Соответственно, изображение может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера 20 могут содержать блок разделения изображения (не показан на Фиг. 2), выполненный с возможностью разделения изображения 17 на множество (обычно не перекрывающихся) блоков 203 изображения. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодирования (CTB) или единицами дерева кодирования (CTU) (H.265/HEVC и VVC). Блок разделения изображения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между изображениями или подмножествами, или группами изображений и разделения каждого изображения на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 изображения 17, например одного, нескольких или всех блоков, формирующих изображение 17. Блок 203 изображения также может именоваться текущим блоком изображения или блоком изображения, подлежащим кодированию.
Подобно изображению 17, блок 203 изображения снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 17 или массив яркости или цветности в случае цветного изображения) или три массива выборок (например, яркость и два массива цветности в случае цветного изображения 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, быть 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 как внутриконтурный (in loop) фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как пост-контурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.
Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как информация адаптивного к выборке смещения), например непосредственно или кодированных через блок 270 энтропийного кодирования, так что, например, декодер 30 может принимать и применять аналогичные параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Буфер декодированных изображений
Буфер 230 декодированных изображений (DPB) может быть памятью, в которой хранятся опорные изображения или, в общем, данные опорных изображений для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных изображений может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных изображений может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, того же самого текущего изображения или разных изображений, например ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, т.е. декодированные, изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для интер-предсказания. Буфер 230 декодированных изображений (DPB) также может быть выполнен с возможностью сохранения одного или более нефильтрованных восстановленных блоков 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) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодирования (CU) может быть или содержать блок кодирования выборок яркости, два соответствующих блока кодирования выборок цветности изображения, которое имеет три массива выборок, или блок кодирования выборок монохромного изображения или изображения, которое кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодирования выборок. Соответственно, блок кодирования (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодирования является разделением.
В вариантах осуществления, например, согласно HEVC, единица дерева кодирования (CTU) может быть разбита на CU с использованием структуры квадродерева, обозначенной в качества дерева кодирования. Решение о том, следует ли кодировать область изображения с использованием предсказания интер-изображения (временного) или интра-изображения (пространственного), принимается на уровне CU. Каждая CU может быть дополнительно разбита на одну, две или четыре PU в соответствии с типом разбиения на PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разбиения на PU, CU может быть разделена на единицы (TU) преобразования в соответствии с другой структурой квадродерева, аналогичной дереву кодирования для CU.
В вариантах осуществления, например в соответствии с разрабатываемым в настоящее время наиболее новым стандартом видеокодирования, который называется универсальное видеокодирование (VVC), для разделения блока кодирования используется, например, разделение комбинированного квадродерева и двоичного дерева (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 мог принимать и использовать параметры предсказания для декодирования.
Интер-предсказание
Набор (возможных) режимов интер-предсказания зависит от доступных опорных изображений (то есть предыдущих, по меньшей мере частично декодированных изображений, например сохраненных в DBP 230) и других параметров интер-предсказания, например используется ли опорное изображение целиком или только часть, например область окна поиска вокруг области текущего блока, опорного изображения для поиска наиболее подходящего опорного блока и/или, например, применяется ли интерполяция пикселей, например полупиксельная (half/semi-pel) и/или четвертьпиксельная (quarter-pel) интерполяция, или нет.
В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.
Блок 244 интер-предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба не показаны на Фиг.2). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 изображения (текущего блока 203 изображения текущего изображения 17) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например восстановленных блоков одного или множества других/отличных ранее декодированных изображений 231, для оценки движения. Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или разных изображений из множества других изображений и обеспечения опорного изображения (или индекса опорного изображения) и/или смещения (пространственного смещения) между позицией (x, y координатами) опорного блока и позицией текущего блока в качестве параметров интер-предсказания в блок оценки движения. Это смещение также называется вектором движения (MV).
Блок компенсации движения выполнен с возможностью получения, например, приема параметра интер-предсказания и выполнения интер-предсказания на основе или с использованием параметра интер-предсказания для получения блока 265 интер-предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или генерирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может генерировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число блоков предсказания-кандидатов, которые могут использоваться для кодирования блока изображения. После приема вектора движения для PU текущего блока изображения блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений.
Блок компенсации движения может также генерировать синтаксические элементы, связанные с блоками и слайсами видео, для использования видеодекодером 30 при декодировании блоков изображения слайса видео. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут генерироваться или использоваться группы мозаичных элементов и/или мозаичные элементы и соответствующие синтаксические элементы.
Энтропийное кодирование
Блок 270 энтропийного кодирования выполнен с возможностью применения, например, алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (VLC), схемы контекстно-адаптивного VLC (CAVLC), схемы арифметического кодирования, бинаризации, контекстно-адаптивного двоичного арифметического кодирования (CABAC), основанного на синтаксисе контекстно-адаптивного двоичного арифметического кодирования (SBAC), энтропийного кодирования с разделением интервала вероятности (PIPE) или другого метода или методологии энтропийного кодирования) или обхода (без сжатия) в отношении квантованных коэффициентов 209, параметров интер-предсказания, параметров интра-предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения кодированных данных 21 изображения, которые могут выводиться через вывод 272, например в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать эти параметры для декодирования, . Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.
Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
ФИГ. 3 показывает пример видеодекодера 30, который выполнен с возможностью реализации методов настоящей заявки. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 изображения (например, кодированного битового потока 21), например кодированных кодером 20, чтобы получить декодированное изображение 331. Кодированные данные изображения или битовый поток содержит информацию для декодирования кодированных данных изображения, например данных, которые представляют блоки изображения кодированного слайса видео (и/или мозаичных элементов или групп мозаичных элементов) и связанные синтаксические элементы.
В примере на Фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных изображений, блок 360 применения режима, блок 344 интер-предсказания и блок 354 интра-предсказания. Блок 344 интер-предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять проход декодирования, в целом обратный проходу кодирования, описанному в отношении видеокодера 100 на ФИГ. 2.
Как описано в отношении кодера 20 блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 (DPB) декодированных изображений, блок 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 также могут именоваться блоками 213 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из кодированных данных 21 изображения (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое подлежит применению к деквантованным коэффициентам 311.
Восстановление
Блок 314 восстановления (например, блок сложения или сумматор 314) выполнен с возможностью сложения восстановленного блока 313 преобразования с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
Фильтрация
Блок 320 контурного фильтра (либо в контуре кодирования, либо после контура кодирования) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как деблокирующий фильтр, фильтр с адаптивным к выборке смещением (SAO), или один или более других фильтров, таких как двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры сглаживания, повышения резкости или совместные фильтры, или любую их комбинацию. Хотя блок 320 контурного фильтра показан на ФИГ. 3 как внутриконтурный (in loop) фильтр, в других конфигурациях блок 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 четырех субблоков 4×4 в одном блоке 8×8) ограничивается таким образом, чтобы максимальная разность между целыми частями MV четырех субблоков 4×4 не превышала N пикселей, например была не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.
ФИГ. 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 может быть реализовано в самых разнообразных конфигурациях.
Инструмент кодирования интра-подразделов (ISP) разделяет интра-блок (предсказания) на множество подразделов и предсказывает эти подразделы, например, сначала предсказывает один подраздел, а затем предсказывает следующий подраздел. В некоторых ситуациях на границах подразделов могут быть неоднородности, вызывающие артефакты блочности.
В одном примере Фигура 6 показывает ISP-разделение интра-блока 600 на множество подразделов. В этом примере имеются два направленных раздела, горизонтальный раздел 601 и вертикальный раздел 602; в других примерах (не показанных на Фиг. 6) выполняется другое разделение, такое как угловое направленное разделение. В примере, показанном на Фиг. 6, помечены подразделы и соответствующие границы с вертикальным разделом 602. Здесь интра-блок 600 делится на четыре подраздела, а именно, sub0, sub1, sub2 и sub3. Помечены три границы подразделов, а именно: граница A подразделов между подразделом 0 и 1, граница B подразделов между подразделом 1 и 2, граница C подразделов между подразделом 2 и 3, аналогичное определение может быть использовано в примере горизонтального раздела 601.
В одном варианте осуществления предсказание подразделов выполняется с помощью инструмента ISP, подразделы могут декодироваться последовательно. Для одного подраздела остаточный сигнал может быть сгенерирован посредством энтропийного декодирования коэффициентов, отправленных кодером, а затем их обратного квантования и обратного преобразования. Затем подраздел интра-предсказывается и, наконец, соответствующие восстановленные выборки получаются путем сложения остаточного сигнала с сигналом предсказания. Сигнал предсказания может главным образом представлять интра-предсказание, которое выполняется на основе углового режима относительно строк верхней и левой опорных выборок. Остаток декодируется, а затем добавляется к сигналу предсказания для формирования конченого предсказания. Эти восстановленные выборки затем используются для предсказания следующего подраздела. Следовательно, восстановленные значения одного подраздела будут доступны для генерирования предсказания следующего подраздела, что является повтором процесса, и так далее. Все подразделы (sub0, sub1, sub2, sub3) используют один и тот же интра-режим.
Как правило, для подразделов могут использоваться два порядка обработки: нормальный порядок и обратный порядок. В примере, для горизонтального раздела нормальным порядком является порядок сверху вниз, а обратным порядком является порядок снизу-вверх. В другом примере, для вертикальных разделов нормальным порядком является порядок слева направо, а обратным порядком является порядок справа налево.
Как показано на Фиг. 7, для уменьшения артефактов блочности, вызываемых инструментом кодирования ISP, границы подразделов внутри блока, к которому применено ISP, подвергаются деблокирующей фильтрации после горизонтального разделения блока 700 кодирования на подразделы 701 или после вертикального разделения блока 700 кодирования на подразделы 702. Предлагается несколько альтернативных способов для применения деблокирующих фильтров в отношении этих границ подразделов.
Деблокирующая фильтрация с увеличенной интенсивностью границы.
Интенсивность границы (Bs) является параметром, который используется для управления силой деблокирующей фильтрации. Чем выше значение Bs, тем больше выборок, перпендикулярных границе, может быть отфильтровано. Предсказание ISP может привести к проблеме распространения ошибок, а именно, ошибка предсказания распространяется с порядком обработки.
В одном примере, как показано на Фигуре 6, с вертикальным разделением и нормальным порядком обработки блока кодирования (единицы кодирования) выборки в этих подразделах восстанавливаются слева направо, а именно sub0, sub1, sub2 и sub3. Подраздел 0 в целом может иметь лучшее качество предсказания, так как его опорные выборки (из левого соседнего блока и верхнего соседнего блока) уже восстановлены. Однако левую часть опорных выборок подраздела 1 получают из восстановленного подраздела 0, поэтому опорные выборки подраздела 1 могут не быть такими точными, как таковые у подраздела 0, что приводит к большему остаточному сигналу. Точно так же опорные выборки подраздела 2 еще хуже, чем таковые у подраздела 1, а ошибка предсказания распространяется вместе с порядком обработки.
Предлагается способ увеличения интенсивности границы с порядком обработки. А именно, когда граница между двумя подразделами (например, граница A, B, C на Фиг. 6) находится ближе к соседним блокам, тогда Bs для этой границы устанавливается равной меньшему значению, поскольку эта граница имеет меньшую ошибку. Когда граница находится дальше от соседних блоков, тогда Bs для этой границы устанавливается равной более высокому значению, так как граница имеет большую ошибку из-за распространения ошибок.
В одном примере, как показано на Фигуре 6, с вертикальным разделом и нормальным (слева направо) порядком обработки выполняемой в отношении блока, Bs границы A подразделов устанавливается равной 0, Bs границы B подразделов устанавливается равной 1, Bs границы C подразделов устанавливается равной 2.
В одном примере, как показано на Фигуре 6, с вертикальным разделом и обратным (справа налево) порядком обработки выполняемой в отношении блока, Bs границы A подразделов устанавливается равной 2, Bs границы B подразделов устанавливается равной 1, Bs границы C подразделов устанавливается равной 0.
В другом примере аналогичный процесс выполняется для горизонтальных разделов.
Деблокирующая фильтрация на основе флага кодированного блока (CBF).
В примере каждый подраздел предсказывается и восстанавливается отдельно, каждый подраздел может иметь различную остаточную информацию (разность между исходным сигналом и предсказанным сигналом). В частности, флаг кодированного блока (CBF) используется для указания того, имеет ли блок или подраздел остаточные данные или нет после квантования. В общем, блок с CBF, равным 1 (т.е. после квантования имеются остаточные данные), имеет большее искажение, чем блок с CBF, равным 0 (т.е. после квантования остаточных данных нет). В этом варианте осуществления деблокирующий фильтр применяется в отношении границы между двумя подразделами на основе флага CBF двух соседних с ней подразделов.
В одном примере, если каждый из двух подразделов некоторой границы подразделов имеет значение флага CBF, равное 0, то никакой деблокирующий фильтр не применяется, иначе (если по меньшей мере один из двух подразделов границы подразделов имеет значение флага CBF, равное 1) деблокирующий фильтр применяется, значение Bs границы подразделов устанавливается равным 1. Возвращаясь к примеру на Фигуре 6, если каждый из подраздела 0 и 1 имеет флаг CBF, равный 0, тогда никакой деблокирующий фильтр для границы A подразделов не применяется. Если по меньшей мере один из подразделов 0 и 1 имеет флаг CBF, равный 1, тогда деблокирующий фильтр применяется для границы A подразделов с Bs, установленной равной 1.
В одном примере, если каждый из двух подразделов некоторой границы подразделов имеет значение флага CBF, равное 0, то никакой деблокирующий фильтр не применяется, иначе (если по меньшей мере один из двух подразделов границы подразделов имеет значение флага CBF, равное 1) деблокирующий фильтр применяется со значением Bs границы подразделов установленным равным 2. Возвращаясь к примеру на Фигуре 6, если каждый из подраздела 0 и 1 имеет флаг CBF, равный 0, тогда никакой деблокирующий фильтр для границы A подразделов не применяется. Если по меньшей мере один из подразделов 0 и 1 имеет флаг CBF, равный 1, тогда деблокирующий фильтр применяется для границы A подразделов с Bs, установленной равной 2.
Установка постоянной интенсивности границы для границ подразделов.
В одном примере для всех границ A, B и C подразделов, показанных на фиг. 6, постоянная интенсивность границы (Bs) установлена равной 1.
В другом примере для всех границ A, B и C подразделов, показанных на фиг. 6, постоянная интенсивность границы (Bs) установлена равной 2.
Как показано на Фиг. 8, согласно другому примеру, после горизонтального разделения блока 800 кодирования на подразделы 801 или после вертикального разделения блока 800 кодирования на подразделы 802, деблокируются только границы подразделов, которые перекрываются с 8×8 сеткой выборок, а остальные края подразделов не деблокируются. Это дает преимущество в уменьшении вычислительной сложности, поскольку деблокируются только несколько краев.
Другая альтернатива показана на Фиг. 9. В этом случае, после горизонтального разделения блока 900 кодирования на подразделы 901 или после вертикального разделения блока 900 кодирования на подразделы 902, деблокируются все границы подразделов, которые перекрываются с 4×4 сеткой выборок.
Координатор позиции определяется как (x, y), x представляет число выборок от верхней левой выборки всего кадра в горизонтальном направлении; y представляет число выборок от верхней левой выборки всего кадра в вертикальном направлении. Координатором верхней левой выборки всего кадра является (0, 0).
В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где x%8==0. Операция % означает операцию по модулю, определяемую как остаток от деления x на 8.
В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где x%8==4. Операция % означает операцию по модулю, определяемую как остаток от деления x на 8.
В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где y%8==0. Операция % означает операцию по модулю, определяемую как остаток от деления y на 8.
В одном примере 8×8 сетка выборок может начинаться с позиции (x, y), где y%8==4. Операция % означает операцию по модулю, определяемую как остаток от деления y на 8.
Работа с меньшими блоками
http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=4834
Применение ISP может привести к появлению подразделов с высотой или шириной в 4 выборки. В примере на Фигуре 6 используется вертикальное разделение, если W составляет 16 выборок, тогда каждый подраздел имеет ширину 4 выборки. В этом случае, как показано на Фиг. 10, может использоваться слабый фильтр, который модифицирует не более одной выборки 10314 или 10331 вдоль границы 1032 подразделов между подразделом 1031 и подразделом 1033. В примере, показанном на Фигуре 10, фильтрация выполняется в каждой строке подразделов 1031, 1033, которая перпендикулярна и примыкает к границе 1032 подразделов между подразделом 1031 и подразделом 1033, например. Как показано на Фиг. 10, можно использовать слабый фильтр, который лишь модифицирует не более одной выборки 1108 или 10311 вдоль края 1020 между соседним блоком 1010 и текущим блоком 1030. В другом примере, показанном на Фигуре 10, фильтрация выполняется в каждой строке подраздела 1031 или соседнего блока 1010, которая перпендикулярна и примыкает к краю 1020 между соседним блоком 1010 и подразделом 1031 блока 1030, например. Иначе (если высота/ширина подраздела, ортогональная границам подразделов, больше 4 выборок, тогда может быть использован деблокирующий фильтр (например, деблокирующий фильтр, раскрытый в вышеупомянутом документе VVC) согласно версии 13 JVET-L1001 нормального VVC ().
В другом варианте осуществления для любого из вышеперечисленных вариантов осуществления и примеров, когда границы подразделов не выровнены с сеткой 8×8, тогда деблокирующий фильтр не применяется.
Подробная информация о связанном с интра-подразделом определении предлагаемого способа приведена ниже в формате спецификации проекта VVC (части 7.3.9.5 и 7.4.10.5):
7.3.9.5 Синтаксис единицы кодирования
…
<b> intra_subpartitions_mode_flag</b>[ x0 ][ y0 ]
ae(v)
if( intra_subpartitions_mode_flag[ x0 ][ y0 ] = = 1 )
<b>intra_subpartitions_split_flag</b>[ x0 ][ y0 ]
ae(v)
…
7.4.10.5 Семантика единицы кодирования
intra_subpartitions_mode_flag
[ x0 ][ y0 ], равный 1, определяет, что текущая интра-единица кодирования разделена на NumIntraSubPartitions[ x0 ][ y0 ] прямоугольных подразделов блока преобразования. intra_subpartitions_mode_flag[ x0 ][ y0 ], равный 0, определяет, что текущая интра-единица кодирования не разделена на прямоугольные подразделы блока преобразования.
Когда intra_subpartitions_mode_flag[ x0 ][ y0 ] не присутствует, выводится, что он равен 0.
intra_subpartitions_split_flag
[ x0 ][ y0 ] определяет, является ли типом разбиения на интра-подразделы горизонтальный или вертикальный тип. Когда intra_subpartitions_split_flag[ x0 ][ y0 ] не присутствует, он выводится следующим образом:
- Если cbHeight больше MaxTbSizeY, intra_subpartitions_split_flag[ x0 ][ y0 ] выводится равным 0.
- Иначе (cbWidth больше MaxTbSizeY), intra_subpartitions_split_flag[ x0 ][ y0 ] выводится равным 1.
Переменная IntraSubPartitionsSplitType определяет тип разбиения, используемого для текущего блока кодирования яркости, как проиллюстрировано в Таблице 13. IntraSubPartitionsSplitType получают следующим образом:
- Если intra_subpartitions_mode_flag[ x0 ][ y0 ] равен 0, IntraSubPartitionsSplitType устанавливается равным 0.
- Иначе IntraSubPartitionsSplitType устанавливается равным 1+intra_subpartitions_split_flag[ x0 ][ y0 ].
Таблица 13 - Связь наименования с IntraSubPartitionsSplitType
IntraSubPartitionsSplitType
Наименование IntraSubPartitionsSplitType
0
ISP_NO_SPLIT
1
ISP_HOR_SPLIT
2
ISP_VER_SPLIT
Переменная NumIntraSubPartitions определяет число подразделов блока преобразования, на которые делится блок интра-кодирования яркости. NumIntraSubPartitions получают следующим образом:
- Если IntraSubPartitionsSplitType равен ISP_NO_SPLIT, NumIntraSubPartitions устанавливается равным 1.
- Иначе, если выполняется одно из следующих условий, NumIntraSubPartitions устанавливается равным 2:
-- cbWidth равна 4 и cbHeight равна 8,
-- cbWidth равна 8 и cbHeight равна 4.
- Иначе NumIntraSubPartitions устанавливается равным 4.
ФИГ. 11 является блок-схемой последовательности операций способа деблокирования для деблокирования границы подразделов в блоке кодирования при кодировании изображения и/или декодировании изображения, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, при этом второй подраздел интра-предсказывается на основе первого подраздела. Дополнительные подробности способа описаны выше, например, со ссылкой на Фиг. с 6 по 10 .
На этапе 1101 определяют первую максимальную длину фильтра равной 1 для первого подраздела и/или вторую максимальную длину фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;
На этапе 1102 модифицируют значение не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которая/ который перпендикулярна/перпендикулярен и примыкает к границе подразделов между первым подразделом и вторым подразделом; и/или
На этапе 1103 модифицируют значение не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которая/который перпендикулярна/перпендикулярен и примыкает к границе подразделов между первым подразделом и вторым подразделом.
Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, таким образом улучшая эффективность кодирования.
ФИГ. 12 является блок-схемой последовательности операций способа деблокирования для деблокирования краев блоков между блоками изображения при кодировании изображения и/или декодировании изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком этого текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы; Дополнительные подробности способа описаны выше, например, со ссылкой на Фиг. с 6 по 10.
На этапе 1201 определяют третью максимальную длину фильтра равной 1 для текущего подраздела и/или четвертую максимальную длину фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;
На этапе 1202 модифицируют значение не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которая/который перпендикулярна/перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком; и/или
На этапе 1203 модифицируют значение не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которая/который перпендикулярна/перпендикулярен и примыкает к краю между текущим подразделом и соседним блоком.
Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, одновременно с этим избегая перекрытий фильтраций между краем блоков и границей подразделов до определенной степени, тем самым повышая эффективность кодирования.
ФИГ. 13 является блок-схемой, иллюстрирующей примерное устройство 1300 для деблокирования границы подразделов в блоке кодирования согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2 и 3, а также Фиг. с 6 по 10). Устройство для использования в кодере изображения и/или декодере изображения для деблокирования границы подразделов в блоке кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, который примыкает к первому подразделу, в примере, второй подраздел интра-предсказывается на основе первого подраздела;
при этом устройство 1300 содержит деблокирующий фильтр 1310, выполненный с возможностью:
- определения первой максимальной длины фильтра равной 1 для первого подраздела и/или второй максимальной длины фильтра равной 1 для второго подраздела, когда ширина первого подраздела составляет 4 выборки или ширина второго подраздела составляет 4 выборки, или когда высота первого подраздела составляет 4 выборки или высота второго подраздела составляет 4 выборки;
- модификации значения не более одной выборки первого подраздела, при этом эту выборку в числе не более одной получают из строки или столбца первого подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом; и/или
- модификации значения не более одной выборки второго подраздела, при этом эту выборку в числе не более одной получают из строки или столбца второго подраздела, которые перпендикулярны и примыкают к границе подразделов между первым подразделом и вторым подразделом.
ФИГ. 14 является блок-схемой, иллюстрирующей примерное устройство 1400 для деблокирования краев блоков согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2 и 3, а также Фиг. с 6 по 10). Устройство для использования в кодере изображения и/или декодере изображения, при этом края блоков содержат край между текущим подразделом текущего блока кодирования и соседним блоком текущего блока кодирования, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы;
при этом устройство 1400 содержит деблокирующий фильтр 1410, выполненный с возможностью:
- определения третьей максимальной длины фильтра равной 1 для текущего подраздела и/или четвертой максимальной длины фильтра равной 1 для соседнего блока, когда ширина текущего подраздела составляет 4 выборки или высота текущего подраздела составляет 4 выборки;
- модификации значения не более одной выборки текущего подраздела, при этом эту выборку в числе не более одной получают из строки или столбца текущего подраздела, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком; и/или
- модификации значения не более одной выборки соседнего блока, при этом эту выборку в числе не более одной получают из строки или столбца соседнего блока, которые перпендикулярны и примыкают к краю между текущим подразделом и соседним блоком.
ФИГ. 15 является блок-схемой последовательности операций способа кодирования (coding), реализуемого в устройстве декодирования или устройстве кодирования (encoding).
На этапе 1501 генерируют восстановленный блок текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; и
На этапе 1502 выполняют фильтрацию в отношении восстановленного изображения текущего изображения, при этом выполнение фильтрации в отношении восстановленного изображения текущего изображения содержит: фильтрацию не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела составляет 4 выборки, или когда ширина текущего подраздела составляет 4 выборки, при этом упомянутая выборка в числе не более одной расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к упомянутой границе.
В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из столбца текущего подраздела, который перпендикулярен и примыкает к границе между текущим подразделом и упомянутым другим подразделом, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.
В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из строки текущего подраздела, которая перпендикулярна и примыкает к границе между текущим подразделом и упомянутым другим подразделом, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.
В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, является горизонтальной границей подразделов; или
если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница между текущим подразделом и упомянутым другим подразделом, который расположен смежно с текущим подразделом, является вертикальной границей подразделов.
В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел находится слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела;
В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел находится сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.
В некоторой форме реализации данного варианта осуществления текущий подраздел представляет собой восстановленную версию первого подраздела или восстановленную версию второго подраздела.
В некоторой форме реализации данного варианта осуществления число подразделов равно 2 или 4.
В некоторой форме реализации данного варианта осуществления
- если ширина блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина блока кодирования равна 8, а высота блока кодирования равна 4, число подразделов равно 2,
- иначе число подразделов равно 4.
В дополнительной возможной форме реализации данного варианта осуществления фильтрация не более одной выборки в текущем подразделе выполняется только если граница между текущим подразделом и другим подразделом перекрывается с n x n сеткой выборок восстановленного блока, где n - целое число. Например, n=4 или n=8. Таким образом, вычислительная нагрузка может быть снижена еще больше.
В дополнительной возможной форме реализации данного варианта осуществления
фильтрация не более одной выборки в текущем подразделе выполняется только когда высота всех подразделов составляет 4 выборки или когда ширина всех подразделов составляет 4 выборки. Таким образом, вычислительная нагрузка всего процесса кодирования может быть дополнительно снижена.
В частности, подразделы являются прямоугольными подразделами блока преобразования. Когда ISP разделен, каждый подраздел представляет собой блок преобразования.
В настоящем раскрытии блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.
В дополнительной возможной форме реализации данного варианта осуществления порядок интра-предсказания подразделов является порядком слева направо или справа налево, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным (например, разделение блока предсказания на подразделы может выполняться в вертикальном направлении) или
порядок интра-предсказания подразделов является порядком сверху вниз или снизу-вверх, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным (например, разделение блока предсказания на подразделы может выполняться в горизонтальном направлении).
В частности, текущий подраздел является восстановленной версией (т.е. восстановленными значениями) первого подраздела или восстановленной версией (т.е. восстановленными значениями) второго подраздела. Например, число подразделов может равняться 2 или 4.
Блок кодирования может быть кодирован с использованием инструмента интра-подразделения, ISP. Инструмент кодирования ISP применяется только к блоку кодирования с интра-предсказанием. Разделение блока кодирования/блока интра-предсказания может привести в результате к 1D-подразделам или линии подразделов. Если данный способ предназначен для использования при кодировании изображения, генерирование восстановленного блока основано на следующем потоке обработки (известном в данной области техники): вычисление остаточного блока на основе текущего блока (т.е. исходного блока) и блока интра-предсказания, преобразование и квантование остаточных коэффициентов остаточного блока, обратное квантование и обратное преобразование для получения восстановленного остаточного блока (см. также подробное описание ниже). Восстановленный блок получается на основе восстановленного остаточного блока и блока предсказания. Если данный способ предназначен для использования при декодировании изображения, генерирование восстановленного блока основано на следующем потоке обработки (известном в данной области техники): получение остаточных коэффициентов остаточного блока на основе информации, включенной в принятый битовый поток, преобразование и квантование остаточных коэффициентов остаточного блока, обратное квантование и обратное преобразование для получения восстановленного остаточного блока (см. также подробное описание ниже). Восстановленный блок получается на основе восстановленного остаточного блока и блока предсказания. Кроме того, восстановленное изображение текущего изображения, содержащего текущий блок, вводится в процесс фильтрации, в схеме кодирования изображения на основе блоков, с фильтрацией не более одной выборки, под которой понимается фильтрация границы, содержащая модификацию не более одной выборки, примыкающей к границе блоков. Решение о таком виде деблокирования может быть основано лишь на трех выборках (соседних в одной строке для фильтрации границ между вертикальными подразделами или соседних в одном столбце для фильтрации границ между горизонтальными подразделами; см. также подробное описание выше).
В общем, интенсивности границ всех границ между подразделами блока кодирования могут быть установлены равными постоянному значению, указывающему интенсивность процесса фильтрации (например, 2), чтобы упростить общую обработку.
Слабая фильтрация, применяемая согласно изобретению (не более одной выборки), позволяет уменьшить артефакты блочности в небольших блоках без необходимости в избыточной высокой вычислительной нагрузке и ресурсах памяти.
ФИГ. 16 является блок-схемой последовательности операций другого способа кодирования (coding), реализуемого в устройстве декодирования или устройстве кодирования (encoding).
На этапе 1601 генерируют восстановленный блок текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; и
На этапе 1602 выполняется фильтрация в отношении восстановленного изображения текущего изображения, при этом выполнение фильтрации в отношении восстановленного изображения текущего изображения содержит: фильтрацию границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу (то есть соседний блок текущего блока), на основе максимальной длины фильтра текущего подраздела и максимальной длины фильтра соседнего блока, и максимальная длина фильтра текущего подраздела и максимальная длина фильтра соседнего блока равняется 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.
В примере, этап 1602 может включать в себя:
- модификацию, на основе максимальной длины фильтра MA текущего подраздела, значения одной выборки текущего подраздела, смежной с границей; и
- модификацию, на основе максимальной длины фильтра MB соседнего блока, значений выборок соседнего блока, смежных с границей.
MA=1, MB=1.
В частности, этап 1203 может включать в себя:
- модификацию значения выборки максимум в числе MA текущего подраздела, причем выборка максимум в числе MA находится на линии, перпендикулярной и примыкающей к границе, MA=1; и
при этом модификация, на основе максимальной длины фильтра MB, значений выборок соседнего блока, прилегающего к границе, содержит:
- модификацию значений выборок максимум в числе MB соседнего блока, причем выборки максимум в числе MB находятся на линии, перпендикулярной и примыкающей к границе, MB=1.
Здесь максимальная длина фильтра текущего подраздела означает число выборок, разрешенных для модификации в процессе фильтрации для текущего подраздела. Максимальная длина фильтра соседнего блока означает число выборок, разрешенных для модификации в процессе фильтрации для соседнего блока.
В некоторой форме реализации данного варианта осуществления первый подраздел интра-предсказывается на основе другого восстановленного блока, который расположен смежно с блоком кодирования.
В дополнительной возможной форме реализации данного варианта осуществления фильтрация выполняется только если граница перекрывается с n x n сеткой выборок восстановленного блока, где n является целым числом. Например, n равно 4 или 8.
В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из столбца текущего подраздела, который перпендикулярен и примыкает к границе между текущим подразделом и упомянутым соседним блоком, который находится снизу или сверху от текущего подраздела, модифицируют, когда высота текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным.
В некоторой форме реализации данного варианта осуществления значение упомянутой одной выборки, которое получают из строки текущего подраздела, которая перпендикулярна и примыкает к границе между текущим подразделом и упомянутым соседним блоком, который находится слева или справа от текущего подраздела, модифицируют, когда ширина текущего подраздела составляет 4 выборки, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным.
В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, граница между текущим подразделом и упомянутым соседним блоком, который расположен смежно с текущим подразделом, является горизонтальной границей; или
если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, граница между текущим подразделом и упомянутым соседним блоком, который расположен смежно с текущим подразделом, является вертикальной границей.
В некоторой форме реализации данного варианта осуществления, если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является вертикальным, первый подраздел находится слева от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела;
если тип разбиения на интра-подразделы для разделения текущего блока кодирования на подразделы является горизонтальным, первый подраздел находится сверху от второго подраздела и второй подраздел интра-предсказывается на основе восстановленного значения первого подраздела.
В частности число подразделов равняется 2 или 4. Когда число подразделов равно 2, соответственно, имеется первый подраздел и второй подраздел внутри текущего блока, и текущий подраздел может быть восстановленной версией первого подраздела или восстановленной версией второго подраздела.
Когда число подразделов равно 4, соответственно, имеется первый подраздел, второй подраздел, третий подраздел и четвертый подраздел внутри текущего блока, и текущий подраздел может быть восстановленной версией первого подраздела или восстановленной версией четвертого подраздела.
Можно понять, что первый подраздел, второй подраздел, третий подраздел и четвертый подраздел просто используются по-разному для подразделов. В некоторых случаях высота всех подразделов составляет 4 выборки или ширина всех подразделов составляет 4 выборки.
В дополнительной возможной форме реализации данного варианта осуществления
- если ширина блока кодирования равна 4, а высота блока кодирования равна 8 и/или если ширина блока кодирования равна 8, а высота блока кодирования равна 4, число подразделов равно 2,
- иначе число подразделов равно 4.
В дополнительной возможной форме реализации данного варианта осуществления фильтрация выполняется только если граница перекрывается с n x n сеткой выборок восстановленного блока, где n является целым числом. Например, n равно 4 или 8.
В частности, подразделы являются прямоугольными подразделами блока преобразования.
В настоящем раскрытии блок кодирования кодируется с использованием инструмента интра-подразделения, ISP.
ФИГ. 17 является блок-схемой, иллюстрирующей примерное устройство 1700 согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. с 6 по 10, а также Фиг. 15). Устройство предназначено для использования в кодере изображений и/или декодере изображений. В примере данное устройство 1700 может соответствовать кодеру с ФИГ. 2. В другом примере данное устройство 1700 может соответствовать декодеру с ФИГ. 3. Устройство может включать в себя:
блок 1710 восстановления, выполненный с возможностью генерирования восстановленного блока текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; и
блок 1730 фильтрации, выполненный с возможностью осуществления фильтрации в отношении восстановленного изображения текущего изображения, при этом блок 1730 фильтрации в частности выполнен с возможностью фильтрации не более одной выборки в текущем подразделе из восстановленных подразделов восстановленного блока, когда высота текущего подраздела составляет 4 выборки, или когда ширина текущего подраздела составляет 4 выборки, при этом упомянутая одна выборка расположена в строке или столбце текущего подраздела, которые перпендикулярны границе между текущим подразделом и другим подразделом, который расположен смежно с текущим подразделом, и эта одна выборка примыкает к упомянутой границе.
ФИГ. 18 является блок-схемой, иллюстрирующей примерное устройство 1800 согласно методикам, описанным в данном раскрытии (дополнительные подробности будут описаны ниже, например, на основе Фиг. с 6 по 10, а также Фиг. 16). Устройство предназначено для использования в кодере изображений и/или декодере изображений. В примере данное устройство 1800 может соответствовать кодеру с ФИГ. 2. В другом примере данное устройство 1800 может соответствовать декодеру с ФИГ. 3. Устройство может включать в себя:
блок 1810 восстановления, выполненный с возможностью генерирования восстановленного блока текущего блока кодирования, который принадлежит к текущему изображению, при этом текущий блок кодирования кодируется в режиме интра-предсказания и текущий блок кодирования разделяется на подразделы, содержащие первый подраздел и второй подраздел, причем второй подраздел интра-предсказывается на основе первого подраздела; и
блок 1830 фильтрации, выполненный с возможностью осуществления фильтрации в отношении восстановленного изображения текущего изображения, при этом блок 1830 фильтрации в частности выполнен с возможностью фильтрации границы между текущим подразделом восстановленного блока и соседним блоком, который примыкает к текущему подразделу, на основе максимальной длины фильтра текущего подраздела и максимальной длины фильтра соседнего блока, и соответствующие максимальные длины фильтров текущего подраздела и соседнего блока равняются 1, когда высота текущего подраздела составляет 4 выборки или когда ширина текущего подраздела составляет 4 выборки.
Основываясь на вышеупомянутом настоящее раскрытие позволяет модифицировать небольшое число значений выборок на границе подразделов и, следовательно, данный способ может уменьшить артефакт блочности, который может быть вызван границами подразделов в блоке, в котором применено ISP, одновременно с этим избегая перекрытий фильтраций между краем блоков и границей подразделов до определенной степени, тем самым повышая эффективность кодирования.
Ниже приводится пояснение по применениям способа кодирования и способа декодирования, показанных в вышеупомянутых вариантах осуществления, а также использующей их системы.
ФИГ. 19 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и опционально включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по-отдельности.
В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR) / цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.
Для терминального устройства со своим дисплеем, например смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR) / цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования изображений или устройство декодирования изображений, как показано в вышеупомянутых вариантах осуществления.
ФИГ. 20 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.
После того, как блок 3202 обработки протокола обработает поток, генерируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на закодированные аудиоданные и закодированные видеоданные. Как описано выше, в других практических сценариях, например, в системе видеоконференцсвязи, закодированные аудиоданные и закодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
Посредством обработки демультиплексирования генерируются элементарный поток (ES) видео, ES аудио и, опционально, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует ES видео с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в синхронизирующий блок 3212. Аудиодекодер 3208 декодирует ES аудио для генерирования аудиокадра и подает эти данные в синхронизирующий блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронизирующий блок 3212. Точно так же аудиокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в синхронизирующий блок 3212.
Синхронизирующий блок 3212 синхронизирует видеокадр и аудиокадр и подает видео/аудио в дисплей 3214 видео/аудио. Например, синхронизирующий блок 3212 синхронизирует представление видео и аудио информации. Информация может кодироваться в синтаксисе с использованием временных меток, касающихся представления кодированных аудио- и видеоданных, а также временных меток, касающихся доставки самого потока данных.
Если субтитр включен в поток, декодер 3210 субтитров декодирует субтитр и синхронизирует его с видеокадром и аудиокадром и передает видео/аудио/субтитр на дисплей 3216 видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования изображений, либо устройство декодирования изображений из вышеупомянутых вариантов осуществления может быть включено в другую систему, например, автомобильную систему.
Изобретение было описано в связи с различными вариантами осуществления в данном документе. Однако другие варианты раскрытых вариантов осуществления могут быть поняты и осуществлены специалистами в данной области техники при практической реализации заявленного изобретения на основе изучения чертежей, данного раскрытия и прилагаемой формулы изобретения. В формуле изобретения слово «содержащий» не исключает другие элементы или этапы, а упоминание чего-либо в единственном числе, не исключает множественности. Один процессор или другой блок может выполнять функции нескольких элементов, указанных в формуле изобретения. Простой факт, что определенные меры изложены в обычно различных зависимых пунктах формулы изобретения, не означает, что комбинация этих мер не может быть использована с выгодой. Компьютерная программа может храниться/распространяться на подходящем носителе, таком как оптический носитель данных или твердотельный носитель, поставляемый вместе с другим аппаратным обеспечением или как его часть, но также может распространяться в других формах, например, через Интернет или другие системы проводной или беспроводной связи.
Специалист в данной области техники поймет, что «блоки» («модули») на различных фигурах (способ и устройство) представляют или описывают функциональные возможности вариантов осуществления изобретения (а не обязательно отдельные «блоки» в аппаратном или программном обеспечении) и таким образом они в равной степени описывают функции или особенности вариантов осуществления устройства, а также варианты осуществления способа (блок=этап).
Термин «блок» используется лишь для целей иллюстрации функциональных возможностей вариантов осуществления кодера/декодера и не предназначен для ограничения данного раскрытия.
В нескольких вариантах осуществления, представленных в данной заявке, следует понимать, что раскрытые система, устройство и способ могут быть реализованы другими способами. Например, описанный вариант осуществления устройства является лишь примерным. Например, разделение на блоки является лишь логическим разделением по функциям, а в фактической реализации может иметь место другое разделение. Например, множество блоков или компонентов могут быть объединены или интегрированы в другую систему, или некоторые признаки могут игнорироваться или не выполняться. Кроме того, показанные или описанные взаимные связи или прямые связи или коммуникационные соединения могут быть реализованы с использованием некоторых интерфейсов. Непрямые связи или коммуникационные соединения между устройствами или блоками могут быть реализованы электрическими, механическими или иметь другие формы.
Блоки, описанные как отдельные части, могут быть или могут не быть физически отдельными, а части, показанные как блоки, могут быть или могут не быть физическими блоками, могут быть расположены в одном месте или могут быть распределены по множеству сетевых блоков. Некоторые или все блоки могут быть выбраны согласно фактическим требованиям для достижения целей решений в вариантах осуществления.
Кроме того, функциональные блоки в вариантах осуществления настоящего изобретения могут быть интегрированы в один блок обработки, или каждый из блоков может существовать физически отдельно, или два или более блоков интегрируются в один блок.
Варианты осуществления изобретения могут дополнительно включать в себя устройство, например кодер и/или декодер, который содержит схему обработки, выполненную с возможностью выполнения любого из способов и/или процессов, описанных в данном документе.
Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодирования, следует отметить, что варианты осуществления системы 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 или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Диск (disk) и диск (disc), используемые используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs)воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.
Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования и декодирования или включенных в объединенный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Методики этого раскрытия могут быть реализованы в большом количестве устройств или аппаратных компонентов, в том числе беспроводной телефон, интегральная схема (ИС) или набор ИС (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе один или более процессоров, как описано выше, вместе с подходящим программным обеспечением и/или микропрограммным обеспечением.