KR20210150968A - 디스플레이 장치 및 시스템 - Google Patents

디스플레이 장치 및 시스템 Download PDF

Info

Publication number
KR20210150968A
KR20210150968A KR1020210048545A KR20210048545A KR20210150968A KR 20210150968 A KR20210150968 A KR 20210150968A KR 1020210048545 A KR1020210048545 A KR 1020210048545A KR 20210048545 A KR20210048545 A KR 20210048545A KR 20210150968 A KR20210150968 A KR 20210150968A
Authority
KR
South Korea
Prior art keywords
kernel
image
data stream
row
values
Prior art date
Application number
KR1020210048545A
Other languages
English (en)
Other versions
KR102575670B1 (ko
Inventor
스티그 미카엘 콜린
Original Assignee
엔비직스 엘티디
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 엔비직스 엘티디 filed Critical 엔비직스 엘티디
Publication of KR20210150968A publication Critical patent/KR20210150968A/ko
Application granted granted Critical
Publication of KR102575670B1 publication Critical patent/KR102575670B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/26Processes or apparatus specially adapted to produce multiple sub- holograms or to obtain images from them, e.g. multicolour technique
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/04Processes or apparatus for producing holograms
    • G03H1/08Synthesising holograms, i.e. holograms synthesized from objects or objects from holograms
    • G03H1/0808Methods of numerical synthesis, e.g. coherent ray tracing [CRT], diffraction specific
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/12Picture reproducers
    • H04N9/31Projection devices for colour picture display, e.g. using electronic spatial light modulators [ESLM]
    • H04N9/3179Video signal processing therefor
    • 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/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/02Details of features involved during the holographic process; Replication of holograms without interference recording
    • G03H1/0252Laminate comprising a hologram layer
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/22Processes or apparatus for obtaining an optical image from holograms
    • G03H1/2202Reconstruction geometries or arrangements
    • G03H1/2205Reconstruction geometries or arrangements using downstream optical component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • 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/167Synchronising or controlling image signals
    • 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/365Image reproducers using digital micromirror devices [DMD]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/22Processes or apparatus for obtaining an optical image from holograms
    • G03H1/2294Addressing the hologram to an active spatial light modulator
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/32Systems for obtaining speckle elimination
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/22Processes or apparatus for obtaining an optical image from holograms
    • G03H1/2202Reconstruction geometries or arrangements
    • G03H2001/2223Particular relationship between light source, hologram and observer
    • G03H2001/2231Reflection reconstruction
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2210/00Object characteristics
    • G03H2210/40Synthetic representation, i.e. digital or optical object decomposition
    • G03H2210/44Digital representation
    • G03H2210/441Numerical processing applied to the object data other than numerical propagation
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2225/00Active addressable light modulator
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2225/00Active addressable light modulator
    • G03H2225/20Nature, e.g. e-beam addressed
    • G03H2225/22Electrically addressed SLM [EA-SLM]
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2225/00Active addressable light modulator
    • G03H2225/52Reflective modulator
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2226/00Electro-optic or electronic components relating to digital holography
    • G03H2226/02Computing or processing means, e.g. digital signal processor [DSP]
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2240/00Hologram nature or properties
    • G03H2240/50Parameters or numerical values associated with holography, e.g. peel strength
    • G03H2240/62Sampling aspect applied to sensor or display
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2250/00Laminate comprising a hologram layer
    • G03H2250/38Liquid crystal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0096Synchronisation or controlling aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Holo Graphy (AREA)
  • Burglar Alarm Systems (AREA)

Abstract

데이터 스트리밍을 이용하여 프로젝션 타겟 이미지의 홀로그램을 형성하는 이미지 처리 엔진 및 방법이 개시된다. 입력 또는 주 이미지는 커널을 사용하여 서브-샘플링 되고 부 이미지 출력은 타겟 이미지의 홀로그램을 생성하는 데 사용된다. 복수의 2개 이상의 데이터 스트림을 사용하는 커널 서브-샘플링 기술은 데이터 저장소 요구 사항의 감소 및 처리 속도 증가를 포함하여 효율성 향상을 제공한다.

Description

디스플레이 장치 및 시스템{A Display Device and System}
본 개시는 홀로그래픽 프로젝션을 위한 이미지 처리를 위한 이미지 프로세서 및 방법에 관한 것이다. 본 발명은 또한 홀로그래픽 프로젝터, 홀로그래픽 프로젝션 시스템, 이미지를 홀로그래픽으로 프로젝션 하는 방법 및 비디오 이미지를 홀로그래픽으로 프로젝션 하는 방법에 관한 것이다. 일부 실시예는 헤드 업 디스플레이 및 광 검출 및 거리 측정 시스템에 관한 것이다.
객체에서 산란된 빛은 진폭 및 위상 정보를 포함한다. 이러한 진폭 및 위상 정보는 예컨대 잘 알려진 간섭 기술에 의해 감광성 플레이트 상에 캡쳐 되어 홀로그래픽 기록 또는 간섭 줄무늬를 포함하는 "홀로그램"을 형성할 수 있다. 홀로그램은 원 객체를 나타내는 2 차원 또는 3 차원 홀로그래픽 재구성(reconstruction) 또는 재생(replay) 이미지를 형성하기에 적절한 광을 조명함으로써 구성될 수 있다.
컴퓨터-생성 홀로그래피(computer-generated holography)는 수치적으로 간섭 프로세스(interference process)를 시뮬레이션 할 수 있다. 컴퓨터-생성 홀로그램은 프레넬(Fresnel) 또는 푸리에(Fourier) 변환과 같은 수학적 변환에 기초한 기술에 의해 계산될 수 있다. 이러한 유형의 홀로그램은 프레넬/푸리에 변환 홀로그램 또는 단순히 프레넬/푸리에 홀로그램으로 지칭될 수 있다. 푸리에 홀로그램은 객체의 푸리에 도메인/평면 표현 또는 객체의 주파수 도메인/평면 표현으로 간주될 수 있다. 컴퓨터-생성 홀로그램은 또한 예컨대 가간섭성 광선 추적(coherent ray tracing) 또는 포인트 클라우드 기법(point cloud technique)에 의해 계산될 수 있다.
컴퓨터-생성 홀로그램은 입사광의 진폭 및/또는 위상을 변조하도록 배열된 공간 광 변조기 상에 인코딩 될 수 있다. 광 변조는 예컨대 전기적으로 어드레스 가능한 액정, 광학적으로 어드레스 가능한 액정 또는 마이크로 미러를 사용하여 달성될 수 있다.
공간 광 변조기는 통상 셀들(cells) 또는 요소들(elements)로 지칭될 수 있는 복수의 개별적으로 어드레스 가능한 픽셀들을 포함할 수 있다. 광 변조 방식은 이진(binary), 다중 레벨(multilevel) 또는 연속(continuous)일 수 있다. 대안적으로, 이 장치는 연속적일 수 있으며(즉, 픽셀로 구성되지 않은), 이에 따라 광 변조는 장치 전체에 걸쳐서 연속적일 수 있다. 공간 광 변조기는 변조 광이 공간 광 변조기로부터 반사되어 출력된다는 점에서 반사형(reflective)일 수 있다. 공간 광 변조기는 변조 광이 공간 광 변조기를 투과하여 출력된다는 점에서 투과형(transmissive)일 수도 있다.
여기에 기재된 시스템을 이용하여 홀로그래픽 프로젝터가 제공될 수 있다. 이러한 프로젝터는 예를 들어 헤드 업 디스플레이, "HUD" 및 근안(near-eye) 장치를 포함하는 헤드 마운트 디스플레이, "HMD"에 적용가능 하다.
홀로그래픽 프로젝터와 같은 가간섭성 광을 사용하는 장치에서 이미지 품질을 향상시키기 위해 이동형 디퓨저(diffuser)가 사용될 수 있다.
본 발명의 양태들은 첨부된 독립 청구항들에서 정의된다.
데이터 스트리밍을 사용하여 프로젝션을 위한 타겟 이미지의 홀로그램을 형성하는 이미지 처리 엔진 및 방법이 개시된다. 특히, 아래에서 더 자세히 설명하는 바와 같이, 타겟 이미지의 업 스케일링 및/또는 수정된 버전 일 수 있는 입력 또는 주(primary) 이미지는 커널을 사용하여 서브-샘플링 될 수 있으며, 부(secondary) 이미지는 출력되어 타겟 이미지의 홀로그램을 생성하기 위해 사용될 수 있다. 본 명세서에 설명된 바와 같이, 복수의 2 개 이상의 데이터 스트림을 사용하는 커널 서브-샘플링 기술은 감소된 데이터 저장 요구 사항 (예를 들어, 메모리 및/또는 버퍼 용량) 및 증가된 처리 속도를 포함하는 효율성 개선을 제공한다.
일반적으로 커널 서브-샘플링을 위해 전체 주 이미지 데이터를 저장하려면 넓은 영역의 데이터 저장 공간이 필요하다. 의도된 커널 작업 각각에 필요한 모든 픽셀의 주 이미지 데이터에 액세스하려면 임의 메모리 액세스가 필요하다. 더욱이, 비디오 속도의 처리에는, 특히 처리를 시작하는 데 필요한 적어도 데이터 엔트리(이미지 픽셀 값)와 그 이후의 처리 단계 각각에서, 적어도 일부의 이미지 데이터가 버퍼링 될 필요가 있다. 따라서 필요한 버퍼링 용량은 출력 데이터(부 이미지)의 크기가 아니라 입력 데이터(주 이미지)의 크기에 따라 달라진다.
홀로그래픽 이미지 프로젝션의 경우, 이미지(홀로그래픽 재구성)의 원하는 해상도를 얻기 위해, 프로젝션 용 타겟 이미지를 "업 스케일"하여 증가된 픽셀 수를 갖는 소스 이미지를 형성할 수 있다. 또한, 소스 이미지는, 예를 들어, 관련 기술분야에 알려진 바와 같은 프로젝터의 광학 재생 시스템의 광학 구성 요소로 인한 이미지 왜곡(워핑(warping))을 보정하기 위해 소위 "워프 이미지(warped image)"로 지칭되는, 중간 이미지를 형성하도록 수정될 수 있다. 업 스케일 된 소스 이미지 또는 그로부터 파생된 중간 이미지는 커널 서브-샘플링을 위한 주 이미지로 사용될 수 있다. 따라서, 주 이미지의 크기(해상도/픽셀 수) 및 이에 따른 데이터 양은 부 이미지 크기의 몇 배가 될 수 있다. 결과적으로 부 이미지를 생성하기 위해 주 이미지를 서브-샘플링 하려면 커널에는 많은 양의 데이터 스토리지 및 버퍼링 용량이 필요하다.
본 개시에 따르면, 데이터 스트리밍은 홀로그램 계산을 위한 출력 이미지를 결정하기 위해 커널을 사용하여 주 이미지를 서브-샘플링 하는데 사용되는 데이터 저장량 및 버퍼링 용량을 줄이기 위해 사용된다.
주 이미지의 픽셀 값의 제1데이터 스트림은 각 픽셀 값이 복수의 커널 샘플링 위치에서 커널 연산을 위한 대응하는 커널 값과 쌍을 이루도록 커널의 커널 값의 제2데이터 스트림과 동기화 될 수 있다. 각 커널 샘플링 위치에 대해 제2데이터 스트림 내에서 커널 값은 반복된다. 따라서, 제1데이터 스트림의 주 이미지의 픽셀 값과 제2데이터 스트림의 커널 값 사이에는 일대 다 상관 관계가 있다. 또한, 제2데이터 스트림에서 커널의 커널 값의 각 행은 제1데이터 스트림에서 주 이미지의 이미지 픽셀의 복수 행과 쌍을 이룬다.
일부 실시예에서, 데이터 스트리밍 엔진은 데이터 스트리밍 절차를 수행하도록 구성된다. 특히, 데이터 스트리밍 엔진은 주 이미지의 픽셀의 픽셀 값을 행 단위로 판독함으로써 제1데이터 스트림을 형성할 수 있다. 예를 들어, 픽셀 값은 래스터 스캔(raster scan) 순서로 픽셀 단위로 판독될 수 있다. 동시에, 데이터 스트리밍 엔진은 다음 단계를 사용하여 m 개의 행을 갖는 커널의 커널 값의 제2데이터 스트림을 형성할 수 있다: (i) 커널의 첫 번째 행의 커널 값을 여러 번 반복적으로 읽는 단계; (ii) 커널의 다음 행의 커널 값을 여러 번 반복적으로 읽는 단계; (iii) 단계 (ii)를 (m-2)회 반복적으로 반복함; (iv) 단계 (i)로 돌아가고; (v) 제1데이터 스트림에 더 이상 픽셀 값이 없을 때 단계 (i) 내지 (iv)를 중지한다. 클럭 카운터는 제1 및 제2데이터 스트림의 값을 동기화하는 데 사용될 수 있다.
일부 실시예에서, 이미지 처리 엔진은 커널 동작 및 버퍼링 절차를 수행하도록 구성된다. 특히, 커널 연산은 복수의 커널 샘플링 위치에서 수행된다. 주 이미지의 픽셀의 각 행에 대해, 버퍼로 출력하기 위한 각각의 누적된 (부분) 픽셀 값을 도출하기 위해 커널 연산은 커널 샘플링 위치와 관련된 제1 및 제2데이터 스트림의 값의 동기화된 쌍을 처리한다. 버퍼링 절차는 누적된 (부분) 픽셀 값을 버퍼의 연속된 위치에 저장하여 수행된다. 주 이미지의 픽셀의 한 행을 처리하여 버퍼에 출력된 누적 (부분) 픽셀 값은 업데이트된 누적 (부분) 픽셀 값을 도출하기 위해 주 이미지의 다음 픽셀 행을 처리하기 위한 피드백으로 제공되는 제3데이터 스트림을 형성할 수 있다. 피드백 프로세스는, 주 이미지의 픽셀의 마지막 행이 동일한 복수의 커널 샘플링 위치(즉, 커널 샘플링 위치의 동일한 행 또는 라인)에 대해 처리될 때까지, 행 단위로 반복될 수 있다. 버퍼에 출력된 누적된 픽셀 값은 따라서 부 이미지 행의 전체 또는 완전한 픽셀 값이다. 이에 따라, 부 이미지의 픽셀 행들이 생성되어 행 단위로 출력될 수 있다. 유리하게는, 부 이미지의 픽셀 행은 부 이미지에 대응하는 홀로그램을 계산하기 위해 홀로그램 엔진에 실시간으로 스트리밍 될 수 있다. 따라서 부 이미지의 모든 픽셀이 도출되기 전에 홀로그램 계산을 시작할 수 있다.
일부 예들에서, m 개의 행과 n 개의 열을 갖는 커널은 래스터 스캔 경로를 따라 이동되며, 여기서 x 방향의 스트라이드(stride)는 n 픽셀이고 y 방향의 스트라이드는 m 픽셀이다. 따라서 커널 창은 주 이미지의 m x n 픽셀의 연속 어레이를 서브-샘플링 한다. 이러한 예들에서, 제1데이터 스트림은 래스터 스캔 순서로 픽셀 단위로 주 이미지의 픽셀 값을 판독함으로써 형성될 수 있다. 이것은 제1데이터 스트림을 형성하기 위한 데이터 스트리밍 절차를 단순화한다.
구현에서, 데이터 스트리밍은 주 이미지로부터 부 이미지의 결정 및 대응하는 홀로그램의 결정이 동시에 수행되도록 하여 처리 속도를 증가시킬 수 있다. 특히, 부 이미지에 대해 결정된 픽셀 값은 후술하는 바와 같이 실시간으로 홀로그램 엔진으로 스트리밍 될 수 있다. 처리 속도가 빨라지면 비디오 스트림에서 이미지에 대해 더 많은 수의 홀로그램을 (즉, 더 많은 수의 부 이미지 또는 서브 프레임을 사용하여) 디스플레이 할 수 있다. 인간의 눈의 통합 시간 내에 더 많은 수의 이미지를 디스플레이 함으로써 시청자가 보는 홀로그래픽 재구성(홀로그래픽 이미지)의 품질이 향상된다.
일부 구현에서, 상이한 서브-샘플링 방식을 사용하여 동일한 소스 이미지를 서브-샘플링 함으로써 다수의 부 이미지가 결정될 수 있다. 예를 들어, 복수의 상이한 부 이미지를 결정하기 위해 복수의 상이한 커널 및/또는 커널 샘플링 위치가 사용될 수 있다. 복수의 서로 다른 부 이미지는 타겟 이미지를 프로젝트 하기 위한 대응하는 복수의 홀로그램을 생성하는데 사용될 수 있다. 예를 들어, 복수의 상이한 홀로그램은 인간 눈의 통합 시간 내에 공간 광 변조기에서 순차적으로 디스플레이 될 수 있으며, 공간 광 변조기는 프로젝션 및 관찰을 위해 재생 평면에서 일련의 홀로그래픽 재구성을 형성하도록 조명될 수 있다. 프로젝션을 위해 동일한 타겟 이미지를 나타내는 여러 개의 서로 다른 홀로그램을 디스플레이 하면 시청자가 보는 이미지의 품질이 향상될 수 있다.
"홀로그램"이라는 용어는 객체에 대한 진폭 정보 또는 위상 정보, 또는 그들의 몇몇 조합들을 포함하는 기록을 지칭하는데 사용된다. "홀로그래픽 재구성(holographic reconstruction)"이란 용어는 홀로그램을 조명하여 형성되는 물체의 광학적 재구성을 지칭하는 용어이다. "재생 필드(replay field)"라는 용어는 본 명세서에서 홀로그래픽 재구성이 형성되고 완전히 초점이 맞은 2D 영역을 지칭하는데 사용된다. 홀로그램이 픽셀을 포함하는 공간 광 변조기 상에 표시되는 경우, 재생 필드는 복수의 회절 차수의 형태로 반복될 것이며, 각각의 회절 차수는 0차 재생 필드의 복제이다. 0차 재생 필드는 가장 밝은 재생 필드이므로 일반적으로 선호되는 재생 필드 또는 주 재생 필드에 해당한다. 명시적으로 달리 언급하지 않는 한, "재생 필드"라는 용어는 0차 재생 필드를 지칭하는 것으로 받아들여져야 할 것이다. "재생 평면(replay plane)"이라는 용어는 모든 재생 필드를 포함하는 공간 내의 평면을 지칭한다. "이미지", "재생 이미지" 및 "이미지 영역(image region)"이라는 용어는 홀로그래픽 재구성에 비추어 조명되는 재생 필드 영역을 가리킨다. 일부 실시예들에서, "이미지"는 "이미지 스폿(image spots)", 또는 단지 편의상 "이미지 픽셀"로 지칭될 수 있는 개별적인 스폿들(discrete spots)을 포함할 수 있다.
"인코딩(encoding)", "쓰기(writing)" 또는 "어드레싱(addressing)"은 각각의 픽셀의 변조 레벨을 개별적으로 결정하는 복수의 제어값을 SLM의 복수의 픽셀들에 제공하는 프로세스를 기술하는 데 사용된다. SLM의 픽셀들은 복수의 제어 값을 수신하는 것에 응답하여 광 변조 분포를 "디스플레이" 하도록 구성된다고 할 수 있다. 따라서, SLM은 홀로그램을 "디스플레이" 한다고 할 수 있으며, 홀로그램은 광 변조 값 또는 레벨의 어레이로 간주될 수 있다.
수용 가능한 품질의 홀로그래픽 재구성은 원래의 객체와 관련된 위상 정보만을 포함하는 "홀로그램"으로부터 형성될 수 있음이 밝혀졌다. 이러한 홀로그래픽 기록은 위상-한정 홀로그램으로 지칭될 수 있다. 일부 실시예들은 단지 예로서 위상-한정 홀로그램과 관련된다. 실시예들은 위상-한정 홀로그램에 관련되나 본 발명은 진폭-한정 홀로그래피에도 동등하게 적용 가능하다.
본 발명은 또한 원래 객체와 관련된 진폭 및 위상 정보를 사용하여 홀로그래픽 재구성을 형성하는데 동일하게 적용 가능하다. 일부 실시예에서, 이것은 원래 객체와 관련된 진폭 및 위상 정보를 모두 포함하는 소위 완전-복소 홀로그램을 사용하는 복소 변조에 의해 달성된다. 이러한 홀로그램은 홀로그램의 각 픽셀에 할당된 값(그레이 레벨)이 진폭 및 위상 성분을 갖기 때문에 완전-복소 홀로그램으로 불릴 수 있다. 각 픽셀에 할당된 값(그레이 레벨)은 진폭 및 위상 성분을 갖는 복소수로 표현될 수 있다. 일부 실시예에서, 완전-복소 컴퓨터-생성 홀로그램이 계산된다.
위상 값, 위상 성분, 위상 정보, 또는 간단히, 컴퓨터-생성 홀로그램 또는 공간 광 변조기의 픽셀들의 위상을 "위상-지연"의 약자로서 참조할 수 있다. 즉, 기술된 임의의 위상 값은 사실 그 픽셀에 의해 제공된 위상 지연의 양을 나타내는 숫자(예를 들어, 0 내지 2π 범위인)이다. 예를 들어, 공간 광 변조기의 픽셀이 위상 값 π/2를 갖는 것으로 기술된다면, 이는 전달된 광의 위상을 π/2 라디안만큼 변경할 것이다. 일부 실시예들에서, 공간 광 변조기의 픽셀 각각은 복수의 가능한 변조 값들(예를 들어, 위상 지연 값들)에서 동작 가능하다. "그레이 레벨"이란 용어는 복수의 이용 가능한 변조 레벨을 지칭하는데 사용될 수 있다. 예를 들어, "그레이 레벨"이란 용어는 상이한 위상 레벨들이 상이한 그레이 정도를 제공하지 않더라도, 편의상 위상-한정 변조기의 복수의 가용 위상 레벨을 지칭하는데 사용될 수 있다. "그레이 레벨"이란 용어는 또한 복소 변조기에서 복수의 가용 복소 변조 레벨을 지칭하는데 사용될 수 있다.
따라서, 홀로그램은 그레이 레벨 어레이, 즉 위상 지연 값 또는 복소 변조 값의 어레이와 같은 광 변조 값의 어레이를 포함한다. 홀로그램은 또한 공간 광 변조기 상에 디스플레이 되고 공간 광 변조기의 픽셀 피치(pitch)와 비교할 수 있는, 일반적으로는 그보다 작은 파장을 갖는 광으로 조명될 때 회절을 야기하는 패턴이기 때문에 회절 패턴으로 간주된다. 여기서는 홀로그램을 렌즈 또는 격자(grating)로서 기능하는 회절 패턴과 같은 다른 회절 패턴과 조합하는 것을 언급한다. 예를 들어, 재생 평면 상에서 재생 필드를 이동하기 위해 격자로서 기능하는 회절 패턴이 홀로그램과 결합될 수 있거나 또는 니어-필드(near field) 내의 재생 평면 상에서 홀로그래픽 재구성의 초점을 맞추기 위해 렌즈로서 기능하는 회절 패턴이 홀로그램과 결합될 수 있다.
여기서 "타겟 이미지"라는 용어는 프로젝션을 위한 원하는 이미지를 지칭하기 위해 사용된다. 즉, 타겟 이미지는 홀로그래픽 시스템이 홀로그래픽 재생 평면 상에 프로젝션 해야 할 이미지이다. 타겟 이미지는 비디오 레이트로 프로젝트 될 일련의 이미지와 같은 일련의 이미지 중 하나일 수 있다.
본 명세서에서 "소스 이미지"라는 용어는 타겟 이미지로부터 도출된 이미지를 지칭하기 위해 사용된다. 소스 이미지는 타겟 이미지와 동일하거나 혹은 타겟 이미지의 업 스케일 된 버전 일 수 있다. 특히, 소스 이미지는 (픽셀 수 측면에서) 해상도를 높이기 위한 타겟 이미지의 업 스케일링 된 버전 일 수 있다. 즉, 소스 이미지는 타겟 이미지보다 많은 픽셀을 포함할 수 있다. 임의의 업 스케일링 기술이 사용될 수 있다. 일부 실시예들에서, 업 스케일링은 상세한 설명에서 설명된 바와 같이, 타겟 이미지의 픽셀 값을 반복하는 것을 포함한다. 이들 실시예에서, 계산 엔진은 반복을 나타내는 간단한 매핑 방식을 사용할 수 있다.
또한, 소스 이미지는 예를 들어 홀로그래픽 프로젝터의 광학 구성 요소로 인한 왜곡을 보상하기 위해 수정될 수 있다. 이 경우, 소스 이미지는 소스 이미지에서 도출된 "중간 이미지"이다. 실시예들의 설명에서, "중간 이미지"라는 용어는 예를 들어 워핑 맵(warping map)에 따라 소스 이미지로부터 도출된 이미지를 지칭하기 위해 여기에서 사용된다.
본 명세서에서 "주 이미지"라는 용어는 본 명세서에서 설명된 바와 같이 서브-샘플링 되는 이미지를 지칭하기 위해 사용된다. 주 이미지는 (1) 소스 이미지 또는 (2) 소스 이미지로부터 도출된 중간 이미지 일 수 있다.
본 명세서에서 "부 이미지"라는 용어는 주 이미지로부터 도출된 이미지를 지칭하기 위해 사용된다. 본 명세서에 설명된 바와 같이, 복수의 부 이미지는 개별 주 이미지로부터 도출될 수 있다. 각각의 부 이미지는 소스 이미지보다 적은 픽셀을 포함할 수 있다. 부 이미지의 각각의 픽셀 값은 주 이미지의 여러 픽셀 값으로부터 계산될 수 있고, 선택적으로, 상세한 설명에서 기술한 바와 같은 가중치 기술이 사용될 수 있다. 특히, 타겟 이미지로부터 소스 이미지를 형성하는데 사용되는 업 스케일링 프로세스는 주 이미지로부터 각각의 부 이미지를 형성하는데 사용되는 서브-샘플링 기술과 상이하다. 부 이미지는 각각 주 이미지와 다르지만, 선택적으로, 주 이미지와 동일한 수의 픽셀 또는 더 많은 픽셀을 가질 수 있다. 부 이미지가 소스 이미지보다 적은 픽셀을 갖는 경우, 부 이미지의 픽셀은 소스 이미지의 각 픽셀로부터의 기여를 포함할 수 있다. 각각의 부 이미지에 대응하는 홀로그램이 계산된다.
"출력 이미지"라는 용어는 여기서 또한 주 이미지를 서브-샘플링하여 도출된 "부 이미지"를 지칭하기 위해 사용되는데, 이는 설명된 바와 같은 적절한 알고리즘을 사용하여 홀로그램을 계산하기 위해 이미지 처리 엔진으로부터 홀로그램 엔진으로 출력되기 때문이다. 달리 명시되지 않는 한, "타겟 이미지", "주 이미지", "소스 이미지", "중간 이미지" 및 "부/출력 이미지"라는 용어는 각 이미지를 나타내는 픽셀 값(또는 이와 유사한 것)을 포함하는 이미지 데이터를 지칭하기 위해 여기에서 사용된다.
상이한 구성 및 구성의 그룹이 후술하는 상세한 설명에 개별적으로 개시될 수 있지만, 임의의 구성 또는 구성의 그룹의 임의의 특징은 임의의 구성 또는 구성 그룹의 임의의 다른 특징 또는 특징들의 조합과 결합될 수 있다. 즉, 본 개시에 개시된 특징들의 모든 가능한 조합 및 순열이 고려된다.
구체적인 구성은 다음의 도면을 참조하여 단지 예로서 설명된다:
도 1은 스크린 상에 홀로그래픽 재구성을 생성하는 반사형 SLM을 나타내는 개략도이다.
도 2a는 예시적인 게르흐버그-색스톤(Gerchberg-Saxton) 타입 알고리즘의 제1반복을 도시한다.
도 2b는 게르흐버그-색스톤 타입 알고리즘의 두 번째 및 후속 반복을 도시한다.
도 2c는 게르흐버그-색스톤 타입 알고리즘의 대안적인 두 번째 및 후속 반복을 도시한다.
도 3은 반사형 LCOS SLM의 개략도이다.
도 4a 및 도 4b는 실시예들에 따라 2개의 연속적인 샘플링 위치에서 동작하는 4x4 커널을 사용하여 출력 이미지를 도출하기 위해 주 이미지를 서브-샘플링 하는 예시적인 기술을 도시한다.
도 5a는 일반 커널을 나타내고, 도 5b는 도 4a 및 도 4b의 기술에 사용하기 위한 커널 값 또는 가중치를 갖는 예시 커널을 나타낸다.
도 6은 실시예들에 따라 커널을 사용하여 서브-샘플링을 위한 주 이미지의 픽셀 데이터를 스트리밍 하는 방법을 개략적으로 도시한다.
도 7은 실시예들에 따라 주 이미지의 제1행의 이미지 픽셀 데이터의 입력 데이터 스트림 및 버퍼에 제공된 값의 출력 데이터 스트림에 대해 수행되는 도 6의 커널 서브-샘플링 절차를 도시한다.
도 8은 실시예에 따라 커널 서브-샘플링 절차에 피드백으로서 제공되는 부분 픽셀 값으로서 도 7에 도시된 값의 출력 데이터 스트림이 사용되는 방법을 개략적으로 도시한다.
도 9는 도 7의 절차의 출력 데이터 값을 피드백으로 수신하는 주 이미지의 두 번째 행 이미지 픽셀 데이터의 입력 데이터 스트림에 대해 수행된 커널 서브-샘플링 절차와 실시예에 따라 버퍼에 제공되는 값의 출력 데이터 스트림을 도시한다.
도 10은 주 이미지의 이전 행의 픽셀 값에 대해 수행된 절차의 출력 데이터 값을 피드백으로서 수신하여 주 이미지의 마지막 행에 있는 이미지 픽셀 데이터의 입력 데이터 스트림 및 부 이미지에 대응하는 전체 (또는 완전한) 픽셀 값의 출력 스트림에 대해 수행되는, 실시예에 따른 커널 서브-샘플링 절차를 도시한다.
도 11은 실시예에 따른 커널 서브-샘플링 절차에 대해 픽셀 값의 데이터 스트림이 커널 값의 데이터 스트림과 동기화되는 데이터 스트리밍 절차의 흐름도를 도시한다.
도 12는 실시예에 따른 픽셀 값의 데이터 스트림과 행 단위의 커널 값을 사용하여 커널 서브-샘플링 절차에 대한 입력 값을 포함하는 커널 연산 및 버퍼링 절차의 흐름도를 도시하며, 여기서 각 행에 대한 서브-샘플링 절차의 출력 값은 부분 픽셀 값으로서 버퍼링 되고 다음 행에 대한 서브-샘플링 절차에 피드백으로서 제공된다.
도 13은 실시예에 따른 홀로그래픽 프로젝터를 도시하는 개략도이다.
도면에서, 동일한 참조 번호는 동일하거나 유사한 부분을 지칭한다.
본 발명은 다음에 설명되는 구성에 제한되지 않으며, 첨부된 청구 범위의 전체 범위로 확장한다. 즉, 본 발명은 다른 형태로 실시될 수 있으며 설명의 목적으로 제시된 기재된 구성에 한정되는 것으로 해석되어서는 안 된다.
단수형의 용어는 달리 명시되지 않는 한 복수형을 포함할 수 있다.
다른 구조물의 상부/하부 또는 상/하에 형성된 구조물이라고 기술된 경우, 구조물들이 서로 접촉하는 경우 및 제3의 구조물이 그 사이에 배치되는 경우를 포함하는 것으로 해석되어야 한다.
시간 관계를 기술함에 있어서, 사건의 시간 순서가 예를 들어 "후", "후속", "다음", "전" 등으로 기술될 때, 본 개시는 별도로 규정하지 않는 한은 연속적 및 비연속적 사건을 포함하는 것으로 간주되어야 한다. 예를 들어, 그 기재가 "막(just)", "바로(immediate)" 또는 "직접(direct)"라는 기재가 사용되지 않는 한, 비연속적 경우를 포함하는 것으로 간주되어야 한다.
"제1", "제2" 등의 용어는 다양한 요소를 설명하기 위해 본 명세서에서 사용될 수 있지만, 이러한 요소들은 이들 용어에 의해 제한되지 않는다. 이 용어는 하나의 요소를 다른 요소와 구별하기 위해서만 사용된다. 예를 들어, 제1요소는 제2요소로 지칭될 수 있고, 유사하게, 제2요소는 첨부된 청구 범위를 벗어남 없이 제1요소로 지칭될 수 있다.
상이한 구성의 특징들은 부분적으로 또는 전체적으로 서로 연결되거나 결합될 수 있으며, 다양한 형태로 서로 상호 작용할 수 있다. 어떤 구성은 서로 독립적으로 수행될 수도 있고, 서로 연계되어 함께 수행될 수도 있다.
광학 구성
도 1은 컴퓨터 생성 홀로그램이 단일 공간 광 변조기 상에 인코딩 되는 실시예를 도시한다. 컴퓨터 생성 홀로그램은 재구성을 위한 객체의 푸리에 변환이다. 따라서 홀로그램은 객체의 푸리에 도메인 또는 주파수 도메인 또는 스펙트럼 도메인 표현이라고 말할 수 있다. 일 실시예에서, 공간 광 변조기는 실리콘 장치, "LCOS", 상의 반사형 액정이다. 홀로그램은 공간 광 변조기 상에 인코딩 되고, 홀로그래픽 재구성은 재생 필드, 예컨대 스크린 또는 디퓨져와 같은 수광 부재 또는 스크린에 형성된다.
예컨대 레이저나 레이저 다이오드 같은 광원(110)은 콜리메이팅 렌즈(Collimating Lens, 111)를 통해 SLM(140)에 조명하도록 배치된다. 콜리메이팅 렌즈는 광이 SLM 상에 전체적으로 평면 파면으로 입사되도록 만든다. 도 1에서, 파면의 방향은(예컨대, 투명층의 평면 대비 완전 직각으로부터 2° 또는 3° 정도 떨어진) 약간 오프노멀(Off-Normal)하다. 그러나, 다른 실시예들에서, 전체적으로 평면인 파면은 법선 방향으로 입사되고, 입력 및 출력 광 경로를 분리하기 위한 빔 스플리터 배치(beam splitter arrangement)가 사용된다. 도 1에 도시된 실시예에서, 이러한 배치는, 광원으로부터 오는 광이 SLM의 후방면의 미러에 반사되며 출사 파면(Exiting Wavefront, 112)을 형성하기 위해 광 변조층과 상호작용하게 한다. 출사 파면(112)은 스크린(125)에 초점이 맞춰진 푸리에 변환 렌즈(120)를 포함하는 광학계에 적용된다. 더욱 상세하게, 푸리에 변환 렌즈(120)는 SLM(140)으로부터 출사되는 변조된 광의 빔을 전달받아 스크린(125)에 홀로그래픽 재구성을 생성하기 위해 주파수-공간 변환을 수행한다.
특히, 이러한 유형의 홀로그래피에서 홀로그램의 각 픽셀은 전체 재구성에 기여한다. 재생 필드의 특정 지점(또는 이미지 픽셀)과 특정 광 변조 요소(또는 홀로그램 픽셀) 간에는 일대일 상관 관계가 없다. 다르게 표현하면, 광 변조 층을 나가는 변조된 광은 재생 영역을 가로 질러 분배된다.
실시예에서, 공간 상에서의 홀로그래픽 재구성의 위치는 푸리에 변환 렌즈의 굴절(포커싱) 파워(dioptric(focusing) power)에 의해 결정된다. 도 1에 도시된 실시예에서, 푸리에 변환 렌즈는 물리적 렌즈이다. 즉, 푸리에 변환 렌즈는 광학적 푸리에 변환 렌즈이며 푸리에 변환은 광학적으로 수행된다. 어떤 렌즈라도 푸리에 변환 렌즈 역할을 할 수 있지만, 수행되는 푸리에 변환의 정확도는 렌즈의 성능에 좌우된다. 통상의 기술자는 렌즈를 사용하여 광학적 푸리에 변환을 수행하는 방법을 이해한다.
홀로그램 계산
일부 실시예에서, 컴퓨터 생성 홀로그램은 푸리에 변환 홀로그램, 또는 단순히 푸리에 홀로그램 또는 푸리에 기반 홀로그램이고, 여기서 이미지는 양의 렌즈의 푸리에 변환 특성을 이용하여 파-필드(far-field)에서 재구성된다. 푸리에 홀로그램은 재생면의 원하는 광 필드를 푸리에 변환하여 렌즈 평면에 오도록 계산된다. 컴퓨터 생성 푸리에 홀로그램은 푸리에 변환을 사용하여 계산될 수 있다.
푸리에 변환 홀로그램은 게르흐버그-색스톤(Gerchberg-Saxton)과 같은 알고리즘을 사용하여 계산될 수 있다. 또한, 게르흐버그-색스톤 알고리즘은 공간영역(예컨대, 사진)의 진폭-한정 정보로부터 푸리에 도메인의 홀로그램(즉, 푸리에 변환 홀로그램)을 계산하는 데 사용될 수 있다. 객체에 관한 위상 정보는 공간영역 내의 진폭-한정 정보로부터 "얻어질(retrieved)" 수 있다. 몇몇 실시예들에서, 컴퓨터-생성 홀로그램은 게르흐버그-색스톤 알고리즘 또는 그 변형 알고리즘을 이용해 진폭-한정 정보로부터 계산된다.
게르흐버그-색스톤 알고리즘은, 각각의 평면 A와 B에서 광빔(light beam) IA(x, y) 및 IB(x, y)의 강도 단면(intensity cross-sections)이 각각 단일 푸리에 변환으로 상호 연관되어 있는 상황을 고려한다. 주어진 강도 단면에서, 평면 A 및 B에서의 각각의 위상 분포에 대한 근사치인 ΨA(x, y) 및 ΨB(x, y) 가 구해진다. 게르흐버그-색스톤 알고리즘은 반복 프로세스(iterative process)를 따름으로써 이 문제에 대한 해결책을 찾는다. 더욱 상세하게, 게르흐버그-색스톤 알고리즘은 공간 영역과 푸리에(스펙트럼 또는 주파수) 영역 사이에서 IA(x, y) 및 IB(x, y)를 대표하는 데이터 세트(진폭 및 위상)를 반복적으로 전달하면서(repeatedly transferring) 공간적 및 스펙트럼 제약(constraints)을 반복적으로 적용한다. 스펙트럼 영역 내 상응하는 컴퓨터 생성 홀로그램이 이 알고리즘의 1 회 이상의 반복을 통해 얻어진다. 이 알고리즘은 입력 이미지를 나타내는 홀로그램을 생성하도록 구성되고 수렴된다. 홀로그램은 진폭-한정 홀로그램, 위상-한정 홀로그램 또는 완전-복소 홀로그램(fully-complex hologram)일 수 있다.
일부 실시예에서, 위상-한정 홀로그램은 영국 특허 제2,498,170호 또는 제2,501,112호에 기술된 바와 같은 게르흐버그-색스톤 알고리즘에 기초한 알고리즘을 사용하여 계산되며, 이 특허들은 그 전체로서 원용되어 본 명세서에 통합된다. 그러나, 여기에 개시된 실시예는 단지 예시로서 위상-한정 홀로그램을 계산하는 것을 설명한다. 이들 실시예에서, 게르흐버그-색스톤 알고리즘은 알려진 진폭 정보 T[x, y]를 발생시키는 데이터 세트의 푸리에 변환의 위상 정보 Ψ[u, v]를 검색하는데, 여기서 진폭 정보 T[x, y]는 타겟 이미지(예컨대, 사진)를 나타낸다. 진폭과 위상은 푸리에 변환에서 본질적으로 결합되므로, 변환된 크기와 위상에는 계산된 데이터 세트의 정확성에 대한 유용한 정보가 포함된다. 따라서, 알고리즘은 진폭 및 위상 정보 모두에 대한 피드백을 반복적으로 사용할 수 있다. 그러나, 이들 실시예에서, 위상 정보 Ψ[u, v]만이 홀로그램으로서 사용되어 이미지 평면에서 타겟 이미지의 홀로그래픽 표현을 형성한다. 홀로그램은 위상 값들의 데이터 세트(예를 들어, 2D 어레이)이다.
다른 실시예에서, 게르흐버그-색스톤 알고리즘에 기초한 알고리즘은 완전-복소 홀로그램을 계산하는데 사용된다. 완전-복소 홀로그램은 크기 성분 및 위상 성분을 갖는 홀로그램이다. 홀로그램은 복소 데이터 값들의 어레이를 포함하는 데이터 세트(예를 들어, 2D 어레이)이고, 각각의 복소 데이터 값은 크기 성분 및 위상 성분을 포함한다.
일부 실시예에서, 알고리즘은 복소 데이터를 처리하고, 푸리에 변환은 복소 푸리에 변환이다. 복소 데이터는 (i) 실수 성분 및 허수 성분 또는 (ii) 크기 성분 및 위상 성분을 포함하는 것으로 간주될 수 있다. 일부 실시예에서, 복소 데이터의 2개의 성분은 알고리즘의 다양한 단계에서 다르게 처리된다.
도 2a는 위상-한정 홀로그램을 계산하기 위한 일부 실시예에 따른 알고리즘의 제1반복을 도시한다. 알고리즘에 대한 입력은 픽셀 또는 데이터 값의 2D 어레이를 포함하는 입력 이미지(210)이며, 여기서 각 픽셀 또는 데이터 값은 크기 또는 진폭 값이다. 즉, 입력 이미지(210)의 각 픽셀 또는 데이터 값은 위상 성분을 갖지 않는다. 따라서, 입력 이미지(210)는 크기-한정 또는 진폭-한정 또는 세기-한정 분포로 간주될 수 있다. 이러한 입력 이미지(210)의 일례는 프레임의 시간적 시퀀스를 포함하는 비디오 또는 사진의 한 프레임이다. 알고리즘의 제1반복은 랜덤 위상 분포(또는 랜덤 위상 시드)(230)를 사용하여, 초기 복소 데이터 세트(starting complex data set)의 각각의 데이터 요소가 크기 및 위상을 포함하도록, 입력 이미지의 각 픽셀에 랜덤 위상 값을 할당하는 단계를 포함하는 데이터 형성 단계(202A)에서 시작한다. 초기 복소 데이터 세트는 공간 도메인에서의 입력 이미지를 나타낸다고 말할 수 있다.
제1프로세싱 블록(250)은 초기 복소 데이터 세트를 수신하고 복소 푸리에 변환을 수행하여 푸리에 변환된 복소 데이터 세트를 형성한다. 제2프로세싱 블록(253)은 푸리에 변환된 복소 데이터 세트를 수신하여 홀로그램(280A)을 출력한다. 일부 실시예에서, 홀로그램(280A)은 위상-한정 홀로그램이다. 이들 실시예에서, 제2프로세싱 블록(253)은 각각의 위상 값을 양자화하고 홀로그램(280A)을 형성하기 위해 각 진폭 값을 1로 설정한다. 각 위상 값은 위상-한정 홀로그램을 "디스플레이" 하는데 사용될 공간 광 변조기의 픽셀 상에 표현될 수 있는 위상 레벨에 따라 양자화된다. 예를 들어, 공간 광 변조기의 각 픽셀이 256 개의 상이한 위상 레벨을 제공하면, 홀로그램의 각 위상 값은 256개의 가능한 위상 레벨 중 하나의 위상 레벨로 양자화된다. 홀로그램(280A)은 입력 이미지를 나타내는 위상-한정 푸리에 홀로그램이다. 다른 실시예에서, 홀로그램(280A)은 수신된 푸리에 변환된 복소 데이터 세트로부터 유도된 복소 데이터 값(각각 진폭 성분 및 위상 성분을 포함함)의 어레이를 포함하는 완전-복소 홀로그램이다. 일부 실시예에서, 제2프로세싱 블록(253)은 홀로그램(280A)을 형성하기 위해 복수의 허용 가능한 복소 변조 레벨 중 하나로 각각의 복소 데이터 값을 제한한다. 제한 단계는 복소수 평면에서 각 복소 데이터 값을 가장 가까운 허용 복소수 변조 레벨로 설정하는 단계를 포함할 수 있다. 홀로그램(280A)은 스펙트럼 또는 푸리에 또는 주파수 도메인에서의 입력 이미지를 나타낸다고 말할 수 있다. 일부 실시예에서, 알고리즘은 이 시점에서 정지한다.
그러나, 다른 실시예에서, 알고리즘은 도 2a의 점선 화살표로 나타낸 바와 같이 계속된다. 즉, 도 2a의 점선 화살표를 따르는 단계는 선택적이다(즉, 모든 실시예에 필수적인 것은 아님).
제3프로세싱 블록(256)은 제2프로세싱 블록(253)으로부터 수정된 복소 데이터 세트를 수신하고, 역 푸리에 변환된 복소 데이터 세트를 형성하기 위해 역 푸리에 변환을 수행한다. 역 푸리에 변환된 복소 데이터 세트는 공간 도메인에서의 입력 이미지를 나타낸다고 말할 수 있다.
제4프로세싱 블록(259)은 역 푸리에 변환된 복소 데이터 세트를 수신하고, 진폭 값(211A)의 분포 및 위상 값(213A)의 분포를 추출한다. 선택적으로, 제4프로세싱 블록(259)은 진폭 값들(211A)의 분포를 평가한다. 구체적으로, 제4프로세싱 블록(259)은 역 푸리에 변환된 복소 데이터 세트의 진폭 값(211A)의 분포를, 당연히 진폭 값의 분포인, 입력 이미지(510)와 비교할 수 있다. 진폭 값들(211A)과 입력 이미지(210)의 분포 사이의 차이가 충분히 작으면, 제4프로세싱 블록(259)은 홀로그램(280A)이 허용 가능한 것으로 결정할 수 있다. 즉, 진폭 값들(211A)의 분포와 입력 이미지(210)의 차이가 충분히 작으면, 제4프로세싱 블록(259)은 홀로그램(280A)이 입력 이미지(210)를 충분히 정확하게 나타내는 것으로 결정할 수 있다. 일부 실시예들에서, 비교 과정에서 역 푸리에 변환된 복소 데이터 세트의 위상 값(213A)의 분포는 무시된다. 진폭 값들(211A) 및 입력 이미지(210)의 분포를 비교하기위한 임의의 수의 상이한 방법들이 이용될 수 있으며, 본 개시는 임의의 특정 방법에 제한되지 않음을 이해할 것이다. 일부 실시예들에서, 평균 제곱 차이가 계산되고, 평균 제곱 차이가 임계값 보다 작은 경우, 홀로그램(280A)은 수용 가능한 것으로 간주된다. 제4프로세싱 블록(259)이 홀로그램(280A)이 수용 가능하지 않다고 결정하면, 알고리즘의 추가 반복이 수행될 수 있다. 그러나, 이러한 비교 단계는 필수적인 것은 아니며, 다른 실시예에서, 수행된 알고리즘의 반복 횟수는 미리 결정되거나 미리 설정되거나 사용자 정의된다.
도 2b는 알고리즘의 제2반복 및 알고리즘의 임의의 반복을 나타낸다. 선행 반복의 위상 값(213A)의 분포는 알고리즘의 처리 블록을 통해 피드백 된다. 제1반복에서, 데이터 형성 단계(202A)는 입력 이미지(210)의 진폭 값들의 분포를 랜덤 위상 분포(230)와 결합하여 제1복소 데이터 세트를 형성한다. 그러나, 제2 및 후속 반복에서, 데이터 형성 단계(202B)는 (i) 알고리즘의 이전 반복으로부터의 위상 값(213A)의 분포와 (ii) 입력 이미지(210)의 진폭 값들의 분포를 합하여 복소 데이터 세트를 형성하는 단계를 포함한다.
도 2b의 데이터 형성 단계(202B)에 의해 형성된 복소 데이터 세트는 도 2a를 참조하여 기술된 것과 동일한 방식으로 처리되어 제2반복 홀로그램(280B)을 형성한다. 따라서 여기에서 프로세스의 설명은 반복되지 않는다. 알고리즘은 제2반복 홀로그램(280B)이 계산되면 중단될 수 있다. 그러나, 알고리즘의 임의의 수의 추가 반복이 수행될 수 있다. 제3프로세싱 블록(256)은 제4프로세싱 블록(259)이 요구되거나 더 많은 반복이 요구되는 경우에만 요구된다는 것을 이해할 것이다. 출력 홀로그램(280B)은 일반적으로 반복마다 개선된다. 그러나 실제로는, 측정 가능한 개선이 관찰되지 않거나, 처리 시간의 증가라는 부정적 효과가 추가 반복을 수행하는 긍정적 이점 보다 커지는 시점이 도달한다. 따라서, 알고리즘은 반복적이고 수렴적으로 기술된다.
도 2c는 제2및 후속 반복의 대안적인 실시예를 나타낸다. 선행 반복의 위상 값(213A)의 분포는 알고리즘의 프로세싱 블록을 통해 피드백 된다. 진폭 값(211A)의 분포는 대안적인 진폭 값의 분포를 위해 소거된다. 이 대안적인 실시예에서, 대안적인 진폭 값의 분포는 이전 반복의 진폭 값(211)의 분포로부터 도출된다. 특히, 프로세싱 블록(258)은 이전 반복의 진폭 값들(211)의 분포로부터 입력 이미지(210)의 진폭 값들의 분포를 감산하고, 그 차이를 이득 계수 α만큼 스케일링하고, 입력 이미지(210)로부터 스케일링 된 차분을 감산한다. 이는 다음의 방정식에 의해 수학적으로 표현되며, 아래 첨자 텍스트 및 숫자는 반복 횟수를 나타낸다.
Figure pat00001
여기서:
F '는 역 푸리에 변환이고;
F는 순방향 푸리에 변환이고;
R[x, y]는 제3프로세싱 블록(256)에 의해 출력된 복소 데이터 세트이고;
T[x, y]는 입력 또는 타겟 이미지고;
∠는 위상 성분이고;
Ψ는 위상-한정 홀로그램(280B)이고;
η은 진폭 값(211B)의 새로운 분포이며;
α는 이득 계수이다.
이득 계수 α는 고정되거나 가변적일 수 있다. 일부 실시예에서, 이득 계수 α는 입력 목표 이미지 데이터의 크기 및 속도(rate)에 기초하여 결정된다. 일부 실시예에서, 이득 계수 α는 반복 횟수에 의존한다. 일부 실시예에서, 이득 계수 α는 단지 반복 횟수의 함수이다.
도 2c의 실시예는 다른 모든 면에서 도 2a 및 도 2b의 실시예와 동일하다. 위상 전용 홀로그램 Ψ(u, v)는 주파수 또는 푸리에 도메인에서의 위상 분포를 포함한다고 말할 수 있다.
일부 실시예에서, 푸리에 변환은 공간 광 변조기를 사용하여 수행된다. 구체적으로, 홀로그램 데이터는 광학 파워를 제공하는 제2데이터와 결합된다. 즉, 공간 광 변조기에 쓰여지는 데이터는 객체를 나타내는 데이터 및 렌즈를 나타내는 데이터를 포함한다. 공간 광 변조기에 디스플레이 되고 광이 조명되면 렌즈 데이터는 물리적인 렌즈를 모방(emulate)한다. 즉, 렌즈 데이터는 이에 상응하는 물리적인 광학 장치와 동일한 방식으로 광의 초점을 맞춘다. 따라서 렌즈 데이터는 광학 파워 또는 포커싱(focusing) 파워를 제공한다. 이러한 실시예에서, 도 1의 물리적 푸리에 변환 렌즈(120)는 생략될 수 있다. 렌즈를 나타내는 데이터를 계산하는 방법은 알려져 있다. 렌즈를 나타내는 데이터는 소프트웨어 렌즈라고 지칭될 수 있다. 예를 들어, 굴절률과 공간적으로 가변적 인 광로 길이로 인해 렌즈의 각 지점에서 발생하는 위상 지연을 계산하여 위상-한정 렌즈를 형성할 수 있다. 예를 들어 볼록 렌즈 중앙의 광학 경로 길이는 렌즈 가장자리의 광학 경로 길이보다 크다. 진폭-한정 렌즈는 프레넬 존 플레이트에 의해 형성될 수 있다. 홀로그램의 푸리에 변환이 물리적 푸리에 렌즈 없이 수행될 수 있도록 렌즈를 나타내는 데이터를 홀로그램과 결합하는 방법은 컴퓨터 생성 홀로그래피 기술 분야에서도 알려져 있다. 일부 실시예에서, 렌즈(lensing) 데이터는 단순 벡터 합산과 같은 단순 합산에 의해 홀로그램과 결합된다. 일부 실시예에서, 물리적 렌즈는 푸리에 변환을 수행하기 위해 소프트웨어 렌즈와 함께 사용된다. 대안적으로, 다른 실시예에서, 홀로그래픽 재구성이 파-필드(far-field)에서 발생하도록 푸리에 변환 렌즈는 모두 생략된다. 추가 실시예에서, 홀로그램은 격자(grating) 데이터, 즉 이미지 스티어링(steering)과 같은 격자 기능을 수행하도록 배열된 데이터와 동일한 방식으로 결합될 수 있다. 다시 말하지만, 그러한 데이터를 계산하는 방법은 당업계에 알려져 있다. 예를 들어, 블레이즈 된(brazed) 격자 표면의 각 지점에 의해 발생하는 위상 지연을 모델링하여 위상-한정 격자가 형성될 수 있다. 진폭-한정 격자는 홀로그래픽 재구성의 각도 조정을 제공하기 위해 진폭-한정 홀로그램과 간단히 중첩될 수 있다. 렌즈 및/또는 조향을 제공하는 제2데이터는 이미지 형성 함수 또는 이미지 형성 패턴으로 지칭될 수 있는 홀로그램 데이터와 구별하기 위해 광 처리 함수 또는 광 처리 패턴으로 지칭될 수 있다.
일부 실시예에서, 푸리에 변환은 물리적 푸리에 변환 렌즈 및 소프트웨어 렌즈에 의해 공동으로 수행된다. 즉, 푸리에 변환에 기여하는 일부 광학 파워는 소프트웨어 렌즈에 의해 제공되고 푸리에 변환에 기여하는 나머지 광학 파워는 물리적 광학 또는 광학들에 의해 제공된다.
일부 실시예에서, 이미지 데이터를 수신하고 알고리즘을 사용하여 실시간으로 홀로그램을 계산하도록 구성된 실시간 엔진이 제공된다. 일부 실시예에서, 이미지 데이터는 일련의 이미지 프레임을 포함하는 비디오이다. 다른 실시예에서, 홀로그램은 사전 계산되고, 컴퓨터 메모리에 저장되며, SLM 상에 디스플레이 하기 위해 필요에 따라 호출된다. 즉, 일부 실시예에서, 소정의 홀로그램의 저장소가 제공된다.
실시예는 푸리에 홀로그래피 및 게르흐버그-색스톤 타입 알고리즘에 관한 것이다. 본 개시는 유사한 방법으로 계산될 수 있는 프레넬 홀로그래피 및 프레넬 홀로그램에 동일하게 적용될 수 있다. 본 개시는 또한 포인트 클라우드 방법에 기초한 것과 같은 다른 기술에 의해 계산된 홀로그램에도 적용될 수 있다.
광 변조
공간 광 변조기는 컴퓨터 생성 홀로그램을 포함하는 회절 패턴을 디스플레이 하는데 사용될 수 있다. 홀로그램이 위상-한정 홀로그램인 경우, 위상을 변조하는 공간 광 변조기가 필요하다. 홀로그램이 완전-복소 홀로그램인 경우, 위상 및 진폭을 변조하는 공간 광 변조기가 사용될 수 있거나 위상을 변조하는 제1공간 광 변조기 및 진폭을 변조하는 제2공간 광 변조기가 사용될 수 있다.
일부 실시예에서, 공간 광 변조기의 광 변조 소자(즉, 픽셀)는 액정을 포함하는 셀이다. 즉, 일부 실시예에서, 공간 광 변조기는 광학 능동 소자가 액정인 액정 장치이다. 각각의 액정 셀은 복수의 광 변조 레벨을 선택적으로 제공하도록 구성된다. 즉, 각 액정 셀은 어느 한 시점에서 복수의 가능한 광 변조 레벨들로부터 선택된 하나의 광 변조 레벨에서 동작하도록 구성된다. 각각의 액정 셀은 복수의 광 변조 레벨 중에서 다른 광 변조 레벨로 동적으로 재구성 가능하다. 일부 실시예에서, 공간 광 변조기는 실리콘(LCOS) 공간 광 변조기 상의 반사형 액정이지만, 본 발명은 이러한 유형의 공간 광 변조기에 한정하지 않는다.
LCOS 장치는 작은 개구(예를 들어, 폭이 수 센티미터) 내의 조밀한 어레이의 광 변조 소자 또는 픽셀을 제공한다. 픽셀은 통상 약 10미크론 이하이어서 수 도(a few degrees) 수준의 회절각을 가지며, 이는 광학 시스템이 콤팩트 할 수 있다는 것을 의미한다. LCOS SLM의 작은 개구를 적절하게 조명하는 것은 다른 액정 장치의 큰 개구를 조명하는 것보다 용이하다. LCOS 장치는 통상 반사형이므로 LCOS SLM의 픽셀을 구동하는 회로를 반사 표면 아래에 묻을 수 있다. 결과적으로 개구율이 높아진다. 즉, 픽셀은 밀집되어 있어 픽셀 간에 낭비되는 공간(dead space)이 거의 없음을 의미한다. 이는 재생 필드에서의 광학 노이즈를 감소시키므로 유리하다. LCOS SLM은 픽셀이 광학적으로 편평하다는 이점을 갖는 실리콘 후면을 사용한다. 이 점은 위상 변조 장치에서 특히 중요하다.
단지 예시로서, 적합한 LCOS SLM이 도 3을 참조하여 아래와 같이 기술된다. LCOS 소자는 단결정 실리콘 기판(302)을 사용하여 형성된다. 이는 간극(301a)에 의해 이격되며 기판의 상부 표면에 배치된 사각 평면형 알루미늄 전극(301)의 2차원 어레이를 가진다. 전극(301) 각각은 기판(302)에 매설된 회로(302a)를 통해 형성될 수 있다. 각각의 전극들은 각각의 평면 미러를 형성한다. 배향층(Alignment Layer, 303)이 전극 어레이 상에 배치되고, 액정층(304)은 배향층(303)에 배치된다. 제2배향층(305)은 액정층(304)에 배치되고, 예컨대, 유리로 된 평면 투명층(306)은 제2배향층(305)에 배치된다. 예컨대 ITO로 된 단일 투명 전극(307)은 투명층(306)과 제2배향층(305) 사이에 배치된다.
사각 전극(301) 각각은, 투명전극(307) 영역 상부와 중간에 개재되는 액정물질과 함께, 종종 픽셀로 지칭되는 제어 가능한 위상 변조 소자(308)를 형성한다. 유효 픽셀 영역, 즉 충전율은 픽셀(301a) 사이의 공간까지 고려하여 광학적으로 활성인 총 픽셀의 비율이다. 각각의 전극(301)에 인가된 투명전극(307)에 대한 전압을 제어함으로써, 위상 변조된 요소의 액정 물질의 특성은 변화될 수 있고, 따라서 그에 입사되는 입사광에 가변 지연을 제공한다. 이렇게 함으로써 파면(wavefront)에 위상-한정 변조가 가해지는 한편 어떤 진폭 효과도 발생하지 않는다.
전술한 LCOS SLM는 공간적으로 변조된 광을 반사에 의해 출력한다. 반사형 LCOS SLM은 신호 라인, 게이트 라인 및 트랜지스터가 미러 면 아래에 있으며, 높은 충전율(일반적으로 90 % 이상) 및 고해상도를 얻을 수 있는 이점이 있다. 반사형 LCOS 공간 광 변조기를 사용하는 또 다른 이점은 투과형 장치가 사용되는 경우에 필요한 것보다 요구되는 액정 층 두께가 절반일 수 있다는 것이다. 이것은 액정의 스위칭 속도를 크게 향상시킨다(움직이는 비디오 이미지의 프로젝션을 위한 주요 이점). 그러나, 본 발명의 개시 내용은 투과형 LCOS SLM을 사용하여 동일하게 구현될 수 있다.
커널을 사용한 서브-샘플링
도 4a, 도 4b는 도 5a 및 도 5에 예시된 바와 같이, "커널"을 사용하여 주 이미지로부터 부 이미지를 도출하는 기술을 도시한다. 커널은 움직이는 "샘플링 윈도우" 또는 "가상 개구(aperture)"로 간주될 수 있다. 커널은 샘플링 윈도우 내에 놓이는 이미지의 픽셀 그룹에서 작동하여 이를 나타내는 단일 출력 (서브-샘플링 된) 픽셀 값을 도출한다. 따라서 커널은 고해상도 주 이미지(예컨대, 소스 이미지 또는 중간 이미지)의 픽셀을, 부 이미지 각각은 주 이미지보다 적은 픽셀 수를 가지도록, "언더 샘플링" 또는 "서브-샘플링"하여 하나 이상의 부 이미지(예컨대, 출력 이미지)를 도출하는 데 사용된다.
도 5a는 4x4 커널 값("커널 픽셀"또는 "가중치"라고도 함)을 포함하는 일반 커널을 도시하며, 도 5b는 4x4 커널 값을 포함하는 예제 커널을 도시한다. 각 커널 값은 샘플링 윈도우 내 해당 위치에서 주 이미지의 픽셀 값에 대한 가중치 인자 또는 가중치를 정의한다. 도 5a에 도시된 바와 같이, 커널 값은 Wx, y로 표시되며, 여기서 x 및 y는 커널을 형성하는 4x4 어레이 내의 커널 값의 각 좌표이다. 도 5b의 커널 예에서, 더 높은 가중치(예컨대, 커널 값 = 3)는 샘플링 윈도우의 중앙에 있는 픽셀 값에 제공되고, 더 낮은 가중치(예컨대, 커널 값 = 1)는 가장자리 및 샘플링 윈도우의 모서리의 픽셀 값에 제공된다. 예시된 실시예에서, 각 샘플링 위치에서 커널은 (i) 샘플링 윈도우 내에 있는 주 이미지의 4x4 픽셀 어레이의 각 픽셀 값을 해당 커널 값 또는 가중치와 곱하고, (ii) 정규화 된 (즉, 가중치가 없는) 가중치가 적용된 픽셀 값의 평균(예컨대, 가중치가 적용된 픽셀 값의 합을 커널 값의 합(즉, 총 커널 가중치)으로 나누어 계산된 평균)은 4x4를 나타내는 단일 출력 값을 도출한다. 예시된 예에서, 총 커널 가중치 = 24이다. 따라서, 단계 (ii)는 샘플링 윈도우 내의 픽셀의 가중치 픽셀 값을 합하고 24로 나눔으로써 수행될 수 있다.
도 5b는 주 이미지의 4x4 픽셀 어레이의 내부 샘플링 된 픽셀(즉, 샘플링 윈도우의 중심에 있는 픽셀)의 픽셀 값이 주 이미지의 외부 샘플 픽셀의 픽셀 값보다 더 높은 가중치를 갖도록 커널 가중치를 정의하는 간단한 예제 커널을 보여준다. 당업자라면 이해하는 바와 같이, 커널 가중치 값의 많은 변형이 애플리케이션 요구 사항에 따라 가능하다. 또한 샘플링 윈도우 또는 가상 개구에 해당하는 커널 모양 및 크기(배열, 종횡 비 및 커널 값/가중치 수)는 애플리케이션 요구 사항에 따라 선택될 수 있다. 예를 들어, 커널 가중치는 최적의 앤티 앨리어싱(antialiasing) 결과를 얻기 위해 선택될 수 있다.
예제 기술에 따라, 4x4 커널은, 주 이미지의 일련의 연속적인 (즉, 인접하고 겹치지 않는) 4x4 픽셀 어레이를 서브-샘플링 하도록, 주 이미지 위에서 일련의 샘플링 위치(예컨대, 주 이미지 또는 "샘플링 윈도우 위치" 위의 샘플링 윈도우의 위치)로 점진적으로 이동된다. 복수의 샘플링 위치는 주 이미지의 전체에 대한 서브-샘플링된 픽셀 값에 대응하는 출력 값을 도출하기 위해 주 이미지의 실질적으로 모든 픽셀이 서브-샘플링 되도록 정의된다. 실시예에서, 샘플링 위치는 주 이미지 상의 x 및 y 방향으로 일정한 픽셀 간격 또는 "스트라이드"로 이격 되어 정의된다. 커널은 주 이미지를 픽셀 간격으로 또는 스트라이드로 x 및 y 방향으로 점진적으로 횡단한다고 말할 수 있다.
주 이미지 상에서 커널의 연속한 두 샘플링 위치가 도 4a 및 도 4b에 도시된다. 특히, 초기 (또는 첫 번째) 샘플링 위치 또는 "시작 위치"가 도 4a에 도시된다. 샘플링 위치는 커널의 왼쪽 상단 모서리에 해당하는 주 이미지의 픽셀 좌표로 정의될 수 있다. 도 4a에 도시된 예에서 첫 번째 샘플링 위치는 주 이미지의 픽셀 좌표 (0, 0)에 있다. 커널은 스트라이드에 따라 주 이미지에서 왼쪽에서 오른쪽으로 점진적으로 이동한다. 예시한 기술에서 스트라이드는 각 샘플링 위치에 형성되는 샘플링 윈도우가 인접하여 연속하되(contiguous) 서로 겹치지 않도록 x 방향으로 4 픽셀, y 방향으로 4 픽셀이다. 따라서, 두 번째 샘플링 위치는 주 이미지의 픽셀 좌표 (0, 4)에 있으며, 이는 도 4b에 도시된 대로 x 방향으로 4 픽셀의 스트라이드 거리에 해당한다. 당업자라면 이해하는 바와 같이, 후속 샘플링 위치는 주 이미지의 처음 4 개 행의 마지막 픽셀 값에 도달할 때까지 픽셀 좌표 (0, 8), (0, 12) 등에 있을 것이다. 커널이 래스터 스캔 경로에서 이동하면 커널은 y 방향으로 4 픽셀의 스트라이드 거리에 해당하는 픽셀 좌표 (4, 0)의 샘플링 위치로 돌아간다. 그런 다음, 커널은 주 이미지의 모든 픽셀이 서브-샘플링 될 때까지, 연속한 샘플링 윈도우를 사용하여 주 이미지의 연속한 4x4 픽셀 어레이를 서브-샘플링하기 위해, x 방향으로 4 픽셀 및 y 방향으로 4 픽셀의 스트라이드로 주 이미지를 계속 횡단한다. 각 샘플링 위치에서 결정된 출력 값은 서브-샘플링 된 출력 이미지의 픽셀 값으로서 제공된다. 따라서, 출력 부 이미지는 픽셀 수가 감소된 주 이미지의 언더 샘플링 또는 서브-샘플링 된 버전이다.
당업자라면 이해할 수 있듯이, 위의 예에서 주 이미지의 픽셀 수는 주 이미지의 16 픽셀의 4x4 어레이가 부 이미지의 1(하나) 픽셀로 표시되기 때문에 부 이미지에서 16 배만큼 감소한다. 따라서, 주 이미지의 픽셀 수는 홀로그래픽 프로젝터에 의해 프로젝트 되는 이미지(홀로그래픽 재구성)의 원하는 해상도보다 높은 해상도를 갖는다. 예를 들어, 주 이미지는 원하는 해상도의 4 배 또는 8 배와 같이 원하는 해상도의 최소 2 배일 수 있다. 이와 같이 부 이미지로부터 계산된 홀로그램은 고해상도 주 이미지에 비해 해상도가 낮더라도 원하는 해상도로 홀로그래픽 재구성을 형성한다. 일부 실시예에서, 이미지(홀로그래픽 재구성)의 원하는 해상도를 달성하도록 타겟 이미지는 주 이미지를 형성하기 위해 "오버 샘플링" 또는 "업 스케일링" 된다.
도 4a 및 도 4b에 도시된 부 이미지를 도출하기 위해 커널을 사용하여 주 이미지를 서브-샘플링 하는 샘플링 방식은 다음 중 하나 이상을 변경함으로써 변경될 수 있다: 일련의 샘플링 위치; x 및/또는 y 방향의 스트라이드 거리; 및 커널 크기 및/또는 가중치. 따라서, 동일한 주 이미지로부터 복수의 부 이미지를 결정할 수 있다. 복수의 부 이미지에 대응하는 홀로그램은 주 이미지에 대응하는 이미지 프레임(타겟 이미지)의 서브 프레임으로서 공간 광 변조기에서, 차례로, 계산되고 디스플레이 될 수 있다.
예를 들어, 도 5b에 도시된 커널은, 도 4a 및 도 4b를 참조하여 위에서 설명한 바와 같이, x 방향으로 4 개의 픽셀과 y 방향으로 4 개의 픽셀의 스트라이드를 갖는 일련의 샘플링 위치를 사용하여 첫 번째 부 이미지를 도출하는 데 사용될 수 있다. x 및 y 방향으로 4 픽셀의 동일한 스트라이드를 갖지만 좌표 (1, 1)과 같은 상이한 초기 (또는 첫 번째) 샘플링 위치 또는 "시작 위치"를 갖는 일련의 샘플링 위치를 사용하여 두 번째 부 이미지를 도출하기 위해 동일한 커널이 사용될 수 있다. 다른 예에서, x 및/또는 y 방향의 스트라이드가 변경될 수 있다.
또 다른 예에서, 도 5b에 도시된 커널은, 도 4a 및 도 4b를 참조하여 위에서 설명한 바와 같이, x 방향으로 4 개의 픽셀과 y 방향으로 4 개의 픽셀의 스트라이드를 갖는 일련의 샘플링 위치를 사용하여 첫 번째 부 이미지를 유도하는 데 사용될 수 있다. 상이한 커널, 예를 들어 상이한 커널 값 또는 가중치를 갖는 4x4 커널이 동일한 일련의 샘플링 위치를 사용하여 두 번째 부 이미지를 도출하는 데 사용될 수 있다. 다른 예에서는 커널의 크기와 커널 값 또는 가중치(예컨대, 유사하거나 다른 가중치를 가진 5x5 커널)가 변경될 수 있다.
상기 예시적인 샘플링 방식의 임의의 적절한 조합이 동일한 주 이미지로부터 복수의 부 이미지를 도출하는 데 사용될 수 있다. 당업자라면 이해하는 바와 같이, 동일한 주 이미지로부터 도출된 각 부 이미지의 총 픽셀 수는 변할 수 있다. 특히, 각 부 이미지의 픽셀 수는 사용되는 각 서브-샘플링 방식에서 사용되는 샘플링 위치의 수에 대응된다. 따라서, 샘플링 위치가 적은 방식은 픽셀 수가 적은 부 이미지로 이어진다. 일부 예에서, 동일한 주 이미지로부터 결정된 각각의 부 이미지는 동일한 수의 픽셀을 갖는다.
따라서, 샘플링 방식(커널 값의 4x4 어레이를 포함하는 커널)을 사용하여 주 이미지를 서브-샘플링 하여 프로젝션 용 이미지를 나타내는 복수의 부 이미지를 생성할 수 있다. 각 부 이미지는 주 이미지보다 픽셀 수가 적다. 복수의 부 이미지 각각에 대해 홀로그램이 결정되고, 재생 평면 상의 부 이미지 각각에 대응하는 홀로그래픽 재구성을 형성하도록 각각의 홀로그램이 차례로 디스플레이 장치에 디스플레이 된다. 실시예에서, 부 이미지에 대응하는 복수의 홀로그램 각각은 인간의 눈의 통합 시간 내에 디스플레이 장치에 차례로 디스플레이 되므로, 재생 평면에서의 홀로그래픽 재구성은 타겟 이미지의 단일 고품질 재구성으로 나타난다.
데이터 스트리밍
위에서 설명한 바와 같이, 커널을 사용하여 주 이미지를 서브-샘플링 하려면, 주 이미지의 2 차원 픽셀 배열에 해당하는 픽셀 데이터를 저장하고, 해당 시점의 대응 지점에서의 특정 샘플링 위치(예컨대, 4x4 픽셀 어레이 데이터)에서 커널 작업에 필요한 주 이미지의 적어도 픽셀 데이터 엔트리(즉, 픽셀 값)을 버퍼링 해야 한다. 따라서, 시스템은 상대적으로 고해상도인 주 이미지의 픽셀 데이터를 수용하기 위해 많은 양의 데이터 저장 및/또는 용량을 필요로 한다.
따라서, 본 개시는 부 이미지를 결정하기 위해 일련의 샘플링 위치에서 커널을 이용하여 주 이미지의 서브-샘플링을 구현하는 새로운 방식을 제안한다. 이 새로운 방식을 통해 저장 및/또는 버퍼링 용량 요구 사항을 줄일 수 있다. 일부 구현에서, 부 이미지에 대응하는 홀로그램을 결정하기 위한 처리 속도가 증가된다.
새로운 방식은 데이터 스트리밍을 기반으로 한다. 특히, 이 방식은 주 이미지의 픽셀 값의 제1데이터 스트림 및 커널의 커널 값의 제2데이터 스트림을 형성하는 것을 포함한다. 데이터 스트리밍은 행 단위로 (즉, 이미지/커널 픽셀의 픽셀 단위로) 수행된다. 특히, 주 이미지의 첫 번째 픽셀 행의 픽셀 값이 먼저 스트리밍 된 다음, 주 이미지의 두 번째 픽셀 행의 픽셀 값이 스트리밍 되고, 이는 주 이미지의 마지막 픽셀 행의 픽셀 값까지 스트리밍 되어 최종적으로 제1데이터 스트림이 종료된다. 또한, 커널의 첫 번째 행의 커널 값이 먼저 스트리밍 되고, 다음으로 커널의 두 번째 행의 커널 값이, 커널의 마지막 행의 커널 값까지 스트리밍 된다. 데이터 스트리밍 시퀀스는 커널의 첫 번째 행의 커널 값, 다음으로 커널의 두 번째 행의 픽셀 값 등을 스트리밍 하여, 순차적으로 반복된다. 제1데이터 스트림의 픽셀 값의 수는 제2데이터 스트림의 커널 값의 수에 대응한다. 특히, 제1데이터 스트림의 각 픽셀 값은 대응하는 가중치 픽셀 값의 결정을 가능하게 하기 위해 제2데이터 스트림의 대응하는 커널 값과 쌍을 이룬다. 이것은 제1데이터 스트림에서 주 이미지의 픽셀의 픽셀 값을 제2데이터 스트림에서 커널의 대응하는 커널 값과 동기화 함으로써 달성된다. 당업자라면 이해할 수 있는 바와 같이, 예시된 예에서, 커널은 래스터 스캔 경로를 따라 이동하기 때문에 커널이 주 이미지를 왼쪽에서 오른쪽으로 (즉, x 방향으로) 횡단한다. 따라서, 주 이미지의 특정 픽셀 행에 대해, 각 샘플링 위치에 대해 커널 값 행이 반복되며, 동일한 커널 값 행이 해당 픽셀 값에 가중치를 부여하는 데 사용된다. 주 이미지의 픽셀의 픽셀 값과 커널의 해당 커널 값 또는 가중치를 행 단위로 순차적으로 스트리밍 함으로써, 처리는 종래 기술과 같이 2차원 픽셀 어레이의 픽셀 값 대신 1차원 배열에 해당하는 픽셀 값의 단일 데이터 스트림에 대해 수행될 수 있다. 도 6은 후술하는 커널 작업을 수행하기 위해 소위 "베이스 라인 스트리밍 프레임 커널"(또는 간단히 "프레임 커널")에 입력되는 픽셀 값의 제1데이터 스트림과 커널 값 또는 가중치의 제2데이터 스트림을 형성하는 이러한 처리를 개념적으로 도시한다.
도 11은 일부 실시예에 따라 커널을 사용하여 주 이미지를 서브-샘플링 하는 데 사용하기 위한 데이터 스트리밍 방법(1100)을 예시하는 흐름도이다. 이 방법(1100)은 본 명세서에 설명된 바와 같이 부 이미지를 결정하기 위해, 서브-샘플링을 위한 주 이미지의 픽셀 어레이의 픽셀 데이터를 포함하는, 주 이미지에 대응하는 입력 이미지를 수신한다. 이 방법(1100)은 본 명세서에 설명된 바와 같은 커널 값 또는 가중치의 어레이를 포함하는 커널을 추가로 수신한다. 예시된 예에서, 커널은 커널 값의 M 행과 N 열의 배열을 포함하고, 따라서 MxN 픽셀 어레이의 샘플링 윈도우를 형성한다. 또한, 커널의 일련의 샘플링 위치가 정의된다. 예시된 예에서, x 방향의 스트라이드는 N 픽셀이고, y 방향의 스트라이드는 M 픽셀이므로 일련의 샘플링 위치는, 위에서 설명한 도 4a 및 도 4b의 예에서와 같이, 주 이미지의 MxN 픽셀의 연속 어레이를 서브-샘플링 한다. 이는 주 이미지의 각 픽셀 값이 한 번만 서브-샘플링 된다는 이점이 있으며, 이는 주 이미지의 픽셀 데이터가 아래에 설명된 바와 같이 래스터 스캔 순서로 스트리밍 될 수 있음을 의미한다. 당업자라면 이해할 수 있는 바와 같이, 애플리케이션 요구 사항에 따라 일련의 샘플링 위치를 변경하기 위해 각각의 x 및 y 방향에서 스트라이드를 변경할 수 있다. 예를 들어, 스트라이드는 x 방향으로 N/2이고 y 방향으로 M/2 일 수 있다.
도 11의 방법(1100)은 픽셀 값의 제1데이터 스트림 및 커널 값의 제2데이터 스트림을 형성하며, 여기서 제1 및 제2데이터 스트림은, 제1데이터 스트림의 각 픽셀 값이 제2데이터 스트림의 해당 커널 값과 시간적으로 동기화되도록, 따라서 쌍을 이루도록, 동시에 형성된다.
이 방법은 실시예들에 따른 커널을 사용하여 주 이미지를 서브-샘플링 하는데 사용하기 위한 주 이미지 및 커널 정보를 수신하는 것에 응답하여 단계(1105)에서 시작한다.
단계(1106)은 이미지의 행 카운터를 0(영)으로 설정하고, 단계(1108)은 이미지의 열 카운터를 0(영)으로 설정한다. 단계(1110)은 초기 샘플링 위치에 해당하는 이미지 행 및 열 카운터(즉, 좌표 (0, 0)의 픽셀 값)에 의해 표시된 행 및 열 위치에서 주 이미지의 픽셀 값을 읽는다. 단계(1112)는 이미지 열 카운터를 1씩 증가시킨다. 단계(1110)에서 판독된 픽셀 값은 제1데이터 스트림의 첫 번째 (다음) 픽셀 값으로서 "A"에서 출력된다. 또한, 단계(1156)는 커널의 행 카운터를 0(영)으로 설정하고 단계(1158)는 커널의 열 카운터를 0(영)으로 설정한다. 단계(1160)는 커널 행 및 열 카운터(즉, 좌표 (0, 0)의 커널 값)에 표시된 행 및 열 위치에서 커널의 커널 값을 읽고, 단계(1162)는 커널 열 카운터를 1씩 증가시킨다. 단계(1160)에서 판독된 커널 값은 제2데이터 스트림의 첫 번째 (다음) 커널 값으로서 "A"에서 출력된다. 단계(1106, 1108 및 1110)는 단계(1156, 1158 및 1160)와 동시에 수행되고, "A"에서 제1 및 제2데이터 스트림에 대한 데이터 값의 출력이 동기화된다. 특히, 픽셀 값과 해당 커널 값은 "A"에서 동시에 (즉, 동일한 클럭 주기에서) 출력된다. 따라서, 제1데이터 스트림의 픽셀 값 및 제2데이터 스트림의 대응하는 커널 값은 아래에서 더 설명되는 바와 같이 커널 처리를 위해 쌍을 이룬다.
단계(1120)은 현재 반복에 대해 단계(1110)에서 판독된 픽셀 값이 주 이미지의 현재 행의 마지막 픽셀 값인지 여부를 결정한다. 이 방법은 주 이미지를 입력으로 수신하기 때문에 픽셀의 행과 열 수에 따른 이미지의 크기가 알려져 있다. 따라서, 단계(1112)에서 이미지 열 카운터에 설정된 값이 픽셀 열 수보다 크면 반복에서 읽은 픽셀 값이 이미지 행의 마지막 픽셀이었을 것이며 다음 픽셀은 다음 이미지 행으로부터 판독되어야 할 것이다. 단계(1120)가 단계(1110)에서 판독된 픽셀 값이 현재 이미지 행의 마지막 픽셀 값이 아니라고 결정하면, 이 방법은 현재 행에서 (즉, 이미지 행 및 열 카운터에 의해 표시된 행 및 열 위치에서) 다음 픽셀 값을 읽는 단계(1110)으로 돌아간다. 그 다음, 이 방법은 단계(1120)에서 단계(1110)에서 판독된 픽셀 값이 현재 행의 마지막 픽셀 값이라고 결정할 때까지 단계(1110, 1112 및 1120)를 통해 루프(loop)를 돌며 계속된다. 단계(1120)이 픽셀 값이 현재 행의 마지막 픽셀 값이라고 결정하면, 이 방법은 단계(1130)으로 진행한다. 또한, 결정의 표시는 "C"에서 (예컨대, "이미지 행의 끝" 신호) 출력될 수 있다.
단계(1130)는 현재 이미지 행이 주 이미지의 픽셀의 마지막 행인지 여부를 결정한다. 특히, 이미지 행 카운터에 설정된 현재 값이 주 이미지의 총 픽셀 행 수와 같으면 현재 이미지 행이 픽셀의 마지막 행이다. 단계(1130)이 현재 이미지 행이 주 이미지의 마지막 행 픽셀이 아니라고 결정하면, 이 방법은 단계(1140)으로 진행하여 이미지 행 카운터를 1씩 증가시킨다. 그 다음, 이 방법은 이미지 열을 (재)설정하는 단계(1108)로 돌아간다. 그 다음, 이 방법은 단계(1130)이 현재 이미지 행이 주 이미지의 픽셀의 마지막 행이라고 결정할 때까지 다음 이미지 행의 픽셀을 스트리밍 함으로써 단계(1110) 내지 단계(1120)를 계속한다. 단계(1130)이 현재 이미지 행이 주 이미지의 마지막 픽셀이라고 결정하면, 이 방법은 단계(1195)에서 종료된다. 동시에, 결정의 표시가 "E"에서 (예컨대, "이미지의 끝" 신호) 출력될 수 있다. 따라서, 도 11의 방법(1100)에 의해 형성된 제1데이터 스트림은 픽셀 단위 및 라인 단위로 판독되는 래스터 스캔 순서인 주 이미지의 픽셀의 픽셀 값의 스트림을 포함한다.
단계(1170)는 현재 반복에 대해 단계(1160)에서 판독된 커널 값이 커널의 현재 행의 마지막 커널 값인지 여부를 결정한다. 이 방법은 커널을 입력으로 받기 때문에 커널 값 또는 가중치의 M 행과 N 열의 수에 대한 크기가 알려져 있다. 따라서, 단계(1162)에서 커널 열 카운터에 설정된 값이 커널 값의 N 열의 수보다 크면, 이전 커널 값이 행의 마지막 커널 값이고 다음 커널 값은 커널의 다음 행에서 판독해야 한다. 단계(1170)가 단계(1160)에서 읽은 커널 값이 현재 커널 행의 마지막 커널 값이 아니라고 결정하면, 이 방법은 현재 행(즉, 커널 행 및 열 카운터에 의해 표시된 행과 열 위치)에서 다음 커널 값을 판독하는 단계(1160)로 돌아간다. 그 다음, 이 방법은 단계(1160)에서 판독된 커널 값이 현재 행의 마지막 커널 값이라고 단계(1170)가 결정할 때까지 1160, 1162 및 1170을 반복하며 계속하여 루프를 돈다. 단계(1170)가 커널 값이 현재 행의 마지막 커널 값이라고 결정하면, 이 방법은 단계(1180)로 진행한다. 또한, 결정의 표시(예컨대, "커널 행의 끝" 신호)가 "B"에 출력될 수 있다.
단계(1180)는 현재 반복에 대해 단계(1110)에서 판독된 픽셀 값이 주 이미지의 현재 행의 마지막 픽셀 값인지 여부를 결정한다. 단계(1180)는 "C"에서 단계(1120)로부터 "이미지 행의 끝" 신호가 출력되는지 여부를 결정함으로써 수행될 수 있거나, 단계(1120)와 관련하여 별도로 또는 공동으로 처리될 수 있다. 단계(1180)가 픽셀 값이 주 이미지의 현재 행의 마지막 픽셀 값이 아니라고 결정하는 경우, 이 방법은 커널 카운터 열을 0으로 (재) 설정하는 단계(1158)로 돌아간다. 당업자라면 이해할 수 있듯이, 이는, 도시한 예시에서 커널의 N 열의 수와 동일한, x 방향에서 스트라이드 만큼 커널의 이동에 의해 다음 샘플링 위치로 이동하는 것에 해당한다. 그 다음, 이 방법은 단계(1180)가 주 이미지의 이미지 행의 끝에 도달했다고 (예를 들어, "이미지 행의 끝" 신호를 수신함으로써) 결정할 때까지 현재 행의 커널 값을 반복적으로 판독함으로써 단계(1160) 내지 단계(1180)를 거쳐 계속된다. 단계(1180)가 단계(1110)에서 판독된 픽셀 값이 주 이미지의 현재 행의 마지막 픽셀 값이라고 결정하면, 이 방법은 단계(1185)로 진행한다.
단계(1185)는 현재 커널 행이 커널의 커널 값의 마지막 행인지 여부를 결정한다. 특히, 커널 행 카운터에 설정된 현재 값이 커널 행 수 M과 같으면 현재 행이 커널 값의 마지막 행이다. 단계(1185)가 현재 커널 행이 커널 값의 마지막 행이 아니라고 결정하면, 이 방법은 커널 행 카운터를 1씩 증가시키는 단계(1190)로 진행한 다음 커널 열 카운터를 (재)설정하는 단계(1158)로 돌아간다. 이 방법은 단계(1185)가 현재 커널 행이 커널 값의 마지막 행이라고 결정할 때까지 다음 커널 행의 커널 값을 반복적으로 스트리밍하여 단계(1160)부터 단계(1180)까지 계속 한다. 단계(1185)가 현재 커널 행이 커널 값의 마지막 행이라고 결정하면, 이 방법은 커널 행 카운터를 0으로 (재)설정하는 단계(1156)로 돌아간다. 당업자라면 이해할 수 있듯이, 이것은, 도시된 예시에서, 커널의 행 수 M과 동일한, y 방향으로 스트라이드 만큼 커널의 변위를 이동시켜 다음 샘플링 위치로 이동하는 것에 해당한다. 동시에, 결정의 표시(예컨대, "커널의 끝" 신호)는 "D"에서 출력될 수 있다. 따라서, 도 11의 방법(1100)에 의해 형성된 제2데이터 스트림은 행 단위로 순서대로 (및 각 샘플링 위치에 대해 반복되는) 판독된 커널의 가중치 또는 커널 값의 스트림을 포함한다. 특히, 제2데이터 스트림의 커널 값은 제2데이터 스트림의 각 위치/지점에서의 커널 값이 제1데이터 스트림의 주 이미지의 픽셀 값에 대응하여 쌍을 이루고/동기화되도록 제공된다.
당업자라면 이해하는 바와 같이, 주 이미지의 커널 서브-샘플링을 위해 동기화 된 제1 및 제2데이터 스트림을 도출하기 위해 도 11의 방법에 다양한 수정이 이루어질 수 있다. 예를 들어, 예제 커널 절차는 주 이미지의 연속적인 픽셀 어레이를 샘플링하기 위해 커널의 열 수와 동일한 x 방향의 스트라이드(및 커널의 행 수와 동일한 y 방향으로 스트라이드)를 갖기 때문에, 도 11의 방법은 래스터 스캔 순서로 주 이미지의 픽셀 값 스트림을 제공한다. 그러나, 다른 예들에서, x 방향으로의 주 이미지의 픽셀들의 중첩되거나 분리된 어레이를 각각 샘플링하기 위해, x 방향의 스트라이드는 커널의 열 수보다 작거나 클 수 있다. 따라서, x 방향의 스트라이드가 커널의 열 수보다 적은 경우 각 연속 샘플링 윈도우는 이전 샘플링 윈도우와 하나 이상의 픽셀이 겹친다. 이 경우, 오버랩 된 픽셀 값은 주 이미지의 각 행에서 읽어 들인 픽셀 값의 순서로 반복되어 제1데이터 스트림을 형성할 수 있다. 반대로, x 방향의 스트라이드가 커널의 열 수보다 큰 경우 각 연속 샘플링 윈도우는 이전 샘플링 윈도우에서 x 방향으로 하나 이상의 픽셀로 분리된다. 이 경우, 샘플링 윈도우 사이의 공간에 있는 픽셀 값은 제1데이터 스트림을 형성하기 위해 주 이미지의 각 행에서 판독된 픽셀 값의 시퀀스에서 생략될 수 있다. 이러한 예에서, 정확한 대응 커널 값이 각각의 이동 샘플링 윈도우 내의 위치에 따라 픽셀 값과 동기화되도록 커널 값의 제2데이터 스트림을 형성하는 프로세스를 수정하기 위해 유사한 수정이 필요할 수 있다. 마찬가지로, 다른 예들에서, y 방향의 주 이미지의 픽셀들의 중첩되거나 분리된 어레이를 각각 샘플링하기 위해, y 방향의 스트라이드는 커널의 행 수보다 작거나 클 수 있다. 이러한 예들에서, 주 이미지의 픽셀들의 하나 이상의 행들의 픽셀 값들은 제1데이터 스트림에서 반복되거나 생략될 수 있고, 그에 따라 제2데이터 스트림에서 동기화된 대응하는 커널 값들로부터 생략될 수 있다.
커널 작업 및 버퍼링
본 명세서에 설명된 바와 같이, 부 이미지를 결정하기 위해 주 이미지를 서브-샘플링 하는 프로세스는 일련의 샘플링 위치에서 커널 연산에 의해 수행될 수 있다. 본 개시에 따르면, 커널 기반 서브-샘플링 프로세스는 저장 및/또는 버퍼링 용량 요구 사항을 감소시키기 위해 데이터 스트리밍을 사용하여 수행된다.
도 7은 제2데이터 스트림의 대응하는 커널 값 또는 가중치를 사용하여 주 이미지의 첫 번째 행의 픽셀 값의 제1데이터 스트림에 대해 수행되는 커널 서브-샘플링 절차의 예를 도시하며, 여기서 제1 및 제2데이터 스트림은 전술한 바와 같이 형성된다. 도 7은 버퍼에 제공된 누적 값(소위 "부분 픽셀 값")의 출력 데이터 스트림을 추가로 보여준다. 도 7은 커널의 첫 번째 행의 해당 커널 값 또는 가중치를 사용하여 주 이미지의 픽셀 행에 대해 커널 연산을 수행하기 때문에 첫 번째 반복이라고 할 수 있다. 주 이미지의 픽셀 값은 행 단위로 처리되므로 이미지 픽셀의 각 행의 처리는 반복으로 간주될 수 있다.
도 7에 나와있는 예에서, 커널은 커널 값의 4x4 어레이이며, 커널은 일련의 샘플링 위치로 반복적으로 이동되어 주 이미지의 픽셀의 연속적인 4x4 어레이가 샘플링 윈도우 내에 포함된다. 특히, x 방향의 스트라이드는 4 픽셀이고 y 방향의 스트라이드는 4 픽셀이다. 도시의 편의를 위해, 주 이미지에는 한 행에 20 픽셀(즉, 20 열 픽셀)이 있다. 당업자라면 이해하는 바와 같이, 실제로는 주 이미지의 픽셀 수가 훨씬 더 많다.
도 7에 도시된 바와 같이, 제1데이터 스트림(90)은 데이터 입력 위치 19, 18, 17, 16, 15, 14, 13, 12, 11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1 및 0 각각에서의 주 이미지의 첫 번째 행 (0 행) 픽셀의 정렬된 순서의 20 개의 픽셀 값 T, S, R, Q, P, O, N, M, L, K, J, I, H, G, F, E, D, C, B 및 A를 포함한다. 또한, 제2데이터 스트림(92)은 20 개 커널 값의 정렬된 순서의 시퀀스를 포함하며, 여기서 제2데이터 스트림의 각 데이터 입력 위치에서의 커널 값은 제1데이터 스트림의 동일한 데이터 입력 위치에서의 픽셀 값에 대응한다. 당업자라면 이해하는 바와 같이, 이미지 픽셀의 첫 번째 행의 픽셀을 샘플링 하는 데 사용되는 커널 값은 커널의 첫 번째 행의 커널 값에 대응한다. 도 5a의 일반 커널에서와 같이 각 커널 값은 기호 Wx, y로 표시된 가중치이며, 여기서 (x, y)는 커널 값 또는 가중치의 4x4 어레이의 좌표에 해당한다.
기본 커널 절차(94)는 제1데이터 스트림(90)의 각 픽셀 값과 제2데이터 스트림(92)의 동기화된 대응 가중치 Wx, y를 수신하고 대응 가중치 픽셀 값을 결정한다. 특히, 가중치 픽셀 값은 픽셀 값과 해당 가중치의 곱이다. 기본 커널 절차(94)는 각각의 커널 샘플링 위치에 대한 가중된 픽셀 값을 함께 더하여 대응하는 (가중된) 부분 픽셀 값을 결정한다. 따라서, 첫 번째 샘플링 위치(커널 위치 0)에 해당하는 제1데이터 스트림의 첫 번째 픽셀 행의 첫 번째 4 개 픽셀 값에 대한 가중된 픽셀 값은 T*W0, 0, S*W1, 0, R*W2, 0 및 Q*W3, 0 이다. 첫 번째 샘플링 위치에서 4 개의 가중치가 적용된 픽셀 값의 합은 출력 버퍼(96)의 첫 번째 위치(버퍼 위치 0)에 기록되는 값 I로 표시된다. 도 7에 도시된 바와 같이, 이어서 기본 커널 절차는 각각 두 번째에서 다섯 번째 샘플링 위치(커널 위치 1 내지 4)에 해당하는 제1데이터 스트림의 첫 번째 픽셀 행의 4 개 픽셀 값의 각 세트에 대한 가중치 픽셀 값을 순서대로 결정한다. 기본 커널 절차(64)는 또한 출력 버퍼의 두 번째에서 다섯 번째 위치(버퍼 위치 1 내지 4)에 각각 순차적으로 기록되는, II, III, IV 및 V로 표시된, 4 개의 가중치 픽셀 값 각각의 합을 결정한다. 일부 실시예에서, 기본 커널 절차(64)는 "곱하기 축적(Multiply Accumulate)" 또는 MAC 절차를 구현할 수 있다. 제1 및 제2데이터 스트림에서 수신된 각 픽셀 및 커널 값 쌍에 대해, 이 절차는 픽셀 값과 가중치를 함께 곱하여 가중치 픽셀 값을 결정하고, 동일한 커널 샘플링 위치에 대해 이전에 결정된 가중치 픽셀 값의 합계에 더하여 가중치 픽셀 값을 누적한다. 따라서, 4 개의 가중치 픽셀 값(커널의 열 수에 대응하므로 따라서 "스트라이드"에 해당)에 기반한 누적 합계는 해당 커널 샘플링 위치에 대한 부분 (서브-샘플링 된 및 가중) 픽셀 값이다. 이들 부분 픽셀 값은 출력 버퍼(96)에 저장되고 커널 기본 절차(94)에 피드백으로 제공되는 제3데이터 스트림을 형성한다. 도 8은 기본 커널 절차(94)로의 제3데이터 스트림(98)의 부분 픽셀 값의, 주 이미지의 첫 번째 픽셀 행을 처리한 출력이고 출력 버퍼(96)에 순차적으로 저장된, 피드백을 개략적으로 도시한다. 제3데이터 스트림(98)의 피드백은, 부분 픽셀 값이 제1데이터 스트림(90)에서의 주 이미지의 다음 픽셀 행의 픽셀 값 및 제2데이터 스트림(92)에서의 대응하는 커널 값과 동기화되도록, 제1 및 제2데이터 스트림(90, 92)과 동시에 제공된다.
도 9는 도 7의 커널 서브-샘플링 절차의 예시의 두 번째 반복을 보여준다. 도 9에서 절차는 제2데이터 스트림 커널의 두 번째 행의 대응하는 커널 값을 사용하여 주 이미지의 두 번째 행의 이미지 픽셀 값의 제1데이터 스트림에 대해 수행된다. 도 9는 또한 첫 번째 반복에서 주 이미지의 첫 번째 행의 픽셀을 서브-샘플링 하여 출력되고, 출력 버퍼로부터 피드백으로 제공되는, 부분 픽셀 픽셀 값의 제3데이터 스트림의 사용을 보여준다. 마지막으로, 도 9는 출력 버퍼에 순차적으로 제공되는 업데이트된 부분 픽셀 값의 출력 데이터 스트림을 보여준다.
도 9에 도시된 바와 같이, 제1데이터 스트림(90)은 데이터 입력 위치 19, 18, 17, 16, 15, 14, 13, 12, 11,10, 9, 8, 7, 6, 5, 4, 3, 2, 1 및 0 각각에서의 주 이미지의 두 번째 행 (1 행) 픽셀의 정렬된 순서의 20 개의 픽셀 값 T, Σ, Ρ, Θ, Π, Ο, N, M, Λ, Κ, θ, Ι, Η, Γ, Φ, E, Δ, Х, B 및 A를 포함한다. 또한, 제2데이터 스트림(92)은 20 개의 커널 값의 정렬된 순서의 시퀀스를 포함하며, 여기서 제2데이터 스트림의 각 데이터 입력 위치에서의 커널 값은 제1데이터 스트림의 동일한 데이터 입력 위치에서의 픽셀 값에 대응한다. 당업자라면 이해하는 바와 같이, 커널 값은 커널의 다음 (두 번째) 행에 해당한다.
기본 커널 절차(94)는 제1데이터 스트림(90)의 주 이미지의 픽셀의 두 번째 행의 각 픽셀 값과 제2데이터 스트림(92)의 동기화된 대응 가중치 Wx, y를 수신하고 대응 가중치 픽셀 값을 결정한다. 베이스 커널 절차(94)는 각각의 커널 샘플링 위치에 대한 가중치 픽셀 값을, 차례로, 함께 더하여 대응하는 (가중치) 부분 픽셀 값을 결정한다. 따라서, 첫 번째 샘플링 위치(커널 위치 0)에 해당하는, 제1데이터 스트림의 두 번째 픽셀 행의 첫 번째 4개 픽셀 값에 대한 가중된 픽셀 값은 T*W0, 1, Σ*W1, 1, Ρ*W2, 1 및 Θ*W3, 1이다. 제1샘플링 위치에서 4 개의 가중치 픽셀 값의 합은 동일한 샘플링 위치에서 가중치 픽셀 값의 누적 합계에 해당하는 제3데이터 스트림(98)의 제1부분 픽셀 값에 더해진다. 가중치 픽셀 값의 업데이트 된 누적 합계는, 출력 버퍼(96)의 제1위치(버퍼 위치 0)에 기록되는 값, N으로 표시된다. 도 9에 도시된 바와 같이, 이후 기본 커널 절차는 동일한 방식으로 두 번째 내지 다섯 번째 샘플링 위치 (커널 위치 1 내지 4) 각각에 대한 가중치 픽셀 값의 누적 합계를, 순서대로, 결정하고, 부분 픽셀 값 P, Q, R, Z 로서 출력 버퍼의 두 번째 내지 다섯 번째 위치(버퍼 위치 1 ~ 4)에 순서대로 기록한다.
당업자라면 이해할 수 있는 바와 같이, 도 9에 예시된 기본 커널 절차(94)는 커널의 대응하는 행에서 마지막 커널 행까지 커널 값을 이용하여 주 이미지의 각 후속 이미지 행에 대한 제1데이터 스트림의 픽셀 값을 사용하여 반복적으로 반복된다. 마지막 커널 행의 커널 값에 해당하는 픽셀 값이 샘플링 위치에 대해 처리되면 샘플링 윈도우 내의 모든 픽셀 값이 샘플링 되고 버퍼(96)에 출력된 누적 값은 전체 값 (가중치의 합계) 픽셀 값을 나타낸다. 따라서, 기본 커널 절차(94)가 마지막 커널 행을 사용하여 서브-샘플링하고 있다고 결정할 때, 누적된 (가중치) 픽셀 값의 출력은 도 10을 참조하여 아래에 설명된 바와 같이 수정된다.
도 10은 부 이미지의 전체 또는 전체 누적 픽셀 값의 출력을 개략적으로 보여준다. 이 절차는 마지막 커널 행 및/또는 마지막 반복 후의 커널 값을 사용하는 각 반복 후에 이루어질 수 있다. 특히, 전체 누적 (가중치) 픽셀 값은 커널 샘플링 위치에서 샘플링 윈도우에 있는 픽셀의 모든 픽셀 값이 서브-샘플링 되면 결정된다. 특히, 제2데이터 스트림(92)에서 커널의 커널 값의 마지막 행을 사용하여 제1데이터 스트림의 이미지 행의 픽셀 값을 처리할 때 전체 누적 픽셀 값이 기본 커널 절차(94)에 의해 출력된다. (가중치) 픽셀 값은 제3데이터 스트림(98)을 형성하기 위해 출력 버퍼(96)에 순차적으로 제공된다. 그러나, 누적 픽셀 값을 기본 커널 절차(94)에 피드백으로 제공하는 대신, 제3데이터 스트림(98)은 선택적인 분할 유닛(126)에 공급된다. 선택적인 분할 유닛(126)은 전술한 바와 같이 정규화 된 픽셀 값을 결정하도록 제3데이터 스트림(98)의 누적 (가중치) 픽셀 값 각각을 총 커널 가중치로 나눔으로써 부 이미지에 대한 최종 서브-샘플링 된 픽셀 값을 결정할 수 있다. 분할 유닛으로부터의 출력 스트림(122)은 부 이미지에 대한 데이터 저장소로 스트리밍 될 수 있고/있거나, 홀로그램 계산을 위해 실시간으로 홀로그램 엔진으로 전송될 수 있다. 또한, 제3데이터 스트림(98)을 기본 커널 절차(94)로 피드백 하는 대신, 이미지 행을 서브-샘플링하기 위한 커널 위치의 수와 동일한 수의 널(null) 데이터 값 시퀀스(즉, 일련의 영(0))를 포함하는 백 데이터 스트림(124)이 기본 커널 절차(94)에 제공될 수 있다. 백 데이터 스트림(124)은 제1 및 제2데이터 스트림(90, 92)과 동시에 제공되어 각 데이터 스트림의 해당 위치의 값이 동기화된다. 도 7에 도시되지 않았지만, 유사한 백 데이터 스트림(124)이 제1이미지 행에 대응하는 픽셀 값을 처리하기 위해 기본 커널 절차(94)에 제공될 수 있다.
도 12는 일부 실시예에 따라 주 이미지를 서브-샘플링하기 위한 데이터 스트리밍에 기초한 커널 동작 및 버퍼링의 방법(1200)을 예시하는 흐름도이다. 이 방법(1200)은 픽셀 값 및 커널 값의 동기화된 제1 및 제2데이터 스트림을 각각 수신하고, 전술한 바와 같이 부분 (또는 전체) 픽셀 값의 제3데이터 스트림을 피드백(또는 출력)을 위한 출력 버퍼에 출력한다. 이 방법(1200)은 전술한 바와 같이 도 11의 데이터 스트리밍 방법(1100)과 조합하여 구현될 수 있다. 특히, 도 12의 방법(1200)의 특정 단계는 도 11의 방법(1100)의 단계로부터 출력 신호를 수신할 수 있다. 따라서, 도 11의 방법에서와 같이, 커널은 커널 값의 M 행 및 N 열의 어레이를 포함하며, 따라서 주 이미지의 MxN 픽셀 어레이의 샘플링 윈도우를 형성한다. 또한, 주 이미지의 MxN 픽셀의 연속 어레이를 서브-샘플링하기 위해 x 방향의 스트라이드는 N 픽셀이고 y 방향의 스트라이드는 M 픽셀인 커널의 일련의 샘플링 위치가 정의된다.
도 12의 방법은 감소된 해상도의 부 이미지의 픽셀 값을 생성하기 위해 커널을 사용하여 주 이미지의 MxN 픽셀의 연속적인 어레이를 서브-샘플링 한다. 특히, 부 이미지의 단일 픽셀 값은 샘플링 위치에서 커널에 의해 정의된 샘플링 윈도우 내에 포함된 주 이미지의 MxN 픽셀의 각 어레이에 대해 결정된다.
이 방법은 제1 및 제2데이터 스트림의 첫 번째 값 또는 데이터 스트리밍 절차의 시작을 나타내는 관련 트리거를 수신하는 것에 응답하여 단계(1205)에서 시작한다. 일부 실시예에서, 단계(1205)는 주 이미지에 관한 정보, 특히 이미지 픽셀의 행과 열의 수 및/또는 커널에 관한 정보를 추가로 수신할 수 있으며, 아래에 설명된 대로 특히 커널 값의 행과 열의 수는 픽셀, 커널 값 및 커널 샘플링 위치를 추적하기 위해 제공된다.
단계(1210)는 출력 버퍼의 현재 저장 위치를 첫 번째 커널 샘플링 위치로 설정한다. 출력 버퍼의 첫 번째 저장 위치는 커널의 첫 번째 샘플링 위치와 일치한다고 말할 수 있다. 당업자라면 이해할 수 있는 바와 같이, 커널에 대한 샘플링 위치는 커널이 주 이미지 상에서 (예컨대, x 및 y 방향의 스트라이드를 포함하는 래스터 스캔 경로로) 이동하면서 샘플링 위치의 정렬된 순서를 따라 1씩 증가하는 상승하는 숫자 순서(예컨대, 커널 위치 0 내지 커널 위치 X)로 정의될 수 있다. 당업자라면 이해할 수 있는 바와 같이, 예시된 실시예에서, 출력 버퍼의 각각의 저장 위치는 대응하는 샘플링 위치와 관련된 출력 (부분) 픽셀 값을 수신하기 위해 전용으로 할당된다.
단계(1220)는 동기화된 제1 및 제2데이터 스트림의 제1쌍의 값을 수신한다. 예를 들어, 제1 및 제2데이터 스트림은 도 11의 방법(1100)의 "A"에서의 출력으로부터 수신될 수 있다. 따라서, 단계(1220)는 제1데이터 스트림 및 대응하는 제1커널로부터 주 이미지의 첫 번째 픽셀 값 및 제2데이터 스트림의 커널 값 또는 가중치를 수신한다. 전술한 바와 같이, 각각의 픽셀 및 커널 값 쌍은 클럭 카운터에 의해 동기화될 수 있다.
단계(1222)는 단계(1220)에서 수신된 픽셀 값과 커널 값을 곱하여 해당 가중치 픽셀 값을 결정한다. 단계(1224)는 단계(1222)에서 결정된 가중치 픽셀 값이 현재 커널 샘플링 위치에서 이미지 행의 마지막 픽셀 값에 해당하는지 여부를 결정한다. 특히, 단계(1224)는 제1 및 제2데이터 스트림의 처리된 값 쌍이 커널 행(또는 마지막 커널 열)의 끝에 대응하는지 여부를 결정할 수 있다. 예시된 예에서, 단계(1224)는 단계(1222)에서 결정된 가중치 픽셀 값이 도 11의 방법(1100)에서 "B"로부터 "커널 행의 끝" 신호를 수신하는 경우, 현재 커널 샘플링 위치에 대한 값의 마지막 쌍에 대응한다고 결정한다. 다른 예에서, 커널 열 카운터가 사용될 수 있으며(예컨대, 단계(1220) 이전에 0으로 설정됨), 이 경우 단계(1224)는 커널 열 카운터의 값을 커널 열의 수와 직접 비교할 수 있다. 당업자라면 이해하는 바와 같이, 예시된 예에서, 커널이 현재 샘플링 위치의 마지막 픽셀 값에서 동작할 때 커널 열 카운터는 N이다. 단계(1224)가 단계(1222)에서 결정된 가중치 픽셀 값이 현재 샘플링 위치의 마지막 픽셀 값이 아니라고 결정하면, 이 방법은 단계(1220)로 돌아가서, 제1 및 제2데이터 스트림의 다음 픽셀 및 커널 값 쌍을 수신한다. 열 커널 카운터를 사용하는 예에서, 커널 카운터는 단계(1220)에서 다음 값 쌍을 읽기 전에 1씩 증가한다. 그런 다음 이 방법은 단계(1224)가 이전에 결정된 가중치 픽셀 값이 현재 샘플링 위치의 픽셀 커널 값의 마지막 쌍에 해당한다고 결정하고 단계(1230)로 진행될 때까지 단계(1220) 내지 단계(1224)를 포함하는 루프에서 계속된다.
단계(1230)는 현재 커널 위치에 대한 가중치 픽셀 값의 합을 결정한다. 일부 실시예에서, 주어진 커널 샘플링 위치에 대해, 단계(1224)의 연속적인 반복에 의해 순차적으로 결정되는 N 개의 가중치 픽셀 값 각각은 가산기를 통해 레지스터(또는 다른 임시 데이터 저장소)로 전송된다. 가산기는 수신된 가중치 픽셀 값을 레지스터의 현재 값에 더하고 결과를 레지스터에 반환하여 그 안에 있는 값을 업데이트 한다. 따라서, 이러한 실시예에서, 특정 커널 샘플링 위치에 대해 결정된 N 가중치 픽셀 값이 실시간으로 함께 추가되고, 단계(1230)는 레지스터에 저장된 최종 값으로서 가중치 픽셀 값의 합을 결정한다. 다른 실시예에서, 특정 커널 샘플링 위치에 대한 각각의 가중된 픽셀 값은 레지스터(또는 다른 임시 데이터 저장소)에 저장되고 단계(1230)에서 함께 추가될 수 있다.
단계(1232)는 단계(1230)에서 결정된 현재 커널 위치에 대한 가중치 픽셀 값의 합을 피드백으로서 출력 버퍼로부터 수신된 제3데이터 스트림의 누적 (부분 픽셀) 값에 더 한다. 예시된 예에서, 누적/부분 픽셀 값의 제3데이터 스트림은 후술하는 바와 같이 "F"로부터 수신될 수 있다. 상술한 바와 같이, 커널의 첫 번째 행의 커널 값에 대응하는 행의 픽셀 값을 처리할 때 널 부분 픽셀 값의 스트림이 피드백으로 제공될 수 있다. 따라서, 단계(1232)에서 결정된 값은 현재 커널 위치에 대한 업데이트 된 누적 (부분 픽셀) 값에 대응한다.
단계(1240)는 단계(1222)에서 결정된 업데이트 된 누적 (부분 픽셀) 값을 출력 버퍼의 현재 저장 위치에 저장한다. 그 다음 이 방법은 단계(1250)로 계속된다.
단계(1250)는 이전 단계 (1220)에서 수신된 제1데이터 스트림의 픽셀 값이 주 이미지의 이미지 행에서 마지막 픽셀의 픽셀 값에 대응하는지 여부를 결정한다. 예시된 예에서, 단계(1250)는 도 11의 방법(1100)의 "C"로부터 "이미지 행의 끝" 신호를 수신하는 경우 이전 단계(1220)에서 수신된 픽셀 값이 주 이미지의 이미지 행의 마지막 픽셀이고 따라서 그 끝에 있는 것으로 결정한다. 다른 예들에서, 이 방법(1200)은 주 이미지의 픽셀 열의 수에 대한 정보를 수신할 수 있고, 이미지 행의 끝을 식별하기 위해 단계(1220)에서 수신한 제1데이터 스트림의 픽셀 값을 추적하도록 이미지 열 카운터(미도시)를 포함할 수 있다. 단계(1250)에서 이전 단계(1220)에서 수신된 픽셀 값이 이미지 행의 마지막 픽셀에 해당하지 않는다고 결정하면, 이 방법은, 예를 들어 커널 샘플링 위치를 1씩 증가시킴으로써 (단계(1210) 참조), 출력 버퍼의 저장 위치를 1씩 증가시키고 새로운 저장 위치를 다음으로 설정하는 단계(1252)로 진행한다. 그 다음, 이 방법은 단계(1220)로 돌아가서, 제1 및 제2데이터 스트림의 다음 픽셀 및 커널 값 쌍을 수신한다. 다시, 커널 열 카운터를 사용하는 예에서, 커널 열 카운터는 단계(1220)에서 다음 쌍의 값을 수신하기 전에 0으로 재설정된다. 그런 다음 이 방법은 단계(1250)가 이전 단계(1220)에서 수신된 픽셀 값은 이미지 행의 끝에 있다고 결정할 때까지 단계(1220) 내지 단계(1252)를 포함하는 내부 루프에서 계속된다. 단계(1250)가 마지막으로 수신된 픽셀 값이 이미지 행의 끝에 있다고 결정하면, 이 방법은 단계(1260)로 진행한다.
단계(1260)는 이전 단계(1220)에서 수신된 픽셀 값의 이미지 행이 주 이미지의 마지막 이미지 행에 대응하는지, 따라서 제1데이터 스트림에서 주 이미지의 마지막 픽셀의 픽셀 값인지를 결정한다. 예시된 예에서, 단계(1260)는 도 11의 방법 (1100)의 "E"로부터 "이미지의 끝" 신호를 수신하면, 이전 단계(1220)에서 수신된 픽셀 값이 제1데이터 스트림의 마지막 픽셀의 픽셀 값이라고 결정한다.
단계(1260)가 이전 단계(1220)에서 수신된 픽셀 값이 제1데이터 스트림의 마지막 픽셀의 픽셀 값이 아니라고 결정하면, 주 이미지의 서브-샘플링은 완료되지 않고 방법은 단계(1270)로 진행한다. 반면, 단계(1260)가 이전 단계(1220)에서 수신된 픽셀 값이 제1데이터 스트림의 마지막 픽셀의 픽셀 값이라고 결정하면, 주 이미지의 서브-샘플링이 완료되고 이 방법은, (서브-샘플링 된) 부 이미지의 전체 (또는 완전) 픽셀 값으로서 출력 버터로부터의 제3데이터 스트림의 누적 값의 마지막 행을 출력하는, 단계(1280)로 진행한다. 그런 다음 이 방법은 단계(1285)에서 종료된다.
단계(1270)로 돌아가서, 방법(1200)은 단계(1220)에서 수신된 제2데이터 스트림의 커널 값 또는 가중치가 커널의 마지막 행(즉, 커널의 마지막 커널 값)에서 나온 것인지 여부를, 현재 샘플링 위치가 완료되었다는 의미로서, 결정한다. 예시된 예에서, 단계(1270)는 도 11의 방법(1100)의 "D"로부터 "커널의 끝" 신호를 수신하면 이전 단계(1220)에서 수신된 커널 값이 커널의 마지막 커널 값이라고 결정한다. 다른 예에서, 커널 행 카운터는 커널 행을 추적하는 데 사용되고, 단계(1270)는 커널 행 카운터의 현재 값을 커널 행 수 M과 직접 비교하고, 일치하는 경우, 이전 단계(1220)에서 수신한 커널 값이 커널의 마지막 커널 값이라고 결정할 수 있다. 단계(1270)가 이전 단계(1220)에서 수신된 커널 값이 커널의 마지막 커널 값이 아니라고 결정하면, 이 방법은 출력 버퍼에 저장된 누적 값의 현재 행을, 전술한 바와 같이 단계(1232)에서 차례로 수신된 "F"에서의 피드백으로서, 부분 픽셀 값의 제3데이터 스트림으로 제공하는 단계(1272)로 계속된다. 그 다음, 이 방법은 단계(1220)로 돌아가서, 제1 및 제2데이터 스트림의 다음 픽셀 및 커널 값 쌍을 수신한다. 다시 말하지만, 커널 열 카운터를 사용하는 예에서 커널 열 카운터는 단계(1220)에서 다음 값 쌍을 수신하기 전에 0으로 재설정된다.
단계(1270)가 이전 단계(1220)에서 수신 한 커널 값이 커널의 마지막 커널 값이라고 결정하면 두 가지 결과가 발생한다. 첫째, (제1데이터 스트림에서 픽셀 값은 래스터 스캔 순서로 주 이미지로부터 판독되기 때문에) 커널의 샘플링 윈도우는 y 방향(즉, 샘플링 위치의 다음 행)의 스트라이드 거리만큼 다음 샘플링 위치로 이동하고, x 방향의 다음 이미지 행의 시작으로 이동한다. 둘째, 샘플링 위치 행의 각 샘플링 위치에서 커널 내에 포함된 N 픽셀 값의 서브-샘플링은 커널 연산에 의해 처리되었으므로 출력 버퍼의 각 해당 저장 위치에 출력된 누적 값은 부 이미지의 전체 (또는 완전) 픽셀 값이다.
따라서, 단계(1274)는 출력 버퍼에 저장된 누적된 값을 부 이미지의 전체 (또는 완전한) 픽셀 값을 포함하는 제3데이터 스트림으로서, 예를 들어 도 10에 도시된 분할기(120)로 출력한다. 이것은 출력 버퍼의 저장 위치를 정리하는 역할을 할 수 있다. 그 다음, 이 방법(1200)은 출력 버퍼의 현재 저장 위치를 다음 커널 샘플링 위치로 설정하는 단계(1210)로 돌아간다. 따라서, 출력 버퍼에서 현재 첫 번째 저장 위치는 커널의 샘플링 위치의 다음 행의 첫 번째 샘플링 위치와 일치한다. 그 다음, 이 방법(1200)은 단계(1260)가 마지막 이미지 행이 처리되었다고 결정할 때까지 계속되고, (서브-샘플링 된) 부 이미지의 누적된 전체 (완전) 픽셀 값의 마지막 행이 단계(1280)에서 출력되고, 이 방법은 단계(1285)에서 종료된다.
당업자라면 이해하는 바와 같이, 도 11 및 도 12에 예시된 흐름도는 단지 예일 뿐이다. 본 개시 내용을 구현할 때 많은 변형 또는 수정이 가능하고 고려된다. 예를 들어, 이 단계는 순서도에 묘사된 것과 다른 순서로 수행될 수 있다.
인터레이스
상술한 바와 같이, 커널을 이용하여 주 이미지(소스 이미지 또는 중간 이미지)을 서브-샘플링(언더 샘플링)하여 복수의 부 이미지가 생성될 수 있다. 각 부 이미지는 주 이미지보다 픽셀 수가 적다. 복수의 부 이미지 각각에 대해 홀로그램이 결정되고, 각각의 홀로그램이 차례로 디스플레이 장치에 디스플레이 되어 재생 평면 상에 부 이미지 각각에 대응하는 홀로그램 재구성을 형성한다.
따라서, 선택적으로, 소스 이미지(즉, 중간 이미지)의 워프(warped) 버전을 서브-샘플링 함으로써 뒤틀림(warping)을 보상하면서 주 이미지에 대응하는 복수의 홀로그래픽 재구성을 인터레이스 하는 기술이 여기에 개시된다.
일부 실시예에서, 홀로그램 계산 및 인터레이싱의 속도는 본 개시에 따른 데이터 스트리밍 접근법에 의해 증가된다. 특히, 부 이미지의 전체 또는 전체 픽셀 값은 부 이미지의 모든 픽셀 값이 결정되기 전에 홀로그램 계산을 시작하기 위해 실시간으로 홀로그램 엔진에 스트리밍 될 수 있다. 예를 들어, 도 12의 방법(1200)의 단계(1274)에서 출력된 부 이미지의 각 행의 전체 또는 완전 픽셀 값은, 단계(1280)에서 부 이미지의 마지막 행의 전체 또는 완전 픽셀 값이 출력되기 전에 홀로그램 계산을 시작하기 위해, 홀로그램 엔진에 실시간으로 스트리밍 될 수 있다.
따라서, 커널 값의 m 행 및 n 열을 갖는 커널을 사용하여 주 이미지를 언더 샘플링 하여 부 이미지를 생성하는 방법이 여기에 개시되며, 여기서 커널은, 주 이미지의 각 행에 대해, x 픽셀의 스트라이드 거리에 의해 분리된 행에 대한 각 커널 샘플링 위치에 대해, 복수의 커널 샘플링 위치를 가지고, 이 방법은 다음을 포함한다: 픽셀 값의 제1데이터 스트림을 형성하는 단계로서, 제1데이터 스트림은 주 이미지의 이미지 픽셀 값을 행 단위로 판독함으로써 형성되는, 단계; 커널 값의 제2데이터 스트림을 형성하는 단계; 및 각 픽셀 값이 해당 커널 샘플링 위치에 대한 커널의 커널 값 각각과 쌍을 이루도록 제1데이터 스트림의 픽셀 값을 제2데이터 스트림의 커널 값과 동기화하는 단계.
일부 실시예에서, 홀로그래픽 프로젝터 및 광학 릴레이 시스템을 포함하는 헤드 업 디스플레이와 같은 디스플레이 장치가 제공된다. 광학 중계 시스템은 각 홀로그래픽 재구성의 가상 이미지를 형성하도록 배열된다. 일부 실시예에서, 타겟 이미지는 타겟 이미지의 제1영역에 있는 니어-필드(near-field) 이미지 콘텐츠 및 타겟 이미지의 제2영역에 있는 파-필드(far-field) 이미지 콘텐츠를 포함한다. 홀로그래픽으로 재구성된 니어-필드 콘텐츠의 가상 이미지는 뷰잉(viewing) 평면, 예컨대 아이-박스(eye-box)으로부터 제1가상 이미지 거리에 형성되고, 홀로그래픽으로 재구성된 파-필드 콘텐츠의 가상 이미지는 뷰잉 평면으로부터 제2가상 이미지 거리에 형성되며, 여기서 제2가상 이미지 거리는 제1가상 이미지 거리보다 크다. 일부 실시예에서, 복수의 홀로그램 중 하나의 홀로그램은 니어-필드에서 사용자에게 디스플레이 될 타겟 이미지의 이미지 콘텐츠(예컨대, 속도 정보)에 대응하고, 복수의 홀로그램 중 다른 홀로그램은 파-필드에 프로젝트 될 타겟 이미지(예컨대, 랜드 마크 표시기 또는 내비게이션 표시기)에 대응한다. 파-필드에 대한 이미지 콘텐츠는 니어-필드에 대한 이미지 콘텐츠보다 더 자주 새로 고쳐질 수 있으며 그 반대의 경우도 마찬가지이다.
시스템 다이어그램
도 13은 실시예에 따른 홀로그래픽 시스템을 나타내는 개략도이다. 공간 광 변조기(SLM: Spatial Light Modulator, 940)는 제어기(930)로부터 수신된 홀로그램을 디스플레이 하도록 배열된다. 동작 시, 광원(910)은 SLM(940)에 표시된 홀로그램을 조명하고 홀로그래픽 재구성이 재생 평면(925) 상의 재생 필드에 형성된다. 제어기(930)는 이미지 소스(920)로부터 하나 이상의 이미지를 수신한다. 예를 들어, 이미지 소스(920)는 단일 정지 이미지를 캡처하도록 배열된 스틸 카메라 또는 동적 이미지의 비디오 시퀀스를 캡처하도록 배열된 비디오 카메라와 같은 이미지 캡처 장치일 수 있다.
제어기(930)는 이미지 처리 엔진(950), 홀로그램 엔진(960), 데이터 프레임 생성기(980) 및 디스플레이 엔진(990)을 포함한다. 이미지 처리 엔진(950)은 이미지 소스(920)로부터 타겟 이미지를 수신한다. 이미지 처리 엔진(950)은 타겟 이미지 및 커널을 수신하고, 여기서 설명된 바와 같은 픽셀 값 및 커널 값 또는 가중치의 대응하는 동기화된 데이터 스트림을 형성하도록 배열된 데이터 스트리밍 엔진(952)을 포함한다. 이미지 처리 엔진(950)은 본 명세서에 설명된 바와 같이 데이터 스트리밍 엔진(950)으로부터 동기화된 데이터 스트림을 사용하여 타겟 이미지에 기초하여 주 이미지로부터 복수의 부 이미지를 생성하도록 배열된 부 이미지 생성기(955)를 포함한다. 이미지 처리 엔진(950)은 제어 신호를 수신하거나 그렇지 않으면 데이터 스트리밍 엔진(952)에 의해 사용하기 위한 부 이미지를 생성하기 위한 커널 방식을 결정할 수 있다. 따라서, 각각의 부 이미지는 주 이미지보다 적은 픽셀을 포함한다. 이미지 처리 엔진(950)은 소스 이미지를 주 이미지로 사용하여 복수의 부 이미지를 생성할 수 있다. 소스 이미지는 타겟 이미지의 업 스케일링 된 버전 일 수 있거나, 또는 여기에 설명된 바와 같이 이미지 처리 엔진은 업 스케일링을 수행할 수 있다. 대안적으로, 이미지 처리 엔진(950)은 중간 이미지를 결정하기 위해 소스 이미지를 처리하고, 중간 이미지를 주 이미지로 사용할 수 있다. 이미지 처리 엔진(950)은 본 명세서에 설명된 바와 같이 주 이미지를 언더 샘플링 함으로써 복수의 부 이미지를 생성할 수 있다. 이미지 처리 엔진(950)은 제1부 이미지 및 제2부 이미지를 결정할 수 있다. 이미지 처리 엔진(950)은 복수의 부 이미지를 홀로그램 엔진(960)으로 전달한다. 일부 구현에서, 이미지 처리 엔진(950)은 본 명세서에 설명된 바와 같이 부 이미지의 픽셀 값을 홀로그램 엔진(960)에 실시간으로 스트리밍 할 수 있다.
홀로그램 엔진(960)은 여기에 설명된 바와 같이 각각의 부 이미지에 대응하는 홀로그램을 결정하도록 배열된다. 홀로그램 엔진(960)은 복수의 홀로그램을 데이터 프레임 생성기(980)로 전달한다. 데이터 프레임 생성기(980)는 본 명세서에 설명된 바와 같이 복수의 홀로그램을 포함하는 데이터 프레임(예를 들어, HDMI 프레임)을 생성하도록 배열된다. 특히, 데이터 프레임 생성기(980)는 복수의 홀로그램 각각에 대한 홀로그램 데이터 및 각 홀로그램의 시작을 나타내는 포인터를 포함하는 데이터 프레임을 생성한다. 데이터 프레임 생성기(980)는 데이터 프레임을 디스플레이 엔진(990)으로 전달한다. 데이터 프레임 생성기(980) 및 디스플레이 엔진(990)은 차례로 데이터 스트리밍에 의해 동작할 수 있다. 디스플레이 엔진(990)은 복수의 홀로그램 각각을 차례로 SLM(940)에 디스플레이 하도록 배열된다. 디스플레이 엔진(990)은 홀로그램 추출기(992), 타일링 엔진(970) 및 소프트웨어 광학 장치(994)를 포함한다. 여기에 설명된 바와 같이, 디스플레이 엔진(990)은 홀로그램 추출기(992)를 사용하여 데이터 프레임으로부터 각각의 홀로그램을 추출하고, 타일링 엔진(970)에 의해 생성된 타일링 방식에 따라 홀로그램을 타일링 한다. 특히, 타일링 엔진(970)은 타일링 방식을 결정하기 위해 제어 신호를 수신할 수 있거나, 그렇지 않으면 홀로그램에 기초하여 타일링을 위한 타일링 방식을 결정할 수 있다. 디스플레이 엔진(990)은 본 명세서에 설명된 바와 같이 재생 평면 상의 재생 필드의 위치를 변환하기 위해 소프트웨어 광학(994)을 사용하여 위상 램프 기능(소프트웨어 렌즈라고도 하는 소프트웨어 격자 기능)을 선택적으로 추가할 수 있다. 따라서, 각각의 홀로그램에 대해, 디스플레이 엔진(990)은 본 명세서에 설명된 바와 같이 대응하는 타일링 방식에 따라 차례로 복수의 홀로그램의 각각의 홀로그램을 디스플레이 하기 위해 SLM(940)에 구동 신호를 출력하도록 배열된다.
제어기(930)는 부 이미지 생성기(955)가 부 이미지를 생성하는 방법을 동적으로 제어할 수 있다. 제어기(930)는 홀로그램에 대한 재생률을 동적으로 제어할 수 있다. 재생률은 이미지 소스(920)로부터 이미지 처리 엔진(950)에 의해 수신된 시퀀스의 다음 타겟 이미지로부터 홀로그램 엔진에 의해 홀로그램이 재 계산되는 빈도로 간주될 수 있다. 여기에 설명된 바와 같이, 동적으로 제어 가능한 특징 및 파라미터가 제어 신호로 표시되는 외부 요인을 기반으로 하여 결정될 수 있다. 제어기(930)는 이러한 외부 요인과 관련된 제어 신호를 수신할 수 있거나, 그러한 외부 요인을 결정하고 이에 따라 이러한 제어 신호를 생성하기 위한 모듈을 포함할 수 있다.
당업자라면 이해하는 바와 같이, 제어기(930)의 전술한 특징은 소프트웨어, 펌웨어 또는 하드웨어 및 이들의 임의의 조합으로 구현될 수 있다.
따라서, m 행 n 열의 커널 값을 갖는 커널을 이용하여 주 이미지를 언더-샘플링 하여 부 이미지를 생성하는 이미지 처리 엔진이 제공된다. 여기서 커널은 각 행에 대해 복수의 커널 샘플링 위치를 가지고, 각 행에 대해 각 커널 샘플링 위치는 x 픽셀의 스트라이드 거리만큼 분리된다. 여기서 이미지 처리 엔진은 다음을 수행하도록 형성되는 데이터 스트리밍 엔진을 포함한다: 픽셀 값의 제1데이터 스트림을 형성하는 단계로서, 제1데이터 스트림은 주 이미지의 이미지 픽셀 값을 행 단위로 판독하는, 단계; 커널 값의 제2데이터 스트림을 형성하는 단계; 및 픽셀 값 각각이 대응하는 커널 샘플링 위치에 대한 커널의 커널 값 각각과 쌍을 이루도록 제1데이터 스트림의 픽셀 값을 제2데이터 스트림의 커널 값과 동기화는 단계.
추가 기능
실시예는 단지 예로서 전기적으로 활성화된 LCOS 공간 광 변조기를 지칭한다. 본 개시의 교시는, 예컨대 임의의 전기적으로 활성화된 SLM, 광학적으로 활성화된 SLM, 디지털 마이크로 미러 디바이스 또는 마이크로 전자 기계적 디바이스와 같은 본 발명에 따른 컴퓨터 생성 홀로그램을 표시할 수 있는 임의의 공간 광 변조기 상에서 동일하게 구현될 수 있다.
일부 실시예에서, 광원은 레이저 다이오드와 같은 레이저이다. 일부 실시예에서, 검출기는 포토 다이오드와 같은 광 검출기이다. 일부 실시예에서, 수광면은 디퓨저 표면 또는 디퓨저와 같은 스크린이다. 본 개시의 홀로그래픽 프로젝션 시스템은 개선된 헤드 업 디스플레이(HUD) 또는 헤드 마운트 디스플레이를 제공하기 위해 사용될 수 있다. 일부 실시예에서, HUD를 제공하기 위해 차량에 설치된 HUD 및 홀로그래픽 프로젝션 시스템을 포함하는 차량이 제공된다. 차량은 자동차, 트럭, 밴, 트럭, 오토바이, 기차, 비행기, 보트 또는 선박과 같은 자동 차량일 수 있다.
실시예는 가시 광선으로 SLM을 조명하는 것을 설명하지만, 통상의 기술자라면 광원 및 SLM이 예를 들어 본 명세서에 개시된 바와 같이 적외선 또는 자외선 광을 지향(direct)하는데 똑같이 사용될 수 있음을 이해할 것이다. 예를 들어, 통상의 기술자라면 정보를 사용자에게 제공하기 위해 적외선 및 자외선을 가시 광선으로 변환하는 기술을 인지하고 있을 것이다. 예를 들어, 본 개시는 이러한 목적을 위해 인광체 및/또는 양자점 기술을 사용하는 것으로 확장된다. 데이터 스트리밍 기술은 이러한 모든 애플리케이션에 적용할 수 있다.
일부 실시예는 2D 홀로그래픽 재구성을 단지 예로서 기술한다. 다른 실시예에서, 홀로그래픽 재구성은 3D 홀로그래픽 재구성이다. 즉, 일부 실시예에서, 각각의 컴퓨터 생성 홀로그램은 3D 홀로그래픽 재구성을 형성한다.
본 명세서에 기술된 데이터 스트리밍의 방법 및 프로세스는 처리 속도를 최적화하기 위해 하드웨어로 구현될 수 있다. 그럼에도 불구하고, 당업자라면 데이터 스트리밍 기술의 특정 측면이 소프트웨어로 구현될 수도 있다는 것을 이해할 것이다. 따라서, 양태들은 컴퓨터 판독가능 매체 상에서 구현될 수 있다. 용어 "컴퓨터 판독가능 매체"는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 버퍼 메모리, 플래시 메모리 및 캐시 메모리와 같이 데이터를 일시적으로 또는 영구적으로 저장하도록 구성된 매체를 포함한다. 또한, "컴퓨터 판독가능 매체"라는 용어는 하나 이상의 프로세서에 의해 실행될 때, 기계가 여기에 기재된 방법론 중 하나 이상을 전체적으로 또는 부분적으로 수행하게 하는 명령들을 기계의 수행 지령으로서 저장할 수 있는 어떤 매체 혹은 다중의 매체의 조합을 포함하는 것으로 간주되어야 한다.
"컴퓨터 판독가능 매체"라는 용어는 또한 클라우드 기반 스토리지 시스템을 포함한다. "컴퓨터 판독 가능 매체"라는 용어는 솔리드-스테이트 메모리 칩, 광학 디스크, 자기(magnetic) 메모리의 예시적인 형태의 하나 이상의 유형 및 비 일시적 데이터 저장소(예를 들어, 데이터 볼륨)를 포함하지만, 디스크 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 일부 예시적인 실시예에서, 실행을 위한 명령어는 캐리어 매체에 의해 전달될 수 있다. 이러한 캐리어 매체의 예는 일시적인 매체(예를 들어, 명령을 전달하는 전파 신호)를 포함한다.
첨부된 청구 범위의 범주를 벗어나지 않으면서 다양한 수정 및 변형이 이루어질 수 있음은 통상의 기술자에게 명백할 것이다. 본 개시는 첨부된 청구 범위 및 그 등가물의 범위 내의 모든 변경 및 변형을 포함한다.

Claims (20)

  1. m 행 및 n 열의 커널 값을 갖는 커널을 사용하여 주 이미지를 언더 샘플링 함으로써 부 이미지를 생성하도록 구성된 이미지 처리 엔진으로서,
    상기 커널은 상기 주 이미지의 각 행에 대해 복수의 커널 샘플링 위치를 가지고, 행에 대한 각 샘플링 위치는 x 픽셀의 스트라이드(stride) 거리만큼 이격되되,
    상기 이미지 처리 엔진은,
    픽셀 값의 제1데이터 스트림을 형성하도록 구성되되, 상기 제1데이터 스트림은 상기 주 이미지의 이미지 픽셀 값을 행 단위로 판독하여 형성하도록 구성되고;
    커널 값의 제2데이터 스트림을 형성하도록 구성되고; 또한
    상기 제1데이터 스트림의 픽셀 값을 상기 제2데이터 스트림의 커널 값과 동기화하여 픽셀 값 각각이 대응하는 커널 샘플링 위치에 대한 상기 커널의 커널 값 각각과 쌍을 이루도록 형성되도록 구성되는,
    이미지 처리 엔진.
  2. 제1항에 있어서,
    상기 제1데이터 스트림의 주 이미지의 픽셀 값과 상기 제2데이터 스트림의 커널 값 사이에 일대 다 상관 관계가 있는 이미지 처리 엔진.
  3. 제1항 또는 제2항에 있어서,
    상기 데이터 스트리밍 엔진은,
    (i) 상기 커널의 첫 번째 행의 커널 값을 여러 번 반복해서 판독하는 단계;
    (ii) 상기 커널의 다음 행의 커널 값을 여러 번 반복해서 판독하는 단계;
    (iii) 단계 (ii)를 (m-2)회 되풀이하여 반복하는 단계;
    (iv) 단계 (i)로 돌아가는 단계; 및
    (v) 상기 제1데이터 스트림에 더 이상 픽셀 값이 없을 때 단계 (i)를 중지하는 단계
    를 사용하여 상기 제2데이터 스트림을 형성하도록 구성되는, 이미지 처리 엔진.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제2데이터 스트림에서 상기 커널의 커널 값의 각 행은 상기 제1데이터 스트림에서 상기 주 이미지의 이미지 픽셀의 복수의 행과 쌍을 이루는, 이미지 처리 엔진.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    버퍼를 더 포함하고,
    상기 이미지 처리 엔진은,
    상기 데이터 스트리밍 엔진으로부터 제1 및 제2데이터 스트림의 이미지 픽셀 값 및 커널 값의 동기화 된 쌍을, 순차적으로, 수신하도록 더 구성되고;
    상기 제1데이터 스트림의 각 픽셀 값과 이와 쌍을 이루는 상기 제2데이터 스트림의 커널 값을 처리하도록 더 구성되며;
    상기 버퍼에 저장하기 위해 각 커널 샘플링 위치에 대해 처리된 픽셀 값을 누적하도록 더 구성되는, 이미지 처리 엔진.
  6. 제5항에 있어서,
    (a) 대응하는 가중치 픽셀 값의 시퀀스를 결정하기 위해 각 픽셀 값을 그와 쌍을 이루는 상기 제2데이터 스트림의 커널 값에 곱하는 단계;
    (b) 제1복수의 커널 샘플링 위치의 각 커널 샘플링 위치에 대한 n 개의 가중치 픽셀 값을 합산하는 단계;
    (c) 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 픽셀 값을 결정하는 단계; 및
    (d) 상기 버퍼 내의 부 이미지의 부분 픽셀 값의 시퀀스를 형성하기 위해
    상기 버퍼의 연속적인 저장 위치에 상기 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 픽셀 값을 저장하는 단계
    를 사용하여 상기 제1데이터 스트림의 주 이미지의 첫 번째 행의 픽셀 값을 처리하도록 구성되고,
    상기 제1데이터 스트림에서 상기 주 이미지의 후속 행 각각에 대한 픽셀 값을 처리하도록 단계 (a) 내지 단계 (d)를 되풀이하여 반복하는, 이미지 처리 엔진.
  7. 제6항에 있어서,
    상기 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 완전 픽셀 값을 결정하기 위해 상기 제1데이터 스트림에서 주 이미지의 (m-1) 후속 행의 픽셀 값을 처리하도록 단계 (a) 내지 단계 (d)를 되풀이하여 반복하도록 구성되고,
    추가 복수의 커널 샘플링 위치의 각 커널 샘플링 위치에 대해 단계 (a) 내지 단계 (d)를 사용하여 상기 제1데이터 스트림에서 주 이미지의 m 행 픽셀 값의 후속 연속 세트를 처리하도록 구성되는, 이미지 처리 엔진.
  8. 제6항 또는 제7항에 있어서,
    (e) 상기 제1데이터 스트림에서 상기 주 이미지의 다음 행의 픽셀 값을 처리하는데 사용하기 위해 상기 부 이미지의 부분 픽셀 값의 시퀀스를 포함하는 제3데이터 스트림을, 상기 버퍼로부터, 피드백 하는 단계
    를 이용하여 상기 제1데이터 스트림에서 상기 주 이미지의 각 행의 픽셀 값을 처리하도록 더 구성되는, 이미지 처리 엔진.
  9. 제8항에 있어서,
    상기 커널 샘플링 위치에 대해 단계 (b)에서 결정된 상기 n 개의 가중치 픽셀 값, 및
    단계 (e)에서 피드백에 포함된 상기 커널 샘플링 위치에 대한 상기 제3데이터 스트림의 해당하는 부분 부 이미지 픽셀 값의 합을 결정함으로써
    단계 (c)에서 커널 샘플링 위치 각각에 대해 상기 누적 가중치 픽셀 값을 결정하도록 구성되는, 이미지 처리 엔진.
  10. 제6항 내지 제9항 중 어느 한 항에 있어서,
    (e) 상기 복수의 샘플링 윈도 위치 각각의 샘플링 윈도우 위치 각각에 대응하는 최종 부 이미지 픽셀 값을 버퍼로부터 출력하도록
    더 구성되는, 이미지 처리 엔진.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 x 방향의 스트라이드 거리는 n 픽셀이고, 상기 커널 창은 상기 주 이미지의 m x n 픽셀의 연속 어레이를 서브-샘플링 하도록 상기 커널은 y 방향의 스트라이드 거리가 m 픽셀인 래스터 스캔 경로에서 이동되는, 이미지 처리 엔진.
  12. m 행 및 n 열의 커널 값을 갖는 커널을 사용하여 주 이미지를 언더 샘플링 함으로써 부 이미지를 생성하는 방법으로서,
    상기 커널은 상기 주 이미지의 각 행에 대해 복수의 커널 샘플링 위치를 가지고, 행에 대한 각 샘플링 위치는 x 픽셀의 스트라이드 거리만큼 이격되되,
    상기 방법은,
    픽셀 값의 제1데이터 스트림을 형성하는 단계로서, 상기 제1데이터 스트림은 상기 주 이미지의 이미지 픽셀 값을 행 단위로 판독하여 형성하는, 단계;
    커널 값의 제2데이터 스트림을 형성하는 단계; 및
    상기 제1데이터 스트림의 픽셀 값을 상기 제2데이터 스트림의 커널 값과 동기화는 단계로서, 픽셀 값 각각이 대응하는 커널 샘플링 위치에 대한 상기 커널의 커널 값 각각과 쌍을 이루도록 하는, 단계를 포함하는,
    방법.
  13. 제12항에 있어서,
    상기 제2데이터 스트림을 형성하는 단계는:
    (i) 상기 커널의 첫 번째 행의 커널 값을 여러 번 반복해서 판독하는 단계;
    (ii) 상기 커널의 다음 행의 커널 값을 여러 번 반복해서 판독하는 단계;
    (iii) 단계 (ii)를 (m-2)회 되풀이하여 반복하는 단계;
    (iv) 단계 (i)로 돌아가는 단계; 및
    (v) 상기 제1데이터 스트림에 더 이상 픽셀 값이 없을 때 단계 (i)를 중지하는 단계
    를 포함하는, 방법.
  14. 제12항 또는 제13항에 있어서,
    상기 제2데이터 스트림에서 상기 커널의 커널 값의 각 행을 상기 제1데이터 스트림에서 상기 주 이미지의 이미지 픽셀의 복수의 행과 쌍을 이루도록 하는 단계를 더 포함하는, 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서,
    상기 데이터 스트리밍 엔진으로부터 제1 및 제2데이터 스트림의 이미지 픽셀 값 및 커널 값의 동기화 된 쌍을, 순차적으로, 수신하는 단계;
    상기 제1데이터 스트림의 각 픽셀 값과 이와 쌍을 이루는 상기 제2데이터 스트림의 커널 값을 처리하는 단계;
    각 커널 샘플링 위치에 대해 처리된 픽셀 값을 누적하는 단계; 및
    각각의 누적된 값을 버퍼의 해당 저장 위치에 저장하는 단계
    를 더 포함하는, 방법.
  16. 제15항에 있어서,
    (a) 대응하는 가중치 픽셀 값의 시퀀스를 결정하기 위해 각 픽셀 값을 그와 쌍을 이루는 상기 제2데이터 스트림의 커널 값에 곱하는 단계;
    (b) 제1복수의 커널 샘플링 위치의 각 커널 샘플링 위치에 대한 n 개의 가중치 픽셀 값을 합산하는 단계;
    (c) 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 픽셀 값을 결정하는 단계; 및
    (d) 상기 버퍼 내의 부 이미지의 부분 픽셀 값의 시퀀스를 형성하기 위해 상기 버퍼의 연속적인 저장 위치에 상기 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 픽셀 값을 저장하는 단계
    를 사용하여 상기 제1데이터 스트림의 주 이미지의 첫 번째 행의 픽셀 값을 처리하는 단계; 및
    상기 제1데이터 스트림에서 상기 주 이미지의 후속 행 각각에 대한 픽셀 값을 처리하도록 단계 (a) 내지 단계 (d)를 되풀이하여 반복하는 단계
    를 더 포함하는, 방법.
  17. 제16항에 있어서,
    상기 제1복수의 커널 샘플링 위치 각각에 대해 누적 가중치 완전 픽셀 값을 결정하기 위해 상기 제1데이터 스트림에서 주 이미지의 (m-1) 후속 행의 픽셀 값을 처리하도록 단계 (a) 내지 단계 (d)를 되풀이하여 반복하는 단계; 및
    추가 복수의 커널 샘플링 위치의 각 커널 샘플링 위치에 대해 단계 (a) 내지 단계 (d)를 사용하여 상기 제1데이터 스트림에서 주 이미지의 m 행 픽셀 값의 후속 연속 세트를 처리하는 단계
    를 더 포함하는, 방법.
  18. 제16항 또는 제17항에 있어서,
    상기 제1데이터 스트림에서 상기 주 이미지의 각 행의 픽셀 값을 처리하는 단계는,
    (e) 상기 제1데이터 스트림에서 상기 주 이미지의 다음 행의 픽셀 값을 처리하는데 사용하기 위해 상기 부 이미지의 부분 픽셀 값의 시퀀스를 포함하는 제3데이터 스트림을, 상기 버퍼로부터, 피드백 하는 단계
    를 포함하는, 방법.
  19. 제18항에 있어서,
    단계 (c)에서 커널 샘플링 위치 각각에 대해 상기 누적 가중치 픽셀 값을 결정하는 단계는,
    상기 커널 샘플링 위치에 대해 단계 (b)에서 결정된 상기 n 개의 가중치 픽셀 값, 및
    단계 (e)에서 피드백에 포함된 상기 커널 샘플링 위치에 대한 상기 제3데이터 스트림의 해당하는 부분 부 이미지 픽셀 값의 합을 결정하는 단계
    를 포함하는, 방법.
  20. 제16항 내지 제19항 중 어느 한 항에 있어서,
    (e) 상기 복수의 샘플링 윈도 위치 각각의 샘플링 윈도우 위치 각각에 대응하는 최종 부 이미지 픽셀 값을 버퍼로부터 출력하는 단계
    를 더 포함하는, 방법.
KR1020210048545A 2020-06-04 2021-04-14 디스플레이 장치 및 시스템 KR102575670B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2008397.8A GB2595696B (en) 2020-06-04 2020-06-04 Forming a hologram of a target image for projection using data streaming
GB2008397.8 2020-06-04

Publications (2)

Publication Number Publication Date
KR20210150968A true KR20210150968A (ko) 2021-12-13
KR102575670B1 KR102575670B1 (ko) 2023-09-07

Family

ID=71615918

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210048545A KR102575670B1 (ko) 2020-06-04 2021-04-14 디스플레이 장치 및 시스템

Country Status (8)

Country Link
US (1) US11722650B2 (ko)
EP (1) EP3919986A1 (ko)
JP (1) JP7430663B2 (ko)
KR (1) KR102575670B1 (ko)
CN (1) CN113766207A (ko)
GB (1) GB2595696B (ko)
MX (1) MX2021006376A (ko)
TW (1) TWI797581B (ko)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6131456A (ja) * 1984-07-24 1986-02-13 Takeo Saegusa 帯電防止性重合体組成物の製造法
JP2001160140A (ja) * 1999-12-02 2001-06-12 Hitachi Ltd デジタルフィルタ,画像処理装置ならびに画像処理方法
KR20100096523A (ko) * 2009-02-24 2010-09-02 삼성전자주식회사 영상 데이터 처리 장치 및 방법
US20140029836A1 (en) * 2012-07-24 2014-01-30 Leonid M. Keselman Stereoscopic depth reconstruction with probabilistic pixel correspondence search
KR20190028454A (ko) * 2016-07-01 2019-03-18 구글 엘엘씨 2차원 실행 레인 어레이 및 2차원 시프트 레지스터를 갖는 이미지 프로세서상의 블록 연산을 위한 코어 프로세서
KR20190062481A (ko) * 2016-10-04 2019-06-05 매직 립, 인코포레이티드 콘볼루션 뉴럴 네트워크들을 위한 효율적인 데이터 레이아웃들
WO2019144855A1 (zh) * 2018-01-26 2019-08-01 腾讯科技(深圳)有限公司 图像处理方法、存储介质和计算机设备
KR20190095462A (ko) * 2017-05-12 2019-08-14 구글 엘엘씨 멀티 코어 이미지 프로세서에서의 애플리케이션 소프트웨어의 구성

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131456A (ja) * 1992-10-16 1994-05-13 Sharp Corp フィルタ回路
US7302111B2 (en) * 2001-09-12 2007-11-27 Micronic Laser Systems A.B. Graphics engine for high precision lithography
US8254680B2 (en) * 2007-01-24 2012-08-28 Samsung Electronics Co., Ltd. Apparatus and method of segmenting an image in an image coding and/or decoding system
JP5522893B2 (ja) * 2007-10-02 2014-06-18 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
KR101000036B1 (ko) * 2008-05-22 2010-12-09 성균관대학교산학협력단 실시간 영상 처리를 위한 서브 샘플링 시스템
MX2011000947A (es) * 2009-05-19 2011-03-02 Panasonic Corp Medio de grabacion, dispositivo de reproduccion, dispositivo de codificacion, circuito integrado, y dispositivo de salida de reproduccion.
US8890522B2 (en) * 2010-04-02 2014-11-18 General Electric Company Accelerated pseudo-random data magnetic resonance imaging system and method
US8896668B2 (en) * 2010-04-05 2014-11-25 Qualcomm Incorporated Combining data from multiple image sensors
US8559688B2 (en) * 2010-06-30 2013-10-15 General Electric Company System and method for processing data signals
KR101805622B1 (ko) * 2011-06-08 2017-12-08 삼성전자주식회사 프레임율 제어 방법 및 장치
US8948248B2 (en) * 2011-07-21 2015-02-03 Luca Rossato Tiered signal decoding and signal reconstruction
GB2498170B (en) 2011-10-26 2014-01-08 Two Trees Photonics Ltd Frame inheritance
GB2499579B (en) * 2012-02-07 2014-11-26 Two Trees Photonics Ltd Lighting device
GB2500417B8 (en) * 2012-03-21 2017-06-07 Sony Computer Entertainment Europe Ltd Camera device, system and method of imaging
GB2501112B (en) 2012-04-12 2014-04-16 Two Trees Photonics Ltd Phase retrieval
GB2509180B (en) * 2012-12-21 2015-04-08 Two Trees Photonics Ltd Projector
US9578328B2 (en) * 2013-07-15 2017-02-21 Qualcomm Incorporated Cross-layer parallel processing and offset delay parameters for video coding
KR101783795B1 (ko) * 2016-01-07 2017-10-12 삼성공조 주식회사 바 플레이트형 열교환기
US20180189641A1 (en) 2017-01-04 2018-07-05 Stmicroelectronics S.R.L. Hardware accelerator engine
US10467796B2 (en) * 2017-04-17 2019-11-05 Intel Corporation Graphics system with additional context
US10176551B2 (en) 2017-04-27 2019-01-08 Apple Inc. Configurable convolution engine for interleaved channel data
US11231583B2 (en) * 2017-08-02 2022-01-25 Envisics Ltd. Display device and system
GB2580012A (en) * 2018-09-28 2020-07-15 Envisics Ltd Head-up display
CN110095968B (zh) 2019-04-24 2021-05-11 清华大学深圳研究生院 一种离轴数字全息图像重建装置和方法及显微成像系统
US11275243B2 (en) * 2019-08-23 2022-03-15 GM Global Technology Operations LLC Hologram replicator assemblies for head up displays including continuous transmission neutral density filters and corrective leveling elements
GB2586512B (en) * 2019-08-23 2021-12-08 Dualitas Ltd Holographic projection
GB2589575B (en) * 2019-12-02 2022-01-12 Envisics Ltd Pupil expander
US11378915B2 (en) 2019-12-12 2022-07-05 Intel Corporation Real time holography using learned error feedback
GB2590621B (en) * 2019-12-20 2022-05-25 Dualitas Ltd A projector for forming images on multiple planes
GB2595676B (en) * 2020-06-02 2022-06-22 Dualitas Ltd A display device and system
GB2597928A (en) * 2020-08-05 2022-02-16 Envisics Ltd Light detection and ranging

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6131456A (ja) * 1984-07-24 1986-02-13 Takeo Saegusa 帯電防止性重合体組成物の製造法
JP2001160140A (ja) * 1999-12-02 2001-06-12 Hitachi Ltd デジタルフィルタ,画像処理装置ならびに画像処理方法
KR20100096523A (ko) * 2009-02-24 2010-09-02 삼성전자주식회사 영상 데이터 처리 장치 및 방법
US20140029836A1 (en) * 2012-07-24 2014-01-30 Leonid M. Keselman Stereoscopic depth reconstruction with probabilistic pixel correspondence search
KR20190028454A (ko) * 2016-07-01 2019-03-18 구글 엘엘씨 2차원 실행 레인 어레이 및 2차원 시프트 레지스터를 갖는 이미지 프로세서상의 블록 연산을 위한 코어 프로세서
KR20190062481A (ko) * 2016-10-04 2019-06-05 매직 립, 인코포레이티드 콘볼루션 뉴럴 네트워크들을 위한 효율적인 데이터 레이아웃들
KR20190095462A (ko) * 2017-05-12 2019-08-14 구글 엘엘씨 멀티 코어 이미지 프로세서에서의 애플리케이션 소프트웨어의 구성
WO2019144855A1 (zh) * 2018-01-26 2019-08-01 腾讯科技(深圳)有限公司 图像处理方法、存储介质和计算机设备

Also Published As

Publication number Publication date
GB202008397D0 (en) 2020-07-22
GB2595696A (en) 2021-12-08
GB2595696B (en) 2022-12-28
TW202147046A (zh) 2021-12-16
EP3919986A1 (en) 2021-12-08
KR102575670B1 (ko) 2023-09-07
US11722650B2 (en) 2023-08-08
JP2021189439A (ja) 2021-12-13
JP7430663B2 (ja) 2024-02-13
MX2021006376A (es) 2021-12-06
CN113766207A (zh) 2021-12-07
US20210385421A1 (en) 2021-12-09
TWI797581B (zh) 2023-04-01

Similar Documents

Publication Publication Date Title
US20210333546A1 (en) Holographic image projection with holographic correction
KR102445475B1 (ko) 홀로그래픽 프로젝션
KR102453726B1 (ko) 홀로그램 프로젝터
CN112558452B (zh) 全息投影
CN111176092B (zh) 全息投影显示设备上的像素映射
CN113009710B (zh) 用于在多个平面上形成图像的投影仪
KR102512258B1 (ko) 홀로그래픽 이미지 정렬
JP7430699B2 (ja) 画像投影
US20230064690A1 (en) Hologram Calculation
KR20210119889A (ko) 프로젝션
KR102575670B1 (ko) 디스플레이 장치 및 시스템
CN115729083A (zh) 从全息图重建图像的方法
CN115113509A (zh) 图像投影
CN118011633A (zh) 扩展眼盒

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right