CN114040445B - 一种数据传输方法及装置 - Google Patents
一种数据传输方法及装置 Download PDFInfo
- Publication number
- CN114040445B CN114040445B CN202111312575.3A CN202111312575A CN114040445B CN 114040445 B CN114040445 B CN 114040445B CN 202111312575 A CN202111312575 A CN 202111312575A CN 114040445 B CN114040445 B CN 114040445B
- Authority
- CN
- China
- Prior art keywords
- data
- packet
- dimensional model
- sub
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/06—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
- H04W28/065—Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information using assembly or disassembly of packets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种数据传输方法及装置,用以实现实时三维通信系统中的三维模型数据的分包传输,避免较大数据对带宽造成的压力,提升传输效率,避免终端渲染卡顿、帧率下降的问题。在发送端,本申请提供的方法,应用于实时三维通信系统,该方法包括:对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
Description
技术领域
本申请涉及虚拟现实技术领域,尤其涉及一种数据传输方法及装置。
背景技术
3D视觉交互系统取决于虚拟现实(VR)、增强现实(AR)和混合现实(MR)的发展,这些技术统称为扩展现实(Extended Reality,XR)。目前,随着5G技术和XR技术的结合,三维重建技术正在飞速发展。三维重建是指根据单视图或者多视图的图像重建三维信息的过程。
在实时三维通信系统中,由于要实时传输人体三维模型数据,数据量巨大,现有技术中通常使用流控制传输协议(SCTP,Stream Control Transmission Protocol)协议(一种在网络连接两端之间同时传输多个数据流的协议),进行数据传输,这种实时的端到端的数据传输限制了传输数据的大小,而且一次性传输较大数据对带宽也会造成很大的压力,影响传输效率,表现为终端渲染卡顿,帧率下降等。
发明内容
本申请实施例提供了一种数据传输方法及装置,用以实现实时三维通信系统中的三维模型数据的分包传输,避免较大数据对带宽造成的压力,提升传输效率,避免终端渲染卡顿、帧率下降的问题。
在发送端,本申请实施例提供的一种数据传输方法,应用于实时三维通信系统,该方法包括:
对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;
将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
本申请实施例通过对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包,从而实现了实时三维通信系统中的三维模型数据的分包传输,避免了较大数据对带宽造成的压力,提升了三维模型数据的传输效率,避免终端渲染三维模型的卡顿、帧率下降的问题。
相应地,在接收端,本申请实施例提供的一种数据传输方法,应用于实时三维通信系统,该方法包括:
接收发送端发送的对目标采集的完整的三维模型数据包进行分包处理得到的数据子包;
利用多个所述数据子包,重建所述目标的完整的三维模型数据包。
本申请另一实施例提供了一种计算设备,其包括存储器和处理器,其中,所述存储器用于存储程序指令,所述处理器用于调用所述存储器中存储的程序指令,按照获得的程序执行上述任一种方法。
本申请另一实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行上述任一种方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的三维模型数据包的数据子包的头部协议示意图;
图2为本申请实施例提供的三维模型数据包的数据子包的头部信息的值的示意图;
图3为本申请实施例提供的一种数据传输的整体流程示意图;
图4为本申请实施例提供的发送端的一种数据传输方法的流程示意图;
图5为本申请实施例提供的接收端的一种数据传输方法的流程示意图;
图6为本申请实施例提供的发送端的一种数据传输装置的结构示意图;
图7为本申请实施例提供的接收端的一种数据传输装置的结构示意图;
图8为本申请实施例提供的发送端的另一种数据传输装置的结构示意图;
图9为本申请实施例提供的接收端的另一种数据传输装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,并不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种数据传输方法及装置,用以实现实时三维通信系统中的三维模型数据的分包传输,避免较大数据对带宽造成的压力,提升传输效率,避免终端渲染卡顿、帧率下降的问题。
其中,方法和装置是基于同一申请构思的,由于方法和装置解决问题的原理相似,因此装置和方法的实施可以相互参见,重复之处不再赘述。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供的技术方案可以适用于多种系统,尤其是5G系统。例如适用的系统可以是全球移动通讯(global system of mobile communication,GSM)系统、码分多址(code division multiple access,CDMA)系统、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)通用分组无线业务(general packet radio service,GPRS)系统、长期演进(long term evolution,LTE)系统、LTE频分双工(frequencydivision duplex,FDD)系统、LTE时分双工(time division duplex,TDD)、通用移动系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwideinteroperability for microwave access,WiMAX)系统、5G系统以及5G NR系统等。这多种系统中均包括终端设备和网络设备。
本申请实施例涉及的发送端和接收端都可以是任意类型的终端设备,所述终端设备,可以是指向用户提供语音和/或数据连通性的设备,具有无线连接功能的手持式设备、或连接到无线调制解调器的其他处理设备。在不同的系统中,终端设备的名称可能也不相同,例如在5G系统中,终端设备可以称为用户设备(user equipment,UE)。无线终端设备可以经RAN与一个或多个核心网进行通信,无线终端设备可以是移动终端设备,如移动电话(或称为“蜂窝”电话)和具有移动终端设备的计算机,例如,可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,它们与无线接入网交换语言和/或数据。例如,个人通信业务(personal communication service,PCS)电话、无绳电话、会话发起协议(sessioninitiated protocol,SIP)话机、无线本地环路(wireless local loop,WLL)站、个人数字助理(personal digital assistant,PDA)等设备。无线终端设备也可以称为系统、订户单元(subscriber unit)、订户站(subscriber station),移动站(mobile station)、移动台(mobile)、远程站(remote station)、接入点(access point)、远程终端设备(remoteterminal)、接入终端设备(access terminal)、用户终端设备(user terminal)、用户代理(user agent)、用户装置(user device),本申请实施例中并不限定。
下面结合说明书附图对本申请各个实施例进行详细描述。需要说明的是,本申请实施例的展示顺序仅代表实施例的先后顺序,并不代表实施例所提供的技术方案的优劣。
本申请实施例提供的一种实时三维通信系统中数据传输方案,可以解决三维通信系统中,由于使用SCTP协议进行数据传输,导致无法直接传输大数据。具体地,三维通信系统传输的模型数据的大小为3MB,实时驱动数据的大小为32KB。SCTP传输通道限制数据大小在1MB以内。因此,本申请实施例提出,3MB大小的模型数据需要分割传输,也就是在发送端需要分包,在接收端进行组包成完整模型数据,从而解决了无法传输三维通信系统中的模型数据问题,进而可以实现三维重建技术。其中,组包完的数据需要保证数据的可靠性和无重复性,也就是要具有数据校验功能,可以实时校验数据的可靠性。
其中,关于所述模型数据:例如由4组深度相机环绕静止人体360度拍摄,从拍摄的深度图片中提取并生成人体模型顶点坐标、纹理坐标、面片数据、骨架数据、权重数据和全身纹理数据等信息。利用这些数据信息,可以渲染出静态的人体三维模型。
关于所述驱动数据:例如由4组深度相机环绕人体360度拍摄,人体可以做出一些动作和表情,从拍摄的深度图片中提取并生成面部顶点数据、手部顶点数据、全身纹理数据、骨架数据等。通过这些数据可以驱动所述模型数据动作和表情的变化。
三维重建后的数据分为模型数据和驱动数据,模型数据是人体静止状态下,通过深度摄像机360度拍摄人体扫描后的点云以及纹理数据,驱动数据则是实时人体的动作变化数据,利用实时驱动数据就可以驱动模型数据。
三维重建技术分为离线和实时模式。离线模式下,可以通过体积视频向用户展示提前录制好的重建后的3D数字人像。而实时三维重建则是需要将实时采集的人体模型数据和驱动数据,通过网络传输到对端进行实时渲染。基于三维重建的虚拟社交为应用场景,通过三维通信系统,可以实现不同用户通过三维重建将各自的动态三维模型和驱动数据传输给其他用户,通过VR或者AR设备,将达到身临其境面对面交互的沉浸体验,有别于传统电话或者视频会议的通讯方式。
本申请实施例将对目标采集的完整的三维模型数据包进行分包,传输相应的数据子包,接收端组包,从而可以传输任意大数据,使大数据平滑无阻塞传输,低延时,保证实时性以及数据的校验,保证三维模型数据的准确、可靠传输,有效提高三维模型数据的传输效率、终端渲染的帧率等,使得三维模型数据的重建传输过程更加流畅、平滑,可以满足实时三维重建渲染的要求和虚拟社交实时交互的场景需求。
本申请实施例中所述的发送端,也可以称为采集端,即三维重建采集终端,使用深度相机,将人体模型和动作采集并计算出模型数据和驱动数据。
本申请实施例中所述的接收端,也可以称为渲染端,用于将采集端发送的数据,进行解析并渲染,重建出采集端采集的人物模型和动作。
本申请实施例中,例如可以采用SCTP(Stream Control Transmission Protocol)传输协议进行数据传输,SCTP在TCP/IP协议栈中所处的位置和TCP、UDP类似,兼有TCP/UDP两者特征,并支持可靠传输。本申请实施例中在发送端和接收端之间建立的数据传输通道中,例如底层协议为SCTP(当然不限于此),可实现端到端可靠、低延时传输。
本申请实施例中,对目标,例如对人体或其他物体等,采集完整的三维模型数据包,进行分包处理,得到多个数据子包,将这些数据子包,依次(也就是按照数据的先后顺序)传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
其中,每一数据子包,也即数据传输通道上实际传输的数据包(Package),包括包头(Header)和数据包的有效数据(Payload)。其中,Package=Header+Payload。
本申请实施例中,预设的最大包长度(Max Package Length,MPL)为实际传输时,传输的每一数据子包的大小,例如,受底层SCTP传输协议限制,MPL最大为1MB。MPL过小,有效数据占比小,通信效率低;MPL过大,数据包延迟大,数据包传输过程中出错的概率也变大。
本申请实施例中,关于数据子包的头部的协议部分的设计,如图1所示,头部含有下面所述的七个协议中的一个或多个协议的信息,用以接收端进行组包以及数据校验,所述七个协议如下:
第一个协议是RTP(Real-time Transport Protocol,实时传输协议)载荷类型(PT),占用两个bit,标识了RTP载荷的类型,即此数据子包是数据包还是SR(SenderReports,发送者报告),其中,所述SR是用于和音视频同步的包,以下给出的示例中不涉及到音视频同步相关,因此所有的数据子包都是数据包,数据包对应的PT值为0,SR发送报告对应的PT值为1。
第二个协议是时间戳标识(TI),占用一个bit,时间戳标识也是为了做同步,本申请实施例中不涉及,设置值为0即可。
第三个协议是数据子包优先级(PRI),占用2个bit,以下本申请实施例中所有数据子包都为数据包,优先级最高,0为最高,值越大优先级越低。
第四个协议为数据子包长度(PL),具体为数据子包中有效负载数据的长度,不包含头部的长度,占用19个bit,在接收端进行数据组包时,可以从头部读出数据包长度,然后与实际接收到的数据的长度进行对比,从而进行数据校验。
第五个协议为数据子包的序列号(SSN),占用8个bit,标识数据子包的序列,即标识了数据子包中的有效负载数据在完整的三维模型数据包中的数据排列顺序,从而方便各端对数据子包的管理、顺序传输,以及组包时的数据校验。
第六个协议为完整的三维模型数据包的标识,也可以称为序列号,例如是帧号(SN),占用16个bit,一个完整的三维模型数据包对应的所有的数据子包都有一个共同的帧号,即分包之前的序列号,设置帧号的意义是可以进行数据组包后对数据可靠性进行校验,也就是说,可以明确哪些数据子包是属于同一三维模型数据包的。
最后一个协议为对所述三维模型数据包进行分包得到的数据子包的个数(MSSN),占用8个bit,根据原始完整的三维模型数据包的大小与设置的MPL,就可以计算出数据子包数,即MSSN=完整的三维模型数据包大小/MPL。本申请实施例中完整的三维模型数据包的大小为3MB,MPL为512KB,那么MSSN就为3MB/512KB=6,即需要对完整的三维模型数据包分包成6个数据子包。
本申请实施例中提供的三维重建过程,分为采集、传输、渲染,采集的数据分为模型数据和实时驱动数据,模型数据和驱动数据传输到远端进行解析渲染,整个过程便是三维通信系统的基础流程。在实际应用场景中,需要传输的模型数据大于SCTP协议数据传输的最大限制,因此将大小例如为3MB的模型数据,分成6个数据包,其中,是按照预设的最大包长度(Max Package Length,MPL)为512KB进行的分包,在实际测试中发现,MPL为512KB时,传输效率最高,对应的数据子包编号分别为:Packet1、Packet2、Packet3、Packet4、Packet5、Packet6,每个数据子包的大小为7+512*1024=524295字节。其中7是头部(Header)大小,512*1024为有效数据(Payload)大小。按照顺序分别发送这6个包,具体例如图2所示,由于SCTP协议设置为可靠传输,正常情况下,在接收端接收数据的顺序也是发送端发送数据的顺序,按照这个顺序进行组包,并进行数据校验,就可以得到组包后完整的3MB的模型数据。对于实时驱动数据,因为小于数据传输协议的限制,因此只需要在驱动数据上加上头部,在头部标识帧序列以及数据长度即可,以便接收端对驱动数据进行检验。
本申请实施例提供的整体实现流程,例如图3所示,包括:
步骤一、采集端(即发送端)与渲染端(即接收端)建立连接,并创建数据传输通道,底层协议例如为SCTP,支持可靠、实时数据传输。
步骤二、渲染端开启接收线程,用于阻塞等待接收完整数据帧。并且,开启渲染线程,当接收线程接收到完整数据帧会通知渲染线程从缓存队列中取出所有数据包,并进行组包成完整数据帧,进行渲染。
需要说明的是,本申请实施例中,在接收端,通过接收线程来接收发送端发送的数据子包,通过渲染线程来实现三维模型的渲染。具体地,接收线程将接收到的数据子包依次放到缓存队列中,当得到完整的三维模型数据包时,例如六个数据子包都接收完成了,则接收线程会触发渲染线程从缓存队列中取出所有数据子包进行组包,得到完整的三维模型数据包,并基于完整的三维模型数据包进行三维模型的渲染。
接收线程、渲染线程的设计模式,类似于生产者消费者模式。接收线程从数据通道接收到数据放入缓存队列,此处可理解为生产者,当达到某一个条件,也就是某一帧的三维模型数据包对应的所有数据子包都已经接收完成,会通知渲染线程(可以理解为消费者)从缓存队列取出该帧三维模型数据包对应的所有数据子包进行组包,得到完整的三维模型数据包,然后渲染(消费)。使用此模式接收数据包、组包、渲染,可以使得接收线程和渲染线程分离解耦,并发处理,提高接收端的组包渲染效率。所述并发处理是指接收线程和渲染线程各司其职,即接收线程只负责从数据传输通道接收数据包并放入缓存队列,一旦接收完成,得到完整的三维模型数据包,便通知渲染线程进行组包和渲染,然后继续接收下一帧数据包(此时应是驱动数据),而渲染线程只负责从缓存队列取出完整的三维模型数据包对应的各个数据子包进行组包和渲染。两个线程不会相互干扰。从而提高组包效率,提高帧率,渲染出的三维模型的画面流畅。
步骤三、采集端开始进行三维人体采集,此处先采集人体模型数据,包括人体模型顶点坐标、纹理坐标、面片数据、骨架数据、权重数据和全身纹理数据等信息。为了便于传输,将数据转化为二进制数据,大小为3MB。
步骤四、采集端生成人体模型数据的帧号,帧号应为连续递增。因为模型数据是第一帧,所以SN=1,可以直接根据帧号判断当前需要传输的三维数据包的数据类型是模型数据还是驱动数据,第一帧就是模型数据。
当然,后续当被采集的目标对象发生变化时,需要传输新目标的三维模型数据及其驱动数据,一种做法是重新将帧号更新为第一帧,另外也可以有其他方法判断当前需要传输的三维数据包的数据类型是模型数据还是驱动数据,例如,可以根据数据量的大小判断,因为模型数据要比驱动数据大很多,所以据此判断采集的数据是模型数据还是驱动数据;或者,也可以根据数据内容本身判断,因为模型数据包括人体模型顶点坐标、纹理坐标、面片数据、骨架数据、权重数据和全身纹理数据等信息,而驱动数据仅包含面部顶点数据、手部顶点数据、全身纹理数据、骨架数据等信息,所以据此也可以判断采集的数据是模型数据还是驱动数据。
当确定当前需要传输的数据为模型数据时,需要计算分包数,MPL设定为512KB,那么要分包的数量就是3MB/512KB=6,因此分包个数(MSSN)为6。然后把模型数据按照先后顺序分成6份,然后为每一份生成头部,进行拼接,生成各个数据子包。最终,得到的数据子包分别为(Package1,Package2,Package3,Package4,Package5,Package6)。
以下为分包处理的详细过程:
取出模型数据0到512KB的数据作为Package1的有效负载数据Payload1,然后生成Package1头部Header1,Header1的PL为payLoad1的长度,具体为512*1024=524288,因为一共6个数据子包,所以Header1的MSSN为6,帧号(SN)为1,Package1作为第一个数据子包,所以Header1的编号SSN为1。PT类型为数据,因此此处PT的值为0(当然,在头部也可以不设置该PT的信息)。TI是时间戳标识,本申请实施例中不涉及同步,因此TI的值可以设置为0(当然,在头部也可以不设置该TI的信息)。PRI是包优先级,数据传输包优先级都是设为最高,也就是0(当然,在头部也可以不设置该PRI的信息)。最终生成的头部Header1包括{PT:0,TI:0,PRI:0,PL:524288,SSN:1,SN:1,MSSN:6},Header1与Payload1拼接,即Package1=Header1+payload1,第一个数据子包Package1确定。然后将Package1数据包通过数据传输通道传输到渲染端。
后续同理,取出模型数据512KB到1MB的数据作为Package2的有效负载数据Payload2,然后生成Package2的头部Header2,Package2作为第二个数据子包,所以Header2的编号SSN为2,其他数据同Header1中的相应信息的值。最终生成的头部Header2包括{PT:0,TI:0,PRI:0,PL:524288,SSN:2,SN:1,MSSN:6},Header2与Payload2拼接,即Package2=Header2+payload2,即确定了第二个数据子包Package2,然后将Package2数据包通过数据传输通道传输到渲染端。
Package3、Package4、Package5同理,此处不再赘述。
最后一个包Packge6,需要说明的是,Package6的Payload6不一定是512KB,有可能不足512KB,因为分包处理到最后一个数据子包可能不足512KB,那么最后一个数据子包的PL就不是524288。若不是512KB,需要将真实负载大小作为该最后一个数据子包的头部中的PL的值。
本申请实施例中,按照3MB进行分包,所以Payload6也是512KB,分包步骤同上,不再赘述,最终生成的Header6包括{PT:0,TI:0,PRI:0,PL:524288,SSN:6,SN:1,MSSN:6},Header6与Payload6进行拼接,即Package6=Header6+Payload6,即确定了第六个数据子包Package6。然后将Package6数据包通过数据传输通道传输到渲染端。至此,所有模型数据都已分包并顺序传输到渲染端。
步骤五、渲染端从数据传输通道接收到数据子包,因为SCTP传输协议设置为可靠传输,所以会顺序接收到Package1,Package2,Package3,Package4,Package5,Package6。
以下为接收端的组包详细过程:
首先,通过接收线程接收的数据子包为Package1,从Package1中解析出Header1,Header1包括信息{PT:0,TI:0,PRI:0,PL:524288,SSN:1,SN:1,MSSN:6},从Header1信息中可以得到SN为1,也就是说Package1为第一帧三维模型数据包的数据子包,MSSN为6,说明SN为1的数据子包会有6个,而Package1的SSN为1,说明Package1是6个子包的第一个数据子包,将Package1放入缓存队列中,因为此时SSN<MSSN,说明还没有接收到所有的数据子包,所以接收线程继续等待接收其他数据子包。通过比较SSN和MSSN就知道数据包是否全部获取到,当SSN等于MSSN时,说明已经接收到最后一个数据子包,又因为可靠传输,前面的数据子包都已经在缓存队列中,接下来接收到的包应该是SN+1的包,所以当SSN等于MSSN时,SN帧的数据都已经获取到了,可以进行组包成完整的SN帧数据了。
接收完Package1后,接收线程接收到下一个包,并判断接收到的包是否为Package2,即进行数据检验,从包中取出头部Header,解析头部中的信息,并根据其中的信息进行判断,若不是期待的SN为1,SSN为2,MSSN为6,那说明接收的包是无用或者错误包,直接丢弃。但是,按照正常情况下,会解析出Header2,即得到Header2中的信息:{PT:0,TI:0,PRI:0,PL:524288,SSN:2,SN:1,MSSN:6},并将Package2放入缓存队列。因为此时SSN<MSSN,所以继续等待接收下一个包,并同理进行上述的数据校验判断处理。
对于Package3、Package4、Package5的接收处理过程同上,此处不再赘述。
SN为1的最后一个数据包为Package6,接收线程接收到Package6,从中解析出Header6,然后进行数据校验,即判断是否为期待的数据包。校验通过后放入缓存队列,此时SSN等于MSSN,说明接收到了第一帧三维模型数据包的最后一个数据子包,达到了组包的条件,此时接收线程会发送一个通知给渲染线程,通知渲染线程可以从缓存队列中取出所有SN=1的数据子包进行组包了。
步骤六、渲染线程接收到接收线程的通知后被唤醒,不再阻塞,继而从缓存队列取出所有SN为1的数据子包,一共6个,分别为Package1,Package2,Package3,Package4,Package5,Package6。然后按照顺序分别从每个Package中取出Payload,进行拼接,最终组包成功。模型数据为Payload1+Payload2+Payload3+Payload4+Payload5+Payload6。然后渲染线程解析模型数据,可以获取到对应的人体模型顶点坐标、纹理坐标、面片数据、骨架数据、权重数据和全身纹理数据等信息,然后可以把人体模型渲染出来,具体如何渲染,可以采用现有技术实现,此处不再详细介绍。此时渲染端线程继续阻塞等待其他数据帧。因为模型数据已经完成渲染,要想使人体模型有动作和表情,需要驱动数据,此时驱动数据还未到来(接收线程还未通知有完整数据帧),所以阻塞等待接下来的驱动数据完整帧。
步骤七、采集端发送完模型数据后,可以采集人体驱动数据,此时可以让被采集的人做一些动作和/或表情,从而采集端生成驱动数据。驱动数据包含:面部顶点数据、手部顶点数据、全身纹理数据、骨架数据等信息,与模型数据比,很轻量,只有32KB,为了便于传输,将数据转化为二进制数据。通过驱动数据可以使模型数据渲染出和被采集人一样的动作和/或表情,也就是说,实现了目标的三维模型的动态变化。
步骤八、采集端对驱动数据采集完一帧,生成相应的帧号SN为2,因为驱动数据小于MPL,所以不需要进行分包,只需要加上头部就可以传输了,驱动数据的Header包括{PT:0,TI:0,PRI:0,PL:32520,SSN:0,SN:2,MSSN:0},因为不需要分包,所以MSSN和SSN都是0,PL为32520,SN为2,Package=Header+Payload。然后通过数据传输通道发送到渲染端。
需要说明的是,在目标(即被采集的对象)不变的情况下,传完一帧完整的三维模型数据包即可,后续无需再次传输该目标的三维模型数据包,但随着该目标动作、表情的变化,为了在渲染端实现三维模型的动作、表情等的同步变化,就需要实时传输该目标的驱动数据,也就是说,可能需要传输多帧驱动数据。
步骤九、渲染端从数据传输通道接收到数据包,首先对接收的数据进行数据校验,上一帧数据SN为1,所以期待接收的包的SN为2,如果解析头部信息得知接收到的包的SN不是2,那说明就是无效数据包,直接丢弃。正常情况解析出SN为2,为有效帧,然后放入缓存队列。进一步,头部信息中的SSN和MSSN,都为0,说明SN为2的数据包接收完毕,达到了渲染条件,此时可以唤醒渲染线程进行渲染。
步骤十、渲染线程被唤醒,从缓存队列取出SN为2的数据包,只有一个数据包,然后从SN为2的数据包的Package中取出Payload便为有效的驱动数据帧。对驱动数据进行解析,得到面部顶点数据、手部顶点数据、全身纹理数据、骨架数据等信息,然后进行渲染,将模型数据的面部顶点数据替换为驱动数据中的面部顶点数据,人的三维模型的渲染效果上就会生成新的表情,将模型数据的手部定点数据、全身纹理数据和骨架数据替换为相应的新得到的驱动数据,人的三维模型的渲染效果上就会生成新的动作。即在接收端渲染出的三维模型做出了和被采集人一样的动作。
步骤十一、后续帧的驱动数据采集传输同理。随着人的动作变化,发送端采集相应的驱动数据,并发给接收端进行渲染,完成了三维数据的实时传输,实现了三维模型的远端渲染。
本申请实施例中,只给出了一个采集端和一个渲染端之间的模型数据、驱动数据的分包、传输、组包、渲染显示的过程,但本申请实施例提供的技术方案,同样可以适用于多个采集端和多个渲染端的三维通信系统,即每一采集端都可以采用上述本申请实施例中所述的采集端的处理方法进行处理,每一渲染端可以采用上述本申请实施例中所述的渲染端的处理方法进行处理。
综上所述,在发送端,参见图4,本申请实施例提供的一种数据传输方法,应用于实时三维通信系统,该方法包括:
S101、对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;
S102、将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
其中,所述的目标,例如可以是人体,也可以是物体。
可选地,所述分包处理具体包括:
按照预设的最大包长度,从所述三维模型数据包中依次取出数据作为数据子包的有效负载数据,并生成每一数据子包的头部,所述头部包括以下信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;所述标识例如是帧号,即上述的SN;
对所述三维模型数据包进行分包得到的数据子包的个数;即上述的MSSN;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序,即子包的序列号(SSN),也即组包顺序。
由上述实施例中的具体举例说明可以看出,上述七种信息并不一定同时存在于头部中,可以是其中的一部分。
可选地,将所述多个数据子包,依次传输给接收端之后,该方法还包括:
将所述三维模型数据包对应的驱动数据,传输给所述接收端,使得所述接收端根据所述驱动数据实现所述目标的三维模型的动态变化(包括动作和/或表情的变化)。
需要说明的是,当变换了采集目标时,就需要重新传输新目标的三维模型数据,及其驱动数据,驱动数据可以随着目标的动作、表情等的变化,连续发送多帧。
另外,可选地,在步骤S101进行分包处理之前,还包括:
判断对目标采集到的数据是三维模型数据还是驱动数据,若是模型数据,则进行所述分包处理。若是驱动数据,则无需分包处理,直接加上头部信息就可以传输了。关于具体如何判断,在上述实施例中有举例说明,此处不再赘述。至于如何控制采集端是采集目标的三维模型数据还是驱动数据,可以人为来控制,当然,也可以通过人脸识别的方式自动去判断,例如通过人脸识别技术判断目标人脸发生变化时,就确定需要重新采集并发送三维模型数据,在人脸不变的情况下(即当前还是同一目标),后续只需要采集并发送该目标的驱动数据即可。
相应地,在接收端,参见图5,本申请实施例提供的一种数据传输方法,应用于实时三维通信系统,该方法包括:
S201、接收发送端发送的对目标采集的完整的三维模型数据包进行分包处理得到的数据子包;
S202、利用多个所述数据子包,重建所述目标的完整的三维模型数据包。
可选地,对于每一接收到的所述数据子包,解析出头部信息,根据所述头部信息判断是否完成对所述目标的完整的三维模型数据的接收,如果是,则重建所述目标的完整的三维模型数据包;否则,继续等待接收下一数据子包。
可选地,所述头部信息包括下列信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序。
可选地,该方法还包括:
利用重建的所述目标的完整的三维模型数据包,渲染出所述目标的三维模型。
可选地,该方法还包括:
接收所述三维模型数据包对应的驱动数据;
利用所述三维模型数据包对应的驱动数据,以及重建的所述目标的完整的三维模型数据包,实现所述目标的三维模型的动态变化。
在发送端,参见图6,本申请实施例提供的一种数据传输装置,应用于实时三维通信系统,该装置包括:
存储器520和处理器500,其中,所述存储器520用于存储程序指令,所述处理器500用于调用所述存储器520中存储的程序指令,按照获得的程序执行:
对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;
将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
可选地,所述分包处理具体包括:
按照预设的最大包长度,从所述三维模型数据包中依次取出数据作为数据子包的有效负载数据,并生成每一数据子包的头部,所述头部包括以下信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序。
可选地,将所述多个数据子包,依次传输给接收端之后,所述处理器500还用于调用所述存储器520中存储的程序指令,按照获得的程序执行:
将所述三维模型数据包对应的驱动数据,传输给所述接收端,使得所述接收端根据所述驱动数据实现所述目标的三维模型的动态变化。
收发机510,用于在处理器500的控制下接收和发送数据。
其中,在图6中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器500代表的一个或多个处理器和存储器520代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机510可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。处理器500负责管理总线架构和通常的处理,存储器520可以存储处理器500在执行操作时所使用的数据。
处理器500可以是中央处埋器(CPU)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)。
相应地,在接收端,参见图7,本申请实施例提供的一种数据传输装置,应用于实时三维通信系统,该装置包括:
存储器620和处理器600,其中,所述存储器620用于存储程序指令,所述处理器600用于调用所述存储器620中存储的程序指令,按照获得的程序执行:
接收发送端发送的对目标采集的完整的三维模型数据包进行分包处理得到的数据子包;
利用多个所述数据子包,重建所述目标的完整的三维模型数据包。
可选地,对于每一接收到的所述数据子包,解析出头部信息,根据所述头部信息判断是否完成对所述目标的完整的三维模型数据的接收,如果是,则重建所述目标的完整的三维模型数据包;否则,继续等待接收下一数据子包。
可选地,所述头部信息包括下列信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序。
可选地,所述处理器600还用于调用所述存储器620中存储的程序指令,按照获得的程序执行:
利用重建的所述目标的完整的三维模型数据包,渲染出所述目标的三维模型。
可选地,所述处理器600还用于调用所述存储器620中存储的程序指令,按照获得的程序执行:
接收所述三维模型数据包对应的驱动数据;
利用所述三维模型数据包对应的驱动数据,以及重建的所述目标的完整的三维模型数据包,实现所述目标的三维模型的动态变化。
收发机610,用于在处理器600的控制下接收和发送数据。
其中,在图7中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器600代表的一个或多个处理器和存储器620代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机610可以是多个元件,即包括发送机和接收机,提供用于在传输介质上与各种其他装置通信的单元。针对不同的用户设备,用户接口630还可以是能够外接内接需要设备的接口,连接的设备包括但不限于小键盘、显示器、扬声器、麦克风、操纵杆等。
处理器600负责管理总线架构和通常的处理,存储器620可以存储处理器600在执行操作时所使用的数据。
可选的,处理器600可以是CPU(中央处埋器)、ASIC(Application SpecificIntegrated Circuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。
在发送端,参见图8,本申请实施例提供的另一种数据传输装置,应用于实时三维通信系统,该装置包括:
分包单元11,用于对目标采集的完整的三维模型数据包,进行分包处理,得到多个数据子包;
传输单元12,用于将所述多个数据子包,依次传输给接收端,使得所述接收端重建所述目标的完整的三维模型数据包。
可选地,所述分包处理具体包括:
按照预设的最大包长度,从所述三维模型数据包中依次取出数据作为数据子包的有效负载数据,并生成每一数据子包的头部,所述头部包括以下信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序。
可选地,将所述多个数据子包,依次传输给接收端之后,传输单元12还用于:
将所述三维模型数据包对应的驱动数据,传输给所述接收端,使得所述接收端根据所述驱动数据实现所述目标的三维模型的动态变化。
相应地,在接收端,参见图9,本申请实施例提供的另一种数据传输装置,应用于实时三维通信系统,该装置包括:
接收单元21(即实现上述接收线程的功能的单元),用于接收发送端发送的对目标采集的完整的三维模型数据包进行分包处理得到的数据子包;
渲染单元22(即实现上述渲染线程的功能的单元),用于利用多个所述数据子包,重建所述目标的完整的三维模型数据包。
可选地,对于每一接收到的所述数据子包,解析出头部信息,根据所述头部信息判断是否完成对所述目标的完整的三维模型数据的接收,如果是,则重建所述目标的完整的三维模型数据包;否则,继续等待接收下一数据子包。
可选地,所述头部信息包括下列信息之一或组合:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序。
可选地,渲染单元22还用于:
利用重建的所述目标的完整的三维模型数据包,渲染出所述目标的三维模型。
可选地,接收单元21还用于:接收所述三维模型数据包对应的驱动数据;
渲染单元22还用于利用所述三维模型数据包对应的驱动数据,以及重建的所述目标的完整的三维模型数据包,实现所述目标的三维模型的动态变化。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储本申请实施例提供的任一所述方法的程序。
处理器通过调用存储器存储的程序指令,处理器用于按照获得的程序指令执行本申请实施例提供的任一所述方法。
本申请实施例提供了一种计算机可读存储介质,用于储存为上述本申请实施例提供的装置所用的计算机程序指令,其包含用于执行上述本申请实施例提供的任一方法的程序。
所述计算机可读存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
本申请实施例提供的方法可以应用于终端设备。
其中,终端设备也可称之为用户设备(User Equipment,简称为“UE”)、移动台(Mobile Station,简称为“MS”)、移动终端(Mobile Terminal)等,可选的,该终端可以具备经无线接入网(Radio Access Network,RAN)与一个或多个核心网进行通信的能力,例如,终端可以是移动电话(或称为“蜂窝”电话)、或具有移动性质的计算机等,例如,终端还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置。
上述方法处理流程可以用软件程序实现,该软件程序可以存储在存储介质中,当存储的软件程序被调用时,执行上述方法步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种数据传输方法,其特征在于,应用于实时三维通信系统,该方法包括:
获取针对目标实时采集得到的第一三维模型数据包和第一驱动数据并发送给接收端,以使所述接收端重建所述目标的三维模型和动作;
确定采集目标是否发生变化;
在采集目标未发生变化时,获取采集目标的第二驱动数据,并将所述第二驱动数据发送给接收端且不传输所述采集目标对应的三维模型数据,以使所述接收端根据接收到的所述第二驱动数据驱动重建的所述目标的三维模型进行动态变化;
在采集目标发生变化时,获取针对新目标实时采集得到的第二三维模型数据包和第三驱动数据,并对所述三维模型数据包进行分包处理,得到多个数据子包;
将所述多个数据子包和所述第三驱动数据,依次传输给接收端,以使所述接收端渲染出所述新目标的三维模型和动作。
2.根据权利要求1所述的方法,其特征在于,所述分包处理具体包括:
按照预设的最大包长度,从所述第二三维模型数据包中依次取出数据作为数据子包的有效负载数据,并生成每一数据子包的头部,所述头部包括以下信息:
数据子包的实时传输协议RTP载荷类型PT;
数据子包的时间戳标识TI;
数据子包的优先级PRI;
数据子包的长度PL;
所述第二三维模型数据包的标识;其中,所述标识为帧号SN,一个完整的三维模型数据包对应的所有的数据子包都有一个共同的帧号,使得接收端明确属于同一三维模型数据包的数据子包,在一帧完整的三维模型数据包所对应的所有数据子包都接收完成之前,阻塞渲染线程进行组包和渲染,以及使得所述接收端根据SN判断接收到的数据包是否为数据子包、驱动数据、无用包或错误包;
对所述第二三维模型数据包进行分包得到的数据子包的个数MSSN;
数据子包中的有效负载数据在所述第二三维模型数据包中的数据排列顺序SSN;
所述驱动数据的头部包括以下信息:
所述驱动数据的实时传输协议RTP载荷类型PT;
所述驱动数据的时间戳标识TI;
所述驱动数据的优先级PRI;
所述驱动数据的有效负载数据的长度PL;
所述驱动数据的帧号SN;其中,当所述第二三维模型数据包为第一帧,所述驱动数据为第二帧时,所述驱动数据的帧号SN=2,使得所述接收端在接收完所述第二三维模型数据包的所有SN=1的数据子包后,若接收到的数据包的SN不为2,则丢弃该数据包;
所述驱动数据包括的数据子包的个数MSSN;
所述驱动数据的数据子包中的有效负载数据在所述驱动数据中的数据排列顺序SSN;
其中,当所述第二三维模型数据包为第一帧时,所述第二三维模型数据包的各个数据子包的头部中的SN=1,所述第二三维模型数据包对应的驱动数据的头部中的帧号SN为2,MSSN和SSN都是0,使得所述接收端明确接收到的数据包是所述第二三维模型数据包对应的驱动数据。
3.根据权利要求2所述的方法,其特征在于,所述获取采集目标的第二驱动数据,并将所述第二驱动数据发送给接收端,包括:
针对采集目标获取完一帧完整的第二驱动数据时,为所述该帧完整的第二驱动数据生成头部,并将具有头部的第二驱动数据发送给接收端,所述第二驱动数据的头部包括的SN为2,MSSN和SSN都是0,使得所述接收端唤醒渲染线程对重建的所述目标的三维模型的动态变化进行渲染。
4.一种数据传输方法,其特征在于,应用于实时三维通信系统,该方法包括:
接收发送端发送的针对目标实时采集得到的第一三维模型数据包和第一驱动数据,并基于所述第一三维模型数据包和第一驱动数据,重建所述目标的三维模型和动作;
在采集目标未发生变化时,接收发送端发送的采集目标的第二驱动数据,并利用所述第二驱动数据驱动重建的所述目标的三维模型进行动态变化;
在采集目标发生变化时,接收发送端发送的针对新目标实时采集得到的第二三维模型数据包的多个数据子包和第三驱动数据,并基于所述第二三维模型数据包的多个数据子包和第三驱动数据,渲染出所述新目标的三维模型和动作。
5.根据权利要求4所述的方法,其特征在于,对于每一接收到的所述数据子包,解析出头部信息,根据所述头部信息判断是否完成对所述新目标的完整的三维模型数据的接收,如果是,则重建所述新目标的完整的三维模型数据包;否则,继续等待接收下一数据子包。
6.根据权利要求5所述的方法,其特征在于,所述头部信息包括下列信息:
数据子包的实时传输协议RTP载荷类型;
数据子包的时间戳标识;
数据子包的优先级;
数据子包的长度;
所述三维模型数据包的标识;其中,所述标识为帧号SN,一个完整的三维模型数据包对应的所有的数据子包都有一个共同的帧号,使得接收端明确属于同一三维模型数据包的数据子包,在一帧完整的三维模型数据包所对应的所有数据子包都接收完成之前,阻塞渲染线程进行组包和渲染,以及使得所述接收端根据SN判断接收到的数据包是否为数据子包、驱动数据、无用包或错误包;
对所述三维模型数据包进行分包得到的数据子包的个数;
数据子包中的有效负载数据在所述三维模型数据包中的数据排列顺序;
所述驱动数据也具有头部,所述驱动数据的头部包括以下信息:
所述驱动数据的实时传输协议RTP载荷类型PT;
所述驱动数据的时间戳标识TI;
所述驱动数据的优先级PRI;
所述驱动数据的有效负载数据的长度PL;
所述驱动数据的帧号SN;其中,当所述第二三维模型数据包为第一帧,所述驱动数据为第二帧时,所述驱动数据的帧号SN=2,使得所述接收端在接收完所述第二三维模型数据包的所有SN=1的数据子包后,若接收到的数据包的SN不为2,则丢弃该数据包;
所述驱动数据包括的数据子包的个数MSSN;
所述驱动数据的数据子包中的有效负载数据在所述驱动数据中的数据排列顺序SSN;
其中,当所述第二三维模型数据包为第一帧时,所述第二三维模型数据包的各个数据子包的头部中的SN=1,所述第二三维模型数据包对应的驱动数据的头部中的帧号SN为2,MSSN和SSN都是0,使得所述接收端明确接收到的数据包是所述第二三维模型数据包对应的驱动数据。
7.根据权利要求5所述的方法,其特征在于,通过接收线程接收所述多个数据子包,以及所述驱动数据,通过渲染线程实现所述目标的三维模型和动作的渲染。
8.根据权利要求7所述的方法,其特征在于,所述接收线程从数据通道接收到所述数据子包并放入缓存队列,当一帧的三维模型数据包对应的所有数据子包都接收完成时,所述接收线程通知所述渲染线程,所述渲染线程从缓存队列中取出该帧的三维模型数据包对应的所有数据子包并进行组包,得到完整的三维模型数据包,然后进行所述渲染。
9.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至8任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111312575.3A CN114040445B (zh) | 2021-11-08 | 2021-11-08 | 一种数据传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111312575.3A CN114040445B (zh) | 2021-11-08 | 2021-11-08 | 一种数据传输方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114040445A CN114040445A (zh) | 2022-02-11 |
CN114040445B true CN114040445B (zh) | 2023-08-15 |
Family
ID=80143177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111312575.3A Active CN114040445B (zh) | 2021-11-08 | 2021-11-08 | 一种数据传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114040445B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115150387A (zh) * | 2022-06-14 | 2022-10-04 | 炫彩互动网络科技有限公司 | 一种云游戏中数据传输方法 |
CN115208836A (zh) * | 2022-06-17 | 2022-10-18 | 珠海格力电器股份有限公司 | 数据包的处理方法、装置、设备及计算机可读存储介质 |
CN117041186B (zh) * | 2023-10-07 | 2024-01-30 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1687955A1 (en) * | 2003-11-24 | 2006-08-09 | Matsushita Electric Industrial Co., Ltd. | Feedback provision using general nack report blocks and loss rle report blocks |
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
CN102244560A (zh) * | 2010-05-14 | 2011-11-16 | 华为技术有限公司 | 保证视频流中宏块数据完整性的数据包发送方法及设备 |
CN102427589A (zh) * | 2012-01-01 | 2012-04-25 | 洛阳普天通信科技有限公司 | 一种绑定数个无线网络传输大业务量数据的方法及系统 |
CN103067396A (zh) * | 2012-12-29 | 2013-04-24 | 深圳先进技术研究院 | 三维gis异步通信传输系统及其异步通信传输的方法 |
CN103313073A (zh) * | 2012-03-12 | 2013-09-18 | 中兴通讯股份有限公司 | 用于三维图像数据发送、接收、传输的方法和装置 |
CN105264846A (zh) * | 2013-06-07 | 2016-01-20 | 索尼公司 | 发送装置、传输流的发送方法以及处理装置 |
CN110418140A (zh) * | 2019-07-26 | 2019-11-05 | 华北电力大学 | 视频的优化传输方法及系统 |
CN111147564A (zh) * | 2019-12-20 | 2020-05-12 | 国久大数据有限公司 | 数据文件传输方法、系统及通信终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2413237B (en) * | 2004-04-13 | 2007-04-04 | Orange Personal Comm Serv Ltd | Packet node, and method of operating a data packet network |
JP6300114B2 (ja) * | 2014-08-06 | 2018-03-28 | パナソニックIpマネジメント株式会社 | 送信方法、受信方法、送信装置及び受信装置 |
-
2021
- 2021-11-08 CN CN202111312575.3A patent/CN114040445B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1687955A1 (en) * | 2003-11-24 | 2006-08-09 | Matsushita Electric Industrial Co., Ltd. | Feedback provision using general nack report blocks and loss rle report blocks |
CN101202604A (zh) * | 2007-08-14 | 2008-06-18 | 深圳市同洲电子股份有限公司 | 一种网络数据的发送与接收方法、系统及设备 |
CN102244560A (zh) * | 2010-05-14 | 2011-11-16 | 华为技术有限公司 | 保证视频流中宏块数据完整性的数据包发送方法及设备 |
CN102427589A (zh) * | 2012-01-01 | 2012-04-25 | 洛阳普天通信科技有限公司 | 一种绑定数个无线网络传输大业务量数据的方法及系统 |
CN103313073A (zh) * | 2012-03-12 | 2013-09-18 | 中兴通讯股份有限公司 | 用于三维图像数据发送、接收、传输的方法和装置 |
CN103067396A (zh) * | 2012-12-29 | 2013-04-24 | 深圳先进技术研究院 | 三维gis异步通信传输系统及其异步通信传输的方法 |
CN105264846A (zh) * | 2013-06-07 | 2016-01-20 | 索尼公司 | 发送装置、传输流的发送方法以及处理装置 |
CN110418140A (zh) * | 2019-07-26 | 2019-11-05 | 华北电力大学 | 视频的优化传输方法及系统 |
CN111147564A (zh) * | 2019-12-20 | 2020-05-12 | 国久大数据有限公司 | 数据文件传输方法、系统及通信终端 |
Non-Patent Citations (1)
Title |
---|
王星捷,郭科,张廷斌,王刚,袁伟."新一代移动三维GIS 平台研究".《测绘通报》.2021,全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114040445A (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114040445B (zh) | 一种数据传输方法及装置 | |
US9606819B2 (en) | Wireless network, implementation method thereof, and terminal | |
EP4284004A1 (en) | Screen projection data transmission method and apparatus, electronic device, and storage medium | |
EP3097657A1 (en) | Efficiently mixing voip data | |
CN110268751A (zh) | 用于在接入网环境中选择接入和移动性管理功能的方法和系统 | |
CN105893323A (zh) | 一种读数据的方法及设备 | |
CN109041119A (zh) | 一种数据传输方法、相关设备及系统 | |
CN107241166A (zh) | 一种长期演进上的语音Volte数据保障方法和设备 | |
CN114339808A (zh) | 一种数据传输方法以及装置 | |
CN107135189B (zh) | 一种报文发送方法及物理机 | |
CN107426042A (zh) | 一种报文传输方法和发送设备 | |
CN109963106A (zh) | 一种视频图像处理方法、装置、存储介质及终端 | |
EP4195749A1 (en) | Air interface delay determination method and apparatus | |
EP2608599A1 (en) | Method of performing Internet Protocol fragmentation and related wireless network system | |
WO2022206016A1 (zh) | 一种数据分层传输方法、装置及系统 | |
CN109474956A (zh) | 上行数据传输方法、定时器配置方法及相关设备 | |
US20230363019A1 (en) | Method for information transmission | |
CN107888622A (zh) | 一种信息处理方法及移动管理实体 | |
WO2021000763A1 (zh) | 数据传输方法及装置 | |
CN113973390A (zh) | 通信方法及装置 | |
CN108924668B (zh) | 图片加载、数据提供方法及装置 | |
CN107294878A (zh) | 数据传输方法、系统及相关设备 | |
CN115243201A (zh) | 一种多播实现方法和装置 | |
EP3860209A1 (en) | Data transmission method and device | |
CN107181670B (zh) | 图片处理方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |