CN116980075A - 数据编码方法、装置、电子设备及存储介质 - Google Patents
数据编码方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116980075A CN116980075A CN202310574455.3A CN202310574455A CN116980075A CN 116980075 A CN116980075 A CN 116980075A CN 202310574455 A CN202310574455 A CN 202310574455A CN 116980075 A CN116980075 A CN 116980075A
- Authority
- CN
- China
- Prior art keywords
- data
- coding
- coding parameter
- sample
- data unit
- 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
- 238000000034 method Methods 0.000 title claims description 91
- 230000005540 biological transmission Effects 0.000 claims description 69
- 238000012549 training Methods 0.000 claims description 45
- 230000015654 memory Effects 0.000 claims description 23
- 230000001934 delay Effects 0.000 claims description 21
- 230000008569 process Effects 0.000 claims description 16
- 238000001228 spectrum Methods 0.000 claims description 15
- 238000013441 quality evaluation Methods 0.000 claims description 13
- 238000004806 packaging method and process Methods 0.000 claims description 12
- 238000011156 evaluation Methods 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 description 16
- 230000005236 sound signal Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 12
- 238000000605 extraction Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000001303 quality assessment method Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 230000000670 limiting effect Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000006835 compression Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 238000013139 quantization Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 239000000919 ceramic Substances 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006735 deficit Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
Classifications
-
- 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/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0009—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the channel coding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/005—Correction of errors induced by the transmission channel, if related to the coding algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种数据编码方法、装置、电子设备及存储介质。方法包括:将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据;获得包括第一编码数据和第二编码数据的数据包。通过上述方法可以实现准确地为当前数据单元和对应的冗余数据单元分配编码参数,从而提升了数据传输的可靠性。
Description
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据编码方法、装置、电子设备及存储介质。
背景技术
数据编解码在现代通讯系统中占有重要的地位。相关技术中,为保障数据传输的实时性,在进行数据传输时,通常会将待传输数据划分为一个个小的数据单元,并对数据单元依次进行传输,且在传输过程中,为避免数据包丢失,通常会对数据单元进行编码后打包传输,且当前数据单元对应的数据包中通常会携带上一数据单元的信息,以便在该上一数据单元丢失的情况下也能通过当前数据单元对应的数据包中携带的上一数据单元的信息解析得到该上一数据单元的信息,从而保障数据传输的可靠性。
示例性的,在语音通话应用中的语音数据编码传输场景下,声音信号经由麦克风采集得到,通过模数转换电路将模拟的声音信号转换为数字声音信号,数字信号经过语音编码器进行压缩,而后按照通信网络传输格式和协议打包发送到接收端,接收端设备接收到数据包后解包输出语音编码压缩码流,通过语音解码器后重新生成语音数字信号,最后语音数字信号通过扬声器播放出声音。语音编解码有效地降低语音信号传输的带宽,对于节省语音信息存储传输成本,保障通信网络传输过程中的语音信息完整性方面起了决定性作用。语音编码器是建立在语音模型、信号时频域压缩、掩蔽效应压缩的基础上实现的语音编码压缩,例如silk、opus编码器,其内置了抗丢包的带内FEC(forward error correction前向纠错)模块,带内FEC是通过缓存前一帧的码流信息用于抵抗和恢复网络丢包,当发生网络丢包时,丢包位置的数据可以通过下一帧语音编码码流内携带的前一帧码流信息进行恢复。
目前,采用上述的传输方式进行数据编码传输时,通常无法在编码过程中准确地为当前数据单元和上一数据单元合理地分配比特,进而可能造成当前数据单元的编码质量(如,音频编码质量)下降或上一数据单元对应的数据包丢失使基于当前数据单元的数据包恢复得到的数据质量差,从而使相关技术中基于带内FEC的数据传输存在可靠性差的问题。
发明内容
有鉴于此,本申请实施例提出了一种数据编码方法、装置、电子设备及存储介质,可以在提升对当前数据单元和上一数据单元进行比特分配的合理性,从而提升数据编码质量。
第一方面,本申请实施例提供了一种数据编码方法,方法包括:获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,所述收包等待时延的统计时刻与所述当前数据单元的获取时刻之间的时长在预设时长范围内,所述当前数据单元与各所述数据包对应相同的数据传输通道;将所述预设编码码率值、当前数据单元和所述多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,所述第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;所述编码参数分配模型基于数据样本对初始模型进行训练得到,所述数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,所述数据样本具有样本标签,所述样本标签中包括第一样本编码参数和第二样本编码参数,所述第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,所述目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,所述数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数;基于所述第一编码参数对所述当前数据单元进行编码得到第一编码数据,基于第二编码参数对所述冗余数据单元进行编码得到第二编码数据;将所述第一编码数据和所述第二编码数据进行打包,得到所述当前数据单元对应的数据包。。
第二方面,本申请实施例提供了一种数据编码装置,该装置包括:第一数据获取模块、比特确定模块、编码模块以及打包模块。第一数据获取模块,用于获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,所述收包等待时延的统计时刻与所述当前数据单元的获取时刻之间的时长在预设时长范围内,所述当前数据单元与各所述数据包对应相同的数据传输通道;比特确定模块,用于将所述预设编码码率值、当前数据单元和所述多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,所述第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;所述编码参数分配模型基于数据样本对初始模型进行训练得到,所述数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,所述数据样本具有样本标签,所述样本标签中包括第一样本编码参数和第二样本编码参数,所述第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,所述目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,所述数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数;编码模块,用于基于所述第一编码参数对所述当前数据单元进行编码得到第一编码数据,基于第二编码参数对所述冗余数据单元进行编码得到第二编码数据;打包模块,用于将所述第一编码数据和所述第二编码数据进行打包,得到所述当前数据单元对应的数据包。
在一种可实施方式中,装置还包括第二数据获取模块、组合方式确定模块、样本构建模块以及模型训练模块,所述第二数据获取模块,用于获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据,每种编码组合方式对应的丢包时延为对初始数据采用该编码组合方式对应编码后模拟丢包传输得到;组合方式确定模块,用于基于所述初始数据和每种编码组合方式对应的目标数据,从所述多种编码参数组合方式中确定一种编码参数组合方式作为所述初始数据的目标编码参数组合方式;样本构建模块,用于基于所述目标编码参数组合方式、目标编码参数组合方式对应的多个数据包各自对应的收包等待时延,构建训练样本;模型训练模块,用于基于多个所述训练样本对编码参数分配模型进行训练,以最小化比特模型的模型参数,得到训练后的编码参数分配模型。
在一种可实施方式中,所述编码参数为编码码率,所述初始数据为音频数据,所述数据单元为音频帧,所述组合方式确定模块包括均值计算子模块、第一组合方式选取子模块、质量评估子模块以及第二组合方式选取子模块。均值计算子模块,用于计算每种编码参数组合方式对应的编码码率平均值;第一组合方式选取子模块,用于从多种编码参数组合方式中选取编码码率平均值小于编码码率设定阈值的编码参数组合方式作为候选编码参数组合方式;质量评估子模块,用于将所述初始数据与各每种候选编码参数组合方式对应的目标数据进行客观质量评估,得到每种候选编码参数组合方式对应的目标数据的评估结果;第二组合方式选取子模块,用于基于每种候选编码参数组合方式对应的目标数据的评估结果和每种候选编码参数组合方式对应的编码码率平均值从候选编码参数组合方式中选取目标编码参数组合方式。
在一种可实施方式中,第二数据获取模块包括组合方式获得子模块、编码子模块、数据发送子模块以及数据接收子模块。组合方式获得子模块,用于根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对所述初始数据进行编码的多种编码参数组合方式,其中,N和M分别为大于或等于1的整数;编码子模块,用于针对每种编码参数组合方式,按照该编码参数组合方式对初始数据中的数据单元进行编码得到该编码参数组合方式下的数据包;数据发送子模块,用于向数据接收设备发送各编码参数组合方式下的数据包;数据接收子模块,用于接收数据接收设备反馈的各编码参数组合方式对应的收包等待时延;所述数据接收设备在接收各编码参数组合方式对应的数据包的过程中进行模拟丢包并统计收包等待时延;数据接收子模块,还用于接收数据接收设备反馈的各编码参数组合方式对应的目标数据。
在一种可实施方式中,所述编码组合方式获得子模块,还用于根据初始数据中对每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对每个数据单元和该数据单元的冗余单元的多种编码组合方式;基于每个数据单元和该数据单元对应的冗余单元的编码组合方式得到对所述初始数据进行编码的多种编码参数组合方式。
在一种可实施方式中,所述初始数据为初始音频数据,所述数据单元为音频帧,所述编码参数包括编码码率,所述编码组合方式获得子模块,还用于对所述初始音频数据中的各音频帧进行分类检测,得到每个音频帧的音频类别;根据每种音频类别对应的预设码率范围、每个音频帧的音频类别以及对初始音频数据中每个音频帧的N种编码码率和该音频帧对应的冗余音频帧的M种编码码率,得到对所述初始音频数据进行编码的多种编码参数组合方式。
在一种可实施方式中,所述样本数据为音频样本,所述数据单元为音频帧,所述比特确定模块包括特征提取子模块和比特确定子模块。所述特征提取子模块,用于对所述当前数据单元进行特征提取,得到所述当前数据单元的音频特征,所述音频特征包括功率谱特征和梅尔频谱特征中的至少一种;比特确定子模块,用于将所述预设编码码率值、当前数据单元的音频特征和各所述数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
在一种可实施方式中,所述装置还包括数据发送模块,所述数据发送模块,用于向所述数据接收设备发送所述当前数据单元对应的数据包,以使所述数据接收设备在接收到所述当前数据单元对应的数据包,并在确认当前数据单元的上一数据单元丢失时,对所述当前数据单元对应的数据包中的第二编码数据进行解码,以及在确认当前数据单元的上一数据单元未丢失时,对所述当前数据单元对应的数据包中的第一编码数据进行解码。
第三方面,本申请实施例提供了一种电子设备,包括处理器以及存储器;一个或多个程序被存储在所述存储器中并被配置为由所述处理器执行以实现上述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,其中,在所述程序代码被处理器运行时执行上述的方法。
第五方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质获取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的方法。
本申请实施例提供的一种数据编码方法、装置、电子设备及存储介质,方法包括:在获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延之后,将所述预设编码码率值、当前数据单元和所述多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,由于编码参数分配模型是基于数据样本对初始模型进行训练得到,且数据样本的样本标签中包括第一样本编码参数和第二样本编码参数,所述第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,所述目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,所述数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数。因此,利用上述的编码参数分配模型获得的第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配,进而实现根据收包等待时延和预设编码码率值准确地为当前数据单元和对应的冗余数据单元分配编码参数,提升了数据传输的可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本申请实施例提供的一种数据编码方法的应用场景图;
图2示出了本申请实施例提出的一种数据编码方法的流程示意图;
图3示出了本申请实施例提出的一种数据编码方法的另一流程示意图;
图4示出了图3中步骤S210的流程示意图;
图5示出了本申请实施例提供的一种数据编码方法的一种应用场景示意图;
图6示出了本申请实施例提供的一种数据编码方法的另一应用场景示意图;
图7示出了本申请实施例提供的一种数据编码方法的另一应用场景示意图;
图8示出了本申请实施例提供的一种数据编码方法的流程框图;
图9示出了本申请实施例提供的一种数据编码方法的另一流程框图;
图10示出了本申请实施例提供的一种数据编码装置的连接框图;
图11示出了用于执行本申请实施例的方法的电子设备的结构框图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
需要说明的是:在本文中提及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
随着通信技术的发展,目前常用到通信技术进行数据传输,如进行音频数据传输、视频数据传输或者文本数据传输等,为了保障信息传输的可靠性及实时性,常用到的数据传输方法有带内FEC数据传输方法,其中,FEC(Forward Error Correction,向前纠错)传输方法的是指,在确保通信系统在噪声和其他损伤的影响下,依然能够实现无错误传输的能力。
以语音数据传输为例,现有语音编码器的带内FEC是将前一帧的语音编码特征重新编码,并和本帧的编码码流捆绑一起打包发送到接收端进行解码处理,且语音编码器带内FEC方案和传统的带外FEC方案的主要区别是:带外FEC是独立于编码器实施的,是将单个或多个语音编码器码流用于FEC编码,其FEC码流和语音编码码流可以是两个不同的数据流,它们之间没有相互约束关系,没有带宽竞争问题,所以FEC码流大小没有限制,而本帧语音码流大小只取决于预设的编码码率值。而带内FEC码流是和本帧语音编码码流是混合在一起的,其整体码流大小决定了最终输出码流的实际码率,所以受预设的编码码率值控制,即如果FEC码率越高则分配比特较多则留给语音编码的比特就会变小,相反,如果FEC分配比特较少则可留给语音编码的比特就会较多。现有语音编码器的带内FEC方案,因为FEC的编码比特数和当前语音帧的编码比特数总和受预先设置的编码码率限制,在预设一个编码码率下,则FEC编码比特数和当前帧的编码比特数是有竞争关系的,即当FEC的编码比特数高则会让当前帧语音的编码比特数变小,这样会降低编解码后的语音质量,这对于整体通话体验是不利的。通过实验发现同一个音频信号在编码码率设置值相同情况下,语音编码器在关闭带内FEC和打开带内FEC下,PESQ的客观质量MOS打分值对比,关闭带内FEC为3.9分,而打开带内FEC只有3.0分,MOS因为FEC下降了0.9,这是非常大的音质损失,原因是打开带内FEC后由于带内FEC占用了音频编码的比特数,导致音频编码质量天花板显著下降。
发明经研究发现,目前带内FEC的实际码流大小的设置与接收端反馈的丢包率有关,例如opus编码器,接收端反馈的丢包率高则会使opus编码器的FEC的预测滤波器的预测增益减少,增加量化索引的熵,从而增加FEC的编码的比特数。相反,如果丢包率低则opus编码器的FEC的预测滤波器的预测增益增加,降低量化索引的熵,从而减少FEC的编码的比特数。即opus编码器带内FEC冗余比特数随着接收端丢包率增加而增加。但是带内FEC只是根据接收端反馈的丢包率进行配置,而丢包率值本身是一个近段时间内丢包数百分比的统计,且丢包率通常非常小,并是一个滞后的检测结果,丢包率只能反映当前时刻之前一段时间内的接收端收包状况,丢包率与当前发送帧是否会出现丢包没有必然的因果关系,因此,相关技术中的带内FEC的大小设置不够准确。
下面说明本发明实施例提供的用于执行上述数据编码方法的示例性应用,本发明实施例提供的数据编码方法可以应用于如图1所示的应用环境中的服务器中。
图1是根据本申请一实施例示出的应用场景的示意图,如图1所示,该应用场景包括数据发送端10和通过网络与数据发送端10通信连接的数据接收端20。
数据发送端10和数据接收端20具体可以是服务器、手机、电脑、台式计算机、平板电脑、车载终端或者智能电视等,数据发送端10和数据接收端20可以设有用于展示数据的客户端,如内容交互客户端、即时通信客户端、音频播放客户端或者视频播放客户端等。
网络可以是广域网或者局域网,或者是二者的组合。
图1中示出了数据发送端10和数据接收端20分别安装有数据交互客户端,且数据发送端10向数据接收端20发送音频数据,且数据发送端10的客户端标识为“用户A”数据接收端的客户端标识为“用户B”的示意图,其中,数据发送端10的用户A向数据发送端20得用户B发送音频数据时数据发送端10对其采集的音频数据编码后发送至数据接收端20,具体的编码过程可以参阅如下步骤:数据接收端20可以统计其在接收到数据发送端10发送的数据包时的收包等待时延并反馈至数据发送端10,数据发送端10可以获取待传输数据的当前数据单元(当前音频帧)和由数据接收设备20统计的多个数据包各自的收包等待时延,并将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,冗余数据单元用于恢复在该当前数据单元之前被编码的数据单元;以及基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据;最后将第一编码数据和第二编码数据进行打包,得到当前数据单元对应的数据包,并最终将当前数据单元对应的数据包发送至数据接收20,以使数据接收端20在接收到数据包时再次统计该数据包的收包等待时延并反馈数据发送端10,以便数据发送端10再次执行上述的确定该比特数、依据比特数编码和传输数据的步骤,从而实现对待传输数据的数据传输。
其中,本申请提供的编码方法可以是基于人工智能实现的。人工智能(ArtificialIntelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式作出反应的智能机器。以人工智能应用在机器学习上为例进行说明:
其中,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。本申请的方案主要是利用机器学习进行数据编码以及进行数据编码。
应当理解,上述的方法步骤,也即,上述描述的方法步骤的应用场景仅仅是示意性的,并不作为本方案的限制。
为便于对本方案进行理解,下面先对几个概念进行简单介绍:
编码参数,用于进行数据编码的参数,编码参数决定了编码质量,通常,编码参数可以是比特率、比特数或者其它编码参数等,且通常情况下,编码参数值越大(也即,比特率和比特数的值越大),则表明编码质量越好。比特率是指单位时间内传输的比特数;比特数,在本申请中是指为当前数据单元或冗余数据包进行编码(压缩)后进行传输时需要用多少个比特来表示。其中,比特(BIT,Binary digit),计算机专业术语,是信息量单位,是由英文BIT音译而来。同时也是二进制数字中的位,信息量的度量单位,为信息量的最小单位。
冗余数据单元,是指当前数据单元的上一数据单元或当前数据单元之前传输的至少一个数据单元中的部分或全部数据。
下面将结合附图具体描述本申请的各实施例。
请阅图2,图2所示为本申请提供的一种数据编码方法,可以应用于电子设备,该电子设备可以是上述的数据发送端,该方法包括:
步骤S110:获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延。
其中,收包等待时延的统计时刻与当前数据单元的获取时刻之间的时长在预设时长范围内,当前数据单元与各数据包对应相同的数据传输通道。
待传输数据可以是视频数据、音频数据或者文本数据等,相应的,上述的数据发送端具体可以是应用在直播场景下或视频或语音交互场景下等实时交互的场景下,或者数据在线传输的场景下进行数据传输。
收包等待时延,可以是指数据发送端在发送数据包时,会给每个数据包打上时间戳,数据接收端在接收到数据包时,用当前时间减去时间戳的时间,差值即为收包等待时延。也可以是指数据接收端在接收到每个数据包时给该数据包打上时间戳,根据数据接收端接收到的当前数据包的时间戳和上一数据包的时间戳之间的差值得到收包等待时延。应当理解,上述收包等待时延的定义可以根据实际场景的不同可能有不同,在本申请实施例不作具体限定。
需要说明的是,收包等待时延越长,则说明网络质量越差,则出现丢包的可能性越大。而收包等待时延越短,则说明网络质量越好,出现丢包的可能性越小。
预设时长可以是0.5秒、0.8秒、1秒或者1.2秒等,根据实际需求进行设置即可。
接收设备接收到的数据包可以是数据发送设备对待传输数据中的数据单元进行编码得到的数据包,也可以是与当前数据单元使用相同的数据传输通道的数据包,其中,相同的数据传输通道可以是指数据包和当前数据单元的数据发送设备和接收设备均相同。
步骤S120:将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
其中,第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;编码参数分配模型基于数据样本对初始模型进行训练得到,数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,数据样本具有样本标签,样本标签中包括第一样本编码参数和第二样本编码参数,第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数。
冗余数据单元用于恢复在该当前数据单元之前被编码的数据单元。
其中,第一编码参数和第二编码参数与预设编码码率值具有相关性。且预设编码码率用于表征在进行带内FEC数据传输过程中的实际码率。
相应的,同一数据单元对应的第一样本编码参数与第二样本编码参数取值组合可以用于表征样本数据包传输过程中的所采用的实际码率(该实际码率可以用于表征参与到模型训练中的预设样本编码码率)。也即,样本数据中还可以包括预设样本编码码率。且在编码参数为编码码率时,第一样本编码参数与第二样本编码参数的和可以用于表征该预设样本编码码率。
同一初始数据对应的各数据单元的第一样本编码参数与第二样本编码参数的和可以为一个定值。示例性的,若编码参数为编码码率,则同一数据单元对应的第一样本编码码率和第二样本编码码率的总和即表征其传输样本数据包的过程中的实际码率。
上述的预训练的编码参数分配模型可以是神经网络模型,如循环神经网络、递归神经网络或者回归模型等。
步骤S130:基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据。
其中,编码参数是用于进行数据编码的参数,编码参数决定了数据编码质量。且不同的待传输数据对应的编码参数的种类不同,例如,当待传输数据为音频数据或视频数据时,编码参数可以是码率、比特数或者采样率;当待传输数据为文本数据时,编码参数可以是码率或者比特数。
具体的,以待传输数据为音频数据为例,编码参数可以是语音编码的码率或采样率,或是其它编码参数。采样率是将模拟的声音信号进行采样得到数字的语音信号所使用的采样精度,码率是每秒传输的编码码流的数据量。可以理解,采样率越高,就越能真实地保留原始的声音信号中的声音细节,解码后获得的解码语音信号的语音质量就更高。类似地,比特数和码率越高,就越能保留数字的语音信号中的语音细节,解码后获得的解码语音信号的语音质量就更高。相应的,第一编码参数与第二编码参数可以为不同的采样率,也可以为不同的码率或比特数。
步骤S140:将第一编码数据和第二编码数据进行打包,得到当前数据单元对应的数据包。
采用本申请的上述方法,通过获取在传输当前数据单元之前预设时长内获取到的与该当前数据单元具有相同传输通道的多个数据包对应的收包等待时延,并将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,充分考虑到了网络的质量状况通常与收包等待时延和当前包丢包的可能性有关,网络质量越差则收包等待时延越长,相应的,丢包的可能性越大,而网络质量越好则收包等待时延越短,相应丢包的可能性也越小,因此,通过收包等待时延和预设编码码率值可以实现准确地为当前数据单元和对应的冗余数据单元分配编码参数,避免了因相关技术中采用丢包率确定编码参数时,因丢包率通常不稳定,且丢包率值本身是一个近段时间内丢包数百分比的统计,是一个滞后的检测结果,丢包率只能反映当前时刻之前一段时间内的接收端收包状况,丢包率与当前发送帧是否会出现丢包没有必然的因果关系,基于丢包率获得的编码参数不准确的问题。此外,由于预先训练的编码参数分配模型是基于数据样本对初始模型进行训练得到,数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,数据样本具有样本标签,样本标签中包括第一样本编码参数和第二样本编码参数,第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数。因此,利用上述的编码参数分配模型获得的第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配,进而实现根据收包等待时延和预设编码码率值准确地为当前数据单元和对应的冗余数据单元分配编码参数,提升了数据传输的可靠性。
请参阅图3,本申请另一实施例提供了一种数据编码方法,该方法包括:
步骤S210:获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据。
其中,每种编码组合方式对应的丢包时延为对初始数据采用该编码组合方式对应编码后模拟丢包传输得到。
初始数据是指任意可以进行模拟丢包的音视频数据。
上述步骤S210中获取初始数据对应的多种编码组合方式可以是:根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对初始数据进行编码的多种编码参数组合方式,其中,N和M分别为大于或等于1的整数。
应当理解,上述的初始数据的数量为多个,且各初始数据对应的数据单元的数量可以相同,也可以不同。在本申请的一种可实施方式中,若初始数据对应的数据单元的数量不同时,首先对收集到的批量数据按照固定窗长进行切分,上述的固定窗长可以是3秒,5秒、8秒或者10秒等,以得到具有相同数据单元的多个初始数据。
在一种可实施方式中,在获得初始数据之后,可以根据该初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数对编码方式进行组合,得到对每个数据单元和该数据单元的冗余单元的多种编码组合方式;基于每个数据单元和该数据单元对应的冗余单元的编码组合方式得到对初始数据进行编码的多种编码参数组合方式。
示例性的,上述的初始数据为初始音频数据,数据单元为音频帧,则上述步骤S210具体可以是根据对初始音频数据中每个音频帧的编码参数和该音频帧对应的冗余帧的M种编码参数得到对音频数据进行编码的多种编码码率组合方式,音频帧和冗余帧各自对应的编码参数(编码码率)的选取范围应当是在一个数量可控的选取范围内,不同音频帧对应的编码参数(编码码率)的选取方式的种类可以相同,也可以不同。
示例性的,不同音频帧对应的编码参数均(编码码率)可以有N种选取方式,且各音频帧对应的冗余帧的编码参数(编码码率)均可以有M种选取方式,也即,若音频帧的N种编码码率和该音频帧对应的冗余音频帧的M种编码码率,由于带内FEC编码模式下,当前音频帧的编码参数(编码码率)与对应的冗余帧的编码参数(编码码率)的和通常为一固定值,因此,对一个音频帧进行编码时,可以有N+M种编码码率的组合选择,则对任意具有L帧音频的进行编码时,最多有L(N+M)种编码码率组合方式。
示例性地,在该种实施方式下,以8秒为一个窗(400帧信号)生成的初始音频数据,假设语音带内FEC编码器具有K个码率可选,K=N+M。按照所有帧都有K种码率配置可能,则总共有400^K个帧码率配置的方式(编码码率组合方式)。
应当理解,若不同音频帧对应的编码码率的种类不同,或者不同音频帧对应的冗余音频帧的编码码率的种类不同时,可以对不同音频帧的编码方式进行组合,得到最终的编码组合。
在另一中可实施方式中,上述步骤S210中获取初始数据对应的多种编码组合方式还可以是:对初始数据中的每个数据单元进行分类检测,得到每个数据单元对应的类别,根据每种类别对应的预设码率范围和每个数据单元对应的类别以及每个数据单元对应的M种编码参数和该数据单元对应的冗余单元的N种编码参数,得到对初始数据进行编码的多种编码参数组合方式。
在该种方式下,针对每个数据单元,可以根据该数据单元的类别及该类别对应的预设码率范围从该数据单元对应的M种编码参数中选取M1种第一候选编码参数,其中第一候选编码参数的取值在该数据单元的类别对应的预设码率范围内,以及根据该数据单元的冗余单元的类别及该冗余单元的类别对应的预设码率范围从该冗余单元对一应的N种编码参数中选取N1种第二候选编码参数,其中,第二候选编码参数的取值在该冗余单元的类别对应的预设码率范围内。根据每个数据单元对应的N1种第一候选编码参数和该数据单元对应的冗余单元的N2中第二候选编码参数得到对初始数据进行编码的多种编码组合方式。
应当理解,在该种实施方式下,不同的音频帧对应的第一候选编码参数的种类可以不同,且不同音频帧对应的冗余帧的第二候选编码参数的种类也可以不同。
示例性的,以初始数据为初始音频数据、数据单元为音频帧为例,则对初始音频数据中的各音频帧进行分类检测,得到每个音频帧的音频类别;根据每种音频类别对应的预设码率范围、每个音频帧的音频类别以及对初始音频数据中每个音频帧的N种编码码率和该音频帧对应的冗余音频帧的M种编码码率,得到对音频数据进行编码的多种编码码率组合方式。
具体的,上述的分类检测的方式可以根据初始数据的不同而有不同的选取方式,例如,若初始数据为视频数据,则可以对视频数据进行帧类型检测,以得到帧类型,如I帧、P帧以及B帧,不同帧类型对应的编码码率的取值范围可以不同。又例如,若初始数据为音频数据,则可以是利用vad检测、音频信号分类器等对各音频帧进行分类检测,例如利用vad检测把音频输入分为语音和非语音,也可以用其它的分类器(音频信号分类器)将输入信号分成语音、音乐、噪声、静音等类别,并按照不同类别设定可选的编码码率范围,例如非语音、噪声、静音由于不具有实质性的内容信息,可以限定该类型的编码码率最大值为一个较小的编码码率,而音乐类型由于信息类较大,一般分配较高编码码率值,所以限制该类型的码率最大值和最小值设定为一个较大的编码码率。经过基于信号分类的类型编码码率范围限制后一个窗内的可配置码率的编码码率组合方式的数量会降低。
获取每种编码组合方式对应的多个数据包的丢包等待时延和目标数据的方式具体可以是:
针对每种编码参数组合方式,按照该编码参数组合方式对初始数据中的数据单元进行编码得到该编码参数组合方式下的数据包。向数据接收设备发送各编码参数组合方式下的数据包。接收数据接收设备反馈的各编码参数组合方式对应的收包等待时延;数据接收设备在接收各编码参数组合方式对应的数据包的过程中进行模拟丢包并统计收包等待时延;接收数据接收设备反馈的各编码参数组合方式对应的目标数据。
应当理解,上述模拟丢包过程也可以由电子设备(发送数据包的设备)来执行,也可以由路由器执行,还可以由电子设备(发送数据包的设备)和数据接收设备共同执行,此外,接收设备也可以仅向电子设备反馈其接收到的数据包并由电子设备对数据包进行解码得到目标数据。
以初始数据为初始音频数据为例,通过采用上述步骤,可以实现按照每种编码码率组合方式对初始音频数据中的各音频帧进行编码后发送至数据接收设备,在发送过程中进行模拟丢包处理,并获取数据接收设备统计与采用每种编码组合方式对应的多个音频数据包各自对应的收包等待时延,以及与每种编码组合方式对应的降级音频数据。具体的,在进行模拟丢包时,可以按照每种编码码率组合方式针对初始音频数据中的每个音频帧和对应的冗余帧按照对应的编码参数进行编码后向数据接收设备发送编码后的初始编码数据并进行模拟丢包,数据接收设备在接收到每个音频对应的数据包时,会统计与采用每种编码组合方式对应的多个音频数据包各自对应的收包等待时延,并在接收到音频数据包后,会对数据包进行解码,得到与每种编码组合方式对应的降级音频数据(也即,目标数据),且为尽可能模拟真实丢包场景,可以采用路由器丢包、接入设备(数据接收设备和数据发送设备等)中的至少一种进行模拟丢包,并且记录数据接收设备的收包等待时延值。
步骤S220:基于初始数据和每种编码组合方式对应的目标数据,从多种编码参数组合方式中确定一种编码参数组合方式作为初始数据的目标编码参数组合方式。
其中,上述步骤S220可以是:将每种编码组合方式对应的目标数据与初始数据进行相似度计算,得到每种编码参数组合方式对应的相似度,基于每种编码参数组合方式对应的相似度从多种编码组合方式中确定目标编码参数组合方式。如将最大相似度对应的编码参数组合方式确定为目标编码参数组合方式。
若初始数据为初始音频数据。编码参数为编码码率,则上述步骤S220还可以是,计算每种编码组合方式对应的编码码率,根据每种编码组合方式对应的编码码率从多种编码码率组合方式中选取编码码率满足预设编码条件的编码码率组合方式作为候选编码参数组合方式,获取按照每种候选编码组合方式进行编码得到的编码后的初始音频数据,并对编码后的初始音频数据进行解码得到降级音频数据,根据降级音频数据(解码后的初始音频数据)和初始音频数据进行质量评估,根据质量评估结果获得目标编码码率组合方式。
应当理解,上数目标编码码率组合的确定方式还可以有其他的方式,且具体的选取方式可以根据前述获得多种编码码率组合的方式进行选取。
请参阅图4,在本申请的一种可实施方式中,上述获取每种编码组合方式对应的多个数据包的丢包等待时延具体可以包括:
步骤S221:计算每种编码参数组合方式对应的编码码率平均值。
步骤S222:从多种编码参数组合方式中选取编码码率平均值小于编码码率设定阈值的编码参数组合方式作为候选编码参数组合方式。
其中,预设编码码率值具体可以基于经验设置,也可以基于实际传输中的码率大小限制范围进行设置,根据实际需求进行设置即可。
步骤S223:将初始数据与各每种候选编码参数组合方式对应的目标数据进行客观质量评估,得到每种候选编码参数组合方式对应的目标数据的评估结果。
其中,上述步骤S224具体可以是,在初始数据为初始音频数据时,将初始音频数据和每种候选编码参数组合方式对应的降级音频数据(目标数据)进行PESQ或POLQA客观质量评估,以得到每种候选编码参数组合方式对应的降级音频数据的评估结果。应当理解,上述进行客观质量评估的方式仅仅是示意性的,还可以有更过的评估方式,在本实施例不作具体限定。
步骤S224:基于每种候选编码参数组合方式对应的目标数据的评估结果和每种候选编码参数组合方式对应的编码码率平均值从候选编码参数组合方式中选取目标编码参数组合方式。
通过选取编码码率平均值小于编码码率设定阈值的编码码率组合方式作为候选编码参数组合方式,可以避免,将初始音频信和每种候选编码参数组合方式对应的降级音频信号进行PESQ或POLQA客观质量评估的过程中,浪费过多的计算资源,从而提升了基于评估结果给出客户质量评估最高分而平均码率值最低者为最优编码率配置对应的编码码率组合时的效率。
步骤S230:基于目标编码参数组合方式、目标编码参数组合方式对应的多个数据包各自对应的收包等待时延,构建训练样本。
其中,可以是从,目标编码参数组合方式中选取一个样本数据单元作为对应的编码组合,并将选取的样本数据单元作为当前样本数据单元,基于当前数据单元之前的多个样本数据包各自的收报等待试验,当前样本数据单元对应的第一编码参数和第二编码参数构建训练样本,以使训练样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个训练样本数据包各自对应的收包等待时延,历史样本数据单元在训练样本中的编码位置位于当前样本数据单元之前,且各历史样本数据单元的收包等待时延的统计时刻与当前样本数据单元的获取时刻之间的时长在预设时长范围内,将当前样本数据单元对应的编码参数作为第一样本编码参数,以及将该当前样本数据单元对应的冗余样本单元的编码参数作为第二样本编码参数。
具体的,以训练样本为音频样本为例,音频样本中包括当前音频样本帧、与多个历史音频帧分别对应的多个音频样本数据包各自对应的收包等待时延,历史音频帧在音频样本中的编码位置位于当前音频样本帧之前,且各历史音频帧的收包等待时延的统计时刻与当前音频样本帧的获取时刻之间的时长在预设时长范围内样本标签包括当前音频样本帧对应的第一编码码率以及与该当前音频样本帧对应的冗余样本帧的第二编码码率。
上述在基于目标编码码率组合方式、初始音频数据以及该初始音频数据包括的多个音频帧对应的多个音频数据包各自对应的收包等待时延构建音频样本时,一个初始音频数据可以对应构建一个或多个音频样本,且每个音频样本中的样本音频数据包的数量可以相同。在一个初始音频数据对应构建多个音频样本时,该多个音频样本中的当前音频帧在初始音频数据中的位置不同。
应当理解,在数据单元为视频数据或其他以数据流的方式传输的数据时,也可以采用与上述类似的方式构建数据样本,在本实施例不作一一赘述。
步骤S240:基于多个训练样本对编码参数分配模型进行训练,以最小化比特模型的模型参数,得到训练后的编码参数分配模型。
其中,上述的编码参数分配模型可以是一个由CONV(卷积块)、LSTM(长短期记忆人工神经网络,一种时间循环神经网络)、RNN(循环神经网络,一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络)、GRU(循环神经网络,其与和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的)、DENSE(将前面提取的特征,在dense经过非线性变化,提取这些特征之间的关联)等中的一种或多种单元组合构成。
在基于多个样本数据对编码参数分配模型进行训练时,可以将样本数据中的当前数据样本单元、多个历史数据单元分别对应的数据包各自对应的收包等待时延进行特征提取,以基于提取到的特征为当前数据样本单元和对应的冗余数据样本单元进行编码参数分配预测,得到当前数据样本单元和冗余数据样本单元各自的编码参数分配预测结果,基于当前数据样本单元和冗余数据样本单元各自的编码参数分配预测结果以及当前样本数据单元对应的样本标签中的当前样本数据单元对应的第一编码码率以及对应的冗余样本数据单元对应的第二编码码率进行损失计算,得到模型损失,以基于模型损失调整编码参数分配模型的模型参数,以最小化模型损失,得到训练后的编码参数分配模型。
通过采用上述步骤S210-S220,可以实现按照预设的编码码率值(即平均编码码率)要求,过滤部分不满足要求的组合,对剩余满足要求的码率组合采用最优搜索的方法,通过PESQ或POLQA等音频客观质量评估工具提取最优编码比特分配组合(目标编码码率组合),该结果用于训练深度学习比特分配网络,训练好的网络用于实际编码中带内FEC的比特分配控制。此外,在特征提取过程中,由于样本数据包括当前样本数据单元,因此,在进行特征提取过程中,提取到的特征包括当前数据单元的特征,从而使得训练过程中,可以充分根据当前数据单元的特征确定为当前数据单元分配更合理的编码参数,如分配更多的编码码率,避免了如果丢包帧(当前数据单元对应的冗余数据单元)自身信息量不大,该丢包帧对于接收端解码后音质影响不大,那么为了保护这种丢包帧而做了带内FEC进而牺牲当前数据单元的情况。
步骤S250:获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延。
收包等待时延的统计时刻与当前数据单元的获取时刻之间的时长在预设时长范围内,当前数据单元与各数据包对应相同的数据传输通道。
步骤S260:将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
在一种可实施方式中,若当前数据单元为音频帧,则上述步骤S240可以包括:对当前数据单元进行特征提取,得到当前数据单元的音频特征,音频特征包括功率谱特征和梅尔频谱特征中的至少一种;将预设编码码率值、当前数据单元的音频特征和各数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
其中,对梅尔频谱(MBF,Mel Bank Features)是指,由于得到的声谱图较大,为了得到合适大小的声音特征,通常将它通过梅尔尺度滤波器组(Mel-scale filter banks),变为梅尔频谱。
功率谱是功率谱密度函数的简称,它定义为单位频带内的信号功率。它表示了信号功率随着频率的变化情况,即信号功率在频域的分布状况。功率谱表示了信号功率随着频率的变化关系。
应当理解,若上述的数据单元为视频单元,也可以对当前数据单元(当前视频帧)进行特征提取,得到当前数据单元对应的特征向量,以将预设编码码率值、当前数据单元的特征向量和各数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
步骤S270:基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据。
步骤S260:将第一编码数据和第二编码数据进行打包,得到当前数据单元对应的数据包。
关于上述步骤S230-S260的具体描述可以参阅前文对步骤S110-S140的具体描述,在本申请实施例不作一一赘述。
在获得当前数据单元对应的数据包之后,方法还包括:向数据接收设备发送当前数据单元对应的数据包,以使数据接收设备在接收到当前数据单元对应的数据包,并在确认当前数据单元的上一数据单元丢失时,对当前数据单元对应的数据包中的第二编码数据进行解码,以及在确认当前数据单元的上一数据单元未丢失时,对当前数据单元对应的数据包中的第一编码数据进行解码。
应当理解,在确认当前数据单元的上一数据单元丢失时,除了对当前数据单元对应的数据包中的第二编码数据进行解码,还可以对当前数据单元对应的数据包中的第一编码数据进行解码。
其中,确认当前数据单元的上一数据单元是否丢失的方式可以是,根据数据接收设备的数据接收时延确认上一数据单元是否丢失,也可以根据当前数据单元中的标签信息和其他已接收到的数据包中的数据单元的标签信息确认当前数据单元的上一数据单元是否丢失。应当理解,上述确认当前数据单元的上一数据单元是否丢失的方式仅为示意性的,还可以有其他的确认方式,在本实施例不作一一赘述。
通过获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据,基于初始数据和每种编码组合方式对应的目标数据,从多种编码参数组合方式中确定一种编码参数组合方式作为初始数据的目标编码参数组合方式,以及基于目标编码参数组合方式、目标编码参数组合方式对应的多个数据包各自对应的收包等待时延,构建训练样本,以使利用训练样本训练得到的编码参数分配模型能够依据待传输数据的多个数据包各自的收包等待时延为待传输数据的当前数据单元和冗余数据单元合理地分配第一编码参数和第二编码参数,且第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配,从而提升了数据传输的可靠性。
此外,本申请的在进行编码参数分配时是基于数据包的收包等待时延来进行的,因此充分考虑到了通常情况下,网络的质量状况通常与收包等待时延和当前包丢包的可能性有关,网络质量越差则收包等待时延越长,相应的,丢包的可能性越大,而网络质量越好则收包等待时延越短,相应丢包的可能性也越小,因此,通过根据收包等待时延和预设编码码率值可以实现准确地为当前数据单元和对应的冗余数据单元分配编码参数,避免了因相关技术中采用丢包率确定编码参数时,因丢包率通常不稳定,且丢包率值本身是一个近段时间内丢包数百分比的统计,是一个滞后的检测结果,丢包率只能反映当前时刻之前一段时间内的接收端收包状况,丢包率与当前发送帧是否会出现丢包没有必然的因果关系,基于丢包率获得的编码参数不准确的问题。
进一步的,采用上述方法,还可以避免丢包率较低,如丢包率为5%情况下,则代表了95%的发送数据包都能被接收端正常接收的,为了95%的大概率不会出现丢包的情况而让发送端持续占用一定比例的比特数用于带内FEC编码,进而牺牲了原发送帧的编解码音质的不合理的问题,通过将预设编码码率值、当前数据单元和各数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,还可以避免带内FEC冗余比特和正常帧编码比特分配存在冲突,如果丢包帧自身信息量不大,该丢包帧对于接收端解码后音质影响不大,那么为了保护这种丢包帧而做了带内FEC进而牺牲正常帧(可能是重要帧)的音频编码质量而造成的不合理的情况。
示例性的,通过构造对初始音频数据多种编码码率组合方式,并进行模拟丢包后获取数据接收设备统计与采用每种编码参数组合方式对应的多个音频数据包各自对应的收包等待时延,以及与每种编码组合方式对应的降级音频数据,通过pesq(客观语音质量评估)或polqa(音频质量评估)等客观质量评估手段得到每种编码码率组合方式对应的降级音频数据的评估结果,以获得具有最优的带内FEC的编码参数分配结果的音频样本,并利用音频样本训练编码参数分配模型多个收包等待时延为当前数据单元及对应的冗余单元分配编码参数时能够实现为当前音频帧和对应的冗余帧分配最优的编码参数以提升编码效果。
以数据编码方法具体应用于对音频数据进行编码传输为例,且对音频数据进行编码传输具体可以是Voip通话、直播、音频广播等领域为场景下。其中,Voip通话基于IP的语音传输,是一种语音通话技术,经由网际协议(IP)来达成语音通话与多媒体会议,也就是经由互联网来进行通信。其他非正式的名称有IP电话(IP telephony)、互联网电话(Internettelephony)、宽带电话(broadband telephony)以及宽带电话服务(broadband phoneservice)。
在利用Voip通话进行音频数据传输时,具体可以如图5所示的传输方式,在用户通过数据发送端录制语音信号后,由数据发送端对音频信号编码后发送至数据接收端;也可以如图6所示,是由安装有VIOP客户端的两个设备之间的音频信号传输(交互),还可以是图7所示由安装有VIOP客户端的多个设备进行音频信号传输,应当理解,当由安装有VIOP客户端的至少两个设备之间今星期音频信号传输时,各设备即可用作数据发送端也可用作数据接收端。
请结合参阅图8和图9,具体的音频数据传输过程如下:
模型训练:首先对收集到的批量音频训练样本按照固定窗长进行切分,例如窗长为8秒(以20ms为一帧数据,则一窗共有400帧),对切分出来的一窗400帧数据(初始音频数据)利用语音编码器进行编码后模拟丢包,这里尽可能模拟真实丢包场景(例如路由器丢包、接入设备丢包等)进行丢包,并且记录接收端的收包等待时延值。假设语音编码器的正常帧编码码率有N种选择,而带内FEC冗余编码部分有M种编码码率选择,则每帧数据(每个音频帧)均有N+M种编码码率的组合选择,则对初始音频数据就有,按照预设的编码码率值(即平均编码码率)要求,过滤部分不满足要求的组合,对剩余满足要求的码率组合采用最优搜索的方法,通过PESQ或POLQA等音频客观质量评估工具提取最优编码比特分配组合,利用最优编码比特分配组合、收包等待时延以及初始音频数据构建训练样本,以利用训练样本用于训练编码参数分配模型(深度学习比特分配网络),训练好的编码参数分配模型用于实际编码中带内FEC的编码参数分配控制(比特分配控制)。
其中,上述的最优搜索方法有两种,一种是全局遍历法,一种是分类遍历法。
全局遍历法是指:以8秒为一个窗(400帧信号),假设语音带内FEC编码器具有K个码率可选,K=N1+N2。全局遍历法则按所有帧都有K种码率配置可能,则总共有400^K个帧码率配置的方式,从这些组合种过滤出满足给定的目标编码码率(平均码率)要求的组合,即将400帧的不同码率的总和除以400得到的即为当前码率配置方案的平均码率值,该值要求小于等于给定的预设编码码率(编码器启动时由外部配置的编码码率值)。
分类遍历法是指:分类遍历法则先通过分类手段(例如vad检测、音频信号分类器等)对输入帧信号进行分类,例如vad检测把音频输入分为语音和非语音,也可以用其它的分类器将输入信号分成语音、音乐、噪声、静音等类别,按照不同类别设定可选的编码码率范围,例如非语音、噪声、静音由于不具有实质性的内容信息,可以限定该类型的编码码率最大值为一个较小的编码码率,而音乐类型由于信息类较大,一般分配较高编码码率值,所以限制该类型的码率最大值和最小值设定为一个较大的编码码率。经过基于信号分类的类型编码码率范围限制后一个窗内的可配置码率且满足目标编码码率要求的组合总数相比全局遍历法得到的编码率组合会降低。假设上述遍历得到码率最终可用组合总数为N,基于各组编码码率配置对窗内每帧音频输入信号进行模拟丢包及音频编解码处理,得到的降级音频信号输出,将原始输入音频信号和降级音频信号进行PESQ或POLQA客观质量评估,基于评估结果给出客户质量评估最高分而平均码率值最低者为最优编码率配置(目标编码码率组合方式)。
基于最优编码码率配置、初始音频数据以及该初始音频数据包括的多个音频帧对应的多个音频数据包各自对应的收包等待时延,构建音频样本,该音频样本中包括括当前音频样本帧、与多个历史音频帧分别对应的多个音频样本数据包各自对应的收包等待时延,历史音频帧在音频样本中的编码位置位于当前音频样本帧之前,且各历史音频帧的收包等待时延的统计时刻与当前音频样本帧的获取时刻之间的时长在预设时长范围内样本标签包括当前音频样本帧对应的第一编码码率以及与该当前音频样本帧对应的冗余样本帧的第二编码码率。通过将音频样本输入至编码参数分配模型最终输出通过sofemax处理得到不同编码码率的选出概率,以及不同选出概率下当前音频帧的第一预测编码码率和该当前音频帧的冗余帧对应的第二预测编码码率。根据样本标签及不同编码码率的选出概率及不同选出概率下当前音频帧的第一预测编码码率和该当前音频帧的冗余帧对应的第二预测编码码率获得编码损失,并调整模型参数以最小化模型损失,得到训练后的编码参数分配模型。
在完成编码参数分配模型的训练之后,若要对当前音频帧和对应的冗余帧进行编码,则可以获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,收包等待时延的统计时刻与当前数据单元的获取时刻之间的时长在预设时长范围内,当前数据单元与各数据包对应相同的数据传输通道;对当前数据单元进行特征提取,得到当前数据单元的音频特征,音频特征包括功率谱特征和梅尔频谱特征中的至少一种;将预设编码码率值、当前数据单元的音频特征和各数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,冗余数据单元用于恢复在该当前数据单元之前被编码的数据单元;基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据;将第一编码数据和第二编码数据进行打包,得到当前数据单元对应的数据包。以码流的形式向数据接收端传输数据包。
需要说明的是,在利用分配的编码参数对当前音频帧进行编码之前,可以先基于语音模型进行特征提取当前音频帧的音频特征,并对该音频特征进行量化后保存,以便在传输下一帧音频时,可以对保存的音频帧作为冗余帧进行编码。
在完成对当前音频帧的特征提取和特征量化处理得到量化处理后的音频帧时,可以基于当前音频帧对应的第一编码参数对该当前音频帧进行编码得到第一编码数据,以及基于该当前音频帧对应的冗余帧(当前音频帧的上一音频帧)的第二编码参数对该冗余帧进行编码得到第二编码数据,第一编码数据和第二编码数据进行打包得到数据包后输出,其中,数据发送端在发送上述的数据包时,可以以码流的方式输出上述的数据包。
需要说明的是,本申请中装置实施例与前述方法实施例是相互对应的,装置实施例中具体的原理可以参见前述方法实施例中的内容,此处不再赘述。
如图10所示,是根据一实施例示出的数据编码装置300,如图7所示,该数据编码装置300包括:第一数据获取模块310、比特确定模块320、编码模块330以及打包模块340。第一数据获取模块310,用于用于获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,收包等待时延的统计时刻与当前数据单元的获取时刻之间的时长在预设时长范围内,当前数据单元与各数据包对应相同的数据传输通道;比特确定模块320,用于将预设编码码率值、当前数据单元和多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;编码参数分配模型基于数据样本对初始模型进行训练得到,数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,数据样本具有样本标签,样本标签中包括第一样本编码参数和第二样本编码参数,第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数;编码模块330,用于基于第一编码参数对当前数据单元进行编码得到第一编码数据,基于第二编码参数对冗余数据单元进行编码得到第二编码数据;打包模块340,用于将第一编码数据和第二编码数据进行打包,得到当前数据单元对应的数据包。
在一种可实施方式中,装置300还包括第二数据获取模块、组合方式确定模块、样本构建模块以及模型训练模块,第二数据获取模块,用于获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据,每种编码组合方式对应的丢包时延为对初始数据采用该编码组合方式对应编码后模拟丢包传输得到;组合方式确定模块,用于基于初始数据和每种编码组合方式对应的目标数据,从多种编码参数组合方式中确定一种编码参数组合方式作为初始数据的目标编码参数组合方式;样本构建模块,用于基于目标编码参数组合方式、目标编码参数组合方式对应的多个数据包各自对应的收包等待时延,构建训练样本,训练样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个训练样本数据包各自对应的收包等待时延,历史样本数据单元在所述训练样本中的编码位置位于当前样本数据单元之前,且各所述历史样本数据单元的收包等待时延的统计时刻与所述当前样本数据单元的获取时刻之间的时长在所述预设时长范围内,样本标签包括当前样本数据单元对应的第一样本编码参数以及与该当前样本数据单元对应的冗余样本数据单元的第二样本编码参数;模型训练模块,用于基于多个训练样本对编码参数分配模型进行训练,以最小化比特模型的模型参数,得到训练后的编码参数分配模型。
在一种可实施方式中,编码参数为编码码率,初始数据为音频数据,数据单元为音频帧,组合方式确定模块包括均值计算子模块、第一组合方式选取子模块、质量评估子模块以及第二组合方式选取子模块。均值计算子模块,用于计算每种编码参数组合方式对应的编码码率平均值;第一组合方式选取子模块,用于从多种编码参数组合方式中选取编码码率平均值小于编码码率设定阈值的编码参数组合方式作为候选编码参数组合方式;质量评估子模块,用于将初始数据与各每种候选编码参数组合方式对应的目标数据进行客观质量评估,得到每种候选编码参数组合方式对应的目标数据的评估结果;第二组合方式选取子模块,用于基于每种候选编码参数组合方式对应的目标数据的评估结果和每种候选编码参数组合方式对应的编码码率平均值从候选编码参数组合方式中选取目标编码参数组合方式。
在一种可实施方式中,第二数据获取模块包括组合方式获得子模块、编码子模块、数据发送子模块以及数据接收子模块。组合方式获得子模块,用于根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对初始数据进行编码的多种编码参数组合方式,其中,N和M分别为大于或等于1的整数;编码子模块,用于针对每种编码参数组合方式,按照该编码参数组合方式对初始数据中的数据单元进行编码得到该编码参数组合方式下的数据包;数据发送子模块,用于向数据接收设备发送各编码参数组合方式下的数据包;数据接收子模块,用于接收数据接收设备反馈的各编码参数组合方式对应的收包等待时延;数据接收设备在接收各编码参数组合方式对应的数据包的过程中进行模拟丢包并统计收包等待时延;数据接收子模块,还用于接收数据接收设备反馈的各编码参数组合方式对应的目标数据。
在一种可实施方式中,编码组合方式获得子模块,还用于根据初始数据中对每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对每个数据单元和该数据单元的冗余单元的多种编码组合方式;基于每个数据单元和该数据单元对应的冗余单元的编码组合方式得到对初始数据进行编码的多种编码参数组合方式。
在一种可实施方式中,初始数据为初始音频数据,数据单元为音频帧,编码参数包括编码码率,编码组合方式获得子模块,还用于对初始音频数据中的各音频帧进行分类检测,得到每个音频帧的音频类别;根据每种音频类别对应的预设码率范围、每个音频帧的音频类别以及对初始音频数据中每个音频帧的N种编码码率和该音频帧对应的冗余音频帧的M种编码码率,得到对初始音频数据进行编码的多种编码参数组合方式。
在一种可实施方式中,样本数据为音频样本,数据单元为音频帧,比特确定模块320包括特征提取子模块和比特确定子模块。特征提取子模块,用于对当前数据单元进行特征提取,得到当前数据单元的音频特征,音频特征包括功率谱特征和梅尔频谱特征中的至少一种;比特确定子模块,用于将预设编码码率值、当前数据单元的音频特征和各数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
在一种可实施方式中,装置300还包括数据发送模块,数据发送模块,用于向数据接收设备发送当前数据单元对应的数据包,以使数据接收设备在接收到当前数据单元对应的数据包,并在确认当前数据单元的上一数据单元丢失时,对当前数据单元对应的数据包中的第二编码数据进行解码,以及在确认当前数据单元的上一数据单元未丢失时,对当前数据单元对应的数据包中的第一编码数据进行解码。
下面将结合图11对本申请提供的一种电子设备进行说明。
请参阅图11,基于上述实施例提供的数据编码方法,本申请实施例还提供的另一种包括可以执行前述方法的处理器102的电子设备100,该电子设备100可以为服务器或终端设备,终端设备可以是智能手机、平板电脑、计算机或者便携式计算机等设备。
电子设备100还包括存储器104。其中,该存储器104中存储有可以执行前述实施例中内容的程序,而处理器102可以执行该存储器104中存储的程序。
其中,处理器102可以包括一个或者多个用于处理数据的核以及消息矩阵单元。处理器102利用各种接口和线路连接整个电子设备100内的各个部分,通过运行或执行存储在存储器104内的指令、程序、代码集或指令集,以及调用存储在存储器104内的数据,执行电子设备100的各种功能和处理数据。可选地,处理器102可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器102可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器102中,单独通过一块通信芯片进行实现。
存储器104可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。存储器104可用于存储指令、程序、代码、代码集或指令集。存储器104可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现下述各个方法实施例的指令等。存储数据区还可以存储电子设备100在使用中所获取的数据(如,目标写入向量、聚类向量以及样本数据等中的一种或多种)等。
电子设备100还可以包括网络模块以及屏幕,网络模块用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯,例如和音频播放设备进行通讯。网络模块可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。网络模块可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。屏幕可以进行界面内容的显示以及进行数据交互。
在一些实施例中,电子设备100还可以包括有:外设接口106和至少一个外围设备。处理器102、存储器104和外设接口106之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外设接口连接。具体地,外围设备包括:射频组件108、定位组件112、摄像头114、音频组件116、显示屏118以及电源122等中的至少一种
外设接口106可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器102和存储器104。在一些实施例中,处理器102、存储器104和外设接口106被集成在同一芯片或电路板上;在一些其他实施例中,处理器102、存储器104和外设接口106中的任意一个或两个可以在单独的芯片或电路板上实现,本申请实施例对此不加以限定。
射频组件108用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频组件108通过电磁信号与通信网络以及其他通信设备进行通信。射频组件108将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频组件108包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频组件108可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频组件108还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
定位组件112用于定位电子设备的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件112可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、北斗系统或伽利略系统的定位组件。
摄像头114用于采集图像或视频。可选地,摄像头114包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备100的前面板,后置摄像头设置在电子设备100的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头114还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频组件116可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器102进行处理,或者输入至射频组件108以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备100的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器102或射频组件108的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频组件114还可以包括耳机插孔。
显示屏118用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏118是触摸显示屏时,显示屏118还具有采集在显示屏118的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器102进行处理。此时,显示屏118还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏118可以为一个,设置电子设备100的前面板;在另一些实施例中,显示屏118可以为至少两个,分别设置在电子设备100的不同表面或呈折叠设计;在又一些实施例中,显示屏118可以是柔性显示屏,设置在电子设备100的弯曲表面上或折叠面上。甚至,显示屏118还可以设置成非矩形的不规则图形,也即异形屏。显示屏118可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,机发光二极管)等材质制备。
电源122用于为电子设备100中的各个组件进行供电。电源122可以是交流电、直流电、一次性电池或可充电电池。当电源122包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
本申请实施例还提供一种计算机可读存储介质的结构框图。该计算机可读介质中存储有程序代码,程序代码可被处理器调用执行上述方法实施例中所描述的方法。
计算机可读存储介质可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。可选地,计算机可读存储介质包括非易失性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质具有执行上述方法中的任何方法步骤的程序代码的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码可以例如以适当形式进行压缩。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中描述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (12)
1.一种数据编码方法,其特征在于,所述方法包括:
获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,所述收包等待时延的统计时刻与所述当前数据单元的获取时刻之间的时长在预设时长范围内,所述当前数据单元与各所述数据包对应相同的数据传输通道;
将所述预设编码码率值、当前数据单元和所述多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,所述第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;所述编码参数分配模型基于数据样本对初始模型进行训练得到,所述数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,所述数据样本具有样本标签,所述样本标签中包括第一样本编码参数和第二样本编码参数,所述第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,所述目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,所述数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数;
基于所述第一编码参数对所述当前数据单元进行编码得到第一编码数据,基于第二编码参数对所述冗余数据单元进行编码得到第二编码数据;
将所述第一编码数据和所述第二编码数据进行打包,得到所述当前数据单元对应的数据包。
2.根据权利要求1所述的方法,其特征在于,所述编码参数分配模型的训练过程包括:
获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据,每种编码组合方式对应的丢包时延为对初始数据采用该编码组合方式对应编码后模拟丢包传输得到;
基于所述初始数据和每种编码组合方式对应的目标数据,从所述多种编码参数组合方式中确定一种编码参数组合方式作为所述初始数据的目标编码参数组合方式;
基于所述目标编码参数组合方式、目标编码参数组合方式对应的多个数据包各自对应的收包等待时延,构建训练样本;
基于多个所述训练样本对编码参数分配模型进行训练,以最小化比特模型的模型参数,得到训练后的编码参数分配模型。
3.根据权利要求2所述的方法,其特征在于,所述编码参数为编码码率,所述初始数据为音频数据,所述数据单元为音频帧,所述基于所述初始数据和每种编码组合方式对应的目标数据,从所述多种编码参数组合方式中确定一种编码参数组合方式作为所述初始数据的目标编码参数组合方式,包括:
计算每种编码参数组合方式对应的编码码率平均值;
从多种编码参数组合方式中选取编码码率平均值小于编码码率设定阈值的编码参数组合方式作为候选编码参数组合方式;
将所述初始数据与各每种候选编码参数组合方式对应的目标数据进行客观质量评估,得到每种候选编码参数组合方式对应的目标数据的评估结果;
基于每种候选编码参数组合方式对应的目标数据的评估结果和每种候选编码参数组合方式对应的编码码率平均值从候选编码参数组合方式中选取目标编码参数组合方式。
4.根据权利要求2所述的方法,其特征在于,所述获取初始数据对应的多种编码组合方式及每种编码组合方式对应的多个数据包的丢包等待时延和目标数据,包括:
根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对所述初始数据进行编码的多种编码参数组合方式,其中,N和M分别为大于或等于1的整数;
针对每种编码参数组合方式,按照该编码参数组合方式对初始数据中的数据单元进行编码得到该编码参数组合方式下的数据包;
向数据接收设备发送各编码参数组合方式下的数据包;
接收数据接收设备反馈的各编码参数组合方式对应的收包等待时延;所述数据接收设备在接收各编码参数组合方式对应的数据包的过程中进行模拟丢包并统计收包等待时延;
接收数据接收设备反馈的各编码参数组合方式对应的目标数据。
5.根据权利要求4所述的方法,其特征在于,所述根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对所述初始数据进行编码的多种编码参数组合方式,包括:
根据初始数据中对每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对每个数据单元和该数据单元的冗余单元的多种编码组合方式;
基于每个数据单元和该数据单元对应的冗余单元的编码组合方式得到对所述初始数据进行编码的多种编码参数组合方式。
6.根据权利要求4所述的方法,其特征在于,所述初始数据为初始音频数据,所述数据单元为音频帧,所述编码参数包括编码码率,根据对初始数据中每个数据单元的N种编码参数和该数据单元对应的冗余单元的M种编码参数,得到对所述初始数据进行编码的多种编码参数组合方式,包括:
对所述初始音频数据中的各音频帧进行分类检测,得到每个音频帧的音频类别;
根据每种音频类别对应的预设码率范围、每个音频帧的音频类别以及对初始音频数据中每个音频帧的N种编码码率和该音频帧对应的冗余音频帧的M种编码码率,得到对所述初始音频数据进行编码的多种编码参数组合方式。
7.根据权利要求1所述的方法,其特征在于,所述样本数据为音频样本,所述数据单元为音频帧,所述将所述预设编码码率值、当前数据单元和各所述数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,包括:
对所述当前数据单元进行特征提取,得到所述当前数据单元的音频特征,所述音频特征包括功率谱特征和梅尔频谱特征中的至少一种;
将所述预设编码码率值、当前数据单元的音频特征和各所述数据包的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数。
8.根据权利要求1所述的方法,其特征在于,所述将所述第一编码数据和所述第二编码数据进行打包,得到所述当前数据单元对应的数据包之后,所述方法还包括:
向所述数据接收设备发送所述当前数据单元对应的数据包,以使所述数据接收设备在接收到所述当前数据单元对应的数据包,并在确认当前数据单元的上一数据单元丢失时,对所述当前数据单元对应的数据包中的第二编码数据进行解码,以及在确认当前数据单元的上一数据单元未丢失时,对所述当前数据单元对应的数据包中的第一编码数据进行解码。
9.一种数据编码装置,其特征在于,所述装置包括:
第一数据获取模块,用于获取待传输数据的当前数据单元和由数据接收设备统计的多个数据包各自的收包等待时延,所述收包等待时延的统计时刻与所述当前数据单元的获取时刻之间的时长在预设时长范围内,所述当前数据单元与各所述数据包对应相同的数据传输通道;
比特确定模块,用于将所述预设编码码率值、当前数据单元和所述多个数据包各自的收包等待时延输入至预训练的编码参数分配模型,得到当前数据单元的第一编码参数和与该当前数据单元对应的冗余数据单元的第二编码参数,所述第一编码参数和第二编码参数与多个数据包的收包等待时延反应的传输状况相适配;所述编码参数分配模型基于数据样本对初始模型进行训练得到,所述数据样本中包括当前样本数据单元、与多个历史样本数据单元分别对应的多个样本数据包各自对应的收包等待时延,所述数据样本具有样本标签,所述样本标签中包括第一样本编码参数和第二样本编码参数,所述第一样本编码参数和第二样本编码参数是基于数据样本和多个目标数据从多种编码参数组合方式中选取得到,所述目标数据为对数据接收设备接收到的样本数据包进行解码得到的数据,所述数据接收设备接收的样本数据包为对样本数据采用一种编码参数组合方式进行编码并模拟丢包后的数据包,每种编码参数组合方式包括样本数据中的多个样本数据单元各自的第一样本编码参数和对每个样本数据单元对应的冗余样本数据单元的第二样本编码参数;
编码模块,用于基于所述第一编码参数对所述当前数据单元进行编码得到第一编码数据,基于第二编码参数对所述冗余数据单元进行编码得到第二编码数据;
打包模块,用于将所述第一编码数据和所述第二编码数据进行打包,得到所述当前数据单元对应的数据包。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行如权利要求1-9中任意一项所述的方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有程序代码,所述程序代码可被处理器调用执行如权利要求1-9中任意一项所述的方法。
12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1-9中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574455.3A CN116980075A (zh) | 2023-05-19 | 2023-05-19 | 数据编码方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310574455.3A CN116980075A (zh) | 2023-05-19 | 2023-05-19 | 数据编码方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980075A true CN116980075A (zh) | 2023-10-31 |
Family
ID=88473869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310574455.3A Pending CN116980075A (zh) | 2023-05-19 | 2023-05-19 | 数据编码方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980075A (zh) |
-
2023
- 2023-05-19 CN CN202310574455.3A patent/CN116980075A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11227612B2 (en) | Audio frame loss and recovery with redundant frames | |
US20230216521A1 (en) | Method and Apparatus for Neural Network Model Compression/Decompression | |
CN104054125B (zh) | 用于冗余帧译码和解码的装置 | |
CN108932948B (zh) | 音频数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN112530444A (zh) | 音频编码方法和装置 | |
CN114333862B (zh) | 音频编码方法、解码方法、装置、设备、存储介质及产品 | |
US10354660B2 (en) | Audio frame labeling to achieve unequal error protection for audio frames of unequal importance | |
CN115552518B (zh) | 一种信号编解码方法、装置、用户设备、网络侧设备及存储介质 | |
CN105099795A (zh) | 抖动缓冲器水平估计 | |
CN110838894A (zh) | 语音处理方法、装置、计算机可读存储介质和计算机设备 | |
US20240274144A1 (en) | Audio coding method and apparatus, audio decoding method and apparatus, electronic device, computer-readable storage medium, and computer program product | |
CN115881138A (zh) | 解码方法、装置、设备、存储介质及计算机程序产品 | |
CN115881140A (zh) | 编解码方法、装置、设备、存储介质及计算机程序产品 | |
CN114338623A (zh) | 音频的处理方法、装置、设备、介质及计算机程序产品 | |
JP2005229259A (ja) | 音声ミキシング方法、音声ミキシング装置、音声ミキシングプログラム及びこれを記録した記録媒体 | |
CN116959458A (zh) | 音频传输方法、装置、终端、存储介质及程序产品 | |
CN112767955A (zh) | 音频编码方法及装置、存储介质、电子设备 | |
WO2021213128A1 (zh) | 音频信号编码方法和装置 | |
CN111951821B (zh) | 通话方法和装置 | |
CN103109319A (zh) | 确定音调循环能量及按比例缩放激励信号 | |
CN116980075A (zh) | 数据编码方法、装置、电子设备及存储介质 | |
CN1748244B (zh) | 用于分布式语音识别的音高量化 | |
CN115334349B (zh) | 音频处理方法、装置、电子设备及存储介质 | |
CN112802485B (zh) | 语音数据处理方法、装置、计算机设备及存储介质 | |
CN115050377B (zh) | 音频转码方法、装置、音频转码器、设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |