缓冲北京网通

北京网通  时间:2021-05-06  阅读:()
收稿日期:2006205216基金项目:国家自然科学基金资助项目(06273078);河北省科技厅博士基金资助项目(5547013023)·作者简介:张岩峰(1982-),男,辽宁辽阳人,东北大学博士研究生;王翠荣(1964-),女,河北唐山人,东北大学教授;高远(1937-),男,山西大同人,东北大学教授,博士生导师·第29卷第5期2008年5月东北大学学报(自然科学版)JournalofNortheasternUniversity(NaturalScience)Vol129,No.
5May2008一种基于时间驱动实时视频流缓冲区的设计与实现张岩峰,王翠荣,赵煜辉,高远(东北大学信息科学与工程学院,辽宁沈阳110004)摘要:合理的缓冲区设计对保证实时视频压缩数据的正确解压缩及高品质播放起着关键作用·根据视频压缩数据的连续性和当前Internet网络力所能及的服务等特点,提出了一种基于时间驱动的缓冲区设计方案,并设计了一种可控制的模拟网络丢包乱序的测试方法,对比无缓冲情况和不同缓冲大小的情况来评估此缓冲区性能·测试结果表明,缓冲区可以平滑视频显示,能够较好地解决恶劣网络环境下的丢包、乱序等问题,并已经应用到某大型网通视频直播系统中·关键词:时间驱动;实时视频流;二级缓冲环;视频质量;时间戳中图分类号:TN919.
8文献标识码:A文章编号:100523026(2008)0520661204DesignandImplementationofaTime2Driver2BasedBufferforReal2TimeVideoStreamZHANGYan2feng,WANGCui2rong,ZHAOYu2hui,GAOYuan(SchoolofInformationScience&Engineering,NortheasternUniversity,Shenyang110004,China.
Correspondent:ZHANGYan2feng,E2mail:threewells14@gmail.
com)Abstract:Reasonablebufferdesignplaysakeyroleinvideostream'sdecodingandrenderingatthereceiverside.
Accordingtothecontinuityofpackedvideodataandbest2effortcharacterofInternet,atime2driver2basedbufferisproposed.
Andatestmethodisalsointroducedtocontrolthepacketdrop2outanddisorder.
Theperformanceevaluationofthebufferisdonebycontrastwithnobufferandbuffersofdifferentsize.
Theresultindicatedthatthisbufferperformedwellinsmoothingvideodisplayandcouldresolvepacketdrop2outanddisorderproblem.
Theproposeddesignhaswidelybeenappliedtoacertainlarge2scaleclientsystemreceivingreal2timevideostream.
Keywords:timedriving;real2timevideostream;two2levelbuffer;qualityofvideo;timestamp随着国际互联网技术和多媒体技术的发展,网络视频流媒体成为近年来研究的重点·视频会议系统,网络直播互动平台,网络电视等的研究与开发引起了众多软件企业和研究单位的极大兴趣·特别是视频媒体的实时传输,以其实时性和良好的交互性成为最近研究的热点技术·为了保证传输的实时性,视频流媒体的实时传输都采用点对点尽力传送的传输层协议UDP,而放弃了有差错检验和错误重传机制的TCP协议·虽然在应用层可以采用RTP/RTCP协议对QoS提供一定的保证[1],但在传输层上的包丢失和乱序的情况仍然无法避免,所以应用程序必须采用必要的策略对丢包和乱序数据进行处理·如果对乱序数据不加以处理而直接交给下游的解码器处理,解码后图像将产生严重失真·为解决这个问题,一般的方法是在数据递交给解码器之前缓冲一定数量的数据包,即添加缓冲区·缓冲区负责对数据包重新排序,制定丢包策略、平滑播放、计算丢包率反馈给RTP服务器等[2]·本文提出一种基于时间驱动的实时视频流缓冲区的设计方案,缓冲区除了完成排序组帧、制定丢包策略等功能外,由时间精确控制视频的解码和播放,实现视频的平滑播放·1缓冲区的设计1.
1缓冲区的整体结构缓冲区采用二级缓冲策略,一级缓冲为数据暂存缓冲,二级缓冲为数据信息缓冲·并启动数据接收线程和时间驱动线程两个线程·首先由数据接收线程接收数据包,并保存在一级数据暂存缓冲中,读取其帧序号及帧内包序号来确定此数据包在二级缓冲环中的位置,完成二级缓冲队列的排序·二级缓冲环以组合完整的帧为单位,不是以数据包为单位,在出队列时检测此帧是否完整,然后把整帧数据交给解码器处理·设计一个出队列指针,由时间线程来驱动出队列指针,精确控制音视频数据向下传递,使视频可以平滑地显示,有效避免了视频延时抖动情况的发生·如图1(一级缓冲提交给二级缓冲的数据包括:DataLen数据包长度,FrameSeq帧序号,PackSeq帧内包序号,TotalPack帧内包总数,FrameType帧类型,DataAddress数据包有效载荷在一级缓冲中的地址)·图1缓冲区整体结构Fig.
1Overallstructureofthebuffer1.
2数据包结构媒体发送端把采集编码出来的帧数据分割成较小的固定长度的数据包发送·如果在媒体发送端直接以帧为单位打包发送,则有些帧的数据量较大会产生大数据包,在网络上很容易丢包,而且对于一些路由器不支持大数据包的传输,会过滤掉较大数据包或产生分片·在接收缓冲区组包要配合媒体发送端打入包头的信息,本文参考RTP数据包头结构[2-3],在应用层设计了图2所示的数据包结构·图2数据包结构Fig.
2Datapacketstructure1.
3数据接收线程的工作流程假设缓冲区缓存K帧数据,通过环回时间和实时要求综合确定K的最优值[4]·首先为一级缓冲分配足够容纳K帧数据的一块内存作为数据暂存·接收到的数据包放入一级缓冲中,当缓冲即将溢出时从缓冲起始的内存地址接收·应用程序分析数据包,把包头中用来排序组帧的信息和一级缓冲暂存此数据包有效载荷的内存地址提取出来交给二级缓冲·二级缓冲环长度为K,对应缓存的K个帧的信息·用一个长度为K的数组(Frame[0],Frame[1],…,Frame[K-1])来模拟缓冲环,index是数组索引,对应缓冲环的出队列指针·帧信息包括接收到的数据长度、帧序号、帧内包总数、帧类型和记录帧内各个分包在一级缓冲中内存地址的数组·根据一级缓冲提交上来帧信息的帧序号,计算此帧对应于二级缓冲环的位置,然后根据帧内包序号计算此数据包对应的地址数组的索引,并递增此帧接收到的数据长度·由于媒体数据量大,接收端会频繁接收到数据包,如果拷贝数据必将消耗大量CPU资源,而通过传递内存地址,减少了一次拷贝内存的开销,以节省CPU资源[5]·1.
4时间驱动线程的工作流程传统缓冲区设计为FIFO队列,利用满则溢的原理,当接收数据包插入缓冲队列的尾部结点,又接收到其后数据包需要加入缓冲队列时,位于队列头部结点的帧数据将向下传递·这种方案的驱动力是网络接收的数据包,假设应该到的数据包由于网络原因比较集中地到达或比较分散地到达,表现到视频呈现上就是快动作或慢动作,影响266东北大学学报(自然科学版)第29卷视频播放效果·选择时间作为出队列指针移动的驱动力,可以精确地驱动帧数据向下游解码器传递,提供连续流畅的视频呈现·通过线程循环调用时间阻塞函数Wait()来实现这个功能·如图3所示,Td(i)表示传递第i帧的时刻,即时间阻塞函数Wait()被激活的时刻,根据第i帧和第i+1帧的时间戳可以计算出传递第i+1帧的时刻:图3时间线程流程图Fig.
3FlowchartoftimethreadTd(i+1)=Td(i)+Frame[i+1].
TStamp-Frame[i].
TStamp·(1)Waste(i)表示传递第i帧所耗费的时间,可以通过记录系统时间来得出,这样程序运行到时间阻塞函数Wait()的时刻为Td(i)+Waste(i),时间阻塞函数Wait()所等待的时间Δt也可以计算出:Δt=Td(i+1)-Td(i)-Waste(i)·(2)而对于丢包等特殊情况,无法取得Frame[i+1].
TStamp·这时,采用上一次计算出的Δt来代替·这种根据时间戳动态确定Δt的方法,会灵活地根据发送端发送帧速率的动态改变而变化,这样就通过时间精确控制了视频流的播放·1.
5二级缓冲环的丢包策略在一个视频序列GOP中,假设某帧Frame[i]不正确,这时如果对此帧解码,就会错误解码·如果Frame[i]为参考帧,解码器在解码Frame[i+1]的时候就会以Frame[i-1]作为参考帧解码,显然这种错误解码会导致图像质量下降,还会导致误码扩散,即后续帧都会错误解码,严重影响视频效果·所以在缓冲区要根据帧类型制定合理的丢包策略·当时间事件被触发,而出队列指针指向的帧Frame[i]尚不完整,有部分数据包还未到达,应用程序就放弃将此帧向下游解码器传递·然后判断Frame[i]的帧类型:如果Frame[i]是非参考帧,就简单将此帧丢弃,而不影响后续帧接收传递;如果为参考帧,则放弃向解码器传递缓冲环中后续帧{Frame[i+1],…,Frame[MaxIndex],Frame[0],…}以及后接收到的帧,直到检测到下一个关键帧为止,也即是丢失该视频序列的后续帧·一般来说,I帧(关键帧)和P帧(向前预测帧)作为参考帧,而B帧(双向预测帧)作为非参考帧(H.
264标准中有时会将B帧也作为参考帧[6-8])·而传统的丢包策略不区分参考帧与非参考帧,这样会增加一些不必要的丢帧·下面是丢包控制算法:1)等待时间驱动事件;2)从二级缓冲队列中读取队列头指向的帧信息;3)检查此帧数据·如果完整,进入第4)步;否则进入第6)步;4)检查此帧类型·如果是关键帧,设置传递标志为真;否则进入第5)步;5)检查传递标志·如果为真,将此帧数据向下游解码器传递;否则进入第7)步;6)检查此帧类型·如果为参考帧,设置传递标志为假;否则进入第7)步;7)移动出队列指针·返回第1)步·2实验方法与测试结果采取在发送端主动丢包和主动乱序来模拟网络上的复杂情况·具体方法是以时间为种子取伪随机数R,指定一个丢包或乱序概率p·当R除以100的余数北京网通网上直播系统等实时视频流接收客户端的设计中,取得较好的效果·参考文献:[1]IainE,RichardsonG.
Videocodedesign[M].
NewYork:Wiley,2002:27-46.
[2]SchulzrinneH,CasnerS,FrederickR,etal.
RFC3550,RTP[S].
NewYork:ColumbiaUniversity,2003.
[3]SchulzrinneH,CasnerS.
RFC3551,RTPprofileforaudioandvideoconferenceswithminimalcontrol[S].
NewYork:ColumbiaUniversity,2003.
[4]LiuJ,NiuZS.
Anadaptivereceiverbufferadjustalgorithmforvoice&videoonIPapplications[C]∥2005Asia2PacificConferenceonCommunications.
Perth:IEEE,2005:669-673.
[5]ZhouYY,ChenZF,LiK.
Second2levelbuffercachemanagement[J].
IEEETransactionsonParallelandDistributedSystems,2004,15(6):505-519.
[6]毕厚杰·新一代视频压缩编码标准H·264/AVC[M]·北京:人民邮电出版社,2006·(BiHou2jie.
Newvideocodestandard-H.
264/AVC[M].
Beijing:Posts&TelecomPress,2006.
)[7]WiegandT,SullivanGJ,BjntegaardG,etal.
OverviewoftheH.
264/AVCvideocodingstandard[J].
IEEETransCircuitsSyst,2003,13(7):560-576.
[8]WengerS.
H.
264/AVCOverIP[J].
IEEETransCircuitsSyst,2003,13(7):645-656.
[9]黄智荣·模拟数据包传输乱序的方法及装置:中国,1842054[P]·2006-10-04·(HuangZhi2rong.
Amethodofsimulatingdisordertransferringpackets:China,1842054[P].
2006-10-04.
)466东北大学学报(自然科学版)第29卷

弘速云香港VPSVPS线路有CN2+BGP、CN2 GIA,KVM虚拟化架构,裸金属月付564元

弘速云怎么样?弘速云是创建于2021年的品牌,运营该品牌的公司HOSU LIMITED(中文名称弘速科技有限公司)公司成立于2021年国内公司注册于2019年。HOSU LIMITED主要从事出售香港vps、美国VPS、香港独立服务器、香港站群服务器等,目前在售VPS线路有CN2+BGP、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。可联系商家代安装iso系统。点击进入:弘速云官方网站地址...

bgpto:独立服务器夏季促销,日本机器6.5折、新加坡7.5折,20M带宽,低至$93/月

bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...

2021年恒创科技618活动:香港/美国服务器/云服务器/高防全场3折抢购

2021年恒创科技618活动香港美国服务器/云服务器/高防全场3折抢购,老客户续费送时长,每日限量秒杀。云服务器每款限量抢购,香港美国独服/高防每款限量5台/天,香港节点是CN2线路还不错。福利一:爆品秒杀 超低价秒杀,秒完即止;福利二:云服务器 火爆机型 3折疯抢;福利三:物理服务器 爆款直降 800元/月起;福利四:DDOS防护 超强防御仅 1750元/月。点击进入:2021年恒创科技618活...

北京网通为你推荐
2019支付宝五福2019年1月25日今天的支付宝集五福了吗?苹果appstore宕机最近app store一直不能用 怎么回事啊 改dns也不能用 持续好久好久了outlookexpressoutlook Express是什么啊?怎么用啊?outlookexpress系统自带的outlook express有什么用?怎么用?字节跳动回应TikTok易主#北京字节跳动科技有限公司#小说审核有三面么?我面试了两轮就叫我回家等消息了 要是刷下来了也该告sns网站有哪些有哪些好的SNS商务社交类网站?我要购买|我要查询|我要开户2828商机网2828商机网的信息准确吗,可信度高吗科创板首批名单首批公布的24个历史文化明城是那些即时通平台有好的放单平台吗?
虚拟空间免费试用 海外域名注册 荷兰服务器 美元争夺战 表单样式 unsplash godaddy域名转出 线路工具 青果网 新站长网 华为4核 admit的用法 网站木马检测工具 tna官网 支付宝扫码领红包 申请网页 raid10 starry qq金券 lamp的音标 更多