2008/08/30

ETC1 Texture decoder.

I try to publish at least one post per week.

Now, post something REALLY interesting and valuable
each week is actually quite some work.

As I do not have so much time, I will publish about
something I have done some weeks ago...

It is about a hardware decoder for ETC1 texture compression
format.
The decoder work as the following :
- Input : Take a 64 bit data chunk with the compressed data.
- Input : adress of the pixel to decode in a 4x4 pixel block.
- Output : an RGB value, 888 bit format.
- Output : optionnally an overflow detector for ETC2 extension.

The decoder follow the description given by the original paper
that published this encoding format.

Here is also the CORRECT description of the 64 bit chunk
format as it was not described in the paper.

Finally here is the source code [TODO link] of the texture decoder in
VHDL language, it is quite small and could be usefull for a FPGA project.

One must note that the logic has no register, thus allowing to directly
perform the translation directly during the texture lookup transparently,
and avoid a "pre-decompression" stage during texture fetching.

I would really be glad to put my hand over a ETC2 software encoder.
If such, then I would write a VHDL ETC2 decoder and look at the difference
in term of cost and performance over a ETC1 decoder.

By the way, the ETC1 decoder has been FPGA proven, decoding
faithfully the "elina" picture given as a sample with the ETC1 encoder.

Enjoy !

2008/08/22

Shopping !!!












I promised myself to update the blog at least once a week...

Well, I could not resist after one day :-P.

The thing that I went to Akihabara this morning
to buy two LCD screens. Really cheap one !
300 Yen (roughly less than 2 euro) for a 400x96 pixel
RGB 666 display.

(If you have read the previous article,
things should start to make sense to you)

Actually I had to buy a lot of other stuff too and
ended spending like 8000 yens. Anyway, here is
the information you can find about those LCD screens
(page is in japanese)


The thing is that the connector is a 0.5mm pitch w/ 36 pins.
That is the kind of stuff that requires to be
a true masochist to connect...

I found by miracle the following flexicable,
that ALSO perform the conversion to more "hobby" standard
connectors. (770 yen per piece)

The cool stuff about this is that you can take a cutter
and adapt it to your size. That is REALLY smart and
avoid the hassle of :

- Messing directly with the LCD connector
by soldering directly with thin wires.
or
- By a normal flexicable
-> connector on the other side
-> solder the connector
-> etc...


Cut, solder the other part with standard pitch, FINISHED.

Here is the picture of this gift from the gods :

The good, the bad and the ugly. (in multicolor)

In this article, I will talk about displaying
more colors than your display can really do
using your FPGA.

Because your FPGA will allow you to perform
a per-pixel computation, we are able to do
some tricks that software / microcontroller
would find troublesome to do.

You want fun ? You are going to have it !

Here is the article file.
ART001 "Augmenting perceived color depth with simple hardware logic."


Here is the associated source code.(VHDL, unix formatting)
COD001

PS : I bet this kind of trick was actually done
already on Amiga / Atari ST by the demoscene for fixed images.
(Well I did it as a test program on my ST at least)

2008/08/21

Starting Again...

I have left this blog unoccupied for more than 2 years now...

Well, I have been active, did small projects and various stuff.
I also changed of company.

But my motivation is as good as day 1.

I bought my 3rd FPGA board, and this time, it is
the good one.














I will post some new stuff every week if I can.