Neo1973 video (was Re: What would be a realistic but challenging level for Bryce announced trophy money for video playback on the Neo1973? Re: h.264 format is now open?)

Harald Welte laforge at
Sat Feb 3 14:47:12 CET 2007

On Fri, Feb 02, 2007 at 11:06:43PM +0200, Siarhei Siamashka wrote:
> On Friday 02 February 2007 12:31, Robert Michel wrote:
> > Some video information given by Sean in november:
> >
> A few technical questions here. Is image data constantly transferred to LCD
> from system memory (60 times per second)?

yes, since the graphics controller is embedded in the S3C2410 SoC.  The LCM
signal lines are directly attached to the S3C2410.  There is no other
graphics memory than main memory.

> If we compare it to Nokia 770, Nokia 770 has a similar design with framebuffer
> stored in the system memory with data getting transferred to graphics chip
> using DMA when needed (graphics chip has its own video memory). 

That's a significantly different design.

Also, the 770 has a landscape display.  We have a portrait display.  The
S3C2410 cannot rotate the image, so you would have to rotate every frame
in software, too!

> If video is really heavy on memory bus, is it possible to reduce refresh rate
> somewhat (to 50Hz for example) to improve performance?

There's not too much room since the minimum pixel clock frequency of the
LCM is 20MHz.  At a typical cycle of 520x648, you get 59Hz minimum
refresh rate. You could probably go all the way to extend horzontal
/vertical front/back porch, etc.   But they can only be increased a tiny
bit, the maximum values are determined by the S3C2410 register set.

> Just for some experiment, I compiled mplayer for arm920t (not using armv5te
> instructions), and benchmarked it with sdl video output (software YUV->RGB
> conversion, generic nonoptimized scaling 320x240 => 640x480) and libmad 
> mp3 audio decoder. 

Please note that the LCM we use in the Neo1973 can do hardware scaling,
e.g. theoretically you can software-reconfigure the LCM to behave as
QVGA 240x320, and then change the s3c2410_fb kernel driver timings

This has not been tested or implemented by us, since we're mainly
interested in getting a high-res phone UI working right now :)

However, if somebody skilled wants to write, integrate and test code for
this, I'm happy the help.   We cannot disclose the LCM data sheet, but I
can add the software sequence for 240x320 / 480x640 switching to the
[GPL licensed] kernel LCM driver at least after phase-1 (March 11).

The S3C2410 user manual is publicly available from Samsung
Semiconductors, so basically it's up to whoever is interested to
implement it.  One interesting question is how to merge this into
X11/Kdrive... As far as I understand,  only the very latest big
(non-kdrive) X11 has randr capabilities for dynamically adding/removing
viewports and changing resolutions.

[But did I mention that Keith Packard gets a phase-0 phone? *g*]

- Harald Welte <laforge at>         
Software for the world's first truly open Free Software mobile phone

More information about the community mailing list