| 
									
										
										
										
											2014-07-12 22:37:15 +02:00
										 |  |  | [-] 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 90 | 
					
						
							| 
									
										
										
										
											2014-06-26 23:45:02 +02:00
										 |  |  | [ ] Fix out-of-bounds pixel set | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-26 21:28:34 +02:00
										 |  |  | [ ] Optimization for square images? | 
					
						
							| 
									
										
										
										
											2014-07-12 22:37:15 +02:00
										 |  |  | [X] Fixed point computation | 
					
						
							|  |  |  | [-] -funroll-loops -> no gain | 
					
						
							|  |  |  | [-] restrict qualifier -> unavailable in C++ | 
					
						
							| 
									
										
										
										
											2014-06-28 13:52:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Cache
 | 
					
						
							| 
									
										
										
										
											2014-07-04 00:23:21 +02:00
										 |  |  | [-] Rotate per channel -> no gain | 
					
						
							|  |  |  | [X] Cut image in tiles | 
					
						
							| 
									
										
										
										
											2014-07-10 19:40:51 +02:00
										 |  |  |  [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 | 
					
						
							| 
									
										
										
										
											2014-07-12 22:37:15 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | ## 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 | 
					
						
							| 
									
										
										
										
											2014-07-10 19:40:51 +02:00
										 |  |  | [ ] Spiral layout? | 
					
						
							| 
									
										
										
										
											2014-06-28 13:52:24 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Quality
 | 
					
						
							| 
									
										
										
										
											2014-07-12 22:37:15 +02:00
										 |  |  | [X] Interpolate using SIMD, SSE (no big gain, alignement problem?) | 
					
						
							| 
									
										
										
										
											2014-07-04 00:23:21 +02:00
										 |  |  | [ ] Image borders |