一种虚拟现实无线网络传输协议的设计方法与流程

文档序号:15455272发布日期:2018-09-15 00:56阅读:594来源:国知局

本发明涉及一种网络传输协议设计方法,尤其是一种虚拟现实无线网络传输协议的设计方法。



背景技术:

虚拟现实(virtualreality,vr)技术是利用计算机模拟产生一个三维空间的虚拟世界,提供给用户关于视觉等感官的模拟,目前被广泛应用于教育、医学、交通等领域。基于个人计算机(personalcomputer,pc)端的虚拟现实设备常用的连接方案为利用高清晰度多媒体接口(highdefinitionmultimediainterface,hdmi)线连接头戴显示器和电脑主机,但此连接方式存在使用者活动范围受限,头部可能被hdmi线缠绕并受到伤害的缺陷。

因此,采用无线数据传输成为虚拟现实技术的发展趋势,在虚拟现实设备无线传输方案中,pc端产生虚拟现实内容图像,经过视频编码压缩后,通过无线网络传送给虚拟现实头戴显示设备(head-mounteddisplay,hmd),hmd端进行解码和畸变处理,最终显示到hmd屏幕。

传统的网络传输协议有rtp/rtsp(实时传输控制协议,real-timetransportprotocol或realtimestreamingprotocol),http(超文本传输协议,hypertexttransferprotocol),或者直接使用tcp/udp(传输控制协议/用户数据报协议,transmissioncontrolprotocol/userdatagramprotocol)等等,但这些传统网络协议都具有各自的使用局限性,无法满足虚拟现实数据无线传输所要求的低延迟,低冗余,高效率的要求。

因此本发明旨在提供一种更符合虚拟现实数据传输特点和要求的网络传输协议(hyperealrealtimetransportprotocol,hrtp)的设计方法,用于传输从pc端到虚拟现实头戴显示端的视频图像数据。



技术实现要素:

本发明目的是:提供一种虚拟现实无线网络传输协议的设计方法,达到提高数据传输的实时性,稳定性,确保所传输数据的正确性、安全性,降低数据冗余,进一步减小系统延时的目的。

本发明的技术方案是:本发明中网络传输协议(hrtp)的设计方法分为hrtp协议栈设计,数据报文格式设计,数据发送/接收处理流程设计三个步骤:

一、hrtp网络协议栈设计

hrtp网络协议栈的层次结构(参见附图1)分别为:物理层、mac层、ip层、udp层、hrtp层与应用层;与标准的tcp/ip协议栈相比,hrtp协议主要增加了hrtp协议层,此协议层设计的目的在于:1.实现虚拟现实图像帧数据的完整性校验;2.纠正udp协议传输时乱序问题;3.防止图像帧数据错误的扩展;4.传输图像帧附加数据信息比如pts,帧序列号等。

二、数据报文格式设计

(一)hrtp数据报文头部格式设计

hrtp层的每一个数据报文包都含有一个数据报文头部信息(参见附图2),其中videotype表示图像类型,如h.264格式为96;packetnumber表示该报文的序列号,共16位;timestamp表示该数据对应的显示时间戳;hyvr为固定识别码,表示该数据产生于某个平台,如hyperealvr平台;

(二)hrtp数据报文负载格式设计

hrtp层的数据报文负载有2种类型:1.如果虚拟现实图像帧数据小于1460byets,可将数据封装为单包格式(参见附图3);其中packethead表示该图像帧nal头部字段;2.如果虚拟现实图像帧数据大于1460byets,则将虚拟现实图像数据拆分为多包格式传输,每个包的大小不超过1460bytes(参见附图4),其中nri表示图像帧的第一nal头部字段的nal_ref_idc;s表示是否为图像帧的第一个数据包;e表示是否为图像帧的最后一个数据包;type表示图像帧的第一nal头部字段的nalunittype。

三、数据发送/接收处理流程设计

(一)发送端处理流程设计(参见附图5),主要思路为判断图像帧长度,决定是用单包模式还是多包模式,如果采用单包模式则计算pts,数据头和负载头部信息,如果采用多包模式则分析pts,数据头和负载头部信息,分割数据包,设置正确的s和e标识,之后发送所有的数据包;

(二)接收端处理流程设计(参见附图6),主要思路为数据接收后检查数据的识别字符段以判断数据是否正确,确认数据包序列号以判断是否有数据丢失或者乱序,最后进行负载的提取,如果是多包模式,需要进行数据的组合。

与现有技术相比,本发明技术方案的创新点为:

1.结合虚拟现实数据无线传输的特点和要求,提出简单高效的网络传输协议hrtp协议栈的设计方法;

2.本发明方案提出的hrtp数据报文格式,能够有效降低数据冗余,且有利于数据纠错,提高系统稳定性。

3.本方法设计的数据发送/接收处理流程,提高了数据传输的实时性,进一步减少系统延时,为使用者提供良好的虚拟现实体验。

附图说明

图1为本发明方法中网络传输协议(hrtp)栈层次结构;

图2为本发明方法中网络传输协议(hrtp)头部数据格式;

图3为本发明方法中网络传输协议(hrtp)单包负载格式;

图4为本发明方法中网络传输协议(hrtp)多包负载格式;

图5为本发明方法中网络传输协议(hrtp)发送端处理流程;

图6为本发明方法中网络传输协议(hrtp)接收端处理流程;

图7为本发明方法中网络传输协议(hrtp)接收端多包模式详细处理流程。

具体实施方式

如背景技术所述,现有技术中的网络传输协议设计方法在实际应用中仍然存在不符合虚拟现实技术数据传输特点、使用局限性大等问题。

在本发明方案中,提出了一种符合虚拟现实技术数据传输特点的网络传输协议(hrtp)的设计方法,分为hrtp协议栈设计,数据报文格式设计,数据发送/接收处理流程设计三个步骤。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

图1为本发明方法中网络传输协议(hrtp)栈层次结构;

本发明中网络协议栈的层次结构分别为:物理层(附图1中106)、mac层(附图1中105)、ip层(附图1中104)、udp层(附图1中103)、hrtp层(附图1中102)与应用层(附图1中101);

与标准的tcp/ip协议栈相比,hrtp协议主要增加了hrtp协议层(附图1中102),此协议层设计的目的在于:1.实现虚拟现实图像帧数据的完整性校验;2.纠正udp协议传输时乱序问题;3.防止图像帧数据错误的扩展;4.传输图像帧附加数据信息比如pts,帧序列号等。

图2为本发明方法中网络传输协议(hrtp)头部数据格式;

在hrtp层的每一个数据报文包都含有一个数据报文头部信息(图2),其中videotype表示图像类型,如h.264格式为96;packetnumber表示该报文的序列号,共16位;timestamp表示该数据对应的显示时间戳;hyvr为固定识别码,表示该数据产生于某个平台,如hyperealvr平台;

图3为本发明方法中网络传输协议(hrtp)单包负载格式;

hrtp层的数据报文负载分为单包格式和多包格式2种类型;

如果虚拟现实图像帧数据小于1460byets,可将数据封装为单包格式(图3);其中packethead表示该图像帧nal头部字段;

图4为本发明方法中网络传输协议(hrtp)多包负载格式;

如果虚拟现实图像帧数据大于1460byets,则将虚拟现实图像数据拆分为多包格式传输,每个包的大小不超过1460bytes(图4),其中nri表示图像帧的第一nal头部字段的nal_ref_idc;s表示是否为图像帧的第一个数据包;e表示是否为图像帧的最后一个数据包;type表示图像帧的第一nal头部字段的nalunittype。

图5为本发明方法中网络传输协议(hrtp)发送端处理流程;

发送端处理流程主要步骤为:

步骤501:起始步骤;

步骤502:从编码器获得数据包;

步骤503:校验起始代码;

步骤504:检验数据包大小,即判断图像帧长度,如果虚拟现实图像帧数据小于1460byets,可将数据封装为单包格式,如果虚拟现实图像帧数据大于1460byets,则将虚拟现实图像数据拆分为多包格式传输,每个包的大小不超过1460bytes;

步骤505:单包模式:计算传输图像帧附加数据信息,如pts,数据头和负载头部信息;

步骤506:多包模式:分析传输图像帧附加数据信息,如pts,数据头和负载头部信息;

步骤507:分割数据包:为数据包设置正确的s和e标识;

步骤508:发送已处理完毕数据包;

图6为本发明方法中网络传输协议(hrtp)接收端处理流程;

步骤601:起始步骤;

步骤602:从编码器获得数据包;

步骤603:检查识别字符段与序列号:检查数据的识别字符段目的在于判断数据是否正确,检查数据包序列号目的在于判断是否有数据丢失或者乱序;

步骤604:检验数据包模式:负载提取的目的在于判断数据包模式,以决定是否进行拼包操作,并检测缓存器中数值是否小于为缓存器所设置的阈值,当缓存器数值小于阈值时,进行之后的流程,当缓存器数值大于所设置的阈值时,重置缓存器;

步骤605:单包模式;

步骤606:多包模式;

步骤607:拼接数据包;

步骤608:检查包尾标识;

步骤609:数据包接收完成;

图7为本发明方法中网络传输协议(hrtp)接收端多包模式详细处理流程。

步骤701:判定为多包模式;

步骤702:检查序列号;当数据包被判断属于多包模式,检查数据包序列号,并与前一个数据包序列号进行对比,若与前一个数据包序列号连续,则进入步骤705,若不连续,即有可能出现丢包现象,则进入步骤703;

步骤703:重置队列,覆盖之前数据;

步骤704:新队列起始判断,若判定该数据包为一个新队列的起始包,则进入步骤707,等待之后的数据,若判定该数据包不是新队列起始,则舍弃该数据;

步骤705:检查包尾标识:当该数据包序列号与前一个数据包的序列号连续时,检测该数据包是否含有包尾标识,若含有包尾标识,则进入步骤708,若不含有包尾标识,则进入步骤707;

步骤706:舍弃无用数据;

步骤707:保存队列,等待之后数据;

步骤708:数据包拼接完成;

以上所述,仅为本发明具体实施方式。本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1