Способ и устройство для реализации внутрикадрового предсказания
Иллюстрации
Показать всеИзобретение относится к технологиям кодирования и декодирования видеоданных. Техническим результатом является повышение эффективности внутрикадрового предсказания за счет того, что данное предсказание осуществляется с учетом вариаций значений опорного пикселя прилегающих блоков. Предложен способ внутрикадрового предсказания. Способ включает в себя этап, на котором осуществляют определение опорных пикселов на основании прилегающих к текущему блоку пикселов. Далее согласно способу получают предсказываемый пиксел текущего блока путем осуществления межкадрового предсказания в текущем блоке на основании опорных пикселов. Причем определение опорных пикселов включает замену недоступного пиксела, содержащегося в прилегающих пикселах, с использованием имеющегося пиксела, прилегающего к недоступному пикселу, из числа пикселов, прилегающих к текущему блоку. 2 н. и 2 з.п. ф-лы, 16 ил., 1 табл.
Реферат
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологиям обработки видеоинформации, более конкретно, к способу внутрикадрового предсказания при кодировании и декодировании видеоинформации.
Уровень техники
В последнее время в различных отраслях техники выросла потребность в использовании изображений с большим разрешением и высоким качеством. По мере повышения разрешения и качества изображений возрастает и объем информации, содержащейся в изображении. Соответственно, при передаче видеоданных с использованием, например, существующих в настоящее время проводных и беспроводных широкополосных линий связи или при хранении видеоданных в типовых запоминающих устройствах возрастают затраты на передачу и хранение видеоданных.
Для повышения эффективности передачи, хранения и воспроизведения изображений высокого разрешения с исключительным качеством могут быть использованы высокоэффективные способы сжатия видеоданных.
Раскрытие изобретения
Целью аспекта настоящего изобретения является предложение способа эффективного внутрикадрового предсказания в анизотропной текстуре с учетом вариаций опорных пикселов прилегающих блоков.
Целью еще одного аспекта настоящего изобретения является предложение способа предсказания по плоскости, в котором при осуществлении внутрикадрового предсказания учитываются вариации в значениях пикселов блоков, прилегающих к блоку предсказания.
Целью еще одного аспекта настоящего изобретения является предложение способа формирования опорного пиксела, в котором при использовании ограниченного внутрикадрового предсказания (CIP, constrained intra prediction) опорный пиксел формируют на основании прилегающего блока с внутрикадровым режимом предсказания, находящегося в положении прилегающего пиксела с межкадровым режимом предсказания, и используют опорный пиксел для внутрикадрового предсказания.
Целью еще одного аспекта настоящего изобретения является предложение способа формирования опорного пиксела с учетом вариаций в значениях пиксела, когда опорный пиксел формируют на основании прилегающего блока с внутрикадровым режимом предсказания, находящегося в положении прилегающего пиксела с межкадровым режимом предсказания.
В варианте осуществления настоящего изобретения предлагается используемый в кодере способ внутрикадрового предсказания, включающий формирование опорных пикселов для внутрикадрового предсказания в отношении входного элемента предсказания; определение режима внутрикадрового предсказания для элемента предсказания; формирование блока предсказания на основании опорных пикселов и режима внутрикадрового предсказания; и формирование остаточного блока для элемента предсказания и блока предсказания; причем по меньшей мере один из опорных пикселов и пикселов блока предсказания предсказывают на основании базового пиксела, а значение предсказываемого пиксела равно сумме значения базового пиксела и вариации значений пиксела от базового пиксела до сформированного пиксела.
В качестве первого базового пиксела может быть задан опорный пиксел прилегающего блока, расположенный в верхнем левом углу блока предсказания; в качестве значения второго базового пиксела, который задан как диагональный пиксел в нижнем правом углу блока предсказания, может быть задано значение, полученное применением к базовому пикселу вариации значения пиксела от первого базового пиксела до крайнего нижнего пиксела из числа опорных пикселов прилегающего блока, расположенных на левой границе блока предсказания, и вариации значения пиксела от первого базового пиксела до крайнего правого пиксела из числа опорных пикселов прилегающего блока, расположенных на верхней границе блока предсказания; а значения диагональных пикселов блока предсказания могут быть предсказаны по первому базовому пикселу и второму базовому пикселу.
При этом недиагональные пикселы блока предсказания предсказывают путем интерполяции или экстраполяции с использованием диагональных пикселов и пикселов прилегающих блоков на верхней и/или левой границе блока предсказания.
Кроме того, в качестве базового пиксела может быть задан опорный пиксел прилегающего блока, расположенный в верхнем левом угле блока предсказания, а в качестве значения целевого пиксела предсказания может быть предсказано значение, полученное применением к базовому пикселу вариации значения пиксела от базового пиксела до прилегающего пиксела, расположенного в той же строке, что и целевой пиксел предсказания, из числа опорных пикселов прилегающего блока, расположенных на левой границе блока предсказания, и вариации значения пиксела от базового пиксела до прилегающего пиксела, расположенного в том же столбце, что и целевой пиксел предсказания, из числа опорных пикселов прилегающего блока, расположенных на верхней границе блока предсказания.
Кроме того, в качестве базового пиксела может быть задан пиксел, расположенный в одной строке или в одном столбце с целевым пикселом предсказания, из числа пикселов прилегающих блоков, расположенных на левой или верхней границе блока предсказания, а в качестве значения целевого пиксела предсказания может быть предсказано значение, полученное применением к базовому пикселу вариации значений пиксела от базового пиксела до предсказываемого пиксела.
При этом целевым пикселом предсказания может быть диагональный пиксел блока предсказания, а недиагональный пиксел блока предсказания может быть предсказан путем интерполяции с использованием диагонального пиксела и пикселов прилегающих блоков.
Способ внутрикадрового предсказания может дополнительно включать формирование опорного пиксела, расположенного на границе между блоком с межкадровым режимом и элементом предсказания, если блок, прилегающий к элементу предсказания, является блоком с межкадровым режимом, причем в качестве первого базового пиксела может быть задан пиксел, расположенный на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, расположенных с левой стороны или с нижней стороны опорного пиксела; в качестве второго базового пиксела может быть задан пиксел, расположенный на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, расположенных с правой стороны или с верхней стороны опорного пиксела; а опорный пиксел может быть сформирован на основании расстояния от первого базового пиксела до опорного пиксела и расстояния от второго базового пиксела до опорного пиксела.
При этом значением первого базового пиксела может быть среднее значение пикселов, расположенных на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, которому принадлежит первый базовый пиксел, а значением второго базового пиксела может быть среднее значение пикселов, расположенных на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, которому принадлежит второй базовый пиксел. Далее, если блок с внутрикадровым режимом расположен только с левой стороны или с нижней стороны опорного пиксела, то значением первого базового пиксела может быть значение опорного пиксела, а если блок с внутрикадровым режимом расположен только с правой стороны или с верхней стороны опорного пиксела, то значением второго базового пиксела может быть значение опорного пиксела.
В еще одном варианте осуществления настоящего изобретения предлагается используемый в декодере способ внутрикадрового предсказания, включающий энтропийное декодирование принятого битового потока; формирование опорного пиксела, используемого для внутрикадрового предсказания элемента предсказания; формирование блока предсказания по опорному пикселу на основании режима предсказания для элемента предсказания; и восстановление изображения по остаточному блоку, полученному путем энтропийного декодирования, и блоку предсказания, причем по меньшей мере один из опорных пикселов и пикселов блока предсказания предсказывают на основании базового пиксела, а значение предсказываемого пиксела равно сумме значения базового пиксела и вариации значений пиксела от базового пиксела до сформированного пиксела.
В качестве первого базового пиксела может быть задан опорный пиксел прилегающего блока, расположенный в верхнем левом углу блока предсказания, в качестве значения второго базового пиксела, который задан как диагональный пиксел в нижнем правом углу блока предсказания, может быть задано значение, полученное применением к базовому пикселу вариации значения пиксела от первого базового пиксела до крайнего нижнего пиксела из числа опорных пикселов прилегающего блока, расположенных на левой границе блока предсказания, и вариации значения пиксела от первого базового пиксела до крайнего правого пиксела из числа опорных пикселов прилегающего блока, расположенных на верхней границе блока предсказания; а значения диагональных пикселов блока предсказания могут быть предсказаны по первому базовому пикселу и второму базовому пикселу.
При этом недиагональные пикселы блока предсказания могут быть предсказаны путем интерполяции или экстраполяции с использованием диагональных пикселов и пикселов прилегающих блоков на верхней и/или левой границе блока предсказания.
В качестве базового пиксела может быть задан опорный пиксел прилегающего блока, расположенный в верхнем левом углу блока предсказания, а в качестве значения целевого пиксела предсказания может быть предсказано значение, полученное применением к базовому пикселу вариации значения пиксела от базового пиксела до прилегающего пиксела, расположенного в той же строке, что и целевой пиксел предсказания, из числа опорных пикселов прилегающего блока, расположенных на левой границе блока предсказания, и вариации значения пиксела от базового пиксела до прилегающего пиксела, расположенного в том же столбце, что и целевой пиксел предсказания, из числа опорных пикселов блока, расположенных на верхней границе блока предсказания.
Далее, в качестве базового пиксела может быть задан пиксел, расположенный в одной строке или в одном столбце с целевым пикселом предсказания, из числа пикселов, расположенных на левой или верхней границе блока предсказания, а в качестве значения целевого пиксела предсказания может быть предсказано значение, полученное применением к базовому пикселу вариации значений пиксела от базового пиксела до предсказываемого пиксела.
При этом целевым пикселом предсказания может быть диагональный пиксел блока предсказания, а недиагональный пиксел блока предсказания может быть предсказан путем интерполяции с использованием диагонального пиксела и пикселов прилегающих блоков.
Указанное внутрикадровое предсказание может дополнительно включать формирование опорного пиксела, расположенного на границе между блоком с межкадровым режимом и элементом предсказания, если блок, прилегающий к элементу предсказания, является блоком с межкадровым режимом, причем в качестве первого базового пиксела может быть задан пиксел, расположенный на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, расположенных с левой стороны или с нижней стороны опорного пиксела; в качестве второго базового пиксела может быть задан пиксел, расположенный на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, расположенных с правой стороны или с верхней стороны опорного пиксела; а опорный пиксел может быть сформирован на основании расстояния от первого базового пиксела до опорного пиксела и расстояния от второго базового пиксела до опорного пиксела.
При этом значением первого базового пиксела может быть среднее значение пикселов, расположенных на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, которому принадлежит первый базовый пиксел, а значением второго базового пиксела может быть среднее значение пикселов, расположенных на границе элемента предсказания, из числа пикселов блока с внутрикадровым режимом, которому принадлежит второй базовый пиксел. Далее, если блок с внутрикадровым режимом расположен только с левой стороны или с нижней стороны опорного пиксела, то значением первого базового пиксела может быть значение опорного пиксела, а если блок с внутрикадровым режимом расположен только с правой стороны или с верхней стороны опорного пиксела, то значением второго базового пиксела может быть значение опорного пиксела.
Декодер может получать команду сформировать пикселы блока предсказания на основании базового пиксела посредством энтропийного декодирования. Кроме того, декодер может получать команду сформировать опорные пиксели на основании базового пиксела посредством энтропийного декодирования.
Технический результат
Как указано выше, в соответствии с настоящим изобретением возможно осуществление эффективного внутрикадрового предсказания в анизотропной текстуре с учетом вариаций опорных пикселов прилегающих блоков.
Кроме того, предсказание по плоскости может быть выполнено с учетом вариаций значений пикселов блоков, прилегающих к блоку предсказания, что повышает эффективность предсказания.
Кроме того, если используется ограниченное внутрикадровое предсказание (CIP), то на основании прилегающего блока с внутрикадровым режимом, находящегося в положении прилегающего пиксела с межкадровым режимом, формируют опорный пиксел, который используют для внутрикадрового предсказания, учитывающего вариации значений пикселов, что повышает эффективность предсказания.
Краткое описание чертежей
На фиг. 1 показана функциональная схема конфигурации видеокодера в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 2 представлена обобщенная функциональная схема конфигурации модуля внутрикадрового предсказания в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 3 показана функциональная схема конфигурации видеодекодера в соответствии с примерным вариантом осуществления настоящего изобретения.
На фиг. 4 схематично показан способ предсказания по плоскости.
На фиг. 5 схематично показан еще один способ предсказания по плоскости.
На фиг. 6 схематично показано, что вначале предсказывают диагональный пиксел текущего блока предсказания.
На фиг. 7 схематично показан способ определения значений других пикселов блока предсказания на основе диагональных пикселов.
На фиг. 8 схематично показан способ предсказания значения пиксела с учетом значения опорного пиксела и вариации от опорного пиксела.
На фиг. 9 схематично показан способ, в котором вначале определяют диагональные пикселы блока предсказания, а затем значения остальных пикселов.
На фиг. 10 схематично показано, что вначале определяют диагональные пикселы, а пикселы, отличные от диагональных пикселов, определяют таким же способом, который использовался для определения диагональных пикселов.
На фиг. 11 схематично показан способ ограниченного внутрикадрового предсказания (CIP).
На фиг. 12 схематично показан еще один способ CIP.
На фиг. 13 схематично показано, что система в соответствии с настоящим изобретением выполняет CIP с учетом вариаций значений пикселов.
На фиг. 14 показана обобщенная схема функционирования кодера в системе в соответствии с настоящим изобретением.
На фиг. 15 показано направление предсказания в режиме внутрикадрового предсказания.
На фиг. 16 показана обобщенная схема функционирования декодера в системе в соответствии с настоящим изобретением.
Осуществление изобретения
Хотя с целью пояснения различных особенностей и функций видеокодера и видеодекодера элементы на чертежах показаны независимыми, данная конфигурация не означает, что каждый элемент представляет собой отдельный аппаратный компонент или программный компонент. Иными словами, элементы показаны независимыми, но для выполнения функций два или более элементов могут быть объединены в один элемент, либо один элемент может быть разделен на несколько элементов. Варианты осуществления изобретения, в которых некоторые элементы объединены в один составной элемент и/или элемент разделен на несколько самостоятельных элементов, входят в объем охраны настоящего изобретения без выхода за пределы сущности настоящего изобретения.
Далее со ссылкой на сопровождающие чертежи подробно описываются примерные варианты осуществления настоящего изобретения. Одинаковые обозначения позиций на чертежах относятся к аналогичным элементам, и повторное описание аналогичных элементов не приводится.
На фиг. 1 показана функциональная схема конфигурации видеокодера в соответствии с примерным вариантом осуществления настоящего изобретения. Как показано на фиг. 1, видеокодер содержит модуль 110 разбиения изображения, модуль 120 межкадрового предсказания, модуль 125 внутрикадрового предсказания, модуль 130 преобразования, модуль 135 квантования (квантизации), модуль 140 деквантования (деквантизации), модуль 145 обратного преобразования, фильтр 150 подавления блочности, запоминающее устройство (память) 160, модуль 165 переупорядочения и модуль 170 энтропийного кодирования.
Модуль 110 разбиения изображения выполнен с возможностью принимать текущее изображение и выполнять разбиение указанного изображения на по меньшей мере один элемент кодирования. Элементом кодирования (coding unit, CU, ЭК) называют элемент изображения, над которым видеокодер выполняет операцию кодирования. Элемент кодирования может быть рекурсивно разделен на более мелкие элементы кодирования до некоторой глубины в соответствии со структурой дерева квадрантов. Элемент кодирования с наибольшим размером называется наибольшим элементом кодирования (largest coding unit, LCU), а элемент кодирования с наименьшим размером называется наименьшим элементом кодирования (smallest coding unit, SCU). Элемент кодирования может иметь размер 8×8, 16×16, 32×32 или 64×64. Модуль 110 разбиения изображения может выполнять разбиение (деление) элемента кодирования с целью формирования элемента предсказания и элемента преобразования. Элемент предсказания может обозначаться как PU (prediction unit), а элемент преобразования может обозначаться как TU (transform unit).
В режиме межкадрового предсказания используется модуль 120 межкадрового предсказания, выполненный с возможностью выполнять оценку перемещения (motion estimation, ME) и выполнять компенсацию перемещения (motion compensation, МС). Модуль 120 межкадрового предсказания формирует блок предсказания на основании информации о по меньшей мере одном из предшествующих и последующих кадров текущего изображения; такое предсказание может называться межкадровым предсказанием.
В модуль 120 межкадрового предсказания передаются полученный разбиением целевой блок предсказания и по меньшей мере один опорный блок, хранимый в запоминающем устройстве (памяти) 160. Используя указанные целевой блок предсказания и опорный блок, модуль 120 межкадрового предсказания выполняет оценку перемещения. В результате оценки перемещения модуль 120 межкадрового предсказания формирует информацию о перемещении, содержащую вектор перемещения (motion vector, MV), индекс опорного блока и режим предсказания.
Кроме того, используя указанные информацию о перемещении и опорный блок, модуль 120 межкадрового предсказания выполняет компенсацию перемещения. При этом модуль 120 межкадрового предсказания формирует из опорного блока и выдает блок предсказания, соответствующий входному блоку.
Информация о перемещении подвергается энтропийному кодированию, в результате чего формируется сжатый битовый поток, который передается из видеокодера в видеодекодер.
В режиме внутрикадрового предсказания используется модуль 125 внутрикадрового предсказания, выполненный с возможностью формировать блок предсказания на основании информации о пикселах текущего изображения. Такое предсказание может называться внутрикадровым (intra-frame) предсказанием. В режиме внутрикадрового предсказания в модуль 125 внутрикадрового предсказания передаются целевой блок предсказания и восстановленный блок, полученный кодированием и последующим декодированием. При этом восстановленный блок представляет собой изображение, которое не прошло фильтр подавления блочности. Указанным восстановленным блоком может быть предыдущий блок предсказания.
На фиг. 2 представлена обобщенная функциональная схема конфигурации модуля внутрикадрового предсказания в соответствии с примерным вариантом осуществления настоящего изобретения. Как показано на фиг. 2, модуль внутрикадрового предсказания содержит модуль 210 выбора опорных пикселов, модуль 220 выбора режима внутрикадрового предсказания и модуль 230 формирования блока предсказания.
Модуль 210 выбора опорных пикселов формирует опорный пиксел, требующийся для внутрикадрового предсказания. Для формирования опорного пиксела используются пикселы в крайней правой вертикальной линии левого блока, прилегающего к целевому блоку предсказания, и пикселы в крайней нижней горизонтальной линии верхнего блока, прилегающего к целевому блоку предсказания. Например, если целевой блок предсказания имеет размер N, то в качестве опорных пикселов используются 2N пикселов в каждом из направлений влево и вверх. Опорный пиксел может использоваться как непосредственно, так и с применением фильтра адаптивного внутрикадрового сглаживания (adaptive intra smoothing, AIS). Если опорный пиксел подвергается фильтрации AIS, то сообщается информация о применении фильтрации AIS.
Модуль 220 выбора режима внутрикадрового предсказания принимает в качестве входных данных целевой блок предсказания и восстановленный блок. Модуль 220 выбора режима внутрикадрового предсказания, используя входное изображение, выбирает из числа режимов предсказания режим, минимизирующий объем информации, подлежащей кодированию, и сообщает информацию о режиме предсказания. При этом может использоваться заранее заданная функция стоимости или преобразование Адамара.
Модуль 230 формирования блока предсказания в качестве входных данных принимает информацию о режиме предсказания и опорный пиксел. Модуль 230 формирования блока предсказания выполняет пространственное предсказание и компенсирует значение пиксела целевого блока предсказания, используя информацию о режиме предсказания и значение опорного пиксела, и тем самым формирует блок предсказания.
Информация о режиме предсказания подвергается энтропийному кодированию, в результате которого формируется сжатый битовый поток совместно с видеоданными, и передается из видеокодера в видеодекодер. Видеодекодер использует указанную информацию о режиме предсказания при формировании внутрикадрового блока предсказания.
Как показано на фиг. 1, разностный блок, формируемый как разность между целевым блоком предсказания и блоком предсказания, сформированным в режиме межкадрового или внутрикадрового предсказания, передается в модуль 130 преобразования. Модуль 130 преобразования преобразует разностный блок в элемент преобразования с формированием коэффициента преобразования.
Блок преобразования с элементом преобразования имеет структуру дерева квадрантов, в которой заданы лишь максимальный и минимальный размер, и поэтому не ограничен заранее заданным размером. Каждый блок преобразования снабжен флагом, указывающим, разбит ли текущий блок на субблоки, и если значение флага равно 1, то текущий блок преобразования может быть разбит на четыре субблока. Для преобразования может использоваться дискретное косинусное преобразование (DCT).
Модуль 135 квантования (квантизации) выполнен с возможностью квантования значений, преобразованных модулем 130 преобразования. Коэффициент квантования может меняться соответственно конкретному блоку или значимости изображения. Прошедший квантование коэффициент преобразования может передаваться в модуль 165 переупорядочения и в модуль 140 деквантования.
Модуль 165 переупорядочения выполнен с возможностью с целью повышения эффективности энтропийного кодирования переупорядочивать путем сканирования двумерный (2D) блок коэффициентов преобразования в одномерный (1D) вектор коэффициентов преобразования. С целью повышения эффективности энтропийного кодирования модуль 165 переупорядочения может менять порядок сканирования на основании стохастической статистики.
Модуль 170 энтропийного кодирования выполняет энтропийное кодирование значений, выдаваемых из модуля 165 переупорядочения, и из полученных кодированных значений формируется сжатый битовый поток, который сохраняется либо передается через абстрактный уровень сети (network abstraction layer, NAL).
Модуль 140 деквантования (деквантизации) принимает и деквантует коэффициенты преобразования, прошедшие квантование в модуле 135 квантования, а модуль 145 обратного преобразования выполняет обратное преобразование указанных коэффициентов преобразования, в результате чего формируется восстановленный разностный блок. Указанный восстановленный разностный блок объединяется с блоком предсказания, сформированным модулем 120 межкадрового предсказания или модулем 125 внутрикадрового предсказания, в результате чего формируется восстановленный блок. Указанный восстановленный блок передается в модуль 125 внутрикадрового предсказания и в фильтр 150 подавления блочности.
Фильтр 150 подавления блочности фильтрует восстановленный блок с целью устранения искажений на границе между блоками, внесенных в операциях кодирования и декодирования, и передает результат, полученный в результате фильтрации, в адаптивный петлевой фильтр (adaptive loop filter, ALF) 155.
ALF 155 выполняет фильтрацию таким образом, чтобы минимизировать ошибку между целевым блоком предсказания и окончательным восстановленным блоком. AFL 155 выполняет фильтрацию на основании значения, получаемого в результате сравнения восстановленного блока, прошедшего фильтрацию в фильтре 150 подавления блочности, и текущим целевым блоком предсказания, и информация о коэффициентах фильтра ALF 155 вводится в заголовок сегмента и передается из кодера в декодер.
Запоминающее устройство (память) 160 может хранить окончательный восстановленный блок, полученный путем использования ALF 155, и указанный сохраненный (окончательный) восстановленный блок может передаваться в модуль 120 межкадрового предсказания для выполнения межкадрового предсказания.
На фиг. 3 показана функциональная схема конфигурации видеодекодера в соответствии с примерным вариантом осуществления настоящего изобретения. Как показано на фиг. 3, видеодекодер включает модуль 310 энтропийного декодирования, модуль 315 переупорядочения, модуль 320 деквантования, модуль 325 обратного преобразования, модуль 330 межкадрового предсказания, модуль 335 внутрикадрового предсказания, фильтр 340 подавления блочности, фильтр ALF 345 и запоминающее устройство (память) 350.
Модуль 310 энтропийного декодирования принимает сжатый битовый поток из абстрактного уровня сети (NAL). Модуль 310 энтропийного декодирования выполняет энтропийное декодирование принятого битового потока, а также, если указанный битовый поток содержит режим предсказания и информацию о векторе перемещения, выполняет энтропийное декодирование режима предсказания и информации о векторе перемещения. Прошедший энтропийное декодирование коэффициент преобразования или разностный сигнал передается в модуль 315 переупорядочения. Модуль 315 переупорядочения выполняет обратное сканирование коэффициента преобразования или разностного сигнала и формирует двумерный блок коэффициентов преобразования.
Модуль 320 деквантования принимает и деквантует прошедшие энтропийное декодирование и переупорядочение коэффициенты преобразования. Модуль 325 обратного преобразования выполняет обратное преобразование прошедших обратное квантование коэффициентов преобразования и формирует разностный блок.
Указанный разностный блок может объединяться с блоком предсказания, сформированным модулем 330 межкадрового предсказания или модулем 335 внутрикадрового предсказания, в результате чего формируется восстановленный блок. Восстановленный блок передается в модуль 335 внутрикадрового предсказания и в фильтр 340 подавления блочности. Модуль 330 межкадрового предсказания и модуль 335 внутрикадрового предсказания выполнены с возможностью выполнять операции, аналогичные операциям, выполняемым модулем 120 межкадрового предсказания и модулем 125 внутрикадрового предсказания видеокодера.
Фильтр 340 подавления блочности фильтрует восстановленный блок с целью устранения искажений на границе между блоками, внесенных в операциях кодирования и декодирования, и передает результат, полученный в результате фильтрации, в фильтр ALF 345. Фильтр ALF 345 выполняет фильтрацию таким образом, чтобы минимизировать ошибку между целевым блоком предсказания и окончательным восстановленным блоком. Запоминающее устройство (память) 350 может хранить окончательный восстановленный блок, полученный путем использования фильтра ALF 345, и указанный сохраненный (окончательный) восстановленный блок может передаваться в модуль 330 межкадрового предсказания для выполнения межкадрового предсказания.
В то же время для дополнительного повышения эффективности кодирования на участках с незначительными изменениями текстуры, например, на монотонном фоне неба или моря, используется внутрикадровое предсказание по плоскости.
Внутрикадровое предсказание делится на предсказание по направлению, предсказание по постоянной составляющей (DC) и предсказание по плоскости, хотя предсказание по плоскости может рассматриваться как расширение способа предсказания по постоянной составляющей. Тем не менее, предсказание по плоскости может охватывать способы предсказания, которые не относятся к предсказанию по постоянной составляющей. Например, предсказание по постоянной составляющей предпочтительно для однородных текстур, а предсказание по плоскости более эффективно для предсказания в блоках, где в распределении значений пикселов имеется выделенное направление.
Настоящее раскрытие описывает способ повышения эффективности предсказания по плоскости в отношении анизотропных текстур (текстур, имеющих выделенное направление), использующий вариации в значениях пикселов опорных пикселов соседних блоков.
На фиг. 4 схематично показан способ предсказания по плоскости.
Как показано на фиг. 4(A), сначала предсказывают значение пиксела 425, расположенного в нижнем правом углу текущего блока. Значение пиксела 425 в нижнем правом углу текущего блока может быть предсказано по постоянной составляющей.
Как показано на фиг. 4(B), предсказывают значения пикселов, расположенных на правой границе текущего блока, и значения пикселов, расположенных на нижней границе текущего блока. Например, значение пиксела 445, расположенного на правой границе текущего блока, может быть предсказано путем линейной интерполяции значения пиксела 450 верхнего блока и предсказанного по постоянной составляющей значения пиксела 425. Значение пиксела 435, расположенного на нижней границе текущего блока, может быть предсказано путем линейной интерполяции значения пиксела 430 левого блока и предсказанного по постоянной составляющей значения пиксела 425.
Как показано на фиг. 4(C), путем билинейной интерполяции с использованием значений пикселов верхнего и левого блоков и уже предсказанных значений пикселов текущего блока могут быть предсказаны значения остальных пикселов, отличных от пиксела в нижнем правом углу, пикселов на правой границе и пикселов на нижней границе в текущем блоке. Например, значение пиксела 475 в текущем блоке может быть предсказано путем интерполяции с использованием значения пиксела 460 верхнего блока, значения пиксела 455 левого блока, уже предсказанного значения пиксела 445, расположенного на правой границе текущего блока, и уже предсказанного значения пиксела 435, расположенного на нижней границе текущего блока.
Как показано на фиг. 4(D), может быть выполнено уточнение образцов предсказаний (предсказанных образцов), предсказанных посредством вышеописанной операции. Например, значение X пиксела 485 в текущем блоке может быть уточнено с использованием значения Т верхнего образца 480 и значения L левого образца 490. Конкретно, уточненное значение X′ для значения X может быть получено с использованием формулы X′={(X<<+1)+L+T+1}>>2. Здесь выражение x<<y означает арифметический сдвиг целочисленного представления как дополнения до двух x влево на y двоичных разрядов, а выражение x>>y означает арифметический сдвиг целочисленного представления как дополнения до двух x вправо на y двоичных разрядов.
На фиг. 5 схематично показан еще один способ предсказания по плоскости.
В способе на фиг. 5 сначала предсказывают значения пикселов, расположенных на диагонали текущего блока, а затем с использованием предсказанных значений пикселов предсказывают значения остальных пикселов текущего блока. Для удобства описания пикселы, расположенные на диагонали, проходящей от верхнего левого пиксела до нижнего правого пиксела, из числа пикселов, образующих блок, далее называются диагональными пикселами.
Как показано на фиг. 5(A), значения диагональных пикселов 540 текущего блока 510 предсказывают с использованием значения пиксела 520 верхнего опорного блока и значения пиксела 530 левого опорного блока. Например, значение диагонального пиксела P в текущем блоке может быть получено с использованием значения пиксела AboveRef из числа пикселов верхнего блока, расположенного на границе между текущим блоком и верхним блоком, и значения пиксела LeftRef из числа пикселов левого блока, расположенного на границе между текущим блоком и левым блоком по формуле P=(LeftRef+AboveRef+1)>>1.
Как показано на фиг. 5(B), значения пикселов 510 в текущем блоке, отличных от диагональных пикселов 540, могут быть получены путем линейной интерполяции с использованием значений пикселов, полученных в соответствии с фиг. 5(А), и значений пикселов, расположенных на границах верхнего и левого блоков. Например, пиксел P1 может быть предсказан с использованием значения пиксела AboveRef из верхнего блока и предсказанного значения диагонального пиксела P по формуле P1=(AboveRef*d2+P*d1)/(d1+d2). Пиксел P2 может быть предсказан по формуле Р2=(LeftRef*d3+P*d4)/(d3+d4).
Хотя способы предсказания по плоскости, показанные на фиг. 4 и 5, эффективны для однородных текстур без анизотропии (без выделенного направления), данные способы могут быть менее эффективны для предсказания в случае анизотропных текстур, например, если значения пикселов яркостного канала (luma) в одном направлении, например, в горизонтальном направлении, значительно изменяются, но мало изменяются в другом направлении, например, в вертикальном направлении.
Поэтому может существовать потребность в способе внутрикадрового предсказания по плоскости, учитывающего изменения значений пикселов. В способе внутрикадрового предсказания по плоскости в соответствии с настоящим изобретением выбирают либо предсказывают значение базового пиксела и применяют вариации в значениях пикселов между базовым пикселом и целевым пикселом к значению базового пиксела, и таким образом предсказывают значение целевого пиксела.
Далее со ссылкой на чертежи описываются примеры настоящего изобретения.
Пример 1
На фиг. 6 схематично показано, что вначале предсказывают диагональный пиксел Pii текущего блока предсказания. Хотя на фиг. 6 для удобства описания показан блок предсказания размером 8×8, настоящее изобретение не ограничено указанным размером и может быть применено к блоку предсказания размера N×N.
В примере 1, показанном на фиг. 6, вначале предсказывают диагональные пикселы текущего блока предсказания, используя опорный пиксел (Ri0 и/или R0j, 0≤i, j≤8 в случае блока предсказания размером 8×8) опорного блока, прилегающего к текущему блоку предсказания.
После получения диагональных пикселов Pii значения других пикселов в блоке предсказания могут быть определены путем интерполяции или экстраполяции с использованием зна