KR102543136B1 - Cloud vr-based 3d image provision method - Google Patents

Cloud vr-based 3d image provision method Download PDF

Info

Publication number
KR102543136B1
KR102543136B1 KR1020210071110A KR20210071110A KR102543136B1 KR 102543136 B1 KR102543136 B1 KR 102543136B1 KR 1020210071110 A KR1020210071110 A KR 1020210071110A KR 20210071110 A KR20210071110 A KR 20210071110A KR 102543136 B1 KR102543136 B1 KR 102543136B1
Authority
KR
South Korea
Prior art keywords
image
rendering data
images
game
vertices
Prior art date
Application number
KR1020210071110A
Other languages
Korean (ko)
Other versions
KR20220162930A (en
Inventor
김동근
조성현
김한별
주재현
Original Assignee
(주)이머시브캐스트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)이머시브캐스트 filed Critical (주)이머시브캐스트
Priority to KR1020210071110A priority Critical patent/KR102543136B1/en
Publication of KR20220162930A publication Critical patent/KR20220162930A/en
Application granted granted Critical
Publication of KR102543136B1 publication Critical patent/KR102543136B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/356Image reproducers having separate monoscopic and stereoscopic modes
    • H04N13/359Switching between monoscopic and stereoscopic modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/158Switching image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4781Games
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/81Monomedia components thereof
    • H04N21/816Monomedia components thereof involving special video data, e.g 3D video

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

본 발명은 클라우드 VR 기반의 3차원 영상 제공 방법에 관한 것으로, 2차원 영상을 제공하도록 구현된 게임을 실행하는 단계; 상기 게임의 실행 과정에서 상기 2차원 영상의 렌더링 데이터를 후킹하여 저장하는 단계; 상기 렌더링 데이터를 기초로 상기 2차원 영상을 생성하는 단계; 상기 2차원 영상의 깊이 정보를 획득하는 단계; 상기 깊이 정보를 기초로 한 쌍의 양안 영상에 관한 버텍스들의 위치를 각각 결정하는 단계; 상기 버텍스들의 위치를 기초로 상기 렌더링 데이터를 이용하여 상기 양안 영상을 각각 렌더링하는 단계; 및 상기 양안 영상을 통합하여 하나의 3차원 영상을 생성하는 단계;를 포함한다.The present invention relates to a cloud VR-based 3D image providing method, comprising the steps of executing a game implemented to provide a 2D image; hooking and storing rendering data of the 2D image during the execution of the game; generating the 2D image based on the rendering data; obtaining depth information of the 2D image; determining positions of vertices of a pair of binocular images based on the depth information; rendering the binocular images respectively using the rendering data based on the positions of the vertices; and generating a single 3D image by integrating the images of both eyes.

Description

클라우드 VR 기반의 3차원 영상 제공 방법{CLOUD VR-BASED 3D IMAGE PROVISION METHOD}Cloud VR-based 3D image provision method {CLOUD VR-BASED 3D IMAGE PROVISION METHOD}

본 발명은 3차원 영상 생성 기술에 관한 것으로, 보다 상세하게는 일반적인 PC 게임의 2차원 영상을 3차원 영상으로 변환하여 제공할 수 있는 클라우드 VR 기반의 3차원 영상 제공 방법에 관한 것이다.The present invention relates to a 3D image generation technology, and more particularly, to a cloud VR-based 3D image providing method capable of converting a 2D image of a general PC game into a 3D image and providing the same.

일반적인 PC 게임을 HMD 장비를 통해 실행시키는 경우 단지 눈앞에 있는 가상의 모니터를 통해 게임 영상이 재생될 뿐이고 사용자에게 실제와 같은 입체감을 제공하기 어렵다. VR 모드를 지원하는 게임이 존재하긴 하지만, 일반적인 PC 게임을 클라우드 VR 환경에서 실제감 있게 재생하는 것은 쉽지 않다.When a general PC game is executed through an HMD device, the game image is only played through a virtual monitor in front of the user's eyes, and it is difficult to provide a realistic three-dimensional effect to the user. Although there are games that support VR mode, it is not easy to play general PC games realistically in a cloud VR environment.

게임의 실행을 통해 생성되는 2차원의 비디오 영상은 장면에 나타난 객체들을 하나의 시점(view point)에서 관찰한 평면 영상에 해당하고, 각 객체의 깊이(depth) 정보를 표현하지 못하기 때문에 입체감 있는 영상을 표현하기 어렵다.The 2D video image generated through the execution of the game corresponds to a flat image of the objects in the scene observed from a single point of view, and since it cannot express the depth information of each object, it has a three-dimensional effect. It is difficult to express the image.

3차원 영상을 생성하기 위해서는 객체를 서로 다른 각도에서 촬영된 두 개 이상의 영상을 이용하여 3D 영상으로 변환하거나, 또는, 미리 설정된 데이터 베이스를 활용하여 객체의 깊이 정보를 계산하는 방법 등이 사용될 수 있다.To generate a 3D image, a method of converting an object into a 3D image using two or more images taken from different angles or calculating depth information of an object using a preset database may be used. .

그러나, 이러한 방법은 두 개 이상의 카메라를 이용하는 특수 촬영 장치를 사용하거나, 각각의 영상에 맞는 데이터 베이스를 미리 저장할 필요가 있다는 점에서 일반적인 PC 게임의 실행을 통해 3D 영상을 제공하는 것은 매우 어려운 일이다.However, in this method, it is very difficult to provide 3D images through the execution of a general PC game in that it is necessary to use a special shooting device using two or more cameras or to store a database suitable for each image in advance. .

한국등록특허 제10-1054043호 (2011.07.28)Korean Patent Registration No. 10-1054043 (2011.07.28)

본 발명의 일 실시예는 일반적인 PC 게임의 2차원 영상을 3차원 영상으로 변환하여 제공할 수 있는 클라우드 VR 기반의 3차원 영상 제공 방법을 제공하고자 한다.An embodiment of the present invention is to provide a cloud VR-based 3D video providing method capable of converting a 2D video of a general PC game into a 3D video and providing the same.

본 발명의 일 실시예는 양안 영상 각각에 대해 버텍스의 위치 정보 중에서 z값을 이용하여 지오메트리 자체를 패럴랙스 맵핑 알고리즘과 같이 이동시킴으로써 종래 패럴랙스 맵핑의 문제를 개선하면서 보다 몰입감 있는 VR 영상을 제공할 수 있는 클라우드 VR 기반의 3차원 영상 제공 방법을 제공하고자 한다.An embodiment of the present invention provides a more immersive VR image while improving the problem of conventional parallax mapping by moving the geometry itself like a parallax mapping algorithm using the z value among the positional information of vertices for each of the binocular images. It is intended to provide a cloud VR-based 3D image providing method that can be used.

실시예들 중에서, 클라우드 VR 기반의 3차원 영상 제공 방법에 관한 것으로, 2차원 영상을 제공하도록 구현된 게임을 실행하는 단계; 상기 게임의 실행 과정에서 상기 2차원 영상의 렌더링 데이터를 후킹하여 저장하는 단계; 상기 렌더링 데이터를 기초로 상기 2차원 영상을 생성하는 단계; 상기 2차원 영상의 깊이 정보를 획득하는 단계; 상기 깊이 정보를 기초로 한 쌍의 양안 영상에 관한 버텍스들의 위치를 각각 결정하는 단계; 상기 버텍스들의 위치를 기초로 상기 렌더링 데이터를 이용하여 상기 양안 영상을 각각 렌더링하는 단계; 및 상기 양안 영상을 통합하여 하나의 3차원 영상을 생성하는 단계;를 포함한다.Among the embodiments, it relates to a cloud VR-based 3D image providing method, comprising: executing a game implemented to provide a 2D image; hooking and storing rendering data of the 2D image during the execution of the game; generating the 2D image based on the rendering data; obtaining depth information of the 2D image; determining positions of vertices of a pair of binocular images based on the depth information; rendering the binocular images respectively using the rendering data based on the positions of the vertices; and generating a single 3D image by integrating the images of both eyes.

상기 실행하는 단계는 상기 게임을 VR 기기를 통해 실행하는 단계를 포함할 수 있다.The executing may include executing the game through a VR device.

상기 저장하는 단계는 상기 2차원 영상의 버텍스(Vertex) 정보, 텍스쳐(Texture) 정보 및 쉐이더(Shader) 정보를 포함하는 장면 데이터를 상기 렌더링 데이터로서 후킹하는 단계를 포함할 수 있다.The storing may include hooking scene data including vertex information, texture information, and shader information of the 2D image as the rendering data.

상기 결정하는 단계는 상기 2차원 영상의 버텍스들에 대해 상기 깊이 정보에 관한 z값을 이용하여 양안 각각의 아이(eye) 벡터를 기준으로 오프셋(offset)만큼 이동시킴으로써 상기 버텍스들의 위치를 결정하는 단계를 포함할 수 있다.The determining step may include determining positions of vertices of the 2D image by moving the vertices of the 2D image by an offset based on an eye vector of each of both eyes using the z value related to the depth information. can include

상기 저장하는 단계는 상기 렌더링 데이터를 복사하여 2개의 렌더링 데이터 집합들을 생성하는 단계를 포함하고, 상기 결정하는 단계는 상기 2개의 렌더링 데이터 집합들을 각각 좌안 및 우안에 매칭한 다음 상기 버텍스들의 위치를 독립적으로 결정하는 단계를 포함할 수 있다.The storing step includes generating two rendering data sets by copying the rendering data, and the determining step includes matching the two rendering data sets to the left eye and the right eye, respectively, and then determining the positions of the vertices independently. It may include the step of determining as.

상기 3차원 영상을 생성하는 단계는 상기 양안 영상의 각 프레임마다 동일 픽셀 간의 합병(merge)를 통해 상기 3차원 영상의 프레임 이미지를 생성하는 단계를 포함할 수 있다.The generating of the 3D image may include generating a frame image of the 3D image by merging identical pixels in each frame of the binocular image.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.The disclosed technology may have the following effects. However, it does not mean that a specific embodiment must include all of the following effects or only the following effects, so it should not be understood that the scope of rights of the disclosed technology is limited thereby.

본 발명의 일 실시예에 따른 클라우드 VR 기반의 3차원 영상 제공 방법은 일반적인 PC 게임의 2차원 영상을 3차원 영상으로 변환하여 제공할 수 있다.A cloud VR-based 3D image providing method according to an embodiment of the present invention may convert a 2D image of a general PC game into a 3D image and provide the converted 3D image.

본 발명의 일 실시예에 따른 클라우드 VR 기반의 3차원 영상 제공 방법은 양안 영상 각각에 대해 버텍스의 위치 정보 중에서 z값을 이용하여 지오메트리 자체를 패럴랙스 맵핑 알고리즘과 같이 이동시킴으로써 종래 패럴랙스 맵핑의 문제를 개선하면서 보다 몰입감 있는 VR 영상을 제공할 수 있다.The cloud VR-based 3D image providing method according to an embodiment of the present invention moves the geometry itself like a parallax mapping algorithm using the z value among the positional information of vertices for each of the binocular images, thereby solving the problem of conventional parallax mapping. While improving, it is possible to provide a more immersive VR image.

도 1은 본 발명에 따른 영상 제공 시스템을 설명하는 도면이다.
도 2는 도 1의 영상 제공 서버의 시스템 구성을 설명하는 도면이다.
도 3은 도 1의 영상 제공 서버의 기능적 구성을 설명하는 도면이다.
도 4는 본 발명에 따른 클라우드 VR 기반의 3차원 영상 제공 방법을 설명하는 순서도이다.
도 5는 패럴랙스 맵핑을 통해 3D 영상을 생성하는 방법을 설명하는 도면이다.
도 6은 본 발명에 따른 3차원 영상 제공 방법의 일 실시예를 설명하는 도면이다.
1 is a diagram illustrating an image providing system according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the video providing server of FIG. 1 .
FIG. 3 is a diagram explaining the functional configuration of the video providing server of FIG. 1 .
4 is a flowchart illustrating a cloud VR-based 3D video providing method according to the present invention.
5 is a diagram explaining a method of generating a 3D image through parallax mapping.
6 is a diagram for explaining an embodiment of a 3D image providing method according to the present invention.

본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.Since the description of the present invention is only an embodiment for structural or functional description, the scope of the present invention should not be construed as being limited by the embodiments described in the text. That is, since the embodiment can be changed in various ways and can have various forms, it should be understood that the scope of the present invention includes equivalents capable of realizing the technical idea. In addition, since the object or effect presented in the present invention does not mean that a specific embodiment should include all of them or only such effects, the scope of the present invention should not be construed as being limited thereto.

한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.Meanwhile, the meaning of terms described in this application should be understood as follows.

"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as "first" and "second" are used to distinguish one component from another, and the scope of rights should not be limited by these terms. For example, a first element may be termed a second element, and similarly, a second element may be termed a first element.

어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It should be understood that when an element is referred to as being “connected” to another element, it may be directly connected to the other element, but other elements may exist in the middle. On the other hand, when an element is referred to as being "directly connected" to another element, it should be understood that no intervening elements exist. Meanwhile, other expressions describing the relationship between components, such as “between” and “immediately between” or “adjacent to” and “directly adjacent to” should be interpreted similarly.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Expressions in the singular number should be understood to include plural expressions unless the context clearly dictates otherwise, and terms such as “comprise” or “having” refer to an embodied feature, number, step, operation, component, part, or these. It should be understood that it is intended to indicate that a combination exists, and does not preclude the possibility of the presence or addition of one or more other features, numbers, steps, operations, components, parts, or combinations thereof.

각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In each step, the identification code (eg, a, b, c, etc.) is used for convenience of explanation, and the identification code does not describe the order of each step, and each step clearly follows a specific order in context. Unless otherwise specified, it may occur in a different order than specified. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 발명은 컴퓨터가 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현될 수 있고, 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can be implemented as computer readable code on a computer readable recording medium, and the computer readable recording medium includes all types of recording devices storing data that can be read by a computer system. . Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices. In addition, the computer-readable recording medium may be distributed to computer systems connected through a network, so that computer-readable codes may be stored and executed in a distributed manner.

여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present invention belongs, unless defined otherwise. Terms defined in commonly used dictionaries should be interpreted as consistent with meanings in the context of the related art, and cannot be interpreted as having ideal or excessively formal meanings unless explicitly defined in the present application.

도 1은 본 발명에 따른 영상 제공 시스템을 설명하는 도면이다.1 is a diagram illustrating an image providing system according to the present invention.

도 1을 참조하면, 영상 제공 시스템(100)은 VR 기기(110) 및 영상 제공 서버(130)를 포함할 수 있다.Referring to FIG. 1 , an image providing system 100 may include a VR device 110 and an image providing server 130 .

VR 기기(110)는 AR/VR 영상을 재생할 수 있는 사용자 단말에 해당할 수 있다. 여기에서, VR 기기(110)는 기본적으로 HMD(Head Mounted Display) 단말로 구현될 수 있으나, 반드시 이에 한정되지 않고, VR/AR 영상을 재생할 수 있는 다양한 디바이스로 구현될 수 있음은 물론이다. VR 기기(110)는 영상 제공 서버(130)와 네트워크를 통해 연결되어 데이터를 주고 받을 수 있다.The VR device 110 may correspond to a user terminal capable of reproducing AR/VR images. Here, the VR device 110 may be basically implemented as a Head Mounted Display (HMD) terminal, but is not necessarily limited thereto, and may be implemented as various devices capable of reproducing VR/AR images, of course. The VR device 110 may be connected to the video providing server 130 through a network to exchange data.

또한, VR 기기(110)는 본 발명에 따른 클라우드 VR 기반의 3차원 영상 제공 방법을 통해 동작하도록 구현될 수 있다. 이를 위해, VR 기기(110)는 영상 제공 서버(130)와 연동하여 동작할 수 있다. 즉, VR 기기(110)는 영상 제공 서버(130)와 상호 연동하여 2D 영상을 제공하도록 구현된 게임을 실행할 수 있고, 게임 실행 동안 본 발명에 따른 클라우드 VR 기반의 3차원 영상 제공을 위한 구체적 동작을 수행할 수 있다.In addition, the VR device 110 may be implemented to operate through the cloud VR-based 3D image providing method according to the present invention. To this end, the VR device 110 may operate in conjunction with the video providing server 130 . That is, the VR device 110 may execute a game implemented to provide a 2D video by interworking with the video providing server 130, and during the execution of the game, specific operations for providing a 3D video based on cloud VR according to the present invention may be performed. can be performed.

예를 들어, VR 기기(110)는 게임 실행 요청 신호를 생성하여 영상 제공 서버(130)에 전달할 수 있고, 영상 제공 서버(130)는 해당 요청 신호를 수신하여 대응하는 게임을 실행하고, 게임 실행에 따른 2차원 게임 영상을 3차원 영상으로 변환한 후 VR 기기(110)에게 전송할 수 있다. 이때, 영상 제공 서버(130)는 변환된 3차원 영상을 인코딩(encoding) 한 후 VR 기기(110)에게 전송할 수 있으며, VR 기기(110)는 해당 3차원 영상을 수신하여 디코딩(decoding) 한 후 재생할 수 있다.For example, the VR device 110 may generate a game execution request signal and transmit it to the video providing server 130, and the video providing server 130 receives the request signal, executes a corresponding game, and executes the game. After converting the 2D game image according to the 3D image, it can be transmitted to the VR device 110 . At this time, the video providing server 130 may transmit the converted 3D video to the VR device 110 after encoding, and the VR device 110 receives the 3D video, decodes it, and then can be played

일 실시예에서, VR 기기(110)는 사용자의 움직임 정보에 관한 6 DoF(Degrees of Freedom) 센서를 포함하여 구현될 수 있다. 또한, VR 기기(110)는 필요에 따라 다양한 센서들을 더 포함하여 구현될 수 있다. 예를 들어, VR 기기(110)는 GPS 센서, 모션 센서 등을 더 포함할 수 있다. 다른 실시예에서, VR 기기(110)는 외부에서 동작하는 6 DoF 센서로부터 사용자의 움직임 정보를 수신할 수 있다.In one embodiment, the VR device 110 may be implemented by including 6 Degrees of Freedom (DoF) sensors related to user motion information. In addition, the VR device 110 may be implemented by further including various sensors as needed. For example, the VR device 110 may further include a GPS sensor, a motion sensor, and the like. In another embodiment, the VR device 110 may receive motion information of the user from an external 6 DoF sensor.

영상 제공 서버(130)는 VR 기기(110)에서 실행되는 게임의 2차원 영상을 3차원 영상으로 변환하여 네트워크를 통해 전송하는 컴퓨터 또는 프로그램에 해당하는 서버로 구현될 수 있다. 또한, 영상 제공 서버(130)는 VR 기기(110)의 요청을 수신하여 게임을 직접 실행할 수 있고 그에 따른 게임 영상을 3차원 영상으로 자동 변환하여 VR 기기(110)에 전송할 수도 있다. 영상 제공 서버(130)는 VR 기기(110)과 블루투스, WiFi, 5G 통신 등과 같은 무선 네트워크로 연결될 수 있고, 네트워크를 통해 VR 기기(110)와 데이터를 송·수신할 수 있다.The video providing server 130 may be implemented as a server corresponding to a computer or program that converts a 2D video of a game executed in the VR device 110 into a 3D video and transmits the video through a network. In addition, the video providing server 130 may receive a request from the VR device 110 to directly execute the game, automatically convert the corresponding game video into a 3D video and transmit it to the VR device 110. The video providing server 130 may be connected to the VR device 110 through a wireless network such as Bluetooth, WiFi, or 5G communication, and may transmit/receive data with the VR device 110 through the network.

또한, 영상 제공 서버(130)는 VR 기기(110)로부터 사용자의 움직임 정보로서 6 DoF 신호를 수신할 수 있고, 이를 기초로 사용자의 움직임에 반응하는 영상을 생성하여 VR 기기(110)에게 전송할 수 있다. 이를 위하여, 영상 제공 서버(130)는 VR 기기(110)과 연동하여 동작하는 리모트 어플리케이션(Remote Application)을 설치하여 실행할 수 있다.In addition, the video providing server 130 may receive a 6 DoF signal as the user's movement information from the VR device 110, and based on this, generate an image in response to the user's movement and transmit it to the VR device 110. there is. To this end, the video providing server 130 may install and run a remote application that operates in conjunction with the VR device 110.

도 2는 도 1의 영상 제공 서버의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the video providing server of FIG. 1 .

도 2를 참조하면, 영상 제공 서버(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.Referring to FIG. 2 , the image providing server 130 may be implemented by including a processor 210, a memory 230, a user input/output unit 250 and a network input/output unit 270.

프로세서(210)는 영상 제공 서버(130)가 동작하는 과정에서의 각 단계들을 처리하는 프로시저를 실행할 수 있고, 그 과정 전반에서 읽혀지거나 작성되는 메모리(230)를 관리할 수 있으며, 메모리(230)에 있는 휘발성 메모리와 비휘발성 메모리 간의 동기화 시간을 스케줄할 수 있다. 프로세서(210)는 영상 제공 서버(130)의 동작 전반을 제어할 수 있고, 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)와 전기적으로 연결되어 이들 간의 데이터 흐름을 제어할 수 있다. 프로세서(210)는 영상 제공 서버(130)의 CPU(Central Processing Unit)로 구현될 수 있다.The processor 210 may execute a procedure for processing each step in the process of the image providing server 130 operating, and manage the memory 230 read or written throughout the process, and the memory 230 ), you can schedule the synchronization time between volatile memory and non-volatile memory. The processor 210 can control the overall operation of the image providing server 130, and is electrically connected to the memory 230, the user input/output unit 250, and the network input/output unit 270 to control data flow between them. can The processor 210 may be implemented as a central processing unit (CPU) of the image providing server 130 .

메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 영상 제공 서버(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 230 may include a secondary storage device implemented as a non-volatile memory such as a solid state drive (SSD) or a hard disk drive (HDD) and used to store all data necessary for the image providing server 130, It may include a main memory implemented as a volatile memory such as RAM (Random Access Memory).

사용자 입출력부(250)는 사용자 입력을 수신하기 위한 환경 및 사용자에게 특정 정보를 출력하기 위한 환경을 포함할 수 있다. 예를 들어, 사용자 입출력부(250)는 터치 패드, 터치 스크린, 화상 키보드 또는 포인팅 장치와 같은 어댑터를 포함하는 입력장치 및 모니터 또는 터치스크린과 같은 어댑터를 포함하는 출력장치를 포함할 수 있다. 일 실시예에서, 사용자 입출력부(250)는 원격 접속을 통해 접속되는 컴퓨팅 장치에 해당할 수 있고, 그러한 경우, 영상 제공 서버(130)는 독립적인 서버로서 수행될 수 있다.The user input/output unit 250 may include an environment for receiving user input and an environment for outputting specific information to the user. For example, the user input/output unit 250 may include an input device including an adapter such as a touch pad, a touch screen, an on-screen keyboard, or a pointing device, and an output device including an adapter such as a monitor or touch screen. In one embodiment, the user input/output unit 250 may correspond to a computing device connected through a remote connection, and in such a case, the image providing server 130 may be performed as an independent server.

네트워크 입출력부(270)은 네트워크를 통해 외부 장치 또는 시스템과 연결하기 위한 환경을 포함하고, 예를 들어, LAN(Local Area Network), MAN(Metropolitan Area Network), WAN(Wide Area Network) 및 VAN(Value Added Network) 등의 통신을 위한 어댑터를 포함할 수 있다.The network input/output unit 270 includes an environment for connecting to an external device or system through a network, and includes, for example, a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), and a VAN ( An adapter for communication such as Value Added Network) may be included.

도 3은 도 1의 영상 제공 서버의 기능적 구성을 설명하는 도면이다.FIG. 3 is a diagram explaining the functional configuration of the video providing server of FIG. 1 .

도 3을 참조하면, 영상 제공 서버(130)는 게임 실행부(310), 렌더링 데이터 저장부(320), 2차원 영상 생성부(330), 깊이 정보 획득부(340), 버텍스 조정부(350), 양안 영상 렌더링부(360), 3차원 영상 생성부(370) 및 제어부(도 3에 미도시함)을 포함할 수 있다.Referring to FIG. 3 , the image providing server 130 includes a game execution unit 310, a rendering data storage unit 320, a 2D image generator 330, a depth information acquisition unit 340, and a vertex adjustment unit 350. , a binocular image rendering unit 360, a 3D image generator 370, and a controller (not shown in FIG. 3).

게임 실행부(310)는 2차원 영상을 제공하도록 구현된 게임을 실행할 수 있다. 즉, 게임은 기본적으로 일반적인 PC 게임에 해당할 수 있으나, 반드시 이에 한정되지 않고, 게임 영상이 2차원 평면 영상으로 생성되는 게임을 포함할 수 있다. 또한, 게임 실행부(310)는 게임 이외에 2차원 평면 영상을 제공하는 미디어 파일, 프로그램, 어플리케이션 등을 실행할 수 있다.The game execution unit 310 may execute a game implemented to provide a 2D image. That is, the game may basically correspond to a general PC game, but is not necessarily limited thereto, and may include a game in which a game image is generated as a 2D flat image. In addition, the game execution unit 310 may execute media files, programs, applications, etc. that provide 2D flat images in addition to games.

일 실시예에서, 게임 실행부(310)는 게임을 VR 기기(110)를 통해 실행할 수 있다. 게임 실행부(310)는 영상 제공 서버(130)의 일 구성요소에 해당하고 게임 실행부(310)의 동작은 영상 제공 서버(130)의 제어를 통해 실행될 수 있다. 따라서, 게임 실행부(310)에 의한 게임 실행은 영상 제공 서버(130) 상에서의 동작에 해당할 수 있다. 다만, 게임 실행부(310)는 VR 기기(110)와 연동하여 동작할 수 있으며, 이에 따라 VR 기기(110)를 통해 게임을 실행할 수 있다. 한편, VR 기기(110)는 영상 제공 서버(130)와 독립적으로 동작할 수 있으며, 게임 실행을 자체적인 제어 프로세스에 따라 처리할 수도 있다.In one embodiment, the game execution unit 310 may execute the game through the VR device 110 . The game execution unit 310 corresponds to one component of the video providing server 130, and the operation of the game execution unit 310 may be executed under the control of the video providing server 130. Accordingly, game execution by the game executor 310 may correspond to an operation on the video providing server 130 . However, the game execution unit 310 may operate in conjunction with the VR device 110, and accordingly, the game may be executed through the VR device 110. Meanwhile, the VR device 110 may operate independently of the video providing server 130 and may process game execution according to its own control process.

렌더링 데이터 저장부(320)는 게임의 실행 과정에서 2차원 영상의 렌더링 데이터를 후킹하여 저장할 수 있다. 렌더링 데이터 저장부(320)는 게임 실행 과정에서 영상 재생을 위해 필요한 다양한 렌더링 정보들을 후킹하여 3차원 영상 생성에 필요한 기초 데이터들을 확보할 수 있다. 렌더링 데이터 저장부(320)는 획득된 데이터를 데이터베이스에 저장할 수 있다.The rendering data storage unit 320 may hook and store rendering data of a 2D image during a game execution process. The rendering data storage unit 320 may secure basic data necessary for generating a 3D image by hooking various rendering information required for image reproduction during a game execution process. The rendering data storage unit 320 may store acquired data in a database.

일 실시예에서, 렌더링 데이터 저장부(320)는 2차원 영상의 버텍스(Vertex) 정보, 텍스쳐(Texture) 정보 및 쉐이더(Shader) 정보를 포함하는 장면 데이터를 렌더링 데이터로서 후킹할 수 있다. 일 실시예에서, 렌더링 데이터 저장부(320)는 렌더링 데이터를 복사하여 2개의 렌더링 데이터 집합들을 생성할 수 있다. 즉, 렌더링 데이터 저장부(320)는 게임 실행 과정에서 게임 영상 생성에 필요한 정보들을 렌더링 데이터로서 후킹하여 저장할 수 있으며, 3차원 영상 생성에 필요한 양안 영상을 위해 렌더링 데이터를 동일하게 2개로 생성할 수 있다. 이때, 렌더링 데이터 저장부(320)는 각각 생성된 렌더링 데이터들을 집합으로 묶어 관리할 수 있다.In one embodiment, the rendering data storage unit 320 may hook scene data including vertex information, texture information, and shader information of a 2D image as rendering data. In one embodiment, the rendering data storage unit 320 may create two sets of rendering data by copying the rendering data. That is, the rendering data storage unit 320 may hook and store information necessary for generating a game image as rendering data during a game execution process, and equally generate two rendering data for a binocular image necessary for generating a 3D image. there is. In this case, the rendering data storage unit 320 may manage the generated rendering data by grouping them into a set.

2차원 영상 생성부(330)는 렌더링 데이터를 기초로 2차원 영상을 생성할 수 있다. 2차원 영상 생성부(330)는 게임의 진행에 따라 프레임 별로 2차원 영상을 생성할 수 있으며, 생성된 2차원 영상은 생성 순서에 따라 메모리에 임시로 저장될 수 있다.The 2D image generator 330 may generate a 2D image based on the rendering data. The 2D image generator 330 may generate 2D images for each frame as the game progresses, and the generated 2D images may be temporarily stored in a memory according to a generation order.

일 실시예에서, 2차원 영상 생성부(330)는 2차원 영상에 대한 필터링을 수행할 수 있다. 만약 2차원 영상으로부터 직접 깊이 정보를 획득하는 경우, 2차원 영상 생성부(330)는 2차원 영상을 필터링함으로써 깊이 정보가 보다 효과적으로 추출되도록 할 수 있다. 예를 들어, 영상 필터링을 통해 특정 색상 영역을 제거하거나 특정 색상을 강조함으로써 영역 간의 경계가 보다 명확해질 수 있다.In one embodiment, the 2D image generator 330 may perform filtering on the 2D image. If depth information is obtained directly from a 2D image, the 2D image generator 330 may filter the 2D image so that depth information can be extracted more effectively. For example, by removing a specific color region or emphasizing a specific color through image filtering, boundaries between regions may be more clearly defined.

깊이 정보 획득부(340)는 2차원 영상의 깊이 정보를 획득할 수 있다. 여기에서, 깊이(depth) 정보는 관찰 시점(view point)을 기준으로 2차원 영상의 각 픽셀별 z값 정보를 포함할 수 있다. 깊이 정보는 2차원 영상 생성부(330)가 렌더링 데이터를 기초로 2차원 영상을 생성하는 과정에서 깊이 버퍼(depth buffer)에 저장된 정보로부터 획득될 수 있으나, 반드시 이에 한정되지 않고, 2차원 영상으로부터 직접 깊이 정보가 획득될 수도 있다. 깊이 정보 획득부(340)는 해당 2차원 영상에 연관지어 깊이 정보를 저장할 수 있다.The depth information acquisition unit 340 may obtain depth information of a 2D image. Here, the depth information may include z value information for each pixel of the 2D image based on a view point. The depth information may be obtained from information stored in a depth buffer in the process of the 2D image generator 330 generating a 2D image based on the rendering data, but is not limited thereto, and is obtained from the 2D image. Depth information may be obtained directly. The depth information acquisition unit 340 may store depth information in association with the corresponding 2D image.

버텍스 조정부(350)는 깊이 정보를 기초로 한 쌍의 양안 영상에 관한 버텍스들의 위치를 각각 결정할 수 있다. 버텍스 조정부(350)는 3차원 영상을 생성하기 전 단계에서 양안 영상을 렌더링하기 위하여 양안 영상, 즉 좌안 영상과 우안 영상의 생성에 사용되는 버텍스들을 사전에 위치 이동시키는 전처리를 수행할 수 있다. 이때, 버텍스의 위치는 패럴랙스 맵핑(parallax Mapping) 알고리즘에 따라 결정될 수 있다.The vertex adjusting unit 350 may determine positions of vertices of a pair of binocular images based on the depth information. The vertex adjusting unit 350 may perform preprocessing of moving vertices used to generate binocular images, that is, left-eye images and right-eye images in advance, in order to render the binocular images in a step before generating the 3D images. In this case, the position of the vertex may be determined according to a parallax mapping algorithm.

일 실시예에서, 버텍스 조정부(350)는 2차원 영상의 버텍스들에 대해 깊이 정보에 관한 z값을 이용하여 양안 각각의 아이(eye) 벡터를 기준으로 오프셋(offset)만큼 이동시킴으로써 버텍스들의 위치를 결정할 수 있다. 예를 들어, 버텍스 조정부(350)는 좌안 영상의 경우 해당 버텍스들에 대해 좌안의 시점(view point)을 향하는 아이 벡터의 방향에 맞춰 소정의 오프셋을 적용하여 위치를 조정할 수 있다. 즉, 특정 버텍스의 z값에 대응되는 위치를 아이 벡터 방향으로 이동시킨 후 해당 위치에서의 z'값이 획득되면 해당 특정 버텍스의 z값은 z'값으로 변경됨으로써 위치 조정이 이루어질 수 있다.In one embodiment, the vertex adjusting unit 350 moves the vertices of the 2D image by an offset based on the eye vectors of each of both eyes using the z-value related to the depth information to adjust the positions of the vertices. can decide For example, in the case of a left eye image, the vertex adjuster 350 may adjust the positions of corresponding vertices by applying a predetermined offset according to a direction of an eye vector toward a view point of the left eye. That is, when the z' value at the corresponding position is obtained after moving the position corresponding to the z value of the specific vertex in the direction of the eye vector, the z value of the specific vertex is changed to the z' value so that the position can be adjusted.

일 실시예에서, 버텍스 조정부(350)는 2개의 렌더링 데이터 집합들을 각각 좌안 및 우안에 매칭한 다음 버텍스들의 위치를 독립적으로 결정할 수 있다. 여기에서, 렌더링 데이터 집합은 버텍스 집합을 포함할 수 있다. 보다 구체적으로, 양안 영상을 각각 생성하기 위해 2차원 영상의 버텍스들은 사전에 2개의 세트로 복사될 수 있으며, 버텍스 조정부(350)는 좌안 영상 및 우안 영상에 맞춰 각 버텍스들을 이동시킬 수 있다.In one embodiment, the vertex adjuster 350 may match the two sets of rendering data to the left eye and the right eye, respectively, and then independently determine the positions of the vertices. Here, the rendering data set may include a vertex set. More specifically, vertices of the 2D image may be copied in two sets in advance to generate each of the binocular images, and the vertex adjusting unit 350 may move the respective vertices according to the left eye image and the right eye image.

양안 영상 렌더링부(360)는 버텍스들의 위치를 기초로 렌더링 데이터를 이용하여 양안 영상을 각각 렌더링할 수 있다. 양안 영상 렌더링부(360)는 조정된 위치의 버텍스 집합을 기초로 각각 좌안 영상 및 우안 영상을 독립적으로 생성할 수 있다. 게임 진행 과정에서 1회의 렌더링을 통해 2차원 영상이 생성되는 반면, 양안 영상 렌더링부(360)는 전처리를 통해 조정된 버텍스들의 위치를 기초로 독립적인 2회의 렌더링을 수행하여 양안 영상을 각각 생성할 수 있다.The binocular image rendering unit 360 may render binocular images respectively using rendering data based on the positions of vertices. The binocular image rendering unit 360 may independently generate a left-eye image and a right-eye image based on the set of vertices at the adjusted position. While a 2D image is generated through one rendering during the course of the game, the binocular image rendering unit 360 performs independent rendering based on the positions of the vertices adjusted through preprocessing to generate binocular images, respectively. can

3차원 영상 생성부(370)는 양안 영상을 통합하여 하나의 3차원 영상을 생성할 수 있다. 일 실시예에서, 3차원 영상 생성부(370)는 양안 영상의 각 프레임마다 동일 픽셀 간의 합병(merge)를 통해 3차원 영상의 프레임 이미지를 생성할 수 있다. 즉, 3차원 영상 생성부(370)는 양안 영상에서 대응되는 픽셀들의 RGB 값을 통합하여 3차원 영상의 해당 픽셀에서의 RGB 값을 결정할 수 있다.The 3D image generator 370 may generate a single 3D image by integrating the images of both eyes. In an embodiment, the 3D image generator 370 may generate a frame image of the 3D image by merging identical pixels in each frame of the binocular image. That is, the 3D image generator 370 may determine the RGB value of the corresponding pixel of the 3D image by integrating the RGB values of the corresponding pixels in the binocular image.

일 실시예에서, 3차원 영상 생성부(370)는 동일 시점의 양안 영상 중 어느 하나가 손상된 경우, 손상된 영상을 해당 시점 이전의 양안 영상으로 대체하여 3차원 영상을 생성할 수 있다. 영상의 손상은 렌더링 과정의 오류로 인해 발생하거나 정상적으로 생성된 영상의 손실로 인해 발생할 수 있다. 3차원 영상 생성부(370)는 동일 시점의 양안 영상을 통합하는 동작을 수행하며, 필요에 따라 상기와 같이 일부 영상이 손상된 경우 해당 시점의 이전 양안 영상을 기초로 3차원 영상을 생성할 수 있다.In an embodiment, the 3D image generator 370 may generate a 3D image by replacing the damaged image with an image of both eyes prior to the corresponding point in time when one of the images of the both eyes at the same point in time is damaged. Image damage may occur due to an error in the rendering process or loss of a normally generated image. The 3D image generator 370 performs an operation of integrating images of both eyes at the same time point, and if necessary, when some images are damaged as described above, a 3D image may be generated based on a previous image of both eyes at the time point. .

제어부(도 3에 미도시함)는 영상 제공 서버(130)의 전체적인 동작을 제어하고, 게임 실행부(310), 렌더링 데이터 저장부(320), 2차원 영상 생성부(330), 깊이 정보 획득부(340), 버텍스 조정부(350), 양안 영상 렌더링부(360) 및 3차원 영상 생성부(370) 간의 제어 흐름 또는 데이터 흐름을 관리할 수 있다.The controller (not shown in FIG. 3) controls the overall operation of the image providing server 130, and the game execution unit 310, the rendering data storage unit 320, the 2D image generator 330, and depth information acquisition A control flow or data flow between the unit 340 , the vertex adjustment unit 350 , the binocular image rendering unit 360 and the 3D image generator 370 may be managed.

도 4는 본 발명에 따른 클라우드 VR 기반의 3차원 영상 제공 방법을 설명하는 순서도이다.4 is a flowchart illustrating a cloud VR-based 3D video providing method according to the present invention.

도 4를 참조하면, 영상 제공 서버(130)는 게임 실행부(310)를 통해 2차원 영상을 제공하도록 구현된 게임을 실행할 수 있다(단계 S410). 영상 제공 서버(130)는 렌더링 데이터 저장부(320)를 통해 게임의 실행 과정에서 2차원 영상의 렌더링 데이터를 후킹하여 저장할 수 있으며, 2차원 영상 생성부(330)를 통해 렌더링 데이터를 기초로 2차원 영상을 생성할 수 있다(단계 S430).Referring to FIG. 4 , the video providing server 130 may execute a game implemented to provide a 2D video through the game execution unit 310 (step S410). The image providing server 130 may hook and store the rendering data of the 2D image during the game execution process through the rendering data storage unit 320, and based on the rendering data through the 2D image generator 330, 2 A dimensional image may be generated (step S430).

또한, 영상 제공 서버(130)는 깊이 정보 획득부(340)를 통해 2차원 영상의 깊이 정보를 획득할 수 있다(단계 S450). 영상 제공 서버(130)는 버텍스 조정부(350)를 통해 깊이 정보를 기초로 한 쌍의 양안 영상에 관한 버텍스들의 위치를 각각 결정할 수 있으며, 양안 영상 렌더링부(360)를 통해 버텍스들의 위치를 기초로 렌더링 데이터를 이용하여 양안 영상을 각각 렌더링할 수 있다(단계 S470). 결과적으로, 영상 제공 서버(130)는 3차원 영상 생성부(370)를 통해 양안 영상을 통합하여 하나의 3차원 영상을 생성할 수 있다(단계 S490). Also, the image providing server 130 may obtain depth information of the 2D image through the depth information obtaining unit 340 (step S450). The image providing server 130 may determine the positions of the vertices of the pair of binocular images based on the depth information through the vertex adjusting unit 350, and determine the positions of the vertices through the binocular image rendering unit 360 based on the depth information. Images of both eyes may be respectively rendered using the rendering data (step S470). As a result, the image providing server 130 may generate a single 3D image by integrating the images of both eyes through the 3D image generator 370 (step S490).

이후, 영상 제공 서버(130)는 3차원 영상을 VR 기기(110)에게 전송하여 VR 기기(110)를 통해 재생할 수 있다. 한편, 본 발명에 따른 3차원 영상 제공 방법은 VR 기기(110)를 통해 독립적으로 수행될 수 있으며, 이에 따라 VR 기기(110)는 자체적인 게임 실행 과정에서 2차원 영상을 3차원으로 변환하여 VR 모드를 지원하지 않는 일반적인 PC 게임에 대해서도 몰입감 높은 VR 영상을 제공할 수 있다.Thereafter, the video providing server 130 may transmit the 3D video to the VR device 110 and play it through the VR device 110 . On the other hand, the method of providing a 3D image according to the present invention can be performed independently through the VR device 110, and accordingly, the VR device 110 converts a 2D image into a 3D image in the process of running its own game, and thus VR Even general PC games that do not support mods can provide highly immersive VR images.

도 5는 패럴랙스 맵핑을 통해 3D 영상을 생성하는 방법을 설명하는 도면이고, 도 6은 본 발명에 따른 3차원 영상 제공 방법의 일 실시예를 설명하는 도면이다.5 is a diagram for explaining a method of generating a 3D image through parallax mapping, and FIG. 6 is a diagram for explaining an embodiment of a method for providing a 3D image according to the present invention.

도 5를 참조하면, 패럴랙스 맵핑(Parrallax Mapping)은 2차원 영상에 깊이(depth) 만큼의 픽셀 이동을 수행하여 3차원 영상처럼 보이게 하는 기법에 해당할 수 있다. 영상 제공 서버(130)는 패럴랙스 맵핑을 통해 2차원 영상을 3차원 영상으로 변환할 수 있다.Referring to FIG. 5 , parallax mapping may correspond to a technique of making a 2D image look like a 3D image by performing pixel movement as much as a depth. The image providing server 130 may convert a 2D image into a 3D image through parallax mapping.

도 5에서, 영상 제공 서버(130)는 게임을 실행하여 게임이 동작하는 과정에서 2차원 영상에 대한 렌더링 데이터를 획득할 수 있다. 영상 제공 서버(130)는 획득한 렌더링 데이터를 기초로 게임 렌더링(game rendering)을 수행할 수 있으며, 렌더링 과정에서 획득한 깊이 버퍼 정보(Depth Buffer Information)를 획득할 수 있다. 영상 제공 서버(130)는 2차원 영상과 깊이 정보를 기초로 입체 영상을 생성하기 위하여 각 픽셀의 위치를 이동시켜 좌안 및 우안에 대응하는 이미지를 생성할 수 있고, 각 이미지를 하나로 통합하여 3차원 영상을 생성할 수 있다.In FIG. 5 , the image providing server 130 may obtain rendering data for a 2D image while the game is running by executing the game. The image providing server 130 may perform game rendering based on the obtained rendering data, and may obtain depth buffer information acquired during the rendering process. The image providing server 130 may generate images corresponding to the left and right eyes by moving the position of each pixel to generate a 3D image based on the 2D image and depth information, and integrating each image into one to create a 3D image. You can create video.

다만, 패럴랙스 맵핑을 통해 3차원 영상으로 변환하는 경우, 특정 영역에서 픽셀이 늘어나 영상의 품질이 나빠지는 문제가 발생될 수 있다. 본 발명에 따른 3차원 영상 제공 방법은 지오메트리 패럴랙스 맵핑(Geometry Parallax Mapping)을 통해 패럴랙스 맵핑의 문제를 해결할 수 있다. 보다 구체적으로, 본 발명에 따른 3차원 영상 제공 방법은 도 5와 같이 후처리(Post Process)가 아닌 전처리(Pre Process)로 처리하는 방법이다. 즉, 일반적인 게임이 렌더링을 한번 수행하는데 반하여, 본 발명의 경우 좌안과 우안에 대해 각각 1번씩 렌더링을 수행할 수 있다.However, when converting to a 3D image through parallax mapping, a problem in that image quality may deteriorate due to an increase in pixels in a specific region may occur. The 3D image providing method according to the present invention can solve the problem of parallax mapping through geometry parallax mapping. More specifically, the method of providing a 3D image according to the present invention is a method of pre-processing rather than post-processing as shown in FIG. 5 . That is, while general games perform rendering once, in the case of the present invention, rendering can be performed once for each of the left and right eyes.

결과적으로, 본 발명에 따른 3차원 영상 제공 방법은 게임 동작 과정에서 렌더링을 위해 생성되는 다양한 정보들을 획득한 다음 양안 영상을 생성하기 위해 모든 데이터들을 동일하게 2개로 만든 다음 버텍스(vertex)의 위치 정보 중에서 z값을 이용하여 지오메트리(Geometry) 자체를 패럴랙스 맵핑 알고리즘과 동일한 방식으로 이동시키는 방법을 사용하여 2차원 영상을 3차원 영상으로 변환할 수 있다.As a result, the 3D image providing method according to the present invention acquires various information generated for rendering in the course of a game operation, then converts all the data into two identical pieces to generate a binocular image, and then vertex position information. Among them, a 2D image can be converted into a 3D image by using a method of moving the geometry itself using the z value in the same way as the parallax mapping algorithm.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art will variously modify and change the present invention within the scope not departing from the spirit and scope of the present invention described in the claims below. You will understand that it can be done.

100: 영상 제공 시스템
110: VR 기기 130: 영상 제공 서버
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 게임 실행부 320: 렌더링 데이터 저장부
330: 2차원 영상 생성부 340: 깊이 정보 획득부
350: 버텍스 조정부 360: 양안 영상 렌더링부
370: 3차원 영상 생성부
100: video providing system
110: VR device 130: video providing server
210: processor 230: memory
250: user input/output unit 270: network input/output unit
310: game execution unit 320: rendering data storage unit
330: 2D image generator 340: depth information acquisition unit
350: vertex adjustment unit 360: binocular image rendering unit
370: 3D image generator

Claims (6)

2차원 영상을 제공하도록 구현된 게임을 VR 기기를 통해 실행하는 단계;
상기 게임의 실행 과정에서 상기 2차원 영상의 버텍스(Vertex) 정보, 텍스쳐(Texture) 정보 및 쉐이더(Shader) 정보를 포함하는 장면 데이터를 렌더링 데이터로서 후킹하고 상기 렌더링 데이터를 복사하여 동일한 2개의 렌더링 데이터 집합들을 생성한 후 저장하는 단계;
상기 렌더링 데이터를 기초로 상기 2차원 영상을 생성하고, 상기 2차원 영상에 대한 필터링을 수행하여 특정 색상 영역을 제거하거나 또는 특정 색상 영역을 강조하는 단계;
상기 2차원 영상의 깊이 정보를 획득하는 단계;
상기 2개의 렌더링 데이터 집합들을 각각 좌안 및 우안에 매칭한 다음 상기 깊이 정보를 기초로 한 쌍의 양안 영상에 관한 버텍스들의 위치를 독립적으로 결정하는 단계;
상기 독립적으로 결정된 한 쌍의 양안 영상에 관한 버텍스들의 위치를 기초로 상기 렌더링 데이터를 이용하여 상기 양안 영상을 각각 독립적으로 렌더링하는 단계; 및
상기 양안 영상을 통합하여 하나의 3차원 영상을 생성하는 단계;를 포함하되,
상기 결정하는 단계는 상기 독립적으로 결정된 한 쌍의 양안 영상에 관한 버텍스들에 대해 상기 깊이 정보에 관한 z값을 이용하여 각 버텍스의 z값에 대응되는 위치를 양안 각각의 아이(eye) 벡터 방향으로 오프셋(offset)만큼 이동시킴으로써 상기 버텍스들의 위치를 독립적으로 결정하는 단계를 포함하고,
상기 3차원 영상을 생성하는 단계는 상기 양안 영상의 각 프레임마다 동일 픽셀 간의 합병(merge)를 통해 상기 3차원 영상의 프레임 이미지를 생성하는 단계를 포함하고, 동일 시점의 양안 영상 중 어느 하나가 손상된 경우, 손상된 영상을 해당 시점 이전의 양안 영상으로 대체하여 상기 3차원 영상을 생성하는 단계를 포함하는 것을 특징으로 하는 클라우드 VR 기반의 3차원 영상 제공 방법.
Executing a game implemented to provide a two-dimensional image through a VR device;
During the execution of the game, scene data including vertex information, texture information, and shader information of the 2D image is hooked as rendering data, and the rendering data is copied to create the same two rendering data Creating and storing sets;
generating the 2D image based on the rendering data, and removing a specific color region or emphasizing a specific color region by performing filtering on the 2D image;
obtaining depth information of the 2D image;
matching the two sets of rendering data to the left eye and the right eye, respectively, and then independently determining positions of vertices of the pair of binocular images based on the depth information;
independently rendering the binocular images using the rendering data based on positions of vertices of the pair of binocular images that are independently determined; and
Including; generating a single 3D image by integrating the images of both eyes,
The determining step may include locating a position corresponding to a z value of each vertex in a direction of an eye vector of each of both eyes by using the z value of the depth information for the vertices of the pair of images of both eyes that are independently determined. Independently determining the positions of the vertices by moving them by an offset,
The generating of the 3D image includes generating a frame image of the 3D image by merging the same pixels for each frame of the binocular image, wherein one of the binocular images at the same time point is damaged. case, generating the 3D image by replacing the damaged image with an image of both eyes before the corresponding point in time.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020210071110A 2021-06-01 2021-06-01 Cloud vr-based 3d image provision method KR102543136B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210071110A KR102543136B1 (en) 2021-06-01 2021-06-01 Cloud vr-based 3d image provision method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210071110A KR102543136B1 (en) 2021-06-01 2021-06-01 Cloud vr-based 3d image provision method

Publications (2)

Publication Number Publication Date
KR20220162930A KR20220162930A (en) 2022-12-09
KR102543136B1 true KR102543136B1 (en) 2023-06-15

Family

ID=84440299

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210071110A KR102543136B1 (en) 2021-06-01 2021-06-01 Cloud vr-based 3d image provision method

Country Status (1)

Country Link
KR (1) KR102543136B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100381817B1 (en) * 1999-11-17 2003-04-26 한국과학기술원 Generating method of stereographic image using Z-buffer

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100913173B1 (en) * 2005-07-05 2009-08-19 삼성모바일디스플레이주식회사 3 dimension graphic processor and autostereoscopic display device using the same
KR101054043B1 (en) 2010-05-23 2011-08-10 강원대학교산학협력단 Mothod of generating 3d sterioscopic image from 2d medical image
KR101829733B1 (en) * 2015-01-16 2018-03-29 오인환 Conversion Method For A 2D Image to 3D Graphic Models

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100381817B1 (en) * 1999-11-17 2003-04-26 한국과학기술원 Generating method of stereographic image using Z-buffer

Also Published As

Publication number Publication date
KR20220162930A (en) 2022-12-09

Similar Documents

Publication Publication Date Title
US11025882B2 (en) Live action volumetric video compression/decompression and playback
US10540818B2 (en) Stereo image generation and interactive playback
US10176592B2 (en) Multi-directional structured image array capture on a 2D graph
CN110999285B (en) Processing of 3D image information based on texture maps and meshes
JP6948171B2 (en) Image processing equipment and image processing methods, programs
JP4297197B2 (en) Calibration processing apparatus, calibration processing method, and computer program
JP2019075082A (en) Video processing method and device using depth value estimation
KR102581134B1 (en) Apparatus and method for generating light intensity images
KR101181199B1 (en) Stereoscopic image generation method of background terrain scenes, system using the same and recording medium for the same
US11900529B2 (en) Image processing apparatus and method for generation of a three-dimensional model used for generating a virtual viewpoint image
JP7217226B2 (en) Methods, devices and streams for encoding motion-compensated images in global rotation
WO2018100928A1 (en) Image processing device and method
US10769811B2 (en) Space coordinate converting server and method thereof
TW201921318A (en) Apparatus and method for generating a tiled three-dimensional image representation of a scene
CN111583350B (en) Image processing method, device, system and server
JP2000348213A (en) Three-dimensional image generating device, three- dimensional image generating and display device, and method thereof and recording medium
KR101208767B1 (en) Stereoscopic image generation method, device and system using circular projection and recording medium for the same
JP6011567B2 (en) Information processing apparatus, control method thereof, and program
KR102543136B1 (en) Cloud vr-based 3d image provision method
JP2008287588A (en) Image processor and image processing method
US20140192045A1 (en) Method and apparatus for generating three-dimensional caricature using shape and texture of face
KR20200143276A (en) Video Encoding Method and Video Decoding Method
US10341683B1 (en) Apparatus and method to reduce an amount of coordinate data representing an object taken by an imaging device in a three dimensional space
JP2015197374A (en) Three-dimensional shape estimation device and three-dimensional shape estimation method
WO2020193703A1 (en) Techniques for detection of real-time occlusion

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)