关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿

2024-01-08 20:48

本文主要是介绍关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿

太阳火神的美丽人生 (http://blog.csdn.net/opengl_es)

本文遵循“署名-非商业用途-保持一致”创作公用协议

转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS、Android、Html5、Arduino、pcDuino否则,出自本博客的文章拒绝转载或再转载,谢谢合作。


先来说个例子,来引用题中的问题,后面会尽可能列出大把的实际存在的关于这俩家伙的事儿,以供参考。

当我们录了一段语音并存成 .wav 文件后,就可以用播放器打开播放出所录到的声音了。

这里抛开细节,我们看与生活贴近的部分:

你说话的声音 ---> 传到我耳杂里:这表明,我听到你说的话了;

你说话的声音 ---> 电话话筒接收到了 ---> 通过电话系统传输到 ---> 另一端的听筒把你的声音播放出来了 ---> 我听到你说的话了;

你说话的声音 ---> 录音机麦克接收到 ---> 存储到磁带上(磁带还有人知道是啥不?!)--->磁带拿给我用录音机播放 ---> 我听到你说的话了;

。。。

还有很多种方式,我能听到你说话的声音,仅以上面三个为例,其中涉及到一个主体和两个载体:

主体:

声音,包括你说话发出的声音,也即空气振动;还有我听到的声音,也是空气振动;

第一载体:

你说出来的把空气振动起来,我听到是,振动的空气传入我的耳杂,起始两处无可厚非,差别在于,如何延伸这个空气的振动,或者说能让这个振动被记录下来,在需要的时侯,再原样振起来。

第二截体:

完全针对空气振动的一种记录承载。


回归正题,空气振动产生声波,声波通过定时采样声振强度值这个模拟量,再用数值来表示,就是这一时刻的声音;当连续的采样按采样频率原样再展现出来,也即挠动空气也达到同样的指标,人们的耳杂就能从这些间断的声振中恢复出内容来,越密,越和原声音相仿。

这些间断的数值存储到一个文件中,以便能长期存储,并且文件头描述着这些声音采样的一些信息。


这段中涉及到两个内容:声音是如何采样并量化的,这是一个原始的数据,而另一个是这些数据存储到磁盘文件,所带的文件头描述信息。

原始的声音数据这样存在文件中会很大,所以出现了很多对声音进行编码的算法,按这样的算法对声音处理之后,声音所占空间很小了,按同一算法的逆运算恢复出来的原始声音数据同样能听出原声音的内容,只不过这个过程,会有声音细节的损失。

而同样的声音数据,无论是原始的,还是经过一定算法处理后的声音数据,可以按特定的文件存储格式要求写到文件中。


实在写不下去啦,墨迹了半天,就那点儿事儿,可是还是感觉细节描述不出来。。。


那么再看看文本中存储的内容,也包括两方面:一是文本的编码,如果就一种的话,就不会出现打开文件有乱码的情况了;二是文本的存储格式,是txt还是word,又或者 pdf,就那几个字,存成的文件类型确可以不一样,而文字编码也可以不一样。


再有视频、图片等等,这些都和人的感观相联系着,或者未来还会出现振动或触觉的采样与存储,或者嗅觉?!。。。


用个生动的生活例子再比较一下:

买了一块水豆腐,放在一个磁盘儿里,放到一个碗里,或者直接放锅里?!。。。都行

而这块豆腐,是整块放,还是切四掰儿再放,又或者冻完再化了放,化了切成小块儿再放?!。。。都行


豆腐是文本、语音、图片、视频;容器就是存储格式。


好了,再掰下去,我自已可能就该不明白了,毕竟,我们接触这些事物是从感性到理论,而不是像我们从初中开始学英语,到大学毕业,一直都是先理性后感性,又或者到头来一直没感性起来,见外国人,不知说啥,可是考试打个百八十分都很轻松。


以上闲来扯淡,下面有空儿再补一补各种文字、音频、图像、视频。。。所常用的格式及对应的识别。


这些是从 speex 和 ogg 联想到的,希望有人会知道这两个东西是什么,期待着视频领域的 speex 和 ogg  !@



这篇关于关于‘文件存储格式’和‘文件内容格式’需要掰一掰的那点儿事儿的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/584778

相关文章

使用JavaScript操作本地存储

《使用JavaScript操作本地存储》这篇文章主要为大家详细介绍了JavaScript中操作本地存储的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录本地存储:localStorage 和 sessionStorage基本使用方法1. localStorage

关于数据埋点,你需要了解这些基本知识

产品汪每天都在和数据打交道,你知道数据来自哪里吗? 移动app端内的用户行为数据大多来自埋点,了解一些埋点知识,能和数据分析师、技术侃大山,参与到前期的数据采集,更重要是让最终的埋点数据能为我所用,否则可怜巴巴等上几个月是常有的事。   埋点类型 根据埋点方式,可以区分为: 手动埋点半自动埋点全自动埋点 秉承“任何事物都有两面性”的道理:自动程度高的,能解决通用统计,便于统一化管理,但个性化定

异构存储(冷热数据分离)

异构存储主要解决不同的数据,存储在不同类型的硬盘中,达到最佳性能的问题。 异构存储Shell操作 (1)查看当前有哪些存储策略可以用 [lytfly@hadoop102 hadoop-3.1.4]$ hdfs storagepolicies -listPolicies (2)为指定路径(数据存储目录)设置指定的存储策略 hdfs storagepolicies -setStoragePo

HDFS—存储优化(纠删码)

纠删码原理 HDFS 默认情况下,一个文件有3个副本,这样提高了数据的可靠性,但也带来了2倍的冗余开销。 Hadoop3.x 引入了纠删码,采用计算的方式,可以节省约50%左右的存储空间。 此种方式节约了空间,但是会增加 cpu 的计算。 纠删码策略是给具体一个路径设置。所有往此路径下存储的文件,都会执行此策略。 默认只开启对 RS-6-3-1024k

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

[数据集][目标检测]血细胞检测数据集VOC+YOLO格式2757张4类别

数据集格式:Pascal VOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2757 标注数量(xml文件个数):2757 标注数量(txt文件个数):2757 标注类别数:4 标注类别名称:["Platelets","RBC","WBC","sickle cell"] 每个类别标注的框数: