找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 4897|回复: 2

【实验】极限压缩:用FLAC压缩7z会怎么样?

[复制链接]
发表于 2014-6-22 17:50:51 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×
我有一天试过把一首WAV格式无损歌曲压缩成FLAC,然后再把无损歌曲压缩成7z,结果发现FLAC比7z更小。这让我对FLAC有一种印象:这东西貌似能做到把“毫无规律”的数据真正做到“无损”压缩。那么事实上到底是不是这样呢?目前我还不想花时间研究libflac的源码,如果可以的话,我们拿FLAC压缩7z包能不能更好地压缩文件呢?

我准备的实验步骤是这样的:
0x1、找一些需要压缩的文件。
0x2、把这个大文件压缩成7z包,并记录文件大小。
0x3、给它套上一个WAV文件头。所需工具请到这里下载。
0x4、压缩成FLAC文件。用GoldWave或foobar2000都行,并记录文件大小。如果文件膨胀了,那说明FLAC不能把7z包压得更小。
0x5、然后再用GoldWave或foobar2000把我们得到的FLAC文件转换回WAV。
0x6、用WinHex把WAV文件的WAV文件头去掉。得到7z包。
0x7、解压7z包。如果解压失败,那说明文件的内容被损失了。

0x1、找一些需要压缩的文件。
我这边正好有一个想要压缩的文件,它是Windows XP Sp3(中文版)的ISO镜像,从msdn.itellyou.cn下载的。
[url=zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso (601.04 MB)]下载地址点此,ed2k链接。zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso[/url]


0x2、把这个大文件压缩成7z包,并记录文件大小。
我使用7z的命令行程序,得到了xpsp3.7z这个文件。压缩命令是
7z a xpsp3.7z "zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso"


0x3、给它套上一个WAV文件头。
就像下图这样。
20140622163413.png
20140622163513.png
文件没有问题,可以播放。
20140622163628.png
怎么听都像白噪音。拿GoldWave看频谱图,发现每个频段的音量都是一样的。

0x4、压缩成FLAC文件。
20140622163916.png
结果发现文件膨胀了……这证明我这个想法好像不行。
20140622164008.png

0x5、转换回WAV
看到这个波形我吃惊了。。
20140622164231.png

0x6、用WinHex把WAV文件的WAV文件头去掉。得到7z包。
20140622174254.png
我居然重新看到了“7z”这个标识!看来FLAC貌似是真的无损,不是骗人的。

0x7、解压7z包。如果解压失败,那说明文件的内容被损失了。
20140622174603.png
诶?好像哪里不对……
20140622174645.png
20140622174651.png
原来是还原的WAV少了3个字节……日
我自己又补回了这3个字节,然后就是这样的:
20140622174813.png

好像可以解压!
20140622174925.png
没错了,已经证实,FLAC确实是真正的无损……而且我可以用FLAC去压缩一些比较大的文件。至于它的体积是不是真的会减少我就不知道了。看来7z真是已经到极限了呀。
回复

使用道具 举报

KxIX 该用户已被删除
发表于 2014-6-22 17:57:57 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2014-6-22 18:27:26 | 显示全部楼层
よしの 发表于 2014-6-22 09:57
别闹 你居然想用flac去挑战7z神

7z压缩WAV也是很作死的知不知道
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-12-22 10:53 , Processed in 0.038967 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表