KR20210125403A - 손실 없는 데이터 감소를 통해 통신 부하를 감소하기 위한 방법, 장치 및 저장 매체 - Google Patents

손실 없는 데이터 감소를 통해 통신 부하를 감소하기 위한 방법, 장치 및 저장 매체 Download PDF

Info

Publication number
KR20210125403A
KR20210125403A KR1020200139420A KR20200139420A KR20210125403A KR 20210125403 A KR20210125403 A KR 20210125403A KR 1020200139420 A KR1020200139420 A KR 1020200139420A KR 20200139420 A KR20200139420 A KR 20200139420A KR 20210125403 A KR20210125403 A KR 20210125403A
Authority
KR
South Korea
Prior art keywords
frame
hmd
electronic device
differential
head pose
Prior art date
Application number
KR1020200139420A
Other languages
English (en)
Inventor
크리스토퍼 에이. 페리
인젠 시옹
루 루오
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2020/015748 priority Critical patent/WO2021206251A1/en
Publication of KR20210125403A publication Critical patent/KR20210125403A/ko

Links

Images

Classifications

    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/161Encoding, multiplexing or demultiplexing different image signal components
    • 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/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • 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
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • G02B27/0172Head mounted characterised by optical features
    • 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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/003Reconstruction from projections, e.g. tomography
    • G06T11/006Inverse problem, transformation from projection-space into object-space, e.g. transform methods, back-projection, algebraic methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/60Editing figures and text; Combining figures or text
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/194Transmission of image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/332Displays for viewing with the aid of special glasses or head-mounted displays [HMD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/366Image reproducers using viewer tracking
    • 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/0138Head-up displays characterised by optical features comprising image capture systems, e.g. camera
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/0101Head-up displays characterised by optical features
    • G02B2027/014Head-up displays characterised by optical features comprising information/image processing systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/24Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Analysis (AREA)
  • Algebra (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Architecture (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

방법은 헤드 마운티드 디스플레이(head mounted display: HMD)에 연결되어 있는 전자 디바이스의 메모리로부터, 제1 기준 프레임을 획득하는 과정을 포함하고, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함한다. 상기 방법은 상기 전자 디바이스에서, 소스 이미지(source image)를 새로운 프레임으로 렌더링하는(rendering) 과정, 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 HMD에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고, 및 상기 전자 디바이스가, 차등 프레임(differential frame)을 생성하는 과정을 포함하며, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 한다. 또한, 상기 방법은 상기 차등 프레임을 상기 HMD로 송신하는 과정, 및 상기 새로운 프레임을 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장하는 과정을 포함한다.

Description

손실 없는 데이터 감소를 통해 통신 부하를 감소하기 위한 방법, 장치 및 저장 매체{METHOD FOR REDUCING COMMUNICATION LOAD THROUGH LOSSLESS DATA REDUCTION, APPARATUS AND STORAGE MEDIUM}
본 개시는 손실 없는 데이터 감소를 통한 감소된 통신 부하를 위한 시스템/장치/저장매체 및 방법에 관한 것이다.
전자 디바이스(일 예로, 스마트 폰 또는 태블릿)가 헤드 마운티드 디스플레이(head mounted display: HMD)에서 포즈-조정된 콘텐트(pose-adjusted content)(일 예로, 확장 현실(extended reality: XR) 디스플레이에서 디지털 오브젝트(object)들과 같은)로서 보여질 이미지 콘텐트(content)를 데이터 링크를 통해 제공하는 시스템들을 포함하며, 그렇다고 이에 제한되지는 않는, 특정 비디오 렌더링(rendering) 및 디스플레이 시스템들에서, 상기 전자 디바이스를 연결하는 데이터 링크를 통해 이미지 콘텐트를 송신하는 것과 연관되는 시간은 상기 시스템에 대한 성능 병목 현상(performance bottleneck)을 야기한다. 상기 시스템의 성능의 하나 혹은 그 이상의 차원들에 부정적으로 영향을 주지 않고(일 예로, 배터리 전력을 보다 빨리 소모하거나, 혹은 상기 HMD에서 제공되는 디스플레이의 해상도를 감소시킴으로써) 상기 HMD로 이미지 데이터를 송신하기 위한 시간을 감소시키는 것은 해당 기술 분야에서의 개선을 위한 기술적 도전들과 기회들의 소스로 남아 있다.
본 개시는 손실 없는 데이터 감소를 통한 감소된 통신 부하를 위한 시스템들 및 방법들을 제공한다.
제1 실시 예에서, 데이터 감소 방법은 헤드 마운티드 디스플레이(head mounted display: HMD)에 연결되어 있는 전자 디바이스의 메모리로부터, 제1 기준 프레임을 획득하는 과정, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함하고, 및 상기 전자 디바이스에서, 소스 이미지(source image)를 새로운 프레임으로 렌더링하는(rendering) 과정을 포함하고, 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 HMD에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함한다. 상기 방법은 상기 전자 디바이스가, 차등 프레임(differential frame)을 생성하는 과정, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하며, 상기 차등 프레임을 상기 HMD로 송신하는 과정, 및 상기 새로운 프레임을 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장하는 과정을 더 포함한다.
제2 실시 예에서, 데이터 감소 방법은 헤드 마운티드 디스플레이(head mounted display: HMD)에서, 전자 디바이스로부터 차등 프레임(differential frame)을 수신하는 과정, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함하고, 및 상기 HMD의 메모리로부터 제1 기준 프레임을 획득하는 과정을 포함한다. 상기 방법은 또한 상기 HMD의 모션 센서(motion sensor)로부터 헤드 포즈 데이터(head pose data)를 획득하는 과정, 및 상기 HMD에서 상기 제1 기준 프레임과 상기 차등 프레임을 결합하여 상기 새로운 프레임을 생성하는 과정을 포함한다. 추가적으로, 상기 방법은 상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하는 과정, 및 상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력하는 과정을 포함한다.
제3 실시 예에서, 전자 디바이스는 프로세서 및 인스트럭션(instruction)들을 포함하는 메모리를 포함하며, 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때 상기 전자 디바이스로 하여금, 상기 전자 디바이스의 메모리로부터 제1 기준 프레임을 획득하도록 하고, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함한다. 상기 프로세서에 의해 실행될 때, 상기 인스트럭션들은 상기 전자 디바이스가: 상기 전자 디바이스에서, 소스 이미지(source image)를 새로운 프레임으로 렌더링하고(rendering), 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 전자 디바이스에 통신적으로 연결되어 있는 헤드 마운티드 디스플레이(head mounted display: HMD)에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고, 차등 프레임(differential frame)을 생성하고, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차연산(difference operation)을 기반으로 하며, 상기 차등 프레임을 상기 HMD로 송신하고, 및 상기 새로운 프레임을 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장하도록 한다.
제4 실시 예에서, 헤드 마운티드 디스플레이(head mounted display: HMD)는 모션 센서(motion sensor), 프로세서, 및 메모리를 포함한다. 상기 인스트럭션들은 상기 프로세서에 의해 실행될 때 상기 HMD가: 전자 디바이스로부터 차등 프레임(differential frame)을 수신하고, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함하고, 상기 메모리로부터 제1 기준 프레임을 획득하고, 상기 모션 센서로부터 헤드 포즈 데이터(head pose data)를 획득하고, 상기 HMD에서 상기 제1 기준 프레임과 상기 차등 프레임을 결합함으로써 상기 새로운 프레임을 생성하고, 상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하고, 및 상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력한다.
제5 실시 예에서, 비-일시적 컴퓨터 판독 가능 저장 매체는 인스트럭션들을 포함하며, 상기 인스트럭션들은 프로세서에 의해 실행될 때 전자 디바이스가: 상기 전자 디바이스의 메모리로부터 제1 기준 프레임을 획득하도록 하고, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함한다. 상기 프로세서에 의해 실행될 때, 상기 인스트럭션들은 추가적으로 상기 전자 디바이스가: 상기 전자 디바이스에서, 소스 이미지(source image)를 새로운 프레임으로 렌더링하고(rendering), 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 전자 디바이스에 통신적으로 연결되어 있는 헤드 마운티드 디스플레이(head mounted display: HMD)에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고, 차등 프레임(differential frame)을 생성하고, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하며, 상기 차등 프레임을 상기 HMD로 송신하고, 및 상기 새로운 프레임을 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장하도록 한다.
제6 실시 예에서, 비-일시적 컴퓨터 판독 가능 저장 매체는 인스트럭션들을 포함하고, 상기 인스트럭션들은 프로세서에 의해 실행될 때 헤드 마운티드 디스플레이(head mounted display: HMD)가 전자 디바이스로부터 차등 프레임(differential frame)을 수신하도록 하고, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함한다. 상기 프로세서에 의해 실행될 때, 추가적으로 상기 인스트럭션들은 상기 메모리로부터 제1 기준 프레임을 획득하고, 상기 HMD의 모션 센서로부터 헤드 포즈 데이터(head pose data)를 획득하고, 상기 HMD에서 상기 제1 기준 프레임과 상기 차등 프레임을 결합함으로써 상기 새로운 프레임을 생성하고, 상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하고, 및 상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력하도록 한다.
다른 기술적 특징들은 하기의 도면들, 설명들 및 청구항들로부터 당업자에게 쉽게 명백할 수 있을 것이다.
하기에서 상세한 설명을 설명하기에 앞서, 이 문서 전체에 걸쳐 사용된 소정 단어들과 어구들의 정의를 설명하는 것이 이로울 것이다. "연결(결합)한다"는 말과 그 파생어들은 둘 이상의 구성요소들이 서로 물리적 접촉 상태에 있는지 그렇지 않든지, 그들 간의 어떤 직접적이거나 간접적인 통신을 일컫는다. "전송한다", "수신한다", 그리고 "통신한다" 라는 용어들뿐 아니라 그 파생어들은 직간접적 통신 모두를 포함한다. "포함하다" 및 "구비한다"는 용어들 및 그 파생어들은 제한 없는 포함을 의미한다. "또는"이라는 말은 '및/또는'을 의미하는 포괄적인 말이다. "~와 관련된다" 및 그 파생어들은 포함한다, ~ 안에 포함된다, ~와 상호 연결한다, 내포한다, ~안에 내포된다, ~에/와 연결한다, ~에/와 결합한다, ~와 통신할 수 있다, ~와 협력한다, 개재한다, 나란히 놓는다, ~에 근사/근접하다, ~에 속박된다, 가진다, ~의 특성을 가진다, ~와 관계를 가진다는 등의 의미이다. "제어기/제어부"라는 용어는 적어도 한 동작을 제어하는 어떤 장치, 시스템, 또는 그 일부를 의미한다. 그러한 제어기는 하드웨어나 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 어떤 특정 제어기와 관련된 기능은 국지적이든 원격으로든 중앙 집중되거나 분산될 수 있다. "적어도 하나의~"라는 말은 항목들의 리스트와 함께 사용될 때, 나열된 항목들 중 하나 이상의 다양한 조합이 사용될 수 있거나, 그 리스트 내 오직 한 항목만이 필요로 될 수 있다는 것을 의미한다. 예를 들어, "A, B, 및/또는 C 중 적어도 하나"는 다음과 같은 조합들 중 어느 하나를 포함한다: A, B, C, A 및 B, A 및 C, B 및 C, 및/또는 A와 B와 C.
또한, 이하에 기술되는 다양한 기능들은 하나 이상의 컴퓨터 프로그램들에 의해 구현되거나 지원될 수 있으며, 그 프로그램들 각각은 컴퓨터 판독가능 프로그램 코드로 구성되고 컴퓨터 판독가능 저장 매체에서 구현/실시된다. "애플리케이션" 및 "프로그램"이라는 용어는 하나 이상의 컴퓨터 프로그램, 소프트웨어 요소, 명령어 집합, 절차, 함수, 오브젝트, 클래스, 인스턴스, 관련 데이터, 또는 적합한 컴퓨터 판독가능 프로그램 코드의 구현에 적합한 그들의 일부를 일컫는다. "컴퓨터 판독가능 프로그램 코드"라는 말은 소스 코드, 오브젝트 코드, 및 실행 코드를 포함하는 모든 타입의 컴퓨터 코드를 포함한다. "컴퓨터 판독가능 저장 매체"라는 말은 리드 온니 메모리(read only memory: ROM), 랜덤 억세스 메모리(random access memory: RAM), 하드 디스크 드라이브, 컴팩트 디스크(compact disc: CD), 디지털 비디오 디스크(digital video disc: DVD), 또는 어떤 다른 유형의 메모리와 같이, 컴퓨터에 의해 액세스될 수 있는 모든 유형의 저장 매체를 포함한다. "비일시적" 컴퓨터 판독가능 저장 매체는 일시적인 전기 또는 기타 신호들을 전송하는 유선, 무선, 광학, 또는 기타 통신 링크들을 배제한다. 비일시적 컴퓨터 판독가능 저장 매체는 데이터가 영구적으로 저장될 수 있는 매체, 및 재기록 가능 광학 디스크나 삭제가능 메모리 장치와 같이 데이터가 저장되고 나중에 덮어씌어질 수 있는 매체를 포함한다.
다른 소정 단어들 및 어구들에 대한 정의가 본 문서 전체에 걸쳐 제공된다. 당업자는 대부분의 경우들은 아니어도 많은 경우, 그러한 정의들이 그렇게 정의된 단어들 및 어구들의 이전뿐 아니라 이후 사용에도 적용된다는 것을 알 수 있을 것이다.
다양한 실시예에 따르면, 손실 없는 데이터 감소를 통한 감소된 통신 부하를 위한 시스템들 및 방법들이 제공될 수 있다.
본 개시 및 그 이점들에 대한 보다 완전한 이해를 위해서, 첨부 도면들을 참조하여 다음과 같은 설명이 이루어질 것이다:
도 1은 본 개시의 특정 실시 예들에 따른 전자 디바이스의 비-제한적인 예를 도시하고 있다;
도 2는 본 개시의 특정 실시 예들에 따른 헤드 마운티드 디스플레이(head mounted display: HMD)로서 기능할 수 있는 장치의 일 예를 도시하고 있다;
도 3은 본 개시의 특정 실시 예들에 따른 두 개 혹은 그 이상의 디바이스들을 사용하여 확장 현실(extended reality: XR) 디스플레이를 제공하기 위한 네트워크 콘텍스트(network context)의 일 예를 도시하고 있다;
도 4는 본 개시의 특정 실시 예들에 따라 HMD에서 제공되는 XR 시청 경험(XR viewing experience)의 측면들을 도시하고 있다;
도 5는 본 개시의 특정 실시 예들에 따른 XR 디스플레이를 제공하는 측면들을 도시하고 있다;
도 6은 본 개시의 특정 실시 예들에 따라 전자 디바이스로부터 데이터 링크를 통해 전달되는(passed) 픽셀들을 기반으로 HMD에서 XR 디스플레이를 제공하는 측면들을 더 도시하고 있는 예제이다;
도 7a 및 도 7b는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 데이터 통신 부하를 감소시키는 아키텍쳐들의 예제들을 블록 다이아그램 형태로 도시하고 있다;
도 8은 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 데이터 통신 부하를 감소시키는 프로세스의 일 예의 측면들을 도시하고 있다;
도 9는 본 개시의 특정 실시 예들에 의해 실현되는 기술적 이점들의 측면들을 도시하고 있다;
도 10a 내지 도 10d는 본 개시의 특정 실시 예들에 따른 전자 디바이스에서 수행되는 추가적인 동작들을 도시하고 있다; 및
도 11a 내지 11c는 본 개시의 특정 실시 예들에 따른 HMD에서 수행되는 동작들을 도시하고 있다.
하기에서 설명되는 도 1 내지 도 11c와 이 문서에서 본 개시의 기본 원칙들을 설명하기 위해 사용되는 다양한 실시 예들은 오직 설명만을 위한 것이며, 본 개시의 범위를 제한하는 방식으로 이해되어서는 안 된다. 해당 기술 분야의 당업자들은 본 개시의 기본 원칙들이 적합하게 배열된 프로세싱 플랫폼(platform)에서 구현될 수 있다는 것을 이해할 것이다.
도 1은 본 개시의 일부 실시 예들에 따른 확장 현실(extended reality: XR) 시스템에서 디바이스(100)의 비-제한적인 예를 도시하고 있다. 본 개시의 다양한 실시 예들에 따르면, 상기 디바이스(100)는 확장 현실(extended reality: XR) 경험을 제공하기 위해 스마트 폰, 태블릿, 또는 랩탑 컴퓨터 중 하나 혹은 그 이상으로 구현될 수 있다. 도 1에 도시되어 있는 상기 디바이스(100)의 실시 예는 단지 예시를 위한 것이며, 다른 구성들이 가능하다. 하지만, 적합한 디바이스들은 매우 다양한 구성들로 제공되며, 도 1은 본 개시의 범위를 디바이스의 임의의 특정한 구현으로 제한하지 않는다. 예를 들어, 본 개시에 따른 특정 실시 예들이 모바일 XR 플랫폼(mobile XR platform)들에서 구현되는 것으로 설명되지만, 본 개시에 따른 실시 예들은 그렇게 제한되지 않으며, 가상 현실(virtual reality: VR) 플랫폼들에서 구현되는 실시 예들은 본 개시의 고려되는 범위 내에 존재한다.
도 1의 비-제한적인 예제에 도시되어 있는 바와 같이, 상기 디바이스(100)는 일 예로, 무선 주파수(radio frequency: RF) 송수신기, 블루투스 송수신기, 혹은 와이-파이(Wi-Fi) 송수신기 등을 포함할 수 있는 통신 유닛(110)과, 송신(transmit: TX) 프로세싱 회로(115), 마이크로폰(microphone)(120) 및 수신(receive: RX) 프로세싱 회로(125)를 포함한다. 상기 디바이스(100)는 또한 스피커(130), 메인 프로세서(140), 입/출력(input/output: I/O) 인터페이스(interface: IF)(145), 입/출력 디바이스(들)(150) 및 메모리(160)를 포함한다. 상기 메모리(160)는 운영 시스템(operating system: OS) 프로그램(161) 및 하나 혹은 그 이상의 어플리케이션(application)들(162)을 포함한다.
어플리케이션들(162)은 게임들, 소셜 미디어 어플리케이션들, 지오태깅(geotagging) 사진들 및 디지털 콘텐트의 다른 아이템들을 위한 어플리케이션들, 확장 현실 (extended reality: XR) 어플리케이션들, 증강 현실(augmented reality: AR) 어플리케이션들, 운영 시스템들, 디바이스 보안(일 예로, 도난 방지 및 디바이스 추적) 어플리케이션들 혹은 디바이스(100)의 자원들에 억세스하는 임의의 다른 어플리케이션들을 포함하고, 상기 디바이스(100)의 자원들은 스피커(130), 마이크로폰(120), 입/출력 디바이스들(150) 및 추가적인 자원들(180)을 포함하며, 그렇다고 이에 제한되지는 않는다. 일부 실시 예들에 따르면, 어플리케이션들(162)은 디바이스(100)의 시각 센서들의 시야에서 물리적 오브젝트들의 시맨틱 맵(semantic map)들을 소비하거나, 그렇지 않으면 활용할 수 있는 어플리케이션들을 포함한다.
상기 통신 유닛(110)은 입력 RF 신호, 일 예로, 블루투스 혹은 와이-파이 신호와 같은 근거리 통신 신호를 수신할 수 있다. 특정 실시 예들에 따르면, 상기 통신 유닛(110)은 헤드 마운티드 디스플레이(head mounted display: HMD)와 데이터를 송신 및 수신하기 위한 하나 혹은 그 이상의 링크들을 생성하도록 구성된다. 상기 통신 유닛(110)은 상기 입력 RF 신호를 다운 컨버팅하여 중간 주파수(intermediate frequency: IF) 혹은 기저대역 신호를 생성할 수 있다. 상기 IF 혹은 기저 대역 신호는 상기 RX 프로세싱 회로(125)로 송신되고, 상기 RX 프로세싱 회로(125)는 상기 기저대역 혹은 IF 신호를 필터링, 디코딩, 혹은 디지털화함으로써 프로세싱된 기저대역 신호를 생성한다. 상기 RX 프로세싱 회로(125)는 상기 프로세싱된 기저대역 신호를 (음성 데이터에 대해서와 같이) 상기 스피커(130)로, 혹은 (웹 브라우징 데이터(web browsing data), 온라인 게임플레이 데이터, 통지 데이터, 혹은 다른 메시지 데이터에 대해서와 같이) 추가적인 프로세싱을 위해 상기 메인 프로세서(140)로 송신한다. 추가적으로, 상기 통신 유닛(110)은 네트워크 카드와 같은 네트워크 인터페이스, 혹은 소프트웨어를 통해 구현되는 네트워크 인터페이스를 포함할 수 있다.
상기 TX 프로세싱 회로(115)는 상기 마이크로폰(120)으로부터의 아날로그 혹은 디지털 음성 데이터 혹은 상기 메인 프로세서(140)로부터의 (웹 데이터, 이메일, 혹은 양방향 비디오 게임 데이터(interactive video game data)와 같은) 다른 출력 기저 대역 데이터를 수신한다. 상기 TX 프로세싱 회로(115)는 상기 출력 기저 대역 데이터를 인코딩, 멀티플렉싱, 혹은 디지털화함으로써 프로세싱된 기저대역 혹은 IF 신호를 생성한다. 상기 통신 유닛(110)은 상기 TX 프로세싱 회로(115)로부터 상기 출력 프로세싱된 기저대역 혹은 IF 신호를 수신하고, 상기 기저대역 혹은 IF 신호를 송신을 위해 RF 신호로 업 컨버팅한다.
상기 메인 프로세서(140)는 하나 혹은 그 이상의 프로세서들 혹은 다른 프로세싱 디바이스들을 포함할 수 있으며, 상기 디바이스(100)의 전반적인 동작을 제어하기 위해 상기 메모리(160)에 저장되어 있는 상기 OS 프로그램(161)을 실행할 수 있다. 일 예로, 상기 메인 프로세서(140)는 공지의 원칙들에 따라 상기 통신 유닛(110), 상기 RX 프로세싱 회로(125) 및 상기 TX 프로세싱 회로(115)에 의한 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 송신을 제어할 수 있다. 일부 실시 예들에서, 상기 메인 프로세서(140)는 적어도 하나의 마이크로프로세서 혹은 마이크로제어기를 포함한다. 특정 실시 예들에 따르면, 상기 메인 프로세서(140)는 배터리(199)의 소모를 최소화시키기 위한 혹은 상기 디바이스(100)에서 발생되는 열을 최소화시키기 위한 제어 로직을 포함하는 프로세서와 같은 저전력 프로세서이다.
상기 메인 프로세서(140)는 상기 메모리(160)에 내재되어 있는 다른 프로세스들 및 프로그램들을 실행할 수 있다. 상기 메인 프로세서(140)는 실행중인 프로세스에 의해 요구될 경우 데이터를 상기 메모리(160) 내로 혹은 상기 메모리(160)로부터 이동시킬 수 있다. 일부 실시 예들에서, 상기 메인 프로세서(140)는 상기 OS 프로그램(161)을 기반으로 혹은 사용자 혹은 어플리케이션들(162)로부터의 입력들에 대한 응답으로 상기 어플리케이션들(162)을 실행하도록 구성된다. 어플리케이션들(162)은 상기 디바이스(100)의 플랫폼에 대해 특별하게 개발된 어플리케이션들, 혹은 이전 플랫폼들에 대해 개발된 레가시 어플리케이션들을 포함할 수 있다. 또한, 상기 메인 프로세서(140)는 상기 I/O 인터페이스(145)에 연결되고, 상기 I/O 인터페이스(145)는 상기 디바이스(100)에게 랩탑 컴퓨터들 및 핸드헬드(handheld) 컴퓨터들과 같은 다른 디바이스들에 연결하는 능력을 제공한다. 상기 I/O 인터페이스(145)는 이들 액세서리들과 상기 메인 프로세서(140)간의 통신 경로이다. 특정 실시 예들에 따르면, 상기 메인 프로세서(140)는 더 적은 비트들을 필요로 하도록 데이터를 인코딩하기 위한(즉, 압축하기 위한) 하나 혹은 그 이상의 알고리즘들을 실행할 수 있다. 유사하게, 상기 메인 프로세서(140)는 압축된 데이터를 디코딩하기 위한 하나 혹은 그 이상의 알고리즘들을 실행할 수 있다.
상기 메인 프로세서(140)는 또한 상기 입/출력 디바이스(들)(150)에 연결될 수 있다. 상기 디바이스(100)의 운영자는 상기 입/출력 디바이스(들)(150)를 사용하여 상기 디바이스(100)로 데이터를 입력할 수 있다. 상기 입/출력 디바이스(들)(150)는 키보드들, 터치 스크린들, 마우스(들), 트랙 볼들 혹은 사용자가 상기 디바이스(100)와 상호 작용하는 것을 허락하는 사용자 인터페이스로서 동작할 수 있는 다른 디바이스들을 포함할 수 있다. 일부 실시 예들에서, 상기 입/출력 디바이스(들)(150)는 터치 패널, 증강 혹은 가상 현실 헤드셋, (디지털) 펜 센서, 키, 혹은 초음파 입력 디바이스를 포함할 수 있다.
상기 입/출력 디바이스(들)(150)는 액정 크리스탈 디스플레이, 발광 다이오드(light-emitting diode: LED) 디스플레이, 유기 LED (organic LED: OLED), 액티브 매트릭스 OLED (active matrix OLED: AMOLED), 혹은 그래픽들을 렌더링할 수 있는 다른 스크린들이 될 수 있는 하나 혹은 그 이상의 스크린들을 포함할 수 있다.
상기 메모리(160)는 상기 메인 프로세서 (140)에 연결된다. 특정 실시 예들에 따르면, 상기 메모리(160)의 일부는 랜덤 액세스 메모리(random access memory: RAM)를 포함하고, 상기 메모리(160)의 다른 일부는 플래시 메모리 또는 다른 리드-온니 메모리(read-only memory: ROM)를 포함한다. 도 1이 디바이스(100)의 일 예를 예시하고 있지만, 다양한 변경들이 도 1에 대해서 이루어질 수 있다.
예를 들어, 특정 실시 예들에 따르면, 디바이스(100)는 디바이스 (100) 또는 HMD의 하나 혹은 그 이상의 디스플레이들 상의 디스플레이를 위해 소스 데이터를 픽셀(pixel)들로서 렌더링하는 별도의 그래픽 프로세싱 유닛(graphics processing unit: GPU)(170)을 더 포함할 수 있다.
특정 실시 예들에 따르면, 디바이스(100)는 허용되는 경우, 어플리케이션들(162)에 의해 억세스될 수 있는 다양한 추가적인 자원들(180)을 포함한다. 특정 실시 예들에 따르면, 추가적인 자원들(180)은 가속도계 또는 하나 혹은 그 이상의 자유도(degree of freedom)들을 따라 상기 디바이스(100)의 움직임들을 검출할 수 있는 관성 측정 유닛(inertial measurement unit: IMU)(182)을 포함한다. 추가적인 자원들(180)은 일부 실시 예들에서, 디바이스(100)의 하나 혹은 그 이상의 다이나믹 시각 센서(dynamic vision sensor)들(184), 및 하나 혹은 그 이상의 카메라들(186)(예를 들어, 상보성 금속 산화물 반도체(complementary metal oxide semiconductor: CMOS) 센서 타입 카메라들)을 포함한다. 다양한 실시 예들에 따르면, DVS 센서(들)(184)는 관심 있는 피사계 심도/깊이를 추정하기 위해 입체적으로 적절한 거리로 배치되어 있는 다이나믹 시각 센서들의 페어(pair)를 포함한다. 일부 실시 예들에 따르면, DVS 센서(들)(184)는 오버랩(overlap)되거나, 혹은 부분적으로 오버랩되는 시야들을 가지는 다수의 DVS 센서들을 포함한다.
다양한 실시 예들에 따르면, 상기 디바이스(100)의 상기한 바와 같은 컴포넌트들은 배터리(199)(예를 들어, 재충전 가능한 리튬 이온 배터리)에 의해 전력을 공급받으며, 상기 배터리(199)는 일부 실시 예들에서는 그 사이즈, 충전 용량 및 부하 용량이 폼 팩터(form factor) 및 상기 디바이스의 사용자 요구들에 의해 제약된다. 비 제한적인 예로서, 디바이스(100)가 스마트 폰인 실시 예들에서, 상기 배터리(199)는 상기 스마트 폰의 하우징(housing) 내에 맞도록 치수가 정해지고, 발열(heat buildup)을 초래하는 전류 부하들을 지원하지 않도록 구성된다 (예를 들어, 지속적인 기간들 동안 풀(full) 전력에서 그래픽 프로세싱 유닛을 실행시킴으로써). 추가적인 예로서, 디바이스(100)가 헤드 마운티드 디바이스인 실시 예들에서, 상기 배터리(199)의 사이즈(또한, 함축적으로, 충전 용량)는 사용자들의 목에 대한 부담을 감소시키고 쉬운 머리 움직임을 가능하게 하기 의해 디바이스(100)를 가능한 한 가볍게 유지해야 하는 필요성에 의해 제약될 수 있다.
도 1은 본 개시의 일부 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하들을 감소시키기 위한 디바이스(100)의 일 예를 도시하고 있을지라도, 도 1에 다양한 변경들이 이루어질 수 있다. 예를 들어, 상기 디바이스(100)는 임의의 개수의 컴포넌트들의 임의의 적합한 배열을 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템들을 포함하는 디바이스들은 다양한 구성들로 제공되며, 도 1은 본 개시 범위를 특정 구성으로 제한하지 않는다. 도 1이 본 문서에 개시되어 있는 다양한 특징들이 사용될 수 있는 하나의 동작 환경을 도시하고 있을 지라도, 이런 특징들은 임의의 다른 적합한 시스템에서 사용될 수 있다.
도 2는 본 개시의 하나 혹은 그 이상의 실시 예들에 따른 헤드 마운티드 디스플레이(head mounted display: HMD)로서 기능할 수 있는 장치(200)의 일 예를 도시하고 있다. 도 2에 도시되어 있는 상기 장치(200)의 실시 예는 단지 예시를 위한 것이며, 다른 실시 예들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다. 일부 실시 예들에 따르면, 장치(200)는 전자 디바이스(예를 들어, 픽셀들을 렌더링하고 상기 픽셀들을 장치(200)로 송신할 수 있는 스마트 폰, 태블릿 또는 다른 컴퓨팅 플랫폼)에 대한 액세서리 디바이스로서 동작할 수 있다.
도 2의 비-제한적인 예제를 참조하면, 상기 장치 (200)는 외부 지향 카메라(externally oriented camera)(205)를 포함한다. 이러한 비-제한적인 예제를 설명하기 위한 목적들을 위해서, 상기 화살표 (201)가 제공된다. 화살표(201)는 장치 (200)의 내부를 향한 디스플레이(internal-facing display)의 투영 방향으로부터 멀어지는 시야를 향해 외부로 가리킨다. 다양한 실시 예들에 따르면, 외부 지향 카메라(205)는 RGB 디지털 비디오 카메라 (예를 들어, CMOS 센서를 사용하는 카메라)이다. 일부 실시 예들에 따르면, 외부 지향 카메라 (205)는 인간 눈의 가시 범위 외부의 파장들 (예를 들어, 적외선)에서 광을 검출할 수 있는 카메라이다. 특정 실시 예들에서, 외부 지향 카메라(205)는 다이나믹 시각 센서(dynamic vision sensor: DVS)이며, 상기 DVS의 센서의 픽셀들에서 수신되는 광의 세기 변경들의 이벤트 스트림(event stream)을 제공한다. 이 비-제한적인 예제에서, 외부 지향 카메라 (205)는 XR 디스플레이에 대한 소스 데이터(예를 들어, 헤드 포즈 데이터(head pose data)로서, 또는 물리적 세계 내의 오브젝트(object)들을 인식하기 위해)를 제공하는 이미지 데이터를 이벤트 스트림(event stream) 또는 이산 이미지 프레임(discrete image frame)들로서 생성한다.
도 2의 비-제한적인 예제를 참조하면, 상기 장치 (200)는 디스플레이(207)를 포함한다. 다양한 실시 예들에 따르면, 디스플레이 (207)는 내부를 향하는 방향으로 (예를 들어, 화살표(301)와 반대인 컴포넌트를 가지는 방향으로) 외부를 향하는 시야에서 오브젝트들의 뷰(view)들과 함께 XR 콘텐트의 아이템들을 디스플레이한다. 일부 실시 예들에 따르면, 디스플레이(207)는 투명하고 (예를 들어, "스마트 안경" 또는 비행기의 조종석 유리 상의"헤드-업 디스플레이(heads-up display)들"에서 사용되는 디스플레이들과 유사한), 외부를 향하는 시야들에서의 오브젝트들의 뷰들은 디스플레이(207)를 통과하는 광으로부터 발생된다. 다양한 실시 예들에 다르면, 디스플레이 (207)는 불투명하고, 외부를 향하는 시야들에서의 오브젝트들의 뷰들은 외부 지향 카메라들 (예를 들어, 외부 지향 카메라 (205))로부터의 이미지 데이터로부터 발생된다.
다양한 실시 예들에 따르면, 장치 (200)는 제2 카메라 (209)를 포함한다. 일부 실시 예들에서, 상기 제2 카메라 (209)는 외부 지향 카메라 (205)와 동일한 타입의 외부 지향 카메라이므로, 심도/깊이 추정값(depth estimation)을 포함하는 이미지 데이터를 생성할 수 있는 입체 페어(stereoscopic pair)를 형성할 수 있다. 특정 실시 예들에서, 상기 제2 카메라 (209)는 외부 지향 카메라 (205)와 다른 센서 타입을 가지는 외부 지향 카메라이다. 예를 들어, 일부 실시 예들에서, 배터리 수명을 연장하고 프로세서 사용을 최소화하기 위해, 외부 지향 카메라 (205)는 DVS 센서이고, 상기 제2 카메라 (209)는 CMOS 타입 카메라이며, 상기 CMOS 타입 카메라는 DVS 센서보다는 낮은 효율을 가지지만 오브젝트 인식에 대해 가용한 추가적인 이미지 데이터 (일 예로, 그 밝기가 DVS 센서에 의해 검출될 수 있는 레벨에서 변화하지 않는 장면(scene)의 색상들 및 엘리먼트들에 관한 데이터)를 제공할 수 있다. 다양한 실시 예들에 따르면, 제2 카메라 (309)는 사용자의 눈의 모션을 추적하는, 함축적으로, 사용자의 시선(gaze)의 방향을 추적하는 내부를 향한 카메라이다. 시선 추적은 AR 콘텐트의 아이템들의 중심와 렌더링(foveal rendering)을 지원하는 데 사용될 수 있으며, 이는 AR 콘텐트의 아이템들을 더 낮은 해상도들로 시청자(viewer)의 시선에서 멀리 렌더링함으로써 배터리 및 프로세서 자원들을 절약할 수 있다.
특정 실시 예들에 따르면, 상기 장치 (200)는 프로세서 (211) 및 메모리 (213)를 포함한다. 특정 실시 예들에서, 상기 메모리 (213)는 프로세서 (211)에 의해 실행될 때 장치(200)가 XR 어플리케이션을 실행하도록 하는 프로그램 코드를 포함한다.
도 2의 비-제한적인 예제를 참조하면, 상기 장치 (200)는 포즈를 생성하고, 일부 실시 예들에서는 하나 혹은 그 이상의 자유도(degree of freedom)들을 따라 상기 장치 (200)의 모션과 연관되는 위치 데이터를 생성하는 관성 측정 유닛 (215)을 포함한다. 특정 실시 예들에서, IMU (215)로부터 출력되는 데이터는 포지셔닝(positioning)을 위해(예를 들어, 장치 (200)의 지리 공간적 위치를 확인하기 위해), 또는 상기 장치(200)의 포즈의 포즈 변경들을 제공하기 위해서뿐만 아니라, 현재의 포즈를 결정하기 위해 사용될 수 있다.
일부 실시 예들에서, 상기 장치 (200)는 입/출력 인터페이스(217)를 포함한다. 다양한 실시 예들에 따르면, 상기 I/O 인터페이스 (217)는 상기 장치 (200)가 컴패니언 디바이스(companion device)인 스마트 폰 또는 컴퓨터와 같은 전자 디바이스와 상기 장치(200)간의 통신적 연결성을 제공한다. 특정 실시 예들에 따르면, 상기 I/O 인터페이스 (217)는 네트워크를 통해 상기 장치(200)를 전자 디바이스에 연결한다. I/O 인터페이스는, 특정 실시 예들에서, 블루투스 송수신기와 같은 무선 통신 인터페이스, 또는 하나 혹은 그 이상의 장거리 무선 시스템(longer range wireless system)들을 통한 통신들을 지원하는 통신 하드웨어 (예를 들어, 도 1의 통신 유닛(110))이다.
도 3은 본 개시의 다양한 실시 예들에 따른 두 개 혹은 그 이상의 디바이스들을 사용하여 확장 현실(extended reality: XR) 디스플레이를 제공하기 위한 네트워크 콘텍스트(network context)(300)의 일 예를 도시하고 있다. 도 3에 도시되어 있는 상기 네트워크 콘텍스트(300)의 실시 예는 단지 예시만을 위한 것이며, 다른 예제들이 본 개시의 범위를 벗어나지 않고 사용될 수 있다. 본 개시에서 사용되는 바와 같이, 용어 "확장 현실"은 가상 현실 (virtual reality: VR), 증강 현실 (augmented reality: AR) 및 혼합 현실(mixed reality: MR) 디스플레이들의 기능들을 결합한 비디오 디스플레이를 포함한다. 특정 실시 예들에 따르면, XR 디스플레이는 사용자의 물리적 세계의 라이브 뷰(live view)(일 예로, 디바이스의 카메라 혹은 "스마트 안경"의 집합의 투명 투영 표면(transparent projection surface)을 통해 보여지는 바와 같은 세계)의 엘리먼트들을 상기 라이브 뷰를 통해 보여지는 바와 같은 물리적 세계에 존재하고, 또한 상호 작용하는 다이나믹(즉, 변경되는) 3차원(three-dimensional: 3-D) 오브젝트들로서 보이도록 제공되는 디지털 엘리먼트들을 결합할 수 있다.
많은 경우들에서, 상기 XR 디스플레이의 디지털 컴포넌트들을 렌더링하고 투영하는 것과 연관되는 계산 부하를 두 개 혹은 그 이상의 컴퓨팅 플랫폼(computing platform)들에 걸쳐 할당함으로써 전반적인 XR 경험이 개선될 수 있다. 별도의 디바이스 (예를 들어, 태블릿 또는 스마트 폰)가 디스플레이를 위한 픽셀들을 렌더링하는 계산 비용이 많이 드는 작업을 자주 수행함으로써, 상기 XR 디스플레이가 보여지는 장치(일 예로, 헤드 마운티드 디스플레이 혹은 스마트 안경)는 보다 가볍거나 (일 예로, 보다 작은 배터리를 구비함으로써) 혹은 보다 편안하게 (일 예로, 더 적은 열을 발생시키는 저-전력 프로세서를 사용함으로써) 만들어질 수 있다.
도 3의 비-제한적인 예제를 참조하면, 본 개시에 따른 특정 실시 예들에서, XR 디스플레이는 HMD (310) (예를 들어, 도 2의 장치(200)와 같은 디바이스)에서 제공되며, 이는 링크(315)를 통해 전자 디바이스(305)(예를 들어, 도 1의 디바이스(100)와 같은 디바이스)에 통신적으로 연결된다(즉, 데이터를 수신 및 송신할 수 있다). 특정 실시 예들에 따르면, 전자 디바이스(305)는 HMD(310)와 물리적으로 분리되어 있고, HMD (310)보다 계산을 많이 필요로 하는 그래픽 렌더링 태스크(task)들을 수행하는 더 많은 기회를 가진다 (예를 들어, 더 파워풀한 프로세서, 별도의 그래픽 프로세싱 카드 또는 칩 덕분에, 또는 프로세서에 의해 생성되는 열을 더 잘 핸들링할 수 있는 하우징(housing)을 갖는 것 덕분에).
링크 (315)는 프레임 데이터 (예를 들어, 렌더링된 픽셀들) 및 디지털화된 포즈 데이터가 상기 전자 디바이스(305)와 HMD (310) 사이에서 송신 및 수신될 수 있는 매체를 포함한다. 일부 실시 예들에 따르면, 상기 링크 (315)는 이더넷 케이블 혹은 광 섬유 케이블과 같은 물리적 링크이다. 특정 실시 예들에 따르면, 링크 (315)는 블루투스(BLUETOOTH) 또는 와이-파이(WI-FI)와 같은 무선 링크이다. 일부 실시 예들에서, 링크 (315)는 5G 프로토콜들과 같은 특정 송신 프로토콜들과 연관되고, 상기 전자 디바이스(305)와 HMD (310) 사이에서 데이터가 전달될 수 있는 레이트(rate)에 관해서 유한 용량 또는 대역폭을 갖는다.
도 4는 본 개시의 특정 실시 예들에 따른 HMD (예를 들어, 도 3의 HMD (310))에서 제공되는 XR 시청 경험의 측면들을 도시하고 있다. 도 4에 도시되어 있는 예제는 단지 예시만을 위한 것이며, 다른 예제들이 본 개시의 범위를 벗어남이 없이 사용될 수 있다.
도 4의 비-제한적인 예제를 참조하면, HMD(405) 상에서 XR 디스플레이를 시청하기 위한 동작 환경(400)의 물리적 컴포넌트들이 도 4의 상단부에 도시되어 있다. 이 예시적인 예제에 도시되어 있는 바와 같이, 상기 동작 환경 (400)은 적어도 3개의 고정된 평면 표면들을 가지는 방: 바닥(410), 제1 벽(415) 및 제2 벽(420)을 포함하고, 그들 각각은 디지털 오브젝트들이 XR 디스플레이에서 상호 작용하는 것으로 나타내질 수 있는 물리적 오브젝트이다. 일부 실시 예들에 따르면, HMD (405)에서 XR 디스플레이의 물리적 오브젝트들 및 디지털 오브젝트들은 화살표(425)로 도시되어 있는, 중력과 같은, 일반적인 물리학적 법칙들에 적용되는 것으로 보여진다.
특정 실시 예들에 따르면, 상기 HMD (405)는 선글라스와 같은 사용자 (401)의 머리에 착용되는 묶여 있지 않은(untethered) 헤드 마운티드 디스플레이 (예를 들어, 도 1의 디바이스 (100))를 포함한다. 일부 실시 예들에서, 상기 HMD (405)는 그를 통하여 상기 사용자 (401)가 동작 환경 (400)에서 오브젝트들을 볼 수 있고, 상기 HMD (405)가 그에 대해 디지털 오브젝트들을 사용자 (401)의 시야로 투영하여 확장 현실 디스플레이를 제공할 수 있는 투명 렌즈 (407)를 포함한다.
특정 실시 예들에 따르면, 상기 XR 디스플레이의 특징들은 시청자에게 디스플레이되는 디지털 콘텐트를 포함하며, 따라서 상기 디지털 콘텐트는 상기 물리적 세계의 라이브 뷰 내에서 물리적 오브젝트처럼 나타난다. 상기 디지털 오브젝트들은, 일부 실시 예들에서, 적어도 다음의 두 가지 측면들에서 다이나믹하다. 첫째, 상기 디지털 오브젝트들은 상기 XR 디스플레이를 제공하는 장치 (예를 들어, HMD (405))의 포즈와 독립적으로 외형(appearance)을 변경하고 상기 디스플레이 디바이스가 상기 디지털 오브젝트에서의 변경들에 상응하게 픽셀들을 수신할 필요가 있는 애니메이션 콘텐트(animated content)를 포함한다. 둘째, 상기 디지털 오브젝트들은 또한, 일부 실시 예들에서, 기본 디지털 오브젝트(underlying digital object)에서의 변경들에 상응하는 픽셀들이 수신되었는지 여부에 관계없이 시청중인 장치의 포즈에 따라 상기 디지털 오브젝트들의 외형이 변경된다는 점에서 다이나믹하다. 본 개시의 콘텍스트에서 사용되는 바와 같이, "포즈"라는 표현은 XR 디스플레이를 제공하는 디스플레이의 현재 시점(viewpoint)의 좌표 표현을 나타낸다. 일부 실시 예들에 따르면, "포즈"는 3개의 직교 가로 축들(예를 들어, 상기 디스플레이의 상하, 좌우, 전후의 움직임을 캡쳐하는(capturing) 축들) 및 3개의 직교 회전 축들(예를 들어, 요(yaw), 피치(pitch) 및 롤(roll) 움직임들을 캡쳐하는 축들)을 가지는 좌표계와 같은 6개의 자유도들을 가지는 좌표계에서의 값들로 표현될 수 있다. 상기 XR 디스플레이를 제공하는 디스플레이가 시청자의 머리에 착용되는 장치 (예를 들어, HMD (405)) 인 특정 실시 예들에서, 상기 디스플레이 장치의 "포즈"는 일반적으로 상기 시청자의 "헤드 포즈" 또는 포즈와 공존한다(coextensive).
도 4의 비-제한적인 예제를 참조하면, XR 디스플레이에서 제공되는 디지털 오브젝트의 예제를 설명하기 위해 시계(440)가 도시되어 있다. 상기 동작 환경 (400)의 상단에 도시되어 있는 바와 같이, 벽 (420)이 노출되어 있다. 하지만, 상기 동작 환경 (400)의 제2 뷰에 도시되어 있는 바와 같이, 상기 동작 환경 (400)의 XR 뷰에 디스플레이되어 있는 디지털 오브젝트인 시계(440)는 HMD (405)를 통해 볼 수 있다. 일부 실시 예들에 따르면, 상기 시계(440)는 HMD (405)를 통해 사용자 (401)에게 제시되는 기본 소스 콘텐트가 변경된다는 점에서 (예를 들어, 시계 바늘들이 시간이 지남에 따라 이동한다는 점에서), 또한, 상기 시계(440)가 사용자 (401)가 벽 (420)에 더 가까워짐에 따라서 커지는 것 같이 포즈의 변경들에 응답하여 외형을 변경한다는 점에서 다이나믹하고, 또는 동작 환경 (400) 내에서 사용자 (401)의 위치에 의한 측면 움직임을 반영하도록 재투영된다.
도 5는 본 개시의 특정 실시 예들에 따른 XR 디스플레이를 제공하는 측면들을 추가적으로 도시하고 있다. 도 5에 도시되어 있는 XR 디스플레이를 제공하는 측면들의 실시 예는 단지 예시만을 위한 것이며, 다른 실시 예들이 본 개시의 범위를 벗어남이 없이 사용될 수 있다.
도 5의 비-제한적인 예제를 참조하면, 전자 디바이스는 나중에(예를 들어, 향후에 100 밀리 초(millisecond: ms)를 시작하는 일정한 간격들로) 제시될 이미지 데이터와 연관되는 픽셀들을 상기 HMD의 디스플레이 상에 일련의 프레임들(예를 들어, 프레임(510a) 내지 프레임(510n))로 렌더링한다. 상기 렌더링된 픽셀들 (505)은 상기 링크를 통해 상기 전자 디바이스로부터 상기 HMD로 송신되며, 여기서 상기 렌더링된 픽셀들은 미리 결정되어 있는 시간들(예를 들어, 시간 t1 내지 시간 tn)에서 연속적으로 제시되는 상기 일련의 프레임들 (510a - 510n)에 통합되어 XR 디스플레이를 제공한다.
도 5의 설명을 위한 예제에 도시되어 있는 바와 같이, XR 디스플레이 내의 렌더링된 픽셀들(505)로부터 생성되는 디지털 오브젝트들의 외형은 시간에 따라 상기 소스 이미지가 변경된다는 점에서 멀티플라이(multiply) 다이나믹하다 (예를 들어, 시계 (515)의 바늘들 위치가 프레임(510a) 내지 프레임(510n)에 따라 변경된다). 유사하게, 프레임(510a) 내지 프레임(510n)까지의 연속적인 제시(presentation)를 통해 제공되는 상기 XR 디스플레이에서 디지털 오브젝트들의 외형은 상기 XR 디스플레이 내에서 디지털 오브젝트들의 위치 및 투영 (예를 들어, 상기 시야각(viewing angle))이 상기 HMD의 포즈의 변경들에 응답하여 변경된다는 점에서 다이나믹하다. 도 5의 설명을 위한 예제에 도시되어 있는 바와 같이, 상기 시계(515)의 전반적인 위치는 상기 HMD의 포즈의 변경들에 응답하여 프레임(510a) 내지 프레임(510n)에 걸쳐서 변화하는 상기 프레임의 공간(space) 내에서 이동한다. 일부 실시 예들에 따르면, 상기 포즈의 변경들에 응답하는 XR 디스플레이의 구성 프레임(constituent frame)들 내에서의 디지털 오브젝트들의 투영의 변경들은 상기 HMD의 하나 혹은 그 이상의 모션 센서들(일 예로, 도 2의 IMU (215))에 의해 획득되는 포즈 데이터를 기반으로 하나 혹은 그 이상의 프로세서들(일 예로, 도 2의 CPU(211))에 의해 부분적으로 혹은 전체적으로 핸들링된다.
도 6은 본 개시의 다양한 실시 예들에 따른 전자 디바이스로부터 데이터 링크를 통해 전달되는 픽셀들을 기반으로 HMD에서 XR 디스플레이를 제공하는 측면들을 추가적으로 도시하고 있는 예제이다. 도 6에 도시되어 있는 XR 디스플레이를 제공하는 측면들의 실시 예는 단지 예시만을 위한 것이며, 다른 실시 예들이 본 개시의 범위를 벗어남이 없이 사용될 수 있다.
도 6의 예시적인 예제를 참조하면, 4 개의 동기 타임 라인(timeline)들이 도 6에 도시되어 있다. 제1 타임 라인(600)은 도 6의 다른 3개의 타임 라인들이 동기화되는 현재 시간을 나타낸다. 제2 타임 라인(605)은 HMD (예를 들어, 도 3의 HMD (310))에서 발생하는 액티비티 기간(activity interval)들 (즉, 프로세스들이 수행되는 시간 구간들)을 도시한다. 제3 타임 라인(640)은 전자 디바이스(예를 들어, 도 3의 전자 디바이스(305))에서 발생하는 액티비티 기간들을 나타낸다. 제4 타임 라인(670)은 상기 제2 타임 라인(605)과 연관되는 HMD의 현재 포즈 (사용자의 머리 위치를 통해 표현되는 바와 같은)를 나타낸다.
예를 들어, 상기 전자 디바이스와 HMD 사이의 링크 (예를 들어, 도 3의 링크(315))가 제한된 대역폭을 갖는 실시 예들을 포함하는 특정 실시 예들에 따르면, 도 4 및 도 5를 참조하여 설명된 바와 같이 멀티플라이(multiply) 다이나믹 XR 디스플레이를 제공하는 계산 작업 부하(workload)는 렌더링된 픽셀들을 상기 전자 디바이스에서 HMD로 송신하는 프로세스 동안 발생하는 포즈 변경들로 인해 상기 XR 디스플레이에서 오브젝트들을 재투영하는 것과 연관되는 계산 부하를 관리하는 것을 포함한다. 다르게 말하면, 본 개시에 따른 특정 실시 예들에서, 픽셀들은 첫 번째로 전자 디바이스에서 렌더링되고, 상기 HMD로 송신되고, 그리고 두 번째로 상기 HMD에 의해 제공되는 XR의 일부로서 디스플레이되기 이전에 상기 현재 포즈에 맞게 조정된다. 본 개시의 다른 부분에서 논의된 바와 같이, XR 디스플레이를 위한 픽셀들이 전자 디바이스에서 렌더링되는 제1 시간과 상기 픽셀들이 디스플레이 준비를 위한 포즈 조정에 가용한 제2 시간 사이의 기간은 2개의 컴퓨팅 플랫폼들에 걸쳐 XR 디스플레이를 제공하는 시스템들에 대한 성능 병목 현상(performance bottleneck)을 야기한다. 추가적으로, (예를 들어, 배터리 소모를 증가시키거나 해상도를 감소시킴으로써) 불리한 영향을 주지 않으면서 상기에서 설명한 바와 같은 성능 병목 현상을 해결하는 것은 해당 기술 분야에서의 개선을 위한 기술적 도전 과제들 및 기회들의 소스로 남아 있다.
도 6의 비-제한적인 예제를 참조하면, 제1 시간 기간(645)의 시작에서, 상기 전자 디바이스 (또는 그래픽 파이프 라인(graphics pipeline)과 같은 상기 전자 디바이스의 프로세스)는 상기 HMD에서 제공되는 XR 디스플레이를 지원하는 어플리케이션으로부터 소스 이미지 (일 예로, 장면(scene)의 벡터 표현)를 수신한다. 시간 기간(645) 동안, 상기 렌더링 디바이스는 상기 HMD에서 디스플레이를 위한 픽셀들로서 상기 소스 이미지를 렌더링한다. 특정 실시 예들에 따르면, 상기 기간(645)에 걸쳐 수행되는 렌더링 프로세스들은 상기 HMD에서 제공되는 XR 디스플레이에서 나타나는 디지털 오브젝트들의 표면 텍스처(surface texture)들을 음영 처리하고 생성하는 것을 포함하며, 그렇다고 이에 제한되지는 않는다.
제4 타임 라인 (670)에 의해 도시되는 바와 같이, 기간 (645) 동안, 상기 컴패니언 디스플레이에 대한 포즈 좌표는 제1 포즈 (675)와 연관되는 값을 가진다 (상기 도면에서 상기 이미지에서 정북(due north)을 향하는 머리에 의해 나타내지는). 그러나, 제2 포즈 (677) 및 제3 포즈 (679)에 의해 도시되는 바와 같이, 디스플레이를 위한 픽셀들의 집합을 렌더링하는 것과 포즈-조정된 XR 디스플레이의 일부로서 상기 픽셀들을 실제로 디스플레이하는 것 사이에서 포즈가 변경될 수 있다.
당업자들은 도 6에 도시되어 있는 다른 기간들에 대한 기간(645)의 듀레이션(duration)이 해상도없이 렌더링될 소스 이미지들의 프레임-오버-프레임(frame-over-frame) 변경들, 상기 HMD에서의 바람직한 해상도, 및 가용한 시스템 자원들을 포함하는 잠재적으로 상호 관련되는 변수들의 범위를 기반으로 변경될 수 있다는 것을 이해할 것이다.
기간(645)은 미리 결정되어 있는 시퀀스의 프레임들의 일부로서 미리 결정되어 있는 시점에 상기 컴패니언 디바이스에 디스플레이될 특정 프레임 (예를 들어, 도 5의 프레임(510b))과 연관되는 집합의 픽셀들이 렌더링되고 상기 전자 디바이스로부터 상기 HMD로 송신될 필요가 있을 때 종료/결정된다.
일부 실시 예들에 따르면, 렌더링된 픽셀들은 인코딩 기간(650)에 송신 전에 인코딩된다. 일부 실시 예들에서, 인코딩 기간(650) 동안, 상기 렌더링된 픽셀들은 상기 렌더링된 픽셀들을 송신하기 위해 필요로 되는 바이트들의 볼륨을 감소시키기 위해, 하나 혹은 그 이상의 비디오 압축 알고리즘들 (예를 들어, x265 압축)을 사용하여 압축된다. 상기 인코딩 기간 (650)의 듀레이션은 인코딩될 픽셀 데이터의 양, 인코딩을 위한 가용한 프로세서 자원들, 렌더링과 디스플레이 사이의 레이턴시(latency)에 대한 XR 시스템의 허용 오차(tolerance)를 포함하며, 그렇다고 이에 제한되지는 않는, 다양한 상호 관련 팩터들을 기반으로 할 수 있다. 추가적으로, 일부 실시 예들에서는, 상기 인코딩 기간(650)이 일시적으로 또는 영구적으로 회피될 수 있는데, 이는 예를 들어 상기 전자 디바이스와 HMD 사이의 링크에서 가용한 대역폭과 같은 다른 팩터들로 인해 송신 전에 픽셀들을 압축하지 않는 것이 더 효율적이기 때문이다.
당업자들은 도 6의 예시적인 예제에 도시되어 있는 전체 기간 및 다른 기간들에 대한 상대적인 기간의 듀레이션은 압축될 데이터의 양, XR 디스플레이의 바람직한 해상도, 디스플레이까지의 시간 및 인코딩을 위해 사용되는 압축 알고리즘을 포함하는, 그렇다고 이에 제한되지는 않는, 다수의 잠재적인 상호 관련 팩터들을 기반으로 한다.
특정 실시 예들에 따르면, 기간(645)을 통해 렌더링된 픽셀들, 그리고, 특정 실시 예들에서, 기간(650)을 통해 인코딩된 픽셀들은 송신 기간(655)를 통해 데이터 링크 (예를 들어, 링크 (315))를 통해 상기 전자 디바이스로부터 HMD로 송신된다. 상기 전자 디바이스와 HMD간의 데이터 링크 포맷에 따라, 상기 픽셀들은 BLUETOOTH, WI-FI, LTE 또는 5G 프로토콜들을 포함하는, 그렇다고 이에 제한되지는 않는, 하나 혹은 그 이상의 명시된 통신 프로토콜들에 따라 송신된다. 도 6의 예시적인 예제를 참조하여 설명되는 다른 기간들에 대한 총 송신 기간(655)의 듀레이션은 상기 HMD와 전자 디바이스 사이의 연결 품질, 배터리 및 송신을 위한 프로세서 자원들에 대한 시스템 제약들, 및 상기 전자 디바이스로부터 HMD로 송신될 픽셀 데이터의 볼륨을 포함하는, 그렇다고 이에 제한되지는 않는 다양한 잠재적으로 상호 연관되는 팩터들을 기반으로 할 수 있다.
일부 실시 예들에서, 송신 기간(655)은 상기 모든 픽셀들이 상기 HMD로 송신되었을 때 (또는 송신 시도되었을 때) 종료/결정된다. 상기 픽셀들이 송신 전에 상기 전자 디바이스에서 인코딩되는 실시들 예에서 (예를 들어, 하나 혹은 그 이상의 압축 알고리즘들을 사용하여 상기 픽셀 데이터를 압축함으로써), 상기 HMD에서 수신될 경우, 상기 픽셀들은 디코딩 기간(660) 동안 디스플레이를 준비하기 위해 디코딩되며, 상기 디코딩 기간(660) 동안 상기 HMD는 하나 혹은 그 이상의 압축 해제 알고리즘들을 적용하여 상기 픽셀 데이터를 사전-디스플레이 정정에 적합한 형식으로 복원할 수 있다. 실시 예들에 따라, 도 6에 도시되어 있는 전체, 및 다른 기간들에 대한 상대적인 디코딩 기간(660)의 듀레이션은 상기 데이터를 인코딩하는데 사용되는 알고리즘의 선택, 상기 HMD에서의 가용한 프로세싱 및 배터리 자원들, 및 상기 HMD에서의 허용 가능 동작 온도에 대한 제약들(예를 들어, 상기 프로세서 부하에 의해 초래되는 열에 의해 상기 디바이스가 상기 사용자에 대해 불편해질 정도로 뜨거워지는지 여부)을 포함하는, 그렇다고 이에 제한되지는 않는, 다양한 상호 관련 팩터들을 기반으로 할 수 있다.
도 6의 비-제한적인 예제를 참조하면, 상기 디코딩 기간(660)의 종료시, 상기 HMD의 포즈는 렌더링 기간(645)의 종료와 디코딩 기간(660)의 종료 사이의 시간 동안 제1 포즈 (675)로부터 제2 포즈(677)를 통해 제3 포즈(679)로 쉬프트(shift)된다. 다르게 말하면, 상기 라이브 뷰의 상기 HMD의 관점(perspective)은 상기 전자 디바이스에서 프레임의 픽셀들을 렌더링하는 것과 상기 HMD에서 상기 픽셀들을 수신하는 것 사이의 시간에서 변경되었고, 따라서 상기 XR 디스플레이에서 상기 이미지 데이터의 투영이 조정되지 않으면(absent adjustment), 상기 렌더링된 픽셀들로 구현되는 디지털 오브젝트들과 상기 물리적 세계의 라이브 뷰간의 매핑(mapping)은 상기 포즈의 변경으로 인해 오프(off)될 것이다. 도 4의 예시적인 예제를 참조하면, 도 6의 기간들(650, 655, 660)에 걸친 포즈의 변경은 시계(440)가 벽(420) 주위에서 임의로 이동하는 것처럼 나타나는 것과 같이 도 4의 상기 XR 디스플레이에 나타날 것이다. 많은 어플리케이션들에 대해서, 그러한 움직임은 XR 디스플레이에서는 바람직하지 않으며, 일부 시청자들에게 멀미를 유발할 수 있다.
조정 기간 (661) 동안, 제1 포즈 (675)와 제3 포즈 (679) 사이의 포즈 좌표의 변경들에 대해서 조정하기 위해, 상기 HMD는 상기 전자 디바이스에서의 렌더링과 상기 HMD에서의 수신 사이의 기간에 걸친 포즈의 변경을 반영하는, 변경된 좌표계에 따라, 상기 전자 디바이스로부터 수신된 픽셀들을 재투영 혹은 워프(warp)(여기에서 "재투영 워프(reprojection warp)" 또는 "이미지 재생 워프(image reproduction warp)"라고도 칭해지는)한다. 이러한 방식으로, 상기 XR 디스플레이 내에서 상기 렌더링된 픽셀들에 의해 정의되는 디지털 오브젝트의 관점이 상기 HMD의 포즈 변경을 반영하도록 조정된다. 상기 렌더링된 픽셀들을 재투영하기 위한 알고리즘들의 예제들은 GDAL (Geospatial Data Abstraction Library)의 gdalwarp 유틸리티(utility)를 포함하며, 그렇다고 이에 제한되는 것은 아니다.
특정 실시 예들에 따르면, 절대적인 용어들로, 그리고 도 6의 설명을 위한 예제에서 설명되는 다른 기간들에 대해 상대적으로, 조정 기간(661)의 듀레이션은 상기 렌더링 및 상기 HMD에서의 수신 간의 기간에 걸쳐 상기 HMD의 포즈가 변경되는 정도(extent), 상기 수신되는 픽셀들을 사용하는 XR 디스플레이의 해상도, 및 상기 HMD의 프로세싱 자원들을 포함하는, 그렇다고 이로 제한되지는 않는, 다수의 잠재적인 상호 관련 팩터들을 기반으로 한다.
도 6의 비-제한적인 예제를 참조하면, 조정 기간(661)은 상기 수신된 픽셀들이 제1 포즈(675)로부터 제3 포즈(679)로의 변경을 처리하기 위해 쉬프트된 좌표계에 따라 재투영될 때 종료된다. 상기 렌더링되고 정정된 픽셀들은 디스플레이 기간(663)에 걸쳐 XR 디스플레이의 프레임으로서 디스플레이된다. 특정 실시 예들에 따르면, 상기 디스플레이 기간(663)의 듀레이션은 상기 HMD에서 제공되는 XR 디스플레이의 현재 프레임 레이트를 기반으로 한다. 일부 실시 예들에서, 상기 HMD에서의 프레임 레이트는, 적어도 부분적으로, 상기 전자 디바이스가 상기 HMD에 정정-준비 픽셀들을 제공할 수 있는 속도를 기반으로 한다.
도 6을 참조하여 설명되는 바와 같이, 상기 렌더링 기간 (645)의 종료와 상기 조정 기간(661)의 시작 사이의 기간(665)은, 특정 실시 예들에 대해서, 전자 디바이스에서 렌더링되는 픽셀들을 기반으로 HMD에서 XR 디스플레이를 제공하기 위한 성능 병목 현상을 나타낸다. 예를 들어, 상기 기간(665)이 길어질수록 상기 HMD의 포즈가 변경될 기회가 더 많아지고, 상기 변경된 포즈를 처리하기 위해 상기 이미지를 재투영하는 더 많은 프로세싱이 상기 HMD에서 수행될 필요가 있다.
본 개시의 다른 부분에서 언급되는 바와 같이, XR 시스템의 전반적인 성능은 시스템 비용, XR 디스플레이의 프레임 레이트, 상기 XR 디스플레이의 해상도, 배터리 수명, 프로세서 소비, 상기 HMD에서 생성되는 열을 포함하는, 그렇다고 이에 제한되지는 않는, 다양한 상호 관련 차원(dimension)들을 포함한다. 기간(665)은, 잠재적으로, 상기 전자 디바이스 또는 HMD 중 하나 또는 둘 다에 압축 또는 압축 해제를 위한 더 많은 프로세싱 자원들을 제공함으로써 단축될 수 있지만, 그와 같은 변경은 예상대로 (예를 들어, 더 파워풀한 프로세서로부터의) 증가된 배터리 소모, 또는 다른 시스템 프로세스들에 가용한 더 적은 프로세싱 자원들이라는 비용을 지불하게 될 것이다. 유사하게, 상기 HMD에서 제공되는 상기 XR 디스플레이의 해상도를 낮춤으로써 비디오 데이터의 전체 프레임들을 압축하고 송신하는 것과 연관되는 시간은 감소될 수 있지만, 이 접근 방식은 필수적으로 상기 디스플레이에서 상기 디지털 오브젝트들의 품질을 저하시키게 된다. 또 다른 예로서, 보다 효율적인 압축 알고리즘들이 사용되어 상기 링크를 거쳐 상기 HMD 로 송신되는 데이터의 볼륨을 감소시킬 수 있지만, 그와 같은 알고리즘들은 실행하는데 더 많은 시간이나 또는 추가적인 프로세싱 자원들을 필요로 할 수 있다. 따라서, XR 시스템의 전반적인 성능의 하나 혹은 그 이상의 차원들을 감소시키지 않고 기간(665)을 단축하는 것은 개선을 위한 기술적인 도전 과제들과 기회들의 소스로 남아 있다.
도 7a 및 도 7b는 본 개시의 다양한 실시 예들에 따른 손실 없는 데이터 감소를 통해 데이터 통신 부하를 감소시키기 위한 예제 아키텍처들을 블록 다이아그램 형태로 도시하고 있다. 상호 참조의 편의를 위해, 도 7a 및 도 7b의 예제 둘 다에 대해 공통적인 엘리먼트들은 유사하게 넘버링된다. 도 7a 및 도 7b에 도시되어 있는 실시 예들은 단지 예시만을 위한 것이다. 다른 실시 예들이 본 개시의 범위를 벗어남이 없이 사용될 수 있다.
본 개시의 도 6을 참조하여 언급된 바와 같이, 전자 디바이스에서 렌더링을 완료하는 것과 HMD에서 렌더링된 픽셀들을 포즈 정정을 위해 준비되도록 하는 것 사이의 기간을 줄이면서, 동시에 전체적으로 상기 시스템의 성능의 다른 차원들을 손상시키지 않는 것은 XR 시스템들의 전반적인 성능을 향상시키기 위한 기술적 도전 과제 및 기회들을 제시한다. 도 7a 및 도 7b를 참조하여 설명되는 실시 예들을 포함하는 본 개시에 따른 특정 실시 예들은 (XR 이미지들의 전체 프레임들을 지속적으로 송신하는 것과 비교하여) 더 적지만 (상기 전자 디바이스에서 이미지들을 렌더링하는데 사용되는 상기 포즈 데이터의 최신성 측면에서) 더 좋은 프레임들을 상기 전자 디바이스로부터 상기 HMD로송신함으로써 상기 시스템의 전반적인 성능의 다른 차원들에 새로운 비용을 부과하지 않으면서 상기에서 설명된 기간의 감소에 영향을 준다.
도 7a의 비-제한적인 예제를 참조하면, 상기 아키텍처는 HMD(751)(예를 들어, 도 4의 HMD(405))에 통신적으로 링크되어 있는 (예를 들어, 링크 (예를 들어, 링크 (315))를 통해) 전자 디바이스(701)(예를 들어, 도 1의 디바이스(100))를 포함한다.
다양한 실시 예들에 따르면, HMD에서 XR 디스플레이로서 제시될 상기 일련의 프레임들(예를 들어, 도 5의 프레임(510a) 내지 프레임 (510n))에서 한 프레임을 렌더링하는 프로세스는 소스 이미지 (705)가 상기 전자 디바이스(701)에서 실행중인 렌더링 엔진(710)으로 전달될 때 시작된다. 이 설명을 위한 예제에서, 소스 이미지(705)는 XR 디스플레이를 지원하는 어플리케이션에 의해 생성되는 이미지 데이터 (예를 들어, 벡터 또는 다른 비-픽셀 레벨(non-pixel level))에 상응하며, 이는 상기 전자 디바이스에서 렌더링된 다음 시청을 위해 상기 HMD로 송신될 프레임에 상응한다. 참조로, 소스 이미지 (705)는 일련의 프레임들에서 제n 프레임에 상응하고, 제n-1 프레임은 바로 직전의 프레임에 상응하고, 제 n+1 프레임은 상기 제n 프레임 이후의 프레임에 상응한다.
도 7a의 설명을 위한 예제에서, 상기 렌더링 엔진 (710)은 디스플레이를 위한 픽셀들로서 어플리케이션에 의해 출력되는 신-레벨 데이터를 렌더링하기 위해 전자 디바이스(701)에서 실행되는 어플리케이션 또는 프로세스를 포함한다. 렌더링 엔진 (710)으로 동작할 수 있는 그래픽 파이프 라인들의 예제들은 ANDROID® 디바이스들에 대한 OpenGL Rendering Pipeline 및 iOS 디바이스들에 대한 Metal Graphics Pipeline을 포함하며, 그렇다고 이에 제한되지는 않는다. 특정 실시 예들에 따르면, 렌더링 엔진 (710)은 상기 HMD (751)에 제시되는 XR 디스플레이에서 디지털 오브젝트들로 나타나는 콘텐트에 대한 음영 값(shading value)들 및 텍스처(texture)들을 결정한다.
특정 실시 예들에 따르면, 상기 렌더링 엔진 (710)은 소스 이미지 (705)를 기반으로 새로운 프레임 (715)을 출력한다. 이 예제에서 설명되는 바와 같이, 새로운 프레임 (715)은 HMD (751)로의 송신 및 HMD (751)에서의 투영을 위해 전자 디바이스 (701)에 의해 렌더링되는 일련의 프레임들 중 제n 프레임이다. 특정 실시 예들에서, 상기 새로운 프레임 (715)의 콘텐트는 상기 HMD의 알려진 또는 예측된 포즈를 기반으로 유리한 포인트(vantage point)로부터 디지털 오브젝트들을 제시하도록 렌더링된다. 일부 실시 예들에 따르면, 포즈 정보 (예를 들어, 타임-스탬프된(time-stamped) IMU 데이터 또는 주어진 시간에서의 상기 HMD의 포즈의 예측)는 상기 전자 디바이스와 HMD를 연결하는 데이터 링크를 통해 상기 HMD의 하나 혹은 그 이상의 센서들(예를 들어, 도 2의 IMU(215))로부터 획득된다.
도 7a의 비 제한적인 예를 참조하면, 블록 720에서, 상기 전자 디바이스는 새로운 프레임 (715)과 상기 전자 디바이스의 메모리에 저장되어 있는 기준 프레임 (725) 사이의 차 연산(difference operation)을 수행한다. 상기 블록 720에서 수행된 차 연산은 새로운 프레임 (715)에 대해 고유한 픽셀들을 식별한다. 특정 실시 예들에 따르면, 상기 기준 프레임 (725)은 소스 이미지(705) 전에 생성된 소스 이미지 데이터를 기반으로, 렌더링 엔진 (710)에 의해 렌더링된 이전 프레임(또는 제n-1 프레임)의 복사본(copy)을 포함한다.
특정 실시 예들에 따르면, 전자 디바이스 (701)는 상기 블록 720에서 수행된 차 연산을 기반으로 새로운 프레임 (715)에 대해 고유한 픽셀들을 포함하는 차등 프레임(differential frame) (735)을 생성한다. 이전에 언급한 바와 같이, 대부분의 경우들에서, 프레임들 간의 프레임-오버-프레임(frame-over-frame) 차이들은 프레임들간의 기간의 길이가 감소함에 따라서 감소한다. 따라서, 디지털 콘텐트가 인간 사용자가 편안하게 시청하도록 (예를 들어, 오브젝트들이 부드럽게 움직이는 것처럼 나타나고, 동시에, 인식하기에는 너무 짧은 구간들 동안 상기 스크린 (screen) 상에 콘텐트를 플래시(flash)하지 않는 프레임 레이트로) 렌더링되는 많은 현실 세계 어플리케이션들에서, 주어진 프레임의 픽셀들 중 상당한 부분이 상기 이전 프레임의 픽셀들과 동일할 가능성이 높다. 따라서, 전자 디바이스 (701)로부터 HMD (751)로 전체 프레임을 송신하는 것에 대한 대안으로서, 상기 새로운 프레임 (715)과 기준 프레임 (725) 사이의 차이 (또는 변경들만)를 포함하는 차등 프레임이 생성된다. 특정 실시 예들에 따르면, 상기 기준 프레임, 차등 프레임 및 새로운 프레임 간의 관계는 하기의 수학식들에 의해 표현될 수 있다.
Figure pat00001
Figure pat00002
수학식 1에 따르면, 상기 차등 프레임 (Frame(diff))의 콘텐트는 상기 새로운 프레임 (Frame(new))의 픽셀들의 집합을 포함하며, 상기 새로운 프레임의 픽셀들의 집합에서는 상기 새로운 프레임에 대해 고유한 상기 새로운 프레임의 픽셀들의 서브 집합만을 남겨두기 위해 기준 프레임 (Frame(ref)) 에 대해 공통인 픽셀들은 빠져 있다. 마찬가지로, 수학식 2에 따르면, 상기 새로운 프레임 (Frame(new))에 대해 고유한 픽셀들을 가지는 상기 차등 프레임 (Frame(diff))의 픽셀들과 기준 프레임의 픽셀들을 결합함으로써 재구성될 수 있다. 그와 같이, 상기 전자 디바이스(701)와 HMD(751)가 각각 상기 기준 프레임 (725)의 복사본을 유지할 경우, 완전한 프레임보다는 차등 프레임만을 송신함으로써, 새로운 (제n+1) 프레임에 대한 이미지 데이터가 전자 디바이스(701)에서 HMD(751)로 데이터의 손실 없이 제공될 수 있다. 이러한 방식으로, 상기 전자 디바이스(701)와 HMD(751) 사이의 링크를 통해 송신되는 데이터의 양이 감소될 수 있으며, 이에 따라 상기 전자 디바이스에서의 렌더링과 상기 HMD에서의 수신 사이의 시간 (예를 들어, 도 6의 기간(665))을 감소시킬 수 있다. 간단히 말해서, 본 개시에 따른 특정 실시 예들에서, 전자 디바이스 (701)는 HMD (751)에게 전체 프레임에 비해 감소된 픽셀들의 집합 (즉, 차등 프레임 (735))을 제공하고, 이에 따라 이미지 데이터의 손실 없이 전자 디바이스(701)와 HMD(751) 사이의 통신 부하를 감소시킬 수 있다. 이러한 방식으로, 도 7a의 예제에 따른 실시 예들은 배터리 수명 또는 하드웨어 요구 사항들과 같은 시스템 성능의 어떤 다른 차원들에도 부정적인 영향을 주지 않으면서 XR 디스플레이를 제공하기 위한 시스템인 전자 디바이스(701) 및 HMD (751)의 전반적인 성능을 개선시킬 수 있다.
도 7a의 비-제한적인 예제를 참조하면, 특정 실시 예들에서, 데이터 사이즈를 감소시키고 더 빠른 전송을 고려하기 위해서 상기 차등 프레임 (735)이 블록 740에서 인코딩된다. 일부 실시 예들에 따르면, 상기 차등 프레임은 다수의 가능한 인코딩 모드들 중 하나를 사용하여 인코딩된다. 특정 실시 예들에서, 상기 인코딩 모드들은 다른 압축 알고리즘들을 포함하거나 (혹은 포함하지 않거나), 또는 주어진 압축 알고리즘에 대한 다른 품질/속도 사전 설정(preset)들을 포함한다. 비-제한적인 일 예로, 상기 x.265 압축 알고리즘은 "초고속(ultrafast)"에서 "플라세보(placebo)"에 이르는 10 개의 압축 속도 사전 설정들을 제공한다. 특정 실시 예들에서, 이들 사전 설정들 각각은 압축 모드를 포함할 수 있다.
특정 실시 예들에서, 상기 다수의 인코딩 모드들 중 상기 인코딩 모드는 상기 차등 프레임의 사이즈, 또는 상기 HMD로부터 수신되는 헤드 포즈 데이터와 같은 콘텍스트 팩터를 기반으로 선택된다.
차등 프레임(735)을 생성하고, 그리고 적용 가능한 경우, 블록 740에서 상기 차등 프레임을 인코딩 한 후, 블록 745에서 상기 전자 디바이스(701)는 하나 혹은 그 이상의 통신 링크들 (예를 들어, 도 3의 링크(315))를 통해 상기 차등 프레임을 HMD (751)로 송신한다.
블록 755에서, 상기 HMD (751)는 상기 전자 디바이스(701)로부터 상기 링크를 통해 상기 차등 프레임을 수신하고, 차등 프레임 (759)은 HMD (751)에서 추가적인 프로세싱에 대해 가용하다. 상기 차등 프레임이 미리 인코딩되어 있는 실시 예들에서 (예를 들어, 블록 740에서), 상기 차등 프레임은 새로운 프레임(715)이 HMD (751)에서 재구성될 수 있는 압축되지 않은 차등 프레임(759)이 가용하도록 디코딩된다.
특정 실시 예들에 따르면, 상기 HMD (751)는 상기 HMD (751)의 메모리 또는 상기 전자 디바이스(701)로부터 기준 프레임 (761)을 획득한다. 이 비-제한적인 예제에서, 기준 프레임 (761)은 기준 프레임(725)의 HMD 디바이스 복사본(copy)을 포함한다.
특정 실시 예들에 따르면, 블록 763에서, HMD (751)는 본 개시에서의 수학식 2에 따라 기준 프레임 (761)과 차등 프레임 (759)을 결합함으로써 새로운 프레임 (715)을 재구성한다. 이 비-제한적인 예제에서, 차등 프레임 (759)에서 제공되는 상기 새로운 프레임 (715)에 대해 고유한 픽셀들은 상기 기준 프레임 (761)의 특정 픽셀들을 대체하고, 이에 따라 상기 프레임을 업데이트할 수 있다. 도 7a의 비-제한적인 예제에서, 블록 763에서 생성된 상기 새로운 프레임은 기준 프레임으로서 상기 HMD의 메모리에 저장된다.
블록 765에서, 상기 HMD의 하나 혹은 그 이상의 센서들 (예를 들어, 도 2의 IMU(215))는 전자 디바이스(701)에서 새로운 프레임 (715)의 생성 이후의 시간에서 상기 HMD의 포즈와 연관되는 추적 측정(tracking measurement)들을 획득한다. 특정 실시 예들에 따르면, 상기 블록 765에서 획득된 추적 측정들은 필요에 따라, 헤드 포즈 데이터 (767)로서 프로세싱된다. 특정 실시 예들에서, 상기 헤드 포즈 데이터 (767)는 상기 HMD의 기록된 포즈와 연관되는 타임-스탬프된 데이터를 포함한다. 다양한 실시 예들에서, 상기 헤드 포즈 데이터 (767)는 미래의 시간에서의 상기 HMD의 예측된 헤드 포즈를 포함한다.
특정 실시 예들에서, 블록 768에서, 헤드 포즈 데이터 (767)가 HMD (751)로부터 전자 디바이스(701)로 송신된다. 블록 747에서 전자 디바이스(701)에서의 수신 시, 상기 헤드 포즈 데이터가 렌더링 엔진 (710)으로 제공되어 다음 소스 이미지를 렌더링하기 위한 업데이트된 관점 정보를 제공한다.
도 7a의 비-제한적인 예제를 참조하면, 상기 헤드 포즈 데이터 (767)를 기반으로 하여 재구성된 새로운 프레임의 이미지 재생 워프(image reproduction warp)가 블록 769에서 수행되고, 이에 따라 가장 최근의 가용한 헤드 포즈 데이터를 기반으로 상기 새로운 프레임 (715)의 투영을 업데이트할 수 있다. 추가적으로, 이전에 언급한 바와 같이, 상기 가장 최근의 가용한 헤드 포즈 데이터 (이 케이스에서는, 헤드 포즈 데이터 (767))는 또한, 일부 실시 예들에서, 전자 디바이스(701)로 다시 송신되며, 이는 예를 들어 상기 HMD (751)로 송신될 다음 프레임을 생성할 때 상기 렌더링 엔진 (710)에 의해 사용되는 관점 정보의 최신성(recency)을 개선시키기 위해 사용될 수 있다.
일부 실시 예들에 따르면, 상기 블록 769에서 수행된 이미지 재투영 워프는 포즈-조정된 새로운 프레임 (771)을 생성한다.
도 7a의 예시적인 예제를 참조하면, 특정 실시 예들에서, 상기 포즈-조정된 새로운 프레임 (771)은 블록 773에서 추가로 정정된다. 일부 실시 예들에 따르면, 상기 블록 773에서 수행되는 추가적인 정정들은 이미지 재생 워프 동안 생성되는 왜곡들을 보정하는 것과, 디스플레이 전에 상기 재투영된 프레임으로부터 아티팩트(artifact)들을 제거하는 것을 포함한다.
본 개시에 따른 일부 실시 예들에서, 블록 775에서, 상기 포즈-조정된 새로운 프레임은 상기 HMD에서 XR 디스플레이를 제공하는 일련의 프레임들 중 한 프레임으로서 미리 결정되어 있는 시간 동안 (예를 들어, 60 초당 프레임 레이트(60 frame-per-second frame rate)를 가지는 실시 예들에서, 1/60 초) 상기 헤드 마운티드 디스플레이에 의해 디스플레이된다.
도 7b는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통한 데이터 통신 부하를 감소시키기 위한 아키텍처의 다른 예를 블록 다이아그램 형식으로 도시하고 있다. 이전에 언급된 바와 같이, 도 7a 및 도 7b에 대해 공통되는 블록들 및 엘리먼트들은 유사하게 넘버링된다.
특정 실시 예들에서, 상기 전자 디바이스 (701) 및 HMD (751)의 성능은 상기 디스플레이 시간에 대한 차등 프레임의 최신성을 개선시킴으로써 향상될 수 있고, 따라서 헤드 포즈에서의 변경들에 대한 더 적은 기회가 존재하고, 또한, 함축적으로, 헤드 포즈들의 중간 변경을 조정하기 위한, HMD(751)에서의 잠재적으로 더 적은 프로세싱이 존재한다. 상기 HMD(751)에서 포즈 조정과 연관되는 프로세싱 부하를 감소시킴으로써, XR 디스플레이를 제공하는 시스템인 전자 디바이스(701) 및 HMD(751)의 전반적인 성능이 시스템의 성능의 다른 차원들을 손상시키지 않고 개선될 수 있다.
도 7b의 비-제한적인 예제를 참조하면, 일부 실시 예들에서, 전자 디바이스(701)로부터 HMD(751)로 송신되는 차등 프레임 (735)의 사이즈를 감소시키는 것을 돕기 위해, 이미지 재투영 워프 (730)가 상기 HMD에 의해 제공되는 포즈 데이터를 기반으로 기준 프레임 (725)에 대해 수행된다. 특정 실시 예들에 따르면, 상기 HMD에 의해 제공되는 포즈 데이터는 디스플레이 전에 제n-1 프레임의 투영을 조정하기 위해 상기 HMD에 의해 사용되는 동일한 포즈 데이터이다. 일부 실시 예들에서, 상기 HMD에 의해 제공되는 포즈 데이터는 상기 기준 프레임의 렌더링과 상기 새로운 프레임의 렌더링 사이의 시점에 대해 예측된 포즈이다.
다양한 실시 예들에 따르면, 연속적인 프레임들 사이의 프레임-오버-프레임 차이들 (예를 들어, 주어진 프레임에 대해 고유한 픽셀들의 수)는 상기 프레임들이 연관되는 시간들 사이의 기간이 감소됨에 따라 감소된다. 특정 실시 예들에 따르면, 상기 이미지 재투영 워프 (730)는 렌더링 이후의 포즈 변경들을 고려하기 위해 기준 프레임 (725)의 픽셀들을 "업데이트"한다. 다르게 말하면, 기준 프레임 (725)이 최초에는 시간 t = 0 (이 예제에서는, 렌더링 시간)과 연관되고, 상기 새로운 (제n) 프레임이 시간 t = 1 (이 예제에서는, 렌더링 시간)과 연관될 경우, 이미지 재투영 워프 (730)는 기준 프레임 (725)과 연관된 시간을 이미지 재투영 워프 (730)를 수행하는 데 사용되는 포즈 데이터의 시간으로 "앞당긴다(move up)". 따라서, 이미지 재투영 워프 (730)를 수행할 포즈 데이터가 시간 t = 0.5에서 획득되었을 경우, 기준 프레임 (725)은 포스트(post) 이미지 재생 워프 이후, 더 이상 시간 t = 0과 연관되지 않고 오히려 시간 t = 0.5와 연관된다.
특정 실시 예들에 따르면, 블록 720에서, 차 연산은 새로운 프레임 (715)에 대해 고유한 픽셀들을 식별하기 위해 새로운 프레임 (715)과 이미지 재투영 워프 (730)에 의해 업데이트된 기준 프레임 사이에서 수행된다. 추가적으로, 다양한 실시 예들에 따르면, 상기 업데이트된 기준 프레임은 기준 프레임으로서 전자 디바이스(701)의 메모리에 저장된다.
이 비-제한적인 예제에서, 기준 프레임과 새로운 프레임 간의 차 연산을 수행하기 전에 상기 기준 프레임의 이미지 재투영 워프를 수행함으로써, 상기 차등 프레임의 픽셀들의 (상기 HMD에서 현재 포즈와 일치하는 최신성 및 조정 정도 측면에서) "품질"이 개선될 수 있다.
도 8은 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 데이터 통신 부하를 감소시키는 프로세스(800)의 일 예의 측면들을 도시하고 있다. 상기 플로우차트가 일련의 순차적 단계들을 도시하고 있을지라도, 명시적으로 언급하지 않는 한, 특정 순서의 수행, 동시 또는 오버랩 방식 보다는 순차적인 단계들의 수행 혹은 상기 단계들의 일부분들의 수행, 혹은 중간(intervening 혹은 intermediate) 단계들의 발생없이 배타적으로 도시되어 있는 단계들의 수행에 관한 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 상기 도시되어 있는 예제에서 설명되는 프로세스는 일 예로, 전자 디바이스 및 HMD의 각 프로세서에 의해 구현된다.
도 8의 비-제한적인 예제를 참조하면, 상기 프로세스(800)의 동작들은 두 개의 컴퓨팅 플랫폼들, 이 케이스에서는, 링크 (예를 들어, 와이-파이 또는 블루투스 연결)를 통해 통신적으로 연결되는 전자 디바이스(801)(예를 들어, 도 1의 전자 디바이스(100)) 및 헤드 마운티드 디스플레이 (head mounted display: HMD)(851) (예들 들어, 도 4의 HMD (405) 또는 도 7a의 HMD (751))에서 실행된다.
도 8의 예시적인 예제에 도시되어 있는 바와 같이, 블록 805에서 HMD (851)는 상기 HMD의 현재 포즈와 연관되는 포즈 데이터(px)를 생성한다. 특정 실시 예들에 따르면, 포즈 데이터 (px) 는 미래 시간과 연관되는 예측된 포즈 데이터를 포함한다. 일부 실시 예들에서, 포즈 데이터(px)는 가속도계, IMU 또는 특정 시간 값과 연관되는 내부 자이로(gyro)와 같은 상기 HMD의 하나 혹은 그 이상의 센서들에 의해 출력되는 데이터를 포함한다. 특정 실시 예들에 따르면, 블록 810에서, 포즈 데이터(px)는 추후에 HMD (851)로 제공될 차등 프레임을 생성하기 위한 준비로 기준 프레임을 업데이트하기 위해, 그렇다고 이에 제한되지는 않는, 상기 HMD(851)에서 전자 디바이스(801)로 송신된다. 도 8의 예시적인 예제에 도시되어 있는 바와 같이, 블록 815에서 포즈 데이터(px)는프레임 (fn-1)이 렌더링된 시간과 현재 순간 사이의 시간 동안 발생하는 HMD 포즈에서의 변경들을 조정하기 위해 이전에 재구성된 프레임 (fn-1)의 이미지 재생 워프를 수행하는 데 사용된다. 상기 이미지 재투영 워프를 수행한 후, 프레임(fn-1)은 프레임 (fwn)으로 재지정된다. 특정 실시 예들에 따르면, 프레임 (fwn)은 HMD(851)의 메모리에 기준 프레임으로서 저장된다.
도 8의 예시적인 예제에 도시되어 있는 바와 같이, 프레임(fwn)은 HMD (851)에서 제공되는 XR 디스플레이를 포함하는 일련의 프레임들 중 한 프레임으로서 HMD (851) 상에 디스플레이된다.
본 개시의 다른 부분에서 언급되는 바와 같이, 본 개시에 따른 특정 실시 예들은 상기 전자 디바이스(801)와 HMD(851)를 연결하는 링크 (예를 들어, 도 3의 링크 (315))에서의 부하를 감소시키는 것과 동시에 상기 HMD로 제공되는 픽셀들의 (상기 픽셀들의 최신성을 제공하고 압축을 통한 데이터 손실을 방지하는 측면에서의) 품질을 개선시키는 두 가지 기술적 이점들을 제공한다. 특정 실시 예들에 따르면, 이러한 기술적 이점들은 상기 전자 디바이스(801)에서 HMD(851)로 차등 프레임들을 송신하고, 상기 HMD(851)에서 전자 디바이스(801)로 포즈 데이터를 송신하여 상기 차등 프레임의 최신성을 개선시킴으로써 제공되며, 그렇다고 이에 제한되는 것은 아니다. 이러한 방식으로, 상기 전자 디바이스(801)에서 렌더링되는 픽셀들은 보다 최근의 헤드 포즈 데이터를 기반으로 렌더링되고, 이에 따라 상기 렌더링된 프레임과 이미지 재생 워프에 의해 조정된 프레임 간의 프레임-오버-프레임 차이를 감소시켜 헤드 포즈에서의 추후의 변경들을 고려할 수 있다.
동작 825에서, 상기 전자 디바이스(801)는 상기 전자 디바이스(801)의 메모리로부터 이전 프레임(fn-1)을 획득함으로써, HMD(851)로 송신될 차등 프레임을 생성하는 프로세스를 시작한다. 이 비-제한적인 예제에서, 이전 프레임(fn-1)은 포즈 데이터(pX)보다 빠른 시간과 연관된다. 특정 실시 예들에 따르면, 전자 디바이스는 블록 830에서 HMD (851)로부터 포즈 데이터(pX)를 수신한다.
특정 실시 예들에 따르면, 동작 835에서, 전자 디바이스(801)는 상기 전자 디바이스(801)에서 (fwn)의 복사본을 생성하기 위해 포즈 데이터 (pX)를 기반으로 이전 프레임(fn-1)의 이미지 재생 워프를 수행하며, 이 예시적인 예제에서, (fwn)의 복사본은 이전 프레임(fn-1) 보다 더 최근의 포즈 데이터 (pX)와 동일한 시간과 연관된다.
동작 840에서, 전자 디바이스(801)는 XR 디스플레이를 제공하는 일련의 프레임들의 일부로서 프레임 (fwn) 에 이어 상기 HMD에 디스플레이될 포즈-조정된 프레임의 기본 이미지 데이터를 포함하는 새로운 프레임(fn)을 렌더링한다.
일부 실시 예들에서, 동작 845에서, 상기 전자 디바이스(801)는 본 개시의 수학식 1 및 수학식 2에 제시된 관계를 적용함으로써 차등 프레임(fdn)을 생성한다. 구체적으로, 동작 845에서, 상기 전자 디바이스(801)는 새로운 프레임(fn)과 기준 프레임 (fwn)에 공통된 픽셀들 간의 차 연산을 수행하여 새로운 프레임(fn)에 대해 고유한 픽셀들의 서브 집합을 포함하는 차등 프레임(fdn)을 생성한다. 도면에 도시되어 있는 바와 같이, 상기 차등 프레임(fdn)의 내용은 상기 수학식 (fdn = fn - fwn)에 의해 나타내질 수 있다.
동작 850에서, 전자 디바이스는 차등 프레임 (fdn) 을 HMD (851)로 송신하고, 차등 프레임(fdn)은 동작 860에서 HMD(851)에서 수신된다. 일부 실시 예들에 따르면, 동작 865에서, 새로운 프레임(fn)은 fwn + fdn 로 재구성되고, 프로세스(800)는 새로운 포즈 데이터로 반복된다.
도 9는 본 개시의 특정 실시 예들에 의해 실현되는 기술적 이점들의 측면들을 도시하고 있다. 도 9에 도시되어 있는 예제들은 단지 예시만을 위한 것이며, 다른 예제들이 본 개시의 범위를 벗어남이 없이 사용될 수 있다.
본 개시의 다른 부분에서 언급되는 바와 같이, 일부 실시 예들에서, 상기 전자 디바이스 (예를 들어, 도 7a의 전자 디바이스(701))와 상기 HMD (예를 들어, 도 8의 HMD(851)) 사이에는 데이터의 양방향 플로우(two-way flow)가 존재하며, 여기서 상기 전자 디바이스는 상기 HMD로 차등 프레임들 (전체 프레임들과 반대되는)을 송신하고, 상기 HMD는 상기 전자 디바이스로 포즈 데이터를 송신한다. 차등 프레임들을 송신함으로써, 상기 HMD로부터 송신되는 데이터의 볼륨은 이미지 데이터의 전체 프레임들을 송신하는 것에 비해 감소된다. 추가적으로, 상기 HMD로부터 상기 전자 디바이스로 포즈 데이터를 송신하는 것은 상기 전자 디바이스에 의해 출력되는 차등 프레임들의 최신성(recency)을 개선시킨다. 이미지 재투영 워프 (예를 들어, 도 7b의 이미지 재투영 워프(730))를 통해 기준 프레임을 업데이트하기 위해 데이터를 제공하는 것 이외에도, 상기 포즈 데이터(예를 들어, 포즈 데이터(767))는, 특정 실시 예들에서, 상기 렌더링 단계에서 상기 포즈 조정들 (예를 들어, 상기 이미지의 3차원 회전 혹은 변환)을 수행하기 위해 렌더링 엔진(rendering engine)(예를 들어, 렌더링 엔진(710))으로 제공될 수 있다. 이런 방식으로, 새로운 프레임들은 픽셀들이 전자 디바이스에서렌더링되는 시점 및 상기 HMD에서 포즈 조정을 위해 가용하게 되는 시점 사이의 기간 (예를 들어, 도 6의 기간(665))에서 발생하는 포즈의 변경들에 대해 상기 HMD에서 더 적은 조정을 필요로 한다.
새로운 프레임 (901)의 일 예가 도 9의 맨 왼쪽에 도시되어 있다. 이 예시적인 예제에서, 새로운 프레임 (901)은 상기 HMD로부터의 최근 헤드 포즈 데이터(예를 들어, 도 7a의 헤드 포즈 데이터 (767))를 기반으로 상기 렌더링 엔진 (예를 들어, 도 7a의 렌더링 엔진 (710))에 의해 수행되는 헤드 포즈에 대한 임의의 정정 이전의, XR 디스플레이에 대한 디지털 콘텐트의 새로운 프레임을 포함한다.
상기 프레임 (903)은 상기 렌더링된 이미지의 관점을 가장 최근의 가용한 포즈 데이터에 맞추기 위한 상기 렌더링된 이미지의 어떠한 조정도 수행하지 않는 렌더링 엔진 또는 그래픽 파이프 라인(graphics pipeline)으로부터의 출력으로서 상기 새로운 프레임을 보여주고 있다.
도 9의 설명을 위한 시각화 내에서 오른쪽을 향해 이동하면, 박스(905)는 상기 HMD에서 수행되는 포즈 조정 다음의 프레임 (907) (예를 들어, 도 7a의 조정된 새로운 프레임(771))에 대한 정정되지 않은 프레임(903)의 중첩(superposition)을 보여주고 있다. 도 9에 도시되어 있는 바와 같이, 프레임 (903)과 프레임(907) 사이의 가시적 쉬프트(shift)가 존재한다. 이 예제에서, 상기 원래의 렌더링된 프레임 (903)의 픽셀들의 71%는 HMD 포즈-조정된 프레임 (907)의 픽셀들에 매핑된다.
새로운 프레임 (901)이 상기 HMD에 의해 제공되는 가장 최근의 포즈 데이터를 처리하기 위해 상기 전자 디바이스에서 조정된 프레임 (909)의 일 예가 도 9의 하단 중앙에 도시되어 있다. 도 9 내에서 오른쪽을 향해 이동하면, 상기 박스(911)는 상기 HMD 포즈-조정된 프레임 (907)에 대한 정정되지 않은 프레임 (903)의 중첩을 보여주고 있다. 도 9에 도시되어 있는 바와 같이, 상기 두 개의 프레임들은 상기 박스(905)에 도시되어 있는 예제보다 더 가까운 공간 정렬(spatial alignment)로 존재한다. 이 예제에서, 상기 포즈-조정된 프레임(909)의 픽셀들 중 85%는 HMD 포즈-조정된 프레임 (907)의 픽셀들에 매핑된다. 특정 실시 예들에서, 상기 전자 디바이스에 의해 제공되는 프레임과 상기 HMD에서 정정되는 프레임 사이의 대응성(correspondence)에 있어서 상기에서 설명한 바와 같은 개선은 상기 HMD의 필요로 되는 계산 작업에서의 감소 및 XR 디스플레이를 제공하는 시스템으로서 상기 전자 디바이스-HMD 페어의 성능에서의 전반적인 개선을 의미한다.
도 10a는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키는 방법(1000)의 동작들의 일 예를 도시하고 있다. 이 비-제한적인 예제에서, 상기 방법(1000)의 동작들은 HMD (일 예로, 도 7a 및 도 7b의 HMD(751))에 통신적으로 연결되어 있는 단일 컴퓨팅 플랫폼(computing platform)(예를 들어, 도 1의 전자 디바이스(100))에서 수행된다. 상기 플로우차트가 일련의 순차적 단계들을 도시하고 있을지라도, 명시적으로 언급하지 않는 한, 특정 순서의 수행, 동시 또는 오버랩 방식 보다는 순차적인 단계들의 수행 혹은 상기 단계들의 일부분들의 수행, 혹은 중간(intervening 혹은 intermediate) 단계들의 발생없이 배타적으로 도시되어 있는 단계들의 수행에 관한 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 상기 도시되어 있는 예제에서 설명되는 프로세스는 일 예로, 전자 디바이스의 프로세서에 의해 구현된다.
동작 1005에서, 상기 전자 디바이스는 제1 시간과 연관되는 픽셀들의 제1 집합을 포함하는 제1 기준 프레임(예를 들어, 도 7a의 기준 프레임(725))을 획득한다.
특정 실시 예들에 따르면, 동작 1010에서, 상기 전자 디바이스 또는 그 컴포넌트 (예를 들어, 도 7a의 렌더링 엔진(710))는 소스 이미지를 새로운 프레임 (예를 들어, 도 8의 동작 840에서 생성되는 새로운 프레임 혹은 도 7a의 새로운 프레임(715))으로 렌더링하고, 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 HMD에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함한다. 일부 실시 예들에서, 상기 새로운 프레임의 픽셀들은 렌더링과 상기 HMD에서의 디스플레이 사이의 포즈에서의 하나 혹은 그 이상의 중간 변화들을 처리하기 위해 재투영된다.
동작 1015에서, 상기 전자 디바이스는 상기 새로운 프레임에 대해 고유한 상기 새로운 프레임의 픽셀들을 식별하기 위해 상기 기준 프레임과 상기 새로운 프레임 간의 차 연산(difference operation)을 기반으로 차등 프레임(예를 들어, 도 7a의 차등 프레임(735) 또는 도 8의 동작 845에서 생성되는 차등 프레임)을 생성한다.
다양한 실시 예들에 따르면, 동작 1020에서, 상기 차등 프레임은 상기 두 개의 디바이스들을 연결하는 링크 (예를 들어, 도 3의 링크(315))를 통해 상기 전자 디바이스로부터 상기 HMD로 송신된다.
또한, 동작 1025에서, 상기 새로운 프레임은 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장된다.
도 10b는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키는 방법들의 추가적인 동작들을 도시하고 있다. 도 10b를 참조하여 설명되는 동작들은 특정 실시 예들에서 도 10a에서 설명된 방법(1000)에 통합된다. 상기 플로우차트가 일련의 순차적 단계들을 도시하고 있을지라도, 명시적으로 언급하지 않는 한, 특정 순서의 수행, 동시 또는 오버랩 방식 보다는 순차적인 단계들의 수행 혹은 상기 단계들의 일부분들의 수행, 혹은 중간(intervening 혹은 intermediate) 단계들의 발생없이 배타적으로 도시되어 있는 단계들의 수행에 관한 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 상기 도시되어 있는 예제에서 설명되는 프로세스는 일 예로, 전자 디바이스의 프로세서에 의해 구현된다.
도 10b의 비-제한적인 예제를 참조하면, 일부 실시 예들에서, 전자 디바이스는 상기 렌더링 프로세스의 일부로서, 소스 이미지의 3차원 회전 또는 변환을 수행하여 상기 렌더링된 이미지를 최근 헤드 포즈 데이터로 "사전 조정"한다. 도 9의 예제를 통해 도시되어 있는 바와 같이, 상기 렌더링 단계 동안의 상기와 같은 조정들은 상기 HMD에서 계산 부하(computational load)를 감소시킬 수 있다.
특정 실시 예들에 따르면, 동작 1055에서, 상기 전자 디바이스는 상기 HMD로부터 헤드 포즈 데이터 (예를 들어, 도 7a 및 도 7b의 헤드 포즈 데이터(767))를 수신한다. 일부 실시 예들에서, 상기 수신된 헤드 포즈 데이터는 상기 HMD의 하나 혹은 그 이상의 포즈 추적 센서(pose tracking sensor)들의 출력, 또는 미래 시점에서의 상기 HMD의 포즈에 대한 예측을 포함한다.
동작 1060에서, 상기 전자 디바이스는 상기 전자 디바이스에서 수행되는 렌더링 프로세스(일 예로, 도 7a 및 도 7b에서 렌더링 엔진(710)에 의해 수행되는 프로세스)의 일부로서 동작 1055에서 수신되는 헤드 포즈 데이터를 기반으로 상기 소스 데이터의 3차원 회전 또는 변환을 수행한다.
본 개시의 다른 부분에서 논의되는 바와 같이, 특정 실시 예들에서, 상기 전자 디바이스는 기준 프레임의 최신성(recency)을 개선시키기 위해, 그리고, 암시적으로 상기 HMD에서 수행되어야 할 필요가 있는 개입 포즈 변경(intervening pose change)들에 대한 정정의 양을 감소시키기 위해, 차등 프레임을 생성하기 전에 상기 기준 프레임을 업데이트한다.
도 10c는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키기 위한 방법들의 추가적인 동작들의 다른 예를 도시하고 있다. 도 10b 내지 도 10d를 참조하여 설명되는 상기 추가적인 동작들은, 본 개시에 따른 실시 예들에서, 단독으로 혹은 통신 부하를 감소시키기 위한 방법들 (예를 들어, 도 10a의 방법 1000)과 결합하여 다양하게 결합될 수 있다.
도 10c의 비-제한적인 예제를 참조하면, 동작 1065에서, 상기 전자 디바이스는 상기 전자 디바이스를 상기 HMD에 연결하는 링크를 통해 상기 HMD로부터 헤드 포즈 데이터 (예를 들어, 도 8의 블록 805에서 생성되는 헤드 포즈 데이터)를 수신한다. 다양한 실시 예들에 따르면, 동작 1070에서, 상기 전자 디바이스는 상기 기준 프레임에 대해 이미지 재투영 워프 (예를 들어, 도 7b의 이미지 재투영 워프(730))를 수행함으로써 상기 차등 프레임을 생성하기 전에 상기 제1 기준 프레임을 업데이트한다.
도 10d는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키기 위한 방법들의 추가적인 동작들의 다른 예를 도시하고 있다. 다시, 도 10b 내지 도 10d를 참조하여 설명되는 상기 추가적인 동작들은, 본 개시에 따른 실시 예들에서, 단독으로 혹은 통신 부하를 감소시키기 위한 방법들 (예를 들어, 도 10a의 방법 1000)과 결합하여 다양하게 결합될 수 있다.
본 개시에 따른 특정 실시 예들에서, 상기 전자 디바이스는 자원들을 절약하고 상기 시스템 전체의 효율성을 개선하기 위해 상기 차등 프레임의 사이즈와 같은 팩터들을 기반으로 차등 프레임들을 선택적으로 인코딩한다. 예를 들어, 차등 프레임이 데이터를 거의 포함하지 않는 케이스들에서는, 상기 데이터를 인코딩 및 디코딩하는 것보다는, 상기 차등 프레임을 상기 HMD로 송신하는 것이 보다 효율적일 수 있다. 따라서, 일부 실시 예들에서, 동작 1075에서, 상기 전자 디바이스는 상기 차등 프레임을 송신하기 위한 다수의 인코딩 모드들 중 인코딩 모드를 선택하고, 여기서, 상기 다수의 인코딩 모드들은 상기 차등 프레임을 인코딩하지 않는 것을 포함할 수 있다. 또한, 동작 1080에서, 상기 전자 디바이스는 상기 선택된 인코딩 모드에 따라 상기 차등 프레임을 인코딩한다.
도 11a는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키는 프로세스(1100)의 일 예를 도시하고 있다. 이 예시적인 예제에서, 상기 프로세스(1100)의 동작들은 전자 디바이스에 통신적으로 연결되어 있는 HMD(예를 들어, 도 4의 HMD(405))에서 수행된다. 상기 플로우차트가 일련의 순차적 단계들을 도시하고 있을지라도, 명시적으로 언급하지 않는 한, 특정 순서의 수행, 동시 또는 오버랩 방식 보다는 순차적인 단계들의 수행 혹은 상기 단계들의 일부분들의 수행, 혹은 개입(intervening) 혹은 중간(intermediate) 단계들의 발생없이 배타적으로 도시되어 있는 단계들의 수행에 관한 시퀀스로부터 어떤 추론도 도출되어서는 안 된다. 상기 도시되어 있는 예제에서 설명되는 프로세스는 일 예로, HMD의 프로세서에 의해 구현된다.
도 11a의 비-제한적인 예제를 참조하면, 동작 1105 (예를 들어, 도 8의 동작 860)에서 상기 HMD는 전자 디바이스로부터 차등 프레임을 수신하며, 상기 차등 프레임은 상기 HMD에서 디스플레이될 새로운 프레임에 대해 고유한 픽셀들을 포함한다.
특정 실시 예들에서, 동작 1110에서, 상기 HMD는 상기 HMD의 메모리 (예를 들어, 메모리(213))로부터 제1 기준 프레임(예를 들어, 도 7a의 기준 프레임(761))을 획득한다. 특정 실시 예들에서, 상기 제1 기준 프레임은 상기 전자 디바이스로부터 이전에 수신된 포즈-조정된(pose-adjusted) 프레임을 포함한다.
도 11a의 비-제한적인 예제에 도시되어 있는 바와 같이, 동작 1115에서, 상기 HMD는 상기 HMD의 하나 혹은 그 이상의 센서들(예를 들어, 도 2의 IMU (215))로부터 헤드 포즈 데이터(예를 들어, 도 8의 포즈 데이터(px))를 획득한다.
특정 실시 예들에서, 동작 1120에서, 상기 HMD는 (예를 들어, 도 7a의 블록 763에 도시되어 있는 바와 같이), 여기에서의 수학식 2에서 설명된 바와 같은 관계를 적용함으로써 상기 차등 프레임과 상기 기준 프레임을 결합하여 새로운 프레임을 생성 혹은 재구성한다.
도 11a의 설명을 위한 예제를 참조하면, 동작 1125에서, 상기 HMD는 동작 1115에서 획득된 헤드 포즈 데이터를 기반으로 이미지 재투영 워프(image reprojection warp)(예를 들어, 도 7a의 블록 769 또는 도 8의 블록 815에서의 이미지 재투영 워프)를 수행하고, 따라서 상기 현재의 헤드 포즈 데이터에 따라 상기 새로운 이미지를 조정할 수 있다.
본 개시에 따른 일부 실시 예들에서, 동작 1130에서, 상기 HMD는 상기 HMD의 디스플레이(예를 들어, 도 2의 디스플레이(207))에 상기 포즈-조정된 새로운 프레임을 출력한다.
도 11b는 본 개시의 특정 실시 예들에 따른 손실 없는 데이터 감소를 통해 통신 부하를 감소시키는 방법들(일 예로, 도 11a의 프로세스(1100))의 추가적인 동작들의 예제들을 도시하고 있다. 도 11b 및 도 11c의 예제들에서 설명되는 추가적인 동작들은 다양한 실시 예들에 따라, 단독으로 혹은 본 개시의 특정 실시 예들에 따른 통신 부하를 감소시키기 위한 방법들과 함께 다양하게 결합될 수 있다. 도 11b 및 도 11c의 예시적인 예제들에서, 상기 설명되는 동작들은 HMD(예를 들어, 도 8의 HMD(851))에서 수행된다.
도 11b의 비-제한적인 예제를 참조하면, 동작 1150에서, 상기 HMD는 상기 링크를 통해 상기 전자 디바이스로 헤드 포즈 데이터(예를 들어, 도 7b의 헤드 포즈 데이터(767))를 송신한다.
특정 실시 예들에 따르면, 동작 1155에서, 상기 HMD의 현재 포즈와 연관되는 데이터에 대해 새로운 프레임을 조정하기 위해 상기 새로운 프레임의 이미지 재투영 워프(예를 들어, 도 8의 블록 815에서 수행되는 이미지 재투영 워프)를 수행한 다음, 상기 HMD는 상기 포즈-조정된 새로운 프레임(예를 들어, 도 7a의 새 프레임(771))을 기준 프레임으로서 저장한다.
도 11c는 본 개시의 다양한 실시 예들에 따른 HMD에서 수행되는 추가적인 동작들의 일 예를 도시하고 있다. 동작 1160에서, 상기 HMD는 상기 전자 디바이스로부터 수신되는 차등 프레임에 적용되는 인코딩 모드(encoding mode)를 식별하고, 동작 1165에서 상기 식별된 인코딩 모드에 따라 상기 인코딩된 차등 프레임을 디코딩한다.
본 출원의 상세한 설명 중 어떤 것이라도 특정 엘리먼트, 단계 또는 기능이 청구되는 범위에 포함되어야만 하는 필수 엘리먼트를 암시하는 것으로 읽혀서는 안될 것이다.
100: 디바이스, 110: 통신 유닛, 115: 송신 프로세싱 회로, 120: 마이크로폰, 125: 수신 프로세싱 회로, 130: 스피커, 140: 메인 프로세서, 145: 입/출력 인터페이스, 150: 입/출력 디바이스(들), 160: 메모리

Claims (30)

  1. 데이터 감소 방법에 있어서,
    헤드 마운티드 디스플레이(head mounted display: HMD)에 연결되어 있는 전자 디바이스의 메모리로부터, 제1 기준 프레임을 획득하는 과정, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함하고;
    상기 전자 디바이스에서, 소스 이미지(source image)를 새로운 프레임으로 렌더링하는(rendering) 과정, 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 HMD에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고;
    상기 전자 디바이스가, 차등 프레임(differential frame)을 생성하는 과정, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하며;
    상기 차등 프레임을 상기 HMD로 송신하는 과정; 및
    상기 새로운 프레임을 상기 전자 디바이스의 메모리에 제2 기준 프레임으로 저장하는 과정을 포함하는 데이터 감소 방법.
  2. 제1항에 있어서,
    상기 전자 디바이스에서 상기 HMD로부터 헤드 포즈 데이터(head pose data)를 수신하는 과정을 더 포함하며,
    상기 새로운 프레임을 렌더링하는 과정은 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 회전을 수행하는 과정, 또는 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 변환을 수행하는 과정 중 적어도 하나를 포함하는 데이터 감소 방법.
  3. 제2항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 데이터 감소 방법.
  4. 제1항에 있어서,
    상기 전자 디바이스는 상기 제1 시간 이후의 제3 시간과 연관되는 헤드 포즈 데이터를 기반으로 이미지 재투영 워프(image reprojection warp)를 수행함으로써 상기 차등 프레임을 생성하기 전에 상기 제1 기준 프레임을 업데이트하고, 및
    상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 새로운 프레임의 픽셀들과 상기 업데이트된 제1 기준 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하는 데이터 감소 방법.
  5. 제1항에 있어서,
    상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로 다수의 인코딩 모드(encoding mode)들 중 하나를 선택하는 과정; 및
    상기 선택된 인코딩 모드를 사용하여 상기 차등 프레임을 인코딩하는 과정을 더 포함하는 데이터 감소 방법.
  6. 데이터 감소 방법에 있어서,
    헤드 마운티드 디스플레이(head mounted display: HMD)에서, 전자 디바이스로부터 차등 프레임(differential frame)을 수신하는 과정, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함하고;
    상기 HMD의 메모리로부터 제1 기준 프레임을 획득하는 과정;
    상기 HMD의 모션 센서(motion sensor)로부터 헤드 포즈 데이터(head pose data)를 획득하는 과정;
    상기 HMD에서 상기 제1 기준 프레임과 상기 차등 프레임을 결합하여 상기 새로운 프레임을 생성하는 과정;
    상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하는 과정; 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력하는 과정을 포함하는 데이터 감소 방법.
  7. 제6항에 있어서,
    상기 HMD가 상기 헤드 포즈 데이터를 상기 전자 디바이스로 송신하는 과정; 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 제2 기준 프레임으로 저장하는 과정을 더 포함하는 데이터 감소 방법.
  8. 제7항에 있어서,
    상기 차등 프레임은 상기 HMD로부터 이전에 송신된 헤드 포즈 데이터를 기반으로 하는 상기 새로운 프레임에 대한 보정을 기반으로 하는 데이터 감소 방법.
  9. 제6항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 데이터 감소 방법.
  10. 제6항에 있어서,
    상기 전자 디바이스로부터 수신되는 상기 차등 프레임에 적용되는 인코딩 모드(encoding mode)를 식별하는 과정; 및
    상기 식별된 인코딩 모드에 따라 상기 차등 프레임을 디코딩하는 과정을 더 포함하며,
    상기 인코딩 모드는 상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로 하는 데이터 감소 방법.
  11. 전자 디바이스에 있어서,
    적어도 하나의 프로세서; 및
    인스트럭션(instruction)들을 포함하는 메모리를 포함하며, 상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 디바이스가:
    상기 메모리로부터 제1 기준 프레임을 획득하고, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함하고,
    소스 이미지(source image)를 새로운 프레임으로 렌더링하고(rendering), 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 전자 디바이스에 통신적으로 연결되어 있는 헤드 마운티드 디스플레이(head mounted display: HMD)에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고,
    차등 프레임(differential frame)을 생성하고, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하며,
    상기 차등 프레임을 상기 HMD로 송신하고, 및
    상기 새로운 프레임을 상기 메모리에 제2 기준 프레임으로 저장하도록 하는 전자 디바이스.
  12. 제11항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 디바이스가:
    상기 HMD로부터 헤드 포즈 데이터(head pose data)를 수신하도록 하며,
    상기 새로운 프레임을 렌더링하는 것은 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 회전을 수행하는 것, 또는 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 변환을 수행하는 것 중 적어도 하나를 포함하는 전자 디바이스.
  13. 제12항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 전자 디바이스.
  14. 제11항에 있어서,
    상기 전자 디바이스는 상기 제1 시간 이후의 제3 시간과 연관되는 헤드 포즈 데이터를 기반으로 이미지 재투영 워프(image reprojection warp)를 수행함으로써 상기 차등 프레임을 생성하기 전에 상기 제1 기준 프레임을 업데이트하고, 및
    상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 새로운 프레임의 픽셀들과 상기 업데이트된 제1 기준 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하는 전자 디바이스.
  15. 제11항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 디바이스가:
    상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로 다수의 인코딩 모드(encoding mode)들 중 하나를 선택하고, 및
    상기 선택된 인코딩 모드를 사용하여 상기 차등 프레임을 인코딩하도록 하는 전자 디바이스.
  16. 헤드 마운티드 디스플레이(head mounted display: HMD)에 있어서,
    모션 센서(motion sensor);
    적어도 하나의 프로세서; 및
    인스트럭션(instruction)들을 포함하는 메모리를 포함하며, 상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 HMD가:
    전자 디바이스로부터 차등 프레임(differential frame)을 수신하고, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함하고,
    상기 메모리로부터 제1 기준 프레임을 획득하고,
    상기 모션 센서로부터 헤드 포즈 데이터(head pose data)를 획득하고,
    상기 제1 기준 프레임과 상기 차등 프레임을 결합하여 상기 새로운 프레임을 생성하고,
    상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하고, 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력하도록 하는 HMD.
  17. 제16항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 HMD가:
    상기 헤드 포즈 데이터를 상기 전자 디바이스로 송신하고, 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 제2 기준 프레임으로 저장하도록 하는 HMD.
  18. 제17항에 있어서,
    상기 차등 프레임은 이전에 송신된 헤드 포즈 데이터를 기반으로 하는 상기 새로운 프레임에 대한 보정을 기반으로 하는 HMD.
  19. 제16항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 HMD.
  20. 제16항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 HMD가:
    상기 전자 디바이스로부터 수신되는 상기 차등 프레임에 적용되는 인코딩 모드(encoding mode)를 식별하고, 및
    상기 식별된 인코딩 모드에 따라 상기 차등 프레임을 디코딩하도록 하며,
    상기 인코딩 모드는 상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로하는 HMD.
  21. 인스트럭션(instruction)들을 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체에 있어서,
    상기 인스트럭션들은 적어도 하나의 프로세서에 의해 실행될 때 전자 디바이스가:
    상기 전자 디바이스의 메모리로부터 제1 기준 프레임을 획득하고, 여기서 상기 제1 기준 프레임은 제1 시간과 연관되는 픽셀들의 제1 집합을 포함하고,
    소스 이미지(source image)를 새로운 프레임으로 렌더링하고(rendering), 여기서 상기 새로운 프레임은 상기 제1 시간 이후의 제2 시간에서 상기 전자 디바이스에 통신적으로 연결되어 있는 헤드 마운티드 디스플레이(head mounted display: HMD)에 의해 제공될 디스플레이와 연관되는 픽셀들의 제2 집합을 포함하고,
    차등 프레임(differential frame)을 생성하고, 여기서 상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 제1 기준 프레임의 픽셀들과 상기 새로운 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하며,
    상기 차등 프레임을 상기 HMD로 송신하고, 및
    상기 새로운 프레임을 상기 메모리에 제2 기준 프레임으로 저장하도록 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  22. 제21항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 디바이스가:
    상기 HMD로부터 헤드 포즈 데이터(head pose data)를 수신하도록 하며,
    상기 새로운 프레임을 렌더링하는 것은 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 회전을 수행하는 것, 또는 상기 헤드 포즈 데이터를 기반으로 상기 소스 이미지의 3차원 변환을 수행하는 것 중 적어도 하나를 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  23. 제22항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  24. 제21항에 있어서,
    상기 전자 디바이스는 상기 제1 시간 이후의 제3 시간과 연관되는 헤드 포즈 데이터를 기반으로 이미지 재투영 워프(image reprojection warp)를 수행함으로써 상기 차등 프레임을 생성하기 전에 상기 제1 기준 프레임을 업데이트하고, 및
    상기 차등 프레임은 상기 새로운 프레임에 대해 고유한 픽셀들을 식별하기 위해 상기 새로운 프레임의 픽셀들과 상기 업데이트된 제1 기준 프레임의 픽셀들간의 차 연산(difference operation)을 기반으로 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  25. 제21항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 전자 디바이스가:
    상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로 다수의 인코딩 모드(encoding mode)들 중 하나를 선택하고, 및
    상기 선택된 인코딩 모드를 사용하여 상기 차등 프레임을 인코딩하도록 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  26. 인스트럭션(instruction)들을 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체에 있어서,
    상기 인스트럭션들은 적어도 하나의 프로세서에 의해 실행될 때 헤드 마운티드 디스플레이(head mounted display: HMD)가:
    전자 디바이스로부터 차등 프레임(differential frame)을 수신하고, 여기서 상기 차등 프레임은 새로운 프레임에 대해 고유한 픽셀들의 집합을 포함하고,
    상기 HMD의 메모리로부터 제1 기준 프레임을 획득하고,
    상기 HMD의 모션 센서로부터 헤드 포즈 데이터(head pose data)를 획득하고,
    상기 제1 기준 프레임과 상기 차등 프레임을 결합하여 상기 새로운 프레임을 생성하고,
    상기 헤드 포즈 데이터를 기반으로 상기 새로운 프레임에 대해 이미지 재투영 워프(image reprojection warp)를 수행하고, 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 상기 HMD의 디스플레이로 출력하도록 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  27. 제26항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 HMD가:
    상기 헤드 포즈 데이터를 상기 전자 디바이스로 송신하고, 및
    상기 이미지 재투영 워프를 수행한 후, 상기 새로운 프레임을 제2 기준 프레임으로 저장하도록 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  28. 제27항에 있어서,
    상기 차등 프레임은 이전에 송신된 헤드 포즈 데이터를 기반으로 하는 상기 새로운 프레임에 대한 보정을 기반으로 함을 특징으로 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  29. 제26항에 있어서,
    상기 헤드 포즈 데이터는 예측된 헤드 포즈를 포함하는 비-일시적 컴퓨터-판독 가능 저장 매체.
  30. 제26항에 있어서,
    상기 인스트럭션들은 상기 적어도 하나의 프로세서에 의해 실행될 때 상기 HMD가:
    상기 전자 디바이스로부터 수신되는 상기 차등 프레임에 적용되는 인코딩 모드(encoding mode)를 식별하고, 및
    상기 식별된 인코딩 모드에 따라 상기 차등 프레임을 디코딩하도록 하며,
    상기 인코딩 모드는 상기 차등 프레임의 사이즈 또는 상기 HMD로부터 상기 전자 디바이스에 의해 수신되는 헤드 포즈 데이터 중 적어도 하나를 기반으로 함을 특징으로 하는 비-일시적 컴퓨터-판독 가능 저장 매체.
KR1020200139420A 2020-04-07 2020-10-26 손실 없는 데이터 감소를 통해 통신 부하를 감소하기 위한 방법, 장치 및 저장 매체 KR20210125403A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2020/015748 WO2021206251A1 (en) 2020-04-07 2020-11-11 System and method for reduced communication load through lossless data reduction

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063006490P 2020-04-07 2020-04-07
US63/006,490 2020-04-07
US16/990,779 US20210311307A1 (en) 2020-04-07 2020-08-11 System and method for reduced communication load through lossless data reduction
US16/990,779 2020-08-11

Publications (1)

Publication Number Publication Date
KR20210125403A true KR20210125403A (ko) 2021-10-18

Family

ID=77921938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200139420A KR20210125403A (ko) 2020-04-07 2020-10-26 손실 없는 데이터 감소를 통해 통신 부하를 감소하기 위한 방법, 장치 및 저장 매체

Country Status (2)

Country Link
US (1) US20210311307A1 (ko)
KR (1) KR20210125403A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB202012559D0 (en) 2020-08-12 2020-09-23 Samsung Electronics Co Ltd Reducing latency between receiving user input and displaying resulting frame

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030063043A1 (en) * 2001-09-28 2003-04-03 Girard Luke E. Method and apparatus for wireless headset video interface
EP3236211A1 (en) * 2016-04-21 2017-10-25 Thomson Licensing Method and apparatus for estimating a pose of a rendering device
US11017712B2 (en) * 2016-08-12 2021-05-25 Intel Corporation Optimized display image rendering
US10795435B2 (en) * 2018-07-19 2020-10-06 Samsung Electronics Co., Ltd. System and method for hybrid eye tracker
US11127214B2 (en) * 2018-09-17 2021-09-21 Qualcomm Incorporated Cross layer traffic optimization for split XR

Also Published As

Publication number Publication date
US20210311307A1 (en) 2021-10-07

Similar Documents

Publication Publication Date Title
US11838518B2 (en) Reprojecting holographic video to enhance streaming bandwidth/quality
EP3695383B1 (en) Method and apparatus for rendering three-dimensional content
US10241470B2 (en) No miss cache structure for real-time image transformations with data compression
JP6898430B2 (ja) 仮想現実および拡張現実ディスプレイシステムのための連続時間ワーピングおよび両眼時間ワーピングおよび方法
US10672368B2 (en) No miss cache structure for real-time image transformations with multiple LSR processing engines
KR102474088B1 (ko) 이미지를 합성하기 위한 방법 및 디바이스
US20160238852A1 (en) Head mounted display performing post render processing
US20140152676A1 (en) Low latency image display on multi-display device
CN109845275B (zh) 用于视场虚拟现实流传输的会话控制支持的方法和装置
US20210368152A1 (en) Information processing apparatus, information processing method, and program
US20220189105A1 (en) 3d Conversations in An Artificial Reality Environment
US20200029057A1 (en) Systems and methods for correcting color separation in field-sequential displays
KR20210138484A (ko) 깊이 맵 복구를 위한 시스템 및 방법
US10572764B1 (en) Adaptive stereo rendering to reduce motion sickness
US20220172440A1 (en) Extended field of view generation for split-rendering for virtual reality streaming
US20210311307A1 (en) System and method for reduced communication load through lossless data reduction
US20190310818A1 (en) Selective execution of warping for graphics processing
US20220222888A1 (en) Reduction of the effects of latency for extended reality experiences
CN114860062A (zh) 图像的显示方法、装置、可读介质和电子设备
US11048082B1 (en) Wireless bandwidth reduction with display data interleaving
WO2021206251A1 (en) System and method for reduced communication load through lossless data reduction
US20230412724A1 (en) Controlling an Augmented Call Based on User Gaze
US20240073376A1 (en) Authentic Eye Region Capture through Artificial Reality Headset
CN117063473A (zh) 3d对象的流传输方法、装置和程序