СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА
VIDEO DECODING METHOD

Настоящая заявка выделена из заявки №2013152690 на выдачу патента РФ на изобретение, поданной 14.05.2012, с испрашиванием приоритета по дате подачи первых заявок KR 10-2011-0048130 и KR 10-2011-0065210, поданных в патентное ведомство Кореи 20.05.2011 и 30.06.2011.
Область техники, к которой относится изобретение
Настоящее изобретение относится к технологиям обработки видеоинформации, более конкретно, к способу декодирования видеосигнала.
Уровень техники
В последнее время в различных отраслях техники выросла потребность в использовании изображений с большим разрешением и высоким качеством. По мере повышения разрешения и качества изображений возрастает и объем информации, содержащейся в изображении. Соответственно, при передаче видеоданных с использованием, например, существующих в настоящее время проводных и беспроводных широкополосных линий связи или при хранении видеоданных в типовых запоминающих устройствах возрастают затраты на передачу и хранение видеоданных.
Для повышения эффективности передачи, хранения и воспроизведения изображений высокого разрешения с исключительным качеством могут быть использованы высокоэффективные способы сжатия видеоданных.
Раскрытие изобретения
Целью аспекта настоящего изобретения является предложение способа эффективного декодирования видеосигнала.
В варианте осуществления настоящего изобретения предлагается способ декодирования видеосигнала, включающий: определение остаточного пиксела, относящегося к текущему блоку из битового потока; выполнение внутрикадрового предсказания текущего блока на основании прилегающих к текущему блоку пикселов; и определение восстановленного пиксела текущего блока на основании остаточного пиксела и предсказываемого пиксела, определенного в результате внутрикадрового предсказания, при этом предсказываемый пиксел текущего блока получают, используя прилегающий сверху к текущему блоку пиксел и вариацию, относящуюся к прилегающим пикселам, причем вариация, относящаяся к прилегающим пикселам, отражает значение разности между верхним левым прилегающим к текущему блоку пикселом и прилегающим слева к текущему блоку пикселом.
Прилегающий слева пиксел может иметь координату по оси x, совпадающую с координатой предсказываемого пиксела, а прилегающий сверху пиксел может иметь координату по оси y, совпадающую с координатой предсказываемого пиксела.
Предсказываемый образец может быть включен в крайний левый столбец текущего блока.
Технический результат
Как указано выше, в соответствии с настоящим изобретением возможно осуществление эффективного способа декодирования видеосигнала.
Краткое описание чертежей
На фиг. 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 может быть получено с использованием формулы Х'={(Х<<1)+L+Т+1}>>2. Здесь выражение x<<y означает арифметический сдвиг целочисленного представления как дополнения до двух x влево на y двоичных разрядов, а выражение x>>y означает арифметический сдвиг целочисленного представления как дополнения до двух x вправо на y двоичных разрядов.
На фиг. 5 схематично показан еще один способ предсказания по плоскости.
В способе на фиг. 5 сначала предсказывают значения пикселов, расположенных на диагонали текущего блока, а затем с использованием предсказанных значений пикселов предсказывают значения остальных пикселов текущего блока. Для удобства описания пикселы, расположенные на диагонали, проходящей от верхнего левого пиксела до нижнего правого пиксела, из числа пикселов, образующих блок, далее называются диагональными пикселами.
Как показано на фиг. 5(A), значения диагональных пикселов 540 текущего блока 510 предсказывают с использованием значения пиксела 520 верхнего опорного блока и значения пиксела 530 левого опорного блока. Например, значение диагонального пиксела Р в текущем блоке может быть получено с использованием значения пиксела AboveRef из числа пикселов верхнего блока, расположенного на границе между текущим блоком и верхним блоком, и значения пиксела LeftRef из числа пикселов левого блока, расположенного на границе между текущим блоком и левым блоком по формуле P=(LeftRef+AboveRef+1)>>1.
Как показано на фиг. 5(B), значения пикселов 510 в текущем блоке, отличных от диагональных пикселов 540, могут быть получены путем линейной интерполяции с использованием значений пикселов, полученных в соответствии с фиг. 5(А), и значений пикселов, расположенных на границах верхнего и левого блоков. Например, пиксел Р1 может быть предсказан с использованием значения пиксела AboveRef из верхнего блока и предсказанного значения диагонального пиксела Р по формуле Р1=(AboveRef*d2+P*d1)/(d1+d2). Пиксел Р2 может быть предсказан по формуле Р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 значения других пикселов в блоке предсказания могут быть определены путем интерполяции или экстраполяции с использованием значений пикселов (Rij) прилегающего опорного блока и значений Pii.
На фиг. 7 схематично показан способ определения значений других пикселов блока предсказания по значениям диагональных пикселов.
В настоящем изобретении предсказание по плоскости выполняется с учетом изменения значений пикселов. Например, как показано на фиг. 7(A), если значения опорных пикселов возрастают как в направлении x (вправо), так и в направлении y (вниз), то более вероятно, что значения пикселов в блоке предсказания увеличиваются в направлении вниз вправо. В этом случае первым может предсказываться значение пиксела Р88 в нижнем правом углу блока предсказания, а затем на основании значения пиксела Р88 могут предсказываться другие пикселы.
i,j
i,j
Для предсказания значения Р88 можно в качестве значения базового пиксела взять значение опорного пиксела R00 в верхнем левом углу текущего блока предсказания и применить к значению базового пиксела вариацию от указанного базового пиксела к целевому пикселу Р88 предсказания в блоке предсказания. Например, значение целевого пиксела Р88 может быть получено по формуле 1. Для удобства изложения значения Rij и Pij, показанные на чертежах и в описании, в формулах представлены как R и P.
[формула 1]
.
После нахождения Р88 значения других диагональных пикселов Pii могут быть получены по формуле 2.
[формула 2]
.
Поскольку настоящий пример иллюстрирует случай с размером блока предсказания 8×8, i может принимать значения 1, 2, …, 8. Хотя для удобства описания в примере 1 используется блок предсказания размером 8×8, в блоке предсказания размером N×N значение Pii может быть получено по формуле Pii=R00+(i/N)P88.
Как показано на фиг. 7(B), даже если значение опорного пиксела уменьшается как в направлении x (вправо), так и в направлении y (вниз), значение пиксела Р88 в нижнем правом углу блока предсказания может быть определено с учетом вариаций уменьшающихся значений пикселов, а значения остальных пикселов могут быть предсказаны на основании значения пиксела Р88. В этом случае значение Р88 может быть определено по формуле 3.
[формула 3]
.
После нахождения значения Р88 значения других диагональных пикселов в блоке предсказания могут быть получены по формуле 4.
[формула 4]
.
Здесь i может принимать значения 1, 2, …, 8.
Как показано на фиг. 7(C), если значения опорных пикселов возрастают в направлении вверх вправо, то, в отличие от случаев на фиг. 7(A) и 7(B), вначале на основании вариаций значений пикселов определяют диагональные пикселы, расположенные в блоке предсказания от нижнего левого угла до верхнего правого угла. Например, определяют значение пиксела Р81, расположенного в нижнем левом углу блока предсказания, а значения остальных пикселов могут быть предсказаны на основании значения пиксела Р81. В этом случае значение Р81 может быть определено по формуле 5.
[формула 5]
.
Когда значение Р81 получено, остальные диагональные пикселы (от левого нижнего до верхнего правого) в указанном блоке предсказания могут быть определены по формуле 6.
[формула 6]
.
Здесь i может принимать значения 1, 2, …, 8.
Кроме того, как показано на фиг. 7(D), когда значения опорного пиксела возрастают в направлении вниз влево, то вначале на основании вариаций значений пикселов определяют диагональные пикселы, расположенные в блоке предсказания от нижнего левого угла до верхнего правого угла. Например, определяют значение пиксела Р81, расположенного в нижнем левом углу блока предсказания, а значения остальных пикселов могут быть предсказаны на основании значения пиксела Р81. В этом случае значение Р81 может быть определено по формуле 7.
[формула 7]
.
Когда значение Р81 определено, остальные диагональные пикселы (от левого нижнего до верхнего правого) в блоке предсказания могут быть определены по формуле 8.
[формула 8]
.
Здесь i может принимать значения 1, 2, …, 8.
С учетом вычислительной нагрузки, связанной с расчетом квадратного корня, при определении диагональных пикселов может быть использована приближенная формула 9.
[формула 9]
.
Затем значения других пикселов в указанном блоке предсказания могут быть определены путем интерполяции или экстраполяции с использованием предсказанных значений диагональных пикселов, значений верхних опорных пикселов и значений левых опорных пикселов.
Пикселы Pij в блоке предсказания на фиг. 7(A) и 7(B) могут быть определены путем интерполяции с использованием диагональных пикселов Pii и опорных пикселов R прилегающего блока. Здесь может использоваться интерполяция по формуле 10.
[формула 10]
или .
1
2
Здесь d представляет собой расстояние от пиксела R0j или Rj0 прилегающего блока, используемого для интерполяции, до целевого пиксела Pij предсказания, a d представляет собой расстояние от диагонального пиксела Pii, используемого для интерполяции, до целевого пиксела Pij предсказания.
Значение пиксела Pi на фиг. 7(C) и 7(D), получаемое интерполяцией по пикселам указанного блока предсказания, может быть определено по формуле 11.
[формула 11]
или .
Здесь i+j<9, a d1 представляет собой расстояние от пиксела R0j или Rj0 прилегающего блока, используемого для интерполяции, до целевого пиксела Pij предсказания, a d2 представляет собой расстояние от диагонального пиксела Pii, используемого для интерполяции, до целевого пиксела Pij предсказания. Хотя здесь при определении пикселов Pij блока предсказания для интерполяции использована формула 11, без ограничения настоящего изобретения могут быть использованы и иные способы интерполяции.
Значение пиксела Ре, показанного на фиг. 7(C) и 7(D), определяют экстраполяцией по пикселам блока предсказания. Здесь для определения пиксела в блоке предсказания может использоваться экстраполяция по формуле 12.
[формула 12]
или .
1
2
В этом случае i+j>9, а Р представляет собой значение диагонального пиксела, используемого для экстраполяции. Как указано выше, d и d представляют собой расстояние от опорного пиксела до целевого пиксела Pij предсказания и расстояние от пиксела Pii до целевого пиксела Pij предсказания, соответственно.
Пример 2
На фиг. 8 схематично показан еще один способ предсказания значения пиксела с учетом значения базового пиксела и вариации от базового пиксела. Хотя на фиг. 8 для удобства описания показан блок предсказания размером 8×8, настоящее изобретение не ограничено указанным размером и может быть применено к блоку предсказания размера N×N.
На фиг. 8 показан расположенный в верхнем левом углу блока предсказания опорный пиксел Р00, принятый в качестве базового пиксела. В примере 2 целевой пиксел Pij предсказания определяют, применяя к значению базового пиксела вертикальную и горизонтальную вариации от опорного пиксела.
Например, целевой пиксел Pij определяют по формуле 13.
[формула 13]
Pij=R00+Δx+Δy.
Здесь Δy=Ri0-R00, Δx=R0j-R00 и при размере блока предсказания 8×8 1≤i, j≤8.
Например, пиксел Р33 на фиг. 8 вычисляется в соответствии с формулой 13 как P33=R00+Δx+Δy. Здесь Δx и Δy представляют собой вариации значений в направлении x и в направлении y от значения базового пиксела R00 до Р00.
В то же время пиксел Р76 на фиг. 8 определяется в соответствии с формулой 13 как P76=R00+Δx'+Δy'. Здесь Δx' и Δy' представляют собой вариации значений пикселов в направлении x и в направлении y от базового пиксела R00 до Р76.
Пример 3
На фиг. 9 схематично показан еще один способ, в котором вначале определяют диагональные пикселы блока предсказания, а затем значения остальных пикселов.
На фиг. 5 было показано, что диагональные пикселы определяются на основании среднего значения двух пикселов из горизонтального и вертикального направлений в прилегающем блоке у текущего блока предсказания; но в примере 3, представленном на фиг. 9, диагональные пикселы определяются с учетом вариаций.
Как показано на фиг. 9(A), диагональные пикселы блока предсказания предсказывают с использованием значений пикселов прилегающих блоков, расположенных на верхней и/или левой границе блока предсказания. Например, диагональные пикселы Pii предсказывают по формуле 14.
[формула 14]
i,j
0,i
i,i
i,0
P=R+Δy или P=R+Δx.
Например, как показано на фиг. 9(A), в соответствии с формулой 14 значение Р33 может быть предсказано как P33=R03+Δy или P33=R30+Δx. Δx и Δy представляют собой вариации значений пиксела в направлении x от базового пиксела R30 до Р33 и в направлении y от базового пиксела R03 до Р33, соответственно.
Как показано на фиг. 9(B), остальные пикселы Pij текущего блока, отличные от диагональных пикселов, могут быть предсказаны путем линейной интерполяции с использованием предсказанных значений диагональных пикселов и опорных пикселов R00, R10-R80 и R01-R08 прилегающих блоков на верхней и левой границах текущего блока.
Например, значение пиксела Pij может быть предсказано по формуле 15.
[формула 15]
или .
Здесь d1 представляет собой расстояние от пиксела R0j или Ri0 прилегающих блоков, используемых для интерполяции, до целевого пиксела Pij предсказания, a d2 представляет собой расстояние от диагонального пиксела Pii, используемого для интерполяции, до целевого пиксела Pij предсказания.
Пример 4
На фиг. 10 схематично показано, что вначале определяют диагональные пикселы, а пикселы, отличные от диагональных пикселов, определяют таким же способом, который использовался для определения диагональных пикселов.
Диагональные пикселы на фиг. 10 могут быть предсказаны таким же образом, как показано на фиг. 9. Таким образом, как показано на фиг. 10(A), диагональный пиксел Р33 текущего блока предсказания может быть предсказан по формуле P33=R03+Δy или P33=R30+Δx.
Затем остальные пикселы Pij текущего блока, отличные от диагональных пикселов, могут быть предсказаны путем линейной интерполяции с использованием предсказанных значений диагональных пикселов и опорных пикселов R00, R10-R80 и R01-R08 прилегающих блоков на верхней и левой границах текущего блока.
При этом может быть использован такой же способ, который использовался для определения диагональных пикселов. Например, пиксел Pij может быть предсказан по формуле 16.
[формула 16]
Pij=R0j+Δy или Pij=Ri0+Δx.
Здесь Δy=Ri0-R00, Δx=R0j-R00 и при размере блока предсказания 8×8 1≤i, j≤8.
Например, как показано на фиг. 10, значение Р37 в соответствии с формулой 16 может быть определено как P37=R07+Δy или P37=R70+Δx.
С течением времени небольшие ошибки, возникающие вследствие использования кодером и декодером целочисленной арифметики, накапливаются, что может привести к появлению значительной ошибки. Кроме того, если в блоке, прилегающем к текущему блоку, при передаче происходит сбой, то возникает рассогласование между кодером и декодером или распространение ошибки. Например, при возникновении ошибки в прилегающем блоке изменяются значения пикселов на границе прилегающего блока. Когда при этом декодер использует пиксел с измененным значением в качестве опорного пиксела, ошибка распространяется и на текущий блок. Таким образом, необходимо средство предотвращения указанного недостатка, например, средство кодирования с ограниченным внутрикадровым предсказанием (constrained intra prediction, CIP).
На фиг. 11 схематично показан способ CIP.
В способе, иллюстрируемом фиг. 11, при наличии хотя бы одного блока с режимом межкадрового предсказания, прилегающего к текущему макроблоку Т, используется только режим внутрикадрового предсказания по постоянной составляющей, а значение предсказания постоянной составляющей фиксируется равным 128.
При этом значение пиксела из блока, предсказанного в режиме межкадрового предсказания, из числа прилегающих блоков не используется в качестве значения опорного пиксела. Таким образом, в данном способе принудительно используется режим предсказания по постоянной составляющей, исключающий даже имеющуюся в наличии информацию, например, прилегающие пикселы с режимом внутрикадрового предсказания.
На фиг. 12 схематично показан еще один способ CIP.
В способе, иллюстрируемом фиг. 12, в качестве значения опорного пиксела используют значение пиксела из блока, предсказанное в режиме внутрикадрового предсказания, из числа прилегающих блоков, а значение пиксела блока, предсказанное в режиме межкадрового предсказания, определяют, используя прилегающие блоки с режимом внутрикадрового предсказания. Таким образом, может использоваться не только режим по постоянной составляющей, но и другие режимы внутрикадрового предсказания.
Как показано на фиг. 12, в блоках, прилегающих к текущему блоку Т предсказания, значения пикселов 1210, 1220 и 1230 из блоков А, В, D, E, F, Н и I, предсказываемых в режиме межкадрового предсказания, определяют, используя пикселы из блоков, предсказанные в режиме внутрикадрового предсказания.
T
Например, если пикселы, предсказанные в режиме внутрикадрового предсказания, имеются как с правой, так и с левой стороны целевого образца межкадрового предсказания, то значение пиксела P блока, предсказываемое в режиме межкадрового предсказания, определяют по формуле 17.
[формула 17]
T
LB
RA
P=(P+P+1)>>1.
T
LB
RA
T
Здесь, P представляет собой целевой образец с внутрикадровым предсказанием, P представляет собой левый или нижний образец с внутрикадровым предсказанием, a P представляет собой правый или верхний образец с внутрикадровым предсказанием. Если образец с внутрикадровым предсказанием имеется только с одной стороны целевого образца с межкадровым предсказанием, то значение пиксела P блока, предсказываемое в режиме межкадрового предсказания, определяют по формуле 18.
[формула 18]
Т
RA
T
LB
Р=P или P=P.
Способ, иллюстрируемый фиг. 12, использует режим внутрикадрового предсказания более корректно, чем способ, иллюстрируемый фиг. 11, но в качестве значения пиксела прилегающего блока, предсказанное в режиме межкадрового предсказания, использует среднее значение имеющихся значений пикселов с режимом внутрикадрового предсказания или само имеющееся значение пиксела с режимом внутрикадрового предсказания, не учитывая вариации значений пикселов.
Поэтому необходим способ CIP, учитывающий вариации значений пикселов.
Пример 5
На фиг. 13 схематично показано, что система в соответствии с настоящим изобретением осуществляет способ CIP с учетом вариаций значений пикселов.
T
Способ, иллюстрируемый фиг. 13, используя вариации значений обоих пикселов, используемых для интерполяции, дает более точное предсказание значения целевого пиксела, чем способ, иллюстрируемый фиг. 12, где в качестве определяемого значения пиксела используется среднее значений данных пикселов. Например, целевой пиксел P из числа значений пикселов 1310, 1320 и 1330, подлежащих определению, может быть определен по формуле 19.
[формула 19]
.
T
LB
RA
LB
T
RA
T
Здесь Р представляет собой целевой образец предсказания, P представляет собой левый или нижний образец с внутрикадровым предсказанием, а P представляет собой правый или верхний образец с внутрикадровым предсказанием. Как показано на фиг. 13, d1 представляет собой расстояние от P до P, a d2 представляет собой расстояние от P до P.
T
LB
1
RA
1
1
1
T
LB
2
RA
2
2
2
Например, как показано на фиг. 13, значение P1 может быть определено как (P1*d2+P1*d1)/(d1+d2), а значение P2 может быть определено как (P2*d2+P2*d1)/(d1+d2).
T
T
LB
T
RA
Если образец с внутрикадровым предсказанием, подлежащий использованию для интерполяции, имеется только справа или слева либо только сверху или снизу целевого образца предсказания P, то P=P или P=P. При отсутствии блока, предсказанного в режиме внутрикадрового предсказания, прилегающего к целевому блоку Т предсказания, для использования в качестве значения опорного пиксела может быть скопировано значение пиксела, находящегося в таком же положении, как в предыдущем изображении.
LB
RA
T
RA
LB
В качестве значений P и P может использоваться среднее значение пикселов с внутрикадровым режимом, расположенных на границе. Например, на фиг. 13, когда P находится в нижней строке 1320 пикселов блока Е или блока D, в качестве P может использоваться среднее значение четырех крайних нижних пикселов блока C с режимом внутрикадрового предсказания, а в качестве P может использоваться среднее значение восьми крайних правых пикселов блока G. В этом случае опорной точкой d1 является верхний пиксел из числа крайних правых пикселов блока G, а опорной точкой 62 является крайний левый пиксел из числа крайних нижних пикселов блока С.
Линейная интерполяция дополнительно дает на пикселах границы сглаживающий эффект, вследствие чего адаптивное внутрикадровое сглаживание (AIS) может быть выключено. При этом в режиме предсказания по постоянной составляющей фильтрация для пикселов на границе блока предсказания может быть включена.
На фиг. 14 показана обобщенная схема функционирования кодера в системе в соответствии с настоящим изобретением.
Как показано на фиг. 14, вводится новый элемент предсказания текущего изображения (S1410). Указанный элемент предсказания (ЭП) может быть базовым элементом для внутрикадрового предсказания и для межкадрового предсказания. Элемент предсказания может быть блоком, меньшим, чем элемент кодирования (ЭК), и может иметь прямоугольную форму, а не обязательно квадратную форму. Внутрикадровое предсказание для элемента предсказания выполняется, как правило, в блоке 2N×2N или N×N.
Затем определяют опорный пиксел, требующийся для внутрикадрового предсказания (S1420). Для формирования опорного пиксела используются пикселы в крайней справа вертикальной линии левого блока, прилегающего к текущему блоку предсказания, и пикселы в крайней нижней горизонтальной линии верхнего блока, прилегающего к текущему блоку предсказания. Если блок предсказания имеет размер N, то всего в качестве опорных пикселов используется 2N пикселов левого и верхнего блоков.
При этом пикселы в крайней правой вертикальной линии левого блока, прилегающего к текущему блоку предсказания, и пикселы в крайнем нижнем горизонтальной строке верхнего блока, прилегающего к текущему блоку предсказания, могут использоваться как опорные пиксели в неизменном виде или после сглаживания.
Если используется сглаживание, в декодер дополнительно может передаваться информация о сглаживании. Например, если используется сглаживание, то может применяться фильтр AIS, в котором могут быть заданы коэффициенты фильтра [1, 2, 1] или [1, 1, 4, 1, 1]. Последний из двух указанных коэффициентов фильтра может обеспечивать более высокую резкость границы. Как указано выше, в декодер может передаваться информация, содержащая сведения о факте использования фильтра, о типе использованного фильтра и о коэффициентах фильтра.
Если для формирования опорных пикселов используется CIP, то значение флага CIP_flag задают равным 1. При использовании CIP в качестве опорных пикселов используют только пикселы прилегающих блоков, кодированных в режиме внутрикадрового предсказания, а пикселы прилегающих блоков, кодированных в режиме межкадрового предсказания, в качестве опорных пикселов не используют. В этом случае, как показано на фиг. 13, пикселы (целевые образцы предсказания), соответствующие положениям пикселов прилегающих блоков, кодированных в режиме межкадрового предсказания, формируются в качестве опорных пикселов путем интерполяции прилегающих опорных пикселов, кодированных в режиме внутрикадрового предсказания, либо прилегающие опорные пикселы, кодированные в режиме внутрикадрового предсказания, копируют и используют в качестве опорных пикселов, соответствующих положениям пикселов прилегающих блоков, кодированных в режиме межкадрового предсказания.
T
T
LB
RA
Например, при наличии пикселов, предсказанных в режиме внутрикадрового предсказания, на правой и на левой сторонах и на верхней и на нижней сторонах целевого образца с межкадровым предсказанием целевой образец P предсказания, расположенный в блоке, предсказываемом в режиме межкадрового предсказания, может быть определен по формуле 11. Далее, если образец с внутрикадровым предсказанием имеется только на какой-либо одной из сторон целевого образца предсказания, то целевой образец P предсказания, расположенный в местоположении блока, предсказанного в режиме межкадрового предсказания, может быть определен по формуле 12. В формуле 11 и/или в формуле 12 в качестве значений P и P могут использоваться средние значения соответствующих пикселов режима внутрикадрового предсказания. При отсутствии прилегающего блока, предсказанного в режиме внутрикадрового предсказания, для использования в качестве значения опорного пиксела может быть скопировано значение пиксела, находящегося в таком же положении, как в предыдущем изображении.
Поскольку линейная интерполяция дает сглаживающий эффект на пикселах границы, при использовании CIP может быть полезно отключение AIS.
Затем определяют режим внутрикадрового предсказания (S1430).
Режим внутрикадрового предсказания определяют в соответствии с элементом предсказания (PU), для которого, исходя из баланса между требуемой скоростью битового потока и величиной искажений выбирают оптимальный режим предсказания.
Например, если включена оптимизация соотношения между скоростью и искажениями (rate-distortion optimization, RDO), то может быть выбран режим, в котором минимизируется функция стоимости J=R+rD (R представляет собой скорость битового потока (битрейт), D представляет собой величину искажения, а r представляет собой переменную Лагранжа). В данном случает требуется местное декодирование с высокой точностью, в результате чего может возрасти сложность операции.
При выключенной оптимизации RDO может быть выбран режим предсказания, в котором путем применения преобразования Адамара к ошибке предсказания минимизируют средний модуль разности (mean absolute difference, MAD).
В таблице 1 представлено количество режимов предсказания в зависимости от размера блока элемента предсказания для яркостной компоненты (luma).
На фиг. 15 показаны направления предсказания в режиме внутрикадрового предсказания. Согласно фиг. 15, режим номер 0 представляет собой вертикальный режим, в котором предсказание выполняется в вертикальном направлении с использованием значения пиксела прилегающего блока. Режим номер 1 представляет собой горизонтальный режим, в котором предсказание выполняется в горизонтальном направлении с использованием значения пиксела прилегающего блока. Режим номер 2 представляет собой режим предсказания по постоянной составляющей, в котором блок предсказания формируется с использованием среднего значения пикселов текущего целевого блока предсказания, например, значений яркости в случае пикселов яркостного канала и значений цветоразностной компоненты в случае пикселов цветоразностного канала. В других режимах, показанных на фиг. 15, предсказание выполняется с использованием значений пикселов прилегающих блоков в зависимости от соответствующих углов.
В режиме предсказания по постоянной составляющей для повышения эффективности предсказания верхние и крайние левые из предсказанных пикселов могут отфильтровываться. При этом интенсивность фильтрации может повышаться при уменьшении размера блока. Остальные внутренние пикселы в текущем блоке предсказания могут не подвергаться фильтрации.
Вместо режима предсказания по постоянной составляющей может использоваться режим предсказания по плоскости, дающий возможность учесть анизотропию. В режиме предсказания по плоскости значение флага Planar_flag, содержащегося в информации, передаваемой из кодера в декодер, задают равным 1. При использовании режима предсказания по плоскости не используется режим предсказания по постоянной составляющей. Таким образом, когда вместо режима предсказания по плоскости используется режим предсказания по постоянной составляющей, значение флага Planar_flag задают равным 0.
При использовании режима предсказания по плоскости могут использоваться способы предсказания, описанные выше со ссылкой на фиг. 6-10. При этом декодер может выполнять вышеописанную операцию RDO с целью выбора оптимального способа. При необходимости могут совместно использоваться два или более вышеприведенных способа. Кодер передает в декодер информацию о способе, который выбран кодером из множества способов предсказания в режиме предсказания по плоскости, показанных на фиг. 6-10.
Что касается опорного пиксела цветоразностной компоненты (chroma), то в режиме номер 4, который называется режимом DM, может в неизменном виде использоваться унифицированное направленное внутрикадровое предсказание (unified directional intra, UDI) яркостного блока. В режиме номер 0, называемом режимом линейной модели (linear model, LM), блок предсказания формируется с использованием линейной связи между яркостной и цветоразностной компонентами. Режим номер 1 представляет собой вертикальный режим, в котором предсказание выполняется в вертикальном направлении и соответствует режиму номер 0 яркостного канала. Режим номер 2 представляет собой горизонтальный режим, в котором предсказание выполняется в горизонтальном направлении, и соответствует режиму номер 1 яркостного канала. Режим номер 3 представляет собой режим предсказания по постоянной составляющей, в котором блок предсказания формируется с использованием среднего значения цветоразностностной компоненты текущего целевого блока предсказания, и соответствует режиму номер 2 яркостного канала.
Как показано на фиг. 14, далее кодер кодирует режим предсказания текущего блока (S1440). Кодер кодирует режим предсказания для блока яркостной компоненты и блока цветоразностной компоненты текущего блока предсказания. При этом, поскольку режим предсказания текущего целевого блока предсказания в значительной мере коррелирует с режимом предсказания прилегающего блока, текущий целевой блок предсказания кодируют с использованием режима предсказания прилегающего блока, в результате чего уменьшается количество битов. Затем определяют наиболее вероятный режим (most probable mode, МРМ) текущего целевого блока предсказания, и, соответственно, режим предсказания текущего целевого блока предсказания может быть кодирован с использованием указанного наиболее вероятного режима.
Затем определяют значение пикселов текущего блока предсказания и попиксельно разностное значение для значений пикселов указанного блока предсказания, чем формируют остаточный сигнал (S1450).
Указанный сформированный остаточный сигнал преобразуют и кодируют (S1460). Остаточный сигнал может кодироваться с использованием ядра преобразования, в котором ядро преобразования кодирования имеет размер 2×2, 4×4, 8×8, 16×16, 32×32 или 64×64.
Для указанного преобразования формируют коэффициент С преобразования, который может представлять собой двумерный блок коэффициентов преобразования. Например, для блока размером n×n коэффициент преобразования может быть вычислен по формуле 20.
[формула 20]
T
С(n, n)=Т(n, n)×В(n, n)×Т(n, n).
Здесь С(n, n) представляет собой матрицу размером n*n коэффициентов преобразования, Т(n, n) представляет собой матрицу размером n*n ядра преобразования, а В(n, n) представляет собой матрицу размером n*n для целевого блока предсказания.
Если m=hN, n=2N и h=1/2, то коэффициент С преобразования для разностного блока размером m*n или n*m может быть получен двумя способами. Сначала разностный блок размером m*n или n*m делят на четыре блока размером m*m и к каждому блоку применяют ядро преобразования, в результате чего получают коэффициент преобразования. Как вариант, ядро преобразования применяют к разностному блоку размером m*n или n*m, в результате чего получают коэффициент преобразования.
Кодер определяет, передавать ли остаточный сигнал или коэффициент преобразования (S1470). Например, если предсказание выполнено надлежащим образом, может передаваться остаточный сигнал в неизменном виде без кодирования преобразованием.
Решение о том, передавать ли остаточный сигнал или коэффициент преобразования, может быть принято с использованием RDO и т.п. С целью сохранения стоимости сравнивают функции стоимости до и после кодирования преобразованием. Когда определен тип сигнала, передаваемого для текущего блока предсказания, то есть остаточный сигнал или коэффициент преобразования, тип передаваемого сигнала также сообщается в декодер.
Затем кодер сканирует коэффициент преобразования (S1480). Путем сканирования прошедший квантование двумерный блок коэффициентов преобразования может быть преобразован в одномерный вектор коэффициентов преобразования.
Прошедший сканирование коэффициент преобразования и режим внутрикадрового предсказания подвергаются энтропийному кодированию (S1490). Информация, прошедшая указанное кодирование, образует сжатый битовый поток, который может передаваться или сохраняться через NAL.
На фиг. 16 показана обобщенная схема функционирования декодера в системе в соответствии с настоящим изобретением.
Как показано на фиг. 16, декодер выполняет энтропийное декодирование принятого битового потока (S1610). При этом тип блока может быть определен по таблице переменной длины кодирования (variable length coding, VLC), и может быть определен режим предсказания текущего целевого блока декодирования. Если принятый битовый поток может включать стороннюю информацию, необходимую для декодирования, например, информацию об элементе кодирования, элементе предсказания и элементе преобразования, информацию о фильтрации AIS, информацию об ограничении количества режимов предсказания, информацию о неиспользуемых режимах предсказания, информацию о переупорядочении режимов предсказания, информацию о способах преобразования и информацию о способах сканирования, то указанная сторонняя информация подвергается энтропийному декодированию вместе с указанным битовым потоком.
Декодированная информация может указывать, является ли переданный сигнал для текущего целевого блока декодирования остаточным сигналом либо коэффициентом преобразования для разностного блока. Для текущего целевого блока декодирования получают остаточный сигнал или одномерный вектор коэффициентов преобразования для указанного разностного блока.
Затем декодер формирует остаточный блок (S1620).
Декодер выполняет обратное сканирование прошедшего энтропийное декодирование остаточного сигнала или коэффициента преобразования с целью формирования двумерного блока. При этом из указанного остаточного сигнала может формироваться остаточный блок, а из указанного коэффициента преобразования может формироваться двумерный блок коэффициентов преобразования.
Указанные коэффициенты преобразования подвергают обратному квантованию. Прошедшие обратное квантование коэффициенты преобразования подвергают обратному преобразованию, и путем обратного преобразования формируют остаточный блок для указанного остаточного сигнала. Обратное преобразование блока n*n может быть выражено формулой 11.
Декодер формирует опорные пикселы (S1630). При этом декодер формирует опорный пиксел, используя информацию о том, используется ли фильтрация AIS, и о типе используемого фильтра, передаваемую из кодера. Как и в операции кодирования, для выбора опорных пикселов используются уже декодированные и восстановленные пикселы в крайней справа вертикальной линии левого блока, прилегающего к текущему целевому блоку декодирования, и пикселы в крайней нижней горизонтальной линии верхнего блока, прилегающего к указанному целевому блоку декодирования.
Если значение принятого декодером флага CIP_flag равно 1, что означает, что кодером для целевого изображения использован способ CIP, то декодер формирует опорный пиксел соответствующим образом. Например, в качестве опорных пикселов используют только пикселы прилегающих блоков, кодированных в режиме внутрикадрового предсказания, а пикселы прилегающих блоков, кодированных в режиме межкадрового предсказания, в качестве опорных пикселов не используют. В этом случае, как показано на фиг.6, пикселы (целевые образцы предсказания), соответствующие положениям пикселов прилегающих блоков, кодированных в режиме межкадрового предсказания, формируют в качестве опорных пикселов путем интерполяции соседних опорных пикселов, кодированных в режиме внутрикадрового предсказания, либо прилегающие опорные пикселы, кодированные в режиме внутрикадрового предсказания, могут быть скопированы и использованы в качестве опорных пикселов, соответствующих положениям пикселов прилегающих блоков, кодированных в режиме межкадрового предсказания.
T
T
LB
RA
Например, при наличии пикселов, предсказанных в режиме внутрикадрового предсказания, на правой и на левой сторонах и на верхней и на нижней сторонах целевого образца с межкадровым предсказанием целевой образец P предсказания, расположенный в блоке, предсказываемом в режиме межкадрового предсказания, определяется по формуле 17. Далее, если образец с внутрикадровым предсказанием имеется только на какой-либо одной из сторон целевого образца предсказания, то целевой образец P предсказания, расположенный в местоположении блока, предсказанного в режиме межкадрового предсказания, может быть определен по формуле 18. В формуле 17 и/или в формуле 18 в качестве значений P или P могут использоваться средние значения соответствующих пикселов режима внутрикадрового предсказания. При отсутствии прилегающего блока, предсказанного в режиме внутрикадрового предсказания, для использования в качестве значения опорного пиксела может быть скопировано значение пиксела, находящегося в таком же положении, как в предыдущем изображении.
Если кодер использует фильтрацию AIS, то есть если используется сглаживание и поэтому AIS включена, то декодер при формировании опорного пиксела в соответствии со способом формирования опорных пикселов, использованным кодером, также выполняет фильтрацию AIS. Декодер может определять коэффициент фильтра на основании информации о типе фильтра, содержащейся в принятой информации. Например, при наличии двух коэффициентов фильтра [1, 2, 1] или [1, 1, 4, 1, 1] может использоваться коэффициент фильтра из числа двух коэффициентов фильтра, указанный в информации о типе фильтра.
Затем с использованием опорного пиксела и прошедшего энтропийное декодирование режима предсказания текущего целевого блока декодирования формируют блок предсказания для целевого блока декодирования (S1640).
Операция формирования блока предсказания аналогична операции определения режима предсказания и формирования блока предсказания кодером. Если режимом предсказания текущего блока является режим предсказания по плоскости, то способ предсказания по плоскости, использованный для формирования блока предсказания, может быть определен путем анализа переданной информации. При этом декодер может формировать указанный блок предсказания на основании информации, полученной в результате указанного анализа, в соответствии с использованным режимом, входящим в множество режимов предсказания по плоскости, показанных на фиг. 6-10.
Затем формируют блок, восстановленный путем добавления, попиксельно, значения пиксела блока предсказания и значения пиксела разностного блока, то есть восстановленный блок (S1670).