KR20220025692A - 이미지 처리 - Google Patents

이미지 처리 Download PDF

Info

Publication number
KR20220025692A
KR20220025692A KR1020210111804A KR20210111804A KR20220025692A KR 20220025692 A KR20220025692 A KR 20220025692A KR 1020210111804 A KR1020210111804 A KR 1020210111804A KR 20210111804 A KR20210111804 A KR 20210111804A KR 20220025692 A KR20220025692 A KR 20220025692A
Authority
KR
South Korea
Prior art keywords
linear array
value
data set
values
fourier transform
Prior art date
Application number
KR1020210111804A
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 듀얼리타스 리미티드
Publication of KR20220025692A publication Critical patent/KR20220025692A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/16Processes or apparatus for producing holograms using Fourier transform
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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
    • 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/0443Digital holography, i.e. recording holograms with digital recording means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/141Discrete Fourier transforms
    • G06F17/142Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4084Scaling of whole images or parts thereof, e.g. expanding or contracting in the transform domain, e.g. fast Fourier transform [FFT] domain scaling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • 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
    • G03H2001/0208Individual components other than the hologram
    • G03H2001/0224Active addressable light modulator, i.e. Spatial Light Modulator [SLM]
    • 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/0443Digital holography, i.e. recording holograms with digital recording means
    • G03H2001/045Fourier or lensless Fourier arrangement
    • 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
    • G03H2001/0816Iterative algorithms
    • 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
    • G03H2001/0825Numerical processing in hologram space, e.g. combination of the CGH [computer generated hologram] with a numerical optical element
    • 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
    • G03H2001/2297Addressing the hologram to an active spatial light modulator using frame sequential, e.g. for reducing speckle noise
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2225/00Active addressable light modulator
    • G03H2225/10Shape or geometry
    • G03H2225/122D 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/10Physical parameter modulated by the hologram
    • G03H2240/11Phase only modulation
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2240/00Hologram nature or properties
    • G03H2240/10Physical parameter modulated by the hologram
    • G03H2240/13Amplitude and phase complex modulation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Algebra (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Signal Processing (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Holo Graphy (AREA)
  • Optical Modulation, Optical Deflection, Nonlinear Optics, Optical Demodulation, Optical Logic Elements (AREA)
  • Facsimile Image Signal Circuits (AREA)

Abstract

이미지에 대응하는 복소 데이터 세트의 복소 푸리에 변환을 수행하는 방법이 개시된다.
이미지 처리방법은 복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트에서 제1 1차원 복소 푸리에 변환을 수행하는 과정; 상기 복소 데이터 세트를 극 형식으로 변환하고, 상기 복소 데이터 세트를 극 형식으로 압축하는 과정; 복소 데이터 세트의 행-열 변환을 수행하는 과정; 복소 데이터 세트를 압축 해제하고 복소 데이터 세트를 다시 데카르트 형식으로 변환하는 과정; 및 데카르트 형식의 복소 데이터 세트에서 제1 1차원 복소 푸리에 변환에 직교하는 제2 1차원 푸리에 변환을 수행하는 과정을 포함하는 이미지 처리방법을 개시한다.
또한, 컴퓨터 생성 홀로그램의 반복 계산에 대한 애플리케이션과 같이 대응하는 시스템이 개시된다.

Description

이미지 처리 {Image Processing}
본 개시는 이미지 처리에 관한 것이다. 보다 구체적으로, 본 개시는 복소수 값 이미지 데이터(complex valued image data)의 데이터 압축뿐만 아니라, 복소 이미지 데이터(complex image data)의 2차원 푸리에 변환의 효율적인 구현에 관한 것이다. 특히, 여기에 한정되지는 않지만, 본 개시는 홀로그래픽 디스플레이를 위한 이미지 데이터의 처리에 관한 것이다.
물체에서 산란된 광은 진폭 및 위상 정보를 포함한다. 이러한 진폭 및 위상 정보는 간섭 줄무늬를 포함하는 홀로그래픽 레코딩 또는 "홀로그램"을 형성하도록 잘 알려진 간섭 기술에 의해, 예컨대, 감광성 플레이트 상에 캡쳐될 수 있다. 홀로그램은 원래의 물체를 나타내는 2차원 또는 3차원 홀로그래픽 재구성 또는 재생 이미지를 형성하기에 적절한 광을 조명(illumination)함으로써 재구성될 수 있다.
컴퓨터-생성 홀로그래피(computer-generated holography)는 수치적으로 간섭 프로세스를 시뮬레이션할 수 있다. 컴퓨터-생성 홀로그램(computer-generated hologram: CGH)은 프레넬(Fresnel) 또는 푸리에(Fourier) 변환과 같은 수학적 변환에 기초한 기술을 이용하여 계산될 수 있다. 이러한 유형의 홀로그램은 프레넬 또는 푸리에 홀로그램으로 지칭될 수 있다. 푸리에 홀로그램은 물체의 푸리에 도메인 표현 또는 물체의 주파수 도메인 표현일 수 있다. CGH는 예컨대 가간섭성 광선 추적(coherent ray tracing) 또는 포인트 클라우드 기술(point cloud technique)에 의해 계산될 수도 있다.
CGH는 입사광의 진폭 및/또는 위상을 변조하도록 배열된 공간 광 변조기(SLM: Spatial Light Modulator) 상에 인코딩될 수 있다. 광 변조는, 예컨대, 광학적으로 어드레스 가능한(optically-addressable) 액정, 광학적으로 어드레스 가능한(optically-addressable) 액정 또는 마이크로 미러를 사용하여 달성될 수 있다.
이러한 SLM은 셀들(cells) 또는 요소들(elements)로 지칭될 수 있는 복수의 개별적으로 어드레스 가능한 픽셀들을 포함할 수 있다. 광 변조 방식은 이진(binary), 다중 레벨(multilevel) 또는 연속(continuous)일 수 있다. 이와는 달리, 장치는 연속적일 수 있으며(즉, 픽셀로 구성되지 않은), 이에 따라 광 변조는 장치 전체에 걸쳐서 연속적일 수 있다. SLM은 변조 광이 SLM으로부터 반사되어 출력된다는 점에서 반사형(reflective)일 수 있다. SLM은 변조 광이 SLM을 투과하여 출력된다는 점에서 투과형(transmissive)일 수도 있다.
전술한 기술을 이용하여 이미징을 위한 홀로그래픽 프로젝터가 제공될 수 있다. 이러한 프로젝터는 "헤드-업 디스플레이(HUD: Head-Up Display)", 그리고 예를 들어 근안 장치(near-eye device)를 포함한 "헤드-마운트 디스플레이(HMD: Head-Mounted Display)"에 적용 가능하다.
본 개시의 양태들은 첨부된 독립항들에 정의되어 있다.
제1 양태에서, 2차원 이미지를 나타내는(즉, 2차원 이미지에 대응하는) 제1 복소 데이터 세트의 푸리에 변환을 수행하도록 배열된 이미지 처리 시스템을 제공한다. 제1 복소 데이터 세트는 데카르트 형식의 복소수 값의 2차원 어레이로 구성된다. 2차원 어레이의 값은 2차원 이미지의 픽셀을 나타낸다(즉, 2차원 이미지에 대응한다). 예컨대, 복소 데이터 세트의 2차원 어레이에 있는 각 값은 픽셀 값을 포함한다. 각 값은 제1 비트 수와 함께 제1 숫자 포맷으로 표시된다. 2차원 어레이는 한 차원을 따라 픽셀을 표시하는 값의 제1 선형 어레이, 예컨대 행 및 다른 차원을 따라 픽셀을 표시하는 값의 제2 선형 어레이, 예컨대 열을 정의한다. 물론, 여기에서 사용된 행 또는 열에 대한 언급은 편의를 위해 만들어졌으며 선형 어레이와 행/열 사이 및 행/열과 이미지의 각 차원 사이의 할당은 임의적이며 행 및 열이라는 용어는 상호 교환하여 사용할 수 있다. 더욱이, 어레이의 행은 이미지의 픽셀의 열에 대응할 수 있고 어레이의 열은 이미지의 픽셀의 행에 대응할 수 있으며, 그 반대도 마찬가지이다.
일부 배열에서, 이미지 처리 시스템은 이미지에 대응하는 제1 복소 데이터 세트의 푸리에 변환을 수행하도록 배열된 하나 이상의 프로세서 및 하나 이상의 프로세서에 의해 실행 가능한 명령어를 저장하는 유형의 비일시적 컴퓨터 판독 가능 매체를 포함한다. 명령들은, 실행될 때, 이미지 처리 시스템이 다음을 포함하는 기능을 수행하도록 한다: 데카르트 형식의 제1 복소 데이터 세트의 값의 각각의 제1 선형 어레이의 1차원 푸리에 변환을 수행하는 단계; 각각의 푸리에 변환된 제1 선형 어레이의 각 값을 극 형식으로 변환하는 단계; 극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하는 단계; 제1 선형 어레이에 의해 메모리 제1 선형 어레이에 제2 숫자 포맷의 값을 저장하는 단계; 제2 선형 어레이에 의해 메모리 제2 선형 어레이로부터 값을 판독하는 단계; 메모리에서 읽은 각 값을 다시 숫자 포맷으로 변환하는 단계; 제1 숫자 포맷으로 다시 변환된 각 값을 데카르트 형식으로 변환하는 단계; 및 데카르트 형식으로 다시 변환된 값의 제2 선형 어레이 각각의 1차원 푸리에 변환을 수행하는 단계를 포함하며, 여기서 푸리에 변환된 값의 제2 선형 어레이는 제2 복소 데이터 세트를 형성하고, 제2 복소 데이터 세트를 사용하여 이미지 데이터를 형성한다. 이 시스템은 디스플레이(display)하기 위해 이미지 데이터를 출력하도록 배열된 컨트롤러(controller)를 더 포함할 수 있다.
다른 배열에서, 시스템은 제1 선형 어레이에 의한 제1 복소 데이터 세트 제1 선형 어레이를 수신하고 각각의 제1 선형 어레이의 1차원 푸리에 변환을 수행하도록 배열된 제1 푸리에 변환 엔진을 포함한다. 제1 변환 엔진은 제1 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 각 값을 극 형식으로 변환 및 극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하도록 배열된다. 행-열 변환 엔진은 제1 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 제1 선형 어레이에 의한 제1 선형 어레이 메모리에 제2 숫자 포맷의 값을 저장하고 제2 선형 어레이에 의해 제2 선형 어레이 메모리로부터 값을 판독하도록 배열된다. 실제로, 배열이 전치된다. 제2 변환 엔진은 행-열 변환 엔진에 의해 처리된 복소 데이터 세트를 제2 선형 어레이로 수신하고, 각 값을 다시 제1 숫자 포맷으로 변환하고, 제1 숫자 포맷으로 변환된 각 값을 다시 데카르트 형식으로 변환하도록 배열된다. 제2 푸리에 변환 엔진은 제2 변환 엔진 제2 선형 어레이에 의해 처리된 복소 데이터 세트를 제2 선형 어레이에 의해 수신하고 각 제2 선형 어레이에 대해 1차원 푸리에 변환을 수행하도록 배열된다. 이 시스템은 디스플레이를 위한 이미지 데이터를 형성하기 위하여 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트의 데이터 값을 사용하도록 추가로 배열된다. 예컨대, 이 시스템은 디스플레이를 위해 이미지 데이터를 출력하도록 출력 인터페이스(output interface)를 포함할 수 있다.
유리하게도, 행-열 변환을 위한 데이터 세트에서 각각의 복소 데이터 값을 저장하는 데 사용되는 비트를 줄임으로써, 특정 메모리 병목 현상이 완화된다. 이 시스템의 대부분의 엔진은 선형 어레이의 스트림(stream)을 처리할 수 있지만, 행-열(또는 전치) 엔진은 제2 선형 어레이를 판독할 수 있기 전에 모든 제1 선형 어레이를 수신하고 저장해야 한다. 따라서 이 단계에서 값 당 비트 수를 줄이는 것은 데이터가 행-열 변환 메모리 병목 현상에서 유지되는 시간을 줄여 처리 속도를 높이므로 특히 효과적이다. 또한, 행-열 변환에 필요한 메모리 용량이 줄어든다. 더욱이, 본 개시는 값 당 비트 수를 감소시키기 위하여 극 좌표(polar coordinates) 상에서 동작함으로써 품질 손실을 완화하는 값 당 비트 수를 감소시키는 효율적인 방법을 제공함으로써, 이미지 품질이 유지되는 것을 보장한다. 극 좌표 표현에서 위상 정보는 감소된 비트 수로 표현될 때 더 잘 보존되기 때문이다. 따라서 데이터를 변환하는 이 방법은 중요한 정보가 있는 알고리즘(algorithms)에 특히 적합하다. - 아마도 가장 중요한 이미지-형성 정보는 이미지의 홀로그램 또는 유사한 이미지 처리 알고리즘을 생성하기 위한 알고리즘과 같이 실제로 위상 성분에 인코딩된다. 대조적으로, 데카르트 좌표의 압축은 본 명세서에 개시된 푸리에 변환 기반 프로세스의 경우와 같이, 특히 복수의 낮은 크기 값이 형성될 때 위상 성분에서 더 큰 오류를 초래한다. 어떤 면에서, 본 명세서에 개시된 개선된 방법은 위상 정보를 우선적으로 처리하여 완전 복소 홀로그래피와 같은 경우에 유리하다고 할 수 있으며, 이는 위상 성분의 오차가 진폭 성분의 오류보다 더 큰 손상을 주는 것으로 발견된다. 일단 행-열 변환을 위한 준비 상태로 값이 저장(버퍼링)되면 반올림 오류의 전파를 방지하기 위하여 푸리에 변환 계산에 더 적합한 더 비싼 숫자 포맷으로 다시 변환할 수 있다. 추가로, 예컨대, 각 값에 대한 더 작은 데이터 워드(예컨대, 위상 및 크기 각각에 대해 16비트)를 기록함으로써, 행-열 변환에 대한 속도가 증가되고, 64비트 계산 구조에서 각 64비트 워드에 대해 2개의 값이 기록될 수 있다.
제1 양태의 이미지 처리 시스템은 디스플레이를 위해 이미지 데이터를 수신 및 처리한다. 예컨대, 이 시스템은 이미지 소스로부터 2차원 입력 이미지의 픽셀을 형성하는 데카르트 형식의 복소수 값의 2차원 어레이를 포함하는 이미지 데이터를 수신할 수 있다. 이 시스템은 입력 이미지 데이터를 처리하여 디스플레이를 위한 2차원 출력 이미지의 픽셀을 나타내는 데카르트 형식에서 복소수 값의 2차원 어레이를 포함하는 이미지 데이터를 형성할 수 있다. 출력 이미지 데이터의 복소수 값의 어레이가 디스플레이 장치의 각 픽셀에 표시됨을 이해할 수 있을 것이다. 이미지 처리는 이미지 처리 기술에서 일반적으로 사용되는 입력 이미지 데이터의 2차원 푸리에 변환을 수행하는 것을 포함한다. 이러한 이미지 처리 기술은 본 명세서에 설명된 바와 같이 입력 이미지에 대응하는 컴퓨터 생성 홀로그램을 형성하기 위한 방법 및 알고리즘을 포함한다. 따라서, 일부 구현들에서, 출력 이미지 데이터로 인코딩된 디스플레이 장치는 처리된 입력 이미지에 대응하는 출력 이미지를 디스플레이한다. 다른 구현들에서, 출력 이미지 데이터로 인코딩된 디스플레이 장치는 입력 이미지에 대응하는 홀로그램을 디스플레이한다. 따라서, 본 명세서에서 사용되는 "이미지 데이터"라는 용어는 디스플레이 장치의 픽셀에 인코딩될 때 디스플레이 장치가 이미지 또는 이미지의 홀로그램을 표시하게 하는 데이터를 포함한다.
일부 실시예에서, 제1 양태의 이미지 처리 시스템은 본 명세서에 개시된 바와 같은 디스플레이 및 홀로그래픽 재구성을 위한 홀로그램의 계산 생성을 위한 이미지 처리를 구현하기 위한 빌딩 블록으로서 사용될 수 있다. 예컨대, 이러한 시스템은 제1 데이터 처리 시스템의 출력의 복소수 값의 크기를 조작하여 제2 데이터 처리 시스템에 대한 입력을 생성하는 개입 데이터 프로세서와 함께 기능적으로 연결된, 설명된 바와 같은 두 개의 데이터 처리 시스템을 포함할 수 있다. 일부 실시예에서, 제2 데이터 처리 시스템은 반복 계산을 구현하기 위하여 유사하거나 동일한 방식으로 제1 데이터 처리 시스템에 다시 연결될 수 있다. 제1 및 제2 데이터 처리 시스템(및 그에 따른 각각의 엔진)은 사실상 동일한 것이고, 따라서 데이터 처리 시스템의 출력은 설명된 바와 같이 조작되고, 그 다음에 입력으로 피드백된다는 것이 이해될 것이다. 제1 및 제2 데이터 처리 시스템이 동일하지 않은 경우에도 하나 이상의 엔진을 공유할 수 있다. 추가로, 각 데이터 처리 시스템 내의 엔진은 개별 사례들(즉, 두 개의 푸리에 변환 엔진, 두 개의 변환 엔진 등)에 대응할 수 있거나 하나 이상의 엔진은 실제로 하나의 엔진일 수 있고(즉, 제1 푸리에 변환 엔진도 제2 푸리에 엔진일 수 있고, 제1 변환 엔진도 제2 변환 엔진일 수 있는 등), 값은 그에 따라 엔진 사이에 라우트될 수 있다. 동일하게, 각각의 데이터 처리 시스템은 동일하거나 상이한 상위 비트 수 포맷 및 동일하거나 상이한 하위 비트 수 포맷을 사용할 수 있다.
매우 다양한 표준 또는 사용자 지정 숫자 포맷이 사용될 수 있음을 이해할 수 있을 것이다. 예컨대, 복소수 값은 복소수의 형태에 따라 복소수 / 허수부 또는 위상 / 각도 각각에 대하여 하나씩 두 개의 DOUBLE 부동 소수점 수(128비트)로 저장될 수 있고, 유사하게 두 개의 SINGLE 부동 소수점 수(64비트) 또는 두 개의 HALF 부동 소수점 수(32비트)로 저장될 수 있다. 예컨대 고정 소수점 및 고정 / 지수 없음을 가정하는 사용자 지정 숫자 포맷은, 예컨대 이러한 방식으로 128, 64 또는 32비트로 각 복소수 값을 인코딩하는 것과 같이 동일하게 가능하다. 이러한 사용자 숫자 포맷에서, 실수 / 허수부 각각에 대하여 동일하거나 복소수 값의 각 성분에 다른 비트 수가 할당될 수 있다. 그럼에도 불구하고, 본 개시는 부동 소수점(또는 다른 10진수 또는 2진수)을 제1 비트 수를 갖는 포맷에서 제2 비트 수를 갖는 포맷으로, 예컨대 스케일링, 비트 수를 10진수 값에 재할당, 반올림, 최하위 비트의 삭제 및 추가 등 중에서 하나 이상에 의해, 변환하는 것을 포함한다.
일부 실시예에서, 극 형식의 값을 제2 숫자 포맷으로 변환하는 것은 각각의 크기 값을 x1> y1인 x1 비트에서 y1 비트로 변환하고, 각각의 위상 값을 x2 > y2인 x2 비트에서 y2 비트로 변환하는 것을 포함할 수 있다. 비트 수 x1 및 x2는 동일할 수 있고 및/또는 비트 수 y1 및 y2는 동일할 수 있다(예컨대, x 및 y). 구체적인 예를 들면, x1=x2=32비트(데이터 값 당 64비트) 및 y1=y2=8비트(데이터 값 당 16비트)일 수 있다. 극 형식의 각 값을 제2 숫자 포맷으로 변환하는 것은 각 크기에 스케일링 계수를 곱하는 것을 포함할 수 있고 및/또는 최대 허용 값보다 큰 임의의 크기 값을 최대 허용 값으로 설정하는 것을 포함할 수 있다. 예컨대, 임계값은 스케일링 후에 수행될 수 있다. 임계값은 크기 값 및/또는 반올림에서 최하위 비트를 삭제하는 것을 포함할 수 있다. 최대 허용 값은 y1 비트로 표현할 수 있는 최대 크기 값일 수 있다. 일부 실시예에서, 극 형식의 각 값을 제2 숫자 포맷으로 변환하는 것은 극 형식의 값의 위상 값을 제1 숫자 포맷보다 더 적은 수의 레벨로 양자화하는 것을 포함한다. 예컨대, 이것은 위상 값에서 최하위 비트를 삭제하거나 반올림하는 것을 포함할 수 있다. 물론, 각 복소수 값을 저장하는 데 필요한 비트 수를 줄이기 위한 다른 기술이 동일하게 사용될 수 있다.
일부 실시예에서, 데카르트 형식의 각 값을 다시 제1 숫자 포맷으로 변환하는 것은 각 크기 값을 다시 y1 비트에서 x1 비트로, 각 위상 값을 다시 y2 비트에서 x2 비트로 변환하는 것을 포함한다. 예컨대, 이것은 각 크기 값에 스케일링 계수의 역을 곱하는 것을 포함할 수 있다.
일부 실시예에서, 행-열 변환 엔진의 메모리는 동적 랜덤 액세스 메모리(DRAM)보다 더 빠른 액세스 시간을 유리하게 갖는 정적 랜덤 액세스 메모리(SRAM)이다. 복소수 값당 비트 수를 줄임으로써 필요한 메모리를 줄이는 것은 SRAM의 비트당 더 높은 비용을 (부분적으로)상쇄하는 SRAM 사용을 용이하게 한다.
일부 실시예에서, 제1 푸리에 변환 엔진은 제1 변환 엔진이 다른 제1 선형 어레이을 처리하는 동안 하나의 제1 선형 어레이를 처리하도록 구성되고, 여기서 제2 푸리에 변환 엔진은 하나의 제2 선형 어레이를 처리하는 동안 제2 변환 엔진이 다른 제2 선형 어레이, 또는 둘 다를 처리하도록 구성된다. 예컨대, 제1 및 선택적으로 제2 푸리에 변환 엔진은 복소수 값을 값의 스트림으로 수신할 수 있다. 값은 직렬 버스(serial bus)에서 처리될 수 있다.
일부 실시예에서, 시스템은 디스플레이를 위해 이미지 데이터를 출력하도록 배열된 출력 인터페이스를 포함한다. 예컨대, 컨트롤러는 입력 이미지를 나타내는 홀로그램을 본 명세서에 설명된 바와 같이 홀로그램 디스플레이 장치에 출력하도록 배열된 시스템의 출력 인터페이스를 포함할 수 있다. 홀로그램은 위상 전용 홀로그램 또는 위상 및 진폭 성분을 포함하는 완전 복소 홀로그램일 수 있다. 입력 인터페이스는 실시간으로 이미지 소스(예컨대, 비디오 카메라)로부터 이미지 시퀀스를 수신하도록 구성될 수 있고 출력 인터페이스는 실시간으로 각각의 이미지(또는 각각의 처리된 이미지)를 나타내는 홀로그램 시퀀스를 출력하도록 구성될 수 있다. 결과적으로 이미지는 수신되는 대로 실시간으로, 즉 낮은 레이턴시(low latency)에 처리되며, 예컨대 24fps와 같은 일반적인 비디오 프레임 속도로 온라인 이미지 비디오 프레임으로부터 홀로그램 비디오 프레임을 생성할 수 있다. 일부 실시예에서, 홀로그램 디스플레이 장치는 홀로그램을 디스플레이하도록 배열된 공간 광 변조기 및 홀로그래픽 재구성을 형성하기 위해 공간 광 변조기를 조명하도록 배열된 광원을 포함한다. 일부 실시예에서, 이미지 처리 시스템 및 홀로그램 디스플레이는 단일 통합 장치를 포함할 수 있다.
제2 양태에서, 이미지에 대응하는 제1 복소 데이터 세트의 복소 푸리에 변환을 수행하기 위한 이미지 처리 방법이 개시된다. 제1 복소 데이터 세트는 각각 제1 비트 수와 함께 제1 숫자 포맷으로 표시되는 데카르트 형식의 복소수 값의 2차원 어레이로 구성된다. 2차원 어레이의 값은 2차원 이미지의 픽셀을 나타낸다(즉, 2차원 이미지 픽셀에 대응한다). 2차원 어레이는 1차원을 따라 픽셀을 나타내는 값의 제1 선형 어레이 및 다른 차원을 따라 픽셀을 나타내는 값의 제2 선형 어레이, 예를 들어 위에서 논의된 바와 같은 행 및 열을 정의한다.
상기 방법은 다음 단계를 포함한다: 제1 복소 데이터 세트에서 각각의 제1 선형 어레이의 1차원 푸리에 변환을 수행하는 단계; 각각의 푸리에 변환된 제1 선형 어레이의 각 값을 극 형식으로 변환하는 단계; 극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하는 단계; 제1 선형 어레이에 의해 메모리 제1 선형 어레이에 제2 숫자 포맷의 값을 저장하는 단계; 제2 선형 어레이에 의해 메모리 제2 선형 어레이로부터 값을 판독하는 단계; 메모리에서 읽은 각 값을 다시 제1 숫자 포맷으로 변환하는 단계; 다시 제1 숫자 포맷으로 변환된 각 값을 다시 데카르트 형식으로 변환하는 단계; 및 데카르트 값으로 다시 변환된 값의 제2 선형 어레이 각각의 1차원 푸리에 변환을 수행하는 단계를 포함한다. 이 방법은 디스플레이를 위한 이미지 데이터를 형성하기 위해 값의 푸리에 변환된 제2 선형 어레이를 사용하는 단계를 더 포함한다. 예컨대, 값의 푸리에 변환된 제2 선형 어레이는 제2 복소 데이터 세트를 형성하는데 사용될 수 있고, 이 방법은 제2 복소 데이터 세트를 사용하여 이미지 데이터를 형성하는 단계를 더 포함할 수 있다.
유사하게, 시스템에 대해 위에서 설명된 바와 같이, 푸리에 변환된 제2 선형 어레이는 이미지 또는 유사한 이미지 처리 기술의 홀로그램을 생성하기 위한 알고리즘에서 위에서 설명된(및 아래에서 더 자세히 설명) 크기의 조작에 후속하여 제1 푸리에 변환 단계에서 제1 선형 어레이로 사용될 수 있다. 이전과 같이 숫자 포맷은 두 패스 간에 동일하거나 다를 수 있으며 반복 프로세스를 위해 제1 푸리에 변환 단계를 반복적으로 루프백(loop back)할 수 있다. 추가로, 모든 패스는 행-열 변환을 위해 동일한 메모리를 사용할 수 있거나, 예컨대 홀수 및 짝수 패스에 대해 별도의 이러한 메모리가 사용될 수 있다.
물론, 위에서 설명된 제1 양태의 실시예의 특징은 제2 양태 및 아래에 개시되는 추가 양태에 동일하게 적용이 가능하다.
제3 양태에서, 이미지 처리 시스템은 이미지에 대응하는 복소 데이터 세트를 처리하도록 배열된다. 제1 복소 데이터 세트는 제1 비트 수를 갖는 제1 숫자 포맷으로 각각 표현되는 데카르트 형식의 복소수 값을 포함한다. 복소수 값은 이미지의 픽셀을 나타낸다(즉, 이미지 픽셀에 해당한다). 시스템은 복소 데이터 세트를 수신하고, 각 값을 극 형식으로 변환하고, 극 형식의 각 값을 제1 비트 수보다 적은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하도록 배열된 변환 엔진을 포함한다.
일부 실시예에서, 데이터 세트의 복소수 값은 한 차원을 따른 값의 제1 선형 어레이 및 다른 차원을 따른 값의 제2 선형 어레이를 정의하는 2차원 어레이로 배열된다. 일부 실시예에서, 데이터 처리 시스템은 제1 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 제1 선형 어레이에 의한 메모리 제1 선형 어레이에 제2 숫자 포맷의 값을 저장하도록 배열된 행-열 변환 엔진을 더 포함하고, 제2 선형 어레이로 메모리 제2 선형 어레이에서 값을 판독한다.
일부 실시예에서, 시스템은 제1 선형 어레이에 의한 복소 데이터 세트 제1 선형 어레이를 수신하고 각각의 제1 선형 어레이의 1차원 푸리에 변환을 수행하도록 배열된 푸리에 변환 엔진을 포함하고, 변환 엔진은 푸리에 변환 엔진에 의해 푸리에 변환된 각 선형 어레이와 함께 푸리에 변환 엔진으로부터 복소 데이터 세트를 수신하도록 배열된다.
제4 양태에서, 이미지에 대응하는 제1 복소 데이터 세트의 이미지 처리 방법이 개시된다. 복소 데이터 세트는 각각 제1 비트 수와 함께 제1 숫자 포맷으로 나타내는 데카르트 형식의 복소수 값으로 구성된다. 복소수 값은 이미지의 픽셀을 나타낸다(즉, 이미지의 픽셀에 대응한다). 방법은 각 값을 극 형식으로 변환하고 극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하는 것으로 구성된다.
일부 실시예에서, 데이터 세트의 복소수 값은 1차원을 따른 픽셀을 나타내는 값의 제1 선형 어레이 및 다른 차원을 따른 픽셀을 나타내는 값의 제2 선형 어레이를 정의하는 2차원 어레이로 배열된다. 일부 실시예에서, 방법은 제1 선형 어레이에 의해 메모리 제1 선형 어레이에 제2 숫자 포맷의 값을 저장하는 단계 및 제2 선형 어레이에 의해 메모리 제2 선형 어레이로부터 값을 판독하는 단계를 포함한다.
제5 양태에서, 이미지 처리 시스템은 이미지에 대응하는 복소 데이터 세트의 복소 푸리에 변환을 수행하도록 배열된다. 이 시스템은 다음을 포함한다:
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 푸리에 변환을 수행하도록 구성된 제1 푸리에 변환 엔진;
제1 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트를 극 형식으로 변환하고, 복소 데이터 세트를 극 형식으로 압축하도록 구성된 제1 데이터 변환 엔진;
상기 제1 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 상기 복소 데이터 세트의 행-열 변환을 수행하도록 구성된 행-열 변환 엔진;
행-열 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트의 압축을 해제하고, 복소 데이터 세트를 다시 데카르트 형식으로 변환하도록 구성된 제2 데이터 변환 엔진; 및
제2 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터의 제2 1차원 복소 푸리에 변환, 여기서 제2 1차원 복소 푸리에 변환은 제1 1차원 복소 푸리에 변환에 직교하는 변환을 수행하도록 배열된 제2 푸리에 변환 엔진을 포함한다. 이 시스템은 디스플레이를 위한 이미지 데이터를 형성하기 위하여 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트의 데이터 값을 사용하도록 추가로 배열된다.
제6 양태에서, 이미지에 대응하는 복소 데이터 세트의 복소 푸리에 변환을 수행하기 위한 이미지 처리방법이 개시된다. 이 방법은 다음 단계를 순서대로 포함한다.
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 푸리에 변환을 수행하는 단계;
상기 복소 데이터 세트를 극 형태로 변환하고 상기 복소 데이터 세트를 극 형태로 압축하는 단계;
복소 데이터 세트의 행-열 변환을 수행하는 단계;
복소 데이터 세트를 압축 해제하고 복소 데이터 세트를 다시 데카르트 형식으로 변환하는 단계;
데카르트 형식의 복소 데이터 세트의 제2 1차원 푸리에 변환을 수행하는 단계를 포함하며, 제2 1차원 복소 푸리에 변환은 제1 1차원 복소 푸리에 변환에 직교한다. 이 방법은 디스플레이를 위한 이미지 데이터를 형성하기 위하여 푸리에 변환된 복소 데이터 세트를 사용하는 단계를 더 포함한다.
이미지 데이터의 압축은 위에서 설명된 바와 같이(다른 숫자 포맷으로의 변환에 의해 개별적으로 각 픽셀 값에 대한 비트 수 감소) 또는 임의의 다른 적절한 방식으로 수행될 수 있다.
제7 양태에서, 이미지를 나타내는 복소 데이터 세트를 압축하기 위한 시스템이 개시되며, 이 시스템은 복소 데이터 세트를 수신하고, 복소 데이터 세트를 극 형식으로 변환하고, 복소 데이터 세트를 극 형식으로 압축하도록 배열된 데이터 변환 엔진을 포함한다.
제8 양태에서, 복소 데이터 세트를 극 형식으로 변환하는 단계 및 복소 데이터 세트를 극 형식으로 압축하는 단계를 포함하는, 이미지를 나타내는 복소 데이터 세트를 압축하는 방법이 제공된다.
"홀로그램"이라는 용어는 물체에 대한 진폭 및/또는 위상 정보가 포함된 기록을 나타내는 데 사용된다. "홀로그래픽 재구성"이라는 용어는 홀로그램을 조명하여 형성된 물체의 광학 재구성을 나타내는 데 사용된다. "재생 평면"이라는 용어는 홀로그래픽 재구성이 완전히 형성된 공간의 평면을 지칭하기 위하여 여기에서 사용된다. "재생 필드"라는 용어는 공간 광 변조기로부터 공간 변조된 광을 수신할 수 있는 재생 평면의 하위 영역을 나타내기 위하여 여기에서 사용된다. "이미지" 및 "이미지 영역"이라는 용어는 홀로그래픽 재구성을 형성하는 빛에 의해 조명되는 재생 필드의 영역을 나타낸다. 실시예에서, "이미지"는 "이미지 픽셀"로 지칭될 수 있는 별개의 스폿을 포함할 수 있다.
"인코딩", "기록" 또는 "어드레싱"이라는 용어는 SLM의 복수의 픽셀에 각각의 픽셀의 변조 레벨을 각각 결정하는 복수의 제어 값에 대해 각각 제공하는 프로세스를 설명하는 데 사용된다. SLM의 픽셀은 복수의 제어 값을 수신하는 것에 응답하여 광 변조 분포를 "표시"하도록 구성되어 있다고 말할 수 있다.
허용 가능한 품질의 홀로그래픽 재구성은 원래 물체와 관련된 위상 정보만 포함하는 "홀로그램"으로부터 형성될 수 있다는 것이 밝혀졌다. 이러한 홀로그램 기록은 위상 전용 홀로그램으로 지칭될 수 있다. 그러나 위상 전용 홀로그램에 대한 참조는 예시일 뿐이다. 본 개시 내용은 또한 원본 물체와 관련된 진폭 및 위상 정보를 사용하여 홀로그래픽 재구성을 형성하는 데에도 동일하게 적용 가능하다. 일부 실시예에서, 이것은 원래 물체와 관련된 진폭 및 위상 정보 모두를 포함하는 소위 완전 복소 홀로그램을 사용하는 복소 변조에 의해 달성된다. 이러한 홀로그램은 홀로그램의 각 픽셀에 할당된 값(그레이 레벨)이 진폭 및 위상 성분을 가지므로 완전 복소 홀로그램이라고 할 수 있다. 각 픽셀에 할당된 값(그레이 레벨)은 진폭 및 위상 성분을 모두 갖는 복소수로 나타낼 수 있다. 일부 실시예에서, 완전 복소 컴퓨터 생성 홀로그램이 계산된다.
위상 값, 위상 구성 요소, 위상 정보 또는 간단히 "위상 지연"의 약어로 컴퓨터 생성 홀로그램 또는 공간 광 변조기의 픽셀 위상을 참조할 수 있다. 즉, 설명된 모든 위상 값은 실제로 해당 픽셀이 제공하는 위상 지연의 양을 나타내는 숫자(예컨대, 0 내지 2π 범위 내에서)입니다. 예컨대, 위상 값이 π/2인 것으로 설명된 공간 광 변조기의 픽셀은 수신된 빛의 위상을 π/2 라디안만큼 변경한다. 일부 실시예에서, 공간 광 변조기의 각 픽셀은 복수의 가능한 변조 값(예컨대, 위상 지연 값) 중 하나로 동작 가능하다. "그레이 레벨"이라는 용어는 복수의 이용 가능한 변조 레벨을 지칭하기 위해 사용될 수 있다. 예컨대, "그레이 레벨"이라는 용어는 상이한 위상 레벨이 상이한 회색 음영을 제공하지 않더라도 위상 전용 변조기에서 복수의 이용 가능한 위상 레벨을 지칭하기 위해 편의상 사용될 수 있다. "그레이 레벨"이라는 용어는 또한 편의상 복소 변조기에서 이용 가능한 복수의 복소 변조 레벨을 지칭하는 데 사용될 수 있다.
비록 상이한 양태, 실시예 및 양태 및 실시예의 그룹이 본 개시에서 별도로 개시될 수 있지만, 임의의 실시예 또는 실시예의 그룹의 임의의 특징은 임의의 다른 특징 또는 임의의 실시예 또는 실시예의 그룹의 특징의 조합과 결합될 수 있다. 즉, 본 개시에 개시된 특징들의 모든 가능한 조합 및 순열이 구상되고 개시된다.
특정 실시예는 다음 도면을 참조하여 단지 예로서 설명된다:
도 1은 스크린 상에 홀로그래픽 재구성을 생성하는 반사 SLM을 도시하는 개략도이다.
도 2a는 예시적인 Gerchberg-Saxton 유형 알고리즘의 제1 반복을 도시한다.
도 2b는 예시적인 Gerchberg-Saxton 유형 알고리즘의 제2 및 후속 반복을 보여준다.
도 2c는 예시적인 Gerchberg-Saxton 유형 알고리즘의 대안적인 제2 및 후속 반복을 예시한다.
도 3은 반사형 LCOS SLM의 개략도이다.
도 4a 내지 도 4d는 2차원 푸리에 변환을 예시한다.
도 5는 이미지 데이터를 푸리에 변환 및 변환하도록 구성된 이미지 처리 시스템을 도시한다.
도 6은 2차원 푸리에 변환을 구현하도록 배열된 이미지 처리 시스템을 도시한다.
도 7은 역 2차원 푸리에 변환을 구현하도록 배열된 이미지 처리 시스템을 도시한다.
도 8은 홀로그램의 컴퓨터 생성에 적합한 반복 계산을 구현하도록 배열된 이미지 처리 시스템을 도시한다.
도 9는 홀로그램의 컴퓨터 생성에 적합한 2차원 푸리에 변환 및 반복 계산을 구현하는 이미지 데이터를 푸리에 변환 및 변환하는 방법을 예시한다.
도 10은 컴퓨팅 장치를 도시한다.
도면 전체에 걸쳐 동일한 참조 번호가 동일하거나 유사한 부품을 지칭하는 데 사용된다.
본 발명은 다음에 설명되는 실시예에 제한되지 않고 첨부된 청구범위의 전체 범위로 확장된다. 즉, 본 발명은 여러 가지 다른 형태로 구현될 수 있으며, 설명의 목적으로 기재된 실시예에 한정되는 것으로 해석되어서는 안 된다.
단수형의 용어는 달리 명시되지 않는 한 복수형을 포함할 수 있다.
다른 구조물의 상부/하부 또는 다른 구조물의 위/아래에 형성되는 것으로 기술된 구조물은 구조물이 서로 접촉하는 경우와 그 사이에 제3 구조물이 배치되는 경우를 포함하는 것으로 해석되어야 한다.
시간 관계를 설명할 때 - 예를 들어, 사건의 시간적 순서가 "후", "이후", "다음", "이전" 또는 이와 같이 여러가지로 기술될 때 - 본 개시 내용은 달리 명시되지 않는 한 연속 및 비연속 이벤트를 포함하는 것으로 간주되어야 한다. 예컨대, 설명은 "단지", "즉시" 또는 "직접"과 같은 단어가 사용되지 않는 한 연속적이지 않은 경우를 포함하는 것으로 간주되어야 한다.
본 명세서에서 "제1", "제2" 등의 용어를 사용하여 다양한 구성요소를 설명할 수 있지만, 이들 구성요소가 이러한 용어에 의해 제한되는 것은 아니다. 이러한 용어는 한 요소를 다른 요소와 구별하는 데만 사용된다. 예컨대, 첨부된 특허청구범위의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
서로 다른 실시예의 특징은 부분적으로 또는 전체적으로 결합되거나 결합될 수 있으며, 서로 다양하게 상호 운용될 수 있다. 일부 실시예는 서로 독립적으로 수행될 수 있고, 상호 의존적인 관계로 함께 수행될 수도 있다.
광학구성
도 1은 컴퓨터 생성 홀로그램이 단일 공간 광 변조기에 인코딩된 실시예를 도시한다. 컴퓨터 생성 홀로그램은 재구성을 위한 개체의 푸리에 변환이다. 따라서 홀로그램은 물체의 푸리에 도메인 또는 주파수 도메인 또는 스펙트럼 도메인 표현이라고 말할 수 있다. 이 실시예에서, 공간 광 변조기는 실리콘 상의 반사형 액정, "LCOS" 장치이다. 홀로그램은 공간 광 변조기에서 인코딩되고 홀로그래픽 재구성은 재생 필드, 예컨대 스크린(screen)이나 디퓨저(diffuser)와 같은 수광 표면에서 형성된다.
광원(110), 예컨대 레이저(laser) 또는 레이저 다이오드(laser diode)는 시준 렌즈(111)를 통해 SLM(140)을 조명하도록 배치된다. 시준 렌즈는 일반적으로 평면인 빛의 파면이 SLM에 입사하도록 한다. 도 1에서 파면의 방향은 법선에서 벗어났다(예: 투명 레이어의 평면과 실제로 직교하는 방향에서 2내지3도 떨어져 있음). 그러나, 다른 실시예에서, 일반적으로 평면인 파면은 수직 입사에서 제공되고 빔 스플리터 배열(beam splitter arrangement)은 입력 및 출력 광 경로를 분리하기 위해 사용된다. 도 1에 도시된 실시예에서, 이 배열은 광원으로부터의 광이 SLM의 미러링된 후면에서 반사되고 광 변조 층과 상호작용하여 출사 파면(112)을 형성하도록 되어 있다. 출사 파면(112)은 스크린(125)에서 초점을 갖는 푸리에 변환 렌즈(120)를 포함하는 광학계에 적용된다. 보다 구체적으로, 푸리에 변환 렌즈(120)는 SLM(140)으로부터 변조된 광의 빔을 수신하고 스크린(125)에서 홀로그래픽 재구성을 생성하기 위해 주파수-공간 변환을 수행한다.
특히, 이러한 유형의 홀로그래피에서는 홀로그램의 각 픽셀이 전체 재구성에 기여한다. 재생 필드의 특정 지점(또는 이미지 픽셀) 및 특정 광 변조 요소(또는 홀로그램 픽셀) 사이에는 일대일 상관 관계가 없다. 다시 말해서, 광 변조 층을 빠져나가는 변조된 광은 재생 필드 전체에 분포된다.
이러한 실시예에서, 공간에서 홀로그래픽 재구성의 위치는 푸리에 변환 렌즈의 굴절력(초점)에 의해 결정된다. 도 1에 도시된 실시예에서, 푸리에 변환 렌즈는 물리적 렌즈이다. 즉, 푸리에 변환 렌즈는 광학 푸리에 변환 렌즈이고 푸리에 변환은 광학적으로 수행된다. 모든 렌즈는 푸리에 변환 렌즈로 작동할 수 있지만 렌즈의 성능은 수행하는 푸리에 변환의 정확도를 제한한다. 당업자는 광학 푸리에 변환을 수행하기 위해 렌즈를 사용하는 방법을 이해할 수 있다.
홀로그램 계산
일부 실시예에서, 컴퓨터 생성 홀로그램은 푸리에 변환 홀로그램, 또는 단순히 푸리에 홀로그램 또는 푸리에 기반 홀로그램이며, 여기서 이미지는 정의 렌즈(물리적 렌즈 또는 SLM에 표시된 해당 위상 지연 분포에 의해 구현된 소프트웨어 렌즈)의 푸리에 변환 속성을 활용하여 원거리 필드에서 재구성된다. 푸리에 홀로그램은 재생 평면에서 원하는 광 필드를 다시 렌즈 평면으로 푸리에 변환하여 계산된다. 컴퓨터 생성 푸리에 홀로그램은 푸리에 변환을 사용하여 계산될 수 있다.
푸리에 변환 홀로그램은 Gerchberg-Saxton 알고리즘과 같은 알고리즘을 사용하여 계산될 수 있다. 추가로, Gerchberg-Saxton 알고리즘은 공간 영역(예: 사진)의 진폭 전용 정보로부터 푸리에 영역의 홀로그램(즉, 푸리에 변환 홀로그램)을 계산하는 데 사용될 수 있다. 물체와 관련된 위상 정보는 공간 영역의 진폭 전용 정보에서 효과적으로 "검색"된다. 일부 실시예에서, 컴퓨터 생성 홀로그램은 Gerchberg-Saxton 알고리즘 또는 이의 변형을 사용하여 진폭 전용 정보로부터 계산된다.
Gerchberg Saxton 알고리즘은 평면 A 및 B에서 각각 광선 IA(x, y) 및 IB(x, y)의 강도 단면이 알려진 상황을 고려하고, IA(x, y) 및 IB(x, y)는 단일 푸리에 변환에 의해 관련된다. 주어진 강도 단면을 사용하여 평면 A 및 B, 각각 ΨA(x, y) 및 ΨB(x, y)의 위상 분포에 대한 근사값을 찾는다. Gerchberg-Saxton 알고리즘은 반복 프로세스를 따라 문제에 대한 솔루션을 찾는다. 보다 구체적으로, Gerchberg-Saxton 알고리즘은 공간 영역과 푸리에(스펙트럼 또는 주파수) 영역 사이에서 IA(x, y) 및 IB(x, y)를 대표하는 데이터 세트(진폭과 위상)를 반복적으로 전송하는 동안 공간 및 스펙트럼 제약을 반복적으로 적용한다. 스펙트럼 영역에서 대응하는 컴퓨터 생성 홀로그램은 알고리즘의 적어도 한 번의 반복을 통해 얻어진다. 알고리즘은 수렴되고 입력 이미지를 나타내는 홀로그램을 생성하도록 배열된다. 홀로그램은 진폭 전용 홀로그램, 위상 전용 홀로그램 또는 완전 복소 홀로그램일 수 있다.
일부 실시예에서, 위상 전용 홀로그램은 영국 특허 2,498,170 또는 2,501,112에 기술된 것과 같은 Gerchberg-Saxton 알고리즘을 기반으로 하는 알고리즘을 사용하여 계산되며, 이는 그 전체가 참고로 여기에 포함된다. 그러나, 본 명세서에 개시된 실시예는 단지 예로서 위상 전용 홀로그램을 계산하는 것을 설명한다. 이들 실시예에서, Gerchberg-Saxton 알고리즘은 알려진 진폭 정보 T[x, y]를 발생시키는 데이터 세트의 푸리에 변환의 위상 정보 Ψ[u, v]를 검색하며, 여기서 진폭 정보 T[x, y]는 대상 이미지(예: 사진)를 나타낸다. 크기와 위상은 푸리에 변환에서 본질적으로 결합되기 때문에 변환된 크기와 위상에는 계산된 데이터 세트의 정확도에 대한 유용한 정보가 포함된다. 따라서 알고리즘은 진폭 및 위상 정보 모두에 대한 피드백과 함께 반복적으로 사용될 수 있다. 그러나, 이들 실시예에서, 위상 정보 Ψ[u, v]만이 이미지 평면에서 타겟 이미지(target image)의 홀로그램 표현을 형성하기 위한 홀로그램으로 사용된다. 홀로그램은 위상 값의 데이터 세트(예: 2차원 어레이)이다.
다른 실시예에서, Gerchberg-Saxton 알고리즘에 기초한 알고리즘은 완전-복소 홀로그램을 계산하기 위해 사용된다. 완전-복소 홀로그램은 크기 성분과 위상 성분을 갖는 홀로그램이다. 홀로그램은 각각의 복소 데이터 값이 크기 성분 및 위상 성분을 포함하는 복소 데이터 값의 어레이를 포함하는 데이터 세트(예를 들어, 2차원 어레이)이다.
일부 실시예에서, 알고리즘은 복소수 데이터를 처리하고 푸리에 변환은 복소수 푸리에 변환이다. 복소 데이터는 (i) 데카르트 형식으로 알려진 실수 성분과 허수 성분, 또는 (ii) 극 형식으로 알려진 크기 성분과 위상 성분을 포함하는 것으로 간주될 수 있다. 일부 실시예에서, 복소 데이터의 두 개의 구성요소는 알고리즘의 다양한 단계에서 상이하게 처리된다.
도 2a는 위상 전용 홀로그램을 계산하기 위한 일부 실시예에 따른 알고리즘의 제1 반복을 예시한다. 알고리즘에 대한 입력은 픽셀 또는 데이터 값의 2차원 어레이를 포함하는 입력 이미지(210)이며, 여기서 각 픽셀 또는 데이터 값은 크기 또는 진폭 값이다. 즉, 입력 이미지(210)의 각 픽셀 또는 데이터 값은 위상 성분을 갖지 않는다. 따라서, 입력 이미지(210)는 크기-전용 또는 진폭-전용 또는 강도-전용 분포로 간주될 수 있다. 이러한 입력 이미지(210)의 예는 프레임의 시간적 시퀀스를 포함하는 사진 또는 비디오의 한 프레임이다. 알고리즘의 제1 반복은 랜덤 위상 분포(230)(또는 임의의 위상 시드)를 사용하여 입력 이미지의 각 픽셀에 랜덤 위상 값을 할당하여 시작 복소 데이터 세트를 형성하는 것을 포함하는 데이터 형성 단계(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)의 분포는 알고리즘의 처리 블록을 통해 피드백된다. 크기 값(211A)의 분포는 입력 이미지(210)의 크기 값의 분포를 위해 거부된다. 제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]는 입력 또는 타겟 이미지이고;
Figure pat00002
는 위상 구성 요소이고;
Ψ는 위상 전용 홀로그램(280B)이고;
η는 크기 값(211B)의 새로운 분포이며;
α는 이득 계수이다.
이득 계수 α는 고정되거나 가변적일 수 있다. 일부 실시예에서, 이득 계수 α는 들어오는 타겟 이미지 데이터의 크기 및 비율에 기초하여 결정된다. 일부 실시예에서, 이득 계수 α는 반복 횟수에 의존한다. 일부 실시예에서, 이득 계수 α는 오로지 반복 횟수의 함수이다.
도 2c의 실시예는 다른 모든 점에서 도 2a 및 도 2b의 실시예와 동일하다. 위상 전용 홀로그램 Ψ(u, v)는 주파수 또는 푸리에 도메인의 위상 분포를 포함한다고 말할 수 있다.
일부 실시예에서, 푸리에 변환은 홀로그래픽 데이터에 렌즈 데이터를 포함함으로써 계산적으로 수행된다. 즉, 홀로그램은 물체를 나타내는 데이터뿐만 아니라 렌즈를 나타내는 데이터를 포함한다. 이들 실시예에서, 도 1의 물리적 푸리에 변환 렌즈(120)는 생략된다. 컴퓨터 생성 홀로그램 분야에서는 렌즈를 나타내는 홀로그램 데이터를 계산하는 방법이 알려져 있다. 렌즈를 나타내는 홀로그램 데이터는 소프트웨어 렌즈라고 할 수 있다. 예컨대, 위상 전용 홀로그램 렌즈는 굴절률 및 공간적으로 변하는 광학 경로 길이로 인해 렌즈의 각 지점에서 발생하는 위상 지연을 계산하여 구성할 수 있다. 예컨대, 볼록 렌즈의 중심에서의 광로 길이는 렌즈의 가장자리에서의 광로 길이보다 크다. 진폭 전용 홀로그램 렌즈는 프레넬 존 플레이트에 의해 형성될 수 있다. 또한, 물리적 푸리에 렌즈 없이 푸리에 변환이 수행될 수 있도록 렌즈를 나타내는 홀로그램 데이터를 물체를 나타내는 홀로그램 데이터와 결합하는 방법이 컴퓨터 생성 홀로그램 분야에 알려져 있다. 일부 실시예에서, 렌즈 데이터는 간단한 벡터 가산에 의해 홀로그램 데이터와 결합된다. 일부 실시예에서, 물리적 렌즈는 푸리에 변환을 수행하기 위하여 소프트웨어 렌즈와 함께 사용된다. 대안적으로, 다른 실시예에서, 푸리에 변환 렌즈는 원거리-필드에서 홀로그래픽 재구성이 일어나도록 완전히 생략된다. 추가 실시예에서, 홀로그램은 격자 데이터, 즉 빔 조종과 같은 격자의 기능을 수행하도록 배열된 데이터를 포함할 수 있다. 다시 말하지만, 컴퓨터 생성 홀로그램 분야에서는 이러한 홀로그램 데이터를 계산하고 이를 물체를 나타내는 홀로그램 데이터와 결합하는 방법이 알려져 있다. 예컨대, 블레이즈 격자(blazed grating)의 표면의 각 지점에 의해 발생하는 위상 지연을 모델링하여 위상 전용 홀로그램 격자를 형성할 수 있다. 진폭 전용 홀로그램 격자는 진폭 전용 홀로그램의 각도 조정을 제공하기 위하여 물체를 나타내는 진폭 전용 홀로그램에 단순히 중첩될 수 있다.
일부 실시예에서, 알고리즘을 사용하여 실시간으로 이미지 데이터를 수신하고 홀로그램을 계산하도록 구성된 실시간 엔진이 제공된다. 일부 실시예에서, 이미지 데이터는 이미지 프레임의 시퀀스를 포함하는 비디오이다. 다른 실시예에서, 홀로그램은 미리 계산되고, 컴퓨터 메모리에 저장되며, SLM에 표시하기 위해 필요에 따라 호출된다. 즉, 일부 실시예에서 미리 결정된 홀로그램의 저장소가 제공된다.
실시예는 단지 예로서 푸리에 홀로그래피 및 Gerchberg-Saxton 유형 알고리즘에 관한 것이다. 본 개시는 프레넬 홀로그래피 및 포인트 클라우드 방식과 같은 다른 기술에 의해 계산된 홀로그램에 동일하게 적용이 가능하다.
광 변조
공간 광 변조기는 컴퓨터 생성 홀로그램을 표시하는 데 사용할 수 있다. 홀로그램이 위상 전용 홀로그램인 경우 위상을 변조하는 공간 광 변조기가 필요하다. 홀로그램이 완전-복소 홀로그램인 경우 위상 및 진폭을 변조하는 공간 광 변조기를 사용하거나 위상을 변조하는 제1 공간 광 변조기 및 진폭을 변조하는 제2 공간 광 변조기를 사용할 수 있다.
일부 실시예에서, 공간 광 변조기의 광 변조 요소(즉, 픽셀)는 액정을 포함하는 셀이다. 즉, 일부 실시예에서 공간 광 변조기는 광학-활성 성분이 액정인 액정 장치이다. 각각의 액정 셀은 복수의 광 변조 레벨을 선택적으로 제공하도록 구성된다. 즉, 각각의 액정 셀은 복수의 가능한 광 변조 레벨 중에서 선택된 하나의 광 변조 레벨에서 작동하도록 임의의 시간에 구성된다. 각 액정 셀은 복수의 광 변조 레벨과 다른 광 변조 레벨로 동적으로 재구성 가능하다. 일부 실시예들에서, 공간 광 변조기는 실리콘 상의 반사형 액정(LCOS) 공간 광 변조기이지만, 본 개시는 이러한 유형의 공간 광 변조기로 제한되지 않는다.
LCOS 장치는 작은 조리개(예: 몇 센티미터 너비) 내에서 조밀한 광 변조 요소 또는 픽셀 어레이를 제공한다. 픽셀은 일반적으로 광학 시스템이 소형일 수 있음을 의미하는 몇 도의 회절 각도를 초래하는 약 10미크론 이하이다. LCOS SLM의 작은 조리개를 적절하게 조명하는 것이 다른 액정 장치의 더 큰 조리개보다 더 쉽다. LCOS 장치는 일반적으로 반사형이므로 LCOS SLM의 픽셀을 구동하는 회로가 반사면 아래에 묻힐 수 있다. 결과적으로 조리개 비율이 높아진다. 다시 말해, 픽셀이 조밀하게 밀집되어 있어 픽셀 사이에 낭비되는 공간(dead space) 가 거의 없다. 이는 리플레이 필드에서 광학적 노이즈를 감소시키기 때문에 유리하다. LCOS SLM은 픽셀이 광학적으로 평평하다는 장점이 있는 실리콘 후면을 사용한다. 이 점은 위상 변조 장치에 특히 중요하다.
단지 예시로서, 적합한 LCOS SLM이 도 3을 참조하여 아래와 같이 기술된다. LCOS 장치는 단결정 실리콘 기판(302)을 사용하여 형성된다. 기판의 상부 표면에 배열된 간극(301a)만큼 이격된 정사각형 평면 알루미늄 전극(301)의 2차원 어레이를 갖는다. 전극(301) 각각은 기판(302)에 매설된 회로(302a)를 통해 어드레싱될 수 있다. 각각의 전극은 각각의 평면 거울을 형성한다. 전극 어레이 상에 배향층(303)이 배치되고, 배향층(303) 상에 액정층(304)이 배치된다. 제2 배향층(305)은 액정층(304) 및 평면 투명층(306) 상에 배치되고, 예컨대, 유리로 된, 제2 배향층(305) 상에 배치된다. 예컨대 ITO로 된 단일 투명 전극(307)은 투명층(306)과 제2 배향층(305) 사이에 배치된다.
정사각형 전극(301) 각각은, 투명전극(307) 영역 상부와 중간에 개재되는 액정물질과 함께, 종종 픽셀로 지칭되는 제어 가능한 위상 변조 소자(308)를 형성한다. 유효 픽셀 영역, 즉 충진율(fill factor)은 픽셀(301a) 사이의 공간까지 고려하여 광학적으로 활성인 총 픽셀의 비율이다. 각각의 전극(301)에 인가된 투명전극(307)에 대한 전압을 제어함으로써, 위상 변조 소자의 액정 물질의 특성은 변화될 수 있고, 따라서 그에 입사되는 입사광에 가변 지연을 제공한다. 이렇게 함으로써 파면(wavefront)에 위상 전용 변조가 가해지는 한편 어떤 진폭 효과도 발생하지 않는다.
설명된 LCOS SLM은 반사로 공간 변조된 빛을 출력한다. 반사형 LCOS SLM은 신호 라인, 게이트 라인 및 트랜지스터가 미러링된 표면 아래에 있어 높은 필 팩터(일반적으로 90% 이상)와 고해상도를 제공한다는 장점이 있다. 반사형 LCOS 공간 광 변조기를 이용하는 또 다른 이점은 액정층이 투과형 장치를 이용하는 경우 필요한 것보다 두께가 절반이 될 수 있다는 것이다. 이것은 액정의 스위칭 속도를 크게 향상시킨다(동영상 이미지의 영사에 대한 주요 이점). 그러나, 본 개시의 교시는 투과형 LCOS SLM을 이용하여 동등하게 구현될 수 있다.
2차원 푸리에 변환 구현
도 4a 내지 4D를 참조하면, 2차원 이미지를 나타내는 이미지 데이터의 2차원(2D) 푸리에 변환은 각 차원을 따라 하나씩 두 개의 1차원(1D) 푸리에 변환으로 분해될 수 있다. 예컨대 전술한 바와 같이 도 4a는 픽셀 값 및 랜덤 위상에 대응하는 크기를 갖는 이미지(405)를 나타내는 복소 데이터 값의 2차원 어레이(410)를 도시한다. 푸리에 변환(425)은 화살표(415)로 표시된 바와 같이 어레이(410)의 각 행에 대해 계산되어 행 푸리에 변환 어레이(430)의 해당 행(420)을 계산한다(도 4b 및 4C 참조). 어레이(430)는 행 단위로 푸리에 변환된 것이라고 말할 수 있다. 어레이(430)는 이미지(405)(도 4d 참조)를 나타내는 어레이(410)의 2차원 푸리에 변환(445)을 나타내는 데이터 값의 어레이(440)를 제공하기 위해 도 4c에서 화살표(435)로 표시된 바와 같이 열별로 푸리에 변환된다.
도 5를 참조하면, 2차원 이미지의 2차원(2D) 푸리에 변환을 수행하는 데 특히 적합한 이미지 데이터 처리 시스템은 다음과 같이 배열된 제1 푸리에 변환 엔진(552)을 포함한다: 제1 복소 데이터 값의 제1 어레이를 나타내는 제1 데이터 스트림(501)을 수신하고, 여기서 각각의 제1 복소수 데이터 값은 x-비트로 구성된 실수 값 및 x-비트로 구성된 허수값이며, 즉 데이터 값은 데카르트 형식이고 ; 제1 복소 데이터 값의 제1 어레이의 제1 복소 푸리에 변환을 수행하여 제2 복소 데이터 값의 제2 어레이를 형성하고, 여기서 각각의 제2 복소 데이터 값은 x-비트로 구성된 실수 값 및 x-비트로 구성된 허수 값이며 ; 및 제2 복소수 데이터 값의 제2 어레이를 나타내는 제2 데이터 스트림(502)을 출력하도록 구성된다. 예컨대, x=32비트이다.
특히, 제1 어레이는 도 4a의 어레이(410)에 의해 예시된 바와 같은 입력 이미지를 나타내며, 입력 이미지의 이미지 강도(픽셀 값)에 해당하는 복소 데이터 값의 크기 및 각 데이터 값에 무작위 위상이 할당된다. 예컨대, 이러한 데이터 할당은 극 형식으로 만든 다음 데이터 값을 데카르트 형식으로 변환할 수 있다. 어레이는 복소수 데이터 값 Aij 를 사용하여 다음과 같이 나타낼 수 있다:
Figure pat00003
제1 푸리에 변환 엔진(552)이 수신한 데이터 스트림(제1 데이터 스트림(501))은 다음과 같이 나타낼 수 있으며, 푸리에 변환 엔진(552)은 데이터 값을 한 행씩 차례로 수신한다:
Figure pat00004
푸리에 변환 엔진(552)은 데이터 값을 다음과 같이 한 번에 한 행씩 처리하며, FFT는 고속 푸리에 변환을 나타내지만, 임의의 푸리에 변환 구현이 사용될 수 있음을 알 수 있다:
Figure pat00005
푸리에 변환 엔진(552)은 각각의 변환된 행을 차례로 출력하고 이에 따라 어레이의 차원 중 하나, 예컨대 예시된 도 4c의 어레이의 행의 푸리에 변환에 대응하는 또 다른 데이터 스트림(제2 데이터 스트림(502))을 생성한다:
Figure pat00006
제1 데이터 변환 엔진(554)은 다음과 같이 구성된다: 제2 데이터 스트림(502)을 수신하고; 각각의 제2 복소 데이터 값을 x-비트로 구성된 크기 값 및 x-비트로 구성된 위상 값을 갖는 극 형식으로 변환하고; 각 진폭 값과 각 위상 값을 압축하여 제3 복소 데이터 값의 어레이를 형성하고(예컨대, y < x 인 y 비트로 구성된 진폭 값 및 y 비트로 구성된 위상 값); 및 제3 복소 데이터 값의 제3 어레이를 나타내는 제3 데이터 스트림(503)을 출력하는 것으로 구성된다. 예컨대, x=32비트 및 y=8비트이다.
변환 및 압축의 결합 연산은 다음과 같이 나타낼 수 있다:
Figure pat00007
제3 데이터 스트림(503)은 다음과 같이 표현될 수 있다:
Figure pat00008
이미지를 나타내는 데이터 값의 압축은 극 형식의 각 데이터 값을 더 적은 비트를 사용하여 숫자 포맷으로 변환하는데, 예컨대 크기 및 위상을 각각 더 적은 비트를 사용하는 숫자 포맷으로 개별적으로 변환한다. 예컨대, 원래 숫자 포맷은 위상 및 크기 각각에 대해 하나의 DOUBLE(64비트) 또는 SINGLE(32비트) 부동 소수점 숫자를 사용할 수 있고, 엔진(554)은 예컨대 부동 소수점 숫자의 소수점 부분에서 필요한 수의 최하위 비트를 삭제함으로써 각 숫자를 임의의 방식으로 HALF(16비트) 또는 QUARTER(8비트) 부동 소수점 숫자로 변환할 수 있다. 물론 숫자 포맷(원본 및 압축)은 그렇게 제한되지 않으며 숫자는 예컨대 이진 또는 정수 포맷과 같은 다른 포맷으로 표시될 수 있다. 예컨대, 한 가지 가능한 포맷에서 위상의 2π는 0에서 2π사이의 값이 0과 해당 숫자 사이의 사용 가능한 수준에 균등하게 배치된 위상 부분에 대해 표현할 수 있는 가장 큰 이진수/정수에 해당하고, 크기는 가장 큰 표현 가능한 숫자 값에 대응하는 임계값 크기(표현 가능한 가장 큰 크기) 및 0과 그 크기 사이의 가용 레벨에 걸쳐 균등하게 이격된 중간 값으로 유사하게 표현된다. 특정 예에서, 초기 숫자 포맷은 1024개 레벨(각각 32비트, 총 64비트)의 위상 및 크기 각각을 나타내고 압축된 숫자 포맷은 64개 레벨(각각 8비트, 총 16비트)의 위상 및 크기 각각을 나타낸다.
어느 경우든 위상을 압축하는 것은 하위 비트 표현에서 0과 2π사이의 사용 가능한 레벨로 값을 재분배하는 것을 포함할 수 있다. 크기 값(고정된 간격으로 반드시 제한되지는 않음)의 경우, 숫자 값은 발생할 가능성이 있는 크기에 대한 지식을 기반으로 고정된 간격으로 제한될 수 있다. 예컨대, 크기 값은 사용 가능한 범위 내에 더 적합하도록 더 낮은 숫자 값으로 조정될 수 있으며 크기 값이 해당 숫자로 설정(임계값)되는 최대 표현 가능 수를 여전히 초과하는 해당 사용 가능한 표현 레벨에 할당될 수 있다. 사용 가능한 레벨(레벨이 원하는 것보다 수치적으로 더 떨어져 있지 않거나 더 거칠지 않음)이 허용 가능한 정밀도를 나타내는 동안 허용 가능한 수 이상의 크기가 임계값에 도달하지 않도록 숫자 값을 축소(곱하기)하는 데 사용되는 스케일링 계수는 절충으로 일반적인 데이터 집합에 대한 지식을 기반으로 설정할 수 있다.
이미지 데이터의 변환 및 압축은 별도의 작업으로 설명되지만 이는 제1 데이터 변환 엔진(554)을 설명하는 편의를 위해 수행되며, 별개의 동작이 있는 구현 및 그렇지 않은 구현을 포함한다고 이해될 것이다. 예컨대, 프로세서가 각 데이터 값을 작업 레지스터 (프로세서의 다른 내부 표현의)로 읽어 데이터 값을 극성 형식으로 변환하고 프로세서 외부에서 한 번의 작업으로 설명할 수 있는 낮은 비트 번호 형식의 추가 처리에 사용할 수 있는 메모리에 기록할 수 있다(물론 이를 구현하기 위하여 프로세서 내부에서 다양한 기계 수준 작업이 발생하지만).
행-열 변환 엔진(556)은 다음과 같이 구성된다: 제3 데이터 스트림(503)을 수신하고; 제3 복소 데이터 값의 제3 어레이를 메모리에 기록하며; 및 제4 복소 데이터 값의 제4 어레이(여기서, 제4 복소 데이터 값의 제4 어레이는 제3 복소 데이터 값의 제3 어레이의 행-열 변환 또는 전치)를 나타내는 제4 데이터 스트림(504)을 판독한다.
구체적으로, 행 단위로 제1 데이터 변환 엔진(554)에 의해 생성될 때 변환 엔진(556)은 제3 데이터 스트림(503)을 수신하고 행 단위로 데이터 값을 메모리에 기록한다. 어레이의 모든 행인 모든 제3 데이터 스트림(503)이 메모리에 기록되면 데이터 값이 메모리에서 열 단위로 판독된다. 결과 데이터 스트림(제4 데이터 스트림(504))은 다음과 같이 나타낼 수 있다.
Figure pat00009
해당(행 푸리에 변환, 압축 및 전치) 어레이는 다음과 같이 나타낼 수 있다.
Figure pat00010
위의 어레이는 출력 이미지를 나타내는 이미지 데이터를 형성할 수 있거나 아래에 설명된 바와 같이 추가 처리 반복을 위한 입력 이미지 데이터로 사용될 수 있다.
따라서, 일부 실시예에서, 열 대 열 처리를 위하여 준비된 전치 형태의 행 대 행 푸리에 변환된 어레이를 제공하는 이미지 데이터 처리 시스템이 제공되며, 이에 의해 행 및 열은 각각의 차원에서 각각의 선형 어레이의 예로서 여기에서 언급되고 이에 따라 처리는 열 단위로 시작될 수 있으며 데이터 처리 시스템은 행 단위로 어레이를 제공한다. 즉, "행"이라는 용어는 한 차원(행 또는 열, 수평 또는 수직 등)에 걸쳐 있는 선형 어레이를 나타내는 데만 사용되며, "열"이라는 용어는 2차원 어레이의 다른 차원에 걸쳐 있는 선형 어레이를 나타내는 데만 사용된다.
도 6을 참조하면, 제2 데이터 변환 엔진(558)은 다음과 같이 구성된다: 제4 데이터 스트림(504)을 수신하고; 제4 복소 데이터 값을 각각 압축 해제하고; 각각의 제4 복소 데이터 값을 실수 값과 허수 값을 포함하는 제5 복소 데이터 값, 즉 데카르트 형식으로 변환하고; 및 제5 복소 데이터 값의 제5 어레이를 나타내는 제5 데이터 스트림(505)을 출력한다.
제2 데이터 변환 엔진(558)의 동작은 다음과 같이 개념화될 수 있다:
Figure pat00011
구체적으로, 이미지 데이터의 압축해제는 예컨대 위상 값을 이용 가능한 더 많은 수의 레벨로 재양자화(예: 여분의 0으로 채우고 제3/제4 데이터 스트림(503, 504)의 레벨 사이에 여분의 레벨을 추가하는) 및 스케일링 계수의 역으로 크기 값을 스케일링하고 경우에 따라 DOUBLE 포맷으로 재양자화하거나 다시 변환한다.
행-열 변환 엔진은 단지 제3 데이터 스트림을 수신하기 위한 메모리로서 구현될 수 있고, 모든 데이터 스트림(503)이 기록되었음을 제2 데이터 변환 엔진(558)에 신호하는 기능(제1 데이터 변환 엔진(554)에서 대안적으로 구현됨)을 갖는 일부 구현에서 제1 데이터 변환 엔진(554)에 의해 순차적으로 메모리에 기록될 수 있다는 것이 이해될 것이다. 이러한 구현에서 이 신호는 제2 데이터 변환 엔진(558)이 a11부터 시작하여 매 n번째 데이터 값을 메모리에서 읽도록 즉, (오프셋 및 특정 주소 지정 체계를 무시) 메모리 어드레스 1+(k-1)·n, k={1;2;3;4;
Figure pat00012
;m·n}를 순차적으로 읽도록 트리거한다. 물론, 다른 실시예에서, 이러한 어드레싱/판독 방식은 행-열 변환 엔진에 의해 구현된다.
제2 푸리에 변환 엔진(560)은 다음과 같이 배열된다: 제5 데이터 스트림(505)을 수신하고; 제5 복소수 데이터 값들의 제5 어레이의 제2 1차원 복소 푸리에 변환을 수행하여 제6 복소 데이터 값들의 제6 어레이를 형성하고, 여기서 각각의 제6 복소 데이터 값은 x-비트들로 구성된 실수값 및 x- 비트로 구성된 허수값이다; 및 제6 복소 데이터 값들의 제6 어레이를 나타내는 제 6 데이터 스트림(506)을 출력하는데, 여기서 제2 1차원 복소 푸리에 변환은 제1 1차원 복소 푸리에 변환에 직교하며, 즉, 행 및 열의 관점에서 행보다는 열을 변환한다.
제2 푸리에 변환 엔진(560)의 동작은 다음과 같이 표현될 수 있다:
Figure pat00013
구체적으로, 제2 푸리에 변환 엔진(560)은 열 단위로 제5 데이터 스트림(505)의 데이터 값을 수신하고, 한 번에 하나의 열을 변환하고, 제6 데이터 스트림(506)을 열 단위로 출력한다.
데이터 값의 제6 어레이는 제1 어레이(예: 입력 이미지)의 2차원 푸리에 변환의 전치이며 다음과 같이 나타낼 수 있다:
Figure pat00014
해당 제6 데이터 스트림은 다음과 같이 나타낼 수 있다:
Figure pat00015
따라서, 일부 실시예에서, 2차원 어레이의 행 대 행 및 열 대 열 푸리에 변환으로 분해된 2차원 푸리에 변환을 제공하는 이미지 데이터 처리 시스템이 제공된다. 제1 어레이는 위에서 설명되고 도 4a에 도시된 바와 같이 입력 이미지를 나타내는 이미지 데이터를 포함하기 때문에, 제6 데이터 스트림은 컴퓨터 생성 홀로그램으로 볼 수 있다(일반적으로 및 구체적으로 아래의 데이터 처리 시스템 참조하여 위에서 설명한 하나 이상의 반복 후에). 구체적으로, 각각의 복소 데이터 값의 위상 값은 분리되어 입력 이미지의 컴퓨터 생성 위상 전용 홀로그램으로 볼 수 있다. 따라서, 컴퓨터 생성 홀로그램에 대응하는 제6 데이터 스트림은 여기에 설명된 홀로그래픽 재구성을 위한 홀로그램 디스플레이 장치에 의한 디스플레이를 위하여 출력될 수 있다. 따라서, 일부 실시예에서, 데이터 처리 시스템은 2차원 어레이에 의해 표현되는 이미지의 홀로그램을 생성하기 위한 이미지 처리 시스템을 형성한다. (제6 데이터 스트림에 대응하는) 데이터 값의 2차원 제6 어레이의 값은 2차원 입력 이미지에 대응하는 2차원 홀로그램의 픽셀을 나타낸다(즉, 대응한다).
도 7을 참조하면, 2차원 역 푸리에 변환을 구현하는 이미지 데이터 처리 시스템은 다음과 같이 배열된 제1 역 푸리에 변환 엔진(564)을 포함한다: 제7 데이터 스트림(507)을 수신하고; 제7 복소수 값의 제7 어레이의 제1 1차원 복소 역 푸리에 변환을 수행하여 제8 복소수 데이터 값의 제8 어레이를 형성하고, 여기서 각각의 제8 복소수 데이터 값은 x-비트로 구성된 실수 값과 x-비트로 구성된 허수 값이다; 및 제8 복소수 데이터 값의 제8 어레이를 나타내는 제8 데이터 스트림(508)을 출력한다.
아래에서 논의되는 바와 같이, 제7 데이터 스트림(507)은 예컨대, 제6 데이터 스트림(506)으로부터 유도될 수 있다.
제3 데이터 변환 엔진(566)은 다음을 포함한다: 제8 데이터 스트림(508)을 수신하고; 각각의 제8 복소 데이터 값을 x-비트로 구성된 크기 값 및 x-비트로 구성된 위상 값으로 변환하고; 제9 복소 데이터 값의 제9 어레이를 형성하기 위해 각각의 크기 값 및 각 위상 값을 압축하고; 및 제9 복소 데이터 값의 제9 어레이를 나타내는 제9 데이터 스트림(509)을 출력한다.
일부 실시예에서, 역 푸리에 변환 이미지 데이터 처리 시스템은 행-열 변환 엔진(556, 예: 위에서 설명한 메모리)을 도 5 및 6을 참조하여 위에서 설명한 데이터 처리 시스템과 공유한다. 행-열 변환 엔진(556)은 이 경우에 다음을 추가로 포함한다: 제9 데이터 스트림(509)을 수신하고; 제9 복소 데이터 값의 제9 어레이를 메모리에 쓴다; 및 제10 복소 데이터 값의 제10 어레이를 나타내는 제10 데이터 스트림(510)을 판독하고, 여기서 제10 복소 데이터 값의 제10 어레이는 제9 복소 데이터 값의 제9 어레이의 행-열 변환이다. 다른 실시예에서, 각각의 데이터 처리 시스템은 자신의 행-열 변환 엔진을 갖는다.
제4 데이터 변환 엔진(568)은 다음을 포함한다: 제10 데이터 스트림(510)을 수신하고; 각각의 제10 복소 데이터 값을 압축 해제하고; 각각의 제10 복소 데이터 값을 실수 값과 허수 값을 포함하는 제11 복소 데이터 값으로 변환하며; 및 제11 복소 데이터 값의 제11 어레이를 나타내는 제11 데이터 스트림(511)을 출력한다.
제2 역 푸리에 변환 엔진(570)은 다음을 포함한다: 제11 데이터 스트림(511)을 수신하고; 복소수 데이터 값의 제11 어레이의 제2 1차원 복소 역 푸리에 변환을 수행하여 제12 복소 데이터 값의 제12 어레이를 형성하며, 여기서 각각의 제12 복소 데이터 값은 x-비트로 구성된 실수 값 및 x-비트로 구성된 허수 값이다; 및 제12 복소수 데이터 값들의 제12 어레이를 나타내는 제12 데이터 스트림(512)을 출력하고, 여기서 제2 1차원 복소 역 푸리에 변환은 제1 1차원 복소 역 푸리에 변환에 직교한다.
숙련된 독자는 역 푸리에 변환이 이미 푸리에 변환된 데이터 세트에 적용된 푸리에 변환이라는 것을 인식할 것이다. 예컨대, 푸리에 변환이 이미지를 푸리에 표현으로 변환하는 경우 역 변환은 변환된 데이터 세트를 푸리에 변환하여 다시 이미지 표현으로 변환한다. 따라서, 엔진(552, 554, 558, 560)의 상기 상세한 설명은 각각 엔진(564, 566, 568, 570)에 동일하게 적용 가능하다. 일부 실시예에서, 각각의 엔진은 동일한 방식으로(그리고 다른 것들은 상이하게) 구성될 수 있다. 실제로, 순방향 변환과 역변환의 작업이 동일하기 때문에 제2 푸리에 변환 엔진(560)(제6 데이터 스트림(506))의 출력은 직접적으로 또는 중간 행-열 변환(전치)과 함께 제1 데이터 스트림(501)으로서 제1 푸리에 변환 엔진(552)의 입력으로 피드백될 수 있다. 이 경우, 사실상, 엔진(564, 566, 568, 570)은 각각의 컴퓨팅 자원을 재사용하는 엔진(552, 554, 558, 560)으로 각각 대체된다. 마찬가지로, 데이터 값의 수신된 스트림에 대해 동일한 작업을 수행할 때 푸리에 변환 엔진(552 및 560)은 데이터 값 스트림을 그에 따라 라우팅함으로써 단일 푸리에 변환 엔진으로 대체될 수 있다. 다시 말해서, 일부 실시예에서, 제1, 제2, 제3 및/또는 제4 푸리에 변환 엔진은 단일 푸리에 변환 엔진이지만, 그것들은 각각 서로 다른 별개의 엔진일 수도 있다.
도 8을 참조하면, 일부 실시예에서, 위에서 설명된 이미지 데이터 처리 시스템은 위에 설명된 컴퓨터 생성 홀로그램의 반복적인 계산을 구현하기 위한 이미지 처리를 위하여 결합된다. 따라서, 제1 반복에 의해 계산된 제6 데이터 스트림(506)은 디스플레이를 위한 홀로그램 데이터로 출력되지 않고, 대신에 다음 반복을 위한 입력 이미지 데이터로 사용하기 위하여 역 푸리에 변환에 의해 변환된다. 제1 크기 엔진(562)은 제6 데이터 스트림(506)을 수신하고 제7 데이터 스트림(507)을 출력하도록 배열되고, 제3 푸리에 변환 엔진(564)은 제1 크기 엔진(562)으로부터 제7 데이터 스트림을 수신하도록 배열된다. 제1 크기 엔진(562)은, 예컨대 모든 크기를 1로 설정함으로써, 전술한 바와 같이 역 변환이 발생하기 전에 제6 데이터 스트림(506)의 복소 데이터 값의 크기를 대체하도록 배열된다.
제2 크기 엔진(572)은 제12 데이터 스트림(512)을 수신하고 제13 데이터 스트림(513)을 출력하도록 배열되며, 이는 위에서 설명된 바와 같이 홀로그램의 컴퓨터 생성을 위한 알고리즘의 다음 반복을 위하여 제1 데이터 스트림(501)을 대체한다. 제1 푸리에 변환 엔진(552)은 제2 크기 엔진(572)으로부터 제13 데이터 스트림(513)을 수신하도록 배열된다. 제2 크기 엔진(572)은 하나 또는 두 개의 기능을 수행하도록 배열된다.
한편으로, 일부 실시예에서, 제2 크기 엔진(572)은, 전술한 바와 같이, 제12 데이터 스트림(512)의 복소수 값의 크기를 입력 이미지의 대응하는 크기 또는 픽셀 값과 비교하도록 배열되고, 적합 조건이 전술한대로 충족되면 반복 알고리즘을 종료하도록 배열된다. 다른 실시예에서, 정지 조건은 예컨대 다수의 반복에 기초하고 적합성 기준에 기초하지 않는다. 그럼에도 불구하고 정지 기준이 충족되면, 알고리즘은 제6 데이터 스트림(506)(및 대응하는 제6 어레이, 가능하게는 필요에 따라 전치됨)에 기초하여 컴퓨터 생성 홀로그램을 종료하고 반환하며, 예컨대 위상 전용 홀로그램으로서 각각의 위상 값의 어레이 또는 완전 복소 홀로그램과 같은 복소수 값의 어레이로 반환한다. 따라서 제6 데이터 스트림/어레이는 현재 반복에 대한 중지 기준이 평가될 때까지 메모리에 유지된다(이는 반복 횟수에 대한 기준의 경우 제6 데이터 스트림(506)이 완전히 계산되자마자 발생할 수 있음).
추가 반복이 요구되는 경우, 즉 정지 기준이 충족되지 않으면, 전술한 바와 같이, 제2 크기 엔진(572)은 제12 데이터 스트림(512)의 데이터 값의 크기를 예컨대 크기를 전술한 바와 같이 입력 이미지의 각각의 것으로 또는 크기 및 입력 이미지의 각각의 것의 조합으로 대체한다.
이미지 처리의 해당 방법은 도 9를 참조하여 설명된다. 이 방법은 위에서 설명된 시스템을 사용하거나 다른 방식으로 구현될 수 있다. 도 5 내지 8을 참조하여 전술한 시스템 구성요소의 특징에 대한 설명은 구현 방법에 관계없이 대응하는 방법 단계에 동일하게 적용할 수 있음으로 이해될 것이다. 따라서 아래의 방법 단계의 개시는 위에서 이루어진 각각의 특정 개시를 포함한다.
단계 902에서, 처리될 데카르트 형식의 복소 데이터 값의 2D NxM 배열을 인덱싱하는 카운터 변수 m=1 및 n=1을 초기화하는 방법이 초기화되고, 어레이 자체, 예컨대 컴퓨터 생성 홀로그램이 위에서 설명된 바와 같이 계산될 이미지에 기초하지만, 방법은 그렇게 제한되지 않고 다른 이미지 처리 기술에 사용될 수 있다. 데이터 값이 경우에 따라 열/행으로 스트리밍되는 실시예에서 명시적 카운터가 필요하지 않고, 처리는 데이터 값을 계산하거나 각 행, 열 및/또는 배열의 끝을 나타내는 데이터 스트림의 플래그에 의존하는 데이터 스트리밍에 의해 구동될 수 있음을 알 수 있다.
단계 904에서 n번째 행은 푸리에 변환되고 결과는 단계 906에서 먼저 극 형식으로 변환된 다음 더 낮은 비트 수 포맷/표현으로 변환된다. n번째 행은 단계 908에서 이 형태로 메모리에 저장되고, 단계 910에서는 n번째 행이 어레이의 마지막 행인지 검사한다. n이 증가하지 않으면(또는 스트리밍된 구현에서 다음 M 값이 스트림으로부터 수신됨) 마지막 행이 처리될 때까지 단계 904에서 910이 반복된다. 일부 실시예에서 단순히 추가 처리를 위해 압축된 데이터 세트를 제공하는 경우, 도 9에서 중단점 A(break point A)로 표시된 바와 같이 처리는 결과 어레이를 출력하거나 저장하는 이 단계에서 종료된다.
다른 실시예에서, 방법은 단계 916으로 진행하고, 여기서 예컨대, 데이터 값의 제1 열이 메모리에서 판독된 다음 단계 918에서 다시 원래 숫자 포맷 또는 표현(또는 낮은 비트보다 더 많은 비트를 필요로 하는 적어도 하나)으로 다시 변환된 다음 극 형식에서 데카르트 형식으로 다시 변환된다. 데이터 값의 열은 단계 920에서 푸리에 변환된다. 방법이 아래에 설명된 바와 같이 추가 처리 없이 2차원 푸리에 변환을 제공하는 일부 실시예에서, 이 방법은 도 9의 중단점 B(break point B)에서 루프백하여 배열이 열별로 처리되고 방법이 종료되어 결과 어레이를 출력하거나 저장할 때까지 단계 916 내지 920을 반복한다.
컴퓨터 생성 홀로그램을 계산하기 위한 반복 프로세스를 제공하는 다른 실시예에서, 열이 단계 920에서 변환되면, 데이터 값의 크기는 위에서 설명한 대로 예를 들어 단위로 대체되고, 이 결과 열은 단계 924에서 푸리에 변환되고, 단계 926에서 변환되고, 행이 열로 대체된 단계 904 내지 908의 설명에 따라 단계 928에서 저장된다. 단계 930에서, 모든 열이 처리되었는지 여부가 검사된다. 그렇지 않다면, 프로세스는 단계(932)에서 m을 증가시킨다(위에서 논의된 바와 같이 스트리밍 구현에서 내재적이지 않다면). 일부 실시예에서, 단계 916 내지 920 및 단계 922 내지 928은 열 m이 처리된 후 단계 922 내지 928에서 저장되는 동안 다음 열 m+1은 다음 열이 있는 한 단계 916 내지 920에서 판독되고 처리되도록 인터리빙될 수 있다.
모든 열이 단계 930에서 처리된 것으로 결정되면 프로세스는 n을 재설정하기 위하여 단계 934로 진행한다(스트리밍 구현에서 필요하지 않은 경우 - 위 참조). 예컨대, 단계 936에서 제1 행이 메모리로부터 판독된다. 단계 908은 행을 순차적 데이터 값으로 메모리에 기록하고, 단계 916은 모든 M 번째 값을 순차적으로 판독하여 일련의 열을 판독한 다음 단계 928에서 열의 시퀀스로 기록하고 단계 936에서 모든 N번째 값을 판독하여 일련의 행을 반복해서 판독하고, 아래에 설명된 단계 948에서 순차적 행을 기록하여 루프백하고 단계 916에서 열 시퀀스 읽기를 다시 시작하여 루프를 종료한다(M 건너뛰기). 따라서, 도 9를 참조하여 언급된 행 및 열은 방법의 각 단계에서 변환된 원래 어레이의 행 및 열을 참조한다.
단계 938에서, 단계 936에서 판독된 행은 단계 918에 대해 위에서 설명된 바와 같이 다시 변환되고 변환된 후방 행은 단계 940에서 푸리에 변환된다. 단계 942에서, 행의 크기는 위에서 설명된 바와 같이 표현될 이미지에 기초하여 대체되고, 다음 반복은 단계 944에서 푸리에 변환되고, 단계 946에서 단계 906에 대해 위에서 설명된 대로 변환되고, 단계 948에서 메모리에 저장되는 것으로 시작된다. 단계 950은 모든 행이 처리되었는지 확인한다. 그렇지 않은 경우, 위에서 설명한 대로 스트리밍 구현에 내재적으로 반영되지 않고 방법이 다음 행을 읽기 위해 단계 936로 다시 루프되지 않는 한 n은 단계 952에서 증가한다. 반면에 모든 행이 처리된 것으로 단계 950에서 결정되면 이 방법은 m을 재설정하기 위해 단계 914로 되돌아가고(스트리밍 구현에서 이것이 필요하지 않은 경우 - 위 참조), 이 방법은 단계 916에서 진행된다. 따라서 일부 실시예에서 이 방법은 컴퓨터 생성 홀로그램 계산을 위한 반복 알고리즘을 구현하는데, 알고리즘의 제1 반복에 해당하는 단계 902 내지 942 및 후속 반복에 해당하는 단계 914 내지 940을 통해 단계 944 내지 942를 반복한다.
일부 실시예에서, 정지 기준은 설정된 반복 횟수로 정의된다. 이러한 실시예에서, 방법은 반복 횟수에 도달하고 모든 열이 마지막 반복에서 처리되면 지점 B에서 멈춘다. 해당 지점의 데이터 값, 즉 단계 920에서 푸리에 변환이 홀로그램을 형성하는 데 사용되므로 적어도 마지막 반복(즉, 단계 902 또는 914의 마지막 통과 이후 변환됨)에서 이 목적을 위하여 모든 열에 대해 저장된다. 예컨대, 필요한 경우 데이터 값의 위상은 해당 어레이의 전치와 함께 위에서 설명한 대로 위상 전용 홀로그램으로 사용될 수 있다.
일부 실시예에서, 위에서 상세히 설명된 바와 같이 원래의 입력 이미지와 비교하여 정지 기준은 어레이의 데이터 값의 크기의 크기 분포의 적합도의 관점에서 정의된다. 적합도 측정은 중단점 C에서 결정되고, 이 중단점에서 알고리즘이 충분히 수렴되어 종료할 것으로 판단되면 마지막 단계 902 또는 914 이후 단계 922에서 변환된 열의 데이터 값을 사용하여 전술한 바와 같이 홀로그램을 구성한다. 이를 위해, 각 열을 다음 반복의 해당 열로 덮어쓰거나 다른 적절한 방법으로 어레이의 모든 열에 대해 단계 920에서 생성한 데이터 값의 열 저장소를 유지하는 것이 편리할 수 있다.
따라서, 정지 기준이 충족되면, 방법은 디스플레이를 위해 입력 이미지를 나타내는 홀로그램을 출력할 수 있다. 예컨대, 방법은 여기에 설명된 홀로그램 디스플레이 장치에 홀로그램을 출력할 수 있다. 홀로그램은 위상 전용 홀로그램 또는 위상 및 진폭 성분을 포함하는 완전 복소 홀로그램일 수 있다. 이 방법은 실시간으로 이미지 소스(예: 비디오 카메라)로부터 입력 이미지 시퀀스를 수신하고 실시간으로 각 이미지를 나타내는 홀로그램 시퀀스를 출력할 수 있다. 결과적으로, 이 방법은 이미지가 수신되는 실시간, 즉 낮은 레이턴시(low latency)로 이미지를 처리할 수 있다. 여기에 설명된 바와 같이 복소 이미지 데이터의 압축의 결과로 감소된 레이턴시가 가능하다. 추가로, 복소 이미지 데이터의 극 좌표 표현을 압축하여 이미지 데이터의 오차를 줄인다. 일부 실시예들에서, 이 방법은 홀로그램을 디스플레이하도록 배열된 공간 광 변조기와 같은 홀로그램 디스플레이 장치 상에 각각의 홀로그램을 디스플레이할 수 있고, 홀로그래픽 재구성 또는 홀로그램 재생 이미지를 형성하기 위하여 공간 광 변조기를 빛으로 조명할 수 있다.
설명된 방법에 따르면, 대응하는 홀로그램을 생성하거나 이미지를 처리하는 데 필요한 이미지 데이터에 대응하는 복소수의 대규모 데이터 세트의 변환은 여기에 설명된 바와 같이 감소된 계산 자원, 예컨대 감소된 메모리 용량 및 처리 능력으로 수행될 수 있다. 또한, 컴퓨터 생성 홀로그램 또는 처리된 이미지는 여기에 설명된 바와 같이 증가된 속도 및 정확도로 계산될 수 있다.
추가 기능
실시예는 단지 예로서 전기적으로 활성화된 LCOS 공간 광 변조기를 언급한다. 본 개시의 교시는 예컨대, 전기적으로 활성화된 SLM, 광학적으로 활성화된 SLM, 디지털 마이크로미러 장치 또는 마이크로전자기계 장치와 같은 본 개시에 따라 컴퓨터 생성 홀로그램을 디스플레이할 수 있는 임의의 공간 광 변조기 상에서 동일하게 구현될 수 있다는 것이다.
일부 실시예에서, 광원은 레이저이다. 일부 실시예에서, 검출기는 광검출기이다.
일부 실시예에서, 수광 표면은 스크린 또는 확산기이다. 본 개시의 홀로그래픽 프로젝션 시스템은 개선된 헤드업 디스플레이(HUD) 또는 헤드-마운트 디스플레이를 제공하기 위하여 사용될 수 있다. 일부 실시예에서, HUD를 제공하기 위해 차량에 설치된 홀로그램 프로젝션 시스템을 포함하는 차량이 제공된다. 차량은 자동차, 트럭, 밴, 트럭, 오토바이, 기차, 비행기, 보트 또는 선박과 같은 자동차일 수 있다.
홀로그래픽 재구성의 품질은 픽셀화된 공간 광 변조기를 사용하는 회절 특성의 결과인 소위 0차 문제에 의해 영향을 받을 수 있다. 이러한 0차 광은 "노이즈"로 간주될 수 있으며, 예컨대 정반사된 광 및 SLM으로부터의 기타 원치 않는 광을 포함한다.
푸리에 홀로그래피의 예에서 이 "노이즈"는 푸리에 렌즈의 초점에 집중되어 홀로그래픽 재구성의 중심에 밝은 점으로 이어진다. 0차 빛은 단순히 차단될 수 있지만 이는 밝은 부분을 어두운 부분으로 대체하는 것을 의미한다. 일부 실시예는 0차의 시준된 광선만을 제거하기 위해 각도 선택적 필터를 포함한다. 실시예들은 또한 유럽 특허 2,030,072에 기술된 0차를 관리하는 방법을 포함하며, 이는 그 전체가 참조로 여기에 포함된다.
일부 실시예에서, 홀로그램의 크기(각 방향의 픽셀 수)는 홀로그램이 공간 광 변조기를 채우도록 공간 광 변조기의 크기와 동일하다. 즉, 홀로그램은 공간 광 변조기의 모든 픽셀을 사용한다. 다른 실시예에서, 홀로그램의 크기는 공간 광 변조기의 크기보다 작다. 이러한 다른 실시예들 중 일부에서, 홀로그램의 일부(즉, 홀로그램의 픽셀의 연속 서브세트)는 미사용 픽셀에서 반복된다. 이 기술은 "타일링(tiling)"으로 지칭될 수 있으며, 여기서 공간 광 변조기의 표면적은 각각 홀로그램의 적어도 하나의 서브세트를 나타내는 다수의 "타일들(tiles)"로 나뉜다. 따라서 각 타일은 공간 광 변조기보다 작은 크기이다.
홀로그램 재생 필드의 크기(즉, 홀로그래픽 재구성의 물리적 또는 공간적 범위)는 공간 광 변조기의 픽셀 간격(즉, 공간 광 변조기의 인접한 광 변조 요소 또는 픽셀 사이의 거리)에 의해 결정된다. 재생 필드에서 형성될 수 있는 가장 작은 특징은 "해상도 요소", "이미지 스폿(image spot)" 또는 "이미지 픽셀(image pixel)"이라고 부를 수 있다. 일반적으로 공간 광 변조기의 각 픽셀은 사각형 모양을 갖는다. 사각 조리개의 푸리에 변환은 sinc 함수이므로 각 이미지 픽셀은 sinc 함수이다. 보다 구체적으로, 재생 필드의 각 이미지 픽셀의 공간 강도 분포는 sinc 함수이다. 각각의 sinc 함수는 피크 강도의 1차 회절 차수 및 1차 차수에서 방사상으로 멀어지는 일련의 감소하는 강도의 더 높은 회절 차수를 포함하는 것으로 간주될 수 있다. 각 sinc 함수의 크기(즉, 각 sinc 함수의 물리적 또는 공간적 범위)는 공간 광 변조기의 크기(즉, 광 변조 요소 또는 공간 광 변조기 픽셀의 어레이에 의해 형성된 조리개의 물리적 또는 공간적 범위)에 의해 결정된다. 구체적으로, 광 변조 픽셀 어레이에 의해 형성되는 조리개가 클수록 이미지 픽셀은 작아진다. 일반적으로 작은 이미지 픽셀을 갖는 것이 바람직하다.
일부 실시예에서, "타일링"의 기술은 이미지 품질을 증가시키기 위해 구현된다. 특히, 일부 실시예는 홀로그래픽 재구성으로 들어가는 신호 콘텐츠의 양을 최대화하면서 이미지 픽셀의 크기를 최소화하기 위하여 타일링 기술을 구현한다.
그러나 레이저와 같은 가간섭성 광원이 사용되는 경우 결과 홀로그래픽 재구성은 여전히 "스펙클(speckle)"로 고통받을 수 있습니다. 스펙클은 잘 알려져 있으며 광학적으로 거친 표면에서 산란된 빛의 간섭 결과이다. 이러한 스펙클을 줄이는 것이 바람직하다. 실시예들은 홀로그래픽 재구성에서 인지된 스펙클을 감소시키는 요소 및 기술을 포함한다.
일부 실시예에서, 공간 광 변조기에 기록된 홀로그램 패턴은 적어도 하나의 전체 타일(즉, 완전한 홀로그램) 및 타일의 적어도 하나의 부분(즉, 홀로그램의 픽셀의 연속 서브세트)을 포함한다.
홀로그래픽 재구성은 공간 광 변조기에 의해 정의된 전체 창의 0차 회절 차수 내에서 생성된다. 1차 이후 차수는 이미지와 겹치지 않고 공간 필터를 사용하여 차단될 수 있을 만큼 충분히 멀리 변위되는 것이 바람직하다.
실시예들에서, 홀로그래픽 재구성은 컬러(colour)이다. 본 명세서에 개시된 예에서, 세 개의 상이한 컬러 광원 및 세 개의 대응하는 SLM은 합성 컬러를 제공하기 위해 사용된다. 이러한 예들은 공간적으로 분리된 컬러, "SSC"로 지칭될 수 있다. 본 개시에 포함되는 변형에서, 각각의 컬러에 대한 상이한 홀로그램은 동일한 SLM의 상이한 영역에 디스플레이된 다음 조합되어 합성 컬러 이미지를 형성한다. 그러나, 당업자는 본 개시의 장치 및 방법 중 적어도 일부가 합성 컬러 홀로그램 이미지를 제공하는 다른 방법에 동일하게 적용이 가능하다고 이해할 것이다.
이러한 방법 중 하나는 프레임 순차 컬러, "FSC"로 알려져 있다. FSC 시스템의 예에서는 세 개의 레이저(빨간색, 녹색 및 파란색)가 사용되며 각 레이저는 단일 SLM에서 연속적으로 발사되어 비디오의 각 프레임을 생성한다. 이 컬러들은 인간 뷰어(human viewer)가 세 개의 레이저로 형성된 이미지 조합에서 다색 이미지를 볼 수 있을 만큼 충분히 빠른 속도로 순환된다(빨간색, 녹색, 파란색, 빨간색, 녹색, 파란색 등). 따라서 각 홀로그램은 컬러별로 다르다. 예컨대 초당 25프레임의 비디오에서 제1 프레임은 빨간색 레이저를 1/75초 동안 발사된 다음 녹색 레이저가 1/75초 동안 발사되고 마지막으로 파란색 레이저가 1/75초 동안 발사되어 생성된다. 그런 다음 빨간색 레이저 등으로 시작하여 다음 프레임이 생성된다.
FSC 방식의 장점은 컬러별로 전체 SLM을 사용한다는 점이다. 이는 SLM의 모든 픽셀이 각 컬러 이미지에 사용되기 때문에 생성된 세 가지 컬러 이미지의 품질이 손상되지 않음을 의미한다. 그러나 FSC 방법의 단점은 각 레이저가 시간의 1/3만 사용되기 때문에 생성된 전체 이미지가 SSC 방법으로 생성된 해당 이미지만큼 약 3배 밝지 않다는 것이다. 이 결점은 잠재적으로 레이저를 과도하게 구동하거나 더 강력한 레이저를 사용하여 해결할 수 있지만, 더 많은 전력을 사용해야 하고 더 높은 비용이 필요하며 시스템을 덜 컴팩트하게 만들 것이다.
SSC 방식의 장점은 세 개의 레이저가 동시에 발사되기 때문에 이미지가 더 밝다는 것이다. 그러나 공간 제한으로 인해 하나의 SLM만 사용해야 하는 경우 SLM의 표면적을 세 부분으로 나눌 수 있으며, 사실상 세 개의 개별 SLM처럼 작동한다. 이것의 단점은 각 단색 이미지에 사용할 수 있는 SLM 표면적의 감소로 인해 각 단색 이미지의 품질이 저하된다는 것이다. 따라서 다색 이미지의 품질이 그에 따라 감소한다. 사용 가능한 SLM 표면적의 감소는 SLM에서 더 적은 수의 픽셀을 사용할 수 있음을 의미하므로 이미지 품질이 저하된다. 해상도가 떨어지기 때문에 이미지의 품질이 저하된다. 실시예들은 영국 특허 2,496,108에 개시된 개선된 SSC 기술을 활용하며, 이는 그 전체가 참고로 여기에 포함된다.
예들은 가시광으로 SLM을 조명하는 것을 설명하지만, 당업자는 광원 및 SLM이 예컨대 본 명세서에 개시된 바와 같이 적외선 또는 자외선을 지향시키는 데 동등하게 사용될 수 있음을 이해할 것이다. 예컨대, 당업자는 정보를 사용자에게 제공할 목적으로 적외선 및 자외선을 가시광으로 변환하는 기술을 알고 있을 것이다. 예컨대, 본 개시는 이러한 목적을 위해 형광체 및/또는 양자점 기술을 사용하는 것으로 확장된다.
일부 실시예는 단지 예로서 2차원 홀로그래픽 재구성을 설명한다. 다른 실시예에서, 홀로그래픽 재구성은 3차원 홀로그래픽 재구성이다. 즉, 일부 실시예에서, 각각의 컴퓨터 생성 홀로그램은 3차원 홀로그래픽 재구성을 형성한다.
컴퓨팅 장치
도 10은 컴퓨팅 장치가 여기에서 논의된 방법론 중 임의의 하나 이상을 수행하게 하기 위한 명령어 세트가 실행될 수 있는 컴퓨팅 장치(1000)의 일 구현의 블록도를 도시한다. 대안적인 구현들에서, 컴퓨팅 디바이스는 근거리 통신망(LAN), 인트라넷, 엑스트라넷, 또는 인터넷의 다른 기계들에 연결(예컨대, 네트워크)될 수 있다. 컴퓨팅 장치는 클라이언트-서버 네트워크 환경에서 서버 또는 클라이언트 머신의 용량으로, 또는 피어 투 피어(또는 분산) 네트워크 환경에서 피어 머신(peer machine)으로 작동할 수 있다. 이 컴퓨팅 장치는 개인용 컴퓨터(PC), 태블릿 컴퓨터, 셋톱 박스(STB), 개인 휴대 정보 단말기(PDA), 휴대 전화, 웹 기기, 서버, 네트워크 라우터, 스위치 또는 브리지 또는 해당 기계가 취해야 할 조치를 지정하는 일련의 명령(순차적이든 아니든)을 실행할 수 있는 모든 기계일 수 있다. 추가로, 단일 컴퓨팅 장치만 예시되어 있지만, "컴퓨팅 장치"라는 용어는 여기에서 논의된 방법론 중 하나 이상을 수행하기 위해 명령 세트(또는 여러 세트)를 개별적으로 또는 공동으로 실행하는 기계(예: 컴퓨터)의 모든 집합을 포함하는 것으로 간주된다.
예시적인 컴퓨팅 장치(1000)는 처리 장치(1002), 메인 메모리(1004)(예: 읽기 전용 메모리(ROM), 플래시 메모리, 동기식 DRAM(SDRAM) 또는 램버스 DRAM(RDRAM)와 같은 동적 랜덤 액세스 메모리(DRAM), 등), 버스(1030)를 통해 서로 통신하는 정적 메모리(1006)(예: 플래시 메모리, 정적 랜덤 액세스 메모리(SRAM) 등) 및 보조 메모리(예: 데이터 저장 장치(1018))를 포함한다.
처리 장치(1002)는 마이크로프로세서, 중앙 처리 장치 등과 같은 하나 이상의 범용 프로세서를 나타낸다. 보다 구체적으로, 처리 장치(1002)는 CISC(complex instruction set computing) 마이크로프로세서, RISC(reduced instruction set computing) 마이크로프로세서, VLIW(very long instruction word) 마이크로프로세서, 다른 명령어 세트의 조합을 구현하는 프로세서, 또는 명령어의 조합을 구현하는 프로세서일 수 있다. 처리 장치(1002)는 또한 ASIC(application specific integrated circuit), FPGA(field programmable gate array), DSP(digital signal processor), 네트워크 프로세서 등과 같은 하나 이상의 특수 목적 처리 장치일 수 있다. 처리 장치(1002)는 여기에서 논의된 동작들 및 단계들을 수행하기 위한 프로세싱 로직(명령들(1022))을 실행하도록 구성된다.
컴퓨팅 장치(1000)는 네트워크 인터페이스 장치(1008)를 더 포함할 수 있다. 컴퓨팅 장치(1000)는 또한 비디오 디스플레이 유닛(1010)(예: 액정 디스플레이(LCD) 또는 음극선관(CRT)), 영숫자 입력 장치(1012)(예: 키보드 또는 터치스크린), 커서 제어 장치(1014)(예: 마우스 또는 터치스크린) 및 오디오 장치(1016)(예: 스피커)를 더 포함할 수 있다.
데이터 저장 장치(1018)는 여기에 설명된 방법론 또는 기능 중 임의의 하나 이상을 구현하는 명령(1022)의 하나 이상의 세트가 저장되어 있는 하나 이상의 기계 판독 가능 저장 매체(1028) (또는 더 구체적으로 하나 이상의 비일시적 컴퓨터 판독 가능 저장 매체)를 포함할 수 있다. 명령(1022)은 또한 컴퓨터 시스템(1000), 메인 메모리(1004) 및 컴퓨터 판독 가능 저장 매체를 구성하는 처리 장치(1002)에 의해 실행되는 동안 메인 메모리(1004) 및/또는 처리 장치(1002) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다.
전술한 다양한 방법들은 컴퓨터 프로그램에 의해 구현될 수 있다. 컴퓨터 프로그램은 위에서 설명된 다양한 방법 중 하나 이상의 기능을 수행하도록 컴퓨터에 지시하기 위해 배열된 컴퓨터 코드를 포함할 수 있다. 컴퓨터 프로그램 및/또는 이러한 방법을 수행하기 위한 코드는 하나 이상의 컴퓨터 판독 가능 매체 또는 보다 일반적으로 컴퓨터 프로그램 제품을 통해 컴퓨터와 같은 장치에 제공될 수 있다. 컴퓨터 판독 가능 매체는 일시적이거나 비일시적일 수 있다. 하나 이상의 컴퓨터 판독 가능 매체는 예컨대 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 또는 예컨대 인터넷을 통해 코드를 다운로드하기 위한 데이터 전송을 위한 전파 매체일 수 있다. 대안적으로, 하나 이상의 컴퓨터 판독 가능 매체는 반도체 또는 솔리드 스테이트 메모리, 자기 테이프, 이동식 컴퓨터 디스켓, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 강성 자기 디스크 및 CD-ROM, CD-R/W 또는 DVD와 같은 광 디스크와 같은 하나 이상의 물리적 컴퓨터 판독 가능 매체의 형태를 취할 수 있다.
구현에서, 여기에 설명된 모듈, 구성 요소 및 기타 기능은 개별 구성 요소로 구현되거나 ASICS, FPGA, DSP 또는 유사한 장치와 같은 하드웨어 구성 요소의 기능에 통합될 수 있다.
"하드웨어 구성 요소"는 특정 작업을 수행할 수 있는 유형의(예: 비일시적) 물리적 구성 요소(예: 하나 이상의 프로세서 세트)이며 특정 물리적 방식으로 구성 또는 배열될 수 있다. 하드웨어 구성 요소는 특정 작업을 수행하도록 영구적으로 구성된 전용 회로 또는 논리를 포함할 수 있다. 하드웨어 구성 요소는 FPGA(Field Programmable Gate Array) 또는 ASIC과 같은 특수 목적 프로세서이거나 이를 포함할 수 있다. 하드웨어 구성 요소는 또한 특정 작업을 수행하기 위해 소프트웨어에 의해 일시적으로 구성된 프로그래밍 가능한 논리 또는 회로를 포함할 수 있습니다.
따라서 "하드웨어 구성 요소"라는 문구는 물리적으로 구성되거나, 영구적으로 구성(예: 유선)되거나, 여기 설명된 특정 방식으로 작동하거나 설명된 특정 작업을 수행하도록 일시적으로 구성(예: 프로그래밍)될 수 있는 유형의 개체를 포함하는 것으로 이해되어야 한다.
또한 모듈 및 구성 요소는 하드웨어 장치 내에서 펌웨어 또는 기능 회로로 구현될 수 있다. 추가로, 모듈 및 구성요소는 하드웨어 장치 및 소프트웨어 구성요소의 임의의 조합으로, 또는 소프트웨어로만 구현될 수 있다(예: 기계 판독 가능 매체 또는 전송 매체에 저장되거나 달리 구현된 코드).
상기 설명은 푸리에 변환 엔진, 변환 엔진, 변환 엔진 등과 같은 데이터 처리 엔진을 참조한다. 이들 엔진은 각각의 전용 하드웨어 구성요소에서 구현될 수 있고, 하드웨어 구성요소 사이에서 공유되거나 공유될 수 있고, 예컨대 각각의 모듈에서, 소프트웨어(예: 펌웨어, 미들웨어 등) 또는 하드웨어에서 구현될 수 있다는 것이 이해될 것이다.
달리 명시되지 않는 한, 다음 논의에서 명백히 알 수 있듯이, 설명 전반에 걸쳐, "수신", "결정", "비교", "활성화", "유지", "식별", "변환", "변환", "저장", "읽기" 등과 같은 용어를 사용하는 토론은 컴퓨터 시스템 또는 이와 유사한 컴퓨터 시스템의 레지스터 및 메모리 내에서 물리적(전자적) 수량으로 표시된 데이터를 컴퓨터 시스템 메모리 또는 레지스터 또는 기타 정보 저장, 전송 또는 표시 장치 내에서 물리적 수량으로 유사하게 표시되는 다른 데이터로 조작하고 변환하는 전자 컴퓨팅 장치의 작업 및 프로세스 참조하는 것으로 이해될 것이다.
여기에 설명된 방법 및 프로세스는 컴퓨터 판독 가능 매체에 구현될 수 있다. "컴퓨터 판독 가능 매체"라는 용어는 RAM(Random Access Memory), ROM(Read-Only Memory), 버퍼 메모리, 플래시 메모리, 캐시 메모리 등과 같이 데이터를 일시적 또는 영구적으로 저장하도록 구성된 매체를 포함한다. 또한, "컴퓨터 판독가능 매체"라는 용어는 하나 이상의 프로세서에 의해 실행될 때, 기계가 여기에 기재된 방법론 중 하나 이상을 전체적으로 또는 부분적으로 수행하게 하는 명령들을 기계의 수행 지령으로서 저장할 수 있는 어떤 매체 혹은 다중의 매체의 조합을 포함하는 것으로 간주되어야 한다.
"컴퓨터 판독 가능 매체"라는 용어는 클라우드 기반 저장 시스템도 포함한다. "컴퓨터가 읽을 수 있는 매체"라는 용어는 솔리드-스테이트 메모리 칩(solid-state memory chip), 광학 디스크, 마그네틱 디스크 또는 이들의 적절한 조합의 예로서 하나 이상의 유형 및 비임시 데이터 저장소(예: 데이터 볼륨)를 포함하며 이에 국한되지 않는다. 일부 예시적인 실시예에서, 실행을 위한 명령은 캐리어 매체에 의해 전달될 수 있다. 이러한 캐리어 매체의 예들은 과도 매체(예: 명령을 전달하는 전파 신호)를 포함한다.
추가 개시된 양태 및 실시예
하기 양태 및 실시예가 개시된다.
1. 이미지에 대응하는 복소 데이터 세트의 복소 푸리에 변환을 수행하도록 구성된 시스템으로서, 상기 시스템은:
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 푸리에 변환을 수행하도록 구성된 제1 푸리에 변환 엔진;
제1 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트를 극 형식으로 변환하고, 복소 데이터 세트를 극 형식으로 압축하도록 구성된 제1 데이터 변환 엔진;
상기 제1 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 상기 복소 데이터 세트의 행-열 변환을 수행하도록 구성된 행-열 변환 엔진;
상기 행-열 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트의 압축을 해제하고, 복소 데이터 세트를 다시 데카르트 형식으로 변환하도록 구성된 제2 데이터 변환 엔진; 및
상기 제2 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터의 제2 1차원 복소 푸리에 변환, 여기서 제2 1차원 복소 푸리에 변환은 제1 1차원 복소 푸리에 변환에 직교하는 변환을 수행하도록 배열된 제2 푸리에 변환 엔진.
2. 항목 1에 열거된 시스템에서, 제1 데이터 변환 엔진은 각 크기 값에 스케일링 계수를 곱함으로써 극 형태의 복소 데이터 세트를 압축하도록 배열된다.
3. 임의의 선행하는 항목에 열거된 시스템에서, 제1 데이터 변환 엔진은 복소 데이터 세트의 각 크기 값 및 각 위상 값을 x 비트에서 y 비트로 변환함으로써, 여기서 x > y, 극 형식의 복소 데이터 세트를 압축하도록 배열된다.
4. 항목 3에 열거된 시스템에서, 제1 데이터 변환 엔진은 최대 허용 값을 초과하는 임의의 크기 값을 최대 허용 값으로 임계화함으로써 극 형식의 복소 데이터 세트를 압축하도록 배열된다.
5. 최대 허용 값은 y 비트가 있는 최대 허용 값인 항목 4에 나열된 시스템.
6. 제1 데이터 변환 엔진은 위상 값을 양자화함으로써 복소 데이터 세트를 압축하도록 배열되는 임의의 선행 항목에 나열된 시스템.
7. 임의의 선행하는 항목에 열거된 시스템에서, 제2 데이터 변환 엔진은 각 크기 값 및 각 위상 값을 y 비트에서 x 비트로 다시 변환하고 각 크기 값에 스케일링 계수의 역을 곱함으로써 복소 데이터 세트의 압축을 해제하도록 배열된다.
8. 행-열 변환 엔진이 배치된 앞의 항목에 나열된 시스템은 수신된 복소 데이터 세트를 메모리에 기록하고 수신된 데이터 세트와 다른 순서로 메모리에서 복소 데이터 세트를 읽어냄으로써 행-열 변환을 수행한다.
9. 메모리가 정적 랜덤 액세스 메모리인 항목 8에 열거된 시스템.
10. 이미지에 대응하는 복소 데이터 세트의 복소 역 푸리에 변환을 수행하도록 구성된 시스템으로서, 상기 시스템은 다음과 같이 구성된다:
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 역 푸리에 변환을 수행하도록 배열된 제1 역 푸리에 변환 엔진;
제1 역 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트를 극 형식으로 변환하고, 복소 데이터 세트를 극 형식으로 압축하도록 배열된 제3 데이터 변환 엔진;
상기 제1 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 상기 복소 데이터 세트의 행-열 변환을 수행하도록 구성된 행-열 변환 엔진;
행-열 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 복소 데이터 세트를 압축 해제하고, 복소 데이터 세트를 다시 데카르트 형식으로 변환하도록 구성된 제4 데이터 변환 엔진; 및
제2 데이터 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터의 제2 1차원 복소 역 푸리에 변환, 여기서 제2 1차원 복소 역 푸리에 변환은 제1 1차원 복소 역 푸리에 변환과 직교하는 변환을 수행하도록 배열된 제2 역 푸리에 변환 엔진을 포함한다.
11. 항목 10에 열거된 시스템에서, 제3 데이터 변환 엔진은 각 크기 값에 스케일링 계수를 곱함으로써 극 형태의 복소 데이터 세트를 압축하도록 배열된다.
12. 항목 10 또는 11에 열거된 시스템으로서, 제3 데이터 변환 엔진은 복소 데이터 세트의 각 크기 값 및 각 위상 값을 x 비트에서 y 비트로 변환함으로써, 여기서 x > y, 극 형식의 복소 데이터 세트를 압축하도록 배열된다.
13. 항목 12에 열거된 시스템에서, 제3 데이터 변환 엔진은 최대 허용 값을 초과하는 임의의 크기 값을 최대 허용 값으로 임계화함으로써 극 형식의 복소 데이터 세트를 압축하도록 배열된다.
14. 최대 허용 값은 y 비트가 있는 최대 허용 값인 항목 13에 나열된 시스템.
15. 항목 10 내지 항목 14 중 어느 하나에 열거된 시스템에서, 제3 데이터 변환 엔진은 위상 값을 양자화함으로써 복소 데이터 세트를 압축하도록 배열된다.
16. 제4 데이터 변환 엔진이 각 크기 값 및 각 위상 값을 y비트에서 x비트로 다시 변환한 다음 각 크기 값에 스케일링 계수의 역수를 곱하여 복소 데이터 세트를 압축 해제하도록 배열된 항목 10내지 15까지 나열된 시스템이다.
17. 행-열 변환 엔진이 수신된 복소 데이터 세트를 메모리에 기록하고 수신된 데이터 세트를 행-열 변환을 수행하기 위해 수신된 데이터 세트와 다른 순서로 읽도록 추가로 배열된 항목 10내지 16까지 나열된 시스템이다.
18. 메모리가 정적 랜덤 액세스 메모리인 항목 17에 열거된 시스템.
19. 이미지에 대응하는 복소 데이터 세트를 처리하도록 구성된 시스템으로서, 이 시스템은 다음과 같이 구성된다:
항목 1 내지 항목 9 중 어느 하나의 데이터 처리 시스템;
항목 10 내지 18 중 어느 하나의 데이터 처리 시스템; 및
데이터 프로세서는: 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 제1 역 푸리에 변환 엔진에 의해 수신된 복소 데이터 세트를 형성하기 위해 크기 값을 대체하고; 및/또는 제2 역 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 크기 값을 대체하여 제1 푸리에 변환 엔진에 의해 수신된 복소 데이터 세트를 형성하도록 구성된다.
20. 제1 1차원 복소 푸리에 변환이 제1 1차원 복소 역 푸리에 변환에 직교하는 임의의 선행하는 항목에 나열된 시스템.
21. 복소 데이터 세트가 1차원 데이터 스트림으로서 시스템에 의해 처리되는 임의의 선행 항목에 나열된 시스템.
22. 복소 데이터가 직렬 버스 상에서 시스템에 의해 처리되는 임의의 선행 항목에 열거된 시스템.
23. 임의의 선행 항목에 나열된 시스템은 스펙트럼 도메인의 이미지를 나타내는 홀로그램을 출력하도록 배열된 컨트롤러를 더 포함한다.
24. 항목 22에 나열된 시스템에서, 홀로그램은 위상 전용 홀로그램 또는 위상 및 진폭 성분을 포함하는 완전 복소 홀로그램이다.
25. 항목 22 또는 23에 열거된 시스템에서, 컨트롤러는 실시간으로 이미지 시퀀스를 수신하고 스펙트럼 영역에서 실시간으로 각각의 이미지를 나타내는 일련의 홀로그램을 출력하도록 구성된다.
26. 항목 22 내지 항목 24 중 어느 하나에 나열된 시스템은 홀로그램을 표시하도록 배열된 공간 광 변조기 및 공간 광 변조기를 조명하도록 배열된 광원을 더 포함한다.
27. 이미지에 대응하는 복소 데이터 세트의 복소 푸리에 변환을 수행하는 방으로서, 이 방법은 다음의 순서화된 단계를 포함한다:
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 푸리에 변환을 수행하는 단계;
상기 복소 데이터 세트를 극 형식으로 변환하고, 상기 복소 데이터 세트를 극 형식으로 압축하는 단계;
복소 데이터 세트의 행-열 변환을 수행하는 단계;
복소 데이터 세트를 압축 해제하고 복소 데이터 세트를 다시 데카르트 형식으로 변환하는 단계;
데카르트 형식의 복소 데이터 세트의 제2 1차원 푸리에 변환을 수행하는 단계를 포함하며, 여기서 제2 1차원 복소 푸리에 변환은 제1 1차원 복소 푸리에 변환에 직교한다.
28. 이미지에 대응하는 복소 데이터 세트의 복소 역 푸리에 변환을 수행하는 방법으로서, 이 방법은 다음의 순서화된 단계를 포함한다:
복소 데이터 세트를 수신하고 데카르트 형식의 복소 데이터 세트의 제1 1차원 복소 역 푸리에 변환을 수행하는 단계;
상기 복소 데이터 세트를 극 형식으로 변환하고, 상기 복소 데이터 세트를 극 형식으로 압축하는 단계;
복소 데이터 세트의 행-열 변환을 수행하는 단계;
복소 데이터 세트를 압축 해제하고 복소 데이터 세트를 다시 데카르트 형식으로 변환하는 단계;
데카르트 형식의 복소 데이터 세트의 제2 1차원 역 푸리에 변환을 수행하는 단계를 포함하며, 여기서 제2 1차원 복소 역 푸리에 변환은 제1 1차원 복소 역 푸리에 변환에 직교한다.
29. 항목 26 및 27에 열거된 방법으로서, 다음을 더 포함한다:
항목 27에 따라 수신된 복소 데이터 세트를 형성하기 위해 항목 26의 방법으로 인한 복소 데이터 세트의 크기 값을 대체하는 단계; 및/또는
항목 26에 따라 수신된 복소 데이터 세트를 형성하기 위해 항목 27의 방법으로 인한 복소 데이터 세트의 크기 값을 대체하는 단계를 포함한다.
위의 설명은 예시를 위한 것이며 제한적인 것이 아님을 이해해야 한다. 위의 설명을 읽고 이해하면 복수의 다른 구현이 당업자에게 명백해질 것이다. 본 발명이 특정 예시적인 구현을 참조하여 설명되었지만, 본 발명은 설명된 구현으로 제한되지 않고 첨부된 특허청구범위의 사상 및 범위 내에서 수정 및 변경으로 실시될 수 있음을 인식할 것이다.
따라서, 본 명세서 및 도면은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다. 따라서, 본 개시의 범위는 첨부된 청구범위를 참조하여 결정되어야 하며, 이러한 청구범위가 부여된 균등물의 전체 범위와 함께 결정되어야 한다.

Claims (18)

  1. 이미지에 대응하는 제1 복소 데이터 세트의 푸리에 변환을 수행하도록 구성된 이미지 처리 시스템으로서, 여기서 상기 제1 복소 데이터 세트는 제1 비트 수를 갖는 제1 숫자 포맷으로 각각 표현되는 데카르트 형식의 복소 값의 2차원 어레이를 포함하고, 상기 2차원 어레이의 값은 이미지의 픽셀을 나타내고, 상기 2차원 어레이는 한 차원을 따라 픽셀을 나타내는 값의 제1 선형 어레이 및 다른 차원을 따라 픽셀을 나타내는 값의 제2 선형 어레이를 정의하는 시스템으로서,
    상기 제1 선형 어레이에 의해 제1 복소 데이터 세트 제1 선형 어레이를 수신하고 각각의 상기 제1 선형 어레이의 1차원 푸리에 변환을 수행하도록 배열된 제1 푸리에 변환 엔진;
    상기 제1 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 각 값을 극 형식으로 변환하고, 극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하도록 배열된 제1 변환 엔진;
    상기 제1 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 상기 제1 선형 어레이에 의해 메모리 제1 선형 어레이에 상기 제2 숫자 포맷의 값을 저장하고, 제2 선형 어레이에 의해 메모리 제2 선형 어레이로부터 값을 판독하도록 배열된 행-열 변환 엔진;
    상기 행-열 변환 엔진에 의해 처리된 복소 데이터 세트를 상기 제2 선형 어레이로 수신하도록 배열되고, 각 값을 다시 제1 숫자 포맷으로 변환하고 다시 상기 제1 숫자 포맷으로 변환된 각 값을 다시 데카르트 형식으로 변환하는 제2 변환 엔진; 및
    상기 제2 선형 어레이에 의해 상기 제2 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 각각의 상기 제2 선형 어레이의 1차원 푸리에 변환을 수행하도록 배열된 제2 푸리에 변환 엔진
    을 포함하고,
    상기 디스플레이를 위한 이미지 데이터를 형성하기 위해 상기 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트의 데이터 값을 사용하도록 배열된, 이미지 처리 시스템.
  2. 제 1항에 있어서,
    상기 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 제2 복소 데이터 세트의 상기 제1 선형 어레이는 상기 제1 복소 데이터 세트의 상기 제2 선형 어레이에 대응하는 상기 제2 복소 데이터 세트를 형성하기 위해 크기 값을 대체하고, 제1 데이터 세트로서 제2 데이터 세트를 상기 제1 푸리에 변환 엔진에 공급하도록 구성된 크기 엔진을 더 포함하는, 이미지 처리 시스템.
  3. 제 1항 또는 제 2항에 있어서,
    극 형식의 각 값을 상기 제2 숫자 포맷으로 변환하는 것은 각 크기에 스케일링 계수를 곱하는 것을 포함하는, 이미지 처리 시스템.
  4. 제 1항 또는 제 2항에 있어서,
    극 형식의 값을 상기 제2 숫자 포맷으로 변환하는 것은 각 크기 값을 x1> y1 인 x1 비트에서 y1 비트로 및 각 위상 값은 x2>y2인 x2 비트에서 y2 비트로 변환하는 것을 포함하는, 이미지 처리 시스템.
  5. 제 4항에 있어서,
    극 형식의 각 값을 상기 제2 숫자 포맷으로 변환하는 것은 선택적으로, 최대 허용 값은 y1 비트로 표현될 수 있는 최대 허용 값을 초과하는 임의의 크기 값을 최대 허용 값으로 설정하는 것을 포함하는, 이미지 처리 시스템.
  6. 제 1항 또는 제 2항에 있어서,
    극 형식의 각 값을 상기 제2 숫자 포맷으로 변환하는 것은 극 형식의 값의 위상 값을 상기 제1 숫자 포맷보다 더 적은 수의 레벨로 양자화하는 것을 포함하는, 이미지 처리 시스템.
  7. 제 3항에 있어서,
    데카르트 형식의 각 값을 상기 제1 숫자 포맷으로 변환하는 것은 각 크기 값을 y1 비트에서 x1 비트로 다시 변환하고 각 위상 값을 다시 y2 비트에서 x2 비트로 변환하고 각 크기 값에 스케일링 계수의 역을 곱하는 것을 포함하는, 이미지 처리 시스템.
  8. 제 1항 또는 제 2항에 있어서,
    상기 제1 푸리에 변환 엔진은 하나의 제1 선형 어레이를 처리하도록 구성되는 반면, 상기 제1 변환 엔진은 다른 제1 선형 어레이를 처리하도록 구성되고, 상기 제2 푸리에 변환 엔진은 하나의 제2 선형 어레이를 처리하는 동안 상기 제2 변환 엔진이 다른 제2 선형 어레이 또는 둘 다를 처리하도록 구성되는, 이미지 처리 시스템.
  9. 제 1항 또는 제 2항에 있어서,
    상기 제1 및 선택적으로 상기 제2 푸리에 변환 엔진은 값의 스트림으로서 제1 데이터 세트를 수신하는, 이미지 처리 시스템.
  10. 제 1항 또는 제 2항에 있어서,
    상기 이미지 처리 시스템은 상기 제2 복소 데이터 세트의 푸리에 변환을 수행하도록 더 배열되고, 상기 제2 복소 데이터 세트는 제3 비트 수를 갖는 제3 숫자 포맷으로 각각 표현되는 데카르트 형식의 복소수 값의 2차원 어레이를 포함하고, 상기 2차원 어레이는 한 차원을 따라 값의 제1 선형 어레이를 정의하고 다른 차원을 따라 값의 제2 선형 어레이를 정의하며, 상기 이미지 처리 시스템은,
    상기 제1 선형 어레이에 의해 제2 복소 데이터 세트 제1 선형 어레이를 수신하고 각각의 제1 선형 어레이의 1차원 푸리에 변환을 수행하도록 배열된 제3 푸리에 변환 엔진;
    상기 제3 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 각 값을 극 형식으로 변환하고, 극 형식의 각 값을 상기 제3 비트 수보다 작은 제4 비트 수를 갖는 제4 숫자 포맷으로 변환하도록 배열된 제3 변환 엔진;
    상기 제3 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고, 상기 제4 숫자 포맷의 값을 상기 제1 선형 어레이별로 추가 메모리 제1 선형 어레이에 저장하고, 상기 제2 선형 어레이별로 메모리 제2 선형 어레이로부터 값을 판독하도록 배열되는 행-열 변환 엔진;
    추가 행-열 변환 엔진 제2 선형 어레이에 의해 처리된 복소 데이터 세트를 제2 선형 어레이로 수신하고, 각 값을 다시 상기 제3 숫자 포맷으로 변환하고, 다시 제1 숫자 포맷으로 변환된 각 값을 다시 데카르트 형식으로 변환하도록 배열되는 제4 변환 엔진; 및
    제4 변환 엔진 제2 선형 어레이에 의해 처리된 복소 데이터 세트를 제2 선형 어레이로 수신하고 각각의 제2 선형 어레이에 대해 1차원 푸리에 변환을 수행하도록 배열된 제4 푸리에 변환 엔진
    을 더 포함하고,
    상기 이미지 처리 시스템은 제2 및 제4 푸리에 변환 엔진 중 하나에 의해 처리된 복소 데이터 세트를 수신하고 크기 값을 대체하여 상기 제3 및 상기 제1 푸리에 변환 엔진 각각에 의해 수신된 제2 및 제1 복소 데이터 세트 각각을 형성하고, 상기 제2 복소 데이터 세트의 제1 선형 어레이는 상기 제1 복소 데이터 세트의 제2 선형 어레이에 해당하는 크기 엔진을 더 포함하는, 이미지 처리 시스템.
  11. 제 1항 또는 제 2항에 있어서,
    상기 제2 푸리에 변환 엔진에 의해 처리된 복소 데이터 세트를 수신하고 디스플레이를 위해 이미지를 나타내고 선택적으로, 위상 전용 홀로그램 또는 위상 및 진폭 성분을 포함하는 완전 복소 홀로그램인 홀로그램을 출력하도록 배열된 제어기를 더 포함하는, 이미지 처리 시스템.
  12. 제 11항에 있어서,
    상기 제어기는 실시간으로 이미지 시퀀스를 수신하고 실시간으로 각각의 이미지를 나타내는 홀로그램 시퀀스를 출력하도록 배열되는, 이미지 처리 시스템.
  13. 제 12항에 있어서,
    상기 홀로그램을 표시하도록 배열된 홀로그램 표시 장치를 더 포함하고, 선택적으로, 상기 홀로그램 표시 장치는 상기 홀로그램을 표시하도록 배열된 공간 광 변조기 및 상기 공간 광 변조기를 조명하도록 배열된 광원을 포함하는, 이미지 처리 시스템.
  14. 이미지에 대응하는 제1 복소 데이터 세트의 복소 푸리에 변환을 수행하는 단계를 포함하는 이미지 처리방법으로서, 상기 제1 복소 데이터 세트는 각각 제1 숫자 포맷으로 표현되는 데카르트 형식의 복소수 값의 2차원 어레이를 포함하며, 비트 수, 이미지의 픽셀을 나타내는 2차원 어레이의 값, 및 2차원 어레이는 한 차원을 따라 픽셀을 나타내는 값의 제1 선형 어레이와 다른 차원을 따라 픽셀을 나타내는 값의 제2 선형 어레이를 정의하며, 상기 이미지 처리방법은,
    상기 제1 복소 데이터 세트의 각각의 상기 제1 선형 어레이의 1차원 푸리에 변환을 수행하는 과정;
    각각의 푸리에 변환된 제1 선형 어레이의 각 값을 극 형식으로 변환하는 과정;
    극 형식의 각 값을 제1 비트 수보다 작은 제2 비트 수를 갖는 제2 숫자 포맷으로 변환하는 과정;
    상기 제1 선형 어레이에 의해 메모리 제1 선형 어레이에 상기 제2 숫자 포맷의 값을 저장하는 과정;
    상기 제2 선형 어레이에 의해 메모리 제2 선형 어레이로부터 값을 판독하는 과정;
    상기 메모리에서 판독한 각 값을 다시 제1 숫자 포맷으로 변환하는 과정;
    다시 상기 제1 숫자 포맷으로 변환된 각 값을 다시 데카르트 형식으로 변환하는 과정;
    데카르트 형식으로 다시 변환된 값의 제2 선형 어레이 각각의 1차원 푸리에 변환을 수행하는 과정; 및
    푸리에 변환된 값의 상기 제2 선형 어레이를 사용하여 표시할 이미지 데이터를 형성하는 과정
    을 포함하는, 이미지 처리방법.
  15. 제 14항에 있어서,
    각각의 푸리에 변환된 상기 제2 선형 어레이의 값의 크기를 대체하여 추가 값의 각각의 제2 선형 어레이를 형성하는 과정;
    추가 값의 각각의 제2 선형 어레이의 1차원 푸리에 변환을 수행하는 과정;
    각각의 푸리에 변환된 제2 선형 어레이의 각각의 추가 값을 극 형식의 추가 값으로 변환하는 과정;
    극 형식의 각각의 추가 데이터 값을 제1 비트 수보다 작은 추가 제2 비트 수를 갖는 추가 제2 숫자 포맷의 추가 값으로 변환하는 과정;
    제2 선형 어레이에 의해 메모리 제2 선형 어레이에 추가 제2 숫자 포맷의 추가 값을 저장하는 과정;
    상기 제1 선형 어레이에 의해 메모리 제1 선형 어레이로부터 추가 값을 판독하는 과정;
    상기 메모리로부터 판독된 각각의 추가 값을 다시 상기 제1 숫자 포맷으로 변환하는 과정;
    다시 제1 숫자 포맷으로 변환된 각각의 추가 값을 다시 데카르트 형식으로 변환하는 과정; 및
    데카르트 형식으로 다시 변환된 추가 값의 각 제1 선형 어레이의 1차원 푸리에 변환을 수행하는 과정을 더 포함하는, 이미지 처리방법.
  16. 제 14항 또는 제 15항에 있어서,
    극 형식의 각 값을 제2 숫자 포맷으로 변환하는 과정은,
    각 크기에 스케일링 계수를 곱하는 과정;
    각 크기 값을 x1>y1인 x1 비트에서 y1 비트로 변환 및 각 위상 값은 x2>y2인 x2 비트에서 y2 비트로 변환하는 과정, 여기서, 선택적으로, 최대 허용 값을 초과하는 임의의 크기 값을 최대 허용 값[스케일링 이후의 임계값]으로 설정하고, 선택적으로, 최대 허용 값은 y1 비트로 표시될 수 있는 최대 크기 값임; 및
    제1 숫자 포맷보다 더 적은 수의 레벨로 극 형식 값의 위상 값을 양자화하는 과정
    중 하나 이상을 더 포함하는, 이미지 처리방법.
  17. 제 14항 또는 제 15항에 있어서,
    다른 제1 선형 어레이를 변환하는 동안 하나의 제1 선형 어레이를 푸리에 변환하는 과정으로서, 하나의 제2 선형 어레이를 다른 제2 선형 어레이를 변환하는 동안 푸리에 변환하거나, 또는 둘 다를 변환하는 과정;
    이미지를 나타내는 홀로그램을 출력하는 과정, 여기서, 선택적으로, 상기 홀로그램은 위상 전용 홀로그램 또는 위상 및 진폭 성분을 포함하는 완전 복소 홀로그램임;
    실시간으로 일련의 이미지를 수신하고, 실시간으로 각 이미지를 나타내는 일련의 홀로그램을 출력하는 과정; 및
    홀로그램 디스플레이 장치에 상기 홀로그램을 표시하고, 선택적으로 공간 광 변조기에 상기 홀로그램을 표시하고 상기 공간 광 변조기를 조명하는 과정
    중 하나 이상을 포함하는, 이미지 처리방법.
  18. 이미지 처리 시스템으로서,
    이미지에 대응하는 제1 복소 데이터 세트의 푸리에 변환을 수행하고 디스플레이를 위한 이미지 데이터를 출력하도록 구성된 하나 이상의 프로세서, 여기서 상기 제1 복소 데이터 세트는 제1 비트 수를 갖는 제1 숫자 포맷으로 각각 표현되는 데카르트 형식의 복소 값의 2차원 어레이를 포함하고, 이미지의 픽셀을 나타내는 상기 2차원 어레이, 및 상기 2차원 어레이가 한 차원을 따라 픽셀을 나타내는 값의 제1 선형 어레이 및 다른 차원을 따라 픽셀을 나타내는 값의 제2 선형 어레이를 정의함; 및
    하나 이상의 프로세서에 의해 실행 가능한 명령을 저장하는 유형의 비일시적 컴퓨터 판독 가능 매체로서, 상기 명령이 실행될 때 상기 이미지 처리 시스템이 제 14항 내지 제 18항 중 어느 한 항에 따른 방법을 수행하도록 하는 컴퓨터 판독 가능 매체
    를 포함하는 이미지 처리 시스템.
KR1020210111804A 2020-08-24 2021-08-24 이미지 처리 KR20220025692A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB2013203.1A GB2598310B (en) 2020-08-24 2020-08-24 Data processing
GB2013203.1 2020-08-24

Publications (1)

Publication Number Publication Date
KR20220025692A true KR20220025692A (ko) 2022-03-03

Family

ID=72660865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210111804A KR20220025692A (ko) 2020-08-24 2021-08-24 이미지 처리

Country Status (7)

Country Link
US (1) US20220057751A1 (ko)
EP (1) EP3962087A1 (ko)
JP (1) JP7360428B2 (ko)
KR (1) KR20220025692A (ko)
CN (1) CN114092757A (ko)
GB (1) GB2598310B (ko)
TW (1) TWI772133B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI815382B (zh) * 2022-03-30 2023-09-11 國立臺灣科技大學 產生全像影像的方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3448486B2 (ja) * 1997-05-28 2003-09-22 日本電信電話株式会社 画像伝送方法および装置およびそれらのプログラムを記録した記録媒体
GB0511962D0 (en) * 2005-06-14 2005-07-20 Light Blue Optics Ltd Signal processing systems
EP2006803A1 (en) * 2007-06-19 2008-12-24 Agfa HealthCare NV Method of segmenting anatomic entities in 3D digital medical images
CN103124517B (zh) * 2010-10-07 2015-10-14 杜克大学 Mri图像的多维迭代相位循环重构
JP5654373B2 (ja) * 2011-02-01 2015-01-14 株式会社富士通アドバンストエンジニアリング 演算装置、演算方法およびプログラム
US20120236021A1 (en) * 2011-03-15 2012-09-20 Qualcomm Mems Technologies, Inc. Methods and apparatus for dither selection
US8706794B1 (en) * 2011-08-23 2014-04-22 Gregory K. Fleizach No-multiply digital signal processing method
US10210606B2 (en) * 2014-10-14 2019-02-19 Kla-Tencor Corporation Signal response metrology for image based and scatterometry overlay measurements
US20180007343A1 (en) * 2014-12-09 2018-01-04 Basf Se Optical detector
KR102477093B1 (ko) * 2015-10-13 2022-12-13 삼성전자주식회사 푸리에 변환을 수행하는 방법 및 장치
KR102654862B1 (ko) * 2016-08-31 2024-04-05 삼성전자주식회사 영상 처리 방법 및 장치
GB2551870B (en) * 2017-04-07 2020-04-01 Dualitas Ltd Holographic projector
GB2568021B (en) * 2017-09-08 2021-12-01 Dualitas Ltd Holographic projector
KR102581470B1 (ko) * 2017-11-22 2023-09-21 삼성전자주식회사 영상 데이터를 처리하는 방법 및 장치
KR102125795B1 (ko) * 2018-11-29 2020-06-23 인하대학교 산학협력단 라이트필드의 비호겔방식 홀로그램 변환 방법 및 장치

Also Published As

Publication number Publication date
GB202013203D0 (en) 2020-10-07
GB2598310B (en) 2022-10-12
EP3962087A1 (en) 2022-03-02
TW202209246A (zh) 2022-03-01
JP7360428B2 (ja) 2023-10-12
JP2022036922A (ja) 2022-03-08
TWI772133B (zh) 2022-07-21
CN114092757A (zh) 2022-02-25
GB2598310A (en) 2022-03-02
US20220057751A1 (en) 2022-02-24

Similar Documents

Publication Publication Date Title
TWI659235B (zh) 全像投影系統及在具有矩形形狀的全像的重放場中形成全像的重建之方法
US11480919B2 (en) Holographic projector
EP3650949B1 (en) Pixel mapping onto a display device for holographic projection
US11640138B2 (en) Laser modulation
KR102607882B1 (ko) 디스플레이 장치 및 시스템
KR102481541B1 (ko) 홀로그램 프로젝터
KR20220025692A (ko) 이미지 처리
CN112802421B (zh) 显示设备和系统
US11722650B2 (en) Display device and system
US20240077833A1 (en) Display device and method

Legal Events

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