diff --git a/CPP/7zip/Guid.txt b/CPP/7zip/Guid.txt index 3ad13f43..aadea2b2 100644 --- a/CPP/7zip/Guid.txt +++ b/CPP/7zip/Guid.txt @@ -161,6 +161,7 @@ Handler GUIDs: 0A lzma 0B lzma86 0C xz + 0D ppmd 0E zstd 0F lz4 10 lz5 diff --git a/DOC/Methods-Extern.txt b/DOC/Methods-Extern.txt new file mode 100644 index 00000000..4fcd5d49 --- /dev/null +++ b/DOC/Methods-Extern.txt @@ -0,0 +1,175 @@ +7-Zip external method IDs, that are not included to 7-Zip +--------------------------------------------------------- + +History of this document +------------------------ + +- 7-Zip Version 15.01, initial release + + +Overview of defined ID ranges +----------------------------- + +F7 0x xx - reserved +F7 10 xx - LZHAM +F7 11 xx - ZStandard +F7 12 xx - LZ4 +F7 13 xx - LZ5 + + + +Range F7 10 xx - LZHAM +----------------------- + +Description: +Lossless data compression codec with LZMA-like ratios but 1.5x-8x faster +decompression speed, C/C++ + +License: +LZHAM library is provided as open source software using a MIT license. + +7-Zip Container Header: + Byte _ver_major; + Byte _ver_minor; + Byte _level; + Byte _reserved[2]; + +Algorithm author: Rich Geldreich +Algorithm Homepage: https://github.com/richgel999/lzham_codec +Source code: https://github.com/richgel999/lzham_codec + +Codec plugin author: Rich Geldreich +Codec Homepage: http://richg42.blogspot.de/2015/02/lzham-10-integrated-into-7zip-command.html +Source Code: http://www.tenacioussoftware.com/7zipsrc_release3_lzham_1_0.7z + +Versions: +The 7-Zip LZHAM codec will be kept in sync with the current releases of ZStandard. + +Range F7 11 xx, ZStandard +------------------------- + +Description: +Zstandard is a real-time compression algorithm, providing high compression +ratios. It offers a very wide range of compression / speed trade-off, while +being backed by a very fast decoder (see benchmarks below). It also offers a +special mode for small data, called dictionary compression, and can create +dictionaries from any sample set. + +License: +Zstandard library is provided as open source software using a BSD license. + +7-Zip Container Header: + Byte _ver_major; + Byte _ver_minor; + Byte _level; + Byte _reserved[2]; + +Algorithm author: Yann Collet +Algorithm Homepage: https://facebook.github.io/zstd/ +Source code: https://github.com/facebook/zstd + +Codec plugin author: Tino Reichardt +Codec Homepage: https://mcmilk.de/projects/7-Zip-zstd/ +Source Code: https://github.com/mcmilk/7-Zip-zstd + +Modes: +- threading is supported through skippable frame id 0x184D2A50U +- all levels are supported (1..22) +- future version of zstd will support multi threading out of the box + -> this new format is fully compatible with the one within this codec +- the codec is used as archiv handler also, see ZstdHandler.cpp + - this handler is does not use any additional headers, it supports the plain + zstd v1.0 format (this covers all current v1.x implemetations) + - when compiled with ZSTD_LEGACY_SUPPORT, then support is increased to these + addtional version numbers of zstd: v0.1 up v0.7 +- future formats of this algorithm will be fully compatible with release v1.0 of + ZStandard (ZStandard 0.8 == ZStandard 1.0) +- one ID should be okay for this codec + +Versions: +The 7-Zip codec will be kept in sync with the current releases of ZStandard. + + +Range F7 12 xx, LZ4 +------------------- + +Description: +LZ4 is lossless compression algorithm, providing compression speed at 400 MB/s +per core (0.16 Bytes/cycle). It features an extremely fast decoder, with speed +in multiple GB/s per core (0.71 Bytes/cycle). A high compression derivative, +called LZ4_HC, is available, trading customizable CPU time for compression +ratio. LZ4 library is provided as open source software using a BSD license. + +License: +LZ4 library is provided as open source software using a BSD license. + +7-Zip Container Header: + Byte _ver_major; // currently 1 + Byte _ver_minor; // currently 7 + Byte _level; // 1..16 + Byte _reserved[2]; + +Algorithm author: Yann Collet +Algorithm Homepage: https://lz4.github.io/lz4/ +Source code: https://github.com/lz4/lz4 + +Codec plugin author: Tino Reichardt +Codec Homepage: https://mcmilk.de/projects/7-Zip-zstd/ +Source Code: https://github.com/mcmilk/7-Zip-zstd + +Modes: +- threading is supported through skippable frame id 0x184D2A50U +- all levels of LZ4 v1.7.4 are supported (1..16) +- the codec is used as archiv handler also, see Lz4Handler.cpp + - this handler is does not use any additional headers, it supports the plain + lz4 v1.7.4 format (this covers all current lz4 implemetations) +- future formats of this algorithm should be fully compatible with current + release +- one ID should be okay for this codec + +Versions: +The 7-Zip codec will be kept in sync with the current releases of LZ4. + + +Range F7 13 xx, LZ5 +------------------- + +Description: +LZ5 is a modification of LZ4 which gives a better ratio at cost of slower +compression and decompression. + +License: +LZ5 library is provided as open source software using a BSD license. + +7-Zip Container Header: + Byte _ver_major; // currently 1 + Byte _ver_minor; // currently 5 + Byte _level; // 1..16 + Byte _reserved[2]; + +Algorithm author: Przemyslaw Skibinski +Algorithm Homepage: https://github.com/inikep/lz5 +Source code: https://github.com/inikep/lz5 + +Codec plugin author: Tino Reichardt +Codec Homepage: https://mcmilk.de/projects/7-Zip-zstd/ +Source Code: https://github.com/mcmilk/7-Zip-zstd + +Modes: +- threading is supported through skippable frame id 0x184D2A50U +- all levels of v1.5 are supported (1..16) +- the codec is used as archiv handler also, see Lz5Handler.cpp + - this handler is does not use any additional headers, it supports the plain + lz5 v1.5 format +- future formats of this algorithm will not be compatible with current release, + this codec is very experimental +- multiple ID's are required for this codec + +Versions: +The 7-Zip codec will be kept in sync with the current releases of LZ5. +The current codec plugin supports version v1.5. Version 2.0 will follow, when it +seems to be stable. + +--- +End of document +Tino Reichardt, 2016-12-28