CN114095451A - 一种数据处理方法、设备及计算机可读存储介质 - Google Patents
一种数据处理方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114095451A CN114095451A CN202111360129.XA CN202111360129A CN114095451A CN 114095451 A CN114095451 A CN 114095451A CN 202111360129 A CN202111360129 A CN 202111360129A CN 114095451 A CN114095451 A CN 114095451A
- Authority
- CN
- China
- Prior art keywords
- data
- data element
- type
- nth
- elements
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title abstract description 40
- 238000012545 processing Methods 0.000 claims abstract description 82
- 238000012805 post-processing Methods 0.000 claims abstract description 78
- 230000005540 biological transmission Effects 0.000 claims abstract description 54
- 230000009471 action Effects 0.000 claims abstract description 10
- 238000000034 method Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 25
- 230000000694 effects Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000012790 confirmation Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000009877 rendering Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/129—Avoiding congestion; Recovering from congestion at the destination endpoint, e.g. reservation of terminal resources or buffer space
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/626—Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供了一种数据处理方法、设备及计算机可读存储介质;该数据处理方法包括:通过至少两个网络通道接收发送设备发送的数据元;当接收到的第n个数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,状态是基于是否接收到了数据元的全部数据确定的,交付类型是基于后处理时被其他数据元依赖的程度和对后处理结果的影响程度确定的;当后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元时,确定第n个数据元的交付结果为丢弃,数据类型是基于数据元的作用确定的,独立数据元为后处理时对其他数据元的依赖程度小于指定程度的数据元。通过本申请,能够提升多网络通道传输中的数据处理效率。
Description
技术领域
本申请涉及计算机应用领域中的数据处理技术,尤其涉及一种数据处理方法、设备及计算机可读存储介质。
背景技术
随着计算机通信技术的快速发展,对数据传输的要求越来越高;为了实现高要求的数据传输,可以采用多网络通道方式进行数据传输。
一般来说,采用多网络通道方式进行数据传输时,常常存在网络通道不能满足传输需求的情况(比如,网络通道中断等),此时,发送端需要对该网络通道中所传输的数据元是否被接收端全部接收进行确认并重传,而接收端需要等待接收仅接收了部分数据的数据元所对应的剩余数据;如此,多网络通道传输过程中,数据元传输的时间成本较高,导致多网络通道传输的数据处理效率较低。
发明内容
本申请实施例提供一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够在多网络通道传输的过程中提升数据处理的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种数据处理方法,包括:
通过至少两个网络通道接收发送设备发送的数据元,其中,所述数据元包括交付顺序;
当接收到的第n个所述数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
当所述后序数据元包括所述状态为完整状态、且与第n个所述数据元在数据类型上相同的独立数据元时,确定第n个所述数据元的交付结果为丢弃,其中,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
本申请实施例还提供一种数据处理方法,包括:
通过至少两个网络通道向接收设备发送数据元,其中,所述数据元包括交付顺序;
在所述数据元的发送过程中,响应于切换指令,获取第n个所述数据元的交付类型,其中,所述切换指令用于对传输第n个所述数据元的所述网络通道进行切换,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
当第n个所述数据元的所述交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个所述数据元在数据类型上相同的独立数据元时,向所述接收设备发送所述后序数据元中未发送的所述数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
本申请实施例提供一种第一数据处理装置,包括:
数据接收模块,用于通过至少两个网络通道接收发送设备发送的数据元,其中,所述数据元包括交付顺序;
交付处理模块,用于当接收到的第n个所述数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
交付处理模块,还用于当所述后序数据元包括所述状态为完整状态、且与第n个所述数据元在数据类型上相同的独立数据元时,确定第n个所述数据元的交付结果为丢弃,其中,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
在本申请实施例中,所述交付处理模块,还用于当所述后序数据元中的第n+1个所述数据元接收到了所述数据元的全部数据时,确定所述后序数据元包括所述状态为所述完整状态的所述数据元;当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
在本申请实施例中,所述交付处理模块,还用于当第n+1个所述数据元为与第n个所述数据元在所述数据类型上不同的所述独立数据元时,或者,当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的关联数据元时,获取所述后序数据元中的第n+2个所述数据元的所述状态,其中,所述关联数据元是指在后处理时对其他所述数据元的依赖程度小于所述指定程度;当第n+2个所述数据元的状态为所述完整状态、且是与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
在本申请实施例中,所述交付处理模块,还用于当所述后序数据元中的第n+1个所述数据元的所述状态为所述不完整状态、且所述交付类型为所述可丢类型时,获取所述交付顺序在第n+1个所述数据元的所述交付顺序之后的所述数据元,并基于获得的所述数据元确定第n个所述数据元和所述第n+1个所述数据元的交付结果。
在本申请实施例中,所述交付处理模块,还用于当所述后序数据元包括所述状态为完整状态的所述数据元、且所述后序数据元不包括与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定第n个所述数据元的所述交付结果为等待数据。
在本申请实施例中,所述交付处理模块,还用于当接收到的第n个所述数据元的所述状态为所述不完整状态、且第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的所述交付结果为等待数据。
在本申请实施例中,所述数据元包括视频帧数据,所述视频帧数据包括帧内预测帧数据和帧间预测帧数据,其中,所述帧内预测帧数据为所述独立数据元,且所述帧内预测帧数据的所述交付类型为非可丢类型,以及所述帧内预测帧数据在后处理时基于自身数据渲染帧图像,所述帧间预测帧数据为关联数据元,且所述帧间预测帧数据的所述交付类型为所述可丢类型,以及所述帧间预测帧数据在后处理时基于自身数据和所述帧内预测帧数据渲染帧图像,所述帧内预测帧数据和所述帧间预测帧数据在所述数据类型上相同。
在本申请实施例中,所述数据元还包括音频帧数据,其中,所述音频帧数据为所述独立数据元,且所述音频帧数据的所述交付类型为所述非可丢类型,以及所述音频帧数据和所述视频帧数据在所述数据类型上不同。
在本申请实施例中,所述数据接收模块,还用于当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上相邻时,将接收到的所述数据元确定为第一数据元集合中的所述数据元,并从第二数据元集合中获取与接收到的所述数据元在所述交付顺序上相邻的至少一个数据元,以及将相邻的至少一个所述数据元确定为所述第一数据元集合中的所述数据元;当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上不相邻时,将接收到的所述数据元确定为所述第二数据元集合中的所述数据元。
在本申请实施例中,所述数据接收模块,还用于从所述第一数据元集合和所述第二数据元集合中获取接收到的所述后序数据元。
本申请实施例提供一种第二数据处理装置,包括:
数据发送模块,用于通过至少两个网络通道向接收设备发送数据元,其中,所述数据元包括交付顺序;
通道切换模块,用于在所述数据元的发送过程中,响应于切换指令,获取第n个所述数据元的交付类型,其中,所述切换指令用于对传输第n个所述数据元的所述网络通道进行切换,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
切换处理模块,用于当第n个所述数据元的所述交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个所述数据元在数据类型上相同的独立数据元时,向所述接收设备发送所述后序数据元中未发送的所述数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
在本申请实施例中,所述切换处理模块,还用于当第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的状态,其中,所述状态是基于所述接收设备是否接收到了所述数据元的全部数据确定的;当第n个所述数据元的所述状态为不完整状态时,通过切换后的所述网络通道向所述接收设备发送第n个所述数据元对应的未传输数据。
在本申请实施例中,所述切换处理模块,还用于当第n个所述数据元的所述交付类型为可丢类型时,在所述后序数据元的未发送的数据元中,将与第n个所述数据元在数据类型上相同、且所述交付顺序最近的所述数据元,处理为独立数据元,得到包括与第n个所述数据元在数据类型上相同的独立数据元的所述后序数据元。
本申请实施例提供一种接收设备,包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现本申请实施例提供的应用于接收设备的数据处理方法。
本申请实施例提供一种发送设备,包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现本申请实施例提供的应用于发送设备的数据处理方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令用于被第一处理器执行时,实现本申请实施例提供的应用于接收设备的数据处理方法;或者,所述可执行指令用于被第二处理器执行时,实现本申请实施例提供的应用于发送设备的数据处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被第一处理器执行时,实现本申请实施例提供的应用于接收设备的数据处理方法;或者,所述计算机程序或指令被第二处理器执行时,实现本申请实施例提供的应用于发送设备的数据处理方法。
本申请实施例至少具有以下有益效果:在多网络通道传输的过程中,当因网络通道切换导致接收端当前接收的数据元(第n个数据元)接收了数据元的部分数据(称为不完整状态)时,如果当前接收的数据元为可丢类型,表明当前接收的数据元在后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较低;接着如果确定当前接收的数据元的交付顺序之后的后序数据元中,包括能够独立完成与当前接收的数据元作用相同的后处理的数据元时,发送设备直接进行后序数据元的发送,接收设备将当前接收的数据元进行丢弃处理,如此,降低了发送设备确认重传的时长和接收设备等待数据的时长;因此,能够降低网络通道切换时的数据元传输时间成本,提升多网络通道传输的过程中的数据处理效率。
附图说明
图1是本申请实施例提供的数据处理系统的架构示意图;
图2是本申请实施例提供的图1中的终端的组成结构示意图;
图3是本申请实施例提供的图1中的服务器的组成结构示意图;
图4是本申请实施例提供的数据处理方法的流程示意图一;
图5是本申请实施例提供的一种示例性的多网络通道切换的示意图;
图6a是本申请实施例提供的一种示例性的数据处理方法的交互图;
图6b是本申请实施例提供的一种示例性的云游戏应用的系统架构图;
图6c是本申请实施例提供的一种示例性的通信模型架构图;
图6d是本申请实施例提供的数据处理方法的流程示意图二;
图7是本申请实施例提供的示例性的接收到的数据元的存储示意图;
图8是本申请实施例提供的云游戏应用场景的示意图;
图9是本申请实施例提供的示例性的数据处理的流程示意图一;
图10是本申请实施例提供的示例性的数据处理的流程示意图二。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)云计算(Cloud Computing),是一种计算模式,通过将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务;其中,为资源池提供资源的网络被称为“云”,“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。
2)云游戏(Cloud Gaming),又可称为游戏点播(Gaming on Demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(Thin Client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端运行,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为音视频流,以通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。本申请实施例提供的数据处理方法,可以应用于云游戏的多网络通道传输的场景中。
3)网络通道,用于传输数据,可以是基于网络和/或传输协议确定出的传输通道;其中,网络比如为第四代移动通信网络(4G),第五代移动通信网络(5G),各频段的无线相容性认证(Wi-Fi)网络;传输协议比如为传输控制协议(TCP,Transmission ControlProtocol),用户数据报协议(UDP,User Datagram Protocol)。
4)多网络通道传输(Multichannel Transmission),是指在多个网络通道上同时传输多个数据元的处理,该多个数据元可以是同一网络会话(Session)中的;本申请实施例中采用至少两个网络通道传输数据元的过程即为多网络通道传输。
5)多网络通道切换,是指由于网络原因等导致网络会话中的数据元从一条网络通道切换至另一网络通道进行传输的过程。
本申请实施例提供一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升多网络通道传输过程中的数据处理效率。下面说明本申请实施例提供的发送设备和接收设备的示例性应用,本申请实施例提供的发送设备和接收设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器,而服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器;以及可以实施为终端和服务器。下面,将说明发送设备实施为服务器、而接收设备实施为终端时的示例性应用。
参见图1,图1是本申请实施例提供的数据处理系统的架构示意图;如图1所示,为支撑一个数据处理应用,在数据处理系统100中,终端200(称为接收设备,示例性地示出了终端200-1和终端200-2)和服务器300(称为发送设备)通过至少两个网络通道400进行数据传输。另外,该数据处理系统100中还包括数据库500,用于向服务器300提供数据支持;并且,图1中示出的为数据库500独立于服务器300的一种情况,此外,数据库500还可以集成在服务器300中,本申请实施例对此不作限定。
终端200,用于通过至少两个网络通道接收发送设备发送的数据元,其中,数据元包括交付顺序;当接收到的第n个数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,其中,状态是基于是否接收到了数据元的全部数据确定的,交付类型是基于后处理时被其他数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;当后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元时,确定第n个数据元的交付结果为丢弃,其中,数据类型是基于数据元的作用确定的,独立数据元为后处理时对其他数据元的依赖程度小于指定程度的数据元。还用于对数据元进行交付和后处理,播放音视频(比如,终端200-1和终端200-2中渲染的游戏画面)。
服务器300,用于通过至少两个网络通道向接收设备发送数据元;在数据元的发送过程中,响应于切换指令,获取第n个数据元的交付类型,其中,切换指令用于对传输第n个数据元的网络通道进行切换;当第n个数据元的交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元时,向接收设备发送后序数据元中未发送的数据元。
在一些实施例中,终端200和服务器300可以通过有线或无线通信方式进行直接或间接地连接,以及终端200和服务器300在通过网络连接时,该网络可以是广域网或者局域网,又或者是二者的组合,本申请实施例中不作限制。
参见图2,图2是本申请实施例提供的图1中的终端的组成结构示意图,图2所示的终端200包括:至少一个第一处理器210、第一存储器250、至少一个第一网络接口220和第一用户接口230。终端200中的各个组件通过第一总线系统240耦合在一起。可理解,第一总线系统240用于实现这些组件之间的连接通信。第一总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为第一总线系统240。
第一处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
第一用户接口230包括使得能够呈现媒体内容的一个或多个第一输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。第一用户接口230还包括一个或多个第一输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
第一存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第一存储器250可选地包括在物理位置上远离第一处理器210的一个或多个存储设备。
第一存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的第一存储器250旨在包括任意适合类型的存储器。
在一些实施例中,第一存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
第一操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
第一网络通信模块252,用于经由一个或多个(有线或无线)第一网络接口220到达其他计算机设备,示例性的第一网络接口220包括:蓝牙、Wi-Fi、和通用串行总线(USB,Universal Serial Bus)等;
第一呈现模块253,用于经由一个或多个与第一用户接口230相关联的第一输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
第一输入处理模块254,用于对一个或多个来自一个或多个第一输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的第一数据处理装置可以采用软件方式实现,图2示出了存储在第一存储器250中的第一数据处理装置255,其可以是程序和插件等形式的软件,包括以下软件模块:数据接收模块2551和交付处理模块2552,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的第一数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的第一数据处理装置可以是采用硬件译码处理器形式的第一处理器,其被编程以执行本申请实施例提供的应用于接收设备的数据处理方法,例如,硬件译码处理器形式的第一处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
参见图3,图3是本申请实施例提供的图1中的服务器的组成结构示意图,图3所示的服务器300包括:至少一个第二处理器310、第二存储器350、至少一个第二网络接口320和第二用户接口330。服务器300中的各个组件通过第二总线系统340耦合在一起。可理解,第二总线系统340用于实现这些组件之间的连接通信。第二总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为第二总线系统340。
第二处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
第二用户接口330包括使得能够呈现媒体内容的一个或多个第二输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。第二用户接口330还包括一个或多个第二输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
第二存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。第二存储器350可选地包括在物理位置上远离第二处理器310的一个或多个存储设备。
第二存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器,易失性存储器可以是随机存取存储器。本申请实施例描述的第二存储器350旨在包括任意适合类型的存储器。
在一些实施例中,第二存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
第二操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
第二网络通信模块352,用于经由一个或多个(有线或无线)第二网络接口320到达其他计算机设备,示例性的第二网络接口320包括:蓝牙、Wi-Fi、和通用串行总线等;
第二呈现模块353,用于经由一个或多个与第二用户接口330相关联的第二输出装置331(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
第二输入处理模块354,用于对一个或多个来自一个或多个第二输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的第二数据处理装置可以采用软件方式实现,图3示出了存储在第二存储器350中的第二数据处理装置355,其可以是程序和插件等形式的软件,包括以下软件模块:数据发送模块3551、通道切换模块3552和切换处理模块3553,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的第二数据处理装置可以采用硬件方式实现,作为示例,本申请实施例提供的第二数据处理装置可以是采用硬件译码处理器形式的第二处理器,其被编程以执行本申请实施例提供的应用于发送设备的数据处理方法,例如,硬件译码处理器形式的第二处理器可以采用一个或多个应用专用集成电路、DSP、可编程逻辑器件、复杂可编程逻辑器件、现场可编程门阵列或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的数据处理方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如游戏APP、邮箱APP、文件管理APP或者即时通信APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面,将结合本申请实施例提供的发送设备和接收设备的示例性应用和实施,说明本申请实施例提供的数据处理方法。
参见图4,图4是本申请实施例提供的数据处理方法的流程示意图一,将结合图4示出的步骤进行说明。
S401、发送设备通过至少两个网络通道向接收设备发送数据元。
在本申请实施例中,发送设备和接收设备之间通过多网络通道实现数据的传输,并且传输的单位数据为数据元(比如,一帧音频,一帧视频,等等),以及多网络通道即为至少两个网络通道。这里,当发送设备通过至少两个网络通道向接收设备发送数据元时,相应地,接收设备通过至少两个网络通道接收发送设备发送的数据元。
需要说明的是,发送设备通过向接收设备传输数据,以在接收设备进行数据处理来实现应用功能;比如,服务器(发送设备)向终端(接收设备)发送云游戏对应的音视频数据或直播对应的音视频数据,以在终端播放音视频。这里,发送设备通过将所传输的数据通过拆分为数据元在至少两个网络通道中传输,数据元包括交付顺序,该交付顺序是接收设备交付该数据元的顺序,其中,交付用于完成数据的后处理以实现应用功能,比如,交付用于完成解码以实现音视频的播放,其中,后处理为交付后的处理,比如,解码,渲染,等等;也就是说,通过至少两个网络通道所传输的数据是具有连贯性的数据元序列。这里,交付顺序可以是由发送设备携带在数据元中的数据。
还需要说明的是,发送设备可以是实时地向接收设备发送数据元,当然也可以是非实时地向接收设备发送数据元,本申请实施例对此不作限定;在本申请实施例中,当采用多网络通道传输是为了提升数据元的传输效率时,确定是通过多网络通道实时地发送数据元。
S402、发送设备在数据元的发送过程中,响应于切换指令,获取第n个数据元的交付类型。
在本申请实施例中,发送设备在通过多网络通道向接收设备发送数据元的过程中,由于用于发送的网络具有不定性;因此,当因为网络等原因触发了网络通道切换事件时,发送设备也就获得了切换指令;此时,发送设备响应于该切换指令,进行网络通道的切换,并获取切换指令所指示切换的网络通道上所传输的数据元,也就获得了第n个数据元。
需要说明的是,网络通道切换事件是指切换网络通道的事件,包括触发条件和切换策略;其中,触发条件为网络通道的连接状态、传输速度和适用场景等等中的至少一种,切换策略是指切换网络通道的规则,用于确定传输数据元的新的网络通道,比如,优先级。这里,切换后的网络通道是指切换指令指示的用于传输数据元的新的网络通道;第n个数据元为接收到切换指令时待切换的网络通道中正传输的数据元;切换指令用于对传输第n个数据元的网络通道进行切换,n为正整数,比如,1,9,22,等等;交付类型是基于后处理时被其他数据元依赖的程度和对后处理结果的影响程度确定的,用于确定第n个数据元的处理方式,是确认并重传还是丢弃并直接传输后序的数据元。
示例性地,参见图5,图5是本申请实施例提供的一种示例性的多网络通道切换的示意图;如图5所示,发送设备5-1通过多网络通道5-2向接收设备5-3发送数据,其中,所发送的数据为数据元序列:数据元5-41至数据元5-48,多网络通道5-2包括网络通道5-21至网络通道5-24。这里,数据元5-45至数据元5-48为未发送的数据元,数据元5-41和数据元5-42均通过网络通道5-22传输,数据元5-43和数据元5-44均通过网络通道5-21传输;传输一段时间之后,接收设备5-3接收到了通过网络通道5-22传输来的数据元5-41和数据元5-42,而发送设备5-1此时由于网络原因需要进行网络通道的切换,将正在传输的数据元5-43和数据元5-44的传输由网络通道5-21切换至网络通道5-22,此时,发送设备获取数据元5-43和数据元5-44分别对应的交付类型,以基于获得的交付类型确定网络通道切换后的处理方式。
S403、当第n个数据元的交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元时,发送设备向接收设备发送后序数据元中未发送的数据元。
在本申请实施例中,交付类型包括可丢类型和非可丢类型,其中,可丢类型是指后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较小(比如,被其他数据元依赖的程度小于第一程度阈值,对后处理结果的影响程度小于第二程度阈值);可丢类型是指后处理时被其他数据元依赖的程度和对后处理结果的影响程度中的至少一种较大(比如,被其他数据元依赖的程度大于第一程度阈值,和/或,对后处理结果的影响程度大于第二程度阈值)。
首先,当发送设备确定第n个数据元的交付类型为可丢类型时,表明接收设备即使未完全接收到该数据元的数据,将该数据元丢弃,在后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较小。
接着,发送设备对后序数据元中是否包括完整状态的并与第n个数据元在数据类型上相同的独立数据元,如果包括,表明即使发送设备因为网络通道切换未完成第n个数据元的全部数据的发送而不再进行确认重传时,直接传输后序数据元中未发送的数据元,接收设备也能够通过丢弃第n个数据元,继续依据后序数据元继续交付并完成后处理;因此,发送设备在确定第n个数据元的交付类型为可丢类型、且后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元时,向接收设备发送后序数据元中未发送的数据元,而忽略第n个数据元的全部数据是否被接收设备和重传第n个数据元的处理;其中,后序数据元可能包括通过其他网络通道已完成发送的数据元,从而,这里,发送设备仅向接收设备发送后序数据元中未发送的数据元。
需要说明的是,状态是基于是否接收到了数据元的全部数据确定的,包括不完整状态和完整状态,其中,不完整状态是指接收到了数据元的全部数据的状态,完整状态是指接收到了数据元的部分数据的状态。数据类型是基于数据元的作用确定的,从而,数据元的作用相同则数据元的数据类型相同。独立数据元为后处理时对其他数据元的依赖程度小于指定程度的数据元,即独立数据元是依据自身数据进行后处理的数据元,比如,音频帧数据,关键帧(帧内预测(Intra-Prediction,I)帧)数据,等等。后序数据元为交付顺序在第n个数据元之后的至少一个数据元,比如为第n+1个数据元、第n+2个数据元、……、第n+i个数据元,i为大于等于0的正整数。
S404、当接收设备接收到的第n个数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元。
在本申请实施例中,接收设备通过至少两个网络通道接收发送设备发送的数据元,并对接收到的数据元按数据元对应的交付顺序进行交付,以对数据元执行后处理。
这里,接收设备对每个接收到的数据元的状态进行判断,以确定是否接收到了数据元的全部数据,如果确定当前接收到的数据元仅接收了数据元的部分数据,则确定当前接收到的数据元的状态为不完整状态,其中,当前接收到的数据元即为接收到的第n个数据元。在确定第n个数据元的状态为不完整状态时,接收设备对第n个数据元的交付类型进行确定,当确定第n个数据元的交付类型为可丢类型时,表明不完整状态的第n个数据元在后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较小,是可丢弃的。在确定不完整状态的第n个数据元的交付类型为可丢类型时,接收设备还要对后序数据元进行判断,以确定是否对第n个数据元进行丢弃。
需要说明的是,发送设备在发送数据元时,可以将数据元的交付类型携带在数据元的数据中进行发送;如此,接收设备通过读取数据元的数据,就能确定数据元的交付类型。
这里,当接收设备确定第n个数据元接收到了数据元的全部数据时,可以确定第n个数据元的状态为完整状态,此时,交付第n个数据元以进行后处理;也就是说,当接收设备接收到的第n个数据元为完整状态时,确定第n个数据元的交付结果包括交付处理。
S405、当后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元时,接收设备确定第n个数据元的交付结果为丢弃。
在本申请实施例中,接收设备获取第n个数据元对应的交付顺序之后的状态为完整状态的数据元,并确定获得的后序的完整状态的数据元中是否包括与第n个数据元在数据类型上相同的独立数据元,即确定后序数据元中是否包括能够跳过第n个数据元继续进行相同作用的后处理的数据元;当确定包括时,接收设备确定第n个数据元的处理方式为丢弃,即交付结果为丢弃,不进行交付,也就是说,针对第n个数据元未接收到的数据,接收设备不再等待接收数据。
需要说明的是,后序数据元可以为与第n个数据元在交付顺序上相邻的数据元序列,也可以为与第n个数据元在交付顺序上不相邻的数据元序列;以及数据元序列中各数据元之间的交付顺序可以是相邻的,也可以是不相邻的。
示例性地,参见图6a,图6a是本申请实施例提供的一种示例性的数据处理方法的交互图;如图6a所示,该示例性的数据处理方法描述了云游戏场景中,云游戏服务器(称为发送设备)向游戏客户端(称为接收设备)发送云游戏音视频拆分的数据元的数据处理过程,包括S601至S606,下面对各步骤分别进行说明。
S601、云游戏服务器通过至少两个网络通道向游戏客户端发送云游戏音视频拆分的数据元。
需要说明的是,云游戏服务器采用多网络通道的传输方式向游戏客户端发送云游戏音视频拆分的数据元。
S602、云游戏服务器在数据元的发送过程中,响应于切换指令,获取待切换的网络通道所传输的数据元(称为第n个数据元)的交付类型。
需要说明的是,当云游戏服务器基于预先设置的网络通道切换策略确定进行网络通道切换时,生成切换指令,用于对网络通道进行切换。
S603、当待切换的网络通道所传输的数据元的交付类型为可丢类型,且后序数据元包括状态为完整状态并与待切换的网络通道所传输的数据元在数据类型上相同的独立数据元时,云游戏服务器向游戏客户端发送后序数据元中未发送的数据元。
需要说明的是,在云游戏服务器侧,如果进行了网络通道的切换,则判断待切换的网络通道中正在传输的数据元之后是否包括能够独立完成相同类型的后处理的数据元(比如,能够独立渲染游戏画面的关键帧),如果包括,则基于切换后的网络通道直接进行后续数据元中未发送的数据元进行发送,降低确认重传的资源消耗。
S604、当游戏客户端当前接收到的数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元。
这里,当前接收到的数据元即为待切换的网络通道所传输的数据元。
S605、当后序数据元包括状态为完整状态、且与待切换的网络通道所传输的数据元在数据类型上相同的独立数据元时,游戏客户端确定当前接收到的数据元的交付结果为丢弃。
需要说明的是,在游戏客户端侧,如果确认因云游戏服务器侧进行了网络通道的切分导致接收到的待切换的网络通道所传输的数据元不完整,并确认第n个数据元为可丢类型,以及确认后序数据元中包括能够独立完成相同类型的后处理的数据元,则丢弃当前接收到的数据元,继续进行后续相同类型的数据元的后处理;如此,降低了接收不完整状态的数据元的等待时间,提升了云游戏的渲染效果。
还需要说明的是,图6a是基于云游戏应用场景的系统架构实现的;下面说明云游戏应用场景的系统架构;参见图6b,图6b是本申请实施例提供的一种示例性的云游戏应用的系统架构图;如图6b所示,该示例性的云游戏应用的系统架构中,包括游戏客户端6-1和云游戏服务器6-2,游戏客户端6-1用于响应于游戏用户针对虚拟场景界面所执行的操作,向云游戏服务器6-2发送游戏指令6-3。此时,云游戏服务器6-2基于游戏指令6-3进行渲染,得到云游戏音视频6-4,并将游戏音视频6-4拆分为数据元(示例性地示出了数据元6-41至数据元6-48)通过多网络通道6-5(示例性地示出了网络通道6-51和网络通道6-52)进行传输(数据元6-41至数据元6-43通过网络通道6-51传输,数据元6-44至数据元6-48通过网络通道6-52传输)。
这里,当前的数据元的传输情况为:云游戏服务器6-2在网络通道6-52上正传输数据元6-44至数据元6-48;游戏客户端6-1已接收到数据元6-41,正在接收通过网络通道6-51传输的数据元6-42,云游戏服务器6-2侧还包括待进行传输数据元6-43;此时,云游戏服务器6-2触发了网络通道切换事件,确定将网络通道6-51上传输的数据元切换至网络通道6-52上进行传输,则正在传输数据元的6-42通过图6a示出的数据处理方法进行处理,并且数据元6-43将通过网络通道6-52进行传输。
其中,图6a和图6b中,云游戏服务器向游戏客户端进行数据传输时,是基于图6c示出的通信模型架构图实现的;如图6c所示,示例性地示出了通信模型6-6包括会话层6-61、传输层6-62、网络层6-63、数据链路层6-64和物理层6-65。其中,传输层6-62包括多个网络通道(示例性地示出了TCP协议对应的网络通道6-51和UDP协议对应的网络通道6-52),以使本申请实施例实现多个网络通道传输。这里,当云游戏服务器向游戏客户端传输由云游戏音视频拆分的数据元时,第一层物理层6-65,负责机械、电子和定时接口通信信道上的原始比特流传输;第二层数据链路层6-64,负责物理寻址,同时将原始比特流转变为逻辑传输线路。第一层与第二层通常归属于网卡和网线;第三层网络层6-63,负责控制子网的运行,如逻辑编址、分组传输和路由选择等。第四层传输层6-62,用于向游戏客户端传输数据元,以及接收游戏客户端的应答。第五层会话层6-61,用于与游戏客户端建立会话和管理会话,向传输层6-62的多个网络通道分发数据元。
可以理解的是,在多网络通道传输的过程中,当因网络通道切换导致接收端当前接收的数据元接收了数据元的部分数据时,如果当前接收的数据元为可丢类型,表明当前接收的数据元在后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较低;接着如果确定当前接收的数据元的交付顺序之后的后序数据元中,包括能够独立完成与当前接收的数据元作用相同的后处理的数据元时,发送设备直接进行后序数据元的发送,接收设备将当前接收的数据元进行丢弃处理,如此,降低了发送设备确认重传的时长和接收设备等待数据的时长;因此,能够降低网络通道切换时的数据元传输时间成本,提升多网络通道传输的过程中的数据处理效率。
参见图6d,图6d是本申请实施例提供的数据处理方法的流程示意图二;如图6d所示,在本申请实施例中,S404之后还包括S406和S407;也就是说,接收设备获取接收到的后序数据元之后,该数据处理方法还包括S406和S407,下面对各步骤分别进行说明。
S406、当后序数据元中的第n+1个数据元接收到了数据元的全部数据时,接收设备确定后序数据元包括状态为完整状态的数据元。
S407、当第n+1个数据元为与第n个数据元在数据类型上相同的独立数据元时,确定后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元。
在本申请实施例中,接收设备在确定第n个数据元为可丢类型的不完整状态时,对接收到的第n+1个数据元进行获取,并对第n+1个数据元的状态、数据类型和是否为独立数据元分别进行判断,并在确定第n+1个数据元的状态为完整状态、数据类型与第n个数据元的数据类型相同、以及是独立数据元时,才能确定后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元。易知,后序数据元包括第n+1个数据元。
需要说明的是,在发送设备侧,发送设备在确定是针对传输中的第n个数据元所在的网络通道进行切换,并确定第n个数据元为可丢类型之后,也可以采用S406和S407描述的过程,来确定后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元。
继续参见图6,S406之后还包括S408和S409;也就是说,接收设备确定后序数据元包括状态为完整状态的数据元之后,该数据处理方法还包括S408和S409,下面对各步骤分别进行说明。
S408、当第n+1个数据元为与第n个数据元在数据类型上不同的独立数据元时,或者,当第n+1个数据元为与第n个数据元在数据类型上相同的关联数据元时,获取后序数据元中的第n+2个数据元的状态。
S409、当第n+2个数据元的状态为完整状态、且是与第n个数据元在数据类型上相同的独立数据元时,接收设备确定后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元。
在本申请实施例中,当接收设备确定第n+1个数据元的状态为完整状态时,如果接收设备确定第n+1个数据元为与第n个数据元在数据类型上不同的独立数据元,或者确定第n+1个数据元为与第n个数据元在数据类型上相同的关联数据元,则获取后序数据元中的第n+2个数据元,对第n+2个数据元的状态、数据类型和是否为独立数据元分别进行判断,并在确定第n+2个数据元的状态为完整状态、数据类型与第n个数据元的数据类型相同、以及是独立数据元时,才能确定后序数据元包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元。易知,后序数据元包括第n+2个数据元。
这里,关联数据元是指在后处理时对其他数据元的依赖程度小于指定程度,即关联数据元是结合其他数据元进行后处理的数据元,与独立数据元是相对的。
需要说明的是,在发送设备侧,发送设备在确定是针对传输中的第n个数据元所在的网络通道进行切换,并确定第n个数据元为可丢类型之后,也可以采用S406、S408和S409描述的过程,来确定后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元。
在本申请实施例中,S404中接收设备获取接收到的后序数据元之后,该数据处理方法还包括S410,下面对各步骤分别进行说明。
S410、当后序数据元中的第n+1个数据元的状态为不完整状态、且交付类型为可丢类型时,接收设备获取交付顺序在第n+1个数据元的交付顺序之后的数据元,并基于获得的数据元确定第n个数据元和第n+1个数据元的交付结果。
在本申请实施例中,接收设备在确定后序数据元中的第n+1个数据元的状态为不完整状态、且交付类型为可丢类型时,采用类似于S404和S405描述的对第n个数据元的处理方式进行交付。
需要说明的是,发送设备也可以在确定后序数据元中的第n+1个数据元的状态为不完整状态、且交付类型为可丢类型时,通过获取交付顺序在第n+1个数据元的交付顺序之后的数据元,并基于获得的数据元确定是否不再发送第n个数据元和第n+1个数据元分别对应的剩余未发送的数据。
在本申请实施例中,当接收设备确定第n个数据元与后序数据元中完整状态且可丢类型的独立数据元之间,均是可丢类型的不完整状态的数据元时,将后序数据元中完整状态且可丢类型的独立数据元之前的数据元进行丢弃。
在本申请实施例中,S404中接收设备获取接收到的后序数据元之后,该数据处理方法还包括S411,下面对各步骤分别进行说明。
S411、当后序数据元包括状态为完整状态的数据元、且后序数据元不包括与第n个数据元在数据类型上相同的独立数据元时,接收设备确定第n个数据元的交付结果为等待数据。
在本申请实施例中,当后序数据元包括状态为完整状态的数据元、且后序数据元不包括与第n个数据元在数据类型上相同的独立数据元时,接收设备确定后序数据元不再包括能够跳过第n个数据元实现与第n个数据元相同后处理结果的数据元,此时,接收设备确定第n个数据元的交付结果为等待数据。
需要说明的是,发送设备在确定后序数据元包括状态为完整状态的数据元、且后序数据元不包括与第n个数据元在数据类型上相同的独立数据元时,针对第n个数据元的剩余未发送的数据进行确认并发送。
在本申请实施例中,接收设备通过至少两个网络通道接收发送设备发送的数据元之后,该数据方法还包括S412,下面对该步骤进行说明。
S412、当接收设备接收到的第n个数据元的状态为不完整状态、且第n个数据元的交付类型为非可丢类型时,确定第n个数据元的交付结果为等待数据。
在本申请实施例中,当接收设备接收到的第n个数据元的状态为不完整状态、且第n个数据元的交付类型为非可丢类型时,由于第n个数据元是非可丢类型,因此,丢弃第n个数据元则在后处理时无法被其他数据元依赖和/或对后处理结果的影响程度较大;故接收设备等待接收第n个数据元的剩余未接收到的数据。
需要说明的是,接收设备对每个不完整状态的非可丢类型的数据元,均确定对应的交付结果为等待数据;从而,获取后序数据元时如果遇到了不完整状态、且第n个数据元的交付类型为非可丢类型的数据元时,确定该数据元的交付结果为等待数据。
相应地,S402之后还包括S413和S414;也就是说,发送设备获取第n个数据元的交付类型之后,该数据处理方法还包括S413和S414,下面对各步骤分别进行说明。
S413、当第n个数据元的交付类型为非可丢类型时,发送设备确定第n个数据元的状态。
在本申请实施例中,发送设备在针对传输第n个数据元的网络通道进行切换时,先判断第n个数据元的交付类型,如果确定第n个数据元的交付类型为非可丢类型,则需要通过确认机制确定接收设备是否接收到了第n个数据元的全部数据,即判断第n个数据元的状态。
需要说明的是,非可丢类型是指后处理时被其他数据元依赖的程度和对后处理结果的影响程度中的至少一种高于阈值的类型。
S414、当第n个数据元的状态为不完整状态时,发送设备通过切换后的网络通道向接收设备发送第n个数据元对应的未传输数据。
需要说明的是,发送设备通过确认机制确定接收设备接收到了第n个数据元的部分数据时,确定第n个数据元的状态为不完整状态;另外,发送设备在利用确认机制确定第n个数据元的状态时,还确定了第n个数据元的剩余未发送的数据,这里称为未传输数据;从而,此时,发送设备通过切换后的网络通道向接收设备发送第n个数据元对应的未传输数据。
在本申请实施例中,S403之前还包括S415;也就是说,当第n个数据元的交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个数据元在数据类型上相同的独立数据元时,发送设备向接收设备发送后序数据元中未发送的数据元之前,该数据处理方法还包括S415,下面对该步骤进行说明。
S415、当第n个数据元的交付类型为可丢类型时,在后序数据元的未发送的数据元中,发送设备将与第n个数据元在数据类型上相同、且交付顺序最近的数据元,处理为独立数据元,得到包括与第n个数据元在数据类型上相同的独立数据元的后序数据元。
需要说明的是,发送设备在进行了网络通道的切换之后,如果确定第n个数据元的交付类型为可丢类型,可以在后序数据元中未发送的数据元中,将与第n个数据元在数据类型上相同、且交付顺序最近的数据元,处理为独立数据元,以使接收设备根据接收到的后序数据元中包括状态为完整状态、且与第n个数据元在数据类型上相同的独立数据元,进而丢弃第n个数据元。
相应地,在本申请实施例中,接收设备获得的后序数据元中的完整状态下的、且与第n个所述数据元在数据类型上相同的独立数据元,可以是发送设备直接发送的,还可以是发送设备针对性处理后再发送的,本申请实施例对此不作具体限定;其中,针对性处理是指将与第n个数据元在数据类型上相同、且交付顺序最近的数据元处理为独立数据元。
可以理解的是,在多网络通道的传输过程中,发送设备在执行了网络通道的切换时,能够主动生成与第n个数据元在数据类型上相同的独立数据元,作为接收设备丢弃第n个数据元的丢弃信号,使得接收设备丢掉第n个数据元并继续交付后序数据元,降低了数据处理的重传确认时长,提高了多网络通道传输过程中的数据处理效率。
在本申请实施例中,数据元包括视频帧数据,视频帧数据包括帧内预测帧数据和帧间预测帧数据,其中,帧内预测帧数据为独立数据元,且帧内预测帧数据的交付类型为非可丢类型,以及帧内预测帧数据在后处理时基于自身数据渲染帧图像,帧间预测帧数据为关联数据元,且帧间预测帧数据的交付类型为可丢类型,以及帧间预测帧数据在后处理时基于自身数据和帧内预测帧数据渲染帧图像,帧内预测帧数据和帧间预测帧数据在数据类型上相同。
需要说明的是,当通过多网络通道传输的数据为视频数据时,数据元包括视频帧数据;因此,当第n个数据元为可丢类型时,第n个数据元为帧间预测帧数据,比如,单向预测(Prediction,P)帧数据,双向预测(Bi-prediction,B)帧数据;从而,后序数据元所包括的完整状态的、且与第n个数据元在数据类型上相同的独立数据元为帧内预测帧数据,比如,I帧数据。
在本申请实施例中,数据元还包括音频帧数据,此时,通过多网络通道传输的数据为音视频数据。这里,音频帧数据为独立数据元,且音频帧数据的交付类型为非可丢类型,以及音频帧数据和视频帧数据在数据类型上不同。即后序数据元所包括的完整状态的、且与第n个数据元在数据类型上不同的独立数据元为音频帧数据。
在本申请实施例中,接收设备通过至少两个网络通道接收发送设备发送的数据元之后,该数据处理方法还包括S416和S417,下面对各步骤分别进行说明。
S416、当接收设备接收到的数据元与第一数据元集合中的数据元在交付顺序上相邻时,将接收到的数据元确定为第一数据元集合中的数据元,并从第二数据元集合中获取与接收到的数据元在交付顺序上相邻的至少一个数据元,以及将相邻的至少一个数据元确定为第一数据元集合中的数据元。
S417、当接收设备接收到的数据元与第一数据元集合中的数据元在交付顺序上不相邻时,将接收到的数据元确定为第二数据元集合中的数据元。
需要说明的是,接收设备将通过多网络通道接收的数据元分类存储,一类存储的为待交付的且在交付顺序上相邻(或连续)的数据元,另一类存储的为与第一数据元集合中的数据元在交付顺序上不相邻(或不连续的)的数据元。
相应地,在本申请实施例中,S404中接收设备获取接收到的后序数据元,包括:接收设备从第一数据元集合和第二数据元集合中获取接收到的后序数据元。
需要说明的是,接收设备按照交付顺序从第一数据元集合中获取与最近交付的数据元在交付顺序上相邻的数据元。如果交付过程中确定存在数据元为不完整状态,则从第一数据元集合和第二数据元集合中获取接收到的后序数据元,以确定该不完整状态的数据元是等待数据还是丢弃。
示例性地,参见图7,图7是本申请实施例提供的示例性的接收到的数据元的存储示意图;如图7所示,当第一数据元集合和第二数据元集合均通过队列存储时,队列7-1用于存储第一数据元集合中的数据元,队列7-2用于存储第二数据元集合中的数据元;这里,当数据元7-31至数据元7-36依次对应的交付顺序为1至6,以及数据元7-31至数据元7-33通过网络通道A传输,数据元7-34至数据元7-36通过网络通道B传输,而网络通道B的传输速度快于网络通道A的传输速度时,接收设备先接收到了数据元7-31和数据元7-32、以及数据元7-34至数据元7-36;此时,接收设备将数据元7-31和数据元7-32存储至队列7-1中,而将数据元7-34至数据元7-36存储至队列7-2中;后面接收到数据元7-33时,将数据元7-33存储至队列7-1中,并确定队列7-2中的数据元7-34至数据元7-36与数据元7-33在交付顺序上相邻,从而,将队列7-2中的数据元7-34至数据元7-36移至队列7-1中存储。其中,头节点用于执行队列中的第一个数据元。
可以理解的是,本申请实施例中接收设备通过第一数据元集合和第二数据元集合接收通过多网络通道传输过来的数据元,由于数据元包括交付顺序,需要按照交付顺序依次交付数据元;因此,接收设备将接收到的数据元分连续和不连续进行存储,使得交付时从第一数据元集合中能够快速获得待交付的数据元,提升数据处理的效率。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。该示例性应用描述了云游戏应用场景中,云端游戏服务器(比如,图1中的服务器300,称为发送设备)通过多网络通道向用户客户端(用户客户端可以是运行在终端中的客户端,其中终端比如为图1中的终端200,称为接收设备)传输云游戏音视频数据的过程。
需要说明的是,云游戏是通过高码率传输音视频数据实现虚拟场景画面的呈现,来形成如同本地游戏一样的沉浸式体验,因此,云游戏的效果取决于音视频传输和显示的流畅度。
参见图8,图8是本申请实施例提供的云游戏应用场景的示意图;如图8所示,云端游戏服务器8-1接收用户客户端8-2发送的游戏指令8-3,并响应于游戏指令8-3,向用户客户端8-2发送音视频数据8-4(称为传输的数据)。
参见图9,图9是本申请实施例提供的示例性的数据处理的流程示意图一;如图9所示,该示例性的数据处理的流程包括S901至S912,执行主体为用户客户端,下面对各步骤分别进行说明。
S901、判断待交付数据元(称为第n个数据元)是否完整。是则执行S902,否则执行S903。
需要说明的是,该示例性的数据处理开始时,执行S901。这里,用户客户端通过两个队列(比如,图7中的队列7-1和队列7-2)接收云端游戏服务器通过多网络通道发送来的数据元。从而,用户客户端先从存储了与最近交付的数据元在交付顺序上相邻的数据元的队列中(比如,图7中的队列7-1),获取交付顺序最近的一个数据元,也就得到了待交付数据元;并判断待交付数据元是否完整(即为检测数据元的状态),以基于完整性的判断结果确定是否交付该待交付数据元。
S902、交付待交付数据元。从队列中删除待交付数据元,并结束交付待交付数据元的数据处理流程。
需要说明的是,用户客户端通过对交付后的数据元进行解码,实现音视频的播放。
S903、判断待交付数据元是否是可丢类型。如果不是则执行S904,如果是则执行S905。
需要说明的是,发送设备在通过多网络通道传输数据元时,将数据元对应的类型和交付顺序携带在了数据元中。其中,数据元的类型包括可丢类型和非可丢类型,当通过多网络通道进行数据传输的数据元为帧数据时,如果视频帧包括I帧和P帧,则数据元为I帧数据(称为帧内预测帧数据)和音频帧数据时均是非可丢类型,数据元为P帧数据(帧间预测帧数据)是可丢类型;这是因为I帧数据可以直接解码获得一个完整的画面,而P帧数据和B帧数据则需要前后参考信息才可以获得完整画面,因此,在收到完整I帧数据时可以放弃之前的P帧数据和B帧数据,通过解码I帧数据获得游戏画面。
S904、等待接收待交付数据元的未传输数据。进而根据接收到的数据执行S901。
需要说明的是,如果不完整的待交付数据元为I帧数据或音频帧数据,则是不可丢类型;由于I帧数据丢失后影响后面数据元的解码(称为后处理),音频帧数据丢失后影响音频的渲染,因此,不能丢弃,而是继续等待接收数据。
S905、依次获取后面的数据元(称为后序数据元)。执行S906和S912。
需要说明的是,用户客户端通过扫描两个队列中的数据元,获取交付顺序最近的一个数据元之后的数据元,也就得到了后面的数据元。
S906、判断是否获取到不完整的非可丢类型的数据元。如果是则执行S907,如果否则执行S908。
这里,用户客户端扫描队列获取后面的数据元的过程中,如果未扫描到不完整的非可丢弃类型的数据元,而首先扫描到了一个完整的数据元,则判断该数据元的类型;如果扫描到了不完整的非可丢弃类型的数据元,停止扫描,等待接收数据。
S907、等待接收数据。并基于接收的数据执行S908。
S908、确定获取到的第一个完整的数据元的类型。
S909、类型为I帧时,丢弃后面的第一个完整的数据元之前的数据元,交付后面的第一个完整的数据元。从队列中删除待交付数据元,并结束交付待交付数据元的数据处理流程。
需要说明的是,类型包括数据类型上是否相同的结果和是独立数据元还是关联数据元的结果。类型为I帧,表明后面的第一个完整的数据元是指与待交付数据元(P帧数据)在数据类型上相同的独立数据元,交付该后面的第一个完整的数据元,并丢弃该后面的第一个完整的数据元之前的数据元。
S910、类型为P帧或音频帧时,继续获取再后面的数据元。
需要说明的是,类型为P帧,表明后面的第一个完整的数据元是指与待交付数据元(P帧数据)在数据类型上相同的关联数据元;类型为音频帧,表明后面的第一个完整的数据元是指与待交付数据元(P帧数据)在数据类型上不同的独立数据元;此时,用户客户端还需要进一步判断再后面的数据元。
S911、当确定再后面的数据元包括完整的类型为I帧的数据元时,丢弃待交付数据元。结束交付待交付数据元的数据处理流程。
S912、当确定后面的数据元均不完整,等待接收数据。进而根据接收到的数据执行S908。
相应地,在本申请实施例中,云端游戏服务器在切换网络通道时,先确定切换的网络通道所传输的数据元的交付类型为可丢类型,即确定是P帧数据,不再进行确认重传,而是在确定后面的数据元包括完整的类型为I帧的数据元时,直接发送后面的数据元。而如果云端游戏服务器确定切换的网络通道所传输的数据元的交付类型为非可丢类型,即确定是I帧数据或音频帧数据时,执行确认重传处理。
示例性地,参见图10,图10是本申请实施例提供的示例性的数据处理的流程示意图二;如图10所示,该示例性的数据处理的流程包括S1001至S1007,执行主体为云端游戏服务器,下面对各步骤分别进行说明。
S1001、获取切换指令。
需要说明的是,网络通道的切换可以是云端游戏服务器侧主动触发的,此时,获取到的切换指令是由云端游戏服务器侧自身生成的;也就是说,网络通道的切换是云端游戏服务器自身的决策结果。
S1002、响应于切换指令,确定待切换的网络通道中正传输的数据元(称为第n个数据元)。
S1003、判断正传输的数据元是否是可丢类型。如果是则执行S1004,如果否则执行S1005。
S1004、当确定后面的数据元包括完整的I帧数据时,直接传输交付顺序在正传输的数据元之后的待传输的数据元。
需要说明的是,后面的数据元中所包括的完整的I帧数据,可以是云端游戏服务器在切换网络通道时,不再继续采用P帧数据的编码方式进行,而是及时地通过I帧数据的编码方式进行视频帧编码获得的。如此,实现主动发送I帧数据触发用户客户端侧丢弃不完整的P帧数据,使得用户客户端具备交付兜底能力,从而,使得画面不会长时间卡顿。
可以理解的是,云端游戏服务器在网络通道切换时不再进行确认重传,减少了确认和重传的资源消耗。
S1005、确认正传输的数据元中需要重传的数据。
S1006、重传需要重传的数据。
S1007、传输交付顺序在正传输的数据元之后的待传输的数据元。
可以理解的是,用户客户端和云端游戏服务器通过丢弃不完整的P帧数据,能够提高云游戏应场景在复杂网络环境下采用多网络通道传输的的音视频的稳定性和流畅性。也就是说,通过对不同数据形成不同的处理策略(丢弃或等待),从而简化双端在网络通道切换时的收发逻辑,减少网络通道切换时恢复画面所需的时长,提升数据处理效率。
下面继续说明本申请实施例提供的第一数据处理装置255的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在第一存储器250的第一数据处理装置255中的软件模块可以包括:
数据接收模块2551,用于通过至少两个网络通道接收发送设备发送的数据元,其中,所述数据元包括交付顺序;
交付处理模块2552,用于当接收到的第n个所述数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
交付处理模块2552,还用于当所述后序数据元包括所述状态为完整状态、且与第n个所述数据元在数据类型上相同的独立数据元时,确定第n个所述数据元的交付结果为丢弃,其中,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
在本申请实施例中,所述交付处理模块2552,还用于当所述后序数据元中的第n+1个所述数据元接收到了所述数据元的全部数据时,确定所述后序数据元包括所述状态为所述完整状态的所述数据元;当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
在本申请实施例中,所述交付处理模块2552,还用于当第n+1个所述数据元为与第n个所述数据元在所述数据类型上不同的所述独立数据元时,或者,当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的关联数据元时,获取所述后序数据元中的第n+2个所述数据元的所述状态,其中,所述关联数据元是指在后处理时对其他所述数据元的依赖程度小于所述指定程度;当第n+2个所述数据元的状态为所述完整状态、且是与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
在本申请实施例中,所述交付处理模块2552,还用于当所述后序数据元中的第n+1个所述数据元的所述状态为所述不完整状态、且所述交付类型为所述可丢类型时,获取所述交付顺序在第n+1个所述数据元的所述交付顺序之后的所述数据元,并基于获得的所述数据元确定第n个所述数据元和所述第n+1个所述数据元的交付结果。
在本申请实施例中,所述交付处理模块2552,还用于当所述后序数据元包括所述状态为完整状态的所述数据元、且所述后序数据元不包括与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定第n个所述数据元的所述交付结果为等待数据。
在本申请实施例中,所述交付处理模块2552,还用于当接收到的第n个所述数据元的所述状态为所述不完整状态、且第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的所述交付结果为等待数据。
在本申请实施例中,所述数据元包括视频帧数据,所述视频帧数据包括帧内预测帧数据和帧间预测帧数据,其中,所述帧内预测帧数据为所述独立数据元,且所述帧内预测帧数据的所述交付类型为非可丢类型,以及所述帧内预测帧数据在后处理时基于自身数据渲染帧图像,所述帧间预测帧数据为关联数据元,且所述帧间预测帧数据的所述交付类型为所述可丢类型,以及所述帧间预测帧数据在后处理时基于自身数据和所述帧内预测帧数据渲染帧图像,所述帧内预测帧数据和所述帧间预测帧数据在所述数据类型上相同。
在本申请实施例中,所述数据元还包括音频帧数据,其中,所述音频帧数据为所述独立数据元,且所述音频帧数据的所述交付类型为所述非可丢类型,以及所述音频帧数据和所述视频帧数据在所述数据类型上不同。
在本申请实施例中,所述数据接收模块2551,还用于当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上相邻时,将接收到的所述数据元确定为第一数据元集合中的所述数据元,并从第二数据元集合中获取与接收到的所述数据元在所述交付顺序上相邻的至少一个数据元,以及将相邻的至少一个所述数据元确定为所述第一数据元集合中的所述数据元;当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上不相邻时,将接收到的所述数据元确定为所述第二数据元集合中的所述数据元。
在本申请实施例中,所述数据接收模块2551,还用于从所述第一数据元集合和所述第二数据元集合中获取接收到的所述后序数据元。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。接收设备的第一处理器从计算机可读存储介质读取该计算机指令,第一处理器执行该计算机指令,使得该接收设备执行本申请实施例上述的接收设备侧的数据处理方法。
下面继续说明本申请实施例提供的第二数据处理装置355的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在第二存储器350的第二数据处理装置355中的软件模块可以包括:
数据发送模块3551,用于通过至少两个网络通道向接收设备发送数据元,其中,所述数据元包括交付顺序;
通道切换模块3552,用于在所述数据元的发送过程中,响应于切换指令,获取第n个所述数据元的交付类型,其中,所述切换指令用于对传输第n个所述数据元的所述网络通道进行切换,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
切换处理模块3553,用于当第n个所述数据元的所述交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个所述数据元在数据类型上相同的独立数据元时,向所述接收设备发送所述后序数据元中未发送的所述数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
在本申请实施例中,所述切换处理模块3553,还用于当第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的状态,其中,所述状态是基于所述接收设备是否接收到了所述数据元的全部数据确定的;当第n个所述数据元的所述状态为不完整状态时,通过切换后的所述网络通道向所述接收设备发送第n个所述数据元对应的未传输数据。
在本申请实施例中,所述切换处理模块3553,还用于当第n个所述数据元的所述交付类型为可丢类型时,在所述后序数据元的未发送的数据元中,将与第n个所述数据元在数据类型上相同、且所述交付顺序最近的所述数据元,处理为独立数据元,得到包括与第n个所述数据元在数据类型上相同的独立数据元的所述后序数据元。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。发送设备的第二处理器从计算机可读存储介质读取该计算机指令,第二处理器执行该计算机指令,使得该发送设备执行本申请实施例上述的发送设备侧的数据处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被第一处理器执行时,将引起第一处理器执行本申请实施例提供的接收设备侧的数据处理方法;当可执行指令被第二处理器执行时,将引起第二处理器执行本申请实施例提供的发送设备侧的数据处理方法;例如,如图4示出的数据处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算机设备上执行(此时,这一个计算机设备即接收设备或发送设备),或者在位于一个地点的多个计算机设备上执行(此时,位于一个地点的多个计算机设备即接收设备或发送设备),又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行(此时,分布在多个地点且通过通信网络互连的多个计算机设备即接收设备或发送设备)。
综上所述,本申请实施例在多网络通道传输的过程中,当因网络通道切换导致接收端当前接收的数据元接收了数据元的部分数据时,如果当前接收的数据元为可丢类型,表明当前接收的数据元在后处理时被其他数据元依赖的程度和对后处理结果的影响程度均较低;接着如果确定当前接收的数据元的交付顺序之后的后序数据元中,包括能够独立完成与当前接收的数据元作用相同的后处理的数据元时,发送设备直接进行后序数据元的发送,接收设备将当前接收的数据元进行丢弃处理,如此,降低了发送设备确认重传的时长和接收设备等待数据的时长;因此,能够降低网络通道切换时的数据元传输时间成本和网络通道切换的复杂度,提升多网络通道传输的过程中的数据处理效率;另外,当传输的数据元为音频帧数据和视频帧数据、又或者为视频帧数据时,能够提升视频画面的渲染流畅度,提升视频或音视频的播放效果。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
通过至少两个网络通道接收发送设备发送的数据元,其中,所述数据元包括交付顺序;
当接收到的第n个所述数据元的状态为不完整状态、且交付类型为可丢类型时,获取接收到的后序数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
当所述后序数据元包括所述状态为完整状态、且与第n个所述数据元在数据类型上相同的独立数据元时,确定第n个所述数据元的交付结果为丢弃,其中,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
2.根据权利要求1所述的方法,其特征在于,所述获取接收到的后序数据元之后,所述方法还包括:
当所述后序数据元中的第n+1个所述数据元接收到了所述数据元的全部数据时,确定所述后序数据元包括所述状态为所述完整状态的所述数据元;
当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
3.根据权利要求2所述的方法,其特征在于,所述确定所述后序数据元包括所述状态为所述完整状态的所述数据元之后,所述方法还包括:
当第n+1个所述数据元为与第n个所述数据元在所述数据类型上不同的所述独立数据元时,或者,
当第n+1个所述数据元为与第n个所述数据元在所述数据类型上相同的关联数据元时,获取所述后序数据元中的第n+2个所述数据元的所述状态,其中,所述关联数据元是指在后处理时对其他所述数据元的依赖程度小于所述指定程度;
当第n+2个所述数据元的状态为所述完整状态、且是与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定所述后序数据元包括所述状态为所述完整状态、且与第n个所述数据元在所述数据类型上相同的所述独立数据元。
4.根据权利要求1所述的方法,其特征在于,所述获取接收到的后序数据元之后,所述方法还包括:
当所述后序数据元中的第n+1个所述数据元的所述状态为所述不完整状态、且所述交付类型为所述可丢类型时,获取所述交付顺序在第n+1个所述数据元的所述交付顺序之后的所述数据元,并基于获得的所述数据元确定第n个所述数据元和所述第n+1个所述数据元的交付结果。
5.根据权利要求1所述的方法,其特征在于,所述获取接收到的后序数据元之后,所述方法还包括:
当所述后序数据元包括所述状态为完整状态的所述数据元、且所述后序数据元不包括与第n个所述数据元在所述数据类型上相同的所述独立数据元时,确定第n个所述数据元的所述交付结果为等待数据。
6.根据权利要求1所述的方法,其特征在于,所述通过至少两个网络通道接收发送设备发送的数据元之后,所述方法还包括:
当接收到的第n个所述数据元的所述状态为所述不完整状态、且第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的所述交付结果为等待数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据元包括视频帧数据,所述视频帧数据包括帧内预测帧数据和帧间预测帧数据,其中,所述帧内预测帧数据为所述独立数据元,且所述帧内预测帧数据的所述交付类型为非可丢类型,以及所述帧内预测帧数据在后处理时基于自身数据渲染帧图像,所述帧间预测帧数据为关联数据元,且所述帧间预测帧数据的所述交付类型为所述可丢类型,以及所述帧间预测帧数据在后处理时基于自身数据和所述帧内预测帧数据渲染帧图像,所述帧内预测帧数据和所述帧间预测帧数据在所述数据类型上相同。
8.根据权利要求7所述的方法,其特征在于,所述数据元还包括音频帧数据,其中,所述音频帧数据为所述独立数据元,且所述音频帧数据的所述交付类型为所述非可丢类型,以及所述音频帧数据和所述视频帧数据在所述数据类型上不同。
9.根据权利要求1至6任一项所述的方法,其特征在于,所述通过至少两个网络通道接收发送设备发送的数据元之后,所述方法还包括:
当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上相邻时,将接收到的所述数据元确定为第一数据元集合中的所述数据元,并从第二数据元集合中获取与接收到的所述数据元在所述交付顺序上相邻的至少一个数据元,以及将相邻的至少一个所述数据元确定为所述第一数据元集合中的所述数据元;
当接收到的所述数据元与最近交付的所述数据元在所述交付顺序上不相邻时,将接收到的所述数据元确定为所述第二数据元集合中的所述数据元;
所述获取接收到的后序数据元,包括:
从所述第一数据元集合和所述第二数据元集合中获取接收到的所述后序数据元。
10.一种数据传输方法,其特征在于,所述方法包括:
通过至少两个网络通道向接收设备发送数据元,其中,所述数据元包括交付顺序;
在所述数据元的发送过程中,响应于切换指令,获取第n个所述数据元的交付类型,其中,所述切换指令用于对传输第n个所述数据元的所述网络通道进行切换,所述交付类型是基于后处理时被其他所述数据元依赖的程度和对后处理结果的影响程度确定的,n为正整数;
当第n个所述数据元的所述交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个所述数据元在数据类型上相同的独立数据元时,向所述接收设备发送所述后序数据元中未发送的所述数据元,其中,所述状态是基于是否接收到了所述数据元的全部数据确定的,所述数据类型是基于所述数据元的作用确定的,所述独立数据元为后处理时对其他所述数据元的依赖程度小于指定程度的所述数据元。
11.根据权利要求10所述的方法,其特征在于,所述获取第n个所述数据元的交付类型之后,所述方法还包括:
当第n个所述数据元的所述交付类型为非可丢类型时,确定第n个所述数据元的状态,其中,所述状态是基于所述接收设备是否接收到了所述数据元的全部数据确定的;
当第n个所述数据元的所述状态为不完整状态时,通过切换后的所述网络通道向所述接收设备发送第n个所述数据元对应的未传输数据。
12.根据权利要求10所述的方法,其特征在于,所述当第n个所述数据元的所述交付类型为可丢类型,且后序数据元包括状态为完整状态并与第n个所述数据元在数据类型上相同的独立数据元时,向所述接收设备发送所述后序数据元中未发送的所述数据元之前,所述方法还包括:
当第n个所述数据元的所述交付类型为可丢类型时,在所述后序数据元的未发送的数据元中,将与第n个所述数据元在数据类型上相同、且所述交付顺序最近的所述数据元,处理为独立数据元,得到包括与第n个所述数据元在数据类型上相同的独立数据元的所述后序数据元。
13.一种接收设备,其特征在于,所述接收设备包括:
第一存储器,用于存储可执行指令;
第一处理器,用于执行所述第一存储器中存储的可执行指令时,实现权利要求1至9任一项所述的方法。
14.一种发送设备,其特征在于,所述发送设备包括:
第二存储器,用于存储可执行指令;
第二处理器,用于执行所述第二存储器中存储的可执行指令时,实现权利要求10至12任一项所述的方法。
15.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令用于被第一处理器执行时,实现权利要求1至9任一项所述的方法;或者,所述可执行指令用于被第二处理器执行时,实现权利要求10至12任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111360129.XA CN114095451A (zh) | 2021-11-17 | 2021-11-17 | 一种数据处理方法、设备及计算机可读存储介质 |
KR1020247006294A KR20240040778A (ko) | 2021-11-17 | 2022-09-16 | 데이터 처리 방법, 장치, 기기, 컴퓨터 판독 가능한 저장 매체 및 컴퓨터 프로그램 제품 |
PCT/CN2022/119302 WO2023087881A1 (zh) | 2021-11-17 | 2022-09-16 | 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 |
US18/204,831 US20230336494A1 (en) | 2021-11-17 | 2023-06-01 | Data processing method and apparatuses, devices, computer-readable storage medium, and computer program product |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111360129.XA CN114095451A (zh) | 2021-11-17 | 2021-11-17 | 一种数据处理方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114095451A true CN114095451A (zh) | 2022-02-25 |
Family
ID=80301207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111360129.XA Pending CN114095451A (zh) | 2021-11-17 | 2021-11-17 | 一种数据处理方法、设备及计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230336494A1 (zh) |
KR (1) | KR20240040778A (zh) |
CN (1) | CN114095451A (zh) |
WO (1) | WO2023087881A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087881A1 (zh) * | 2021-11-17 | 2023-05-25 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060717A (zh) * | 2006-04-19 | 2007-10-24 | 三星电子株式会社 | 服务质量保障方法与装置 |
TW201635805A (zh) * | 2015-03-27 | 2016-10-01 | 宏碁股份有限公司 | 影像播放裝置及影像播放方法 |
CN108932948A (zh) * | 2017-05-26 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 音频数据处理方法、装置、计算机设备和计算机可读存储介质 |
CN111866969A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 一种数据处理方法、通信装置和系统 |
CN114342475A (zh) * | 2019-09-11 | 2022-04-12 | 高通股份有限公司 | 双活跃链路切换中的差错处置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8245264B2 (en) * | 2006-05-26 | 2012-08-14 | John Toebes | Methods and systems to reduce channel selection transition delay in a digital network |
US9578333B2 (en) * | 2013-03-15 | 2017-02-21 | Qualcomm Incorporated | Method for decreasing the bit rate needed to transmit videos over a network by dropping video frames |
CN108777665A (zh) * | 2018-06-06 | 2018-11-09 | 科大讯飞股份有限公司 | 一种数据传输方法、设备及系统 |
CN108848532B (zh) * | 2018-06-06 | 2022-01-28 | Oppo广东移动通信有限公司 | 一种数据传输优化方法、装置及计算机存储介质 |
CN113572836B (zh) * | 2021-07-21 | 2022-07-15 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、装置、服务器及存储介质 |
CN114095451A (zh) * | 2021-11-17 | 2022-02-25 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备及计算机可读存储介质 |
-
2021
- 2021-11-17 CN CN202111360129.XA patent/CN114095451A/zh active Pending
-
2022
- 2022-09-16 KR KR1020247006294A patent/KR20240040778A/ko unknown
- 2022-09-16 WO PCT/CN2022/119302 patent/WO2023087881A1/zh active Application Filing
-
2023
- 2023-06-01 US US18/204,831 patent/US20230336494A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060717A (zh) * | 2006-04-19 | 2007-10-24 | 三星电子株式会社 | 服务质量保障方法与装置 |
TW201635805A (zh) * | 2015-03-27 | 2016-10-01 | 宏碁股份有限公司 | 影像播放裝置及影像播放方法 |
CN108932948A (zh) * | 2017-05-26 | 2018-12-04 | 腾讯科技(深圳)有限公司 | 音频数据处理方法、装置、计算机设备和计算机可读存储介质 |
CN111866969A (zh) * | 2019-04-30 | 2020-10-30 | 华为技术有限公司 | 一种数据处理方法、通信装置和系统 |
CN114342475A (zh) * | 2019-09-11 | 2022-04-12 | 高通股份有限公司 | 双活跃链路切换中的差错处置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023087881A1 (zh) * | 2021-11-17 | 2023-05-25 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2023087881A1 (zh) | 2023-05-25 |
US20230336494A1 (en) | 2023-10-19 |
KR20240040778A (ko) | 2024-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10171546B2 (en) | Content reproduction apparatus, control information providing server, and content reproduction system | |
JP6369101B2 (ja) | 伝送端末、プログラム、画像表示方法、伝送システム | |
CN111711833B (zh) | 直播视频流推送控制方法、装置、设备及存储介质 | |
AU2013345759B2 (en) | Transmission system and program | |
JP6384095B2 (ja) | 伝送端末、プログラム、画像表示方法、伝送システム | |
JP6372156B2 (ja) | 接続制御システム、通信端末、通信システム、プログラム、及び接続制御方法 | |
CN112153394B (zh) | 云游戏直播互动方法及系统 | |
CN110012362B (zh) | 一种直播语音处理方法、装置、设备及存储介质 | |
EP2933982B1 (en) | Media stream transfer method and user equipment | |
EP3070935B1 (en) | Apparatus, system, and method of controlling output of content data, and carrier means | |
JP6103076B2 (ja) | 情報処理装置、プログラム、及び伝送システム | |
CN110557674A (zh) | 智能投屏播放、传输方法及装置 | |
JP6269610B2 (ja) | 情報処理装置、画像表示方法、通信システム、プログラム | |
JP2009515424A (ja) | 双方向型モバイルネットワークゲームシステム及び方法 | |
JPWO2015098841A6 (ja) | 情報処理装置、プログラム、及び伝送システム | |
WO2023087881A1 (zh) | 一种数据处理方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
KR102408778B1 (ko) | 인터넷 전화 기반 통화 중에 컨텐츠를 공유하는 방법, 시스템, 및 컴퓨터 프로그램 | |
CN114071230B (zh) | 多端投屏方法、计算机设备及计算机可读存储介质 | |
CN112295217B (zh) | 设备加入方法、装置、电子设备及计算机可读介质 | |
JP2017028660A (ja) | 情報処理装置、画像表示方法、通信システム、プログラム | |
CN113727177A (zh) | 投屏资源播放方法及其装置、设备与介质 | |
US9954718B1 (en) | Remote execution of applications over a dispersed network | |
JP2016067001A (ja) | 伝送管理システム、伝送システム、管理方法、及びプログラム | |
CN110536171B (zh) | 互动场景中的多媒体处理方法、装置及电子设备 | |
US20220094729A1 (en) | Live Streaming Architecture with Server-Side Stream Mixing |
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 |