The modules for the video processing:
- Raw video (after A/D) comes in with NTSC or PAL format (720 x 480), we down-sample to 352 x 240 during the processing on DSP. The output information are sent to PPC and will be up-sample according to percentage.
- Raw video is used for processing, another channel of raw video is used for compression.
- After the video-input driver is called, 3/5 buffers are used for the video. The buffers are put in 3 queues: ready, used and unused(whatever), GetBuffer() function to get the pointer to the newest buffer in ready queue.
- There are shared memory between DSP and PPC. DSP sends information here and PPC can read it.
- There are also 3/5 buffers for output.
- The output is MPEG4, it is decoder locally, with size D1(720x480), half-D1, CIF or 4CIF. It is difficult to decoder 4CIF for lots of channels meanwhile.
- DPS CPU is 351Mhz, TI is 600Mhz
- Ram is 128M, Flash is 64M, include NOR(boot/system) and NAND (our files)
- video streaming
Several problems I met :
- convert YUV444 to YUV420, or YUV 422(say 420 is to pick the left-top one in 4 pixels, 422 is to pick the left 2 in 4 pixels). Some YUV444 use interleave, it looks like y,u,v,y,u,v in the memory. Some use yyyyy ...uuuuu.....vvvvv
- convert ARGB (32bit 8-8-8-8) to RGB (0-4-5-4 bits) [should be 5-6-5, --6/26/09]
- rotate a 16x16 image
Embedded, real-time system
- concept of embedded. (wiki:) is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints. It is usually embedded as part of a complete device including hardware and mechanical parts. Properties: (1) usually for specified application. (2) use micro-processor as core. (3)strict requirement for timing and stability. (4) Automatic operation.
- how to define real-time system and high performance system. The point is "guarantee" to reach a line.