pspp-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ZSAV format support [ZCOMPRESSED subcommand]


From: Ben Pfaff
Subject: Re: ZSAV format support [ZCOMPRESSED subcommand]
Date: Mon, 7 Oct 2013 23:54:23 -0700
User-agent: Mutt/1.5.21 (2010-09-15)

On Thu, Oct 03, 2013 at 09:38:57PM -0700, Ben Pfaff wrote:
> Some of this matches up, but some of it is weird:
> 
> 000035a  5a 03 00 00 00 00 00 00 - Byte offset of this block, 0x35a
> 0000362  12 94 03 00 00 00 00 00 - Byte offset of the next block, 0x39412.
> 000036a  48 00 00 00 00 00 00 00 - Length of next block's header, 0x48 bytes.
> 
> ...then compressed data, then...
> 
> 0039412  9c ff ff ff ff ff ff ff - Value -100, dunno why (compression bias?)
> 003941a  00 00 00 00 00 00 00 00 - ?
> 0039422  00 f0 3f 00 02 00 00 00 - ?
> 003942a  5a 03 00 00 00 00 00 00 - Starting offset of previous block, 0x35a.
> 0039432  72 03 00 00 00 00 00 00 - Starting offset of data block, 0x372.
> 003943a  00 f0 3f 00             - Inflated data size, 0x3ff000 bytes.
> 003943e  49 7c 03 00             - Compressed data size, 0x37c49 bytes.
> 0039442  5a f3 3f 00 00 00 00 00 - 0x3ff35a = 0x35a + 0x3ff000
>                                    = current byte offset if no compression
> 003944a  bb 7f 03 00 00 00 00 00 - ?
> 0039452  00 bf 06 00             - ?
> 0039456  57 14 00 00             - ?

I figured out part of the mystery.  This file contains two compressed
data blocks.

000035a  5a 03 00 00 00 00 00 00 - Byte offset of this block, 0x35a
0000362  12 94 03 00 00 00 00 00 - Byte offset of the next block, 0x39412.
000036a  48 00 00 00 00 00 00 00 - Length of next block's header, 0x48 bytes.

0000372  0x37c49 bytes of compressed data that inflate to 0x3ff000 bytes
0037fbb  0x1457 bytes of compressed data that inflate to 0x6bf00 bytes

0039412  9c ff ff ff ff ff ff ff - Value -100, dunno why (compression bias?)
003941a  00 00 00 00 00 00 00 00 - ?
0039422  00 f0 3f 00             - Inflated data block size
0034926  02 00 00 00             - Number of compressed data blocks
003942a  5a 03 00 00 00 00 00 00 - Starting offset of previous block, 0x35a.

First compressed data block descriptor:
0039432  72 03 00 00 00 00 00 00 - Starting offset of data block, 0x372.
003943a  00 f0 3f 00             - Inflated data size, 0x3ff000 bytes.
003943e  49 7c 03 00             - Compressed data size, 0x37c49 bytes.

Second compressed data block descriptor:
0039442  5a f3 3f 00 00 00 00 00 - 0x3ff35a = 0x35a + 0x3ff000
       = starting byte offset of data in block 2 if no zlib compression
003944a  bb 7f 03 00 00 00 00 00 - Starting offset of data block, 0x37fbb.
0039452  00 bf 06 00             - Inflated data size, 0x6bf00 bytes.
0039456  57 14 00 00             - Deflated data size, 0x1457 bytes.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]