KR20220093985A - 이미지 지연 보정 방법 및 이를 이용한 장치 - Google Patents

이미지 지연 보정 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR20220093985A
KR20220093985A KR1020200185211A KR20200185211A KR20220093985A KR 20220093985 A KR20220093985 A KR 20220093985A KR 1020200185211 A KR1020200185211 A KR 1020200185211A KR 20200185211 A KR20200185211 A KR 20200185211A KR 20220093985 A KR20220093985 A KR 20220093985A
Authority
KR
South Korea
Prior art keywords
data
image
pose
time point
processor
Prior art date
Application number
KR1020200185211A
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 KR1020200185211A priority Critical patent/KR20220093985A/ko
Priority to US17/350,541 priority patent/US11514560B2/en
Publication of KR20220093985A publication Critical patent/KR20220093985A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/398Synchronisation thereof; Control thereof
    • 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/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/147Digital output to display device ; Cooperation and interconnection of the display device with other functional units using display panels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/80Geometric correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G3/00Control arrangements or circuits, of interest only in connection with visual indicators other than cathode-ray tubes
    • G09G3/007Use of pixel shift techniques, e.g. by mechanical shift of the physical pixels or by optical shift of the perceived pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/37Details of the operation on graphic patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • 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]
    • H04N13/344Displays for viewing with the aid of special glasses or head-mounted displays [HMD] with head-mounted left-right displays
    • 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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/10Special adaptations of display systems for operation with variable images
    • G09G2320/106Determination of movement vectors or equivalent parameters within the image
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/14Solving problems related to the presentation of information to be displayed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2350/00Solving problems of bandwidth in display systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)
  • Geometry (AREA)

Abstract

전자 장치는 메모리, 통신 모듈, 및 프로세서를 포함하고, 프로세서는 외부 장치로부터 프레임 별 시점이 기록된 제 1 이미지를 수신하고, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하고, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하고, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈(pose)를 연산하고, 연산된 스캔 라인 별 포즈에 기초하여 스캔 라인 별 픽셀 시프트(pixel shift)를 연산하고, 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하고, 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하도록 설정될 수 있다.

Description

이미지 지연 보정 방법 및 이를 이용한 장치{METHOD FOR IMAGE LATENCY CORRECTION AND DEVICE USING SAME}
증강 현실 구현에 있어서, 이미지 지연 보정 방법 및 이를 이용한 장치에 관한 것이다.
증강 현실(augmented reality, AR) 또는 가상 현실(virtual reality)을 구현하여 사용자에게 제공하는 기술은 다양한 분야에서 활용되고 있다. 사용자의 움직임에 따라 6DoF(degrees of freedom)을 반영하여 증강 현실을 구현하는 것은 그래픽 처리 기술의 발전으로 용이해지고 있다.
AR glass와 같이 HMD(head mounted display)의 형태로 구성된 장치 또는 테더드(tethered) 형태로 구성된 장치는 그래픽 처리 장치의 위치가 상이할 수 있다. 예를 들어, HMD의 형태는 AR glass의 전자회로를 통해 그래픽 처리를 하거나 마운트 기어에 장착되는 휴대용 단말기(예: 스마트폰)의 그래픽 처리 장치를 이용할 수 있다. 테더드 형태는 유선 또는 무선으로 AR glass와 통신 연결되어 있는 외부 장치의 그래픽 처리 장치를 이용해 증강 현실의 구현을 위한 그래픽 처리를 할 수 있다.
AR 또는 VR의 HMD 형태는 모션과 디스플레이 간 불일치가 사용자의 몰입을 방해하는 주요 원인이 될 수 있다. 모션 및 디스플레이 간 시차는 모션 투 포톤 지연(motion to photon latency)으로 최소화 시키기 위한 이미지 보정 방법이 필요할 수 있다. 이미지 지연 보정을 위한 방법은 렌더링된(rendered) 이미지가 디스플레이 되는 시점의 헤드 모션을 이용할 수 있다.
이미지 지연 보정을 위해 도입된 기술은 타임워핑(timewarping)으로 지칭될 수 있다. 타임워핑은 렌더링 전후의 헤드 오리엔테이션(head orientation)을 보상하여 이미지 지연을 보상하는 것이다. 종래의 타임워핑은 헤드 오리엔테이션의 6DoF 보상에 있어서 리프로젝션(reprojection)의 연산이 복잡하여 프로세서에 과중한 부하를 야기할 수 있고, 이동(translation)에 대한 보정에 한계가 존재할 수 있다.
일 실시 예에 따른 전자 장치는 메모리, 통신 모듈, 및 프로세서를 포함하고, 프로세서는 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하고, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하고, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하고, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈(pose)를 연산하고, 연산된 스캔 라인 별 포즈에 기초하여 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하고, 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하고, 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하도록 설정될 수 있다.
일 실시 예에 따른 증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈에 기초하여 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
일 실시 예에 따른 증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 뎁스 버퍼를 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈 및 각 픽셀의 뎁스에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
일 실시 예에 따른 증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 대표 뎁스값을 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈 및 대표 뎁스값에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
이미지 지연 보정 방법은 리프로젝션을 수행함에 있어서 6DoF 관련 데이터의 차(difference)를 이용해 미분(differentiation)하여 연산 과정을 줄일 수 있다. 이미지 수신 후 렌더링하는 시점과 헤드 마운트 장치를 움직이는 동작 사이의 짧은 시간에서의 연산을 통해 프로세서의 부하를 줄임과 동시에 이동에 대한 보정을 수행할 수 있다.
렌더링하는 시점과 헤드 마운트 장치에 디스플레이되는 시간 차에 따른 지연은 개별 이미지 프레임의 행(row) 별로 스캔을 적용할 수 있다. 예를 들어, 스캔 라인의 디스플레이 타임을 모델링하거나 개별 스캔 라인이 디스플레이될 때의 포즈 변화를 모델링하여 지연을 스캔 라인 별로 보정할 수 있다.
도 1a 및 도 1b는 다양한 실시예에 따른 전자 장치의 연결 방식을 나타내는 예시도이다.
도 2는 다양한 실시예에 따른 전자 장치의 구성요소에 관한 블록도이다.
도 3은 다양한 실시예에 따른 이미지 지연 보정 방법의 기능 수행에 따른 블록 구성의 예시도이다.
도 4는 다양한 실시예에 따른 이미지 지연 보정 방법의 흐름도이다.
도 5는 다양한 실시예에 따른 이미지 지연 보정 방법의 리프로젝션(reprojectioin) 연산에 관한 예시도이다.
도 6a 및 도 6b는 다양한 실시예에 따른 이미지 지연 보정 방법의 포즈 연산에 관한 예시도이다.
도 7a 및 도 7b는 다양한 실시예에 따른 이미지 지연 보정 방법의 픽셀 별 시프트 연산에 관한 예시도이다.
도 8a 및 도 8b는 다양한 실시예에 따른 이미지 지연 보정 방법의 외부 장치 디스플레이에 따른 왜곡 보상 및 이미지 보정의 예시도이다.
실시예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들에서 사용되는 "구성된다" 또는 "포함한다" 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
본 실시예들에서, 어떤 구성요소가 다른 구성요소와 "연결"되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함할 수 있는 것으로 해석되어야 한다.
또한, 본 실시예들에서 사용되는 "제 1" 또는 "제 2" 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 상세히 설명한다. 그러나 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.
도 1a 및 도 1b는 다양한 실시예에 따른 전자 장치의 연결 방식을 나타내는 예시도이다.
도 1a를 참조하면, 전자 장치는 AR glass(100)와 일체로 결합되어 구성될 수 있다. 예를 들어, 전자 장치는 AR glass(100)의 적어도 일부 영역에 전자 회로의 형태로 부착되거나 적어도 일부 영역에 내장되어 결합될 수 있다. 전자 장치는 AR glass(100)의 프로세서와 물리적 및/또는 전기적으로 가까운 위치에서 연결되어 그래픽과 관련한 연산을 빠르게 처리할 수 있다. 그래픽과 관련된 연산은 AR glass(100)를 통해 촬영되는 이미지에 관한 픽셀 당 처리, AR glass(100) 및/또는 전자 장치의 사용자의 움직임과 관련된 그래픽 처리, 또는 방향 및 움직임에 따른 이미지 처리를 포함할 수 있다.
도 1a를 참조하면, 전자 장치는 타임워핑 프로세싱 유닛(timewarping processing unit)(110) 및 GPU(graphic processing unit)(111)를 포함할 수 있다. 예를 들어, 전자 장치는 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA)에 설계되어 AR glass(100)에 포함될 수 있다. 전자 장치는 AR glass(100)와 일체로 결합되거나 통신 모듈을 통해 통신 연결될 수 있다.
도 1b를 참조하면, 전자 장치는 AR glass(100)와 통신 모듈을 통해 통신 연결될 수 있다. 예를 들어, 전자 장치는 테더드 방식으로 Host(120)에 장착되거나 내장되어 그래픽 연산을 처리할 수 있다. 테더드 방식으로 연결되는 것은 별도의 덱에 의해 장착되는 휴대용 단말기일 수 있고, 별도의 서버일 수 있으며, 연결 방식은 유선 및/또는 무선일 수 있다.
도 1b를 참조하면, 전자 장치는 AR glass(100)와 일체로 결합되지 않고 그래픽과 관련한 연산을 처리할 수 있다. 예를 들어, 전자 장치는 AR glass(100)를 통해 수신한 이미지를 렌더링하고 렌더링 결과를 AR glass(100)로 송신할 수 있다. 전자 장치는 GPU(예: 도 1a의 GPU(111))를 이용하여 그래픽 연산을 처리하고 타임워핑은 AR glass(100)에 포함될 수 있는 타임워핑 프로세싱 유닛(110)을 통해 처리할 수 있다. 다른 예를 들어, 전자 장치는 GPU와 함께 타임워핑 프로세싱 유닛(110)을 포함할 수 있다. 도 1b에 도시된 것은 일 예에 불과할 뿐이며, 타임워핑 프로세싱 유닛(110)은 Host(120)의 일부에 포함되어 GPU를 포함하는 전자 장치의 구성요소가 될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치의 구성요소에 관한 블록도이다.
도 2를 참조하면, 전자 장치(200)는 프로세서(210), 메모리(220), 및 통신 모듈(230)을 포함할 수 있다. 예를 들어, 전자 장치(200)는 그래픽 연산을 처리하는 장치일 수 있다. 전자 장치(200)는 그래픽 처리 유닛을 포함하는 그래픽 연산 장치를 포함할 수 있으며, GPU를 포함하는 전자 회로를 포함할 수 있다. 도 2를 참조하면, 전자 장치(200)의 구성요소는 일 예에 불과하며 도시된 구성요소로 한정되는 것은 아니고 치환되거나 추가될 수 있다.
도 2를 참조하면, 프로세서(210)는 그래픽 처리 유닛(graphic processing unit, GPU)를 포함할 수 있다. 예를 들어, 프로세서(210)는 전자 장치(200)와 통신 연결된 외부 장치로부터 수신되는 이미지에 대하여 그래픽 처리 연산을 수행할 수 있다. 프로세서(210)는 필드 프로그래머블 게이트 어레이(FPGA)를 포함하는 전자 회로의 일부 구성으로 포함될 수 있다.
프로세서(210)는 외부 장치로부터 프레임 별 시점이 기록된 이미지를 수신할 수 있다. 예를 들어, 프로세서(210)는 전자 장치(200)와 통신 연결된 외부 장치가 카메라 모듈을 통해 촬영한 이미지를 수신할 수 있다. 프로세서(210)는 이미지를 수신하여 해당 프레임의 촬영 시점을 판단할 수 있다. 프로세서(210)가 수신한 이미지의 촬영 시점을 판단하는 것은 별도의 타임 스탬프(time stamp)를 이용하거나 외부 장치의 이미지 프로세서로부터 수신하는 것일 수 있다.
프로세서(210)는 수신한 이미지를 렌더링할 수 있다. 예를 들어, 프로세서(210)는 2D 이미지의 수신 후 이미지에 포함된 다양한 데이터를 기초로 하여 3D 이미지로 렌더링할 수 있다. 프로세서(210)는 데이터를 기초로 하여 그림자, 색상, 농도 등의 그래픽 처리를 수행할 수 있다. 프로세서(210)는 수신한 이미지를 렌더링하여 통신 모듈(230)로부터 렌더링한 시점(예: 제 1 시점)의 제 1 데이터를 수신할 수 있다. 예를 들어, 프로세서(210)는 AR glass(예: 도 1b의 AR glass(100))와 테더드 방식으로 연결될 수 있다. 프로세서(210)는 AR glass로부터 수신한 이미지를 렌더링하고 통신 모듈(230)을 통해 AR glass로부터 추가적인 데이터인 제 1 데이터를 수신할 수 있다. 프로세서(210)는 전자 장치(200)에서 측정되는 타임 스탬프를 이용하여 수신한 이미지의 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr)를 획득할 수 있다. 예를 들어, 프로세서(210)는 렌더링한 시점에 관한 데이터로써, 렌더링이 이루어진 정확한 시간에 관한 데이터를 획득할 수 있다. 다른 예를 들어, 프로세서(210)는 AR glass와 일체로 결합되어 통신 모듈(230)을 통해 렌더링한 시점의 제 1 데이터를 수신할 수 있다. 프로세서(210)는 이미지 수신 후 렌더링을 수행하면 AR glass의 프로세서 및/또는 이미지 프로세서 등을 통해 타임 스탬프를 통해 렌더링한 시점에 관한 데이터 및 렌더링한 시점에서의 제 1 데이터를 수신할 수 있다. 제 1 데이터는 렌더링한 시점에 관한 데이터 및 렌더링한 시점에서의 전자 장치의 포즈 관련 데이터(예: Poser)를 포함할 수 있다.
프로세서(210)는 렌더링한 시점(예: 제 1 시점)과 상이한 제 2 시점에서의 전자 장치(200)의 제 2 데이터를 수신할 수 있다. 예를 들어, 프로세서(210)는 AR glass와 테더드 방식으로 연결될 수 있다. 프로세서(210)는 제 2 시점에서의 제 2 데이터를 수신할 수 있다. 제 2 데이터는 프로세서(210)의 타임스탬프를 통해 측정된 제 2 시점에 관한 데이터(예: tc), 제 2 시점에서의 전자 장치(200)의 포즈 관련 데이터(예: Posec), 및 외부 장치의 IMU를 통해 측정된 데이터(예: tIMU, accIMU, wIMU)를 포함할 수 있다. 예를 들어, 제 2 시점에 관한 데이터(예: tc), 제 2 시점에서의 전자 장치(200)의 포즈 관련 데이터(예: Posec)는 프로세서(210)가 이미지 보정을 수행하는 시점 및 해당 시점에서의 포즈와 관련된 데이터를 의미할 수 있다. IMU를 통해 측정된 데이터는 자세하게 설명하면 제 2 시점의 시간과 다를 수 있다. 본 명세서에서는 외부 장치의 IMU를 통해 측정된 데이터들이 측정되는 시점이 전자 장치의 포즈와 관련된 데이터(예: Posec)를 수신하는 시점과 다를 수 있음을 혼용하여 설시할 수 있다. 이와 같이 혼용하여 설시하는 것은 제 2 시점에 관한 데이터(예: tc)와 IMU를 통해 측정된 데이터 중 측정되는 시점과 관련된 데이터(예: tIMU)가 동일할 수 있기 때문이다.
프로세서(210)는 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈를 연산할 수 있다. 프로세서(210)는 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr), 렌더링한 시점에서의 포즈에 관한 데이터(예: Poser), 이미지 보정을 수행하는 시점(예: 제 2 시점)에 관한 데이터(예: tc), 이미지 보정을 수행하는 시점에서의 포즈에 관한 데이터(예: Posec), 및 외부 장치의 IMU를 통해 측정된 데이터(예: tIMU, accIMU, wIMU)를 기초로 하여 포즈를 연산할 수 있다. 예를 들어, 프로세서(210)는 제 1 데이터 및 제 2 데이터로 구성되는 매트릭스(matrix)에서 개별 행(row)을 라인으로 삼아 스캔 라인 별 포즈를 연산할 수 있다. 렌더링한 시점과 디스플레이되는 시점이 상이하고, 개별 시점에 따라 포즈가 상이하기 때문에 이미지 지연이 발생할 수 있다. 프로세서(210)는 이러한 이미지 지연을 보정하기 위한 연산을 수행할 수 있다. 프로세서(210)는 스캔 라인 별로 지연을 다르게 반영하여 포즈를 상이하게 연산할 수 있다. 프로세서(210)가 연산하는 포즈의 차이는 버퍼에 저장되며 6DoF 변화량을 연산한 스캔 라인 별로 저장할 수 있다. 프로세서(210)를 통해 수행되는 스캔 라인 별 연산 및 버퍼에 저장되는 데이터는 테이블의 형식일 수 있으며, 수학식(1) 내지 수학식(5)에 따라 연산될 수 있고 표 1과 같이 저장될 수 있다.
수학식
Figure pat00001
(1)
Figure pat00002
(2)
Figure pat00003
(3)
Figure pat00004
(4)
Figure pat00005
(5)
v1
Figure pat00006
Figure pat00007
Figure pat00008
Figure pat00009
Figure pat00010
Figure pat00011
v2
Figure pat00012
Figure pat00013
Figure pat00014
Figure pat00015
Figure pat00016
Figure pat00017
v3
Figure pat00018
Figure pat00019
Figure pat00020
Figure pat00021
Figure pat00022
Figure pat00023
v4
Figure pat00024
Figure pat00025
Figure pat00026
Figure pat00027
Figure pat00028
Figure pat00029
수학식(1)에서의 tdisp는 렌더링한 이미지가 디스플레이되는 시간과 관련된 데이터를 의미할 수 있으며, 프로세서(210)의 이미지 지연 보정이 이루어지는 시점에 관련된 데이터를 의미할 수도 있다. 수학식 (1)에서의
Figure pat00030
는 v에 따라 시간 딜레이가 리니어(linear)하게 증가하는 모델을 의미할 수 있다. 수학식 (2) 및 수학식 (3)은 추정(extrapolation)에 의한 포즈 연산을 의미할 수 있다. 수학식 (4) 및 수학식 (5)는 IMU 인티그레이션(IMU integration)에 의한 포즈 연산을 의미할 수 있다. 수학식 (2) 내지 수학식 (5)의 포지션은 위치를 의미할 수 있고, 오리엔테이션은 방향을 의미할 수 있다. 수학식 (1) 내지 수학식 (5)에 따라 연산된 결과는 표 1과 같이 정리되어 테이블의 형태로 저장될 수 있으며, 버퍼에 저장되거나 별도의 메모리(230)에 저장될 수도 있다. 표 1에 기입된 x, y, z는 3축의 개별 축의 좌표를 의미할 수 있으며,
Figure pat00031
는 차(difference)를 의미할 수 있다.
Figure pat00032
는 3축에서의 회전과 관련된 데이터를 나타낼 수 있으며, w, a, g 는 IMU를 통해 측정된 데이터에 기초하여 연산되거나 획득될 수 있다. w, a, g는 각각 각속도, 가속도, 중력 가속도를 의미할 수 있음은 통상의 기술자라면 충분히 이해할 수 있다. 표 1의 vn은 개별 행(row)를 의미할 수 있으며 본 명세서에서는 프로세서(210)가 연산을 수행하는 스캔 라인을 의미할 수 있다.AR glass를 착용하여 증강 현실이 구현되는 장치는 IMU, 카메라, 트래커, 및 렌더러의 개별 시점에서의 이미지 센싱 및 표시의 시차가 발생할 수 있다. 이를 표현하는 단어로 모션 투 포톤 지연(motion to photon latency)이 사용된다. 이러한 이미지 표시의 지연을 해소하기 위해 GPU는 보정을 수행하게 되고 이미지 보정 지연을 수반할 수 있다. GPU가 수행하는 보정은 일종의 타임워핑일 수 있으며 리프로젝션(reprojection)을 함께 수행할 수 있다. 리프로젝션은 포즈(pose)의 변화에 따른 각 픽셀의 대응점을 2D 에서 3D로, 다시 3D에서 2D로 프로젝션을 통해 연산하는 방법을 의미할 수 있다. 다른 예를 들어, GPU는 이미지 시프트(image shift)를 함께 수행할 수 있다. 이미지 시프트는 포즈 변화에 따라 각 픽셀의 시프트를 연산하는 것일 수 있다.
본 명세서에서는 렌더링 시점과 디스플레이에 표시하는 시점 간 시차 및 사용자의 움직임과 이미지의 가공으로 인한 6DoF의 변화를 반영하는 그래픽 처리 연산을 설명할 수 있다. 예를 들어, AR glass를 착용하고 움직이는 사용자의 헤드 모션의 6DoF에 의한 이미지 시프트 모델링, 렌더링 지연에 의한 라인 스캔 별 보상 및 보정 등이 설시될 수 있다.
도 3은 다양한 실시예에 따른 이미지 지연 보정 방법의 기능 수행에 따른 블록 구성의 예시도이다.
도 3은 전자 장치(예: 도 2의 전자 장치(200))의 프로세서(예: 도 2의 프로세서(210))를 통해 수행되는 이미지 지연 보정 방법을 개별 기능에 따라 도시한 예에 해당할 수 있다. 예를 들어, 프로세서는 이미지를 수신하여 렌더링을 수행할 수 있으며 이는 렌더러(310)의 기능을 수행하는 것을 의미할 수 있다. 렌더러(310)는 소프트웨어를 의미할 수 있으며 프로세서가 렌더러(310)를 실행하여 기능을 수행함을 의미할 수 있다. 렌더러(310)는 이미지 버퍼(320)에 렌더링한 이미지(예: 제 1 이미지)를 저장하면서, 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr) 및 렌더링한 시점에서의 전자 장치의 포즈 관련 데이터(예: Poser)를 포즈 연산기(360)로 송신할 수 있다.
도 3을 참조하면, 이미지 버퍼(320)는 프로세서를 통해 수행되는 이미지 렌더링의 결과물을 저장할 수 있다. 예를 들어, 이미지 버퍼(320)는 전자 장치가 수신한 이미지를 렌더링한 이미지(예: 제 1 이미지)를 저장하고 프로세서를 통해 렌더링한 이미지를 보정한 이미지(예: 제 2 이미지)를 저장할 수 있다. 이미지 버퍼(320)는 메모리(예: 도 2의 메모리(230))에 포함될 수 있다.
도 3을 참조하면, 뎁스 버퍼(330)는 렌더링한 이미지의 깊이값(depth)를 저장할 수 있다. 예를 들어, 뎁스 버퍼(330)는 렌더링한 이미지의 픽셀에서 u, v 좌표의 깊이값을 저장할 수 있다. 뎁스 버퍼(330)는 메모리에 포함될 수 있다. 뎁스 버퍼(330)는 시프트 연산기(370)로 깊이값인 Pz를 송신할 수 있다.
도 3을 참조하면, IMU 데이터(340)는 외부 장치의 IMU를 통해 측정된 데이터(예: tIMU, accIMU, wIMU)를 포함할 수 있다. IMU 데이터(340)는 포즈 연산기(360)로 송신될 수 있다.
도 3을 참조하면, 포즈 데이터(350)는 이미지 보정을 수행하는 시점(예: 제 2 시점)에 관한 데이터(예: tc), 이미지 보정을 수행하는 시점에서의 포즈에 관한 데이터(예: Posec)를 포함할 수 있다. 포즈 데이터(350)는 포즈 연산기(360)로 송신될 수 있다.
도 3을 참조하면, 포즈 연산기(360)는 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈를 연산할 수 있다. 포즈 연산기(360)는 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr), 렌더링한 시점에서의 포즈에 관한 데이터(예: Poser), 이미지 보정을 수행하는 시점(예: 제 2 시점)에 관한 데이터(예: tc), 이미지 보정을 수행하는 시점에서의 포즈에 관한 데이터(예: Posec), 및 외부 장치의 IMU를 통해 측정된 데이터(예: tIMU, accIMU, wIMU)를 기초로 하여 포즈를 연산할 수 있다. 예를 들어, 포즈 연산기(360)는 제 1 데이터 및 제 2 데이터로 구성되는 매트릭스(matrix)에서 개별 행(row)을 라인으로 삼아 스캔 라인 별 포즈를 연산할 수 있다. 렌더링한 시점과 디스플레이되는 시점이 상이하고, 개별 시점에 따라 포즈가 상이하기 때문에 이미지 지연이 발생할 수 있다. 포즈 연산기(360)는 이러한 이미지 지연을 보정하기 위한 연산을 수행할 수 있다. 포즈 연산기(360)는 스캔 라인 별로 지연을 다르게 반영하여 포즈를 상이하게 연산할 수 있다. 포즈 연산기(360)가 연산하는 포즈의 차이는 버퍼에 저장되며 6DoF 변화량을 연산한 스캔 라인 별로 저장할 수 있다. 포즈 연산기(360)를 통해 수행되는 스캔 라인 별 연산 및 버퍼에 저장되는 데이터는 테이블의 형식일 수 있다. 포즈 연산기(360)를 통해 연산된 테이블 형식의 결과는 6DoF 관련 데이터로, 예를 들어,
Figure pat00033
와 같이 표시될 수 있고 차(difference)로 나타낼 수 있다. 테이블 형식의 결과는 포즈 버퍼에 저장될 수 있으며, 시프트 연산기(370)로 송신될 수 있다.
도 3을 참조하면, 시프트 연산기(370)는 스캔 라인 별 디스플레이되는 시점의 포즈 차이를 보상해주는 u, v 좌표상의
Figure pat00034
를 연산하여 시프트 버퍼로 송신할 수 있다. 예를 들어, 시프트 연산기(370)는 상기 표 1의 4번째 스캔 라인의 결과를 토대로 하기 수학식 (6)과 같은 시프트 연산을 수행할 수 있다.
수학식
Figure pat00035
(6)
수학식 (6)에서 c와 관련된 데이터(예: cx, cy, cz)는 일종의 상수(constant)로써 실험값에 해당할 수 있다. 또한, 뎁스 버퍼(330)의 Pz를 대표 뎁스값으로 하여 전체 픽셀에 동일하게 적용할 수도 있다. 시프트 연산기(370)는 픽셀 시프트(pixel shift)를 연산하여 리프로젝션을 수행할 수 있도록 할 수 있다. 상기 수학식 (6)에서의 f와 관련된 데이터(예: fu, fv)는 u, v에 대한 미분(differentiation)에서 도출되는 값일 수 있다. 이는 수학식 (7) 내지 (12)에서 설명될 수 있다.
수학식
Figure pat00036
=
Figure pat00037
(7)
Figure pat00038
(8)
Figure pat00039
(9)
Figure pat00040
(10)
Figure pat00041
(11)
Figure pat00042
(12)
도 3을 참조하면, 보정기(380)는 렌더링한 이미지(예: 제 1 이미지)를 보정한 이미지(예: 제 2 이미지)를 생성할 수 있다. 보정기(380)는 렌더링한 이미지가 디스플레이되는 시간과 관련된 데이터 또는 프로세서의 이미지 지연 보정이 이루어지는 시점에 관한 데이터를 의미할 수 있는 tdisp에 관한 데이터를 포즈 연산기(360)로 송신할 수 있다. 보정기(380)는 픽셀 시프트를 고려하여 이미지 버퍼를 생성할 수 있다. 이미지 버퍼는 인풋 버퍼로부터 생성될 수 있으며, n, x, 이미지 너비(image width)의 3 스택의 버퍼를 사용할 수 있다. 보정된 이미지 버퍼는 n, x 이미지 너비의 2 스택의 버퍼를 사용할 수 있으며, 두 개의 버퍼의 이미지를 교대로 채울 수 있다(fill). 여기서 n은 모션에 의해 발생할 수 있는
Figure pat00043
의 최대값으로 결정될 수 있다.
도 3을 참조하면, 버퍼(390)는 보정기(380)를 통해 보정한 이미지(예: 제 2 이미지)를 저장할 수 있다. 버퍼(390)는 메모리에 포함될 수 있다.
도 4는 다양한 실시예에 따른 이미지 지연 보정 방법의 흐름도이다.
도 4를 참조하면, 단계 410에서 프로세서(예: 도 2의 프로세서(210))는 개별 스캔 라인의 포즈를 연산할 수 있다. 프로세서는 단계 420에서 개별 픽셀의 픽셀 시프트를 연산할 수 있다. 프로세서는 단계 430에서 렌더링된 이미지를 보정할 수 있다. 프로세서는 보정된 이미지를 디스플레이할 수 있도록 외부 장치에 송신할 수 있다.
도 5는 다양한 실시예에 따른 이미지 지연 보정 방법의 리프로젝션(reprojectioin) 연산에 관한 예시도이다.
도 5를 참조하면, 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr)에서 디스플레이 시점에 관한 데이터(예: td)로 이미지 타임워핑이 이루어질 수 있다. 여기서 AR glass(예: 도 1a의 AR glass(100))의 사용자의 눈과 관련된 포즈 변화는
Figure pat00044
=
Figure pat00045
로 나타낼 수 있다. 렌더링한 이미지에서의 2D 좌표는
Figure pat00046
, 타임워핑된 이미지에서의 2D 좌표는
Figure pat00047
로 나타낼 수 있다. 도 5를 참조하면, K는 디스플레이 인트린직 매트릭스(display intrinsic matrix)를 의미할 수 있다.
도 5를 참조하면, 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr)의 렌더링한 이미지에서의 2D 좌표는
Figure pat00048
의 월드 좌표는
Figure pat00049
로 표현할 수 있다. 이는 하기 수학식 (13)과 같은 매트릭스 연산으로 표현될 수 있다.
수학식
Figure pat00050
(13)
도 5를 참조하면, 디스플레이 시점에 사용자의 운에 대한 월드 좌표는
Figure pat00051
로 표현할 수 있다. 이는 하기 수학식 (14)과 같은 매트릭스 연산으로 표현될 수 있다.
수학식
Figure pat00052
(14)
도 5를 참조하면, 디스플레이 시점의 스크린(예: 도 1의 AR glass(100)의 글래스)에 프로젝션(projection)되는 좌표는 하기 수학식 (15)의 연산으로 표현될 수 있다.
수학식
Figure pat00053
(15)
수학식 (8)을 참조하면, 좌변의 매트릭스는 타임워핑된 좌표를 행렬로 나타낸 것일 수 있다. 우변의 K는 디스플레이 인트린직 매트릭스를 의미할 수 있으며 프로젝션 매트릭스를 의미할 수도 있다. 우변의 z는 거리,
Figure pat00054
Figure pat00055
는 사용자 눈의 포즈 변화(예: R은 회전(rotation), t는 이동(translation))를 의미할 수 있다. 우변의 매트릭스는 렌더링된 좌표를 의미할 수 있다.
도 5는 타임워핑을 수행하는 수학식에 관한 일 예에 불과하며 다양한 방식에 의하여 도출될 수 있다.
도 6a 및 도 6b는 다양한 실시예에 따른 이미지 지연 보정 방법의 포즈 연산에 관한 예시도이다.
도 6a 및 도 6b는, 프로세서(예: 도 2의 프로세서(210))의 포즈 연산과 관련된 기능을 수행하는 포즈 연산기(360) 및 포즈 버퍼(361)의 일 예에 해당할 수 있다. 예를 들어, 포즈 연산기(360)는 프로세서가 제 1 데이터 및 제 2 데이터를 기초로 하여 포즈를 연산하는 기능을 수행할 수 있다. 포즈 버퍼(361)는 포즈 연산의 데이터를 저장할 수 있다.
도 6b를 참조하면, 포즈 연산기(360)는 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈를 연산할 수 있다. 포즈 연산기(360)는 렌더링한 시점(예: 제 1 시점)에 관한 데이터(예: tr), 렌더링한 시점에서의 포즈에 관한 데이터(예: Poser), 이미지 보정을 수행하는 시점(예: 제 2 시점)에 관한 데이터(예: tc), 이미지 보정을 수행하는 시점에서의 포즈에 관한 데이터(예: Posec), 및 외부 장치의 IMU를 통해 측정된 데이터(예: tIMU, accIMU, wIMU)를 기초로 하여 포즈를 연산할 수 있다. 예를 들어, 포즈 연산기(360)는 제 1 데이터 및 제 2 데이터로 구성되는 매트릭스(matrix)에서 개별 행(row)을 라인으로 삼아 스캔 라인 별 포즈를 연산할 수 있다. 렌더링한 시점과 디스플레이되는 시점이 상이하고, 개별 시점에 따라 포즈가 상이하기 때문에 이미지 지연이 발생할 수 있다. 포즈 연산기(360)는 이러한 이미지 지연을 보정하기 위한 연산을 수행할 수 있다. 포즈 연산기(360)는 스캔 라인 별로 지연을 다르게 반영하여 포즈를 상이하게 연산할 수 있다. 포즈 연산기(360)가 연산하는 포즈의 차이는 버퍼에 저장되며 6DoF 변화량을 연산한 스캔 라인 별로 저장할 수 있다. 포즈 연산기(360)를 통해 수행되는 스캔 라인 별 연산 및 버퍼에 저장되는 데이터는 테이블의 형식일 수 있다. 포즈 연산기(360)를 통해 연산된 테이블 형식의 결과는 6DoF 관련 데이터로, 예를 들어,
Figure pat00056
와 같이 표시될 수 있고 차(difference)로 나타낼 수 있다. 테이블 형식의 결과는 포즈 버퍼에 저장될 수 있으며, 시프트 연산기로 송신될 수 있다.
도 7a 및 도 7b는 다양한 실시예에 따른 이미지 지연 보정 방법의 픽셀 별 시프트 연산에 관한 예시도이다.
도 7a 및 도 7b는, 프로세서(예: 도 2의 프로세서(210))의 시프트 연산과 관련된 기능을 수행하는 시프트 연산기(370) 및 시프트 버퍼(371)의 일 예에 해당할 수 있다. 예를 들어, 시프트 연산기(370)는 프로세서가 연산한 스캔 라인 별 포즈에 기초하여 스캔 라인 별 픽셀 시프트를 연산하는 기능을 수행할 수 있다. 시프트 버퍼(371)는 시프트 연산의 결과값을 저장할 수 있다. 다른 예를 들어, 시프트 연산기(370)는 프로세서가 연산한 스캔 라인 별 포즈 및 각 픽셀의 뎁스에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트를 연산하는 기능을 수행할 수도 있다. 또 다른 예를 들어, 시프트 연산기(370)는 프로세서가 연산한 스캔 라인 별 포즈 및 대표 뎁스값에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트를 연산하는 기능을 수행할 수도 있다.
시프트 연산기(370)는 스캔 라인 별 디스플레이되는 시점의 포즈 차이를 보상해주는 u, v 좌표상의
Figure pat00057
를 연산하여 시프트 버퍼로 송신할 수 있다. 예를 들어, 시프트 연산기(370)는 상기 표 1의 4번째 스캔 라인의 결과를 토대로 상기 수학식 (6) 내지 (12)와 같은 시프트 연산을 수행할 수 있다.
도 8a 및 도 8b는 다양한 실시예에 따른 이미지 지연 보정 방법의 외부 장치 디스플레이에 따른 왜곡 보상 및 이미지 보정의 예시도이다.
도 8a 및 도 8b는, 프로세서(예: 도 2의 프로세서(210))의 이미지 지연 보정과 관련되 기능을 수행하는 보정기(380) 및 왜곡 보상기(381)의 일 예에 해당할 수 있다. 예를 들어, 보정기(380)는 프로세서가 연산된 픽셀 시프트에 따라 렌더링된 이미지(예: 제 1 이미지)를 보정하여 보정된 이미지(예: 제 2 이미지)를 생성하는 기능을 수행할 수 있다. 왜곡 보상기(381)는 보정된 이미지를 생성할 때 외부 장치의 디스플레이(예: AR glass의 글래스) 곡률에 대한 왜곡을 보상하는 기능을 수행할 수 있다.
보정기(380)는 렌더링한 이미지(예: 제 1 이미지)를 보정한 이미지(예: 제 2 이미지)를 생성할 수 있다. 보정기(380)는 렌더링한 이미지가 디스플레이되는 시간과 관련된 데이터 또는 프로세서의 이미지 지연 보정이 이루어지는 시점에 관한 데이터를 의미할 수 있는 tdisp에 관한 데이터를 포즈 연산기(360)로 송신할 수 있다. 보정기(380)는 픽셀 시프트를 고려하여 이미지 버퍼를 생성할 수 있다. 이미지 버퍼는 인풋 버퍼로부터 생성될 수 있으며, n, x, 이미지 너비(image width)의 3 스택의 버퍼를 사용할 수 있다. 보정된 이미지 버퍼는 n, x 이미지 너비의 2 스택의 버퍼를 사용할 수 있으며, 두 개의 버퍼의 이미지를 교대로 채울 수 있다(fill). 여기서 n은 모션에 의해 발생할 수 있는
Figure pat00058
의 최대값으로 결정될 수 있다.
왜곡 보상기(381)는 이미지 버퍼(예: 도 3의 이미지 버퍼(320))로부터 uinit vinit의 데이터를 수신할 수 있다. 왜곡 보상기(381)는 AR/VR의 시각(optics)에 의해 왜곡이 발생하는 것에 대한 보상을 수행할 수 있다. 왜곡 보상은 타임워핑이 이루어진 후에 적용될 수 있다. 타임워핑이 이루어진 블록에 왜곡 보상기(381)를 통해 타임워핑 및 왜곡 보상의 통합이 이루어질 수 있다. 왜곡 보상이 이루어지면 이미지 보정 지연이 최소화될 수 있으며, 버퍼의 용량 및 사용량을 최소화시킬 수 있다. 하기 수학식 (16) 내지 (18)은 왜곡 보상기(381)의 타임워핑 및 왜곡 보상의 기능 수행을 설명할 수 있다.
수학식
uwarped = uinit+ Δu (16)
vwarped = vinit+ Δv (17)
(uwarped, vwarped)
Figure pat00059
(u’, v’) (18)
상기 수학식 (16) 및 (17)은 타임워핑이 이루어지는 것을 설명할 수 있다. uwarped는 타임워핑이 되는 u의 좌표, vwarped는 타임워핑이 되는 v의 좌표, uinit은 최초의 u의 좌표, vinit는 최초의 v의 좌표를 의미할 수 있다. 수학식 (18)은 타임워핑된 좌표를 u’, v’으로 변환(382)하는 왜곡 보상의 기능을 설명할 수 있다. 이와 같이 왜곡 보상기(381)의 타임워핑 및 왜곡 보상 후 연산된 u’, v’값은 버퍼(390)에 송신될 수 있다.
전자 장치는 메모리, 통신 모듈, 및 프로세서를 포함하고, 프로세서는 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하고, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하고, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하고, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈(pose)를 연산하고, 연산된 스캔 라인 별 포즈에 기초하여 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하고, 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하고, 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하도록 설정될 수 있다.
프로세서는 제 1 시점에 관한 데이터를 메모리에 기록되는 타임 스탬프(time stamp)를 통해 수신하거나 통신 모듈을 통해 외부 장치의 이미지 프로세서로부터 수신할 수 있다.
프로세서는 스캔 라인 별 포즈를 연산 시 제 1 데이터 및 제 2 데이터의 차(difference)를 연산할 수 있다.
프로세서는 연산된 제 1 데이터 및 제 2 데이터의 차에 기초하여 미분(differentiation)을 통해 스캔 라인 별 픽셀 시프트를 연산할 수 있다.
프로세서는 제 2 이미지를 생성할 시 외부 장치의 디스플레이 곡률에 대한 왜곡 보상(distortion compensation)을 수행할 수 있다.
제 1 데이터는 제 1 시점에 관한 데이터 및 제 1 시점에서의 전자 장치의 포즈 관련 데이터를 포함할 수 있다. 제 2 데이터는 프로세서의 타임스탬프를 통해 측정된 제 2 시점에 관한 데이터, 제 2 시점에서의 전자 장치의 포즈 관련 데이터, 및 외부 장치의 IMU(inertial measurement unit)를 통해 측정된 데이터를 포함할 수 있다. 제 1 데이터 및 제 2 데이터의 차는 전자 장치의 위치 및 자세와 관련된 데이터일 수 있다.
프로세서는 왜곡 보상을 마친 제 2 이미지를 버퍼를 이용하여 생성할 수 있다. 전자 장치는 외부 장치와 일체로 결합되거나 통신 모듈을 통해 통신 연결될 수 있다.
증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈에 기초하여 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
증강 현실 이미지 지연 보정 방법은 제 1 시점에 관한 데이터를 메모리에 기록되는 타임 스탬프(time stamp)를 통해 수신하거나 상기 통신 모듈을 통해 상기 외부 장치의 이미지 프로세서로부터 수신하는 단계를 포함할 수 있다.
스캔 라인 별 포즈를 연산하는 단계는 제 1 데이터 및 제 2 데이터의 차(difference)를 연산하는 단계를 포함할 수 있다.
증강 현실 이미지 지연 보정 방법은 연산된 제 1 데이터 및 제 2 데이터의 차에 기초하여 미분(differentiation)을 통해 상기 스캔 라인 별 픽셀 시프트를 연산하는 단계를 더 포함할 수 있다.
제 2 이미지를 생성하는 단계는 외부 장치의 디스플레이 곡률에 대한 왜곡 보상(distortion compensation)을 수행하는 단계를 더 포함할 수 있다.
제 1 데이터는 제 1 시점에 관한 데이터 및 제 1 시점에서의 전자 장치의 포즈 관련 데이터를 포함할 수 있다. 제 2 데이터는 프로세서의 타임스탬프를 통해 측정된 제 2 시점에 관한 데이터, 제 2 시점에서의 전자 장치의 포즈 관련 데이터, 및 외부 장치의 IMU(inertial measurement unit)를 통해 측정된 데이터를 포함할 수 있다. 제 1 데이터 및 제 2 데이터의 차는 전자 장치의 위치 및 자세와 관련된 데이터일 수 있다.
증강 현실 이미지 지연 보정 방법은 왜곡 보상을 마친 제 2 이미지를 버퍼를 이용하여 생성하는 단계를 포함할 수 있다. 증강 현실 이미지 지연 보정 방법의 전자 장치는 외부 장치와 일체로 결합되거나 통신 모듈을 통해 통신 연결될 수 있다.
다른 실시 예에서, 증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 뎁스 버퍼를 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈 및 각 픽셀의 뎁스에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
또 다른 실시 예에서, 증강 현실 이미지 지연 보정 방법은 외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 대표 뎁스값을 수신하는 단계, 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계, 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계, 제 1 데이터 및 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계, 연산된 스캔 라인 별 포즈 및 대표 뎁스값에 기초하여 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계, 픽셀 시프트에 따라 렌더링된(rendered) 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계, 및 제 2 이미지를 통신 모듈을 통해 외부 장치로 송신하는 단계를 포함할 수 있다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예가 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예에 포함된 것으로 해석되어야 할 것이다.

Claims (22)

  1. 전자 장치에 있어서,
    메모리;
    통신 모듈; 및
    프로세서를 포함하고,
    상기 프로세서는
    외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하고,
    상기 수신한 제 1 이미지를 렌더링하여 상기 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하고,
    상기 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하고,
    상기 제 1 데이터 및 상기 제 2 데이터에 기초하여 스캔 라인(scanline) 별 포즈(pose)를 연산하고,
    상기 연산된 스캔 라인 별 포즈에 기초하여 상기 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하고,
    상기 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하고,
    상기 제 2 이미지를 상기 통신 모듈을 통해 상기 외부 장치로 송신하도록 설정된 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는
    상기 제 1 시점에 관한 데이터를 상기 메모리에 기록되는 타임 스탬프(time stamp)를 통해 수신하거나 상기 통신 모듈을 통해 상기 외부 장치의 이미지 프로세서로부터 수신하는 것을 특징으로 하는 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는
    상기 스캔 라인 별 포즈를 연산 시 상기 제 1 데이터 및 상기 제 2 데이터의 차(difference)를 연산하는 것을 특징으로 하는 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는
    상기 연산된 제 1 데이터 및 제 2 데이터의 차에 기초하여 미분(differentiation)을 통해 상기 스캔 라인 별 픽셀 시프트를 연산하는 것을 특징으로 하는 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는
    상기 제 2 이미지를 생성할 시 상기 외부 장치의 디스플레이 곡률에 대한 왜곡 보상(distortion compensation)을 수행하는 것을 특징으로 하는 전자 장치.
  6. 제1항에 있어서,
    상기 제 1 데이터는 상기 제 1 시점에 관한 데이터 및 상기 제 1 시점에서의 상기 전자 장치의 포즈 관련 데이터를 포함하는 것을 특징으로 하는 전자 장치.
  7. 제1항에 있어서,
    상기 제 2 데이터는 상기 프로세서의 타임스탬프를 통해 측정된 상기 제 2 시점에 관한 데이터, 상기 제 2 시점에서의 상기 전자 장치의 포즈 관련 데이터, 및 상기 외부 장치의 IMU(inertial measurement unit)를 통해 측정된 데이터를 포함하는 것을 특징으로 하는 전자 장치.
  8. 제3항에 있어서,
    상기 제 1 데이터 및 상기 제 2 데이터의 차는 상기 전자 장치의 위치 및 자세와 관련된 데이터인 것을 특징으로 하는 전자 장치.
  9. 제5항에 있어서,
    상기 프로세서는
    상기 왜곡 보상을 마친 상기 제 2 이미지를 버퍼를 이용하여 생성하는 것을 특징으로 하는 전자 장치.
  10. 제1항에 있어서,
    상기 전자 장치는
    상기 외부 장치와 일체로 결합되거나 상기 통신 모듈을 통해 통신 연결되는 것을 특징으로 하는 전자 장치.
  11. 증강 현실 이미지 지연 보정 방법에 있어서,
    외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지를 수신하는 단계;
    상기 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계;
    상기 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계;
    상기 제 1 데이터 및 상기 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계;
    상기 연산된 스캔 라인 별 포즈에 기초하여 상기 스캔 라인 내 픽셀 별 픽셀 시프트(pixel shift)를 연산하는 단계;
    상기 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계; 및
    상기 제 2 이미지를 상기 통신 모듈을 통해 상기 외부 장치로 송신하는 단계를 포함하는 이미지 지연 보정 방법.
  12. 제11항에 있어서,
    상기 제 1 시점에 관한 데이터를 메모리에 기록되는 타임 스탬프(time stamp)를 통해 수신하거나 상기 통신 모듈을 통해 상기 외부 장치의 이미지 프로세서로부터 수신하는 단계를 포함하는 이미지 지연 보정 방법.
  13. 제11항에 있어서,
    상기 스캔 라인 별 포즈를 연산하는 단계는
    상기 제 1 데이터 및 상기 제 2 데이터의 차(difference)를 연산하는 단계를 포함하는 이미지 지연 보정 방법.
  14. 제13항에 있어서,
    상기 연산된 제 1 데이터 및 제 2 데이터의 차에 기초하여 미분(differentiation)을 통해 상기 스캔 라인 별 픽셀 시프트를 연산하는 단계를 더 포함하는 이미지 지연 보정 방법.
  15. 제11항에 있어서,
    상기 제 2 이미지를 생성하는 단계는
    상기 외부 장치의 디스플레이 곡률에 대한 왜곡 보상(distortion compensation)을 수행하는 단계를 더 포함하는 이미지 지연 보정 방법.
  16. 제11항에 있어서,
    상기 제 1 데이터는 상기 제 1 시점에 관한 데이터 및 상기 제 1 시점에서의 상기 전자 장치의 포즈 관련 데이터를 포함하는 것을 특징으로 하는 이미지 지연 보정 방법.
  17. 제11항에 있어서,
    상기 제 2 데이터는 상기 프로세서의 타임스탬프를 통해 측정된 상기 제 2 시점에 관한 데이터, 상기 제 2 시점에서의 상기 전자 장치의 포즈 관련 데이터, 및 상기 외부 장치의 IMU(inertial measurement unit)를 통해 측정된 데이터를 포함하는 것을 특징으로 하는 이미지 보정 방법.
  18. 제13항에 있어서,
    상기 제 1 데이터 및 상기 제 2 데이터의 차는 상기 전자 장치의 위치 및 자세와 관련된 데이터인 것을 특징으로 하는 이미지 보정 방법.
  19. 제15항에 있어서,
    상기 왜곡 보상을 마친 상기 제 2 이미지를 버퍼를 이용하여 생성하는 단계를 포함하는 이미지 지연 보정 방법.
  20. 제11항에 있어서,
    상기 전자 장치는 상기 외부 장치와 일체로 결합되거나 상기 통신 모듈을 통해 통신 연결되는 것을 특징으로 하는 이미지 지연 보정 방법.
  21. 증강 현실 이미지 지연 보정 방법에 있어서,
    외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 뎁스 버퍼를 수신하는 단계;
    상기 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계;
    상기 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계;
    상기 제 1 데이터 및 상기 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계;
    상기 연산된 스캔 라인 별 포즈 및 각 픽셀의 뎁스에 기초하여 상기 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계;
    상기 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계; 및
    상기 제 2 이미지를 상기 통신 모듈을 통해 상기 외부 장치로 송신하는 단계를 포함하는 이미지 지연 보정 방법.
  22. 증강 현실 이미지 지연 보정 방법에 있어서,
    외부 장치로부터 프레임 별 시점과 포즈가 기록된 제 1 이미지 및 대표 뎁스값을 수신하는 단계;
    상기 수신한 제 1 이미지를 렌더링하여 통신 모듈로부터 제 1 시점의 제 1 데이터를 수신하는 단계;
    상기 제 1 시점과 상이한 제 2 시점에서의 제 2 데이터를 수신하는 단계;
    상기 제 1 데이터 및 상기 제 2 데이터에 기초하여 스캔 라인 별 포즈(pose)를 연산하는 단계;
    상기 연산된 스캔 라인 별 포즈 및 상기 대표 뎁스값에 기초하여 상기 스캔 라인 내 각 픽셀의 픽셀 시프트(pixel shift)를 연산하는 단계;
    상기 픽셀 시프트에 따라 렌더링된(rendered) 상기 제 1 이미지를 보정(correct)하여 제 2 이미지를 생성하는 단계; 및
    상기 제 2 이미지를 상기 통신 모듈을 통해 상기 외부 장치로 송신하는 단계를 포함하는 이미지 지연 보정 방법.
KR1020200185211A 2020-12-28 2020-12-28 이미지 지연 보정 방법 및 이를 이용한 장치 KR20220093985A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200185211A KR20220093985A (ko) 2020-12-28 2020-12-28 이미지 지연 보정 방법 및 이를 이용한 장치
US17/350,541 US11514560B2 (en) 2020-12-28 2021-06-17 Method of correcting image latency and apparatus using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200185211A KR20220093985A (ko) 2020-12-28 2020-12-28 이미지 지연 보정 방법 및 이를 이용한 장치

Publications (1)

Publication Number Publication Date
KR20220093985A true KR20220093985A (ko) 2022-07-05

Family

ID=82218714

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200185211A KR20220093985A (ko) 2020-12-28 2020-12-28 이미지 지연 보정 방법 및 이를 이용한 장치

Country Status (2)

Country Link
US (1) US11514560B2 (ko)
KR (1) KR20220093985A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220156331A (ko) * 2021-05-18 2022-11-25 삼성전자주식회사 이미지 지연을 보정하기 위한 전자 장치 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9514571B2 (en) 2013-07-25 2016-12-06 Microsoft Technology Licensing, Llc Late stage reprojection
US11049476B2 (en) * 2014-11-04 2021-06-29 The University Of North Carolina At Chapel Hill Minimal-latency tracking and display for matching real and virtual worlds in head-worn displays
EP3335098A1 (en) 2016-02-22 2018-06-20 Google LLC Separate time-warping for a scene and an object for display of virtual reality content
KR102246836B1 (ko) * 2016-08-22 2021-04-29 매직 립, 인코포레이티드 가상, 증강, 및 혼합 현실 시스템들 및 방법들
US10242654B2 (en) 2017-01-25 2019-03-26 Microsoft Technology Licensing, Llc No miss cache structure for real-time image transformations
CN107220925B (zh) 2017-05-05 2018-10-30 珠海全志科技股份有限公司 一种实时虚拟现实加速方法及装置
US10621707B2 (en) 2017-06-16 2020-04-14 Tilt Fire, Inc Table reprojection for post render latency compensation
US10776992B2 (en) 2017-07-05 2020-09-15 Qualcomm Incorporated Asynchronous time warp with depth data
US20190045213A1 (en) 2017-08-03 2019-02-07 Intel Corporation Reference frame reprojection for improved video coding
US10861215B2 (en) 2018-04-30 2020-12-08 Qualcomm Incorporated Asynchronous time and space warp with determination of region of interest
US11455705B2 (en) 2018-09-27 2022-09-27 Qualcomm Incorporated Asynchronous space warp for remotely rendered VR
US11315328B2 (en) * 2019-03-18 2022-04-26 Facebook Technologies, Llc Systems and methods of rendering real world objects using depth information
US20220048199A1 (en) * 2020-08-17 2022-02-17 Faro Technologies, Inc. Referencing pose manipulation system for marker based tracking of position measurement system
US11792517B2 (en) * 2020-09-30 2023-10-17 Snap Inc. Pose tracking for rolling shutter camera

Also Published As

Publication number Publication date
US11514560B2 (en) 2022-11-29
US20220215515A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US10102666B2 (en) Electronic display stabilization for head mounted display
US11960086B2 (en) Image generation device, head-mounted display, and image generation method
WO2021110035A1 (zh) 眼部定位装置、方法及3d显示设备、方法和终端
JP2008146109A (ja) 画像処理方法、画像処理装置
US11892637B2 (en) Image generation apparatus, head-mounted display, content processing system, and image display method
US20220113543A1 (en) Head-mounted display and image display method
WO2021110038A1 (zh) 3d显示设备、3d图像显示方法
CN110969706B (zh) 增强现实设备及其图像处理方法、***以及存储介质
US20220113794A1 (en) Display device and image display method
KR20220093985A (ko) 이미지 지연 보정 방법 및 이를 이용한 장치
US10785471B1 (en) Upsampling content for head-mounted displays
US11050993B2 (en) Image generating apparatus and image generating method
US11614627B2 (en) Image processing apparatus, head-mounted display, and image displaying method
WO2022054118A1 (ja) 画像表示システム、ヘッドマウントディスプレイ、および画像表示方法
JP2020167657A (ja) 画像処理装置、ヘッドマウントディスプレイ、および画像表示方法
JP2020167659A (ja) 画像処理装置、ヘッドマウントディスプレイ、および画像表示方法
JP7365183B2 (ja) 画像生成装置、ヘッドマウントディスプレイ、コンテンツ処理システム、および画像表示方法
WO2023243305A1 (ja) 情報処理装置、情報処理方法およびプログラム
US12034908B2 (en) Stereoscopic-image playback device and method for generating stereoscopic images
WO2023068087A1 (ja) ヘッドマウントディスプレイ、情報処理装置および情報処理方法
US20230239458A1 (en) Stereoscopic-image playback device and method for generating stereoscopic images
US20240062482A1 (en) Calibration for virtual or augmented reality systems
WO2023162504A1 (ja) 情報処理装置、情報処理方法およびプログラム
US20240098243A1 (en) Predictive Perspective Correction
US10999567B2 (en) Image generating apparatus and image generating method

Legal Events

Date Code Title Description
A201 Request for examination