nuttx/libc/lzf/Kconfig

62 lines
1.6 KiB
Plaintext

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
config LIBC_LZF
bool "LZF compression"
default n
---help---
Enable the LZF compression library from Marc Alexander Lehmann
if LIBC_LZF
choice
prompt "Compression options"
default LIBC_LZF_SMALL
---help---
Trade-offs between faster and smaller compression. These sections
have no effect on decompression.
config LIBC_LZF_SMALL
bool "Better compression"
config LIBC_LZF_FAST
bool "Faster compression"
config LIBC_LZF_FASTEST
bool "Fastest compression"
endchoice # Compression options
config LIBC_LZF_HLOG
int "Log2 Hash table size"
default 13
range 1 22
---help---
Size of hashtable is (1 << HLOG) * sizeof (char *). Decompression is
independent of the hash table size the difference between 15 and 14 is
very small for small blocks (and 14 is usually a bit faster). For a
low-memory/faster configuration, use HLOG == 13; For best compression,
use 15 or 16 (or more, up to 22).
Memory usage for the hash table will be approximately:
4 * (1 << CONFIG_LIBC_LZF_HLOG)
For the default setting of 13, this is 32Kb. A setting of 12 would
be half that or about 16Kb.
The application calling lzf_compress() must provide the hash table to
the compressor and may allocate that memory in the most efficient way
for the application. The hash table is not necessary if your application
only decompresses.
config LIBC_LZF_ALIGN
bool "Strict alignment"
default y
---help---
Unconditionally aligning does not cost very much, so do it if unsure.
endif # LIBC_LZF