Adding upstream version 1.0~rc1.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
a92d8a2cdd
commit
d49eb8d954
24 changed files with 1438 additions and 882 deletions
109
doc/plzip.info
109
doc/plzip.info
|
@ -12,25 +12,25 @@ File: plzip.info, Node: Top, Next: Introduction, Up: (dir)
|
|||
Plzip Manual
|
||||
************
|
||||
|
||||
This manual is for Plzip (version 0.9, 1 March 2012).
|
||||
This manual is for Plzip (version 1.0-rc1, 8 March 2013).
|
||||
|
||||
* Menu:
|
||||
|
||||
* Introduction:: Purpose and features of plzip
|
||||
* Invoking Plzip:: Command line interface
|
||||
* Program Design:: Internal structure of plzip
|
||||
* File Format:: Detailed format of the compressed file
|
||||
* Problems:: Reporting bugs
|
||||
* Concept Index:: Index of concepts
|
||||
* Introduction:: Purpose and features of plzip
|
||||
* Program Design:: Internal structure of plzip
|
||||
* Invoking Plzip:: Command line interface
|
||||
* File Format:: Detailed format of the compressed file
|
||||
* Problems:: Reporting bugs
|
||||
* Concept Index:: Index of concepts
|
||||
|
||||
|
||||
Copyright (C) 2009, 2010, 2011, 2012 Antonio Diaz Diaz.
|
||||
Copyright (C) 2009, 2010, 2011, 2012, 2013 Antonio Diaz Diaz.
|
||||
|
||||
This manual is free documentation: you have unlimited permission to
|
||||
copy, distribute and modify it.
|
||||
|
||||
|
||||
File: plzip.info, Node: Introduction, Next: Invoking Plzip, Prev: Top, Up: Top
|
||||
File: plzip.info, Node: Introduction, Next: Program Design, Prev: Top, Up: Top
|
||||
|
||||
1 Introduction
|
||||
**************
|
||||
|
@ -94,9 +94,32 @@ corrupt or invalid input file, 3 for an internal consistency error (eg,
|
|||
bug) which caused plzip to panic.
|
||||
|
||||
|
||||
File: plzip.info, Node: Invoking Plzip, Next: Program Design, Prev: Introduction, Up: Top
|
||||
File: plzip.info, Node: Program Design, Next: Invoking Plzip, Prev: Introduction, Up: Top
|
||||
|
||||
2 Invoking Plzip
|
||||
2 Program Design
|
||||
****************
|
||||
|
||||
For each input file, a splitter thread and several worker threads are
|
||||
created, acting the main thread as muxer (multiplexer) thread. A "packet
|
||||
courier" takes care of data transfers among threads and limits the
|
||||
maximum number of data blocks (packets) being processed simultaneously.
|
||||
|
||||
The splitter reads data blocks from the input file, and distributes
|
||||
them to the workers. The workers (de)compress the blocks received from
|
||||
the splitter. The muxer collects processed packets from the workers, and
|
||||
writes them to the output file.
|
||||
|
||||
When decompressing from a regular file, the splitter is removed and
|
||||
the workers read directly from the input file. If the output file is
|
||||
also a regular file, the muxer is also removed, and the workers write
|
||||
directly to the output file. With these optimizations, decompression
|
||||
speed of large files with many members is only limited by the number of
|
||||
processors available and by I/O speed.
|
||||
|
||||
|
||||
File: plzip.info, Node: Invoking Plzip, Next: File Format, Prev: Program Design, Up: Top
|
||||
|
||||
3 Invoking Plzip
|
||||
****************
|
||||
|
||||
The format for running plzip is:
|
||||
|
@ -156,7 +179,8 @@ The format for running plzip is:
|
|||
Set the number of worker threads. Valid values range from 1 to "as
|
||||
many as your system can support". If this option is not used,
|
||||
plzip tries to detect the number of processors in the system and
|
||||
use it as default value.
|
||||
use it as default value. `plzip --help' shows the system's default
|
||||
value.
|
||||
|
||||
`-o FILE'
|
||||
`--output=FILE'
|
||||
|
@ -243,28 +267,17 @@ Z zettabyte (10^21) | Zi zebibyte (2^70)
|
|||
Y yottabyte (10^24) | Yi yobibyte (2^80)
|
||||
|
||||
|
||||
File: plzip.info, Node: Program Design, Next: File Format, Prev: Invoking Plzip, Up: Top
|
||||
|
||||
3 Program Design
|
||||
****************
|
||||
|
||||
For each input file, a splitter thread and several worker threads are
|
||||
created, acting the main thread as muxer (multiplexer) thread. A "packet
|
||||
courier" takes care of data transfers among threads and limits the
|
||||
maximum number of data blocks (packets) being processed simultaneously.
|
||||
|
||||
The splitter reads data blocks from the input file, and distributes
|
||||
them to the workers. The workers (de)compress the blocks received from
|
||||
the splitter. The muxer collects processed packets from the workers, and
|
||||
writes them to the output file.
|
||||
|
||||
|
||||
File: plzip.info, Node: File Format, Next: Problems, Prev: Program Design, Up: Top
|
||||
File: plzip.info, Node: File Format, Next: Problems, Prev: Invoking Plzip, Up: Top
|
||||
|
||||
4 File Format
|
||||
*************
|
||||
|
||||
In the diagram below, a box like this:
|
||||
Perfection is reached, not when there is no longer anything to add, but
|
||||
when there is no longer anything to take away.
|
||||
-- Antoine de Saint-Exupery
|
||||
|
||||
|
||||
In the diagram below, a box like this:
|
||||
+---+
|
||||
| | <-- the vertical bars might be missing
|
||||
+---+
|
||||
|
@ -293,15 +306,19 @@ additional information before, between, or after them.
|
|||
"LZIP".
|
||||
|
||||
`VN (version number, 1 byte)'
|
||||
Just in case something needs to be modified in the future. Valid
|
||||
values are 0 and 1. Version 0 files are deprecated. They can
|
||||
contain only one member and lack the `Member size' field.
|
||||
Just in case something needs to be modified in the future. 1 for
|
||||
now.
|
||||
|
||||
`DS (coded dictionary size, 1 byte)'
|
||||
Bits 4-0 contain the base 2 logarithm of the base dictionary size.
|
||||
Bits 7-5 contain the number of "wedges" to substract from the base
|
||||
dictionary size to obtain the dictionary size. The size of a wedge
|
||||
is (base dictionary size / 16).
|
||||
Lzip divides the distance between any two powers of 2 into 8
|
||||
equally spaced intervals, named "wedges". The dictionary size is
|
||||
calculated by taking a power of 2 (the base size) and substracting
|
||||
from it a number of wedges between 0 and 7. The size of a wedge is
|
||||
(base_size / 16).
|
||||
Bits 4-0 contain the base 2 logarithm of the base size (12 to 29).
|
||||
Bits 7-5 contain the number of wedges (0 to 7) to substract from
|
||||
the base size to obtain the dictionary size.
|
||||
Example: 0xD3 = (2^19 - 6 * 2^15) = (512KiB - 6 * 32KiB) = 320KiB
|
||||
Valid values for dictionary size range from 4KiB to 512MiB.
|
||||
|
||||
`Lzma stream'
|
||||
|
@ -315,9 +332,9 @@ additional information before, between, or after them.
|
|||
Size of the uncompressed original data.
|
||||
|
||||
`Member size (8 bytes)'
|
||||
Total size of the member, including header and trailer. This
|
||||
facilitates safe recovery of undamaged members from multi-member
|
||||
files.
|
||||
Total size of the member, including header and trailer. This field
|
||||
acts as a distributed index, and facilitates safe recovery of
|
||||
undamaged members from multi-member files.
|
||||
|
||||
|
||||
|
||||
|
@ -358,12 +375,12 @@ Concept Index
|
|||
|
||||
Tag Table:
|
||||
Node: Top223
|
||||
Node: Introduction842
|
||||
Node: Invoking Plzip4008
|
||||
Node: Program Design8964
|
||||
Node: File Format9626
|
||||
Node: Problems11621
|
||||
Node: Concept Index12150
|
||||
Node: Introduction864
|
||||
Node: Program Design4030
|
||||
Node: Invoking Plzip5084
|
||||
Node: File Format10093
|
||||
Node: Problems12473
|
||||
Node: Concept Index13002
|
||||
|
||||
End Tag Table
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue