Solid Compression

2023-05-16

定义

Solid Compression是一种多文件的数据压缩方式,其中所有未被压缩的文件是一个整体,视为一个独立的data block。这样的文件称为solid archive。7z、RAR压缩格式和tar-based格式都支持Solid Compression。但是ZIP压缩不支持,因为ZIP存储分立的压缩文件。

概念解释

文件压缩格式通常包括:压缩(compression)和打包(archiving)。对于多文件的情况,可以用两种不同的方式组合压缩和打包过程:
1. 先单独压缩每个文件,然后打包成一个独立的文件
2. 先打包成一个独立的文件,然后再进行压缩(Solid Compression)

ZIP可以使用第1种方式实现Solid Compression的效果。在Unix中,压缩和打包是两个分立的过程,以下是一个例子:
- compressing individual files and then archiving would be a tar of gzip’ed files – this is very uncommon, while
- archiving via tar and then compressing yields a compressed archive: a .tar.gz – and this is solid compression.

Solid Compression的优缺点

  • 优点

    1. 对于所有文件都很相似的情况(相同的文件格式等),Solid Compression的压缩率更高
    2. 打包很多小文件时更加高效
  • 缺点

    1. 使用Solid Compression后,如果要从压缩包中提取出某一个文件,则需要处理所有的文件才能实现。因此,修改Solid Archive会比较慢和不方便。但是最新版的7-zip中可以设置solid block size,修改压缩文件相对比较简单。
    2. 使用Solid Compression,一旦压缩文件有一点损坏,可能导致压缩包里面的所有文件都无法使用。

参考资料

wiki: Solid compression

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Solid Compression 的相关文章

  • 使用 C# 压缩/解压字符串

    我是 net新手 我正在用 C 进行字符串压缩和解压 有一个 XML 我正在转换为字符串 然后进行压缩和解压缩 我的代码中没有编译错误 除非我解压代码并返回字符串时 它只返回 XML 的一半 下面是我的代码 有错误的地方请指正 Code c
  • 将字节数组解码为Java中已压缩的位图

    我按以下方式压缩位图 Bitmap bmpSig getMyBitMap int size bmpSig getWidth bmpSig getHeight ByteArrayOutputStream out new ByteArrayOu
  • C# 快速/高效地压缩大量数据块

    我有大约 270k 个数据块对 每对由一个 32KiB 和一个 16KiB 块组成 当我将它们保存到一个文件时 我当然会得到一个非常大的文件 但数据很容易被压缩 用WinRAR对5 48GiB的文件进行强压缩后 得到的文件大小为37 4Mi
  • 如何使用 C# 验证文件是否是受密码保护的 ZIP 文件

    给定文件路径 如何验证该文件是否是受密码保护的 zip 文件 即 我将如何实现这个功能 bool IsPasswordProtectedZipFile string pathToFile 我不需要解压缩该文件 我只需要验证它是否是 ZIP
  • 使用 IIS-Express 激活压缩(尤其是动态压缩)

    是否可以在 IIS Express 上启用动态压缩 针对 WCF 服务 这是一个开发环境问题 因此我无法使用完整版本 但我需要弄清楚它在压缩时的表现如何 进入 IIS Express 安装文件夹 programfiles IIS Expre
  • 行程解压

    这里是CS学生 我想编写一个程序来解压缩根据游程编码的修改形式进行编码的字符串 我已经为其编写了代码 例如 如果字符串包含 bba10 它将解压缩为 bbaaaaaaaaaa 如何让程序识别字符串的一部分 10 是整数 谢谢阅读 一个简单的
  • 如何从 Compass 输出压缩的 CSS?

    如何配置指南针以输出较小或压缩的 CSS 文件 我试过compass s compressed但这没有用 In your config rb file output style compressed More at http compass
  • 通过网络发送的数据的字符串压缩/解压缩[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 中的字符串压缩方法 可以在将数据字符串写入网络套接字之前对其运行 我对任何类型的压缩都相当陌生 因此我在这里寻求一些建议
  • GZip 压缩(通过 .net)会增加文件大小吗?

    我跟踪使用 Net 的 GZipStream 类压缩的文件的原始大小 并且我认为要压缩的文件的大小似乎有所增加 那可能吗 这就是我进行压缩的方式 Byte bytes GetFileBytes file using FileStream f
  • 为什么数据只能压缩一次?

    所以压缩过程需要一大块二进制数据A并输出较小的二进制数据块B 有什么特点B使其无法再次经历这个过程 数据有一种叫做熵的东西 每个新位给出的新信息量 例如 10101010101010101010具有低熵 因为你不需要下一点就知道接下来会发生
  • YUI Compressor 中 JQuery 文件的压缩问题

    我正在尝试使用 YUI 压缩器缩小一些文件 然而 我似乎在两行代码上遇到了错误 这阻止了压缩 js 文件用于jcarousel精简版 http www gmarwaha com jquery jcarousellite 包含 1 个错误 我
  • 从 iPhone 中的视频帧获取图像

    是否可以使用 iPhone SDK 从 iPhone 中的视频中抓取帧并将其保存或在应用程序中以任何方式使用它 除了播放 停止或访问视频的二进制数据之外 SDK 是否可以对视频进行任何控制 还可以知道用户停止观看视频的时间 我知道在 SDK
  • Java 中对象序列化和压缩的性能成本

    应用程序不断接收名为Report并将对象放入Disruptor对于三个不同的消费者 在 Eclipse Memory Analysis 的帮助下 每个进程的 Retained Heap SizeReport对象平均为 20KB 该应用程序开
  • 如何使用 Kotlin 在 Android 中压缩照片

    现在这是我从智能手机拍照的代码 问题是图像非常大 我想压缩它 有一些帮助或想法吗 谢谢 你的 信息 执行 abrirCamara 方法 private fun abrirCamara val values ContentValues val
  • 尽管缓冲区分配给 compressBound 结果(文件太大?),zlib compress() 返回 Z_BUF_ERROR

    使用 zlib 时 我调用compress 给出一个Z BUF ERROR当我尝试压缩一个 13G 的文件时 尽管我认为缓冲区分配是正确的 此代码适用于较小的文件 struct stat infile stat FILE fp NULL i
  • 如何使用 Python GZip 模块压缩文件夹?

    我正在创建压缩文件 文件夹的 Python 软件 我将如何创建一段代码 要求用户输入文件夹位置 然后对其进行压缩 我目前拥有单个文件的代码 但没有包含完整文件的文件夹 请详细解释如何执行此操作 将文件夹压缩为 tar 文件的代码是 impo
  • 如何使用 .NET 压缩目录?

    我有一个包含多个文件的目录 我想将此文件夹压缩为 zip 或 tar gz 文件 我怎样才能用 C 完成他的工作 您可以使用DotNetZip 库 http www codeplex com DotNetZip 它有相当丰富和有用的功能 E
  • 尽管 CRC 错误,仍强制 gzip 解压缩

    我认为有办法做到这一点 但我不确定如何做 基本上 我正在编写一个压缩程序 当我尝试解压缩压缩数据时 该程序导致了 crc 错误 通常 这意味着解压缩器实际上将我的数据识别为正确的格式并将其解压缩 但是当它将结果与 CRC 指示的预期长度进行
  • 从选定位置导入 Python 模块

    假设我有三个脚本 Main py 包含所有导入 1 py 随机脚本 2 py 随机脚本 pyinstaller F onedir Main py 80mb pyinstaller F onedir 1 py 80mb pyinstaller
  • 归档文件系统或格式

    我正在寻找一种文件类型来存储已退役系统的档案 目前 我们主要使用 tar gz 但从 200GB tar gz 存档中查找并提取几个文件是很麻烦的 因为 tar gz 不支持任何类型的随机访问读取规定 在你明白之前 使用 FUSE 安装 t

随机推荐

  • 新手学习嵌入式开发要学什么

    最近遇到很多处于迷茫中的新手 xff0c 在纠结要不要去学嵌入式 xff0c 主要问题在于嵌入式的门槛非常高 xff0c 经验少 或者非电子专业投身嵌入式行业能否发展下去 现在嵌入式开发行业的确发展很好 xff0c 大多数从业者都是科班出身
  • 天猫精灵智能家居对接,及天猫iot官网配置图文讲解(二)

    天猫精灵智能家居对接 及天猫iot官网配置图文讲解 xff08 二 xff09 2 天猫精灵设备对接 2 1 介绍 上一章里 xff0c 我已经讲了天猫精灵的技能配置 xff0c 设备创建 xff0c 登录验证这三个部分做了 xff0c 此
  • [一] Nuttx 系统结构简析和开发步骤

    文章目录 一 背景二 Nuttx系统分层三 各层的作用四 各层之间的粘合剂五 总结 amp 开发步骤 一 背景 最近在自己开发基于Nuttx的四轴飞行器控制系统 慢慢的对Nuttx有了自己的理解 二 Nuttx系统分层 NSH Nuttx
  • Ardupilot编译流程分析

    lt 61 2 61 gt gt gt gt gt gt gt 编译流程分析 lt 61 2 61 gt gt gt gt gt gt gt lt 1 gt 在ardupilot ArduCopter 键入 xff1a make px4 v
  • 《cmake调用shell》

    1 CMakeLists txt add custom target config ALL COMMAND bash x sh 2 shell File Name x sh Author XXDK Created Time Wed 01 N
  • Ardupilot之cpu外设基础抽象聚合类 HAL.h

    libraries AP HAL HAL h 定义了所有外设的基础抽象类集合 一个 HAL 抽象类世界 xff0c 由 HAL 层的cpu外设的抽象类基础组件组聚而成 xff1b 也就是一个 HAL 派生类子对象 代表了一个 cpu 的所有
  • 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验

    连续几天我们收到几位客户的问题工单 xff0c 问题描述都类似 xff0c 都是在做登陆或者交易时报脚本错误 xff0c 交易无法正常执行 我们 远程协助 客户机器时 xff0c 调试发现都是ajax代码出错 xff0c 错误如下 xff1
  • Java异常的另类用法(一)

    异常在我们的代码中是不可避免的 xff0c 有些异常可以忽略 xff0c 多数的异常我们要显式处理 xff08 至少要记录日志 xff0c 以便后面排查问题 xff09 xff0c 这里我们不是要细说异常的处理规范 xff0c 而是使用异常
  • 使用POI在Excel单元格插入符号(Symbol)

    最近看到有人在 技术问答 上提问怎么用java在excel中插入打勾符号 xff1f 我想解决这个问题并不难 我们先打开一个excel文件 xff0c 在里面插入特定符号 xff0c 然后用poi xff08 其他的技术也可以 xff09
  • Eclipse下C语言的Socket编程(Winsock,gcc)问题总结

    最近心血来潮想从新温习一下C语言 xff08 工作后一直用Java xff0c 其实大学时C语言课程也没好好上 xff0c 正经的代码基本没写过 xff0c 惭愧啊 xff01 xff09 xff0c 找了些小例子 xff0c 修修改改 x
  • 各种哈希函数的java实现

    收集整理 public class HashUtils br private static final int crctab 61 0x00000000 0x77073096 0xee0e612c 0x990951ba br 0x076dc
  • libssl.so.10缺失库文件的解决办法

    libssl so 10缺失库文件的解决办法 在RHEL6 5中对openssl进行了升级 xff0c 如果老版本是OpenSSL 1 0 1e fips 那直接安装最新的openssl 1 0 1g 1 x86 64 rpm就行了 xff
  • Nvidia Jetson Nano入门与使用

    Pre xff1a Nvidia Nano板等了好久 xff0c 国内终于便宜了一点 刚从网上买一个 xff0c 准备替换掉Nvidia TX2开发板 xff08 因为目前的算法在Nano开发板上跑应该没有问题 xff09 打开包装 xff
  • 算法之路(四)----汉诺塔(又称河内之塔)

    汉诺塔是很简单也很经典的算法之一 汉诺塔是根据一个传说形成的数学问题 xff1a 有三根杆子A xff0c B xff0c C A杆上有N个 N gt 1 穿孔圆盘 xff0c 盘的尺寸由下到上依次变小 要求按下列规则将所有圆盘移至C杆 x
  • 相位一致性——利用频域检测边缘

    相位一致性 利用频域检测边缘 一 相位一致性提出的背景 相位一致性的提出是基于科学家发现了人感觉图像的关键不在于图像的长度差或者高度差之类的因素 xff0c 关键在于图像信号的相位大小 xff0c 例如人知道一个方波的边缘 xff0c 并不
  • 图像分割——掩膜法

    电路板是用掩膜法制作而成的 xff0c 现在电路板表面涂上一层抗腐蚀的材料 xff0c 然后再进行处理 xff0c 最后洗去材料就得到了电路 掩膜法在图像处理中的应用 xff1a 可用于分割图像中的特定部分 xff0c 关键在于怎么取膜 例
  • C++ 值传递、指针传递、引用传递详解

    具体内容源自 xff1a http www cnblogs com yanlingyin archive 2011 12 07 2278961 html 以下是简介 xff1a 值传递 xff1a 形参是实参的拷贝 xff0c 改变形参的值
  • MATLAB: 读取同一目录下的所有文件名并按时间排序

    用MATLAB测试图像处理算法的过程中 通常需要读入一个目录下的多张测试图片 可以根据文件命名规则来读入某个特定目录下的所有文件 但是相对比较麻烦 通过利用MATLAB自带的dir 可以先读入所有的文件名字 知道文件数量 而且不用知道文件的
  • 相机模型(Camera Model)

    Perspective Camera Model Perspective Camera Model 或 Pinhole Camera Model都是简单但是应用广泛的模型 xff0c 描述了将物体从3D世界坐标系转换 xff08 World
  • Solid Compression

    定义 Solid Compression是一种多文件的数据压缩方式 xff0c 其中所有未被压缩的文件是一个整体 xff0c 视为一个独立的data block 这样的文件称为solid archive 7z RAR压缩格式和tar bas