SigBrowser 0.4 review

by on

SigBrowser is a small tool to display large signals (up to 2 GB filesize / 1-6 channels / 16 bit integer). SigBrowser allows you

License: GPL (GNU General Public License)
File size: 126K
Developer: Stefan Fuch
0 stars award from

SigBrowser is a small tool to display large signals (up to 2 GB filesize / 1-6 channels / 16 bit integer).

SigBrowser allows you to smoothly browse in a large signal. It can load 16 bit signed integer data with up to 6 interlaced channels.

Unfortunately there's no large-file support, so the limit is at 2 GB. You can't do much except looking at the signal with various zooming factors.

But if you're searching for certain artefacts in a signal then it's probably quite useful for you.

It can visualize large signals with filesizes of up to 2 GB. Currently only 16 bit signed integer signals with up to 8 interlaced channels can be loaded.

Using a P4 @ 1.8 GHz with 512 MB RAM and a GeForce 4 graphics card you can scroll and zoom quite smoothly through the whole signal. On a Sun Ultra 1500 it's a bit slower but you can still work fine with it.

By using something which I call block-reduction (BL). BL uses the fact that todays screens only have a limited amount of pixels. That means to display the whole signal at once, the worst case regarding performance restrictions, you would have to display thousands of samples on one pixel coordinate in x (horizontal) direction.

Assuming we plot lines between each pair of following samples the user will see a colored area which borders in vertical direction are the minimum and maximum value of all samples falling on the same x-coordinate.

Using this fact we let the user create a so called signal profile. Besides storing the sampling rate, file format info, number of channels to visualize and similar things its main purpose is to contain min/max pairs each of which calculated from a block of N samples per channel. N gets specified by the user, usually 10..50, depending on signal size and computer beeing used.

By visualizing these min/max blocks instead of the real signal as long as the user doesn't zoom into the signal to much we don't loose any information on the screen. But we get a nice performance boost as the signal profile has a much smaller size (signal_lengh_in_samples / N * 2) than the original signal has. Unfortunately we can't do this anymore when the user zooms into details. Then SigBrowser switches to direct display of the signal but it loads only about 1 MB of the original signal at once, which would result in a width of usually several screens.


* C = number of channels in origianl signal
* V = number of channels to visualize
* S = original signal length in samples per channel
* B = block size

I have a signal of 1.1 GB, C = V = 8 channels, 16 bit integer samples which in my case contains S = 73298610 samples per channel. Using a block size of B = 10 samples per min/max block (really smooth interaction on a P4 3.2 GHz) you get a signal-profile of S / B * 4 / (1024*1024) = 84 MB which you have to keep in memory.

SigBrowser 0.4 search tags