СПОСОБ ВИДЕОКОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ, УСТРОЙСТВА ДЛЯ ПРОГРАММЫ ДЛЯ ИХ РЕАЛИЗАЦИИ И ЗАПОМИНАЮЩИЕ НОСИТЕЛИ ДЛЯ ХРАНЕНИЯ ТАКИХ ПРОГРАММ
VIDEO CODING METHOD AND DECODING METHOD, PROGRAM DEVICES FOR REALISING SAID METHODS AND RECORDING MEDIA FOR STORING SAID PROGRAMS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к методикам кодирования и декодирования многоперспективных видеоизображений.
Приоритет испрашивается на основе Японской заявки на патент № 2006-000393, поданной 5 января 2006, содержание которой включено сюда посредством ссылки.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Многоперспективные видеоизображения являются видеоизображениями, полученными фотографированием одного и того же объекта и его фона посредством использования множества камер в различных положениях. Ниже, видеоизображение, полученное посредством использования единственной камеры, называется «двумерное видеоизображение», и набор двумерных видеоизображений, полученных фотографированием одного и того же объекта и его фона, называется «многоперспективное видеоизображение». Существует сильная корреляция между двумерными видеоизображениями (различных камер), включенными в многоперспективное видеоизображение. Если камеры синхронизированы друг с другом, кадры (камер), соответствующие одному и тому же времени, зафиксировали объект и его фон целиком в одинаковом состоянии так, что имеется сильная корреляция между камерами.
Сначала будут показаны известные методики, относящиеся к кодированию двумерных видеоизображений. Во многих известных методах кодирования двумерных видеоизображений, таких как H.264, MPEG-4, MPEG-2 (которые являются международными стандартами кодирования) и аналогичных им, высокоэффективное кодирование выполняется посредством компенсации движения, ортогонального преобразования, квантования, кодирования с переменной длиной поля или т.п.
Например, в H.264, каждый I-кадр может кодироваться посредством внутрикадровой корреляции; каждый P-кадр может кодироваться посредством межкадровой корреляции совместно с множеством предшествующих кадров; и каждый B-кадр может кодироваться посредством межкадровой корреляции совместно с множеством предшествующих или последующих кадров.
Хотя Непатентный Документ 1 описывает подробно методики H.264, их краткий обзор будет дан ниже. В каждом I-кадре кадр разделяется на блоки (названные «макроблоки», размер каждого блока равен 16×16 (пикселов)) и внутрикадровое предсказание (интрапредсказание) выполняется в каждом макроблоке. При интрапредсказании каждый макроблок дополнительно разделяется на меньшие блоки (названные ниже «подблоки»), и индивидуальный способ интракодирования может применяться для каждого подблока.
В каждом P-кадре интрапредсказание или интерпредсказание (межкадровое предсказание) может выполняться в каждом макроблоке. Интрапредсказание, применяемое к P-кадру, является аналогичным таковому, применяемому к I-кадру. При интер-предсказании выполняется компенсация движения. Также при компенсации движения каждый макроблок разделяется на меньшие блоки и каждый подблок может иметь индивидуальный вектор движения и индивидуальное эталонное изображение.
Также в каждом B-кадре может выполняться интрапредсказание и интерпредсказание. При интер-предсказании B-кадра, в дополнение к предшествующему кадру, последующий кадр может считаться эталонным изображением при компенсации движения. Например, при кодировании последовательности кадров «I→B→B→P» кадры могут кодироваться в порядке «I→P→B→B». Также в каждом B-кадре компенсация движения может выполняться, основываясь на I- или P-кадре. Дополнительно, аналогично P-кадру, каждый подблок (полученный разделением макроблока) может иметь индивидуальный вектор движения.
При выполнении интрапредсказания или интерпредсказание, получают остаток предсказания. В каждом макроблоке блок остатка предсказания подвергается DTC (дискретному косинусному преобразованию) с тем, чтобы выполнить квантование. Полученные квантованные значения коэффициентов DCT затем подвергаются кодированию с переменной длиной.
В известном способе для кодирования многоперспективных видеоизображений многоперспективные видеоизображения кодируются с высокой эффективностью посредством «компенсации смещения», в котором компенсация движения применяется к изображениям, полученным разными камерами в одно и то же время. Здесь «смещение» является разностью между положениями, в которые одна и та же точка на объекте проецируется, на плоскости изображения камер, которые располагаются в разных положениях.
Фиг.9 является схематичным видом, показывающим концепцию смещения, сформированного между такими камерами. В схематичном виде плоскость изображения камер, чьи оптические оси являются параллельными друг другу, смотрят вертикально снизу. Обычно такие точки, в которые проецируется одна и та же точка на объекте, на плоскости изображения разных камер называются «соответствующие точки». Так как смещение может быть представлено в качестве позиционной разности на соответственной плоскости изображения, оно может быть представлено как данные двумерного вектора.
При компенсации смещения соответствующая точка на изображении опорной камеры, которая соответствует целевому пикселу в изображении целевой камеры для соответствующего кодирования, оценивается с помощью эталонного изображения, и значение пиксела целевого пиксела предсказывается посредством использования значения пиксела, назначенного соответствующей точке. Ниже такое «оцененное смещение» также называется «смещение» для удобства объяснения.
Непатентный документ 2 описывает способ кодирования, использующий компенсацию смещения, и в таком способе данные смещения и каждый остаток предсказания кодируются в отношении пикселов целевого изображения, подлежащего кодированию. Более конкретно, в соответствующем способе компенсация смещения выполняется для каждого блока в качестве единицы, где такое смещение для каждого единичного блока представляется с помощью двумерного вектора. Фиг.10 является схематичным видом, показывающим вектор смещения. А именно, в этом способе кодируются данные смещения в качестве двумерного вектора и соответствующий остаток предсказания. Так как этот способ не использует параметры камеры при кодировании, он является эффективным, когда параметры камеры не известны.
В дополнение, когда имеется множество эталонных изображений, полученных различными камерами, компенсация смещения может выполняться, используя методику изображения с произвольной перспективой. Непатентный Документ 3 описывает компенсацию смещения c использованием методики изображения произвольной перспективой. Более конкретно, каждое значение пиксела изображения, полученного условной камерой для соответствующего кодирования, предсказывается посредством интерполяции, использующей значения пикселов соответствующих точек (принадлежащих разным камерам), которые соответствуют соответственному пикселу. Фиг.11 является схематичным видом, показывающим такую интерполяцию. При интерполяции значение пиксела m в целевом изображении, подлежащем кодированию, предсказывается посредством выполнения интерполяции между пикселами m' и m'' эталонных изображений 1 и 2, где пикселы m' и m'' соответствуют пикселу m.
Когда есть два или более эталонных изображений, полученных разными камерами (как описано в Патентном Документе 3), смещение от каждого пиксела заданного изображения (подлежащего кодированию) до каждого эталонного изображения может оцениваться без использования целевого изображения. Фиг.12 является схематичным видом для показа концепции такой оценки смещения.
Как показано на фиг.12, при истинном смещении значения пикселов соответствующих точек между соответствующими эталонными изображениями будут почти идентичны друг другу. Поэтому во многих способах оценки смещения в отношении каждой из различных глубин значения пикселов соответствующих точек между эталонными изображениями сравниваются друг с другом, и смещение может оцениваться на основе глубины, которая дает близкие значения пикселов. Такой процесс может применяться для каждого пиксела целевого изображения, подлежащего кодированию.
Как описано выше, когда есть два или более эталонных изображений, полученных разными камерами, и оценка смещения возможна на декодирующей стороне, тогда компенсация смещения может выполняться на декодирующей стороне, используя данные смещения для каждого пиксела, без обеспечения данных смещения, которые явно кодируются на кодирующей стороне, для декодирующей стороны.
Непатентный документ 1: ITU-T Rec.H.264/ISO/IEC 11496-10, «Advanced Video Coding», Final Committee Draft, Document JVT-E022, September 2002.
Непатентный документ 2: Hideaki Kimata and Masaki Kitahara, «Preliminary results on multiple view video coding (3DAV)», document M10976 MPEG Redmond Meeting, July 2004.
Непатентный документ 3: Masayuki Tanimoto, Toshiaki Fujii, «Response to Call for Evidence on Multi-View Video Coding», document Mxxxxx MPEG Hong Kong Meeting, January 2005.
В известных методиках, когда имеется два или более эталонных изображений, полученных разными камерами, и оценка смещения возможна на декодирующей стороне, тогда компенсация смещения может выполняться на декодирующей стороне посредством использования данных смещения для каждого пиксела, без предоставления данных смещения, которые явно кодируются на кодирующей стороне, для декодирующей стороны. Такое смещение по отношению к целевому изображению, подлежащему кодированию или декодированию, которое может оцениваться на кодирующей или декодирующей стороне без использования целевого изображения (для декодирования, без декодирования соответствующего изображения), называется «эталонное смещение».
Однако эталонное смещение, которое оценивается на декодирующей стороне, не является оптимальным в отношении эффективности предсказания, и объем кода, назначенного для соответствующего остатка предсказания, может увеличиваться. Когда смещение для максимизации эффективности предсказания вычисляется на кодирующей стороне и разность (названная ниже «сдвиг смещения») между вычисленным смещением и эталонным смещением кодируется для каждого пиксела, эффективность предсказания может улучшаться, в результате повышая эффективность кодирования в отношении остатка предсказания.
Однако в такой методике, что может легко ожидаться, так как сдвиг смещения кодируется для каждого пиксела, объем кода данных смещения увеличивается, так что итоговая эффективность кодирования не может быть высокой.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Для решения указанной выше проблемы задачей настоящего изобретения является уменьшение объема кода данных смещения без создания существенного ухудшения точности компенсации смещения.
Наиболее отличительный признак настоящего изобретения, в сравнении с известными методиками, заключается в том, что для решения описанных выше проблем выполняется процесс определения разделения на блоки и процесс кодирования определенных таким образом данных разделения на блоки и данных сдвига смещения для каждого блока, и такие данные обрабатываются как кодированные данные.
В первом режиме способов видеокодирования и декодирования по настоящему изобретению на основе разделения на области, которое задается в соответствии с характеристикой целевого изображения, подлежащего кодированию, могут кодироваться данные сдвига смещения для каждой полученной разделением области.
Обычно сдвиг смещения имеет пространственную корреляцию в кадре изображения. Поэтому, когда задается соответствующее разделение на области и сдвиг смещения кодируется для каждой полученной разделением области, тогда объем кода данных смещения может быть сокращен без уменьшения эффективности предсказания компенсации смещения.
На стороне видеокодирования, на этапе задания эталонного смещения, смещение для целевого изображения, подлежащего кодированию (т.е. эталонное смещение), задается, используя уже кодированные данные (т.е. эталонное изображение), и на этапе задания разделения на области задается разделение на области в кадре целевого изображения. На этапе задания сдвига смещения задается сдвиг смещения для каждой полученной разделением области, заданной при разделении на области. Дополнительно, на этапе кодирования данных разделения на области кодируются данные разделения на области для указания разделения на области, и на этапе кодирования данных сдвига смещения кодируются данные сдвига смещения.
В качестве эталонного смещения, задаваемого на этапе задания эталонного смещения, используется (i) смещение, оцененное с использованием эталонного изображения на основе принципа, который показан на фиг.12 (ссылка на третий режим, который объяснен позже); (ii) смещение на основе изображения смещения или трехмерной модели, которое кодируется другим устройством с тем, чтобы, например, сформировать изображение с произвольной перспективой, и посылается на декодирующую сторону; или (iii) смещение, полученное другим способом.
На декодирующей стороне на этапе задания эталонного смещения, аналогично кодирующей стороне, эталонное смещение для целевого изображения, подлежащего декодированию, задается, используя уже декодированные данные (т.е. эталонное изображение). На этапе декодирования данных разделения на области данные разделения на области декодируются, и на этапе декодирования данных сдвига смещения декодируются данные сдвига смещения для каждой области в соответствии с данными разделения на области.
Второй режим способов видеокодирования и декодирования по настоящему изобретению в основном аналогичен описанному выше первому режиму. Однако во втором режиме разделение на области выполняется для того, чтобы сформировать прямоугольные блоки. Более конкретно, разделение на прямоугольные блоки (ссылка на фиг.10, поясняемую позже) определяется для каждого макроблока. Данные для такого разделена на блоки могут эффективно кодироваться посредством использования известной методики энтропийного кодирования (например, энтропийного кодирования по H.264).
Третий режим способов видеокодирования и декодирования по настоящему изобретению в основном аналогичен описанным выше первому и второму режимам. Однако в третьем режиме используется эталонное смещение, которое оценивается по множеству эталонных изображений без использования целевого изображения, подлежащего кодированию (т.е. в соответствии с описанным выше принципом, который показан на фиг.12). Когда эталонное смещение оценивается, используя эталонные изображения, как объяснено выше, оно может быть оценено посредством использования только данных, которые уже были отправлены на декодирующую сторону. Поэтому возможно не формировать дополнительные данные, подлежащие кодированию, с тем, чтобы оценивать эталонное смещение.
В соответствии с настоящим изобретением в способах видеокодирования и декодирования для оценки смещения посредством использования эталонных изображений пространственная корреляция данных сдвига смещения используется с тем, чтобы объем кода данных сдвига смещения мог быть уменьшен без снижения эффективности предсказания при компенсации смещения, в результате чего повышается совокупная эффективность кодирования.
ПЕРЕЧЕНЬ ФИГУР ЧЕРТЕЖЕЙ
Фиг.1 - блок-схема, показывающая устройство видеокодирования как вариант осуществления настоящего изобретения.
Фиг.2 - блок-схема, показывающая эталонные отношения между камерами в варианте осуществления.
Фиг.3 - блок-схема, показывающая расположение камер в варианте осуществления.
Фиг.4 - блок-схема последовательности операций кодирования в варианте осуществления.
Фиг.5 - подробная блок-схема последовательности операций по этапу S106 на фиг.4.
Фиг.6 - блок-схема, показывающая примеры разделения на блоки в каждом макроблоке.
Фиг.7 - блок-схема, показывающая устройство видеодекодирования в варианте осуществления.
Фиг.8 - блок-схема последовательности операций декодирования в варианте осуществления.
Фиг.9 - схематичный вид, показывающий концепцию смещения, сформированного между камерами.
Фиг.10 - схематичный вид, показывающий вектор смещения.
Фиг.11 - схематичный вид, показывающий интерполяцию значений пикселов.
Фиг.12 - схематичный вид, показывающий концепцию оценки смещения.
НАИЛУЧШИЙ РЕЖИМ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
Фиг.1 является блок-схемой, показывающей структуру устройства видеокодирования в качестве варианта осуществления настоящего изобретения.
Устройство 100 видеокодирования включает в себя секцию 101 ввода изображения, в которую вводится каждое исходное изображение камеры C (т.е. целевое изображение, подлежащее кодированию); секцию 102 ввода эталонного изображения, в которую вводятся декодированные изображения (в качестве эталонных изображений) камер A и B; память 103 эталонных изображений для сохранения каждого эталонного изображения; секция 104 задания эталонного смещения для получения эталонного смещения посредством использования эталонных изображений; секция 105 задания сдвига смещения для получения сдвига смещения; секция 106 задания разделения на блоки для задания состояния разделения на блоки; секция 107 кодирования данных разделения на блоки для кодирования данных разделения на блоки; секция 108 кодирования данных сдвига смещения для кодирования данных сдвига смещения; и секция 109 кодирования остатка предсказания для кодирования соответствующего остатка предсказания.
Фиг.2 является блок-схемой, показывающей эталонные отношения между камерами в настоящем варианте осуществления. Как показано на фиг.2, в настоящем варианте осуществления для кодирования многоперспективных видеоизображений, полученных тремя камерами, видеоизображения камеры C кодируются, используя декодированные изображения камер A и B, в качестве эталонных изображений.
Стрелки на фиг.2 представляют эталонные отношения при компенсации смещения. Для кодирования каждого изображения камеры C декодированные изображения (камер A и B), имеющие одинаковое время отображения, кодируются как эталонные изображения. В соответствующем процессе предсказанное изображение формируется вычислением среднего между значениями пикселов соответствующих точек, принадлежащих камерам A и B (каждая соответствующая точка является пикселом, указываемым вектором, который обеспечивается суммой соответствующего вектора сдвига смещения и вектора эталонного смещения).
Фиг.3 является блок-схемой, показывающей расположение камер в настоящем варианте осуществления. В настоящем варианте осуществления, как показано на фиг.3, точки съемок трех камер устанавливаются вдоль прямой линии через одинаковое расстояние, и оптические оси камер перпендикулярны прямой линии. А именно, оптические оси трех камер являются параллельными друг другу.
Дополнительно, система координат x-y на соответствующей плоскости изображения может быть получена посредством параллельной трансляции (не выполняется поворот или т.п.) по отношению к прямой линии, на которой камеры располагаются, и пикселы формируются посредством разделения каждой из осей x и y плоскости изображения на одинаковые интервалы для каждой камеры. А именно, каждая камера имеет одинаковое разрешение, и смещение P пикселов между камерами C и A соответствует смещению P пикселов между камерами C и B.
Фиг.4 является блок-схемой последовательности операций кодирования в настоящем варианте осуществления. Фиг.5 является подробной блок-схемой последовательности операций по этапу S106 на фиг.4.
В настоящем изобретении макроблок, состоящий из 16х16 пикселов (в вертикальном и горизонтальном направлениях), используется как единица и назначается (состояние) разделения на блоки в каждом макроблоке. Данные сдвига смещения получаются для каждого блока, определенного при разделении на блоки, (просто называемого «блок» для упрощения), и кодируются.
Эталонное смещение представляется с помощью двумерного вектора. Поэтому на стороне декодирования (и стороне кодирования) двумерный вектор (т.е. эталонное смещение) для каждого эталонного изображения получается для каждого пиксела посредством использования эталонного изображения.
С другой стороны, единственный сдвиг смещения (для камеры A), представленный двумерным вектором, кодируется для каждого блока. Здесь, аналогично вычислению эталонного смещения, принимается условие физического ограничения, при котором каждый вектор (смещение) (используемый для компенсации смещения), который представляется как сумма вектора эталонного смещения и вектора сдвига смещения для каждого пиксела каждого из эталонных изображений, обозначает одинаковое положение в объекте. В этом случае, если вектор сдвига смещения для камеры A известен, вектор сдвига смещения для другой камеры однозначно определяется.
Взамен сдвиг смещения для каждого эталонного изображения может быть независимо вычислен и кодирован без принятия такого условия ограничения. Однако такой способ может быть легко реализован как вариация настоящего варианта осуществления, и конкретные пояснения его опускаются.
Есть много возможных состояний разделения на блоки, применимых к каждому макроблоку. Фиг.6 показывает их примеры. Как показано на фиг.6, «blkMode» является индексом для указания типа разделения на блоки, и число блоков для каждого «blkMode» обозначается как «maxBlk[blkMode]».
При указанных выше условиях операция кодирования будет объяснена со ссылкой на блок-схему последовательности операций фиг.4.
Сначала изображение камеры C вводится в секцию 101 ввода изображения (см. этап S101), где декодированные изображения, которые принадлежат камерам A и B и имеют одинаковое время отображения, сохраняются в памяти 103 эталонных изображений через секцию 102 ввода эталонного изображения.
Далее, соответствующие декодированные изображения камер A и B вводятся из памяти 103 эталонного изображения (см. этап S102), и эталонное смещение для каждого пиксела целевого изображения, подлежащего кодированию, получается для каждого введенного эталонного изображения посредством использования эталонных изображений (см. этап S103). А именно, два эталонных изображения, которые принадлежат камерам A и B, вводятся в секцию 104 задания эталонного смещения, и получается эталонное смещение для каждого пиксела целевого изображения камеры C.
A
b
Соответственно, два «двумерных вектора» получаются для каждого пиксела целевого изображения камеры C. Для координат (x,y) на плоскости изображения камеры C (каждая из x и y является целым, которое указывает значение координаты соответствующего пиксела) векторы эталонных смещений для камер A и B соответственно обозначаются как d[x,y] и d[x,y].
В дополнение, «MBBlk» является индексом, указывающим каждый макроблок, и число макроблоков обозначается как «maxMBBBlk».
После того, как индекс MBBlk для каждого макроблока инициализирован в ноль (см. этап S104), следующие этапы (S105 - S111) повторно применяются к каждому микроблоку, в то время как «1» добавляется к индексу MBBlk (см. этап S110).
Сначала, после того как (индекс) blkMode разделения на блоки инициализируется в ноль (см. этап S105), вычисляется стоимостное выражение соотношения между скоростью и качеством для соответствующего макроблока MMBlk и индекс blkMode разделения на блоки (см. этап S106), в то время как «1» добавляется к разделению блока blkMode (см. этап S107) до тех пор, пока индекс blkMode разделения на блоки не достигает максимального значения индекса «maxBlkMode» (см. этап S108). А именно, в секции 105 задания сдвига смещения вычисляется стоимостное выражение соотношения между скоростью и качеством «MBCost» для каждого индекса blkMode разделения на блоки.
Стоимостное выражение MBCost соотношения между скоростью и качеством для любого индекса blkMode разделения на блоки получается посредством вычисления стоимостного выражения «blkCost» соотношения между скоростью и качеством для каждого блока (совокупное число блоков обозначается «maxBlk[blkMoode]») и вычисления итоговой суммы стоимостных выражений blkCost соотношения между скоростью и качеством.
Стоимостное выражение blkCost соотношения между стоимостью и качеством для любого блока может быть получено как минимальное значение стоимостного выражения соотношения между скоростью и качеством («стоимости»), полученного при использовании вектора сдвига смещения. Поэтому, для каждого блока должен вычисляться вектор сдвига смещения для минимизации «стоимости» и сама «стоимость».
0
1
N-1
A
n
Здесь поиск сдвига смещения, используемого для кодирования, выполняется вблизи соответствующего эталонного смещения. А именно, «e, e, …, e» определяются как кандидаты для вектора сдвига смещения и процесс вычисления стоимостного выражения соотношения между скоростью и качеством для вектора смещения «d[x,y]+e» повторяется для «n=0, 1, …, N-1» с тем, чтобы оптимально кодировать вектор смещения для настоящего блока.
n
n
n
Для вычисления «стоимости» сначала вычисляется итоговая сумма «SAD[e] абсолютных значений остатка предсказания для соответствующего блока, который получается при использовании вектора сдвига смещения. Кроме того, также вычисляется оцененный объем R[e] кода вектора сдвига смещения, который получается при кодировании вектора e сдвига смещения. «Стоимость» (Cost) вычисляется по следующей формуле:
Cost=SAD[e<sub>n</sub>]+λR[e<sub>n</sub>]
(1)
Далее, в секции 106 разделения на блоки, разделение на блоки «bestBlkMode» для минимизации стоимостного выражения MBCost соотношения между скоростью и качеством вычисляется для каждого макроблока MBBlk (соответствующий вектор сдвига смещения уже получен).
Фиг.5 показывает подробный процесс по этапу S106.
Сначала стоимостное выражение MBCost соотношения между скоростью и качеством соответствующего макроблока и значение индекса блока «blk» каждое инициализируется в ноль (см. этап S1061), и получается вектор сдвига смещения для минимизации стоимостного выражения blkCost соотношения между скоростью и качеством блока «blk» (см. этап S1062).
После того как полученное стоимостное выражение blkCost соотношения между скоростью и качеством соответствующего блока добавлено к стоимостному выражению MBCost соотношения между скоростью и качеством макроблока (см. этап S1063), «1» добавляется к блоку «blk», и этапы S1062-S1064 повторяются до тех пор, пока блок «blk» не достигнет совокупного числа maxBlk[blkMode] блоков (см. этап S1065).
Когда блок «blk» достигает совокупное число maxBlk[blkMode] блоков, определяется, является ли текущее вычисленное стоимостное выражение MBCost соотношения между скоростью и качеством макроблока меньшим, чем текущее минимальное стоимостное выражение minMBCost соотношения между скоростью и качеством макроблока (см. этап S1066). Если меньше, то стоимостное выражение MBCost соотношения между скоростью и качеством сохраняется как минимальное стоимостное выражение minMBCost соотношения между скоростью и качеством и соответствующий индекс blkMode разделения на блоки сохраняется как оптимальное разделение на блоки bestBlkMode (см. этап S1067).
В соответствии с указанной выше операцией получаются данные разделения на блоки «bestBlkMode», данные сдвига смещения (т.е. вектор сдвига смещения) и остаток предсказания, сформированный посредством компенсации смещения, которые используются для компенсации смещения макроблока MBBlk. Далее, данные разделения на блоки «bestBlkMode» кодируются в секции 107 кодирования данных разделения на блоки, и данные сдвига смещения, соответствующие bestBlkMode, кодируются в секции 108 кодирования данных сдвига смещения (см. этап S109).
Кроме того, остаток предсказания, соответствующий данным сдвига смещения, кодируется в секции 109 кодирования остатка предсказания.
Фиг.7 показывает устройство видеодекодирования, используемое в настоящем варианте осуществления. Устройство 200 видеодекодирования включает в себя секцию 201 декодирования данных разделения на блоки; секцию 202 декодирования данных сдвига смещения; секцию 203 декодирования остатка предсказания; секцию 204 компенсации смещения; и память 205 эталонных изображений.
Фиг.8 является блок-схемой последовательности операций декодирования, используя устройство 200 видеодекодирования в настоящем варианте осуществления. Эта блок-схема показывает процесс декодирования одного кадра камеры C и будет объяснена подробно ниже. Здесь кадры камер A и B с одним и тем же временем заранее декодированы и декодированные изображения сохранены в памяти 205 эталонных изображений.
Сначала, соответствующие декодированные изображения камер A и B вводятся из памяти 205 эталонных изображений (см. этап 201), и эталонное смещение для каждого пиксела целевого изображения, подлежащего кодированию, получается, используя каждое эталонное изображение (см. этап S202). А именно, два эталонных изображения, принадлежащих камерам A и B, вводятся в секцию 204 компенсации смещения и получается компенсация смещения для каждого пиксела соответствующего изображения камеры C. Соответственно, два «двумерных вектора» получаются для каждого пиксела в изображении камеры C.
Далее, после того как индекс MBBlk макроблока инициализирован в ноль (см. этап S203), следующие этапы (S204-212) повторяются для каждого макроблока соответствующего одного кадра, в то время как «1» добавляется к MBBlk (см. этап S211) («maxMBBlk» обозначает число макроблоков в одном кадре). Соответственно, декодируется соответствующий один кадр камеры C.
При декодировании каждого макроблока, во-первых, данные разделения на блоки bestBlkMode для макроблока MBBlk декодируются секцией 201 декодирования данных разделения на блоки (см. этап S204). Далее, после того как значение индекса блока «blk» инициализировано в ноль (см. этап S205), следующие этапы (S206-S209) повторяются для каждого блока «blk» («maxBlk[blkMode]» означает максимальное число блоков).
Сначала, в секции 202 декодирования данных сдвига смещения, декодируются данные сдвига смещения для блока «blk» (см. этап S206), и предсказанное изображение для блока «blk» формируется, используя данные сдвига смещения, и эталонное смещение (т.е. посредством выполнения интерполяции между значениями пикселов камер A и B) (см. этапы S207).
В соответствии с указанным выше процессом повторения для блока «blk» формируется предсказанное изображение для макроблока MBBlk. Поэтому остаток предсказания для макроблока MBBlk декодируется в секции 203 декодирования остатка предсказания, и секция 204 компенсации смещения вычисляет сумму предсказанного изображения и остатка предсказания, в результате чего получая декодированное изображение макроблока MBBlk (см. этап S210).
Указанная выше операция повторяется для каждого макроблока в соответствующем одном кадре (см. этапы S211 и S212), тем самым декодируя один кадр камеры C.
В настоящем варианте осуществления изображение камеры C кодируется посредством отсылки к другим камерам (A и B). Однако такой случай выполнения кодирования посредством отсылки к другим камерам и другой случай выполнения компенсации движения посредством отсылки к декодированному изображению камеры C могут адаптивно переключаться в кадре изображения (т.е. для изображения).
Более конкретно, переключение между компенсацией смещения и компенсацией движения может выполняться для каждого полученного разделением блока, показанного на фиг.6. В этом случае сторона видеокодирования будет кодировать данные для указания того, что из компенсации смещения и компенсации движения используется, и сторона видеодекодирования будет декодировать данные.
Описанный выше процесс видеокодирования и декодирования может быть реализован посредством использования компьютера и компьютерной программы. Такая программа может обеспечиваться посредством сохранения ее в машиночитаемом запоминающем носителе или через сеть.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
В способах видеокодирования и декодирования для оценки смещения посредством использования эталонных изображений, пространственная корреляция данных сдвига смещения используется с тем, чтобы объем кода данных сдвига смещения мог быть уменьшен без снижения эффективности предсказания при компенсации смещения, тем самым повышая совокупную эффективность кодирования.