Английская Википедия:Hexagonal Efficient Coordinate System

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

The Hexagonal Efficient Coordinate System (HECS), formerly known as Array Set Addressing (ASA), is a coordinate system for hexagonal grids that allows hexagonally sampled images to be efficiently stored and processed on digital systems. HECS represents the hexagonal grid as a set of two interleaved rectangular sub-arrays, which can be addressed by normal integer row and column coordinates and are distinguished with a single binary coordinate. Hexagonal sampling is the optimal approach for isotropically band-limited two-dimensional signals[1] and its use provides a sampling efficiency improvement of 13.4% over rectangular sampling. The HECS system enables the use of hexagonal sampling for digital imaging applications without requiring significant additional processing to address the hexagonal array.[2]

Introduction

The advantages of sampling on a hexagonal grid instead of the standard rectangular grid for digital imaging applications include: more efficient sampling, consistent connectivity, equidistant neighboring pixels, greater angular resolution, and higher circular symmetry.[3][4][5] Sometimes, more than one of these advantages compound together, thereby increasing the efficiency by 50% in terms of computation and storage when compared to rectangular sampling.[6] Researchers have shown[1][6][7] that the hexagonal grid is the optimal sampling lattice and its use provides a sampling efficiency improvement of 13.4% over rectangular sampling for isotropically band-limited two-dimensional signals. Despite all of these advantages of hexagonal sampling over rectangular sampling, its application has been limited because of the lack of an efficient coordinate system.[8] However that limitation has been removed with the recentШаблон:When development of HECS.

Hexagonal Efficient Coordinate System

Description

Файл:Hex2RecASA.jpg
Representation of hexagonally sampled data as a pair of rectangular arrays using the HECS coordinate system

The Hexagonal Efficient Coordinate System (HECS) is based on the idea of representing the hexagonal grid as a set of two rectangular arrays which can be individually indexed using familiar integer-valued row and column indices. The arrays are distinguished using a single binary coordinate so that a full address for any point on the hexagonal grid is uniquely represented by three coordinates.[9]

<math> (a,r,c) \in \{ 0,1 \} \times \mathbb Z\times\mathbb Z</math>

where the coordinates represent the array, row, and column, respectively. The hexagonal grid is separated into rectangular arrays by taking every other row as one array and the remaining rows as the other array, as shown in the figure.

Nearest neighbors

Файл:HECS Nearest Neighbors.png
Nearest neighbors of a HECS pixel

The addresses of the nearest neighbors of a pixel (or grid point) are easily determined by simple expressions which are functions of the pixel's coordinates, as shown.

Convert to Cartesian

Converting coordinates in HECS to their Cartesian counterparts is done with a simple matrix multiplication

<math>\begin{bmatrix}

x\\y \end{bmatrix} = \begin{bmatrix} \frac{1}{2} & 0 & 1 \\ \frac{\sqrt{3}}{2} & \sqrt{3} & 0 \end{bmatrix}\begin{bmatrix} a\\r\\c \end{bmatrix} = \begin{bmatrix} \frac{a}{2} + c \\(\sqrt{3})(\frac{a}{2} + r) \end{bmatrix}.</math>

Operators

Preliminaries

Let the set of all possible HECS addresses be <math> \text{HECS} = \{ 0,1 \} \times \mathbb Z \times\mathbb Z.</math>

<math>\mathbf{p}_i =\begin{bmatrix}

a_i\\r_i\\c_i \end{bmatrix} \in \text{HECS}.</math>

<math>\mathbf{p} =\begin{bmatrix}

a\\r\\c \end{bmatrix} \in \text{HECS}.</math>

<math> k \in \mathbb N.</math>

Addition

A binary addition operator <math>(\text{HECS},+)</math> has been defined as

<math>\mathbf{p}_1 + \mathbf{p}_2=\begin{bmatrix}

a_1 \oplus a_2\\r_1 + r_2 + (a_1 \land a_2)\\c_1 + c_2 + (a_1 \land a_2) \end{bmatrix}, </math> where <math>\oplus</math> is the logical XOR operator and <math>\land</math> is the logical AND operator.

Negation

A unary negation operator <math>(\text{HECS},-)</math> has been defined as

<math>-\mathbf{p} =\begin{bmatrix}

a\\-r-a\\-c-a \end{bmatrix}. </math>

Subtraction

A binary subtraction operator <math>(\text{HECS},-)</math> has been defined by combining the negation and addition operations as

<math>\mathbf{p}_1-\mathbf{p}_2 = \mathbf{p}_1 + (-\mathbf{p}_2).</math>

Scalar multiplication

Scalar multiplication has been defined for non-negative integer scalar multipliers as

<math>k\mathbf{p}=\begin{bmatrix}

(ak) \bmod 2\\kr + (a)\left\lfloor \frac{k}{2} \right\rfloor \\kc + (a)\left\lfloor \frac{k}{2} \right\rfloor \end{bmatrix}, </math> and

<math>-k\mathbf{p}=k(-\mathbf{p}).</math>

Separable Fourier kernel

The hexagonal discrete Fourier transform (HDFT) was developed by Mersereau[6] and was converted to an HECS representation by Rummelt.[2] Let <math>x(a, r, c)</math> be a two-dimensional hexagonally sampled signal and let both arrays be of size <math>n\times m</math>. Let <math>X(b, s, d)</math> be the Fourier transform of x. The HDFT equation for the forward transform is given by

<math>X(b, s, d) = \sum_{a} \sum_r \sum_c x(a, r, c) \exp\left[-j\pi\left(\frac{(a+2c)(b+2d)}{2m} + \frac{(a+2r)(b+2s)}{n} \right) \right] </math>

Notice that the HECS representation of the HDFT overcomes Mersereau's "insurmountable difficulty" since it is a separable kernel, which led to the development of the hexagonal fast Fourier transform.[10]

Alternative addressing schemes

There have been several attempts to develop efficient coordinate systems for the hexagonal grid. Snyder[4] describes a coordinate system based on non-orthogonal bases which is referred to as the h2 system. Her[11] developed an interesting three-coordinate system that uses an oblique plane in three dimensional space. For various reasons, both of these approaches require cumbersome machine representations that lead to inefficient image processing operations.[8] Generalized balanced ternary (GBT) is based on a hierarchy of cells, where at every level the cells are each aggregates of cells from the previous level.[12] In two-dimensions, GBT can be used to address the hexagonal grid where each grid point is addressed with a string of base-7 digits and each digit indicates the hexagon's position within that level of the hierarchy.[13] The use of GBT and slightly modified versions of GBT such as HIP[14] and Spiral Architecture[15] for addressing hexagonal grids in two dimensions are abundant in the literature.[5][14][15][16] While these approaches have some interesting mathematical properties, they fail to be convenient or efficient for image processing.[8]

Other 2D hexagonal grid applications

Although HECS was developed mainly for digital image processing of hexagonally sampled images, its benefits extend to other applications such as finding the shortest path distance and shortest path routing between points in hexagonal interconnection networks.[8] Other addressing approaches have been developed for such applications[17][18][19] but they suffer the same drawbacks as the ones described above.[8]

References

Шаблон:Reflist

  1. 1,0 1,1 Ошибка цитирования Неверный тег <ref>; для сносок Petersen62 не указан текст
  2. 2,0 2,1 Ошибка цитирования Неверный тег <ref>; для сносок Rummelt10 не указан текст
  3. Ошибка цитирования Неверный тег <ref>; для сносок He05 не указан текст
  4. 4,0 4,1 Ошибка цитирования Неверный тег <ref>; для сносок Snyder99 не указан текст
  5. 5,0 5,1 Ошибка цитирования Неверный тег <ref>; для сносок vanRoessel88 не указан текст
  6. 6,0 6,1 6,2 Ошибка цитирования Неверный тег <ref>; для сносок Mersereau79 не указан текст
  7. Ошибка цитирования Неверный тег <ref>; для сносок Vitulli02 не указан текст
  8. 8,0 8,1 8,2 8,3 8,4 Ошибка цитирования Неверный тег <ref>; для сносок Rummelt11 не указан текст
  9. Шаблон:Cite patent Шаблон:PD-notice
  10. Ошибка цитирования Неверный тег <ref>; для сносок Birdsong16 не указан текст
  11. Ошибка цитирования Неверный тег <ref>; для сносок Her93 не указан текст
  12. Ошибка цитирования Неверный тег <ref>; для сносок Lucas80 не указан текст
  13. Ошибка цитирования Неверный тег <ref>; для сносок Gibson81 не указан текст
  14. 14,0 14,1 Ошибка цитирования Неверный тег <ref>; для сносок Middleton05 не указан текст
  15. 15,0 15,1 Ошибка цитирования Неверный тег <ref>; для сносок Sheridan96 не указан текст
  16. Ошибка цитирования Неверный тег <ref>; для сносок Vince07 не указан текст
  17. Ошибка цитирования Неверный тег <ref>; для сносок Carle00 не указан текст
  18. Ошибка цитирования Неверный тег <ref>; для сносок Nocetti02 не указан текст
  19. Ошибка цитирования Неверный тег <ref>; для сносок He06 не указан текст