iOS开发—音视频入门学习必看
音视频学习从零到整–(2)
音视频学习从零到整–(3)
音视频学习从零到整–(4)
音视频学习从零到整–(5)
音视频学习从零到整–(6)
音视频学习从零到整–(7)
一.音频基础复习
1.1 声音的产生
相对于视频,可观察这个现象.音频在学习过程,就缺乏了想象的空间.但是如果从原理出发,就不会那么难了.
声音是什么?
声音是波,靠物体的振动产生
1.2 声波的3要素
声波的三要素,是频率,振幅,波形.频率代表音阶的高低,振幅代表响度,波形则代表音色.
- 频率越高,波长就会越短.而低频声响的波长则较长.所以这样的声音更容易绕过障碍物,能量衰减就越小.声音就会传播的越远.
- 响度,就是能量大小的反馈.用不同的力度敲打桌面,声音的大小势必发生变换.在生活中,我们用分贝描述声音的响度.
小贴士
- 分贝(decibel),是度量声音的强度单位,常用dB表示.是由美国发明家亚历山大.格雷厄姆.贝尔 名字命名的.
长期在夜晚接受50 分贝的噪音, 容易导致心血管疾病; 55 分贝, 会对儿童学习产生负面影响; 60分贝, 让人从睡梦中惊醒; 70 分贝,心肌梗死的发病率增加30%左右; 超过110 分贝, 可能导致永久性听力损伤.
- 音色,在同样的频率和响度下,不同的物体发出的声音不一样.比如钢琴和古筝声音就完全不同.波形的形状决定了声音的音色.因为不同的介质所产生的波形不同.就会产生不一样的音色.
1.3 声音传播
声音的发生,来源于振动.人类说话,从声带振动发生声音之后,经过口腔,颅腔等局部区域的反射,在经过空气传播到别人耳朵中.这是我们说话到听到的过程.
声音的传播,可以通过空气,液体,固定传播.介质不同,会影响声音的传播速度.
- 吸音棉:通过声音反射而产生的嘈杂感,吸音材料选择使用可以衰减入射音源的反射能量,从而对原有声音的保真效果.比如录音棚墙壁上就会使用吸音材质
- 隔音:主要解决声音穿透而降低主体空间的吵闹感,隔音棉材质可以衰减入射声音的透射能量.从而达到主体空间安静状态,比如KTV墙壁上就会安装隔音棉材料.
二.数字音频
2.1 模拟信号数字化过程
将模拟信号转换为数字信号的过程,分别是采样,量化和编码.
音频采样
对模型信号进行采样,采样可以理解为在时间轴上对信号进行数字化.
而,根据奈斯特定理(采样定理),按比声音最高频率高2倍以上的频率对声音进行采样.这个过程称为AD转换.
比如,前面提到高质量音频信号,其频率范围是20Hz-20KHz.所以采样频率一般是44.1KHz.这样可以保证采样声音达到20KHz也能被数字化.而且经过数字化处理后的声音,音质也不会降低.44.1KHZ,指的是1秒会采样44100次
奈斯特定理(采样定理) 资料
量化
量化,指的是在幅度轴上对信号进行数字化.简单的说,就是声音波形的数据是多少位的二进制数据,通常用bit做单位.比如16比特的二进制信号来表示声音的一个采样.它的取值范围[-32768,32767].一共有65536个值.如16bit、24bit。16bit量化级记录声音的数据是用16位的二进制数,因此,量化级也是数字声音质量的重要指标。我们形容数字声音的质量,通常就描述为24bit(量化级)、48KHz采样,比如标准CD音乐的质量就是16bit、44.1KHz采样.
既然每个量化都是一个采样,那么声音这么多采样,该如何将这些数据存储起来?
编码
什么叫编码?
按照一定格式记录采样和量化后的数据.
音频编码的格式有很多种,而通常所说的音频裸数据指的是脉冲编码调制(PCM)数据.
如果想要描述一份PCM数据,需要从如下几个方向出发:
- 量化格式(sampleFormat)
- 采样率(sampleRate)
- 声道数(channel)
举例:
以CD音质为例,量化格式为16bite,采样率为44100,声道数为2.这些信息描述CD音质.那么可以CD音质数据,比特率是多少?
44100 * 16 * 2 = 1378.125kbps
那么一分钟的,这类CD音质数据需要占用多少存储空间?
1378.125 * 60 /8/1024 = 10.09MB
如果sampleFormat更加精确或者sampleRate更加密集,那么所占的存储空间就会越大,同时能够描述的声音细节就会更加精确.
存储在这些二进制数据即可理解为将模型信号转化为数字信号.那么转为数字信号之后,就可以对这些数据进行存储\播放\复制获取其他任何操作.
推荐文集
* 抖音效果实现
* BAT—最新iOS面试题总结
* iOS面试题大全(附答案)
iOS开发—音视频入门学习必看相关推荐
- iOS开发60分钟入门学习精华
有过脚本开发经验的人(如Javascript,PHP,Shell)在刚开始学习iOS开发的时候,会觉得iOS开发的学习曲线比脚本语言要高,是的,这种感觉是对的.因为学iOS开发,不仅是学习一门新语言, ...
- python映射类型-Python 的映射数据类型有哪些?零基础小白入门学习必看
1 映射类关系 Python 的 collections.abc 模块内拥有 Mapping 和 MutableMapping 这两个抽象基类,它们为 dict 和其他类似的类型提供了接口定义. mu ...
- 安卓音视频入门难,老司机分享音视频开发学习技巧与痛点
最近在写文章的时候,发现很多读者给我私信提问,想了解安卓音视频这块, 很多同学也对音视频开发有点浓厚的兴趣,但奈何没有系统的学习知识,仅靠自己苦苦钻研确实力不从心,今天就借这个机会分享一下我学习音视频 ...
- 音视频入门之如何绘制一张图片
Android 的音视频入门学习,首先了解一下绘制图片.在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView,SurfaceView,自定义 View作绘制图片.下 ...
- 吹爆系列:教科书级别的Android音视频入门进阶学习手册,学完我成功“挤进”了抖音音视频开发岗
Android开发工作两年,真的是感觉Android应用层开发没什么前景了,于是打算在网络安全,智能硬件,音视频这几个方向发展,考虑了一段时间,最终决定选择音视频.理由就不说了,既然选择了就要好好深耕 ...
- 转:Android IOS WebRTC 音视频开发总结 (系列文章集合)
随笔分类 - webrtc Android IOS WebRTC 音视频开发总结(七八)-- 为什么WebRTC端到端监控很关键? 摘要: 本文主要介绍WebRTC端到端监控(我们翻译和整理的,译者: ...
- 堪称教科书级别的Android音视频入门进阶学习手册,开源分享
概述 随着整个互联网的崛起,数据传递的形式也在不断升级变化,总的流行趋势如下: 纯文本的短信,QQ -> 空间,微博,朋友圈的图片文字结合 -> 微信语音 -> 各大直播软件 -&g ...
- 音视频开发——音视频学习资料
目录 1.为什么要学习音视频? 2.如何学习系统性音视频? 3.音视频相关的资料 最近有朋友问想学习音视频,应该怎么学,有什么资料吗? 这个问题也困扰我很久,几年前就想开始音视频相关的学习,但是一直找 ...
- Android IOS WebRTC 音视频开发总结
Android IOS WebRTC 音视频开发总结(八十五)-- 使用WebRTC广播网络摄像头视频(下) RTC.Blacker 2016-09-13 11:18 阅读:132 评论:0 An ...
最新文章
- ​比9种SOTA GNN更强!谷歌大脑提出全新图神经网络GKATs
- C语言经典例8-输出乘法口诀表
- 浅入“Block Formatting Context”
- 荒岛余生最后一个包裹_荒岛余生——每个人都是一座“孤岛”
- 10张Gif动图让你弄懂递归等概念
- tomcat变量环境脚本setclasspath.sh分析
- 删除文件夹下所有的文件_VB删除文件和文件夹的方法
- 蒋步星:轻量级大数据计算引擎
- C#与vb6 com组件的互相调用方法
- PreferenceActivity详解
- Echarts 柱状图使用
- 基于Python+ResNet实现的不良图片识别模型
- licecap图片区域问题
- HTML内镶svg编辑器!后续改进,记录过程!
- 願いをドラッグの若返り薬)作者紫猫刘程
- 2048android源代码,VasSonic Android源码解析
- RAR Extractor - The Unarchiver Pro for mac(解压缩软件)
- css 文字颜色渐变 animation,css3文字渐变动画
- 全球与中国医疗高温灭菌设备市场深度研究分析报告
- element-ui中导航菜单默认激活子菜单的第一项
热门文章
- 光伏并网发电系统MATLAB Simulink仿真设计 该仿真包括电池,BOOST升压电路,单相全桥逆变电路
- 文献简读——大肠中胰蛋白酶降解共生菌的鉴定【Identification of trypsin-degrading commensals in the large intestine】
- 液晶如何显示变量的内容
- 83.【JQuery.Ajax】
- 数据集:Udacity Self-Driving 目标检测数据集
- c语言tft屏浮点数显示,LCD屏显示小数的程序与心得
- Android删除系统的WIFI功能
- php微信支付返回值,php微信支付全记录
- 2018拼多多校招笔试贪心编程题小熊吃糖详解
- javascript_day03------js学习第三天,关于简易计算器的加减乘除,对于年份判断和日期天数计算,以及if和switch的区分用法,最后是循环。