关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿
太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)
本文遵循“署名-非商业用途-保持一致”创作公用协议
先来说个例子,来引用题中的问题,后面会尽可能列出大把的实际存在的关于这俩家伙的事儿,以供参考。
当我们录了一段语音并存成 .wav 文件后,就可以用播放器打开播放出所录到的声音了。
这里抛开细节,我们看与生活贴近的部分:
你说话的声音 ---> 传到我耳杂里:这表明,我听到你说的话了;
你说话的声音 ---> 电话话筒接收到了 ---> 通过电话系统传输到 ---> 另一端的听筒把你的声音播放出来了 ---> 我听到你说的话了;
你说话的声音 ---> 录音机麦克接收到 ---> 存储到磁带上(磁带还有人知道是啥不?!)--->磁带拿给我用录音机播放 ---> 我听到你说的话了;
。。。
还有很多种方式,我能听到你说话的声音,仅以上面三个为例,其中涉及到一个主体和两个载体:
主体:
声音,包括你说话发出的声音,也即空气振动;还有我听到的声音,也是空气振动;
第一载体:
你说出来的把空气振动起来,我听到是,振动的空气传入我的耳杂,起始两处无可厚非,差别在于,如何延伸这个空气的振动,或者说能让这个振动被记录下来,在需要的时侯,再原样振起来。
第二截体:
完全针对空气振动的一种记录承载。
回归正题,空气振动产生声波,声波通过定时采样声振强度值这个模拟量,再用数值来表示,就是这一时刻的声音;当连续的采样按采样频率原样再展现出来,也即挠动空气也达到同样的指标,人们的耳杂就能从这些间断的声振中恢复出内容来,越密,越和原声音相仿。
这些间断的数值存储到一个文件中,以便能长期存储,并且文件头描述着这些声音采样的一些信息。
这段中涉及到两个内容:声音是如何采样并量化的,这是一个原始的数据,而另一个是这些数据存储到磁盘文件,所带的文件头描述信息。
原始的声音数据这样存在文件中会很大,所以出现了很多对声音进行编码的算法,按这样的算法对声音处理之后,声音所占空间很小了,按同一算法的逆运算恢复出来的原始声音数据同样能听出原声音的内容,只不过这个过程,会有声音细节的损失。
而同样的声音数据,无论是原始的,还是经过一定算法处理后的声音数据,可以按特定的文件存储格式要求写到文件中。
实在写不下去啦,墨迹了半天,就那点儿事儿,可是还是感觉细节描述不出来。。。
那么再看看文本中存储的内容,也包括两方面:一是文本的编码,如果就一种的话,就不会出现打开文件有乱码的情况了;二是文本的存储格式,是txt还是word,又或者 pdf,就那几个字,存成的文件类型确可以不一样,而文字编码也可以不一样。
再有视频、图片等等,这些都和人的感观相联系着,或者未来还会出现振动或触觉的采样与存储,或者嗅觉?!。。。
用个生动的生活例子再比较一下:
买了一块水豆腐,放在一个磁盘儿里,放到一个碗里,或者直接放锅里?!。。。都行
而这块豆腐,是整块放,还是切四掰儿再放,又或者冻完再化了放,化了切成小块儿再放?!。。。都行
豆腐是文本、语音、图片、视频;容器就是存储格式。
好了,再掰下去,我自已可能就该不明白了,毕竟,我们接触这些事物是从感性到理论,而不是像我们从初中开始学英语,到大学毕业,一直都是先理性后感性,又或者到头来一直没感性起来,见外国人,不知说啥,可是考试打个百八十分都很轻松。
以上闲来扯淡,下面有空儿再补一补各种文字、音频、图像、视频。。。所常用的格式及对应的识别。
这些是从 speex 和 ogg 联想到的,希望有人会知道这两个东西是什么,期待着视频领域的 speex 和 ogg !@