Область техники, к которой относится изобретение
[1] Настоящее раскрытие сущности относится к способу и оборудованию кодирования/декодирования изображений для выполнения внутриконтурной фильтрации на основе структуры субкадра и к способу передачи потока битов, а более конкретно, к способу и оборудованию кодирования/декодирования изображений для выполнения внутриконтурной фильтрации через границу субкадра и к способу передачи потока битов, сформированного посредством способа/оборудования кодирования изображений настоящего раскрытия сущности.
Уровень техники
[2] В последнее время, спрос на высококачественные изображения высокого разрешения, к примеру, изображения высокой четкости (HD) и изображения сверхвысокой четкости (UHD) растет в различных областях техники. По мере того, как разрешение и качество данных изображений повышается, объем передаваемой информации или битов относительно увеличивается по сравнению с существующими данными изображений. Увеличение объема передаваемой информации или битов приводит к увеличению затрат на передачу и затрат на хранение.
[3] Соответственно, имеется потребность в высокоэффективной технологии сжатия изображений для эффективной передачи, сохранения и воспроизведения информации относительно высококачественных изображений высокого разрешения.
Сущность изобретения
Техническая задача
[4] Цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и оборудование кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
[5] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и оборудование кодирования/декодирования изображений для выполнения внутриконтурной фильтрации через границу текущего блока.
[6] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и оборудование кодирования/декодирования изображений для выполнения внутриконтурной фильтрации на основе структуры субкадра.
[7] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ и оборудование кодирования/декодирования изображений для выполнения внутриконтурной фильтрации с учетом смежного субкадра, смежного с границей текущего блока.
[8] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять способ передачи потока битов, сформированного посредством способа или оборудования кодирования изображений согласно настоящему раскрытию сущности.
[9] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, сохраняющий поток битов, сформированный посредством способа или оборудования кодирования изображений согласно настоящему раскрытию сущности.
[10] Другая цель настоящего раскрытия сущности заключается в том, чтобы предоставлять носитель записи, сохраняющий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством оборудования декодирования изображений согласно настоящему раскрытию сущности.
[11] Технические проблемы, разрешаемые посредством настоящего раскрытия сущности, не ограничены вышеуказанными техническими проблемами, и другие технические проблемы, которые не описываются в данном документе, должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Техническое решение
[12] Способ декодирования изображений, осуществляемый посредством оборудования декодирования изображений согласно аспекту настоящего раскрытия сущности, может содержать декодирование первого флага, указывающего то, может или нет внутриконтурная фильтрация выполняться через границу субкадра, из потока битов и выполнение внутриконтурной фильтрации на границе текущего блока, на основе первого флага. На основе границы текущего блока, представляющей собой границу текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока может не выполняться, на основе первого флага для текущего субкадра, указывающего то, что внутриконтурная фильтрация не может выполняться через границу текущего субкадра, или первого флага для смежного субкадра, смежного с границей текущего блока, указывающего то, что внутриконтурная фильтрация не может выполняться через границу смежного субкадра.
[13] Оборудование декодирования изображений согласно аспекту настоящего раскрытия сущности может содержать запоминающее устройство и, по меньшей мере, один процессор. По меньшей мере, один процессор может декодировать первый флаг, указывающий то, может или нет внутриконтурная фильтрация выполняться через границу субкадра, из потока битов, и выполнять внутриконтурную фильтрацию на границе текущего блока, на основе первого флага. На основе границы текущего блока, представляющей собой границу текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока может не выполняться, на основе первого флага для текущего субкадра, указывающего то, что внутриконтурная фильтрация не может выполняться через границу текущего субкадра, или первого флага для смежного субкадра, смежного с границей текущего блока, указывающего то, что внутриконтурная фильтрация не может выполняться через границу смежного субкадра.
[14] Способ кодирования изображений, осуществляемый посредством оборудования кодирования изображений согласно аспекту настоящего раскрытия сущности, может содержать определение того, может или нет внутриконтурная фильтрация выполняться через границу субкадра, и выполнение внутриконтурной фильтрации на границе текущего блока на основе результата определения. На основе границы текущего блока, представляющей собой границу текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока может не выполняться, на основе первого флага для текущего субкадра, указывающего то, что внутриконтурная фильтрация не может выполняться через границу текущего субкадра, или первого флага для смежного субкадра, смежного с границей текущего блока, указывающего то, что внутриконтурная фильтрация не может выполняться через границу смежного субкадра.
[15] Помимо этого, способ передачи согласно другому аспекту настоящего раскрытия сущности может передавать поток битов, сформированный посредством оборудования кодирования изображений или способа кодирования изображений настоящего раскрытия сущности.
[16] Помимо этого, машиночитаемый носитель записи согласно другому аспекту настоящего раскрытия сущности может сохранять поток битов, сформированный посредством оборудования кодирования изображений или способа кодирования изображений настоящего раскрытия сущности.
[17] Признаки, кратко обобщенные выше относительно настоящего раскрытия сущности, представляют собой просто примерные аспекты нижеприведенного подробного описания настоящего раскрытия сущности и не ограничивают объем настоящего раскрытия сущности.
Преимущества изобретения
[18] Согласно настоящему раскрытию сущности, можно предоставлять способ и оборудование кодирования/декодирования изображений с повышенной эффективностью кодирования/декодирования.
[19] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ и оборудование кодирования/декодирования изображений для выполнения улучшенной внутриконтурной фильтрации.
[20] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ и оборудование кодирования/декодирования изображений для выполнения внутриконтурной фильтрации на основе структуры субкадра.
[21] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ и оборудование кодирования/декодирования изображений для выполнения внутриконтурной фильтрации с учетом смежного субкадра, смежного с границей текущего блока.
[22] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять способ передачи потока битов, сформированного посредством способа или оборудования кодирования изображений согласно настоящему раскрытию сущности.
[23] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, сохраняющий поток битов, сформированный посредством способа или оборудования кодирования изображений согласно настоящему раскрытию сущности.
[24] Кроме того, согласно настоящему раскрытию сущности, можно предоставлять носитель записи, сохраняющий поток битов, принимаемый, декодированный и используемый для того, чтобы восстанавливать изображение посредством оборудования декодирования изображений согласно настоящему раскрытию сущности.
[25] Специалисты в данной области техники должны принимать во внимание, что преимущества, которые могут достигаться через настоящее раскрытие сущности, не ограничены тем, что конкретно описано выше, и другие преимущества настоящего раскрытия сущности должны более ясно пониматься из подробного описания.
Краткое описание чертежей
[26] Фиг. 1 является видом, схематично показывающим систему кодирования видео, к которой является применимым вариант осуществления настоящего раскрытия сущности.
[27] Фиг. 2 является видом, схематично показывающим оборудование кодирования изображений, к которому является применимым вариант осуществления настоящего раскрытия сущности.
[28] Фиг. 3 является видом, схематично показывающим оборудование декодирования изображений, к которому является применимым вариант осуществления настоящего раскрытия сущности.
[29] Фиг. 4 является видом, показывающим структуру сегментации изображения согласно варианту осуществления.
[30] Фиг. 5a-5c являются видами, иллюстрирующими примеры сегментации кадра.
[31] Фиг. 6 является видом, показывающим вариант осуществления типа сегментации блока согласно многотипной древовидной структуре.
[32] Фиг. 7 является видом, показывающим механизм передачи в служебных сигналах информации разбиения на блоки в дереве квадрантов с вложенной многотипной древовидной структурой согласно настоящему раскрытию сущности.
[33] Фиг. 8 является видом, показывающим пример, в котором CTU сегментируется на несколько CU посредством применения многотипного дерева после применения дерева квадрантов.
[34] Фиг. 9 показывает избыточные шаблоны разбиения, которые могут возникать при разбиении на двоичное дерево и разбиении на троичное дерево.
[35] Фиг. 10 является видом, иллюстрирующим примеры, в которых CU-разбиение ограничивается.
[36] Фиг. 11 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео/изображений на основе взаимного прогнозирования.
[37] Фиг. 12 является видом, иллюстрирующим конфигурацию модуля 180 взаимного прогнозирования согласно настоящему раскрытию сущности.
[38] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео/изображений на основе взаимного прогнозирования.
[39] Фиг. 14 является видом, иллюстрирующим конфигурацию модуля 260 взаимного прогнозирования согласно настоящему раскрытию сущности.
[40] Фиг. 15 является видом, иллюстрирующим синтаксис для передачи в служебных сигналах синтаксического элемента для субкадров в SPS.
[41] Фиг. 16 является видом, иллюстрирующим пример алгоритма для извлечения предварительно определенной переменной, такой как SubPicTop.
[42] Фиг. 17 является видом, иллюстрирующим способ кодирования изображения с использованием субкадра посредством оборудования кодирования изображений согласно варианту осуществления настоящего раскрытия сущности.
[43] Фиг. 18 является видом, иллюстрирующим способ декодирования изображения с использованием субкадра посредством оборудования декодирования изображений согласно варианту осуществления.
[44] Фиг. 19 является видом, иллюстрирующим способ применения фильтра удаления блочности.
[45] Фиг. 20 является видом, иллюстрирующим восстановленную выборку, к которой применяется фильтр удаления блочности.
[46] Фиг. 21 и 22 являются видами, иллюстрирующими примеры уменьшения области, трактуемой в качестве кадра в субкадре.
[47] Фиг. 23 и 24 являются видами, иллюстрирующими примеры, в которых возникает ошибка декодирования субкадра.
[48] Фиг. 25 является видом, иллюстрирующим SPS-cинтаксис для передачи в служебных сигналах синтаксического элемента для субкадров согласно варианту осуществления настоящего раскрытия сущности.
[49] Фиг. 26 является видом, иллюстрирующим пример процесса фильтрации выборок сигналов яркости на основе SPS-cинтаксиса по фиг. 25.
[50] Фиг. 27 является видом, иллюстрирующим другой пример процесса фильтрации выборок сигналов яркости на основе SPS-cинтаксиса по фиг. 25.
[51] Фиг. 28 является видом, иллюстрирующим пример процесса фильтрации выборок сигналов цветности на основе SPS-cинтаксиса по фиг. 25.
[52] Фиг. 29 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности.
[53] Фиг. 30 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[54] Фиг. 31 и 32 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[55] Фиг. 33 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[56] Фиг. 34 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности.
[57] Фиг. 35 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[58] Фиг. 36 и 37 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[59] Фиг. 38 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[60] Фиг. 39 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[61] Фиг. 40 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности.
[62] Фиг. 41 и 42 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[63] Фиг. 43 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[64] Фиг. 44 является видом, показывающим систему потоковой передачи контента, к которой является применимым вариант осуществления настоящего раскрытия сущности.
Оптимальный режим осуществления изобретения
[65] В дальнейшем в этом документе подробно описываются варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи, так что они могут легко реализовываться специалистами в данной области техники. Тем не менее, настоящее раскрытие сущности может реализовываться во всевозможных формах и не ограничено вариантами осуществления, описанными в данном документе.
[66] При описании настоящего раскрытия сущности, если определяется то, что подробное описание связанной известной функции или конструкции приводит к излишней неоднозначности объема настоящего раскрытия сущности, ее подробное описание опускается. На чертежах, части, не связанные с описанием настоящего раскрытия сущности, опускаются, и аналогичные ссылки с номерами присоединяются к аналогичным частям.
[67] В настоящем раскрытии сущности, когда компонент "соединяется (connected)", "соединяется (coupled)" или "связывается (linked)" с другим компонентом, это может включать в себя не только непосредственную взаимосвязь на основе соединения, но также и косвенную взаимосвязь на основе соединения, в которой присутствует промежуточный компонент. Помимо этого, когда компонент "включает в себя" или "имеет" другие компоненты, это означает то, что другие компоненты могут включаться дополнительно, а не исключение других компонентов, если не указано иное.
[68] В настоящем раскрытии сущности, термины "первый", "второй" и т.д. могут использоваться только для целей различения одного компонента от других компонентов и не ограничивают порядок или важность компонентов, если не указано иное. Соответственно, в пределах объема настоящего раскрытия сущности, первый компонент в одном варианте осуществления может называться "вторым компонентом" в другом варианте осуществления, и аналогично, второй компонент в одном варианте осуществления может называться "первым компонентом" в другом варианте осуществления.
[69] В настоящем раскрытии сущности, компоненты, которые отличаются друг от друга, имеют намерение ясно описывать каждый признак и не означают то, что компоненты обязательно разделяются. Таким образом, множество компонентов могут интегрироваться и реализовываться в одном аппаратном или программном модуле, или один компонент может распределяться и реализовываться во множестве аппаратных или программных модулей. Следовательно, даже если не указано иное, такие варианты осуществления, в которых компоненты интегрируются, или компонент распределяется, также включаются в объем настоящего раскрытия сущности.
[70] В настоящем раскрытии сущности, компоненты, описанные в различных вариантах осуществления, не обязательно означают существенные компоненты, и некоторые компоненты могут представлять собой необязательные компоненты. Соответственно, вариант осуществления, состоящий из поднабора компонентов, описанных в варианте осуществления, также включается в объем настоящего раскрытия сущности. Помимо этого, варианты осуществления, включающие в себя другие компоненты, в дополнение к компонентам, описанным в различных вариантах осуществления, включаются в объем настоящего раскрытия сущности.
[71] Настоящее раскрытие сущности относится к кодированию и декодированию изображения, и термины, используемые в настоящем раскрытии сущности, могут иметь общий смысл, широко используемый в области техники, которой принадлежит настоящее раскрытие сущности, если не задаются впервые в настоящем раскрытии сущности.
[72] В настоящем раскрытии сущности, "кадр", в общем, означает единицу, представляющую одно изображение в конкретный период времени, и срез/плитка представляет собой единицу кодирования, составляющую часть кадра, и один кадр может состоять из одного или более срезов/плиток. Помимо этого, срез/плитка может включать в себя одну или более единиц дерева кодирования (CTU).
[73] В настоящем раскрытии сущности, "пиксел" или "пел" может означать наименьшую единицу, составляющую один кадр (или изображение). Помимо этого, "выборка" может использоваться в качестве термина, соответствующего пикселу. Выборка, в общем, может представлять пиксел или значение пиксела и может представлять только пиксел/пиксельное значение компонента сигналов яркости либо только пиксел/пиксельное значение компонента сигналов цветности.
[74] В настоящем раскрытии сущности, "единица" может представлять базовую единицу обработки изображений. Единица может включать в себя, по меньшей мере, одно из конкретной области кадра и информации, связанной с областью. Единица может использоваться взаимозаменяемо с такими терминами, как "массив выборок", "блок" или "зона" в некоторых случаях. В общем случае, блок MxN может включать в себя выборки (или массивы выборок) либо набор (или массив) коэффициентов преобразования из M столбцов и N строк.
[75] В настоящем раскрытии сущности, "текущий блок" может означать одно из "текущего блока кодирования", "текущей единицы кодирования", "целевого блока кодирования", "целевого блока декодирования" или "целевого блока обработки". Когда прогнозирование выполняется, "текущий блок" может означать "текущий блок прогнозирования" или "целевой блок прогнозирования". Когда преобразование (обратное преобразование)/квантование (деквантование) выполняется, "текущий блок" может означать "текущий блок преобразования" или "целевой блок преобразования". Когда фильтрация выполняется, "текущий блок" может означать "целевой блок фильтрации".
[76] Помимо этого, в настоящем раскрытии сущности, "текущий блок" может означать блок, включающий в себя как блок компонентов сигналов яркости, так и блок компонентов сигналов цветности либо "блок сигналов яркости текущего блока", если не указан в явной форме в качестве блока сигналов цветности. Блок компонентов сигналов цветности текущего блока может выражаться посредством включения явного описания блока компонентов сигналов яркости, такого как "блок сигналов яркости" или "текущий блок сигналов яркости". Помимо этого, блок компонентов сигналов цветности текущего блока может явно выражаться посредством включения явного описания блока компонентов сигналов цветности, такого как "блок сигналов цветности" или "текущий блок сигналов цветности".
[77] В настоящем раскрытии сущности, термин "/" и "," должен интерпретироваться как указывающий "и/или". Например, выражение "A/B" и "A, B" может означать "A и/или B". Дополнительно, "A/B/C" и "A/B/C" может означать "по меньшей мере, одно из A, B и/или C".
[78] В настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "и/или". Например, выражение "A или B" может содержать 1) только "A", 2) только "B" и/или 3) "как A, так и B". Другими словами, в настоящем раскрытии сущности, термин "или" должен интерпретироваться как указывающий "дополнительно или альтернативно".
[79] Общее представление системы кодирования видео
[80] Фиг. 1 является видом, показывающим систему кодирования видео, к которой является применимым вариант осуществления настоящего раскрытия сущности.
[81] Система кодирования видео согласно варианту осуществления может включать в себя оборудование 10 кодирования и оборудование 20 декодирования. Оборудование 10 кодирования может доставлять кодированную информацию или данные видео и/или изображений в оборудование 20 декодирования в форме файла или потоковой передачи через цифровой носитель хранения данных или сеть.
[82] Оборудование 10 кодирования согласно варианту осуществления может включать в себя формирователь 11 видеоисточников, модуль 12 кодирования и передатчик 13. Оборудование 20 декодирования согласно варианту осуществления может включать в себя приемник 21, модуль 22 декодирования и модуль 23 рендеринга. Модуль 12 кодирования может называться "модулем кодирования видео/изображений", и модуль 22 декодирования может называться "модулем декодирования видео/изображений". Передатчик 13 может включаться в модуль 12 кодирования. Приемник 21 может включаться в модуль 22 декодирования. Модуль 23 рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[83] Формирователь 11 видеоисточников может получать видео/изображение через процесс захвата, синтезирования или формирования видео/изображения. Формирователь 11 видеоисточников может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архивы видео/изображений, включающие в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютеры, планшетные компьютеры и смартфоны и может (электронно) формировать видео/изображения. Например, виртуальное видео/изображение может формироваться через компьютер и т.п. В этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[84] Модуль 12 кодирования может кодировать входное видео/изображение. Модуль 12 кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Модуль 12 кодирования может выводить кодированные данные (кодированную информацию видео/изображений) в форме потока битов.
[85] Передатчик 13 может передавать кодированную информацию или данные видео/изображений, выводимую в форме потока битов, в приемник 21 оборудования 20 декодирования через цифровой носитель хранения данных или сеть в форме файла или потоковой передачи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную сеть/сеть связи. Приемник 21 может извлекать/принимать поток битов из носителя хранения данных или сети и передавать поток битов в модуль 22 декодирования.
[86] Модуль 22 декодирования может декодировать видео/изображение посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих работе модуля 12 кодирования.
[87] Модуль 23 рендеринга может выполнять рендеринг декодированного видео/изображения. Подготовленное посредством рендеринга видео/изображение может отображаться через дисплей.
[88] Общее представление оборудования кодирования изображений
[89] Фиг. 2 является видом, схематично показывающим оборудование кодирования изображений, к которому является применимым вариант осуществления настоящего раскрытия сущности.
[90] Как показано на фиг. 2, оборудование 100 кодирования изображений может включать в себя модуль 110 сегментации изображений, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, запоминающее устройство 170, модуль 180 взаимного прогнозирования, модуль 185 внутреннего прогнозирования и энтропийный кодер 190. Модуль 180 взаимного прогнозирования и модуль 185 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Преобразователь 120, квантователь 130, деквантователь 140 и обратный преобразователь 150 могут включаться в остаточный процессор. Остаточный процессор дополнительно может включать в себя вычитатель 115.
[91] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих оборудование 100 кодирования изображений, могут быть сконфигурированы посредством одного аппаратного компонента (например, кодера или процессора) в некоторых вариантах осуществления. Помимо этого, запоминающее устройство 170 может включать в себя буфер декодированных кадров (DPB) и может быть сконфигурировано посредством цифрового носителя хранения данных.
[92] Модуль 110 сегментации изображений может сегментировать входное изображение (либо кадр или кинокадр), вводимое в оборудование 100 кодирования изображений, на одну более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". Единица кодирования может получаться посредством рекурсивной сегментации единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов, двоичного дерева и троичного дерева (QT/BT/TT). Например, одна единица кодирования может сегментироваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов, структуры в виде двоичного дерева и/или троичной структуры. Для сегментации единицы кодирования, сначала может применяться структура в виде дерева квадрантов, и впоследствии может применяться структура в виде двоичного дерева и/или троичная структура. Процедура кодирования согласно настоящему раскрытию сущности может выполняться на основе конечной единицы кодирования, которая более не сегментируется. Наибольшая единица кодирования может использоваться в качестве конечной единицы кодирования, или единица кодирования большей глубины, полученной посредством сегментации наибольшей единицы кодирования, может использоваться в качестве конечной единицы кодирования. Здесь, процедура кодирования может включать в себя процедуру прогнозирования, преобразования и восстановления, которая описывается ниже. В качестве другого примера, единица обработки процедуры кодирования может представлять собой единицу прогнозирования (PU) или единицу преобразования (TU). Единица прогнозирования и единица преобразования могут разбиваться или сегментироваться из конечной единицы кодирования. Единица прогнозирования может представлять собой единицу выборочного прогнозирования, и единица преобразования может представлять собой единицу для извлечения коэффициента преобразования и/или единицу для извлечения остаточного сигнала из коэффициента преобразования.
[93] Модуль прогнозирования (модуль 180 взаимного прогнозирования или модуль 185 внутреннего прогнозирования) может выполнять прогнозирование относительно блока, который должен обрабатываться (текущего блока), и формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование, на основе текущего блока или CU. Модуль прогнозирования может формировать различную информацию, связанную с прогнозированием текущего блока, и передавать сформированную информацию в энтропийный кодер 190. Информация относительно прогнозирования может кодироваться в энтропийном кодере 190 и выводиться в форме потока битов.
[94] Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Выборки для ссылки могут быть расположены в окружении текущего блока или могут быть расположены с разнесением согласно режиму внутреннего прогнозирования и/или технологии внутреннего прогнозирования. Режимы внутреннего прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Направленный режим может включать в себя, например, 33 режима направленного прогнозирования или 65 режимов направленного прогнозирования согласно степени детальности направления прогнозирования. Тем не менее, это представляет собой просто пример, большее или меньшее число режимов направленного прогнозирования может использоваться в зависимости от настройки. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[95] Модуль 180 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" и т.п. Опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 180 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения, и вектор движения текущего блока может передаваться в служебных сигналах посредством кодирования разности векторов движения и индикатора для предиктора вектора движения. Разность векторов движения может означать разность между вектором движения текущего блока и предиктором вектора движения.
[96] Модуль прогнозирования может формировать прогнозный сигнал на основе различных способов прогнозирования и технологий прогнозирования, описанных ниже. Например, модуль прогнозирования может не только применять внутреннее прогнозирование или взаимное прогнозирование, но также и одновременно применять как внутреннее прогнозирование, так и взаимное прогнозирование, чтобы прогнозировать текущий блок. Способ прогнозирования с одновременным применением как внутреннего прогнозирования, так и взаимного прогнозирования для прогнозирования текущего блока может называться "комбинированным взаимным и внутренним прогнозированием (CIIP)". Помимо этого, модуль прогнозирования может выполнять внутриблочное копирование (IBC) для прогнозирования текущего блока. Внутриблочное копирование может использоваться для кодирования изображений/видео контента игры и т.п., например, для кодирования экранного контента (SCC). IBC представляет собой способ прогнозирования текущего кадра с использованием ранее восстановленного опорного блока в текущем кадре в местоположении, разнесенном от текущего блока на предварительно определенное расстояние. Когда IBC применяется, местоположение опорного блока в текущем кадре может кодироваться как вектор (блочный вектор), соответствующий предварительно определенному расстоянию. IBC по существу выполняет прогнозирование в текущем кадре, но может выполняться аналогично взаимному прогнозированию в том, что опорный блок извлекается внутри текущего кадра. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в настоящем раскрытии сущности.
[97] Прогнозный сигнал, сформированный посредством модуля прогнозирования, может использоваться для того, чтобы формировать восстановленный сигнал или формировать остаточный сигнал. Вычитатель 115 может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого из модуля прогнозирования, из сигнала входного изображения (исходного блока или массива исходных выборок). Сформированный остаточный сигнал может передаваться в преобразователь 120.
[98] Преобразователь 120 может формировать коэффициенты преобразования посредством применения технологии преобразования к остаточному сигналу. Например, технология преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). Здесь, GBT означает преобразование, полученное из графа, когда информация взаимосвязи между пикселами представляется посредством графа. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Помимо этого, процесс преобразования может применяться к квадратным пиксельным блокам, имеющим идентичный размер, или может применяться к блокам, имеющим переменный размер, а не квадратный.
[99] Квантователь 130 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить поток битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 130 может перекомпоновывать квантованные коэффициенты преобразования в блочной форме в одномерную векторную форму на основе порядка сканирования коэффициентов и формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования в одномерной векторной форме.
[100] Энтропийный кодер 190 может осуществлять различные способы кодирования, такие как, например, кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и т.п. Энтропийный кодер 190 может кодировать информацию, необходимую для восстановления видео/изображений, отличную от квантованных коэффициентов преобразования (например, значений синтаксических элементов и т.д.), вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единицах слоев абстрагирования от сети (NAL) в форме потока битов. Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Передаваемая в служебных сигналах информация, передаваемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут кодироваться через вышеописанную процедуру кодирования и включаться в поток битов.
[101] Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. Сеть может включать в себя широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как, USB, SD, CD, DVD, Blu-Ray, HDD, SSD и т.п. Передатчик (не показан), передающий сигнал, выводимый из энтропийного кодера 190, и/или модуль хранения (не показан), сохраняющий сигнал, могут включаться в качестве внутреннего/внешнего элемента оборудования 100 кодирования, и альтернативно, передатчик может включаться в энтропийный кодер 190.
[102] Квантованные коэффициенты преобразования, выводимые из квантователя 130, могут использоваться для того, чтобы формировать остаточный сигнал. Например, остаточный сигнал (остаточный блок или остаточные выборки) может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 140 и обратный преобразователь 150.
[103] Сумматор 155 суммирует восстановленный остаточный сигнал с прогнозным сигналом, выводимым из модуля 180 взаимного прогнозирования или модуля 185 внутреннего прогнозирования, с тем чтобы формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, в случае, в котором режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Сумматор 155 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[104] Фильтр 160 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 160 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 170, а именно, в DPB запоминающего устройства 170. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, фильтрацию на основе дискретизированного адаптивного смещения, адаптивный контурный фильтр, билатеральный фильтр и т.п. Фильтр 160 может формировать различную информацию, связанную с фильтрацией, и передавать сформированную информацию в энтропийный кодер 190, как описано ниже в описании каждого способа фильтрации. Информация, связанная с фильтрацией, может кодироваться посредством энтропийного кодера 190 и выводиться в форме потока битов.
[105] Модифицированный восстановленный кадр, передаваемый в запоминающее устройство 170, может использоваться в качестве опорного кадра в модуле 180 взаимного прогнозирования. Когда взаимное прогнозирование применяется через оборудование 100 кодирования изображений, рассогласование прогнозирования между оборудованием 100 кодирования изображений и оборудованием декодирования изображений может исключаться, и эффективность кодирования может повышаться.
[106] DPB запоминающего устройства 170 может сохранять модифицированный восстановленный кадр для использования в качестве опорного кадра в модуле 180 взаимного прогнозирования. Запоминающее устройство 170 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или кодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 180 взаимного прогнозирования и использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 170 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и может передавать восстановленные выборки в модуль 185 внутреннего прогнозирования.
[107] Общее представление оборудования декодирования изображений
[108] Фиг. 3 является видом, схематично показывающим оборудование декодирования изображений, к которому является применимым вариант осуществления настоящего раскрытия сущности.
[109] Как показано на фиг. 3, оборудование 200 декодирования изображений может включать в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, запоминающее устройство 250, модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Деквантователь 220 и обратный преобразователь 230 могут включаться в остаточный процессор.
[110] Все или, по меньшей мере, часть из множества компонентов, конфигурирующих оборудование 200 декодирования изображений, могут быть сконфигурированы посредством аппаратного компонента (например, декодера или процессора) согласно варианту осуществления. Помимо этого, запоминающее устройство 250 может включать в себя буфер декодированных кадров (DPB) или может быть сконфигурировано посредством цифрового носителя хранения данных.
[111] Оборудование 200 декодирования изображений, которое принимает поток битов, включающий в себя информацию видео/изображений, может восстанавливать изображение посредством выполнения процесса, соответствующего процессу, выполняемому посредством оборудования 100 кодирования изображений по фиг. 2. Например, оборудование 200 декодирования изображений может выполнять декодирование с использованием единицы обработки, применяемой в оборудовании кодирования изображений. Таким образом, единица обработки декодирования, например, может представлять собой единицу кодирования. Единица кодирования может получаться посредством сегментации единицы дерева кодирования или наибольшей единицы кодирования. Восстановленный сигнал изображения, декодированный и выводимый посредством оборудования 200 декодирования, может воспроизводиться посредством оборудования воспроизведения.
[112] Оборудование 200 декодирования изображений может принимать сигнал, выводимый из оборудования кодирования изображений по фиг. 2 в форме потока битов. Принимаемый сигнал может декодироваться через энтропийный декодер 210. Например, энтропийный декодер 210 может синтаксически анализировать поток битов, чтобы извлекать информацию (например, информацию видео/изображений), необходимую для восстановления изображений (или восстановления кадров). Информация видео/изображений дополнительно может включать в себя информацию относительно различных наборов параметров, таких как набор параметров адаптации (APS), набор параметров кадра (PPS), набор параметров последовательности (SPS) или набор параметров видео (VPS). Помимо этого, информация видео/изображений дополнительно может включать в себя общую информацию ограничений. Оборудование декодирования изображений дополнительно может декодировать кадр на основе информации относительно набора параметров и/или общей информации ограничений. Передаваемая в служебных сигналах/принимаемая информация и/или синтаксические элементы, описанные в настоящем раскрытии сущности, могут декодироваться посредством процедуры декодирования и получаться из потока битов. Например, энтропийный декодер 210 декодирует информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и выходных значений синтаксических элементов, требуемых для восстановления изображений, и квантованных значений коэффициентов преобразования для остатка. Более конкретно, способ энтропийного CABAC-декодирования может принимать элемент разрешения, соответствующий каждому синтаксическому элементу в потоке битов, определять контекстную модель с использованием информации целевого синтаксического элемента декодирования, информации декодирования соседнего блока и целевого блока декодирования или информации символа/элемента разрешения, декодированного на предыдущей стадии, и выполнять арифметическое декодирование для элемента разрешения посредством прогнозирования вероятности появления элемента разрешения согласно определенной контекстной модели и формировать символ, соответствующий значению каждого синтаксического элемента. В этом случае, способ энтропийного CABAC-декодирования может обновлять контекстную модель посредством использования информации декодированного символа/элемента разрешения для контекстной модели следующего символа/элемента разрешения после определения контекстной модели. Информация, связанная с прогнозированием из информации, декодированной посредством энтропийного декодера 210, может предоставляться в модуль прогнозирования (модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования), и остаточное значение, для которого энтропийное декодирование выполнено в энтропийном декодере 210, т.е. квантованные коэффициенты преобразования и связанная информация параметров, может вводиться в деквантователь 220. Помимо этого, информация относительно фильтрации из информации, декодированной посредством энтропийного декодера 210, может предоставляться в фильтр 240. Между тем, приемник (не показан) для приема сигнала, выводимого из оборудования кодирования изображений, может быть дополнительно сконфигурирован в качестве внутреннего/внешнего элемента оборудования 200 декодирования изображений, или приемник может представлять собой компонент энтропийного декодера 210.
[113] Между тем, оборудование декодирования изображений согласно настоящему раскрытию сущности может называться "оборудованием декодирования видео/изображений/кадров". Оборудование декодирования изображений может классифицироваться на информационный декодер (декодер информации видео/изображений/кадров) и выборочный декодер (декодер выборок видео/изображений/кадров). Информационный декодер может включать в себя энтропийный декодер 210. Выборочный декодер может включать в себя, по меньшей мере, одно из деквантователя 220, обратного преобразователя 230, сумматора 235, фильтра 240, запоминающего устройства 250, модуля 260 взаимного прогнозирования или модуля 265 внутреннего прогнозирования.
[114] Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может перекомпоновывать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, перекомпоновка может выполняться на основе порядка сканирования коэффициентов, выполняемого в оборудовании кодирования изображений. Деквантователь 220 может выполнять деквантование для квантованных коэффициентов преобразования посредством использования параметра квантования (например, информации размера шага квантования) и получать коэффициенты преобразования.
[115] Обратный преобразователь 230 может обратно преобразовывать коэффициенты преобразования, чтобы получать остаточный сигнал (остаточный блок, массив остаточных выборок).
[116] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование или взаимное прогнозирование к текущему блоку, на основе информации относительно прогнозирования, выводимой из энтропийного декодера 210, и может определять конкретный режим внутреннего/взаимного прогнозирования.
[117] Идентично тому, что описано в модуле прогнозирования оборудования 100 кодирования изображений, модуль прогнозирования может формировать прогнозный сигнал на основе различных способов (технологий) прогнозирования, которые описываются ниже.
[118] Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок посредством ссылки на выборки в текущем кадре. Описание модуля 185 внутреннего прогнозирования в равной степени применяется к модулю 265 внутреннего прогнозирования.
[119] Модуль 260 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Например, модуль 260 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования, и информация относительно прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[120] Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок, массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком, массивом прогнозированных выборок), выводимым из модуля прогнозирования (включающего в себя модуль 260 взаимного прогнозирования и/или модуль 265 внутреннего прогнозирования). Если отсутствует остаток для блока, который должен обрабатываться, к примеру, когда режим пропуска применяется, прогнозированный блок может использоваться в качестве восстановленного блока. Описание сумматора 155 является в равной степени применимым к сумматору 235. Сумматор 235 может называться "модулем восстановления" или "формирователем восстановленных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего блока, который должен обрабатываться в текущем кадре, и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[121] Фильтр 240 может повышать субъективное/объективное качество изображений посредством применения фильтрации к восстановленному сигналу. Например, фильтр 240 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и сохранять модифицированный восстановленный кадр в запоминающем устройстве 250, а именно, в DPB запоминающего устройства 250. Различные способы фильтрации могут включать в себя, например, фильтрацию для удаления блочности, фильтрацию на основе дискретизированного адаптивного смещения, адаптивный контурный фильтр, билатеральный фильтр и т.п.
[122] (Модифицированный) восстановленный кадр, сохраненный в DPB запоминающего устройства 250, может использоваться в качестве опорного кадра в модуле 260 взаимного прогнозирования. Запоминающее устройство 250 может сохранять информацию движения блока, из которой информация движения в текущем кадре извлекается (или декодируется), и/или информацию движения блоков в кадре, которые уже восстановлены. Сохраненная информация движения может передаваться в модуль 260 взаимного прогнозирования, так что она используется в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Запоминающее устройство 250 может сохранять восстановленные выборки восстановленных блоков в текущем кадре и передавать восстановленные выборки в модуль 265 внутреннего прогнозирования.
[123] В настоящем раскрытии сущности, варианты осуществления, описанные в фильтре 160, модуле 180 взаимного прогнозирования и модуле 185 внутреннего прогнозирования оборудования 100 кодирования изображений, могут в равной или соответствующей степени применяться к фильтру 240, модулю 260 взаимного прогнозирования и модулю 265 внутреннего прогнозирования оборудования 200 декодирования изображений.
[124] Общее представление сегментации изображений
[125] Способ кодирования видео/изображений согласно настоящему раскрытию сущности может осуществляться на основе структуры сегментации изображений следующим образом. В частности, процедуры прогнозирования, остаточной обработки ((обратного) преобразования, (де)-квантования и т.д.), кодирования синтаксических элементов и фильтрации, которые описываются ниже, могут выполняться на основе CTU, CU (и/или TU, PU), извлекаемой на основе структуры сегментации изображений. Изображение может сегментироваться в единицах блоков, и процедура сегментации на блоки может выполняться в модуле 110 сегментации изображений оборудования кодирования. Связанная с сегментацией информация может кодироваться посредством энтропийного кодера 190 и передаваться в оборудование декодирования в форме потока битов. Энтропийный декодер 210 оборудования декодирования может извлекать структуру сегментации на блоки текущего кадра на основе связанной с сегментацией информации, полученной из потока битов, и на основе этого, может выполнять последовательность процедур (например, прогнозирование, остаточную обработку, восстановление блоков/кадров, внутриконтурную фильтрацию и т.д.) для декодирования изображений. CU-размер и TU-размер могут быть идентичными, или множество TU могут присутствовать в CU-зоне. Между тем, CU-размер, в общем, может представлять CB-размер компонентных (выборок) сигналов яркости. TU-размер, в общем, может представлять TB-размер компонентных (выборок) сигналов яркости. CB- или TB-размер компонентных (выборок) сигналов цветности может извлекаться на основе CB- или TB-размера компонентных (выборок) сигналов яркости согласно соотношению компонентов согласно формату сигналов цветности (цветовому формату, например, 4:4:4, 4:2:2, 4:2:0 и т.д.) кадра/изображения. TU-размер может извлекаться на основе maxTbSize, указывающего доступный максимальный TB-размер. Например, когда CU-размер превышает maxTbSize, множество TU (TB) с maxTbSize могут извлекаться из CU, и преобразование/обратное преобразование может выполняться в единицах TU (TB). Помимо этого, например, при применении внутреннего прогнозирования, режим/тип внутреннего прогнозирования может извлекаться в единицах CU (или CB), и процедура извлечения соседних опорных выборок и формирования прогнозных выборок может выполняться в единицах TU (или TB). В этом случае, одна или множество TU (или TB) могут присутствовать в одной CU-(или CB-)зоне, и, в этом случае, множество TU или (TB) могут совместно использовать идентичный режим/тип внутреннего прогнозирования.
[126] Помимо этого, при кодировании и декодировании изображений согласно настоящему раскрытию сущности, модуль обработки изображений может иметь иерархическую структуру. Например, один кадр может сегментироваться на одну или более плиток или групп плиток. Одна группа плиток может включать в себя одну или более плиток. Одна плитка может включать в себя одну или более CTU. CTU может сегментироваться на одну или более CU, как описано выше. Плитка может состоять из прямоугольной области, включающей в себя CTU, собранные в конкретной строке и конкретном столбце в кадре. Группа плиток может включать в себя целое число плиток согласно растровому сканированию плиток. Заголовок группы плиток может передавать в служебных сигналах информацию/параметры, применимые к соответствующей группе плиток. Когда оборудование кодирования/декодирования имеет многоядерный процессор, процедура кодирования/декодирования для плитки или группы плиток может выполняться параллельно. Здесь, группа плиток может иметь один из типов групп плиток, включающих в себя группу внутренних (I) плиток, группу прогнозирующих (P) плиток и группу бипрогнозирующих (B) плиток. Для блоков в группе I-плиток, взаимное прогнозирование может не использоваться, и только внутреннее прогнозирование может использоваться для прогнозирования. Конечно, даже в этом случае, исходное выборочное значение может кодироваться и передаваться в служебных сигналах без прогнозирования. Для блоков в группе P-плиток, внутреннее прогнозирование или взаимное прогнозирование может использоваться, и только унипрогнозирование может использоваться при взаимном прогнозировании. Между тем, для блоков в группе B-плиток, внутреннее прогнозирование или взаимное прогнозирование может использоваться, и вплоть до бипрогнозирования может использоваться, когда используется взаимное прогнозирование.
[127] В оборудовании кодирования, плитка/группа плиток, срез и размер максимальной и минимальной единицы кодирования могут определяться согласно характеристикам (например, разрешению) изображения и с учетом эффективности кодирования либо параллельной обработки, и информация для нее или информация, допускающая ее извлечение, может включаться в поток битов.
[128] В оборудовании декодирования, информация, указывающая то, срез текущего кадра, плитка/группа плиток или CTU в плитке сегментируется на множество единиц кодирования, может получаться. Когда эта информация получается (передается) только при конкретных условиях, эффективность может повышаться.
[129] Заголовок среза или заголовок группы плиток (синтаксис заголовков групп плиток) может включать в себя информацию/параметры, обычно применимые к группе срезов или плиток. APS (APS-синтаксис) или PPS (PPS-синтаксис) может включать в себя информацию/параметры, обычно применимые к одному или более кадров. SPS (SPS-cинтаксис) может включать в себя информацию/параметры, обычно применимые к одной или более последовательностей. VPS (VPS-синтаксис) может включать в себя информацию/параметры, обычно применимые ко всему видео. В настоящем раскрытии сущности, высокоуровневый синтаксис может включать в себя, по меньшей мере, одно из APS-синтаксиса, PPS-синтаксиса, SPS-cинтаксиса или VPS-синтаксиса.
[130] Помимо этого, например, информация относительно сегментации и конструирования плитки/группы плиток может конструироваться в каскаде кодирования через высокоуровневый синтаксис и передаваться в оборудование декодирования в форме потока битов.
[131] Структура сегментации
[132] Кадры могут сегментироваться на последовательность единиц дерева кодирования (CTU). CTU может соответствовать блоку дерева кодирования (CTB). Альтернативно, CTU может включать в себя блок дерева кодирования выборок сигналов яркости и два блока дерева кодирования соответствующих выборок сигналов цветности. Например, для кадра, который содержит три массива выборок, CTU может включать в себя блок NxN выборок сигналов яркости и два соответствующих блока выборок сигналов цветности. Фиг. 4 показывает пример, в котором кадр сегментируется на CTU.
[133] Максимально допустимый размер CTU для кодирования и прогнозирования может отличаться от максимально допустимого размера CTU для преобразования. Например, даже когда максимальный размер блока сигналов яркости в CTU для преобразования составляет 64×64, максимальный размер блока сигналов яркости для CTU для кодирования и прогнозирования может составлять 128×128.
[134] Помимо этого, кадр может сегментироваться на одну или более строк плиток и один или более столбцов плиток. Плитка может представлять собой последовательность CTU, покрывающих прямоугольную область в кадре.
[135] Плитка может сегментироваться на один или более кирпичей, и каждый кирпич может состоять из множества CTU-строк в плитке. В настоящем раскрытии сущности, плитка, которая не сегментируется на множество кирпичей, может называться "кирпичом".
[136] Срез может включать в себя множество плиток в кадре или множество кирпичей в плитке. Могут поддерживаться два режима разделения на срезы. Один может представлять собой режим разделения на срезы на основе растрового сканирования, и другой может представлять собой режим разделения на прямоугольные срезы.
[137] В растровом режиме разделения на срезы, срез может включать в себя множество последовательных плиток в кадре согласно порядку растрового сканирования. В настоящем раскрытии сущности, срез согласно режиму разделения на срезы на основе растрового сканирования может называться "срезом на основе растрового сканирования".
[138] В режиме разделения на прямоугольные срезы, срез может включать в себя множество кирпичей, конструирующих прямоугольную область в кадре. В настоящем раскрытии сущности, срез согласно режиму разделения на прямоугольные срезы может называться "прямоугольным срезом". Множество кирпичей, включенных в прямоугольный срез, могут существовать согласно порядку растрового сканирования кирпичей среза.
[139] Фиг. 5a-5c являются видами, иллюстрирующими примеры сегментации кадра.
[140] Во-первых, ссылаясь на фиг. 5a, в режиме разделения на срезы на основе растрового сканирования, кадр может сегментироваться на 12 плиток и три среза на основе растрового сканирования.
[141] Ссылаясь на фиг. 5b, в режиме разделения на прямоугольные срезы, кадр может сегментироваться на 24 плитки (т.е. на шесть строк плиток и четыре столбца плиток) и на девять прямоугольных срезов.
[142] Ссылаясь на фиг. 5c, кадр может сегментироваться на четыре плитки (т.е. на две строки плиток и два столбца плиток), на 11 кирпичей (т.е. на один левый верхний кирпич, пять правых верхних кирпичей, два левых нижних кирпича и три правых нижних кирпича) и на четыре прямоугольных среза.
[143] Общее представление сегментации CTU
[144] Как описано выше, единица кодирования (CU) может получаться посредством рекурсивной сегментации единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) согласно структуре в виде дерева квадрантов/двоичного дерева/троичного дерева (QT/BT/TT). Например, CTU может сначала сегментироваться на структуры в виде дерева квадрантов. После этого, узлы-листья структуры в виде дерева квадрантов дополнительно могут сегментироваться посредством многотипной древовидной структуры.
[145] Сегментация согласно дереву квадрантов означает то, что текущая CU (или CTU) сегментируется одинаково на четыре. Посредством сегментации согласно дереву квадрантов, текущая CU может сегментироваться на четыре CU, имеющие идентичную ширину и идентичную высоту. Когда текущая CU более не сегментируется на структуру в виде дерева квадрантов, текущая CU соответствует узлу-листу структуры в виде дерева квадрантов. CU, соответствующая узлу-листу структуры в виде дерева квадрантов, более не может сегментироваться и может использоваться в качестве вышеописанной конечной единицы кодирования. Альтернативно, CU, соответствующая узлу-листу структуры в виде дерева квадрантов, дополнительно может сегментироваться посредством многотипной древовидной структуры.
[146] Фиг. 6 является видом, показывающим вариант осуществления типа сегментации блока согласно многотипной древовидной структуре. Сегментация согласно многотипной древовидной структуре может включать в себя два типа разбиения согласно структуре в виде двоичного дерева и два типа разбиения согласно структуре в виде троичного дерева.
[147] Два типа разбиения согласно структуре в виде двоичного дерева могут включать в себя вертикальное двоичное разбиение (SPLIT_BT_VER) и горизонтальное двоичное разбиение (SPLIT_BT_HOR). Вертикальное двоичное разбиение (SPLIT_BT_VER) означает то, что текущая CU разбивается одинаково напополам в вертикальном направлении. Как показано на фиг. 5, посредством вертикального двоичного разбиения, могут формироваться две CU, имеющие высоту, идентичную высоте текущей CU, и имеющие ширину, которая составляет половину от ширины текущей CU. Горизонтальное двоичное разбиение (SPLIT_BT_HOR) означает то, что текущая CU разбивается одинаково напополам в горизонтальном направлении. Как показано на фиг. 5, посредством горизонтального двоичного разбиения, могут формироваться две CU, имеющие высоту, которая составляет половину от высоты текущей CU, и имеющие ширину, идентичную ширине текущей CU.
[148] Два типа разбиения согласно структуре в виде троичного дерева могут включать в себя вертикальное троичное разбиение (SPLIT_TT_VER) и горизонтальное троичное разбиение (SPLIT_TT_HOR). В вертикальном троичном разбиении (SPLIT_TT_VER), текущая CU разбивается в вертикальном направлении в соотношении 1:2:1. Как показано на фиг. 5, посредством вертикального троичного разбиения, могут формироваться две CU, имеющие высоту, идентичную высоте текущей CU, и имеющие ширину, которая составляет 1/4 от ширины текущей CU, и CU, имеющая высоту, идентичную высоте текущей CU, и имеющая ширину, которая составляет половину от ширины текущей CU. В горизонтальном троичном разбиении (SPLIT_TT_HOR), текущая CU разбивается в горизонтальном направлении в соотношении 1:2:1. Как показано на фиг. 5, посредством горизонтального троичного разбиения, могут формироваться две CU, имеющие высоту, которая составляет 1/4 от высоты текущей CU, и имеющие ширину, идентичную ширине текущей CU, и CU, имеющая высоту, которая составляет половину от высоты текущей CU, и имеющая ширину, идентичную ширине текущей CU.
[149] Фиг. 7 является видом, показывающим механизм передачи в служебных сигналах информации разбиения на блоки в дереве квадрантов с вложенной многотипной древовидной структурой согласно настоящему раскрытию сущности.
[150] Здесь, CTU трактуется в качестве корневого узла дерева квадрантов и сегментируется в первый раз на структуру в виде дерева квадрантов. Информация (например, qt_split_flag), указывающая то, выполняется или нет разбиение на дерево квадрантов для текущей CU (CTU или узла (QT_node) дерева квадрантов), передается в служебных сигналах. Например, когда qt_split_flag имеет первое значение (например, "1"), текущая CU может сегментироваться на дерево квадрантов. Помимо этого, когда qt_split_flag имеет второе значение (например, "0"), текущая CU не сегментируется на дерево квадрантов, но становится узлом-листом (QT_leaf_node) дерева квадрантов. Каждый узел-лист дерева квадрантов затем дополнительно может сегментироваться на многотипные древовидные структуры. Таким образом, узел-лист дерева квадрантов может становиться узлом (MTT_node) многотипного дерева. В многотипной древовидной структуре, первый флаг (например, Mtt_split_cu_flag) передается в служебных сигналах, чтобы указывать то, сегментируется или нет дополнительно текущий узел. Если соответствующий узел дополнительно сегментируется (например, если первый флаг равен 1), второй флаг (например, Mtt_split_cu_vertical_flag) может передаваться в служебных сигналах, чтобы указывать направление разбиения. Например, направление разбиения может представлять собой вертикальное направление, если второй флаг равен 1, и может представлять собой горизонтальное направление, если второй флаг равен 0. Затем третий флаг (например, Mtt_split_cu_binary_flag) может передаваться в служебных сигналах, чтобы указывать то, представляет тип разбиения собой тип на основе двоичного разбиения или тип на основе троичного разбиения. Например, тип разбиения может представлять собой тип на основе двоичного разбиения, когда третий флаг равен 1, и может представлять собой тип на основе троичного разбиения, когда третий флаг равен 0. Узел многотипного дерева, полученного посредством двоичного разбиения или троичного разбиения, дополнительно может сегментироваться на многотипные древовидные структуры. Тем не менее, узел многотипного дерева может не сегментироваться на структуры в виде дерева квадрантов. Если первый флаг равен 0, соответствующий узел многотипного дерева более не разбивается, но становится узлом-листом (MTT_leaf_node) многотипного дерева. CU, соответствующая узлу-листу многотипного дерева, может использоваться в качестве вышеописанной конечной единицы кодирования.
[151] На основе mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, режим разбиения на основе многотипного дерева (MttSplitMode) CU может извлекаться так, как показано в нижеприведенной таблице 1. В нижеприведенном описании, режим разбиения на основе многотипного дерева может называться "типом разбиения на основе мультидерева" или "типом разбиения".
[152] Табл. 1
[153] Фиг. 8 является видом, показывающим пример, в котором CTU сегментируется на несколько CU посредством применения многотипного дерева после применения дерева квадрантов. На фиг. 8, полужирные края 810 блоков представляют сегментацию на основе дерева квадрантов, и оставшиеся края 820 представляют сегментацию на основе многотипного дерева. CU может соответствовать блоку кодирования (CB). В варианте осуществления, CU может включать в себя блок кодирования выборок сигналов яркости и два блока кодирования выборок сигналов цветности, соответствующих выборкам сигналов яркости.
[154] CB- или TB-размер компонентных (выборок) сигналов цветности может извлекаться на основе CB- или TB-размера компонентных (выборок) сигналов яркости согласно соотношению компонентов согласно цветовому формату (формату сигналов цветности, например, 4:4:4, 4:2:2, 4:2:0 и т.п.) кадра/изображения. В случае цветового формата 4:4:4, CB/TB-размер компонентов сигнала цветности может задаваться равным CB/TB-размеру компонентов сигнала яркости. В случае цветового формата 4:2:2, ширина CB/TB компонентов сигнала цветности может задаваться равной половине ширины CB/TB компонентов сигнала яркости, и высота CB/TB компонентов сигнала цветности может задаваться равной высоте CB/TB компонентов сигнала яркости. В случае цветового формата 4:2:0, ширина CB/TB компонентов сигнала цветности может задаваться равной половине ширины CB/TB компонентов сигнала яркости, и высота CB/TB компонентов сигнала цветности может задаваться равной половине высоты CB/TB компонентов сигнала яркости.
[155] В варианте осуществления, когда размер CTU равен 128 на основе единицы выборок сигналов яркости, размер CU может иметь размер от 128×128 до 4×4, что составляет идентичный размер с CTU. В одном варианте осуществления, в случае цветового формата 4:2:0 (или формата сигналов цветности), CB-размер сигналов цветности может иметь размер от 64×64 до 2×2.
[156] Между тем, в варианте осуществления, CU-размер и TU-размер могут быть идентичными. Альтернативно, может быть предусмотрено множество TU в CU-области. TU-размер, в общем, представляет размер блока преобразования (TB) компонентных (выборок) сигналов яркости.
[157] TU-размер может извлекаться на основе наибольшего допустимого TB-размера maxTbSize, который составляет предварительно определенное значение. Например, когда CU-размер превышает maxTbSize, множество TU (TB), имеющих maxTbSize, могут извлекаться из CU, и преобразование/обратное преобразование может выполняться в единицах TU (TB). Например, наибольший допустимый TB-размер сигналов яркости может составлять 64×64, и наибольший допустимый TB-размер сигналов цветности может составлять 32×32. Если ширина или высота CB, сегментированного согласно древовидной структуре, больше наибольшей ширины или высоты преобразования, CB может автоматически (или неявно) сегментироваться до тех пор, пока предел TB-размера в горизонтальном и вертикальном направлениях не удовлетворяется.
[158] Помимо этого, например, когда внутреннее прогнозирование применяется, режим/тип внутреннего прогнозирования может извлекаться в единицах CU (или CB), и процедура извлечения соседних опорных выборок и формирования прогнозных выборок может выполняться в единицах TU (или TB). В этом случае, может быть предусмотрена одна или множество TU (или TB) в одной CU-(или CB-)области, и, в этом случае, множество TU или (TB) могут совместно использовать идентичный режим/тип внутреннего прогнозирования.
[159] Между тем, для схемы дерева кодирования на основе дерева квадрантов с вложенным многотипным деревом, следующие параметры могут передаваться в служебных сигналах в качестве синтаксических SPS-элементов из оборудования кодирования в оборудование декодирования. Например, по меньшей мере, одно из CTU-размера, который представляет собой параметр, представляющий размер корневых узлов дерева квадрантов, MinQTSize, который представляет собой параметр, представляющий минимальный разрешенный размер узлов-листьев дерева квадрантов, MaxBtSize, который представляет собой параметр, представляющий максимальный разрешенный размер корневых узлов двоичного дерева, MaxTtSize, который представляет собой параметр, представляющий максимальный разрешенный размер корневых узлов троичного дерева, MaxMttDepth, который представляет собой параметр, представляющий максимальную разрешенную глубину иерархии разбиения на основе многотипного дерева из узла-листа дерева квадрантов, MinBtSize, который представляет собой параметр, представляющий минимальный разрешенный размер узлов-листьев двоичного дерева, или MinTtSize, который представляет собой параметр, представляющий минимальный разрешенный размер узлов-листьев троичного дерева, передается в служебных сигналах.
[160] В качестве варианта осуществления использования формата сигналов цветности 4:2:0, CTU-размер может задаваться равным блокам сигналов яркости 128×128 и двум блокам сигналов цветности 64×64, соответствующим блокам сигналов яркости. В этом случае, MinOTSize может задаваться равным 16×16, MaxBtSize может задаваться равным 128×128, MaxTtSzie может задаваться равным 64×64, MinBtSize и MinTtSize могут задаваться равными 4×4, и MaxMttDepth может задаваться равным 4. Сегментация на основе дерева квадрантов может применяться к CTU, чтобы формировать узлы-листья дерева квадрантов. Узел-лист дерева квадрантов может называться "QT-узлом-листом". Узлы-листья дерева квадрантов могут иметь размер от размера 16×16 (например, MinOTSize) до размера 128×128 (например, CTU-размера). Если QT-узел-лист составляет 128×128, он дополнительно может не сегментироваться на двоичное дерево/троичное дерево. Это обусловлено тем, что в этом случае, даже при сегментации, он превышает MaxBtsize и MaxTtszie (например, 64×64). В других случаях, QT-узлы-листья дополнительно могут сегментироваться на многотипное дерево. Следовательно, QT-узел-лист представляет собой корневой узел для многотипного дерева, и QT-узел-лист может иметь значение в 0 для глубины многотипного дерева (mttDepth). Если глубина многотипного дерева достигает MaxMttdepth (например, 4), дополнительная сегментация может более не рассматриваться. Если ширина узла многотипного дерева равна MinBtSize и меньше или равна 2xMinTtSize, то дополнительная горизонтальная сегментация может не рассматриваться. Если высота узла многотипного дерева равна MinBtSize и меньше или равна 2xMinTtSize, дополнительная вертикальная сегментация может не рассматриваться. Когда сегментация не рассматривается, оборудование кодирования может пропускать передачу в служебных сигналах информации сегментации. В этом случае, оборудование декодирования может извлекать информацию сегментации с предварительно определенным значением.
[161] Между тем, одна CTU может включать в себя блок кодирования выборок сигналов яркости (далее называемый "блоком сигналов яркости") и два блока кодирования выборок сигналов цветности, соответствующих ему (далее называемые "блоками сигналов цветности"). Вышеописанная схема на основе дерева кодирования можно одинаково или отдельно применяться к блоку сигналов яркости и к блоку сигналов цветности текущей CU. В частности, блоки сигналов яркости и сигналов цветности в одной CTU могут сегментироваться на идентичную блочную древовидную структуру, и в этом случае, древовидная структура представляется как SINGLE_TREE. Альтернативно, блоки сигналов яркости и сигналов цветности в одной CTU могут сегментироваться на отдельные блочные древовидные структуры, и в этом случае, древовидная структура может представляться как DUAL_TREE. Таким образом, когда CTU сегментируется на сдвоенные деревья, блочная древовидная структура для блока сигналов яркости и блочная древовидная структура для блока сигналов цветности могут отдельно присутствовать. В этом случае, блочная древовидная структура для блока сигналов яркости может называться "DUAL_TREE_LUMA", и блочная древовидная структура для компонента сигнала цветности может называться "DUAL_TREE_CHROMA". Для групп P- и B-срезов/плиток, блоки сигналов яркости и сигналов цветности в одной CTU могут быть ограничены тем, что они имеют идентичную структуру в виде дерева кодирования. Тем не менее, для групп I-срезов/плиток, блоки сигналов яркости и сигналов цветности могут иметь отдельную блочную древовидную структуру относительно друг друга. Если отдельная блочная древовидная структура применяется, CTB сигналов яркости может сегментироваться на CU на основе конкретной структуры в виде дерева кодирования, и CTB сигналов цветности может сегментироваться на CU сигнала цветности на основе другой структуры в виде дерева кодирования. Таким образом, это означает то, что CU в группе I-срезов/плиток, к которой применяется отдельная блочная древовидная структура, может включать в себя блок кодирования компонентов сигнала яркости или блоки кодирования двух компонентов сигнала цветности, и CU группы P- или B-срезов/плиток может включать в себя блоки трех цветовых компонентов (компонента сигнала яркости и двух компонентов сигнала цветности).
[162] Хотя описывается структура в виде дерева кодирования на основе дерева квадрантов с вложенным многотипным деревом, структура, в которой CU сегментируется, не ограничена этим. Например, BT-структура и TT-структура могут интерпретироваться в качестве понятия, включенного в структуру в виде дерева с несколькими видами сегментации (MPT), и CU может интерпретироваться как сегментируемая через QT-структуру и MPT-структуру. В примере, в котором CU сегментируется через QT-структуру и MPT-структуру, синтаксический элемент (например, MPT_split_type), включающий в себя информацию относительно того, на сколько блоков сегментируется узел-лист QT-структуры, и синтаксический элемент (например, MPT_split_mode), включающий в себя информацию относительно того, в каком из вертикального и горизонтального направлений сегментируется узел-лист QT-структуры, может передаваться в служебных сигналах, чтобы определять структуру сегментации.
[163] В другом примере, CU может сегментироваться способом, отличающимся от QT-структуры, BT-структуры или TT-структуры. Таким образом, в отличие от того, что CU меньшей глубины сегментируется на 1/4 от CU большей глубины согласно QT-структуре, CU меньшей глубины сегментируется на 1/2 от CU большей глубины согласно BT-структуре, или CU меньшей глубины сегментируется на 1/4 или 1/2 от CU большей глубины согласно TT-структуре, CU меньшей глубины может сегментироваться на 1/5, 1/3, 3/8, 3/5, 2/3 или 5/8 от CU большей глубины в некоторых случаях, и способ сегментации CU не ограничен этим.
[164] Когда часть узлового блока дерева превышает нижнюю границу кадра и/или правую границу кадра для кадра, соответствующий узловой блок дерева может ограничиваться таким образом, что выборки во всех кодированных CU расположены на границах кадров. В этом случае, например, могут применяться следующие правила разбиения.
[165] Правило 1 разбиения: В качестве случая, в котором часть узлового блока дерева превышает как нижнюю границу кадра, так и правую границу кадра, когда узловой блок дерева представляет собой QT-узел, имеющий размер, больший минимального QT-размера, узловой блок дерева может разбиваться в режиме QT-разбиения, и когда узловой блок дерева имеет размер, равный или меньший минимального QT-размера, или не представляет собой QT-узел, узловой блок дерева разбивается в режиме горизонтального двоичного разбиения (SPLIT_BT_HOR-режиме).
[166] Правило 2 разбиения: В качестве случая, в котором правило 1 разбиения не удовлетворяется, и часть узлового блока дерева превышает нижнюю границу кадра, узловой блок дерева разбивается в режиме QT-разбиения, когда узловой блок дерева представляет собой QT-узел, имеющий размер, больший минимального QT-размера и максимального BT-размера, и узловой блок дерева разбивается в режиме горизонтального двоичного разбиения, когда узловой блок дерева представляет собой BTT-узел, имеющий размер, равный или меньший минимального QT-размера.
[167] Правило 3 разбиения: В качестве случая, в котором правило 1 разбиения и правило 2 разбиения не удовлетворяются, и часть узлового блока дерева превышает правую границу кадра, узловой блок дерева разбивается в режиме QT-разбиения, когда узловой блок дерева представляет собой QT-узел, имеющий размер, больший минимального QT-размера и максимального BT-размера, и узловой блок дерева разбивается в режиме QT-разбиения или в режиме горизонтального двоичного разбиения, когда узловой блок дерева имеет размер, больший минимального QT-размера и равный или меньший максимального BT-размера. Альтернативно, когда узловой блок дерева представляет собой BTT-узел или имеет размер, равный или меньший минимального QT-размера, узловой блок дерева разбивается в режиме горизонтального двоичного разбиения.
[168] Как описано выше, структура блоков кодирования дерева квадрантов с многотипным деревом может предоставлять очень гибкую структуру сегментации на блоки. Вследствие типов сегментации, поддерживаемых в многотипном дереве, различные шаблоны сегментации могут потенциально приводить к идентичной структуре блоков кодирования в некоторых случаях. В оборудовании кодирования и оборудовании декодирования, посредством ограничения возникновения таких избыточных шаблонов сегментации, может уменьшаться объем данных информации сегментации.
[169] Например, фиг. 9 показывает избыточные шаблоны разбиения, которые могут возникать при разбиении на двоичное дерево и разбиении на троичное дерево. Как показано на фиг. 9, непрерывное двоичное разбиение 910 и 920 для одного направления двухэтапных уровней имеет структуру блоков кодирования, идентичную структуре блоков кодирования для двоичного разбиения для центрального сегмента после троичного разбиения. В этом случае, разбиение на двоичное дерево для центральных блоков 930 и 940 разбиения на троичное дерево может запрещаться. этот запрет является применимым к CU всех кадров. Когда такое конкретное разбиение запрещается, передача в служебных сигналах соответствующих синтаксических элементов может модифицироваться посредством отражения этого запрещенного случая, за счет этого уменьшая число битов, передаваемых в служебных сигналах для разбиения. Например, как показано в примере, приведенном на фиг. 9, когда разбиение на двоичное дерево для центрального блока CU запрещается, синтаксический элемент mtt_split_cu_binary_flag, указывающий то, представляет разбиение собой двоичное разбиение или троичное разбиение, не передается в служебных сигналах, и его значение может извлекаться в качестве 0 посредством оборудования декодирования.
[170] Виртуальная конвейерная единица данных
[171] Виртуальные конвейерные единицы данных (VPDU) могут задаваться для конвейерной обработки в кадре. VPDU могут задаваться как неперекрывающиеся единицы в одном кадре. В оборудовании декодирования, последовательные VPDU могут одновременно обрабатываться посредством нескольких ступеней конвейера. В большинстве ступеней конвейера, VPDU-размер может быть примерно пропорциональным размеру буфера. Соответственно, поддержание VPDU-размера небольшим является важным при рассмотрении размера буфера с точки зрения аппаратных средств. В большинстве видов оборудования декодирования, VPDU-размер может задаваться равным максимальному размеру блока преобразования (TB). Например, VPDU-размер может составлять размер в 64×64 (64×64 выборки сигнала яркости). Помимо этого, VPDU-размер может изменяться (увеличиваться или уменьшаться) с учетом вышеописанного разбиения на троичное дерево (TT) и/или двоичное дерево (BT).
[172] Между тем, чтобы сохранять VPDU-размер равным 64×64, по меньшей мере, одно из следующих ограничений может применяться.
[173] Ограничение 1: Разбиение на троичное дерево для CU, имеющей, по меньшей мере, одно из ширины или высоты в 128, не разрешается.
[174] Ограничение 2: Разбиение на горизонтальное двоичное дерево для CU, имеющей ширину в 128 и высоту в 64 или меньше (т.е. CU 128xN с N≤64), не разрешается.
[175] Ограничение 3: Разбиение на вертикальное двоичное дерево для CU, имеющей ширину 64 или меньше или высоту 128 (т.е. CU Nx128 с N≤64), не разрешается.
[176] Примеры разбиения CU, теперь разрешенные в соответствии с вышеуказанными ограничениями, показаны на фиг. 10. На фиг. 10, полужирные сплошные линии обозначают разбиение блоков, и оставшиеся сплошные линии обозначают CU.
[177] Ссылаясь на фиг. 10, согласно ограничению 1, разбиение на вертикальное троичное дерево для CU 1010 128×128 не разрешается. Помимо этого, согласно ограничению 1, разбиение на горизонтальное троичное дерево для CU 1020 128×128 не разрешается. Помимо этого, согласно ограничению 3, разбиение на вертикальное двоичное дерево для CU 1030 64×128 не разрешается. Помимо этого, согласно ограничению 2, разбиение на горизонтальное двоичное дерево для CU 1040 128×64 не разрешается. Помимо этого, согласно ограничению 1, разбиение на вертикальное троичное дерево для CU 1050 64×128 не разрешается. Помимо этого, согласно ограничению 1, разбиение на горизонтальное троичное дерево для CU 1060 128×64 не разрешается. Помимо этого, согласно ограничению 1, горизонтальное троичное разбиение для CU 1070 64×128 не разрешается. Помимо этого, согласно ограничению 1, вертикальное троичное разбиение для CU 1080 128×64 не разрешается.
[178] Между тем, в сдвоенном дереве во внутреннем кадре, различные структуры сегментации могут применяться к дереву кодирования сигналов яркости и дереву кодирования сигналов цветности. В сдвоенном дереве, может вводиться больший конвейер кодирования, и в дереве кодирования сигналов цветности, блок сигналов цветности, имеющий небольшой размер, к примеру, 2×2, 4×2 и 2×4, может разрешаться согласно диапазону QTBT-значения MinQTSizeC, MinBtSizeY и MinTTSizeY. Тем не менее, это может затруднять проектирование практического оборудования декодирования. Помимо этого, операция умножения требуется в режиме на основе кросскомпонентной линейной модели (CCLM), планарном режиме, угловом режиме и т.д. Чтобы разрешать вышеописанные проблемы, в сдвоенном дереве, блок сигналов цветности, имеющий небольшой размер, к примеру, 2×2, 4×2 и 2×4, может ограничиваться через ограничения по сегментации.
[179] Общее представление взаимного прогнозирования
[180] В дальнейшем в этом документе описывается взаимное прогнозирование согласно настоящему раскрытию сущности.
[181] Модуль прогнозирования оборудования кодирования изображений/оборудования декодирования изображений согласно настоящему раскрытию сущности может выполнять взаимное прогнозирование в единицах блоков, чтобы извлекать прогнозную выборку. Взаимное прогнозирование может представлять прогнозирование, извлекаемое таким способом, который зависит от элементов данных (например, выборочных значений, информации движения и т.д.) кадра(ов), отличного от текущего кадра. Когда взаимное прогнозирование применяется к текущему блоку, прогнозированный блок (блок прогнозирования или массив прогнозных выборок) для текущего блока может извлекаться на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра, указываемого посредством индекса опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения текущего блока может прогнозироваться в единицах блоков, субблоков или выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию типа взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование, бипрогнозирование и т.д.). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем кадре, и временной соседний блок, присутствующий в опорном кадре. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может называться "совместно размещенным опорным блоком", "совместно размещенной CU (colCU)" или "colBlock", и опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)" или "colPicture". Например, список возможных вариантов информации движения может конструироваться на основе соседних блоков относительно текущего блока, и информация флага или индекса, указывающая то, какой возможный вариант выбирается (используется), может передаваться в служебных сигналах, с тем чтобы извлекать вектор движения текущего блока и/или индекс опорного кадра.
[182] Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть равной информации движения выбранного соседнего блока. В случае режима пропуска, остаточный сигнал может не передаваться, в отличие от режима объединения. В случае режима прогнозирования информации движения (MVP), вектор движения выбранного соседнего блока может использоваться в качестве предиктора вектора движения, и разность векторов движения может передаваться в служебных сигналах. В этом случае, вектор движения текущего блока может извлекаться с использованием суммы предиктора вектора движения и разности векторов движения. В настоящем раскрытии сущности, MVP-режим может иметь смысловое значение, идентичное смысловому значению усовершенствованного прогнозирования векторов движения (AMVP).
[183] Информация движения может включать в себя 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).
[184] Фиг. 11 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео/изображений на основе взаимного прогнозирования.
[185] Фиг. 12 является видом, иллюстрирующим конфигурацию модуля 180 взаимного прогнозирования согласно настоящему раскрытию сущности.
[186] Способ кодирования по фиг. 11 может осуществляться посредством оборудования кодирования изображений по фиг. 2. В частности, этап S1110 может выполняться посредством модуля 180 взаимного прогнозирования, и этап S1120 может выполняться посредством остаточного процессора. В частности, этап S1120 может выполняться посредством вычитателя 115. Этап S1130 может выполняться посредством энтропийного кодера 190. Информация прогнозирования этапа S1130 может извлекаться посредством модуля 180 взаимного прогнозирования, и остаточная информация этапа S1130 может извлекаться посредством остаточного процессора. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок. Как описано выше, остаточные выборки могут извлекаться в качестве коэффициентов преобразования через преобразователь 120 оборудования кодирования изображений, и коэффициенты преобразования могут извлекаться в качестве квантованных коэффициентов преобразования через квантователь 130. Информация относительно квантованных коэффициентов преобразования может кодироваться посредством энтропийного кодера 190 через процедуру остаточного кодирования.
[187] Ссылаясь на фиг. 11 и 12 вместе, оборудование кодирования изображений может выполнять взаимное прогнозирование для текущего блока (S1110). Оборудование кодирования изображений может извлекать режим взаимного прогнозирования и информацию движения текущего блока и формировать прогнозные выборки текущего блока. Здесь, процедуры определения режима взаимного прогнозирования, извлечения информации движения и формирования прогнозных выборок могут одновременно выполняться, либо любая из них может выполняться перед другими процедурами. Например, как показано на фиг. 12, модуль 180 взаимного прогнозирования оборудования кодирования изображений может включать в себя модуль 181 определения режима прогнозирования, модуль 182 извлечения информации движения и модуль 183 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования текущего блока, модуль 182 извлечения информации движения может извлекать информацию движения текущего блока, и модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 180 взаимного прогнозирования оборудования кодирования изображений может выполнять поиск блока, аналогичного текущему блоку в предварительно определенной зоне (зоне поиска) опорных кадров через оценку движения, и извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия или минимума. На основе этого, индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, может извлекаться, и вектор движения может извлекаться на основе разности позиций между опорным блоком и текущим блоком. Оборудование кодирования изображений может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование кодирования изображений может сравнивать функции затрат на искажение в зависимости от скорости передачи (RD) для различных режимов прогнозирования и определять оптимальный режим прогнозирования текущего блока. Тем не менее, способ определения режима прогнозирования текущего блока посредством оборудования кодирования изображений не ограничен вышеприведенным примером, и могут использоваться различные способы.
[188] Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование кодирования изображений может извлекать возможные варианты объединения из соседних блоков относительно текущего блока и конструировать список возможных вариантов объединения с использованием извлеченных возможных вариантов объединения. Помимо этого, оборудование кодирования изображений может извлекать опорный блок, разность которого относительно текущего блока равна или меньше предварительно определенного критерия или минимума, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и передаваться в служебных сигналах в оборудование декодирования изображений. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.
[189] В качестве другого примера, когда MVP-режим применяется к текущему блоку, оборудование кодирования изображений может извлекать возможные варианты предикторов векторов движения (MVP) из соседних блоков относительно текущего блока и конструировать список возможных MVP-вариантов с использованием извлеченных возможных MVP-вариантов. Помимо этого, оборудование кодирования изображений может использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант с вектором движения, имеющим наименьшую разность относительно вектора движения текущего блока из возможных MVP-вариантов, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVD), которая представляет собой разность, полученную посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация индекса, указывающая выбранный возможный MVP-вариант и информацию относительно MVD, может передаваться в служебных сигналах в оборудование декодирования изображений. Помимо этого, при применении MVP-режима, значение индекса опорного кадра может конструироваться в качестве информации индекса опорного кадра и отдельно передаваться в служебных сигналах в оборудование декодирования изображений.
[190] Оборудование кодирования изображений может извлекать остаточные выборки на основе прогнозных выборок (S1120). Оборудование кодирования изображений может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозных выборок. Например, остаточная выборка может извлекаться посредством вычитания соответствующей прогнозной выборки из исходной выборки.
[191] Оборудование кодирования изображений может кодировать информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S1130). Оборудование 100 кодирования изображений может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима и т.д.) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Из информации режима прогнозирования, флаг пропуска указывает то, применяется или нет режим пропуска к текущему блоку, и флаг объединения указывает то, применяется или нет режим объединения к текущему блоку. Альтернативно, информация режима прогнозирования может указывать один из множества режимов прогнозирования, к примеру, индекс режима. Когда флаг пропуска и флаг объединения равны 0, может определяться то, что MVP-режим применяется к текущему блоку. Информация относительно информации движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Из информации выбора возможных вариантов, индекс объединения может передаваться в служебных сигналах, когда режим объединения применяется к текущему блоку, и может представлять собой информацию для выбора одного из возможных вариантов объединения, включенных в список возможных вариантов объединения. Из информации выбора возможных вариантов, MVP-флаг или MVP-индекс может передаваться в служебных сигналах, когда MVP-режим применяется к текущему блоку, и может представлять собой информацию для выбора одного из возможных MVP-вариантов в списке возможных MVP-вариантов. Помимо этого, информация относительно информации движения может включать в себя информацию относительно вышеописанной MVD и/или информацию индекса опорного кадра. Помимо этого, информация относительно информации движения может включать в себя информацию, указывающую то, следует применять L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[192] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в оборудование декодирования изображений либо может передаваться в оборудование декодирования изображений через сеть.
[193] Как описано выше, оборудование кодирования изображений может формировать восстановленный кадр (кадр, включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это служит для извлечения, посредством оборудования кодирования изображений, результата прогнозирования, идентичного прогнозированию, выполняемому посредством оборудования декодирования изображений, за счет этого повышая эффективность кодирования. Соответственно, оборудование кодирования изображений может сохранять восстановленный кадр (или восстановленные выборки и восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для взаимного прогнозирования. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[194] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео/изображений на основе взаимного прогнозирования.
[195] Фиг. 14 является видом, иллюстрирующим конфигурацию модуля 260 взаимного прогнозирования согласно настоящему раскрытию сущности.
[196] Оборудование декодирования изображений может выполнять операцию, соответствующую операции, выполняемой посредством оборудования кодирования изображений. Оборудование декодирования изображений может выполнять прогнозирование для текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[197] Способ декодирования по фиг. 13 может осуществляться посредством оборудования декодирования изображений по фиг. 3. Этапы S1310-S1330 могут выполняться посредством модуля прогнозирования и информации прогнозирования этапа S1310, и остаточная информация этапа S1340 может получаться из потока битов посредством энтропийного декодера 210. Остаточный процессор оборудования декодирования изображений может извлекать остаточные выборки для текущего блока на основе остаточной информации (S1340). В частности, деквантователь 220 остаточного процессора может выполнять деквантование на основе деквантованных коэффициентов преобразования, извлекаемых на основе остаточной информации, чтобы извлекать коэффициенты преобразования, и обратный преобразователь 230 остаточного процессора может выполнять обратное преобразование для коэффициентов преобразования, чтобы извлекать остаточные выборки для текущего блока. Этап S1350 может выполняться посредством сумматора 235 или модуля восстановления.
[198] В частности, оборудование декодирования изображений может определять режим прогнозирования текущего блока на основе принимаемой информации прогнозирования (S1310). Оборудование декодирования изображений может определять то, какой режим взаимного прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[199] Например, может определяться то применяется или нет режим пропуска к текущему блоку, на основе флага пропуска. Помимо этого, может определяться то, применяется режим объединения или MVP-режим к текущему блоку, на основе флага объединения. Альтернативно, один из различных возможных вариантов режимов взаимного прогнозирования может выбираться на основе индекса режима. Возможные варианты режимов взаимного прогнозирования могут включать в себя режим пропуска, режим объединения и/или MVP-режим либо могут включать в себя различные режимы взаимного прогнозирования, которые описываются ниже.
[200] Оборудование декодирования изображений может извлекать информацию движения текущего блока на основе определенного режима взаимного прогнозирования (S1320). Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование декодирования изображений может конструировать список возможных вариантов объединения, который описывается ниже, и выбирать один из возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (индекса объединения). Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения. Например, информация движения выбранного возможного варианта объединения может использоваться как информация движения текущего блока.
[201] В качестве другого примера, когда MVP-режим применяется к текущему блоку, оборудование декодирования изображений может конструировать список возможных MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из числа возможных MVP-вариантов, включенных в список возможных MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора возможных вариантов (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока. Помимо этого, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для взаимного прогнозирования текущего блока.
[202] Оборудование декодирования изображений может формировать прогнозные выборки текущего блока на основе информации движения текущего блока (S1330). В этом случае, опорный кадр может извлекаться на основе индекса опорного кадра текущего блока, и прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока для опорного кадра. В некоторых случаях, процедура фильтрации прогнозных выборок дополнительно может выполняться для всех или некоторых прогнозных выборок текущего блока.
[203] Например, как показано на фиг. 14, модуль 260 взаимного прогнозирования оборудования декодирования изображений может включать в себя модуль 261 определения режима прогнозирования, модуль 262 извлечения информации движения и модуль 263 извлечения прогнозных выборок. В модуле 260 взаимного прогнозирования оборудования декодирования изображений, модуль 261 определения режима прогнозирования может определять режим прогнозирования текущего блока на основе принимаемой информации режима прогнозирования, модуль 262 извлечения информации движения может извлекать информацию движения (вектор движения и/или индекс опорного кадра и т.д.) текущего блока на основе принимаемой информации движения, и модуль 263 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[204] Оборудование декодирования изображений может формировать остаточные выборки текущего блока на основе принимаемой остаточной информации (S1340). Оборудование декодирования изображений может формировать восстановленные выборки текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на основе этого (S1350). После этого, процедура внутриконтурной фильтрации может применяться к восстановленному кадру, как описано выше.
[205] Как описано выше, процедура взаимного прогнозирования может включать в себя этап определения режима взаимного прогнозирования, этап извлечения информации движения согласно определенному режиму прогнозирования и этап выполнения прогнозирования (формирования прогнозных выборок) на основе извлеченной информации движения. Процедура взаимного прогнозирования может выполняться посредством оборудования кодирования изображений и оборудования декодирования изображений, как описано выше.
[206] Определение субкадра
[207] В дальнейшем в этом документе описывается субкадр согласно настоящему раскрытию сущности.
[208] Субкадр может конструировать прямоугольную зону кодированного кадра. Размер субкадра может задаваться по-разному в кадре. Для всех кадров, принадлежащих одной последовательности, размер и позиция конкретного отдельного субкадра могут одинаково задаваться. Отдельная последовательность субкадра может независимо декодироваться. Плитка и срез (и CTB) могут быть ограничены таким образом, что они не перекрывают границу субкадра. С этой целью, оборудование кодирования может выполнять кодирование таким образом, что субкадры независимо декодируются. С этой целью, семантические ограничения в потоке битов могут требоваться. Помимо этого, для всех кадров, принадлежащих одной последовательности, компоновка плиток, срезов и кирпичей в субкадре может конструироваться по-разному.
[209] Цель проектного решения по субкадрам
[210] Проектное решение по субкадрам направлено на абстрагирование или инкапсуляцию диапазона, меньшего уровня кадра или большего уровня группы срезов или плиток. Следовательно, VCL NAL-единица поднабора набора плиток с постоянным движением (MCTS) может извлекаться из одного VVC-потока битов и перебазируется в другой VVC-поток битов без сложностей, таких как модификация на уровне VCL. Здесь, MCTS представляет собой технологию кодирования для обеспечения пространственной и временной независимости между плитками, и когда MCTS применяется, нельзя ссылаться на информацию относительно плиток, которые не включаются в MCTS, которому принадлежит текущая плитка. Когда изображение разбивается на MCTS и кодируется, независимая передача и декодирование MCTS являются возможными.
[211] Такое проектное решение по субкадрам может иметь преимущество в изменении ориентации просмотра в зависимых от видового порта схемах потоковой передачи на 360° со смешанным разрешением.
[212] Вариант использования субкадров
[213] Использование субкадра требуется в зависимой от видового порта схеме потоковой передачи на 360°, предоставляющей увеличенное реальное пространственное разрешение для видового порта. Например, схема в плитках, покрывающих видовой порт, извлекаемый из ERP (равнопрямоугольного проекционного) кадра в 6K (6144×3072) или разрешения проекции кубической карты (CMP), имеющего производительность декодирования в 4K (HEVC-уровень 5.1) эквивалентную ему, включается в разделы D.6.3 и D.6.4 OMAF и используется в руководстве по стандартам отраслевого VR-форума. Известно, что такое разрешение является подходящим для наголовного дисплея с использованием квадратической HD(2560×1440)-панели отображения.
[214] Кодирование: Контент может кодироваться с двумя пространственными разрешениями, включающими в себя разрешение, имеющее размер граней куба в 1656×1536, и разрешение, имеющее размер граней куба в 768×768. В этом случае, во всех потоках битов, сетка плиток 6×4 может использоваться, и MCTS может кодироваться в каждой позиции плитки.
[215] Передаваемый в потоковом режиме MCTS-выбор: 12 MCTS могут выбираться из потока битов высокого разрешения, и 12 дополнительных MCTS могут получаться из потока битов низкого разрешения. Следовательно, полусфера (180°x180°) передаваемого в потоковом режиме контента может формироваться из потока битов высокого разрешения.
[216] Декодирование с использованием объединения MCTS и потока битов: MCTS одного момента времени принимаются, которые могут объединяться в кодированный кадр, имеющий разрешение в 1920×4608, соответствующее HEVC-уровню 5.1. В другом варианте для объединенного кадра, четыре столбца плиток имеют значение ширины в 768, два столбца плиток имеют значение ширины в 384, и три строки плиток имеют значение высоты в 768, за счет этого конструируя кадр, состоящий из выборок сигналов яркости в 3840×2304. Здесь, единицы ширины и высоты могут представлять собой единицы числа выборок сигналов яркости.
[217] Передача в служебных сигналах субкадров
[218] Передача служебных сигналов субкадра может выполняться на SPS-уровне, как показано на фиг. 15.
[219] Фиг. 15 является видом, иллюстрирующим SPS-cинтаксис для передачи в служебных сигналах синтаксического элемента для субкадров.
[220] Ссылаясь на фиг. 15, синтаксический элемент pic_width_max_in_luma_samples может указывать максимальную ширину каждого декодированного кадра, ссылающегося на SPS в единицах выборок сигналов яркости. Значение pic_width_max_in_luma_samples может быть больше 0 и может иметь значение в целое кратное MinCbSizeY. Здесь, MinCbSizeY может указывать минимальный размер блока кодирования компонентов сигналов яркости.
[221] Синтаксический элемент pic_height_max_in_luma_samples может указывать максимальную высоту каждого декодированного кадра, ссылающегося на SPS в единицах выборок сигналов яркости; pic_height_max_in_luma_samples может быть больше 0 и может иметь значение в целое кратное MinCbSizeY.
[222] Синтаксический элемент subpic_grid_col_width_minus1 может использоваться для того, чтобы указывать ширину отдельного элемента сетки идентификаторов субкадров. Например, значение, полученное посредством суммирования 1 с subpic_grid_col_width_minus1, может указывать ширину отдельного элемента сетки идентификаторов субкадров в единицах 4 выборок; subpic_grid_col_width_minus1 может иметь длину в битах в Ceil(Log2 (pic_width_max_in_luma_samples/4)).
[223] Следовательно, переменная NumSubPicGridCols, указывающая число столбцов в сетке субкадра, может извлекаться так, как показано в нижеприведенном уравнении 1.
[224] уравнение 1
NumSubPicGridCols=(pic_width_max_in_luma_samples+subpic_grid_col_width_minus1*4+3)/(subpic_grid_col_width_minus1*4+4)
[225] Далее, синтаксический элемент subpic_grid_row_height_minus1 может использоваться для того, чтобы указывать высоту каждого элемента сетки идентификаторов субкадров. Например, значение, полученное посредством суммирования 1 с subpic_grid_row_height_minus1, может указывать высоту отдельного элемента сетки идентификаторов субкадров в единицах 4 выборок; subpic_grid_row_height_minus1 может иметь длину в битах в Ceil(Log2(pic_height_max_in_luma_samples/4)).
[226] Следовательно, переменная NumSubPicGridRows, указывающая число строк в сетке субкадров, может извлекаться так, как показано в нижеприведенном уравнении 2.
[227] уравнение 2
NumSubPicGridRows=(pic_height_max_in_luma_samples+subpic_grid_row_height_minus1*4+3)/(subpic_grid_row_height_minus1*4+4)
[228] Затем, синтаксический элемент subpic_grid_idx[i][j] может указывать индекс субкадра в позиции (i, j) сетки; subpic_grid_idx[i][j] может иметь длину в битах в Ceil(Log2(max_subpics_minus1+1)).
[229] Переменные SubPicTop[subpic_grid_idx[i][j]], SubPicLeft[subpic_grid_idx[i][j]], SubPicWidth[subpic_grid_idx[i][j]], SubPicHeight[subpic_grid_idx[i][j]] и NumSubPic могут извлекаться с использованием алгоритма по фиг. 16.
[230] Затем, синтаксический элемент subpic_treated_as_pic_flag[i] может указывать то, трактуется или нет субкадр как идентичный общему кадру в процессе декодирования. Например, первое значение (например, 0) subpic_treated_as_pic_flag[i] может указывать то, что i-ый субкадр, включенный в отдельный кодируемый кадр CVS, не трактуется в качестве кадра в процессе декодирования. Второе значение (например, 1) subpic_treated_as_pic_flag[i] может указывать то, что i-ый субкадр, включенный в отдельный кодируемый кадр CVS, трактуется в качестве кадра в процессе декодирования. Когда значение subpic_treated_as_pic_flag[i] не получается из потока битов, значение subpic_treated_as_pic_flag[i] может логически выводиться в качестве первого значения (например, 0).
[231] Синтаксический элемент loop_filter_across_subpic_enabled_flag[i] может указывать то, может или нет выполняться внутриконтурная фильтрация через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS. Например, первое значение (например, 0) loop_filter_across_subpic_enabled_flag[i] может указывать то, что внутриконтурная фильтрация не может выполняться через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS. Второе значение (например, 1) loop_filter_across_subpic_enabled_flag[i] может указывать то, что внутриконтурная фильтрация может выполняться через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS. Когда значение subpic_treated_as_pic_flag[i] не получается из потока битов, значение subpic_treated_as_pic_flag[i] может логически выводиться в качестве первого значения (например, 0).
[232] Между тем, для соответствия потока битов, следующие ограничения могут применяться. Для любых двух субкадров subpicA и subpicB, когда индекс subpicA меньше индекса subpicB, все кодированные NAL-единицы subpicA должны иметь более низкий порядок декодирования, чем все кодированные NAL-единицы subpicB. Альтернативно, после того, как декодирование выполняется, форма субкадров должна иметь идеальную левую границу и идеальную верхнюю границу, конструирующие границу кадра или границу ранее декодированного субкадра.
[233] В дальнейшем в этом документе подробно описывается способ кодирования/декодирования изображения на основе структуры субкадра со ссылкой на фиг. 17 и 18.
[234] Фиг. 17 является видом, иллюстрирующим способ кодирования изображения с использованием субкадра посредством оборудования кодирования изображений согласно варианту осуществления настоящего раскрытия сущности.
[235] Оборудование кодирования изображений может кодировать текущий кадр на основе структуры субкадра. Альтернативно, оборудование кодирования изображений может кодировать, по меньшей мере, один субкадр, конструирующий текущий кадр, и выводить (суб)поток битов, включающий в себя (кодированную) информацию, по меньшей мере, относительно одного (кодированного) субкадра.
[236] Ссылаясь на фиг. 17, оборудование кодирования изображений может разбивать входной кадр на множество субкадров (S1710). Помимо этого, оборудование кодирования изображений может формировать информацию относительно субкадра (S1720). Здесь, информация относительно субкадра может включать в себя информацию относительно зоны субкадра и/или информацию относительно разнесения сетки, которое должно использоваться для субкадра. Помимо этого, информация относительно субкадра может включать в себя информацию, указывающую то, может или нет каждый субкадр трактоваться в качестве кадра, и/или информацию, указывающую то, может или нет внутриконтурная фильтрация выполняться через границу каждого субкадра.
[237] Оборудование кодирования изображений может кодировать, по меньшей мере, один субкадр на основе информации относительно субкадра. Например, каждый субкадр может независимо кодироваться на основе информации относительно субкадра. Помимо этого, оборудование кодирования изображений может кодировать информацию изображений, включающую в себя информацию относительно субкадра, и выводить поток битов (S1730). Здесь, поток битов для субкадра может называться "субпотоком" или "субпотоком битов".
[238] Фиг. 18 является видом, иллюстрирующим способ декодирования изображения с использованием субкадра посредством оборудования декодирования изображений согласно варианту осуществления.
[239] Оборудование декодирования изображений может декодировать, по меньшей мере, один субкадр, принадлежащий текущему кадру, с использованием (кодированной) информации, по меньшей мере, одного (кодированного) субкадра, полученного из (суб)потока битов.
[240] Ссылаясь на фиг. 18, оборудование декодирования изображений может получать информацию относительно субкадра из потока битов (S1810). Здесь, поток битов может включать в себя субпоток или субпоток битов для субкадра. Информация относительно субкадра может конструироваться в HLS потока битов. Помимо этого, оборудование декодирования изображений может извлекать, по меньшей мере, один субкадр на основе информации относительно субкадра (S1820).
[241] Оборудование декодирования изображений может декодировать, по меньшей мере, один субкадр на основе информации относительно субкадра (S1830). Например, когда текущий субкадр, включающий в себя текущий блок, трактуется в качестве кадра, текущий субкадр может независимо декодироваться. Помимо этого, когда внутриконтурная фильтрация может выполняться через границу текущего субкадра, внутриконтурная фильтрация (например, фильтрация для удаления блочности) может выполняться на границе текущего субкадра и границы смежного субкадра, смежного с границей. Помимо этого, когда граница текущего субкадра совпадает с границей кадра, внутриконтурная фильтрация через границу текущего субкадра может не выполняться. Оборудование декодирования изображений может декодировать субкадр на основе CABAC-способа, способа прогнозирования, способа остаточной обработки (преобразования и квантования), способа внутриконтурной фильтрации и т.д. Помимо этого, оборудование декодирования изображений может выводить, по меньшей мере, один декодированный субкадр или текущий кадр, включающий в себя, по меньшей мере, один субкадр. Декодированный субкадр может выводиться в форме набора выходных субкадров (OPS). Например, относительно изображения с обзором на 360 градусов или всенаправленного изображения, когда только часть текущего кадра подготавливается посредством рендеринга, только некоторые из всех субкадров в текущем кадре могут декодироваться, и все или некоторые декодированные субкадры могут подготавливаться посредством рендеринга согласно видовому порту пользователя.
[242] Общее представление фильтрации
[243] В дальнейшем в этом документе описывается способ фильтрации согласно настоящему раскрытию сущности.
[244] Фильтрация может выполняться для восстановленного кадра, сформированного посредством оборудования кодирования/декодирования изображений. В результате выполнения фильтрации, может формироваться модифицированный восстановленный кадр, и оборудование декодирования изображений может определять модифицированный восстановленный кадр в качестве конечного декодированного кадра. Помимо этого, в оборудовании кодирования/декодирования изображений, модифицированный восстановленный кадр может сохраняться в буфере декодированных кадров (DPB) или в запоминающем устройстве и затем может использоваться в качестве опорного кадра при кодировании/декодировании кадра.
[245] В настоящем раскрытии сущности, фильтрация согласно некоторым вариантам осуществления настоящего раскрытия сущности может использоваться со смысловым значением, идентичным смысловому значению внутриконтурной фильтрации. Фильтр, используемый для фильтрации, может включать в себя, по меньшей мере, одно из фильтра удаления блочности, фильтра на основе дискретизированного адаптивного смещения (SAO), адаптивного контурного фильтра (SLF) или двустороннего фильтра. По меньшей мере, один из фильтра удаления блочности, SAO-фильтра, ALF и/или двустороннего фильтра может последовательно применяться к восстановленному кадру, за счет этого формируя модифицированный восстановленный кадр. Порядок применения фильтра может быть предварительно установлен в оборудовании кодирования/декодирования изображений. В примере, после того, как фильтр удаления блочности применяется к восстановленному кадру, SAO-фильтр может применяться. В другом примере, после того, как фильтр удаления блочности применяется к восстановленному кадру, ALF может применяться. В настоящем раскрытии сущности, фильтрация может выполняться, по меньшей мере, посредством одного из фильтра 160 по фиг. 2 и/или фильтра 240 по фиг. 3.
[246] Фильтр удаления блочности может исключать искажение, сформированное на границе восстановленного кадра. Например, фильтр удаления блочности может извлекать целевую границу, которая представляет собой границу между блоками в восстановленном кадре, и задавать граничную интенсивность (BS) для целевой границы. Оборудование кодирования/декодирования изображений может выполнять фильтрацию для удаления блочности для целевой границы посредством применения фильтрации на основе заданной граничной интенсивности к целевой границе. Здесь, граничная интенсивность может определяться на основе, по меньшей мере, одного из режимов прогнозирования двух блоков, смежных с целевой границей, разности векторов движения, того, являются или нет опорные кадры идентичными, либо присутствия/отсутствия ненулевого эффективного коэффициента.
[247] В качестве другого примера, SAO-фильтр может компенсировать разность смещения между восстановленным кадром и исходным кадром в единицах выборок. SAO-фильтр может реализовываться посредством типа фильтра, такого как фильтр на основе полосового смещения или фильтр на основе смещения. Когда SAO-фильтр используется, выборки могут классифицироваться на различные категории согласно типу SAO-фильтра, и предварительно определенное значение смещения может добавляться в каждую выборку на основе категории. Информация относительно SAO-фильтра может включать в себя, по меньшей мере, одно из информации относительно того, следует или нет применять SAO-фильтр, информации типа SAO-фильтра и/или информации значений SAO-смещения. В примере, SAO-фильтр может быть ограничен применением к восстановленному кадру, к которому применяется фильтр удаления блочности.
[248] ALF может представлять собой фильтр единиц выборок для применения коэффициентов фильтрации согласно форме фильтра к восстановленному кадру. Оборудование кодирования изображений может передавать в служебных сигналах, по меньшей мере, одно из того, следует или нет применять ALF, формы ALF и/или коэффициента фильтрации, посредством сравнения восстановленного кадра с исходным кадром. Таким образом, информация относительно ALF может включать в себя, по меньшей мере, одно из информации относительно того, следует или нет применять ALF, информации формы ALF-фильтра и/или информации коэффициентов ALF-фильтрации. В примере, ALF может быть ограничен применением к восстановленному кадру, к которому применяется фильтр удаления блочности.
[249] Общее представление фильтра удаления блочности
[250] Фиг. 19 является видом, иллюстрирующим способ применения фильтра удаления блочности.
[251] Как описано выше, фильтр удаления блочности может применяться к восстановленному кадру. Фильтр удаления блочности может применяться к границе каждой CU (или TU), включенной в текущий блок, на основе порядка кодирования/декодирования кадра.
[252] В некоторых вариантах осуществления, фильтр удаления блочности может сначала применяться к вертикальной границе CU и затем применяться к горизонтальной границе блока кодирования/декодирования. Альтернативно, фильтр удаления блочности может сначала применяться к горизонтальной границе CU и затем применения к вертикальной границе CU. Фильтр удаления блочности может применяться к границам всех CU, границам всех субблоков во всех CU, границам всех TU и/или границам всех субблоков во всех TU.
[253] Ссылаясь на фиг. 19, оборудование кодирования/декодирования изображений может извлекать целевую границу, к которой должна применяться фильтрация для удаления блочности (S1910). Помимо этого, оборудование кодирования/декодирования изображений может определять граничную интенсивность целевой границы (S1920). В примере, граничная интенсивность bS может определяться согласно условию блока преобразования, смежного с целевой границей. В настоящем раскрытии сущности, граничная интенсивность также может называться "граничной интенсивностью фильтрации" или "интенсивностью фильтрации". В нижеприведенном описании, когда целевая граница представляет собой вертикальную границу, на основе целевой границы, левый блок может задаваться как P-блок, и правый блок может задаваться как Q-блок. Помимо этого, когда целевая граница представляет собой горизонтальную границу, на основе целевой границы, верхний блок может задаваться как P-блок, и нижний блок может задаваться как Q-блок. Помимо этого, выборка P-блоков может обозначаться посредством p0, и выборка Q-блоков может обозначаться посредством q0. Здесь, p и q могут представлять собой выборки, обращенные к целевой границе в P-блоке и Q-блоке. Например, p0 может представлять собой выборку левого или верхнего блока, смежного с целевой границей, и q0 может представлять собой выборку правого или нижнего блока, смежного с целевой границей.
[254] В примере, когда дифференциальная импульсно-кодовая модуляция в квантованной остаточной области на основе блоков (BDPCM) применяется к выборке P-блоков и выборке Q-блоков, включенных в один блок сигналов яркости, граничная интенсивность для целевой границы может определяться как первое значение (например, 0).
[255] В другом примере, когда выборка P-блоков и выборка Q-блоков, включенные в одну CU, внутренне прогнозируются, граничная интенсивность для целевой границы может определяться как третье значение (например, 2). В качестве другого примера, когда целевая граница представляет собой границу TU, и комбинированное взаимное и внутреннее прогнозирование (CIIP) применяется к выборке P-блоков и выборке Q-блоков, включенным в одну CU, граничная интенсивность для целевой границы может определяться как третье значение (например 2). В качестве другого примера, когда целевая граница представляет собой границу TU, и, по меньшей мере, одна из выборки P-блоков и выборки Q-блоков, включенных в одну TU, имеет уровень ненулевых коэффициентов преобразования, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1). В качестве другого примера, когда режим прогнозирования субблока CU, включающей в себя выборку P-блоков, отличается от режима прогнозирования субблока CU, включающей в себя выборку Q-блоков, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1).
[256] В другом примере, когда текущий блок представляет собой блок сигналов яркости, и, по меньшей мере, одно из следующих условий удовлетворяется, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1). Между тем, когда все вышеописанные условия не удовлетворяются, граничная интенсивность для целевой границы может определяться как составляющая первое значение (например, 0).
[257] Например, когда как субблок в CU, включающей в себя выборку P-блоков, так и субблок в CU, включающей в себя выборку Q-блоков, кодируются/декодируются в IBC-режиме, и разность горизонтальных или вертикальных значений вектора движения для каждого субблока равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1).
[258] Альтернативно, когда субблок в CU, включающей в себя выборку P-блоков, и субблок в CU, включающей в себя выборку Q-блоков, ссылаются на различные опорные кадры или имеют различные числа векторов движения, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1).
[259] Альтернативно, когда один вектор движения используется для того, чтобы прогнозировать субблок в CU, включающей в себя выборку P-блоков, и субблок в CU, включающей в себя выборку Q-блоков, или разность между горизонтальными значениями или вертикальными значениями вектора движения для каждого субблока равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1).
[260] Альтернативно, когда два вектора движения и два различных опорных кадра используются для того, чтобы прогнозировать субблок в CU, включающей в себя выборку P-блоков, два вектора движения для идентичного опорного кадра используются для того, чтобы прогнозировать субблок в CU, включающей в себя выборку Q-блоков, и разность между горизонтальными значениями или вертикальными значениями векторов движения для идентичного опорного кадра равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости, граничная интенсивность для целевой границы может определяться как составляющая второе значение.
[261] Альтернативно, когда два вектора движения для идентичного опорного кадра используются для того, чтобы прогнозировать субблок CU, включающей в себя выборку P-блоков, и два вектора движения для идентичного опорного кадра используются для того, чтобы прогнозировать субблок CU, включающей в себя выборку Q-блоков, граничная интенсивность для целевой границы может определяться как составляющая второе значение (например, 1), если удовлетворяются следующие первое и второе условия. Здесь, первое условие может означать случай, в котором разность абсолютного значения между горизонтальными компонентами или вертикальными компонентами равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости для векторов движения списка 0, используемых для прогнозирования каждого субблока, или разность в абсолютном значении между горизонтальными компонентами или вертикальными компонентами равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости для векторов движения списка 1, используемых для прогнозирования каждого субблока. Помимо этого, второе условие может означать случай, в котором разность в абсолютном значении между горизонтальными или вертикальными компонентами равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости для векторов движения списка 0 для прогнозирования субблока в CU, включающей в себя выборку P-блоков, и векторов движения списка 1 для прогнозирования субблока в CU, включающей в себя выборку Q-блоков, или разность в абсолютном значении между горизонтальными компонентами или вертикальными компонентами между вектором движения списка 1 для прогнозирования субблока CU, включающей в себя выборку P-блоков, и вектором движения списка 0 для прогнозирования субблока CU, включающей в себя выборку Q-блоков, равна или больше значения в 4 единицы в единице в 1/4 выборки сигналов яркости.
[262] Оборудование кодирования/декодирования изображений может применять фильтр удаления блочности к целевой границе на основе граничной интенсивности, определенной на основе вышеописанного условия (S1930). Например, когда граничная интенсивность целевой границы определяется как составляющая первое значение (например, 0), оборудование кодирования/декодирования изображений может не применять фильтр удаления блочности к целевой границе. Интенсивность фильтрации (например, сильная или слабая) и/или длина фильтра для фильтра удаления блочности, применяемого к целевой границе, может определяться различными способами. Между тем, когда выборка, которая должна фильтроваться, представляет собой выборку сигналов яркости, фильтрация может выполняться с использованием короткого фильтра или длинного фильтра. Альтернативно, когда выборка, которая должна фильтроваться, представляет собой выборку сигналов цветности, фильтрация может выполняться с использованием фильтра сигналов цветности.
[263] Определение выборки, которая должна фильтроваться
[264] Восстановленные выборки pi, k и qj, k, к которым применяется фильтр удаления блочности, могут указываться на вертикальной границе, как показано в нижеприведенном уравнении 3.
[265] уравнение 3
qj, k=recPicture[xCb+xBl+j][yCb+yBl+k]
pi, k=recPicture[xCb+xBl-i-1][yCb+yBl+k]
[266] Восстановленные выборки pi, k и qj, k, к которым применяется фильтрация, могут указываться на горизонтальной границе, как показано в нижеприведенном уравнении 4.
[267] уравнение 4
pi, k=recPicture[xCb+xBl+k][yCb+yBl-i-1]
qj, k=recPicture[xCb+xBl+k][yCb+yBl+j]
[268] В уравнениях 3 и 4, i имеет значение, равное или большее 0 и равное или меньшее максимальной длины фильтра (например, maxFilterLengthP) для P-блока, j имеет значение, равное или большее 0 и равное или меньшее максимальной длины фильтра (например, maxFilterLengthQ) для Q-блока, и k может иметь значение, равное или большее 0 и равное или меньшее 3. Помимо этого, xCb и yCb могут указывать позицию (xCb, yCb) левой верхней выборки текущей CU, для которой фильтрация для удаления блочности выполняется, и xBl и yBl могут указывать позицию (xBl, yBl) границы для указания P-блока и Q-блока, для которого фильтрация для удаления блочности выполняется на основе (xCb, yCb).
[269] Фиг. 20 является видом, иллюстрирующим восстановленную выборку, к которой применяется фильтр удаления блочности.
[270] Ссылаясь на фиг. 20, позиция левой верхней выборки текущей CU может представлять собой (xCb, yCb) (2010). Когда фильтрация для удаления блочности выполняется на вертикальной границе текущей CU, P-блок 2021 и Q-блок 2022, для которых выполняется фильтрация для удаления блочности, могут указываться с использованием первой выборочной позиции (xCb+xBl1, yCb+yBl1) (2020). Помимо этого, когда фильтрация для удаления блочности выполняется на горизонтальной границе текущей CU, P-блок 2031 и Q-блок 2031, для которых выполняется фильтрация для удаления блочности, могут указываться с использованием второй выборочной позиции (xCb+xBl2, yCb+yBl2) (2030). В каждом случае, P-блоки 2021 и 2031 могут включать в себя множество восстановленных выборок pi, k. Помимо этого, Q-блоки 2022 и 2032 могут включать в себя множество восстановленных выборок qj, k.
[271] Интенсивность фильтрации
[272] В случае HEVC, в отличие от управления интенсивностью фильтрации фильтра удаления блочности посредством переменных β и tC, извлекаемых из среднего параметра qPL квантования, интенсивность фильтрации фильтра удаления блочности согласно вариантам осуществления настоящего раскрытия сущности может управляться посредством суммирования предварительно определенного смещения согласно уровню сигнала яркости восстановленной выборки со средним параметром qPL квантования. Здесь, уровень сигнала яркости (LL) восстановленной выборки может извлекаться так, как показано в нижеприведенном уравнении 5.
[273] уравнение 5
LL=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<bitDepth),
[274] где p0,0 и p0,3 могут обозначать восстановленные выборки, смежные с целевой границей и в наибольшей степени разнесенные друг от друга в P-блоке, и q0,0 и q0,3 могут обозначать восстановленные выборки, смежные с целевой границей и в наибольшей степени разнесенные друг от друга в Q-блоке. Помимо этого, bitDepth может обозначать битовую глубину восстановленной глубины.
[275] Предварительно определенное смещение (например, qpOffset), суммируемое со средним параметром qPL квантования, может передаваться в служебных сигналах через SPS и зависит от передаточной функции.
[276] Для восстановленной выборки компонента сигналов яркости, билинейный фильтр (или более сильный фильтр удаления блочности) может применяться к выборкам, расположенным на любой границе относительно большого блока. Здесь, относительно большой блок может означать блок, имеющий размер в 32×32 или больше. Напротив, для восстановленной выборки компонента сигналов цветности, применяется сильный фильтр удаления блочности. Здесь, сильный фильтр удаления блочности может задаваться так, как показано в нижеприведенном уравнении 6.
[277] уравнение 6
p2'=(3*p3+2*p2+p1+p0+q0+4)>>3
p1'=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0'=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3,
[278] где p1-p3 могут обозначать восстановленные выборки в P-блоке, и q0-q2 могут обозначать восстановленные выборки в Q-блоке. Фильтрованные восстановленные выборки p0'-p2' в P-блоке могут извлекаться с использованием восстановленных выборок в P-блоке и восстановленных выборок в Q-блоке.
[279] В настоящем раскрытии сущности, сильный фильтр удаления блочности, применяемый к восстановленной выборке компонента сигналов цветности, может называться "фильтром сигналов цветности". Фильтр сигналов цветности может применяться к сетке выборок сигналов цветности 8×8 и может использоваться для горизонтальных и вертикальных границ. В примере, фильтр сигналов цветности может выбираться только тогда, когда горизонтальные и вертикальные края блока сигналов цветности равны или больше 8 единиц выборок сигналов цветности, и все следующие первое-третье условия удовлетворяются. Здесь, первое условие может означать то, что граничная интенсивность блока сигналов цветности равна граничной интенсивности относительно большого блока сигналов яркости. Например, когда граничная интенсивность блока сигналов цветности имеет второе значение (например, 1) или третье значение (например, 2), фильтр сигналов цветности может выбираться. Второе условие и третье условие могут быть равными условию определения сильного фильтра для восстановленной выборки компонента сигналов яркости, например, условию определения включения-выключения и условию определения сильного фильтра.
[280] Помимо этого, граничная интенсивность для фильтрации сигнала цветности может модифицироваться на основе атрибутов смежного блока, смежного с границей текущего блока, как показано в таблице 2.
[281] Табл. 2
[282] Ссылаясь на таблицу 2, когда, по меньшей мере, один смежный блок, смежный с текущим блоком, внутренне прогнозируется, граничная интенсивность текущего блока может иметь третье значение (например, 2) для всех цветовых компонентов (например, Y, U и V). Помимо этого, когда, по меньшей мере, один смежный блок, смежный с текущим блоком, имеет ненулевые коэффициенты преобразования, граничная интенсивность текущего блока может иметь второе значение (например, 1) для всех цветовых компонентов. Помимо этого, когда абсолютное разностное значение между векторами движения смежных блоков, смежных с текущим блоком, равно или больше одной целочисленной выборки сигналов яркости, граничная интенсивность текущего блока может присутствовать только для компонента сигналов яркости и может иметь второе значение (например, 1). Помимо этого, когда прогнозирование движения ссылается на различные векторы движения в смежных блоках, смежных с текущим блоком, граничная интенсивность текущего блока может присутствовать только для компонента сигналов яркости и может иметь второе значение (например, 1). Между тем, когда все вышеописанные условия не удовлетворяются, граничная интенсивность текущего блока может иметь первое значение (например, 0) для всех цветовых компонентов.
[283] В примере, фильтр удаления блочности может применяться на основе сетки 8×8. Например, фильтр удаления блочности может применяться к CU-границе, совмещенной в сетке 8×8 и совпадающей с границей субблока. В дальнейшем в этом документе, граница субблока может включать в себя PU-границу в TMVP-режиме на основе субблоков и/или аффинном режиме и TU-границу в SBT- и/или ISP-режиме. В SBT- и/или ISP-режиме, процесс фильтрации для удаления блочности для TU-границы может продолжаться с идентичной логикой, как и в случае HEVC. Например, когда имеются ненулевые коэффициенты на крае блока в субблоке, фильтрация для удаления блочности для TU-границы может выполняться. Помимо этого, в TMVP-режиме на основе субблоков и/или аффинном режиме, процесс фильтрации для удаления блочности для PU-границы может продолжаться с идентичной логикой, как и в случае HEVC. Например, на основе разностного значения между векторами движения смежного субблока и разностного значения между опорными кадрами, фильтрация для удаления блочности для PU-границы может выполняться.
[284] Проблемы предшествующего уровня техники
[285] Когда каждый субкадр трактуется в качестве кадра, каждый субкадр может независимо кодироваться/декодироваться. Здесь, независимое кодирование/декодирование может означать то, что структура разбиения блоков (например, структура в виде одиночного дерева, структура в виде сдвоенного дерева и т.д.) для субкадра, режим прогнозирования (например, внутреннее прогнозирование, взаимное прогнозирование и т.д.), порядок кодирования/декодирования и т.д. определяются безотносительно информации кодирования/декодирования различных субкадров. Например, когда каждый из первого субкадра и второго субкадра трактуется в качестве кадра, первый субкадр может кодироваться/декодироваться на основе внутреннего прогнозирования, и второй субкадр может кодироваться/декодироваться на основе взаимного прогнозирования. То, трактуется или нет каждый субкадр в качестве кадра, может передаваться в служебных сигналах с использованием subpic_treated_as_pic_flag в высокоуровневом синтаксисе (например, в SPS-cинтаксисе), как описано выше со ссылкой на фиг. 15. Например, subpic_treated_as_pic_flag для субкадра, который не трактуется в качестве кадра, может иметь первое значение (например, 0). Напротив, subpic_treated_as_pic_flag для субкадра, трактуемого в качестве кадра, может иметь второе значение (например, 1).
[286] Между тем, для границы каждого субкадра, внутриконтурная фильтрация (например, фильтрация для удаления блочности) через границу может выполняться. В настоящем раскрытии сущности, внутриконтурная фильтрация через границу субкадра может называться "поперечной внутриконтурной фильтрацией" или "поперечной фильтрацией". Помимо этого, фильтр для поперечной фильтрации может называться "поперечным внутриконтурным фильтром" или "поперечным фильтром". То, является или нет поперечный фильтр применимым к границе каждого субкадра, может передаваться в служебных сигналах с использованием loop_fliter_across_subpic_enabled_flag в SPS, описанного выше со ссылкой на фиг. 15. Например, loop_fliter_across_subpic_enabled_flag для субкадра, к которому поперечный фильтр не является применимым, может иметь первое значение (например, 0). Напротив, loop_fliter_across_subpic_enabled_flag для субкадра, к которому поперечный фильтр является применимым, может иметь второе значение (например, 1).
[287] То, является или нет поперечный фильтр применимым к границе субкадра, может независимо определяться безотносительно того, трактуется или нет субкадр в качестве кадра. Помимо этого, то, является или нет поперечный фильтр применимым к границе субкадра, может независимо определяться безотносительно атрибутов смежного субкадра, смежного с границей субкадра.
[288] Даже если поперечный фильтр не является применимым к границе текущего субкадра, трактуемого в качестве кадра, поскольку поперечная фильтрация выполняется на границе смежного субкадра, смежного с границей, область, трактуемая в качестве кадра, может уменьшаться в текущем субкадре (или в совместно размещенном субкадре).
[289] Фиг. 21 и 22 являются видами, иллюстрирующими примеры уменьшения области, трактуемой в качестве кадра в субкадре.
[290] Во-первых, ссылаясь на фиг. 21, первый субкадр 2110 может не трактоваться в качестве кадра (например, subpic_treated_as_pic_flag[0=0). Помимо этого, поперечный фильтр может применяться к левой вертикальной границе первого субкадра 2110 (например, loop_filter_across_subpic_enabled_flag[0=1).
[291] Напротив, второй субкадр 2120, смежный с левой вертикальной границей первого субкадра 2110, может трактоваться в качестве кадра (например, subpic_treated_as_pic_flag[1]=1). Помимо этого, поперечный фильтр не является применимым к правой вертикальной границе второго субкадра 2120 (например, loop_filter_across_subpic_enabled_flag[1]=0).
[292] Даже если поперечный фильтр не является применимым к правой вертикальной границе второго субкадра 2120, трактуемого в качестве кадра, поскольку поперечный фильтр применяется к левой вертикальной границе смежного первого субкадра 2110, правая вертикальная граница второго субкадра 2120 может фильтроваться наряду с левой вертикальной границей первого субкадра 2120.
[293] Как результат, в фильтрованной области 2130, выборочные значения могут изменяться с использованием выборочных значений первого субкадра 2110 и выборочных значений второго субкадра 2120. Следовательно, во втором субкадре 2120, область, трактуемая в качестве кадра, может уменьшаться до области, за исключением фильтрованной правой границы.
[294] В качестве другого примера, ссылаясь на фиг. 22, четвертый субкадр Sub-picture[4]), который представляет собой текущий кадр, включающий в себя текущий блок, может трактоваться в качестве кадра (например, subpic_treated_as_pic_flag=1). Когда режим временного прогнозирования векторов движения (TMVP) на основе субблоков применяется к текущему блоку, на четвертый субкадр Sub-picture[4] в опорном кадре можно ссылаться как на совместно размещенный субкадр для текущего блока. Таким образом, четвертый субкадр Sub-picture[4] в опорном кадре может включать в себя временной опорный блок (совместно размещенный опорный блок) для текущего блока.
[295] В четвертом субкадре Sub-picture[4] в опорном кадре, предполагается, что поперечный фильтр применяется к левой вертикальной границе и верхней горизонтальной границе, и поперечный фильтр не применяется к правой вертикальной границе и нижней горизонтальной границе.
[296] Поскольку поперечный фильтр не применяется к правой вертикальной границе четвертого субкадра Sub-picture[4] в опорном кадре, но левая вертикальная граница пятого субкадра Sub-picture[5], смежного с правой вертикальной границей, поперечно фильтруется, правая вертикальная граница четвертого субкадра Sub-picture[4] в опорном кадре также может фильтроваться. Помимо этого, поскольку поперечный фильтр не применяется к нижней горизонтальной границе четвертого субкадра Sub-picture[4] в опорном кадре, но верхняя горизонтальная граница седьмого субкадра Sub-picture[7], смежного с нижней горизонтальной границей, поперечно фильтруется, нижняя горизонтальная граница четвертого субкадра Sub-picture[4] в опорном кадре также может фильтроваться. Как результат, выборочные значения фильтрованной области в четвертом субкадре Sub-picture[4] в опорном кадре могут модифицироваться с использованием выборочных значений различных субкадров Sub-picture[0]-Sub-picture[3] и Sub-picture[5]-Sub-picture[8]. Следовательно, в четвертом субкадре Sub-picture[4] в опорном кадре, область, в которой может присутствовать временной опорный блок для текущего блока, может уменьшаться до оставшейся области 2210, за исключением фильтрованной области.
[297] Между тем, когда независимо кодированные субкадры декодируются, даже если поперечный фильтр не является применимым к границе текущего субкадра, поскольку поперечная фильтрация выполняется на границе смежного субкадра, смежного с границей, может возникать такая проблема, что результат кодирования и результат декодирования (т.е. ошибка декодирования) не совпадают.
[298] Фиг. 23 и 24 являются видами, иллюстрирующими примеры, в которых возникает ошибка декодирования субкадра.
[299] Во-первых, ссылаясь на фиг. 23, каждый первый субкадр 2310 и второй субкадр 2320 могут трактоваться в качестве кадра и независимо кодироваться. В примере, первая информация, указывающая то, трактуется или нет каждый субкадр в качестве кадра, может передаваться в служебных сигналах с использованием subpic_treated_as_pic_flag, описанного выше со ссылкой на фиг. 15.
[300] Внутриконтурная фильтрация через границу, т.е. поперечная фильтрация, может выполняться на границе, по меньшей мере, одного из первого субкадра 2310 и второго субкадра 2320. Например, поперечная фильтрация может не выполняться на границе первого субкадра 2310, и поперечная фильтрация может выполняться на границе второго субкадра 2320. В примере, вторая информация, указывающая то, может или нет поперечная фильтрация выполняться на границе каждого субкадра, может передаваться в служебных сигналах с использованием loop_filter_across_subpic_enabled_flag, описанного выше со ссылкой на фиг. 15.
[301] То, может или нет поперечная фильтрация выполняться на границе каждого субкадра, может определяться безотносительно того, трактуется или нет каждый субкадр в качестве кадра. Таким образом, в вышеописанном примере, значение loop_filter_across_subpic_enabled_flag может определяться безотносительно значения subpic_treated_as_pic_flag. Как результат, даже если поперечный фильтр не применяется к границе первого субкадра 2310, поскольку граница второго субкадра 2320 поперечно фильтруется, граница первого субкадра 2310 также может фильтроваться.
[302] Информация относительно каждого субкадра может включать в себя первую информацию и вторую информацию. Помимо этого, информация относительно каждого независимо кодированный субкадр может передаваться в служебных сигналах через различные потоки битов. Например, информация 2341 относительно первого субкадра 2310 может передаваться в служебных сигналах через первый поток 2340 битов, и информация 2351 относительно второго субкадра 2320 может передаваться в служебных сигналах через второй поток 2350 битов.
[303] Между тем, на этапе декодирования, оборудование декодирования изображений может конструировать, по меньшей мере, один кадр, включающий в себя множество субкадров, посредством объединения множества потоков битов. Например, оборудование декодирования изображений может конструировать один кадр, включающий в себя первый субкадр 2310 и второй субкадр 2320, на основе информации 2341 относительно первого субкадра 2310, полученной из первого потока 2340 битов, и информации 2351 относительно второго субкадра 2320, полученной из второго потока 2350 битов. В этом случае, согласно порядку декодирования, второй субкадр может присутствовать в позиции рядом с правой вертикальной границей первого субкадра 2310.
[304] Затем, ссылаясь на фиг. 24, когда режим временного прогнозирования векторов движения (TMVP) на основе субблоков применяется к текущему блоку 2410, включенному в первый субкадр 2310, по меньшей мере, частичная область в совместно размещенном опорном блоке 2420 для текущего блока 2410 может включаться в фильтрованную область 2430. Как результат, на этапе кодирования, временной опорный блок 2420 для текущего блока 2410 не включает в себя фильтрованную область. Тем не менее, на этапе декодирования, временной опорный блок 2420 для текущего блока 2410 может включать в себя фильтрованную область. Следовательно, в частичной области 2411 в текущем блоке 2410, ссылающейся на фильтрованную область, может возникать ошибка декодирования, при которой результат декодирования и результат кодирования не совпадают.
[305] Как описано выше, чтобы разрешать проблемы, описанные выше со ссылкой на фиг. 21-24, согласно варианту осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться на основе того, трактуется или нет текущий субкадр в качестве кадра. Помимо этого, согласно варианту осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего блока может выполняться на основе того, равна или нет граница текущего блока границе текущего субкадра. Помимо этого, согласно варианту осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться на основе того, может или нет выполняться внутриконтурная фильтрация через смежный субкадр, смежный с границей.
[306] Далее подробно описываются примерные варианты осуществления настоящего раскрытия сущности со ссылкой на прилагаемые чертежи.
[307] Вариант 1 осуществления
[308] Согласно варианту 1 осуществления, то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, может определяться на основе того, трактуется или нет текущий субкадр в качестве кадра.
[309] Фиг. 25 является видом, иллюстрирующим SPS-cинтаксис для передачи в служебных сигналах синтаксического элемента для субкадров согласно варианту осуществления настоящего раскрытия сущности. Описание SPS-cинтаксиса по фиг. 25, перекрывающего SPS-cинтаксис по фиг. 15, опускается или упрощается.
[310] Ссылаясь на фиг. 25, синтаксический элемент subpic_treated_as_pic_flag[i] может указывать то, трактуется или нет субкадр как идентичный общему кадру в процессе декодирования. Например, первое значение (например, 0) subpic_treated_as_pic_flag[i] может указывать то, что i-ый субкадр, включенный в отдельный кодируемый кадр CVS, не трактуется в качестве кадра. Второе значение (например, 1) subpic_treated_as_pic_flag[i] может указывать то, что i-ый субкадр, включенный в отдельный кодируемый кадр CVS, трактуется в качестве кадра. Когда значение subpic_treated_as_pic_flag[i] не получается из потока битов, значение subpic_treated_as_pic_flag[i] может логически выводиться в качестве первого значения (например, 0).
[311] Синтаксический элемент loop_filter_across_subpic_enabled_flag[i] может указывать то, может или нет внутриконтурная фильтрация (например, фильтрация для удаления блочности) выполняться через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS. Например, первое значение (например, 0) loop_filter_across_subpic_enabled_flag[i] может указывать то, что внутриконтурная фильтрация не может выполняться через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS. Второе значение (например, 1) loop_filter_across_subpic_enabled_flag[i] может указывать то, что внутриконтурная фильтрация может выполняться через границу i-ого субкадра, включенного в отдельный кодируемый кадр CVS.
[312] loop_filter_across_subpic_enabled_flag[i] может передаваться в служебных сигналах только тогда, когда субкадр не трактуется как идентичный общему кадру в процессе декодирования. Например, когда i-ый субкадр, включенный в отдельный кодируемый кадр CVS, не трактуется в качестве кадра в процессе декодирования (например, subpic_treated_as_pic_flag[i]=0), loop_filter_across_subpic_enabled_flag[i] может передаваться в служебных сигналах (2510).
[313] В примере, когда loop_filter_across_subpic_enabled_flag[i] не передается в служебных сигналах, значение loop_filter_across_subpic_enabled_flag[i] может определяться как составляющее первое значение (например, 0) или второе значение (например, 1) согласно следующему условию. Когда i-ый субкадр, включенный в отдельный кодируемый кадр CVS, трактуется в качестве кадра в процессе декодирования (например, subpic_treated_as_pic_flag[i]=1), значение loop_filter_across_subpic_enabled_flag[i] может определяться как составляющее первое значение (например, 0). В других случаях, значение loop_filter_across_subpic_enabled_flag[i] может определяться как составляющее второе значение (например, 1).
[314] В примере, для соответствия потока битов, когда значение subpic_treated_as_pic_flag[i] составляет второе значение (например, 1), может применяться такое ограничение, что значение loop_filter_across_subpic_enabled_flag[i] составляет первое значение (например, 0).
[315] Фиг. 26 является видом, иллюстрирующим пример процесса фильтрации выборок сигналов яркости на основе SPS-cинтаксиса по фиг. 25.
[316] Ссылаясь на фиг. 26, выборки сигналов яркости могут фильтроваться с использованием длинного фильтра на основе предварительно определенных ограничений при фильтрации.
[317] Выборки сигналов яркости могут включать в себя выборку p0 P-блоков, расположенную слева или сверху, и выборку q0 Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация.
[318] В случае выборки p0 P-блоков, когда число nDp выборок p0 P-блоков, которые должны фильтроваться, больше 0, и, по меньшей мере, одно из следующих ограничений удовлетворяется, число nDp выборок p0 P-блоков, которые должны фильтроваться, может изменяться на 0.
[319] Ограничение 1: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков.
[320] Ограничение 2: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков.
[321] Ограничение 3: край текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков, представляет собой границу субкадра, и текущая CU трактуется в качестве кадра (например, subpic_treated_as_pic_flag[SubPicIdx]==1).
[322] В случае выборки q0 Q-блоков, когда число nDq выборок q0 Q-блоков, которые должны фильтроваться, больше 0, и, по меньшей мере, одно из следующих ограничений 4 и 5 удовлетворяется, число nDq выборок q0 Q-блоков, которые должны фильтроваться, может изменяться на 0.
[323] Ограничение 4: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку q0 Q-блоков.
[324] Ограничение 5: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку q0 Q-блоков.
[325] Фиг. 27 является видом, иллюстрирующим другой пример процесса фильтрации выборок сигналов яркости на основе SPS-cинтаксиса по фиг. 25.
[326] Ссылаясь на фиг. 27, выборки сигналов яркости могут фильтроваться с использованием длинного фильтра на основе предварительно определенных ограничений при фильтрации.
[327] Выборки сигналов яркости могут включать в себя выборку pi P-блоков, расположенную слева или сверху, и выборку qj Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Здесь, i может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthP) для P-блока. Помимо этого, j может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthQ) для Q-блока.
[328] В случае выборки pi P-блоков, когда, по меньшей мере, одно из следующих ограничений удовлетворяется, выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[329] Ограничение 1: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков.
[330] Ограничение 2: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков.
[331] Ограничение 3: край текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков, представляет собой границу субкадра, и текущая CU трактуется в качестве кадра (например, subpic_treated_as_pic_flag[SubPicIdx]==1).
[332] Согласно вышеописанным ограничениям при фильтрации, когда выборочное значение фильтрованной выборки pi' P-блоков заменяется выборочным значением входной выборки pi P-блоков, выборка pi P-блоков может трактоваться как не фильтрованная.
[333] В случае выборки qj Q-блоков, когда, по меньшей мере, одно из следующих ограничений 4 и 5 удовлетворяется, выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[334] Ограничение 4: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку qi Q-блоков.
[335] Ограничение 5: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку qi Q-блоков.
[336] Согласно вышеописанным ограничениям при фильтрации, когда выборочное значение фильтрованной выборки qj' Q-блоков заменяется выборочным значением входной выборки Qj Q-блоков, выборка qj Q-блоков может трактоваться как не фильтрованная.
[337] Фиг. 28 является видом, иллюстрирующим пример процесса фильтрации выборок сигналов цветности на основе SPS-cинтаксиса по фиг. 25.
[338] Ссылаясь на фиг. 28, выборки сигналов цветности могут фильтроваться с использованием сильного фильтра или слабого фильтра согласно предварительно определенным ограничениям при фильтрации. В примере, выборки сигналов цветности могут фильтроваться только тогда, когда соответствующие цветовые компоненты (например, Y, Cb, Cr) отдельно не кодируются/декодируются. Например, выборки сигналов цветности могут фильтроваться только тогда, когда значение ChromaArrayType, указывающего тип массива выборок сигналов цветности, не равно 0.
[339] Выборки сигналов цветности могут включать в себя выборку pi P-блоков, расположенную слева и сверху, и выборку qi Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Здесь, i может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthCbCr) для блока сигналов цветности. Выборка pi P-блоков может указываться с использованием первой выборочной позиции (xPi, yPi), и выборка qi Q-блоков может указываться с использованием второй позиции (xQi, yQi).
[340] С использованием выборочного значения и позиции выборки pi P-блоков, выборочного значения и позиции выборки qi Q-блоков и переменной tc в качестве ввода, могут выводиться выборочное значение фильтрованной выборки pi' P-блоков и выборочное значение фильтрованной выборки qi' Q-блоков.
[341] В примере, когда максимальная длина фильтра (например, maxFilterLengthCbCr) для блока сигналов цветности равна 3, сильная фильтрация может выполняться для выборок сигналов цветности, как показано в нижеприведенном уравнении 7.
[342] уравнение 7
p0'=Clip3(p0-tC, p0+tC, (p3+p2+p1+2*p0+q0+q1+q2+4)>>3)
p1'=Clip3(p1-tC, p1+tC, (2*p3+p2+2*p1+p0+q0+q1+4)>>3)
p2'=Clip3(p2-tC, p2+tC, (3*p3+2*p2+p1+p0+q0+4)>>3)
q0'=Clip3(q0-tC, q0+tC, (p2+p1+p0+2*q0+q1+q2+q3+4)>>3)
q1'=Clip3(q1-tC, q1+tC, (p1+p0+q0+2*q1+q2+2*q3+4)>>3)
q2'=Clip3(q2-tC, q2+tC, (p0+q0+q1+2*q2+3*q3+4)>>3),
[343] где Clip3(x, y, z) может означать функцию для отсечения значения параметра z для значения между значением параметра x и значением параметра y.
[344] Напротив, когда максимальная длина фильтра (например, maxFilterLengthCbCr) для блока сигналов цветности не равна 3, слабая фильтрация может выполняться для выборок сигналов цветности, как показано в нижеприведенном уравнении 8.
[345] уравнение 8
Δ=Clip3(-tC, tC, ((((q0-p0)<<2)+p1-q1+4)>>3))
p0'=Clip1C(p0+Δ)
q0'=Clip1C(q0-Δ),
[346] где Clip1C(x) может означать функцию для отсечения значения параметра x на основе битовой глубины блока сигналов цветности.
[347] Между тем, выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков, когда удовлетворяется, по меньшей мере, одно из нижеприведенных ограничений 1-3.
[348] Ограничение 1: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков.
[349] Ограничение 2: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков.
[350] Ограничение 3: край текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков, представляет собой границу субкадра, и текущая CU трактуется в качестве кадра (например, subpic_treated_as_pic_flag[SubPicIdx]==1).
[351] Согласно вышеописанным ограничениям при фильтрации, когда выборочное значение фильтрованной выборки pi' P-блоков заменяется выборочным значением входной выборки pi P-блоков, выборка pi P-блоков может трактоваться как не фильтрованная.
[352] Выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков, когда удовлетворяется, по меньшей мере, одно из нижеприведенных ограничений 4 и 5.
[353] Ограничение 4: процесс квантования, преобразования и внутриконтурной фильтрации обходится (например, cu_transquant_bypass_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку qi Q-блоков.
[354] Ограничение 5: палитровый режим применяется (например, pred_mode_plt_flag==1) для текущей CU, включающей в себя блок кодирования, имеющий выборку qi Q-блоков.
[355] Согласно вышеописанным ограничениям при фильтрации, когда выборочное значение фильтрованной выборки qj' Q-блоков заменяется выборочным значением входной выборки Qj Q-блоков, выборка qj Q-блоков может трактоваться как не фильтрованная.
[356] В дальнейшем в этом документе подробно описывается способ фильтрации согласно варианту 1 осуществления настоящего раскрытия сущности.
[357] Фиг. 29 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности. Способ фильтрации по фиг. 29 может осуществляться посредством оборудования кодирования изображений по фиг. 2. Например, этапы S2910-S2940 могут выполняться посредством фильтра 160 оборудования 100 кодирования изображений. Альтернативно, способ фильтрации по фиг. 29 может осуществляться посредством оборудования декодирования изображений по фиг. 3. Например, этапы S2910-S2940 могут выполняться посредством фильтра 240 оборудования 200 декодирования изображений.
[358] На этапе кодирования, способ фильтрации по фиг. 29 может осуществляться через границу текущего кадра, включающего в себя восстановленный текущий блок. Альтернативно, на этапе декодирования, способ фильтрации по фиг. 29 может осуществляться через границу текущего кадра, включающего в себя декодированный текущий блок. В дальнейшем в этом документе, внутриконтурная фильтрация через границу субкадра называется "поперечной фильтрацией".
[359] Ссылаясь на фиг. 29, оборудование кодирования/декодирования изображений может определять то, может или нет текущий субкадр, включающий в себя текущий блок, трактоваться в качестве кадра (S2910).
[360] Трактовки текущего субкадра в качестве кадра может означать то, что текущий субкадр независимо кодируется/декодируется безотносительно информации кодирования/декодирования других субкадров. Например, текущий субкадр может кодироваться с использованием режима взаимного прогнозирования, и смежный субкадр, смежный с текущим субкадром может кодироваться/декодироваться с использованием режима внутреннего прогнозирования.
[361] На этапе кодирования, информация, указывающая то, может или нет текущий субкадр трактоваться в качестве кадра, может кодироваться с использованием subpic_treated_as_pic_flag в высокоуровневом синтаксисе (например, в синтаксисе SPS (наборов параметров последовательности)). Например, когда subpic_treated_as_pic_flag имеет первое значение (например, 0), текущий субкадр может не трактоваться в качестве кадра. Напротив, когда subpic_treated_as_pic_flag имеет второе значение (например, 1), текущий субкадр может трактоваться в качестве кадра.
[362] На этапе декодирования, то, может или нет текущий субкадр трактоваться в качестве кадра, может определяться с использованием значения subpic_treated_as_pic_flag, полученного из высокоуровневого синтаксиса. В примере, когда subpic_treated_as_pic_flag не получается, subpic_treated_as_pic_flag может логически выводиться как имеющий первое значение (например, 0).
[363] Когда текущий субкадр не трактуется в качестве кадра ("Нет" на S2910), может определяться то, может или нет поперечная фильтрация (например, фильтрация для удаления блочности) выполняться на границе текущего субкадра (S2920).
[364] На этапе кодирования, информация, указывающая то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, может кодироваться с использованием loop_filter_across_subpic_enabled_flag в высокоуровневом синтаксисе (например, в синтаксисе SPS (наборов параметров последовательности)). Например, когда loop_filter_across_subpic_enabled_flag имеет первое значение (например, 0), поперечная фильтрация может не выполняться на границе текущего субкадра. Напротив, когда loop_filter_across_subpic_enabled_flag имеет второе значение (например, 1), поперечная фильтрация может выполняться на границе текущего субкадра.
[365] На этапе декодирования, то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, может определяться на основе значения loop_filter_across_subpic_enabled_flag, полученного из высокоуровневого синтаксиса. В примере, когда loop_filter_across_subpic_enabled_flag не получается, значение loop_filter_across_subpic_enabled_flag может определяться на основе того, трактуется или нет текущий субкадр в качестве кадра. Например, когда текущий субкадр трактуется в качестве кадра, loop_filter_across_subpic_enabled_flag может логически выводиться как имеющий первое значение (например, 0). Напротив, когда текущий субкадр не трактуется в качестве кадра, loop_filter_across_subpic_enabled_flag может логически выводиться как имеющий второе значение (например, 1). В примере, для соответствия потока битов, когда subpic_treated_as_pic_flag имеет второе значение (например, 1), может применяться такое ограничение, что loop_filter_across_subpic_enabled_flag имеет первое значение (например, 0).
[366] Когда поперечная фильтрация может выполняться на границе текущего субкадра ("Да" на S2920), оборудование кодирования/декодирования изображений может определять граничную интенсивность текущего субкадра (S2930). В настоящем раскрытии сущности, граничная интенсивность может называться "граничной интенсивностью фильтрации" или "интенсивностью фильтрации".
[367] Граничная интенсивность текущего субкадра может определяться как составляющая любое из первого значения (например, 0) - третьего значения (например, 2) согласно предварительно определенному условию, и конкретный способ определения описан выше со ссылкой на фиг. 19.
[368] Оборудование кодирования/декодирования изображений может выполнять поперечную фильтрацию на границе текущего субкадра на основе граничной интенсивности текущего субкадра (S2940). Например, поперечная фильтрация может выполняться на границе текущего субкадра только тогда, когда граничная интенсивность текущего субкадра имеет второе значение (например, 1) или третье значение (например, 2).
[369] Между тем, когда поперечная фильтрация не может выполняться на границе текущего субкадра ("Нет" на S2920), процесс фильтрации по S2930 и S2940 для границы текущего субкадра может пропускаться.
[370] Помимо этого, когда текущий субкадр трактуется в качестве кадра ("Да" на S2910), процессы фильтрации по S2930 и S2940 для границы текущего субкадра могут пропускаться.
[371] Как описано выше, согласно варианту 1 осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться только тогда, когда текущий субкадр не трактуется в качестве кадра. Следовательно, можно предотвращать уменьшение области, в которой текущий субкадр трактуется в качестве кадра.
[372] Вариант 2 осуществления
[373] Согласно варианту 2 осуществления, внутриконтурная фильтрация через границу текущего блока может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Например, когда левая или верхняя граница текущего блока представляет собой левую или верхнюю границу текущего субкадра, либо когда внутриконтурная фильтрация не может выполняться через границу текущего субкадра, внутриконтурная фильтрация через границу текущего блока может не выполняться. Дополнительно, поскольку внутриконтурная фильтрация через границу смежного субкадра выполняется, когда граница текущего субкадра фильтруется вместе, согласно предварительно определенному ограничению при фильтрации, число выборок, которые должны фильтроваться на границе текущего субкадра, может изменяться на 0, или выборочные значения фильтрованных выборок могут заменяться входными выборочными значениями.
[374] Фиг. 30 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[375] Ссылаясь на фиг. 30, внутриконтурная фильтрация через границу текущего блока, например, однонаправленная фильтрация для удаления блочности, может выполняться. В примере, то, может или нет выполняться фильтрация для удаления блочности через границу текущего блока, может передаваться в служебных сигналах с использованием filterEdgeFlag. Например, первое значение (например, 0) filterEdgeFlag может указывать то, что фильтрация для удаления блочности через границу текущего блока не может выполняться. Напротив, второе значение (например, 1) filterEdgeFlag может указывать то, что фильтрация для удаления блочности через границу текущего блока может выполняться.
[376] Значение filterEdgeFlag может извлекаться следующим образом.
[377] Когда граница текущего блока представляет собой вертикальную границу (например, edgeType==EDGE_VER), если, по меньшей мере, одно из нижеприведенных ограничений 1-5 удовлетворяется, filterEdgeFlag может иметь первое значение (например, 0).
[378] Ограничение 1: левая граница текущего блока кодирования представляет собой левую границу текущего кадра.
[379] Ограничение 2: левая граница текущего блока кодирования представляет собой левую границу текущего субкадра, и фильтрация для удаления блочности через границу текущего субкадра не может выполняться (например, loop_filter_across_subpic_enabled_flag==0).
[380] Ограничение 3: левая граница текущего блока кодирования представляет собой левую границу текущей плитки, и внутриконтурная фильтрация не может выполняться через границу текущей плитки (например, loop_filter_across_tiles_enabled_flag==0).
[381] Ограничение 4: левая граница текущего блока кодирования представляет собой левую границу текущего среза, и внутриконтурная фильтрация через границу текущего среза не может выполняться (например, loop_filter_across_slices_enabled_flag==0).
[382] Ограничение 5: левая граница текущего блока кодирования представляет собой одну из вертикальных виртуальных границ текущего кадра, и внутриконтурная фильтрация не может выполняться через виртуальные границы (например, VirtualBoundariesDisabledFlag==1).
[383] Когда граница текущего блока представляет собой горизонтальную границу (например, edgeType==EDGE_HOR), если, по меньшей мере, одно из ограничений 6-7 удовлетворяется, filterEdgeFlag может иметь первое значение (например, 0).
[384] Ограничение 6: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущего кадра.
[385] Ограничение 7: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущего субкадра, и фильтрация для удаления блочности через границу текущего блока не может выполняться (например, loop_filter_across_subpic_enabled_flag==0).
[386] Ограничение 8: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущей плитки, и фильтрация для удаления блочности через границу текущей плитки не может выполняться (например, loop_filter_across_tiles_enabled_flag==0).
[387] Ограничение 9: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущего среза, и фильтрация для удаления блочности через границу текущего среза не может выполняться (например, loop_filter_across_slices_enabled_flag=0).
[388] Ограничение 10: верхняя граница текущего блока кодирования представляет собой одну из горизонтальных виртуальных границ текущего кадра, и внутриконтурная фильтрация через виртуальные границы не может выполняться (например, VirtualBoundariesDisabledFlag==1).
[389] Когда все вышеприведенные ограничения 1-10 не удовлетворяются, filterEdgeFlag может иметь второе значение (например, 1). Например, когда левая граница текущего блока кодирования представляет собой левую или правую границу текущего субкадра, и фильтрация для удаления блочности через границу текущего блока не может выполняться (например, loop_filter_across_subpic_enabled_flag[SubPicIdx]==0), filterEdgeFlag может иметь второе значение (например, 1). Помимо этого, когда верхняя граница текущего блока кодирования представляет собой верхнюю или нижнюю границу текущего субкадра, и фильтрация для удаления блочности через границу текущего блока не может выполняться, filterEdgeFlag может иметь второе значение (например, 1). Вышеописанные примеры могут рассматривать случай, в котором внутриконтурная фильтрация через границу выполняется для смежного субкадра, смежного с границей текущего блока кодирования.
[390] Между тем, текущий блок кодирования может включать в себя выборки сигналов яркости и выборки сигналов цветности. Каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку p0 P-блоков, расположенную слева или сверху, и выборку q0 Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Альтернативно, каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку pi P-блоков, расположенную слева или сверху, и выборку qj Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Здесь, i может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthP) для P-блока. Помимо этого, j может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthQ) для Q-блока. В дальнейшем в этом документе подробно описывается процесс выполнения поперечной фильтрации для выборок сигналов яркости и выборок сигналов цветности со ссылкой на фиг. 31-33.
[391] Фиг. 31 и 32 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[392] Во-первых, ссылаясь на фиг. 31, число выборок сигналов яркости, которые должны фильтроваться с использованием короткого фильтра, может изменяться на 0 согласно предварительно определенным ограничениям при фильтрации. Помимо этого, выборки сигналов яркости, фильтрованные с использованием короткого фильтра, могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[393] Например, когда число nDp выборок p0 P-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков (например, pred_mode_plt_flag==1), число nDp выборок p0 P-блоков, которые должны фильтроваться, может изменяться на 0.
[394] Помимо этого, когда число nDq выборок q0 Q-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку q0 Q-блоков, число nDq выборок q0 Q-блоков, которые должны фильтроваться, может изменяться на 0.
[395] Помимо этого, когда внутриконтурная фильтрация не может выполняться через границу субкадра, включающего в себя выборку pi P-блоков (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[396] Затем, ссылаясь на фиг. 32, выборки сигналов яркости, фильтрованные с использованием длинного фильтра, могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[397] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[398] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[399] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[400] Фиг. 33 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[401] Ссылаясь на фиг. 33, фильтрованные выборки сигналов цветности могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[402] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[403] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков, выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[404] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[405] В дальнейшем в этом документе подробно описывается способ фильтрации согласно варианту 2 осуществления настоящего раскрытия сущности.
[406] Фиг. 34 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности. Способ фильтрации по фиг. 34 может осуществляться посредством оборудования кодирования изображений по фиг. 2. Например, этапы S3410-S3440 могут выполняться посредством фильтра 160 оборудования 100 кодирования изображений. Альтернативно, способ фильтрации по фиг. 34 может осуществляться посредством оборудования декодирования изображений по фиг. 3. Например, этапы S3410-S3440 могут выполняться посредством фильтра 240 оборудования 200 декодирования изображений.
[407] На этапе кодирования, способ фильтрации по фиг. 34 может осуществляться через границу текущего кадра, включающего в себя восстановленный текущий блок. Альтернативно, на этапе декодирования, способ фильтрации по фиг. 34 может осуществляться через границу текущего кадра, включающего в себя декодированный текущий блок. В дальнейшем в этом документе, внутриконтурная фильтрация через границу субкадра называется "поперечной фильтрацией".
[408] Ссылаясь на фиг. 34, оборудование кодирования/декодирования изображений может определять то, удовлетворяется или нет предварительно определенное ограничение при фильтрации для границы текущего блока (S3410). Здесь, ограничение при фильтрации может означать то, что поперечная фильтрация не может выполняться на границе текущего блока.
[409] Конкретный пример ограничения при фильтрации описывается со ссылкой на фиг. 30-33. Например, ограничение при фильтрации может включать в себя случай, в котором левая граница текущего блока представляет собой левую границу текущего субкадра, и поперечная фильтрация не может выполняться на границе текущего субкадра (например, loop_filter_across_subpic_enabled_flag[SubPicIdx]==0). Помимо этого, ограничение при фильтрации может включать в себя случай, в котором верхняя граница текущего блока представляет собой верхнюю границу текущего субкадра, и поперечная фильтрация не может выполняться на границе текущего субкадра. Помимо этого, ограничивающее условие при фильтрации может включать в себя случай, в котором текущий блок включает в себя выборку pi P-блоков компонента сигналов яркости, расположенную слева или сверху, на основе границы текущего блока, и поперечная фильтрация не может выполняться на границе текущего субкадра. Помимо этого, ограничивающее условие при фильтрации может включать в себя случай, в котором текущий блок включает в себя выборку qi Q-блоков компонента сигналов яркости, расположенную слева или сверху, на основе границы текущего блока, и поперечная фильтрация не может выполняться на границе текущего субкадра.
[410] Когда ограничение при фильтрации не удовлетворяется для границы текущего блока ("Нет" на S3410), оборудование кодирования/декодирования изображений может определять граничную интенсивность текущего блока (S3420). В настоящем раскрытии сущности, граничная интенсивность может называться "граничной интенсивностью фильтрации" или "интенсивностью фильтрации".
[411] Граничная интенсивность текущего субкадра может определяться как составляющая любое из первого значения (например, 0) - третьего значения (например, 2) согласно предварительно определенному условию, и конкретный способ определения описан выше со ссылкой на фиг. 19.
[412] Оборудование кодирования/декодирования изображений может выполнять поперечную фильтрацию на границе текущего субкадра на основе граничной интенсивности текущего субкадра (S3440). Например, поперечная фильтрация может выполняться на границе текущего субкадра только тогда, когда граничная интенсивность текущего субкадра имеет второе значение (например, 1) или третье значение (например, 2).
[413] Между тем, когда ограничение при фильтрации удовлетворяется для границы текущего субкадра ("Нет" на S3420), процесс фильтрации по S3420 и S3430 для границы текущего субкадра может пропускаться.
[414] Как описано выше, согласно варианту 2 осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Следовательно, можно предотвращать такую ошибку декодирования, что результат декодирования границы текущего блока не совпадает с результатом кодирования.
[415] Вариант 3 осуществления
[416] Согласно варианту 3 осуществления, внутриконтурная фильтрация через границу текущего блока может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Например, когда внутриконтурная фильтрация не может выполняться через границу текущего субкадра, включающего в себя выборку сигналов яркости или выборку сигналов цветности, расположенную слева или сверху относительно текущего блока, внутриконтурная фильтрация через границу текущего блока может не выполняться. Помимо этого, когда внутриконтурная фильтрация не может выполняться через границу текущего субкадра, включающего в себя выборку сигналов яркости или выборку сигналов цветности, расположенную справа или снизу относительно текущего блока, внутриконтурная фильтрация через границу текущего блока может не выполняться.
[417] Фиг. 35 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[418] Ссылаясь на фиг. 35, внутриконтурная фильтрация через границу текущего блока, например, однонаправленная фильтрация для удаления блочности, может выполняться. В примере, то, может или нет выполняться фильтрация для удаления блочности через границу текущего блока, может передаваться в служебных сигналах с использованием filterEdgeFlag, описанного выше со ссылкой на фиг. 30.
[419] Значение filterEdgeFlag может извлекаться следующим образом.
[420] Когда граница текущего блока представляет собой вертикальную границу (например, edgeType==EDGE_VER), если, по меньшей мере, одно из следующих ограничений 1-4 удовлетворяется, filterEdgeFlag может иметь первое значение (например, 0).
[421] Ограничение 1: левая граница текущего блока кодирования представляет собой левую границу текущего кадра.
[422] Ограничение 2: левая граница текущего блока кодирования представляет собой левую границу текущей плитки, и внутриконтурная фильтрация через границу текущей плитки не может выполняться (например, loop_filter_across_tiles_enabled_flag==0).
[423] Ограничение 3: левая граница текущего блока кодирования представляет собой левую границу текущего среза, и внутриконтурная фильтрация через границу текущего среза не может выполняться (например, loop_filter_across_slices_enabled_flag==0).
[424] Ограничение 4: левая граница текущего блока кодирования представляет собой одну из вертикальных виртуальных границ текущего кадра, и внутриконтурная фильтрация через виртуальные границы не может выполняться (например, VirtualBoundariesDisabledFlag==1).
[425] Когда граница текущего блока представляет собой горизонтальную границу (например, edgeType==EDGE_HOR), если, по меньшей мере, одно из нижеприведенных ограничений 5-8 удовлетворяется, filterEdgeFlag может иметь первое значение (например, 0).
[426] Ограничение 5: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущего кадра.
[427] Ограничение 6: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущей плитки, и внутриконтурная фильтрация через границу текущей плитки не может выполняться (например, loop_filter_across_tiles_enabled_flag==0).
[428] Ограничение 7: верхняя граница текущего блока кодирования представляет собой верхнюю границу текущего среза, и внутриконтурная фильтрация через границу текущего среза не может выполняться (например, loop_filter_across_slices_enabled_flag==0).
[429] Ограничение 8: верхняя граница текущего блока кодирования представляет собой одну из горизонтальных виртуальных границ текущего кадра, и внутриконтурная фильтрация через виртуальные границы не может выполняться (например, VirtualBoundariesDisabledFlag==1).
[430] Когда все вышеприведенные ограничения 1-8 не удовлетворяются, filterEdgeFlag может иметь второе значение (например, 1).
[431] В процессе поперечной фильтрации по фиг. 35, в отличие от процесса поперечной фильтрации по фиг. 30, даже если фильтрация для удаления блочности через границу текущего блока не может выполняться, внутриконтурная фильтрация через границу текущего блока может выполняться. Это может осуществляться с учетом случая, в котором выполняется внутриконтурная фильтрация через границу смежного субкадра, смежного с границей текущего субкадра.
[432] Между тем, текущий блок кодирования может включать в себя выборки сигналов яркости и выборки сигналов цветности. Каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку p0 P-блоков, расположенную слева или сверху, и выборку q0 Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Альтернативно, каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку pi P-блоков, расположенную слева или сверху, и выборку qj Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Здесь, i может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthP) для P-блока. Помимо этого, j может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthQ) для Q-блока. В дальнейшем в этом документе подробно описывается процесс выполнения поперечной фильтрации для выборок сигналов яркости и выборок сигналов цветности со ссылкой на фиг. 34-36.
[433] Фиг. 36 и 37 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[434] Во-первых, ссылаясь на фиг. 36, число выборок сигналов яркости, которые должны фильтроваться с использованием короткого фильтра, может изменяться на 0 согласно предварительно определенным ограничениям при фильтрации. Помимо этого, выборки сигналов яркости, фильтрованные с использованием короткого фильтра, могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[435] Например, когда число nDp выборок p0 P-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков (например, pred_mode_plt_flag==1), число nDp выборок p0 P-блоков, которые должны фильтроваться, может изменяться на 0.
[436] Помимо этого, когда число nDq выборок q0 Q-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку q0 Q-блоков, число nDq выборок q0 Q-блоков, которые должны фильтроваться, может изменяться на 0.
[437] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[438] Помимо этого, когда внутриконтурная фильтрация не может выполняться через границу субкадра, включающего в себя выборку qj Q-блоков (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), выборочное значение выборки qj' Q-блоков, фильтрованной с использованием выборки pi P-блоков, может заменяться выборочным значением входной выборки qj Q-блоков.
[439] Затем, ссылаясь на фиг. 37, выборки сигналов яркости, фильтрованные с использованием длинного фильтра, могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[440] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[441] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков, выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[442] Помимо этого, когда внутриконтурная фильтрация не может выполняться через границу субкадра, включающего в себя выборку pi P-блоков (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[443] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку qj Q-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), выборочное значение выборки qj' Q-блоков, фильтрованной с использованием выборки pi P-блоков, может заменяться выборочным значением входной выборки qj Q-блоков.
[444] Фиг. 38 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[445] Ссылаясь на фиг. 38, фильтрованные выборки сигналов цветности могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[446] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[447] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[448] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение выборки pi' P-блоков, фильтрованной с использованием выборки qj Q-блоков, может заменяться выборочным значением входной выборки pi P-блоков.
[449] Помимо этого, когда внутриконтурная фильтрация через границу субкадра, включающего в себя выборку qj Q-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), выборочное значение выборки qj' Q-блоков, фильтрованной с использованием выборки pi P-блоков, может заменяться выборочным значением входной выборки qj Q-блоков.
[450] Способ фильтрации согласно варианту 3 осуществления настоящего раскрытия сущности отличается от способа фильтрации по варианту 2 осуществления в ограничениях при фильтрации, и способ фильтрации, описанный выше со ссылкой на фиг. 34, является применимым без изменения. Соответственно, его описание опускается.
[451] Как описано выше, согласно варианту 3 осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Следовательно, можно предотвращать такую ошибку декодирования, что результат декодирования границы текущего блока не совпадает с результатом кодирования.
[452] Вариант 4 осуществления
[453] Согласно варианту 4 осуществления, внутриконтурная фильтрация через границу текущего блока может выполняться только тогда, когда внутриконтурная фильтрация через каждую границу может выполняться как на границе текущего кадра, так и на границе смежного кадра, смежного с границей текущего блока.
[454] Фиг. 39 является видом, иллюстрирующим процесс поперечной фильтрации согласно варианту осуществления настоящего раскрытия сущности.
[455] Ссылаясь на фиг. 39, внутриконтурная фильтрация через границу текущего блока (например, фильтрация для удаления блочности) может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Здесь, граница текущего блока может включать в себя все края субблока и все края блока преобразования.
[456] Ограничение 1: вышеописанные края включаются в границу кадра.
[457] Ограничение 2: вышеописанные края включаются в верхнюю границу текущего субкадра, и внутриконтурная фильтрация через границу смежного субкадра, смежного с верхней границей, не может выполняться (например, loop_filter_across_subpic_enabled_flag[SubPicIdxAbove]==0), где позиция правой верхней выборки текущего блока представляет собой (xCtb, yCtb), и позиция смежного субкадра может указываться с использованием первой выборочной позиции (xCtb, yCtb-1).
[458] Ограничение 3: вышеописанные края включаются в левую границу текущего субкадра, и внутриконтурная фильтрация через границу смежного субкадра, смежного с левой границей, не может выполняться (например, loop_filter_across_subpic_enabled_flag[SubPicIdxLeft]==0), где позиция левой верхней выборки текущего блока представляет собой (xCtb, yCtb), и позиция смежного субкадра может указываться с использованием второй выборочной позиции (xCtb-1, yCtb).
[459] Ограничение 4: вышеописанные края включаются в левую или верхнюю границу текущего субкадра, и фильтрация для удаления блочности через границу текущего блока не может выполняться (например, loop_filter_across_subpic_enabled_flag[SubPicIdx]==0), где позиция текущего субкадра может указываться с использованием позиции (xCtb, yCtb) левой верхней выборки текущего блока.
[460] Ограничение 5: вышеописанные края включаются в виртуальные границы текущего кадра, и внутриконтурная фильтрация через виртуальные границы не может выполняться (например, VirtualBoundariesDisabledFlag==1).
[461] Ограничение 6: вышеописанные края включаются в границы текущей плитки, и внутриконтурная фильтрация через границы текущей плитки не может выполняться (например, loop_filter_across_tiles_enabled_flag==0).
[462] Ограничение 7: вышеописанные края включаются в границы текущего среза, и внутриконтурная фильтрация через границы текущего среза не может выполняться (например, loop_filter_across_slices_enabled_flag==0).
[463] Ограничение 8: вышеописанные края включаются в верхнюю или нижнюю границу текущего среза, и фильтрация для удаления блочности деактивируется для текущего среза (например, slice_deblocking_filter_disabled_flag==1).
[464] Ограничение 9: вышеописанные края включаются в текущий срез, и фильтрация для удаления блочности деактивируется для текущего среза (например, slice_deblocking_filter_disabled_flag==1).
[465] Ограничение 10: вышеописанные края не соответствуют границе сетки выборок сигналов яркости 4×4.
[466] Ограничение 11: вышеописанные края не соответствуют границе сетки выборок сигналов цветности 8×8.
[467] Ограничение 12: в качестве краев компонента сигналов яркости, дельта-импульсно-кодовая модуляция на основе блоков (BDPCM) применяется к обеим сторонам каждого края (например, intra_bdpcm_luma_flag==1), где BDPCM может означать режим кодирования, в котором квантованное остаточное выборочное значение текущей TU модифицируется с использованием квантованного остаточного выборочного значения TU, смежной с текущей TU.
[468] Ограничение 13: в качестве краев компонента сигналов цветности, дельта-импульсно-кодовая модуляция на основе блоков (BDPCM) применяется к обеим сторонам каждого края (например, intra_bdpcm_chroma_flag==1).
[469] Ограничение 14: края субблоков компонентов сигналов цветности не равны краям TU, ассоциированной с ними.
[470] Между тем, процесс фильтрации выборок сигналов яркости и выборок сигналов цветности согласно варианту 2 осуществления, описанному выше со ссылкой на фиг. 31-33, является применимым к варианту 4 осуществления настоящего раскрытия сущности. Помимо этого, процесс фильтрации выборок сигналов яркости и выборок сигналов цветности согласно варианту 3 осуществления, описанному выше со ссылкой на фиг. 36-38, является применимым к варианту 4 осуществления настоящего раскрытия сущности. Например, когда режим прогнозирования текущего блока представляет собой палитровый режим, внутриконтурная фильтрация (например, фильтрация для удаления блочности) через границу текущего блока может не выполняться.
[471] В дальнейшем в этом документе подробно описывается способ фильтрации согласно варианту 4 осуществления настоящего раскрытия сущности.
[472] Фиг. 40 является блок-схемой последовательности операций, иллюстрирующей способ фильтрации на основе структуры субкадра согласно варианту осуществления настоящего раскрытия сущности. Способ фильтрации по фиг. 40 может осуществляться посредством оборудования кодирования изображений по фиг. 2. Например, этапы S4010-S4040 могут выполняться посредством фильтра 160 оборудования 100 кодирования изображений. Альтернативно, способ фильтрации по фиг. 40 может осуществляться посредством оборудования декодирования изображений по фиг. 3. Например, этапы S4010-S4040 могут выполняться посредством фильтра 240 оборудования 200 декодирования изображений.
[473] На этапе кодирования, способ фильтрации по фиг. 40 может осуществляться через границу восстановленного текущего блока. Альтернативно, на этапе декодирования, способ фильтрации по фиг. 40 может осуществляться через границу декодированного текущего блока. В дальнейшем в этом документе, внутриконтурная фильтрация через границу текущего блока (или текущего кадра/субкадра/среза/плитки и т.д.) называется "поперечной фильтрацией".
[474] Ссылаясь на фиг. 40, оборудование кодирования/декодирования изображений может определять то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, включающего в себя текущий блок (S4010).
[475] На этапе кодирования, информация, указывающая то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, может кодироваться с использованием loop_filter_across_subpic_enabled_flag в высокоуровневом синтаксисе (например, в синтаксисе наборов параметров последовательности (SPS)). Например, когда loop_filter_across_subpic_enabled_flag имеет первое значение (например, 0), поперечная фильтрация не может выполняться на границе текущего субкадра. Напротив, когда loop_filter_across_subpic_enabled_flag имеет второе значение (например, 1), поперечная фильтрация может выполняться на границе текущего субкадра.
[476] На этапе декодирования, то, может или нет поперечная фильтрация выполняться на границе текущего субкадра, может определяться на основе значения loop_filter_across_subpic_enabled_flag, полученного из высокоуровневого синтаксиса. В примере, когда loop_filter_across_subpic_enabled_flag не получается, значение loop_filter_across_subpic_enabled_flag может определяться на основе того, трактуется или нет текущий субкадр в качестве кадра. Например, когда текущий субкадр трактуется в качестве кадра, loop_filter_across_subpic_enabled_flag может логически выводиться как имеющий первое значение (например, 0). Напротив, когда текущий субкадр не трактуется в качестве кадра, loop_filter_across_subpic_enabled_flag может логически выводиться как имеющий второе значение (например, 1). В примере, для соответствия потока битов, когда subpic_treated_as_pic_flag имеет второе значение (например, 1), может применяться такое ограничение, что loop_filter_across_subpic_enabled_flag должен иметь первое значение (например, 0).
[477] Когда поперечная фильтрация может выполняться на границе текущего субкадра ("Да" на S4010), оборудование кодирования/декодирования изображений может определять то, может или нет поперечная фильтрация выполняться на границе смежного субкадра, смежного с границей текущего блока (S4020).
[478] Аналогично текущему субкадру, информация, указывающая то, может или нет поперечная фильтрация выполняться на границе смежного субкадра, может кодироваться/декодироваться с использованием loop_filter_across_subpic_enabled_flag в высокоуровневом синтаксисе (например, в синтаксисе наборов параметров последовательности (SPS)).
[479] Когда поперечная фильтрация может выполняться на границе смежного субкадра ("Да" на S4020), оборудование кодирования/декодирования изображений может определять то, что поперечная фильтрация выполняется на границе текущего блока, и определять граничную интенсивность текущего блока (S4030). В настоящем раскрытии сущности, граничная интенсивность может называться "граничной интенсивностью фильтрации" или "интенсивностью фильтрации".
[480] Граничная интенсивность текущего блока может определяться как составляющая любое из первого значения (например, 0) - третьего значения (например, 2) согласно предварительно определенному условию, и конкретный способ определения описан выше со ссылкой на фиг. 19.
[481] Между тем, в примере, даже если поперечная фильтрация может выполняться как на границе текущего субкадра, так и на границе смежного субкадра ("Да" на S4020), когда предварительно определенное ограничение при фильтрации удовлетворяется, поперечная фильтрация может не выполняться на границе текущего блока. Таким образом, когда ограничение при фильтрации удовлетворяется, процесс фильтрации по S4030 и S404 границы текущего блока может пропускаться.
[482] Ограничение при фильтрации может включать в себя ограничения 1-13, описанные выше со ссылкой на фиг. 39. Например, ограничение при фильтрации может включать в себя случай, в котором края (или границы) текущего блока включаются в границу кадра. Помимо этого, ограничение при фильтрации может включать в себя случай, в котором края текущего блока включаются в левую или верхнюю границу текущего субкадра. Помимо этого, ограничение при фильтрации может включать в себя случай, в котором края текущего блока включаются в виртуальные границы текущего кадра, и поперечная фильтрация не может выполняться на виртуальных границах текущего кадра (например, VirtualBoundariesDisabledFlag==1). Помимо этого, ограничение при фильтрации может включать в себя случай, в котором края текущего блока включаются в границы текущей плитки, и поперечная фильтрация не может выполняться на границах текущей плитки (например, loop_filter_across_tiles_enabled_flag==0). Помимо этого, ограничение при фильтрации может включать в себя случай, в котором края текущего блока включаются в границы текущего среза, и поперечная фильтрация не может выполняться на границах текущего среза (например, loop_filtering_across_slices_enabled_flag==0). Помимо этого, ограничение при фильтрации может содержать случай, в котором края текущего блока включаются в верхнюю или нижнюю границу текущего среза, и поперечная фильтрация (например, фильтрация для удаления блочности) деактивируется для верхней или нижней границы текущего среза (например, slice_deblocking_filter_disabled_flag==1).
[483] Оборудование кодирования/декодирования изображений может выполнять поперечную фильтрацию на границе текущего блока, на основе граничной интенсивности текущего блока, определенной на этапе S4030 (S4040). Например, поперечная фильтрация границы текущего блока может выполняться только тогда, когда граничная интенсивность текущего блока имеет второе значение (например, 1) или третье значение (например, 2).
[484] Напротив, когда поперечная фильтрация не может выполняться на границе текущего субкадра ("Нет" на S4010), процессы фильтрации по S4030 и S404 границы текущего блока могут пропускаться. Помимо этого, когда поперечная фильтрация не может выполняться на границе смежного субкадра, смежного с границей текущего субкадра ("Нет" на S4020), процессы фильтрации по S4030 и S4040 границы текущего блока могут пропускаться.
[485] Между тем, хотя на фиг. 40, этап S4010 показан как выполняемый перед этапом S4020, это представляет собой пример, и варианты осуществления настоящего раскрытия сущности не ограничены этим. Например, этап S4020 может выполняться перед этапом S4010 или может выполняться одновременно с этапом S4010.
[486] Как описано выше, согласно варианту 4 осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться только тогда, когда внутриконтурная фильтрация через каждую границу может выполняться как на границе текущего кадра, так и на границе смежной границы. Следовательно, можно предотвращать такую ошибку декодирования, что результат декодирования границы текущего блока не совпадает с результатом кодирования.
[487] Вариант 5 осуществления
[488] Согласно варианту 5 осуществления, внутриконтурная фильтрация через границу текущего блока может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Например, когда режим прогнозирования текущего блока представляет собой палитровый режим, и внутриконтурная фильтрация не может выполняться через границу текущего субкадра, включающего в себя текущий субкадр, внутриконтурная фильтрация через границу текущего блока может не выполняться.
[489] Между тем, текущий блок кодирования может включать в себя выборки сигналов яркости и выборки сигналов цветности. Каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку p0 P-блоков, расположенную слева или сверху, и выборку q0 Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Альтернативно, каждая из выборок сигналов яркости и выборок сигналов цветности может включать в себя выборку pi P-блоков, расположенную слева или сверху, и выборку qj Q-блоков, расположенную справа или снизу, на основе целевой границы, на которой выполняется фильтрация. Здесь, i может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthP) для P-блока. Помимо этого, j может иметь значение, равное или большее 0 и равное или меньшее значения, полученного посредством вычитания 1 из максимальной длины фильтра (например, maxFilterLengthQ) для Q-блока. В дальнейшем в этом документе подробно описывается процесс выполнения поперечной фильтрации для выборок сигналов яркости и выборок сигналов цветности со ссылкой на фиг. 41-43.
[490] Фиг. 41 и 42 являются видами, иллюстрирующими процесс поперечной фильтрации для выборок сигналов яркости согласно варианту осуществления настоящего раскрытия сущности.
[491] Во-первых, ссылаясь на фиг. 41, число выборок сигналов яркости, которые должны фильтроваться с использованием короткого фильтра, может изменяться на 0 согласно предварительно определенным ограничениям при фильтрации.
[492] Например, когда число nDp выборок p0 P-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку p0 P-блоков (например, pred_mode_plt_flag==1), число nDp выборок p0 P-блоков, которые должны фильтроваться, может изменяться на 0.
[493] Помимо этого, когда число nDq выборок q0 Q-блоков, которые должны фильтроваться, больше 0, и палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку q0 Q-блоков, число nDq выборок q0 Q-блоков, которые должны фильтроваться, может изменяться на 0.
[494] Помимо этого, когда число nDp выборок p0 P-блоков, которые должны фильтроваться, больше 0, выборка p0 P-блоков и выборка q0 Q-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу субкадра, включающего в себя выборку p0 P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), число nDp выборок p0 P-блоков, которые должны фильтроваться, может изменяться на 0.
[495] Помимо этого, когда число nDq выборок q0 Q-блоков, которые должны фильтроваться, больше 0, выборка q0 Q-блоков и выборка p0 P-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу субкадра, включающего в себя выборку q0 Q-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), число nDq выборок q0 Q-блоков, которые должны фильтроваться, может изменяться на 0.
[496] Затем, ссылаясь на фиг. 42, выборки сигналов яркости, фильтрованные с использованием длинного фильтра, могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[497] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[498] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков, выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[499] Помимо этого, когда выборка pi P-блоков и выборка qj Q-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу субкадра, включающего в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[500] Помимо этого, когда выборка qj Q-блоков и выборка pi P-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу субкадра, включающего в себя выборку qj Q-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[501] Фиг. 43 является видом, иллюстрирующим процесс поперечной фильтрации для выборок сигналов цветности согласно варианту осуществления настоящего раскрытия сущности.
[502] Ссылаясь на фиг. 43, фильтрованные выборки сигналов цветности могут трактоваться как не фильтрованные согласно предварительно определенным ограничениям при фильтрации.
[503] Например, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку pi P-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[504] Помимо этого, когда палитровый режим применяется к текущей CU, включающей в себя блок кодирования, имеющий выборку qj Q-блоков (например, pred_mode_plt_flag==1), выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[505] Помимо этого, когда выборка pi P-блоков и выборка qj Q-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу, включающую в себя выборку pi P-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxP]==0), выборочное значение фильтрованной выборки pi' P-блоков может заменяться выборочным значением входной выборки pi P-блоков.
[506] Помимо этого, когда выборка qj Q-блоков и выборка pi P-блоков включаются в различные субкадры, и внутриконтурная фильтрация через границу субкадра, включающего в себя выборку qj Q-блоков, не может выполняться (например, loop_filter_across_subpic_enabled_flag[subPicIdxQ]==0), выборочное значение фильтрованной выборки qj' Q-блоков может заменяться выборочным значением входной выборки qj Q-блоков.
[507] Вариант 5 осуществления настоящего раскрытия сущности отличается от варианта 2 осуществления и варианта 3 осуществления в ограничениях при фильтрации, и способ фильтрации, описанный выше со ссылкой на фиг. 34, является применимым без изменения. Дополнительно, ограничения при фильтрации варианта 5 осуществления настоящего раскрытия сущности являются в равной степени применимыми к варианту 4 осуществления.
[508] Как описано выше, согласно варианту 5 осуществления настоящего раскрытия сущности, внутриконтурная фильтрация через границу текущего субкадра может выполняться только тогда, когда не удовлетворяется предварительно определенное ограничение при фильтрации. Следовательно, можно предотвращать такую ошибку декодирования, что результат декодирования границы текущего блока не совпадает с результатом кодирования.
[509] Хотя примерные способы настоящего раскрытия сущности, описанного выше, представляются как последовательность операций для ясности описания, это не имеет намерение ограничивать порядок, в котором выполняются этапы, и этапы могут выполняться одновременно или в другом порядке при необходимости. Чтобы реализовывать способ согласно настоящему раскрытию сущности, описанные этапы дополнительно могут включать в себя другие этапы, могут включать в себя оставшиеся этапы, за исключением некоторых этапов, либо могут включать в себя другие дополнительные этапы, за исключением некоторых этапов.
[510] В настоящем раскрытии сущности, оборудование кодирования изображений или оборудование декодирования изображений, которое выполняет предварительно определенную операцию (этап), может выполнять операцию (этап) подтверждения условия или ситуации выполнения соответствующей операции (этап). Например, если описывается то, что предварительно определенная операция выполняется, когда предварительно определенное условие удовлетворяется, оборудование кодирования изображений или оборудование декодирования изображений может выполнять предварительно определенную операцию после определения того, удовлетворяется или нет предварительно определенное условие.
[511] Различные варианты осуществления настоящего раскрытия сущности не представляют собой список всех возможных комбинаций и имеют намерение описывать характерные аспекты настоящего раскрытия сущности, и вопросы, описанные в различных вариантах осуществления, могут применяться независимо либо в комбинации двух или более из них.
[512] Различные варианты осуществления настоящего раскрытия сущности могут реализовываться в аппаратных средствах, микропрограммном обеспечении, программном обеспечении либо в комбинации вышеозначенного. В случае реализации настоящего раскрытия сущности посредством аппаратных средств, настоящее раскрытие сущности может реализовываться с помощью специализированных интегральных схем (ASIC), процессоров цифровых сигналов (DSP), устройств обработки цифровых сигналов (DSPD), программируемых логических устройств (PLD), программируемых пользователем вентильных матриц (FPGA), общих процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.
[513] Помимо этого, оборудование декодирования изображений и оборудование кодирования изображений, к которым применяются варианты осуществления настоящего раскрытия сущности, могут включаться в мультимедийное широковещательное приемо-передающее устройство, терминал мобильной связи, видеоустройство системы домашнего кинотеатра, видеоустройство системы цифрового кинотеатра, камеру наблюдения, устройство проведения видеочатов, устройство связи в реальном времени, к примеру, для видеосвязи, мобильное устройство потоковой передачи, носитель хранения данных, записывающую видеокамеру, устройство предоставления услуг на основе технологии "видео по запросу" (VoD), устройство на основе OTT-видео (видео поверх сетей), устройство предоставления услуг потоковой передачи по Интернету, трехмерное видеоустройство, видеоустройство системы видеотелефонии, медицинское видеоустройство и т.п. и могут использоваться для того, чтобы обрабатывать видеосигналы или сигналы данных. Например, OTT-видеоустройства могут включать в себя игровую консоль, Blu-Ray-проигрыватель, телевизор с доступом в Интернет, систему домашнего кинотеатра, смартфон, планшетный PC, цифровое записывающее видеоустройство (DVR) и т.п.
[514] Фиг. 44 является видом, показывающим систему потоковой передачи контента, к которой является применимым вариант осуществления настоящего раскрытия сущности.
[515] Ссылаясь на фиг. 44, система потоковой передачи контента, к которой применяется вариант(ы) осуществления настоящего документа, может включать в себя, главным образом, сервер кодирования, потоковый сервер, веб-сервер, хранилище мультимедиа, пользовательское устройство и устройство ввода мультимедиа.
[516] Сервер кодирования сжимает контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные для того, чтобы формировать поток битов, и передает поток битов на потоковый сервер. В качестве другого примера, когда устройства ввода мультимедиа, такие как смартфоны, камеры, записывающие видеокамеры и т.д., непосредственно формируют поток битов, сервер кодирования может опускаться.
[517] Поток битов может формироваться посредством способа кодирования изображений или оборудования кодирования изображений, к которому применяется вариант осуществления настоящего раскрытия сущности, и потоковый сервер может временно сохранять поток битов в процессе передачи или приема потока битов.
[518] Потоковый сервер передает мультимедийные данные в пользовательское устройство на основе запроса пользователя через веб-сервер, и веб-сервер служит в качестве среды для информирования пользователя в отношении услуги. Когда пользователь запрашивает требуемую услугу из веб-сервера, веб-сервер может доставлять ее на потоковый сервер, и потоковый сервер может передавать мультимедийные данные пользователю. В этом случае, система потоковой передачи контента может включать в себя отдельный сервер управления. В этом случае, сервер управления служит для того, чтобы управлять командой/ответом между устройствами в системе потоковой передачи контента.
[519] Потоковый сервер может принимать контент из хранилища мультимедиа и/или сервера кодирования. Например, когда контент принимается из сервера кодирования, контент может приниматься в реальном времени. В этом случае, чтобы предоставлять плавную услугу потоковой передачи, потоковый сервер может сохранять поток битов в течение предварительно определенного времени.
[520] Примеры пользовательского устройства могут включать в себя мобильный телефон, смартфон, переносной компьютер, цифровой широковещательный терминал, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационное устройство, грифельный планшетный PC, планшетные PC, ультрабуки, носимые устройства (например, интеллектуальные часы, интеллектуальные очки, наголовные дисплеи), цифровые телевизоры, настольные компьютеры, систему цифровых информационных табло и т.п.
[521] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, причем в этом случае данные, принимаемые из каждого сервера, могут распределяться.
[522] Объем раскрытия сущности включает в себя программное обеспечение или машиноисполняемые команды (например, операционную систему, приложение, микропрограммное обеспечение, программу и т.д.) для обеспечения возможности выполнения операций согласно способам различных вариантов осуществления в оборудовании или компьютере, энергонезависимый машиночитаемый носитель, имеющий такое программное обеспечение или команды, сохраненные и выполняемые в оборудовании или компьютере.
Промышленная применимость
[523] Варианты осуществления настоящего раскрытия сущности могут использоваться для того, чтобы кодировать или декодировать изображение.
Изобретение относится к способу и оборудованию кодирования/декодирования изображений для выполнения внутриконтурной фильтрации на основе структуры субкадра. Технический результат заключается в повышении эффективности кодирования/декодирования изображения. Способ декодирования изображений, осуществляемый посредством оборудования декодирования изображений, содержит декодирование первого флага, указывающего то, может или нет внутриконтурная фильтрация выполняться через границу субкадра, из потока битов и выполнение внутриконтурной фильтрации на границе текущего блока на основе первого флага. На основе границы текущего блока, совпадающей с границей текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока выполняется, только когда внутриконтурная фильтрация доступна как для границы текущего субкадра, так и для границы соседнего субкадра, смежного с текущим субкадром. 3 н. и 11 з.п. ф-лы, 46 ил., 2 табл.
1. Способ декодирования изображений, осуществляемый посредством оборудования декодирования изображений, при этом способ декодирования изображений содержит этапы, на которых:
декодируют первый флаг, указывающий то, может или нет внутриконтурная фильтрация выполняться через границу субкадра, из потока битов; и
выполняют внутриконтурную фильтрацию на границе текущего блока, на основе первого флага,
при этом на основе границы текущего блока, совпадающей с границей текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока выполняется, только когда внутриконтурная фильтрация доступна как для границы текущего субкадра, так и для границы соседнего субкадра, смежного с текущим субкадром.
2. Способ декодирования изображений по п. 1, в котором на основе границы текущего блока, удовлетворяющей предварительно определенному ограничению при фильтрации, внутриконтурная фильтрация на границе текущего блока не выполняется.
3. Способ декодирования изображений по п. 2, в котором ограничение при фильтрации содержит случай, в котором граница текущего блока представляет собой границу текущего кадра, включающего в себя текущий блок.
4. Способ декодирования изображений по п. 2, в котором ограничение при фильтрации содержит случай, в котором граница текущего блока представляет собой виртуальные границы текущего кадра, включающего в себя текущий блок.
5. Способ декодирования изображений по п. 2, в котором ограничение при фильтрации содержит случай, в котором граница текущего блока представляет собой границу текущей плитки, включающей в себя текущий блок, и внутриконтурная фильтрация не может выполняться через границу текущей плитки.
6. Способ декодирования изображений по п. 2, в котором ограничение при фильтрации содержит случай, в котором граница текущего блока представляет собой границу текущего среза, включающего в себя текущий блок, и внутриконтурная фильтрация не может выполняться через границу текущего среза.
7. Способ декодирования изображений по п. 2, в котором ограничение при фильтрации содержит случай, в котором граница текущего блока представляет собой левую или верхнюю границу текущего среза, включающего в себя текущий блок, и внутриконтурная фильтрация деактивируется для текущего среза.
8. Способ декодирования изображений по п. 1, в котором внутриконтурная фильтрация содержит фильтрацию для удаления блочности.
9. Способ декодирования изображений по п. 1, в котором на основе режима прогнозирования текущего блока, представляющего собой палитровый режим, внутриконтурная фильтрация на границе текущего блока не выполняется.
10. Способ декодирования изображений по п. 1, в котором выполнение внутриконтурной фильтрации содержит этапы, на которых:
определяют граничную интенсивность относительно границы текущего блока, и
фильтруют границу текущего блока на основе граничной интенсивности.
11. Способ декодирования изображений по п. 10, в котором на основе граничной интенсивности, имеющей первое значение, внутриконтурная фильтрация на границе текущего блока не выполняется.
12. Способ декодирования изображений по п. 1, в котором на основе трактовки текущего субкадра в качестве кадра, первый флаг для текущего субкадра указывает то, что внутриконтурная фильтрация не может выполняться через границу текущего субкадра.
13. Способ кодирования изображений, осуществляемый посредством оборудования кодирования изображений, при этом способ кодирования изображений содержит этапы, на которых:
определяют то, может или нет внутриконтурная фильтрация выполняться через границу субкадра; и
выполняют внутриконтурную фильтрацию на границе текущего блока на основе результата определения,
при этом на основе границы текущего блока, совпадающей с границей текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока выполняется, только, когда внутриконтурная фильтрация доступна как для границы текущего субкадра, так и для границы соседнего субкадра, смежного с текущим субкадром.
14. Способ передачи потока битов, в приемник оборудования декодирования изображений, сформированного посредством способа кодирования изображений, содержащий этапы, на которых:
определяют то, может или нет внутриконтурная фильтрация выполняться через границу субкадра; и
выполняют внутриконтурную фильтрацию на границе текущего блока на основе результата определения,
при этом на основе границы текущего блока, совпадающей с границей текущего субкадра, включающего в себя текущий блок, внутриконтурная фильтрация на границе текущего блока выполняется, только когда внутриконтурная фильтрация доступна как для границы текущего субкадра, так и для границы соседнего субкадра, смежного с текущим субкадром.
статья Hyeongmun Jang et al., "AHG17/Non-CE5: on loop filter processing for subpicture treated as a picture", JVET-P0246 16th meeting: Geneva, 7 л., опубл | |||
Пишущая машина для тюркско-арабского шрифта | 1922 |
|
SU24A1 |
статья Zhipin Deng et al., "AHG16/Non-CE5: On deblocking at ALF virtual |
Авторы
Даты
2023-08-04—Публикация
2020-10-06—Подача