СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВА ДЛЯ НИХ, ПРОГРАММА ДЛЯ НИХ И НОСИТЕЛЬ ИНФОРМАЦИИ ДЛЯ ХРАНЕНИЯ ПРОГРАММ
METHOD OF CODING AND METHOD OF DECODING OF IMAGES, DEVICES FOR THEM, PROGRAM FOR THEM AND INFORMATION MEDIUM FOR STORAGE OF PROGRAMS

Область техники
Настоящее изобретение относится к способам кодирования и декодирования изображений с множеством точек обзора.
Испрашивается приоритет японской патентной заявки № 2006-253845, поданной 20 сентября 2006, содержание которой включено в настоящий документ посредством ссылки.
Предшествующий уровень техники
Изображения с множеством точек зрения - это изображения, полученные фотографированием того же самого объекта и его фона с использованием множества камер, и видеоизображения с множеством точек зрения - это видеоизображения для изображений с множеством точек зрения. Ниже видеоизображение, полученное единственной камерой, называется "двумерным видеоизображением", а набор множества двумерных видеоизображений, полученных фотографированием того же самого объекта и его фона, называется "видеоизображением с множеством точек зрения".
Так как между двумерными видеоизображениями имеет место сильная корреляция, эффективность их кодирования улучшается за счет использования такой корреляции. С другой стороны, когда камеры для получения изображений с множеством точек зрения или видеоизображений с множеством точек зрения синхронизированы друг с другом, изображения (камер), соответствующие одному и тому же времени, зафиксировали отображаемый объект и его фон полностью в том же самом состоянии из различных положений, так что имеется сильная корреляция между камерами. Эффективность кодирования изображений с множеством точек зрения или видеоизображений с множеством точек зрения может быть улучшена за счет использования этой корреляции.
Сначала будут показаны обычные методы, относящиеся к кодированию двумерных видеоизображений.
Во многих известных методах кодирования двумерных видеоизображений, таких как H.264, MPEG-2, MPEG-4 (которые являются международными стандартами кодирования) и т.п., весьма эффективное кодирование выполняется посредством компенсации движения, ортогонального преобразования, квантования, энтропийного кодирования и т.п. Например, в H.264, кодирование может быть выполнено посредством временной корреляции вместе с множеством прошлых или будущих кадров.
Например, непатентный документ 1 раскрывает детализированные методы компенсации движения, используемые в H.264. Общие объяснения этого приведены ниже.
В соответствии с компенсацией движения в H.264 целевой кадр для кодирования может быть разделен на блоки любого размера, и каждый блок может иметь индивидуальный вектор движения и опорное изображение. Кроме того, опорное изображение подвергается фильтрации, чтобы генерировать видеоизображение, основанное на половине или одной четвертой положения пиксела, таким образом реализуя компенсацию движения более высокой точности уровня одной четверти пиксела и, таким образом, реализуя кодирование, имеющее более высокую эффективность по сравнению с кодированием, основанным на любом обычном международном стандарте кодирования.
Далее будет рассмотрен обычный способ кодирования изображений с множеством точек зрения или видеоизображений с множеством точек зрения.
Различие между кодированием изображений с множеством точек зрения и кодированием видеоизображений с множеством точек зрения заключается в том, что видеоизображения с множеством точек зрения имеют не только корреляцию между камерами, но также и временную корреляцию. Однако тот же самый способ, использующий корреляцию между камерами, может быть применен и к изображениям с множеством точек зрения, и к видеоизображениям с множеством точек зрения. Поэтому ниже будут объяснены способы, используемые в кодировании видеоизображений.
Поскольку кодирование видеоизображений с множеством точек зрения использует корреляцию между камерами, видеоизображения с множеством точек зрения кодируются с высокой эффективностью в известном способе, который использует "компенсацию параллакса (или несоответствия)", в котором компенсация движения применена к изображениям, полученным различными камерами в то же самое время. Здесь "параллакс" (или несоответствие) является различием между положениями, в которые проецируется та же самая точка на отображаемом объекте, в плоскостях изображения камер, которые расположены в различных положениях.
Фиг.8 - схематичное представление, показывающее принцип параллакса, создаваемого между такими камерами. В схематичном представлении по фиг.8 плоскости изображения камер, оптические оси которых параллельны друг другу, обращены вниз (вертикально) от их верхней стороны. Вообще, такие точки, в которые проецируется одна и та же точка на отображаемом объекте, в плоскостях изображения различных камер, называются "соответствующими точками".
В компенсации параллакса, основанной на вышеупомянутом соотношении соответствия, каждое пиксельное значение целевого кадра для кодирования предсказывается с использованием опорного кадра, и соответствующий остаток предсказания и данные параллакса, которые указывают отношение соответствия, кодируются.
При использовании параметров камеры и ограничения эпиполярной геометрии, вышеупомянутое соотношение соответствия может быть представлено одномерной величиной, такой как расстояние от одной (в качестве стандарта) из камер до отображаемого объекта, без использования двумерного вектора.
На фиг.9 приведено схематичное представление, показывающее принцип ограничения эпиполярной геометрии. В соответствии с ограничением эпиполярной геометрии, когда точка в изображении камеры соответствует точке в изображении другой камеры, точка другой камеры ограничена на прямой линии, называемой "эпиполярной линией". В таком случае, если расстояние от камеры до отображаемого объекта получено для соответствующего пиксела, соответствующая точка может быть определена на эпиполярной линии способом однозначного соответствия.
Например, как показано на фиг.9, точка отображаемого объекта, которая спроецирована в положение "m" в изображении камеры A, проецируется (в изображении камеры B) (i) в положение m' на эпиполярной линии, когда соответствующая точка отображаемого объекта в действительном пространстве есть положение М', (ii) в положение m" на эпиполярной линии, когда соответствующая точка отображаемого объекта в действительном пространстве есть положение М", и (iii) в положение m'" на эпиполярной линии, когда соответствующая точка отображаемого объекта в реальном пространстве есть положение М'".
На фиг.10 представлена диаграмма для пояснения того, что соответствующие точки могут быть получены между множеством камер, когда предоставлено расстояние от одной из камер до отображаемого объекта.
Вообще, параллакс изменяется в зависимости от целевого кадра для кодирования, и, таким образом, данные параллакса должны кодироваться для каждого целевого кадра. Однако расстояние от камеры до отображаемого объекта определяется в соответствии с физическими состояниями отображаемого объекта, и, таким образом, соответствующие точки на изображениях множества камер могут быть представлены, используя только данные расстояния от камеры до отображаемого объекта.
b
c
a
Например, как показано в фиг.10, как соответствующая точка m в изображении камеры B, так и соответствующая точка m в изображении камеры C, каждая из которых соответствует точке m в изображении камеры A, может быть представлена с использованием только данных расстояния от положения точки зрения камеры до точки М на отображаемом объекте.
В соответствии с вышеуказанными характеристиками, когда данные параллакса представлены расстоянием от камеры соответствующего опорного изображения к отображаемому объекту, можно осуществить компенсацию параллакса из опорного изображения до всех кадров, полученных другими камерами в то же самое время, где были получены позиционные соотношения между камерами. В непатентном документе 2 число элементов данных параллакса, которые должны кодироваться, уменьшается с использованием вышеуказанных характеристик, чтобы выполнять весьма эффективное кодирование видеоизображений с множеством точек зрения.
Непатентный документ 3 представляет собой документ предшествующего уровня техники, который раскрывает способ, упоминаемый в варианте осуществления (объясняется ниже) настоящего изобретения, и объяснения, касающиеся параметров для индикации позиционных соотношений между множеством камер и параметров для индикации данные проецирования (камерой) на плоскость изображения.
Непатентный документ 1: ITU-T Rec. H.264/ISO/IEC 11496-10, "Editor's Proposed Draft Text Modifications for Joint Video Specification (ITU-T Rec.H.264/ISO/IEC 14496-10 AVC), Draft 7", Final Committee Draft, Document JVT-E022, pp. 10-13, 62-68, September 2002.
Непатентный документ 2: Shinya SHIMIZU, Masaki KITAHARA, Kazuto KAMIKURA и Yoshiyuki YASHIMA, "Multi-view Video Coding based on 3-D Warping with Depth Map", Proceedings of Picture Coding Symposium 2006, SS3-6, April, 2006.
Непатентный документ 3: Oliver Faugeras, Three-Dimension Computer Vision-MIT Press; BCTC/UFF-006.37 F259 1993-ISBN:0-262-06158-9, pp. 33-68.
Раскрытие изобретения
Проблемы, решаемые изобретением
Конечно, в соответствии со способом, раскрытым в непатентном документе 2, можно кодировать данные параллакса с меньшим объемом кода по сравнению со случаем, в котором данные параллакса закодированы для каждого целевого изображения для кодирования.
Так как кодирование изображений с множеством точек зрения имеет целью кодировать каждый пиксел целевого изображения для кодирования, необходимо в компенсации параллакса предсказывать значение каждого пиксела в целевом изображении. Однако в способе для обеспечения расстояния от камеры до отображаемого объекта для каждого пиксела в опорном изображении соответствующий пункт в опорном изображении фиксируется, и таким образом соответствующий пункт в целевом изображении для кодирования не всегда совпадает с соответствующим пикселом. В таком случае следующие три способа могут легко предвидеться в качестве способа для предсказания.
В первом способе выполняется определение расстояния так, чтобы каждая соответствующая точка в целевом изображении всегда совпадала с положением соответствующего пиксела.
Однако для множества целевых изображений для кодирования расстояние для реализации такого совпадения с положением соответствующего пиксела ограничено. Поэтому данный способ не может достигнуть компенсации параллакса для сокращения ошибки предсказания и, таким образом, ухудшает полную эффективность кодирования.
Во втором способе определенная соответствующая точка в целевом изображении для кодирования округляется так, чтобы совпадать с ближайшим пикселом.
В этом способе может быть выполнена почти точная компенсация параллакса. Однако процесс округления обуславливает не малое ухудшение точности предсказания. Кроме того, данные, которые были получены с использованием кодированных данных параллакса, являются округленными. Поэтому, по сравнению со случаем кодирования округленных данных, кодируются избыточные данные.
В третьем способе, после получения соответствующей точки в целевых изображениях (для кодирования) для каждого пиксела в опорном изображении, каждый пиксел в целевом изображении подвергается интерполяции с использованием значений пикселов полученных соответствующих точек вокруг соответствующего пиксела.
В третьем способе могут использоваться все кодированные данные параллакса. Однако в этом способе значения пикселов всего целевого изображения для кодирования должны быть определены посредством интерполяции с использованием дискретных значений пикселов, что требует очень высоких затрат на вычисления, чтобы выполнить интерполяцию с высокой точностью. Кроме того, ошибка предсказания из-за компенсации параллакса получается только после того, как соответствующие точки всех пикселов определены. Поэтому, чтобы получить расстояние для кодирования, которое может минимизировать ошибку предсказания, следующий процесс должен повторяться для всех комбинаций элементов данных параллакса, где процесс включает допущение данных параллакса для всех пикселов; определение соответствующих точек в целевом изображении (для кодирования) для всех пикселов в соответствующем опорном изображении с использованием данных предполагаемого параллакса; и генерацию предсказанного изображения для целевого изображения, подвергая соответствующее изображение, для которого получены дискретные значения пикселов, интерполяции, чтобы вычислить ошибку предсказания. Соответственно, объем необходимого вычисления очень велик, и, таким образом, очень трудно получить набор оптимальных элементов данных параллакса.
Кроме того, в способе (как раскрыто в непатентном документе 2) обеспечения расстояния от камеры до отображаемого объекта для каждого пиксела в опорном изображении, каждая соответствующая точка в опорном изображении всегда помещается в положение, определяемое целым числом пикселов. Поэтому невозможно выполнить высокоточную компенсацию, соответствующую точному движению, основываясь на пиксельных значениях в положениях, определяемых десятичным значением пиксела (например, в положениях в половину или четверть пиксела) в опорном изображении, как определено в предсказании движения согласно H.264.
Вообще, для положений, определяемых десятичным значением пиксела (например, положений в половину или четверть пиксела) в опорном изображении, высокоточная компенсация параллакса может быть выполнена путем предоставления расстояние от камеры до отображаемого объекта. Однако число элементов данных параллакса, которые должны быть закодированы, увеличивается, что ухудшает эффективность кодирования.
Кроме того, даже когда расстояние для десятичного пиксельного положения оценивается из расстояния, определенного для целочисленного пиксельного положения, объем вычислений для получения соответствующей точки увеличивается многократно.
В свете вышеупомянутых обстоятельств целью настоящего изобретения является обеспечить способы кодирования и декодирования изображения, посредством которых, когда компенсация параллакса для целевого изображения для кодирования выполняется с использованием данных параллакса, которые представлены, основываясь на расстоянии для опорного изображения от камеры до отображаемого объекта, высокая эффективность кодирования может быть достигнута путем выполнения компенсации параллакса, основываясь на десятичных пиксельных положениях, с использованием максимального объема данных параллакса, которые были использованы для кодирования, без увеличения числа элементов данных параллакса, которые должны кодироваться.
Средства для решения проблемы
Для того чтобы решить вышеописанные проблемы, настоящее изобретение обеспечивает способ кодирования изображений для кодирования изображений с множеством точек зрения, получаемых множеством камер, выполняя предсказание изображений между камерами с использованием уже закодированного опорного изображения и расстояния от одной из камер, которая использовалась для получения опорного изображения до отображаемого объекта, причем способ содержит:
этап определения вектора параллакса, включающий в себя
определение соответствующей точки на каждом целевом изображении для кодирования, которая соответствует каждому пикселу на опорном изображении, основываясь на расстоянии, предусмотренном для каждого пиксела на опорном изображении, и позиционном соотношении между камерой, используемой для получения опорного изображения, и камерой, используемой для получения каждого целевого изображения; и
вычисление вектора параллакса от положения пиксела на опорном изображении к соответствующей точке на целевом изображении в пиксельном пространстве;
этап определения целевого прогнозного вектора, включающий в себя вычисление целевого прогнозного вектора, имеющего ту же самую начальную точку, что и у вектора параллакса, и компоненты, полученные округлением компонентов вектора параллакса до целых чисел путем отбрасывания десятичной части каждого компонента вектора параллакса или выбора целого числа, ближайшего к значению каждого компонента вектора параллакса;
этап определения целевого опорного вектора, включающий в себя вычисление целевого опорного вектора, имеющего ту же самую начальную точку, что и у вектора параллакса, и тот же самый размер и направление, что и у вектора разности между целевым прогнозным вектором и вектором параллакса; и
этап предсказания изображения между камерами, включающий в себя выполнение предсказания изображения между камерами путем установления предсказанного значения пиксела на целевом изображении, которое указано целевым прогнозным вектором, на пиксельное значение в целочисленном или десятичном пиксельном положении на опорном изображении, которое указано целевым опорным вектором.
Соответственно, данные соответствующей точки (которая не всегда позиционирована в целочисленном пиксельном положении) на целевом изображении для кодирования, причем данные предоставляются для каждого целочисленного пиксельного положения на опорном изображении, используются так, чтобы выполнять предсказание изображения посредством компенсации параллакса с использованием пиксельного значения в десятичном пиксельном положении на опорном изображении, для соответствующего целочисленного пиксельного положения на целевом изображении, таким образом обеспечивая высокую эффективность кодирования.
В типичном примере способ кодирования изображений может дополнительно содержать:
этап определения псевдорасстояния для определения псевдорасстояния для каждого пиксела на опорном изображении, где псевдорасстояние указывает соответствующую точку, используемую для предсказания целевого изображения для кодирования из опорного изображения, основываясь на ограничении эпиполярной геометрии; и
этап кодирования псевдорасстояния для кодирования псевдорасстояния, определенного на этапе определения псевдорасстояния,
причем на этапе определения вектора параллакса псевдорасстояние используется как расстояние, предусмотренное для каждого пиксела на опорном изображении.
Псевдорасстояние имеет значение, которым определяется точка на эпиполярной прямой линии (на целевом изображении) для пиксела на опорном изображении. Более конкретно, это значение указывает оцененное расстояние от соответствующей камеры до объекта, полученного в соответствующем пикселе на опорном изображении. Псевдорасстояние может быть собственно расстоянием, оцененным расстоянием, полученным, например, стереосогласованием, или индексом, соответствующим такому расстоянию.
В соответствии с вышеупомянутым способом, даже когда явное расстояние от камеры до отображаемого объекта не может быть получено, компенсация параллакса с использованием параметра расстояния может быть выполнена путем передачи параметра, который использовался в компенсации параллакса на стороне кодирования, на сторону декодирования.
В предпочтительном варианте для типичного примера этап определения псевдорасстояния включает в себя:
определение предполагаемого вектора параллакса в пиксельном пространстве, причем конечная точка вектора является соответствующей точкой на целевом изображении, которая вычисляется на основе ожидаемого псевдорасстояния, определенного путем оценивания возможного значения и позиционного соотношения между камерами, и начальная точка вектора определяется в пикселе на опорном изображении, для которого предоставляется оцененное псевдорасстояние;
определение оцененного целевого прогнозного вектора, получаемого путем округления конечной точки оцененного вектора параллакса до целочисленного пиксельного положения;
определение оцененного целевого опорного вектора, имеющего ту же самую начальную точку, что и у оцененного вектора параллакса, и тот же самый размер и направление, что и у вектора разности между оцененным целевым прогнозным вектором и ожидаемым вектором параллакса; и
установку псевдорасстояния на оцененное псевдорасстояние, которое создает минимальную полную сумму ошибок предсказания, полученную, когда предсказание изображения между камерами с использованием оцененного целевого прогнозного вектора и оцененного целевого опорного вектора применяется к каждому целевому изображению, полученному фотографированием отображаемого объекта в едином состоянии.
Таким образом, на этапе определения псевдорасстояния, (i) оцененный вектор параллакса определяется посредством процесса, подобного выполняемому на этапе определения вектора параллакса, (ii) оцененный целевой прогнозный вектор определяется посредством процесса, подобного выполняемому на этапе определения целевого прогнозного вектора, и применяется к оцененному вектору параллакса, (iii) оцененный целевой опорный вектор определяется посредством процесса, подобного выполняемому на этапе определения целевого опорного вектора, и применяется к оцененному вектору параллакса и оцененному целевому прогнозному вектору, и (iv) псевдорасстояние устанавливается на оцененное псевдорасстояние, которое создает минимальную полную сумму ошибок предсказания, полученную, когда предсказание изображения с использованием оцененного целевого прогнозного вектора и оцененного целевого опорного вектора применяется к каждому целевому изображению, полученному фотографированием объекта в едином состоянии.
Метод округления для получения оцененного целевого прогнозного вектора может быть методом исключения десятичной части или методом округления целевого значения до ближайшего целочисленного пиксела, где выбранный метод должен совпадать с соответствующим процессом, выполняемым при компенсации параллакса.
Когда расстояние от камеры до отображаемого объекта для пиксела предоставлено, можно предположить, что расстояние от камеры до отображаемого объекта для положения, которое несколько смещено от пиксела, является почти тем же самым, что и расстояние, предусмотренное для пиксела; однако эти два расстояния не всегда совершенно совпадают друг с другом. Поэтому, даже когда используется псевдорасстояние, которое является чрезвычайно близким к фактическому расстоянию (не упоминая случай использования подходящего псевдорасстояния), компенсация параллакса может быть выполнена с использованием соответствующей точки, которая создает большую ошибку предсказания.
Однако в настоящем изобретении используется псевдорасстояние, которое создает ошибку предсказания (для компенсации параллакса) меньше, чем та, которая создается при использовании других расстояний. Поэтому можно предотвратить использование соответствующей точки, которая создает большую ошибку предсказания, в компенсации параллакса, таким образом обеспечивая высокую эффективность кодирования.
Дополнительно, может быть получено псевдорасстояние для минимизации стоимости искажения скорости, где стоимость искажения скорости вычисляется путем добавления соответствующей ошибки предсказания к значению, полученному умножением предсказанного значения величины кода, необходимого для кодирования псевдорасстояния, на определенный вес. Полученное псевдорасстояние более предпочтительно с учетом эффективности кодирования, хотя оно может увеличить ошибку предсказания.
Если искажение возникает в кодировании псевдорасстояния, то декодированное псевдорасстояние, которое получено декодированием кодированного псевдорасстояния, может использоваться как расстояние на этапе определения вектора параллакса, так что сторона кодирования и сторона декодирования могут использовать те же самые параметры, тем самым предотвращая дрейф, который является искажением кодирования.
В другом предпочтительном примере для типичного примера способ кодирования изображений может дополнительно содержать:
этап установки разделения на области, для установки разделения на области на опорном изображении, причем:
на этапе определения псевдорасстояния псевдорасстояние определяется для каждой области, установленной на этапе установки разделения на области; и
на этапе кодирования псевдорасстояния псевдорасстояние кодируется для каждой области, установленной на этапе установки разделения на области.
В большинстве случаев, расстояние от камеры до отображаемого объекта не изменяется так часто в изображении, и, соответственно, ограниченная область имеет то же самое значение расстояния. Поэтому число псевдорасстояний, подлежащих кодированию, может быть сокращено путем установки соответствующего разделения на области, и определения, и кодирования псевдорасстояния для каждой разделенной области, тем самым уменьшая соответствующий объем кода.
В таком случае данные, которые указывают разделение на области, должны также кодироваться и передаваться к стороне декодирования. Если все опорное изображение было подвергнуто разделению на области, и каждая разделенная область была закодирована вместе с данными разделения на области, которые указывают разделение на области, то разделение на области для определения каждого псевдорасстояния может совпадать с разделением на области в соответствии с данными разделения на области, включенными в кодированные данные опорного изображения, таким образом опуская кодирование данных разделения на области для псевдорасстояния.
В разделении на области для кодирования изображения форма каждой разделенной области часто соответствует форме каждого отображаемого объекта. Кроме того, расстояние от камеры до отображаемого объекта должно иметь почти то же самое значение в каждом отображаемом объекте. Поэтому объем кода, требуемого для данных разделения на области, может быть эффективно уменьшен за счет вышеописанного совпадения для данных разделения на области.
Однако разделение на области для кодирования изображения может быть установлено с учетом различия в текстуре (или внешнем виде). Поэтому может возникнуть различие между разделением на области для кодирования изображения и разделением на области, которое создает псевдорасстояние, соответствующее каждому соответствующему расстоянию. В таком случае, когда кодируются только данные, которые указывают различие, можно предотвратить создание большого объема кода, обусловленного кодированием, по отношению к разделению на области на всем изображении, и также может быть предотвращено ухудшение эффективности предсказания из-за ошибки в разделении на области.
Дополнительно, расстояние от камеры до отображаемого объекта не изменяется значительно между смежными пикселами и областями с учетом пространственных характеристик отображаемого объекта в фактическом пространстве. Соответственно, при кодировании псевдорасстояния, может быть выбрано уже закодированное псевдорасстояние, и могут кодироваться данные, которые указывают уже закодированное псевдорасстояние, и разность между целевым расстоянием для кодирования и выбранным псевдорасстоянием, чтобы уменьшить объем кода, требуемого для кодирования псевдорасстояния.
Кроме того, набор псевдорасстояний, предусмотренных для опорного изображения, может рассматриваться как изображение. Поэтому такое изображение может кодироваться с использованием способа кодирования изображения, такого как JPEG или 2000 JPEG, чтобы эффективно кодировать псевдорасстояние.
Расстояние от камеры до отображаемого объекта также не изменяется значительно во времени. Поэтому, когда видеоизображения с множеством точек зрения кодируются с применением способа согласно настоящему изобретению для набора изображений, полученных в то же самое время, набор псевдорасстояний для каждого времени может рассматриваться как изображение, и набор таких изображений может рассматриваться как видеоизображение. В таком случае все псевдорасстояния могут кодироваться с использованием способа видеокодирования, такого как MPEG-2 или H.264/AVC, чтобы эффективно кодировать псевдорасстояние.
На вышеупомянутом этапе определения целевого прогнозного вектора целевой прогнозный вектор может быть определен как вектор, каждый компонент которого является целым кратным размера блока для кодирования, где целое кратное является ближайшим к соответствующему компоненту вектора параллакса.
Чтобы осуществить высокоэффективное кодирование всех видеоизображений с множеством точек зрения, остаток компенсации параллакса должен быть высокоэффективно закодирован при уменьшении объема кода псевдорасстояния. Таким образом, при оценивании псевдорасстояния для каждого блока, подлежащего обработке в соответствующем кодировании, необходимо учитывать не только объем кода, требуемого для кодирования псевдорасстояния, а также объем кода, требуемого для остатка блока, который был подвергнут компенсации параллакса с использованием соответствующего псевдорасстояния. Однако блок, подвергнутый компенсации параллакса с использованием псевдорасстояния, предоставленного целевому блоку (для кодирования) на опорном изображении, может продолжаться по множеству блоков (подлежащих обработке) на целевом изображении для кодирования. В таком случае очень трудно оценить объем кода, требуемого для остатка при компенсации параллакса для соответствующего блока, и, таким образом, невозможно точно выполнить оптимизацию для реализации высокоэффективного кодирования.
В противоположность этому, если целевой прогнозный вектор определен как вектор, каждый компонент которого является целым кратным размера блока для кодирования, причем целое кратное является ближайшим к соответствующему компоненту вектора параллакса, как описано выше, затем обеспечивается, что блок (на целевом изображении для кодирования), подвергнутый компенсации параллакса, всегда совпадает с блоком, подлежащим обработке в кодировании. Поэтому объем кода, необходимого для кодирования остатка компенсации параллакса для соответствующего блока, может быть вычислен с учетом способа кодирования для остатка компенсации параллакса. В результате, в принципе, может быть выполнено высокоэффективное кодирование изображения с множеством точек зрения.
При кодировании (или декодировании) видеоизображения с множеством точек зрения набор соответствующих кадров, принадлежащих тому же самому времени, может рассматриваться как изображения с множеством точек зрения, к которым может быть применен способ кодирования (или декодирования) изображений, соответствующий настоящему изобретению.
Дополнительно, для видеоизображений с множеством точек зрения все изображение может кодироваться не только с использованием способа кодирования изображений согласно настоящему изобретению, но также путем соответствующего выбора другого способа, такого как компенсация движения, которая использует временную корреляцию, для каждой цели кодирования, таким образом улучшая эффективность кодирования.
Эффект изобретения
В соответствии с настоящим изобретением возможно точно вычислить десятичное пиксельное положение на опорном изображении, которое соответствует целочисленному пиксельному положению на целевом изображении для кодирования, с низкими затратами, с использованием данных соответствующих точек на целевом изображении, которое предоставлено на основе целочисленных пиксельных положений на опорном изображении. Поэтому возможно реализовать компенсацию параллакса для меньшего параллакса и, таким образом, высокоэффективное кодирование изображения целых изображений с множеством точек зрения.
Краткое описание чертежей
Фиг.1 - диаграмма, показывающая отношения между векторами в настоящем изобретении.
Фиг.2 - диаграмма, показывающая пример структуры устройства кодирования изображения в качестве варианта осуществления настоящего изобретения.
Фиг.3 - блок-схема, показывающая процесс кодирования изображения устройством кодирования изображения.
Фиг.4 - блок-схема, показывающая процесс формирования изображения расстояния блоком формирования изображения расстояния.
Фиг.5 - блок-схема, показывающая процесс формирования изображения, скомпенсированного по параллаксу, блоком формирования изображения, скомпенсированного по параллаксу.
Фиг.6 - диаграмма, показывающая пример структуры устройства декодирования изображения в качестве варианта осуществления настоящего изобретения.
Фиг.7 - блок-схема, показывающая процесс кодирования изображения устройством декодирования изображения.
Фиг.8 - схематичное представление, показывающее принцип параллакса, генерируемого между камерами.
Фиг.9 - схематичное представление, показывающее принцип ограничения эпиполярной геометрии.
Фиг.10 - диаграмма для пояснения того, что соответствующие точки могут быть получены между множеством камер, когда предоставляется расстояние от одной из камер до отображаемого объекта.
Лучший режим выполнения изобретения
Ниже настоящее изобретение будет объяснено подробно в соответствии с его вариантами осуществления.
Во-первых, принцип настоящего изобретения будет объяснен со ссылками на фиг.1.
На первом этапе, для каждого пиксела в опорном изображении, соответствующая точка в целевом изображении для кодирования определяется путем обращения к расстоянию (назначенному каждому пикселу в опорном изображении) от камеры до отображаемого объекта и позиционного соотношения между камерами.
На этом этапе вектор, который определен в пиксельном пространстве и имеет начальную точку в пикселе в опорном изображении и конечную точку в соответствующем пикселе в целевом изображении для кодирования, называется "вектором параллакса". В этом случае, начальная точка вектора параллакса всегда определяется в целочисленном пиксельном положении, в то время как его конечная точка не всегда определяется в целочисленном пиксельном положении.
Затем, для каждого вектора параллакса, вычисляется вектор, имеющий ту же самую начальную точку, что и вектор параллакса, где десятичные части горизонтальных и вертикальных компонентов вычисленного вектора опускаются, и этот вектор называется "целевым прогнозным вектором".
Целевой прогнозный вектор присутствует в прямоугольнике, определенном начальной и конечной точками соответствующего вектора параллакса (то есть прямоугольник, диагональ которого представляет собой вектор параллакса и который определяется координатами начальной и конечной точек в координатной плоскости), и имеет конечную точку, определенную в целочисленном пиксельном положении, ближайшем к конечной точке вектора параллакса.
На следующем этапе, для каждого вектора параллакса, вычисляется вектор, который также имеет ту же самую начальную точку, что и у вектора параллакса, причем размер и направление вычисленного вектора равны соответствующим параметрам вектора, который получен вычитанием соответствующего вектора параллакса из целевого прогнозного вектора, вычисленного на предыдущем этапе. Текущий вычисленный вектор называется "целевым опорным вектором", и его конечная точка не всегда определяется в целочисленном пиксельном положении.
В настоящем изобретении для каждого набора целевого прогнозного вектора и целевого опорного вектора, которые вычислены, как описано выше, значение положения (на опорном изображении), указанного целевым опорным вектором, используется как предсказанное значение пиксельного положения (указанное целевым прогнозным вектором) на целевом изображении для кодирования, таким образом, реализуя предсказание изображения между соответствующими камерами.
В настоящем изобретении каждая соответствующая точка определяется, основываясь на предположении, что расстояние от камеры до отображаемого объекта в положении, которое лишь незначительно смещено от пиксела, является почти тем же самым, что и расстояние от камеры до отображаемого объекта в пикселе. Таким образом, чем проще форма расстояния от камеры до отображаемого объекта, тем более точным является предсказание изображения.
Напротив, вышеописанные второй и третий способы (которые могут быть легко ожидаемыми) используют предположение, что текстура (то есть внешний вид) отображаемого объекта является почти той же самой между смежными частями. Таким образом, чем проще форма текстуры, тем более точным является предсказание изображения.
Когда форма расстояния сравнивается с формой текстуры для естественного изображения, форма расстояния имеет тенденцию быть более простой с учетом ограничения на непрерывность в фактическом пространстве. Поэтому, по сравнению с вышеописанными способами, которые могут быть легко ожидаемыми, способ согласно настоящему изобретению может реализовать более точное предсказание изображения и повысить эффективность кодирования.
Когда вычисляется целевой прогнозный вектор, десятичная часть может быть опущена, как описано выше. Однако соответствующее значение может быть округлено до ближайшего целого числа. В этом случае округления значения до ближайшего целого числа используется предположение о том, что точка, которая ближе к целевому пикселу на опорном изображении (чем другие точки), имеет расстояние, равное расстоянию для целевого пиксела, таким образом реализуя компенсацию параллакса, которая может уменьшить ошибку предсказания. Однако, в таком случае, затраты на вычисление могут быть выше по сравнению со случаем исключения десятичной части.
В варианте осуществления, объясненном позже, кодируются изображения с множеством точек зрения, полученные двумя камерами A и B, где изображения камеры B кодируются с использованием изображений камеры в качестве опорных изображений.
В этом варианте осуществления внешние параметры, которые указывают позиционные соотношения между камерами A и B, и внутренние параметры, которые указывают данные проецирования (соответствующей камерой) на плоскость изображения, предоставляются отдельно.
Такие параметры, которые объяснены подробно в непатентном документе 3, могут быть определены, когда камеры установлены, или оценены с использованием пары полученных изображений.
На фиг.2 представлена диаграмма, показывающая пример структуры устройства кодирования изображения в качестве варианта осуществления настоящего изобретения.
Устройство 100 кодирования изображения содержит блок 101 ввода изображения, в который вводится исходное изображение (то есть целевое изображение для кодирования) камеры B; блок 102 ввода опорного изображения, в который вводится декодированное изображение (как опорное изображение) камеры A; память 103 опорного изображения для хранения каждого опорного изображения; блок 104 формирования изображения расстояния для формирования изображения расстояния; блок 105 кодирования изображения расстояния; блок 106 декодирования для декодирования изображения расстояния; блок 107 формирования изображения, скомпенсированного по параллаксу, для формирования изображения, скомпенсированного по параллаксу, основываясь на опорном изображении и декодированном изображении расстояния; и блок 108 кодирования целевого изображения для кодирования целевого изображения (для кодирования) с использованием скомпенсированного по параллаксу изображения.
В каждом из устройства 100 кодирования изображения и устройства 200 декодирования изображения (см. фиг.6), как пояснено ниже, то есть когда каждое устройство работает, изображение расстояния, которое указывает расстояние от фактической камеры до отображаемого объекта, не отличается от изображения псевдорасстояния, которое указывает псевдорасстояние, используемое для компенсации параллакса. Поэтому в последующем объяснении оба расстояния не различаются, и каждое просто называется "изображением расстояния". Кроме того, расстояние и псевдорасстояние (указанные изображением расстояния) также не различаются, и каждое описывается просто как "расстояние".
Ниже, процесс кодирования изображения, выполняемый устройством 100 кодирования изображения, имеющим структуру, показанную на фиг.2, будет объяснен подробно со ссылкой на блок-схемы по фиг.3-5.
На фиг.3 представлена блок-схема, показывающая процесс кодирования изображения посредством устройства кодирования изображения и показывающая общий поток всего процесса кодирования изображения, выполняемого устройством 100 кодирования изображения.
В устройстве 100 кодирования изображения изображение камеры B вводится в блок 101 ввода изображения 101 (см. этап S10). Здесь декодированное изображение камеры A было введено в память 103 опорного изображения 103 посредством блока 102 ввода опорного изображения.
Ниже входное изображение камеры B называется "целевым изображением" для кодирования, а изображение в памяти 103 опорного изображения называется "опорным изображением".
Затем изображение расстояния для опорного изображения формируется блоком 104 формирования изображения расстояния с использованием целевого изображения и опорного изображения (см. этап S11).
Чтобы каждое из устройства 100 кодирования изображения и устройства 200 декодирования изображения формировало скомпенсированное по параллаксу изображение, использующее полностью те же самые данные, сформированное изображение расстояния кодируется блоком 105 кодирования изображения расстояния (см. этап S12), и соответствующие кодированные данные декодируются блоком 106 декодирования расстояния (см. этап S13).
Затем скомпенсированное по параллаксу изображение генерируется блоком генерации скомпенсированного по параллаксу изображения 107 с использованием изображения расстояния, которое было получено путем декодирования, и опорного изображения (см. этап SI4). Наконец, целевое изображение для кодирования кодируется блоком 108 кодирования целевого изображения с использованием сформированного скомпенсированного по параллаксу изображения (см. этап S15).
Процесс кодирования изображения по фиг.3 выполняется, когда кодируется изображение камеры B. Видеоизображения с множеством точек зрения могут кодироваться путем повторного применения в каждое время процесса кодирования изображения к изображению.
В блоке 105 кодирования расстояния изображения может использоваться любой известный способ кодирования. Например, может использоваться способ кодирования изображения JPEG2000 для неподвижного изображения; способ видеокодирования, такой как H.264 может использоваться вместе с изображением расстояния, которое было сформировано для опорного изображения в другое время; или соответствующие пиксельные значения могут быть просто подвергнуты кодированию переменной длины.
Однако блок декодирования изображения расстояния должен быть устройством, которое может декодировать кодированные данные, сформированные блоком 105 кодирования изображения расстояния. Кроме того, когда настоящее изобретение применяется к видеокодированию с множеством точек зрения, блок 108 кодирования целевого изображения может использовать любой метод кодирования, который использует скомпенсированное по параллаксу изображение.
Ниже приведены возможные способы, такие как способ формирования и кодирования разностного изображения между скомпенсированным по параллаксу изображением и целевым изображением для кодирования; способ кодирования разностного изображение не непосредственно, а путем выполнения кодирования с использованием разностных изображений в разное время и компенсации движения, используемый в H.264; и способ для выполнения кодирования с использованием метода предсказания, который имеет высокую эффективность предсказания и определяется путем сравнения видеопредсказания, использующего скомпенсированное по параллаксу изображение, с видеопредсказанием, использующим компенсацию движения.
В представленном варианте осуществления изображение расстояния формируется в устройстве 100 кодирования изображения. Однако может непосредственно использоваться изображение расстояния, которое генерируется внешним устройством с использованием датчика или тому подобного. В таком случае блок 104 формирования изображения расстояния является ненужным, и этап S11 в блок-схеме на фиг.3 может быть опущен.
Кроме того, если обратимый способ кодирования используется в блоке 105 кодирования расстояния изображения, то блок 106 декодирования изображения расстояния является ненужным, и этап S13 в блок-схеме на фиг.3 может быть опущен. В этом случае, изображение расстояния непосредственно вводится в блок 107 формирования скомпенсированного по параллаксу изображения.
На фиг.4 представлена блок-схема, показывающая процесс формирования изображения расстояния блоком 104 формирования изображения расстояния.
Ниже процесс формирования изображения расстояния для формирования изображения расстояния с использованием целевого изображения и опорного изображения (см. этап S11 в фиг.3) будет объяснен более подробно.
В блок-схеме на фиг.4 опорное изображение разделено на множество блоков, и расстояние вычисляется для каждого блока. Когда размер каждого блока определен как 1x1 (пиксел), расстояние вычисляется для каждого пиксела.
Также предпочтительно, что вышеупомянутый блок как блок для вычисления расстояния совпадает с блоком, используемым в процессе кодирования для разделения опорного изображения на множество областей и кодирования каждой области.
Здесь, "blk" является индексом для указания каждого блока, и "maxBlk" указывает число блоков, определенных в изображении.
После инициализации "blk" в нуль (см. этап S20) процесс от этапа S21 до этапа S36 повторно выполняется для каждого блока, в то время как "blk" получает приращение на единицу (см. этап S35), пока "blk" не достигнет "maxBlk" (см. этап S36).
В процессе, примененном к каждому блоку, сначала получают положение блока (указанного индексом "blk") в пиксельном пространстве, которое указывается как "blk_pos" (см. этап S21).
Здесь "depth" (глубина) является индексом для предоставления кандидатов для расстояния, и его минимальное значение и максимальное значение соответственно представлены как "minDepth" и "maxDepth", которые являются параметрами, используемыми в кодировании, и дополнительно предоставляются для учета в сцене для фотографирования.
Кроме того, каждый кандидат для расстояния оценивается в следующих этапах, где максимальное значение, которое не может быть получено как оцененное значение, представляется посредством "maxCost". Дополнительно, чтобы повторно выполнять оценку, наилучшее оцененное значение представляется посредством "minCost", и индекс для кандидата расстояния, соответствующего "minCost", представляется посредством "bestDepth".
После того как "depth" и "minCost” соответственно инициализированы на "minDepth" и "maxCost" (см. этап S22), процесс от этапа S23 к этапу S33 повторно выполняется для каждого кандидата расстояния, в то время как "depth" получает приращение на единицу (см. этап S32), пока "depth" не достигнет "maxDepth" (см. этап S33).
Когда "depth" достигает "maxDepth", определяется, что значение, которое было сохранено как "bestDepth", должно быть назначено в качестве значения расстояния индексу "blk" блока (см. этап S34).
Ниже поясняется процесс (от этапа S23 до S33) для каждого кандидата расстояния.
Сначала, с учетом способа кодирования, используемого в блоке 105 кодирования расстояния изображения, вычисляется объем кода, требуемого для кодирования "depth" (то есть когда расстояние для положения "blk_pos" на изображении расстояния является "depth"), и вычисленное значение представляется посредством "rate" (скорость) (см. этап S23). В этом процессе "rate" может быть фактическим объемом кода или его предсказанным значением.
Затем полученное значение, когда "depth" кодируется и затем декодируется, вычисляется и представляется посредством "dec_depth" (см. этап S24). Затем вектор параллакса, который определен, когда расстояние от камеры до отображаемого объекта в положении "blk_pos" предоставлено посредством "dec_depth", вычисляется и представляется посредством "DISP_V" (см. этап S25). Этот вектор параллакса может быть вычислен по следующей формуле (1):
В формуле (1) переменные, обозначенные выделенными жирным шрифтом, являются векторами, а переменные, обозначенные заглавными буквами, являются матрицами.
Более конкретно, матрица A является матрицей внутренних параметров каждой камеры, и матрица R является матрицей вращения, определенной для каждой камеры, и вектор "t" является вектором смещения каждой камеры, где индекс "t" указывает, что соответствующие параметры принадлежат камере, посредством которой было получено целевое изображение, и индекс "r" указывает, что соответствующие параметры принадлежат камере, посредством которой было получено опорное изображение.
Кроме того, "d" - расстояние (обозначенное индексом "dec_depth" расстояния) от камеры до отображаемого объекта, и "~x" ("~" помещено над "x") указывает однородный вектор вектора x. Дополнительно, "^"x (“^” помещено над "x") указывает однородный вектор (среди однородных векторов вектора x), у которого заключительный компонент равен 1. Здесь каждый однородный вектор N-мерного вектора имеет N+l компонентов. Вектор, у которого с первого по N-й компоненты получены делением с первого по N-й компоненты однородного вектора на (N+l)-й компонент однородного вектора, является ординарным вектором (то есть вектор x в вышеупомянутом примере), соответствующим релевантному однородному вектору. Таким образом, для N-мерного вектора может быть получено следующее соотношение:
а
где ≠0
После получения DISP_V каждый его компонент трансформируется в целое число, чтобы получить целевой прогнозный вектор “TAR_V”, имеющий каждый целочисленный компонент (см. этап S26). В качестве метода для трансформации каждого компонента в целое число может быть использован любой из следующих методов:
(1) метод отбрасывания десятичной части; и
(2) метод округления каждого компонента до ближайшего целого числа.
Затем целевой опорный вектор “REF_V” вычисляется по следующей формуле (2) (см. этап S27):
REF_V = TAR_V - DISP_V (2)
Здесь для каждого пиксела “p”, включенного в “blk_pos”, позиция “p+TAR_V” на целевом изображении и позиция “p+REF_V” на опорном изображении являются соответствующими точками друг для друга.
Оцененное значение, которое указывает вероятность соответствующих точек, то есть ошибку предсказания, когда блок в позиции “blk_pos+TAR_V” на целевом изображении предсказывается с использованием блока в позиции “blk_pos+DISP_V” на опорном изображении, вычисляется и представляется посредством “diff” (см. этап S28).
Чтобы оценить вероятность, может использоваться любая мера, такая как сумма абсолютных значений разностей, сумма квадратичных ошибок, дисперсия дифференциальных значений или коэффициент корреляции. Например, следующая формула (3) является формулой оценки, использующей сумму абсолютных значений разностей.
В формуле (3) "I" - функция, которая возвращает пиксельное значение (соответствующего изображения) в положении, указанном аргументом. Хотя "p+TAR_V" всегда указывает целочисленное пиксельное положение, "p+REF_V" не всегда указывает целочисленное пиксельное положение.
Значение каждого положения, иного, чем целочисленное пиксельное положение, может быть сформировано с использованием значений периферийных пикселов путем выполнения фильтрации или т.п. Кроме того, не требуется вычислять значение, которое строго соответствует указанному положению. Поэтому только ограниченные десятичные пиксельные положения могут быть подвергнуты такому вычислению значения, и может использоваться значение в ближайшей точке.
Для "rate" и "diff”, которые были вычислены, как описано выше, стоимость искажения скорости (названная "cost"), полученная следующей формулой (4), вычисляется для оценки каждого кандидата расстояния с учетом эффективности кодирования видеоизображений с множеством точек зрения (см. этап S29).
Cost=diff+λ×rate (4)
В формуле (4), λ - неопределенный множитель Лагранжа, который представляет предопределенное значение. Если каждый кандидат расстояния просто оценивается на основе ошибки предсказания (без учета эффективности кодирования), λ=0. Дополнительно, чем меньше значение "cost", тем лучше результат оценки.
Затем оцененное значение "cost" кандидата расстояния "depth" сравнивается с наилучшим оцененным значением "minCost" для предыдущих кандидатов расстояния (см. этап S30). Если настоящий результат оценки лучше, кандидат "depth" сохраняется как лучший кандидат "bestDepth", и лучшее оцененное значение "minCost" обновляется посредством "cost" (см. этап S31).
После того как индекс "depth" кандидата расстояния увеличивается на 1 (см. этап S32), если есть другой кандидат расстояния, подобный процесс применяется к этому кандидату (см. этап S33).
На фиг.5 представлена блок-схема процесса формирования скомпенсированного по параллаксу изображения выполняемого блоком 107 формирования скомпенсированного по параллаксу изображения. Ниже процесс формирования скомпенсированного по параллаксу изображения для формирования скомпенсированного по параллаксу изображения с использованием изображения расстояния и опорного изображения (см. этап S14 на фиг.3) будет объяснен более подробно.
В блок-схеме по фиг.5 для каждого блока (в опорном изображении), для которого предоставлено расстояние, формируется скомпенсированное по параллаксу изображение, где индексом для указания каждого блока является "blk", и число блоков, включенных в изображение, представлено посредством "makBlk".
После инициализации "blk" в нуль (см. этап S40) процесс от этапа S41 до этапа S48 повторно выполняется для каждого блока, причем "blk" получает приращение на единицу (см. этап S47), пока "blk" не достигает "maxBlk" (см. этап S48).
В процессе, примененном к каждому блоку, сначала получают положение блока (указанного индексом "blk") в пиксельном пространстве, указанное посредством "blk_pos" (см. этап S41), и расстояние "d" блока "blk" определяется посредством изображения расстояния (см. этап S42).
Затем вектор параллакса, который определяется, когда расстояние от камеры до отображаемого объекта в положении "blk_pos" предоставлено посредством "d", вычисляется и представляется посредством "DISP_V" (см. этап S43), где DISP_V может быть вычислено согласно следующей формуле (5):
Подобно формуле (1), в формуле (5) переменные, обозначенные жирным шрифтом, являются векторами, а переменные, обозначенные заглавными буквами, являются матрицами. Дополнительно, матрица A является матрицей внутренних параметров каждой камеры, и матрица R является матрицей вращения, определенной для каждой камеры, и вектор "t" является вектором смещения каждой камеры, где индекс "t" указывает, что соответствующие параметры принадлежат камере, посредством которой было получено целевое изображение, и индекс "r" указывает, что соответствующие параметры принадлежат камере, посредством которой было получено опорное изображение. Кроме того, "~x" ("~" помещено над "x") указывает однородный вектор вектора x, и "^"x (“^” помещено над "x") указывает однородный вектор (среди однородных векторов вектора x), у которого заключительный компонент равен 1.
После получения DISP_V каждый его компонент трансформируется в целое число, чтобы получить целевой прогнозный вектор “TAR_V”, имеющий каждый целочисленный компонент (см. этап S44). В качестве метода для трансформации каждого компонента в целое число может быть использован любой из следующих методов:
(1) метод отбрасывания десятичной части; и
(2) метод округления каждого компонента до ближайшего целого числа.
Если выполнялось формирование изображения расстояния, то используется метод, подобный тому, который был использован на этапе S26 по фиг.4 (выполняемый блоком 104 формирования изображения расстояния).
Затем целевой опорный вектор “REF_V” вычисляется по следующей формуле (6) (см. этап S45):
REF_V=TAR_V-DISP_V (6)
Затем для каждого пиксела “p”, включенного в “blk_pos”, пиксельное значение в положении “p+TAR_V” на скомпенсированном по параллаксу целевом изображении компенсируется значением в положении “p+REF_V” на опорном изображении (см. этап S46).
Здесь "p+REF_V" не всегда указывает целочисленное пиксельное положение. Значение каждого положения, иного, чем целочисленные пиксельные положения, может формироваться с использованием значений периферийных пикселов, путем выполнения фильтрации или т.п. Кроме того, нет необходимости в вычислении значения, которое строго соответствует указанному положению. Поэтому только ограниченные десятичные пиксельные положения могут быть подвергнуты такому вычислению значения, и может использоваться значение в ближайшей точке. Однако если изображение расстояния формировалось в блоке 104 формирования изображения расстояния, то может использоваться метод, подобный тому, который использовался на этапе S28 по фиг.4.
В вышеописанном варианте осуществления, если размер блока установлен в 1x1, то соответствующее расстояние получают для каждого пиксела. Однако опорное изображение может быть разделено на блоки, каждый из которых имеет n x m пикселов (n и m являются переменными), чтобы определить расстояние (псевдорасстояние) для каждой разделенной области (то есть блока), причем данные для указания разделения на области и расстояние (псевдорасстояние) для каждой области могут быть закодированы.
В таком случае определения расстояния (псевдорасстояния) для каждого блока, полученного разделением на области опорного изображения, если все опорное изображение было разделено на области и каждая область подвергается кодированию, чтобы обеспечить кодированные данные, которые включают данные подразделения на области, то подобное разделение на области может быть определено в соответствии с данными разделения на области, чтобы опустить кодирование данных разделения на области.
Кроме того, если разделение области для каждого блока (для кодирования) в опорном изображении отличается от разделения на области для определения вышеописанного расстояния, то при кодировании данных, которые указывают разделение на области, используемое для определения каждого блока, которому присвоено расстояние, только данные, которые указывают отличие от разделения на области, указанного данными разделения на области, включенными в кодированные данные опорного изображения, могут кодироваться, чтобы препятствовать увеличению соответствующего объема кода.
Дополнительно, в кодировании вышеописанного расстояния (псевдорасстояния), одно опорное расстояние может быть выбрано из числа уже кодированных расстояний, и данные для указания опорного расстояния и разность между целевым расстоянием для кодирования и опорным расстоянием могут кодироваться, чтобы препятствовать увеличению соответствующего объема кода.
Также при кодировании вышеописанного расстояния (псевдорасстояния) набор псевдорасстояний, обеспеченных для опорного изображения, может рассматриваться как изображение, чтобы кодировать набор псевдорасстояний с использованием конкретного способа кодирования изображений, например JPEG.
Далее поясняется устройство 200 декодирования изображения, соответствующее настоящему изобретению, которое декодирует кодированные данные, сформированные, как описано выше.
На фиг.6 представлена диаграмма, показывающая пример структуры устройства декодирования изображения в качестве варианта осуществления настоящего изобретения.
Устройство 200 декодирования изображения содержит блок 201 декодирования изображения расстояния для декодирования изображения расстояния; память 202 опорного изображения 202 для хранения каждого декодированного изображения камеры А как опорного изображения; блок 203 для формирования скомпенсированного по параллаксу изображения для формирования скомпенсированного по параллаксу изображения, основываясь на декодированном изображении расстояния и опорном изображении; и блок 204 декодирования целевого изображения для декодирования кодированных данных целевого изображения (для кодирования), обращаясь к сформированному скомпенсированному по параллаксу изображению.
На фиг.7 представлена блок-схема, показывающая процесс декодирования изображения посредством устройства декодирования изображения, причем показан поток декодирования одного кадра в изображении камеры В. Блок-схема по фиг.7 поясняется далее более детально.
Здесь, кадр камеры А в то же самое время, что и время кадра, подлежащего декодированию, уже был декодирован, и соответствующее декодированное изображение было сохранено заранее как опорное изображение в памяти 202 опорного изображения.
Сначала, в блоке 201 декодирования изображения расстояния, кодированные данные изображения расстояния декодируются (см. этап S50). Затем в блоке 203 формирования скомпенсированного по параллаксу изображения формируется скомпенсированное по параллаксу изображение с использованием декодированного изображения расстояния и опорного изображения, сохраненного в памяти 202 опорного изображения (см. этап S51). Наконец, кодированные данные целевого изображения для кодирования декодируется в блоке 204 декодирования целевого изображения, обращаясь к сформированному скомпенсированному по параллаксу изображению (см. этап S52).
Здесь способ кодирования, используемый в блоке 108 кодирования целевого изображения устройства 100 кодирования изображения, применяется соответственно к процессу, выполняемому блоком 204 декодирования целевого изображения. Таким образом, если способ кодирования разности между скомпенсированным по параллаксу изображением и целевым изображением используется в блоке 108 кодирования целевого изображения, то блок 204 декодирования целевого изображения декодирует предоставленные кодированные данные и добавляет их к скомпенсированному по параллаксу изображению, чтобы получить декодированное изображение целевого изображения.
Блок 201 декодирования изображения расстояния в устройстве 200 декодирования изображения выполняет тот же самый процесс, что и выполняемый в блоке 106 декодирования изображения расстояния устройства 100 кодирования изображения.
Дополнительно, блок 203 формирования скомпенсированного по параллаксу изображения в устройстве 200 декодирования изображения выполняет тот же самый процесс (см. фиг.5), что и выполняемый в блоке 107 формирования скомпенсированного по параллаксу изображения устройства 100 кодирования изображения.
В настоящем варианте осуществления предоставляются кодированные данные изображения расстояния. Однако если изображение расстояния предоставлено другим методом, блок 201 декодирования изображения расстояния становится ненужным, и процесс на этапе S50 в блок-схеме по фиг.7 может быть опущен. В таком случае предоставленное изображение расстояния непосредственно используется в блоке 203 формирования скомпенсированного по параллаксу изображения.
Чтобы сформировать TAR_V в процессах этапа S26 в блок-схеме по фиг.4 и этапа S44 в блок-схеме по фиг.5, каждый компонент может быть преобразован не только в целое число, но также и в целое кратное размера блока, определенного для кодирования, где целое кратное является ближайшим к соответствующему компоненту вектора параллакса.
В таком случае на этапе S28 блок-схемы по фиг.4 "blk_pos+TAR_V" всегда указывает один блок (для кодирования). Поэтому изображение расстояния может формироваться с учетом соотношений между фактическим объемом кода и качеством изображения, путем вычисления объема (называемого "кодом") кода, необходимого для кодирования блока (целевого изображения), указанного посредством "blk_pos+TAR_V"; суммы SSD квадратичных ошибок между исходным изображением и декодированным изображением после выполнения соответствующего кодирования; и "diff”, указанного следующей формулой (7):
diff=SSD+λ'×code (7)
В формуле (7) λ' - неопределенный множитель Лагранжа, являющийся заданным значением.
В вышеописанном варианте осуществления одна камера используется для получения целевого изображения для кодирования. Однако даже когда число таких камер две или более, кодирование и декодирование изображения могут выполняться посредством тех же самых процессов, как объяснено выше, за исключением следующего процесса.
Когда число камер две или более, процесс от этапа S25 до этапа S28 в блок-схеме процесса формирования изображения расстояния (см. фиг.4) применяется к каждому целевому изображению для кодирования, и сумма значений "diff”, полученных в каждом процессе, используется как "diff”, чтобы выполнить оценку кандидатов расстояния, и формирует изображение расстояния.
Вышеописанный процесс кодирования изображения может быть осуществлен не только аппаратными средствами или микропрограммным ресурсом, но также компьютером и программой. Такая программа может быть предоставлена путем сохранения ее на машиночитаемом носителе для хранения данных или посредством сети.
Хотя варианты осуществления настоящего изобретения были описаны со ссылками на чертежи, должно быть понятно, что они являются приведенными для примера вариантами осуществления изобретения и не должны рассматриваться как ограничение. Дополнения, исключения или замены структурных элементов и другие модификации для вышеописанных вариантов осуществления могут быть выполнены без отклонения от принципа и объема настоящего изобретения.
Промышленная применимость
В соответствии с настоящим изобретением, возможно точное вычисление десятичного пиксельного положения на опорном изображении, которое соответствует целочисленному пиксельному положению на целевом изображении для кодирования, с низкой стоимостью, путем использования данных соответствующих точек на целевом изображении, которое предоставляется на основе целочисленных пиксельных положений на опорном изображении. Поэтому возможно реализовать компенсацию параллакса и, следовательно, высокоэффективное кодирование изображения для полных изображений с множеством точек зрения.
Ссылочные символы
100 устройство кодирования изображения
101 блок ввода изображения
102 блок ввода опорного изображения
103 память опорного изображения
104 блок формирования изображения расстояния
105 блок кодирования изображения расстояния
106 блок декодирования изображения расстояния
107 блок формирования скомпенсированного по параллаксу изображения
108 блок кодирования целевого изображения
200 устройство декодирования изображения
201 блок декодирования изображения расстояния
202 память опорного изображения
203 блок формирования скомпенсированного по параллаксу изображения
204 блок декодирования целевого изображения