Commit graph

145 commits

Author SHA1 Message Date
Christian Schneider
2f48166bb5 Fixed incorrect bzip2 -v output
Compressed size of bzip2 streams was incorrectly printed as -1
2018-02-23 15:56:37 +01:00
Christian Schneider
27053a43bc [WIP] Support zlib streams over 2 GB
Final occurences, starting testing
2018-02-23 14:58:23 +01:00
Christian Schneider
10a3854a23 [WIP] Support zlib streams over 2 GB
bzip2 routines
2018-02-23 14:43:55 +01:00
Christian Schneider
621d8dca4d [WIP] Support zlib streams over 2 GB
base64_reencode
2018-02-23 14:34:58 +01:00
Christian Schneider
446f335423 [WIP] Support zlib streams over 2 GB
def_part, def_part_bzip2 & def_part_skip
2018-02-23 14:32:39 +01:00
Christian Schneider
04fbd3bbbf [WIP] Support zlib streams over 2 GB
Reading 64 bit values from .pcf
2018-02-23 14:29:01 +01:00
Christian Schneider
6d4a2bdf42 [WIP] Support zlib streams over 2 GB
fin_fget64 to make reading of 64 bit from file easier
2018-02-23 14:20:49 +01:00
Christian Schneider
3e279684d2 [WIP] Support zlib streams over 2 GB
Write 64 bit length to .pcf
Various other occurences
2018-02-23 14:14:08 +01:00
Christian Schneider
17b146edfe [WIP] Support zlib streams over 2 GB
Some of the method parameters
2018-02-23 13:39:48 +01:00
Christian Schneider
24d437878c [WIP] Support zlib streams over 2 GB
retval
2018-02-23 13:29:23 +01:00
Christian Schneider
2dd1c32ed1 Replace print64 with cout
Using printf with 64 bit values doesn't work well with GCC (gives warnings at best) - using cout is better and more readable than the old print64 method
2018-02-23 10:43:51 +01:00
Christian Schneider
426a53a13e Fix LZMA executable filters in Comfort version
Closes #75
2018-02-14 19:20:57 +01:00
Christian Schneider
79a785d928 LZMA executable filter parameter
WIP completed, LZMA filters can now be used
2018-02-13 13:03:00 +01:00
Christian Schneider
3895fbc17d [WIP] Parse LZMA filter parameter
- Default changed from "xpa" to "no filters", as filtering hurts compression for non-executables
2018-02-12 19:37:06 +01:00
Christian Schneider
30a276722a Bump copyright year 2018-01-02 14:10:46 +01:00
Christian Schneider
ca2fd12836 [WIP] Syntax for -lf
Explain that delta filter flag must be followed by a distance
2017-12-29 11:01:14 +01:00
jagannatharjun
c1d6555df5 FIX: Parameter parsing ignores additional characters after switches 2017-12-28 22:14:09 +05:30
Christian Schneider
4fc83d65fe Fix for issue #76 2017-12-27 11:34:22 +01:00
Christian Schneider
bb303564a7 [WIP] Syntax for -lf
TODO: Parse and implement parameter
2017-12-27 11:27:04 +01:00
Christian Schneider
d7a2abe1e9 List default in "preserve extension" syntax 2017-12-27 11:09:22 +01:00
Christian Schneider
dd51283f2c [WIP] No tabs, 2 spaces for indentation 2017-12-26 10:16:33 +01:00
Christian Schneider
e63e4898ab Undo context-dependent MTF 2017-12-25 11:14:05 +01:00
Márcio Pais
f82156335a
Update precomp.cpp 2017-11-05 20:47:32 +01:00
Márcio Pais
61a6c5ed9e
Tweaked brute mode heuristic 2017-11-05 20:28:15 +01:00
Márcio Pais
ec0a5ae8b3
New brute mode heuristic, context-dependent MTF lists 2017-11-04 20:49:45 +01:00
Márcio Pais
74a431341b
MTF list for zlib parameters
Use an MTF list to keep the possible zlib parameter combinations indexed by recency
2017-10-31 23:08:01 +01:00
Christian Schneider
22e5f2b98e Fix issue #65
- Use 64 bit for byte count
- Remove unused parameter
2017-10-11 06:07:18 +02:00
Christian Schneider
b643a3cb34 Starting 0.4.7 development 2017-09-21 06:30:26 +02:00
Christian Schneider
eff8288dbc Version 0.4.6 release 2017-09-08 06:32:14 +02:00
Christian Schneider
8adf07ce00 Bugfix for streams bigger than MAX_IO_BUFFER_SIZE 2017-09-04 13:04:44 +02:00
Christian Schneider
57035b5ac4 Bugfix 2017-08-30 17:18:20 +02:00
Christian Schneider
f3244b5f9c Tolerance for identical compressed bytes 2017-08-30 08:17:31 +02:00
Christian Schneider
3709606149 Some fixes
- seek in try_to_decompress is needed
- don't keep on allocating decomp_io_buf memory
2017-08-30 06:46:26 +02:00
Christian Schneider
ec2bb6d231 First test version
- decompress in memory until size exceeds 64 MB
- in recursion, we still use a tempfile
2017-08-29 17:23:15 +02:00
Christian Schneider
36a96bd95e 64 MB I/O buffer not only for JPG 2017-08-28 16:52:47 +02:00
Christian Schneider
ff138f39f7 Merge branch 'master' into intense-mode-speedup 2017-08-24 17:58:02 +02:00
Christian Schneider
cfa602c1ce Better decisions for partial matches
- Ratio of recompressed ratio to decompressed ratio is a good indicator
2017-08-24 07:09:58 +02:00
Christian Schneider
d4b0a8e58a Use a histogram in brute mode
- Prevent false positives that slow down brute mode by using a histogram that filters data too redundant for a deflate stream
2017-08-21 06:54:43 +02:00
Márcio Pais
0315bb1cf9 Fix issues #5 and #24 2017-08-14 12:36:20 +01:00
Christian Schneider
6a6dea54a3 Both brute and intense mode can be active 2017-08-14 07:11:58 +02:00
Christian Schneider
b8dffbbba6 Both brute and intense mode can be active 2017-08-14 07:01:31 +02:00
Christian Schneider
b63677c4d9 Skip uncompressed zlib blocks (BTYPE = 00) in brute mode
- They can be useful in slow mode, but in brute mode, there are short false positive that can cause massive slowdown
2017-08-13 11:09:44 +02:00
Christian Schneider
9303a0b951 Don't skip uncompressed zlib blocks (BTYPE = 00)
- These are often used in combination with static/dynamic BTYPE blocks, so they have to be processed, too.
2017-08-04 06:58:54 +02:00
Christian Schneider
2fcb7fe896 Check for "final compression found" improved
- identical compressed size must be the same, too
- before, there were cases where everything was decompressed, but identical compressed size was smaller than it could be with other combinations
- improves compression ratio for some files
2017-08-04 06:54:56 +02:00
Christian Schneider
2ed93fd799 Useless code line removed
- final_compression_found is set to false in init_decompression_variables() already
2017-07-31 12:03:29 +02:00
Christian Schneider
aed3a94c0f Comment adjusted 2017-07-30 10:29:11 +02:00
Christian Schneider
f939c8254b Minimal decompressed size in brute mode adjusted
- Using 1024 bytes instead of 256 bytes is much faster and still detects most relevant streams
2017-07-30 10:28:05 +02:00
Christian Schneider
3a06e3ca46 Use intense/brute mode helper functions
- Also remove old code that disabled intense mode in general if brute mode was enabled
2017-07-29 11:25:58 +02:00
Christian Schneider
6739bd942e Helper functions for intense/brute mode
- We don't want both active (since brute mode detects everything that intense mode detects), but they can have different recursion depth limits, so helper functions helps keeping things clean
2017-07-29 11:22:09 +02:00
Christian Schneider
796a44ed00 Consistently use "intense mode"
- Some variables and comments still use the old term "slow mode"
2017-07-29 11:10:27 +02:00