c++文件压缩库bundle使用介绍

bundle 的github仓库
bundle是一个可嵌入的压缩库,支持23种算法和2种存档格式。
两种存档格式:

  • 1 将所有文件加入压缩类,然后一起压缩。即 .zip
  • 2 将每一个文件压缩后再加入压缩类,然后打包在一起。即 .bun

特性

  • 存档支持:.bun , .zip。即两种压缩保存方式
  • 流支持:DEFLATE, LZMA, LZIP, ZPAQ, LZ4, ZSTD, BROTLI, BSC, CSC, BCM, MCM, ZMOLLY, ZLING, TANGELO, SHRINKER, CRUSH, LZJB, BZIP2 and SHOCO
  • 最优化压缩率
  • 最优化压缩速度
  • 支持配置、封装、字包含、混合、跨平台(C++03)
  • 可选基础结构(C++ 11)
  • ZLIB/LibPNG版权协议

压缩二进制数据的格式(Bundle stream format),即.zip 的数据格式

[0x00  ...]          Optional zero padding (N bits)
[0x70 0x??]          Header (8 bits). De/compression algorithm (8 bits)
                     enum { RAW, SHOCO, LZ4F, MINIZ, LZIP, LZMA20, ZPAQ, LZ4,      //  0..7
                            BROTLI9, ZSTD, LZMA25, BSC, BROTLI11, SHRINKER, CSC20, //  7..14
                            ZSTDF, BCM, ZLING, MCM, TANGELO, ZMOLLY, CRUSH, LZJB,  // 15..22
                            BZIP2                                                  // 23..
                     };
[vle_unpacked_size]  Unpacked size of the stream (N bytes). Data is stored in a variable
                     length encoding value, where bytes are just shifted and added into a
                     big accumulator until MSB is found.
[vle_packed_size]    Packed size of the stream (N bytes). Data is stored in a variable
                     length encoding value, where bytes are just shifted and added into a
                     big accumulator until MSB is found.
[bitstream]          Compressed bitstream (N bytes). As returned by compressor.
                     If possible, header-less bitstreams are preferred.

.bun的数据格式(Bundle .bun archive format)

- Files/datas are packed into streams by using any compression method (see above)
- Streams are archived into a standard ZIP file:
  - ZIP entry compression is (0) for packed streams and (1-9) for unpacked streams.
  - ZIP entry comment is a serialized JSON of (file) meta-datas (@todo).
- Note: you can mix streams of different algorithms into the very same ZIP archive.

注意:采用这种存档方式时,同一个压缩文件中,可以采用不同的压缩算法。

简单的例子

#include <cassert>
#include "bundle.h"

int main() {
   
    using namespace bundle;
    using namespace std;

    // 23 mb dataset
    string original( "There's a lady who's sure all that glitters is gold" );
    for (int i = 0; i < 18; ++i) original += original + string( i + 1, 32 + i );

    // pack, unpack & verify all encoders
    vector<unsigned> libs {
    
        RAW, SHOCO, LZ4F, MINIZ, LZIP, LZMA20,
        ZPAQ, LZ4, BROTLI9, ZSTD, LZMA25,
        BSC, BROTLI11, SHRINKER, CSC20, BCM,
        ZLING, MCM, TANGELO, ZMOLLY, CRUSH, LZJB
    };
    for( auto &lib : libs ) {
   
        string packed = pack(lib, original);
        string unpacked = unpack(packed);
        cout << original.size() << " -> " << packed.size() << " bytes (" << name_of(lib) << ")" << endl;
        assert( original == unpacked );
    }

    cout << "All ok." << endl;
}

压缩算法的性能(on a regular basis)

最低0.47元/天 解锁文章
C++项目 - 文件压缩
Coder's Blog
04-24 1141
文件压缩 开发环境:Windows Visual Studio 2013 项目概述:利用Huffman编码可对任意文件(包含图片、视频、音频)进行压缩和解压缩使用技术:运用到的数据结构:Heap堆、Huffmantree哈夫曼树、Huffmancode哈夫曼编码 项目思想:压缩文件时利用小堆建立哈夫曼树,依据建立的哈夫曼树产生哈夫曼编码。利用哈夫曼编码对文件进行压缩,产...
C++ 压缩和解压zip、rar、7z等
09-27
C++开发 压缩和解压需要的:包含多个版本的zip、rar、7z,经测试都可用,有些已经编译好了,里面附带一些demo。
IOS Bundle详细介绍使用方法
01-20
什么是Bundle? A bundle is a directory with a standardized hierarchical structure that holds executable code and the resources used by that code. Bundle就是一个标准化分层化的路径,这个目录保存了可执行代码以及这些代码执行的时候需要的资源文件Bundle存储哪些文件文件 作用 Info.plist 一个iOS App运行所必需的文件,这个结构化的文件里存储着App运行需要的各种因素(例如:需要使用地理位置,支持的设备等等) 可
Android 通过Intent使用Bundle传递对象详细介绍
09-01
主要介绍了Android 通过Intent使用Bundle传递对象详细介绍的相关资料,并附实例代码讲解,具有一定的参考价值,需要的朋友可以参考下
bundle的下载和使用
最新发布
limou3434的博客
04-18 226
Cpp中可用的嵌入式压缩第三方
云备份-项目介绍 bundle第三方
08-30
是一个嵌入式压缩,支持23种压缩算法和2种存档格式
Asp.net MVC下使用Bundle合并、压缩js与css文件详解
10-20
在web优化中有一种手段,压缩js,css文件,减少文件大小,合并js,css文件减少请求次数。asp.net mvc中为我们提供一种使用c#代码压缩合并js和css这类静态文件的方法。这篇文章主要介绍了在Asp.net MVC下使用Bundle合并、压缩js与css文件的方法,需要的朋友可以参考下。
最新版bundler,windows下可运行
01-04
最新版的bundler,可以在windows下面通过cygwin运行,也可以用vs2013运行、调试。
C++ 压缩压缩
11-10
C++ 压缩压缩,VS2012版本。我只封装了解压缩,如果需要可以自己封装下压缩的。代码齐全。
C++学习(二九六)Android的Bundle
hankern的专栏
06-27 266
Bundle主要用于传递数据;它保存的数据,是以key-value(键值对)的形式存在的。传递的数据可以是boolean、byte、int、long、float、double、string等基本类型或它们对应的数组,也可以是对象或对象数组。当Bundle传递的是对象或对象数组时,必须实现Serializable 或Parcelable接口。 ...
关于C++KYLib: 压缩/解压缩
Kyee编程之道
01-24 1705
在KYLib 2.1.7.0 (build 2010.10.08) 中,删除 TKYPackObj(压缩类) 和 TKYUnpackObj(解压缩类),增加 TKYPack(压缩类) 和 TKYUnpack (解压缩类), 压缩率和压缩速度都有所提高,基于LZ77压缩算法。使用Hash表搜索匹配项,匹配索引的滑动窗口为32K。压缩性能可调,压缩率和压缩速度与zip相当,解压缩速度比zip快。 
各种压缩算法C++实现
01-18
哈夫曼编码,自适应哈夫曼编码;字典LZW编码;算术编码,输出每个字符的编码,整个字符串的编码以及压缩
C/C++实现文件压缩与解压!(源码+文档)附带教学
10-27 4806
VC++ Huffman实现文件压缩与解压,压缩、解压缩 小工具源代码,基于哈夫曼编码制作,将每个哈夫曼码值及其对应的ASCII码存放在一维数组header[i]中,且编码表中的下标和ASCII码满足顺序存放关系,外部叶子结点数为n个时,内部结点数为n-1,整个哈夫曼树的需要的结点数为2*n-1.对解压缩文件和原文件相同性比较进行判断(根据文件大小)。 代码如下: 压缩和...
关于bundle
枯木园
01-05 1881
bundle是apple提供的软件安装的便捷方法。bundle为用户和开发者提供了一个简单地接口。 bundle和package      package:看起来像一个文件的目录      bundle:一个目录,有标准的层次结构,包含了可执行文件和必须的资源,看起来像一个文件。      package提供了一种让电脑更好用的抽象基础。在电脑中的应用或者插件其实就是一个目录。这个
bundle linux 安装,Bundler 在linux下的安装
weixin_42361933的博客
05-25 710
一、什么是BundlerBundler是一个采用C和C++开发的称为sfm(struct-from-motion)的系统,它能够利用无序的图片集合(例如来自网络的图片)重建出3D的模型。最早的版本被用在Photo Tourism的项目上。Bundler的输入是一些图像、图像特征以及图像匹配信息,输出则是一个根据这些图像反应的场景的3D重建模型,伴有少量识别得到的相机以及场景几何信息。系统借用一个...
C++学习(七十四)有关三维压缩draco
hankern的专栏
10-17 1210
一、是什么 Draco是谷歌Chrome 媒体团队在2017年1月发布的一个3D图形开源压缩,提供了多种算法进行压缩和解压缩。 旨在大幅加速 3D 数据的编码、传输和解码。因为研发团队的 Chrome 背景,这个开源算法的首要应用对象是浏览器。但既然谷歌把它开源,现在全世界的开发者可以去探索 Draco 在其他场景的应用,比如说非网页端。目前,谷歌提供了它的两个版本: JavaScript...
C++压缩算法1.0
intcincoutreturn的博客
02-26 1242
题目描述 某压缩算法的基本思想是用一个数值和一个字符代替具有相同值的连续字符。例如,输入字符串"RRRRRGGBBBBBBC",压缩后为“5R2G6B1C”。请编写程序实现上述功能。 输入 输入共一行,一串待压缩的字符。 输出 输出共一行,压缩后的一串字符。 样例输入Copy RRRRRGGBBBBBB 样例输出Copy 5R2G6B 提示 输入的字符个数在100个以内,字符串中不含空格。 #include <bits/stdc++.h> using nam...
C++著名程序的比较和学习经验
weixin_34254823的博客
01-19 96
2019独角兽企业重金招聘Python工程师标准>>> ...
Qt/C++ 压缩/解压缩—QuaZip
weixin_42887343的博客
01-28 1644
基本介绍: Quazip是 Qt平台下面的一个非常受欢迎的压缩压缩。Quazip是一个用于压缩与解压缩的跨平台文件,是对zlib的封装。 Minizip(基于zlib) 的 ZIP/UNZIP 包是一个简单的 C ,用于创建、附加和读取 ZIP 档案,从技术上讲,QuaZip 是 Minizip 的简单 C++ 包装器,或者可以将其称为适配器模式的实现。 支持平台: 它应该可以在 Qt 4.8.7 或更高版本支持的任何平台上正常工作,理论上,即使是像 Qt 4.6.2 一样旧的版本也可以正常工作(
bundle文件怎么提取
01-19
2. 使用解压软件: 如果bundle文件是经过压缩的,你可以使用解压软件来提取文件。常见的解压软件包括WinRAR、7-Zip、WinZip等。右键单击bundle文件,选择“使用”或“打开方式”,选择一个解压软件,并按照相应的操作...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • NSGA-II 33270
  • 透视变换(perspective transformation) 31605
  • 随机森林sklearn FandomForest,及其调参 22545
  • 学习曲线(learning curve)来判断模型状态:过拟合欠拟合 16803
  • ImageWatch详细教程 11595

分类专栏

  • C/C++ 11篇
  • Qt 14篇
  • 刷题 1篇
  • 设计模式 2篇
  • CUDA 2篇
  • life trace 1篇
  • java 3篇
  • 工具 6篇
  • 最优化
  • algorithms 3篇
  • 计算机网络 1篇
  • leetcode 3篇
  • 遗传算法 1篇
  • AI 1篇
  • python 1篇
  • numpy 2篇
  • matplotlib 1篇
  • sklearn 6篇
  • MySQL 1篇
  • machine learning 8篇
  • 概率or统计 1篇
  • 数学 1篇
  • 笔试 2篇
  • 图像处理 10篇
  • 优化加速 1篇
  • 算法
  • opencv 2篇

最新评论

  • 基于B_spline 的非刚性形变

    williamsong997: default_random_engine啊

  • c++文件压缩库bundle使用介绍

    箐笠: github下载之后怎么运行呢

  • 基于B_spline 的非刚性形变

    童话小犬: 请问你找到参考的英文文献了吗

  • C++拷贝构造、移动拷贝构造、左值、右值

    lrznumber: 移动构造的示例输出结果错了,按照当前的代码,在关闭RVO的情况下,应该是调用了3次move construct; 打开RVO的情况下,不会调用move construct

  • 基于B_spline 的非刚性形变

    2.0版本升级中ヾ(≧▽≦*)o: 博主可以分享一下参考英文文献的题目嘛?谢谢~~表情包表情包

大家在看

  • DearLicy主题 小清新风格的博客主题源码 Typecho主题

最新文章

  • C++ 文件系统类 filesystem
  • Qt 学习博客
  • Qt-解决Qt与MySQL连接过程中出现“QSqlDatabase: QMYSQL driver not loaded”问题
2020年7篇
2019年28篇
2018年26篇
2017年3篇
2016年12篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码保山网站搜索优化推荐南山建网站报价潮州百度标王报价长治关键词排名哪家好泰州企业网站设计多少钱怒江模板网站建设公司常州seo辽源百度竞价包年推广公司武威网站优化软件哪家好莆田网站推广哪家好大芬模板网站建设哪家好铜仁网站定制公司通化SEO按天扣费报价汕头网站推广系统价格河池关键词按天计费推荐绵阳网站定制报价曲靖SEO按天收费哪家好铜川网站优化多少钱沈阳网站推广系统推荐湘西企业网站改版价格SEO按效果付费哪家好木棉湾seo网站推广多少钱咸宁关键词排名公司临沂模板网站建设报价菏泽营销网站哪家好达州建设网站推荐鹤壁百姓网标王价格晋城百姓网标王推广多少钱龙岩seo网站推广报价阳江百度竞价哪家好歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化