视频编码的必要性及技术难点

随着信息化时代的发展,原始视频数据量非常巨大,远远超出目前网络传输带宽能承受的范围;同时可能消耗较大的存储空间,不利于面向存储的多媒体应用。特别在高清、超高清、多视等数字视频应用,巨大的数据量对实时数字视频通信及存储来说都是无法承受的。因此,为了保证在现有带宽和存储条件下完成高清晰度、大数据量视频的存储与传输,需要对视频信号进行较大的压缩。

如何压缩视频,现如今很多专家学者以及组织提出了很多视频编码方法与标准。其中有性能较高的算法,也有性能一般的算法。但是在相同处理能力下,压缩算法越高级,延时就越长。而监控系统的视频对时延要求十分高。因此,如何在对时间要求十分苛刻的情况下保证视频的压缩算法性能,是一个值得深入探索的部分。

监控视频的特点

对于监控系统视频,由于其用途的特殊性,监控系统视频拥有其自身的特点:

1.    视频背景稳定。一般情况下,监控摄像头都安装在固定位置,以便实现对关键位置的固定监控。

2.    图像纹理复杂。摄像头一般都架设在高处,具有广视角,图像中包含内容丰富。

3.    如果监控地点在室外,监控视频收外部环境影响大。因为室外光照变化,风、雨、雪天气变化会影响视频清晰度,也会使图像前、背景发生显著变化。

视频压缩的原理及介绍

摄像头采集的信号为模拟信号,而数据传输和存储使用的都为数字信号。把模拟信号转换为数字信号时的取样过程大多要遵循采样定理,即当采样频率要大于信号中最高频率的2倍,使数字信号完整地保留了原始信号中的信息。

但由于实际情况下可能有数据无法满足采样定理的要求,所以E. J. Candes、J. Romberg、T. Tao 和D. L. Donoho 等科学家于2004 年提出了压缩感知的概念,即在进行模拟/数字信号的转换过程中,在远小于Nyquist 采样率的条件下,用随机采样获取信号的离散样本,然后通过非线性重建算法完美的重建信号。这个理论在采样过程中对数据进行了压缩,并且对稀疏信号提供重建的可能性。

一段经过摄像头采集的视频是经过时间和空间采集而形成的。每个视频由一系列的帧组成,这样帧与帧之间就存在了一定的联系。运用这些联系,可以实现对视频的压缩。视频图像压缩编码通常基于两个个基本原理:

1.    利用视频信号的统计性质,即视频信号在相邻像素间、相邻行间及相邻帧间均存在较强的相关性,视频信号中存在大量冗余可供压缩,并且这种冗余度在解码后还可无失真的恢复,称为无损压缩。

2.    利用人眼的视觉感知特性,在不被主管视觉察觉的容限内,通过减少表示信号的精度,以一定的客观湿疹换取数据压缩,称为有损压缩。

视频图像信号的冗余

根据视频数据压缩的原理可知,视频数据中存在大量的冗余,主要为以下几种:

1.    空间冗余:在一帧图像中,如果图像比较规则,那么这帧图像就内部的图像信息就存在信息的相关性,表现为数据的冗余。

2.    时间冗余:在电视,动画图像中,在相邻帧之间往往包含了相同的背景,只不过运动物体的位置有点变换,因此对于序列图像中的相邻两帧仅记录他们之间的差异,去掉其中重复的,称为时间冗余的那部分信息。

3.    结构冗余:有些图像从大体上看存在着非常强的纹理结构,我们称之为他在结构上存在冗余。

4.    统计冗余:在视频数据中不同数值出现概率各不相同,而在数值上的表现统计不平均的冗余。如果使根据这种统计信息,使用相对较少的数据表示全部的视频信息,就是达到压缩的目的。

5.    知识冗余:有许多图像的理解与某些基础知识有相当大的相关性,例如:人脸的图像有固定的结构。比如说嘴的上方有鼻子,鼻子的上方有眼睛,鼻子位于脸的中线上等,这类规律性的结构可由先验知识和背景知识得到,称之为知识冗余。

6.    视觉冗余:由于人眼对图像中的高频细节信息,色度信息比较不敏感而产生的信息冗余。利用人眼这种特性,对高频和色度信息适当丢弃,而尽可能保留低频亮度信息,可以进一步地压缩数据。

7.    信息熵冗余:也称编码冗余,如果图像中平均每个像素使用的比特数大于该图像的信息熵,则图像中存在冗余,这种冗余称为信息熵冗余。

视频压缩的简化框架

1.    映射(mapping):对表示信号的形式进行某种变换,即变换信号的描述方式。

2.    量化(quantization):在满足一定图像质量的前提下,通过符合人眼主观视觉特性的量化,减少表示信号的精度,达到数据压缩的目的。

3.    利用统计编码或熵编码消除统计冗余度。

在以上三个步骤中,只有量化不可逆。当加入不可逆的量化时,通过解码端的反映射和统计编码可以无失真的恢复原始信号;加入量化后,整个编解码过程造成的失真完全由量化引起。

主要压缩编码方法介绍

预测编码

预测编码主要减少数据在时域和空域上的相关性,去除空域冗余(空域冗余反映了一帧图像内相邻像素之间的相关性,可采用帧内预测编码)和时域冗余(时域冗余反映了图像帧与帧之间的相关性,可采用帧间预测编码)。

在预测编码时,不直接传送图像样值本身,而是对实际样值与它的预测值之间的差值进行编码、传送。目前主流的视频编码技术中同时采用帧内预测和帧间预测,不同编码标准支持的预测技术细节不同。帧内预测主要利用像素点空时域相关性,支持众多预测模式,具体帧内预测模式需要根据图像特性进行自适应选择。帧间预测常采用基于块运动估计、运动补偿的预测技术。

运动估计与运动补偿

运动估计技术一般将当前的输入图像分割成若干彼此不相重叠的小图像子块,例如一帧图像的大小为1280*720,首先将其以网格状的形式分成40*45个尺寸为16*16的彼此没有重叠的图像块,然后在前一图像或者后一个图像某个搜索窗口的范围内为每一个图像块寻找一个与之最为相似的图像块。这个搜寻的过程叫做运动估计。通过计算最相似的图像块与该图像块之间的位置信息,可以得到一个运动矢量。这样在编码过程中就可以将当前图像中的块与参考图像运动矢量所指向的最相似的图像块相减,得到一个残差图像块,由于残差图像块中的每个像素值很小,所以在压缩编码中可以获得更高的压缩比。这个相减过程叫运动补偿。

由于编码过程中需要使用参考图像来进行运动估计和运动补偿,因此参考图像的选择显得很重要。一般情况下编码器的将输入的每一帧图像根据其参考图像的不同分成3种不同的类型:I(Intra)帧、B(Bidirection prediction)帧、P(Prediction)帧。如图1所示。

图1  I,B,P 帧的预测关系

如图所示,I帧只使用本帧内的数据进行编码,在编码过程中它不需要进行运动估计和运动补偿。显然,由于I帧没有消除时间方向的相关性,所以压缩比相对不高。P帧在编码过程中使用一个前面的I帧或P帧作为参考图像进行运动补偿,实际上是对当前图像与参考图像的差值进行编码。B帧的编码方式与P帧相似,惟一不同的地方是在编码过程中它要使用一个前面的I帧或P帧和一个后面的I帧或P帧进行预测。由此可见,每一个P帧的编码需要利用一帧图像作为参考图像,而B帧则需要两帧图像作为参考。相比之下,B帧比P帧拥有更高的压缩比。

变换编码

变换编码的作用是将空间域描述的图像信号变换到频率域,然后对变换后的系数进行编码处理。一般来说,图像在空间上具有较强的相关性,变换到频率域可以实现去相关和能量集中。常用的正交变换有离散傅里叶变换,离散余弦变换等等。数字视频压缩过程中应用广泛的是离散余弦变换。

离散余弦变换

离散余弦变换(discretecosine transform)简称为DCT变换。它可以将L*L的图像块从空间域变换为频率域。所以,在基于DCT的图像压缩编码过程中,首先需要将图像分成互不重叠的图像块。假设一帧图像的大小为1280*720,首先将其以网格状的形式分成160*90个尺寸为8*8的彼此没有重叠的图像块,接下来才能对每个图像块进行DCT变换。

经过分块以后,每个8*8点的图像块被送入DCT编码器,将8*8的图像块从空间域变换为频率域。下图2给出一个实际8*8的图像块例子,图2中的数字代表了每个像素的亮度值。从图上可以看出,在这个图像块中各个像素亮度值比较均匀,特别是相邻像素亮度值变化不是很大,说明图像信号具有很强的相关性。

图2 一个实际8*8图像块

下图3是上图2中图像块经过DCT变换后的结果。从图3中可以看出经过DCT变换后,左上角的低频系数集中了大量能量,而右下角的高频系数上的能量很小。

图3 图像块经过DCT变换后的系数

量化

变换编码通常和量化编码技术相结合。由于人的眼睛对图像的低频特性比如物体的总体亮度之类的信息很敏感,而对图像中的高频细节信息不敏感,因此在传送过程中可以少传或不传送高频信息,只传送低频部分。量化过程通过对低频区的系数进行细量化,高频区的系数进行粗量化,去除了人眼不敏感的高频信息,从而降低信息传送量。因此,量化是一个有损压缩的过程,而且是视频压缩编码中质量损伤的主要原因。

量化通过给变换系数块一个量化步长,所有变换系数除以量化步长,并进行量化取整。量化的过程可以用下面的公式表示:

其中FQ(u,v)表示经过量化后的DCT系数;F(u,v)表示量化前的DCT系数;Q(u,v)表示量化加权矩阵;q表示量化步长;round表示归整,即将输出的值取为与之最接近的整数值。

继续上文采用的例子,信号经过DCT变换后需要进行量化。合理选择量化系数后,对上文变换后的图像块进行量化后的结果如图4所示。

图4  量化后的DCT系数

DCT系数经过量化之后大部分经变为0,而只有很少一部分系数为非零值,存在很强的符号统计冗余,这种冗余为高效统计编码(熵编码)提供了可能。

熵编码

熵编码是因编码后的平均码长接近信源熵值而得名。熵编码多用可变字长编码(VLC,Variable Length Coding)实现。其基本原理是对信源中出现概率大的符号赋予短码,对于出现概率小的符号赋予长码,从而在统计上获得较短的平均码长。可变字长编码通常有霍夫曼编码、算术编码、游程编码等。其中游程编码是一种十分简单的压缩方法,它的压缩效率不高,但编码、解码速度快,仍被得到广泛的应用,特别在变换编码之后使用游程编码,有很好的效果。

游程编码

首先要在量化器输出直流系数后对紧跟其后的交流系数进行Z型扫描(如图4 箭头线所示)。Z型扫描将二维的量化系数转换为一维的序列,并在此基础上进行游程编码。最后再对游程编码后的数据进行另一种变长编码,例如霍夫曼编码。通过这种变长编码,进一步提高编码的效率。

混合编码

上面介绍了视频压缩编码过程中的几个重要的方法。在实际应用中这几个方法不是分离的,通常将它们结合起来使用以达到最好的压缩效果。下图给出了混合编码(即变换编码+ 运动估计和运动补偿+ 熵编码)的模型。该模型普遍应用于MPEG1,MPEG2,H.264等标准中。

混合编码模型

从图中我们可以看到,当前输入的图像首先要经过分块,分块得到的图像块要与经过运动补偿的预测图像相减得到差值图像X,然后对该差值图像块进行DCT变换和量化,量化输出的数据有两个不同的去处:一个是送给熵编码器进行编码,编码后的码流输出到一个缓存器中保存,等待传送出去。另一个应用是进行反量化和反变化后的到信号X’,该信号将与运动补偿输出的图像块相加得到新的预测图像信号,并将新的预测图像块送至帧存储器。

参考文献

1.    https://blog.csdn.net/leixiaohua1020/article/details/28114081

2.    韩宇峰.铁路货场综合视频监控系统的设计及视频压缩和编码与解码研究[J].铁路通信信号工程技术,2014,11(04):39-42.

3.    宋阳. 基于H.264的视频监控系统的设计与实现[D].华中科技大学,2015.

4.    郭海丰. 基于H.264的视频压缩技术及其在网络视频监控系统中的应用研究[D].浙江大学,2005.

5.    付振华. 基于压缩感知的交通视频压缩技术研究[D].长安大学,2016.

6.    https://baike.baidu.com/item/%E5%8E%8B%E7%BC%A9%E6%84%9F%E7%9F%A5/164957?fr=aladdin

7.    https://blog.csdn.net/yyyljw/article/details/50296811

8.    http://blog.csdn.net/shenziheng1/article/details/52965104

9.    http://blog.csdn.net/leixiaohua1020/article/details/18893769

10.  http://blog.sina.com.cn/s/blog_62b5588201017ghb.html

11.  https://www.cnblogs.com/professional-NET/p/5079201.html

12.  中国电子视像行业协会. 解读数字电视[M]. 北京:人民邮电出版社,2008.01

13.  殷海兵 贾惠柱 黄俊. 数字视频编码算法优化理论、方法和芯片实现[M]. 北京:电子工业出版社,2015

监控系统视频编码算法(REARCH PLAN)相关推荐

  1. 安防视频监控系统视频上云解决方案EasyCVR语音转发功能音频数据打包发送流程介绍

    目前我们的视频上云服务平台EasyCVR已经可集成海康EHome私有协议,并且在前文中我也跟大家讲过EHome协议的配置和调用流程,有兴趣的可以阅读一下:配置及协议介绍.Ehome协议调用流程介绍. ...

  2. 视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列——通过流媒体服务开启语音对讲

    TSINGSEE青犀视频团队研发的视频平台大多已经支持了语音对讲的功能,EasyCVR视频上云服务也能够在海康EHome协议下调用语音对讲(语音对讲操作流程),本文是语音对讲功能的一个拓展,将跟大家讲 ...

  3. 安防视频监控系统视频上云解决方案EasyCVR音频基础知识一文全介绍

    EasyCVR是TSINGSEE青犀视频研发的视频上云网关,设备端有公网IP,可通过海康SDK.Onvif/RTSP.GB28181.ehome协议接入到EasyCVR中:设备端无公网IP,可通过GB ...

  4. 视频监控系统视频上云解决方案EasyCVR集成海康EHome私有协议系列——报警模块说明

    视频联网云平台EasyCVR是一个集视频联网共享.存储.流媒体转发.视频转码.视频上云.智能分析统一等多种功能为一体的流媒体视频服务融合性平台.EasyCVR可以集成海康EHome私有协议,本文讲一下 ...

  5. 千兆交换机下面可以接多少层交换机_视频监控系统如何选择网络交换机

    网络摄像头朝向高画质与超高画质的趋势越来越明显,监控工程商要如何选择合适且满足监控整体网络架构性能的交换机,成为监控系统建置与施工前期的重要工作.合适的交换机,不仅能够发挥监控网络应有的效能,更能有效 ...

  6. 安防监控系统流媒体服务器,搭建一套安防监控系统RTSP/Onvif网络摄像头视频流媒体服务有哪些核心要素?...

    原标题:搭建一套安防监控系统RTSP/Onvif网络摄像头视频流媒体服务有哪些核心要素? 在现代信息社会,人民的生活水准不断提高,因而对安全的需求也越来越迫切.特别自"9·11"与 ...

  7. 端到端神经视频编码=A Better Trade-off ?

    归根结底,每一种视频压缩方法都要权衡利弊(trade-off):如果允许更大的文件大小,就可以拥有更好的图像质量:但如果想让文件非常小,那就必须要容忍错误出现的概率.但现在(以及不久的将来),人们希望 ...

  8. 无电池摄像头如何实现高清晰度视频编码?

    本文来自日本法政大学理工学院副教授 周金佳在LiveVideoStackCon 2019上海大会演讲,介绍了一种可被广泛应用于监控系统的超低功耗的视频采集和编码系统,在保证画质的同时,可大大降低系统的 ...

  9. MPEG4视频编码技术介绍

    MPEG全称是Moving Pictures Experts Group,它是"动态图象专家组"的英文缩写,该专家组成立于1988年,致力于运动图像及其伴音的压缩编码标准化工作,原 ...

最新文章

  1. linux运维人员必会运维工具
  2. 《ASCE1885的网络编程》---Winsock APIのIP地址转换函数
  3. SAP 电商云 Spartacus UI feature level directive 的工作原理
  4. c语言提取图片yiq分量,图片数字水印C语言代码
  5. 2018 年视频监控企业竞争力分析 海康威视连续七年蝉联全球第一
  6. Elasticsearch 5.2.x 使用 Head 插件连接不上集群
  7. html5离开网页自动暂停,通过html5代码在网页中实现播放和暂停音乐mp3,mav等文
  8. spring_boot 与MyBatis 整合
  9. 后缀数组2.0--Height数组(bzoj 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式)
  10. Mac电脑上线剪映专业版之初体验!
  11. 进程之间有8种通信方式
  12. linux系统查看java安装路径
  13. 快速构建Windows 8风格应用9-竖直视图
  14. cmos和ttl_TTL和CMOS有什么区别?
  15. 绝对值对应c语言表达式,c语言绝对值函数?
  16. 计算机存储盘设置密码,如何在USB驱动器上设置密码并教您如何设置
  17. 北上广租房技巧(希望大家都少走点坑)
  18. Pch文件如何配置?
  19. PPI协议详解 ppi通讯协议 ppi通信协议 vb与ppi协议通讯
  20. java终极面试宝典,大家向前冲

热门文章

  1. 腾讯云叮当语音识别ASR对接流程
  2. 适用于90%网剧、网大的最新备案流程解析
  3. 初学SLAM之Linux下编写第一个C++程序
  4. Ironic mitaka ReleaseNotes
  5. 用Abaqus模拟滞回曲线——应力控制和应变控制
  6. 13 令牌颁发方式 之 刷新令牌
  7. Oh My God!1个客服同时对接8个微信号,32000人!销售转化率提升3倍,复购率提高60%,7天留存率提升200%!...
  8. vcm服务器如何修改端口,产品技术-iMC VCM虚拟连接管理-新华三集团-H3C
  9. 拍照识别文字的方法有哪些?这些识别文字的方法安利给你
  10. Kali Linux渗透测试 106 离线密码破解