KR102568415B1 - HMD-based PC game expansion system - Google Patents

HMD-based PC game expansion system Download PDF

Info

Publication number
KR102568415B1
KR102568415B1 KR1020210055267A KR20210055267A KR102568415B1 KR 102568415 B1 KR102568415 B1 KR 102568415B1 KR 1020210055267 A KR1020210055267 A KR 1020210055267A KR 20210055267 A KR20210055267 A KR 20210055267A KR 102568415 B1 KR102568415 B1 KR 102568415B1
Authority
KR
South Korea
Prior art keywords
game
hmd
unit
data
server
Prior art date
Application number
KR1020210055267A
Other languages
Korean (ko)
Other versions
KR20220148027A (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 KR1020210055267A priority Critical patent/KR102568415B1/en
Publication of KR20220148027A publication Critical patent/KR20220148027A/en
Application granted granted Critical
Publication of KR102568415B1 publication Critical patent/KR102568415B1/en

Links

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems

Abstract

본 발명은 HMD 기반의 PC 게임 확장 시스템에 관한 것으로, PC 게임의 실행을 위한 가상화를 제공하고 상기 실행에 따른 게임 데이터를 캡쳐하여 무선 네트워크를 통해 HMD 단말에 전송하는 확장 서버; 및 상기 확장 서버로부터 상기 게임 데이터를 수신하고 제어 신호에 따라 보정된 게임 영상 및 사운드를 재생하는 HMD 단말;을 포함하고, 상기 제어 신호는 상기 HMD 단말의 방향(orientation) 신호와 컨트롤러(controller) 신호를 포함한다.The present invention relates to an HMD-based PC game expansion system, comprising: an expansion server that provides virtualization for PC game execution, captures game data according to the execution, and transmits the captured game data to an HMD terminal through a wireless network; and an HMD terminal that receives the game data from the expansion server and reproduces corrected game video and sound according to a control signal, wherein the control signal includes an orientation signal and a controller signal of the HMD terminal. includes

Description

HMD 기반의 PC 게임 확장 시스템{HMD-based PC game expansion system}HMD-based PC game expansion system

본 발명은 게임 확장 기술에 관한 것으로, 보다 상세하게는 고사양의 PC 게임을 서버에서 가상화하여 실행하고 무선으로 연동된 HMD 단말에 전송하여 고품질의 게임을 손쉽게 이용할 수 있는 HMD 기반의 PC 게임 확장 시스템에 관한 것이다.The present invention relates to a game expansion technology, and more particularly, to an HMD-based PC game expansion system that virtualizes and executes a high-end PC game on a server and wirelessly transmits it to an interlocked HMD terminal so that high-quality games can be easily used. it's about

헤드 마운티드 디스플레이는 머리 부분에 장착해, 이용자의 눈 앞에 직접 영상을 제시할 수 있는 디스플레이 장치이다. 1968년, 유타 대학의 이반 서덜랜드가 만든 것이 최초의 HMD이며, 최초의 HMD의 경우 두 눈에 장착된 모니터에 3차원 그래픽스가 표시되었다.A head-mounted display is a display device that can present an image directly in front of the user's eyes by attaching it to the head. In 1968, Ivan Sutherland of the University of Utah made the first HMD, and in the case of the first HMD, 3D graphics were displayed on monitors mounted on both eyes.

HMD의 사용은 고화질 영상, 가상현실 기법을 적용한 가상연습 및 게임 등을 입체영상으로 즐기거나 실행하고자 하는 것이므로, 대용량 콘텐츠의 실시간 전송 및 재생을 위한 기술은 반드시 필요하다.Since the use of HMD is to enjoy or execute high-definition video, virtual practice and games using virtual reality techniques in stereoscopic images, technology for real-time transmission and playback of large-capacity contents is absolutely necessary.

또한, 동시에 사용자의 활동을 제한하지 않도록 무선통신이 원활해야 하고, 콘텐츠 재생시간 동안 지속적으로 머리에 부착하는 HMD는 가볍고 작게 구현될 필요가 있다.In addition, wireless communication should be smooth so as not to restrict a user's activity at the same time, and an HMD that is continuously attached to the head during content playback time needs to be implemented lightly and small.

또한, WiFi 등 근거리 무선통신 기술을 이용하는 경우에는 프로토콜(protocol)에 따라 데이터 신호를 처리해야 하며, 이를 위하여 데이터를 압축하고 패킷화(packetizing)하여 전송해야 한다. HMD에서는 전송받은 신호를 메모리에 데이터 패킷을 저장하고 압축을 푸는 코덱(codec) 과정이 필요하다. 코덱을 빠르게 진행하기 위해서는 고속의 인코더(encoder)와 디코더(decoder)가 필요할 수 있다.In addition, in the case of using a short-distance wireless communication technology such as WiFi, a data signal must be processed according to a protocol, and for this purpose, the data must be compressed, packetized, and transmitted. In the HMD, a codec process of storing the transmitted signal as a data packet in memory and decompressing the received signal is required. In order to speed up the codec, high-speed encoders and decoders may be required.

한국공개특허 제10-2017-0058758호 (2017.05.29)Korean Patent Publication No. 10-2017-0058758 (2017.05.29)

본 발명의 일 실시예는 고사양의 PC 게임을 서버에서 가상화 하여 실행하고 무선으로 연동된 HMD 단말에 전송하여 고품질의 게임을 손쉽게 이용할 수 있는 HMD 기반의 PC 게임 확장 시스템을 제공하고자 한다.An embodiment of the present invention is to provide an HMD-based PC game expansion system that can easily use high-quality games by virtualizing and executing high-end PC games on a server and wirelessly transmitting them to an interlocked HMD terminal.

실시예들 중에서, HMD 기반의 PC 게임 확장 시스템은 PC 게임의 실행을 위한 가상화를 제공하고 상기 실행에 따른 게임 데이터를 캡쳐하여 무선 네트워크를 통해 HMD 단말에 전송하는 확장 서버; 및 상기 확장 서버로부터 상기 게임 데이터를 수신하고 제어 신호에 따라 보정된 게임 영상 및 사운드를 재생하는 HMD 단말;을 포함하고, 상기 제어 신호는 상기 HMD 단말의 방향(orientation) 신호와 컨트롤러(controller) 신호를 포함한다.Among embodiments, an HMD-based PC game extension system includes an extension server that provides virtualization for PC game execution, captures game data according to the execution, and transmits the captured game data to the HMD terminal through a wireless network; and an HMD terminal that receives the game data from the expansion server and reproduces corrected game video and sound according to a control signal, wherein the control signal includes an orientation signal and a controller signal of the HMD terminal. includes

상기 확장 서버는 상기 PC 게임에 대응하는 컨테이너를 생성하고 상기 PC 게임의 사양에 따라 가상화 자원을 구성하여 상기 컨테이너에 할당하는 가상화부; 상기 컨테이너 상에서 상기 PC 게임이 실행되는 동안 렌더링 영상을 추출하고 상기 HMD 단말의 프로파일 정보를 기초로 게임 영상 및 사운드를 상기 게임 데이터로서 캡쳐하는 캡쳐부; 상기 게임 데이터를 스트리밍 방식에 따라 인코딩하여 인코딩 데이터를 생성하는 인코더부; 및 상기 무선 네트워크를 통해 상기 인코딩 데이터를 상기 HMD 단말에 전송하는 제1 네트워크부;를 포함할 수 있다.The expansion server may include a virtualization unit that creates a container corresponding to the PC game, configures virtualization resources according to specifications of the PC game, and allocates them to the container; a capture unit that extracts a rendered image while the PC game is being executed on the container and captures the game image and sound as the game data based on the profile information of the HMD terminal; an encoder unit generating encoded data by encoding the game data according to a streaming method; and a first network unit transmitting the encoded data to the HMD terminal through the wireless network.

상기 캡쳐부는 상기 게임 영상 및 사운드를 추출하기 위해 상기 PC 게임의 프로세스 내에 DLL(Dynamic Link Library)을 삽입하는 DLL 삽입 모듈; 상기 프로파일 정보에 따라 상기 렌더링 영상의 유형 및 해상도를 변경하거나 또는 적어도 하나의 필터(filter)를 적용하는 후처리 동작을 수행하는 후처리 모듈; 및 상기 후처리 동작이 적용된 렌더링 영상으로부터 상기 게임 영상 및 사운드를 캡쳐하는 캡쳐 모듈;을 포함할 수 있다.The capture unit includes a DLL insertion module for inserting a Dynamic Link Library (DLL) into a process of the PC game to extract the game image and sound; a post-processing module that performs a post-processing operation of changing the type and resolution of the rendered image or applying at least one filter according to the profile information; and a capture module that captures the game image and sound from the rendered image to which the post-processing operation is applied.

상기 인코더부는 상기 스트리밍 방식에 따라 비트레이트 및 인코딩 방식을 결정하고 상기 무선 네트워크의 부하 상태에 따라 인코딩 옵션을 변경할 수 있다.The encoder unit may determine a bit rate and an encoding method according to the streaming method and change an encoding option according to a load condition of the wireless network.

상기 HMD 단말은 상기 무선 네트워크를 통해 상기 확장 서버로부터 상기 인코딩 데이터를 수신하는 제2 네트워크부; 상기 인코딩 데이터를 디코딩하여 디코딩 데이터를 생성하고 상기 디코딩 데이터를 텍스쳐 버퍼에 저장하는 디코더부; 화면 주사율에 따라 상기 텍스쳐 버퍼로부터 상기 디코딩 데이터를 추출하여 디스플레이 화면을 갱신하는 렌더링부; 및 상기 방향 신호와 위치 신호 및 상기 컨트롤 신호를 수신하여 상기 렌더링부 및 상기 확장 서버에 각각 전달하는 제어 데이터 처리부;를 포함할 수 있다.The HMD terminal includes a second network unit receiving the encoded data from the expansion server through the wireless network; a decoder unit which decodes the encoded data to generate decoded data and stores the decoded data in a texture buffer; a rendering unit that updates the display screen by extracting the decoded data from the texture buffer according to the screen refresh rate; and a control data processing unit that receives the direction signal, the position signal, and the control signal and transmits them to the rendering unit and the extension server, respectively.

상기 렌더링부는 상기 제어 데이터 처리부로부터 수신한 신호들을 이용하여 상기 디스플레이 화면의 현재 프레임을 보정함으로써 지연(latency)에 따른 화면 떨림을 제거할 수 있다.The rendering unit may remove screen shake due to latency by correcting a current frame of the display screen using signals received from the control data processing unit.

개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.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.

본 발명의 일 실시예에 따른 HMD 기반의 PC 게임 확장 시스템은 고사양의 PC 게임을 서버에서 가상화하여 실행하고 무선으로 연동된 HMD 단말에 전송하여 고품질의 게임을 손쉽게 이용할 수 있다.The HMD-based PC game expansion system according to an embodiment of the present invention virtualizes and executes a high-end PC game on a server and wirelessly transmits it to an interlocked HMD terminal so that high-quality games can be easily used.

도 1은 본 발명에 따른 게임 확장 시스템을 설명하는 도면이다.
도 2는 도 1의 확장 서버의 시스템 구성을 설명하는 도면이다.
도 3은 본 발명에 따른 게임 확장 시스템의 기능적 구성을 설명하는 도면이다.
도 4는 도 3의 캡쳐부의 기능적 구성을 설명하는 도면이다.
도 5는 본 발명에 따른 확장 서버의 동작을 설명하는 도면이다.
도 6은 본 발명에 따른 HMD 단말의 동작을 설명하는 도면이다.
도 7은 본 발명에 따른 게임 확장 시스템의 일 실시예를 설명하는 도면이다.
1 is a diagram illustrating a game expansion system according to the present invention.
FIG. 2 is a diagram explaining the system configuration of the expansion server of FIG. 1 .
3 is a diagram illustrating the functional configuration of a game expansion system according to the present invention.
FIG. 4 is a diagram explaining the functional configuration of the capture unit of FIG. 3 .
5 is a diagram illustrating the operation of an expansion server according to the present invention.
6 is a diagram explaining the operation of the HMD terminal according to the present invention.
7 is a diagram illustrating an embodiment of a game expansion system 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 a game expansion system according to the present invention.

도 1을 참조하면, 게임 확장 시스템(100)은 HMD 단말(110), 확장 서버(130) 및 데이터베이스(150)를 포함할 수 있다.Referring to FIG. 1 , the game extension system 100 may include an HMD device 110 , an extension server 130 and a database 150 .

HMD 단말(110)은 헤드 마운티드 디스플레이(Head Mounted Display) 장치에 해당할 수 있다. HMD 단말(110)은 확장 서버(130)로부터 게임 데이터를 수신하여 사용자의 제어 신호에 따라 보정된 게임 영상 및 사운드를 재생할 수 있다. 이를 위해, HMD 단말(110)은 확장 서버(130)와 무선 네트워크를 통해 연결될 수 있으며, 복수의 HMD 단말(110)들은 동시에 확장 서버(130)와 연결될 수도 있다.The HMD terminal 110 may correspond to a head mounted display device. The HMD device 110 may receive game data from the expansion server 130 and reproduce corrected game images and sounds according to a user's control signal. To this end, the HMD device 110 may be connected to the extension server 130 through a wireless network, and a plurality of HMD devices 110 may be connected to the extension server 130 at the same time.

확장 서버(130)는 PC 게임을 가상화하고 실행 결과에 따른 게임 데이터를 HMD 단말(110)에 전송할 수 있는 컴퓨팅 장치 또는 이를 수행하는 독립된 서버 장치로 구현될 수 있다. 확장 서버(130)는 무선 네트워크를 통해 HMD 단말(110)과 연동할 수 있으며, 무선 네트워크는 블루투스, WiFi, LTE 등을 포함할 수 있다. 또한, 확장 서버(130)는 추가 기능을 제공하기 위하여 별도의 외부 시스템과 연동하여 동작할 수 있다. 예를 들어, 확장 서버(130)는 사용자 인증을 위한 인증 서버, 서비스 결제를 위한 결제 서버 등의 회부 시스템과 연동하여 서비스 제공 과정에서 독립적인 기능을 제공하도록 구현될 수 있다.The expansion server 130 may be implemented as a computing device capable of virtualizing a PC game and transmitting game data according to an execution result to the HMD terminal 110 or as an independent server device performing the same. The expansion server 130 may interwork with the HMD terminal 110 through a wireless network, and the wireless network may include Bluetooth, WiFi, LTE, and the like. In addition, the expansion server 130 may operate in conjunction with a separate external system to provide additional functions. For example, the expansion server 130 may be implemented to provide an independent function in the service provision process in conjunction with a referral system such as an authentication server for user authentication and a payment server for service payment.

데이터베이스(150)는 확장 서버(130)의 동작 과정에서 필요한 다양한 정보들을 저장하는 저장장치에 해당할 수 있다. 예를 들어, 데이터베이스(150)는 고사향의 PC 게임에 대한 정보를 저장할 수 있고, PC 게임의 실행을 위한 가상화 정보를 저장할 수 있으며, 반드시 이에 한정되지 않고, 확장 서버(130)가 HMD 단말(110)과 연동하는 과정에서 다양한 형태로 수집 또는 가공된 정보들을 저장할 수 있다.The database 150 may correspond to a storage device for storing various information necessary for the operation process of the expansion server 130 . For example, the database 150 may store information about a high-end PC game and store virtualization information for execution of a PC game, but is not necessarily limited thereto, and the expansion server 130 may store the HMD terminal ( 110), information collected or processed in various forms can be stored.

한편, 도 1에서, 데이터베이스(150)는 확장 서버(130)와 독립적인 장치로서 도시되어 있으나, 반드시 이에 한정되지 않고, 확장 서버(130)의 논리적인 저장장치로서 확장 서버(130)에 포함되어 구현될 수 있음은 물론이다.Meanwhile, in FIG. 1, the database 150 is shown as a device independent of the expansion server 130, but is not necessarily limited thereto, and is included in the expansion server 130 as a logical storage device of the expansion server 130. Of course, it can be implemented.

도 2는 도 1의 확장 서버의 시스템 구성을 설명하는 도면이다.FIG. 2 is a diagram explaining the system configuration of the expansion server of FIG. 1 .

도 2를 참조하면, 확장 서버(130)는 프로세서(210), 메모리(230), 사용자 입출력부(250) 및 네트워크 입출력부(270)를 포함하여 구현될 수 있다.Referring to FIG. 2 , the expansion 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 operation of the expansion server 130, manage the memory 230 that is read or written throughout the process, and the memory 230 You can schedule synchronization time between volatile memory and non-volatile memory in . The processor 210 can control the overall operation of the expansion 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. there is. The processor 210 may be implemented as a central processing unit (CPU) of the expansion server 130 .

메모리(230)는 SSD(Solid State Drive) 또는 HDD(Hard Disk Drive)와 같은 비휘발성 메모리로 구현되어 확장 서버(130)에 필요한 데이터 전반을 저장하는데 사용되는 보조기억장치를 포함할 수 있고, RAM(Random Access Memory)과 같은 휘발성 메모리로 구현된 주기억장치를 포함할 수 있다.The memory 230 is implemented as a non-volatile memory such as a solid state drive (SSD) or a hard disk drive (HDD) and may include auxiliary storage used to store all data necessary for the expansion server 130, and RAM. It may include a main memory device implemented as a volatile memory such as (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 expansion server 130 may be implemented 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은 본 발명에 따른 게임 확장 시스템의 기능적 구성을 설명하는 도면이다.3 is a diagram illustrating the functional configuration of a game expansion system according to the present invention.

도 3을 참조하면, 게임 확장 시스템(100)은 HMD 단말(110)과 확장 서버(130) 간의 연동을 통해 동작할 수 있다. 여기에서, 확장 서버(130)는 가상화부(310), 캡쳐부(320), 인코더부(330) 및 제1 네트워크부(340)를 포함할 수 있으며, HMD 단말(110)은 제2 네트워크부(350), 디코더부(360), 렌더링부(370) 및 제어 데이터 처리부(380)를 포함할 수 있다.Referring to FIG. 3 , the game extension system 100 may operate through interworking between the HMD device 110 and the extension server 130 . Here, the expansion server 130 may include a virtualization unit 310, a capture unit 320, an encoder unit 330, and a first network unit 340, and the HMD terminal 110 may include a second network unit. 350, a decoder unit 360, a rendering unit 370, and a control data processing unit 380 may be included.

보다 구체적으로, 가상화부(310)는 PC 게임에 대응하는 컨테이너를 생성하고 PC 게임의 사양에 따라 가상화 자원을 구성하여 컨테이너에 할당하는 동작을 수행할 수 있다. 즉, 가상화부(310)는 확장 서버(130) 상에서 고사양의 PC 게임을 독립적으로 실행하기 위한 가상 공간을 생성하기 위하여 가상화된 컨테이너(container)를 생성할 수 있다. 또한, 가상화부(310)는 PC 게임의 사양 정보에 기초하여 원활한 실행에 필요한 컴퓨팅 자원들에 대한 인스턴스를 생성하여 가상화 자원으로서 컨테이너에 배치할 수 있다. 이때, 가상화를 위한 컴퓨팅 자원으로는 네트워크, CPU, GPU, 메모리, DB 등을 포함할 수 있다.More specifically, the virtualization unit 310 may generate a container corresponding to the PC game, configure virtualization resources according to specifications of the PC game, and allocate the virtualized resources to the container. That is, the virtualization unit 310 may create a virtualized container to create a virtual space for independently executing a high-end PC game on the expansion server 130 . In addition, the virtualization unit 310 may create instances of computing resources required for smooth execution based on specification information of the PC game and place them in containers as virtualization resources. In this case, computing resources for virtualization may include a network, a CPU, a GPU, a memory, a DB, and the like.

한편, 가상화부(310)는 PC 게임의 실행을 위한 가상화 동작을 수행하기 위하여 별도의 클라우드 서버와 연동하여 동작할 수 있다. 즉, 가상화부(310)는 HMD 단말(110)로부터의 요청에 따라 게임 실행을 위한 가상화를 클라우드 서버에 요청할 수 있고, 그 응답으로서 가상화된 자원을 활용하여 PC 게임을 실행할 수 있다.Meanwhile, the virtualization unit 310 may operate in conjunction with a separate cloud server to perform virtualization operations for execution of PC games. That is, the virtualization unit 310 may request virtualization for game execution to the cloud server according to a request from the HMD terminal 110, and as a response, may execute a PC game using virtualized resources.

일 실시예에서, 가상화부(310)는 HMD 단말(110)로부터의 게임 실행 요청에 대응하여 가상화 시나리오에 따라 게임 실행을 위한 가상화 환경을 구성할 수 있고, HMD 단말(110)과의 네트워크 연결상태, 요청된 게임의 권장사양 및 HMD 단말(110)의 프로파일 정보에 따라 가상화 환경을 적정 크기로 재구성할 수 있다.In one embodiment, the virtualization unit 310 may configure a virtualization environment for game execution according to a virtualization scenario in response to a game execution request from the HMD terminal 110, and a network connection state with the HMD terminal 110. , The virtualization environment may be reconfigured to an appropriate size according to the requested game specifications and the profile information of the HMD device 110 .

캡쳐부(320)는 컨테이너 상에서 PC 게임이 실행되는 동안 렌더링 영상을 추출하고 HMD 단말(110)의 프로파일 정보를 기초로 게임 영상 및 사운드를 게임 데이터로서 캡쳐할 수 있다. 이를 위해 캡쳐부(320)는 독립된 모듈들을 포함하여 구현될 수 있다. 구체적으로, 캡쳐부(320)는 DLL 삽입 모듈, 후처리 모듈 및 캡쳐 모듈을 포함하여 구현될 수 있으며, 이에 대해서는 도 4에서 보다 자세히 설명한다.The capture unit 320 may extract a rendered image while the PC game is being executed on the container and capture the game image and sound as game data based on the profile information of the HMD terminal 110 . To this end, the capture unit 320 may be implemented by including independent modules. Specifically, the capture unit 320 may be implemented by including a DLL insertion module, a post-processing module, and a capture module, which will be described in more detail with reference to FIG. 4 .

인코더부(330)는 게임 데이터를 스트리밍 방식에 따라 인코딩하여 인코딩 데이터를 생성할 수 있다. 확장 서버(130)와 HMD 단말(110)은 무선 네트워크를 통해 연동할 수 있으며 고화질의 영상을 고속으로 전송하기 위하여 데이터 압축 과정이 수행될 수 있다. 인코더부(330)는 무선 네트워크를 통한 스트리밍 방식에 따라 소정의 인코딩 방식을 결정할 수 있다. 또한, 인코더부(330)는 네트워크 환경, 확장 서버(130)와 HMD 단말(110)의 부하 상태 등을 고려하여 인코딩 방식을 동적으로 결정할 수 있다.The encoder unit 330 may generate encoded data by encoding game data according to a streaming method. The extension server 130 and the HMD device 110 may interwork through a wireless network, and a data compression process may be performed to transmit high-quality images at high speed. The encoder unit 330 may determine a predetermined encoding method according to a streaming method through a wireless network. In addition, the encoder unit 330 may dynamically determine an encoding method in consideration of a network environment, load conditions of the extension server 130 and the HMD device 110, and the like.

일 실시예에서, 인코더부(330)는 스트리밍 방식에 따라 비트레이트 및 인코딩 방식을 결정하고 무선 네트워크의 부하 상태에 따라 인코딩 옵션을 변경할 수 있다. 예를 들어, 인코딩 방식은 H.264(AVC) 및 H.265(HEVC)을 포함할 수 있으며, 타일 방식의 인코딩과 슬라이스 방식의 인코딩으로 구분될 수 있다. 또한, 인코더부(330)는 네트워크의 부하 상태에 따른 인코딩 옵션을 변경할 수 있다. 인코딩 옵션은 네트워크 상태에 적합한 비트레이트(bitrate)를 적용하는 가변 비트레이트 제어(Adaptive Bitrate Control) 방식과 네트워크 상태에 적합한 리프레시(refresh) 주기 및 리프레시 시간을 적용하는 가변 인트라 리프레시(Adaptive Intra Refresh) 방식을 포함할 수 있다.In one embodiment, the encoder unit 330 may determine a bit rate and an encoding method according to a streaming method and change an encoding option according to a load condition of a wireless network. For example, encoding schemes may include H.264 (AVC) and H.265 (HEVC), and may be divided into tile-based encoding and slice-based encoding. Also, the encoder unit 330 may change an encoding option according to a network load condition. Encoding options include the Adaptive Bitrate Control method, which applies a bitrate suitable for the network condition, and the Adaptive Intra Refresh method, which applies a refresh cycle and refresh time suitable for the network condition. can include

제1 네트워크부(340)는 무선 네트워크를 통해 인코딩 데이터를 HMD 단말(110)에 전송할 수 있다. 보다 구체적으로, 제1 네트워크부(340)는 인코딩된 프레임 데이터를 무선 네트워크의 프로토콜에 따라 패킷 데이터로 분할하여 전송할 수 있다. 제1 네트워크부(340)는 스트리밍 데이터와 제어신호 데이터를 분리하여 처리할 수 있으며, 무선 네트워크에 적합한 전송 프로토콜을 선택적으로 사용할 수 있다.The first network unit 340 may transmit encoded data to the HMD terminal 110 through a wireless network. More specifically, the first network unit 340 may divide the encoded frame data into packet data according to a wireless network protocol and transmit the divided data. The first network unit 340 may separately process streaming data and control signal data, and may selectively use a transmission protocol suitable for a wireless network.

한편, 제1 네트워크부(340)는 네트워크의 상태에 따라 멀티 채널을 이용하여 데이터 전송을 수행할 수 있다. 예를 들어, 제1 네트워크부(340)는 네트워크의 부하가 큰 경우 데이터 전송에 이용하는 채널수를 증가시킬 수 있다. 이와 반대로, 제1 네트워크부(340)는 네트워크의 부하가 작은 경우 데이터 전송에 이용하는 채널수를 감소시킬 수 있다. 또한, 제1 네트워크부(340)는 멀티 채널을 이용하는 경우 멀티 채널 간의 동기화 기능을 제공할 수 있다.Meanwhile, the first network unit 340 may perform data transmission using multi-channels according to the state of the network. For example, the first network unit 340 may increase the number of channels used for data transmission when the load of the network is high. Conversely, the first network unit 340 may reduce the number of channels used for data transmission when the network load is low. In addition, the first network unit 340 may provide a synchronization function between multiple channels when using multiple channels.

일 실시예에서, 제1 네트워크부(340)는 NAL 유닛(unit)을 포함하여 구현될 수 있다. NAL 유닛은 H.264/AVC 및 HEVC 비디오 코딩 표준의 일부에 해당할 수 있다. 즉, 제1 네트워크부(340)는 인코더부(330)의 인코더 방식에 대응하는 네트워크 추상화 계층(Network Abstraction Layer) 유닛으로 구현되어 게임 영상을 HMD 단말(110)에 효율적으로 전송할 수 있다.In one embodiment, the first network unit 340 may be implemented by including a NAL unit. A NAL unit may correspond to part of the H.264/AVC and HEVC video coding standards. That is, the first network unit 340 is implemented as a network abstraction layer unit corresponding to the encoder method of the encoder unit 330 and can efficiently transmit game images to the HMD device 110 .

제2 네트워크부(350)는 무선 네트워크를 통해 확장 서버(130)로부터 인코딩 데이터를 수신할 수 있다. 즉, 제2 네트워크부(350)는 수신한 데이터를 프레임 정보에 맞도록 조립할 수 있다. 제2 네트워크부(350)는 다중 채널 전송인 경우 각 채널로 수신된 데이터들을 프레임 정보에 맞춰 조립할 수 있다. 또한, 제2 네트워크부(350)는 스트리밍 데이터와 제어신호 데이터를 분리하여 처리할 수 있다. 제2 네트워크부(350)는 무선 네트워크에 적합한 전송 프로토콜을 선택적으로 사용할 수 있으며, 제1 네트워크부(340)와 동일한 전송 프로토콜을 사용할 수 있다.The second network unit 350 may receive encoded data from the expansion server 130 through a wireless network. That is, the second network unit 350 may assemble the received data to match the frame information. In the case of multi-channel transmission, the second network unit 350 may assemble data received through each channel according to frame information. In addition, the second network unit 350 may separate and process streaming data and control signal data. The second network unit 350 may selectively use a transmission protocol suitable for a wireless network, and may use the same transmission protocol as the first network unit 340 .

일 실시예에서, 제2 네트워크부(350)는 NAL 파서(Parser)를 포함하여 구현될 수 있다. NAL 파서는 H.264/AVC 및 HEVC 비디오 코딩 표준의 일부에 해당할 수 있다. 제2 네트워크부(350)는 NAL 파서를 통해 NAL 유닛 중 NAL 헤더를 처리하고 나머지 데이터를 추출하여 디코더부(360)에 전달할 수 있다.In one embodiment, the second network unit 350 may be implemented by including a NAL parser. The NAL parser may correspond to part of the H.264/AVC and HEVC video coding standards. The second network unit 350 may process the NAL header of the NAL unit through the NAL parser, extract remaining data, and transmit the extracted data to the decoder unit 360 .

디코더부(360)는 인코딩 데이터를 디코딩하여 디코딩 데이터를 생성하고 디코딩 데이터를 텍스쳐 버퍼에 저장할 수 있다. 디코더부(360)는 제2 네트워크부(350)에 의해 수신되어 조립된 인코딩 데이터를 디코딩하여 복원할 수 있다. 복원된 영상데이터는 텍스쳐링된 후 텍스쳐 버퍼에 저장될 수 있다. 텍스쳐 버퍼가 가득 찬 경우 렌더링부(370)로 다음 프레임에 대한 영상 생성이 완료되었음을 알릴 수 있다. 한편, 디코더부(360)는 게임 영상과 별도로 사운드에 대한 디코딩을 수행할 수 있으며, 디코딩된 사운드는 게임 영상의 재생에 따라 함께 플레이될 수 있다.The decoder unit 360 may decode the encoded data to generate decoded data and store the decoded data in a texture buffer. The decoder unit 360 may decode and restore encoded data received and assembled by the second network unit 350 . The reconstructed image data may be textured and then stored in a texture buffer. When the texture buffer is full, the rendering unit 370 may be notified that generation of an image for the next frame has been completed. Meanwhile, the decoder unit 360 may decode sound separately from the game video, and the decoded sound may be played along with the game video.

렌더링부(370)는 화면 주사율에 따라 텍스쳐 버퍼로부터 디코딩 데이터를 추출하여 디스플레이 화면을 갱신할 수 있다. 렌더링부(370)는 텍스쳐 버퍼가 가득찬 경우 이에 관한 신호를 수신할 수 있고, HMD 단말(110)의 화면 주사율에 맞춰 디스플레이 화면을 갱신하는 동작을 수행할 수 있다. 화면 갱신 동작에 의해 텍스처 버퍼에 저장된 다음 프레임의 게임 영상이 재생될 수 있다.The rendering unit 370 may update the display screen by extracting decoded data from the texture buffer according to the screen refresh rate. When the texture buffer is full, the rendering unit 370 may receive a signal related thereto and perform an operation of updating the display screen according to the screen refresh rate of the HMD device 110 . The game image of the next frame stored in the texture buffer may be played by the screen update operation.

일 실시예에서, 렌더링부(370)는 제어 데이터 처리부(380)로부터 수신한 신호들을 이용하여 디스플레이 화면의 현재 프레임을 보정함으로써 지연(latency)에 따른 화면 떨림을 제거할 수 있다. 서버와 단말 사이의 데이터 전송에 따른 지연으로 실제 재생 화면과 현재 사용자 움직임 사이의 오차가 발생할 수 있으며, 이에 따라 HMD 단말(110)에서 재생되는 화면의 떨림 현상이 발생할 수 있다. 렌더링부(370)는 화면 떨림을 제거하기 위하여 사용자의 움직임에 관한 트랙킹(tracking) 정보를 기초로 현재 프레임을 보정할 수 있다.In one embodiment, the rendering unit 370 may remove screen shaking due to latency by correcting the current frame of the display screen using the signals received from the control data processing unit 380 . An error between an actual playback screen and a current user movement may occur due to a delay caused by data transmission between the server and the terminal, and accordingly, a flickering phenomenon may occur in a screen played on the HMD terminal 110 . The rendering unit 370 may correct the current frame based on tracking information about the user's movement in order to remove the screen shake.

제어 데이터 처리부(380)는 방향 신호와 위치 신호 및 컨트롤 신호를 수신하여 렌더링부(370) 및 확장 서버(130)에 각각 전달할 수 있다. 즉, 제어 데이터 처리부(380)는 사용자 움직임에 따른 HMD 단말(110)의 움직임 정보와 사용자의 제어에 따른 컨트롤러(controller)의 컨트롤 정보를 수집할 수 있으며, 움직임 정보는 HMD 단말(110)의 방향(orientation) 정보와 위치(position) 정보를 포함할 수 있다.The control data processing unit 380 may receive a direction signal, a position signal, and a control signal and transmit them to the rendering unit 370 and the expansion server 130 , respectively. That is, the control data processing unit 380 may collect movement information of the HMD device 110 according to the user's movement and control information of a controller according to the user's control, and the movement information is the direction of the HMD device 110. It may include orientation information and position information.

한편, 확장 서버(130)는 제어 데이터 처리부(380)에 의해 제공되는 사용자의 움직임 정보를 기초로 이전의 종단간 지연(End-to end Latency)을 기준으로 HMD 단말(110)의 현재 방향과 위치를 예측하여 게임 조작 및 렌더링 영상 생성 과정에 적용할 수 있다. 또한, 확장 서버(130)는 제어 데이터 처리부(380)에 의해 제공되는 컨트롤러의 위치 정보를 기초로 이전의 종단간 지연(End-to end Latency)을 기준으로 컨트롤러의 현재 위치를 예측하여 게임 조작 및 렌더링 영상 생성 과정에 각각 적용할 수 있다.Meanwhile, the expansion server 130 controls the current direction and position of the HMD device 110 based on the previous end-to-end latency based on the user's movement information provided by the control data processing unit 380. can be predicted and applied to the process of game operation and rendering image generation. In addition, the expansion server 130 predicts the current position of the controller based on the previous end-to-end latency based on the position information of the controller provided by the control data processing unit 380 to control and control the game. Each can be applied to the rendering image generation process.

도 4는 도 3의 캡쳐부의 기능적 구성을 설명하는 도면이다.FIG. 4 is a diagram explaining the functional configuration of the capture unit of FIG. 3 .

도 4를 참조하면, 확장 서버(130)는 게임 실행에 따른 게임 데이터를 캡쳐하여 무선 네트워크를 통해 HMD 단말(110)에 전송할 수 있다. 이때, 확장 서버(130)의 캡쳐부(320)는 관련 동작을 수행하기 위해 복수의 모듈들을 포함하여 구현될 수 있다. 보다 구체적으로, 캡쳐부(320)는 DLL 삽입 모듈(410), 후처리 모듈(420) 및 캡쳐 모듈(430)을 포함할 수 있다.Referring to FIG. 4 , the extension server 130 may capture game data according to game execution and transmit it to the HMD terminal 110 through a wireless network. At this time, the capture unit 320 of the extension server 130 may be implemented by including a plurality of modules to perform a related operation. More specifically, the capture unit 320 may include a DLL insertion module 410 , a post-processing module 420 and a capture module 430 .

DLL 삽입 모듈(410)은 게임 영상 및 사운드를 추출하기 위해 PC 게임의 프로세스 내에 DLL(Dynamic Link Library)을 삽입할 수 있다. DLL 인젝션(DLL Injection)은 게임 프로세스에 영상 및 사운드 추출을 위한 DLL 파일을 강제로 삽입하는 동작에 해당할 수 있다. DLL 삽입 모듈(410)은 PC 게임의 프로세스에 할당된 메모리 공간에 DLL 파일을 삽입할 수 있으며, 이를 통해, 캡쳐부(320)는 PC 게임의 실행 과정에서 게임 영상이나 사운드를 추출할 수 있다.The DLL insertion module 410 may insert a dynamic link library (DLL) into a PC game process to extract game images and sounds. DLL injection may correspond to an operation of forcibly inserting a DLL file for extracting images and sounds into a game process. The DLL insertion module 410 may insert a DLL file into the memory space allocated to the PC game process, and through this, the capture unit 320 may extract game images or sounds during the PC game execution process.

후처리 모듈(420)은 프로파일 정보에 따라 렌더링 영상의 유형 및 해상도를 변경하거나 또는 적어도 하나의 필터(filter)를 적용하는 후처리 동작을 수행할 수 있다. 예를 들어, 후처리 모듈(420)은 HMD 단말(110)의 설정 정보를 프로파일 정보로 수신하여 렌더링 영상으로서 3차원 영상을 생성할 수 있다. 또한, 후처리 모듈(420)은 게임 해상도에 따라 렌더링 영상을 생성할 수 있고, 필요에 따라 다양한 필터들을 적용할 수도 있다.The post-processing module 420 may perform a post-processing operation of changing the type and resolution of a rendered image or applying at least one filter according to profile information. For example, the post-processing module 420 may receive setting information of the HMD terminal 110 as profile information and generate a 3D image as a rendered image. In addition, the post-processing module 420 may generate a rendered image according to the game resolution, and may apply various filters as needed.

캡쳐 모듈(430)은 후처리 동작이 적용된 렌더링 영상으로부터 게임 영상 및 사운드를 캡쳐할 수 있다. 캡쳐 모듈(430)은 렌더링 영상에서 특정 방향, 특정 시야각에 해당하는 영역을 지정한 후 게임 영상으로서 캡쳐할 수 있으며, 해당 캡쳐 시점의 사운드 데이터를 함께 저장할 수 있다.The capture module 430 may capture a game image and sound from a rendered image to which a post-processing operation is applied. The capture module 430 may designate an area corresponding to a specific direction and a specific viewing angle in the rendered image and capture it as a game image, and may also store sound data at the time of the capture.

도 5는 본 발명에 따른 확장 서버의 동작을 설명하는 도면이다.5 is a diagram illustrating the operation of an expansion server according to the present invention.

도 5를 참조하면, 확장 서버(130)는 PC 게임 실행을 위한 가상화를 제공할 수 있으며, 가상화된 자원을 이용하여 PC 게임을 실행할 수 있다. 확장 서버(130)는 PC 게임이 실행되는 동안 게임 영상과 사운드를 캡쳐하여 HMD 단말(110)에 전송할 수 있다.Referring to FIG. 5 , the expansion server 130 may provide virtualization for PC game execution, and may execute the PC game using virtualized resources. The expansion server 130 may capture and transmit game images and sounds to the HMD terminal 110 while the PC game is being executed.

보다 구체적으로, 확장 서버(130)는 DLL 인젝션을 통해 게임 프로세스 내에 DLL 파일을 삽입할 수 있다(단계 S510). DLL 파일은 게임 실행 과정에서 게임 영상 및 사운드를 캡쳐하는데 사용될 수 있다. 확장 서버(130)는 후처리 동작을 통해 렌더링 영상을 원하는 형태로 가공할 수 있으며(단계 S530), HMD 단말(110)로의 전송을 위한 영상 및 음성을 캡쳐할 수 있다(단계 S550).More specifically, the extension server 130 may insert a DLL file into the game process through DLL injection (step S510). DLL files can be used to capture game images and sounds during game execution. The expansion server 130 may process the rendered image into a desired form through a post-processing operation (step S530), and may capture video and audio for transmission to the HMD terminal 110 (step S550).

또한, 확장 서버(130)는 캡쳐된 영상 및 음성 데이터를 스트리밍에 적절한 방법으로 인코딩할 수 있다(단계 S570). 마지막으로, 확장 서버(130)는 인코딩된 영상을 프로토콜의 패킷 데이터로 분할하여 전송할 수 있다(단계 S590).In addition, the expansion server 130 may encode the captured video and audio data in a method suitable for streaming (step S570). Finally, the extension server 130 may divide the encoded video into packet data of a protocol and transmit (step S590).

도 6은 본 발명에 따른 HMD 단말의 동작을 설명하는 도면이다.6 is a diagram explaining the operation of the HMD terminal according to the present invention.

도 6을 참조하면, HMD 단말(110)은 확장 서버(130)로부터 게임 데이터를 수신하고 제어 신호에 따라 보정된 게임 영상 및 사운드를 재생할 수 있다.Referring to FIG. 6 , the HMD device 110 may receive game data from the extension server 130 and reproduce corrected game images and sounds according to control signals.

보다 구체적으로, HMD 단말(110)은 무선 네트워크를 통해 확장 서버(130)에 의해 캡쳐된 데이터를 수신할 수 있다(단계 S610). HMD 단말(110)은 수신한 데이터를 프레임 정보에 맞춰 조립할 수 있다. 만약 다중 채널 전송을 이용한 경우, HMD 단말(110)은 각 채널 별로 수신된 데이터들을 프레임 정보에 맞춰 조립할 수 있다. 또한, HMD 단말(110)은 스트리밍 데이터와 제어신호 데이터를 각각 독립적으로 처리할 수 있다.More specifically, the HMD device 110 may receive data captured by the expansion server 130 through a wireless network (step S610). The HMD device 110 may assemble the received data according to frame information. If multi-channel transmission is used, the HMD terminal 110 may assemble data received for each channel according to frame information. In addition, the HMD terminal 110 may independently process streaming data and control signal data.

HMD 단말(110)은 조립된 스트리밍 데이터를 디코딩하여 복원할 수 있다(단계 S630). 이후 디코딩된 영상 데이터는 텍스쳐링 되어 텍스쳐 버퍼에 저장될 수 있고(단계 S650), 새로운 프레임에 대한 준비 신호가 렌더링부에 전달될 수 있다. HMD 단말(110)은 렌더링부를 통해 다음 프레임에 대한 영상이 준비된 경우 화면 주사율에 맞춰 디스플레이 화면을 갱신하여 게임 영상을 재생할 수 있다(단계 S690). 이때, HMD 단말(110)은 사용자 움직임에 관한 트랙킹 정보에 기초하여 현재 프레임을 보정할 수 있다.The HMD device 110 may decode and restore the assembled streaming data (step S630). Thereafter, the decoded image data may be textured and stored in a texture buffer (step S650), and a preparation signal for a new frame may be transmitted to the rendering unit. When the video for the next frame is prepared through the rendering unit, the HMD terminal 110 can reproduce the game video by updating the display screen according to the screen refresh rate (step S690). At this time, the HMD device 110 may correct the current frame based on the tracking information on the user's movement.

본 발명에 따른 게임 확장 시스템(100)은 도 7에 도시된 바와 같이 구성될 수 있으며, 고화질의 PC 게임을 가상화 하여 무선(예를 들어, WiFi 또는 5G Mobile Network)으로 HMD 디바이스에 전송할 수 있다. 이를 통해 사용자는 고사양 장비에서만 실행되는 게임들을 무선으로 연동하여 본인만의 위치에서 고품질의 게임을 자유롭게 이용할 수 있다.The game expansion system 100 according to the present invention may be configured as shown in FIG. 7, and may virtualize a high-definition PC game and transmit it to the HMD device wirelessly (eg, WiFi or 5G Mobile Network). Through this, users can wirelessly link games that run only on high-end equipment and freely use high-quality games at their own location.

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.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: HMD 단말 130: 확장 서버
150: 데이터베이스
210: 프로세서 230: 메모리
250: 사용자 입출력부 270: 네트워크 입출력부
310: 가상화부 320: 캡쳐부
330: 인코더부 340: 제1 네트워크부
350: 제2 네트워크 부 360: 디코더부
370: 렌더링부 380: 제어 데이터 처리부
410: DLL 삽입 모듈 420: 후처리 모듈
430: 캡쳐 모듈
100: game expansion system
110: HMD terminal 130: Expansion server
150: database
210: processor 230: memory
250: user input/output unit 270: network input/output unit
310: virtualization unit 320: capture unit
330: encoder unit 340: first network unit
350: second network unit 360: decoder unit
370: rendering unit 380: control data processing unit
410: DLL insertion module 420: post-processing module
430: capture module

Claims (6)

PC 게임의 실행을 위한 가상화를 제공하고 상기 실행에 따른 게임 데이터를 캡쳐하여 무선 네트워크를 통해 HMD 단말에 전송하는 확장 서버; 및
상기 확장 서버로부터 상기 게임 데이터를 수신하고 제어 신호에 따라 보정된 게임 영상 및 사운드를 재생하는 HMD 단말;을 포함하고,
상기 확장 서버는
상기 PC 게임에 대응하는 컨테이너를 생성하고 상기 PC 게임에 대한 가상화 시나리오에 따라 게임 실행을 위한 가상화 환경을 구성하되 상기 HMD 단말과의 네트워크 연결상태, 상기 PC 게임의 권장사양 및 상기 HMD 단말의 프로파일 정보에 따라 상기 가상화 환경을 위한 가상화 자원을 재구성하여 상기 컨테이너에 할당하는 가상화부;
상기 컨테이너 상에서 상기 PC 게임이 실행되는 동안 렌더링 영상을 추출하고 상기 HMD 단말의 프로파일 정보를 기초로 게임 영상 및 사운드를 상기 게임 데이터로서 캡쳐하는 캡쳐부;
상기 게임 데이터를 스트리밍 방식에 따라 인코딩하여 인코딩 데이터를 생성하는 인코더부; 및
상기 무선 네트워크를 통해 상기 인코딩 데이터를 상기 HMD 단말에 전송하는 제1 네트워크부;를 포함하며,
상기 캡쳐부는
상기 게임 영상 및 사운드를 추출하기 위해 상기 가상화 자원 중 상기 PC 게임의 프로세스에 할당된 메모리 공간에 접근하여 상기 프로세스 내에DLL(Dynamic Link Library)을 삽입하는 DLL 삽입 모듈;
상기 프로파일 정보에 따라 상기 렌더링 영상의 유형 및 해상도를 변경하거나 또는 적어도 하나의 필터(filter)를 적용하는 후처리 동작을 수행하는 후처리 모듈; 및
상기 후처리 동작이 적용된 렌더링 영상으로부터 상기 게임 영상 및 사운드를 캡쳐하는 캡쳐 모듈;을 포함하고,
상기 제어 신호는 상기 HMD 단말의 방향(orientation) 신호와 컨트롤러(controller) 신호를 포함하는 것을 특징으로 하는 HMD 기반의 PC 게임 확장 시스템.
An expansion server that provides virtualization for PC game execution, captures game data according to the execution, and transmits the captured game data to the HMD terminal through a wireless network; and
An HMD terminal for receiving the game data from the expansion server and reproducing corrected game video and sound according to a control signal;
The extension server
A container corresponding to the PC game is created and a virtualization environment for game execution is configured according to the virtualization scenario for the PC game, but the network connection state with the HMD terminal, the recommended specifications of the PC game, and the profile information of the HMD terminal a virtualization unit that reconfigures virtualization resources for the virtualization environment and allocates them to the container;
a capture unit that extracts a rendered image while the PC game is being executed on the container and captures the game image and sound as the game data based on the profile information of the HMD terminal;
an encoder unit generating encoded data by encoding the game data according to a streaming method; and
A first network unit transmitting the encoded data to the HMD terminal through the wireless network;
the capture unit
A DLL insertion module for accessing a memory space allocated to the process of the PC game among the virtualization resources to extract the game image and sound, and inserting a Dynamic Link Library (DLL) into the process;
a post-processing module that performs a post-processing operation of changing the type and resolution of the rendered image or applying at least one filter according to the profile information; and
A capture module for capturing the game image and sound from the rendered image to which the post-processing operation is applied;
The HMD-based PC game extension system, characterized in that the control signal includes an orientation signal and a controller signal of the HMD terminal.
삭제delete 삭제delete 제1항에 있어서, 상기 인코더부는
상기 스트리밍 방식에 따라 비트레이트 및 인코딩 방식을 결정하고 상기 무선 네트워크의 부하 상태에 따라 인코딩 옵션을 변경하는 것을 특징으로 하는 HMD 기반의 PC 게임 확장 시스템.
The method of claim 1, wherein the encoder unit
HMD-based PC game extension system, characterized in that the bit rate and the encoding method are determined according to the streaming method and the encoding option is changed according to the load condition of the wireless network.
제1항에 있어서, 상기 HMD 단말은
상기 무선 네트워크를 통해 상기 확장 서버로부터 상기 인코딩 데이터를 수신하는 제2 네트워크부;
상기 인코딩 데이터를 디코딩하여 디코딩 데이터를 생성하고 상기 디코딩 데이터를 텍스쳐 버퍼에 저장하는 디코더부;
화면 주사율에 따라 상기 텍스쳐 버퍼로부터 상기 디코딩 데이터를 추출하여 디스플레이 화면을 갱신하는 렌더링부; 및
상기 방향 신호와 위치 신호 및 상기 컨트롤러 신호를 수신하여 상기 렌더링부 및 상기 확장 서버에 각각 전달하는 제어 데이터 처리부;를 포함하는 것을 특징으로 하는 HMD 기반의 PC 게임 확장 시스템.
The method of claim 1, wherein the HMD terminal
a second network unit receiving the encoded data from the expansion server through the wireless network;
a decoder unit which decodes the encoded data to generate decoded data and stores the decoded data in a texture buffer;
a rendering unit that updates the display screen by extracting the decoded data from the texture buffer according to the screen refresh rate; and
The HMD-based PC game extension system comprising a; control data processing unit which receives the direction signal, the position signal and the controller signal and transfers them to the rendering unit and the expansion server, respectively.
제5항에 있어서, 상기 렌더링부는
상기 제어 데이터 처리부로부터 수신한 신호들을 이용하여 상기 디스플레이 화면의 현재 프레임을 보정함으로써 지연(latency)에 따른 화면 떨림을 제거하는 것을 특징으로 하는 HMD 기반의 PC 게임 확장 시스템.
The method of claim 5, wherein the rendering unit
The HMD-based PC game extension system, characterized in that, by using the signals received from the control data processor to correct the current frame of the display screen to remove screen shake due to latency.
KR1020210055267A 2021-04-28 2021-04-28 HMD-based PC game expansion system KR102568415B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210055267A KR102568415B1 (en) 2021-04-28 2021-04-28 HMD-based PC game expansion system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210055267A KR102568415B1 (en) 2021-04-28 2021-04-28 HMD-based PC game expansion system

Publications (2)

Publication Number Publication Date
KR20220148027A KR20220148027A (en) 2022-11-04
KR102568415B1 true KR102568415B1 (en) 2023-08-21

Family

ID=84045243

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210055267A KR102568415B1 (en) 2021-04-28 2021-04-28 HMD-based PC game expansion system

Country Status (1)

Country Link
KR (1) KR102568415B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193312A (en) * 2015-02-27 2019-10-31 ソニック アイピー, インコーポレイテッド System and method for frame duplication and frame extension in live video encoding and streaming
JP2019531550A (en) * 2016-06-13 2019-10-31 株式会社ソニー・インタラクティブエンタテインメント HMD transition to focus on specific content in virtual reality environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101480140B1 (en) * 2013-01-03 2015-01-07 주식회사 비티비솔루션 Multi injection server and method thereof
KR20160139461A (en) * 2015-05-27 2016-12-07 엘지전자 주식회사 Head mounted display and, the controlling method thereof
KR20170058758A (en) 2015-11-19 2017-05-29 엘지전자 주식회사 Tethering type head mounted display and method for controlling the same

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019193312A (en) * 2015-02-27 2019-10-31 ソニック アイピー, インコーポレイテッド System and method for frame duplication and frame extension in live video encoding and streaming
JP2019531550A (en) * 2016-06-13 2019-10-31 株式会社ソニー・インタラクティブエンタテインメント HMD transition to focus on specific content in virtual reality environment

Also Published As

Publication number Publication date
KR20220148027A (en) 2022-11-04

Similar Documents

Publication Publication Date Title
US10542301B2 (en) Multimedia redirection method, device, and system
US10112115B2 (en) Gamecasting techniques
US20090322784A1 (en) System and method for virtual 3d graphics acceleration and streaming multiple different video streams
US7667707B1 (en) Computer system for supporting multiple remote displays
US20060282855A1 (en) Multiple remote display system
KR102492565B1 (en) Method and apparatus for packaging and streaming virtual reality media content
US20180061364A1 (en) Variable refresh rate video capture and playback
JP2021514167A (en) Distribution and playback of media content
KR20200108369A (en) Systems and method for virtual reality video conversion and streaming
KR102255223B1 (en) Video system and video processing method, device and computer readable medium
US8606071B2 (en) Method and apparatus for presenting interactive multimedia using storage device interface
KR101942269B1 (en) Apparatus and method for playing back and seeking media in web browser
EP4009648A1 (en) Cloud desktop video playback method, server, terminal, and storage medium
WO2010114512A1 (en) System and method of transmitting display data to a remote display
US20150103894A1 (en) Systems and methods to limit lag between a client and a server for remote computing
KR102568415B1 (en) HMD-based PC game expansion system
JP2002351438A (en) Image monitor system
US9838463B2 (en) System and method for encoding control commands
US20140297720A1 (en) Client apparatus, server apparatus, multimedia redirection system, and method thereof
KR102232899B1 (en) System for cloud streaming service, method of cloud streaming service based on type of image and apparatus for the same
JP2002171526A (en) Data processor, data processing system, data processing method, and storage medium
WO2008018860A1 (en) Multiple remote display system
KR102493258B1 (en) Pc game expansion vr system with improved dizziness
US20170048532A1 (en) Processing encoded bitstreams to improve memory utilization
WO2016107174A1 (en) Method and system for processing multimedia file data, player and client

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant