KR20200111598A - Method and apparatus for processing three dimensional holographic image - Google Patents

Method and apparatus for processing three dimensional holographic image Download PDF

Info

Publication number
KR20200111598A
KR20200111598A KR1020190094536A KR20190094536A KR20200111598A KR 20200111598 A KR20200111598 A KR 20200111598A KR 1020190094536 A KR1020190094536 A KR 1020190094536A KR 20190094536 A KR20190094536 A KR 20190094536A KR 20200111598 A KR20200111598 A KR 20200111598A
Authority
KR
South Korea
Prior art keywords
cgh
sub
images
depth
image
Prior art date
Application number
KR1020190094536A
Other languages
Korean (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 삼성전자주식회사
Priority to US16/780,402 priority Critical patent/US11747767B2/en
Priority to CN202010171085.5A priority patent/CN111722514A/en
Priority to EP20162706.4A priority patent/EP3712709A1/en
Publication of KR20200111598A publication Critical patent/KR20200111598A/en
Priority to US18/222,309 priority patent/US20230359145A1/en

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
    • G03H1/268Holographic stereogram
    • 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
    • G03H2210/00Object characteristics
    • G03H2210/303D object

Abstract

Provided are a method and an apparatus for processing a 3D holographic image, which include the steps of: obtaining depth images from depth data of a 3D object; dividing each of the depth images into a predetermined number of sub-images; obtaining patterns of CGH patches corresponding to each of the sub-images by performing Fourier transform for calculating an interference pattern in a CGH plane with respect to object data included in each of the sub-images; and generating a CGH for the 3D object using patterns of the obtained CGH patches.

Description

3차원 홀로그래픽 이미지를 처리하는 방법 및 장치 {Method and apparatus for processing three dimensional holographic image}TECHNICAL FIELD [Method and apparatus for processing three dimensional holographic image}

3차원(3D) 홀로그래픽 이미지를 처리하는 방법 및 장치에 관하고, 구체적으로 CGH(computer-generated holograms)를 처리하는 방법 및 장치에 관한다.It relates to a method and apparatus for processing three-dimensional (3D) holographic images, and specifically to a method and apparatus for processing computer-generated holograms (CGH).

홀로그램은, 빛의 진폭 및 위상을 조절하여 3D 공간 상에 객체를 재현함에 따라, 시야의 제한이 없고 입체 피로가 거의 없는 3D 공간 표현 기술의 일종이다. 따라서, 빛의 진폭과 위상을 동시에 제어할 수 있는 복합 공간 광 변조기(complex Spatial Light Modulator(SLM))를 이용하여 실시간으로 고해상도 홀로그램을 구현하는 디바이스들이 많이 개발되고 있다. 홀로그램은, 물체파와 참조파의 간섭 패턴(interference pattern)을 이용하여 3D 공간 상에 표시될 수 있다. 최근에는 홀로그램 동영상을 재생하기 위한 간섭 패턴을 프로세싱함으로써 평면 디스플레이(flat panel display) 상에서 홀로그램을 제공할 수 있는 CGH(computer generated hologram) 기술이 활용되고 있다. 디지털 홀로그램을 생성하는 방법, 예를 들어 CGH 기술은, 광학 신호들을 근사화하고 수학적 연산을 통해 생성된 간섭 패턴을 계산함으로써, 홀로그램을 생성한다. 디지털 홀로그램 생성 방법은, 3D 객체가 3D 포인트들, 폴리곤들 또는 깊이 데이터들 등의 다양한 데이터의 집합으로 구성된다는 점에 기초하여, 3D 객체를 구성하는 데이터들을 계산함으로써, 완성된 홀로그램을 표현한다.Hologram is a kind of 3D spatial representation technology that has no limit of field of view and almost no three-dimensional fatigue as objects are reproduced in 3D space by adjusting the amplitude and phase of light. Therefore, many devices that implement high-resolution holograms in real time using a complex spatial light modulator (SLM) capable of simultaneously controlling the amplitude and phase of light have been developed. The hologram may be displayed in 3D space using an interference pattern of an object wave and a reference wave. Recently, computer generated hologram (CGH) technology that can provide a hologram on a flat panel display by processing an interference pattern for reproducing a holographic video has been utilized. A method of generating a digital hologram, for example CGH technology, creates a hologram by approximating optical signals and calculating an interference pattern generated through mathematical operations. The digital hologram generation method expresses the completed hologram by calculating data constituting the 3D object based on the fact that the 3D object is composed of a set of various data such as 3D points, polygons, or depth data.

3차원 홀로그래픽 이미지를 처리하는 방법 및 장치를 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.It is to provide a method and apparatus for processing a 3D holographic image. The technical problem to be achieved by this embodiment is not limited to the technical problems as described above, and other technical problems may be inferred from the following embodiments.

일 측면에 따르면, 3차원 홀로그래픽 이미지를 처리하는 방법은, 3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하는 단계; 상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하는 단계; 서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행함으로써 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계; 및 상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성하는 단계를 포함한다.According to an aspect, a method of processing a 3D holographic image includes: obtaining a plurality of depth images having a predetermined resolution for a predetermined number of depth layers from depth data of a 3D object; Dividing each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches in a computer-generated hologram (CGH) plane; Obtaining the interference patterns of the CGH patches corresponding to each of the sub-images by performing Fourier transform for calculating the interference pattern in the CGH plane with respect to the object data included in each of the sub-images on a sub-image basis. step; And generating a CGH for the 3D object by using the interference patterns of the obtained CGH patches.

다른 측면에 따르면, 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 기록매체를 포함할 수 있다.According to another aspect, the computer-readable recording medium may include a recording medium on which one or more programs including instructions for executing the above-described method are recorded.

또 다른 측면에 따르면, 3차원 홀로그래픽 이미지를 처리하는 장치는, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 3차원 홀로그래픽 이미지를 처리하는 프로세서를 포함하고, 상기 프로세서는, 3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하고, 상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하고, 서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행함으로써 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하고, 상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성한다.According to another aspect, an apparatus for processing a 3D holographic image includes: a memory in which at least one program is stored; And a processor configured to process the 3D holographic image by executing the at least one program, wherein the processor includes a plurality of depths of a predetermined resolution for a preset number of depth layers from depth data of the 3D object. Acquire images, and divide each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches in a computer-generated hologram (CGH) plane, and Obtaining the interference patterns of the CGH patches corresponding to each of the sub-images by performing Fourier transform for calculating the interference pattern in the CGH plane with respect to the object data included in each of the sub-images, and the obtained CGH for the 3D object is generated using the interference patterns of CGH patches.

또 다른 측면에 따르면, 3차원 홀로그래픽 이미지를 처리하는 프로세서는, 푸리에 연산을 수행하는 복수의 FFT(fast Fourier transform) 코어들; 및 상기 복수의 FFT 코어들의 동작들을 스케쥴링하는 MCU(Main Control Unit)를 포함하고, 상기 MCU는, 3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하고, 상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하고, 상기 분할될 서브 이미지들 각각에 대한 상기 푸리에 연산을 수행할 FFT 코어를 할당함으로써, 상기 FFT 코어들의 동작들을 스케쥴링하고, 상기 FFT 코어들 각각은, 할당된 서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행하고, 상기 MCU는, 상기 푸리에 변환의 수행 결과에 기초하여 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하고, 상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성한다.According to another aspect, a processor for processing a 3D holographic image includes: a plurality of fast Fourier transform (FFT) cores that perform a Fourier operation; And a main control unit (MCU) that schedules operations of the plurality of FFT cores, wherein the MCU receives a plurality of depth images of a predetermined resolution for a preset number of depth layers from depth data of a 3D object. Acquire and divide each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches in a computer-generated hologram (CGH) plane, and the sub-images to be divided By allocating an FFT core to perform the Fourier operation for each, the operations of the FFT cores are scheduled, and each of the FFT cores includes the object data included in each of the sub-images in an allocated sub-image unit. Performing a Fourier transform for calculating an interference pattern in a CGH plane, and the MCU, based on a result of performing the Fourier transform, acquires the interference patterns of the CGH patches corresponding to each of the sub-images, and the acquisition CGH for the 3D object is generated by using the interference patterns of the CGH patches.

도 1은 일 실시예에 따라 CGH(computer generated hologram)의 프로세싱 원리를 설명하기 위한 도면이다.
도 2a 및 도 2b는 일 실시예에 따라 깊이 맵 방식으로 3D 객체의 CGH를 생성할 때, 3D 객체에 대한 깊이 레이어 별 2D 이미지들을 설명하기 위한 도면들이다.
도 3은 일 실시예에 따른 CGH 프로세싱의 연산 복잡도(complexity)를 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 3D 홀로그래픽 이미지 처리 장치의 하드웨어 구성을 도시한 블록도이다.
도 5는 일 실시예에 따라 깊이 이미지 분할(subdivision)에 의해 연산 복잡도가 감소되는 것을 설명하기 위한 도면이다.
도 6은 일 실시예에 따라 깊이 이미지의 m x n 분할에 의해 CGH 프로세싱의 연산 복잡도가 감소되는 것을 설명하기 위한 도면이다.
도 7a는 일 실시예에 따라 서브 이미지들 중에서 ROI를 설정하는 것을 설명하기 위한 도면이다.
도 7b는 일 실시예에 따라, 깊이 이미지를 분할하는 CGH 패치 개수(m x n)에 따라 ROI로 결정된 서브 이미지들의 개수 및 위치가 다양할 수 있음을 설명하기 위한 도면이다.
도 7c는 일 실시예에 따라, 최적화된 패치 개수를 결정하기 위한 시뮬레이션 결과를 설명하기 위한 도면이다.
도 7d는 일 실시예에 따른 프로세서의 상세 하드웨어 구성을 설명하기 위한 블록도이다.
도 7e는 일 실시예에 따라 FFT 코어 블록의 FFT 코어들을 이용하여 ROI에 대한 FFT 연산을 수행하는 것을 설명하기 위한 도면이다.
도 7f는 다른 실시예에 따라 FFT 코어 블록의 FFT 코어들을 특정 위치의 픽셀에 할당하여 FFT 연산을 수행하는 것을 설명하기 위한 도면이다.
도 8a 및 도 8b는, 일 실시예에 따라 서브 이미지의 제로 패딩(zero padding)을 설명하기 위한 도면들이다.
도 9는 일 실시예에 따라, 논제로 패딩(non-zero padding)과 제로 패딩에 기초하여 생성된 CGH 패치들의 간섭 패턴들을 비교하여 설명하기 위한 도면이다.
도 10은 일 실시예에 따라 적절한 제로 패딩의 범위를 결정하기 위한 시뮬레이션 결과를 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 2단계(double stage) 푸리에 변환을 설명하기 위한 도면이다.
도 12는 다른 실시예에 따른 하이브리드(hybrid) 푸리에 변환을 설명하기 위한 도면이다.
도 13a는 일 실시예에 따른 1단계 푸리에 변환을 설명하기 위한 도면이다.
도 13b는 일 실시예에 따른 3D 공간 상의 스페리컬 캐리어 웨이브(spherical carrier wave)를 설명하기 위한 도면이다.
도 13c는 생략된 스페리컬 캐리어 웨이브의 영향을 고려하지 않았을 경우에 대한 시뮬레이션 결과를 설명하기 위한 도면이다.
도 13d 및 도 13e는 일 실시예에 따른 깊이 레이어와 SLM 평면(또는 CGH 평면) 간의 샘플링 그리드 매칭(sampling grid matching)을 설명하기 위한 도면들이다.
도 14a 및 14b는 일 실시예에 따른 하이브리드 푸리에 변환을 수행할 때 임계 깊이를 결정하는 방법을 설명하기 위한 도면들이다.
도 15는 일 실시예에 따른 깊이 이미지를 서브 이미지들로 분할하여 CGH 프로세싱을 수행하는 방법의 흐름도이다.
도 16a 및 도 16b는 일 실시예에 따른 깊이 이미지를 서브 이미지들로 분할하여 하이브리드 푸리에 변환에 기반한 CGH 프로세싱을 수행하는 방법의 흐름도이다.
도 17은 일 실시예에 따른 3D 홀로그래픽 이미지를 처리하는 방법의 흐름도이다.
도 18은 일 실시예에 따라 분할되지 않은 깊이 이미지를 이용하는 경우(Global method)와 분할된 깊이 이미지를 이용하는 경우(Local method)에 대한 연산 복잡도들을 비교하기 위한 도면이다.
도 19는 일 실시예에 따라 Global method와 local method의 2FFT 계산 시간을 깊이 레이어들의 개수에 따라 시뮬레이션한 결과이다.
도 20은 일 실시예에 따라 깊이 레이어들의 개수를 변화시키면서 임계 깊이를 계산한 결과의 그래프이다.
도 21은 일 실시예에 따라 다양한 푸리에 변환 방식들 별로 깊이 레이어의 개수에 따른 FFT 계산 시간을 비교한 그래프이다.
1 is a diagram for explaining a processing principle of a computer generated hologram (CGH) according to an embodiment.
2A and 2B are diagrams for explaining 2D images for each depth layer of a 3D object when CGH of a 3D object is generated using a depth map method according to an embodiment.
3 is a diagram for explaining the computational complexity of CGH processing according to an embodiment.
4 is a block diagram illustrating a hardware configuration of a 3D holographic image processing apparatus according to an exemplary embodiment.
5 is a diagram for explaining that computational complexity is reduced by depth image subdivision according to an exemplary embodiment.
6 is a diagram for explaining that computational complexity of CGH processing is reduced by mxn division of a depth image according to an embodiment.
7A is a diagram for explaining setting of an ROI among sub-images according to an embodiment.
7B is a diagram for explaining that the number and positions of sub-images determined as ROI may vary according to the number of CGH patches (mxn) for dividing a depth image according to an embodiment.
7C is a diagram illustrating a simulation result for determining an optimized number of patches, according to an exemplary embodiment.
7D is a block diagram illustrating a detailed hardware configuration of a processor according to an embodiment.
FIG. 7E is a diagram for describing performing an FFT operation on an ROI using FFT cores of an FFT core block, according to an embodiment.
FIG. 7F is a diagram for explaining performing an FFT operation by allocating FFT cores of an FFT core block to a pixel at a specific location according to another embodiment.
8A and 8B are diagrams for explaining zero padding of a sub-image, according to an exemplary embodiment.
FIG. 9 is a diagram for explaining by comparing interference patterns of CGH patches generated based on non-zero padding and zero padding, according to an exemplary embodiment.
10 is a diagram for describing a simulation result for determining an appropriate range of zero padding according to an embodiment.
11 is a diagram for explaining a double stage Fourier transform according to an embodiment.
12 is a diagram illustrating a hybrid Fourier transform according to another embodiment.
13A is a diagram illustrating a one-step Fourier transform according to an exemplary embodiment.
13B is a diagram for explaining a spherical carrier wave in 3D space according to an embodiment.
13C is a diagram for explaining a simulation result when the effect of the omitted spherical carrier wave is not considered.
13D and 13E are diagrams for explaining sampling grid matching between a depth layer and an SLM plane (or CGH plane) according to an embodiment.
14A and 14B are diagrams for describing a method of determining a critical depth when performing hybrid Fourier transform according to an exemplary embodiment.
15 is a flowchart of a method of performing CGH processing by dividing a depth image into sub-images according to an exemplary embodiment.
16A and 16B are flowcharts of a method of performing CGH processing based on hybrid Fourier transform by dividing a depth image into sub images according to an exemplary embodiment.
17 is a flowchart of a method of processing a 3D holographic image according to an exemplary embodiment.
18 is a diagram for comparing computational complexity between a case of using an undivided depth image (Global method) and a case of using a divided depth image (Local method) according to an exemplary embodiment.
19 is a result of simulation of 2FFT calculation times of a global method and a local method according to the number of depth layers according to an embodiment.
20 is a graph of a result of calculating a critical depth while changing the number of depth layers according to an embodiment.
21 is a graph comparing FFT calculation times according to the number of depth layers for various Fourier transform methods according to an embodiment.

실시예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.As for terms used in the embodiments, general terms that are currently widely used as possible are selected, but this may vary depending on the intention or precedent of a technician working in the field, the emergence of new technologies, and the like. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the corresponding description. Therefore, terms used in the specification should be defined based on the meaning of the term and the overall contents of the specification, not a simple name of the term.

본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. Terms such as “consisting of” or “including” used in the present embodiments should not be construed as including all of the various elements or various steps described in the specification, and some of the elements or It should be construed that some steps may not be included, or may further include additional elements or steps.

아래에서는 첨부한 도면을 참고하여 실시예에 대하여 상세히 설명한다. 그러나 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, the embodiments may be implemented in various forms and are not limited to the examples described herein.

도 1은 일 실시예에 따라 CGH(computer generated hologram)의 프로세싱 원리를 설명하기 위한 도면이다. 도 1을 참고하여, 홀로그래픽 디스플레이를 위한 3D 이미지 콘텐츠인 CGH 프로세싱의 원리를 간략히 설명하면 다음과 같다.1 is a diagram for explaining a processing principle of a computer generated hologram (CGH) according to an embodiment. Referring to FIG. 1, the principle of CGH processing, which is 3D image content for holographic display, will be briefly described as follows.

관찰자(observer)는 안구(eye ball)를 통하여 공간 상에 존재하는 물체를 인식할 수 있다. 관찰자는 객체로부터 반사된 빛이 안구 정면의 수정체 렌즈(eye lens)를 통해 굴절되어 안구 후면의 망막(retina)에 맺힘으로써, 공간 상의 객체를 볼 수 있다. 이와 같은 원리를 이용하여, CGH 프로세싱의 원리를 구현할 수 있다.An observer can recognize an object existing in space through an eye ball. The observer can see the object in space by refracting the light reflected from the object through the eye lens in front of the eyeball and coming to the retina at the back of the eyeball. Using this principle, the principle of CGH processing can be implemented.

관찰자의 수정체 렌즈 평면(eye lens plane) W(u,v) (14)의 초점을 특정한 깊이 레이어(L1, LM 또는 LN)에 대응시키면, 그 깊이 레이어 상의 이미지는 망막 평면(retina plane) Q(x2, y2) (13)에 이미징 초점을 갖는 것으로 가정할 수 있다. 그리고 나서, 망막 평면(13)에 맺힌 이미지를 역으로 SLM(Spatial Light Modulator) 평면 또는 CGH 평면 P(x1, y1) (15)에 전파함으로써(propagate) SLM 평면(또는 'CGH 평면'이라 한다.)(15)에서의 복소 광파 필드(complex light wave field)를 계산할 수 있고 이로써, CGH를 표현하기 위한 CGH 간섭 패턴이 획득될 수 있다.When the focus of the observer's eye lens plane W(u,v) (14) is mapped to a specific depth layer (L 1 , L M or L N ), the image on that depth layer is the retina plane ) Q(x 2 , y 2 ) It can be assumed to have an imaging focus at (13). Then, by propagating the image formed on the retinal plane 13 back to the SLM (Spatial Light Modulator) plane or CGH plane P(x 1 , y 1 ) (15), the SLM plane (or'CGH plane') It is possible to calculate the complex light wave field in (15), thereby obtaining a CGH interference pattern for representing CGH.

CGH는 생성 방법에 따라 포인트 클라우드 방식, 폴리곤 방식, 깊이 맵(depth map)(또는 레이어 기반(layer-based)) 방식 등으로 분류될 수 있다. 포인트 클라우드 방식은 물체의 표면을 수많은 점들로 표현하고 각 점의 간섭 패턴을 계산하므로 정교한 깊이 표현이 가능하지만 점들의 개수에 따라 계산량이 매우 증가하게 된다. 폴리곤 방식은 물체 표면을 다각형 메시들로 표현하고 각 간섭 패턴을 계산하여, 물체의 정교함은 떨어지더라도 계산량이 적게 된다. 깊이 맵 방식은 레이어 기반 방식으로서, 2차원 인텐시티(2D intensity) 이미지와 깊이 데이터를 이용하여 CGH를 생성하는 방식이며, 이미지의 해상도에 따라 계산량이 결정될 수 있다.CGH can be classified into a point cloud method, a polygon method, a depth map (or layer-based) method, etc. according to the generation method. The point cloud method expresses the surface of an object as a number of points and calculates the interference pattern of each point, so that precise depth expression is possible, but the amount of calculation increases greatly depending on the number of points. In the polygon method, the surface of an object is represented by polygonal meshes and each interference pattern is calculated, so that the amount of calculation is reduced even though the sophistication of the object decreases. The depth map method is a layer-based method, and is a method of generating CGH using a 2D intensity image and depth data, and a calculation amount may be determined according to the resolution of the image.

깊이 맵 방식은, 3D 객체를 다중 깊이(multi depth)로 근사화하여 모델링한 후 CGH를 계산하는 방식이므로, 다른 방식들에 비해 CGH 계산의 효율이 높을 수 있다. 또한, 일반 사진과 같은 2D 인텐시티 정보와 깊이 정보만으로도 CGH의 생성이 가능하다.The depth map method is a method of calculating CGH after modeling by approximating a 3D object with multi-depth, and thus CGH calculation may be more efficient than other methods. In addition, it is possible to generate CGH with only 2D intensity information and depth information such as a general picture.

깊이 맵 방식에 따라 CGH를 생성할 때, CGH 프로세싱의 대부분은 푸리에 변환(FFT(fast Fourier transform)) 연산이 차지한다. CGH 프로세싱에서의 푸리에 변환(FFT)은, 이미지의 프레넬 회절(Fresnel diffraction)에 의해 얻어지는 회절상(diffracted image)의 분포를 구하기 위한 연산으로서, GFT(Generalized Fresnel Transform) 또는 프레넬 변환(Fresnel Transform)에 해당하고, 이는 당해 기술분야의 통상의 기술자에게 자명하다. 한편, 본 실시예들에서 푸리에 변환의 용어는 푸리에 변환을 이용한 연산들인, 인버스 푸리에 변환, 고속 푸리에 변환(FFT), GFT, 프레넬 변환 등을 포함하는 용어일 수 있다. FFT 연산은 이미지 해상도가 높아질수록 연산량이 기하급수적으로 증가할 수 있으므로, CGH 프로세싱의 가속화 알고리즘의 중요성이 부각되고 있다.When generating CGH according to the depth map method, most of the CGH processing is occupied by a Fast Fourier transform (FFT) operation. Fourier transform (FFT) in CGH processing is an operation for obtaining a distribution of a diffracted image obtained by Fresnel diffraction of an image, and is a GFT (Generalized Fresnel Transform) or Fresnel Transform. Corresponds to, which is obvious to a person skilled in the art. Meanwhile, in the present embodiments, the term of the Fourier transform may be a term including an inverse Fourier transform, a fast Fourier transform (FFT), a GFT, a Fresnel transform, and the like, which are operations using a Fourier transform. The FFT operation can increase exponentially as the image resolution increases, so the importance of the acceleration algorithm of CGH processing is emerging.

본 실시예들에 따르면, 깊이 맵 방식을 이용하여 CGH를 생성하고자 할 때, 입력 이미지의 영역을 분할하여 계산하는 방법과, 분할된 영역들(즉, 패치들(patches))에 대해 효율적 FFT 연산을 수행할 수 있는 가속화 프로세싱 알고리즘의 방법을 활용한다.According to the present embodiments, when generating CGH using the depth map method, a method of calculating by dividing an area of an input image, and an efficient FFT operation on the divided areas (ie, patches) It utilizes a method of accelerated processing algorithms that can perform.

도 2a 및 도 2b는 일 실시예에 따라 깊이 맵 방식으로 3D 객체의 CGH를 생성할 때, 3D 객체에 대한 깊이 레이어 별 2D 이미지들을 설명하기 위한 도면들이다.2A and 2B are diagrams for explaining 2D images for each depth layer of a 3D object when CGH of a 3D object is generated using a depth map method according to an embodiment.

도 2a를 참고하면, 3D 객체(200)는 수정체 렌즈 평면 W(u,v) (14)과 SLM 평면(또는 CGH 평면) P(x1, y1) (15) 사이의 공간 상에 위치하고 있다. 깊이 맵 방식에 따르면, 이 공간은 소정 개수의 깊이 레이어들로 분할되는 것으로 설정될 수 있다. 여기서, 깊이 레이어들의 개수는 사용자 설정에 의해 변경될 수 있는 임의의 개수로서, 예를 들어 깊이 레이어들의 개수는 256개이거나 또는 다른 개수일 수 있다.Referring to FIG. 2A, the 3D object 200 is located in a space between the lens plane W(u,v) (14) and the SLM plane (or CGH plane) P(x 1 , y 1 ) (15). . According to the depth map method, this space may be set to be divided into a predetermined number of depth layers. Here, the number of depth layers is an arbitrary number that can be changed by a user setting, and for example, the number of depth layers may be 256 or a different number.

도 2b를 참고하면, 3D 객체(200)는 기설정된 개수의 깊이 레이어들에 대응하는 깊이 이미지들(220)로 모델링될 수 있다. 깊이 이미지들 각각은 해당 깊이에서의 3D 객체(200)의 객체 데이터(221 내지 224)를 포함하고 있다.Referring to FIG. 2B, the 3D object 200 may be modeled as depth images 220 corresponding to a preset number of depth layers. Each of the depth images includes object data 221 to 224 of the 3D object 200 at a corresponding depth.

각 깊이 레이어의 깊이 이미지에서는 실제로 깊이 값이 0인 영역이 대부분이고 객체 데이터가 존재하는 영역(깊이 값이 0이 아닌 영역)은 상대적으로 적은 범위를 차지할 수 있다. 이와 같은 깊이 이미지의 성김도(sparsity)로 인하여 깊이 이미지의 전체 영역에 대해 푸리에 변환(FFT)을 수행하는 것은 비효율적일 수 있다. 따라서, 이미지 성김도를 고려하여 CGH 프로세싱의 연산 효율을 증대시키는 것이 바람직할 수 있다. 한편, 객체 데이터가 존재하는 영역과 객체 데이터가 존재하지 않는 영역은 앞서 설명된 바와 같이 깊이 값 0을 기준으로 판단될 수 있으나, 이에 제한되지 않고 기준 깊이 값은 0이 아닌 비교적 작은 임의의 값일 수도 있다.In the depth image of each depth layer, most regions with a depth value of 0 may actually occupy a relatively small range, and an area in which object data exists (a region with a depth value other than 0) may occupy a relatively small range. Due to the sparsity of the depth image, it may be inefficient to perform Fourier transform (FFT) on the entire area of the depth image. Therefore, it may be desirable to increase the computational efficiency of CGH processing in consideration of image sparse. Meanwhile, an area in which object data exists and an area in which object data does not exist may be determined based on a depth value of 0 as described above, but is not limited thereto, and the reference depth value may be a relatively small arbitrary value other than 0. have.

도 3은 일 실시예에 따른 CGH 프로세싱의 연산 복잡도(complexity)를 설명하기 위한 도면이다.3 is a diagram for explaining the computational complexity of CGH processing according to an embodiment.

도 3을 참고하면, 깊이 이미지(310)는 M 픽셀들 및 N 픽셀들의 픽셀 어레이를 갖는 M x N 해상도인 것으로 가정할 수 있다. (M, N은 자연수). 깊이 이미지(310)에 대하여 푸리에 변환(FFT) 등의 다양한 CGH 프로세싱을 수행함으로써 CGH(320)가 생성된다. 이때, CGH 프로세싱의 연산 복잡도는 수학식 1과 같이 계산될 수 있고, 수학식 1의 연산 복잡도는 상대적인 값에 해당한다.Referring to FIG. 3, it may be assumed that the depth image 310 has an M x N resolution having a pixel array of M pixels and N pixels. (M and N are natural numbers). CGH 320 is generated by performing various CGH processing such as Fourier transform (FFT) on the depth image 310. At this time, the computational complexity of CGH processing may be calculated as in Equation 1, and the computational complexity of Equation 1 corresponds to a relative value.

Figure pat00001
Figure pat00001

즉, CGH 프로세싱의 연산 복잡도는 깊이 이미지(310)의 해상도(즉, M x N)에 의존하여 결정될 수 있다. 따라서, 이미지 해상도가 높아질수록 상대적으로 연산 복잡도는 증가할 수 있다.That is, the computational complexity of CGH processing may be determined depending on the resolution (ie, M x N) of the depth image 310. Therefore, as the image resolution increases, the computational complexity may increase relatively.

도 4는 일 실시예에 따른 3D 홀로그래픽 이미지 처리 장치의 하드웨어 구성을 도시한 블록도이다.4 is a block diagram illustrating a hardware configuration of a 3D holographic image processing apparatus according to an exemplary embodiment.

도 4를 참고하면, 3D 홀로그래픽 이미지 처리 장치(100)는 프로세서(112) 및 메모리(114)를 포함한다. 도 4에 도시된 3D 홀로그래픽 이미지 처리 장치(100)에는 본 실시예들와 관련된 구성요소들만이 도시되어 있다. 따라서, 3D 홀로그래픽 이미지 처리 장치(100)에는 도 4에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당업자에게 자명하다.Referring to FIG. 4, the 3D holographic image processing apparatus 100 includes a processor 112 and a memory 114. In the 3D holographic image processing apparatus 100 shown in FIG. 4, only components related to the present embodiments are shown. Therefore, it is apparent to those skilled in the art that the 3D holographic image processing apparatus 100 may further include other general-purpose components in addition to the components shown in FIG. 4.

프로세서(112)는 PC(personal computer), 서버 디바이스, TV(television), 모바일 디바이스(스마트폰, 태블릿 디바이스 등), 임베디드 디바이스, 자율주행 자동차, 웨어러블 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스 등의 다양한 종류의 컴퓨팅 디바이스들에 구비된 프로세서에 해당할 수 있다. 예를 들어, 프로세서(112)는 CPU(central processing unit), GPU(graphics processing unit), AP(application processor), NPU(neural processing unit) 등과 같은 프로세서에 해당할 수 있으나, 이에 제한되지 않는다.The processor 112 is a personal computer (PC), a server device, a TV (television), a mobile device (smartphone, tablet device, etc.), an embedded device, an autonomous vehicle, a wearable device, an AR (Augmented Reality) device, an IoT (Internet). of Things) may correspond to a processor provided in various types of computing devices such as devices. For example, the processor 112 may correspond to a processor such as a central processing unit (CPU), a graphics processing unit (GPU), an application processor (AP), and a neural processing unit (NPU), but is not limited thereto.

프로세서(112)는 프로세서(112)가 구비된 3D 홀로그래픽 이미지 처리 장치(100)를 제어하기 위한 전반적인 기능들을 수행하는 역할을 한다. 프로세서(112)는 메모리(114)에 저장된 프로그램들을 실행함으로써, 3D 홀로그래픽 이미지 처리 장치(100)를 전반적으로 제어할 수 있다. 예를 들어, 3D 홀로그래픽 이미지 처리 장치(100)가 디스플레이 장치(150) 내에 구비된 경우, 프로세서(112)는 3D 홀로그래픽 이미지 처리 장치(100)에 의한 이미지 처리를 제어함으로써 디스플레이 장치(150)에 의한 홀로그래픽 이미지의 표시를 제어할 수 있다.The processor 112 serves to perform overall functions for controlling the 3D holographic image processing apparatus 100 equipped with the processor 112. The processor 112 may generally control the 3D holographic image processing apparatus 100 by executing programs stored in the memory 114. For example, when the 3D holographic image processing apparatus 100 is provided in the display apparatus 150, the processor 112 controls the image processing by the 3D holographic image processing apparatus 100 so that the display apparatus 150 The display of holographic images can be controlled.

디스플레이 장치(150)는 3D 홀로그래픽 이미지 처리 장치(100)에 의해 생성된 CGH에 기초하여 3D 공간 상에 홀로그래픽 이미지를 표시할 수 있는 장치에 해당할 수 있다. 디스플레이 장치(150)는 공간 광 변조기(SLM)(155)와 같은 홀로그램 재생을 위한 하드웨어 모듈을 포함할 수 있고, LCD, OLED 등과 같은 다양한 종류의 디스플레이 패널을 포함할 수 있다. 즉, 디스플레이 장치(150)는 CGH를 생성하기 위한 3D 홀로그래픽 이미지 처리 장치(100) 외에도, 홀로그래픽 이미지를 표시하기 위한 다양한 하드웨어 모듈들, 하드웨어 구성들을 포함할 수 있다. 한편, 3D 홀로그래픽 이미지 처리 장치(100)는 디스플레이 장치(150)의 외부에 구현된 별도의 독립적인 장치일 수 있다. 이때, 디스플레이 장치(150)는 외부의 3D 홀로그래픽 이미지 처리 장치(100)에 의해 생성된 CGH 데이터를 수신하고, 수신된 CGH 데이터에 기초하여 홀로그래픽 이미지를 표시할 수 있다. 즉, 3D 홀로그래픽 이미지 처리 장치(100)와 디스플레이 장치(150)의 구현 방식은 어느 하나의 실시예에 의해 제한되지 않는다.The display device 150 may correspond to a device capable of displaying a holographic image in a 3D space based on the CGH generated by the 3D holographic image processing device 100. The display device 150 may include a hardware module for reproducing a hologram, such as a spatial light modulator (SLM) 155, and may include various types of display panels such as LCD and OLED. That is, the display device 150 may include various hardware modules and hardware components for displaying a holographic image in addition to the 3D holographic image processing device 100 for generating CGH. Meanwhile, the 3D holographic image processing apparatus 100 may be a separate and independent apparatus implemented outside the display apparatus 150. In this case, the display device 150 may receive CGH data generated by the external 3D holographic image processing device 100 and display a holographic image based on the received CGH data. That is, the implementation method of the 3D holographic image processing apparatus 100 and the display apparatus 150 is not limited by any one embodiment.

메모리(114)는 프로세서(112) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리(114)는 프로세서(112)에서 처리된 CGH 데이터들 및 처리될 CGH 데이터들을 저장할 수 있다. 또한, 메모리(114)는 프로세서(112)에 의해 구동될 다양한 애플리케이션들, 예를 들어 홀로그램 재생 애플리케이션, 웹 브라우징 애플리케이션, 게임 애플리케이션, 비디오 애플리케이션 등을 저장할 수 있다.The memory 114 is hardware that stores various types of data processed in the processor 112. For example, the memory 114 may store CGH data processed by the processor 112 and CGH data to be processed. In addition, the memory 114 may store various applications to be driven by the processor 112, for example, a hologram playback application, a web browsing application, a game application, a video application, and the like.

메모리(114)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시예에 있어서, 메모리(114)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나로 구현될 수 있다.The memory 114 may include at least one of a volatile memory and a nonvolatile memory. Nonvolatile memory is ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), Flash memory, PRAM (Phase-change RAM), MRAM (Magnetic RAM), It includes RRAM (Resistive RAM), FRAM (Ferroelectric RAM), and the like. Volatile memory includes DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM), etc. . In an embodiment, the memory 114 is a hard disk drive (HDD), a solid state drive (SSD), a compact flash (CF), a secure digital (SD), a micro secure digital (Micro-SD), a mini-SD (mini-SD). secure digital), xD (extreme digital), or a Memory Stick.

프로세서(112)는 홀로그래픽 이미지를 생성하고자 하는 3D 객체에 대한 2D 인텐시티 이미지들 및 깊이 데이터를 리드(read)한다. 프로세서(112)는 3D 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득한다. 소정 해상도는 사용자 설정 또는 입력 이미지 포맷 등에 의해 다양하게 변경될 수 있으며, 본 실시예들에서는 예를 들어 M x N 해상도인 것으로 가정하여 설명한다.The processor 112 reads 2D intensity images and depth data for a 3D object to generate a holographic image. The processor 112 acquires a plurality of depth images of a predetermined resolution for a predetermined number of depth layers from depth data of the 3D object. The predetermined resolution may be variously changed according to user settings or input image format, and the present embodiments will be described assuming that the resolution is, for example, M x N.

프로세서(112)는 깊이 이미지들 각각을, CGH 평면에서의 CGH 패치들(또는 'SLM 패치들'이라 한다.)의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는 소정 개수의 서브 이미지들로 분할한다. 소정 개수는 사용자 설정, 깊이 이미지의 해상도, 3D 홀로그래픽 이미지 처리 장치(100)의 성능 등 다양한 요소들에 의해 결정되고 변경될 수 있다.The processor 112 divides each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches (or'SLM patches') in the CGH plane. . The predetermined number may be determined and changed according to various factors such as user setting, resolution of the depth image, and performance of the 3D holographic image processing apparatus 100.

하나의 서브 이미지의 크기는 깊이 이미지의 해상도의 하나의 픽셀 크기보다는 크다. 즉, 서브 이미지는 깊이 이미지에서 일부 픽셀들이 그룹화된 영역의 이미지에 해당한다. 예를 들어, 프로세서(112)는 M x N 해상도의 깊이 이미지의 전체 영역을 m x n 개(m, n은 자연수)의 패치들로 분할함으로써, 깊이 이미지를 m x n 개의 서브 이미지들로 분할할 수 있다. 한편, 서브 이미지들 각각의 크기는 모두 동일하거나, 또는 서로 다를 수 있다.The size of one sub-image is larger than the size of one pixel of the resolution of the depth image. That is, the sub-image corresponds to an image of a region in which some pixels are grouped in the depth image. For example, the processor 112 may divide the depth image into m x n sub-images by dividing the entire area of the depth image of M x N resolution into m x n (m, n are natural numbers) patches. Meanwhile, the sizes of each of the sub images may be the same or may be different from each other.

CGH 패치들의 간섭 패턴들은 CGH 평면(SLM 평면)에서의 각 로컬 영역의 위치에 대응하는 부분 CGH 간섭 패턴들에 해당하고, SLM 패치(patch), 로컬 CGH 패턴, 로컬 SLM 패턴, 서브 CGH, 또는 서브 SLM 등의 다른 용어들로도 호칭될 수 있다. CGH 평면(SLM 평면)은, 깊이 이미지를 서브 이미지들로 분할하기 위한 샘플링 그리드(sampling grid)의 패치들과 동일하게 분할될 수 있다. 즉, CGH 평면(SLM 평면)도 깊이 이미지와 마찬가지로, 예를 들어 m x n 개의 서브 CGH 영역들로 구분될 수 있고, CGH 패치들의 간섭 패턴들 각각은 CGH 평면(SLM 평면) 상에서 서브 CGH 영역들 각각의 위치에 대응하는 간섭(interference) 패턴일 수 있다.The interference patterns of the CGH patches correspond to partial CGH interference patterns corresponding to the location of each local area in the CGH plane (SLM plane), and SLM patch, local CGH pattern, local SLM pattern, sub CGH, or sub It may also be referred to as other terms such as SLM. The CGH plane (SLM plane) may be divided in the same manner as patches of a sampling grid for dividing the depth image into sub-images. That is, the CGH plane (SLM plane) can be divided into, for example, mxn sub-CGH regions, like the depth image, and each of the interference patterns of the CGH patches is each of the sub CGH regions on the CGH plane (SLM plane). It may be an interference pattern corresponding to the location.

프로세서(112)는 서브 이미지 단위로, 서브 이미지들 각각에 포함된 객체 데이터에 대한 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환(FFT)을 수행함으로써 서브 이미지들 각각에 대응하는 CGH 패치들의 간섭 패턴들을 획득한다.The processor 112 performs Fourier Transform (FFT) for calculating an interference pattern in the CGH plane for object data included in each of the sub-images in units of sub-images, thereby interfering with the CGH patches corresponding to each of the sub-images. Acquire patterns.

앞서 설명된 바와 같이, 깊이 이미지들에서 서브 이미지들 각각의 위치는 CGH 평면에서 CGH 패치들의 간섭 패턴들 각각의 위치에 대응한다. 그러므로, 깊이 이미지들 각각에서 동일한 패치 위치의 서브 이미지들로부터 계산된 간섭 패턴들은 CGH 평면에서 동일한 패치 위치의 CGH 패치(또는 SLM 패치)에 매핑될 수 있다.As described above, the positions of each of the sub-images in the depth images correspond to positions of each of the interference patterns of the CGH patches in the CGH plane. Therefore, interference patterns calculated from sub-images of the same patch location in each of the depth images may be mapped to the CGH patch (or SLM patch) of the same patch location in the CGH plane.

프로세서(112)는 획득된 CGH 패치의 간섭 패턴들을 이용하여 3D 객체에 대한 전체 CGH를 생성한다. 즉, 프로세서(112)는 획득된 CGH 패치들의 간섭 패턴들을 머지(merge)하여 CGH 평면의 전체 영역에서의 글로벌(global) CGH의 간섭 패턴을 획득함으로써, CGH를 생성한다.The processor 112 generates the entire CGH for the 3D object by using the interference patterns of the obtained CGH patch. That is, the processor 112 generates CGH by merging interference patterns of the acquired CGH patches to obtain a global CGH interference pattern in the entire area of the CGH plane.

즉, 3D 홀로그래픽 이미지 처리 장치(100)는 깊이 이미지를 서브 이미지들로 분할하여 CGH 프로세싱(예를 들어, FFT)을 수행한다. 그 이유는, 도 5에 도시된 바와 같이, 깊이 이미지가 서브 이미지들로 분할됨으로써 연산 복잡도가 감소될 수 있기 때문이다. 나아가서, 3D 홀로그래픽 이미지 처리 장치(100)는 분할된 서브 이미지들로 보다 효율적인 CGH 프로세싱을 수행하기 위하여, 서브 이미지들 중 ROI (region of interest)를 설정하거나 서브 이미지들에 대한 1단계(single stage) 푸리에 변환을 수행할 수 있다. 이에 대해서는 이하 해당 도면들을 참고하여 보다 상세히 설명하도록 한다.That is, the 3D holographic image processing apparatus 100 performs CGH processing (eg, FFT) by dividing the depth image into sub images. The reason is that, as shown in FIG. 5, the depth image is divided into sub-images, so that computational complexity can be reduced. Furthermore, the 3D holographic image processing apparatus 100 sets a region of interest (ROI) among sub-images or performs a single stage for sub-images in order to perform more efficient CGH processing with divided sub-images. ) Fourier transform can be performed. This will be described in more detail below with reference to the corresponding drawings.

도 5는 일 실시예에 따라 깊이 이미지 분할(subdivision)에 의해 연산 복잡도가 감소되는 것을 설명하기 위한 도면이다.5 is a diagram for explaining that computational complexity is reduced by depth image subdivision according to an exemplary embodiment.

도 5를 참고하면, 깊이 이미지를 분할하지 않는 경우(501) 및 깊이 이미지를 분할하는 경우(502)에서의 연산 복잡도들이 도시되어 있다. M x N 해상도의 깊이 이미지를 분할하지 않는 경우(501), CGH 프로세싱(FFT 등의 연산)를 생성하기 위한 연산 복잡도는 앞서 설명된 수학식 1과 같다.Referring to FIG. 5, computational complexity in the case where the depth image is not segmented 501 and the depth image is segmented 502 are illustrated. When the depth image of M x N resolution is not segmented (501), the computational complexity for generating CGH processing (operation such as FFT) is as Equation 1 described above.

하지만, M x N 해상도의 깊이 이미지를 m x n 개의 서브 이미지들로 분할하고 m x n 개의 서브 이미지들에 대한 CGH 프로세싱을 수행하여 m x n 개의 CGH 패치들(서브 CGH들)을 생성하는 경우(502), 연산 복잡도는 아래 수학식 2와 같이 감소될 수 있다.However, in the case of generating mxn CGH patches (sub CGHs) by dividing a depth image of M x N resolution into mxn sub-images and performing CGH processing on mxn sub-images (502), computational complexity May be reduced as in Equation 2 below.

Figure pat00002
Figure pat00002

즉, m x n 분할(subdivision)로 인해, CGH 프로세싱의 연산 복잡도는, m x n 비분할(non-subdivision)의 경우보다 상대적으로 감소될 수 있다.That is, due to m x n subdivision, the computational complexity of CGH processing may be relatively reduced compared to the case of m x n non-subdivision.

도 6은 일 실시예에 따라 깊이 이미지의 m x n 분할에 의해 CGH 프로세싱의 연산 복잡도가 감소되는 것을 설명하기 위한 도면이다.6 is a diagram for explaining that computational complexity of CGH processing is reduced by m x n division of a depth image according to an embodiment.

도 6을 참고하면, M x N 해상도의 깊이 이미지(600)는 m x n 개의 CGH 패치들(610)로 분할되는 것으로 가정한다. M x N 해상도의 깊이 이미지(600)에 대한 CGH 프로세싱의 연산 복잡도는 앞서 수학식 1에서 설명된 바와 같다. 이와 달리, m x n 분할을 고려한 연산 복잡도의 계산 과정은 이하의 수학식 3을 참고하여 설명하도록 한다.Referring to FIG. 6, it is assumed that a depth image 600 of M x N resolution is divided into m x n CGH patches 610. The computational complexity of CGH processing for the depth image 600 of M x N resolution is as described in Equation 1 above. In contrast, the calculation process of the computational complexity considering m x n division will be described with reference to Equation 3 below.

Figure pat00003
Figure pat00003

상기 수학식 3에 따르면, M x N 해상도의 계산 범위를 m x n 개의 CGH 패치들로 국소화하여 푸리에 변환을 수행하면, 한 패치의 해상도는

Figure pat00004
이므로 한 CGH 패치의 연산 복잡도는
Figure pat00005
으로 표현될 수 있다. 총 CGH 패치들에 대한 연산 복잡도를 구하기 위해 총 패치들의 개수 m x n을 곱해주면,
Figure pat00006
가 된다. 따라서, 깊이 이미지(600)를 m x n 개의 CGH 패치들(610)(즉, 서브 이미지들)로 분할함으로써, CGH 프로세싱(FFT 등의 연산)의 연산 복잡도가
Figure pat00007
만큼 감소될 수 있다. 그러므로, 깊이 이미지의 해상도(M x N)가 높아질수록, CGH 패치 개수(m x n)가 늘어날수록, 연산 복잡도는 더 감소될 수 있다.According to Equation 3, when Fourier transform is performed by localizing the calculation range of M x N resolution into mxn CGH patches, the resolution of one patch is
Figure pat00004
So the computational complexity of a CGH patch is
Figure pat00005
It can be expressed as Multiplying the total number of patches by mxn to get the computational complexity for the total CGH patches,
Figure pat00006
Becomes. Therefore, by dividing the depth image 600 into mxn CGH patches 610 (ie, sub-images), the computational complexity of CGH processing (operation such as FFT) is
Figure pat00007
Can be reduced by Therefore, as the resolution (M x N) of the depth image increases and the number of CGH patches (mxn) increases, the computational complexity may be further reduced.

도 7a는 일 실시예에 따라 서브 이미지들 중에서 ROI를 설정하는 것을 설명하기 위한 도면이다.7A is a diagram for explaining setting of an ROI among sub-images according to an embodiment.

도 7a를 참고하면, 어느 깊이 레이어의 깊이 이미지들로부터 분할된 m x n 개의 전체 서브 이미지들(701) 중에는 객체 데이터(710)가 존재하는 서브 이미지와 객체 데이터(710)가 존재하지 않는 서브 이미지가 함께 있을 수 있다. 여기서, 객체 데이터(710)는 해당 깊이 레이어에서의 3D 객체의 깊이 값을 의미하고, 예를 들어 깊이 값은 픽셀 값으로 표현될 수 있다. 객체 데이터(710)가 존재하는 서브 이미지와 객체 데이터(710)가 존재하지 않는 서브 이미지는 앞서 설명된 바와 같이 깊이 값 0을 기준으로 판단될 수 있으나, 이에 제한되지 않고 기준 깊이 값은 0이 아닌 비교적 작은 임의의 값일 수도 있다.Referring to FIG. 7A, among mxn total sub-images 701 divided from depth images of a certain depth layer, a sub-image with object data 710 and a sub-image without object data 710 are together. There may be. Here, the object data 710 means a depth value of a 3D object in a corresponding depth layer, and for example, the depth value may be expressed as a pixel value. The sub-image in which the object data 710 exists and the sub-image in which the object data 710 does not exist may be determined based on the depth value of 0 as described above, but the reference depth value is not limited thereto. It may be any relatively small value.

프로세서(도 4의 112)는 깊이 이미지들 각각에 대하여, 서브 이미지들(701) 중 객체 데이터(710)가 존재하는 서브 이미지를 ROI(region of interest)(720)로 결정한다. 즉, 프로세서(112)는 서브 이미지들(701) 중에서 소정 임계값(예를 들어, 0)보다 큰 객체 데이터(710)의 값을 갖는 서브 이미지를 ROI(720)로 결정할 수 있다. 도 7a의 예에서는, m x n 개의 서브 이미지들(701) 중에서 객체 데이터(710)와 중첩되는 CGH 패치 위치들의 14개의 서브 이미지들이 ROI(720)로 설정될 수 있다.For each of the depth images, the processor (112 in FIG. 4) determines a sub-image in which the object data 710 exists among the sub-images 701 as a region of interest (ROI) 720. That is, the processor 112 may determine a sub-image having a value of the object data 710 greater than a predetermined threshold (eg, 0) among the sub-images 701 as the ROI 720. In the example of FIG. 7A, among m x n sub-images 701, 14 sub-images of CGH patch positions overlapping with the object data 710 may be set as the ROI 720.

프로세서(112)는 ROI(720)로 결정된 서브 이미지에 대해서는 푸리에 변환을 수행한다. 하지만, 프로세서(112)는 ROI(720)로 결정되지 않은 나머지 서브 이미지에 대해서는 푸리에 변환을 스킵한다. 이는, ROI(720)로 결정되지 않은 나머지 서브 이미지에는 객체 데이터가 없으므로(즉, 깊이 값 또는 픽셀 값이 0이므로), 푸리에 변환을 수행할 필요가 없기 때문이다. 이로써, 프로세서(112)는 ROI(720)의 서브 이미지들에 대해서만 푸리에 변환을 수행하면 되므로, 연산량이 감소될 수 있다. 프로세서(112)는 ROI(720)로 결정된 서브 이미지에 대한 푸리에 변환의 결과에 기초하여, ROI 서브 이미지에 대응하는 CGH 패치의 간섭 패턴을 획득한다.The processor 112 performs Fourier transform on the sub-image determined by the ROI 720. However, the processor 112 skips the Fourier transform for the remaining sub-images not determined as the ROI 720. This is because there is no object data in the remaining sub-images that are not determined by the ROI 720 (that is, since the depth value or the pixel value is 0), there is no need to perform Fourier transform. Accordingly, since the processor 112 only needs to perform Fourier transform on the sub-images of the ROI 720, the amount of computation can be reduced. The processor 112 acquires an interference pattern of the CGH patch corresponding to the ROI sub-image based on the result of Fourier transform for the sub-image determined by the ROI 720.

한편, 프로세서(112)는 깊이 이미지들 중에서 ROI(720)에 해당하는 서브 이미지를 포함하지 않는 깊이 이미지 자체에 대해서는 푸리에 변환을 스킵할 수도 있다.Meanwhile, the processor 112 may skip the Fourier transform for the depth image itself that does not include a sub-image corresponding to the ROI 720 among the depth images.

도 7b는 일 실시예에 따라, 깊이 이미지를 분할하는 CGH 패치 개수(m x n)에 따라 ROI로 결정된 서브 이미지들의 개수 및 위치가 다양할 수 있음을 설명하기 위한 도면이다.7B is a diagram for explaining that the number and positions of sub-images determined as ROI may vary according to the number of CGH patches (m x n) for dividing a depth image according to an embodiment.

도 7b를 참고하면, 원본 이미지(약 4000 x 4000 해상도)를 256개의 깊이 레이어들로 구분하고, 그 중에서 180번째 깊이 레이어의 깊이 이미지에 포함된 객체 데이터(731)가 도시되어 있다. 깊이 이미지의 전체 해상도에서 객체 데이터(731)가 차지하는 픽셀들의 개수는 상당히 적다는 것을 알 수 있다.Referring to FIG. 7B, the original image (about 4000 x 4000 resolution) is divided into 256 depth layers, and object data 731 included in the depth image of the 180th depth layer is illustrated. It can be seen that the number of pixels occupied by the object data 731 in the full resolution of the depth image is quite small.

깊이 이미지를 10 x 10 개의 패치들로 분할하는 경우의 ROI(732)와 40 x 40 개의 CGH 패치들로 분할하는 경우의 ROI(733)가 도시되어 있다. 프로세서(도 4의 112)는 각각의 경우에서 ROI(732 또는 733)에 해당하는 서브 이미지들에 대해서만 푸리에 변환을 수행하면 되므로, 전체 깊이 이미지에 대해 푸리에 변환을 수행하는 것보다 연산량이 비교적 많이 감소될 수 있다. 한편, CGH 패치 개수가 늘어날수록 ROI의 범위는 줄어들 수 있으나, ROI의 개수는 증가할 수 있다. 반대로, CGH 패치 개수가 줄어들수록 ROI의 범위는 증가할 수 있으나, ROI의 개수는 감소할 수 있다. 즉, 프로세서(112)의 연산량은 CGH 패치 개수에 의존하여 조절될 수 있다.The ROI 732 when the depth image is divided into 10 x 10 patches and the ROI 733 when divided into 40 x 40 CGH patches are shown. Since the processor (112 in FIG. 4) only needs to perform Fourier transform on the sub-images corresponding to the ROI (732 or 733) in each case, the amount of computation is relatively reduced compared to performing Fourier transform on the entire depth image. Can be. Meanwhile, as the number of CGH patches increases, the range of the ROI may decrease, but the number of ROIs may increase. Conversely, as the number of CGH patches decreases, the range of the ROI may increase, but the number of ROIs may decrease. That is, the amount of computation of the processor 112 may be adjusted depending on the number of CGH patches.

도 7c는 일 실시예에 따라, 최적화된 패치 개수를 결정하기 위한 시뮬레이션 결과를 설명하기 위한 도면이다.7C is a diagram illustrating a simulation result for determining an optimized number of patches, according to an exemplary embodiment.

도 7c를 참고하면, 주어진 조건(740)에서 CGH 패치 개수를 늘려가면서 FFT 계산 시간을 측정한 결과가 도시되어 있다. 그 결과, 깊이 이미지를 32 x 32 개의 CGH 패치들로 분할하였을 때, 계산 속도가 가장 빠른 것을 알 수 있다. 이론적으로는 CGH 패치 개수가 늘어날수록 계산 속도가 빨라져야 하지만, 반복 계산으로 인한 컴퓨팅 부하가 발생된다. 따라서, 계산 속도에 영향을 미치는 다양한 요소들을 고려하여, 적절한 최적의 CGH 패치 개수가 측정될 수 있다. 한편, 도 7c는 주어진 조건(740) 하에서 시뮬레이션된 결과일 뿐, 본 실시예들은 이에 제한되지 않고 사용 조건에 최적화된 CGH 패치 개수가 적절하게 결정될 수 있다.Referring to FIG. 7C, a result of measuring the FFT calculation time while increasing the number of CGH patches under a given condition 740 is shown. As a result, it can be seen that the calculation speed is fastest when the depth image is divided into 32 x 32 CGH patches. In theory, as the number of CGH patches increases, the calculation speed should increase, but the computing load is generated due to repetitive calculations. Accordingly, in consideration of various factors affecting the calculation speed, an appropriate optimal number of CGH patches can be measured. Meanwhile, FIG. 7C is only a simulated result under the given condition 740, and the present embodiments are not limited thereto, and the number of CGH patches optimized for the use condition may be appropriately determined.

도 7d는 일 실시예에 따른 프로세서의 상세 하드웨어 구성을 설명하기 위한 블록도이다.7D is a block diagram illustrating a detailed hardware configuration of a processor according to an embodiment.

도 7d에서의 프로세서(112)는 도 4에서 설명된 프로세서(112)에 해당하고, 도 7d에 도시된 바와 같이 일 실시예에 따라 프로세서(112)는 MCU (Main Control Unit, 1121), 복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)(J는 자연수)을 포함하도록 구성될 수 있다. 다만, 도 7d에 도시된 프로세서(112)의 상세 하드웨어 구성은 일 예시로서, 프로세서(112)는 다른 하드웨어 구성들을 추가로 포함하거나, 또는 도 7d에서와 다른 하드웨어 구성들을 갖는 것으로도 구현될 수 있다. 즉, 프로세서(112)의 상세 하드웨어 구성은 도 7d의 설명에 의해 제한되지 않는다.The processor 112 in FIG. 7D corresponds to the processor 112 described in FIG. 4, and as shown in FIG. 7D, according to an embodiment, the processor 112 is a main control unit (MCU) 1121, a plurality of It may be configured to include the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J (J is a natural number). However, the detailed hardware configuration of the processor 112 illustrated in FIG. 7D is an example, and the processor 112 may additionally include other hardware configurations, or may be implemented as having different hardware configurations than in FIG. 7D. . That is, the detailed hardware configuration of the processor 112 is not limited by the description of FIG. 7D.

MCU(1121)는 프로세서(112)의 CGH 프로세싱 동작들을 전반적으로 제어하는 컨트롤 유닛에 해당한다. 구체적으로, MCU(1121)는 3차원 객체의 깊이 데이터로부터 기설정된 개수의 깊이 레이어들에 대한 소정 해상도(예를 들어, M x N)의 복수의 깊이 이미지들을 획득하고, M x N 해상도의 깊이 이미지를 소정 개수(예를 들어, m x n 개)의 서브 이미지들(즉, CGH 패치들)로 분할하는 것을 처리할 수 있다. 또한, MCU(1121)는 서브 이미지들 중 객체 데이터가 존재하는 서브 이미지를 ROI로 결정하고, 분할된 서브 이미지들(즉, CGH 패치들)에서의 ROI에 대한 효율적 FFT 연산이 수행되도록 분할될 서브 이미지들 각각에 대한 푸리에 연산을 수행할 FFT 코어를 할당함으로써 복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)의 동작을 스케쥴링할 수 있다. 즉, 프로세서(112)의 MCU(1121)는 앞서 설명된 CGH 프로세싱 동작들 및 이하에서 설명될 CGH 프로세싱 동작들을 전반적으로 제어하는 기능을 갖는다.The MCU 1121 corresponds to a control unit that overall controls the CGH processing operations of the processor 112. Specifically, the MCU 1121 acquires a plurality of depth images of a predetermined resolution (for example, M x N) for a preset number of depth layers from depth data of a 3D object, and a depth of M x N resolution Dividing the image into a predetermined number (eg, mxn) of sub-images (ie, CGH patches) may be processed. In addition, the MCU 1121 determines a sub-image in which object data exists among the sub-images as an ROI, and the sub-images to be divided so that an efficient FFT operation for the ROI in the divided sub-images (ie, CGH patches) is performed. Operations of the plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J may be scheduled by allocating an FFT core to perform Fourier operation on each of the images. That is, the MCU 1121 of the processor 112 has a function of overall controlling the CGH processing operations described above and the CGH processing operations to be described below.

복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J) 각각은, 푸리에 연산(예를 들어, FFT 연산)을 수행하는 프로세싱 코어들에 해당한다. FFT 연산과 같은 푸리에 연산은 CGH 프로세싱 연산량의 많은 비중을 차지하는 연산에 해당되는바, 프로세서(112)는 복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)의 병렬 처리를 통해 CGH 프로세싱의 가속화를 도모할 수 있다. FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)은 프로세서(112) 내에서 FFT 코어 블록(1122)으로서 MCU(1121)과 구분될 수 있다. FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J) 각각은, 할당된 서브 이미지 단위로 서브 이미지들 각각에 포함된 객체 데이터에 대한 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행한다. 이후에 MCU(1121)는 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)에 의한 푸리에 변환의 수행 결과에 기초하여 서브 이미지들 각각에 대응하는 CGH 패치들의 간섭 패턴들을 획득하고, 획득된 CGH 패치들의 간섭 패턴들을 이용하여 3차원 객체에 대한 CGH를 생성한다.Each of the plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J corresponds to processing cores that perform Fourier operations (eg, FFT operations). Fourier operations such as FFT operations correspond to operations that occupy a large proportion of the CGH processing amount, and the processor 112 performs parallel processing of a plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J. Through this, CGH processing can be accelerated. The FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J may be distinguished from the MCU 1121 as the FFT core block 1122 in the processor 112. Each of the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J is a Fourier for calculating an interference pattern in the CGH plane for object data included in each of the sub-images in an allocated sub-image unit. Perform the transformation. Thereafter, the MCU 1121 acquires interference patterns of CGH patches corresponding to each of the sub-images based on the result of performing Fourier transform by the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J. And, by using the interference patterns of the acquired CGH patches to generate a CGH for the 3D object.

복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J) 각각은 예를 들어, FFT 연산을 수행하기 위한 쉬프트 레지스터(shift register), 곱셈기 등이 조합된 회로 로직들로 구현될 수 있다. 프로세서(112) 내에서 복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)의 개수는 프로세서(112)의 성능, 디스플레이 장치(150)의 해상도, 이미지 해상도 등의 다양한 요인들을 고려하여 다양하게 변경될 수 있다.Each of the plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J is implemented with circuit logic in which, for example, a shift register for performing an FFT operation, a multiplier, etc. Can be. The number of the plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J in the processor 112 is various such as the performance of the processor 112, the resolution of the display device 150, and image resolution. It can be changed in various ways in consideration of factors.

복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)은 이하에서 설명될 2단계(double stage) 푸리에 변환(1차(primary) 푸리에 변환 및 2차(secondary) 푸리에 변환), 1단계(single stage) 푸리에 변환, 또는 하이브리드 푸리에 변환을 수행하기 위한 FFT 연산들을 병렬적으로 수행할 수 있다.The plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J are a double stage Fourier transform (primary Fourier transform and secondary Fourier transform described below). ), FFT operations for performing a single stage Fourier transform, or a hybrid Fourier transform may be performed in parallel.

도 7e는 일 실시예에 따라 FFT 코어 블록의 FFT 코어들을 이용하여 ROI에 대한 FFT 연산을 수행하는 것을 설명하기 위한 도면이다.7E is a diagram for explaining performing an FFT operation on an ROI using FFT cores of an FFT core block, according to an embodiment.

앞서 도 7d에서 설명된 바와 같이, 프로세서(112)의 MCU(1121)는 서브 이미지들(701) 중 객체 데이터가 존재하는 서브 이미지를 ROI(720)로 결정하고, ROI(720)에 대한 효율적 FFT 연산이 수행되도록 복수의 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)의 동작을 스케쥴링할 수 있다.As previously described in FIG. 7D, the MCU 1121 of the processor 112 determines a sub-image in which object data exists among the sub-images 701 as the ROI 720, and an efficient FFT for the ROI 720. Operations of the plurality of FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J may be scheduled so that the operation is performed.

구체적으로, MCU(1121)는 각 FFT 코어마다 ROI(720)에 해당되는 각 서브 이미지를 하나씩 할당함으로써, 각 FFT 코어가 ROI(720) 내 각 서브 이미지에 대한 FFT 연산을 병렬적으로 수행하도록 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)의 동작들을 스케쥴링할 수 있다.Specifically, the MCU 1121 allocates one sub-image corresponding to the ROI 720 for each FFT core, so that each FFT core performs an FFT operation on each sub-image in the ROI 720 in parallel. Operations of the cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J may be scheduled.

예를 들어, FFT 코어(1122_1)는 ROI(720)에서 첫번째 행의 가장 좌측에 위치한 서브 이미지에 대한 FFT 연산을 수행하고, FFT 코어(1122_2)는 ROI(720)에서 첫번째 행의 좌측으로부터 두번째 열에 위치한 서브 이미지에 대한 FFT 연산을 수행하고, ..., FFT 코어(1122_J-1)는 ROI(720)에서 마지막 행의 마지막에서 두번째 열에 위치한 서브 이미지에 대한 FFT 연산을 수행하고, FFT 코어(1122_J)는 ROI(720)에서 마지막 행의 마지막 열에 위치한 서브 이미지에 대한 FFT 연산을 수행할 수 있다. 이와 같이, FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)은 ROI(720)에 대한 효율적 FFT 연산이 수행되도록 ROI(720)의 각 서브 이미지에 대한 FFT 연산을 병렬적으로 수행할 수 있다.For example, the FFT core 1122_1 performs an FFT operation on the leftmost sub-image of the first row in the ROI 720, and the FFT core 1122_2 is in the second column from the left of the first row in the ROI 720. FFT operation is performed on the located sub-image, ..., the FFT core 1122_J-1 performs an FFT operation on the sub-image located in the second column from the last of the last row in the ROI 720, and the FFT core 1122_J ) May perform an FFT operation on the sub-image located in the last column of the last row in the ROI 720. In this way, the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J perform the FFT operation on each sub-image of the ROI 720 in parallel so that an efficient FFT operation for the ROI 720 is performed. Can be done with

다만, 설명의 편의를 위하여, 도 7e에서는 ROI(720) 내 하나의 서브 이미지가 하나의 FFT 코어에 할당되는 것으로 설명되었으나, 하나의 FFT 코어에 할당되는 서브 이미지의 개수는 MCU(1121)의 스케쥴링에 의해 다양하게 변경될 수 있다. 또한, 도 7e에서는 구체적으로 도시되지 않았으나, MCU(1121)의 스케쥴링에 따라, FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)은 동일 깊이의 깊이 이미지들에 대해 병렬적인 FFT 연산을 수행하는 것 뿐만 아니라, 서로 다른 깊이들의 깊이 이미지들에서의 ROI들을 병렬적인 FFT 연산을 수행할 수도 있다.However, for convenience of explanation, although it has been described that one sub-image in the ROI 720 is allocated to one FFT core in FIG. 7E, the number of sub-images allocated to one FFT core is the scheduling of the MCU 1121 It can be changed variously by In addition, although not specifically shown in FIG. 7E, according to the scheduling of the MCU 1121, the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J are parallel to depth images of the same depth. In addition to performing the FFT operation, it is also possible to perform parallel FFT operations on ROIs in depth images of different depths.

도 7f는 다른 실시예에 따라 FFT 코어 블록의 FFT 코어들을 특정 위치의 픽셀에 할당하여 FFT 연산을 수행하는 것을 설명하기 위한 도면이다.FIG. 7F is a diagram for explaining performing an FFT operation by allocating FFT cores of an FFT core block to a pixel at a specific location according to another embodiment.

도 7f를 참고하면, FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J) 각각은 M x N 해상도의 k번째 깊이 이미지에서 특정 위치의 픽셀 어레이에 매핑되어, 해당 픽셀 어레이에 대한 FFT 연산을 수행하도록 할당될 수 있다.Referring to FIG. 7F, each of the FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J is mapped to a pixel array at a specific location in the k-th depth image of M x N resolution, Can be assigned to perform the FFT operation for

구체적으로, M x N 해상도의 깊이 이미지가 2 x 2 픽셀 어레이들로 그룹핑된 경우, 각각의 2 x 2 픽셀 어레이는 하나의 FFT 코어에 할당될 수 있고, 각각의 FFT 코어는 해당 2 x 2 픽셀 어레이에 대한 FFT 연산을 수행할 수 있다.Specifically, when a depth image of M x N resolution is grouped into 2 x 2 pixel arrays, each 2 x 2 pixel array may be allocated to one FFT core, and each FFT core is a corresponding 2 x 2 pixel You can perform FFT operations on arrays.

한편, FFT 코어 블록의 FFT 코어들 전체는 하나의 깊이 이미지 내 픽셀 어레이들에 할당될 수 있다. 또는 이에 제한되지 않고, FFT 코어 블록의 일부 FFT 코어들은 어느 깊이의 깊이 이미지 내 픽셀 어레이들에 할당되고, FFT 코어 블록의 나머지 FFT 코어들은 다른 깊이의 깊이 이미지 내 픽셀 어레이들에 할당될 수 있다. 즉, FFT 코어 블록 내 구비된 FFT 코어들의 개수, FFT 코어들의 처리 성능 등에 따라, 매핑될 픽셀 어레이의 크기, 하나의 깊이의 깊이 이미지에 매핑될 FFT 코어들의 개수 등이 다양하게 변경될 수 있다.Meanwhile, all of the FFT cores of the FFT core block may be allocated to pixel arrays within one depth image. Or, the present invention is not limited thereto, and some FFT cores of the FFT core block may be allocated to pixel arrays in a depth image of a certain depth, and the remaining FFT cores of the FFT core block may be allocated to pixel arrays in a depth image of a different depth. That is, the size of the pixel array to be mapped, the number of FFT cores to be mapped to a depth image of one depth, etc. may be variously changed according to the number of FFT cores provided in the FFT core block, processing performance of the FFT cores, and the like.

결국, 도 7d에서 설명된 일 실시예에 따른 프로세서(112)에 구비된 FFT 코어들(1122_1, 1122_2, ..., 1122_J-1, 및 1122_J)을 이용하여 FFT 연산들이 병렬적으로 처리됨으로써, 효율적 CGH 프로세싱이 수행될 수 있다.As a result, FFT operations are processed in parallel using FFT cores 1122_1, 1122_2, ..., 1122_J-1, and 1122_J provided in the processor 112 according to the exemplary embodiment described in FIG. 7D, Efficient CGH processing can be performed.

도 8a 및 도 8b는, 일 실시예에 따라 서브 이미지의 제로 패딩(zero padding)을 설명하기 위한 도면들이다.8A and 8B are diagrams for explaining zero padding of a sub-image, according to an exemplary embodiment.

도 8a를 참고하면, 푸리에 변환을 통해 서브 이미지의 전파(propagation)를 계산할 때, 회절 현상이 일어나기 때문에 원래의 서브 이미지 크기보다 넓은 범위까지 데이터가 생성될 수 있다. 즉, 원래의 서브 이미지 크기 그대로 CGH 패치들의 간섭 패턴들을 생성하여 서로 이어 붙이게 되면, 서브 이미지 크기 바깥쪽으로 회절된 부분의 데이터가 누락되기 때문에, 서브 이미지 경계에서 잘못된 회절 패턴이 발생할 수 있다. 따라서, 정확한 CGH 패치의 간섭 패턴을 구하기 위해서는 원래의 서브 이미지보다 넓은 범위를 이용하여 전파가 계산될 필요가 있다.Referring to FIG. 8A, when the propagation of the sub-image is calculated through Fourier transform, since a diffraction phenomenon occurs, data may be generated to a wider range than the original sub-image size. That is, when interference patterns of CGH patches are created and connected to each other with the original sub-image size, since data of a portion diffracted outside the sub-image size is omitted, an incorrect diffraction pattern may occur at the sub-image boundary. Therefore, in order to obtain an accurate interference pattern of the CGH patch, the radio wave needs to be calculated using a wider range than the original sub-image.

그러므로, 프로세서(도 4의 112)는 ROI로 결정된 서브 이미지(810)의 가장자리에 소정 범위로 제로 패딩(820)을 수행한다. 이후에, 프로세서(112)는 제로 패딩된 서브 이미지에 대하여 푸리에 변환을 수행함으로써 CGH 패치의 간섭 패턴을 획득한다.Therefore, the processor (112 in FIG. 4) performs zero padding 820 on the edge of the sub-image 810 determined as the ROI in a predetermined range. Thereafter, the processor 112 obtains an interference pattern of the CGH patch by performing Fourier transform on the zero-padded sub-images.

도 8b를 참고하면, 제로 패딩의 범위를 계산하기 위한 방법에 대해 도시되어 있다. 이미지가 전파되면서 거리, 파장, 픽셀 크기에 따라 회절이 일어나는 범위가 결정될 수 있다. 예를 들어, 도 8b에 도시된 수학식들을 이용하여 회절이 일어나는 범위가 계산될 수 있다.

Figure pat00008
는 깊이 레이어의 거리에 따른 서브 이미지 크기의 최소값을 의미한다. 따라서,
Figure pat00009
에서 원래의 서브 이미지 크기를 빼면, 필요한 제로 패딩의 범위를 구할 수 있다. 이와 같이 계산된 회절 범위만큼 서브 이미지의 가장자리에 제로 패딩을 수행한 후 전파를 계산하면, 원래의 서브 이미지의 바깥으로 회절되는 데이터를 모두 포함할 수 있다. 이후에 이와 같이 제로 패딩에 의해 계산된 부분들을 중복하여 스탬핑(stamping)하면, 정확한 CGH 패치의 간섭 패턴을 생성할 수 있다. 다만, 제로 패딩의 범위가 증가할수록 해상도 또한 증가하여 연산량에 영향을 미칠 수 있으므로, 제로 패딩의 범위는 적절한 범위로 결정되는 것이 바람직하다.Referring to FIG. 8B, a method for calculating the range of zero padding is illustrated. As the image propagates, the range in which diffraction occurs may be determined depending on the distance, wavelength, and pixel size. For example, a range in which diffraction occurs may be calculated using the equations shown in FIG. 8B.
Figure pat00008
Denotes the minimum value of the sub-image size according to the distance of the depth layer. therefore,
Figure pat00009
By subtracting the original sub-image size from, we can obtain the required range of zero padding. When zero padding is performed on the edge of the sub-image as much as the calculated diffraction range and then the radio wave is calculated, all data diffracted outside the original sub-image may be included. Thereafter, if the parts calculated by the zero padding are duplicated and stamped, an accurate interference pattern of the CGH patch can be generated. However, as the range of the zero padding increases, the resolution also increases, so that the amount of calculation may be affected.

도 9는 일 실시예에 따라, 논제로 패딩(non-zero padding)과 제로 패딩에 기초하여 생성된 CGH 패치들의 간섭 패턴들을 비교하여 설명하기 위한 도면이다.FIG. 9 is a diagram for explaining by comparing interference patterns of CGH patches generated based on non-zero padding and zero padding, according to an exemplary embodiment.

도 9를 참고하면, 논제로 패딩에 기초하여 생성된 CGH 패치의 간섭 패턴(901)은 회절 패턴이 누락되어 디펙트(defect) 현상이 일어나는 것을 알 수 있다. 하지만, 이와 달리, 제로 패딩에 기초하여 생성된 CGH 패치의 간섭 패턴(902)은 제로 패딩된 범위에 온전한 간섭 패턴이 생성될 수 있는 것을 알 수 있다.Referring to FIG. 9, it can be seen that a diffraction pattern is omitted in the interference pattern 901 of the CGH patch generated based on the non-zero padding, resulting in a defect phenomenon. However, unlike this, in the interference pattern 902 of the CGH patch generated based on the zero padding, it can be seen that an intact interference pattern may be generated in the zero padded range.

도 10은 일 실시예에 따라 적절한 제로 패딩의 범위를 결정하기 위한 시뮬레이션 결과를 설명하기 위한 도면이다.10 is a diagram for describing a simulation result for determining an appropriate range of zero padding according to an embodiment.

도 10을 참고하면, m x n 분할 없이 CGH를 생성하는 방식(Global conv.)은 CGH 생성에 270.0919초가 소요된다. 그리고, 제로 패딩의 범위를 100% (full)로 설정하였을 때는 226.4386초가 소요되므로, 두 방식들의 CGH 생성 시간은 거의 차이가 없음을 알 수 있다. 한편, 제로 패딩의 범위가 약 30% 이상인 경우들에서는 편차(deviation)가 거의 차이가 없다. 따라서, 제로 패딩의 범위를 약 30% 수준으로 설정하여도 계산 시간 및 편차 측면에서 효율적인 연산 성능을 얻을 수 있음을 알 수 있다.Referring to FIG. 10, the method of generating CGH without m x n division (Global conv.) takes 270.0919 seconds to generate CGH. And, when the range of zero padding is set to 100% (full), it takes 226.4386 seconds, so it can be seen that there is almost no difference in the CGH generation time between the two methods. On the other hand, in cases where the range of zero padding is about 30% or more, there is almost no difference in deviation. Therefore, it can be seen that even if the range of zero padding is set to a level of about 30%, efficient calculation performance can be obtained in terms of calculation time and deviation.

도 5 내지 도 10에서 설명된 바와 같이, 프로세서(도 4의 112)는 M x N 해상도의 깊이 이미지를 m x n 개의 서브 이미지들(즉, 패치들)로 분할한 후에, CGH 프로세싱(FFT 연산 등)을 수행할 수 있다. 또한, 프로세서(112)는 분할된 서브 이미지들 중에서 객체 데이터가 존재하는 ROI 서브 이미지들만을 선택하여 CGH 프로세싱을 수행할 수도 있다. 나아가서, 프로세서(112)는 ROI 서브 이미지들에 대해 먼저 제로 패딩을 완료한 후에 CGH 프로세싱을 수행할 수도 있다.As described in FIGS. 5 to 10, the processor (112 in FIG. 4) divides the depth image of M×N resolution into mxn sub-images (ie, patches), and then CGH processing (FFT operation, etc.) Can be done. Also, the processor 112 may perform CGH processing by selecting only ROI sub-images in which object data exists among the divided sub-images. Furthermore, the processor 112 may first complete zero padding on the ROI sub-images and then perform CGH processing.

도 11은 일 실시예에 따른 2단계(double stage) 푸리에 변환을 설명하기 위한 도면이다.11 is a diagram for explaining a double stage Fourier transform according to an embodiment.

도 11을 참고하면, 2단계(double stage) 푸리에 변환은, 관찰자의 망막 평면(13)에 맺힌 이미지(즉, 깊이 이미지)에 대하여 망막 평면(13)으로부터 관찰자의 아이 렌즈 평면(14)까지의 광파(light wave)의 전파(propagation)를 계산하기 위한 1차(primary) 푸리에 변환, 및 아이 렌즈 평면(14)으로부터 CGH 평면(또는 SLM 평면)(15)까지의 광파의 전파를 계산하기 위한 2차(secondary) 푸리에 변환을 수행하는 것을 의미한다.Referring to FIG. 11, a double stage Fourier transform is performed from the retinal plane 13 to the observer's eye lens plane 14 with respect to an image (ie, a depth image) formed on the observer's retinal plane 13. The primary Fourier transform for calculating the propagation of the light wave, and 2 for calculating the propagation of the light wave from the eye lens plane 14 to the CGH plane (or SLM plane) 15 It means performing a secondary Fourier transform.

앞서 설명된 바와 같이, CGH 프로세싱에서의 푸리에 변환은, 이미지의 프레넬 회절(Fresnel diffraction)에 의해 얻어지는 회절상(diffracted image)의 분포를 구하기 위한 연산으로서, GFT(Generalized Fresnel Transform) 또는 프레넬 변환(Fresnel Transform)에 해당하고, 이는 당해 기술분야의 통상의 기술자에게 자명하다. 또한, 본 실시예들에서 푸리에 변환의 용어는 푸리에 변환을 이용한 연산들인, 인버스 푸리에 변환, 고속 푸리에 변환(FFT), GFT, 프레넬 변환 등을 포함하는 용어일 수 있다.As described above, the Fourier transform in CGH processing is an operation for obtaining a distribution of a diffracted image obtained by Fresnel diffraction of an image, and is a Generalized Fresnel Transform (GFT) or Fresnel transform ( Fresnel Transform), which is obvious to a person skilled in the art. In addition, in the present embodiments, the term of the Fourier transform may be a term including an inverse Fourier transform, a fast Fourier transform (FFT), a GFT, and a Fresnel transform, which are operations using Fourier transform.

서로 다른 깊이 레이어들(L1, Lm 및 LN)의 깊이 이미지들 각각에서 결정된 ROI들(1101, 1102 및 1103)은 독립적으로 또는 병렬적으로 처리될 수 있다.ROIs 1101, 1102, and 1103 determined in each of the depth images of different depth layers L 1 , L m and L N may be processed independently or in parallel.

구체적으로 설명하면, 프로세서(도 4의 112)는 망막 평면(13) 상에 투영된 깊이 레이어 LN의 깊이 이미지의 ROI(1101)에 해당하는 서브 이미지(여기서, 서브 이미지는 제로 패딩된 서브 이미지를 의미할 수 있다)에 대하여, 망막 평면(13)으로부터 아이 렌즈 평면(14)까지의 광파의 전파를 계산하기 위한 1차 푸리에 변환을 수행한다. 그리고, 프로세서(112)는 1차 푸리에 변환의 수행 결과에 아이 렌즈 평면(14)의 페이즈 프로파일(phase profile)을 적용한(예를 들어, 곱셈) 후, 아이 렌즈 평면(14)으로부터 CGH 평면(또는 SLM 평면)(15)까지의 광파의 전파를 계산하기 위한 2차 푸리에 변환을 수행한다. 프로세서(112)는 2차 푸리에 변환의 수행 결과에 프로젝션 렌즈(projection lens)의 페이즈 프로파일을 적용한(예를 들어, 곱셈) 후, 적용 결과에 기초하여 깊이 이미지의 ROI(1101)의 패치 위치에 대응하는 CGH 평면(또는 SLM 평면)(15) 상의 패치 위치의 CGH 패치의 간섭 패턴(1111)을 획득한다. 프로세서(112)는 깊이 레이어 LM의 깊이 이미지의 ROI(1102)에 해당하는 서브 이미지와 깊이 레이어 L1의 깊이 이미지의 ROI(1103)에 해당하는 서브 이미지에 대해서도 동일한 2단계 푸리에 변환을 각각 수행함으로써, CGH 패치들의 간섭 패턴들(1112 및 1113)을 획득한다. 이때, 앞서 설명된 바와 같이, ROI들(1101, 1102 및 1103)에 대한 CGH 프로세싱은 프로세서(112) 내 서로 다른 프로세싱 코어들(또는 프로세싱 유닛들)에 의하여 독립적으로 또는 병렬적으로 처리될 수 있다.Specifically, the processor (112 in FIG. 4) is a sub-image corresponding to the ROI 1101 of the depth image of the depth layer L N projected on the retinal plane 13 (here, the sub-image is a zero-padded sub-image). May mean), a first-order Fourier transform for calculating the propagation of light waves from the retinal plane 13 to the eye lens plane 14 is performed. In addition, the processor 112 applies the phase profile of the eye lens plane 14 to the result of performing the first-order Fourier transform (eg, multiplication), and then the CGH plane from the eye lens plane 14 (or A quadratic Fourier transform is performed to calculate the propagation of the light wave to the SLM plane (15). The processor 112 applies the phase profile of the projection lens to the result of performing the second Fourier transform (e.g., multiplication), and then corresponds to the patch position of the ROI 1101 of the depth image based on the application result. The interference pattern 1111 of the CGH patch at the patch location on the CGH plane (or SLM plane) 15 is obtained. The processor 112 performs the same two-step Fourier transform on the sub-image corresponding to the ROI 1102 of the depth image of the depth layer L M and the sub-image corresponding to the ROI 1103 of the depth image of the depth layer L 1 , respectively. By doing so, interference patterns 1112 and 1113 of the CGH patches are obtained. In this case, as described above, the CGH processing for the ROIs 1101, 1102, and 1103 may be independently or parallelly processed by different processing cores (or processing units) in the processor 112. .

프로세서(112)는 모든 ROI들(1101, 1102 및 1103)에 대한 CGH 패치들의 간섭 패턴들(1111, 1112 및 1113)이 획득된 경우, 획득된 CGH 패치들의 간섭 패턴들(1111, 1112 및 1113)을 머지(merge)하여 CGH 평면(또는 SLM 평면)(15)의 전체 영역에서의 글로벌 CGH의 간섭 패턴을 획득함으로써, CGH를 생성한다. 이때, CGH 패치들의 간섭 패턴들(1111, 1112 및 1113)의 머지 과정에서 제로 패딩의 범위는 서로 ?후“? 스탬핑될 수 있다.When the interference patterns 1111, 1112, and 1113 of CGH patches for all ROIs 1101, 1102, and 1103 are obtained, the processor 112 performs interference patterns 1111, 1112, and 1113 of the acquired CGH patches. CGH is generated by merging the CGH plane (or SLM plane) 15 to obtain an interference pattern of the global CGH in the entire region. At this time, in the merge process of the interference patterns 1111, 1112 and 1113 of the CGH patches, the range of zero padding is? Can be stamped.

한편, 비록 도 11에서는 설명의 편의를 위하여 3개의 깊이 레이어들(L1, Lm 및 LN)에 대해서만 예시되었으나, 본 실시예들은 이에 제한되지 않고 다양한 개수의 깊이 레이어들 및 다양한 개수의 ROI들을 처리함으로써 CGH가 생성될 수 있다.On the other hand, although FIG. 11 illustrates only three depth layers (L 1 , L m and L N ) for convenience of description, the present embodiments are not limited thereto, and various numbers of depth layers and various numbers of ROIs CGH can be produced by processing them.

도 12는 다른 실시예에 따른 하이브리드(hybrid) 푸리에 변환을 설명하기 위한 도면이다.12 is a diagram illustrating a hybrid Fourier transform according to another embodiment.

도 12를 참고하면, 프로세서(도 4의 112)는 도 11의 2단계 푸리에 변환만을 이용하는 CGH 프로세싱 방식과는 달리, 하이브리드 푸리에 변환을 이용하여 CGH 패치의 간섭 패턴을 획득할 수 있다.Referring to FIG. 12, the processor (112 of FIG. 4) may acquire an interference pattern of a CGH patch using hybrid Fourier transform, unlike the CGH processing method using only the two-step Fourier transform of FIG. 11.

하이브리드 푸리에 변환은 2단계(double stage) 푸리에 변환 및 1단계(single stage) 푸리에 변환을 함께 수행하는 방식을 의미한다. 구체적으로, 하이브리드 푸리에 변환은, 임계 깊이(Threshold Depth)(1200)보다 큰 깊이 레이어의 깊이 이미지(즉, ROI 서브 이미지들)에 대해서는 1단계 푸리에 변환을 수행하고, 임계 깊이(1200)보다 작은 깊이 레이어의 깊이 이미지(즉, ROI 서브 이미지들)에 대해서는 2단계 푸리에 변환을 수행하는 것을 의미한다. 여기서, 임계 깊이(1200)보다 큰 깊이 레이어는 상대적으로 안구에 가까운 깊이의 깊이 레이어를 의미하고, 임계 깊이(1200)보다 작은 깊이 레이어는 상대적으로 SLM 평면(또는 CGH 평면)(15)에 가까운 깊이의 깊이 레이어를 의미한다.Hybrid Fourier transform refers to a method of performing a double stage Fourier transform and a single stage Fourier transform together. Specifically, the hybrid Fourier transform performs a one-step Fourier transform on a depth image (ie, ROI sub-images) of a depth layer greater than a threshold depth 1200, and a depth smaller than the threshold depth 1200 This means performing a two-step Fourier transform on the depth image of the layer (ie, ROI sub-images). Here, the depth layer greater than the critical depth 1200 means a depth layer having a depth relatively close to the eyeball, and the depth layer smaller than the critical depth 1200 is a depth relatively close to the SLM plane (or CGH plane) 15 Means the depth of the layer.

임계 깊이(1200)는 사용자 설정, 깊이 레이어들의 개수, 3D 홀로그래픽 이미지 처리 장치(100)의 성능 등 다양한 요소들에 의해 결정되고 변경될 수 있다. 또는, 프로세서(112)는 임계 깊이(1200)를 이하의 도 14a에서 설명될 임계 깊이 조건에 기초하여 결정할 수도 있다.The critical depth 1200 may be determined and changed according to various factors, such as a user setting, the number of depth layers, and the performance of the 3D holographic image processing apparatus 100. Alternatively, the processor 112 may determine the critical depth 1200 based on the critical depth condition described in FIG. 14A below.

1단계 푸리에 변환에 대해서는 이하 해당 도면들을 참고하여 설명하도록 한다.The first stage Fourier transform will be described below with reference to the corresponding drawings.

도 13a는 일 실시예에 따른 1단계 푸리에 변환을 설명하기 위한 도면이다.13A is a diagram illustrating a one-step Fourier transform according to an exemplary embodiment.

도 13a를 참고하면, 망막 평면 F(x2, y2) (1301)으로부터 아이 렌즈 평면 G(u,v) (1302)까지, 아이 렌즈 평면(1302)으로부터 SLM 평면(또는 CGH 평면) H(x1, y1) (1303)까지 두 번의 푸리에 변환을 수행하는 2단계 푸리에 변환과 달리, 1단계 푸리에 변환은 어느 깊이 레이어 Lt(ut, vt) (1300)로부터 직접 SLM 평면(또는 CGH 평면)(1303)까지 한 번의 푸리에 변환만으로 CGH 패치의 간섭 패턴을 획득하는 방식을 의미한다.13A, from the retinal plane F(x 2 , y 2 ) (1301) to the eye lens plane G(u,v) (1302), from the eye lens plane 1302 to the SLM plane (or CGH plane) H( Unlike the two-stage Fourier transform, which performs two Fourier transforms up to x 1 , y 1 ) (1303), the first-stage Fourier transform directly from any depth layer L t (u t , v t ) (1300) to the SLM plane (or CGH plane) 1303 refers to a method of obtaining an interference pattern of a CGH patch with only one Fourier transform.

CGH 간섭 패턴은 프레넬 변환(푸리에 변환)에 기반하여 생성되므로, 이미지의 회절 범위가 중첩되는 부분에 대해서만 계산될 수 있다. 따라서, 도 3 (또는 도 5의 501)에서 설명된 m x n 분할 없는(without m x n subdivision) 깊이 이미지는 이미지의 크기가 크기 때문에 회절 중첩이 충분히 일어나게 하기 위해서 SLM 평면(또는 CGH 평면)(1303)으로부터 깊이 레이어가 상당히 멀어야만, 깊이 레이어로부터 SLM 평면(또는 CGH 평면)(1303)까지의 전파(propagation)를 계산할 수 있다. 하지만, 앞서 설명된 m x n 분할된(with m x n subdivision) 깊이 이미지(예를 들어, 도 5의 502)의 서브 이미지들과 같이, 작은 크기의 이미지에 대해서는 SLM 평면(또는 CGH 평면)(1303)으로부터 가까운 거리에서도 직접 CGH 간섭 패턴을 계산하는 것이 가능해진다. 본 실시예들에서는 이와 같은 원리를 이용한 방식을 1단계 푸리에 변환이라는 용어로 정의한다.Since the CGH interference pattern is generated based on the Fresnel transform (Fourier transform), it can be calculated only for the part where the diffraction range of the image overlaps. Therefore, the depth image without mxn subdivision described in FIG. 3 (or 501 in FIG. 5) is a depth image from the SLM plane (or CGH plane) 1303 in order to allow sufficient diffraction overlap due to the large size of the image. The layer must be quite far in order to calculate the propagation from the depth layer to the SLM plane (or CGH plane) 1303. However, like the sub-images of the mxn subdivision (with mxn subdivision) depth image (e.g., 502 in FIG. 5) described above, for an image of a small size, it is close from the SLM plane (or CGH plane) 1303 It becomes possible to calculate the CGH interference pattern directly even at distance. In the present embodiments, a method using this principle is defined in terms of a one-step Fourier transform.

앞서 도 12에서 설명된 하이브리드 푸리에 변환은 임계 깊이를 기준으로 이와 같은 1단계 푸리에 변환과, 2단계 푸리에 변환을 병용하는 방식을 의미한다.The hybrid Fourier transform described above in FIG. 12 refers to a method of using the first-stage Fourier transform and the second-stage Fourier transform together based on a critical depth.

프로세서(도 4의 112)는 ROI의 결정이 완료된 경우, 2단계 푸리에 변환을 이용한 CGH 프로세싱, 하이브리드 푸리에 변환을 이용한 CGH 프로세싱, 및 1단계 푸리에 변환을 이용한 CGH 프로세싱 중 적어도 어느 하나를 이용하여 ROI의 서브 이미지에 대해 CGH 프로세싱을 수행할 수 있다.When the determination of the ROI is completed, the processor (112 in FIG. 4) uses at least one of CGH processing using a two-step Fourier transform, CGH processing using a hybrid Fourier transform, and a CGH processing using a one-step Fourier transform to determine the ROI. CGH processing can be performed on sub-images.

도 13b는 일 실시예에 따른 3D 공간 상의 스페리컬 캐리어 웨이브(spherical carrier wave)를 설명하기 위한 도면이다.13B is a diagram for describing a spherical carrier wave in 3D space according to an embodiment.

도 13b를 참고하면, 스페리컬 캐리어 웨이브(spherical carrier wave)는 전파를 계산하기 위한 푸리에 변환(FFT)의 수행 과정에서의 상의 크기와 위치의 변화를 의미한다. 1단계(single) 푸리에 변환에서는

Figure pat00010
만큼 전파된 스페리컬 캐리어 웨이브의 정보가 생략되므로, 이미지가 안구에서의 거리만큼 확대되지 않고 작게 생성될 수 있다. 따라서, 스페리컬 캐리어 웨이브의 영향에 관하여 컨볼루션(convolution)을 계산할 필요가 있다.Referring to FIG. 13B, a spherical carrier wave refers to a change in the size and position of an image in a process of performing a Fourier transform (FFT) for calculating a radio wave. In a single Fourier transform
Figure pat00010
Since the information on the spherical carrier wave propagated by is omitted, the image may be generated as small as the distance from the eyeball without being enlarged. Therefore, it is necessary to calculate a convolution for the influence of the spherical carrier wave.

도 13c는 생략된 스페리컬 캐리어 웨이브의 영향을 고려하지 않았을 경우에 대한 시뮬레이션 결과를 설명하기 위한 도면이다.13C is a diagram for explaining a simulation result when the effect of the omitted spherical carrier wave is not considered.

도 13c를 참고하면,

Figure pat00011
만큼 전파된 스페리컬 캐리어 웨이브를 고려하지 않고 CGH 간섭 패턴을 생성한 결과(1330)가 도시되어 있다. 이미지가 완전한 크기로 확대되지 않아 서브 이미지보다 CGH 패치(SLM 패치)의 크기가 작게 생성된 것을 알 수 있다. 이에 따라, CGH 패치들의 간섭 패턴들(SLM 패치들의 간섭 패턴들)이 스탬핑될지라도 CGH 패치들(SLM 패치들)의 크기가 작으므로 CGH 패치들(SLM 패치들) 간의 간격이 벌어지게 된다.13C,
Figure pat00011
A result 1330 of generating a CGH interference pattern without taking into account the spherical carrier wave propagated by the same is shown. It can be seen that the size of the CGH patch (SLM patch) is smaller than the sub-image because the image is not enlarged to a full size. Accordingly, even though the interference patterns of the CGH patches (interference patterns of the SLM patches) are stamped, since the size of the CGH patches (SLM patches) is small, the spacing between the CGH patches (SLM patches) is widened.

깊이 이미지들 각각은 서브 이미지들로 분할되어 계산되고, 서브 이미지들(또는 ROI 서브 이미지들)은 리니어 캐리어 웨이브(linear carrier wave)에 의해서가 아닌 해당 서브 이미지의 위치에 의한 스탬핑을 통해서 CGH 패치(SLM 패치)의 위치가 결정되기 때문에, 스페리컬 캐리어 웨이브에서 정가운데 부분의 페이즈(phase)를 서브 이미지 크기만큼 잘라서 모든 서브 이미지들에 곱해준다. 이와 같은 계산을 통해서 이미지 쉬프트(shift)를 발생시키는 리니어 캐리어 웨이브 요소를 제외하고 스페리컬 캐리어 웨이브 요소만으로 해당 이미지의 크기를 정확히 확대할 수 있다.Each of the depth images is divided into sub-images and calculated, and the sub-images (or ROI sub-images) are stamped based on the position of the corresponding sub-image, not by a linear carrier wave. Since the location of the SLM patch) is determined, the phase of the center part of the spherical carrier wave is cut by the size of the sub image and multiplied by all sub images. Through such calculation, the size of a corresponding image can be accurately enlarged with only the spherical carrier wave element excluding the linear carrier wave element that causes the image shift.

도 13d 및 도 13e는 일 실시예에 따른 깊이 레이어와 SLM 평면(또는 CGH 평면) 간의 샘플링 그리드 매칭(sampling grid matching)을 설명하기 위한 도면들이다.13D and 13E are diagrams for explaining sampling grid matching between a depth layer and an SLM plane (or CGH plane) according to an embodiment.

도 13d를 참고하면, 1단계 푸리에 변환에 의해 깊이 레이어에서 SLM 평면(또는 CGH 평면)으로 이미지를 전파하여 CGH 패치를 획득하면, 회절 현상으로 인하여 CGH 패치의 크기가 커지게 된다. 이때, 커진 CGH 패치를 그대로 SLM 평면(CGH 평면에) 스탬핑한다면 크기가 일치하지 않게 되므로, 깊이 레이어와 SLM 평면(또는 CGH 평면) 간의 샘플링 그리드 매칭(sampling grid matching)이 필요하다.Referring to FIG. 13D, when a CGH patch is obtained by propagating an image from a depth layer to an SLM plane (or CGH plane) by a first step Fourier transform, the size of the CGH patch increases due to diffraction. At this time, if the enlarged CGH patch is stamped on the SLM plane (on the CGH plane) as it is, the size does not match, so sampling grid matching between the depth layer and the SLM plane (or CGH plane) is required.

도 13d에 도시된 수학식들을 참고하면, SLM 평면(또는 CGH 평면)의 패치 크기는 수학식 4와 같이 표현될 수 있고, SLM 평면(또는 CGH 평면)의 전체 크기는 수학식 5와 같이 표현될 수 있다. 또한, 깊이 레이어의 깊이 이미지의 전체 크기는 수학식 6과 같이 표현될 수 있다.Referring to the equations shown in FIG. 13D, the patch size of the SLM plane (or CGH plane) may be expressed as Equation 4, and the total size of the SLM plane (or CGH plane) may be expressed as Equation 5. I can. In addition, the total size of the depth image of the depth layer may be expressed as Equation (6).

Figure pat00012
Figure pat00012

(L: 패치 크기, λ: 파장, dk: 평면들 사이의 거리, Δ: 픽셀 크기)(L: patch size, λ: wavelength, d k : distance between planes, Δ: pixel size)

Figure pat00013
Figure pat00013

(T: 전체 크기, N: 해상도)(T: full size, N: resolution)

Figure pat00014
Figure pat00014

(F: 초점거리, Deye: 아이 렌즈와 망막 사이의 거리)(F: focal length, D eye : distance between eye lens and retina)

도 13e를 참고하면, 생성된 CGH 패치의 샘플링 그리드는 깊이 레이어의 거리에 따른 회절 중첩 범위가 달라 각 깊이 레이어마다 다르고, 또한 SLM 평면(또는 CGH 평면)의 크기와 다르기 때문에, SLM 평면(또는 CGH 평면)의 샘플링 그리드와의 매칭이 필요하다. 따라서, 프로세서(112)는 생성된 CGH 패치를 SLM 평면(또는 CGH 평면)의 샘플링 그리드에 맞는 크기(즉, 해상도)로 인터폴레이션한 후에 SLM 평면의 크기에 맞춰 가장자리를 잘라내는 처리를 수행한다. Referring to FIG. 13E, the sampling grid of the generated CGH patch differs in the diffraction overlap range according to the distance of the depth layer and is different for each depth layer, and also differs from the size of the SLM plane (or CGH plane), so that the SLM plane (or CGH plane) It is necessary to match the sampling grid of the plane). Accordingly, the processor 112 interpolates the generated CGH patch to a size (ie, resolution) suitable for the sampling grid of the SLM plane (or CGH plane) and then cuts the edge according to the size of the SLM plane.

즉, 프로세서(112)는 ROI에 대응하는 서브 이미지에 대해 구면파(spherical wave)의 컨볼루션을 수행하고, ROI에 대응하는 서브 이미지의 가장자리에 소정 범위로 제로 패딩을 수행하고, 제로 패딩된 서브 이미지에 대하여 1단계 푸리에 변환을 수행함으로써 간섭 패턴을 획득하고, 간섭 패턴과 공간 광 변조기(SLM)의 샘플링 그리드를 매칭시키기 위한 인터폴레이션을 수행함으로써 CGH 패치의 간섭 패턴들을 획득한다.That is, the processor 112 performs convolution of a spherical wave on the sub-image corresponding to the ROI, performs zero padding on the edge of the sub-image corresponding to the ROI, and performs zero padding in the sub-image. Interpolation for matching the interference pattern and the sampling grid of the spatial light modulator (SLM) is performed to obtain an interference pattern by performing a one-step Fourier transform on the CGH patch to obtain interference patterns of the CGH patch.

도 14a 및 14b는 일 실시예에 따른 하이브리드 푸리에 변환을 수행할 때 임계 깊이를 결정하는 방법을 설명하기 위한 도면들이다.14A and 14B are diagrams for explaining a method of determining a critical depth when performing hybrid Fourier transform according to an exemplary embodiment.

도 14a를 참고하면, 1단계 푸리에 변환은 앞서 설명된 바와 같이, 회절 중첩 범위가 SLM 평면(또는 CGH 평면)의 SLM 패치(CGH 패치)보다 클 경우에 적용이 가능할 수 있다. 즉, SLM 평면(또는 CGH 평면)과 깊이 레이어 사이의 거리가 어느 정도 떨어져 있어야만 회절 중첩 범위가 늘어날 수 있기 때문에, 1단계 푸리에 변환의 적용이 가능할 수 있다. 따라서, 프로세서(도 4의 112)는 하이브리드 푸리에 변환을 수행할 때, SLM 평면(또는 CGH 평면)과 깊이 레이어 사이가 좁은 깊이 레이어에 대해서는 2단계 푸리에 변환을 수행하고, SLM 평면(또는 CGH 평면)과 깊이 레이어 사이가 넓은 깊이 레이어에 대해서는 1단계 푸리에 변환을 수행한다. SLM 평면(또는 CGH 평면)과 깊이 레이어 사이의 좁고 넓음을 판단하기 위하여, 임계 깊이가 결정될 수 있다.Referring to FIG. 14A, as described above, the first-stage Fourier transform may be applied when the diffraction overlap range is larger than the SLM patch (CGH patch) of the SLM plane (or CGH plane). That is, since the diffraction overlap range can be increased only when the distance between the SLM plane (or the CGH plane) and the depth layer is some distance apart, the first-stage Fourier transform may be applied. Therefore, when performing the hybrid Fourier transform, the processor (112 in FIG. 4) performs a two-step Fourier transform for a depth layer that is narrow between the SLM plane (or CGH plane) and the depth layer, and performs the SLM plane (or CGH plane). For a depth layer having a wide distance between the and depth layers, a first-stage Fourier transform is performed. In order to determine whether the SLM plane (or CGH plane) and the depth layer are narrow and wide, the critical depth may be determined.

회절 중첩 범위가 SLM 평면의 크기보다 크다는 것은, 인터폴레이션 이전의 SLM 패치(CGH 패치)에 대한 샘플링 인터벌(sampling interval)의 크기가 SLM 평면에 대한 샘플링 인터벌의 크기보다 큰 것을 의미한다. 따라서, 도 14a에 도시된 수학식들을 이용하여, SLM 평면에서 깊이 레이어까지의 거리에 따라 SLM 패치의 샘플링 인터벌의 크기가 어떻게 변화하는지를 알 수 있다. 수학식들을 그래프로 표현하면, 도 14b에 도시된 바와 같이 깊이 레이어가 멀어지면서 SLM 패치(CGH 패치)의 샘플링 인터벌이 커지는 것을 알 수 있고, SLM 평면의 샘플링 인터벌보다 커지는 지점에서부터 1단계 푸리에 변환을 수행할 수 있다는 점을 알 수 있다. 따라서, 임계 깊이는 도 14a에서 설명된 임계 깊이 조건(1350)에 기초하여 결정될 수 있다.When the diffraction overlap range is larger than the size of the SLM plane, it means that the size of the sampling interval for the SLM patch (CGH patch) before interpolation is larger than the size of the sampling interval for the SLM plane. Accordingly, it can be seen how the size of the sampling interval of the SLM patch changes according to the distance from the SLM plane to the depth layer using the equations shown in FIG. 14A. When the equations are expressed as a graph, it can be seen that the sampling interval of the SLM patch (CGH patch) increases as the depth layer increases as shown in FIG. 14B, and a first-stage Fourier transform is performed from a point greater than the sampling interval of the SLM plane. You can see that you can do it. Accordingly, the critical depth may be determined based on the critical depth condition 1350 described in FIG. 14A.

도 15는 일 실시예에 따른 깊이 이미지를 서브 이미지들로 분할하여 CGH 프로세싱을 수행하는 방법의 흐름도이다. 도 15를 참고하면, CGH 프로세싱 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 15의 방법에도 적용될 수 있다.15 is a flowchart of a method of performing CGH processing by dividing a depth image into sub-images according to an exemplary embodiment. Referring to FIG. 15, since the CGH processing method is related to the embodiments described in the above-described drawings, the contents described in the previous drawings may be applied to the method of FIG. 15 even if omitted below.

1501 단계에서, 프로세서(도 4의 112)는 홀로그래픽 이미지를 생성하고자 하는 3D 객체에 대한 2D 인텐시티 이미지들 및 깊이 데이터를 리드(read)한다.In step 1501, the processor (112 in FIG. 4) reads 2D intensity images and depth data for a 3D object to generate a holographic image.

1502 단계에서, 프로세서(112)는 3D 객체의 깊이 데이터로부터 획득된 깊이 레이어들의 깊이 이미지들을 분할하기 위한 패치들의 개수(예를 들어, m x n개)를 설정한다.In step 1502, the processor 112 sets the number of patches (eg, m x n) for dividing depth images of depth layers obtained from depth data of the 3D object.

1503 단계에서, 프로세서(112)는 깊이 이미지들을 설정된 개수(m x n개)의 CGH 패치들로 분할함으로써, 패치들에 대응하는 서브 이미지들을 획득한다.In step 1503, the processor 112 obtains sub-images corresponding to the patches by dividing the depth images into a set number (m x n) of CGH patches.

1504 단계에서, 프로세서(112)는 각 깊이 이미지에 대하여, 획득된 서브 이미지들 중 ROI에 해당하는 서브 이미지를 결정한다. 예를 들어, ROI는 ROI 1부터 ROI k가 결정될 수 있다. (k는 자연수)In step 1504, the processor 112 determines a sub-image corresponding to the ROI among the acquired sub-images for each depth image. For example, ROI k may be determined from ROI 1. (k is a natural number)

1505 단계에서, 프로세서(112)는 ROI 1에 대응하는 서브 이미지에 대해 제로 패딩을 수행한다.In step 1505, the processor 112 performs zero padding on the sub-image corresponding to ROI 1.

1506 단계에서, 프로세서(112)는 제로 패딩된 서브 이미지에 대해 2단계 푸리에 변환(FFT)을 수행하고, 2단계 푸리에 변환의 수행 결과에 기초한 ROI 1에 대응하는 CGH 패치의 간섭 패턴을 획득한다.In step 1506, the processor 112 performs a two-step Fourier transform (FFT) on the zero-padded sub-image, and acquires an interference pattern of the CGH patch corresponding to ROI 1 based on the result of performing the two-step Fourier transform.

1507 단계에서, 프로세서(112)는 획득된 CGH 패치의 간섭 패턴을 SLM 평면(또는 CGH 평면)에 스탬핑한다.In step 1507, the processor 112 stamps the obtained interference pattern of the CGH patch on the SLM plane (or CGH plane).

1508 단계 내지 1510 단계에서, 프로세서(112)는 ROI 2에 대응하는 서브 이미지에 대해 1505 단계 내지 1507 단계에 대응되는 CGH 프로세싱을 수행함으로써 ROI 2에 대응하는 CGH 패치의 간섭 패턴을 SLM 평면에 스탬핑한다.In steps 1508 to 1510, the processor 112 stamps the interference pattern of the CGH patch corresponding to ROI 2 on the SLM plane by performing CGH processing corresponding to steps 1505 to 1507 on the sub-image corresponding to ROI 2. .

1511 단계 내지 1513 단계에서, 프로세서(112)는 ROI k에 대응하는 서브 이미지에 대해 1505 단계 내지 1507 단계에 대응되는 CGH 프로세싱을 수행함으로써 ROI k에 대응하는 CGH 패치의 간섭 패턴을 SLM 평면에 스탬핑한다.In steps 1511 to 1513, the processor 112 stamps the interference pattern of the CGH patch corresponding to ROI k on the SLM plane by performing CGH processing corresponding to steps 1505 to 1507 on the sub-image corresponding to ROI k. .

한편, 프로세서(112)는 1505 단계 내지 1507 단계의 처리, 1508 단계 내지 1510 단계의 처리 및 1511 단계 내지 1513 단계의 처리를 독립적 또는 병렬적으로 수행할 수 있다.Meanwhile, the processor 112 may independently or in parallel perform the processing of steps 1505 to 1507, the processing of steps 1508 to 1510, and the processing of steps 1511 to 1513.

1514 단계에서, 프로세서(112)는 스탬핑된 CGH 패치들의 간섭 패턴들을 머지하여 SLM 평면(또는 CGH 평면)의 전체 영역에서의 글로벌 CGH의 간섭 패턴을 획득함으로써, CGH를 생성한다.In step 1514, the processor 112 merges the interference patterns of the stamped CGH patches to obtain an interference pattern of the global CGH in the entire area of the SLM plane (or CGH plane), thereby generating CGH.

도 16a 및 도 16b는 일 실시예에 따른 깊이 이미지를 서브 이미지들로 분할하여 하이브리드 푸리에 변환에 기반한 CGH 프로세싱을 수행하는 방법의 흐름도이다. 도 16a 및 도 16b를 참고하면, CGH 프로세싱 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 16a 및 도 16b의 방법에도 적용될 수 있다.16A and 16B are flowcharts of a method of performing CGH processing based on hybrid Fourier transform by dividing a depth image into sub-images according to an embodiment. Referring to FIGS. 16A and 16B, the CGH processing method is related to the embodiments described in the above-described drawings, and thus, although omitted, the contents described in the previous drawings are shown in FIGS. 16A and 16B. It can also be applied to methods.

1601 단계에서, 프로세서(도 4의 112)는 홀로그래픽 이미지를 생성하고자 하는 3D 객체에 대한 2D 인텐시티 이미지들 및 깊이 데이터를 리드(read)한다.In step 1601, the processor (112 in FIG. 4) reads 2D intensity images and depth data for a 3D object to generate a holographic image.

1602 단계에서, 프로세서(112)는 3D 객체의 깊이 데이터로부터 획득된 깊이 레이어들의 깊이 이미지들을 분할하기 위한 패치들의 개수(예를 들어, m x n개)를 설정한다.In step 1602, the processor 112 sets the number of patches (eg, m x n) for dividing depth images of depth layers obtained from depth data of the 3D object.

1603 단계에서, 프로세서(112)는 깊이 이미지들을 설정된 개수(m x n개)의 CGH 패치들로 분할함으로써, CGH 패치들에 대응하는 서브 이미지들을 획득한다.In step 1603, the processor 112 obtains sub-images corresponding to the CGH patches by dividing the depth images into a set number (m x n) of CGH patches.

1604 단계에서, 프로세서(112)는 각 깊이 이미지에 대하여, 획득된 서브 이미지들 중 ROI에 해당하는 서브 이미지를 결정한다.In step 1604, the processor 112 determines a sub-image corresponding to the ROI among the acquired sub-images for each depth image.

1605 단계에서, 프로세서(112)는 각 깊이 이미지의 깊이 레이어가 임계 깊이를 기준으로 SLM 평면(또는 CGH 평면)으로부터 멀리 있는지(far) 또는 가까이 있는지(near) 여부를 판단한다. 만약, 멀리 있는 것으로 판단된 경우(far), 프로세서(112)는 1606 단계 및 1611 단계를 수행한다. 그러나, 가까이 있는 것으로 판단된 경우(near), 프로세서(112)는 1616 단계 및 1619 단계를 수행한다.In step 1605, the processor 112 determines whether the depth layer of each depth image is far or near from the SLM plane (or CGH plane) based on the critical depth. If it is determined that it is far away (far), the processor 112 performs steps 1606 and 1611. However, if it is determined that it is near, the processor 112 performs steps 1616 and 1619.

1606 단계에서, 프로세서(112)는 ROI 1에 대응하는 서브 이미지에 대해 스페리컬 웨이브의 컨볼루션을 수행한다.In step 1606, the processor 112 performs convolution of the spherical wave on the sub-image corresponding to ROI 1.

1607 단계에서, 프로세서(112)는 컨볼루션된 서브 이미지에 대해 제로 패딩을 수행한다.In step 1607, the processor 112 performs zero padding on the convolved sub-image.

1608 단계에서, 프로세서(112)는 제로 패딩된 서브 이미지에 대해 1단계 푸리에 변환(FFT)을 수행한다.In step 1608, the processor 112 performs a one-step Fourier transform (FFT) on the zero-padded sub-images.

1609 단계에서, 프로세서(112)는 1단계 푸리에 변환(FFT)의 수행 결과에 대해 인터폴레이션을 수행함으로써 샘플링 그리드를 매칭한다.In step 1609, the processor 112 matches the sampling grid by performing interpolation on the result of performing the first-step Fourier transform (FFT).

1610 단계에서, 프로세서(112)는 그리드-매칭된 CGH 패치의 간섭 패턴을 SLM 평면(또는 CGH 평면)에 스탬핑한다.In step 1610, the processor 112 stamps the interference pattern of the grid-matched CGH patch onto the SLM plane (or CGH plane).

1611 단계 내지 1615 단계에서, 프로세서(112)는 ROI j에 대응하는 서브 이미지에 대해 1606 단계 내지 1610 단계에 대응되는 CGH 프로세싱을 수행함으로써 ROI r에 대응하는 CGH 패치의 간섭 패턴을 SLM 평면에 스탬핑한다. (j는 자연수)In steps 1611 to 1615, the processor 112 stamps the interference pattern of the CGH patch corresponding to ROI r on the SLM plane by performing CGH processing corresponding to steps 1606 to 1610 on the sub-image corresponding to ROI j. . (j is a natural number)

1616 단계에서, 프로세서(112)는 ROI j+1에 대응하는 서브 이미지에 대해 제로 패딩을 수행한다.In step 1616, the processor 112 performs zero padding on the sub-image corresponding to ROI j+1.

1617 단계에서, 프로세서(112)는 제로 패딩된 서브 이미지에 대해 2단계 푸리에 변환(FFT)을 수행하고, 2단계 푸리에 변환의 수행 결과에 기초한 ROI j+1에 대응하는 CGH 패치의 간섭 패턴을 획득한다.In step 1617, the processor 112 performs a two-step Fourier transform (FFT) on the zero-padded sub-image, and acquires an interference pattern of the CGH patch corresponding to ROI j+1 based on the result of performing the two-step Fourier transform. do.

1618 단계에서, 프로세서(112)는 획득된 CGH 패치의 간섭 패턴을 SLM 평면(또는 CGH 평면)에 스탬핑한다.In step 1618, the processor 112 stamps the interference pattern of the obtained CGH patch on the SLM plane (or CGH plane).

1619 단계 내지 1621 단계에서, 프로세서(112)는 ROI k에 대응하는 서브 이미지에 대해 1616 단계 내지 1618 단계에 대응되는 CGH 프로세싱을 수행함으로써 ROI k에 대응하는 CGH 패치의 간섭 패턴을 SLM 평면에 스탬핑한다.In steps 1619 to 1621, the processor 112 stamps the interference pattern of the CGH patch corresponding to ROI k on the SLM plane by performing CGH processing corresponding to steps 1616 to 1618 on the sub-image corresponding to ROI k. .

한편, 프로세서(112)는 1606 단계 내지 1610 단계의 처리, 1611 단계 내지 1615 단계의 처리, 1616 단계 내지 1618 단계의 처리 및 1619 단계 내지 1621 단계의 처리를 독립적 또는 병렬적으로 수행할 수 있다.Meanwhile, the processor 112 may independently or in parallel perform the processing of steps 1606 to 1610, the processing of steps 1611 to 1615, the processing of steps 1616 to 1618, and the processing of steps 1619 to 1621.

1622 단계에서, 프로세서(112)는 스탬핑된 CGH 패치들의 간섭 패턴들을 머지하여 SLM 평면(또는 CGH 평면)의 전체 영역에서의 글로벌 CGH의 간섭 패턴을 획득함으로써, CGH를 생성한다.In step 1622, the processor 112 merges the interference patterns of the stamped CGH patches to obtain the interference pattern of the global CGH in the entire area of the SLM plane (or CGH plane), thereby generating CGH.

도 17은 일 실시예에 따른 3D 홀로그래픽 이미지를 처리하는 방법의 흐름도이다. 도 17을 참고하면, 3D 홀로그래픽 이미지 처리 방법은 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 17의 방법에도 적용될 수 있다.17 is a flowchart of a method of processing a 3D holographic image according to an exemplary embodiment. Referring to FIG. 17, since the 3D holographic image processing method is related to the embodiments described in the drawings described above, the contents described in the drawings may be applied to the method of FIG. 17 even if omitted below. I can.

1701 단계에서, 프로세서(112)는 3D 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득한다.In step 1701, the processor 112 acquires a plurality of depth images of a predetermined resolution for a preset number of depth layers from depth data of the 3D object.

1702 단계에서, 프로세서(112)는 깊이 이미지들 각각을 CGH 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할한다.In step 1702, the processor 112 divides each of the depth images into a predetermined number of sub-images, corresponding to a processing unit for generating interference patterns of CGH patches in the CGH plane.

1703 단계에서, 프로세서(112)는 서브 이미지 단위로 서브 이미지들 각각에 포함된 객체 데이터에 대한 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행함으로써 서브 이미지들 각각에 대응하는 CGH 패치들의 간섭 패턴들을 획득한다.In step 1703, the processor 112 performs Fourier transform for calculating an interference pattern in the CGH plane for the object data included in each of the sub-images in units of sub-images, thereby interfering with the CGH patches corresponding to each of the sub-images. Acquire patterns.

1704 단계에서, 프로세서(112)는 획득된 CGH 패치들의 간섭 패턴들을 이용하여 3D 객체에 대한 CGH를 생성한다.In step 1704, the processor 112 generates a CGH for a 3D object using interference patterns of the acquired CGH patches.

도 18은 일 실시예에 따라 분할되지 않은 깊이 이미지를 이용하는 경우(Global method)와 분할된 깊이 이미지를 이용하는 경우(Local method)에 대한 연산 복잡도들을 비교하기 위한 도면이다. 도 18을 참고하면, 이미지 해상도를 증가시키면서 Global method와 Local method의 연산 복잡도를 시뮬레이션한 그래프이다. 각 그래프는 깊이 레이어들의 개수(즉, depth level)를 다르게 설정하였을 때의 결과들이다. 깊이 레이어들의 개수가 많을수록 그리고 이미지 해상도가 높을수록, 상대적으로 Local method의 연산 효율이 높아지는 것을 알 수 있다. 여기서, 2FFT는 2단계 푸리에 변환을 지칭하고, 1FFT는 1단계 푸리에 변환을 지칭한다.18 is a diagram for comparing computational complexity between a case of using an undivided depth image (Global method) and a case of using a divided depth image (Local method) according to an exemplary embodiment. Referring to FIG. 18, it is a graph simulating the computational complexity of the global method and the local method while increasing the image resolution. Each graph is results when the number of depth layers (ie, depth level) is set differently. It can be seen that the higher the number of depth layers and the higher the image resolution, the higher the calculation efficiency of the Local method is relatively. Here, 2FFT refers to a two-stage Fourier transform, and 1FFT refers to a first-stage Fourier transform.

도 19는 일 실시예에 따라 Global method와 local method의 2FFT 계산 시간을 깊이 레이어들의 개수에 따라 시뮬레이션한 결과이다. 도 19를 참고하면, Global method는 깊이 레이어들의 개수가 증가하면서 계산 시간이 크게 증가하지만 Local method의 경우 비교적 큰 변화가 일어나지 않는다. 또한, Local method는 Global method에 비하여, 계산 시간이 상당히 감소한 것을 알 수 있다.19 is a simulation result of 2FFT calculation times of a global method and a local method according to the number of depth layers according to an embodiment. Referring to FIG. 19, in the case of the global method, as the number of depth layers increases, the calculation time increases significantly. Also, it can be seen that the calculation time for the local method is considerably reduced compared to the global method.

도 20은 일 실시예에 따라 깊이 레이어들의 개수를 변화시키면서 임계 깊이를 계산한 결과의 그래프이다. 도 20을 참고하면, 선(2000)은 임계 깊이를 나타낸다. 임계 깊이는 깊이 레이어들의 개수에 의존됨을 알 수 있다. 선(2000)을 기준으로 2단계 푸리에 변환을 수행할 깊이 레이어와 1단계 푸리에 변환을 수행할 깊이 레이어가 구별될 수 있다.20 is a graph of a result of calculating a critical depth while changing the number of depth layers according to an exemplary embodiment. Referring to FIG. 20, a line 2000 represents a critical depth. It can be seen that the critical depth depends on the number of depth layers. Based on the line 2000, a depth layer for performing a second-step Fourier transform and a depth layer for performing a first-step Fourier transform may be distinguished.

도 21은 일 실시예에 따라 다양한 푸리에 변환 방식들 별로 깊이 레이어의 개수에 따른 FFT 계산 시간을 비교한 그래프이다. 도 21을 참고하면, Local method가 Global method에 비해 상당히 빠른 것을 알 수 있고, 하이브리드 푸리에 변환을 수행하는 Local method(Local Hybrid)는 2단계 푸리에 변환만을 수행하는 Local method(Local 2FFT)에 비해 더 빠른 것도 확인 할 수 있다. 주어진 조건하에서 깊이 레이어들의 개수가 256개인 경우에는 Global method에 비해 Local 2FFT가 약 30배 이상, Local hybrid가 약 36배 이상 빠르다는 점이 시뮬레이션됨을 알 수 있다.21 is a graph comparing FFT calculation times according to the number of depth layers for various Fourier transform methods according to an embodiment. Referring to FIG. 21, it can be seen that the Local method is significantly faster than the Global method, and the Local method (Local Hybrid) performing hybrid Fourier transform is faster than the Local method (Local 2FFT) performing only two-step Fourier transform. You can also check. It can be seen that, under the given condition, when the number of depth layers is 256, the fact that Local 2FFT is about 30 times faster than the Global method and Local hybrid is about 36 times faster is simulated.

한편, 상술한 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예들에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the above-described embodiments can be written as a program that can be executed on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable recording medium. In addition, the structure of data used in the above-described embodiments may be recorded on a computer-readable recording medium through various means. The computer-readable recording medium includes a storage medium such as a magnetic storage medium (for example, a ROM, a floppy disk, a hard disk, etc.) and an optical reading medium (for example, a CD-ROM, a DVD, etc.).

본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예가 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예에 포함된 것으로 해석되어야 할 것이다.Those of ordinary skill in the technical field related to the present embodiment will appreciate that the embodiment may be implemented in a modified form without departing from the essential characteristics of the above-described description. Therefore, the disclosed embodiments should be considered from an illustrative point of view rather than a limiting point of view. The scope of the rights is shown in the claims rather than the above description, and all differences within the scope equivalent thereto should be construed as being included in the present embodiment.

Claims (27)

3차원 홀로그래픽 이미지를 처리하는 방법에 있어서,
3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하는 단계;
상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하는 단계;
서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행함으로써 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계; 및
상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성하는 단계를 포함하는, 방법.
In the method of processing a three-dimensional holographic image,
Obtaining a plurality of depth images having a predetermined resolution for a predetermined number of depth layers from depth data of the 3D object;
Dividing each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches in a computer-generated hologram (CGH) plane;
Obtaining the interference patterns of the CGH patches corresponding to each of the sub-images by performing Fourier transform for calculating the interference pattern in the CGH plane with respect to the object data included in each of the sub-images on a sub-image basis. step; And
And generating CGH for the three-dimensional object using the interference patterns of the obtained CGH patches.
제 1 항에 있어서,
상기 서브 이미지들 각각은 상기 깊이 이미지들 각각에서 일부 픽셀들이 그룹화된 영역의 이미지에 대응하는, 방법.
The method of claim 1,
Wherein each of the sub-images corresponds to an image of a region in which some pixels are grouped in each of the depth images.
제 2 항에 있어서,
상기 깊이 이미지들에서 상기 서브 이미지들 각각의 위치는 상기 CGH 평면에서 상기 CGH 패치들 각각의 위치에 대응하고,
상기 깊이 이미지들 각각에서 동일한 패치 위치의 서브 이미지들로부터 계산된 간섭 패턴들은 상기 CGH 평면에서 상기 동일한 패치 위치의 CGH 패치에 매핑되는, 방법.
The method of claim 2,
Each position of the sub-images in the depth images corresponds to a position of each of the CGH patches in the CGH plane,
The interference patterns calculated from sub-images of the same patch location in each of the depth images are mapped to the CGH patch of the same patch location in the CGH plane.
제 1 항에 있어서,
상기 CGH를 생성하는 단계는
상기 획득된 CGH 패치들의 상기 간섭 패턴들을 머지(merge)하여 상기 CGH 평면의 전체 영역에서의 글로벌 CGH의 간섭 패턴을 획득함으로써, 상기 CGH를 생성하는, 방법.
The method of claim 1,
The step of generating the CGH
The method of generating the CGH by merging the interference patterns of the obtained CGH patches to obtain an interference pattern of global CGH in the entire area of the CGH plane.
제 1 항에 있어서,
상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계는
상기 깊이 이미지들 각각에 대하여, 상기 서브 이미지들 중 상기 객체 데이터가 존재하는 서브 이미지를 ROI(region of interest)로 결정하는 단계; 및
상기 서브 이미지들 중 상기 ROI로 결정된 서브 이미지에 대해서는 상기 푸리에 변환을 수행하고 나머지 서브 이미지에 대해서는 상기 푸리에 변환을 스킵함으로써, 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계를 포함하는, 방법.
The method of claim 1,
Obtaining the interference patterns of the CGH patches
For each of the depth images, determining a sub-image in which the object data exists among the sub-images as a region of interest (ROI); And
And obtaining the interference patterns of the CGH patches by performing the Fourier transform on the sub-images determined as the ROI among the sub-images and skipping the Fourier transform for the remaining sub-images.
제 5 항에 있어서,
상기 ROI를 결정하는 단계는
상기 서브 이미지들 중에서 소정 임계값보다 큰 객체 데이터의 값을 갖는 서브 이미지를 상기 ROI로 결정하는, 방법.
The method of claim 5,
The step of determining the ROI is
Determining a sub-image having a value of object data greater than a predetermined threshold among the sub-images as the ROI.
제 5 항에 있어서,
상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계는
상기 ROI로 결정된 서브 이미지의 가장자리에 소정 범위로 제로 패딩(zero padding)을 수행하는 단계; 및
상기 제로 패딩된 서브 이미지에 대하여 상기 푸리에 변환을 수행함으로써 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계를 포함하는, 방법.
The method of claim 5,
Obtaining the interference patterns of the CGH patches
Performing zero padding on an edge of the sub-image determined as the ROI in a predetermined range; And
And obtaining the interference patterns of the CGH patches by performing the Fourier transform on the zero padded sub-image.
제 5 항에 있어서,
상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계는
상기 깊이 이미지들 중에서 상기 ROI에 해당하는 서브 이미지를 포함하지 않는 깊이 이미지에 대해서는 상기 푸리에 변환을 스킵하는, 방법.
The method of claim 5,
Obtaining the interference patterns of the CGH patches
Skipping the Fourier transform for a depth image not including a sub-image corresponding to the ROI among the depth images.
제 1 항에 있어서,
상기 푸리에 변환은
관찰자의 망막 평면(retina plane)으로부터 상기 관찰자의 아이 렌즈 평면(eye lens plane)까지의 광파(light wave)의 전파(propagation)를 계산하기 위한 1차 푸리에 변환 및 상기 아이 렌즈 평면으로부터 상기 CGH 평면까지의 광파의 전파를 계산하기 위한 2차 푸리에 변환을 수행하는 2단계(double stage) 푸리에 변환을 포함하는, 방법.
The method of claim 1,
The Fourier transform is
First-order Fourier transform for calculating the propagation of a light wave from the observer's retina plane to the observer's eye lens plane and from the eye lens plane to the CGH plane A method comprising a double stage Fourier transform performing a quadratic Fourier transform to calculate propagation of a light wave of.
제 1 항에 있어서,
상기 푸리에 변환은
상기 깊이 이미지의 깊이 레이어로부터 상기 CGH 평면까지의 광파의 전파를 계산하기 위한 푸리에 변환을 수행하는 1단계(single stage) 푸리에 변환을 포함하는, 방법.
The method of claim 1,
The Fourier transform is
A method comprising a single stage Fourier transform of performing a Fourier transform to calculate propagation of light waves from the depth layer of the depth image to the CGH plane.
제 10 항에 있어서,
상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계는
ROI에 대응하는 서브 이미지에 대해 구면파(spherical wave)의 컨볼루션을 수행하는 단계;
상기 ROI에 대응하는 상기 서브 이미지의 가장자리에 소정 범위로 제로 패딩을 수행하는 단계;
상기 제로 패딩된 서브 이미지에 대하여 상기 1단계 푸리에 변환을 수행함으로써 간섭 패턴을 획득하는 단계; 및
상기 간섭 패턴과 공간 광 변조기(SLM)의 샘플링 그리드를 매칭시키기 위한 인터폴레이션을 수행함으로써, 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는 단계를 포함하는, 방법.
The method of claim 10,
Obtaining the interference patterns of the CGH patches
Performing convolution of a spherical wave on the sub-image corresponding to the ROI;
Performing zero padding on the edge of the sub-image corresponding to the ROI in a predetermined range;
Obtaining an interference pattern by performing the first step Fourier transform on the zero-padded sub-images; And
And obtaining the interference patterns of the CGH patches by performing interpolation to match the interference pattern with a sampling grid of a spatial light modulator (SLM).
제 10 항에 있어서,
상기 푸리에 변환은
임계 깊이보다 큰 깊이 레이어의 깊이 이미지에 대해서는 상기 1단계 푸리에 변환을 수행하고, 상기 임계 깊이보다 작은 깊이 레이어의 깊이 이미지에 대해서는 2단계 푸리에 변환을 수행하는 하이브리드 방식의 푸리에 변환을 포함하는, 방법.
The method of claim 10,
The Fourier transform is
A method comprising a hybrid Fourier transform of performing the first-step Fourier transform on a depth image of a depth layer greater than a critical depth, and performing a two-step Fourier transform on a depth image of a depth layer smaller than the critical depth.
제 1 항 내지 제 12 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적인(non-transitory) 기록매체.A computer-readable non-transitory recording medium storing a program for executing the method of any one of claims 1 to 12 on a computer. 3차원 홀로그래픽 이미지를 처리하는 장치에 있어서,
적어도 하나의 프로그램이 저장된 메모리; 및
상기 적어도 하나의 프로그램을 실행함으로써 상기 3차원 홀로그래픽 이미지를 처리하는 프로세서를 포함하고,
상기 프로세서는,
3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하고,
상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하고,
서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행함으로써 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하고,
상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성하는, 장치.
In the apparatus for processing a three-dimensional holographic image,
A memory in which at least one program is stored; And
A processor for processing the three-dimensional holographic image by executing the at least one program,
The processor,
Obtaining a plurality of depth images of a predetermined resolution for a preset number of depth layers from depth data of a 3D object,
Dividing each of the depth images into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of CGH patches in a computer-generated hologram (CGH) plane,
Obtaining the interference patterns of the CGH patches corresponding to each of the sub-images by performing Fourier transform for calculating the interference pattern in the CGH plane with respect to the object data included in each of the sub-images on a sub-image basis, and ,
An apparatus for generating CGH for the three-dimensional object by using the interference patterns of the obtained CGH patches.
제 14 항에 있어서,
상기 서브 이미지들 각각은 상기 깊이 이미지들 각각에서 일부 픽셀들이 그룹화된 영역의 이미지에 대응하는, 장치.
The method of claim 14,
Wherein each of the sub-images corresponds to an image of a region in which some pixels are grouped in each of the depth images.
제 15 항에 있어서,
상기 깊이 이미지들에서 상기 서브 이미지들 각각의 위치는 상기 CGH 평면에서 상기 CGH 패치들 각각의 위치에 대응하고,
상기 깊이 이미지들 각각에서 동일한 패치 위치의 서브 이미지들로부터 계산된 간섭 패턴들은 상기 CGH 평면에서 상기 동일한 패치 위치의 CGH 패치에 매핑되는, 장치.
The method of claim 15,
Each position of the sub-images in the depth images corresponds to a position of each of the CGH patches in the CGH plane,
The interference patterns calculated from sub-images of the same patch location in each of the depth images are mapped to the CGH patch of the same patch location in the CGH plane.
제 14 항에 있어서,
상기 프로세서는
상기 획득된 CGH 패치들의 상기 간섭 패턴들을 머지(merge)하여 상기 CGH 평면의 전체 영역에서의 글로벌 CGH의 간섭 패턴을 획득함으로써, 상기 CGH를 생성하는, 장치.
The method of claim 14,
The processor is
The apparatus for generating the CGH by merging the interference patterns of the obtained CGH patches to obtain an interference pattern of global CGH in the entire region of the CGH plane.
제 14 항에 있어서,
상기 프로세서는
상기 깊이 이미지들 각각에 대하여, 상기 서브 이미지들 중 상기 객체 데이터가 존재하는 서브 이미지를 ROI(region of interest)로 결정하고,
상기 서브 이미지들 중 상기 ROI로 결정된 서브 이미지에 대해서는 상기 푸리에 변환을 수행하고 나머지 서브 이미지에 대해서는 상기 푸리에 변환을 스킵함으로써, 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는, 장치.
The method of claim 14,
The processor is
For each of the depth images, a sub-image in which the object data exists among the sub-images is determined as a region of interest (ROI),
The apparatus for obtaining the interference patterns of the CGH patches by performing the Fourier transform on a sub-image determined as the ROI among the sub-images and skipping the Fourier transform for the remaining sub-images.
제 18 항에 있어서,
상기 프로세서는
상기 서브 이미지들 중에서 소정 임계값 이상의 객체 데이터의 값을 갖는 서브 이미지를 상기 ROI로 결정하는, 장치.
The method of claim 18,
The processor is
A device for determining a sub-image having a value of object data equal to or greater than a predetermined threshold value as the ROI among the sub-images.
제 18 항에 있어서,
상기 프로세서는
상기 ROI로 결정된 서브 이미지의 가장자리에 소정 범위로 제로 패딩(zero padding)을 수행하고,
상기 제로 패딩된 서브 이미지에 대하여 상기 푸리에 변환을 수행함으로써 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는, 장치.
The method of claim 18,
The processor is
Zero padding is performed in a predetermined range on the edge of the sub-image determined as the ROI,
Obtaining the interference patterns of the CGH patches by performing the Fourier transform on the zero padded sub-image.
제 18 항에 있어서,
상기 프로세서는
상기 깊이 이미지들 중에서 상기 ROI에 해당하는 서브 이미지를 포함하지 않는 깊이 이미지에 대해서는 상기 푸리에 변환을 스킵하는, 장치.
The method of claim 18,
The processor is
The Fourier transform is skipped for a depth image that does not include a sub-image corresponding to the ROI among the depth images.
제 14 항에 있어서,
상기 푸리에 변환은
관찰자의 망막 평면(retina plane)으로부터 상기 관찰자의 아이 렌즈 평면(eye lens plane)까지의 광파(light wave)의 전파(propagation)를 계산하기 위한 1차 푸리에 변환 및 상기 아이 렌즈 평면으로부터 상기 CGH 평면까지의 광파의 전파를 계산하기 위한 2차 푸리에 변환을 수행하는 2단계(double stage) 푸리에 변환을 포함하는, 장치.
The method of claim 14,
The Fourier transform is
First-order Fourier transform for calculating the propagation of a light wave from the observer's retina plane to the observer's eye lens plane and from the eye lens plane to the CGH plane And a double stage Fourier transform performing a second order Fourier transform to calculate propagation of a light wave of.
제 14 항에 있어서,
상기 푸리에 변환은
상기 깊이 이미지의 깊이 레이어로부터 상기 CGH 평면까지의 광파의 전파를 계산하기 위한 푸리에 변환을 수행하는 1단계(single stage) 푸리에 변환을 포함하는, 장치.
The method of claim 14,
The Fourier transform is
And a single stage Fourier transform for calculating propagation of light waves from the depth layer of the depth image to the CGH plane.
제 23 항에 있어서,
상기 프로세서는
ROI에 대응하는 서브 이미지에 대해 구면파(spherical wave)의 컨볼루션을 수행하고,
상기 ROI에 대응하는 상기 서브 이미지의 가장자리에 소정 범위로 제로 패딩을 수행하고,
상기 제로 패딩된 서브 이미지에 대하여 상기 1단계 푸리에 변환을 수행함으로써 간섭 패턴을 획득하고,
상기 간섭 패턴과 공간 광 변조기(SLM)의 샘플링 그리드를 매칭시키기 위한 인터폴레이션을 수행함으로써, 상기 CGH 패치들의 상기 간섭 패턴들을 획득하는, 장치.
The method of claim 23,
The processor is
Convolution of a spherical wave is performed on the sub-image corresponding to the ROI,
Performing zero padding in a predetermined range on the edge of the sub-image corresponding to the ROI,
Obtaining an interference pattern by performing the first-step Fourier transform on the zero-padded sub-image,
An apparatus for obtaining the interference patterns of the CGH patches by performing interpolation to match the interference pattern with a sampling grid of a spatial light modulator (SLM).
제 23 항에 있어서,
상기 푸리에 변환은
임계 깊이보다 큰 깊이 레이어의 깊이 이미지에 대해서는 상기 1단계 푸리에 변환을 수행하고, 상기 임계 깊이보다 작은 깊이 레이어의 깊이 이미지에 대해서는 2단계 푸리에 변환을 수행하는 하이브리드(hydrid) 푸리에 변환을 포함하는, 장치.
The method of claim 23,
The Fourier transform is
An apparatus comprising a hybrid Fourier transform for performing the first-stage Fourier transform on a depth image of a depth layer greater than a critical depth, and a second-stage Fourier transform on a depth image of a depth layer less than the critical depth .
3차원 홀로그래픽 이미지를 처리하는 프로세서에 있어서,
푸리에 연산을 수행하는 복수의 FFT(fast Fourier transform) 코어들; 및
상기 복수의 FFT 코어들의 동작들을 스케쥴링하는 MCU(Main Control Unit)를 포함하고,
상기 MCU는, 3차원 객체의 깊이 데이터로부터, 기설정된 개수의 깊이 레이어들에 대한 소정 해상도의 복수의 깊이 이미지들을 획득하고, 상기 깊이 이미지들 각각을 CGH(computer-generated hologram) 평면에서의 CGH 패치들의 간섭 패턴들을 생성하기 위한 프로세싱 단위에 대응하는, 소정 개수의 서브 이미지들로 분할하고, 상기 분할될 서브 이미지들 각각에 대한 상기 푸리에 연산을 수행할 FFT 코어를 할당함으로써, 상기 FFT 코어들의 동작들을 스케쥴링하고,
상기 FFT 코어들 각각은, 할당된 서브 이미지 단위로 상기 서브 이미지들 각각에 포함된 객체 데이터에 대한 상기 CGH 평면에서의 간섭 패턴을 계산하기 위한 푸리에 변환을 수행하고,
상기 MCU는, 상기 푸리에 변환의 수행 결과에 기초하여 상기 서브 이미지들 각각에 대응하는 상기 CGH 패치들의 상기 간섭 패턴들을 획득하고, 상기 획득된 CGH 패치들의 상기 간섭 패턴들을 이용하여 상기 3차원 객체에 대한 CGH를 생성하는, 프로세서.
In the processor for processing a three-dimensional holographic image,
A plurality of fast Fourier transform (FFT) cores performing Fourier operations; And
Including a main control unit (MCU) scheduling operations of the plurality of FFT cores,
The MCU obtains a plurality of depth images of a predetermined resolution for a preset number of depth layers from depth data of a 3D object, and converts each of the depth images to a CGH patch in a computer-generated hologram (CGH) plane. The operations of the FFT cores are performed by dividing into a predetermined number of sub-images corresponding to a processing unit for generating interference patterns of each of the sub-images, and allocating an FFT core to perform the Fourier operation for each of the sub-images Scheduling,
Each of the FFT cores performs Fourier transform for calculating an interference pattern in the CGH plane for object data included in each of the sub-images in an allocated sub-image unit,
The MCU obtains the interference patterns of the CGH patches corresponding to each of the sub-images based on the result of performing the Fourier transform, and uses the interference patterns of the obtained CGH patches to determine the 3D object. The processor, which produces CGH.
제 26 항에 있어서,
상기 MCU는
상기 깊이 이미지들 각각에 대하여 상기 서브 이미지들 중 상기 객체 데이터가 존재하는 서브 이미지들을 ROI(region of interest)로 결정하고, 상기 서브 이미지들 중 상기 ROI로 결정된 서브 이미지들을 상기 FFT 코어들에 할당하는, 프로세서.
The method of claim 26,
The MCU is
For each of the depth images, sub-images in which the object data exists among the sub-images are determined as a region of interest (ROI), and sub-images determined as the ROI among the sub-images are allocated to the FFT cores. , Processor.
KR1020190094536A 2019-03-19 2019-08-02 Method and apparatus for processing three dimensional holographic image KR20200111598A (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/780,402 US11747767B2 (en) 2019-03-19 2020-02-03 Method and apparatus for processing three-dimensional holographic image
CN202010171085.5A CN111722514A (en) 2019-03-19 2020-03-12 Method and apparatus for processing three-dimensional holographic image
EP20162706.4A EP3712709A1 (en) 2019-03-19 2020-03-12 Method and apparatus for processing three-dimensional holographic image
US18/222,309 US20230359145A1 (en) 2019-03-19 2023-07-14 Method and apparatus for processing three-dimensional holographic image

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20190031465 2019-03-19
KR1020190031465 2019-03-19

Publications (1)

Publication Number Publication Date
KR20200111598A true KR20200111598A (en) 2020-09-29

Family

ID=72661161

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190094536A KR20200111598A (en) 2019-03-19 2019-08-02 Method and apparatus for processing three dimensional holographic image

Country Status (1)

Country Link
KR (1) KR20200111598A (en)

Similar Documents

Publication Publication Date Title
US20210074052A1 (en) Three-dimensional (3d) rendering method and apparatus
RU2434258C2 (en) Method of calculating digital video holograms and device for realising said method
KR101289585B1 (en) Method and device for rendering and generating computer-generated video holograms
JP5566116B2 (en) Method and apparatus for reconstructing a three-dimensional scene having a corrected field of view
US20230359145A1 (en) Method and apparatus for processing three-dimensional holographic image
JP2010511899A (en) Computer-generated hologram
KR102464363B1 (en) Apparatus and Method for performing Fourier transform
US10168667B2 (en) Fast generation of digital holograms
CN105096375B (en) Image processing method and apparatus
US9618902B2 (en) Apparatus and method for generating hologram pattern
CN114746904A (en) Three-dimensional face reconstruction
US9811052B2 (en) Hologram generation apparatus and method
US20150277377A1 (en) Conversion of complex holograms to phase holograms
US20240027961A1 (en) Method and apparatus for generating computer-generated hologram
KR20140126120A (en) Method for digital hologram synthesis and apparatus therefor
JP2005062366A (en) Formation apparatus, formation method, program and recording medium
KR20200111598A (en) Method and apparatus for processing three dimensional holographic image
US11320784B2 (en) Method and apparatus for processing holographic image
US20230089872A1 (en) Information processing device, information processing method, and information processing program
US11941782B2 (en) GPU-based lens blur rendering using depth maps
KR20220023953A (en) Method and system for processing computer-generated hologram
US11561511B2 (en) Method and apparatus for generating hologram with wide viewing angle
KR102056985B1 (en) Method and apparatus for virtual reality interaction
JPH10301466A (en) Method of synthesizing computer holograms and device thereof, and recording medium recording this method
US20230400811A1 (en) Hologram profile optimization method, hologram profile generation device, and holographic display device to which hologram profile optimization method is applied

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal