СПОСОБ ДЛЯ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ MPM-СПИСКА И ОБОРУДОВАНИЕ ДЛЯ ЭТОГО
METHOD FOR ENCODING AN IMAGE BASED ON INTERNAL PREDICTION USING AN MPM LIST AND EQUIPMENT THEREFOR

Уровень техники
Область техники, к которой относится изобретение
[1] Настоящее раскрытие сущности относится к технологии кодирования изображений, а более конкретно, к способу и оборудованию кодирования изображений на основе внутреннего прогнозирования с использованием списка наиболее вероятных режимов (MPM) в системе кодирования изображений.
Описание уровня техники
[2] В последнее время, спрос на высококачественное изображение/видео высокого разрешения, к примеру, 4K, 8K либо изображения/видео еще более сверхвысокой четкости (UHD), растет в различных областях техники. По мере того, как разрешение или качество изображений/видео становится более высоким, относительно больший объем информации или число битов передается, чем для традиционных данных изображений/видео. Следовательно, если данные изображений/видео передаются через такую среду, как существующая проводная/беспроводная широкополосная линия, либо сохраняются на унаследованном носителе хранения данных, затраты на передачу и хранение серьезно увеличиваются.
[3] Кроме того, растет интерес и спрос в отношении контента виртуальной реальности (VR) и искусственной реальности (AR) и иммерсивного мультимедиа, к примеру, голограммы; а также растет широковещательная передача изображений/видео, демонстрирующих характеристики изображений/видео, отличающиеся от характеристик фактического изображения/видео, к примеру, игровых изображений/видео.
[4] Следовательно, требуется высокоэффективная технология сжатия изображений/видео для того, чтобы эффективно сжимать и передавать, сохранять или воспроизводить высококачественные изображения/видео высокого разрешения, демонстрирующие различные характеристики, как описано выше.
Сущность изобретения
[5] Цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для повышения эффективности кодирования изображений.
[6] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для повышения эффективности внутреннего прогнозирования.
[7] Еще одна другая цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для выполнения кодирования изображений на основе внутреннего прогнозирования с использованием MPM-списка для текущего блока.
[8] Еще одна другая цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для выполнения внутреннего прогнозирования на основе MPM-списка на основе информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима.
[9] Еще одна другая цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для конфигурирования MPM-списка для текущего блока.
[10] Дополнительная цель настоящего раскрытия сущности заключается в том, чтобы предоставить способ и оборудование для кодирования MPM-индекса.
[11] Примерный вариант осуществления настоящего раскрытия сущности предоставляет способ декодирования изображений, осуществляемый посредством оборудования декодирования. Способ декодирования изображений включает в себя прием информации внутреннего прогнозирования, включающей в себя, по меньшей мере, одно из информации флага наиболее вероятного режима (MPM), представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных MPM-вариантов для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, извлечение режима внутреннего прогнозирования для текущего блока на основе информации MPM-флага и информации планарного флага, извлечение прогнозированного блока для текущего блока на основе режима внутреннего прогнозирования для текущего блока и формирование восстановленного кадра на основе прогнозированного блока, и на основе информации MPM-флага, представляющей то, что режим внутреннего прогнозирования для текущего блока извлекается на основе возможных MPM-вариантов, информация планарного флага включается в информацию внутреннего прогнозирования.
[12] В примерном варианте осуществления, извлечение режима внутреннего прогнозирования для текущего блока может включать в себя извлечение режима внутреннего прогнозирования для текущего блока в качестве планарного режима, на основе информации планарного флага, представляющей то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[13] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. На основе информации планарного флага, представляющей то, что режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима, информация MPM-индекса может включаться в информацию внутреннего прогнозирования. Режим внутреннего прогнозирования для текущего блока может извлекаться на основе информации MPM-индекса.
[14] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[15] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[16] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[17] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[18] В примерном варианте осуществления, cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[19] Другой примерный вариант осуществления настоящего раскрытия сущности предоставляет оборудование декодирования, которое выполняет декодирование изображений. Оборудование декодирования включает в себя энтропийный декодер, который принимает информацию внутреннего прогнозирования, включающую в себя, по меньшей мере, одно из информации флага наиболее вероятного режима (MPM), представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, модуль прогнозирования, который извлекает режим внутреннего прогнозирования для текущего блока на основе информации MPM-флага и информации планарного флага и извлекает прогнозированный блок для текущего блока на основе режима внутреннего прогнозирования для текущего блока, и сумматор, который формирует восстановленный кадр на основе прогнозированного блока, и на основе информации MPM-флага, представляющей то, что режим внутреннего прогнозирования для текущего блока извлекается на основе возможных MPM-вариантов, информация планарного флага включается в информацию внутреннего прогнозирования.
[20] В примерном варианте осуществления, модуль прогнозирования может извлекать режим внутреннего прогнозирования для текущего блока в качестве планарного режима, на основе информации планарного флага, представляющей то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[21] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. На основе информации планарного флага, представляющей то, что режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима, информация MPM-индекса может включаться в информацию внутреннего прогнозирования, и режим внутреннего прогнозирования для текущего блока может извлекаться на основе информации MPM-индекса.
[22] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[23] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[24] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования MPM, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[25] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[26] В примерном варианте осуществления, cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[27] Еще один другой примерный вариант осуществления настоящего раскрытия сущности предоставляет способ кодирования, осуществляемый посредством оборудования кодирования. Способ кодирования изображений включает в себя извлечение режима внутреннего прогнозирования для текущего блока, формирование информации флага наиболее вероятного режима (MPM), представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, формирование информации планарного флага, на основе MPM, представляющего то, что информация MPM-флага связана с информацией планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, и кодирование информации изображений, включающей в себя, по меньшей мере, одно из информации MPM-флага или информации планарного флага.
[28] В примерном варианте осуществления, на основе случая, в котором режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима, информация планарного флага может представлять то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[29] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. Способ кодирования изображений дополнительно может включать в себя формирование информации MPM-индекса, на основе случая, в котором режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима.
[30] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[31] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[32] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[33] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[34] В примерном варианте осуществления, cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[35] Еще один другой примерный вариант осуществления настоящего раскрытия сущности предоставляет оборудование кодирования, которое выполняет кодирование изображений. Оборудование кодирования включает в себя модуль прогнозирования, который извлекает режим внутреннего прогнозирования для текущего блока, и энтропийный кодер, который формирует информацию флага наиболее вероятного режима (MPM), представляющую то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, формирует информацию планарного флага, на основе MPM, представляющего то, что информация MPM-флага связана с информацией планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, и кодирует информацию MPM-флага, включающую в себя, по меньшей мере, одно из информации изображений или информации планарного флага.
[36] В примерном варианте осуществления, на основе случая, в котором режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима, информация планарного флага может представлять то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[37] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. Оборудование кодирования может формировать информацию MPM-индекса, на основе случая, в котором режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима.
[38] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[39] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[40] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[41] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR), и cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[42] Еще один другой примерный вариант осуществления настоящего раскрытия сущности предоставляет декодерочитемый носитель хранения данных, который сохраняет информацию относительно инструкций, которые инструктируют оборудованию декодирования видео осуществлять способы декодирования согласно некоторым примерным вариантам осуществления.
[43] Дополнительный примерный вариант осуществления настоящего раскрытия сущности предоставляет машиночитаемый носитель хранения данных, включающий в себя кодированную информацию, которая инструктирует оборудованию декодирования осуществлять способ декодирования изображений. Способ декодирования изображений включает в себя прием информации внутреннего прогнозирования, включающей в себя, по меньшей мере, одно из информации флага наиболее вероятного режима (MPM), представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, извлечение режима внутреннего прогнозирования для текущего блока на основе информации MPM-флага и информации планарного флага, извлечение прогнозированного блока для текущего блока на основе режима внутреннего прогнозирования для текущего блока и формирование восстановленного кадра на основе прогнозированного блока, и на основе информации MPM-флага, представляющей то, что режим внутреннего прогнозирования для текущего блока извлекается на основе возможных MPM-вариантов, информация планарного флага включается в информацию внутреннего прогнозирования.
[44] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. На основе информации планарного флага, представляющей то, что режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима, информация MPM-индекса может включаться в информацию внутреннего прогнозирования, и режим внутреннего прогнозирования для текущего блока может извлекаться на основе информации MPM-индекса.
[45] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[46] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[47] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[48] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[49] В примерном варианте осуществления, cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[50] Согласно настоящему раскрытию сущности, можно повышать полную эффективность сжатия изображений/видео.
[51] Согласно настоящему раскрытию сущности, можно повышать эффективность внутреннего прогнозирования.
[52] Согласно настоящему раскрытию сущности, можно эффективно выполнять внутреннее прогнозирование на основе MPM-списка.
[53] Согласно настоящему раскрытию сущности, можно повышать эффективность кодирования изображений на основе внутреннего прогнозирования с использованием MPM-списка для текущего блока.
[54] Согласно настоящему раскрытию сущности, можно повышать эффективность внутреннего прогнозирования на основе MPM-списка на основе информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима.
[55] Согласно настоящему раскрытию сущности, можно эффективно конфигурировать MPM-список для текущего блока.
[56] Согласно настоящему раскрытию сущности, можно эффективно кодировать MPM-индекс.
Краткое описание чертежей
[57] Фиг. 1 схематично представляет пример системы кодирования видео/изображений, к которой может применяться настоящее раскрытие сущности.
[58] Фиг. 2 является схемой, схематично иллюстрирующей конфигурацию оборудования кодирования видео/изображений, к которому может применяться настоящее раскрытие сущности.
[59] Фиг. 3 является схемой, схематично иллюстрирующей конфигурацию оборудования декодирования видео/изображений, к которому может применяться настоящее раскрытие сущности.
[60] Фиг. 4A и 4B являются схемами, иллюстрирующими пример способа кодирования изображений, осуществляемого посредством оборудования кодирования согласно примерному варианту осуществления, и пример способа декодирования изображений, осуществляемого посредством оборудования декодирования согласно примерному варианту осуществления.
[61] Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей способ внутреннего прогнозирования согласно примерному варианту осуществления.
[62] Фиг. 6 является схемой, иллюстрирующей пример режимов направленного внутреннего прогнозирования.
[63] Фиг. 7 является схемой для пояснения конфигурации MPM-списка согласно примерному варианту осуществления.
[64] Фиг. 8 является схемой для пояснения конфигурации MPM-списка согласно другому примерному варианту осуществления.
[65] Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей способ MPM-прогнозирования согласно примерному варианту осуществления.
[66] Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей способ MPM-прогнозирования согласно другому примерному варианту осуществления.
[67] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей работу оборудования кодирования согласно примерному варианту осуществления.
[68] Фиг. 12 является блок-схемой, иллюстрирующей конфигурацию оборудования кодирования согласно примерному варианту осуществления.
[69] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей работу оборудования декодирования согласно примерному варианту осуществления.
[70] Фиг. 14 является блок-схемой, иллюстрирующей конфигурацию оборудования декодирования согласно примерному варианту осуществления.
[71] Фиг. 15 является схемой, иллюстрирующей пример системы потоковой передачи контента, к которой может применяться раскрытие сущности настоящего документа.
Подробное описание примерных вариантов осуществления
[72] Хотя настоящее раскрытие сущности может подвергаться различным модификациям и включает в себя различные варианты осуществления, его конкретные варианты осуществления показаны на чертежах в качестве примера и подробно описываются ниже. Тем не менее, это не имеет намерение ограничивать настоящее раскрытие сущности конкретными вариантами осуществления, раскрытыми в данном документе. Термины, используемые в данном документе, служат только для цели описания конкретных вариантов осуществления и не используются с намерением ограничивать техническую идею настоящего раскрытия сущности. Формы единственного числа могут включать в себя формы множественного числа, если контекст явно не указывает иное. Такие термины, как "содержать", "включать в себя" и т.п., предназначены для того, чтобы указывать то, что признаки, числа, этапы, операции, элементы, компоненты либо комбинации вышеозначенного, приведенные в нижеприведенном описании, существуют, и в силу этого не следует понимать, что заранее исключается возможность наличия или добавления одного или более других признаков, чисел, этапов, операций, элементов, компонентов либо комбинаций вышеозначенного.
[73] Между тем, соответствующие конфигурации на чертежах, описанных в настоящем раскрытии сущности, независимо описываются для удобства описания в отношении характеристическим функций, отличающихся друг от друга, но не означают то, что конфигурации осуществляются посредством отдельных аппаратных средств или программного обеспечения. Например, две или более конфигураций могут комбинироваться, чтобы формировать одну конфигурацию, и одна конфигурация может разделяться на несколько конфигурации. Вариант осуществления, имеющий каждый компонент, сформированный посредством интеграции и/или разделения, должен попадать в пределы объема патентного права настоящего раскрытия сущности при условии, что он не отступает от сущности настоящего раскрытия сущности.
[74] В дальнейшем в этом документе, подробнее поясняются предпочтительные варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи. В дальнейшем в этом документе, идентичные ссылки с номерами используются для идентичных компонентов на чертежах, и повторные описания для идентичных компонентов могут опускаться.
[75] Фиг. 1 иллюстрирует пример системы кодирования видео/изображений, к которой может применяться настоящее раскрытие сущности.
[76] Ссылаясь на фиг. 1, система кодирования видео/изображений может включать в себя первое оборудование (исходное устройство) и второе оборудование (приемное устройство). Исходное устройство может передавать кодированную информацию или данные видео/изображений в приемное устройство через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи.
[77] Исходное устройство может включать в себя видеоисточник, оборудование кодирования и передатчик. Приемное устройство может включать в себя приемник, оборудование декодирования и модуль рендеринга. Оборудование кодирования может называться "оборудованием кодирования видео/изображений", и оборудование декодирования может называться "оборудованием декодирования видео/изображений". Передатчик может включаться в оборудование кодирования. Приемник может включаться в оборудование декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[78] Видеоисточник может получать видео/изображение посредством процесса для захвата, синтезирования или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса для формирования связанных данных.
[79] Оборудование кодирования может кодировать входное видео/изображение. Оборудование кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/изображений) могут выводиться в форме потока битов.
[80] Передатчик может передавать информацию или данные кодированных изображений/изображений, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную передачу/сеть связи. Приемник может принимать/извлекать поток битов и передавать принимаемый поток битов в оборудование декодирования.
[81] Оборудование декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе оборудования кодирования.
[82] Модуль рендеринга может выполнять рендеринг декодированного видео/изображения. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[83] Фиг. 2 иллюстрирует структуру оборудования кодирования видео/изображений, к которому может применяться настоящее раскрытие сущности. В дальнейшем, оборудование кодирования видео может включать в себя оборудование кодирования изображений.
[84] Ссылаясь на фиг. 2, оборудование 200 кодирования включает в себя модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230 и энтропийный кодер 240, сумматор 250, фильтр 260 и запоминающее устройство 270. Модуль 220 прогнозирования может включать в себя модуль 221 взаимного прогнозирования и модуль 222 внутреннего прогнозирования. Остаточный процессор 230 может включать в себя преобразователь 232, квантователь 233, деквантователь 234 и обратный преобразователь 235. Остаточный процессор 230 дополнительно может включать в себя вычитатель 231. Сумматор 250 может называться "модулем переконфигурирования" или "формирователем восстановленных блоков". Модуль 210 сегментации изображений, модуль 220 прогнозирования, остаточный процессор 230, энтропийный кодер 240, сумматор 250 и фильтр 260 могут быть сконфигурированы, по меньшей мере, посредством одного аппаратного компонента (например, набора микросхем или процессора кодера) согласно примерному варианту осуществления. Помимо этого, запоминающее устройство 270 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 270 в качестве внутреннего/внешнего компонента.
[85] Модуль 210 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 200 кодирования, на один более блоков обработки. Например, блок обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно сегментироваться согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QTBTTT) из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристикам изображений, или при необходимости, единица кодирования может рекурсивно сегментироваться на единицы кодирования большей глубины, и единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, блок обработки дополнительно может включать в себя предиктор (PU) или единицу преобразования (TU). В этом случае, предиктор и единица преобразования могут разбиваться или сегментироваться из вышеуказанной конечной единицы кодирования. Предиктор может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[86] Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может представлять набор выборок или коэффициентов преобразования, состоящих из M столбцов и N строк. Выборка, в общем, может представлять пиксел или значение пиксела, может представлять только пиксел/пиксельное значение компонента сигнала яркости либо представлять только пиксел/пиксельное значение компонента сигнала цветности. Выборка может использоваться в качестве термина, соответствующего одному кадру (или изображению) для пиксела или пела.
[87] В оборудовании 200 кодирования, прогнозный сигнал (прогнозированный блок, массив прогнозных выборок), выводимый из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, вычитается из сигнала входного изображения (исходного блока, массива исходных выборок), чтобы формировать остаточный сигнал (остаточный блок, массив остаточных выборок), и сформированный остаточный сигнал передается в преобразователь 232. В этом случае, как показано, модуль для вычитания прогнозного сигнала (прогнозированного блока, массива прогнозных выборок) из сигнала входного изображения (исходного блока, массива исходных выборок) в кодере 200 может называться "вычитателем 231". Модуль прогнозирования может выполнять прогнозирование для блока, который должен обрабатываться (в дальнейшем в этом документе, называемого "текущим блоком"), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Как описано ниже в описании каждого режима прогнозирования, модуль прогнозирования может формировать различную информацию, связанную с прогнозированием, к примеру, информацию режима прогнозирования, и передавать сформированную информацию в энтропийный кодер 240. Информация относительно прогнозирования может кодироваться в энтропийном кодере 240 и выводиться в форме потока битов.
[88] Модуль 222 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены независимо согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 222 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[89] Модуль 221 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. Здесь, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем изображении, и временной соседний блок, присутствующий в опорном изображении. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п., и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 221 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 221 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В режиме пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может указываться посредством передачи в служебных сигналах разности векторов движения.
[90] Модуль 220 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять как внутренние прогнозирование, так и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[91] Прогнозный сигнал, сформированный посредством модуля прогнозирования (включающего в себя модуль 221 взаимного прогнозирования и/или модуль 222 внутреннего прогнозирования), может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Преобразователь 232 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, сформированное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не к квадратным.
[92] Квантователь 233 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 240, и энтропийный кодер 240 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 233 может перекомпоновывать блочные квантованные коэффициенты преобразования в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме. Информация относительно коэффициентов преобразования может формироваться. Энтропийный кодер 240 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 240 может кодировать информацию, необходимую для видео/восстановления изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений), может передаваться или сохраняться в единицах NAL (слоя абстрагирования от сети) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. В этом документе, информация и/или синтаксические элементы, передаваемые/передаваемые в служебных сигналах из оборудования кодирования в оборудование декодирования, могут включаться в информацию видео/кадров. Информация видео/изображений может кодироваться через вышеописанную процедуру кодирования и включаться в поток битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 240, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 200 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 240.
[93] Квантованные коэффициенты преобразования, выводимые из квантователя 233, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 234 и обратный преобразователь 235. Сумматор 250 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 221 взаимного прогнозирования или модуля 222 внутреннего прогнозирования, чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 250 может называться "модулем переконфигурирования" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[94] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться во время кодирования и/или восстановления кадров.
[95] Фильтр 260 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 260 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 270, а именно, в DPB запоминающего устройства 270. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 260 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 240, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 240 и выводиться в форме потока битов.
[96] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 270, может использоваться в качестве опорного кадра в модуле 221 взаимного прогнозирования. Когда взаимное прогнозирование применяется посредством оборудования кодирования, рассогласование прогнозирования между оборудованием 200 кодирования и оборудованием декодирования может исключаться, и эффективность кодирования может повышаться.
[97] DPB запоминающего устройства 270 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 221 взаимного прогнозирования. Запоминающее устройство 270 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 221 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 270 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 222 внутреннего прогнозирования.
[98] Фиг. 3 иллюстрирует структуру оборудования декодирования видео/изображений, к которому может применяться настоящее раскрытие сущности.
[99] Ссылаясь на фиг. 3, оборудование 300 декодирования может включать в себя энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340, фильтр 350, запоминающее устройство 360. Модуль 330 прогнозирования может включать в себя модуль 331 взаимного прогнозирования и модуль 332 внутреннего прогнозирования. Остаточный процессор 320 может включать в себя деквантователь 321 и обратный преобразователь 321. Энтропийный декодер 310, остаточный процессор 320, модуль 330 прогнозирования, сумматор 340 и фильтр 350 могут быть сконфигурированы посредством аппаратного компонента (например, набора микросхем или процессора декодера) согласно примерному варианту осуществления. Помимо этого, запоминающее устройство 360 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных. Аппаратный компонент дополнительно может включать в себя запоминающее устройство 360 в качестве внутреннего/внешнего компонента.
[100] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 300 декодирования может переконфигурировать изображение, соответствующее процессу, в котором информация видео/изображений обрабатывается в оборудовании кодирования по фиг. 2. Например, оборудование 300 декодирования может извлекать единицы/блоки на основе связанной с сегментацией на блоки информации, полученной из потока битов. Оборудование 300 декодирования может выполнять декодирование с использованием блока обработки, применяемого в оборудовании кодирования. Таким образом, блок обработки декодирования, например, может представлять собой единицу кодирования, и единица кодирования может сегментироваться согласно структуре в виде дерева квадрантов, структуре в виде двоичного дерева и/или структуре в виде троичного дерева из единицы дерева кодирования или наибольшей единицы кодирования. Одна или более единиц преобразования могут извлекаться из единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 300 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[101] Оборудование 300 декодирования может принимать сигнал, выводимый из оборудования кодирования по фиг. 2 в форме потока битов, и принимаемый сигнал может декодироваться через энтропийный декодер 310. Например, энтропийный декодер 310 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные далее в этом документе, могут декодироваться, может декодировать процедуру декодирования и получаться из потока битов. Например, энтропийный декодер 310 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования целевого блока декодирования или информации символа/элемента разрешения, декодированного в предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием, из информации, декодированной посредством энтропийного декодера 310, может предоставляться в модуль прогнозирования (модуль 332 взаимного прогнозирования и модуль 331 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 310, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в остаточный процессор 320. Остаточный процессор 320 может извлекать остаточный сигнал (остаточный блок, остаточные выборки, массив остаточных выборок). Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 310, может предоставляться в фильтр 350. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования кодирования, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента оборудования 300 декодирования, либо приемник может представлять собой компонент энтропийного декодера 310. Между тем, оборудование декодирования согласно этому документу может называться "оборудованием декодирования видео/изображений/кадров", и оборудование декодирования может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 310, и выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 321, обратного преобразователя 322, сумматора 340, фильтра 350, запоминающего устройства 360, модуля 332 взаимного прогнозирования и модуля 331 внутреннего прогнозирования.
[102] Деквантователь 321 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 321 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерной блочной формы. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования. Деквантователь 321 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[103] Обратный преобразователь 322 обратно преобразует коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[104] Модуль 230 прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 310, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[105] Модуль 320 прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование для того, чтобы прогнозировать один блок, но также и одновременно применять внутреннее прогнозирование и взаимное прогнозирование. Это может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может быть основан на режиме прогнозирования на основе внутриблочного копирования (IBC) либо на палитровом режиме для прогнозирования блока. Режим IBC-прогнозирования или палитровый режим может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию, в котором опорный блок извлекается в текущем кадре. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Палитровый режим может рассматриваться как пример внутреннего кодирования или внутреннего прогнозирования. Когда палитровый режим применяется, выборочное значение в кадре может передаваться в служебных сигналах на основе информации относительно таблицы палитр и индекса палитры.
[106] Модуль 331 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены независимо согласно режиму прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 331 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[107] Модуль 332 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем изображении, и временной соседний блок, присутствующий в опорном изображении. Например, модуль 332 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[108] Сумматор 340 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 332 взаимного прогнозирования и/или модуль 331 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока.
[109] Сумматор 340 может называться "модулем переконфигурирования" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, может выводиться посредством фильтрации, как описано ниже, или может использоваться для взаимного прогнозирования следующего кадра.
[110] Между тем, преобразование сигнала яркости с масштабированием сигнала цветности (LMCS) может применяться в процессе декодирования кадров.
[111] Фильтр 350 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 350 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 360, а именно, в DPB запоминающего устройства 360. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[112] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 360, может использоваться в качестве опорного кадра в модуле 332 взаимного прогнозирования. Запоминающее устройство 360 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 360 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 331 внутреннего прогнозирования.
[113] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 260, модуле 221 взаимного прогнозирования и модуле 222 внутреннего прогнозирования оборудования 200 кодирования, могут быть идентичными или надлежащим образом применяться, так что они соответствуют фильтру 350, модулю 332 взаимного прогнозирования и модулю 331 внутреннего прогнозирования оборудования 300 декодирования. То же также может применяться к модулю 332 и модулю 331 внутреннего прогнозирования.
[114] Как описано выше, при выполнении кодирования видео, прогнозирование выполняется для того, чтобы повышать эффективность сжатия. Соответственно, может формироваться прогнозированный блок, включающий в себя прогнозные выборки для текущего блока, который представляет собой блок, который должен кодироваться. Здесь, прогнозированный блок включает в себя прогнозные выборки в пространственной области (или пиксельной области). Прогнозированный блок извлекается одинаково из оборудования кодирования и оборудования декодирования, и оборудование кодирования может передавать в служебных сигналах информацию относительно остатка (остаточную информацию) между исходным блоком и прогнозированным блоком, а не исходное выборочное значение самого исходного блока в оборудование декодирования, за счет этого повышая эффективность кодирования изображений. Оборудование декодирования может извлекать остаточный блок, включающий в себя остаточные выборки на основе остаточной информации, формировать восстановленный блок, включающий в себя восстановленные выборки, посредством комбинирования остаточного блока с прогнозированным блоком и формировать восстановленный кадр, включающий в себя восстановленные блоки.
[115] Остаточная информация может формироваться через процедуру преобразования и квантования. Например, оборудование кодирования может передавать в служебных сигналах связанную остаточную информацию (через поток битов) в оборудование декодирования посредством извлечения остаточного блока между исходным блоком и прогнозированным блоком, извлечения коэффициентов преобразования посредством выполнения процедуры преобразования для остаточных выборок (массива остаточных выборок), включенных в остаточный блок, и извлечения квантованных коэффициентов преобразования, посредством выполнения процедуры квантования для коэффициентов преобразования. Здесь, остаточная информация может включать в себя такую информацию, как информация значений, информация местоположения, технология преобразования, ядро преобразования и параметры квантования, для квантованных коэффициентов преобразования. Оборудование декодирования может выполнять процедуру деквантования/обратного преобразования на основе остаточной информации и извлекать остаточные выборки (или остаточные блоки). Оборудование декодирования может формировать восстановленное изображение на основе прогнозированного блока и остаточного блока. Оборудование кодирования также может извлекать остаточный бок посредством деквантования/обратного преобразования квантованных коэффициентов преобразования для ссылки для взаимного прогнозирования следующего кадра и формировать восстановленный кадр на основе извлеченного остаточного блока.
[116] Фиг. 4A и 4B являются схемами, иллюстрирующими пример способа кодирования изображений, осуществляемого посредством оборудования кодирования согласно примерному варианту осуществления, и пример способа декодирования изображений, осуществляемого посредством оборудования декодирования согласно примерному варианту осуществления.
[117] Фиг. 4A иллюстрирует пример способа кодирования изображений, осуществляемого посредством оборудования кодирования видео. Ссылаясь на фиг 4A, способ кодирования изображений может включать в себя процессы сегментации на блоки, внутреннего/взаимного прогнозирования, преобразования, квантования и энтропийного кодирования. Например, текущий кадр может разбиваться на множество блоков, прогнозированный блок по отношению к текущему блоку может формироваться через внутреннее/взаимное прогнозирование, и остаточный блок по отношению к текущему блоку может формироваться посредством вычитания прогнозированного блока из входного блока по отношению к текущему блоку. После этого, блок коэффициентов текущего блока, т.е. коэффициенты преобразования, может формироваться через преобразование для остаточного блока. Коэффициенты преобразования могут квантоваться и энтропийно кодироваться и сохраняться в потоке битов.
[118] Фиг. 4B иллюстрирует пример способа декодирования изображений, осуществляемого посредством оборудования декодирования. Ссылаясь на фиг 4B, способ декодирования изображений может включать в себя процессы энтропийного декодирования, деквантования, обратного преобразования и внутреннего/взаимного прогнозирования. Например, оборудование декодирования может выполнять обратный процесс для способа кодирования. В частности, квантованные коэффициенты преобразования могут получаться посредством энтропийного декодирования для потока битов, и блок коэффициентов текущего блока, т.е. коэффициенты преобразования, может получаться через процесс деквантования для квантованных коэффициентов преобразования. Остаточный блок по отношению к текущему блоку может извлекаться через обратное преобразование для коэффициентов преобразования, и восстановленный блок по отношению к текущему блоку может извлекаться посредством суммирования прогнозированного блока по отношению к текущему блоку, извлекаемого через внутреннее/взаимное прогнозирование, и остаточного блока.
[119] Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей способ внутреннего прогнозирования согласно примерному варианту осуществления.
[120] Как проиллюстрировано на фиг. 5, способ внутреннего прогнозирования согласно примерному варианту осуществления может включать в себя следующие три этапа. Таким образом, способ внутреннего прогнозирования согласно примерному варианту осуществления может включать в себя конфигурирование опорной выборки, прогнозирование выборки и выполнение постфильтрации. При прогнозировании выборки, способ внутреннего прогнозирования согласно примерному варианту осуществления может использовать известные соседние опорные выборки и режим внутреннего прогнозирования для того, чтобы выполнять прогнозирование для неизвестных выборок.
[121] Фиг. 6 является схемой, иллюстрирующей пример режимов направленного внутреннего прогнозирования.
[122] Когда внутреннее прогнозирование применяется к текущему блоку, оборудование кодирования и/или оборудование декодирования согласно примерному варианту осуществления могут извлекать режим внутреннего прогнозирования для текущего блока и извлекать прогнозные выборки для текущего блока на основе режима внутреннего прогнозирования. Таким образом, оборудование кодирования и/или оборудование декодирования могут извлекать прогнозные выборки для текущего блока посредством применения режима направленного внутреннего прогнозирования или режима ненаправленного внутреннего прогнозирования на основе соседних опорных выборок текущего блока.
[123] В примере, режимы внутреннего прогнозирования могут включать в себя два ненаправленных (или неугловых) режима внутреннего прогнозирования и 65 направленных (или угловых) режимов внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя нулевой режим планарного внутреннего прогнозирования и первый режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя 65 режимов внутреннего прогнозирования, включающих в себя второй - 66-ой режимы внутреннего прогнозирования. Внутреннее прогнозирование на основе 65 режимов направленного внутреннего прогнозирования может применяться к блокам всех размеров и может применяться ко всему из компонента сигнала яркости и компонента сигнала цветности. Тем не менее, это является только иллюстративным, и конфигурации режимов внутреннего прогнозирования могут отличаться.
[124] Альтернативно, режим внутреннего прогнозирования может включать в себя два режима ненаправленного внутреннего прогнозирования и 129 режимов направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного внутреннего прогнозирования и режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 130-ый режимы внутреннего прогнозирования.
[125] Между тем, режим внутреннего прогнозирования дополнительно может включать в себя режим на основе кросскомпонентной линейной модели (CCLM) для выборки сигнала цветности в дополнение к вышеуказанным режимам внутреннего прогнозирования. CCLM-режим может классифицироваться на LT_CCLM, L_CCLM и T_CCLM в зависимости от того, следует рассматривать левые выборки, рассматривать верхние выборки или рассматривать обе из них для извлечения LM-параметров, и может применяться только к компоненту сигнала цветности.
[126] Режим внутреннего прогнозирования может индексироваться, например, так, как выражается в нижеприведенной таблице 1.
[127] Табл. 1
[128] Между тем, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования и т.п.) может включать в себя, по меньшей мере, одно из вышеуказанных LIP, PDPC, MRL и ISP. Тип внутреннего прогнозирования может указываться на основе информации типа внутреннего прогнозирования, и информация типа внутреннего прогнозирования может реализовываться в различных формах. В примере, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В другом примере, информация типа внутреннего прогнозирования может включать в себя, по меньшей мере, одно из информации линии опорных выборок (например, intra_luma_ref_idx), представляющей то, применяется или нет MRL к текущему блоку, и если применяется, то, какая линия опорных выборок используется, информации ISP-флага (например, intra_subpartitions_mode_flag), представляющей то, применяется или нет ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag), указывающей то, что субсегменты указывают тип разбиения, если ISP применяется, информации флага, представляющей то, применяется или нет PDPC, и информации флага, представляющей то, применяется или нет LIP.
[129] Ссылаясь на фиг 6, режим внутреннего прогнозирования, который имеет горизонтальную направленность, и режим внутреннего прогнозирования, который имеет вертикальную направленность, могут отличаться друг от друга на основе 34-ого режима внутреннего прогнозирования, который имеет направление прогнозирования влево вверх по диагонали. H и V на фиг. 6 означают горизонтальную направленность и вертикальную направленность, соответственно, и числа от -32 до 32 представляют смещения в единицах 1/32 для позиции сетки выборок. Вторые - 33-ий режимы внутреннего прогнозирования имеют горизонтальную направленность, и 34-ый - 66-ой режимы внутреннего прогнозирования имеют вертикальную направленность. 18-ый режим внутреннего прогнозирования и 50-ый режим внутреннего прогнозирования представляют режим горизонтального внутреннего прогнозирования и режим вертикального внутреннего прогнозирования, соответственно, и второй режим внутреннего прогнозирования может называться "режимом внутреннего прогнозирования влево вниз по диагонали", 34-ый режим внутреннего прогнозирования может называться "режимом внутреннего прогнозирования влево вверх по диагонали", и 66-ой режим внутреннего прогнозирования может называться "режимом внутреннего прогнозирования вправо вверх по диагонали".
[130] Обычно, когда блок для изображения разбивается, текущий блок, который должен кодироваться, и соседние блоки имеют аналогичные характеристики изображений. Соответственно, имеется высокая вероятность того, что текущий блок и соседние блоки имеют идентичные или аналогичные режимы внутреннего прогнозирования. Соответственно, кодер может использовать режим внутреннего прогнозирования соседнего блока, чтобы кодировать режим внутреннего прогнозирования текущего блока.
[131] В более конкретном примере, оборудование декодирования может извлекать список наиболее вероятных режимов (MPM) на основе режима внутреннего прогнозирования и дополнительных возможных вариантов режимов соседнего блока (например, левого соседнего блока и/или верхнего соседнего блока) по отношению к текущему блоку, выбирать один из возможных MPM-вариантов в извлеченном MPM-списке на основе принимаемого MPM-индекса или выбирать один из оставшихся режимов внутреннего прогнозирования, не включенных в возможные MPM-варианты, на основе оставшейся информации режима внутреннего прогнозирования. MPM-список также может представляться как список возможных вариантов режимов внутреннего прогнозирования и также может представляться как candModeList.
[132] Оборудование кодирования (или кодер) может подтверждать или извлекать режим прогнозирования соседнего блока, если соседний блок внутренне кодируется. Например, режим прогнозирования текущего блока может определяться на основе режима прогнозирования левого соседнего блока и режима прогнозирования верхнего соседнего блока, и в это время, режим прогнозирования соответствующего соседнего блока может определяться в качестве наиболее вероятного режима (MPM). Определение MPM также может выражаться как перечень возможных вариантов наиболее вероятных режимов (MPM) (или MPM-список).
[133] Оборудование кодирования может подтверждать то, являются или нет идентичными режим прогнозирования левого соседнего блока и режим прогнозирования верхнего соседнего блока. Начальный MPM-список может формироваться посредством выполнения процесса отсечения для режимов внутреннего прогнозирования двух смежных блоков.
[134] Если режим прогнозирования левого соседнего блока и режим прогнозирования верхнего соседнего блока не являются идентичными, первый MPM может задаваться в качестве режима прогнозирования левого соседнего блока, второй MPM может задаваться в качестве режима прогнозирования верхнего соседнего блока, и третий MPM может задаваться в качестве любого из внутреннего планарного режима, внутреннего DC-режима или внутреннего вертикального режима (50-ого режима внутреннего прогнозирования). В частности, когда режимы внутреннего прогнозирования двух соседних блоков отличаются друг от друга, два режима внутреннего прогнозирования могут задаваться в качестве MPM, и после проверки отсечения посредством MPM, один из внутренних режимов по умолчанию может добавляться в MPM-список. Здесь, внутренние режимы по умолчанию могут включать в себя внутренний планарный режим, внутренний DC-режим и/или внутренний вертикальный режим (50-ый режим внутреннего прогнозирования).
[135] В примере, MPM-список может включать в себя 3 возможных MPM-варианта, 5 возможных вариантов или 6 возможных MPM-вариантов. Например, MPM-список может включать в себя возможные варианты, которые извлекаются на основе режима внутреннего прогнозирования соседнего блока, извлеченного режима внутреннего прогнозирования и/или режима внутреннего прогнозирования по умолчанию. Оборудование кодирования/оборудование декодирования может выполнять поиск соседних блоков текущего блока согласно конкретному порядку и извлекать режим внутреннего прогнозирования соседних блоков в качестве возможных MPM-вариантов в извлеченном порядке. Например, соседние блоки могут включать в себя левый соседний блок, верхний соседний блок, нижний левый соседний блок, верхний правый соседний блок и верхний левый соседний блок.
[136] В примере, MPM-список, включающий в себя три возможных MPM-варианта, может быть сконфигурирован, и три возможных MPM-варианта могут извлекаться на основе режимов внутреннего прогнозирования соседнего блока (F) и соседнего блока (G). Способ MPM-прогнозирования на основе соседних блоков для текущего блока, включающих в себя соседний блок (F) и соседний блок (G), например, может иллюстрироваться на нижеприведенном фиг. 7.
[137] Фиг. 7 является схемой для пояснения конфигурации MPM-списка согласно примерному варианту осуществления.
[138] Ссылаясь на фиг 7, соседние блоки по отношению к текущему блоку могут включать в себя соседний блок (A), соседний блок (B), соседний блок (C), соседний блок (D), соседний блок (E), соседний блок (F) и/или соседний блок (G).
[139] Здесь, соседний блок (A) может представлять соседний блок, который позиционируется слева сверху относительно левой верхней выборочной позиции текущего блока, соседний блок (B) может представлять соседний блок, который позиционируется сверху относительно правой верхней выборочной позиции текущего блока, соседний блок (C) может представлять соседний блок, который позиционируется справа сверху относительно правой верхней выборочной позиции текущего блока, соседний блок (D) может представлять соседний блок, который позиционируется в левом конце относительно левой нижней выборочной позиции текущего блока, соседний блок (E) может представлять соседний блок, который позиционируется слева снизу относительно левой нижней выборочной позиции текущего блока, соседний блок (G) может представлять соседний блок, который позиционируется сверху относительно левой верхней выборочной позиции текущего блока, и соседний блок (F) может представлять соседний блок, который позиционируется в левом конце относительно левой верхней выборочной позиции текущего блока.
[140] Дополнительно, например, если размер текущего блока представляет собой WxH, компонент по оси X левой верхней выборочной позиции текущего блока равен 0, и ее компонент по оси Y равен 0, соседний блок (A) может представлять собой блок, включающий в себя выборку координат (-1,-1), соседний блок (B) может представлять собой блок, включающий в себя выборку координат (W-1,-1), соседний блок (C) может представлять собой блок, включающий в себя выборку координат (W,-1), соседний блок (D) может представлять собой блок, включающий в себя выборку координат (-1, H-1), соседний блок (E) может представлять собой блок, включающий в себя выборку координат (-1, H), соседний блок (F) может представлять собой блок, включающий в себя выборку координат (-1, 0), и соседний блок (G) может представлять собой блок, включающий в себя выборку координат (0,-1).
[141] В примерном варианте осуществления, три возможных MPM-варианта могут извлекаться на основе режима внутреннего прогнозирования соседнего блока (F) и режима внутреннего прогнозирования соседнего блока (G). Например, режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) могут извлекаться. Между тем, в следующих трех случаях, режим внутреннего прогнозирования соседнего блока (F) или режим внутреннего прогнозирования соседнего блока (G) могут извлекаться в качестве режима внутреннего DC-прогнозирования. Таким образом, если соседний блок (F) или соседний блок (G) не доступны, если соседний блок (F) или соседний блок (G) не кодируются в режиме внутреннего прогнозирования (если соседний блок (F) или соседний блок (G) не представляют собой внутренне кодированный блок), или если соседний блок (F) или соседний блок (G) находятся за пределами текущей единицы дерева кодирования, режим внутреннего прогнозирования соседнего блока (F) или режим внутреннего прогнозирования соседнего блока (G) могут извлекаться в качестве режима внутреннего DC-прогнозирования.
[142] Если режим внутреннего прогнозирования соседнего блока (F) или режим внутреннего прогнозирования соседнего блока (G) определяется, три возможных MPM-варианта могут извлекаться, например, на основе нижеприведенной таблицы 2.
[143] Табл. 2
[144] Таблица 2 может примерно представлять псевдокоды, конфигурирующие MPM-список.
[145] Ссылаясь на таблицу 2, может определяться то, являются или нет идентичными режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G).
[146] Если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) являются идентичными, и номер режима для режима внутреннего прогнозирования соседнего блока (F) меньше 2, MPM-список текущего блока может извлекаться в качестве MPM-списка 1 (MPM-списка 1). Таким образом, если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) являются идентичными, и режим внутреннего прогнозирования соседнего блока (F) представляет собой нулевой режим внутреннего прогнозирования или первый режим внутреннего прогнозирования, MPM-список текущего блока может извлекаться в качестве MPM-списка 1. Здесь, MPM-список 1 может представлять MPM-список, состоящий из возможных MPM-вариантов {F, F-1, F+1}. F может представлять режим внутреннего прогнозирования соседнего блока (F), F-1 может представлять режим внутреннего прогнозирования, при этом значение, полученное посредством вычитания 1 из номера режима для режима внутреннего прогнозирования соседнего блока (F), представляет собой номер режима, и F+1 может представлять режим внутреннего прогнозирования, при этом значение, полученное посредством суммирования 1 с номером режима для режима внутреннего прогнозирования соседнего блока (F), представляет собой номер режима. Например, если режим внутреннего прогнозирования соседнего блока (F) представляет собой N-ый режим внутреннего прогнозирования, MPM-список 1 может быть сконфигурирован как MPM-список, включающий в себя N-ый режим внутреннего прогнозирования, (N-1)-ый режим внутреннего прогнозирования и (N+1)-ый режим внутреннего прогнозирования в качестве возможных MPM-вариантов.
[147] Дополнительно, если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) являются идентичными, и номер режима для режима внутреннего прогнозирования соседнего блока (F) не меньше 2, MPM-список текущего блока может извлекаться в качестве MPM-списка 2.
[148] Дополнительно, если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) не являются идентичными, и режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) не представляют собой режимы планарного внутреннего прогнозирования, MPM-список текущего блока может извлекаться в качестве MPM-списка 3.
[149] Дополнительно, если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) не являются идентичными, и сумма номера режима для режима внутреннего прогнозирования соседнего блока (F) и номера режима для режима внутреннего прогнозирования соседнего блока (G) меньше 2, MPM-список текущего блока может извлекаться в качестве MPM-списка 4.
[150] Дополнительно, если режим внутреннего прогнозирования соседнего блока (F) и режим внутреннего прогнозирования соседнего блока (G) не являются идентичными, по меньшей мере, один из режима внутреннего прогнозирования соседнего блока (F) и режима внутреннего прогнозирования соседнего блока (G) представляет собой режим планарного внутреннего прогнозирования, и сумма номера режима для режима внутреннего прогнозирования соседнего блока (F) и номера режима для режима внутреннего прогнозирования соседнего блока (G) не меньше 2, MPM-список текущего блока может извлекаться в качестве MPM-списка 5.
[151] Между тем, по мере того, как число режимов внутреннего прогнозирования увеличивается, число возможных MPM-вариантов должно увеличиваться. Соответственно, число возможных MPM-вариантов может варьироваться согласно числу режимов внутреннего прогнозирования. Обычно, по мере того, как число режимов внутреннего прогнозирования увеличивается, число возможных MPM-вариантов может увеличиваться. Тем не менее, число возможных MPM-вариантов не всегда увеличивается, когда число режимов внутреннего прогнозирования увеличивается. Например, если имеется 35 режимов внутреннего прогнозирования или 67 режимов внутреннего прогнозирования, могут быть предусмотрены различные возможные MPM-варианты, к примеру, 3, 4, 5 и 6, согласно проектированию.
[152] Например, кодер/декодер также может конфигурировать MPM-список, включающий в себя 6 MPM. Внутренние режимы по умолчанию, соседние внутренние режимы и извлекаемые внутренние режимы могут рассматриваться для того, чтобы конфигурировать MPM-список.
[153] В примере, для соседних внутренних режимов, два соседних блока, т.е. левый соседний блок (A) и верхний соседний блок (B). Чтобы формировать MPM-список, включающий в себя 6 MPM, инициализированный MPM-список по умолчанию на основе нижеприведенной таблицы 3 может рассматриваться.
[154] Табл. 3
6 MPM-режимов по умолчанию = {A, планарный (0) или DC (1), вертикальный (50), HOR (18), VER-4 (46), VER+4 (54)}После этого, 6 MPM-режимов обновляются, с выполнением процесса отсечения для двух соседних внутренних режимов. Если два соседних режима являются идентичными между собой, и соседний режим превышает DC-(1)-режим, 6 MPM-режимов должны включать в себя три режима по умолчанию (A, планарный, DC-) и три извлеченных режима, которые получаются посредством суммирования предварительно заданных значений смещения с соседним режимом и выполнения модульной операции. В противном случае, если два соседних режима отличаются, два соседних режима назначаются первым двум режимам MPM, и остальные четыре режима MPM извлекаются из режимов по умолчанию и соседних режимов. Во время процесса формирования 6 MPM-списков, отсечение используется для того, чтобы удалять дублированные режимы, так что только уникальные режимы могут включаться в MPM-список. Для энтропийного кодирования 61 не-MPM-режимов, используется усеченный двоичный код (TBC).
[155] В другом примере, порядок конфигурирования 6 возможных MPM-вариантов может представлять собой порядок в виде соседнего блока (D), соседнего блока (B), режима планарного внутреннего прогнозирования, режима внутреннего DC-прогнозирования, соседнего блока (E), соседнего блока (C) и соседнего блока (A). Таким образом, режим внутреннего прогнозирования может извлекаться, в качестве возможных MPM-вариантов, в порядке в виде режима внутреннего прогнозирования соседнего блока (D), режима внутреннего прогнозирования соседнего блока (B), режима планарного внутреннего прогнозирования, режима внутреннего DC-прогнозирования, режима внутреннего прогнозирования соседнего блока (E), режима внутреннего прогнозирования соседнего блока (C) и режима внутреннего прогнозирования соседнего блока (A) и может не извлекаться в качестве возможных MPM-вариантов, если 6 возможных MPM-вариантов являются идентичными уже извлеченному режиму внутреннего прогнозирования.
[156] Дополнительно, если MPM-список не включает в себя максимальное число возможных MPM-вариантов, т.е. если число извлеченных возможных MPM-вариантов меньше максимального числа возможных вариантов, режим направленного внутреннего прогнозирования, смежный с извлеченным возможным MPM-вариантом, и предварительно заданный режим внутреннего прогнозирования по умолчанию могут рассматриваться как возможные MPM-варианты, и процесс проверки отсечения может выполняться вместе. Здесь, режим направленного внутреннего прогнозирования, смежный с возможным MPM-вариантом, может представлять режим внутреннего прогнозирования, имеющий номер режима, смежный с номером режима для возможного MPM-варианта. Вышеуказанный поиск соседних блоков и непрерывная проверка отсечения обеспечивают преимущество уменьшения скорости передачи битов, но могут увеличивать число аппаратных рабочих циклов для конфигурации MPM-списка каждого блока. В качестве худшего сценария, 4K-изображение 3840×2160 может разделяться на размерные блоки 4×4 для внутреннего прогнозирования, и увеличенное число аппаратных рабочих циклов для каждого блока размером 4×4 может считаться важным для пропускной способности. Между тем, если соседний блок, кодированный посредством взаимного прогнозирования текущего блока, знает режим внутреннего прогнозирования соседнего блока, режим внутреннего прогнозирования соседнего блока может использоваться для того, чтобы конфигурировать MPM-список.
[157] Как описано выше, текущий блок, который должен кодироваться, и соседний блок, в общем, могут иметь аналогичные характеристики изображений, и в силу этого имеется высокая вероятность того, что текущий блок и соседний блок имеют идентичные или аналогичные режимы внутреннего прогнозирования, так что MPM-список текущего блока может определяться для того, чтобы извлекать режим внутреннего прогнозирования, применяемый к текущему блоку. Тем не менее, когда 67 режимов внутреннего прогнозирования используются для внутреннего прогнозирования, MPM-список, включающий в себя 3 возможных MPM-варианта, может не быть достаточным для того, чтобы представлять разнесение нескольких режимов внутреннего прогнозирования. Дополнительно, способ для конфигурирования списка из 6 MPM, включающий в себя процесс поиска соседних блоков и процесс проверки отсечения, может быть невыгодным по сложности и пропускной способности. В настоящем раскрытии сущности, ниже описываются различные способы, которые извлекают режим внутреннего прогнозирования для текущего блока на основе MPM-прогнозирования.
[158] Фиг. 8 является схемой для пояснения конфигурации MPM-списка согласно другому примерному варианту осуществления.
[159] Ссылаясь на фиг 8, в примерном варианте осуществления, левый соседний блок A (который может представляться как LEFT) и верхний соседний блок B (который может представляться как ABOVE) могут использоваться так, как выражается в нижеприведенной таблице 4, для формирования MPM-списка. Алгоритм заключается в следующем. Не-MPM-кодирование может быть основано на усеченном двоичном коде.
[160] Табл. 4
[161] Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей способ MPM-прогнозирования согласно примерному варианту осуществления.
[162] Настоящее раскрытие сущности использует конкретные термины или предложения для задания конкретной информации или понятия. Например, конкретный режим внутреннего прогнозирования, который может определяться в качестве режима внутреннего прогнозирования для текущего блока без информации MPM-индекса в процессе внутреннего кодирования сигналов яркости, называется "значимым режимом", индекс, указывающий один из возможных MPM-вариантов, включенных в MPM-список, называется "MPM-индексом", флаг, указывающий то, следует или нет применять внутреннее кодирование сигналов яркости, называется "интегрированным MPM-флагом", и оставшиеся режимы внутреннего прогнозирования, отличные от возможных MPM-вариантов, когда MPM-прогнозирование не применяется, называются "не-MPM-режимами". Тем не менее, "значимый режим" может заменяться различными терминами, такими как significant_mode, режим по умолчанию и возможный вариант режима, "MPM-индекс" может заменяться probable_mode_index, mpm_idx, intra_luma_mpm_idx и т.п., "интегрированный MPM-флаг" может заменяться unified_probable_mode_flag, MPM-флаг, intra_luma_mpm_flag и т.п., и "не-MPM-режимы" может заменяться различными терминами, такими как не-MPM-режимы, non_probable_modes, оставшиеся режимы внутреннего прогнозирования и оставшиеся режимы прогнозирования MPM, так что в толковании конкретных терминов или предложений, используемых для того, чтобы задавать конкретную информацию или понятие в настоящем описании изобретения через спецификацию, конструирование не должно быть ограничено названием, и необходимо толковать конкретные термины и предложения с обращением внимания на различные операции, функции и преимущества согласно содержанию термина.
[163] В примере, значимый режим может представлять собой внутренний планарный режим.
[164] В примерном варианте осуществления, унифицированное внутреннее кодирование сигналов яркости и передача служебных сигналов могут выполняться. При внутреннем кодировании сигналов яркости, по меньшей мере, один значимый внутренний режим для сигнала яркости может передаваться в служебных сигналах сначала, и затем MPM-список может быть сконфигурирован на основе оставшихся внутренних режимов, чтобы выбирать оптимальный режим из возможных MPM-вариантов, включенных в MPM-список.
[165] Во-первых, может определяться то, использовано либо нет MRL или ISP. Когда MRL или ISP используется, значение unified_probable_mode_flag может определяться в качестве 1. Если MRL или ISP не используется, unified_probable_mode_flag может синтаксически анализироваться.
[166] Если значение unified_probable_mode_flag равно 0, non_probable_mode_index может синтаксически анализироваться. Если значение unified_probable_mode_flag равно 1, significant_mode_flag может синтаксически анализироваться. Когда значение significant_mode_flag равно 1, режим внутреннего прогнозирования для текущего блока может определяться в качестве значимого режима (например, внутреннего планарного режима), и когда значение significant_mode_flag равно 0, probable_mode_index может синтаксически анализироваться.
[167] Фиг. 10 является блок-схемой последовательности операций, иллюстрирующей способ MPM-прогнозирования согласно другому примерному варианту осуществления.
[168] На фиг. 10, внутреннее прогнозирование, выполняемое на основе одного интегрированного способа (или алгоритма) независимо от того, применяется либо нет внутреннее прогнозирование на основе множественной опорной линии (MRL) или прогнозирование на основе внутреннего субсегмента (ISP), называется "кодированием в унифицированном внутреннем режиме для сигнала яркости". Тем не менее, "кодирование в интегрированном внутреннем режиме для сигнала яркости" может заменяться различными терминами, такими как интегрированный внутренний режим для сигнала яркости, интегрированное внутреннее прогнозирование, интегрированный MPM, интегрированное MPM-прогнозирование, unified_probable_mode, интегрированное внутреннее кодирование и интегрированное внутреннее кодирование сигналов яркости.
[169] Конкретный способ для извлечения интегрированного внутреннего режима для сигнала яркости согласно примерному варианту осуществления заключается в следующем.
[170] Во-первых, unified_probable_mode_flag может синтаксически анализироваться. Когда значение unified_probable_mode_flag равно 0, non_probable_mode_index может синтаксически анализироваться, и когда значение unified_probable_mode_flag равно 1, significant_mode_flag может синтаксически анализироваться. Когда значение significant_mode_flag равно 1, режим внутреннего прогнозирования для текущего блока может определяться в качестве значимого режима (например, внутреннего планарного режима), и когда значение significant_mode_flag равно 0, probable_mode_index может синтаксически анализироваться.
[171] Альтернативно, конкретный способ для извлечения интегрированного внутреннего режима для сигнала яркости согласно примерному варианту осуществления может выражаться в нижеприведенной таблице 5.
[172] Табл. 5
[173] Предлагается способ для конфигурирования MPM-списка согласно примерному варианту осуществления. Список режимов MPM, имеющих длину k, может быть сконфигурирован. В примере, k равен 5, и 5 условий могут использоваться, когда сконфигурированы 5 различных MPM-списков. Блок (B) по фиг. 7 может представляться как A, и блок (D) может представляться как L. Например, способ для конфигурирования MPM-списка согласно настоящему примерному варианту осуществления может выражаться в нижеприведенной таблице 6.
[174] Табл. 6
[175] Между тем, примерный вариант осуществления не ограничен выполнением интегрированного внутреннего кодирования сигналов яркости только тогда, когда интегрированный MPM-флаг передается в служебных сигналах, и значение передаваемого в служебных сигналах MPM-флага равно 1. Например, даже не без передачи в служебных сигналах интегрированного MPM-флага, оборудование декодирования согласно примерному варианту осуществления может выполнять интегрированное внутреннее кодирование сигналов яркости.
[176] В примерном варианте осуществления, передача служебных сигналов при интегрированном внутреннем прогнозировании и передача служебных сигналов во внутреннем режиме могут комбинироваться с конфигурацией MPM-списка, и не-MPM-список может быть сконфигурирован. Настоящий примерный вариант осуществления может быть основан на синтаксисе единицы кодирования нижеприведенной таблицы 7.
[177] Табл. 7
[178] Синтаксис единицы кодирования таблицы 7 может быть основан, например, на семантике нижеприведенной таблицы 8.
[179] Табл. 8
- intra_luma_mpm_flag[x0][y0], intra_planar_flag[x0][y0], intra_luma_mpm_idx[x0][y0] и intra_luma_mpm_remainder[x0][y0] указывают режим внутреннего прогнозирования для выборок сигнала яркости. Индексы x0, y0 массива указывают местоположение (x0, y0) левой верхней выборки сигнала яркости рассматриваемого блока кодирования относительно левой верхней выборки сигнала яркости кинокадра. Когда intra_luma_mpm_flag[x0][y0] равен 1, intra_planar_flag синтаксически анализируется. Когда intra_planar_flag равен 1, он указывает то, что переменная IntraPredModeY[xCb][yCb] равна INTRA_PLANAR. Когда intra_planar_flag равен 0, режим внутреннего прогнозирования логически выводится из соседней внутренне прогнозированной единицы кодирования согласно разделу 8.4.2.Когда bcw_idx[x0][y0] не присутствует, он может логически выводиться как равный 1.
[180] В примере, процесс декодирования для единицы кодирования, которая кодируется в режиме внутреннего прогнозирования, может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 9.
[181] Табл. 9
8.4.1. Общий процесс декодирования для единиц кодирования, кодированных в режиме внутреннего прогнозирования
- Если pcm_flag[xCb][yCb] равен 0, следующее применимо:
1. Если intra_planar_flag[x0][y0] равен 1, IntraPredModeY[xCb][yCb] равен INTRA_PLANAR.
2. В противном случае, процесс извлечения для режима внутреннего прогнозирования сигналов яркости, как указано в разделе 8.4.2, активируется с местоположением (xCb, yCb) сигнала яркости, шириной cbWidth текущего блока кодирования в выборках сигнала яркости и высотой cbHeight текущего блока кодирования в выборках сигнала яркости в качестве ввода. Вывод представляет собой IntraPredModeY[xCb][yCb], указывающий режим внутреннего прогнозирования сигналов яркости.
С извлечением IntraPredModeY[xCb][yCb] на предыдущих этапах, общий процесс декодирования для внутренних блоков, как указано в разделе 8.4.4.1, активируется с местоположением (xCb, yCb) сигнала яркости, типом treeType дерева, переменной nTbW, заданной равной cbWidth, переменной nTbH, заданной равной cbHeight, переменной predModeIntra, заданной равной IntraPredModeY[xCb][yCb], и переменной cIdx, заданной равной 0, в качестве вводов, и вывод представляет собой модифицированный восстановленный кадр перед внутриконтурной фильтрацией.
Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
intra_planar_flag[][]
FL
cMax=1
Назначение ctxInc для синтаксических элементов с контекстно-кодированными элементами разрешения
Случай I
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0
н/д
н/д
н/д
н/д
н/д
Случай II
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL) || (conA andand availableA) or ctxInc=(condL andand availableL) andand (conA andand availableA)
- condL==PLANAR ? 1 : 0
- condA==PLANAR ? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
-
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1
н/д
н/д
н/д
н/д
н/д
Случай III
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL)+(conA andand availableA)
- condL==PLANAR? 1 : 0
- condA==PLANAR? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1, 2
н/д
н/д
н/д
н/д
н/д
Вышеуказанный вариант осуществления (случай I, случай II и случай III) представляет собой только один практический пример, число контекстных моделей может произвольно определяться.
[182] В примере, процесс для извлечения режима внутреннего прогнозирования сигналов яркости может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 10.
[183] Табл. 10
8.4.2. Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости, указывающее левую верхнюю выборку текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках сигнала яркости.
В этом процессе, режим IntraPredModeY[xCb][yCb] внутреннего прогнозирования сигналов яркости извлекается.
Таблица 8-1 указывает значение для режима внутреннего прогнозирования IntraPredModeY[xCb][yCb] и ассоциированных названий.
Таблица 8. Спецификация режима внутреннего прогнозирования и ассоциированных названий
Режим внутреннего прогнозирования
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2…66
INTRA_ANGULAR2…INTRA_ANGULAR66
81…83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
Примечание: Режимы INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM внутреннего прогнозирования являются применимыми только к компонентам сигнала цветности.
IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
1. Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) задаются равными (xCb-1, yCb+cbHeight-1) и (xCb+cbWidth-1, yCb-1), соответственно.
2. Для замены X посредством A или посредством B, переменные candIntraPredModeX извлекаются следующим образом:
- Процесс извлечения доступности для блока, как указано в разделе 6.4. X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению], активируется с местоположением (xCurr, yCurr), заданным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), заданным равным (xNbX, yNbX), в качестве вводов, и вывод назначается, например, availabl,
- Возможный вариант candIntraPredModeX режима внутреннего прогнозирования извлекается следующим образом:
- Если одно или более следующих условий представляют собой "истина", candIntraPredModeX задается равным INTRA_PLANAR.
- Переменная availableX равна "ложь".
- CuPredMode[xNbX][yNbX] не равен MODE_INTRA
- pcm_flag[xNbX][yNbX] равен 1.
- X равен B, и yCb-1 меньше ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY).
- В противном случае, candIntraPredModeX задается равным IntraPredModeY[xNbX][yNbX].
3. candModeList[x] с x=0…4 извлекается следующим образом:
- Если candIntraPredModeB равен candIntraPredModeA, и candIntraPredModeA превышает INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-10)
candModeList[1]=2+((candIntraPredModeA+61)%64) (8-12)
candModeList[2]=2+((candIntraPredModeA-1)%64) (8-13)
candModeList[3]=INTRA_DC (8-11)
candModeList[4]=2+((candIntraPredModeA+60)%64) (8-14)
- В противном случае, если candIntraPredModeB не равен candIntraPredModeA, и candIntraPredModeA или candIntraPredModeB превышает INTRA_DC, следующее применимо:
- Переменные minAB и maxAB извлекаются следующим образом:
minAB=Min(candIntraPredModeA, candIntraPredModeB) (8-24)
maxAB=Max(candIntraPredModeA, candIntraPredModeB) (8-25)
- Если candIntraPredModeA и candIntraPredModeB больше INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-27)
candModeList[1]=candIntraPredModeB
candModeList[2]=INTRA_DC (8-29)
- Если maxAB minAB находится в диапазоне 2-62, включительно, следующее применимо:
candModeList[3]=2+((maxAB+61)%64) (8-30)
candModeList[4]=2+((maxAB-1)%64) (8-31)
- В противном случае, следующее применимо:
candModeList[3]=2+((maxAB+60)%64) (8-32)
candModeList[4]=2+((maxAB)%64) (8-33)
- В противном случае (candIntraPredModeA или candIntraPredModeB превышает INTRA_DC), candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=maxAB (8-65)
candModeList[1]=INTRA_DC (8-66)
candModeList[2]=2+((maxAB+61)%64) (8-66)
candModeList[3]=2+((maxAB-1)%64) (8-67)
candModeList[4]=2+((maxAB+60)%64) (8-68)
- В противном случае, следующее применимо:
candModeList[0]=INTRA_DC (8-71)
candModeList[1]=INTRA_ANGULAR50 (8-72)
candModeList[2]=INTRA_ANGULAR18 (8-73)
candModeList[3]=INTRA_ANGULAR46 (8-74)
candModeList[4]=INTRA_ANGULAR54 (8-75)
(8-81)
-
4. IntraPredModeY[xCb][yCb] извлекается посредством применения следующей процедуры:
- Если intra_luma_mpm_flag[xCb][yCb] равен 1, IntraPredModeY[xCb][yCb] задается равным candModeList [intra_luma_mpm_idx[xCb][yCb]].
- В противном случае, IntraPredModeY[xCb][yCb] извлекается посредством применения следующих упорядоченных этапов:
1. Когда candModeList[i] превышает candModeList[j] для i=0…4 и для каждого i, j=(i+1)…5, оба значения переставляются следующим образом:
(candModeList[i], candModeList[j]) = Swap(candModeList[i], candModeList[j]) (8-94)
2. IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
i. IntraPredModeY[xCb][yCb] задается равным intra_luma_mpm_remainder[xCb][yCb].
ii. Для i, равного 0-5, включительно, когда IntraPredModeY[xCb][yCb] превышает или равен candModeList[i], значение IntraPredModeY[xCb][yCb] постепенно увеличивается на единицу.
Переменная IntraPredModeY[x][y] с x=xCb…xCb+cbWidth-1 и y=yCb…yCb+cbHeight-1 задается равной IntraPredModeY[xCb][yCb].
[184] В примере, процесс декодирования для внутренних блоков может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 11.
[185] Табл. 11
[186] В примере, внутреннее выборочное прогнозирование может быть основано на алгоритме (или спецификации) нижеприведенной таблицы 12.
[187] Табл. 12
8.4.4.2.1. Общее внутреннее выборочное прогнозированиеПроцесс внутреннего выборочного прогнозирования согласно predModeIntra применяется следующим образом:- Если predModeIntra равен INTRA_PLANAR, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.5, активируется с шириной nTbW блока преобразования и высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_DC, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.6, активируется с шириной nTbW блока преобразования, высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_LT_CCLM, INTRA_L_CCLM или INTRA_T_CCLM, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.8, активируется с режимом predModeIntra внутреннего прогнозирования, выборочным местоположением (xTbC, yTbC), заданным равным (xTbCmp, yTbCmp), шириной nTbW и высотой nTbH блока преобразования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.7, активируется с режимом predModeIntra внутреннего прогнозирования, индексом refIdx опорной линии внутреннего прогнозирования, шириной nTbW блока преобразования, высотой nTbH блока преобразования, шириной refW опорной выборки, высотой refH опорной выборки, шириной nCbW и высотой nCbH блока кодирования, индексом cIdx цветового компонента и массивом p опорных выборок в качестве вводов и модифицированным режимом predModeIntra внутреннего прогнозирования и массивом predSamples прогнозированных выборок в качестве выводов.
[188] В примере, внутренний планарный режим, внутренний DC-режим и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 13.
[189] Табл. 13
[190] В примере, процесс для преобразования масштабированных коэффициентов преобразования и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 14.
[191] Табл. 14
8.7.4.1. Процесс преобразования для масштабированных коэффициентов преобразования
Таблица 8-15. Спецификация trTypeHor и trTypeVer в зависимости от predModeIntra
predModeIntra
trTypeHor
trTypeVer
INTRA_PLANAR,INTRA_ANGULAR31,INTRA_ANGULAR32,INTRA_ANGULAR34,INTRA_ANGULAR36,INTRA_ANGULAR37
(nTbW>=4 andand- nTbW<=16)? 1 : 0
(nTbH>=4 andand- nTbH<=16)? 1 : 0
INTRA_DC,INTRA_ANGULAR33,INTRA_ANGULAR35
0
0
INTRA_ANGULAR2,INTRA_ANGULAR4, …, INTRA_ANGULAR28,INTRA_ANGULAR30,INTRA_ANGULAR39,INTRA_ANGULAR41, …, INTRA_ANGULAR63,INTRA_ANGULAR65
(nTbW>=4 andand- nTbW<=16)? 1 : 0
0
INTRA_ANGULAR3,INTRA_ANGULAR5, …, INTRA_ANGULAR27,INTRA_ANGULAR29,INTRA_ANGULAR38,INTRA_ANGULAR40, …, INTRA_ANGULAR64,INTRA_ANGULAR66
0
(nTbH>=4 andand- nTbH<=16)? 1 : 0
Таблица 9-5. Ассоциирование ctxIdxOffset и синтаксических элементов для каждого initializationType в процессе инициализации
Синтаксическая структура
Синтаксический элемент
ctxTable
initType
0
1
2
coding_tree_unit()
alf_ctb_flag[][][]
Табл. 9-6
0
9
18
…
coding_unit
cu_skip_flag[][]
0
3
pred_mode_ibc_flag
pred_mode_flag
intra_luma_ref_idx[][]
intra_subpartitions_mode_flag
intra_subpartition_split_flag
intra_luma_mpm_flag[][]
intra_planar_flag[][]
intra_chroma_pred_mode[][]
merge_flag[][]
inter_pred_idc[x0][y0]
inter_affine_flag[][]
cu_affine_type_flag[][]
ref_idx_l0[][]
mvp_l0_flag[][]
ref_idx_l1[][]
mvp_l1_flag[][]
avmr_flag[][]
amvr_precision_flag[][]
gbi_idx[][]
cu_cbf
cu_sbt_flag
cu_sbt_quad_flag
cu_sbt_horizontal_flag
cu_sbt_pos_flag
Таблица 9.9. Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
cu_skip_flag[][]
FL
cMax=1
pred_mode_ibc_flag
FL
cMax=1
pred_mode_flag
FL
cMax=1
pcm_flag[][]
FL
cMax=1
intra_luma_ref_idx[][]
TR
cMax=2, cRiceParam=0
intra_subpartitions_mode_flag
FL
cMax=1
intra_subpartition_split_flag
FL
cMax=1
intra_luma_mpm_flag[][]
FL
cMax=1
intra_planar_flag[][]
FL
cMax=1
intra_luma_mpm_idx[][]
TR
cMax=4, cRiceParam=0
intra_luma_mpm_remainder[][]
TB
cMax=60
intra_chroma_pred_mode[][]
9.5.3.8
-
merge_flag[][]
FL
cMax=1
inter_pred_idc[x0][y0]
9.5.3.9
cbWidth, cbHeight
inter_affine_flag[][]
FL
cMax=1
cu_affine_type_flag[][]
FL
cMax=1
ref_idx_l0[][]
TR
cMax=NumRefIdxActive[0]-1, cRiceParam=0
mvp_l0_flag[][]
FL
cMax=1
ref_idx_l1[][]
TR
cMax=NumRefIdxActive[1]-1, cRiceParam=0
mvp_l1_flag[][]
FL
cMax=1
avmr_flag[][]
FL
cMax=1
amvr_precision_flag[][]
FL
cMax=1
gbi_idx[][]
TR
cMax=NoBackwardPredFlag? 4: 2
cu_cbf
FL
cMax=1
cu_sbt_flag
FL
cMax=1
cu_sbt_quad_flag
FL
cMax=1
cu_sbt_horizontal_flag
FL
cMax=1
cu_sbt_pos_flag
FL
cMax=1
[192] В примере, пример назначения ctxInc для синтаксических элементов, включающих в себя контекстно-кодированные элементы разрешения, может быть основан на нижеприведенной таблице 15.
[193] Табл. 15
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_luma_ref_idx[][]
0
1
н/д
н/д
н/д
н/д
intra_subpartitions_mode_flag
0
н/д
н/д
н/д
н/д
н/д
intra_subpartition_split_flag
0
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_flag[][]
0
н/д
н/д
н/д
н/д
н/д
intra_planar_flag[][]
intra_luma_ref_idx!=0? 2:(intra_subpartitions_mode_flag? 0: 1)
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_idx[][]
bypass
bypass
bypass
bypass
bypass
н/д
intra_luma_mpm_remainder[][]
bypass
bypass
bypass
bypass
bypass
bypass
intra_chroma_pred_mode[][]- sps_cclm_enabled_flag==0
0
bypass
bypass
н/д
н/д
н/д
[194] Ссылаясь на таблицу 7, может подтверждаться то, что intra_planar_flag декодируется на основе такого результата декодирования, что значение intra_luma_mpm_flag равно 1; intra_luma_mpm_flag может представлять пример MPM-флага, и intra_planar_flag может представлять пример планарного флага.
[195] Ссылаясь на (8-10), (8-12) и (8-13) из таблицы 10, может подтверждаться то, что из возможных MPM-вариантов, включенных в MPM-список, candModeList[0] определяется в качестве candIntraPredModeA, представляющего режим внутреннего прогнозирования для левого соседнего блока по отношению к текущему блоку, candModeList[1] определяется в качестве 2+((candIntraPredModeA+61)%64), и candModeList[2] определяется в качестве 2+(candIntraPredModeA-1)%64).
[196] Ссылаясь на таблицу 14, может подтверждаться то, что cMax, представляющий максимальное значение intra_luma_mpm_idx, определяется в качестве 4.
[197] Примерный вариант осуществления предлагает способ для выполнения интегрированного MPM-прогнозирования и способ для кодирования и/или передачи в служебных сигналах информации относительно связанных режимов внутреннего прогнозирования. Дополнительно, примерный вариант осуществления предлагает способ для извлечения ядра преобразования. Согласно примерному варианту осуществления, синтаксис единицы кодирования, выражаемый в нижеприведенных таблицах 16-24, может конфигурироваться/кодироваться и передаваться в служебных сигналах в оборудование декодирования, и оборудование декодирования может извлекать режим внутреннего прогнозирования для текущего блока (CU) на основе синтаксиса единицы кодирования и MPM-списка.
[198] Например, согласно настоящему примерному варианту осуществления, планарный режим может включаться в MPM-список в качестве возможного варианта режима, и когда значение MPM-флага равно 1, планарный флаг (intra_planar_flag) может сначала передаваться в служебных сигналах, чтобы указывать то, используется или нет планарный режим в качестве режима внутреннего прогнозирования текущего блока. Если значение планарного флага равно 0, MPM-индекс (intra_luma_mpm_idx) может передаваться в служебных сигналах, чтобы указывать один из оставшихся возможных MPM-вариантов, отличных от планарного режима. В это время, в примере, MPM-список, включающий в себя оставшиеся возможные варианты, отличные от планарного режима, может называться "модифицированным MPM-списком".
[199] Если общее число возможных MPM-вариантов, включающих в себя планарный режим, равно 6, общее число возможных вариантов в модифицированном MPM-списке, отличных от планарного режима, может быть равным 5, и в этом случае, значения MPM-индекса могут быть равными 0-4. Таким образом, максимальное значение MPM-индекса может задаваться равным 4. В это время, максимальное значение MPM-индекса может представляться как cMax MPM-индекса. Элемент разрешения планарного флага может регулярно кодироваться на основе контекстной модели, как описано ниже в таблицах 16-24, и как описано ниже в таблицах 16-24, ctxInc для указания контекстной модели i) может использовать только одно конкретное значение (например, 0), ii) может переменно извлекаться на основе того, доступен либо нет левый соседний блок, и/или того, доступен либо нет верхний соседний блок, и значения планарного флага (если доступен), либо iii) также может иметь значение, переменно определенное в зависимости от того, применяются либо нет MRL или ISP. Дополнительно, настоящий примерный вариант осуществления может извлекать ядро преобразования (ядро вертикального преобразования/ядро горизонтального преобразования) для текущего блока на основе размера и/или типа/режима внутреннего прогнозирования текущего блока. Например, как описано ниже в таблицах 16-24, если ISP не применяется к текущему блоку или не доступно, ядро преобразования (ядро вертикального преобразования/ядро горизонтального преобразования) может извлекаться в качестве значения 1 или 0 дополнительно со ссылкой на размер текущего блока.
[200] Согласно настоящему примерному варианту осуществления, если внутреннее MRL-прогнозирование применяется (т.е. если MRL-индекс превышает 0), планарный режим или DC-режим может применяться к текущему блоку, и если внутреннее ISP-прогнозирование также применяется, планарный режим или DC-режим может применяться к текущему блоку. Соответственно, MPM-список может быть сконфигурирован на основе интегрированного MPM-прогнозирования независимо от того, применяется или нет MRL, ISP и т.п. Таблицы 16-24 приводятся ниже, и подробности таблиц 16-24 должны легко пониматься специалистами в данной области техники.
[201] Нижеприведенная таблица 16 выражает пример синтаксиса единицы кодирования.
[202] Табл. 16
[203] Синтаксис единицы кодирования таблицы 16 может быть основан, например, на семантике нижеприведенной таблицы 17.
[204] Табл. 17
- intra_luma_mpm_flag[x0][y0], intra_planar_flag[x0][y0], intra_luma_mpm_idx[x0][y0] и intra_luma_mpm_remainder[x0][y0] указывают режим внутреннего прогнозирования для выборок сигнала яркости. Индексы x0, y0 массива указывают местоположение (x0, y0) левой верхней выборки сигнала яркости рассматриваемого блока кодирования относительно левой верхней выборки сигнала яркости кинокадра. Когда intra_luma_mpm_flag[x0][y0] равен 1, intra_planar_flag синтаксически анализируется. Когда intra_planar_flag равен 1, он указывает то, что переменная IntraPredModeY[xCb][yCb] равна INTRA_PLANAR. Когда intra_planar_flag равен 0, режим внутреннего прогнозирования логически выводится из соседней внутренне прогнозированной единицы кодирования согласно разделу 8.4.2.
Когда bcw_idx[x0][y0] не присутствует, он может логически выводиться как равный 1.
[205] В примере, процесс декодирования для единиц кодирования, которые кодируются в режиме внутреннего прогнозирования, может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 18.
[206] Табл. 18
8.4.1. Общий процесс декодирования для единиц кодирования, кодированных в режиме внутреннего прогнозирования
- Если pcm_flag[xCb][yCb] равен 0, следующее применимо:
1. Если intra_planar_flag[x0][y0] равен 1, IntraPredModeY[xCb][yCb] равен INTRA_PLANAR.
2. В противном случае, процесс извлечения для режима внутреннего прогнозирования сигналов яркости, как указано в разделе 8.4.2, активируется с местоположением (xCb, yCb) сигнала яркости, шириной cbWidth текущего блока кодирования в выборках сигнала яркости и высотой cbHeight текущего блока кодирования в выборках сигнала яркости в качестве ввода. Вывод представляет собой IntraPredModeY[xCb][yCb], указывающий режим внутреннего прогнозирования сигналов яркости.
С извлечением IntraPredModeY[xCb][yCb] на предыдущих этапах, общий процесс декодирования для внутренних блоков, как указано в разделе 8.4.4.1, активируется с местоположением (xCb, yCb) сигнала яркости, типом treeType дерева, переменной nTbW, заданной равной cbWidth, переменной nTbH, заданной равной cbHeight, переменной predModeIntra, заданной равной IntraPredModeY[xCb][yCb], и переменной cIdx, заданной равной 0, в качестве вводов, и вывод представляет собой модифицированный восстановленный кадр перед внутриконтурной фильтрацией.
Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
intra_planar_flag[][]
FL
cMax=1
Назначение ctxInc для синтаксических элементов с контекстно-кодированными элементами разрешения
Случай I
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0
н/д
н/д
н/д
н/д
н/д
Случай II
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL) || (conA andand availableA) or ctxInc=(condL andand availableL) andand (conA andand availableA)
- condL==PLANAR? 1 : 0
- condA==PLANAR? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
-
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1
н/д
н/д
н/д
н/д
н/д
Случай III
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL)+(conA andand availableA)
- condL==PLANAR? 1 : 0
- condA==PLANAR? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1, 2
н/д
н/д
н/д
н/д
н/д
Вышеуказанный вариант осуществления (случай I, случай II и случай III) представляет собой только один практический пример, число контекстных моделей может произвольно определяться.
[207] В примере, процесс извлечения для режима внутреннего прогнозирования сигналов яркости может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 19.
[208] Табл. 19
8.4.2. Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости, указывающее левую верхнюю выборку текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках сигнала яркости.
В этом процессе, режим IntraPredModeY[xCb][yCb] внутреннего прогнозирования сигналов яркости извлекается.
Таблица 8-1 указывает значение для режима внутреннего прогнозирования IntraPredModeY[xCb][yCb] и ассоциированных названий.
Таблица 8. Спецификация режима внутреннего прогнозирования и ассоциированных названий
Режим внутреннего прогнозирования
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2…66
INTRA_ANGULAR2…INTRA_ANGULAR66
81…83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
Примечание: Режимы INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM внутреннего прогнозирования являются применимыми только к компонентам сигнала цветности.
IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
1. Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) задаются равными (xCb-1, yCb+cbHeight-1) и (xCb+cbWidth-1, yCb-1), соответственно.
2. Для замены X посредством A или посредством B, переменные candIntraPredModeX извлекаются следующим образом:
- Процесс извлечения доступности для блока, как указано в разделе 6.4. X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению], активируется с местоположением (xCurr, yCurr), заданным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), заданным равным (xNbX, yNbX), в качестве вводов, и вывод назначается, например, availabl,
- Возможный вариант candIntraPredModeX режима внутреннего прогнозирования извлекается следующим образом:
- Если одно или более следующих условий представляют собой "истина", candIntraPredModeX задается равным INTRA_PLANAR.
- Переменная availableX равна "ложь".
- CuPredMode[xNbX][yNbX] не равен MODE_INTRA
- pcm_flag[xNbX][yNbX] равен 1.
- X равен B, и yCb-1 меньше ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY).
- В противном случае, candIntraPredModeX задается равным IntraPredModeY[xNbX][yNbX].
3. candModeList[x] с x=0…4 извлекается следующим образом:
- Если candIntraPredModeB равен candIntraPredModeA, и candIntraPredModeA превышает INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-10)
candModeList[1]=2+((candIntraPredModeA+61)%64) (8-12)
candModeList[2]=2+((candIntraPredModeA-1)%64) (8-13)
candModeList[3]=INTRA_DC (8-11)
candModeList[4]=2+((candIntraPredModeA+60)%64) (8-14)
- В противном случае, если candIntraPredModeB не равен candIntraPredModeA, и candIntraPredModeA или candIntraPredModeB превышает INTRA_DC, следующее применимо:
- Переменные minAB и maxAB извлекаются следующим образом:
minAB=Min(candIntraPredModeA, candIntraPredModeB) (8-24)
maxAB=Max(candIntraPredModeA, candIntraPredModeB) (8-25)
- Если candIntraPredModeA и candIntraPredModeB больше INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-27)
candModeList[1]=candIntraPredModeB
candModeList[2]=INTRA_DC (8-29)
- Если maxAB minAB находится в диапазоне 2-62, включительно, следующее применимо:
candModeList[3]=2+((maxAB+61)%64) (8-30)
candModeList[4]=2+((maxAB-1)%64) (8-31)
- В противном случае, следующее применимо:
candModeList[3]=2+((maxAB+60)%64) (8-32)
candModeList[4]=2+((maxAB)%64) (8-33)
- В противном случае (candIntraPredModeA или candIntraPredModeB превышает INTRA_DC), candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=maxAB (8-65)
candModeList[1]=INTRA_DC (8-66)
candModeList[2]=2+((maxAB+61)%64) (8-66)
candModeList[3]=2+((maxAB-1)%64) (8-67)
candModeList[4]=2+((maxAB+60)%64) (8-68)
- В противном случае, следующее применимо:
candModeList[0]=INTRA_DC (8-71)
candModeList[1]=INTRA_ANGULAR50 (8-72)
candModeList[2]=INTRA_ANGULAR18 (8-73)
candModeList[3]=INTRA_ANGULAR46 (8-74)
candModeList[4]=INTRA_ANGULAR54 (8-75)
(8-81)
-
4. IntraPredModeY[xCb][yCb] извлекается посредством применения следующей процедуры:
- Если intra_luma_mpm_flag[xCb][yCb] равен 1, IntraPredModeY[xCb][yCb] задается равным candModeList [intra_luma_mpm_idx[xCb][yCb]].
- В противном случае, IntraPredModeY[xCb][yCb] извлекается посредством применения следующих упорядоченных этапов:
1. Когда candModeList[i] превышает candModeList[j] для i=0…4 и для каждого i, j=(i+1)…5, оба значения переставляются следующим образом:
(candModeList[i], candModeList[j]) = Swap(candModeList[i], candModeList[j]) (8-94)
2. IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
i. IntraPredModeY[xCb][yCb] задается равным intra_luma_mpm_remainder[xCb][yCb].
ii. Для i, равного 0-5, включительно, когда IntraPredModeY[xCb][yCb] превышает или равен candModeList[i], значение IntraPredModeY[xCb][yCb] постепенно увеличивается на единицу.
Переменная IntraPredModeY[x][y] с x=xCb…xCb+cbWidth-1 и y=yCb…yCb+cbHeight-1 задается равной IntraPredModeY[xCb][yCb].
[209] В примере, процесс для декодирования внутренних блоков может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 20.
[210] Табл. 20
8.4.4.1. Общий процесс декодирования для внутренних блоков…- Для xPartIdx=0…numPartsX-1 и yPartIdx=0…numPartsY-1, следующее применимо:Общий процесс внутреннего выборочного прогнозирования, как указано в разделе 8.4.4.2.1, активируется с местоположением (xTbCmp, yTbCmp), заданным равным (xTb0+nW*xPartIdx, yTb0+nH*yPartIdx), режимом predModeIntra внутреннего прогнозирования, шириной nTbW и высотой nTbH блока преобразования, заданной равной нВт и nH, шириной nCbW и высотой nCbH блока кодирования, заданной равной nTbW и nTbH, и переменной cIdx в качестве вводов, и вывод представляет собой массив predSamples (nTbW)x(nTbH).
[211] В примере, внутреннее выборочное прогнозирование может быть основано на алгоритме (или спецификации) нижеприведенной таблицы 21.
[212] Табл. 21
8.4.4.2.1. Общее внутреннее выборочное прогнозированиеПроцесс внутреннего выборочного прогнозирования согласно predModeIntra применяется следующим образом:- Если predModeIntra равен INTRA_PLANAR, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.5, активируется с шириной nTbW блока преобразования и высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_DC, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.6, активируется с шириной nTbW блока преобразования, высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_LT_CCLM, INTRA_L_CCLM или INTRA_T_CCLM, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.8, активируется с режимом predModeIntra внутреннего прогнозирования, выборочным местоположением (xTbC, yTbC), заданным равным (xTbCmp, yTbCmp), шириной nTbW и высотой nTbH блока преобразования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.7, активируется с режимом predModeIntra внутреннего прогнозирования, индексом refIdx опорной линии внутреннего прогнозирования, шириной nTbW блока преобразования, высотой nTbH блока преобразования, шириной refW опорной выборки, высотой refH опорной выборки, шириной nCbW и высотой nCbH блока кодирования, индексом cIdx цветового компонента и массивом p опорных выборок в качестве вводов и модифицированным режимом predModeIntra внутреннего прогнозирования и массивом predSamples прогнозированных выборок в качестве выводов.
[213] В примере, внутренний планарный режим, внутренний DC-режим и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 22.
[214] Табл. 22
[215] В примере, процесс для преобразования масштабированных коэффициентов преобразования и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 23.
[216] Табл. 23
8.7.4.1. Процесс преобразования для масштабированных коэффициентов преобразования
Вводы в этот процесс представляют собой следующее:
- местоположение (xTbY, yTbY) сигнала яркости, указывающее левую верхнюю выборку текущего блока преобразования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная nTbW, указывающая ширину текущего блока преобразования,
- переменная nTbH, указывающая высоту текущего блока преобразования,
- переменная cIdx, указывающая цветовой компонент текущего блока,
- массив d[x][y] (nTbW)x(nTbH) масштабированных коэффициентов преобразования с x=0…nTbW-1, y=0…nTbH-1.
Вывод этого процесса представляет собой массив r[x][y] (nTbW)x(nTbH) остаточных выборок с x=0…nTbW-1, y=0…nTbH-1.
Переменная implicitMtsEnabled извлекается следующим образом:
- Если sps_mts_enabled_flag равен 1, и одно из следующих условий представляет собой "истина", implicitMtsEnabled задается равным 1:
- IntraSubPartitionsSplitType не равна ISP_NO_SPLIT
- cu_sbt_flag равен 1, и Max(nTbW, nTbH) меньше или равен 32
- sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA
- В противном случае, implicitMtsEnabled задается равным 0.
Переменная trTypeHor, указывающая ядро горизонтального преобразования, и переменная trTypeVer, указывающая ядро вертикального преобразования, извлекаются следующим образом:
- Если cIdx превышает 0, trTypeHor и trTypeVer задаются равными 0.
- В противном случае, если implicitMtsEnabled равна 1, следующее применимо:
- Если IntraSubPartitionsSplitType не равна ISP_NO_SPLIT или (sps_explicit_mts_intra_enabled_flag, и sps_explicit_mts_inter_enabled_flag равны 0), trTypeHor и trTypeVer извлекаются следующим образом
- trTypeHor=(nTbW>=4 andand nTbW<=16)? 1 : 0 (8-1028)
- trTypeVer=(nTbH>=4 andand nTbH<=16)? 1 : 0 (8-1029)
В противном случае, если cu_sbt_flag равен 1, trTypeHor и trTypeVer указываются в таблице 8-14 в зависимости от cu_sbt_horizontal_flag и cu_sbt_pos_flag.
Таблица 9-5. Ассоциирование ctxIdxOffset и синтаксических элементов для каждого initializationType в процессе инициализации
Синтаксическая структура
Синтаксический элемент
ctxTable
initType
0
1
2
coding_tree_unit()
alf_ctb_flag[][][]
Табл. 9-6
0
9
18
…
coding_unit()
cu_skip_flag[][]
0
3
pred_mode_ibc_flag
pred_mode_flag
intra_luma_ref_idx[][]
intra_subpartitions_mode_flag
intra_subpartition_split_flag
intra_luma_mpm_flag[][]
intra_planar_flag[][]
intra_chroma_pred_mode[][]
merge_flag[][]
inter_pred_idc[x0][y0]
inter_affine_flag[][]
cu_affine_type_flag[][]
ref_idx_l0[][]
mvp_l0_flag[][]
ref_idx_l1[][]
mvp_l1_flag[][]
avmr_flag[][]
amvr_precision_flag[][]
gbi_idx[][]
cu_cbf
cu_sbt_flag
cu_sbt_quad_flag
cu_sbt_horizontal_flag
cu_sbt_pos_flag
Таблица 9.9. Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
cu_skip_flag[][]
FL
cMax=1
pred_mode_ibc_flag
FL
cMax=1
pred_mode_flag
FL
cMax=1
pcm_flag[][]
FL
cMax=1
intra_luma_ref_idx[][]
TR
cMax=2, cRiceParam=0
intra_subpartitions_mode_flag
FL
cMax=1
intra_subpartition_split_flag
FL
cMax=1
intra_luma_mpm_flag[][]
FL
cMax=1
intra_planar_flag[][]
FL
cMax=1
intra_luma_mpm_idx[][]
TR
cMax=4, cRiceParam=0
intra_luma_mpm_remainder[][]
TB
cMax=60
intra_chroma_pred_mode[][]
9.5.3.8
-
merge_flag[][]
FL
cMax=1
inter_pred_idc[x0][y0]
9.5.3.9
cbWidth, cbHeight
inter_affine_flag[][]
FL
cMax=1
cu_affine_type_flag[][]
FL
cMax=1
ref_idx_l0[][]
TR
cMax=NumRefIdxActive[0]-1, cRiceParam=0
mvp_l0_flag[][]
FL
cMax=1
ref_idx_l1[][]
TR
cMax=NumRefIdxActive[1]-1, cRiceParam=0
mvp_l1_flag[][]
FL
cMax=1
avmr_flag[][]
FL
cMax=1
amvr_precision_flag[][]
FL
cMax=1
gbi_idx[][]
TR
cMax=NoBackwardPredFlag? 4: 2
cu_cbf
FL
cMax=1
cu_sbt_flag
FL
cMax=1
cu_sbt_quad_flag
FL
cMax=1
cu_sbt_horizontal_flag
FL
cMax=1
cu_sbt_pos_flag
FL
cMax=1
[217] В примере, пример назначения ctxInc для синтаксических элементов, включающих в себя контекстно-кодированные элементы разрешения, может быть основан на нижеприведенной таблице 24.
[218] Табл. 24
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_luma_ref_idx[][]
0
1
н/д
н/д
н/д
н/д
intra_subpartitions_mode_flag
0
н/д
н/д
н/д
н/д
н/д
intra_subpartition_split_flag
0
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_flag[][]
0
н/д
н/д
н/д
н/д
н/д
intra_planar_flag[][]
intra_luma_ref_idx!=0? 2:(intra_subpartitions_mode_flag? 0: 1)
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_idx[][]
bypass
bypass
bypass
bypass
bypass
н/д
intra_luma_mpm_remainder[][]
bypass
bypass
bypass
bypass
bypass
bypass
intra_chroma_pred_mode[][]- sps_cclm_enabled_flag==0
0
bypass
bypass
н/д
н/д
н/д
[219] Примерный вариант осуществления предлагает способ для выполнения интегрированного MPM-прогнозирования и способ для кодирования и/или передачи в служебных сигналах информации относительно связанных режимов внутреннего прогнозирования. Дополнительно, примерный вариант осуществления предлагает способ для извлечения ядра преобразования. Согласно примерному варианту осуществления, синтаксис единицы кодирования, выражаемый в таблицах 16-24, может конфигурироваться/кодироваться и передаваться в служебных сигналах в оборудование декодирования, и оборудование декодирования может извлекать режим внутреннего прогнозирования для текущего блока (CU) на основе синтаксиса единицы кодирования и MPM-списка.
[220] Например, согласно настоящему примерному варианту осуществления, MPM-список может включать в себя планарный режим в качестве возможного варианта режима, и если значение MPM-флага равно 1, планарный флаг (intra_planar_flag) может сначала передаваться в служебных сигналах, чтобы указывать то, используется или нет планарный режим в качестве режима внутреннего прогнозирования текущего блока. Если значение планарного флага равно 0, MPM-индекс (intra_luma_mpm_idx) может передаваться в служебных сигналах, чтобы указывать один из оставшихся возможных MPM-вариантов, отличных от планарного режима. В это время, в одном примере, MPM-список, включающий в себя оставшиеся возможные варианты, отличные от планарного режима, может называться "модифицированным MPM-списком".
[221] Если общее число возможных MPM-вариантов, включающих в себя планарный режим, равно 6, общее число возможных вариантов в модифицированном MPM- списке, отличных от планарного режима, может быть равным 5, и в этом случае, значения MPM-индекса могут быть равными 0-4. Таким образом, максимальное значение MPM-индекса может задаваться равным 4. В это время, максимальное значение MPM-индекса может представляться как cMAX MPM-индекса. Элемент разрешения планарного флага может регулярно кодироваться на основе контекстной модели, как описано ниже в таблицах 25-33, и как описано ниже в таблицах 25-33, ctxInc для указания контекстной модели i) может использовать только одно конкретное значение (например, 0), ii) может переменно извлекаться на основе того, доступны либо нет левый соседний блок и/или верхний соседний блок, и значение планарного флага (если доступны), либо iii) также может иметь значение, переменно определенное в зависимости от того, применяются либо нет MRL или ISP. Дополнительно, согласно настоящему примерному варианту осуществления, ядро преобразования (ядро вертикального преобразования/ядро горизонтального преобразования) для текущего блока может извлекаться на основе размера и/или типа/режима внутреннего прогнозирования текущего блока. Например, как описано ниже в нижеприведенных таблицах 25-33, если ISP не применяется к текущему блоку или не доступно, ядро преобразования (ядро вертикального преобразования/ядро горизонтального преобразования) может извлекаться в качестве значения 1 или 0 дополнительно со ссылкой на размер текущего блока.
[222] Согласно настоящему примерному варианту осуществления, MPM-список может быть сконфигурирован на основе интегрированного MPM-прогнозирования независимо от того, применяется или нет MRL, ISP и т.п. Таблицы 25-33 приводятся ниже, и подробности таблиц 25-33 должны легко пониматься специалистами в данной области техники.
[223] Нижеприведенная таблица 25 выражает пример синтаксиса единицы кодирования.
[224] Табл. 25
[225] Синтаксис единицы кодирования таблицы 25 может быть основан, например, на семантике нижеприведенной таблицы 26.
[226] Табл. 26
- intra_luma_mpm_flag[x0][y0], intra_planar_flag[x0][y0], intra_luma_mpm_idx[x0][y0] и intra_luma_mpm_remainder[x0][y0] указывают режим внутреннего прогнозирования для выборок сигнала яркости. Индексы x0, y0 массива указывают местоположение (x0, y0) левой верхней выборки сигнала яркости рассматриваемого блока кодирования относительно левой верхней выборки сигнала яркости кинокадра. Когда intra_luma_mpm_flag[x0][y0] равен 1, intra_planar_flag синтаксически анализируется. Когда intra_planar_flag равен 1, он указывает то, что переменная IntraPredModeY[xCb][yCb] равна INTRA_PLANAR. Когда intra_planar_flag равен 0, режим внутреннего прогнозирования логически выводится из соседней внутренне прогнозированной единицы кодирования согласно разделу 8.4.2.Когда bcw_idx[x0][y0] не присутствует, он может логически выводиться как равный 1.
[227] В примере, процесс для декодирования единицы кодирования, которая кодируется в режиме внутреннего прогнозирования, может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 27.
[228] Табл. 27
8.4.1. Общий процесс декодирования для единиц кодирования, кодированных в режиме внутреннего прогнозирования
- Если pcm_flag[xCb][yCb] равен 0, следующее применимо:
1. Если intra_planar_flag[x0][y0] равен 1, IntraPredModeY[xCb][yCb] равен INTRA_PLANAR.
2. В противном случае, процесс извлечения для режима внутреннего прогнозирования сигналов яркости, как указано в разделе 8.4.2, активируется с местоположением (xCb, yCb) сигнала яркости, шириной cbWidth текущего блока кодирования в выборках сигнала яркости и высотой cbHeight текущего блока кодирования в выборках сигнала яркости в качестве ввода. Вывод представляет собой IntraPredModeY[xCb][yCb], указывающий режим внутреннего прогнозирования сигналов яркости.
С извлечением IntraPredModeY[xCb][yCb] на предыдущих этапах, общий процесс декодирования для внутренних блоков, как указано в разделе 8.4.4.1, активируется с местоположением (xCb, yCb) сигнала яркости, типом treeType дерева, переменной nTbW, заданной равной cbWidth, переменной nTbH, заданной равной cbHeight, переменной predModeIntra, заданной равной IntraPredModeY[xCb][yCb], и переменной cIdx, заданной равной 0, в качестве вводов, и вывод представляет собой модифицированный восстановленный кадр перед внутриконтурной фильтрацией.
Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
intra_planar_flag[][]
FL
cMax=1
Назначение ctxInc для синтаксических элементов с контекстно-кодированными элементами разрешения
Случай I
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0
н/д
н/д
н/д
н/д
н/д
Случай II
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL) || (conA andand availableA) or ctxInc=(condL andand availableL) andand (conA andand availableA)
- condL==PLANAR? 1 : 0
- condA==PLANAR? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
-
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1
н/д
н/д
н/д
н/д
н/д
Случай III
Назначение ctxInc указывается следующим образом с помощью condL и condA, указываемых для синтаксического элемента intra_planar_flag [x0][y0]
- ctxInc=(condL andand availableL)+(conA andand availableA)
- condL==PLANAR? 1 : 0
- condA==PLANAR? 1 : 0
- availableL, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
- availableA, указывающий доступность блока, расположенного непосредственно слева относительно текущего блока.
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_planar_flag[][]
0, 1, 2
н/д
н/д
н/д
н/д
н/д
Вышеуказанный вариант осуществления (случай I, случай II и случай III) представляет собой только один практический пример, число контекстных моделей может произвольно определяться.
[229] В примере, процесс для декодирования режима внутреннего прогнозирования сигналов яркости может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 28.
[230] Табл. 28
8.4.2. Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Процесс извлечения для режима внутреннего прогнозирования сигналов яркости
Вводы в этот процесс представляют собой следующее:
- местоположение (xCb, yCb) сигнала яркости, указывающее левую верхнюю выборку текущего блока кодирования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная cbWidth, указывающая ширину текущего блока кодирования в выборках сигнала яркости,
- переменная cbHeight, указывающая высоту текущего блока кодирования в выборках сигнала яркости.
В этом процессе, режим IntraPredModeY[xCb][yCb] внутреннего прогнозирования сигналов яркости извлекается.
Таблица 8-1 указывает значение для режима внутреннего прогнозирования IntraPredModeY[xCb][yCb] и ассоциированных названий.
Таблица 8. Спецификация режима внутреннего прогнозирования и ассоциированных названий
Режим внутреннего прогнозирования
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2…66
INTRA_ANGULAR2…INTRA_ANGULAR66
81…83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
Примечание: Режимы INTRA_LT_CCLM, INTRA_L_CCLM и INTRA_T_CCLM внутреннего прогнозирования являются применимыми только к компонентам сигнала цветности.
IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
1. Соседние местоположения (xNbA, yNbA) и (xNbB, yNbB) задаются равными (xCb-1, yCb+cbHeight-1) и (xCb+cbWidth-1, yCb-1), соответственно.
2. Для замены X посредством A или посредством B, переменные candIntraPredModeX извлекаются следующим образом:
- Процесс извлечения доступности для блока, как указано в разделе 6.4. X [Ed. (BB): Процесс проверки доступности соседних блоков, подлежит уточнению], активируется с местоположением (xCurr, yCurr), заданным равным (xCb, yCb), и соседним местоположением (xNbY, yNbY), заданным равным (xNbX, yNbX), в качестве вводов, и вывод назначается, например, availabl,
- Возможный вариант candIntraPredModeX режима внутреннего прогнозирования извлекается следующим образом:
- Если одно или более следующих условий представляют собой "истина", candIntraPredModeX задается равным INTRA_PLANAR.
- Переменная availableX равна "ложь".
- CuPredMode[xNbX][yNbX] не равен MODE_INTRA
- pcm_flag[xNbX][yNbX] равен 1.
- X равен B, и yCb-1 меньше ((yCb>>CtbLog2SizeY)<<CtbLog2SizeY).
- В противном случае, candIntraPredModeX задается равным IntraPredModeY[xNbX][yNbX].
3. candModeList[x] с x=0…4 извлекается следующим образом:
- Если candIntraPredModeB равен candIntraPredModeA, и candIntraPredModeA превышает INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-10)
candModeList[1]=2+((candIntraPredModeA+61)%64) (8-12)
candModeList[2]=2+((candIntraPredModeA-1)%64) (8-13)
candModeList[3]=INTRA_DC (8-11)
candModeList[4]=2+((candIntraPredModeA+60)%64) (8-14)
- В противном случае, если candIntraPredModeB не равен candIntraPredModeA, и candIntraPredModeA или candIntraPredModeB превышает INTRA_DC, следующее применимо:
- Переменные minAB и maxAB извлекаются следующим образом:
minAB=Min(candIntraPredModeA, candIntraPredModeB) (8-24)
maxAB=Max(candIntraPredModeA, candIntraPredModeB) (8-25)
- Если candIntraPredModeA и candIntraPredModeB больше INTRA_DC, candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=candIntraPredModeA (8-27)
candModeList[1]=candIntraPredModeB
candModeList[2]=INTRA_DC (8-29)
- Если maxAB minAB находится в диапазоне 2-62, включительно, следующее применимо:
candModeList[3]=2+((maxAB+61)%64) (8-30)
candModeList[4]=2+((maxAB-1)%64) (8-31)
- В противном случае, следующее применимо:
candModeList[3]=2+((maxAB+60)%64) (8-32)
candModeList[4]=2+((maxAB)%64) (8-33)
- В противном случае (candIntraPredModeA или candIntraPredModeB превышает INTRA_DC), candModeList[x] с x=0…4 извлекается следующим образом:
candModeList[0]=maxAB (8-65)
candModeList[1]=INTRA_DC (8-66)
candModeList[2]=2+((maxAB+61)%64) (8-66)
candModeList[3]=2+((maxAB-1)%64) (8-67)
candModeList[4]=2+((maxAB+60)%64) (8-68)
- В противном случае, следующее применимо:
candModeList[0]=INTRA_DC (8-71)
candModeList[1]=INTRA_ANGULAR50 (8-72)
candModeList[2]=INTRA_ANGULAR18 (8-73)
candModeList[3]=INTRA_ANGULAR46 (8-74)
candModeList[4]=INTRA_ANGULAR54 (8-75)
(8-81)
-
4. IntraPredModeY[xCb][yCb] извлекается посредством применения следующей процедуры:
- Если intra_luma_mpm_flag[xCb][yCb] равен 1, IntraPredModeY[xCb][yCb] задается равным candModeList [intra_luma_mpm_idx[xCb][yCb]].
- В противном случае, IntraPredModeY[xCb][yCb] извлекается посредством применения следующих упорядоченных этапов:
1. Когда candModeList[i] превышает candModeList[j] для i=0…4 и для каждого i, j=(i+1)…5, оба значения переставляются следующим образом:
(candModeList[i], candModeList[j]) = Swap(candModeList[i], candModeList[j]) (8-94)
2. IntraPredModeY[xCb][yCb] извлекается посредством следующих упорядоченных этапов:
i. IntraPredModeY[xCb][yCb] задается равным intra_luma_mpm_remainder[xCb][yCb].
ii. Для i, равного 0-5, включительно, когда IntraPredModeY[xCb][yCb] превышает или равен candModeList[i], значение IntraPredModeY[xCb][yCb] постепенно увеличивается на единицу.
Переменная IntraPredModeY[x][y] с x=xCb…xCb+cbWidth-1 и y=yCb…yCb+cbHeight-1 задается равной IntraPredModeY[xCb][yCb].
[231] В примере, процесс для декодирования внутренних блоков может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 29.
[232] Табл. 29
8.4.4.1. Общий процесс декодирования для внутренних блоков…- Для xPartIdx=0…numPartsX-1 и yPartIdx=0…numPartsY-1, следующее применимо:Общий процесс внутреннего выборочного прогнозирования, как указано в разделе 8.4.4.2.1, активируется с местоположением (xTbCmp, yTbCmp), заданным равным (xTb0+nW*xPartIdx, yTb0+nH*yPartIdx), режимом predModeIntra внутреннего прогнозирования, шириной nTbW и высотой nTbH блока преобразования, заданной равной нВт и nH, шириной nCbW и высотой nCbH блока кодирования, заданной равной nTbW и nTbH, и переменной cIdx в качестве вводов, и вывод представляет собой массив predSamples (nTbW)x(nTbH).
[233] В примере, внутреннее выборочное прогнозирование может быть основано на алгоритме (или спецификации) нижеприведенной таблицы 30.
[234] Табл. 30
8.4.4.2.1. Общее внутреннее выборочное прогнозированиеПроцесс внутреннего выборочного прогнозирования согласно predModeIntra применяется следующим образом:- Если predModeIntra равен INTRA_PLANAR, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.5, активируется с шириной nTbW блока преобразования и высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_DC, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.6, активируется с шириной nTbW блока преобразования, высотой nTbH блока преобразования, индексом refIdx опорной линии внутреннего прогнозирования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, если predModeIntra равен INTRA_LT_CCLM, INTRA_L_CCLM или INTRA_T_CCLM, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.8, активируется с режимом predModeIntra внутреннего прогнозирования, выборочным местоположением (xTbC, yTbC), заданным равным (xTbCmp, yTbCmp), шириной nTbW и высотой nTbH блока преобразования и массивом p опорных выборок в качестве вводов, и вывод представляет собой массив predSamples прогнозированных выборок.- В противном случае, соответствующий процесс на основе режима внутреннего прогнозирования, указываемый в разделе 8.4.4.2.7, активируется с режимом predModeIntra внутреннего прогнозирования, индексом refIdx опорной линии внутреннего прогнозирования, шириной nTbW блока преобразования, высотой nTbH блока преобразования, шириной refW опорной выборки, высотой refH опорной выборки, шириной nCbW и высотой nCbH блока кодирования, индексом cIdx цветового компонента и массивом p опорных выборок в качестве вводов и модифицированным режимом predModeIntra внутреннего прогнозирования и массивом predSamples прогнозированных выборок в качестве выводов.
[235] В примере, внутренний планарный режим, внутренний DC-режим и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 31.
[236] Табл. 31
[237] В примере, процесс для преобразования масштабированных коэффициентов преобразования и т.п. может быть основан на алгоритме (или спецификации) нижеприведенной таблицы 32.
[238] Табл. 32
8.7.4.1. Процесс преобразования для масштабированных коэффициентов преобразования
Вводы в этот процесс представляют собой следующее:
- местоположение (xTbY, yTbY) сигнала яркости, указывающее левую верхнюю выборку текущего блока преобразования сигналов яркости относительно левой верхней выборки сигнала яркости текущего кадра,
- переменная nTbW, указывающая ширину текущего блока преобразования,
- переменная nTbH, указывающая высоту текущего блока преобразования,
- переменная cIdx, указывающая цветовой компонент текущего блока,
- массив d[x][y] (nTbW)x(nTbH) масштабированных коэффициентов преобразования с x=0…nTbW-1, y=0…nTbH-1.
Вывод этого процесса представляет собой массив r[x][y] (nTbW)x(nTbH) остаточных выборок с x=0…nTbW-1, y=0…nTbH-1.
Переменная implicitMtsEnabled извлекается следующим образом:
- Если sps_mts_enabled_flag равен 1, и одно из следующих условий представляет собой "истина", implicitMtsEnabled задается равным 1:
- IntraSubPartitionsSplitType не равна ISP_NO_SPLIT
- cu_sbt_flag равен 1, и Max(nTbW, nTbH) меньше или равен 32
- sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag равны 0, и CuPredMode[xTbY][yTbY] равен MODE_INTRA
- В противном случае, implicitMtsEnabled задается равным 0.
Переменная trTypeHor, указывающая ядро горизонтального преобразования, и переменная trTypeVer, указывающая ядро вертикального преобразования, извлекаются следующим образом:
- Если cIdx превышает 0, trTypeHor и trTypeVer задаются равными 0.
- В противном случае, если implicitMtsEnabled равна 1, следующее применимо:
- Если IntraSubPartitionsSplitType не равна ISP_NO_SPLIT или (sps_explicit_mts_intra_enabled_flag, и sps_explicit_mts_inter_enabled_flag равны 0), trTypeHor и trTypeVer извлекаются следующим образом
- trTypeHor=(nTbW>=4 andand nTbW<=16)? 1 : 0 (8-1028)
- trTypeVer=(nTbH>=4 andand nTbH<=16)? 1 : 0 (8-1029)
В противном случае, если cu_sbt_flag равен 1, trTypeHor и trTypeVer указываются в таблице 8-14 в зависимости от cu_sbt_horizontal_flag и cu_sbt_pos_flag.
Таблица 9-5. Ассоциирование ctxIdxOffset и синтаксических элементов для каждого initializationType в процессе инициализации
Синтаксическая структура
Синтаксический элемент
ctxTable
initType
0
1
2
coding_tree_unit()
alf_ctb_flag[][][]
Табл. 9-6
0
9
18
…
coding_unit()
cu_skip_flag[][]
0
3
pred_mode_ibc_flag
pred_mode_flag
intra_luma_ref_idx[][]
intra_subpartitions_mode_flag
intra_subpartition_split_flag
intra_luma_mpm_flag[][]
intra_planar_flag[][]
intra_chroma_pred_mode[][]
merge_flag[][]
inter_pred_idc[x0][y0]
inter_affine_flag[][]
cu_affine_type_flag[][]
ref_idx_l0[][]
mvp_l0_flag[][]
ref_idx_l1[][]
mvp_l1_flag[][]
avmr_flag[][]
amvr_precision_flag[][]
gbi_idx[][]
cu_cbf
cu_sbt_flag
cu_sbt_quad_flag
cu_sbt_horizontal_flag
cu_sbt_pos_flag
Таблица 9.9. Синтаксические элементы и ассоциированные преобразования в двоичную форму
Синтаксическая структура
Синтаксический элемент
Преобразование в двоичную форму
Процесс
Входные параметры
coding_unit()
cu_skip_flag[][]
FL
cMax=1
pred_mode_ibc_flag
FL
cMax=1
pred_mode_flag
FL
cMax=1
pcm_flag[][]
FL
cMax=1
intra_luma_ref_idx[][]
TR
cMax=2, cRiceParam=0
intra_subpartitions_mode_flag
FL
cMax=1
intra_subpartition_split_flag
FL
cMax=1
intra_luma_mpm_flag[][]
FL
cMax=1
intra_planar_flag[][]
FL
cMax=1
intra_luma_mpm_idx[][]
TR
cMax=4, cRiceParam=0
intra_luma_mpm_remainder[][]
TB
cMax=60
intra_chroma_pred_mode[][]
9.5.3.8
-
merge_flag[][]
FL
cMax=1
inter_pred_idc[x0][y0]
9.5.3.9
cbWidth, cbHeight
inter_affine_flag[][]
FL
cMax=1
cu_affine_type_flag[][]
FL
cMax=1
ref_idx_l0[][]
TR
cMax=NumRefIdxActive[0]-1, cRiceParam=0
mvp_l0_flag[][]
FL
cMax=1
ref_idx_l1[][]
TR
cMax=NumRefIdxActive[1]-1, cRiceParam=0
mvp_l1_flag[][]
FL
cMax=1
avmr_flag[][]
FL
cMax=1
amvr_precision_flag[][]
FL
cMax=1
gbi_idx[][]
TR
cMax=NoBackwardPredFlag? 4: 2
cu_cbf
FL
cMax=1
cu_sbt_flag
FL
cMax=1
cu_sbt_quad_flag
FL
cMax=1
cu_sbt_horizontal_flag
FL
cMax=1
cu_sbt_pos_flag
FL
cMax=1
[239] В примере, пример назначения ctxInc для синтаксических элементов, включающих в себя контекстно-кодированные элементы разрешения, может быть основан на нижеприведенной таблице 33.
[240] Табл. 33
9.5.4.2.1 из спецификации VVC
Таблица 9-15. Назначение ctxInc для синтаксических элементов с контекстно-кодированными элементами разрешения
Синтаксический элемент
binIdx
0
1
2
3
4
>=5
intra_luma_ref_idx[][]
0
1
н/д
н/д
н/д
н/д
intra_subpartitions_mode_flag
0
н/д
н/д
н/д
н/д
н/д
intra_subpartition_split_flag
0
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_flag[][]
0
н/д
н/д
н/д
н/д
н/д
intra_planar_flag[][]
intra_luma_ref_idx!=0? 2:(intra_subpartitions_mode_flag? 0: 1)
н/д
н/д
н/д
н/д
н/д
intra_luma_mpm_idx[][]
bypass
bypass
bypass
bypass
bypass
н/д
intra_luma_mpm_remainder[][]
bypass
bypass
bypass
bypass
bypass
bypass
intra_chroma_pred_mode[][] sps_cclm_enabled_flag==0
0
bypass
bypass
н/д
н/д
н/д
[241] Ссылаясь на таблицу 25, может подтверждаться то, что intra_planar_flag проверяется на основе такого результата проверки, что значение intra_luma_ref_idx равно 0; intra_luma_ref_idx может представлять пример индекса множественной опорной линии (MRL), и intra_planar_flag может представлять пример планарного флага.
[242] Ссылаясь на таблицу 27, может подтверждаться то, что значение индекса контекста (ctxInc или ctxIdx) для элемента разрешения, связанного с intra_planar_flag, равно 0 или 1. Таким образом, может подтверждаться то, что значение индекса контекста для элемента разрешения, связанного с intra_planar_flag, может представлять собой одно из двух различных целых чисел.
[243] Ссылаясь на таблицу 33, может подтверждаться то, что индекс контекста для элемента разрешения, связанного с intra_planar_flag, основан на значении intra_subpartitions_mode_flag. intra_subpartitions_mode_flag может представлять пример ISP-флага, указывающего то, применяется или нет режим на основе внутренних субсегментов (ISP) к текущему блоку.
[244] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей работу оборудования кодирования согласно примерному варианту осуществления, и фиг. 12 является блок-схемой, иллюстрирующей конфигурацию оборудования кодирования согласно примерному варианту осуществления.
[245] Оборудование кодирования согласно фиг. 11 и 12 может выполнять операции, соответствующие оборудованию декодирования согласно фиг. 13 и 14. Соответственно, операции оборудования декодирования, которое описывается ниже со ссылкой на фиг. 13 и 14, также могут применяться к оборудованию кодирования согласно фиг. 11 и 12.
[246] Каждый этап, проиллюстрированный на фиг. 11, может выполняться посредством оборудования 200 кодирования, проиллюстрированного на фиг. 2. Дополнительно, операции согласно S1100 и S1110 основаны на части контента, описанного со ссылкой на фиг. 4-10. Соответственно, подробные описания, которые перекрываются с описаниями, приведенными выше со ссылкой на фиг. 2 и 4-10, опускаются или упрощаются.
[247] Как проиллюстрировано на фиг. 12, оборудование кодирования согласно примерному варианту осуществления может включать в себя модуль 220 прогнозирования и энтропийный кодер 240. Тем не менее, в некоторых случаях, не все компоненты, проиллюстрированные на фиг. 12, могут не представлять собой существенные компоненты оборудования кодирования, и оборудование кодирования может реализовываться посредством большего или меньшего числа компонентов, чем компоненты, проиллюстрированные на фиг. 12.
[248] В оборудовании кодирования согласно примерному варианту осуществления, модуль 220 прогнозирования и энтропийный кодер 240 могут реализовываться как отдельные микросхемы, или, по меньшей мере, два компонента также могут реализовываться через одну микросхему.
[249] Оборудование кодирования согласно примерному варианту осуществления может формировать, по меньшей мере, одно из информации MPM-флага, представляющей то, следует или нет кодировать режим внутреннего прогнозирования на основе возможных MPM-вариантов для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима, на основе режима внутреннего прогнозирования для текущего блока (S1100).
[250] Например, оборудование кодирования может извлекать режим внутреннего прогнозирования для текущего блока, формировать информацию MPM-флага, представляющую то, следует или нет кодировать режим внутреннего прогнозирования на основе возможных MPM-вариантов для текущего блока6 и формировать информацию планарного флага на основе MPM, представляющего то, что информация MPM-флага связана с информацией планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима.
[251] Оборудование кодирования согласно примерному варианту осуществления может кодировать информацию изображений, включающую в себя, по меньшей мере, одно из информации MPM-флага или информации планарного флага (S1110). Более конкретно, энтропийный кодер 240 оборудования кодирования может кодировать информацию MPM-флага, включающую в себя, по меньшей мере, одно из информации изображений или информации планарного флага.
[252] В примерном варианте осуществления, на основе случая, в котором режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима, информация планарного флага может представлять то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[253] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. Способ кодирования изображений дополнительно может включать в себя формирование информации MPM-индекса на основе случая, в котором режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима.
[254] В примерном варианте осуществления, общее число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5.
[255] В примерном варианте осуществления, информация MPM-индекса включает в себя нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку являются идентичными, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[256] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. На основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, и режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[257] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[258] В примерном варианте осуществления, cMax, представляющий максимальное значение информации MPM-индекса, может быть равным 4.
[259] Согласно оборудованию кодирования и способу для работы оборудования кодирования, проиллюстрированному на фиг. 11 и 12, оборудование кодирования может формировать, по меньшей мере, одно из информации MPM-флага, представляющей то, следует или нет кодировать режим внутреннего прогнозирования на основе возможных MPM-вариантов для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима на основе режима внутреннего прогнозирования для текущего блока (S1100), и кодировать информацию MPM-флага, включающую в себя, по меньшей мере, одно из информации изображений или информации планарного флага (S1110).
[260] Таким образом, настоящее раскрытие сущности может повышать эффективность кодирования изображений на основе внутреннего прогнозирования с использованием MPM-списка для текущего блока. Альтернативно, настоящее раскрытие сущности может повышать эффективность внутреннего прогнозирования на основе MPM-списка на основе информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима. Альтернативно, настоящее раскрытие сущности может эффективно конфигурировать MPM-список для текущего блока. Альтернативно, настоящее раскрытие сущности может эффективно кодировать MPM-индекс.
[261] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей работу оборудования декодирования согласно примерному варианту осуществления, и фиг. 14 является блок-схемой, иллюстрирующей конфигурацию оборудования декодирования согласно примерному варианту осуществления.
[262] Каждый этап, проиллюстрированный на фиг. 13, может выполняться посредством оборудования 300 декодирования, проиллюстрированного на фиг. 3. Соответственно, подробные описания, которые перекрываются с вышеуказанным контентом, опускаются или упрощаются.
[263] Как проиллюстрировано на фиг. 14, оборудование декодирования согласно примерному варианту осуществления может включать в себя энтропийный декодер 310, модуль 330 прогнозирования и сумматор 340. Тем не менее, в некоторых случаях, все компоненты, проиллюстрированные на фиг. 14, могут не представлять собой существенные компоненты оборудования декодирования, и оборудование декодирования может реализовываться посредством большего или меньшего числа компонентов, чем компоненты, проиллюстрированные на фиг. 14.
[264] В оборудовании декодирования согласно примерному варианту осуществления, энтропийный декодер 310, модуль 330 прогнозирования и сумматор 340 могут реализовываться как отдельные микросхемы, соответственно, или, по меньшей мере, два или более компонента также могут реализовываться через одну микросхему.
[265] Оборудование декодирования согласно примерному варианту осуществления может принимать информацию внутреннего прогнозирования, включающую в себя, по меньшей мере, одно из информации MPM-флага, представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве наиболее вероятного режима планарного режима (S1300).
[266] В примере, информация внутреннего прогнозирования может включаться в синтаксис единицы кодирования.
[267] В примере, информация MPM-флага может представляться как intra_luma_mpm_flag, и информация планарного флага может представляться как intra_luma_not_planar_flag. Если значение intra_luma_not_planar_flag равно 1, может определяться то, что режим внутреннего прогнозирования для текущего блока не представляет собой планарный режим, и если значение intra_luma_not_planar_flag равно 0, может определяться то, что режим внутреннего прогнозирования для текущего блока представляет собой планарный режим.
[268] В другом примере, информация планарного флага также может представляться как intra_luma_planar_flag или intra_planar_flag. Если значение intra_luma_planar_flag равно 1, может определяться то, что режим внутреннего прогнозирования для текущего блока представляет собой планарный режим, и если значение intra_luma_planar_flag равно 0, может определяться то, что режим внутреннего прогнозирования для текущего блока не представляет собой планарный режим.
[269] В примере, оборудование декодирования может определять то, что значение информации MPM-флага связано с декодированием информации планарного флага, на основе определения того, что значение информации MPM-флага равно 1. Таким образом, оборудование декодирования может декодировать информацию планарного флага на основе определения того, что значение информации MPM-флага равно 1.
[270] Оборудование декодирования согласно примерному варианту осуществления может извлекать режим внутреннего прогнозирования для текущего блока на основе информации MPM-флага и информации планарного флага (S1310).
[271] Оборудование декодирования согласно примерному варианту осуществления может извлекать прогнозированный блок для текущего блока на основе режима внутреннего прогнозирования для текущего блока (S1320).
[272] Оборудование декодирования согласно примерному варианту осуществления может формировать восстановленный кадр на основе прогнозированного блока (S1330).
[273] В примерном варианте осуществления, информация планарного флага может включаться в информацию внутреннего прогнозирования, на основе случая, в котором информация MPM-флага представляет то, что режим внутреннего прогнозирования для текущего блока извлекается на основе возможных MPM-вариантов.
[274] В примерном варианте осуществления, извлечение режима внутреннего прогнозирования для текущего блока может включать в себя извлечение режима внутреннего прогнозирования для текущего блока в качестве планарного режима, на основе случая, в котором информация планарного флага представляет то, что режим внутреннего прогнозирования для текущего блока извлекается в качестве планарного режима.
[275] В примерном варианте осуществления, информация внутреннего прогнозирования дополнительно может включать в себя информацию MPM-индекса, связанную с одним из возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока. Информация MPM-индекса может включаться в информацию внутреннего прогнозирования на основе случая, в котором информация планарного флага представляет то, что режим внутреннего прогнозирования для текущего блока не извлекается в качестве планарного режима. Способ декодирования изображений отличается тем, что режим внутреннего прогнозирования для текущего блока извлекается на основе информации MPM-индекса. В примере, оборудование декодирования может проверять информацию MPM-индекса на основе такого результата проверки, что значение intra_luma_not_planar_flag равно 1.
[276] В примерном варианте осуществления, число возможных MPM-вариантов, отличных от планарного режима, из возможных MPM-вариантов для текущего блока может быть равным 5. В примере, возможные MPM-варианты могут включать в себя 1-ый - 5-ый возможные MPM-варианты. Первый возможный MPM-вариант может быть связан с MPM-индексом 0, второй возможный MPM-вариант может быть связан с MPM-индексом 1, третий возможный MPM-вариант может быть связан с MPM-индексом 2, четвертый возможный MPM-вариант может быть связан с MPM-индексом 3, и пятый возможный MPM-вариант может быть связан с MPM-индексом 4.
[277] В примерном варианте осуществления, информация MPM-индекса может представлять нулевой возможный MPM-вариант, первый возможный MPM-вариант, второй возможный MPM-вариант, третий возможный MPM-вариант или четвертый возможный MPM-вариант, который включается в возможные MPM-варианты, отличные от планарного режима, из возможных MPM-вариантов для текущего блока. В примере, на основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку является идентичным режиму внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку, и режим внутреннего прогнозирования левого соседнего блока превышает внутренний DC-режим, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 2+((внутреннее прогнозирование левого соседнего блока по отношению к текущему блоку+61)%64), и режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 2+((режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку - 1)%64).
[278] В примере, информация MPM-индекса может представляться как intra_luma_mpm_idx, и нулевой возможный MPM-вариант - четвертый возможный MPM-вариант, соответствующие MPM-индексу 0 - MPM-индексу 4, могут представляться как candModeList[0], candModeList[1], candModeList[2], candModeList [3] и candModeList [4], соответственно.
[279] В примере, если режим внутреннего прогнозирования для левого соседнего блока по отношению к текущему блоку представляет собой candIntraPredModeA, режим внутреннего прогнозирования для верхнего соседнего блока по отношению к текущему блоку представляет собой candIntraPredModeB, candIntraPredModeA и candIntraPredModeB являются идентичными, и candIntraPredModeA превышает INTRA_DC, нулевой возможный MPM-вариант, первый возможный MPM-вариант и второй возможный MPM-вариант из возможных MPM-вариантов, конфигурирующих MPM-список, могут определяться следующим образом.
[280] уравнение 1
[281] candModeList[0]=candIntraPredModeA
[282] candModeList[1]=2+((candIntraPredModeA+61)%64)
[283] candModeList[2]=2+((candIntraPredModeA-1)%64)
[284] В другом примере, на основе случая, в котором режим внутреннего прогнозирования левого соседнего блока по отношению к текущему блоку и режим внутреннего прогнозирования верхнего соседнего блока по отношению к текущему блоку не являются идентичными, режим внутреннего прогнозирования левого соседнего блока меньше или равен внутреннему DC-режиму, и режим внутреннего прогнозирования верхнего соседнего блока меньше или равен внутреннему DC-режиму, режим внутреннего прогнозирования для нулевого возможного MPM-варианта может представлять собой внутренний DC-режим, режим внутреннего прогнозирования для первого возможного MPM-варианта может представлять собой 50-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для второго возможного MPM-варианта может представлять собой 18-ый режим внутреннего прогнозирования, режим внутреннего прогнозирования для третьего возможного MPM-варианта может представлять собой 46-ой режим внутреннего прогнозирования, и режим внутреннего прогнозирования для четвертого возможного MPM-варианта может представлять собой 54-ый режим внутреннего прогнозирования.
[285] В примерном варианте осуществления, информация MPM-индекса может быть основана на процессе преобразования в двоичную форму усеченным кодом Райса (TR).
[286] В примерном варианте осуществления, cMax, указывающий максимальное значение информации MPM-индекса, может быть равным 4.
[287] Согласно оборудованию декодирования и способу для работы оборудования декодирования, проиллюстрированному на фиг. 13 и 14, оборудование декодирования может принимать информацию внутреннего прогнозирования, включающую в себя, по меньшей мере, одно из информации MPM-флага, представляющей то, следует или нет извлекать режим внутреннего прогнозирования для текущего блока на основе возможных вариантов наиболее вероятных режимов (MPM) для текущего блока, либо информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима (S1300), извлекать режим внутреннего прогнозирования для текущего блока на основе информации MPM-флага и информации планарного флага (S1310), извлекать прогнозированный блок для текущего блока на основе режима внутреннего прогнозирования для текущего блока (S1320) и формировать восстановленный кадр на основе прогнозированного блока (S1330). В это время, на основе случая, в котором информация MPM-флага представляет то, что режим внутреннего прогнозирования для текущего блока извлекается на основе возможных MPM-вариантов, информация планарного флага может включаться в информацию внутреннего прогнозирования.
[288] Таким образом, настоящее раскрытие сущности может повышать эффективность внутреннего прогнозирования на основе MPM-списка на основе информации планарного флага, представляющей то, следует или нет определять режим внутреннего прогнозирования для текущего блока в качестве планарного режима. Альтернативно, настоящее раскрытие сущности может повышать эффективность кодирования изображений посредством определения того, следует или нет передавать в служебных сигналах информацию планарного флага на основе информации MRL-индекса. Альтернативно, настоящее раскрытие сущности может эффективно конфигурировать MPM-список для текущего блока. Альтернативно, настоящее раскрытие сущности может определять значение индекса контекста для элемента разрешения, связанного с информацией планарного флага, на основе того, применяется или нет режим ISP к текущему блоку.
[289] В вышеуказанных вариантах осуществления, хотя способы описываются на основе блок-схем последовательности операций способа, показанных как последовательность этапов или блоков, настоящее раскрытие сущности не ограничено порядком этапов, и определенный этап может возникать в отличающемся порядке или одновременно с этапом, отличающимся от этапа, описанного выше. Дополнительно, специалисты в данной области техники должны понимать, что этапы, показанные на блок-схеме последовательности операций способа, не являются исчерпывающими, и другие этапы могут включаться, либо один или более этапов на блок-схемы последовательности операций способа могут удаляться без влияния на объем настоящего раскрытия сущности.
[290] Вышеуказанный способ согласно настоящему раскрытию сущности может реализовываться в форме программного обеспечения и оборудования кодирования, и/или оборудование декодирования согласно настоящему раскрытию сущности может включаться в оборудование для выполнения обработки изображений, например, телевизора, компьютера, смартфона, абонентской приставки, устройства отображения и т.п.
[291] Когда варианты осуществления в настоящем раскрытии сущности реализуются в программном обеспечении, вышеуказанный способ может реализовываться как модуль (процесс, функция и т.п.) для выполнения вышеуказанной функции. Модуль может сохраняться в запоминающем устройстве и выполняться посредством процессора. Запоминающее устройство может быть расположено внутри или снаружи процессора и может соединяться с процессором посредством различных известных средств. Процессор может включать в себя специализированные интегральные схемы (ASIC), другие наборы микросхем, логические схемы и/или устройства обработки данных. Запоминающее устройство может включать в себя постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память, карту памяти, носитель хранения данных и/или другие устройства хранения данных. Таким образом, варианты осуществления, описанные в настоящем раскрытии сущности, могут выполняться посредством реализации на процессоре, микропроцессоре, контроллере или микросхеме. Например, функциональные модули, проиллюстрированные на каждом чертеже, могут выполняться посредством реализации на компьютере, процессоре, микропроцессоре, контроллере или микросхеме. В этом случае, информация для реализации (например, информация относительно инструкций) или алгоритм может сохраняться на цифровом носителе хранения данных.
[292] Дополнительно, оборудование декодирования и оборудование кодирования, к которым применяется настоящее раскрытие сущности, могут включаться в широковещательное мультимедийное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство видеосвязи, устройство связи в реальном времени, к примеру, видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, поставщик услуг на основе технологии "видео по запросу (VoD)", видеоустройство поверх сетей (OTT-видео), поставщик услуг потоковой передачи по Интернету, трехмерное видеоустройство, устройство в стиле виртуальной реальности (VR), устройство в стиле дополненной реальности (AR), видеоустройство системы видеотелефонии, транспортировочный терминал (например, терминал в транспортном средстве (в том числе в автономном транспортном средстве), терминал в воздушном судне, терминал в морском судне и т.п.) и медицинское видеоустройство и т.п. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеоустройство может включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[293] Дополнительно, способ обработки, к которому применяется настоящее раскрытие сущности, может формироваться в форме программы, выполняемой посредством компьютера, и может сохраняться на машиночитаемом носителе записи. Мультимедийные данные, имеющие структуру данных согласно настоящему раскрытию сущности, также могут сохраняться на машиночитаемом носителе записи. Машиночитаемый носитель записи включает в себя все виды устройств хранения данных и устройств распределенного хранения данных, на которых сохраняются машиночитаемые данные. Машиночитаемый носитель записи может включать в себя, например, Blu-Ray-диск (BD), универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, гибкий диск и оптическое устройство хранения данных. Дополнительно, машиночитаемый носитель записи также включает в себя среды, реализованные в форме несущей волны (например, передачи по Интернету). Дополнительно, поток битов, сформированный посредством способа кодирования, может сохраняться на машиночитаемом носителе записи или передаваться через сети проводной/беспроводной связи.
[294] Дополнительно, варианты осуществления настоящего раскрытия сущности могут реализовываться как компьютерный программный продукт посредством программного кода, и программный код может выполняться на компьютере согласно вариантам осуществления настоящего раскрытия сущности. Программный код может сохраняться на машиночитаемом носителе.
[295] Этот документ относится к кодированию видео/изображений. Например, способ/вариант осуществления, раскрытый в этом документе, может применяться к способу, раскрытому в стандарте универсального кодирования видео (VVC), стандарте фундаментального кодирования видео (EVC), стандарте AOMedia Video 1 (AV1), стандарте второго поколения кодирования аудио/видео (AVS2) или стандарте кодирования видео/изображений следующего поколения (например, H.267, H.268 и т.п.).
[296] В этом документе, могут предоставляться множество вариантов осуществления, связанных с кодированием видео/изображений, и если не указано обратное, варианты осуществления могут комбинироваться между собой и выполняться.
[297] В этом документе, видео может означать последовательность изображений во времени. Кадр, в общем, означает единицу, представляющую одно изображение в конкретном временном кинокадре, и срез/плитка означает единицу, составляющую кадр с точки зрения кодирования. Срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU). Один кадр может состоять из одного или более срезов/плиток. Один кадр может состоять из одной или более групп плиток. Одна группа плиток может включать в себя одну или более плиток. Кирпич может представлять прямоугольную область CTU-строк в плитке в кадре. Плитка может сегментироваться на несколько кирпичей, каждый из которых состоит из одной или более CTU-строк в плитке. Плитка, которая не сегментируется на несколько кирпичей, также может называться "кирпичом". Кирпичное сканирование представляет собой конкретное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом CTU-сканировании в кирпиче, кирпичи внутри плитки упорядочиваются последовательно в растровом сканировании кирпичей плитки, и плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Плитка представляет собой прямоугольную область CTU в конкретном столбце плиток и конкретной строке плиток в кадре. Столбец плиток представляет собой прямоугольную область CTU, имеющих высоту, равную высоте кадра, и ширину, указываемую посредством синтаксических элементов в наборе параметров кадра. Строка плиток представляет собой прямоугольную область CTU, имеющих высоту, указываемую посредством синтаксических элементов в наборе параметров кадра, и ширину, равную ширине кадра. Сканирование плиток представляет собой указанное последовательное упорядочение CTU, сегментирующих кадр, при котором CTU упорядочиваются последовательно в растровом сканировании CTU в плитке, тогда как плитки в кадре упорядочиваются последовательно в растровом сканировании плиток кадра. Срез включает в себя собой целое число кирпичей кадра, которые могут содержаться исключительно в одной NAL-единице. Срез может состоять либо из определенного числа полных плиток, либо только из жесткой последовательности полных кирпичей одной плитки. В этом документе, группа плиток и срез могут использоваться взаимозаменяемо. Например, в этом документе, группа плиток/заголовок группы плиток также может называться "срезом/заголовком среза".
[298] Пиксел или пел может означать наименьшую единицу, составляющую один кадр (или изображение). Кроме того, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[299] Единица может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Одна единица может включать в себя один блок сигналов яркости и два блока сигналов цветности (например, cb, cr). Единица может использоваться взаимозаменяемо с такими терминами, как блок или зона в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[300] В этом документе, термин "/" и "" должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" может означать "A и/или B". Дополнительно, "A, B" может означать "A и/или B". Дополнительно, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C". Кроме того, "A/B/C" может означать "по меньшей мере, одно из A, B и/или C".
[301] Дополнительно, в документе, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только A, 2) только B и/или 3) как A, так и B. Другими словами, термин "или" в этом документе должен интерпретироваться как указывающий "дополнительно или альтернативно".
[302] Фиг. 15 представляет пример системы потоковой передачи контента, к которой может применяться раскрытие сущности настоящего документа.
[303] Ссылаясь на фиг 15, система потоковой передачи контента, к которой применяется настоящее раскрытие сущности, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[304] Сервер кодирования функционирует для того, чтобы сжимать в цифровые данные контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.п., чтобы формировать поток битов и передавать его на потоковый сервер. В качестве другого примера, в случае если смартфон, камера, записывающая видеокамера и т.п. непосредственно формирует поток битов, сервер кодирования может опускаться.
[305] Поток битов может формироваться посредством способа кодирования или способа формирования потоков битов, к которому применяется настоящее раскрытие сущности. Кроме того, потоковый сервер может временно сохранять поток битов в процессе для передачи или приема потока битов.
[306] Потоковый сервер передает мультимедийные данные в абонентское устройство на основе запроса пользователя через веб-сервер, который функционирует в качестве инструментария, который информирует пользователя в отношении того, какая услуга предусмотрена. Когда пользователь запрашивает услугу, которую он хочет, веб-сервер передает это на потоковый сервер, и потоковый сервер передает мультимедийные данные пользователю. В этом отношении, система потоковой передачи контента может включать в себя отдельный сервер управления, и в этом случае, сервер управления функционирует для того, чтобы управлять командами/ответами между соответствующим оборудованием в системе потоковой передачи контента.
[307] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, в случае, если контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, потоковый сервер может сохранять поток битов в течение предварительно определенного периода времени, чтобы плавно предоставлять услугу потоковой передачи.
[308] Например, абонентское устройство может включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, терминал в виде часов (интеллектуальные часы), терминал в виде очков (интеллектуальные очки), наголовный дисплей (HMD)), цифровой телевизор, настольный компьютер, систему цифровых информационных табло и т.п.
[309] Каждый из серверов в системе потоковой передачи контента может работать в качестве распределенного сервера, и в этом случае, данные, принимаемые посредством каждого сервера, могут распределенно обрабатываться.