RU2792721C2 - Method for asynchronous reprojection of 3d-scene image - Google Patents

Method for asynchronous reprojection of 3d-scene image Download PDF

Info

Publication number
RU2792721C2
RU2792721C2 RU2021122712A RU2021122712A RU2792721C2 RU 2792721 C2 RU2792721 C2 RU 2792721C2 RU 2021122712 A RU2021122712 A RU 2021122712A RU 2021122712 A RU2021122712 A RU 2021122712A RU 2792721 C2 RU2792721 C2 RU 2792721C2
Authority
RU
Russia
Prior art keywords
image
scene
frame
depth
observer
Prior art date
Application number
RU2021122712A
Other languages
Russian (ru)
Other versions
RU2021122712A (en
Inventor
Петр Вячеславович Севостьянов
Original Assignee
Общество С Ограниченной Ответственностью "Альт"
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Альт" filed Critical Общество С Ограниченной Ответственностью "Альт"
Publication of RU2021122712A publication Critical patent/RU2021122712A/en
Application granted granted Critical
Publication of RU2792721C2 publication Critical patent/RU2792721C2/en

Links

Images

Abstract

FIELD: image processing.
SUBSTANCE: group of inventions relates to processing of 3D-scene images, in particular, to a method for asynchronous reprojection in a virtual reality system. The claimed method for image processing consists of following stages: data on chromaticity and depth of an initial 3D-scene image for an angle A is received; based on data on chromaticity, visual signs of the image and their weight values are determined, based on data on depth, their depth is determined; a low-polygon grid is formed; the image is reprojected for an angle B different from the angle A by displacement of nodes of the low-polygonal grid, depending on weight values and depth of visual signs of the image. The claimed method for provision of a frame rate of an image consists of following stages: a frame of an initial image is received from an image generation device; the initial image is processed; a frame of the reprojected 3D-scene image is shown to an observer before reception of the following frame of the 3D-scene image from the image generation device.
EFFECT: claimed group of inventions allows for provision of a high frame rate of 3D scenes with lack of performance of 3D-rendering system, reduction in image distortions appearing near borders of objects in reprojection, and reduction in a data volume of 3D-scene image, transmitted via a communication channel.
31 cl, 12 dwg

Description

Область техникиTechnical field

Изобретение относится к обработке изображений 3D-сцен, в частности, к способу асинхронной репроекции в системе виртуальной или дополненной реальности.The invention relates to image processing of 3D scenes, in particular, to a method for asynchronous projection in a virtual or augmented reality system.

Уровень техникиState of the art

В системах виртуальной или дополненной реальности (virtual/augmented reality, VR/AR) развлекательного, информационного, учебного, научного, производственного и т.п. назначения, предъявляются весьма высокие требования к качеству и скорости формирования изображения и вывода его на дисплей. От таких систем требуется не только почти мгновенный отклик на любое движение игрока (например, поворот головы или взмах руки), но и обеспечение стабильно высокой частоты вывода кадров. Если в обычных (не VR/AR) компьютерных играх обычно достаточно обеспечить частоту вывода кадров 30 кадров в секунду (frames per second, fps), а частота 60 fps считается уже прекрасным показателем, то для современных VR/AR-устройств минимально приемлемым значением является частота 90 fps. In systems of virtual or augmented reality (virtual/augmented reality, VR/AR) entertaining, informational, educational, scientific, industrial, etc. destinations, there are very high requirements for the quality and speed of image formation and display. Such systems require not only an almost instantaneous response to any movement of the player (for example, a turn of the head or a wave of the hand), but also to provide a consistently high frame rate. If in conventional (non-VR/AR) computer games it is usually sufficient to provide a frame rate of 30 frames per second (frames per second, fps), and a frequency of 60 fps is already considered an excellent indicator, then for modern VR/AR devices the minimum acceptable value is frequency 90 fps.

Следует отметить, что для комфорта пользователя частота вывода кадров должна быть стабильной и не должна меняться на протяжении всей игры. Ее падение, например, до 30 fps в обычной игре на мониторе или телевизоре, скорее всего, останется для большинства пользователей незамеченным, но в системах VR/AR даже кратковременное снижение частоты вывода кадров может привести к нарушению эффекта погружения, поскольку изображение начинает дергаться, отставать от движений пользователя, вызывая неприятные ощущения, вплоть до тошноты (VR-sickness) [1].It should be noted that for the comfort of the user, the frame rate should be stable and should not change throughout the game. Its drop, for example, to 30 fps in a normal game on a monitor or TV, most likely will go unnoticed by most users, but in VR / AR systems, even a short-term decrease in the frame rate can lead to a violation of the immersion effect, as the image begins to twitch, lag behind from user movements, causing discomfort, up to nausea (VR-sickness) [1].

Современные головные дисплеи (head-mounted display, HMD), такие как Oculus Rift или HTC Vive, поддерживают специальные технологии (в целом называемые технологиями репроекции), призванные сглаживать падение скорости рендеринга 3D-сцен при увеличении сложности формируемого изображения. Эти технологии позволяют искусственно повышать частоту вывода кадров на экран дисплея с целью улучшения пользовательского опыта (user experience), снижения требований к компьютерному оборудованию и предоставления дополнительной свободы разработчикам прикладных программ для таких систем.Modern head-mounted displays (HMDs), such as the Oculus Rift or HTC Vive, support special technologies (generally referred to as projection technologies) designed to smooth out the drop in rendering speed of 3D scenes as the complexity of the generated image increases. These technologies make it possible to artificially increase the frame rate on the display screen in order to improve the user experience (user experience), reduce the requirements for computer hardware and provide additional freedom to developers of application programs for such systems.

Известен способ репроекции, именуемый чередующейся репроекцией или синхронной временнóй репроекцией (Interleaved Reprojection в SteamVR или Synchronous Timewarp в Oculus SDK) [1], в котором при обнаружении того, что система не в состоянии обеспечить частоту рендеринга 90 fps, эта частота снижается до 45 fps и система формирует промежуточные кадры, используя в качестве основы предыдущий кадр и путем 2D-трансформации поворачивая его на угол, на который за это время повернулась голова пользователя. При этом частота вывода кадров сохраняется равной 90 fps. Основными недостатками такого способа являются возможность реагирования только на поворот головы пользователя, но не на ее смещение, и дискретное (в два раза) снижение частоты рендеринга даже в том случае, если системе не хватает, например, всего 5% или 10% производительности 3D-движка. Кроме того, в момент включения/выключения репроекции пользователь замечает ощутимое «вздрагивание» изображения.There is a reprojection method called interleaved reprojection or synchronous temporal reprojection (Interleaved Reprojection in SteamVR or Synchronous Timewarp in Oculus SDK) [1], in which, when it is detected that the system is unable to provide a rendering frequency of 90 fps, this frequency is reduced to 45 fps and the system generates intermediate frames, using the previous frame as a basis and, by means of a 2D transformation, turning it by the angle at which the user's head has turned during this time. At the same time, the frame rate remains at 90 fps. The main disadvantages of this method are the ability to respond only to the rotation of the user's head, but not to its displacement, and a discrete (twice) reduction in the rendering frequency even if the system lacks, for example, only 5% or 10% of 3D performance. engine. In addition, at the moment of turning on / off the projection, the user notices a perceptible “shudder” of the image.

Известен также способ репроекции, именуемый асинхронной временнóй репроекцией (Asynchronous Reprojection в SteamVR или Asynchronous Timewarp (ATW) в Oculus SDK) [2], [3], в котором система формирует промежуточные кадры, используя в качестве основы предыдущий кадр и путем 2D-трансформации поворачивая его на угол, на который за это время повернулась голова пользователя, подобно тому, как это делается при чередующейся или синхронной репроекции, но этот процесс реализован в отдельном, не зависящем от 3D-движка, потоке. Если 3D-движок в нужный для поддержания необходимой частоты вывода кадров (90 fps) момент времени выдает сформированный кадр, то он выводится на экран дисплея, а если 3D-движок не успевает выполнить рендеринг, то на экран выводится результат репроекции предыдущего результата рендеринга. Это позволяет отказаться от искусственного ограничения частоты рендеринга 3D-движка, позволяя ему формировать кадры с той частотой, на которую он способен, и уменьшить количество «искусственных» кадров. Тем не менее, основным недостатком такого способа остается возможность реагирования только на поворот головы пользователя, но не на ее перемещение в пространстве.There is also a reprojection method called asynchronous temporal reprojection (Asynchronous Reprojection in SteamVR or Asynchronous Timewarp (ATW) in Oculus SDK) [2], [3], in which the system generates intermediate frames using the previous frame as a basis and by 2D transformation turning it by the angle at which the user's head has turned during this time, similar to how it is done with alternating or synchronous reprojection, but this process is implemented in a separate thread that does not depend on the 3D engine. If the 3D engine at the right time to maintain the required frame rate (90 fps) outputs the generated frame, then it is displayed on the display screen, and if the 3D engine does not have time to render, then the result of the previous rendering result is displayed on the screen. This eliminates the artificial limitation of the 3D engine rendering rate, allowing it to frame frames at the rate it is capable of, and reduce the number of "artificial" frames. However, the main disadvantage of this method remains the ability to respond only to the rotation of the user's head, but not to its movement in space.

Кроме того, известен способ репроекции, именуемый асинхронной пространственной репроекцией (Asynchronous Spacewarp (ASW) в Oculus SDK) [4], [5], в котором система формирует промежуточные кадры с учетом перемещения головы пользователя, игровых контроллеров, камеры и персонажей игры в пространстве. Для этого используются данные карты глубины (depth map) последнего сформированного 3D-движком кадра, из которой алгоритм ASW извлекает информацию о пространственном соотношении положений различных элементов изображения. Это позволяет не только смещать точку обзора согласно движению пользователя, но и имитировать смещение одних предметов относительно других в промежуточном кадре. Тем не менее, поскольку в ASW используется лишь карта глубины последнего кадра, а не полная 3D-модель, алгоритм не имеет информации об отдаленных элементах 3D-сцены, скрытых за более близкими объектами, поэтому при формировании промежуточного кадра неизбежны дефекты изображения (артефакты) в зонах, открывающихся взору пользователя при смещении объектов. Кроме того, алгоритм ASW имеет проблемы, связанные с обработкой полупрозрачных поверхностей и с применением технологий сглаживания (anti-aliasing).In addition, there is a known method of projection, called asynchronous space warp (ASW) in the Oculus SDK) [4], [5], in which the system generates intermediate frames based on the movement of the user's head, game controllers, camera and game characters in space . To do this, the depth map data of the last frame generated by the 3D engine is used, from which the ASW algorithm extracts information about the spatial relationship of the positions of various image elements. This allows not only to shift the viewpoint according to the movement of the user, but also to simulate the displacement of some objects relative to others in the intermediate frame. However, since ASW uses only the depth map of the last frame, and not the full 3D model, the algorithm does not have information about distant elements of the 3D scene hidden behind closer objects, so image defects (artifacts) are inevitable when forming an intermediate frame. zones that open to the user's gaze when objects are displaced. In addition, the ASW algorithm has problems with the processing of translucent surfaces and with the use of anti-aliasing technologies.

В патентных документах US2015002542A1, US20150029218A1, US20160343172A1, US2016335806A1, US2017345217A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции с использованием вертикального и/или горизонтального сдвига отдельных пикселей или групп пикселей в зависимости от изменения положения головы наблюдателя. Принцип расчета такого сдвига не раскрыт. Patent documents US2015002542A1, US20150029218A1, US20160343172A1, US2016335806A1, US2017345217A1 describe a method for increasing the frame rate when demonstrating a 3D scene by asynchronous spatial projection using vertical and/or horizontal shift of individual pixels or groups of pixels depending on the change in the position of the observer's head. The principle of calculating such a shift is not disclosed.

В патентных документах WO2017210111A1, US2017345220A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя даунсэмплинг карты глубины и сдвиг вершин полигонов исходного изображения в зависимости от глубины этих вершин.Patent documents WO2017210111A1, US2017345220A1 describe a method for increasing the frame rate when demonstrating a 3D scene by asynchronous spatial reprojection, which includes downsampling the depth map and shifting the vertices of the source image polygons depending on the depth of these vertices.

В патентных документах US20120206452A1, US9122053B2 описан способ наложения изображения виртуального объекта на изображение реального мира в системе дополненной реальности. Положение изображения виртуального объекта на дисплее определяется с учетом положения границ виртуального объекта на карте глубины реального мира.Patent documents US20120206452A1, US9122053B2 describe a method for superimposing an image of a virtual object on an image of the real world in an augmented reality system. The position of the image of the virtual object on the display is determined taking into account the position of the boundaries of the virtual object on the depth map of the real world.

В патентных документах US9240069B1, WO2017003769A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).Patent documents US9240069B1, WO2017003769A1 describe a method for reducing the delay in responding to the movement of the observer when demonstrating a 3D scene by asynchronous spatial reprojection, which includes filling in "empty" areas that occur during projection in various ways (uniform shading, blurring, etc.) .

В патентных документах EP3051525A1, US9904056B2 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя раздельное формирование заднего плана 3D-сцены и переднего плана 3D-сцены основного кадра и формирование промежуточных кадров, в которых задний план 3D-сцены подвергается репроекции в зависимости от изменения положения головы наблюдателя и на него накладывается передний план 3D-сцены из основного кадра.Patent documents EP3051525A1, US9904056B2 describe a method for increasing the frame rate when demonstrating a 3D scene by asynchronous spatial reprojection, which includes separately generating the background of the 3D scene and the foreground of the 3D scene of the main frame and generating intermediate frames in which the background is 3D The scene is reprojected depending on the change in the position of the observer's head, and the foreground of the 3D scene from the main frame is superimposed on it.

В патентных документах US20170155885A1, US9832451B2 описан способ снижения скорости видеопотока при демонстрации 3D-сцены путем асинхронной пространственной репроекции, в котором сначала формируется оригинальный левый кадр и из него путем репроекции формируется правый кадр, затем формируется оригинальный правый кадр и из него путем репроекции формируется левый кадр. «Пустые» области, возникающие при репроекции, заполняются с использованием «исторической» информации соответствующих старых кадров. Принцип расчета такого заполнения не раскрыт.Patent documents US20170155885A1, US9832451B2 describe a method for reducing the video stream rate when demonstrating a 3D scene by asynchronous spatial reprojection, in which the original left frame is first formed and the right frame is formed from it by reprojection, then the original right frame is formed and the left frame is formed from it by reprojection . "Empty" areas that occur during the reprojection are filled using the "historical" information of the corresponding old frames. The principle of calculating such filling is not disclosed.

В патентных документах US20170213388A1, US9978180B2, WO2017131977A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции в зависимости от изменения положения головы наблюдателя, включающий в себя гомографическое (например, аффинное) преобразование и сдвиг пикселей. Принцип расчета такого сдвига не раскрыт.Patent documents US20170213388A1, US9978180B2, WO2017131977A1 describe a method for increasing the frame rate when demonstrating a 3D scene by asynchronous spatial reprojection depending on the change in the position of the observer's head, including homographic (for example, affine) transformation and pixel shift. The principle of calculating such a shift is not disclosed.

В патентных документах US9858637B1, WO2018022250A1 описан способ уменьшения задержки отображения 3D-сцены путем асинхронной пространственной репроекции в зависимости от изменения положения головы наблюдателя, скорости и ускорения такого движения. Принцип реализации репроекции не раскрыт.Patent documents US9858637B1, WO2018022250A1 describe a method for reducing the display delay of a 3D scene by asynchronous spatial projection depending on the change in the position of the observer's head, the speed and acceleration of such movement. The principle of the implementation of the projection is not disclosed.

В патентных документах US2017018121A1, US10089790B2 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).Patent documents US2017018121A1, US10089790B2 describe a method for reducing the delay in responding to the movement of the observer when demonstrating a 3D scene by asynchronous spatial reprojection, which includes filling in "empty" areas that occur during projection in various ways (uniform shading, blurring, etc.) .

В патентных документах US2017004648A1, US2017200304A1, US9607428B2, US10083538B2 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.) с переменным шагом координатной сетки.Patent documents US2017004648A1, US2017200304A1, US9607428B2, US10083538B2 describe a method for reducing the delay in responding to the movement of the observer when demonstrating a 3D scene by asynchronous spatial reproduction, which includes filling in "empty" areas that occur during projection in various ways (uniform shading, blurring, etc.). .p.) with variable grid spacing.

В патентных документах US2017243324A1, WO2017147178A1 упоминается синхронная и асинхронная пространственная и угловая репроекция изображения 3D-сцены. Способы репроекции не раскрыты.Patent documents US2017243324A1, WO2017147178A1 mention synchronous and asynchronous spatial and angular reproduction of a 3D scene image. Reprojection methods are not disclosed.

В патентных документах US2017374341A1, US10129523B2, WO2017222838A1 описан способ пространственной репроекции изображения 3D-сцены с заполнением «пустых» областей с учетом карты глубины, которая может быть загрублена с целью повышения быстродействия алгоритма.Patent documents US2017374341A1, US10129523B2, WO2017222838A1 describe a method for spatially reprojecting a 3D scene image with filling in "empty" areas, taking into account the depth map, which can be coarsened in order to increase the speed of the algorithm.

В патентных документах US2017374343A1, US10114454B2 также описан способ пространственной репроекции изображения 3D-сцены с заполнением «пустых» областей с учетом карты глубины, которая может быть загрублена с целью повышения быстродействия алгоритма.Patent documents US2017374343A1, US10114454B2 also describe a method for spatially reprojecting an image of a 3D scene with filling in "empty" areas, taking into account the depth map, which can be coarsened in order to increase the speed of the algorithm.

В патентных документах US2018165878A1, US10043318B2, WO2018106898A1 описан способ пространственной репроекции изображения 3D-сцены с использованием интерполяции, алгоритм которой не раскрыт.Patent documents US2018165878A1, US10043318B2, WO2018106898A1 describe a method for spatially reprojecting an image of a 3D scene using interpolation, the algorithm of which is not disclosed.

В патентных документах US2018061121A1, WO2018039586A1 упоминается синхронная и асинхронная репроекция изображения 3D-сцены. Алгоритмы репроекции не раскрыты.Patent documents US2018061121A1, WO2018039586A1 mention synchronous and asynchronous image reproduction of a 3D scene. Reprojection algorithms are not disclosed.

В патентном документе WO2018064287A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).Patent document WO2018064287A1 describes a method for reducing the delay in responding to the movement of the observer when demonstrating a 3D scene by asynchronous spatial reprojection, which includes filling in "empty" areas that occur during reprojection in various ways (uniform shading, blurring, etc.).

В патентных документах US2018275748A1, WO2018183026A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем репроекции, при которой сцена разделена на уровни по глубине и смещение выполняется для разных уровней раздельно.Patent documents US2018275748A1, WO2018183026A1 describe a method for reducing the delay in responding to the movement of the observer when demonstrating a 3D scene by reprojection, in which the scene is divided into levels in depth and the offset is performed for different levels separately.

В патентных документах US2018322688A1, WO2018204092A1 описан способ репроекции для уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем нелинейного преобразования изображения. Алгоритмы такого преобразования не раскрыты.Patent documents US2018322688A1, WO2018204092A1 describe a reprojection method for reducing the delay in response to the movement of the observer when demonstrating a 3D scene by non-linear image transformation. Algorithms for such a transformation are not disclosed.

В известных технических решениях качество репроецированного изображения при использовании способа ASW в системах VR/AR с шестью степенями свободы (Six Degrees of Freedom, 6DoF) оказывается недостаточным из-за наличия артефактов. В частности, требуется существенно снизить заметность искажений репроецированного изображения, появляющихся у границ объектов при использовании способа ASW.In known technical solutions, the quality of the projected image when using the ASW method in VR/AR systems with six degrees of freedom (Six Degrees of Freedom, 6DoF) is insufficient due to the presence of artifacts. In particular, it is required to significantly reduce the visibility of distortions in the reprojected image that appear at the boundaries of objects when using the ASW method.

Раскрытие изобретенияDisclosure of invention

Данное изобретение представляет собой способ комбинированной асинхронной ATW/ASW репроекции в системах рендеринга 3D-сцен с шестью степенями свободы перемещения наблюдателя, далее обозначенный 6ATSW для краткости. Способ репроекции согласно изобретению предполагает выявление характерных визуальных признаков изображения 3D-сцены, определение их весовых значений и глубины, формирование низкополигональной сетки, наложенной на изображение 3D-сцены, и последующую выборочную деформацию изображения 3D-сцены (собственно, репроекцию) путем смещения узлов низкополигональной сетки в зависимости от весовых значений и глубины визуальных признаков изображения. The present invention is a method for combined asynchronous ATW/ASW projection in 3D scene rendering systems with six degrees of freedom of observer movement, hereinafter referred to as 6ATSW for brevity. The method of reprojection according to the invention involves identifying the characteristic visual features of the 3D scene image, determining their weight values and depth, forming a low-poly mesh superimposed on the 3D scene image, and subsequent selective deformation of the 3D scene image (reprojection itself) by shifting the nodes of the low-poly mesh depending on the weight values and the depth of the visual features of the image.

Изобретение позволяет уменьшить искажения изображения, появляющиеся у границ объектов при репроекции, за счет оптимизации направления и величины смещения узлов низкополигональной сетки с учетом направлений характерных визуальных признаков изображения 3D-сцены, их весовых значений и глубины в 3D-сцене. EFFECT: invention makes it possible to reduce image distortions that appear at the boundaries of objects during reprojection by optimizing the direction and displacement of the low-poly mesh nodes, taking into account the directions of the characteristic visual features of the 3D scene image, their weight values and depth in the 3D scene.

Кроме того, изобретение позволяет обеспечить требуемую частоту кадров изображения 3D-сцены на дисплее за счет репроекции с высоким качеством изображения, предотвращая негативный пользовательский опыт, например, головную боль, головокружение, тошноту и другие проявления «виртуальной морской болезни» (VR sickness). In addition, the invention makes it possible to provide the required frame rate of the 3D scene image on the display due to high image quality reprojection, preventing negative user experience, such as headache, dizziness, nausea and other manifestations of "virtual motion sickness" (VR sickness).

Кроме того, изобретение позволяет уменьшить объем данных изображения 3D-сцены, передаваемых по каналу связи в единицу времени, без заметного увеличения искажений репроецированного изображения.In addition, the invention makes it possible to reduce the amount of image data of a 3D scene transmitted over a communication channel per unit of time without a noticeable increase in the distortion of the projected image.

В изобретении реализован способ обработки изображения 3D-сцены, включающий в себя следующие шаги:The invention implements a method for processing an image of a 3D scene, which includes the following steps:

(1) принимают данные цветности и данные глубины исходного изображения 3D-сцены для ракурса А;(1) receiving color data and depth data of the original image of the 3D scene for angle A;

(2) на основе данных цветности определяют визуальные признаки изображения 3D-сцены и их весовые значения, а на основе данных глубины определяют их глубину;(2) based on the color data, visual features of the 3D scene image and their weights are determined, and based on the depth data, their depth is determined;

(3) формируют низкополигональную сетку для репроекции;(3) forming a low-poly mesh for the projection;

(4) выполняют репроекцию изображения 3D-сцены для ракурса Б, отличного от ракурса А, путем смещения узлов низкополигональной сетки в зависимости от весовых значений и глубины визуальных признаков изображения.(4) reprojecting the image of the 3D scene for angle B, different from angle A, by shifting the nodes of the low-poly mesh depending on the weight values and the depth of the visual features of the image.

Данные цветности и данные глубины могут быть представлены в любой приемлемой форме, например, в виде кадров композитных многослойных изображений, в которых данные цветности могут содержаться в одном слое, а данные глубины – в другом слое такого изображения. Тем не менее, представление этих данных в виде кадров не обязательно. В частности, эти данные могут быть представлены в виде произвольных массивов данных соответствующей размерности или вовсе могут иметь распределенную структуру (т.е. эти данные не должны быть обязательно сосредоточены в одном месте до их приема в обработку). Источником таких данных может быть 3D-движок, 3D-камера (например, подобная Intel RealSense), компьютерное устройство памяти, диск Blue Ray или любое другое устройство для формирования или хранения последовательности изображений 3D-сцен.Chroma data and depth data may be represented in any suitable form, such as frames of composite layered images, in which the chrominance data may be contained in one layer and the depth data in another layer of such an image. However, the representation of this data as frames is optional. In particular, these data can be presented in the form of arbitrary data arrays of the appropriate dimension, or they can even have a distributed structure (i.e., these data do not have to be concentrated in one place before they are accepted for processing). The source of such data may be a 3D engine, a 3D camera (such as Intel RealSense), a computer memory device, a Blue Ray disk, or any other device for generating or storing a sequence of images of 3D scenes.

Следует отметить, что в примерах осуществления изобретения, описанных в этом документе, массивы данных имеют вид двумерной матрицы и называются «кадрами» и «картами». Тем не менее, должно быть понятно, что термины «кадр» и «карта» не ограничивают изобретение и использованы лишь в качестве иллюстративного примера, упрощающего понимание сущности изобретения.It should be noted that in the embodiments of the invention described in this document, the data arrays are in the form of a two-dimensional matrix and are called "frames" and "maps". However, it should be clear that the terms "frame" and "card" do not limit the invention and are used only as an illustrative example, simplifying the understanding of the essence of the invention.

Визуальные признаки изображения 3D-сцены представляют собой характерные особенности изображения, влияющие на результат репроекции. В частности, такими признаками являются физические границы объектов в 3D-сцене, контрастные (по цвету и/или по яркости) границы областей изображения (например, в изображениях типа «зебра» или «шахматное поле») и градиенты (например, градиент безоблачного закатного неба). Каждый визуальный признак характеризуется весовыми значениями вдоль заранее заданных направлений и глубиной той области изображения, которая относится к этому признаку (например, глубиной пикселя или группы пикселей). Например, для изображения темной решетки с прямоугольными ячейками в окне на фоне светлого неба при нормальной ориентации кадра весовые значения границы между краем вертикального прута решетки и окружающим воздухом будут максимальными для вертикального направления, не слишком значительными для наклонных направлений +45° и –45° к горизонту и минимальными для горизонтального направления. Весовые значения и глубина визуальных признаков изображения могут составлять массив данных соответствующей размерности для удобства их дальнейшей обработки. The visual features of the 3D scene image are the characteristic features of the image that affect the result of the projection. In particular, such features are the physical boundaries of objects in a 3D scene, contrasting (by color and/or brightness) boundaries of image areas (for example, in images of the “zebra” or “chessboard” type), and gradients (for example, the gradient of a cloudless sunset sky). Each visual feature is characterized by weights along predetermined directions and the depth of the area of the image that belongs to this feature (for example, the depth of a pixel or a group of pixels). For example, for an image of a dark lattice with rectangular cells in a window against a light sky with a normal frame orientation, the weight values of the boundary between the edge of the vertical lattice rod and the surrounding air will be maximum for the vertical direction, not too significant for oblique directions of +45° and –45° to horizon and minimum for the horizontal direction. The weight values and the depth of the visual features of the image can form an array of data of the appropriate dimension for the convenience of their further processing.

Низкополигональная сетка для репроекции представляет собой сетку, содержащую сравнительно небольшое количество ячеек. Должно быть понятно, что в ортогональной системе координат разумнее всего использовать ортогональную сетку, образующую квадраты, хотя это и не единственный вариант низкополигональной сетки для данного изобретения. Каждая ячейка низкополигональной сетки связана с областью исходного изображения 3D-сцены, таким образом, что при смещении узла низкополигональной сетки (т.е. при деформации ячейки низкополигональной сетки) деформируется и соответствующая область исходного изображения 3D-сцены.A low-poly projection mesh is a mesh containing a relatively small number of cells. It should be clear that in an orthogonal coordinate system, it is most reasonable to use an orthogonal grid that forms squares, although this is not the only low-poly grid option for this invention. Each cell of the low-poly mesh is associated with an area of the original image of the 3D scene, so that when the node of the low-poly mesh is displaced (i.e., when the cell of the low-poly mesh is deformed), the corresponding area of the original image of the 3D scene is also deformed.

Данные глубины исходного изображения 3D-сцены могут быть подвергнуты нормированию до шага (2) для ускорения вычислительных операций. Размер исходного изображения 3D-сцены может быть уменьшен до шага (2) для снижения влияния шумов исходного изображения на дальнейшую обработку изображения согласно алгоритму. При уменьшении размера исходного изображения 3D-сцены может применяться MIP-текстурирование. При уменьшении размера исходного изображения 3D-сцены данные цветности и данные глубины могут подвергаться усреднению и/или фильтрации.The depth data of the original image of the 3D scene can be normalized to step (2) to speed up computational operations. The size of the original image of the 3D scene can be reduced to step (2) to reduce the influence of the noise of the original image on further image processing according to the algorithm. When reducing the size of the original image of the 3D scene, MIP-texturing can be applied. By reducing the size of the original image of the 3D scene, the color data and depth data may be averaged and/or filtered.

Оптимальный размер низкополигональной сетки может быть определен до шага (3). Размер массива весовых значений и глубины каждого визуального признака может быть уменьшен до размера низкополигональной сетки до шага (4). При уменьшении размера массива весовых значений и глубины весовые значения каждого визуального признака могут подвергаться усреднению, а глубина каждого визуального признака – взвешиванию с использованием весовых значений. Усреднение и взвешивание для каждого элемента массива весовых значений и глубины может выполняться по смежным с ним элементам этого массива данных.The optimal low poly mesh size can be determined before step (3). The size of the array of weight values and the depth of each visual feature can be reduced to the size of a low-poly mesh up to step (4). By reducing the size of the array of weights and depth, the weights of each visual feature can be averaged, and the depth of each visual feature can be weighted using the weight values. Averaging and weighting for each element of the array of weights and depths can be performed on adjacent elements of this data array.

Визуальные признаки изображения могут определяться по множеству направлений, включая вертикальное и горизонтальное направления, а также по меньшей мере два наклонных направления. Например, это могут быть два упомянутых выше наклонных направления +45° и –45° к горизонту или четыре наклонных направления +30°, +60°, –30° и –60° к горизонту.The visual features of an image may be defined in a variety of directions, including vertical and horizontal directions, as well as at least two oblique directions. For example, these can be the two oblique directions +45° and –45° to the horizon mentioned above, or the four oblique directions +30°, +60°, –30° and –60° to the horizon.

Визуальные признаки изображения могут определяться с применением обычно используемых для подобных целей математических методов, например, путем выполнения операции свертки. В качестве альтернативы, визуальные признаки изображения могут определяться с применением нейронной сети, обученной на характерных примерах изображений.The visual features of an image can be determined using commonly used mathematical methods for such purposes, for example, by performing a convolution operation. Alternatively, the visual features of an image may be determined using a neural network trained on representative image examples.

Оптимальное смещение вершин узлов низкополигональной сетки может определяться с применением обычно используемых для подобных целей математических операций, например, методом наименьших квадратов. В качестве альтернативы, смещение вершин узлов низкополигональной сетки может определяться с применением нейронной сети, обученной на характерных примерах изображений.The optimal displacement of the vertices of the low poly mesh nodes can be determined using commonly used mathematical operations for such purposes, for example, the least squares method. Alternatively, the vertex offset of the low poly mesh nodes can be determined using a neural network trained on representative image examples.

В одном из вариантов осуществления изобретения на шаге (1) дополнительно принимается вектор движения каждого пикселя исходного изображения 3D-сцены, содержащий направление и скорость движения. Такой вектор может, например, формироваться 3D-движком и может передаваться вместе с данными цветности и данными глубины изображения. Учет вектора движения позволяет повысить точность репроекции при работе с динамическими объектами в 3D-сцене. В этом случае до шага (4) для каждого элемента массива весовых значений и глубины на основе вектора движения определяются параметры движения в каждом направлении каждого визуального признака изображения, релевантного этому элементу. Далее на шаге (4) репроекция изображения 3D-сцены выполняется с учетом этих параметров движения. Параметры движения могут включать в себя значения скорости, ускорения (первой производной скорости), вращения вокруг по меньшей мере одной оси, а также, при необходимости, изменения размера (например, деформации и/или масштабирования).In one of the embodiments of the invention, at step (1), the motion vector of each pixel of the original 3D scene image is additionally received, containing the direction and speed of movement. Such a vector may, for example, be generated by a 3D engine and may be transmitted along with color data and image depth data. Taking into account the motion vector allows you to increase the accuracy of the projection when working with dynamic objects in a 3D scene. In this case, before step (4), for each element of the array of weights and depths, based on the motion vector, the motion parameters in each direction of each visual feature of the image relevant to this element are determined. Next, in step (4), the 3D scene image is reprojected taking into account these motion parameters. Movement parameters may include values of speed, acceleration (the first derivative of speed), rotation about at least one axis, and, if necessary, resizing (eg, deformation and/or scaling).

В изобретении также реализован способ обеспечения частоты кадров изображения 3D-сцены в устройстве демонстрации изображения, включающий в себя следующие шаги:The invention also implements a method for providing a frame rate of an image of a 3D scene in an image display device, including the following steps:

(1) получают кадр исходного изображения 3D-сцены из устройства формирования изображения;(1) receiving a frame of the original image of the 3D scene from the imaging device;

(2) выполняют обработку исходного изображения 3D-сцены согласно любому из описанных выше вариантов;(2) performing processing of the original image of the 3D scene according to any of the options described above;

(3) демонстрируют наблюдателю кадр репроецированного изображения 3D-сцены до получения следующего кадра изображения 3D-сцены из устройства формирования изображения.(3) showing a frame of the projected image of the 3D scene to the viewer until the next image frame of the 3D scene is received from the imaging apparatus.

Устройство демонстрации изображения может представлять собой любое устройство, обеспечивающее демонстрацию изображения на двумерном экране. Экран при этом может быть плоским, выпуклым или вогнутым. Примерами такого устройства могут служить дисплеи, телевизоры, мониторы, плазменные панели, проекционные системы и т.п. В иллюстративном варианте реализации изобретения устройство демонстрации изображения представляет собой головной дисплей или очки дополненной реальности.The image display device may be any device capable of displaying an image on a two-dimensional screen. The screen may be flat, convex or concave. Examples of such a device are displays, televisions, monitors, plasma panels, projection systems, and the like. In an exemplary embodiment of the invention, the image display device is a head-mounted display or augmented reality glasses.

Устройство формирования изображения может представлять собой любое устройство, обеспечивающее формирование или хранение последовательности изображений 3D-сцен, например, 3D-движок, 3D-камеру (например, подобную Intel RealSense), компьютерное устройство памяти, диск Blue Ray и т.п.An imaging device may be any device capable of generating or storing a sequence of images of 3D scenes, such as a 3D engine, a 3D camera (eg, like Intel RealSense), a computer memory device, a Blue Ray disk, and the like.

Репроекция изображения 3D-сцены может выполняться с учетом данных трекинга наблюдателя, которые могут представлять собой прогнозные данные о положении и ориентации головы наблюдателя в заранее заданный момент времени в будущем. Заранее заданный момент времени в будущем может быть максимально приближен к моменту демонстрации наблюдателю исходного или репроецированного изображения 3D-сцены при обеспечении заранее заданной частоты вывода кадров. В современных системах VR/AR приемлемой считается частота вывода кадров, приблизительно равная 90 fps.Reprojection of an image of a 3D scene may be performed taking into account observer tracking data, which may be predictive data about the position and orientation of the observer's head at a predetermined point in time in the future. A predetermined point in time in the future can be as close as possible to the moment of showing the viewer the original or reprojected image of the 3D scene while providing a predetermined frame rate. In modern VR/AR systems, a frame rate of approximately 90 fps is considered acceptable.

Наблюдателю можно демонстрировать каждый кадр исходного изображения 3D-сцены без проверки возраста данных трекинга наблюдателя, а кадр репроецированного изображения 3D-сцены можно демонстрировать только в тех случаях, когда скорость формирования 3D-движком кадров исходного изображения 3D-сцены недостаточна для обеспечения заранее заданной частоты вывода кадров.An observer can be shown each frame of the original 3D scene image without checking the age of the observer's tracking data, and a frame of the projected 3D scene image can be shown only in cases where the frame rate of the 3D scene source image is not sufficient to provide a predetermined output frequency frames.

В альтернативном варианте наблюдателю можно демонстрировать либо кадр исходного изображения 3D-сцены, либо кадр репроецированного изображения 3D-сцены, в зависимости от того, какой из них соответствует более свежим данным трекинга наблюдателя, при обеспечении заранее заданной частоты вывода кадров.Alternatively, the observer may be shown either a frame of the original 3D scene image or a frame of the projected 3D scene image, whichever corresponds to the more recent observer tracking data, while providing a predetermined frame rate.

Формирование репроецированного изображения 3D-сцены можно задерживать таким образом, чтобы использовать наиболее свежие данные трекинга наблюдателя и формировать репроецированный кадр возможно ближе к моменту демонстрации наблюдателю, поддерживая при этом заранее заданную частоту вывода кадров. Это позволяет дополнительно уменьшить искажения репроецированного изображения на границах объектов 3D-сцены.The formation of the projected image of the 3D scene can be delayed in such a way as to use the most recent observer tracking data and generate the projected frame as close as possible to the time of demonstration to the observer, while maintaining a predetermined frame rate. This allows you to further reduce the distortion of the projected image at the boundaries of objects in the 3D scene.

Репроекцию можно выполнять в отношении изображений для левого и правого глаза наблюдателя синхронно или асинхронно, при этом выбор синхронного или асинхронного режима можно предоставить наблюдателю, который может определить свои предпочтения опытным путем. В альтернативном варианте синхронный или асинхронный режим может быть выбран в зависимости от конфигурации устройства демонстрации изображения, в том числе, автоматически.Reprojection can be performed on the left and right eye images of the viewer synchronously or asynchronously, and the choice of synchronous or asynchronous mode can be left to the viewer, who can determine his preferences empirically. Alternatively, synchronous or asynchronous mode may be selected depending on the configuration of the image display device, including automatically.

Краткое описание чертежейBrief description of the drawings

На фиг. 1 проиллюстрирован пример реализации способа репроекции 6ATSW согласно данному изобретению.In FIG. 1 illustrates an example implementation of the 6ATSW projection method according to the present invention.

На фиг. 2 представлена блок-схема алгоритма способа репроекции 6ATSW согласно данному изобретению.In FIG. 2 is a flowchart of the 6ATSW projection method according to the present invention.

На фиг. 3 проиллюстрировано соотношение размеров карты RGBA1 (1024×1024 пикселя) и карты RGBA4 (32×32 пикселя, где каждый пиксель соответствует области исходного изображения размером 32×32 пикселя).In FIG. 3 illustrates the aspect ratio of an RGBA1 map (1024×1024 pixels) and an RGBA4 map (32×32 pixels, where each pixel corresponds to a 32×32 pixel area of the original image).

На фиг. 4 условно показана структура пикселя карты RGBA3 согласно данному изобретению.In FIG. 4 schematically shows the pixel structure of an RGBA3 map according to the present invention.

На фиг. 5 проиллюстрирован принцип усреднения для обеспечения связности преобразования согласно данному изобретению.In FIG. 5 illustrates the principle of averaging to ensure the consistency of the transformation according to the present invention.

На фиг. 6 условно показан один вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.In FIG. 6 schematically shows one variant of the interaction of data processing threads during rendering and reprojection according to this invention.

На фиг. 7 условно показан другой вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.In FIG. 7 schematically shows another variant of the interaction of data processing threads during rendering and reprojection according to this invention.

На фиг. 8 условно показан еще один вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.In FIG. 8 schematically shows another variant of the interaction of data processing threads during rendering and reprojection according to this invention.

На фиг. 9 представлены кадры с наложенной на них низкополигональной сеткой – исходное изображение (слева) и репроецированное изображение (справа). In FIG. Figure 9 shows frames with a low-poly grid superimposed on them - the original image (left) and the reprojected image (right).

На фиг. 10 представлен фрагмент кадра репроецированного изображения с фиг. 9 в увеличенном виде, дополнительно подвергнутого геометрическим предыскажениям (дисторсии).In FIG. 10 shows a frame fragment of the projected image from FIG. 9 in an enlarged view, additionally subjected to geometric pre-distortions (distortions).

На фиг. 11 представлены упрощенные (схематические) изображения фрагментов кадров исходного изображения (слева) и репроецированного изображения (справа), соответствующих изображению на фиг. 10.In FIG. 11 shows simplified (schematic) images of frame fragments of the original image (left) and the reprojected image (right) corresponding to the image in FIG. 10.

На фиг. 12 представлено наложение сеток репроекции изображений с фиг. 11 (до и после репроекции) для иллюстрации смещения узлов сетки и характерных визуальных признаков изображения в результате работы алгоритма 6ATSW согласно изобретению.In FIG. 12 is an overlay of the reprojection grids of the images from FIG. 11 (before and after reprojection) to illustrate the displacement of grid points and visual image features as a result of the 6ATSW algorithm of the invention.

Осуществление изобретенияImplementation of the invention

Далее приведено описание иллюстративного примера реализации изобретения, относящееся преимущественно к системам виртуальной или дополненной реальности развлекательного, информационного, учебного, научного, производственного и другого назначения. Такие системы являются наиболее вероятными, хотя и не единственными вариантами применения способа согласно изобретению. Принципы обработки изображения 3D-сцены для уменьшения искажений изображения, появляющихся у границ объектов при репроекции, повышения частоты кадров и/или снижения объема данных в канале передачи изображения могут быть использованы в любых других системах, связанных с построением и демонстрацией изображений 3D-сцены со смещением ракурса (точки наблюдения). Примерами таких систем могут быть CAD/CAM-системы, научные системы пространственного моделирования (в частности, в области органического синтеза и биотехнологий), графические системы тренажеров для водителей автомобилей, судоводителей, пилотов, операторов строительной техники, операторов подъемно-транспортного оборудования и т.п. При этом такие системы не обязательно являются системами виртуальной или дополненной реальности, т.е. у них может быть иной уровень и иные механизмы иммерсивности.The following is a description of an illustrative example of the implementation of the invention, relating mainly to virtual or augmented reality systems for entertainment, information, educational, scientific, industrial and other purposes. Such systems are the most likely, although not the only, applications of the method according to the invention. The principles of image processing of a 3D scene to reduce image distortions that appear at the boundaries of objects during reprojection, increase the frame rate and / or reduce the amount of data in the image transmission channel can be used in any other systems related to the construction and display of images of a 3D scene with a shift angle (observation points). Examples of such systems can be CAD/CAM systems, scientific spatial modeling systems (particularly in the field of organic synthesis and biotechnology), graphical simulator systems for car drivers, navigators, pilots, construction equipment operators, material handling equipment operators, etc. P. At the same time, such systems are not necessarily virtual or augmented reality systems, i.e. they may have a different level and other mechanisms of immersiveness.

На фиг. 1 приведен иллюстративный пример реализации способа репроекции 6ATSW, в котором оригинальный кадр (в данном случае с размером изображения 1024×1024 пикселей) путем агрегирования данных цвета и глубины изображения преобразуют в композитную карту, условно обозначенную RGBA1 (также с размером изображения 1024×1024 пикселей), размер которой затем подвергают уменьшению (в данном примере – до размера 256×256 пикселей) и получают промежуточную композитную карту, условно обозначенную RGBA2, которую затем подвергают анализу изображения с целью выявления характерных визуальных признаков (далее для краткости иногда называемых просто признаками) и получают карту признаков, условно обозначенную RGBA3, размер которой затем подвергают уменьшению (например, до размера 32×32 пикселя) с получением карты признаков, условно обозначенной RGBA4, которую преобразуют в карту узлов, условно обозначенную RGBA5 (размером 33×33 пикселя), называемую также картой преобразования, на основе которой выполняют преобразование изображения оригинального кадра (т.е. его репроекцию) с получением репроецированного кадра (с размером изображения 1024×1024 пикселей). Специалисту должно быть понятно, что указанные выше численные значения выбраны исключительно с иллюстративной целью, чтобы способствовать лучшему пониманию сути данного изобретения, и что на практике эти значения могут быть другими.In FIG. 1 shows an illustrative example of the implementation of the 6ATSW reprojection method, in which the original frame (in this case with an image size of 1024 × 1024 pixels) is converted into a composite map, conventionally designated RGBA1 (also with an image size of 1024 × 1024 pixels) by aggregating image color and depth data. , the size of which is then reduced (in this example, to a size of 256 × 256 pixels) and an intermediate composite map is obtained, conventionally designated RGBA2, which is then subjected to image analysis in order to identify characteristic visual features (hereinafter, for brevity, sometimes simply called features) and get a feature map, labeled RGBA3, which is then scaled down (e.g., to 32×32 pixels) to produce a feature map, labeled RGBA4, which is converted to a node map labeled RGBA5 (33×33 pixels), also called transformation map, on the basis of which the transformation is performed image processing of the original frame (i.e. its reprojection) to obtain a reprojected frame (with an image size of 1024×1024 pixels). The specialist should be clear that the above numerical values are chosen for illustrative purposes only, to facilitate a better understanding of the essence of the present invention, and that in practice these values may be different.

Алгоритм способа репроекции 6ATSW в виде блок-схемы представлен на фиг. 2.The flowchart of the 6ATSW projection method is shown in FIG. 2.

На шаге 11 определяется оптимальный шаг сетки, используемой в дальнейшем при репроекции изображения, и оптимальное разрешение изображения, подвергаемого анализу с целью выявления характерных визуальных признаков. При определении шага сетки учитываются параметры системы VR/AR – разрешение дисплея, дисторсия линз VR/AR-гарнитуры и т.п.At step 11, the optimal grid step is determined, which is used later in the image reprojection, and the optimal resolution of the image to be analyzed in order to identify characteristic visual features. When determining the grid spacing, the parameters of the VR/AR system are taken into account - display resolution, lens distortion of the VR/AR headset, etc.

Задача репроекции, решаемая алгоритмом 6ATSW, подразумевает использование настолько быстрого способа формирования изображения для промежуточного кадра, насколько это возможно при выполнении требования к качеству сформированного изображения. Одним из наиболее быстрых способов является проекция изображения на низкополигональную сетку с последующим смещением вершин этой сетки в зависимости от перемещения пользователя. Оптимальная величина шага сетки представляет собой компромисс, поскольку уменьшение шага сетки повышает качество изображения (уменьшает артефакты), но увеличивает вычислительную нагрузку системы VR/AR, а увеличение шага сетки снижает качество изображения вследствие того, что в каждую ячейку сетки попадает большее количество объектов с разной глубиной расположения в 3D-сцене. В общем случае, шаг сетки может задаваться пользователем, исходя из его личных предпочтений, или определяться системой VR/AR на основе сопоставления производительности системы и уровня сложности 3D-сцен.The reprojection problem solved by the 6ATSW algorithm implies using as fast an image generation method for an intermediate frame as possible while meeting the requirement for the quality of the formed image. One of the fastest ways is to project an image onto a low-poly grid and then shift the vertices of this grid depending on the user's movement. The optimal grid step value is a compromise, since decreasing the grid step improves image quality (reduces artifacts), but increases the computational load of the VR / AR system, and increasing the grid step reduces image quality due to the fact that more objects with different values fall into each grid cell. location depth in the 3D scene. In general, the grid spacing can be set by the user based on his personal preferences, or determined by the VR/AR system based on a comparison of system performance and the level of complexity of 3D scenes.

Например, если разрешение по горизонтали кадра, сформированного 3D-движком, составляет 1024 пикселей, а пользователь желает использовать сетку с размером ячейки 40 пикселей по горизонтали, то оптимальная величина шага сетки может быть определена из ряда значений 1024, 512, 256, 128, 64, 32, 16 и т.д. Наиболее близким к 40 пикселям является значение 32 пикселя из этого ряда. Величина шага сетки по вертикали определяется на основе форм-фактора (т.е. соотношения размеров сторон) исходного кадра. В большинстве случаев сетка имеет квадратную ячейку, но в некоторых вариантах реализации изобретения сетка может иметь ячейку, форма которой отличается от квадратной. Например, она может представлять собой прямоугольник с отношением сторон 1:1,5, 3:4 и т.д. При использовании неортогональной системы координат сетка может иметь ячейки непрямоугольной формы.For example, if the horizontal resolution of a frame generated by a 3D engine is 1024 pixels, and the user wishes to use a grid with a cell size of 40 pixels horizontally, then the optimal grid step value can be determined from a range of values 1024, 512, 256, 128, 64 , 32, 16 etc. The closest value to 40 pixels is 32 pixels from this series. The vertical grid spacing is determined based on the form factor (i.e. aspect ratio) of the source frame. In most cases, the grid has a square cell, but in some embodiments of the invention, the grid may have a cell that is not square in shape. For example, it can be a rectangle with an aspect ratio of 1:1.5, 3:4, etc. When using a non-orthogonal coordinate system, the grid may have non-rectangular cells.

Предпочтительно выполнять анализ изображения меньшего размера, чем размер исходного изображения карты RGBA1. Это позволяет исключить или снизить влияние на репроекцию мелких элементов изображения, не имеющих критического значения, а также шумов и погрешностей на границах объектов. Кроме того, это ускоряет обработку и снижает потребление вычислительных ресурсов системы VR/AR. Предпочтительно применять кратное уменьшение размера исходного изображения. В других вариантах реализации изобретения такое уменьшение размера может быть некратным и может выполняться любым подходящим способом, известным специалистам в данной области техники.It is preferable to analyze an image smaller than the size of the original RGBA1 map image. This allows you to eliminate or reduce the impact on the reprojection of small image elements that are not critical, as well as noise and errors at the boundaries of objects. In addition, it speeds up processing and reduces the consumption of computing resources of the VR/AR system. It is preferable to apply a multiple reduction in the size of the original image. In other embodiments of the invention, such reduction in size may be non-fold and may be performed in any suitable manner known to those skilled in the art.

В некоторых вариантах реализации изобретения анализ изображения может выполняться на карте RGBA1, размер которой равен размеру исходного изображения. Это может быть приемлемым для систем VR/AR с дисплеями сравнительно низкого разрешения.In some embodiments of the invention, image analysis may be performed on an RGBA1 map that is equal in size to the size of the original image. This may be acceptable for VR/AR systems with relatively low resolution displays.

Размер изображения, подвергаемого анализу, в общем случае должен быть больше шага низкополигональной сетки, используемой при формировании репроецированного кадра (т.е. анализ должен выполняться на изображении большего разрешения, чем шаг сетки репроекции). Соотношение размера изображения для анализа и шага сетки репроекции может быть кратным. В примере на фиг. 1 размер изображения для анализа превышает размер низкополигональной сетки в 8 раз. The size of the image to be analyzed should generally be larger than the low-poly grid spacing used in the formation of the projected frame (i.e., the analysis should be performed on an image with a higher resolution than the reprojection grid spacing). The ratio of the image size for analysis and the reprojection grid step can be a multiple. In the example in FIG. 1 image size for analysis exceeds the size of the low-poly mesh by 8 times.

Выбор размера изображения, подвергаемого анализу, на шаге 11 может выполняться с учетом MIP-текстурирования, выполняемого графической подсистемой системы VR/AR. Принципы MIP-текстурирования хорошо известны специалистам (например, см. [6]), поэтому их подробное описание опущено для краткости.The choice of the size of the image to be analyzed in step 11 may be performed taking into account the MIP-texturing performed by the graphics subsystem of the VR/AR system. The principles of MIP-texturing are well known to specialists (for example, see [6]), so their detailed description is omitted for brevity.

Определение указанных выше параметров обычно выполняется один раз при инициализации или при настройке системы VR/AR перед работой. Тем не менее, в некоторых случаях алгоритм может предусматривать изменение этих параметров уже в ходе работы системы VR/AR, например, вручную – по желанию пользователя или автоматически – при изменении характера изображения 3D-сцен.The definition of the above parameters is usually done once during initialization or when setting up the VR/AR system before operation. However, in some cases, the algorithm may provide for changing these parameters already during the operation of the VR / AR system, for example, manually - at the request of the user or automatically - when changing the nature of the image of 3D scenes.

На шаге 12 в обработку поступают входные данные алгоритма – карта цветности (color map) и карта глубины (depth map), сформированные 3D-движком системы VR/AR. At step 12, the input data of the algorithm is processed - a color map (color map) and a depth map (depth map), formed by the 3D engine of the VR / AR system.

На шаге 13 выполняется нормирование карты глубины, в общем случае, поступающей от 3D-движка в формате с плавающей запятой, с приведением ее к формату, в котором каждый пиксель глубины описан одним байтом. Это позволяет ускорить обработку данных и/или снизить вычислительную нагрузку аппаратных средств системы VR/AR. Тем не менее, этот шаг является опциональным и может быть исключен в некоторых вариантах реализации изобретения.At step 13, the depth map is normalized, in the general case, coming from the 3D engine in floating point format, bringing it to a format in which each depth pixel is described by one byte. This makes it possible to speed up data processing and/or reduce the computational load of the hardware of the VR/AR system. However, this step is optional and may be omitted in some embodiments of the invention.

На шаге 14 выполняется объединение данных карты цветности и карты глубины в композитную карту RGBA1, где каналы RGB содержат информацию о цвете и яркости (красный (red), зеленый (green), синий (blue)), а канал A – информацию о глубине изображения. Упомянутое выше нормирование карты глубины позволяет реализовать карту RGBA1 в стандартном 32-битовом формате пикселей, где в канале А информация о прозрачности заменена на информацию о глубине изображения.Step 14 combines the chroma map and depth map data into an RGBA1 composite map, where the RGB channels contain color and brightness information (red (red), green (green), blue (blue)) and the A channel contains image depth information . The normalization of the depth map mentioned above makes it possible to implement the RGBA1 map in a standard 32-bit pixel format, where in channel A the transparency information is replaced by image depth information.

На шаге 15 выполняется приведение исходного изображения к размеру, определенному на шаге 11, с получением карты RGBA2. At step 15, the original image is reduced to the size determined in step 11, obtaining an RGBA2 map.

Далее на шаге 16 выполняется анализ изображения и формируется карта признаков RGBA3. Более подробно действия на шаге 16 описаны далее. Next, at step 16, image analysis is performed and an RGBA3 feature map is generated. The steps in step 16 are described in more detail below.

На шаге 17 выполняется уменьшение размера карты признаков RGBA3 с получением карты признаков RGBA4, размер которой соответствует определенному на шаге 11 шагу сетки, используемой в дальнейшем при репроекции изображения.At step 17, the size of the RGBA3 feature map is reduced to obtain an RGBA4 feature map, the size of which corresponds to the grid step determined in step 11, which is used later when reprojecting the image.

На шаге 18 на основе карты признаков формируется репроецированный кадр. Более подробно действия на шаге 17 описаны далее и проиллюстрированы на фиг. 9–12.At step 18, a reprojected frame is formed based on the feature map. The steps in step 17 are described in more detail below and are illustrated in FIG. 9–12.

На шаге 19 сформированный кадр выводится на дисплей для демонстрации наблюдателю.At step 19, the formed frame is displayed for demonstration to the observer.

На фиг. 3–5 приведен иллюстративный пример карт RGBA4 и RGBA5. На фиг. 3 проиллюстрировано соотношение размеров карты RGBA1 (1024×1024 пикселя), равного размеру исходного кадра, и карты RGBA4 (32×32 пикселя) с фиг. 1, где каждый пиксель карты RGBA4 соответствует области исходного кадра размером 32×32 пикселей. Специалисту должно быть понятно, что в различных вариантах реализации изобретения размер карты RGBA1 может быть иным, например, 1920×1024, 1920×1080, 1920×1200, 1920×1600, 1920×1920 пикселей и т.д., в зависимости от разрешения применяемого дисплея и производительности 3D-движка в системе VR/AR, и что размер 1024×1024 пикселя выбран лишь для простоты изложения иллюстративного варианта реализации изобретения.In FIG. Figures 3-5 show an illustrative example of RGBA4 and RGBA5 maps. In FIG. 3 illustrates the aspect ratio of the RGBA1 map (1024×1024 pixels) equal to the size of the original frame and the RGBA4 map (32×32 pixels) of FIG. 1, where each pixel of the RGBA4 map corresponds to a 32×32 pixel area of the source frame. The specialist should be clear that in various embodiments of the invention, the size of the RGBA1 map may be different, for example, 1920x1024, 1920x1080, 1920x1200, 1920x1600, 1920x1920 pixels, etc., depending on the resolution the display used and the performance of the 3D engine in the VR/AR system, and that the size of 1024×1024 pixels is chosen only for the sake of simplicity of the exemplary embodiment of the invention.

В иллюстративном примере на фиг. 3 исходная карта RGBA1 была подвергнута изменению размера (downsampling) с получением промежуточной карты RGBA2, при этом каждый пиксель карты RGBA2 размером 256×256 пикселей содержит некоторое усредненное значение цвета и глубины для области размером 4×4 пикселя исходной карты RGBA1. Алгоритмы усреднения значений цвета и глубины хорошо известны специалистам, поэтому их подробное описание опущено для краткости. Достаточно упомянуть о том, что такое усреднение может являться простым арифметическим усреднением, усреднением с применением взвешивающих коэффициентов или нелинейным усреднением, и что при этом могут использоваться соответствующие фильтры (например, фильтры Чебышева, Ланцоша, эллиптические фильтры и т.п.). Выбор тех или иных способов усреднения может зависеть, например, от степени усреднения (т.е. от степени изменения размера исходной карты RGBA1), характера изображения, производительности аппаратных ресурсов, доступных для выполнения этой операции, степени их загрузки другими процессами и т.д.In the illustrative example in FIG. 3, the original RGBA1 map has been downsampled to produce an intermediate RGBA2 map, with each pixel of the 256×256 pixel RGBA2 map containing some average color and depth value for a 4×4 pixel area of the original RGBA1 map. Algorithms for averaging color and depth values are well known in the art, so their detailed description is omitted for brevity. Suffice it to mention that such averaging may be simple arithmetic averaging, weighting averaging, or non-linear averaging, and that appropriate filters (eg, Chebyshev, Lanczos, elliptic filters, etc.) may be used. The choice of certain averaging methods may depend, for example, on the degree of averaging (i.e., on the degree of change in the size of the original RGBA1 map), the nature of the image, the performance of hardware resources available for this operation, the degree of their load by other processes, etc. .

На основе карты RGBA2 была сформирована карта RGBA3 признаков, каждый пиксель которой содержит информацию о том, как должна вести себя каждая соответствующая область размером 4×4 пикселя исходного кадра при формировании репроецированного изображения, т.е. в каком направлении и в какой степени должна сместиться соответствующая вершина сетки репроекции. Карта признаков содержит результаты анализа изображения по нескольким направлениям. Определение характерных визуальных признаков на изображении 3D-сцены с учетом цвета пикселей и карты глубины может выполняться с учетом градиента цвета пикселей в канале RGB и максимального значения яркости пикселей в канале A карты RGBA2 вдоль каждого направления.Based on the RGBA2 map, an RGBA3 feature map was formed, each pixel of which contains information on how each corresponding area of 4×4 pixels in the original frame should behave when forming a reprojected image, i.e. in what direction and to what extent should the corresponding vertex of the projection grid move. The feature map contains the results of image analysis in several directions. The definition of characteristic visual features in the image of the 3D scene, taking into account the color of the pixels and the depth map, can be performed taking into account the color gradient of the pixels in the RGB channel and the maximum brightness value of the pixels in channel A of the RGBA2 map along each direction.

В одном примере реализации изобретения градиент цвета пикселей в канале RGB может учитываться в отношении восьми соседних пикселей и результаты анализа изображения по нескольким направлениям могут содержать векторную сумму градиентов. В другом примере реализации изобретения градиент может учитываться в отношении не только соседних, но и более отдаленных пикселей и результаты анализа изображения по нескольким направлениям могут содержать взвешенную векторную сумму градиентов, в которой вклад пикселей на разном удалении определяется взвешивающим коэффициентом. In one embodiment of the invention, the color gradient of the pixels in the RGB channel may be taken into account with respect to eight neighboring pixels, and the results of image analysis in several directions may contain a vector sum of the gradients. In another embodiment of the invention, the gradient can be taken into account not only in relation to adjacent, but also to more distant pixels, and the results of image analysis in several directions can contain a weighted vector sum of gradients, in which the contribution of pixels at different distances is determined by a weighting factor.

В одном примере реализации изобретения максимальное значение яркости пикселей в канале A может выбираться из значений яркости каждого пикселя и восьми соседних пикселей.In one embodiment of the invention, the maximum brightness value of the pixels in channel A may be selected from the brightness values of each pixel and eight neighboring pixels.

В еще одном примере реализации изобретения анализ изображения может выполняться с использованием обученной нейронной сети. Могут быть применимы и другие методы анализа изображения, например, подобные описанным в публикации [7].In yet another embodiment of the invention, image analysis can be performed using a trained neural network. Other image analysis methods, such as those described in [7], may also be applicable.

Характерные визуальные признаки в контексте данного изобретения концептуально основаны на признаках Хаара [8]. В частности, такими признаками являются физические границы объектов в 3D-сцене, контрастные (по цвету и/или по яркости) границы областей изображения (например, в текстурах типа «зебра» или «шахматное поле») и градиенты (например, градиент безоблачного закатного неба).The characteristic visual features in the context of this invention are conceptually based on the features of Haar [8]. In particular, such features are the physical boundaries of objects in a 3D scene, contrasting (by color and/or brightness) boundaries of image areas (for example, in textures such as "zebra" or "chessboard") and gradients (for example, the gradient of a cloudless sunset sky).

Для выделения признаков также могут использоваться разнообразные известные методы, например, методы Sobel, Canny, Prewitt, Roberts, методы нечеткой логики и т.п.Various well-known methods can also be used to extract features, for example, Sobel, Canny, Prewitt, Roberts methods, fuzzy logic methods, etc.

В иллюстративном примере реализации изобретения характерные визуальные признаки на изображении анализируются по четырем направлениям: двум основным – горизонтальному и вертикальному направлениям и двум дополнительным – диагонали 1 и диагонали 2. В других случаях количество направлений при анализе признаков может быть иным, в частности, вместо двух дополнительных направлений (например, диагоналей, которые условно могут быть расположены под углом 45° к осям координатной сетки) может быть использовано четыре дополнительных направления (которые условно могут быть расположены с шагом 30° к осям координатной сетки). Увеличение количества направлений при анализе признаков повышает точность репроекции, но требует бóльших вычислительных ресурсов (в частности, большего быстродействия и большего объема памяти оборудования системы VR/AR). Поэтому выбор количества направлений носит компромиссный характер и может зависеть от ряда параметров системы VR/AR, в частности, ее от ее назначения, от характеристик дисплеев, от характера 3D-сцен и т.д.In an illustrative example of the implementation of the invention, the characteristic visual features in the image are analyzed in four directions: two main - horizontal and vertical directions and two additional - diagonal 1 and diagonal 2. In other cases, the number of directions in the analysis of features may be different, in particular, instead of two additional directions (for example, diagonals, which can be conventionally located at an angle of 45° to the axes of the coordinate grid), four additional directions can be used (which can be conditionally located with a step of 30° to the axes of the coordinate grid). Increasing the number of directions in the analysis of features increases the accuracy of the projection, but requires more computing resources (in particular, faster performance and more memory of the VR/AR system equipment). Therefore, the choice of the number of directions is a compromise and may depend on a number of parameters of the VR / AR system, in particular, on its purpose, on the characteristics of displays, on the nature of 3D scenes, etc.

На карте RGBA3 для каждого пикселя указан вес (W) признаков и глубина (D) для каждого направления. В иллюстративном примере реализации изобретения вес и глубина для четырех направлений содержатся в следующих каналах: R – горизонтальная граница; G – вертикальная граница; B – диагональ 1; A – диагональ 2 (фиг. 4). Специалисту должно быть понятно, что в других случаях количество каналов и распределение данных по ним могут быть иными.On the RGBA3 map, for each pixel, the weight (W) of the features and the depth (D) for each direction are indicated. In an illustrative embodiment of the invention, the weight and depth for the four directions are contained in the following channels: R - horizontal boundary; G - vertical border; B - diagonal 1; A, diagonal 2 (Fig. 4). The specialist should be clear that in other cases, the number of channels and the distribution of data on them may be different.

Таким образом, каждый пиксель карты RGBA3 содержит информацию о градиенте цвета в канале RGB вдоль каждого анализируемого направления и о яркости в канале A соответствующего пикселя карты RGBA2.Thus, each pixel of the RGBA3 map contains information about the color gradient in the RGB channel along each analyzed direction and about the brightness in channel A of the corresponding pixel in the RGBA2 map.

Специалисту также должно быть понятно, что в различных вариантах реализации изобретения количество пикселей в карте RGBA2 и в карте RGBA3 может быть иным. Увеличение размера карт RGBA2 и RGBA3 (т.е. количества пикселей в них по вертикали и горизонтали) повышает точность репроекции, но требует бóльших вычислительных ресурсов (в частности, большего быстродействия и большего объема памяти оборудования системы VR/AR). Поэтому выбор размера этих карт носит компромиссный характер и может зависеть от ряда параметров системы VR/AR, в частности, ее от ее назначения, от характеристик дисплеев, от производительности системы и т.д.The specialist should also be clear that in different embodiments of the invention, the number of pixels in the RGBA2 map and in the RGBA3 map may be different. Increasing the size of RGBA2 and RGBA3 maps (i.e. the number of pixels in them vertically and horizontally) improves the accuracy of the projection, but requires more computing resources (in particular, faster performance and more memory of the VR/AR system hardware). Therefore, the choice of the size of these cards is a compromise and may depend on a number of parameters of the VR / AR system, in particular, on its purpose, on the characteristics of displays, on system performance, etc.

Для использования на дальнейших шагах алгоритма 6ATSW карта RGBA3 преобразуется в карту RGBA4, размер которой определен на шаге 11. В иллюстративном примере согласно фиг. 1 и фиг. 3 карта RGBA3 подверглась уменьшению размера с 256×256 пикселей до 32×32 пикселя с получением карты RGBA4.For use in further steps of the 6ATSW algorithm, the RGBA3 map is converted to an RGBA4 map, the size of which is determined in step 11. In the illustrative example of FIG. 1 and FIG. 3, the RGBA3 map has been downsized from 256×256 pixels to 32×32 pixels to obtain an RGBA4 map.

Следует отметить, что двухступенчатое загрубление данных (первое при преобразовании исходной карты RGBA1 в карту RGBA2 и второе при преобразовании карты RGBA3 в карту RGBA4) обеспечивает лучшее соотношение точности репроекции и скорости работы алгоритма 6ATSW, чем однократное загрубление данных с соответствующим коэффициентом при преобразовании карты RGBA3 в карту RGBA4. Например, преобразование исходной карты (RGBA1) размером 1024×1024 пикселя в промежуточную карту (RGBA2) размером 256×256 пикселей, формирование карты границ (RGBA3) размером 256×256 пикселей и ее последующее преобразование в карту границ (RGBA4) размером 32×32 пикселя (см. фиг. 1), как правило, предпочтительней, чем преобразование исходной карты (RGBA1) размером 1024×1024 пикселя в карту границ (RGBA3) размером 1024×1024 пикселя с последующим формированием из нее карты границ (RGBA4) размером 32×32 пикселя.It should be noted that two-stage data coarsening (the first when converting the original RGBA1 map to an RGBA2 map and the second when converting an RGBA3 map to an RGBA4 map) provides a better ratio of projection accuracy and the speed of the 6ATSW algorithm than a single data coarsening with the corresponding coefficient when converting an RGBA3 map to RGBA4 card. For example, converting a source map (RGBA1) of 1024×1024 pixels into an intermediate map (RGBA2) of 256×256 pixels, generating a border map (RGBA3) of 256×256 pixels and then converting it to a border map (RGBA4) of 32×32 pixel (see Fig. 1), as a rule, is preferable than converting the source map (RGBA1) of 1024×1024 pixels into a border map (RGBA3) of 1024×1024 pixels and then generating a border map (RGBA4) of 32× 32 pixels.

При уменьшении размера карты RGBA3 с 256×256 пикселей до 32×32 пикселя с получением карты RGBA4 значения веса (W) признаков были усреднены по соседним пикселям (например, по четырем или восьми соседним пикселям), а значения глубины (D) признаков были усреднены по соседним пикселям (например, по четырем или восьми соседним пикселям) со взвешиванием весами (W) признаков этих пикселей.When reducing the size of the RGBA3 map from 256×256 pixels to 32×32 pixels to obtain an RGBA4 map, the feature weights (W) were averaged over neighboring pixels (e.g., four or eight neighboring pixels), and the depth (D) values of the features were averaged by neighboring pixels (for example, by four or eight neighboring pixels) with weighting (W) of the features of these pixels.

Подобно карте RGBA3, каждый пиксель карты RGBA4 содержит информацию о характерных визуальных признаках, выявленных на изображении, и о весах этих признаков. Для перехода от этой информации к данным о том, в каком направлении и в какой степени должна сместиться вершина низкополигональной сетки при репроекции, карта RGBA4 была преобразована в карту узлов RGBA5.Like an RGBA3 map, each pixel of an RGBA4 map contains information about the characteristic visual features found in the image and the weights of those features. In order to move from this information to data about in what direction and to what extent the low-poly mesh vertex should move during the reprojection, the RGBA4 map was converted into an RGBA5 node map.

Для этого на карту RGBA4 была наложена координатная сетка таким образом, чтобы узлы координатной сетки (условно обозначены окружностями на фиг. 5) были расположены в центре пикселей карты RGBA4. Как видно из фиг. 5, размер этой координатной сетки по обеим координатам на единицу превышает размер карты RGBA4. Если размер карты RGBA4 в общем случае составляет N×M, то размер второй координатной сетки составляет (N+1)×(M+1). При наложении координатной сетки на карту RGBA4 размером 32×32 пикселя, показанную в иллюстративном примере на фиг. 3, размер этой координатной сетки составляет 33×33 ячейки.To do this, a coordinate grid was superimposed on the RGBA4 map in such a way that the nodes of the coordinate grid (conventionally indicated by circles in Fig. 5) were located in the center of the pixels of the RGBA4 map. As can be seen from FIG. 5, the size of this coordinate grid in both coordinates is one larger than the size of the RGBA4 map. If the size of the RGBA4 map is generally N×M, then the size of the second grid is (N+1)×(M+1). When overlaying a grid onto the 32x32 pixel RGBA4 map shown in the illustrative example of FIG. 3, the size of this grid is 33×33 cells.

Координатная сетка размером 33×33 ячейки определяет размер карты узлов (RGBA5), называемой также картой преобразования и используемой при формировании репроецированного изображения. Каждый пиксель карты преобразования содержит информацию о том, как должна сместиться вершина каждой соответствующей области исходного кадра при формировании репроецированного изображения. The 33×33 cell coordinate grid determines the size of the node map (RGBA5), also called the transform map, and is used in generating the projected image. Each pixel of the transformation map contains information about how the vertex of each corresponding region of the source frame should move when forming the reprojected image.

Для обеспечения связности преобразования значение каждого пикселя карты RGBA5 может быть усреднено (blur) по смежным пикселям карты RGBA4. На фиг. 5 проиллюстрирован принцип такого усреднения, где пиксель карты RGBA5 (выделен перекрестной штриховкой) усреднен по четырем пикселям карты RGBA4 (выделены линейной наклонной штриховкой). При этом специалисту должно быть понятно, что на краях и в углах карты RGBA4 действуют краевые ограничения и что в этом случае усреднение либо выполняется по двум пикселям карты RGBA4 (на краях), либо отсутствует вовсе (в углах). Алгоритмы усреднения значений хорошо известны специалистам, поэтому их подробное описание опущено для краткости. Достаточно упомянуть о том, что такое усреднение может являться простым арифметическим усреднением, усреднением с применением взвешивающих коэффициентов или нелинейным усреднением с использованием соответствующих фильтров (например, фильтров Чебышева, Ланцоша, эллиптических фильтров и т.п.).To ensure consistency of the transformation, the value of each pixel of the RGBA5 map can be averaged (blur) over adjacent pixels of the RGBA4 map. In FIG. 5 illustrates the principle of such averaging, where an RGBA5 map pixel (highlighted by cross hatching) is averaged over four RGBA4 map pixels (highlighted by linear oblique shading). In this case, it should be clear to the specialist that edge restrictions apply at the edges and corners of the RGBA4 map and that in this case the averaging is either performed over two pixels of the RGBA4 map (at the edges) or not at all (at the corners). Algorithms for averaging values are well known to those skilled in the art, so their detailed description is omitted for the sake of brevity. Suffice it to mention that such averaging can be simple arithmetic averaging, weighting averaging, or non-linear averaging using appropriate filters (eg, Chebyshev, Lanczos, elliptical filters, etc.).

В результате преобразования исходного кадра на основе карты RGBA5 формируется репроецированный кадр, который выводится на дисплей для демонстрации его наблюдателю. При формировании репроецированного кадра к каждой области изображения исходного кадра применяется преобразование, определяемое соответствующим пикселем карты RGBA5, при этом каждая вершина области размером 32×32 пикселя исходного кадра смещается в зависимости от геометрического положения признаков в 3D-сцене, попавших в эту область, т.е. область деформируется в соответствии со смещением точки зрения наблюдателя. Смещение вершин этой области вызывает деформацию изображения в этой области, которая реализуется алгоритмами, известными специалистам в данной области техники. Достаточно упомянуть о том, что такая деформация может обеспечиваться, например, путем применения аффинного преобразования или других подходящих математических средств.As a result of the transformation of the original frame on the basis of the RGBA5 map, a reprojected frame is formed, which is displayed on the display to demonstrate it to the observer. When forming a reprojected frame, a transformation is applied to each area of the image of the source frame, determined by the corresponding pixel of the RGBA5 map, while each vertex of the area of 32 × 32 pixels in the source frame is shifted depending on the geometric position of the features in the 3D scene that fall into this area, i.e. e. the area is deformed in accordance with the displacement of the observer's point of view. Displacement of the vertices of this region causes image deformation in this region, which is implemented by algorithms known to those skilled in the art. Suffice it to mention that such a deformation can be achieved, for example, by applying an affine transformation or other suitable mathematical means.

Следует отметить, что на смещение вершин этой области может влиять также и движение объектов в 3D-сцене, определяемое сценарием действия в 3D-сцене и не зависящее от смещения точки зрения наблюдателя. Специалисту должно быть очевидно, что для повышения качества репроекции алгоритм может учитывать это движение объектов наряду со смещением точки зрения наблюдателя. Для учета этого движения используется вектор движения каждого пикселя исходного изображения 3D-сцены, содержащий направление и скорость движения, как это описано ранее.It should be noted that the displacement of the vertices of this area can also be affected by the movement of objects in the 3D scene, which is determined by the action scenario in the 3D scene and does not depend on the displacement of the observer's point of view. It should be obvious to a person skilled in the art that to improve the quality of the projection, the algorithm can take into account this movement of objects along with the shift in the observer's point of view. To account for this movement, the motion vector of each pixel of the original 3D scene image is used, containing the direction and speed of movement, as described earlier.

Репроекция согласно данному изобретению имеет асинхронный характер. Иными словами, формирование изображения для каждого глаза выполняется в два потока – первый поток относится к рендерингу 3D-сцены, второй поток – к выполнению репроекции 3D-сцены. Если к моменту времени, когда для поддержания требуемой частоты вывода кадров следует вывести новый кадр, рендеринг нового оригинального кадра не завершен, вместо него выводится репроецированный кадр, т.е. наиболее свежий оригинальный кадр, подвергнутый репроекции. Оригинальным в данном документе называется кадр, сформированный в потоке рендеринга, а репроецированным – кадр, сформированный в потоке репроекции. Каждый поток выполняется со своей скоростью, обусловленной параметрами соответствующего процесса – сложностью 3D-сцены, быстродействием трекинга, выделенными этому процессу вычислительными ресурсами и т.д. Скорость этих потоков может отличаться как в среднем, так и в текущем значении, т.е. скорость может не оставаться постоянной, а может зависеть, например, от сложности 3D-сцены.The projection according to the invention is asynchronous. In other words, imaging for each eye is performed in two threads - the first thread is related to rendering a 3D scene, the second thread is related to performing a 3D scene reprojection. If by the time when a new frame must be output to maintain the required frame rate, the rendering of the new original frame has not been completed, a reprojected frame is output instead, i.e. the most recent original frame that has been reprojected. In this document, an original frame is a frame generated in the rendering thread, and a reprojected frame is a frame generated in the reprojection thread. Each thread runs at its own speed, determined by the parameters of the corresponding process - the complexity of the 3D scene, the speed of tracking, the computing resources allocated to this process, etc. The speed of these streams can differ both in average and in the current value, i.e. the speed may not remain constant, but may depend, for example, on the complexity of the 3D scene.

В зависимости от способа вывода изображения на экран дисплея для левого и правого глаза пользователя, порядок, в котором исходные кадры для левого и правого глаза пользователя запрашиваются от 3D-движка и направляются на репроекцию, а репроецированные кадры выводятся на экран, может отличаться. Если в дисплее системы VR/AR использован одновременный вывод кадров для левого и правого глаза пользователя, например, если дисплей один, а для левого и правого глаза выделены, соответственно, его левая и правая половины, и изображение выводится на экран по строкам (horizontal scan line), то репроекции подвергаются одновременно кадры для левого и правого глаза. В этом случае репроецированные кадры 3D-сцены относятся к одному моменту времени.Depending on how the user's left and right eye display images are displayed, the order in which the original frames for the user's left and right eyes are requested from the 3D engine and sent to the display, and the projected frames are displayed may differ. If the display of the VR / AR system uses simultaneous display of frames for the left and right eyes of the user, for example, if there is only one display, and for the left and right eyes, respectively, its left and right halves are selected, and the image is displayed on the screen in rows (horizontal scan line), then the frames for the left and right eyes are simultaneously reprojected. In this case, the reprojected frames of the 3D scene refer to the same point in time.

Если в дисплее системы VR/AR использован попеременный вывод кадров для левого и правого глаза пользователя, например, если для каждого глаза предназначен отдельный дисплей или если дисплей один, но изображение в его левой и правой половинах выводится на экран последовательно по столбцам (vertical scan line), то кадры для левого и правого глаза могут подвергаться репроекции независимо друг от друга. В этом случае в качестве основы для репроекции используется наиболее свежий кадр, сформированный 3D-движком для соответствующего глаза, т.е. пока выполняется репроекция кадра для левого глаза, 3D-движок может успеть сформировать новый кадр для правого глаза, который будет использован непосредственно или в качестве основы для репроекции для правого глаза. В этом случае репроецированные кадры 3D-сцены относятся к разным моментам времени.If the display of the VR / AR system uses alternate display of frames for the left and right eyes of the user, for example, if a separate display is intended for each eye or if there is only one display, but the image in its left and right halves is displayed sequentially in columns (vertical scan line ), then frames for the left and right eyes can be reprojected independently of each other. In this case, the most recent frame generated by the 3D engine for the corresponding eye is used as the basis for the projection, i.e. while the frame for the left eye is being reprojected, the 3D engine may have time to generate a new frame for the right eye, which will be used directly or as the basis for the projection for the right eye. In this case, the reprojected frames of the 3D scene refer to different points in time.

На фиг. 6 и 7 проиллюстрированы два варианта реализации данного изобретения, в котором шаги 11–16 алгоритма репроекции (фиг. 2) выполняются в потоке рендеринга, а шаг 17 – в потоке репроекции. При этом длительность каждого действия показана условно, без соблюдения масштаба, тем не менее, специалисту должно быть понятно, что длительность репроекции в большинстве случаев существенно меньше длительности рендеринга.In FIG. 6 and 7 illustrate two embodiments of the present invention, in which steps 11-16 of the reprojection algorithm (FIG. 2) are performed on the render thread, and step 17 is performed on the reprojection thread. In this case, the duration of each action is shown conditionally, without observing the scale, however, it should be clear to the specialist that the duration of the reprojection in most cases is significantly less than the duration of the rendering.

В одном варианте реализации изобретения каждый сформированный в потоке рендеринга оригинальный кадр может выводиться на дисплей безусловно, т.е. без проверки актуальности данных трекинга, на основе которых сформирован этот кадр. В частности, в примере на фиг. 6 в качестве кадра N выводится оригинальный кадр, сформированный с учетом более старых данных трекинга (полученных в момент времени t1), а не репроецированный кадр, сформированный на основе предыдущего оригинального кадра, но с учетом более свежих данных трекинга (полученных в момент времени t2).In one embodiment of the invention, each original frame generated in the rendering thread can be displayed unconditionally, i.e. without checking the relevance of the tracking data on the basis of which this frame is generated. In particular, in the example of FIG. 6, as frame N, the original frame is displayed, which was generated taking into account the older tracking data (obtained at time t 1 ), and not the reprojected frame, generated based on the previous original frame, but taking into account more recent tracking data (obtained at time t 2 ).

В другом варианте реализации изобретения на дисплей может выводиться либо оригинальный кадр, либо репроецированный кадр, в зависимости от того, какой из них сформирован с учетом более свежих данных трекинга. В частности, в примере на фиг. 7 в качестве кадра N выводится репроецированный кадр, сформированный на основе предыдущего оригинального кадра, но с учетом более свежих данных трекинга (полученных в момент времени t2), а не оригинальный кадр, сформированный с учетом более старых данных трекинга (полученных в момент времени t1).In another embodiment of the invention, either the original frame or the reprojected frame can be displayed, depending on which one is generated taking into account more recent tracking data. In particular, in the example of FIG. 7, as frame N, a reprojected frame is displayed, generated on the basis of the previous original frame, but taking into account more recent tracking data (obtained at time t 2 ), and not the original frame generated taking into account older tracking data (obtained at time t 1 ).

В еще одном варианте реализации изобретения та часть алгоритма репроекции, в которой используются данные трекинга, может принудительно задерживаться с таким расчетом, чтобы сформировать репроецированный кадр возможно ближе к моменту вывода этого кадра на дисплей. Это позволяет выполнять репроекцию на самых свежих данных трекинга и за счет этого повысить качество репроецированного изображения. В частности, в примере на фиг. 8 шаг 17 выполняется с задержкой, позволяющей использовать данные трекинга, полученные момент времени t3, вместо данных трекинга, полученных в момент времени t2. Такой подход к репроекции, условно названный ALAP-репроекцией (as last as possible) может быть реализован подобно ALAP-рендерингу, описанному в более ранней заявке PCT/RU2014/001019 этого же заявителя.In yet another embodiment of the invention, that part of the reprojection algorithm that uses tracking data can be forced to delay in such a way as to form a reprojected frame as close as possible to the moment the frame is displayed on the display. This allows you to reproject on the latest tracking data and thereby improve the quality of the projected image. In particular, in the example of FIG. 8, step 17 is executed with a delay allowing the tracking data obtained at time t 3 to be used instead of the tracking data obtained at time t 2 . This approach to reprojection, tentatively called ALAP reprojection (as last as possible), can be implemented similar to the ALAP rendering described in the earlier application PCT/RU2014/001019 of the same applicant.

Следует отметить, что во всех примерах на фиг. 6–8 в качестве кадра N+1 выводится репроецированный кадр, поскольку свежий оригинальный кадр к моменту начала вывода кадра N+1 еще не сформирован.It should be noted that in all examples in FIG. 6–8, a reprojected frame is output as frame N+1, since a fresh original frame has not yet been formed by the time frame N+1 starts to be output.

Репроекция выполняется на основе данных трекинга наблюдателя, в частности, данных о положении и ориентации головы наблюдателя. Для того чтобы обеспечить минимальную задержку реагирования системы VR/AR на движение головы наблюдателя, репроекция в данном изобретении может выполняться на основе прогнозных данных о положении и ориентации головы наблюдателя в заранее определенный момент времени в будущем. Такое прогнозирование может производиться путем экстраполяции текущих данных трекинга наблюдателя с учетом исторических данных трекинга. Подробности реализации такого прогнозирования раскрыты в более ранней заявке PCT/IB2017/058068 этого же заявителя, все содержание которой включено в данный документ посредством ссылки.The reprojection is performed on the basis of the observer's tracking data, in particular, data on the position and orientation of the observer's head. In order to ensure that the VR/AR system has minimal delay in responding to the movement of the viewer's head, the projection in the present invention can be performed based on predictive data about the position and orientation of the viewer's head at a predetermined point in time in the future. Such prediction can be made by extrapolating the observer's current tracking data given the historical tracking data. Details of the implementation of such a prediction are disclosed in the earlier application PCT/IB2017/058068 of the same applicant, the entire content of which is incorporated herein by reference.

Следует отметить, что рендеринг 3D-сцены также выполняется на основе данных трекинга наблюдателя и он также может быть основан на прогнозных данных о положении и ориентации головы наблюдателя в заранее определенный момент времени в будущем. При этом горизонт прогнозирования в потоке рендеринга и в потоке репроекции может быть одинаковым или может отличаться. В частности, поскольку репроекция 3D-сцены обычно представляет собой более быстрый процесс, чем рендеринг полной 3D-сцены, горизонт прогнозирования в потоке репроекции может быть ближе, чем в потоке рендеринга. Это позволяет повысить точность прогнозирования положения наблюдателя и, следовательно, точность репроекции.It should be noted that the rendering of the 3D scene is also performed based on the tracking data of the observer, and it can also be based on predictive data about the position and orientation of the observer's head at a predetermined point in time in the future. In this case, the prediction horizon in the rendering thread and in the reprojection thread may be the same or may differ. In particular, since rendering a 3D scene is typically a faster process than rendering a full 3D scene, the prediction horizon on the render thread may be closer than that on the render thread. This makes it possible to improve the accuracy of predicting the position of the observer and, consequently, the accuracy of the projection.

Также следует отметить, что асинхронная репроекция может выполняться в отношении изображений для левого и правого глаза наблюдателя независимо. В качестве альтернативы, асинхронная репроекция может синхронизироваться в отношении изображений для левого и правого глаза, оставаясь асинхронной относительно соответствующих потоков рендеринга изображений для левого и правого глаза наблюдателя. Такая синхронизация изображений для левого и правого глаза может применяться, например, при синхронном выводе левого и правого кадров, обусловленном конструкцией дисплея, как упомянуто в описании ранее. Предпочтительный режим такой синхронизации может определяться алгоритмически или он может вводиться на основе эксперимента, например, в соответствии с личными предпочтениями пользователя системы VR/AR.It should also be noted that asynchronous projection can be performed on the images for the left and right eyes of the viewer independently. Alternatively, the asynchronous rendering may be synchronized with respect to the left and right eye images while remaining asynchronous with respect to the viewer's respective left and right eye image render threads. Such synchronization of images for the left and right eyes can be applied, for example, in the synchronous output of the left and right frames, due to the design of the display, as mentioned in the description earlier. The preferred mode of such synchronization may be determined algorithmically or it may be introduced on the basis of experiment, for example, in accordance with the personal preferences of the user of the VR/AR system.

Далее работа алгоритма репроекции 6ATSW проиллюстрирована на фиг. 9–12.Further, the operation of the 6ATSW reprojection algorithm is illustrated in FIG. 9–12.

На фиг. 9 представлены кадры с изображением 3D-сцены наложенной на них низкополигональной сеткой – исходное изображение (слева) и репроецированное изображение (справа). Кадры повернуты и расположены в ряд для большей наглядности. На фиг. 10 представлен фрагмент кадра репроецированного изображения с фиг. 9 в увеличенном виде. Следует отметить, что изображение на фиг. 10. было дополнительно подвергнутого геометрическим предыскажениям (дисторсии) для компенсации искажений, связанных с особенностями оптики головного дисплея. В данном случае для упрощения понимания проиллюстрировано строго вертикальное изменение положения головы пользователя без ее поворота. На фиг. 11 представлены упрощенные (схематические) изображения фрагментов кадров исходного изображения (слева) и репроецированного изображения (справа), соответствующих изображению на фиг. 10. Сравнение изображений на фиг. 11 позволяет ясно увидеть деформацию сетки (т.е. смещение ее узлов) и соответствующее изменение изображения, с которым эта сетка связана. In FIG. Figure 9 shows frames with a 3D scene image superimposed on them by a low-poly mesh - the original image (left) and the reprojected image (right). The frames are rotated and arranged in a row for greater clarity. In FIG. 10 shows a frame fragment of the reprojected image from FIG. 9 is enlarged. It should be noted that the image in Fig. 10. was additionally subjected to geometric distortion (distortion) to compensate for the distortion associated with the features of the head display optics. In this case, for ease of understanding, a strictly vertical change in the position of the user's head without turning it is illustrated. In FIG. 11 shows simplified (schematic) images of frame fragments of the original image (left) and the reprojected image (right) corresponding to the image in FIG. 10. Image comparison in FIG. 11 allows you to clearly see the deformation of the mesh (i.e., the displacement of its nodes) and the corresponding change in the image with which this mesh is associated.

На фиг. 12 представлено наложение сеток репроекции левого и правого изображений с фиг. 11 (до и после репроекции) для иллюстрации смещения узлов сетки и характерных визуальных признаков изображения в результате работы алгоритма 6ATSW согласно изобретению. Серым цветом (А) показано положение сетки репроекции до смещения ее узлов (т.е. соответствующее левому изображению с фиг. 11), а черным цветом (Б) показано положение сетки репроекции после смещения ее узлов (т.е. соответствующее правому изображению с фиг. 11). Смещение узлов обозначено отрезками с кружками на концах (Д). Смещение признаков проиллюстрировано на примере положения признаков, соответствующих обрешетке кровли (вверху) и балки (внизу), при этом серым цветом (В) показано положение этих признаков до смещения узлов сетки репроекции, а черным цветом (Г) – их положение после смещения узлов. Стрелками обозначено направление смещения признаков.In FIG. 12 is an overlay of the projection grids of the left and right images of FIG. 11 (before and after reprojection) to illustrate the displacement of grid points and visual image features as a result of the 6ATSW algorithm of the invention. Gray color (A) shows the position of the projection grid before shifting its nodes (i.e., corresponding to the left image in Fig. 11), and black (B) shows the position of the projection grid after shifting its nodes (i.e., corresponding to the right image from Fig. 11). Fig. 11). The displacement of nodes is indicated by segments with circles at the ends (D). The displacement of features is illustrated by the example of the position of the features corresponding to the roof lathing (top) and the beam (bottom), while the gray color (C) shows the position of these features before the displacement of the nodes of the projection grid, and the black color (D) shows their position after the displacement of the nodes. The arrows indicate the direction of feature shift.

За счет применения при репроекции весов признаков по заранее заданным направлениям алгоритм обеспечивает смещение узлов сетки репроекции в таком направлении и на такое расстояние, чтобы артефакты репроекции на границах признаков (в частности, на границах разноудаленных объектов в 3D-сцене) были минимальными. Например, смещение вдоль контрастной границы в текстуре типа «зебра» практически не вызывает появления артефактов, поэтому весовой коэффициент такого признака в этом направлении будет близок к нулю, что позволит сместить узел сетки репроекции в преимущественно другом направлении, в частности, чтобы избежать появления артефактов на границе с другой текстурой (с другим характерным направлением) или с градиентной областью изображения. Это позволяет сохранять целостность восприятия 3D-сцены наблюдателем, обеспечивая при этом требуемую частоту кадров.Due to the application of weights of features in predetermined directions during the reprojection, the algorithm ensures the displacement of the reprojection grid nodes in such a direction and to such a distance that the reprojection artifacts at the boundaries of the features (in particular, at the boundaries of objects at different distances in the 3D scene) are minimal. For example, a displacement along a contrasting border in a zebra-like texture practically does not cause the appearance of artifacts, so the weight coefficient of such a feature in this direction will be close to zero, which will allow the projection grid node to be shifted in a predominantly different direction, in particular, to avoid the appearance of artifacts on border with a different texture (with a different characteristic direction) or with a gradient area of the image. This allows you to maintain the integrity of the perception of the 3D scene by the observer, while providing the required frame rate.

Таким образом, данное изобретение позволяет выполнять репроекцию с достаточной скоростью, чтобы обеспечивать поддержание частоты вывода кадров в системе VR/AR, например, не менее 90 fps, и в то же время с достаточным качеством формирования промежуточных кадров, чтобы не разрушать эффект присутствия и не вызывать дискомфорта у большинства пользователей.Thus, the present invention makes it possible to perform projection at a sufficient speed to maintain a frame rate in the VR/AR system, for example, at least 90 fps, and at the same time with sufficient quality of intermediate framing so as not to destroy the effect of presence and not cause discomfort to most users.

Следует отметить, что в некоторых вариантах реализации изобретения размер кадра после рендеринга может быть несколько бóльшим размера фактически демонстрируемого пользователю кадра. Это может быть связано с желательностью некоторого «запаса» размера изображения для корректного выполнения дисторсии, необходимой для различных головных дисплеев, оптические характеристики которых могут различаться. В некоторых вариантах реализации изобретения этот «запас» может быть использован при репроекции согласно данному изобретению. Тем не менее, такой «запас» не может быть значительным, поскольку он приводит к непроизводительной загрузке вычислительных ресурсов, усугубляя их дефицит, преодоление которого является задачей данного изобретения.It should be noted that in some embodiments of the invention, the size of the frame after rendering may be slightly larger than the size of the frame actually shown to the user. This may be due to the desirability of some "margin" of the image size for the correct implementation of the distortion required for various head-mounted displays, the optical characteristics of which may differ. In some embodiments of the invention, this "reserve" can be used in the reprojection according to this invention. However, such a "margin" cannot be significant, since it leads to unproductive loading of computing resources, exacerbating their shortage, overcoming which is the task of this invention.

Кроме того, следует отметить, что в приведенном выше описании отражены лишь те действия, которые наиболее существенны для достижения цели изобретения. Специалисту понятно, что для функционирования системы VR/AR следует выполнить и другие необходимые действия, например, подключение оборудования, его инициализацию, запуск соответствующего программного обеспечения, передачу и прием команд и подтверждений, обмен служебными данными, синхронизацию и т.п., описание которых опущено для краткости изложения.In addition, it should be noted that the above description reflects only those actions that are most essential to achieve the purpose of the invention. The specialist understands that for the operation of the VR / AR system, other necessary actions should be performed, for example, connecting the equipment, initializing it, launching the corresponding software, sending and receiving commands and confirmations, exchanging service data, synchronizing, etc., the description of which omitted for brevity.

Также следует отметить, что описанный выше способ может быть реализован с использованием программного и аппаратного обеспечения. Оборудование и алгоритмы для обеспечения трекинга наблюдателя описаны в более ранних заявках PCT/IB2017/058068, PCT/RU2014/001019 этого же заявителя. Алгоритмы репроекции согласно данному изобретению могут выполняться программным, аппаратным или комбинированным программно-аппаратным образом. В частности, в качестве оборудования для выполнения описанного выше способа могут применяться вычислительные средства общего назначения и/или специализированные, включая центральные процессорные устройства (CPU), сигнальные процессоры (DSP), программируемые логические микросхемы (FPGA), специализированные микросхемы (ASICs) и т.п. It should also be noted that the method described above can be implemented using software and hardware. Equipment and algorithms for providing observer tracking are described in earlier applications PCT/IB2017/058068, PCT/RU2014/001019 of the same applicant. The projection algorithms of the present invention may be implemented in software, hardware, or a combination of firmware. In particular, general purpose and/or specialized computing tools, including central processing units (CPUs), signal processors (DSPs), programmable logic circuits (FPGAs), application specific circuits (ASICs), etc., can be used as equipment for performing the method described above. .P.

Обработка данных в описанном выше способе может быть сосредоточена в одном вычислительном средстве или она может выполняться распределенным образом в нескольких вычислительных средствах. Например, поток рендеринга на фиг. 6–8 может выполняться в одном вычислительном средстве, а поток репроекции может выполняться в другом вычислительном средстве. Специалисту в данной области техники должно быть понятно, что этот пример не является исчерпывающим и что распределение вычислительной нагрузки по устройствам аппаратного обеспечения может быть реализовано различным образом без отклонения от существа данного изобретения.The data processing in the method described above may be concentrated in one computing facility, or it may be performed in a distributed manner in several computing facilities. For example, the rendering thread in FIG. 6-8 may be executed on one computer, and the projection thread may be executed on another computer. One skilled in the art will appreciate that this example is not exhaustive and that distribution of computing load across hardware devices can be implemented in various ways without deviating from the spirit of the present invention.

Устройства, способы и их части, упомянутые в описании и чертежах, относятся к одному или нескольким определенным вариантам реализации изобретения, если они упоминаются со ссылкой на числовое позиционное обозначение, или ко всем вариантам реализации изобретения, в которых возможно их применение, если они упоминаются без ссылки на числовое позиционное обозначение.Devices, methods and parts thereof, mentioned in the description and drawings, refer to one or more specific embodiments of the invention, if they are mentioned with reference to the numerical reference designation, or to all embodiments of the invention in which their use is possible, if they are mentioned without references to numerical designation.

Устройства и их части, упомянутые в описании, чертежах и формуле изобретения, представляют собой программно-аппаратные средства, при этом аппаратные части одних устройств могут отличаться, частично совпадать или полностью совпадать с аппаратными частями других устройств, если иное не указано в явном виде. Аппаратные части устройств могут располагаться в различных частях других устройств, если иное не указано в явном виде. Программные части (модули) могут быть реализованы в виде программного кода, содержащегося в запоминающем устройстве.The devices and their parts mentioned in the description, drawings and claims are firmware, while the hardware of some devices may differ, partially coincide or completely coincide with the hardware of other devices, unless otherwise explicitly indicated. Hardware parts of devices may be located in various parts of other devices, unless otherwise explicitly stated. Software parts (modules) may be implemented as program code contained in a storage device.

Последовательность действий в описании способа носит иллюстративный характер и в различных вариантах реализации изобретения эта последовательность может отличаться от описанной при условии сохранения выполняемой функции и достигаемого результата.The sequence of actions in the description of the method is illustrative, and in various embodiments of the invention, this sequence may differ from that described, provided that the function performed and the result achieved are preserved.

Признаки данного изобретения могут сочетаться в различных вариантах реализации изобретения, если они не противоречат друг другу. Описанные выше варианты реализации изобретения приведены исключительно с иллюстративной целью и не предназначены для ограничения объема настоящего изобретения, определяемого формулой изобретения. Все разумные модификации, модернизации и эквивалентные замены в составе, конструкции и принципе действия настоящего изобретения, выполненные в пределах его сущности, входят в объем данного изобретения.The features of the present invention may be combined in various embodiments of the invention, as long as they do not conflict with each other. The embodiments of the invention described above are for illustrative purposes only and are not intended to limit the scope of the present invention as defined by the claims. All reasonable modifications, upgrades and equivalent substitutions in composition, construction and operation of the present invention, made within its essence, are included in the scope of this invention.

Следует также отметить, что приведенное выше описание примера реализации изобретения относится к применению способа в системах виртуальной или дополненной реальности развлекательной направленности, прежде всего в компьютерных играх. Вместе с тем, этот способ в полной мере применим в любой другой области для решения задач, связанных с адаптивным формированием промежуточных кадров на основе анализа изображения с выявлением границ разноудаленных объектов.It should also be noted that the above description of an embodiment of the invention relates to the application of the method in entertainment-oriented virtual or augmented reality systems, primarily in computer games. At the same time, this method is fully applicable in any other area for solving problems related to the adaptive formation of intermediate frames based on image analysis with detection of the boundaries of objects at different distances.

В частности, описанный выше способ может быть с успехом применен для формирования изображения в системах 3D-рендеринга учебного, научного или производственного назначения (например, в тренажерах для астронавтов, пилотов воздушных судов, операторов беспилотных транспортных средств, водителей автотранспортных средств, судоводителей, машинистов подъемных кранов, экскаваторов, проходческих щитов, добывающих комбайнов и т.д.), ныне существующих или тех, что будут разработаны в будущем.In particular, the method described above can be successfully applied to image formation in 3D rendering systems for educational, scientific or industrial purposes (for example, in simulators for astronauts, aircraft pilots, unmanned vehicle operators, motor vehicle drivers, navigators, lift operators). cranes, excavators, tunneling shields, miners, etc.), currently existing or those that will be developed in the future.

Список непатентных источниковList of non-patent sources

1. Артем Клиновицкий. Автооптимизация виртуальной реальности или в чем разница между репроекцией, timewarp и spacewarp. Habr: Pixonic, 24.08.2017 https://habr.com/company/pixonic/blog/336140/1. Artem Klinovitsky. Auto-optimization of virtual reality or what is the difference between reprojection, timewarp and spacewarp. Habr: Pixonic, 08/24/2017 https://habr.com/company/pixonic/blog/336140/

2. Timewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Timewarp/2. Timewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Timewarp/

3. Michael Antonov. Asynchronous Timewarp Examined. Oculus developer blog, 02.03.2015 https://developer.oculus.com/blog/asynchronous-timewarp-examined/3.Michael Antonov. Asynchronous Timewarp Examined. Oculus developer blog, 03/02/2015 https://developer.oculus.com/blog/asynchronous-timewarp-examined/

4. Asynchronous Spacewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Asynchronous_Spacewarp/4. Asynchronous Spacewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Asynchronous_Spacewarp/

5. Dean Beeler, Ed Hutchins, Paul Pedriana. Asynchronous Spacewarp. Oculus developer blog, 10.11.2016 https://developer.oculus.com/blog/asynchronous-spacewarp/5. Dean Beeler, Ed Hutchins, Paul Pedriana. Asynchronous Spacewarp. Oculus developer blog, 11/10/2016 https://developer.oculus.com/blog/asynchronous-spacewarp/

6. Mipmap. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Mipmap/6. Mipmap. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Mipmap/

7. Brian A. Barsky, Michael J. Tobias, Daniel R. Horn, Derrick P. Chu. Investigating occlusion and discretization problems in image space blurring techniques. Proceedings of Conference: Vision, Video, and Graphics, VVG 2003, University of Bath, UK, July 10–11th, 20037. Brian A. Barsky, Michael J. Tobias, Daniel R. Horn, Derrick P. Chu. Investigating occlusion and discretization problems in image space blurring techniques. Proceedings of Conference: Vision, Video, and Graphics, VVG 2003, University of Bath, UK, July 10–11 th , 2003

8. Haar-like feature. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Haar-like_feature/8. Haar-like feature. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Haar-like_feature/

Claims (38)

1. Способ обработки изображения 3D-сцены, включающий в себя следующие шаги:1. A method for processing an image of a 3D scene, including the following steps: (1) принимают данные цветности и данные глубины исходного изображения 3D-сцены для ракурса А;(1) receiving color data and depth data of the original image of the 3D scene for angle A; (2) на основе данных цветности определяют визуальные признаки изображения 3D-сцены и весовые значения визуальных признаков изображения, а на основе данных глубины определяют глубину визуальных признаков изображения;(2) based on the color data, the visual features of the image of the 3D scene and the weight values of the visual features of the image are determined, and based on the depth data, the depth of the visual features of the image is determined; (3) формируют низкополигональную сетку для репроекции;(3) forming a low-poly mesh for the projection; (4) выполняют репроекцию изображения 3D-сцены для ракурса Б, отличного от ракурса А, путем смещения узлов низкополигональной сетки в зависимости от весовых значений и глубины визуальных признаков изображения.(4) reprojecting the image of the 3D scene for angle B, different from angle A, by shifting the nodes of the low-poly mesh depending on the weight values and the depth of the visual features of the image. 2. Способ по п. 1, в котором до шага (2) размер исходного изображения 3D-сцены уменьшают для снижения влияния шумов изображения.2. The method of claim 1, wherein prior to step (2), the size of the original image of the 3D scene is reduced to reduce the effect of image noise. 3. Способ по п. 2, в котором при уменьшении размера исходного изображения 3D-сцены применяют MIP-текстурирование.3. The method according to claim 2, in which MIP-texturing is applied while reducing the size of the original image of the 3D scene. 4. Способ по п. 2, в котором при уменьшении размера исходного изображения 3D-сцены данные цветности и данные глубины подвергают усреднению и/или фильтрации.4. The method of claim. 2, in which when reducing the size of the original image of the 3D scene, the color data and depth data are subjected to averaging and/or filtering. 5. Способ по п. 1, в котором каждая ячейка низкополигональной сетки сопоставлена с областью исходного изображения 3D-сцены.5. The method according to claim 1, in which each cell of the low-poly grid is compared with an area of the original image of the 3D scene. 6. Способ по п. 1, в котором до шага (3) определяют оптимальный размер низкополигональной сетки.6. The method of claim. 1, in which before step (3) determine the optimal size of the low-poly mesh. 7. Способ по п. 1, в котором до шага (4) размер матрицы весовых значений и глубины каждого визуального признака уменьшают до размера низкополигональной сетки.7. The method of claim 1, wherein prior to step (4), the size of the matrix of weights and depths of each visual feature is reduced to the size of a low poly mesh. 8. Способ по п. 7, в котором при уменьшении размера матрицы весовых значений и глубины весовые значения каждого визуального признака усредняют, а глубину каждого визуального признака взвешивают на основе весовых значений.8. The method of claim 7, wherein, as the size of the matrix of weights and depth are reduced, the weights of each visual feature are averaged, and the depth of each visual feature is weighted based on the weight values. 9. Способ по п. 8, в котором усреднение и взвешивание для каждого элемента матрицы весовых значений и глубины выполняют по смежным с ним элементам.9. The method of claim 8, wherein each element of the weight and depth matrix is averaged and weighted over its adjacent elements. 10. Способ по п. 1, в котором визуальные признаки изображения определяют по множеству направлений.10. The method of claim. 1, in which the visual features of the image are determined in multiple directions. 11. Способ по п. 10, в котором множество направлений визуальных признаков изображения включает в себя вертикальное направление и горизонтальное направление.11. The method of claim 10, wherein the plurality of image visual feature directions includes a vertical direction and a horizontal direction. 12. Способ по п. 11, в котором множество направлений визуальных признаков изображения включает в себя по меньшей мере два наклонных направления.12. The method of claim 11, wherein the plurality of image visual feature directions includes at least two oblique directions. 13. Способ по п. 1, в котором визуальные признаки изображения определяют с применением операции свертки.13. The method of claim 1, wherein the visual features of the image are determined using a convolution operation. 14. Способ по п. 1, в котором визуальные признаки изображения определяют с применением нейронной сети.14. The method of claim. 1, in which the visual features of the image are determined using a neural network. 15. Способ по п. 1, в котором смещение вершин узлов низкополигональной сетки определяют методом наименьших квадратов.15. The method of claim. 1, in which the offset of the vertices of the nodes of the low-poly mesh is determined by the least squares method. 16. Способ по п. 1, в котором смещение вершин узлов низкополигональной сетки определяют с применением нейронной сети.16. The method of claim. 1, in which the offset of the vertices of the nodes of the low-poly mesh is determined using a neural network. 17. Способ по п. 1, в котором до шага (2) выполняют нормирование данных глубины исходного изображения 3D-сцены.17. The method of claim. 1, in which before step (2) perform the normalization of the depth data of the original image of the 3D scene. 18. Способ по любому из пп. 1–17, в котором на шаге (1) дополнительно принимают вектор движения каждого пикселя исходного изображения 3D-сцены, содержащий направление и скорость движения.18. The method according to any one of paragraphs. 1–17, in which at step (1) the motion vector of each pixel of the original image of the 3D scene is additionally received, containing the direction and speed of motion. 19. Способ по п. 18, в котором до шага (4) для каждого элемента матрицы весовых значений и глубины на основе вектора движения определяют параметры движения в направлениях визуальных признаков изображения.19. The method of claim 18, wherein prior to step (4), for each element of the weight and depth matrix, motion parameters are determined based on the motion vector in the directions of the visual features of the image. 20. Способ по п. 19, в котором на шаге (4) репроекцию изображения 3D-сцены выполняют с учетом параметров движения.20. The method according to claim 19, wherein in step (4) the 3D scene image is reprojected taking into account motion parameters. 21. Способ обеспечения частоты кадров изображения 3D-сцены в устройстве демонстрации изображения, включающий в себя следующие шаги:21. A method for providing a frame rate of an image of a 3D scene in an image display device, including the following steps: (1) получают кадр исходного изображения 3D-сцены из устройства формирования изображения;(1) receiving a frame of the original image of the 3D scene from the imaging device; (2) выполняют обработку исходного изображения 3D-сцены согласно любому из пп. 1–20;(2) perform processing of the original image of the 3D scene according to any one of paragraphs. 1–20; (3) демонстрируют наблюдателю кадр репроецированного изображения 3D-сцены до получения следующего кадра изображения 3D-сцены из устройства формирования изображения.(3) showing a frame of the projected image of the 3D scene to the viewer until the next image frame of the 3D scene is received from the imaging apparatus. 22. Способ по п. 21, в котором репроекцию изображения 3D-сцены выполняют с учетом данных трекинга наблюдателя.22. The method of claim. 21, in which the reprojection of the image of the 3D scene is performed taking into account the tracking data of the observer. 23. Способ по п. 22, в котором данные трекинга наблюдателя представляют собой прогнозные данные о положении и ориентации головы наблюдателя в заранее заданный момент времени в будущем.23. The method of claim 22, wherein the observer tracking data is predictive data about the position and orientation of the observer's head at a predetermined point in time in the future. 24. Способ по п. 23, в котором заранее заданный момент времени в будущем максимально приближен к моменту демонстрации наблюдателю исходного или репроецированного изображения 3D-сцены при обеспечении заранее заданной частоты вывода кадров.24. The method of claim 23, wherein the predetermined time in the future is as close as possible to the time the original or projected image of the 3D scene is shown to the viewer while providing the predetermined frame rate. 25. Способ по п. 22, в котором наблюдателю демонстрируют каждый кадр исходного изображения 3D-сцены без проверки возраста данных трекинга наблюдателя, а кадр репроецированного изображения 3D-сцены демонстрируют наблюдателю только в тех случаях, когда скорость формирования 3D-движком кадров исходного изображения 3D-сцены недостаточна для обеспечения заранее заданной частоты вывода кадров.25. The method according to claim 22, in which the viewer is shown each frame of the original image of the 3D scene without checking the age of the tracking data of the observer, and the frame of the reproduced image of the 3D scene is shown to the observer only in those cases when the frame rate of the 3D engine of the original 3D image -scene is not sufficient to provide a predetermined frame rate. 26. Способ по п. 22, в котором наблюдателю демонстрируют либо кадр исходного изображения 3D-сцены, либо кадр репроецированного изображения 3D-сцены, в зависимости от того, какой из них соответствует более свежим данным трекинга наблюдателя, при обеспечении заранее заданной частоты вывода кадров.26. The method of claim 22, wherein the observer is shown either a frame of the original 3D scene image or a frame of the projected 3D scene image, whichever corresponds to more recent observer tracking data, while providing a predetermined frame rate. . 27. Способ по п. 22, в котором формирование репроецированного изображения 3D-сцены задерживают таким образом, чтобы использовать наиболее свежие данные трекинга наблюдателя и формировать репроецированный кадр возможно ближе к моменту демонстрации наблюдателю при обеспечении заранее заданной частоты вывода кадров.27. The method according to claim 22, wherein the generation of the projected image of the 3D scene is delayed so as to use the most recent observer tracking data and generate the projected frame as close as possible to the time of demonstration to the observer while providing a predetermined frame rate. 28. Способ по п. 21, выполняемый в отношении изображений для левого и правого глаза наблюдателя синхронно.28. The method of claim. 21, performed on images for the left and right eyes of the observer synchronously. 29. Способ по п. 21, выполняемый в отношении изображений для левого и правого глаза наблюдателя асинхронно.29. The method of claim. 21, performed on the images for the left and right eyes of the viewer asynchronously. 30. Способ по п. 28 или 29, в котором синхронный или асинхронный режим выбирают согласно предпочтению наблюдателя.30. The method of claim. 28 or 29, in which the synchronous or asynchronous mode is selected according to the preference of the observer. 31. Способ по п. 28 или 29, в котором синхронный или асинхронный режим выбирают в зависимости от конфигурации устройства демонстрации изображения.31. The method according to claim 28 or 29, wherein the synchronous or asynchronous mode is selected depending on the configuration of the image display device.
RU2021122712A 2021-07-29 Method for asynchronous reprojection of 3d-scene image RU2792721C2 (en)

Publications (2)

Publication Number Publication Date
RU2021122712A RU2021122712A (en) 2023-01-30
RU2792721C2 true RU2792721C2 (en) 2023-03-23

Family

ID=

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639686C2 (en) * 2012-07-20 2017-12-21 Конинклейке Филипс Н.В. Metadata for depth filtration
RU2698402C1 (en) * 2018-08-30 2019-08-26 Самсунг Электроникс Ко., Лтд. Method of training a convolutional neural network for image reconstruction and a system for forming an image depth map (versions)

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639686C2 (en) * 2012-07-20 2017-12-21 Конинклейке Филипс Н.В. Metadata for depth filtration
RU2698402C1 (en) * 2018-08-30 2019-08-26 Самсунг Электроникс Ко., Лтд. Method of training a convolutional neural network for image reconstruction and a system for forming an image depth map (versions)

Similar Documents

Publication Publication Date Title
US11704768B2 (en) Temporal supersampling for foveated rendering systems
AU2017246716B2 (en) Efficient determination of optical flow between images
Regan et al. Priority rendering with a virtual reality address recalculation pipeline
US11270492B2 (en) Graphics processing systems
US10909659B2 (en) Super-resolution image processing using a machine learning system
US11862128B2 (en) Systems and methods for foveated rendering
US10217259B2 (en) Method of and apparatus for graphics processing
JP7201869B1 (en) Generate new frames with rendered and unrendered content from the previous eye
WO2018158555A1 (en) Antialiasing in inpainted images
CN109510975B (en) Video image extraction method, device and system
WO2022228383A1 (en) Graphics rendering method and apparatus
WO2020219177A1 (en) Efficient rendering of high-density meshes
US20180213215A1 (en) Method and device for displaying a three-dimensional scene on display surface having an arbitrary non-planar shape
RU2792721C2 (en) Method for asynchronous reprojection of 3d-scene image
US20220108420A1 (en) Method and system of efficient image rendering for near-eye light field displays
CN114339191A (en) Naked eye three-dimensional display method based on multi-viewpoint reconstruction
US20230030247A1 (en) Method of asynchronous reprojection of an image of a 3d scene
KR101425321B1 (en) System for displaying 3D integrated image with adaptive lens array, and method for generating elemental image of adaptive lens array
US20220326527A1 (en) Display System Optimization
Wetzstein Augmented and virtual reality
KR101784208B1 (en) System and method for displaying three-dimension image using multiple depth camera
CN117496023A (en) Gaze point rendering method, device, medium, and program
US20150109294A1 (en) On-Demand Transformation Aware Shape Tessellation