LCD, jpeg decoding and other things

XCore Project reviews, ideas, videos and proposals.
User avatar
andrew
Experienced Member
Posts: 113
Joined: Fri Dec 11, 2009 10:22 am

LCD, jpeg decoding and other things

Post by andrew »

Here are some clips:
(transition effects)
r-Bla9FAJlU
and
(streaming jpegs from a flash)
2Vzn-cbbW48

So far there are transition effects and jpeg decoding. It's running the lcd at 60Hz with an SDRAM clocked at 62.5 MHz. The jpeg decoder runs in about 8KB (5-10KB depending on your options) and will decoded at 5.5fps for this screen.


User avatar
andrew
Experienced Member
Posts: 113
Joined: Fri Dec 11, 2009 10:22 am

Post by andrew »

Technical Details:

LCD screen 480x272 at 62Hz refresh rate. CMOS interface, RGB565.
XCore C5 128 pin running at 500MHz.

Jpeg image outputted from gimp at quality 70 decoding at 5.5fps, until I optimise it.

The LCD image comes from a double buffer on an 2MB SDRAM running at 62.5MHz. At 2MB we can fit 8 full screen images, so there is plenty of room to play with.
Images loaded from flash with the device boots.

The SDRAM and LCD are controlled through a manager thread which also manages memory allocation. The application thread is free to compute transitions/menus/effects/etc at its leisure. There is also 4 threads free to do what you want with.

Note: the alpha blending is particularly nice.
User avatar
Berni
Respected Member
Posts: 363
Joined: Thu Dec 10, 2009 10:17 pm

Post by Berni »

That does look like some nice coding there. Decoding seams to be quite fast too, did you use a jpeg decoder C library. I saw Elm Chan do a nice low resource use one.
User avatar
andrew
Experienced Member
Posts: 113
Joined: Fri Dec 11, 2009 10:22 am

Post by andrew »

I wrote the jpeg decoder from scratch but used a stock idct from MPEG ref design. When I get time I'll rewrite the idct for xcore and drop the clipping tables and make use of the macc instruction. This should improve the speed and size a fair bit.
User avatar
Gravis
Experienced Member
Posts: 75
Joined: Thu Feb 02, 2012 3:32 pm

Post by Gravis »

andrew wrote:The LCD image comes from a double buffer on an 2MB SDRAM running at 62.5MHz. At 2MB we can fit 8 full screen images, so there is plenty of room to play with.
so... does this board of yours have some schematics we can use? :)
User avatar
andrew
Experienced Member
Posts: 113
Joined: Fri Dec 11, 2009 10:22 am

Post by andrew »

A design guide is on its way. As we bring things up, I'll update this thread.