I have a new school project and I can choose what to make out of microcontrollers. I'm rejecting ATXMEGA128A1 because there's nothing to support it and its JTAG. No RTOS-es are compatible with it.
I'm choosing ATMEGA328 instead because it's DIP so that I don't have to solder anything and it's compatible with Arduino and there's also a version with built in Arduino bootloader.
I'm thinking of making a video player. There have been challenges because of which this couldn't have been done, but I found possible solutions.
As video and picture viewing takes a lot of RAM and ATMEGAs have only a few kilobytes of it, I was thinking of using an extra RAM chip to solve this problem. The extra RAM chip is called 23LC1024. More explanation here:
It has a neat Serial Quad Interface which is probably faster than the regular Serial Peripheral Interface. With some asm code processing the bits, I think this might work very well.
How many of these would I need for a perfect 128x160 JPEG decoding (reason why JPEG will be explained later)? One has 1MB RAM.
The video format in question is SMV. According to this site: http://www.miriamruiz.es/weblog/...
An SMV file has three sections, concatenated together:
- An IMA ADPCM .wav file, with header.
- An SMV header.
- A number of .jpeg files, with headers, each prepended by a 24-bit (3-byte) little-endian value representing the size, and buffered at the end with nulls, so that they are at predictable locations (the jpeg modulo). SMV is a constant-bit-rate format, but the underlying format (jpeg) is not. Proprietary encoders -according to smvconv’s author- probably make up for this by encoding at various qualities until a jpeg of the proper size is made.
I have a SMV converter that I got from a video player's CD.
Now, I don't know is there an JPEG reading algorithm so that I can open and decode those JPEGs. Especially for AVR. If there is, the fopen() will be used and I don't think AVR-GCC library has that. Maybe the FreeRTOS has it.
To display the picture, I'm using this display: http://www.elecfreaks.com/store/... and I have it right now.
The video size will be 128x160 and maximum frame rate 24.
The audio playing will be handled by the famous audio playing chip VLSI1053. http://www.vlsi.fi/en/products/v... It supports IMA ADPCM which is great!
Do you think this would work together? Would JPEG decoding take too long? As all elements will with on 3.3V, the maximum frequency will be 13MHz. Would that be enough?