一种数据处理的方法、装置及电子设备

文档序号:1218990 发布日期:2020-09-04 浏览:5次 >En<

阅读说明:本技术 一种数据处理的方法、装置及电子设备 (Data processing method and device and electronic equipment ) 是由 鲁付阳 陈劲松 于 2020-05-22 设计创作,主要内容包括:本发明提供了一种数据处理的方法、装置及电子设备,包括:获取网络状态参数,确定网络传输状态等级;根据所述网络传输状态等级,调整音视频数据的编码码率;根据调整后的编码码率对所述音视频数据进行编码;发送根据所述编码码率编码后的所述音视频数据。通过这种方式,能够提高数据传输效率,在弱网情况下可以保证数据的传输流畅。(The invention provides a data processing method, a data processing device and electronic equipment, wherein the data processing method comprises the following steps: acquiring a network state parameter and determining a network transmission state grade; adjusting the coding rate of the audio and video data according to the network transmission state grade; coding the audio and video data according to the adjusted coding rate; and sending the audio and video data coded according to the coding rate. By the method, the data transmission efficiency can be improved, and the smooth data transmission can be ensured under the weak network condition.)

一种数据处理的方法、装置及电子设备

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据处理的方法、装置及电子设备。

背景技术

随着互联网应用的发展,远程会议、在线教学在人们的日常生活使用越来越广泛,远程会议和在线教学的使用过程中都需要对音视频进行播放,因此涉及到音视频数据传输。

现有技术中,在数据传输过程中,当网络状态较好的环境下,音视频数据能够的到及时的发送,不会造成音视频数据在发送端的堆积,且接收端播放流畅、延时低;但在弱网络的环境下,音视频数据发送慢,传输效率低,在发送端会大量堆积,接收端在播放过程中也会出现黑屏、卡顿、延时等现象,造成较差的用户体验。

发明内容

本发明提供了一种数据处理的方法、装置及电子设备,可以提高数据传输效率。

根据本发明实施例的第一个方面,提供了一种数据处理的方法,包括:获取网络状态参数,确定网络传输状态等级;根据所述网络传输状态等级,调整音视频数据的编码码率;根据调整后的编码码率对所述音视频数据进行编码;发送根据所述编码码率编码后的所述音视频数据。

在一个实施例中,所述网络状态参数包括待发送数据中数据包的数量、往返时间RTT以及丢包率中的至少一项。

在一个实施例中,所述网络传输状态等级包括:优、良、中、差和拥塞。

在一个实施例中,所述方法还包括:响应于所述RTT大于或等于第一设定阈值,启动前向纠错编码FEC机制,设置冗余信息,或者,调整所述FEC机制,增加所述数据包中的冗余信息。

在一个实施例中,所述方法还包括:响应于所述RTT大于或等于第二设定阈值,且小于第一设定阈值时,调整重传机制,减小所述数据包的重传次数。

在一个实施例中,所述方法还包括:响应于所述丢包率大于或等于第三设定阈值,启动重传机制,或者,增加所述数据包的重传次数。

在一个实施例中,所述方法还包括:响应于所述丢包率大于或等于第四设定阈值,且小于第五设定阈值时,调整所述FEC机制,增加所述数据包中的冗余信息;和/或响应于所述丢包率大于或等于所述第五设定阈值,且小于第三设定阈值时,调整所述FEC机制,减少所述数据包中的冗余信息。

在一个实施例中,所述方法还包括:响应于所述丢包率大于或等于第六设定阈值,且所述RTT小于第七设定阈值,增加所述数据包的重传次数,且减少所述数据包中的冗余信息。

在一个实施例中,所述方法还包括:响应于所述丢包率小于第八设定阈值,且所述RTT大于或等于第九设定阈值,减少所述数据包的重传次数,且增加所述数据包中的冗余信息。

根据本发明实施例的第二个方面,提供了一种数据处理的装置,包括:确定单元,获取网络状态参数,确定网络传输状态等级;调整单元,用于根据所述网络传输状态等级,调整音视频数据的编码码率;处理单元,用于根据调整后的编码码率对所述音视频数据进行编码;发送单元,用于发送根据所述编码码率编码后的所述音视频数据。

根据本发明实施例的第三个方面,提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如第一方面或第一方面任一种可能所述的方法。

根据本发明实施例的第四个方面,提供了一种计算机可读存储介质,其上存储计算机程序指令,其特征在于,所述计算机程序指令在被处理器执行时实现如第一方面或第一方面任一种可能所述的方法。

发明实施例的有益效果包括:首先获取网络状态参数,确定网络传输状态等级,然后根据所述网络传输状态等级,调整音视频数据的编码码率,接着根据调整后的编码码率对所述音视频数据进行编码,最后发送根据所述编码码率编码后的所述音视频数据。通过上述方法,当网络传输状态较差的情况下,可以降低编码码率,保证数据传输的流畅性,提高用户的体验。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1是现有技术中的在线视频教学场景示意图;

图2是本发明实施例提供的一种数据处理的方法流程图;

图3是本发明实施例提供的一种数据处理的方法流程图;

图4是本发明实施例提供的一种数据处理的装置示意图;

图5是本发明实施例提供的一种电子设备结构示意图。

具体实施方式

以下基于实施例对本发明公开进行描述,但是本发明公开并不仅仅限于这些实施例。在下文对本发明公开的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明公开。为了避免混淆本发明公开的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。

此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。

除非上下文明确要求,否则整个申请文件中的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。

在本发明公开的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。

根据一个或多个实施例,提供了一种数据处理的方法,获取网络状态参数,确定网络传输状态等级;根据所述网络传输状态等级,调整音视频数据的编码码率;根据调整后的编码码率对所述音视频数据进行编码;发送根据所述编码码率编码后的所述音视频数据。

在一个或多个实施例中,图1是现有技术中的在线视频教学场景示意图,图1中所示的接收端可以为教师端或学生端,所述发送端可以是学生端或教师端,假设在发送端为教师端,接收端为学生端,在线教学视频的场景中,将教师端的音视频数据发送给学生端,首先将教师端的音视频数据通过网络发送到服务器,发送服务器将所述音视频数据通过网络发送给学生端;同理,假设在发送端为学生端,接收端为教师端,在线教学视频的场景中,将学生端的音视频数据发送给教师端,首先将学生端的音视频数据通过网络发送到服务器,然后服务器将所述音视频数据通过网络发送给学生端。

在一个或多个实施例中,数据处理的方法流程如图2所示,但图2的示例并不能理解为对实施例的具体限制。

步骤S200、获取网络状态参数,确定网络传输状态等级。

在一个或多个实施例中,所述网络状态参数为发送端与接收端之间网络连接的参数,也可以为发送端与服务器之间网络连接的参数,接收端与服务器之间网络连接的参数,包括待发送数据中数据包的数量、往返时间RTT以及丢包率中的至少一项。

在一个或多个实施例中,所述待发送数据中数据包的数量是指待发送数据中存在的等待传输的数据包的个数,所述往返时间是指数据包从发送端到接收端的时间,以及所述数据包的反馈信息从接收端到发送端的时间之和,所述丢包率是指丢失的数据包数量与发送对数据包数量的比值。

在一个或多个实施例中,所述网络传输状态等级包括:优、良、中、差和拥塞。

在一个或多个实施例中,假设待发送数据中数据包的数量小于10、往返时间(round-trip time,RTT)小于200ms,且丢包率等于0,网络传输状态等级为优;待发送数据中数据包的数量小于15、RTT小于200ms,且丢包率小于0.1,则网络传输状态等级为良;或待发送数据中数据包的数量小于15、RTT小于300ms,且丢包率等于0,网络传输状态等级为良;待发送数据中数据包的数量小于30、RTT小于250ms,且丢包率小于0.25,则网络传输状态等级为中;或待发送数据中数据包的数量小于30、RTT小于450ms,且丢包率等于0,网络传输状态等级为中;待发送数据中数据包的数量小于150,网络传输状态等级为差;待发送数据中数据包的数量大于150,RTT大于2500ms网络传输状态等级为拥塞。上述实施例仅仅为示例性说明,具体数据或网络传输状态等级划分可以根据实际情况确定。

在一个或多个实施例中,所述待发送数据中数据包及发送端堆积的数据包。

步骤S201、根据所述网络传输状态等级,调整音视频数据的编码码率。

在一个或多个实施例中,根据所述网络传输状态等级,将所述音视频数据的编码码率调整到所述网络传输状态等级分别对应的数值。

在一个或多个实施例中,所述编码码率指每秒传送的比特数,音视频编码器在编码时,根据动态变化的编码码率输出音视频流,以保障实时传输质量。

在一个或多个实施例中,假设所述音视频数据的编码码率分别为300、500、1000、1500和2000五个数值,上述数据仅仅为示例性说明,具体数值以及数值的单位根据实际使用情况确定,本发明实施例对其不做限定。

在一个或多个实施例中,假设所述网络传输状态等级为优,将所述音视频数据的编码码率调整到较高的数值,假设所述网络传输状态等级为拥塞,将所述音视频数据的编码码率调整到较低的数值。

在一个或多个实施例中,假设所述网络传输状态等级为优,将所述音视频数据的编码码率调整到2000;所述网络传输状态等级为良,将所述音视频数据的编码码率调整到1500;所述网络传输状态等级为中,将所述音视频数据的编码码率调整到1000;所述网络传输状态等级为差,将所述音视频数据的编码码率调整到500;所述网络传输状态等级为拥塞,将所述音视频数据的编码码率调整到300。

步骤S202、根据调整后的编码码率对所述音视频数据进行编码。

在一个或多个实施例中,可以在音视频数据录制时采用调整后的编码码率进行录制,还可以将录制好的音视频文件根据编码码率进行转码,本发明实施例对其不做限定。

在一个或多个实施例中,假设音视频数据录制时网络传输状态等级为优,采用编码码率2000进行视频录制,然后发送录制好的音视频数据之前,若此时网络传输状态等级为中,需要将录制好的音视频文件根据编码码率1000进行转码。

步骤S203、发送根据所述编码码率编码后的所述音视频数据。

在一个或多个实施例中,发送端将按照所述编码码率进行编码后的所述音视频数据发送至接收端。

在一个或多个实施例中,当所述编码码率较高时,在单位时间内发送至接收端的有效数据包较多,当所述编码码率较低时,在单位时间内发送至接收端的有效数据包较少。

在一个或多个实施例中,当所述编码码率较高时,网络传输状态较好,则在单位时间内可以发送的有效数据包较多;当所述编码码率较低时,网络传输状态较差,在单位时间内发送至接收端的有效数据包较少。

在一个或多个实施例中,在网络传输状态较差的情况下,即弱网情况下,可能会存在丢包的情况,因此在降低编码码率的同时,还需要重传数据包,或者在数据包中增加冗余信息,便于接收端在丢失数据包的情况下,可以根据冗余信息恢复数据包。

在一个或多个实施例中,在网络传输状态较差的情况下,因为网络传输状态较差因此也会存在丢包的情况,为了在网络传输状态较差的情况下保证音视频数据播放的流畅性,需要降低编码码率,虽然此时网络传输状态较差,重传数据包会占用带宽,但还是需要对数据包进行重传,或者在数据包中增加冗余信息,便于接收端在丢失数据包的情况下,接收到重传数据包,或者根据冗余信息恢复数据包。

在一个或多个实施例中,响应于所述RTT大于或等于第一设定阈值,启动前向纠错编码FEC机制,设置冗余信息,接收端通过冗余信息恢复未接收到的数据包,而不需要向发送端发送重传请求,减少网络传输中带宽的占用;或者,本身发送端已经启动了FEC机制,但是延迟相比于启动FEC机制时的延迟更大,需要调整所述FEC机制,增加所述数据包中的冗余信息,其中,所述FEC机制通常在低丢包率,高延迟的情况下采用。

在一个或多个实施例中,所述FEC机制为数据包中包括冗余信息,具体的,将数据包进行编码,生成监督码,所述监督码作为冗余信息与数据包中的数据同时传输至接收端,当数据包中的数据丢失或错误时,接收端根据冗余信息恢复未接收到的数据包,而不需要请求发送端重传所述未接收到的数据包,通常FEC机制被应用在重传开销巨大或者不可能重传的情况下。

在一个或多个实施例中,每个数据包对应的冗余信息还可以存放在该数据包之前或之后的数据包中进行发送,本发明实施例对其不做限定

在一个或多个实施例中,响应于所述RTT大于或等于第二设定阈值,且小于第一设定阈值时,调整重传机制,减小所述数据包的重传次数;在弱网情况下,减少重传次数可以提高数据传输效率。

在一个或多个实施例中,若所述RTT大于或等于第二设定阈值,且小于第一设定阈值时,延迟相比于上述情况小,因此不需要启动FEC机制,只需要调整重传机制,由于网络传输状态较差,可用带宽较小,因此需要通过减小所述数据包的重传次数。

在一个或多个实施例中,响应于所述丢包率大于或等于第三设定阈值,启动重传机制,或者,增加所述数据包的重传次数。

在一个或多个实施例中,若所述丢包率大于或等于第三设定阈值,丢包率较高,但是延迟较低,只需要启动重传机制,而不需要启动FEC机制,或者增加所述数据包的重传次数,保证接收端接收到重传的数据包,保证音视频数据播放的流程性。

在一个或多个实施例中,响应于所述丢包率大于或等于第四设定阈值,且小于第五设定阈值时,调整所述FEC机制,增加所述数据包中的冗余信息;和/或响应于所述丢包率大于或等于所述第五设定阈值,且小于第三设定阈值时,调整所述FEC机制,减少所述数据包中的冗余信息。

在一个或多个实施例中,若所述丢包率大于或等于第四设定阈值,且小于第五设定阈值时,即丢包率小于上述情况,采用重传机制的同时,还可以调整所述FEC机制,增加所述数据包中的冗余信息;若所述丢包率大于或等于所述第五设定阈值,且小于第三设定阈值时,采用重传机制的同时,还可以调整所述FEC机制,减少所述数据包中的冗余信息。

在一个或多个实施例中,响应于所述丢包率大于或等于第六设定阈值,且所述RTT小于第七设定阈值,增加所述数据包的重传次数,且减少所述数据包中的冗余信息。

在一个或多个实施例中,响应于所述丢包率小于第八设定阈值,且所述RTT大于或等于第九设定阈值,减少所述数据包的重传次数,且增加所述数据包中的冗余信息。

在一个或多个实施例中,通过丢包率和RTT两个条件同时判断数据包的重传次数以及所述数据包中的冗余信息的增减。

在一个或多个实施例中,在弱网情况下,还可以减小发送端的帧率。

在一个或多个实施例中,所述编码码率影响音视频的清晰度,所述帧率影响音视频的流畅,所述编码码率越大,音视频的清晰度越清晰,所述编码码率越小,音视频的清晰度越模糊,所述帧率越大,单位时间内传输的数据越多,音视频越流畅,所述帧率越小,单位时间内传输的数据越小,音视频会出现跳帧的情况,音视频播放时会卡顿,流畅度较差。

在一个或多个实施例中,发送端与接收端的交互流程如图3所示,为了绘图方便,图3仅示出了一个发送端和一个接收端的交互流程,但图3的示例并不能理解为对实施例的具体限制。在一个或多个实施例中,系统可以包括多个发送端、多个接收端。

步骤S300、发送端发送数据包至接收端。

步骤S301、所述接收端接收所述数据包。

步骤S302、所述接收端确定丢包率。

步骤S303、所述接收端发送丢包率至所述发送端。

步骤S304、所述发送端根据所述丢包率、往返时间RTT以及待发送数据中数据包的数量,确定网络传输状态等级。

在一个或多个实施中,所述往返时间RTT是发送端本地计算确定的。

步骤S305、所述发送端根据所述网络传输状态等级,调整音视频数据的编码码率。

步骤S306、所述发送端根据调整后的编码码率对所述音视频数据进行编码。

步骤S307、所述发送端发送根据所述编码码率编码后的所述音视频数据至所述接收端。

步骤S308、所述接收端接收所述编码码率编码后的所述音视频数据。

根据一个或多个实施例,所述接收端同时也可以执行发送端的处理流程,所述发送端同时也可以执行接收端的处理流程。

根据一个或多个实施例,发送端和接收端包括但不限于:个人电脑(PC)、平板电脑、手持设备(如:智能手机、掌上电脑)、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中接收端设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personal digital assistant,PDA)、5G网络或未来演进网络中的终端设备等,此处并不限制用接收端设备的类型。

图4是本发明实施例提供的一种数据处理的装置示意图,即发送端,包括:确定单元41,获取网络状态参数,确定网络传输状态等级;调整单元42,用于根据所述网络传输状态等级,调整音视频数据的编码码率;处理单元43,用于根据调整后的编码码率对所述音视频数据进行编码;发送单元44,用于发送根据所述编码码率编码后的所述音视频数据。

在一个或多个实施例中,所述网络状态参数包括待发送数据中数据包的数量、往返时间RTT以及丢包率中的至少一项。

在一个或多个实施例中,所述网络传输状态等级包括:优、良、中、差和拥塞。

在一个或多个实施例中,所述处理单元43还用于:响应于所述RTT大于或等于第一设定阈值,启动前向纠错编码FEC机制,设置冗余信息,或者,调整所述FEC机制,增加所述数据包中的冗余信息。

在一个或多个实施例中,所述处理单元43还用于:响应于所述RTT大于或等于第二设定阈值,且小于第一设定阈值时,调整重传机制,减小所述数据包的重传次数。

在一个或多个实施例中,所述处理单元43还用于响应于所述丢包率大于或等于第三设定阈值,启动重传机制,或者,增加所述数据包的重传次数。

在一个或多个实施例中,所述处理单元43还用于响应于所述丢包率大于或等于第四设定阈值,且小于第五设定阈值时,调整所述FEC机制,增加所述数据包中的冗余信息;和/或响应于所述丢包率大于或等于所述第五设定阈值,且小于第三设定阈值时,调整所述FEC机制,减少所述数据包中的冗余信息。

在一个或多个实施例中,所述处理单元43还用于:响应于所述丢包率大于或等于第六设定阈值,且所述RTT小于第七设定阈值,增加所述数据包的重传次数,且减少所述数据包中的冗余信息。

在一个或多个实施例中,所述处理单元43还用于:响应于所述丢包率小于第八设定阈值,且所述RTT大于或等于第九设定阈值,减少所述数据包的重传次数,且增加所述数据包中的冗余信息。

图5是本发明实施例的电子设备的示意图。图5所示的电子设备为通用数据传输装置,其包括通用的计算机硬件结构,其至少包括处理器51和存储器52。处理器51和存储器52通过总线53连接。存储器52适于存储处理器51可执行的指令或程序。处理器51可以是独立的微处理器,也可以是一个或者多个微处理器集合。由此,处理器51通过执行存储器52所存储的指令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其它装置的控制。总线53将上述多个组件连接在一起,同时将上述组件连接到显示控制器54和显示装置以及输入/输出(I/O)装置55。输入/输出(I/O)装置55可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出装置55通过输入/输出(I/O)控制器56与系统相连。

如本领域技术人员将意识到的,本发明实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本发明实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本发明实施例的各个方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。

可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪速存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光存储装置、磁存储装置或前述的任意适当的组合。在本发明实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。

计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。

可以使用包括但不限于无线、有线、光纤电缆、RF等或前述的任意适当组合的任意合适的介质来传送实现在计算机可读介质上的程序代码。

用于执行针对本发明实施例各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如Java、Smalltalk、C++等;以及常规过程编程语言如“C”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(LAN)或广域网(WAN)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。

上述根据本发明实施例的方法、设备(系统)和计算机程序产品的流程图图例和/或框图描述了本发明实施例的各个方面。将要理解的是,流程图图例和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。

还可以将这些计算机程序指令存储在可以指导计算机、其它可编程数据处理设备或其它装置以特定方式运行的计算机可读介质中,使得在计算机可读介质中存储的指令产生包括实现在流程图和/或框图块或块中指定的功能/动作的指令的制品。

计算机程序指令还可以被加载至计算机、其它可编程数据处理设备或其它装置上,以使在计算机、其它可编程设备或其它装置上执行一系列可操作步骤来产生计算机实现的过程,使得在计算机或其它可编程设备上执行的指令提供用于实现在流程图和/或框图块或块中指定的功能/动作的过程。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种对视频进行转码的方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类