一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种SRT串流上传、下载硬件加速方法和可编程芯片与流程

2023-01-15 06:03:22 来源:中国专利 TAG:

一种srt串流上传、下载硬件加速方法和可编程芯片
技术领域
1.本发明属于视频传输技术领域,特别涉及一种srt串流上传、下载硬件加速方法和和可编程芯片。


背景技术:

2.网路视频串流发展日趋蓬勃,串流协议在串流应用中相当重要,各家大厂或协会发展出了许多不同的协议,包括rtmp、hls、srt等,各自有优点和缺点。rtmp:(real-time messaging protocol,缩写rtmp)也称为即时讯息传输协定,是最初由macromedia为通过国际网络在flash播放器与一个伺服器之间传输串流媒体音讯、影片和资料而开发的一个专有协定。rtmp传输协议是一个成熟、完善的串流协议。当初adobe开发它就是要用于互联网,因为不能保证网络很稳定,所以rtmp是立基于tcp的串流协议。rtmp虽然是目前最普及的串流协议,但在2012年后就没有再次更新,很多人认为,srt在未来可能取代rtmp。因srt是基于udp的串流协议,因此在速度上比rtmp快上2~3倍。
3.srt:(secure reliable transport)是安全可靠传输协议的简称,是由haivision公司所开发的串流协议。srt是一种影音串流传输协议,主要是在连接两个端点,目的是在不稳定的公共internet上传递低延迟的影音串流。它可以解决丢包,抖动和带宽波动等问题,同时还能保持影音的完整性和画质。借助srt,可以保持串流的安全并轻松穿越防火墙。虽然srt可解决丢包以及加密安全的功能,但这大大增加了运算的负载,特别是加密运算(透过aes256运算),因此增加了cpu的负载、功耗的负载以及因计算量增加产生的延迟。而市面上的srt技术都还是由软件开发。


技术实现要素:

4.为了解决上述技术问题,本发明提出了一种srt串流上传、下载硬件加速方法和,通过硬件的方式实现srt串流的上传和下载,降低了功耗和cpu使用率,降低因加解密计算所产生之延迟。
5.为实现上述目的,本发明采用以下技术方案:
6.本发明提出了一种srt串流上传加速方法,运行于可编程芯片,包括以下步骤:
7.获取视频串流数据,并将视频串流数据一次封装为ts串流封包后放入缓存;
8.实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;
9.加密ts串流封包后得到加密后串流封包,将加密后串流封包上传至云端服务器。
10.进一步的,所述获取视频串流数据的方法包括:通过可编程芯片上的pcie传输接口接收视频串流数据。
11.进一步的,所述将视频串流数据一次封装为ts串流封包后放入缓存之后,还包括对所述视频串流数据按序号排列。
12.进一步的,将加密后串流封包上传至云端服务器的过程包括:
13.将加密后串流封包二次封装为srt封包,并将srt封包转换为udp封包,然后通过可编程芯片的udp传输端口上传至云端服务器。
14.本发明提出了一种srt串流下载加速方法,其特征在于,运行于可编程芯片,所述方法包括:
15.从云端服务器获取加密的串流封包后解析srt协议,然后解密串流封包后放入缓存,同时反馈确认字符至云端服务器;
16.从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据。
17.进一步的,所述从云端服务器获取加密的串流封包后解析srt协议:
18.通过可编程芯片的udp端口获取udp封包形式的加密串流封包;然后将udp封包形式的加密串流封包转换为srt封包形式的加密串流封包;
19.在解析srt协议之后对加密串流封包进行解密。
20.进一步的,所述解密串流封包后放入缓存,同时反馈确认字符至云端服务器的过程包括:
21.对解密串流封包按序号排列,同时将按序号排列的确认字符反馈至云端服务器。
22.进一步的,所述方法还包括从缓存中获取解密的串流封包后进行ts拆解后,通过pcie系统传输视频串流数据。
23.本发明还提出了一种可编程芯片,包括ts封装单元、srt单元和缓存单元;所述ts封装单元与缓存单元通信连接;所述缓存单元与srt单元通信连接;
24.所述ts封装单元用于将视频串流数据封装为ts串流封包,或者将ts串流封包进行进行ts拆解为视频串流数据。
25.所述srt单元用于实现视频串流数据的arq丢包验证、加密和解密,以及封装srt协议和解析srt协议;
26.所述缓存单元实现对所述视频串流数据按序号排列之后临时存储。
27.进一步的,所述芯片还包括pcie传输接口和udp传输接口;
28.所述pcie传输接口用于按照pcie协议接收或者发出视频串流数据;
29.所述udp传输接口用于按照udp协议接收云端服务器的视频串流数据或者上传至云端服务器视频串流数据。
30.发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
31.本发明提出了一种srt串流上传、下载硬件加速方法和可编程芯片,该加速方法运行于可编程芯片,其中上传方法具体包括:获取视频串流数据,并将视频串流数据一次封装为ts串流封包后放入缓存;实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;加密ts串流封包后得到加密后串流封包,将加密后串流封包上传至云端服务器。下载方法具体包括:从云端服务器获取加密的串流封包后解析srt协议,然后解密串流封包后放入缓存,同时反馈确认字符至云端服务器,从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据。基于一种srt串流上传、下载硬件加速方法,本发明还提出了一种可编程芯片。本发明通过硬件的方式实现srt串流的上传和下载,降低了功耗和cpu使用率,降低因加解密计算所产生之延迟。
32.本发明在实现的过程中增加了arq丢包重传机制,与硬件时间高灵敏性,对抗封包遗失与延迟能力更佳。
33.本发明在实现的过程中采用ts封包处理和srt协议处理,ts封包处理和srt协议处理均具有高速处理特性,适合多路8k高传输率之封包处理。
附图说明
34.如图1为本发明实施例1一种srt串流上传的结构连接示意图;
35.如图2为本发明实施例1一种srt串流上传的方法流程示意图;
36.如图3为本发明实施例1中arq丢包重传机制示意图;
37.如图4为本发明实施例1中发送端和接收端缓冲区的较好状态流程图;
38.如图5为本发明实施例1中发送端和接收端缓冲区的较差状态流程图;
39.如图6为本发明实施例2一种srt串流下载的结构连接示意图;
40.如图7为本发明实施例2一种srt串流下载的方法流程示意图;
41.如图8为本发明实施例3一种可编程芯片结构示意图。
具体实施方式
42.下面结合附图和实施方式对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施方式仅用于解释相关内容,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分。
43.需要说明的是,在不冲突的情况下,本公开中的实施方式及实施方式中的特征可以相互组合。下面将参考附图并结合实施方式来详细说明本公开的技术方案。
44.除非另有说明,否则示出的示例性实施方式/实施例将被理解为提供可以在实践中实施本公开的技术构思的一些方式的各种细节的示例性特征。因此,除非另有说明,否则在不脱离本公开的技术构思的情况下,各种实施方式/实施例的特征可以另外地组合、分离、互换和/或重新布置。
45.在附图中使用交叉影线和/或阴影通常用于使相邻部件之间的边界变得清晰。如此,除非说明,否则交叉影线或阴影的存在与否均不传达或表示对部件的具体材料、材料性质、尺寸、比例、示出的部件之间的共性和/或部件的任何其它特性、属性、性质等的任何偏好或者要求。此外,在附图中,为了清楚和/或描述性的目的,可以夸大部件的尺寸和相对尺寸。当可以不同地实施示例性实施例时,可以以不同于所描述的顺序来执行具体的工艺顺序。例如,可以基本同时执行或者以与所描述的顺序相反的顺序执行两个连续描述的工艺。此外,同样的附图标记表示同样的部件。
46.当一个部件被称作“在”另一部件“上”或“之上”、“连接到”或“结合到”另一部件时,该部件可以直接在所述另一部件上、直接连接到或直接结合到所述另一部件,或者可以存在中间部件。然而,当部件被称作“直接在”另一部件“上“、“直接连接到”或“直接结合到”另一部件时,不存在中间部件。为此,术语“连接”可以指物理连接、电气连接等,并且具有或不具有中间部件。
47.本文使用的术语是为了描述具体实施例的目的,而不意图是限制性的。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个(种、者)”和“所述(该)”也意图包
括复数形式。此外,当在本说明书中使用术语“包含”和/或“包括”以及它们的变型时,说明存在所陈述的特征、整体、步骤、操作、部件、组件和/或它们的组,但不排除存在或附加一个或更多个其它特征、整体、步骤、操作、部件、组件和/或它们的组。还要注意的是,如这里使用的,术语“基本上”、“大约”和其它类似的术语被用作近似术语而不用作程度术语,如此,它们被用来解释本领域普通技术人员将认识到的测量值、计算值和/或提供的值的固有偏差。
48.实施例1
49.本发明实施例1提出了本发明提出了一种srt串流上传加速方法,运行于可编程芯片,包括以下步骤:
50.获取视频串流数据,并将视频串流数据一次封装为ts串流封包后放入缓存;
51.实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;
52.加密ts串流封包后得到加密后串流封包,将加密后串流封包上传至云端服务器。
53.本发明获取视频串流数据的方法包括:通过可编程芯片上的pcie传输接口接收视频串流数据。
54.将接收到的视频串流数据先进行切割然后一次封装为ts串流封包后放入缓存之后,还包括对视频串流数据按序号排列,每笔ts串流封包的大小皆为188bytes。
55.将加密后串流封包上传至云端服务器的过程包括:将加密后串流封包二次封装为srt封包,并将srt封包转换为udp封包,然后通过可编程芯片的udp传输端口上传至云端服务器。
56.arq:自动重传请求(automatic repeat-request,arq)是osi模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。arq可能包括停止等待arq协议和连续arq协议,错误检测(error detection)、正面确认(positive acknowledgment)、超时重传(retransmission after timeout)和负面确认及重传(negative acknowledgment and retransmission)等机制。
57.arq的工作机制决定了发送端需要一个重传缓冲区,接收端也需要一个能依次存放数据包的缓冲区。另一方面,srt协议通过设定延时量(latency)统一规定了发送缓冲区和接收缓冲区的最大可使用量。
58.如图3为本发明实施例1中arq丢包重传机制示意图;
59.ts封装单元处理之后会将每笔封包填入序号,缓存单元接收到封包后,依据序号回应ack给视频数据上传端,如图,若封包3丢包了,那么缓存单元接收到封包2后,接着收到的是封包4,因此缓存单元回应的ack依序会是,ack1,ack2,ack4,ack5,因此视频数据上传端就不会收到ack3,因而得知封包3丢包了,因此会进行封包3的重复传送。
60.发送缓冲区的作用是来保存有可能需要重传的数据包,即那些还没有收到肯定应答(ack)的数据包,如果发送端收到了关于某个数据包的肯定应答,该数据包将被从发送端缓冲区踢出。如果一直没接收到回复的ack信号,该数据也不能永远保存在发送端缓冲区中,srt协议规定了保存的最长时间为延时量。
61.如图4为本发明实施例1中发送端和接收端缓冲区的较好状态流程图;我们把延时
量的长度想象成一个同时在发送端和接收端从左向右滑动的窗口,图中的1号至6号数据包都已收到肯定应答(ack),已从发送端缓冲区踢出,7号数据包还保存在缓冲区等待接收方的回复。这是一种较好的传输状态,发送端缓冲区的使用比例很小,大部分数据都已经被及时接收并且收到肯定应答。
62.如图5为本发明实施例1中发送端和接收端缓冲区的较差状态流程图;接收方没有收到3号数据包,并向发送端回复了否定应答(nak),由于种种原因这一过程被延误,导致3号数据包已经处在窗口最左侧,随着窗口的滑动下一步它将被从发送端缓冲区踢出。这种情况下如果3号数据包的重新传输再出现丢失或者延误,该数据包就会丢包,解码端的图像可能也会出现问题。同时我们也注意到图中发送端缓冲区已经被填满,这也表示了一种处于丢包临界点的传输状态。因此发送端缓冲区被占用的比例越少,链路越安全,若发送端缓冲区被占满,链路则很有可能发生丢包。
63.接收缓冲区的作用是将收到的数据包排序(srt协议在srt包头记录了精确的时间戳),排序一方面是解码的需要,另一方面是为了找出未及时到达的数据包,向发送端返回否定应答(nak),并等待重传。图4中接收端的1号数据包已经被送至解码器,2号数据包随着延时量窗口的滑动也即将送至解码器,同时2号至6号数据包都已保存在接收缓存区中,接收缓冲区几乎被数据包填满,这是一种较好的链路状态。图5中这是一种较差的链路状态,接收端未收到3号数据包,并且3号数据包在接收端窗口最左侧,意味着3号数据包很可能被跳过,解码出的图像会出现问题。在这种情况下接收缓冲区数据包较少,原因有可能是丢包或者网络带宽和视频码率不匹配。
64.因此接收缓冲区的理想状态应该是其使用量应该略低于延时量,若接收缓冲区占用量变为零,解码图像很可能会出现问题。
65.该方法是基于一种srt串流上传的结构实现的,如图1给出了本发明实施例1一种srt串流上传的结构连接示意图。包括:pcie传输接口、ts封装单元、srt单元和缓存单元和udp传输接口;
66.pcie传输接口用于按照pcie协议接收视频串流数据;pcie传输接口接收了视频串流数据之后发送至ts封装单元;ts封装单元用于将视频串流数据封装为ts串流封包;所述ts封装单元与缓存单元通信连接;缓存单元实现对所述视频串流数据按序号排列之后临时存储;缓存单元与srt单元通信连接;srt单元用于实现aes资料加密以及arq丢包重传机制处理;最后再通过udp传输接口将加密后封装为srt协议的视频串流数据上传到云端服务器。
67.本技术中pcie传输接口、ts封装单元、srt单元和缓存单元和udp传输接口均位于可编程芯片上。
68.本技术中可编程芯片采用可编程逻辑芯片fpga。本技术保护的范围不局限于实施例1中列举出的芯片,其他可实现可编程的芯片均可以,比如:cpld,单片机等。
69.本技术中:ts:是一种标准数位封装格式,用來传输和储存视频、音讯与频道、节目咨询,应用于数位电视广播系统。
70.如图2为本发明实施例1一种srt串流上传的方法流程示意图;
71.在步骤s200中,通过可编程芯片上的pcie传输接口接收视频串流数据;
72.在步骤s210中,将视频串流数据一次封装为ts串流封包后放入缓存;将dma收到的
视频挡案进行切割并封装成ts串流封包,每笔ts串流封包皆为188bytes,接着将资料传至buffer中。
73.在步骤s220中,实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;每笔串流封包传送至缓存模块时,缓存模块会回传ack,代表确实收到串流封包,若没收到ack,则代表串流封包在传输过程中丢包,因此实时判断是否有接收到依序号排列之ack,。
74.在步骤s230中,将ts串流封包进行aes加密,可决定进行128bit或256bit的aes加密。aes:高级加密标准(英语:advanced encryption standard,缩写:aes),在密码学中又称rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的des,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(nist)于2001年11月26日发布于fips pub 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
75.在步骤s240中,加上封包序号并且封装srt协定。
76.在步骤s250中,将srt封包转换为udp封包,以7个ts串流封包包装成一笔udp封包,然后通过可编程芯片的udp传输端口上传至云端服务器。
77.本发明实施例1提出的一种srt串流上传加速方法通过硬件的方式实现srt串流的上传,降低了功耗和cpu使用率,降低因加解密计算所产生之延迟。
78.本发明实施例1提出的一种srt串流上传加速方法,在实现的过程中增加了arq丢包重传机制,与硬件时间高灵敏性,对抗封包遗失与延迟能力更佳。
79.本发明实施例1提出的一种srt串流上传加速方法,在实现的过程中采用ts封包处理和srt协议处理,ts封包处理和srt协议处理均具有高速处理特性,适合多路8k高传输率之封包处理。
80.实施例2
81.本发明实施例2提出了本发明提出了一种srt串流下载加速方法,运行于可编程芯片,方法具体包括:
82.从云端服务器获取加密的串流封包后解析srt协议,然后解密串流封包后放入缓存,同时反馈确认字符至云端服务器;
83.从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据。
84.从云端服务器获取加密的串流封包后解析srt协议:
85.通过可编程芯片的udp端口获取udp封包形式的加密串流封包;然后将udp封包形式的加密串流封包转换为srt封包形式的加密串流封包;
86.在解析srt协议之后对加密串流封包进行解密。
87.解密串流封包后放入缓存,同时反馈确认字符至云端服务器的过程包括:对解密串流封包按序号排列,同时将按序号排列的确认字符反馈至云端服务器。
88.该方法还包括从缓存中获取解密的串流封包后进行ts拆解后,通过pcie系统传输视频串流数据。
89.该方法是基于一种srt串流下载的结构实现的,如图6为本发明实施例2一种srt串流下载的结构连接示意图;包括:pcie传输接口、ts封装单元、srt单元和缓存单元和udp传输接口;
90.udp传输接口用于从云端服务器获取加密的串流封包;在udp传输接口获取到加密的串流封包之后发送至srt单元;srt单元用于实现加密的串流封包解密以及arq丢包重传机制处理;缓存单元与srt单元通信连接,缓存单元实现对解密的串流封包按序号排列之后临时存储;ts封装单元用于从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据;所述pcie传输接口用于将ts拆解得到视频串流数据传输出去。
91.arq:自动重传请求(automatic repeat-request,arq)是osi模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。arq可能包括停止等待arq协议和连续arq协议,错误检测(error detection)、正面确认(positive acknowledgment)、超时重传(retransmission after timeout)和负面确认及重传(negative acknowledgment and retransmission)等机制。
92.如图3为本发明实施例1中arq丢包重传机制示意图;
93.ts封装单元处理之后会将每笔封包填入序号,缓存单元接收到封包后,依据序号回应ack给视频数据上传端,如图,若封包3丢包了,那么缓存单元接收到封包2后,接着收到的是封包4,因此缓存单元回应的ack依序会是,ack1,ack2,ack4,ack5,因此视频数据上传端就不会收到ack3,因而得知封包3丢包了,因此会进行封包3的重复传送。
94.发送缓冲区的作用是来保存有可能需要重传的数据包,即那些还没有收到肯定应答(ack)的数据包,如果发送端收到了关于某个数据包的肯定应答,该数据包将被从发送端缓冲区踢出。如果一直没接收到回复的ack信号,该数据也不能永远保存在发送端缓冲区中,srt协议规定了保存的最长时间为延时量。
95.如图4为本发明实施例1中发送端和接收端缓冲区的较好状态流程图;我们把延时量的长度想象成一个同时在发送端和接收端从左向右滑动的窗口,图中的1号至6号数据包都已收到肯定应答(ack),已从发送端缓冲区踢出,7号数据包还保存在缓冲区等待接收方的回复。这是一种较好的传输状态,发送端缓冲区的使用比例很小,大部分数据都已经被及时接收并且收到肯定应答。
96.如图5为本发明实施例1中发送端和接收端缓冲区的较差状态流程图;接收方没有收到3号数据包,并向发送端回复了否定应答(nak),由于种种原因这一过程被延误,导致3号数据包已经处在窗口最左侧,随着窗口的滑动下一步它将被从发送端缓冲区踢出。这种情况下如果3号数据包的重新传输再出现丢失或者延误,该数据包就会丢包,解码端的图像可能也会出现问题。同时我们也注意到图中发送端缓冲区已经被填满,这也表示了一种处于丢包临界点的传输状态。因此发送端缓冲区被占用的比例越少,链路越安全,若发送端缓冲区被占满,链路则很有可能发生丢包。
97.接收缓冲区的作用是将收到的数据包排序(srt协议在srt包头记录了精确的时间戳),排序一方面是解码的需要,另一方面是为了找出未及时到达的数据包,向发送端返回否定应答(nak),并等待重传。图4中接收端的1号数据包已经被送至解码器,2号数据包随着延时量窗口的滑动也即将送至解码器,同时2号至6号数据包都已保存在接收缓存区中,接收缓冲区几乎被数据包填满,这是一种较好的链路状态。图5中这是一种较差的链路状态,接收端未收到3号数据包,并且3号数据包在接收端窗口最左侧,意味着3号数据包很可能被跳过,解码出的图像会出现问题。在这种情况下接收缓冲区数据包较少,原因有可能是丢包
或者网络带宽和视频码率不匹配。
98.因此接收缓冲区的理想状态应该是其使用量应该略低于延时量,若接收缓冲区占用量变为零,解码图像很可能会出现问题。
99.本技术中pcie传输接口、ts封装单元、srt单元和缓存单元和udp传输接口均位于可编程芯片上。
100.本技术中可编程芯片采用可编程逻辑芯片fpga。本技术保护的范围不局限于实施例2中列举出的芯片,其他可实现可编程的芯片均可以,比如:cpld,单片机等。
101.如图7为本发明实施例2一种srt串流下载的方法流程示意图;
102.在步骤s700中,从云端服务器获取加密的串流封包,并解译udp协定。
103.在步骤s710中,解译srt协定。
104.在步骤s720中,将封包进行aes解密,由设定资讯可知为aes128或aes256解密。
105.在步骤s730中,读取封包之序号,并依序号将资料存入对应之buffer位置,同时发送ack回云端服务器。
106.在步骤s740中,拆解ts串流,获取视频数据。
107.在步骤s750中,将获取的视频数据通过pcie传输接口下载。
108.本发明实施例2提出的一种srt串流下载加速方法通过硬件的方式实现srt串流的上传,降低了功耗和cpu使用率,降低因加解密计算所产生之延迟。
109.本发明实施例2提出的一种srt串流下载加速方法,在实现的过程中增加了arq丢包重传机制,与硬件时间高灵敏性,对抗封包遗失与延迟能力更佳。
110.本发明实施例2提出的一种srt串流下载加速方法,在实现的过程中采用ts封包处理和srt协议处理,ts封包处理和srt协议处理均具有高速处理特性,适合多路8k高传输率之封包处理。
111.实施例3
112.基于本发明实施例1提出的一种srt串流上传加速方法和本发明实施例2一种srt串流下载加速方法,本发明实施例3还提出了一种可编程芯片,如图8为本发明实施例3一种可编程芯片结构示意图。
113.该芯片包括:ts封装单元、srt单元和缓存单元;所述ts封装单元与缓存单元通信连接;所述缓存单元与srt单元通信连接;
114.ts封装单元用于将视频串流数据封装为ts串流封包,或者将ts串流封包进行进行ts拆解为视频串流数据。
115.srt单元用于实现视频串流数据的arq丢包验证、加密和解密,以及封装srt协议和解析srt协议;
116.缓存单元实现对所述视频串流数据按序号排列之后临时存储。
117.芯片还包括pcie传输接口和udp传输接口;
118.pcie传输接口用于按照pcie协议接收或者发出视频串流数据;
119.udp传输接口用于按照udp协议接收云端服务器的视频串流数据或者上传至云端服务器视频串流数据。
120.本技术实施例3提供的一种可编程芯片中用于实现本发明实施例1中一种srt串流上传加速方法和本发明实施例2一种srt串流下载加速方法。
121.在一种srt串流上传加速方法实现的过程中:一种可编程芯片内部各个单元的功能为:pcie传输接口用于按照pcie协议接收视频串流数据;pcie传输接口接收了视频串流数据之后发送至ts封装单元;ts封装单元用于将视频串流数据封装为ts串流封包;所述ts封装单元与缓存单元通信连接;缓存单元实现对所述视频串流数据按序号排列之后临时存储;缓存单元与srt单元通信连接;srt单元用于实现aes资料加密以及arq丢包重传机制处理;最后再通过udp传输接口将加密后封装为srt协议的视频串流数据上传到云端服务器。
122.一种可编程芯片中加入自动重传请求arq(automatic repeat-request,arq),自动重传请求是osi模型中数据链路层和传输层的错误纠正协议之一。它通过使用确认和超时这两个机制,在不可靠服务的基础上实现可靠的信息传输。如果发送方在发送后一段时间之内没有收到确认帧,它通常会重新发送。arq可能包括停止等待arq协议和连续arq协议,错误检测(error detection)、正面确认(positive acknowledgment)、超时重传(retransmission after timeout)和负面确认及重传(negative acknowledgment and retransmission)等机制。
123.如图3为本发明实施例1中arq丢包重传机制示意图;
124.ts封装单元处理之后会将每笔封包填入序号,缓存单元接收到封包后,依据序号回应ack给视频数据上传端,如图,若封包3丢包了,那么缓存单元接收到封包2后,接着收到的是封包4,因此缓存单元回应的ack依序会是,ack1,ack2,ack4,ack5,因此视频数据上传端就不会收到ack3,因而得知封包3丢包了,因此会进行封包3的重复传送。
125.发送缓冲区的作用是来保存有可能需要重传的数据包,即那些还没有收到肯定应答(ack)的数据包,如果发送端收到了关于某个数据包的肯定应答,该数据包将被从发送端缓冲区踢出。如果一直没接收到回复的ack信号,该数据也不能永远保存在发送端缓冲区中,srt协议规定了保存的最长时间为延时量。
126.如图4为本发明实施例1中发送端和接收端缓冲区的较好状态流程图;我们把延时量的长度想象成一个同时在发送端和接收端从左向右滑动的窗口,图中的1号至6号数据包都已收到肯定应答(ack),已从发送端缓冲区踢出,7号数据包还保存在缓冲区等待接收方的回复。这是一种较好的传输状态,发送端缓冲区的使用比例很小,大部分数据都已经被及时接收并且收到肯定应答。
127.如图5为本发明实施例1中发送端和接收端缓冲区的较差状态流程图;接收方没有收到3号数据包,并向发送端回复了否定应答(nak),由于种种原因这一过程被延误,导致3号数据包已经处在窗口最左侧,随着窗口的滑动下一步它将被从发送端缓冲区踢出。这种情况下如果3号数据包的重新传输再出现丢失或者延误,该数据包就会丢包,解码端的图像可能也会出现问题。同时我们也注意到图中发送端缓冲区已经被填满,这也表示了一种处于丢包临界点的传输状态。因此发送端缓冲区被占用的比例越少,链路越安全,若发送端缓冲区被占满,链路则很有可能发生丢包。
128.接收缓冲区的作用是将收到的数据包排序(srt协议在srt包头记录了精确的时间戳),排序一方面是解码的需要,另一方面是为了找出未及时到达的数据包,向发送端返回否定应答(nak),并等待重传。图4中接收端的1号数据包已经被送至解码器,2号数据包随着延时量窗口的滑动也即将送至解码器,同时2号至6号数据包都已保存在接收缓存区中,接收缓冲区几乎被数据包填满,这是一种较好的链路状态。图5中这是一种较差的链路状态,
接收端未收到3号数据包,并且3号数据包在接收端窗口最左侧,意味着3号数据包很可能被跳过,解码出的图像会出现问题。在这种情况下接收缓冲区数据包较少,原因有可能是丢包或者网络带宽和视频码率不匹配。
129.因此接收缓冲区的理想状态应该是其使用量应该略低于延时量,若接收缓冲区占用量变为零,解码图像很可能会出现问题。
130.一种srt串流上传加速方法具体的实现流程为:获取视频串流数据,并将视频串流数据一次封装为ts串流封包后放入缓存;实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;加密ts串流封包后得到加密后串流封包,将加密后串流封包上传至云端服务器。
131.如图2为本发明实施例1一种srt串流上传的方法具体流程示意图;
132.在步骤s200中,通过可编程芯片上的pcie传输接口接收视频串流数据;
133.在步骤s210中,将视频串流数据一次封装为ts串流封包后放入缓存;将dma收到的视频挡案进行切割并封装成ts串流封包,每笔ts串流封包皆为188bytes,接着将资料传至buffer中。
134.在步骤s220中,实时判断缓存中是否接收到ts串流封包按序号排列的确认字符,在判断接收到确认字符的前提下,从缓存中获取对应的ts串流封包;每笔串流封包传送至缓存模块时,缓存模块会回传ack,代表确实收到串流封包,若没收到ack,则代表串流封包在传输过程中丢包,因此实时判断是否有接收到依序号排列之ack,。
135.在步骤s230中,将ts串流封包进行aes加密,可决定进行128bit或256bit的aes加密。
136.在步骤s240中,加上封包序号并且封装srt协定。
137.在步骤s250中,将srt封包转换为udp封包,以7个ts串流封包包装成一笔udp封包,然后通过可编程芯片的udp传输端口上传至云端服务器。
138.在一种srt串流下载加速方法实现的过程中,一种可编程芯片内部各个单元的功能为:udp传输接口用于从云端服务器获取加密的串流封包;在udp传输接口获取到加密的串流封包之后发送至srt单元;srt单元用于实现加密的串流封包解密以及arq丢包重传机制处理;缓存单元与srt单元通信连接,缓存单元实现对解密的串流封包按序号排列之后临时存储;ts封装单元用于从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据;所述pcie传输接口用于将ts拆解得到视频串流数据传输出去。
139.一种srt串流下载加速方法具体的实现流程为:从云端服务器获取加密的串流封包后解析srt协议,然后解密串流封包后放入缓存,同时反馈确认字符至云端服务器;从缓存中获取解密的串流封包后进行ts拆解得到视频串流数据如图7为本发明实施例2一种srt串流下载的方法流程示意图;
140.在步骤s700中,从云端服务器获取加密的串流封包,并解译udp协定。
141.在步骤s710中,解译srt协定。
142.在步骤s720中,将封包进行aes解密,由设定资讯可知为aes128或aes256解密。
143.在步骤s730中,读取封包之序号,并依序号将资料存入对应之buffer位置,同时发送ack回云端服务器。
144.在步骤s740中,拆解ts串流,获取视频数据。
145.在步骤s750中,将获取的视频数据通过pcie传输接口下载。
146.本发明实施例3提出的一种可编程芯片,通过硬件的方式实现srt串流的上传和下载,降低了功耗和cpu使用率,降低因加解密计算所产生之延迟。
147.本发明实施例3提出的一种可编程芯片,在实现的过程中增加了arq丢包重传机制,与硬件时间高灵敏性,对抗封包遗失与延迟能力更佳。
148.本发明实施例3提出的一种可编程芯片,在实现的过程中采用ts封包处理和srt协议处理,ts封包处理和srt协议处理均具有高速处理特性,适合多路8k高传输率之封包处理。
149.在本说明书的描述中,参考术语“一个实施方式/方式”、“一些实施方式/方式”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施方式/方式或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施方式/方式或示例中。在本说明书中,对上述术语的示意性表述不必须的是相同的实施方式/方式或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施方式/方式或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施方式/方式或示例以及不同实施方式/方式或示例的特征进行结合和组合。
150.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
151.本领域的技术人员应当理解,上述实施方式仅仅是为了清楚地说明本公开,而并非是对本公开的范围进行限定。对于所属领域的技术人员而言,在上述公开的基础上还可以做出其它变化或变型,并且这些变化或变型仍处于本公开的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献