音视频开发基础知识
PS:最近的关键字「珍惜时间」。
视频编码
音频编码
多媒体播放组件
帧率
分辨率
编码格式
封装格式
码率
颜色空间
采样率
量化精度
声道
视频编码
运动静止图像专家组的 M-JPEG
M-JPEG 是一种图像压缩编码标准,是 Motion-JPEG 的简称,JPEG 标准主要是用来处理静止图像,而 M-JPEG 把运动的视频序列作为连续的静止图像来处理,这种压缩方式单独完整地压缩每一帧,在编辑过程中可随机存储每一帧,可进行精确到帧的编辑,M-JPEG 只对帧内的空间冗余进行压缩,不对帧间的时间冗余进行压缩,故压缩效率不高。
国际标准化组织(ISO)运动图像专家组的 MPEG 系列标准
MPEG 标准主要有五个:MPEG-1、MPEG-2、MPEG-4、MPEG-7 及 MPEG-21 等,MPEG 标准的视频压缩编码技术主要利用了具有运动补偿的帧间压缩编码技术以减小时间冗余度,利用 DCT 技术以减小图像的空间冗余度,利用熵编码则在信息表示方面减小了统计冗余度。这几种技术的综合运用,大大增强了压缩性能。
国际电联(ITU-T)的 H.261、H.263、H.264等
H.261:第一个实用的数字视频解码标准,采用的压缩算法是运动补偿帧间预测与分块 DCT 相结合的混合编码,其运动补偿使用用全像素精度和环路滤波,支持 CIF 和 QCIF 两种分辨率。
H.263:H.263 与 H.261 编码算法一样,但是做了一点改善,使得 H.263 标准在低码率下能够提供比 H.261 更好的图像效果,其运动补偿使用半像素精度,支持 CIF、QCIF 、SQCIF、4CIF和16CIF 五种分辨率。
H.264:H.264则是由两个组织 ISO 和 ITU-T 联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是 ITU-T 的H.264,又是 ISO/IEC 的 MPEG-4 高级视频编码(Advanced Video Coding,AVC)的第 10 部分,因此,不论是MPEG-4 AVC、MPEG-4 Part 10,还是 ISO/IEC 14496-10,都是指 H.264,H.264 是基于传统框架的混合编码系统,做了局部优化,注重编码效率和可靠性。H.264 在具有高压缩比的同时还拥有高质量流畅的图像,经过 H.264 压缩的视频数据,在网络传输过程中所需要的带宽更少,是压缩率最高的视频压缩标准。
音频编码
ITU:G.711、G.729 等
MPEG:MP3、AAC 等
3GPP:AMR、AMR-WB、AMR-WB+等
还有企业制定的标准,如 Dolby AC-3、DTS 、WMA 等
MP3(MPEG-1 audio layer 3):一种音频压缩技术,它被设计用来大幅度地降低音频数据量,利用 MPEG Audio Layer 3 的技术,将音乐以 1:10 甚至 1:12 的压缩率,压缩成容量较小的文件,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降,它是利用人耳对高频声音信号不敏感的特性,将时域波形信号转换成频域信号,并划分成多个频段,对不同的频段使用不同的压缩率,对高频加大压缩比(甚至忽略信号),对低频信号使用小压缩比,保证信号不失真,这样就相当于抛弃人耳基本听不到的高频声音,只保留能听到的低频部分,从而对音频进行一定压缩,此外 MP3 属于有损压缩的文件格式。
AAC:Advanced Audio Coding 的缩写,最初是基于 MPEG-2 的音频编码技术,MPEG-4 出现后,AAC 重新集成了其特性,且加入了SBR 技术和 PS 技术,为了区别于传统的 MPEG-2 AAC 又称为MPEG-4 AAC,AAC 是一种专为声音数据设计的文件压缩格式,相较 MP3,AAC 格式的音质更佳,文件更小,但是 AAC 是一种有损压缩格式,随着大容量设备的出现,其优势将越来越小。
WMA:Windows Media Audio 的缩写,是微软公司开发的一系列音频编解码器,也指相应的数字音频编码格式,WMA 包括四种不同的编解码器:WMA,原始的WMA编解码器,作为 MP3 和 RealAudio 编解码器的竞争者;WMA Pro,支持更多声道和更高质量的音频[;WMA Lossless,无损编解码器;WMA Voice,用于储存语音,使用的是低码率压缩。一些使用 Windows Media Audio 编码格式编码其所有内容的纯音频 ASF 文件也使用 WMA 作为扩展名,其特点是支持加密,非法拷贝到本地是无法播放的,WMA 也属于有损压缩的文件格式。
多媒体播放组件
MediaPlayer:为应用层提供的播放控制接口
MediaCodec:提供访问底层媒体编解码器的接口
OpenMAX :Open Media Acceleration,又缩写为 OMX,开放多媒体加速层,是一个多媒体应用程序标准,Android 主要的多媒体引擎StageFright 是透过 IBinder 使用 OpenMax,用于编解码处理。
StageFright:Android 2.2 开始引入用来替换预设的媒体播放引擎 OpenCORE,Stagefright 是位于 Native 层的媒体播放引擎,内置了基于软件的编解码器,且适用于热门媒体格式,其编解码功能是利用OpenMAX 框架,引入的是 OpenCORE 的 omx-component 部分,在 Android 中是以共享库的形式存在,对应 libstagefright.so。
AudioTrack:管理和播放单个音频资源,仅支持 PCM 流,如大多数的 WAV 格式的音频文件就是就是 PCM 流,这类音频文件支持 AudioTrack 直接进行播放。
常见的多媒体框架及解决方案
VLC :即 Video LAN Client,是一款自由、开源的跨平台多媒体播放器及框架 。
FFmpeg:多媒体解决方案,不是多媒体框架,广泛用于音视频开发中。
GStreamer :一套构建流媒体应用的开源多媒体框架 。
帧率
分辨率
刷新率
编码格式
封装格式
码率
固定码率会保证码流的码率恒定,但是会牺牲视频质量,比如为了保证码率恒定,某些图像丰富的内容就是失去某些图像细节而变得模糊。
可变码率指的是输出码流的码率是可变的,因为视频信源本身的高峰信息量是变化的,从确保视频传输质量和充分利用信息的角度来说,可变码率视频编码才是最合理的。
颜色空间
YUV:一种颜色编码方法,一般使用在在影像处理组件中,YUV 在对照片或视频编码时,考虑到人类的感知能力,允许降低色度的带宽,其中 Y 表示明亮度、U 表示色度、V 表示浓度,Y′UV、YUV、YCbCr、YPbPr 所指涉的范围,常有混淆或重叠的情况。从历史的演变来说,其中 YUV 和 Y'UV 通常用来编码电视的模拟信号,而 YCbCr 则是用来描述数字的影像信号,适合视频与图片压缩以及传输,例如 MPEG、JPEG,现在 YUV 通常已经在电脑系统上广泛使用。
RGB:原色光模式,又称 RGB 颜色模型或红绿蓝颜色模型,是一种加色模型,将红(Red)、绿(Green)、[蓝(Blue)三原色的色光以不同的比例相加,以合成产生各种色彩光,目前的大多数显示器都采用 RGB 这种颜色标准。
采样率
8000 Hz:电话所用采样率, 对于人的说话已经足够
11025 Hz:AM调幅广播所用采样率
22050 Hz 和 24,000 Hz:FM调频广播所用采样率
44100Hz:音频CD,常用于 MPEG-1 音频(VCD,SVCD,MP3)所用采样率
47,250 Hz:商用 PCM 录音机所用采样率
48,000 Hz:miniDV、数字电视、DVD、DAT、电影和专业音频所用的数字声音所用采样率
量化精度
声道
单声道:设置一个扬声器。
立体声道:把单声道一个扬声器扩展为左右对称的两个扬声器,声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果,这种技术在音乐欣赏中显得尤为有用,听众可以清晰地分辨出各种乐器来自何方,从而使音乐更富想象力,更加接近临场感受。立体声技术广泛应用于自 Sound Blaster Pro 以后的大量声卡,成为了
影响深远的音频标准。4 声道:4 声道环绕规定了 4 个发音点,分别是前左、前右、后左、后右,听众则被包围在中间,同时还建议增加一个低音音箱,以加强对低频信号的回放处理,这也就是如今 4.1 声道音箱系统广泛流行的原因,就整体效果而言,4 声道系统可以为听众带来来自多个不 同方向的声音环绕,可以获得身 临各种不同环境的昕觉感受,给用户以全新的体验。
5.1 声道:其实 5.1 声道系统来源于 4.1 声道系统,将环绕声道一分为二,分为左环绕和右环绕,中央位置增加重低音效果。
7.1 声道:7.1 声道系统在 5.1 声道系统的基础上又增加了中左和中右两个发音点,简单来说就是在听者的周围建立起一套前后相对平衡的声场,增加了 后中声场声道。