#include "zlib_lz77_compress_mm.hpp"
void xilLz77Compress ( const xf::compression::uintMemWidth_t* in, xf::compression::uintMemWidth_t* out, uint32_t* compressd_size, uint32_t* in_block_size, uint32_t* dyn_ltree_freq, uint32_t* dyn_dtree_freq, uint32_t block_size_in_kb, uint32_t input_size )
LZ77 compression kernel takes the raw data as input and compresses the data in block based fashion and writes the output to global memory. LZ77 is a byte based compression scheme. The resulting output from this kernel is represented in packet form of 32bit length <Literal, Match Length, Distance>. It also generates output of literal and distance frequencies for dynamic huffman tree generation. The output generated by this kernel is referred by TreeGen and Huffman Kernels.
Parameters:
in | input stream |
out | output stream |
compressd_size | compressed output size of each block |
in_block_size | input block size of each block |
dyn_ltree_freq | literal frequency data |
dyn_dtree_freq | distance frequency data |
block_size_in_kb | input block size in bytes |
input_size | input data size |