视频通讯过程当中会涉及到大量的音视频处理技术,按照在通讯系统中所处位置的不一样,能够分为发送端和接收端的音视频处理技术。web
发送端的音视频处理技术主要包括:视频帧的变换、自适应丢帧、加强;音频采样率转换、回声消除;音视频修饰等。这些技术的目的都是为视频直播提供高质量或者定制化的信号源。网络
1、视频帧的变换工具
采集到的视频源首先须要进行裁剪,缩放,自适应丢帧,颜色空间转换等变换,这些做为视频处理的预处理,能够为后续操做带来速度和性能的提高。性能
裁剪:将帧数据裁剪或填充到4字节的整数倍,便于后续能够进行位移操做或者汇编优化;学习
缩放:如今手机或电脑的摄像头提供的输入视频分辨率在2K左右,若是不加缩放的提供给后续的图像处理和编码,对设备处理能力和网络传输带宽的要求会很高(2K视频通常须要4Mbps的带宽支持,才能保证基本的清晰度),尤为是对延迟很敏感的视频通讯应用。因此系统实现应根据设备性能和当前网络状态,对输入视频进行缩放,以此来保证通讯的低延迟和流畅。好比,咱们的AI米听会检测CPU性能,再根据目标码率,计算获得一个合适的缩放比例,对视频进行预处理。缩放通常采用汇编实现,也能够借助ffmpeg中swscale工具集。优化
2、自适应丢帧编码
这个处理技术的目的和缩放相似,也是为了更好的适应设备的处理性能和网络状态。可是视频通讯内容的不一样,应该选择不一样的处理方式。设计
好比,对于人像通讯,适合采用缩放的方式;而对于屏幕分享,适合下降帧率。若是采用相反的技术,效果会不好。这是由于人脸大部分是低频的内容,缩放不会对人的主观视频产生明显影响,而下降帧率则会产生明显的不连续性且容易被人察觉;相反,屏幕展现内容中,包含大量的高频信息(文字,图表),若是采用降采样,则会损失大量高频信息,从而使得内容难以辨认。屏幕分享时,每每是内容的静止展现,因此此时下降帧率不会明显影响观看感觉。视频
3、视频加强同步
对于摄像头质量不佳,或者低照明度的通讯环境,采集到的视频帧噪声大,质量低下,这是须要对视频内容进行加强。经常使用的技术包括图像去噪,对比度调整,曝光度调整等。图像去噪包括经典的高斯滤波,中值滤波,Non-local mean滤波等;对比度和曝光度的调整能够基于直方图来作。
4、颜色空间转换
咱们熟知的颜色空间是RGB空间,可是在视频处理和编码中每每要转换成YUV,其中Y是亮度通道,UV是两个色度通道。咱们人眼对亮度的细节比色度更加敏感,根据这个特性,咱们能够只对亮度通道进行处理以下降处理复杂度。编码时,保持色度通道不变而将色度通道降采样(好比RGB转换成YUV420,就是从一个像素3个字节变成了一个像素1.5个字节,原始数据量减小了一半),能够减少码率,同时又不会对人眼主观视频产生明显影响。
对于发送端音频处理主要包括:转换采样率,去噪和回音消除。
转换采样率:和视频缩放和降采样同样的道理,音频能够根据设备性能和带宽需求改变采样率,来更好的适应通讯环境。
去噪:若是通讯方身处嘈杂的环境,那么采集到的音频会包含大量的噪声。此时能够设计合适的滤波器对波形进行滤波操做,以保留人声,去除环境噪声。
回音消除:在双向通讯中,播放对方音频播放时,直接从麦克风又传给了对方,会带来回音。音频回音的影响很大,若是不加以抑制,严重时会有啸叫现象,产生刺耳且长时间保持的噪声。回音消除的原理简单能够描述为:B收到A的声音数据,经过喇叭进行播放,此时B须要对输入到麦克风中的声音进行处理,识别A的声音并去除。
音频处理涉及到大量信号处理的理论,好在不少开源库都提供了音频处理的功能,好比ffmpeg,speedx, webrtc等。
接收端的音视频处理技术主要是为了恢复出原始音视频信号,这里包括的技术有:视频加强,超分辨;音频去噪和混音。
视频加强:在接受端,解码获得的视频会有压缩失真,好比块效应,振铃效应等,因此也须要进行去噪等操做,提升视频质量。
视频超分辨:在发送端,会将视频缩小后进行处理和编码。那么在接收端,则须要进行放大,提升视频分辨率,提高主观感觉。
音频去噪:和视频同样,音频也会受到编码影响,因此也须要进行去噪。
混音:在多人视频中,会接受到来自多方的音频信息。此时须要对各路音频进行混音,混合成一路送进扬声器进行播放。这个过程当中,通常要先对波形数据进行同步,而后对波形进行叠加,为了防止破音出现,最后还要进行自动增益控制和防溢出操做。
近年来,随着音视频通讯技术的兴起,也出了不少新的玩法,好比视频美颜、表情迁移和变声等。
视频美颜:如今已经趋于成熟。主要功能是磨皮,柔光等,大都基于滤波进行操做,好比磨皮采用了双边滤波,能够在保持了人脸轮廓边缘的同时,将皮肤的瑕疵去除。
表情迁移:基于深度学习的特征学习技术,能够快速准确的对人脸器官进行定位,从而可以实现更复杂的修饰技术。好比找准嘴唇,眼睛,面颊以后,能够进行自动化妆;根据关键点和人脸角度,进行人脸映射,达到“换脸”的效果。
音频变声技术:一款比较经典的技术,能够经过改变声音波形的频率,振幅来改变音色,达到假装声音的目的。而如今已经发展到可让人模拟别人的声音的地步。
音视频通讯处理技术在实际的使用中,仍是要针对不一样的场景选择不一样的技术。只有这样才能达到最佳的效果。