FS#7763 - Speed up of video rendering for iPOD Video

Attached to Project: Rockbox
Opened by Andree Buschmann (Buschel) - Wednesday, 12 September 2007, 16:05 GMT
Last edited by Thom Johansen (preglow) - Friday, 28 September 2007, 11:25 GMT
Task Type Patches
Category Applications
Status Closed
Assigned To No-one
Operating System iPod 5G
Severity Low
Priority Normal
Reported Version Daily build (which?)
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


Speeding up the lcd_yuv_blit()-function for iPOD Video. Measured with "elephants dream" the fps has gone up from 9.1 to 9.9 fps.
This task depends upon

Closed by  Thom Johansen (preglow)
Friday, 28 September 2007, 11:25 GMT
Reason for closing:  Accepted
Comment by Andree Buschmann (Buschel) - Wednesday, 12 September 2007, 16:16 GMT
- saved 4 multiplies and 2 substraction
- saved 3 variables
- simplified range-limitation (added 4 shift through this)
Comment by Andree Buschmann (Buschel) - Thursday, 13 September 2007, 09:22 GMT
Even more speed-up (now "elephants dream" plays at about 10.4fps, which is +15% compared to trunk).

- took over conversion parameters from sansa/gigabeat; these look more reasonable than the former ones
- added some documentation about conversion and constants
- split range-check of RB- and G-components to save 4 shifts (this is faster than only one check with additional shifts)

- in the former code (also in trunk!) the "-16" in the operation (Y'-16) * RGBYFAC was missing
- in trunk code an allowed value (up to 0x3f) of the green component would always lead to boundary check of all components
Comment by Douglas Valentine (Dwyloc) - Thursday, 27 September 2007, 22:59 GMT
Your patch would seem to work quite nicely on my 80GB iPod video, now I guess I just have to wait on it being committed to SVN.

Keep up the good work all these little tweaks add up and help to make the iPod ports just that little bit nicer :)