码流发送设备、码流发送方法及码流发送系统与流程

文档序号:23624668发布日期:2021-01-12 10:36阅读:85来源:国知局
码流发送设备、码流发送方法及码流发送系统与流程

本发明涉及码流传输技术领域,具体而言,涉及一种码流发送设备、码流发送方法及码流发送系统。



背景技术:

在音视频分布式系统中,视频码流数据由发送端传输到接收端,再由接收端将视频码流数据传输到显示屏上进行显示。接收端在切换信号源视频时,本质上是向发送端发送码流请求,如果接收端与发送端对码流请求的协议交互过多或发送端对接收端的请求处理过慢,将导致发送端的视频不能在显示屏上快速显示出来,表现为大屏开窗响应慢、预案调取迟钝等。

在现有技术中,接收端在收到控制端的具体操作命令(如开窗、切源、调取预案等)后,此时,接收端需要向发送端请求相对应的视频码流。如图1所示,接收端中的第二主控芯片使用tcp/ip协议与发送端中的第一主控芯片建立tcp连接,然后,接收端中的第二主控芯片向发送端中的第一主控芯片发送码流请求,发送端中的第一主控芯片将收到的码流请求、其他类型的通信控制信息和其他接收端的码流请求放在一个缓冲队列中,然后逐条对缓冲队列中的请求、控制信息进行响应。这样的处理方式无疑会严重影响码流请求的响应速度,进而影响整个音视频分布式系统的码流请求效率。



技术实现要素:

本申请实施例的目的在于提供一种码流发送设备、码流发送方法及码流发送系统,以改善上述技术问题。

为实现上述目的,本申请提供如下技术方案:

第一方面,本申请实施例提供一种码流发送设备,包括:

第一主控芯片,用于接收多种通信控制信息,并将每一通信控制信息添加到第一主控芯片内的第一缓冲队列中;

第一码流处理芯片,与所述第一主控芯片连接,用于接收码流接收设备的码流请求,并将所述码流请求添加到第一码流处理芯片内的第二缓冲队列中;

其中,所述第一主控芯片用于依次响应所述第一缓冲队列中的每一通信控制信息,所述第一码流处理芯片用于依次响应所述第二缓冲队列中的每一码流请求;所述第一主控芯片具体用于在响应所述第一缓冲队列中的每一通信控制信息后将响应结果发给对应的控制设备和/或码流接收设备,以使所述控制设备和/或所述码流接收设备根据所述响应结果确定是否发送码流请求;所述第一码流处理芯片具体用于在响应所述码流请求时,将所述码流请求所请求的码流发送给对应的码流接收设备。

在上述技术方案中,在码流发送设备侧采用第一主控芯片对通信控制信息进行处理以及采用第一码流处理芯片对码流请求进行处理,同时,使用独立的两个缓冲队列,在第一主控芯片内设第一缓冲队列,在第一码流处理芯片内设第二缓冲队列,从而将码流请求与其他的通信控制信息完全分开,第一主控芯片仅需关注对第一缓冲队列中的通信控制信息的处理,第一码流处理芯片仅需关注对第二缓冲队列中码流请求的处理,避免了第一主控芯片的处理线程因处理通信控制信息而无法及时处理码流请求的问题,而且,将码流请求与其他通信控制信息分开后,对后者的响应不会导致前者被延迟响应,从而能完全保证对码流请求的快速响应,提高了码流请求的效率。

在一种可选的实施方式中,所述第一码流处理芯片具体用于接收所述码流接收设备通过mac层协议发来的mac帧,所述mac帧的数据域中携带所述码流请求,以及具体用于从所述mac帧中提取得到所述码流请求。

由于第二码流处理芯片与第一码流处理芯片间通过mac层协议传输码流请求,因此在发送码流请求时,不需要通过tcp/ip层实现,大大降低了发送端和接收端对协议的解析过程,码流请求可以更快到达第一码流处理芯片,从而可以达到快速向码流发送设备进行请求的目的,而且,第一码流处理芯片将码流请求加入独立的第二缓冲队列,码流请求与通信控制信息请求完全分开,避免了处理线程因处理通信控制信息而无法处理码流请求的问题,能完全保证对码流请求的快速响应,进而可以提高码流传输的效率。

在一种可选的实施方式中,所述通信控制信息包括查询控制指令,所述第一主控芯片用于在响应所述第一缓冲队列中的所述查询控制指令时,查询自身的状态和第一码流处理芯片的状态,得到状态信息,并将所述状态信息发给对应的控制设备和/或码流接收设备。

在上述实施方式中,第一主控芯片在响应通信控制信息后,得到的响应结果包括码流发送设备的状态信息,以便控制设备或码流接收设备根据该响应结果确定是否发起码流请求。

第二方面,本申请实施例提供一种码流发送方法,包括:第一主控芯片接收通信控制信息,并将所述通信控制信息添加到第一主控芯片内的第一缓冲队列中;第一主控芯片依次响应第一缓冲队列中的每一通信控制信息,并将响应结果发给对应的控制设备和/或码流接收设备;第一码流处理芯片接收码流接收设备发来的码流请求,并将所述码流请求添加到第一码流处理芯片内的第二缓冲队列中,所述码流请求为基于所述响应结果发来的;第一码流处理芯片依次响应所述第二缓冲队列中每一码流所对应的码流请求,并在响应所述码流请求时,将所述码流请求所请求的码流发送给对应的码流接收设备。

在一种可选的实施方式中,所述第一码流处理芯片接收码流接收设备发来的码流请求,包括:第一码流处理芯片接收码流接收设备通过mac层协议发来的mac帧,所述mac帧的数据域中携带所述码流请求;第一码流处理芯片从所述mac帧中提取得到所述码流请求。

在一种可选的实施方式中,所述通信控制信息包括查询控制指令;所述第一主控芯片依次响应第一缓冲队列中的每一通信控制信息,并将响应结果发给对应的控制设备和/或码流接收设备,包括:第一主控芯片在响应所述第一缓冲队列中的所述查询控制指令时,查询自身的状态以及第一码流处理芯片的状态,得到状态信息;第一主控芯片将所述状态信息发给对应的控制设备和/或码流接收设备。

在一种可选的实施方式中,所述第二缓冲队列中包括对多个不同码流的码流请求,每一码流所对应的码流请求的数目大于等于0,所述第一码流处理芯片依次响应所述第二缓冲队列中每一码流所对应的码流请求,包括:所述第一码流处理芯片在响应所述多个不同码流中的码流i的码流请求时,若所述码流i所对应的码流请求的数目为0个,则跳转响应所述多个不同码流中的码流i+1的码流请求;若所述码流i所对应的码流请求的数目为1个,则将所述码流i以单播方式发送给对应的码流接收设备;若所述码流i所对应的码流请求的数目为2个或2个以上,则将所述码流i以组播方式发送给对应的码流接收设备。

第三方面,本申请实施例提供一种码流发送系统,包括:至少一个码流发送设备、至少一个码流接收设备、控制设备以及交换机,所述至少一个码流发送设备和所述至少一个码流接收设备均与所述交换机连接,所述控制设备与所述至少一个码流接收设备中的每一码流接收设备分别连接;每一所述码流发送设备包括第一主控芯片和第一码流处理芯片,每一所述码流接收设备包括第二主控芯片和第二码流处理芯片;所述第二主控芯片用于向第一主控芯片发送通信控制信息以及向第二码流处理芯片发送码流请求,所述第二码流处理芯片用于向所述第一码流处理芯片发送码流请求;所述码流发送设备中的第一主控芯片以及第一码流处理芯片用于分别执行如第二方面所述的方法中的对应步骤。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了现有技术中接收端向发送端请求视频码流数据的示意图;

图2示出了本申请实施例提供的码流发送系统的示意图;

图3示出了本申请实施例提供的码流发送设备与码流接收设备间的码流发送流程的示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

如图2所示,本申请实施例提供一种码流发送系统,该码流发送系统包括:码流发送设备110、码流接收设备120、显示屏130以及控制设备140,其中,码流发送设备110与码流接收设备120连接,码流接收设备120分别与控制设备140和显示屏130连接。码流发送设备110上设有信号源接口,码流发送设备110通过该信号源接口可与至少一个信号源连接,并能够获取相连的信号源传来的码流数据,该码流发送设备110可将信号源传来的码流数据发送给相连的码流接收设备120,其中,码流数据可能是视频码流、音频码流或者音视频码流。码流接收设备120设有信号输出接口以及控制接口,码流接收设备120通过信号输出接口与显示屏130相连,用于将接收的码流数据输出给显示屏130,从而在显示屏130上显示对应的视频画面,码流接收设备120通过控制接口与控制设备140连接,用于接收控制设备140发来的具体控制指令,如开窗、切源、调取预案等指令。如图2所示,码流发送系统中的码流接收设备120的数量为至少一个,码流发送设备110的数量为至少一个,至少一个码流接收设备120和至少一个码流发送设备110通过交换机150连接,形成网状结构。若存在多个码流接收设备120,则每个码流接收设备120均连接一个控制设备140以及一个显示屏130,多个码流接收设备120所连的控制设备140和显示屏130可以各不相同,也可以部分码流接收设备120连接同一控制设备140,以及部分码流接收设备120连接同一显示屏130,当然,也可以全部码流接收设备120均连接同一控制设备和同一显示屏。

本申请实施例提供一种码流发送设备110,包括:第一主控芯片和第一码流处理芯片,其中,第一主控芯片和第一码流处理芯片连接,例如,两者可通过内部总线连接,或者通过其他的任一种方式连接,第一主控芯片与第一码流处理芯片之间可进行数据传输,例如,第一主控芯片可从第一码流处理芯片处获取第一码流处理芯片的状态。

具体的,第一主控芯片用于接收多种通信控制信息,并将每一通信控制信息添加到第一主控芯片内的第一缓冲队列中,其中,通信控制信息可以是由控制设备直接发给第一主控芯片,也可以是控制设备通过码流接收设备发给第一主控芯片,第一主控芯片用于依次响应第一缓冲队列中的每一通信控制信息,并将响应结果发给对应的控制设备和/或码流接收设备,以使控制设备和/或码流接收设备根据该响应结果确定是否发送码流请求。第一码流处理芯片用于接收码流接收设备传来的码流请求,并将每一码流请求添加到第一码流处理芯片内的第二缓冲队列中,第一码流处理芯片用于依次响应第二缓冲队列中的每一码流请求。其中,第一码流处理芯片在响应第二缓冲队列中的任一码流请求时,将该码流请求所请求的码流发给对应的码流接收设备。

本申请实施例提供一种码流接收设备120,包括:第二主控芯片和第二码流处理芯片,其中,第二主控芯片和第二码流处理芯片连接,例如,两者可通过内部总线连接,或者通过其他的任一种方式连接,第二主控芯片与第二码流处理芯片之间可进行数据传输,例如,第二主控芯片向第二码流处理芯片发送码流请求。

具体的,第二主控芯片用于接收控制设备发送的具体操作指令,并对具体操作指令进行解析,得到操作命令以及相对应的码流请求,例如,控制设备发送的具体操作指令为开窗指令,第二主控芯片对其解析得到开窗命令以及所请求进行开窗的码流(如请求码流1)。第二主控芯片将码流请求发给第二码流处理芯片,第二码流处理芯片再将该码流请求发给码流发送设备中的第一码流处理芯片,第一码流处理芯片将所请求的码流1的数据发回给第二码流处理芯片,第二码流处理芯片将码流1的数据输出给显示屏。

在本实施例中,第一主控芯片和第二主控芯片可以是cpu芯片。

进一步的,本申请实施例提供一种码流发送方法,下文基于图3所示的码流发送设备110与码流接收设备120间的码流发送流程对本方法进行说明,请参照图3所示的示意图,该方法包括如下步骤:

步骤s200:控制设备或第二主控芯片向第一主控芯片发送通信控制信息。

步骤s210:第一主控芯片每次收到通信控制信息后,将其添加到第一主控芯片内的第一缓冲队列中。

步骤s220:第一主控芯片依次响应第一缓冲队列中的每一通信控制信息,并将该通信控制信息的响应结果发给对应的控制设备和/或码流接收设备。

在一种实施例中,控制设备向第一主控芯片发送通信控制信息,第一主控芯片将该通信控制信息添加到第一缓冲队列中,在响应至该通信控制信息时,将响应结果发送给该控制设备。

在一种实施例中,控制设备向码流接收设备的第二主控芯片发送通信控制信息,由第二主控芯片向第一主控芯片发送通信控制信息,第一主控芯片将该通信控制信息添加到第一缓冲队列中,在响应至该通信控制信息时,将响应结果发送给该第二主控芯片。

在本实施例中,码流发送设备与码流接收设备之间可先基于tcp/ip协议建立通信连接,在建立通信连接后,第二主控芯片可向第一主控芯片传输通信控制信息流。在整个通信过程中,第二主控芯片持续向第一主控芯片传输多种不同的通信控制信息,形成不同类型的通信控制信息流。

其中,多种不同的通信控制信息可以包括但不限于:查询控制指令、参数配置指令、变动通知信息等。查询控制指令用于指示码流发送设备查询自身状态,比如分辨率是否正常、usb或者视频线是否连接等,第一主控芯片在执行该查询控制指令后,将获取自身的状态和第一码流处理的状态,得到状态信息;参数配置指令包括使码流发送设备正常工作所需的必要的参数配置信息(例如包括编码模式参数设置、码率设置等),第一主控芯片在执行该参数配置指令后完成配置;变动通知信息用于在通信双方节点中的任一方节点出现某些外界变化时对另一方节点进行通知,例如,码流发送设备的分辨率出现变化后,通过变动通知信息告知码流接收设备,码流接收设备根据该变动通知信息,作相应的开窗参数配置,或者在码流接收设备出现变化时,由码流接收设备向码流发送设备发送变动通知信息。

在第一主控芯片内设有第一缓冲队列,第一主控芯片每收到一个通信控制信息,就将其加入到第一缓冲队列中,第一主控芯片逐条响应第一缓冲队列中的每一通信控制信息。

可选的,第一主控芯片收到的多种通信控制信息中包括查询控制指令,第一主控芯片在响应第一缓冲队列中的查询控制指令后,查询得到自身的状态和第一码流处理芯片的状态,得到状态信息。第一主控芯片将该状态信息发给对应的控制设备和/或码流接收设备。

控制设备在收到该响应结果后,根据该响应结果确定是否向码流发送设备发送码流请求。控制设备生成的具体操作指令中包括操作命令和相对应的码流请求,若响应结果表征码流发送设备工作正常,则控制设备生成码流请求并得到具体操作指令,将该具体操作指令发送给码流接收设备中的第二主控芯片,若响应结果表征码流发送设备工作不正常,则不生成码流请求,此时,控制设备可以正常生成操作命令,并发给第二主控芯片执行该操作命令,也可码流请求和操作命令均不生成。

码流接收设备在收到该响应结果后,根据该响应结果确定是否向码流发送设备发送码流请求。第二主控芯片接收控制设备的具体操作指令,解析该具体操作指令,得到码流请求,并根据收到的响应结果判断码流发送设备工作是否正常,若正常,则向第二码流处理芯片发送该码流请求,由第二码流处理芯片将该码流请求发给第一码流处理芯片;若不正常,则不向第二码流处理芯片发送该码流请求。

一般情况下,第一主控芯片的响应结果可以仅发给控制设备,由控制设备根据该响应结果确定是否生成码流请求。在以上两种实施例中,第一主控芯片可以将响应结果同时发给控制设备和码流接收设备中的第二主控芯片,若控制设备与第一主控芯片的连接正常,即控制设备收到第一主控芯片发来的响应结果,则可以正常根据该响应结果确定是否生成码流请求,若控制设备与第一主控芯片的连接断开,即控制设备未收到第一主控芯片的响应结果,仍有第二主控芯片获得第一主控芯片的响应结果,此时,可以由第二主控芯片根据该响应结果确定是否生成码流请求,从而保障本实施例的码流发送方法的正常运作。

步骤s230:控制设备向第二主控芯片发送具体操作指令。

步骤s240:第二主控芯片接收控制设备发送的具体操作指令,并对具体操作指令进行解析,得到码流请求,并将码流请求发给第二码流处理芯片。

步骤s250:第二码流处理芯片将该码流请求发给第一码流处理芯片。

步骤s260:第一码流处理芯片接收该码流请求,并将该码流请求添加到第一码流处理芯片内的第二缓冲队列中。

步骤s270:第一码流处理芯片依次响应第二缓冲队列中的每一码流请求,并在响应到该码流请求时,将该码流请求所请求的码流发给第二码流处理芯片。

第一码流处理芯片在响应第二缓冲队列中的任一码流请求时,确定该码流请求所请求的码流,并将码流发给第二码流处理芯片。

步骤s280:第二码流处理芯片在收到码流后,将码流输出至相连的显示屏。

在步骤s230~s280中,控制设备首先向码流接收设备的第二主控芯片发送具体操作指令,第二主控芯片对该具体操作指令进行解析,得到操作命令以及相对应的码流请求,第二主控芯片根据该码流请求向码流发送设备请求码流,并根据得到的码流执行该操作命令。

第二主控芯片将解析出的码流请求通过内部连接通道发给第二码流处理芯片,然后,第二码流处理芯片将收到的码流请求发给码流发送设备中的第一码流处理芯片。在一种具体实施例中,第二码流处理芯片通过mac层协议将码流请求封装在mac帧的数据域中,并将封装后的mac帧发给第一码流处理芯片。码流发送设备中的第一码流处理芯片在接收到该mac帧后,从该mac帧中提取得到码流请求。

可以理解的,由于第二码流处理芯片与第一码流处理芯片间通过mac层协议传输码流请求,因此在发送码流请求时,不需要通过tcp/ip层实现,大大降低了发送端和接收端对协议的解析过程,码流请求可以更快到达第一码流处理芯片,从而可以达到快速向码流发送设备进行请求的目的,而且,第一码流处理芯片将码流请求加入独立的第二缓冲队列,码流请求与通信控制信息请求完全分开,避免了处理线程因处理通信控制信息而无法处理码流请求的问题,能完全保证对码流请求的快速响应,进而可以提高码流传输的效率。当然,本实施例也不排除第二码流处理芯片与第一码流处理芯片可通过tcp/ip协议传输码流请求。

在第一码流处理芯片内设有第二缓冲队列,第一码流处理芯片每收到一个码流请求,就将其加入到第二缓冲队列中,第二缓冲队列中包括与该码流发送设备相连的每一码流接收设备中的第二码流处理芯片发来的码流请求。第一码流处理芯片依次响应第二缓冲队列中的每一码流请求,其中,第二缓冲队列中包括对多个不同码流的码流请求,如,对于码流1,同时有多个码流接收设备发起请求,对于码流2,同时有多个码流接收设备发起请求,第一码流处理芯片先响应码流1的多个码流请求,然后响应码流2的多个码流请求,然后响应码流3的多个码流请求。

在具体实施例中,每一码流所对应的码流请求的数目大于等于0,在图3中,第二缓冲队列中的“码流请求1”表示对码流1的所有码流请求,“码流请求1”表示对码流2的所有码流请求,“码流请求3”及“码流请求4”的含义相同。第一码流处理芯片在响应多个不同码流中的码流i的码流请求时,若码流i所对应的码流请求的数目为0个,则跳转响应多个不同码流中的码流i+1的码流请求,如当前没有码流接收设备请求码流1,则可以略过码流1,直接响应码流2对应的码流请求,在响应之前,也需对码流2所对应的码流请求的数目进行判断。若码流i所对应的码流请求的数目为1个,则将码流i以单播方式发送给对应的码流接收设备,如当前仅有一个码流接收设备请求码流1,则将码流1以单播方式发给该码流接收设备。若码流i所对应的码流请求的数目为2个或2个以上,则将码流i以组播方式发送给对应的码流接收设备,如当前有多个码流接收设备请求码流1,则将码流1以组播方式同时发给这多个码流接收设备。

进一步的,第一码流处理芯片将码流发给第二码流处理芯片后,第二码流处理芯片将码流通过信号输出接口传输给相连的显示屏,该显示屏获得该码流后显示对应的视频画面或者播放对应的音频。

综上所述,本申请实施例提供的码流发送方法,在码流发送设备侧采用第一主控芯片对通信控制信息进行处理以及采用第一码流处理芯片对码流请求进行处理,同时,使用独立的两个缓冲队列,在第一主控芯片内设第一缓冲队列,在第一码流处理芯片内设第二缓冲队列,从而将码流请求与其他的通信控制信息完全分开,第一主控芯片仅需关注对第一缓冲队列中的通信控制信息的处理,第一码流处理芯片仅需关注对第二缓冲队列中码流请求的处理,既避免了第一主控芯片的处理线程因处理通信控制信息而无法及时处理码流请求的问题,又大幅减轻了第一主控芯片的负担,而且,将码流请求与其他通信控制信息分开后,对后者的响应不会导致前者被延迟响应,从而能完全保证对码流请求的快速响应,提高了码流请求的效率,在显示屏上表现为开窗响应快速、切源快速等。进一步的,由于对码流请求的传输是基于mac层协议,在传输码流请求时不需要进行基于tcp/ip协议的交互流程,使请求的发送可以更简单、更快速。

通过对该技术方案的实际应用测试,在进行大屏开窗、预案调取时码流发送设备均能快速响应,在显示屏上没有操作延迟感,具有较好的应用前景,可以广泛推广应用。

本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被运行时执行本实施例提供的码流发送方法中第一主控芯片或第一码流处理芯片所执行的步骤。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

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