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) <[log in to unmask]
>> >:
>>
>>> 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:[log in to unmask]] On Behalf
>>> Of
>>> William G. Scott
>>> Sent: 17 September 2009 22:48
>>> To: [log in to unmask]
>>> 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
>>>
>>>
>>>
|