KR20180039723A - 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱 - Google Patents

가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱 Download PDF

Info

Publication number
KR20180039723A
KR20180039723A KR1020187007380A KR20187007380A KR20180039723A KR 20180039723 A KR20180039723 A KR 20180039723A KR 1020187007380 A KR1020187007380 A KR 1020187007380A KR 20187007380 A KR20187007380 A KR 20187007380A KR 20180039723 A KR20180039723 A KR 20180039723A
Authority
KR
South Korea
Prior art keywords
image
video rendering
computing device
rate
virtual reality
Prior art date
Application number
KR1020187007380A
Other languages
English (en)
Other versions
KR102088472B1 (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 구글 엘엘씨
Publication of KR20180039723A publication Critical patent/KR20180039723A/ko
Application granted granted Critical
Publication of KR102088472B1 publication Critical patent/KR102088472B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • 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
    • 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
    • G06F3/012Head tracking input arrangements
    • 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
    • G06F3/013Eye tracking input arrangements
    • 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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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
    • 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/0132Head-up displays characterised by optical features comprising binocular systems
    • G02B2027/0134Head-up displays characterised by optical features comprising binocular systems of stereoscopic type

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Optics & Photonics (AREA)
  • Architecture (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Transforming Electric Information Into Light Information (AREA)

Abstract

예시적인 기술은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 제 1 업데이트 속도로 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 업데이트하는 것에 기초하여 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 상기 비디오 렌더링의 성능은 임계값보다 낮은지를 결정하는 단계; 상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다. 또 다른 예시적인 기술은 좌안 영상과 우안 영상 중 하나 또는 둘 모두를 눈 깜박임 기간 동안 시프트하여 좌측 시청 객체와 우측 시청 객체 간의 불일치를 감소시키는 것을 포함할 수 있다.

Description

가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱
관련 출원들의 상호참조
본 출원은 2015년 12월 22일자로 출원된 미국 출원(출원번호: 14/978,320)의 우선권을 주장하며 이의 계속출원인바, 상기 미국 출원의 전체 내용은 본 발명에 대한 참조로서 본 명세서에 통합된다.
본 발명은 가상 현실 콘텐츠의 이미지 프로세싱 및 렌더링에 관한 것으로서, 특히 렌더링 성능 및 입체 이미지(stereoscopic image)의 프로세싱에 기초하여 가상 현실 콘텐츠의 영상 렌더링 속도를 조정하는 것과 관련된 기술에 관한 것이다.
비디오 렌더링을 수행하는 것은 상당한 양의 컴퓨팅 리소스를 소비할 수 있다. 경우에 따라 컴퓨팅 디바이스에서 실행중인 여러 개의 어플리케이션들은 컴퓨팅 리소스를 공유할 수 있으며, 이는 하나 이상의 어플리케이션들의 성능을 저하 시킬 수 있다.
또한, 현실 세계에서는, 조절 요구(accommodation demand)와 수렴 요구(convergence demand) 사이에서 충돌이 거의 일어나지 않는다. 하지만, VR(가상 현실) 이미지나 화면에 디스플레이되는 입체 이미지의 경우, 조절 요구와 수렴 요구 사이에 차이 혹은 충돌이 있을 수도 있다. 디스플레이 스크린의 경우, 조절 요구는 통상적으로 고정되어 있는데, 왜냐하면 사용자의 눈이 스크린에 포커싱되기 때문이다(예컨대, 눈에서 스크린까지의 거리가 고정되어 있음). 하지만, 몇몇 경우에, 입체 이미지(stereoscopic image)의 좌측 시청 이미지(left viewed image)와 우측 시청 이미지 사이의 불일치(또는 거리 또는 이격)은 변동가능한 수렴 요구를 생성할 수 있으며, 그리고 일부 경우에서 이러한 수렴 요구는 조절 요구와 다를 수도 있다. 조절 요구과 수렴 요구 간의 이러한 충돌은 사용자에게 눈의 피로(eye strain)를 유발할 수 있다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법이 제공되며, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 상기 비디오 렌더링의 성능이 임계값 보다 낮은지를 결정하는 단계; 및 상기 결정에 기초하여, 상기 이미지의 일부분만을 상기 업데이트 속도로 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한, 컴퓨터 구현 방법으로서, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 상기 비디오 렌더링의 성능이 임계값 보다 낮은지를 결정하는 단계; 상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한, 컴퓨터 구현 방법으로서, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 상기 비디오 렌더링의 성능이 임계값 보다 낮은지를 결정하는 단계; 상기 결정에 기초하여, 상기 이미지의 제 1 부분을 제 1 해상도로 업데이트하고 상기 제 1 해상도와는 다른 제 2 해상도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한, 컴퓨터 구현 방법으로서, 상기 방법은, 인코딩된 비디오 신호를 수신하는 단계; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 상기 제 1 세트의 디스플레이 프레임들을 디스플레이하기 위한 비디오 렌더링의 성능을 측정하는 단계; 상기 비디오 렌더링의 측정된 성능에 기초하여, 제 2 세트의 디스플레이 프레임들을 디스플레이하는데 사용될 상기 스크린의 부분을 적어도 조정하는 것에 기초한 제 2 비디오 렌더링 속도를 결정하는 단계; 및 상기 스크린의 조정된 부분 상에 상기 제 2 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 디바이스는 적어도 하나의 프로세서 및 컴퓨터 명령들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 컴퓨터 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 디바이스로 하여금 인코딩된 비디오 신호를 수신하게 하고; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하게 하고; 상기 제 1 세트의 디스플레이 프레임들을 디스플레이하기 위한 비디오 렌더링의 성능을 측정하게 하고; 상기 비디오 렌더링의 측정된 성능에 기초하여, 제 2 세트의 디스플레이 프레임들을 디스플레이하는데 사용될 상기 스크린의 부분을 적어도 조정하는 것에 기초한 제 2 비디오 렌더링 속도를 결정하게 하고; 및 상기 스크린의 조정된 부분 상에 상기 제 2 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하게 한다.
예시적인 구현예에 따르면, 방법은, 인코딩된 비디오 신호를 수신하는 단계; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하는 단계; 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및 상기 눈 깜박임 기간의 적어도 일부 동안 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하는 단계를 포함한다.
예시적인 구현예에 따르면, 디바이스는 적어도 하나의 프로세서 및 컴퓨터 명령들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 컴퓨터 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 디바이스로 하여금, 인코딩된 비디오 신호를 수신하게 하고; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하게 하고; 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하게 하고; 및 상기 눈 깜박임 기간의 적어도 일부 동안 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하게 한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능 저장 매체에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법이 제공되며, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 업데이트 속도로 업데이트함에 기초하여 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 스크린의 모션(motion) 또는 움직임(movement)을 검출하는 단계; 및 상기 검출에 기초하여, 상기 이미지의 일부분만을 상기 업데이트 속도로 업데이트함으로써 제 2 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능 저장 매체에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법이 제공되며, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 스크린의 모션(motion) 또는 움직임(movement)을 검출하는 단계; 및 상기 검출에 기초하여, 상기 이미지의 제 1 부분을 상기 제 1 업데이트 속도로 업데이트하고 상기 이미지의 제 2 부분을 상기 제 1 업데이트 속도와 다른 제 2 업데이트 속도로 업데이트함으로써, 제 2 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 단계를 포함한다.
예시적인 구현예에 따르면, 비일시적인 컴퓨터 판독가능 저장 매체에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법이 제공되며, 상기 방법은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계; 스크린의 모션(motion) 또는 움직임(movement)을 검출하는 단계; 및 상기 검출에 기초하여, 상기 이미지의 제 1 부분을 제 1 해상도로 업데이트하고 상기 이미지의 제 2 부분을 상기 제 1 해상도와 다른 제 2 해상도로 업데이트함으로써, 제 2 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 단계를 포함한다.
다른 구현예에 따르면, 방법이 제공되는바, 상기 방법은, 인코딩된 비디오 신호를 수신하는 단계; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 가상 현실 컨텐츠의 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하는 단계; 컴퓨팅 디바이스의 모션 또는 움직임을 검출하는 단계; 및 상기 모션 또는 움직임을 검출한 것에 응답하여 적어도 소정 기간 동안 상기 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임을 디스플레이하기 위한 프레임 속도를 조절하는 단계를 포함한다.
다른 구현예에 따르면, 디바이스는 적어도 하나의 프로세서 및 컴퓨터 명령들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 컴퓨터 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 디바이스로 하여금, 인코딩된 비디오 신호를 수신하게 하고; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린 상에 가상 현실 컨텐츠의 제 1 세트의 디스플레이 프레임들을 디스플레이하도록 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하게 하고; 컴퓨팅 디바이스의 모션 또는 움직임을 검출하게 하고; 및 상기 모션 또는 움직임을 검출한 것에 응답하여 적어도 소정 기간 동안 상기 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임을 디스플레이하기 위한 프레임 속도를 조절하게 한다.
다른 구현예에 따르면, 방법이 제공되는바, 상기 방법은, 컴퓨팅 디바이스의 스크린 상에, 우안 이미지 및 좌안 이미지를 포함하는 입체 이미지(stereoscopic image)를 디스플레이하는 단계, 상기 좌안 이미지 및 상기 우안 이미지는 각각 하나 이상의 객체들을 묘사하며; 상기 컴퓨팅 디바이스의 사용자에 의해 보여지는 시청된 객체(viewed object)를 결정하는 단계, 상기 시청된 객체는 상기 좌안 이미지의 일부인 좌측 시청 객체(left viewed object) 및 상기 우안 이미지의 일부인 우측 시청 객체(right viewed object)를 포함하며; 상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 측정하는 단계; 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및 상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하는 단계를 포함한다.
다른 구현예에 따르면, 디바이스는 적어도 하나의 프로세서 및 컴퓨터 명령들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 컴퓨터 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 디바이스로 하여금, 컴퓨팅 디바이스의 스크린 상에, 우안 이미지 및 좌안 이미지를 포함하는 입체 이미지를 디스플레이하게 하고, 상기 좌안 이미지 및 상기 우안 이미지는 각각 하나 이상의 객체들을 묘사하며; 상기 컴퓨팅 디바이스의 사용자에 의해 보여지는 시청된 객체를 결정하게 하고, 상기 시청된 객체는 상기 좌안 이미지의 일부인 좌측 시청 객체 및 상기 우안 이미지의 일부인 우측 시청 객체를 포함하며; 상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 측정하게 하고; 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하게 하고; 및 상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하게 한다.
본 발명의 하나 이상의 구현예들의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 다른 특징들은 상세한 설명 및 도면들 및 청구항들로부터 명백할 것이다.
도 1은 예시적인 구현에 따른 시스템을 나타내는 블록도이다.
도 2는 프레임들을 디스플레이하는데 사용되는 디스플레이 스크린의 부분이 예시적인 구현에 따라 조정될 수 있는 디스플레이 스크린(130)의 다이어그램이다.
도 3은 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 4는 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 5는 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 6은 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 7은 예시적인 구현에 따른 컴퓨팅 디바이스의 블록도이다.
도 8은 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 9는 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 10은 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 11은 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 12는 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다.
도 13은 예시적인 구현에 따른 조절 요구와 수렴 요구 사이의 충돌 예를 나타내는 도면이다.
도 14는 예시적인 구현에 따라 시청된 객체에 대한 조절 요구와 수렴 요구 사이의 충돌이 감소되거나 또는 제거된 예를 나타내는 도면이다.
도 15는 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다.
도 16은 여기에 서술된 기술들과 함께 사용될 수 있는 일반적인 컴퓨터 디바이스 및 일반적인 모바일 컴퓨터 디바이스의 예를 도시한다.
도 1은 예시적인 구현에 따른 시스템(100)을 나타내는 블록도이다. 도 1을 참조하면, 오디오/비디오 소스(106)는 오디오 신호들 및 비디오 신호들을 생성하여 출력할 수 있으며, 이는 네트워크(104)를 통해 하나 이상의 컴퓨팅 디바이스들에 배포되거나 또는 전송될 수 있다. 예시적인 구현에서, 오디오/비디오 소스(106)에 의해 출력된 오디오/비디오 신호들은 하나 이상의 컴퓨팅 디바이스들에 스트리밍되거나 분배된 가상 현실(VR) 콘텐츠의 일부로서 제공될 수 있다. 예시적인 구현에 따르면, 몰입형 멀티미디어 또는 컴퓨터 시뮬레이션된 라이프라고도 지칭될 수 있는 가상 현실(virtual reality, VR)은, 적어도 일부 경우들에서, 현실 세계 또는 상상의 세계 또는 환경의 장소에서 환경 또는 물리적 존재를 다양한 각도로 복제 또는 시뮬레이션할 수 있다. 네트워크(104)는 인터넷, 근거리 통신망(LAN), 무선 근거리 통신망(WLAN) 및/또는 임의의 다른 네트워크일 수 있다. 예를 들어, 컴퓨팅 디바이스(105)는 오디오/비디오 신호들을 수신할 수 있으며, 이는 예시적인 구현에서 VR 콘텐츠의 일부로서 제공될 수 있다.
다양한 예시적인 구현들에서, 컴퓨팅 디바이스(105)는, 예를 들어, VR 안경 또는 VR 고글(110)을 포함할 수 있고, 이러한 VR 안경 또는 VR 고글(110)은, 예를 들어, 사용자가 디스플레이 스크린상에서 가상 현실 콘텐츠를 볼 수 있고(예를 들어, VR 콘텐츠로부터 렌더링된 이미지들을 디스플레이하고) 그리고 스피커 상에서 가상 현실 콘텐츠의 오디오를 들을 수 있게 함으로써 가상 현실(VR) 경험을 사용자에게 제공할 수 있다. 예시적인 구현에서, VR 고글(110)은, 사용자의 좌측 눈으로 통상적으로 볼 수 있는 좌측 눈 이미지 및 사용자의 우측 눈으로 통상적으로 볼 수 있는 우측 눈 이미지를 포함하는 입체 영상을 디스플레이할 수 있다. 또한, 컴퓨팅 디바이스(105)는, 예를 들어, 모바일 디바이스(108), 랩탑, 넷북, PC, 컴퓨터, 휴대용 또는 핸드헬드 컴퓨터 또는 컴퓨팅 디바이스, 또는 임의의 다른 컴퓨팅 디바이스를 포함할 수 있다. 모바일 디바이스(108)는, 예를 들어, 셀 폰, 스마트 폰, PDA(개인 휴대 정보 단말기), 또는 다른 모바일 컴퓨팅 디바이스를 포함할 수 있다. 예시적인 구현에서, 컴퓨팅 디바이스(105)는, 하나 이상의 비-VR 어플리케이션들을 병렬로 실행하면서 VR 콘텐츠를 사용자에게 제공하거나 출력하도록 구성될 수 있는 모바일 디바이스(예를 들어, 스마트 폰)일 수 있다.
컴퓨팅 디바이스(105)는, 명령어들 또는 소프트웨어를 실행 또는 실행하기 위한 프로세서, 명령어들 및 데이터를 저장하기 위한 메모리, 디스플레이 프레임들 또는 이미지들 또는 다른 정보를 디스플레이하거나 출력하기 위한 (예를 들어, 터치 감지 스크린 또는 터치 스크린일 수 있는) 디스플레이 스크린(130), 스피커 및 마이크로폰 및/또는 다른 입력/출력 디바이스를 포함할 수 있다. 컴퓨팅 디바이스(105)의 프로세서/CPU 및 메모리는 컴퓨팅 리소스들(132)로서 도 1에서 도시된다. 컴퓨팅 리소스들(132)은, 명령어들을 실행하거나 데이터를 처리하는 CPU 사이클들 및/또는 명령어들 또는 데이터 및 추가적인 컴퓨팅 리소스들을 저장하는 컴퓨터 메모리와 같은 CPU 또는 프로세서 리소스들을 포함할 수 있다.
도 1을 참조하면, 컴퓨팅 디바이스(105)는 오디오/비디오 소스(106)로부터 신호(들)을 수신할 수 있는 VR 어플리케이션(120)을 포함할 수 있고 그리고 디스플레이 스크린(130), 스피커(들)(도시되지 않음) 또는 다른 출력 디바이스와 같은 컴퓨팅 디바이스(105)의 하나 이상의 출력 디바이스들을 통해 VR 콘텐츠를 사용자에게 제시하거나 제공할 수 있다. 디스플레이 스크린(130)은 예를 들어, LCD(liquid crystal display) 스크린, 터치 스크린 또는 사용자에게 이미지들 또는 정보를 디스플레이하기 위한 임의의 다른 스크린 또는 디스플레이를 포함할 수 있다. 또한, 컴퓨팅 디바이스(105)는, 예를 들어, 가속도계 또는 컴퓨팅 디바이스(105)의 모션 또는 움직임 또는 가속을 검출할 수 있는 임의의 다른 센서와 같은 컴퓨팅 디바이스(105)의 모션 또는 움직임을 검출하는 하나 이상의 센서들(128) 및/또는 디스플레이 스크린(130)을 포함할 수 있다.
VR 어플리케이션(124)은, 예를 들어, 오디오/비디오 콘텐츠를 컴퓨팅 디바이스(105)에 렌더링하기 위한 VR 렌더링 모듈(122), 및 VR 렌더링 모듈(122) 및/또는 VR 어플리케이션(120)의 동작을 제어하는 제어 모듈(124)을 포함할 수 있다. VR 렌더링 모듈(122)은 오디오/비디오 소스(106)로부터 오디오/비디오 신호를 수신할 수 있고, 그리고 가상 현실 콘텐츠의 오디오 렌더링 및/또는 비디오 렌더링을 수행할 수 있다. 예를 들어, VR 렌더링 모듈(122)은 VR 콘텐츠의 오디오 신호들을 수신할 수 있고 그리고 컴퓨팅 디바이스(105)의 일부로서 제공된 스피커(도시되지 않음)에 오디오 신호를 출력할 수 있다.
VR 렌더링 모듈(122)은 또한 오디오/비디오 소스(106)로부터 인코딩된 비디오 신호를 수신할 수 있으며, 그리고 컴퓨팅 디바이스(105)의 디스플레이 스크린 (130) 상에 (복수의) 디스플레이 프레임 세트를 디스플레이하기 위해 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행할 수 있다. 예시적인 구현에서, 비디오 렌더링은, 컴퓨터 또는 컴퓨팅 디바이스가 코딩된 데이터 소스로부터의 정보를 처리하고 그 정보를 사용하여 스크린상에 디스플레이하기 위한 이미지(들)을 생성 및 디스플레이하는 프로세스를 포함할 수 있다. 예를 들어, 비디오 렌더링은, 수신된 인코딩된 비디오 신호의 디코딩, 하나 이상의 디스플레이 프레임들의 생성 및 디스플레이 스크린(130)상의 출력 또는 디스플레이를 위한 프레임 버퍼로의 각 디스플레이 프레임의 출력을 포함할 수 있다. 비디오 렌더링은, 예를 들어, 수신된 인코딩된 신호의 유형에 따라 추가적인 기능들 또는 작업들을 포함할 수 있다. 어떤 경우들에서, 비디오 렌더링은 계산적이거나 또는 자원 집약적일 수 있고, 그리고 컴퓨팅 디바이스(105) 내에 상당한 양의 컴퓨팅 리소스들(132)을 요구할 수 있다.
예시적인 구현에 따르면, 비디오 렌더링은, 예를 들어, 비디오 디코딩과 같은 비디오 렌더링과 관련된 다양한 작업들 또는 기능들을 수행하기 위한 명령어들 또는 소프트웨어를 실행하는 프로세서 또는 CPU에 의해 그리고/또는 그래픽 프로세서 유닛(GPU)과 같은 전용 하드웨어에 의해 수행될 수 있다. 예를 들어, GPU가 존재하는 경우, 일부 비디오 렌더링 작업들이 메인 프로세서/CPU에서 GPU로 오프로드될 수 있다. 컴퓨팅 리소스(132)는, CPU 실행 시간/사이클들, 메모리, 또는 데이터를 처리하는데 사용될 수 있는 컴퓨팅 디바이스(105) 내의 임의의 다른 리소스와 같은 CPU 리소스들을 포함할 수 있다. 컴퓨팅 디바이스(105)는 예시적인 구현에서 GPU를 포함할 수 있다.
컴퓨팅 디바이스(105)는, 또한, 렌더링 성능을 측정하거나 비디오 렌더링 속도를 결정하는 것 또는 VR 렌더링 모듈(122) 및/또는 VR 어플리케이션(120)의 다른 성능 측정과 같은, VR 어플리케이션(120)의 성능을 측정하기 위한 성능 측정 모듈(126)을 포함할 수 있다. 예를 들어, 렌더링 성능은 시간당 렌더링된 데이터의 양으로 측정될 수 있다. 예를 들어, 렌더링 속도는 초당 렌더링된 픽셀들(예를 들어, 픽셀 렌더링 속도), 초당 렌더링 비트들(예를 들어, 비트 렌더링 속도), 프레임 속도 또는 프레임 렌더링 속도(예를 들어, 초당 프레임들) 또는 다른 렌더링 성능 측정으로 측정될 수 있다.
예시적인 구현에서, 제어 모듈(124)은 VR 어플리케이션(120)의 비디오 렌더링 성능과 임계값을 비교할 수 있고, 이후, 상기 비교에 기초하여 VR 어플리케이션 (120) 또는 VR 렌더링 모듈(122)의 비디오 렌더링 속도를 조정(예를 들어, 증가 또는 감소)할 수 있다. 예를 들어, VR 어플리케이션(120)의 비디오 렌더링 속도가 임계값보다 작은 경우, 이후, 제어 모듈(124)은, 예를 들어, VR 어플리케이션(120)이 임계 비디오 렌더링 속도 성능을 충족시키지 못하거나 만족할 수 없었기 때문에, 이전의 비디오 렌더링 속도보다 적을 수 있는 업데이트된 비디오 렌더링 속도를 결정할 수 있다. 예시적인 구현에서, 제어 모듈(124)은, 예를 들어, 측정된 비디오 렌더링 속도가 임계 렌더링 속도보다 큰 경우, 이전 비디오 렌더링 속도보다 클 수 있는 업데이트되거나 또는 조정된 비디오 렌더링 속도를 결정할 수 있다. 즉, VR 어플리케이션(120)의 비디오 렌더링 속도는, 예시적인 구현에 따라, 측정된 비디오 렌더링 속도 성능이 임계 비디오 렌더링 속도를 초과하면 증가될 수 있다. 아래에서보다 상세하게 설명되는 바와 같이, VR 어플리케이션(120)은 다수의 상이한 기술들, 예를 들어, VR 콘텐츠의 하나 이상의 이미지들을 디스플레이하는데 사용될 수 있는 디스플레이 스크린(130)의 일부분을 조정하는 것, 및/또는 (디스플레이 스크린의 전부 또는 일부에 대해) 업데이트 속도를 조정하는 것, 및/또는 하나 이상의 이미지들 또는 디스플레이 프레임들의 디스플레이(의 전체 또는 일부에) 대한 해상도를 조정하는 것을 사용하여 비디오 렌더링 속도를 조정 또는 업데이트할 수 있다. 예를 들어, 이미지의 상이한 부분들(예를 들어, 중앙 부분 대 주변 부분)은 상이한 업데이트 속도들로 업데이트될 수 있다. 예를 들어, 이미지의 제1 부분(예를 들어, 중앙 부분)이 이미지의 제2 부분(주변 부분)보다 더 빠른 속도로 업데이트될 수 있다. 마찬가지로, 이미지의 제1 부분(예를 들어, 중앙 부분)은 제1 해상도(예를 들어, 고해상도)로 업데이트될 수 있는 반면, 이미지의 제2 부분(예를 들어, 주변 부분)은 제1 해상도보다 낮은 제2 해상도로 업데이트될 수 있다. 다른 기술이 또한 사용될 수 있다. 이러한 방식으로, 비디오 렌더링 속도는 하나 이상의 예시적인 기술들을 사용하여 조정될 수 있다. 예시적인 구현에 따르면, 리프레시 속도는 디스플레이 스크린이 리프레시되는 속도일 수 있고, 이 리프레시 속도는 스크린에 기초하여 (적어도 어떤 경우들에는) 고정될 수 있다. 업데이트 속도는, 새로운 이미지 데이터가 디스플레이 스크린에 기록되는 속도일 수 있다. 프레임 속도는 프레임이 업데이트되는 속도일 수 있으며, 종종 리프레시 속도와 동일할 수 있다. 또한, 일 예시적인 구현에서, 업데이트 속도 및 프레임 속도는 동일한 속도일 수 있다.
언급된 바와 같이, 컴퓨팅 디바이스(105)는 하나 이상의 컴퓨팅 리소스들 (132), 예를 들어, 명령어들을 실행하거나 또는 데이터를 처리하기 위해 CPU 사이클들과 같은 CPU 또는 프로세서 리소스들 및/또는 명령어들 또는 데이터를 저장하기 위한 컴퓨터 메모리를 포함할 수 있다. 이용 가능한 컴퓨팅 리소스들(132)을 VR 어플리케이션(120)에 더 많이 할당함으로써, VR 어플리케이션(120)은 예시적인 구현에 따라보다 높은 비디오 렌더링 속도로 비디오 렌더링을 수행하게 할 수 있다. 반면에, 충분한 컴퓨팅 리소스들(132)이 VR 어플리케이션(120)에 할당되지 않으면, (예를 들어, VR 어플리케이션(120)에 의해 달성된 비디오 렌더링 속도를 포함하는) VR 어플리케이션(120)의 성능이 그러한 제한된 컴퓨팅 리소스들(132)에 기초하여 금지되거나 또는 제한되는 것이 가능하다. 결과적으로, VR 어플리케이션(120)에 컴퓨팅 리소스들(132)의 할당이 불충분한 경우에, VR 어플리케이션(120)의 비디오 렌더링 성능은, 적어도 몇몇 경우에, 타겟 또는 임계 비디오 렌더링 속도를 달성하지 못할수도 있다.
VR 어플리케이션(120)에 더하여, 컴퓨팅 디바이스(105)는 또한 다양한 비-VR 어플리케이션들(134)을 포함할 수 있다. 예시적인 구현에서, 비-VR 어플리케이션(134)은 컴퓨팅 디바이스(105)의 사용자에게 VR 콘텐츠를 제공하기 위해 신호들의 렌더링 또는 다른 프로세싱과 관련되지 않은 임의의 어플리케이션을 포함할 수 있다. 예를 들어, 비-VR 어플리케이션(134)은, 이메일을 송수신하기 위한 이메일 프로그램, 소셜 미디어 어플리케이션, 기상 정보를 수신하는 기상 어플리케이션, 다른 사용자들로부터 메시지들을 송신 또는 수신하기 위한 텍스팅 또는 메시징 어플리케이션, 노래 또는 음악을 재생하기 위한 뮤직 플레이어 또는 뮤직 어플리케이션, 웹 페이지들을 다운로드하는 웹 브라우저, 또는 컴퓨팅 디바이스(105) 상에서 실행되거나 제공될 수 있는 다른 어플리케이션을 포함할 수 있다. 일부 경우들에서, 컴퓨팅 리소스들(132)은, 컴퓨팅 디바이스(105) 상에서 병렬로 실행될 수 있는 다수의 어플리케이션들 간에 할당되거나 또는 공유될 수 있다. 예를 들어, 컴퓨팅 리소스들은, VR 어플리케이션(120) 및 하나 이상의 비-VR 어플리케이션들(134)에 의해 공유될 수 있다.
도 2는, 프레임들 또는 이미지들을 디스플레이하는데 사용되는 디스플레이 스크린의 부분이 예시적인 구현에 따라 조정될 수 있는 디스플레이 스크린(130)의 다이어그램이다. 도 2를 참조하면, 스크린(130)의 전체 디스플레이 경계(210)는 이미지들을 디스플레이하기 위해 스크린(130)의 전체 영역/부분의 외부 경계를 정의할 수 있다. 스크린(130)의 부분 디스플레이 경계(212)는 전체 디스플레이 경계 (210)보다 작은 스크린(130)의 디스플레이 영역의 경계를 식별한다. 따라서, 전체 디스플레이 경계(210)는 이 디스플레이 스크린(130)의 모든 픽셀들(픽셀 요소들)을 포함하는 외부 경계를 제공할 수 있지만, 부분 디스플레이 경계(212)는 디스플레이 스크린(130)의 픽셀들의 (전체보다 작은) 서브 세트를 포함하는 스크린의 일부분에 대한 외부 경계를 정의할 수 있다. 예를 들어, 이미지의 중앙 부분(224)은 부분 디스플레이 경계(212) 내에 제공될 수 있는 반면, 이미지의 주변 부분(222)은 전체 디스플레이 경계(210)와 부분 디스플레이 경계(212) 사이에 제공될 수 있다. 따라서, 예를 들어, 스크린(130)의 (전체 디스플레이 경계(210) 내의) 전체 영역/부분은 경계들(210 및 212) 사이에 위치하는 주변 부분(222)을 더한 (부분 디스플레이 경계(212) 내의) 중앙 부분(224)을 포함할 수 있다.
일 구현에 따르면, VR 어플리케이션(120)의 제어 모듈(124)은 VR 렌더링 모듈(122)에 의해 수행되는 비디오 렌더링의 성능을 측정할 수 있다. 예를 들어, 제어 모듈(124)은, 예를 들어, 프레임들의 세트를 디스플레이하기 위해 VR 렌더링 모듈(122)에 의해 달성된 비디오 렌더링 속도를 측정함으로써 비디오 렌더링 성능을 측정할 수 있다. 또한, 제어 모듈(124)은, 예를 들어, 비디오 렌더링의 성능(예를 들어, 측정된 제1 비디오 렌더링 속도)을 임계값과 비교할 수 있다. 예를 들어, 제어 모듈(124)은, 측정된 제1 비디오 렌더링 속도와 임계값의 비교에 기초하여, VR 콘텐츠의 일부로서 디스플레이 프레임들의 세트를 디스플레이하는데 사용될 제2 또는 조정된 비디오 렌더링 속도를 결정할 수 있다. 예를 들어, 제2 또는 조정된 비디오 렌더링 속도는, 예를 들어, 프레임들을 디스플레이하기 위해 디스플레이 스크린(130)의 일부분을 조정 또는 변경(또는 조정된 일부분을 선택)하는 것에 기초하여 결정될 수 있다. 이 예시적인 실시예에서는, 단 하나의 임계값만이 설명되었지만, 다수의 임계값들이 비디오 렌더링 속도를 비교하고 그리고 하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용될 디스플레이 스크린의 선택되거나 조정된 부분을 결정하기 위해 사용될 수 있어, 예를 들어, 상기 비교에 기초하여 비디오 렌더링 속도를 조정하거나 또는 업데이트된 또는 제2 비디오 렌더링 속도를 선택하도록 한다.
예를 들어, 예시적인 구현에 따라, 비디오 렌더링의 성능(또는 측정된 비디오 렌더링 속도)이 임계값보다 작은 경우, 제어 모듈(124)은 초기 또는 제1 렌더링 속도보다 작은 조정된 또는 제2 비디오 렌더링 속도를 결정할 수 있다. 예를 들어, 하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용되는 디스플레이 스크린(130)의 부분을 조정하거나 또는 조정된 부분을 선택함으로써보다 낮은 (또는 감소된) 비디오 렌더링 속도가 달성될 수 있다. 도 2를 참조하면, 예시적인 구현에 따라, 전체 디스플레이 경계(210)(도 2) 내의 디스플레이 스크린(130)은 처음에 제1 비디오 렌더링 속도로 VR 콘텐츠의 이미지들을 디스플레이하는데 사용될 수 있다. 이 예시적인 예에서, 상기 측정된 제1 비디오 렌더링 속도가 임계값보다 작은 것으로 결정한 것에 응답하여, 제어 모듈(124)은 (예를 들어) 부분 디스플레이 경계(212) 내의 중앙 부분(224)과 같은 디스플레이 스크린(130)의 전체 부분보다 작은 부분을 포함하는 스크린(130)의 부분을 조정하거나 또는 조정된 부분을 선택하여, 제1 비디오 렌더링 속도보다 작은 제2 비디오 렌더링 속도에 따라 하나 이상의 디스플레이 프레임들을 디스플레이할 수 있다. 이러한 방식으로, 예를 들면, VR 어플리케이션(120)의 비디오 렌더링 속도는 프레임들을 디스플레이하기 위해 사용된 스크린(130)의 일부분을 적어도 감소시킴으로써 감소될 수 있고(예를 들어, 전체 디스플레이 경계(210) 내의 스크린(130)의 일부분으로부터 부분 디스플레이(212) 경계 내의 스크린(130)의 작은 부분으로 감소될 수 있다), 이는 비디오 렌더링 모듈(122)에 의해 타겟 프레임 속도가 달성될 수 있게 하는 것과 같이 렌더링될 프레임당 데이터의 양 (또는 프레임당 픽셀들)을 감소시킬 수 있다. 일부 예시적인 구현들에서, (예를 들어, 프레임 속도를 감소시키고 그리고/또는 이미지 또는 디스플레이 프레임 해상도를 감소시킴으로써) 비디오 렌더링 속도를 감소시키기 위한 다른 단계들이 취해질 수도 있다. 이는, 예를 들어, VR 어플리케이션(120) 또는 VR 렌더링 모듈(122)이 임계 비디오 렌더링 속도를 달성할 수 없는 경우 유용하거나 유리할 수 있는, 감소된 비디오 렌더링 속도를 초래할 수 있다. 상술한 바와 같이, 하나 이상의 비-VR 어플리케이션(134)이 중요한 컴퓨팅 리소스(132)를 점유하거나 사용하는 경우, 이는, VR 어플리케이션(120) 또는 VR 렌더링 모듈(122)의 성능이 저하될 수 있다. 그러한 경우에, 예를 들어, 하나의 해결책은, 디스플레이 프레임당 렌더링 된 데이터의 양을 감소시키는 것을 통해, 예를 들어, 디스플레이 프레임당 렌더링되는 픽셀의 양을 감소시킴으로써, 비디오 렌더링 속도를 감소시키는 것일 수 있는 것으로, 이는 타겟 프레임 속도가 달성되도록 할 수 있다. 이것은, 예를 들어, 하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용되는 스크린(132)의 조정된 부분(일 예로서, 부분 디스플레이 경계(212) 내의 중앙 부분(224)에 대응할 수 있음)을 선택함으로써 달성될 수 있다.
예를 들어, 부적절한 리소스들에 기초하여, 비디오 렌더링 모듈(122)에 의해 타겟 또는 임계 프레임 속도(초당 프레임의 프레임 렌더링 속도)가 달성될 수없는 경우, 각각의 (또는 하나 이상의) 디스플레이 프레임의 비디오 렌더링 로드(프레임당 픽셀)는 디스플레이 스크린(130)의 조정된 부분을 조정 또는 선택함으로써(예를 들어, 디스플레이 스크린의 더 작은 부분을 선택하고 그에 따라 디스플레이를 위해 디스플레이 프레임당 픽셀들의 양을 감소시킴으로써) 감소될 수 있고, 이는 전체 비디오 렌더링 속도를 감소시킬 수 있다.
다른 예시적인 구현에 따르면, 비디오 렌더링의 성능(또는 측정된 비디오 렌더링 속도)이 임계값보다 큰 경우, 제어 모듈(124)은 초기 또는 제1 렌더링 속도보다 큰 조정된 또는 제2 비디오 렌더링 속도를 결정할 수 있다. 예시적인 구현에서, 보다 큰 (또는 증가된) 비디오 렌더링 속도는, 예를 들어, 동일하거나 유사한 프레임 속도를 유지하면서, 하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용되는 디스플레이 스크린(130)의 부분을 조정하거나 또는 조정된 부분을 선택함으로써 달성될 수 있다. 도 2를 참조하면, 예시적인 구현에 따라, 부분적인 디스플레이 경계(212)(도 2) 내의 디스플레이 스크린(130)의 전체 부분은 초기에 제1 비디오 렌더링 속도로 VR 콘텐츠의 이미지들을 디스플레이하는데 사용될 수 있다. 이 예시적인 예에서, 측정된 제1 비디오 렌더링 속도가 임계값보다 크다고 결정한 것에 응답하여, 제어 모듈(124)은, 예를 들어, 부분 디스플레이 경계(212) 내의 부분보다 더 큰 영역 또는 부분 또는 그 이상의 픽셀들을 포함할 수 있는 스크린(130)의 부분을 조정, 예를 들어, 증가시키거나 조정된 부분을 선택할 수 있고, 이는, 전체 디스플레이 경계(210) 내의 스크린의 전체 부분에 대응할 수있어, 제1 비디오 렌더링 속도보다 큰 제2 비디오 렌더링 속도에 따라 하나 이상의 디스플레이 프레임들을 디스플레이할 수 있다. 따라서, 예를 들어, 이미지들을 디스플레이하는데 사용되는 스크린(130)의 일부분은 (경계부들(212 및 210) 사이에 제공되는) 주변 부분(222)을 중앙 부분(224)에 추가함으로써 증가될 수 있어, 전체 디스플레이 경계(210) 내에서 스크린의 전체 또는 전체 부분은 이미지(들)을 디스플레이하는데 사용될 수 있다. 따라서, 이 예에서, 보다 높은 또는 증가된 렌더링 속도는, 디스플레이 프레임당 렌더링되는 픽셀들의 양 또는 수를 증가시킴으로써, 예를 들어, 예시적인 구현에 따라(예를 들어, 부분 디스플레이 경계(212)와 전체 디스플레이 경계(210) 사이에 주변 부분(222)을 추가함으로써 스크린의 부분 또는 픽셀의 개수를 증가시켜), 부분 디스플레이 경계(212) 내의 스크린(130)의 중앙 부분(224)으로부터 전체 디스플레이 경계(210) 내의 스크린의 전체 부분까지 스크린(130)의 선택된 부분을 증가시키는 것과 같이 프레임들을 디스플레이하는데 사용된 스크린(130)의 부분을 증가시킴으로써 달성될 수 있다. 또한, 예를 들어, 하나 이상의 디스플레이 프레임들의 디스플레이에 대한 프레임 속도를 증가시키고 그리고/또는 스크린(130)상에 디스플레이된 이미지들 또는 디스플레이 프레임들의 해상도를 증가시킴으로써 비디오 렌더링 속도를 증가시키는 다른 단계가 취해질 수 있다.
또한, 비디오 렌더링 속도를 증가시키는 것은, 일반적으로 비디오 렌더링 속도의 이러한 증가를 처리하는데 이용가능한 충분한 리소스들(예를 들어, 계산 리소스들, 메모리 리소스들 등)이 존재할 때 수행될 수 있다. 다른 예시적인 구현에 따르면, 제1 비디오 렌더링 속도가 임계값보다 작다고 결정한 것에 응답하여, 컴퓨팅 리소스들(132)은 하나 이상의 비-VR 어플리케이션들(134)로부터 VR 어플리케이션(120)으로 할당될 수 있으며, 이는 VR 어플리케이션(120) 또는 VR 렌더링 모듈(122)에 의해 달성된 성능 또는 렌더링 속도가 증가 또는 개선되도록 한다. 유사하게, VR 어플리케이션(120)의 비디오 렌더링 속도 또는 비디오 렌더링 성능이 임계값보다 큰 경우, 그러한 리소스들을 VR 어플리케이션(120)에 재할당하기 전에, 적어도 비-VR 어플리케이션들(134)이 일부 데이터를 처리할 수 있게 하는 기간동안, 일부 경우들에서, 컴퓨팅 리소스들(132)은 VR 어플리케이션(120)으로부터 하나 이상의 비-VR 어플리케이션들(134)로 할당될 수 있다.
일부 경우들에서, 비디오 렌더링 성능이 불충분하거나 최소(또는 임계) 비디오 렌더링 속도를 달성하지 못하는 경우, VR 콘텐츠를 보거나 경험하고 있는 사용자는 상당한 대기 시간 또는 지연을 경험할 수 있다. 예를 들어, VR 어플리케이션(120) 또는 VR 렌더링 모듈(122)이 성능이 좋지 않은 (예를 들어, 성능 임계값을 만족시키지 못하는) 경우, 사용자는 사용자 모션 또는 액션들에 응답하여 디스플레이된 VR 콘텐츠에 대한 변경들 또는 업데이트들에서 상당한 지연 또는 대기 시간을 경험할 수 있다. 일부 경우들에서, VR 어플리케이션의 현저한 지연, 예를 들어, VR 콘텐츠의 렌더링은 사용자에게 멀미 또는 메스꺼움을 유발시킬 수 있다. 따라서, 가능한 경우 사용자가 경험하게 되는 대기 시간을 줄이는 것이 바람직할 수 있다. 어떤 경우들에서, 경험된 VR 대기 시간은, 적어도 부분적으로는, (예를 들어) 보다 낮은 (또는 부적절하게) 수행중인 VR 어플리케이션(120) 또는 VR 렌더링 모듈(122)에 기인할 수 있으며, 이는, 예를 들어, 컴퓨팅 리소스들(132)에 대한 비-VR 어플리케이션(134)에 의한 사용 또는 요구에 기초하여 VR 어플리케이션(120)에 이용 가능하거나 할당된 부적절한 컴퓨팅 리소스들(132)로 인해 발생할 수 있다. 따라서, 예시적인 구현에 따르면, 예를 들어, 하나 이상의 이미지들을 디스플레이하는 전체 디스플레이 스크린보다 작을 수 있는(예를 들어, 전체 디스플레이 경계(210) 내의 영역보다 작을 수 있는) 디스플레이 스크린(130)의 조정된 더 작은 디스플레이 부분(예를 들어, 부분 디스플레이 경계(212) 내의 중앙 부분(224))을 선택함으로써, 렌더링 데이터의 양이 감소될 때, 사용자에 의해 경험되는 VR 콘텐츠 대기 시간 또는 지연이 감소될 수 있다. 이러한 방식으로, 예를 들어, 전체 디스플레이 경계(210) 내의 영역보다 적을 수 있는 (더 적은 픽셀들일 수 있는) 디스플레이 스크린(130)의 부분을 조정하거나 또는 조정된 부분(예를 들어, 부분 디스플레이 경계(212) 내의 중앙 부분(224))을 선택하여 각 디스플레이 프레임에 대해 렌더링될 픽셀들의 수를 감소시킴으로써, 개선된 렌더링 성능(및 예를 들어, VR 콘텐츠의 출력의 더 낮은 대기 시간)은 각 디스플레이 프레임의 비디오 렌더링 로드/부담을 감소시켜 달성될 수 있다. 더욱이, VR 콘텐츠의 출력의 감소된 대기시간 및/또는 VR 어플리케이션(120)/VR 렌더링 모듈(122)의 성능의 개선은, 적어도 일부의 경우들에서, 적어도 일정 기간 동안, 하나 이상의 비-VR 어플리케이션들(134)로부터 VR 어플리케이션(120)으로의 컴퓨팅 리소스들(132)의 할당을 통해 달성될 수 있다.
도 3은 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(310)은 인코딩된 비디오 신호를 수신하는 단계를 포함할 수 있다. 동작(320)은, 컴퓨팅 디바이스 상에 제공된 가상 현실(VR) 어플리케이션에 의해, 컴퓨팅 디바이스의 스크린상에 디스플레이 프레임들의 제1 세트를 디스플레이하기 위해 인코딩된 비디오 신호에 기초한 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함할 수 있다. 동작(330)은 디스플레이 프레임들의 제1 세트를 디스플레이하기 위해 비디오 렌더링의 성능을 측정하는 단계를 포함할 수 있다. 동작(340)은, 비디오 렌더링의 측정된 성능에 기초하여, 적어도 디스플레이 프레임들의 제2 세트를 디스플레이하는데 사용될 스크린의 부분을 조정하는 것에 기초한 제2 비디오 렌더링 속도를 결정하는 단계를 포함할 수 있다. 그리고, 동작(350)은, 스크린의 조정된 부분 상에 디스플레이 프레임들의 제2 세트를 디스플레이하기 위해 인코딩된 비디오 신호에 기초하여 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 결정하는 단계는, 상기 비디오 렌더링의 성능을 제1 임계값과 비교하는 단계와; 그리고 상기 비디오 렌더링의 성능이 상기 제1 임계값보다 작은 경우, 상기 제1 렌더링 속도보다 작은 제2 비디오 렌더링 속도를 결정하는 단계를 포함할 수 있고, 상기 스크린의 상기 부분을 조정하는 단계는 상기 제2 세트의 디스플레이 프레임들을 디스플레이하기 위해 사용될 상기 스크린의 일 부분을 감소시키는 단계를 포함한다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 결정하는 단계는, 상기 비디오 렌더링의 성능을 제2 임계값과 비교하는 단계와; 그리고 상기 비디오 렌더링의 성능이 상기 제2 임계값보다 큰 경우, 상기 제1 렌더링 속도보다 큰 제2 비디오 렌더링 속도를 결정하는 단계를 더 포함할 수 있고, 상기 스크린의 상기 부분을 조정하는 단계는 상기 제2 세트의 디스플레이 프레임들을 디스플레이하기 위해 사용될 상기 스크린의 일부분을 증가시키는 단계를 포함한다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 측정하는 단계는 데이터의 양 또는 디스플레이 프레임의 수를 디스플레이하는데 필요한 시간의 양 또는 프로세서 사이클들의 수를 결정하는 단계를 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 비디오 렌더링의 측정 된 성능에 기초하여, 적어도 디스플레이 프레임들의 제2 세트를 디스플레이하는데 사용될 상기 스크린의 일 부분을 조정하는 것에 기초한 제2 비디오 렌더링 속도를 결정하는 단계는, 비디오 렌더링의 측정된 성능에 기초하여, 적어도 디스플레이 프레임들의 제2 세트의 각 디스플레이 프레임을 디스플레이하는데 사용될 스크린의 픽셀들의 수를 조정하는 것에 기초한 제2 비디오 렌더링 속도를 결정하는 단계를 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도를 결정하는 단계는 스크린상에 적어도 제2 세트의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 조정하는 단계를 더 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도를 결정하는 단계는 스크린상에 적어도 제2 세트의 디스플레이 프레임들을 디스플레이하기 위한 디스플레이 프레임 또는 이미지 해상도를 조정하는 단계를 더 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, 상기 비디오 렌더링의 성능을 제1 임계값과 비교하는 단계와; 상기 비디오 렌더링의 성능이 상기 제1 임계값보다 작은 것으로 결정하는 단계와; 그리고 컴퓨팅 디바이스에서 실행중인 하나 이상의 비-가상 현실 어플리케이션들로부터 가상 현실 어플리케이션으로 컴퓨팅 디바이스의 컴퓨팅 리소스들을 할당하는 단계를 포함한다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간을 추정하는 단계와; 그리고 상기 가상 현실 어플리케이션으로부터 상기 눈 깜박임 기간의 적어도 일부 동안 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션에 컴퓨팅 리소스들을 할당하는 단계를 포함한다. 도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 추정하는 단계는, 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 적어도 시작을 예측하는 단계와; 그리고 상기 컴퓨터 디바이스의 사용자의 눈 깜박임 또는 상기 눈 깜박임 기간의 시작을 검출하는 단계 중 적어도 하나를 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, VR 디스플레이 디바이스의 모션 또는 움직임을 검출하는 단계와; 그리고 상기 검출 후의 적어도 하나의 기간 동안, 상기 스크린상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 시야를 조정(예를 들어, 증가 또는 감소)하는 단계를 더 포함할 수 있다.
도 3에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, 상기 컴퓨팅 디바이스의 모션 또는 움직임을 검출하는 단계와; 그리고 상기 검출 이후의 적어도 하나의 기간 동안, 상기 스크린 상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 조정(예를 들어, 증가 또는 감소)하는 단계를 더 포함할 수 있다.
다른 예시적인 구현에 따르면, 장치는 적어도 하나의 프로세서 및 적어도 하나의 프로세서에 의해 실행될 때 컴퓨터 명령어들을 포함하는 적어도 하나의 메모리를 포함할 수 있고, 상기 명령어들은 상기 장치로 하여금 인코딩된 비디오 신호를 수신하게 하고; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린상에 제1 세트의 디스플레이 프레임들을 디스플레이하기 위해 상기 인코딩된 비디오 신호에 기초한 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하게 하며; 제1 세트의 디스플레이 프레임들을 디스플레이하기 위해 비디오 렌더링의 성능을 측정하고; 상기 비디오 렌더링의 측정된 성능에 기초하여, 적어도 제2 세트의 디스플레이 프레임들을 디스플레이하는데 사용될 상기 스크린의 부분을 조정하는 것에 기초한 제2 비디오 렌더링 속도를 결정하고; 그리고 상기 제2 세트의 디스플레이 프레임들을 상기 스크린의 조정된 부분 상에 디스플레이하기 위해 상기 인코딩된 비디오 신호에 기초하여 상기 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하도록 한다.
예시적인 구현에 따르면, 리프레시 속도(또는 프레임 속도)는 스크린 (130)이 스크린 데이터를 리프레시하는 속도를 지칭할 수 있다. 또한, 업데이트 속도가 존재하는데, 이것은 이미지(또는 새로운 이미지의 속도)가 스크린(130)에 업데이트/디스플레이되는 속도이다. 일반적으로, 리프레시 속도는 이미지 업데이트 속도와 동일할 수 있다. 그러나, 다양한 예시적이 구현에 따르면, 컴퓨팅 디바이스(105) 상의 비디오 렌더링 속도(및 렌더링 로드)를 감소시키기 위해 업데이트 속도가 조정(예를 들어, 감소)될 수 있는 상황들이 존재할 수 있다. 그러한 경우에, 이미지(들)에 대한 업데이트 속도는 스크린(130)의 리프레시 속도보다 작을 수 있다.
예시적인 구현에 따르면, 비디오 렌더링 속도/로드가 감소될 수 있는 몇몇 예시적인 상황이 있을 수 있다. 예를 들어, 비디오 렌더링 성능이 임계값보다 작다면, 이후, 예를 들어, 적어도 일부의 경우, 다른 작업들을 위한 리소스들을 자유롭게하거나, 또는 비디오 렌더링을 위해 현재 이용 가능한 리소스들에 보다 적합한 비디오 렌더링 속도를 선택하도록 비디오 렌더링 속도/로드를 조정(예를 들어, 증가 또는 감소)하는데 하나 이상의 기술들이 사용될 수 있다. 또한, 스크린(130)의 모션이 검출되는 경우, 비디오 렌더링 속도를 조정(예를 들어, 증가 또는 감소)하는데 하나 이상의 기술들이 사용될 수 있다.
비디오 렌더링 속도를 줄이기 위한 몇 가지 추가적인 예시된 기술들이 간략히 서술된다. 우선, 도 2에 도시된 바와 같이, 디스플레이 스크린(130)은 이미지의 중앙 부분(224) 및 이미지의 주변 부분(222)을 포함하는 이미지를 디스플레이할 수 있다. 중앙 부분(224)은 적어도 이미지의 중앙에 또는 그 근처에 (또는 근접하여) 제공될 수 있으며, 그리고 예를 들어, 부분 디스플레이 경계(212) 내에 제공될 수 있다. 이미지의 중앙 부분(224)은 전형적으로 사용자의 중심와(fovea) 주변에 놓일 가능성이 더 높을 수 있다. 이미지의 주변 부분(222)은 사용자의 중심와 부근에 놓일 가능성이 더 낮을 수 있다. 중심와는 시력이 가장 높은 눈의 망막에 있는 작은 함몰부분이다. 시력의 중심은 망막이 특히 집중되어 있는 이 지역에 집중되어 있다. 따라서, 다양한 예시적인 구현들에 따라, 예를 들어, 이미지의 주변 부분(222)과 같은, 중심와의 외부의 낮은 시력을 이용할 수 있는 비디오 렌더링 속도를 감소시키기 위한 몇몇 기술들이 사용될 수 있다.
제1 실시예에 따르면, 비디오 렌더링 속도/로드는 이미지의 일부분만을 업데이트함으로써 감소될 수 있다. 예를 들어, 비디오 렌더링 속도를 감소시키기 위해, 이미지의 중앙 부분(224)만이 업데이트되는 반면에, 주변 부분(222)은 (예를 들어, 적어도 일정 기간동안) 업데이트되지 않는다. 따라서, 업데이트가 필요한 픽셀들 수가 적어질수록 비디오 렌더링 로드/속도가 감소할 수 있다.
제2 실시예에 따르면, 비디오 렌더링 속도는 제1 업데이트 속도로 이미지의 제1 부분을 업데이트하고 그리고 제1 업데이트 속도보다 작은 제2 업데이트 속도로 이미지의 제2 부분을 업데이트함으로써 감소될 수 있다. 예를 들어, 이미지의 중앙 부분(224)(예를 들어, 사용자의 중심와 주위에 위치할 수 있는 적어도 일부)은 제1 업데이트 속도(예를 들어, 적어도 몇몇 실시예들에서 리프레시 속도와 동일할 수 있음)로 업데이트될 수 있는 반면, 이미지의 주변 부분(222)은 제1 업데이트 속도보다 작은 제2 업데이트 속도로 업데이트될 수 있다. 따라서, 이 예에서, 이미지의 주변 부분(222)은 이미지의 중앙 부분(224)보다 낮은 속도로 업데이트될 수 있고(또는 시간주기 동안 전혀 업데이트되지 않을 수 있고), 이는 예를 들어, 전체 비디오 렌더링 속도/로드를 감소시킬 수 있다. 이 예에서, 주변 부분(222)에 대한 감소된 업데이트 속도를 사용하는 것은 사용자에게 눈에 띄지 않을 수 있는데, 이는, 적어도 일부 경우들에, 예를 들어, 사용자가 중앙 부분(224)의 지점을 보거나 보고 있다고 가정하면, 주변 부분(222)(또는 예를 들어 적어도 그 일부는)은 사용자의 중심와보다 외측에 위치할 수 있기 때문이다.
제3 예시적인 구현에 따르면, 비디오 렌더링 속도는 이미지의 상이한 부분들에 대해 상이한 해상도를 사용함으로써 감소될 수 있다. 예를 들어, 감소된 비디오 렌더링 속도는 제1 해상도로 이미지의 제1 부분(예를 들어, 중앙 부분(224))을 업데이트함으로써 그리고 및 상기 제1 해상도보다 낮은 제2 해상도로 이미지의 제2 부분(예를 들어, 주변 부분(222))을 업데이트함으로써 얻어질 수 있다. 본 명세서에 기재된 이들 다양한 기술들 및 다른 기술들은 다양한 조합으로 또한 조합될 수 있다. 따라서, 비디오에 대한 이미지의 일부(예를 들어, 주변 부분(222))를 업데이트하기 위해보다 낮은 해상도를 사용하면 비디오 렌더링 속도가 감소될 것이다.
도 4는 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(410)은, 컴퓨팅 디바이스에 제공된 가상 현실 어플리케이션에 의해, 업데이트 속도로 컴퓨팅 디바이스의 스크린 상에 전체 이미지를 업데이트하는 것에 기초하여 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다. 동작(420)은 비디오 렌더링의 성능이 임계값보다 작은 것으로 결정하는 단계를 포함한다. 그리고, 동작(430)은, 결정에 기초하여, 업데이트 속도로 이미지의 일부분만을 업데이트함으로써 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
도 4의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는: 상기 결정에 기초하여, 상기 업데이트 속도로 상기 이미지의 중앙 부분 만을 업데이트하고 그리고 상기 이미지의 주변 부분을 업데이트하지 않음으로써 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함할 수 있다.
도 5는 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(510)은 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 제1 업데이트 속도로 컴퓨팅 디바이스의 스크린 상에 전체 이미지를 업데이트하는 것에 기초하여 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다. 동작(520)은 비디오 렌더링의 성능이 임계값보다 작은 것으로 결정하는 단계를 포함한다. 동작(530)은, 제1 업데이트 속도로 이미지의 제1 부분을 업데이트함으로써, 그리고 상기 제1 업데이트 속도보다 작은 제2 업데이트 속도로 상기 이미지의 제2 부분을 업데이트함으로써, 결정에 기초하여, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
도 5의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 것은, 제1 업데이트 속도로 이미지의 중앙 부분을 업데이트하고 그리고 상기 제1 업데이트 속도보다 작은 제2 업데이트 속도로 상기 이미지의 주변 부분을 업데이트함으로써, 상기 결정에 기초하여, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 것을 포함할 수 있다.
도 5의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 것은, 제1 업데이트 속도 및 제1 이미지 해상도로 이미지의 중앙 부분을 업데이트하고, 그리고 제2 업데이트 속도 및 상기 제1 이미지 해상도보다 낮은 제2 이미지 해상도로 이미지의 주변 부분을 업데이트함으로써, 상기 결정에 기초하여, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 것을 포함할 수 있다.
도 6은 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 나타내는 흐름도이다. 동작(610)은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다. 동작 (620)은, 비디오 렌더링의 성능이 임계값보다 작은 것으로 결정하는 단계를 포함한다. 동작(630)은, 제1 해상도로 이미지의 제1 부분을 업데이트하고 그리고 상기 제1 해상도보다 작은 제2 해상도로 상기 이미지의 제2 부분을 업데이트함으로써, 상기 결정에 기초하여, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
도 6의 방법의 예시적인 구현에 따르면, 제1 부분은 이미지의 중앙 부분을 포함할 수 있고, 제2 부분은 이미지의 주변 부분을 포함할 수 있다.
도 7은 예시적인 구현에 따른 컴퓨팅 디바이스(105)의 블록도이다. 예시적인 구현에 따르면, 컴퓨팅 디바이스(105)(도 1, 도 7)는 VR 어플리케이션(120) 및 컴퓨팅 리소스들(132)을 공유할 수 있는 하나 이상의 비-VR 어플리케이션들(134)을 모두 포함할 수 있다. 일부 경우들에서, VR 렌더링(120)의 동작과 관련된 비디오 렌더링 및/또는 다른 작업들의 요구되는 특성 때문에, 예시적인 구현에서, VR 어플리케이션(120)이 실행 중인 동안 그리고/또는 비디오 렌더링을 수행하는 동안, 컴퓨터 리소스들(132)의 전부 또는 적어도 상당 부분을 VR 어플리케이션(120)에 할당하는 것이 바람직할 수 있다. 하지만, 컴퓨팅 리소스들(132)의 전부 또는 상당 부분을 VR 어플리케이션(120)에 할당함으로써, 이는 VR 어플리케이션(120)이 또한 실행되는 시간 동안 하나 이상의 비-VR 어플리케이션(134)의 동작을 완전히 또는 적어도 부분적으로 금지할 수 있는데, 예를 들어, 충분한 컴퓨팅 리소스들(132)이 이 시간 동안 그러한 비-VR 어플리케이션(134)에 이용 가능하지 않을 수 있기 때문이다.
더욱이, 예시적인 구현에 따르면, 비-VR 어플리케이션들(134)이 어플리케이션 작업들/프로세스 데이터를 수행할 수 있도록 컴퓨팅 리소스들(132)의 적어도 일부가 VR 어플리케이션(120)으로부터 하나 이상의 비-VR 어플리케이션들(134)에 할당될 수 있다. 하지만, 언급된 바와 같이, VR 어플리케이션(120)으로부터 비-VR 어플리케이션들(134)로 리소스들을 할당하는 것은 VR 어플리케이션(120)의 성능을 저하시킬 수 있고 이는, 예를 들어, VR 렌더링 모듈(122)의 비디오 렌더링 성능을 감소시키는 것을 포함할 수 있으며, 불행하게도 사용자의 VR 경험에서 상당한 대기 시간을 유발 또는 초래하거나 성능을 저하시킬 수 있다.
따라서, 예시적인 구현에 따르면, 컴퓨팅 디바이스(105)는 예를 들어 사용자가 깜박이거나 눈을 감은 동안 눈 깜박임 기간의 시작을 검출할 수 있다. 예시적인 구현에 따르면, 눈 깜박임 기간 동안, 이러한 비-VR 어플리케이션들(134)이 사용자의 눈 깜박임 기간의 적어도 일부 동안 데이터를 동작시키거나 처리하도록 리소스들은 VR 어플리케이션(120)으로부터 하나 이상의 비-VR 어플리케이션들(134)에 할당될 수 있다. 예시적인 구현에 따르면, 이 깜박이는 주기 동안 VR 어플리케이션(120)으로부터 비-VR 어플리케이션들(134)로 컴퓨팅 리소스들(132)을 할당하는 것은 VR 어플리케이션(120)의 성능을 감소시키고 그리고/또는 VR 콘텐츠의 VR 렌더링의 레이턴시를 증가시킬 수 있는 반면에, 사용자가 눈 깝박임 기간동안 사용자의 눈을 감기 때문에, 이러한 증가된 레이턴시(또는 렌더링 성능의 감소)는 일반적으로 컴퓨팅 디바이스(105)의 사용자에 의해 검출될 수 없다. 따라서, 예를 들어, 눈 깜박임 기간은 비-VR 어플리케이션 작업(들)에 리소스들을 할당하고 그리고/또는 비-VR 어플리케이션들(134)이 데이터를 동작시키거나 처리하도록 하기 위해 사용될 수 있다.
예를 들어, 리소스 할당 모듈(716)은 사용자의 눈 깜박임 기간의 적어도 일부 동안 VR 어플리케이션(120)으로부터 하나 이상의 비-VR 어플리케이션들(134)로 컴퓨팅 리소스들(132)을 할당할 수 있다. 유사하게, VR 어플리케이션(120) 및/또는 VR 렌더링 모듈(122)은 VR 콘텐츠에 대한 비디오 렌더링 속도를 감소시킬 수 있고, 그리고/또는 사용자의 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링을 중지하거나 비디오 렌더링을 일시 정지할 수 있으며, 이는, 예를 들어, 컴퓨팅 리소스들(132)이 비-VR 어플리케이션들(134)에 할당되는 것을 허용할 수 있고 그리고/또는 비-VR 어플리케이션들(134)이 예를 들어 눈 깜박임 기간 동안 데이터를 처리하게 할 수 있다.
도 7에 도시된 바와 같이, 컴퓨팅 디바이스(105)는 하나 이상의 카메라들(718) 또는 다른 센서(들)을 포함할 수 있고, 이는, 예를 들어, 깜박임 기간(예를 들어, 사용자의 눈(들)의 일시적인 폐쇄)를 결정하거나 검출하기 위해, 사용자의 눈으로부터(사용자의 눈과 관련된) 이미지들, 화상들, 비디오 또는 다른 신호 (들)을 캡처 또는 수신하는데 사용될 수 있다. 예시적인 구현에 따르면, 카메라들(718) 또는 다른 센서들에 의해 캡처되거나 수신된 사용자의 눈(들) 또는 다른 신호(들)의 이미지들 또는 화상들은 깜박임 추정 모듈(710)로 전송될 수 있다. 깜박임 추정 모듈(710)은 사용자가 깜박일 때(예를 들어, 일시적으로 양 눈을 감았을 때) 그들이 검출하거나 추정할 수 있는 이미지 프로세싱 로직 또는 소프트웨어를 포함할 수 있다. 깜박임 추정 모듈(710)은, 카메라들(718) 또는 센서들로부터 수신된 이미지들 또는 화상들에 기초하여 사용자의 눈에서의 컬러의 변화를 검출할 수 있는 이미지 프로세싱 로직 또는 소프트웨어에 기초하여, 깜박임 기간(또는 사용자의 눈(들)의 닫힘/감음)의 시작을 검출하기 위한 깜박임 검출 모듈(714)을 포함할 수 있다.
깜박임 추정 모듈(710)은 또한 사용자가 눈을 깜박일 수 있는 시기를 예측하기 위한 깜박임 예측 모듈(712)을 포함할 수 있고 그리고/또는 사용자에 대한 눈 깜박임 기간을 예측 또는 추정할 수 있다. 예를 들어, 카메라들(718) 또는 다른 센서들로부터 수신된 사용자의 눈(들)의 이미지들 또는 비디오에 기초하여, 깜박임 예측 모듈(712)은 사용자의 눈 깜박임(또는 일시적으로 차단/폐쇄)과 관련된 다양한 통계들, 예를 들어, 사용자에 대한 평균 깜박임 속도(예를 들어, 1분당 23번의 깜박임과 같은 분당 깜박임들의 수), 평균 눈 깜박임 기간(예를 들어, 눈 깜박임 동안 눈이 닫히는 기간 또는 시간, 예를 들어 200ms), 눈 깜박임 사이의 평균 시간(예를 들어, 7초) 및/또는 기타 통계들을 결정할 수 있다. 예시적인 구현에 따르면, 깜박임 예측 모듈(712)은, 예를 들어, 사용자에 대한 여러 가지 깜박임 통계들에 기초하여, 사용자가 다음번 깜박거릴 가능성을 예측 또는 추정할 수 있거나 또는 사용자가 깜박거릴 가능성이 있는 다음 시점을 결정할 수 있다. 예를 들어, 눈 깜박임들 사이의 기간 또는 간격이 증가하여, 사용자에 대한 눈 깜박임 사이의 평균 시간에 접근(및/또는 심지어 초과)할 때, 사용자가 깜박거리는 확률은 일반적으로 이 예시적인 실시예에서 증가할 수 있다.
따라서, 예시적인 구현에 따르면, 깜박임 검출 모듈(714)은, 예를 들어, 눈을 감기/닫기를 검출함으로써 눈 깜박임 기간의 시작을 검출할 수 있다. 깜박임 예측 모듈(712)은 깜박임 기간의 길이를 예측할 수 있다. 리소스 할당 모듈(716)은, 깜박임 기간의 시작의 통지 또는 표시에 응답하여, 예를 들어, 눈 깜박임 기간의 적어도 일부 동안, 컴퓨팅 리소스들(132) 중 적어도 일부를 VR 어플리케이션(120)으로부터 하나 이상의 비-VR 어플리케이션들(134)에 할당할 수 있다. 부가적으로 또는 대안적으로, VR 애플리케이션(120) 및/또는 VR 렌더링 모듈 (122)은 비디오 렌더링의 속도를 감소시킬 수 있고, 그리고/또는 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링을 일시 정지하거나 중지할 수 있으며, 그리고 하나 이상의 비-VR 애플리케이션들(134)은 눈 깜박임 기간의 적어도 일부 동안 데이터를 실행 또는 동작시키고 처리할 수 있다.
예시적인 일례에 따르면, VR 애플리케이션(120) 및 VR 렌더링 모듈(122)은 컴퓨팅 리소스들(132)의 전체 또는 상당량/부분에 기초하여 초기 기간동안 비디오 렌더링을 동작시키고 수행할 수 있지만, 하나 이상의 비-VR 애플리케이션들(134)이 초기 기간 동안 중요한 컴퓨팅 리소스들(132)를 동작시키지 않고 그리고/또는 수신하지 않는다. 예를 들어, 이메일 어플리케이션 및/또는 텍스팅 어플리케이션(또는 기타 비-VR 어플리케이션)의 작동은, 예를 들어, 더 많은 컴퓨팅 리소스들(132)이 VR 어플리케이션(120)에 할당되도록하기 위해, 이 초기 기간 동안 정지(일시적으로 멈춤) 또는 느려질 수 있으며, 이는, 이 초기 기간 동안 VR 어플리케이션(120)의 비디오 렌더링 성능을 증가시킬 수 있고, 그 결과, 이 초기 기간 동안 사용자에 의해 경험되는 VR 어플리케이션(120)의 대기 시간을 감소시킬 수 있다. 따라서, 예시적인 실시예(들)에 따르면, 이 초기 기간 동안, 이메일 어플리케이션 및/또는 텍스팅 애플리케이션에 할당되는 컴퓨팅 리소스들이 없거나 적다는 것에 기초하여, 예를 들어, 이메일 어플리케이션은 이메일들을 전송 또는 수신하지 않으며 그리고 텍스팅 어플리케이션은 수신된 텍스트 메시지들을 전송 또는 수신하지 않는다(또는 이 초기 기간 동안 적어도 적은 수의 전자 메일이 송수신되고 그리고 적은 수의 텍스트 메시지들이 송수신된다). 따라서, 예를 들어, 이 초기 기간 동안, 하나 이상의 비-VR 애플리케이션들(이메일, 메시징/텍스팅 어플리케이션 등)의 동작은, 예를 들어, 비디오 렌더링 및/또는 VR 애플리케이션(120) 및/또는 VR 프로세싱(예를 들어, 비디오 렌더링)을 위해 더 많은 리소스가 할당되도록, 중지(예를 들어, 일시적으로 정지/중지)될 수 있다.
깜박임 검출 모듈(714)이 컴퓨팅 디바이스(105)의 사용자에 대한 깜박임 기간의 시작을 검출할 때, 리소스 할당 모듈(716)은, 예를 들어, 눈 깜박임 기간의 적어도 일부 동안 VR 어플리케이션(120)에서 하나 이상의 비-VR 어플리케이션들, 예를 들어, 이메일 어플리케이션 및 텍스팅 어플리케이션으로 컴퓨팅 리소스들(132)의 적어도 일부를 할당할 수 있다. 예를 들어, 사용자는 약 50ms 내지 400ms의 지속 기간, 예를 들어, 평균적으로 약 200ms 내지 300ms의 시간 동안 깜박일 수 있다(예를 들어, 사용자의 눈을 일시적으로 닫거나/감을 수 있음). 이 숫자들은 단지 예시적인 예이며 깜박이는 지속 시간은 다른 시간대일 수 있다. 따라서, 300ms(예시적인 예로서)의 눈 깜박임 기간 동안, 하나 이상의 비-VR 애플리케이션은 프로세싱을 재개할 수 있다. 예를 들어, 이메일 어플리케이션은 다수의 이메일들을 송신 및/또는 수신할 수 있고, 텍스팅/메시징 어플리케이션은 처리 대기중인 다수의 텍스트들 또는 메시지들을 송신 및/또는 수신할 수 있다. 또한, VR 애플리케이션(120)은, (예를 들어, VR 처리/비디오 렌더링을 위해 이전에 사용되었던 리소스들을, 이러한 깜박임 기간 동안 비-VR 애플리케이션에 할당하기 위해) 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링 속도를 감소시킬 수 있고 그리고/또는 동작 또는 VR 렌더링을 일시 정지 또는 일시 중단(또는 유예)할 수 있다. 예시적인 구현에 따르면, 눈 깜박임 기간 동안, VR 애플리케이션(120)의 증가된 대기시간 또는 열화된 성능(또는 비-성능)은 사용자가 감지하지 못하거나/감지할 수 없거나 또는 볼 수 없을 수 있는데, 이는 사용자가 눈 깜박임 기간 동안 자신의 눈을 감았기 때문이다. 눈 깜박임 기간의 종료 시점 또는 그 근방에서, 리소스 할당 모듈(716)은, 예를 들어, VR 애플리케이션(120)이 증가된 양의 컴퓨팅 리소스(132)를 수신하여 VR 애플리케이션(120)/VR 렌더링 모듈(122)이 자신의 비디오 렌더링 속도를 증가시키고 그리고/또는 허용 가능한 비디오 렌더링 속도로 비디오 렌더링을 수행하는 것을 재개하도록 하기 위해, 이메일 어플리케이션 및 텍스팅 어플리케이션(비- VR 어플리케이션(134))으로부터 VR 애플리케이션(120)으로 컴퓨팅 리소스들(132)의 일부를 다시 재할당할 수 있는데, 이는 사용자가 이제 자신의 눈을 뜨고 그리고 VR 어플리케이션(120)에 의한 임의의 대기시간 또는 열화된 성능이 사용자에 의해 검출될 수 있기 때문이다.
도 8은 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(810)은 인코딩된 비디오 신호를 수신하는 단계를 포함할 수 있다. 동작(820)은 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 컴퓨팅 디바이스의 스크린 상에 제1 세트의 디스플레이 프레임들을 디스플레이하기 위해 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하는 단계를 포함할 수 있다. 동작(830)은 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계를 포함할 수 있다. 그리고, 동작(840)은 컴퓨팅 리소스들을 가상 현실 어플리케이션으로부터 눈 깜박임 기간의 적어도 일부분 동안 컴퓨팅 디바이스 상에서 작동하는 하나 이상의 비-가상 현실 어플리케이션에 할당하는 단계를 포함할 수 있다.
도 8에 도시된 방법의 예시적인 구현에 따르면, 추정하는 것은, 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 적어도 검출하는 것; 및 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간을 추정하는 것 중 적어도 하나를 포함할 수 있다.
도 8에 도시된 방법의 예시적인 구현을 따르면, 상기 방법은, 상기 가상 현실 어플리케이션에 의해 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링을 정지시키는 단계; 및 상기 눈 깜박임 기간의 적어도 일부 동안, 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션들에 의해, 하나 이상의 비-비디오 렌더링 작업들을 수행하는 단계를 더 포함할 수 있다.
도 8에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, 상기 가상 현실 어플리케이션에 의해, 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링 속도를 감소시키는 단계; 상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션들로 적어도 일부의 컴퓨팅 리소스들을 할당하는 단계; 및 상기 눈 깜박임 기간의 적어도 일부 동안, 하나 이상의 비-비디오 렌더링 작업들을 상기 컴퓨팅 장치상에서 실행되는 상기 하나 이상의 비-가상 현실 어플리케이션에 의해 수행하는 단계를 더 포함할 수 있다.
도 8에 도시된 방법의 예시적인 구현에 따르면, 상기 방법은, 상기 눈 깜박임 기간의 종료 시점 또는 그 근방에서, 상기 컴퓨팅 디바이스 상에서 실행중인 상기 하나 이상의 비-가상 현실 어플리케이션으로부터 상기 가상 현실 어플리케이션으로 다시 적어도 일부의 컴퓨팅 리소스들을 재-할당하는 단계; 및 상기 가상 현실 어플리케이션에 의해, 비디오 렌더링 속도를 증가시키는 단계를 더 포함할 수 있다.
다른 예시적인 구현에 따르면, 장치는, 적어도 하나의 프로세서 및 컴퓨터 명령어들을 포함하는 적어도 하나의 메모리를 포함할 수 있으며, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 컴퓨터 명령어들은 상기 장치로 하여금 : 인코딩된 비디오 신호를 수신하게 하고; 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 상기 컴퓨팅 디바이스의 스크린상에 디스플레이 프레임들의 제 1 세트를 디스플레이하기 위해 상기 인코딩된 비디오 신호에 기초한 비디오 렌더링을 수행하게 하며; 상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하게 하며; 그리고 상기 눈 깜박임 기간의 적어도 일부 동안 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 실행되는 하나 이상의 비-가상 현실 어플리케이션에 컴퓨팅 리소스들을 할당하도록 한다.
예시적인 구현에서, 센서들(128)(도 1)은 디스플레이 스크린(130) 또는 컴퓨팅 디바이스(105)의 모션, 움직임 또는 가속을 검출할 수 있다. 다른 예시적인 구현에 따르면, 디스플레이 스크린(130)의 모션, 움직임 또는 가속을 검출하는 것에 응답하여, 컴퓨팅 디바이스(105)는 스크린(130)상에 디스플레이된 하나 이상의 디스플레이 이미지들의 시야를 조정(예를 들어, 증가 또는 감소)시킬 수 있고 그리고/또는 컴퓨팅 디바이스(105)는 디스플레이된 이미지들의 프레임 속도를 조정(예를 들어, 증가 또는 감소)할 수 있다. 시야(field of view: FOV)(시계(field of vision)로도 표시됨)에는 주어진 순간에 볼 수 있는 관찰 가능한 세계/환경의 범위가 포함될 수 있다. 예를 들어, VR 경험 내에서, 시야에는 주어진 순간에 디스플레이 상에 나타나는 VR 세계/환경의 범위가 포함될 수 있다.
예시적인 구현에 따르면, 컴퓨팅 디바이스(105)는, 컴퓨팅 디바이스(105)의 사용자의 눈(들) 또는 시선을 추적하고 그리고 사용자가 보고 있는 픽셀 또는 객체(예를 들어, 스크린(130)상의 연관된 픽셀들의 그룹)를 결정할 수 있는 눈 추적 디바이스(142)를 포함할 수 있다.
사용자가 움직이거나, 방향을 바꾸거나, 시야를 바꿀 때, 이후, 시야를 조정(예를 들어, 증가 또는 감소)하는 것은, 적어도 몇몇 경우들에서, 스크린(130) 상에 디스플레이된 디스플레이 이미지들의 블러링 또는 왜곡의 양을 감소시킬 수 있다. 또한, 사용자가 움직일 때 높은 프레임 속도가 불필요할 수 있는데, 이는, 적어도 일부의 경우들에서, 디스플레이 스크린(130)의 그러한 움직임 동안 사용자에게 스크린(130)상에 디스플레이된 이미지들은 보거나 디스플레이된 프레임들/이미지를 흐리게 만들거나 왜곡시킬 수 있다. 따라서, 예를 들어, 그러한 사용자/컴퓨팅 디바이스/스크린 모션 동안 스크린(130)상에 디스플레이된 이러한 디스플레이 프레임들 중 다수가 어떤 방식으로든 흐려지거나 왜곡될 수 있기 때문에, 높은 또는 임계 비디오 렌더링 속도에서 비디오 렌더링을 수행하기 위해 컴퓨팅 디바이스(105)가 상당한 컴퓨팅 리소스들(132)을 소비하는 것은 가치가 없을 수 있다. 따라서, 디스플레이 스크린(130) 또는 컴퓨팅 디바이스의 사용자가 움직이는 시간 동안, 프레임 속도 및/또는 비디오 렌더링 속도는 조정(예를 들어, 증가 또는 감소)될 수 있고, 그리고 시야가 조정(예를 들어, 증가 또는 감소)될 수 있다.
도 9는 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(910)은, 컴퓨팅 디바이스 상에 제공된 가상현실 어플리케이션에 의해, 업데이트 속도로 컴퓨팅 디바이스의 스크린상에 전체 이미지를 업데이트하는 것에 기초하여 제1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다. 동작(920)은 스크린의 모션 또는 움직임을 검출하는 단계를 포함한다. 그리고, 동작(930)은, 검출하는 단계에 기초하여, 업데이트 속도로 이미지의 일부분만을 업데이트함으로써 제2 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 단계를 포함할 수 있다.
도 9의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는, 검출하는 단계에 기초하여, 업데이트 속도로 이미지의 중앙 부분만을 업데이트함으로써 제2 비디오 렌더링 속도에서의 비디오 렌더링을 수행하는 단계를 포함할 수있다.
도 10은 다른 예시적인 구현에 따른 컴퓨팅 디바이스의 동작을 도시하는 흐름도이다. 동작(1010)은, 컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해, 제1 업데이트 속도로 컴퓨팅 디바이스의 스크린 상에 전체 이미지를 업데이트하는 것에 기초하여 제1 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 단계를 포함한다. 동작(1020)은 스크린의 모션 또는 움직임을 검출하는 단계를 포함한다. 그리고, 동작(1030)은, 상기 검출하는 단계에 기초하여, 제1 업데이트 속도로 이미지의 제1 부분을 업데이트함으로써, 그리고 제1 업데이트 속도와 상이한 (예를 들어, 더 크거나 작은) 제2 업데이트 속도로 이미지의 제 2 부분을 업데이트함으로써 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
도 10의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계는, 결정에 기초하여, 제1 업데이트 속도로 이미지의 중앙 부분을 업데이트함으로써, 그리고 제1 업데이트 속도와 상이한 (예를 들어, 더 크거나 작은) 제2 업데이트 속도로 이미지의 주변 부분을 업데이트함으로써 제2 비디오 렌더링 속도로 비디오 렌더링를 수행하는 단계를 포함할 수 있다.
도 10의 방법의 예시적인 구현에 따르면, 제2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계는, 제1 업데이트 속도 및 제1 이미지 해상도에서 이미지의 중앙 부분을 업데이트함으로써, 그리고 제2 업데이트 속도 및 상기 제1 이미지 해상도보다 낮은 제2 이미지 해상도로 상기 이미지의 주변부를 업데이트함으로써, 상기 검출에 기초하여, 제2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함할 수 있다.
도 11은 또 하나의 다른 구현예에 따른 컴퓨팅 디바이스(omputing device)의 동작을 예시하는 흐름도이다. 동작(1110)은, 컴퓨팅 디바이스 상에 제공되는 가상 현실 어플리케이션(virtual reality application)에 의해, 제 1 비디오 렌더링 속도(video rendering rate)에서 비디오 렌더링을 수행하는 것을 포함한다. 동작(1120)은 스크린의 모션(motion) 또는 움직임(movement)을 검출하는 것을 포함한다. 동작(1130)은, 이러한 검출에 근거하여, 제 1 해상도(resolution)에서 이미지(image)의 제 1 부분을 업데이트(updating)함으로써, 그리고 제 1 해상도와는 다른(예를 들어, 제 1 해상도보다 더 크거나 더 작은) 제 2 해상도에서 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도에서 비디오 렌더링을 수행하는 것을 포함한다.
도 11의 방법의 예시적 구현예에서 따르면, 제 1 부분은 이미지의 중앙 부분(central portion)을 포함 수 있고, 제 2 부분은 이미지의 주변 부분(peripheral portion)을 포함할 수 있다.
도 12는 또 하나의 다른 예시적 구현예에 따른 컴퓨팅 디바이스의 동작을 예시하는 흐름도이다. 동작(1210)은 인코딩된 비디오 신호(encoded video signal)를 수신하는 것을 포함할 수 있다. 동작(1220)은, 컴퓨팅 디바이스의 스크린 상에 가상 현실 콘텐츠(virtual reality content)의 디스플레이 프레임(display frame)들의 제 1 세트를 디스플레이하기 위해, 인코딩된 비디오 신호에 근거하여, 컴퓨팅 디바이스 상에 제공되는 가상 현실 어플리케이션에 의해, 비디오 렌더링을 수행하는 것을 포함할 수 있다. 동작(1230)은 스크린의 모션 또는 움직임을 검출하는 것을 포함할 수 있다. 동작(1240)은, 모션 또는 움직임을 검출하는 것에 응답하여, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도(frame rate)를 적어도 일정 기간(period of time) 동안 조정하는 것(예를 들어, 증가시키는 것 또는 감소시키는 것)을 포함할 수 있다.
도 12에 예시된 방법의 예시적 구현예에 따르면, 동작(1240)은, 모션 또는 움직임을 검출하는 것에 응답하여, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 적어도 일정 기간 동안 감소시키는 것을 포함할 수 있다.
도 12에 예시된 방법의 예시적 구현예에 따르면, 동작(1240)은, 모션 또는 움직임을 검출하는 것에 응답하여, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 적어도 일정 기간 동안 증가시키는 것을 포함할 수 있다.
도 12에 예시된 방법의 예시적 구현예에 따르면, 방법은 또한, 컴퓨팅 디바이스의 모션 또는 움직임이 멈추었음을 검출하는 것과; 그리고 컴퓨팅 디바이스의 디스플레이 스크린의 모션 또는 움직임이 멈추었음을 검출하는 것에 응답하여, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 증가시키는 것을 포함할 수 있다.
도 12에 예시된 방법의 예시적 구현예에 따르면, 방법은 또한, 컴퓨팅 디바이스의 디스플레이 스크린의 모션 또는 움직임을 검출한 이후, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 시야(field of view)를 적어도 일정 기간 동안 조정하는 것(예를 들어, 증가시키는 것 또는 감소시키는 것)을 포함할 수 있다.
도 12에 예시된 방법의 예시적 구현예에 따르면, 방법은 또한, 컴퓨팅 디바이스의 디스플레이 스크린의 모션 또는 움직임이 멈추었음을 검출하는 것과; 그리고 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 시야를 조정하는 것(예를 들어, 감소시키는 것 또는 증가시키는 것)을 포함할 수 있다.
예시적 구현예에 따르면, 장치는 적어도 하나의 프로세서 및 적어도 하나의 메모리를 포함할 수 있고, 적어도 하나의 메모리는 컴퓨터 명령들을 포함하며, 컴퓨터 명령들은 적어도 하나의 프로세서에 의해 실행될 때 장치로 하여금: 인코딩된 비디오 신호를 수신하는 것; 컴퓨팅 디바이스의 스크린 상에 가상 현실 콘텐츠의 디스플레이 프레임들의 제 1 세트를 디스플레이하기 위해, 인코딩된 비디오 신호에 근거하여, 컴퓨팅 디바이스 상에 제공되는 가상 현실 어플리케이션에 의해, 비디오 렌더링을 수행하는 것; 디스플레이 디바이스의 모션 또는 움직임을 검출하는 것; 그리고 모션 또는 움직임을 검출하는 것에 응답하여, 스크린 상에 가상 현실 콘텐츠의 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 프레임 속도를 적어도 일정 기간 동안 조정하는 것을 수행하도록 한다.
앞서 언급된 바와 같이, 예시적 사례의 구현예에서, VR 고글(VR goggle)들(110)(도 1)은 입체 이미지(stereoscopic image)를 디스플레이할 수 있는바, 여기서 입체 이미지는 예를 들어, VR 고글들(110) 내의 좌측 구멍(left aperture) 혹은 좌측 눈 개구(left eye opening)를 통해 사용자에 의해 뷰잉(viewing)될 수 있는 좌안 이미지(left eye image)와, 그리고 VR 고글들(110) 내의 우측 구멍(right aperture) 혹은 우측 눈 개구(right eye opening)를 통해 사용자에 의해 뷰잉될 수 있는 우안 이미지(right eye image)를 포함한다. 예시적 구현예에 따르면, 좌안 이미지 및 우안 이미지는 스크린(130) 상에 디스플레이되는 하나 이상의 객체(object)들을 포함할 수 있다. 이러한 객체들은 예를 들어, 하나의 픽셀(pixel)일 수 있거나, 또는 스크린(130) 상에 디스플레이되는 관련된 픽셀들의 그룹일 수 있다. 각각의 객체는 사람, 동물, 물체(thing) 혹은 다른 객체와 같은 임의의 객체일 수 있다. 뷰잉되는 이미지는 우안 이미지 및 좌안 이미지 양쪽 모두에 근거하여 디스플레이될 수 있다. 다양한 깊이감(depth cues)이 사용자에게 깊이 정보를 전달하기 위해 사용될 수 있다(예컨대, 차폐(occlusion)(하나의 객체가 또 하나의 다른 객체를 막는 것 혹은 가리는 것), 크기(size), 원근감(perspective) 등).
예시적 구현예의 경우, 예시적인 입체 이미지에서, 하나 이상의 객체들에 대한 깊이 정보는 또한, 좌측에서 뷰잉되는 객체(또는 '좌측 시청 객체'라 함)(좌안 이미지의 부분)와 우측에서 뷰잉되는 객체(또는 '우측 시청 객체'라 함)(우안 이미지의 부분) 간의 불일치(disparity)(또는 거리(distance)/간격(separation))를 통해 사용자에게 제공될 수 있거나 전달될 수 있다.
수렴(convergence)은 관측되는/뷰잉되는 객체를 사람(사용자)의 눈들이 겨냥하고 있을 때 사람(사용자)의 눈들에 의해 형성되는 각도를 지칭할 수 있다. 조절(accommodation)은 뷰잉되는/관측되는 객체에 사용자의 눈들이 초점을 맞추는 것을 지칭한다. 조절 요구(accommodation demand)는 객체까지의 거리에 반비례한다.
현실 세계에서, 조절 요구와 수렴 요구 간의 충돌(conflict)은 거의 없다. 하지만, 스크린(예컨대, 스크린(130)) 상에 디스플레이되는 VR(가상 현실) 이미지 혹은 입체 이미지에 있어서는, 조절 요구와 수렴 요구 간의 차이 혹은 충돌이 때때로 존재할 수 있다. 디스플레이 스크린에 대해서, 조절 요구는 고정되는데, 왜냐하면 눈들이 디스플레이 스크린 상에 초점이 맞추어지기 때문이다(예를 들어, 눈들로부터 스크린까지의 거리는 고정됨). (VR HMD 시스템에서의 디스플레이는 렌즈들에 의해 형성되는 가상 디스플레이(virtual display)이다. 이러한 경우에 조절 요구는 렌즈들에 의해 형성되는 디스플레이의 가상 이미지까지의 거리이다.) 하지만, 일부 경우들에서, 좌측에서 뷰잉되는 이미지와 우측에서 뷰잉되는 이미지 간의 불일치(혹은 거리)는 다양한 수렴 요구를 생성할 수 있고, 일부 경우들에서, 이러한 수렴 요구는 조절 요구와는 다를 수 있다. 조절 요구와 수렴 요구 간의 이러한 충돌은 사용자에 대해 긴장(tension) 및 불편한 느낌, 혹은 눈의 피로(eye strain)를 생성할 수 있다.
도 13은 예시적 구현예에 따른 조절 요구와 수렴 요구 간의 예시적인 충돌을 나타내는 도면이다. 스테레오(혹은 입체) 이미지(1312)가 스크린(130) 상에 디스플레이될 수 있다. 이미지(1312)는 다수의 객체들을 포함할 수 있고, 여기서 각각의 객체는 이미지(1312)의 일부이며, 사람, 동물, 물체 혹은 임의의 다른 객체를 디스플레이할 수 있는 하나의 픽셀 혹은 관련된 픽셀들의 그룹을 포함할 수 있다. 스크린(130) 상에 디스플레이되는 예시적 사례의 입체 이미지(1312)에서, 객체들은 예를 들어, 강아지 객체(dog object)(1318), 우산 객체(umbrella object)(1316), 및 공룡 객체(dinosaur object)(1314)를 포함할 수 있다. 이러한 것들은 단지 일부 예시적 객체들이다. 사용자의 눈들이 도 13에 제시되어 있는데, 여기서 사용자의 눈들은 본 예시적 사례에서 사용자가 공룡 객체(1314)를 뷰잉하고 있음을 표시하기 위해 겨냥(aiming) 및 수렴(converging)하고 있는 좌측 눈(1310L) 및 우측 눈(1310R)을 포함한다.
입체 이미지(1312)를 제시하기 위해, 사용자의 좌측 눈(1310L)에는 좌안 이미지가 보여지고, 사용자의 우측 눈(1310R)에는 우안 이미지가 보여진다. 좌안 이미지는 좌측 강아지 객체(1318L), 좌측 우산 객체(미도시), 및 좌측 공룡 객체(1314L)를 포함한다. 우안 이미지는 우측 강아지 객체(1318R), 우측 우산 객체(미도시), 및 우측 공룡 객체(1314R)를 포함한다.
도 13에 제시된 예시적 사례에 따르면, 좌측 우산 객체와 우측 우산 객체(도 13에서는 미도시)는 동일한 위치에 중첩(superimpose)되어 있는데, 이것이 의미하는 바는 좌측 우산 객체와 우측 우산 객체 간의 불일치가 없음을 의미한다. 좌측 우산 객체와 우측 우산 객체(1316) 간의 불일치가 없기 때문에, 우산(1316)은 스크린(130)의 거리/깊이에 위치한다. 사용자는 전형적으로 스크린(130) 상에 초점을 맞출 것이고(조절), 이에 따라 이미지의 객체들은 초점이 맞추어진 상태(in-focus)에 있을 것이다. 따라서, 이것이 의미하는 바는, 도 13에서, 우산 객체(1316)에 대한 수렴 요구가, 현실 세계에서와 마찬가지로, 조절 요구와 동일하게 됨을 의미한다. 따라서, 사용자가 우산 객체(1316)를 뷰잉하는 경우 충돌 혹은 긴장이 없는데, 왜냐하면 수렴 요구가 조절 요구와 동일하기 때문이다(이러한 예에서, 사용자는 우산 객체(1316)를 뷰잉하기 위해서 스크린(130)의 깊이에서 초점을 맞추고 수렴하는데, 왜냐하면 도 13에서 제시되는 바와 같이 우산 객체(1316)에 대한 불일치가 존재하지 않기 때문임).
도 13에서 제시되는 예시적 구현예에 따르면, 강아지 객체(1318)에 대한 교차 불일치(crossed disparity)가 존재한다. 교차 불일치가 의미하는 것은 우측 눈의 강아지 객체(1318R)가 좌측편(left side) 상에서 보여지고 좌측 눈의 강아지 객체(1318L)가 우측편(right side) 상에 있는 것을 의미한다. 이러한 교차 불일치의 경우(본 예에서는 강아지 객체(1318)), 객체는 스크린(130) 앞에 있는 것처럼 보일 것이고, 혹은 스크린(130)보다 뷰어(viewer)에 더 가까이 있는 것처럼(스크린(130)보다 더 작은 깊이에 있는 것처럼) 보일 것이다.
또한, 도 13에 제시된 예시적 구현예에 따르면, 공룡 객체(1314)에 대해 비교차 불일치(uncrossed disparity)(1320)(좌측 공룡 객체(1314L)와 우측 공룡 객체(1314R) 간의 거리)가 존재한다. 공룡 객체에 대한 이러한 불일치(1320)는 비교차 불일치인데, 왜냐하면 우측 눈의 공룡 객체(1314R)는 우측편 상에 있고, 좌측 눈의 공룡 객체(1314L)는 좌측편 상에 있기 때문이다. 이것이 의미하는 것은 공룡 객체(1314)가 스크린(130) 뒤에 있는 것처럼(스크린(130)보다 더 멀리 떨어져 있는 것처럼 또는 스크린(130)보다 더 큰 깊이에 있는 것처럼) 사용자에게 보일 것임을 의미한다. 따라서, 예를 들어, 사용자가 공룡 객체(1314)를 보는 경우 또는 강아지 객체(1318)를 보는 경우, 조절 요구와 수렴 요구 간의 충돌 혹은 긴장이 존재할 것이다. 이것은 예를 들어, 공룡 객체(1314)를 뷰잉하는 사용자는 전형적으로 스크린(130) 상에 초점을 맞추고 있을 것이고 이에 따라 공룡 객체(1314)는 초점이 맞추어진 상태에 있을 것이지만 불일치(1320)로 인해 수렴 요구는 이와는 다르기 때문이다.
도 13에 제시되는 예에서, 눈 추적 디바이스(eye tracking device)(142)(도 1)는 사용자가 공룡 객체(1314)를 뷰잉하고 있음을 결정하기 위해 디스플레이 디바이스(105) 내에서 사용될 수 있다. 언급된 바와 같이, 사용자가 공룡 객체(1314)를 뷰잉하는 경우 공룡 객체(1314)에 대한 스크린(130) 상의 초점 및 불일치(1320)(혹은 좌측 공룡 객체(1314L)와 우측 공룡 객체(1314R) 간의 거리)로 인해 조절 요구와 수렴 요구 간의 충돌 혹은 긴장이 존재할 것이다. 이러한 충돌 혹은 긴장은 사용자에게 매우 불편할 수 있고, 이러한 충돌을 감소시키는 것이 바람직할 수 있는데, 특히 이러한 충돌이 이미지(1312) 내의 다른 객체들(예컨대, 우산 객체(1316), 강아지 객체(1318))과 비교해, 뷰잉되는 객체(예컨대, 공룡 객체(1314))의 상대적인 깊이를 유지하면서 감소될 수 있다면, 바람직할 수 있다. 상대적인 깊이가 나타내는 것은 강아지 객체(1318)가 가장 가까이 있는 객체(이러한 객체들 중 가장 작은 깊이를 갖는 객체)로서 사용자에게 보여지고, 그 뒤에 우산 객체(1316)가 있는 것으로 사용자에게 보여지고, 그 뒤에 사용자로부터 가장 멀리 있는 객체(이러한 객체들 중 가장 큰 깊이를 갖는 객체)로서 공룡 객체(1314)가 사용자에게 보여지는 것을 나타낸다.
예시적인 사례의 구현예에 따르면, 눈 추적 디바이스(142)(도 1)는 사용자의 응시(gaze)의 각도(사용자가 뷰잉하고 있는/바라보고 있는 각도 혹은 방향)를 결정할 수 있다. 또한, 예를 들어, VR 어플리케이션(120)은, 사용자가 뷰잉하고 있는 객체를 결정하기 위해서, 사용자의 응시의 각도에서 3D 장면(3D scene)에 투사(project) 혹은 레이캐스트(raycast)를 행하여 레이캐스트(raycast)와 교차(intersect)하는 객체를 결정할 수 있다.
따라서, 예시적 구현예에 따르면, 뷰잉되는 객체에 대한 조절 요구와 수렴 요구 간의 충돌/긴장을 감소시키기 위한 기법들이 설명된다. 예시적 구현예에 따르면, 충돌에서의 이러한 감소는 예를 들어, 이미지 내의 다른 객체들에 대한 뷰잉되는 객체의 상대적인 깊이를 유지하면서, 아울러 다른 물체들 간의 상대적인 깊이를 유지하면서, 수행될 수 있다.
예시적 구현예에 따르면, 좌측에서 뷰잉되는 객체(예컨대, 좌측 공룡 객체(1314L))와 우측에서 뷰잉되는 객체(예컨대, 우측 공룡 객체(1314R)) 간의 불일치(1320)가, 예를 들어, 거리(예컨대, 인치(inches)) 단위로, 또는 픽셀 단위로, 측정, 계산 혹은 결정될 수 있다. 눈깜박임 검출 모듈(blink detection module)(714)은 사용자의 눈 깜박임 기간(eye blinking period)의 시작을 검출할 수 있다. 그 다음에, 컴퓨팅 디바이스(105)는, 좌측에서 뷰잉되는 객체(예컨대, 1314L)와 우측에서 뷰잉되는 객체(예컨대, 1314R) 간의 불일치를 감소시키기 위해서, 눈 깜박임 기간 동안, 우안 이미지와 좌안 이미지 중 하나 혹은 양쪽 모두를 불일치(혹은 불일치 거리)만큼 이동(shift)시킬 수 있다. 예를 들어, 충돌/긴장을 감소시키기 위해서, 좌안 이미지만이 이동될 수 있거나, 또는 우안 이미지만이 이동될 수 있거나, 또는 좌안 이미지와 우안 이미지 양쪽 모두가 이동될 수 있다. 일부 경우들에서, 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 중 하나 혹은 양쪽 모두는 서로를 향해 이동될 수 있고, 그리고/또는 불일치가 제거되도록 이동될 수 있다(이것은 우측에서 뷰잉되는 객체와 좌측에서 뷰잉되는 객체가 동일한 위치에서 중첩될 때 달성됨). 좌안 이미지 및/또는 우안 이미지가 불일치(불일치 양(disparity amount))만큼 이동되었다면, 이것은 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체(예컨대, 1314L, 1314R) 간의 긴장/충돌을 감소시킬 것이다(그리고 만약 충분히 이동되었다면 제거되게 됨). 이와 동시에 본 경우에서의 다른 객체들(예를 들어, 우산 객체와 강아지 객체)의 불일치도 이에 대응하여 변할 것이고, 이에 따라 공룡 객체에 대한 이들의 상대적인 디스플레이되는 깊이는 유지될 것이다.
예시적 구현예에 따르면, 좌안 이미지 및 우안 이미지의 이동은 유리하게는 눈깜박임 기간 동안 수행될 수 있고, 이에 따라 이러한 변화는 예를 들어 사용자에 의해 검출되지 않을 수 있거나 대부분 검출되지 않을 수 있다. 또한, 예시적 구현예에서, 전체 좌안 이미지 및 전체 우안 이미지(예를 들어, 여기에는 모든 이미지들이 포함됨)는 뷰잉되는 객체의 불일치(1320)를 감소시키기 위해서 이동될 수 있으며, 그리고 또한 이에 따른 이미지(1312) 내의 객체들의 상대적인 깊이는 유지되게 될 것이다. 따라서, 두 개의 이미지들(좌안 이미지 및/또는 우안 이미지)은 뷰잉되는 객체에 대한 다른 객체들의 상대적인 깊이를 유지시키도록 전체적으로 이동돼야만 한다. 하지만, 각각의 객체의 절대적인 깊이는 이러한 이동에 근거하여 전형적으로 변할 것이다. 이것이 의미하는 바는, 이미지(1312) 상의 좌측 객체 및 우측 객체(이들은 각각 좌안 이미지 및 우안 이미지의 부분임) 모두가 좌측 공룡 객체 및 우측 공룡 객체(1314L, 1314R)가 각각 이동되는 양과 동일한 양만큼 이동될 것임을 의미한다. 따라서, 예를 들어, 좌측 우산 객체(1316L) 및/또는 우측 우산 객체(1316R)가 또한 (공룡 객체(1314)에 대해 측정된 거리 불일치(1320)만큼) 이동될 것이고, 그리고 이제는 이들 간의 불일치를 가질 것이다. 유사하게, 좌측 강아지 객체(1318L) 및/또는 우측 강아지 객체(1318R)가 (공룡 객체(1314)에 대해 측정된) 불일치(1320)와 동등한 거리만큼 이동될 것이고, 그리고 좌측 강아지 객체(1318L)와 우측 강아지 객체(1318R) 간의 더 큰 불일치를 가질 수 있다. 이것은 지각적으로 수용할 수 있는 것인데, 왜냐하면 단기적 목표(short-term goal)가 단지 공룡 객체(1314)를 사용자가 뷰잉하는 동안만 그 뷰잉되는 공룡 객체(1314)에 대한 조절 요구와 수렴 요구 간의 충돌을 감소시키려는 것이기 때문이다.
도 14는 예시적 구현예에 따른, 뷰잉되는 객체에 대한 조절 요구와 수렴 요구 간의 충돌이 감소 혹은 제거된 예를 나타내는 도면이다. 도 14에 제시된 이러한 예에서, 좌안 이미지 및/또는 우안 이미지는, (적어도 일부 경우들에서) 좌측 공룡 객체(1314L)와 우측 공룡 객체(1314R) 간의 불일치(1320)(도 13)를 제거하도록, 이동되었는바, 예를 들어, 눈깜박임 기간 동안 좌안 이미지는 우측으로 이동되었고 그리고/또는 우안 이미지는 좌측으로 이동되었다. 따라서, 도 14에서 제시되는 바와 같이, 이동 이후에, 좌측 공룡 객체 및 우측 공룡 객체(1314L, 1314R)는 동일한 위치에서 중첩되고, 이것은 불일치(1320)를 제거하며, 공룡이 스크린(130)의 깊이에 위치하는 외관(appearance)을 제공한다. 따라서, 도 14에서 제시되는 바와 같이, 불일치(1320)에 근거하여 좌안 이미지 및/또는 우안 이미지를 이동시킨 이후에, 공룡 객체(1314)에 대한 수렴 요구와 조절 요구는 동일하다(이러한 요구들 간의 충돌/긴장이 없음). 또한, 이러한 예시적 사례에서, 이제는 좌측 우산 객체와 우측 우산 객체(1316L, 1316R) 간의 교차 불일치가 존재하고(예를 들어, 이것은 이제 우산 객체(1316)가 스크린(130)보다 더 가깝게 있는 것처럼 보이게 함), 그리고 좌측 강아지 객체와 우측 강아지 객체(1318L, 1318R) 간의 교차 불일치는 도 13에서 이러한 객체들에 대해 보여진 불일치보다 훨씬 더 크다. 언급된 바와 같이, 하나 이상의 뷰잉되지 않는 객체에 대한 불일치의 증가는 허용가능하고, 사실 이것은 바람직한 것인데, 왜냐하면 이러한 예시적 사례에서 목표 혹은 목적은 장면 내의 다양한 객체들 간의 상대적인 깊이들을 유지하면서, 그 뷰잉되는 공룡 객체(1314)에 대한 불일치를 감소시키려는 것 그리고 일부 경우들에서는 제거하려는 것이기 때문이다.
예시적 구현예에서, VR 어플리케이션은 3D 게임 엔진(3D game engine)을 포함할 수 있다. VR 어플리케이션은 불일치의 감소/제거를 요구하는 요청을, 어플리케이션 프로그래밍 인터페이스(Application Programming Interface, API)를 통해, 3D 게임 엔진으로 전송할 수 있고, 그리고 불일치(1320)의 양을 포함할 수 있다. 예시적 구현예에서, 3D 게임 엔진은 불일치를 알 수 있거나 혹은 불일치를 결정할 수 있으며, VR 어플리케이션은 사용자 응시의 방향을 3D 게임 엔진으로 전송할 수 있다. 그 다음에 3D 게임 엔진은 뷰잉되는 객체 및 그 불일치를 식별하기 위해 응시의 방향을 사용할 수 있다. 그 다음에, 3D 게임 엔진은 뷰잉되는 객체에 대한 이러한 불일치를 감소시키거나 제거하기 위해 좌측 및 우안 이미지(들)를 얼마만큼 조정해야/이동시켜야하는 지를 결정할 수 있다. 그 다음에, VR 어플리케이션 및/또는 3D 게임 엔진은 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 이동시킴으로써 불일치를 감소시킬 수 있다(혹은 심지어 제거할 수 있음).
또한, 예시적 구현예에 따르면, 디스플레이되는 객체의 크기는 좌측 및/또는 우측 이미지들의 이동에 근거하여 변하지 않는다. 따라서, 뷰잉되는 객체의 지각되는 절대적인 거리는 절대적인 불일치에서의 변경에 의해 영향을 받지 않고, 그리고 고정된 상대적인 깊이(이미지 내의 다른 객체들에 대한 상대적인 깊이)는 또한 디스플레이되는 공간의 안정된 지각(perception)을 지원한다.
앞에서 언급된 바와 같이, 좌안 이미지 및/또는 우안 이미지는 불일치를 감소시키기 위해 혹은 심지어 제거하기 위해 예를 들어, 눈 깜박임 기간 동안 이동될 수 있고, 이에 따라 이러한 이동은 사용자에 의해 검출되지 않는다. 또 하나의 다른 예시적 구현예에 따르면, 좌안 이미지 및/또는 우안 이미지는 복수의 프레임들에 걸쳐 이동 혹은 이미지 조정이 점진적으로 수행될 수 있도록 하기 위해서 사용자가 사용자의 눈들을 개방시키고 있을 때(눈깜박임이 없는 기간(non-blinking period) 동안) 복수의 프레임들 각각에 대해서 불일치(1320)의 일부씩 이동될 수 있고, 이에 따라 (눈깜박임이 없는 기간 동안) 이러한 이동 혹은 이미지 조정은 사용자에게 덜 눈에 띌 것이다. 예를 들어, 만약 불일치가 1 인치라면, 우안 이미지는 1인치의 이동을 제공하기 위해서 100개의 프레임들에 대한 각각의 프레임에 대해 좌측으로 0.01 인치씩 이동될 수 있고, 이에 따라 좌측 및 우측 공룡 객체들은 불일치(1320)를 감소시키도록 혹은 심지어 가능하게는 제거하도록 동일한 위치(또는 대략 동일한 위치)에서 중첩될 것이다. 유사하게, 좌안 이미지 및 우안 이미지는 각각, 좌측 및 우측 공룡 객체들(1314L, 1314R)이 가까워질 때까지 또는 불일치(720)가 제거돼버릴 때까지 혹은 적어도 감소돼버릴 때까지 100개의 프레임들의 각각의 프레임에 대해 서로를 향해 0.005 인치씩 이동될 수 있다.
또한, 또 하나의 다른 예시적 구현예에 따르면, 좌안 이미지 및/또는 우안 이미지는, (예를 들어, 불일치를 감소시키기 시작하도록) 눈깜박임이 없는 기간 동안 불일치(1320)의 일부(예컨대, 30%)만큼 이동될 수 있고, 또는 사용자가 새로운 객체를 뷰잉하고 있음 혹은 뷰잉되는 객체가 움직였음을 눈 추적 디바이스(142)가 결정한 때 혹은 결정한 이후 복수의 프레임들에 걸쳐 불일치를 감소시킬 수 있다. 그리고, 그 다음에 눈 깜박임 기간의 시작이 검출된 이후, 눈 깜박임의 덮인 상태(cover)에서 불일치(720)를 더 감소시키도록 좌측 및 우안 이미지들의 이동이 완료될 수 있다.
예시적 구현예에 따르면, VR 어플리케이션 혹은 컴퓨팅 디바이스는 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 눈깜박임 기간 전에 부분적으로 감소시키기 위해 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 눈 깜박임 기간 이전에 제 1 (느린) 이동 속도(shifting rate)에서 (느리게) 이동시킬 수 있다. 그 다음에, 눈깜박임 기간의 시작이 검출된다. VR 어플리케이션 혹은 컴퓨팅 디바이스는 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 더 감소시키기 위해 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 눈 깜박임 기간 동안 제 2 (더 빠른) 이동 속도에서 이동시키는 것을 계속할 수 있고, 여기서 제 2 이동 속도는 제 1 이동 속도보다 더 빠르다. 따라서, VR 어플리케이션은, 눈깜박임 기간 이전에 좌안 이미지 및/또는 우안 이미지를 제 1 이동 속도에서 느리게 이동시킬 수 있고, 이에 따라 이러한 이미지 이동은 사용자에게 덜 지각될 수 있으며, 그 다음에 눈깜박임 기간 동안 제 2 (더 빠른) 이동 속도에서 이동을 행함으로써 이미지의 이동을 완료할 수 있다. 따라서, 더 빠른 이동 속도는 눈깜박임 기간 동안 사용될 수 있는데, 왜냐하면 사용자는 이러한 눈깜박임 기간 동안 이미지/스크린을 보고 있지 않기 때문이다. 예를 들어, 이미지들은 눈깜박임 기간 전에는 프레임 당 .005 인치의 제 1 이동 속도에서 이동될 수 있으며(예를 들어, 이동의 일부분을 수행함), 그 다음에 (예를 들어, 눈깜박임 기간 동안 이동을 완료하기 위해) 눈깜박임 기간 동안 프레임 당 .05 인치의 제 2 이동 속도에서 이동을 행할 수 있다. 이러한 것들은 단지 예시를 위해 사용되는 몇 가지 예시적 수치일 뿐이며, 다른 이동 속도들이 사용될 수 있다.
이러한 프로세스는 사용자가 새로운 객체를 뷰잉할 때마다, 또는 객체가 위치를 옮긴 경우, 또는 뷰잉되는 객체에 대한 불일치가 불일치를 변경시키는 경우, 혹은 주기적으로, 예를 들어 .5초마다, 반복될 수 있다. 비디오는 예를 들어, 시간 경과에 따라 움직인 복수의 객체들을 보여줄 수 있다. 예를 들어, 주기적으로, 예컨대, 0.1초마다, 0.2초마다, 0.5초마다, 0.7초마다, 혹은 다른 기간마다, 눈 추적 디바이스(142)는 사용자가 뷰잉하고 있는 객체(이것은 새로운 객체일 수 있거나, 또는 동일한 객체일 수 있으며, 여기서 불일치는 이전의 불일치 측정으로부터 변경됐을 수 있음)를 식별할 수 있다. 컴퓨팅 디바이스(105)는 이러한 뷰잉되는 객체에 대한 불일치(1320)를 측정할 수 있다. 눈깜박임 검출 모듈(715)은 눈 깜박임 기간의 시작을 검출할 수 있다. 컴퓨팅 디바이스(105)는 뷰잉되는 객체에 대한 불일치를 감소시키기 위해 그리고/또는 제거하기 위해 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 눈 깜박임 기간 동안 이동시킬 수 있다.
예시적 구현예에 따르면, 눈 깜박임 기간의 시작을 검출한 이후에, 컴퓨팅 시스템은 사용자의 비-지배적 눈(non-dominant eye)의 이미지만을 이동시킬 수 있다. 사용자의 눈 지배성(eye dominance)은 눈 추적 디바이스(142)에 의해 확립될 수 있다. 예를 들어, 눈 추적 디바이스(142)는 교정 국면(calibration phase) 동안 사용자의 눈 움직임들(좌측 눈 및 우측 눈 양쪽 모두의 움직임들)을 기록(record)할 수 있는데, 이러한 교정 국면 동안 타겟들(targets)/객체들은 측면으로 아울러 깊이에 있어 급속하게 이동된다. 예시적 사례의 구현예에서, 눈 추적 디바이스(142)는 어떤 눈이 도약 움직임(saccadic movements)을 사용하여 먼저 새로운 타겟 위치로 움직이고 있는지 그리고 지배적 눈이 될 것인지를 결정할 수 있다. 따라서, 만약 이미지(들)의 이동이 눈깜박임이 없는 기간 동안(사용자의 눈들이 개방되어 있는 때) 수행된다면, 비-지배적 눈의 이미지만을 이동시키는 것은 이로울 수 있는데, 왜냐하면 예를 들어, 단지 비-지배적 눈의 이미지만이 이동되고 있는 동안 지배적 눈은 정적 이미지에 고정될 것이므로 비 지배적 눈에서의 이러한 이미지 움직임은 덜 눈에 띌 것이기 때문이다. 따라서, 이미지 이동의 모두 부분 혹은 일부분이 예를 들어, 눈깜박임이 없는 기간 동안, 불일치의 감소/제거를 위해 수행될 수 있는바, 이것은 비-지배적 눈에 대한 이미지만을 이동시킴으로써, 그리고/또는 지배적 눈의 이미지의 이동량(shift amount)보다 더 많은 이동량만큼 비-지배적 눈에 대한 이미지를 이동시킴으로써, 수행될 수 있다.
도 15는 예시적 구현예에 따른 컴퓨팅 디바이스의 동작을 예시하는 흐름도이다. 동작(1510)은 우안 이미지 및 좌안 이미지를 포함하는 입체 이미지를 컴퓨팅 디바이스의 스크린 상에 디스플레이하는 것을 포함하고, 여기서 좌안 이미지 및 우안 이미지는 각각 하나 이상의 객체들을 묘사(depicting)한다. 동작(1510)은 컴퓨팅 디바이스의 사용자에 의해 뷰잉되는 임의의 뷰잉되는 객체를 결정하는 것을 포함하고, 여기서 뷰잉되는 객체는, 좌안 이미지의 부분인 좌측에서 뷰잉되는 객체 및 우안 이미지의 부분인 우측에서 뷰잉되는 객체를 포함한다. 동작(1530)은 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 계산 혹은 측정하는 것을 포함한다. 동작(1540)은 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 것을 포함한다. 그리고, 동작(1550)은 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 감소시키기 위해 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 눈 깜박임 기간 동안 이동시키는 것을 포함한다.
도 15의 방법의 예시적 구현예에 따르면, 이동은 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 제거하기 위해 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 눈 깜박임 기간 동안 이동시키는 것을 포함할 수 있다.
도 15의 방법의 예시적 구현예에 따르면, 이동은, 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 감소시키기 위해서 눈 깜박임 기간 이전에 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 이동시키는 것을 시작하는 것; 그리고 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 더 감소시키기 위해서 눈 깜박임 기간 동안 좌안 이미지와 우안 이미지 중 하나 혹은 양쪽 모두를 이동시키는 것을 계속하는 것을 포함할 수 있다.
도 15의 방법의 예시적 구현예에 따르면, 방법은 또한, 사용자의 눈들 중 어떤 눈이 비-지배적 눈인지를 결정하는 것, 그리고 좌측에서 뷰잉되는 객체와 우측에서 뷰잉되는 객체 간의 불일치를 감소시키기 위해 사용자의 비-지배적 눈의 눈 이미지만을 눈깜박임이 없는 기간 동안 이동시키는 것을 포함할 수 있다.
도 15의 방법의 예시적 구현예에 따르면, 뷰잉되는 객체는 제 1 뷰잉되는 객체를 포함하고, 입체 이미지는 제 1 입체 이미지를 포함하고, 눈 깜박임 기간은 제 1 눈 깜박임 기간을 포함하며, 방법은 또한, 제 2 우안 이미지 및 제 2 좌안 이미지를 포함하는 제 2 입체 이미지를 컴퓨팅 디바이스의 스크린 상에 디스플레이하는 것; 컴퓨팅 디바이스의 사용자에 의해 뷰잉되는 제 2 뷰잉되는 객체를 결정하는 것(여기서 제 2 뷰잉되는 객체는, 제 2 좌안 이미지의 부분인 제 2 좌측에서 뷰잉되는 객체 및 제 2 우안 이미지의 부분인 제 2 우측에서 뷰잉되는 객체를 포함함); 제 2 좌측에서 뷰잉되는 객체와 제 2 우측에서 뷰잉되는 객체 간의 불일치를 측정하는 것; 컴퓨팅 디바이스의 사용자의 제 2 눈 깜박임 기간의 시작을 검출하는 것; 제 2 좌측에서 뷰잉되는 객체와 제 2 우측에서 뷰잉되는 객체 간의 불일치를 감소시키기 위해 제 2 좌안 이미지와 제 2 우안 이미지 중 하나 혹은 양쪽 모두를 제 2 눈 깜박임 기간 동안 이동시키는 것을 포함한다.
도 16은 본 명세서에서 설명되는 기법들과 함께 사용될 수 있는 일반적인 컴퓨터 디바이스(1600) 및 일반적인 모바일 컴퓨터 디바이스(1650)의 예를 보여준다. 컴퓨팅 디바이스(1600)는 랩탑, 데스크탑, 워크스테이션, 개인용 디지털 보조기기, 서버, 블레이드 서버, 메인프레임, 및 다른 적절한 컴퓨터와 같은 디지털 컴퓨터들의 다양한 형태들을 나타내도록 의도된 것이다. 컴퓨팅 디바이스(1650)는 개인용 디지털 보조기기, 셀룰러 전화기, 스마트폰, 및 다른 유사한 컴퓨팅 디바이스와 같은 모바일 디바이스들의 다양한 형태들을 나타내도록 의도된 것이다. 여기서 제시되는 컴포넌트들, 이들의 연결 및 관계, 그리고 이들의 기능은 단지 예시적인 것이 되도록 의도된 것이지, 본 문서에서 설명 및/또는 청구되는 본 발명의 구현예들을 한정하도록 의도된 것이 아니다.
컴퓨팅 디바이스(1600)는 프로세서(1602), 메모리(1604), 저장 디바이스(1606), 메모리(1604) 및 고속 확장 포트(1610)에 연결되는 고속 인터페이스(1608), 그리고 저속 버스(1614) 및 저장 디바이스(1606)에 연결되는 저속 인터페이스(1612)를 포함한다. 컴포넌트들(1602, 1604, 1606, 1608, 1610, 및 1612)은 다양한 버스들을 사용하여 상호연결되고, 그리고 공통 마더보드 상에 장착될 수 있고, 또는 적절하게 다른 방식으로 장착될 수 있다. 프로세서(1602)는, 고속 인터페이스(1608)에 결합된 디스플레이(1616)와 같은 외부 입력/출력 디바이스 상에 GUI를 위한 그래픽 정보를 디스플레이하기 위해서, 컴퓨팅 디바이스(1600) 내에서의 실행을 위한 명령들(여기에는 메모리(1604) 내에 저장된 명령들 혹은 저장 디바이스(1606) 상에 저장된 명령들이 포함됨)을 프로세싱할 수 있다. 다른 구현예들에서는, 복수의 프로세서들 및/또는 복수의 버스들이 복수의 메모리들 및 다양한 타입의 메모리와 함께 적절하게 사용될 수 있다. 또한, 복수의 컴퓨팅 디바이스들(1600)은 연결될 수 있고, 여기서 각각의 디바이스는 (예를 들어, 서버 뱅크로서, 블레이드 서버들의 그룹으로서, 혹은 멀티-프로세서 시스템으로서) 필요한 동작들의 일부분들을 제공한다.
메모리(1604)는 컴퓨팅 디바이스(1600) 내의 정보를 저장한다. 일 구현예에서, 메모리(1604)는 휘발성 메모리 유닛 혹은 유닛들이다. 또 하나의 다른 구현예에서, 메모리(1604)는 비-휘발성 메모리 유닛 혹은 유닛들이다. 메모리(1604)는 또한 자기 디스크 혹은 광학 디스크와 같은 컴퓨터-판독가능 매체의 또 하나의 다른 형태일 수 있다.
저장 디바이스(1606)는 컴퓨팅 디바이스(1600)를 위한 대용량 저장소를 제공할 수 있다. 일 구현예에서, 저장 디바이스(1606)는 플로피 디스크 디바이스, 하드 디스크 디바이스, 광학 디스크 디바이스 혹은 테이프 디바이스, 플래시 메모리 혹은 다른 유사한 솔리드 스테이트 메모리 디바이스, 또는 디바이스들의 어레이(여기에는 저장 영역 네트워크 혹은 다른 구성들 내의 디바이스들이 포함됨)와 같은 컴퓨터-판독가능 매체일 수 있거나 컴퓨터-판독가능 매체를 포함할 수 있다. 컴퓨터 프로그램 제품은 정보 캐리어에 실체적으로(tangibly) 구현될 수 있다. 컴퓨터 프로그램 제품은 또한 명령들을 포함할 수 있는데, 여기서 명령들은 그 실행시 앞서 설명된 것들과 같은 하나 이상의 방법들을 수행한다. 정보 캐리어는 메모리(1604), 저장 디바이스(1606), 혹은 프로세서(1602) 상의 메모리와 같은 컴퓨터-판독가능 매체 또는 머신-판독가능 매체이다.
고속 제어기(1608)는 컴퓨팅 디바이스(1600)를 위한 대역폭-집중 동작들을 관리하고, 반면 저속 제어기(1612)는 더 낮은 대역폭-집중 동작들을 관리한다. 기능들의 이러한 할당은 단지 예시적인 것이다. 일 구현예에서, 고속 제어기(1608)는 메모리(1604)에 결합되고, (예를 들어, 그래픽 프로세서 혹은 가속기를 통해) 디스플레이(1616)에 결합되고, 그리고 다양한 확장 카드들(미도시)을 수용할 수 있는 고속 확장 포트들(1610)에 결합된다. 이러한 구현예에서, 저속 제어기(1612)는 저장 디바이스(1606) 및 저속 확장 포트(1614)에 결합된다. 다양한 통신 포트들(예를 들어, USB, 블루투스, 이더넷, 무선 이더넷)을 포함할 수 있는 저속 확장 포트는 하나 이상의 입력/출력 디바이스들에 결합될 수 있는데, 예를 들어, 키보드, 포인팅 디바이스, 스캐너, 또는 (예를 들어, 네트워크 어댑터를 통해) 스위치 혹은 라우터와 같은 네트워킹 디바이스에 결합될 수 있다.
컴퓨팅 디바이스(1600)는 도면에서 제시되는 바와 같이 여러 가지 다양한 형태들로 구현될 수 있다. 예를 들어, 컴퓨팅 디바이스(1600)는 표준 서버(1620)로서 구현될 수 있거나, 또는 이러한 서버들의 그룹으로 여러 번 구현될 수 있다. 컴퓨팅 디바이스(1600)는 또한 랙 서버 시스템(1624)의 일부로서 구현될 수 있다. 추가적으로, 컴퓨팅 디바이스(1600)는 랩탑 컴퓨터(1622)와 같은 개인용 컴퓨터 내에 구현될 수 있다. 대안적으로, 컴퓨팅 디바이스(1600)로부터의 컴포넌트들은 디바이스(1650)와 같은 모바일 디바이스(미도시) 내의 다른 컴포넌트들과 결합될 수 있다. 이러한 디바이스들 각각은 컴퓨팅 디바이스(1600, 1650) 중 하나 이상을 포함할 수 있고, 전체 시스템은 서로 통신하는 복수의 컴퓨팅 디바이스들(1600, 1650)로 구성될 수 있다.
컴퓨팅 디바이스(1650)는 다른 컴포넌트들 중에서도, 프로세서(1652), 메모리(1664), 디스플레이(1654)와 같은 입력/출력 디바이스, 통신 인터페이스(1666), 및 송수신기(1668)를 포함한다. 디바이스(1650)에는 또한, 추가적인 저장소를 제공하기 위해 마이크로드라이브 혹은 다른 디바이스와 같은 저장 디바이스가 제공될 수 있다. 컴포넌트들(1650, 1652, 1664, 1654, 1666, 및 1668) 각각은 다양한 버스들을 사용하여 상호연결되고, 그리고 컴포넌트들 중 수개의 컴포넌트들은 공통 마더보드 상에 장착될 수 있거나, 또는 적절하게 다른 방식으로 장착될 수 있다.
프로세서(1652)는 컴퓨팅 디바이스(1650) 내의 명령들(여기에는 메모리(1664)에 저장되는 명령들이 포함됨)을 실행할 수 있다. 프로세서는 별개의 복수의 아날로그 및 디지털 프로세서들을 포함하는 칩들의 칩셋으로서 구현될 수 있다. 프로세서는 예를 들어, 사용자 인터페이스들의 제어, 디바이스(1650)에 의해 실행되는 어플리케이션들의 제어, 그리고 디바이스(1650)에 의한 무선 통신의 제어와 같은 디바이스(1650)의 다른 컴포넌트들의 조정(coordination)을 제공할 수 있다.
프로세서(1652)는 제어 인터페이스(1658)를 통해 그리고 디스플레이(1654)에 결합된 디스플레이 인터페이스(1656)를 통해 사용자와 통신할 수 있다. 디스플레이(1654)는 예를 들어, TFT LCD(Thin-Film-Transistor Liquid Crystal Display; 박막 트랜지스터 액정 디스플레이) 혹은 OLED(Organic Light Emitting Diode; 유기 발광 다이오드) 디스플레이, 또는 다른 적절한 디스플레이 기술일 수 있다. 디스플레이 인터페이스(1656)는 그래픽 정보 및 다른 정보를 사용자에게 제시하도록 디스플레이(1654)를 구동시키기 위해 적절한 회로를 포함할 수 있다. 제어 인터페이스(1658)는 사용자로부터 커맨드들을 수신할 수 있고, 이들을 프로세서(1652)에 제출하기 위해 변환할 수 있다. 추가적으로, 디바이스(1650)가 다른 디바이스들과 근거리 통신을 할 수 있도록, 프로세서(1652)와 통신하는 외부 인터페이스(1662)가 제공될 수 있다. 외부 인터페이스(1662)는 예를 들어, 일부 구현예들에서는 유선 통신을 제공할 수 있고, 또는 다른 구현예들에서는 무선 통신을 제공할 수 있으며, 복수의 인터페이스들이 또한 사용될 수 있다.
메모리(1664)는 컴퓨팅 디바이스(1650) 내의 정보를 저장한다. 메모리(1664)는 컴퓨터-판독가능 매체 혹은 매체들, 휘발성 메모리 유닛 혹은 유닛들, 또는 비-휘발성 메모리 유닛 혹은 유닛들 중 하나 이상의 것으로서 구현될 수 있다. 확장 메모리(1674)는 또한 확장 인터페이스(1672)를 통해 디바이스(1650)에 제공 및 연결될 수 있고, 여기서 확장 인터페이스(1672)는 예를 들어, SIMM(Single In Line Memory Module; 단일 인라인 메모리 모듈) 카드 인터페이스를 포함할 수 있다. 이러한 확장 메모리(1674)는 디바이스(1650)를 위한 추가 저장 공간을 제공할 수 있고, 또는 디바이스(1650)를 위한 어플리케이션들 혹은 다른 정보를 또한 저장할 수 있다. 구체적으로, 확장 메모리(1674)는 앞서 설명된 프로세스들을 달성 혹은 보충하기 위한 명령들을 포함할 수 있고, 보안 정보를 또한 포함할 수 있다. 따라서, 예를 들어, 확장 메모리(1674)는 디바이스(1650)를 위한 보안 모듈로서 제공될 수 있고, 디바이스(1650)의 보안 사용을 허용하는 명령들로 프로그래밍될 수 있다. 추가적으로, 보안 어플리케이션들은 예를 들어, 해킹가능하지 않는 방식으로 SIMM 카드 상에 식별 정보를 위치시키는 추가적인 정보와 함께 SIMM 카드들을 통해 제공될 수 있다.
메모리는 아래에서 논의되는 바와 같이, 예를 들어, 플래시 메모리 및/또는 NVRAM 메모리를 포함할 수 있다. 일 구현예에서, 컴퓨터 프로그램 제품은 정보 운반자에 실체적으로 구현될 수 있다. 컴퓨터 프로그램 제품은 명령들을 포함하며, 여기서 명령들은 그 실행시 앞서 설명된 것들과 같은 하나 이상의 방법들을 수행한다. 정보 캐리어는 메모리(1664), 확장 메모리(1674), 혹은 프로세서(1652) 상의 메모리와 같은 컴퓨터-판독가능 매체 또는 머신-판독가능 매체이며, 예를 들어, 송수신기(1668) 혹은 외부 인터페이스(1662)를 통한 수신이 일어날 수 있다.
디바이스(1650)는 통신 인터페이스(1666)를 통해 무선으로 통신할 수 있으며, 통신 인터페이스(1666)는 필요한 경우 디지털 신호처리 회로를 포함할 수 있다. 통신 인터페이스(1666)는 다양한 모드들 또는 프로토콜들 하에서 통신을 제공할 수 있는바 가령, GSM 음성 호출, SMS, EMS 또는 MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, 또는 GPRS 등에서 통신을 제공할 수 있다. 이러한 통신은 예를 들어 무선 주파수 송수신기(1668)를 통해 발생할 수 있다. 또한, Bluetooth, Wi-Fi 또는 다른 그러한 송수신기(도시되지 않음)를 사용하는 것과 같은 단거리 통신이 발생할 수 있다. 또한, GPS(Global Positioning System) 수신기 모듈(1670)은 디바이스(1650) 상에서 실행되는 어플리케이션에 의해 적절히 사용될 수 있는 추가의 네비게이션 관련 및 위치 관련 무선 데이터를 디바이스(1650)에 제공할 수 있다.
디바이스(1650)는 또한 사용자로부터 음성 정보를 수신하고 그것을 이용가능한 디지털 정보로 변환할 수 있는 오디오 코덱(1660)을 사용하여 청각적으로 통신 할 수 있다. 오디오 코덱(1660)은 마찬가지로, 예를 들어 디바이스(1650)의 핸드 세트의 스피커를 통하는 것과 같이, 사용자를 위한 가청 사운드를 생성할 수 있다. 이러한 사운드는 음성 전화 호출로부터의 사운드를 포함할 수 있고, 녹음된 사운드(예컨대, 음성 메시지, 음악 파일들 등)을 포함할 수 있고 그리고 또한 디바이스(1650) 상에서 동작하는 어플리케이션에 의해 생성된 사운드를 포함할 수도 있다.
컴퓨팅 디바이스(1650)는 도면에 도시된 바와 같이 다수의 상이한 형태로 구현될 수 있다. 예를 들어, 그것은 셀룰러 전화(1680)로서 구현될 수 있다. 또한 스마트 폰(1682), 개인 휴대 정보 단말기(personal digital assistant), 또는 다른 유사한 이동 디바이스의 일부로서 구현될 수 있다.
여기에 설명된 시스템 및 기술의 다양한 구현예는 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC(주문형 집적 회로), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다.
이러한 다양한 구현들은 하나 이상의 컴퓨터 프로그램들에서의 구현을 포함할 수 있는데, 이들 컴퓨터 프로그램들은, 특수 또는 범용일 수 있으며 데이터와 명령들을 송수신하기 위하여 저장 시스템, 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스에 접속되는 적어도 하나의 프로그램가능 프로세서를 포함하는 프로그램가능 시스템 상에서 실행가능하고 및/또는 해석가능하다.
이들 컴퓨터 프로그램들(프로그램, 소프트웨어, 소프트웨어 어플리케이션 또는 코드로도 알려짐)은 프로그램가능 프로세서에 대한 머신 명령어를 포함하고, 하이 레벨 절차적 프로그래밍 언어 및/또는 객체 지향 프로그래밍 언어 및/또는 어셈블리/머신 언어로 구현될 수 있다. 본 명세서에 사용 된 바와 같이, "머신-판독가느한 매체" , "컴퓨터 판독 가능 매체"는 프로그램 가능 프로세서에 머신 명령들 및/또는 데이터를 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 디바이스 및/또는 디바이스(예컨대, 자기 디스크, 광 디스크, 메모리, 프로그램 가능 논리 디바이스(PLD))을 지칭하며, 머신 판독가능 신호로서 머신 명령을 수신하는 머신 판독가능한 매체를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 여기에 설명된 시스템 및 기술은 사용자에게 정보를 디스플레이하기 위한 디스플레이 디바이스(예를 들어, CRT(cathode ray tube)또는 LCD 모니터), 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있는바, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백 일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
여기에 설명된 시스템 및 기술은 백 엔드 컴포넌트(예: 데이터 서버)를 포함하거나 미들웨어 컴포넌트(예: 어플리케이션 서버)를 포함하거나, 프런트 엔드 컴포넌트(예컨대, 그래픽 사용자 인터페이스를 갖는 클라이언트 컴퓨터 또는 웹 브라우저, 이를 통해 사용자는 여기에 설명된 시스템 및 기술의 구현예와 상호작용할 수 있음)를 포함하거나 또는 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 조합을 포함할 수 있다. 시스템의 구성 요소들은, 임의 포맷 혹은 매체의 디지털 데이터 통신(예: 통신 네트워크)에 의해서 상호연결될 수 있다. 통신 네트워크의 예는 근거리 통신망( "LAN"), 광역 통신망( "WAN") 및 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램의 덕택으로 발생한다.
다수의 실시예들가 설명되었다. 그럼에도 불구하고, 본 발명의 사상 및 범위를 벗어나지 않고 다양한 변형들이 이루어질 수 있음이 이해될 것이다.
추가의 구현예들이 다음의 사례들에 요약된다:
실시예 1: 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한, 컴퓨터 구현 방법으로서, 상기 방법은,
컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계;
상기 비디오 렌더링의 성능이 임계값 보다 낮은지를 결정하는 단계;
상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
실시예 2: 실시예 1에 있어서, 제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계는,
상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 중앙 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 주변 부분을 업데이트함으로써, 상기 제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계를 포함한다.
실시예 3: 실시예 2에 있어서, 상기 비디오 렌더링을 수행하는 단계는,
상기 결정에 기초하여, 상기 제 1 업데이트 속도 및 제 1 이미지 해상도에서 상기 이미지의 중앙 부분을 업데이트하고 상기 제 2 업데이트 속도 및 제 2 이미지 해상도에서 상기 이미지의 상기 주변 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계를 포함하며, 상기 제 2 이미지 해상도는 상기 제 1 이미지 해상도보다 낮으며, 상기 제 2 업데이트 속도는 상기 제 1 업데이트 속도보다 낮다.
실시예 4: 실시예 1 내지 3에 있어서, 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용될 상기 스크린의 픽셀들의 수를 조정하는 단계를 더 포함한다.
실시예 5: 실시예 1항 내지 3에 있어서, 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는, 상기 스크린 상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 디스플레이 프레임 또는 이미지 해상도를 조정하는 단계를 더 포함한다.
실시예 6: 실시예 1 내지 5에 있어서,
상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로부터 상기 가상 현실 어플리케이션으로 상기 컴퓨팅 디바이스의 컴퓨팅 리소스들을 할당하는 단계를 더 포함한다.
실시예 7: 실시예 1 내지 6에 있어서,
상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간(eye blinking period)의 시작을 검출하는 단계; 및
상기 검출에 응답하여, 상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하는 단계를 더 포함한다.
실시예 8: 실시예 1 내지 7에 있어서,
상기 스크린의 움직임을 검출하는 단계; 및
상기 검출 이후의 적어도 소정 시간 기간 동안, 상기 스크린 상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 시야를 조절하는 단계를 더 포함한다.
실시예 9: 컴퓨터 구현 방법으로서,
인코딩된 비디오 신호를 수신하는 단계;
컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상에 디스플레이 프레임들의 제 1 세트를 디스플레이하기 위해 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하는 단계;
상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및
상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하는 단계를 포함한다.
실시예 10: 실시예 9에 있어서,
상기 가상 현실 어플리케이션에 의해, 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링을 중지시키는 단계; 및
상기 눈 깜박임 기간의 적어도 일부 동안, 상기 컴퓨팅 디바이스 상에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들에 의해서, 하나 이상의 비-비디오 렌더링 작업(non-video rendering task)을 수행하는 단계를 더 포함한다.
실시예 11: 실시예 9에 있어서,
상기 가상 현실 어플리케이션에 의해서, 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링 속도를 감소시키는 단계;
상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 적어도 일부의 컴퓨팅 리소스들을 할당하는 단계; 및
상기 컴퓨팅 디바이스 상에서 구동되는 상기 하나 이상의 비-가상 현실 어플리케이션들에 의해서, 상기 눈 깜박임 기간의 적어도 일부 동안 하나 이상의 비-비디오(non-video) 렌더링 작업을 수행하는 단계를 더 포함한다.
실시예 12: 실시예 11에 있어서,
상기 눈 깜박임 기간의 종료시 또는 그 근방에서,
상기 컴퓨팅 디바이스 상에서 구동되는 상기 하나 이상의 비-가상 현실 어플리케이션들로부터 상기 가상 현실 어플리케이션으로 적어도 일부의 컴퓨팅 리소스들을 재할당하는 것; 및
상기 가상 현실 어플리케이션에 의해서, 비디오 렌더링 속도를 증가시키는 것 중 하나 이상을 수행하는 단계를 더 포함한다.
실시예 13: 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법으로서,
컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계;
상기 스크린의 움직임을 검출하는 단계;
상기 검출에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도와는 다른 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
실시예 14: 실시예 13에 있어서,
상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
상기 검출에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 중앙 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 주변 부분을 업데이트함으로써, 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
실시예 15: 실시예 13에 있어서,
상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
상기 검출에 기초하여, 상기 제 1 업데이트 속도 및 제 1 이미지 해상도에서 상기 이미지의 중앙 부분을 업데이트하고 상기 제 2 업데이트 속도 및 제 2 이미지 해상도에서 상기 이미지의 상기 주변 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함하며, 상기 제 2 이미지 해상도는 상기 제 1 이미지 해상도보다 낮으며, 상기 제 2 업데이트 속도는 상기 제 1 업데이트 속도보다 낮다.
실시예 16: 실시예 13에 있어서,
상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
상기 검출에 기초하여, 제 1 해상도에서 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 해상도와는 다른 제 2 해상도에서 상기 이미지의 제 2 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함한다.
실시예 17: 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법으로서,
컴퓨팅 디바이스의 스크린 상에, 우안 이미지 및 좌안 이미지를 포함하는 입체 이미지(stereoscopic image)를 디스플레이하는 단계, 상기 좌안 이미지 및 상기 우안 이미지는 각각 하나 이상의 객체들을 묘사하며;
상기 컴퓨팅 디바이스의 사용자에 의해 보여지는 시청된 객체(viewed object)를 결정하는 단계, 상기 시청된 객체는 상기 좌안 이미지의 일부인 좌측 시청 객체(left viewed object) 및 상기 우안 이미지의 일부인 우측 시청 객체(right viewed object)를 포함하며;
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 측정하는 단계;
상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하는 단계를 포함한다.
실시예 18: 실시예 17에 있어서,
상기 시프트하는 단계는,
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 제거(eliminating)하도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하는 단계를 포함한다.
실시예 19: 실시예 17에 있어서,
상기 시프트하는 단계는,
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 이전에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다의 시프트를 시작하는 단계; 및
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 더욱 감소시키도록, 상기 눈 깜박임 기간 동안에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다의 시프트를 지속하는 단계를 포함한다.
실시예 20: 실시예 17 내지 19에 있어서,
상기 시프트하는 단계는,
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 이전에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 제 1 시프트 속도로 시프트하는 단계; 및
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 더욱 감소시키도록, 상기 눈 깜박임 기간 동안에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 제 2 시프트 속도로 시프트하는 단계를 포함하며, 상기 제 2 시프트 속도는 상기 제 1 시프트 속도보다 빠르다.
실시예 21: 실시예 17항 내지 20에 있어서,
사용자의 눈들 중 어느 눈이 비-지배적인 눈(non-dominant eye)인지를 결정하는 단계;
상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 깜박임이 없는 기간(non-blinking period) 동안, 상기 사용자의 상기 비-지배적인 눈(non-dominant eye)의 이미지만을 시프트하는 단계를 더 포함한다.
또한, 도면들에 도시된 논리 흐름은 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 요구하지 않는다. 또한, 설명된 흐름도들로부터 다른 단계들이 제공되거나 단계들이 제거될 수 있으며, 설명된 시스템들에 다른 컴포넌트들이 추가되거나 제거될 수 있다. 따라서, 다른 실시예들도 다음의 청구항들의 범위 내에 속한다.

Claims (21)

  1. 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한, 컴퓨터 구현 방법으로서,
    컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계;
    상기 비디오 렌더링의 성능이 임계값 보다 낮은지를 결정하는 단계;
    상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계는,
    상기 결정에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 중앙 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 주변 부분을 업데이트함으로써, 상기 제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 비디오 렌더링을 수행하는 단계는,
    상기 결정에 기초하여, 상기 제 1 업데이트 속도 및 제 1 이미지 해상도에서 상기 이미지의 중앙 부분을 업데이트하고 상기 제 2 업데이트 속도 및 제 2 이미지 해상도에서 상기 이미지의 상기 주변 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 상기 비디오 렌더링을 수행하는 단계를 포함하며,
    상기 제 2 이미지 해상도는 상기 제 1 이미지 해상도보다 낮으며, 상기 제 2 업데이트 속도는 상기 제 1 업데이트 속도보다 낮은 것을 특징으로 하는 컴퓨터 구현 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
    하나 이상의 디스플레이 프레임들을 디스플레이하는데 사용될 상기 스크린의 픽셀들의 수를 조정하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
    상기 스크린 상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 디스플레이 프레임 또는 이미지 해상도를 조정하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로부터 상기 가상 현실 어플리케이션으로 상기 컴퓨팅 디바이스의 컴퓨팅 리소스들을 할당하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간(eye blinking period)의 시작을 검출하는 단계; 및
    상기 검출에 응답하여, 상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 스크린의 움직임을 검출하는 단계; 및
    상기 검출 이후의 적어도 소정 시간 기간 동안, 상기 스크린 상에 하나 이상의 디스플레이 프레임들을 디스플레이하기 위한 시야를 조절하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  9. 컴퓨터 구현 방법으로서,
    인코딩된 비디오 신호를 수신하는 단계;
    컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상에 디스플레이 프레임들의 제 1 세트를 디스플레이하기 위해 상기 인코딩된 비디오 신호에 기초하여 비디오 렌더링을 수행하는 단계;
    상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및
    상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 컴퓨팅 리소스들을 할당하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  10. 제9항에 있어서,
    상기 가상 현실 어플리케이션에 의해, 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링을 중지시키는 단계; 및
    상기 눈 깜박임 기간의 적어도 일부 동안, 상기 컴퓨팅 디바이스 상에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들에 의해서, 하나 이상의 비-비디오 렌더링 작업(non-video rendering task)을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  11. 제9항 내지 제10항 중 어느 한 항에 있어서,
    상기 가상 현실 어플리케이션에 의해서, 상기 눈 깜박임 기간의 적어도 일부 동안 비디오 렌더링 속도를 감소시키는 단계;
    상기 눈 깜박임 기간의 적어도 일부 동안, 상기 가상 현실 어플리케이션으로부터 상기 컴퓨팅 디바이스 상에서 구동되는 하나 이상의 비-가상 현실 어플리케이션들로 적어도 일부의 컴퓨팅 리소스들을 할당하는 단계; 및
    상기 컴퓨팅 디바이스 상에서 구동되는 상기 하나 이상의 비-가상 현실 어플리케이션들에 의해서, 상기 눈 깜박임 기간의 적어도 일부 동안 하나 이상의 비-비디오(non-video) 렌더링 작업을 수행하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  12. 제11항에 있어서,
    상기 눈 깜박임 기간의 종료시 또는 그 근방에서,
    상기 컴퓨팅 디바이스 상에서 구동되는 상기 하나 이상의 비-가상 현실 어플리케이션들로부터 상기 가상 현실 어플리케이션으로 적어도 일부의 컴퓨팅 리소스들을 재할당하는 것; 및
    상기 가상 현실 어플리케이션에 의해서, 비디오 렌더링 속도를 증가시키는 것
    중 하나 이상을 수행하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  13. 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법으로서,
    컴퓨팅 디바이스 상에 제공된 가상 현실 어플리케이션에 의해서, 상기 컴퓨팅 디바이스의 스크린 상의 전체 이미지를 제 1 업데이트 속도로 업데이트함에 기초하여, 제 1 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계;
    상기 스크린의 움직임을 검출하는 단계;
    상기 검출에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 업데이트 속도와는 다른 제 2 업데이트 속도로 상기 이미지의 제 2 부분을 업데이트함으로써, 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
    상기 검출에 기초하여, 상기 제 1 업데이트 속도로 상기 이미지의 중앙 부분을 업데이트하고 상기 제 1 업데이트 속도보다 낮은 제 2 업데이트 속도로 상기 이미지의 주변 부분을 업데이트함으로써, 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  15. 제13항 내지 제14항 중 어느 한 항에 있어서,
    상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
    상기 검출에 기초하여, 상기 제 1 업데이트 속도 및 제 1 이미지 해상도에서 상기 이미지의 중앙 부분을 업데이트하고 상기 제 2 업데이트 속도 및 제 2 이미지 해상도에서 상기 이미지의 상기 주변 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함하며,
    상기 제 2 이미지 해상도는 상기 제 1 이미지 해상도보다 낮으며, 상기 제 2 업데이트 속도는 상기 제 1 업데이트 속도보다 낮은 것을 특징으로 하는 컴퓨터 구현 방법.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계는,
    상기 검출에 기초하여, 제 1 해상도에서 상기 이미지의 제 1 부분을 업데이트하고 상기 제 1 해상도와는 다른 제 2 해상도에서 상기 이미지의 제 2 부분을 업데이트함으로써 상기 제 2 비디오 렌더링 속도로 비디오 렌더링을 수행하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  17. 비일시적인 컴퓨터 판독가능한 저장매체 상에 저장된 명령들을 실행하기 위한 컴퓨터 구현 방법으로서,
    컴퓨팅 디바이스의 스크린 상에, 우안 이미지 및 좌안 이미지를 포함하는 입체 이미지(stereoscopic image)를 디스플레이하는 단계, 상기 좌안 이미지 및 상기 우안 이미지는 각각 하나 이상의 객체들을 묘사하며;
    상기 컴퓨팅 디바이스의 사용자에 의해 보여지는 시청된 객체(viewed object)를 결정하는 단계, 상기 시청된 객체는 상기 좌안 이미지의 일부인 좌측 시청 객체(left viewed object) 및 상기 우안 이미지의 일부인 우측 시청 객체(right viewed object)를 포함하며;
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 측정하는 단계;
    상기 컴퓨팅 디바이스의 사용자의 눈 깜박임 기간의 시작을 검출하는 단계; 및
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    상기 시프트하는 단계는,
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 제거(eliminating)하도록, 상기 눈 깜박임 기간 동안, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 시프트하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  19. 제17항 내지 제18항 중 어느 한 항에 있어서,
    상기 시프트하는 단계는,
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 이전에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다의 시프트를 시작하는 단계; 및
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 더욱 감소시키도록, 상기 눈 깜박임 기간 동안에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다의 시프트를 지속하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  20. 제17항 내지 제19항 중 어느 한 항에 있어서,
    상기 시프트하는 단계는,
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 상기 눈 깜박임 기간 이전에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 제 1 시프트 속도로 시프트하는 단계; 및
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 더욱 감소시키도록, 상기 눈 깜박임 기간 동안에, 상기 좌안 이미지 및 상기 우안 이미지 중 하나 또는 둘다를 제 2 시프트 속도로 시프트하는 단계
    를 포함하며, 상기 제 2 시프트 속도는 상기 제 1 시프트 속도보다 빠른 것을 특징으로 하는 컴퓨터 구현 방법.
  21. 제17항 내지 제20항 중 어느 한 항에 있어서,
    사용자의 눈들 중 어느 눈이 비-지배적인 눈(non-dominant eye)인지를 결정하는 단계;
    상기 좌측 시청 객체와 상기 우측 시청 객체 간의 불일치를 감소시키도록, 깜박임이 없는 기간(non-blinking period) 동안, 상기 사용자의 상기 비-지배적인 눈(non-dominant eye)의 이미지만을 시프트하는 단계
    를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
KR1020187007380A 2015-12-22 2016-12-20 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱 KR102088472B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/978,320 US10229540B2 (en) 2015-12-22 2015-12-22 Adjusting video rendering rate of virtual reality content and processing of a stereoscopic image
US14/978,320 2015-12-22
PCT/US2016/067824 WO2017112692A2 (en) 2015-12-22 2016-12-20 Adjusting video rendering rate of virtual reality content and processing of a stereoscopic image

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207006475A Division KR102241405B1 (ko) 2015-12-22 2016-12-20 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱

Publications (2)

Publication Number Publication Date
KR20180039723A true KR20180039723A (ko) 2018-04-18
KR102088472B1 KR102088472B1 (ko) 2020-04-20

Family

ID=57797003

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187007380A KR102088472B1 (ko) 2015-12-22 2016-12-20 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱
KR1020207006475A KR102241405B1 (ko) 2015-12-22 2016-12-20 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207006475A KR102241405B1 (ko) 2015-12-22 2016-12-20 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱

Country Status (8)

Country Link
US (2) US10229540B2 (ko)
EP (1) EP3394835B1 (ko)
JP (2) JP6732893B2 (ko)
KR (2) KR102088472B1 (ko)
CN (2) CN108140262B (ko)
AU (1) AU2016378555B2 (ko)
CA (1) CA2998904C (ko)
WO (1) WO2017112692A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443719B2 (en) 2018-03-29 2022-09-13 Sony Corporation Information processing apparatus and information processing method

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569883B2 (en) * 2013-12-12 2017-02-14 Intel Corporation Decoupled shading pipeline
KR102193036B1 (ko) * 2016-07-05 2020-12-18 삼성전자주식회사 디스플레이장치, 디스플레이장치의 구동방법 및 컴퓨터 판독가능 기록매체
KR102565402B1 (ko) * 2016-09-22 2023-08-08 애플 인크. 무주의 조건 동안 그래픽 사용자 인터페이스에 영향을 미치는 정보의 상태 변화 연기를 위한 방법, 비일시적 컴퓨터 판독가능 매체 및 시스템
US10306180B2 (en) * 2016-10-21 2019-05-28 Liquidsky Software, Inc. Predictive virtual reality content streaming techniques
US10869026B2 (en) * 2016-11-18 2020-12-15 Amitabha Gupta Apparatus for augmenting vision
US20180255285A1 (en) 2017-03-06 2018-09-06 Universal City Studios Llc Systems and methods for layered virtual features in an amusement park environment
US11511176B2 (en) * 2017-03-13 2022-11-29 Holodia Inc. Method for generating multimedia data associated with a system for practicing sports
US10591971B2 (en) * 2017-04-01 2020-03-17 Intel Corporation Adaptive multi-resolution for graphics
US10649521B2 (en) * 2017-04-24 2020-05-12 Intel Corporation Compensating for high head movement in head-mounted displays
WO2018201048A1 (en) * 2017-04-27 2018-11-01 Google Llc Synthetic stereoscopic content capture
US10880086B2 (en) * 2017-05-02 2020-12-29 PracticalVR Inc. Systems and methods for authenticating a user on an augmented, mixed and/or virtual reality platform to deploy experiences
US10572761B1 (en) * 2017-06-05 2020-02-25 Google Llc Virtual reality system using super-resolution
US10460527B2 (en) * 2017-06-30 2019-10-29 Tobii Ab Systems and methods for displaying images in a virtual world environment
US11158126B1 (en) * 2017-06-30 2021-10-26 Apple Inc. Redirected walking in virtual reality environments
CN109743892B (zh) * 2017-07-04 2020-10-13 腾讯科技(深圳)有限公司 虚拟现实内容的显示方法和装置
CN107390868A (zh) * 2017-07-13 2017-11-24 三星电子(中国)研发中心 一种虚拟现实的逃离方法及装置
US10127290B1 (en) * 2017-07-19 2018-11-13 Facebook, Inc. Systems and methods for distributing augmented-reality effects
JP2019033339A (ja) * 2017-08-07 2019-02-28 キヤノン株式会社 情報処理装置、投影装置、情報処理方法、及び、プログラム
CN109388448B (zh) * 2017-08-09 2020-08-04 京东方科技集团股份有限公司 图像显示方法、显示系统以及计算机可读存储介质
GB2607455B (en) * 2017-08-24 2023-02-15 Displaylink Uk Ltd Compressing image data for transmission to a display
GB2566013B (en) * 2017-08-24 2022-12-07 Displaylink Uk Ltd Compressing image data for transmission to a display
CN111052042B (zh) * 2017-09-29 2022-06-07 苹果公司 基于注视的用户交互
EP3467617A1 (en) * 2017-10-03 2019-04-10 Nokia Technologies Oy Apparatus and associated methods for reducing a likely sickness of a viewer of immersive visual content
RU2750505C1 (ru) 2017-10-12 2021-06-29 Фраунхофер-Гезелльшафт Цур Фердерунг Дер Ангевандтен Форшунг Е.Ф. Оптимизация доставки звука для приложений виртуальной реальности
US10979744B2 (en) 2017-11-03 2021-04-13 Nvidia Corporation Method and system for low latency high frame rate streaming
GB2571300B (en) 2018-02-23 2020-05-27 Sony Interactive Entertainment Inc Eye tracking method and apparatus
EP3540566B1 (en) 2018-03-12 2022-06-08 Nokia Technologies Oy Rendering a virtual scene
USD868108S1 (en) * 2018-03-16 2019-11-26 Magic Leap, Inc. Display panel or portion thereof with graphical user interface
US20190302881A1 (en) * 2018-03-29 2019-10-03 Omnivision Technologies, Inc. Display device and methods of operation
CN108810554B (zh) * 2018-06-15 2021-06-22 腾讯科技(深圳)有限公司 虚拟场景的场景图像传输方法、计算机设备及存储介质
US10802585B2 (en) 2018-07-12 2020-10-13 Apple Inc. Electronic devices with display operation based on eye activity
US20200022632A1 (en) * 2018-07-17 2020-01-23 Limbix Health, Inc. Digital content processing and generation for a virtual environment
US10600236B2 (en) * 2018-08-06 2020-03-24 Valve Corporation Prediction and throttling adjustments based on application rendering performance
CN112585673A (zh) 2018-08-29 2021-03-30 索尼公司 信息处理设备、信息处理方法及程序
US20220019790A1 (en) 2018-12-04 2022-01-20 Sony Interactive Entertainment Inc. Image processing apparatus, image processing system, image processing method, and program
US11200656B2 (en) 2019-01-11 2021-12-14 Universal City Studios Llc Drop detection systems and methods
US10901502B2 (en) * 2019-06-27 2021-01-26 Facebook, Inc. Reducing head mounted display power consumption and heat generation through predictive rendering of content
US20220335693A1 (en) * 2019-07-31 2022-10-20 Nippon Telegraph And Telephone Corporation Mixed reality space sharing system, sharing information management server, mixed reality terminal, mixed reality space sharing method, and sharing information management program
CN110471731B (zh) * 2019-08-09 2022-08-05 网易(杭州)网络有限公司 显示界面绘制方法、装置、电子设备及计算机可读介质
WO2021171615A1 (ja) * 2020-02-28 2021-09-02 日本電信電話株式会社 リソース推定装置、リソース推定方法、および、リソース推定プログラム
CN111556305B (zh) * 2020-05-20 2022-04-15 京东方科技集团股份有限公司 图像处理方法、vr设备、终端、显示系统和计算机可读存储介质
CN111626915B (zh) * 2020-05-29 2024-03-26 大陆汽车车身电子系统(芜湖)有限公司 一种图像显示方法
CN112230776A (zh) * 2020-10-29 2021-01-15 北京京东方光电科技有限公司 虚拟现实显示方法、装置及存储介质
CN113141346B (zh) * 2021-03-16 2023-04-28 青岛小鸟看看科技有限公司 基于串流的vr一拖多系统及方法
CN113362450B (zh) * 2021-06-02 2023-01-03 聚好看科技股份有限公司 一种三维重建方法、装置及系统
CN113791687B (zh) * 2021-09-15 2023-11-14 咪咕视讯科技有限公司 Vr场景中的交互方法、装置、计算设备及存储介质
CN115278288B (zh) * 2022-09-23 2022-12-20 腾讯科技(深圳)有限公司 一种显示处理方法、装置、计算机设备及可读存储介质
US20240103596A1 (en) * 2022-09-23 2024-03-28 Qualcomm Incorporated Providing runtime power profile tuning based on eye state in processor-based extended reality (xr) devices

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717578B1 (en) * 1998-02-17 2004-04-06 Sun Microsystems, Inc. Graphics system with a variable-resolution sample buffer
US20080111833A1 (en) * 2006-11-09 2008-05-15 Sony Ericsson Mobile Communications Ab Adjusting display brightness and/or refresh rates based on eye tracking
US20130265227A1 (en) * 2012-04-06 2013-10-10 Apple Inc. Systems and methods for counteracting a perceptual fading of a movable indicator
JP2015095045A (ja) * 2013-11-11 2015-05-18 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
US9111326B1 (en) * 2010-12-21 2015-08-18 Rawles Llc Designation of zones of interest within an augmented reality environment
WO2015167905A2 (en) * 2014-04-29 2015-11-05 Microsoft Technology Licensing, Llc Stereoscopic rendering to eye positions

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000193910A (ja) * 1998-10-20 2000-07-14 Matsushita Electric Works Ltd ディスプレイ装置
KR20040005290A (ko) 2002-07-09 2004-01-16 엘지전자 주식회사 이동통신 단말기의 영상신호 코딩 방법
US7817829B2 (en) * 2004-03-15 2010-10-19 Koninklijke Philips Electronics N.V. Image visualization
US7519845B2 (en) * 2005-01-05 2009-04-14 Microsoft Corporation Software-based audio rendering
US7605794B2 (en) 2005-12-22 2009-10-20 Nokia Corporation Adjusting the refresh rate of a display
DE102006032239A1 (de) * 2006-07-12 2008-01-17 Patrick Fischer Seilbahn mit veränderbarer Tragseillage
US8243141B2 (en) 2007-08-20 2012-08-14 Greenberger Hal P Adjusting a content rendering system based on user occupancy
US8810511B2 (en) 2007-09-11 2014-08-19 Gm Global Technology Operations, Llc Handheld electronic device with motion-controlled cursor
US8214750B2 (en) * 2007-10-31 2012-07-03 International Business Machines Corporation Collapsing areas of a region in a virtual universe to conserve computing resources
TWI394746B (zh) 2007-11-16 2013-05-01 Academia Sinica 有機電激發光裝置及其材料
CN103119512A (zh) 2008-11-02 2013-05-22 大卫·乔姆 近眼式显示系统和装置
US8291460B1 (en) 2010-02-12 2012-10-16 Adobe Systems Incorporated Rate adaptation based on dynamic performance monitoring
JP5303685B2 (ja) * 2010-11-09 2013-10-02 富士フイルム株式会社 拡張現実感提供装置
US8910228B2 (en) 2010-11-09 2014-12-09 Vmware, Inc. Measurement of remote display performance with image-embedded markers
US9081416B2 (en) 2011-03-24 2015-07-14 Seiko Epson Corporation Device, head mounted display, control method of device and control method of head mounted display
JP5953714B2 (ja) * 2011-11-24 2016-07-20 セイコーエプソン株式会社 装置、頭部装着型表示装置、装置の制御方法および頭部装着型表示装置の制御方法
US9897805B2 (en) * 2013-06-07 2018-02-20 Sony Interactive Entertainment Inc. Image rendering responsive to user actions in head mounted display
JP5936379B2 (ja) 2012-02-07 2016-06-22 シャープ株式会社 画像表示装置
JP2013214234A (ja) * 2012-04-03 2013-10-17 Sony Corp 移動制御装置、移動制御方法、およびプログラム
US9123142B2 (en) 2012-10-02 2015-09-01 At&T Intellectual Property I, L.P. Adjusting content display orientation on a screen based on user orientation
US20140152676A1 (en) * 2012-11-30 2014-06-05 Dave Rohn Low latency image display on multi-display device
US10133342B2 (en) * 2013-02-14 2018-11-20 Qualcomm Incorporated Human-body-gesture-based region and volume selection for HMD
US10685487B2 (en) * 2013-03-06 2020-06-16 Qualcomm Incorporated Disabling augmented reality (AR) devices at speed
US9645395B2 (en) * 2013-03-15 2017-05-09 Mark Bolas Dynamic field of view throttling as a means of improving user experience in head mounted virtual environments
TWI486630B (zh) 2013-03-27 2015-06-01 聚晶半導體股份有限公司 適應性調整頭戴式顯示器的方法與頭戴式顯示器
US9878235B2 (en) * 2013-06-07 2018-01-30 Sony Interactive Entertainment Inc. Transitioning gameplay on a head-mounted display
US9452354B2 (en) * 2013-06-07 2016-09-27 Sony Interactive Entertainment Inc. Sharing three-dimensional gameplay
CA2917396A1 (en) * 2013-07-05 2015-01-08 Square Enix Co., Ltd. Screen provision apparatus, screen provision system, control method, program and storage medium
KR102081933B1 (ko) 2013-08-28 2020-04-14 엘지전자 주식회사 헤드 마운트 디스플레이 및 제어 방법
KR102355118B1 (ko) * 2014-01-06 2022-01-26 삼성전자주식회사 전자 장치 및 가상 현실 모드에서의 이벤트 표시 방법
US9529195B2 (en) * 2014-01-21 2016-12-27 Osterhout Group, Inc. See-through computer display systems
US9652893B2 (en) * 2014-04-29 2017-05-16 Microsoft Technology Licensing, Llc Stabilization plane determination based on gaze location
US10055009B2 (en) * 2014-05-30 2018-08-21 Apple Inc. Dynamic display refresh rate based on device motion
US10108256B2 (en) * 2014-10-30 2018-10-23 Mediatek Inc. Systems and methods for processing incoming events while performing a virtual reality session
US9824498B2 (en) * 2014-12-30 2017-11-21 Sony Interactive Entertainment Inc. Scanning display system in head-mounted display for virtual reality
US20180004288A1 (en) * 2015-01-29 2018-01-04 Kyocera Corporation Electronic device
KR102274743B1 (ko) * 2015-01-30 2021-07-08 삼성전자주식회사 전자 장치 및 전자 장치의 화면 영역 처리 방법
JP2016191845A (ja) * 2015-03-31 2016-11-10 ソニー株式会社 情報処理装置、情報処理方法及びプログラム
KR101713735B1 (ko) * 2015-07-10 2017-03-08 현대자동차 주식회사 친환경 차량의 저전압 직류 변환기의 출력 제어 방법, 및 친환경 차량의 저전압 직류 변환기
US9978183B2 (en) * 2015-09-18 2018-05-22 Fove, Inc. Video system, video generating method, video distribution method, video generating program, and video distribution program
KR20180057693A (ko) * 2015-09-24 2018-05-30 토비 에이비 눈 추적 가능한 웨어러블 디바이스들
KR102117376B1 (ko) * 2015-09-25 2020-06-01 주식회사 소니 인터랙티브 엔터테인먼트 정보 처리 장치
US10319147B2 (en) * 2015-10-17 2019-06-11 Arivis Ag Direct volume rendering in virtual and/or augmented reality
KR20180011539A (ko) * 2016-07-25 2018-02-02 삼성전자주식회사 영상의 처리를 위한 전자 장치
US20180095531A1 (en) * 2016-10-05 2018-04-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Non-uniform image resolution responsive to a central focus area of a user

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6717578B1 (en) * 1998-02-17 2004-04-06 Sun Microsystems, Inc. Graphics system with a variable-resolution sample buffer
US20080111833A1 (en) * 2006-11-09 2008-05-15 Sony Ericsson Mobile Communications Ab Adjusting display brightness and/or refresh rates based on eye tracking
US9111326B1 (en) * 2010-12-21 2015-08-18 Rawles Llc Designation of zones of interest within an augmented reality environment
US20130265227A1 (en) * 2012-04-06 2013-10-10 Apple Inc. Systems and methods for counteracting a perceptual fading of a movable indicator
JP2015095045A (ja) * 2013-11-11 2015-05-18 株式会社ソニー・コンピュータエンタテインメント 画像生成装置および画像生成方法
WO2015167905A2 (en) * 2014-04-29 2015-11-05 Microsoft Technology Licensing, Llc Stereoscopic rendering to eye positions

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11443719B2 (en) 2018-03-29 2022-09-13 Sony Corporation Information processing apparatus and information processing method

Also Published As

Publication number Publication date
EP3394835B1 (en) 2021-02-03
JP6732893B2 (ja) 2020-07-29
JP7095030B2 (ja) 2022-07-04
CA2998904C (en) 2022-08-30
US20190206139A1 (en) 2019-07-04
US20170178408A1 (en) 2017-06-22
WO2017112692A2 (en) 2017-06-29
US11100714B2 (en) 2021-08-24
EP3394835A2 (en) 2018-10-31
WO2017112692A4 (en) 2017-09-14
CN108140262B (zh) 2022-03-29
US10229540B2 (en) 2019-03-12
KR20200027060A (ko) 2020-03-11
CN114758045A (zh) 2022-07-15
KR102088472B1 (ko) 2020-04-20
CN108140262A (zh) 2018-06-08
AU2016378555A1 (en) 2018-03-22
AU2016378555B2 (en) 2019-03-21
CA2998904A1 (en) 2017-06-29
WO2017112692A3 (en) 2017-08-10
KR102241405B1 (ko) 2021-04-16
JP2019507509A (ja) 2019-03-14
JP2020174384A (ja) 2020-10-22

Similar Documents

Publication Publication Date Title
KR102241405B1 (ko) 가상 현실 콘텐츠의 비디오 렌더링 속도의 조정 및 입체 이미지의 프로세싱
US10546364B2 (en) Smoothly varying foveated rendering
CN112020858B (zh) 利用感兴趣区域的确定的异步时间和空间扭曲
US20200160609A1 (en) Hybrid rendering for a wearable display attached to a tethered computer
US9928655B1 (en) Predictive rendering of augmented reality content to overlay physical structures
US10559065B2 (en) Information processing apparatus and information processing method
CN111670453B (zh) 依赖于注视的凹状渲染装置、方法、计算机程序和系统
US20160238852A1 (en) Head mounted display performing post render processing
US20170171539A1 (en) System for displaying an image for a head mounted display
US11353955B1 (en) Systems and methods for using scene understanding for calibrating eye tracking
US11301969B1 (en) Context aware dynamic distortion correction
WO2019033446A1 (zh) 虚拟现实设备及其内容调整方法
US10831266B2 (en) Personalized adaptation of virtual reality content based on eye strain context
US11694379B1 (en) Animation modification for optical see-through displays
CN116420129A (zh) 多协议同步
US20240112303A1 (en) Context-Based Selection of Perspective Correction Operations
US11979657B1 (en) Power efficient object tracking
US20240029363A1 (en) Late stage occlusion based rendering for extended reality (xr)
US20240007607A1 (en) Techniques for viewing 3d photos and 3d videos
WO2022192306A1 (en) Image display within a three-dimensional environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent