СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ РЕЖИМА ВНУТРИБЛОЧНОГО КОПИРОВАНИЯ И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ
METHOD AND APPARATUS FOR VIDEO ENCODING/DECODING USING INTRABLOCK COPY MODE AND METHOD FOR TRANSMITTING A BIT STREAM

Область техники, к которой относится изобретение
[1] Настоящее раскрытие сущности относится к способу и устройству кодирования/декодирования изображений и к способу передачи потока битов, а более конкретно, к способу и устройству для кодирования/декодирования изображения с использованием ядра преобразования и к способу передачи потока битов, сформированного за счет этого.
Уровень техники
[2] В последнее время, спрос на высококачественные изображения высокого разрешения, к примеру, изображения высокой четкости (HD) и изображения сверхвысокой четкости (UHD) растет в различных областях техники. По мере того, как разрешение и качество данных изображений повышается, объем передаваемой информации или битов относительно увеличивается по сравнению с существующими данными изображений. Увеличение объема передаваемой информации или битов приводит к увеличению затрат на передачу и затрат на хранение.
[3] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации относительно высококачественных изображений высокого разрешения.
Сущность изобретения
Техническая задача
[4] Цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
[5] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и устройство для кодирования/декодирования изображения посредством изменения способа выбора ядра преобразования согласно режиму кодирования.
[6] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ передачи потока битов, формируемого посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
[7] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
[8] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.
[9] Технические проблемы, разрешаемые посредством настоящего раскрытия сущности, не ограничены вышеуказанными техническими проблемами, и другие технические проблемы, которые не описываются в данном документе, должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Техническое решение
[10] Способ декодирования изображений, осуществляемый посредством устройства декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, может включать в себя определение режима прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, полученной из потока битов, получение блока коэффициентов преобразования текущего блока из потока битов, деквантование коэффициента преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования, определение ядра преобразования для блока деквантованных коэффициентов преобразования и формирование остаточного блока для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования.
[11] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования может определяться на основе информации индекса ядра преобразования, полученной из потока битов.
[12] Когда режим прогнозирования текущего блока не представляет собой ни режим внешнего прогнозирования, ни режим внутреннего прогнозирования, информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.
[13] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.
[14] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), информация индекса ядра преобразования может извлекаться в качестве значения, указывающего любое ядро преобразования между DCT2 и DCT7.
[15] Определение ядра преобразования для блока деквантованных коэффициентов преобразования может включать в себя извлечение ядра преобразования текущего блока, на основе первой информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и второй информации флага, указывающей то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, и первая информация флага и вторая информация флага может получаться из потока битов.
[16] Когда первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), ядро преобразования текущего блока может извлекаться на основе ширины и высоты текущего блока.
[17] Ядро преобразования текущего блока может включать в себя ядро горизонтального преобразования и ядро вертикального преобразования, ядро горизонтального преобразования текущего блока может определяться на основе того, находится или нет ширина текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока, и ядро вертикального преобразования текущего блока может определяться на основе того, находится или нет высота текущего блока в пределах предварительно определенного диапазона, и на основе сравнения между шириной и высотой текущего блока
[18] Когда по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), ядро преобразования текущего блока может извлекаться на основе информации индекса ядра преобразования, и информация индекса ядра преобразования может не получаться из потока битов и может извлекаться в качестве предварительно определенного значения.
[19] Когда информация индекса ядра преобразования не получается из потока битов, информация индекса ядра преобразования может извлекаться в качестве предварительно определенного значения. В это время, когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), который ссылается на блок, расположенный в том же самом кадре, что и текущий блок, и декодированный перед текущим блоком, информация индекса ядра преобразования может извлекаться в качестве первого значения. Когда режим прогнозирования текущего блока представляет собой режим прогнозирования, отличный от IBC-режима, информация индекса ядра преобразования может извлекаться в качестве второго значения, отличающегося от первого значения.
[20] Устройство декодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем включает в себя запоминающее устройство и по меньшей мере один процессор. По меньшей мере один процессор может определять режим прогнозирования текущего блока на основе информации режима прогнозирования текущего блока, полученной из потока битов, получать блок коэффициентов преобразования текущего блока из потока битов, деквантовать коэффициент преобразования, чтобы сформировать блок деквантованных коэффициентов преобразования, определять ядро преобразования для блока деквантованных коэффициентов преобразования и формировать остаточный блок для текущего блока посредством выполнения обратного преобразования в отношении блока деквантованных коэффициентов преобразования с использованием ядра преобразования.
[21] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, ядро преобразования может определяться на основе информации индекса ядра преобразования, полученной из потока битов.
[22] Помимо этого, способ кодирования изображений, осуществляемый посредством устройства кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем, включает в себя выбор режима прогнозирования текущего блока, формирование блока прогнозирования для текущего блока на основе выбранного режима прогнозирования, формирование остаточного блока для текущего блока на основе блока прогнозирования, выбор ядра преобразования для преобразования остаточного блока на основе режима прогнозирования, преобразование остаточного блока на основе ядра преобразования, чтобы сформировать блок коэффициентов преобразования, квантование блока коэффициентов преобразования, чтобы сформировать блок квантованных коэффициентов преобразования, и кодирование блока квантованных коэффициентов преобразования, чтобы сформировать поток битов.
[23] Когда режим прогнозирования текущего блока представляет собой режим внешнего прогнозирования или режим внутреннего прогнозирования, информация индекса ядра преобразования для ядра преобразования, используемого для преобразования остаточного блока, может включаться в поток битов.
[24] Когда режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования, и информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов.
[25] Первая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внутреннего прогнозирования, включаться в поток битов, и вторая информация флага, указывающая то, может или нет информация индекса ядра преобразования текущего блока, кодированного в режиме внешнего прогнозирования, включаться в поток битов, может включаться в поток битов. В это время, когда по меньшей мере одна из первой информации флага и второй информации флага имеет второе значение, указывающее то, что информация индекса ядра преобразования может включаться в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования. Кроме того, информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов.
[26] Когда первая информация флага и вторая информация флага имеют первое значение, указывающее то, что информация индекса ядра преобразования не включается в поток битов, и режим прогнозирования текущего блока представляет собой режим внутриблочного копирования (IBC), преобразование остаточного блока может выполняться на основе предварительно определенного ядра преобразования. В это время, предварительно определенное ядро преобразования может извлекаться на основе ширины и высоты текущего блока. Кроме того, информация индекса ядра преобразования для предварительно определенного ядра преобразования, используемого для преобразования остаточного блока, может не включаться в поток битов.
[27] Помимо этого, устройство кодирования изображений согласно варианту осуществления для разрешения вышеуказанных проблем может передавать поток битов, сформированный так, как описано выше.
Преимущества изобретения
[28] Согласно настоящему раскрытию сущности, можно предоставлять способ и устройство кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
[29] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ и устройство для кодирования/декодирования изображения посредством изменения способа выбора ядра преобразования согласно режиму кодирования.
[30] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ передачи потока битов, формируемого посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
[31] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, сформированный посредством способа или устройства кодирования изображений согласно настоящему раскрытию сущности.
[32] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, хранящий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством устройства декодирования изображений согласно настоящему раскрытию сущности.
[33] Специалисты в данной области техники должны принимать во внимание, что преимущества, которые могут достигаться через настоящее раскрытие сущности, не ограничены тем, что конкретно описано выше, и другие преимущества настоящего раскрытия сущности должны более ясно пониматься из подробного описания.
Краткое описание чертежей
[34] Фиг. 1 является видом, схематично иллюстрирующим систему кодирования видео согласно варианту осуществления.
[35] Фиг. 2 является видом, схематично иллюстрирующим устройство кодирования изображений согласно варианту осуществления.
[36] Фиг. 3 является видом, схематично иллюстрирующим устройство декодирования изображений согласно варианту осуществления.
[37] Фиг. 4-11 являются видами, иллюстрирующими режим кодирования согласно варианту осуществления.
[38] Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей способ кодирования и декодирования с использованием преобразования и обратного преобразования посредством устройства кодирования и устройства декодирования согласно варианту осуществления.
[39] Фиг. 13 и 14 являются блок-схемами последовательности операций, иллюстрирующими способ выполнения преобразования и обратного преобразования посредством устройства кодирования и устройства декодирования согласно варианту осуществления.
[40] Фиг. 15 является видом, иллюстрирующим ядро преобразования согласно варианту осуществления.
[41] Фиг. 16-18 являются видами, иллюстрирующими вариант осуществления выполнения кодирования и декодирования с использованием ядра преобразования посредством устройства кодирования и устройства декодирования.
[42] Фиг. 19-24 являются видами, иллюстрирующими другой вариант осуществления выполнения кодирования и декодирования с использованием ядра преобразования посредством устройства кодирования и устройства декодирования.
[43] Фиг. 25 является видом, показывающим систему потоковой передачи контента согласно варианту осуществления.
Оптимальный режим осуществления изобретения
[44] В дальнейшем в этом документе подробно описываются варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи, так что они легко могут реализовываться специалистами в данной области техники. Тем не менее, настоящее раскрытие сущности может реализовываться во всевозможных формах и не ограничено вариантами осуществления, описанными в данном документе.
[45] При описании настоящего раскрытия сущности, если определяется то, что подробное описание связанной известной функции или конструкции приводит к излишней неоднозначности объема настоящего раскрытия сущности, ее подробное описание опускается. На чертежах, части, не связанные с описанием настоящего раскрытия сущности, опускаются, и аналогичные ссылки с номерами присоединяются к аналогичным частям.
[46] В настоящем раскрытии сущности, когда компонент "соединяется (connected)", "соединяется (coupled)" или "связывается (linked)" с другим компонентом, это может включать в себя не только непосредственную взаимосвязь на основе соединения, но также и косвенную взаимосвязь на основе соединения, в которой присутствует промежуточный компонент. Помимо этого, когда компонент "включает в себя" или "имеет" другие компоненты, это означает то, что другие компоненты могут включаться дополнительно, а не исключение других компонентов, если не указано иное.
[47] В настоящем раскрытии сущности, термины "первый", "второй" и т.д. могут использоваться только для целей различения одного компонента от других компонентов и не ограничивают порядок или важность компонентов, если не указано иное. Соответственно, в пределах объема настоящего раскрытия сущности, первый компонент в одном варианте осуществления может называться "вторым компонентом" в другом варианте осуществления, и аналогично, второй компонент в одном варианте осуществления может называться "первым компонентом" в другом варианте осуществления.
[48] В настоящем раскрытии сущности, компоненты, которые отличаются друг от друга, имеют намерение ясно описывать каждый признак и не означают то, что компоненты обязательно разделяются. Таким образом, множество компонентов могут интегрироваться и реализовываться в одном аппаратном или программном модуле, или один компонент может распределяться и реализовываться во множестве аппаратных или программных модулей. Следовательно, даже если не указано иное, такие варианты осуществления, в которых компоненты интегрируются, или компонент распределяется, также включаются в объем настоящего раскрытия сущности.
[49] В настоящем раскрытии сущности, компоненты, описанные в различных вариантах осуществления, не обязательно означают существенные компоненты, и некоторые компоненты могут представлять собой необязательные компоненты. Соответственно, вариант осуществления, состоящий из поднабора компонентов, описанных в варианте осуществления, также включается в объем настоящего раскрытия сущности. Помимо этого, варианты осуществления, включающие в себя другие компоненты, в дополнение к компонентам, описанным в различных вариантах осуществления, включаются в объем настоящего раскрытия сущности.
[50] Настоящее раскрытие сущности относится к кодированию и декодированию изображения, и термины, используемые в настоящем раскрытии сущности, могут иметь общий смысл, широко используемый в области техники, которой принадлежит настоящее раскрытие сущности, если не задаются впервые в настоящем раскрытии сущности.
[51] В дальнейшем в этом документе, настоящее раскрытие сущности раскрывает технологию кодирования видео/изображений. Способ кодирования/декодирования, раскрытый в настоящем раскрытии сущности и в его вариантах осуществления, является применимым к способам, раскрытым в стандарте универсального кодирования видео (VVC) или в стандарте кодирования видео/изображений следующего поколения.
[52] Настоящее раскрытие сущности предоставляет различные варианты осуществления, связанные с кодированием видео/изображений, и если не указано иное, варианты осуществления могут выполняться в комбинации между собой.
[53] В настоящем раскрытии сущности, "кадр", в общем, означает единицу, представляющую одно изображение в конкретный период времени, и слайс/тайл представляет собой единицу кодирования, составляющую часть кадра, и один кадр может состоять из одного или более слайсов/тайлов. Помимо этого, слайс/тайл может включать в себя одну или более единиц дерева кодирования (CTU).
[54] В настоящем раскрытии сущности, "пиксел" или "пел" может означать наименьшую единицу, составляющую один кадр (или изображение). Помимо этого, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности.
[55] В настоящем раскрытии сущности, "единица" может представлять базовую единицу обработки изображений. Единица может включать в себя по меньшей мере одно из конкретной области кадра и информации, связанной с областью. Единица может использоваться взаимозаменяемо с такими терминами, как "массив выборок", "блок" или "зона" в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[56] В настоящем раскрытии сущности, "текущий блок" может означать одно из "текущего блока кодирования", "текущей единицы кодирования", "целевого блока кодирования", "целевого блока декодирования" или "целевого блока обработки". Когда прогнозирование выполняется, "текущий блок" может означать "текущий блок прогнозирования" или "целевой блок прогнозирования". Когда преобразование (обратное преобразование)/квантование (деквантование) выполняется, "текущий блок" может означать "текущий блок преобразования" или "целевой блок преобразования". Когда фильтрация выполняется, "текущий блок" может означать "целевой блок фильтрации".
[57] В настоящем раскрытии сущности, термин "/" и "" должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" и "A, B" может означать "A и/или B". Дополнительно, "A/B/C" и "A/B/C" может означать "по меньшей мере одно из A, B и/или C".
[58] В настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только "A", 2) только "B" и/или 3) "как A, так и B". Другими словами, в настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "дополнительно или альтернативно".
Общее представление системы кодирования видео
[59]
[60] Фиг. 1 является видом, показывающим систему кодирования видео согласно варианту осуществления. Система кодирования видео согласно варианту осуществления может включать в себя устройство 10 кодирования и устройство 20 декодирования. Устройство 10 кодирования может доставлять кодированную информацию или данные видео и/или изображений в устройство 20 декодирования в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть.
[61] Устройство 10 кодирования согласно варианту осуществления может включать в себя формирователь 11 видеоисточников, модуль 12 кодирования и передатчик 13. Устройство 20 декодирования согласно варианту осуществления может включать в себя приемник 21, модуль 22 декодирования и модуль 23 рендеринга. Модуль 12 кодирования может называться "модулем кодирования видео/изображений", и модуль 22 декодирования может называться "модулем декодирования видео/изображений". Передатчик 13 может включаться в модуль 12 кодирования. Приемник 21 может включаться в модуль 22 декодирования. Модуль 23 рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[62] Формирователь 11 видеоисточников может получать видео/изображение через процесс захвата, синтезирования или формирования видео/изображения. Формирователь 11 видеоисточников может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[63] Модуль 12 кодирования может кодировать входное видео/изображение. Модуль 12 кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Модуль 12 кодирования может выводить кодированные данные (кодированную информацию видео/изображений) в форме потока битов.
[64] Передатчик 13 может передавать кодированную информацию или данные видео/изображений, выводимую в форме потока битов, в приемник 21 устройства 20 декодирования через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную сеть/сеть связи. Приемник 21 может извлекать/принимать поток битов из носителя хранения данных или сети и передавать поток битов в модуль 22 декодирования.
[65] Модуль 22 декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе модуля 12 кодирования.
[66] Модуль 23 рендеринга может подготавливать посредством рендеринга декодированное видео/изображение. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
Общее представление устройства кодирования изображений
[67]
[68] Фиг. 2 является видом, схематично показывающим устройство кодирования изображений согласно варианту осуществления. Как показано на фиг. 2, устройство 100 кодирования изображений может включать в себя модуль 110 сегментации изображений, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, запоминающее устройство 170, модуль 180 внешнего прогнозирования, модуль 185 внутреннего прогнозирования и энтропийный кодер 190. Модуль 180 внешнего прогнозирования и модуль 185 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Преобразователь 120, квантователь 130, деквантователь 140 и обратный преобразователь 150 могут включаться в остаточный процессор. Остаточный процессор дополнительно может включать в себя вычитатель 115.
[69] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 100 кодирования изображений, могут быть сконфигурированы посредством одного аппаратного компонента (например, кодера или процессора) в некоторых вариантах осуществления. Помимо этого, запоминающее устройство 170 может включать в себя буфер декодированных кадров (DPB) и может быть сконфигурировано посредством цифрового носителя хранения данных.
[70] Модуль 110 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в устройство 100 кодирования изображений, на одну более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". Единица кодирования может получаться посредством рекурсивной сегментации единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QT/BT/TT). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. Для сегментации единицы кодирования, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и/или троичная структура. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. В этом случае, на основе эффективности кодирования согласно характеристикам изображений, наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования, или единица кодирования большей глубины, полученной посредством сегментации наибольшей единицы кодирования, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, единица обработки процедуры кодирования может представлять собой единицу прогнозирования (PU) или единицу преобразования (TU). Единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[71] Модуль прогнозирования (модуль 180 внешнего прогнозирования или модуль 185 внутреннего прогнозирования) может выполнять прогнозирование относительно блока, который должен обрабатываться (текущего блока), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование, на основе текущего блока или CU. Модуль прогнозирования может формировать различную информацию, связанную с прогнозированием текущего блока, и передавать сформированную информацию в энтропийный кодер 190. Информация относительно прогнозирования может кодироваться в энтропийном кодере 190 и выводиться в форме потока битов.
[72] Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму внутреннего прогнозирования и/или технологии внутреннего прогнозирования. Режимы внутреннего прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[73] Модуль 180 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п. Опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 180 внешнего прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может передаваться в служебных сигналах посредством кодирования разности векторов движения и индикатора для предиктора вектора движения. Разность векторов движения может означать разность между вектором движения текущего блока и предиктором вектора движения.
[74] Модуль прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования и технологий прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или внешнее прогнозирование, но также и одновременно применять как внутреннее прогнозирование, так и внешнее прогнозирование, чтобы прогнозировать текущий блок. Способ прогнозирования с одновременным применением как внутреннего прогнозирования, так и внешнего прогнозирования для прогнозирования текущего блока может называться "комбинированным внешним и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования текущего блока. Внутриблочное копирование может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC представляет собой способ прогнозирования текущего кадра с использованием ранее восстановленного опорного блока в текущем кадре в местоположении, разнесенном от текущего блока на предварительно определенное расстояние. Когда IBC применяется, местоположение опорного блока в текущем кадре может кодироваться как вектор (блочный вектор), соответствующий предварительно определенному расстоянию. IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично внешнему прогнозированию, в котором опорный блок извлекается внутри текущего кадра. Таким образом, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования, описанных в настоящем раскрытии сущности.
[75] Прогнозный сигнал, сформированный посредством модуля прогнозирования, может использоваться для того, чтобы сформировать восстановленный сигнал или формировать остаточный сигнал. Вычитатель 115 может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого из модуля прогнозирования, из сигнала входного изображения (исходного блока или массива исходных выборок). Сформированный остаточный сигнал может передаваться в преобразователь 120.
[76] Преобразователь 120 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[77] Квантователь 130 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 130 может перекомпоновывать квантованные коэффициенты преобразования в блочной форме в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме.
[78] Энтропийный кодер 190 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 190 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах слоев абстрагирования от сети (NAL) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Передаваемая в служебных сигналах информация, передаваемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут кодироваться через вышеописанную процедуру кодирования и включаться в поток битов.
[79] Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 190, и/или модуль хранения (не показан), хранящий сигнал, могут включаться в качестве внутреннего/внешнего элемента устройства 100 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 190.
[80] Квантованные коэффициенты преобразования, выводимые из квантователя 130, могут использоваться для того, чтобы сформировать остаточный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 140 и обратный преобразователь 150.
[81] Сумматор 155 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 180 внешнего прогнозирования или модуля 185 внутреннего прогнозирования, с тем чтобы сформировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 155 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[82] Фильтр 160 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 160 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 170, а именно, в DPB запоминающего устройства 170. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 160 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 190, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 190 и выводиться в форме потока битов.
[83] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 170, может использоваться в качестве опорного кадра в модуле 180 внешнего прогнозирования. Когда внешнее прогнозирование применяется через устройство 100 кодирования изображений, рассогласование прогнозирования между устройством 100 кодирования изображений и устройством декодирования изображений может исключаться, и эффективность кодирования может повышаться.
[84] DPB запоминающего устройства 170 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 180 внешнего прогнозирования. Запоминающее устройство 170 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 180 внешнего прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 170 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 185 внутреннего прогнозирования.
Общее представление устройства декодирования изображений
[85]
[86] Фиг. 3 является видом, схематично показывающим устройство декодирования изображений согласно варианту осуществления. Как показано на фиг. 3, устройство 200 декодирования изображений может включать в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, запоминающее устройство 250, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Деквантователь 220 и обратный преобразователь 230 могут включаться в остаточный процессор.
[87] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих устройство 200 декодирования изображений, могут быть сконфигурированы посредством аппаратного компонента (например, декодера или процессора) согласно варианту осуществления. Помимо этого, запоминающее устройство 250 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных.
[88] Устройство 200 декодирования изображений, которое принимает поток битов, включающий в себя информацию видео/изображений, может восстанавливать изображение посредством выполнения процесса, соответствующего процессу, выполняемому посредством устройства 100 кодирования изображений по фиг. 2. Например, устройство 200 декодирования изображений может выполнять декодирование с использованием единицы обработки, применяемой в устройстве кодирования изображений. Таким образом, единица обработки декодирования, например, может представлять собой единицу кодирования. Единица кодирования может получаться посредством сегментации единицы дерева кодирования или наибольшей единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством устройства 200 декодирования, может воспроизводиться посредством устройства воспроизведения.
[89] Устройство 200 декодирования изображений может принимать сигнал, выводимый из устройства кодирования изображений по фиг. 2 в форме потока битов. Принимаемый сигнал может декодироваться через энтропийный декодер 210. Например, энтропийный декодер 210 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Устройство декодирования изображений дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут декодироваться посредством процедуры декодирования и получаться из потока битов. Например, энтропийный декодер 210 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных значений синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать бин, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования соседнего блока и целевого блока декодирования или информации символа/бина, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для бина посредством прогнозирования вероятности появления бина согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/бина для контекстной модели следующего символа/бина после определения контекстной модели. Информация, связанная с прогнозированием из информации, декодированной посредством энтропийного декодера 210, может предоставляться в модуль прогнозирования (модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 210, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в деквантователь 220. Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 210, может предоставляться в фильтр 240. Между тем, приемник (не показано) для приема сигнала, выводимого из устройства кодирования изображений, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента устройства 200 декодирования изображений, или приемник может представлять собой компонент энтропийного декодера 210.
[90] Между тем, устройство декодирования изображений согласно настоящему раскрытию сущности может называться "устройством декодирования видео/изображений/кадров". Устройство декодирования изображений может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 210. Выборочный декодер может включать в себя по меньшей мере одно из деквантователя 220, обратного преобразователя 230, сумматора 235, фильтра 240, запоминающего устройства 250, модуля 260 внешнего прогнозирования или модуля 265 внутреннего прогнозирования.
[91] Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в устройстве кодирования изображений. Деквантователь 220 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[92] Обратный преобразователь 230 может обратно преобразовывать коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[93] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или внешнее прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 210, и может определять конкретный режим внутреннего/внешнего прогнозирования.
[94] Идентично тому, что описано в модуле прогнозирования устройства 100 кодирования изображений, модуль прогнозирования может формировать прогнозный сигнал на основе различных способов (технологий) прогнозирования, которые описываются ниже.
[95] Например, единица прогнозирования может применять внутреннее прогнозирование или внешнее прогнозирование или одновременно применять внутреннее прогнозирование и внешнее прогнозирование для прогнозирования одного блока. Это может называться "комбинированным внешним и внутренним прогнозированием (CIIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования блока. Внутриблочное копирование может использоваться для того, чтобы кодировать изображение/видео контента, такого как игра, к примеру, выполнять кодирование экранного контента (SCC). IBC может выполняться аналогично внешнему прогнозированию в том, что прогнозирование выполняется в текущем кадре, но опорный блок извлекается из текущего кадра. Таким образом, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования, описанных в настоящем документе.
[96] Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок со ссылкой на выборки в текущем кадре. Описание модуля 185 внутреннего прогнозирования в равной степени применяется к модулю 265 внутреннего прогнозирования. Выборки, на которые ссылаются, могут быть расположены в окрестности (рядом) или с разнесением от текущего блока. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 265 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, с использованием режима прогнозирования, применяемого к соседнему блоку.
[97] Модуль 260 внешнего прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 260 внешнего прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим внешнего прогнозирования для текущего блока.
[98] Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 260 внешнего прогнозирования и/или модуль 265 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Описание сумматора 155 является в равной степени применимым к сумматору 235. Сумматор 235 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для внешнего прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[99] Фильтр 240 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 240 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 250, а именно, в DPB запоминающего устройства 250. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[100] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 250, может использоваться в качестве опорного кадра в модуле 260 внешнего прогнозирования. Запоминающее устройство 250 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 внешнего прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 250 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 265 внутреннего прогнозирования.
[101] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 160, модуле 180 внешнего прогнозирования и модуле 185 внутреннего прогнозирования устройства 100 кодирования изображений могут в равной степени или соответствующим образом применяться к фильтру 240, модулю 260 внешнего прогнозирования и модулю 265 внутреннего прогнозирования устройства 200 декодирования изображений, соответственно, и вариантов осуществления, описанных в фильтре 240, модуль 260 внешнего прогнозирования и модуль 265 внутреннего прогнозирования устройства 200 декодирования изображений в равной степени или соответствующим образом применяются к фильтру 160, модулю 180 внешнего прогнозирования и модулю 185 внутреннего прогнозирования устройства 100 кодирования изображений, соответственно.
Общее представление внутреннего прогнозирования
[102]
[103] В дальнейшем в этом документе описывается способ внутреннего прогнозирования согласно варианту осуществления. Внутреннее прогнозирование может указывать прогнозирование, которое формирует прогнозные выборки для текущего блока на основе опорных выборок в кадре, которому принадлежит текущий блок (далее называется "текущим кадром"). Когда внутреннее прогнозирование применяется к текущему блоку, соседние опорные выборки, которые должны использоваться для внутреннего прогнозирования текущего блока, могут извлекаться. Соседние опорные выборки текущего блока могут включать в себя выборку, смежную с левой границей текущего блока, имеющего размер nWxnH, и сумму 2xnH выборок, граничащих с левой нижней частью, выборки, смежной с верхней границей текущего блока, и сумму 2xnW выборок, граничащих с правой верхней частью, и одну выборку, граничащую с левой верхней частью относительно текущего блока. Альтернативно, соседние опорные выборки текущего блока могут включать в себя множество столбцов верхних соседних выборок и множество строк левых соседних выборок. Помимо этого, соседние опорные выборки текущего блока могут включать в себя сумму nH выборок, смежных с правой границей текущего блока, имеющего размер nWxnH, сумму nW выборок, смежных с нижней границей текущего блока, и одну выборку, граничащую с правой нижней относительно текущего блока. Между тем, когда ISP, которая описывается ниже, применяется, соседние опорные выборки могут извлекаться в единицах субсегментов.
[104] С другой стороны, некоторые соседние опорные выборки текущего блока еще не декодировались или могут не быть доступными. В этом случае, устройство декодирования может конструировать соседние опорные выборки, которые должны использоваться для прогнозирования, посредством подстановки вместо недоступных выборок доступных выборок. Альтернативно, соседние опорные выборки, которые должны использоваться для прогнозирования, могут конструироваться с использованием интерполяции доступных выборок.
[105] Когда соседние опорные выборки извлекаются, (i) прогнозная выборка может извлекаться на основе среднего или интерполяции соседних опорных выборок текущего блока, и (ii) прогнозная выборка может извлекаться на основе опорной выборки, присутствующей в конкретном направлении (прогнозирования) относительно прогнозной выборки из соседних опорных выборок текущего блока. Случай (i) может называться "ненаправленным режимом" или "неугловым режимом", и случай (ii) может называться "направленным режимом" или "угловым режимом". Помимо этого, прогнозная выборка может формироваться через интерполяцию со второй соседней выборкой и первой соседней выборкой, расположенной в противоположном направлении направления прогнозирования режима внутреннего прогнозирования текущего блока на основе прогнозной выборки текущего блока из соседних опорных выборок. Вышеописанный случай может называться "внутренним прогнозированием с линейной интерполяцией (LIP)". Помимо этого, выборки прогнозирования сигналов цветности могут формироваться на основе выборок сигнала яркости с использованием линейной модели. Вышеописанный случай может называться "LM-режимом". Помимо этого, временная прогнозная выборка текущего блока может извлекаться на основе фильтрованных соседних опорных выборок, и прогнозная выборка текущего блока может извлекаться посредством суммирования со взвешиванием временной прогнозной выборки и по меньшей мере одной опорной выборки, извлекаемой согласно режиму внутреннего прогнозирования из существующих соседних опорных выборок, т.е. нефильтрованных соседних опорных выборок. Вышеописанный случай может называться "позиционно-зависимым внутренним прогнозированием (PDPC)". Помимо этого, опорная выборочная линия с наибольшей точностью прогнозирования может выбираться из нескольких соседних опорных выборочных линий текущего блока, чтобы извлекать прогнозную выборку с использованием опорной выборки, расположенной в направлении прогнозирования в соответствующей линии, и, в это время, внутреннее прогнозирующее кодирование может выполняться посредством указания (передачи в служебных сигналах) используемой опорной выборочной линии для устройства декодирования. Вышеописанный случай может называться "внутренним прогнозированием на основе множественной опорной линии (MRL)" или "внутренним прогнозированием на основе MRL". Помимо этого, текущий блок может разделяться на вертикальные или горизонтальные субсегменты, чтобы выполнять внутреннее прогнозирование на основе идентичного режима внутреннего прогнозирования, и соседние опорные выборки могут извлекаться и использоваться в единицах субсегментов. Таким образом, в этом случае, режим внутреннего прогнозирования для текущего блока идентично применяется к субсегментам, и соседние опорные выборки извлекаются и используются в единицах субсегментов, за счет этого повышая производительность внутреннего прогнозирования. Такой способ прогнозирования может называться "внутренним прогнозированием на основе внутренних субсегментов (ISP) или на основе ISP". Помимо этого, когда направление прогнозирования на основе прогнозной выборки указывает пространство между соседними опорными выборками, т.е. когда направление прогнозирования указывает дробную выборочную позицию, значение прогнозной выборки может извлекаться через интерполяцию множества опорных выборок, расположенных около направления прогнозирования (около дробной выборочной позиции). Вышеописанные способы внутреннего прогнозирования могут называться "типом внутреннего прогнозирования", чтобы отличаться от режима внутреннего прогнозирования. Помимо этого, после того, как прогнозный сигнал для субдискретизированного пиксельного набора текущего блока формируется с использованием восстановленных соседних пикселов, расположенных слева и вершина текущего блока, сформированный прогнозный сигнал и соседнее выборочное значение могут интерполироваться в вертикальном и горизонтальном направлениях, чтобы сформировать прогнозный сигнал, имеющий исходный размер, за счет этого применяя матричное взвешенное внутреннее прогнозирование (MIP) для выполнения внутреннего прогнозирования текущего блока.
[106] Тип внутреннего прогнозирования может называться с помощью различных терминов, таких как схема внутреннего прогнозирования или дополнительный режим внутреннего прогнозирования. Например, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Информация относительно типа внутреннего прогнозирования может кодироваться посредством устройства кодирования, включаться в поток битов и передаваться в служебных сигналах в устройство декодирования. Информация относительно типа внутреннего прогнозирования может реализовываться в различных формах, к примеру, как информация флага, указывающая то, следует или нет применять каждый тип внутреннего прогнозирования, либо как информация индекса, указывающая один из нескольких типов внутреннего прогнозирования.
[107] Между тем, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки. В частности, процедура внутреннего прогнозирования может включать в себя этап определения режима/типа внутреннего прогнозирования, этап извлечения соседних опорных выборок и этап извлечения прогнозных выборок на основе режима/типа внутреннего прогнозирования. Помимо этого, при необходимости, постфильтрация может выполняться относительно извлеченной прогнозной выборки.
[108] В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Во-первых, устройство кодирования выполняет внутреннее прогнозирование относительно текущего блока. Устройство кодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока, извлекать соседние опорные выборки текущего блока и формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. Здесь, процедуры определения режима/типа внутреннего прогнозирования, извлечения соседних опорных выборок и формирования прогнозных выборок могут одновременно выполняться, или любая процедура может выполняться перед другими процедурами. Между тем, когда нижеописанная процедура фильтрации прогнозных выборок выполняется, модуль 185 внутреннего прогнозирования дополнительно может включать в себя фильтр прогнозных выборок. Устройство кодирования может определять режим/тип, применяемый к текущему блоку, из множества режимов/типов внутреннего прогнозирования. Устройство кодирования может сравнивать функцию затрат на искажение в зависимости от скорости передачи (RD) для режимов/типов внутреннего прогнозирования и определять оптимальный режим/тип внутреннего прогнозирования для текущего блока.
[109] Между тем, устройство кодирования может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.
[110] Затем, устройство кодирования может формировать остаточные выборки для текущего блока на основе прогнозных выборок. Устройство кодирования может сравнивать прогнозные выборки в исходных выборках текущего блока на основе фазы и извлекать остаточные выборки.
[111] Затем, устройство кодирования может кодировать информацию изображений, включающую в себя информацию относительно внутреннего прогнозирования (информацию прогнозирования) и остаточную информацию относительно остаточных выборок. Информация прогнозирования может включать в себя информацию режима внутреннего прогнозирования и информацию типа внутреннего прогнозирования. Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Выходной поток битов может передаваться в устройство декодирования через носитель хранения данных или сеть.
[112] Остаточная информация может включать в себя синтаксис остаточного кодирования, который описывается ниже. Устройство кодирования может преобразовывать/квантовать остаточные выборки и извлекать квантованные коэффициенты преобразования. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования.
[113] Между тем, как описано выше, устройство кодирования изображений может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок). С этой целью, устройство кодирования изображений может выполнять обратное квантование/обратное преобразование относительно квантованных коэффициентов преобразования и извлекать (модифицированные) остаточные выборки. Причина преобразования/квантования остаточных выборок и затем выполнения обратного квантования/обратного преобразования состоит в том, чтобы извлекать идентичные остаточные выборки в качестве остаточных выборок, извлекаемых посредством устройства декодирования, как описано выше. Устройство кодирования может формировать восстановленный блок, включающий в себя восстановленные выборки для текущего блока, на основе прогнозных выборок и (модифицированных) остаточных выборок. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Как описано выше, процедура внутриконтурной фильтрации может применяться к восстановленному кадру.
[114] В дальнейшем в этом документе описывается способ кодирования видео/изображений на основе внутреннего прогнозирования. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования.
[115] Сначала, устройство декодирования может извлекать режим/тип внутреннего прогнозирования для текущего блока на основе принимаемой информации прогнозирования (информации режима/типа внутреннего прогнозирования. Устройство декодирования может извлекать соседние опорные выборки текущего блока. Устройство декодирования может формировать прогнозные выборки в текущем блоке на основе режима/типа внутреннего прогнозирования и соседних опорных выборок. В этом случае, устройство декодирования изображений может выполнять процедуру фильтрации прогнозных выборок. Фильтрация прогнозных выборок может называться "постфильтрацией". Посредством процедуры фильтрации прогнозных выборок, некоторые или все прогнозные выборки могут фильтроваться. В некоторых случаях, процедура фильтрации прогнозных выборок может опускаться.
[116] Устройство декодирования изображений может формировать остаточные выборки для текущего блока на основе принимаемой остаточной информации (S640). Устройство декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и извлекать восстановленный блок, включающий в себя восстановленные выборки. На основе восстановленного блока, может формироваться восстановленный кадр для текущего кадра. Процедура внутриконтурной фильтрации дополнительна применимый к восстановленному кадру.
[117] Информация режима внутреннего прогнозирования может включать в себя, например, информацию флага (например, intra_luma_mpm_flag), указывающую то, применяется либо нет наиболее вероятный режим (MPM) или оставшийся режим к текущему блоку, и когда MPM применяется к текущему блоку, информация режима прогнозирования дополнительно может включать в себя информацию индекса (например, intra_luma_mpm_idx), указывающую один из возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Возможные варианты режимов внутреннего прогнозирования (возможные MPM-варианты) могут конфигурировать список возможных MPM-вариантов или MPM-список. Например, список возможных MPM-вариантов может включать в себя режим внутреннего прогнозирования соседнего блока или предварительно установленного базового режима внутреннего прогнозирования. Помимо этого, когда MPM не применяется к текущему блоку, информация режима внутреннего прогнозирования дополнительно может включать в себя информацию оставшихся режимов (например, intra_luma_mpm_remainder), указывающую один из оставшихся режимов внутреннего прогнозирования, за исключением возможных вариантов режимов внутреннего прогнозирования (возможных MPM-вариантов). Устройство декодирования может определять режим внутреннего прогнозирования текущего блока на основе информации режима внутреннего прогнозирования.
[118] Помимо этого, информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации линии опорных выборок (например, intra_luma_ref_idx), указывающей то, следует или нет применять MRL к текущему блоку, и если применяется, то, какая линия опорных выборок используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, следует или нет применять ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag)), указывающей тип разбиения субсегментов при применении ISP, информации флага, указывающей то, следует или нет применять PDPC, либо информации флага, указывающей то, следует или нет применять LIP.
[119] Информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться через способ кодирования, описанный в настоящем раскрытии сущности. Например, информация режима внутреннего прогнозирования и/или информация типа внутреннего прогнозирования могут кодироваться/декодироваться посредством энтропийного кодирования (например, CABAC, CAVLC) на основе усеченного двоичного кода (Райса).
[120] В дальнейшем в этом документе подробнее описывается режим внутреннего прогнозирования. Фиг. 4 показывает направление внутреннего прогнозирования согласно варианту осуществления. Чтобы захватывать любое краевое направление, представленное в естественном видео, как показано на фиг. 8a, режим внутреннего прогнозирования может включать в себя два режима ненаправленного внутреннего прогнозирования и 65 режимов направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного внутреннего прогнозирования и режим внутреннего DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 66-ой режимы внутреннего прогнозирования.
[121] Между тем, режим внутреннего прогнозирования дополнительно может включать в себя режим на основе кросскомпонентной линейной модели (CCLM) для выборок сигнала цветности в дополнение к вышеописанным режимам внутреннего прогнозирования. CCLM-режим может разбиваться на L_CCLM, T_CCLM, LT_CCLM согласно тому, рассматриваются или нет левые выборки, верхние выборки либо и эти, и другие для извлечения LM-параметра, и может применяться только к компоненту сигнала цветности. Например, режим внутреннего прогнозирования может индексироваться, как показано в следующей таблице.
[122] Табл. 1
Режим внутреннего прогнозирования
Ассоциированное название
0
INTRA_PLANAR
1
INTRA_DC
2...66
INTRA_ANGULAR2...INTRA_ANGULAR66
81...83
INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_T_CCLM
[123] Фиг. 5 показывает направление внутреннего прогнозирования согласно другому варианту осуществления. Здесь, направление по пунктирной линии показывает широкоугольный режим, применяемый только к неквадратному блоку. Как показано на фиг. 5, чтобы захватывать любое краевое направление, представленное в естественном видео, режим внутреннего прогнозирования согласно варианту осуществления может включать в себя два режима ненаправленного внутреннего прогнозирования и 93 режима направленного внутреннего прогнозирования. Режимы ненаправленного внутреннего прогнозирования могут включать в себя режим планарного прогнозирования и режим DC-прогнозирования, и режимы направленного внутреннего прогнозирования могут включать в себя второй - 80-ый и -1-й - -14-й режимы внутреннего прогнозирования, как обозначено посредством стрелки по фиг. 5. Режим планарного прогнозирования может обозначаться посредством INTRA_PLANAR, и режим DC-прогнозирования может обозначаться посредством INTRA_DC. Помимо этого, режим направленного внутреннего прогнозирования может обозначаться посредством INTRA_ANGULAR-14 - INTRA_ANGULAR-1 и INTRA_ANGULAR2 - INTRA_ANGULAR80.
[124] Между тем, тип внутреннего прогнозирования (или дополнительный режим внутреннего прогнозирования) может включать в себя по меньшей мере одно из LIP, PDPC, MRL, ISP или MIP. Тип внутреннего прогнозирования может указываться на основе информации типа внутреннего прогнозирования, и информация типа внутреннего прогнозирования может реализовываться в различных формах. Например, информация типа внутреннего прогнозирования может включать в себя информацию индекса типа внутреннего прогнозирования, указывающую один из типов внутреннего прогнозирования. В качестве другого примера, информация типа внутреннего прогнозирования может включать в себя по меньшей мере одно из информации опорной выборочной линии (например, intra_luma_ref_idx), указывающей то, следует или нет применять MRL к текущему блоку, и если применяется, то, какая опорная выборочная линия используется, информации ISP-флага (например, intra_subpartitions_mode_flag), указывающей то, следует или нет применять ISP к текущему блоку, информации ISP-типа (например, intra_subpartitions_split_flag), указывающей тип разбиения субсегментов при применении ISP, информации флага, указывающей то, следует или нет применять PDPC, информации флага, указывающей то, следует или нет применять LIP, или информации MIP-флага, указывающей то, следует или нет применять MIP.
Общее представление внешнего прогнозирования
[125]
[126] В дальнейшем в этом документе описывается способ внешнего прогнозирования согласно варианту осуществления. Единица прогнозирования устройства кодирования и устройства декодирования может выполнять внешнее прогнозирование в единицах блоков, чтобы извлекать прогнозную выборку. Внешнее прогнозирование может означать, что прогнозирование, извлекаемое таким способом, который зависит от элементов данных (например, выборочные значения, информация движения и т.д.) кадра(ов) кроме текущего кадра. Когда внешнее прогнозирование применяется к текущему блоку, прогнозированный блок (массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения на опорном кадре, указываемом посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме внешнего прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае внешнего прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, список возможных вариантов информации движения может конструироваться на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения текущего блока и/или индекс опорного кадра. Внешнее прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть равной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования информации движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться с использованием суммы предиктора вектора движения и разности векторов движения.
[127] Информация движения может включать в себя L0-информацию движения и/или L1-информацию движения согласно типу внешнего прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). Вектор движения в L0-направлении может называться "L0-вектором движения" или "MVL0", и вектор движения в L1-направлении может называться "L1-вектором движения" или "MVL1". Прогнозирование на основе L0-вектора движения может называться "L0-прогнозированием", прогнозирование на основе L1-вектора движения может называться "L1-прогнозированием", и прогнозирование на основе как L0-вектора движения, так и L1-вектора движения может называться "бипрогнозированием". Здесь, L0-вектор движения может указывать вектор движения, ассоциированный со списком L0 опорных кадров (L0), и L1-вектор движения может указывать вектор движения, ассоциированный со списком L1 опорных кадров (L1). Список L0 опорных кадров может включать в себя кадры перед текущим кадром в порядке вывода в качестве опорных кадров, и список L1 опорных кадров может включать в себя кадры после текущего кадра в порядке вывода. Предыдущие кадры могут называться "прямыми (опорными) кадрами", и последующие кадры могут называться "обратными (опорными) кадрами". Список L0 опорных кадров дополнительно может включать в себя кадры после текущего кадра в порядке вывода в качестве опорных кадров. В этом случае, в списке L0 опорных кадров, предыдущие кадры могут сначала индексироваться, и последующие кадры затем могут индексироваться. Список L1 опорных кадров дополнительно может включать в себя кадры перед текущим кадром в порядке вывода в качестве опорных кадров. В этом случае, в списке L1 опорных кадров, последующие кадры могут сначала индексироваться, и предыдущие кадры затем могут индексироваться. Здесь, порядок вывода может соответствовать порядку номеров в последовательности кадров (POC).
[128] В дальнейшем в этом документе описывается процедура кодирования видео/изображений на основе внешнего прогнозирования и модуля внешнего прогнозирования в устройстве кодирования со ссылкой на фиг. 6 и 7.
[129] Во-первых, устройство кодирования может выполнять внешнее прогнозирование относительно текущего блока (S11). Устройство кодирования изображений может извлекать режим внешнего прогнозирования и информацию движения текущего блока и формировать прогнозные выборки текущего блока. Здесь, определение режима внешнего прогнозирования, извлечение информации движения и процедуры формирования прогнозных выборок могут одновременно выполняться, или любой этого может выполняться перед другими процедурами. Например, модуль 180 внешнего прогнозирования устройства кодирования может включать в себя модуль 181 определения режима прогнозирования, модуль 182 извлечения информации движения и модуль 183 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования текущего блока, модуль 182 извлечения информации движения может извлекать информацию движения текущего блока, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 180 внешнего прогнозирования устройства кодирования может выполнять поиск блока, аналогичного текущему блоку в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия или минимума. На основе этого, индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, может извлекаться, и вектор движения может извлекаться на основе разности позиций между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Устройство кодирования может сравнивать RD-затраты для различных режимов прогнозирования и определять оптимальный режим прогнозирования текущего блока.
[130] Например, когда режим пропуска или режим объединения применяется к текущему блоку, устройство 100 кодирования может конструировать список возможных вариантов объединения и извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия либо минимума, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в устройство декодирования. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.
[131] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, устройство кодирования может конструировать (A) список возможных MVP-вариантов и извлекать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в (a) список возможных MVP-вариантов. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант с вектором движения, имеющим наименьшую разность относительно вектора движения текущего блока из возможных MVP-вариантов, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVD), которая представляет собой разность, полученную посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может передаваться в служебных сигналах в устройство декодирования. Помимо этого, при применении (A)MVP-режима, значение индекса опорного кадра может конструироваться в качестве информации индекса опорного кадра и отдельно передаваться в служебных сигналах в устройство декодирования.
[132] Устройство кодирования может извлекать остаточные выборки на основе прогнозных выборок (S12). Устройство кодирования может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозных выборок.
[133] Устройство кодирования может кодировать информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S13). Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима и т.д.) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно информации движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Помимо этого, информация относительно информации движения может включать в себя информацию относительно вышеописанной MVD и/или информации индекса опорного кадра. Помимо этого, информация относительно информации движения может включать в себя информацию, указывающую то, следует применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[134] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в устройство декодирования либо может передаваться в устройство декодирования через сеть.
[135] Как описано выше, устройство кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это для извлечения, посредством устройства кодирования, результата прогнозирования, идентичного прогнозированию, выполняемому посредством устройства декодирования, за счет этого повышая эффективность кодирования. Соответственно, устройство кодирования может сохранять восстановленный кадр (или восстановленные выборки и восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для внешнего прогнозирования. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[136] В дальнейшем в этом документе описывается процедура декодирования видео/изображений на основе внешнего прогнозирования и модуля внешнего прогнозирования в устройстве декодирования со ссылкой на фиг. 8 и 9. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования. Устройство декодирования может выполнять прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[137] В частности, устройство декодирования может определять режим прогнозирования текущего блока на основе принимаемой информации прогнозирования (S21). Устройство декодирования изображений может определять то, какой режим внешнего прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[138] Например, может определяться то, применяется режим объединения или (A)MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов внешнего прогнозирования может выбираться на основе индекса режима. Возможные варианты режима внешнего прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим либо могут включать в себя различные режимы внешнего прогнозирования, которые описываются ниже.
[139] Устройство декодирования может извлекать информацию движения текущего блока на основе определенного режима внешнего прогнозирования (S22). Например, когда режим пропуска или режим объединения применяются к текущему блоку, устройство декодирования может конструировать список возможных вариантов объединения, который описывается ниже, и выбирать один из возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (индекса объединения). Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения. Информация движения выбранного возможного варианта объединения может использоваться как информация движения текущего блока.
[140] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, устройство декодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока. Помимо этого, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для внешнего прогнозирования текущего блока.
[141] Между тем, как описано ниже, информация движения текущего блока может извлекаться без конструирования списков возможных вариантов, и, в этом случае, информация движения текущего блока может извлекаться согласно раскрытой процедуре в нижеописанном режиме прогнозирования. В этом случае, вышеописанное конструирование списков возможных вариантов может опускаться.
[142] Устройство декодирования изображений может формировать прогнозные выборки текущего блока на основе информации движения текущего блока (S23). В этом случае, опорный кадр может извлекаться на основе индекса опорного кадра текущего блока, и прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока на опорном кадре. В этом случае, как описано ниже, некоторые случаи, процедура фильтрации прогнозных выборок дополнительно может выполняться относительно всех или некоторых прогнозных выборок текущего блока.
[143] Например, модуль 260 внешнего прогнозирования устройства 200 декодирования может включать в себя модуль 261 определения режима прогнозирования, модуль 262 извлечения информации движения и модуль 263 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль 182 извлечения информации движения может извлекать информацию движения (вектор движения и/или индекс опорного кадра) для текущего блока на основе информации для принимаемой информации движения, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[144] Устройство декодирования может формировать остаточные выборки текущего блока на основе принимаемой остаточной информации (S24). Устройство декодирования может формировать восстановленные выборки текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на основе этого (S25). После этого, процедура внутриконтурной фильтрации является применимой к восстановленному кадру.
[145] Как описано выше, процедура внешнего прогнозирования может включать в себя этап определения режима внешнего прогнозирования, этапа извлечения информации движения согласно определенному режиму прогнозирования и этап выполнения прогнозирования (формирования прогнозных выборок) на основе извлеченной информации движения. Процедура внешнего прогнозирования может выполняться посредством устройства кодирования и устройства декодирования, как описано выше.
Общее представление прогнозирования на основе внутриблочного копирования (IBC)
[146]
[147] Устройство декодирования согласно варианту осуществления может выполнять режим прогнозирования на основе внутриблочного копирования (IBC) для декодирования текущего блока с использованием информации опорного блока текущего кадра, в котором расположен текущий блок, чтобы декодировать текущий блок, который представляет собой блок, который должен декодироваться. Например, устройство декодирования может декодировать текущий блок с использованием декодирования информации опорного блока, выбранного из восстановленной зоны текущего кадра. Поскольку только восстановленная зона в предварительно определенной зоне, включающая в себя текущую CTU, используется в качестве опорной зоны, можно уменьшать потребление запоминающего устройства и уменьшать сложность устройства декодирования. Таким образом, IBC-режим может реализовываться с аппаратной конфигурацией с использованием внутримикросхемного запоминающего устройства.
[148] В IBC-режиме прогнозирование, по существу, выполняется в текущем кадре, но может выполняться аналогично внешнему прогнозированию, при котором опорный блок извлекается в текущем кадре. Например, IBC может выполняться с использованием по меньшей мере одной из вышеописанных технологий внешнего прогнозирования. Например, устройство декодирования может использовать вышеописанный способ извлечения вектора движения, чтобы выполнять IBC-режим. По меньшей мере одна из вышеописанных технологий внешнего прогнозирования может модифицироваться и использоваться с учетом IBC-прогнозирования, как описано ниже. В варианте осуществления, IBC может называться "ссылкой на текущие кадры (CPR)" в том, что ссылаются на текущий кадр.
[149] Чтобы выполнять IBC-режим, устройство кодирования может извлекать оптимальный вектор движения для текущего блока (например, CU) посредством выполнения поблочного сопоставления. Извлеченный вектор движения может передаваться в служебных сигналах в устройство декодирования через поток битов с использованием способа, аналогичного передаче в служебных сигналах векторов движения в вышеописанном внешнем прогнозировании. Устройство декодирования может извлекать опорный блок для текущего блока в текущем кадре через передаваемый в служебных сигналах вектор движения и извлекать прогнозный сигнал (прогнозированный блок или прогнозные выборки) для текущего блока через него. Здесь, блочный вектор (или вектор движения) может представлять смещение от текущего блока до опорного блока, расположенного в уже восстановленной зоне в текущем кадре. Соответственно, блочный вектор (или вектор движения) может называться "вектором смещения". В дальнейшем в этом документе, в IBC, вектор движения может соответствовать блочному вектору или вектору смещения. Вектор движения текущего блока может включать в себя вектор движения для компонента сигнала яркости (вектор движения сигнала яркости) или вектор движения для компонента сигнала цветности (вектор движения сигнала цветности). Например, вектор движения сигнала яркости для IBC-кодированной CU может представлять собой целочисленную единицу выборок (т.е. целочисленную точность). Вектор движения сигнала цветности также может отсекаться в единицах целочисленных выборок. Как описано выше, IBC может использовать по меньшей мере одну из технологий внешнего прогнозирования и, например, когда IBC применяется как AMVR, 1-пелная и 4-пелная точность векторов движения может переключаться.
[150] На уровне CU, IBC-режим может передаваться в служебных сигналах с использованием флага или может передаваться в служебных сигналах в IBC AMVP-режиме или в режиме IBC-пропуска/объединения следующим образом.
[151] Режим IBC-пропуска/объединения: Индекс возможного варианта объединения может использоваться для того, чтобы указывать то, какой блочный вектор используется для того, чтобы прогнозировать текущий блок в списке, состоящем из блоков IBC-кодирования соседнего возможного варианта. Список для объединения может состоять из пространственных, HMVP- и попарных возможных вариантов.
[152] IBC AMVP-режим: Разность блочных векторов может кодироваться идентично кодированию разности векторов движения. Способ прогнозирования блочных векторов использует два возможных варианта в качестве предиктора. Если кодирование выполняется в IBC-режиме, один предназначен для левого соседнего узла, а другой предназначен для верхнего соседнего узла. Если по меньшей мере один соседний узел фактически доступен, базовый блочный вектор может использоваться в качестве предиктора. Флаг может передаваться в служебных сигналах, чтобы указывать индекс предиктора блочного вектора.
[153] В дальнейшем в этом документе описывается процедура кодирования видео/изображений на основе IBC-режима и модуля прогнозирования в устройстве кодирования со ссылкой на фиг. 10.
[154] Устройство кодирования может выполнять IBC-прогнозирование (прогнозирование на основе IBC) для текущего блока (S31). Устройство кодирования может извлекать режим прогнозирования и вектор движения текущего блока и формировать прогнозные выборки текущего блока. Режим прогнозирования может включать в себя по меньшей мере один из вышеописанных режимов внешнего прогнозирования. Здесь, процедуры определения режима прогнозирования, извлечения векторов движения и формирования прогнозных выборок могут выполняться одновременно, или любая процедура может выполняться перед другими процедурами. Например, модуль прогнозирования устройства кодирования изображений может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Модуль определения режима прогнозирования может определять режим прогнозирования текущего блока, модуль извлечения векторов движения может извлекать вектор движения текущего блока, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль прогнозирования устройства кодирования может выполнять поиск блока, аналогичного текущему блоку, в восстановленной зоне (либо в определенной зоне (зоне поиска) восстановленной зоны) текущего кадра посредством поблочного сопоставления (BM), и извлекать опорный блок, разность которого относительно текущего блока равна или меньше определенного критерия либо минимума. Вектор движения может извлекаться на основе разности смещения между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Устройство кодирования может сравнивать RD-затраты на основе различных режимов прогнозирования и определять оптимальный режим прогнозирования для текущего блока.
[155] Например, при применении режима пропуска или режима объединения к текущему блоку, устройство кодирования может конструировать вышеописанный список возможных вариантов объединения и извлекать опорный блок, разность которого относительно текущего блока равна или меньше определенного критерия или минимума, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в устройство декодирования. С использованием вектора движения выбранного возможного варианта объединения, может извлекаться вектор движения текущего блока.
[156] В качестве другого примера, при применении (A)MVP-режима к текущему блоку, устройство кодирования может конструировать вышеописанный список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий наименьшую разность относительно вектора движения текущего блока из возможных MVP-вариантов, может становиться выбранным возможны MVP-вариантом. Разность векторов движения (MVD), которая получается посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может передаваться в служебных сигналах в устройство декодирования.
[157] Устройство кодирования может извлекать остаточные выборки на основе прогнозных выборок (S32). Устройство кодирования может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозными выборками.
[158] Устройство кодирования может кодировать информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S33). Устройство кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию относительно информации режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Информация относительно вектора движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Помимо этого, информация относительно вектора движения может включать в себя информацию относительно вышеописанной MVD. Помимо этого, информация относительно вектора движения может включать в себя информацию, указывающую то, следует применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[159] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в устройство декодирования либо может передаваться в устройство декодирования через сеть.
[160] Между тем, как описано выше, устройство кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это для извлечения, посредством устройства кодирования, результата прогнозирования, идентичного прогнозированию, выполняемому посредством устройства декодирования, за счет этого повышая эффективность кодирования. Соответственно, устройство кодирования может сохранять восстановленный кадр (либо восстановленные выборки и восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для внешнего прогнозирования. Процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру, как описано выше.
[161] В дальнейшем в этом документе описывается процедура декодирования видео/изображений на основе IBC и модуля прогнозирования в устройстве декодирования со ссылкой на фиг. 11. Устройство декодирования может выполнять операцию, соответствующую операции, выполняемой посредством устройства кодирования. Устройство декодирования может выполнять IBC-прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[162] В частности, устройство декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S41). Устройство декодирования может определять то, какой режим внешнего прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[163] Например, может определяться то, следует применять режим объединения или (A)MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов внешнего прогнозирования может выбираться на основе индекса режима. Возможные варианты режимов внешнего прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим или могут включать в себя нижеописанные различные режимы внешнего прогнозирования.
[164] Устройство кодирования может извлекать вектор движения текущего блока на основе определенного режима прогнозирования (S42). Например, при применении режима пропуска или режима объединения к текущему блоку, устройство декодирования может конструировать вышеописанный список возможных вариантов объединения и выбирать один из режимов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (индекса объединения). Вектор движения текущего блока может извлекаться с использованием вектора движения выбранного возможного варианта объединения. Вектор движения выбранного возможного варианта объединения может использоваться в качестве вектора движения текущего блока.
[165] В качестве примера, при применении (A)MVP-режима к текущему блоку, устройство декодирования может конструировать список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока.
[166] Между тем, как описано выше, информация движения текущего блока может извлекаться без конфигурирования списка возможных вариантов, и в этом случае вектор движения текущего блока может извлекаться согласно процедуре, раскрытой в соответствующем режиме прогнозирования. В этом случае, вышеописанное конструирование списков возможных вариантов может опускаться.
[167] Устройство декодирования может формировать прогнозные выборки для текущего блока на основе вектора движения для текущего блока (S720). Прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока в текущем кадре. В этом случае, процедура фильтрации прогнозных выборок для всех или некоторых прогнозных выборок текущего блока дополнительно может выполняться.
[168] Например, модуль прогнозирования устройства декодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок, модуль определения режима прогнозирования может определять режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль извлечения векторов движения может извлекать вектор движения текущего блока на основе принимаемой информации относительно вектора движения, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[169] Устройство декодирования изображений может формировать остаточные выборки текущего блока на основе принимаемой остаточной информации (S44). Устройство декодирования изображений может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на их основе (S45). После этого, процедура внутриконтурной фильтрации может дополнительно применяться к восстановленному кадру.
Общее представление передачи в служебных сигналах информации преобразования
[170]
[171] В варианте осуществления, информация для преобразования/обратного преобразования текущего блока может передаваться в служебных сигналах из устройства кодирования в устройство декодирования через поток битов. Ссылаясь на фиг. 12, как описано выше, устройство кодирования может формировать блок прогнозирования, который представляет собой блок прогнозных выборок, прогнозированных через прогнозирование во внешнем, внутреннем и IBC-режиме (S110), и извлекать остаточный блок (остаточные выборки) для блока, который должен кодироваться, на основе блока прогнозирования (S120). Устройство кодирования может извлекать блок преобразования, состоящий из квантованных коэффициентов преобразования, посредством применения преобразования и квантования к извлеченному остаточному блоку (S130). Устройство кодирования может формировать информацию режима прогнозирования, указывающую режимы прогнозирования (внешний, внутренний и IBC-режимы), используемые для того, чтобы кодировать текущий блок, информацию преобразования, используемую для того, чтобы извлекать блок преобразования, и информацию кодирования для квантованных коэффициентов преобразования, конструирующих блок преобразования, в качестве потока битов (S140). Затем, устройство кодирования может передавать сформированный поток битов в устройство декодирования (S150).
[172] Устройство декодирования может принимать поток битов (S160) и получать информацию режима прогнозирования, информацию преобразования и информацию кодирования для квантованных коэффициентов преобразования из потока битов. Устройство декодирования может декодировать информацию кодирования для коэффициентов преобразования и извлекать блок преобразования, состоящий из квантованных коэффициентов преобразования (S170). Устройство декодирования может извлекать остаточный блок через деквантование/обратное преобразование на основе блока преобразования (S180). Затем, устройство декодирования может формировать блок прогнозирования на основе информации прогнозирования, полученной из потока битов (S190). Затем, устройство декодирования может формировать восстановленный блок для текущего блока на основе блока прогнозирования и остаточного блока (S195). Между тем по меньшей мере одно из квантования/деквантования и/или преобразования/обратного преобразования может опускаться.
[173] Устройство кодирования и устройство декодирования согласно варианту осуществления могут выбирать ядро преобразования, чтобы выполнять преобразование (обратное преобразование). Ядро преобразования может называться с помощью различных терминов, таких как матрица преобразования, тип преобразования или функция преобразования. Устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока на основе выбранного ядра преобразования, и устройство декодирования может формировать остаточный блок посредством обратного преобразования блока преобразования на основе выбранного ядра преобразования. Следующее уравнение показывает вариант осуществления, в котором устройство декодирования применяет матрицу  преобразования, чтобы сформировать выборки y[i] остаточных блоков для блока x[j] преобразования. Здесь, j может иметь значение в 0 - nonZeroS-1; nonZeroS указывает горизонтальный размер выборки ненулевых квантованных коэффициентов преобразования; i может иметь размер в 0 - nTbS-1; nTbS указывает горизонтальный размер выборки остаточных выборок.
[174] уравнение 1
y[i]=  , при i=0...nTbS-1
[175] Ядро преобразования, используемое, когда устройство декодирования выполняет обратное преобразование, может иметь обратную взаимосвязь относительно ядра преобразования, используемого, когда устройство кодирования выполняет преобразование. Например, когда ядро преобразования состоит из матрицы преобразования, матрица преобразования, используемая, когда устройство декодирования выполняет обратное преобразование, может представлять собой обратную матрицу по отношению к матрице преобразования, используемой, когда устройство кодирования выполняет преобразование. Когда ядро преобразования состоит из функции преобразования, функция преобразования, используемой, когда устройство декодирования выполняет обратное преобразование, может представлять собой обратную функцию по отношению к функции преобразования, используемой, когда устройство кодирования выполняет преобразование.
[176] Устройство кодирования и устройство декодирования согласно варианту осуществления могут выполнять множественный выбор преобразования (MTS) для выбора ядра для преобразования (обратного преобразования) текущего блока из множества ядер преобразования. Это описывается подробнее далее со ссылкой на фиг. 13 и 14. Устройство кодирования или устройство декодирования может выбирать любое ядро преобразования из множества ядер преобразования, чтобы выполнять преобразование или обратное преобразование. В варианте осуществления, устройство кодирования может применять множество ядер преобразования к остаточному блоку и затем выбирать ядро преобразования с наибольшей эффективностью преобразования в качестве ядра преобразования для преобразования остаточного блока (S131). Здесь, ядро преобразования с наибольшей эффективностью преобразования может выбираться для сравнения RD-затрат. Помимо этого, устройство кодирования может формировать блок преобразования как результат применения выбранного ядра преобразования к остаточному блоку (S132). В завершение, устройство кодирования может выводить информацию преобразования для передачи служебных сигналов ядра преобразования, используемого для преобразования, в устройство декодирования и информацию относительно блока преобразования в качестве потока битов (S133). Здесь, информация преобразования может включать в себя по меньшей мере одно из информации, указывающей то, выполняется или нет MTS согласно режиму прогнозирования, информации, указывающей ядро, применяемое к MTS, или информации, указывающей то, включается или нет эта информация в поток битов.
[177] В ответ на это, устройство декодирования может получать информацию преобразования и информацию относительно блока преобразования из потока битов, чтобы выполнять обратное преобразование блока преобразования, и формировать остаточный блок, соответствующий ему (S181). Помимо этого, устройство декодирования может выбирать ядро преобразования для обратного преобразования текущего блока преобразования на основе информации преобразования (S182). Помимо этого, устройство декодирования может формировать остаточный блок для текущего блока преобразования с использованием выбранного ядра преобразования (S183).
[178] Как описано выше, поскольку любое ядро преобразования выбирается из множества ядер преобразования согласно эффективности преобразования и используется, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования, используемого для преобразования, в устройство декодирования, и устройство декодирования может выполнять обратное преобразование с использованием ядра преобразования, соответствующего ядру преобразования, используемому для преобразования посредством устройства кодирования.
[179] Между тем, чтобы выполнять MTS, ядро преобразования может определяться посредством выбора некоторых из множества наборов ядер преобразования. Например, набор ядер преобразования может состоять из комбинации ядра вертикального преобразования и ядра горизонтального преобразования. Помимо этого, в качестве информации индекса для выбора набора ядер преобразования, может использоваться информация MTS-индекса, которая представляет собой информацию индекса ядра преобразования.
[180] Соответственно, устройство кодирования согласно варианту осуществления может передавать в служебных сигналах информацию MTS-индекса в устройство декодирования в качестве информации для обеспечения возможности устройству декодирования выбирать набор ядер преобразования. Например, информация MTS-индекса может формироваться посредством устройства кодирования и передаваться в служебных сигналах в устройство декодирования, чтобы указывать один из наборов ядер преобразования. В варианте осуществления, набор ядер преобразования может передаваться в служебных сигналах в качестве информации индекса, указывающей ядро вертикального преобразования, и информации индекса, указывающей ядро горизонтального преобразования. Следующая таблица показывает вариант осуществления набора ядер преобразования согласно значению информации MTS-индекса.
[181] Табл. 2
tu_mts_idx[x0][y0]
0
1
2
3
4
trTypeHor
0
1
2
1
2
trTypeVer
0
1
1
2
2
[182] Здесь, trTypeHor может указывать ядро горизонтального преобразования, и trTypeVer может указывать ядро вертикального преобразования. В варианте осуществления, значение в 0 trTypeHor и trTypeVer согласно вышеприведенной таблице может указывать DCT2, значение в 1 trTypeHor и trTypeVer может указывать DST7, и значение в 2 trTypeHor и trTypeVer может указывать DCT8. Тем не менее, это представляет собой пример, различные DCT или DST могут преобразовываться в значения, указываемые посредством trTypeHor и trTypeVer. Фиг. 15 показывает пример базисных функций для DCT2, DCT8 и DST7.
Вариант 1 осуществления
[183]
[184] В дальнейшем в этом документе описывается передача в служебных сигналах MTS-индексов устройства кодирования согласно варианту осуществления и процесс обратного преобразования посредством устройства декодирования, соответственно, со ссылкой на фиг. 16-18. Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей способ кодирования текущего блока с использованием MTS посредством устройства кодирования согласно варианту осуществления. Устройство кодирования согласно варианту осуществления может определять то, выполняется или нет передача в служебных сигналах MTS-индекса через поток битов, чтобы кодировать текущий блок (S210). Например, устройство кодирования может определять то, что передача в служебных сигналах MTS-индекса является возможной, чтобы кодировать текущий блок, когда информация флага, включенная в набор параметров последовательности (SPS), указывает то, является или нет возможной передача в служебных сигналах MTS-индекса. Например, набор параметров последовательности может включать в себя первую информацию флага, указывающую то, может или нет tu_mts_idx включаться в поток битов, когда текущий режим кодирования представляет собой внешний режим, и вторую информацию флага, указывающую то, может или нет tu_mts_idx включаться в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Следовательно, устройство кодирования может определять то, является или нет передача в служебных сигналах MTS-индекса возможной, согласно режиму кодирования текущего блока.
[185] Здесь, первый флаг может представлять собой sps_explicit_mts_intra_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внутреннего кодирования. Например, когда tu_mts_idx присутствует в синтаксисе единиц внутреннего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 1. Между тем, когда tu_mts_idx не присутствует в синтаксисе единиц внутреннего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 0.
[186] Второй флаг может представлять собой sps_explicit_mts_inter_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внешнего кодирования. Когда tu_mts_idx присутствует в синтаксисе единиц внешнего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 1. Когда tu_mts_idx не присутствует в синтаксисе единиц внешнего кодирования, sps_explicit_mts_intra_enabled_flag может иметь значение в 0.
[187] Затем, устройство кодирования может выполнять преобразование текущего блока для каждого из множества ядер преобразования, когда передача в служебных сигналах MTS-индекса является возможной (S221). Например, устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока для текущего блока для каждого из множества ядер.
[188] Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование текущего блока, на основе результата выполнения преобразования текущего блока для каждого из множества ядер (S222). Например, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование, посредством сравнения эффективности кодирования в случае, если преобразование не выполняется, и в случае, если котором преобразование выполняется для каждого ядра преобразования.
[189] Затем, когда передача в служебных сигналах MTS-индекса является возможной, и текущий блок кодируется на основе преобразования, устройство кодирования выводит MTS-индекс ядра преобразования, используемого для преобразования, в качестве значения tu_mts_idx в качестве потока битов, и выводит 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S223). Следовательно, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования, используемого для преобразования в устройство декодирования.
[190] Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S224). Следовательно, устройство кодирования может передавать в служебных сигналах, в устройство декодирования, информацию, указывающую то, что преобразование текущего блока не выполняется и пропускается.
[191] Обращаясь к этапу S210 снова, когда передача в служебных сигналах MTS-индекса является невозможной, устройство кодирования может выполнять преобразование текущего блока с использованием предварительно определенного ядра преобразования (S231). Например, устройство кодирования может формировать блок преобразования посредством преобразования остаточного блока для текущего блока с использованием предварительно определенного ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.
[192] Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование текущего блока на основе результата выполнения преобразования текущего блока с использованием предварительно определенного ядра преобразования (S232). Например, устройство кодирования может определять то, следует или нет применять преобразование, чтобы выполнять кодирование, посредством сравнения эффективности кодирования в случае, если преобразование не выполняется, и в случае, если преобразование выполняется.
[193] Затем, когда текущий блок кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S233). Следовательно, устройство кодирования может передавать в служебных сигналах информацию относительно ядра преобразования в устройство декодирования, посредством инструктирования устройству декодирования извлекать информацию относительно ядра преобразования, используемого для преобразования.
[194] Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование, в качестве потока битов (S234). Следовательно, устройство кодирования может передавать в служебных сигналах, в устройство декодирования, информацию, указывающую то, что преобразование текущего блока не выполняется и пропускается.
[195] Фиг. 17 иллюстрирует способ декодирования текущего блока с использованием MTS посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять то, не представляет собой или представляет собой режим кодирования текущего блока внутренний режим, и то, удовлетворяется или нет дополнительное условие (S310). Здесь, дополнительное условие может состоять в том, указывает или нет первый флаг то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим. Например, когда режим кодирования текущего блока не представляет собой внутренний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим, устройство декодирования может получать tu_mts_idx из потока битов (S330).
[196] В противном случае, устройство декодирования согласно варианту осуществления определяет то, представляет собой или нет режим кодирования текущего блока внутренний режим, то, удовлетворяется или нет дополнительное условие (S320). Здесь, дополнительное условие может состоять в том, указывает или нет второй флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Например, когда режим кодирования текущего блока представляет собой внутренний режим, и второй флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим, устройство декодирования может получать tu_mts_idx из потока битов (S330).
[197] Между тем, когда условие этапа S320 не удовлетворяется, устройство декодирования может не получать tu_mts_idx текущего блока (S340). Помимо этого, устройство декодирования может не получать tu_mts_idx текущего блока, когда значение transform_skip_flag, полученного из потока битов, указывает то, что преобразование текущего блока не выполняется.
[198] Здесь, порядок этапов S210 и S320 может изменяться. Например, устройство кодирования может определять то, представляет или нет режим кодирования текущего блока собой внутренний режим, и дополнительное условие удовлетворяется (S320), и затем может определять то, представляет или нет режим кодирования текущего блока собой внешний режим, и дополнительное условие удовлетворяется (S310), согласно результату.
[199] Устройство декодирования может определять то, используется предварительно определенное ядро преобразования, или ядро преобразования выбирается согласно tu_mts_idx, чтобы кодировать текущий блок. Например, устройство декодирования может определять то, что предварительно определенное ядро преобразования используется, когда значение sps_explicit_mts_intra_enabled_flag равно 0, значение sps_explicit_mts_inter_enabled_flag равно 0, и режим кодирования текущего блока представляет собой внутренний режим. Между тем, когда такие условия не удовлетворяются, устройство декодирования может определять то, что ядро преобразования выбирается согласно tu_mts_idx.
[200] Когда текущий блок декодируется с использованием предварительно определенного ядра преобразования, устройство декодирования может формировать остаточный блок для текущего блока посредством обратного преобразования блока преобразования текущего блока с использованием предварительно определенного ядра преобразования независимо от значения tu_mts_idx. Например, устройство декодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство декодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство декодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.
[201] Между тем, когда текущий блок декодируется согласно tu_mts_idx, устройство декодирования может формировать остаточный блок для текущего блока посредством обратного преобразования блока преобразования текущего блока с использованием ядра преобразования, выбранного согласно таблице 2 и значению tu_mts_idx, полученному из потока битов. Фиг. 18 иллюстрирует часть синтаксической структуры для получения информации кодирования TU посредством синтаксического анализа, посредством устройства декодирования, потока битов, сформированного посредством кодирования изображения посредством устройства кодирования согласно варианту осуществления, в примерах по фиг. 16 и 17.
[202] Как описано выше, устройство кодирования может включать в поток битов tu_mts_idx, который представляет собой параметр MTS-индекса, указывающий ядра горизонтального и вертикального преобразования, применяемые к блоку преобразования сигналов яркости текущей единицы кодирования; tu_mts_idx может указывать значение для задания значения trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.
[203] Устройство кодирования может передавать в служебных сигналах tu_mts_idx в устройство декодирования через поток битов только при конкретном условии. Например, устройство кодирования может определять то, передается или нет tu_mts_idx в служебных сигналах, на основе режима прогнозирования текущего блока и значений первого флага и второго флага. Здесь, первый флаг может представлять собой sps_explicit_mts_intra_enabled_flag, который представляет собой параметр, указывающий то, что tu_mts_idx присутствует в синтаксисе единиц внутреннего кодирования. Помимо этого, второй флаг может представлять собой sps_explicit_mts_inter_enabled_flag, который представляет собой параметр, указывающий то, присутствует или нет tu_mts_idx в синтаксисе единиц внешнего кодирования.
[204] Устройство кодирования может включать информацию, указывающую то, передаются или нет sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag, в поток битов, чтобы уменьшать число битов потока битов. Например, устройство кодирования может включать информацию третьего флага в поток битов в качестве параметра, указывающего то, включаются или нет два флага в поток битов. Например, третий флаг может представлять собой sps_mts_enabled_flag.
[205] Например, sps_mts_enabled_flag может указывать то, присутствуют или нет sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag в RBSP-синтаксисе набора параметров последовательности. Например, значение sps_mts_enabled_flag может задаваться равным 1, чтобы указывать то, что sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag присутствуют в RBSP-синтаксисе набора параметров последовательности. Между тем, значение sps_mts_enabled_flag может задаваться равным 0, чтобы указывать то, что sps_explicit_mts_intra_enabled_flag и sps_explicit_mts_inter_enabled_flag не присутствуют в RBSP-синтаксисе набора параметров последовательности.
[206] В варианте осуществления, устройство декодирования может задавать значение sps_explicit_mts_intra_enabled_flag равным 0, когда sps_explicit_mts_intra_enabled_flag не получается из потока битов. Помимо этого, когда sps_explicit_mts_intra_enabled_flag не получается из потока битов, значение sps_explicit_mts_intra_enabled_flag может задаваться равным 0.
[207] Это снова описывается далее со ссылкой на фиг. 18. Согласно третьему оператору 300 IF, показанному на фиг. 18 для синтаксиса единицы преобразования, когда режим прогнозирования текущего блока не представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внешнего кодирования, либо когда режим прогнозирования текущего блока представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внутреннего кодирования, устройство декодирования может получать параметр tu_mts_idx из потока битов.
[208] Между тем, когда третий оператор 300 IF не является истинным, устройство декодирования не получает параметр tu_mts_idx из потока битов. В этом случае, устройство декодирования может задавать предварительно определенный набор в качестве значения tu_mts_idx. Например, когда tu_mts_idx не получается из потока битов, устройство декодирования может задавать значение tu_mts_idx равным 0. Соответственно, устройство декодирования может задавать значение trTypeHor и trTypeVer равным 0 и определять то, что DCT2 используется в качестве ядра преобразования для текущего блока согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.
Вариант 2 осуществления
[209]
[210] Между тем, когда изображение кодируется посредством выполнения MTS, как описано выше, эффективность сжатия повышается в том, что оптимальное ядро преобразования находится и применяется к блоку преобразования. Тем не менее, когда MTS выполняется, поскольку ядро преобразования определяется для каждого целевого блока, сложность кодирования может значительно увеличиваться. Следовательно, устройство кодирования согласно варианту осуществления может выполнять преобразование посредством выбора любого ядра преобразования из множества ядер преобразования и выводить MTS-индекс, указывающий выбранное ядро преобразования, в качестве потока битов, когда режим кодирования текущего блока представляет собой внешний или внутренний режим, но может выполнять преобразование с использованием предварительно определенного ядра преобразования, когда режим кодирования текущего блока представляет собой IBC-режим, за счет этого уменьшая сложность кодирования. Помимо этого, в этом случае, посредством использования предварительно определенного ядра преобразования, MTS-индекс может не выводиться в качестве потока битов.
[211] В дальнейшем в этом документе описывается передача в служебных сигналах MTS-индексов устройства кодирования согласно варианту осуществления и процесс обратного преобразования посредством устройства декодирования, соответственно, со ссылкой на фиг. 19-22. Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей работу устройства кодирования согласно варианту осуществления. Сначала описывается работа устройства кодирования со ссылкой на фиг. 19. На фиг. 19, этапы S410-S424 и S434-S436 соответствуют этапам S210-S224 и S232-S234 по фиг. 16, и в силу этого их подробное описание опускается. В дальнейшем в этом документе, фокус наводится на этапы S431-S433 по фиг. 19, которые отличаются от фиг. 16.
[212] Устройство кодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой IBC-режим (S431), когда передача в служебных сигналах MTS-индекса не выполняется (S410). Устройство кодирования может формировать блок преобразования посредством выполнения преобразования текущего остаточного блока с использованием первого ядра преобразования, когда режим кодирования текущего блока представляет собой IBC-режим (S432). В варианте осуществления, устройство кодирования может не выполнять преобразование посредством выбора оптимального ядра преобразования из множества ядер преобразования, но может выполнять преобразование с использованием предварительно определенного первого ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.
[213] Между тем, устройство кодирования может формировать блок преобразования посредством выполнения преобразования текущего остаточного блока с использованием второго ядра преобразования (S433), когда режим кодирования текущего блока не представляет собой IBC-режим. В варианте осуществления, когда режим кодирования текущего блока представляет собой внешний или внутренний режим, устройство кодирования может выполнять преобразование с использованием предварительно определенного второго ядра преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования. Альтернативно, устройство кодирования может использовать DCT8 в качестве ядра горизонтального преобразования и использовать DCT8 в качестве ядра вертикального преобразования.
[214] Устройство кодирования согласно варианту осуществления может предварительно устанавливать первое ядро преобразования и второе ядро преобразования в качестве конкретных ядер преобразования согласно характеристикам преобразования остаточного блока, сформированного в IBC-режиме, и характеристикам преобразования остаточного блока, сформированного в режиме, отличном от IBC-режима (например, во внешнем или внутреннем режиме). Устройство кодирования согласно варианту осуществления может одинаково задавать первое ядро преобразования и второе ядро преобразования. Например, устройство кодирования может использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования, как для второго ядра преобразования, так и для второго ядра преобразования.
[215] В другом варианте осуществления, устройство кодирования может по-разному задавать первое ядро преобразования и второе ядро преобразования. Например, устройство кодирования может использовать DST7 в качестве ядра горизонтального преобразования и использовать DST7 в качестве ядра вертикального преобразования для первого ядра преобразования для IBC-режима и использовать DCT2 в качестве ядра горизонтального преобразования и использовать DCT2 в качестве ядра вертикального преобразования для второго ядра преобразования для режима прогнозирования, отличного от IBC-режима. Затем, устройство кодирования может определять то, следует или нет применять преобразование, чтобы кодировать текущий блок, на основе результата выполнения преобразования текущего блока с использованием предварительно определенного ядра преобразования, как описано выше (S434), и выполнять обработку, соответственно. Например, когда текущий блок кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить, в качестве потока битов, 0 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование (S435). Между тем, когда текущий блок не кодируется на основе преобразования, устройство кодирования может не выводить значение tu_mts_idx в качестве потока битов и может выводить, в потоке битов, 1 в качестве значения transform_skip_flag, который представляет собой параметр, указывающий то, пропускается или нет преобразование (S436).
[216] Фиг. 20 иллюстрирует способ определения MTS-индекса посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой внешний режим, и дополнительное условие удовлетворяется (S510). Здесь, дополнительное условие может состоять в том, указывает или нет первый флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим. Например, когда режим кодирования текущего блока представляет собой внешний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внешний режим, устройство декодирования может получать tu_mts_idx из потока битов (S520).
[217] В противном случае, устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой внутренний режим, и то, удовлетворяется или нет дополнительное условие (S530). Здесь, дополнительное условие может состоять в том, указывает или нет второй флаг, полученный из потока битов, то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим. Например, когда режим кодирования текущего блока представляет собой внутренний режим, и первый флаг указывает то, включается или нет tu_mts_idx в поток битов, когда текущий режим кодирования представляет собой внутренний режим, устройство декодирования может получать tu_mts_idx из потока битов (S520).
[218] Между тем, иначе устройство декодирования может извлекать tu_mts_idx текущего блока без его получения из потока битов (S540). Между тем, как описано со ссылкой на фиг. 17, определения того, удовлетворяются или нет условия на этапах S510 и S520, могут выполняться в другом порядке.
[219] В дальнейшем в этом документе описывается способ извлечения tu_mts_idx текущего блока посредством устройства декодирования без его получения из потока битов подробнее со ссылкой на фиг. 21. Устройство декодирования согласно варианту осуществления может определять то, представляет или нет режим кодирования текущего блока собой IBC-режим (S541). Устройство декодирования согласно варианту осуществления может задавать tu_mts_idx равным первому значению, не получая tu_mts_idx из потока битов, когда режим кодирования текущего блока представляет собой IBC-режим (S542). Устройство декодирования может задавать tu_mts_idx равным второму значению, не получая tu_mts_idx из потока битов, когда режим кодирования текущего блока не представляет собой IBC-режим (S543).
[220] В случае примера таблицы 2, устройство декодирования может задавать значение tu_mts_idx равным предварительно определенному значению из значений 0-4. В варианте осуществления, когда устройство кодирования использует DCT2 в качестве ядра горизонтального преобразования и использует DCT2 в качестве ядра вертикального преобразования и в случае, если режим прогнозирования текущего блока представляет собой IBC-режим, и в случае, если режим прогнозирования не представляет собой IBC-режим, устройство декодирования может задавать значение tu_mts_idx равным 0 независимо от того, представляет или нет режим кодирования текущего режима собой IBC-режим.
[221] В другом варианте осуществления, когда устройство кодирования использует DST7 в качестве ядра горизонтального преобразования и использует DST7 в качестве ядра вертикального преобразования в случае, если режим прогнозирования текущего блока представляет собой IBC-режим, и использует DCT2 в качестве ядра горизонтального преобразования и использует DCT2 в качестве ядра вертикального преобразования в случае, если режим прогнозирования текущего блока не представляет собой IBC-режим, устройство декодирования может задавать значение tu_mts_idx равным 0 независимо от того, представляет или нет режим прогнозирования текущего режима собой IBC-режим.
[222] Фиг. 22 иллюстрирует часть синтаксической структуры для получения информации кодирования TU посредством синтаксического анализа, посредством устройства декодирования, потока битов, сформированного посредством кодирования изображения посредством устройства кодирования согласно варианту осуществления, в выполнении устройства кодирования и устройства декодирования.
[223] Третий оператор 400 IF по фиг. 22 указывает то, что параметр tu_mts_idx включается в поток битов, когда режим прогнозирования текущего блока представляет собой внешний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внешнего кодирования, либо когда режим прогнозирования текущего блока представляет собой внутренний режим, и tu_mts_idx может присутствовать в синтаксисе единиц внутреннего кодирования. Следовательно, устройство кодирования может выводить значение tu_mts_idx в качестве потока битов, когда удовлетворяются вышеуказанные условия. Устройство декодирования может получать значение tu_mts_idx из потока битов, когда удовлетворяются вышеуказанные условия.
[224] Между тем, когда третий оператор 400 IF не удовлетворяется, устройство кодирования не выводит значение tu_mts_idx в качестве потока битов. Помимо этого, устройство декодирования может не получать значение tu_mts_idx из потока битов. В этом случае, устройство декодирования может задавать предварительно определенное значение в качестве значения tu_mts_idx. Например, когда tu_mts_idx не получается из потока битов, устройство декодирования может задавать значение tu_mts_idx равным 0. Соответственно, устройство декодирования может задавать значения trTypeHor и trTypeVer равными 0 и определять то, что DCT2 используется в качестве ядра преобразования для текущего блока, согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.
[225] Между тем, когда режимом кодирования текущего блока представляет собой IBC, устройство декодирования может задавать значение tu_mts_idx равным 1. Соответственно, устройство декодирования может задавать значения trTypeHor и trTypeVer равными 1 и определять то, что DST7 используется в качестве ядра преобразования для текущего блока, согласно trTypeHor и trTypeVer, как описано выше со ссылкой на таблицу 2.
[226] В дальнейшем в этом документе описывается способ выбора ядра преобразования на основе MTS-индекса посредством устройства декодирования согласно варианту осуществления. Фиг. 23 и 24 являются блок-схемой последовательности операций, иллюстрирующей способ выбора ядра преобразования посредством устройства декодирования согласно варианту осуществления. Устройство декодирования согласно варианту осуществления может определять ядро преобразования в зависимости от того, следует или нет извлекать индекс ядра преобразования.
[227] В дальнейшем в этом документе описывается способ определения того, следует или нет извлекать индекс ядра преобразования посредством устройства декодирования, со ссылкой на фиг. 23. Во-первых, устройство декодирования согласно варианту осуществления может определять то, следует или нет извлекать MTS-индекс, согласно значению sps_mts_enabled_flag (S610). Устройство декодирования согласно варианту осуществления может определять то, что MTS-индекс не извлекается, когда значение sps_mts_enabled_flag равно 0. Следовательно, устройство декодирования может задавать значение implicitMtsEnabled, который представляет собой параметр, указывающий то, следует или нет извлекать MTS-индекс, равным 0 (S620).
[228] Когда значение sps_mts_enabled_flag равно 1, устройство декодирования согласно варианту осуществления может определять дополнительные условия, чтобы определять то, следует или нет извлекать MTS-индекс (S630). Например, устройство декодирования может определять то, равно или нет значение sps_explicit_mts_intra_enabled_flag 0, то, равно или нет значение sps_explicit_mts_inter_enabled_flag 0, и то, представляет или нет режим кодирования текущего блока собой IBC-режим (S630). Когда дополнительные условия удовлетворяются, устройство декодирования может задавать значение implicitMtsEnabled равным 1 (S640). Между тем, когда дополнительные условия удовлетворяются, устройство декодирования может задавать значение implicitMtsEnabled равным 0 (S650).
[229] В дальнейшем в этом документе описывается способ определения ядра преобразования посредством устройства декодирования в зависимости от того, следует или нет извлекать индекс ядра преобразования, со ссылкой на фиг. 24.
[230] Устройство декодирования согласно варианту осуществления может определять то, следует или нет извлекать MTS-индекс, в зависимости от того, равно или нет значение implicitMtsEnabled 1 (S710). Когда значение implicitMtsEnabled не равно 1, устройство декодирования может определять то, что значение индекса ядра преобразования не получается, и определять ядро горизонтального преобразования и ядро вертикального преобразования посредством задания trTypeHor и trTypeVer согласно значению tu_mts_idx (S720).
[231] Между тем, когда значение implicitMtsEnabled равно 1, устройство декодирования может определять ядро преобразования посредством определения дополнительных условий (S730). Например, устройство декодирования может выбирать способ определения ядра преобразования, в зависимости от того, равно или нет значение implicitMtsEnabled 1, того, равно или нет значение sps_explicit_mts_intra_enabled_flag 0, того, равно или нет значение sps_explicit_mts_inter_enabled_flag 0, и того, представляет или нет режим кодирования текущего блока собой IBC-режим (S730).
[232] Когда дополнительные условия удовлетворяются, устройство декодирования может определять ядро горизонтального преобразования и ядро вертикального преобразования посредством извлечения trTypeHor и trTypeVer согласно ширине и высоте блока (S740). Например, когда ширина текущего блока превышает или равна 4, ширина текущего блока меньше или равна 16, и высота текущего блока превышает или равна ширине текущего блока, устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 1. Между тем, иначе устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 0.
[233] Помимо этого, когда высота текущего блока превышает или равна 4, высота текущего блока меньше или равна 16, и ширина текущего блока превышает или равна высоте текущего блока, устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 1. Между тем, в противном случае устройство декодирования может определять ядро горизонтального преобразования посредством задания trTypeHor равным 0.
[234] Например, устройство декодирования может извлекать trTypeHor и trTypeVer согласно следующим уравнениям. Здесь, nTbW обозначает ширину текущего блока, и nTbH обозначает высоту текущего блока.
[235] уравнение 2
[236] trTypeHor=(nTbW>=4 andand nTbW<=16 andand nTbW<=nTbH)?1:0
[237] уравнение 3
[238] trTypeVer=(nTbH>=4 andand nTbH<=16 andand nTbH<=nTbW)?1:0
[239] Согласно вышеприведенным уравнениям и вышеприведенной таблице 2, когда значение trTypeHor текущего блока равно 1, устройство декодирования может использовать DST7 в качестве ядра горизонтального преобразования, а когда значение trTypeVer равно 1, устройство декодирования может использовать DST7 в качестве ядра вертикального преобразования. Помимо этого, когда значение trTypeHor текущего блока равно 0, устройство декодирования может использовать DCT2 в качестве ядра горизонтального преобразования, а когда значение trTypeVer равно 0, устройство декодирования может использовать DCT2 в качестве ядра вертикального преобразования. Посредством извлечения ядра горизонтального преобразования и ядра вертикального преобразования для текущего блока, можно повышать эффективность кодирования.
[240] Между тем, когда условия этапа S730 не удовлетворяются, устройство декодирования может определять то, что значение индекса ядра преобразования не получается, и определять ядро горизонтального преобразования и ядро вертикального преобразования посредством задания trTypeHor и trTypeVer согласно значению tu_mts_idx (S720).
[241] Хотя примерные способы настоящего раскрытия сущности, описанного выше, представляются как последовательность операций для ясности описания, это не имеет намерение ограничивать порядок, в котором выполняются этапы, и этапы могут выполняться одновременно или в другом порядке при необходимости. Чтобы реализовывать способ согласно настоящему раскрытию сущности, описанные этапы дополнительно могут включать в себя другие этапы, могут включать в себя оставшиеся этапы, за исключением некоторых этапов, либо могут включать в себя другие дополнительные этапы, за исключением некоторых этапов.
[242] В настоящем раскрытии сущности, устройство кодирования изображений или устройство декодирования изображений, которое выполняет предварительно определенную операцию (этап), может выполнять операцию (этап) подтверждения условия или ситуации выполнения соответствующей операции (этап). Например, если описывается то, что предварительно определенная операция выполняется, когда предварительно определенное условие удовлетворяется, устройство кодирования изображений или устройство декодирования изображений может выполнять предварительно определенную операцию после определения того, удовлетворяется или нет предварительно определенное условие.
[243] Различные варианты осуществления настоящего раскрытия сущности не представляют собой список всех возможных комбинаций и имеют намерение описывать характерные аспекты настоящего раскрытия сущности, и вопросы, описанные в различных вариантах осуществления, могут применяться независимо либо в комбинации двух или более из них.
[244] Различные варианты осуществления настоящего раскрытия сущности могут реализовываться в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. В случае реализации настоящего раскрытия сущности посредством аппаратных средств, настоящее раскрытие сущности может реализовываться с помощью специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), общих процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.
[245] Помимо этого, устройство декодирования изображений и устройство кодирования изображений, к которым применяются варианты осуществления настоящего раскрытия сущности, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, для видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу" (VoD), устройство на основе OTT-видео (видео поверх сетей), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство системы видеотелефонии, медицинское видеоустройство и т.п. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеоустройства могут включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[246] Фиг. 25 является видом, иллюстрирующим систему потоковой передачи контента, к которой является применимым вариант осуществления настоящего раскрытия сущности.
[247] Ссылаясь на фиг. 25, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[248] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы сформировать поток битов, и передает поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[249] Поток битов может формироваться посредством способа кодирования изображений или устройства кодирования изображений, к которому применяется вариант осуществления настоящего раскрытия сущности, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[250] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер может доставлять ее на потоковый сервер, и потоковый сервер может передавать мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[251] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[252] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.
[253] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[254] Операция согласно способам по вышеописанным вариантам осуществления может выполняться в устройстве или компьютере посредством инструкций (например, операционных систем, приложений, микропрограммного обеспечения, программ и т.д.), выполняемых в устройстве, либо программного обеспечения, выполняемого в устройстве или компьютере. Такое программное обеспечение или инструкции, выполняемые в устройстве, могут записываться на долговременном считываемом компьютером носителе, выполняемом через компонент устройства или компьютера. Считываемый компьютером носитель записи может включать в себя автономный либо комбинацию программных инструкций, файлов данных, структур данных и т.д. Программные инструкции, записанные на считываемом компьютером носителе записи, могут специально проектироваться и конструироваться для настоящего раскрытия сущности либо быть известны для специалистов в области техники компьютерного программного обеспечения. Примеры считываемого компьютером носителя записи включают в себя магнитные носители записи, такие как жесткие диски, гибкие диски и магнитные ленты; оптические носители записи, такие как CD-ROM или DVD-ROM; магнитооптические носители, такие как флоптические диски; и аппаратные устройства, такие как постоянное запоминающее устройство (ROM), оперативное запоминающее устройство (RAM), флэш-память и т.д., которые конкретно конструируются с возможностью сохранять и реализовывать программную инструкцию. Примеры программных инструкций включают в себя не только механический языковой код, форматируемый посредством компилятора, но также и высокоуровневый языковой код, который может реализовываться посредством компьютера с использованием интерпретатора. Аппаратные устройства могут быть выполнены с возможностью работать в качестве одного или более программных модулей или наоборот, с тем чтобы проводить процессы согласно настоящему раскрытию сущности.
[255] Хотя конкретная техническая идея для кодирования и декодирования видео или изображения описывается посредством ограниченных вариантов осуществления и чертежей, они предоставляются только для того, чтобы помогать более общему пониманию раскрытия сущности, и настоящее раскрытие сущности не ограничено вышеуказанными вариантами осуществления. Специалисты в области техники, к которой относится настоящее раскрытие сущности, должны принимать во внимание, что различные модификации и изменения могут вноситься относительно вышеприведенного описания.
[256] Следовательно, техническая идея, описанная в настоящем раскрытии сущности, не должна быть ограничена вышеописанными вариантами осуществления, и не только формула изобретения, описанная ниже, но также и все модификации, одинаковые или эквивалентные формуле изобретения, должны попадать в пределы объема раскрытия сущности.
Промышленная применимость
[257] Варианты осуществления настоящего раскрытия сущности могут использоваться для того, чтобы кодировать или декодировать изображение.