掌桥专利:专业的专利平台
掌桥专利
首页

数据传输方法和装置

文献发布时间:2023-06-19 12:02:28


数据传输方法和装置

技术领域

本发明属于数据传输领域,具体涉及数据传输方法及装置。

背景技术

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

随着图形处理器(graphics processing unit,GPU)技术的快速发展,当前的GPU处理器广泛应用于诸如云游戏、视频直播、图像处理等通用领域。

现有技术中,为了将GPU处理完成的图像数据通过网卡发送到网络中,通常需要执行以下搬移步骤:第一次搬移,GPU需要将渲染后得到的图像数据从GPU内存中搬移到系统内存中映射为GPU使用的部分中。第二次搬移,中央处理器(central processing unit,以下简称CPU)根据网络传输协议格式将图像数据拆分打包成相应的数据包,并存放在映射为网卡使用的系统内存中。第三次搬移,网卡从系统内存中的映射为网卡的内存将上述小包发送到网络中。

上述过程中,为了发送GPU处理完成的图像数据到网络中,数据经过了三次显式的搬移,引入了额外的延时,同时消耗了CPU和GPU资源以及系统内存带宽,降低性能。

发明内容

针对上述现有技术中存在的问题,提出了数据传输方法和装置,利用这种方法和装置能够解决上述问题。

本发明提供了以下方案。

第一方面,提供一种数据传输方法,应用于数据传输装置,装置包括:通过总线互联的至少一个图形处理单元和网络接口单元,图形处理单元在内存空间中设有第一帧缓冲区,网络接口单元上集成有DMA模块和编解码模块;方法包括:图形处理单元接收并处理帧数据,并将处理后的帧数据存放在第一帧缓冲区;网络接口单元通过DMA模块将第一帧缓冲区中的帧数据分段搬移到网络接口单元,并通过编解码模块对至少一个帧数据分段进行封包,以得到符合预设网络传输协议的数据包。

在一种可能的实施方式中,DMA模块具有Scatter-Gather功能,以在搬移零散存放在第一帧缓冲区的帧数据之后进行数据整合。

在一种可能的实施方式中,图形处理单元将处理后的帧数据存放在第一帧缓冲区,还包括:图形处理单元对处理后的帧数据进行压缩编码,并将压缩编码后的帧数据存放在第一帧缓冲区。

在一种可能的实施方式中,图形处理单元对处理后的帧数据进行压缩编码还包括:图形处理单元将处理后的帧数据分割为图像分割块,以图像分割块为单位对帧数据进行压缩编码。

在一种可能的实施方式中,网络接口单元基于互联与图形处理单元建立直接通信,网络接口单元通过DMA模块分段搬移第一帧缓冲区中的帧数据,还包括:网络接口单元基于直接通信获取帧数据在第一帧缓冲区的物理地址信息,并基于预设传输协议的最大传输单元(MTU)信息和物理地址信息配置DMA描述符,DMA模块基于DMA描述符实现第一帧缓冲区中的帧数据的分段搬移。

在一种可能的实施方式中,处理后的帧数据包括:经过图形处理单元渲染处理生成的整帧图像数据,和/或,经过图形处理单元分块渲染处理生成的图像碎片数据。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

在一种可能的实施方式中,预设网络传输协议为以下中的至少一种:WebRTC、RTP、RTMP、MPEG DASH、HTTP。

第二方面,提供一种数据传输装置,包括:通过总线互联的至少一个图形处理单元和网络接口单元,图形处理单元在内存空间中设有第一帧缓冲区,网络接口单元上集成有DMA模块和编解码模块;其中,图形处理单元用于接收并处理帧数据,并将处理后的帧数据存放在第一帧缓冲区;网络接口单元用于通过DMA模块将第一帧缓冲区中的帧数据分段搬移到网络接口单元,并通过编解码模块对至少一个帧数据分段进行封包,得到符合预设网络传输协议的数据包。

在一种可能的实施方式中,DMA模块具有Scatter-Gather功能,以在搬移零散存在一种可能的实施方式中,图形处理单元还用于:对处理后的帧数据进行压缩编码,并将压缩编码后的帧数据存放在第一帧缓冲区。

在一种可能的实施方式中,图形处理单元还用于:将帧数据分割为图像分割块,以图像分割块为单位对帧数据进行压缩编码。

在一种可能的实施方式中,网络接口单元基于互联与图形处理单元建立直接通信,网络接口单元还用于:基于直接通信获取帧数据在第一帧缓冲区的物理地址信息,并基于预设传输协议的最大传输单元(MTU)信息和物理地址信息配置DMA描述符,DMA模块基于DMA描述符实现第一帧缓冲区中的帧数据的分段搬移。

在一种可能的实施方式中,处理后的帧数据包括:经过图形处理单元渲染处理生成的整帧图像数据,和/或,经过图形处理单元分块渲染处理生成的图像碎片数据。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

在一种可能的实施方式中,预设网络传输协议为以下中的至少一种:WebRTC、RTP、RTMP、MPEG DASH、HTTP。本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:本实施例中,通过在GPU的内存空间中维护第一帧缓冲区,在网络接口单元上部署用于实现数据在第一帧缓冲区和网络接口单元之间的直接搬移的DMA模块,以及在网络接口单元上部署实现数据直接打包为符合预设网络传输协议的数据包的编解码单元,直接完成了把GPU输出的帧数据直接打包通过网卡发送,减少了数据搬移次数,可以极大限度的降低数据传输延时,且降低系统内存带宽消耗。

第三方面,提供一种视频传输方法,应用于数据传输装置,装置包括:通过总线互联的至少一个图形处理单元和网络接口单元,其中网络接口单元上集成有编解码模块,且网络接口单元在内存中设有具有连续物理地址的第二帧缓冲区;方法包括:图形处理单元通过分块渲染生成预设粒度的帧数据,并通过总线将连续得到的多个预设粒度的帧数据连续存放在网络接口单元的第二帧缓冲区;网络接口单元通过编解码模块将第二帧缓冲区中的一个或多个预设粒度的帧数据封装为符合预设网络传输协议的数据包。

在一种可能的实施方式中,图形处理单元通过总线将连续得到的多个帧数据连续存放在网络接口的第二帧缓冲区之前,方法还包括:图形处理单元对预设粒度的帧数据进行压缩编码,以将压缩编码后的帧数据存放在网络接口的第二帧缓冲区。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2;

在一种可能的实施方式中,预设网络传输协议包括以下中的至少一种:WebRTC协议、RTP协议、RTMP、MPEG DASH、HTTP。

第四方面,提供一种数据传输装置,包括:通过总线互联的至少一个图形处理单元和网络接口单元,其中网络接口单元上集成有编解码模块,且网络接口单元在内存中设有具有连续物理地址的第二帧缓冲区;其中,图形处理单元用于通过分块渲染生成预设粒度的帧数据,并通过总线将连续得到的多个预设粒度的帧数据连续存放在网络接口单元的第二帧缓冲区;网络接口单元用于通过编解码模块将第二帧缓冲区中的一个或多个预设粒度的帧数据封装为符合预设网络传输协议的数据包。

在一种可能的实施方式中,图形处理单元还用于:对预设粒度的帧数据进行压缩编码,以将压缩编码后的帧数据存放在网络接口的第二帧缓冲区。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

在一种可能的实施方式中,预设网络传输协议包括以下中的至少一种:WebRTC协议、RTP协议、RTMP、MPEG DASH、HTTP。

本申请实施例采用的上述第三方面和第四方面提供的至少一个技术方案能够达到以下有益效果:通过GPU直接把渲染生成的图像数据写入在网络接口单元的内存空间中维护的第二帧缓冲区,在网络接口单元上部署实现数据直接打包为符合预设网络传输协议的数据包的编解码单元,实现了把GPU输出的帧数据直接打包通过网卡发送,减少了数据搬移次数,可以极大限度的降低数据传输延时,且降低系统内存带宽消耗。

应当理解,上述说明仅是本发明技术方案的概述,以便能够更清楚地了解本发明的技术手段,从而可依照说明书的内容予以实施。为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举例说明本发明的具体实施方式。

附图说明

通过阅读下文的示例性实施例的详细描述,本领域普通技术人员将明白本文所述的优点和益处以及其他优点和益处。附图仅用于示出示例性实施例的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的标号表示相同的部件。在附图中:

图1为根据本发明一实施例的数据传输装置的结构示意图;

图2为根据本发明一实施例的数据传输方法的流程示意图;

图3为根据本发明一实施例的数据封包的示意图;

图4为根据本发明一实施例的数据传输装置的结构示意图;

图5为根据本发明一实施例的数据传输方法的流程示意图。

在附图中,相同或对应的标号表示相同或对应的部分。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

在本申请实施例的描述中,应理解,诸如“包括”或“具有”等术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不旨在排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在的可能性。

除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。

术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。

本申请中的所有代码都是示例性的,本领域技术人员根据所使用的编程语言,具体的需求和个人习惯等因素会在不脱离本申请的思想的条件下想到各种变型。

另外还需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

图1示出根据本申请一实施例的数据传输装置10。装置10可以包括互联的图形处理单元(GPU)11和网络接口单元14。根据一示例实施例,网络接口单元14和GPU11之间的互联可以通过多种方式来完成,包括但不限于共享PCIe Root Complex,或者PCIe switch或者是其他的互联接口。

图形处理单元11(GPU)用于执行诸如图像渲染的复杂图像计算,其连接至独立的GPU内存空间12,GPU11在该内存空间12中创建并维护第一帧缓冲区13,第一帧缓冲区13可以具有连续物理地址,用于存放图形处理单元11处理后的帧数据。

网络接口单元14(Network Interface Controller,以下简称NIC)用于从图形处理单元11的第一帧缓冲区13直接获取处理后的帧数据,并将该帧数据打包为符合预设网络传输协议的数据包,从而可以将该数据包直接发送到远端。具体地,该网络接口单元11中集成包括DMA(Direct Memory Access,即直接存储器访问)模块15和编解码模块16,DMA模块15用于提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。利用该DMA模块15实现帧数据从第一缓冲区13至网络接口单元14的直接搬移,然后利用编解码模块16将获取的帧数据转换为符合预设网络传输协议的数据包。可选地,可以利用现场可编程门阵列(FPGA)实现上述网络接口单元14。

图2为根据本申请一实施例的数据传输方法的流程示意图,用于实现GPU渲染完成的视频数据直接通过网络接口单元进行网络传输。在本实施例中,视频传输方法的执行主体可以是图2所示实施例中的数据传输装置,但不限于此。

如图2所示,本实施例提供的方法可以包括以下步骤:

S201、图形处理单元接收并处理帧数据,并将处理后的帧数据存放在第一帧缓冲区;

在一些可能的实施方式中,处理后的帧数据可以包括:经过图形处理单元渲染处理生成的整帧图像数据,和/或,经过图形处理单元分块渲染处理生成的图像碎片数据。具体地,图形处理单元每次可以渲染出整帧图像数据,也可以通过分块渲染每次只生成图像碎片数据,本申请中的帧数据可以是由多个整帧图像数据组成,也可以是由多个粒度更小的图像碎片数据组成,还可以根据图像复杂度自适应调整渲染方式,本申请对此不做具体限定。

S202、网络接口单元通过DMA模块将第一帧缓冲区中的帧数据分段搬移到网络接口单元,并通过编解码模块对至少一个帧数据分段进行封包,得到符合预设网络传输协议的数据包。

具体地,图形处理单元和网络接口单元可以通过总线互联建立直接通信,比如在GPU和NIC之间可以基于PCIe总线接口建立FIFO通信,GPU将每次处理后的帧数据存入第一帧缓冲区,并负责向FIFO中写地址,包括每次处理后的帧数据在第一帧缓冲区的起始地址和长度。网络接口模块负责从FIFO中读地址,从而获得存放在第一帧缓冲区中的各个帧数据的真实物理地址,并通过DMA模块基于真实物理地址将帧数据依次从第一帧缓冲区直接搬移到网络接口单元。

具体地,网络接口单元可以基于预设网络传输协议要求的载荷(MTU)信息确定搬移的帧数据分段,本申请对此不作具体限定。

例如,假设GPU每次渲染生成整帧图像数据,且整帧图像数据小于预设网络传输协议要求的最大载荷,GPU可以将每次渲染生成的整张图像数据存入第一帧缓冲区,并基于整张图像数据在第一帧缓冲区中的起始地址和长度向FIFO中写地址。网络接口模块从FIFO中读地址以获得每次渲染生成的整帧图像数据的真实物理地址,网络接口模块通过DMA模块根据真实物理地址从第一帧缓冲区搬移帧数据,其中每次搬移的帧数据分段可以是整帧图像数据。

又例如,假设GPU每次通过分块渲染生成图像碎片数据,若干图像碎片数据组成整帧图像,图像碎片数据小于预设网络传输协议要求的最大载荷,GPU可以将分块渲染生成的一个或多个图像碎片数据依次存入第一帧缓冲区,并负责基于一个或多个图像碎片数据各自在第一帧缓冲区中的起始地址和长度向FIFO中连续写地址。网络接口模块从FIFO中读地址以连续获得图像碎片数据的真实物理地址,网络接口模块通过DMA模块根据一个或多个图像碎片的真实物理地址从第一帧缓冲区分段搬移帧数据,其中搬移的帧数据分段可以是图像碎片数据。

网络接口单元(NIC)用于对外提供连接网络的通信线路接口,可根据需要连接到不同的线缆适配器,例如电缆接口、光纤接口或无限带宽技术(InfiniBand)接口,实现数据信号的接收和发送的功能。网络接口单元可以根据需求对编解码模块进行配置,使其支持对不同网络传输协议的处理,其内部可以为专门针对网络传输协议对帧数据进行封装、解析的芯片电路。

基于此,网络接口单元在分段搬移存放在第一帧缓冲区的帧数据的过程中,可以通过编解码模块将至少一个帧数据分段直接封包为符合预设网络传输协议的数据包,例如RTP数据包。

利用本实施例,通过在GPU的内存空间中维护第一帧缓冲区,在网络接口单元上部署用于实现数据在第一帧缓冲区和网络接口单元之间的直接搬移的DMA模块,以及在网络接口单元上部署实现数据直接打包为符合预设网络传输协议的数据包的编解码单元,直接完成了把GPU输出的帧数据直接打包通过NIC发送,减少了数据搬移次数,可以极大限度的降低数据传输延时,且降低系统内存带宽消耗。

需要说明的是,第一帧缓冲区中的“第一”不具有任何特殊的含义,仅说明是GPU内存中的一个具体的存储区域。

在一种可能的实施方式中,预设网络传输协议可以为专门用于流式数据网络传输的协议,包括以下中的至少一种:WebRTC、RTP、RTMP、MPEG DASH、HTTP。

在一种可能的实施方式中,DMA模块具有Scatter-Gather功能,以对零散存放在第一帧缓冲区的帧数据进行搬移后整合。

例如,GPU分块渲染生成上下两部分图像碎片数据,这两个图像碎片零散地存储在第一帧缓冲区中的不同物理地址,这样可以根据该物理地址构建散布表,使得DMA模块可以根据该散布表将第一帧缓冲区中至少一个连续数据块进行离散整合,使得网络接口单元在读取帧数据时可以分段读取后整合,以便节省性能,更高效的执行数据传输处理。

在一种可能的实施方式中,为了进一步降低数据处理和传输过程中的时间延迟,在以上S201的过程中,图形处理单元对处理后的帧数据进行压缩编码,并将压缩编码后的帧数据存放在第一帧缓冲区。具体地,GPU对处理后的帧数据进行压缩编码得到编码块,并以编码块的格式存储帧数据,网络接口单元通过DMA模块将第一帧缓冲区中存储的若干编码块分段搬移到网络接口单元,并通过编解码模块将分段搬移的一个或多个编码块封包为符合预设网络传输协议的数据包。其中,搬移的帧数据分段可以是编码块,具体可以根据预设网络传输协议的配置信息确定需要连续搬移指定个编码块,并封包为数据包。本实施例中,通过对帧数据进行压缩编码后再进行搬移,能够进一步降低数据传输延迟。

在一种可能的实施方式中,为了进一步降低数据处理和传输过程中的时间延迟,图形处理单元对处理后的帧数据进行压缩编码还可以进一步包括:图形处理单元将帧数据分割为图像分割块,以图像分割块为单位对帧数据进行压缩编码。换言之,图形处理单元对帧数据进行分块压缩编码以得到小粒度的编码块,利用小粒度的编码块更加有利于数据传输,进一步降低数据传输延迟。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

一个示例中,示出了将H.264格式的编码块打包为符合预设网络传输协议的RTP数据包的示例。其中,参考图1,可以在GPU上实现渲染模块和编码模块,其中渲染模块用于渲染生成帧数据,编码模块用于对渲染生成的帧数据进行压缩编码得到编码块,以使得编码后的帧数据能够便于传输。在本示例中,以H.264编码器为例进行描述,但不限于此。参考图4,在H.264视频编码标准中,整个系统框架被分为了两个层:视频编码层(VCL,全称VideoCoding Layer)和网络抽象层(NAL,全称Network Abstract Layer)。其中,前者负责有效表示视频数据的内容,而后者则负责格式化数据并提供头信息,以保证数据适合各种信道和存储介质上的传播。视频编码层(VCL)与网络抽象层(NAL)相互配合,使得编码后的视频数据能够有效的在各种不同的网络环境中传输。

参考图3,GPU对帧数据进行压缩编码或者分块压缩编码之后,生成若干个NAL单元(NALU)。NAL单元包括头信息(NAL Header)和荷载信息(Payload)。其中,一个NAL单元可以对应于一帧图像,也可以由多个NAL单元(NALU)对应于一帧图像。帧数据以NAL单元的形式存入第一帧缓冲区中,并且GPU每生成一个NAL单元,就会通过互联将NAL单元的物理地址信息告知网络接口单元,网络接口单元基于RTP协议要求的最大载荷(MTU)、封包类型等配置信息和NAL单元的物理地址信息配置DMA描述符,DMA模块基于该DMA描述符执行数据直接搬移动作。网络接口单元在分段搬移过程中对搬移的至少一个帧数据分段进行封包操作,封包操作包括单一NAL单元模式(STAP)、多NAL单元模式(MTAP)、分片单元模式(FU),在RTPheader里面的载荷类型(PT)字段指定了封包payload的类型。按照封包的类型不同,在搬移过程中插入PTP header、NALU size、FU indicator、FU header等信息来组成完整的RTP协议。由此网络接口单元可以将生成的RTP数据包直接发出到网络中。

在一种可能的实施方式中,网络接口单元基于互联(PCIe)与图形处理单元建立直接通信,网络接口单元通过DMA模块分段搬移第一帧缓冲区中的帧数据,具体包括:网络接口单元基于直接通信获取帧数据在第一帧缓冲区的物理地址信息,并基于预设传输协议的配置信息和物理地址信息配置DMA描述符,DMA模块基于DMA描述符实现第一帧缓冲区中的帧数据的分段搬移。

参考图3,假设预设传输协议的载荷(MTU)信息设定最大载荷(MTU),左边两个NALU的数据量接近最大载荷,则本次分段搬移所采用的DMA描述符就只包含左边两个NALU的物理地址信息,根据DMA描述符搬移的帧数据分段包括最左边的两个NALU,并且最终将其打包成为一个RTP数据包。

关于本申请实施例的方法流程图,将某些操作描述为以一定顺序执行的不同的步骤。这样的流程图属于说明性的而非限制性的。可以将在本文中所描述的某些步骤分组在一起并且在单个操作中执行、可以将某些步骤分割成多个子步骤、并且可以以不同于在本文中所示出的顺序来执行某些步骤。可以由任何电路结构和/或有形机制(例如,由在计算机设备上运行的软件、硬件(例如,处理器或芯片实现的逻辑功能)等、和/或其任何组合)以任何方式来实现在流程图中所示出的各个步骤。

基于相同的技术构思,本发明实施例还提供一种数据传输装置,用于执行上述任一实施例所提供的数据传输方法。图1为本发明实施例提供的一种数据传输装置。

参考图1,装置包括:通过总线互联的至少一个图形处理单元和网络接口单元,图形处理单元在内存空间中设有第一帧缓冲区,网络接口单元上集成有DMA模块和编解码模块;其中,图形处理单元用于接收并处理帧数据,并将处理后的帧数据存放在第一帧缓冲区;网络接口单元用于通过DMA模块将第一帧缓冲区中的帧数据分段搬移到网络接口单元,并通过编解码模块对帧数据分段进行封包,得到符合预设网络传输协议的数据包。

在一种可能的实施方式中,DMA模块具有Scatter-Gather功能,以在搬移零散存放在第一帧缓冲区的帧数据之后进行数据整合。

在一种可能的实施方式中,图形处理单元还用于:对处理后的帧数据进行压缩编码,并将压缩编码后的帧数据存放在第一帧缓冲区。

在一种可能的实施方式中,图形处理单元还用于:将帧数据分割为图像分割块,以图像分割块为单位对帧数据进行压缩编码。

在一种可能的实施方式中,网络接口单元基于互联与图形处理单元建立直接通信,网络接口单元还用于:基于直接通信获取帧数据在第一帧缓冲区的物理地址信息,并基于预设传输协议的最大载荷和物理地址信息配置DMA描述符,DMA模块基于DMA描述符实现第一帧缓冲区中的帧数据的分段搬移。

在一种可能的实施方式中,帧数据由渲染生成的整帧图像组成,和/或由分块渲染生成的图像碎片组成。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

在一种可能的实施方式中,预设网络传输协议为以下中的至少一种:WebRTC、RTP、RTMP、MPEG DASH、HTTP。

需要说明的是,本申请实施例中的数据传输装置可以实现前述数据传输方法的实施例的各个过程,并达到相同的效果和功能,这里不再赘述。

图4示出根据本申请一实施例的数据传输装置40。装置40包括:通过总线互联的至少一个图形处理单元41和网络接口单元42。根据一示例实施例,网络接口单元42和GPU41之间的互联可以通过多种方式来完成,包括但不限于共享PCIe Root Complex,或者PCIeswitch或者是其他的互联接口。图形处理单元11(GPU)用于执行诸如图像渲染的复杂图像计算。网络接口单元42上集成有编解码模块44,且网络接口单元42在内存中设有具有连续物理地址的第二帧缓冲区43。

图5示出根据本申请一实施例的数据传输方法的流程示意图,用于实现GPU渲染完成的视频数据直接通过网络接口单元进行网络传输。在本实施例中,视频传输方法的执行主体可以是图4所示实施例中的数据传输装置,但不限于此。

如图5所示,本实施例提供的方法可以包括以下步骤:

S501、图形处理单元通过分块渲染生成预设粒度的帧数据,并通过总线将连续得到的多个预设粒度的帧数据连续存放在网络接口单元的第二帧缓冲区;

S502、网络接口单元通过编解码模块将第二帧缓冲区中的一个或多个预设粒度的帧数据封装为符合预设网络传输协议的数据包。

利用本实施例,通过在网络接口单元的内存空间中维护第二帧缓冲区,以及在网络接口单元上部署实现数据直接打包为符合预设网络传输协议的数据包的编解码单元,直接完成了把GPU输出的帧数据直接打包通过网卡发送,减少了数据搬移次数,可以极大限度的降低数据传输延时,且降低系统内存带宽消耗

在一种可能的实施方式中,图形处理单元通过总线将连续得到的多个帧数据连续存放在网络接口的第二帧缓冲区之前,方法还包括:图形处理单元对预设粒度的帧数据进行压缩编码,以将压缩编码后的帧数据存放在网络接口的第二帧缓冲区。具体地,GPU对处理后的帧数据进行压缩编码得到编码块,并以编码块的格式存储帧数据至第二帧缓冲区。本实施例中,通过对帧数据进行压缩编码后再进行搬移,能够进一步降低数据传输延迟。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2;

在一种可能的实施方式中,预设网络传输协议包括以下中的至少一种:WebRTC协议、RTP协议、RTMP、MPEG DASH、HTTP。

基于相同的技术构思,本发明实施例还提供一种数据传输装置,用于执行上述任一实施例所提供的数据传输方法。图4为本发明实施例提供的一种数据传输装置。

如图4所示,装置40包括:通过总线互联的至少一个图形处理单元和网络接口单元,其中网络接口单元上集成有编解码模块,且网络接口单元在内存中设有具有连续物理地址的第二帧缓冲区;其中,图形处理单元用于通过分块渲染生成预设粒度的帧数据,并通过总线将连续得到的多个预设粒度的帧数据连续存放在网络接口单元的第二帧缓冲区;网络接口单元用于通过编解码模块将第二帧缓冲区中的一个或多个预设粒度的帧数据封装为符合预设网络传输协议的数据包。

在一种可能的实施方式中,图形处理单元还用于:对预设粒度的帧数据进行压缩编码,以将压缩编码后的帧数据存放在网络接口的第二帧缓冲区。

在一种可能的实施方式中,图形处理单元基于预设的视频编码标准对帧数据进行压缩编码;其中,预设的视频编码标准为以下中的至少一种:H.264、H.265、HEVC、VP8、VP9、AVC1和AVC2。

在一种可能的实施方式中,预设网络传输协议包括以下中的至少一种:WebRTC协议、RTP协议、RTMP、MPEG DASH、HTTP。

本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备和计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以其描述进行了简化,相关之处可参见方法实施例的部分说明即可。

虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

相关技术
  • 发送装置、信号传输方法、数据分配系统及其方法、数据接收装置、数据提供装置及其方法和数据送出装置
  • 数据传输装置、数据接收装置、数据传输系统和数据传输方法
技术分类

06120113148681