音视频技术涉及面积还是很广的,之前那篇文章介绍的还是比较片面,接下来,我会一个方面一个方面的再跟大家讲一下我学习到的内容。
前言
学习音视频技术虽然不一定可以成为一个音视频开发技术员,但是可以帮助我们在音视频领域打开一扇门,在我们接触音视频领域的技术时,如果遇到问题,我们也可以很快的定位问题。就好比我们在项目中使用了TRTC实时音视频技术,视频突然不能播放了,如果我们接触过这些技术概念,我们也可以很快的明白其中出现问题的可能性,尽快的找出解决方案。
好了,废话不多说,正文开始了。
HAL与设备
HAL
首先我们先来熟悉一个新东西HAL,HAL全称叫Hardware Abstraction Layer,中文名叫硬件抽象层,
概念
位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。
从概念中我们就可以明白,HAL其实就是存在于硬件层和内核之间的一个虚拟层,他通过隐藏一些硬件接口的细节,向操作系统提供虚拟的硬件平台,操作系统在操作硬件时,系统不需要去分别底层硬件具体是什么,直接调用HAL暴露给操作系统的接口即可,其实就是可以理解成系统与硬件之间的sdk。
HAL与设备概要
介绍完了HAL的概念,接下来我们就看看设备与HAL之间的联系:
- 硬件设备在操作系统中会抽象出HAL,用户态的程序调用硬件是通过调用系统调用接口使用HAL;
- 驱动是用来定义硬件设备输入输出的数据结构;
- 向HAL添加设备叫挂载,向HAL移除设备叫卸载;
- 硬件的数据读写操作,在操作系统中又叫I/O操做。
视频相关概念
视频设备
视频设备也就是采集画面的设备(相机、摄像头等),画面的数据格式常见的有BGRA32、YCbCr420(NV12/NV21)、H.264、MJPEG等,其中直出H.264或MJPEG的相机在IoT设备中常见。数据格式会影响编解码过程,如果格式不对,编解码失败,会导致视频不可看。
图像相关概念
众所周知,视频是由若干图像组成,所以图像的概念适用于视频,接下来我们就看看有哪些图像的概念:
色彩三属性:
- 亮度:光线的明暗程度,亮度越大,越耀眼,亮度越小,越灰暗;
- 色度:也叫饱和度,指颜色的纯度;
- 色相:不同光线给人产生的颜色意识就是色相,比如红橙黄绿青蓝紫,就是说的色相。
对比度:图像中黑与白的对比值,对比度越大,颜色越丰富;
锐化度:图像边缘的对比度,也叫锐度,清晰度。锐度越高,画面越清晰,雕刻感越强。锐度越低,画面越柔和,雕刻感越低。
色彩空间
人眼可以看见的光频是有限的,所以能够看到的颜色范围也是有限的。人眼能够看到的颜色范围就是色彩空间。
色彩空间有很多种表达方式,常见的是RGB空间下的CIE1931。
硬件设备能处理和展示的色彩范围小于人眼所见范围,称为色域,常见的有sRGB、aRGB、CMYK、DCI-P3等。
流媒体传输一般使用的是YUV色域,其中Y表示亮度,U、V表示色度,实际使用的是YCbCr,Cr表示红色信号与亮度的差值,Cb表示蓝色信号与亮度的差值。那么媒流体为什么选用YUV色域来进行传输呢?其实主要原因还是因为YUV占用的宽带极少。
音频相关概念
音频设备
麦克风是拾音设备,原理是通过振膜或压电传感器,将声波的振动转换为电信号,再进行处理。
从麦克风拿到的数据通常是PCM16,采样率常见的是16kHz、32kHz、44.1kHz、48kHz,手机等设备上mic一般只提供单声道。
音频相关概念
频谱:声音是时间上的振动波形(时域),可以通过傅里叶变换转成各频率下的谱线分布(频域),也就是频谱图。频谱图可以帮助分析声音在各频率下的情况,进而帮助判断音频质量。人耳对于不同频段的敏感度不同,最敏感的1000Hz附近能分辨出4Hz的频率变化。
频响曲线:频率-响应曲线是设备对于各频段的信号响应,也就是设备能够还原出原始信号的能力。理想情况下,频率响应曲线是一条直线,设备在不同频段的响应能力不同,比如同一个音源,耳机与音箱的播放效果不同,不同的音箱播放效果也不同。频响曲线对应的一个值叫保真值,俗称Hi-Fi。
空间感:对于多声道音频,不同位置的声音能让人产生临场空间感。空间感的来源是左右耳声音接收存在的时间差以及强度差,通过软件对音频信息进行处理,可以模拟产生环绕声和立体声。
波束成形:空间中的波是全向扩散的,波束成形可以实现定向的波形传输。常见的应用场景是麦克风拾音,不同空间位置的声音被采集到的响应信号不同,通过控制多个麦克风的响应信号,可以实现特定方向上的声音采集,即定向麦。
外设接入传输
当设备以外设方式接入时,需要考虑传输速率的影响。
例如通过USB接入的外设太多支持USB2.0标准,因此在高采视频传输前,需要先进行压缩,传输到主板后再解压缩,会引入更多的性能消耗,以及视频处理延时。
再比如蓝牙连接模式SCO与A2DP存在的区别,A2DP是单向传输链路,通常用于播放立体声音乐,SCO则是双向的传输链路,只支持8kHz及16kHz单声道的音频数据,适合语音通话。
结束语
以上是我整理出来的部分音视频硬件与采集的资料,总的来说,其实音视频技术主要是涉及内容太多,要学好这个技术,需要扩展很多知识面才行,我也是刚入坑的,我们一起加油吧。