trešdiena, 2011. gada 7. septembris

Introduction: Orthogonal transforms, Matlab, FPGAs and more

Hello, my name is Uldis. Currently i'm a student working on my PhD in Riga Technical University (RTU - lv/eng), faculty of Electronics and Telecommunications (ETF - lv). I work in the Integrated Circuit Design Laboratory (ISIL - lv).

This blog will give some insight to the work done in the lab as well as cover various related topics. As my work is mainly oriented towards image processing, this will be the main subject of my blog entries. If you're into image processing and looking for interesting orthogonal transforms you've come to the right place.

Here at faculty we're group working with novel type of orthogonal transforms. Just as the Fourier transform, Discrete Cosine Transform (DCT), Haar transform or Wavelets, the studied transforms can also be used to break signal apart in separate frequency* components or basis functions.
The main difference lay in the fact that it is not a single, established set of orthogonal basis functions (components). Depending on the requirements of the task, the basis function set can be parametrically generated, even to match a certain signal.


Here you can see several of the BF sets, that can be used in 2D transforms:
CRAIMOT class orthogonal function set. N=8.
CRA-HT (Haar-like function) class set.

CRA-HTC, another, modified Haar-like function set.


Here a simple example from my Master's thesis is given:
Arbitrary shapes approximated by a single function

It illustrates a case where an orthogonal basis is found, that tries to approximate given image with a single basis function. The image can only partially be approximated by a single function. Such approximation is much more effective with 1D signals and can reach even exact match.
Here the whole set can be seen, with the function in row 9, column 5 from upper left (inverted value):

Set from which was obtained while searching for approximation function.


Currently we're working on various subtypes of studied transforms, virtual models, their hardware implementations and flexible automated work-flows.
To find out more you can try some of the following resources:


This should suffice as a brief introduction. I'll return with more detail in my next posts, where i might include some Matlab code examples to try out.

*the term frequency is valid only for FFT, for other transforms the set of basis functions may not represent frequency components.