发明内容
有鉴于此,本发明提供一种视频解码方法,以解决客户端解码压力过大的问题。
与上述方法相对应,本发明还提出一种客户端、视频服务器以及监控系统。
本发明的目的及解决其技术问题是采用以下技术方案来实现的。依据本发明提出的一种视频编解码方法,包括:步骤S11.客户端将其应用的窗格配置为活动窗格和休眠窗格;步骤S12.通过所述休眠窗格接收视频流时,其对该视频流的基础帧解码。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的视频编解码方法,还包括:步骤S13.所述客户端将每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送至视频服务器;步骤S14.所述视频服务器根据全部客户端发送来的每一应用窗格的信息和各应用窗格与编码器通道的对应情况进行判断,如果编码器某一通道发出的视频流全部发送至休眠窗格,则视频服务器通知编码器的该通道在预定时间内至少编一个基础帧。
前述的视频编解码方法,步骤S13中,所述客户端将每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送至视频服务器的步骤包括:步骤S131.所述客户端将其所有休眠窗格的窗格号发送至视频服务器,使所述视频服务器记录所述客户端的用户名和其所有休眠窗格号;步骤S132.发送每一应用窗格的实况消息至视频服务器,所述实况消息包括:该窗格对应的编码器通道号、该窗格所在客户端的用户名以及该窗格号。
前述的视频编解码方法,步骤S131之后还包括:所述视频服务器发送确认消息至所述客户端。
前述的视频编解码方法,步骤S13中,所述客户端将每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送至视频服务器的步骤具体为:发送每一应用窗格的通告消息至视频服务器,所述通告消息包括:标记信息、该窗格所在客户端的用户名、该窗格的窗格号和该窗格对应的编码器通道号,其中所述标记信息用于标识该窗格是否为休眠窗格。
本发明的目的及解决其技术问题另外还采用以下技术方案来实现。依据本发明提出的一种客户端,包括多个解码器,其特征在于,所述解码器配置为活动解码器和休眠解码器,所述休眠解码器对于接收到的视频流解码基础帧。
本发明的目的及解决其技术问题另外再采用以下技术方案来实现。依据本发明提出的一种视频服务器,用于控制编码器通道发送视频流至上述的客户端,包括:判断模块,用于根据全部客户端发送来的每一应用解码器的信息和各应用解码器与编码器通道的对应情况判断编码器某一通道发出的视频流是否全部发送至所述休眠解码器;控制模块,与所述判断模块连接,若判断模块发现编码器某一通道发出的视频流全部发送至休眠解码器,则其通知编码器的该通道在预定时间内至少编一个基础帧。
本发明的目的及解决其技术问题还可采用以下技术措施进一步实现。
前述的视频服务器,所述判断模块接收到的应用解码器的信息和各应用解码器与编码器通道的对应情况包括:所有休眠解码器的编号和各解码器的实况消息,所述实况消息包括:该解码器对应的编码器通道号、该解码器所在客户端的用户名以及该解码器的编号。
前述的视频服务器,所述判断模块接收到的应用解码器的信息和各应用解码器与编码器通道的对应情况为各解码器的通告消息,所述通告消息包括:标记信息、该解码器所在客户端的用户名、该解码器的编号和该解码器对应的编码器通道号,其中所述标记信息用于标识该解码器是否为休眠解码器。
前述的视频服务器,所述客户端发送至所述视频服务器的配置信息为各解码器的通告消息,所述通告消息包括:标记信息、该解码器所在客户端的用户名、该解码器的编号和该解码器对应的编码器通道号,其中所述标记信息用于标识该解码器是否为休眠解码器。
本发明的目的及解决其技术问题另外再采用以下技术方案来实现。依据本发明提出的一种监控系统,包括编码器、视频服务器和客户端,所述视频服务器控制所述编码器通道发送视频流至所述客户端,所述客户端包括:多个解码器,所述解码器配置为活动解码器和休眠解码器,所述休眠解码器对于接收到的视频流解码基础帧;所述视频服务器包括:判断模块,用于根据全部客户端发送来的每一应用解码器的信息和各应用解码器与编码器通道的对应情况判断编码器某一通道发出的视频流是否全部发送至所述休眠解码器;控制模块,与所述判断模块连接,若判断模块发现编码器某一通道发出的视频流全部发送至休眠解码器,则其通知编码器的该通道在预定时间内至少编一个基础帧。
由上述技术方案可知,本发明具有以下有益效果:
1、本发明通过对客户端的多窗格进行差异化的解码配置,配置客户端的多窗格为活动窗格和休眠窗格,对于发送到休眠窗格的视频流解码基础帧,以此减轻解码客户端的压力。
2、将客户端每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送给视频服务器,视频服务器检测到编码器某通道的视频流全部发往休眠窗格,则通知编码器相关通道可以在预定的时间内至少编一个基础帧,减轻了编码端和网络的压力。
通过以下参照附图对优选实施例的说明,本发明的上述以及其它目的、特征和优点将更加明显。
具体实施方式
下面将详细描述本发明的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本发明。
请参阅图3所示,其为本发明提供的视频编解码方法流程图。该视频编解码方法包括以下步骤:
步骤S11:客户端将其应用的窗格配置为活动窗格和休眠窗格。
本发明的实施例中,客户端有多个窗格,通过这些窗格来对编码器发出的多条视频流进行解码和显示。这些窗格中可以有部分或者全部处于应用状态,即有视频流传输,而处于应用状态的窗格中,又可以分为活动窗格和休眠窗格,其中,休眠窗格是指用户此时对其关注度不高的窗格,于是,客户端将用户关注度不高的窗格配置为休眠窗格。
步骤S12:通过所述休眠窗格接收视频流时,其将该视频流的基础帧解码。
休眠窗格是用户关注度不高的窗格,若对发送到休眠窗格的的全部帧都解码,会造成客户端资源的浪费。基础帧是能独立解码的帧或帧序列,例如I帧,其反映的是本帧图像的基本信息,且可以被独立解码成一帧图像,因此,在本发明中,休眠窗格对接收到的视频流解码基础帧,但不限于基础帧,本领域技术人员可根据客户端的配置情况进行设定,例如,设定休眠窗格解码基础帧和其他辅助帧,只要保证能准确解码出图像即可,其中辅助帧例如为P帧和/或B帧。这样,休眠窗格中既有解码图像显示,又能减小客户端的压力。举例而言,当视频流的IP模式下GOP长度为25时,编码器每秒发送一个I帧和24个P帧的序列,若该序列发送至客户端的休眠窗格,则休眠窗格仅解码I帧并将其显示给用户;或者解码I帧和几个P帧来显示图像,而无须将GOP视频流全部解码。
请参阅图4所示,其为本发明提供的较佳实施例的视频编解码方法流程图。该视频编解码方法在步骤S12之后还包括以下步骤:
步骤S13:客户端将每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送至视频服务器,以使视频服务器检测到编码器的多个通道与客户端处于应用状态的解码窗格的对应关系,进而控制编码器通道所发送的视频流。
步骤S14:视频服务器根据全部客户端发送来的每一应用窗格的信息和各应用窗格与编码器通道的对应情况进行判断,如果编码器某一通道发出的视频流全部发送至休眠窗格,则视频服务器通知编码器的该通道在预定时间内至少编一个基础帧。其中,该预定时间例如为1秒,且该通道在预定时间内可只编一个I帧,也可编基础帧和其他辅助帧,只要保证能准确解码出图像即可,其中辅助帧例如为P帧和/或B帧。
如果编码器某一通道发出的视频流并非全部发送至休眠窗格,则不对编码器进行任何操作,即编码器的该通道按照原有模式发送。
这样,可大大减轻编码器的压力,也同时减轻了网络的负担。
下面通过两个具体实施例对该视频编解码方法进行详细的描述。
请参阅图5所示,其为本发明视频编解码方法的第一具体实施例的流程图,该实施例包括以下步骤:
步骤S11:客户端将其应用的窗格配置为活动窗格和休眠窗格。
在本实施例中,监控端包括两个客户端,分别为第一客户端和第二客户端;其中,第一客户端的用户名为A,具有五个处于应用状态的窗格,根据用户的使用情况将第一至第四窗格配置为休眠窗格,第五窗格配置为活动窗格;第二客户端的用户名为B,具有四个处于应用状态的窗格,根据用户的使用情况将第二和第三窗格配置为休眠窗格,第一和第四窗格配置为活动窗格。以下均以该第一、第二客户端的配置为例进行说明。
步骤S12:通过休眠窗格接收视频流时,其将该视频流的基础帧解码。
在本实施例中,基础帧为I帧,且休眠窗格对接收到的视频流仅解码I帧。这样,第一客户端的第一至第四窗格、第二客户端的第二至第三窗格仅解码I帧,其他窗格按照原有的配置进行解码。
步骤S131:客户端将其所有休眠窗格的窗格号发送至视频服务器,使视频服务器记录客户端的用户名和其所有休眠窗格号。
就第一客户端而言,将其休眠窗格的窗格号通过消息发送至视频服务器,由于第一至第四窗格为休眠窗格,则该第一客户端发送窗格号1-4至视频服务器。
视频服务器接收到第一客户端发送来的休眠窗格号后,查找其内注册的客户端的用户名,并记录第一客户端的用户名和其休眠窗格号,记录表项例如为userChannelTable:(用户名,休眠窗格号),即为(A,1-4)。
步骤S13A:视频服务器发送确认消息至客户端,使得客户端获知视频服务器已记录其发送的消息。
步骤S132:客户端发送每一应用窗格的实况消息至视频服务器,所述实况消息包括:该窗格对应的编码器通道号、该窗格所在客户端的用户名以及该窗格号。
仍以第一客户端为例,第一客户端发起对编码器通道的实况观看,并发送每个窗格的实况消息至视频服务器,该实况消息包括:该窗格对应的编码器通道号、第一客户端的用户名以及该窗格号;视频服务器接收到该实况消息后记录如下表项dcPortTable:(编码器通道号,用户名,窗格号),现以第一窗格发送的实况消息为例,其对应的编码器通道为第2通道,则第一窗格发送实况消息至视频服务器后,视频服务器记录的表项为(2,A,1)。
步骤S140:视频服务器判断编码器某一通道发出的视频流是否都发送至休眠窗格。
在本实施例中,视频服务器通过比较表项userChannelTable和dcPortTable来判断某一通道发出的视频流是否都发送至休眠窗格,如果视频服务器经比较发现编码器的某通道对应的所有解码窗格均为休眠窗格,则执行步骤S141:发送一个标志位置位消息给编码器;如果视频服务器经比较发现编码器的某通道有视频流发送给活动窗格,则执行步骤S143:发送一个标志位无置位的消息给编码器。
由于第一客户端的第一至第四窗格为休眠窗格,第二客户端的第二和第三窗格为休眠窗格,则userChannelTable记录的表项为(A,1-4)和(B,2-3),如果视频服务器收到的dcPortTable包括:(1,A,4)和(1,B,3),可知编码器的通道1对应的所有解码窗格均为休眠窗格,则发送标志位置位消息给编码器。
当编码器收到视频服务器发送来的消息中标志位置位,则执行步骤S142:编码器的该通道在预定时间内至少编一个基础帧发送出去,在本实施例中,编码器的该通道每秒只编一个I帧;当编码器收到视频服务器发送来的消息中标志位无置位,则执行步骤S144:编码器的该通道按照发送至活动窗格的GOP模式发送,即编码器根据设置正常编码发送视频流至客户端。
下面介绍本发明视频编解码方法的第二实施例,本实施例的步骤S11、步骤S12和步骤S14与第一实施例类似,不同之处在于,步骤S13中,客户端的将每一应用窗格的信息和各应用窗格与编码器通道的对应情况发送至视频服务器的步骤具体为:
发送每一应用窗格的通告消息至视频服务器,通告消息包括:标记信息、该窗格所在客户端的用户名、该窗格的窗格号和该窗格对应的编码器通道号,其中标记信息用于标识该窗格是否为休眠窗格。
在本实施例中,标记信息为非休眠标记,例如,某一窗格的通告消息中标记信息为0,则说明该窗格为休眠窗格;某一窗格的通告消息中标记信息为1,则说明该窗格为非休眠窗格。
仍设第一客户端的第一至第四窗格为休眠窗格,第二客户端的第二和第三窗格为休眠窗格,若通告消息为(0,A,4,1)和(0,B,3,1),可知编码器的通道1对应的所有解码窗格均为休眠窗格,则视频服务器可根据上述通告消息控制编码器通道1在预定时间内至少编一个基础帧,在本实施例中,编码器的该通道每秒只编一个I帧。
与上述视频编解码方法相对应,本发明还提供一种客户端。
该客户端包括多个解码器,这些解码器配置为活动解码器和休眠解码器,其中,休眠解码器对于接收到的视频流解码基础帧。
休眠解码器所解码的图像是用户关注度不高的图像,若像现有技术那样对发送到休眠解码器的的全部帧都解码,会造成客户端资源的浪费。由于基础帧可以独立解码,因此,在客户端中,休眠解码器对接收到的视频流仅解码基础帧。这样,休眠解码器中既有解码图像显示,又能减小客户端的压力。
与上述视频编解码方法相对应,本发明还提供一种视频服务器。
该视频服务器用于控制编码器通道发送视频流至本发明提出的客户端,其包括:判断模块和控制模块。
判断模块用于根据全部客户端发送来的每一应用解码器的信息和各应用解码器与编码器通道的对应情况判断编码器某一通道发出的视频流是否全部发送至所述休眠解码器;
控制模块,与所述判断模块连接,若判断模块发现编码器某一通道发出的视频流全部发送至休眠解码器,则其通知编码器的该通道在预定时间内至少编一个基础帧。
这样,视频服务器若判断出编码器某一通道发出的视频流都发送至休眠解码器,则该通道在预定时间内至少编一个基础帧,例如每秒只编一个I帧,这样,可大大减轻编码器的压力,也同时减轻了网络的负担。
具体而言,判断模块接收到的应用解码器的信息和各应用解码器与编码器通道的对应情况包括:所有休眠解码器的编号和各解码器的实况消息,所述实况消息包括:该解码器对应的编码器通道号、该解码器所在客户端的用户名以及该解码器的编号。
另外,判断模块接收到的应用解码器的信息和各应用解码器与编码器通道的对应情况还可为各解码器的通告消息,该通告消息包括:标记信息、该解码器所在客户端的用户名、该解码器的编号和该解码器对应的编码器通道号,其中所述标记信息用于标识该解码器是否为休眠解码器。
本发明还提供一种监控系统。可参见图1所示的监控系统。本发明的监控系统,包括编码器、视频服务器和客户端,视频服务器控制编码器通道发送GOP模式视频流至客户端,客户端包括多个解码器,解码器配置为活动解码器和休眠解码器,休眠解码器对于接收到的视频流解码基础帧;所述视频服务器包括:判断模块,用于根据全部客户端发送来的每一应用解码器的信息和各应用解码器与编码器通道的对应情况判断编码器某一通道发出的视频流是否全部发送至所述休眠解码器;控制模块,与所述判断模块连接,若判断模块发现编码器某一通道发出的视频流全部发送至休眠解码器,则其通知编码器的该通道在预定时间内至少编一个基础帧。
对于客户端、视频服务器和监控系统的实现细节,可参见方法实施例的具体描述,在此不再赘述。
虽然已参照几个典型实施例描述了本发明,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本发明能够以多种形式具体实施而不脱离发明的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。