Project Name: BIT Archiver Download
Since: 19/12/2007

What is BIT Archiver?

BIT is a command-line experimental file archiver which has limited capabilities for now and lacks of some essential features such as multi-volumes, solid archiving etc. In future BIT releases, there will be several codecs for trade-offs between speed vs strength. For now only LWCX (Light-Weight Context Mixing) codec is available.

What is LWCX?

LWCX stands for Light-Weight Context Mixing and it's basically a bit-wise context mixing scheme for lossless data compression. It differs from well-known compression techniques such as LZ77 which is implemented as a default algorithm in WinZIP, WinRAR, 7-Zip and many other popular archivers. Rather than to find repeatation patterns in byte-wise and coding some pointers for them, LWCX collects bit-wise statistics under some context and predicts next bit by mixing collected statistics. But, top ranking context mixing compressors are generally very slow (i.e. PAQ series). So, LWCX's goal is reaching acceptable speed at extreme compression ratios. Note that, latest release of LWCX is able to outperform most of compressors with a acceptable speed already.

Benchmarks

Squeeze Chart (www.squeezechart.com/main.html)
Large Text Benchmark (www.cs.fit.edu/~mmahoney/compression/text.html)
Maximum Compression (www.maximumcompression.com)
Monster of Compression (heartofcomp.altervista.org/MOC/MOCA.htm)

 
Project Name: GPU Accelerated Edge Detection Download
Since: 28/01/2009
GPU Accelerated Edge Detection Screenshot

This application was written in a very short period of time and it was used to show how GPGPU approach can be fast. The application allows to user load a specific still image to perform various edge-detection filters on it. When a user load a still image, it downsamples the images to 512x512 pixels. Then uploads the image to GPU memory and waits for the user. The user can apply well-known edge-detection filters. These are:

  • Roberts' Cross
  • Laplace
  • Prewitt
  • Sobel
  • Scharr

When the user selects a filter, predefined GPU shading program is activated to perform edge-detection. All computations are massively parallel. And it's extremely fast against a well optimized CPU implementation. Here is a benchmark on a laptop which has a GeForce 8600M GS graphics card:

Filter: Sobel
Computation: 0.0090 ms (110993.6 FPS)
Displaying: 0.0529 ms (18914.4 FPS)
Downloading: 5.9982 ms (166.7 FPS)

As can be observed above, the main bottleneck is downloading the result image from GPU memory. But, it's still enough fast. As a reference, CPU implementation of sobel filter takes ~200ms on a Core2Duo 2.2GHz CPU (~30x slower).

To speed up downloading, OpenGL's FPO extension is planned to be used. It's very robust solution for GPGPU applications and can speed-up downloading speed drastically.

(Note: if you can't see filtered images, in the another word, if you see the original image after applying a filter, that means your graphics card does not support required OpenGL extensions. It's highly recommended to test the application at least with a GeForce 8XXX series graphics card. If you still have problems, you should ensure to installed your graphics card driver properly).

 
Project Name: GPU Accelerated Wavelet Transform (Work-In-Progress) Download
Since: 02/07/2009
GPU Accelerated Wavelet Transform Screenshot
There is only one possibility for the reason why I didn't finish that work: I'm too lazy :P. While creating this work, I really got bored. So, in this work, you will find a program which applies DWT to only rows. As a result, only 2 wavelet coefficients can be seen. If I get some motivation, I'll update it immediately. Have fun.