吴一亮,胡彦多,郑佳春
(集美大学信息工程学院,福建 厦门 361021)
视频传输相关应用中的原始视频因其数据量庞大,通常需要经过压缩编码才能进行传输,然后在接收端解码显示[1-3].因此远程视频传输应用一般包含视频编码、数据压缩传输、视频解码,但这三部分都会带来一定的时延.5G网络普及前,常见的远程视频传输应用,在视频编码和解码上的时延一般为150~2 000 ms[4-5],对时延测量的精度要求并不高.但随着5G网络的推广应用,网络传输上的时延可以降到1 ms以内[6].同时相应的低时延编码方案也正在制定中,这就使高精度视频时延的监测逐渐成为视频系统质量评估中不可缺少的一部分,尤其对于一些时延要求比较高的新应用,比如远程操控、虚拟现实(VR)、视频互动等[7].如3GPP26.929标准[8]将运动请求到视频显示的时延(motion-to-photon,MTP)列为VR业务的体验质量(quality of experience,QOE)指标之一,经业内测试确定在互动性较强的应用(如云VR游戏)中该指标应小于20 ms才能避免交互延迟导致的眩晕感[9-10].
越来越多的视频相关应用或者编解码方案将低时延作为其关键指标之一,但现在常用的视频时延测量方法有限且精度较低.如需进行精确测量,则需要在视频中打入时间戳信息,这会破坏原视频画面的内容,也就无法实现实时的无损在线测量.
工程中常用的测量方法为并排拍摄法[11],但由于该方法用到的秒表、摄像头、显示器都是独立的个体,而且摄像头和显示器都是以帧为单位进行刷新,这将导致测量结果有最大2帧视频时间长度的测量误差,即按60 帧/s计算会有33.3 ms的最大误差,无法满足5G网络的时延测量精度.而且视频内必须包含秒表,将遮挡视频原有内容,属于破坏性测量.
针对实际场景中视频时延的精确测量,Omnitek公司为视频广播领域推出了一些专用设备,如OTM/OTR系列[12].其原理是通过发送一个特殊的视频序列来进行测量,视频序列的每帧中打入特殊的时序编码图案,设备通过识别图案来测量时延.这类设备普遍价格较高,测量时必须发送特殊的视频内容,不能在正常的视频传输应用中进行实时测量.
鉴于现有设备无法在线无损测量视频时延,本研究研制了一种不破坏原有传输视频内容的视频时延实时测量装置.
整体测量方案如图1所示,其中,为了避免因打入时间戳造成视频的破坏,本研究将视频用一个一进二出的分配器将视频分成两路,一路进行视频传输,另一路进行时延测量.
图1 整体测试方案Fig.1 Overall scheme
为了实现无损在线测量,首先要找出原视频中的每一帧以及经过编解码后的对应帧.设原视频序列为On(i,j),经过编解码后的重建视频序列为Rm(i,j),其中(i,j)表示视频中的像素点坐标,n和m分别表示原视频第n帧和重建视频中的第m帧.确定出On(i,j)与Rm(i,j)各帧之间的对应关系,再根据对应帧到达时延测量装置的时间差得出视频时延.
然而直接按整帧对比来确定时间差的计算量大,且视频经过编解码后帧内像素值会有轻微的改变,并不适于直接的像素级对比,因此需要一个高效的视频对比检测方法.传统散列函数将任意长的数据信息压缩到某一固定长度的散列值,可以用于信息搜索匹配.但传统散列函数受输入数据微小变化的波动较大,而视频编解码处理后像素的微小变化对视频要表达的内容影响不大.为了对经过变化处理后的视频内容进行搜索匹配,需要使用视频感知散列[13].
视频感知散列包括3部分研究内容,分别是特征提取方法、视频感知散列压缩算法以及散列码匹配方法.因要检测对比的视频尺寸并未发生变化,只是受编解码的影响,且现有的视频编解码算法多为基于运动搜索的混合编码结构[14],编解码前后视频帧之间的运动信息特征基本没有发生变化,故本文选取运动特征来反映视频内容的变化.同时为了能实时处理,对视频帧进行分块下采样后采用帧差法获取运动特征[15].将经过下采样以及帧差处理的残差图像数据经过阈值判断后按一定顺序组成散列码.散列码匹配主要采用距离度量法.距离表示两个散列码的差异程度,距离越大两个图像帧的相似度越低,距离越小两个图像帧的相似度越高.常见的距离公式有欧式距离、切比雪夫距离、汉明距离、标准化欧式距离等.实际应用中多选用汉明距离来度量.在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数,即对两个二进制字符串按位进行异或计算并统计异或结果为1的个数,此个数就是两个二进制字符串之间的汉明距离.
针对编解码后的视频,以及为了方便在硬件上实时实现,本研究提出基于运动信息的视频散列映射方案.具体流程如图2所示.
图2 测量流程Fig.2 Measurement process
以下采用实际视频仿真例子来说明测量流程.
原视频On(i,j)为循环播放的一段分辨率为1 280×720的50帧的人头移动视频,视频中的各帧如图3(a)所示;重建视频Rm(i,j)为On(i,j)经过H.265 视频压缩编码后传送到解压缩装置解码得到的视频,除了因有损压缩带来的损失外,重建视频与原视频内容基本一致.
(1)
(2)
选取一个阈值ε对ΔOn(i′,j′)和ΔRm(i′,j′)中的每一帧残差图像进行二值化处理,大于ε的像素置1,小于ε的像素置0,从而获得二值化的图像BOn(i′,j′)和BRm(i′,j′),算法如式(3),进一步压缩数据规模以及排除其他影响因素,处理后如图3(c)所示.
图3 仿真实例Fig.3 Simulation example
(3)
将获得的原视频图像散列码HOn存入散列库HashDB,库容量的大小决定了时延的测量范围,现实中库容量设计为600,对于帧率为60 帧/s的视频来说,时延测量最大范围为10 s.当存入的散列码超过库容量时,将最早存入的散列码丢弃.用重建视频当前帧的散列码HRm在HashDB中进行特征匹配,定义M1表示HOn和HRm的匹配程度.匹配算法如式(4)所示,将重建视频帧特征散列值与原视频帧特征散列值对应位进行异或处理,并统计值为1的个数,也就是特征不同的位置,匹配度越高M1值越小.
(4)
如果获得的重建视频帧散列码二进制序列中1的个数较少,表示该幅图像运动特征不明显,将不会对该帧进行匹配计算,经测试验证个数选为60.确定了原视频帧与重建视频帧之间的对应关系后,就可以通过比较检测装置打上的时间戳信息计算出重建视频各帧与原视频各对应帧之间的时延.
为验证真实效果,本文将原视频与经过压缩传输设备后的重建视频帧进行匹配度验证计算,匹配度如图3(d)所示.原视频为图3(a)所示采用非编视频采集卡循环播放的一段长度为50帧、分辨率为1 280×720的人头移动视频,通过非编视频采集卡采集了437帧该视频.将非编视频采集卡播放的视频输入到视频编码传输设备中,在解码端采集重建视频,并取重建视频中的1帧计算其散列值与采集的437帧原视频帧的散列值按式(4)计算匹配度.从图3(d)可以看出在每50帧原视频中都可以明确找出最小M值,也就是与重建视频帧最匹配的原视频帧.
为了验证提出算法(以下简称算法1)的效果,与业界常用的基于梯度取向质心的视频感知散列算法[16](以下简称算法2)进行比较.算法2取输入视频的亮度分量,将亮度帧下采样后分割成固定大小的图块,计算图块各个位置的梯度取向,最后计算出图块内所有像素位置梯度取向的质心值,将质心值作为该图块的特征,整幅图像图块的质心值序列作为该帧图像的散列值用于视频图像匹配M2.匹配度采用原视频和重建视频的质心值序列的均方差.
取一段长为300帧、分辨率为1 280×720的视频,通过H.265标准模型HM16.5代码按量化系数为40获取压缩后的视频,即重建视频.将重建视频的第170帧与原视频的300帧分别按算法1和算法2计算其匹配度.结果如图4所示.
图4 匹配度曲线Fig.4 Matching curve
从仿真看两个算法都能准确检测出对应帧.相比于算法1,算法2匹配度的相对波动较大(由于算法1与2的匹配度计算式不一样,故此处以匹配度相对波动作为对比标准),因为视频编码压缩会损失视频的高频分量,算法2采用的梯度取向较侧重于像素变化,所以造成波动较大.本研究应用场景主要考虑视频传输中的压缩带来的影响.算法1的计算量远小于算法2,且效果在压缩传输情况下优于算法2.
测量系统硬件由基于Xilinx Artix-7系列的现场可编程门阵列(FPGA)和STM32F7系列微控制器组成的异构系统实现,两者之间用串行外设接口(SPI)连接(图5).FPGA提供了两个HDSDI接口以及两个HDMI接口用于视频输入,一个HDSDI以及一个HDMI用于OSD.设备的配置以及测量结果还可以通过网口在其他设备的网页上体现.
图5 测量装置系统框图Fig.5 System block diagram of measuring device
利用FPGA对原视频和重建视频主要处理步骤如图6所示.整个FPGA架构可以处理最大分辨率为3 840×2 160像素、30帧刷新率的视频.
图6 FPGA处理流程Fig.6 FPGA processing flow
为降低成本,FPGA选用Xilinx Artix-7系列的XC7A35T,共有33 280个查找表(LUT)资源.测量系统工作时,使用了22 949个查找表资源,占该芯片资源的70%.片上其他资源如分布式随机存取存储器(RAM)(即将LUT用做分布式RAM(LUTRAM))、块RAM(BRAM)、输入输出(IO)等资源使用情况如图7所示.选用的FPGA芯片资源满足装置功能需求且有一定的余量.
FF为触发器; GT为高速收发器;MMCM为 混合模式时钟管理器; PLL为锁相环.图7 FPGA资源使用情况Fig.7 FPGA resource usage
FPGA将生成的原视频或重建视频各帧特征散列码作为数据载荷,在外部打上时间戳、帧编码以及纠错码等内容并组成数据包,通过SPI总线传送给STM32F7单片机,SPI传输内容的数据协议如图8所示.单片机对散列码按式(4)定义的方法进行匹配,计算出时延,并在OLED屏幕上显示,或传回FPGA,通过网页将历史数据进行展示查看.
图8 SPI传输协议Fig.8 SPI transmission protocol
测量系统硬件实物如附录(http:∥jxmu.xmu.edu.cn/upload/html/20210611.html)图S1所示,经过4次硬件设计改进现已产品化.
当检测到原视频或重建视频的帧同步信号时,将一个由高精度25 MHz时钟驱动32位计数器的值保存下来,作为该原视频帧或重建视频帧的时间戳TO或TR.在确定原视频与重建视频对应帧后(运动特征不明显的重建视频帧不进行匹配),按式(5)处理相应的时间戳即可以得出视频的时延D(单位:ns).
(5)
根据误差传递公式[17-19]以及式(5)可知时延测量的方差SD为源视频时间戳方差STO与重建视频时间戳方差STR的和.即
SD=STO+STR.
(6)
因为帧同步信号与25 MHz时钟是不同步的,在帧同步信号到来时抓取的时间戳可能多计或少计一个数,通常称为±1误差.因为25 MHz时钟一个单位时间为40 ns,所以可知时延测量的方差SD为3 200 ns2,从而可以推导出测量的理论标准差为56.6 ns,满足高精度时延在线测量的要求.
40 ns
为了验证装置的精度以及功能,设计了相应的实验进行验证.
标定实验需要用到固定时延的两个标准视频,市场上现有的串行数字接口(SDI)视频延时设备采用存储回放方式运行,可用于直播节目内容审查,但精度不能满足标定要求.为此,设计如图9(a)所示的精度标定方案.采用一个一分三的SDI视频分配器(图9(b)圈中所示SDI传输速率为12 Gbit/s),将视频复制成三路内容及传输时间完全相同的视频,即三路零时延的视频标准源.将三路中的两路视频分别接入时延测量装置的原视频和重建视频SDI输入口,用于装置标定,将剩下的一路SDI视频直接显示.图9(b)中右边屏幕为打上测量结果的重建视频,屏幕上显示的时间位数只到0.1 ms,通过时延测量装置的网口抓取了10次时延测量匹配帧的时间戳数据.10次时延测量匹配帧各自的时间戳数据如表1所示.
图9 标定实验Fig.9 Calibration experiment
两个视频之间的时延应该为0,根据表1的数据可以计算出10次测量的样本标准差为25.298 ns,与理论精度分析结果一致,说明装置符合设计要求.
为了验证装置的功能是否满足设计需求,选取华为海思HI3519视频编解码方案的H.265编解码器进行验证.图10为结合H.265视频传输系统搭建的视频无损在线时延测量装置.图10中左边屏幕显示未经压缩的原视频,分辨率为1 280×720,刷新率为60 Hz.右边屏幕为原视频经过H.265编码后解码输出的重建视频.测量结果采用OSD形式打印在重建视频上.
图10 H.265视频传输系统时延在线监测Fig.10 Latency online monitoring of H.265 video transmission system
测量装置面板显示如附录图S2(http:∥jxmu.xmu.edu.cn/upload/html/20210611.html)所示,显示视频的时延为366.7 ms.因现有视频传输系统时延一般为100~2 000 ms,装置面板设定的最小读数为0.1 ms.时延监测的历史数据也可以通过装置的网口以网页形式显示.网页形式视频时延监测数据表如图11所示.
图11 视频时延数据记录Fig.11 Video latency data recording
本研究针对当前视频时延测量领域测量精度低、不能在线无损测量的问题,提出了一种基于视频散列特征的无损在线视频时延监测方法,并研制了监测装置.经过精度分析以及实际测量试验,结果表明该装置能够满足视频传输系统中视频时延无损在线监测的要求,可应用于视频传输应用在线监控以及视频编解码传输系统研发.