一种解码硬件的分时复用方法与流程

文档序号:17357610发布日期:2019-04-09 21:49阅读:655来源:国知局
一种解码硬件的分时复用方法与流程

本发明涉及软件系统技术领域,尤其涉及一种解码硬件的分时复用方法。



背景技术:

现有技术中,如图1所示,在目前视频设备的视频通话应用中,本地usb摄像头普遍采用mjpeg格式的输出图像,相对早期的yuv无压缩格式能支持更高分辨率,更高帧率图像占系统资源较少。在视频设备处理视频通话时,除了需要对远端的视频编码压缩数据进行解码,还要对本地usb摄像头普遍采用的mjpeg格式数据进行解码;而针对两路数据的解码,普遍采用双硬件解码器解码,或软解和硬解相结合的方式进行解码,这样会造成在视频通话应用中,解码器不足,且无奈使用软件解码大负荷运转,造成效能不足的缺陷。

现阶段普遍采用的两种方式中,双硬件解码器时效较高,但占用硬件资源较多,对解码器的利用程度实际不高,浪费了解码器资源;当解码器只有一个,往往会选择软解硬解结合的方式,此种方式往往对芯片产生较大负载,特别是芯片在处理其它高负载工作时,常常对视频通话品质造成影响。



技术实现要素:

针对现有技术中存在的上述问题,现提供一种解码硬件的分时复用方法。

具体技术方案如下:

一种解码硬件的分时复用方法,其中包括:

步骤s1、提供一解码硬件;

步骤s2、将所述解码硬件实例化成第一解码器和第二解码器;

步骤s3、通过所述第一解码器对一第一数据流进行解码,以及通过所述第二解码器对一第二数据流进行解码。

优选的,所述第一解码器与所述第二解码器分时复用所述解码硬件。

优选的,所述第一数据流包括mjpeg格式的数据流;和/或

所述第二数据流包括h264格式的数据流。

优选的,所述第一数据流的解码过程包括:

步骤s30、根据所述第一解码器加载对应所述第一数据流的格式的解码固件,以对所述第一数据流进行解码;

步骤s31、判断所述第一数据流是否解码成功;

若是,则将所述第一数据流解码为解码视频帧;

若否,则返回所述步骤s30。

优选的,于所述步骤s31之后,保存对应所述第一数据流的所述上下文信息。

优选的,所述步骤s30包括:

步骤s300、所述第一解码器加载对应所述第一数据流的格式的解码固件;

步骤s301、判断所述第一解码器加载所述解码固件是否成功;

若是,则解码所述第一数据流的头信息,然后对对所述第一数据流进行解码;

若否,则返回所述步骤s300重新加载。

优选的,所述第一数据流的解码过程还包括:

判断所述第一数据流是否是第一次解码;

若是,则对所述第一数据流进行解码;

若否,则恢复上下文信息,之后对所述第一数据流进行解码。

优选的,所述第一数据流的解码过程还包括:

判断所述上下文信息是否恢复成功;

若是,则对所述第一数据流进行解码;

若否,则返回所述步骤s30。

优选的,所述上下文信息包括前一次解码的所述第一数据流的配置信息。

优选的,于所述步骤s3之前进行一预准备步骤,所述预准备步骤包括:

判断所述第一解码器与所述第二解码器是否处于空闲状态,并且所述第一解码器与所述第二解码器是否具有充足的输出缓冲区;及所述第一数据流与所述第二数据流是否准备就绪;

若是,则进行所述步骤s3;

若否,则返回进行所述预准备步骤。

本发明的技术方案有益效果在于:公开一种解码硬件的分时复用方法,合理的利用了解码器效能,使硬件资源利用率得到提高,并且解决了在视频通话应用中,解码器不足时,无奈使用软件解码大负荷运转,造成效能不足的缺陷,同时存在多硬件解码器的情况下,节省了硬件资源及为运行成本提供了新思路。

附图说明

参考所附附图,以更加充分的描述本发明的实施例。然而,所附附图仅用于说明和阐述,并不构成对本发明范围的限制。

图1为本发明的实施例的解码硬件的分时复用方法的方法步骤流程图;

图2为本发明的实施例的第一数据流的解码过程的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

下面结合附图和具体实施例对本发明作进一步说明,但不作为本发明的限定。

现有技术中,如图1所示,在目前视频设备的视频通话应用中,本地usb摄像头普遍采用mjpeg格式的输出图像,相对早期的yuv无压缩格式能支持更高分辨率,更高帧率图像占系统资源较少。在视频设备处理视频通话时,除了需要对远端的视频编码压缩数据进行解码,还要对本地usb摄像头普遍采用的mjpeg格式数据进行解码;而针对两路数据的解码,普遍采用双硬件解码器解码,或软解和硬解相结合的方式进行解码,这样会造成在视频通话应用中,解码器不足,且无奈使用软件解码大负荷运转,造成效能不足的缺陷。

因此,针对现有技术中存在的上述问题,本发明公开一种解码硬件的分时复用方法,其中包括:

步骤s1、提供一解码硬件;

步骤s2、将解码硬件实例化成第一解码器和第二解码器;

步骤s3、通过第一解码器对一第一数据流进行解码,以及通过第二解码器对一第二数据流进行解码。

在一种较优的实施例中,第一解码器与第二解码器分时复用解码硬件。

在一种较优的实施例中,第一数据流包括mjpeg格式的数据流;和/或

第二数据流包括h264格式的数据流。

通过上述解码硬件的分时复用方法的技术方案,结合图1所示,本发明提出的分时复用解码,首先提供解码硬件,然后将两路解码抽象成两个实例,轮流设置实例进入预准备步骤,再进入解码流程,其中,第一解码器与第二解码器分时复用解码硬件,第一数据流包括mjpeg格式的数据流,第二数据流包括h264格式的数据流。

进一步地,于步骤s3之前进行一预准备步骤,预准备步骤包括:首先判断第一解码器与第二解码器是否处于空闲状态,并且所述第一解码器与所述第二解码器是否具有充足的输出缓冲区;及第一数据流与第二数据流是否准备就绪;若是,则进行步骤s3;若否,则返回进行预准备步骤。

进一步地,单解码器的分时复用,需要高效的管理解码器,在输入端,根据视频流特点,需要确定单位时间解码数据量,设计输入输出缓冲,需避免出现某路解码耗时过长;其次在解码过程中,mjpeg/h264解码规则不同,需要不同的解码控制固件。在分时解码切换时,解码上下文的保存与恢复是能否正常解码的关键。

进一步地,合理的利用了解码器效能,使硬件资源利用率得到提高,并且解决了在视频通话应用中,解码器不足时,无奈使用软件解码大负荷运转,造成效能不足的缺陷,同时存在多硬件解码器的情况下,节省了硬件资源及为运行成本提供了新思路。

在一种较优的实施例中,第一数据流的解码过程包括:

步骤s30、根据第一解码器加载对应第一数据流的格式的解码固件,以对第一数据流进行解码;

步骤s31、判断第一数据流是否解码成功;

若是,则将第一数据流解码为解码视频帧;

若否,则返回步骤s30;

于步骤s31之后,保存对应第一数据流的上下文信息;

进一步地,步骤s30包括:

步骤s300、第一解码器加载对应第一数据流的格式的解码固件;

步骤s301、判断第一解码器加载解码固件是否成功;

若是,则对第一数据流进行解码;

若否,则返回步骤s300重新加载。

具体地,如图2所示,第一解码器与第二解码器分时复用解码硬件,第一数据流的解码过程与第二数据流的解码过程相同,在此不再赘述。当解码超时或报错将判定为视频帧解码失败,或加载解码固件失败,或恢复上下文信息失败,或解码失败,或解码成功保存上下文后丢失等,则会返回进行步骤s30,根据第一解码器加载对应第一数据流的格式的解码固件,以对第一数据流进行解码;保存的上下文信息包括解码输出缓存的配置信息、解码环境的变量和寄存器值。

进一步地,单解码器的分时复用,需要高效的管理解码器,在输入端,根据视频流特点,需要确定单位时间解码数据量,设计输入输出缓冲,需避免出现某路解码耗时过长;其次在解码过程中,mjpeg/h264解码规则不同,需要不同的解码控制固件。在分时解码切换时,解码上下文的保存与恢复是能否正常解码的关键。

进一步地,合理的利用了解码器效能,使硬件资源利用率得到提高,并且解决了在视频通话应用中,解码器不足时,无奈使用软件解码大负荷运转,造成效能不足的缺陷,同时存在多硬件解码器的情况下,节省了硬件资源及为运行成本提供了新思路。

在一种较优的实施例中,第一数据流的解码过程还包括:

判断第一数据流是否是第一次解码;

若是,则解码第一数据流的头信息,然后对第一数据流进行解码;

若否,则恢复上下文信息,之后对第一数据流进行解码;

上下文信息包括前一次解码的第一数据流的配置信息。

具体地,如图2所示,第一解码器与第二解码器分时复用解码硬件,第一数据流的解码过程与第二数据流的解码过程相同,在此不再赘述。第一数据流的头信息包括第一数据流的更新时间、数据长度、格式等信息。

进一步地,单解码器的分时复用,需要高效的管理解码器,在输入端,根据视频流特点,需要确定单位时间解码数据量,设计输入输出缓冲,需避免出现某路解码耗时过长;其次在解码过程中,mjpeg/h264解码规则不同,需要不同的解码控制固件。在分时解码切换时,解码上下文的保存与恢复是能否正常解码的关键。

进一步地,合理的利用了解码器效能,使硬件资源利用率得到提高,并且解决了在视频通话应用中,解码器不足时,无奈使用软件解码大负荷运转,造成效能不足的缺陷,同时存在多硬件解码器的情况下,节省了硬件资源及为运行成本提供了新思路。

在一种较优的实施例中,第一数据流的解码过程还包括:

判断上下文信息是否恢复成功;

若是,则对第一数据流进行解码;

若否,则返回步骤s30。

具体地,如图2所示,第一解码器与第二解码器分时复用解码硬件,第一数据流的解码过程与第二数据流的解码过程相同,在此不再赘述。保存的上下文信息包括解码输出缓存的配置信息、解码环境的变量和寄存器值。

进一步地,单解码器的分时复用,需要高效的管理解码器,在输入端,根据视频流特点,需要确定单位时间解码数据量,设计输入输出缓冲,需避免出现某路解码耗时过长;其次在解码过程中,mjpeg/h264解码规则不同,需要不同的解码控制固件。在分时解码切换时,解码上下文的保存与恢复是能否正常解码的关键。

进一步地,合理的利用了解码器效能,使硬件资源利用率得到提高,并且解决了在视频通话应用中,解码器不足时,无奈使用软件解码大负荷运转,造成效能不足的缺陷,同时存在多硬件解码器的情况下,节省了硬件资源及为运行成本提供了新思路。

以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本发明说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。

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