20#include <cuda_runtime.h>
25namespace bitplane_rze {
36 BPRZE_HDR_BITFLAG = 1,
37 BPRZE_HDR_STARTPOS = 2,
38 BPRZE_HDR_BITSTREAM = 3,
42constexpr size_t kBitplaneRzeHeaderBytes = 128;
46 uint32_t entry[BPRZE_HDR_END + 1];
47 uint8_t padding[kBitplaneRzeHeaderBytes -
sizeof(size_t) -
48 sizeof(uint32_t) * (BPRZE_HDR_END + 1)];
50static_assert(
sizeof(ArchiveHeader) == kBitplaneRzeHeaderBytes,
51 "ArchiveHeader must be exactly 128 bytes");
68size_t maxArchiveBytes(
size_t data_len);
84 const uint16_t* d_in,
const Config& cfg,
85 uint32_t* d_offset_counter, uint32_t* d_bitflag, uint32_t* d_start_pos,
86 uint8_t* d_comp_out, uint32_t* d_comp_len, cudaStream_t stream);
94 const uint8_t* d_bitstream,
const uint32_t* d_bitflag,
95 const uint32_t* d_start_pos, uint16_t* d_out,
const Config& cfg,
void launchEncode(const uint16_t *d_in, const Config &cfg, uint32_t *d_offset_counter, uint32_t *d_bitflag, uint32_t *d_start_pos, uint8_t *d_comp_out, uint32_t *d_comp_len, cudaStream_t stream)
void launchDecode(const uint8_t *d_bitstream, const uint32_t *d_bitflag, const uint32_t *d_start_pos, uint16_t *d_out, const Config &cfg, cudaStream_t stream)
Definition fzm_format.h:25
Sizes derived from the (unpadded) uint16 symbol count.
Definition bitplane_rze_kernels.h:54
size_t data_bytes
Padded byte count (= pad_len * 2).
Definition bitplane_rze_kernels.h:57
size_t grid_x
Number of CUDA blocks (data_bytes / 4096).
Definition bitplane_rze_kernels.h:59
size_t chunk_size
Number of uint32 bitflag words (data_bytes / 512).
Definition bitplane_rze_kernels.h:58
size_t pad_len
Symbol count padded up to a 4096-byte multiple.
Definition bitplane_rze_kernels.h:56
size_t data_len
User-visible uint16 symbol count.
Definition bitplane_rze_kernels.h:55