rotate-me-fast/TODO.md
Fabien Freling cce4d45ba6 Implement pixels as RGBX structure.
- Add ‘make debug’ target
- Add links in README
2014-07-12 22:42:48 +02:00

869 B

[-] Draw rotated pixels in src order -> cache write miss [X] Use atan2 at beginning and end of line. Interpolation in-between values [X] Test pixel perfect 90 [ ] Fix out-of-bounds pixel set

[ ] Optimization for square images? [X] Fixed point computation [-] -funroll-loops -> no gain [-] restrict qualifier -> unavailable in C++

Cache

[-] Rotate per channel -> no gain [X] Cut image in tiles [X] Overlap [-] Rotate in one temp tile then copy/move it [X] Align tiles in memory

Alignement

[X] RGBX format (create pixel structure) on 8 bytes (can do computation in-place) [ ] Load pixels in 64-bit variable [ ] Align memory on 16 bytes

Layout

[ ] Pack 4 neighbors in 16B structure (aligned) Each point is followed by the point below [ ] Spiral layout?

Quality

[X] Interpolate using SIMD, SSE (no big gain, alignement problem?) [ ] Image borders