超高清视频监控发展面临的技术问题
- 发布时间:2020-01-04 17:54:52 作者:上海监控安装公司
-
超高清视频监控发展面临的技术问题
在安防领域,工厂安装监控的超高清视频监控有着非常值得期待的应用前景,但只有解决了阻碍应用的传输、算力、算法、存储、安全等几个问题之后,应用的前景才会变得清晰起来。另一方面,传统网络正在发生天翻地覆的改变,计算和存储能力空前提高,算法进一步硬件化智能化,安全问题也从未像今天一样成为国家意志,凡此种种为超高清视频监控的技术突破带来了光明的前景和奋进的动力。
1.传输问题
别墅安装超高清视频监控面临的第一个问题是传输问题。由于4K视频超大的分辨率,对于25fps的帧率来说,在相同编码规格下,其码率约为高清视频(1080P)的4倍以上,对于传输的要求也相应提升了数倍。即使采用H.265等较为先进的编码方式,由于超高清视频在色深、帧率、分辨率等方面的改进,其传输量也是不可小觑的。到了8K超高清视频的时代,其传输量又会有成倍的增加。因此,增加带宽,即增加端侧的吞吐能力和增加中间链路的传输能力是超高清视频监控面临的首要问题。
(1)增加端侧的吞吐能力
端即超高清视频的接收端和发送端,增加两端的网卡上下行能力极为关键。上下行能力受以下因素制约:网卡性能、缓冲区大小与调度机制、网络协议栈工作效率、超高清视频监控应用进程本身的吞吐能力、视频接收与发送的策略等。
①网卡性能优化
学校安装监控为了保证监控视频传输质量,我们以单千兆卡60%的有效上下行传输率计算。在单千兆卡的情况下,对于H.264MainProfile编码的4K超高清视频,即使其码率只有1080P的4倍也会接近30Mbps,因此单千兆网卡只能承载20路左右的4K超高清视频。这对于浏览客户端可能问题不大,但对于流媒体服务器是远远不够的。因此,从千兆卡升级到万兆卡,或者多张千兆卡绑定以扩展上下行能力就显得尤为重要。
另一方面,仓库安装监控对于诸多由软件完成的传输功能,例如网络包软校验、加解密、DPI等功能完全可以“卸载”到硬件中执行,这就是我们耳熟能详的硬件卸载加速技术。通过SOC的方式将这些功能以硬件语言设计和描述,在SOC内实现ASIC电路是一种明智之举。
②缓冲区优化
上海工厂安装监控对于视频监控的网络传输应用中流媒体服务器占了流量的大头。因此流媒体服务有针对性地改进机制和提升性能就显得越发必要。缓冲区作为网卡与操作系统、应用软件交互的中间媒介理应做出相应的改进。
a.HugePage机制:操作系统中内存页面的分配粒度是4KB,对于超高清视频这显然是不够的,因此有选择性地启用大内存页机制甚至巨页机制,使其分配的粒度达到若干MB甚至1GB,以减少内存页倒换带来的系统开销,这无论对于发送端还是接收端都具有很重要的意义。
b.DMA机制:DMA即直接内存存取机制。通过DMA可以摒弃传统的“网卡缓存->主存->CPU缓存”的传输路径,转而通过DMA控制器建立网卡缓存到CPU三级缓存之间的映射实现数据的快速交换。由于绕过了主存读写这个速度较慢的步骤并省略了2次PCI-E总线的IO,因此读写速度会大大加快。
超高清视频监控发展面临的技术问题
图2DMA机制示意图
③网络协议栈优化
传统网络协议栈是以内核态驱动的方式存在于操作系统中的,其关键工作机制是中断响应、延迟过程处理、通用包处理。
中断响应:传统网络协议栈驱动以网卡的中断机制为基础,网络包的到达和发送完成均以中断机制通知上层网络协议栈,以便协议栈驱动继续处理接收和发送。
延迟过程处理:协议栈驱动响应中断后,并不是将包的收取或发送处理包含在中断处理例程中占用中断时间,因为中断的优先级较高,如果中断占用的时间太长会影响其他优先级线程的执行,因此中断处理例程将具体的收取/发送等事务性工作放在DPC(延迟过程调用)队列中,待中断优先级下降时才处理,这样就减少了中断打扰占用的时间。
通用包机制:网络协议栈是瞄准通用型网络包处理的,因此对于OSI模型的每层协议都会进行相应的处理和校验,这比较适合流量不大包类型各异的情况。而在高清视频流媒体服务器上流量较大,且传输的一般为信令报文和视频包,其协议格式和封装方式固定。
上述机制在一定程度上降低了协议栈的处理效率。针对超高清视频流媒体服务器,可以采用改进的网络协议栈对传统协议栈进行旁路化改进,比如定制专门针对流媒体传输的专用协议栈驱动,或者嫁接高速传输设备的协议栈驱动。DPDK(数据平面开发套件)框架就是一个较好的选择。DPDK是一种基于IntelX86/X64平台的网络数据包处理框架,也是一套数据包旁路化处理的方案,具有很高的IO处理速度,多用于SDN高速交换机和路由器的转发驱动框架,具有以下特点和机制:
a.UIO机制:UIO(UserspaceI/O)机制将小部分驱动运行在内核态空间(硬中断只能在内核态空间处理),大部分运行在用户态空间以实现旁路化机制。
b.SIMD机制:DPDK框架采用批量方式同时处理多个网络数据包,基于向量式编程,一个周期内对所有网络数据包进行处理,加大了处理吞吐量。
c.缓存优化机制:采用Cacheline对齐、Cache数据预取等策略加快缓存中数据的读取和处理速度。
d.PDM机制:PDM(PoolModeDriver)机制抛弃中断模式,改为基于中断+轮询的方式收包,避免了中断开销。
e.无锁循环队列机制:支持单生产者入列、单消费者出列和多生产者入列、多消费者出列的操作,因此可以提高传输效率并保证数据同步。
f.处理器亲和性机制:利用处理器亲和性(CPUAffinity)机制将IO线程绑定到若干个CPU核上,以此减少线程调度和切换从而降低切换开销,同时由于线程被绑定在固定的CPU核上,CPU缓存的命中率大大提高。
g.多队列机制:通过多队列网卡驱动的支持,将各个队列绑定到不同的CPU核上,以满足网卡高吞吐的需求。
h.DDIO机制:DDIO(DataDirectIO)是Intel提出的技术,允许网卡与CPU通过LLC(lastlevelcache)直接交换网络数据,从而绕过主存,既缩短了交互流程,也提升了交互的速度。该技术类似DMA机制,但比DMA具有更高的效率。
i.硬件加速机制:将基础性重复性的软事务(例如计算分析类任务、TCP组包类任务和TCP分段任务等)“卸载”给硬件完成以加快处理速度。
- 上一篇 返回首页 打印 返回上页 下一篇