СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ
METHOD AND APPARATUS FOR VIDEO ENCODING/DECODING AND METHOD FOR TRANSMITTING A BIT STREAM

Область техники, к которой относится изобретение
Настоящее раскрытие сущности относится к способу и устройству кодирования/декодирования изображений и к способу передачи потока битов, а более конкретно, к способу и устройству для кодирования/декодирования изображения посредством выполнения внутреннего прогнозирования с использованием фильтрации опорных выборок и к способу передачи потока битов, сформированного за счет этого.
Уровень техники
В последнее время, спрос на высококачественные изображения высокого разрешения, к примеру, изображения высокой четкости (HD) и изображения сверхвысокой четкости (UHD) растет в различных областях техники. По мере того, как разрешение и качество данных изображений повышается, объем передаваемой информации или битов относительно увеличивается по сравнению с существующими данными изображений. Увеличение объема передаваемой информации или битов приводит к увеличению затрат на передачу и затрат на хранение.
Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации относительно высококачественных изображений высокого разрешения.
Сущность изобретения
Техническая задача
Цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
Помимо этого, цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство для кодирования/декодирования изображения посредством выбора фильтра, применяемого, когда прогнозная выборка извлекается согласно тому, используется или нет фильтрация выборки, на которую ссылаются во время внутреннего прогнозирования.
Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ передачи потока битов, сформированного посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.
Технические проблемы, разрешаемые посредством настоящего раскрытия сущности, не ограничены вышеуказанными техническими проблемами, и другие технические проблемы, которые не описываются в данном документе, должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Техническое решение
Способ декодирования изображений, осуществляемый посредством устройства декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, включает в себя получение информации режима внутреннего прогнозирования текущего блока из потока битов, определение режима внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования и режима внутреннего прогнозирования соседнего блока, расположенного около текущего блока, извлечение значения первого флага фильтра для использования фильтрации внутренней прогнозной опорной выборки текущего блока на основе параметров кодирования для текущего блока, применения сглаживающей фильтрации к внутренней прогнозной опорной выборке текущего блока, когда значение первого флага фильтра указывает использование фильтрации внутренней прогнозной опорной выборки текущего блока, выбор интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра, и формирование блока внутреннего прогнозирования текущего блока с использованием выбранного интерполяционного фильтра.
Когда первый флаг фильтра указывает то, что внутренняя прогнозная опорная выборка текущего блока подвергнута сглаживающей фильтрации, сглаживающий фильтр может выбираться и применяться к опорной выборке, интерполяционный фильтр, который должен использоваться для внутреннего прогнозирования текущего блока, за счет этого извлекая прогнозную выборку текущего блока.
Когда первый флаг фильтра указывает то, что внутренняя прогнозная опорная выборка текущего блока не подвергнута сглаживающей фильтрации, повышающий резкость фильтр может выбираться и применяться к опорной выборке в качестве интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, за счет этого извлекая прогнозную выборку текущего блока.
С этой целью, способ декодирования изображений, осуществляемый посредством устройства декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, включает в себя получение информации режима внутреннего прогнозирования текущего блока из потока битов, определение режима внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования и режима внутреннего прогнозирования соседнего блока, расположенного около текущего блока, извлечение значения первого флага фильтра для использования фильтрации внутренней прогнозной опорной выборки текущего блока на основе параметров кодирования для текущего блока, выбор интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра, и формирование блока внутреннего прогнозирования текущего блока с использованием выбранного интерполяционного фильтра.
Применение сглаживающей фильтрации к внутренней прогнозной опорной выборке текущего блока, когда значение первого флага фильтра указывает использование фильтрации внутренней прогнозной опорной выборки текущего блока, дополнительно может включаться.
Параметры кодирования могут включать в себя по меньшей мере одно из индекса множественной опорной линии текущего блока, размера текущего блока, цветового компонента текущего блока, того, следует ли применять внутренние субсегменты (ISP) к текущему блоку, или режима внутреннего прогнозирования текущего блока.
Фильтрация внутренней прогнозной опорной выборки может не использоваться, когда значение первого флага фильтра составляет первое значение, фильтрация внутренней прогнозной опорной выборки может использоваться, когда значение первого флага фильтра составляет второе значение, интерполяционный фильтр, который должен использоваться для внутреннего прогнозирования текущего блока, может определяться в качестве фильтра, имеющего характеристику повышения резкости, когда значение первого флага фильтра составляет первое значение, и интерполяционный фильтр, который должен использоваться для внутреннего прогнозирования текущего блока, может определяться в качестве фильтра, имеющего характеристику сглаживания, когда значение первого флага фильтра составляет второе значение.
Выбор интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра может включать в себя извлечение значения второго флага фильтра для интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра, и выбор интерполяционного фильтра на основе второго флага фильтра.
Значение второго флага фильтра может извлекаться в качестве первого значения, когда удовлетворяется условие для по меньшей мере одного из параметров кодирования.
Значение второго флага фильтра может извлекаться в качестве первого значения, когда внутренние субсегменты (ISP) применяются к текущему блоку.
Значение второго флага фильтра может извлекаться в качестве первого значения, когда внутренние субсегменты (ISP) применяются к текущему блоку, текущий блок представляет собой блок сигналов яркости, режим внутреннего прогнозирования текущего блока равен или выше предварительно определенного режима, и ширина текущего блока равна или выше предварительно определенного размера. Помимо этого, предварительно определенный режим может представлять собой левый верхний диагональный режим, и предварительно определенный размер может быть равным 8.
Значение второго флага фильтра может извлекаться в качестве первого значения, когда внутренние субсегменты (ISP) применяются к текущему блоку, текущий блок представляет собой блок сигналов яркости, режим внутреннего прогнозирования текущего блока равен или меньше предварительно определенного режима, и ширина текущего блока равна или выше предварительно определенного размера. Предварительно определенный режим может представлять собой левый верхний диагональный режим, и предварительно определенный размер может быть равным 8.
Фильтрация внутренней прогнозной опорной выборки может не использоваться, когда значение первого флага фильтра составляет первое значение, фильтрация внутренней прогнозной опорной выборки может использоваться, когда значение первого флага фильтра составляет второе значение, и значение второго флага фильтра может извлекаться в качестве 0, когда значение первого флага фильтра равно 1.
Интерполяционный фильтр может представлять собой фильтр, имеющий характеристику повышения резкости, когда значение второго флага фильтра составляет первое значение, интерполяционный фильтр может представлять собой фильтр, имеющий характеристику сглаживания, когда значение второго флага фильтра составляет второе значение, и значение второго флага фильтра может извлекаться в качестве первого значения, когда значение первого флага фильтра составляет второе значение.
Устройство декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем включает в себя запоминающее устройство и по меньшей мере один процессор. По меньшей мере один процессор может получать информацию режима внутреннего прогнозирования текущего блока из потока битов, определять режим внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования и режима внутреннего прогнозирования соседнего блока, расположенного около текущего блока, извлекать значение первого флага фильтра для использования фильтрации внутренней прогнозной опорной выборки текущего блока на основе параметров кодирования для текущего блока, выбирать интерполяционный фильтр, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра и формировать блок внутреннего прогнозирования текущего блока с использованием выбранного интерполяционного фильтра.
Способ кодирования изображений, осуществляемый посредством устройства кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, включает в себя выбор режима внутреннего прогнозирования текущего блока, извлечение значения первого флага фильтра для использования фильтрации внутренней прогнозной опорной выборки текущего блока на основе параметров кодирования для текущего блока, выбор интерполяционного фильтра, который должен использоваться для внутреннего прогнозирования текущего блока, на основе первого флага фильтра, формирование блока внутреннего прогнозирования текущего блока с использованием выбранного интерполяционного фильтра и кодирование режима внутреннего прогнозирования текущего блока на основе режима внутреннего прогнозирования соседнего блока, расположенного около текущего блока.
Устройство кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем может передавать поток битов, сформированный, как описано выше.
Преимущества изобретения
Согласно настоящему раскрытию сущности, можно предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
Помимо этого, согласно настоящему раскрытию сущности, можно предоставлять способ и устройство для кодирования/декодирования изображения посредством выбора фильтра, применяемого, когда прогнозная выборка извлекается согласно тому, используется или нет фильтрация выборки, на которую ссылаются во время внутреннего прогнозирования.
Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ передачи потока битов, сформированного посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.
Специалисты в данной области техники должны принимать во внимание, что преимущества, которые могут достигаться через настоящее раскрытие сущности, не ограничены тем, что конкретно описано выше, и другие преимущества настоящего раскрытия сущности должны более ясно пониматься из подробного описания.
Краткое описание чертежей
Фиг. 1 является видом, схематично иллюстрирующим систему кодирования видео согласно варианту осуществления.
Фиг. 2 является видом, схематично иллюстрирующим устройство кодирования изображений согласно варианту осуществления.
Фиг. 3 является видом, схематично иллюстрирующим устройство декодирования изображений согласно варианту осуществления.
Фиг. 4 и 5 являются видами, иллюстрирующими направление внутреннего прогнозирования согласно варианту осуществления.
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей этап внутреннего прогнозирования согласно варианту осуществления.
Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей этап конструирования опорных выборок согласно варианту осуществления.
Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей способ определения того, следует или нет выполнять фильтрацию следует или нет выполнять фильтрацию опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей способ определения фильтра, используемого для того, чтобы извлекать прогнозную выборку в зависимости от того, выполнена или нет фильтрация опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей способ определения фильтра, используемого для того, чтобы получать выборочное значение текущего блока с использованием filterFlag в качестве параметра, указывающего то, следует или нет выполнять фильтрацию опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 11-12 являются видами, иллюстрирующими другой пример по фиг. 10.
Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ формирования внутренней прогнозной выборки согласно результату выполнения фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей способ выполнения режима направленного внутреннего прогнозирования посредством устройства декодирования согласно варианту осуществления.
Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей способ получения значения модифицированного filterFlag посредством устройства декодирования согласно варианту осуществления.
Фиг. 16 является таблицей преобразования между predModeIntra и intraPredAngle, который представляет собой параметр, указывающий угол согласно варианту осуществления.
Фиг. 17 представляет собой таблицу, иллюстрирующую коэффициенты кубического фильтра (fC) и гауссова фильтра (fG) в качестве интерполяционного фильтра, используемого для внутреннего прогнозирования согласно варианту осуществления.
Фиг. 18-20 являются блок-схемами последовательности операций, иллюстрирующими способ извлечения массива ref[x] опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 21-26 являются видами, иллюстрирующими примеры массива опорных выборок, используемого для того, чтобы формировать прогнозную выборку текущего блока.
Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей процедуру определения условия для выполнения фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 28 является видом, иллюстрирующим пример целевого массива выборок, к которому должен применяться фильтр [1 2 1]/4, и результирующего массива выборок, к которому применяется фильтр [1 2 1]/4.
Фиг. 29 является видом, иллюстрирующим другой пример выполнения внутреннего прогнозирования с использованием фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 30-31 являются видами, иллюстрирующими другой вариант выполнения внутреннего прогнозирования с использованием фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 32 является видом, иллюстрирующим пример формирования внутренней прогнозной выборки с использованием линейного интерполяционного фильтра посредством устройства декодирования согласно варианту осуществления.
Фиг. 33 является видом, иллюстрирующим другой вариант выполнения внутреннего прогнозирования с использованием фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления.
Фиг. 34 является видом, иллюстрирующим систему потоковой передачи контента согласно варианту осуществления
Оптимальный режим осуществления изобретения
В дальнейшем в этом документе подробно описываются варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи, так что они легко могут реализовываться специалистами в данной области техники. Тем не менее, настоящее раскрытие сущности может реализовываться во всевозможных формах и не ограничено вариантами осуществления, описанными в данном документе.
При описании настоящего раскрытия сущности, если определяется то, что подробное описание связанной известной функции или конструкции приводит к излишней неоднозначности объема настоящего раскрытия сущности, ее подробное описание опускается. На чертежах, части, не связанные с описанием настоящего раскрытия сущности, опускаются, и аналогичные ссылки с номерами присоединяются к аналогичным частям.
В настоящем раскрытии сущности, когда компонент "соединяется (connected)", "соединяется (coupled)" или "связывается (linked)" с другим компонентом, это может включать в себя не только непосредственную взаимосвязь на основе соединения, но также и косвенную взаимосвязь на основе соединения, в которой присутствует промежуточный компонент. Помимо этого, когда компонент "включает в себя" или "имеет" другие компоненты, это означает то, что другие компоненты могут включаться дополнительно, а не исключение других компонентов, если не указано иное.
В настоящем раскрытии сущности, термины "первый", "второй" и т.д. могут использоваться только для целей различения одного компонента от других компонентов и не ограничивают порядок или важность компонентов, если не указано иное. Соответственно, в пределах объема настоящего раскрытия сущности, первый компонент в одном варианте осуществления может называться "вторым компонентом" в другом варианте осуществления, и аналогично, второй компонент в одном варианте осуществления может называться "первым компонентом" в другом варианте осуществления.
В настоящем раскрытии сущности, компоненты, которые отличаются друг от друга, имеют намерение ясно описывать каждый признак и не означают то, что компоненты обязательно разделяются. Таким образом, множество компонентов могут интегрироваться и реализовываться в одном аппаратном или программном модуле, или один компонент может распределяться и реализовываться во множестве аппаратных или программных модулей. Следовательно, даже если не указано иное, такие варианты осуществления, в которых компоненты интегрируются, или компонент распределяется, также включаются в объем настоящего раскрытия сущности.
В настоящем раскрытии сущности, компоненты, описанные в различных вариантах осуществления, не обязательно означают существенные компоненты, и некоторые компоненты могут представлять собой необязательные компоненты. Соответственно, вариант осуществления, состоящий из поднабора компонентов, описанных в варианте осуществления, также включается в объем настоящего раскрытия сущности. Помимо этого, варианты осуществления, включающие в себя другие компоненты, в дополнение к компонентам, описанным в различных вариантах осуществления, включаются в объем настоящего раскрытия сущности.
Настоящее раскрытие сущности относится к кодированию и декодированию изображения, и термины, используемые в настоящем раскрытии сущности, могут иметь общий смысл, широко используемый в области техники, которой принадлежит настоящее раскрытие сущности, если не задаются впервые в настоящем раскрытии сущности.
В дальнейшем в этом документе, настоящее раскрытие сущности раскрывает технологию кодирования видео/изображений. способ кодирования/декодирования, раскрытый в настоящем раскрытии сущности и варианте осуществления, может применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC) или стандарте кодирования видео/изображений следующего поколения.
Настоящее раскрытие сущности предоставляет различные варианты осуществления, связанные с кодированием видео/изображений, и если не указано иное, варианты осуществления могут выполняться в комбинации между собой.
В настоящем раскрытии сущности, "кадр", в общем, означает единицу, представляющую одно изображение в конкретный период времени, и слайс/тайл представляет собой единицу кодирования, составляющую часть кадра, и один кадр может состоять из одного или более слайсов/тайлов. Помимо этого, слайс/тайл может включать в себя одну или более единиц дерева кодирования (CTU).
В настоящем раскрытии сущности, "пиксел" или "пел" может означать наименьшую единицу, составляющую один кадр (или изображение). Помимо этого, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
В настоящем раскрытии сущности, "единица" может представлять базовую единицу обработки изображений. Единица может включать в себя по меньшей мере одно из конкретной области кадра и информации, связанной с областью. Единица может использоваться взаимозаменяемо с такими терминами, как "массив выборок", "блок" или "зона" в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
В настоящем раскрытии сущности, "текущий блок" может означать одно из "текущего блока кодирования", "текущей единицы кодирования", "целевого блока кодирования", "целевого блока декодирования" или "целевого блока обработки". Когда прогнозирование выполняется, "текущий блок" может означать "текущий блок прогнозирования" или "целевой блок прогнозирования". Когда преобразование (обратное преобразование)/квантование (деквантование) выполняется, "текущий блок" может означать "текущий блок преобразования" или "целевой блок преобразования". Когда фильтрация выполняется, "текущий блок" может означать "целевой блок фильтрации".
В настоящем раскрытии сущности, наклонная черта (/) или запятая может интерпретироваться в качестве "и/или". Например, "A/B" и "A, B" может интерпретироваться в качестве "A и/или B". Кроме того, "A/B/C" и "A/B/C" может означать "по меньшей мере одно из A, B и/или C".
В настоящем раскрытии сущности, "или" может истолковываться в качестве "и/или". Например, "A или B" может означать 1) только "A", 2) только "B" или 3) "A и B". Альтернативно, в настоящем раскрытии сущности, "или" может означать "дополнительно или альтернативно".
Общее представление системы кодирования видео
Фиг. 1 является видом, схематично иллюстрирующим систему кодирования видео согласно варианту осуществления. Система кодирования видео согласно варианту осуществления может включать в себя устройство 10 кодирования и устройство 20 декодирования. Устройство 10 кодирования может доставлять кодированную информацию или данные видео и/или изображений в устройство 20 декодирования в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть.
Устройство 10 кодирования согласно варианту осуществления может включать в себя формирователь 11 видеоисточников, модуль 12 кодирования и передатчик 13. Устройство 20 декодирования согласно варианту осуществления может включать в себя приемник 21, модуль 22 декодирования и модуль 23 рендеринга. Модуль 12 кодирования может называться "модулем кодирования видео/изображений", и модуль 22 декодирования может называться "модулем декодирования видео/изображений". Передатчик 13 может включаться в модуль 12 кодирования. Приемник 21 может включаться в модуль 22 декодирования. Модуль 23 рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
Формирователь 11 видеоисточников может получать видео/изображение через процесс захвата, синтезирования или формирования видео/изображения. Формирователь 11 видеоисточников может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных.
Модуль 12 кодирования может кодировать входное видео/изображение. Модуль 12 кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Модуль 12 кодирования может выводить кодированные данные (кодированную информацию видео/изображений) в форме потока битов.
Передатчик 13 может передавать кодированную информацию или данные видео/изображений, выводимую в форме потока битов, в приемник 21 устройства 20 декодирования через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную сеть/сеть связи. Приемник 21 может извлекать/принимать поток битов из носителя хранения данных или сети и передавать поток битов в модуль 22 декодирования.
Модуль 22 декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе модуля 12 кодирования.
Модуль 23 рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
Общее представление устройства кодирования изображений
Фиг. 2 является видом, схематично иллюстрирующим устройство кодирования изображений согласно варианту осуществления. Как показано на фиг. 2, устройство 100 кодирования изображений может включать в себя модуль 110 сегментации изображений, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, запоминающее устройство 170, модуль 180 внешнего прогнозирования, модуль 185 внутреннего прогнозирования и энтропийный кодер 190. Модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Преобразователь 120, квантователь 130, деквантователь 140 и обратный преобразователь 150 могут включаться в остаточный процессор. Остаточный процессор дополнительно может включать в себя вычитатель 115.
Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 100 кодирования изображений, могут быть сконфигурированы посредством одного аппаратного компонента (например, кодера или процессора) в некоторых вариантах осуществления. Помимо этого, запоминающее устройство 170 может включать в себя буфер декодированных кадров (DPB) и может быть сконфигурировано посредством цифрового носителя хранения данных.
Модуль 110 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в устройство 100 кодирования изображений, на одну более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". Единица кодирования может получаться посредством рекурсивной сегментации единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QT/BT/TT). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. Для сегментации единицы кодирования, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и/или троичная структура. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. Наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования, или единица кодирования большей глубины, полученной посредством сегментации наибольшей единицы кодирования, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, единица обработки процедуры кодирования может представлять собой единицу прогнозирования (PU) или единицу преобразования (TU). Единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
Модуль прогнозирования (модуль 180 внешнего прогнозирования или модуль 185 внутреннего прогнозирования) может выполнять прогнозирование относительно блока, который должен обрабатываться (текущего блока), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование, на основе текущего блока или CU. Модуль прогнозирования может формировать различную информацию, связанную с прогнозированием текущего блока, и передавать сформированную информацию в энтропийный кодер 190. Информация относительно прогнозирования может кодироваться в энтропийном кодере 190 и выводиться в форме потока битов.
Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму внутреннего прогнозирования и/или технологии внутреннего прогнозирования. Режимы внутреннего прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
Модуль 180 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п. Опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 180 внешнего прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может передаваться в служебных сигналах посредством кодирования разности векторов движения и индикатора для предиктора вектора движения. Разность векторов движения может означать разность между вектором движения текущего блока и предиктором вектора движения.
Модуль прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования и технологий прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или внешнее прогнозирование, но также и одновременно применять как внутреннее прогнозирование, так и внешнее прогнозирование, чтобы прогнозировать текущий блок. Способ прогнозирования с одновременным применением как внутреннего прогнозирования, так и внешнего прогнозирования для прогнозирования текущего блока может называться "комбинированным внешним и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования текущего блока. Внутриблочное копирование может использоваться для кодирования видео/изображений контента игры и т.п., например, для кодирования экранного контента (SCC). IBC представляет собой способ прогнозирования текущего кадра с использованием ранее восстановленного опорного блока в текущем кадре в местоположении, разнесенном от текущего блока на предварительно определенное расстояние. Когда IBC применяется, местоположение опорного блока в текущем кадре может кодироваться как вектор (блочный вектор), соответствующий предварительно определенному расстоянию. IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично внешнему прогнозированию, в котором опорный блок извлекается внутри текущего кадра. Таким образом, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования, описанных в настоящем раскрытии сущности.
Прогнозный сигнал, сформированный посредством модуля прогнозирования, может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Вычитатель 115 может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого из модуля прогнозирования, из сигнала входного изображения (исходного блока или массива исходных выборок). Сформированный остаточный сигнал может передаваться в преобразователь 120.
Преобразователь 120 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
Квантователь 130 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 130 может перекомпоновывать квантованные коэффициенты преобразования в блочном типе в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме.
Энтропийный кодер 190 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 190 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах слоев абстрагирования от сети (NAL) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Передаваемая в служебных сигналах информация, передаваемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут кодироваться через вышеописанную процедуру кодирования и включаться в поток битов.
Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 190, и/или модуль хранения (не показан), хранящий сигнал, могут включаться в качестве внутреннего/внешнего элемента устройства 100 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 190.
Квантованные коэффициенты преобразования, выводимые из квантователя 130, могут использоваться для того, чтобы формировать остаточный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 140 и обратный преобразователь 150.
Сумматор 155 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 180 внешнего прогнозирования или модуля 185 внутреннего прогнозирования, с тем чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 155 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.
Между тем, как описано ниже, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе кодирования кадров.
Фильтр 160 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 160 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 170, а именно, в DPB запоминающего устройства 170. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 160 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 190, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 190 и выводиться в форме потока битов.
Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 170, может использоваться в качестве опорного кадра в модуле 180 внешнего прогнозирования. Когда внешнее прогнозирование применяется через устройство 100 кодирования изображений, рассогласование прогнозирования между устройством 100 кодирования изображений и устройством декодирования изображений может исключаться, и эффективность кодирования может повышаться.
DPB запоминающего устройства 170 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 180 внешнего прогнозирования. Запоминающее устройство 170 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 180 внешнего прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 170 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 185 внутреннего прогнозирования.
Общее представление устройства декодирования изображений
Фиг. 3 является видом, схематично иллюстрирующим устройство декодирования изображений согласно варианту осуществления. Как показано на фиг. 3, устройство 200 декодирования изображений может включать в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, запоминающее устройство 250, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Деквантователь 220 и обратный преобразователь 230 могут включаться в остаточный процессор.
Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 200 декодирования изображений, могут быть сконфигурированы посредством аппаратного компонента (например, декодера или процессора) согласно варианту осуществления. Помимо этого, запоминающее устройство 250 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных.
Устройство 200 декодирования изображений, которое принимает поток битов, включающий в себя информацию видео/изображений, может восстанавливать изображение посредством выполнения процесса, соответствующего процессу, выполняемому посредством устройства 100 кодирования изображений по фиг. 2. Например, устройство 200 декодирования изображений может выполнять декодирование с использованием единицы обработки, применяемой в оборудовании кодирования изображений. Таким образом, единица обработки декодирования, например, может представлять собой единицу кодирования.
Устройство 200 декодирования изображений может принимать сигнал, выводимый из устройства кодирования изображений по фиг. 2 в форме потока битов. Принимаемый сигнал может декодироваться через энтропийный декодер 210. Например, энтропийный декодер 210 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Устройство декодирования изображений дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут декодироваться посредством процедуры декодирования и получаться из потока битов. Например, энтропийный декодер 210 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных значений синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать бин, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования соседнего блока и целевого блока декодирования или информации символа/бина, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для бина посредством прогнозирования вероятности появления бина согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/бина для контекстной модели следующего символа/бина после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 210, может предоставляться в модуль прогнозирования (модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 210, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в деквантователь 220. Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 210, может предоставляться в фильтр 240. Между тем, приемник (не показан) для приема сигнала, выводимого из устройства кодирования изображений, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента устройства 200 декодирования изображений, или приемник может представлять собой компонент энтропийного декодера 210.
Между тем, устройство декодирования изображений согласно настоящему раскрытию сущности может называться "устройством декодирования видео/изображений/кадров". Устройство декодирования изображений может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 210. Выборочный декодер может включать в себя по меньшей мере одно из деквантователя 220, обратного преобразователя 230, сумматора 235, фильтра 240, запоминающего устройства 250, модуля 160 внешнего прогнозирования или модуля внутреннего прогнозирования.
Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования изображений. Деквантователь 220 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
Обратный преобразователь 230 может обратно преобразовывать коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 210, и может определять конкретный режим внутреннего/внешнего прогнозирования (технологию прогнозирования).
Идентично тому, что описано в модуле прогнозирования устройства 100 кодирования изображений, модуль прогнозирования может формировать прогнозный сигнал на основе различных способов (технологий) прогнозирования, которые описываются ниже.
Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Описание модуля 185 внутреннего прогнозирования в равной степени применяется к модулю 265 внутреннего прогнозирования.
Модуль 260 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 260 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим внешнего прогнозирования для текущего блока.
Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 260 внешнего прогнозирования и/или модуль 265 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Описание сумматора 155 является в равной степени применимым к сумматору 235. Сумматор 235 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.
Между тем, как описано далее, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
Фильтр 240 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 240 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 250, а именно, в DPB запоминающего устройства 250. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
(Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 250, может использоваться в качестве опорного кадра в модуле 260 внешнего прогнозирования. Запоминающее устройство 250 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 внешнего прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 250 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 265 внутреннего прогнозирования.
В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 160, модуле 180 внешнего прогнозирования и модуле 185 внутреннего прогнозирования устройства 100 кодирования изображений могут в равной степени или соответствующим образом применяться к фильтру 240, модулю 260 внешнего прогнозирования и модулю 265 внутреннего прогнозирования устройства 200 декодирования изображений. Варианты осуществления, описанные в модуле 240 фильтрации, модуле 260 внешнего прогнозирования и модуле 265 внутреннего прогнозирования устройства 200 декодирования изображений могут применяться таким образом, что они являются идентичными или соответствующими модулю 160 фильтрации и модулю 180 внешнего прогнозирования и модулю 185 внутреннего прогнозирования устройства 100 кодирования изображений, соответственно.
Общее представление внутреннего прогнозирования
В дальнейшем в этом документе описывается способ внутреннего прогнозирования согласно варианту осуществления. Внутреннее прогнозирование может указывать прогнозирование, которое формирует прогнозные выборки для текущего блока на основе опорных выборок в кадре, которому принадлежит текущий блок (далее называется "текущим кадром"). Когда внутреннее прогнозирование применяется к текущему блоку, соседние опорные выборки, которые должны использоваться для внутреннего прогнозирования текущего блока, могут извлекаться. Соседние опорные выборки текущего блока могут включать в себя выборку, смежную с левой границей текущего блока, имеющего размер nWxnH, и сумму 2xnH выборок, граничащих с левой нижней частью, выборки, смежной с верхней границей текущего блока, и сумму 2xnW выборок, граничащих с правой верхней частью, и одну выборку, граничащую с левой верхней частью относительно текущего блока. Альтернативно, соседние опорные выборки текущего блока могут включать в себя множество столбцов верхних соседних выборок и множество строк левых соседних выборок. Помимо этого, соседние опорные выборки текущего блока могут включать в себя сумму nH выборок, смежных с правой границей текущего блока, имеющего размер nWxnH, сумму nW выборок, смежных с нижней границей текущего блока, и одну выборку, граничащую с правой нижней относительно текущего блока. Между тем, когда ISP, которая описывается ниже, применяется, соседние опорные выборки могут извлекаться в единицах субсегментов.
С другой стороны, некоторые соседние опорные выборки текущего блока еще не декодировались или могут не быть доступными. В этом случае, устройство декодирования может конструировать соседние опорные выборки, которые должны использоваться для прогнозирования, посредством подстановки вместо недоступных выборок доступных выборок. Альтернативно, соседние опорные выборки, которые должны использоваться для прогнозирования, могут конструироваться с использованием интерполяции доступных выборок.
Когда соседние опорные выборки извлекаются, (i) прогнозная выборка может извлекаться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) прогнозная выборка может извлекаться на основе опорной выборки, присутствующей в конкретном направлении (прогнозирования) относительно прогнозной выборки из соседних опорных выборок текущего блока. Случай (i) может называться "ненаправленным режимом" или "неугловым режимом", и случай (ii) может называться "направленным режимом" или "угловым режимом". Помимо этого, прогнозная выборка может формироваться через интерполяцию со второй соседней выборкой и первой соседней выборкой, расположенной в противоположном направлении направления прогнозирования режима внутреннего прогнозирования текущего блока на основе прогнозной выборки текущего блока из соседних опорных выборок. Вышеописанный случай может называться "внутренним прогнозированием с линейной интерполяцией (LIP)". Помимо этого, выборки прогнозирования сигналов цветности могут формироваться на основе выборок сигнала яркости с использованием линейной модели. Этот случай может называться "LM-режимом". Помимо этого, временная прогнозная выборка текущего блока может извлекаться на основе фильтрованных соседних опорных выборок, и прогнозная выборка текущего блока может извлекаться посредством суммирования со взвешиванием временной прогнозной выборки и по меньшей мере одной опорной выборки, извлекаемой согласно режиму внутреннего прогнозирования из существующих соседних опорных выборок, т.е. нефильтрованных соседних опорных выборок. Вышеописанный случай может называться "позиционно-зависимым внутренним прогнозированием (PDPC)". Помимо этого, опорная выборочная линия с наибольшей точностью прогнозирования может выбираться из нескольких соседних опорных выборочных линий текущего блока, чтобы извлекать прогнозную выборку с использованием опорной выборки, расположенной в направлении прогнозирования в соответствующей линии, и, в это время, внутреннее прогнозирующее кодирование может выполняться посредством указания (передачи в служебных сигналах) используемой опорной выборочной линии для устройства декодирования. Вышеописанный случай может называться "внутренним прогнозированием на основе множественной опорной линии (MRL)" или "внутренним прогнозированием на основе MRL". Помимо этого, текущий блок может разделяться на вертикальные или горизонтальные субсегменты, чтобы выполнять внутреннее прогнозирование на основе идентичного режима внутреннего прогнозирования, и соседние опорные выборки могут извлекаться и использоваться в единицах субсегментов. Таким образом, в этом случае, режим внутреннего прогнозирования для текущего блока идентично применяется к субсегментам, и соседние опорные выборки извлекаются и используются в единицах субсегментов, за счет этого повышая производительность внутреннего прогнозирования. Такой способ прогнозирования может называться "внутренним прогнозированием на основе внутренних субсегментов (ISP) или на основе ISP". Помимо этого, когда направление прогнозирования на основе прогнозной выборки указывает пространство между соседними опорными выборками, т.е. когда направление прогнозирования указывает дробную выборочную позицию, значение прогнозной выборки может извлекаться через интерполяцию множества опорных выборок, расположенных около направления прогнозирования (около дробной выборочной позиции). Вышеописанные способы внутреннего прогнозирования могут называться "типом внутреннего прогнозирования", чтобы отличаться от режима внутреннего прогнозирования. Помимо этого, после того, как прогнозный сигнал для субдискретизированного пиксельного набора текущего блока формируется с использованием восстановленных соседних пикселов, расположенных слева и вершина текущего блока, сформированный прогнозный сигнал и соседнее выборочное значение могут интерполироваться в вертикальном и горизонтальном направлении, чтобы формировать прогнозный сигнал, имеющий исходный размер, за счет этого применяя матричное взвешенное внутреннее прогнозирование (MIP) для выполнения внутреннего прогнозирования текущего блока.
Тип внутреннего прогнозирования может называться с помощью различных терминов, таких как схема внутреннего прогнозирования или дополнительный режим внутреннего прогнозирования. Например, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Информация относительно типа внутреннего прогнозирования может кодироваться посредством устройства кодирования, включаться в поток битов и передаваться в служебных сигналах в устройство декодирования. Информация относительно типа внутреннего прогнозирования может реализовываться в различных формах, к примеру, как информация флага, указывающая то, следует или нет применять каждый тип внутреннего прогнозирования, либо как информация индекса, указывающая один из нескольких типов внутреннего прогнозирования.
Между тем, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки. В частности, процедура внутреннего прогнозирования может включать в себя этап определения режима/типа внутреннего прогнозирования, этап извлечения соседних опорных выборок и этап извлечения прогнозных выборок на основе режима/типа внутреннего прогнозирования. Помимо этого, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки.
В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Во-первых, устройство кодирования выполняет внутреннее прогнозирование относительно текущего блока. Устройство кодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока, извлекать соседние опорные выборки текущего блока и формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. Здесь, процедуры определения режима/типа внутреннего прогнозирования, извлечения соседних опорных выборок и формирования прогнозных выборок могут одновременно выполняться, или любая процедура может выполняться перед другими процедурами. Между тем, когда нижеописанная процедура фильтрации прогнозных выборок выполняется, модуль 185 внутреннего прогнозирования дополнительно может включать в себя фильтр прогнозных выборок. Устройство кодирования может определять режим/тип, применяемый к текущему блоку, из множества режимов/типов внутреннего прогнозирования. Устройство кодирования может сравнивать функцию затрат на искажение в зависимости от скорости передачи (RD) для режимов/типов внутреннего прогнозирования и определять оптимальный режим/тип внутреннего прогнозирования для текущего блока.
Между тем, устройство кодирования может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.
Затем, устройство кодирования может формировать остаточные выборки для текущего блока на основе прогнозных выборок. Устройство кодирования может сравнивать исходные выборки текущего блока с прогнозными выборками с точки зрения фазы и извлекать остаточные выборки.
Затем, устройство кодирования может кодировать информацию изображений, включающую в себя информацию относительно внутреннего прогнозирования (информацию прогнозирования) и остаточную информацию относительно остаточных выборок. Информация прогнозирования может включать в себя информацию режима внутреннего прогнозирования и информацию типа внутреннего прогнозирования. Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Выходной поток битов может передаваться в устройство декодирования через носитель хранения данных или сеть.
Остаточная информация может включать в себя синтаксис остаточного кодирования, который описывается ниже. Устройство кодирования может преобразовывать/квантовать остаточные выборки и извлекать квантованные коэффициенты преобразования. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования.
Между тем, как описано выше, устройство кодирования изображений может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок). С этой целью, устройство кодирования изображений может выполнять обратное квантование/обратное преобразование относительно квантованных коэффициентов преобразования и извлекать (модифицированные) остаточные выборки. Причина преобразования/квантования остаточных выборок и затем выполнения обратного квантования/обратного преобразования состоит в том, чтобы извлекать идентичные остаточные выборки в качестве остаточных выборок, извлекаемых посредством устройства декодирования, как описано выше. Устройство кодирования может формировать восстановленный блок, включающий в себя восстановленные выборки для текущего блока, на основе прогнозных выборок и (модифицированных) остаточных выборок. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Как описано выше, процедура внутриконтурной фильтрации может применяться к восстановленному кадру.
В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования.
Сначала, устройство декодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока на основе принимаемой информации прогнозирования (информации режима/типа внутреннего прогнозирования. Устройство декодирования может извлекать соседние опорные выборки текущего блока. Устройство декодирования может формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. В этом случае, устройство декодирования изображений может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.
Устройство декодирования изображений может формировать остаточные выборки для текущего блока на основе принимаемой остаточной информации (S640). Устройство декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и извлекать восстановленный блок, включающий в себя восстановленные выборки. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Процедура внутриконтурной фильтрации дополнительна применимый к восстановленному кадру.
Информация режима внутреннего прогнозирования может включать в себя, например, информацию флага (например, intra_luma_mpm_flag), указывающую то, применяется либо нет наиболее вероятный режим (MPM) или оставшийся режим к текущему блоку, и когда MPM применяется к текущему блоку, информация режима прогнозирования дополнительно может включать в себя информацию индекса (например, intra_luma_mpm_idx), указывающую один из возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Возможные варианты режимов внутреннего прогнозирования (возможные MPM-варианты) могут конфигурировать список возможных MPM-вариантов или MPM-список. Например, список возможных MPM-вариантов может включать в себя режим внутреннего прогнозирования соседнего блока или предварительно установленного базового режима внутреннего прогнозирования. Помимо этого, когда MPM не применяется к текущему блоку, информация режима внутреннего прогнозирования дополнительно может включать в себя информацию оставшихся режимов (например, intra_luma_mpm_remainder), указывающую один из оставшихся режимов внутреннего прогнозирования, за исключением возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Устройство декодирования может определять режим внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования.
Помимо этого, информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации опорной выборочной линии (например, intra_luma_ref_idx), указывающей то, применяется или нет MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, применяется или нет ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag), указывающей тип разбиения субсегментов, когда ISP применяется, информации флага, указывающей то, применяется или нет PDPC, либо информации флага, указывающей то, применяется или нет LIP.
Информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться через способ кодирования, описанный в настоящем раскрытии сущности. Например, информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться посредством энтропийного кодирования (например, CABAC, CAVLC) на основе усеченного двоичного кода (Райса).
В дальнейшем в этом документе подробнее описывается режим внутреннего прогнозирования. Фиг. 4 показывает направление внутреннего прогнозирования согласно варианту осуществления. Чтобы захватывать любое краевое направление, представленное в естественном видео, как показано на фиг. 8a, режим внутреннего прогнозирования может включать в себя два режима ненаправленного внутреннего прогнозирования и 65 режимов направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного внутреннего прогнозирования и режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 66-ой режимы внутреннего прогнозирования.
Между тем, режим внутреннего прогнозирования дополнительно может включать в себя режим на основе кросскомпонентной линейной модели (CCLM) для выборок сигнала цветности в дополнение к вышеописанным режимам внутреннего прогнозирования. CCLM-режим может разбиваться на L_CCLM, T_CCLM, LT_CCLM согласно тому, рассматриваются или нет левые выборки, верхние выборки либо и те, и другие для извлечения LM-параметра, и может применяться только к компоненту сигнала цветности. Например, режим внутреннего прогнозирования может индексироваться, как показано в следующей таблице.
Табл. 1
Режим внутреннего прогнозирования
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2...66
INTRA_ANGULAR2...INTRA_ANGULAR66
81...83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
Фиг. 5 показывает направление внутреннего прогнозирования согласно другому варианту осуществления. Здесь, направление по пунктирной линии показывает широкоугольный режим, применяемый только к неквадратному блоку. Как показано на фиг. 5, чтобы захватывать любое краевое направление, представленное в естественном видео, режим внутреннего прогнозирования согласно варианту осуществления может включать в себя два режима ненаправленного внутреннего прогнозирования и 93 режима направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного внутреннего прогнозирования и режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 80-ый и -1-й - -14-й режимы внутреннего прогнозирования, как обозначено посредством стрелки по фиг. 5. Режим планарного прогнозирования может обозначаться посредством INTRA_PLANAR, и режим DC-прогнозирования может обозначаться посредством INTRA_DC. Помимо этого, режим направленного внутреннего прогнозирования может обозначаться посредством INTRA_ANGULAR-14 - INTRA_ANGULAR-1 и INTRA_ANGULAR2 - INTRA_ANGULAR80.
Между тем, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Тип внутреннего прогнозирования может указываться на основе информации типа внутреннего прогнозирования, и информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации опорной выборочной линии (например, intra_luma_ref_idx), указывающей то, применяется или нет MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, применяется или нет ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag), указывающей тип разбиения субсегментов, когда ISP применяется, информации флага, указывающей то, применяется или нет PDPC, информации флага, указывающей то, применяется или нет LIP, либо информации MIP-флага, указывающей то, применяется или нет MIP.
В дальнейшем в этом документе описывается фильтрация опорных выборок подробнее. Фильтрация является применимой к соседним опорным выборкам текущего блока. Она может называться "предварительной фильтрацией", поскольку она применяется к соседним опорным выборкам перед внутренним прогнозированием в отличие от постфильтрации, которая представляет собой фильтрацию, применяемую к прогнозной выборке после внутреннего прогнозирования. Фильтрация соседних опорных выборок может выполняться, например, как показано в следующем уравнении.
Фильтрованное выборочное значение p[x][y] может извлекаться следующим образом: Здесь, x=-1, y=-1 - refH-1 и x=0 - refW-1, y=-1...refH может определяться как в два раза превышающее высоту блока преобразования или блока кодирования, и refW может определяться как в два раза превышающее ширину блока преобразования или блока кодирования.
уравнение 1
p[-1][-1]=(refUnfilt[-1][0]+2*refUnfilt[-1][-1]+refUnfilt[0][-1]+2)>>2
уравнение 2
p[-1][y]=(refUnfilt[-1][y+1]+2*refUnfilt[-1][y]+refUnfilt[-1][y-1]+2)>>2, где y=0 - refH-2.
уравнение 3
p[-1][refH-1]=refUnfilt[-1][refH-1]
уравнение 4
p[x][-1]=(refUnfilt [x-1][-1]+2*refUnfilt[x][-1]+refUnfilt [x+1][-1]+2)>>2, где x=0 - refW-2.
уравнение 5
p[refW-1][-1]=refUnfilt [refW-1][-1],
где refUnfilt обозначает соседние опорные выборки, которые еще не фильтрованы, и [x][y] обозначает координаты X и Y соответствующей выборки. Например, он может указывать координаты, когда координаты левой верхней выборочной позиции текущего блока составляют (0, 0).
Когда фильтрация применяется к соседним опорным выборкам, фильтрованные соседние опорные выборки могут использоваться в качестве опорных выборок на этапе извлечения прогнозных выборок, и когда фильтрация не применяется к соседним опорным выборкам, нефильтрованные соседние опорные выборки могут использоваться в качестве опорных выборок на этапе извлечения прогнозных выборок.
Фильтрация соседних опорных выборок является применимой, например, когда некоторые или все следующие конкретные условия удовлетворяются.
(Условие 1) nTbW*nTbH превышает 32, где nTbW обозначает ширину TB, т.е. ширину блока преобразования (текущего блока), nTbH обозначает высоту TB, т.е. высоту блока преобразования (текущего блока).
(Условие 2) Значение cIdx равно 0; cIdx обозначает цветовой компонент текущего блока, и значение в 0 обозначает компонент сигнала яркости.
(Условие 3) IntraSubPartitionsSplitType обозначает неразбитый (ISP_NO_SPLIT). Здесь, IntraSubPartitionsSplitType представляет собой параметр, указывающий тип разбиения текущего блока кодирования сигналов яркости.
(Условие 4) По меньшей мере одно из следующих условий 4-1 в 4-4 представляет собой "истина".
(Условие 4-1) Значение predModeIntra, указывающее режим внутреннего прогнозирования, указывает режим планарного прогнозирования (INTRA_PLANAR).
(Условие 4-2) Значение predModeIntra указывает 34-ый режим направленного внутреннего прогнозирования (INTRA_ANGULAR34).
(Условие 4-3) Значение predModeIntra указывает второй режим направленного внутреннего прогнозирования (INTRA_ANGULAR2), и значение nTbH превышает или равно значению nTbW.
(Условие 4-4) Значение predModeIntra представляет собой 66-ой режим направленного внутреннего прогнозирования (INTRA_ANGULAR66), и значение nTbW превышает или равно nTbH.
Например, такие процедуры, как определение режима/типа внутреннего прогнозирования, извлечение соседних опорных выборок и извлечение прогнозных выборок, могут выполняться в единицах CU. В качестве другого примера, определение режима/типа внутреннего прогнозирования может выполняться в единицах CU, тогда как процедуры извлечения соседних опорных выборок и извлечения прогнозных выборок могут выполняться в единицах TU в CU. В этом случае, TU в CU могут совместно использовать идентичный режим/тип внутреннего прогнозирования. Соответственно, с учетом этого случая, то, следует или нет выполнять фильтрацию соседних опорных выборок, может определяться с учетом nTbW и nTbH, которые представляют собой ширину и высоту TU (или TB).
Общее представление процесса внутреннего прогнозирования, к которому применяется фильтрация опорных выборок
В дальнейшем в этом документе описывается способ внутреннего прогнозирования, к которому применяется фильтрация выборок, согласно варианту осуществления. Когда опорная выборка фильтруется с использованием сглаживающего фильтра, значение опорной выборки имеет сглаженно изменяющиеся характеристики. Тем не менее, когда внутреннее прогнозирование выполняется относительно текущей выборки посредством применения фильтра, имеющего характеристику повышения резкости, к опорной выборке, характеристика повышения резкости добавляется в сглаженную опорную выборку, в силу этого снижая эффективность внутреннего прогнозирования. Согласно тому, фильтруется или нет опорная выборка с использованием сглаживающего фильтра, необходимо выбирать фильтр, применяемый к опорной выборке, из сглаживающего фильтра и повышающего резкость фильтра, чтобы формировать внутреннюю прогнозную выборку текущей выборки. Таким образом, эффективность внутреннего прогнозирования может повышаться посредством применения сглаживающего фильтра к опорной выборке, к которой сглаживающий фильтр применяется для того, чтобы формировать прогнозную выборку, и применения повышающего резкость фильтра к опорной выборке, к которой сглаживающий фильтр не применяется.
Способ внутреннего прогнозирования, осуществляемый посредством устройства декодирования согласно варианту осуществления, может определять тип фильтра, используемого, когда внутреннее прогнозирование выполняется, согласно тому, следует или нет применять фильтрацию опорных выборок. Соответственно, устройство декодирования может эффективно формировать прогнозную выборку посредством применения фильтра, удовлетворяющего выборочным характеристикам опорной выборки, к опорной выборке согласно результату фильтрации опорных выборок.
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей этап внутреннего прогнозирования согласно варианту осуществления. Как описано выше, внутреннее прогнозирование может включать в себя три основных этапа. Во-первых, устройство декодирования согласно варианту осуществления может конструировать опорную выборку (S110). Затем устройство декодирования может прогнозировать выборочное значение текущего блока с использованием сконструированной опорной выборки (S120). Опорная выборка может представлять собой выборку, расположенную около текущего блока. Устройство декодирования может применять постфильтр к внутренней прогнозной выборке, сформированной посредством выполнения этапа S120, после внутреннего выборочного прогнозирования (S130).
Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей этап S110 конструирования опорных выборок согласно варианту осуществления. В дальнейшем подробнее описывается этап S110 конфигурирования опорных выборок со ссылкой на фиг. 7. Во-первых, декодирование согласно варианту осуществления может проверять доступность опорной выборки (S111). Затем, устройство декодирования может определять то, следует или нет заменять опорную выборку согласно доступности опорной выборки, и выполнять замену опорной выборки (S112). Например, когда опорная выборка не доступна, опорная выборка может заменяться на значение, сформированное на основе соседних доступных выборок. Следовательно, все опорные выборки могут конструироваться.
После этого, устройство декодирования может фильтровать сконструированную опорную выборку согласно условию фильтрации опорной выборки (S113). Когда размер единицы внутреннего кодирования (CU) или единицы преобразования (TU) является относительно большим, результат прогнозирования единицы внутреннего кодирования и единицы преобразования может быть относительно сглаженным. В этом случае, может быть желательным выполнять фильтрацию опорных выборок таким образом, что сформированная внутренняя прогнозная выборка является сглаженной и планарной.
В дальнейшем в этом документе описывается условие фильтрации опорных выборок для внутреннего прогнозирования согласно варианту осуществления со ссылкой на фиг. 8. Фиг. 8 является блок-схемой последовательности операций, иллюстрирующей способ определения того, следует или нет выполнять фильтрацию опорных выборок посредством устройства декодирования согласно варианту осуществления на этапе S113 фильтрации опорных выборок этапа S110 конструирования опорных выборок. Во-первых, устройство декодирования согласно варианту осуществления может определять то, удовлетворяется или нет условие для выполнения фильтрации опорных выборок (S210). Устройство декодирования может не выполнять фильтрацию опорных выборок (S220), когда не удовлетворяется условие для выполнения фильтрации опорных выборок. Между тем, устройство декодирования может выполнять фильтрацию опорных выборок (S230), когда удовлетворяется условие для выполнения фильтрации опорных выборок.
Более конкретно, устройство декодирования может определять то, выполняется или нет фильтрация опорных выборок, согласно следующим условиям. В варианте осуществления, устройство декодирования может определять то, что опорная выборка, на которую ссылаются для внутреннего прогнозирования текущего блока, фильтруется, когда следующие условия представляют собой "истина", или по меньшей мере одно условие представляет собой "истина", и в противном случае, может определять то, что фильтрация не выполняется.
(Условие 1) Опорная выборочная линия, ближайшая к текущему блоку, используется для внутреннего прогнозирования. Таким образом, значение intra_luma_ref_idx равно 0.
(Условие 2) Произведение ширины и высоты CU/TU превышает 32.
(Условие 3) Текущий блок связан с компонентом сигнала яркости.
(Условие 4) Режим кодирования на основе ISP (на основе внутренних субсегментов) не используется.
(Условие 5) По меньшей мере одно из следующего условия 5-1 или условия 5-2 представляет собой "истина". Ниже по тексту, второй режим направленного внутреннего прогнозирования может называться "левым нижним диагональным режимом", 34-ый режим направленного внутреннего прогнозирования может называться "левым верхним диагональным режимом", 66-ой режим направленного внутреннего прогнозирования может называться "правым верхним диагональным режимом", 18-ый режим направленного внутреннего прогнозирования может называться "горизонтальным режимом", и 50-ый режим направленного внутреннего прогнозирования может называться "вертикальным режимом".
(Условие 5-1) Произведение ширины и высоты CU/TU равно или меньше 128, и режим внутреннего прогнозирования соответствует по меньшей мере одному из внутреннего планарного режима (INTRA_PLANAR), внутреннего DC-режима (INTRA_DC), второго режима направленного внутреннего прогнозирования (INTRA_ANGULAR2) - четвертого режима направленного внутреннего прогнозирования (INTRA_ANGULAR4), 32-го режима направленного внутреннего прогнозирования (INTRA_ANGULAR32) - 36-го режима направленного внутреннего прогнозирования (INTRA_ANGULAR36) либо 64-го режим направленного внутреннего прогнозирования (INTRA_ANGULAR64) - 66-го режим направленного внутреннего прогнозирования (INTRA_ANGULAR66).
(Условие 5-2) Произведение ширины и высоты CU/TU превышает 128, и режим внутреннего прогнозирования не представляет собой ни 18-ый режим направленного внутреннего прогнозирования (INTRA_ANGULAR18), ни 50-ый режим направленного внутреннего прогнозирования (INTRA_ANGULAR50).
Между тем, фильтр, применяемый к опорной выборке согласно вышеуказанным условиям, может представлять собой фильтр для сглаживания опорной выборки и, например, может представляет собой фильтр [1 2 1]/4, который описывается ниже. Как описано выше, может быть преимущественным, если фильтр, применяемый к фильтрации опорных выборок, и фильтр, используемый для внутреннего прогнозирования, могут иметь идентичное свойство. Соответственно, когда внутреннее прогнозирование выполняется с использованием опорной выборки, сглаженной посредством применения фильтрации, может быть неэффективным применять фильтр, имеющий резкую примерную тенденцию. Это обусловлено тем, что когда опорная выборка имеет резкую тенденцию (например, край), она имеет выборочное значение, отличающееся от соседних выборочных значений, тогда как, когда опорная выборка имеет сглаженную характеристику, она имеет выборочное значение, аналогичное соседним выборочным значениям. Соответственно, когда фильтр опорных выборок применяется, фильтр, имеющий свойство, которое не противоречит свойству фильтра опорных выборок, должен использоваться на этапе формирования внутренних прогнозных выборок. Например, сглаживающий фильтр, который может использоваться на этапе формирования внутренних прогнозных выборок, может представлять собой любой из 4-отводного гауссова фильтра или линейного интерполяционного фильтра, который описывается ниже.
Между тем, когда фильтр опорных выборок не применяется, опорная выборка может не сглаживаться. В этом случае, несглаженная опорная выборка может иметь резкую тенденцию (например, край). Аналогично вышеприведенному описанию, когда внутреннее прогнозирование выполняется с использованием опорной выборки, имеющей резкую тенденцию, может быть неэффективным применять к сглаживающему фильтру. Соответственно, когда фильтр опорных выборок не применяется, фильтр, используемый на этапе формирования внутренних прогнозных выборок, может представлять собой повышающий резкость фильтр. Например, повышающий резкость фильтр может представлять собой кубический фильтр, который описывается ниже.
В этом отношении, устройство декодирования согласно варианту осуществления может определять фильтр для прогнозирования выборочного значения текущего блока на основе того, следует или нет выполнять фильтрацию опорных выборок. В дальнейшем в этом документе, вариант осуществления, в котором устройство декодирования согласно варианту осуществления определяет фильтр, используемый для того, чтобы извлекать прогнозную выборку в зависимости от того, следует или нет выполнять фильтрацию опорных выборок на этапе S120 формирования прогнозных выборок по фиг. 6. Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей способ определения фильтра, используемого для того, чтобы извлекать прогнозную выборку в зависимости от того, выполнена или нет фильтрация опорных выборок посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления сначала определяет то, выполнена или нет фильтрация опорных выборок (310). Затем, устройство декодирования извлекает прогнозную выборку с использованием первого фильтра (S320), когда фильтрация опорных выборок не выполнена. Здесь, первый фильтр может представлять собой повышающий резкость фильтр и может представлять собой кубический фильтр.
Затем, устройство декодирования извлекает прогнозную выборку с использованием второго фильтра (S330), когда фильтрация опорных выборок выполнена. Здесь, второй фильтр представляет собой сглаживающий фильтр и может представлять собой любой из 4-отводного гауссова фильтра или линейного интерполяционного фильтра.
Общее представление фильтрации опорных выборок, выполняющей передачу служебных сигналов информации
Как описано со ссылкой на фиг. 6-9, фильтр, применяемый на этапе S120 формирования прогнозных выборок, может варьироваться в зависимости от того, следует или нет выполнять фильтрацию опорных выборок на этапе S113 фильтрации опорных выборок. Следовательно, имеется потребность передавать в служебных сигналах то, следует или нет выполнять фильтрацию опорных выборок на этапе S113 фильтрации опорных выборок, на этап S120 формирования прогнозных выборок. Следовательно, устройство декодирования выбирает фильтр, применяемый к прогнозной выборке, в зависимости от того, следует или нет выполнять фильтрацию опорных выборок на этапе S113 фильтрации опорных выборок, за счет этого повышая эффективность внутреннего прогнозирования.
В варианте осуществления, устройство декодирования может передавать в служебных сигналах на этапе формирования прогнозных выборок текущего блока то, следует или нет выполнять фильтрацию опорных выборок с использованием filterFlag, который представляет собой параметр, указывающий то, следует или нет выполнять фильтрацию опорных выборок.
С этой целью, после этапа фильтрации опорных выборок, filterFlag, указывающий то, фильтрована или нет опорная выборка, может вводиться на этапе режима внутреннего прогнозирования для режимов 2-66 направленного внутреннего прогнозирования (внутренних угловых режимов), которые описываются ниже. Например, в режимах 2-66 направленного внутреннего прогнозирования, устройство декодирования может определять фильтр для прогнозирования выборочного значения текущего блока с использованием принимаемого filterFlag.
В дальнейшем в этом документе, это описывается подробнее со ссылкой на фиг. 10. Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей способ определения фильтра, используемого для того, чтобы получать выборочное значение текущего блока с использованием filterFlag в качестве параметра, указывающего то, следует или нет выполнять фильтрацию опорных выборок посредством устройства декодирования согласно варианту осуществления. Фиг. 10 показывает этапы, описанные выше со ссылкой на фиг. 8 и 9. Например, этап S401 фильтрации опорных выборок может выполняться на этапе S113 фильтрации опорных выборок, описанном со ссылкой на фиг. 8, и этап S402 формирования прогнозных выборок может выполняться на этапе S120 формирования прогнозных выборок, описанном со ссылкой на фиг. 9.
Во-первых, устройство декодирования согласно варианту осуществления может определять то, удовлетворяется или нет условие для выполнения фильтрации опорных выборок (S410). Условие для выполнения фильтрации опорных выборок может включать в себя вышеописанные условия. Когда условие для выполнения фильтрации опорных выборок не удовлетворяется, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным первому значению, и в этом случае, первое значение может быть равным 0 (S420). Между тем, когда условие для выполнения фильтрации опорных выборок удовлетворяется, и фильтрация опорных выборок выполняется, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным второму значению, и, в этом случае, второе значение может быть равным 1 (S430).
Например, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным первому значению, когда фильтрация не применяется к опорной выборке. Помимо этого, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным второму значению, когда фильтрация применяется к опорной выборке. Например, первое значение может быть равным 0, и второе значение может быть равным 1. В этом варианте осуществления, значение filterFlag 0 может указывать то, что фильтрация опорных выборок не выполняется, и значение filterFlag 1 может указывать то, что фильтрация опорных выборок выполняется.
В одном варианте осуществления, значение filterFlag, сформированное на этапе S410 фильтрации опорных выборок, может передаваться в служебных сигналах на этапе S402 формирования прогнозных выборок. Устройство декодирования согласно варианту осуществления может принимать и значение filterFlag, сформированное на этапе S410 фильтрации опорных выборок, в качестве параметра filterFlag, имеющего идентичное название параметра на этапе S402 формирования прогнозных выборок.
Устройство декодирования согласно варианту осуществления может определять фильтр для формирования прогнозной выборки на основе значения filterFlag, принимаемого из этапа фильтрации опорных выборок, на этапе формирования прогнозных выборок текущего блока. Например, устройство декодирования согласно варианту осуществления может определять то, соответствует или нет значение filterFlag, принимаемое из этапа фильтрации опорных выборок, второму значению (S440). Когда значение filterFlag не соответствует второму значению, устройство декодирования согласно варианту осуществления может извлекать прогнозную выборку с использованием первого фильтра (S450). Первый фильтр может представлять собой повышающий резкость фильтр и может представлять собой кубический фильтр. Когда значение filterFlag соответствует второму значению, устройство декодирования согласно варианту осуществления может извлекать прогнозную выборку с использованием второго фильтра (S460). Здесь, второй фильтр представляет собой сглаживающий фильтр и может представлять собой любой из 4-отводного гауссова фильтра или линейного интерполяционного фильтра.
Более конкретно, когда значение filterFlag, принимаемое из этапа фильтрации опорных выборок, составляет первое значение, указывающее то, что фильтрация не применяется к опорной выборке, устройство декодирования согласно варианту осуществления может определять то, что фильтрация не применяется к опорной выборке, и применять повышающий резкость фильтр, чтобы прогнозировать выборочное значение текущего блока. Аналогично, когда значение filterFlag, принимаемое из этапа фильтрации опорных выборок, составляет второе значение, указывающее то, что фильтрация применяется к внутренней опорной выборке, устройство декодирования согласно варианту осуществления может определять то, что фильтрация применяется к внутренней опорной выборке, и применять сглаживающий фильтр, чтобы прогнозировать выборочное значение текущего блока.
В варианте осуществления, конкретные значения для первого значения и второго значения filterFlag могут задаваться требуемым образом. Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей операцию устройства декодирования, когда первое значение задается равным 0, и второе значение задается равным 1 в варианте осуществления по фиг. 10. В дополнение к заданию первого значения и второго значения, этапы, соответствующие ссылкам с номерами S510-S560 по фиг. 11, могут соответствовать этапам, соответствующим ссылкам с номерами S410-S460 по фиг. 10. Между тем, в другом варианте осуществления, первое значение, указывающее то, что фильтрация опорных выборок не выполняется, может задаваться равным 1, и второе значение, указывающее то, что фильтрация опорных выборок выполняется, может задаваться равным 0.
Помимо этого, filterFlag может задаваться равным 1, когда режим внутреннего прогнозирования текущего блока представляет собой предварительно определенный режим, и в противном случае, может задаваться равным 0. Предварительно определенный режим может представлять собой планарный режим или направленный режим, указывающий опорную выборку в целочисленной позиции. В этом случае, даже если вертикальный режим и горизонтальный режим указывают опорную выборку в целочисленной позиции, значение filterFlag может задаваться равным 0. Таким образом, когда режим внутреннего прогнозирования текущего блока представляет собой один из вышеописанных предварительно определенных режимов, фильтрация опорных выборок может выполняться. В противном случае, фильтрация опорных выборок может не выполняться.
Между тем, параметр, указывающий то, фильтрация или нет внутренней опорной выборки по фиг. 10, упоминаться с помощью названия, отличного от filterFlag. Его вариант осуществления показывается на фиг. 12. Аналогично примеру по фиг. 12, filterFlag может называться "refFilterFlag". В дополнение к изменению термина, этапы, соответствующие ссылкам с номерами S610-S660 по фиг. 12, могут соответствовать этапам, соответствующим ссылкам с номерами S410-S460 по фиг. 10.
Первый вариант осуществления
В дальнейшем в этом документе описываются фильтрация опорных выборок и способ внутреннего прогнозирования согласно варианту осуществления со ссылкой на фиг. 13. Необходимо предоставлять конфигурацию для передачи в служебных сигналах того, следует или нет применять фильтрацию на этапе фильтрации опорных выборок, чтобы применять сглаживающий фильтр к опорной выборке, к которой сглаживающий фильтр применяется для того, чтобы формировать прогнозную выборку, и применять повышающий резкость фильтр к опорной выборке, к которой сглаживающий фильтр не применяется. Следовательно, то, следует или нет применять фильтрацию на этапе фильтрации опорных выборок, может определяться на этапе формирования прогнозных выборок, и фильтр может выбираться, чтобы формировать прогнозную выборку, за счет этого повышая эффективность внутреннего прогнозирования.
Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ формирования внутренней прогнозной выборки согласно результату выполнения фильтрации опорных выборок посредством устройства декодирования согласно варианту осуществления. Во-первых, устройство декодирования согласно варианту осуществления может получать следующие параметры посредством ввода или извлечения (S710). Например, устройство декодирования может принимать следующие параметры. Здесь, x имеет целочисленное значение от 0 до nTbW-1, и y имеет целое число от 0 до nTbH-1.
- пара координат (xTbCmp, yTbCmp), указывающая относительную позицию левой верхней выборки текущего блока преобразования для левой верхней выборки текущего кадра
- predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования
- nTbW, который представляет собой параметр, указывающий ширину блока преобразования
- nTbH, который представляет собой параметр, указывающий высоту блока преобразования
- nCbW, который представляет собой параметр, указывающий ширину блока кодирования
- nCbH, который представляет собой параметр, указывающий высоту блока кодирования
- cIdx, который представляет собой параметр, указывающий цветовой компонент текущего блока
Между тем, устройство декодирования согласно варианту осуществления может извлекать параметры refW и refH следующим образом, чтобы формировать внутреннюю прогнозную выборку.
В примере, когда IntraSubPartitionsSplitType, который представляет собой параметр, указывающий тип разбиения текущего блока кодирования сигналов яркости, указывает неразбитый (ISP_NO_SPLIT), или cIdx, который представляет собой цветовой компонент текущего блока, не равен 0 (т.е. когда текущий блок представляет собой не блок сигналов яркости, а представляет собой блок сигналов цветности), refW и refH могут извлекаться согласно следующим уравнениям.
уравнение 6
refW=nTbW*2
уравнение 7
refH=nTbH*2
Между тем, в отличие от вышеуказанных условий, когда IntraSubPartitionsSplitType указывает разбиение, и значение cIdx указывает блок сигналов яркости, например, когда IntraSubPartitionsSplitType составляет ISP_HOR_SPLIT, указывающее горизонтальное разбиение, или ISP_VER_SPLIT, указывающее вертикальное разбиение, и значение cIdx имеет значение в 0, указывающее блок сигналов яркости, refW и refH могут извлекаться следующим образом:
уравнение 8
refW=nCbW*2
уравнение 9
refH=nCbH*2
Кроме того, параметр refIdx, указывающий опорную линию внутреннего прогнозирования, может извлекаться на основе IntraLumaRefLineIdx, который представляет собой массив для сохранения индекса опорной линии, на которую ссылаются во время внутреннего прогнозирования компонента сигнала яркости относительно позиции текущего блока преобразования следующим образом:
уравнение 10
refIdx=(cIdx==0)?IntraLumaRefLineIdx[xTbCmp][yTbCmp]:0
Затем, устройство декодирования согласно варианту осуществления формирует опорную выборку p[x][y] с использованием вышеописанных параметров (S720). В дальнейшем в этом документе, это описывается подробнее со ссылкой на фиг. 7 снова. Здесь, пара координат x, y может состоять из x=-1-refIdx, y=-1-refIdx - refH-1 и x=- refIdx - refW-1, y=-1-refIdx.
Во-первых, устройство декодирования согласно варианту осуществления может проверять доступность опорной выборки относительно выборочной позиции (xTbCmp, yTbCmp) (S111). С этой целью, устройство декодирования может получать, в качестве ввода, refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования, refW, который представляет собой параметр, указывающий ширину опорной выборки, refH, который представляет собой параметр, указывающий высоту опорной выборки, cIdx, который представляет собой параметр, указывающий индекс цветового компонента. Помимо этого, устройство декодирования может предоставлять, в качестве вывода, refUnfilt[x][y], который представляет собой параметр, указывающий опорную выборку. Здесь, пара координат x, y может состоять из x=-1-refIdx, y=-1-refIdx - refH-1 и x=- refIdx - refW-1, y=-1-refIdx.
Затем, при определении того, что по меньшей мере одна выборка refUnfilt[x][y] пары координат x, y, состоящей из x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx, не доступна, устройство декодирования может выполнять этап (S112) замены опорных выборок.
Устройство декодирования может получать, в качестве ввода, refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования, refW, который представляет собой параметр, указывающий ширину опорной выборки, refH, который представляет собой параметр, указывающий высоту опорной выборки, cIdx, который представляет собой параметр, указывающий индекс цветового компонента, и refUnfilt[x][y], который представляет собой параметр, указывающий опорную выборку (где координаты x, y состоят из x=-1-refIdx, y=-1-refIdx - refH-1 и x=- refIdx - refW-1, y=-1-refIdx), чтобы выполнять этап замены опорных выборок. Помимо этого, устройство декодирования может формировать refUnfilt[x][y], который представляет собой параметр, указывающий опорную выборку (где пара координат x, y состоит из x=-1-refIdx, y=-1-refIdx - refH-1 и x=- refIdx - refW-1, y=-1-refIdx), модифицированную в результате этапа замены опорных выборок.
Затем, устройство декодирования может выполнять этап фильтрации опорных выборок (S113). Устройство декодирования может получать, в качестве ввода, refIdx, указывающий индекс опорной линии внутреннего прогнозирования, nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, refW, который представляет собой параметр, указывающий ширину опорной выборки, refH, который представляет собой параметр, указывающий высоту опорной выборки, refUnfilt[x][y], который представляет собой параметр, указывающий выборку, которая не фильтруется относительно x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx, и cIdx, который представляет собой параметр, указывающий индекс цветового компонента. Помимо этого, устройство декодирования может формировать filterFlag, который представляет собой параметр, указывающий то, выполняется или нет фильтр опорных выборок, как результат этапа фильтрации опорных выборок, и p[x][y], который представляет собой параметр, указывающий опорную выборку. Здесь, x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx.
Это описывается снова со ссылкой на фиг. 13. На следующем этапе, устройство декодирования согласно варианту осуществления формирует внутреннюю прогнозную выборку (S730). Устройство декодирования согласно варианту осуществления может определять режим внутреннего прогнозирования, который должен применяться к текущему блоку, согласно значению predModeIntra (S731). Помимо этого, устройство декодирования может формировать внутреннюю прогнозную выборку посредством выполнения внутреннего прогнозирования в определенном режиме внутреннего прогнозирования (S732).
Например, когда значение predModeIntra указывает режим внутреннего планарного прогнозирования (INTRA_PLANAR), устройство декодирования согласно варианту осуществления может формировать прогнозную выборку соответствующего блока в режиме внутреннего планарного прогнозирования. В этом случае, устройство декодирования может получать, в качестве ввода, nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, и p, который представляет собой параметр, указывающий массив опорных выборок. Устройство декодирования может формировать, в качестве результата, predSamples, который представляет собой параметр, указывающий массив прогнозных выборок.
Между тем, когда predModeIntra не является идентичным тому, что описано выше, и predModeIntra указывает режим внутреннего DC-прогнозирования (INTRA_DC), устройство декодирования может формировать прогнозную выборку соответствующего блока в режиме внутреннего DC-прогнозирования. В этом случае, устройство декодирования может получать, в качестве ввода, nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, и p, который представляет собой параметр, указывающий массив опорных выборок. Устройство декодирования может формировать, в качестве результата, predSamples, который представляет собой параметр, указывающий массив прогнозных выборок.
Между тем, когда predModeIntra не является идентичным тому, что описано выше, и predModeIntra представляет собой значение, указывающее режим на основе кросскомпонентной линейной модели (CCLM) для выборки сигнала цветности, такой как INTRA_LT_CCLM, INTRA_L_CCLM или INTRA_T_CCLM, описанный выше, устройство декодирования может выполнять процесс на основе режима внутреннего прогнозирования, соответствующий ему. В этом случае, устройство декодирования может получать, в качестве ввода, predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования, выборочную позицию (xTbC, yTbC) заданную равной (xTbCmp, yTbCmp), nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, и p, который представляет собой параметр, указывающий массив опорных выборок. Устройство декодирования может формировать, в качестве вывода, predSamples, который представляет собой параметр, указывающий массив прогнозных выборок.
Между тем, когда predModeIntra не является идентичным тому, что описано выше, устройство декодирования может выполнять режим направленного внутреннего прогнозирования. Устройство декодирования может получать, в качестве ввода, predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования, refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования, nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, refW, который представляет собой параметр, указывающий ширину опорной выборки, refH, который представляет собой параметр, указывающий высоту опорной выборки, nCbW, указывающий ширину блока кодирования, nCbH, который представляет собой параметр, указывающий высоту блока кодирования, cIdx, который представляет собой параметр, указывающий индекс цветового компонента, filterFlag, который представляет собой параметр, указывающий то, выполняется или нет фильтрация опорных выборок, и p, который представляет собой параметр, указывающий массив опорных выборок. Устройство декодирования может формировать predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования, модифицированный в результате его выполнения, и predSamples, который представляет собой параметр, указывающий массив прогнозных выборок.
В дальнейшем в этом документе описывается способ выполнения режима направленного внутреннего прогнозирования посредством устройства декодирования согласно варианту осуществления со ссылкой на фиг. 14. Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей способ выполнения режима направленного внутреннего прогнозирования посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может формировать режим predModeIntra внутреннего прогнозирования, , модифицированный в результате выполнения второго - 66-го режимов направленного внутреннего прогнозирования (INTRA_ANGULAR2 в INTRA_ANGULAR66), и прогнозированную выборку predSamples[x][y]. Здесь, x=0 - nTbW-1 и y=0 - nTbH-1.
Во-первых, устройство декодирования согласно варианту осуществления получает параметры, требуемые для того, чтобы выполнять режим направленного внутреннего прогнозирования (S810). Например, устройство декодирования согласно варианту осуществления может получать, в качестве ввода, следующие параметры, чтобы выполнять режим направленного внутреннего прогнозирования.
- predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования
- refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования
- nTbW, который представляет собой параметр, указывающий ширину блока преобразования
- nTbH, который представляет собой параметр, указывающий высоту блока преобразования
- refW, который представляет собой параметр, указывающий ширину опорной выборки
- refH, который представляет собой параметр, указывающий высоту опорной выборки
- nCbW, который представляет собой параметр, указывающий ширину блока кодирования
- nCbH, который представляет собой параметр, указывающий высоту блока кодирования
- cIdx, который представляет собой параметр, указывающий цветовой компонент текущего блока
- filterFlag, который представляет собой параметр, указывающий фильтрацию опорных выборок
- соседняя выборка p[x][y] (здесь, пара x, y состоит из x=- 1-refIdx, y=- 1-refIdx - refH-1 и x=-refIdx - refW-1, y=- 1-refIdx),
Здесь, соседняя выборка p[x][y] может представлять собой массив p[x][y] опорных выборок, сформированный посредством выполнения этапа S720 формирования опорных выборок, описанного выше со ссылкой на фиг. 13.
Между тем, nTbS, который представляет собой параметр, указывающий горизонтальный размер выборки блока преобразования, может определяться в качестве (Log2(nTbW)+Log2(nTbH))>>1.
Помимо этого, устройство декодирования может извлекать параметр nW, указывающий ширину текущего блока, и параметр nH, указывающий высоту текущего блока. В варианте осуществления, устройство декодирования может извлекать nW и nH на основе значений IntraSubPartitionsSplitType и cIdx. Устройство декодирования может извлекать nW и nH следующим образом, когда IntraSubPartitionsSplitType составляет ISP_NO_SPLIT, или cIdx не равен 0.
уравнение 11
nW=nTbW
уравнение 12
nH=nTbH
Между тем, когда значения IntraSubPartitionsSplitType и cIdx не являются идентичными тому, что описано выше (например, IntraSubPartitionsSplitType не равен ISP_NO_SPLIT, и cIdx равен 0), устройство декодирования может извлекать nW и nH следующим образом:
уравнение 13
nW=nCbW
уравнение 14
nH=nCbH
Помимо этого, устройство декодирования может задавать whRatio, который представляет собой параметр, указывающий соотношение сторон (соотношение ширины к высоте) текущего блока с использованием nW и nH согласно результату вычисления Abs(Log2(nW/nH)). Кроме того, устройство декодирования может определять широкий угол, который представляет собой параметр, указывающий то, представляет он собой широкий угол или нет, в качестве 0.
Между тем, в случае неквадратного блока (например, nW не равно nH), устройство декодирования может модифицировать predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования. Например, устройство декодирования может задавать широкий угол равным 1 и модифицировать predModeIntra на значение (predModeIntra+65), когда все из следующих условий представляют собой "истина".
(Условие 1) nW превышает nH.
(Условие 2) predModeIntra превышает или равно 2.
(Условие 3) predModeIntra меньше значения, вычисленного посредством (whRatio>1)?(8+2*whRatio):8.
Тем не менее, если все вышеуказанные условия представляют собой "истина", устройство декодирования может задавать широкий угол равным 1 и модифицировать predModeIntra на значение (predModeIntra-67), когда все из следующих условий представляют собой "истина".
(Условие 1) nH превышает nW.
(Условие 2) predModeIntra имеет значение 66 или меньше.
(Условие 3) predModeIntra имеет значение, большее значения, вычисленного посредством (whRatio>1)? (60-2*whRatio): 60.
Помимо этого, устройство декодирования может извлекать модифицированный filterFlag. Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей способ получения значения модифицированного filterFlag посредством устройства декодирования. В варианте осуществления, устройство декодирования может определять то, представляет или нет по меньшей мере одно из следующих условий собой "истина" (S910). Когда по меньшей мере одно из следующих условий представляет собой "истина", устройство декодирования может задавать значение модифицированного filterFlag равным первому значению (S930). В варианте осуществления, первое значение может быть равным 0.
(Условие 1) IntraSubPartitionsSplitType не равен ISP_NO_SPLIT, cIdx, равно 0, predModeIntra превышает или равен INTRA_ANGULAR34 и nW превышает 8.
(Условие 2) IntraSubPartitionsSplitType не равен ISP_NO_SPLIT, cIdx, равно 0, predModeIntra меньше INTRA_ANGULAR34, и nH превышает 8.
Между тем, когда вышеуказанные условия не удовлетворяются, устройство декодирования может задавать значение модифицированного filterFlag равным второму значению (S920). В варианте осуществления, второе значение может вычисляться как 1-filterFlag. Например, когда значение filterFlag равно 0, значение модифицированного filterFlag может определяться в качестве 1, а когда значение filterFlag равно 1, значение модифицированного filterFlag может определяться в качестве 0.
Фиг. 16 является таблицей преобразования между predModeIntra и intraPredAngle, который представляет собой параметр, указывающий угол. Устройство декодирования может извлекать invAngle, который представляет собой параметр, указывающий обратный угол, следующим образом на основе intraPredAngle таблицы преобразования по фиг. 16.
уравнение 15
invAngle=Round((256*32)/"intraPredAngle")
Здесь, функция Round означает операцию округления для представления целого числа.
Фиг. 17 представляет собой таблицу, иллюстрирующую коэффициенты кубического фильтра (fC) и гауссова фильтра (fG) в качестве интерполяционного фильтра, используемого для внутреннего прогнозирования. Когда фаза составляет от 0 до 31, и j имеет значение в 0-3, вариант осуществления fC[phase][j] и fG[phase][j], которые представляют собой коэффициенты кубического фильтра (fC) и гауссова фильтра (fG), показывается на фиг. 17.
Затем, устройство декодирования может извлекать массив ref[x] опорных выборок на основе массива p[x] соседних выборок (S820) и извлекать массив predSamples[x][y] прогнозных выборок (S830). В дальнейшем в этом документе, это описывается со ссылкой на фиг. 5 и 16-20. Фиг. 18-20 являются блок-схемами последовательности операций, иллюстрирующими способ извлечения массива ref[x] опорных выборок посредством устройства декодирования согласно варианту осуществления.
Во-первых, как показано на фиг. 18, устройство декодирования согласно варианту осуществления может определять опорную выборку, на которую ссылаются, чтобы извлекать массив predSample[x][y] прогнозных выборок текущего блока согласно значению predModeIntra (S1010). Когда значение predModeIntra превышает или равно 34, устройство декодирования может извлекать predSample[x][y] главным образом с использованием соседних выборок, расположенных выше текущего блока, из соседних выборок p[x][y] (S1020). Когда значение predModeIntra меньше 34, устройство декодирования может извлекать predSample[x][y] главным образом с использованием выборок, расположенных слева относительно текущего блока, из соседних выборок p[x][y] (S1030).
В дальнейшем подробнее описывается этап S1020 конструирования predSample[x][y] главным образом с использованием соседних выборок, расположенных выше текущего блока, посредством устройства декодирования, со ссылкой на фиг. 19. Устройство декодирования может извлекать массив ref[x] опорных выборок; ref[x] может конструироваться посредством добавления дополнительной выборки после формирования основного массива опорных выборок. Во-первых, ref[x] может состоять из основного массива опорных выборок, который представляет собой набор выборок, на которые ссылаются в качестве основного значения, чтобы получать выборочное значение текущего блока. Например, когда гауссов или кубический фильтр, описанный ниже, применяется к массиву опорных выборок, чтобы извлекать значение каждой выборки текущего блока, опорная выборка, к которой применяется наибольший коэффициент фильтрации, может представлять собой опорную выборку, на которую ссылаются в качестве основного значения. В этом примере, основной массив опорных выборок может конструироваться посредством набора опорных выборок, состоящего из выборок, к которым применяется наибольший коэффициент фильтрации. Более конкретно, в примере таблицы для коэффициента фильтрации по фиг. 17, когда фаза p равна 0, коэффициент интерполяционной fG-фильтрации имеет наибольшее значение в fG[0][1], и опорная выборка, соответствующая ему, может определяться в качестве основной опорной выборки. Чтобы конструировать такой основной массив опорных выборок, основной массив опорных выборок может конструироваться посредством значений соседних выборок, указываемых в направлении внутреннего прогнозирования текущего блока.
Устройство декодирования может извлекать основной массив ref[x] опорных выборок с использованием соседних выборок, расположенных выше текущего блока, чтобы извлекать массив ref[x] опорных выборок (S1110). Следующее уравнение может использоваться для того, чтобы выполнять этот этап.
уравнение 16
ref[x]=p[-1-refIdx+x][-1-refIdx], где x может иметь значение от 0 до nTbW+refIdx.
Когда predModeIntra равен 34, nTbW равен 8, и refIdx равен 0, взаимосвязь соответствия между ref[0] - ref[8], сформированными согласно уравнению 16, и соседними блоками показывается на фиг. 21.
Затем, устройство декодирования определяет соседние блоки, на которые ссылаются, чтобы расширять основной массив опорных выборок согласно значению intraPredAngle, извлекаемого согласно фиг. 16 (S1120). Когда значение intrapredAngle меньше 0, устройство декодирования может расширять основной массив опорных выборок с использованием соседних выборок, расположенных слева относительно текущего блока (S1130). Например, когда результат вычисления (nTbH*intraPredAngle)>>5 меньше -1, устройство декодирования может расширять основной массив опорных выборок из значения левого соседнего блока с использованием нижеприведенного уравнения 17.
уравнение 17
ref[x]=p[-1-refIdx][-1-refIdx+((x*invAngle+128)>>8)], где x может иметь значение -1 - (nTbH*intraPredAngle)>>5. Когда predModeIntra равен 34, nTbW равен 8, nTbH равен 8, и refIdx равен 0, взаимосвязь соответствия между ref[-1]-ref[-8], сформированными согласно уравнению 17, и соседними блоками показывается на фиг. 22.
Затем, устройство декодирования может добавлять дополнительные выборки в оба конца основного массива опорных выборок (S1140). Как описано ниже, в случае если 4-отводный фильтр применяется для того, чтобы получать выборочное значение текущего блока, когда опорные выборки на обоих концах основной опорной выборки могут выбираться в качестве основной опорной выборки, и фильтр применяется к опорным выборкам, значение опорной выборки, которая должна вводиться в фильтр, может не присутствовать.
Например, когда гауссов фильтр (fG), имеющий 0 в качестве значения фазы (p) на фиг. 17, применяется с использованием ref[8] по фиг. 21 в качестве основной опорной выборки, значение опорной выборки, соответствующее fG[0][2] и fG[0][3], не присутствует в ref[]. В этом примере, поскольку значение коэффициента fG[0][3] равно 0, значение для опорного значения, соответствующее соответствующей позиции, может не указываться. Тем не менее, поскольку коэффициент fG[0][2] присутствует, выборочное значение для fG[0][2] должно сохраняться в ref[].
Чтобы исключать эту проблему, дополнительные выборки могут добавляться в концы основного массива опорных выборок. Дополнительная выборка может задаваться равной значению опорной выборки, имеющей индекс, ближайший к индексу дополнительной выборки, на основе индекса основного массива опорных выборок. С этой целью, устройство декодирования может копировать значение опорной выборки, имеющей индекс, ближайший к дополнительной выборке, из ref[], либо получать его из значения соседних блоков, соответствующих ему, и сохранять его в ref[].
Нижеприведенные равнения 18 и 19 представляют вычисление устройства декодирования для того, чтобы добавлять дополнительные выборки в оба конца основного массива опорных выборок с использованием предварительно вычисленного основного массива опорных выборок. Устройство декодирования может добавлять дополнительные выборки в массив опорных выборок с использованием следующих уравнений.
уравнение 18
ref[((nTbH*intraPredAngle)>>5)-1]=ref[(nTbH*intraPredAngle)>>5]
уравнение 19
ref[nTbW+1+refIdx]=ref[nTbW+refIdx]
Когда predModeIntra равен 34, nTbW равен 8, и refIdx равен 0, взаимосвязь соответствия между ref[-9] и ref[9], сформированными согласно уравнению 18, и соседними блоками показывается на фиг. 23.
Между тем, когда intraPredAngle не меньше 0, устройство декодирования может расширять основной массив опорных выборок с использованием соседних выборок, расположенных справа сверху относительно текущего блока (S1150). Устройство декодирования может расширять основной массив опорных выборок из значения соседнего блока справа сверху с использованием нижеприведенного уравнения 20.
уравнение 20
ref[x]=p[-1-refIdx+x][-1-refIdx], где x=nTbW+1+refIdx - refW+refIdx.
Когда predModeIntra равен 66, nTbW равен 8, nTbH равен 8, refW равен 16, и refIdx равен 0, взаимосвязь соответствия между ref[9]-ref[16], сформированными согласно уравнению 20, и соседними блоками показывается на фиг. 24.
Затем, устройство декодирования может добавлять дополнительную выборку в левый конец основного массива опорных выборок (S1160). В варианте осуществления, устройство декодирования может определять выборочное значение ref[-1] с использованием выборочного значения ref[0] с использованием нижеприведенного уравнения 21.
уравнение 21
ref[-1]=ref[0]
Затем, устройство декодирования добавляет дополнительную выборку в правый конец основного массива опорных выборок (S1170). Устройство декодирования может добавлять дополнительную выборку в правый конец основного массива опорных выборок согласно соотношению whRatio сторон текущего блока. В варианте осуществления, устройство декодирования может извлекать ref[refW+refIdx+x], который представляет собой параметр, указывающий дополнительную выборку, с использованием нижеприведенного уравнения 22. Здесь, x равен 1 - Max(1, nTbW/nTbH)*refIdx+1).
уравнение 22
ref[refW+refIdx+x]=p[-1+refW][-1-refIdx]
В варианте осуществления, в котором predModeIntra равен 66, nTbw равен 8, nTbH равен 8, refW равен 16, и refIdx равен 0, взаимосвязь соответствия между дополнительными выборками ref[-1] и ref[17], сформированными согласно уравнению 21 и 22, и соседними блоками показывается на фиг. 24.
Затем, устройство декодирования может извлекать массив прогнозных выборок с использованием сформированного массива опорных выборок (S1180). В дальнейшем описывается этот этап со ссылкой на фиг. 20. Например, устройство декодирования может извлекать прогнозную выборку predSamples[x][y], имеющую значения x=0 - nTbW-1 и y=0 - nTbH-1 следующим образом: Во-первых, устройство декодирования может извлекать iIdx, который представляет собой индексный параметр для извлечения прогнозной выборки, и коэффициент iFact умножения следующим образом (S1210).
уравнение 23
iIdx=((y+1+refIdx)*intraPredAngle)>>5+refIdx
уравнение 24
iFact=((y+1+refIdx)*intraPredAngle) и 31
Затем, устройство декодирования определяет то, представляет или нет текущий блок собой блок сигналов яркости, согласно значению cIdx (S1220). В этом случае, когда cIdx равен 0, устройство декодирования выбирает интерполяционный фильтр для извлечения прогнозной выборки сигналов яркости согласно значению filterFlag (S1230). Устройство декодирования может извлекать коэффициент fT[j] интерполяционной фильтрации с j=0-3 следующим образом:
уравнение 25
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
Более конкретно, устройство декодирования может выбирать коэффициенты гауссовой фильтрации (fG) для значения фазы (p), выбранного в качестве значения iFact, когда значение filterFlag равно 1. В этом случае, устройство декодирования может извлекать прогнозную выборку сигналов яркости текущего блока посредством применения гауссова фильтра к опорной выборке с использованием выбранного значения коэффициента фильтрации (S1240)
Между тем, устройство декодирования может выбирать коэффициенты кубической фильтрации (fC) для значения фазы (p), выбранного в качестве значения iFact, когда значение filterFlag не равно 1. В этом случае, устройство декодирования может извлекать прогнозную выборку сигналов яркости текущего блока посредством применения кубического фильтра к опорной выборке с использованием выбранного значения коэффициента фильтрации (S1250).
В варианте осуществления, значение прогнозной выборки predSamples[x][y] может извлекаться следующим образом с использованием выбранного коэффициента fT[i] фильтрации.
уравнение 26
predSamples[x][y]=Clip1Y(((  )+32)>>6)
В варианте осуществления, predModeIntra может быть равным 66, nTbW может быть равным 8, nTbH может быть равным 8, refW может быть равным 16, refIdx может быть равным 0, и cIdx может задаваться равным 0. В этом варианте осуществления, согласно вышеприведенным уравнениям 23 и 24, значение iIdx для predSamples[0][0] может задаваться равным 1, значение iFact может задаваться равным 0, значение iIdx для predSamples [7][7] может задаваться равным 8, и значение iFact может задаваться равным 0. Помимо этого, когда filterFlag имеет значение 1, fT[j] может задаваться равным коэффициенту фильтрации согласно гауссову фильтру и может задаваться равным fT[]=(16, 32, 16, 0).
Фиг. 25 показывает результат извлечения predSamples[0][0] и predSamples [7][7] в этом варианте осуществления. predSamples[0][0] может извлекаться согласно результату вычисления ((ref[1]*16+ref[2]*32+ref[3]*16+ref[4]*0)+32)>>6. В этом примере, значение predSamples[0][0] может вычисляться 2.
predSamples [7][7] может извлекаться согласно результату вычисления ((ref[15]*16+ref[16]*32+ref[17]*16+ref[18]*0)+32)>>6. В этом примере, значение predSamples [7][7] может вычисляться как 1. В примере вычисления predSamples [7][7], значение ref[18] не задается, но значение коэффициента гауссовой фильтрации fT[3], умноженного на ref[18], равно 0. Следовательно, вышеприведенное вычисление является возможным.
Между тем, в этом варианте осуществления, когда filterFlag имеет значение в 0, fT[j] может задаваться равным коэффициенту фильтрации согласно кубическому фильтру и может задаваться равным fT[]=(0, 64, 0, 0).
Фиг. 26 показывает результат извлечения predSamples[0][0] и predSamples [7][7] в этом варианте осуществления; predSamples[0][0] может извлекаться согласно результату вычисления ((ref[1]*0+ref[2]*64+ref[3]*0+ref[4]*0)+32)>>6. В этом примере, значение predSamples[0][0] может вычисляться 2.
predSamples [7][7] может извлекаться согласно результату вычисления ((ref[15]*0+ref[16]*64+ref[17]*0+ref[18]*0)+32)>>6. В этом примере, значение predSamples [7][7] может вычисляться как 0. В примере вычисляющего predSamples [7][7] не задается значение ref[18], но значение коэффициента кубической фильтрации fT[3], умноженного на ref[18], равно 0. Следовательно, вышеприведенное вычисление является возможным.
Между тем, когда cIdx не равен 0, значение прогнозной выборки сигналов цветности может определяться согласно значению iFact (S1260). В варианте осуществления, когда iFact не равен 0, значение прогнозной выборки predSamples[x][y] сигналов цветности может извлекаться следующим образом:
уравнение 27
predSamples[x][y]=
((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
Между тем, когда iFact равен 0, значение прогнозной выборки predSamples[x][y] сигналов цветности может извлекаться следующим образом:
уравнение 28
predSamples[x][y]=ref[x+iIdx+1]
Ссылаясь на фиг. 18 снова, когда predModeIntra меньше 34, устройство декодирования согласно варианту осуществления может извлекать массив predSample[x][y] прогнозных выборок главным образом с использованием соседней выборки, расположенной слева относительно текущего блока (S1030). Этот этап соответствует этапу S1030, описанному выше, и в силу этого следует фокусироваться на отличии относительно этапа S1020. Во-первых, устройство декодирования может задавать основной массив ref[x] опорных выборок следующим образом:
уравнение 29
ref[x]=p[-1-refIdx][-1-refIdx+x], где x имеет значение в 0 - nTbH+refIdx.
В этом случае, когда intraPredAngle меньше 0, основной массив опорных выборок может расширяться. Например, когда результат вычисления (nTbW*intraPredAngle)>>5 меньше -1, ref[x] может расширяться следующим образом:
уравнение 30
ref[x]=p[-1-refIdx+((x*invAngle+128)>>8)][-1-refIdx],
где x имеет значение -1 - (nTbW*intraPredAngle)>>5.
уравнение 31
ref[((nTbW*intraPredAngle)>>5)-1]=ref[(nTbW*intraPredAngle)>>5]
уравнение 32
ref[nTbG+1+refIdx]=ref[nTbH+refIdx]
Между тем, когда intraPredAngle не меньше 0, ref[x] может определяться следующим образом:
уравнение 33
ref[x]=p[-1-refIdx][-1-refIdx+x], где x имеет значение в nTbH+1+refIdx - refH+refIdx.
уравнение 34
ref[-1]=ref[0]
ref[refH+refIdx+x], который представляет собой параметр, указывающий дополнительную выборку, может извлекаться следующим образом: Здесь, x имеет значение 1 - (Max(1, nTbW/nTbH)*refIdx+1).
уравнение 35
ref[refH+refIdx+x]=p[-1+refH][-1-refIdx]
Затем, когда x имеет значение в 0 - nTbW-1, и y имеет значение в 0 - nTbH-1, устройство декодирования может извлекать прогнозную выборку predSamples[x][y] следующим образом. Во-первых, iIdx, который представляет собой индексный параметр для извлечения прогнозной выборки, и коэффициент iFact умножения могут извлекаться следующим образом:
уравнение 36
iIdx=((x+1+refIdx)*intraPredAngle)>>5
уравнение 37
iFact=((x+1+refIdx)*intraPredAngle) и 31
Помимо этого, когда cIdx равен 0, коэффициент fT[j] интерполяционной фильтрации с j=0-3 может извлекаться следующим образом:
уравнение 38
fT[j]=filterFlag?fG[iFact][j]:fC[iFact][j]
Помимо этого, значение прогнозной выборки predSamples[x][y] может извлекаться следующим образом:
уравнение 39
predSamples[x][y]=Clip1Y (((
Между тем, когда cIdx не равен 0, значение прогнозной выборки может определяться согласно значению iFact. В варианте осуществления, когда iFact не равен 0, значение прогнозной выборки predSamples[x][y] может извлекаться следующим образом:
уравнение 40
predSamples[x][y]=
((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)>>5
Между тем, когда iFact равен 0, значение прогнозной выборки predSamples[x][y] может извлекаться следующим образом:
уравнение 41
predSamples[x][y]=ref[y+iIdx+1]
Между тем, когда все из следующих условий представляют собой "истина", устройство декодирования может выполнять этап позиционно-зависимой фильтрации прогнозных выборок.
(Условие 1) IntraSubPartitionsSplitType равен ISP_NO_SPLIT или cIdx, не равно 0.
(Условие 2) Значение refIdx равно 0 или значение cIdx, не равно 0.
(Условие 3) predModeIntra указывает значение любого из INTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18 или INTRA_ANGULAR50, или predModeIntra указывает значение, равное или меньшее INTRA_ANGULAR10, или значение, равное или большее INTRA_ANGULAR58.
С этой целью, устройство декодирования может получать, в качестве ввода, predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования, nTbW, который представляет собой параметр, указывающий ширину блока преобразования, nTbH, который представляет собой параметр, указывающий высоту блока преобразования, predSamples[x][y], который представляет собой параметр, указывающий выборку, прогнозированную для x=0 - nTbW-1 и y=0 - nTbH-1, refW, который представляет собой параметр, указывающий ширину опорной выборки, refH, который представляет собой параметр, указывающий высоту опорной выборки, опорную выборку p[x][y] с x=-1 и y=-1 - refH-1 и x=0 - refW-1 и y=-1, и cIdx, который представляет собой параметр, указывающий индекс цветового компонента. Помимо этого, устройство декодирования может формировать, в качестве вывода, массив predSamples прогнозных выборок, модифицированный в результате выполнения этого процесса.
Другой вариант осуществления условия фильтрации опорных выборок
Между тем, для этапа фильтрации опорных выборок, описанного выше со ссылкой на фиг. 8, устройство декодирования согласно варианту осуществления может выполнять этап S210 с использованием следующих модифицированных условий вместо условий, описанных выше, чтобы определять значение filterFlag. Посредством задания условия фильтрации опорной выборки следующим образом, фильтрация опорных выборок может выполняться относительно режима внутреннего прогнозирования, отличающегося от вышеописанных условий фильтрации опорных выборок. Например, когда режим внутреннего прогнозирования текущего блока представляет собой режим INTRA_DC, фильтрация опорных выборок может опускаться.
Это описывается подробнее со ссылкой на фиг. 27. Например, устройство декодирования согласно варианту осуществления может определять то, удовлетворяются или нет следующие модифицированные условия для выполнения фильтрации опорных выборок (S1310). Когда любое условие не удовлетворяется, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 0 (S1320). Когда все из следующих условий удовлетворяются, устройство декодирования согласно варианту осуществления может задавать равным значению filterFlag равным 1 (S1330). Между тем, чтобы увеличивать случай, в котором фильтрация опорных выборок возникает, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 1, когда удовлетворяется любое из следующих условий. В этом случае, когда все из следующих условий не удовлетворяются, устройство декодирования может задавать значение filterFlag равным 0.
(Условие 1) Значение refIdx равно 0.
(Условие 2) cIdx равно 0.
(Условие 3) IntraSubPartitionsSplitType равен ISP_NO_SPLIT.
(Условие 4) predModeIntra не равен INTRA_DC.
(Условие 5) Помимо этого, одно или более следующих условий 5-1-5-4 должны удовлетворяться.
(Условие 5-1) predModeIntra равен INTRA_PLANAR, и nTbW*nTbH превышает 32.
(Условие 5-2) nTbW превышает nTbH, predModeIntra равен или выше 2, и predModeIntra меньше результата вычисления (whRatio>1)?(8+2*whRatio):8.
(Условие 5-3) nTbH превышает nTbW, predModeIntra меньше или равен 66, predModeIntra превышает результат вычисления (whRatio>1)?(60-2*whRatio):60.
(Условие 5-4) minDistVerHor превышает intraHorVerDistThres[nTbS]. В этом случае, параметр nTbS имеет значение (Log2 (nTbW)+Log2 (nTbH))>>1, и параметр minDistVerHor задается равным результату вычисления Min(Abs(predModeIntra-50) и Abs(predModeIntra-18)). В этом случае, параметр intraHorVerDistThres[nTbS] может определяться относительно размера nTbS блока преобразования, как показано в следующей таблице.
Табл. 2
nTbS=2
nTbS=3
nTbS=4
nTbS=5
nTbS=6
nTbS=7
intraHorVerDistThres[nTbS]
16
14
2
0
0
0
Фильтр [1 2 1]/4 для фильтрации опорных выборок
В дальнейшем подробнее описывается сглаживающий фильтр, применяемый к вышеописанному этапу фильтрации опорных выборок. В варианте осуществления, устройство декодирования может выполнять фильтрацию опорных выборок с использованием фильтра [1 2 1]/4. В дальнейшем подробнее описывается сглаживающий фильтр для фильтрации опорных выборок со ссылкой на фиг. 28.
Устройство декодирования может выполнять фильтрацию опорных выборок с использованием опорной выборки и значения выборки, смежной с опорной выборкой. Фиг. 28 показывает целевой массив 301 выборок, к которому должен применяться фильтр [1 2 1]/4, и результирующий массив 302 выборок, к которому применяется фильтр [1 2 1]/4. В варианте осуществления, целевой массив 301 выборок может обновляться до значения результирующего массива 302 выборок.
Как показано на фиг. 28, устройство декодирования может применять фильтр [1 2 1]/4 к опорной выборке посредством обновления значения опорной выборки на значение (левое выборочное значение опорной выборки*1+выборочное значение опорной выборки*2+правое выборочное значение опорной выборки*1)/4, когда опорная выборка расположена выше текущего блока.
Между тем, когда опорная выборка расположена слева относительно текущего блока, устройство декодирования может применять фильтр [1 2 1]/4 к опорной выборке аналогичным образом. Например, устройство декодирования может обновлять значение опорной выборки на значение (верхнее выборочное значение опорной выборки*1+выборочное значение опорной выборки*2+нижнее выборочное значение опорной выборки*1)/4.
Как показано на фиг. 28, массив 301 выборок до применения фильтра [1 2 1]/4 и массив 302 выборок после применения фильтра [1 2 1]/4 имеют отличие в изменении выборочного значения согласно увеличению индекса массива. Массив 302 выборок, к которому применяется фильтр [1 2 1]/4, имеет тенденцию сглаженно изменять выборочное значение по сравнению с массивом выборок, к которому не применяется фильтр [1 2 1]/4.
Второй вариант осуществления
В дальнейшем в этом документе описываются фильтрация опорных выборок согласно другому варианту осуществления и способ внутреннего прогнозирования, соответственно. Устройство декодирования согласно варианту осуществления может выполнять фильтрацию посредством применения сглаживающего фильтра к опорной выборке только тогда, когда режим прогнозирования представляет собой режим направленного внутреннего прогнозирования, имеющий наклон в целое кратное. В этом случае, в режиме направленного внутреннего прогнозирования в нецелое кратное, опорная выборка не фильтруется. В этом случае, устройство декодирования может формировать прогнозную выборку посредством избирательного применения любого из повышающего резкость фильтра и сглаживающего фильтра к опорной выборке. Посредством выполнения таким образом, устройство декодирования может увеличивать производительность прогнозирования при уменьшении сложности фильтрации в процессе направленного внутреннего прогнозирования.
В дальнейшем в этом документе, это описывается со ссылкой на фиг. 29. Во-первых, далее описывается вариант осуществления фильтрации опорной выборки. Устройство декодирования может фильтровать опорную выборку, когда удовлетворяются следующие условия. Например, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 1, когда удовлетворяются все из следующих условий. Устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 0, когда ни одно условие не удовлетворяется. Между тем, чтобы увеличивать случай, в котором фильтрация опорных выборок возникает, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 1, когда удовлетворяется любое из следующих условий. В этом случае, устройство декодирования может задавать значение filterFlag равным 0, когда не удовлетворяются все из следующих условий:
(Условие 1) Текущая единица кодирования представляет собой компонент сигнала яркости.
(Условие 2) Значение MRL-индекса равно 0.
(Условие 3) В ISP, разбиение единицы кодирования не возникает.
(Условие 4) Он не представляет собой MIP-режим.
(Условие 5) H*W>32.
(Условие 6) Режим прогнозирования представляет собой планарный режим или режим с целочисленным наклоном. (Таким образом, abs(predIntraAngle) равен 32 либо его кратным числам).
Согласно вышеуказанным условиям, устройство декодирования может определять то, равно или нет значение filterFlag 1 (S1410), и фильтровать опорную выборку только тогда, когда режим прогнозирования представляет собой режим направленного внутреннего прогнозирования, имеющим наклон в целое кратное (S1420). Помимо этого, устройство декодирования может формировать прогнозную выборку посредством копирования фильтрованной опорной выборки (S1430).
Между тем, когда значение filterFlag не равно 1, устройство декодирования может не фильтровать опорную выборку в случае режима направленного внутреннего прогнозирования, имеющего наклон в нецелое кратное. Для режимов направленного внутреннего прогнозирования, имеющих наклон в нецелое кратное, фильтрация опорных выборок не выполняется, и вместо этого интерполяционный фильтр может применяться в процессе формирования прогнозной выборки. С этой целью, кубический фильтр, имеющий характеристику повышения резкости или гауссов фильтр, имеющий сглаживающий фильтр, выше описывается применимый. Выбор фильтра для интерполяции нефильтрованной опорной выборки может определяться согласно размеру текущего блока и режима внутреннего прогнозирования.
С этой целью, устройство декодирования может задавать значение параметра interpolationFlag для выбора фильтра для интерполяции опорной выборки равным 1, когда удовлетворяются следующие условия.
(Условие 1) Текущая единица кодирования представляет собой компонент сигнала яркости.
(Условие 2) Значение MRL-индекса равно 0.
(Условие 3) В ISP, разбиение единичного кодирования не возникает.
(Условие 4) Он не представляет собой MIP-режим.
(Условие 5) H*W>32.
(Условие 6), predModeIntra имеет значение в 0 или значение, большее 1, и minDistVerHor превышает intraHorVerDistThres[nTbS]. Здесь, параметр minDistVerHor имеет значения Min(Abs(predModeIntra-50) и Abs(predModeIntra-18)). Параметр intraHorVerDistThres[nTbS] может определяться согласно следующей таблице, представляющей соответствие между значением intraHorVerDistThres[nTbS] и размером nTbS блока преобразования.
Табл. 3
nTbS=2
nTbS=3
nTbS=4
nTbS=5
nTbS=6
nTbS=7
intraHorVerDistThres[nTbS]
16
14
2
0
0
0
Устройство декодирования может выбирать фильтр согласно определенному значению interpolationFlag (S1440). Когда значение interpolationFlag равно 1, устройство декодирования может формировать прогнозную выборку с использованием сглаживающего фильтра, такого как гауссов фильтр, как описано выше со ссылкой на фиг. 25 (S1450). Когда значение interpolationFlag равно 0, устройство декодирования может формировать прогнозную выборку с использованием повышающего резкость фильтра, такого как кубический фильтр, как описано выше со ссылкой на фиг. 26 (S1460).
Третий вариант осуществления
В дальнейшем в этом документе описываются фильтрация опорных выборок согласно другому варианту осуществления и способ внутреннего прогнозирования, соответственно. В отличие от второго варианта осуществления, посредством применения фильтрации опорных выборок даже в случае режима направленного внутреннего прогнозирования, имеющего наклон нецелого числа, можно увеличивать эффективность внутреннего прогнозирования. С этой целью, условие фильтрации опорных выборок может изменяться таким образом, что опорная выборка фильтруется даже в случае режима направленного внутреннего прогнозирования, имеющего наклон нецелого числа. Кроме того, когда сглаживающий фильтр используется для фильтрации опорных выборок, опорная выборка интерполируется с использованием сглаживающего фильтра, чтобы формировать прогнозную выборку, а когда фильтрация опорных выборок не выполняется, опорная выборка интерполируется с использованием повышающего резкость фильтра, чтобы формировать прогнозную выборку. Следовательно, можно увеличивать эффективность внутреннего прогнозирования.
В дальнейшем в этом документе, это описывается со ссылкой на фиг. 30. Во-первых, описывается другое условие, в котором фильтруется опорная выборка. В варианте осуществления, когда текущая единица кодирования представляет собой компонент сигнала яркости, значение MRL-индекса равно 0, разбиение единицы кодирования не возникает в ISP, он не представляет собой MIP-режим, H*W>32, режим прогнозирования представляет собой планарный режим или имеет предварительно установленный наклон согласно размеру CU, устройство декодирования может задавать значение filterFlag равным 1 и может выполнять фильтрацию опорных выборок. Следовательно, устройство декодирования может выполнять фильтрацию опорных выборок независимо от того, является или нет наклон режима направленного прогнозирования целым кратным.
Для вышеуказанного процесса устройство декодирования согласно варианту осуществления может определять следующие модифицированные условия для того, чтобы определять значение filterFlag на этапе S1510 фильтрации опорных выборок. Например, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 1, когда удовлетворяются все из следующих условий. Устройство декодирования согласно варианту осуществления задает значение filterFlag равным 0, когда ни одно условие не удовлетворяется. Между тем, чтобы увеличивать случай, в котором фильтрация опорных выборок возникает, устройство декодирования согласно варианту осуществления может задавать значение filterFlag равным 1, когда удовлетворяется любое из следующих условий. В этом случае, устройство декодирования может задавать значение filterFlag равным 0, когда не удовлетворяются все из следующих условий:
(Условие 1) Значение refIdx равно 0.
(Условие 2) nTbW*nTbH превышает 32.
(Условие 3) cIdx равно 0.
(Условие 4) IntraSubPartitionsSplitType равен ISP_NO_SPLIT.
(Условие 5) predModeIntra имеет значение в 0 или значение, большее 1, и minDistVerHor превышает intraHorVerDistThres[nTbS]. Здесь, параметр minDistVerHor имеет значение Min(Abs(predModeIntra-50) и Abs(predModeIntra-18)). Параметр intraHorVerDistThres[nTbS] может определяться согласно следующей таблице, представляющей соответствие между значением intraHorVerDistThres[nTbS] и размером nTbS блока преобразования.
Табл. 4
nTbS=2
nTbS=3
nTbS=4
nTbS=5
nTbS=6
nTbS=7
intraHorVerDistThres[nTbS]
16
14
2
0
0
0
Устройство декодирования может определять то, следует или нет выполнять фильтрацию опорных выборок, согласно значению filterFlag (S1511). Когда значение filterFlag равно 1, опорная выборка может фильтроваться с использованием фильтра [1 2 1]/4 (S1512). Между тем, устройство декодирования может опускать фильтрацию опорных выборок, когда значение filterFlag не равно 1. Помимо этого, устройство декодирования может выводить значение filterFlag на этапе S1520 формирования прогнозных выборок (S1513).
Затем, чтобы выполнять этап S1520 формирования прогнозных выборок, устройство декодирования может принимать значение filterFlag, сформированное на этапе S1510 фильтрации опорных выборок, и задавать значение filterFlag на этапе S1520 формирования прогнозных выборок (S1521). Устройство декодирования может определять то, равно или нет значение filterFlag 1 (S1522). Когда прогнозная выборка формируется с использованием опорной выборки, подвергнутой фильтрации опорных выборок, значение filterFlag может быть равным 1. Когда значение filterFlag равно 1, устройство декодирования определяет то, представляет собой наклон режима внутреннего прогнозирования текущего блока или нет целочисленный наклон (S1523). Устройство декодирования может получать значение predModeIntra, указывающее режим внутреннего прогнозирования текущего блока, и intraPredAngle, которое представляет собой значение, указывающее текущий наклон, с использованием таблицы по фиг. 16, как описано выше. Когда полученное значение intraPredAngle составляет кратное 32, устройство декодирования может определять то, что наклон режима внутреннего прогнозирования текущего блока составляет целое кратное. Когда наклон режима внутреннего прогнозирования текущего блока представляет собой целочисленный наклон, устройство декодирования может формировать прогнозную выборку посредством простого копирования значения опорной выборки в прогнозную выборку (S1524). Когда наклон режима внутреннего прогнозирования текущего блока не представляет собой целочисленный наклон (нецелочисленный наклон), например, когда полученное значение intraPredAngle не составляет кратное 32, устройство декодирования может формировать прогнозную выборку посредством применения линейной интерполяционной выборки к значению опорной выборки аналогично примеру по фиг. 32 (S1524).
Между тем, когда значение filterFlag не равно 1, это указывает то, что опорная выборка не фильтруется. В этом случае, когда значение не равно 1, устройство декодирования может определять то, следует или нет применять интерполяционный фильтр, в зависимости от того, имеет или нет режим внутреннего прогнозирования целочисленный наклон (S1526). Устройство декодирования может применять повышающий резкость фильтр, такой как 4-отводный кубический фильтр, к опорной выборке, чтобы формировать прогнозную выборку (S1528), когда режим внутреннего прогнозирования текущего блока представляет собой режим направленного прогнозирования, имеющий нецелочисленный наклон, и копировать опорную выборку без применения фильтрации прогнозной выборки, чтобы формировать прогнозную выборку (S1527), когда режим внутреннего прогнозирования текущего блока представляет собой режим направленного прогнозирования, имеющий целочисленный наклон.
Четвертый вариант осуществления
В дальнейшем в этом документе описываются фильтрация опорных выборок согласно другому варианту осуществления и способ внутреннего прогнозирования, соответственно. В третьем варианте осуществления, определяются способ формирования прогнозной выборки посредством определения того, следует или нет выполнять фильтрацию опорных выборок, и наклон режима внутреннего прогнозирования текущего блока. Между тем, устройство декодирования согласно варианту осуществления может применять фильтрацию прогнозной выборки на основе того, представляет или нет текущий блок собой блок сигналов яркости, того, следует или нет выполнять фильтрацию опорных выборок, и режима внутреннего прогнозирования текущего блока. Следовательно, устройство декодирования может формировать внутреннюю прогнозную выборку проще, чем в третьем варианте осуществления.
В дальнейшем в этом документе, это описывается со ссылкой на фиг. 31. Этап S1510 фильтрации опорной выборки может выполняться таким же образом, как в варианте осуществления, описанном со ссылкой на фиг. 30. Устройство декодирования может принимать значение filterFlag на этапе S1510 фильтрации опорных выборок и задавать его в качестве значения filterFlag на этапе формирования внутренних прогнозных выборок S1530 (S1531).
Когда режим внутреннего прогнозирования равен или выше 34-ого режима направленного прогнозирования (INTRA_ANGULAR34), устройство декодирования согласно варианту осуществления может извлекать массив ref[x] опорных выборок, как описано выше, и извлекать значения iIdx и iFact согласно следующему уравнению.
уравнение 42
iIdx=(((y+1+refIdx)*intraPredAngle)>>5)+refIdx
уравнение 43
iFact=((y+1+refIdx)*intraPredAngle) and 31
Затем, устройство декодирования может определять фильтр, применяемый к опорной выборке, чтобы извлекать прогнозную выборку в зависимости от того, равен или нет cIdx 0, и того, равен или нет filterFlag 0 (S1532). Устройство декодирования может формировать прогнозную выборку посредством применения повышающего резкость фильтра следующим образом, когда cIdx равен 0, и filterFlag равен 0 (S1533). Например, устройство декодирования может использовать кубический фильтр, который представляет собой один из повышающих резкость фильтров. Устройство декодирования может извлекать коэффициент fT[j] интерполяционной фильтрации, как показано в следующем уравнении. Здесь, j=0-3.
уравнение 44
fT[j]=fC[iFact][j]
Помимо этого, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y], как показано в следующем уравнении.
уравнение 45
predSamples[x][y]=Clip1 (((  +32)>>6)
Между тем, когда режим внутреннего прогнозирования равен или выше 34-ого режима направленного прогнозирования (INTRA_ANGULAR34), но cIdx не равен 0, или filterFlag равен 1, устройство декодирования может формировать прогнозную выборку посредством применения линейного интерполяционного фильтра следующим образом (S1534).
Когда значение iFact не равно 0, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y] согласно следующему уравнению.
уравнение 46
predSamples[x][y]=
((32-iFact)*ref[x+iIdx+1]+iFact*ref[x+iIdx+2]+16)>>5
Посредством вышеприведенного уравнения, для текущего блока, в котором refIdx равен 0, nTbw равен 8, nTbH равен 8, cIdx равен 0, и значение predModeIntra равно 65, значение iFact вычисляется как 29, и значение iIdx вычисляется как 0. В этом случае, пример прогнозного выборочного значения predSamples[0][0], вычисленного согласно вышеприведенному уравнению, показывается на фиг. 32.
Между тем, когда значение iFact равно 0, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y] следующим образом:
уравнение 47
predSamples[x][y]=ref[x+iIdx+1]
Между тем, когда режим внутреннего прогнозирования меньше 34-ого режима направленного прогнозирования (INTRA_ANGULAR34), устройство декодирования согласно варианту осуществления может извлекать массив ref[x] опорных выборок, как описано выше, и может извлекать значения iIdx и iFact согласно следующим уравнениям.
уравнение 48
iIdx=(((x+1+refIdx)*intraPredAngle)>>5)+refIdx
уравнение 49
iFact=((x+1+refIdx)*intraPredAngle) and 31
Затем, когда cIdx равен 0, и refFilterFlag равен 0, устройство декодирования может формировать прогнозную выборку посредством применения кубического фильтра следующим образом. Во-первых, коэффициент fT[j] интерполяционной фильтрации может извлекаться, как показано в следующем уравнении. Здесь, j=0-3.
уравнение 50
fT[j]=fC[iFact][j]
Затем, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y], как показано в следующем уравнении.
уравнение 51
predSamples[x][y]=Clip1 (((  +32)>>6)
Между тем, когда режим внутреннего прогнозирования меньше 34-ого режима направленного прогнозирования (INTRA_ANGULAR34), но cIdx не равен 0, или refFilterFlag равен 1, устройство декодирования согласно варианту осуществления может формировать прогнозную выборку посредством применения линейного интерполяционного фильтра следующим образом.
Когда значение iFact не равно 0, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y] согласно следующему уравнению.
уравнение 52
predSamples[x][y]=
((32-iFact)*ref[y+iIdx+1]+iFact*ref[y+iIdx+2]+16)>>5
Между тем, когда значение iFact равно 0, устройство декодирования может извлекать значение прогнозной выборки predSamples[x][y] следующим образом.
уравнение 53
predSamples[x][y]=ref[y+iIdx+1]
Пятый вариант осуществления
В варианте осуществления, устройство декодирования может определять то, удовлетворяется или нет по меньшей мере одно условие для выполнения фильтрации опорных выборок. Устройство декодирования может сохранять определенный результат в refFilterFlag, который представляет собой параметр, указывающий возможность выполнения фильтрации опорных выборок. После этого, устройство декодирования может передавать в служебных сигналах параметр refFilterFlag на этапе фильтрации опорных выборок и на этапе формирования прогнозных выборок. Следовательно, устройство декодирования может просто использовать значение refFilterFlag, без повторного вычисления условий, определенных для того, чтобы определять значение refFilterFlag на этапе фильтрации опорных выборок и на этапе формирования прогнозных выборок. Следовательно, можно повышать скорость внутреннего прогнозирования устройства декодирования.
В дальнейшем в этом документе, это описывается со ссылкой на фиг. 33. Фиг. 33 является видом, иллюстрирующим другой вариант выполнения внутреннего прогнозирования с использованием фильтрации опорных выборок. Во-первых, устройство декодирования согласно варианту осуществления может выполнять этап S1610 определения того, удовлетворяются или нет некоторые условия для фильтрации опорных выборок, перед этапом S1620 фильтрации опорных выборок и этапом S1630 формирования прогнозных выборок. Устройство декодирования согласно варианту осуществления может определять то, удовлетворяются или нет некоторые условия для фильтрации опорных выборок, на основе значения predModeIntra (S1611).
Например, когда predModeIntra указывает планарный режим или направленный режим, указывающий опорную выборку в целочисленной позиции, устройство декодирования может определять то, что удовлетворяются некоторые условия. В этом случае, устройство декодирования может определять значение refFilterFlag в качестве первого значения (S1612). В этом случае, хотя вертикальный режим и горизонтальный режим представляют собой режимы, указывающие опорную выборку в целочисленной позиции, устройство декодирования может определять то, что первое условие не удовлетворяется. Например, когда значение predModeIntra составляет любое из 0,-14,-12,-10,-6, 2, 34, 66, 72, 76, 78 и 80, поскольку первое условие удовлетворяется, устройство декодирования может определять значение refFilterFlag в качестве первого значения. Например, первое значение может быть равным 1. Помимо этого, когда значение predModeIntra не составляет вышеуказанное значение, устройство декодирования может определять то, что первое условие не удовлетворяется, и определять значение refFilterFlag в качестве второго значения (S1613). Например, второе значение может быть равным 0. Затем, устройство декодирования может выводить определенное значение refFilterFlag (S1614). Устройство декодирования может выводить значение refFilterFlag на этапе S1620 фильтрации опорных выборок и на этапе 1630формирования прогнозных выборок.
Затем, устройство декодирования согласно варианту осуществления может выполнять этап S1620 фильтрации опорных выборок. Устройство декодирования может определять то, следует или нет выполнять фильтрацию опорных выборок, в зависимости от того, удовлетворяются или нет условия для выполнения фильтрации опорных выборок. В варианте осуществления, устройство декодирования может определять то, следует или нет выполнять фильтрацию опорных выборок, согласно значению refFilterFlag и формировать опорную выборку p[x][y] посредством выполнения фильтрации опорных выборок. Здесь, x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx. Устройство декодирования согласно варианту осуществления может принимать следующую информацию кодирования, включающую в себя refFilterFlag, сформированный на этапе S1610 для фильтрации опорных выборок (S1621).
- refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования
- nTbW, который представляет собой параметр, указывающий ширину блока преобразования
- nTbH, который представляет собой параметр, указывающий высоту блока преобразования
- refW, который представляет собой параметр, указывающий ширину опорной выборки
- refH, который представляет собой параметр, указывающий высоту опорной выборки
- refFilterFlag, который представляет собой параметр, указывающий то, следует или нет применять фильтрацию опорных выборок
- нефильтрованная соседняя выборка refUnfilt[x][y], где x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx.
- cIdx, который представляет собой параметр, указывающий цветовой компонент текущего блока
Устройство декодирования согласно варианту осуществления может определять то, следует или нет выполнять фильтрацию опорных выборок, с использованием полученной информации кодирования (S1622). Когда все из следующих условий представляют собой "истина", устройство декодирования согласно варианту осуществления может задавать параметр filterFlag, указывающий то, следует или нет выполнять фильтрацию опорных выборок, равным первому значению (S1623). Например, первое значение может быть равным 1. Помимо этого, когда все из следующих условий представляют собой "истина", устройство декодирования может выполнять фильтрацию опорных выборок. Между тем, когда любое из следующих условий не является истинным, устройство декодирования может задавать параметр filterFlag равным второму значению и может не выполнять фильтрацию опорных выборок (S1624). Например, второе значение может быть равным 0.
(Условие 1) refIdx равно 0.
(Условие 2) nTbW*nTbH превышает 32.
(Условие 3) cIdx равно 0.
(Условие 4) IntraSubPartitionsSplitType равен ISP_NO_SPLIT.
(Условие 5) refFilterFlag равен 1.
Когда значение filterFlag, сформированного на этапе фильтрации опорных выборок, равно 1, устройство декодирования согласно варианту осуществления может извлекать фильтрованное выборочное значение p[x][y] следующим образом. Здесь, x=-1, y=-1 - refH-1 и x=0 - refW-1, y=-1.
уравнение 54
p[-1][-1]=(refUnfilt[-1][0]+2*refUnfilt[-1][-1]+refUnfilt[0][-1]+2>>2
уравнение 55
p[-1][y]=(refUnfilt[-1][y+1]+2*refUnfilt[-1][y]+refUnfilt[-1][y-1]+2)>>2,
где y=0 - refH-2.
уравнение 56
p[-1][refH-1]=refUnfilt[-1][refH-1]
уравнение 57
p[x][-1]=(refUnfilt [x-1][-1]+2*refUnfilt[x][-1]+refUnfilt [x+1][-1]+2)>>2, где x=0 - refW-2.
уравнение 58
p[refW-1][-1]=refUnfilt [refW-1][-1]
Когда значение filterFlag, сформированного на этапе фильтрации опорных выборок, не равно 1, устройство декодирования согласно варианту осуществления может задавать опорное выборочное значение p[x][y] равным нефильтрованному выборочному значению refUnfilt[x][y]. Здесь, x=-1-refIdx, y=-1-refIdx - refH-1 и x=-refIdx - refW-1, y=-1-refIdx.
Затем, устройство декодирования согласно варианту осуществления может выполнять этап S1630 формирования прогнозных выборок. Устройство декодирования может определять фильтр режима внутреннего прогнозирования согласно значению refFilterFlag на этапе S1630 формирования прогнозных выборок. Например, устройство декодирования согласно варианту осуществления может определять фильтр режима внутреннего прогнозирования согласно значению refFilterFlag для режима направленного внутреннего прогнозирования INTRA_ANGULAR2 в INTRA_ANGULAR66 и формировать прогнозную выборку predSamples[x][y] посредством применения фильтра к опорной выборке. Здесь, x=0 - nTbW-1 и y=0 - nTbH-1.
Для вышеуказанного этапа, устройство декодирования согласно варианту осуществления может получать следующую информацию кодирования, включающую в себя refFilterFlag, сформированный на этапе S1610 (S1631).
- predModeIntra, который представляет собой параметр, указывающий режим внутреннего прогнозирования
- refIdx, который представляет собой параметр, указывающий индекс опорной линии внутреннего прогнозирования
- nTbW, который представляет собой параметр, указывающий ширину блока преобразования
- nTbH, который представляет собой параметр, указывающий высоту блока преобразования
- refW, который представляет собой параметр, указывающий ширину опорной выборки
- refH, который представляет собой высоту опорной выборки
- nCbW, который представляет собой параметр, указывающий ширину блока кодирования
- nCbH, который представляет собой параметр, указывающий высоту блока кодирования
- refFilterFlag, который представляет собой параметр, указывающий значение флага опорного фильтра
- cIdx, который представляет собой параметр, указывающий цветовой компонент текущего блока
- соседняя выборка p[x][y], где x=- 1-refIdx, y=- 1-refIdx - refH-1 и x=-refIdx - refW-1, y=- 1-refIdx.
Помимо этого, устройство декодирования согласно варианту осуществления может формировать переменную nTbS наличие значения (Log2 (nTbW)+Log2 (nTbH))>>1.
Устройство декодирования согласно варианту осуществления определяет то, удовлетворяются или нет условия для использования повышающего резкость фильтра (S1632). Например, когда одно или более следующих условий представляют собой "истина", устройство декодирования может определять то, что условия для использования повышающего резкость фильтра удовлетворяются, и задавать значение filterFlag равным первому значению (S1633). Например, первое значение может быть равным 0.
(Условие 1) Значение refFilterFlag равно 1.
(Условие 2) Значение refIdx не равно 0.
(Условие 3) IntraSubPartitionsSplitType не равно ISP_NO_SPLIT.
Между тем, когда все вышеуказанные условия не удовлетворяются, устройство декодирования может задавать filterFlag равным второму значению (S1634). Здесь, второе значение может быть равным 1. Таким образом, устройство декодирования может задавать значение filterFlag равным 1, когда значение refFilterFlag равно 0, и задавать значение filterFlag равным 0, когда значение refFilterFlag равно 1.
Между тем, в варианте осуществления, устройство декодирования может выполнять этапы S1632-S1634 посредством сохранения результата вычисления для 1-refFilterFlag в качестве значения filterFlag.
Между тем, устройство декодирования может определять значение filterFlag посредством дополнительного рассмотрения дополнительных условий, когда не удовлетворяются все из условий 1-3. Например, устройство декодирования может задавать filterFlag равным второму значению, когда minDistVerHor превышает intraHorVerDistThres[nTbS]. Здесь, второе значение может быть равным 1. Между тем, устройство декодирования может задавать filterFlag равным первому значению, когда minDistVerHor меньше или равен intraHorVerDistThres[nTbS]. Здесь, первое значение может быть равным 0. Для этого вычисления, устройство декодирования может задавать параметр minDistVerHor Min(Abs(predModeIntra-50) и Abs(predModeIntra-18)) и задавать параметр intraHorVerDistThres[nTbS] согласно размеру nTbS блока преобразования, как показано в следующей таблице.
Табл. 5
nTbS=2
nTbS=3
nTbS=4
nTbS=5
nTbS=6
nTbS=7
intraHorVerDistThres[nTbS]
24
14
2
0
0
0
Хотя примерные способы настоящего раскрытия сущности, описанного выше, представляются как последовательность операций для ясности описания, это не имеет намерение ограничивать порядок, в котором выполняются этапы, и этапы могут выполняться одновременно или в другом порядке при необходимости. Чтобы реализовывать способ согласно настоящему раскрытию сущности, описанные этапы дополнительно могут включать в себя другие этапы, могут включать в себя оставшиеся этапы, за исключением некоторых этапов, либо могут включать в себя другие дополнительные этапы, за исключением некоторых этапов.
В настоящем раскрытии сущности, устройство кодирования изображений или устройство декодирования изображений, которое выполняет предварительно определенную операцию (этап), может выполнять операцию (этап) подтверждения условия или ситуации выполнения соответствующей операции (этап). Например, если описывается то, что предварительно определенная операция выполняется, когда предварительно определенное условие удовлетворяется, устройство кодирования изображений или устройство декодирования изображений может выполнять предварительно определенную операцию после определения того, удовлетворяется или нет предварительно определенное условие.
Различные варианты осуществления настоящего раскрытия сущности не представляют собой список всех возможных комбинаций и имеют намерение описывать характерные аспекты настоящего раскрытия сущности, и вопросы, описанные в различных вариантах осуществления, могут применяться независимо либо в комбинации двух или более из них.
Различные варианты осуществления настоящего раскрытия сущности могут реализовываться в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. В случае реализации настоящего раскрытия сущности посредством аппаратных средств, настоящее раскрытие сущности может реализовываться с помощью специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), общих процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.
Помимо этого, устройство декодирования изображений и устройство кодирования изображений, к которым применяются варианты осуществления настоящего раскрытия сущности, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, для видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу" (VoD), устройство на основе OTT-видео (видео поверх сетей), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство системы видеотелефонии, медицинское видеоустройство и т.п. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеоустройства могут включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
Фиг. 34 является видом, показывающим систему потоковой передачи контента, к которой является применимым вариант осуществления настоящего раскрытия сущности.
Ссылаясь на фиг. 34, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов, и передает поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
Поток битов может формироваться посредством способа кодирования изображений или устройства кодирования изображений, к которому применяется вариант осуществления настоящего раскрытия сущности, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер может доставлять ее на потоковый сервер, и потоковый сервер может передавать мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.
Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
Операция согласно способу по различным вариантам осуществления, описанным выше, может выполняться на устройстве или компьютере посредством программного обеспечения или инструкций, которые могут выполняться на устройстве (например, посредством операционной системы, приложения, микропрограммного обеспечения, программы и т.д.), выполняемых на устройстве или компьютере, и такое программное обеспечение или инструкции, которые могут выполняться в устройстве, могут записываться на долговременном считываемом компьютером носителе, который может выполняться через устройство или компонент компьютера. Считываемый компьютером носитель записи может включать в себя программные инструкции, файлы данных, структуры данных и т.д. отдельно или в комбинации. Программные инструкции, записанные на считываемом компьютером носителе записи, могут специально проектироваться и конфигурироваться с возможностью реализовывать настоящее раскрытие сущности либо могут быть известными для и использоваться специалистами области техники компьютерного программного обеспечения. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители хранения данных, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память и т.д., которые конкретно конструируются с возможностью сохранять и реализовывать программную инструкцию. Примеры программных инструкций включают в себя не только механический языковой код, форматируемый посредством компилятора, но также и высокоуровневый языковой код, который может реализовываться посредством компьютера с использованием интерпретатора. Аппаратные устройства могут быть выполнены с возможностью работать посредством одного или более программных модулей или наоборот, с тем чтобы проводить процессы согласно настоящему изобретению.
Выше описывается конкретная техническая идея для кодирования и декодирования видео или изображения со ссылкой на ограниченные варианты осуществления и чертежи, но она предоставляется только для того, чтобы помогать в общем понимании, и техническая идея, описанная в настоящем раскрытии сущности, не ограничена вариантами осуществления. Специалисты в области техники, к которой относится техническая идея, описанная в настоящем раскрытии сущности, могут разрабатывать различные модификации и варьирования из этих описаний.
Следовательно, техническая идея, описанная в настоящем раскрытии сущности, не должна быть ограничена вышеописанным вариантом осуществления, и формула изобретения, которая описывается ниже, а также все модификации, эквивалентно или эквивалентные этой формуле изобретения, попадают в пределы объема настоящего раскрытия сущности.
Промышленная применимость
Варианты осуществления настоящего раскрытия сущности могут использоваться для того, чтобы кодировать или декодировать изображение.