KR101366116B1 - Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치 - Google Patents

Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치 Download PDF

Info

Publication number
KR101366116B1
KR101366116B1 KR1020120122041A KR20120122041A KR101366116B1 KR 101366116 B1 KR101366116 B1 KR 101366116B1 KR 1020120122041 A KR1020120122041 A KR 1020120122041A KR 20120122041 A KR20120122041 A KR 20120122041A KR 101366116 B1 KR101366116 B1 KR 101366116B1
Authority
KR
South Korea
Prior art keywords
data
fft
converted
input
divided
Prior art date
Application number
KR1020120122041A
Other languages
English (en)
Inventor
조충상
최병호
강훈종
Original Assignee
전자부품연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 전자부품연구원 filed Critical 전자부품연구원
Priority to KR1020120122041A priority Critical patent/KR101366116B1/ko
Application granted granted Critical
Publication of KR101366116B1 publication Critical patent/KR101366116B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/04Processes or apparatus for producing holograms
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H1/00Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
    • G03H1/04Processes or apparatus for producing holograms
    • G03H1/08Synthesising holograms, i.e. holograms synthesized from objects or objects from holograms
    • G03H1/0866Digital holographic imaging, i.e. synthesizing holobjects from holograms
    • G03H2001/0883Reconstruction aspect, e.g. numerical focusing
    • GPHYSICS
    • G03PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
    • G03HHOLOGRAPHIC PROCESSES OR APPARATUS
    • G03H2226/00Electro-optic or electronic components relating to digital holography
    • G03H2226/02Computing or processing means, e.g. digital signal processor [DSP]

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Abstract

FFT 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치가 제공된다. 본 발명의 실시예에 따른 데이터 처리 방법은, 입력 데이터를 분할하여 분할 데이터들을 생성하고, 분할 데이터들로 FFT 연산을 수행하며, 분할 데이터들로 변형된 FFT 연산을 수행하고, 연산결과들을 합성하여 변환 데이터로 출력한다. 이에 의해, 데이터를 분할하여 FFT를 병렬적으로 수행할 수 있어, FFT 연산을 빠르게 수행가능하여, 궁극적으로는 방대한 홀로그램 데이터 복원, 영상 끊김, 통신 지연 등을 방지할 수 있게 된다.

Description

FFT 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치{FFT Parallel Processing Method, Data Processing Method and Hologram Restoration Apparatus}
본 발명은 데이터 처리 방법에 관한 것으로, 더욱 상세하게는 영상 데이터나 통신 데이터를 FFT(Fast Fourier Transform : 고속 푸리에 변환) 연산하여 처리하는 알고리즘 및 이를 응용한 방법과 장치에 관한 것이다.
홀로그램 복원에 이용되는 FFT는 함수의 근사값을 계산하는 알고리즘으로, 푸리에 변환에 근거하여 근사공식을 이용한 DFT(Discrete Fourier Transform : 이산 푸리에 변환)을 계산할 때 연산횟수를 줄일 수 있도록 고안되었다.
FFT는 영상 데이터 처리와 통신 데이터 처리에 다양하게 이용되고 있는데, 단순화되었음에도 불구하고, 영상의 해상도가 높아지고 전송량이 증가하는 추세로 인해, FFT 연산 과정은 여전히 복잡하다는 단점을 보인다.
FFT 연산의 복잡도 증가는 FFT 처리 속도를 늦추어, 영상 끊김, 통신 지연 등을 유발할 수 있는 바, FFT 연산을 빠르게 수행하도록 하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, FFT 연산을 빠르게 수행하도록 하기 위한 방안으로, 데이터를 분할하여 FFT를 병렬적으로 수행하는 FFT 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치를 제공함에 있다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 데이터 처리 방법은, 입력 데이터를 분할하여 분할 데이터들을 생성하는 단계; 상기 분할 데이터들로 FFT(Fast Fourier Transform) 연산을 수행하는 제1 연산단계; 상기 분할 데이터들로 변형된 FFT 연산을 수행하는 제2 연산 단계; 및 상기 제1 연산단계의 연산결과 및 상기 제2 연산단계의 연산결과를 합성하여 변환 데이터로 출력하는 단계;를 포함한다.
그리고, 상기 제1 연산단계와 상기 제2 연산단계는, 병렬로 처리될 수 있다.
또한, 상기 변형된 FFT 연산은, 상기 FFT 연산과, 버터플라이 구조는 동일하고, 적어도 하나의 회전 인수들이 변형된 연산일 수 있다.
그리고, 상기 입력 데이터는 1D 데이터이고, 상기 생성단계는, 상기 1D 데이터를 분할하여 제1 및 제2 분할 데이터를 생성하고, 상기 제1 연산단계는, 상기 제1 및 제2 분할 데이터로, 제1 변환 데이터를 생성하고, 상기 제2 연산단계는, 상기 제1 및 제2 분할 데이터로, 제2 변환 데이터를 생성하며, 상기 출력단계는, 상기 제1 및 제2 변환 데이터를 합성하여 상기 변환 데이터로 출력할 수 있다.
또한, 제1 분할 데이터는, 상기 입력 데이터의 좌측 블럭의 데이터이고, 제2 분할 데이터는, 상기 입력 데이터의 우측 블럭의 데이터이고, 상기 제1 변환 데이터는, 변환 데이터의 (2n) 성분들이고, 상기 제2 변환 데이터는, 변환 데이터의 (2n+1) 성분들이며, 상기 입력 데이터의 사이즈는 N이고, 0≤n≤(N/2-1)일 수 있다.
그리고, 상기 입력 데이터는 2D 데이터이고, 상기 생성단계는, 상기 2D 데이터를 분할하여 제1 내지 제4 분할 데이터를 생성하고, 상기 제1 연산단계는, 상기 제1 내지 제4 분할 데이터로, 제1 변환 데이터를 생성하고, 상기 제2 연산단계는, 상기 제1 내지 제4 분할 데이터로, 제2 내지 제4 변환 데이터를 생성하며, 상기 출력단계는, 상기 제1 내지 제4 변환 데이터를 합성하여 상기 변환 데이터로 출력할 수 있다.
또한, 제1 분할 데이터는, 상기 입력 데이터의 상부 행 & 좌측 열 블럭의 데이터이고, 제2 분할 데이터는, 상기 입력 데이터의 상부 행 & 우측 열 블럭의 데이터이고, 제3 분할 데이터는, 상기 입력 데이터의 하부 행 & 좌측 열 블럭의 데이터이고, 제4 분할 데이터는, 상기 입력 데이터의 하부 행 & 우측 열 블럭의 데이터이며, 제1 변환 데이터는, 상기 변환 데이터의 (2n+1, 2n+1) 성분들이고, 제2 변환 데이터는, 상기 변환 데이터의 (2n+1, 2n+2) 성분들이며, 제3 변환 데이터는, 상기 변환 데이터의 (2n+2, 2n+1) 성분들이고, 제4 변환 데이터는, 상기 변환 데이터의 (2n+2, 2n+2) 성분들이며, 상기 입력 데이터의 사이즈는 N×N이고, 0≤n≤(N/2-1)일 수 있다.
그리고, 상기 데이터는, 홀로그램 데이터일 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 데이터를 분할하여 FFT를 병렬적으로 수행할 수 있어, FFT 연산을 빠르게 수행가능하여, 궁극적으로는 방대한 홀로그램 데이터 복원, 영상 끊김, 통신 지연 등을 방지할 수 있게 된다.
도 1은 N=8인 경우의 DFT를 흐름도로 나타내면 도면,
도 2는 본 발명에 적용가능한 FFT 병렬 처리 알고리즘의 개념을 도시한 도면,
도 3은, 도 2에 도시된 FFT 병렬 처리 알고리즘에 나타난 첫 번째 연산 과정만을 추출한 도면,
도 4는, 도 2에 도시된 FFT 병렬 처리 알고리즘에 나타난 두 번째 연산 과정만을 추출한 도면,
도 5는, 상부에 x1(t)에 대한 FFT 흐름도를 도시하고, 하부에 x2(t)에 대한 FFT 흐름도를 도시한 도면,
도 6은, FFT의 회전 인수들을 수정하여 생성한 KFFT의 흐름도,
도 7은 본 발명에 적용가능한 2D-FFT 병렬 처리 알고리즘의 개념을 도시한 도면, 그리고,
도 8은 본 발명의 바람직한 실시예에 따른 홀로그램 복원장치의 블럭도이다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
1. FFT 알고리즘
FFT(Fast Fourier Transform : 고속 푸리에 변환)는 DFT(Discrete Fourier Transform : 이산 푸리에 변환)을 고속으로 수행하기 위한 알고리즘으로, 영상 처리와 통신 분야에 두루 사용되며, 특히 홀로그램을 복원하기 위해 이용된다. 아래의 수학식 1은 DFT를 나타낸다.
[수학식 1]
Figure 112012089253880-pat00001
N=8인 경우의 DFT인 8-포인트 DFT의 매트릭스는 아래의 수학식 2와 같고, 이를 흐름도로 나타내면 도 1과 같다.
[수학식 2]
Figure 112012089253880-pat00002

2. FFT 병렬 처리 알고리즘
도 2는 본 발명에 적용가능한 FFT 병렬 처리 알고리즘의 개념을 도시한 도면이다. FFT 병렬 처리는 입력 데이터를 분할하여 작은 사이즈의 분할 데이터들에 대해 병렬로 FFT를 수행하여, FFT를 수행하는 매트릭스의 차수를 줄여 궁극적으로는 전체 연산량을 줄이는 기법이다.
도 2에는, 입력 데이터 x(t)를 FFT한 결과를 X(f)라고 할 때, x(t)를 x1(t)와 x2(t)로 분할하여 FFT를 병렬로 수행하는 과정이 나타나 있다. x1(t)은 x(t)의 데이터들 중 인덱스가 빠른 좌측 블럭의 데이터들이고, x2(t)는 x(t)의 데이터들 중 인덱스가 느린 우측 블럭의 데이터들이다.
구체적으로, x(t)를 "x(0), x(1), x(2), ... , x(N-1)"이라 할 때, x1(t)는 "x(0), x(1), x(2), ... , x(N/2-1)"이고, x2(t)는 "x(N/2), x(N/2+1), x(N/2+2), ... , x(N-1)"이다.
x1(t)과 x2(t)를 이용한 FFT 연산은 2가지로 나타난다.
첫 번째 연산은, x1(t)을 FFT 하여 X1_1(f)로 변환하고, x2(t)을 FFT 하여 X2_1(f)로 변환한 후에, X1_1(f)과 X2_1(f)를 합산하여, X(f)의 짝수(2n) 인덱스 데이터들(a0, a1, a2, ... , aN /2)을 산출하기 위한 연산이다.
두 번째 연산은, x1(t)을 "KFFT" 하여 X1_2(f)로 변환하고, x2(t)을 "KFFT" 하여 X2_2(f)로 변환한 후에, X1_2(f)와 X2_2(f)를 합산하여, X(f)의 홀수(2n+1) 인덱스 데이터들(b0, b1, b2, ... , bN /2)을 산출하기 위한 연산이다. "KFFT"는 FFT를 변형한 것으로, 이후에 상세히 후술한다.
첫 번째 연산 결과인 X(f)의 짝수 인덱스 데이터들(a0, a1, a2, ... , aN /2)과 두 번째 연산 결과인 X(f)의 홀수 인덱스 데이터들(b0, b1, b2, ... , bN /2)을 합성한 X(f)(a0, b0, a1, b1, a2, b2, ... , aN /2, bN /2)이 x(t)를 FFT한 결과와 일치하여야 한다.
2.1. 첫 번째 연산( FFT + FFT )
도 3은, 도 2에 도시된 FFT 병렬 처리 알고리즘에 나타난 첫 번째 연산 과정만을 추출한 도면이다. 도 3에 나타난 X1_1(f)과 X2_1(f)을 수학식 3으로 표기하였다. 아래 수학식 3의 X1(k)는 도 3의 X1_1(f)를 나타내고, 아래 수학식 3의 X2(k)는 도 3의 X2_1(f)를 나타낸다.
[수학식 3]
Figure 112012089253880-pat00003
수학식 3의 X1(k)과 X2(k)의 합산 결과를 아래의 수학식 4에 나타내었다. 이는, 도 3의 X1_1(f)과 X2_1(f)의 합산결과에 해당한다.
[수학식 4]
Figure 112012089253880-pat00004
수학식 4에 나타난 바에 따르면, X1_1(f)과 X2_1(f)의 합산결과는 X(f)의 짝수 인덱스 데이터들(a0, a1, a2, ... , aN /2)인 것을 확인할 수 있다.
N=8인 경우를 상정하면, X1_1(f)과 X2_1(f)의 합산결과는 도 1에서 빨간색 부분들인 X(f)의 짝수 인덱스 데이터들(X(0), X(2), X(4), X(6))인 것이다.
2.2. 두 번째 연산( KFFT + KFFT )
도 4는, 도 2에 도시된 FFT 병렬 처리 알고리즘에 나타난 두 번째 연산 과정만을 추출한 도면이다. 그리고, 도 5의 상부에는 x1(t)에 대한 FFT 흐름도를 도시하였고, 도 5의 하부에는 x2(t)에 대한 FFT 흐름도를 도시하였다.
도 4에 나타난 바에 따르면, X1_2(f)와 X2_2(f)의 합산결과가 X(f)의 홀수 인덱스 데이터들(b0, b1, b2, ... , bN /2)이 되어야 한다. 이를, 도 5와 도 1에 적용한다면, 아래의 수학식 5가 성립하여야 한다.
[수학식 5]
Figure 112012089253880-pat00005
Figure 112012089253880-pat00006
Figure 112012089253880-pat00007
Figure 112012089253880-pat00008
즉, 1) "도 5에서의 X1(0)+X2(0)"이 "도 1에서의 X(1)"과 같아야 하고, 2) "도 5에서의 X1(1)+X2(1)"이 "도 1에서의 X(3)"과 같아야 하며, 3) "도 5에서의 X1(2)+X2(2)"이 "도 1에서의 X(5)"과 같아야 하고, 4) "도 5에서의 X1(3)+X2(3)"이 "도 1에서의 X(7)"과 같아야 하는데, 이하에서 확인해 본다.
[수학식 6]
Figure 112012089253880-pat00009
위 수학식 6에 따르면, X1(0)과 X2(0)의 합이 X(1)과 같지 않음을 확인할 수 있다.
[수학식 7]
Figure 112012089253880-pat00010
또한, 위 수학식 7에 따르면, X1(1)과 X2(1)의 합이 X(3)과 같지 않음을 확인할 수 있다.
[수학식 8]
Figure 112012089253880-pat00011
그리고, 위 수학식 8에 따르면, X1(2)과 X2(2)의 합이 X(5)와 같지 않음을 확인할 수 있다.
[수학식 9]
Figure 112012089253880-pat00012
아울러, 위 수학식 9에 따르면, X1(3)과 X2(3)의 합이 X(7)과 같지 않음을 확인할 수 있다.
따라서, 수학식 5의 조건이 모두 성립하지 않으므로, 수학식 5가 성립할 수 있도록 도 5에 도시된 흐름도에서 회전 인수(twiddle factor)들을 도 6에 도시된 바와 같이 수정하여야 한다. 여기서, 흐름도의 버터플라이 구조는 변화하지 않고 회전 인수들만이 변경되었음에 유념하여야 한다.
도 6에 도시된 변형된 FFT를 전술한 KFFT로 명명한다. 그리고, 도 6의 상부와 하부를 구분하기 위해, 상부의 연산을 KFFT1로 지칭하고, 하부의 연산을 KFFT2로 지칭하겠다.
도 6에 도시된 흐름도에 따를 경우, "X1(0) + X2(0) = X(1)", "X1(1) + X2(1) = X(3)", "X1(2) + X2(2) = X(5)" 및 "X1(3) + X2(3) = X(7)"가 모두 성립하는데, 이를 아래에서 일반적인 수식으로 증명하겠다.
아래 수학식 10의 X1'(k)는 도 4의 X1_2(f)를 나타내고, 아래 수학식 10의 X2'(k)는 도 4의 X2_2(f)를 나타낸다.
[수학식 10]
Figure 112012089253880-pat00013
x1(n)을 X1'(k)로 변환하는 연산이 KFFT1 연산에 해당하는데, 일반 FFT 연산에
Figure 112012089253880-pat00014
을 더 곱한 것에 해당함을 알 수 있다. 또한, x2(n)을 X2'(k)로 변환하는 연산이 KFFT2 연산에 해당하는데, 일반 FFT 연산에
Figure 112012089253880-pat00015
을 더 곱한 것에 해당함을 알 수 있다.
수학식 10의 X1'(k)과 X2'(k)의 합산 결과를 아래의 수학식 11에 나타내었다. 이는, 도 4의 X1_2(f)과 X2_2(f)의 합산결과에 해당한다.
[수학식 11]
Figure 112012089253880-pat00016
수학식 11에 나타난 바에 따르면, X1_2(f)과 X2_2(f)는 X(f)의 짝수 인덱스 데이터들(b0, b1, b2, ... , bN /2)인 것을 확인할 수 있다.
2.3. 소결
지금까지 설명한 FFT 병렬 처리 알고리즘에 따르면, 사이즈가 "N"인 입력에 대해 "1번"의 FFT 연산을 수행하던 것을, 사이즈가 "N/2"인 입력에 대해 "4번"의 연산(구체적으로, '2번'의 'FFT' 연산, '1번'의 'KFFT1' 연산 및 '1번'의 'KFFT2' 연산)을 수행하는 것으로 대체할 수 있다.
FFT 병렬 처리 연산의 경우 연산 횟수는 4배로 증가하지만 이를 병렬 처리하면 연산 속도는 느려지지 않으며, 오히려 입력이 절반으로 줄어 궁극적으로 기존의 FFT 연산 보다 연산량은 줄어들어 연산 속도가 빨라진다. 구체적으로, 사이즈가 "N"인 입력에 대한 FFT 연산량은 Nlog2N이고, 사이즈가 "N/2"인 입력에 대한 FFT/KFFT 연산량은
Figure 112012089253880-pat00017
이다.
3. 2D- FFT 병렬 처리 알고리즘
지금까지, 1D 입력 데이터에 대한 FFT 병렬 처리 알고리즘에 대해 상세히 설명하였다. 이하에서는, 2D 입력 데이터에 대한 FFT 병렬 처리 알고리즘에 대해 상세히 설명한다.
2D-FFT 병렬 처리 알고리즘에서는, 2D 입력 데이터를 행과 열로 각각 분할하여 생성한 4개의 2D 입력 데이터에 대해 FFT를 수행하게 되며, 이하에서 보다 상세히 설명한다.
도 7은 본 발명에 적용가능한 2D-FFT 병렬 처리 알고리즘의 개념을 도시한 도면이다. 2D-FFT 병렬 처리는 입력 데이터를 행과 열 각각으로 분할하여 4개의 데이터들에 대해 병렬로 2D-FFT가 수행되도록 함으로서, 2D-FFT를 수행하는 매트릭스의 차수를 줄여 궁극적으로는 연산량을 줄이는 기법이다.
도 7에는, 입력 데이터 f(x,y)를 2D-FFT한 결과를 F(u,v)라고 할 때, f(x,y)를 f1(x,y), f2(x,y), f3(x,y) 및 f4(x,y)로 분할하여 2D-FFT를 수행하는 과정이 나타나 있다.
f1(x,y)은 행 인덱스와 열 인덱스가 빠른 상부 행 & 좌측 열 블럭의 데이터들이고, f2(x,y)는 행 인덱스는 빠르지만 열 인덱스는 상부 행 & 우측 열 블럭의 데이터들이고, f3(x,y)는 행 인덱스는 느리지만 열 인덱스는 빠른 하부 행 & 좌측 열 블럭의 데이터들이고, f4(x,y)는 행 인덱스와 열 인덱스는 느린 하부 행 & 우측 열 블럭의 데이터들이다.
[수학식 12]
Figure 112012089253880-pat00018
2D-FFT = FFTcolumn{FFTrow(f)} = 2D-FFTFFT , FFT(f)
일반적인 2D-FFT는 위 수학식 12와 같이 표현할 수 있다. 즉, 2D-FFT는 행(row)에 대한 FFT 후에 열(column)에 대한 FFT를 수행하는 것이므로, "2. FFT 병렬 처리 알고리즘"에서 전술한 기법을 확장하여 적용할 수 있다.
이를 위해서는, 1) f1(x,y)가 F1(a11,a12,...,a21,a22,...)으로 변환되고, 2) f2(x,y)가 F2(b11,b12,...,b21,b22,...)으로 변환되며, 3) f3(x,y)가 F3(c11,c12,...,c21,c22,...)으로 변환되고, 4) f4(x,y)가 F4(d11,d12,...,d21,d22,...)으로 변환되어야 한다.
F1은 F의 (2n+1, 2n+1) 성분들이고, F2는 F의 (2n+1, 2n+2) 성분들이며, F3은 F의 (2n+2, 2n+1) 성분들이고, F4는 F의 (2n+2, 2n+2) 성분들이다.
그리고, 도 7에 도시된 바와 같이, "F1(a11,a12,...,a21,a22,...), F2(b11,b12,...,b21,b22,...), F3(c11,c12,...,c21,c22,...) 및 F4(d11,d12,...,d21,d22,...)를 합성한 F'(u,v)"가 "f(x,y)를 2D-FFT한 결과인 F(u,v)"와 일치하여야 한다.
이를 위한, 변환 연산은 아래의 수학식 13으로 표현할 수 있다.
[수학식 13]
F1 = 2D-FFTFFT , FFT(f1)+2D-FFTFFT , FFT(f2)+2D-FFTFFT , FFT(f3)+2D-FFTFFT ,FFT(f4)
F2 = 2D-FFTFFT , mFFT1(f1)+2D-FFTFFT , mFFT2(f2)+2D-FFTFFT , mFFT1(f3)+2D-FFTFFT ,mFFT2(f4)
F3 = 2D-FFTmFFT1 , FFT(f1)+2D-FFTmFFT1 , FFT(f2)+2D-FFTmFFT2 , FFT(f3)+2D-FFTmFFT2 ,FFT(f4)
F4 = 2D-FFTmFFT1 , mFFT1(f1)+2D-FFTmFFT1 , mFFT2(f2)+2D-FFTmFFT2 ,mFFT1(f3)
+2D-FFTmFFT2 ,mFFT2(f4)
여기서, "FFT"는 일반 FFT이고, "mFFT1"는
Figure 112012089253880-pat00019
과 같이 변형된 FFT이며, "mFFT2"는
Figure 112012089253880-pat00020
과 같이 변형된 FFT이다.
지금까지 설명한 2D-FFT 병렬 처리 알고리즘에 따르면, 사이즈가 "N×N"인 입력에 대해 "1번"의 2D-FFT 연산을 수행하던 것을, 사이즈가 "(N/2)×(N/2)"인 입력에 대해 "16번"의 2D-FFT연산을 수행하는 것으로 대체할 수 있다.
2D-FFT 병렬 처리 연산의 경우 연산 횟수는 16배로 증가하지만 이를 병렬 처리하면 연산 속도는 느려지지 않으며, 오히려 입력이 "1/4"로 줄어 궁극적으로 기존의 2D-FFT 연산 보다 연산량은 줄어들고 연산 시간은 단축된다. 구체적으로, 사이즈가 "N×N"인 입력에 대한 2D-FFT 연산량은 (N×N)log2(N×N)이고, 사이즈가 "(N/2)×(N/2)"인 입력에 대한 2D-FFT 연산량은
Figure 112012089253880-pat00021
이다.
4. 홀로그램 복원장치
도 8은 본 발명의 바람직한 실시예에 따른 홀로그램 복원장치의 블럭도이다. 본 실시예에 따른 홀로그램 복원장치(100)는, 도 8에 도시된 바와 같이, 홀로그램 데이터 입력부(110), 홀로그램 데이터 분할부(120), 홀로그램 데이터 복원부(130)를 구비한다.
데이터 입력부(110)는 홀로그램 데이터를 입력받는 수단으로, 홀로그램 데이터의 입력소스는 저장매체, 촬영장치, 기타 다른 전자기기가 될 수 있다
홀로그램 데이터 분할부(120)는 데이터 입력부(110)를 통해 입력된 입력 데이터를 분할하여 분할 데이터들을 생성한다.
홀로그램 데이터 복원부(130)는 홀로그램 데이터 분할부(120)에서 분할되어 생성된 분할 데이터들로, FFT 연산과 변형된 FFT 연산을 수행한다. 이때, 연산들은 멀티 프로세서, 멀티 프로세스, 멀티 코어, 멀티 쓰레드 등을 통해 병렬로 처리된다.
그리고, 홀로그램 데이터 복원부(130)는 수행된 연산결과들을 합성하여 변환 데이터를 생성하고, 생성된 변환 데이터의 위상 성분들을 이용하여 홀로그램을 복원한다.
5. 변형예
지금까지, 1D 데이터와 2D 데이터에 대한 FFT 병렬 처리 알고리즘 및 이를 이용한 홀로그램 복원방법과 장치에 대해 바람직한 실시예들을 들어 상세히 설명하였다.
위에서 언급한 1D 데이터와 2D 데이터는 설명의 편의를 위해 상정한 차원들로, 본 발명의 기술적 사상은, 3D 이상의 데이터에도 확장가능하다.
그리고, 위 실시예에서는, 입력 데이터를 2개로 분할(1D의 경우) 또는 2×2 개로 분할(2D의 경우)하는 것을 상정하였으나, 이는 설명의 편의를 위해 든 예에 불과하다.
1D의 경우 입력 데이터를 n개로 분할하는 것이 가능하며, 이때 n은 짝수임이 일반적이겠지만 홀수임을 배제하는 것은 아니다.
또한, 2D의 경우 입력 데이터를 n1×n2개로 분할하는 것이 가능하며, 이때 n1과 n2는 같은 것이 바람직하지만 다를 수도 있다. 또한, n1과 n2는 짝수임이 일반적이겠지만 이들 중 적어도 하나가 홀수임을 배제하는 것은 아니다.
더 나아가, nD의 경우 입력 데이터를 n1×n2× ... ×nn개로 분할하는 것이 가능하며, 이때 n1, n2, ... , nn는 모두 같은 것이 바람직하지만 적어도 하나가 다를 수도 있다. 또한, n1, n2, ... , nn는 모두 짝수임이 일반적이겠지만, 이들 중 적어도 하나가 홀수임을 배제하는 것은 아니다.
또한, 홀로그램 복원은 FFT가 사용되는 데이터 처리의 일 예를 상정한 것이다. 홀로그램 복원 이외의 다른 영상 데이터 처리는 물론, 통신 데이터 처리의 경우도 본 발명의 기술적 사상이 적용될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 홀로그램 복원장치
110 : 홀로그램 데이터 입력부
120 : 홀로그램 데이터 분할부
130 : 홀로그램 데이터 복원부

Claims (8)

  1. 입력 데이터를 분할하여 분할 데이터들을 생성하는 단계;
    상기 분할 데이터들로 FFT(Fast Fourier Transform) 연산을 수행하는 제1 연산단계;
    상기 분할 데이터들로 변형된 FFT 연산을 수행하는 제2 연산 단계; 및
    상기 제1 연산단계의 연산결과 및 상기 제2 연산단계의 연산결과를 합성하여 변환 데이터로 출력하는 단계;를 포함하는 것을 특징으로 하는 데이터 처리 방법.
  2. 제 1항에 있어서,
    상기 제1 연산단계와 상기 제2 연산단계는,
    병렬로 처리되는 것을 특징으로 하는 데이터 처리 방법.
  3. 제 1항에 있어서,
    상기 변형된 FFT 연산은,
    상기 FFT 연산과, 버터플라이 구조는 동일하고, 적어도 하나의 회전 인수들이 변형된 연산인 것을 특징으로 하는 데이터 처리 방법.
  4. 제 1항에 있어서,
    상기 입력 데이터는 1D 데이터이고,
    상기 생성단계는,
    상기 1D 데이터를 분할하여 제1 및 제2 분할 데이터를 생성하고,
    상기 제1 연산단계는,
    상기 제1 및 제2 분할 데이터로, 제1 변환 데이터를 생성하고,
    상기 제2 연산단계는,
    상기 제1 및 제2 분할 데이터로, 제2 변환 데이터를 생성하며,
    상기 출력단계는,
    상기 제1 및 제2 변환 데이터를 합성하여 상기 변환 데이터로 출력하는 것을 특징으로 하는 데이터 처리 방법.
  5. 제 4항에 있어서,
    제1 분할 데이터는, 상기 입력 데이터의 좌측 블럭의 데이터이고,
    제2 분할 데이터는, 상기 입력 데이터의 우측 블럭의 데이터이고,
    상기 제1 변환 데이터는, 변환 데이터의 (2n) 성분들이고,
    상기 제2 변환 데이터는, 변환 데이터의 (2n+1) 성분들이며,
    상기 입력 데이터의 사이즈는 N이고,
    0≤n≤(N/2-1)인 것을 특징으로 하는 데이터 처리 방법.
  6. 제 1항에 있어서,
    상기 입력 데이터는 2D 데이터이고,
    상기 생성단계는,
    상기 2D 데이터를 분할하여 제1 내지 제4 분할 데이터를 생성하고,
    상기 제1 연산단계는,
    상기 제1 내지 제4 분할 데이터로, 제1 변환 데이터를 생성하고,
    상기 제2 연산단계는,
    상기 제1 내지 제4 분할 데이터로, 제2 내지 제4 변환 데이터를 생성하며,
    상기 출력단계는,
    상기 제1 내지 제4 변환 데이터를 합성하여 상기 변환 데이터로 출력하는 것을 특징으로 하는 데이터 처리 방법.
  7. 제 6항에 있어서,
    제1 분할 데이터는, 상기 입력 데이터의 상부 행 & 좌측 열 블럭의 데이터이고,
    제2 분할 데이터는, 상기 입력 데이터의 상부 행 & 우측 열 블럭의 데이터이고,
    제3 분할 데이터는, 상기 입력 데이터의 하부 행 & 좌측 열 블럭의 데이터이고,
    제4 분할 데이터는, 상기 입력 데이터의 하부 행 & 우측 열 블럭의 데이터이며,
    제1 변환 데이터는, 상기 변환 데이터의 (2n+1, 2n+1) 성분들이고,
    제2 변환 데이터는, 상기 변환 데이터의 (2n+1, 2n+2) 성분들이며,
    제3 변환 데이터는, 상기 변환 데이터의 (2n+2, 2n+1) 성분들이고,
    제4 변환 데이터는, 상기 변환 데이터의 (2n+2, 2n+2) 성분들이며,
    상기 입력 데이터의 사이즈는 N×N이고,
    0≤n≤(N/2-1)인 것을 특징으로 하는 데이터 처리 방법.
  8. 제 1항에 있어서,
    상기 입력 데이터는,
    홀로그램 데이터인 것을 특징으로 하는 데이터 처리 방법.
KR1020120122041A 2012-10-31 2012-10-31 Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치 KR101366116B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120122041A KR101366116B1 (ko) 2012-10-31 2012-10-31 Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120122041A KR101366116B1 (ko) 2012-10-31 2012-10-31 Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치

Publications (1)

Publication Number Publication Date
KR101366116B1 true KR101366116B1 (ko) 2014-02-24

Family

ID=50271690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120122041A KR101366116B1 (ko) 2012-10-31 2012-10-31 Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치

Country Status (1)

Country Link
KR (1) KR101366116B1 (ko)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727970B2 (en) 2014-08-06 2017-08-08 Samsung Electronics Co., Ltd. Method and apparatus for generating hologram
KR20180024805A (ko) * 2016-08-31 2018-03-08 삼성전자주식회사 영상 처리 방법 및 장치
US10321159B2 (en) 2015-08-27 2019-06-11 Samsung Electronics Co., Ltd. Apparatus and method of performing fourier transform
US10545328B2 (en) 2016-12-06 2020-01-28 Samsung Electronics Co., Ltd. Method and apparatus for processing image
US10783717B2 (en) 2016-07-13 2020-09-22 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional (3D) image
US10915989B2 (en) 2018-02-23 2021-02-09 Samsung Electronics Co., Ltd. Apparatus and method of processing image data using IFFT
US10996627B2 (en) 2017-10-13 2021-05-04 Samsung Electronics Co., Ltd. Image data processing method and apparatus
US11747767B2 (en) 2019-03-19 2023-09-05 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional holographic image

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960042330A (ko) * 1995-05-25 1996-12-21 이데이 노브유끼 푸리에변환 연산장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960042330A (ko) * 1995-05-25 1996-12-21 이데이 노브유끼 푸리에변환 연산장치 및 방법

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727970B2 (en) 2014-08-06 2017-08-08 Samsung Electronics Co., Ltd. Method and apparatus for generating hologram
US10321159B2 (en) 2015-08-27 2019-06-11 Samsung Electronics Co., Ltd. Apparatus and method of performing fourier transform
US10783717B2 (en) 2016-07-13 2020-09-22 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional (3D) image
US11282289B2 (en) 2016-07-13 2022-03-22 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional (3D) image
US11727659B2 (en) 2016-07-13 2023-08-15 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional (3D) image
KR20180024805A (ko) * 2016-08-31 2018-03-08 삼성전자주식회사 영상 처리 방법 및 장치
US10275849B2 (en) 2016-08-31 2019-04-30 Samsung Electronics Co., Ltd. Image processing method and apparatus for performing two-dimensional fast Fourier transform with respect to image data
KR102654862B1 (ko) 2016-08-31 2024-04-05 삼성전자주식회사 영상 처리 방법 및 장치
US10545328B2 (en) 2016-12-06 2020-01-28 Samsung Electronics Co., Ltd. Method and apparatus for processing image
US10996627B2 (en) 2017-10-13 2021-05-04 Samsung Electronics Co., Ltd. Image data processing method and apparatus
US10915989B2 (en) 2018-02-23 2021-02-09 Samsung Electronics Co., Ltd. Apparatus and method of processing image data using IFFT
US11747767B2 (en) 2019-03-19 2023-09-05 Samsung Electronics Co., Ltd. Method and apparatus for processing three-dimensional holographic image

Similar Documents

Publication Publication Date Title
KR101366116B1 (ko) Fft 병렬 처리 방법, 이를 적용한 데이터 처리 방법 및 홀로그램 복원 장치
US11698773B2 (en) Accelerated mathematical engine
Sumanaweera et al. Medical image reconstruction with the FFT
EP2858297A1 (en) Secret sharing system, data distribution device, distributed data conversion device, secret sharing method, and program
CN112200713B (zh) 一种联邦学习中的业务数据处理方法、装置以及设备
US10546045B2 (en) Efficient extended-precision processing
JP2012502379A (ja) 離散フーリェ変換(dft)係数についての行列を演算するための方法および装置
Deryabin et al. High performance parallel computing in residue number system
KR102376492B1 (ko) 실수값을 입력으로 하는 고속푸리에 변환장치 및 방법
KR20180024805A (ko) 영상 처리 방법 및 장치
EP3096308B1 (en) Element replication device, element replication method, and program
WO2023045516A1 (zh) 执行fft的方法、装置及设备
KR101321897B1 (ko) 독립적 홀로그램 화소 연산 방식의 고속 홀로그램 생성 장치
CN109655072B (zh) 地图的生成方法和装置
US9953394B2 (en) Methods and systems for designing correlation filter
Mahmood et al. Algorithm and architecture optimization for 2D discrete Fourier transforms with simultaneous edge artifact removal
JP2004348493A (ja) 通信隠蔽型の並列高速フーリエ変換方法
Barina et al. Accelerating discrete wavelet transforms on GPUs
Lopez et al. Digital holographic image reconstruction and GPU acceleration
US9311274B2 (en) Approach for significant improvement of FFT performance in microcontrollers
JP2015135452A (ja) ペアリング演算装置、マルチペアリング演算装置、プログラム
JP7058810B2 (ja) 信号処理システム
Carranza et al. A scalable architecture for implementing the fast discrete periodic radon transform for prime sized images
Aizenberg et al. Discrete generalized Fresnel functions and transforms in an arbitrary discrete basis
JP6361195B2 (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant