0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅述一种基于NS的网络视频QoS分析方法

电子工程师 来源:现代电子技术 作者:陈正宇 2021-03-24 14:10 次阅读

“为了建立网络视频传输的QoS分析平台,在分析EvalVid工具集的基础上,选取NS-2作为仿真环境,提出一种网络视频的QoS分析方法。该方法首先从视频流中提取仿真用的trace文件,注入模拟的网络中传输,然后利用结果trace文件将原压缩视频文件中由于传输丢失和延时超过限制的分组

随着网络和多媒体技术的飞速发展,网络中的多媒体应用层出不穷,如视频会议、视频点播(VOD)、远程教育等多媒体业务。由于活动图像的数据量很大,在具体应用中,网络拓扑、网络带宽、路由技术以及传输数据包的实际分割方案等因素都会对网络传输性能造成影响,最终影响视频业务的服务质量。因此必须对网络中视频传输的QoS保障问题展开研究。

在网络QoS保障问题的研究过程中,由于网络复杂性和经济条件的制约,网络仿真技术就扮演着非常重要的角色。网络仿真技术是一种通过建立网络设备和网络链路的统计模型,并模拟网络流量的传输,从而获取网络设计或优化所需要的网络性能数据的仿真技术。本文在分析EvalVid工具集的基础上,将基于NS-2网络仿真软件提出一种网络中视频QoS分析方法。

1 网络视频的QoS研究技术概述

在仿真环境下,研究者通常会使用不同的尺度衡量其提出的传输策略对视频质量的影响,这些尺度包括分组丢失率、分组延时、帧丢失率和可解码帧率等。而这些尺度很多都是衡量网络性能的,不能完全反映视频的质量。在视频质量的评价方法中主要有主观质量评价和客观质量评价2种方法。主观质量评价是相对较为准确的图像质量评价方法,因为主观质量评价直接反映人眼的感觉。常用的指标是基于5级质量制或5级损伤制的平均意见分(MOS分)。视频图像质量的客观评价通过某些数学准则来衡量,常用的有峰一峰信噪比(PSNR)。它的定义如下:

其中,M和N是视频帧的宽度和高度的维数;x(i,j)和x′(i,j)是原始像素和重构像素在(i,j)点的亮度或色度值。虽然网络中视频QoS的研究技术层出不穷,但是研究者一直没能给出一种统一的体系结构用来对视频的质量从主观和客观上进行评价。为此Jirka Klaue在文献[4]中给出了统一评价视频传输质量的框架和工具集——EvalVid。EvalVid具有模块化的结构,可以使用在所用的视频编码策略下,网络之间的交互作用通过trace文件实现,很容易在任何实验的环境下使用。

Chih-Heng Ke等在文献[4]中将Evalvid和NS2结合,给出一个视频流质量评估的新工具集Enhanced EvalVid。NS2和EvalVid的结合通过对NS代理的扩展实现的,设计出3个代理,即MyTrafficTrace,MyUDP和MyUDPSink,通过这3个代理就可以将真实的视频流放到仿真的环境中运行。在文献[4]中Chih-Heng Ke等只考虑由于网络的拥塞等原因造成的丢包对视频质量的影响,而没有考虑网络的延时对视频质量,尤其是对实时视频传输质量的影响。为此本文提出一种基于NS的网络视频QoS分析方法,既考虑丢包,又考虑延时对视频质量的影响,实现对EnhancedEvalVid的补充。

2 基于NS的网络视频QoS分析方法

2.1 系统的基本构架

本文提出的仿真系统结构如图1所示。编码器将YUV格式的视频源,按照配置文件的要求进行编码,产生视频压缩文件。再根据视频流的情况,产生网络流量的trace文件,并将trace文件通过网络模拟器。经过模拟产生trace结果,分析后得到延时记录和分组丢失记录。最后,利用这些记录产生有损伤的视频压缩文件,解码后可以进行质量的评价。

2.2 分析的步骤

由于在视频传输的仿真中,需要将真实的视频流在仿真的网络环境中传输,因此必须对NS-2进行扩展与修改,添加视频传输仿真过程中所需的网络元素,包括代理的设计。本文利用文献[4]中作者设计的3个代理MyTrafficTrace,MyUDP和MyUDPSink。MyTraffic-Trace代理按照发送trace文件,在适当的时间发送分组给低层UDP,发送时间是根据视频帧发送率在trace文件中设定的。

MyUDP是UDP代理的延伸,它记录每个传输分组的时间戳,分组id和分组大小。MyUDPSink是接收代理,接收MyUDP发送的视频分组,这个代理在指定的文件中记录每个接收分组的时间戳、分组id和分组大小。另外,如果研究者需要验证其提出的传输策略,就要使用C++和OTcl对网络元素编程,并将其提出的策略加到网络元素中去,然后重新编译NS。在完成了对NS-2的扩展以后,就可以利用NS进行仿真。

2.2.1 产生仿真用的trace文件

由于视频编码软件不能直接产生用来仿真的trace文件。因此需要将视频编码器产生的视频压缩文件转换成trace文件,trace文件的格式是。转换的基本原理就是读取视频文件中的时间戳和分组的大小,并将这些信息存储到trace文件中。例如数据,就是图像测试序列mother_daughter.yuv经编码后,产生的trace文件中的一组数据,表示在0.066 667 s发送大小为407 B、分组标识为id8的分组。

2.2.2 仿真配置

(1)根据实际网络的要求,定义网络节点,配置网络拓朴结构,确定链路的基本特性,如延迟、带宽等。

(2)建立协议代理,包括端设备的协议绑定和通信业务量模型的建立,将视频流和各种背景流绑定到代理中。配置业务量模型的参数,确定网络上的业务量分布。

(3)设置Trace对象。Trace对象把仿真过程中发生的特定类型事件记录在trace文件中。NS-2通过trace文件保存整个仿真过程。仿真完成后,可以对trace文件进行分析研究。

(4)编写其他的辅助过程,设定仿真结束时间,至此OTcl脚本编写完成,再用NS-2解释执行已编写的OTcl脚本,进行仿真。

2.2.3 对传输后视频文件的恢复与解码

网络仿真器能为每个传输的分组产生相应的记录,仿真后产生trace文件,记录模拟过程的所有trace数据。通过MyUDPSink代理生成目标trace文件,它的格式是。例如,数据,就表示在上例中0.066 667 s发送的大小为407 B的分组id8在时刻0.275 093 s被接收到,若在目标trace文件中没有对应的分组数据说明该分组丢失。以下两组数据:,是分别对应于连续两帧图像的分组,由于两分组之间延时0.097 205 s超过了设定的帧间最大间隔,故在实时视频传输中分组14由于延时超过限制,将不能用来解码。

可见根据目标trace文件就可以判断压缩视频分组中哪些分组要在传输过程中丢失,哪些分组因为延时超过了一定的限制而不能用来解码。基于这样的方法,可以从压缩视频文件中将传输丢失的分组和延时超过限制的分组丢弃,从而产生新的传输以后的视频压缩文件。解码器对该文件进行解码便得到重建视频,从而进行质量的评估。

3 实例分析

图2所示是本文进行实例分析的视频传输系统的结构示意图,摄像机产生视频文件,通过节点S1适时传输到节点D1,中间通过节点R1和R2;节点S1带有1个CBR流量发生器,也通过中间节点R1和R2,向节点D2发送,作为影响视频传输的背景流。链路的带宽如图中标注所示。本实例仿真主要想说明CBR的背景流对视频传输质量的影响,从而论证本分析方案的可行性。

本例使用250帧的图像测试序列mother_daughter.yuv,利用JVT给出的参考模型JM1.7 H.264编码器进行编码,产生mother_daughter.264压缩视频文件,编写程序读取压缩视频文件,产生名为mother_daughter.trc的trace文件。按照图2配置网络拓扑结构,确定链路的基本特性。将视频trace文件注入NS-2部分代码如下:

仿真过程NAM动态显示截图如图3所示,在R1(图3中的2号节点)处产生了大量丢包。

以下是该仿真实例产生的输出trace文件的部分内容:

对于其格式的含义,从第1列到第12列分别解释如下:第1列表示特定的跟踪对象实现的跟踪类型,有+(进队列)、-(出队列)、r(接收)、d(丢弃)4种;第2列表示事件发生的时间(单位:秒);第3列、第4列分别表示跟踪的源和目的节点号(对应于图3中的结点);第5列表示包类型名字;第6列表示包大小;第7列是一个标志字符串,本例没有使用;第8列是lpv6定义的流标识符;第9,10列表示包的源和目的节点地址;第11列表示流内的顺序号;第12列表示一次仿真中每个新生成包的惟一标识号。以上数据组记录了大小为407 B(435中包含28 B的分组头)分组传输的整个过程,再通过MyUDPSink代理生成目标trace记录。

利用mother_daughter。264文件和目标trace文件,编写分析程序,从mother_daughter.264中将由于丢包和超时所丢失的分组去掉,得到新的视频压缩文件,解码后可以从主观和客观上去评价视频质量。

图4中的PSNR2和PSNR1分别展示了CBR有无背景流存在的2种条件下视频序列的PSNR的对比情况,说明CBR流的存在使视频质量恶化。图5从主观的角度,对比了两种情况下的视频质量,通过这一简单实验可以证明,本文所提出的方案是完全可行的。

4 结 语

本文选取NS-2网络模拟器作为仿真环境,设计和实现一个视频Qos分析的试验平台,对全部实现过程分析后,通过实例证明了提出的方案完全可行。对于网络视频QoS的研究者,可以应用文中给出的实验平台,分析和验证其提出的视频传输策略的有效性。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • QoS
    QoS
    +关注

    关注

    1

    文章

    133

    浏览量

    44512
  • VOD
    VOD
    +关注

    关注

    0

    文章

    15

    浏览量

    13372
  • CBR
    CBR
    +关注

    关注

    0

    文章

    13

    浏览量

    11465
收藏 人收藏

    评论

    相关推荐

    电源管理入门:PM QoS框架介绍

    QoS(Quality Of Service,服务质量),一般在网络报文中,某个报文的优先级比较高则优先传输,例如我们觉得微信聊天比看网页更重要,我们就可以提高微信报文的等级即服务质量QoS,来提供好的
    的头像 发表于 11-29 10:12 744次阅读
    电源管理入门:PM <b class='flag-5'>QoS</b>框架介绍

    含受控源网络戴维宁等效电路的一种求解方法

    电子发烧友网站提供《含受控源网络戴维宁等效电路的一种求解方法.pdf》资料免费下载
    发表于 11-18 11:52 0次下载
    含受控源<b class='flag-5'>网络</b>戴维宁等效电路的<b class='flag-5'>一种</b>求解<b class='flag-5'>方法</b>

    基于NS2仿真的IP网络性能分析与研究

    电子发烧友网站提供《基于NS2仿真的IP网络性能分析与研究.pdf》资料免费下载
    发表于 10-24 11:41 0次下载
    基于<b class='flag-5'>NS</b>2仿真的IP<b class='flag-5'>网络</b>性能<b class='flag-5'>分析</b>与研究

    基于一种多电动机网络控制系统的设计方法

    电子发烧友网站提供《基于一种多电动机网络控制系统的设计方法.pdf》资料免费下载
    发表于 10-19 10:18 0次下载
    基于<b class='flag-5'>一种</b>多电动机<b class='flag-5'>网络</b>控制系统的设计<b class='flag-5'>方法</b>

    网络分析仪维修方法

    一、矢量网络分析仪维修方法 近日某公司送修三台安捷伦网络分析仪N5244A,大家猜一下这台仪器的价值,这是一款功能全面、性能优异的微波网络分析仪,可用于测量放大器、混频器和频率转换器等
    的头像 发表于 09-13 18:01 1189次阅读
    <b class='flag-5'>网络分析</b>仪维修<b class='flag-5'>方法</b>

    什么是网络中的服务质量 (QoS),其相关技术和关键指标有哪些?

    QoS(Quality of Service,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络一种安全
    的头像 发表于 08-30 21:53 674次阅读
    什么是<b class='flag-5'>网络</b>中的服务质量 (<b class='flag-5'>QoS</b>),其相关技术和关键指标有哪些?

    ARM Neoverse N1 Core性能分析方法

    未来的系统设计需求。 Arm Neoverse微型架构的开发考虑到了高性能和电源效率。因此,我们的性能监控理念可能与软件开发人员用于分析基于其他体系结构的系统的理念略有不同。本文概述了一种
    发表于 08-09 06:01

    是否有一种方法可以使用Arduino的代码块IDE与ESP MCU起工作?

    你知道是否有一种方法可以使用 Arduino 的代码块 IDE 与 ESP MCU 起工作?Code Blocks 是个非常好的轻量级 IDE,已经适用于几乎所有的 Arduino 开发板。
    发表于 06-09 08:35

    有什么方法可以使HSPI时钟高25ns和低12.5ns

    ,因此数据在前沿发生变化,在后沿被计时为 ni。为了处理 15ns 的延迟,我需要时钟是相反的,即高电平持续 25ns,低电平持续 12.5ns。 但它没有提供设置分频因子 3 的替代方法
    发表于 05-29 08:08

    KiCad 7中添加网络类(二):原理图中添加网络类的方法

    类,回到原理图,记住第二个网名,重新打开netclass对话框,分配第二个网类,如此反复,有点麻烦。 4. 这是一种使用网络类对话框分配单独网络的捷径:右键点击需要分配
    发表于 05-24 18:38

    是否有一种简单的方法将esp连接到openhab并发送特殊命令?

    嗨, (首先抱歉我的英语不好) 个月以来我直在玩 ESP,我真的很喜欢它! 但现在我想更进步,将 ESP 连接到 Openhab 并控制灯、RGB-LED 等。 所以我的问题:是否有一种
    发表于 05-24 08:14

    一种简单的报错设计,分享

    一种简单的报错设计,可在次基础上增加。 冲突 阻挡 重复 不在工位 不在岗 计时不准 范围外 强停 其它
    发表于 05-20 20:07

    ENET_QOS_1588_EVENTx和PPSx有什么区别呢?

    我正在尝试让 ENET QoS 模块的 PPS 在 i.MX 8M plus 上工作。 我需要澄清 ENET_QOS_1588_EVENTx 和 PPSx 之间的区别。 首先我认为
    发表于 05-17 08:30

    有没有一种方法可以在“附加板管理器 URL”中指定旧版本?

    总而言之, 我有个在 ESP8266 上使用 painlessMesh 的项目。 已经工作了好几个月了。 不幸的是,最新版本的 8266 内核导致 painlessMesh 编译错误。 有没有一种方法可以在“附加板管理器 URL”中指定旧版本
    发表于 05-08 08:25

    使用Arduino和网络摄像头的基本视频流?

    非常喜欢 OctoPi 的基本视频功能但独立(不在所有 3D 打印 gubbins 中)。 TL:DR: 在个理想的世界中,我所追求的是一种通过 Arduino 通过 WiFi 从网络
    发表于 05-04 06:51