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.
Use the previously mentioned formula to calculate the storage requirement of the 2d histogram. By plugging in the image dimensions, θ resolution and assuming int16 data type, you arrive at 162 KB of storage for the histogram.
You must eliminate option 1 from the three options listed above. The storage requirement of the histogram alone exceeds 128 KB. The solution requires multiple tiles. Each tile computes 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.