W. Felix Handte
4a0572b215
Refactor Huffman Decompression Away From Ternary Tree in ZSTD_decodeLiteralsBlock
2018-12-18 13:36:39 -08:00
W. Felix Handte
432314b58a
Rename HUF_DECOMPRESS_MINIMAL -> HUF_FORCE_DECOMPRESS_X1
2018-12-18 13:36:39 -08:00
W. Felix Handte
4bbb8a48ad
Add ZSTD_FORCE_DECOMPRESS_SEQUENCES_LONG
...
This macro forces behavior in the opposite direction.
2018-12-18 13:36:39 -08:00
W. Felix Handte
64553a0e35
Rename ZSTD_DECOMPRESS_MINIMAL -> ZSTD_FORCE_DECOMPRESS_SEQUENCES_SHORT
2018-12-18 13:36:39 -08:00
W. Felix Handte
605dd576ee
Remove Error Strings with ZSTD_STRIP_ERROR_STRINGS
2018-12-18 13:36:39 -08:00
W. Felix Handte
9d5f3963ff
Add Option to Not Request Inlining with ZSTD_NO_INLINE
2018-12-18 13:36:39 -08:00
W. Felix Handte
df28e5babd
Add ZSTD_DECOMPRESS_MINIMAL Macro, Which Reduces Branching of Decompress Variants
2018-12-18 13:36:39 -08:00
W. Felix Handte
f45c9df42e
Totally Hide/Disable X2 Variants when HUF_DECOMPRESS_MINIMAL is Defined
2018-12-18 13:36:39 -08:00
W. Felix Handte
36a84b07a8
Load Dictionaries as X1 Tables
2018-12-18 13:36:39 -08:00
W. Felix Handte
f9cb348776
Add HUF_DECOMPRESS_MINIMAL Macro, Which Avoids Using X2 Variants
2018-12-18 13:36:39 -08:00
Yann Collet
635783da12
btultra2 and very small srcSize
...
When srcSize is small,
the nb of symbols produced is likely too small to warrant dedicated probability tables.
In which case, predefined distribution tables will be used instead.
There is a cheap algorithm in btultra initialization :
it presumes default distribution will be used if srcSize <= 1024.
btultra2 now uses the same threshold to shut down probability estimation,
since measured frequencies won't be used at entropy stage,
and therefore relying on them to determine sequence cost is misleading,
resulting in worse compression ratios.
This fixes btultra2 performance issue on very small input.
Note that, a proper way should be
to determine which symbol is going to use predefined probaility
and which symbol is going to use dynamic ones.
But the current algorithm is unable to make a "per-symbol" decision.
So this will require significant modifications.
2018-12-18 12:32:58 -08:00
Yann Collet
517d8c984c
Merge pull request #1449 from facebook/ovlog_def
...
overlapLog default values
2018-12-18 09:45:53 -08:00
Yann Collet
373ff8b983
play around with rescale weights
2018-12-17 15:48:34 -08:00
Yann Collet
8be145a8c1
fixed default job size
2018-12-13 16:38:08 -08:00
Nick Terrell
75fa3f2eb7
Merge pull request #1446 from terrelln/overflow
...
[libzstd] Fix infinite loop in decompression
2018-12-13 16:21:15 -08:00
Yann Collet
62180b27d5
zstdmt parameter getter/setter use int
2018-12-13 15:47:34 -08:00
Nick Terrell
aaea4ef924
[libzstd] Fix infinite loop in decompression
...
When we switched `ZSTD_SKIPPABLEHEADERSIZE` to a macro, the places where we do:
MEM_readLE32(ptr) + ZSTD_SKIPPABLEHEADERSIZE
can now overflow `(unsigned)-8` to `0` and we infinite loop. We now check
the frame size and reject sizes that overflow a U32.
Note that this bug never made it into a release, and was only in the dev branch
for a few days.
Credit to OSS-Fuzz
2018-12-13 15:13:19 -08:00
Yann Collet
34f01e600f
fixed multiple conversions
...
from 64-bit to 32-bit
2018-12-13 14:02:22 -08:00
Yann Collet
1993f5d412
fixed ovlog tests
...
and updated man page
2018-12-12 21:09:14 -08:00
Yann Collet
f2f86d369b
Merge branch 'btultra2' into ovlog_def
2018-12-12 20:58:14 -08:00
Yann Collet
9a92ed401d
updated compression results.csv
...
and fixed nit
2018-12-12 20:30:09 -08:00
Yann Collet
9792acda3b
Merge branch 'dev' into btultra2
2018-12-12 20:18:27 -08:00
Yann Collet
7bb8dfc62f
new overlapLog default values
...
varies between 6 and 9, depending on strategy
2018-12-11 18:10:29 -08:00
Yann Collet
eee789b7ea
continued: changed to overlapLog
...
in deeper code layer.
for consistency.
2018-12-11 17:41:42 -08:00
Yann Collet
9b784dec7f
changed parameter name to ZSTD_c_overlapLog
...
from overlapSizeLog.
Reasoning :
`overlapLog` is already used everwhere, in the code, command line and documentation.
`ZSTD_c_overlapSizeLog` feels unnecessarily different.
2018-12-11 16:55:33 -08:00
Yann Collet
52b94f902c
add clarification for ZSTD_CCtx_setPledgedSrcSize()
...
as requested in #1391
2018-12-11 12:08:21 -08:00
Yann Collet
9c3265a53f
Merge pull request #1417 from facebook/advancedAPI
...
Advanced API
2018-12-10 18:48:15 -08:00
Yann Collet
5e6aaa3abb
fixed btultra2 usage with prefix
...
notably while using multi-threading
2018-12-10 18:45:03 -08:00
Yann Collet
3619c34399
fix assert position within ZSTD_compress2()
2018-12-10 17:42:35 -08:00
Yann Collet
5a1e01e5f1
clarified experimentalParam
2018-12-10 17:36:20 -08:00
Yann Collet
c226a7b9f3
fixed ZSTD_compress2()
...
as suggested by @terrelln
2018-12-10 17:33:49 -08:00
Yann Collet
37e314a68d
updated clevel table for large inputs
2018-12-09 22:38:05 -08:00
Yann Collet
c9c4c7ec8c
update clevel table for 256K
2018-12-08 21:40:08 -08:00
Yann Collet
8075d75f9c
update clevel table for 128K
2018-12-08 10:42:55 -08:00
Yann Collet
95b152ab33
updated clevel table for 16K
...
to introduce btultra2
2018-12-07 20:12:43 -08:00
Yann Collet
d613fd9afe
linked btultra2 as strategy9
...
and ensure zstdbench detects out-of-bound parameters
2018-12-06 19:27:37 -08:00
Yann Collet
34aa401afd
updated documentation
...
introducing ZSTD_btultra2
2018-12-06 17:22:19 -08:00
Yann Collet
ae370b0e12
minor bound refinements
2018-12-06 16:51:17 -08:00
Yann Collet
39e28982cf
introduced constants ZSTD_STRATEGY_MIN and ZSTD_STRATEGY_MAX
2018-12-06 16:16:16 -08:00
Yann Collet
c3c3488981
fixed c++ assignment to enum
2018-12-06 15:57:55 -08:00
Yann Collet
be9e561da4
changed ZSTD_c_compressionStrategy into ZSTD_c_strategy
...
also : fixed paramgrill, and limit conditions
2018-12-06 15:00:52 -08:00
Yann Collet
e9448cdf4c
introduced strategy btultra2
...
note : not yet applied on any compression level
2018-12-06 13:38:09 -08:00
Yann Collet
0c404a48f0
moved ZSTD_WINDOWLOG_LIMIT_DEFAULT into static-linking-only area
2018-12-06 10:57:19 -08:00
Yann Collet
96d887429b
clarified usage of word "job"
...
only applies in MT / async context now.
2018-12-06 10:14:34 -08:00
Yann Collet
3583d19c4e
changed parameter names from ZSTD_p_* to ZSTD_c_*
...
for naming consistency
2018-12-05 17:26:02 -08:00
Yann Collet
c2053310e5
updated API documentation
2018-12-05 16:23:00 -08:00
Yann Collet
3e042d5cc0
ZSTD_decompressDCtx() is compatible with sticky parameters
2018-12-04 17:30:58 -08:00
Yann Collet
d7da3fc90a
merge dedicated dParam setters
2018-12-04 17:06:48 -08:00
Yann Collet
4b5a4f02d7
write the switch()case: differently
...
so that it please both
compilers which warn for dead code after the switch
and
compilers which do not detect that all branches terminate.
2018-12-04 16:59:26 -08:00
Yann Collet
85b02bf142
fixed silent conversion warning
2018-12-04 15:57:16 -08:00