rotate-me-fast/TODO.md

37 lines
1003 B
Markdown
Raw Permalink Normal View History

[-] Draw rotated pixels in src order -> cache write miss
2014-06-26 21:28:34 +02:00
[X] Use atan2 at beginning and end of line.
Interpolation in-between values
[X] Test pixel perfect 0, 90
2014-08-06 21:44:00 +02:00
[X] Optimization for square images
[X] Fixed point computation
[-] -funroll-loops -> no gain
[-] restrict qualifier -> unavailable in C++
[ ] All positions as simple integer
# Cache
2014-07-04 00:23:21 +02:00
[-] Rotate per channel -> no gain
[X] Cut image in tiles
[X] Overlap
2014-07-08 08:48:17 +02:00
[-] Rotate in one temp tile then copy/move it
2014-07-09 07:50:09 +02:00
[X] Align tiles in memory
[ ] Touch beginning of tile
## Alignement
[X] RGBX format (create pixel structure) on 8 bytes (can do computation in-place)
[X] Load pixels in 64-bit variable
[X] Directly load in SIMD 128-bit variable
[ ] Align memory on 16 bytes (would require padding)
[X] RGBX tiles
## Layout
[ ] Pack 4 neighbors in 16B structure (aligned)
Each point is followed by the point below
[ ] Spiral layout?
# Quality
[X] Interpolate using SIMD, SSE
2014-08-06 21:44:00 +02:00
[ ] Fix out-of-bounds pixel set
[X] Use padding
[ ] Image borders