In AIE1, local tile memory = 32 KB and each tile has access to three neighboring tile memories for a total of 128 KB.
As previously mentioned, you need to store the histogram and the precomputed cos(θ) and sin(θ) across the chosen resolution.
Storage required for the precomputed cos(θ) and sin(θ) = 2 x 2 B x 128 = 512 B.
The storage requirement of the 2D histogram can be calculated using the previously mentioned formula. By plugging in the image dimensions, θ resolution and assuming int16 data type, you arrive at 162 KB of storage for the histogram.
From the three options listed above, you are forced to eliminate option 1 because the storage requirement of the histogram alone is above 128 KB. This means that the solution is expected to require multiple tiles, each computing a partial transform for the whole input image.
The following tables help determine the partial histogram storage requirements as you sweep the number of tiles.
Parameter | Value | Units | Notes |
---|---|---|---|
Image # Rows Pixels "R" | 216 | Pixels | |
Image # Column Pixels "C" | 240 | Pixels | |
Histogram Data Type Size | 2 | B | Assume <int16> |
Theta Resolution (# steps) | 128 | Over 180° | |
Target throughput | 220 | Mpixel/sec | |
# AIE Tiles | 32 | tiles | Partition over "Theta" |
Parameter | Value | Units | Notes |
---|---|---|---|
Largest value of "rho" | 323 | Pixels | |
Total histogram storage | 161.8 | KB | Total output storage |
Partial histogram storage | 5.1 | KB | Output storage per tile |
Using a pivot table from Excel, the following figure shows the histogram tile storage.