Monday, November 22, 2010

blog rename

A lot of time has passed since my last post.

My early works has been abandoned because of lack of time after fulltime PS3 game dev job, resulted in IL-2 Birds Of Prey (PS3) , recent Apache Air Assault (PS3) and other involvements.

Since PS3 programming is no more available for mere mortals, I decided to focus on ARM. So I bought Tegra2 - based device - Toshiba AC100 and installed Ubuntu on it.

Thursday, August 16, 2007

JPEGsnoop - JPEG File Decoding Utility

I've found a useful utility to display JPEG file internals in human-readable form.

Also there are some interesting technical articles about the Jpeg compression and digital photography.

Tuesday, August 7, 2007

SPE rasterizer

I working on software tiling rasterizer for PS3.
Planned features:
- 32x32 or 32x64 tiles
- floating point pipeline
- per-pixel perspective correction and lighting
- vertex and fragment programs (native)
- jpeg textures dynamic decompression

The low-level rasterizer will look like the one described by Nicolas Capens:
Advanced rasterization using half-space functions
It is very simple, accurate and SPU friendly.

Sunday, June 10, 2007

First public version

I did some cleanup of my SPE-JPEG decoder source code.
Mainly i got rid of debug code. The project is in lazy development and some parts are still need improvement.

You can download the beta version 0.6 here.
(updated: a little bug was fixed)

If you have some questions or ideas how to improve the performance, let me know.

Monday, May 7, 2007

DMA stuff

After having a looong read through the MFC documentation, i finally came up with something what looks like double buffered huffman stream.

The good thing, all that dma stuff doesn't compromised decompression speed.
So far 1024x768 image takes <15 msec to decompress.
This is 3 times faster than scalar prototype on my Athlon.

Not very bad for poor little SPE ;)

Saturday, May 5, 2007

SIMD rulez!

After iDCT + colorspace conversion has been done in SIMD way, i've got nice 13x speedup ;)
Now the test image decoding is 1.4ms vs. 18.5ms in scalar version.
Still, input double buffering and code cleanup must be done.

Monday, April 23, 2007

SPE-JPEG


SPE-JPEG is my first project for CELL.
It is a tiny jpeg decoder suitable for texture decompression.
Only 4:2:0 mode, 16-aligned dimensions, no restart markers.
So far it is mainly scalar prototype code, but the bitstream and huffman decoding are coded specifically for SPE's 128 bit vectors.

Performance of scalar code on SPE is frustrating.
20 msec (- ~1.5 msec for spe code loading) to decode this 512x384 image vs. 4 msec on Athlon64 2Ghz.

TODO: SIMD iDCT + colorspace conversion, input stream double buffering (right now the whole image is in spe memory), optimization ;)