libfor是一个ANSIC库,是参考框架(FrameOfReferece)整数压缩的快速标量实现。
libfor可以压缩顺序或者乱序的数列,另外,此库可以在压缩数据上直接执行操作:
选择:在指定索引处返回一个值;
线性搜索:对于未排序数列,或者短排序数列
下界搜索:对排序数列的二进制搜索
示例代码:
#defie LEN 100uit32_t i[LEN] = {0};uit8_t out[512];// Fill |i| with umbers of your choicefor (it i = 0; i < LEN; i++) i[i] = i;// Now compress; ca also use for_compress_sorted() if the umbers// are sorted. This is slightly faster.uit32_t size = for_compress_usorted(&i[0], &out[0], LEN);pritf("compressig %u itegers (%u bytes) ito %u bytes\", LEN, LEN * 4, size);// Decompress agaiuit32_t decompressed[LEN];for_ucompress(&out[0], &decompressed[0], LEN);
评论