Question For Devs: Video Proc For Emulators?


nubie

Recovering Jerk-A-Holic
Joined
Oct 19, 2005
Messages
2,749
Location
USA California
Website
Visit site
I read that the video processor has many hardware math operations.

fromMMSP2 Datasheet
"The Video Processor consists of multiple macro-functional H/W blocks including
VLD/VLC, DCT/IDCT, Q/IQ, ME, MP, MC, De-Block, De-Ring and SP(stream packet processor)"


My question is, are any of these functions accessible to programs?

And, will any of these help in emulation or video gaming(3d etc)

If anybody can help me out with these operations so I know what they do it would be cool.

I think there is a lot of processing power in the MMSP2 that might be tapped to enable some interesting games and emulators
 
I'm pretty sure most of those functions are used to accelerate video playback. As the GP2X comes with software that plays back video files their should be no reason why this couldn't be expoited for your coding pleasure.
 
That pdf doesn't really give much info. All these additional processors actually going to be useable? Often these sort of specialist processors are proprietary and don't have free toolchains.
 
Yes we'll be able to use all the functions provided by the various chips, hence why we have 2D processing enhancements which allow fast blitting, scaling and rotation amongst other things :)

The doc provides most of the information you'll need to do things, but currently the port of SDL we have doesnt take advantage of the hardware as far as I'm aware... perhaps it will eventually or when someone/people write an independant SDK :)
 
I read that the video processor has many hardware math operations.

fromMMSP2 Datasheet
"The Video Processor consists of multiple macro-functional H/W blocks including
VLD/VLC, DCT/IDCT, Q/IQ, ME, MP, MC, De-Block, De-Ring and SP(stream packet processor)"


My question is, are any of these functions accessible to programs?

Yes. Actuall video playback on the GP2x is done using this VideoProcessor. And this VP is flexible as any of its functions can be controlled by cpu. Look how many codecs it does support (from documentation):
Decoder
- MPEG1 – Video CD
- MPEG2 MP@ML Decode – DVD playback
- MPEG4 SP/ASP Decode @720 x 480, 30fps – DivX 3.11, 4x, 5x Playback
- H.263 Decode @352 x 288, 30fps – Video Stream Playback(CDMA, WiFi)
- JPEG Decode up to 4M pixels – DSC
- MJPEG Decode @720 x 480, 30fps - Security Cam
Encoder (!!!!)
- MPEG2 SP@ML Encode(Without B frame) – DVD Quality Record
- MPEG4 SP Encoder @720 x 480, 30fps – MPEG4 Camcorder, PVR, MMS
- JPEG Encode up to 4M pixels – DSC
- MJPEG Encode @720

And, will any of these help in emulation or video gaming(3d etc)

3D? No, rather not however everything depends on creativity of programmer. There are more hardware coprocessors in the GP2x: the Video Post Proccesor and 2D Accelerator being the most interesting. They also look like quite flexible so... again with a creative programmer some awesome results might be achievable.

If anybody can help me out with these operations so I know what they do it would be cool.

The DCT/iDCT is a (inverse) discrete cosinus transformation and it's used by JPG for an example. For the rest I have no idea but surely these are usefull in a video processing.

I think there is a lot of processing power in the MMSP2 that might be tapped to enable some interesting games and emulators

Yes and main strength of MMSP2 is its video capability. Not suprising really as this chipset's main aplications are camcorders and digital cameras.

Speculating after viewing those specs it should not be too much for the GP2x to has a 2D game with multiple playfields, with alphablending/transparencies, scaling all done in a hardware and some of them being actually decoded from jpg/mpg.
 
Last edited by a moderator:
As far as I can tell these functions are undocumented, and ME supplies a binary lump of code for the video decoding. It could be reverse engineered, but it's not going to be up and running on day 1.

Also, a lot of the video processing operations are focussed on the YUV colorspace as opposed the the RGB colorspace in which most games are rendered.
 
Back
Top