Commit Graph

49 Commits

Author SHA1 Message Date
Roy Oursler
f1f8d0917d igzip: Modify stateless to limit max compression size
Change-Id: Ic2fcbe8fe643bcbd00bdc13e649e42b639098dad
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-20 11:12:02 -07:00
Roy Oursler
49e3329729 igzip: Fix Stateless Full Flush type0 block bugs
Prevent type 0 block in stateless full flush from attempting to write a trailer
when it not the end of the stream and fix the values of block_start and
block_end.

Change-Id: Ia8beac20fc244b1b3e5690cbc15d4d4bb8ada68e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-20 11:12:02 -07:00
Roy Oursler
8387b65800 igzip: Modify hash table size based on input size
Change-Id: Ieeddb36ef8cd9615011876e4d8dc941a06622d1b
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-20 11:12:02 -07:00
Roy Oursler
ff1928e8ec igzip: Create functions to write gzip/zlib headers
Change-Id: If5aaa277a01214bd36406ee11680df0904ad12f7
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-20 11:12:02 -07:00
Roy Oursler
03bef684a4 igzip: Setup for variable hash mask
Change-Id: I3be94dbc40c2e02dcff4f89e5a9df8ed1f744f02
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-18 14:27:25 -07:00
Roy Oursler
6317ce2b78 igzip: Setup for variable lookback distance
Change-Id: Idd52c9392113dfc54feea3c66916a7f5aa128bef
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-09-18 14:27:25 -07:00
Roy Oursler
f421ea8d7a igzip: Modify isal_deflate buffer management
Change-Id: I2f12a0acf8ceeffb7328093e25205a6e73484159
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-08-21 16:35:30 -07:00
Roy Oursler
649ad89cdf igzip: Fix large buffer bug due to promoting total_in to uint64_t
Change-Id: Ibf7af1695d3d04a30c09f8bf2b444e4a5b87971a
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-08-21 16:35:23 -07:00
Roy Oursler
bb3c6c28c8 igzip: Remove need for total_in_start
Change-Id: Ie9ab3e702ce07a5ba8d6fb3275da98e03c25822b
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-08-21 13:18:05 -07:00
Roy Oursler
a32245b97b igzip: Fix underflow bug in total_in in isal_deflate()
Fix bug introduced by patch 2a292689e.

Change-Id: If53af716d546e9430eb8aaae32c2f6133aba21a2
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-08-15 11:18:33 -07:00
Roy Oursler
2a292689ec igzip: Fix deflate for large buffers
Change-Id: I1993e0a6d3aa36c68af80229329316b2e0616a09
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2018-08-07 09:52:55 -07:00
Daniel Verkamp
6e9f576bff igzip: remove detect_repeated_char()
This was replaced with detect_repeated_char_length(), but the
implementation of the old function was never removed.

Change-Id: I55485cec324dce01033b73f24474f1aca2a31bd3
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2018-03-29 09:33:04 -07:00
Daniel Verkamp
575664e78b igzip: mark internal igzip.c function static
detect_repeated_char_length() is only used within igzip.c.

Change-Id: I77ee5422e2cb58d81b9705ebcfad68f3a7017d6b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2018-03-15 12:33:49 -07:00
Roy Oursler
e3fad7c45a igzip: Fix out buffer overflow in write_type0_header
Fix a possible 1 byte overflow by creating a combined write_bits and flush.

Change-Id: I2d2455e9e32a820522ff1d89d016db72a82baed9
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
8965584ae3 igzip: Implement large hash table method as level 2
Move current level 2 compression to be level 3 and create a level 2
compression which is the same algorithm as level 1 but with a larger
hashtable.

Change-Id: I398a6017c2ff218dded24e229fb51c23ea69f314
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
7a12bcb2a8 igzip: Separate concept of level and compression method
Change-Id: I82a5fbeb93adc77057893c643e044e311e4f393c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
fe68f02dac igzip: Move hash_table and symbol histogram for icf compression
Change-Id: I50df9c8915ff3e1af450aeb8e4c0cc3baf9624ae
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
9203f96c2a igzip: Change inputs to deflate_hash functions
Change-Id: I9ffff9aee82d5d1ece51853b4709f13ccd80c8ad
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
4ae2d1be29 igzip: Implement optimized level 2 compression
Change-Id: I8cf5bcd56f290d17205ac36dc2828c8acfc66947
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
49156c3568 igzip: Implement block buffer
Change-Id: I9d7942740557e4ffaf8e223e190f4bd4e4f47b1e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
6049ce3ca7 igzip: Modify state to record total_in on deflate call
Change-Id: I13e5878a227732545aee5a762bf5a9a75ce73f02
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Roy Oursler
59b9990a39 igzip: Remove file_start from zstate
Change-Id: Ia4cb6dc86da54cc771f25a6d958bea730caa4801
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-12-15 14:27:14 -07:00
Greg Tucker
a7fad4b9d2 igzip: Change a few conflicting functions to static
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-08-18 14:34:14 -07:00
Roy Oursler
34c341db35 igzip: Add reset functions for both deflate and inflate.
Change-Id: I8677a4365ac5c2343751660176f3b2eb4746ddfe
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-26 04:14:44 -04:00
Xiaodong Liu
39ce870235 igzip: slver typo fix
Change-Id: I13e6d150d0c661ee6dda9c25162c9ade5136d367
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
2017-06-26 04:12:19 -04:00
Roy Oursler
ed15402f5b igzip: Add stateful dictionary support
Change-Id: I75dbac947787bc0041674468c88d0aa41b8b082f
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-26 04:11:48 -04:00
Greg Tucker
3025e83b91 igzip: Add avx2 optimized adler32 checksum
Change-Id: I019a38cf98836e3e6c7215a6914b85abb9399e33
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-06-26 03:56:49 -04:00
Roy Oursler
f4a5b303e2 igzip: Remove BITBUF8 and BITBUF_ELSE compile options
Change-Id: Iad3b2e6f9a32473b6e59910494c75d82558fc28e
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 06:03:51 -04:00
Roy Oursler
64143a741e igzip: Implement type 0 blocks for level 1 compress
Change-Id: If55ab161623d29fa6fb08df3bc813e654918e592
2017-06-21 05:46:38 -04:00
Roy Oursler
87652b4489 igzip: Modify inflate to optionally calculate adler32 hash
Change-Id: I314617b89b59d53608e464c7d2cf299faa3528b5
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:42:12 -04:00
Roy Oursler
0cc3d93758 igzip: Modify test to test zlib compression
Change-Id: I52979c9e572ef9703995adf8d2163ba1797b8f53
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:41:47 -04:00
Roy Oursler
4259169107 igzip: Implement zlib compression format
Change-Id: I3d3cca425a494ac629cea230de74e3d32fcaea79
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-06-21 05:41:05 -04:00
Greg Tucker
dbab2ddad7 igzip: Make crc32_gzip_base standalone c function
Change-Id: Iffb55919fb51e9e3d74c5c5cb06a3011bd19e99b
Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2017-03-30 18:22:20 -07:00
Roy Oursler
871ad43fad igzip: Fix bug in isal_deflate where processed is not calculated correctly.
Change-Id: I61e15a18ebe3130e73010337d2d41f59e2227f08
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:20:32 -07:00
Roy Oursler
9992cc1920 igzip: Implement static header on level 1 compress
Change-Id: I0fe61eb6d3994a0977a4486a2a4cf21af38dc250
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 17:13:12 -07:00
Roy Oursler
01dfbcc484 igzip: implement igzip two pass
Change-Id: I9564b2da251a02197b39cab5f141e7aff1ae8439
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:50:48 -07:00
Roy Oursler
43d1029b81 igzip: Modify sync_flush to not worry about writing eob
Change-Id: If3e7d5ff628574d715be348d96cdb82645985c25
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2017-03-30 16:06:47 -07:00
Roy Oursler
7fefb53938 igzip: Add a hufftable for the static Huffman code in Deflate
Change-Id: If8aadce05bcb705e608fe3ed6028be9a7448fa59
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:15:57 -07:00
Roy Oursler
e1bcebc93a igzip: Fix igzip to work with huffman codes with small headers.
Change-Id: Icd1236ada831c027f97cd4a6cabdeb15022b56be
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 16:15:32 -07:00
Roy Oursler
4809b9ba83 igzip: Create flag signifying existence of buffer history
Create a flag signifying the existence of buffer history so a literal does not
have to be encoded on every call of isal_deflate_body and isal_deflate_finish.

Change-Id: I3750cac7e5f19fbaa190e19fb929172c16289723
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:22:22 -07:00
Roy Oursler
266ac91a6e igzip: Allow user to write a custom gzip header before compressing with gzip
Modify gzip_flag so that if set to IGZIP_GZIP_NO_HDR, no gzip hdr is written.

Change-Id: I79dbd5287cf471777b10412c17d23dc7f5a57bf6
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:17:33 -07:00
Roy Oursler
4ea4f81138 igzip: Make gzip format a run time option.
Change-Id: Ia986d378763146b33c733751652bff788ec3cb9d
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:16:07 -07:00
Roy Oursler
77e43ef6cf igzip: Set isal_deflate_stateless to use same assembly functions as isal_deflate
Change-Id: I813b620286c2f74fabff6937fbceddb65377f40c
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 11:07:08 -07:00
Roy Oursler
d941b66162 igzip: Improve igzip stateful on large buffers
Change-Id: I3e9e56958e8ea3e636df3369b29c3d4b94dce9d8
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
2016-12-06 10:59:52 -07:00
Roy Oursler
88f95d8594 igzip: Merge inflate.h and igzip_lib.h and fix external naming
Merge inflate.h and igzip_lib.h and rename many defines to avoid conflicts,
along with general cleanup of the new header.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:40:43 -07:00
Roy Oursler
22bd9eef65 igzip: Optimize igzip
Remove conditional move and reorder operations to increase speed.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:30:56 -07:00
Roy Oursler
d06e14b937 igzip: Port update_histogram and decode_huffman_code_block to windows
Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:17:54 -07:00
Roy Oursler
a1981da94e igzip: Create stateless FULL_FLUSH mode
Add flush modes to isal_deflate_stateless. IGZIP_USE_GZIP_FORMAT is not
supported because of limitations imposed by the statelessness.

Signed-off-by: Roy Oursler <roy.j.oursler@intel.com>
Reviewed-by: Greg Tucker <greg.b.tucker@intel.com>
2016-12-05 16:16:11 -07:00
Greg Tucker
660f49b02d Add data compression unit
Include fast DEFLATE compatable compression functions.

Signed-off-by: Greg Tucker <greg.b.tucker@intel.com>
2016-06-10 17:03:38 -07:00