RU2771957C2 - Device and method for generating mosaic representation of three-dimensional scene image - Google Patents
Device and method for generating mosaic representation of three-dimensional scene image Download PDFInfo
- Publication number
- RU2771957C2 RU2771957C2 RU2020107834A RU2020107834A RU2771957C2 RU 2771957 C2 RU2771957 C2 RU 2771957C2 RU 2020107834 A RU2020107834 A RU 2020107834A RU 2020107834 A RU2020107834 A RU 2020107834A RU 2771957 C2 RU2771957 C2 RU 2771957C2
- Authority
- RU
- Russia
- Prior art keywords
- tile
- depth
- depth value
- tiles
- image
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 claims description 37
- 230000000694 effects Effects 0.000 abstract description 4
- 230000003247 decreasing Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 239000000203 mixture Substances 0.000 description 9
- 230000001131 transforming Effects 0.000 description 6
- 238000007906 compression Methods 0.000 description 5
- 230000001788 irregular Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000015572 biosynthetic process Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 238000009877 rendering Methods 0.000 description 3
- 230000002194 synthesizing Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005755 formation reaction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001419 dependent Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static Effects 0.000 description 1
- 230000016776 visual perception Effects 0.000 description 1
Images
Abstract
Description
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF TECHNOLOGY TO WHICH THE INVENTION RELATES
Изобретение относится к устройству и способу для генерации мозаичного представления трехмерного изображения сцены, и, в частности, но не исключительно, к генерации улучшенного мозаичного представления трехмерного изображения сцены, пригодного для генерации изображений на основании преобразования в сеточное представление.The invention relates to a device and method for generating a tiled representation of a 3D scene image, and in particular, but not exclusively, to generating an improved tiled representation of a 3D scene image suitable for generating images based on a transformation to a grid representation.
УРОВЕНЬ ТЕХНИКИBACKGROUND OF THE INVENTION
Традиционно, техническая обработка и использование изображений основаны на формировании двухмерных изображений, но в обработке изображений все более явно рассматривается третье измерение.Traditionally, the technical processing and use of images has been based on the formation of two-dimensional images, but the third dimension is increasingly considered in image processing.
Например, разработаны трехмерные (3D) дисплеи, которые добавляют третье измерение в зрительное восприятие путем снабжения двух глаз зрителя разными видами наблюдаемой сцены. Этого можно добиться за счет того, что пользователь носит очки для разделения двух отображаемых видов. Однако, поскольку это может быть неудобно пользователю, во многих сценариях предпочтительно использовать автостереоскопические дисплеи, которые используют средство на дисплее (например, лентикулярные линзы или барьеры) для разделения видов, и отправлять их в разных направлениях, где они по отдельности могут достигать глаз пользователя. Для стереодисплеев требуется два вида, тогда как автостереоскопические дисплеи обычно требуют больше видов (например, девять видов). For example, three-dimensional (3D) displays have been developed that add a third dimension to visual perception by providing the viewer's two eyes with different views of the observed scene. This can be achieved by having the user wear glasses to separate the two displayed views. However, because this can be inconvenient for the user, in many scenarios it is preferable to use autostereoscopic displays that use a means on the display (such as lenticular lenses or barriers) to separate views, and send them in different directions where they can individually reach the user's eyes. Stereo displays require two views, while autostereoscopic displays typically require more views (e.g. nine views).
Во многих вариантах осуществления, может быть желательно генерировать обзорные изображения для новых направлений обзора. Тогда как известны различные алгоритмы для генерации таких новых обзорных изображений на основании информации изображения и глубины, им свойственно в высокой степени зависеть от точности предоставляемой (или выведенной) информации глубины. In many embodiments, it may be desirable to generate overview images for new viewing directions. While various algorithms are known for generating such new overview images based on image and depth information, they tend to be highly dependent on the accuracy of the provided (or inferred) depth information.
Действительно, информация трехмерного изображения часто обеспечивается множеством изображений, соответствующих разным направлениям обзора для сцены. В частности, видеоконтент, например, фильмы или телепрограммы, все больше генерируется для включения некоторой 3D информации. Такая информация может захватываться с использованием специальных 3D камер или камер регистрации глубины, например, камер, которые захватывают два одновременных изображения из немного смещения позиций камеры.Indeed, 3D image information is often provided by multiple images corresponding to different viewing directions for a scene. In particular, video content such as movies or TV programs are increasingly being generated to include some 3D information. Such information can be captured using dedicated 3D cameras or depth recording cameras, such as cameras that capture two simultaneous images from slightly offset camera positions.
Однако, во многих приложениях, обеспеченные изображения могут непосредственно не соответствовать желаемым направлениям, или может потребоваться больше изображений. Например, для автостереоскопических дисплеев требуется более двух изображений, и в действительности часто используются 9–26 обзорных изображений.However, in many applications, the provided images may not directly match the desired directions, or more images may be required. For example, autostereoscopic displays require more than two images, and 9–26 overview images are often used in reality.
Для генерации изображений, соответствующих разным направлениям обзора, может применяться обработка сдвига точки обзора. Это обычно осуществляется алгоритмом сдвиг вида, который использует изображение для единого направления обзора совместно с связанной информации глубины. Viewpoint shift processing may be applied to generate images corresponding to different viewing directions. This is typically done by a viewshift algorithm that uses the image for a single view direction along with associated depth information.
Конкретным примером приложения, которое базируется на обработке трехмерных изображений, является приложение виртуальной реальности. В типичном восприятии виртуальной реальности, обзорные изображения правого глаза и левого глаза могут непрерывно генерироваться, например, для гарнитуры виртуальной реальности для согласования перемещения и изменения ориентации пользователем. Такая генерация динамических видов виртуальной реальности обычно опирается на обработку данных 3D изображения, представляющих данную сцену, соответствующую окружению виртуальной реальности. Например, сервер виртуальной реальности может генерировать обзорные изображения для конкретных видов на основании трехмерной модели или трехмерных изображений, например, изображений, представленных изображениями интенсивности света и картами глубины, или текстурных карт и сеток глубины.A specific example of an application that is based on 3D image processing is a virtual reality application. In a typical VR experience, right-eye and left-eye overviews may be continuously generated, for example, for a VR headset to match user movement and reorientation. Such generation of dynamic virtual reality views typically relies on the processing of 3D image data representing a given scene corresponding to the virtual reality environment. For example, the virtual reality server may generate view-specific overview images based on a 3D model or 3D images, such as images represented by light intensity images and depth maps, or texture maps and depth meshes.
Для таких приложений, как приложения виртуальной реальности, последовательность изображений может, например, генерироваться для отражения видов пользователя по мере их изменения вследствие виртуального перемещения или изменения направления обзора/ ориентации пользователя в виртуальном окружении. В некоторых приложениях, изображения могут генерироваться для отражения изменений ориентации зрителя, но без поддержания перемещения в области. Видео, отражающее такой сценарий, часто именуется всенаправленным видео. В других приложениях, перемещение позиции обзора также может поддерживаться для отражения виртуального перемещения пользователя в окружении виртуальной реальности. Видео, отражающее такой сценарий, часто именуется видео с погружением. Текущий вид пользователя можно представить вектором обзора, который выражает соответствующие параметры позиции и направления для точки обзора. For applications such as virtual reality applications, a sequence of images may, for example, be generated to reflect the user's views as they change due to virtual movement or a change in the user's viewing direction/orientation in the virtual environment. In some applications, images may be generated to reflect changes in the viewer's orientation, but without maintaining movement within the area. Video that reflects this scenario is often referred to as omnidirectional video. In other applications, viewing position movement may also be supported to reflect the user's virtual movement in the virtual reality environment. A video that captures this scenario is often referred to as an immersive video. The user's current view can be represented by a view vector that expresses the appropriate position and direction parameters for the viewpoint.
Для всенаправленного видео, вектор обзора обычно выражает ориентацию согласно трем степеням свободы (3DoF), обычно путем обеспечения значений рысканья, тангажа и крена (или азимута, возвышения и наклона).For omnidirectional video, the view vector typically expresses orientation according to three degrees of freedom (3DoF), typically by providing yaw, pitch, and roll (or azimuth, elevation, and tilt) values.
Для видео с погружением, вектор обычно выражает как ориентацию, так и позицию согласно шесть степеням свободы (6DoF), обычно путем обеспечения значений рысканья, тангажа, крена и трех пространственных измерений. For immersive video, the vector typically expresses both orientation and position according to six degrees of freedom (6DoF), typically by providing values for yaw, pitch, roll, and three spatial dimensions.
Однако особая проблема в стремлении разработать и поддерживать гибкие приложения видео и изображений, поддерживающие переменные позиции и/или направления вида, состоит в том, что они, предпочтительно, не ограничиваются подмножеством позиций и/или направлений, но в идеале поддерживаются все позиции и/или направления. Например, для видео с погружением 6DoF, зритель может обозревать сцену из любой позиции и в любом направлении. Для этого требуется, чтобы 3D информация была доступна для всех частей сцены и из всех позиций и для всех направлений. Этому требованию трудно или невозможно удовлетворить во многих практических приложениях, например, в частности, приложениях, где 3D данные базируется на захватах сцены реального мира. However, a particular problem in striving to develop and maintain flexible video and image applications that support variable view positions and/or directions is that they are preferably not limited to a subset of positions and/or directions, but ideally all positions and/or views are supported. directions. For example, for 6DoF immersive video, the viewer can view the scene from any position and in any direction. This requires that 3D information be available for all parts of the scene and from all positions and in all directions. This requirement is difficult or impossible to satisfy in many practical applications, for example, in particular applications where 3D data is based on real world scene captures.
Комбинация позиции и направления/ ориентации объекта в поле обычно именуется расположением или позой. Таким образом, вектор расположения или позы может содержать шесть значений/ компонент, причем каждое значение/ компонента выражает отдельную характеристику позиции/ положения или ориентации/ направления соответствующего объекта. Конечно, в некоторых ситуациях, векторы расположения или позы могут иметь меньше компонентов для представления позиции и ориентации, например, если одна или более компонент считаются фиксированными (например, если все объекты считаются находящимися на одной и той же высоте и уровне, четыре компоненты могут обеспечивать полное представление позы объекта).The combination of position and direction/orientation of an object in a field is commonly referred to as location or pose. Thus, a location or pose vector can contain six values/components, with each value/component expressing a separate characteristic of the position/position or orientation/direction of the corresponding object. Of course, in some situations, location or pose vectors may have fewer components to represent position and orientation, for example, if one or more components are considered fixed (for example, if all objects are considered to be at the same height and level, four components can provide complete representation of the object's pose).
Один из наиболее сложных проблем состоит в эффективном представлении сцены таким образом, чтобы обеспечивать достаточно информации для генерации пригодной точки обзора изображения достаточно высокого качества, в то же время позволяя легко передавать, сохранять, адаптировать и/или обрабатывать представление.One of the most difficult problems is to efficiently represent a scene in such a way as to provide enough information to generate a usable viewpoint of an image of sufficient quality, while still allowing the presentation to be easily transmitted, stored, adapted and/or processed.
Один используемый подход состоит в обеспечении всенаправленного изображения для данной позиции обзора, причем всенаправленное изображение обеспечивает, например, визуальную информацию в виде сферы или полусферы с центром в соответствующей позиции обзора, где на сферу наложено изображение, которое отражает визуальную характеристику сцены в соответствующем направлении обзора. Во многих приложениях, вместо этого подхода вид представляется в виде текстуры сферического объекта, окружающего точку обзора, причем текстура альтернативно отображается в трехмерную структуру на основе многоугольников, например, обычно куб, расположенный вокруг точки обзора. В подобных случаях, всенаправленный вид из данной точки обзора является, соответственно, текстурой, отображаемой в куб, расположенный вокруг точки обзора. При генерации изображения, соответствующего конкретному направлению обзора для зрителя, находящегося в точке обзора, система генерации изображения может просто отображать надлежащие части куба для данного окна обзора в соответствующее изображение.One approach used is to provide an omnidirectional image for a given viewing position, where the omnidirectional image provides, for example, visual information in the form of a sphere or hemisphere centered on the corresponding viewing position, where the sphere is overlaid with an image that reflects the visual characteristic of the scene in the corresponding viewing direction. In many applications, instead of this approach, the view is represented as a texture of a spherical object surrounding the viewpoint, with the texture alternatively mapped to a polygon-based 3D structure, such as typically a cube, located around the viewpoint. In such cases, the omnidirectional view from a given viewpoint is, respectively, a texture mapped to a cube around the viewpoint. When generating an image corresponding to a particular view direction for a viewer at the viewpoint, the image generation system may simply map the appropriate portions of the cube for that view window into the appropriate image.
Однако, в то время как такой подход во многих вариантах осуществления может обеспечивать преимущество, он может не быть оптимальным во всех сценариях и может страдать некоторыми недостатками. Например, он может не всегда обеспечивать оптимальное качество изображения, и, в частности, обработка текстуры, отображаемой на разные стороны куба, может приводить к образованию артефактов.However, while such an approach may provide an advantage in many embodiments, it may not be optimal in all scenarios and may suffer from some disadvantages. For example, it may not always provide optimal image quality, and in particular, processing a texture mapped to different sides of a cube may lead to artifacts.
Поэтому требуется усовершенствованный подход к генерации представления трехмерного изображения сцены. В частности, требуется подход, который позволяет улучшить работу, повысить гибкость, облегчить реализацию, облегчить работу, снизить сложность, снизить потребность в ресурсах и/или повысить производительность. Therefore, an improved approach to generating a representation of a three-dimensional image of a scene is required. In particular, an approach is needed that improves performance, enhances flexibility, facilitates implementation, facilitates operation, reduces complexity, reduces resource requirements, and/or improves performance.
СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
Соответственно, задача изобретения состоит в ослаблении, смягчении или устранении одного или более из вышеупомянутых недостатков по отдельности или в любой комбинации.Accordingly, it is an object of the invention to alleviate, mitigate or eliminate one or more of the aforementioned disadvantages, individually or in any combination.
В соответствии с аспектом изобретения, предусмотрено устройство генерации мозаичного представления трехмерного изображения сцены, содержащее: приемник для приема мозаичного представления трехмерного изображения сцены из первой точки обзора, причем мозаичное представление трехмерного изображения содержит множество соединенных между собой мозаичных элементов, причем каждый мозаичный элемент содержит карту глубины и текстурную карту, представляющие окно обзора сцены из первой точки обзора, и мозаичные элементы образуют мозаичную картину; первый процессор для определения соседних граничных областей в по меньшей мере первом мозаичном элементе и во втором мозаичном элементе в соответствии с мозаичной картиной, причем первый мозаичный элемент и второй мозаичный элемент являются соседними мозаичными элементами; второй процессор для изменения по меньшей мере первого значения глубины первой граничной области первого мозаичного элемента в соответствии с по меньшей мере вторым значением глубины во второй граничной области второго мозаичного элемента таким образом, что разность между первым значением глубины и вторым значением глубины уменьшается для по меньшей мере некоторых значений из первого значения глубины и второго значения глубины, причем первая граничная область и вторая граничная область являются соседними граничными областями.According to an aspect of the invention, there is provided a device for generating a 3D scene tile representation of a scene, comprising: a receiver for receiving a 3D scene tile representation from a first viewpoint, the 3D image tile representation comprising a plurality of interconnected tiles, each tile containing a depth map and a texture map representing the viewport of the scene from the first viewpoint, and the tiles form a tiled picture; a first processor for determining adjacent boundary regions in at least the first tile and the second tile according to the tile pattern, the first tile and the second tile being adjacent tiles; a second processor for changing at least the first depth value of the first boundary region of the first tile in accordance with at least a second depth value in the second boundary region of the second tile such that the difference between the first depth value and the second depth value decreases for at least some values from the first depth value and the second depth value, wherein the first boundary region and the second boundary region are adjacent boundary regions.
Изобретение может обеспечивать повышенную производительность во многих сценариях и может, например, обеспечивать представление трехмерного изображения, которое можно эффективно передавать, сохранять и обрабатывать. Изобретение во многих сценариях может, в частности, обеспечивать подход низкой сложности для генерации представления трехмерного изображения, которое может часто обеспечивать представление более низкой скорости передачи данных для данного качества изображения, и которое может дополнительно поддерживать, например, гибкое и частичное распределение данных, которое может позволять, например, удаленным клиентам принимать данные и локально генерировать изображения, представляющие сцену из разных точек и направлений обзора. Подход, в частности, может обеспечивать высокоэффективное восприятие виртуальной реальности, где, например, удаленный клиент виртуальной реальности может гибко снабжаться надлежащие данные, где и когда это необходимо.The invention may provide improved performance in many scenarios and may, for example, provide a 3D image representation that can be efficiently transferred, stored and processed. The invention in many scenarios may in particular provide a low complexity approach for generating a 3D image representation which may often provide a lower bit rate representation for a given image quality, and which may further support, for example, flexible and partial data distribution which may allow, for example, remote clients to receive data and locally generate images representing the scene from different viewpoints and directions. The approach, in particular, can provide a highly efficient virtual reality experience where, for example, a remote virtual reality client can be flexibly provided with appropriate data where and when needed.
Приемник может принимать входное мозаичное представление трехмерного изображения и из него генерировать выходное мозаичное представление трехмерного изображения путем изменения по меньшей мере первого значения глубины, и обычно большое количество граничных значений глубины мозаичный элемент.The receiver may receive an input 3D tile and from there generate an output 3D tile by changing at least the first depth value, and typically a large number of depth boundary values, of the tile.
Во многих сценариях подход может обеспечивать повышенное качество изображения и, в частности, может уменьшать артефакты и неточности. Подход может отражать понимание, что ошибки и артефакты могут, в частности, возникать для точек обзора, перекрывающих разные мозаичные элементы, и что такие ошибки и артефакты часто могут происходить из несогласованностей между значениями глубины в граничных зонах разных мозаичных элементов, например, могут происходить из потерьного кодирования и декодирования, которое обычно осуществляется на картах глубины. Во многих сценариях подход может уменьшать, или даже устранять, многие такие артефакты и ошибки. Во многих сценариях подход может обеспечивать более плавное пользовательское восприятие, где переходами между мозаичными элементами незаметны.In many scenarios, the approach can provide improved image quality and, in particular, can reduce artifacts and inaccuracies. The approach may reflect the understanding that errors and artifacts can in particular occur for viewpoints that overlap different tiles, and that such errors and artifacts can often result from inconsistencies between depth values at the boundary zones of different tiles, for example, can come from lossy encoding and decoding, which is usually done on depth maps. In many scenarios, the approach can reduce, or even eliminate, many of these artifacts and errors. In many scenarios, the approach can provide a smoother user experience where transitions between tiles are not visible.
Во многих вариантах осуществления представление трехмерного изображения сцены можно рассматривать как трехмерная модель по меньшей мере, части сцены.In many embodiments, a 3D representation of a scene can be viewed as a 3D model of at least a portion of the scene.
Во многих вариантах осуществления второй процессор может быть выполнен с возможностью ограничения разности между первым значением глубины и вторым значением глубины путем изменения первого значения глубины таким образом, что разность между первым значением глубины и вторым значением глубины ограничивается для всех возможных значений первой глубины. В частности, во многих вариантах осуществления второй процессор может быть выполнен с возможностью изменения первого значения глубины таким образом, что разность между первым значением глубины и вторым значением глубины не превышает порог.In many embodiments, the second processor may be configured to limit the difference between the first depth value and the second depth value by changing the first depth value such that the difference between the first depth value and the second depth value is limited for all possible first depth values. In particular, in many embodiments, the second processor may be configured to change the first depth value such that the difference between the first depth value and the second depth value does not exceed a threshold.
Изменение вторым процессором может изменять значение первого значения глубины только для некоторых значений первого значения глубины и второго значения глубины. Для некоторых значений первого значения глубины и второго значения глубины, первое значение глубины может не изменяться, т.е. измененное значение глубины может быть равно первоначальному значению глубины. Например, если первое и второе значения глубины равны, первое значение глубины может не изменяться вторым процессором.The change by the second processor may change the value of the first depth value for only some of the values of the first depth value and the second depth value. For some values of the first depth value and the second depth value, the first depth value may not change, i.e. the modified depth value may be equal to the original depth value. For example, if the first and second depth values are equal, the first depth value may not be changed by the second processor.
Во многих вариантах осуществления мозаичная картина может представлять собой заранее определенную/ заранее заданную мозаичную картину. Мозаичная картина не является плоской. В частности, мозаичная картина может быть трехмерной и может проходить во всех трех измерениях. Мозаичные элементы и мозаичная картина могут образовывать трехмерную структуру.In many embodiments, the tile pattern may be a predetermined/predefined tile pattern. The mosaic picture is not flat. In particular, the mosaic pattern may be three-dimensional and may take place in all three dimensions. The mosaic elements and the mosaic pattern can form a three-dimensional structure.
Каждое значение глубины может соответствовать пикселю глубины в (обычно) прямоугольной или, в частности, квадратной, карте глубины, т.е. каждое значение глубины может быть значением пикселя глубины в соответствующей пиксельной позиции в соответствующей карте глубины.Each depth value may correspond to a depth pixel in a (usually) rectangular, or in particular square, depth map, i.e. each depth value may be a depth pixel value at a corresponding pixel position in the corresponding depth map.
Устройство может быть выполнено с возможностью изменения множества первых значений глубины, например, в частности, всех значений глубины в первой граничной области. В частности, подход может повторяться для множества пикселей глубины и, возможно, для каждого пикселя глубины, в первой граничной области. The device can be configured to change a plurality of first depth values, for example, in particular all depth values in the first boundary region. In particular, the approach may be repeated for a plurality of depth pixels, and possibly for each depth pixel, in the first boundary region.
Первое и второе значения глубины можно выбирать как значения глубины, соответствующие одному и тому же направлению обзора из первой точки обзора. Первое и второе значения глубины можно выбирать таким образом, что разность между направлением/вектором обзора из первой точки обзора к первому значению глубины и направлением/вектором обзора из первой точки обзора ко второму значению глубины ниже порога. Например, может потребоваться, чтобы угол обзора между векторами обзора из первой точки обзора в позиции, соответственно, для первого и второго значения глубины был меньше порога или был наименьшим для любой пары значений глубины в первом мозаичном элементе и втором мозаичном элементе.The first and second depth values may be selected as depth values corresponding to the same viewing direction from the first viewpoint. The first and second depth values may be selected such that the difference between the direction/view vector from the first viewpoint to the first depth value and the direction/view vector from the first viewpoint to the second depth value is below a threshold. For example, the viewing angle between view vectors from the first viewpoint at position, respectively, for the first and second depth values may be required to be less than a threshold, or to be the smallest for any pair of depth values in the first tile and second tile.
Во многих вариантах осуществления, второе значение глубины может быть значением глубины для пикселя глубины во второй области, ближайшего к пикселю глубины для первого значения глубины.In many embodiments, the second depth value may be the depth value for the depth pixel in the second region closest to the depth pixel for the first depth value.
Соединенные между собой мозаичные элементы могут иметь общую границу с одним и обычно более другими соединенными между собой мозаичными элементами. Соединенные между собой мозаичные элементы могут для мозаичной картины обеспечивать непрерывное покрытие для окна обзора, где все соединенные между собой мозаичные элементы обеспечивают подокно обзора, покрывающее подобласть/ область полного окна обзора. Полное окно обзора обычно может быть большим, например, в форме четвертьсферы, полусферы или даже полной сферы.The interconnected tiles may have a common border with one and usually more other interconnected tiles. The interconnected tiles may, for a tile pattern, provide a continuous view-window coverage, where all interconnected tiles provide a view sub-window covering a sub-area/area of the full view-window. The full view window can typically be large, such as a quarter sphere, a hemisphere, or even a full sphere.
Соседние граничные области могут быть областями двух мозаичных элементов, где области совместно используют границу между двумя мозаичными элементами. Первая и вторая граничные области могут, соответственно, совместно использовать границу между первым и вторым мозаичными элементами, и могут, в частности, соединять/ касаться границы или одна или обе могут содержать границу (в случае перекрывающихся мозаичных элементов). Adjacent border regions may be regions of two tiles, where the regions share a border between the two tiles. The first and second boundary regions may respectively share a boundary between the first and second tiles, and may in particular connect/touch the boundary, or one or both may contain a boundary (in the case of overlapping tiles).
В соответствии с необязательным признаком изобретения, второй процессор выполнен с возможностью установления первого значения глубины и второго значения глубины на одно и то же значение.In accordance with an optional feature of the invention, the second processor is configured to set the first depth value and the second depth value to the same value.
Благодаря этому, низкая сложность и низкая потребность в ресурсах позволяет добиться высокой производительности при высоком качестве. В частности, это позволяет бороться с артефактами, ошибками и дефектами, обусловленными рассогласованием значений глубины разных мозаичных элементов, например, вследствие артефактов кодирования или декодирования. Это, в частности, обеспечивает точную, согласованную и надежную генерацию 3D сетки на основании карт глубины.Due to this, low complexity and low resource requirements allow for high performance with high quality. In particular, this makes it possible to deal with artifacts, errors, and defects caused by mismatch between the depth values of different tiles, for example, due to encoding or decoding artifacts. This, in particular, provides accurate, consistent and reliable 3D mesh generation based on depth maps.
В соответствии с необязательным признаком изобретения, одно и то же значение является средним значением первого значения глубины и второго значения глубины.According to an optional feature of the invention, the same value is the average of the first depth value and the second depth value.
Благодаря этому, низкая сложность и низкая потребность в ресурсах позволяет добиться высокой производительности при высоком качестве. Кроме того, тогда как это предположительно приводит к отклонениям глубины (от первоначальной глубины), которые больше, чем, например, для усреднения глубины, это может обеспечивать улучшенную поддержку для асимметричного обеспечения мозаичных элементов представления трехмерного изображения. Например, это облегчает и снижает вычислительную нагрузку для подхода, в котором только подмножество мозаичных элементов динамически обновляется, и некоторые из мозаичных элементов не изменяются.Due to this, low complexity and low resource requirements allow for high performance with high quality. Also, while this is expected to result in depth deviations (from the original depth) that are greater than for example depth averaging, this may provide improved support for asymmetric tiling of a 3D image. For example, this facilitates and reduces the computational burden for an approach in which only a subset of the tiles are dynamically updated and some of the tiles do not change.
В соответствии с необязательным признаком изобретения, второй процессор выполнен с возможностью установления первого значения глубины на второе значение глубины.In accordance with an optional feature of the invention, the second processor is configured to set the first depth value to the second depth value.
Благодаря этому, низкая сложность и низкая потребность в ресурсах позволяет добиться высокой производительности при высоком качестве. В частности, тогда как это предположительно приводит к отклонениям глубины (от первоначальной глубины), которые больше, чем, например, для усреднения глубины, это может обеспечивать улучшенную поддержку для асимметричного обеспечения мозаичных элементов представления трехмерного изображения. Например, это облегчает и снижает вычислительную нагрузку для подхода, в котором только подмножество мозаичных элементов динамически обновляется и некоторые из мозаичных элементов не изменяются.Due to this, low complexity and low resource requirements allow for high performance with high quality. In particular, while this is expected to result in depth deviations (from the original depth) that are greater than, for example, depth averaging, this may provide improved support for asymmetric tiling of a 3D image. For example, this facilitates and reduces the computational burden for an approach in which only a subset of the tiles are dynamically updated and some of the tiles do not change.
Устройство может налагать граничные условия для карт глубины, например, карты глубины первого мозаичного элемента, на основании свойств глубины карт глубины соседних мозаичных элементов, например, карты глубины второго мозаичного элемента. Подход может, например, налагать граничные условия на новый мозаичный элемент таким образом, что это будет согласовываться и совпадать с существующими соседними мозаичными элементами без необходимости в обработке (например, фильтрации).The device may impose boundary conditions on depth maps, eg, the depth map of the first tile, based on depth properties of the depth maps of neighboring tiles, eg, the depth map of the second tile. The approach may, for example, impose boundary conditions on the new tile in such a way that it will match and match existing neighboring tiles without the need for processing (eg, filtering).
В соответствии с необязательным признаком изобретения, устройство дополнительно содержит генератор сеток для генерации трехмерной сетки из карт глубины мозаичных элементов.In accordance with an optional feature of the invention, the apparatus further comprises a grid generator for generating a three-dimensional grid from tile depth maps.
Подход дает возможность генерировать улучшенную трехмерную сетку для сцены на основании карт глубины мозаичных элементов. В частности, опасность несогласованностей и, в частности, дырок в сетке вокруг границ мозаичного элемента можно существенно снижать или даже устранять во многих сценариях.The approach makes it possible to generate an improved 3D mesh for the scene based on tile depth maps. In particular, the risk of inconsistencies, and in particular mesh holes around tile boundaries, can be significantly reduced or even eliminated in many scenarios.
Подход допускает улучшенное преобразование или переход от представления на основе изображения сцены к геометрическому, пространственному представлению сцены трехмерной сеткой.The approach allows for an improved transformation or transition from a representation based on a scene image to a geometric, spatial representation of the scene by a 3D grid.
В соответствии с необязательным признаком изобретения, генератор сеток выполнен с возможностью выбора подмножества значений глубины первой граничной области для использования при генерации трехмерной сетки; и второй процессор выполнен с возможностью изменения значений глубины первой граничной области только если они принадлежат подмножеству значений глубины.In accordance with an optional feature of the invention, the mesh generator is configured to select a subset of the depth values of the first boundary region for use in generating a 3D mesh; and the second processor is configured to change the depth values of the first boundary region only if they belong to a subset of the depth values.
Снижения сложности и объема используемых вычислительных ресурсов можно добиться не в ущерб качеству. Подход может обеспечивать улучшение согласованности и соответствия между представлением мозаичными элементами и сгенерированным из него сеточным представлением. Reducing the complexity and amount of computing resources used can be achieved without sacrificing quality. The approach may provide improved consistency and fit between the tiled representation and the grid representation generated from it.
В соответствии с необязательным признаком изобретения, второй процессор выполнен с возможностью применения пространственного фильтра к карте глубины первого мозаичного элемента после изменения первого значения глубины.In accordance with an optional feature of the invention, the second processor is configured to apply a spatial filter to the depth map of the first tile after changing the first depth value.
Это позволяет повышать качество и, в частности, улучшать согласованность между измененными граничными областями и другими областями мозаичных элементов. Применение пространственного фильтра может ограничиваться только значениями глубины карты глубины первого мозаичного элемента.This makes it possible to improve the quality and, in particular, to improve the consistency between the modified border regions and other regions of the tiles. The application of the spatial filter can be limited only by the depth values of the depth map of the first tile.
В соответствии с необязательным признаком изобретения, устройство дополнительно содержит коммуникатор удаленного источника, выполненный с возможностью приема мозаичных элементов для мозаичного представления трехмерного изображения от удаленного источника, и локальное хранилище для хранения мозаичных элементов для мозаичного представления трехмерного изображения; и приемник выполнен с возможностью извлечения по меньшей мере второго значения глубины из локального хранилища в случае приема первого мозаичного элемента от приемника удаленного источника.According to an optional feature of the invention, the apparatus further comprises a remote source communicator configured to receive 3D tile tiles from a remote source, and local storage for storing 3D tile tiles; and the receiver is configured to retrieve at least the second depth value from local storage in case of receiving the first tile from the remote source receiver.
Подход может обеспечивать эффективную поддержку динамического распределения представлений сцены, например, для приложения виртуальной реальности. Например, подход позволяют существенно сузить полосу, передавая только мозаичные элементы, которые были изменены, позволяя эффективно объединять их с ранее принятыми локально сохраненными мозаичными элементами, или, например, заранее определенными или заранее заданными номинальными мозаичными элементами, представляющими статичную часть сцены.The approach can provide efficient support for dynamic distribution of scene representations, for example, for a virtual reality application. For example, the approach can significantly narrow the bandwidth by passing only tiles that have been changed, allowing them to be efficiently combined with previously received locally stored tiles, or, for example, predefined or predefined nominal tiles representing a static part of the scene.
Локальное хранилище может быть выполнено с возможностью хранения мозаичных элементов для мозаичного представления трехмерного изображения, ранее принятого от удаленного источника.The local storage may be configured to store tiles for a tiled representation of a 3D image previously received from a remote source.
В соответствии с необязательным признаком изобретения, локальное хранилище выполнено с возможностью хранения карты глубины или сетки для первого мозаичного элемента после изменения первого значения глубины.According to an optional feature of the invention, local storage is configured to store a depth map or grid for the first tile after the first depth value has changed.
Это обеспечивает эффективный подход, который может снижать, например, требования к связи для многих приложений. Это позволяет постепенно обновлять локально сохраненное представление сцены, обеспечивая согласованность между новыми и предыдущими мозаичными элементами.This provides an efficient approach that can reduce, for example, communication requirements for many applications. This allows the locally stored representation of the scene to be incrementally updated, ensuring consistency between new and previous tiles.
В соответствии с необязательным признаком изобретения, устройство дополнительно содержит пользовательский интерфейс для определения текущего направления обзора; и при этом коммуникатор удаленного источника выполнен с возможностью передачи указания текущего направления обзора на удаленный источник; и при этом первый мозаичный элемент принимается согласно указанию.In accordance with an optional feature of the invention, the device further comprises a user interface for determining the current viewing direction; and wherein the remote source communicator is configured to transmit an indication of the current viewing direction to the remote source; and wherein the first tile is received as directed.
Подход может, например, обеспечивать очень эффективную систему клиент-сервер для обеспечения, например, восприятия виртуальной реальности.The approach may, for example, provide a very efficient client-server system for providing, for example, a virtual reality experience.
В соответствии с необязательным признаком изобретения, локальное хранилище выполнено с возможностью хранения сетки для сохраненных мозаичных элементов, и генератор сеток выполнен с возможностью добавления краевой вершины в сохраненную сетку для второго мозаичного элемента при обнаружении, что мера разности превышает порог, при этом мера разности указывает разность глубин между граничным значением глубины первого мозаичного элемента и соответствующим граничным значением глубины сохраненной сетки для второго мозаичного элемента.In accordance with an optional feature of the invention, the local storage is configured to store a grid for the stored tiles, and the mesh generator is configured to add an edge vertex to the stored grid for the second tile when it detects that the difference measure exceeds a threshold, where the difference measure indicates the difference depths between the depth limit of the first tile and the corresponding depth limit of the saved mesh for the second tile.
Это позволяет обеспечивать повышенную производительность во многих вариантах осуществления.This allows for improved performance in many embodiments.
В соответствии с необязательным признаком изобретения, второй процессор выполнен с возможностью определения первого значения глубины в соответствии только с ближайшим значением глубины каждого мозаичного элемента, соседствующего с первым мозаичным элементом в позиции первого значения глубины.In accordance with an optional feature of the invention, the second processor is configured to determine the first depth value according to only the nearest depth value of each tile adjacent to the first tile at the position of the first depth value.
Это обеспечивает несложный, но весьма эффективный и преимущественный подход с высокой производительностью в большинстве сценариев и для многих приложений. This provides a simple yet highly effective and advantageous approach with high performance in most scenarios and for many applications.
В соответствии с необязательным признаком изобретения, каждый мозаичный элемент является плоским многоугольником, и множество соединенных между собой мозаичных элементов образует трехмерную структуру.In accordance with an optional feature of the invention, each tile is a planar polygon, and a plurality of interconnected tilings form a three-dimensional structure.
Это обеспечивает несложный, но весьма эффективный и преимущественный подход с высокой производительностью в большинстве сценариев и для многих приложений. This provides a simple yet highly effective and advantageous approach with high performance in most scenarios and for many applications.
В соответствии с аспектом изобретения, предусмотрен способ генерации представления трехмерного изображения сцены, содержащий: прием мозаичного представления трехмерного изображения сцены из первой точки обзора, причем мозаичное представление трехмерного изображения содержит множество соединенных между собой мозаичных элементов, причем каждый мозаичный элемент содержит карту глубины и текстурную карту, представляющие окно обзора сцены из первой точки обзора, и мозаичные элементы образуют мозаичную картину; определение соседних граничных областей в по меньшей мере первом мозаичном элементе и во втором мозаичном элементе в соответствии с мозаичной картиной, причем первый мозаичный элемент и второй мозаичный элемент являются соседними мозаичными элементами; изменение по меньшей мере первое значение глубины первой граничной области первого мозаичного элемента в соответствии с по меньшей мере вторым значением глубины во второй граничной области второго мозаичного элемента таким образом, что разность между первым значением глубины и вторым значением глубины уменьшается для по меньшей мере некоторых значений из первого значения глубины и второго значения глубины, причем первая граничная область и вторая граничная область являются соседними граничными областями.According to an aspect of the invention, there is provided a method for generating a representation of a three-dimensional image of a scene, comprising: receiving a mosaic representation of a three-dimensional image of a scene from a first viewpoint, wherein the mosaic representation of the three-dimensional image contains a plurality of interconnected tiles, each tiles containing a depth map and a texture map , representing the viewport of the scene from the first viewpoint, and the tiles form a tiled picture; determining adjacent boundary regions in at least the first tile and the second tile according to the tile pattern, the first tile and the second tile being adjacent tiles; changing at least the first depth value of the first boundary region of the first tile in accordance with at least the second depth value in the second boundary region of the second tile such that the difference between the first depth value and the second depth value decreases for at least some of the values of a first depth value and a second depth value, wherein the first boundary region and the second boundary region are adjacent boundary regions.
Эти и другие аспекты, признаки и преимущества изобретения явствуют из описанных ниже вариантов осуществления.These and other aspects, features and advantages of the invention are apparent from the embodiments described below.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
Варианты осуществления изобретения будут описаны, исключительно в порядке примера, со ссылкой на чертежи, на которых:Embodiments of the invention will be described, by way of example only, with reference to the drawings, in which:
фиг. 1 демонстрирует пример клиентско-серверной системы виртуальной реальности, содержащей некоторые варианты осуществления изобретения;fig. 1 shows an example of a virtual reality client/server system incorporating some embodiments of the invention;
фиг. 2 демонстрирует пример элементов кубичного мозаичного представления сцены;fig. 2 shows an example of the elements of a cubic tiled scene representation;
фиг. 3 демонстрирует пример устройства генерации изображения в соответствии с некоторыми вариантами осуществления изобретения;fig. 3 shows an example of an image generating device in accordance with some embodiments of the invention;
фиг. 4 демонстрирует пример элементов кубичного мозаичного представления сцены;fig. 4 shows an example of the elements of a cubic tiled scene representation;
фиг. 5 демонстрирует пример элементов кубичного мозаичного представления сцены;fig. 5 shows an example of the elements of a cubic tiled scene representation;
фиг. 6 демонстрирует пример устройства генерации изображения в соответствии с некоторыми вариантами осуществления изобретения; иfig. 6 shows an example of an image generating device in accordance with some embodiments of the invention; and
фиг. 7 демонстрирует пример элементов кубичного мозаичного представления сцены.fig. 7 shows an example of the elements of a cubic tiled scene representation.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯDETAILED DESCRIPTION OF EMBODIMENTS
Нижеследующее описание посвящено вариантам осуществления изобретения, применимым к генерации изображений для приложения виртуальной реальности. Однако очевидно, что изобретение не ограничивается этим приложением, но может применяться, in например, во многих разных приложениях обработки и генерации изображений.The following description is devoted to embodiments of the invention applicable to generating images for a virtual reality application. However, it is clear that the invention is not limited to this application, but can be used, for example, in many different image processing and generation applications.
Фиг. 1 демонстрирует пример системы, которая может воплощать примеры и варианты принципа изобретения.Fig. 1 shows an example of a system that can embody examples and variations of the principle of the invention.
В примере, клиент в форме устройства 101 генерации изображения выполнен с возможностью генерации изображений, представляющих сцену из разных точек обзора, т.е. могут генерироваться изображения, соответствующие разным точкам обзора сцены. Устройство 101 генерации изображения выполнено с возможностью приема представления трехмерного изображения сцены и затем генерирования изображений из этого представления. В примере, представление трехмерного изображения принимается от удаленного сервера 103 через сеть 105, например, интернет. В конкретном примере, удаленный сервер 103 является сервером виртуальной реальности, который обеспечивает представление трехмерного изображения трехмерного окружения для устройства 101 генерации изображения для генерации видов, соответствующих, например, виртуальному перемещению пользователя в окружении.In the example, the client in the form of the
Во многих приложениях, представление трехмерного изображения может генерироваться из захвата сцены реального мира или окружения с использованием камер регистрации глубины. Это позволяет захватывать визуальные свойства совместно с трехмерной информацией. Для достаточного захвата сцены часто используется множество и часто большое количество камер. В некоторых приложениях, для обеспечения удовлетворительного захвата используется 10, 20 или еще больше камер.In many applications, a 3D image representation can be generated from a capture of a real world scene or environment using depth cameras. This allows visual properties to be captured along with 3D information. Many and often a large number of cameras are often used to adequately capture a scene. In some applications, 10, 20, or even more cameras are used to provide satisfactory capture.
Представление виртуальных данных сцены является критическим фактором в обеспечении преимущественного пользовательского восприятия. Необходимо, чтобы данные, описывающие сцену, обеспечивали точное представление как визуальных свойств, так и пространственных свойств. В то же время, важно уменьшать объем данных, необходимых для представления сцены, поскольку это во многих приложениях это является ограничивающим фактором для достижимого качества. The presentation of virtual scene data is a critical factor in providing a superior user experience. It is necessary that the data describing the scene provide an accurate representation of both visual properties and spatial properties. At the same time, it is important to reduce the amount of data required to represent a scene, as this is the limiting factor for the quality that can be achieved in many applications.
Кроме того, преобразование из захватов камер регистрации глубины в представление данных окружения/ сцены часто бывает очень сложным и может вносить ошибки или артефакты. Например, в некоторых приложениях, захваченные данные могут использоваться для разработки трехмерной модели сцены реального мира. Затем обзорные изображения для пользователя, получающего трехмерное восприятие виртуальной реальности, может генерироваться путем оценивания модели из конкретной точки обзора. В других приложениях, изображения для конкретных точек обзора или точки обзора могут непосредственно генерироваться из захваченных изображений и информации глубины, например, путем выбора одного или более из ближайших захваченных изображений и осуществления сдвига точки обзора в соответствии с желаемой точкой обзора, или, в ряде случаев, непосредственно используя захваченные изображения. In addition, the conversion from depth camera captures to environment/scene representations is often very complex and can introduce errors or artifacts. For example, in some applications, the captured data can be used to develop a 3D model of a real world scene. Then, overview images for a user receiving a 3D virtual reality experience may be generated by evaluating the model from a particular viewpoint. In other applications, images for specific viewpoints or viewpoints may be directly generated from captured images and depth information, for example, by selecting one or more of the nearest captured images and performing a viewpoint shift according to the desired viewpoint, or, in some cases directly using the captured images.
В данном случае, сцена представляется в области изображений множеством изображений, а не трехмерной моделью. Однако каждое изображение дополнительно снабжается картами глубины, которые обеспечивают информацию глубины для объектов в изображениях. В частности, обеспечивается представление трехмерного изображения сцены, содержащее множество изображений и связанные карты глубины.In this case, the scene is represented in the image area by a plurality of images rather than a 3D model. However, each image is additionally provided with depth maps that provide depth information for objects in the images. In particular, a 3D representation of a scene is provided, comprising a plurality of images and associated depth maps.
В частности, в системе, показанной на фиг. 1, мозаичное представление трехмерного изображения сцены из данной первой точки обзора используется (по меньшей мере частично) для представления сцены. Для данной точки обзора, обеспечивается представление, в котором множество соединенных между собой мозаичных элементов представляет сцену, причем каждый мозаичный элемент содержит изображение/ текстурную карту, обеспечивающую информацию интенсивности света (обычно включающую в себя цвет). В частности, данное (большое) окно обзора из данной точки обзора делится на множество меньших подокон обзора, каждое из которых представлено мозаичным элементом. In particular, in the system shown in FIG. 1, a tiled representation of a 3D scene image from a given first viewpoint is used (at least in part) to represent the scene. For a given viewpoint, a view is provided in which a plurality of interconnected tiles represent a scene, with each tile containing an image/texture map providing light intensity information (typically including color). In particular, a given (large) viewport from a given viewpoint is divided into a plurality of smaller viewports, each of which is represented by a tile.
Таким образом, каждый из мозаичных элементов обеспечивает представление части сцены, причем мозаичные элементы совместно обеспечивают представление более крупной части сцены. Обычно мозаичные элементы соединяются между собой вдоль линий и соединений, причем существует отдельная граница между мозаичными элементами. Однако, в некоторых вариантах осуществления, отдельные мозаичные элементы могут иметь (обычно очень малое) перекрытие. Thus, each of the tiles provides a representation of a portion of the scene, with the tiles collectively providing a representation of a larger portion of the scene. Typically, tiles are connected to each other along lines and connections, and there is a separate border between the tiles. However, in some embodiments, individual tiles may have (usually very little) overlap.
Таким образом, для данного направления обзора из первой точки обзора, сцена будет представлена мозаичным элементом, представляющим подокно обзора, включающее в себя это направление обзора. В большинстве вариантов осуществления, существует прямое взаимно-однозначное соответствие между направлением обзора и одним мозаичным элементом, который содержит значимую информацию. Однако, как упомянуто, в ряде случаев может существовать малое перекрытие между мозаичными элементами и в этом случае может существовать потенциально более чем один мозаичный элемент, связанный с направлением обзора.Thus, for a given view direction from the first viewpoint, the scene will be represented by a tile representing a view pane including that view direction. In most embodiments, there is a direct one-to-one correspondence between the viewing direction and a single tile that contains meaningful information. However, as mentioned, in some cases there may be little overlap between tiles, in which case there may potentially be more than one tile associated with a viewing direction.
Мозаичные элементы совместно образуют мозаичную картину. Таким образом, большое окно обзора, представленное мозаичными элементами, делится на отдельные мозаичные элементы в соответствии с мозаичной картиной. Во многих вариантах осуществления, мозаичная картина может быть заранее определенной мозаичной картиной, которая известна как удаленному серверу 103, так и устройству 101 генерации изображения. В других вариантах осуществления, мозаичная картина может, например, динамически определяться удаленным сервером 103 и мозаичная картина может передаваться на устройство 101 генерации изображения. Мозаичная картина обычно непрерывно покрывает полное окно обзора, и, таким образом для каждого направления обзора в окне обзора, мозаичная картина будет иметь (по меньшей мере один) мозаичный элемент. Mosaic elements together form a mosaic picture. Thus, the large viewport represented by the tiles is divided into individual tiles according to the tiles pattern. In many embodiments, the tile pattern may be a predetermined tile pattern that is known to both the
Картина мозаичных элементов может, соответственно, формировать окно обзора в сценическом мире/системе координат причем каждый мозаичный элемент соответствует (меньшему или вспомогательному) окну обзора сцены. Другими словами, точки обзора мозаичных элементов могут совместно формировать комбинированное окно обзора для первой точки обзора. Мозаичные элементы могут обеспечивать непрерывное покрытие комбинированного окна обзора. Комбинированное окно обзора может полностью или частично окружать первую точку обзора. The pattern of tiles may accordingly form a viewport in the scene world/coordinate system, with each tile corresponding to a (smaller or subsidiary) viewport of the scene. In other words, the viewpoints of the tiles may collectively form a combined viewport for the first viewpoint. The tiles may provide continuous coverage of the combined view-window. The combined viewport may completely or partially surround the first viewpoint.
Соединенные между собой мозаичные элементы могут совместно использовать границы в сценическом мире /системе координат (в том числе перекрывающиеся границы). Во многих вариантах осуществления, каждый из двух соседних или смежных мозаичных элементов может представлять разные области сцены, причем два соседних или смежных мозаичных элемента совместно представляют единую непрерывную область (соответствующую двум комбинированным отдельным областям). Комбинация двух областей, представленных двумя соседними или смежными мозаичными элементами, может образовывать единую область. Каждый мозаичный элемент мозаичной картины может представлять окно обзора в другой области сцены, причем картина мозаичных элементов образован мозаичными элементами, представляющими окно обзора в непрерывной области сцены. Комбинация мозаичных элементов, соответствующих разным точкам обзора, в разные области сцены может образовывать комбинированное окно обзора в непрерывной области сцены. Непрерывной областью может быть область, соответствующая единой трехмерной форме в трехмерной сцене. Области сцены, представленные мозаичными элементами мозаичной картины, могут объединяться в единую трехмерную форму/область в сцене (например, в отличие от областей, объединяющихся в две или более отдельные формы, которые не касаются и не перекрываются).Tiles that are interconnected can share boundaries in the stage world/coordinate system (including overlapping boundaries). In many embodiments, two adjacent or adjacent tiles may each represent different areas of the scene, with two adjacent or adjacent tiles collectively representing a single continuous area (corresponding to the two combined individual areas). The combination of two regions represented by two adjacent or adjacent tiles may form a single region. Each tile of the tile picture may represent a viewport in a different area of the scene, the tile pattern being formed by tiles representing the viewport in a continuous area of the scene. The combination of tiles corresponding to different viewpoints in different areas of the scene may form a combined viewport in a continuous area of the scene. A continuous region may be an area corresponding to a single 3D shape in a 3D scene. Areas of a scene represented by tiles in a tiled picture may be merged into a single 3D shape/area in the scene (eg, as opposed to areas merged into two or more separate shapes that do not touch or overlap).
Каждый мозаичный элемент может содержать карту глубины и текстурную карту, представляющие проекцию сцены в окно обзора/ область (в системе координат сцены), соответствующую мозаичному элементу. Мозаичные элементы картины мозаичных элементов могут отражать проекцию сцены в окно обзора, соответствующее комбинации/ объединении точек обзора мозаичных элементов картины мозаичных элементов. Мозаичные элементы картины мозаичных элементов соответствуют точкам обзора для одной и той же точки обзора.Each tile may contain a depth map and a texture map representing a projection of the scene into the viewport/area (in scene coordinate system) corresponding to the tile. The tiles of the tile pattern may reflect a projection of the scene into a viewport corresponding to the combination/combination of viewpoints of the tiles of the tile pattern. The tiles of the picture of the tiles correspond to viewpoints for the same viewpoint.
Окно обзора для точки обзора может соответствовать области (или 3D поверхности) в сцене (системе координат), на которую может обеспечиваться проекция сцены из точки обзора. Точка обзора может быть видовой позой или, во многих вариантах осуществления, позицией обзора.The viewport for the viewpoint may correspond to an area (or 3D surface) in the scene (coordinate system) onto which the scene can be projected from the viewpoint. The viewpoint may be a viewpoint or, in many embodiments, a viewpoint.
Термин «точка обзора» может, например, рассматриваться для отражения точки отсчета для видов/ точек обзора и обычно рассматривается в соответствии с номинальным зрителем/ камерой сцены. Это часто рассматривается в соответствии с позицией, но также может включать в себя направленный аспект. Это в более общем случае можно рассматривать в соответствии с позой. Например, точка обзора может отражать позицию зрителя и направление его взгляда. Мозаичное представление сцены для такой точки обзора может, например, быть по существу полусферической структурой мозаичных элементов, центрированной в этом направлении (т.е. конкретное мозаичное представление может быть для конкретных позиции и направления). The term "viewpoint" can, for example, be considered to reflect the reference point for views/points of view and is usually considered in accordance with the nominal viewer/camera of the scene. This is often viewed according to position, but can also include a directional aspect. This can more generally be considered according to posture. For example, the viewpoint may reflect the position of the viewer and the direction of his gaze. The scene tile for such a viewpoint may, for example, be a substantially hemispherical tile pattern centered in that direction (ie, a particular tile may be for a particular position and direction).
Действительно, во многих практических варианты осуществления, представление мозаичными элементами может представлять только часть сцены, а не полное сферическое представление. Например, для кубичного представления, одна или более из сторон/ мозаичных элементов куба могут пропускаться. Таким образом, мозаичное представление для сцены из данной точки обзора может не только отражать позицию, где номинально находится зритель/камера, но и направление обзора (например, диапазон возможных направлений обзора).Indeed, in many practical embodiments, a tiled view may represent only a portion of a scene, rather than a complete spherical representation. For example, for a cube representation, one or more of the sides/tiles of the cube may be omitted. Thus, the tiling representation for a scene from a given viewpoint may not only reflect the position where the viewer/camera is nominally located, but also the direction of view (eg, the range of possible view directions).
Термин «окно обзора» может, например, рассматриваться в соответствии с областью или окном к сцене из данной точки обзора. Например, окно обзора можно рассматривать как поверхность, на которое проецируется часть сцены. The term "view-window" may, for example, be considered according to an area or window to the scene from a given viewpoint. For example, a viewport can be thought of as a surface onto which a portion of a scene is projected.
Помимо изображения интенсивности света/текстурной карты, каждый мозаичный элемент обеспечивает карту глубины, обеспечивающую информацию глубины для пикселей изображения интенсивности света/текстурной карты. Карта глубины может обычно содержать значения глубины, которые указывают расстояние от первой точки обзора до объекта в направлении обзора, соответствующем позиции значения глубины. Значение глубины может, например, увеличиваться с увеличением расстояния от точки обзора до объекта или может уменьшаться с увеличением расстояния от точки обзора до объекта. Значения глубины во многих вариантах осуществления может обеспечиваться как значения расхождения.In addition to the light intensity image/texture map, each tile provides a depth map providing depth information to the pixels of the light intensity image/texture map. The depth map may typically contain depth values that indicate the distance from the first viewpoint to the object in the view direction corresponding to the position of the depth value. The depth value may, for example, increase with increasing distance from the viewpoint to the object, or may decrease with increasing distance from the viewpoint to the object. Depth values in many embodiments may be provided as divergence values.
Обеспечение информации глубины и изображению (текстуры) может обеспечивать дополнительную информацию, допуская улучшенную обработку устройством 101 генерации изображения. В частности, это может позволять или облегчать или улучшать генерацию обзорных изображений для точек обзора, отличных от данной точки обзора, для которой обеспечивается представление трехмерного изображения.Providing depth and image information (texture) may provide additional information, allowing improved processing by the
Мозаичные элементы во многих вариантах осуществления являются плоскими многоугольниками, например, прямоугольниками (или часто квадратами), которые совместно образуют трехмерную структуру, т.е. плоские мозаичные элементы располагаются и ориентированы в трехмерном пространстве таким образом, что результирующая структура проходит в трех измерениях, а не просто проходит в плоскости. Полное окно обзора, обеспеченное мозаичным представлением трехмерного изображения, соответственно, является трехмерной структурой/окном обзора.The tiles in many embodiments are planar polygons, such as rectangles (or often squares), which together form a three-dimensional structure, i.e. the flat tiles are arranged and oriented in three-dimensional space such that the resulting structure extends in three dimensions rather than simply extending in a plane. The full viewport provided by the tiled representation of the 3D image is accordingly a 3D structure/viewport.
Во многих вариантах осуществления, трехмерное окно обзора может быть сферическим, т.е. существует мозаичный элемент для любого направления обзора из первой точки обзора. В частности, рассматривая сферу (соответствующую сферическому окну обзора), расположенную вокруг первой точки обзора и внутри структуры, образованной мозаичной картиной, линия из первой точки обзора и через любую точку на сфере будет проходить в позицию на мозаичном элементе. В некоторых вариантах осуществления, окно обзора может не покрывать всевозможные направления обзора, но могут потенциально покрывать только часть сферы, например, полусферу или четвертьсферу.In many embodiments, the 3D viewport may be spherical, ie. there is a tile for any view direction from the first viewpoint. In particular, considering a sphere (corresponding to a spherical viewport) located around the first viewpoint and within the structure formed by the tiled picture, a line from the first viewpoint and through any point on the sphere will pass to a position on the tile. In some embodiments, the viewport may not cover all possible viewing directions, but may potentially cover only a portion of a sphere, such as a hemisphere or a quarter sphere.
Конкретным примером мозаичной картины является кубичной мозаичной картиной, например, известной из отображения куба. В кубичной мозаичной картине, шесть квадратных мозаичных элементов может образовывать шесть сторон куба, окружающего первую точку обзора. Таким образом, в таком примере, мозаичное представление трехмерного изображения может обеспечивать шесть квадратных мозаичных элементов, где каждый мозаичный элемент содержит текстурную карту и карту глубины. A specific example of a tiling pattern is a cubic tiling pattern, such as known from a cube mapping. In a cubic tile picture, six square tiles can form six sides of a cube surrounding the first viewpoint. Thus, in such an example, a tiled representation of a 3D image may provide six square tiles, where each tile contains a texture map and a depth map.
Мозаичные элементы часто может обеспечиваться как комбинированное плоское представление. Однако, когда мозаичные элементы образуют трехмерную структуру (куб), такое плоское представление будут по существу разделять по меньшей мере некоторые соседние мозаичные элементы. Плоское представление картины мозаичных элементов куба представлено на фиг. 2, где указаны плоские представления текстурных карт и карт глубин. Tiles can often be provided as a composite planar representation. However, when the tiles form a three-dimensional structure (cube), such a planar representation will be substantially shared by at least some adjacent tiles. A flat representation of the cube tiling pattern is shown in FIG. 2 for flat representations of texture maps and depth maps.
В системе, показанной на фиг. 1, устройство 101 генерации изображения может, соответственно, принимать входное мозаичное представление трехмерного изображения, например, кубичное представление, для сцены из данной первой точки обзора. Из этого входного мозаичного представления трехмерного изображения, затем устройство 101 генерации изображения может генерировать изображения, соответствующие конкретному направлению обзора из первой точки обзора, или действительно соответствующие конкретному направлению обзора из разных точек обзора. Устройство 101 генерации изображения, соответственно, в примере, выполнено с возможностью синтезировать изображения для разных точек обзора и направлений из мозаичного представления трехмерного изображения. Например, устройство 101 генерации изображения может выполнять приложение виртуальной реальности, которое генерирует изображения для разных точек обзора и направлений в ответ на пользовательский ввод, например, из гарнитуры виртуальной реальности.In the system shown in FIG. 1, the
Фиг. 3 демонстрирует пример устройства 101 генерации изображения, показанного на фиг. 1. Fig. 3 shows an example of the
Устройство 101 генерации изображения содержит приемник 301, который принимает входное мозаичное представление трехмерного изображения сцены из первой точки обзора. В примере, приемник 301 принимает входное мозаичное представление трехмерного изображения от удаленного сервера 103, и, таким образом, приемник 301 содержит пригодный сетевой интерфейс и функции для осуществления связи с удаленным сервером 103. Очевидно, что в других вариантах осуществления, входное мозаичное представление трехмерного изображения может приниматься от других внутренних или внешних источников, например, из локального хранилища или устройства чтения диска с данными.The
В примере устройство 101 генерации изображения дополнительно содержит генератор 303 изображений, который выполнен с возможностью генерации изображения из принятого мозаичного представления трехмерного изображения. Генератор 303 изображений, в частности, может быть выполнен с возможностью генерации изображения для точек обзора, отличных от первой точки обзора, для которой обеспечивается мозаичное представление трехмерного изображения.In the example, the
В конкретном примере, устройство 101 генерации изображения выполняет приложение виртуальной реальности и подключено к пользовательскому интерфейсу 305, которая может управлять позицией точки обзора и направлением обзора для которых генерируются обзорные изображения. In a specific example, the
В конкретном примере, устройство 101 генерации изображения является устройством виртуальной реальности, содержащим пользовательский интерфейс 305, который выполнен с возможностью приема пользовательского ввода, который может отражать желаемое перемещение и/или ориентацию в сцене виртуальной реальности. Например, пользователь может осуществлять навигацию по сцене виртуальной реальности с использованием джойстика и/или клавиатуры, или, например, ориентация вида может определяться из гарнитуры виртуальной реальности, носимой пользователем и содержащей пригодные датчики. Во многих вариантах осуществления, пользовательский интерфейс 305 может содержать функции для преобразования пользовательского ввода в желаемую точку обзора рендеризации, которая указывает позицию, из которой наблюдается сцена, и/или ориентацию вида от данной позиции обзора (точку обзора можно рассматривать в отношении указания позиции, указания ориентации или обоих, таким образом, указывая желаемый вид для пользователя). In a specific example, the
Очевидно, что в некоторых вариантах осуществления, множество видов может генерироваться для данной точки обзора рендеризации, или, в некоторых вариантах осуществления, множество точек обзора может генерироваться из одного и того же пользовательского ввода. Например, устройство виртуальной реальности может быть выполнено с возможностью генерации изображения, соответствующего виду правого глаза, и изображение, соответствующее виду левого глаза, таким образом, обеспечивая 3D эффект. Для краткости и наглядности, нижеследующее описание посвящено генерации одного изображения для данной точки обзора рендеризации.Obviously, in some embodiments, multiple views may be generated for a given rendering viewpoint, or, in some embodiments, multiple viewpoints may be generated from the same user input. For example, the virtual reality device may be configured to generate an image corresponding to the right eye view and an image corresponding to the left eye view, thus providing a 3D effect. For brevity and clarity, the following description focuses on generating a single image for a given render viewpoint.
Пользовательский интерфейс 305, в частности, может быть выполнен с возможностью генерации вектора обзора рендеризации, который указывает желаемую/целевую точку обзора рендеризации. Например, может генерироваться вектор обзора рендеризации, который содержит три компоненты/ значения, задающие ориентацию зрителя, например, параметры тангажа, рысканья и крена. Во многих вариантах осуществления, целевой вектор обзора может дополнительно или альтернативно содержать три значения, задающие трехмерную позицию в сцене, например, представленной значением x, y, z. Очевидно, что в некоторых вариантах осуществления, позицию и/или ориентацию можно представить менее, чем тремя значениями. Например, позиция может указываться расстоянием вдоль заранее определенного маршрута через сцену и, таким образом, позиция может указываться единым значением. Аналогично, можно предположить, что тангаж и рысканье постоянными, и ориентация может задаваться только значением крена. The
Сгенерированный вектор обзора рендеризации поступает на генератор 303 изображений, который выполнен с возможностью генерации изображения для точки обзора, выраженной вектором обзора рендеризации. Генерация изображения зависит от мозаичного представления трехмерного изображения. The generated render view vector is provided to an
В некоторых вариантах осуществления, сгенерированное изображение может поступать на возбудитель дисплея для приведение в действие (возбуждения) пригодного дисплея, например, дисплея гарнитуры виртуальной реальности для правого или левого глаза. Гарнитура виртуальной реальности может дополнительно содержать датчики, которые обеспечивают пользовательский ввод в пользовательский интерфейс 305. In some embodiments, the generated image may be provided to a display driver to actuate (drive) a suitable display, such as a right or left eye virtual reality headset display. The virtual reality headset may further comprise sensors that provide user input to the
Таким образом, устройство виртуальной реальности может генерировать изображения, представляющие виды из конкретных точек обзора в виртуальной сцене, представленной мозаичным представлением трехмерного изображения. Точка обзора определяется пользовательским вводом, что позволяет пользователю обычным образом перемещаться и осматриваться в виртуальной сцене.Thus, the virtual reality device can generate images representing views from specific viewpoints in a virtual scene represented by a tiled representation of a 3D image. The viewpoint is defined by user input, allowing the user to move and look around in the virtual scene in the usual way.
Изображения, генерируемые генератором 303 изображений, рендеризуются на основании принятого входного мозаичного представления трехмерного изображения. Однако устройство 101 генерации изображения непосредственно не использует входное мозаичное представление трехмерного изображения, но изменяет его до осуществления синтеза изображения. Таким образом, рендеризация осуществляется на основании измененного мозаичного представления трехмерного изображения, сгенерированного путем изменения по меньшей мере одного значения глубины входного мозаичного представления трехмерного изображения.The images generated by the
В конкретном примере, генератор 303 изображений непосредственно не использует информацию карты глубины, но вместо этого преобразует его в формат сетки. Хотя генерация трехмерной сетки из карты глубины, с последующей обработкой/синтезом изображений на основании сетки, является необязательным признаком, она может обеспечивать преимущественную операцию и/или реализацию во многих вариантах осуществления.In a specific example, the
Действительно, в то время как карты глубины часто образуют естественный трехмерный формат получения и сжатия, большинство программ и устройств 3D, используемых, например, для воспроизведения виртуальной реальности использует трехмерное представление на основе сетки, состоящее из трехмерных координат вершин и краев. Поэтому преобразование карты глубины в сетку является важной операцией для многих автономных и оперативных алгоритмов (реального времени).Indeed, while depth maps often form a natural 3D acquisition and compression format, most 3D software and devices used for virtual reality playback, for example, use a grid-based 3D representation consisting of 3D vertex and edge coordinates. Therefore, the transformation of a depth map into a grid is an important operation for many offline and online algorithms (real time).
В примере, показанном на фиг. 3, устройство 101 генерации изображения, соответственно, содержит генератор 307 сеток, который выполнен с возможностью генерации трехмерной сетки на основании карт глубины мозаичных элементов. Таким образом, на генератор 303 изображений поступают текстурные карты мозаичных элементов от приемника 301 и сгенерированная сетка от генератора 307 сеток. Специалисту в данной области техники известны многие разные алгоритмы для синтезирования изображений из текстурных карт и сеток, и очевидно, что любой из них может использоваться без отхода от изобретения.In the example shown in FIG. 3, the
В многих графических приложениях сцена представляется комбинацией текстурной карты и трехмерной сетки, и поэтому специализированное оборудование часто используется для генерации изображений из таких представлений. Особенно эффективный подход во многих сценариях состоит в представлении объектов изображения, или действительно сцены целиком, многоугольной сеткой, где множественные многоугольники соединены их общими краями или углами (вершинами), которые задаются трехмерными позициями. Комбинированная трехмерная многоугольная сетка, соответственно, обеспечивает эффективную модель трехмерных объектов, включающих в себя, возможно, трехмерное представление всего изображения. Многоугольная сетка часто является треугольной сеткой, образованной треугольниками, имеющими общие углы, заданные в трехмерном пространстве. In many graphics applications, a scene is represented by a combination of a texture map and a 3D mesh, and therefore specialized hardware is often used to generate images from such representations. A particularly effective approach in many scenarios is to represent image objects, or indeed the entire scene, in a polygonal mesh, where multiple polygons are connected by their common edges or corners (vertices), which are defined by 3D positions. The combined 3D polygon mesh accordingly provides an efficient model of 3D objects, possibly including a 3D representation of the entire image. A polygonal mesh is often a triangular mesh formed by triangles having common angles defined in 3D space.
На практике, карты глубины, соответственно, часто преобразуются в трехмерную сетку. Трехмерная сетка является общеизвестным форматом графики, который поддерживается большинством аппаратных возбудителей (например, на основе OpenGL).In practice, depth maps are accordingly often converted to a 3D grid. The 3D mesh is a well-known graphics format that is supported by most hardware drivers (eg based on OpenGL).
В порядке примера, стереокамера может записывать изображение сцены из данной точки обзора. Для каждого пикселя, оценка расхождения может осуществляться для оценивания расстояния до объекта, представленного пикселем. Это может осуществляться для каждого пикселя таким образом, чтобы обеспечивать трехмерную позицию x, y, z для каждого пикселя. Затем эти позиции можно использовать как вершины треугольной сетки, где два треугольника формируются для каждой группы 2×2 пикселей. Поскольку это может приводить к формированию большого количества треугольников, процесс может включать в себя объединение нескольких начальных треугольников в более крупные треугольники (или в некоторых сценариях в более общем случае в более крупные многоугольники). Это будет уменьшать количество треугольников, а также снижать пространственное разрешение сетки. Соответственно, гранулярность сетки обычно зависит от изменений глубины, и более крупные многоугольники преимущественно образуются в более плоских зонах.By way of example, a stereo camera may record an image of a scene from a given viewpoint. For each pixel, a discrepancy estimation may be performed to estimate the distance to the object represented by the pixel. This can be done for each pixel in such a way as to provide a three-dimensional x, y, z position for each pixel. These positions can then be used as the vertices of a triangular grid, where two triangles are formed for each group of 2x2 pixels. Since this can result in the formation of a large number of triangles, the process may include combining several initial triangles into larger triangles (or in some scenarios more generally into larger polygons). This will reduce the number of triangles and also reduce the spatial resolution of the grid. Accordingly, mesh granularity typically depends on depth changes, and larger polygons are predominantly formed in flatter zones.
Каждая вершина дополнительно связана со значением интенсивности света текстурной карты. Текстурная карта, по существу, обеспечивает интенсивность света/цвета в сцене для объекта в пиксельной позиции вершины. Обычно изображение интенсивности света/текстурная карта обеспечивается совместно с сеткой, каждая вершина которой содержит данные, представляющие позицию x, y, z вершины и данные u, v, идентифицирующие связанную позицию в текстурной карте, т.е. указывающие на интенсивность света в позиции x, y, z, захваченную в текстурной карте.Each vertex is additionally associated with a texture map light intensity value. A texture map essentially provides the intensity of light/color in a scene for an object at a vertex pixel position. Typically, a light intensity image/texture map is provided in conjunction with a mesh, each vertex of which contains data representing the x, y, z position of the vertex and u, v data identifying the associated position in the texture map, i. indicating the intensity of the light at the x, y, z position captured in the texture map.
В таких представлениях, многоугольная сетка используется для обеспечения информации о трехмерной геометрии объектов, тогда как текстура обычно обеспечивается как отдельная структура данных. В частности, текстура часто обеспечивается как отдельная двухмерная карта, которая, согласно алгоритму обработки, может накладываться на трехмерную геометрию.In such representations, a polygonal mesh is used to provide information about the 3D geometry of objects, while a texture is usually provided as a separate data structure. In particular, the texture is often provided as a separate 2D map which, according to the processing algorithm, can be overlaid on the 3D geometry.
Использование треугольных сеток особенно пригодно для обработки и манипуляции согласно алгоритмов компьютерной графики, и многие эффективные программные и аппаратные решения разработаны и доступны на рынке. Существенная вычислительная эффективность во многих системах достигается алгоритмом, совместно обрабатывающим отдельные вершины для множества многоугольников, а не обрабатывающим каждый многоугольник по отдельности. Например, для типичной треугольной сетки, отдельная вершина часто является общей для нескольких (часто 3-8) треугольников. Обработка единственной вершины может, соответственно, применяться к относительно большому количеству треугольников, что существенно уменьшает количество точек в изображении или другом обрабатываемом объекте.The use of triangular meshes is particularly suitable for processing and manipulation according to computer graphics algorithms, and many effective software and hardware solutions have been developed and are available on the market. Substantial computational efficiency in many systems is achieved by an algorithm that jointly processes individual vertices for multiple polygons rather than processing each polygon individually. For example, for a typical triangular mesh, a single vertex is often shared by several (often 3-8) triangles. Single vertex processing can accordingly be applied to a relatively large number of triangles, which significantly reduces the number of points in an image or other object being processed.
В устройстве 101 генерации изображения, показанном на фиг. 3, генератор 307 сеток генерирует сетки на основании принятых карт глубины мозаичных элементов и, соответственно, осуществляет преобразование от представления на основе изображения к геометрическому представлению (сетку можно рассматривать как геометрическая трехмерная структура).In the
Однако, вместо того, чтобы непосредственно использовать принятые карты глубины мозаичных элементов, устройство 101 генерации изображения выполнено с возможностью его обработки и изменения некоторых значений глубины в картах глубины.However, instead of directly using the received tile depth maps, the
В частности, устройство 101 генерации изображения содержит первый процессор 311, который подключен к приемнику 301 и который выполнен с возможностью определения соседних граничных областей в по меньшей мере первом мозаичном элементе и во втором мозаичном элементе в соответствии с мозаичной картиной, причем первый мозаичный элемент и второй мозаичный элемент являются соседними мозаичными элементами. Первый процессор 311 может, на основании мозаичной картины, идентифицировать граничную или краевую область в одном мозаичном элементе и соответствующую граничную или краевую область в другом мозаичном элементе, причем две граничные области являются соседними, и, в частности две граничные области либо касаются/соединяются, либо перекрываются. В частности, для краевого пикселя первого мозаичного элемента, по меньшей мере один соседний/ смежный пиксель будет находиться в другом мозаичном элементе. Краевой пиксель и соседний/ смежный пиксель, соответственно, принадлежат граничным областям двух разных карт глубины/ мозаичных элементов. Поскольку мозаичная картина известна устройству 101 генерации изображения (например, будучи заранее определенной или передаваемой от удаленного сервера 103), первый процессор 311 способен определять, какие мозаичные элементы соединены/ соседствуют, и также, какие пиксели в другом мозаичном элементе/карте глубины являются соседними и соседствуют с данным краевым пикселем/значением глубины в текущем мозаичном элементе/ карте глубины. In particular, the
Во многих вариантах осуществления, первый процессор 311 может быть выполнен с возможностью определения первой граничной области первого мозаичного элемента как всех краевых пикселей/значений глубины, которые находятся на краю первой карты глубины/мозаичного элемента и для которых ближайший/ соседний пиксель (в по меньшей мере одной генерации) находится во второй карте глубины/мозаичном элементе. В некоторых вариантах осуществления, вторая граничная область (т.е. граничная область во втором мозаичном элементе) может определяться как множество соседних пикселей во втором мозаичном элементе. In many embodiments, the
Первый процессор 311 подключен ко второму процессору 309, который подключен к приемнику 301 и который принимает от него карты глубины. Кроме того, он подключен к первому процессору 311 и принимает от него информацию первой и второй граничных областей.The
Второй процессор 309 выполнен с возможностью обработки по меньшей мере некоторых из пикселей первой граничной области, т.е. выполнен с возможностью изменения значений глубины идентифицированной граничной области в первом мозаичном элементе. Значения глубины изменяются в зависимости от значений глубины во второй граничной области, т.е. измененные значения глубины в граничной области первого мозаичного элемента зависят от значений глубины в соседней граничной области второго мозаичного элемента. Таким образом, по меньшей мере первое значение глубины первой граничной области первого мозаичного элемента изменяется на основании по меньшей мере второго значения глубины во второй граничной области второго мозаичного элемента (где первая граничная область и вторая граничная область являются соседними граничными областями). Измененное первое значение глубины может определяться как функция второго значения глубины, т.е. является функцией по меньшей мере одного значения глубины в другом мозаичном элементе мозаичного представления. Очевидно, что для некоторых значений из первого и второго значений глубины, измененное значение глубины может быть равно первоначальному значению глубины.The
Во многих вариантах осуществления, процесс повторяется для по меньшей мере всех краевых пикселей по меньшей мере одного мозаичного элемента. Дополнительно, во многих вариантах осуществления, обычно измененное значение глубины зависит только от одного значения глубины в соседнем мозаичном элементе (и, возможно, от первоначального значения глубины, т.е. входного значения изменяемого пикселя). В частности, во многих вариантах осуществления, значение глубины для данного краевого пикселя может определяться как функция только ближайшего значения глубины в другом мозаичном элементе и, возможно, первоначального значения глубины.In many embodiments, the process is repeated for at least all edge pixels of at least one tile. Additionally, in many embodiments, typically the changed depth value depends on only one depth value in the adjacent tile (and possibly on the original depth value, i.e., the input value of the pixel being changed). In particular, in many embodiments, the depth value for a given edge pixel may be determined as a function of only the nearest depth value in another tile and possibly the original depth value.
Таким образом, хотя во многих вариантах осуществления действительно возможно рассматривать множество значений глубины в соседнем (смежном) мозаичном элементе (например, путем усреднения количества близких значений глубины в соседнем мозаичном элементе), второй процессор 309 во многих вариантах осуществления будет рассматривать по одному значению глубины в каждом мозаичном элементе. Дополнительно, для большинства изменяемых значений глубины, только один соседний мозаичный элемент рассматривается и, таким образом, рассматривается только одно значение глубины из другого мозаичного элемента. Однако для некоторых значений глубины, например, углового значения глубины для кубичного мозаичного представления, второй процессор 309 может рассматривать одно значение глубины в каждом из соседних мозаичных элементов. Это может, например, минимизировать сумму квадратов разностей между измененным значением глубины и соответствующими угловыми значениями глубины в двух мозаичных элементах. В порядке другого примера, все три значения глубины могут устанавливаться на одно и то же значение, например, на среднее значение глубины.Thus, while it is indeed possible in many embodiments to consider multiple depth values in an adjacent (adjacent) tile (e.g., by averaging the number of close depth values in an adjacent tile), the
Значение глубины, которое рассматривается в другом мозаичном элементе, когда рассматривается только одно значение глубины в этом мозаичном элементе, в частности может быть ближайшим значением глубины. Таким образом, выбирается значение глубины, ближайшее к изменяемому значению глубины. Ближайшим значением глубины может быть значение глубины, для которого расстояние в сцене между позициями в точках обзора для значений глубины минимально. The depth value that is considered in another tile, when only one depth value in that tile is considered, in particular may be the nearest depth value. Thus, the depth value closest to the depth value being changed is selected. The nearest depth value can be the depth value for which the distance in the scene between positions at viewpoints for depth values is minimal.
Таким образом, второй процессор 309 изменяет одну или более из карт глубины, принятых во входном мозаичном представлении трехмерного изображения, таким образом, генерируя измененное мозаичное представление трехмерного изображения. Затем результирующее множество карт глубины поступает на генератор 307 сеток, который генерирует сетку на основании этих измененных карт глубины. Thus, the
Подход может обеспечивать существенное повышение производительности во многих вариантах осуществления и повышение согласованности между разными мозаичными элементами во многих сценариях. В частности, подход может обеспечивать существенное улучшение генерации сетки во многих вариантах осуществления, где, в частности, более согласованная сетка может генерироваться при существенном снижении опасности, например, дырок в сгенерированной глубинной сетке. The approach can provide significant performance improvements in many embodiments and improved consistency across different tiles in many scenarios. In particular, the approach can provide a significant improvement in mesh generation in many embodiments, where, in particular, a more consistent mesh can be generated while significantly reducing the danger of, for example, holes in the generated depth mesh.
Далее различные аспекты описанного подхода будут описаны со ссылкой на конкретный пример кубичного мозаичного представления, но очевидно, что это лишь пример.In the following, various aspects of the described approach will be described with reference to a specific example of a cubic tiling, but it is clear that this is only an example.
Реализации изобретения можно проиллюстрировать на примере кубичного мозаичного представления на фиг. 2. Обычно каждая сторона кубичного представления соответствует отдельной перспективной проекции и часто генерируется отдельно от других сторон куба. Например, кубичное мозаичное представление может генерироваться с использованием шести камер регистрации глубины с поворотами 90°. Для согласования глубинного представления на сторонах куба, предпочтительно сначала преобразовывать его в представление расстояния/диапазона таким образом, чтобы карта глубины кодировала для каждого мозаичного элемента расстояние между центром куба и точкой объекта. Для ограничения битовой глубины, это расстояние/диапазон в метрах может кодироваться как постоянная, деленная на расстояние, поскольку обратное отношение приводит к более компактному кодированию. После этого преобразования и этапа квантования, карту глубины можно дополнительно подвергать пространственному сжатию c потерями для каждого мозаичного элемента. Это обычно приводит к изменению глубины между разными сторонами куба.Implementations of the invention can be illustrated by the cubic tiling of FIG. 2. Typically, each side of a cube representation corresponds to a separate perspective projection and is often generated separately from the other sides of the cube. For example, a cubic tile representation can be generated using six depth cameras with 90° rotations. To match the depth representation on the sides of the cube, it is preferable to first convert it to a distance/range representation such that the depth map encodes for each tile the distance between the center of the cube and the point of the object. To limit the bit depth, this distance/range in meters can be encoded as a constant divided by the distance, since the inverse ratio results in a more compact encoding. After this transformation and quantization step, the depth map can be further subjected to lossy spatial compression for each tile. This usually results in a change in depth between different sides of the cube.
В порядке альтернативы, разные мозаичные элементы могут объединяться в единую плоскую структуру, например, показанную на фиг. 2 для кодирования. Алгоритмы сжатия изображения и видео вносят ошибки квантования и кодирования и очевидно, что это может вносить конкретные краевые несогласованности в мозаичных представлениях, где кодирование не перекрывает разные мозаичные элементы.Alternatively, different tiles may be combined into a single planar structure, such as shown in FIG. 2 for encoding. Image and video compression algorithms introduce quantization and coding errors and it is clear that this can introduce specific edge inconsistencies in tiled representations where the coding does not overlap different tiles.
Эти эффекты, в частности, преобразуют при кодировании единой плоской картины мозаичных элементов. Действительно, в подобных случаях преобразование трех измерений к двум измерениям приводит к зазорам и разрывам в структуре. Например, для кубичного представления, трехмерная топология разрывается на сторонах куба, как показано на фиг. 2. В результате, артефакты кодирования будут оказывать значительное влияние и часто становятся видимыми. В частности, поскольку трехмерные точки на краю одной стороны куба не будут согласованы (в отношении трехмерной позиции) с трехмерными точками на краю другой стороны куба, результирующая сетка также может оказываться несогласованной и потенциально может иметь зазоры. These effects, in particular, transform when encoding a single flat pattern of tiles. Indeed, in such cases, the transformation of three dimensions to two dimensions leads to gaps and gaps in the structure. For example, for a cubic representation, the 3D topology is broken at the sides of the cube, as shown in FIG. 2. As a result, encoding artifacts will have a significant impact and often become visible. In particular, since the 3D points on the edge of one side of the cube will not be consistent (in terms of 3D position) with the 3D points on the edge of the other side of the cube, the resulting mesh may also be inconsistent and potentially have gaps.
Фиг. 4 иллюстрирует возможность возникновения ошибок сетки, когда используется кубичный мозаичный формат. Пример демонстрирует кубичное мозаичное представление глубины, закодированной как шесть отдельных мозаичных элементов. Стрелки указывают, на каких краях мозаичных элементов возможно возникновение ошибок сетки вследствие кодирования с потерями карт глубины.Fig. 4 illustrates the potential for mesh errors to occur when a cubic tiled format is used. The example demonstrates a cubic tiling representation of depth encoded as six individual tiles. The arrows indicate at which edges of the tiles the mesh errors are likely to occur due to lossy encoding of depth maps.
В подходе устройства 101 генерации изображения, показанного на фиг. 3, такие эффекты можно ослаблять или их можно избегать, ограничивая значения глубины на границе данного мозаичного элемента таким образом, чтобы они были очень близки или обычно равны значениям глубины на границе одного или более других мозаичных элементов. Это позволяет гарантировать, что построенная затем сетка является согласованной и не страдает ошибками сжатия по глубине.In the approach of the
Фиг. 5 демонстрирует пример сетки, сгенерированной путем формирования треугольников между всеми пикселями/ значениями глубины. В примере, положения пикселей карты глубины, которые становятся вершинами сетки, указаны кружками. Обычно, правильная решетка положений пикселей используется (например, каждый второй или четвертый пиксель). Подмножество всех таких положений пикселей показан на фиг. 5. В примере, мозаичный элемент D up имеет границу A мозаичного элемента, и мозаичный элемент D front имеет границу B мозаичного элемента и пиксели на каждой границе проиндексированы как D A,i и DB, j j соответственно. В примере, границы A и B являются границами двух разных мозаичных элементов и потерьное сжатие изображения карт глубины может делать эти образцы несогласованными, т.е. соответствующие значения глубины в разных мозаичных элементах могут оказываться разными, что будет приводить к ошибкам в сетке, поскольку треугольники, сгенерированные для мозаичного элемента Dup, не будут выравниваться со сгенерированными для Dfront. Однако, устанавливая значения глубины из соответствующих граничных положений на одно и то же значение глубины до генерации сетки, создается согласованная сетка.Fig. 5 shows an example of a grid generated by forming triangles between all pixels/depth values. In the example, the positions of the depth map pixels that become mesh vertices are indicated by circles. Typically, the correct grid of pixel positions is used (eg, every second or fourth pixel). A subset of all such pixel positions is shown in FIG. 5. In the example, the tile D up has a tile border A and the tile D front has a tile border B and the pixels on each border are indexed as D A,i and DB, j j respectively. In the example, boundaries A and B are the boundaries of two different tiles, and lossy image compression of depth maps can make these samples inconsistent, i.e. the corresponding depth values in different tiles may be different, which will lead to errors in the mesh, since the triangles generated for the D up tile will not align with those generated for D front . However, by setting the depth values from the respective boundary positions to the same depth value prior to mesh generation, a consistent mesh is created.
Очевидно, что в разных вариантах осуществления, для определения значений глубины могут использоваться разные функции. Однако, во многих вариантах осуществления, значения глубины могут определяться таким образом, что соседние краевые значения глубины в двух соседних мозаичных элементах одинаковы, или по меньшей мере таким образом, что разность между ними уменьшается. В частности, если первое значение глубины и второе значение глубины являются краевыми значениями, оба будут устанавливаться на одно и то же значение. В некоторых вариантах осуществления, первое значение глубины может устанавливаться равным второму значению, но во многих вариантах осуществления значение глубины определяется как функция первого и второго значений глубины (и, возможно, других значений глубины или параметров), и затем первое и второе значения глубины устанавливается на это значение, т.е. оба значения изменяются. Obviously, in different embodiments, different functions can be used to determine the depth values. However, in many embodiments, the depth values may be determined such that adjacent edge depth values in two adjacent tiles are the same, or at least such that the difference between them is reduced. In particular, if the first depth value and the second depth value are edge values, both will be set to the same value. In some embodiments, the first depth value may be set to the second value, but in many embodiments, the depth value is determined as a function of the first and second depth values (and possibly other depth values or parameters) and then the first and second depth values are set to this value, i.e. both values change.
В некоторых вариантах осуществления, два значения глубины могут не устанавливаться на одно и то же значение, но могут, например, устанавливаться на значения, более близкие друг к другу, т.е. таким образом, что разность между ними уменьшается. В порядке примера, первое значение глубины может устанавливаться равным среднему значению глубины для первого и второго значения глубины, подлежащих изменению первого значения глубины, не изменяющегося более чем на данную величину. Таким образом, изменение значения глубины ограничивается максимальным уровнем. Это может приводить в некоторых сценариях, например, к изменению значений глубины, по-прежнему приводящих к зазору в сгенерированной сетке, но потенциально такой зазор существенно уменьшается. Однако, в то же время, гарантируется, что значения глубины в граничных областях не изменяются чрезмерно по отношению к значениям глубины в первом мозаичном элементе за пределами граничной области. Это позволяет обеспечивать более согласованную карту глубины в мозаичном элементе. Очевидно, что конкретная используемая функция может зависеть от предпочтений и требований отдельного варианта осуществления и, в частности, может зависеть от желаемого компромисса между согласованностью по глубине в мозаичном элементе и согласованностью по глубине между мозаичными элементами.In some embodiments, the two depth values may not be set to the same value, but may, for example, be set to values that are closer to each other, ie. so that the difference between them is reduced. By way of example, the first depth value may be set equal to the average depth value of the first and second depth values subject to change of the first depth value not changing by more than a given amount. Thus, the change in the depth value is limited to the maximum level. This can result in some scenarios, such as changing the depth values, still resulting in a gap in the generated mesh, but potentially the gap is significantly reduced. However, at the same time, it is guaranteed that the depth values in the boundary regions do not change excessively with respect to the depth values in the first tile outside the boundary region. This allows for a more consistent depth map within the tile. Obviously, the particular function used may depend on the preferences and requirements of the individual embodiment and, in particular, may depend on the desired compromise between depth consistency within a tile and depth consistency between tiles.
Установление одинакового значения глубины краевых пикселей может обеспечивать высокий уровень согласованности между треугольниками сетки, сгенерированными из двух разных карт глубины, и будет, соответственно, обеспечивать согласованную сетку. Setting the edge pixel depth to the same value can provide a high level of consistency between mesh triangles generated from two different depth maps and will therefore provide a consistent mesh.
В некоторых вариантах осуществления, значение, применяемое к первому и второму значениям глубины, может определяться как среднее значение двух значений глубины. Например, в примере, приведенном на фиг. 5, значения глубины на границе мозаичных элементов может определяться как:In some embodiments, the value applied to the first and second depth values may be determined as the average of the two depth values. For example, in the example shown in FIG. 5, the depth values at the border of tiles can be defined as:
Таким образом, новое значение глубины устанавливается на среднее значение глубины, которое одинаково для соответствующих граничных положений пикселей. Теперь, когда сетка строится с использованием координат и значения глубины пикселя, соответствующие граничные пиксели из границ A и B окажутся в одном и том же 3D положении. В примере, операция ограничения глубины производит усреднение по двум образцам, но очевидно, что можно использовать больше образцов. В углах, усреднение обычно осуществляется по трем значениям глубины (в случае кубичной карты) или четырем значениям глубины (для других мозаичных форматов, где встречаются четыре мозаичные элементы). Другими словами, среднее значение может определяться усреднением по значениям глубины ближайших пикселей в каждом мозаичном элементе, с которым соседствует текущий пиксель. Thus, the new depth value is set to the average depth value, which is the same for the respective pixel boundary positions. Now, when the mesh is built using the coordinates and pixel depth value, the corresponding border pixels from borders A and B will end up in the same 3D position. In the example, the depth limit operation averages over two samples, but obviously more samples could be used. In corners, averaging is typically done over three depths (in the case of a cube map) or four depths (for other tiling formats where four tiles meet). In other words, the average value may be determined by averaging over the depth values of the nearest pixels in each tile adjacent to the current pixel.
В порядке альтернативы, может быть установлена равной среднему количеству положений образцов вокруг позиции j. Кроме того, можно немного отодвигать положения пикселей от границы.As an alternative, can be set equal to the average number of sample positions around position j. In addition, you can slightly move the position of the pixels from the border.
В примере, второй процессор 309, соответственно, выполнен с возможностью определения первого значения глубины на основании только значения глубины ближайшего пикселя каждого мозаичного элемента, соседствующего с первым мозаичным элементом в позиции первого значения глубины.In the example, the
Во многих вариантах осуществления, второй процессор 309 может быть дополнительно выполнен с возможностью применения пространственного фильтра к карте глубины первого мозаичного элемента после изменения первого значения глубины.In many embodiments, the
Таким образом, после того, как второй процессор 309 изменяет значения глубины в граничных областях данного мозаичного элемента, он может применять пространственный фильтр к измененной карте глубины. Пространственный фильтр может, в частности, применяться ко всей карте глубины, включающей в себя как граничные области, так и внутренние области. Однако, в других вариантах осуществления, пространственный фильтр может применяться только к граничным областям и частям внутренних областей, соседствующих с граничными областями.Thus, after the
Изменение значений глубины в граничной(ых) области(ях) позволяет повышать согласованность между мозаичными элементами. Однако существует опасность уменьшения внутренней согласованности в карте глубины, и для обеспечения или увеличения такой согласованности можно использовать пространственную низкочастотную фильтрацию. Changing the depth values in the boundary(s) area(s) allows you to increase the consistency between tiles. However, there is a risk of reducing the internal consistency in the depth map, and spatial low-pass filtering can be used to provide or increase such consistency.
Например, для уменьшения опасности того, что изменение вносит новую несогласованность между граничными пикселями и пикселями внутри мозаичного элемента, но не на границе, может быть желательно пространственно фильтровать значения глубины строк и столбцов, которые лежат (непосредственно) внутри границы, благодаря чему они пространственно согласуются с новыми значениями глубины на границе. For example, to reduce the risk that a change introduces a new inconsistency between border pixels and pixels inside the tile but not on the border, it may be desirable to spatially filter the depth values of rows and columns that lie (immediately) inside the border so that they are spatially consistent. with new depth values at the boundary.
Во многих вариантах осуществления, такая пространственная фильтрация может не применяться к измененным значениям глубины. Например, краевые пиксели могут изменяться на основании значений глубины в других мозаичных элементах, и затем пространственный фильтр может применяться к пикселям, которые близки к краевым пикселям, но не включающим в себя их. Таким образом, краевые пиксели будут поддерживать свои значения, но вследствие фильтрации внутренних значений глубины, которые близки к краевым пикселям, они будут изменяться, чтобы лучше согласоваться с новыми значениями для краевых пикселей (ядро фильтрации для таких пикселей обычно включает в себя краевые пиксели). In many embodiments, such spatial filtering may not be applied to the changed depth values. For example, the edge pixels may change based on depth values in other tiles, and then a spatial filter may be applied to pixels that are close to, but not including, the edge pixels. Thus, the edge pixels will maintain their values, but due to the filtering of internal depth values that are close to the edge pixels, they will change to better match the new values for the edge pixels (the filter kernel for such pixels usually includes the edge pixels).
Во многих вариантах осуществления, генератор 307 сеток может быть выполнен с возможностью использовать только подмножество пикселей для генерации сетки, т.е. можно выбирать только подмножество пикселей в соответствии с вершинами многоугольников (обычно треугольников) сетки. Например, вершина может генерироваться только для каждого второго или каждого четвертого пикселя карты глубины. Такой подход часто применяется для генерации менее сложной сетки, которая обеспечивает снижение скорости передачи данных и требования к вычислительному ресурсу.In many embodiments, the
Во многих таких вариантах осуществления, генератор 307 сеток может быть выполнен с возможностью указания второму процессору 309, что для генерации сетки используются только подмножество значений глубины. В ответ, второй процессор 309 может изменять только значения глубины карты глубины/граничной области, которые используются для последующей генерации сетки. Это позволяет во многих вариантах осуществления существенно снижать сложность и использование вычислительного ресурса второго процессора 309.In many such embodiments, the
Такой подход может быть особенно пригоден в ситуациях, когда используются неправильные сетки. В частности, согласно вариантам осуществления, в которых используются правильные сетки, топология является фиксированной и независимой от динамических сеток, которые могут генерироваться, и, в частности, не зависит от сеток, сгенерированных для других мозаичных элементов. Поэтому второй процессор 309 может иметь заранее определенную информацию о том, какие значения глубины подлежат изменению.This approach can be especially useful in situations where the wrong grids are used. In particular, in embodiments that use regular meshes, the topology is fixed and independent of dynamic meshes that may be generated, and in particular independent of meshes generated for other tiles. Therefore, the
Если же используются неправильные сетки, подмножество значений глубины, которые фактически преобразуются в вершины сетки, будет изменяться, и в такой ситуации выбор подмножества значений глубины, подлежащих изменению, может базироваться на вершинах неправильной сетки. If incorrect meshes are used, however, the subset of depth values that are actually converted to mesh vertices will change, and in such a situation the choice of the subset of depth values to be changed may be based on the vertices of the incorrect mesh.
Например, генератор 307 сеток может, до любого изменения значений глубины, генерировать первую (внутреннюю) неправильную сетку только на основании значений глубины первого мозаичного элемента, т.е. он может генерировать первую начальную сетку для первого мозаичного элемента. Аналогично, генератор 307 сеток может, до любого изменения генерировать вторую (внутреннюю) неправильную сетку только на основании значений глубины второго мозаичного элемента, т.е. он может генерировать вторую начальную сетку для второго мозаичного элемента.For example, the
Для объединения этих двух неправильных сеток, генератор 307 сеток может идентифицировать все вершины, которые лежат вдоль границы между первым и вторым мозаичными элементами. Затем каждое значение глубины, соответствующее вершине либо первой, либо второй неправильной сетки, может включаться в подмножество, указанное вторым процессором 309. Затем второй процессор 309 может осуществлять изменение/ ограничение глубины, и, в частности, могут устанавливать значения глубины одинаковыми в двух мозаичных элементах. Затем результирующие значения глубины могут возвращаться на генератор 307 сеток, который может изменять значения глубины существующих вершин в сетках, а также добавить любые вершины (и соответствующие края), которые присутствуют только в одной сетке, в другую сетку. В результате, две результирующие неправильные сетки будут соответствовать точно вдоль линий границы между двумя мозаичными элементами и, таким образом, могут легко объединяться в единую сетку. To merge these two irregular meshes,
В предыдущем примере, удаленный сервер 103 генерировал и передавал мозаичное представление трехмерного изображения как единую комбинированную структуру. Однако, во многих вариантах осуществления, удаленный сервер 103 может быть выполнен с возможностью передачи только подмножества мозаичных элементов, и, в частности, только одного мозаичного элемента за раз. В таких вариантах осуществления, устройство 101 генерации изображения может быть выполнено с возможностью приема одного или подмножества мозаичных элементов и их объединения с мозаичными элементами от других источников, например, в частности, с другими мозаичными элементами, которые локально сохранены. Эти локально сохраненные мозаичные элементы могут быть мозаичными элементами, которые были ранее приняты от удаленного сервера 103 или потенциально могут быть, например, заранее определенными номинальными мозаичными элементами, представляющими заранее определенную номинальную сцену, которая затем динамически обновляется и адаптируется мозаичными элементами замены, принимаемыми от удаленного сервера 103.In the previous example, the
В таком варианте осуществления, устройство 101 генерации изображения может быть выполнено с возможностью использования соответствующего подхода для ограничения значений глубины вновь принятого мозаичного элемента.In such an embodiment, the
В порядке конкретного примера, устройство 101 генерации изображения может, как показано на фиг. 6, содержать коммуникатор 601 удаленного источника и локальное хранилище 603, подключенные к приемнику 301. В этом примере приемник 301 может, таким образом, извлекать мозаичные элементы мозаичного представления трехмерного изображения либо из локального хранилища 603, либо из коммуникатора 601 удаленного источника.By way of a specific example, the
В примере, локальное хранилище 603 содержит полное множество мозаичных элементов, соответствующее мозаичному представлению трехмерного изображения, и приемник 301 может быть выполнен с возможностью извлечения надлежащих мозаичных элементов в случае необходимости. Сохраненное множество мозаичных элементов может, в частности, содержать мозаичные элементы, ранее принятые от удаленного сервера 103. In an example,
Коммуникатор 601 удаленного источника может быть выполнен с возможностью приема единичного мозаичного элемента (или потенциально подмножества мозаичных элементов) от удаленного сервера 103. Новый мозаичный элемент может заменять собой существующий мозаичный элемент на данный момент хранящийся в локальном хранилище 603. The
Например, новый мозаичный элемент может приниматься в ответ на сообщение, передаваемое на удаленный сервер 103 от устройства 101 генерации изображения. Действительно, в конкретном примере пользовательский интерфейс 305 подключен к коммуникатору 601 удаленного источника и сообщает определенную на данный момент точку обзора (направление обзора и/или позицию) коммуникатору 601 удаленного источника. В ответ коммуникатор 601 удаленного источника передает указание точки обзора на удаленный сервер 103, который определяет, необходимо ли пригодное обновление любого из сохраненных мозаичных элементов. Например, если точка обзора соответствует направлению, которое долгое время не обновлялось, удаленный сервер 103 может принять решение передать новый мозаичный элемент замены. В других вариантах осуществления, удаленный сервер 103 может сам определить, что мозаичный элемент замены нужно передать, например, при обнаружении существенного динамического изменения в сцене. For example, a new tile may be received in response to a message sent to the
В примере, когда коммуникатор 601 удаленного источника принимает новый мозаичный элемент (часто это мозаичный элемент замены), он может извлекать сохраненные соседние мозаичные элементы и затем осуществлять ранее описанную операцию для принятого мозаичного элемента, например, для одного или более граничных пикселей/значений глубины принятого мозаичного элемента, может изменять значения глубины для обеспечения соответствия между новыми мозаичными элементами и сохраненными соседними мозаичными элементами. In an example, when the
Однако, во многих вариантах осуществления, значения глубины изменяются только для нового мозаичного элемента. Таким образом, вместо того, чтобы, например, определять среднее значение глубины и назначать его пикселям как новой принятой карты, так и сохраненной соседней карты глубины, второй процессор 309 может устанавливать значение глубины новой карты глубины равным соседнему значению глубины сохраненной карты глубины. Таким образом, карта глубины нового мозаичного элемента изменяется для согласования с локально сохраненными картами глубины, но без их изменения. Соответственно, любая обработка, уже осуществляемая на сохраненных картах глубины, не нуждается в поторении, например, нет необходимости повторно фильтровать эти карты глубины. Напротив, карта глубины нового мозаичного элемента изменяется и затем может использоваться с существующими картами глубины.However, in many embodiments, the depth values are only changed for the new tile. Thus, instead of, for example, determining an average depth value and assigning it to the pixels of both the new received map and the stored adjacent depth map, the
После этого изменения, принятая новая карта глубины может сохраняться в локальном хранилище, таким образом, обновляя локально сохраненное представление трехмерного изображения.After this change, the received new depth map may be stored in local storage, thus updating the locally stored representation of the 3D image.
Подход может обеспечивать очень эффективную систему, и, в частности, может уменьшать ширину полосы связи, поскольку только отдельные мозаичные элементы могут передаваться по мере необходимости. Дополнительно, опасность того, что такой новый мозаичный элемент приведет к снижению качества изображения и ошибкам или артефактам, может уменьшаться. Кроме того, вычислительный ресурс может оставаться низким, поскольку не требуется обработка или изменение сохраненных соседних карт глубины.The approach can provide a very efficient system, and in particular can reduce communication bandwidth since only individual tiles can be transmitted as needed. Additionally, the risk that such a new tile will result in reduced image quality and errors or artifacts may be reduced. In addition, the computational resource can remain low because no processing or modification of the stored adjacent depth maps is required.
Действительно, в некоторых вариантах осуществления, сетки могут генерироваться для сцены, и значения глубины других мозаичных элементов могут сохраняться не как явные карты глубины, а как сетки. В такой ситуации, сетка для данного мозаичного элемента обычно генерируется, чтобы иметь несколько вершин вдоль края или границы мозаичного элемента. Теперь глубину этих вершин можно использовать как значения глубины граничной области соседнего мозаичного элемента и, таким образом, значения глубины вновь принятого мозаичного элемента могут изменяться для согласования с граничными значениями глубины существующей сетки для соответствующего соседнего мозаичного элемента.Indeed, in some embodiments, meshes may be generated for the scene, and the depth values of other tiles may not be stored as explicit depth maps, but as meshes. In such a situation, the mesh for a given tile is usually generated to have multiple vertices along the edge or border of the tile. The depths of these vertices can now be used as the depth values of the boundary region of the adjacent tile, and thus the depth values of the newly received tile can be changed to match the depth bounds of the existing mesh for the corresponding adjacent tile.
Множество значений глубины в новой карте глубины, которые изменяются, можно дополнительно выбирать в ответ на сетку, и, в частности, для каждой вершины/значения глубины сетки, ограничивающей новый мозаичный элемент, соответствующее (ближайшее) значение глубины в новой карте глубины можно выбирать и устанавливать на то же значение, что и значение глубины вершина. Затем эти пиксели/значения глубины можно использовать в качестве вершин для многоугольников (обычно треугольников) сетки, где другие вершины выбираются в новом мозаичном элементе в соответствии с пригодным критерием выбора. The set of depth values in the new depth map that change can be further selected in response to the mesh, and in particular, for each vertex/depth value of the mesh bounding the new tile, the corresponding (closest) depth value in the new depth map can be selected and set to the same value as the vertex depth value. These pixels/depth values can then be used as vertices for the polygons (usually triangles) of the mesh, where other vertices are selected in the new tile according to a suitable selection criterion.
Таким образом, для нового мозаичного элемента генерируется сетка, согласующуюся с уже сгенерированными сетками сохраненных мозаичных элементов. Соответственно, эти соседние сетки не нуждаются в изменении и могут использоваться напрямую, таким образом, существенно снижая нагрузку обработки.Thus, a mesh is generated for the new tile that is consistent with the already generated meshes of the saved tiles. Accordingly, these neighboring grids do not need to be changed and can be used directly, thus greatly reducing the processing load.
Однако, в то время как такой подход может обеспечивать очень высокую производительность во многих вариантах осуществления, это в некоторых ситуациях может приводить к отклонениям глубины. В частности, во многих вариантах осуществления, граничные вершины соседнего мозаичного элемента могут находиться на некотором расстоянии друг от друга, например, вследствие того, что несколько меньших треугольников сетки объединяются в более крупную сетку в результате малого изменения глубины в этой области. Если же в данный момент принимается новый мозаичный элемент, имеющий довольно большое изменение глубины вдоль этой линии, прямая линия единого треугольника сетки не способен отражать это изменение глубины. В некоторых вариантах осуществления, второй процессор 309 может быть выполнен с возможностью обнаружения, что разность глубин между граничным значением глубины нового мозаичного элемента и соответствующим значением глубины многоугольника существующей сетки сохраненного соседнего мозаичного элемента превышает порог, и в этом случае он может добавлять новую граничную вершину. Эта новая граничная вершина будет образовывать основу многоугольников в сетке, которая генерируется для нового мозаичного элемента, но также будет вершиной для соседнего мозаичного элемента. Соответственно, в ранее сгенерированную сетку добавляется новая вершина, и соответствующий многоугольник существующей сетки делится на два многоугольника. Таким образом, один или более краев добавляется в существующую сетку между новой вершиной и одной или более существующими вершинами в существующей сетке для соседнего мозаичного элемента (количество краев, необходимых для разделения существующего многоугольника на меньшие многоугольники вследствие появления новой вершины будет зависеть от конкретной топологии). However, while this approach can provide very high performance in many embodiments, it can lead to depth deviations in some situations. In particular, in many embodiments, the boundary vertices of an adjacent tile may be some distance apart, for example, due to several smaller mesh triangles merging into a larger mesh as a result of a small change in depth in that area. If, however, a new tile is currently being received that has a fairly large change in depth along this line, the straight line of the single grid triangle is unable to reflect this change in depth. In some embodiments, the
В порядке конкретного примера, когда принимается новый мозаичный элемент глубины, во многих вариантах осуществления желательно объединять его с уже существующей сеткой. Эта ситуация представлена на фиг. 7. В этом примере, карты глубины соседних мозаичных элементов уже преобразованы в сетку, и теперь желательно создавать сетку для вновь прибывшего мозаичного элемента. Это может осуществляться путем анализа значений глубины на краю мозаичных элементов. Если новая карта глубины имеет краевое значение глубины (например, определяемое как кандидат в вершину вследствие внутренних изменений глубины в новом мозаичном элементе) с большой разностью с уже существующим краем треугольника в этой позиции, то создается новая вершина, и один или более треугольников, разделенных в соседнем мозаичном элементе, таким образом, создавая более детализированную сетку в этой области. As a specific example, when a new depth tile is received, in many embodiments it is desirable to merge it with an already existing mesh. This situation is shown in Fig. 7. In this example, the depth maps of neighboring tiles have already been meshed, and it is now desirable to mesh the newly arrived tile. This can be done by analyzing the depth values at the edge of the tiles. If the new depth map has a depth edge value (e.g., determined to be a vertex candidate due to internal depth changes in the new tile) with a large difference from an already existing triangle edge at that position, then a new vertex is created, and one or more triangles split at adjacent tile, thus creating a more detailed mesh in that area.
В противном случае, топология сетки соседних мозаичных элементов может использоваться напрямую, и сетка формируется внутри нового мозаичного элемента и с использованием существующих краевых вершин соседней сетки.Otherwise, the mesh topology of neighboring tiles can be used directly, and the mesh is formed within the new tile and using the existing edge vertices of the neighboring mesh.
Более сложный подход особенно пригоден для примеров использования неправильной сетки. В примере, показанном на фиг. 7, преобразование карты глубины в сетку для сохраненного мозаичного элемента основано на анализе изменения карты глубины и привело к образованию неправильной сетки. При создании сетки для нового мозаичного элемента, некоторые вершины не изменяются (закрашенные кружки). Однако, когда новая карта глубины указывает необходимость изменения модели сетки, устанавливается новая вершина. Это решение может базироваться на сравнении позиции кандидатов в вершины, сгенерированных из новой карты глубины на границе с соседними мозаичными элементами с существующей сеткой. Если разность по глубине или позиции слишком велика (указывая, что разность глубин между новой картой глубины и существующей сеткой слишком велика), то вводится новая вершина, и треугольники соседних мозаичных элементов обновляются.A more sophisticated approach is especially useful for examples of using the wrong grid. In the example shown in FIG. 7, the depth map-to-mesh conversion for the saved tile is based on the analysis of the change in the depth map and resulted in an incorrect mesh. When creating a mesh for a new tile, some vertices are not changed (solid circles). However, when the new depth map indicates the need to change the mesh model, a new vertex is set. This decision can be based on comparing the position of candidate vertices generated from the new depth map at the boundary with neighboring tiles with the existing mesh. If the depth or position difference is too large (indicating that the depth difference between the new depth map and the existing mesh is too large), then a new vertex is inserted and adjacent tile triangles are updated.
Очевидно, что хотя вышеприведенное описание посвящено генерации изображения на основании мозаичного представления трехмерного изображения, и, в частности генерации сетки из карт глубины, ни один из них не является существенным признаком. Действительно, генерация улучшенного мозаичного представления трехмерного изображения может иметь преимущество во многих разных приложениях и не ограничивается конкретным последующим использованием такого улучшенного мозаичного представления трехмерного изображения как описано здесь. Obviously, although the above description is about generating an image based on a tiled representation of a 3D image, and in particular generating a mesh from depth maps, neither is an essential feature. Indeed, generating improved 3D tiling may be advantageous in many different applications and is not limited to the specific subsequent use of such improved 3D tiling as described herein.
Вышеприведенные примеры сосредоточены на вариантах осуществления, в которых первое краевое значение глубины первой карты глубины первого мозаичного элемента изменяется на основании ближайшего краевого значения глубины во второй карте глубины второго мозаичного элемента. Однако очевидно, что во многих вариантах осуществления, первое краевое значение глубины может дополнительно или альтернативно изменяться на основании значения глубины во второй карте глубины, которое не является ближайшей к первому краевому значению глубины. В некоторых вариантах осуществления, первое краевое значение глубины может изменяться на основании множества значений глубины в граничной области второй карты глубины, включающего в себя значения глубины, которые не обязательно являются краевыми значениями глубины, и потенциально даже за исключением ближайшего краевого значения глубины. Например, первое краевое значение глубины может изменяться на основании множества значений глубины во второй карте, которая состоит из всех значений глубины, которые отличаются от первого краевого значения глубины менее, чем на данный порог.The above examples focus on embodiments in which the first depth edge of the first depth map of the first tile is changed based on the nearest depth edge in the second depth map of the second tile. However, it will be appreciated that in many embodiments, the first depth edge may additionally or alternatively be changed based on a depth value in the second depth map that is not closest to the first depth edge. In some embodiments, the first depth edge may vary based on a plurality of depth values in the boundary region of the second depth map, including depth values that are not necessarily depth edges, and potentially even excluding the nearest depth edge. For example, the first depth edge may vary based on a plurality of depth values in a second map that consists of all depth values that differ from the first depth edge by less than a given threshold.
Аналогично, очевидно, что первое значение глубины, т.е. изменяемое значение глубины, не обязано быть краевым значением глубины.Similarly, it is obvious that the first depth value, i.e. the depth value to be changed, does not have to be a depth edge value.
Очевидно, что выше для наглядности приведено описание вариантов осуществления изобретения со ссылкой на разные функциональные схемы, блоки и процессоры. Однако очевидно, что любое пригодное распределение функций между разными функциональными схемами, блоками или процессорами может использоваться без отхода от изобретения. Например, функции, проиллюстрированные как осуществляемые отдельными процессорами или контроллерами, могут осуществляться одним и тем же процессором или контроллером. Поэтому ссылки на конкретные функциональные блоки или схемы рассматриваются только как ссылки на подходящее средство для обеспечения описанных функций, а не как указание конкретной логической или физической структуры или организации.Obviously, for clarity, the above description of embodiments of the invention with reference to various functional circuits, blocks and processors. However, it is obvious that any suitable distribution of functions between different functional circuits, blocks or processors can be used without departing from the invention. For example, functions illustrated as being performed by separate processors or controllers may be performed by the same processor or controller. Therefore, references to specific functional blocks or diagrams are considered only as references to a suitable means for providing the described functions, and not as an indication of a specific logical or physical structure or organization.
Изобретение можно реализовать в любой пригодной форме, включающей в себя аппаратное обеспечение, программное обеспечение, программно-аппаратное обеспечение или любую их комбинацию. Изобретение может быть, в необязательном порядке, реализовано по меньшей мере частично в виде компьютерного программного обеспечения, выполняющегося на одном или более процессорах данные и/или цифровых сигнальных процессорах. Элементы и компоненты варианта осуществления изобретения могут быть физически, функционально и логически реализованы любым пригодным образом. Действительно, функции могут быть реализованы в едином блоке, во множестве блоков или как часть других функциональных блоков. Таким образом, изобретение может быть реализовано в едином блоке или могут физически и функционально распределяться между разными блоками, схемами и процессорами.The invention may be implemented in any suitable form, including hardware, software, firmware, or any combination thereof. The invention may optionally be embodied at least in part in computer software executing on one or more data processors and/or digital signal processors. The elements and components of an embodiment of the invention may be physically, functionally and logically implemented in any suitable manner. Indeed, functions may be implemented in a single block, in multiple blocks, or as part of other functional blocks. Thus, the invention may be implemented in a single unit, or may be physically and functionally distributed among different units, circuits, and processors.
Хотя настоящее изобретение описано в связи с некоторыми вариантами осуществления, оно не подлежит ограничению конкретной изложенной здесь формой. Напротив, объем настоящего изобретения ограничивается только нижеследующей формулой изобретения. Дополнительно, хотя признак может быть описан в связи с конкретными вариантами осуществления, специалисту в данной области техники понятно, что различные признаки описанных вариантов осуществления могут объединяться в соответствии с изобретением. В формуле изобретения термин «содержащий» не исключает наличия других элементов или этапов.Although the present invention has been described in connection with some embodiments, it is not intended to be limited to the specific form set forth herein. On the contrary, the scope of the present invention is only limited by the following claims. Additionally, although a feature may be described in connection with specific embodiments, one skilled in the art will recognize that various features of the described embodiments may be combined in accordance with the invention. In the claims, the term "comprising" does not exclude the presence of other elements or steps.
Кроме того, хотя они перечислены по отдельности, множество средств, элементов, схем или этапов способа может быть реализовано, например, как единая/й схема, блок или процессор. Дополнительно, хотя отдельные признаки могут быть включены в разные пункты формулы изобретения, их можно преимущественно комбинировать, и включение в разные пункты формулы изобретения не означает, что комбинация признаков неосуществима и/или не является преимущественной. Также включение признака в одну категорию пунктов формулы изобретения не налагает ограничение на эту категорию, но, напротив, указывает, что признак в равной степени при необходимости применим к другим категориям пунктов формулы изобретения. Кроме того, порядок признаков в формуле изобретения не предусматривает никакого конкретного порядка, в котором нужно обработать признаки и, в частности, порядок отдельных этапов в пункте способа не означает, что этапы должны осуществляться в этом порядке. Напротив, этапы могут осуществляться в любом пригодном порядке. Кроме того, ссылки в единственном числе не исключают множества. Таким образом ссылки на один, «первый», «второй» и т.д. элемент не исключают наличия множества элементов. Ссылочные позиции в формуле изобретения обеспечены лишь как пояснительный пример и никоим образом не служат ограничением объема формулы изобретения.In addition, although listed individually, a plurality of means, elements, circuits, or method steps may be implemented, for example, as a single circuit, block, or processor. Additionally, although individual features may be included in different claims, they can advantageously be combined, and inclusion in different claims does not mean that a combination of features is not feasible and/or is not advantageous. Also, the inclusion of a feature in one category of claims does not impose a limitation on that category, but, on the contrary, indicates that the feature is equally applicable to other categories of claims, if necessary. Furthermore, the order of the features in the claims does not provide for any particular order in which the features are to be processed and, in particular, the order of the individual steps in a method claim does not imply that the steps must be carried out in that order. Rather, the steps may be performed in any suitable order. Also, singular references do not exclude plurals. Thus references to one, "first", "second", etc. element does not exclude the presence of multiple elements. Reference numerals in the claims are provided by way of illustrative example only and in no way serve to limit the scope of the claims.
Claims (20)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP17182985.6A EP3435670A1 (en) | 2017-07-25 | 2017-07-25 | Apparatus and method for generating a tiled three-dimensional image representation of a scene |
EP17182985.6 | 2017-07-25 | ||
PCT/EP2018/069387 WO2019020433A1 (en) | 2017-07-25 | 2018-07-17 | Apparatus and method for generating a tiled three-dimensional image representation of a scene |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2020107834A RU2020107834A (en) | 2021-08-25 |
RU2020107834A3 RU2020107834A3 (en) | 2021-11-03 |
RU2771957C2 true RU2771957C2 (en) | 2022-05-16 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6903741B2 (en) * | 2001-12-13 | 2005-06-07 | Crytek Gmbh | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
US7085409B2 (en) * | 2000-10-18 | 2006-08-01 | Sarnoff Corporation | Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery |
RU2503062C2 (en) * | 2008-08-26 | 2013-12-27 | Конинклейке Филипс Электроникс Н.В. | Method and system for encoding three-dimensional video signal, encoder for encoding three-dimensional video signal, encoded three-dimensional video signal, method and system for decoding three-dimensional video signal, decoder for decoding three-dimensional video signal |
US20150201178A1 (en) * | 2012-06-14 | 2015-07-16 | Dolby Laboratories Licensing Corporation | Frame Compatible Depth Map Delivery Formats for Stereoscopic and Auto-Stereoscopic Displays |
RU2595759C2 (en) * | 2014-07-04 | 2016-08-27 | Самсунг Электроникс Ко., Лтд. | Method and image capturing device and simultaneous extraction of depth |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085409B2 (en) * | 2000-10-18 | 2006-08-01 | Sarnoff Corporation | Method and apparatus for synthesizing new video and/or still imagery from a collection of real video and/or still imagery |
US6903741B2 (en) * | 2001-12-13 | 2005-06-07 | Crytek Gmbh | Method, computer program product and system for rendering soft shadows in a frame representing a 3D-scene |
RU2503062C2 (en) * | 2008-08-26 | 2013-12-27 | Конинклейке Филипс Электроникс Н.В. | Method and system for encoding three-dimensional video signal, encoder for encoding three-dimensional video signal, encoded three-dimensional video signal, method and system for decoding three-dimensional video signal, decoder for decoding three-dimensional video signal |
US20150201178A1 (en) * | 2012-06-14 | 2015-07-16 | Dolby Laboratories Licensing Corporation | Frame Compatible Depth Map Delivery Formats for Stereoscopic and Auto-Stereoscopic Displays |
RU2595759C2 (en) * | 2014-07-04 | 2016-08-27 | Самсунг Электроникс Ко., Лтд. | Method and image capturing device and simultaneous extraction of depth |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10893259B2 (en) | Apparatus and method for generating a tiled three-dimensional image representation of a scene | |
US10474227B2 (en) | Generation of virtual reality with 6 degrees of freedom from limited viewer data | |
US20200296348A1 (en) | Virtual Reality Parallax Correction | |
TW201921921A (en) | Processing of 3D image information based on texture maps and meshes | |
US12026903B2 (en) | Processing of depth maps for images | |
EP3437319A1 (en) | Multi-camera image coding | |
US20220165015A1 (en) | Image signal representing a scene | |
RU2771957C2 (en) | Device and method for generating mosaic representation of three-dimensional scene image | |
US20220174259A1 (en) | Image signal representing a scene | |
TWI846808B (en) | Image signal representing a scene | |
US20220122216A1 (en) | Generating and processing an image property pixel structure | |
RU2817803C2 (en) | Image signal representing scene |