本发明属于超高清视频技术领域,具体涉及一种面向超高清视频点播的质量监测系统。
背景技术:
数字化技术的发展加速了视频分辨率的提升,从标清到高清的普及,再到超高清电视的推出,均显示出当前电视领域的发展趋势。新的编码技术(例如hevc编码标准)以及更高分辨率的视频(超高清视频)的出现,会让视频服务行业在服务质量上得到更大的提升。而高效的视频质量评估技术对于方便点播业务的运营管理,用来不断提升用户体验质量有着十分重要的意义。
超高清视频的出现,极大的满足了人们对视频分辨率的高要求,但同时也必须满足在播放过程中所面临的更严格的视频质量评价体系。如今视频质量的评估按照是否由人参与可以分为主观质量评估和客观质量评估,前者需要一定数量的主观评估人群来完成,而后者则是通过对一些视频播放过程中的指标来评估视频质量的好坏。因此本文将通过主客观评估这两方面来构建超高清视频质量评估体系,对视频播放过程中的质量进行监控。其中还将着重介绍网络参数qoe(用户体验质量)体系架构搭建,来测量网络传输通信中tcp包重传、时延、带宽等参数,以及在用户端所出现的黑屏、卡顿等视频播放问题,这些因素都将影响用户体验度。现有的视频质量监测服务主要是涉及高清视频以普通标清视频,而超高清视频在编码、解码上有着较大不同,且由于超高清视频的码流相比较更大,这对原有的视频质量监测方法来说存在很大挑战,因此本发明将对超高清视频的解码入手,再利用大数据存储分析的方法对整个视频质量监测系统进行改进提高。
技术实现要素:
基于以上问题,本发明的目的在于提供一种面向超高清视频点播的质量监测系统,以满足业务运营商和用户对业务运行状态和视频质量感知的需求。
本发明提供的面向超高清视频点播的质量监测系统,由网络层功能模块、应用层功能模块、展示层模块和大数据模块组成,其中:
所述网络层功能模块,由视频流数据包抓取模块、tcp测量功能模块、http协议解析模块3个子模块组成,用于对视频流数据进行采集和相应的分析,得到对应的指标,并存入数据库之中,其数据流向如图1所示;其中数据包抓取模块通过交换机,利用其端口镜像的功能进行数据包的抓取,其功能等同于将达到目的地址的数据包进行拷贝。将拷贝得到的数据包传入至tcp测量功能模块;tcp测量功能模块将得到拷贝的数据包后,进行对应的协议分类处理,其流程如图2所示,首先探针内部的视频流数据包抓取模块根据网络协议的结构过滤掉以太网首部,以及去掉该数据包的ip层首部,从而进一步判断该数据包是否含有tcp报文,该视频点播系统是基于tcp协议进行传输的,因此依照该条件能够筛选出tcp报文,然后将筛选出的tcp报文传入http协议解析模块,按照如图2所示的,根据解析进一步判断是否为http请求,若是则对请求包和响应包进行处理,提取出对应的视频源url以及http响应码。若非http请求,则对整个业务请求连接进行跟踪,从tcp的序列号、确认号进行保存,然后完成后续处理。通过对每个tcp的序列号和确认号进行对比,得到当前网络的重传乱序率。在tcp测量功能模块中通过发送icmp请求包得到流媒体服务器的响应包,进行字段摘取后可以获得链路之间的延时以及抖动情况,并且通过计算客户端发送请求包以及收到响应包的时间差得到tcp的建立时间。最后将所得到的指标存入数据库中。
所述应用层功能模块,是在应用层用于对视频本身的信息和视频传输质量从用户角度进行分析,通过测量psnr(峰值信噪比)/ssim(结构相似性)来反映编解码对视频的损伤程度。不同的psnr值代表着当前视频的质量程度不同。跟传统视频质量监测不同的是超高清视频的编码跟普通视频的编码有着很大的不同,所以在对视频数据流解码时,要用h.265解码器进行解码,本发明中,将h.265解码器嵌入到了自制播放器中。在该模块中,主要分为信息采集和信息分析两部分。信息采集部分利用超高清视频解码器hevc进行解码,在得到视频流后,利用解码器每隔一定的时间对视频进行截帧处理;信息分析部分利用所截取所得到的视频帧与源视频在该时间处的帧进行比较,得到损伤程度值;若该损伤程度值较大(本发明通过将传输解码后的视频帧与源视频帧进行大量比较实验后得出,一般,对当连续两个psnr值大于27时,表示视频损伤程度较大),则说明该时间处视频有卡顿的现象。在对视频进行上述客观评价外,还通过主观方面对视频的质量进行评估,如邀请年龄相仿的志愿者对视频按要求下进行观看,给出相应的打分(1-5),5代表视频观看效果好,1代表视频观看效果不好。将上述的得到的应用层指标(psnr值,主观评价分数)存入至数据库中。
所述展示层模块,包括web服务器和数据库服务器,web服务器通过基于python的django框架进行搭建,通过异步传输将数据库中的各层指标动态显示在web界面上,用来提供交互界面的展示;数据库服务器将网络层和应用层的指标进行存储。对于视频质量的判断,提供对应的数值阀值来表示当前视频质量的好坏。该部分,我们进行人为的设定,在通过事先的观看和实验比较,在上述应用层模块中,当连续2个psnr的值大于27时代表当前视频质量不好;当连续2个psnr的值小于15时代表当前视频质量好,其余情况均为视频质量一般。由于数据库的存储容量有限,所以通过一段时间的存储后,可以利用hadoop大数据平台,将数据库中的数据导入大数据平台后进行后期的离线分析。
所述大数据模块,包括hadoop大数据平台集群。本发明利用hadoop2.7.3进行集群的搭建,能对大文件进行有效的存储,以此来解决数据库容量溢出的情况。其包括一个命名节点(namenode)即中心服务器节点以及数个数据节点(datanodes)。namenode用来管理整个文件系统的命名空间,datanode负责存储和检索数据块,它受客户端和namenode调度。对于离线状态下,利用所分析出的网络重传乱序率,网络传输中的带宽、延时、抖动,并结合在应用层模块所计算出的psnr值分析某段时间内各用户的视频质量状况,分析不同时间段内网络带宽情况和用户在各时段的点播视频频率情况,通过该线下的分析,流媒体管理人员可以在此分析基础上为运营商提出可靠的意见来做出相应的运营方案。除了上述提到的对用户点播视频状况的分析,利用大数据平台中的大量网络层传输指标和应用层psnr值来预测短期内视频的播放质量情况,当预测的质量较差时,可以增加流媒体服务器的输出带宽来缓解网络传输的压力。
本发明为一套能对超高清视频点播业务状态以及其视频质量进行实时监测的系统。其应用范围将会覆盖包含视频点播服务的视频服务行业,监测其服务过程中的视频质量。
本发明对超高清视频传输流的采集、过滤和分析并不需要对整个局域网或者城域网进行改造,而只需通过端口镜像就能很方便地对视频流质量进行监控。与现有监测方法相比,本发明在对超高清视频传输过程中,其应用层和网络层上的分工更为明确,并且能利用大数据平台的功能进行数据的离线分析。
附图说明
图1网络层功能模块图。
图2网络层数据包解析流程图。
图3应用层架构流程图。
图4应用层监测显示图。
图5大数据功能模块图。
图6本发明的系统框图。
具体实施方式
为了使本发明的技术方案能更清晰的表示出来,下面结合附图对发明做进一步的说明。
本发明提供了一种对超高清视频质量监测的系统,解决了超高清视频质量监测的问题。如下分别介绍了整个系统的各个模块。
当客户端192.168.1.5点播了一个流媒体服务器地址为192.168.1.2下的sintel视频时,视频流首先流入网络层模块。视频传输中网络层模块的视频质量监测,参考图1和图2。整个视频点播系统是基于tcp协议的,所以主要是对tcp协议以及http协议的解析,划分为视频流tcp重传乱序测量子模块、带宽/延时抖动监测子模块、tcp建立时间测量子模块、http请求子模块、http响应子模块等几个子模块。超高清视频质量监测系统接收到任务后,网络层通过端口镜像的方式对达到192.168.1.5地址的数据包进行捕获侦听,获取视频数据包的相应信息,比如源地址为192.168.1.2,目的地址为192.168.1.5,文件名为sintel;然后进行重传/乱序率、tcp建立时间、延时等指标的计算,重传乱序率通过对前后tcp包中的序列号和确认号进行比较来获得重传乱序包的数量,tcp建立时间通过http请求包与响应包的时间差来获得,而网络的延时抖动则是通过发送icmp请求包来获取。通过设定规定的执行周期来等间隔的获取上述指标参数,然后将指标结果进行数据库保存,以便通过web界面对所得指标进行展示。在展示过程中,若重传/乱序率为负数则代表当前并未有新的计算数据还在处理当中,还未有新的数据生成。进行带宽、延时、抖动的监测并非每秒进行,本发明将间隔时间定位了4秒,即每隔4秒进行一次检测。
当视频流经过应用层模块时,视频传输中应用层模块的视频质量监测,参考图3和图4。视频质量监测的应用层模块从图形学角度分析视频播放传输的视频画面,采用全参考视频质量评价模型(即需要通过原视频来作为参考来评价传输解码后的视频质量情况),对接收到的超高清视频的像素信息进行客观评价。用户层模块设计的要点在于从获取图像的故障参数和特征点,以此来评估图像质量。该模块中我们需要保存原始视频帧,并采用合适的图像分析算法psnr/ssim(结构相似度)等来实时的分析出视频参数,本发明采用的是psnr算法。应用层模块的主要功能如下:
能够对接收到的视频进行卡顿故障的检测,判断视频画面是否出现卡顿故障,并能够结合上述图像检测结果,对视频质量做出客观评价。例如当连续两个数据帧与原视频帧进行psnr比较处理后得到的值分别为32和35,则说明此时的视频出现了卡顿,即视频质量较差的情况。该模块的具体步骤如下:
(1)检测开始时选择hevc解码器对视频流进行解码,传入视频帧。
(2)对接收到的视频帧进行卡顿现象的检测,将检测结果传送给后续视频质量客观评价模块。
(3)在视频质量客观评价方面,采用psnr/ssim等算法。
(4)最后将评测的结果存入至数据库中,以供后展示层模块的调用。
在web浏览器展示层中,通过表格和折线的动态更新变化来反映网络层和数据层指标的更新变化。通过命令行启动web服务器后,在浏览器中输入localhost:8080即可进入数据展示监测界面,对不同指标的监测,当按下相对应的按钮以后,数据便会实时的在表格或者折线图上更新。
针对上述流程的介绍,本发明中对超高清视频质量的分析分为网络层和应用层两方面,网络层主要针对视频在网络传输过程中,对网络性能指标参数的监测,如带宽、延时、抖动、重传率等;应用层则是针对视频在客户端经过解码后的视频所伤进行分析处理,来获得播放视频的信息,如码率、分辨率以及psnr值等。两个分析模块之间不存在相互依赖和冗余,当媒体数据流经过网络层模块和应用层模块时,会分别将分析出来后的指标传至各自的数据库表当中,使得两层的作用更为清晰。
针对大量用户的点播,本发明中的大数据平台用来存储从网络层和应用层中分析出的数据文件,通过搭建hadoop集群,利用hdfs(分布式文件系统)来存储海量的分析数据,如图6所示。由于超高清视频的码率大,数据包多,所分析出来的数据量也会多于高清视频和其他普通视频,简单的数据库存储并不能存储长时间的数据,所以可以将一段时间内的数据文件转存至大数据平台,在使用离线数据分析时,可以从hadoop平台上将数据取出,利用其并行计算的优势进行分析。如图5所示,多个节点ip对超高清视频进行点播后,流经网络层模块和应用层模块后可以将网络参数指标以及应用层视频质量指标上传至hadoop平台,对平台中的大文件进行mapreduce操作后能得到各个ip端在该时段所使用的网络状况以及视频点播的质量状况,通过web界面能进行展示。