CN114301884A - 音频数据的发送方法、接收方法、装置、终端及存储介质 - Google Patents

音频数据的发送方法、接收方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN114301884A
CN114301884A CN202110995981.8A CN202110995981A CN114301884A CN 114301884 A CN114301884 A CN 114301884A CN 202110995981 A CN202110995981 A CN 202110995981A CN 114301884 A CN114301884 A CN 114301884A
Authority
CN
China
Prior art keywords
audio
nth
data
historical
audio frame
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.)
Granted
Application number
CN202110995981.8A
Other languages
English (en)
Other versions
CN114301884B (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 CN202110995981.8A priority Critical patent/CN114301884B/zh
Publication of CN114301884A publication Critical patent/CN114301884A/zh
Application granted granted Critical
Publication of CN114301884B publication Critical patent/CN114301884B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例公开了一种音频数据的发送方法、接收方法、装置、终端及存储介质,属于音频编解码领域。所述方法包括:对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,所述第m音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率;向音频接收端发送所述第n音频数据包。采用本申请实施例提供的方案,能够在不增加发送数据包的情况下,提高音频数据传输的抗丢包性能。

Description

音频数据的发送方法、接收方法、装置、终端及存储介质
技术领域
本申请实施例涉及音频编解码技术领域,特别涉及一种音频数据的发送方法、接收方法、装置、终端及存储介质。
背景技术
随着网络技术的发展,终端间可以实现以网络为载体的实时语音通信,由于互联网传输时的不可靠性,因此基于互联网传输的音频数据容易发生丢包现象。
目前,抗丢包的方法主要有两种分别为前向纠错(Forward Error Correction,FEC)和自动重发请求(Automatic Repeat-reQuest,ARQ)。相关技术中主要运用带外FEC或者带外FEC+ARQ模式来对抗网络传输过程中的丢包问题。
然而,在使用上述方法实现抗丢包时,不论是带外FEC还是带外FEC+ARQ都需要增加发送数据包的数量,而额外发送的数据包会占用一部分带宽,影响音频传输的码率。
发明内容
本申请实施例提供了一种音频数据的发送方法、接收方法、装置、终端及存储介质,能够在不增加发送数据包的情况下,提高音频数据传输的抗丢包性能。所述技术方案如下:
一方面,本申请实施例提供了一种音频数据的发送方法,所述方法包括:
对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;
基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率;
向音频接收端发送所述第n音频数据包。
另一方面,本申请实施例提供了一种音频数据的发送装置,所述装置包括:
编码模块,用于对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;
打包模块,用于基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率;
第一发送模块,用于向音频接收端发送所述第n音频数据包。
另一方面,本申请实施例提供了一种音频数据的接收方法,所述方法包括:
接收音频发送端发送的第n音频帧对应的第n音频数据包,所述第n音频数据包基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率,m为大于等于2的整数;
基于所述第n音频数据包,以及所述第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,所述目标历史音频帧为所述第n音频帧之前的音频帧;
对所述目标历史音频帧的历史编码数据进行解码,得到所述目标历史音频帧。
另一方面,本申请实施例提供了一种音频数据的接收装置,所述装置包括:
第一接收模块,用于接收音频发送端发送的第n音频帧对应的第n音频数据包,所述第n音频数据包基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率,m为大于等于2的整数;
获取模块,用于基于所述第n音频数据包,以及所述第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,所述目标历史音频帧为所述第n音频帧之前的音频帧;
解码模块,用于对所述目标历史音频帧的历史编码数据进行解码,得到所述目标历史音频帧。
另一方面,本申请实施例提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请各个方面提供的音频数据的发送方法,或,音频数据的接收方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请各个方面提供的音频数据的发送方法,或,音频数据的接收方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现上述方面所述的音频数据的发送方法,或,实现上述方面所述的音频数据的接收方法。
本申请实施例提供的技术方案带来的有益效果至少可以包括:
本申请实施例中,音频发送端通过对当前音频帧进行m级音频编码,得到不同码率的编码数据,将当前音频帧的高码率编码数据以及历史音频帧的低码率编码数据共同打包至音频数据包中,并将该音频数据包发送至音频接收端;采用上述音频编码以及数据打包方式,即便第n音频帧对应的第n音频数据包在传输过程中丢失,音频接收端也能够从第n音频数据包之后的音频数据包中获取第n音频帧的低码率编码数据,从而解码得到第n音频帧,提高了音频数据传输过程中的抗丢包能力;并且,音频发送端通过生成包含编码数据的音频数据包即可实现抗丢包,无需生成并传输额外的冗余包,避免冗余包传输占用音频数据的传输带宽,有助于提高音频数据的传输码率。
附图说明
为了更清楚地介绍本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本申请一个实施例提供的实施环境的示意图;
图2是本申请一个实施例提供的音频数据的发送方法的流程图;
图3是本申请一个实施例提供的音频数据传输流程的实施示意图;
图4是本申请另一个实施例提供的音频数据的发送方法的流程图;
图5是本申请一个实施例示出的音频编码以及打包过程的实施示意图;
图6是本申请一个实施例示出的音频数据包的示意图;
图7是本申请一个实施例示出的带外FEC工作原理的示意图;
图8是本申请一个实施例输出的重发传输模式工作原理的示意图;
图9是本申请一个实施例提供的音频数据的接收方法的流程图;
图10是本申请另一个实施例提供的音频数据的接收方法的流程图;
图11是本申请一个实施例示出的音频数据解码过程的实施示意图;
图12是本申请一个实施例提供的Opus在不同码率不同丢包率下抗丢包表现的示意图;
图13是本申请一个实施例提供的不同级别编码的抗丢包率的示意图;
图14是本申请一个实施例提供的带内FEC下抗丢包表现的示意图;
图15是本申请一个实施例提供的一级编码和带外FEC结合的方法在不同丢包率下抗丢包表现的示意图;
图16是本申请一个实施例提供的二级编码和带外FEC结合的方法在不同丢包率下抗丢包表现的示意图;
图17是本申请一个实施例提供的三级编码和带外FEC结合的方法在不同丢包率下抗丢包表现的示意图;
图18是本申请一个实施例提供的不同传输方法在丢包率为70%下抗丢包表现的示意图;
图19是本申请一个实施例提供的带外FEC和重发模式在不同丢包率下抗丢包表现的示意图;
图20是本申请一个实施例提供的二级编码和opus编码器在不同丢包率下抗丢包表现的示意图;
图21是本申请一个实施例提供的离线模式,网络总带宽91200bps下不同音频数据传输方案在不同丢包率下抗丢包表现的示意图;
图22是本申请一个实施例提供的离线模式,网络总带宽331200bps下不同音频数据传输方案在不同丢包率下抗丢包表现的示意图;
图23是本申请一个实施例提供的音频数据的发送装置的框图;
图24是本申请一个实施例提供的音频数据的接收装置的框图;
图25是本申请一个实施例提供的终端的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
如图1所示,其示出了本申请一个实施例提供的实施环境的示意图。该实施环境中包括第一终端110、第二终端120和服务器130。
其中,第一终端110和第二终端120都是具有音视频通话功能的电子设备,该电子设备可以是智能手机、平板电脑、智能手表、个人计算机等。并且,在实现音视频通话过程中,如果是双方通信,终端的个数为两个,如果为多方通信,终端的个数就为多个,本申请实施例对第一终端110和第二终端120的具体类型和数量不做限定。
第一终端110和第二终端120的音视频通话功能可以通过具有音视频通话功能的应用程序来实现,该应用程序可以是即时通信应用、直播类应用、社交类应用等,本申请实施例对应用程序的具体类型不做限定。
服务器130是应用程序的后台服务器,用于为应用程序提供音视频通话服务,其可以是一台服务器,若干台服务器构成的服务器集群或云计算中心。在一些实施例中,服务器130用于为终端之间提供通话呼叫、通话建立以及音视频数据传输服务。
在一种可能的应用场景下,第一终端110可以通过服务器130向第二终端120发送音视频通话请求,在接收到第一终端110发出的音视频通话请求之后,第二终端120通过服务器130向第一终端110发送接受应答,服务器130即在第一终端110和第二终端120之间建立音视频通话的数据通道,从而通过该数据通道进行音视频数据传输。
通过数据通道进行音频数据传输时,第一终端110首先会对采集到的音频数据进行一些预处理,如:回声消除,降噪,自动增益等,然后对处理完的音频数据进行编码,形成编码数据,再将编码数据打包生成音频数据包,进而通过服务器130将音频数据包转发至第二终端120。
第二终端120在接收到第一终端110发送的音频数据包后,会按照接收到音频数据包的顺序对音频数据包进行解码,最终基于解码得到的音频数据,通过麦克风进行音频播放。
需要说明的是,上述实施例仅以第一终端110为音频发送端,第二终端120为音频接收端为例进行说明,在音视频通话过程中,第一终端110也可以作为音频接收端,第二终端120也可以作为音频发送端,本实施例在此不再赘述。并且,为了方便表述,下述各个实施例中,以音频数据的发送方法由音频发送端执行,以音频数据的接收方法由音频接收端执行进行说明。
如图2所示,其示出了本申请一个实施例提供的音频数据的发送方法的流程图,本实施例以该方法用于图1所示实施环境中的音频发送端进行说明,该方法可以包括如下步骤。
步骤201,对第n音频帧进行m级音频编码,得到第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数。
在一种可能的实施方式中,音频发送端通过麦克风一类的音频采集设备进行音频采集,再对采集到的音频进行回声消除、降噪、自动增益等预处理,进而对预处理后的音频帧进行音频编码。
不同于相关技术中仅对音频帧进行单次编码,本申请实施例中,音频发送端采用多级低码率冗余(Low Bitrate Reduction)编码技术,对同一音频帧进行m级音频编码,得到不同码率的m级编码数据。其中,m级编码数据中,第一级编码数据的码率最高,其他级别的编码数据的码率依次降低,相应的,各级编码数据经过音频解码还原后,还原质量依次降低。
在一种可能的实施方式中,音频发送端对音频帧进行多级音频编码时,使用相同编码算法以及不同编码码率对音频帧进行多次编码,得到多级编码数据。当然,音频发送端也可以采用不同编码算法对音频帧进行多级编码,本实施例对此不作限定。
示意性的,当音频发送端对第n音频帧进行3级音频编码时,在编码完成后,可以得到3级编码数据,分别表示为n,n',n”,其中,n的码率>n'的码率>n”的码率。
步骤202,基于第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,第n音频数据包中第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率。
完成音频编码之后,音频发送端需要对编码数据进行打包,从而以音频数据包的形式进行音频数据传输。相关技术中,音频发送端进行数据打包时,仅将当前音频帧对应的音频数据打包至音频数据包,若当前音频帧对应的音频数据包在传输过程中丢失,音频接收端将无法还原出该音频帧。
而本申请实施例中,由于在编码阶段生成了多级低码率冗余编码数据,因此为了提高音频传输过程的抗丢包能力,音频发送端除了将第n音频帧对应的编码数据打包至第n音频数据包外,还会将第n音频帧之间历史音频帧对应的历史编码数据打包至第n音频数据包,即第n音频数据包中同时包含连续多帧音频帧的编码数据。
在一些实施例中,第n音频数据包内第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率,即优先保证当前音频帧的质量。
采用这种打包方式,在第n音频数据包发生丢包时,由于后续若干音频帧的音频数据包中包含第n音频帧的低码率编码数据,因此音频接收端可以基于后续接收到的音频数据包恢复出第n音频帧,达到了提高音频数据传输过程中的抗丢包性能。
示意性的,如上所述,当音频发送端对第n音频帧进行3级音频编码时,
在编码完成后,音频发送端得到3个编码完成的编码数据,可以表示为n,n',n”。第n音频帧之前的第k音频帧和第t音频帧同样经过3级音频编码,得到的编码数据可以表示为(k,k',k”)和(t,t',t”),在对第n音频帧的编码数据进行打包时,音频发送端对本次编码得到的编码数据n、历史编码数据k'以及t”进行打包,得到第n音频数据包。在后续音频传输时,如果第k音频数据包出现丢包的情况,可以根据第n音频数据包中的冗余编码数据k'对第k音频帧进行解码还原。虽然通过冗余编码数据k'解码恢复出来的音频质量稍低,但是能够避免音频数据包丢失导致音频无法恢复的问题。
步骤203,向音频接收端发送第n音频数据包。
完成音频数据打包后,音频发送端向音频接收端按序发送音频数据包,保证音频接收端后续音频解码的时序准确性。
需要说明的是,在音视频通话场景下,音频发送端还需要对音频数据包以及视频数据包进行时间戳对齐,从而保证音频接收端解码后的音画同步性,本实施例在此不作赘述。
可选的,音频发送端除了通过上述编码方式提高音频传输的抗丢包性能外,还可以集合传输策略进一步提高抗丢包性能。示意性的,如图3所示,音频发送端采集到音频数据后,对音频数据进行回声消除、降噪以及自动增益,然后采用多级低码率冗余编码方式对音频帧进行音频编码,并打包得到音频数据包后,可以结合带外FEC、重发等传输方式进行数据传输。相应的,音频接收到通过网络接收到传输的数据后,基于与编码策略对应的解码策略对音频数据包中的编码数据进行解码,并对解码得到音频进行后处理,最终对后处理后的音频进行播放。
综上所述,本申请实施例中,音频发送端通过对当前音频帧进行m级音频编码,得到不同码率的编码数据,将当前音频帧的高码率编码数据以及历史音频帧的低码率编码数据共同打包至音频数据包中,并将该音频数据包发送至音频接收端;采用上述音频编码以及数据打包方式,即便第n音频帧对应的第n音频数据包在传输过程中丢失,音频接收端也能够从第n音频数据包之后的音频数据包中获取第n音频帧的低码率编码数据,从而解码得到第n音频帧,提高了音频数据传输过程中的抗丢包能力;并且,音频发送端通过生成包含编码数据的音频数据包即可实现抗丢包,无需生成并传输额外的冗余包,避免冗余包传输占用音频数据的传输带宽,有助于提高音频数据的传输码率。
在音频数据传输的过程中,音频数据经由编码和打包生成的音频数据包需要按照一定的码率进行传输。本申请实施例中,由于传输的音频数据包中不仅包含当前帧的编码数据,还包含了历史音频帧的历史编码数据,而历史编码数据需要占用一定带宽,因此音频发送端需要根据所需打包的历史编码数据的码率,实时确定当前音频帧的编码码率。下面采用示例性的实施例进行说明。
如图4所示,其示出了本申请另一个实施例提供的音频数据的发送方法的流程图,该方法可以包括如下步骤:
步骤401,确定m-1级历史编码数据的占用码率,该m-1级历史编码数据从第n音频帧之前m-1帧历史音频帧的历史编码数据中确定得到。
在一种可能的实施方式中,当每一帧音频帧均经过m级音频编码时,音频发送端生成的音频数据包中包含当前音频帧对应的编码数据外,还包含之前m-1帧历史音频帧的历史编码数据,因此,在对第n音频帧进行编码之前,音频发送端需要获取m-1帧历史音频帧的m-1级历史编码数据,以便基于m-1级历史编码数据确定第n帧音频帧的编码码率。
在一种可能的实施方式中,对于第n-j帧音频帧,音频发送端需要将第n-j帧音频帧的第j+1级历史编码数据打包至第n音频数据包中,其中,j为小于等于m-1的正整数。相应的,生成的第n音频数据包中,第n音频帧对应编码数据的码率至第n-m+1音频帧对应编码数据的码率依次下降。
可选的,音频发送端设置有历史音频数据库,该历史音频数据库中用于存储历史音频帧的历史编码数据。在对第n音频帧进行编码前,音频发送端即从该历史音频数据库中获取m-1级历史编码数据,并确定m-1级历史编码数据的占用码率。
示意性的,如图5所示,当对第n音频帧进行3级编码时,需要从历史音频数据库中获取第n-1音频帧对应的第二级编码数据n-1',以及第n-2音频帧对应的第三级编码数据n-2”,并计算第二级编码数据n-1'以及第三级编码数据n-2”各自的占用码率。
步骤402,基于传输码率以及占用码率,确定对第n音频帧进行编码时的目标码率。
由于音频发送端需要以一定的传输码率进行音频传输,而编码后生成的音频数据包内不仅包括当前帧的编码数据,还包括之前历史音频帧的历史编码数据,所以音频发送端需要根据设定的传输码率和历史编码数据的占用码率,计算出第n音频帧编码时的目标码率(即可用码率)。
其中,目标码率=传输码率-占用码率。比如,当传输码率为100kbps,第n-1音频帧对应第二级编码数据n-1'的占用码率为10kbps,第n-2音频帧对应第二级编码数据n-2”的占用码率为5kbps时,音频发送端设备确定第n音频帧的目标码率为100-10-5=85kbps。
示意性的,如图5所示,音频发送端根据设定的传输码率和历史编码数据n-1'以及n-2”的占用码率,计算出第n音频帧编码时的目标码率。
步骤403,对第n音频帧进行m级音频编码,得到第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数。
进一步的,音频发送端基于确定出的目标码率对第n音频帧进行m级音频编码,得到m级编码数据,其中,对第n音频帧进行第一级音频编码时采用目标码率,即编码得到的第一级编码数据为目标码率;而对第n音频帧进行后续m-1级音频编码时采用的编码码率依次降低,且均低于目标码率。
示意性的,如图5所示,音频发送端对第n音频帧进行3级编码,得到(目标码率的)第一级编码数据n,第二级编码数据n'以及第三级编码数据n”。
步骤404,从第n音频帧的m级编码数据中,获取第n音频帧的第一级编码数据,其中,第i级编码数据的码率高于第i+1级编码数据的码率,i为小于m的正整数。
为了优先保证当前音频帧对应编码数据的编码质量,音频发送端将第n音频帧的第一级编码数据确定为需要打包至第n音频数据包的编码数据,而其余m-1级编码数据则用于被打包至后续音频数据包,以在第n音频数据包丢包时,利用后续音频数据包中第n音频帧的低码率编码数据进行音频恢复。
示意性的,如图5所示,音频发送端获取第n音频帧的第一级编码数据n,用于后续生成第n音频数据包。
步骤405,从第n音频帧之前m-1帧历史音频帧的历史编码数据中,获取m-1级历史编码数据。
为了使第n音频数据包能够用于恢复前m-1帧音频帧,音频发送端从之前m-1帧历史音频帧的历史编码数据中各获取一级低码率编码数据,并保证获取到的编码数据对应不同音频编码级别,共获得m-1级编码数据。
在一种可能的实施方式中,对于m-1帧历史音频帧中的第n-j帧音频帧,音频发送端从第n-j帧音频帧的历史编码数据中,获取第n-j帧音频帧的第j+1级历史编码数据,即历史音频帧与第n音频帧间隔越大,获取到的低码率编码数据的码率越低,j为小于等于m-1的正整数。
在一些实施例中,音频发送端将历史音频帧的低码率编码数据(即第一级编码数据以外的编码数据)存储在历史音频数据库中,进行音频数据打包时,即从该历史音频数据库中获取历史编码数据。
示意性的,如图5所示,音频发送端从历史音频数据库中获取第n-1音频帧的第二级编码数据n',以及第n-2音频帧的第三级编码数据n”。
步骤406,基于第n音频帧的第一级编码数据以及m-1级历史编码数据,生成第n音频数据包,第n音频数据包包含m种级别的编码数据。
进一步的,音频发送端对第n音频帧的第一级编码数据以及m-1级历史编码数据进行打包,得到第n音频帧对应的第n音频数据包。
示意性的,如图5所示,音频发送端对第n音频帧的第一级编码数据n,第n-1音频帧的第二级编码数据n-1',以及第n-2音频帧的第三级编码数据n-2”进行打包,得到第n音频数据包。
在一个示意性的例子中,如图6所示,当采用3级音频编码时,音频发送端发送的第3音频数据包中包含第3音频帧的第一级编码数据3,第2音频帧的第二级编码数据2',以及第1音频帧的第三级编码数据1”;发送的第4音频数据包中包含第4音频帧的第一级编码数据4,第3音频帧的第二级编码数据3',以及第2音频帧的第三级编码数据2”,以此类推。
可选的,对于第n音频帧对应的其余m-1级编码数据(即第二级至第m级编码数据),音频发送端将第n音频帧的第二级编码数据至第m级编码数据存储至历史音频数据库,以便后续打包过程中添加至音频数据包。
示意性的,如图5所示,对于未打包至音频数据包的编码数据n',n”,音频发送端将这两条编码数据存储至历史音频数据库中,以便对第n音频帧之后音频帧进行打包时取用,对第n音频帧的编码数据进行保护,防止第n音频帧的音频数据包发生丢包时,第n音频帧的音频数据无法恢复的情况。
步骤407,向音频接收端发送第n音频数据包。
本步骤的实施方式可以参考上述步骤203,本实施例在此不再赘述。
本实施例中,当音频帧经过m级音频编码时,音频发送端将第n音频帧对应的第一级编码数据,以及前m-1历史音频帧对应的m-1级历史编码数据打包至第n音频数据包,即便在前m-1个音频数据包丢失的情况下,也能够利用第n音频数据包恢复前m-1帧历史音频帧,提高了音频传输过程中的抗丢包性能。
为了进一步提高抗丢包性能,除了向音频接收端发送音频数据包外,音频发送端还可以基于音频数据包生成FEC数据包,从而在发送音频数据包后,通过带外方式发送FEC数据包。在一种可能的实施方式,该过程可以包括如下步骤。
1、对生成的音频数据包进行分组,得到音频数据包组,音频数据包组中包含至少两个连续的音频数据包。
生成音频数据包后,音频发送端并不会直接将生成的音频数据包发送至音频接收端,而是需要对生成的音频数据包进行分组处理,得到音频数据包组,其中,每个音频数据包组中至少含有两个连续的音频数据包。
示意性的,如图7所示,音频发送端会将连续四帧音频帧对应的音频数据包划分至同一音频数据包组,例如:音频数据包0,1,2,3被划为至同一音频数据包组。
2、基于音频数据包组中的音频数据包生成FEC数据包。
每个音频数据包组中都包含多个音频数据包,在通过带外FEC传输方式进行传输时,首先需要对音频数据包组中的音频数据包进行FEC编码,得到该音频数据包组对应的至少一个FEC数据包。
示意性的,如图7所示,音频发送端基于音频数据包组中的音频数据包0,1,2,3生成第一FEC数据包和第二FEC数据包。
3、向音频接收端串行发送音频数据包组中的音频数据包以及FEC数据包。
在一种可能的实施方式中,音频发送端完成对音频数据包组中音频数据包的传输后,通过串行方式继续将生成的FEC数据包发送至音频接收端。
如果音频接收端在接收音频数据包时发生了丢包情况,就可以基于所属音频数据包组中的其他音频数据包以及FEC数据包,对丢失的音频数据包进行恢复,以便从恢复出的音频数据包中获取编码数据。
示意性的,如图7所示,采用带外FEC传输方式时,若音频数据包1在传输过程中丢包,音频接收端可以根据音频数据包0,2,3以及第一FEC数据包还原出音频数据包1。
在另一种可能的实施方式中,音频发送端发送音频数据包后,可以自动对已发送的历史音频数据包进行重发,以此进一步提高抗丢包性能,该过程可以包括如下步骤。
1、对生成的音频数据包进行分组,得到音频数据包组,音频数据包组中包含至少两个连续的音频数据包。
生成音频数据包后,音频发送端并不会直接将生成的音频数据包发送至音频接收端,而是需要对生成的音频数据包进行分组处理,得到音频数据包组,其中,每个音频数据包组中至少含有两个连续的音频数据包。
示意性的,如图8所示,音频发送端会将连续四帧音频帧对应的音频数据包划分至同一音频数据包组,例如:音频数据包0,1,2,3被划为至同一音频数据包组。
2、向音频接收端发送音频数据包组中的音频数据包,并向音频接收端发送重发音频数据包,重发音频数据包属于音频数据包组。
在一种可能的实施方式中,完成对音频数据包组中音频数据包的传输后,音频发送端可以从该音频数据包组中选取至少一个音频数据包进行自动重发(无需音频接收端发送重发请求)。其中,重发的音频数据包的数量可以由音频发送端基于实时丢包率进行动态调整。
示意性的,如图8所示,音频发送端完成音频数据包0,1,2,3的传输后,选择音频数据包2进行重发。若音频数据包2发生丢包,可以通过重发的重发音频数据包2对丢失的音频数据包2进行恢复,从而降低音频传输过程中音频数据的丢包率。
下面对音频接收端的接收以及解码流程进行说明。
如图9所示,其示出了本申请一个实施例提供的音频数据的接收方法的流程图,本实施例以该方法用于图1所示实施环境中的音频接收端进行说明,该方法可以包括如下步骤。
步骤901,接收音频发送端发送的第n音频帧对应的第n音频数据包,第n音频数据包基于第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且第n音频数据包中第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率,m为大于等于2的整数。
音频接收端会接收到音频发送端发送出的第n音频帧对应的第n音频数据包,第n音频数据包中会包含第n音频帧的m级编码数据当中的一级编码数据,以及第n音频帧之前历史音频帧的历史编码数据。其中,第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据都是经过音频发送端采用多级低码率冗余编码技术编码形成的编码数据,对同一音频帧进行m级音频编码,得到不同码率的m级编码数据。其中,m级编码数据中,第一级编码数据的码率最高,其他级别的编码数据的码率依次降低,相应的,各级编码数据经过音频解码还原后,还原质量依次降低。
需要说明的是,音频接收端接收到的音频数据包都是音频发送端通过上述实施例提供的编码方式编码生成的,并通过上述实施例提供的传输方式发送的,本实施例在此不再赘述。
步骤902,基于第n音频数据包,以及第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,目标历史音频帧为第n音频帧之前的音频帧。
在一种可能的实施方式中,当音频接收端接收到音频数据包时,音频接收端会从第n音频数据包之前接收到的历史音频数据包到第n音频数据包进行逐包查询,查询接收到的音频数据包内是否包括目标历史音频帧的历史编码数据,如果当中某一音频数据包中含有目标历史音频帧的历史编码数据时,从该音频数据包中获取目标历史音频帧的历史编码数据。
可选的,当第n音频数据包之前接收到的历史音频数据包到第n音频数据包中,仅存在一个音频数据包中包含目标历史音频帧的历史编码数据,则将该历史编码数据确定为待解码的编码数据;若存在至少两个音频数据包中包含目标历史音频帧的历史编码数据,则选取编码码率最高的历史编码数据作为待解码的编码数据。
步骤903,对目标历史音频帧的历史编码数据进行解码,得到目标历史音频帧。
音频接收端在获取到目标历史音频的历史编码数据后,会对该历史音频数据进行解码,得到目标历史音频帧的编码数据,之后再对得到的音频数据帧进行后处理,处理完成后通过音频接收端的麦克风等一些扬声器设备对得到的目标历史音频帧的音频数据进行播放。
需要说明的是,在音视频通话场景下,音频发送端还需要对音频数据包以及视频数据包进行时间戳对齐,从而保证音频接收端解码后的音画同步性,本实施例在此不作赘述。
综上所述,本申请实施例中,音频发送端通过对当前音频帧进行m级音频编码,得到不同码率的编码数据,将当前音频帧的高码率编码数据以及历史音频帧的低码率编码数据共同打包至音频数据包中,并将该音频数据包发送至音频接收端;采用上述音频编码以及数据打包方式,即便第n音频帧对应的第n音频数据包在传输过程中丢失,音频接收端也能够从第n音频数据包之后的音频数据包中获取第n音频帧的低码率编码数据,从而解码得到第n音频帧,提高了音频数据传输过程中的抗丢包能力;并且,音频发送端通过生成包含编码数据的音频数据包即可实现抗丢包,无需生成并传输额外的冗余包,避免冗余包传输占用音频数据的传输带宽,有助于提高音频数据的传输码率。
在一种可能的实施方式中,当采用m级音频编码时,音频接收端接收到的音频数据包中包含第n音频帧的编码数据,以及第n音频帧之前m-1帧音频帧的历史编码数据。下面采用示例性的实施例对该实施方式下的音频解码过程进行说明。
如图10所示,其示出了本申请另一个实施例提供的音频数据的接收方法的流程图,具体步骤如下:
步骤1001,接收音频发送端发送的第n音频帧对应的第n音频数据包,第n音频数据包基于第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且第n音频数据包中第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率,m为大于等于2的整数。
步骤1002,基于第n-m+1音频数据包至第n音频数据包,获取第n-m+1音频帧的历史编码数据。
在音频接收端对接收到的第n音频数据包进行处理时,本质上是对第n-m+1音频帧的解码和播放,此时,音频接收端需要获取第n-m+1音频帧的历史编码数据。
由于第n-m+1音频帧的第一级编码数据位于第n-m+1音频数据包中,其余m-1级低码率编码数据位于后续音频数据包中,因此为了保证音频解码还原得到的音频帧的质量,音频接收端需要根据音频数据包的接收顺序获取第n-m+1音频帧的历史编码数据。
在一种可能的实施方式中,音频接收端检测第n-m+k音频数据包是否正确接收,响应于第n-m+k音频数据包正确接收,音频接收端则从第n-m+k音频数据包中获取第n-m+1音频帧的第k级编码数据,k为小于等于m的正整数。
示意性的,如图11所示,音频发送端对音频数据进行3级编码时,第n音频帧的音频数据包中所包含的编码数据为第n音频帧的历史编码数据,第n-1音频帧的历史编码数据和第n-2音频帧的历史编码数据。当对第n音频帧所对应的音频数据包开始处理时,实际上是对第n-2音频帧进行解码和播放。
为了尽可能获取高码率的编码数据,从而提高解码后音频的播放质量,音频接收端首先检测第n-2音频帧对应的音频数据包是否正确接收(因为第n-2音频帧对应的音频数据包中包含第n-2音频帧的第一级编码数据)。若第n-2音频帧对应的音频数据包正确接收,则从中获取第n-2音频帧的第一级编码数据n-2,并进行后续解码。
若第n-2音频帧对应的音频数据包未正确接收,则继续检测第n-1音频帧对应的音频数据包是否正确接收。若第n-1音频帧对应的音频数据包正确接收,则从中获取第n-2音频帧的第二级编码数据n-2',并进行后续解码。
若第n-1音频帧对应的音频数据包未正确接收,则继续检测第n音频帧对应的音频数据包是否正确接收。若第n音频帧对应的音频数据包正确接收,则从中获取第n-2音频帧的第三级编码数据n-2”,并进行后续解码。
当网络传输环境较差时,音频传输过程中的丢包率较高,可能会出现连续多个音频数据包均未被正确接收的情况,导致无法获取音频帧对应的任一级编码数据。在一种可能的实施方式中,响应于第n-m+1音频数据包至第n音频数据包均未正确接收,音频接收端通过PLC进行丢包补偿。
其中,音频接收端可以通过PLC对丢失音频数据包进行丢包补偿,即对丢失部分音频进行平滑处理或者重塑处理,以实现音频的连续播放。
示意性的,如图11所示,当第n-2音频帧、第n-1音频帧以及第n音频帧的音频数据包均未正确接收时,音频接收端无法获取第n-2音频帧的编码数据,此时需要进行PLC丢包补偿,避免出现音频中断。
在一种可能的实施方式中,当音频发送端采用多级编码+带外FEC方式提高抗丢包性能时,音频接收端除了接收到音频数据包外,还会接收到音频发送端发送的FEC数据包,该FEC数据包基于音频数据包组中的音频数据包生成,音频数据包组中包含至少两个连续的音频数据包,且FEC数据包与音频数据包组串行发送,FEC数据包用于恢复音频数据包组中接收失败的音频数据包。
当音频数据包组中的音频数据包接收失败时,音频接收端可以根据正确接收到的音频数据包以及FEC数据包对接收失败的音频数据包进行恢复,进而从恢复出的音频数据包中获取更高码率的编码数据,提高音频解码后的音频播放质量。
在另一种可能的实施方式中,当音频发送端采用多级编码+重发方式提高抗丢包性能时,音频接收端除了接收到音频数据包外,还会接收到音频发送端发送的重发音频数据包,该重发音频数据包在所属音频数据包组中的音频数据包发送完成后,由音频发送端自动重发。
当音频发送端重发的音频数据包正是所属音频数据包组中丢失的音频数据包时,音频接收端可以从重发的音频数据包中获取更高码率的编码数据,提高音频解码后的音频播放质量;当音频数据包组未发生丢包,或丢失的音频数据包并非重发的音频数据包时,音频接收端则丢弃重发的音频数据包。
为了更加清楚的展示本申请实施例和相关技术中技术方案的区别,本申请实施例对音频数据的传输过程做了一些相关的实验,并得出了一些结论。
如图12所示,示出了本申请实施例提供的一个声音编码格式Opus在不同码率不同丢包率下的表现结果。其中横轴为丢包率,纵轴为平均主观意见分,3分为及格分。
结合图12,可以发现在不同码率下,Opus丢包率的表现曲线基本重合;Opus丢包率的表现曲线随着丢包率的上升呈指数形式下降,在丢包率较低的区间,传输音频的音质随丢包率下降的十分迅速;当解码端到达率在95%时,恢复出来的音质还比较清晰,所以可以将解码端到达率为95%作为基础对抗丢包技术方案进行研究。
首先,对相关技术中的带外FEC进行分析,如图13所示,带外FEC采用4包冗余包为一组,横轴是每组添加的冗余包个数,纵轴是解码端到达率。计算发现,当丢包率为10%时,带外FEC只需要加一个冗余包就能满足要求,级解码端到达率达到95%以上;当丢包率为50%时,即使增加8个冗余包,解码端到达率仍然没有达到95%以上。
本申请实施例中所提供的编码方式,可以通过提升编码的级数来提升抗性,提升编码的级数会增加冗余,但不会增加发送包数。如图14所示,示出了本申请实施例提供的多级编码在不同级别编码时所能达到的抗丢包率。
从图14中可以看出二级编码可以抵抗丢包率为22%丢包情景,三级编码可以抵抗丢包率为36%丢包情景,四级编码可以抵抗丢包率为47%丢包情景。
综上,本申请实施例提供的编码方式对丢包率的抗性随着编码级数的增加而增加。
本申请实施例还对不同级别编码和带外FEC的结合时,所需要添加的冗余包的数量作了如下分析,如图15,图16,图17所示,分别表示了二、三、四级编码结合带外FEC时需要添加冗余包的数量。
不同级别编码方式结合带外FEC时,所需冗余包数量如下表一所示:
表一
Figure BDA0003234091060000181
本申请实施例还对相关技术方案中提供的音频数据传输方法和本申请实施例当中提供的传输方法进行了如下分析,其结果如图18所示。
从图18中可以知道,四级编码和重发结合的传输方式,经过计算可知,在丢包率为70%这样的高丢包场景下,相关技术中目前普遍采用的带外FEC,在加入八个冗余包的情况下,仍然远远不能达到解码端到达率为95%的目标。而表现最好的是四级编码和重发结合的方案,每组(四包语音)重发四包(相当于对编码数据增加100%冗余),就差不多能达到95%解码端到达率的目标。
此外,需要说明的是,重发语音包与发送带外FEC包的包头是不一样的,带外FEC包一般会有更大的包头。
综上所述,在丢包率为70%的情况下,四级编码和重发结合的方案是抗丢包效果最好的方案,且该方案还具有不需要应答,延时更短,传输逻辑更简单等优点。
通过上述实验及试验结果,可知多级编码结合重发后效果显著,为了验证纯粹的重发模式的效果是否高于带外FEC的传输效果,本申请实施例对二者进行了实验分析,其结果如图19所示。
结合图19,可以得知在丢包率(40%以下)较低的情况下,带外FEC的抗丢包效果总是高于重发模式。当丢包率为40%,冗余包数量为1时,重发模式的抗丢包效果高于带外FEC,从冗余包数量为2开始,带外FEC的抗丢包效果要高于重发,随着丢包率继续上升,在冗余包数量较少时重发模式的效果更好。
所以,在低丢包率下带外FEC具有优势。对于高丢包率,虽然重发带来更高的解码端到达率,但是因为远远没有达到95%红线,两种方法的音质都不会好。综上,如果重发模式没有结合其他抗丢包方法,则带外FEC是优选的传输方案。
为了验证多级编码和Opus编码器内部FEC的抗丢包性能,本申请实施例对此也进行了实验分析,其结果如图19所示。
结合图20,可知在相同码率,相同丢包率下,Opus(不开FEC),Opus原生FEC,三级编码的实测对比,三级编码在各个丢包率下的表现都好于Opus原生FEC。
为了保证实验数据的充分和完整,本申请实施例还在离线模式下对上述方案进行了实验和分析,第一次是在网络总带宽为91200bps下不同方案的对比结果,如图21所示。
结合图21可知,在总码率为91200bps,三级编码的表现最好,此时三级编码和带外FEC结合的传输方式因为编码器分配到的核心码率太低,表现略逊色于三级编码。
第二次是在网络总带宽331200bps不同方案的对比结果,如图22所示。
结合图22可知,在总码率为331200bps时,三级编码,虽然码率足够,但是编码的级数不够,所以表现不好。带外FEC,在丢包率低的情况下因为可以将解码端到达率提升到很高,所以与组合方案得分接近。三级编码和带外FEC结合的方案在丢包率较高的情况下,整体达到的抗丢包效果最好。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图23,其示出了本申请一个示例性实施例提供的音频数据的发送装置的结构框图。该装置包括:
编码模块2301,用于对第n音频帧进行m级音频编码,得到第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;
打包模块2302,用于基于第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,第n音频数据包中第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率;
第一发送模块2303,用于向音频接收端发送第n音频数据包。
可选的,打包模块2302包括:
第一获取单元,用于从第n音频帧的m级编码数据中,获取第n音频帧的第一级编码数据,其中,第i级编码数据的码率高于第i+1级编码数据的码率,i为小于m的正整数;
第二获取单元,用于从第n音频帧之前m-1帧历史音频帧的历史编码数据中,获取m-1级历史编码数据;
打包单元,用于基于第n音频帧的第一级编码数据以及m-1级历史编码数据,生成第n音频数据包,第n音频数据包包含m种级别的编码数据。
第二获取单元还用于:
从第n-j帧音频帧的历史编码数据中,获取第n-j帧音频帧的第j+1级历史编码数据,j为小于等于m-1的正整数。
可选的,装置包括:
第一确定模块,用于确定m-1级历史编码数据的占用码率;
第二确定模块,用于基于传输码率以及占用码率,确定对第n音频帧进行编码时的目标码率;
编码模块2301,包括:
编码单元,用于基于目标码率对第n音频帧进行m级音频编码,得到第n音频帧的m级编码数据,其中,第n音频帧的第一级编码数据为目标码率,且其他级编码数据的码率小于目标码率。
可选的,第一确定模块,包括:
确定单元,用于从历史音频数据库中,获取m-1级历史编码数据,并确定m-1级历史编码数据的占用码率;
可选的,装置还包括:
存储模块,用于将第n音频帧的第二级编码数据至第m级编码数据存储至历史音频数据库。
可选的,装置还包括:
第一分组模块,用于对生成的音频数据包进行分组,得到音频数据包组,音频数据包组中包含至少两个连续的音频数据包;
生成模块,用于基于音频数据包组中的音频数据包生成前向纠错FEC数据包;
第二发送模块,用于向音频接收端串行发送音频数据包组中的音频数据包以及FEC数据包。
可选的,装置还包括:
第二分组模块,用于对生成的音频数据包进行分组,得到音频数据包组,音频数据包组中包含至少两个连续的音频数据包;
第三发送模块,用于向音频接收端发送音频数据包组中的音频数据包,并向音频接收端发送重发音频数据包,重发音频数据包属于音频数据包组。
请参考图24,其示出了本申请一个示例性实施例提供的音频数据的接收装置的结构框图。该装置包括:
第一接收模块2401,用于接收音频发送端发送的第n音频帧对应的第n音频数据包,第n音频数据包基于第n音频帧的m级编码数据,以及第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且第n音频数据包中第n音频帧对应编码数据的码率高于历史音频帧对应历史编码数据的码率,m为大于等于2的整数;
获取模块2402,用于基于第n音频数据包,以及第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,目标历史音频帧为第n音频帧之前的音频帧;
解码模块2403,用于对目标历史音频帧的历史编码数据进行解码,得到目标历史音频帧。
可选的,获取模块2402,包括:
获取单元,用于基于第n-m+1音频数据包至第n音频数据包,获取第n-m+1音频帧的历史编码数据。
可选的,获取单元,还用于:
响应于第n-m+k音频数据包正确接收,从第n-m+k音频数据包中获取第n-m+1音频帧的第k级编码数据,k为小于等于m的正整数。
可选的,装置还包括:
补偿模块,用于响应于第n-m+1音频数据包至第n音频数据包均未正确接收,通过PLC进行丢包补偿。
可选的,装置还包括:
第二接收模块,用于接收音频发送端发送的前向纠错FEC数据包,FEC数据包基于音频数据包组中的音频数据包生成,音频数据包组中包含至少两个连续的音频数据包,且FEC数据包与音频数据包组串行发送,FEC数据包用于恢复音频数据包组中接收失败的音频数据包。
可选的,装置还包括:
第三接收模块,用于接收音频发送端发送的重发音频数据包,重发音频数据包在所属音频数据包组中的音频数据包发送完成后,由音频发送端自动重发。
请参考图25,其示出了本申请一个示例性实施例提供的终端2500的结构框图。该终端2500可以是便携式移动终端,比如:智能手机、平板电脑、MP3播放器(Moving PictureExperts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(MovingPicture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器。终端2500还可能被称为用户设备、便携式终端等其他名称。
通常,终端2500包括有:处理器2501和存储器2502。
处理器2501可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器2501可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器2501也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器2501可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器2501还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器2502可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器2502还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器2502中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器2501所执行以实现本申请实施例提供的音频数据的发送方法,或,音频数据的接收方法。
在一些实施例中,终端2500还可选包括有:外围设备接口2503和至少一个外围设备。具体地,外围设备包括:射频电路2504、触摸显示屏2505、摄像头2506、音频电路2507、定位组件2508和电源2509中的至少一种。
外围设备接口2503可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器2501和存储器2502。在一些实施例中,处理器2501、存储器2502和外围设备接口2503被集成在同一芯片或电路板上;在一些其他实施例中,处理器2501、存储器2502和外围设备接口2503中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路2504用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路2504通过电磁信号与通信网络以及其他通信设备进行通信。射频电路2504将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路2504包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路2504可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路2504还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
触摸显示屏2505用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。触摸显示屏2505还具有采集在触摸显示屏2505的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器2501进行处理。触摸显示屏2505用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,触摸显示屏2505可以为一个,设置终端2500的前面板;在另一些实施例中,触摸显示屏2505可以为至少两个,分别设置在终端2500的不同表面或呈折叠设计;在再一些实施例中,触摸显示屏2505可以是柔性显示屏,设置在终端2500的弯曲表面上或折叠面上。甚至,触摸显示屏2505还可以设置成非矩形的不规则图形,也即异形屏。触摸显示屏2505可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件2506用于采集图像或视频。可选地,摄像头组件2506包括前置摄像头和后置摄像头。通常,前置摄像头用于实现视频通话或自拍,后置摄像头用于实现照片或视频的拍摄。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能,主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能。在一些实施例中,摄像头组件2506还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路2507用于提供用户和终端2500之间的音频接口。音频电路2507可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器2501进行处理,或者输入至射频电路2504以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端2500的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器2501或射频电路2504的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路2507还可以包括耳机插孔。
定位组件2508用于定位终端2500的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件2508可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
电源2509用于为终端2500中的各个组件进行供电。电源2509可以是交流电、直流电、一次性电池或可充电电池。当电源2509包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端2500还包括有一个或多个传感器2510。该一个或多个传感器2510包括但不限于:加速度传感器2511、陀螺仪传感器2512、压力传感器2513、指纹传感器2514、光学传感器2515以及接近传感器2516。
加速度传感器2511可以检测以终端2500建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器2511可以用于检测重力加速度在三个坐标轴上的分量。处理器2501可以根据加速度传感器2511采集的重力加速度信号,控制触摸显示屏2505以横向视图或纵向视图进行用户界面的显示。加速度传感器2511还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器2512可以检测终端2500的机体方向及转动角度,陀螺仪传感器2512可以与加速度传感器2511协同采集用户对终端2500的3D动作。处理器2501根据陀螺仪传感器2512采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器2513可以设置在终端2500的侧边框和/或触摸显示屏2505的下层。当压力传感器2513设置在终端2500的侧边框时,可以检测用户对终端2500的握持信号,根据该握持信号进行左右手识别或快捷操作。当压力传感器2513设置在触摸显示屏2505的下层时,可以根据用户对触摸显示屏2505的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器2514用于采集用户的指纹,以根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器2501授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器2514可以被设置终端2500的正面、背面或侧面。当终端2500上设置有物理按键或厂商Logo时,指纹传感器2514可以与物理按键或厂商Logo集成在一起。
光学传感器2515用于采集环境光强度。在一个实施例中,处理器2501可以根据光学传感器2515采集的环境光强度,控制触摸显示屏2505的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏2505的显示亮度;当环境光强度较低时,调低触摸显示屏2505的显示亮度。在另一个实施例中,处理器2501还可以根据光学传感器2515采集的环境光强度,动态调整摄像头组件2506的拍摄参数。
接近传感器2516,也称距离传感器,通常设置在终端2500的正面。接近传感器2516用于采集用户与终端2500的正面之间的距离。在一个实施例中,当接近传感器2516检测到用户与终端2500的正面之间的距离逐渐变小时,由处理器2501控制触摸显示屏2505从亮屏状态切换为息屏状态;当接近传感器2516检测到用户与终端2500的正面之间的距离逐渐变大时,由处理器2501控制触摸显示屏2505从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图25中示出的结构并不构成对终端2500的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例中,还提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如上述方面所述的音频数据的发送方法,或,音频数据的接收方法。
根据本申请的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现上述各个实施例所述的音频数据的发送方法,或,实现上述各个实施例所述的音频数据的接收方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (15)

1.一种音频数据的发送方法,其特征在于,所述方法包括:
对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;
基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率;
向音频接收端发送所述第n音频数据包。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,包括:
从所述第n音频帧的m级编码数据中,获取所述第n音频帧的第一级编码数据,其中,第i级编码数据的码率高于第i+1级编码数据的码率,i为小于m的正整数;
从所述第n音频帧之前m-1帧历史音频帧的历史编码数据中,获取m-1级历史编码数据;
基于所述第n音频帧的第一级编码数据以及所述m-1级历史编码数据,生成所述第n音频数据包,所述第n音频数据包包含m种级别的编码数据。
3.根据权利要求2所述的方法,其特征在于,所述从所述第n音频帧之前m-1帧历史音频帧的历史编码数据中,获取m-1级历史编码数据,包括:
从第n-j帧音频帧的历史编码数据中,获取所述第n-j帧音频帧的第j+1级历史编码数据,j为小于等于m-1的正整数。
4.根据权利要求2所述的方法,其特征在于,所述对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据之前,所述方法包括:
确定所述m-1级历史编码数据的占用码率;
基于传输码率以及所述占用码率,确定对所述第n音频帧进行编码时的目标码率;
所述对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,包括:
基于所述目标码率对所述第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,所述第n音频帧的第一级编码数据为所述目标码率,且其他级编码数据的码率小于所述目标码率。
5.根据权利要求4所述的方法,其特征在于,所述确定所述m-1级历史编码数据的占用码率,包括:
从历史音频数据库中,获取所述m-1级历史编码数据,并确定所述m-1级历史编码数据的所述占用码率;
所述对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据之后,所述方法是还包括:
将所述第n音频帧的第二级编码数据至第m级编码数据存储至所述历史音频数据库。
6.根据权利要求1至5任一所述的方法,其特征在于,所述基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包之后,所述方法还包括:
对生成的音频数据包进行分组,得到音频数据包组,所述音频数据包组中包含至少两个连续的音频数据包;
基于所述音频数据包组中的音频数据包生成前向纠错FEC数据包;
向所述音频接收端串行发送所述音频数据包组中的音频数据包以及所述FEC数据包。
7.根据权利要求1至5任一所述的方法,其特征在于,所述基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包之后,所述方法还包括:
对生成的音频数据包进行分组,得到音频数据包组,所述音频数据包组中包含至少两个连续的音频数据包;
向所述音频接收端发送所述音频数据包组中的音频数据包,并向所述音频接收端发送重发音频数据包,所述重发音频数据包属于所述音频数据包组。
8.一种音频数据的接收方法,其特征在于,所述方法包括:
接收音频发送端发送的第n音频帧对应的第n音频数据包,所述第n音频数据包基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率,m为大于等于2的整数;
基于所述第n音频数据包,以及所述第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,所述目标历史音频帧为所述第n音频帧之前的音频帧;
对所述目标历史音频帧的历史编码数据进行解码,得到所述目标历史音频帧。
9.根据权利要求8所述的方法,其特征在于,所述第n音频数据包中包含取所述第n音频帧的第一级编码数据,以及所述第n音频帧之前m-1帧历史音频帧的m-1级历史编码数据;
所述基于所述第n音频数据包,以及所述第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,包括:
基于第n-m+1音频数据包至第n音频数据包,获取第n-m+1音频帧的历史编码数据。
10.根据权利要求9所述的方法,其特征在于,所述基于第n-m+1音频数据包至第n音频数据包,获取第n-m+1音频帧的历史编码数据,包括:
响应于第n-m+k音频数据包正确接收,从所述第n-m+k音频数据包中获取所述第n-m+1音频帧的第k级编码数据,k为小于等于m的正整数。
11.一种音频数据的发送装置,其特征在于,所述装置包括:
编码模块,用于对第n音频帧进行m级音频编码,得到所述第n音频帧的m级编码数据,其中,不同级别的编码数据对应不同码率,m为大于等于2的整数;
打包模块,用于基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据,生成第n音频数据包,所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率;
第一发送模块,用于向音频接收端发送所述第n音频数据包。
12.一种音频数据的接收装置,其特征在于,所述装置包括:
第一接收模块,用于接收音频发送端发送的第n音频帧对应的第n音频数据包,所述第n音频数据包基于所述第n音频帧的m级编码数据,以及所述第n音频帧之前历史音频帧的历史编码数据得到,其中,不同级别的编码数据对应不同码率,且所述第n音频数据包中所述第n音频帧对应编码数据的码率高于所述历史音频帧对应历史编码数据的码率,m为大于等于2的整数;
获取模块,用于基于所述第n音频数据包,以及所述第n音频数据包之前接收到的历史音频数据包,获取目标历史音频帧的历史编码数据,所述目标历史音频帧为所述第n音频帧之前的音频帧;
解码模块,用于对所述目标历史音频帧的历史编码数据进行解码,得到所述目标历史音频帧。
13.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7任一所述的音频数据的发送方法,或,实现如权利要求8至10一所述的音频数据的接收方法。
14.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至7任一所述的音频数据的发送方法,或,实现如权利要求8至10一所述的音频数据的接收方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令被处理器执行时实现权利要求如1至7任一所述的音频数据的发送方法,或,实现如权利要求8至10任一所述的音频数据的接收方法。
CN202110995981.8A 2021-08-27 2021-08-27 音频数据的发送方法、接收方法、装置、终端及存储介质 Active CN114301884B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110995981.8A CN114301884B (zh) 2021-08-27 2021-08-27 音频数据的发送方法、接收方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110995981.8A CN114301884B (zh) 2021-08-27 2021-08-27 音频数据的发送方法、接收方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN114301884A true CN114301884A (zh) 2022-04-08
CN114301884B CN114301884B (zh) 2023-12-05

Family

ID=80963878

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110995981.8A Active CN114301884B (zh) 2021-08-27 2021-08-27 音频数据的发送方法、接收方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN114301884B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025717A (zh) * 2010-09-10 2011-04-20 香港城市大学深圳研究院 一种传输多媒体数据的方法
WO2014071766A1 (zh) * 2012-11-07 2014-05-15 中兴通讯股份有限公司 音频多编码传输方法及相应装置
CN105847182A (zh) * 2016-04-18 2016-08-10 武汉烽火众智数字技术有限责任公司 一种音视频系统中音频优先传输方法及其系统
WO2017157303A1 (zh) * 2016-03-15 2017-09-21 中兴通讯股份有限公司 实时通信中的抗丢包方法、装置和系统
CN109524015A (zh) * 2017-09-18 2019-03-26 杭州海康威视数字技术股份有限公司 音频编码方法、解码方法、装置及音频编解码系统
CN110740334A (zh) * 2019-10-18 2020-01-31 福州大学 一种帧级别的应用层动态fec编码方法
CN110830819A (zh) * 2019-11-19 2020-02-21 聚好看科技股份有限公司 编码、解码方法、编码端和解码端
CN111128203A (zh) * 2020-02-27 2020-05-08 北京达佳互联信息技术有限公司 音频数据编码、解码方法、装置、电子设备及存储介质
CN111193966A (zh) * 2019-12-25 2020-05-22 北京佳讯飞鸿电气股份有限公司 音频数据传输方法、装置、计算机设备及存储介质
CN112769524A (zh) * 2021-04-06 2021-05-07 腾讯科技(深圳)有限公司 语音传输方法、装置、计算机设备和存储介质
CN113192519A (zh) * 2021-04-29 2021-07-30 北京达佳互联信息技术有限公司 音频编码方法和装置以及音频解码方法和装置
WO2021163954A1 (zh) * 2020-02-20 2021-08-26 深圳市汇顶科技股份有限公司 数据传输方法、装置、设备、系统及介质

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025717A (zh) * 2010-09-10 2011-04-20 香港城市大学深圳研究院 一种传输多媒体数据的方法
WO2014071766A1 (zh) * 2012-11-07 2014-05-15 中兴通讯股份有限公司 音频多编码传输方法及相应装置
WO2017157303A1 (zh) * 2016-03-15 2017-09-21 中兴通讯股份有限公司 实时通信中的抗丢包方法、装置和系统
CN105847182A (zh) * 2016-04-18 2016-08-10 武汉烽火众智数字技术有限责任公司 一种音视频系统中音频优先传输方法及其系统
US20200219519A1 (en) * 2017-09-18 2020-07-09 Hangzhou Hikvision Digital Technology Co., Ltd. Audio coding and decoding methods and devices, and audio coding and decoding system
CN109524015A (zh) * 2017-09-18 2019-03-26 杭州海康威视数字技术股份有限公司 音频编码方法、解码方法、装置及音频编解码系统
CN110740334A (zh) * 2019-10-18 2020-01-31 福州大学 一种帧级别的应用层动态fec编码方法
CN110830819A (zh) * 2019-11-19 2020-02-21 聚好看科技股份有限公司 编码、解码方法、编码端和解码端
CN111193966A (zh) * 2019-12-25 2020-05-22 北京佳讯飞鸿电气股份有限公司 音频数据传输方法、装置、计算机设备及存储介质
WO2021163954A1 (zh) * 2020-02-20 2021-08-26 深圳市汇顶科技股份有限公司 数据传输方法、装置、设备、系统及介质
CN111128203A (zh) * 2020-02-27 2020-05-08 北京达佳互联信息技术有限公司 音频数据编码、解码方法、装置、电子设备及存储介质
CN112769524A (zh) * 2021-04-06 2021-05-07 腾讯科技(深圳)有限公司 语音传输方法、装置、计算机设备和存储介质
CN113192519A (zh) * 2021-04-29 2021-07-30 北京达佳互联信息技术有限公司 音频编码方法和装置以及音频解码方法和装置

Also Published As

Publication number Publication date
CN114301884B (zh) 2023-12-05

Similar Documents

Publication Publication Date Title
CN110890945B (zh) 数据传输方法、装置、终端及存储介质
CN108391127B (zh) 视频编码方法、装置、存储介质及设备
CN110830819B (zh) 编码、解码方法、编码端和解码端
CN108769726B (zh) 多媒体数据推送方法、装置、存储介质及设备
CN110149491B (zh) 视频编码方法、视频解码方法、终端及存储介质
CN111432218B (zh) 视频编码与解码方法、装置、终端及存储介质
CN111093108A (zh) 音画同步判断方法、装置、终端及计算机可读存储介质
CN112584049A (zh) 远程交互方法及装置、电子设备、存储介质
CN110996117B (zh) 视频转码方法、装置、电子设备和存储介质
CN110121084A (zh) 切换端口的方法、装置和系统
CN111586413A (zh) 视频调整方法、装置、计算机设备及存储介质
CN110166776B (zh) 视频编码方法、装置及存储介质
CN111586433B (zh) 码率调整方法、装置、设备及存储介质
CN110572679B (zh) 帧内预测的编码方法、装置、设备及可读存储介质
CN113141541B (zh) 码率切换方法、装置、设备及存储介质
CN114301884B (zh) 音频数据的发送方法、接收方法、装置、终端及存储介质
CN113192519B (zh) 音频编码方法和装置以及音频解码方法和装置
CN112153404B (zh) 码率调整方法、检测方法、装置、设备及存储介质
CN116996409A (zh) 数据传输方法、装置、设备及存储介质
CN111698262B (zh) 带宽确定方法、装置、终端及存储介质
CN110913213B (zh) 视频质量评测处理的方法、装置及系统
CN111478914B (zh) 时间戳处理方法、装置、终端及存储介质
CN112583524B (zh) 数据包恢复方法及装置
CN111580777B (zh) 音频处理方法、装置、电子设备及存储介质
CN112437304B (zh) 视频解码方法、编码方法、装置、设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40067114

Country of ref document: HK

SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant