ОБРАБОТКА ИНФОРМАЦИИ 3D-ИЗОБРАЖЕНИЯ НА ОСНОВАНИИ ТЕКСТУРНЫХ КАРТ И СЕТОК
PROCESSING OF 3D IMAGE INFORMATION BASED ON TEXTURE MAPS AND GRIDS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Изобретение относится к представлению данных/информации трехмерного изображения с использованием текстурных карт и сеток, и, в частности, но не исключительно, к генерации, кодированию и обработке сигнала изображения, содержащего несколько трехмерных изображений, каждое из которых представлено текстурной картой и сеткой.
УРОВЕНЬ ТЕХНИКИ
Традиционно, техническая обработка и использование изображений основаны на формировании двухмерных изображений, но третье измерение все более явно рассматривается в обработке изображений.
Например, разработаны трехмерные (3D) дисплеи, которые добавляют третье измерение к восприятию при просмотре путем обеспечения для двух глаз зрителя разных видов наблюдаемой сцены. Для этого добиться пользователь может носить очки для разделения двух отображаемых видов. Однако это может быть неудобно пользователю, во многих сценариях предпочтительно использовать автостереоскопические дисплеи, которые используют средство на дисплее (например, лентикулярные линзы или барьеры) для разделения видов, и для отправки их в разных направлениях, где они по отдельности могут достигать глаз пользователя. Для стерео-дисплеев, необходимы два вида, тогда как автостереоскопические дисплеи обычно требуют больше видов (например, девять виды).
В некоторых ситуациях и системах, 3D модели используются для представления 3D сцен, причем модели оцениваются для генерации надлежащих видовых изображений. Совокупность видов с представлением глубины сцены может использоваться в порядке альтернативы традиционным 3D моделям или помимо 3D моделей. Этот формат обычно происходит из захвата сцены множественными стереокамерами. Данные изображения множественных камер с соответствующими картами глубины, созданными в разных позициях, новое изображение виртуального вида может синтезироваться с использованием рендеризации на основе изображения глубины. Это позволяет воспроизводить виртуальную реальность захваченных изображений или видео, где наблюдатель может до некоторой степени изменять свою точку обзора.
Графические приложения на основании трехмерных сцен получают распространение во многих приложениях, например, в частности, приложениях компьютерной графики. Для поддержки быстрой обработки трехмерной графики, разработан ряд стандартов и спецификаций. Это не только обеспечивает более быстрое проектирование и реализацию, поскольку может обеспечивать стандартизованные функции и процедуры для многих стандартных операциях, например, сдвиг точки обзора, но и позволяет разрабатывать и оптимизировать графические машины специализированного оборудования для этих процедур. Действительно, для многих компьютеров, графический процессор (GPU) в настоящее время часто бывает по меньшей мере столь же мощным и важным, как центральный процессор (CPU).
Примером стандарта для поддержки быстрой обработки графики является спецификация OpenGL, которая обеспечивает интерфейс прикладного программирования (API) с несколькими функциями, поддерживающими обработку графики. Спецификация обычно используется для обеспечения аппаратно ускоренной обработки графики, конкретные процедуры которой реализованы особым быстродействующим оборудованием в форме GPU.
В большинстве таких графических спецификаций сцена представляется объединением текстурной карты и трехмерной сетки. Действительно, особенно эффективным подходом во многих сценариях является представления объектов изображения, или действительно сцены в целом, многоугольной сеткой, где множество многоугольников соединено их общими сторонами или углами (вершинами), которые заданы трехмерными позициями. Комбинированная трехмерная многоугольная сетка соответственно обеспечивает эффективную модель трехмерных объектов, включающую в себя, возможно, трехмерное описание всего изображения. Многоугольная сетка часто представляет собой треугольную сетку, образованную треугольниками, имеющими общие углы, заданными в 3D пространстве.
На практике, карты глубины, соответственно, часто преобразуются в 3D сетку. 3D сетка является общеизвестным графическим форматом, который поддерживается большинством драйверов оборудования (например, на основе OpenGL).
В порядке примера, стереокамера может записывать изображение сцены из данной точки обзора. Для каждого пикселя, оценка расхождения может осуществляться для оценивания расстояния до объекта, представленного пикселем. Это может осуществляться для каждого пикселя, таким образом, обеспечивая трехмерную позицию x,y,z для каждого пикселя. Эти позиции затем могут использоваться как вершины для треугольной сетки, где для каждой группы из 2×2 пикселей образованы два треугольника. Поскольку это может приводить к большому количеству треугольников, процесс может включать в себя объединение некоторых первоначальных треугольников в более крупные треугольники (или в некоторых сценариях в более общем случае в более крупные многоугольники). Это сократит количество треугольников, а также уменьшит пространственное разрешение сетки. Соответственно, гранулярность сетки обычно зависит от изменений глубины, и более крупные многоугольники в основном возникают в более плоских областях.
Каждая вершина дополнительно связана со значением интенсивности света текстурной карты. Текстурная карта по существу обеспечивает интенсивность света/цвета в сцене для объекта в позиции пикселя для вершины. Обычно совместно с сеткой обеспечивается изображение интенсивности света/текстурная карта, где каждая вершина содержит данные, представляющие позицию x, y, z вершины и данные u, v, идентифицирующие связанную позицию в текстурной карте, т.е. указывает интенсивность света в позиции x, y, z, захваченной в текстурной карте.
В таких представлениях, многоугольная сетка используется для обеспечения информации о трехмерной геометрии объектов, тогда как текстура обычно обеспечивается как отдельная структура данных. В частности, текстура часто обеспечивается как отдельная двухмерная карта, которая, посредством алгоритма обработки может накладываться на трехмерную геометрию.
Использование треугольных сеток особенно подходит для обработки и манипуляции посредством алгоритмов компьютерная графика, и были разработаны и доступны на рынке многочисленные эффективные программные и аппаратные решения. Существенная вычислительная эффективность во многих системах достигается за счет алгоритма, обрабатывающего отдельные вершины совместно для множества многоугольников вместо того, чтобы обрабатывать каждый многоугольник отдельно. Например, для типичной треугольной сетки, отдельная вершина часто является общей для нескольких (часто 3-8) треугольников. Обработка одиночной вершины соответственно может применяться к сравнительно большому количеству треугольников, таким образом существенно сокращая количество точек в изображении или другом обрабатываемом объекте.
В порядке конкретного примера, многие современные системы на кристалле (SoC) содержат GPU, специально оптимизированный для обработки 3D графики. Например, обработка геометрии 3D объекта и текстуры 3D объекта осуществляется с использованием двух отдельных трактов в так называемом конвейере рендеризации OpenGL (или во многих других API, например, DirectX). Оборудование GPU на SoC может эффективно работать с 3D графикой при условии, что 3D источник представляется GPU в форме вершин (обычно треугольников) и текстур. В этом случае интерфейс приложений OpenGL позволяет устанавливать и управлять камерой виртуальной перспективы, которая определяет, как 3D объекты выглядят в проекции на 2D экран. Хотя OpenGL использует в качестве ввода 3D объекты, выводится обычно 2D изображение, подходящее для нормального 2D дисплея.
Однако такие подходы требуют, чтобы трехмерная информация обеспечивалась информацией многоугольной сетки и соответствующей текстуры. Хотя в некоторых вариантах применения это можно относительно легко обеспечить, например, играх на основе полностью компьютерно-сгенерированных виртуальных сцен и окружениях, в других вариантах осуществления это может быть не так легко. В частности, в приложениях, основанных на захвате реальных сцен, требуется преобразовывать их в представление текстуры и сетки. Это может опираться, как упомянуто выше, на стереоизображения или на изображение и представление глубины сцены.
Обычной операцией в обработке графики является изменение точки обзора, когда изображение генерируется для другой точки обзора, чем у входной текстурной карты и сетки. Графические API обычно имеют функции для эффективного осуществления таких преобразований точки обзора. Однако, поскольку входная сетка обычно несовершенна, такие преобразования точки обзора могут приводить к снижению качества при слишком большом сдвиге. Дополнительно, представление сцены из точки обзора обычно включает в себя несколько загражденных элементов, где объект переднего плана заграждает элементы позади него. Эти элементы можно видеть с нового направления, т.е. изменение точки обзора может приводить к разграждению (устранению заграждения). Однако в таком случае входная текстурная карта и сетка не содержит никакой информации об этих разгражденных частях. Соответственно, их нельзя представить оптимально, поскольку необходимая информацию недоступна. Ошибкам и неточностям синтеза вида свойственно увеличиваться с увеличением расстояния нового сдвига.
Во многих приложениях, информация 3D сцены передается от источника к пункту назначения, например, от сервера к клиентскому устройству. Примером такой ситуации является приложение виртуальной реальности, в которой 3D модель или представление сцены или окружения сохраняется на сервере. Этот сервер виртуальной реальности может поддерживать одно или более клиентских устройств виртуальной реальности, которые могут принимать 3D информацию от сервера виртуальной реальности и на основании этой информации могут генерировать изображение локального вида, соответствующее конкретной точке обзора. 3D информация от сервера виртуальной реальности может обеспечиваться в форме сигнала или потока данных, который содержит несколько 3D изображений или представлений, соответствующих конкретным точкам обзора, где каждое 3D изображение может быть представлено соответствующей текстурной картой и сеткой. Эти 3D изображения могут именоваться якорными изображениями (изображениями привязки) или видами (или просто якорями (привязками)).
Однако, поскольку качеству преобразования точки обзора свойственно снижаться с увеличением расстояния преобразования точки обзора, желательна высокая пространственная плотность якорных видов, и действительно, обычно необходима на практике для достижения достаточно точного синтеза вида. Это обуславливает большие объемы данных, подлежащих потоковой передаче, например, с сервера виртуальной реальности на клиентское устройство VR. В общем случае, для достижения высокой точности и качества изображений, полученных путем преобразования точки обзора на основании принятого потока данных, содержащего якорные изображения, требуется высокая скорость передачи данных поток данных. Однако это усложняет распределение, хранение, кодирование/декодирование и обработку потока данных.
Поэтому существует необходимость в улучшенном подходе и в особенности улучшенном подходе к передаче данных трехмерного изображения с поддержанием генерации конечной точки обзора пункта назначения и сдвига на основании текстурных карт и сеток. В частности, существует необходимость в подходе, допускающем повышенную гибкость, повышенную точность, сниженную сложность, улучшенную вычислительную эффективность, улучшенную совместимость с существующими подходами к графической обработке, улучшенное качество изображения, сниженную скорость передачи данных и/или повышенную производительность.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Соответственно, предпочтительной задачей изобретения является ослабление, смягчение или устранение одного или более из вышеупомянутых недостатков по одному или в любой комбинации.
Согласно аспекту изобретения предусмотрено устройство для генерирования изображения, причем устройство содержит: приемник для приема сигнала изображения, содержащего несколько трехмерных изображений, представляющих сцену с разных точек обзора, причем каждое трехмерное изображение содержит сетку и текстурную карту, причем сигнал дополнительно содержит множество текстурных карт остаточных данных для первой точки обзора, отличной от других точек обзора из нескольких трехмерных изображений, причем первая текстурная карта остаточных данных из множества остаточных текстурных карт обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора в первую точку обзора первой опорной текстурной карты, которая является текстурной картой первого трехмерного изображения из нескольких трехмерных изображений, и вторая текстурная карта остаточных данных из множества остаточных текстурных карт обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора в первую точку обзора второй опорной текстурной карты, которая является текстурной картой второго трехмерного изображения из нескольких трехмерных изображений, причем сигнал изображения не содержит полной текстурной карты для первой точки обзора; процессор сетки для генерирования первой сетки для первой точки обзора из первой опорной сетки, которая является сеткой первого трехмерного изображения из множества трехмерных изображений и генерирования второй сетки для первой точки обзора из второй опорной сетки, которая является сеткой второго трехмерного изображения из множества трехмерных изображений; первый процессор текстуры для генерирования первой промежуточной текстурной карты в ответ на преобразование точки обзора первой опорной текстурной карты из точки обзора первого трехмерного изображения в первую точку обзора и второй промежуточной текстурной карты в ответ на преобразование точки обзора второй опорной текстурной карты из точки обзора второго трехмерного изображения в первую точку обзора; второй процессор текстуры для генерирования первой текстурной карты для первой точки обзора в ответ на объединение первой промежуточной текстурной карты и первой текстурной карты остаточных данных, и генерирования второй текстурной карты для первой точки обзора в ответ на объединение второй промежуточной текстурной карты и второй текстурной карты остаточных данных; и генератор изображений для генерирования двухмерного изображения для второй точки обзора из первой текстурной карты, первой сетки, второй текстурной карты и второй сетки, причем вторая точка обзора отличается от первой точки обзора и от других точек обзора из нескольких трехмерных изображений.
Изобретение может обеспечивать улучшенное распределение информации трехмерного изображения во многих сценариях. Во многих вариантах осуществления, может достигаться улучшенное кодирование и, в частности, может достигаться улучшенное качество для ускорения передачи данных. Подход может во многих вариантах осуществления позволять улучшенное изображение, подлежащее приему, из принятой 3D информации. Дополнительно, этого можно добиться, обычно поддерживая относительно низкую сложность и высокую степень вычислительной эффективности. В частности, подход обычно может поддерживать эффективное использование, например, особого, стандартизованного и оптимизированного оборудования. Например, многие платформы, разработанные для обработки компьютерной графики может использоваться для поддержки этапов обработки.
Конкретное преимущество подхода состоит в том, что во многих вариантах осуществления может тесно поддерживаться стандартными графическими процедурами. Например, преобразования точки обзора во многих вариантах осуществления может осуществляться стандартизованным, особым и оптимизированным оборудованием графической обработки. Например, подход может быть совместим со стандартизованными графическими процессами и может эффективно их использовать. Действительно, подход может быть совместим с такими стандартизованными подходами, например, спецификацией OpenGL, путем ограничения нестандартных подходов к частям конвейера рендеризации/ обработки, что позволяет адаптировать пользователя. Например, объединение может осуществляться как часть каскада фрагментарного шейдера конвейера рендеризации OpenGL.
Возможность использования ускоренной обработки на стандартизованном оборудовании для ресурсозатратных элементов обработки может существенно увеличивать, например, быстродействие или пропускную способность системы. Это может снижать сложность и/или требования к ресурсам во многих вариантах осуществления.
Сетка может быть трехмерной сеткой, каждая вершина которой связана с трехмерной позицией (имеет ее). Каждая вершина, в частности, может быть представлена по меньшей мере трехмерной пространственной позицией x, y, z. Каждая вершина сетки может быть дополнительно связана с позицией в соответствующей текстурной карте. Например, для каждой вершины может храниться позиция u, v в текстурной карте, соответствующей пространственной позиции x, y, z.
Сетка может включать в себя информацию, относящуюся к глубинам представленных объектов, но не ограничиваясь этим (например, как описано, вершины могут быть представлены трехмерными координатами, а не только координатой глубины).
Сетка также может именоваться 3D сеткой или сеткой с глубиной.
В некоторых вариантах осуществления первая сетка может быть непосредственно сеткой для первой точки обзора, извлеченной из сигнала изображения. В некоторых вариантах осуществления, первая сетка может быть, например, опорной сеткой, которая является сеткой для первого трехмерного изображения. Таким образом, в некоторых вариантах осуществления, принятую опорную сетку для опорной точки обзора можно рассматривать как подходящую аппроксимацию или оценку сетки для первой точки обзора.
Во многих вариантах осуществления, процессор сетки может быть выполнен с возможностью генерации первой сетки из опорной сетки, которая является сеткой первого трехмерного изображения. В частности, во многих вариантах осуществления, процессор сетки может быть выполнен с возможностью генерации первой сетки в ответ на преобразование точки обзора опорной сетки, которая является сеткой первого трехмерного изображения.
Остаточными данными могут быть любые данные, указывающие различие между текстурной картой для первой точки обзора и текстурной картой, обусловленной сдвигом точки обзора опорной текстурной карты. Первая текстурная карта остаточных данных может обеспечивать остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора первой опорной текстурной карты из точки обзора первого трехмерного изображения в первую точку обзора. Аналогично, вторая текстурная карта остаточных данных может обеспечивать остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора второй опорной текстурной карты из точки обзора второго трехмерного изображения в первую точку обзора.
Во многих вариантах осуществления, генератор изображений выполнен с возможностью генерации изображения в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании первой текстурной карты, первой сетки, второй текстурной карты и второй сетки.
В сигнале изображения может содержаться одно трехмерное изображение, но во многих вариантах осуществления может содержаться несколько трехмерных изображений, например не менее 2, 3 или 5 изображений.
В соответствии с необязательным признаком изобретения, сигнал изображения дополнительно содержит остаточные данные сетки для сетки для первой точки обзора со ссылкой на первую опорную сетку, и процессор сетки выполнен с возможностью генерации первой сетки в ответ на остаточные данные сетки и первую опорную сетку.
Это позволяет обеспечивать улучшенное качество сгенерированного изображения, допуская при этом низкую сложность и эффективную обработку и распределения сигнала изображения.
Во многих вариантах осуществления, остаточные данные сетки для сетки для первой точки обзора относится к сетке, полученной из опорной сетке.
В некоторых вариантах осуществления, остаточные данные сетки содержат остаточные данные для сетки для первой точки обзора относительно промежуточной сетки, обусловленной преобразованием точки обзора опорной сетки.
Это позволяет обеспечивать улучшенное качество сгенерированного изображения, допуская при этом низкую сложность и эффективную обработку и распределения сигнала изображения.
В соответствии с необязательным признаком изобретения, остаточные данные сетки содержат остаточные данные только для подмножества вершин сетки для первой точки обзора.
Во многих вариантах осуществления это позволяет снижать скорость передачи данных сигнала изображения, поддерживая при этом достаточно высокое качество.
В соответствии с необязательным признаком изобретения, сигнал изображения не содержит данных сетки для первой точки обзора.
Во многих вариантах осуществления это позволяет снижать скорость передачи данных сигнала изображения, поддерживая при этом достаточно высокое качество. В частности, это дает возможность очень эффективного объединения синтеза/ преобразования точек обзора на основании использования полностью закодированных опорных 3D изображений, представленных как информацией текстуры, так и информацией сетки, объединенной с относительно закодированных изображений, которые представлены только остаточной текстурной картой. Подход может опираться на взгляды на требования к относительному кодированию, психовизуальное влияние, и эффективность оценки и обработки разных элементов 3D изображений.
В соответствии с необязательным признаком изобретения, сигнал изображения содержит данные управления генерацией сетки; и процессор сетки выполнен с возможностью генерации первой сетки в соответствии с данными управления генерацией сетки.
Это дает возможность улучшения и адаптированной генерации/преобразования сетки, обычно приводящего к улучшению качества сгенерированного изображения.
В соответствии с необязательным признаком изобретения, сигнал изображения содержит множество текстурных карт остаточных данных и метаданные, указывающие трехмерные изображения, связанные с текстурными картами остаточных данных.
Это дает возможность эффективной работы. Каждая текстурная карта остаточных данных из множества текстурных карт остаточных данных может, для данной точки обзора, отличаться от разных точек обзора из нескольких трехмерных изображений, причем текстурная карта остаточных данных для данной точки обзора, обеспечивает остаточные данные для текстурной карты для данной точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора данной опорной текстурной карты, которая является текстурной картой первого трехмерного изображения из нескольких трехмерных изображений.
В соответствии с необязательным признаком изобретения, генератор изображений выполнен с возможностью генерации первого промежуточного изображения для второй точки обзора в ответ на первую текстурную карту и первую сетку, генерации второго промежуточного изображения для второй точки обзора в ответ на дополнительную текстурную карту и дополнительную сетку для дополнительной точки обзора; и генерации изображения путем объединения первого промежуточного изображения и второго промежуточного изображения.
Это может обеспечивать особенно эффективный и гибкий подход и может приводить к улучшенной генерации изображения во многих вариантах осуществления.
Во многих вариантах осуществления, дополнительная текстурная карта и дополнительная сетка является текстурной картой и сеткой трехмерного изображения из нескольких трехмерных изображений.
Во многих вариантах осуществления первый процессор текстуры выполнен с возможностью генерации дополнительной промежуточной текстурной карты в ответ на преобразование точки обзора дополнительной опорной текстурной карты из точки обзора дополнительной опорной текстурной карты в дополнительную точку обзора, причем дополнительная опорная текстурная карта является текстурной картой второго трехмерного изображения из нескольких трехмерных изображений; и второй процессор текстуры выполнен с возможностью генерации дополнительной текстурной карты в ответ на объединение дополнительной промежуточной текстурной карты и дополнительной текстурной карты остаточных данных для дополнительной точки обзора, причем дополнительная текстурная карта остаточных данных является вторым трехмерным изображением.
Во многих вариантах осуществления, процессор сетки выполнен с возможностью генерации дополнительной сетки в ответ на преобразование точки обзора сетки второго трехмерного изображения из точки обзора дополнительной опорной текстурной карты в дополнительную точку обзора.
В соответствии с необязательным признаком изобретения, генератор изображений выполнен с возможностью генерации первого промежуточного изображения для второй точки обзора в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании первой текстурной карты и первой сетки, второго промежуточного изображения для второй точки обзора в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании второй текстурной карты и второй сетки; и генерации изображения путем объединения первого промежуточного изображения и второго промежуточного изображения.
Это может обеспечивать особенно эффективный и гибкий подход и может приводить к улучшенной генерации изображения во многих вариантах осуществления.
В соответствии с необязательным признаком изобретения, генератор изображений выполнен с возможностью объединения первого промежуточного изображения и второго промежуточного изображения в соответствии с данными заграждения, связанными с точкой обзора по меньшей мере одного из первого трехмерного изображения и второго трехмерного изображения.
Это может обеспечивать особенно эффективный и гибкий подход и может приводить к улучшенной генерации изображения во многих вариантах осуществления.
Во многих вариантах осуществления, генератор изображений выполнен с возможностью объединения первого промежуточного изображения и второго промежуточного изображения в ответ на направление сдвигов точки обзора из точек обзора, соответственно, первого трехмерного изображения и второго трехмерного изображения в первую точку обзора относительно направления сдвига точки обзора от первой точки обзора ко второй точке обзора.
В соответствии с необязательным признаком изобретения, генератор изображений выполнен с возможностью объединения первый текстурной карты и второй текстурной карты в третью текстурную карту для первой точки обзора, и объединения первой сетки и второй сетки в третью сетку для первой точки обзора; и генерации изображения в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании третьей сетки текстур и третьей сетки.
Это может обеспечивать особенно эффективный и гибкий подход и может приводить к улучшенной генерации изображения во многих вариантах осуществления.
В некоторых вариантах осуществления, процессор сетки может быть выполнен с возможностью фильтрации первой сетки.
Это может обеспечивать особенно эффективный и гибкий подход и может приводить к улучшенной генерации изображения во многих вариантах осуществления.
Согласно аспекту изобретения предусмотрено устройство для генерирования сигнала изображения, причем устройство содержит: приемник для приема нескольких трехмерных изображений, представляющих сцену с разных точек обзора; причем каждое трехмерное изображение содержит сетку и текстурную карту, и для приема первой текстурной карты для первой точки обзора, отличной от других точек обзора трехмерных изображений; процессор сдвига вида для генерирования первой промежуточной текстурной карты в ответ на преобразование точки обзора первой опорной текстурной карты из первого трехмерного изображения из нескольких трехмерных изображений в первую точку обзора, и второй промежуточной текстурной карты в ответ на преобразование точки обзора второй опорной текстурной карты из второго трехмерного изображения из нескольких трехмерных изображений в первую точку обзора; процессор остатка, выполненный с возможностью генерации первой текстурной карты остаточных данных в ответ на сравнение первой промежуточной текстурной карты и первой текстурной карты и второй текстурной карты остаточных данных в ответ на сравнение второй промежуточной текстурной карты и первой текстурной карты, причем первая текстурная карта остаточных данных указывает различие между первой промежуточной текстурной картой и первой текстурной картой и вторая текстурная карта остаточных данных указывает различие между второй промежуточной текстурной картой и первой текстурной картой; и генератор сигнала для генерирования сигнала изображения, содержащего несколько трехмерных изображений, первую текстурную карту остаточных данных и вторую текстурную карту остаточных данных, но не первую текстурную карту.
Согласно аспекту изобретения предусмотрен способ генерирования изображения, причем способ содержит: прием сигнала изображения, содержащего несколько трехмерных изображений, представляющих сцену с разных точек обзора, причем каждое трехмерное изображение содержит сетку и текстурную карту, причем сигнал дополнительно содержит множество текстурных карт остаточных данных для первой точки обзора, отличной от других точек обзора из нескольких трехмерных изображений, причем первая текстурная карта остаточных данных из множества остаточных текстурных карт обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора в первую точку обзора первой опорной текстурной карты, которая является текстурной картой первого трехмерного изображения из нескольких трехмерных изображений, и вторая текстурная карта остаточных данных из множества остаточных текстурных карт обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора в первую точку обзора второй опорной текстурной карты, которая является текстурной картой второго трехмерного изображения из нескольких трехмерных изображений, причем сигнал изображения не содержит полной текстурной карты для первой точки обзора; генерирование первую сетку для первой точки обзора из первой опорной сетки, которая является сеткой первого трехмерного изображения из множества трехмерных изображений и генерирования второй сетки для первой точки обзора из второй опорной сетки, которая является сеткой второго трехмерного изображения из множества трехмерных изображений; генерирование первой промежуточной текстурной карты в ответ на преобразование точки обзора первой опорной текстурной карты из точки обзора первого трехмерного изображения в первую точку обзора и второй промежуточной текстурной карты в ответ на преобразование точки обзора второй опорной текстурной карты из точки обзора второго трехмерного изображения в первую точку обзора; генерирование первой текстурной карты для первой точки обзора в ответ на объединение первой промежуточной текстурной карты и первой текстурной карты остаточных данных, и генерирования второй текстурной карты для первой точки обзора в ответ на объединение второй промежуточной текстурной карты и второй текстурной карты остаточных данных; и генерирование двухмерного изображения для второй точки обзора из первой текстурной карты, первой сетки, второй текстурной карты и второй сетки, причем вторая точка обзора отличается от первой точки обзора и от других точек обзора из нескольких трехмерных изображений.
Согласно аспекту изобретения предусмотрен способ генерирования сигнала изображения, причем способ содержит: принимающий несколько трехмерных изображений, представляющих сцену с разных точек обзора; причем каждое трехмерное изображение содержит сетку и текстурную карту, и для приема первой текстурной карты для первой точки обзора, отличной от других точек обзора трехмерных изображений; генерирование первой промежуточной текстурной карты в ответ на преобразование точки обзора первой опорной текстурной карты из первого трехмерного изображения из нескольких трехмерных изображений в первую точку обзора, и второй промежуточной текстурной карты в ответ на преобразование точки обзора второй опорной текстурной карты из второго трехмерного изображения из нескольких трехмерных изображений в первую точку обзора; генерирование первой текстурной карты остаточных данных в ответ на сравнение первой промежуточной текстурной карты и первой текстурной карты и второй текстурной карты остаточных данных в ответ на сравнение второй промежуточной текстурной карты и первой текстурной карты, причем первая текстурная карта остаточных данных указывает различие между первой промежуточной текстурной картой и первой текстурной картой и вторая текстурная карта остаточных данных указывает различие между второй промежуточной текстурной картой и первой текстурной картой; и генерирование сигнала изображения, содержащего несколько трехмерных изображений, первую текстурную карту остаточных данных и вторую текстурную карту остаточных данных, но не первую текстурную карту.
Согласно аспекту изобретения предусмотрено сигнал изображения, содержащий несколько трехмерных изображений, представляющих сцену с разных точек обзора, причем каждое трехмерное изображение содержит сетку и текстурную карту, причем сигнал дополнительно содержит первую текстурную карту остаточных данных и вторую текстурную карту остаточных данных для первой точки обзора, отличной от других точек обзора из нескольких трехмерных изображений, причем первая текстурная карта остаточных данных обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора первой опорной текстурной карты, которая является текстурной картой первого трехмерного изображения из нескольких трехмерных изображений и вторая текстурная карта остаточных данных обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора второй опорной текстурной карты, которая является текстурной картой второго трехмерного изображения из нескольких трехмерных изображений.
Эти и другие аспекты, признаки и преимущества изобретения будут очевидны из и пояснены со ссылкой на описанные ниже вариант(ы) осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Варианты осуществления изобретения будет описано, исключительно в порядке примера, со ссылкой на чертежи, в которых
фиг. 1 демонстрирует пример элементов устройства для генерирования сигнала изображения в соответствии с некоторыми вариантами осуществления изобретения;
фиг. 2 демонстрирует пример элементов устройства для генерирования изображения в соответствии с некоторыми вариантами осуществления изобретения;
фиг. 3 демонстрирует пример точек обзора для сигнала изображения;
фиг. 4 демонстрирует пример точек обзора для сигнала изображения;
фиг. 5 демонстрирует пример генерации изображения на основании данных сетки и текстурной карты;
фиг. 6 демонстрирует пример генерации сетки;
фиг. 7 демонстрирует пример генерации изображения на основании данных сетки и текстурной карты;
фиг. 8 демонстрирует пример генерации изображения на основании данных сетки и текстурной карты; и
фиг. 9 демонстрирует пример генерации изображения на основании данных сетки и текстурной карты.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 1 демонстрирует пример устройства для генерирования 3D сигнала изображения. Устройство и, в действительности, сгенерированный сигнал изображения, базируется на представлении 3D информации текстурной картой и соответствующей картой глубины. Устройство, в частности, может быть частью сервера виртуальной реальности, который может обеспечивать сигнал изображения с 3D информацией для сцены. Клиент виртуальной реальности (обычно удаленный) может осуществлять доступ к серверу виртуальной реальности и в ответ получать сигнал изображения, из которого он может локально генерировать подходящие изображения сцены для обеспечения восприятия виртуальной реальности. В частности, клиентское устройство виртуальной реальности обычно выполнено с возможностью генерации изображений для данной желаемой точки обзора на основании информации, принятой от сервера виртуальной реальности. Таким образом, устройство на фиг. 1 далее будет именоваться кодером и, в частности, кодером сервера виртуальной реальности, но очевидно, что это не призвано налагать ограничение на общность или интерпретацию или понимание описания устройства.
Кодер содержит приемник 101 кодера который выполнен с возможностью приема нескольких, обычно многих, трехмерных изображений, представляющих сцену с разных точек обзора. Каждое из 3D изображений содержит сетку и по меньшей мере первую текстурную карту, т.е. трехмерная информация обеспечивается для каждого изображения с использованием общеизвестного подхода связанных сеток и текстурных карт.
В некоторых вариантах осуществления, может обеспечиваться одно-единственное 3D изображение, но обычно обеспечивается несколько разных 3D изображений, каждое из которых представляет отдельную точку обзора для сцены. Например, может приниматься от трех до десяти 3D изображений, соответствующих линии точек обзора.
Очевидно, что приемник 101 кодера может принимать 3D изображения от любого внутреннего или внешнего источника. Например, в некоторых вариантах осуществления, сервер виртуальной реальности может включать в себя 3D модель сцены, а также оцениватель модели, который выполнен с возможностью генерации 3D изображений в форме сеток и текстурных карт путем оценивания модели для желаемых точек обзора. В других вариантах осуществления, 3D изображения могут генерироваться из захваченных изображений, например, из захваченных стереоизображений от камер в разных позициях. Например, из захваченного стереоизображения, плотную карту глубины можно оценивать (например, на основании оценки расхождения) и из одного из стереоизображений и карты глубины, можно вычислять сетку и текстурную карту. Другим примером является использование камер глубины, которые непосредственно могут обеспечивать изображение и соответствующую карту глубины (например, с использованием встроенных функциональных возможностей определения дальности). Для таких случаев, сетка может генерироваться из карты глубины, непосредственно обеспеченной камерой глубины.
Многие алгоритмы и процессы обработки 3D изображений (в том числе видео) основаны на использовании треугольных сеток, поскольку это может обеспечивать высокую вычислительную эффективность во многих вариантах осуществления. Сетки, обеспечивающие трехмерную информацию совместно с соответствующей текстурной картой, широко используются во многих системах графической обработки, например, в частности, в компьютерной графике. Сетка может обеспечивать информацию о геометрической структуре, которая включает в себя информацию глубины (но, конечно, не ограничивается обеспечением только информации глубины, например, она обычно может обеспечивать трехмерные координаты для каждой вершины). Для краткости, комбинация сетки и связанной с ней текстурной карты также будет именоваться 3D изображением.
Подход хорошо подходит для гибко изменения направлений наблюдения при рендеризации сцены, и особенно подходит для сценариев, в которых точка обзора не ограничивается перемещениями строго по горизонтальной линии, но, напротив, желательно свободное перемещение точки обзора. Известный и эффективный способ генерации новой точки обзора состоит в преобразовании сеток, происходящих из разных точек обзора, к единой мировой системе координат и затем осуществлении перспективной проекции на новую плоскость камеры. Эти этапы могут осуществляться очень эффективно с использованием стандартного оптимизированного графического оборудования, например, оборудования на основе стандарта OpenGL. Однако, для оптимизации качества и обеспечения дополнительной информации, например, для областей, разгражденных преобразованиями точки обзора, генерация изображения рендеризации из новой точки обзора предпочтительно осуществляется на основании текстурных карт и сеток, обеспеченных для множества разных точек обзора.
Для обеспечения стороны клиента достаточной информацией для генерации изображений высокого качества для диапазона точек обзора, желательно, чтобы сгенерированный сигнал изображения включал в себя большое количество 3D изображений. Однако это требует очень широкой полосы и усложняет распределение, связь, обработку и хранение в системе. Таким образом, трудно достичь компромисса между противоречащими друг другу требованиями к качеству и эффективности.
3D изображения, которые могут использоваться на стороне клиента для осуществления, например, преобразований точки обзора, можно для краткости именовать якорными изображениями или иногда просто якорями. Таким образом, желательно, чтобы сигнал изображения, сгенерированный кодером, включал в себя как можно больше якорных изображений для максимизации качества, но в то же время как можно меньше якорных изображений для минимизации, например, скорости передачи данных сигнала изображения. Кодер на фиг. 1 может быть выполнен с возможностью обеспечения улучшенного компромисса между такими противоречащими друг другу требованиями.
Кодер содержит генератор 103 сигнала, который выполнен с возможностью генерации сигнала изображения. Генератор 103 сигнала подключен к приемнику 101 кодера, от которого он принимает 3D изображения, т.е. текстурные карты и соответствующие сетки. Генератор 103 сигнала выполнен с возможностью генерации сигнала изображения, включающего в себя эти 3D изображения и, в частности, включающего в себя сетки и текстурные карты для изображений. Генератор 103 сигнала соответственно генерирует сигнал изображения, включающий в себя якорные изображения в форме 3D изображений, обеспеченных приемником 101 кодера. Эти полностью закодированные якорные изображения также именуются опорными изображениями.
Кроме того, кодер выполнен с возможностью генерации сигнала изображения, включающего в себя дополнительные якорные изображения. Однако эти изображения не представляются полной текстурной картой и полной сеткой, но, напротив, представляются текстурной картой остаточных данных, где текстурная карта остаточных данных обеспечивает данные, описывающие текстурную карту для дополнительной точки обзора со ссылкой на текстурную карту одного из 3D изображений, включенных в сигнал изображения, т.е. со ссылкой на одно из опорных изображений. Таким образом, текстурная карта в дополнительной позиции обеспечивается как относительная текстурная карта и, соответственно, зависит от другой текстурной карты.
В частности, приемник 101 кодера также может, помимо опорных 3D изображений, которые непосредственно включены в сигнал изображения, принимать одну или более текстурных карт, закодированных относительно опорной текстурной карте. Эти текстурные карты могут приниматься как отдельные текстурные карты, но обычно принимаются как текстурные карты 3D изображений, т.е. совместно с соответствующей сеткой. 3D изображения, которые непосредственно включены в сигнал изображения, именуются опорными 3D изображениями, и аналогично, соответствующие точки обзора, текстурные карты, якоря и сетки будут именоваться опорными точками обзора, текстурными картами, якорями и сетками. 3D изображения, текстурные карты, сетки, якоря и точки обзора, для которых применяется относительное кодирование текстурной карты, будут именоваться относительными или прогнозируемыми 3D изображениями, текстурными картами, сетками, якорями и точками обзора.
Очевидно, что во многих вариантах осуществления, приемник 101 кодера будет принимать множество 3D изображений, представленных текстурными картами и соответствующими сетками, и они будут делиться на опорное множество 3D изображений, содержащих опорные 3D изображения/ точки обзора (которые будут полностью внутреннее кодироваться) и относительное множество 3D изображений, содержащих относительные 3D изображения/ точки обзора (которые будут кодироваться относительно других текстурных карт). В некоторых вариантах осуществления, может происходить деление на более двух категорий, например, также может происходить деление на другие множества, например, множество изображений, которые просто отвергаются.
Кодер содержит процессор 105 сдвига вида и процессор 107 остатка, которые выполнены с возможностью генерации текстурных карт остаточных данных для относительных точек обзора.
В частности, текстурная карта может приниматься для точки обзора, которая обозначена как относительная точка обзора. Эта текстурная карта будет именоваться первой относительной текстурной картой.
На процессор 105 сдвига вида поступает опорное 3D изображение, т.е. опорная текстурная карта и опорная сетка. Кроме того, на него поступает информация, задающая соответствующую опорную точку обзора и точку обзора первой относительной текстурной карты, именуемую первой относительной точкой обзора. Затем процессор 105 сдвига вида переходит к генерации промежуточной текстурной карты путем осуществления преобразования точки обзора первой опорной текстурной карты в первую относительную точку обзора. Преобразование точки обзора базируется на опорной сетке и текстурной карте.
Очевидно, что можно использовать любой подходящий подход к преобразованию или сдвигу точки обзора текстурной карты. В качестве примера подхода, для искривления текстуры может использоваться треугольная сетка. В этом стандартном подходе к отображению текстуры, треугольники сдвигаются и деформируются, и текстура линейно (аффинно) деформируется с образованием новой текстуры. Сдвиг точки обзора может осуществляться, например, путем рендеризации сетки во внеэкранный буфер OpenGL.
Промежуточная текстурная карта поступает на процессор 107 остатка, который также принимает первую относительную текстурную карту. Процессор 107 остатка переходит к генерации текстурной карты остаточных данных на основании сравнения промежуточной текстурной карты и первой относительной текстурной карты. Таким образом, текстурная карта остаточных данных генерируется для указания различия между промежуточной текстурной картой и первой относительной текстурной картой.
Во многих вариантах осуществления, текстурная карта остаточных данных может определяться просто как попиксельное различие между промежуточной текстурной картой и первой относительной текстурной картой. В некоторых вариантах осуществления, остаток может подвергаться потерьному сжатию с использованием перцептивных метрик, например, контрастной чувствительности и маскирования пространственных частот.
Процессор 105 сдвига и процессор 107 остатка дополнительно выполнены с возможностью повторения процесса для дополнительного/ второго опорного изображения, соответствующего другой опорной точке обзора. Таким образом, устройство на фиг. 1 выполнено с возможностью генерации (по меньшей мере) двух текстурных карты остаточных данных для первой относительной точки обзора на основании разных опорных изображений/точек обзора. Таким образом, устройство может генерировать первую текстурную карту остаточных данных для первой относительной точки обзора на основании первого опорного изображения/опорной текстурной карты и вторую текстурную карту остаточных данных для первой относительной точки обзора на основании второго опорного изображения/опорной текстурной карты. Это может для пространственных представлений обеспечивать улучшенное представление сцены, например, решение вопроса потенциальных заграждений, ограничивающих доступные данные для сцены.
Процессор 107 остатка подключен к генератору 103 сигнала, на который поступают текстурные карты остаточных данных. Затем он переходит к включению текстурных карт остаточных данных для первой относительной точки обзора в сигнал изображения. Таким образом, сигнал изображения генерируется, чтобы, помимо множества полностью (внутренне) кодированных опорных 3D изображений для множества опорных точек обзора, генерировать сигнал изображения, включающий в себя одну или более текстурных карт остаточных данных для по меньшей мере одной дополнительной (относительной) точки обзора. Для по меньшей мере одной относительной точки обзора, обеспечены по меньшей мере две текстурные карты остаточных данных, которые обеспечивают остаточные данные для одной и той же текстурной карты, но из разных опорных изображений. Текстурные карты остаточных данных обычно содержат гораздо меньше значений, чем соответствующие текстурные карты и, соответственно, могут кодироваться с гораздо более высокой эффективностью. Таким образом, в подходе данное множество принятых якорных изображений может делиться на два множества, где первое множество содержит опорные якорные изображения, которые полностью закодированы, и второе множество, содержащее относительные опорные якорные изображения, которые закодированы относительно опорных якорных изображений. Скорость передачи данных, необходимая для второго множества, существенно ниже, чем для первого множества, но все же позволяет декодеру воссоздавать соответствующее якорное изображение.
Соответственно, большее количество точно представленных якорных изображений может передаваться для данной скорости передачи данных (или более низкая скорость передачи данных может достигаться для данного количества якорных изображений, подлежащих передаче). Дополнительно, улучшенная информация, которая особенно подходит для характеризации/представления трехмерной сцены, может достигаться путем включения множественных текстурных карт остаточных данных для одной и той же относительной точки обзора.
Конкретное решение, какие принятые якорные изображения полностью кодировать, и к каким применять относительное или предсказательное кодирование, может различаться в разных вариантах осуществления и сценариях. Например, в некоторых вариантах осуществления, 3D изображения, соответствующие линии точек обзора, могут чередоваться между двумя множествами. В других вариантах осуществления, решение может приниматься, например, на основании расстояния между точками обзора. Например, если расстояние от данной точки обзора до ближайшей полностью закодированной опорной точки обзора превышает данное значение, то точка обзора обозначается как опорная точка обзора и в противном случае, она обозначается как относительная точка обзора.
Во многих вариантах осуществления, сетка для текстурной карты остаточных данных, т.е. для относительного якоря, также может поступать на генератор 103 сигнала и может включаться в сигнал изображения. Действительно, во многих вариантах осуществления, эта сетка, именуемая первой относительной сеткой, может полностью кодироваться и включаться в сигнал изображения. Поскольку данные, необходимые для представления сетки, часто по порядку величины или около того меньше объема данных, необходимого для представления текстурной карты, это все же может приводить к существенному снижению необходимого объема данных. Аналогично подходу для относительных текстурных карт, генератор сигнала также может включать в себя вторую сетку, которая связана с вторыми текстурными картами остаточных данных.
В некоторых вариантах осуществления, данные сетки для первой относительной точки обзора/3D изображения не могут быть включены в сигнал изображения. В подобных случаях, данные сетки для первой относительной точки обзора могут, например, генерироваться декодером на основании принятых опорных сеток.
В некоторых вариантах осуществления, для первой относительной точки обзора обеспечивается (только) данные относительной сетки. Это может во многих сценариях обеспечивать улучшенный компромисс между скоростью передачи данных и качеством/ точностью.
Таким образом, во многих вариантах осуществления, кодер может генерировать сигнал изображения, содержащий несколько трехмерных изображений, представляющих сцену с разных точек обзора, причем каждое трехмерное изображение содержит сетку и текстурную карту, причем сигнал дополнительно содержит текстурные карты остаточных данных для первой точки обзора, отличной от других точек обзора из нескольких трехмерных изображений, причем текстурные карты остаточных данных обеспечивают остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора опорной текстурной карты, которая является текстурной картой первого и, соответственно, второго, трехмерного изображения из нескольких трехмерных изображений.
Фиг. 2 демонстрирует пример устройства для генерирования изображения из такого сигнала изображения. Устройство, в частности, способно генерировать изображение в соответствие с точкой обзора, которая не представлена принятым сигналом, т.е. не является одной из якорных точек обзора/ изображений сигнала изображения (опорной или относительной точкой обзора). Устройство, в частности, может быть частью клиентского устройства виртуальной реальности, которое выполнено с возможностью непрерывно генерировать изображения, соответствующие точкам обзора персонажа, движущегося в сцене. Устройство будет для краткости именоваться декодером без какой-либо потери общности вследствие использования этого термина.
Декодер содержит приемник 201, который принимает сигнал изображения от декодера/ сервера виртуальной реальности. Сначала опишем обработку для сценария, в котором одиночная текстурная карта остаточных данных обеспечивается для данной первой (относительной) точки обзора.
Декодер может быть выполнен с возможностью генерации изображения для желаемой точки обзора на основании принятых якорных изображений. В некоторых ситуациях, в частности для некоторых точек обзора, генерация изображения может базироваться на двухстадийном подходе, согласно которому промежуточное 3D изображение сначала генерируется для относительной точки обзора на основании текстурной карты остаточных данных для этой относительной точки обзора и по меньшей мере одного опорного 3D изображения. Затем из этого промежуточного 3D изображения генерируется изображение для желаемой точки обзора. Ниже будет более подробно описан подход, в котором относительная точка обзора, соответствующая относительному якорному изображению, именуется первой точкой обзора.
Декодер содержит процессор 203 сетки, который выполнен с возможностью генерации первой сетки для первой точки обзора. В некоторых вариантах осуществления, принятый сигнал изображения может содержать сетку для первой точки обзора, и это можно использоваться напрямую.
Во многих вариантах осуществления, процессор 203 сетки выполнен с возможностью генерации первой сетки для первой точки обзора из опорной сетки, которая является сеткой надлежащего 3D изображения. В некоторых вариантах осуществления, опорная сетка может непосредственно использоваться как первая сетка, но в большинстве типичных вариантов осуществления первая сетка может генерироваться путем искривления или сдвига точки обзора /преобразования опорной сетки из опорной точки обзора в первую точку обзора.
Очевидно, что может использоваться любой подходящий подход к искривлению/ преобразованию опорной сетки в первую сетку, т.е. для генерации сетки для первой точки обзора из сетки опорной точки обзора. Например, прямой подход предусматривает использование 3D координат по мере их вывода из процессора вершин после использования для искривления текстуры. Например, каждая 2D вершина сетки совместно с ее значением расхождения может проецироваться в 3D пространство. Затем эта 3D точка может повторно проецироваться на плоскость изображения виртуальной точки обзора. Преобразование сетки осуществляется путем применения этой операции ко всем вершинам. (Операции (повторной) проекции можно собрать в высокоэффективные операции с малыми матрицами. GPU, в частности, предназначены для эффективного осуществления таких операций, поскольку они часто встречаются при обработке графики).
Декодер дополнительно содержит первый процессор 205 текстуры для генерирования промежуточной текстурной карты в ответ на преобразование точки обзора опорной текстурной карты из опорной точки обзора в первую точку обзора. Очевидно, что может использоваться любой подходящий подход к искривлению/преобразованию опорной текстурной карты из опорной точки обзора в первую точку обзора. Например, может осуществляться отображение текстуры с использованием данной сетки. Сдвиг точки обзора может осуществляться, например, путем рендеризации сетки во внеэкранный буфер OpenGL.
Таким образом, промежуточная текстурная карта соответствует спрогнозированной или оцененной текстурной карте в первой точке обзора на основании опорного якорного изображения. Промежуточная текстурная карта, в частности, может генерироваться с использованием того же алгоритма, который используется процессором 105 сдвига вида кодера. Таким образом, промежуточная текстурная карта может непосредственно соответствовать промежуточной текстурной карте, сгенерированной процессором 105 сдвига вида кодера. Соответственно, текстурная карта остаточных данных, сгенерированная кодером и принятая декодером, может обеспечивать точное указание различий между промежуточной текстурной картой, сгенерированной первым процессором 205 текстуры, и исходной текстурной картой, принятой на кодере.
Декодер дополнительно содержит второй процессор 207 текстуры, на который поступает промежуточная текстурная карта и который выполнен с возможностью генерации первой текстурной карты путем объединения промежуточной текстурной карты и текстурной карты остаточных данных. В частности, во многих вариантах осуществления, первая текстурная карта может генерироваться путем суммирования промежуточной текстурной карты и принятой текстурной карты остаточных данных.
Второй процессор 207 текстуры может, соответственно, генерировать первую текстурную карту, которая очень близко соответствует (и часто, по существу, идентична) относительной текстурной карте, обеспеченной кодеру для первой точки обзора. Таким образом, точная якорная текстурная карта генерируется для первой позиции. Аналогично, процессор 203 сетки может генерировать точную сетку для первой точки обзора (или действительно непосредственно извлекать ее из принятого сигнала изображения).
Декодер дополнительно содержит генератор 209 изображений, на который поступает первая текстурная карта и первая сетка, т.е. сгенерированное 3D изображение для первой точки обзора. Поскольку это 3D изображение базируется на текстурной карте остаточных данных, оно обеспечивает очень точное отражение исходного 3D изображения, принятого кодером для первой точки обзора, и, соответственно, это первое 3D изображение может использоваться как якорное изображение, обеспеченное для первой точки обзора.
Соответственно, генератор 209 изображений выполнен с возможностью генерации выходного изображения для желаемой точки обзора, второй точки обзора, из первого 3D изображения, т.е. из первой текстурной карты и первой сетки. В частности, генератор 209 изображений может быть выполнен с возможностью применять процесс преобразования/сдвига точки обзора к первому 3D изображению для генерации выходного изображения, соответствующего второй точке обзора, т.е. генерируется сдвиг точки обзора из первого изображения во второе.
Подход дает возможность существенно улучшить качество точки обзора в сценариях, где вторая точка обзора близка к первой точке обзора, но более удалена от опорных точек обзора. Однако за это не приходится платить снижением скорости передачи данных, повышением сложности и т.д. в связи с необходимостью обеспечения полного множества опорных изображений. Таким образом, можно достичь значительно улучшенного компромисса между скоростью передачи данных и качеством.
Для сценария, в котором для первой относительной точки обзора обеспечены две текстурные карты остаточных данных, система может сначала осуществлять описанные операции для генерации первой сетки и первой промежуточной текстурной карты на основании первой текстурной карты остаточных данных (и первого опорного изображения). Затем она может переходить к осуществлению тех же операций для генерации второй промежуточной сетки и второй промежуточной текстурной карты на основании второй текстурной карты остаточных данных (и второго опорного изображения). Таким образом, для одной и той же относительной якорной точки обзора генерируются две промежуточные текстурные карты, и обычно две сетки, т.е. для первой точки обзора (в некоторых сценариях и вариантах осуществления две сетки для первой точки обзора могут быть одинаковыми, т.е. первая и вторая текстурные карты могут относиться к одной и той же сетке).
Генератор 209 изображений может переходить к генерации выходного изображения на основании обеих промежуточных текстурных карт и обычно также обеих промежуточных сеток. Как будет более подробно описано ниже, промежуточные текстурные карты и сетки могут, например, объединяться для генерации комбинации одиночной промежуточной текстурной карты и одиночной сетки, и на этом основании генератор изображений может рендеризовать изображение для второй точки обзора. В других вариантах осуществления, первое изображение для второй точки обзора может генерироваться из первой промежуточной текстурной карты и сетки, и второе изображение для второй точки обзора может генерироваться из второй промежуточной текстурной карты и сетки. Затем эти два изображения могут комбинироваться/ объединяться (например, с использованием взвешивания, которое отражает относительные заграждения для промежуточных текстурных карт).
Особенно преимущественный подход предусматривает, что сетка для первой точки обзора, и действительно часто для всех относительных точек обзора, не полностью представлена в сигнале изображения, т.е. варианты осуществления, где сигнал изображения может содержать только часть данных о первой сетке или вообще не содержать их.
В таком подходе, кодер может делить множество якорных изображений на опорные якорные изображения и относительные якорные изображения. Затем относительные якорные изображения можно прогнозировать из опорных якорных изображений и связанных с ними сеток и различие между исходным якорным изображением и спрогнозированным якорным изображением можно кодировать по-разному.
Однако такой подход создает новую проблему, поскольку для генерации новых изображений для разных точек обзора использует(ют)ся относительное(ые) якорное(ые) изображение(я), но для относительной точки обзора нет доступных сеток. Во многих вариантах осуществления, эта проблема может быть решена путем повторного использования/ рециркуляции сетки из опорных якорей за счет изменения геометрии такой сетки, что позволяет синтезировать точку обзора из относительного якоря.
В дальнейшем, подход будет проиллюстрирован на более подробном примере.
Фиг. 3 демонстрирует пример подхода к рендеризации (генерации подходящих изображений) на основе сетки. В примере, каждый закрашенный кружок представляет пространственное положение якорной точки обзора. Пустой кружок представляет положение точки обзора для синтеза, т.е. он представляет вторую точку обзора (например, соответствующую либо положению левого глаза, либо положению правого глаза зрителя). Каждый якорь  состоит из текстуры  и сетки  глубины/3D. Хранение, распределение и/или обработка всех  якорей очень затратны в отношении полосы, вычислительной сложности и т.д. Синтез вида, при котором изображение генерируется для данной желаемой точки обзора, обычно желательно осуществлять на основании текстуры из пространственно ближайшего якоря (  ), искривленного к желаемой точке обзора с использованием соответствующей сетки (  ).
Фиг. 4 демонстрирует пример, отражающий конкретное использование описанного подхода, где данные для некоторых из якорей, в данный момент прогнозируются из близлежащих якорей. Текстурные карты для этих прогнозируемых/ относительных якорных изображений по-разному кодируются путем сохранения только разностных изображений (например, в виде файла JPG). Сетка для относительного якоря может обеспечиваться напрямую, но во многих вариантах осуществления, она также может генерироваться из полностью внутреннее кодированных опорных изображений.
В примере, показанном на фиг. 4, только якоря 1 и 5 внутреннее закодированы, т.е. являются опорными якорями. Якорь 2 в примере прогнозируется из (оба) якорей 1 и/или 5. Тильда (  ) над переменными текстуры и сетки для якоря 2 означает, что они реконструируются. Текстура  реконструируется с использованием дифференциального кодирования, т.е. на основании текстурной карты остаточных данных. Сетка  , например, генерируется из опорной(ых) сетки(ок). Например, сетка из ближайшего якоря (  ) рециркулируется/повторно используется после геометрического преобразования.
После генерирования относительного якоря, изображение  для желаемой точки обзора можно вычислять с использованием алгоритма сдвига точки обзора на основании текстуры  и сетки  .
Во многих вариантах осуществления, ближайший якорь может использоваться для генерации первой сетки и первой текстурной карты. На фиг. 4, опорный якорь, который располагается ближе всего к прогнозируемому/ относительному якорю 2, является якорем 1. Таким образом, сетка якоря 1 используется дважды: она сначала используется для синтеза текстурной карты для относительного якоря 2, после чего ‘рециркулируется’, и это означает изменение ее геометрии, и затем используется для синтеза окончательного изображения  . Прогнозирование текстурной карты  из текстурной карты  осуществляется как на кодере (для извлечения дифференциального изображения для сжатия), так и на декодере для реконструкции якорной текстуры  .
Операция может осуществляться путем сначала поворота и параллельного переноса координат сетки в систему координат камера и затем проецирования с использованием перспективной проекции. Эта стандартная операция обычно представляется в однородных координатах с использованием матрицы 4×4, именуемой матрицей проекции вида модели:
(1)
где  - координаты полученного изображения для проекции точки  , и  - матрица точек обзора камеры для якоря 2. В уравнении (1)  представляет преобразование, которое преобразует входные координаты в универсальные мировые координаты (она обозначает модельную матрицу для преобразования из локальных координат объекта в глобальные),  преобразует мировые координаты в координаты камеры для точки обзора якоря 2, и  осуществляет проективное преобразование.
Операция в уравнении (1) обычно осуществляется в так называемой программе вершинного шейдера, выполняющейся на GPU.
Входом в уравнение (1) является сетка, которая содержит множество 3D точек вершин сетки, а также соответствующие координаты  текстуры и вектор индексов, описывающих, как точки образуют треугольники. Геометрическая операция, осуществляемая вершинным шейдером, заданная в уравнении (1), является лишь одной из многих операций, осуществляемых графическим оборудованием при искривлении текстуры  в якорь 2 с использованием сетки  . Для простоты, эта стандартная операция отображения текстуры/сдвига точки обзора/преобразования записывается в виде:
(2)
Отображение текстуры является стандартной операцией, доступной на большинстве устройств, которые имеют функцию графики. Ее поддерживают такие API, как OpenGL, Vulkan и DirectX.
После операции отображения текстуры можно реконструировать исходную текстуру  из сгенерированной промежуточной текстурной карты  с использованием текстурной карты  остаточных данных:
(3)
Операции в уравнении (3) преимущественно осуществлять на GPU с использованием так называемой программы фрагментарного шейдера. Это имеет преимущество в том, что полученная текстура  при необходимости сохраняется в памяти GPU при осуществлении второго (окончательного) этапа рендеризации для формирования окончательного изображения  глаза.
Для генерации изображения для другой точки обзора (второй точки обзора), дополнительный переход синтеза вида осуществляется для генерации выходного изображения  . Для этого этапа сетка, которая использовалась на первом этапе синтеза, рециркулируется.
Для этого второго этапа синтеза вида может использоваться программа вершинного шейдера, которая осуществляет следующее геометрическое преобразование на 3D координатах сетки:
. (4)
Заметим, что одни и те же координаты точки:  вводятся в вершинный шейдер согласно уравнению (1), предназначенный для прогнозирования текстурной карты  . Таким образом, издержки осуществления операции согласно уравнению (4) ограничены, поскольку точки сетки уже присутствуют в памяти GPU благодаря выполнения предыдущего этапа синтеза точки обзора на тех же координатах. Здесь матрица  точек обзора камеры для якоря 2 заменена матрицей  точек обзора, которая соответствует точке обзора камеры выходного изображения, т.е. она соответствует второй точке обзора. В этом случае координаты  текстуры, связанные с текстурой  необходимы в операции отображения текстуры.
Вторая операция отображения текстуры создает окончательное выходное изображение:
. (5)
.
.
Процесс дополнительно представлен на фиг. 5. В примере, текстура  искривляется для прогнозирования текстуры  с использованием сетки  В то же время,  сама деформируется для формирования  Остаточное изображение  используется для вычисления реконструированной текстуры  Выходное изображение синтезируются путем искривления реконструкции  с использованием рециркулированной (деформированной) сетки  .
Как упомянуто, для передачи информация сетки для относительных якорей могут использоваться разные подходы. В некоторых вариантах осуществления, для относительного якоря в сигнал изображения не включено никаких особые данные сетки, и таким образом, сигнал изображения не содержит никакой информации сетки, которая относится в частности (и только) к относительному(ым) якорю(ям). Однако, поскольку сетка для 3D изображения относительного якоря используется для осуществления синтеза изображения для желаемой точки обзора, сетка должна генерироваться из принятых данных сигнала изображения.
В подобных случаях, процессор 203 сетки выполнен с возможностью генерации сетки для относительного якоря из данных сетки из опорного якоря. Таким образом, в конкретном описанном выше примере, процессор 203 сетки может быть выполнен с возможностью генерации первой относительной сетки из опорной сетки, т.е. сетка для первой (относительной) точки обзора генерируется из сетки опорной точки обзора.
В некоторых вариантах осуществления, процессор 203 сетки может быть выполнен с возможностью генерации первой относительной сетки просто путем копирования опорной сетки. Это дает возможность достаточно уточнять информацию глубины во многих сценариях, где, в частности, относительные и опорные точки обзора очень близки друг к другу.
Однако, в других вариантах осуществления, процессор 203 сетки может быть выполнен с возможностью генерации первой относительной сетки путем применения преобразования точки обзора или искривление к опорной сетке для ее искривления из позиции опорной точки обзора в позицию относительной точки обзора.
Очевидно, что специалисту в данной области техники известны различные методы такого искривления и что может использоваться любой подходящий подход.
Во многих вариантах осуществления, сигнал изображения может содержать особые данные сетки для относительного якорного изображения. Таким образом, сигнал изображения может содержать данные сетки, в частности, для первой точки обзора. Действительно, в некоторых вариантах осуществления, сигнал изображения может содержать полное кодирование относительной сетки в первой точке обзора, и процессор 203 сетки может просто генерировать первую относительную сетку в качестве декодированной принятой относительной сетки. Поскольку сетка обычно требует гораздо меньше данных, чем текстурная карта, этот подход все же будет обеспечивать существенное снижение скорости передачи данных.
Во многих вариантах осуществления, сигнал изображения может содержать остаточные данные сетки для сетки для первой точки обзора, т.е. он может содержать остаточные данные сетки для первой точки обзора. Остаточные данные могут относиться к сетке для той же опорной точки обзора в качестве текстурной карты остаточных данных для первой точки обзора.
В некоторых вариантах осуществления, остаточные данные сетки могут обеспечиваться относительно опорной сетки по мере их приема в сигнале изображения. Однако, во многих вариантах осуществления, остаточные данные сетки относится к сетке, полученной в результате преобразования точки обзора/искривления от опорной позиции к относительной точке обзора.
Таким образом, в таких вариантах осуществления, процессор 203 сетки может быть выполнен с возможностью генерации промежуточной сетки путем применения преобразования точки обзора к принятой опорной сетке. Таким образом, промежуточная сетка генерируется из искривления опорной сетки из опорной точки обзора в первую точку обзора. Преобразование точки обзора может соответствовать тому, которое используется кодером для генерации промежуточной сетки, из которой генерируется остаточные данные сетки. Остаточные данные сетки можно, соответственно, использовать для изменения промежуточной сетки для генерации первой относительной сетки.
В некоторых вариантах осуществления, остаточные данные сетки могут представлять собой, например, информацию, указывающую модификацию или изменение обычно подмножества вершин в сетке. Например, вектор смещения или сдвига может обеспечиваться для вершин, которые кодер определяет как важные, и/или для которых различие позиций в сгенерированной промежуточной сетке и якорной (относительной) сетке слишком велика. Принятые векторы сдвига могут, соответственно, применяться к сетке для их сдвига в правильную позицию.
Таким образом, во многих вариантах осуществления, остаточные данные сетки могут содержать только остаточные данные для подмножества вершин сетки (поскольку искривление обычно удерживает вершины опорной сетки, сигнал изображения может связывать, например, векторы смещения вершины в вершины любой сетки). Вершины, в частности, могут выбираться на кодере на основании сравнения промежуточной сетки и относительной сетки. Такой подход может дополнительно снижать скорость передачи данных, обычно оказывая пренебрежимо малое воздействие на полученное качество.
Пример такого подхода проиллюстрирован на фиг. 6. В этом примере, малый объем данных передается для каждой сетки прогнозируемого/ относительного якоря, что позволяет реконструировать исходную сетку (которая не передается) из сетки, полученной искривлением из близлежащего опорного якоря. Обычно эти векторы коррекции необходимы только в областях заграждения/разграждения, что обуславливает малое количество векторов коррекции.
Очевидно, что остаточные данные сетки могут обеспечиваться как ссылка на координаты в самой сетке (x,y,z) или со ссылкой на соответствующие координаты в текстурной карте (u,v), т.е. считается, что данные сетки включают в себя оба множества координат (действительно, вершины представлены векторами данных, включающими в себя координаты x,y,z и соответствующие u,v).
Предыдущее описание сосредоточено на сценариях, где изображение для второй точки обзора (желаемой точки обзора) генерируется из относительного якоря, причем этот относительный якорь генерируется на основании одного опорного якоря (и остаточные данные соответствуют этому опорному якорю). Однако, в некоторых вариантах осуществления, выходное изображение может генерироваться на основании множества опорных якорных изображений через одно или более относительных якорных изображений, используемых как часть процесса.
Следует также заметить, что в особых случаях, например, когда желаемая точка обзора является ближайшей к опорному якорю, устройство на фиг. 1 может генерировать изображение, не опираясь ни на какой относительный якорь, например, может использовать только ближайший опорный якорь.
В некоторых вариантах осуществления, описанный подход может использоваться для генерации множественных изображений для второй точки обзора, и из этих изображений может генерироваться выходное изображение. Например, выходное изображение может генерироваться взвешенной комбинацией сгенерированных изображений, например, где весовые коэффициенты зависят от информации заграждения для отдельных изображений.
В некоторых вариантах осуществления, генератор 209 изображений, соответственно, может быть выполнен с возможностью генерации первого промежуточного изображения для второй точки обзора в ответ на первую текстурную карту и первую сетку, т.е. в ответ на первый относительный якорь/ 3D изображение. Он может дополнительно генерировать второе промежуточное изображение для второй точки обзора в ответ на дополнительную текстурную карту и дополнительную сетку для дополнительной точки обзора, т.е. второе промежуточное изображение генерируется на основании другого якорного изображения. Подход к генерированию второго промежуточного изображения может быть таким же, как для генерирования первого промежуточного изображения, но на основании другого якорного изображения.
Этим другим якорным изображением может быть, например, опорное якорное изображение. Таким образом, в некоторых вариантах осуществления, дополнительная текстурная карта и дополнительная сетка могут быть текстурная карта и сетка опорного 3D изображения.
В других вариантах осуществления или сценариях, другим якорным изображением может быть относительное якорное изображение. Таким образом, в некоторых вариантах осуществления, дополнительное промежуточное изображение может генерироваться с использованием в точности того же подхода, что и для первого промежуточного изображения, но с использованием другого относительного якоря, сгенерированного с использованием другой текстурной карты остаточных данных и часто другого опорного изображения.
Таким образом, в некоторых вариантах осуществления, первый процессор 205 текстуры выполнен с возможностью генерации дополнительной промежуточной текстурной карты в ответ на преобразование точки обзора дополнительной опорной текстурной карты из точки обзора дополнительной опорной текстурной карты в дополнительную точку обзора, где дополнительная опорная текстурная карта является текстурной картой второго опорного 3D изображения. В таких вариантах осуществления второй процессор 207 текстуры может быть выполнен с возможностью генерации дополнительной текстурной карты в ответ на объединение дополнительной промежуточной текстурной карты и дополнительной текстурной карты остаточных данных для дополнительной точки обзора.
Аналогично, процессор 203 сетки может быть выполнен с возможностью генерации дополнительной сетки в ответ на преобразование точки обзора сетки второго опорного 3D изображения из точки обзора дополнительной опорной текстурной карты в дополнительную точку обзора.
Затем генератор 209 изображений может генерировать второе промежуточное изображение из полученных дополнительной текстурной карты и дополнительной сетки.
В подходах, представленных на фиг. 1 и 2, множество опорных изображений используются для генерации информации якорного изображения для первой относительной точки обзора.
В подходе, сигнал изображения содержит множество текстурных карт остаточных данных для первой точки обзора. Каждая из текстурных карт остаточных данных обеспечивает остаточные данные для текстурной карты первой точки обзора по отношению к другим опорным точкам обзора, т.е. со ссылкой на другие опорные текстурные карты. В этом подходе, множество альтернативных относительных текстурных карт и сеток может генерироваться для первой точки обзора с использованием разных опорных изображений и текстурных карт остаточных данных.
В таких вариантах осуществления, процессор 203 сетки может быть выполнен с возможностью генерации множества сеток для первой относительной точки обзора. Например, помимо генерации сетки из первой опорной точки обзора, как описано выше, он также может генерировать дополнительную/вторую сетку для первой точки обзора из дополнительной опорной точки обзора. Например, на фиг.3, сетка генерируется из  , и дополнительная сетка генерируется из  .
В частности, процессор 203 сетки может генерировать относительную сетку для каждой опорной точки обзора, используемой при генерировании выходного изображения. Каждая из этих относительных сеток может определяться как описано ранее, т.е. обычно искривление, сопровождаемое необязательной коррекцией на основании остаточных данных сетки может осуществляться для каждой рассматриваемой опорной точки обзора.
Аналогично, первый процессор 205 текстуры и второй процессор 207 текстуры могут быть выполнены с возможностью генерации множества текстурных карт для первой относительной точки обзора. Например, помимо генерации первой текстурной карты из первой опорной точки обзора, как описано выше, он также может генерировать дополнительную/вторую текстурную карту для первой точки обзора из дополнительной опорной точки обзора. Например, на фиг. 3, текстурная карта генерируется из  , и дополнительная текстурная карта генерируется из  . Каждая из этих текстурных карт генерируется сдвигом точки обзора, сопровождаемым объединением с надлежащей текстурной картой остаточных данных из соответствующей опорной точки обзора.
В частности, первый процессор 205 текстуры и второй процессор 207 текстуры может генерировать относительную текстурную карту для каждой опорной точки обзора, используемой при генерировании выходного изображения.
Каждая из этих относительных текстурных карт может определяться, как описано ранее, т.е. обычно для каждой рассматриваемой опорной точки обзора может осуществляться искривление, сопровождаемое коррекцией на основании текстурной карты остаточных данных. Таким образом, в частности, первый процессор 205 текстуры может генерировать промежуточную текстурную карту для каждой рассматриваемой опорной точки обзора путем осуществления преобразования точки обзора текстурной карты отдельной опорной точки обзора из позиции отдельной опорной точки обзора в позицию первой точки обзора. Затем второй процессор 207 текстуры для каждой из сгенерированных промежуточных текстурных карт может генерировать текстурную карту для первой точки обзора путем объединения промежуточной текстурной карты с надлежащей текстурной картой остаточных данных.
Затем генератор 209 изображений может быть выполнен с возможностью генерации выходного изображения в ответ на множество относительных 3D изображений для первой точки обзора, т.е. в ответ на текстурные карты и сетки для первой точки обзора, сгенерированной из разных опорных якорей.
Это может осуществляться по-разному в разных вариантах осуществления. В некоторых вариантах осуществления, слияние или объединение разных относительных 3D изображений может осуществляться для первой точки обзора т.е. на относительных 3D изображениях, до преобразования точки обзора во вторую точку обзора, т.е. до синтеза изображения для выходного изображения. В других вариантах осуществления, преобразование точки обзора по отдельности применяется к множеству относительных 3D изображений для первой точки обзора, и затем полученные изображения для второй точки обзора объединяются (например, усредняются). Заметим, что в случае, когда разные опорные якоря соответствуют изображениям с разными динамическими диапазонами, конкретный этап обработки с высоким динамическим диапазоном может использоваться в процессе слияния.
В частности, в некоторых вариантах осуществления, генератор 209 изображений может быть выполнен с возможностью генерации первого промежуточного изображения для второй точки обзора в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании первой текстурной карты и первой сетки, сгенерированной для первой точки обзора из первого опорного 3D изображения. Аналогично, генератор 209 изображений может быть выполнен с возможностью генерации второго промежуточного изображения для второй точки обзора в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании второй текстурной карты и второй сетки, сгенерированной для первой точки обзора из второго опорного 3D изображения. Таким образом, в этом случае генерируются альтернативные промежуточные выходные изображения. Затем эти выходные изображения комбинируются/объединяются генератором 209 изображений для генерации окончательного выходного изображения для второй точки обзора.
Этот подход может, соответственно, соответствовать подходу, где несколько разных якорей используется для генерации промежуточных изображений для второй точки обзора, но с конкретным требованием, чтобы некоторые из этих якорных 3D изображений служат для одной и той же точки обзора.
Очевидно, что могут применяться разные подходы к объединению альтернативных промежуточных выходных изображений. Во многих вариантах осуществления, объединение может осуществляться в соответствии с данными заграждения, представляющие информационную заграждения для опорных точек обзора. Например, как часть преобразования точки обзора, области, которые разграждаются, можно идентифицировать. Эти области обычно будут разными областями для разных точек обзора. Соответственно, генератор 209 изображений может, при объединении промежуточных изображений, делать это путем осуществления взвешенной комбинации, в которой весовые коэффициенты устанавливаются для отражения, является ли соответствующий пиксель пикселем, который был разгражден. Таким образом, пиксели, не прошедшие обработку разграждения, взвешиваются выше, чем пиксели, прошедшие обработку разграждения. В качестве простого примера, весовой коэффициент разгражденного пикселя может быть установлен равным нулю, если соответствующий пиксель в другом промежуточном изображении не является разгражденным пикселем.
В некоторых вариантах осуществления, генератор 209 изображений может быть выполнен с возможностью объединения промежуточных изображений, зависящих от направления сдвигов точки обзора из соответствующих опорных точек обзора в первую точку обзора относительно направления сдвига точки обзора от первой точки обзора ко второй точке обзора. В частности, весовые коэффициенты для пикселей промежуточных изображений, которые вытекают из двух сдвигов точки обзора, которые ориентированы в одном и том же направлении, могут быть взвешены выше, чем пиксели промежуточных изображений, которые вытекают из двух сдвигов точки обзора, которые ориентированы в разных, или даже противоположных, направлениях.
Это позволяет обеспечивать улучшенные результаты и, в частности, может отражать, что это с меньшей вероятностью приводит к ошибкам разграждения, т.е. сдвигам в одном и том же направлении свойственно приводить к менее общим разгражденным областям, чем сдвигам в противоположных направлениях.
Конкретное преимущество подхода объединения на второй фазе точки обзора состоит в том, что он может избегать любого определения новой комбинированной сетки для первой точки обзора. Напротив, принятые или легко выведенные сетки из опорных сеток могут использоваться непосредственно при преобразовании точки обзора. Хотя могут требоваться множественные преобразования точки обзора, они часто являются стандартизованными и хорошо (аппаратно) оптимизированными процессами и, таким образом, становятся менее вычислительно проблематичными, чем операция слияния/объединения разных сеток.
В некоторых вариантах осуществления, декодер может, как упомянуто, быть выполнен с возможностью объединения множественных относительных 3D изображений для первой точки обзора до любого преобразования точки обзора во вторую точку обзора осуществляется. Например, генератор 209 изображений может объединять первую текстурную карту, полученную из первого опорного якоря, и вторую текстурную карту, полученную из второго опорного якоря, в третью текстурную карту для первой точки обзора. Комбинация может быть, например, взвешенной комбинацией, причем весовые коэффициенты устанавливаются в зависимости от того, получены ли отдельные пиксели из обработки разграждения.
Дополнительно, генератор 209 изображений может объединять первую сетку, полученную из первого опорного якоря, и вторую сетку, полученную из второго опорного якоря, в третью сетку для первой точки обзора.
Разные подходы могут использоваться для объединения сеток, но обычно такие операции обычно сложнее, чем объединение текстурных карт. Один вариант состоит в определении, какие треугольники из первой сетки отображаются в область разграждения второй сетки и наоборот. Затем эти треугольники могут заменять треугольники области разграждения. Таким образом, одна из сеток может использоваться в качестве опорной, причем области, подвергнутые разграждению, заменяются соответствующими областями из другой сетки.
В некоторых вариантах осуществления, остаточные данные сетки могут включать в себя информацию о том, как объединяются/комбинируются сетки. Например, точки могут перемещаться, объединяться, удаляться, могут формироваться новые треугольники, и т.д.
Таким образом, генератор 209 изображений может, соответственно, генерировать относительное якорное 3D изображение, которое затем может использоваться для преобразования точки обзора во вторую точку обзора. Таким образом, генератор 209 изображений может быть выполнен с возможностью генерации выходного изображения в ответ на преобразование точки обзора из первой точки обзора во вторую точку обзора на основании третьей сетки текстур и третьей сетки.
В дальнейшем будет обеспечено более подробное описание примера, где используется множественные опорные якоря, где слияние осуществляется с использованием данных второй точки обзора. Данный подход позволяет избежать смешивания сеток, откладывая смешивание текстур в окончательную рендеризацию, т.е. во вторую фазу точки обзора:
T
M
j
P
M
i
i
i,j
i,j
1. Множественные опорные якоря, имеющие текстуры , и сетки  по отдельности искривляются в прогнозируемый якорь , соответствующий первой точке обзора, приводящей к текстурам  и сеткам .
E
T
P
E
i,j
i,j
i,j
i,j
2. Любые текстурные карты  остаточных данных задают текстуры, приводящие к =+.
T
T
i,j,L
i,j,R
3. Окончательное искривление может создавать промежуточные выходные изображения для второй точки обзора, которые, в частности, могут быть изображением  левого глаза или изображением  правого глаза. Кроме того, оно может создавать вспомогательную информацию, например, доверие, расхождение, глубину или карты, которые характеризуют величину растяжения и т.д.
T
T
L
R
4. Затем промежуточные изображения могут объединяться с образованием окончательного выходного изображения, которое, опять же, может быть изображением  левого глаза или изображением  правого глаза.
В некоторых вариантах осуществления, выходное изображение может базироваться на множественных опорных якорях, но все они используют одну и ту же относительную точку обзора. Таким образом, в этом примере, каждый прогнозируемый якорь базируется на множественных опорных якорях, поэтому множество текстур и сеток связано с прогнозируемым якорем. Соотношение между прогнозируемыми и опорными якорями может определяться регулярным рисунком и/или опорный якорь кодирует идентификаторы опорных якорей. Этот пример проиллюстрирован на фиг. 7.
j
В других вариантах осуществления, выходное изображение может базироваться на множественных опорных якорях, но через разные относительные якоря. В таком варианте осуществления, множественные прогнозируемые/относительные якоря  могут генерироваться на основании множественных опорных якорей. Во многих таких вариантах осуществления, каждый относительный якорь генерируется из одного-единственного опорного якоря, поскольку это может приводить к снижению сложности. Такой пример проиллюстрирован на фиг. 8.
Конечно, в более общем случае, может использоваться любая комбинация использования одного или более опорных якорей для генерации каждого относительного якоря и использования одного или более относительных якорей (а также, в необязательном порядке, опорных якорей) для генерации выходного изображения. Такой пример проиллюстрирован на фиг. 8.
Преимущество объединения/пересечения сеток состоит в том, что это позволяет использовать более грубые сетки, что снижает скорость передачи данных, необходимую для осуществления связи. Действительно, при условии, что сетки являются довольно грубыми, это в типичных реализациях вершинный шейдер, а не фрагментарный шейдер, что определяет общую сложность. На основании этого рассмотрения в некоторых сценариях может быть привлекательно, чтобы сетки пересекались, в результате чего образуется более крупная сетка с малыми кодированием и обработкой или без них.
Например, относительный якорь может генерироваться декодером согласно следующему подходу:
T
M
j
T
M
i
i
i,j
i,j
1. Множественные опорные якоря (, ) искривляются в прогнозируемый якорь (, ),
P
j
2. Текстуры объединяются с образованием прогнозируемой текстуры
T
=P
+E
j
j
j
3. Остаток прибавляется с образованием текстуры
D
F
j
j
4. В некоторых сценариях, также может существовать плотная карта  глубины на основе смешивания на основании доверия входных сеток и, в необязательном порядке, корректироваться остатком
M
Mi, j
j
i
j
5. Сетки пересекаются с образованием одной сетки =intersect(). Полезно иметь способ пересечения, который базируется только на сетках, но в общем случае он также может опираться на текстуры, и в этом случае сетка доступна только после затенения фрагментов.
Пересечение сеток может осуществляться согласно этому алгоритму:
1. Начать, когда все сетки образуют один разделенный граф
T
2. В необязательном порядке, добавлять регулярную сетку чтобы быть уверенным, что покрыта вся точка обзора (). В ряде случаев, значения глубины этой сетки нужно определять из других сеток, и в этом случае может иметь смысл сначала осуществлять пересечение других сеток, а затем осуществлять пересечение результата с регулярной сеткой.
e
e
12
34
3. Для каждой пары пересекающихся сторон  и , которые пересекаются в 2-D смысле,
v
5
a. Добавлять вершину  в точке пересечения. Существует несколько способов определения составляющей глубины (или расхождения):
i. Интерполировать от (вершин, которые образуют) кратчайшей стороны
ii. Предпочтительно: интерполировать от наиболее доверенной стороны, где доверие может быть, например, ниже, когда искривленная сторона растягивается больше, чем исходная
iii. Среднее обеих сторон
D
j
iv. Выбирать значение из плотной карты  глубины.
e
e
12
34
b. Удалять стороны  и
e
i
i5
c. Добавлять стороны  для  в 1…4
4. Поскольку алгоритм пересечения сеток является детерминистическим можно прибавлять остаток, как описано выше. Например, можно корректировать некоторые значения глубины с использованием таблицы индексов и значений вершин.
В некоторых вариантах осуществления, процессор 203 сетки может быть выполнен с возможностью фильтрации сетки, сгенерированной для первой точки обзора, т.е. относительной сетки.
Действительно, при скачке глубины, сетки хорошо выравниваются с информацией текстуры, видимое растяжение может возникать при рендеризации синтетической точки обзора. Этого можно избежать, согласуя сетки более свободно вокруг объектов переднего плана. При работе с плотными картами глубины, эта операция осуществляется посредством морфологической операции. Для сеток это может осуществляться путем перемещения вершин в направлении градиента поля глубины (к увеличенному расстоянию от позиции виртуальной камеры).
Фильтрация достигает значительной величины, поскольку в случае применении чрезмерной фильтрации фон будет характерно смешиваться с передним планом, что будет восприниматься как гало, особенно при движении фона.
В некоторых вариантах осуществления, сигнал изображения может быть выполнен с возможностью включать в себя метаданные, указывающие необходимость применения фильтрации. Например, сигнал изображения может указывать (для каждого файла, потока, сетки и/или вершины), в какой степени следует применять фильтрацию. Это значение может измеряться в пространственных единицах (например, пикселях) и в этом случае учитывается только направление градиента глубины, или в единицах глубины или расхождения и в этом случае также учитывается величина градиента глубины.
Эту фильтрацию предпочтительно применять до добавления любого остатка сетки (т.е. до объединения относительной сетки и соответствующих остаточных данных сетки), благодаря чему, остаток служит для коррекции искривления и фильтрации.
Сигнал изображения обычно содержит метаданные (т.е. данные о других данных сигнала изображения), что может облегчать обработку сигнала изображения. В частности, сигнал изображения может, как описано ранее, содержать множество текстурных карт остаточных данных для разных пар опорных точек обзора и остаточных точек обзора. Сигнал изображения может дополнительно содержать метаданные, указывающие, какие 3D изображения сигнала изображения связаны с какими текстурными картами остаточных данных сигнала изображения. Декодер может извлекать эти метаданные и выбирать надлежащие текстурные карты остаточных данных и опорные изображения при генерации текстурной карты для данного относительного якоря.
Во многих вариантах осуществления, сигнал изображения может дополнительно или альтернативно содержать данные управления генерацией сетки, и процессор 203 сетки может быть выполнен с возможностью генерации относительной(ых) сетки(ок) в соответствии с данными управления генерацией сетки.
Например, как описано выше данные управления генерацией сетки могут содержать данные, указывающие фильтрацию, которую следует применять к сгенерированной промежуточной сетки. Это позволяет кодеру управлять фильтрацией таким образом, чтобы ее можно было адаптировать на основании фактических свойств изображения, и действительно это рассмотрение можно делать на основании, например, сравнения с исходной сеткой, которая может приниматься для данной относительной точки обзора.
Подход также позволяет данным управления генерацией сетки обеспечивать разные данные управления для разных относительных точек обзора и/или для разных опорных точек обзора. Таким образом, это дает возможность по-разному обрабатывать разнородные якоря. Например, могут обеспечиваться данные управления генерацией сетки, которые содержат:
- поле для указания для каждого прогнозируемого якоря, как должна формироваться сетка, выбирая между несколькими доступными вариантами выбора, например:
- регулярной сетки
- сетки из ближайшего якоря
i
- сетки из якоря
- пересечения сеток
- и т.д.
- поля для указания сколько и какие опорные якоря подлежат использованию для каждого прогнозируемого якоря.
Устройство на фиг. 2 может, соответственно, содержать приемник (201) для приема сигнала изображения, содержащего несколько трехмерных изображений, представляющих сцену с разных точек обзора, причем каждое трехмерное изображение содержит сетку и текстурную карту, причем сигнал дополнительно содержит текстурную карту остаточных данных для первой точки обзора, отличной от других точек обзора из нескольких трехмерных изображений, причем текстурная карта остаточных данных обеспечивает остаточные данные для текстурной карты для первой точки обзора относительно текстурной карты, обусловленной сдвигом точки обзора опорной текстурной карты, которая является текстурной картой первого трехмерного изображения из нескольких трехмерных изображений; процессор (203) сетки для генерирования первой сетки для первой точки обзора; первый процессор (205) текстуры для генерирования промежуточной текстурной карты в ответ на преобразование точки обзора опорной текстурной карты из точки обзора первого трехмерного изображения в первую точку обзора; второй процессор (207) текстуры для генерирования первой текстурной карты в ответ на объединение промежуточной текстурной карты и текстурной карты остаточных данных; и генератор (209) изображений для генерирования изображения для второй точки обзора из первой текстурной карты и первой сетки.
Дополнительно, сигнал изображения может, в частности, содержать множество текстурных карт остаточных данных для первой точки обзора, причем множество текстурных карт остаточных данных включает в себя текстурную карту остаточных данных для первой точки обзора; и процессор (203) сетки может быть выполнен с возможностью дополнительно генерировать вторую сетку для первой точки обзора из дополнительной опорной сетки, которая является сеткой второго трехмерного изображения из множества трехмерных изображений; первый процессор (205) текстуры может быть выполнен с возможностью генерации дополнительной промежуточной текстурной карты в ответ на преобразование точки обзора дополнительной опорной текстурной карты из точки обзора второго трехмерного изображения в первую точку обзора, причем дополнительная опорная текстурная карта является текстурной картой второго трехмерного изображения; второй процессор (207) текстуры может быть выполнен с возможностью генерации второй текстурной карты в ответ на объединение дополнительной промежуточной текстурной карты и дополнительной текстурной карты остаточных данных для первой точки обзора, причем дополнительная текстурная карта остаточных данных является вторым трехмерным изображением; и генератор (209) изображений может быть выполнен с возможностью дополнительно генерировать изображение для второй точки обзора из второй текстурной карты и второй сетки.
Точки обзора, для которых может использоваться конкретный подход, будут зависеть от требований и предпочтений отдельного варианта осуществления. Во многих вариантах осуществления, подход будет использоваться для генерации изображений для виртуальных точек обзора в сцене, которые определяются локально, например, на основании пользовательского ввода или перемещения (например, для обеспечения восприятия виртуальной реальности).
Однако совершенно очевидно, что подход не ограничивается такими вариантами осуществления, и что можно использовать практические реализации на основании, например, информации о точке обзора, включенной в тот же сигнал, что и данные сцены. Например, сигнал может, помимо описанных данных сцены, содержать указания предпочтительных, обязательных или предложенных точек обзора, и устройство может использовать заданный подход для генерации изображений для этих точек обзора.
Действительно, в порядке примера, допустимо даже, что подход можно использовать для локальной генерации изображения для одной опорной точки обзора на основании другой опорной точки обзора и относительной точки обзора. Такое изображение можно, например, сравнивать с соответствующим изображением, сгенерированным непосредственно из сетки и текстуры первой опорной точки обзора. Если разность меньше данной величины, система может принимать решение, что сетку и текстурную карту для первой опорной точки обзора можно отвергнуть, и новый сигнал можно сгенерировать без этой информации. Таким образом, устройство может использовать заданный подход для осуществления перекодирования/снижения скорости передачи данных.
Обычно вторая точка обзора располагается ближе к первой точке обзора, чем к исходной опорной точке обзора, но это не обязательно. Например, исходная опорная точка обзора может располагаться чуть правее объекта переднего плана, который заграждает большой участок фона. Желаемая точка обзора (вторая точка обзора) может располагаться чуть левее этого объекта переднего плана и, таким образом, сетка и текстурная карта для опорной точки обзора может не обеспечивать достаточной (или вовсе никакой) информации о загражденном участке фона. Однако остаточная текстурная карта может обеспечиваться для первой/ относительной точки обзора, которая существенно левее объекта переднего плана и может располагаться существенно дальше от второй (желаемой) точки обзора, чем опорная точка обзора. Однако генерирование текстурной карты и сетки для этой первой/ относительной точки обзора может приводить к значительному увеличению информации, которую можно использовать для генерации изображения для второй точки обзора (она будет иметь информацию о большом участке фона, загражденном при наблюдении из опорной точки обзора). Заметим, что это будет так даже если данные первой/ относительной точки обзора базируются на опорной точке обзора, поскольку остаточная текстурная карта будет содержать информацию об участке фона, загражденном объектом переднего плана при наблюдении из опорной точки обзора.
Очевидно, что можно рассматривать много разных примеров, и что предпочтительные подход и реализация будут зависеть от отдельных требований и предпочтений отдельного варианта осуществления (в том числе, например, деталей сцены, скорости передачи данных и т.д.).
Очевидно, что в вышеприведенном описании для наглядности варианты осуществления изобретения описаны со ссылкой на разные функциональные схемы, блоки и процессоры. Однако очевидно, что любое подходящее распределение функциональных возможностей между разными функциональными схемами, блоками или процессорами может использоваться без отхода от изобретения. Например, функциональные возможности, проиллюстрированные как осуществляемые раздельными процессорами или контроллерами, могут осуществляться одним и тем же процессором или контроллером. Поэтому, ссылки на конкретные функциональные блоки или схемы следует рассматривать только как ссылки на подходящее средство для обеспечения описанных функциональных возможностей, а не указания конкретной логической или физической структуры или конфигурации.
Изобретение можно реализовать в любой подходящей форме, в том числе аппаратной, программной, программно-аппаратной или любой их комбинации. В необязательном порядке изобретение можно реализовать, по меньшей мере частично, в виде компьютерного программного обеспечения выполняющегося на один или более процессоров данных и/или цифровых сигнальных процессоров. Элементы и компоненты варианта осуществления изобретения могут быть физически, функционально и логически реализованы любым подходящим способом. Действительно, функциональные возможности могут быть реализованы в одиночном блоке, во множестве блоков или как часть других функциональных блоков. Таким образом, изобретение может осуществляться в одиночном блоке или может физически и функционально распределяться между разными блоками, схемами и процессорами.
Хотя настоящее изобретение описано в связи с некоторыми вариантами осуществления, оно не подлежит ограничению конкретной изложенной здесь формой. Напротив, объем настоящего изобретения ограничивается только нижеследующей формулой изобретения. Дополнительно, хотя признак может возникать в описании конкретных вариантов осуществления, специалисту в данной области техники понятно, что различные признаки описанных вариантов осуществления могут объединяться в соответствии с изобретением. В формуле изобретения, термин "содержащий" не исключает наличия других элементов или этапов.
Кроме того, даже будучи перечислены по отдельности, множество средств, элементов, схем или этапов способа может осуществляться, например, одиночной/ым схемой, блоком или процессором. Дополнительно, хотя отдельные признаки могут быть включены в разные пункты формулы изобретения, их можно преимущественно комбинировать, и включение в разные пункты формулы изобретения не означает, что комбинация признаков не будет осуществимой и/или преимущественной. Также включение признака в одну категорию пунктов формулы изобретения не налагает ограничения на эту категорию, но, напротив, указывает, что признак в равной степени применим, при необходимости, к другим категориям пунктов формулы изобретения. Кроме того, порядок признаков в формуле изобретения не предполагает никакого конкретного порядка перечисления признаков и, в частности, порядок отдельных этапов в пункте способа не означает, что этапы должны осуществляться в этом порядке. Напротив, этапы могут осуществляться в любом подходящем порядке. Кроме того, ссылки в единственном числе не исключают множества. Таким образом, употребление слов "первый", "второй" и т.д. не исключают множества. Ссылочные позиции в формуле изобретения обеспечены лишь в качестве пояснительного примера и никоим образом не служат для ограничения объема формулы изобретения.