如今我们所处的时代,是移动互联网时代,也可以说是视频时代。从网络小视频,到网红直播带货,再到随处可见的视频监控,我们的生活被越来越多的视频元素所影响。然而,图像信息经采集后生成的原始视频数据,数据量非常庞大,给视频传输和后端存储带来了巨大的压力。视频编解码技术的发展,可以有效地解决视频传输慢、存储难的问题。
以摄像机为例,拍摄1分钟的4K (分辨率3840*2160) 视频,未经压缩的数据量约为17.38GB。 ● 以100M带宽计算,全速传输1分钟视频约需24分钟。 ● 1个10TB的硬盘,只能存储不到9小时的视频。 每幅完整图像称为一帧,视频是由不同的帧画面连续播放形成的。这些帧主要分为三类,分别是I帧、P帧和B帧。 ● I帧(I frame):关键帧,自带全部信息的独立帧(占用空间最大),经过适度的帧内压缩,解码时只需要本帧数据即可完成,可做为后续帧的参考帧,也可以当成图像。 ● P帧(P frame):帧间预测编码帧,表示这一帧跟之前的一个关键帧或P帧的差别。解码时需要用之前缓存的画面叠加本帧定义的差别,生成最终画面。 ● B帧(B frame):双向预测编码帧,记录本帧与前后帧的差别。解码时需要通过前后画面与本帧数据的叠加,生成最终画面。因为依赖后面的帧,所以不适合实时传输,例如视频会议。 视频编解码技术的本质是对视频进行压缩,但压缩是分步骤的。目前视频编解码主要采用混合编码(即预测编码+变换编码)框架,主要包括预测、变换、量化、熵编码几个流程。 ● 预测:通过帧内预测、帧间预测技术,去除视频中存在的空间冗余和时间冗余,达到压缩的目的。 ● 变换:通过从时域到频域的变换,去除相邻数据之间的相关性,即去除空间冗余。 ● 量化:通过去除人眼不敏感的信息来降低编码数据量,提高压缩比,即去除视觉冗余。 ● 熵编码:根据待编码数据的概率特性减少数据冗余。 视频编解码的预测、变换、量化、熵编码流程中,有多种方法可以实现压缩编码,如:DCT变换算法、小波变换都可以实现变换编码。 为了实现多厂商多产品间的互联互通,早在1993年,ITU-T制定了第一个视频编解码标准H.261。随着视频产业的飞速发展需求,视频编解码标准也在不断演进。 根据网上公开可获得数据,对当前常见的三种视频编码标准做一个简要对比,如下表所示。 在安防领域,目前主要采用的编解码标准为H.264技术,当然,随着H.265芯片技术的不断成熟,凭借其更强的优越性能,将会逐步取代H.264并成为行业的主流应用技术。 安防场景下,有些监控区域是无关紧要的,例如天空、草地等,如果对整个监控区域进行视频编码并传输,会给网络带宽和视频存储带来压力。 ROI技术,在H.264/H.265标准的基础上,针对安防场景进行了编码优化。通过ROI提取算法提取出感兴趣区域,然后在编码量化过程中,对图像感兴趣区域正常编码,而对不感兴趣区域压缩处理,在不损失图像整体质量的前提下,实现降低网络带宽占用率和减少存储空间的目的。 感兴趣区域的提取是ROI编码技术的基础,直接影响视频编码的最终效果。ROI提取算法主要可以分为两类:背景建模算法和深度学习目标检测算法。 现阶段比较流行的背景建模算法主要有GMM和ViBe。背景建模算法主要包含3个过程: 1.背景模型:通过提取视频序列中的背景特征,从而建立一个数学模型。 2.前景检测:将检测图像和背景模型进行相减运算,可以对运动目标进行判别及定位。 3.更新模型:对背景模型进行一定速率的更新,以适应背景物体的变化,如光照、雨雾等。 深度学习目标检测方法是将视频图像传递到深度神经网络模型中,如卷积神经网络,利用深度神经网络模型学习大量样本数据内在规律而获得的分析能力,对图像中的所有目标进行分类,并预测出目标的具体位置。常见的算法有R-CNN、YOLO、SSD等。 传统的背景建模算法和深度学习目标检测算法的优缺点: 安防业界已经有厂商针对上述ROI提取算法的缺点做了相关的改进实践,改进后的ROI提取算法兼顾人体主观感兴趣的运动目标和安防业务的特定感兴趣目标,将动物、抖动的树叶等干扰因素深度过滤,并从矩形抠图精细到轮廓级分割,可以在有限数量的字节数内保护ROI区域,同时达到三重目的: ● 节省存储空间/传输带宽; ● 保证图像质量(PSNR); ● 保护安防业务的精度。