CN117118573B - 数据网络传输方法、装置、设备及存储介质 - Google Patents

数据网络传输方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN117118573B
CN117118573B CN202311373322.6A CN202311373322A CN117118573B CN 117118573 B CN117118573 B CN 117118573B CN 202311373322 A CN202311373322 A CN 202311373322A CN 117118573 B CN117118573 B CN 117118573B
Authority
CN
China
Prior art keywords
packet
packet loss
data
loss information
original data
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
Application number
CN202311373322.6A
Other languages
English (en)
Other versions
CN117118573A (zh
Inventor
梁俊斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311373322.6A priority Critical patent/CN117118573B/zh
Publication of CN117118573A publication Critical patent/CN117118573A/zh
Application granted granted Critical
Publication of CN117118573B publication Critical patent/CN117118573B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0072Error control for data other than payload data, e.g. control data
    • H04L1/0073Special arrangements for feedback channel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M7/00Arrangements for interconnection between switching centres
    • H04M7/006Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP), including next generation networks with a packet-switched transport layer
    • H04M7/0081Network operation, administration, maintenance, or provisioning
    • H04M7/0084Network monitoring; Error detection; Error recovery; Network testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种数据网络传输方法、装置、设备及存储介质,可应用于云技术、智慧交通、无线通话等各种场景。该方法包括:获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;获取基于接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;基于编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;输入数据包括基于采集的音频数据进行第一编码所得的数据;基于待传输的多个原始数据包进行第二编码,获得目标数值个冗余数据包;将待传输的多个原始数据包和冗余数据包通过网络传输至接收端。本申请的实施可以提升前向纠错的效率。

Description

数据网络传输方法、装置、设备及存储介质
技术领域
本申请涉及通信技术领域,具体而言,本申请涉及一种数据网络传输方法、装置、设备及存储介质。
背景技术
前向纠错(Forward Error Correction,简称FEC)是一种错误纠正技术,可以用于数字通信领域,通过在发送数据时添加冗余信息来使接收端能够检测和纠正传输中的错误。在VoIP(Voice over Internet Protocol,基于IP的语音传输)应用中这种编码方案可以将原始音视频数据分成多个小段,并在每个小段中添加冗余信息,然后将这些小段分别传输给接收端。如果某些小段在传输过程中发生了丢失或错误,接收端可以使用其他小段中的冗余信息来检测和纠正这些错误,从而还原原始音视频数据。
然而,现有的前向纠错编码方式是一种固定的冗余包生成方式,如果出现突发连续丢包场景,连续多个数据包(包括前向纠错冗余包)都会出现大概率的丢失,导致接收端还原数据包成功的概率较低,在该场景下前向纠错的效率较低。
发明内容
本申请实施例为解决上述至少一项技术问题,提供了一种数据网络传输方法、装置、设备及存储介质。所述技术方案如下:
第一方面,本申请实施例提供了一种数据网络传输方法,包括:
获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;所述输入数据包括基于采集的音频数据进行第一编码所得的数据;
基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包;
将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
第二方面,本申请实施例提供一种数据网络传输方法,包括:
接收至少部分发送端通过网络传输的原始数据包和冗余数据包;
若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码;
分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包;
其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
第三方面,本申请实施例提供一种数据网络传输方法,包括:
基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
第四方面,本申请实施例提供一种数据网络传输装置,包括:
第一参数确定模块,用于获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
第二参数确定模块,用于获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
获取模块,用于基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;
编码模块,用于基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包;
网络传输模块,用于将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
第五方面,本申请实施例提供一种数据网络传输装置,包括:
接收模块,用于接收至少部分发送端通过网络传输的原始数据包和冗余数据包;
还原模块,用于若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码;
反馈模块,用于分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包;
其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
第六方面,本申请实施例提供一种数据网络传输装置,包括:
第一确定模块,用于基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
第二确定模块,用于基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
发送模块,用于向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
第七方面,本申请实施例提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现上述第一方面、第二方面或第三方面提供的方法。
第八方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面、第二方面或第三方面提供的方法。
第九方面,本申请实施例提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述第一方面、第二方面或第三方面提供的方法。
本申请实施例提供的技术方案带来的有益效果是:
本申请实施例提供一种数据网络传输方法,具体地,前向编码参数可以根据接收端反馈的丢包信息进行调整;其中,可以获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;还可以获取基于接收端反馈的第二丢包信息所确定的所需生成的冗余数据包的目标数值。在该基础上,本申请实施例可以基于编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包,其中,输入数据包括基于采集的音频数据进行第一编码得到的数据;相对于现有技术,本申请实施例获得的待传输的多个原始数据包的相对位置是动态的,与当前网络传输状态下的丢包情况相关,其中,第一丢包信息包括与最大连续丢包数现骨干的信息和与收包成功率相关的信息中的至少一项;第二丢包信息包括与还原丢失数据包的失败次数相关的信息。另外,本申请实施例可以基于待传输的多个原始数据包进行第二编码,得到目标数值个冗余数据包,继而将待传输的多个原始数据包和冗余数据包通过网络传输至接收端,也即本申请的实施可以基于动态配置的原始数据包的个数和冗余数据包的个数让接收端获取到与当前网络传输场景更为匹配的数量,在避免耗费过多数据传输开销的同时可以有效提高接收端还原丢包的能力,进而提升前向纠错的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种数据网络传输方法的流程图;
图2为本申请实施例提供的另一种数据网络传输方法流程图;
图3为本申请实施例提供的又一种数据网络传输方法流程图;
图4为本申请实施例提供的再一种数据网络传输方法流程图;
图5a为本申请实施例提供的一种包级RS编解码流程图;
图5b为本申请实施例提供的另一种包级RS编解码流程图;
图6为本申请实施例提供的一种应用场景的示意图;
图7为本申请实施例提供的一种RS编码过程的示意图;
图8为本申请实施例提供的一种数据网络传输装置的示意图;
图9为本申请实施例提供的另一种数据网络传输装置的示意图;
图10为本申请实施例提供的又一种数据网络传输装置的示意图;
图11为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方案不构成限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”可以实现为“A”,或者实现为“B”,或者实现为“A和B”。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例涉及一种语音通话技术,如VoIP,在相关技术中VoIP在实际应用中为了保证音视频传输的实时性,通常使用UDP(User Datagram Protocol,用户数据报协议)等不可靠连接协议方式,而互联网普遍存在带宽竞争、传输拥塞现象,导致数据包极容易发生丢失,对于语音通话质量最大的因素就是数据包丢失,大部分语音解码器会自带有PLC(Programmable Logic Controller,可编程逻辑控制器)的丢包隐藏功能,但只能有限度地修复少量丢包(例如1~2个包),如果连续丢包在3个以上,解码器的PLC功能基本失效,甚至会听到明显的不自然噪声或断续感,另外大量连续丢包下人耳能明显感知丢包导致的卡顿掉字等现象,非常影响通话主观体验。相关技术中解决连续丢包问题主要使用FEC,通过冗余包对丢包进行恢复,但由于传输网络丢包模型不是固定的,有可能是随机零散少量丢包,也可能是连续突发大量丢包,在不同的实际丢包模型场景下,现有的前向纠错编码方式是基于一种固定的冗余包生成方式,如果出现突发连续丢包场景,连续多个数据包(包括前向纠错冗余包)都会出现大概率丢失,导致接收端还原数据包成功的概率较低,在该场景下前向纠错的效率较低。
现有前向纠错包级RS编解码方案,其用于RS编码的输入数据包相对位置通常是固定的,例如选用历史缓存中离当前时刻最近的连续k个数据包,这样的包数为k的数据块进行包级RS编码,接收端按照收到的对应数据包和冗余数据包进行修复还原丢失数据包,然而在实际网络传输中丢包模型(随机丢包、突发丢包等)不同,导致RS编码的连续数据包和冗余包容易出现高概率丢失情况,例如,网络出现大抖动且突发连续多帧出现丢失,很可能丢失的数据包就是RS编码输入的数据包和冗余数据包,而丢包个数大于冗余包数r,所以RS前向纠错失效无法恢复丢失数据包,另外现有RS方案为了对抗常规的突发连续丢包或高丢包率场景,则需要更高的冗余比例,提高冗余数值,与此同时带宽开销也会相应增加。
针对上述现有技术中存在的至少一个技术问题,本申请实施例提出一种基于接收端丢包信息分析的自适应前向纠错冗余包动态生成方案,与现有前向纠错静态冗余数据包生成方案相比,现有方案遇到突发连续丢包容易失效而无法还原丢包数据,而本申请实施例可以根据不同丢包情况设计RS冗余编码包的不同生成方式,这种动态修改前向纠错码编码方式在连续丢包场景下能显著提升前向纠错效率,让前向纠错丢包还原能力得到极大改进。
下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复描述。
下面针对本申请实施例中用于编码侧的数据网络传输方法进行说明。
具体地,本申请实施例提供的方法的执行主体可以是终端;终端(也可以称为设备),可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备等,但并不局限于此。
在一示例中,若执行主体为终端,则其具体为数据发送端,在执行无线通话任务时,针对采集到的音频数据进行第一编码后,可以执行本申请实施例提供的数据网络传输方法后,将得到的动态的原始数据包和冗余数据包通过网络传输至接收端,如图5a所示。
具体地,如图1和3所示,该数据网络传输方法包括S101- S105:
S101:获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项。
其中,接收端可以为接收数据的一端,发送端可以为发送数据的一端。可选地,以场景示例说明,在无线通话场景中,包括通话方A和通话方B;针对通话方A,其在接收通话方B的音频数据时作为接收端,在向通话方B发送音频数据时作为发送端;针对通话方B,其在接收通话方A的音频数据时作为接收端,在向通话方A发送音频数据时作为发送端。
其中,如图5a所示,针对前向纠错编码(第二编码)而言,其输入数据为发送端已通过音频编码器进行编码后的数据。其中,编码输入数据的获取位置参数用于指示如何从输入数据中获取待前向纠错编码的多个原始数据包。
其中,编码输入数据的获取位置参数可以基于接收端在接收数据包时的丢包情况确定。可选地,从正向反馈的角度而言,可以基于接收端接收数据包的成功率(收包成功率)确定编码输入数据的获取位置参数。从反向反馈的角度而言,可以基于接收端在接收数据包时发生的最大连续丢包数确定编码输入数据的获取位置参数。
可选地,编码输入数据的获取位置参数可以由发送端自身基于接收端反馈的第一丢包信息确定,也可以由服务器确定后直接发送至发送端。
S102:获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息。
其中,接收端可以基于冗余数据包进行纠错,以还原丢失的原始数据包,也即冗余数据包的存在可以影响前向纠错能力,因此,可以基于接收端还原丢失数据包的结果确定适应当前场景所需生成的冗余数据包的包数。可选地,可以基于接收端反馈的与还原丢失数据包的失败次数相关的信息确定所需生成的冗余数据包的目标数值。
可选地,冗余数据包的目标数值可以由发送端自身基于接收端反馈的第二丢包信息确定,也可以由服务器确定后发送至发送端。
S103:基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
其中,编码输入数据的获取位置参数指示当前待前向纠错编码的n个原始数据包的获取位置。可选地,原始数据包的数值n可以为预设值。假设n=3,则通过编码输入数据的获取位置参数可以确定该3个原始数据包应该从哪些位置进行获取,将在后续实施例中具体说明获取过程。
其中,输入数据为发送端当前采集到的且经过第一编码得到的音频数据,第一编码可以通过相关技术提供的音频编码器进行,本申请对此不作限定。
S104:基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值r个冗余数据包。
其中,在进行前向纠错编码时,输入的n个原始数据包和输出的r个冗余数据包的包数可以相同也可以不同,且n可以为静态的预设数值,而r可以为与当前丢包场景适配的动态数值。
S105:将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
可选地,如图6所示,可以通过RTP(Real-Time Transport Protocol,实施传输协议)或UDP(User Datagram Protocol,用户数据报协议)进行包级数据的传输,以通过无线网络传输将原始数据包和冗余数据包发送至接收端。
可选地,S101获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数之前,还包括S100:响应于无线通话操作,获取通过音频编码器将采集到的音频数据进行第一编码得到的输入数据。
其中,如图6所示,对于发送端而言,其在执行无线通话任务时,针对采集(输入)到的音频数据,可以首先通过音频编码器进行第一编码,得到前向纠错编码器的输入数据。
可选地,S104中基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包,包括:通过前向纠错编码器基于获取的预设的第一数值n个待传输的原始数据包和预设的第二数值n-1个从历史输入数据中获取的历史数据包进行第二编码,获得所述目标数值个冗余数据包。
其中,如图6所示,对于发送端而言,在进行第二编码时,其可以结合当前的n个原始数据包和除了当前的原始数据包外的n-1个来自历史发送缓存区的历史数据包进行。可选地,历史发送缓存区缓存有通过音频编码器将采集到的音频数据进行第一编码所得的数据。
可选地,上述实施例中第一数值和第二数值相差1。在一些可行的示例中,两者可以基于需求设定其他数值关系,本申请实施例对此不作限定。
可选地,本申请实施例提供的方法可以应用于各种类型的前向纠错编码(ForwardError Correction,FEC)技术中,如RS编码(Reed-solomon codes,前向纠错的信道编码)、PRS编码等,本申请对此不作限定。
在一可行的实施例中,S101中获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数,包括A1-A3:
A1:接收接收端基于预设的第一周期反馈的第一丢包信息。
可选地,接收端反馈第一丢包信息是周期性的操作,该周期时间可以基于需求设定,如设定为2秒,则当前反馈的第一丢包信息对应于前2秒时间内接收端的丢包情况。
A2:若所述第一丢包信息包括与最大连续丢包数相关的信息,则通过预设的最大连续丢包数与预设的间隔数值之间的对应关系,确定所述第一丢包信息指示的当前周期内最大连续丢包数所对应的第一间隔数值,并基于该第一间隔数值配置编码输入数据的获取位置参数。
其中,本申请实施例可以在参与前向纠错过程的主体中配置相同的预设的最大连续丢包数与预设的间隔数值之间的对应关系,以使在进行前向纠错编码和前向纠错解码时,均可以基于当前周期的最大连续丢包数确定出相应的第一间隔数值。
可选地,预设的最大连续丢包数与预设的间隔数值之间的对象关系可以采用下述丢包模型示例(假设定义有4中丢包模型):
丢包模型1:最大连续丢包数小于3,间隔数值为0;
丢包模型2:最大连续丢包数大于或等于3且小于5,间隔数值为1;
丢包模型3:最大连续丢包数大于或等于5且小于8,间隔数值为2;
丢包模型4:最大连续丢包数大于或等于8,间隔数值为3。
示例性的,假设当前周期内的最大连续丢包数为7,则对应的第一间隔数值d=2,在此基础上,从输入数据中获取n(n=3)个原始数据包时,以等间距方式进行获取,三个数据包之间相互间隔2个数据包,所获取的三个原始数据包的相对位置分别是:第i个数据包、第i-3个数据包、第i-6个数据包。
A3:若所述第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值配置编码输入数据的获取位置参数。
其中,在第一丢包信息包括与收包成功率相关的信息时,可以通过预设的配置信息获取静态(固定)的数据包间隔数值,也可以通过该收包成功率与设定阈值的比较获取动态的数据包间隔数值。
可选地,A3中若所述第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值配置编码输入数据的获取位置参数,包括以下A31-A32中的一项:
A31:若所述第一丢包信息包括与收包成功率相关的信息,则从预设的配置信息中获取与所述第一丢包信息指示的当前周期内的收包成功率匹配的目标配置信息,并基于该目标配置信息配置编码输入数据的获取位置参数;其中,所述预设的配置信息中包括多项与不同收包成功率匹配的配置信息,且每一项配置信息中包括至少两个第二间隔数值。
示例性地,结合表1所示的配置信息进行说明:
表1
假设第一丢包信息指示当前周期内的收包成功率(可以为当前周期内的最高阈值)为75%(0.75),结合上述表1可见,在该收包成功率下可以得到匹配的目标配置P2,其相应的第二间隔数值为1和7,也即所获取的3个原始数据包为:第i个数据包、第i-2个数据包、第i-9个数据包。
可选地,参与前向纠错过程的所有主体均配置有相同的配置列表,如上述示例,在发送端确定采用P2的配置信息时,在向接收端传输数据时可以将该配置标识P2一并传输至接收端,使得接收端基于配置标识即可知悉在非等间距获取原始数据包的情况下相应的第二间隔数值。
A32:若所述第一丢包信息包括与收包成功率相关的信息,则获取所述第一丢包信息指示的当前周期内的收包成功率相应的至少一个第三间隔数值,并基于该第三间隔数值配置编码输入数据的获取位置参数。
本申请实施例还提供基于收包成功率动态确定数据包间隔数值的方案,可选地,接收端在统计分析当前周期内的收包成功率时,可以将收包成功率最高的阈值进行反馈,并同步反馈该阈值下所对应的数据包间隔数值。可选地,接收端可以统计当前周期内各种数据包间隔数值所对应的收包成功率,并进行全部/部分反馈,接收端在基于收包成功率确定数据包间隔数值时,可以将其中最高的收包成功率所对应的数据包间隔数值(第三间隔数值)配置编码输入数据的获取位置参数。
在一可行的实施例中,考虑到现有前向纠错编码采用固定的相邻数据包组成的数据块进行发送,而在连续丢包下大部分原始数据包和冗余数据包会出现大概率丢失,现有的前向纠错编码方式下接收端进行前向纠错解码会很容易失败。为解决该问题,本申请实施例为跨过连续丢包位置,让接收端接收到更多有用的数据包,设定编码生成的冗余数据包之间的发送间隔与输入数据包(原始数据包)之间的间隔保持一致。
可选地,S105中将所述待传输的多个原始数据包和冗余数据包通过网络传输至所述接收端,包括B1-B3:
B1:基于所述编码输入数据的获取位置参数,确定发送相邻两个所述冗余数据包所需间隔的所述原始数据包的第四间隔数值。
B2:基于所述第四间隔数值和发送所述原始数据包的预设的第一时间间隔,确定发送相邻两个所述冗余数据包之间的第二时间间隔。
B3:基于所述第一时间间隔和所述第二时间间隔,分别将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
示例性地,假设生成2个冗余数据包,且配置的间隔(数据包间隔数值d)为1,则该两个冗余数据包会间隔一个发送数据包的时间间隔(例如一个数据包长度或原设定发送时间间隔为20ms,则发送第一个冗余数据包后等待40ms后再发送第二个冗余数据包),该方案的实施可以使得接收端在接收本组的原始数据包和冗余数据包之间有一定的时间差值,以提高绕过连续丢包位置的可能性,让接收端获取到更多有用的数据包,降低连续丢包导致前向纠错解码失败的概率。
在一可行的实施例中,S102中获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值,包括C1-C3:
C1:接收接收端基于预设的第二周期反馈的第二丢包信息,该第二丢包信息指示当前周期内还原丢失的原始数据包失败的概率。
可选地,接收端可以周期性统计分析该周期内还原丢失的原始数据包失败的概率,并进行反馈。
可选地,接收端反馈第一丢包信息的第一周期和反馈第二丢包信息的第二周期可以不同,且为了提高所统计概率的有效性,可以设定第二周期大于第一周期。
C2:若该第二丢包信息指示的概率超过预设的第一阈值,且上一周期所确定的冗余数据包的目标数值小于上限值,则将上一周期所确定的冗余数据包的目标数值加上预设的第一数值得到当前周期所需生成的冗余数据包的目标数值。
示例性地,假设第一阈值为0.35(概率为35%),上限值为3,第一数值为1:
若第二丢包信息指示的概率为0.4,上一周期所确定的冗余数据包的目标数值r为1,则当前周期的冗余数据包的目标数值为2(r=1+1)。
若第二丢包信息指示的概率为0.3,上一周期所确定的冗余数据包的目标数值r为1,则当前周期的冗余数据包的目标数值为1(不变)。
若第二丢包信息指示的概率为0.45,上一周期所确定的冗余数据包的目标数值r为3,则当前周期的冗余数据包的目标数值为3(不变)。
C3:若该第二丢包信息指示的概率为预设的第二阈值,且上一周期所确定的冗余数据包的目标数值大于下限值,则将上一周期所确定的冗余数据包的目标数据减去预设的第二数值得到当前周期所需生成的冗余数据包的目标数值。
示例性地,假设第二阈值为0(解码失败率为0),下限值为1,第二数值为1:
若第二丢包信息指示的概率为0,上一周期所确定的冗余数据包的目标数值r为3,则当前周期的冗余数据包的目标数值为2(r=3-1)。
若第二丢包信息指示的概率为0,上一周期所确定的冗余数据包的目标数据r为1,则当前周期的冗余数据包的目标数值为1(不变)。
其中,下限值与丢包率相关,丢包率越低,下限值越小。
下面结合图7以RS编码为例说明前向纠错编码过程。
操作1:假设原始编码后得到k个编码数据包,为了包级RS编码,需要将所有输入数据包统一长度,对长度不足的数据包需要填0处理(解码时对应原始数据包长度把填充的0去掉),将k个数据包中的每个相应位置的比特数值逐一取出当作长度为k的多项式,例如 D(x) = a0 + a1x + a2x^2 + ... + akx^k,如果数据包最大长度(最大比特数)为L,即有L个长度为k的多项式将进行rs编码;
操作2:选择一个n阶不可约多项式作为生成多项式G(x),生成多项式的次数为n-k。生成多项式可以通过数学运算和随机选择得到。
操作3:通过原始数据D(x)和生成多项式G(x),则冗余校验码C(x)通过公式C(x) =D(x) * x^(n-k) mod G(x)得到,将原始数据D(x)乘以x^(n-k),得到一个n-k次多项式。然后将得到的多项式通过G(x)进行长除法运算,得到余数即为冗余校验码C(x)。
操作4:最终原始数据包D(x)和冗余校验码C(x)数据包,一起或分开打包后发送到接收端。
下面针对本申请实施例中用于解码侧的数据网络传输方法进行说明。
具体地,本申请实施例提供的方法的执行主体可以是终端;终端(也可以称为设备),可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能语音交互设备(例如智能音箱)、可穿戴电子设备(例如智能手表)、车载终端、智能家电(例如智能电视)、AR/VR设备等,但并不局限于此。
在一示例中,若执行主体为终端,则其具体可以是接收端,其执行本申请实施例提供的数据网络传输方法后,可以基于所有的原始数据包进行解码,以播放解码所得的音频数据。
具体地,如图2和3所示,该数据网络传输方法包括S201-S203:
S201:接收至少部分发送端通过网络传输的原始数据包和冗余数据包。
其中,由于网络传输中存在丢包的情况,因此接收端可以接收的原始数据包和冗余数据包的包数会少于或等于发送端发送的原始数据包和冗余数据包的包数。
S202:若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码。
其中,原始数据包的包数是设定的,当接收端接收本组的原始数据包的包数少于设定数值时,可以确定发生了原始数据包丢失的事件,在此基础上,可以通过前向纠错解码基于接收的原始数据包和冗余数据包还原丢失的原始数据包。
可选地,由于原始数据包和冗余数据包均存在丢失的可能性,因此前向纠错解码可能存在还原某一个或多个丢失的原始数据包失败的情况。
S203:分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包。
其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
可选地,接收端对第一丢包信息和第二丢包信息的统计分析可以是在接收到一组数据包后进行的,也可以是分别基于所设定的周期进行的。其中,第一丢包信息和第二丢包信息可以反馈至发送端(如图5a所示),也可以反馈至中转服务器(如图5b所示)。
可选地,S202中基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,包括:通过前向纠错解码器基于所述冗余数据包、接收的原始数据包和从历史输入数据中获取的历史数据包对丢失的原始数据包进行还原。
其中,接收端的历史输入数据可以将通过前向纠错解码所得的输入数据(如输入RS编码器的数据)进行缓存而得。
可选地,获取的历史数据包的包数与前向纠错编码过程中获取的历史数据包的包数相一致。
可选地,基于接收的原始数据包和还原的原始数据包进行解码,包括:通过音频解码器基于接收的原始数据包和还原的原始数据包进行解码,得到无线通话中的音频数据,以进行该音频数据的播放。
其中,如图6所示,在通过RS解码器处理后,可以将接收的原始数据包和还原的原始数据包输入音频解码器进行解码,得到无线通话中的音频数据(图6中的输出),以播放该音频数据。
在一可行的实施例中,S203中分别确定第一丢包信息和第二丢包信息,包括D1-D2:
D1:基于预设的第一周期,确定当前周期内的最大连续丢包数和收包成功率中的至少一项。
D2:基于预设的第二周期,统计当前周期内还原丢失的原始数据包失败的概率。
可选地,S202中基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,包括E1-E3:
E1:基于上一周期的第一丢包信息确定所述原始数据包之间的间隔数值。
其中,在还原当前周期内的丢失的原始数据包时,由于该原始数据包的相关前向纠错编码参数是基于上一周期的第一丢包信息确定的,因此,在接收端可以通过上一周期反馈的第一丢包信息确定出原始数据包之间的间隔数值。
可选地,E1中基于上一周期的第一丢包信息确定所述原始数据包之间的间隔数值,包括E11-E12:
E11:若上一周期的第一丢包信息包括与最大连续丢包数相关的信息,则通过预设的最大连续丢包数和预设的间隔数值之间的对应关系,确定所述第一丢包信息指示的上一周期内最大连续丢包数所对应的第一间隔数值。
其中,预设的最大连续丢包数和预设的间隔数值之间的对应关系,及如何确定相应的第一间隔数值的具体过程可以参考上述实施例中A2相应的描述,本申请在此不再赘述。
E12:若上一周期的第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值确定所述原始数据包之间的间隔数值。
可选地,E12中若上一周期的第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值确定所述原始数据包之间的间隔数值,包括E121-E122中的一项:
E121:若上一周期的第一丢包信息包括与收包成功率相关的信息,则获取所述发送端发送的配置标识,基于该配置标识从预设的配置信息中获取目标配置信息,并获取将该目标配置信息对应的至少两个第二间隔数值;其中,所述预设的配置信息中包括多项与不同收包成功率匹配的配置信息,且每一项配置信息中包括至少两个第二间隔数值。
其中,预设的配置信息和相应的第二间隔数值的确定过程可以参考上述实施例中A31的相关描述,本申请在此不再赘述。
其中,在确定目标配置信息时,接收端可以直接基于发送端提供的配置标识确定,如A31的示例中确定的目标配置的配置标识为P2,则可以直接基于该配置标识P2确定对应目标配置信息的第二间隔数值d=1和7。
E122:若上一周期的第一丢包信息包括与收包成功率相关的信息,则获取该第一丢包信息指示的上一周期内的收包成功率高于设定阈值的至少一个第三间隔数值。
其中,关于收包成功率的说明可以参考上述实施例中A32的描述,本申请在此不再赘述。
E2:基于上一周期的第二丢包信息确定所述冗余数据包的目标数值。
其中,在还原当前周期内的丢失的原始数据包时,由于所需应用的冗余数据包的相关前向纠错编码参数是基于上一周期的第二丢包信息确定的,因此,在接收端可以通过上一周期反馈的第二丢包信息确定出冗余数据包的目标数值。
可选地,E2中基于上一周期的第二丢包信息确定所述冗余数据包的目标数值,包括E21-E22:
E21:若上一周期的第二丢包信息指示的概率超过预设的第一阈值,且上两周期所确定的冗余数据包的目标数值小于上限值,则将上两周期所确定的冗余数据包的目标数值加上预设的第一数值得到上一周期所需生成的冗余数据包的目标数值。
E22:若上一周期的第二丢包信息指示的概率为预设的第二阈值,且上两周期所确定的冗余数据包的目标数值大于下限值,则将上两周期所确定的冗余数据包的目标数据减去预设的第二数值得到上一周期所需生成的冗余数据包的目标数值。
其中,如何确定冗余数据包的目标数据的过程可以参考上述实施例中C2-C3的描述,本申请在此不作赘述。其中,由于当前考虑的是上一周期反馈的第二丢包信息,因此需要调取上两周期所确定的冗余数据包的目标数值作为基础数值调整上一周期的冗余数据包的目标数值。
E3:基于所述原始数据包之间的间隔数值、所述目标数值、接收的原始数据包和所述冗余数据包,对丢失的原始数据包进行还原。
可选地,通过冗余数据包的目标数值,可以确定是否发生丢失至少一个冗余数据包的事件。
下面结合图7以RS解码为例示例性说明前向纠错解码过程。
操作1:接收端接收到部分的原始数据包P(x)和冗余校验码数据包Q(x)后,通过RS解码恢复部分丢失的原始数据包,接收到的所有数据包(包括已知的数据包和接收到的冗余包)组成一个多项式R(x):R(x)=P(x)+Q(x)。
操作2:通过与RS编码相同的生成多项式G(x)计算出余数R(x),即R(x)=Q(x)modG(x)。
操作3:将R(x)的系数表示为矩阵形式,然后使用高斯消元法或其他线性代数方法来求解未知系数,即丢失的原始数据包。
其中,如果接收端实际丢包数小于或等于冗余数据包的包数r,则包级RS解码能有效还原丢失的数据包;如果包级RS块中的实际丢包数大于冗余数据包的包数r,则包级RS码无法恢复丢失的数据包。
本申请实施例提供的方法在确定编码参数和解码参数时所应用的原理相类似,对于各操作的详细描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
下面针对本申请实施例提供的应用于服务器的数据网络传输方法进行具体说明。
具体地,本申请实施例提供的方法的执行主体可以是服务器;服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统(如分布式云存储系统),还可以是提供云计算、云存储服务的云服务器。其中,云计算(cloudcomputing)指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需资源;广义云计算指服务的交付和使用模式,指通过网络以按需、易扩展的方式获得所需服务。这种服务可以是IT和软件、互联网相关,也可是其他服务。云计算是网格计算(GridComputing )、分布式计算(DistributedComputing)、并行计算(Parallel Computing)、效用计算(Utility Computing)、网络存储(Network Storage Technologies)、虚拟化(Virtualization)、负载均衡(Load Balance)等传统计算机和网络技术发展融合的产物。随着互联网、实时数据流、连接设备多样化的发展,以及搜索服务、社会网络、移动商务和开放协作等需求的推动,云计算迅速发展起来。不同于以往的并行分布式计算,云计算的产生从理念上将推动整个互联网模式、企业管理模式发生革命性的变革。
在一示例中,若执行主体为服务器,则其可以为中转服务器,可以接收接收端反馈的丢包信息,基于该丢包信息确定第二编码相应的配置参数,并发送至发送端。
具体地,如图4所示,该数据网络传输方法包括S301-S303:
S301:基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项。
S302:基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息。
S303:向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
如图5b所示,中转服务器用于确定前向纠错编码的编码参数,接收端周期性将统计分析所得的丢包信息反馈至中转服务器,由中转服务器基于该丢包信息确定相应的编码参数后发送至发送端,以使发送端基于接收到的编码参数调整当前前向纠错编码器的编码参数,继而由发送端在通过音频编码器对采集到的音频数据进行编码得到输入数据后,通过前向纠错编码器对输入数据进行前向纠错编码。
本申请实施例提供的应用于服务器的方法在确定编码参数时所应用的原理与应用于编码侧的方法相类似,对于各操作的详细描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
为更好地说明本申请实施例提供的数据网络传输方法,下面提供相应的应用例。
如图6所示,在一无线通讯场景(可以是云会议、直播、广播、音视频通话等业务场景)中,通话方A向通话方B输出音频数据时,通话方A处于发送端一侧,通话方B处于接收端一侧。发送端针对通话方A输出的音频数据,首先通过音频编码器进行第一编码得到输入数据,继而基于接收端反馈的第一丢包信息确定编码输入数据的获取位置参数,基于该参数指示的数据包间隔数值可以从输入数据中获取n个原始数据包,并通过RS编码器基于n个原始数据包进行第二编码,得到r(基于接收端反馈的第二丢包信息确定)个冗余数据包,在此基础上,可以通过RTP/UDP经发送端一侧的TX节点将冗余数据包和原始数据包发送至接收端一侧的RX节点。此时,接收端将通过RTP/UDP获取到的原始数据包和冗余数据包存入缓冲节点,并在需要输出当前组的音频数据时,首先通过RS解码器对接收的原始数据包和冗余数据包进行解码(得到还原的原始数据包),以尽可能补全可能在网络传输中丢失的原始数据包,并将接收的原始数据包和还原的原始数据包一并输入至音频解码器进行解码,得到音频数据,并向通话方B播放该音频数据。
需要说明的是,在本申请的可选实施例中,所涉及到的数据(如第一丢包信息、第二丢包信息、输入数据等相关的数据),当本申请以上实施例运用到具体产品或技术中时,需要获得使用对象许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。也就是说,本申请实施例中如果涉及到与对象有关的数据,这些数据需要经由对象授权同意、且符合国家和地区的相关法律法规和标准的情况下获取的。
本申请实施例提供了一种数据网络传输装置,如图8所示,该数据网络传输装置100可以包括:第一参数确定模块101、第二参数确定模块102、获取模块103、编码模块104、网络传输模块105。
其中,第一参数确定模块101,用于获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;第二参数确定模块102,用于获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;获取模块103,用于基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;编码模块104,用于基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包;网络传输模块105,用于将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
本申请实施例提供了另一种数据网络传输装置,如图9所示,该数据网络传输装置200可以包括:接收模块201、还原模块202、反馈模块203。
其中,接收模块201,用于接收至少部分发送端通过网络传输的原始数据包和冗余数据包;还原模块202,用于若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码;反馈模块203,用于分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包;其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
本申请实施例提供了另一种数据网络传输装置,如图10所示,该数据网络传输装置300可以包括:第一确定模块301、第二确定模块302、发送模块303。
其中,第一确定模块301,用于基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;第二确定模块302,用于基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;发送模块303,用于向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据。
本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,此处不再赘述。
描述于本申请实施例中所涉及到的模块可以通过软件实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定,例如,第一参数确定模块还可以被描述为“获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数的模块”、“第一模块”等。
本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现数据网络传输方法的步骤,与相关技术相比可实现:具体地,前向编码参数可以根据接收端反馈的丢包信息进行调整;其中,可以获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;还可以获取基于接收端反馈的第二丢包信息所确定的所需生成的冗余数据包的目标数值。在该基础上,本申请实施例可以基于编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包,其中,输入数据包括基于采集的音频数据进行第一编码得到的数据;相对于现有技术,本申请实施例获得的待传输的多个原始数据包的相对位置是动态的,与当前网络传输状态下的丢包情况相关,其中,第一丢包信息包括与最大连续丢包数现骨干的信息和与收包成功率相关的信息中的至少一项;第二丢包信息包括与还原丢失数据包的失败次数相关的信息。另外,本申请实施例可以基于待传输的多个原始数据包进行第二编码,得到目标数值个冗余数据包,继而将待传输的多个原始数据包和冗余数据包通过网络传输至接收端,也即本申请的实施可以基于动态配置的原始数据包的个数和冗余数据包的个数让接收端获取到与当前网络传输场景更为匹配的数量,在避免耗费过多数据传输开销的同时可以有效提高接收端还原丢包的能力,进而提升前向纠错的效率。
在一个可选实施例中提供了一种电子设备,如图11所示,图11所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算机程序并能够由计算机读取的任何其他介质,在此不做限定。
存储器4003用于存储执行本申请实施例的计算机程序,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的计算机程序,以实现前述方法实施例所示的步骤。
其中,电子设备包括但不限于:终端、服务器。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”、“1”、“2”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除图示或文字描述以外的顺序实施。
应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
以上所述仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的其他类似实施手段,同样属于本申请实施例的保护范畴。

Claims (17)

1.一种数据网络传输方法,其特征在于,包括:
获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置;
基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包;
将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
2.根据权利要求1所述的方法,其特征在于,所述获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数,包括:
接收接收端基于预设的第一周期反馈的第一丢包信息;
若所述第一丢包信息包括与最大连续丢包数相关的信息,则通过预设的最大连续丢包数与预设的间隔数值之间的对应关系,确定所述第一丢包信息指示的当前周期内最大连续丢包数所对应的第一间隔数值,并基于该第一间隔数值配置编码输入数据的获取位置参数;
若所述第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值配置编码输入数据的获取位置参数。
3.根据权利要求2所述的方法,其特征在于,所述若所述第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值配置编码输入数据的获取位置参数,包括以下其中一项:
若所述第一丢包信息包括与收包成功率相关的信息,则从预设的配置信息中获取与所述第一丢包信息指示的当前周期内的收包成功率匹配的目标配置信息,并基于该目标配置信息配置编码输入数据的获取位置参数;其中,所述预设的配置信息中包括多项与不同收包成功率匹配的配置信息,且每一项配置信息中包括至少两个第二间隔数值;
若所述第一丢包信息包括与收包成功率相关的信息,则获取所述第一丢包信息指示的当前周期内的收包成功率相应的至少一个第三间隔数值,并基于该第三间隔数值配置编码输入数据的获取位置参数。
4.根据权利要求2所述的方法,其特征在于,所述将所述待传输的多个原始数据包和冗余数据包通过网络传输至所述接收端,包括:
基于所述编码输入数据的获取位置参数,确定发送相邻两个所述冗余数据包所需间隔的所述原始数据包的第四间隔数值;
基于所述第四间隔数值和发送所述原始数据包的预设的第一时间间隔,确定发送相邻两个所述冗余数据包之间的第二时间间隔;
基于所述第一时间间隔和所述第二时间间隔,分别将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
5.根据权利要求1所述的方法,其特征在于,所述获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值,包括:
接收接收端基于预设的第二周期反馈的第二丢包信息,该第二丢包信息指示当前周期内还原丢失的原始数据包失败的概率;
若该第二丢包信息指示的概率超过预设的第一阈值,且上一周期所确定的冗余数据包的目标数值小于上限值,则将上一周期所确定的冗余数据包的目标数值加上预设的第一数值得到当前周期所需生成的冗余数据包的目标数值;
若该第二丢包信息指示的概率为预设的第二阈值,且上一周期所确定的冗余数据包的目标数值大于下限值,则将上一周期所确定的冗余数据包的目标数据减去预设的第二数值得到当前周期所需生成的冗余数据包的目标数值;其中,所述下限值与丢包率相关,所述丢包率越低,所述下限值越小。
6.根据权利要求1-5中任一项所述的方法,其特征在于,所述获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数之前,还包括:
响应于无线通话操作,获取通过音频编码器将采集到的音频数据进行第一编码得到的输入数据;
所述基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包,包括:通过前向纠错编码器基于获取的预设的第一数值个待传输的原始数据包和预设的第二数值个从历史输入数据中获取的历史数据包进行第二编码,获得所述目标数值个冗余数据包。
7.一种数据网络传输方法,其特征在于,包括:
接收至少部分发送端通过网络传输的原始数据包和冗余数据包;
若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码;
分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包;
其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置。
8.根据权利要求7所述的方法,其特征在于,分别确定第一丢包信息和第二丢包信息,包括:
基于预设的第一周期,确定当前周期内的最大连续丢包数和收包成功率中的至少一项;
基于预设的第二周期,统计当前周期内还原丢失的原始数据包失败的概率;
所述基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,包括:
基于上一周期的第一丢包信息确定所述原始数据包之间的间隔数值;
基于上一周期的第二丢包信息确定所述冗余数据包的目标数值;
基于所述原始数据包之间的间隔数值、所述目标数值、接收的原始数据包和所述冗余数据包,对丢失的原始数据包进行还原。
9.根据权利要求8所述的方法,其特征在于,所述基于上一周期的第一丢包信息确定所述原始数据包之间的间隔数值,包括:
若上一周期的第一丢包信息包括与最大连续丢包数相关的信息,则通过预设的最大连续丢包数和预设的间隔数值之间的对应关系,确定所述第一丢包信息指示的上一周期内最大连续丢包数所对应的第一间隔数值;
若上一周期的第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值确定所述原始数据包之间的间隔数值;
所述基于上一周期的第二丢包信息确定所述冗余数据包的目标数值,包括:
若上一周期的第二丢包信息指示的概率超过预设的第一阈值,且上两周期所确定的冗余数据包的目标数值小于上限值,则将上两周期所确定的冗余数据包的目标数值加上预设的第一数值得到上一周期所需生成的冗余数据包的目标数值;
若上一周期的第二丢包信息指示的概率为预设的第二阈值,且上两周期所确定的冗余数据包的目标数值大于下限值,则将上两周期所确定的冗余数据包的目标数据减去预设的第二数值得到上一周期所需生成的冗余数据包的目标数值。
10.根据权利要求9所述的方法,其特征在于,所述若上一周期的第一丢包信息包括与收包成功率相关的信息,则通过预设的配置信息或所述收包成功率相应的数据包间隔数值确定所述原始数据包之间的间隔数值,包括以下其中一项:
若上一周期的第一丢包信息包括与收包成功率相关的信息,则获取所述发送端发送的配置标识,基于该配置标识从预设的配置信息中获取目标配置信息,并获取将该目标配置信息对应的至少两个第二间隔数值;其中,所述预设的配置信息中包括多项与不同收包成功率匹配的配置信息,且每一项配置信息中包括至少两个第二间隔数值;
若上一周期的第一丢包信息包括与收包成功率相关的信息,则获取该第一丢包信息指示的上一周期内的收包成功率高于设定阈值的至少一个第三间隔数值。
11.根据权利要求7-10中任一项所述的方法,其特征在于,所述基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,包括:通过前向纠错解码器基于所述冗余数据包、接收的原始数据包和从历史输入数据中获取的历史数据包对丢失的原始数据包进行还原;
所述基于接收的原始数据包和还原的原始数据包进行解码,包括:通过音频解码器基于接收的原始数据包和还原的原始数据包进行解码,得到无线通话中的音频数据,以进行该音频数据的播放。
12.一种数据网络传输方法,其特征在于,包括:
基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置。
13.一种数据网络传输装置,其特征在于,包括:
第一参数确定模块,用于获取基于接收端反馈的第一丢包信息所确定的编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
第二参数确定模块,用于获取基于所述接收端反馈的第二丢包信息所确定的冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
获取模块,用于基于所述编码输入数据的获取位置参数,从获取到的输入数据中获取待传输的多个原始数据包;
编码模块,用于基于所述待传输的多个原始数据包进行第二编码,获得所述目标数值个冗余数据包;所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置;
网络传输模块,用于将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端。
14.一种数据网络传输装置,其特征在于,包括:
接收模块,用于接收至少部分发送端通过网络传输的原始数据包和冗余数据包;
还原模块,用于若确定发生丢失至少一个原始数据包的事件,则基于所述冗余数据包和接收的原始数据包对丢失的原始数据包进行还原,得到还原的原始数据包,以基于接收的原始数据包和还原的原始数据包进行解码;
反馈模块,用于分别确定第一丢包信息和第二丢包信息,并进行反馈,以使所述发送端在获取到基于所述第一丢包信息所确定的编码输入数据的获取位置参数时,基于所述编码输入数据的获取位置参数从获取到的数据中获取后续待传输的多个原始数据包和在获取到基于所述第二丢包信息所确定的冗余数据包的目标数值时,基于所述待传输的多个原始数据包进行第二编码获得后续传输的所述目标数值个冗余数据包;
其中,所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置。
15.一种数据网络传输装置,其特征在于,包括:
第一确定模块,用于基于接收端反馈的第一丢包信息,确定编码输入数据的获取位置参数;所述第一丢包信息包括与最大连续丢包数相关的信息和与收包成功率相关的信息中的至少一项;
第二确定模块,用于基于所述接收端反馈的第二丢包信息,确定冗余数据包的目标数值;所述第二丢包信息包括与还原丢失数据包的失败次数相关的信息;
发送模块,用于向发送端发送所述编码输入数据的获取位置参数和所述冗余数据包的目标数值,以使所述发送端基于所述编码输入数据的获取位置参数从获取到的输入数据中获取待传输的多个原始数据包,基于所述待传输的多个原始数据包进行第二编码获得所述目标数值个冗余数据包,并将所述待传输的多个原始数据包和所述冗余数据包通过网络传输至所述接收端;其中,所述输入数据包括基于采集的音频数据进行第一编码所得的数据;所述编码输入数据的获取位置参数指示各个所述原始数据包在所述输入数据中的获取位置。
16.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-12中任一项所述方法。
17.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-12中任一项所述方法。
CN202311373322.6A 2023-10-23 2023-10-23 数据网络传输方法、装置、设备及存储介质 Active CN117118573B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311373322.6A CN117118573B (zh) 2023-10-23 2023-10-23 数据网络传输方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311373322.6A CN117118573B (zh) 2023-10-23 2023-10-23 数据网络传输方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN117118573A CN117118573A (zh) 2023-11-24
CN117118573B true CN117118573B (zh) 2024-02-06

Family

ID=88800529

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311373322.6A Active CN117118573B (zh) 2023-10-23 2023-10-23 数据网络传输方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN117118573B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017157303A1 (zh) * 2016-03-15 2017-09-21 中兴通讯股份有限公司 实时通信中的抗丢包方法、装置和系统
CN110876066A (zh) * 2018-09-03 2020-03-10 中国移动通信有限公司研究院 一种自适应前向纠错方法、装置、介质和设备
CN116800371A (zh) * 2022-03-14 2023-09-22 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及可读存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107181968B (zh) * 2016-03-11 2019-11-19 腾讯科技(深圳)有限公司 一种视频数据的冗余控制方法和装置
CN110855402A (zh) * 2016-09-30 2020-02-28 瞬已网络科技(上海)有限公司 一种网络实时视频传输方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017157303A1 (zh) * 2016-03-15 2017-09-21 中兴通讯股份有限公司 实时通信中的抗丢包方法、装置和系统
CN110876066A (zh) * 2018-09-03 2020-03-10 中国移动通信有限公司研究院 一种自适应前向纠错方法、装置、介质和设备
CN116800371A (zh) * 2022-03-14 2023-09-22 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备及可读存储介质

Also Published As

Publication number Publication date
CN117118573A (zh) 2023-11-24

Similar Documents

Publication Publication Date Title
US10361810B2 (en) Data packet transmission/reception apparatus and method
US20210006270A1 (en) Method and Device for Transmitting Data by Determining a Measure of Consecutive Packet Loss in a Network
CN110943800B (zh) 数据包的发送方法、装置及系统、存储介质、电子装置
Pandi et al. PACE: Redundancy engineering in RLNC for low-latency communication
CN103023813B (zh) 抖动缓冲器
US7539925B2 (en) Transmission apparatus and method, reception apparatus and method, storage medium, and program
CN109951254B (zh) 一种数据处理方法及装置、计算机可读存储介质
US20130100970A1 (en) Jitter buffer
KR100971052B1 (ko) 데이터 축적 방법 및 데이터 축적 시스템, 및 데이터 기록제어 장치, 데이터 기록 명령 장치, 데이터 수신 장치 및정보 처리 단말기
US8819513B2 (en) Lost real-time media packet recovery
WO2011024158A1 (en) Systems, methods, and media for checking available bandwidth using forward error correction
CN106571893B (zh) 一种语音数据的编解码方法
CN111935485A (zh) 一种rs码前向纠错方法及装置
KR102383892B1 (ko) 미디어 콘텐츠 기반의 자가 적응 시스템 코드 fec의 코딩 및 디코딩 방법, 장치, 시스템 및 매체
CN117118573B (zh) 数据网络传输方法、装置、设备及存储介质
TWI435623B (zh) 用於無線多播及廣播服務之方法及系統
CA2909801C (en) Apparatus and method for transmitting and receiving forward error correction packet
CN104081746A (zh) 使用智能聚集的低等待时间wifi显示
CN105391523A (zh) 一种语音优化传输方法及装置
WO2021164405A1 (zh) 数据编解码方法、相关设备及系统
JP2020503742A (ja) データパケット読出しに関するエラー訂正の待ち時間の低減方法およびその装置
CN115550459A (zh) 语音数据的发送和接收方法以及相关设备
CN112954255B (zh) 视频会议码流的传输方法、装置、计算机设备和存储介质
CN111416686A (zh) 一种数据传输方法、装置、设备及存储介质
CN117319684A (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