Jump to content
Wikipedia The Free Encyclopedia

Hexagonal fast Fourier transform

From Wikipedia, the free encyclopedia
A major contributor to this article appears to have a close connection with its subject. It may require cleanup to comply with Wikipedia's content policies, particularly neutral point of view. Please discuss further on the talk page. (October 2025) (Learn how and when to remove this message)

The hexagonal fast Fourier transform (HFFT) is a tool in image and signal processing which uses fast Fourier transform (FFT) routines to compute the discrete Fourier transform (DFT) of images captured with hexagonal sampling.[1] Hexagonal sampling's application is limited due to the lack of an efficient coordinate system [2] . The existence of a separable Fourier kernel for a hexagonally sampled image allows the use of existing FFT routines to efficiently compute the DFT of such an image.

Preliminaries

[edit ]

Hexagonal Efficient Coordinate System (HECS)

[edit ]
Representation of hexagonally sampled data as a pair of rectangular arrays using the HECS coordinate system

The Hexagonal Efficient Coordinate System (formerly known as Array Set Addressing (ASA)) was developed based on the fact that a hexagonal grid can be represented as a combination of two interleaved rectangular arrays.[3] One can address each individual array by using integer-valued row and column indices, and the individual arrays can be distinguished by a single binary coordinate. Therefore, a full address for any point in the hexagonal grid can be uniquely represented by three coordinates:

( a , r , c ) { 0 , 1 } × Z × Z {\displaystyle (a,r,c)\in \{0,1\}\times \mathbb {Z} \times \mathbb {Z} } {\displaystyle (a,r,c)\in \{0,1\}\times \mathbb {Z} \times \mathbb {Z} }

where the coordinates a, r and c represent the array, row and column respectively. The figure shows how the hexagonal grid is represented by two interleaved rectangular arrays in HECS coordinates.

Hexagonal discrete Fourier transform

[edit ]

The hexagonal discrete Fourier transform (HDFT) has been developed by Mersereau[4] and it has been converted to an HECS representation by Rummelt.[3] Let x ( a , r , c ) {\displaystyle x(a,r,c)} {\displaystyle x(a,r,c)} be a two-dimensional hexagonally sampled signal and let both arrays be of size n × m {\displaystyle n\times m} {\displaystyle n\times m}. Let, X ( b , s , d ) {\displaystyle X(b,s,d)} {\displaystyle X(b,s,d)} be the Fourier transform of x. The HDFT equation for the forward transform as shown in [3] is given by

X ( b , s , d ) = a r c x ( a , r , c ) E ( ) {\displaystyle X(b,s,d)=\sum _{a}\sum _{r}\sum _{c}x(a,r,c)E(\cdot )} {\displaystyle X(b,s,d)=\sum _{a}\sum _{r}\sum _{c}x(a,r,c)E(\cdot )}

where

E ( ) = exp [ j π ( ( a + 2 c ) ( b + 2 d ) 2 m + ( a + 2 r ) ( b + 2 s ) n ) ] {\displaystyle E(\cdot )=\exp \left[-j\pi \left({\frac {(a+2c)(b+2d)}{2m}}+{\frac {(a+2r)(b+2s)}{n}}\right)\right]} {\displaystyle E(\cdot )=\exp \left[-j\pi \left({\frac {(a+2c)(b+2d)}{2m}}+{\frac {(a+2r)(b+2s)}{n}}\right)\right]}

Note that the above equation is separable and hence can be expressed as

X ( b , s , d ) = f 0 ( b , s , d ) + W ( ) f 1 ( b , s , d ) {\displaystyle X(b,s,d)=f_{0}(b,s,d)+W(\cdot )f_{1}(b,s,d)} {\displaystyle X(b,s,d)=f_{0}(b,s,d)+W(\cdot )f_{1}(b,s,d)}

where

W ( ) = exp [ j π ( b + 2 d 2 m + b + 2 s n ) ] {\displaystyle W(\cdot )=\exp \left[-j\pi \left({\frac {b+2d}{2m}}+{\frac {b+2s}{n}}\right)\right]} {\displaystyle W(\cdot )=\exp \left[-j\pi \left({\frac {b+2d}{2m}}+{\frac {b+2s}{n}}\right)\right]}

and

g a ( b , r , d ) = c x ( a , r , c ) exp ( j 2 π ( c ) ( b + 2 d ) 2 m ) {\displaystyle g_{a}(b,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(b+2d)}{2m}}\right)} {\displaystyle g_{a}(b,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(b+2d)}{2m}}\right)}
f a ( b , s , d ) = r g a ( b , r , d ) exp ( j 2 π ( r ) ( b + 2 s ) n ) {\displaystyle f_{a}(b,s,d)=\sum _{r}g_{a}(b,r,d)\exp \left(-j2\pi {\frac {(r)(b+2s)}{n}}\right)} {\displaystyle f_{a}(b,s,d)=\sum _{r}g_{a}(b,r,d)\exp \left(-j2\pi {\frac {(r)(b+2s)}{n}}\right)}

Hexagonal fast Fourier transform (HFFT)

[edit ]

The linear transforms g a {\displaystyle g_{a}} {\displaystyle g_{a}} and f a {\displaystyle f_{a}} {\displaystyle f_{a}} are similar to the rectangular Fourier kernel where a linear transform is applied along each dimension of the 2-D rectangular data.[5] Each of these equations, discussed above, is a combination of four rectangular arrays that serve as precursors to the HDFT. Two out of those four rectangular g a {\displaystyle g_{a}} {\displaystyle g_{a}} terms contribute to the sub-array of HFFT. By switching the binary coordinate, we have four different forms of equations. Three out of those four expressions have been evaluated using "non-standard transforms (NSTs)" (shown below) while one expression is computed using any correct and applicable FFT algorithm.[3]

g a ( 0 , r , d ) = c x ( a , r , c ) exp ( j 2 π ( c ) ( d ) m ) {\displaystyle g_{a}(0,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(d)}{m}}\right)} {\displaystyle g_{a}(0,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(d)}{m}}\right)}
g a ( 1 , r , d ) = c x ( a , r , c ) exp ( j 2 π ( c ) ( 2 d + 1 ) 2 m ) {\displaystyle g_{a}(1,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(2d+1)}{2m}}\right)} {\displaystyle g_{a}(1,r,d)=\sum _{c}x(a,r,c)\exp \left(-j2\pi {\frac {(c)(2d+1)}{2m}}\right)}
f a ( 0 , s , d ) = r g a ( a , r , d ) exp ( j 2 π ( r ) ( 2 s ) n ) {\displaystyle f_{a}(0,s,d)=\sum _{r}g_{a}(a,r,d)\exp \left(-j2\pi {\frac {(r)(2s)}{n}}\right)} {\displaystyle f_{a}(0,s,d)=\sum _{r}g_{a}(a,r,d)\exp \left(-j2\pi {\frac {(r)(2s)}{n}}\right)}
f a ( 1 , s , d ) = r g a ( a , r , d ) exp ( j 2 π ( r ) ( 2 s + 1 ) n ) {\displaystyle f_{a}(1,s,d)=\sum _{r}g_{a}(a,r,d)\exp \left(-j2\pi {\frac {(r)(2s+1)}{n}}\right)} {\displaystyle f_{a}(1,s,d)=\sum _{r}g_{a}(a,r,d)\exp \left(-j2\pi {\frac {(r)(2s+1)}{n}}\right)}

The second expression, g a ( 1 , r , d ) {\displaystyle g_{a}(1,r,d)} {\displaystyle g_{a}(1,r,d)}, is a standard discrete Fourier transform (DFT) with a constant offset along the rows of rectangular sub-arrays of a hexagonally-sampled image x ( a , r , c ) {\displaystyle x(a,r,c)} {\displaystyle x(a,r,c)}.[5] This expression is nothing more than a circular rotation of the DFT. Note that the shift must happen in the integer number of samples for the property to hold. This way, the function g a {\displaystyle g_{a}} {\displaystyle g_{a}} can be computed using the standard DFT, in same number of operations, without introducing an NST.

Since 0-array f a {\displaystyle f_{a}} {\displaystyle f_{a}} will always be symmetric about half its spatial period, it is enough to compute only half of it. This expression is the standard DFT of the columns of g a {\displaystyle g_{a}} {\displaystyle g_{a}}, which is decimated by a factor of 2 and then is duplicated to span the space of r for the identical second period of the complex exponential.[5] Mathematically,

X even [ k ] = n = 0 N 1 x [ n ] e 2 j π N 2 k n = n = 0 N 2 1 x [ n ] e 2 j π N / 2 k n + n = N 2 N 1 x [ n ] e 2 j π N / 2 k n = n = 0 N 2 1 x [ n ] e 2 j π N / 2 k n + n = 0 N 2 1 x [ n + N 2 ] e 2 j π N / 2 k n = n = 0 N 2 1 ( x [ n ] + x [ n + N 2 ] ) e 2 j π N / 2 k n {\displaystyle {\begin{aligned}X_{\text{even}}[k]&=\sum _{n=0}^{N-1}x[n]e^{-{\tfrac {2j\pi }{N}}2kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}+\sum _{n={\tfrac {N}{2}}}^{N-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}+\sum _{n=0}^{{\tfrac {N}{2}}-1}x\left[n+{\tfrac {N}{2}}\right]e^{-{\tfrac {2j\pi }{N/2}}kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}\left(x[n]+x\left[n+{\tfrac {N}{2}}\right]\right)e^{-{\tfrac {2j\pi }{N/2}}kn}\end{aligned}}} {\displaystyle {\begin{aligned}X_{\text{even}}[k]&=\sum _{n=0}^{N-1}x[n]e^{-{\tfrac {2j\pi }{N}}2kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}+\sum _{n={\tfrac {N}{2}}}^{N-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}x[n]e^{-{\tfrac {2j\pi }{N/2}}kn}+\sum _{n=0}^{{\tfrac {N}{2}}-1}x\left[n+{\tfrac {N}{2}}\right]e^{-{\tfrac {2j\pi }{N/2}}kn}\\[5pt]&=\sum _{n=0}^{{\tfrac {N}{2}}-1}\left(x[n]+x\left[n+{\tfrac {N}{2}}\right]\right)e^{-{\tfrac {2j\pi }{N/2}}kn}\end{aligned}}}

The expression for the 1-array f a {\displaystyle f_{a}} {\displaystyle f_{a}} is equivalent to the 0-array expression with a shift of one sample. Hence, the 1-array expression can be expressed as columns of the DFT of g a {\displaystyle g_{a}} {\displaystyle g_{a}} decimated by a factor of two, starting with second sample providing a constant offset needed by 1-array, and then doubled in space to span the range of s. Thus, the method developed by James B. Birdsong and Nicholas I. Rummelt[5] is able to successfully compute the HFFT using the standard FFT routines.

References

[edit ]
  1. ^ W. E. Snyder, 1999, H. Qi, and W. Sander, "A coordinate system for hexagonal pixels", in Proc. SPIE Medical Imaging: Image Processing, vol. 3661, pp. 716–727
  2. ^ Nicholas I. Rummelt and Joseph N. Wilson "Array set addressing: enabling technology for the efficient processing of hexagonally sampled imagery," Journal of Electronic Imaging 20(2), 023012 (1 April 2011). https://doi.org/10.1117/1.3589306
  3. ^ a b c d Nicholas I. Rummelt, 2010, Array Set Addressing: Enabling Efficient Hexagonally Sampled Image Processing, Ph.D. thesis, University of Florida
  4. ^ R. M. Mersereau, June 1979, "The Processing of Hexagonally Sampled Two-Dimensional Signals", Proceedings of the IEEE, vol. 67, no. 6, pp. 930–949
  5. ^ a b c d James B. Birdsong, Nicholas I. Rummelt, "The Hexagonal Fast Fourier Transform", 2016 IEEE International Conference on Image Processing (ICIP), pp. 1809–1812, doi:10.1109/ICIP.2016.7532670

AltStyle によって変換されたページ (->オリジナル) /