38 Commits
Author SHA1 Message Date
Timofey Solomko cb9d181754 [BZip2] Don't create new Huffman trees if maximum amount of trees possible is already reached 2018-03-03 20:30:49 +03:00
Timofey Solomko 4888f37f0f Revert addition of BBD-related public APIs to Zlib, LZMA and BZip2 2018-03-02 23:32:39 +03:00
Timofey Solomko ba037786b4 [LZMA] Add public decompress(from:) function which uses BBD's ByteReader as its argument 2018-02-23 12:58:24 +03:00
Timofey Solomko 8b4ff5c040 [BZip2] Make decompress(_ bitReader:) function public and add "from" label to its argument 2018-02-23 12:58:24 +03:00
Timofey Solomko e710e37233 [BZip2] Add comments about smaller block size for compression 2018-01-29 19:55:42 +03:00
Timofey Solomko 7d99ab176a [BZip2] Use not-reduced block size for decompression 2018-01-17 12:01:00 +03:00
Timofey Solomko ca41cc3b5f [BZip2] Additionally reduce block sizes by 1.25
This is required, because, apparently, original bzip2 implementation doesn't account for the fact that the initial RLE can cause expansion of the data.
2018-01-16 22:28:35 +03:00
Timofey Solomko d8a47efd44 [BZip2] Slightly optimise initial RLE in compress 2018-01-14 23:07:09 +03:00
Timofey Solomko 02fb0c2886 [BZip2] Fix incorrect block sizes in compression
I previously thought that 1KB = 1024 bytes, but apparently in this case it is just 1000 bytes.
2018-01-14 18:17:44 +03:00
Timofey Solomko 81a6cba5ff Swiftlinted with two new rules 2018-01-14 11:12:27 +03:00
Timofey Solomko 44f33bf02a Make bit reader and writer functions' parameters concrete classes
Previously, it was almost always protocols, which in some cases didn't make sense.
2018-01-07 22:27:36 +03:00
Timofey Solomko bb45735132 Merge BurrowsWheeler.reverse and transofrm functions
The latter was used only for reverse transformation despite its name.
2018-01-07 20:09:34 +03:00
Timofey Solomko b9440aac9f Rework inverse BWT by removing sorting stage
This change has a significant impact on performance in a good way.
2018-01-07 15:16:18 +03:00
Timofey Solomko 1dbc64a615 Remove switch from BZip2.BlockSize.headerByte 2018-01-07 15:12:59 +03:00
Timofey Solomko 7a09d5fde8 Preallocate bytes arrays in BZip2 2018-01-07 15:12:54 +03:00
Timofey Solomko b035d910a0 Rewrite BZip2.BlockSize.headerByte() as computed properties 2018-01-05 15:03:47 +03:00
Timofey Solomko 9f4884adc8 Refactor bzip2 block size parsing 2018-01-03 23:41:20 +03:00
Timofey Solomko e714dc308b Updated copyright year to 2018 2018-01-03 19:44:18 +03:00
Timofey Solomko c8d92e56d3 Replace BitReader and ByteReader with BitByteData's implementations 2018-01-03 19:22:15 +03:00
Timofey Solomko bb39c4016c Replace SWCompression.BitWriter with BitByteData's one 2018-01-03 19:22:15 +03:00
Timofey Solomko 22bd529b3c Change return type of BitReader.bit() to UInt8 2018-01-03 19:22:13 +03:00
Timofey Solomko cef8ab12a2 Rename BitWriter.finish() to align 2018-01-03 19:22:13 +03:00
Timofey Solomko 15c06843b1 Replace BitWriter.buffer with Data 2018-01-03 19:22:13 +03:00
Timofey Solomko e05f917210 Improve compile time 2017-12-24 14:57:35 +03:00
Timofey Solomko 545e5c69fc Remove some redundancy from documentation 2017-11-14 21:35:30 +03:00
Timofey Solomko 556e42e179 Add and update documentation 2017-11-14 20:37:20 +03:00
Timofey Solomko b3ebeb20be Rename BZip2Error.wrongHuffmanLengthCode to wrongHuffmanCodeLength 2017-11-10 22:20:47 +03:00
Timofey Solomko 9ae46fb84b Include last processed block in wrongCRC error of BZip2 2017-11-04 21:42:53 +03:00
Timofey Solomko 0b85d8f768 Rename BZip2Error.wrongCompressionMethod into BZip2Error.wrongVersion 2017-11-04 20:22:03 +03:00
Timofey Solomko b04cb4ceb8 Use Data instead of byte arrays in BZip2 decompression as much as possible 2017-10-31 20:18:18 +03:00
Timofey Solomko 7eacfe7ab6 Extract private functions for stages of bzip2 processing 2017-10-07 15:16:21 +03:00
Timofey Solomko 9abb475e2b Simplify write of used bytes map and selectors used in bzip2 2017-10-07 15:15:08 +03:00
Timofey Solomko 264e9b9e1e Extract private functions in bzip2 huffman code length generation 2017-10-07 15:14:00 +03:00
Timofey Solomko 5da624e75f Use new data slicing in bzip2 compress 2017-10-07 12:28:03 +03:00
Timofey Solomko 21467899db Use new reduce function in bzip2 decompress 2017-10-07 12:27:51 +03:00
Timofey Solomko 58768ba466 Revert change to suffix array
endIndex means the same thing as count in that context.
2017-10-07 12:26:56 +03:00
Timofey Solomko b4bdd16b5e Fix compile problem on linux 2017-10-07 00:09:07 +03:00
Timofey Solomko 843896edcf Move source code files into subfolders 2017-10-06 23:10:01 +03:00