- Status Closed
- Percent Complete
- Task Type Patches
- Category Video
- Assigned To No-one
- Operating System iAudio X5
- Severity Medium
- Priority Very Low
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
FS#5786 - lcd_yuv_blit for X5
Implements lcd_yuv_blit in the x5 driver.
Adds nescessary defines for mpegplayer to use it on the x5.
Hard coded to YUV4:2:0 for now.
Helps a few fps and I get the impression things are close to maxed out as far as speed. Tried everything including lookup tables (which didn't really help at all– even in IRAM). Can blit any rectangle of the image and keeps drawing clipped to the visible display.
The awkward gotos are there to save precious bytes for the leading and trailing pixels drawing.
Closed by RaeNye
2006-08-11 14:15
Reason for closing: Accepted
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
2006-08-11 14:15
Reason for closing: Accepted
Additional comments about closing: Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407
10x!
I\'ll gladly commit an
ASM-optimized version :)
Loading...
Available keyboard shortcuts
- Alt + ⇧ Shift + l Login Dialog / Logout
- Alt + ⇧ Shift + a Add new task
- Alt + ⇧ Shift + m My searches
- Alt + ⇧ Shift + t focus taskid search
Tasklist
- o open selected task
- j move cursor down
- k move cursor up
Task Details
- n Next task
- p Previous task
- Alt + ⇧ Shift + e ↵ Enter Edit this task
- Alt + ⇧ Shift + w watch task
- Alt + ⇧ Shift + y Close Task
Task Editing
- Alt + ⇧ Shift + s save task
Updated version since the implementation exceeded the requirements of performance functions.
I want to do a little more testing here. I have managed to get a couple more 10'ths out of it to get 13.5 fps and I think there may be a little more. If ya just want the function there for now to have it in place, go ahead and commit and I'll add another task with an update.
Adding the following (320 bytes):
unsigned char y_ibuf[LCD_WIDTH] IBSS_ATTR;
unsigned char u_ibuf[LCD_WIDTH/2] IBSS_ATTR;
unsigned char v_ibuf[LCD_WIDTH/2] IBSS_ATTR;
and using memcpy to copy to IRAM first brings it up to 14.9 fps.
Perhaps there should be a function to set these buffers by the codec or plugin so they don't stay resident?
lcd_set_yuv_line_buffers(unsigned char * const y, unsigned char * const u, unsigned char * const v);
Gonna try assembly code. I think it will pay off.