СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО, УСТРОЙСТВО, ПРОГРАММА И НОСИТЕЛИ ДАННЫХ ДЛЯ ХРАНЕНИЯ ПРОГРАММ
METHOD OF VIDEO CODING AND METHOD OF VIDEO DECODING, DEVICE, PROGRAM AND DATA CARRIERS FOR STORAGE OF PROGRAMS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к методам кодирования и декодирования видеоизображений со многими точками обзора.
Приоритет испрашивается по заявке на патент Японии № 2006-000394, поданной 5 января 2006 г., содержимое которой включено в данный документ по ссылке.
УРОВЕНЬ ТЕХНИКИ
Видеоизображения со многими точками обзора представляют собой видеоизображения, полученные фотографированием одного и того же предмета и его заднего плана посредством использования множества камер в различных положениях. Ниже видеоизображение, полученное одной камерой, называется «двумерным видеоизображением», и набор двумерных видеоизображений, полученных фотографированием одного и того же предмета и его заднего плана, называется «видеоизображением со многими точками обзора». Существует тесная взаимосвязь между двумерными изображениями (различных камер), включенными в видеоизображение со многими точками обзора. Если камеры синхронизированы друг с другом, кадры (камер), соответствующие одному и тому же моменту времени, фиксируют предмет и его задний план совершенно в одном и том же состоянии, так что существует тесная взаимосвязь между камерами.
Сначала будут показаны обычные методы, относящиеся к кодированию двумерных видеоизображений. Во многих известных способах кодирования двумерных изображений, таких как Н.264, MREG-4, MREG-2 (которые представляют собой международные стандарты кодирования), и подобных им высокоэффективное кодирование выполняется посредством компенсации движения, ортогонального преобразования, квантования, энтропийного кодирования и т.п. Например, в Н.264, каждый I-кадр может кодироваться посредством внутрикадровой корреляции; каждый P-кадр может кодироваться посредством межкадровой корреляции вместе со множеством прошедших кадров; и каждый B-кадр может кодироваться посредством межкадровой корреляции вместе со множеством прошедших или будущих кадров.
Хотя непатентный документ 1 подробно описывает методы Н.264, ниже описываются его основные принципы. В каждом I-кадре кадр делится на блоки (называемые «макроблоки», при этом размер каждого блока составляет 16×16 (пикселов)), и внутрикадровое предсказание (внутреннее предсказание) выполняется в каждом макроблоке. При внутреннем предсказании каждый макроблок дополнительно делится на меньшие блоки (называемые ниже «субблоки»), и способ индивидуального внутреннего кодирования может применяться к каждому субблоку.
В каждом Р-кадре внутреннее предсказание или внешнее предсказание (межкадровое предсказание) может выполняться в каждом макроблоке. Внутреннее предсказание, применяемое к Р-кадру, аналогично предсказанию, применяемому к I-кадру. При внешнем предсказании выполняется компенсация движения. Также при компенсации движения каждый макроблок делится на меньшие блоки и каждый субблок может иметь индивидуальный вектор движения и индивидуальное опорное изображение.
Также в каждом B-кадре может выполняться внутреннее предсказание или внешнее предсказание. При внешнем предсказании B-кадра в дополнение к прошедшему кадру будущий кадр может упоминаться как опорное изображение при компенсации движения. Например, при кодировании последовательности кадров «I→B→B→P» кадры могут кодироваться в порядке «I→P→B→B». Также в каждом B-кадре компенсация движения может выполняться со ссылкой на I-кадр или P-кадр. Кроме того, аналогично P-кадру каждый субблок (полученный в результате деления макроблока) может иметь индивидуальный вектор движения.
При выполнении внутреннего или внешнего предсказания получается остаток предсказания. В каждом макроблоке блок остатка предсказания подвергается дискретному косинусному преобразованию (DCT), чтобы выполнить квантование. Полученные квантованные значения коэффициентов DCT затем подвергаются кодированию с изменяемой длиной кодов. В каждом P-кадре или B-кадре опорное изображение может выбираться для каждого субблока, указывается числовым значением, называемым «индексом опорного изображения», и подвергается кодированию с изменяемой длиной кодов. В Н.264 чем меньше индекс опорного изображения, тем короче код, используемый при кодировании с изменяемой длиной кодов. Поэтому в Н.264 индекс опорного изображения явно изменяется для каждого кадра. Следовательно, чем выше частота использования опорного изображения, тем меньше индекс опорного изображения, назначенный опорному изображению, таким образом, эффективно кодируя индекс опорного изображения.
В известном способе кодирования видеоизображений со многими точками обзора видеоизображения со многими точками обзора кодируются с высокой эффективностью посредством «компенсации параллакса», при которой компенсация движения применяется к изображениям, полученным различными камерами в один и тот же момент времени. В данном случае «параллакс» представляет собой разность между положениями, в которые проецируется одна и та же точка на предмете, на плоскости изображения камер, которые расположены в различных положениях.
Фиг.13 представляет собой схематический вид, изображающий понятие параллакса, создаваемого между такими камерами. На схематическом виде плоскость изображения камер, оптические оси которых параллельны друг другу, рассматривается вертикально вниз. Как правило, такие точки, на которые проецируется одна и та же точка на предмете, на плоскости изображения различных камер называются «соответствующими точками». При компенсации параллакса соответствующая точка на изображении опорной камеры, которая соответствует целевому пикселу в изображении целевой камеры для относящегося кодирования, оценивается с использованием опорного изображения, и значение пиксела целевого пиксела предсказывается с использованием значения пиксела, назначенного соответствующей точке. Ниже такой «оцененный параллакс» также называется «параллаксом» для удобства объяснения, и в таком способе кодируются данные параллакса и каждый остаток предсказания.
Во многих способах параллакс представляется вектором (то есть вектором параллакса (или несоответствия)) на плоскости изображения. Например, в способе, описанном в непатентном документе 2, компенсация параллакса выполняется для каждого блока в качестве структурной единицы, где такой параллакс для каждого блока структурной единицы представляется с использованием двумерного вектора, то есть посредством использования двух параметров (то есть компоненты х и компоненты y). Фиг.14 представляет собой схематический вид, изображающий вектор параллакса. То есть в данном способе кодируются данные параллакса, образованные двумя параметрами, и кодируется относящийся остаток предсказания. Так как данный способ не использует параметры камеры при кодировании, он эффективен, когда параметры камеры неизвестны.
С другой стороны, непатентный документ 3 описывает способ кодирования изображений со многими точками обзора (то есть статические изображения). В способе параметры камеры используются для кодирования, и каждый вектор параллакса представляется одномерными данными, основанными на ограничении эпиполярной геометрии, таким образом, эффективно кодируя изображения со многими точками обзора.
Фиг.15 представляет собой схематический вид, изображающий принцип ограничения эпиполярной геометрии. Согласно ограничению эпиполярной геометрии в двух изображениях, полученных двумя камерами (то есть «камерой 1» и «камерой 2»), точка m' (назначенная точке М на предмете) в одном из изображений, которая соответствует точке m в другом изображении, ограничивается на прямой линии, называемой «эпиполярной линией». В способе непатентного документа 3 параллакс относительно каждого опорного изображения представляется с использованием одного параметра, то есть положения на одномерной эпиполярной линии. То есть в данном способе кодируются данные параллакса, которые представляются одним параметром, и относящийся остаток предсказания.
Даже если существует два или более опорных изображений (полученных различными камерами), параллакс для каждого опорного изображения может быть представлен с использованием одного параметра посредством ограничения эпиполярной геометрии. Например, когда известен параллакс на эпиполярной линии для опорного изображения, тогда может быть восстановлен параллакс для опорного изображения, полученного другой камерой.
Кроме того, когда существует множество опорных изображений, полученных различными камерами, компенсация параллакса может выполняться с использованием метода изображения с произвольными точками обзора. Непатентный документ 4 описывает компенсацию параллакса, используя метод изображения с произвольными точками обзора. Более конкретно, каждое значение пиксела изображения, полученного целевой камерой для относящегося кодирования, предсказывается посредством интерполяции, используя значения пикселов соответствующих точек (принадлежащих различным камерам), которые соответствуют относящему пикселу. Фиг.16 представляет собой схематический вид, изображающий такую интерполяцию. При интерполяции значение пиксела m в целевом изображении, подлежащем кодированию, предсказывается посредством выполнения интерполяции между пикселами m' и m" опорных изображений 1 и 2, где пикселы m' и m" соответствуют пикселу m.
Непатентный документ 1: ITU-T Rec.H.264/ISO/IEC 11496-10, «Advanced Video Coding», Final Committee Draft, Document JVT-E022, сентябрь 2002 г.
Непатентный документ 2: Hideaki Kimata and Masaki Kitahara. «Preliminary results on multiple view video coding (3DAV)», document M10976 MPEG Redmond Meeting, июль 2004 г.
Непатентный документ 3: Koichi Hata, Minoru Etoh and Kunihiro Chihara. «Coding of Multi-Viewpoint Images». IEICE transactions, Vol.J82-D-II, №11, pp. 1921-1929 (1999 г.)
Непатентный документ 4: Masayuki Tanimoto, Toshiaki Fujii. «Response to Call for Evidence on Multi-View Video Coding», document Мххххх MPEG Hong Kong Meeting, январь 2005 г.
В обычных способах кодирования видеоизображений со многими точками обзора, когда параметры камеры известны, данные параллакса для каждого опорного изображения могут быть представлены одним параметром независимо от числа опорных изображений посредством ограничения эпиполярной геометрии, таким образом, эффективно кодируя данные параллакса.
Однако когда видеоизображение со многими точками обзора, полученное фактическими камерами, представляет собой целевое изображение, подлежащее кодированию, и компенсация параллакса выполняется посредством ограничения параллакса на эпиполярной линии, тогда эффективность предсказания может ухудшаться вследствие ошибки в измеренных параметрах камеры. Кроме того, так как каждое опорное изображение включает в себя искажение из-за кодирования, эффективность предсказания также может ухудшаться при выполнении компенсации параллакса посредством ограничения параллакса на эпиполярной линии. Такое ухудшение эффективности предсказания вызывает увеличение величины кода относящегося остатка предсказания, так что ухудшается общая эффективность кодирования.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Чтобы решить вышеупомянутую проблему при кодировании видеоизображений со многими точками обзора, задачей настоящего изобретения является управление степенью свободы при компенсации параллакса в соответствии с характеристикой каждого опорного изображения и повышение точности компенсации параллакса, даже когда существует искажение кодирования в опорном изображении или ошибка в измеренных параметрах камеры, чтобы получить более высокую эффективность кодирования по сравнению с обычными методами.
Наиболее отличительным признаком настоящего изобретения в сравнении с обычными методами является то, что число параметров в качестве данных параллакса является изменяемым так, чтобы управлять степенью свободы при компенсации параллакса в соответствии с характеристикой каждого опорного изображения и чтобы данные о числе параметров параллакса или индексные данные, которые указывают число параметров, кодировались для включения в кодированные данные.
В дополнение к числу параметров в качестве данных параллакса данные для указания каждого опорного изображения, используемого для компенсации параллакса, также могут включаться в индексные данные, и в них также могут включаться другие данные.
Более конкретно, в первом режиме способов кодирования и декодирования видео настоящего изобретения выполняется процесс кодирования или декодирования числа параметров параллакса, где число параметров параллакса обозначает число параметров в качестве данных параллакса, используемых для компенсации параллакса, в соответствии с характеристикой данных видеоизображения.
Данные числа параметров параллакса могут обозначать размерность вектора параллакса для каждого опорного изображения. Когда существует два опорных изображения (А и В), возможно следующее назначение значения:
(i) pNum=0: оба опорных изображения А и В имеют одномерный вектор параллакса;
(ii) pNum=1: опорное изображение А имеет одномерный вектор параллакса, и опорное изображение В имеет двумерный вектор параллакса;
(iii) pNum=2: опорное изображение А имеет двумерный вектор параллакса, и опорное изображение В имеет одномерный вектор параллакса;
(iv) pNum=3: оба опорных изображения А и В имеют двумерный вектор параллакса.
Вышеупомянутые индексные данные pNum могут определяться в качестве данных о числе параметров параллакса.
Сначала на стороне кодирования видео число параметров для представления данных параллакса устанавливается на этапе установления числа параметров параллакса. Затем данные о числе параметров параллакса в отношении числа параметров, установленных на этапе установления числа параметров параллакса, кодируются на этапе кодирования данных о числе параметров параллакса. Кроме того, данные параллакса, которые представляются с использованием числа параметров, установленных на этапе установления числа параметров параллакса, кодируются на этапе кодирования данных параллакса.
С другой стороны, на стороне декодирования видео данные о числе параметров параллакса сначала декодируются на этапе декодирования данных о числе параметров параллакса. Затем данные параллакса о числе параметров, которые обозначаются декодированными данными о числе параметров параллакса, декодируются на этапе декодирования данных параллакса.
Во втором режиме способов кодирования и декодирования видео настоящего изобретения опорные изображения, которые могут использоваться для компенсации параллакса, назначаются каждому значению индекса опорного изображения. Например, когда два опорных изображения используются для генерирования предсказываемого изображения компенсации параллакса и три опорных изображения (А, В и С), которые могут использоваться, запоминаются в памяти опорных изображений, тогда возможно следующее назначение значений:
(i) refIdx=0: опорные изображения А и В;
(ii) refIdx=1: опорные изображения В и С;
(iii) refIdx=2: опорные изображения А и С.
Здесь refIdx представляет собой индекс опорного изображения. В дополнение к вышесказанному может определяться индекс (значение) опорного изображения, соответствующий каждому декодированному изображению целевой камеры для относящегося кодирования.
На стороне кодирования видео в дополнение к процессу, выполняемому в вышеупомянутом первом режиме, выполняется этап установления опорного изображения для определения опорного изображения, используемого при компенсации параллакса, и этап кодирования индекса опорного изображения для кодирования индекса опорного изображения. На стороне декодирования видео выполняется этап декодирования индекса опорного изображения.
Когда такой способ объединяется с вышеописанным обычным способом изменения числа индекса опорного изображения в Н.264, каждое значение индекса может устанавливаться в соответствии с характеристикой относящегося видеоизображения таким образом, что малое значение назначается опорному изображению, посредством которого может генерироваться предсказываемое изображение высокого качества, тем самым повышая эффективность кодирования.
В третьем режиме способов кодирования и декодирования видео настоящего изобретения данные о числе параметров параллакса, которые могут использоваться, назначаются каждому индексу (значению) опорного изображения. Например, когда два опорных изображения используются для генерирования предсказываемого изображения компенсации параллакса, три опорных изображения (А, В и С), которые могут использоваться, запоминаются в памяти опорных изображений и данные pNum о числе параметров параллакса имеют два значения (то есть pNum=0 или 1), тогда возможно следующее назначение значений:
(i) refIdx=0: опорные изображения А и В, pNum=0;
(ii) refIdx=1: опорные изображения А и В, pNum=1;
(iii) refIdx=2: опорные изображения В и С, pNum=0;
(iv) refIdx=3: опорные изображения В и С, pNum=1;
(v) refIdx=4: опорные изображения А и С, pNum=0;
(vi) refIdx=5: опорные изображения А и С, pNum=1.
В данном случае на стороне кодирования видео выполняется этап кодирования индекса опорного изображения для кодирования индекса опорного изображения, где данные о числе параметров параллакса кодируются на данном этапе. На стороне декодирования видео выполняется этап декодирования индекса опорного изображения для декодирования индекса опорного изображения, где данные о числе параметров параллакса декодируются на данном этапе.
Когда такой способ объединяется с вышеописанным обычным способом изменения числа индекса опорного изображения в Н.264, длина кода с изменяемой длиной, назначаемого данным о числе параметров параллакса, может изменяться в соответствии с характеристикой относящегося видеоизображения, таким образом, эффективно кодируя данные о числе параметров параллакса.
При компенсации параллакса, используемой для кодирования видеоизображений со многими точками обзора, (i) если ухудшается эффективность предсказания, когда предсказание выполняется в соответствии с ограничением эпиполярной геометрии, из-за ошибки измерения в параметрах камеры или искажений кодирования в каждом опорном изображении, тогда число параметров для данных параллакса увеличивается, чтобы выполнить предсказание, имеющее высокую степень свободы, и (ii) если эффективность предсказания достаточна, даже когда предсказание выполняется в соответствии с ограничением эпиполярной геометрии, тогда выполняется предсказание, которое представляет параллакс посредством использования одного параметра. Такой выбор может адаптивно управляться в соответствии с характеристикой каждого кадра или блока (в качестве структурной единицы) в относящемся декодированном изображении. Поэтому может быть получена более высокая эффективность кодирования по сравнению с обычными методами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 представляет собой схему, изображающую устройство кодирования видео в качестве первого варианта осуществления настоящего изобретения.
Фиг.2 представляет собой схему, изображающую опорные зависимости между камерами в первом варианте осуществления.
Фиг.3 представляет собой схему, изображающую расположение камер в первом варианте осуществления.
Фиг.4 представляет собой блок-схему последовательности операций кодирования в первом варианте осуществления.
Фиг.5 представляет собой схему, изображающую устройство декодирования видео в первом варианте осуществления.
Фиг.6 представляет собой блок-схему последовательности операций декодирования в первом варианте осуществления.
Фиг.7 представляет собой схему, изображающую опорные зависимости между камерами во втором варианте осуществления настоящего изобретения.
Фиг.8 представляет собой схему, изображающую устройство кодирования видео во втором варианте осуществления.
Фиг.9 представляет собой блок-схему последовательности операций кодирования во втором варианте осуществления.
Фиг.10 представляет собой подробную блок-схему последовательности операций этапа S304 на фиг.9.
Фиг.11 представляет собой схему, изображающую устройство декодирования видео во втором варианте осуществления.
Фиг.12 представляет собой блок-схему последовательности операций декодирования во втором варианте осуществления.
Фиг.13 представляет собой схематический вид, изображающий принцип параллакса, создаваемого между камерами.
Фиг.14 представляет собой схематический вид, изображающий вектор параллакса.
Фиг.15 представляет собой схематический вид, изображающий принцип ограничения эпиполярной геометрии.
Фиг.16 представляет собой схематический вид, изображающий интерполяцию значения пиксела.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Первый вариант осуществления
Объясняется первый вариант осуществления. Фиг.1 представляет собой схему, изображающую структуру устройства кодирования видео первого варианта осуществления.
Устройство 100 кодирования видео включает в себя узел 101 ввода изображения, в который вводится каждое исходное изображение камеры С (то есть целевое изображение, подлежащее кодированию); узел 102 ввода опорного изображения, в который вводятся декодированные изображения (в качестве опорных изображений) камер А и В; память 103 опорных изображений для хранения каждого опорного изображения; узел 104 установления числа параметров параллакса для установления числа параметров параллакса для представления данных параллакса, которые используются для компенсации параллакса; узел 105 кодирования данных о числе параметров параллакса для кодирования данных о числе параметров параллакса; узел 106 кодирования данных параллакса для кодирования данных параллакса и узел 107 кодирования остатка предсказания для кодирования остатка предсказания, сгенерированного при компенсации параллакса.
Фиг.2 представляет собой схему, изображающую опорные зависимости между камерами в первом варианте осуществления. Как показано на фиг.2, в настоящем варианте осуществления для кодирования видеоизображений со многими точками обзора, полученных тремя камерами, видеоизображения камеры С кодируются с использованием декодированных изображений камер А и В в качестве опорных изображений.
Стрелки на фиг.2 представляют опорные зависимости при компенсации параллакса. Чтобы кодировать каждое изображение камеры С, декодированные изображения (камер А и В), имеющие такое же время отображения, кодируются в качестве опорных изображений. В соответствующем процессе предсказываемое изображение генерируется посредством вычисления среднего значения из значений пикселов соответствующих точек, принадлежащих камерам А и В.
Фиг.3 представляет собой схему, изображающую расположение камер в первом варианте осуществления. В настоящем варианте осуществления точки обзора трех камер выстраиваются по прямой линии через регулярные интервалы, и их оптические оси перпендикулярны прямой линии. То есть оптические оси трех камер параллельны друг другу.
Кроме того, система координат x-y на относящейся плоскости изображения может быть получена посредством параллельного переноса (не выполняется вращение или что-то подобное) относительно прямой линии, на которой расположены камеры, и пикселы формируются посредством деления каждой из осей x и y плоскости изображения через регулярные интервалы для каждой камеры. То есть каждая камера имеет одинаковое разрешение, и параллакс Р пикселей между камерами С и А соответствует параллаксу Р пикселей между камерами С и В.
Фиг.4 представляет собой блок-схему последовательности операций кодирования в первом варианте осуществления.
Блок-схема последовательности операций изображает процессы, выполняемые при кодировании изображения, полученного камерой С, и кодирование видеоизображения выполняется посредством повторения процессов для каждого изображения.
В настоящем варианте осуществления способ представления данных параллакса адаптивно переключается при компенсации параллакса между (i) способом представления параллакса между опорными изображениями камер А и В посредством использования данных параллакса, которые указывают положение на эпиполярной линии для камеры А посредством использования одного параметра (то есть значение индекса «pNum» равно 0), и (ii) параллакс для опорного изображения, принадлежащего каждой из камер А и В, представляется двумерным вектором, и относящиеся данные параллакса представляются посредством использования четырех параметров (то есть значение индекса «pNum» равно 1), где pNum представляет собой индекс для указания данных, относящихся к числу параметров параллакса.
Такое переключение числа параметров параллакса выполняется для каждого блока (в качестве структурной единицы), имеющего N×N пикселов как по оси Х, так и по оси Y, полученного посредством деления каждого изображения на блоки. То есть для каждого N×N блока один (pNum=0) или четыре (pNum=1) параметра кодируются в качестве данных параллакса.
При вышеупомянутых условиях операция кодирования объясняется в соответствии с блок-схемой последовательности операций по фиг.4.
Сначала изображение камеры С вводится в узел 101 ввода изображения (этап S101), где декодированные изображения, которые принадлежат камерам А и В и имеют такое же время отображения, были сохранены в памяти 103 опорных изображений при помощи узла 102 ввода опорного изображения.
В настоящей блок-схеме последовательности операций «blk» представляет собой индекс, который указывает каждый из N×N блоков, полученных посредством деления относящегося изображения, и «maxBlk» указывает общее число блоков, определенных в каждом изображении.
После того как индекс blk для каждого N×N блока инициализируется в нуль (этап S102), следующие этапы (S103-S116) многократно применяются к каждому N×N блоку, в то же время «1» добавляется к индексу blk (этап S115) до тех пор, пока индекс blk не достигнет общего числа maxBlk блоков (этап S116).
Сначала в узле 104 установления числа параметров параллакса считываются данные целевого блока, подлежащего кодированию (в изображении С), который соответствует индексу blk, и опорные изображения, соответствующие камерам А и В, считываются из памяти 103 опорных изображений. Также в узле 104 установления числа параметров параллакса выполняется процесс поиска параллакса для каждого из случаев pNum=0 и pNum=1 (этапы S104-S106).
disp
Поиск параллакса выполняется таким образом, что минимизируется стоимость «cost» «скорость-искажение» на основе (i) общей суммы «SAD» абсолютных значений остатков предсказания в соответствующем N×N блоке, которые получаются при компенсации параллакса, и (ii) оцененного значения R величины кодов, назначенных данным параллакса. В данном случае «cost» вычисляется по следующей формуле:
disp
где λ представляет собой неопределенный множитель Лагранжа и представляет собой предварительно определенное значение. Кроме того, чтобы вычислить R, данные параллакса подвергаются кодированию с изменяемой длиной кодов для вычисления относящейся величины кодов.
Для каждого из случаев pNum=0 и pNum=1 вычисляется минимальное значение pCost для «cost» и данные параллакса для получения pCost, и данные параллакса, соответствующие меньшему pCost, определяются для использования для кодирования (этапы S107-S110).
На блок-схеме последовательности операций на фиг.4 «minPcost» представляет собой переменную для хранения минимального значения pCost и устанавливается на «maxPCost» (то есть для инициализации), которое имеет произвольное значение больше, чем возможное максимальное значение pCost, когда обрабатывается блок «blk».
Когда pNum=0, следующий процесс выполняется на этапе 105.
x
x
x
x
x
x
То есть поиск параллакса выполняется в предварительно определенном диапазоне. При расположении камер настоящего варианта осуществления, следуя ограничению эпиполярной геометрии, параллакс камеры А относительно пиксела (x, y) камеры С равен (x+d, y), где d≥0, и соответствующий параллакс камеры В равен (x-d, y). В данном случае в системе координат на плоскости изображения, имеющей I×I пикселов в горизонтальном и вертикальном направлениях, верхний левый пиксел определяется как (0,0), верхний правый пиксел определяется как (I-1,0), нижний левый пиксел определяется как (0,I-1). В настоящем варианте осуществления диапазон для поиска составляет от d=0 до Р. Поэтому SAD[d] вычисляется в диапазоне «от d=0 до Р» по следующей формуле:
i
j
A
B
C
где Σ представляет собой относящуюся общую сумму, когда i=0 - N-1, и Σ представляет собой относящуюся общую сумму, когда j=0 - N-1. «ABS()» указывает вычисление абсолютного значения элемента в круглых скобках. «DEC[x,y]» и «DEC[x,y]» указывает соответственно значения яркости пиксела (x,y) в каждом декодированном изображении камер А и В. «IMG[x,y]» указывает значение яркости пиксела (x,y) в исходном изображении камеры С. В данном случае (x,y) указывают координаты верхнего левого пиксела в соответствующем N×N блоке на плоскости изображения.
disp
x
x
x
x
x
Кроме того, вычисляется оцененное значение R[d] величины кода, назначенного данным параллакса (когда параллакс равен d), и стоимость «скорость-искажение» «cost[d]» для параллакса d вычисляется с использованием вышеупомянутой формулы (1). Параллакс, который представляет собой минимизированную cost[d], определяется как «bestDispPNum0», и соответствующий код определяется как «pCost».
Затем, когда «minPcost» будет установлено в pCost и «bestPnum» для хранения оптимального pNum будет установлено в 0, работа переходит на процесс, выполняемый при pNum=1.
Когда pNum=1, следующий процесс выполняется на этапе 106.
x,A
x,B
x,A
x,B
y,A
y,B
y,A
y,B
x,A
x,B
y,A
y,B
x,A
x,B
y,A
y,B
То есть ограничение эпиполярной геометрии не учитывается, когда pNum=1, и выполняется поиск двумерного параллакса. Более конкретно, соответствующие диапазоны для поиска по оси Х для камер А и В определяются как «d,d=от -P до Р» (то есть диапазон «от -Р до Р» для каждого из d и d), и соответствующие диапазоны для поиска по оси Y для камер А и В определяются как «d,d=от -P до Р» (то есть диапазон «от -Р до Р» для каждого из d и d). Для каждой комбинации между (d, d, d, d) вычисляется следующий SAD[d, d, d, d]:
disp
x,A
x,B
y,A
y,B
x,A
x,B
y,A
y,B
x,A
x,B
y,A
y,B
x,A
x,B
y,A
y,B
Кроме того, вычисляется оцененное значение R[d, d, d, d] величины кода, назначенного данным параллакса (когда параллакс равен (d, d, d, d), и стоимость «скорость-искажение» «cost[d, d, d, d]» для параллакса вычисляется с использованием вышеупомянутой формулы (1). Параллакс, который соответствует минимизированной cost[d, d, d, d], определяется как «bestDispPNum1», и соответствующая стоимость определяется как «pCost».
Если pCost<minPcost (этап S107), minPcost устанавливается в pCost, и bestPNum, в котором сохраняется оптимальное pNum, устанавливается в 1 (этап S108).
x
x,A
x,B
y,A
y,B
Затем в узле 105 кодирования данных о числе параметров параллакса bestPNum подвергается кодированию с изменяемой длиной кодов (этап S111). Кроме того, в узле 106 кодирования данных параллакса кодируются данные параллакса. Когда bestPNum=0, данные d подвергаются кодированию с изменяемой длиной кодов. Когда bestPNum=1, данные «d, d, d, d» подвергаются кодированию с изменяемой длиной кодов. Наконец, в узле 107 кодирования остатка предсказания кодируется остаток предсказания (этапы S112-S114).
Фиг.5 изображает устройство декодирования видео, используемое в первом варианте осуществления. Устройство 200 декодирования видео включает в себя узел 201 декодирования данных о числе параметров параллакса для декодирования данных о числе параметров параллакса (то есть данных о числе параметров параллакса); узел 202 декодирования данных параллакса для декодирования данных параллакса, соответствующих данным о числе параметров параллакса; узел 203 декодирования остатка предсказания для декодирования остатка предсказания; узел 204 компенсации параллакса и память 205 опорных изображений.
Фиг.6 представляет собой блок-схему последовательности операций декодирования настоящего варианта осуществления. Данная блок-схема последовательности операций изображает принцип действия декодирования одного кадра камеры С и подробно объясняется ниже.
После того как индекс «blk» для каждого N×N блока инициализируется равным «0» (этап S201), следующие этапы S202-S208 повторяются для каждого N×N блока в относящемся одном кадре (число блоков в одном кадре равно «maxBlk»), декодируется один кадр камеры С. В данном случае кадры, имеющие одинаковое время камер А и В, уже были декодированы, и декодированные изображения были сохранены в памяти 205 опорных изображений.
Сначала узел 201 декодирования данных о числе параметров параллакса декодирует данные «bestPNum» о числе параметров параллакса (этап S202). В соответствии со значением bestPNum (этап S203) выполняется следующий процесс.
x
x
x
Когда bestPNum=0, в узле 202 декодирования данных параллакса декодируются данные d параллакса. Затем в узел 204 компенсации параллакса вводятся данные bestPNum о числе параметров и данныме d параллакса, и N×N блоков камер А и В, которые соответствуют данным d параллакса, также вводятся из памяти 205 опорных изображений. Когда положение каждого пиксела в целевом N×N блоке (для кодирования) указывается в виде (x,y), предсказываемое изображение PRED[x+i, y+j] генерируется по следующей формуле (этап S204):
где i=0, 1, …, N-1, и j=0, 1, …, N-1.
x,A
x,B
y,A
y,B
x,A
x,B
y,A
y,B
x
Когда bestPNum=1, в узле 202 декодирования данных параллакса декодируются данные (d, d, d, d) параллакса. Затем в узел 204 компенсации параллакса вводятся данные bestPNum о числе параметров параллакса и данные (d, d, d, d) параллакса, и N×N блоков камер А и В, которые соответствуют данным d параллакса, также вводятся из памяти 205 опорных изображений. Когда положение каждого пиксела в целевом N×N блоке (для кодирования) указывается в виде (x,y), предсказываемое изображение PRED[x+i, y+j] генерируется по следующей формуле (этап S205):
где i=0, 1, …, N-1, и j=0, 1, …, N-1.
C
Затем в узле 203 декодирования остатка предсказания, в который был введен кодированный остаток предсказания, декодируется N×N блок «RES[x+i, y+j]» остатка предсказания. Блок остатка предсказания вводится в узел 204 компенсации параллакса, и сумма блока остатка предсказания и предсказываемого изображения вычисляется по следующей формуле для получения  декодированного изображения DEC[x+i, y+j] (этап S206):
Вышеупомянутый процесс выполняется многократно, в то же время «1» добавляется к индексу blk (этап S207) до тех пор, пока индекс blk не достигнет числа maxBlk блоков в одном кадре, таким образом, получая декодированное изображение камеры С.
Второй вариант осуществления
Ниже описывается второй вариант осуществления.
В настоящем варианте осуществления, как показано посредством опорных зависимостей между камерами на фиг.7, кодируются видеоизображения со многими точками обзора, причем видеоизображение камеры С кодируется с использованием декодированных изображений камер А, В, D и Е в качестве опорных изображений.
В вышеописанном первом варианте осуществления каждое изображение камеры С кодируется только с использованием компенсации параллакса. Однако в настоящем варианте осуществления кодирование выполняется посредством исполнения с возможностью переключения одной из компенсаций движения и компенсации параллакса для каждого блока в качестве структурной единицы. Стрелки на фиг.7 указывают опорные зависимости, когда выполняется компенсация движения или компенсация параллакса.
При компенсации параллакса предсказываемые изображения генерируются посредством множества пар, выбранных из камер А, В, D и Е (в данном случае три пары «А и В», «А и D» и «В и Е»). Способ генерирования каждого предсказываемого изображения подобен первому варианту осуществления, то есть предсказываемое изображение генерируется с использованием среднего значения значений пикселов соответствующих точек между относящимися двумя камерами.
Аналогично первому варианту осуществления в настоящем варианте осуществления точки обзора пяти камер выровнены по прямой линии через регулярные интервалы, и оптические оси камер перпендикулярны этой прямой линии. То есть пять камер имеют зависимости, как показано на фиг.3, и их оптические оси параллельны друг другу.
Фиг.8 представляет собой схему, изображающую конструкцию устройства кодирования видео второго варианта осуществления.
Устройство 300 кодирования видео включает в себя узел 301 ввода изображений, в который вводится каждое исходное изображение камеры С, узел 302 ввода опорного изображения, в который вводятся декодированные изображения камер А, В, D и F, память 303 опорных изображений для хранения каждого опорного изображения, узел 304 компенсации параллакса для выполнения компенсации параллакса, узел 305 компенсации движения для выполнения компенсации движения, узел 306 установления опорных изображений, узел 307 кодирования индекса опорного изображения, узел 308 кодирования данных движения, узел 309 кодирования данных параллакса, узел 310 кодирования остатка предсказания и узел 311 локального декодирования.
Фиг.9 представляет собой блок-схему последовательности операций кодирования, выполняемого в настоящем варианте осуществления. Фиг.10 представляет собой подробную блок-схему последовательности операций этапа S304 на фиг.9.
Блок-схемы последовательности операций изображают операцию, выполняемую тогда, когда кодируется изображение камеры С, и кодирование видео выполняется посредством повторения операции. В настоящем варианте осуществления кодирование выполняется посредством исполнения адаптивного переключения между следующими процессами:
(i) компенсация движения с использованием прошедшего декодированного изображения камеры С: refIdx=0, 1;
(ii) компенсация параллакса с использованием опорных изображений камер А и В (pNum=0): refIdx=2;
(iii) компенсация параллакса с использованием опорных изображений камер А и В (pNum=1): refIdx=3;
(iv) компенсация параллакса с использованием опорных изображений камер А и D (pNum=0): refIdx=4;
(v) компенсация параллакса с использованием опорных изображений камер А и D (pNum=1): refIdx=5;
(vi) компенсация параллакса с использованием опорных изображений камер B и E (pNum=0): refIdx=6;
(vii) компенсация параллакса с использованием опорных изображений камер B и E (pNum=1): refIdx=7,
где «refIdx» представляет собой индекс опорного изображения.
Что касается «refIdx=0, 1», то «refIdx=0» указывает декодированное изображение (камеры С), которое находится за один кадр до настоящего кадра, и «refIdx=1» указывает декодированное изображение (камеры С), которое находится за два кадра до настоящего кадра.
В настоящем варианте осуществления при кодировании кодируется индекс опорного изображения, который соответствует способу и опорному изображению, используемому для каждого блока, и при декодировании значения пикселов каждого блока декодируются с использованием индекса опорного изображения.
Вышеупомянутое назначение значения (i)-(vii) индекса опорного изображения используется, чтобы кодировать изображение «С» на третьем кадре и после него.
Для первого кадра, так как нет декодированного изображения камеры С, индекс опорного изображения не может назначаться для компенсации движения, и значение, меньшее, чем вышеупомянутое назначенное значение на 2, назначается для каждого случая ((iii)-(vii)) компенсации параллакса (например, для «компенсации параллакса с использованием опорных изображений камер А и В (pNum=0)» refIdx устанавливается на 0 посредством назначения значения индекса опорного изображения).
Для второго кадра, так как только «refIdx=0» эффективно для компенсации движения, значение, меньшее, чем вышеупомянутое назначенное значение на 1, назначается для каждого случая ((iii)-(vii)) компенсации параллакса (например, для «компенсации параллакса с использованием опорных изображений камер А и В (pNum=0)» refIdx устанавливается на 1 посредством назначения значения индекса опорного изображения).
При вышеописанных условиях операция кодирования объясняется со ссылкой на блок-схему последовательности операций по фиг.9, причем настоящая операция применяется к камере С на третьем кадре и после него.
Сначала изображение камеры С вводится в узел 301 ввода изображения (этап S301), где декодированные изображения, которые принадлежат камерам А, В, D и Е и имеют одинаковое время отображения, были сохранены в памяти 303 опорных изображений при помощи узла 302 ввода опорного изображения. Кроме того, декодированные изображения камеры С, которые находятся на один кадр и два кадра перед настоящим кадром и были декодированы узлом 311 локального декодирования, были введены в память 303 опорных изображений.
На настоящей блок-схеме последовательности операций «blk» представляет собой индекс, который указывает каждый из N×N блоков, полученных посредством деления относящегося изображения, и «maxBlk» указывает общее число блоков, определенных в каждом изображении. После того как индекс blk для каждого N×N блока инициализируется в нуль (этап S302), следующие этапы (S303-S312) многократно применяются к каждому N×N блоку, в то же время «1» добавляется к индексу blk (этап S311) до тех пор, пока индекс blk не достигнет общего числа maxBlk блоков (этап S312).
Сначала индекс «refIdx» опорного изображения инициализируется так, что имеет значение «0», и переменная «minRefCost» для хранения минимального значения значения «refCost» стоимости инициализируется так, чтобы иметь произвольное значение «maxRefCost», которое больше, чем возможное максимальное значение refCost при обработке блока «blk» (этап S303).
В каждом N×N блоке, указанном индексом «blk», выполняется процесс предсказания, соответствующий относящемуся индексу «refIdx» опорного изображения (этап S304). В процессе предсказания вычисляется значение refCost стоимости, соответствующее относящемуся индексу «refIdx» опорного изображения, и индекс «refIdx» опорного изображения, соответствующий минимальной refCost, используется для кодирования настоящего N×N блока (этапы S305 и S306).
Ниже объясняется процесс, соответствующий каждому индексу «refIdx» опорного изображения на этапе S304, со ссылкой на блок-схему последовательности операций на фиг.10. При нижеследующем выполняется компенсация движения или компенсация параллакса. В любом случае данные движения или параллакса получаются посредством минимизирования «cost», которая вычисляется по следующей формуле:
vec
где R представляет собой оцененное значение величины кодов, назначенных относящимся данным движения или параллакса, и SAD представляет собой общую сумму абсолютных значений остатков предсказания.
Когда refIdx равен 2 или больше, это соответствует компенсации параллакса (этап S3041). Поэтому декодированные изображения двух камер, соответствующие refIdx, считываются в качестве опорных изображений узлом 304 компенсации параллакса для выполнения компенсации параллакса.
Также, когда refIdx равен 2 или более, он имеет соответствующие данные pNum о числе параметров, которые равны 0 или 1. Следовательно, выполняется процесс компенсации параллакса, назначенный pNum=0 или pNum=1, аналогично первому варианту осуществления.
То есть когда число параметров параллакса (то есть pNum) равно 1 (этап S3042), выполняется поиск параллакса на относящейся эпиполярной линии в отношении двух опорных изображений, соответствующих индексу «refIdx» опорного изображения, чтобы минимизировать стоимость «скорость-искажение», и минимальное значение стоимости сохраняется в качестве «refCost» (этап S3043).
Когда данные (pNum) о числе параметров не равны 1 (этап S3042), выполняется поиск параллакса на относящейся плоскости изображения в отношении двух опорных изображений, соответствующих индексу «refIdx» опорного изображения, чтобы минимизировать стоимость «скорость-искажение», и минимальное значение стоимости сохраняется в качестве «refCost» (этап S3044).
В каждом из вышеупомянутых этапов S3043 и S3044 refCost окончательно определяется посредством добавления оцененной величины кодов для кодирования индекса «refIdx» опорного изображения к вычисленному минимальному значению (refCost) стоимости.
Когда refIdx равен 0 или 1, это соответствует компенсации движения и операция переходит на этап S3045. В данном случае декодированное изображение камеры С, соответствующее относящемуся refIdx, считывается в качестве опорного изображения узлом 305 компенсации движения для выполнения компенсации движения. Конкретно, компенсация движения выполняется посредством минимизирования «cost», которая вычисляется по формуле (7). В данном случае refCost определяется посредством добавления оцененной величины кодов для кодирования индекса «refIdx» опорного изображения к вычисленному минимальному значению «cost» (этап S3045).
Если вычисленное refCost меньше, чем «minRefCost» для хранения настоящего минимального значения (этап S305), minRefCost устанавливается в refCost и соответствующее refIdx сохраняется в качестве «bestRefIdx» (этап S306). Вышеупомянутый процесс повторяется, в то же время «1» добавляется к refIdx до тех пор, пока refIdx не достигнет «maxRefNum», которое представляет собой общее число значений индекса (этапы S307 и S308).
После того как вышеописанная операция будет применена к каждому опорному изображению, индекс опорного изображения, который представляет собой минимизированное refCost (то есть bestRefIdx), получается узлом 306 установления опорного изображения, так что определяется индекс опорного изображения, используемый для кодирования.
Затем bestRefIdx кодируется узлом 307 кодирования индекса опорного изображения (этап S309), относящиеся данные движения или параллакса кодируются узлом 308 кодирования данных движения или узлом 309 кодирования данных параллакса, и остаток предсказания кодируется узлом 310 кодирования остатка предсказания (этап S310).
Затем 1 добавляется к индексу «blk» (этап S311), и вышеупомянутая операция повторяется до тех пор, пока «blk» не достигнет общего числа maxBlk блоков (этап S312), таким образом, кодируя один кадр камеры С.
Фиг.11 изображает устройство декодирования видео, используемое во втором варианте осуществления. Устройство 400 декодирования видео включает в себя узел 401 декодирования индекса опорного изображения для декодирования индекса опорного изображения; узел 402 декодирования данных параллакса для декодирования данных параллакса, узел 403 декодирования данных движения для декодирования данных движения; узел 404 декодирования остатка предсказания для декодирования остатка предсказания, память 405 опорных изображений для хранения каждого опорного изображения, узел 406 компенсации параллакса для выполнения компенсации параллакса и узел 407 компенсации движения для выполнения компенсации движения.
Фиг.12 представляет собой блок-схему последовательности операций декодирования настоящего варианта осуществления. Данная блок-схема последовательности операций изображает операцию для декодирования одного кадра камеры С и подробно объясняется ниже.
После того как индекс blk для каждого N×N блока будет инициализирован в «0» (этап S401), следующие этапы S402-S410 повторяются для каждого N×N блока, в то же время «1» добавляется к индексу «blk» (этап S409) до тех пор, пока blk не достигнет общего числа maxBlk блоков (этап S410). Следовательно, декодируется один кадр камеры С. В данном случае (i) декодированные изображения кадров, имеющих одно и то же время, камер А, В, Е и D, и (ii) декодированные изображения прошедших кадров, которые находятся соответственно за один кадр или два кадра перед настоящим кадром, камеры С были уже сохранены в памяти 405 опорных изображений.
Сначала узел 401 декодирования индекса опорного изображения декодирует индекс «bestRefIdx» опорного изображения (этап S402). В соответствии со значением bestRefIdx (этапы S403 и S404) выполняется следующий процесс.
Когда bestRefIdx=0 или 1, это индекс опорного изображения, соответствующий компенсации движения, и данные движения декодируются узлом 403 декодирования данных движения. Затем опорное изображение, соответствующее bestRefIdx (0 или 1), считывается узлом 407 компенсации движения для генерирования предсказываемого изображения (этап S407).
Узел 404 декодирования остатка предсказания декодирует остаток предсказания, и узел 407 компенсации движения добавляет предсказываемое изображение к остатку предсказания (этап S408), таким образом, генерируя декодированное изображение соответствующего N×N блока.
Когда bestRefIdx равен 2 или более, это индекс опорного изображения, соответствующий компенсации параллакса, и считываются опорные изображения, принадлежащие двум камерам, которые соответствуют индексу bestRefIdx опорного изображения, и декодирование выполняется посредством компенсации параллакса.
В данном случае, так как значение данных pNum о числе параметров параллакса назначается индексу bestRefIdx опорного изображения, выполняется процесс, соответствующий pNum. Процесс компенсации параллакса аналогичен первому варианту осуществления (этапы S404-S406). Узел 404 декодирования остатка предсказания декодирует остаток предсказания, и узел 407 компенсации движения добавляет предсказываемое изображение к остатку предсказания (этап S408), таким образом, генерируя декодированное изображение соответствующего N×N блока.
Затем «1» добавляется к индексу «blk» (этап S409), и вышеупомянутая операция повторяется до тех пор, пока blk не достигнет общего числа maxBlk блоков (этап S410), таким образом, декодируя один кадр камеры С.
Вышеописанное соответствие между индексом опорного изображения и «данными для указания, какая из компенсации движения и компенсации параллакса используется, опорного изображения и данных о числе параметров параллакса» представляет собой просто пример, и такое соответствие представляет собой вопрос конструирования, который может быть произвольно определен, когда реализуется настоящее изобретение.
Вышеописанные процессы кодирования и декодирования видео могут быть реализованы посредством использования компьютера и программы программного обеспечения. Такая программа может обеспечиваться посредством сохранения ее на считываемом компьютером носителе записи или по сети.
Промышленная применимость
При компенсации параллакса, используемой для кодирования видеоизображений со многими точками обзора, (i) если эффективность предсказания снижается, когда предсказание выполняется в соответствии с ограничением эпиполярной геометрии, из-за ошибки измерения в параметрах камеры или искажения кодирования в каждом опорном изображении, тогда число параметров для данных параллакса увеличивается, чтобы выполнить предсказание, имеющее высокую степень свободы, и (ii) если эффективность предсказания является достаточной, даже когда предсказание выполняется в соответствии с ограничением эпиполярной геометрии, тогда выполняется предсказание, которое представляет параллакс посредством использования одного параметра. Такой выбор может адаптивно управляться в соответствии с характеристикой каждого кадра или блока (в качестве структурной единицы) в относящемся декодированном изображении. Поэтому может быть получена более высокая эффективность кодирования по сравнению с обычными методами.