一种视频编解码的方法与装置制造方法及图纸

技术编号:15696098 阅读:184 留言:0更新日期:2017-06-24 11:43
本发明专利技术实施例公开了一种视频编解码的方法与装置,在服务器中可以同时安装多个GPU,对于每个GPU而言,可以依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。可见,一个线程通过调用GPU可以实现对解析后一路视频流的编解码处理,一个GPU对应的可以设置多个线程,即该多个线程可以同时调用GPU对解析后的视频流进行处理,从而实现一个GPU对多路视频流的并行处理,有效的提升了视频编解码的工作效率。

【技术实现步骤摘要】
一种视频编解码的方法与装置
本专利技术涉及计算机
,特别是涉及一种视频编解码的方法与装置。
技术介绍
随着互联网和移动互联网的高速发展,人们产生的数据总量呈现急剧增长的趋势。信息数据越来越多,对信息数据处理能力的要求也越来越高,尤其在视频领域,随着互联网、智慧城市的飞速发展,有越来越多的视频数据需要被存储、传输和处理,这其中会涉及到大量的视频编码和解码,简称视频编解码。视频编解码技术是网络电视发展的最初条件,高效的视频编码才能保证在现实的互联网环境下提供视频服务。一种可行的方式,视频编解码可以由中央处理器(CPU)一手包办的,但是由于CPU的编解码能力有限,所以在解码高清电影时相当吃力。图像处理器(GraphicsProcessingUnit,GPU),又称显示核心,是一种专门在个人电脑、工作站、游戏机和一些移动设备上图像运算工作的微处理器。可以用于将计算机系统所需要显示信息进行转换驱动,并向显示器提供扫描信号,控制显示器的正确显示。GPU的浮点运算能力远远强于CPU,因此由GPU来处理高清视频的解码工作,能够极大的降低CPU的负担,提升视频编解码的工作效率。但是,传统方式中,GPU只能对视频流进行串行处理,无法对大规模的视频流数据进行多路编解码,导致视频编解码工作效率低下。可见,如何提升视频编解码的工作效率,是本领域技术人员亟待解决的问题。
技术实现思路
本专利技术实施例的目的是提供一种视频编解码的方法与装置,可以对大规模的视频数据进行多路编解码,有效提升视频编解码的工作效率。为解决上述技术问题,本专利技术实施例提供一种视频编解码的方法,应用于包含至少一个GPU的服务器,所述方法包括:依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。可选的,还包括:依据设置的动态负载均衡规则,向所述至少一个GPU分配所述多路视频流。可选的,还包括:在所述GPU上设置每个线程相对应的第一缓冲区和第二缓冲区;所述第一缓冲区用于存储待解码的视频流数据;所述第二缓冲区用于存储解码后的视频流数据。可选的,所述对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理包括:利用ffmpeg库函数对所述多路视频流进行解析,获取所述视频流的参数信息;所述参数信息包括:解码格式、分辨率、颜色和大小;每路视频流经过解析后得到对应的至少一个数据包;依据所述参数信息,设置解码规则;将所述至少一个数据包写入第一缓冲区;调用所述GPU依据所述解码规则,对所述至少一个数据包进行解码操作,得到所述至少一个数据包相对应的至少一个帧;并将所述至少一个帧存储于所述第二缓冲区;调用所述GPU依据于预先设置的编码规则,对所述第二缓冲区的所述至少一个帧进行编码操作。可选的,还包括:为所述至少一个线程设置相对应的互斥锁;所述互斥锁用于保证同一时刻只有一个线程调用所述GPU。可选的,还包括:为所述至少一个GPU设置相对应的互斥锁;所述互斥锁用于保证同一时刻只为一个GPU分配多路视频流。本专利技术实施例还提供一种视频编解码的装置,应用于包含至少一个GPU的服务器,所述装置包括设置单元和处理单元:所述设置单元,用于依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;所述处理单元,用于对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。可选的,还包括分配单元:所述分配单元,用于依据设置的动态负载均衡规则,向所述至少一个GPU分配所述多路视频流。可选的,所述设置单元还用于在所述GPU上设置每个线程相对应的第一缓冲区和第二缓冲区;所述第一缓冲区用于存储待解码的视频流数据;所述第二缓冲区用于存储解码后的视频流数据。可选的,所述处理单元包括解析子单元、设置子单元、写入子单元、解码子单元和编码子单元:所述解析子单元,用于利用ffmpeg库函数对所述多路视频流进行解析,获取所述视频流的参数信息;所述参数信息包括:解码格式、分辨率、颜色和大小;每路视频流经过解析后得到对应的至少一个数据包;所述设置子单元,用于依据所述参数信息,设置解码规则;所述写入子单元,用于将所述至少一个数据包写入第一缓冲区;所述解码子单元,用于调用所述GPU依据所述解码规则,对所述至少一个数据包进行解码操作,得到所述至少一个数据包相对应的至少一个帧;并将所述至少一个帧存储于所述第二缓冲区;所述编码子单元,用于调用所述GPU依据于预先设置的编码规则,对所述第二缓冲区的所述至少一个帧进行编码操作。可选的,所述设置单元还用于为所述至少一个线程设置相对应的互斥锁;所述互斥锁用于保证同一时刻只有一个线程调用所述GPU。可选的,所述设置单元还用于为所述至少一个GPU设置相对应的互斥锁;所述互斥锁用于保证同一时刻只为一个GPU分配多路视频流。由上述技术方案可以看出,在服务器中可以同时安装多个GPU,对于每个GPU而言,可以依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。可见,一个线程通过调用GPU可以实现对解析后一路视频流的编解码处理,一个GPU对应的可以设置多个线程,即该多个线程可以同时调用GPU对解析后的视频流进行处理,从而实现一个GPU对多路视频流的并行处理,有效的提升了视频编解码的工作效率。附图说明为了更清楚地说明本专利技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的一种视频编解码的方法的流程图;图2为本专利技术实施例提供的另一种视频编解码的方法的流程图;图3为本专利技术实施例提供的一种视频编解码的装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本专利技术保护范围。为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。接下来,详细介绍本专利技术实施例所提供的一种视频编解码的方法。图1为本专利技术实施例提供的一种视频编解码的方法的流程图,应用于包含至少一个GPU的服务器,所述方法包括:S101:依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程。线程可以理解为是调用GPU实现编解码的接口信息,利用该线程便可以调用GPU实现是对视频流的编解码。线程池可以用于存储线程,一个线程池中存储的线程的个数可以根据用户的要求进行设置。在本专利技术实施例中,可以在服务器中设置至少一个GPU,每个GPU对应有一个线程池,每个线程池可以设置有至少一个线程。一个线程池中设置有几个线程,对应的便可以同时对几路视频流进行处理。其中,线程池中包括本文档来自技高网
...
一种视频编解码的方法与装置

【技术保护点】
一种视频编解码的方法,其特征在于,应用于包含至少一个GPU的服务器,所述方法包括:依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。

【技术特征摘要】
1.一种视频编解码的方法,其特征在于,应用于包含至少一个GPU的服务器,所述方法包括:依据用户输入的线程个数信息,在所述GPU对应的线程池中设置多个线程;对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理。2.根据权利要求1所述的方法,其特征在于,还包括:依据设置的动态负载均衡规则,向所述至少一个GPU分配所述多路视频流。3.根据权利要求1或2所述的方法,其特征在于,还包括:在所述GPU上设置每个线程相对应的第一缓冲区和第二缓冲区;所述第一缓冲区用于存储待解码的视频流数据;所述第二缓冲区用于存储解码后的视频流数据。4.根据权利要求3所述的方法,其特征在于,所述对接收到的多路视频流进行解析处理,并利用所述多个线程调用所述GPU对所述解析处理后的多路视频流进行编解码处理包括:利用ffmpeg库函数对所述多路视频流进行解析,获取所述视频流的参数信息;所述参数信息包括:解码格式、分辨率、颜色和大小;每路视频流经过解析后得到对应的至少一个数据包;依据所述参数信息,设置解码规则;将所述至少一个数据包写入第一缓冲区;调用所述GPU依据所述解码规则,对所述至少一个数据包进行解码操作,得到所述至少一个数据包相对应的至少一个帧;并将所述至少一个帧存储于所述第二缓冲区;调用所述GPU依据于预先设置的编码规则,对所述第二缓冲区的所述至少一个帧进行编码操作。5.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:为所述至少一个线程设置相对应的互斥锁;所述互斥锁用于保证同一时刻只有一个线程调用所述GPU。6.根据权利要求1-4任意一项所述的方法,其特征在于,还包括:为所述至少一个...

【专利技术属性】
技术研发人员:吴韶华张清
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1