УСТРОЙСТВО И СПОСОБ ДЛЯ ГЕНЕРИРОВАНИЯ ИЗОБРАЖЕНИЯ ИНТЕНСИВНОСТИ СВЕТОВОГО ИЗЛУЧЕНИЯ
DEVICE AND METHOD FOR GENERATING AN IMAGE OF THE INTENSITY OF LIGHT RADIATION

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к устройству и способу для генерирования изображения интенсивности светового излучения и, в частности, к генерированию изображения интенсивности светового излучения для новой точки наблюдения на основе карт и сеток текстур из множества различных точек наблюдения, подходящего для ускоренной аппаратной обработки.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
Графические приложения на основе трехмерных сцен получили широкое распространение во многих сферах применения, таких как, в частности, сферы применения компьютерной графики. С целью поддержки быстрой обработки трехмерной графики разработан ряд стандартов и спецификаций. Это не только обеспечивает более быстрое проектирование и реализацию, поскольку при этом могут предусматриваться стандартизованные функции и процедуры для множества стандартных операций, таких как смещение точки наблюдения, но и позволяет разрабатывать и оптимизировать специализированные аппаратные графические процессоры для таких процедур. Действительно, для многих компьютеров Графический Процессор (GPU) в настоящее время часто бывает таким же высокопроизводительным и важным, как и Центральный Процессор (CPU).
Одним из примеров стандарта для поддержки быстрой обработки графики является спецификация OpenGL, которая предусматривает Интерфейс прикладных программ (API) с рядом функций, поддерживающих обработку графики. Эта спецификация, как правило, используется для обеспечения аппаратно-ускоренной обработки графики с конкретными процедурами, реализуемыми специализированными ускоряющими аппаратными средствами в форме GPU.
В большинстве графических спецификаций представление сцены осуществляется с помощью комбинации карты текстур и трехмерной сетки. Действительно, особенно эффективный подход во многих сценариях состоит в представлении изображений объектов или фактически сцены в целом полигональной сеткой, у которой различные многоугольники соединены своими общими ребрами или углами (вершинами), задаваемыми положениями в трех измерениях. Комбинированная трехмерная полигональная сетка соответствующим образом обеспечивает эффективную модель трехмерных объектов, в том числе, возможно, трехмерное описание всего изображения. Полигональная сетка часто представляет собой треугольную сетку, образуемую треугольниками, которые имеют общие углы, задаваемые в трехмерном пространстве.
Например, стереокамера может регистрировать изображение сцены с заданной точки наблюдения. Для каждого пикселя может выполняться оценка расхождения для оценивания расстояния до объекта, представленного пикселем. Это может выполняться для каждого пикселя, благодаря чему обеспечивается положение в трех измерениях x,y,z для каждого пикселя. Эти положения могут затем использоваться в качестве вершин для треугольной сетки, при этом для каждой группы из 2×2 пикселей формируются два треугольника. Поскольку это может привести к большому числу треугольников, данный процесс может включать в себя объединение некоторых исходных треугольников в более крупные треугольники (или в некоторых сценариях в более общем случае в более крупные многоугольники). Это сократит число треугольников, но также и уменьшит пространственное разрешение сетки. Следовательно, это, как правило, зависит от изменений по глубине и преимущественно выполняется на более плоских участках.
Каждая вершина, кроме того, связана с интенсивностью светового излучения карты текстур. Карта текстур, главным образом, обеспечивает интенсивность светового излучения/цвета в сцене для объекта в положении пикселя для вершины. Как правило, изображение интенсивности светового излучения/карта текстур предусматривается вместе с сеткой, при этом каждая вершина содержит данные, представляющие положение x, y, z вершины, и данные u,v, идентифицирующие связанное положение в карте текстур, т.е., она указывает на интенсивность светового излучения в положении x, y, z, захваченную в карте текстур.
В таких представлениях полигональная сетка используется для обеспечения информации о трехмерной геометрии объектов, в то время как текстура, как правило, предусматривается в виде отдельной структуры данных. В частности, текстура часто предусматривается в виде отдельной двумерной карты, которая с помощью алгоритма обработки может накладываться на трехмерную геометрию.
Использование треугольных сеток особенно подходит для обработки и манипулирования с помощью алгоритмов компьютерной графики, при этом разработано и доступно на рынке множество эффективных программных и аппаратных решений. Существенная вычислительная эффективность во многих системах достигается с помощью алгоритма, обрабатывающего отдельные вершины совместно для множества многоугольников, а не обрабатывающего каждый многоугольник в отдельности. Например, для типичной треугольной сетки отдельная вершина часто является общей для нескольких (часто 3-8) треугольников. Обработка одной вершины может в соответствии с этим быть применима к относительно большому числу треугольников, тем самым значительно сокращая число обрабатываемых точек в изображении или ином объекте.
В качестве конкретного примера, многие существующие Системы на Кристалле (SoC) содержат GPU, который высоко оптимизирован для обработки трехмерной графики. Например, обработка геометрии трехмерного объекта и текстуры трехмерного объекта осуществляется с использованием двух относительно отдельных путей в так называемом конвейере визуализации OpenGL (или во многих других API, таких как DirectX). Аппаратные средства GPU и S°C могут эффективно работать с трехмерной графикой при условии, что у GPU имеется трехмерный источник в форме вершин (как правило, треугольников) и текстур. Прикладной интерфейс OpenGL при этом обеспечивает настройку и управление виртуальной перспективной камерой, которая определяет, как выглядят трехмерные объекты, спроецированные на 2-мерный экран. Несмотря на то, что OpenGL в качестве входных данных использует трехмерные объекты, выход, как правило, представляет собой 2-мерное изображение, подходящее для нормального 2-мерного отображения.
Однако такие подходы требуют, чтобы трехмерная информация обеспечивалась полигональной сеткой и соответствующей информацией о текстуре. В то время как в некоторых приложениях, таких как игры на основе полностью сгенерированных компьютером виртуальных сцен и сред, обеспечение этого может быть относительно простым, в других вариантах реализации это может оказаться не таким простым. В частности, в приложениях, которые основаны на захвате реальных сцен, требуется, чтобы они были преобразованы в представление текстуры и сетки. Оно может, как указано выше, основываться на захвате реальных сцен или на представлении изображения и глубины сцены. Однако несмотря на то, что известен ряд подходов к выполнению такого преобразования, оно не является тривиальным и порождает ряд проблем и сложностей.
При обработке графики обычной операцией является изменение точки наблюдения, при которой изображение генерируется для точки наблюдения, отличной от точки наблюдения входной карты текстур и сетки. Графические API, как правило, имеют функции для весьма эффективного выполнения таких преобразований точки наблюдения. Однако, поскольку входная сетка, как правило, несовершенна, такие преобразования точки наблюдения могут приводить к тому, что ухудшение качества смещения очень существенно. Кроме того, представление сцены из точки наблюдения, как правило, включает в себя некоторое количество затененных элементов, когда объект переднего плана закрывает находящиеся за ним элементы. Эти элементы могут быть видимыми с нового направления, т.е., изменение точки наблюдения может приводить к устранению затенения. Однако входное карта текстур и сетка в этом случае не будут содержать никакой информации по этим затененным частям. В этой связи, они не могут быть представлены оптимальным образом, поскольку требуемая информация отсутствует.
В силу описанных причин, преобразование точки наблюдения часто основывается на множестве карт текстур и сеток, соответствующих различным направлениям наблюдения. Действительно, чтобы синтезировать новую (невидимую) точку наблюдения, как правило, желательно или даже необходимо комбинировать множество захваченных сеток с соответствующими изображениями (текстурами) с камеры с различных точек наблюдения. Основная причина комбинирования данных с различных точек наблюдения состоит в восстановлении объектов, которые скрыты (затенены) в одном ракурсе, но видны в другом ракурсе. Эта проблема часто называется интерполяцией точки наблюдения.
Однако традиционные подходы к этому в большинстве случаев являются условно оптимальными.
Например, один подход к генерированию новой точки наблюдения состоит в преобразовании сеток, исходящих из различных точек наблюдения, в реальную систему координат, а затем выполнении перспективной проекции в новую плоскость камеры. Эти этапы могут осуществляться в стандартных графических аппаратных средствах. Однако при этом, как правило, некорректно отображаются скрытые поверхности. В частности, графические аппаратные средства используют проверку глубины для выбора самой передней точки, когда точки объединены в одном пикселе. Такой подход используется для решения проблемы самозатенения, когда смещение точки наблюдения может приводить к тому, что объекты изображения движутся относительно друг друга, в результате чего возникают новые затенения, т.е., в новой точке наблюдения может иметься затенение для двух точек, которые не затенены из исходной точки наблюдения. Однако при применении к различным изображениям это может приводить к ошибкам или ухудшению качества. Действительно, глубина, как правило, линейно интерполируется таким образом, что она проходит за пределами объектов переднего плана (подобно эффекту гало), при этом самая передняя точка часто соответствует участкам, которые могут быть затенены ввиду того, что они находятся вблизи объекта переднего плана.
Пример подхода к интерполяции наблюдения на основе имеющих глубину изображений приведен в работе C.L. Zitnick с соавторами «Интерполяция наблюдения высококачественного видео с использованием многослойного представления», SIGGRAPH '04 ACM SIGGRAPH 2004, стр. 600-608. Для достижения высокого качества в данном подходе используется двухслойное представление, состоящее из главного слоя и граничного слоя (вокруг скачков глубины). Они строятся с использованием альфа-матирования (учитывающего прозрачность), при этом оба деформируются (и смешиваются с другими ракурсами) во время процесса визуализации. Недостатком этих подходов является необходимость в отключении сетки для генерирования двухслойного представления. Этому процессу необходимо выбирать порог для карты глубин и удалять треугольники соответствующей сетки на неравномерностях глубины. Это не желательно, поскольку использование порогов может потенциально уменьшать временную стабильность визуализации.
Таким образом, было бы целесообразно использовать усовершенствованный подход к генерированию изображений для другой точки наблюдения и, в частности, подход, который обеспечивает повышенную гибкость, повышенную точность, пониженную сложность, улучшенную вычислительную эффективность, улучшенную совместимость с существующими подходами к обработке графики, повышенное качество изображений, улучшенные характеристики устранения затенения и/или повышенную производительность.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В соответствии с этим, целью Изобретения является уменьшение, частичное снятие или устранение одного или более из вышеупомянутых недостатков по отдельности или в любой комбинации.
В соответствии с одним из аспектов изобретения, предлагается способ генерирования изображения интенсивности светового излучения, причем, данный способ включает в себя: прием первой карты текстур и первой сетки, представляющих сцену, из первой точки наблюдения; прием второй карты текстур и второй сетки, представляющих сцену, из второй точки наблюдения; определение изображения интенсивности светового излучения, представляющего сцену, из третьей точки наблюдения в ответ на первую карту текстур, первую сетку, вторую карту текстур и вторую сетку; причем определение изображения интенсивности светового излучения включает в себя для первого положения в изображении интенсивности светового излучения выполнение этапов: определения первого значения интенсивности светового излучения для первого положения с помощью преобразования точки наблюдения на основе первой карты текстур и первой сетки; определения второго значения интенсивности светового излучения для первого положения с помощью преобразования точки наблюдения на основе второй карты текстур и второй сетки; определения значения интенсивности светового излучения для изображения интенсивности светового излучения в первом положении с помощью взвешенной комбинации первого значения интенсивности светового излучения и второго значения интенсивности светового излучения; взвешивания первого значения интенсивности светового излучения относительно второго значения интенсивности светового излучения с помощью взвешенной комбинации, зависящей от первого градиента глубины в первой сетке в первом положении сетки, соответствующем первому положению, относительно второго градиента глубины во второй сетке во втором положении сетки, соответствующем первому положению.
Данное изобретение может во многих вариантах осуществления обеспечивать улучшенное генерирование изображения интенсивности светового излучения для заданной точки наблюдения на основе карт текстур и сеток из других точек наблюдения. Во многих сценариях достигается улучшенное представление участков, в которых устранено затенение по отношению к одной из входных точек наблюдения, но не устранено по отношению к другим. Данный подход может, в частности, во многих вариантах осуществления обеспечивать повышенное качество вокруг краев объектов переднего плана.
Данный подход позволяет избежать генерирования отверстий сетки, известных из других подходов, и может обеспечивать улучшенную равномерность глубины.
Особое преимущество данного подхода состоит в том, что он может во многих вариантах осуществления полностью поддерживаться стандартными программами обработки графики. Например, преобразования точки наблюдения могут во многих вариантах осуществления осуществляться стандартизованными, специализированными и оптимизированными аппаратными средствами обработки графики. Например, данный подход может быть совместимым со стандартизованными графическими процессами и может эффективно их использовать. Действительно, данный подход может быть совместимым со стандартизованными подходами, такими как спецификация OpenGL, благодаря ограничению нестандартных подходов частями конвейера визуализации/обработки, что обеспечивает адаптацию пользователя. Например, данная комбинация может выполняться в рамках этапа формирователя теней фрагментов конвейера визуализации OpenGL.
Возможность использования стандартизованной аппаратно-ускоренной обработки для ресурсоемких элементов может значительно увеличивать, например, скорость или пропускную способность системы. Она позволяет уменьшать сложность и/или требования к ресурсам во многих вариантах осуществления.
Данный подход может обеспечивать адаптацию комбинации таким образом, что она автоматически оценивает вес карт текстур с более высокой плотностью пикселей для заданного участка как более высокий, чем вес карт текстур с более низкими плотностями пикселей.
В некоторых вариантах осуществления преобразование точки наблюдения для первой интенсивности светового излучения может включать в себя применение преобразования точки наблюдения сетки из первой точки наблюдения в третью точку наблюдения к первой сетке для генерирования преобразованной сетки, определение положения в преобразованной сетке, соответствующего первому положению при получении перспективного отображения для третьей точки наблюдения, определение многоугольника преобразованной сетки, содержащего положение в преобразованной сетке, и определение первого значения интенсивности светового излучения в виде интерполяции интенсивностей светового излучения в первой карте текстур, связанной с вершинами многоугольника.
Понятно, что в других вариантах осуществления для преобразования точки наблюдения могут использоваться другие подходы.
Первый и/или второй градиенты глубины могут быть представлены любым значением или параметром, который обеспечивает показатель градиента глубины в соответствующем положении в надлежащей сетке.
В некоторых вариантах осуществления комбинация может содержать дополнительные значения интенсивности светового излучения, получаемые из карт текстур и сеток для других точек наблюдения.
Сетка может представлять собой трехмерную сетку, у которой каждая вершина связана с положением в трех измерениях (имеет положение в трех измерениях). Каждая вершина может, в частности, быть представлена, по меньшей мере, пространственным положением в трех измерениях x, y, z. Каждая вершина сетки может, кроме того, быть связана с положением в соответствующей карте текстур. Например, для каждой вершины может запоминаться положение u,v в карте текстур, соответствующее пространственному положению x, y, z.
Сетка может содержать, помимо прочего, информацию, относящуюся к глубинам представленных объектов (например, как описано, вершины могут быть представлены трехмерными координатами, а на просто координатой глубины).
Положение сетки во входной сетке для входной точки наблюдения, соответствующей первому положению, может представлять собой положение во входной сетке, которое путем преобразования точки наблюдения преобразуется в первое положение. Иными словами, положение сетки во входной сетке для входной точки наблюдения, соответствующей первому положению, может представлять собой положение во входной сетке, связанное с положением в карте текстур, которое путем преобразования точки наблюдения преобразуется в первое положение.
В частности, первое положение сетки может представлять собой положение в первой сетке, которое путем преобразования точки наблюдения преобразуется/отображается в первое положение (или, аналогичным образом, первое положение сетки может представлять собой положение в первой сетке, связанное с положением в первой карте текстур, которое путем преобразования точки наблюдения преобразуется/отображается в первое положение). Аналогичным образом, второе положение сетки может представлять собой положение во второй сетке, которое путем преобразования точки наблюдения преобразуется/отображается в первое положение (или, аналогичным образом, второе положение сетки может представлять собой положение во второй сетке, связанное с положением во второй карте текстур, которое путем преобразования точки наблюдения преобразуется/отображается в первое положение).
Взвешенная комбинация может применять вес к первому значению интенсивности светового излучения, которое относительно веса второго значения интенсивности светового излучения зависит от первого градиента глубины относительно второго градиента глубины.
Глубина может, например, быть представлена расхождением, например, карта глубин может являться отображением карты расхождений.
В соответствии с необязательным признаком изобретения, взвешивание первого значения интенсивности светового излучения относительно второго значения интенсивности светового излучения является монотонно убывающей функцией абсолютного значения первого градиента глубины.
Это может обеспечивать улучшенные характеристики и может, в частности, во многих сценариях смещать комбинацию в направлении значений интенсивности светового излучения, которые представляют скорее незатененные, чем затененные значения во входных картах текстур.
В некоторых вариантах осуществления взвешивание второго значения интенсивности светового излучения может в то же время являться монотонно убывающей функцией абсолютного значения второго градиента глубины.
В соответствии с необязательным признаком изобретения, взвешивание первого значения интенсивности светового излучения относительно второго значения интенсивности светового излучения является монотонно возрастающей функцией абсолютного значения второго градиента глубины.
Это может обеспечивать улучшенные характеристики и может, в частности, во многих сценариях смещать комбинацию в направлении значений интенсивности светового излучения, которые представляют скорее незатененные, чем затененные значения во входных картах текстур.
В некоторых вариантах осуществления взвешивание второго значения интенсивности светового излучения может в то же время являться монотонно возрастающей функцией абсолютного значения первого градиента глубины.
В соответствии с необязательным признаком изобретения, способ также включает в себя определение градиентов глубины, по меньшей мере, для некоторых вершин первой сетки; и определение первого градиента глубины при получении градиентов глубины, по меньшей мере, для некоторых вершин.
Это может обеспечивать особенно эффективную реализацию с высокими характеристиками во многих вариантах осуществления.
Словосочетание «абсолютное значение» будет далее именоваться как «модуль».
В соответствии с необязательным признаком изобретения, определение градиентов глубины включает в себя определение градиента глубины для вершины, по меньшей мере, из некоторых вершин первой сетки в ответ на глубину вершины, глубину, по меньшей мере, одной другой вершины первой сетки и расстояние между вершиной и, по меньшей мере, одной другой вершиной.
Это может обеспечивать особенно эффективную реализацию с высокими характеристиками во многих вариантах осуществления.
В соответствии с необязательным признаком изобретения, определение градиентов глубины включает в себя определение градиента глубины для вершины, по меньшей мере, из некоторых вершин первой сетки в ответ на градиенты глубины от вершины до множества соседних вершин.
Это может обеспечивать особенно эффективную реализацию с высокими характеристиками во многих вариантах осуществления. Это может, в частности, обеспечивать улучшенное обнаружение скачков глубины в любом направлении из заданной вершины. Градиент глубины может, например, определяться как усреднение или максимум градиентов глубины от первой вершины к множеству соседних вершин.
В соответствии с необязательным признаком изобретения, дополнительно предполагается определение первого градиента глубины в ответ на изменения глубины на карте глубин для первой карты текстур.
Это может обеспечивать особенно эффективную реализацию с высокими характеристиками во многих вариантах осуществления. Это может, в частности, обеспечивать менее сложное определение подходящих градиентов глубины. Карта глубин может, например, представлять собой карту глубин (включая, в частности, карту расхождений), используемую для генерирования сетки. Карта глубин может, например, представлять собой исходную карту глубин, которая обеспечивается камерой, захватывающей сцену и генерирующей карту глубин применительно к изображению, которое может использоваться в качестве карты текстур.
В соответствии с необязательным признаком изобретения, способ дополнительно включает в себя этапы: определения карты градиентов глубины для первой карты текстур; применения преобразования точки наблюдения к градиенту глубины для генерирования преобразованной по ракурсу карты градиентов глубины и определения первого градиента глубины в ответ на градиент глубины в положении на преобразованной по ракурсу карте градиентов глубины, соответствующем первому положению.
Это может обеспечивать особенно эффективное функционирование и позволяет значительно снижать требования к ресурсам и/или увеличивать скорость обработки. В частности, это позволяет во многих вариантах осуществления обеспечивать использование стандартизованного аппаратного ускорения для критических с точки зрения ресурсов элементов процесса.
В соответствии с необязательным признаком изобретения, способ дополнительно включает в себя этапы: определения карты весов, содержащей веса для взвешенной комбинации при получении градиентов глубины; применения преобразования точки наблюдения к карте весов для генерирования преобразованной по ракурсу карты весов и определения веса для взвешенной комбинации при получении веса в первом положении на преобразованной по ракурсу карте градиентов глубины.
Это может обеспечивать особенно эффективную реализацию с высокими характеристиками во многих вариантах осуществления. Это может обеспечивать особенно эффективное функционирование и позволяет значительно снижать требования к ресурсам и/или увеличивать скорость обработки. В частности, это позволяет во многих вариантах осуществления обеспечивать использование стандартизованного аппаратного ускорения для критических с точки зрения ресурсов элементов процесса.
В соответствии с необязательным признаком изобретения, преобразования точки наблюдения для первой карты текстур, второй карты текстур и, по меньшей мере, одной из карты градиентов глубины и карты весов являются одним и тем же преобразованием точки наблюдения.
Данный подход может обеспечивать чрезвычайно эффективное функционирование с низкой сложностью, при котором одни и те же оптимизированные функциональные возможности (например, GPU) могут повторно использоваться для критических с точки зрения ресурсов элементов обработки.
В соответствии с необязательным признаком изобретения, первая карта текстур и первая сетка генерируются в результате захвата реальной сцены.
Данный подход может обеспечивать высокие характеристики и эффективное определение изображений для новых точек наблюдения при захвате реальной сцены и не ограничен, например, изображениями, получаемыми графическими процессорами виртуальной реальности.
В соответствии с необязательным признаком изобретения, взвешивание также зависит от разности между первой точкой наблюдения и третьей точкой наблюдения.
Это может улучшать характеристики во многих вариантах осуществления.
В соответствии с необязательным признаком изобретения, взвешивание первого значения интенсивности светового излучения относительно второго значения интенсивности светового излучения также зависит от показателя достоверности, свидетельствующего о достоверности оценки глубины, используемой для определения глубины в первом положении сетки на первой карте глубин, причем увеличение веса первого значения интенсивности светового излучения относительно второго значения интенсивности светового излучения для показателя достоверности свидетельствует об увеличении достоверности оценки глубины.
Это может улучшать характеристики во многих вариантах осуществления.
В соответствии с одним из аспектов изобретения, предлагается устройство для генерирования изображения интенсивности светового излучения, причем, устройство содержит: приемник для приема первой карты текстур и первой сетки, представляющих сцену, из первой точки наблюдения; приемник для приема второй карты текстур и второй сетки, представляющих сцену, из второй точки наблюдения; генератор изображений для генерирования изображения интенсивности светового излучения, представляющего сцену, из третьей точки наблюдения в ответ на первую карту текстур, первую сетку, вторую карту текстур и вторую сетку; причем генератор изображений содержит: первый преобразователь ракурса для определения первого значения интенсивности светового излучения для первого положения в изображении интенсивности светового излучения путем преобразования точки наблюдения на основе первой карты текстур и первой сетки; второй преобразователь ракурса для определения второго значения интенсивности светового излучения для первого положения путем преобразования точки наблюдения на основе второй карты текстур и второй сетки; комбинатор для определения значения интенсивности светового излучения для изображения интенсивности светового излучения в первом положении с помощью взвешенной комбинации первого значения интенсивности светового излучения и второго значения интенсивности светового излучения; причем, взвешивание взвешенной комбинации зависит от первого градиента глубины в первой сетке в первом положении сетки, соответствующем первому положению, относительно второго градиента глубины во второй сетке во втором положении сетки, соответствующем первому положению.
Эти и другие аспекты, признаки и преимущества изобретения будут понятны из нижеописанного варианта (вариантов) осуществления и объяснены применительно к нему (ним).
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Далее варианты осуществления изобретения описываются исключительно для примера со ссылкой на чертежи, на которых
Фиг. 1 иллюстрирует пример преобразования точки наблюдения для сцены с одним фоновым объектом и объектом переднего плана;
Фиг. 2 иллюстрирует пример элементов устройства для генерирования изображения в соответствии с некоторыми вариантами осуществления изобретения;
Фиг. 3 иллюстрирует пример элементов способа генерирования изображения в соответствии с некоторыми вариантами осуществления изобретения;
Фиг. 4 иллюстрирует пример элементов способа генерирования изображения в соответствии с некоторыми вариантами осуществления изобретения;
Фиг. 5 иллюстрирует пример преобразования точки наблюдения для сцены с одним фоновым объектом и объектом переднего плана;
Фиг. 6 иллюстрирует пример градиентов глубины для различных точек наблюдения; и
Фиг. 7 иллюстрирует пример преобразования точки наблюдения для сетки.
ПОДРОБНОЕ ОПИСАНИЕ НЕКОТОРЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В нижеследующем описании основное внимание уделяется вариантам осуществления изобретения, применимым к визуализации двумерного изображения на основе карт текстур и сеток, генерируемых в результате захвата реальной трехмерной сцены из различных точек наблюдения (т.е., с различных ракурсов камеры). Однако понятно, что изобретение не ограничено данным применением, а может применяться, например, к генерированию изображений на основе генерируемых компьютером карт глубин и сеток для сцены виртуальной реальности.
Многие алгоритмы и процессы обработки трехмерных изображений (включая видео) основаны на использовании треугольных сеток, поскольку это может обеспечивать высокую вычислительную эффективность во многих вариантах осуществления. Сетки глубин, обеспечивающие трехмерную информацию вместе с соответствующей картой текстур, широко используются во многих системах обработки графики, например, в частности, в компьютерной графике. Сетка может обеспечивать информацию о геометрической структуре, которая включает в себя информацию о глубине (но, разумеется, не ограничена только обеспечением информации о глубине, например, она может, как правило, обеспечивать трехмерную координату по каждой вершине). Для краткости комбинация сетки и ее соответствующей карты текстур будет в дальнейшем называться также изображением сетки.
Данный подход хорошо подходит для гибкого изменения направлений наблюдения при визуализации сцены и особенно подходит для сценариев, в которых точка наблюдения не ограничена движениями строго по горизонтальной линии, а, скорее, желательно свободное движение точки наблюдения. Эффективным способом генерирования новой точки наблюдения является преобразование сеток, исходящих из различных точек наблюдения, в единую реальную систему координат, а затем выполнение перспективной проекции на новую плоскость камеры. Эти этапы могут очень эффективно осуществляться с использованием стандартных оптимизированных графических аппаратных средств, например, аппаратных средств на основе стандарта OpenGL. Однако с целью оптимизации качества и обеспечения дополнительной информации по участкам, затенение которых устранено путем преобразований точки наблюдения, генерирование изображения визуализации из новой точки наблюдения предпочтительно осуществляется на основе карт текстур и сеток, обеспечиваемых для множества различных точек наблюдения.
Автору изобретения очевидно, что это может часто приводить к субоптимальным результатам с артефактами и, в частности, к искажениям глубины и некорректному заполнению участков, затенение которых устранено.
Это можно проиллюстрировать с помощью фиг. 1, которая иллюстрирует пример с использованием одного объекта переднего плана перед одним фоновым объектом. В примерах каждую точку/пятно можно рассматривать как соответствующую положению сцены, которое может быть представлено вершиной, при этом, как правило, пятно может быть представлено пикселем и фактически вершиной сетки. Фиг. 1 иллюстрирует пример, в котором изображение сетки предусмотрено для первой точки 1 наблюдения и для второй точки 2 наблюдения. На основе этих изображений сеток генерируется двумерное изображение для третьей точки 3 наблюдения между первой точкой 1 наблюдения и второй точкой 2 наблюдения. Таким образом, в данном примере первая и вторая точки 1,2 наблюдения соответствуют точкам наблюдения камеры при захвате сцены, а точка 3 наблюдения соответствует требуемой точке наблюдения для сцены. Изображение представляет собой изображение интенсивности светового излучения, генерируемое для визуализации. Оно может непосредственно отражать значение интенсивности светового излучения для отдельных пикселей изображения, визуализируемого/отображаемого дисплеем.
Понятно, что значения интенсивности светового излучения могут представлять собой любое значение, отражающее интенсивность светового излучения, и могут, в частности, представлять собой интенсивность светового излучения, например, для одного цветового канала. Например, значение интенсивности светового излучения может представлять собой значение R, G или B в RGB-представлении, либо может, например, представлять собой значение Y в Yuv-представлении, либо может в действительности представлять собой значение u или v в таком Yuv-представлении. Необходимо отметить, что значения u и v могут представлять собой значения насыщенности цвета, и они также обеспечивают информацию, относящуюся к интенсивности светового излучения отдельных цветовых каналов при визуализации. Таким образом, интенсивность светового излучения может представлять собой значение яркости, цветности или же насыщенности цвета цветового представления.
На фиг. 1 первый чертеж иллюстрирует положения, которые видны из точки 1 наблюдения, сплошными (заполненными) пятнами, при этом положения на фоновом объекте, которые затенены объектом переднего плана, иллюстрируются белыми (незаполненными) пятнами. Второй чертеж иллюстрирует соответствующую ситуацию из точки 2 наблюдения. Таким образом, две первые части чертежа иллюстрируют видимость точек сцены для двух различных точек 1 и 2 наблюдения камеры.
Третья часть чертежа иллюстрирует результат комбинирования сеток и текстур из точек 1 и 2 наблюдения и их деформацию (преобразование точки наблюдения) в точку 3 наблюдения. Сетка, исходящая из точки 2 наблюдения, локально растягивается, и образуется окно (соответствующее устранению затенения части фонового объекта). Глубина окна линейно интерполируется между точками с различной глубиной после проецирования на виртуальную точку 3 наблюдения. Серыми кругами отображены точки, которые исходят из точки 2 наблюдения и которые линейно интерполированы между известными трехмерными точками в сетке при проецировании сцены в координатах камеры точки 3 наблюдения. Таким образом, серые пятна/точки обозначают положения по глубине, которые после устранения затенения, происходящего вследствие преобразования точки наблюдения из точки 2 наблюдения в точку 3 наблюдения, генерируются в соответствии с положениями на изображении из точки 3 наблюдения. Эти точки лежат ближе к точке 3 наблюдения, чем находящиеся за ними черные точки, которые представляют точки на фоновом объекте, видимые из точки 1 наблюдения.
Однако при генерировании изображения для точки 2 наблюдения типичный подход состоит в выборе самого переднего положения. Таким образом, вместо того, чтобы идеально выбирать черные точки, исходящие и видимые из точки 1 наблюдения, система будет выбирать серые точки, исходящие из точки 2 наблюдения. В этой связи, значение изображения интенсивности светового излучения будет в этих точках генерироваться на основе карты текстур точки 2 наблюдения, а не на основе карты текстур точки 1 наблюдения. Это приведет к тому, что изображение для участка, затенение которого устранено, определяется по карте текстур, в которой соответствующий объект был затенен, а не по карте текстур, в которой объект не был затенен. В результате этого, качество генерируемого изображения ухудшается, и, как правило, элементы участка, затенение которого устранено, представлены неточно несмотря на соответствующую информацию, в действительности имеющуюся для данного процесса.
Необходимо отметить, что хотя можно изменить логику проверки глубины, используемую в стандартизованных аппаратных средствах, это может осуществляться только для заданного обращения к визуализации. Поэтому вновь необходимо разбить сетку на части с вышеупомянутыми недостатками использования порогов. Стандартная проверка глубины является частью обработки для решения проблемы самозатенения, при которой сетка из отдельной точки наблюдения может сложиться сама в себя (самозатенение), при этом проверка глубины используется для устранения возникающих в результате неоднозначностей.
Далее устройство и способ для генерирования изображения интенсивности светового излучения по множеству сеток и соответствующих карт текстур для различных точек наблюдения описываются со ссылкой на фиг. 2, которая иллюстрирует некоторые примеры элементов такого устройства, и на фиг. 3, которая иллюстрирует некоторые примеры элементов такого способа.
Целью подхода к устройству и способу, изображенными на фиг. 2 и 3, является уменьшение некоторых из описанных недостатков. В частности, вместо того, чтобы выбирать самую переднюю точку, система выполнена с возможностью генерирования интенсивности светового излучения для выходного изображения на основе взвешенной комбинации значений обоих карт текстур, у которых вес зависит от соответствующих градиентов глубины в двух сетках.
Устройство содержит первый приемник 201, выполняющий этап 301, на котором принимается первое изображение сетки, т.е., принимаются первая сетка и первая карта текстур. Первое изображение сетки представляет сцену из заданной точки наблюдения.
Изображение сетки может приниматься из любого внутреннего или внешнего источника. Например, в некоторых вариантах осуществления изображение сетки может приниматься из внешнего источника, например, посредством системы связи или, в частности, посредством сети, например, Интернет. В некоторых вариантах осуществления изображение сетки может приниматься из внутреннего источника, выполненного с возможностью считывания подходящего распространяемого носителя, например, изображение сетки может извлекаться из DVD. В некоторых вариантах осуществления изображение сетки может, например, извлекаться из жесткого диска или локальной памяти, или же в некоторых вариантах осуществления изображение сетки может генерироваться локально, например, локальным приложением виртуальной реальности.
Во многих вариантах осуществления первая карта текстур и первая сетка могут генерироваться в результате захвата реальной сцены. Захват может осуществляться подходящим набором камер. Например, отдельная стереокамера или дальномерная камера может захватывать реальную сцену и генерировать изображение и карту глубин(/расхождений). В других вариантах осуществления множество камер в различных положениях может захватывать двумерное изображение, а карта глубин может генерироваться из захваченных изображений, например, путем оценки расхождений. Одно из изображений может использоваться в качестве карты текстур, а сетка может генерироваться из соответствующей карты глубин. Таким образом, изображение сетки может представлять собой изображение, которое обеспечивает захват реальной сцены, при этом карта текстур представляет интенсивности светового излучения, захваченные камерой в заданной точке наблюдения, а захваченная информация о глубине представлена сеткой. Таким образом, изображение сетки обеспечивает ограниченную информацию о сцене, поскольку она лишь представляет информацию, которая может определяться из заданной точки наблюдения (в противоположность, например, имеющейся детализированной геометрической модели, как, возможно, обстоит дело, например, для локального процессора виртуальной реальности).
Устройство также содержит второй приемник 203, выполняющий этап 303, на котором он принимает второе изображение сетки, т.е., он принимает вторую карту текстур и вторую сетку. Второе изображение сетки обеспечивает представление той же сцены, но из другой точки наблюдения. Понятно, что комментарии, выдаваемые по отношению к первому изображению сетки, в равной степени относятся ко второму изображению сетки.
Первый приемник 201 и второй приемник 203 связаны с генератором 205 изображений, выполняющим этап 305, на котором изображение интенсивности светового излучения, представляющее сцену из третьей точки наблюдения генерируется при получении первой карты текстур, первой сетки, второй карты текстур и второй сетки. Таким образом, на основе первого и второго изображений сетки, соответственно, для первой и второй точки наблюдения генерируется изображение для третьей точки наблюдения. Первая и вторая точки наблюдения могут, как правило, представлять собой точки наблюдения камеры для сцены, при этом третья точка наблюдения представляет требуемую точку наблюдения. Изображение представляет собой изображение интенсивности светового излучения и может, в частности, соответствовать изображению, которое может быть представлено непосредственно на дисплее для обеспечения вида сцены из третьей точки наблюдения. В частности, изображение интенсивности светового излучения может включать в себя набор значений интенсивности светового излучения, при этом каждое значение интенсивности светового излучения означает интенсивность светового излучения в некотором положении изображения. Как правило, изображение может включать в себя набор пикселей, при этом каждый пиксель имеет одно или более значений интенсивности светового излучения. Таким образом, каждое значение интенсивности светового излучения может соответствовать некоторому значению пикселя.
Понятно, что в некоторых вариантах осуществления каждое положение (пиксель) может быть связано с/описываться/определяться одним значением интенсивности светового излучения. Это может, например, иметь место для монохромных изображений. В других вариантах осуществления каждое положение (пиксель) может быть связано с/описываться/определяться множеством значений интенсивности светового излучения, например, одним значением интенсивности светового излучения для каждого канала цветового представления. Таким образом, значения интенсивности светового излучения могут считаться значениями интенсивности цвета, при этом изображение интенсивности светового излучения может представлять собой изображение интенсивности цвета. В случае множества пикселей, каждый из которых представлен множеством значений интенсивности светового излучения, например, соответствующих различным цветовым каналам, описанный подход может, например, применяться по отдельности к каждому значению интенсивности светового излучения цветового канала.
Генератор 205 изображений при этом выполнен с возможностью генерирования изображений для различных точек наблюдения. Например, в некоторых вариантах осуществления генератор 205 изображений может быть снабжен входом, задающим требуемую точку наблюдения, например, генерируемую в ответ на вводимые пользователем данные. Генератор 205 изображений может после этого на основе принятых изображений сеток генерировать выходное изображение на дисплее, соответствующее указанной точке наблюдения. Это изображение может после этого, например, визуализироваться подходящим дисплеем.
Далее действие генератора 205 изображений подробнее описывается ссылкой на фиг. 2 и фиг. 4, которые иллюстрируют пример подхода к генератору 205 изображений.
Генератор 205 изображений содержит первый преобразователь 207 ракурса, выполняющий этап 401, на котором преобразование точки наблюдения применяется к первому изображению сетки, при этом преобразование точки наблюдения обеспечивает преобразование точки наблюдения из первой точки наблюдения в третью точку наблюдения. В частности, для первого положения (как правило, положения пикселя) в изображение интенсивности светового излучения первый преобразователь 207 ракурса определяет значение интенсивности светового излучения на основе преобразования точки наблюдения из первой точки наблюдения в третью точку наблюдения, причем, преобразование точки наблюдения основано на первой карте текстур и первой сетке.
Аналогичным образом, генератор 205 изображений содержит второй преобразователь 209 ракурса, выполняющий этап 403, на котором преобразование точки наблюдения применяется ко второму изображению сетки, при этом преобразование точки наблюдения обеспечивает преобразование точки наблюдения из второй точки наблюдения в третью точку наблюдения. В частности, для первого положения (как правило, положения пикселя) в изображении интенсивности светового излучения второй преобразователь 209 ракурса определяет второе значение интенсивности светового излучения на основе преобразования точки наблюдения из второй точка наблюдения в третью точку наблюдения, причем, преобразование точки наблюдения основано на второй карте текстур и второй сетке.
Понятно, что известно множество различных подходов к преобразованию точки наблюдения на основе карты текстур и сетки и что любой подходящий подход может использоваться в пределах изобретения.
Во многих вариантах осуществления преобразования точки наблюдения могут предпочтительно включать в себя первое применение преобразования точки наблюдения сетки из входной точки наблюдения в выходную точку наблюдения в сетку. Специалистам в данной области техники известны различные подходы к выполнению этого, в связи с чем они подробнее не описываются.
При определении значения интенсивности светового излучения для заданного положения в выходном изображении для третьей точки наблюдения генератор 205 изображений может затем определять положение в преобразованной сетке, которое соответствует заданному положению. Это может осуществляться при получении перспективной проекции из третьей точки наблюдения, как известно специалистам в данной области техники.
Генератор 205 изображений может после этого определять значение интенсивности светового излучения путем интерполяции значений карты текстур вершин многоугольника, в который попадает положение сетки. Интерполяция может зависеть от расстояния от положения сетки до отдельных вершин.
Например, в исходной сетке перед преобразованием каждая вершина может иметь связанное положение в системе координат на основе текущей точки наблюдения (например, для каждой вершины задаются координаты x, y, z). Кроме того, каждая вершина указывает на конкретное значение интенсивности светового излучения/значение пикселя в соответствующем карте текстур, т.е., для каждой вершины также сохраняется набор координат (u,v) двумерной карты текстур.
Преобразование точки наблюдения сетки приводит к изменению положений вершин таким образом, что значения x,y,z преобразуются в соответствующие координаты в системе координат третьей точки наблюдения. Определяется точка на сетке, соответствующая первому положению в изображении интенсивности светового излучения, и идентифицируются вершины многоугольника, в который она попадает. Определяется расстояние от этой точки до каждой из вершин, и для каждой вершины определяется изображение интенсивности светового излучения карты текстур в положении u,v вершины. Затем определяется значение интенсивности светового излучения для первого положения с помощью взвешенной интерполяции этих значений карты текстур, при этом веса зависят от расстояний до отдельной вершины.
Еще в одном примере преобразование точки наблюдения может выполняться следующим образом:
1. Проецирование трехмерной сетки на точку наблюдения для выходного изображения (т.е., на третью точку наблюдения) с использованием перспективной проекции.
2. Для каждого 2-мерного положения пикселя в выходном изображении:
a. Определение того, в какой многоугольник сетки оно попадает;
b. Определение его трехмерного положения в исходной системе координат сетки с использованием трехмерных координат вершин треугольника и линейной интерполяции;
c. Определение координат (u,v) текстуры во входной карте текстур с использованием координат (u,v) текстуры вершин треугольника и линейной интерполяции;
d. Задание значения пикселя выходного изображения равным значению текстуры в местоположении (u,v) карты текстур.
Понятно, что в других вариантах осуществления могут использоваться другие преобразования точки наблюдения.
На основе преобразований точки наблюдения первый преобразователь 207 ракурса и второй преобразователь 209 ракурса соответствующим образом генерируют выходные изображения, которые соответствуют третьей точке наблюдения. Однако ввиду преобразования точки наблюдения некоторые участки изображений могут содержать участки, затенение которых устранено. Однако они часто бывают различными для различных изображений.
Первый преобразователь 207 ракурса и второй преобразователь 209 ракурса связаны с комбинатором 211, выполняющим этап 407, на котором генерируется выходная интенсивность светового излучения для изображения интенсивности светового излучения путем комбинирования изображений из двух преобразователей 207, 209 ракурса. В частности, для заданного положения (пикселя) в выходном изображении комбинатор 211 применяет взвешенную комбинацию первого значения интенсивности светового излучения в данном положении в изображении, генерируемом первым преобразователем 207 ракурса, и второго значения интенсивности светового излучения в этом положении в изображении, генерируемом вторым преобразователем 209 ракурса.
Вес взвешенной комбинации зависит от относительного градиента глубины для соответствующего положения в сетке. В частности, вес зависит от показателя градиента в первой сетке в положении сетки, соответствующем первому положению, относительно показателя градиента глубины во второй сетке в положении сетки, соответствующем первому положению. Таким образом, вес зависит от относительных градиентов глубины в этом положении. Понятно, что градиенты глубины могут определяться различными способами в различных вариантах осуществления и что любой показатель величины или модуля градиента глубины может считаться представлением этого градиента глубины. Например, в некоторых вариантах осуществления градиент глубины может быть представлен двоичной величиной, попросту указывающей, находится ли градиент глубины выше или ниже порога.
Комбинатор 211 может, в частности, уменьшать вес для увеличения градиентов. Например, во многих вариантах осуществления вес первого значения интенсивности светового излучения от первого преобразователя 207 ракурса может являться монотонно убывающей функцией модуля градиента в первой сетке. Иными словами, вес первого значения интенсивности светового излучения от первого преобразователя 207 ракурса может являться монотонно возрастающей функцией модуля градиента во второй сетке. То же самое может быть симметрично применимо к взвешиванию величины второго значения интенсивности светового излучения от второго преобразователя 209 ракурса. Вес каждой текстуры может, в частности, быть обратно пропорционален модулю локального градиента на карте глубин/расхождений или сетке, которая связана с каждой текстурой.
Таким образом, значение выходного светового излучения выбирается не просто как самая передняя точка, а, скорее, выполняется последовательная комбинация на основе градиентов глубины (скорости изменения по глубине в изображении). Данный подход, тем самым, склоняет к значениям интенсивности светового излучения для более плоских участков, в то же время, предубеждая против участков с большими изменениями глубины, например, в частности, со скачками по глубине.
Автору изобретения понятно, что такая основанная на градиенте глубины адаптивная взвешенная комбинация может обеспечивать улучшенные изображения во многих сценариях и, как правило, может обеспечивать значительно улучшенные характеристики и качество изображения.
Данный эффект может быть проиллюстрирован применительно к примеру на фиг. 5, который соответствует примеру на фиг. 1.
В данном примере используется очень простой показатель градиента глубины, у которого величина, равная 1, относится к положению, в котором модуль градиента глубины превышает порог, а величина, равная 0, относится к иным случаям. Фиг. 5 a и b иллюстрируют значения модуля градиента, равные либо 0 (в постоянной области), либо 1 (вокруг скачка глубины) для точки 1 и 2 наблюдения соответственно. Фиг. 5 c иллюстрирует результат после деформации/преобразования точки наблюдения в третью точку наблюдения. В этом случае также серыми пятнами обозначены значения, полученные путем интерполяции.
Для заданного положения в выходном изображении интенсивности светового излучения, т.е., для заданной линии перспективы из точки 3 наблюдения значение выходной интенсивности светового излучения в данном случае определяется как взвешенная комбинация соответствующих значений интенсивности светового излучения в двух генерируемых изображениях. Изображение, имеющее более низкий модуль градиента глубины, будет иметь больший вес, и, следовательно, в данном примере плоские черные пятна позади находящихся впереди серых пятен будут иметь больший вес, а, как правило, значительно больший. В связи с этим, выходное значение преимущественно задается значением изображения, которое содержит реальную информацию о фоновом объекте, а не интерполированными значениями, для которых устранено затенение. Обнаружено, что данный подход обеспечивает довольно существенное улучшение и, в частности обеспечивает существенное улучшенное качество на участках, затенение которых устранено.
Понятно, что в различных вариантах осуществления могут использоваться различные взвешенные комбинации. В качестве конкретного примера может использоваться взвешенная линейная комбинация. Например, для каждого пикселя в выходном изображении для третьей точки наблюдения может выполняться следующая комбинация:
Тильда  означает, что соответствующая переменная была преобразована в выходную систему/сетку координат третьей точки наблюдения посредством преобразования точки наблюдения. В тех случаях, когда переменные обозначены без тильды, они при этом неявно представлены в исходных координатах. В качестве альтернативы предыдущей комбинации взвешивание может выполняться следующим образом:
где  - постоянный коэффициент, а  - максимальное значение, которое могут принимать оба веса. Коэффициент , как правило находится в диапазоне от 0,1 до 0,3 и предпочтительно ближе к 0,1, чем к 0,3.
В этом случае взвешивание выполняется только для пространственных местоположений, в которых первая точка наблюдения имеет низкую достоверность. Преимущество этого состоит в том, что на участках, где первая точка наблюдения является точной (высокое значение  веса), качество изображения не ухудшается ввиду неидеального выравнивания текстуры деформированных первой и второй точек наблюдения.
Веса в предыдущих уравнениях зависят от модуля локального градиента в исходном изображении сетки:
, .
Функция  является, как правило, монотонно убывающей функцией модуля градиента, т.е., большой модуль градиента приводит к малому весу для соответствующей текстуры в операции смешивания.
В качестве примера данных на фиг. 5 можетиметь вид:
.
Когда модуль градиента , веса равны 1. Когда модуль градиента , веса равны 4,54.
В качестве примера, рассмотрев фиг. 5 для точки 3 наблюдения (фиг. 5c), можно увидеть, что первые 3 образца слева направо, исходящие из точки 2 наблюдения, принимают относительно большой вес, равный 1, поскольку модуль градиента равен нулю. Однако исходные образцы 4 и 5 слева направо в точке 2 наблюдения имеют модуль градиента, равный 1 (градиент выше порога). Интерполированные (серые) образцы 4,5,6 в выходной точке 3 наблюдения интерполированы между этими двумя значениями, и следовательно, все они значение интерполированного модуля градиента, равное 1, с соответствующим очень малым весом, равным 4,54. Веса, исходящие из точки 1 наблюдения, являются высокими (1) для этих образцов, что означает, что для серых образцов 4,5,6 в выходном виде 3 скрытая поверхность из точки 1 наблюдения полностью видна. Образец 7 в выходной точке 3 наблюдения комбинирует малый вес, равный 4,54 и исходящий из точки 1 наблюдения, с малым весом, равным 4,54 и исходящим из точки 2 наблюдения. В результате этого текстуры в данном местоположении смешиваются с равным весом.
В приведенных выше примерах вес для заданного изображения сетки зависит только от (деформированного) градиента глубины для этого изображения сетки. Однако в других вариантах осуществления вес для одного значения интенсивности светового излучения может зависеть от локального градиента как в первом, так и во втором изображениях сеток.
Например, первый вес может иметь вид:
,
1
2
1
2
где g - локальный модуль градиента в первой сетке, g - локальный модуль градиента во второй сетке, а f - монотонно убывающая функция g и монотонно возрастающая функция g.
2
1
В некоторых вариантах осуществления w может быть непосредственно получена из w. Например, f может быть ограничено диапазоном от 0 до единицы, а второй вес может попросту иметь вид:
Предлагаемый подход, основанный на взвешивании, имеет преимущество, состоящее в том, что сетка для каждой исходной точки наблюдения не обязательно должна «вырезаться» при неравномерностях глубины с использованием пороговой обработки. Информация из различных точек наблюдения объединяется программным способом (смешивается) - операция, которая, как правило, дает лучшие результаты, чем использование пороговой обработки.
Еще одно преимущество данного подхода состоит в том, что на наклонных поверхностях камера, которая передает наивысшую плотность образцов, автоматически получает наивысший вес в операции комбинирования/смешивания. Этот механизм иллюстрируется на фиг. 6.
Основанный на градиентах вес, описанный выше, является локальным, т.е., переменные неявно зависят от пространственного расположения. Для простоты обозначения эта зависимость от расположения была исключена из приведенных выше уравнений. Чтобы пояснить это, можно сделать следующие подстановки:
где  - либо показатель вершины сетки, либо показатель координаты 2-мерного изображения:  для заданной точки наблюдения.
Фиг. 5 иллюстрирует данный эффект применительно к одномерному представлению. Фиг. 7 иллюстрирует соответствующий сценарий применительно к двумерному представлению сетки. В данном примере первый чертеж иллюстрирует сетку для первой точки наблюдения, а второй чертеж иллюстрирует соответствующую сетку после деформации в третью точку наблюдения. В приведенном на первом чертеже примере многоугольники, окаймленные жирными гранями, находятся на постоянной глубине на переднем плане (f), а многоугольники, окаймленные только тонкими гранями, находятся на постоянной глубине на заднем плане (b). Многоугольники, окаймленные и жирными гранями, и тонкими гранями, имеют переменную глубину и, следовательно, большой градиент. Если применяется преобразование точки наблюдения, объект переднего плана смещается, и в результате этого сетка локально растягивается, как показано на втором чертеже. Указанная растянутая область находится там, где описанный подход обеспечивает появление потенциальной фоновой текстуры.
Еще одно весьма существенное преимущество данного подхода состоит в том, что операции, выполняемые первым преобразователем 207 ракурса и вторым преобразователем 209 ракурса, могут во многих вариантах осуществления выполняться путем оптимизированной обработки графики стандартными аппаратными средствами. Например, описанная обработка двух преобразователей 205, 207 ракурса может выполняться с помощью GPU, поддерживающего, например, стандарт OpenGL. Это позволяет снижать стоимость, упрощать конструкцию и реализацию и обеспечивать более эффективную реализацию, как правило, при значительно увеличенных скоростях обработки. Кроме того, функционирование комбинатора 211 является функционированием, которое поддерживается как определяемая пользователем обработка. Действительно, оно может вписываться в конвейер обработки графики в соответствии, например, со стандартом OpenGL, т.е., оно является функционированием, которое может осуществляться на этапах конвейера, что обеспечивает адаптацию пользователя и программирование. В частности, оно может осуществляться на этапах формирователя теней фрагментов конвейера визуализации OpenGL.
В различных вариантах осуществления могут использоваться различные подходы к определению модулей градиентов. Во многих вариантах осуществления модули градиентов могут локально определяться устройством. В примере на фиг. 2 генератор 205 изображений дополнительно содержит процессор 213 градиента глубины, который выполнен с возможностью определения модулей локального градиента.
В некоторых вариантах осуществления процессор 213 градиента глубины может быть выполнен с возможностью генерирования градиентов глубины для вершин исходной сетки. Например, для каждой вершины в первой сетке градиент глубины может быть определен и связан с вершиной. После этого на основе этих градиентов глубины вершины может определяться градиент для заданного положения в выходном изображении интенсивности светового излучения. Например, может использоваться подход, соответствующий выше описанному подходу к генерированию значений интенсивности светового излучения с помощью преобразователей 207, 209 ракурса, т.е., может определяться многоугольник в сетке, соответствующей положению в изображении интенсивности светового излучения, а интерполяция градиентов глубины для вершин многоугольника может использоваться для определения градиента глубины в данном положении. Затем это может использоваться при взвешивании.
В некоторых вариантах осуществления градиенты глубины могут использоваться для определения карты градиентов глубины. В частности, может определяться карта градиентов глубины, которая для каждого положения в карте текстур имеет градиент глубины (в частности, модуль градиента глубины). Таким образом, градиент глубины может иметь такое же разрешение, как и карта текстур (хотя это и не обязательно во всех вариантах осуществления). Значения градиента глубины для заданного положения пикселя могут, например, определяться путем интерполяции по градиентам глубины вершин многоугольника, в который попадает положение пикселя.
Результирующая карта градиентов глубины может затем быть преобразована по ракурсу в третью точку наблюдения. В этом преобразование точки наблюдения может например, использоваться точно такая же обработка преобразования точки наблюдения, как и используемая для карты текстур. Таким образом, процессор 213 градиента глубины может генерировать карту градиентов глубины, содержащую градиент глубины для каждого пикселя первого карты текстур. Это определение может основываться на определении градиента глубины для каждой вершины первой сетки. Карта градиентов глубины после этого подается на первый преобразователь 207 ракурса вместе с первой сеткой, и применяется точно такая же обработка, как и к первой карте текстур при генерировании первого преобразованного изображения/карты текстур. В результате этого обеспечивается деформированная карта градиентов глубины, которая в точности совпадает с деформированным изображением. Таким образом, при комбинировании деформированных изображений веса для заданного пикселя могут непосредственно определяться по градиентам глубины в том же положении пикселя в двух деформированных/преобразованных картах градиентов глубины.
Этот подход может во многих вариантах осуществления быть чрезвычайно эффективным, поскольку он может обеспечивать использование точно такой же обработки. Действительно, карта градиентов глубины может быть неотличимой от карты текстур (они могут попросту представлять собой карту значений) и, следовательно, может обрабатываться точно так же, как если бы она являлась картой текстур. Это может обеспечивать использование для данного процесса ускоряющих графических аппаратных средств и тем самым обеспечивать быструю и эффективную обработку. Это также упрощает комбинирование, поскольку это позволяет попросту извлекать соответствующие значения из преобразованных карт градиентов глубины.
Подход к определению градиентов глубины для вершин может быть различным в различных вариантах осуществления. Во многих вариантах осуществления градиент глубины для заданной вершины может определяться на основе глубины этой вершины и глубины, по меньшей мере, еще одной вершины в сетке, как правило, соседней вершины. В частности, градиент глубины может определяться при получении разности глубин для двух вершин. Кроме того, поскольку расстояние между вершинами в сетке может, как правило, изменяться, разность глубин может компенсироваться с учетом расстояния между ними. Во многих вариантах осуществления градиент глубины может определяться как разность глубин между двумя вершинами, деленный на расстояние между ними.
В том случае, когда трехмерная сетка получена по плотной карте глубин или расхождений, градиент в заданной вершине может быть взят из своего расположения в карте глубин, которая получена по карте расхождений. Таким образом, информация о градиентах глубины создается, когда сетка создается по карте глубин.
В некоторых вариантах осуществления может учитываться только еще одна вершина, например, ближайшая, но в большинстве вариантов осуществления градиент глубины для заданной вершины определяется на основе усреднения градиентов глубины от вершины до множества соседних вершин. Это может, в частности, обеспечивать рассмотрение изменений глубины во множестве направлений. Как правило, учитываются все соседние вершины с целью учета всех изменений глубины (например, на ребре объекта скачок глубины может приводить к очень высокому градиенту в одном направлении, но к очень низкому, например, в противоположном направлении).
Данный подход может также обеспечивать эффективное определение градиента для сетки, у которой многоугольники могут значительно различаться по размеру. Например, при рассмотрении типичных трехмерных данных в форме сетки, генерируемой в результате захвата камерой, необходимо быть внимательным при вычислении градиента. В этом случае из соображений эффективности сжатия сетка часто может быть представлена более крупными треугольниками для так называемых плоских участков, глубина которых не изменяется быстро как функция пространственных координат. И наоборот, на неравномерностях глубины треугольники в сетке малы, чтобы представлять шаг по глубине. Однако это может компенсироваться в описанном подходе определения среднего абсолютного изменения по глубине по всем соседним вершинам в графе и нормализации вклада каждого соседа длиной 2-мерного ребра.
Например, может использоваться следующее уравнение:
m
k
u,v
D
где  - число соседних вершин  для вершины , () относится к положению в карте текстур, а  относится к глубине.
В некоторых вариантах осуществления процессор 213 градиента глубины может быть выполнен с возможностью определения градиентов глубины при получении изменений глубины на карте глубин для первой карты текстур. Таким образом, вместо (или, возможно, помимо) определения градиента глубины процессором 213 градиента глубины при получении глубин вершин, он может обрабатывать карту глубин для определения градиентов. Например, во многих вариантах осуществления камера может непосредственно обеспечивать изображение и соответствующую карту глубин. Это может быть преобразовано в сетку и карту текстур (при этом карта текстур, как правило, представляет собой непосредственно захваченное изображение). Процессор 213 градиента глубины может в этом случае непосредственно обрабатывать исходную карту глубин для генерирования градиента карты глубин. Например, для заданного пикселя могут определяться изменения глубины, например, в четырех или восьми различных направлениях, и градиент может задаваться как средний или наивысший среди них градиент.
Это может во многих вариантах осуществления обеспечивать определение с низкой сложностью точной карты градиентов глубины. Карта градиентов глубины может затем быть деформирована в третью точку наблюдения, как описано выше для карты градиентов глубины, определяемой на основе вершин.
В предыдущих примерах, генерировалась карта градиентов глубины, а затем она деформировалась в третью точку наблюдения, при этом веса определялись перед комбинированием. Однако в других вариантах осуществления определение веса может выполняться перед деформированием.
Например, первая карта весов может генерироваться для первого изображения сетки путем применения функции к градиенту глубины для каждого пикселя. Например, может использоваться функция
.
То же самое может осуществляться для второго изображения сетки, тем самым приводя к двум картам весов, соответственно, для первого и второго изображений сеток соответственно. Эти карты весов могут затем быть деформированы в третью точку наблюдения, а веса преобразованных карт весов могут использоваться непосредственно в комбинации.
В некоторых вариантах осуществления определение веса для заданного положения пикселя может зависеть от градиента глубины и для первого, и для второго изображений сетки, например:
.
В некоторых вариантах осуществления может определяться только одна карта весов. Например, в некоторых вариантах осуществления веса, применяемые в комбинации, могут быть выполнены с возможностью всегда суммирования до единицы, т.е., . В этом случае только карта весов для  может быть определена и деформирована в третью точку наблюдения.
Особое преимущество подхода с использованием градиента глубины или карт весов обеспечивает очень эффективную обработку во многих вариантах осуществления. В частности, оно позволяет применять такое же преобразование точки наблюдения к градиенту глубины/карте весов, какое применяется к карте текстур, и, в частности, может использоваться такое же преобразование точки наблюдения на основе такой же сетки. Это, в частности, во многих вариантах осуществления позволяет использовать эффективную обработку графики ускоряющими аппаратными средствами.
Во многих вариантах осуществления веса комбинации могут дополнительно находиться при получении других параметров. Во многих вариантах осуществления веса могут дополнительно зависеть от разности между первой точкой наблюдения и третьей точкой наблюдения. В частности, чем больше разность, тем ниже вес. Эта разность может, например, определяться как геометрическая разность между координатами x, y, z между точками наблюдения или может, например, определяться непосредственно по параметру изменения точки наблюдения, выдаваемому в генератор 205 изображений. Данный подход может присваивать меньшим преобразованиям точки наблюдения больший вес, чем более значительным преобразованиям, отражая то обстоятельство, что чем меньше изменение в точке наблюдения, тем выше качество.
Таким образом, в некоторых вариантах осуществления вес(а) может также зависеть от глобального параметра, который измеряет, насколько (например, применительно к угловой разности) выходная точка наблюдения (третья точка наблюдения) отличается от входной точки наблюдения. Если эта угловая разность является большой, может выбираться более низкий вес, в результате чего близлежащие камеры имеют больший вклад в операцию смешивания.
В некоторых вариантах осуществления вес может зависеть от показателя достоверности для первых градиентов, причем, показатель достоверности свидетельствует о достоверности оценки глубины, используемой для определения глубины в первом положении сетки.
Многие камеры глубины или методы оценки глубины обеспечивают показатель достоверности, который показывает, насколько достоверной считается генерируемая оценка глубины. Например, датчик глубины, будь то стереопара или датчик структурированного света, как правило, имеет соответствующую погрешность. Эта погрешность может обуславливаться процессом оценки расхождений или процессом инфракрасных измерений датчика глубины. Информация о достоверности может, например, предусматриваться в виде карты достоверностей пикселей. В таком случае пикселям с более высокой погрешностью может присваиваться более низкий вес в комбинации, чем пикселям с более низкой погрешностью. Погрешность может, например, учитываться при определении карты весов до преобразования точки наблюдения, либо, например, карта достоверностей может быть деформирована в третью точку наблюдения и учитываться при определении весов в области третьей точки наблюдения.
В некоторых вариантах осуществления градиент глубины или вес может обеспечиваться из внутреннего или внешнего источника, например, он может считываться из видеофайла или вычисляться по карте расхождений/глубин, считываемой из видеофайла. Первый вариант может иметь преимущество, состоящее в том, что другие достоверности могут комбинироваться с основанной на градиенте достоверностью в единую карту достоверностей. Часть этой достоверности может выдаваться из датчика глубины или по результатам этапа оценки расхождений и может кодироваться в видеопотоке.
Необходимо отметить, что значение градиента глубины может считаться равносильным значению достоверности в том смысле, что более высокое значение (означающее более высокий градиент) используется для уменьшения веса. В этой связи, во многих сценариях значение достоверности оценки глубины и значение градиента глубины могут непосредственно комбинироваться для получения комбинированного общего значения достоверности для пикселя. Чем выше значение достоверности оценки глубины и чем ниже градиент глубины, тем выше достоверность того, что соответствующая интенсивность светового излучения подходит для генерирования выходного значения, и, следовательно, тем выше вес.
Необходимо отметить, что в различных вариантах осуществления градиент глубины может определяться в различные моменты времени и различными функциональными сущностями. Например, в некоторых вариантах осуществления могут предусматриваться два (или более) видеопотока, каждый из которых содержит последовательность изображений и соответствующие карты глубин. Устройство визуализация может затем переходить к генерированию соответствующих сеток и, например, генерированию карты градиентов глубин на основе карты глубин. Оно может затем переходить к деформированию карты градиентов глубины и карты текстур в новую точку наблюдения на основе определенной сетки. Действительно, в некоторых вариантах осуществления каждый видеопоток для заданной точки наблюдения может даже не содержать карты глубин, но может вместо этого, например, находиться в форме стереоизображений. В этом случае устройство визуализации может дополнительно быть выполнено с возможностью осуществления оценки расхождений для генерирования явной информации о глубине, на основе которой могут генерироваться сетка и карты градиентов глубины.
Однако в других вариантах осуществления некоторые из этих функций могут выполняться на стороне провайдера контента. Например, при захвате сцены с использованием множества стереокамер в различных положениях сущность провайдера контента может переходить к выполнению оценки расхождений для каждой из них и может генерировать карту глубин. Она может после этого переходить к определению карты градиентов глубин (или же карты весов) для карты глубин, а также сетки. В этом случае может генерироваться видеосигнал, который для каждой точки наблюдения камеры содержит видеопоследовательность, включающую в себя набор карт текстур, сеток и карт градиентов глубин для каждой точки наблюдения камеры. Во многих вариантах осуществления дополнительно предусмотрена карта достоверностей оценок глубины для указания достоверности оценки расхождений. Эта информация может предусматриваться в виде отдельной карты достоверностей или может комбинироваться с картой градиентов глубины, как описано выше.
Этот видеосигнал может после этого распределяться потенциально большому числу конечных пользователей. Блок визуализации может в этом случае попросту переходить к генерированию изображения для новой точки наблюдения для каждой точки наблюдения камеры, деформируя карту текстур и карту градиентов (а, возможно, и карту достоверностей) в требуемую точку наблюдения на основе сетки. Для каждого пикселя в выходном изображении значения деформированной текстуры в этом положении после этого комбинируются на основе значения деформированного градиента в этом положении (а, возможно, и значений достоверности). Это обеспечивает высокоэффективный процесс, поскольку единственные требуемые функции - это нересурсоемкая взвешенная комбинация и стандартизованные преобразования ракурса (деформации), которые могут эффективно выполняться специализированными аппаратными средствами.
Данный подход может обеспечивать очень эффективное функционирование при сохранении низких требований к ресурсам. Действительно, предполагается, что функциональные возможности могут быть встроенными, например, в стереоскопические очки, на которые может непосредственно подаваться такой видеосигнал и которые в то же время способны на основе этого обеспечивать динамическую среду виртуальной реальности высокого качества.
Понятно, что в приведенном выше описании для ясности описаны варианты осуществления изобретения со ссылкой на различные функциональные схемы, блоки или процессоры. Однако очевидно, что может использоваться любое подходящее распределение функциональных возможностей между различными функциональными схемами, блоками или процессорами в пределах изобретения. Например, изображенные функциональные возможности, реализуемые отдельными процессорами или контроллерами, могут быть реализованы тем же процессором или контроллерами. Поэтому ссылки на конкретные функциональные блоки или схемы следует рассматривать лишь как ссылки на подходящие средства для обеспечения требуемых функциональных возможностей, а не как свидетельствующие о строгой логической или физической структуре или организации.
Изобретение может быть реализовано в любой подходящей форме, включая аппаратные средства, программные средства, микропрограммные средства или их комбинацию. При необходимости изобретение может быть реализовано, по меньшей мере, частично в виде компьютерной программы, выполняемой на одном или более из процессоров данных и/или цифровых сигнальных процессоров. Элементы и компоненты варианта осуществления изобретения могут быть физически, функционально и логически реализованы любым подходящим способом. Действительно, функциональные возможности могут быть реализованы в одном блоке, во множестве блоков или в составе других функциональных блоков. По этой причине изобретение может быть реализовано в одном блоке или может быть физически и функционально распределено между различными блоками, схемами и процессорами.
Несмотря на то, что настоящее изобретение описано применительно к некоторым вариантам осуществления, оно не ограничено конкретной формой, изложенной в настоящем документе. Напротив, объем настоящего изобретения ограничен только прилагаемой формулой изобретения. Кроме того, несмотря на то, что некоторый признак может оказаться описанным в связи с конкретными вариантами осуществления, специалистам в данной области техники понятно, что различные признаки описанных вариантов осуществления могут комбинироваться в соответствии с изобретением. В формуле изобретения термин «включающий в себя» не исключает присутствие других элементов или этапов.
Кроме того, хотя они и перечислены по отдельности, множество средств, элементов, схем или этапов способа может быть реализовано с помощью, например, одной схемы, блока или процессора. Кроме того, несмотря на то, что отдельные признаки могут входить в различные пункты формулы изобретения, возможно, они могут предпочтительно комбинироваться, при этом включение в различные пункты формулы изобретения не означает, что комбинация признаков не является реализуемой и/или предпочтительной. Кроме того, включение признака в одну категорию формулы изобретения не означает ограничения этой категорией, а, скорее, указывает, что признак при необходимости в равной мере применим к другим категориям формулы изобретения. Более того, порядок признаков в формуле изобретения не предполагает какой-либо конкретный порядок, в котором признаки должны обрабатываться, и, в частности, порядок отдельных этапов в пункте формулы изобретения на способ не означает, что этапы должны выполнятся в этом порядке. Напротив, этапы могут выполняться в любом подходящем порядке. Кроме того, ссылки на единственное число не исключают множества. Таким образом, ссылки на «единственный», «первый», «второй» и т.д. не исключают множества. Ссылочные позиции в формуле изобретения представлены лишь в качестве поясняющего примера и никоим образом не должны трактоваться как ограничивающие объем формулы изобретения.