
1 KyonLi 2019-08-31 18:37:39 +08:00 via iPhone 一个思想实验:如果效果等同,那我 1000 倍速播放并录音,生成的文件时长缩短 1000 倍,近似认为文件大小也缩小了 1000 倍,播放时 0.001 倍速播放效果不变,那是不是就发明了 1000 倍无损压缩算法 |
2 ijixiangus 2019-08-31 18:51:16 +08:00 via iPhone 不一样吧,会丢失一半信息 |
3 netlous 2019-08-31 18:54:38 +08:00 @KyonLi 厉害了,可是我觉得你这个没什么用,我这边的算法可能更实用一些。 写一个软件,从电脑 A 上算出来文件的 MD5,然后在电脑 B 上使用同一个软件根据 MD5 还原出来原文件。众所周知,每个文件对应的 MD5 几乎为唯一,冲突率很低,所以一般情况下都能还原出来原始文件。即使遇到文件 MD5 冲突的情况,只要还原出来之后,把那些不是的文件删掉就可以了。 我觉得这个算法使用更广泛,因为 MD5 只有 16 字节,所以即使只压缩一个 16K 的文件,压缩比也达到了 1000 倍,更何况可以把几个 MD5 冲突的文件压缩成同一个 MD5,前景无可限量,老哥们一定要给我保密。 |
4 jaskle 2019-08-31 18:57:34 +08:00 via Android 看采样率了,而且录音本身与采集设备有很大关系,但有一点基本确定,声调没变 |
5 tinyproxy 2019-08-31 19:12:22 +08:00 via iPhone |
6 cjpjxjx 2019-08-31 19:20:23 +08:00 via iPhone 把一张图片缩小一半,截屏,再放大到原来的大小。。。 |
7 7654 2019-08-31 19:24:41 +08:00 声音细节全丢了 人声还可以勉强听 |
8 ziseyinzi 2019-08-31 19:31:34 +08:00 via Android 思而不学则殆。你这个问题建议学一下信息论。 |
9 delectate 2019-08-31 19:34:54 +08:00 via Android 香农的棺材板压不住了。 |
10 wnpllrzodiac 2019-08-31 19:38:38 +08:00 via Android 上采样加下采样 |
11 vazo OP 1 秒钟数一个数连续数到 60,用 2 倍速播放还是能听清 60 个数字,信息没有损失呀 @ijixiangus |
12 Zeonjl 2019-08-31 20:25:01 +08:00 via iPhone 可以的,只是你现阶段无设备能做到而已 |
15 Jimmy1573 2019-08-31 21:59:53 +08:00 via iPhone 前提假设: 1. 音频采样率足够大「数字编码」,或者实时采样「模拟」,不能漏掉细节 2. 播放器「包括扬声器」完美播放每一个波形,不管是高频还是低频「响应,或者叫灵敏度吧」 因为你加快或减速播放会导致原始音频信号在播放出来后,音频频率将增加或减倍 对于高频信号,采样率必须足够大才能捕捉到细节 所以,在前提假设成立情况下,模拟信号理论可以「无损,如磁带」,数字编码「有损」只能无限趋近 现实情况,光是一个一点的喇叭「没有完美的喇叭」,都能贵到起飞 |
17 MonoLogueChi 2019-08-31 22:51:25 +08:00 via Android 肯定会丢信息的,因为你在加速播放输出的时候就已经丢失信息了,这个是补不回来的 |
18 vazo OP @MonoLogueChi 以心电图为例,你再体会下 |
19 heloman 2019-08-31 23:22:53 +08:00 不同,采样频率一致,奈奎斯特定律决定了部分高频信息会丢失 |
20 colmk 2019-09-01 00:07:16 +08:00 via Android 失真呀 |
21 ciaoly 2019-09-01 00:12:52 +08:00 via Android 数字信号处理挂科的学渣抛个砖头:离散信号做 2t 变换时损失一半时域数据,再做 0.5t 变换也无法弥补;但是时域连续信号可以。 菜逼本人,水平仅限于此了。 |
22 cskeleton 2019-09-01 01:05:24 +08:00 @KyonLi #1 如果这个过程中,加速播放又转录不会有任何音质损失,也就是说没有信息丢失的话,而且转录也没有改变音频的编码算法,那么这个加速转录后的音频文件体积应该不变才对。 |
23 MonoLogueChi 2019-09-01 02:04:37 +08:00 via Android @vazo 你输出采样是不变的,加速一倍就会有一半的信息丢失 |
24 widewing 2019-09-01 04:10:14 +08:00 via Android lz 你是不是想说信息论里的信息和一般说的信息不是一个概念? |
25 Travers 2019-09-01 05:16:19 +08:00 这就是一个很简单的采样问题,学过数字信号处理的应该都清楚吧。建议楼主了解一下奈奎斯特采样定律。 只需要一个音频的频率,低于采样(按照你的说法也就是录音)频率的 1/2,即 Nyquist 频率,通过这个录音设备录制这个音频,就可以采集到所有信息,最后通过采样信号可以完全重建原始信号。 一段音频用 2 倍播放 -> 这个音频的频率翻倍。假设采样频率为 44.1khz,而这个音频的频率是 10kHz, 频率翻倍之后为 20kHz,依然低于 44.1 kHz /2 =22.05 kHz 的一半,那么最后通过采样信号能够完全重建原信号。即“一段音频用 2 倍播放,同时录音.那么录完音以后的音频用 0.5 倍速播放的效果和原始录音正常速度播效果等同。” 而如果原来音频频率的 2 倍大于了采样频率的一半,信号就会发生混叠失真,效果就不等同了。 只要你的播放设备足够好(能输出高频的音频),和录音设备足够好(采集频率够高),且满足奈奎斯特采样定律,就能实现楼主所说的效果。 当然 Nyquist 采样频率也不是一定的,近几年提出的压缩感知 (Compressed sensing) 算法就突破了 Nyquist 采样频率。不过这就是另外一个话题了。 |
27 amazingrise 2019-09-01 08:51:43 +08:00 via Android @vazo 字体 20 号放到 10 号再放到 20 号,和这个不是一码事。字体不是一幅位图拉来拉去。对于点阵字体而言,你可以理解为多个位图的一个集合,需要时输出不同的(预先存储的)位图。对于矢量字体而言,每个字显示在屏幕上都是渲染出来的,是根据曲线方程(大致这么理解吧),用屏幕上的像素拟合出来的图形。 |
28 zw1one 2019-09-01 09:35:08 +08:00 via Android 别看声音的时域,看频域把 |
30 vazo OP @amazingrise sorry,字体放大这个比喻确实不恰当. |
31 ThirdFlame 2019-09-01 09:53:15 +08:00 图片 缩小一半,截图。 然后再放大一倍。 图形照样能看的出来(就像楼主说的读 1-60 ),但是细节丢了啊。 |
32 vazo OP 声音是一种波,只要能把频率最高采集出来至少 2 个点就能还原,比这个频率低的更不在话下.图片和字体放大缩小和这个类比是不合适的. |
33 qiayue PRO @hugee md5 得到的结果是一般显示为 32 个字符的字符串,实际每 2 个字符是一个字节,总共 16 字节。 1 个字节 8 位,2 的 8 次方是 256,转化为 16 进制为 ff,所以 1 个字节需要 2 个字符( 0-9a-f )表示。16 个字节需要 32 个字符。 |
34 deorth 2019-09-01 12:06:19 +08:00 。写了半天发现#25 已经有了。我数字信号处理挂了三年,也知道奈奎斯特采样定理 |
36 loading 2019-09-01 12:20:49 +08:00 via Android 波形数据,按采样定律来,和信息熵不矛盾。 |
38 zhujinliang 2019-09-01 12:35:13 +08:00 via iPhone 以前的双卡座录音机会有一个倍速转录功能,播放一端倍速播放,录音的一端也以相同的速度录音,最后以小于正常播放的时间复制出一盘磁带 倍速复制出的效果和正常速度的相比能差多少,没有试过,我小时候磁带已经是很容易买到的时代了,没有复制需求,根本就没考虑过这个问题 |
39 vazo OP @zhujinliang 两盘是一样的 |
40 jinliming2 2019-09-01 12:55:51 +08:00 @vazo 如果是矢量数据,那么即便是缩小,再放大,还是能还原的。但是你提到了“录音”,这个过程就是模拟信号了。 就像一幅 1900*1100 分辨率的图片,你缩小到 19*11 分辨率展示,然后截个图,再把截图后的画面放大回 1900*1100,你想想还能得到原来一样的高清无码大图吗? |
41 jinliming2 2019-09-01 12:59:26 +08:00 或者换一个说法,将你的这个实验放大:把一段音频用 10000 倍速播放,然后录音结果再以 0.0001 倍速播放,可以还原原来的音频吗?也许能听到的只能是一个持续时间很长的哔。 |
42 vazo OP @jinliming2 你说的矢量图缩小放大和截图是两回事.即便是矢量图,你缩到 19*11 分辨率然后截个图你再放大也不能还原. |
43 vazo OP @jinliming2 #25 已经说得很清楚了. |
44 ltux 2019-09-01 14:00:41 +08:00 从楼上诸位的回复可知:比喻论证要不得。不懂细节的情况下乱比喻,往往越比喻越瞎,因为打比喻的人根本不知道自己在说啥,不知道本体和喻体能不能严格建立起一一对应关系。 |
45 colmk 2019-09-01 14:41:13 +08:00 via Android @vazo 楼主是还没懂,矢量图不会因为放大和缩小而失真 当然,对矢量图进行“截图”会让他退化为位图,失真不可避免 |
47 SystemRemainder 2019-09-01 14:50:55 +08:00 我小学那会干过类似的事。。。 电视播放节目,我用 0.5 倍速录音,录完以后再用 0.5 倍速播放,恩,还挺清楚,节目本身的各种细节也有,就是杂音比较多,失真情况在可接受范围内。。。 |
48 HappyImmortal 2019-09-01 15:11:06 +08:00 via Android 要是传播过程无能量转换,没有毛病。 就像一个水池装了的水够 10 个人喝,通过管道(口径比放水口大,比水池和水坑小)放水到一个水坑里面,那个放水口的大小控制速度,传播过程水还是那么多水(外界影响很小),但是要是那个管道有个洞,那水坑就肯定就不够 10 个人喝了。 |
49 dixeran 2019-09-01 16:47:26 +08:00 via Android 是可能的,取决于播放接受设备的指标。 合理的类比应该是,如果用 30fps 的显示屏播放视频并使用 30fps 的录像设备录像的话,不考虑其他变量,那么能完美还原。如果只有显示器是 120fps,那么录下来就会丢帧。如果只有录像设备是 120fps,那么只是静帧时间延长了,信息量并没有损失,也可以说能完美还原。 1 楼的思想实验有一个不严谨的地方在于,时长缩短 1000 倍,大小不一定就缩小 1000 倍,高速摄影机就是这么用的。 用图像缩小再放大来类比也是不严谨的。因为缩小已经经过了一次压缩算法,相当于用 120fps 的显示器播放,然后用 30fps 的摄影机录了下来。之后再放大,就是用 120fps 的摄影机再去录这个 30fps 的视频。 |
50 flynaj 肯定有损失,不过就像楼上说的一个图片缩小一半截图在放大一样,也可以看不过肯定模糊了。 |