rockbox/firmware/target/arm/s5l8702
Cástor Muñoz b320bbaf61 iPod Classic: YUV to RGB optimizations for ARM v5+
Optimizes YUV to RGB conversion using ARMv5 multiply-accumulate
intructions for operations and data tables for saturation.

This first patch set includes the three versions i have developed.
Although iPod Classic need to use the latest version to reach 30fps,
old versions may serve other targets.

All versions are based on current SVN algorithm (round->scale->add)
using the same coefficients, so output results are identical.

Version history:

  ARMv4:
   - use all available registers to calculate four pixels within each
     loop iteration.
   - avoid LDR interlocks.

  ARMv5TE:
   - use ARMv5TE+ 1-cycle multiply-accumulate instructions.

  ARMv5TE_WST:
   - use data tables (256 bytes) for RBG565 saturation.

Benchmarks results using iPod Classic (ARM926EJ 216Mhz):

                 size    test_fps (1)    mpegplayer (2)
                 bytes   YUV  YUV1/4     average  min/max
                 -----   -----------     ------------------
  SVN-20141107   528     27.8  110.0     11035  10864/13397
  ARMv4          480     28.8  114.0      9767   9586/12126
  ARMv5TE        468     29.7  117.5      8751   8584/11118
  ARMv5TE_WST    544     33.6  133.0      6355   6316/6403

  (1) boosted
  (2) play full elephants_dream_320x240.mpg file (15693 frames) using
      mpegplayer, patched RB measures YUV to RGB565 frame conversion
      time (microseconds)

  Compared against the WST version, the ARMV5TE version w/o cached
  saturation tables is slower, but it is smaller and i have doubts
  about the power consumption.

Change-Id: I2b6a81804636658d85a1bb104ccb2055e77ac120
Reviewed-on: http://gerrit.rockbox.org/1034
Reviewed-by: Cástor Muñoz <cmvidal@gmail.com>
Tested: Cástor Muñoz <cmvidal@gmail.com>
2014-12-10 20:39:34 +01:00
..
ipod6g iPod Classic: YUV to RGB optimizations for ARM v5+ 2014-12-10 20:39:34 +01:00
app.lds Get the linker files that slipped through in r31337. 2011-12-17 02:00:59 +00:00
boot.lds Get the linker files that slipped through in r31337. 2011-12-17 02:00:59 +00:00
crt0.S arm: factor all exception handlers out of the crt0.S files 2012-04-06 13:46:32 +02:00
debug-s5l8702.c iPod Classic: fix s5l8702 cache line length. 2014-11-13 23:00:33 +01:00
i2c-s5l8702.c Bulk convert all DOS line endings to UNIX. 2011-11-06 22:44:25 +00:00
kernel-s5l8702.c iPod Classic: minor modifications in TIMER 2014-12-08 03:07:44 +01:00
pcm-s5l8702.c iPod Classic: fix HW_FREQ_32 2014-11-18 06:22:32 +01:00
pcm-target.h Bulk convert all DOS line endings to UNIX. 2011-11-06 22:44:25 +00:00
system-s5l8702.c iPod Classic: minor modifications in TIMER 2014-12-08 03:07:44 +01:00
system-target.h Fix last warnings. 2014-03-03 20:34:46 +01:00
timer-s5l8702.c iPod Classic: minor modifications in TIMER 2014-12-08 03:07:44 +01:00