KR102489632B1 - Method of dynamic overfilling for virtual reality and system performing the same - Google Patents

Method of dynamic overfilling for virtual reality and system performing the same Download PDF

Info

Publication number
KR102489632B1
KR102489632B1 KR1020210135180A KR20210135180A KR102489632B1 KR 102489632 B1 KR102489632 B1 KR 102489632B1 KR 1020210135180 A KR1020210135180 A KR 1020210135180A KR 20210135180 A KR20210135180 A KR 20210135180A KR 102489632 B1 KR102489632 B1 KR 102489632B1
Authority
KR
South Korea
Prior art keywords
overfilling
scaling factor
size
angular velocity
generating
Prior art date
Application number
KR1020210135180A
Other languages
Korean (ko)
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 KR1020210135180A priority Critical patent/KR102489632B1/en
Application granted granted Critical
Publication of KR102489632B1 publication Critical patent/KR102489632B1/en

Links

Images

Classifications

    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/40Scaling the whole image or part thereof

Abstract

Disclosed are a dynamic overfilling method for virtual reality and a performing system thereof. The overfilling method according to various embodiments comprises the operations of: calculating a first overfilling size for performing the overfilling of an original image based on a field of view corresponding to a first plane when a user sees an image in the virtual reality at a first angle, and a field of view corresponding to a second plane when the user sees the input image at a second angle; obtaining an angular velocity from the first angle to the second angle; generating a scaling factor based on the angular velocity; and generating a second overfilling size generated by adjusting the first overfilling size based on the first overfilling size and the scaling factor, wherein the original image may be a base in generating the image. Therefore, provided is an overfilling technique using a minimal overfilling size capable of solving a blank region for each frame.

Description

가상 현실을 위한 동적 오버필링 방법 및 이를 수행하는 시스템{METHOD OF DYNAMIC OVERFILLING FOR VIRTUAL REALITY AND SYSTEM PERFORMING THE SAME}METHOD OF DYNAMIC OVERFILLING FOR VIRTUAL REALITY AND SYSTEM PERFORMING THE SAME}

본 발명의 다양한 실시예들은 가상 현실을 위한 동적 오버필링 방법 및 이를 수행하는 시스템에 관한 것이다.Various embodiments of the present invention relate to a method for dynamic overfilling for virtual reality and a system for performing the same.

VR 분야에서는 기존 콘텐츠 대비 높은 컴퓨팅 오버헤드로 인해 레이턴시(latency)가 크게 발생하고, 레이턴시로 인해 렌더링된 이미지와 사용자의 시각 간에 괴리가 발생하면 사용자에게 멀미 등의 불편함을 초래할 수 있다. 예를 들어, 사용자의 시야 범위로 예측한 이미지를 렌더링하는 동안 사용자 머리 각도가 이동하여 사용자의 평형감각이 인지하는 시각과 실제로 바라보는 시각이 달라질 수 있다. 이와 같은 예측 오차를 보정하기 위해 이미지 리프로젝션(image reprojection)을 할 수 있지만, 이미지 리프로젝션 결과 시청하는 이미지에서 공백 영역(black border)이 발생할 수 있다.In the field of VR, latency (latency) occurs significantly due to high computing overhead compared to existing content, and when a gap occurs between the rendered image and the user's vision due to latency, it can cause discomfort such as motion sickness to the user. For example, the angle of the user's head moves while rendering the image predicted by the user's field of view, so that the user's sense of equilibrium perceives and actually looks at it differently. Image reprojection may be performed to compensate for such a prediction error, but as a result of image reprojection, a black border may occur in a viewed image.

위에서 설명한 배경기술은 발명자가 본원의 개시 내용을 도출하는 과정에서 보유하거나 습득한 것으로서, 반드시 본 출원 전에 일반 공중에 공개된 공지기술이라고 할 수는 없다.The background art described above is possessed or acquired by the inventor in the process of deriving the disclosure of the present application, and cannot necessarily be said to be known art disclosed to the general public prior to the present application.

시청하는 이미지에서의 공백 영역을 최소화하기 위해 VR헤드셋의 FOV(field of view)보다 큰 이미지를 렌더링하는 오버필링(overfilling)을 수행할 수 있다. 오버필링 크기는 수학 모델을 이용해서 산출 가능하지만 수학 모델은 경우에 따라 i) 너무 큰 오버필링 크기를 산출해서 실제 적용이 어렵게 하거나, ii) 실제값과 차이가 큰 오버필링 크기를 산출해서 부정확한 결과를 초래할 수 있다. 한편, 큰 오버필링은 더 많은 컴퓨팅 파워를 소모한다. 이에, 수학 모델로부터 획득한 오버필링 크기를 조정하여 최적의 오버필링 크기로 오버필링을 수행하는 기술이 요구될 수 있다.Overfilling may be performed to render an image larger than the field of view (FOV) of the VR headset in order to minimize a blank area in the viewed image. The overfilling size can be calculated using a mathematical model, but in some cases, the mathematical model may i) calculate an overfilling size that is too large, making it difficult to apply in practice, or ii) calculate an overfilling size that is far from the actual value, resulting in inaccurate results. can have consequences. On the other hand, large overfilling consumes more computing power. Accordingly, a technique for performing overfilling with an optimal overfilling size by adjusting the overfilling size obtained from the mathematical model may be required.

다양한 실시예들은 프레임별로 공백 영역을 해결할 수 있는 최소한의 오버필링 크기를 사용하여 오버필링을 수행하는 기술을 제공할 수 있다.Various embodiments may provide a technique for performing overfilling using a minimum overfilling size capable of resolving blank areas for each frame.

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical challenges are not limited to the above-described technical challenges, and other technical challenges may exist.

다양한 실시예에 따른 오버필링 방법은 사용자가 제1 각도로 상기 가상 현실에서 이미지를 볼 때의 제1 평면에 대응하는 시야 및 상기 사용자가 제2 각도로 상기 입력 이미지를 볼 때의 제2 평면에 대응하는 시야에 기초하여 원본 이미지의 오버필링을 수행하기 위한 제1 오버필링 크기를 계산하는 동작, 상기 제1 각도에서부터 상기 제2 각도까지의 각속도를 획득하는 동작, 상기 각속도에 기초하여 스케일링 팩터를 생성하는 동작과 상기 제1 오버필링 크기 및 상기 스케일링 팩터에 기초하여 상기 제1 오버필링 크기가 조정된 제2 오버필링 크기를 생성하는 동작을 포함하고, 상기 원본 이미지는 상기 이미지를 생성하는데 기초가 되는 것일 수 있다.The overfilling method according to various embodiments provides a field of view corresponding to a first plane when a user views an image in the virtual reality at a first angle and a second plane when the user views the input image at a second angle. An operation of calculating a first overfilling size for performing overfilling of an original image based on a corresponding field of view, an operation of obtaining an angular velocity from the first angle to the second angle, and a scaling factor based on the angular velocity and generating a second overfilling size obtained by adjusting the first overfilling size based on the first overfilling size and the scaling factor, wherein the original image is used as a basis for generating the image. it may be

상기 각속도를 획득하는 동작은 상기 각속도 및 상기 각속도의 최소값, 역치값, 및 최대값을 획득하는 동작을 포함하고, 상기 스케일링 팩터를 생성하는 동작은 상기 각속도의 최소값에 기초하여 최소 스케일링 팩터를 예측하는 동작, 상기 각속도의 역치값에 기초하여 최대 스케일링 팩터를 예측하는 동작, 상기 각속도의 최대값에 기초하여 익스트림 스케일링 팩터를 예측하는 동작과 상기 최소 스케일링 팩터, 상기 최대 스케일링 펙터, 및 상기 각속도의 역치값에 기초하여 상기 스케일링 팩터를 생성하는 동작을 포함할 수 있다.The operation of acquiring the angular velocity includes obtaining the angular velocity and a minimum value, a threshold value, and a maximum value of the angular velocity, and the operation of generating the scaling factor predicts a minimum scaling factor based on the minimum value of the angular velocity. Operation of predicting a maximum scaling factor based on the threshold value of the angular velocity, operation of predicting an extreme scaling factor based on the maximum value of the angular velocity, and the minimum scaling factor, the maximum scaling factor, and the threshold value of the angular velocity It may include an operation of generating the scaling factor based on.

상기 제2 오버필링 크기를 생성하는 동작은 상기 스케일링 팩터가 상기 최소 스케일링 팩터보다 크고, 상기 최대 스케일링 팩터보다 작은 경우 상기 제1 오버필링 크기를 상기 스케일링 팩터로 나누어 상기 제2 오버필링 크기를 생성하는 동작, 상기 스케일링 팩터가 상기 최대 스케일링 팩터보다 크거나 같은 경우 상기 제1 오버필링 크기를 상기 익스트림 스케일링 팩터로 나누어 상기 제2 오버필링 크기를 생성하는 동작과 상기 스케일링 팩터가 상기 최소 스케일링 팩터보다 작은 경우 상기 제1 오버필링 크기를 스칼라배(scalar multiplication)하여 제2 오버필링 크기를 생성하는 동작을 포함할 수 있다.The generating of the second overfilling size may include generating the second overfilling size by dividing the first overfilling size by the scaling factor when the scaling factor is greater than the minimum scaling factor and smaller than the maximum scaling factor. operation, when the scaling factor is greater than or equal to the maximum scaling factor, generating the second overfilling size by dividing the first overfilling size by the extreme scaling factor, and when the scaling factor is smaller than the minimum scaling factor An operation of generating a second overfilling size by scalar multiplication of the first overfilling size may be included.

상기 스케일링 팩터를 생성하는 동작은 상기 각속도를 exponential 함수의 지수로 이용하여 상기 스케일링 팩터를 생성하는 동작을 포함하고, 상기 제2 오버필링 크기를 생성하는 동작은 상기 스케일링 팩터의 역수를 상기 제1 오버필링 크기에 곱하는 동작을 포함할 수 있다.The generating of the scaling factor includes generating the scaling factor by using the angular velocity as an exponential of an exponential function, and the generating of the second overfilling size includes using the reciprocal of the scaling factor as an exponential of the first overfilling factor. It may include an operation of multiplying the filling size.

다양한 실시예에 따른 장치는 인스트럭션들을 포함하는 메모리, 및 상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는 사용자가 제1 각도로 상기 가상 현실에서 이미지를 볼 때의 제1 평면에 대응하는 시야 및 상기 사용자가 제2 각도로 상기 입력 이미지를 볼 때의 제2 평면에 대응하는 시야에 기초하여 원본 이미지의 오버필링을 수행하기 위한 제1 오버필링 크기를 계산하고, 상기 제1 각도에서부터 상기 제2 각도까지의 각속도를 획득하고, 상기 각속도에 기초하여 스케일링 팩터를 생성하고, 상기 제1 오버필링 크기 및 상기 스케일링 팩터에 기초하여 상기 제1 오버필링 크기가 조정된 제2 오버필링 크기를 생성하고, 상기 원본 이미지는 상기 이미지를 생성하는데 기초가 되는 것일 수 있다.An apparatus according to various embodiments includes a memory including instructions, and a processor electrically connected to the memory and executing the instructions, and when the instructions are executed by the processor, the processor enables a user to first Overfilling of the original image is performed based on the field of view corresponding to the first plane when viewing the image in the virtual reality at an angle and the field of view corresponding to the second plane when the user views the input image at a second angle. Calculate a first overfilling size for the above, obtain an angular velocity from the first angle to the second angle, generate a scaling factor based on the angular velocity, and generate a scaling factor based on the first overfilling size and the scaling factor. Thus, a second overfilling size obtained by adjusting the first overfilling size may be generated, and the original image may be a basis for generating the image.

도 1은 가상 현실의 이미지를 생성할 때 발생하는 공백 영역(black border)을 설명하기 위한 도면이다.
도 2는 다양한 실시예에 따른, 공백 영역을 방지하기 위해 원본 이미지를 동적으로 오버필링하는 동작을 설명하기 위한 도면이다.
도 3은 다양한 실시예에 따른, 원본 이미지를 사용자 머리의 pitch, roll, yaw축 별로 오버필링하는 동작을 설명하기 위한 도면이다.
도 4는 다양한 실시예에 따른, 서버가 원본 이미지를 동적으로 오버필링하는 동작을 설명하기 위한 도면이다.
도 5는 다양한 실시예에 따른, 제1 오버필링 크기 및 사용자 머리의 pitch, roll, yaw축 별 각속도 간의 상관 관계를 설명하기 위한 도면이다.
도 6은 다양한 실시예에 따른, 장치의 일 예를 나타낸다.
1 is a diagram for explaining a black border generated when a virtual reality image is generated.
2 is a diagram for explaining an operation of dynamically overfilling an original image to prevent a blank area, according to various embodiments.
3 is a diagram for explaining an operation of overfilling an original image for each pitch, roll, and yaw axis of a user's head, according to various embodiments.
4 is a diagram for explaining an operation of dynamically overfilling an original image by a server according to various embodiments.
5 is a diagram for explaining a correlation between a first overfilling size and angular velocity of a user's head for each pitch, roll, and yaw axis, according to various embodiments.
6 shows an example of an apparatus, according to various embodiments.

실시예들에 대한 특정한 구조적 또는 기능적 설명들은 단지 예시를 위한 목적으로 개시된 것으로서, 다양한 형태로 변경되어 구현될 수 있다. 따라서, 실제 구현되는 형태는 개시된 특정 실시예로만 한정되는 것이 아니며, 본 명세서의 범위는 실시예들로 설명한 기술적 사상에 포함되는 변경, 균등물, 또는 대체물을 포함한다.Specific structural or functional descriptions of the embodiments are disclosed for illustrative purposes only, and may be changed and implemented in various forms. Therefore, the form actually implemented is not limited only to the specific embodiments disclosed, and the scope of the present specification includes changes, equivalents, or substitutes included in the technical idea described in the embodiments.

제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 해석되어야 한다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.Although terms such as first or second may be used to describe various components, such terms should only be construed for the purpose of distinguishing one component from another. 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 or connected to the other element, but other elements may exist in the middle.

단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설명된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "have" are intended to designate that the described feature, number, step, operation, component, part, or combination thereof exists, but one or more other features or numbers, It should be understood that the presence or addition of steps, operations, components, parts, or combinations thereof is not precluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 실시예들을 첨부된 도면들을 참조하여 상세하게 설명한다. 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고, 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. In the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted.

도 1은 가상 현실의 이미지를 생성할 때 발생하는 공백 영역(black border)을 설명하기 위한 도면이다.1 is a diagram for explaining a black border generated when a virtual reality image is generated.

도 1을 참조하면, 렌더링을 하는 동안의 시간 지연(latency)로 인하여, 가상 현실의 이미지를 보는 사용자(100)의 머리 각도는 가상 현실의 이미지를 생성하기 위한 기초가 되는 원본 이미지를 렌더링하는 동안 변할 수 있다. 예를 들어, 원본 이미지를 렌더링하는 시점에서 사용자(100)의 머리 각도는 제1 각도(141)이고, 사용자가 렌더링된 이미지를 가상 현실에서 보는 시점에서 사용자(100)의 머리 각도는 제2 각도(142)일 수 있다. 사용자(100)의 머리 각도의 변화에 따라 사용자(100)의 머리 각도가 제1 각도(141)인 경우에는 사용자(100)는 제1 평면(110)에 대응하는 시야(field of view(FOV))를 가지고, 사용자(100)의 머리 각도가 제2각도(142)인 경우에는 사용자는 제2 평면(120)에 대응하는 시야를 가질 수 있다.Referring to FIG. 1 , due to latency during rendering, the angle of the head of the user 100 viewing the virtual reality image is changed while rendering the original image, which is the basis for generating the virtual reality image. It can change. For example, the angle of the head of the user 100 at the time of rendering the original image is the first angle 141, and the angle of the head of the user 100 is the second angle when the user views the rendered image in virtual reality. (142). When the angle of the head of the user 100 is the first angle 141 according to the change in the angle of the head of the user 100, the user 100 has a field of view (FOV) corresponding to the first plane 110 ), and when the head angle of the user 100 is the second angle 142, the user may have a field of view corresponding to the second plane 120.

원본 이미지는 렌더링된 이후 사용자(100)의 시야를 보정하기 위하여 제2 평면(120) 상에 리프로젝션(reprojection)될 수 있지만, 렌더링된 원본 이미지는 제2 평면(120)의 일부 구간(121)에 대응하는 제1 평면(110) 상의 일부 구간(111)에 관한 픽셀 정보를 포함하지 않을 수 있다. 리프로젝션된 이미지는 결과적으로 제2 평면(120)의 일부 구간(121)에 관한 픽셀 정보를 포함하지 않으므로, 사용자(100)가 가상 현실에서 보는 리프로젝션된 이미지(150)는 공백 영역(black border)(155)를 포함하여 리프로젝션된 이미지의 완성도를 저하할 수 있다.After the original image is rendered, it may be reprojected onto the second plane 120 in order to correct the user's 100 field of view, but the rendered original image is a portion 121 of the second plane 120. Pixel information about the partial section 111 on the first plane 110 corresponding to may not be included. As a result, since the reprojected image does not include pixel information about the partial section 121 of the second plane 120, the reprojected image 150 that the user 100 sees in virtual reality is a blank area (black border). ) 155, the completeness of the reprojected image may be deteriorated.

도 2는 다양한 실시예에 따른, 공백 영역을 방지하기 위해 원본 이미지를 동적으로 오버필링하는 동작을 설명하기 위한 도면이고, 도 3은 다양한 실시예에 따른, 원본 이미지를 사용자 머리의 pitch, roll, yaw축 별로 오버필링하는 동작을 설명하기 위한 도면이다.2 is a diagram for explaining an operation of dynamically overfilling an original image to prevent a blank area according to various embodiments, and FIG. It is a diagram for explaining the operation of overfilling for each yaw axis.

도 2를 참조하면, 다양한 실시예에 따르면, 원본 이미지는 공백 영역을 방지하기 위해 동적으로 오버필링될 수 있다. 원본 이미지는 해상도를 높이는 오버필링(overfilling)이 수행됨으로써 렌더링했을 때 제2 평면(120)의 일부 구간(221)에 대응하는 제1 평면(110) 상의 일부 구간(211)에 관한 픽셀 정보를 포함할 수 있다. 오버필링된 원본 이미지를 렌더링하여 제2 평면(120)에 리프로젝션할 경우에는 사용자(100)가 가상 현실에서 보는 리프로젝션된 이미지(250)는 오버필링을 수행하지 않았을 경우의 리프로젝션 이미지(예: 도 1의 리프로젝션 이미지(150))와는 달리 공백 영역(예: 도 1의 공백 영역(155))을 포함하지 않을 수 있다. 원본 이미지에는 제1 각도(141)에서부터 제2 각도(142)까지의 각속도에 따라 오버필링을 수행하기 위해 다르게 생성된 오버필링 크기가 사용되어 동적으로 오버필링이 수행될 수 있다. 원본 이미지에는 각속도마다 최소한의 오버필링 크기로 오버필링을 수행됨으로써 동적으로 오버필링이 수행될 수 있으므로, 고정된 오버필링 크기로만 오버필링이 수행되는 경우에 비해서 컴퓨팅 파워를 절약하면서 공백 영역(black border)의 문제를 해결할 수 있다.Referring to FIG. 2 , according to various embodiments, an original image may be dynamically overfilled to prevent a blank area. The original image includes pixel information about a partial section 211 on the first plane 110 corresponding to the partial section 221 of the second plane 120 when rendered by performing overfilling to increase the resolution. can do. When the overfilled original image is rendered and reprojected onto the second plane 120, the reprojected image 250 that the user 100 sees in virtual reality is a reprojected image when overfilling is not performed (eg : Unlike the reprojection image 150 of FIG. 1 , a blank area (eg, the blank area 155 of FIG. 1 ) may not be included. In order to perform overfilling according to the angular velocity from the first angle 141 to the second angle 142 in the original image, overfilling may be dynamically performed by using a differently generated overfilling size. Since overfilling can be performed dynamically on the original image by performing overfilling with the minimum overfilling size for each angular velocity, compared to the case where overfilling is performed only with a fixed overfilling size, computing power is saved while blank areas (black border) ) can solve the problem.

도 3을 참조하면, 다양한 실시예에 따르면, 제1 각도(예: 도 2의 제1 각도(141)), 제2 각도(예: 도 2의 제2 각도(142)), 및 각속도는 모두 pitch, roll, 및 yaw의 3개의 축 상에서의 값을 포함할 수 있고, 원본 이미지에는 pitch, roll, 및 yaw의 3개의 축 별로 제1 각도(141)에서부터 제2 각도(142)까지의 각속도에 따라 오버필링을 수행하기 위해 다르게 생성된 오버필링 크기를 사용하여 동적으로 오버필링이 수행될 수 있다. 원본 이미지에는 3개의 축 별로 최소한의 오버필링 크기를 사용하여 오버필링이 수행될 수 있으므로, 고정된 오버필링 크기를 사용하여 모든 방향으로 일률적인 오버필링을 수행하는 경우에 비하여 컴퓨팅 파워를 절약하면서 공백 영역(black border)의 문제를 해결할 수 있다.Referring to FIG. 3 , according to various embodiments, a first angle (eg, first angle 141 of FIG. 2 ), a second angle (eg, second angle 142 of FIG. 2 ), and angular velocity are all It may include values on the three axes of pitch, roll, and yaw, and in the original image, the angular velocity from the first angle 141 to the second angle 142 for each of the three axes of pitch, roll, and yaw Overfilling may be performed dynamically by using differently generated overfilling sizes to perform overfilling according to the above. Since overfilling can be performed on the original image using the minimum overfilling size for each of the three axes, compared to the case of performing uniform overfilling in all directions using a fixed overfilling size, space is saved while saving computing power. The black border problem can be solved.

도 4는 다양한 실시예에 따른, 서버가 원본 이미지를 동적으로 오버필링하는 동작을 설명하기 위한 도면이다.4 is a diagram for explaining an operation of dynamically overfilling an original image by a server according to various embodiments.

동작 411 내지 동작 416은 서버(410)가 원본 이미지에 대해 도 2 및 도 3을 참조하여 설명한 오버필링을 수행하여 오버필링된 이미지를 생성하고, 오버필링된 이미지를 렌더링하는 동작을 설명하기 위한 것일 수 있다.Operations 411 to 416 are for describing operations in which the server 410 generates an overfilled image by performing the overfilling described with reference to FIGS. 2 and 3 on the original image, and renders the overfilled image. can

동작 411에서, 서버(410)는 사용자(예: 도 2의 사용자(100))가 제1 각도(예: 도 2의 제1 각도(141))로 가상 현실에서 이미지를 볼 때의 제1 평면(예: 도 2의 제1 평면(110))에 대응하는 시야 및 사용자(100)가 제2 각도(예: 도 2의 제2 각도(142))로 가상 현실에서 이미지를 볼 때의 제2 평면(예: 도 2의 제2 평면(120))에 대응하는 시야에 기초하여 원본 이미지의 오버필링을 수행하기 위한 제1 오버필링 크기(예: 모델 마진(model margin))를 계산할 수 있다. 원본 이미지는 렌더링된 이후 제2 평면(120) 상에 리프로젝션(reprojection)됨으로써 가상 현실에서의 이미지를 생성하는데 기초가 되는 것일 수 있다. 서버(410)는 수학 모델(예: 삼각함수)을 이용하여 제1 오버필링 크기를 계산할 수 있다. 제1 각도(141)는 사용자(100)가 원본 이미지를 렌더링하는 시점의 사용자 머리 각도일 수 있고, 제2 각도(142)는 사용자(100)가 가상 현실에서 이미지를 실제로 보는 시점의 사용자 머리 각도일 수 있으며, 제1 각도(141) 및 제2 각도(142)는 IMU(inertial measurement unit)을 사용하여 획득(예: 측정)할 수 있다. 제1 각도(141) 및 제2 각도(142)는 모두 pitch, roll, 및 yaw의 3개의 축 상에서의 값을 포함할 수 있고, 서버(410)는 pitch, roll, 및 yaw의 3개의 축 상에서 제1 오버필링 크기를 계산할 수 있다.In operation 411, the server 410 determines a first plane when a user (eg, user 100 of FIG. 2) views an image in virtual reality at a first angle (eg, first angle 141 of FIG. 2). (eg: the first plane 110 in FIG. 2 ) and the user 100 at a second angle (eg, the second angle 142 in FIG. 2 ) when viewing the image in virtual reality. A first overfilling size (eg, model margin) for performing overfilling of the original image may be calculated based on a field of view corresponding to a plane (eg, the second plane 120 of FIG. 2 ). The original image may be a basis for generating an image in virtual reality by being reprojected on the second plane 120 after being rendered. The server 410 may calculate the first overfilling size using a mathematical model (eg, a trigonometric function). The first angle 141 may be the angle of the user's head when the user 100 renders the original image, and the second angle 142 may be the angle of the user's head when the user 100 actually views the image in virtual reality. , and the first angle 141 and the second angle 142 may be obtained (eg, measured) using an inertial measurement unit (IMU). Both the first angle 141 and the second angle 142 may include values on three axes of pitch, roll, and yaw, and the server 410 may include values on three axes of pitch, roll, and yaw. A first overfilling size can be calculated.

동작 412에서, 서버(410)는 사용자 머리 각도가 원본 이미지를 렌더링하는 시점의 제1 각도(141)에서부터 사용자(100)가 가상 현실에서 이미지를 실제로 보는 시점의 제2 각도(142)까지의 각속도를 획득(예: 계산)할 수 있다. 각속도는 pitch, roll, 및 yaw의 3개의 축 상에서의 값을 포함할 수 있고, 서버(410)는 pitch, roll, 및 yaw의 3개의 축 상에서 각속도를 획득하여 통계적으로 각속도의 최소값(예velocity minimum), 각속도의 역치값(예: velocity threshold), 및 각속도의 최댓값(예: velocity maximum)를 획득(예: 결정)할 수 있다. 예를 들어, 각속도의 최소값은 공백 영역의 발생에 영향을 주는 가장 작은 각속도 값이고, 각속도의 역치값은 사용자(100)가 생성할 수 있는 가장 큰 각속도일 수 있다. 각속도의 최대값은 각속도의 역치값에 스칼라배(예: 100배)한 것이거나, 무한대의 값일 수 있다.In operation 412, the server 410 determines the angular velocity of the user's head angle from the first angle 141 when rendering the original image to the second angle 142 when the user 100 actually views the image in virtual reality. can be obtained (eg calculated). The angular velocity may include values on the three axes of pitch, roll, and yaw, and the server 410 acquires the angular velocity on the three axes of pitch, roll, and yaw to statistically obtain a minimum value of the angular velocity (e.g., velocity minimum ), a threshold value of angular velocity (eg, velocity threshold), and a maximum value of angular velocity (eg, velocity maximum) may be acquired (eg, determined). For example, the minimum angular velocity value may be the smallest angular velocity value that affects generation of the blank area, and the angular velocity threshold value may be the largest angular velocity that the user 100 can generate. The maximum value of the angular velocity may be a scalar multiplication (eg, 100 times) of the threshold value of the angular velocity, or may be an infinite value.

동작 413에서, 서버(410)는 각속도에 기초하여 스케일링 팩터를 생성할 수 있다. 서버(410)는 각속도의 최소값에 대응하여 적용 가능한 스케일링 팩터(예: 최소 스케일링 팩터)를 예측하고, 각속도의 역치값에 대응하여 적용 가능한 스케일링 팩터(예: 최대 스케일링 팩터)를 예측하고, 각속도의 최대값에 대응하여 적용 가능한 스케일링 팩터(예: 익스트림 스케일링 팩터)를 예측할 수 있다. 익스트림 스케일링 팩터는 각속도가 최대값을 가짐에 따라 각속도와 비례하는 제1 오버필링 크기를 큰 폭으로 감소시키기 위하여 최대 스케일링 팩터의 스칼라배(예: 100배)한 것일 수 있다.At operation 413, the server 410 may generate a scaling factor based on the angular velocity. The server 410 predicts an applicable scaling factor (eg, minimum scaling factor) corresponding to the minimum value of the angular velocity, predicts an applicable scaling factor (eg, maximum scaling factor) corresponding to the threshold value of the angular velocity, and Corresponding to the maximum value, an applicable scaling factor (eg, extreme scaling factor) may be predicted. The extreme scaling factor may be a scalar multiple (eg, 100 times) of the maximum scaling factor in order to greatly reduce the first overfilling size proportional to the angular velocity as the angular velocity has the maximum value.

동작 413에서, 서버(410)는 최소 스케일링 팩터, 최대 스케일링 펙터, 및 각속도의 역치값에 기초하여 스케일링 팩터를 생성할 수 있다. 예를 들어, 스케일링 팩터는 수학식 1에 의해서 정의될 수 있다.In operation 413, the server 410 may generate a scaling factor based on the minimum scaling factor, the maximum scaling factor, and the threshold value of the angular velocity. For example, the scaling factor may be defined by Equation 1.

[수학식 1][Equation 1]

Figure 112021116639980-pat00001
Figure 112021116639980-pat00001

수학식 1에서 F는 스케일링 팩터이고, V는 각속도이고,

Figure 112021116639980-pat00002
는 각속도의 역치값이고,
Figure 112021116639980-pat00003
는 최대 스케일링 팩터이고,
Figure 112021116639980-pat00004
은 최소 스케일링 팩터일 수 있다. 스케일링 팩터의 역수는 [수학식 2]에서와 같이 각속도와 exponential 함수의 관계성을 가질 수 있다.In Equation 1, F is a scaling factor, V is an angular velocity,
Figure 112021116639980-pat00002
is the threshold value of the angular velocity,
Figure 112021116639980-pat00003
is the maximum scaling factor,
Figure 112021116639980-pat00004
may be the minimum scaling factor. The reciprocal of the scaling factor may have a relationship between the angular velocity and the exponential function as in [Equation 2].

[수학식 2][Equation 2]

Figure 112021116639980-pat00005
Figure 112021116639980-pat00005

동작 414에서, 서버(410)는 스칼라 알고리즘 및 exponential 알고리즘 중 어느 하나에 의해 제1 오버필링 크기 및 스케일링 팩터로부터 제1 오버필링 크기가 조정된 제2 오버필링 크기를 pitch, raw, yaw축 별로 생성할 수 있다. 서버(410)는 스칼라 알고리즘에 따라 스케일링 팩터가 최소 스케일링 팩터보다 크고 최대 스케일링 팩터보다 작은 경우에는 제1 오버필링 크기를 스케일링 팩터로 나누어 제2 오버필링 크기를 생성할 수 있다. 서버(410)는 스칼라 알고리즘에 따라 스케일링 팩터가 최대 스케일링 팩터보다 크거나 같은 경우에는 제1 오버필링 크기를 익스트림 스케일링 팩터로 나누어 제2 오버필링 크기를 생성할 수 있다. 서버(410)는 스칼라 알고리즘에 따라 스케일링 팩터가 최소 스케일링 팩터보다 작은 경우 상기 제1 오버필링 크기를 스칼라배(scalar multiplication)(예: 0.875배)하여 제2 오버필링 크기를 생성할 수 있다. 서버(410)는 exponential 알고리즘에 따라 스케일링 팩터의 역수를 상기 제1 오버필링 크기에 곱하여 제2 오버필링 크기를 생성할 수 있다.In operation 414, the server 410 generates a second overfilling size obtained by adjusting the first overfilling size from the first overfilling size and the scaling factor according to the pitch, raw, and yaw axes by any one of a scalar algorithm and an exponential algorithm. can do. When the scaling factor is greater than the minimum scaling factor and less than the maximum scaling factor according to the scalar algorithm, the server 410 may generate the second overfilling size by dividing the first overfilling size by the scaling factor. When the scaling factor is greater than or equal to the maximum scaling factor according to the scalar algorithm, the server 410 may generate the second overfilling size by dividing the first overfilling size by the extreme scaling factor. The server 410 may generate a second overfilling size by scalar multiplication (eg, 0.875 times) the first overfilling size when the scaling factor is smaller than the minimum scaling factor according to a scalar algorithm. The server 410 may generate a second overfilling size by multiplying the first overfilling size by an inverse of the scaling factor according to an exponential algorithm.

동작 415에서, 서버(410)는 제2 오버필링 크기를 반영하여 오버필링된 이미지를 생성할 수 있다. 오버필링된 이미지는 pitch, raw, yaw축 별로 생성된 제2 오버필링 크기를 반영하여 원본 이미지의 해상도를 높인 것일 수 있다.In operation 415, the server 410 may generate an overfilling image by reflecting the second overfilling size. The overfilled image may be one in which the resolution of the original image is increased by reflecting the second overfilling size generated for each of the pitch, raw, and yaw axes.

동작 416에서, 서버(410)는 오버필링된 이미지를 렌더링할 수 있다. 서버(410)는 렌더링된 이미지를 네트워크를 통해 클라이언트(430)에 전송하고, 클라이언트(430)는 사용자(예: 도 2의 사용자(100))가 오버필링된 이미지를 렌더링하는 시점에 제1 각도(141)로 바라본 제1 평면(예: 도 2의 제1 평면(110))과 사용자(100)가 가상 현실에서 이미지를 실제로 보는 시점에 제2 각도(142)로 바라본 제2 평면(예: 도 2의 제2 평면(120)) 간의 괴리감을 느끼지 않도록 렌더링된 이미지를 제2 평면(120) 상에 리프로젝션(reprojection)할 수 있다. 리프로젝션된 이미지(250)는 클라이언트(430)(예: VR 장치)에 의해 출력(예: 디스플레이)될 수 있다.At operation 416, server 410 may render the overfilled image. The server 410 transmits the rendered image to the client 430 over the network, and the client 430 has the first angle when the user (eg, the user 100 of FIG. 2 ) renders the overfilled image. A first plane (eg, the first plane 110 of FIG. 2 ) viewed from 141 and a second plane viewed from a second angle 142 (eg, the first plane 110 of FIG. 2 ) when the user 100 actually views an image in virtual reality. The rendered image may be reprojected onto the second plane 120 so as not to feel a sense of separation between the second planes 120 of FIG. 2 . The reprojected image 250 may be output (eg, displayed) by the client 430 (eg, a VR device).

도 5는 다양한 실시예에 따른, 제1 오버필링 크기 및 사용자 머리의 pitch, roll, yaw축 별 각속도 간의 상관 관계를 설명하기 위한 도면이다.5 is a diagram for explaining a correlation between a first overfilling size and angular velocity of a user's head for each pitch, roll, and yaw axis, according to various embodiments.

도 5를 참조하면, 다양한 실시예에 따르면, 제1 오버필링 크기는 사용자 머리의 pitch, roll, yaw축 별 각속도(541, 542, 543)와 비례관계에 있을 수 있다. 제1 오버필링 크기의 비율(510)은 원본 이미지에 포함된 픽셀의 수를 초과하는 픽셀의 수와 원본 이미지에 포함된 픽셀의 수의 비율이고, 제1 오버필링 크기의 비율(510)은 제1 오버필링 크기의 증감세를 나타내는 척도일 수 있다. 제1 오버필링 크기의 비율(510)은 사용자 머리의 pitch, roll, yaw축 별 각속도(541, 542, 543)가 클수록 증가하는 경향이 있으므로 제1 오버필링 크기는 사용자 머리의 pitch, roll, yaw축 별 각속도(541, 542, 543)가 클수록 더 큰 폭으로 조정(예: 감소)한 제2 오버필링 크기를 생성할 수 있다.Referring to FIG. 5 , according to various embodiments, the first overfilling size may be proportional to angular velocities 541 , 542 , and 543 of the user's head for each pitch, roll, and yaw axis. The first overfilling size ratio 510 is the ratio of the number of pixels exceeding the number of pixels included in the original image to the number of pixels included in the original image, and the first overfilling size ratio 510 is 1 It can be a measure of the increase or decrease of the size of overfilling. Since the ratio 510 of the first overfilling size tends to increase as the angular velocity (541, 542, 543) for each pitch, roll, and yaw axis of the user's head increases, the first overfilling size is the pitch, roll, and yaw of the user's head As the angular velocities 541, 542, and 543 for each axis increase, the second overfilling size adjusted (eg, reduced) to a larger width may be generated.

도 6은 다양한 실시예에 따른, 장치의 일 예를 나타낸다.6 shows an example of an apparatus, according to various embodiments.

도 6을 참조하면, 다양한 실시예에 따르면, 장치(600)는 도 4의 서버(410)와 실질적으로 동일할 수 있다.Referring to FIG. 6 , according to various embodiments, a device 600 may be substantially the same as the server 410 of FIG. 4 .

메모리(610)는 프로세서(630)에 의해 실행가능한 인스트럭션들(예: 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(630)의 동작 및/또는 프로세서(630)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The memory 610 may store instructions (eg, programs) executable by the processor 630 . For example, the instructions may include instructions for executing an operation of the processor 630 and/or an operation of each component of the processor 630 .

프로세서(630)는 메모리(610)에 저장된 데이터를 처리할 수 있다. 프로세서(630)는 메모리(610)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(630)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 630 may process data stored in the memory 610 . The processor 630 may execute computer readable code (eg, software) stored in the memory 610 and instructions triggered by the processor 630 .

프로세서(630)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 630 may be a hardware-implemented data processing device having a circuit having a physical structure for executing desired operations. For example, desired operations may include codes or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing unit implemented in hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , Application-Specific Integrated Circuit (ASIC), and Field Programmable Gate Array (FPGA).

프로세서(630)에 의해 수행되는 동작은 도 2 내지 도 5를 참조하여 설명한 서버(410)의 동작과 실질적으로 동일할 수 있다. 이에, 상세한 설명은 생략하도록 한다.An operation performed by the processor 630 may be substantially the same as that of the server 410 described with reference to FIGS. 2 to 5 . Accordingly, detailed descriptions will be omitted.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The embodiments described above may be implemented as hardware components, software components, and/or a combination of hardware components and software components. For example, the devices, methods and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate (FPGA). array), programmable logic units (PLUs), microprocessors, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and software applications running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on computer readable media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded on a computer readable medium. A computer readable medium may store program instructions, data files, data structures, etc. alone or in combination, and program instructions recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in the art of computer software. there is. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler.

위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The hardware device described above may be configured to operate as one or a plurality of software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with limited drawings, those skilled in the art can apply various technical modifications and variations based on this. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents of the claims are within the scope of the following claims.

Claims (5)

가상 현실을 위한 오버필링(overfilling) 방법에 있어서,
사용자가 제1 각도로 상기 가상 현실에서 이미지를 볼 때의 제1 평면에 대응하는 시야 및 상기 사용자가 제2 각도로 상기 가상 현실에서 상기 이미지를 볼 때의 제2 평면에 대응하는 시야에 기초하여 원본 이미지의 오버필링을 수행하기 위한 제1 오버필링 크기를 계산하는 동작;
상기 제1 각도에서부터 상기 제2 각도까지의 각속도를 획득하는 동작;
상기 각속도에 기초하여 스케일링 팩터를 생성하는 동작; 및
상기 제1 오버필링 크기 및 상기 스케일링 팩터에 기초하여 상기 제1 오버필링 크기가 조정된 제2 오버필링 크기를 생성하는 동작
을 포함하고,
상기 원본 이미지는,
상기 이미지를 생성하는데 기초가 되고
상기 각속도를 획득하는 동작은,
상기 각속도 및 상기 각속도의 최소값, 역치값, 및 최대값을 획득하는 동작
을 포함하고,
상기 스케일링 팩터를 생성하는 동작은,
상기 각속도의 최소값에 기초하여 최소 스케일링 팩터를 예측하는 동작;
상기 각속도의 역치값에 기초하여 최대 스케일링 팩터를 예측하는 동작;
상기 각속도의 최대값에 기초하여 익스트림 스케일링 팩터를 예측하는 동작; 및
상기 최소 스케일링 팩터, 상기 최대 스케일링 팩터, 및 상기 각속도의 역치값에 기초하여 상기 스케일링 팩터를 생성하는 동작
을 포함하는, 오버필링 방법.
In the overfilling method for virtual reality,
based on a field of view corresponding to a first plane when a user views an image in the virtual reality at a first angle and a field of view corresponding to a second plane when the user views the image in the virtual reality at a second angle calculating a first overfilling size for overfilling the original image;
obtaining an angular velocity from the first angle to the second angle;
generating a scaling factor based on the angular velocity; and
An operation of generating a second overfilling size obtained by adjusting the first overfilling size based on the first overfilling size and the scaling factor
including,
The original image,
is the basis for creating the image
The operation of obtaining the angular velocity,
Obtaining the angular velocity and the minimum, threshold, and maximum values of the angular velocity
including,
The operation of generating the scaling factor,
predicting a minimum scaling factor based on the minimum value of the angular velocity;
predicting a maximum scaling factor based on the threshold value of the angular velocity;
predicting an extreme scaling factor based on the maximum value of the angular velocity; and
Generating the scaling factor based on the minimum scaling factor, the maximum scaling factor, and the threshold value of the angular velocity
Including, overfilling method.
삭제delete 제1항에 있어서,
상기 제2 오버필링 크기를 생성하는 동작은,
상기 스케일링 팩터가 상기 최소 스케일링 팩터보다 크고, 상기 최대 스케일링 팩터보다 작은 경우 상기 제1 오버필링 크기를 상기 스케일링 팩터로 나누어 상기 제2 오버필링 크기를 생성하는 동작;
상기 스케일링 팩터가 상기 최대 스케일링 팩터보다 크거나 같은 경우 상기 제1 오버필링 크기를 상기 익스트림 스케일링 팩터로 나누어 상기 제2 오버필링 크기를 생성하는 동작; 및
상기 스케일링 팩터가 상기 최소 스케일링 팩터보다 작은 경우 상기 제1 오버필링 크기를 스칼라배(scalar multiplication)하여 제2 오버필링 크기를 생성하는 동작
을 포함하는, 오버필링 방법.
According to claim 1,
The operation of generating the second overfilling size,
generating the second overfilling size by dividing the first overfilling size by the scaling factor when the scaling factor is larger than the minimum scaling factor and smaller than the maximum scaling factor;
generating the second overfilling size by dividing the first overfilling size by the extreme scaling factor when the scaling factor is greater than or equal to the maximum scaling factor; and
Generating a second overfilling size by scalar multiplication of the first overfilling size when the scaling factor is smaller than the minimum scaling factor
Including, overfilling method.
제1항에 있어서,
상기 스케일링 팩터를 생성하는 동작은,
상기 각속도를 exponential 함수의 지수로 이용하여 상기 스케일링 팩터를 생성하는 동작
을 포함하고,
상기 제2 오버필링 크기를 생성하는 동작은,
상기 스케일링 팩터의 역수를 상기 제1 오버필링 크기에 곱하는 동작
을 포함하는, 오버필링 방법.
According to claim 1,
The operation of generating the scaling factor,
An operation of generating the scaling factor by using the angular velocity as an exponent of an exponential function
including,
The operation of generating the second overfilling size,
Multiplying the reciprocal of the scaling factor by the first overfilling size
Including, overfilling method.
가상 현실을 위한 장치에 있어서,
인스트럭션들을 포함하는 메모리; 및
상기 메모리와 전기적으로 연결되고, 상기 인스트럭션들을 실행하기 위한 프로세서
를 포함하고,
상기 프로세서에 의해 상기 인스트럭션들이 실행될 때, 상기 프로세서는,
사용자가 제1 각도로 상기 가상 현실에서 이미지를 볼 때의 제1 평면에 대응하는 시야 및 상기 사용자가 제2 각도로 상기 가상 현실에서 상기 이미지를 볼 때의 제2 평면에 대응하는 시야에 기초하여 원본 이미지의 오버필링을 수행하기 위한 제1 오버필링 크기를 계산하고,
상기 제1 각도에서부터 상기 제2 각도까지의 각속도 및 상기 각속도의 최소값, 역치값, 및 최대값을 획득하고,
상기 각속도의 최소값에 기초하여 최소 스케일링 팩터를 예측하고,
상기 각속도의 역치값에 기초하여 최대 스케일링 팩터를 예측하고,
상기 각속도의 최대값에 기초하여 익스트림 스케일링 팩터를 예측하고,
상기 최소 스케일링 팩터, 상기 최대 스케일링 팩터, 및 상기 각속도의 역치값에 기초하여 스케일링 팩터를 생성하고,
상기 제1 오버필링 크기 및 상기 스케일링 팩터에 기초하여 상기 제1 오버필링 크기가 조정된 제2 오버필링 크기를 생성하고,
상기 원본 이미지는,
상기 이미지를 생성하는데 기초가 되는 것인, 장치.
In the device for virtual reality,
memory containing instructions; and
A processor electrically connected to the memory and configured to execute the instructions
including,
When the instructions are executed by the processor, the processor:
based on a field of view corresponding to a first plane when a user views an image in the virtual reality at a first angle and a field of view corresponding to a second plane when the user views the image in the virtual reality at a second angle Calculate a first overfilling size for performing overfilling of the original image;
Obtaining an angular velocity from the first angle to the second angle and a minimum value, a threshold value, and a maximum value of the angular velocity,
predicting a minimum scaling factor based on the minimum value of the angular velocity;
predicting a maximum scaling factor based on the threshold value of the angular velocity;
predict an extreme scaling factor based on the maximum value of the angular velocity;
Generating a scaling factor based on the minimum scaling factor, the maximum scaling factor, and a threshold value of the angular velocity;
generating a second overfilling size obtained by adjusting the first overfilling size based on the first overfilling size and the scaling factor;
The original image,
What is the basis for generating the image, the device.
KR1020210135180A 2021-10-12 2021-10-12 Method of dynamic overfilling for virtual reality and system performing the same KR102489632B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210135180A KR102489632B1 (en) 2021-10-12 2021-10-12 Method of dynamic overfilling for virtual reality and system performing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210135180A KR102489632B1 (en) 2021-10-12 2021-10-12 Method of dynamic overfilling for virtual reality and system performing the same

Publications (1)

Publication Number Publication Date
KR102489632B1 true KR102489632B1 (en) 2023-01-17

Family

ID=85111034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210135180A KR102489632B1 (en) 2021-10-12 2021-10-12 Method of dynamic overfilling for virtual reality and system performing the same

Country Status (1)

Country Link
KR (1) KR102489632B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160013906A (en) * 2013-05-30 2016-02-05 아큘러스 브이알, 엘엘씨 Perception based predictive tracking for head mounted displays
WO2019204638A1 (en) * 2018-04-19 2019-10-24 Pcms Holdings, Inc. Systems and methods employing predictive overfilling for virtual reality

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160013906A (en) * 2013-05-30 2016-02-05 아큘러스 브이알, 엘엘씨 Perception based predictive tracking for head mounted displays
WO2019204638A1 (en) * 2018-04-19 2019-10-24 Pcms Holdings, Inc. Systems and methods employing predictive overfilling for virtual reality

Similar Documents

Publication Publication Date Title
EP3758289B1 (en) Unified accelerator for classical and post-quantum digital signature schemes in computing environments
US9842424B2 (en) Volume rendering using adaptive buckets
US9661296B2 (en) Image processing apparatus and method
JP2018537755A (en) Foveal geometry tessellation
US10573017B2 (en) Depth estimation method and depth estimation apparatus of multi-view images
US8687002B2 (en) Method, medium and system rendering 3-D graphics data having an object to which a motion blur effect is to be applied
CN114897754B (en) Generating new frames using rendered content and non-rendered content from previous perspectives
US11418852B2 (en) Detecting latency anomalies from pipeline components in cloud-based systems
US11165848B1 (en) Evaluating qualitative streaming experience using session performance metadata
US8963920B2 (en) Image processing apparatus and method
US10373367B2 (en) Method of rendering 3D image and image outputting device thereof
KR102482874B1 (en) Apparatus and Method of rendering
KR20170013747A (en) 3d rendering method and apparatus
KR102489632B1 (en) Method of dynamic overfilling for virtual reality and system performing the same
KR102489652B1 (en) Method of determining strategy of dynamic verfilling for virtual reality
US11032534B1 (en) Planar deviation based image reprojection
US10970905B2 (en) Filling in an entity within an image
US9741155B2 (en) Apparatus and method for tile-based graphic data rendering
KR20140099045A (en) Image processing apparatus and method
US20180150134A1 (en) Method and apparatus for predicting eye position
US9600254B1 (en) Loop branch reduction
US11514630B2 (en) Scalable visual analytics for remote sensing applications
KR102448833B1 (en) Method for rendering for virtual reality
US20200145646A1 (en) Systems and methods for displaying stereoscopic content
US20130106887A1 (en) Texture generation using a transformation matrix

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant