这是关于安卓音视频的一个系列文章,大家可以从这里随意跳跃:
0.安卓音视频整理
摘要:今天开始,我将会整理一下我在音视频开发中的一些知识积累,主要会包括 基础概念、音频模块、图像模块、音视频编解码、音视频播放器、MediaSDK的封装 这些内容。
本系列文章将会重点围绕上图的内容来扩展,主要包括Android 音频录制、视频录制、音视频编解码,播放器设计等。此篇文章介绍一些有关音视频的基本概念。
1. 音频基础概念
① 音频量化过程
模拟信号 —> 采样 —> 量化 —> 编码 —> 数字信号
音频量化过程见下图:
② 音频量化基本参数
- 采样大小:一个采样用多少bit存放 。常见的有 8bit,16bit,24bit,32位。
- 采样率:采样的频率,速率。定义为每秒从连续信号中提取并组成离散信号的采样个数。常见的有 8kHz, 16kHz, 32kHz, 44.1kHz, 48kHz,96kHz 等。
- 声道数:单声道, 双声道, 多声道。
③ 人类对声音的感知
人类的听觉范围: 20Hz —— 20 kHz
人类的发声范围: 85Hz —— 1100 Hz
④ 音频码率计算
码率为数据传输时单位时间传送的数据位数。单位 bps 即:位每秒。几乎所有的编码格式重视的都是如何用最低的码率达到最少的失真。
码率 = 采样率 x 采样大小 x 声道数 (bps)
例如: 采样率为44.KHz, 采样大小为 16bit, 双声道的PCM 编码的 WAV 文件的码率是多少?
答:它的码率为 44.1K x 16 x 2 = 1411.2 kbps
⑤ 声音三要素
- 音调: 就是音频, 男生 < 女生 < 儿童
- 音量: 振动的幅度,振幅越大,音量越大
- 音色: 与材质有很大关系, 音色本质是谐波
2.音频编码
① 有损和无损
相对自然界的信号,音频编码最多只能做到无限接近,至少目前的技术只能这样了,相对自然界的信号,任何数字音频编码方案都是有损的,因为无法完全还原。
在计算机应用中,能够达到最高保真水平的就是脉冲代码调制编码,即PCM编码,因此,PCM被约定俗成为无损编码,被广泛用于素材保存及音乐制作中,但这并不意味着PCM就能够确保信号绝对的保真。
② 数据带宽
数据带宽,它和ADSL中的带宽是一个概念。将码率除以8,就可以得到这个WAV的数据带宽.
如:采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号:
- 码率为:44.1K x 16 x 2 = 1411.2 kbps
- 数据带宽为:1411.2/8 = 176.4Kb/s
这表示存储一秒钟采样率为44.1KHz,采样大小为16bit,双声道的PCM编码的音频信号,需要176.4KB的空间,1分钟则约为10.34M。这太大了,大部分用户是不可接受的。要降低磁盘的占用,只有2种方法,降低采样指标或者编码压缩,然而,降低指标并不可取。主要还是对音频数据进行编码,以达到压缩数据量的目的。
③ 音频编码类型
根据编码方式的不同,音频编码技术分为三种:
- 波形编码:音质量高,但编码率也很高。典型的波形编码方法为PCM(Pulse Code Modulation,脉冲编码调制)被广泛运用与多媒体
- 参数编码:编码率很低,产生的合成语音的音质不高。典型的参数编码方法为LPC(Linear Predictive Coding,线性预测编码)主要运用于军事、移动通信
- 混合编码:使用参数编码技术和波形编码技术,编码率和音质介于两者之间
④ 编码格式
常见的编码格式:
PCM、WAV、MP3、OGG、AAC、M4A 等。
3.视频基本概念
① 分辨率
分辨率影响图像的大小,与图像大小成正比,分辨率越高,图像越大,分辨率越低,图像越小。常见的分辨率:
- 720p: 1280 x 720
- 1080p: 1920 x 1080
- 2K: 2560 x 1440
- 4K: 3048 x 2160
② 清晰度
- 在码率一定的情况下,分辨率与清晰度成反比关系:分辨率越高,图像越模糊,分辨率越低,图像越清晰。
- 在分辨率一定的情况下,码率与清晰度成正比关系:码率越高,图像越清晰,码率越低,图像越模糊。
③ 帧率
帧率是指每秒显示的图片数,或者指每秒能够更新图片的次数,又称FPS。
越高的帧速率可以得到更流畅逼真的画面、每秒帧数越多,所显示的动作就会越流畅。帧率也会影响体积,帧率越高,每秒显示的画面越多,体积就越大。
由于人类眼睛的特殊生理结构,如果画面帧率高于16,就会认为是连贯的,此现象称之为视觉暂留。
当帧数达到一定数值后,再增长的话,人眼能感知的流畅度的提升就比较有限了。一般来说30fps是可以接受的,将性能提升至60fps则可以明显提升交互感和逼真感,如果超过75fps一般就不容易察觉到有明显的流畅度提升了。如果帧率超过屏幕刷新率只会浪费图形处理能力,因为监视器不能以这么快的速度更新。
4.视频编码
①视频的格式
视频的格式包括两种:封装格式和编码格式
一张图片可以用很多种算法来显示在屏幕中,所以图片的编码方式就有了JPEG,BMP,PNG等。
视频是动态图像,用什么样的方式表达1s内的若干图片,这就是简单意义上的视频编码,继而就诞生了MPEG,H.264等多种编码格式。
后来有了音频,字幕,配音,就需要一个容器把他们全部放进去保存,所以就诞生了封装格式
② 封装格式
所谓封装格式,是按照一定的规则来将视频轨道、音频轨道、字幕、时间戳、编码方式等零散信息组装在一起,在播放视频文件的时候一起同步进行播放,并且提供了视频索引,可以让我们在播放视频拖动进度条时,播放器可以按照这些信息来匹配解码器,同步音视频。
视频文件的封装格式不影响视频的画质,影响视频画质的是视频的编码格式
典型的三种视频封装格式:ts,MP4和mkv
- ts适合网络流媒体播放,体积较大,一般用于电视直播或网络直播中。
- MP4一般只包括一条视频轨和一条音频轨,适合大多数设备,兼容性最好。
- mkv可以封装多个音频轨,字幕轨,合适网络传播分享。
③ 编码格式
编码格式就是指通过特定的压缩技术,将某个视频格式的文件转换成另一种视频格式文件存在的方法。
不同编码方法的区别主要是压缩算法的不同。视频编码的目的主要是压缩数据体积。
视频中常用的编码标准有H.26X系列,MPEG系列,移动端使用最多的是MP4视频文件,主要使用H.264 AVC编码格式。
④ H.264 AVC编码格式
- 低码率:和MPEG2,MPEG4等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3。H.264的最大优势是具有很高的数据压缩率,可以有效减少用户带宽的占用。
- 高质量的图像:H。264能提供连续,流畅的高质量图像。
- 容错能力强:H.264提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。
- 网络适应性强:H.264提供了网路抽象层,使得H.264的文件能容易地在不同网络上传输。