Monday, December 3, 2007

Wuala, a P2P online storage

I was recently looking for a good way to store some of my files online and needed something more interesting than a simple storage space. I found “Wuala”, an effort by Swiss students, Dominik Grolimund and Luzius Meisser. It uses the P2P technology to store your files across multiple computers in the internet grid.

SETI@Home was an effort to use the idle CPU resource of computers in the internet. Similarly, Wuala aims to use the idle hard drive resource of participant’s computer in the internet. A user is deemed a participant if their computer is turned ON for at least 17% of the time.

Wuala provides 1GB of space and the next 4GB of space is provided in a cloud of computers that participate. Since it is not possible to risk storing a file at just one location, Wuala uses a system of breaking files in to chunks and distributing across multiple computers, thus providing persistent storage.

When the user uploads a file, the file is encrypted and then broken in to chunks. Some of the chunks are stored in Wuala’s server and the rest are stored across various computers. When the file is requested to be read from the cloud, these chunks are brought together. With the better adoption of the system by more users, Wuala server will be replaced by just the computers on the internet.

The speed of upload is dictated by speed of download, implying that a user allowing more upload rate gets preference for higher download rate.

Wuala has been written in Java and is available on most platforms. It allows the user to specify folders as private, shared (with friends) and public. I tested the alpha version on a Windows machine and found their drag and drop feature to be very handy. It also provides an encryption system which allows your files to be stored securely and is better than other storage systems. Since the system is decentralized, it comes with a safety feature of being persistent by default. It allows the user to search the file names or tag them for a better search. I would recommend the system for folks who need a lot of storage space at no cost (who wouldn’t?).

My only wish is that, Wuala should be accessible in the future without any installation. If I am using a computer locked up for any installation but I still need to access some files, then I should be able to access it using a browser. It is currently in their agenda and I hope it will appear soon.

Monday, November 12, 2007

Did you know that ... Part 1

1. Images are identified using Magic number. If you open a gif file in a text editor, you will notice the magic number representing gif, GIF89a. These numbers are not limited to images alone, even pdf and postscript files can be identified. In fact it can be used to identify most of the file formats

2. ImageMagick is used by flickr.com for their image processing

3. The much used picture of Lena (below) for image processing is the Playboy centerfold picture of the Swedish model, Lenna Soderberg

4. Mencoder is a command line tool for editing movies much like Imagemagick is a command line tool for editing images

5. Mplayer is the close cousin of Mencoder and can be used for viewing movies

6. ffmpeg is another tool for editing movies and is believed to be used in youtube.com to convert the uploaded videos in to flash video (FLV) format.

7. Google has implemented a face recognition in its search. The images of face can be seperated from google image search result by typing "&imgtype=face" at the end of the url.

Sunday, November 11, 2007

Comparing different DICOM viewers

Digital Imaging and Communication in Medicine (DICOM) is a standard format for encoding and transmitting medical CT and MRI data. This format stores the image information along with other data like patient details, acquisition parameters etc. Since DICOM standards have become popular, many image processing readers and viewers have been created to read, process and write images. There are so many such software and its details can be seen here.

Since the details of the various software can be obtained using the previous website, in this blog we will classify some of these softwares based on the user requirement and discuss accordingly.

The users might need
1. A simple viewer with limited manipulation like ezDICOM
2. A viewer with ability to manipulate images and perform rendering like Osirix
3. A viewer with image manipulation capability and also extensible with plugins like ImageJ
4. A command line reader and viewer that allows batch processing like ImageMagick

There are more softwares that can be classified under the four categories but we will limit to these software for this blog. This does not limit the number of software available for viewing and manipulating dicom image, rather helps users choose the software right for them.

ezDICOM
It is a viewer that provides sufficient functionality that allows users to view and save dicom files without installing any software in their system. It is available only for Windows OS. It can read dicom files and save them in other file formats. It can also convert image files to Analyze format.

Osirix
It is a viewer with functionality that you might generally find in expensive workstation. It works great and it is free! But unfortunately, it is available only in MacOSX.
Like other dicom viewer, it can read and store files in different file formats and as movies. It can performs Multi-planar Reconstruction (MPR), 3D surface rendering, 3D volume rendering, endoscopy. It can also view 4D dicom data. The surface rendered data can also be stored as VRML, STL files etc. In short, I would highly recommend it if you have a Mac system.

ImageJ
ImageJ was funded by National Institute of Health (NIH) and is available as open source. It was written in Java and users can add their own Java class or plugins. It is available in all major operating system like Windows, Linux, UNIX, Mac etc. It can read all dicom formats and can store the data in various common file formats and also as movies. The plugins allow various image processing operation. Since the plugins can be easily added, the complexity of the image processing operation is just limited by the users knowledge of Java.

ImageMagick
If the various operations in image processing can be classified in to input, processing and output, ImageMagick provides functionalities that perform all these three operations. ImageMagick can be used in command line in almost all the common operating systems like Windows, Linux, UNIX, Mac etc by combining the read, write and image processing operations. Since ImageMagick is a command line tool, it can be used in any scripting language like perl, PHP, shell script etc. For users who are more adventurous, ImageMagick also provides APIs that allow programming low level image processing operation.

If you want to be even more adventurous and would like to program in C and C++, check out dicom toolkit.