一种图像采集编码方法及装置制造方法及图纸

技术编号:26793899 阅读:23 留言:0更新日期:2020-12-22 17:10
本公开提供一种图像采集编码方法及装置,涉及图像处理技术领域,解决现有技术中图像采集编码对源端设备系统资源占用率高,图像采集编码效率低的问题。具体技术方案为:首先图形处理器GPU采集源端设备的图像数据,并将图像数据保存在缓存区中;然后GPU对图像数据进行编码生成编码数据,并将编码数据复制到主机内存中,以便中央处理器CPU将编码数据发送到接收端。本公开用于图像采集编码。

【技术实现步骤摘要】
一种图像采集编码方法及装置
本公开涉及图像处理
,尤其涉及一种图像采集编码方法及装置。
技术介绍
在图传系统中,由采集端对图像源设备的桌面图像进行采集,并将采集到的图像经编码后发送给接收端,由接收端解码后显示在连接的显示器上。图像源设备可以为源端计算机。因为采集和编码的工作量较大,且通常由图像源设备完成,所以采集和编码的处理会占用较多的中央处理器CPU资源和内存资源,对图像源设备的性能影响较大。在win2000,XP等操作系统的源端计算机中,图像处理流程如下:首先,CPU采集源端计算机的桌面图像,并将采集到的图像数据保存在主机内存中(实质为从GPU内存拷贝到主机内存,为系统自身的处理规则),然后,CPU将图像数据拷贝到图形处理器GPU内存中,由GPU对图像数据进行编码;接下来,GPU将编码数据拷贝到CPU的主机内存中;最后,CPU将编码数据通过网络发送到接收端。可见,在上述对图像的采集编码的处理方法中,图像数据在主机内存和GPU内存之间存在多次拷贝,不仅导致采集编码流程占用的CPU资源较多,影响源端计算机的处理性能,而且延长采集编码的处理时长,降低接收端显示图像的实时性。
技术实现思路
本公开实施例提供一种图像采集编码方法、装置、设备及存储介质,能够解决现有技术中图像采集编码对源端设备系统资源占用率高,图像采集编码效率低的问题。所述技术方案如下:根据本公开实施例的第一方面,提供一种图像采集编码方法,该方法包括:图形处理器GPU采集源端设备的图像数据,并将所述图像数据保存在缓存区中;GPU对所述图像数据进行编码生成编码数据,并将所述编码数据复制到主机内存中,以便中央处理器CPU将所述编码数据发送到接收端。本公开实施例提供的图像采集编码方法,首先图形处理器GPU采集源端设备的图像数据,并将图像数据保存在缓存区中;然后GPU对图像数据进行编码生成编码数据,并将编码数据复制到主机内存中,以便中央处理器CPU将编码数据发送到接收端。本公开的采集和编码处理流程,大部分均在GPU中运行,避免了图像数据采集后在主机内存和GPU内存之间的两次拷贝,降低了对源端设备系统资源的占用,不仅能够提高源端设备的处理性能,而且可以缩短采集编码的处理耗时,提高处理效率,实现了更高的采集帧率。在一个实施例中,图形处理器GPU采集源端设备的图像数据包括:所述GPU采集所述源端设备基于三维规范接口Direct3D的图像数据,所述图像数据为桌面图像数据。本公开实施例通过上述方法,可以实现windows操作系统中基于Direct3D图像数据的采集。在一个实施例中,GPU采集所述源端设备基于Direct3D的图像数据包括:创建三维规范接口装置Direct3DDevice显卡接口,根据所述Direct3DDevice显卡接口获取第一输出IDXGIOutput接口,根据所述IDXGIOutput接口获得第二输出IDXGIOutput1接口;根据IDXGIOutput1接口获取复制输出IDXGIOutputDuplication接口;使用IDXGIOutputDuplication接口,采集所述源端设备基于Direct3D的图像数据。本公开实施例通过以上方法,提供了一种具体的实现windows操作系统中基于Direct3D图像数据的采集的方法。在一个实施例中,在将所述图像数据保存在缓存区中之前,所述方法还包括:将所述基于Direct3D的图像数据转换为基于OpenCL的图像数据。本公开实施例通过以上方法,将基于Direct3D的图像数据转换为基于OpenCL的图像数据,将编码工作从对基于Direct3D的图像数据进行编码转换为对基于OpenCL的图像数据进行编码,大幅度减小了编码的复杂程度。在一个实施例中,将所述基于Direct3D的图像数据转换为基于OpenCL的图像数据包括:启用OpenCL的OpenCL与Direct3D的互操作功能;调用功能函数创建基于OpenCL的图像数据。相应的,所述对所述图像数据进行编码生成编码数据包括:基于OpenCL算法,对所述OpenCL的图像数据进行编码生成所述编码数据。本公开实施例通过以上方法,提供了一种具体的将基于Direct3D的图像数据转换为基于OpenCL的图像数据的方法。根据本公开实施例的第二方面,提供一种图像采集编码装置,包括:采集模块和编码模块;所述采集模块,用于采集源端设备的图像数据,并将所述图像数据保存在缓存区中;所述编码模块,用于对所述图像数据进行编码生成编码数据,并将所述编码数据复制到主机内存中,以便中央处理器CPU将所述编码数据发送到接收端。本公开实施例提供的图像采集编码装置,包括采集模块和编码模块;采集模块采集源端设备的图像数据,并将图像数据保存在缓存区中;编码模块对图像数据进行编码生成编码数据,并将编码数据复制到主机内存中,以便中央处理器CPU将编码数据发送到接收端。本公开的采集和编码处理流程,大部分均在GPU中运行,避免了图像数据采集后在主机内存和GPU内存之间的两次拷贝,降低了对源端设备系统资源的占用,不仅能够提高源端设备的处理性能,而且可以缩短采集编码的处理耗时,提高处理效率,实现了更高的采集帧率。在一个实施例中,采集模块具体用于采集所述源端设备基于Direct3D的图像数据,所述图像数据为桌面图像数据。本公开实施例通过以上设置,可以实现windows操作系统中基于Direct3D图像数据的采集。在一个实施例中,采集模块包括第一创建子模块、获取子模块、采集子模块;所述第一创建子模块,用于创建Direct3DDevice显卡接口;所述获取子模块,用于根据所述Direct3DDevice显卡接口获取IDXGIOutput接口,根据所述IDXGIOutput接口获得IDXGIOutput1接口,根据IDXGIOutput1接口获取IDXGIOutputDuplication接口;所述采集子模块,用于使用IDXGIOutputDuplication接口,采集所述源端设备基于Direct3D的图像数据。本公开实施例通过以上设置,提供了一种具体的实现windows操作系统中基于Direct3D图像数据的采集的方法。在一个实施例中,上述装置还包括转换模块,用于将所述基于Direct3D的图像数据转换为基于OpenCL的图像数据。本公开实施例通过以上设置,将基于Direct3D的图像数据转换为基于OpenCL的图像数据,将编码工作从对基于Direct3D的图像数据进行编码转换为对基于OpenCL的图像数据进行编码,大幅度减小了编码的复杂程度。在一个实施例中,转换模块包括启动子模块和第二创建子模块;所述启动子模块,用于启用OpenCL的OpenCL与Direct3D的互操作功能;所述第二创建子模块,用于调用功能本文档来自技高网...

【技术保护点】
1.一种图像采集编码方法,其特征在于,所述方法包括:/n图形处理器GPU采集源端设备的图像数据,并将所述图像数据保存在缓存区中;/nGPU对所述图像数据进行编码生成编码数据,并将所述编码数据复制到主机内存中,以便中央处理器CPU将所述编码数据发送到接收端。/n

【技术特征摘要】
1.一种图像采集编码方法,其特征在于,所述方法包括:
图形处理器GPU采集源端设备的图像数据,并将所述图像数据保存在缓存区中;
GPU对所述图像数据进行编码生成编码数据,并将所述编码数据复制到主机内存中,以便中央处理器CPU将所述编码数据发送到接收端。


2.根据权利要求1所述的图像采集编码方法,其特征在于,所述图形处理器GPU采集源端设备的图像数据包括:
所述GPU采集所述源端设备基于三维规范接口Direct3D的图像数据,所述图像数据为桌面图像数据。


3.根据权利要求2所述的图像采集编码方法,其特征在于,所述GPU采集所述源端设备基于Direct3D的图像数据包括:
创建三维规范接口装置Direct3DDevice显卡接口,根据所述Direct3DDevice显卡接口获取第一输出IDXGIOutput接口,根据所述IDXGIOutput接口获得第二输出IDXGIOutput1接口;
根据IDXGIOutput1接口获取复制输出IDXGIOutputDuplication接口;
使用IDXGIOutputDuplication接口,采集所述源端设备基于Direct3D的图像数据。


4.根据权利要求2所述的图像采集编码方法,其特征在于,所述将所述图像数据保存在缓存区中之前,所述方法还包括:
将所述基于Direct3D的图像数据转换为基于开放运算语言OpenCL的图像数据。


5.根据权利要求4所述的图像采集编码方法,其特征在于,所述将所述基于Direct3D的图像数据转换为基于OpenCL的图像数据包括:
启用OpenCL的OpenCL与Direct3D的互操作功能;
调用功能函数创建基于OpenCL的图像数据。
相应的,所述GPU对所述图像数据进行编码生成编码数据包括:
所述GPU基于OpenCL算法,对所述Op...

【专利技术属性】
技术研发人员:杨璐
申请(专利权)人:西安万像电子科技有限公司
类型:发明
国别省市:陕西;61

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

1