Dear James and other skeptics, pessimistic nay-sayers, nattering nabobs of negativism, and incorrigible vultures of ill-omen:

This sort of compression is a bit different from most, in that is is both lossless and transparent, and it is only possible with respect to the file system (HFS+ in this case, and I think zfs, which is better, and which will eventually replace HFS+ on Apple).

So let's say I have a bunch of images in a directory, 5 GB, and I create a tarball on some standard file system, that is say 3.5 GB. (I'm guessing at numbers).

I can use HFS compression on the images, essentially storing about 2/3 of the information in the resource fork. The directory size becomes about 2.5 GB. The data are completely unchanged. They are simply stored more efficiently.

Now I make a tarball, using an HFS+ competent version of tar. The size of that tarball is 3.5 GB. Still. Why? Because the resource forks are paired with the data forks, and no data is lost.

If I now expand this tarball of the HFS compressed images on some other unix file system, the resulting images are identical in size and content to the uncompressed images from my reference (control) tarball. No data is lost.

So this form of compression is fundamentally different in the sense that it doesn't really DO anything to the data, except arrange it on the filesystem more efficiently. You don't have to re-write any software. The standard unix tools work on the file in the standard way. ls -l even reports that the file is of the original, uncompressed size, since that is what is "sees." Same with mosflm. That is why I had to use du to show the effect.

eg:

zsh-% sudo ditto --hfsCompress coot-real coot-real-hfscompressed

zsh-% ls -l coot-real*
-rwxr-xr-x  1 root  admin   5.0M Sep 14 12:53 coot-real*
-rwxr-xr-x  1 root  admin   5.0M Sep 18 21:57 coot-real-hfscompressed*

zsh-% du -h -d 0 coot-real*
5.0M    coot-real
1.8M    coot-real-hfscompressed


To use a crude analogy, it's kind of as if ls operates in the total space and du operates in the base space of a fiber bundle.

Except different.

;)

HTH,

Bill

On Sep 18, 2009, at 1:20 PM, James Holton wrote:

I think it important to point out that despite the subject line, Dr. Scott's statement was:
"I think they process a bit faster too"
Strangely enough, this has not convinced me to re-format my RAID array with an new file system nor re-write all my software to support yet another new file format. I guess I am just lazy that way. Has anyone measured the speed increase? Have macs become I/O- bound again? In any case, I think it is important to remember that there are good reasons for leaving image file formats uncompressed. Probably the most important is the activation barrier to new authors writing new programs that read them. "fread()" is one thing, but finding the third-party code for a particular compression algorithm, navigating a CVS repository and linking to a library are quite another! This is actually quite a leap for those of us who never had any formal training in computer science. Personally, I still haven't figured out how to read pck images, as it is much easier to write "jiffy" programs for uncompressed data. For example, if all you want to do is extract a group of pixels (such as a spot), then you have to decompress the whole image! In computer speak: fseek() is rendered useless by compression. This could be why Mar opted not to use the pck compression for their newer CCD-based detectors?

That said, compressed file systems do appear particularly attractive if space is limiting. Apparently HFS can do it, but what about other operating systems? Does anyone have experience with a Linux file system that both supports compression and doesn't get corrupted easily?

-James Holton
MAD Scientist


Graeme Winter wrote:
Hi David,

If the data compression is carefully chosen you are right: lossless
jpeg2000 compression on diffraction images works very well, but is a
spot slow. The CBF compression using the byte offset method is a
little less good at compression put massively faster... as you point
out, this is the one used in the pilatus images. I recall that the
.pck format used for the MAR image plates had the same property - it
was quicker to read in a compressed image that the raw equivalent.

So... once everyone is using the CBF standard for their images, with
native lossless compression, it'll save a fair amount in disk space
(=£/$), make life easier for people and - perhaps most importantly -
save a lot of data transfer time.

Now the funny thing with this is that if we compress the images before
we store them, the compression implemented in the file system will be
less effective... oh well, can't win em all...

Cheers,

Graeme



2009/9/18 Waterman, David (DLSLtd,RAL,DIA) <david.water...@diamond.ac.uk >:

Just to comment on this, my friend in the computer game industry insists that compression begets speed in almost all data handling situations. This will be worth bearing in mind as we start to have more fine- sliced
Pilatus 6M (or similar) datasets to deal with.

Cheers,
David.

-----Original Message-----
From: CCP4 bulletin board [mailto:ccp...@jiscmail.ac.uk] On Behalf Of
William G. Scott
Sent: 17 September 2009 22:48
To: CCP4BB@JISCMAIL.AC.UK
Subject: [ccp4bb] I compressed my images by ~ a factor of two, and they
load and process in mosflm faster

If you have OS X 10.6, this will impress your friends and save you some
disk space:

% du -h -d 1 mydata
3.5G    mydata

mv mydata mydata.1

sudo ditto --hfsCompression mydata.1  mydata rm -rf mydata.1

% du -h -d 1 mydata
1.8G    mydata

This does hfs filesystem compression, so the images are still recognized by mosflm, et al. I think they process a bit faster too, because half
the information is packed into the resource fork.
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom



Reply via email to