KR102628044B1 - 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법 - Google Patents

삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR102628044B1
KR102628044B1 KR1020197033880A KR20197033880A KR102628044B1 KR 102628044 B1 KR102628044 B1 KR 102628044B1 KR 1020197033880 A KR1020197033880 A KR 1020197033880A KR 20197033880 A KR20197033880 A KR 20197033880A KR 102628044 B1 KR102628044 B1 KR 102628044B1
Authority
KR
South Korea
Prior art keywords
display
processor
electronic device
instructions
image
Prior art date
Application number
KR1020197033880A
Other languages
English (en)
Other versions
KR20190133055A (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 KR20190133055A publication Critical patent/KR20190133055A/ko
Application granted granted Critical
Publication of KR102628044B1 publication Critical patent/KR102628044B1/ko

Links

Classifications

    • 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
    • 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
    • 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
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • 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/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Optics & Photonics (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

물리적 디스플레이, 적어도 하나의 프로세서, 휘발성 메모리, 및 비휘발성 메모리를 포함하는 전자 모바일 장치. 휘발성 메모리 안에, 2D 사용자 인터페이스를 생성하기 위한 제1명령어들 및 3D VR 환경을 생성하기 위한 제2명령어들, 그리고 시스템 명령어들이 저장된다. 제1동작 시, 제1명령어들이 실행되어 2D 사용자 인터페이스를 생성하고, 그 2D 사용자 인터페이스를 물리적 디스플레이로 제공한다. 제2동작 시, 제1명령어들이 실행되어 2D 사용자 인터페이스를 생성하고, 그 2D 사용자 인터페이스를 휘발성 메모리 내 가상 디스플레이로 제공한다. 또한, 제2동작 시, 제2명령어들이 실행되어 가상 디스플레이로부터 2D 사용자 인터페이스를 얻어 2D 사용자 인터페이스의 적어도 일부를 사용하여 3D 이미지를 렌더링 하기 위해, 3D VR 환경을 생성하고, 3D 이미지를 물리적 디스플레이로 제공한다.

Description

삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법
본 개시는 일반적으로 가상 현실을 제공하는 전자 장치에 관한 것이다 보다 상세히 말하면, 본 개시는 이차원(2D) 애플리케이션이 삼차원(3D) 가상 현실 환경에서 디스플레이되고 사용되도록 하는 시스템 및 방법에 관한 것이다. 본 개시는 일반적으로 가상 현실을 제공하는 전자 장치에 관한 것이다. 보다 상세히는, 본 개시는 이차원(2D) 애플리케이션이 삼차원(3D) 가상 현실 환경에서 디스플레이되고 사용되도록 하는 시스템 및 방법에 관한 것이다.
가상 현실(VR) 장치(헤드 마운트 디스플레이(HMD) 또는 VR 헤드셋이라고도 칭함)는 주로 삼차원(3D) VR 체험 시 깊게 관여되는 것인데, VR 헤드셋의 사용자가 자신들의 모바일 전화 및/또는 그 다양한 기능들을 VR 헤드셋을 벗을 필요 없이 이용할 수 있기를 바라는 때가 있다. 예를 들어, 사용자는 VR 헤드셋을 사용하여 영화를 보거나 3D 게임을 하고 있을 수 있는데, 이때 VR 헤드셋을 벗지 않고 문자 메시지를 쓰거나, 이메일을 작성하거나 전화 통화를 하고 싶어할 수 있다. 그러한 상황에서 이차원(2D) 사용자 인터페이스 및/또는 모바일 전화 애플리케이션의 콘텐츠를 3D VR 환경에서 사용자에게 디스플레이 할 수 있다는 것은 바람직한 일이 될 것이다.
소정 구현예들에서, VR 장치는 스마트 폰과 같은 모바일 장치와 사용자 머리에 쓸 수 있는 헤드마운트 프레임을 결합하여 제공된다. 모바일 장치는 모바일 장치의 스크린이 VR 장치의 디스플레이로서 사용되도록 헤드 마운트 프레임 안에 삽입되거나 배치된다. 이런 유형의 VR 장치를 보통, “드롭인(drop-in) 타입 VR 장치”라고 부른다. 그러한 구현예들에서, 모바일 장치의 컴퓨팅 자원들이 VR 이미지나 환경을 렌더링하는데 사용되고, 헤드 마운트 프레임은 터치패드 및/또는 버튼과 같은 제한된 입력 메커니즘을 가질 수 있다. 다른 구현예들에서, 별도의 핸드 헬드(손으로 쥐는) 컨트롤러가 그러한 VR 장치에 무선으로 연결될 수 있다.
그러한 경우, 사용자에게 만족스러운 VR 환경 체험을 제공하기 위해 모바일 장치는 자신의 이용 가능한 컴퓨팅 능력 및 자원들을 효율적으로 사용할 필요가 있다. 그러한 필요성은, 사용자가 모바일 애플리케이션을 통해 공유 비디오와 같은 스트리밍 디지털 미디어 등의 모바일 전화 애플리케이션들을 사용할 수도 있고, 비디오가 드롭인 타입의 VR 장치에서 렌더링되어 3D VR 환경의 이미지의 일부로서 표현될 때, 더 커진다.
본 개시 및 그 이점들에 대한 보다 완전한 이해를 위해, 첨부된 도면들과 함께 이하의 설명을 참조한다.
도 1은 본 개시의 다양한 실시예들에 따라 전자 장치를 포함하는 네트워크 환경을 예시한 블록도이다.
도 2는 본 개시의 다양한 실시예에 따른 전자 장치의 블록도이다.
도 3은 본 개시의 다양한 실시예들에 따른 프로그램 모듈의 블록도이다.
도 4는 본 개시의 다양한 실시예들에 따른 헤드 마운트(head mounted) 전자 장치를 예시한 사시도이다.
도 5는 본 개시의 다양한 실시예들에 따라, 전자 장치들이 결합되는 일 예를 도시한 사시도이다.
도 6은 본 개시의 다양한 실시예들에 따라, 전자 장치들이 결합된 전자 장치를 사용자가 탑재한 예를 도시한 사시도이다.
도 7은 본 개시의 다양한 실시예들에 따라, 전자 장치들이 결합된 전자 장치를 탑재한 사용자에게 스크린이 제공되는 예를 도시한 사시도이다.
도 8은 본 개시의 다양한 실시예들에 따른 헤드 마운트 전자 장치의 구성예를 도시한 블록도이다.
도 9는 본 개시의 다양한 실시예들에 따른 헤드 마운트 전자 장치의 구성예를 도시한 블록도이다.
도 10은 본 개시의 다양한 실시예들에 따른 전자 장치 내 가상 현실 구조 모듈들의 예를 도시한다.
도 11은 본 개시의 다양한 실시예들에 따라, 가상 디스플레이로의 논리적(logical) O 또는 메인 디스플레이로의 예시적 디스플레이 재지정에 대한 흐름도를 도시한다.
도 12는 본 개시의 다양한 실시예들에 따른 스타트업 시, 모바일 장치 등의 내부에서의 디스플레이 재지정 흐름도를 도시한다.
도 13은 본 개시의 다양한 실시예들에 따라, VR 장치와 통신 할 때 스타트업 시 또는 스타트업 후 모바일 장치 등의 내부에서의 디스플레이 재지정 흐름도를 도시한다.
도 14는 본 개시의 다양한 실시예들에 따라 메인 디스플레이 재지정에 대한 흐름도를 도시한다.
도 15a, 15b, 및 15c는 본 개시의 다양한 실시예들에 따라, 세로 및/또는 가로 보기에서 회전하는 모바일 애플리케이션의 2D 그래픽 사용자 인터페이스를 포함하는 3D VR 그래픽 이미지 또는 장면 보기들의 예들이다.
도 16은 본 개시의 다양한 실시예들에 따른 재지정 방법의 흐름도를 도시한다.
본 개시는 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법을 제공한다.
제1 실시예에서, 전자 장치가 제공된다. 전자 장치는 하우징, 및 하우징의 일부분을 통해 노출되는 물리적 디스플레이를 포함한다. 전자 장치는 또한, 하우징 안에 위치하고 물리적 디스플레이와 통신 가능하게 연결되는 적어도 하나의 프로세서를 포함한다. 휘발성 메모리가 하우징 안에 위치하여 적어도 하나의 프로세서와 통신 가능하게 연결된다. 비휘발성 메모리가 하우징 안에 위치하여 적어도 하나의 프로세서와 통신 가능하게 연결된다. 비휘발성 메모리는 이차원(2D) 사용자 인터페이스를 생성하기 위한 제1명령어들, 삼차원(3D) VR 환경을 생성하기 위한 제2명령어들, 및 시스템 명령어들을 저장하도록 구성된다.
제1동작에서, 시스템 명령어들은 실행 시, 적어도 하나의 프로세서가 2D 사용자 인터페이스를 생성하게 하는 제1명령어들을 실행하여 적어도 하나의 프로세서가 제1그래픽 데이터를 제공하고; 제1그래픽 데이터를 물리적 디스플레이로 제공하고; 3D VR 환경을 생성하는 제2명령어들을 실행하여 적어도 하나의 프로세서가 제2그래픽 데이터를 휘발성 메모리에서 제공되는 가상 디스플레이로 제공하게 한다.
또한, 제2동작에서, 시스템 명령어들은 실행 시, 적어도 하나의 프로세서가 2D 사용자 인터페이스를 생성하게 하는 제1명령어들을 실행하여 적어도 하나의 프로세서가 제1그래픽 데이터를 제공하고; 제1그래픽 데이터를 가상 디스플레이로 제공하고; 3D VR 환경을 생성하는 제2명령어들을 실행하여 적어도 하나의 프로세서가 가상 디스플레이로부터 제1그래픽 데이터를 획득하고, 제1그래픽 데이터의 적어도 일부를 사용하여 3D 이미지를 렌더링하고; 렌더링된 3D 이미지를 물리적 디스플레이로 제공하게 한다.
제2 실시예에서, 방법이 제공된다. 방법은 하우징의 일부를 통한 보기를 위한 물리적 디스플레이를 제공하는 단계를 포함한다. 방법은 적어도 하나의 프로세서를 물리적 디스플레이에 통신 가능하게 연결시키는 단계를 포함한다. 방법은 또한, 휘발성 메모리 및 비휘발성 메모리 각각을 적어도 하나의 프로세서에 통신 가능하게 연결하는 단계를 포함한다. 방법은 이차원(2D) 사용자 인터페이스를 생성하기 위한 제1명령어들을 비휘발성 메모리 안에 저장하는 단계를 더 포함한다. 방법은 삼차원(3D) 가상 현실(VR) 환경을 생성하기 위한 제2명령어들을 비휘발성 메모리 안에 저장하고 시스템 명령어들을 비휘발성 메모리 안에 저장하는 단계를 포함한다.
방법은, 제1동작에서, 적어도 하나의 프로세서에 의해 2D 사용자 인터페이스를 생성하기 위한 제1명령어들 중 적어도 일부를 실행할 때, 제1그래픽 데이터를 제공하는 단계; 물리적 디스플레이 안에 제1그래픽 데이터를 디스플레이 하는 단계; 적어도 하나의 프로세서에 의해 3D VR 환경을 제공하기 위한 제2명령어들 중 적어도 일부를 실행할 때, 제2그래픽 데이터를 휘발성 메모리 안에서 제공되는 가상 디스플레이로 제공하는 단계를 포함한다.
방법은, 제2동작에서, 적어도 하나의 프로세서에 의해 2D 사용자 인터페이스를 생성하기 위한 제1명령어들 중 적어도 일부를 실행할 때, 제1그래픽 데이터를 가상 디스플레이로 제공하는 단계; 적어도 하나의 프로세서에 의해 3D VR 환경을 생성하기 위한 제2명령어들 중 적어도 일부를 실행할 때, 가상 디스플레이로부터 제1그래픽 데이터를 획득하는 단계를 포함한다. 방법은 제2동작에서, 적어도 하나의 프로세서에 의해 3D VR 환경을 생성하기 위한 제2명령어들 중 적어도 일부를 실행할 때, 제1그래픽 데이터의 적어도 일부를 사용하여 3D 이미지를 렌더링하는 단계; 및 렌더링된 3D 이미지를 물리적 디스플레이로 제공하는 단계를 더 포함한다.
제3 실시예에서, 컴퓨터 판독가능 매체가 제공된다. 컴퓨터 판독가능 매체는 실행 시 복수의 시스템 명령어들을 포함하여, 실행 시 그 복수의 시스템 명령어들이 전자 장치의 적어도 하나의 프로세서가 비휘발성 메모리 안에 이차원(2D) 사용자 인터페이스를 생성하기 위한 제1명령어들을 저장하게 하도록 한다. 복수의 명령어들은 적어도 하나의 프로세서가 비휘발성 메모리 안에 삼차원(3D) VR 환경을 생성하기 위한 제2명령어들을 저장하게 하도록 더 구성된다.
제1동작에서, 복수의 시스템 명령어들은, 전자 장치의 적어도 하나의 프로세서가 2D 사용자 인터페이스를 생성하게 하는 제1명령어들을 실행하여 적어도 하나의 프로세서가 제1그래픽 데이터를 제공하고; 제1그래픽 데이터를 물리적 디스플레이로 제공하고; 3D VR 환경을 생성하는 제2명령어들을 실행하여 적어도 하나의 프로세서가 제2그래픽 데이터를 휘발성 메모리에서 제공되는 가상 디스플레이로 제공하도록 구성된다. 제2동작에서, 시스템 명령어들은 실행 시, 적어도 하나의 프로세서가 2D 사용자 인터페이스를 생성하기 위한 제1명령어들을 실행하여 적어도 하나의 프로세서가 제1그래픽 데이터를 제공하고 그 제1그래픽 데이터를 가상 디스플레이로 제공하게 한다.
또한, 제2동작에서, 시스템 명령어들은 실행 시, 적어도 하나의 프로세서가 3D VR 환경을 생성하는 제2명령어들을 실행하여 적어도 하나의 프로세서가 가상 디스플레이로부터 제1그래픽 데이터를 획득하고, 제1그래픽 데이터의 적어도 일부를 사용하여 3D 이미지를 렌더링하고; 제공된 3D 이미지를 물리적 디스플레이로 제공하게 한다.
이하의 도면, 상세한 설명 및 청구범위로부터 다른 기술적 특징들이 당업자에게 자명해 보일 것이다. 그 내용은 이해를 돕기 위한 다양한 특정 세부사항들을 포함하지만, 이들은 다만 예로서 간주되어야 한다. 따라서, 당업자라면 본 개시의 범주 및 개념에서 벗어나지 않은 상태로, 여기에서 설명한 다양한 실시예들에 대한 다양한 변경 및 변형이 이루어질 수 있다는 것을 인지할 수 있을 것이다. 또한, 잘 알려진 기능들과 구조들에 대한 설명은 명확함과 간결함을 위해 생략될 수 있다.
이하의 상세한 설명을 수행하기 전에, 이 특허 문서 전체에 걸쳐 사용된 소정 단어들과 어구들의 정의를 설명하는 것이 바람직하다. "연결(결합)한다"는 말과 그 파생어들은 둘 이상의 구성요소들이 서로 물리적 접촉 상태에 있는지 그렇지 않든지, 그들 간의 어떤 직접적이거나 간접적인 통신을 일컫는다. "전송한다", "수신한다", 그리고 "통신한다" 라는 용어들뿐 아니라 그 파생어들은 직간접적 통신 모두를 포함한다. "포함하다" 및 "구비한다"는 용어들 및 그 파생어들은 제한 없는 포함을 의미한다. "또는"이라는 말은 '및/또는'을 의미하는 포괄적인 말이다 "~와 관련된다" 및 그 파생어들은 포함한다, ~ 안에 포함된다, ~와 상호 연결한다, 내포한다, ~안에 내포된다, ~에/와 연결한다, ~에/와 결합한다, ~와 통신할 수 있다, ~와 협력한다, 개재한다, 나란히 놓는다, ~에 근사하다, ~에 속박된다, 가진다, ~의 특성을 가진다, ~와 관계를 가진다는 등의 의미이다. "제어기(컨트롤러)"라는 용어는 적어도 한 동작을 제어하는 어떤 장치, 시스템, 또는 그 일부를 의미한다. 그러한 제어기는 하드웨어나 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 어떤 특정 제어기와 관련된 기능은 국지적이든 원격으로든 중앙 집중되거나 분산될 수 있다. "적어도 하나의~"라는 말은 항목들의 리스트와 함께 사용될 때, 나열된 항목들 중 하나 이상의 서로 다른 조합들이 사용될 수 있고, 그 리스트 내 오직 한 항목만이 필요로 될 수 있다는 것을 의미한다. 예를 들어, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나"는 (1) 적어도 한 A를 포함하거나, (2) 적어도 한 B를 포함하거나, (3) 적어도 한 A 및 적어도 한 B를 포함하는 것 모두를 나타낼 수 있다.
단수형은 관련 문맥이 명백히 다른 것을 지시하지 않는 한 복수의 대상을 포함한다는 것을 알아야 한다. 따라서, 예컨대 "구성요소 표면"이라는 언급은 그러한 표면들 중 하나 이상에 대한 언급을 포함한다.
본 개시의 다양한 실시예들 안에서 사용되는 "제1", "제2" 등과 같은 표현들은 순서나 중요도와는 관계없이 다양한 구성요소들을 수식할 수 있으며, 해당 구성요소들을 한정하는 것이 아니다. 상기 표현들은 단지 한 구성요소를 다른 구성요소들과 구분하기 위한 목적으로 사용된다. 예를 들어, 제1사용자 장치와 제2사용자 장치는 그 장치들 모두가 사용자 장치들이기는 하지만 서로 상이한 사용자 장치들임을 나타낸다. 예를 들어 실시예들의 범위로부터 벗어나지 않고, 제1구성요소는 제2구성요소로 명명될 수 있고, 마찬가지로 제2구성요소는 제1구성요소로 명명될 수 있다.
한 구성요소(가령, 제1구성요소)가 다른 구성요소(가령, 제2구성요소)와 "(동작 또는 통신 가능하게(operatively or communicatively)) 결합 및/또는 연결된다"고 언급될 경우, 이는 한 구성요소가 다른 구성요소에 직접 연결되거나, 한 구성요소가 다른 구성요소에 또 다른 구성요소(가령, 제3구성요소)를 통해 간접적으로 연결된다고 해석될 수 있다. 이와 달리, 어떤 구성요소(가령, 제1구성요소)가 다른 구성요소(가령, 제2구성요소)와 "직접적으로 연결되거나" "직접적으로 결합된다"고 언급되면, 다른 구성요소(가령, 제3의 구성요소)가 그들 사이에 삽입(interpose)되지 않는다.
여기 사용된 바와 같이, "~하는 것으로 구성(또는 설정)된다"라는 표현은 "~에 적합하다", "~하는 기능을 가진다", "~ 하도록 설계된다", "~ 하도록 적응된다", "~ 하는 것으로 만들어진다", "~할 수 있다"와 같은 표현들과 혼용하여 사용될 수 있다. "~ 하도록 구성된다"는 표현이 하드웨어적으로 반드시 "~하도록 특별하게 설계된다"는 것을 의미하는 것은 아닐 수 있다. 이와 달리, 일부 상황에서, "~ 구성된 장치"라는 표현은 그 장치가 다른 장치들이나 구성요소들과 함께 "~ 할 수 있다"는 것을 의미할 수 있다. 예를 들어, "A, B, 및 C를 수행하도록 적응된(구성된) 프로세서"라는 표현은 해당 동작들만을 수행하는 전용 프로세서(가령, 임베디드 프로세서)나 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행하여 해당 동작들을 수행할 수 있는 범용 프로세서(가령, 중앙처리유닛(CPU)나 애플리케이션 프로세서(AP))를 의미할 수 있다.
또한, 이하에 기술되는 다양한 기능들은 하나 이상의 컴퓨터 프로그램들에 의해 구현되거나 지원될 수 있으며, 그 프로그램들 각각은 컴퓨터 판독가능 프로그램 코드로 구성되고 컴퓨터 판독가능 매체에서 실시된다. "애플리케이션" 및 "프로그램"이라는 용어는 하나 이상의 컴퓨터 프로그램, 소프트웨어 성분, 명령어 집합, 절차, 함수, 객체, 클래스, 인스턴스, 관련 데이터, 또는 적합한 컴퓨터 판독가능 프로그램 코드의 구현에 적합한 그들의 일부를 일컫는다. "컴퓨터 판독가능 프로그램 코드"라는 말은 소스 코드, 객체 코드, 및 실행 코드를 포함하는 모든 타입의 컴퓨터 코드를 포함한다. "컴퓨터 판독가능 매체"라는 말은 ROM(read only memory), RAM(random access memory), 하드 디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 어떤 다른 유형의 메모리와 같이, 컴퓨터에 의해 액세스될 수 있는 모든 유형의 매체를 포함한다. "비일시적" 컴퓨터 판독가능 매체는 일시적인 전기 또는 기타 신호들을 전송하는 유선, 무선, 광학, 또는 기타 통신 링크들을 배제한다. 비일시적 컴퓨터 판독가능 매체는 데이터가 영구적으로 저장될 수 있는 매체, 및 재기록 가능 광학 디스크나 삭제가능 메모리 장치와 같이 데이터가 저장되고 나중에 덮어 씌어질 수 있는 매체를 포함한다.
다른 소정 단어들 및 어구들에 대한 정의가 이 특허 문서 전체에 걸쳐 제공된다. 당업자는 대부분의 경우들은 아니어도 많은 경우, 그러한 정의들이 그렇게 정의된 단어들 및 어구들의 이전뿐 아니라 이후 사용에도 적용된다는 것을 알 수 있을 것이다.
이하에 논의되는 도 1 내지 16 및 이 특허 문서의 본 개시의 원리를 기술하는데 사용되는 다양한 실시예들은 단지 예일뿐으로 어떤 식으로도 본 개시의 범위를 한정하는 것으로 간주되어서는 안될 것이다. 당업자는 본 개시의 원리들이 어떤 적절하게 구성된 무선 통신 시스템으로 구현될 수 있다는 것을 알 수 있을 것이다.
여기에서 사용되는 용어들은 다만 본 개시의 특정 실시예들을 설명할 목적을 위한 것으로, 다른 실시예들의 범위를 제한하려는 것이 아니다. 다르게 정의되지 않는다면, 기술 및/또는 과학 용어들을 포함하여 여기에 사용되는 모든 용어들은 본 개시가 속하는 기술 분야의 숙련자들이 일반적으로 이해하는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전 안에서 정의되는 것과 같은 용어들은 본 개시 안에서 명확하게 정의되지 않는다면, 관련 기술 분야에서의 정황적 의미들과 같은 의미들을 가지는 것으로 해석되어야 하며, 이상적이거나 과도하게 형식적인 의미로 해석되어서는 안된다. 일부의 경우, 본 개시에서 정의되는 용어들조차도 본 개시의 다양한 실시예들을 배제하도록 해석되어서는 안될 것이다.
예를 들어, 전자 장치는 스마트 폰, 태블릿 퍼스널 컴퓨터(PC), 모바일 폰, 모바일 장치, 비디오 폰, 전자책(e-book) 리더, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션 서버, PDA(personal digital assistant), PMP(portable multimedia player), MPEG-1 또는 MPEG-2(Moving Picture Experts Group phase 1 or phase 2) 오디오 레이어 3(MP3) 플레이어, 모바일 의료기, 카메라, 및 착용형 장치(가령, 전자 안경, 전자 옷, 전자 팔찌, 전자 목걸이, 전자 액세서리, 전자 문신, 또는 스마트 와치와 같은 헤드 마운트 장치(HMD)) 중 적어도 하나일 수 있다.
본 개시의 일부 실시예들에 따르면, 전자 장치는 스마트 가전 기기일 수 있다. 스마트 가전 기기는 예를 들어, 텔레비전(TV), DVD(digital versatile disc) 플레이어, 오디오 플레이어, 냉장고, 에어컨, 청소기, 오븐, 마이크로웨이브 오븐, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토메이션 제어 패널, 보안 제어 패널, TV 박스(가령, HomeSync, 애플 TV, 또는 구글 TV), 게임 콘솔(가령, Xbox, PlayStation), 전자 사전, 전자 키, 캠코더, 및 전자 프레임 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치는, 다양한 의료 기기들(가령, 다양한 휴대형 의료 측정기기(혈당 측정기, 심박 모니터링 장치, 혈압 측정기, 체온 측정기 등), MRA(magnetic resource angiography), MRI(magnetic resource imaging), CT(computed tomography) 머신, 및 초음파 기기), 네비게이션 기기, GPS(global positioning system) 수신기, EDR(event data recorder), FDR(flight data recorder), 차량의 인포테인먼트(infotainment) 장치, 선박용 전자 장치(가령, 선박용 네비게이션 장치 및 자이로 나침반), 항공 전자 기기, 보안 기기, 차량 관련 헤드 유닛, 산업용 혹은 가정용 로봇, 은행의 ATM(automatic teller's machine), 상점의 POS(point of sales), 또는 사물 인터넷 장치들(가령, 전구, 다양한 센서들, 전기 또는 자기 미터, 스프링클러 장치, 화재 경보기, 온도계, 가로등, 토스터, 스포츠 용품, 온수 탱크, 히터, 또는 보일러 등) 중 적어도 하나를 포함할 수 있다.
본 개시의 일부 실시예들에 따르면, 전자 장치는 카메라 기능을 포함하는 빌딩/구조물의 일부나 가구, 전자 보드, 전자 서명 수신 장치, 프로젝터, 및 다양한 타입의 측정 장치들(가령, 수도 계량기, 전기 계량기, 가스 계량기, 무선 계량기 등) 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시예들에서, 전자 장치는 상술한 다양한 장치들 중 하나 이상의 조합일 수 있다. 본 개시의 일부 실시예들에 따르면, 전자 장치는 플렉시블(flexible) 장치일 수 있다. 또한, 본 개시의 다양한 실시예들에 따른 전자 장치는 상술한 장치들에 국한되지 않고, 기술의 발전과 함께 새로운 전자 장치들을 포함할 수 있다.
지금부터 첨부된 도면들을 참조하여 본 개시의 다양한 실시예들에 따른 전자 장치가 설명될 것이다. 여기서 사용되는 “사용자(user)”라는 용어는 전자 장치나 전자 장치를 사용하는 어떤 장치(인공지능 전자 장치 등)를 사용하는 사람을 나타낼 수 있다.
도 1은 본 개시의 다양한 실시예들에 따른 전자 장치를 포함하고, 본 개시의 실시예들이 구현될 수 있는 네트워크 환경을 도시한다. 도 1에 도시된 전자 장치(101)의 실시예는 다만 예시를 위한 것으로, 전자 장치(101)는 광범위한 구성들로 나타날 수 있고, 도 1은 본 개시의 범위를 어떤 특정한 전자 장치의 구현예로 한정하지 않는다.
다양한 실시예들에서, 전자 장치(101)는 다양한 형식을 취할 수 있으며, 본 개시는 어떤 특정한 형식에 국한되지 않는다. 예를 들어, 전자 장치(101)는 머리에 탑재될 수 있는 디스플레이일 수 있다. 전자 장치(101)는 또한, 예컨대 사용자 단말, 모바일 장치, 모바일 스테이션, 가입자 스테이션, 무선 단말, 스마트 폰, 태블릿 등과 같이, 헤드셋이나 가상 현실(VR) 및/또는 증강 현실(AR) 애플리케이션들과 함께 탑재 가능한 모바일 통신 장치일 수 있다. 다른 예들에서, 전자 장치(101)는 헤드셋을 포함할 수 있고, 예컨대 안경, 고글, 헬멧 등과 같이 VR 및/또는 AR 애플리케이션들을 위한 착용형 전자 장치의 형식을 취할 수 있다.
도 1을 참조할 때, 네트워크 환경(100) 내 전자 장치(101)는 버스(110), 프로세서(120), 하드웨어 구성기(composer)(125), 메모리(130), 입출력(I/O) 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 포함한다. 본 개시의 일부 실시예들에서, 전자 장치(101)는 상기 구성요소들(110 내지 170) 중 적어도 하나를 생략하거나, 다른 구성요소를 더 포함할 수 있다.
버스(110)는 예를 들어, 전자 장치(101)의 구성요소들(110 내지 170)을 연결시켜 그 구성요소들간 통신(가령, 제어 메시지들 및/또는 데이터)을 전송하는 회로를 포함할 수 있다.
프로세서(120)는 CPU, AP, 그래픽 프로세서 유닛(GPU) 및 통신 프로세서(CP) 중 하나 이상을 포함할 수 있다. 프로세서(120)는, 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
프로세서(120)는 제어기라고 부를 수 있고, 혹은 프로세서의 일부로서 제어기를 포함하거나 제어기의 일부를 구성할 수 있다. 제어기는 전자 장치(101)의 적어도 하나의 다른 구성요소, 예를 들어, 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및 통신 인터페이스(170)를 제어하여, 본 개시의 다양한 실시예들에 따른 디스플레이 방법에 의한 동작을 수행하도록 할 수 있다.
하드웨어 구성기(Hardware Composer: HWC)(125)는 디스플레이(160)를 지원하는 하드웨어 추상부(abstraction)이다. 그래픽 구성 작업이 HWC(125)로 위임되어, 프로세서(들)인 GPU나 CPU(120)로부터 계산적인 그래픽 관련 처리 부담을 덜 수 있다. 다양한 실시예들에서, SURFACEFLINGER라 부르는 애플리케이션 또는 그에 상응하는 애플리케이션(앱)이 가능한 하드웨어를 사용하여 버퍼들의 구성을 위임할 수 있다.
일부 실시예들에서 HWC는 부분적으로 애플리케이션(147)이고/이거나 미들웨어(143)로서 동작할 수 있다. HWC(125)는 GPU에서 보다는 디스플레이 하드웨어 내에서 다수의 버퍼들을 함께 구성하기 위해 이용 가능한 하드웨어와 함께 버퍼들을 구성하는 가장 효율적인 방법을 결정하는 것을 기본 목적으로 한다.
예를 들어, 모바일 전화에서, 수직 방향으로 계층 1인 최상부에 상태 바(status bar)가 있고, 계층 2인 최하위에 탐색 바(navigation bar)가 있고, 계층 3인 다른 모든 곳에 모바일 전화 애플리케이션과 관련된 애플리케이션 콘텐츠가 있을 수 있다. 여기서, 각각의 계층 1, 2, 및 3의 콘텐츠는 다양한 실시예들에서 예컨대 메모리(130)의 휘발성 메모리 부분 안에 있을 수 있는 3 개의 독립적인 버퍼들 안에 들어 있다.
모바일 장치는 GPU가 한 번에 하나씩 계층들을 포함하는 스크래치(scratch) 버퍼를 생성하는데 사용되지 않고, 세 계층들의 스크래치 버퍼 콘텐츠를 디스플레이 하드웨어(160)로 넘길 때 보다 에너지 효율적이다. HWC(125)에 의해 제어되는 독립적인 버퍼들로 계층들 각각을 넘기고 디스플레이 하드웨어(160)에게 서로 다른 HWC 버퍼들(125)로부터 물리적 디스플레이나 다른 디스플레이 하드웨어의 여러 부분들로 데이터를 읽어서 보내라고 지시하는 것이 보다 에너지 및 시간 면에서 효율적이다.
메모리(130)는 휘발성 메모리 및/또는 비휘발성 메모리를 포함한다. 메모리(130)는 예를 들면, 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 휘발성 메모리는 디스플레이 하드웨어(160) 상에 디스플레이될 수 있는 그래픽 콘텐츠의 하나 이상의 계층들을 저장하기 위한 버퍼로서 사용될 수 있다.
본 개시의 일 실시예에 따르면, 메모리(130)는 소프트웨어 및/또는 프로그램(140)을 저장한다. 예를 들어, 프로그램(140)은 커널(141), 미들웨어(143), API(application programming interface)(145), 및/또는 애플리케이션 프로그램(애플리케이션, 앱, 또는 모바일 앱)을 포함한다. 커널(141), 미들웨어(143) 및 API(145) 중 적어도 일부가 운영체제(OS)라고 불릴 수 있다.
커널(141)은 다른 프로그램들(예를 들어 미들웨어(143), API(145) 또는 애플리케이션 프로그램(147))에 의해 구현되는 동작이나 기능을 실행하는데 사용되는 시스템 자원들(가령, 버스(110), 프로세서(120)나 메모리(130))를 제어하거나 관리한다. 또한, 커널(141)은 미들웨어(143), API(145), 또는 애플리케이션 프로그램(147)이 전자 장치(101)의 개별 구성요소들을 액세스하여 시스템 자원들을 제어하거나 관리하도록 할 수 있게 하는 인터페이스를 제공한다.
미들웨어(143)는 예컨대, 매개자 역할을 함으로써, API(145)나 애플리케이션 프로그램들(147)이 데이터 교환을 위해 커널(141)과 통신할 수 있게 한다. 또한, 애플리케이션들(147)로부터 수신된 작업 요청들과 관련하여, 미들웨어(143)는 예를 들어, 전자 장치(101)의 버스(110), 프로세서(120), 또는 메모리(130) 등이 우선적으로 사용될 수 있게 하는 우선순위를 할당하는 방법 등을 이용하여 애플리케이션들(147) 중 적어도 하나에 대한 작업 요청을 위한 스케줄링이나 부하 밸런싱 등에 대한 제어를 수행할 수 있다.
API(145)는 예컨대, 커널(141)이나 미들웨어(143)로부터 제공되는 기능들을 애플리케이션들이 제어하게 하는 인터페이스이며, 예를 들어 파일 제어, 윈도우 제어, 이미지 처리, 또는 텍스트 제어 명령들과 같은 적어도 하나의 인터페이스나 기능을 포함할 수 있다.
입출력 인터페이스(150)는 사용자나 다른 외부 장치에서 전자 장치(101) 내 입/출력 인터페이스(150)를 제외한 구성요소(들)로 입력되는 명령이나 데이터를 전달할 수 있는 인터페이스 기능을 담당할 수 있다. 또한, 입출력 인터페이스(150)는 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령들이나 데이터를 사용자나 다른 외부 장치로 출력한다.
디스플레이(160)는 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템 (MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 예를 들어, 디스플레이(160)는 다양한 콘텐츠, 예컨대 텍스트, 이미지, 비디오, 아이콘, 심볼 등을 사용자에게 디스플레이 한다. 디스플레이(160)는 터치 스크린을 포함하며, 예를 들어 전자 펜이나 사용자의 신체 일부를 사용하는 터치, 제스처, 접근, 또는 호버링(hovering) 입력을 수신한다.
통신 인터페이스(170)는 예를 들어, 전자 장치(101) 및 제1외부 전자 장치(102), 제2외부 전자 장치(104), 또는 서버(106)와 같은 외부 장치 사이에 통신을 설정한다. 예를 들어 통신 인터페이스(170)는 외부 장치, 예를 들어 제2외부 전자 장치(104)나 서버(106)와 통신하기 위해 유무선 통신을 통해 네트워크(162)에 연결될 수 있다. 다양한 실시예들에서, 통신 인터페이스(170)는 또한, 무선 통신(164)를 이용하여 제1외부 전자 장치(102)와 같은 외부 장치와 통신할 수 있다.
무선 통신은 예를 들어, Wi-Fi, 블루투스(BT), 근거리 통신(NFC), GPS, 및 셀룰라 통신(예를 들어, LTE(long term evolution), LTE-A(LTE-advanced), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunication system), WiBro(wireless broadband), GSM(global system for mobile communications) 등) 중 적어도 하나를 포함할 수 있다. 유선 통신은 예를 들어, USB(Universal Serial Bus), HDMI(High Definition Multimedia Interface), RS-232(Recommended Standard 232) 또는 POTS(Plain Old Telephone Service) 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에 따르면, 네트워크(162)는 원격통신 네트워크, 예를 들어 컴퓨터 네트워크(가령, LAN(local area network) 또는 WAN(wide area network), 인터넷, 및 전화 네트워크)를 포함한다.
제1 및 제2 외부 전자 장치들(102 및 104)과 서버(106)는 각각 전자 장치(101)와 동일하거나 상이한 장치일 수 있다. 본 개시의 일 실시예에 따르면, 서버(106)는 하나 이상의 서버들의 그룹을 포함할 수 있다. 본 개시의 다양한 실시예들에 따르면, 전자 장치(101)에 의해 수행되는 동작들의 전부나 일부가 다른 전자 장치나 복수의 전자 장치들에 의해 수행될 수 있다. 예를 들어, 그 동작들의 전부나 일부는 제1외부 전자 장치(102), 제2외부 전자 장치(104), 또는 서버(106) 중 하나 이상에 의해 수행될 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치(101)가 자동으로, 혹은 요청에 따라 어떤 기능들이나 서비스들을 수행해야 할 때, 전자 장치(101)는 자신이 그 기능들이나 서비스들을 수행하지 않고, 제1외부 전자 장치(102), 제2외부 전자 장치(104), 또는 서버(106)와 같은 다른 장치에게 그 기능들이나 서비스들과 관련된 적어도 일부 기능들을 수행하라고 요청한다. 제1외부 전자 장치(102), 제2외부 전자 장치(104), 또는 서버(106)가 되는 다른 전자 장치는 요청된 기능이나 추가 기능을 수행할 수 있고, 그 결과를 전자 장치(101)로 전송할 수 있다. 전자 장치(101)는 또한, 요청된 기능들이나 서비스들을 수신된 결과에 기반하여 바로 제공하거나 수신된 결과의 추가 처리 후에 제공할 수 있다. 이를 위해, 예컨대 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 사용될 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치(102)는 전자 장치(101) 같은 다른 전자 장치에 탈부착 될 수 있는 상태로 사용될 수 있는 헤드 마운트 장치(HMD)일 수 있다. 이 경우, 전자 장치(102)는 디스플레이를 포함하지 않을 수 있다. 예를 들어, 전자 장치(101)가 전자 장치(102)에 결합된 상태로 사용될 때, 전자 장치(101)는 디스플레이(160)를 통해, 전자 장치(101)와 전자 장치(102)가 결합된 전자 장치를 착용한 사용자에게 스크린을 제공한다.
도 2는 본 개시의 다양한 실시예에 따른 전자 장치(200)의 블록도이다. 다양한 실시예들에서, 전자 장치(200)는 다양한 형식을 취할 수 있으며, 본 개시는 어떤 특정한 형식에 국한되지 않는다. 예를 들어, 전자 장치(200)는 머리에 탑재될 수 있는 디스플레이(HMD)일 수 있다. 전자 장치(200)는 또한, 예컨대 사용자 단말, 모바일 스테이션, 가입자 스테이션, 무선 단말, 스마트 폰, 태블릿 등과 같이, 헤드셋이나 가상 현실(VR) 및/또는 증강 현실(AR) 애플리케이션들과 함께 탑재 가능하거나 연결 가능한 모바일 통신 장치일 수 있다. 다른 예들에서, 전자 장치(200)는 헤드셋을 포함할 수 있고, 예컨대 안경, 고글, 헬멧 등과 같이 VR 및/또는 AR 애플리케이션들을 위한 착용형 전자 장치의 형식을 취할 수 있다.
도 2를 참조할 때, 전자 장치(200)는 도 1에 도시된 전자 장치(101)의 전체나 일부를 포함할 수 있다. 전자 장치(200)는 적어도 하나의 애플리케이션 프로세서(AP)(210), 통신 모듈(220), 가입자 식별 모듈(SIM) 카드(224), 메모리(230), 센서 모듈(240), 입력 장치(250), 디스플레이(260), 인터페이스(270), 오디오 모듈(280), 카메라 모듈(291), 전력 관리 모듈(295), 배터리(296), 지시자(297) 또는 모터(298)를 포함할 수 있다.
AP(210)는 가령 OS나 애플리케이션 프로그램들을 구동시켜 프로세서(210)에 연결된 복수의 하드웨어나 소프트웨어 구성요소들을 제어할 수 있고, 다양한 유형의 데이터 처리 및 연산을 수행할 수 있다. 일부 실시예들에서, AP(210)는 예를 들어 SoC(system on chip)으로 구현된다. 본 개시의 일 실시예에 따르면, AP(210)는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. AP(210)는 도 2에 예시된 구성요소들 중 적어도 일부(가령, 셀룰라 모듈(221))를 포함할 수 있다. AP(210)는 다른 구성요소들 중 적어도 하나로부터 수신된 명령들 또는 데이터를 메모리(230) 안에 포함될 수 있는 휘발성 메모리에 로드하고, 로드된 명령들이나 데이터를 처리하고, 다양한 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(220)은 도 1의 통신 인터페이스(170)와 구성이 동일하거나 유사할 수 있다. 본 개시의 일 실시예에 따르면, 통신 모듈(220)은 셀룰라 모듈(221), Wi-Fi 모듈(223), 블루투스(BT) 모듈(225), GPS 모듈(227), 근거리 통신(NFC) 모듈(228), 및 무선 주파수(RF) 모듈(229)을 포함한다.
셀룰라 모듈(221)은 음성 통화, 이미지 통화, 텍스트 메시지 서비스, 또는 인터넷 서비스를 가령 통신 네트워크를 통해 제공한다. 본 개시의 일 실시예에 따르면, 셀룰라 모듈(221)은 가입자 식별 모듈(SIM 카드)(224)을 사용하여 통신 네트워크 내 전자 장치(200)를 판별 및 인증할 수 있다. 본 개시의 일 실시예에 따르면, 셀룰라 모듈(221)은 AP(210)에 의해 제공될 수 있는 기능들 중 적어도 일부를 수행할 수 있다. 본 개시의 일 실시예에 따르면, 셀룰라 모듈(221)은 CP를 포함할 수 있다.
Wi-Fi 모듈(223), BT 모듈(225), GPS 모듈(227) 및 NFC 모듈(228)은 해당 모듈을 통해 송신/수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 본 개시의 일부 실시예들에 따르면, 셀룰라 모듈(221), Wi-Fi 모듈(223), BT 모듈(225), GPS 모듈(227) 및 NFC 모듈(228) 중 적어도 일부(가령, 둘 이상)는 집적 칩(IC)이나 IC 패키지 안에 포함될 수 있다.
RF 모듈(229)은 예컨대 RF 신호들과 같은 통신 신호들을 송/수신할 수 있다. RF 모듈(229)은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 및 안테나를 포함한다. 본 개시의 일 실시예에 따르면, 셀룰러 모듈(221), Wi-Fi 모듈(223), BT 모듈(225), GPS 모듈(227), 및 NFC 모듈(228) 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호들을 송수신할 수 있다.
SIM 카드(224)는 가입자 식별 모듈 및/또는 내장된 SIM을 포함하는 카드를 포함하고, 예를 들어 ICCID(integrated circuit card identifier)와 같은 고유 식별 정보나 가령 IMSI(international mobile subscriber identity)와 같은 가입자 정보를 포함한다.
메모리(230)는 내부 메모리(232)나 외부 메모리(234)를 포함할 수 있다. 내부 메모리(232)는 예를 들어 DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM) 등과 같은 휘발성 메모리를 포함할 수 있다. 내부 메모리(232)는 또한, OTPROM(onetime programmable read only memory), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), 플래쉬 메모리(가령, NAND 플래쉬 메모리나 NOR 플래쉬 메모리), 하드 드라이브, 또는 SSD(solid state drive) 등과 같은 비휘발성 메모리를 포함할 수 있다.
외부 메모리(234)는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), 메모리 스틱 등을 포함할 수 있다. 외부 메모리(234)는 다양한 인터페이스를 통하여 전자 장치(200)와 기능적으로 및/또는 물리적으로 연결될 수 있다.
센서 모듈(240)은 거리 등과 같은 물리적 수량을 측정하거나 전자 장치(200)의 동작 상태를 검출하고, 측정되거나 검출된 정보를 전기적 신호로 변환할 수 있다. 센서 모듈(240)은 예컨대, 제스처 센서(240A), 자이로 센서(240B), 대기압 센서(240C), 자기 센서(240D), 가속 센서(240E), 그립 센서(240F), 근접 센서(240G), 컬러 센서(가령, RGB(Red, Green, Blue) 센서)(240H), 생체측정 센서(240I), 온도/습도 센서(240J), 조도 센서(240K), 및 자외선 (UV) 센서(240L) 중 적어도 하나를 포함할 수 있다. 추가적으로나 대안적으로, 센서 모듈(240)이 전기 잡음(E-noise) 센서, 근전도 검사(EMG) 센서, 뇌전도(EEG) 센서, 심전도(ECG) 센서, 적외선(IR) 센서, 홍채 센서, 및/또는 지문 센서를 포함할 수 있다. 센서 모듈(240)은 또한, 그 안에 포함된 하나 이상의 센서들을 제어하기 위한 제어 회로를 포함할 수 있다. 본 개시의 일부 실시예들에서, 전자 장치(200)는 AP(210)의 일부로서나 개별적으로 센서 모듈(240)을 제어하도록 구성되는 프로세서를 더 포함할 수 있고, AP(210)가 휴면 상태인 동안 센서 모듈(240)을 제어할 수 있다.
입력 장치(250)는 터치 패널(252), (디지털) 펜 센서(254), 키(256), 또는 초음파 입력 장치(258) 가운데 하나 이상일 수 있다. 터치 패널(252)은 예를 들어, 정전 방식, 저항 방식, IR 방식 및 초음파 방식 중 적어도 하나를 사용할 수 있다. 터치 패널(252)은 제어 회로를 더 포함할 수 있다. 터치 패널(252)은 촉각층(tactile layer)을 포함하여 사용자에게 촉각적 피드백을 제공할 수도 있다.
(디지털) 펜 센서(254)는 예를 들어, 터치 패널의 일부이거나 터치 패널과 분리된 인식 시트를 포함할 수 있다. 키(256)는 예컨대, 물리적 버튼, 광학적 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치(258)는 데이터를 식별하기 위해 초음파 신호를 생성하는 입력 툴을 통해, 전자 장치(200)의 마이크로폰(288)을 이용하여 음파를 검출한다.
도 1의 디스플레이(160)일 수 있는 디스플레이(260)는 패널(262), 홀로그램 장치(264), 또는 프로젝터(266)를 포함할 수 있다. 패널(262)은 도 1에 도시된 디스플레이(160)의 구성과 동일하거나 유사한 구성을 포함할 수 있다. 패널(262)은 예컨대, 유연하거나 투명하거나 착용할 수 있도록 구현될 수 있다. 패널(262)은 터치 패널(252)과 함께 단일 모듈로서 형성될 수 있다. 홀로그램 장치(264)는 광 간섭을 이용하여 공중에 삼차원 이미지를 투영할 수 있다. 프로젝터(266)는 스크린 상에 빛을 투영하여 이미지를 디스플레이 할 수 있다. 스크린은 예를 들어, 전자 장치(200)의 내부, 또는 외부에 위치될 수 있다. 본 개시의 일 실시예에 따르면, 디스플레이(260)는 패널(262), 홀로그램 장치(264) 또는 프로젝터(266) 를 제어하기 위한 제어 회로를 더 포함할 수도 있다.
인터페이스(270)는 HDMI(272), USB(274), 광학적 인터페이스(276), 또는 D-sub(D-subminiature)(278)일 수 있다. 인터페이스(270)는 예컨대, 도 1에 도시된 통신 인터페이스(170) 안에 포함될 수 있다. 부가적으로나 대안적으로, 인터페이스(270)가 예컨대, MHL(Mobile High-definition Link) 인터페이스, SD 카드/멀티미디어 카드(MMC) 인터페이스, 또는 IrDA(Infrared Data Association) 표준 인터페이스를 포함할 수 있다.
오디오 모듈(280)은 예컨대, 소리 및 전기 신호를 양방향 변환하도록 구성될 수 있다. 오디오 모듈(280)의 적어도 일부의 구성요소들은 예를 들어 도 1에 도시된 입출력 인터페이스(150) 안에 포함될 수도 있다. 오디오 모듈(280)은 예컨대, 스피커(282), 수신기(284), 이어폰(286), 또는 마이크로폰(288)을 통해 입력되거나 출력되는 소리 정보를 처리할 수 있다.
카메라 모듈(291)은 정지 영상 및 동영상을 촬영할 수 있는 장치이다. 본 개시의 일 실시예에 따르면, 카메라 모듈(291)은 예를 들어, 전방 센서나 후방 센서, 렌즈, 이미지 시그널 프로세서(ISP) 또는 플래쉬, 예를 들어 LED나 제논(xenon) 램프 플래쉬와 같은 하나 이상의 이미지 센서들을 포함한다.
전력 관리 모듈(295)은 전자 장치(200)의 전력 등을 관리한다. 본 개시의 일 실시예에 따르면, 전력 관리 모듈(295)은 전력 관리 IC(PMIC), 충전기 IC, 배터리 또는 연료 게이지를 포함한다. PMIC는 유선 및/또는 무선 충전 방법을 사용할 수 있다. 무선 충전 방법의 예들로는, 가령, 자기 공명 방법, 자기 유도 방법, 전자기 방법 등이 포함된다. 코일 루프, 공진 회로, 또는 정류 회로와 같이 무선 충전에 사용되는 추가 회로들 또한 포함될 수 있다. 배터리 게이지는 가령, 배터리를 충전하거나 방전하는 동안 배터리의 전압, 전류, 또는 온도를 포함할 수 있는 배터리(296)의 충전 잔량을 측정하도록 구성된다. 배터리(296)는 예컨대, 재충전 가능 배터리 또는 태양광 배터리를 포함할 수 있다.
지시자(297)는 전자 장치(200)나 AP(210)와 같은 전자 장치(200)의 일부의 소정 상태를 디스플레이 하도록 구성될 수 있다. 지시자는 장치(200)의 부팅 상태, 메시지 상태, 충전 상태 등과 관련된 정보를 디스플레이 할 수 있다. 모터(298)는 예를 들어 진동, 햅틱 효과 등을 생성하기 위해 전기 신호를 기계적 진동으로 변환한다. 구체적으로 예시하지는 않았지만, 전자 장치(200)는 프로세싱 장치, 예컨대 시각적 그래픽 데이터를 처리하는 모바일 TV 및 기타 애플리케이션들을 지원하기 위한 GPU 및/또는 관련 하드웨어 구성기(composer)를 포함한다. 모바일 TV 지원을 위한 프로세싱 장치는 DMB(digital multimedia broadcasting), DVB(digital video broadcasting), MEDIAFLO 등의 표준에 따라 미디어 데이터를 처리할 수 있다.
본 개시에 따른 전자 장치의 구성요소들 각각은 하나 이상의 구성요소들에 의해 구현될 수 있고, 해당 구성요소의 이름은 전자 장치의 타입에 따라 달라질 수 있다. 본 개시의 다양한 실시예들에 따르면, 전자 장치는 위에서 나열한 요소들 중 적어도 하나를 포함한다. 상술한 요소들 중 일부가 전자 장치에서 생략되거나, 전자 장치가 추가 요소들을 더 포함할 수 있다. 또한, 다양한 실시예들에서 전자 장치의 구성요소들 중 일부가 결합되어 하나의 개체를 형성하고, 따라서 결합 이전의 해당 구성요소들의 기능들을 동등하게 실행한다.
도 3은 본 개시의 다양한 실시예들에 따른 프로그램 모듈(300)의 블록도이다. 이 프로그램 모듈(300)의 실시예는 다만 예시를 위한 것이며, 프로그램 모듈(300)은 광범위한 구성들로 설정될 수 있으며, 도 1은 본 개시를 어떤 특정한 구현예의 프로그램 모듈에 국한시키지 않는다.
도 3을 참조하면, 본 개시의 일 실시예에 따라, 프로그램 모듈(300)(도 1의 프로그램(140) 및 도 2의 메모리(230) 또한 참조)은 전자 장치들(101 또는 200)과 같은 전자 장치 및/또는 운영체제(OS) 안에서 실행되는 애플리케이션 프로그램(147)등과 같은 다양한 애플리케이션들과 관련된 자원들을 제어하기 위한 상기 OS를 포함할 수 있다. OS는 안드로이드(ANDROID), 아이폰 OS(IOS), 윈도우즈(WINDOWS), 심비안(SYMBIAN), 타이젠(TIZEN), 바다(BADA) 등을 포함하는 다양한 운영체제들 중 어느 하나일 수 있다.
프로그램 모듈(300)은 보통, 커널(320), 미들웨어(330), API(360) 및/또는 애플리케이션들(370) 중 하나 이상을 포함한다. 프로그램 모듈(300)의 적어도 일부는 전자 장치(101)와 같은 전자 장치 안에 미리 로드 될 수 있고/있거나 서버(106)와 같은 서버로부터 다운로드 될 수 있다.
커널(141) 등과 같은 커널(320)은 시스템 자원 관리자(321)나 장치 드라이버(323)를 포함할 수 있다. 시스템 자원 관리자(321)는 시스템 자원들에 대한 제어, 할당, 검색 등을 수행한다. 본 개시의 일 실시예에 따르면, 시스템 자원 관리자(321)는 프로세스 관리자, 메모리 관리자, 파일 시스템 관리자 등을 포함한다. 장치 드라이버(323)는 디스플레이 드라이버, 카메라 드라이버, BT 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 프로세스간 통신(IPC) 드라이버 가운데 하나 이상을 포함할 수 있다.
미들웨어(330)는 애플리케이션들(370)이 공통적으로 요구하는 기능을 제공하거나, API(360)를 통해 애플리케이션들(370)으로 다양한 기능들을 제공하여, 애플리케이션들(370)이 전자 장치(101 또는 200) 안에서 제한된 시스템 자원들을 효율적으로 사용할 수 있도록 한다. 본 개시의 일 실시예에 따르면, 미들웨어(330)(가령, 미들웨어(143))는 런타임 라이브러리(335), 애플리케이션 관리자(341), 윈도우 관리자(342), 멀티미디어 관리자(343), 자원 관리자(344), 전력 관리자(345), 데이터베이스 관리자(346), 패키지 관리자(347), 연결 관리자(348), 통지 관리자(349), 위치 관리자(350), 그래픽 관리자(351) 및 보안 관리자(352) 중 적어도 하나를 포함한다.
런타임 라이브러리(335)는 애플리케이션(370)이 실행되는 동안 프로그래밍 언어를 통해 새 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함한다. 런타임 라이브러리(335)는 입출력 관리, 메모리 관리, 연산 기능을 위한 기능을 수행할 수 있다.
애플리케이션 관리자(341)는 예컨대, 애플리케이션들(370) 중 적어도 하나의 라이프 사이클을 관리한다. 윈도우 관리자(342)는 스크린에 의해 사용되는 그래픽 사용자 인터페이스(GUI) 자원들을 관리할 수 있다. 멀티미디어 관리자(343)는 다양한 미디어 파일들의 재생에 필요한 포맷들을 검출하고, 해당 포맷에 적합한 코덱을 사용하여 미디어 파일의 인코딩 또는 디코딩을 수행한다. 자원 관리자(344)는 소스 코드, 메모리, 및 애플리케이션들(370) 중 적어도 하나의 저장 공간과 같은 자원들을 관리할 수 있다.
전력 관리자(345)는 기본 입출력 시스템(BIOS)와 함께, 배터리나 전력원을 관리하도록 동작한다. 전력 관리자(345)는 전자 장치의 동작에 필요한 전력 정보를 제공한다. 데이터베이스 관리자(346)는 애플리케이션들(370) 중 적어도 하나에 의해 사용될 데이터베이스를 생성, 검색 또는 변경할 수 있다. 패키지 관리자(347)는 패키지 파일의 형식으로 배포되는 애플리케이션의 설치나 업데이트를 관리할 수 있다.
연결 관리자(348)는 Wi-Fi나 BT와 같은 무선 연결을 관리한다. 통지 관리자(349)는 사용자를 곤란하게 만들지 않는 방식으로 메시지 도착, 약속, 또는 근접 알람 등과 같은 이벤트를 디스플레이 하거나 통지하도록 구성된다. 위치 관리자(350)는 전자 장치에 대한 위치 정보를 관리한다. 그래픽 관리자(351)는 사용자에게 제공될 수 있는 그래픽 효과, 또는 그래픽 효과와 관련된 사용자 인터페이스를 관리한다. 보안 관리자(352)는 시스템 보안이나 사용자 인증을 위해 요구되는 모든 보안 기능들을 제공한다. 본 개시의 일 실시예에 따르면, 전자 장치, 예를 들어 전자 장치(101)가 전화 통화 기능을 가질 때, 미들웨어(330)는 전자 장치의 음성 통화 기능 또는 화상 통화 기능을 관리하기 위한 전화 관리자를 더 포함할 수 있다.
미들웨어(330)는 도 1, 2 및 3의 상술한 구성요소들의 다양한 기능들의 조합을 형성하는 미들웨어 모듈을 포함한다. 미들웨어(330)는 차별화된 기능들을 제공하기 위해 각각의 OS 유형에 특화된 모듈을 제공한다. 또한 미들웨어(330)는 동적으로, 기존 구성요소들 중 일부를 제거하거나 새로운 구성요소들을 추가할 수 있다.
API(360), 예를 들어 API(145)는 API 프로그래밍 함수들의 집합을 포함하며, 장치 내 OS에 따라 다양한 실시예들에서 상이하게 구성된다. 예를 들어, ANDROID나 IOS의 경우, 각각의 플랫폼에 대해 하나의 API 집합이 제공될 수 있다. TIZEN의 경우, 각각의 플랫폼에 대해 둘 이상의 API 집합들이 제공될 수 있다.
애플리케이션들(370), 예컨대 애플리케이션들(147)은 홈 애플리케이션(371), 다이알러(dialer)(372), SMS(short message service)/MMS(multimedia message service) 애플리케이션(373), 인스턴트 메시지(IM) 애플리케이션(374), 브라우저 애플리케이션(375), 카메라 애플리케이션(376), 알람 애플리케이션(377), 연락처 애플리케이션(378), 음성 다이알 애플리케이션(379), 이메일 애플리케이션(380), 캘린더 애플리케이션(381), 미디어 플레이어 애플리케이션(382), 앨범 애플리케이션(383), 시계 애플리케이션(384), 건강 관리 애플리케이션(가령, 운동량이나 혈당 측정을 위한 애플리케이션), 및 환경 정보 애플리케이션(가령, 대기압, 습도, 또는 온도 정보를 제공하는 애플리케이션) 중 하나 이상을 포함한다.
본 개시의 일 실시예에 따르면, 애플리케이션들(370)은 또한, 전자 장치, 예컨대 전자 장치(101) 및 외부 전자 장치, 예컨대 제1외부 전자 장치(102)나 제2외부 전자 장치(104) 간의 정보 교환을 지원하는 정보 교환 애플리케이션을 포함할 수 있다. 정보 교환 애플리케이션의 예들은, 특정 정보를 외부 전자 장치로 전달하는 통지 전달 애플리케이션, 및 외부 전자 장치를 관리하기 위한 장치 관리 애플리케이션을 포함한다.
예를 들어, 통지 전달 애플리케이션은 외부 전자 장치, 예컨대 제1외부 전자 장치(102)나 제2외부 전자 장치(104)로 전자 장치의 하나 이상의 애플리케이션들에서 발생한 통지 정보를 전달하는 기능을 포함할 수 있다. 그러한 통지 정보는 예를 들어, SMS/MMS 애플리케이션, 이메일 애플리케이션, 건강 관리 애플리케이션, 및 환경 정보 애플리케이션에 의해 생성될 수 있다. 또 예를 들면, 통지 전달 애플리케이션은 외부 전자 장치로부터 통지 정보를 수신하고, 수신된 통지 정보를 사용자에게 제공할 수 있다.
장치 관리 애플리케이션은 예를 들어, 전자 장치와 통신하는 외부 전자 장치의 적어도 일부의 기능을 관리, 예컨대 설치, 삭제, 또는 업데이트한다. 예를 들어, 장치 관리 애플리케이션은 외부 전자 장치 자체나 그 장치의 일부 구성요소들을 켜거나 끌 수 있다. 장치 관리 애플리케이션은 또한, 디스플레이의 밝기, 해상도, 또는 다른 시각적 디스플레이 파라미터들을 조정할 수 있다. 다양한 실시예들에서, 장치 관리 애플리케이션은 외부 전자 장치 안에서 실행되는 애플리케이션들의 양태나, 외부 전자 장치로부터 제공되는 전화 통화 서비스나 메시지 서비스의 제어 양태와 같은 서비스들의 양태를 제어할 수 있다.
본 개시의 일 실시예에 따르면, 애플리케이션들(370)은 전자 장치가 모바일 의료 기기로서 동작할 때와 같은 전자 장치의 속성 등에 따라, 그리고 일부 실시예들에서는 외부 전자 장치의 속성, 예를 들어 제1외부 전자 장치(102)나 제2외부 전자 장치(104)의 속성들을 따라서도 특정되는 건강 관리 애플리케이션을 포함한다. 본 개시의 일 실시예에 따르면, 애플리케이션들(370)은 외부 전자 장치, 예컨대 서버(106), 제1외부 전자 장치(102), 또는 제2외부 전자 장치(104)로부터 수신된 애플리케이션을 포함한다. 본 개시의 일 실시예에 따르면, 애플리케이션(370)은 사전 로딩된 애플리케이션이나, 서버로부터 다운로드된 제3자 애플리케이션을 포함한다. 본 개시의 다양한 실시예들에 따른 프로그램 모듈(300)의 구성요소들의 명칭들은 OS 타입에 따라 달라질 수 있다.
본 개시의 다양한 실시예들에 따르면, 프로그래밍 모듈(300)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 둘 이상의 조합을 통해 구현된다. 프로그래밍 모듈(300)의 적어도 일부는, 예를 들어 AP(210)와 같은 프로세서에 의해 구현 및/또는 실행된다. 프로그램 모듈(300)의 적어도 일부는 예컨대, 모듈, 프로그램, 루틴, 명령어 집합, 및/또는 전자 장치와 관련된 하나 이상의 기능들을 수행하기 위한 프로세스를 포함한다.
도 4 및 5는 본 개시의 다양한 실시예들에 따라 본 개시의 실시예들이 구현될 수 있는 헤드 마운트 전자 장치(HMD)(400)의 예를 도시한 사시도들이다. 도 4 및 5에 도시된 HMD(400)의 실시예는 다만 예시를 위한 것으로, HMD(400)는 광범위한 구성들로 나타나며, 도 4 및 5는 본 개시의 범위를 어떤 특정한 HMD의 구현예로 한정하지 않는다.
도 4 및 5를 참조하면, HMD(400)는 예를 들어, 도 1의 제1외부 전자 장치(102)일 수 있다. HMD(400)는 몸체(402)와 커버(404)를 포함한다. 몸체(402)는 지지대(406), 두 개의 렌즈들(408 및 410), 결합부(412), 및 제어부(414)를 포함할 수 있다.
예를 들어, 도 1의 전자 장치(101)는 HMD(400)와 결합될 수 있다. 예를 들어, 전자 장치(101), 예를 들어 모바일 통신 장치(500)가 HMD(400)와 결합될 때, 커버(404)는 모바일 통신 장치(500)가 삽입될 때 모바일 통신 장치(500)의 하우징(504)의 후면 가장자리를 커버하여, 모바일 통신 장치(500)가 헤드 마운트 전자 장치(400)에 고정되게 함으로써 결합 상태를 유지하도록 할 수 있다. 지지대(406)는 사용자가 헤드 마운트 전자 장치(400)를 머리에 탑재할 때 사용될 수 있는 부재이다. 렌즈들(408 및 410)은 사용자의 양 눈에 각각 대응하는 위치에 설치된다. 렌즈들(408 및 410) 각각은 적어도 하나의 렌즈를 포함한다. 렌즈들(408 및 410) 각각은 마이크로 어레이 렌즈나 액체 렌즈와 같은 복수의 렌즈들을 포함할 수 있다. 사용자는 HMD(400)를 착용할 때, 물리적 디스플레이 스크린, 예를 들어 전자 장치(101)/모바일 통신 장치(500)의 디스플레이(160)를 통해 제공되는 디스플레이 스크린을 렌즈들(408 및 410)을 통해 볼 수 있다. 결합부(412)는 전자 장치(101, 500)를 헤드 마운트 전자 장치(400)에 결합시키되, 예를 들어 전자 장치(101, 500)에 부착할 수 있고 그로부터 탈착 할 수 있도록 하는 기계적 구조물이다.
제어부(414)는 몸체(402)의 옆이나 다른 적절한 위치에 설치된다. 제어부(414)는 사용자에 의해 HMD 장치(400)를 제어하기 위한 입력으로서 사용된다. 다양한 실시예들에서, 제어부(414)는 터치 패널, 버튼, 휠 키(wheel key), 및 터치 패드 중 적어도 하나를 포함한다. 터치 패널은 사용자로부터의 터치 입력을 수신하도록 구성된다. 터치 입력은 터치 패널 상의 직접적인 터치 입력이거나, 예를 들어 사용자 손가락이 터치 패널에 접근할 때 활성화되는 호버링 입력일 수 있다. HMD(400)는 제어부를 통해 수신된 입력을 전자 장치(101, 500)로 전송하기 위해 USB와 같은 통신 인터페이스를 거쳐 전자 장치(101, 500)에 연결될 수 있다. 전자 장치(101, 500)는 헤드 마운트 전자 장치(400)의 제어부(414)를 통해 수신된 입력에 따라, 입력에 대응되는 기능을 제어할 수 있다. 예를 들어 다양한 실시예들에서, 전자 장치(101, 500)는 수신된 입력에 따라 볼륨이나 이미지 재생을 제어한다.
도 5를 참조할 때, 전자 장치(400)는 도 4의 HMD이고, 전자 장치(500)는 예를 들어, 도 1의 전자 장치이다.
전자 장치(500)는 HMD(400)의 결합부(412)에 결합되거나 일부 실시예들에서 도 4의 결합부(412)의 슬롯이나 개구 안으로 삽입되어, 물리적 디스플레이(502)가 설치된 전자 장치(500)의 전면이 도 4의 HMD(400)의 렌즈들(408 및 410)을 향하도록 한다. 전자 장치(500)의 하우징(504)은 HMD(400)의 슬롯이나 개구 내 제 자리에 고정되도록 커버(404)로 덮인다. 물리적 디스플레이(502)는 도 4의 물리적 렌즈들(408 및 410)의 개수에 대응하는 디스플레이들을 포함하거나, 하나의 디스플레이 스크린을 논리적 렌즈들(logical lenses)의 개수에 대응하는 스크린들로 분할하여 그 스크린들을 디스플레이 할 수 있다.
도 6은 본 개시의 다양한 실시예들에 따라, 모바일 장치(500)가 HMD(400)와 결합되어 있는 HMD(400)를 사용자가 착용한 예를 도시한 사시도이다. 도 6에 도시된 예는 예시를 위한 것이며, 본 개시의 범위에서 벗어나지 않은 다른 구성예들이 사용될 수도 있다.
도 6을 참조할 때, 사용자(512)는 머리에 결합 전자 장치(510)를 착용할 수 있다. 결합 전자 장치(510)는 HMD(400) 및 모바일 통신 장치(500)를 포함한다. HMD(400) 및 모바일 통신 장치는 물리적으로 결합되어, 유선이나 무선 통신을 통해 서로 데이터 통신한다. 사용자(512)는 예컨대, 도 4의 렌즈들(408 및 410)을 통해 전자 장치(400)의 렌즈들을 거쳐 모바일 통신 장치(500)의 물리적 디스플레이(502) 상에 디스플레이되는 이미지에 따라 생성되는 스크린 이미지를 볼 수 있다.
도 7은 본 개시의 다양한 실시예들에 따라 전자 장치들, 예컨대 HMD(400) 및 모바일 통신 장치(500)가 결합된 결합 전자 장치(510)와 같은 전자 장치를 착용한 사용자에 의해 보여 지도록 제공된 스크린의 일 예를 도시한 사시도이다. 도 7에 도시된 예는 예시를 위한 것이며, 본 개시의 범위에서 벗어나지 않은 다른 구성예들이 사용될 수도 있다.
도 7을 참조하면, 결합 전자 장치(510)를 착용한 사용자(512)는 결합 전자 장치(510)를 통해 스크린(520)을 본다. 스크린(520)은 실제로, 사용자의 양눈 각각 앞에 하나의 스크린이 위치하도록 모바일 장치 상에서 랜드스케이프(landscpe) 또는 수평선 모드로 서로 옆에 디스플레이되는 제1 및 제2스크린을 가지는 분할 스크린이나 입체 디스플레이에 의해 생성될 수 있다. 랜드스케이프 모드에서 서로 옆에 있는 제1스크린과 제2스크린의 결합은 스크린(520) 상에서 사용자에 의해 인지되는 단일 입체 이미지 또는 3D VR 이미지를 생성한다.
도 8은 본 개시의 다양한 실시예들에 따라 본 개시의 실시예들이 구현될 수 있는 헤드 마운트 전자 장치(600)의 구성예를 도시한 블록도이다. 도 8에 도시된 헤드 마운트 전자 장치(600)의 실시예는 다만 예시를 위한 것으로, 헤드 마운트 디스플레이 장치(600)는 광범위한 구성들로 나타나며, 도 8의 블록도는 본 개시의 범위를 헤드 마운트 디스플레이 장치의 어떤 특정 구현예로 한정하지 않는다.
도 8을 참조할 때, 헤드 마운트 전자 장치(600)는 예를 들어, 도 4의 HMD(400)일 수 있다. 헤드 마운트 전자 장치(600)의 일 실시예는 마이크로 컨트롤러 유닛(MCU)(610), 통신 모듈(620), 센서 모듈(630), 입력 모듈(640), 눈 추적 모듈(650), 진동기(652), 조정 가능한 광학 모듈(654), 전력 관리 모듈(660), 및 배터리(662) 중 하나 이상을 포함한다.
MCU(610)는 OS를 구동하고/하거나 내장된 소프트웨어 프로그램의 명령어들을 활용함으로써 헤드 마운트 전자 장치 내 예를 들어 통신 모듈(620), 센서 모듈(630), 입력 모듈(640), 눈 추적 모듈(650), 진동기(652), 조정 가능한 광학 모듈(654), 및 전력 관리 모듈(660)과 같은 다른 구성요소들을 제어한다. 다양한 실시예들에서, MCU(610)는 제어기라고 칭하고/하거나, 그 일부로서 제어기를 포함하거나 제어기의 일부를 구성할 수 있다. MCU(610)는 적어도 하나의 프로세서를 포함한다. 일부 실시예들에서 MCU(610)는 메모리를 더 포함한다.
통신 모듈(620)은 헤드 마운트 전자 장치(600)를, 예를 들어, 도 5 및 6의 전자 장치/모바일 통신 장치(500)에 유선 통신 또는 무선 통신을 통해 연결하여, 그들 사이에 데이터 전송 및 수신을 수행하도록 한다. 본 개시의 일 실시예에 따르면, 통신 모듈(620)은 USB 모듈(621), Wi-Fi 모듈(622), BT 모듈(623), NFC 모듈(624), 및 GPS 모듈(625)을 포함한다. 본 개시의 일 실시예에 따르면, USB 모듈(621), Wi-Fi 모듈(622), BT 모듈(623), NFC 모듈(624), 및 GPS 모듈(625) 중 적어도 둘이 하나의 IC나 IC 패키지 안에 포함된다.
센서 모듈(630)은 물리적 양을 측정하거나 헤드 마운트 전자 장치(600)의 동작 상태를 감지하고, 측정되거나 감지된 정보를 전기적 신호로 변환한다. 센서 모듈(630)은 가속 센서(631), 자이로 센서(632), 지오마그네틱(geomagnetic) 센서(633), 마그네틱 센서(634), 근접 센서(635), 제스처 센서(636), 그립(grip) 센서(637), 및 생체계측 센서(638) 중 적어도 하나를 포함한다. 헤드 마운트 전자 장치(600)는 가속 센서(631), 자이로 센서(632), 및 지오마그네틱 센서(633) 중 적어도 하나를 사용하여, 헤드 마운트 전자 장치(600)를 착용한 사용자 머리의 움직임을 검출한다.
헤드 마운트 전자 장치(600)는 근접 센서(635)나 그립 센서(637)를 사용하여 헤드 마운트 전자 장치(600)가 착용되는지 여부를 검출한다. 본 개시의 일 실시예에 따르면, 헤드 마운트 전자 장치(600)는 사용자에 의한 헤드 마운트 전자 장치(600)의 착용에 따라, IR 인식, 압력 인식, 및 정전용량이나 유전체 상수의 변화 중 적어도 하나를 검출함으로써, 사용자가 헤드 마운트 전자 장치(600)를 착용하는지 여부를 검출한다. 제스처 센서(636)는 사용자의 손이나 손가락 움직임을 검출하고, 헤드 마운트 전자 장치(600)의 입력 동작으로서 그 움직임을 수신한다. 추가적으로나 대안적으로, 센서 모듈(630)은 예를 들어, E-nose 센서, EMG 센서, EEG 센서, ECG 센서, 홍채 센서, 및 지문 센서와 같은 생체 인식 센서를 포함할 수 있고, 그 생체 인식 센서를 사용함으로써 사용자의 생체 정보를 인식할 수 있다. 센서 모듈(630)은 또한, 그 안에 포함된 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다.
입력 모듈(640)은 예를 들어, 도 4의 제어부(414)일 수 있다. 입력 모듈(640)은 사용자로부터 입력을 수신한다. 입력 모듈(640)은 터치 패드(641) 및 버튼(642)을 포함한다. 터치 패드(641)는 예를 들어, 정전 방식, 저항 방식, IR 방식 및 초음파 방식 중 적어도 한 방식의 터치 입력을 인식한다. 터치 패드(641)는 제어 회로를 더 포함한다. 용량성 터치 패드는 물리적 접촉이나 접근을 인식한다. 터치 패드(641)는 촉각 계층을 더 포함한다. 이 경우, 터치 패드(641)는 사용자에게 촉각적 리액션을 제공한다. 키(642)는 예컨대, 물리적 버튼, 광학적 키, 또는 키패드를 포함한다.
전력 관리 모듈(660)은 헤드 마운트 전자 장치(600)의 전력을 관리한다. 구체적으로 도시되지는 않았으나, 전력 관리 모듈(660)은 예를 들어, PMIC, 충전기 IC, 또는 배터리 게이지를 포함할 수 있다. PMIC는 유선 및/또는 무선 충전 방법을 사용한다. 무선 충전 방법의 예들로는, 가령, 자기 공명 방법, 자기 유도 방법, 전자기 방법 등이 포함된다. 예를 들어, 무선 충전을 위한 코일 루프, 공진 회로, 또는 정류기와 같은 추가 회로들이 더 포함될 수 있다. 배터리 게이지는 충전 중에 예를 들어, 배터리(662)의 전력 레벨 잔량, 전압, 전류, 및/또는 배터리 온도를 측정한다. 배터리(662)는 예컨대, 재충전 가능 배터리 또는 태양광 배터리를 포함할 수 있다.
눈 추적 모듈(650)은 EOG(electrical oculography, 눈전위도 검사) 센서, 코일 시스템, 듀얼 푸르키네(Purkinje) 시스템, 밝은 눈동자 시스템, 어두운 눈동자 시스템 등과 같은 적어도 한 유형의 센서나 눈 추적 장치를 사용하여 사용자의 시선을 추적한다. 또한, 일부 실시예들에서, 눈 추적 모듈(650)은 사용자의 시선을 추적하기 위한 마이크로 카메라를 더 포함한다.
조정가능 광학 모듈(654)은 사용자의 눈동자 간 거리(IPD)를 측정하여, 사용자가 사용자의 시선에 적합한 이미지를 볼 수 있게 한다. 헤드 마운트 전자 장치(600)는 조정가능 광학 모듈(654)을 통해 측정된 사용자의 IPD에 따라 렌즈들 간 거리를 조정할 수 있다. 헤드 마운트 전자 장치(600)는 조정가능 광학 모듈(654)을 통해 측정된 사용자의 IPD를 전자 장치(500)로 전송하고, 전자 장치(500)의 디스플레이(502)의 스크린 상에서의 디스플레이 위치를 제어한다.
헤드 마운트 전자 장치(600)가 예컨대 사용자의 머리 움직임에 따라 이동할 때, MCU(610)는 센서 모듈(630)의 모션 센서를 통해 검출된 움직임 값을 전자 장치/모바일 통신 장치(500)로 전송한다. 다양한 실시예들에서, 모션 센서는 가속 센서(631), 자이로 센서(632), 및 지오마그네틱 센서(633) 중 적어도 하나일 수 있다.
도 9를 참조하면, 일부 실시예들에서 헤드 마운트 전자 장치(1500)는 전자 장치/모바일 통신 장치(500)로부터 독립적으로 사용된다. 그러한 실시예들에서 헤드 마운트 전자 장치(1500)는 사용자에게, 예를 들어 도 6의 HMD와 동일하거나 유사한 방식으로 가상 스크린을 제공한다. 여기서 헤드 마운트 전자 장치(1500)는 MCU(1510), 통신 모듈(1520), 센서 모듈(1530), 입력 모듈(1540), 눈 추적 모듈(1550), 진동기(1552), 조정 가능한 광학 모듈(1554), 전력 관리 모듈(1560), 배터리(1562), 및 디스플레이(1570)를 포함한다.
MCU(1510), 통신 모듈(1520), 센서 모듈(1530), 입력 모듈(1540), 눈 추적 모듈(1550), 진동기(1552), 조정 가능한 광학 모듈(1554), 전력 관리 모듈(1560) 및 배터리(1562)는 예를 들어, 도 8의 헤드 마운트 전자 장치(600)의 MCU(610), 통신 모듈(620), 센서 모듈(630), 입력 모듈(640), 눈 추적 모듈(650), 진동기(652), 조정 가능한 광학 모듈(654), 전력 관리 모듈(660) 및 배터리(662)와 각기 동등하거나 유사하게 구성될 수 있다.
통신 모듈(1520)은 예를 들어, USB 모듈(1521), Wi-Fi 모듈(1522), BT 모듈(1523), NFC 모듈(1524), 및 GPS 모듈(1525)을 포함한다. USB 모듈(1521), Wi-Fi 모듈(1522), BT 모듈(1523), NFC 모듈(1524), 및 GPS 모듈(1525)은 도 8의 USB 모듈(621), Wi-Fi 모듈(622), BT 모듈(623), NFC 모듈(624), 및 GPS 모듈(625)와 각기 동등하거나 유사하게 구성될 수 있다.
센서 모듈(1530)은 예를 들어, 가속 센서(1531), 자이로 센서(1532), 지오마그네틱 센서(1533), 마그네틱 센서(1534), 근접 센서(1535), 제스처 센서(1536), 그립(grip) 센서(1537), 및 생체계측 센서(1538) 중 적어도 하나를 포함한다. 가속 센서(1531), 자이로 센서(1532), 지오마그네틱 센서(1533), 마그네틱 센서(1534), 근접 센서(1535), 제스처 센서(1536), 그립 센서(1537), 및 생체계측 센서(1538)는 도 8의 가속 센서(631), 자이로 센서(632), 지오마그네틱 센서(633), 마그네틱 센서(634), 근접 센서(635), 제스처 센서(636), 그립 센서(637), 및 생체계측 센서(638)와 각기 동등하거나 유사하게 구성될 수 있다.
입력 모듈(1540)은 터치 패드(1541) 및 버튼(1542)을 포함한다. 터치 패드(1541) 및 버튼(1542)는 도 8의 터치 패드(641) 및 버튼(642) 등과 각기 동등하거나 유사하게 구성될 수 있다.
도 8을 참조한 내용과 중복되는 내용들을 도 9의 설명에서는 생략할 것이다.
다양한 실시예들에서, 헤드 마운트 전자 장치(1500)는 예를 들어, 전자 장치/모바일 통신 장치(500)가 헤드 마운트 전자 장치(400)에 착탈 가능하게 결합되는 구조를 가지는 것 대신, 도 4의 몸체(402)에 고정되도록 설치되는 물리적 디스플레이(1570)를 포함한다. 전자 장치/모바일 통신 장치(500)의 물리적 디스플레이를 사용하는 대신, 물리적 디스플레이(1570)가 몸체(402)에 설치되어, 도 4의 렌즈들(408 및 410) 등을 통해 사용자가 볼 수 있는 스크린이 제공된다. 일부 실시예들에서, 디스플레이(1570)는 물리적 렌즈들, 예를 들어, 도 4의 렌즈들(408 및 410)의 개수에 대응하는 디스플레이들을 포함한다. 다른 실시예들에서, 하나의 디스플레이 스크린이 디스플레이 스크린들을 보는데 사용되는 논리적 렌즈들의 개수에 대응하는 스크린들로 분할된다.
다른 실시예들에서, 전자 장치(1500)는 이미지를 디스플레이 하기 위한 스크린을 제공하기 위해, 헤드 마운트 전자 장치에 탈부착 가능한 헤드 마운트 전자 장치에 결합되는 전자 장치일 수 있다. 또 다른 실시예들에서, 전자 장치(1500)는 헤드 마운트 전자 장치에 해당한다.
본 개시의 다양한 실시예들에서 사용되는 “모듈”이라는 용어는 예를 들어, 하드웨어, 소프트웨어, 및 펌웨어 중 하나, 또는 하드웨어, 소프트웨어, 및 펌웨어 중 둘 이상의 조합을 포함하는 “부(유닛)”을 일컫는다. '모듈'이라는 용어는 유닛, 로직, 로직 블록(logical block), 구성요소 또는 회로와 같은 용어와 혼용하여 사용될 수 있다. '모듈'은 집적된 구성요소나 그 일부의 최소 단위일 수 있다. ‘모듈’은 하나 이상의 기능들이나 그 일부를 수행하는 최소 단위일 수 있다. “모듈”은 기계적으로, 혹은 전자적으로 구현될 수 있다. 예를 들어, 본 개시의 다양한 실시예들에 따른“모듈”은 알려져 있거나 이후 개발될 동작들을 수행하기 위한 ASIC(application-specific IC) 칩, FPGS들(field-programmable gate arrays), 및 프로그램 가능 논리 소자(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
본 개시의 다양한 실시예들에 따라, 모듈들 또는 그 기능들 등과 같은 장치나, 본 개시의 다양한 실시예들에 따른 동작들 등과 같은 방법의 적어도 일부가, 프로그래밍 모듈, 프로그램 애플리케이션, 애플리케이션 또는 앱의 형식으로 컴퓨터 판독가능 저장 매체에 저장되는 명령이나 명령어들 등에 의해 구현될 수 있다. MCU들(610, 1510) 각각에 포함될 수 있는 프로세서나 프로세서(120) 등과 같은 하나 이상의 프로세서들에 의해 어떤 명령어가 실행될 때, 그 하나 이상의 프로세서들은 상기 명령어에 대응하는 기능을 수행한다. 컴퓨터 판독가능 저장 매체는 예를 들어, MCU들(610, 1510) 각각에 포함될 수 있는 메모리나 메모리(130)일 수 있다. 프로그래밍 모듈의 적어도 일부는 예컨대, 프로세서에 의해 구현 또는 실행될 수 있다. 프로그래밍 모듈들의 적어도 일부는 예컨대, 모듈, 프로그램, 서비스 애플리케이션, 모바일 애플리케이션, 애플리케이션, 앱, 루틴, 명령어 집합, 또는 하나 이상의 기능들을 수행하기 위한 프로세스를 포함할 수 있다.
컴퓨터 판독가능 저장 또는 기록 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기적 매체, CD-ROM(compact disc ROM) 및 DVD와 같은 광학 매체, 플롭티컬(floptical) 디스크와 같은 자기-광학적 매체, 및 ROM, RAM, 플래시 메모리 등과 같이 프로그램 명령어, 예컨대 프로그래밍 모듈을 저장 및 실행하도록 특별하게 구성되는 하드웨어 장치를 포함할 수 있다. 또한, 프로그램 명령어들은 컴파일러에 의해 만들어지는 머신 코드들뿐 아니라 인터프리터(interpreter)를 사용하여 컴퓨터에서 실행될 수 있는 고급 언어 코드들을 포함할 수 있다. 상술한 하드웨어 장치는 본 개시의 다양한 실시예들의 동작을 수행하기 위한 하나 이상의 소프트웨어 모듈들로서 동작하도록 구성될 수 있고, 그 반대의 경우도 마찬가지다.
본 개시에 따른 모듈 또는 프로그래밍 모듈은 기술된 구성 요소들 중 적어도 하나를 포함하거나, 그 구성 요소들 중 일부가 생략되거나, 추가 구성 요소들이 포함될 수 있다. 본 개시의 다양한 실시예들에 따른 모듈, 프로그래밍 모듈, 또는 다른 구성요소들에 의해 실행되는 동작들은 순차적으로, 나란하게, 반복적으로, 또는 휴리스틱(heuristic) 방식으로 실행될 수 있다. 또한, 일부 동작들은 다른 순서에 따라 실행되거나, 생략될 수 있고/있거나, 다른 동작들이 추가될 수 있다.
본 개시의 다양한 실시예들에서, 헤드 마운트 디스플레이(HMD)나 가상 현실(VR) 헤드셋이라고도 불리는 VR 장치의 사용자는 자신의 머리에서 VR 헤드셋을 제거하지 않고 모바일 전화나 모바일 장치라고도 불리는 모바일 통신 장치를 사용하고 싶어 할 수 있다. 사용자는 VR의 세계 및 실제 세계나 다른 장치들 사이를 끊어짐 없이(seamlessly) 전환하고 싶어할 수 있다. 예를 들어, 사용자는 VR 헤드셋을 사용하여 영화를 시청하고 있다가, VR 헤드셋을 벗지 않고 이메일을 작성하고 싶어할 수 있다. 그러한 경우, 사용자는 3D VR 환경으로 모바일 전화 상에서 이용 가능한 애플리케이션들이나 모바일 앱들의 사용자 인터페이스들 및/또는 콘텐츠의 이미지들을 볼 수 있기를 바랄 수 있다.
다양한 실시예들에서, VR 장치는 모바일 장치(500)와 같은 모바일 통신 장치와, 사용자 머리에 쓸 수 있는 HMD(400)를 결합하여 제공된다. 그러한 모바일 장치(500)가 HMD(400)의 프레임이나 몸체(402)에 삽입되고, 모바일 장치(500)의 물리적 디스플레이 스크린(502)이 VR 장치/HMD의 디스플레이로서 사용된다. 이런 유형의 HMD를 “드롭인(drop-in) 타입 VR 장치”라고 부를 수 있다.그러한 구현예들에서, 모바일 장치(500)의 컴퓨팅 자원들이 VR 이미지나 환경을 렌더링하는데 사용되고, HMD의 몸체는 터치패드 및/또는 버튼과 같은 제한된 입력 메커니즘을 가질 수 있다. 다른 구현예들에서, 별도의 핸드 헬드(손으로 쥐는) 컨트롤러가 그러한 HMD에 무선으로나 전기적으로 연결된다. 보다 상세한 사항을 위해, 위에서 논의된 도 1 내지 도 8을 참조한다.
일부 실시예들에서, 드롭인 타입 HMD와 결합된 모바일 장치의 컴퓨 팅 능력과 자원들은 종래의 퍼스널 컴퓨터로 테더링되는(tethered) 단독형 VR HMD 장치에서 이용 가능한 최대 용량 및 성능을 가질 수는 없다. 추가적으로, 드롭인 타입 HMD를 착용하여 사용하는 동안, 사용자는 모바일 장치 상에 설치된 메시지 애플리케이션, 이메일 애플리케이션, 또는 비디오 플레이어 애플리케이션과 같은 모바일 애플리케이션 프로그램(“모바일 앱” 또는 “모바일 애플리케이션”이라고도 칭함)을 실행하고 싶어할 수 있다. 다양한 유형의 모바일 애플리케이션들이 전화기 제조자의 서버나 OS 제공자의 애플리케이션 스토어로부터 다운로드될 수 있다. 이와 같이, 본 개시의 다양한 실시예들은 드롭인 타입 HMD와 결합될 때 만족스러운 사용자 경험을 제공하기 위해 모바일 장치의 컴퓨팅 능력과 자원들의 효율성을 증가시키도록 구성된다. 일부 실시예들에서, 2D 및 3D 이미지들을 렌더링 할 때 프로세서들 및 GPU들을 지원하는 하나 이상의 하드웨어 구성기들 및 관련 버퍼들 및/또는 메모리의 구현과 더불어 모바일 장치의 컴퓨팅 효율성이 증가된다.
일 실시예의 한 양태에서, VR 애플리케이션 프로그램이 설치되어 모바일 장치의 비휘발성 메모리에 저장된다. VR 애플리케이션의 실시예들은 사용자가 VR 헤드셋을 벗지 않고도 미변경 2D 모바일 앱들(unmodified 2D mobile apps), 예컨대 안드로이드 앱들이나 기타 모바일 앱들을 가상 현실 환경에서 동작시킬 수 있게 한다. 이러한 것을 해내기 위해, 모바일 장치 상에 디스플레이되는 2D 그래픽 사용자 인터페이스 이미지와 실질적으로 동일한 2D 그래픽 이미지, 예컨대 2D 그래픽 사용자 인터페이스는 VR 헤드셋에서 보여지는 3D VR 환경에서 디스플레이되는 3D 이미지의 일부이거나 그 위에 있는 윈도우 안에서 제공된다.
일 실시예의 다른 양태에서, VR 애플리케이션 프로그램은 그래픽 콘텐츠를 모바일 장치의 메인 논리적 디스플레이에서 모바일 장치(500) 내 휘발성 메모리 안에 설정된 가상 디스플레이로 재지정한다. 가상 디스플레이는 사용자에 의해 보여질 수 없지만, 대신 모바일 장치가 모바일 장치로서만 동작하고 VR 헤드셋의 일부로서 동작하지 않을 때, 모바일 장치의 물리적 디스플레이 상에 일반적으로 디스플레이될 사용자 인터페이스(UI) 등에 대한 그래픽 데이터를 저장하는 것은 버퍼 메모리이다. 다양한 실시예들에서, 가상 디스플레이 상의 그래픽 데이터는 동적으로 회전될 수 있다, 예컨대 가상 디스플레이 안에서 수직으로 보여지거나 수평으로 보여질 수 있다.
도 10은 본 개시에 따른 모바일 장치 내 프로그램 모듈(300)에 포함될 수 있는 VR 시스템 구조 모듈들에 대한 일 실시예를 도시한다. 도 10에서, VR 시스템 모듈들, 프로그램들, 또는 애플리케이션들(1602)이 메모리(1600), 예컨대 전자 장치(101)의 메모리(130) 안에 저장된다. 전자 장치의 시스템의 일부인 프레임워크 프로그램을 보통 관리, 미들웨어, 서비스 애플리케이션들 또는 모듈들이라 칭한다. 프레임워크 블록(1604)은 예를 들어 안드로이드 OS 기반 전자 장치들에서 사용되는 프레임워크 모듈들의 일예를 도시한다. 여기서 프레임워크 블록(1604)은 2D 및 3D 그래픽 및 VR 프로세스들에서 사용되는 모듈들의 예들을 묘사한다. 그러한 모듈들은 입력 관리자(1606), 활동 관리자 서비스(activity manager service)(1608), 가상공간 관리자(1610), 디스플레이 관리자 서비스(1612), 및 윈도우 관리자 서비스(1614)를 포함한다. 다른 안드로이드 라이브러리들 및 서비스들(1615) 또한 도 1, 2, 및 3에서 이미 논의된 바와 같은 프로그램들(1604)의 프레임워크 블록과 관련된다.
VR 엔진 블록(1616)은 렌즈 왜곡 정정, 헤드 마운트 추적(HMT) 및 입체적 렌더링 모듈들 및 명령어들을 포함한다. VR 엔진 블록은 또한, 다른 무엇보다 좌우 디스플레이 이미지들을 활용하여 그 좌우 디스플레이 이미지들을 VR 헤드셋의 물리적 디스플레이 상에 적절하게 디스플레이 하기 위한 애플리케이션 인터페이스(API)들을 포함한다. 3D 엔진 블록(1618)은 API들을 통해 VR 엔진 블록(1616)과 인터페이스하며, 3D 이미지들을 렌더링하고 렌더링된 3D 이미지들 안에 3D 장면(scene) 그래픽을 제공하기 위해 전자 장치 내 하나 이상의 프로세서들에 의해 사용되는 모듈들을 제공한다.
VR 애플리케이션 블록(1620)은 VR 게임, 장면 애플리케이션, 또는 다양한 실시예들에서 VR 환경에서 디스플레이되고 있는 2D 모바일 애플리케이션 등에 의해 디스플레이될 VR 배경, 메뉴, 및 표면/기하학적 배열(geometry)을 구성한다. VR 앱(1620)은 사용자가 선택한 모바일 애플리케이션이나 3D 애플리케이션 등을 VR 환경에서 디스플레이 하기 위해, 3D 엔진 블록(1618), VR 엔진(1616), 및 프레임워크 모듈들(1604)과 통신한다.
일 실시예에서, VR 애플리케이션(1620)은 예를 들어, 일반적인 메인 논리적 디스플레이(main logical display) 2D 그래픽 이미지 출력이 휘발성 메모리(volatile memory) 내 가상 디스플레이로 재지정된 동안, 모바일 장치가 HMD의 일부로서 동작하고 있을 때, 프로세서가 선택된 3D 애플리케이션 그래픽 출력을 메인 물리적 및 논리적 디스플레이(main physical and logical display) 상에 디스플레이할 수 있게 하는 3D VR 명령어들을 포함한다. 이러한 상황에서, 가상 디스플레이의 텍스처 스트림(texture stream) 출력이 3D VR 그래픽 이미지의 일부가 되기 위해, VR 애플리케이션(1620)에 의해, 3D 엔진(1618)의 VR 장면 그래픽 모듈에서 렌더링되도록 지시된다. VR 애플리케이션(1620)이 실행되어 메인 논리적 디스플레이가 아닌 별도의 논리적 디스플레이(예를 들어 논리적 디스플레이 X)에 VR 그래픽 이미지를 생성한 후, 2D 그래픽 이미지의 적어도 일부를 포함하는 렌더링된 3D 이미지를 물리적 디스플레이 장치로 재지정한다.
VR 애플리케이션의 3D VR 명령어들을 처리하도록 구성된 다양한 실시예들은 2D 그래픽 데이터를 활용할 수 있다. 가상 디스플레이 내 2D 그래픽 데이터는
예를 들어 3D 그래픽 배경과 함께 렌더링되는데, 2D 그래픽 데이터는 VR 환경에서 보여지는 VR 스크린 배경 이미지 안이나 위의 윈도우가 되어,
HMD를 이용한 VR 모드에서 동작하고 있지 않을 때의 모바일 장치의 메인 2D 디스플레이 상에서 보통으로 디스플레이되거나 보여지는, 애플리케이션들, 런처들(launchers), 알림들, 상태 바들, 시스템 윈도우들, 비디오 클립들 등과 같은 그래픽 이미지나 이미지들을 VR 스크린이 자신의 VR 스크린 이미지 안에 포함하도록 한다. 또한 가상 스크린 이미지 안에 렌더링된 2D 그래픽은 모바일 장치가 수평에서 수직 보기로 그리고 다시 원위치로 회전되는 것처럼 동적으로 회전될 수 있다. 또한, 2D 그래픽 사용자가 주도하는 GUI가 키보드를 포함하는 경우, 가상 디스플레이 사용을 통해 VR 애플리케이션은 가상 스크린 상에 디스플레이될 때 VR 스크린 이미지의 일부로서 가상 키보드 보여주기를 지원한다. 예를 들어 도 15a를 참조할 수 있다. 또한, 모바일 앱들이 디스플레이되기 이전에 실행되는 동작 환경은 모바일 장치 상에서 영향을 받지 않는데, 그 이유는 모바일 앱들은, 실행 중에 자신들의 사용자 인터페이스가 메인 디스플레이 상에서 2D 그래픽 이미지로서 디스플레이되고 있지 않고, 대신, 메인 디스플레이가 VR 환경을 위한 디스플레이로서 동작하고 있을 때 휘발성 메모리 안의 가상 디스플레이 상에서 디스플레이되고 VR 스크린 이미지 안에 병합될 VR 애플리케이션에 의해 사용되고 있다는 것을 알지 못하기 때문이다.
또한 다양한 실시예들에서, VR 애플리케이션은 2D 모바일 앱들로부터 분리되어 따로 실행된다. 따라서, 2D 모바일 앱들은 실행 시, OS 프레임워크 모듈들 안에서 정상적으로 실행되는 것과 같이 실행된다. 예를 들어, 모바일 앱이 모바일 앱 기준에서 디스플레이 특징을 조회할 때, 모바일 앱은 자신의 2D 그래픽 사용자 인터페이스(GUI) 상에서 실행되면서 그 2D GUI를 동일한 해상도, 크기, 밀도를 가진 동일한 2D 디스플레이로 제공하는데, 그것은 2D GUI가 물리적 디스플레이로 보통처럼 제공되는지 휘발성 메모리 내 가상 메모리로 제공되는지 여부와 무관하게 보통으로 하듯이 하는 것이다. 2D GUI 그래픽 데이터의 재라우팅(re-routing) 및 VR 애플리케이션에 의해 이루어진 다른 변화들은, 2D GUI 그래픽 데이터가 2D 애플리케이션에 의해 생성되고 가상 디스플레이 상에 디스플레이된 후에 일어난다. 그러한 재라우팅은 2D 모바일 앱의 일반적인 명령어 실행에 영향을 주지 않는다. 이와 같이, 다양한 실시예들은 2D 모바일 앱들이 보여질 수 있는 호환성이 높은 VR 환경을 보장한다.
도 11은 휘발성 메모리 내 가상 디스플레이(1654)로 재지정되는 논리적 디스플레이 0(1652)의 디스플레이 재지정에 대한 실시예의 흐름도를 제공한다. 여기서 논리적 디스플레이 0(1652)로부터의 2D 메인 디스플레이 그래픽은 물리적 디스플레이(1656)로 보내지지 않고 가상 디스플레이(1654)로 재라우팅된다. 재라우팅된 2D 메인 디스플레이 그래픽은 모바일 장치가 HMD 안에서 사용되고 있을 때 메인/물리적 디스플레이 장치(1656)에서의 디스플레이를 위해 3D 그래픽으로 렌더링된다. 도 11에서, 복수의 모바일 애플리케이션들(1650)은 비휘발성 메모리 부분, 예를 들어 모바일 장치의 애플리케이션 부분(147, 370)에 설치된다. 그러한 모바일 애플리케이션들은 비한정적으로, 예를 들어 모바일 장치 상에 다운로드, 설치 및 사용 가능한 수 천 개의 모바일 애플리케이션들 중 몇 가지만 거론 하자면 유튜브(YouTube) 앱, 구글 플레이(Google Play) 앱, 페이스북(faccebook) 앱, 뱅킹 앱, 항공 여행 계획 앱, 전화 다이알링 앱, 게임 앱 및/또는 텍스트 메시지 앱을 포함할 수 있는, 이차원(2D) 그래픽 사용자 인터페이스들을 가진 모바일 애플리케이션들을 포함할 수 있다. 그러한 모바일 애플리케이션들은 일반적으로, 모바일 장치 내 하나 이상의 프로세서들에 의해 실행될 때 사용자에게 디스플레이 할 2D 그래픽 데이터를 제공하는 2D 사용자 인터페이스 명령어들을 포함한다.
사용자가 모바일 애플리케이션을 선택하면, 그러한 선택은 모바일 장치 내 프로세서들 중 하나, 예를 들어 프로세서(120)나 애플리케이션 프로세서(210)에 의해 수신된다. 모바일 장치가 일반적인 2D 환경에서 동작할 때, 제1동작으로, 선택된 애플리케이션과 관련된 명령어들의 실행 시, 디스플레이 할 2D 그래픽 데이터가 메인/논리적 디스플레이 0(1652)로 보내진다. 이때 그래픽 데이터는 일반 경로(1657)를 통해 모바일 장치의 메인 물리적 디스플레이로 보내져서 사용자가 그 선택된 모바일 앱 GUI를 볼 수 있게 된다.
이와 달리, 모바일 장치가 3D VR 환경에서 동작할 때, 제2동작으로, 선택된 애플리케이션과 관련된 명령어들의 실행 시, 디스플레이 할 2D 그래픽 데이터는 객체인 논리적 디스플레이 0(1652)로 보내지고, 그런 다음 일부 실시예들에서 VR 애플리케이션에 의해 가상 디스플레이(1654)로 재지정된다(1659).
가상 디스플레이(1654)는 다양한 실시예들에서, DRAM(dynamic random access memory)이거나 다른 타입의 휘발성 메모리에 해당하는 오프 스크린(off-screen)의 감춰지고 표면이 없는(surface-less) 디스플레이나 버퍼이다. VR 애플리케이션(1658)은 가상 디스플레이(1654)에서 2D 그래픽 데이터를 검색하여(1660) 3D 그래픽 콘텐츠나 이미지 콘텐츠를 논리적 디스플레이 X로 제공한다(1662). 그에 따라 VR 애플리케이션(1658)이 2D 그래픽 데이터 콘텐츠를 VR 환경에서 사용자가 볼 수 있는 3D 그래픽 콘텐츠로 렌더링하고(1664), 렌더링된 3D VR 이미지 데이터를 예컨대 HMD 안에서 보기 위한 물리적 디스플레이 장치(1656)에서의 디스플레이를 위해 제공한다.
논리적 디스플레이 0(1652)는 모바일 장치가 2D 환경에서 동작하고 있을 때 물리적 디스플레이 장치(1656)에 연결되고, 모바일 장치가 VR 환경에서 동작할 때 가상 디스플레이(1654)로 연결되도록 재지정되는 객체이다(1659).
논리적 디스플레이 X(1662) 역시 객체이다. 논리적 디스플레이 X(1662)는 VR 애플리케이션(1658)에 연결되어, 모바일 애플리케이션으로부터의 그래픽 데이터 콘텐츠를 3D로 렌더링 하는데 사용된다. 다양한 실시예들에서, OS 프레임워크(1614)의 디스플레이 관리자 서비스 애플리케이션(1612)은 논리적 디스플레이 O(1652) 및 논리적 디스플레이 X(1662)를 통해 그래픽 데이터의 스위칭, 연결, 및 재지정을 관리한다.
일부 실시예들에서, 그래픽 처리 유닛(GPU)가, 디스플레이 할 2D 그래픽 데이터를 물리적 디스플레이(1656)나 가상 디스플레이(1654)에 구성 및/또는 렌더링 하는데 사용된다. 다른 실시예들에서, 하드웨어 구성기는 복수의 버퍼들로부터 서로 다른 계층의 그래픽들을 물리적 디스플레이(1656)나 가상 디스플레이(1654)에 디스플레이되는 렌더링된 2D 그래픽으로 구성하기 위해 GPU와 함께, 또는 GUU 없이 사용될 수 있다. 또 다른 실시예들에서, 하드웨어 구성기는 또한, 모바일 장치가 3D VR 환경에서 동작 중일 때 물리적 디스플레이 상에 3D VR 이미지를 위한 3D 그래픽 계층들을 렌더링 하기 위해 사용될 수도 있다.
일반 경로(normal path)(1657)를 통해 바로 물리적 디스플레이 장치(1656)로 가는 것에서 도 11에 도시된 가상 디스플레이(1654)로 재지정되는(1659) 것으로 2D 그래픽 데이터의 라우팅을 재지정/스위칭함으로써, 논리적 디스플레이 0(1652) 내, 궁극적으로 가상 디스플레이(1654) 안에서 동적 이미지 회전, 예컨대 수직 모드(portrait mode)에서 수평 모드(landscape mode)로 그리고 그 반대로의 회전을 가능하게 한다. 그 결과, 2D 그래픽 이미지는 VR 애플리케이션(1658)에 의해 사용되어 메인 물리적 디스플레이(1656) 상의 VR 환경에서 디스플레이되는 3D 그래픽 이미지의 적어도 일부로서 렌더링될 때, 수직 모드에서 수평 모드로 그리고 그 반대로 동적으로 회전되는 것으로 보여질 수 있다. VR 애플리케이션에 의해 동작되기 전에 가상 디스플레이(1654)에서의 수직 및 수평 이미지 방향 제공을 가져오는 논리적 디스플레이 O(1652) 내에서의 2D 그래픽 이미지나 콘텐츠의 이러한 동적 회전 가능 기능은, VR 애플리케이션(1658) 프로세스들을 모바일 애플리케이션 프로세싱에 구애 받지 않게 만들어, 많은 2D 그래픽 지향 모바일 애플리케이션들이 HMD의 일부로서 동작할 때의 모바일 장치의 메인 물리적 디스플레이(1656) 상에서 VR 환경의 실시예들에 의해 호환 가능하게 디스플레이될 수 있게 한다.
도 12는 본 개시의 일 실시예에 따른 스타트업 시, 모바일 장치 등에서의 디스플레이 재지정에 대한 흐름도의 실시예를 도시한다. 도 12는 도 13 및 14에 도시된 재지정을 획득하기 전에 이용되는 메인 디스플레이 재지정 스타트업 프로세스의 제1단계를 도시한다.
도 12에서, 모바일 장치는 스타트업 시 제1 또는 일반 2D 물리적 디스플레이 동작 모드로 동작한다. 비휘발성 메모리나 다른 컴퓨터 판독가능 매체에 저장된 복수의 모바일 애플리케이션들이나 다른 애플리케이션들(1650)로부터 한 모바일 애플리케이션을 사용자가 선택하거나 또는 모바일 장치가 선택하도록 설정된다. 모바일 장치 내 하나 이상의 프로세서들은 선택된 모바일 애플리케이션에 의해 제공되는 명령어들을 실행하여, GUI(graphic user interface)의 계층들의 형식 등으로 되어 있는 2D 그래픽 데이터를 논리적 디스플레이 O(1652)로 제공한다. 논리적 디스플레이 O는 GUI의 그래픽 계층들 중 하나 이상을 보유하기 위한 복수의 버퍼들을 포함하는 객체일 수 있다. 2D 그래픽 데이터가 구성되어 GUI의 2D 그래픽 이미지로 렌더링되고, 사용자에게 보여질 수 있는 방식으로 모바일 장치의 물리적 디스플레이(1656)로 제공된다.
또한, 제2 논리적 디스플레이 X(1662)가 예컨대 다른 객체로서 생성된다. 논리적 디스플레이 X(1662)는, 예를 들어 드롭인 타입 HMD와 관련되거나 그 안에 삽입되는 모바일 장치에 기반하여 디스플레이 재지정이 일어나야 할 때 및/또는 VR 이미지가 HMD 헤드셋을 위해 렌더링되어야 한다는 지시가 VR 애플리케이션으로부터의 명령어들을 실행하는 모바일 장치 내 프로세서들 중 하나에 의해 수신될 때, 가상 디스플레이(1654)와 결부되거나 연결된다. 가상 디스플레이는 2D나 3D 그래픽 이미지들을 마치 그 이미지들이 물리적 디스플레이에서 디스플레이되고 있는 것처럼 저장하도록 구성되는 휘발성 메모리일 수 있다. 가상 디스플레이(1654) 안에 저장된 2D나 3D 그래픽 이미지들은 시각적으로 보여질 수 없다. VR 애플리케이션(1658)은 논리적 디스플레이 X(1662) 및 가상 디스플레이(1654)와 결부된다. VR 애플리케이션으로부터의 출력, 예컨대 3D 그래픽 데이터나 기타 그래픽 데이터는 논리적 디스플레이 X(1662)를 통해 가상 디스플레이(1654)로 제공된다. VR 애플리케이션(1658)으로부터의 그래픽 데이터는 물리적 디스플레이 장치(1656) 상에 디스플레이되거나 보여지지 않고, 대신 휘발성 메모리 내 가상 디스플레이(1654) 안에 비가시적인 방식으로 렌더링 및 디스플레이된다.
도 13은 예를 들어 스타트업 시나 스타트업 후, HMD(400)와 같은 VR 장치에 연결되거나 그와 통신 중일 때의 모바일 장치 안에서의 디스플레이 재지정에 대한 흐름도의 실시예를 도시한다.
도 13에서, 메인 디스플레이 재지정 스타트업(redirection startup)에 대한 제2단계가 보여지며, 여기서 논리적 디스플레이 0(1652) 및 논리적 디스플레이 X(1662)의 출력들이 스위칭되거나 재지정되고 있다. 논리적 디스플레이 O(1652)로부터의 출력이 가상 디스플레이(1654)로 재지정되고, 논리적 디스플레이 X(1662)의 출력이 메인 물리적 디스플레이 장치(1656)로 재지정된다. 이러한 3D VR 환경에서, VR 애플리케이션(1658)로부터 출력되는 그래픽 데이터는 메인 물리적 디스플레이(1656) 상에 디스플레이되고 HMD(400) 등에서 3D 그래픽 이미지로서 보여질 수 있다. 다양한 실시예들에서, OS 프레임워크, 예를 들어 안드로이드 운영체제 프레임워크의 디스플레이 관리자 서비스 애플리케이션이 수정되어, 논리적 디스플레이 O(1652)의 가상 디스플레이(1654)로의 재지정을 허용 또는 가능하게 한다.
도 14는 도 11에 도시된 흐름도 블록들의 재할당을 보여주는 형식의 메인 디스플레이 재지정에 대한 흐름도의 실시예를 도시한다. 도 14는 예를 들어 스타트업 시나 스타트업 후 HMD(400)와 같은 VR 장치에 연결되거나 그와 통신 중일 때의 모바일 장치에서의 메인 디스플레이 재지정 스타트업 프로세스의 제3단계에 대한 실시예를 제공한다.
도 14에서 하드웨어 구성기(hardware composer)(“HWC” 또는 “HW 구성기”)(1670)는 가상 디스플레이(1654)로부터의 출력을 생성하는 것으로 보여진다.
HW 구성기(1670)는 모바일 애플리케이션으로부터의 2D 그래픽 콘텐츠 계층들, 표면들 또는 데이터를 상태 바 및/또는 탐색 바와 같은 다른 그래픽 계층들이나 표면들과 혼합하여, 가상 디스플레이(1654)로부터 출력되는 복합 이미지(composite image)를 생성한다. 복합 이미지 출력은 HWC 관련 버퍼들로부터 출력되는 2D GUI 또는 그래픽 데이터이다.
VR 애플리케이션(1658)은 HWC(1670) 생성 출력을 이용하여 가상 디스플레이(1654)로부터 2D 복합 이미지나 그래픽 데이터를 검색한다(1660). HWC에 의해 생성된 가상 디스플레이의 출력은 VR 애플리케이션(1658)에 의해 사용되는 그래픽 데이터 또는 복합 이미지이다.
논리적 디스플레이 X(1662) 및 GPU에 의한 일부 처리를 통해, HWC(1670)는 메인 디스플레이의 프레임 버퍼(1655)나 다른 프로세서와 함께, 2D 이미지나 그래픽 데이터 콘텐츠의 적어도 일부를 3D 그래픽 이미지의 윈도우나 부분으로 렌더링한다. 3D 그래픽 이미지와 결합된 2D 이미지는 물리적 디스플레이 장치(1656) 내에서의 시각적 디스플레이를 위해 메인 디스플레이에 의해 제공되는 온전한 3D VR 그래픽 장면을 형성한다.
다양한 실시예들에서, 메인 디스플레이 장치의 출력은 물리적 디스플레이 장치의 프레임 버퍼이다. 따라서, 일부 실시예들에서, HWC 및 관련 버퍼들은, 가상 디스플레이로부터의 2D 복합 이미지 출력과, 물리적 디스플레이를 위한 메인 디스플레이 장치 출력으로부터의 3D VR 그래픽 장면 복합 출력 둘 모두를 구성하기 위해 사용된다. 일 실시예에서, 가상 디스플레이(1654)로부터의 그래픽 콘텐츠 출력은 물리적 디스플레이(1656) 상에 디스플레이되는 3D VR 장면의 렌더링 성능을 향상시키기 위해 스케일 다운(scaled down) 될 수 있다. 이 경우, VR 애플리케이션(1658)에서의 명령들에 따라 GPU나 HW 구성기(1670) 등에 의해 구성된 후의 가상 디스플레이(1654)의 그래픽 콘텐츠 출력은, 예컨대 1480x720이라는 해상도를 가질 수 있고, 반면 모바일 애플리케이션들로부터의 그래픽 콘텐츠가 메인 물리적 디스플레이 상에서 일반적인 2D 환경으로 디스플레이되어야 할 때의 해상도는 물리적 디스플레이(1656) 상에서 예컨대 보다 높은 2960x1440 해상도일 수 있다.
다양한 실시예들은 VR 애플리케이션에 의해 사용되는 추가된 OS 시스템 또는 프레임워크 기능을 포함한다. 그러한 추가 OS 시스템 또는 프레임워크 기능은 예를 들어 가상공간관리자(VirtualSpaceManager)를 이용하는 애플리케이션이나 서비스 내에서 집중될 수 있다.
다양한 실시예들에서, 가상공간관리자 서비스는 다음과 같은 특성들 중 하나 이상을 제공할 수 있다. 그러한 특성들은 (a) 활동들을 각각 가상적으로 디스플레이 및 호스팅 할 수 있는 다수의 가상 디스플레이 스크린들을 생성 및 관리하도록 구성된 클라이언트 API를 노출하고(expose); (b) 민감한 OS나 프레임워크 기능에 대한 액세스를 보호하고; (c) 사용자 인터페이스/GUI가 정규 애플리케이션(apk)에서 구현될 수 있게 허용하고; (d) VR 특화된 것이 아니고 비 VR 관련 애플리케이션들에서 사용될 수 있는 방식으로 클라이언트 API를 제공하는 것을 포함할 수 있다.
본 개시의 다양한 실시예들은 메인 물리적 디스플레이 전체 상에 디스플레이되는 것에서 가상 디스플레이 상에 디스플레이되는 것으로 모바일 애플리케이션의 2D GUI 등의 그래픽 콘텐츠를 재지정하는 메인 물리적 디스플레이 재지정을 지원한다. 그러한 재지정은 2D GUI와 관련된 터치 입력들을 가상 디스플레이로 라우팅(routing)하는 것을 포함할 수 있다.
본 개시의 다양한 실시예들은 하나 이상의 가상 스크린들을 생성하며, 이때 휘발성 메모리 안의 가상 스크린 상의 그래픽 데이터, 콘텐츠 또는 이미지는 2D 모바일 애플리케이션 GUI가 전자 장치의 메인 물리적 디스플레이 상에서 수직 모드에서 수평 모드로, 그리고 그 반대로 동적으로 회전될 수 있는 것과 같은 방식으로 동적으로 회전될 수 있다.
다양한 실시예들은 도 1 및 도 14에서 도시된 것과 같은 하드웨어 구성기(HWC)를 포함한다. HWC(125) 또는 HWC(1670)는 그래픽 데이터의 계층들이 디스플레이될 결과적인 그래픽 이미지 안으로 병합되도록 구성할 이용 가능한 버퍼들을 체계화하는 효율적 방식을 결정하기 위해 OS, 프레임워크 애플리케이션들, 및/또는 VR 애플리케이션과 상호 작용하는 것으로 구성되는 복수의 버퍼들이나 메모리 부분들일 수 있다. HWC의 구현은 종종 장치에 고유하며, 종종 관련 디스플레이 하드웨어에서 수행된다. HWC는 GPU와 함께 사용되거나 따로 사용될 수 있다.
HWC는 다수의 버퍼들을, 모두가 GPU에 의해 이루어지는 다수의 계층들의 동일한 복합체가 아닌, 예컨대 디스플레이 하드웨어 안에서 합성한다. 예를 들어, 2D 모드에서 동작하고 메인 물리적 디스플레이 상에 GUI를 수직 방향으로 디스플레이하면서 상태 바 계층을 맨 위에, 탐색 바 계층을 맨 아래에, 모바일 애플리케이션 콘테츠 계층은 그 사이에 디스플레이되게 하는 모바일 장치를 고려할 수 있다. 각각의 계층의 콘텐츠들은 각각의 HWC 버퍼들 안에 있다.
HWC는 그 계층들을 각각의 버퍼에서 디스플레이 관리자 서비스(DisplayManagerService) 등과 같은 서비스 애플리케이션이나 물리적 디스플레이 하드웨어로 직접 보내, 그 물리적 또는 가상 디스플레이가 스크린의 서로 다른 (최상위, 최하위, 중간) 위치에 배치할 서로 다른 버퍼들로부터 그래픽 데이터 계층들을 판독하도록 지시한다.
도 15a, 15b, 및 15c는 본 개시의 실시예들에 따라 사용자가 3D 그래픽 이미지의 일부로서 렌더링된 2D GUI의 3D VR 환경 내 3D 그래픽 이미지 보기들을 인지하는 방법에 대한 예들을 제공한다. 도 15a, 15b, 및 15c에 도시된 예들과 같이, 실제의 3D 그래픽 이미지는 사용자의 양 눈 각각이 볼 개별 이미지를 가지는 분할 스크린을 이용하여 입체적으로 디스플레이됨으로써, 사용자가 하나의 3D 이미지를 인지하도록 한다는 것이 이해된다.
도 15a에서, 2D 모바일 애플리케이션, 예컨대 메시징 애플리케이션이 사용자에 의해 선택되었고 모바일 장치는 VR 환경의 디스플레이, 예컨대 HMD의 일부로서 동작 중이다. 메시징 애플리케이션의 GUI(1710)는 휘발성 메모리 내 가상 디스플레이로 제공되어 VR 애플리케이션에 의해 획득된다. VR 애플리케이션은 식물과 물 경치 배경인 VR 3D 배경(1715) 위의 윈도우로서 수직 보기(1710) 내 2D 메시징 애플리케이션 GUI의 렌디션(rendition)을 포함하도록 3D 그래픽 이미지(1700)를 합성 및 렌더링한다. 그에 따라 사용자는 이전에는 모바일 장치의 메인 물리적 디스플레이 상에서 2D 그래픽 이미지로서만 이용 가능하던 2D 모바일 애플리케이션의 GUI를, 모바일 장치를 사용하면서 3D VR 환경의 동작으로 이용할 수 있게 된다. 모바일 장치가 HMD 프레임에 물리적으로 수평 설치 또는 삽입되더라도, 2D 모바일 애플리케이션 GUI, 예컨대 메시징 애플리케이션은 수직 보기로 보여지거나, 수평 보기가 VR 환경 콘트롤들(UI)을 이용하여 2D 모바일 애플리케이션에서도 이용 가능할 때 수평 보기(특정하여 도시되지 않음)로 회전될 수 있다는 것을 알아야 한다.
도 15b는 2D 그림이나 비디오가 3D 배경 장면(1715’) 위에서 재생되고 있는, 2D 그래픽 사용자 인터페이스가 수평 보기(1712)로 회전된 3D 그래픽 VR 이미지(1700’)을 도시한다.
도 15c에서, 2D 그래픽 사용자 인터페이스는 수직 보기(1710’)로 회전되어 있고, 이때 2D 그림이나 비디오는 전체적 3D 그래픽 VR 이미지(1700’)의 3D VR 배경 장면(1715’) 위의 윈도우 안에서 재생되고 있다.
도 16은 본 개시의 방법의 일 실시예에 대한 흐름도이다. 도 16에 예시된 본 개시의 방법에 대한 실시예는 단지 예시를 위한 것이며, 본 개시의 범위를 특정한 어떤 방법에 한정하는 것이 아니다. 모바일 장치 등과 같은 전자 장치는 하우징의 일부를 통해 물리적 디스플레이가 보여지도록 노출되는 하우징을 포함한다.
전자 장치는 OS와 관련된 명령어들을 처리하는 적어도 하나의 프로세서, 프레임워크 애플리케이션들, 미들웨어 서비스 애플리케이션들, 2D 및 3D 그래픽, VR 환경 관련 애플리케이션들, 및/또는 전자 장치 상이나 그 밖에 위치하는 프로그램 모듈 상의 접근 가능 메모리에 저장된 다른 다운로드 가능하거나 전자 장치와 관련된 애플리케이션들을 포함한다.
전자 장치는 적어도 하나의 프로세서에 접근 가능한 온보드(onboard) 메모리를 포함한다. 그 메모리는 휘발성 메모리 및/또는 비휘발성 메모리를 모두 포함한다. 다양한 실시예들에서, 휘발성 메모리의 일부가 가상 디스플레이로서 동작하도록 구성된다.
S110에서, 2D 그래픽 사용자 인터페이스(GUI)를 위한 명령어들이 전자 장치의 비휘발성 메모리 안에 저장된다. 명령어들은 예컨대, 하나 이상의 프로세서들에 의해 실행될 수 있는 애플리케이션 또는 프로그램의 형식으로 구성될 수 있다. 2D GUI는 일반적으로 몇 가지만 거론하자면 폰 GUI, 메시징 GUI, 소셜 네트워크 GUI, 날씨나 뉴스 GUI, 게임 GUI 등과 같이 모바일 장치의 2D 물리적 디스플레이 상에 디스플레이되는 GUI이다.
S112에서, 3D 가상 현실(3D VR) 환경을 위한 명령어들 및/또는 사용자 인터페이스가 전자 장치의 비휘발성 메모리 안에 저장된다. 3D VR 명령어들은 하나 이상의 프로세서들에 의해 실행될 때, VR 환경에서 디스플레이될 VR 배경, 메뉴, 및 표면들의 렌더링과 생성을 제어한다.
S114에서, 사용자는 전자 장치 상에서 사용할 2D GUI 애플리케이션을 선택한다. 선택된 2D GUI 애플리케이션의 관련 명령어들이 OS에 의해 실행된다.
S116에서, 전자 장치의 OS는 장치 상의 물리적 디스플레이가 예컨대 HMD에 위치하거나 그 일부로서, 2D 물리적 디스플레이 모드로 동작해야 할지 3D VR 환경 모드로 동작해야 할지를 판단한다.
2D 물리적 디스플레이를 가지는 모바일 장치로서 동작할 때, S118에서, 적어도 하나의 프로세서는 2D 그래픽 이미지를 생성하거나 렌더링하기 위해 2D GUI 명령어들 중 적어도 일부를 실행한다.
S120에서, 2D GUI가 물리적 디스플레이 상에 제공되어 디스플레이된다.
S122에서, 2D 디스플레이 모드로 동작 중인 다양한 실시예들에서, 예컨대, 모바일 장치가 3D VR 환경 HMD의 일부로서 동작하기 위해 준비하는 메인 디스플레이 재지정 스타트업 중에, 전자 장치의 OS는 전자 장치의 프로세서들 중 적어도 하나가 3D VR 환경 명령어들을 실행하여 VR 배경 그래픽, 메뉴, 및 표면/기하학적 배열과 같은 3D 그래픽 데이터를 생성하게 할 수 있다. 그러한 그래픽 데이터는 잠정적 3D 보기를 위한 좌우 이미지들을 포함할 수 있다.
S124에서, 3D 그래픽 데이터는 전자 장치의 휘발성 메모리 영역에 위치하는 가상 디스플레이로 제공된다.
S116에서, 전자 장치의 OS는 물리적 디스플레이가 VR HMD의 일부로서 동작하고 있다고 판단하고, S126에서 OS는 전자 장치 내 적어도 하나의 프로세서가 선택된 2D GUI 애플리케이션으로부터 2D 그래픽 이미지를 생성하거나 렌더링 하도록 2D GUI 명령어들 중 적어도 일부를 실행하게 한다.
S128에서, 2D 그래픽 이미지나 데이터는 휘발성 메모리 내 가상 디스플레이로 제공되며, 사용자에게 직접적이거나 물리적으로 보여질 수 없다. S130에서 OS는 3D VR 환경 명령어들을 실행하여 가상 디스플레이로부터 2D 그래픽 데이터나 이미지를 획득한다.
S130에서, 3D VR 환경 명령어들은 가상 디스플레이로부터 2D 그래픽 이미지나 데이터를 획득하도록 계속해서 실행될 수 있다.
S132에서, 3D VR 명령어들이 하나 이상의 프로세서들에 의해 실행되어, 3D 이미지의 적어도 일부 안이나 위에 윈도우나 영역을 포함하는 3D VR 이미지 배경, 메뉴 및/또는 표면/기하학적 배열을 렌더링 한다. 상기 윈도우나 영역은 2D 그래픽 이미지나 데이터의 적어도 일부를 포함한다. 예를 들어 2D 전화 다이얼링 GUI가 포함되어 3D VR 이미지 데이터의 일부로서 2D나 3D 윈도우 또는 그래픽 계층으로서 렌더링될 수 있다. 다양한 실시예들에서, 좌우 그래픽(보는 사람의 양 눈 각각에 하나씩)이 3D VR 환경 명령어들에 의해 생성되거나 렌더링된다.
S134에서, 3D VR 명령어들의 실행은 렌더링된 3D VR 이미지가 전자 장치의 물리적 디스플레이로 제공되어 디스플레이되는 결과를 가져온다. 예를 들어 도 15a, 15b, 및 15c에 도시된 것과 같이 렌더링된 3D VR 이미지는, 본 개시의 일 실시예에서 모바일 장치 등과 같은 전자 장치를 병합한 HMD 장치에서 보여지는 3D VR 이미지로 2D 메시지 GUI나 비디오 GUI가 결합된 것이다.
본 출원의 내용은 어떤 특정 요소, 단계, 또는 기능이 청구범위에 포함되어야 하는 필수 구성 요소를 의미한다고 파악되어서는 안 된다. 본 개시의 특허 범위는 오직 청구범위에 의해서만 한정된다. 청구범위 안에서 “메커니즘”, “모듈”, “장치”, “유닛”, “성분”, “요소”, “멤버”, “장치”, “기계”, “시스템”, “프로세서”,“제어기”를 비한정적으로 포함하는 모든 용어의 사용은 출원인들에 의해 당업자에게 알려진 구조들을 일컫는 것으로 이해되어야 한다.
본 개시는 다양한 실시예들을 참조하여 기술되었지만, 당업자에게 다양한 변경 및 수정안이 제안될 수 있다. 본 개시는 그러한 변경 및 수정이 첨부된 청구범위 안에 드는 것으로 포괄하도록 되어 있다.

Claims (18)

  1. 전자 장치에 있어서,
    하우징;
    상기 하우징의 일부를 통해 노출되는 물리적 디스플레이;
    상기 하우징 안에 위치하고 상기 물리적 디스플레이와 통신 가능하게 연결되는 적어도 하나의 프로세서;
    상기 하우징 안에 위치하며 상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 휘발성 메모리; 및
    상기 하우징 안에 위치하고 상기 적어도 하나의 프로세서와 통신 가능하게 연결되는 비휘발성 메모리를 포함하고, 상기 비휘발성 메모리는
    이차원(2D) 사용자 인터페이스를 생성하기 위한 제1 명령어들;
    삼차원(3D) VR 환경을 생성하기 위한 제2 명령어들; 및
    시스템 명령어들을 저장하도록 구성되고,
    제1 동작 모드에서, 상기 전자 장치는 모바일 장치로서 동작하며 상기 시스템 명령어들은 실행 시 상기 적어도 하나의 프로세서가
    제1 논리적 디스플레이의 제1 출력 및 제2 논리적 디스플레이의 제2 출력을 각각 상기 물리적 디스플레이 및 가상 디스플레이로 향하게 하며;
    상기 2D 사용자 인터페이스를 생성하기 위한 상기 제1 명령어들을 실행하여 상기 적어도 하나의 프로세서가 제1 그래픽 데이터를 상기 제1 논리적 디스플레이로 제공하도록 하고;
    상기 제1 논리적 디스플레이로부터의 상기 제1 그래픽 데이터를 상기 물리적 디스플레이로 제공하고;
    상기 3D VR 환경을 생성하기 위한 상기 제2 명령어들을 실행하여 상기 적어도 하나의 프로세서가 상기 제2 논리적 디스플레이로부터의 제2 그래픽 데이터를 상기 휘발성 메모리 안에 제공되는 상기 가상 디스플레이로 제공하게 하고;
    제2 동작 모드에서, 상기 전자 장치는 HMD(head mountable device)의 일부로서 동작하고 상기 시스템 명령어들은 실행 시 상기 적어도 하나의 프로세서가
    2D 모바일 애플리케이션을 실행시키고;
    상기 제1 출력 및 상기 제2 출력을 각각 상기 가상 디스플레이 및 상기 물리적 디스플레이로 향하도록 재지정하며;
    상기 2D 사용자 인터페이스를 생성하기 위한 상기 제1 명령어들을 실행하여 상기 적어도 하나의 프로세서가 상기 제1 그래픽 데이터를 상기 제1 논리적 디스플레이에게 제공하고;
    상기 제1 논리적 디스플레이로부터의 상기 제1 그래픽 데이터를 상기 가상 디스플레이로 제공하도록 하고;
    상기 3D VR 환경을 생성하기 위한 상기 제2 명령어들을 실행하여 상기 적어도 하나의 프로세서가
    상기 가상 디스플레이로부터 상기 제1 그래픽 데이터를 획득하고;
    상기 획득된 제1 그래픽 데이터를 상기 제2 논리적 디스플레이로 제공하며;
    상기 제1 그래픽 데이터의 적어도 일부를 이용하여 3D 이미지를 렌더링하고;
    상기 렌더링된 3D 이미지를 상기 제2 논리적 디스플레이로부터 상기 물리적 디스플레이로 제공하도록 하는 전자 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 제2 동작 모드에서, 상기 시스템 명령어들은 실행 시 상기 적어도 하나의 프로세서가
    상기 2D 모바일 애플리케이션의 선택을 수신하고;
    상기 제1 명령어들을 실행하여 상기 적어도 하나의 프로세서가 둘 이상의 이미지 계층들을 생성하도록 하고;
    하드웨어 구성기(hardware composer)가 상기 둘 이상의 이미지 계층들을 복합 2D 이미지로 결합하게 하고;
    상기 복합 2D 이미지를 상기 제1 그래픽 데이터로서 상기 가상 디스플레이로 제공하도록 하는 전자 장치.
  5. 제4 항에 있어서, 상기 제2 동작 모드에서, 상기 시스템 명령어들은 실행 시 상기 적어도 하나의 프로세서가
    상기 제2 명령어들을 실행하여 상기 적어도 하나의 프로세서가 배경 이미지를 더 이용하여 상기 3D 이미지를 렌더링 하게 하고;
    상기 렌더링된 3D 이미지를 상기 물리적 디스플레이로 제공하도록 하는 전자 장치.
  6. 제5항에 있어서, 상기 적어도 하나의 프로세서는 애플리케이션 프로세서 및 그래픽 프로세싱 유닛(GPU)을 포함하고, 상기 제2명령어들은 실행 시 상기 GPU가 상기 3D 이미지를 렌더링 하게 하는 전자 장치.
  7. 제6항에 있어서, 상기 애플리케이션 프로세서는 상기 하드웨어 구성기에 통신 가능하게 연결되거나 상기 하드웨어 구성기와 병합되어, 상기 하드웨어 구성기가 상기 복합 2D 이미지를 상기 가상 디스플레이로 제공하도록 하는 전자 장치.
  8. 제1 항에 있어서, 상기 제2 동작 모드에서, 상기 시스템 명령어들은 실행 시 상기 적어도 하나의 프로세서가, 상기 제1 그래픽 데이터를 상기 가상 디스플레이로 제공하고 상기 제1 그래픽 데이터를 상기 가상 디스플레이 안에서 동적으로 회전시키도록 하며, 상기 동적으로 회전되는 제1 그래픽 데이터는 상기 제1 그래픽 데이터가 되는 전자 장치.
  9. 제1 항에 있어서, 상기 HMD는 몸체와 커버를 포함하고,
    상기 하우징을 상기 몸체로 삽입하는 것은 상기 적어도 하나의 프로세서가 상기 제2 동작 모드를 시작하도록 하는 전자 장치.
  10. 제1항에 있어서, 상기 비휘발성 메모리는 복수의 프레임워크 프로그램들을 저장하도록 더 구성되고, 상기 프레임워크 프로그램들은 상기 시스템 명령어들의 적어도 일부를 포함하는 전자 장치.
  11. 전자 장치에 의해 수행되는 방법에 있어서,
    하우징의 일부를 통해 보여지도록 물리적 디스플레이를 제공하는 단계;
    적어도 하나의 프로세서를 물리적 디스플레이에 통신 가능하게 연결하는 단계;
    휘발성 메모리 및 비휘발성 메모리 각각을 적어도 하나의 프로세서에 통신 가능하게 연결하는 단계;
    2D 사용자 인터페이스를 생성하기 위한 제1 명령어들을 상기 비휘발성 메모리 안에 저장하는 단계;
    3D 가상 현실(VR) 환경을 생성하기 위한 제2 명령어들을 상기 비휘발성 메모리 안에 저장하는 단계; 및
    시스템 명령어들을 상기 비휘발성 메모리 안에 저장하는 단계를 포함하고,
    제1 동작 모드에서, 상기 전자 장치는 모바일 장치로서 동작하고 상기 방법은
    제1 논리적 디스플레이의 제1 출력 및 제2 논리적 디스플레이의 제2 출력을 각각 상기 물리적 디스플레이 및 가상 디스플레이로 향하게 하는 단계;
    상기 2D 사용자 인터페이스를 생성하기 위한 상기 제1 명령어들의 적어도 일부를 실행할 때, 상기 적어도 하나의 프로세서에 의해 제1 그래픽 데이터를 상기 제1 논리적 디스플레이로 제공하는 단계;
    상기 제1 논리적 디스플레이로부터의 상기 제1 그래픽 데이터를 상기 물리적 디스플레이로 제공하는 단계;
    상기 제1 그래픽 데이터를 상기 물리적 디스플레이에서 디스플레이 하는 단계; 및
    상기 3D VR 환경을 제공하기 위한 상기 제2 명령어들의 적어도 일부를 실행할 때, 상기 적어도 하나의 프로세서에 의해 상기 제2 논리적 디스플레이로부터의 제2 그래픽 데이터를 상기 휘발성 메모리 내에서 제공되는 상기 가상 디스플레이로 제공하는 단계를 더 포함하고,
    제2 동작 모드에서, 상기 전자 장치는 HMD (head mountable device)의 일부로서 동작하고 상기 방법은
    2D 모바일 애플리케이션을 실행시키는 단계;
    상기 제1 출력 및 상기 제2 출력을 각각 상기 가상 디스플레이 및 상기 물리적 디스플레이로 향하도록 재지정하는 단계;
    상기 2D 사용자 인터페이스를 생성하기 위한 상기 제1 명령어들의 적어도 일부를 실행할 때, 상기 적어도 하나의 프로세서에 의해 상기 제1 논리적 디스플레이로부터의 상기 제1 그래픽 데이터를 상기 가상 디스플레이로 제공하는 단계;
    상기 3D VR 환경을 생성하기 위한 상기 제2 명령어들의 적어도 일부를 실행할 때 상기 적어도 하나의 프로세서에 의해 상기 제1그래픽 데이터를 상기 가상 디스플레이로부터 획득하는 단계;
    상기 획득된 제1 그래픽 데이터를 상기 제2 논리적 디스플레이로 제공하는 단계;
    상기 3D VR 환경을 생성하기 위한 상기 제2 명령어들의 적어도 일부를 실행할 때 상기 적어도 하나의 프로세서에 의해 상기 제1 그래픽 데이터의 적어도 일부를 이용하여 3D 이미지를 렌더링 하는 단계; 및
    상기 렌더링된 3D 이미지를 상기 제2 논리적 디스플레이로부터 상기 물리적 디스플레이로 제공하는 단계를 포함하는 방법.
  12. 삭제
  13. 삭제
  14. 제11항에 있어서, 상기 제2 동작 모드에서 상기 방법은
    상기 적어도 하나의 프로세서에 의해, 상기 2D 모바일 애플리케이션 프로그램의 선택을 수신하는 단계;
    상기 2D 사용자 인터페이스를 생성하기 위한 상기 제1 명령어들의 적어도 일부를 실행할 때 상기 적어도 하나의 프로세서에 의해 둘 이상의 이미지 계층들을 생성하는 단계;
    하드웨어 구성기를 활용할 때 상기 적어도 하나의 프로세서에 의해, 상기 둘 이상의 이미지 계층들을 하나의 2D 이미지 안에 결합하는 단계; 및
    상기 2D 이미지를 상기 제1 그래픽 데이터로서 상기 가상 디스플레이로 제공하는 단계를 더 포함하는 방법.
  15. 제14항에 있어서, 상기 제2 동작 모드에서 상기 방법은
    상기 3D VR 환경을 생성하기 위한 상기 제2 명령어들을 활용할 때 상기 적어도 하나의 프로세서에 의해, 3D 배경 이미지를 더 이용하여 상기 3D 이미지를 렌더링 하는 단계; 및
    상기 3D 이미지를 상기 물리적 디스플레이로 제공하는 단계를 더 포함하는 방법.
  16. 제11항에 있어서, 상기 제2 동작 모드에서 상기 방법은
    상기 시스템 명령어들의 적어도 일부를 실행할 때 상기 적어도 하나의 프로세서에 의해, 상기 제1 그래픽 데이터의 적어도 일부를 이용하여 상기 3D 이미지를 렌더링 하기 전에 상기 가상 디스플레이 안에서 상기 제1 그래픽 데이터를 동적으로 회전하는 단계를 더 포함하는 방법.
  17. 제11항에 있어서, 상기 하우징을 상기 HMD의 몸체에 삽입하는 단계, 및 상기 적어도 하나의 프로세서가 상기 제2 동작 모드를 시작하게 하는 단계를 더 포함하는 방법.
  18. 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서가 제11항 및 14항 내지 제17항 중 어느 하나의 방법을 수행하게 하는 프로그램 코드를 포함하는 컴퓨터 판독가능 저장 매체.
KR1020197033880A 2017-04-20 2018-04-10 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법 KR102628044B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762487952P 2017-04-20 2017-04-20
US62/487,952 2017-04-20
US15/896,913 US11494986B2 (en) 2017-04-20 2018-02-14 System and method for two dimensional application usage in three dimensional virtual reality environment
US15/896,913 2018-02-14
PCT/KR2018/004170 WO2018194306A1 (en) 2017-04-20 2018-04-10 System and method for two dimensional application usage in three dimensional virtual reality environment

Publications (2)

Publication Number Publication Date
KR20190133055A KR20190133055A (ko) 2019-11-29
KR102628044B1 true KR102628044B1 (ko) 2024-01-22

Family

ID=63854579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197033880A KR102628044B1 (ko) 2017-04-20 2018-04-10 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법

Country Status (4)

Country Link
US (1) US11494986B2 (ko)
EP (1) EP3580638B1 (ko)
KR (1) KR102628044B1 (ko)
WO (1) WO2018194306A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240052085A (ko) 2016-10-05 2024-04-22 매직 립, 인코포레이티드 혼합 현실 교정을 위한 안구주위 테스트
US11861136B1 (en) * 2017-09-29 2024-01-02 Apple Inc. Systems, methods, and graphical user interfaces for interacting with virtual reality environments
EP3741109B1 (en) 2018-01-17 2024-04-24 Magic Leap, Inc. Eye center of rotation determination, depth plane selection, and render camera positioning in display systems
AU2019209950A1 (en) 2018-01-17 2020-07-09 Magic Leap, Inc. Display systems and methods for determining registration between a display and a user's eyes
CN108174175A (zh) * 2018-01-30 2018-06-15 小派科技(上海)有限责任公司 基于移动端的vr显示系统
US11567336B2 (en) * 2018-07-24 2023-01-31 Magic Leap, Inc. Display systems and methods for determining registration between display and eyes of user
CN112805659A (zh) 2018-08-03 2021-05-14 奇跃公司 通过用户分类为多深度平面显示系统选择深度平面
CN109584376B (zh) * 2018-12-03 2023-04-07 广东工业大学 基于vr技术的构图教学方法、装置、设备以及存储介质
CN111768330B (zh) * 2019-03-30 2024-09-06 华为技术有限公司 图像处理方法及计算机系统
CN110221894A (zh) * 2019-05-30 2019-09-10 重庆爱奇艺智能科技有限公司 一种用于在3d视图中显示2d窗口的方法与装置
CN110347305A (zh) * 2019-05-30 2019-10-18 华为技术有限公司 一种vr多屏显示方法及电子设备
CN110569098B (zh) * 2019-09-02 2022-05-24 上海沣沅星科技有限公司 2d及3d混合的人机界面生成方法、系统、设备及介质
US11481965B2 (en) * 2020-04-10 2022-10-25 Samsung Electronics Co., Ltd. Electronic device for communicating in augmented reality and method thereof
CN113342220B (zh) * 2021-05-11 2023-09-12 杭州灵伴科技有限公司 窗口渲染方法、头戴式显示套件和计算机可读介质
CN114630101B (zh) * 2021-09-30 2024-05-31 海信视像科技股份有限公司 显示设备、vr设备及虚拟现实应用内容的显示控制方法
US12081729B2 (en) * 2022-07-15 2024-09-03 Lenovo (Singapore) Pte. Ltd. Square orientation for presentation of content stereoscopically
US20240019979A1 (en) * 2022-07-15 2024-01-18 Lenovo (Singapore) Pte. Ltd. Conversion of 3d virtual actions into 2d actions
US20240220006A1 (en) * 2022-12-29 2024-07-04 Skonec Entertainment Co., Ltd. Virtual reality control system

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007068581A (ja) 2005-09-02 2007-03-22 Nintendo Co Ltd ゲーム装置およびゲームプログラム
US7899864B2 (en) * 2005-11-01 2011-03-01 Microsoft Corporation Multi-user terminal services accelerator
US7573489B2 (en) 2006-06-01 2009-08-11 Industrial Light & Magic Infilling for 2D to 3D image conversion
JP4883529B2 (ja) 2007-01-29 2012-02-22 サミー株式会社 画像生成装置、遊技機及び画像生成プログラム
US9116593B2 (en) * 2007-07-06 2015-08-25 Qualcomm Incorporated Single-axis window manager
US9167070B2 (en) * 2007-07-31 2015-10-20 Qualcomm Incorporated Widget discovery in computing devices
US8731525B2 (en) * 2007-08-01 2014-05-20 Qualcomm Incorporated Single button contact request and response
US7574535B2 (en) * 2007-08-31 2009-08-11 Palm, Inc. Prevention of inadvertent data synchronization to and from removable memory sources on a handheld connected device
WO2009072504A1 (ja) * 2007-12-07 2009-06-11 Sony Corporation 制御装置、入力装置、制御システム、制御方法及びハンドヘルド装置
US8230347B2 (en) * 2008-04-04 2012-07-24 Hewlett-Packard Development Company, L. P. System and method for prompting users to subscribe to web feeds based on web browsing activity
US8957835B2 (en) * 2008-09-30 2015-02-17 Apple Inc. Head-mounted display apparatus for retaining a portable electronic device with display
US20100277575A1 (en) * 2009-04-30 2010-11-04 Tetracam, Inc. Method and apparatus for providing a 3d image via a media device
US9571625B2 (en) * 2009-08-11 2017-02-14 Lg Electronics Inc. Electronic device and control method thereof
KR20110057629A (ko) * 2009-11-24 2011-06-01 엘지전자 주식회사 Ui 제공 방법 및 디지털 방송 수신기
US8947455B2 (en) * 2010-02-22 2015-02-03 Nike, Inc. Augmented reality design system
US8429678B1 (en) * 2010-04-20 2013-04-23 American Megatrends, Inc. Redirecting video to a remote client using a service processor
JP4951697B2 (ja) 2010-07-15 2012-06-13 株式会社コナミデジタルエンタテインメント ゲームシステム、その制御方法及び、コンピュータプログラム
KR20120056929A (ko) * 2010-09-20 2012-06-05 엘지전자 주식회사 휴대 단말기 및 그 동작 제어방법
JP2012174237A (ja) 2011-02-24 2012-09-10 Nintendo Co Ltd 表示制御プログラム、表示制御装置、表示制御システム、及び表示制御方法
WO2012135378A1 (en) * 2011-04-01 2012-10-04 Analog Devices, Inc. Method and apparatus for haptic vibration response profiling and feedback
US20160078791A1 (en) * 2012-02-21 2016-03-17 Rockport Enterprises, Llc Virtualized greeter systems and methods
EP2879022A4 (en) * 2012-07-27 2016-03-23 Nec Solution Innovators Ltd THREE-DIMENSIONAL USER INTERFACE DEVICE AND THREE-DIMENSIONAL OPERATING PROCESS
JP5568610B2 (ja) 2012-08-28 2014-08-06 株式会社プレミアムエージェンシー 拡張現実システム、映像合成装置、映像合成方法及びプログラム
US9628783B2 (en) * 2013-03-15 2017-04-18 University Of Southern California Method for interacting with virtual environment using stereoscope attached to computing device and modifying view of virtual environment based on user input in order to be displayed on portion of display
KR20140122054A (ko) 2013-04-09 2014-10-17 삼성전자주식회사 2차원 이미지를 3차원 이미지로 변환하는 3차원 이미지 변환 장치 및 그 제어 방법
US9452354B2 (en) 2013-06-07 2016-09-27 Sony Interactive Entertainment Inc. Sharing three-dimensional gameplay
US20150024368A1 (en) * 2013-07-18 2015-01-22 Intelligent Decisions, Inc. Systems and methods for virtual environment conflict nullification
JP6217244B2 (ja) * 2013-08-29 2017-10-25 セイコーエプソン株式会社 画像処理装置、これを有する頭部装着型表示装置、画像処理方法およびコンピュータープログラム
US20150067603A1 (en) * 2013-09-05 2015-03-05 Kabushiki Kaisha Toshiba Display control device
TWI606386B (zh) * 2013-10-31 2017-11-21 富智康(香港)有限公司 頁面切換系統、觸控裝置及頁面切換方法
US9529194B2 (en) * 2013-11-21 2016-12-27 Samsung Electronics Co., Ltd. Head-mounted display apparatus
JP6264871B2 (ja) * 2013-12-16 2018-01-24 セイコーエプソン株式会社 情報処理装置および情報処理装置の制御方法
KR102355118B1 (ko) * 2014-01-06 2022-01-26 삼성전자주식회사 전자 장치 및 가상 현실 모드에서의 이벤트 표시 방법
US9377626B2 (en) * 2014-02-18 2016-06-28 Merge Labs, Inc. Remote control augmented motion data capture
KR102182161B1 (ko) * 2014-02-20 2020-11-24 엘지전자 주식회사 Hmd 및 그 제어 방법
US9575319B2 (en) * 2014-03-10 2017-02-21 Ion Virtual Technology Corporation Method and system for reducing motion blur when experiencing virtual or augmented reality environments
US9529200B2 (en) * 2014-03-10 2016-12-27 Ion Virtual Technology Corporation Method and system for reducing motion blur when experiencing virtual or augmented reality environments
US9996975B2 (en) * 2014-03-18 2018-06-12 Dreamworks Animation L.L.C. Interactive multi-rider virtual reality ride system
US9551873B2 (en) * 2014-05-30 2017-01-24 Sony Interactive Entertainment America Llc Head mounted device (HMD) system having interface with mobile computing device for rendering virtual reality content
WO2016009434A1 (en) 2014-07-14 2016-01-21 Arthur Rabner Near-eye display system
WO2016011047A1 (en) * 2014-07-15 2016-01-21 Ion Virtual Technology Corporation Method for viewing two-dimensional content for virtual reality applications
JP6659090B2 (ja) * 2014-08-11 2020-03-04 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム
US9798143B2 (en) * 2014-08-11 2017-10-24 Seiko Epson Corporation Head mounted display, information system, control method for head mounted display, and computer program
KR20160024168A (ko) * 2014-08-25 2016-03-04 삼성전자주식회사 전자 장치의 디스플레이 제어 방법 및 전자 장치
US10261579B2 (en) * 2014-09-01 2019-04-16 Samsung Electronics Co., Ltd. Head-mounted display apparatus
KR102244222B1 (ko) * 2014-09-02 2021-04-26 삼성전자주식회사 가상 현실 서비스를 제공하기 위한 방법 및 이를 위한 장치들
US9984505B2 (en) * 2014-09-30 2018-05-29 Sony Interactive Entertainment Inc. Display of text information on a head-mounted display
US20160098094A1 (en) * 2014-10-02 2016-04-07 Geegui Corporation User interface enabled by 3d reversals
KR102292312B1 (ko) * 2014-10-02 2021-08-24 삼성전자주식회사 전자 장치 및 전자 장치의 디스플레이 제어 방법
CN107111468B (zh) * 2014-10-14 2021-06-11 巴尔科股份有限公司 具有虚拟显示器的显示系统
US9857863B2 (en) * 2014-10-20 2018-01-02 Seiko Epson Corporation Display apparatus, control method for display apparatus, and program that can switch an operation mode of a display apparatus from a normal operation mode to a battery replacement mode
WO2016077798A1 (en) * 2014-11-16 2016-05-19 Eonite Perception Inc. Systems and methods for augmented reality preparation, processing, and application
CN105739934B (zh) * 2014-12-11 2018-09-21 华为终端(东莞)有限公司 多屏拼接显示处理方法和设备
KR20160085613A (ko) * 2015-01-08 2016-07-18 엘지전자 주식회사 이동단말기 및 그 제어방법
KR102274743B1 (ko) * 2015-01-30 2021-07-08 삼성전자주식회사 전자 장치 및 전자 장치의 화면 영역 처리 방법
US9696795B2 (en) * 2015-02-13 2017-07-04 Leap Motion, Inc. Systems and methods of creating a realistic grab experience in virtual reality/augmented reality environments
US9851091B2 (en) * 2015-02-18 2017-12-26 Lg Electronics Inc. Head mounted display
KR102439993B1 (ko) * 2015-02-27 2022-09-06 삼성전자주식회사 방열 장치를 구비한 전자 장치 및 이의 제어 방법
KR102321364B1 (ko) 2015-03-05 2021-11-03 삼성전자주식회사 3차원 배경 콘텐트를 합성하는 방법 및 디바이스
KR20160133230A (ko) * 2015-05-12 2016-11-22 엘지전자 주식회사 이동 단말기
KR102349716B1 (ko) * 2015-06-11 2022-01-11 삼성전자주식회사 영상 공유 방법 및 이를 수행하는 전자 장치
JP6083884B2 (ja) * 2015-06-12 2017-02-22 任天堂株式会社 支持装置、充電装置、および、操作システム
US20160378204A1 (en) * 2015-06-24 2016-12-29 Google Inc. System for tracking a handheld device in an augmented and/or virtual reality environment
US10083544B2 (en) * 2015-07-07 2018-09-25 Google Llc System for tracking a handheld device in virtual reality
KR102524322B1 (ko) * 2015-09-25 2023-04-24 삼성전자주식회사 밴드 연결 장치 및 이를 구비한 헤드 마운트 디스플레이 장치
KR102574490B1 (ko) * 2015-10-12 2023-09-04 삼성전자주식회사 머리 장착형 전자 장치
KR102557976B1 (ko) * 2016-01-22 2023-07-21 삼성전자주식회사 전자 장치, 전자 장치의 전원 제어 방법
US10067636B2 (en) * 2016-02-09 2018-09-04 Unity IPR ApS Systems and methods for a virtual reality editor
US10353491B2 (en) * 2016-02-17 2019-07-16 Outlyer, LLC System and method for motion processing in mobile devices
US10334076B2 (en) * 2016-02-22 2019-06-25 Google Llc Device pairing in augmented/virtual reality environment
US10455214B2 (en) * 2016-03-03 2019-10-22 Disney Enterprises, Inc. Converting a monocular camera into a binocular stereo camera
US9823477B1 (en) * 2016-05-02 2017-11-21 Futurewei Technologies, Inc. Head mounted display content capture and sharing
US10275023B2 (en) * 2016-05-05 2019-04-30 Google Llc Combining gaze input and touch surface input for user interfaces in augmented and/or virtual reality
US10019131B2 (en) * 2016-05-10 2018-07-10 Google Llc Two-handed object manipulations in virtual reality
KR20170129509A (ko) * 2016-05-17 2017-11-27 엘지전자 주식회사 헤드 마운티드 디스플레이 장치 및 그것의 제어방법
WO2018026893A1 (en) * 2016-08-03 2018-02-08 Google Llc Methods and systems for determining positional data for three-dimensional interactions inside virtual reality environments
CN106980362A (zh) * 2016-10-09 2017-07-25 阿里巴巴集团控股有限公司 基于虚拟现实场景的输入方法及装置
TWI622802B (zh) * 2017-01-12 2018-05-01 宏碁股份有限公司 頭戴式顯示器

Also Published As

Publication number Publication date
EP3580638B1 (en) 2023-10-25
US20180308288A1 (en) 2018-10-25
EP3580638A4 (en) 2020-02-19
US11494986B2 (en) 2022-11-08
WO2018194306A1 (en) 2018-10-25
EP3580638A1 (en) 2019-12-18
KR20190133055A (ko) 2019-11-29

Similar Documents

Publication Publication Date Title
KR102628044B1 (ko) 삼차원 가상 현실 환경에서의 이차원 애플리케이션 사용을 위한 시스템 및 방법
US11630553B2 (en) Electronic device and method for displaying history of executed application thereof
US9952711B2 (en) Electronic device and method of processing screen area of electronic device
CN107257954B (zh) 用于提供屏幕镜像服务的设备和方法
US20190065031A1 (en) Electronic device and method for operating applications
US10929005B2 (en) Electronic device, wearable device, and method of controlling displayed object in electronic device
CN105900051B (zh) 电子装置以及在虚拟现实模式下的事件显示方法
KR102360453B1 (ko) 카메라 설정 방법 및 장치
KR102244222B1 (ko) 가상 현실 서비스를 제공하기 위한 방법 및 이를 위한 장치들
US20160142703A1 (en) Display method and electronic device
US20170011557A1 (en) Method for providing augmented reality and virtual reality and electronic device using the same
US20170150139A1 (en) Electronic device and method for displaying content according to display mode
KR102528389B1 (ko) 전자 장치 및 전자 장치에서의 노티피케이션 처리 방법
US10916049B2 (en) Device and method for rendering image
EP3141982B1 (en) Electronic device for sensing pressure of input and method for operating the electronic device
KR20160054840A (ko) 정보를 공유하기 위한 가상 환경
KR20160061105A (ko) 전력 소모를 줄이기 위한 전력 제어 방법 및 장치
KR20160063812A (ko) 화면 구성 방법, 전자 장치 및 저장 매체
KR102641881B1 (ko) 전방위 영상을 획득하는 방법 및 장치
CN109804618B (zh) 用于显示图像的电子设备和计算机可读记录介质
US10088687B2 (en) Method and apparatus for displaying content
KR102632270B1 (ko) 전자 장치 및 파노라마 영상 표시와 생성 방법
CN109845251B (zh) 用于显示图像的电子设备和方法
KR102655187B1 (ko) 전자 장치 및 그의 동작 방법
KR20200106483A (ko) 화면 구성 방법, 전자 장치 및 저장 매체

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
GRNT Written decision to grant