1.本公开涉及音频处理技术领域,尤其涉及一种音频编码方法、装置、电子设备及存储介质。
背景技术:2.webrtc是一个实时音视频开源框架,包含多种音频编解码器,opus便是其中一种常用的音频编解码器。
3.opus具有动态码率覆盖范围广、可变编码帧长、可变复杂度、良好抗网络丢包特性、覆盖窄带到全频带所有频率范围、适用讲话speech和音乐music场景等诸多优点。但opus的编码灵活性还有待提升。
技术实现要素:4.本公开实施例提供一种音频编码方法、装置、电子设备及存储介质,用以提升音频编码的灵活性。
5.第一方面,本公开实施例提供一种音频编码方法,包括:
6.获取目标音频帧和编码冗余信息,所述编码冗余信息至少包括第一冗余指示信息,所述第一冗余指示信息用于指示第一音频帧是否是所述目标音频帧的冗余帧,所述第一音频帧已经过编码且与所述目标音频帧间隔至少一个音频帧;
7.对所述目标音频帧进行第一编码处理,得到所述目标音频帧的常规码流数据;
8.响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息,对所述目标音频帧的常规码流数据和所述第一音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第一音频帧的冗余码流数据是对所述第一音频帧进行第二编码处理得到的,所述第二编码处理对应的音频压缩程度高于所述第一编码处理对应的音频压缩程度;
9.输出所述目标音频帧的编码数据。
10.在一些可能的实施方式中,所述第一音频帧与所述目标音频帧间隔一个音频帧。
11.在一些可能的实施方式中,所述编码冗余信息还包括第二冗余指示信息,所述第二冗余指示信息用于指示第二音频帧是否是所述目标音频帧的冗余帧,所述第二音频帧位于所述第一音频帧和所述目标音频帧之间,还包括:
12.响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息和所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第二音频帧的冗余码流数据是对所述第二音频帧进行第二编码处理得到的。
13.在一些可能的实施方式中,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频
帧的编码数据,包括:
14.采用距离编码算法,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据。
15.在一些可能的实施方式中,还包括:
16.响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息或所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧进行第二编码处理,得到所述目标音频帧的冗余码流数据;
17.存储所述目标音频帧的冗余码流数据。
18.第二方面,本公开实施例提供一种音频编码装置,包括:
19.获取模块,用于获取目标音频帧和编码冗余信息,所述编码冗余信息至少包括第一冗余指示信息,所述第一冗余指示信息用于指示第一音频帧是否是所述目标音频帧的冗余帧,所述第一音频帧已经过编码且与所述目标音频帧间隔至少一个音频帧;
20.编码模块,用于对所述目标音频帧进行第一编码处理,得到所述目标音频帧的常规码流数据;
21.冗余处理模块,用于响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息,对所述目标音频帧的常规码流数据和所述第一音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第一音频帧的冗余码流数据是对所述第一音频帧进行第二编码处理得到的,所述第二编码处理对应的音频压缩程度高于所述第一编码处理对应的音频压缩程度;
22.输出模块,用于输出所述目标音频帧的编码数据。
23.在一些可能的实施方式中,所述第一音频帧与所述目标音频帧间隔一个音频帧。
24.在一些可能的实施方式中,所述编码冗余信息还包括第二冗余指示信息,所述第二冗余指示信息用于指示第二音频帧是否是所述目标音频帧的冗余帧,所述第二音频帧位于所述第一音频帧和所述目标音频帧之间,所述冗余处理模块还用于:
25.响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息和所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第二音频帧的冗余码流数据是对所述第二音频帧进行第二编码处理得到的。
26.在一些可能的实施方式中,所述冗余处理模块具体用于:
27.采用距离编码算法,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据。
28.在一些可能的实施方式中,还包括存储模块:
29.所述编码模块,还用于响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息或所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧进行第二编码处理,得到所述目标音频帧的冗余码流数据;
30.所述存储模块,用于存储所述目标音频帧的冗余码流数据。
31.第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中:
32.存储器存储有可被至少一个处理器执行的指令,该指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述音频编码方法。
33.第四方面,本公开实施例提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行上述音频编码方法。
34.本公开实施例中,获取目标音频帧和至少包括第一冗余指示信息的编码冗余信息,对目标音频帧进行第一编码处理,得到目标音频帧的常规码流数据,响应于第一音频帧是目标音频帧的冗余帧的第一冗余指示信息,对目标音频帧的常规码流数据和第一音频帧的冗余码流数据进行信源冗余处理,得到目标音频帧的编码数据并输出,其中,第一音频帧已经过编码且与目标音频帧间隔至少一个音频帧,第一音频帧的冗余码流数据是对第一音频帧进行第二编码处理得到的,第二编码处理对应的音频压缩程度高于第一编码处理对应的音频压缩程度。这样,在对目标音频帧进行编码时,可将与目标音频帧间隔至少一个音频帧且已编码的第一音频帧作为目标音频帧的冗余帧,冗余帧的选择比较灵活,利于提升音频编码的灵活性,并且,进行信源冗余处理的第一音频帧的冗余码流数据比目标音频帧的常规码流数据的压缩程度大,也利于节省码率。
附图说明
35.此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
36.图1为本公开实施例提供的一种音频编码方法的流程图;
37.图2为本公开实施例提供的又一种音频编码方法的流程图;
38.图3为本公开实施例提供的一种一帧opus码流的silk层组织结构的示意图;
39.图4是本公开实施例提供的一种音频编码的过程示意图;
40.图5是本公开实施例提供的一种各音频帧的相关码流数据的压缩结果示意图;
41.图6为本公开实施例提供的一种音频编码装置的结构示意图;
42.图7为本公开实施例提供的一种用于实现音频编码方法的电子设备的硬件结构示意图。
具体实施方式
43.为了提升音频编码的灵活性,本公开实施例提供了一种音频编码方法、装置、电子设备及存储介质。
44.以下结合说明书附图对本公开的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本公开,并不用于限定本公开,并且在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
45.为了便于理解本公开,本公开涉及的技术术语中:
46.opus,一种有损声音编码格式,由xiph.org基金会开发,后由互联网工程任务组(internet engineering task force,ietf)进行标准化,标准格式定义于rfc 6716协议。
47.silk,一种被应用于opus的音频编解码器。
48.距离编码(range encoding)算法,一种熵编码方法,可有效提升数据压缩率。
49.图1为本公开实施例提供的一种音频编码方法的流程图,该方法包括以下步骤。
50.在步骤s101中,获取目标音频帧和编码冗余信息,该编码冗余信息至少包括第一冗余指示信息。
51.其中,第一冗余指示信息用于指示第一音频帧是否是目标音频帧的冗余帧,第一音频帧已经过编码且与目标音频帧间隔至少一个音频帧。
52.具体实施时,第一冗余指示信息可以是一个标志位a。以标志位a的取值为0和1为例,当标志位a的取值为0时,表示第一音频帧不是目标音频帧的冗余帧;当标志位a的取值为1时,表示第一音频帧是目标音频帧的冗余帧。以标志位a的取值为false和true为例,当标志位a的取值为false时,表示第一音频帧不是目标音频帧的冗余帧;当标志位a的取值为true时,表示第一音频帧是目标音频帧的冗余帧。
53.假设目标音频帧是音频帧序列中的第t个音频帧,则第一音频帧可以是第t
‑
2个音频帧、第t
‑
3个音频帧、第t
‑
4个音频帧等。
54.另外,考虑到音频帧与目标音频帧相隔越远时对音频帧的冗余越不必要,第一音频帧与目标音频帧可以间隔一个音频帧,即当目标音频帧是音频帧序列中的第t个音频帧时,第一音频帧可以是第t
‑
2个音频帧。这样,既可灵活地对目标音频帧进行编码又可最大限度地发挥冗余帧的作用。
55.在步骤s102中,对目标音频帧进行第一编码处理,得到目标音频帧的常规码流数据。
56.在步骤s103中,响应于第一音频帧是目标音频帧的冗余帧的第一冗余指示信息,对目标音频帧的常规码流数据和第一音频帧的冗余码流数据进行信源冗余处理,得到目标音频帧的编码数据。
57.其中,第一音频帧的冗余码流数据是对第一音频帧进行第二编码处理得到的,第二编码处理对应的音频压缩程度高于第一编码处理对应的音频压缩程度。
58.沿用上例,第一音频帧是目标音频帧的冗余帧的第一冗余指示信息即是指标志位a的取值为true或1。
59.另外,需要说明的是,对同一音频帧而言,这个音频帧的常规码流数据是对音频帧进行第一编码处理得到的,这个音频帧的冗余码流数据是对音频帧进行第二编码处理得到的,其中,第二编码处理对应的音频压缩程度高于第一编码处理对应的音频压缩程度,即音频帧的常规码流数据的数据量大于音频帧的冗余码流数据的数据量,音频帧的冗余码流数据相当于是音频帧的常规码流数据的低配版本。
60.在步骤s104中,输出目标音频帧的编码数据。
61.本公开实施例中,在对目标音频帧进行编码时,可将与目标音频帧间隔至少一个音频帧且已编码的第一音频帧作为目标音频帧的冗余帧,冗余帧的选择比较灵活,利于提升音频编码的灵活性,并且,进行信源冗余处理的第一音频帧的冗余码流数据比目标音频帧的常规码流数据的压缩程度大,也利于节省码率。
62.图2为本公开实施例提供的又一种音频编码方法的流程图,该方法包括以下步骤。
63.在步骤s201中,获取目标音频帧和编码冗余信息,该编码冗余信息包括第一冗余指示信息和第二冗余指示信息。
64.其中,第一冗余指示信息用于指示第一音频帧是否是目标音频帧的冗余帧,第一音频帧已经过编码且与目标音频帧间隔至少一个音频帧;第二冗余指示信息用于指示第二音频帧是否是目标音频帧的冗余帧,第二音频帧位于第一音频帧和目标音频帧之间。
65.第一冗余指示信息的表示方式同步骤s101中的介绍,在此不再赘述。类似地,第二冗余指示信息可以是一个标志位b。以标志位b的取值为0和1为例,当标志位b的取值为0时,表示第二音频帧不是目标音频帧的冗余帧;当标志位b的取值为1时,表示第二音频帧是目标音频帧的冗余帧。以标志位b的取值为false和true为例,当标志位b的取值为false时,表示第二音频帧不是目标音频帧的冗余帧;当标志位b的取值为true时,表示第二音频帧是目标音频帧的冗余帧。
66.具体实施时,当第一音频帧与目标音频帧间隔不止一个音频帧时,第二音频帧可以是位于第一音频帧和目标音频帧之间的任一音频帧;当第一音频帧与目标音频帧间隔一个音频帧时,第二音频帧即是位于第一音频帧和目标音频帧之间的音频帧。
67.在步骤s202中,对目标音频帧进行第一编码处理,得到目标音频帧的常规码流数据。
68.在步骤s203中,响应于第一音频帧是目标音频帧的冗余帧的第一冗余指示信息和第二音频帧是目标音频帧的冗余帧的第二冗余指示信息,对目标音频帧的常规码流数据、第一音频帧的冗余码流数据和第二音频帧的冗余码流数据进行信源冗余处理,得到目标音频帧的编码数据。
69.其中,第一音频帧的冗余码流数据是对第一音频帧进行第二编码处理得到的,第二音频帧的冗余码流数据是对第二音频帧进行第二编码处理得到的,第二编码处理对应的音频压缩程度高于第一编码处理对应的音频压缩程度。
70.沿用上例,第一音频帧是目标音频帧的冗余帧的第一冗余指示信息即是指标志位a的取值为true或1,第二音频帧是目标音频帧的冗余帧的第二冗余指示信息即是指标志位b的取值为true或1。
71.具体实施时,可采用range encoding算法,对目标音频帧的常规码流数据、第一音频帧的冗余码流数据和第二音频帧的冗余码流数据进行信源冗余处理,得到目标音频帧的编码数据。由于距离编码算法的数据压缩性能好,所以可提升数据压缩率、提升音频编码效率。
72.在步骤s204中,输出目标音频帧的编码数据。
73.本公开实施例中,在对目标音频帧进行编码时,可以对与目标音频帧间隔至少一个音频帧且已编码的第一音频帧、以及位于目标音频帧和第一音频帧之间的第二音频帧同时进行信源冗余处理,并且,可采用range encoding算法对这三个音频帧的相应码流数据进行信源冗余处理,不但编码灵活性较好,而且数据压缩性能也比较好。
74.另外,在上述任一实施例中,还可响应于第一音频帧是目标音频帧的冗余帧的第一冗余指示信息或第二音频帧是目标音频帧的冗余帧的第二冗余指示信息,对目标音频帧进行第二编码处理,得到目标音频帧的冗余码流数据,存储目标音频帧的冗余码流数据。这样,当目标音频帧作为其他音频帧的冗余帧时,可以直接获取到目标音频帧的冗余码流数据,并与对应音频帧的常规码流数据进行信源冗余处理,以尽可能地提升编码速度。
75.下面以opus为例对本公开实施例的方案进行说明。
76.以单声道编码为例,图3为本公开实施例提供的一帧opus码流的silk层组织结构的示意图,包括:vad flags、lbrr(t
‑
1)flag、lbrr(t
‑
2)flag、lbrr(t
‑
1)frame、lbrr(t
‑
2)frame和regular silk frame,其中,vad flags用于指示目标音频帧是否是音频帧序列的边界,lbrr(t
‑
1)flag,对应上述标志位b,用于指示第t
‑
1个音频帧(即第二音频帧)是否是第t个音频帧(即目标音频帧)的冗余帧,lbrr(t
‑
2)flag,对应上述标志位a,用于指示第t
‑
2个音频帧(即第一音频帧)是否是第t个音频帧的冗余帧,lbrr(t
‑
1)frame、lbrr(t
‑
2)frame和regular silk frame的编码帧长可以是20ms。
77.图4是本公开实施例提供的一种音频编码的过程示意图,对一段待发送给客户端的音频帧序列,可按照图4所示的流程进行音频编码,该流程包括以下步骤:
78.在步骤s401中,获取音频帧序列。
79.在步骤s402中,判断lbrr(t
‑
2)flag是否为true,若否,则进入步骤s403;若是,则进入步骤s409。
80.其中,当lbrr(t
‑
2)flag为true时,说明第t
‑
2个音频帧是第t个音频帧的冗余帧;当lbrr(t
‑
2)flag不为true即为false时,说明第t
‑
2个音频帧不是第t个音频帧的冗余帧。
81.在步骤s403中,判断lbrr(t
‑
1)flag是否为true,若否,则进入步骤s404;若是,则进入步骤s406。
82.其中,当lbrr(t
‑
1)flag为true时,说明第t
‑
1个音频帧是第t个音频帧的冗余帧;当lbrr(t
‑
1)flag不为true即为false时,说明第t
‑
1个音频帧不是第t个音频帧的冗余帧。
83.在步骤s404中,编码第t个音频帧的常规码流数据。
84.在步骤s405中,将第t个音频帧的常规码流数据作为第t个音频帧的编码数据。
85.在步骤s406中,编码第t个音频帧的冗余码流数据和常规码流数据。
86.在步骤s407中,判断第t个音频帧是否是第一个音频帧,若是,则进入步骤s405;若否,则进入步骤s408。
87.在步骤s408中,对第t个音频帧的常规码流数据和第t
‑
1个音频帧的冗余码流数据进行信源冗余处理,得到第t个音频帧的编码数据。
88.在步骤s409中,判断lbrr(t
‑
1)flag是否为true,若是,则进入步骤s410;若是,则进入步骤s415。
89.在步骤s410中,编码第t个音频帧的冗余码流数据和常规码流数据。
90.在步骤s411中,判断第t个音频帧是否是第一个音频帧,若是,则进入步骤s405;若否,则进入步骤s412。
91.在步骤s412中,判断第t个音频帧是否是第二个音频帧,若是,则进入步骤s413;若否,则进入步骤s414。
92.在步骤s413中,对t个音频帧的常规码流数据和第t
‑
1个音频帧的冗余码流数据进行信源冗余处理,得到第t个音频帧的编码数据。
93.在步骤s414中,对t个音频帧的常规码流数据、第t
‑
1个音频帧的冗余码流数据和第t
‑
2个音频帧的冗余码流数据进行信源冗余处理,得到第t个音频帧的编码数据。
94.具体实施时,可利用range encoding算法对第t个音频帧的常规码流数据、第t
‑
1个音频帧的冗余码流数据和第t
‑
2个音频帧的冗余码流数据进行信源冗余处理,图5是本公开实施例提供的一种各音频帧的相关码流数据的压缩结果示意图,其中,100表示第t个音
频帧的常规码流数据,99(t
‑
1)表示第t
‑
1个音频帧的冗余码流数据,98(t
‑
2)表示第t
‑
2个音频帧的冗余码流数据。
95.在步骤s415中,编码第t个音频帧的冗余码流数据和常规码流数据。
96.在步骤s416中,判断第t个音频帧是否是第一个音频帧或第二个音频帧,若是,则进入步骤s405;若否,则进入步骤s417。
97.在步骤s417中,对t个音频帧的常规码流数据和第t
‑
2个音频帧的冗余码流数据进行信源冗余处理,得到第t个音频帧的编码数据。
98.在步骤s418中,输出第t个音频帧的编码数据。
99.本公开实施例中,在编码第t个音频帧时,可以在带内前向纠错冗余中实现对第t
‑
1个音频帧和第t
‑
2个音频帧的灵活保护,提供了一种更加灵活且能力更强的opus带内前向纠错冗余策略。并且,可在保持抗丢包水平不变的前提下,利用opus内部高效的range encoding技术降低信源信道联合优化的码率消耗,达到节省码率的目的。
100.基于相同的技术构思,本公开实施例还提供一种音频编码装置,音频编码装置解决问题的原理与上述音频编码方法相似,因此音频编码装置的实施可参见音频编码方法的实施,重复之处不再赘述。图6为本公开实施例提供的一种音频编码装置的结构示意图,包括获取模块601、编码模块602、冗余处理模块603、输出模块604。
101.获取模块601,用于获取目标音频帧和编码冗余信息,所述编码冗余信息至少包括第一冗余指示信息,所述第一冗余指示信息用于指示第一音频帧是否是所述目标音频帧的冗余帧,所述第一音频帧已经过编码且与所述目标音频帧间隔至少一个音频帧;
102.编码模块602,用于对所述目标音频帧进行第一编码处理,得到所述目标音频帧的常规码流数据;
103.冗余处理模块603,用于响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息,对所述目标音频帧的常规码流数据和所述第一音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第一音频帧的冗余码流数据是对所述第一音频帧进行第二编码处理得到的,所述第二编码处理对应的音频压缩程度高于所述第一编码处理对应的音频压缩程度;
104.输出模块604,用于输出所述目标音频帧的编码数据。
105.在一些可能的实施方式中,所述第一音频帧与所述目标音频帧间隔一个音频帧。
106.在一些可能的实施方式中,所述编码冗余信息还包括第二冗余指示信息,所述第二冗余指示信息用于指示第二音频帧是否是所述目标音频帧的冗余帧,所述第二音频帧位于所述第一音频帧和所述目标音频帧之间,所述冗余处理模块603还用于:
107.响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息和所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编码数据,所述第二音频帧的冗余码流数据是对所述第二音频帧进行第二编码处理得到的。
108.在一些可能的实施方式中,所述冗余处理模块603具体用于:
109.采用距离编码算法,对所述目标音频帧的常规码流数据、所述第一音频帧的冗余码流数据和所述第二音频帧的冗余码流数据进行信源冗余处理,得到所述目标音频帧的编
码数据。
110.在一些可能的实施方式中,还包括存储模块605:
111.所述编码模块602,还用于响应于所述第一音频帧是所述目标音频帧的冗余帧的第一冗余指示信息或所述第二音频帧是所述目标音频帧的冗余帧的第二冗余指示信息,对所述目标音频帧进行第二编码处理,得到所述目标音频帧的冗余码流数据;
112.所述存储模块605,用于存储所述目标音频帧的冗余码流数据。
113.本公开实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,本公开各实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。各个模块相互之间的耦合可以是通过一些接口实现,这些接口通常是电性通信接口,但是也不排除可能是机械接口或其它的形式接口。因此,作为分离部件说明的模块可以是或者也可以不是物理上分开的,既可以位于一个地方,也可以分布到同一个或不同设备的不同位置上。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
114.图7为本公开实施例提供的一种电子设备的结构示意图,该电子设备包括收发器701以及处理器702等物理器件,其中,处理器702可以是一个中央处理单元(central processing unit,cpu)、微处理器、专用集成电路、可编程逻辑电路、大规模集成电路、或者为数字处理单元等等。收发器701用于电子设备和其他设备进行数据收发。
115.该电子设备还可以包括存储器703用于存储处理器702执行的软件指令,当然还可以存储电子设备需要的一些其他数据,如电子设备的标识信息、电子设备的加密信息、用户数据等。存储器703可以是易失性存储器(volatile memory),例如随机存取存储器(random
‑
access memory,ram);存储器703也可以是非易失性存储器(non
‑
volatile memory),例如只读存储器(read
‑
only memory,rom),快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid
‑
state drive,ssd)、或者存储器703是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器703可以是上述存储器的组合。
116.本公开实施例中不限定上述处理器702、存储器703以及收发器701之间的具体连接介质。本公开实施例在图7中仅以存储器703、处理器702以及收发器701之间通过总线704连接为例进行说明,总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
117.处理器702可以是专用硬件或运行软件的处理器,当处理器702可以运行软件时,处理器702读取存储器703存储的软件指令,并在所述软件指令的驱动下,执行前述实施例中涉及的音频编码方法。
118.本公开实施例还提供了一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,所述电子设备能够执行前述实施例中涉及的音频编码方法。
119.在一些可能的实施方式中,本公开提供的音频编码方法的各个方面还可以实现为一种程序产品的形式,所述程序产品中包括有程序代码,当所述程序产品在电子设备上运行时,所述程序代码用于使所述电子设备执行前述实施例中涉及的音频编码方法。
120.所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信
号介质或者可读存储介质。可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、ram、rom、可擦式可编程只读存储器(erasable programmable read
‑
only memory,eprom)、闪存、光纤、光盘只读存储器(compact disk read only memory,cd
‑
rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
121.本公开实施例中用于音频编码的程序产品可以采用cd
‑
rom并包括程序代码,并可以在计算设备上运行。然而,本公开的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
122.可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
123.可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的组合。
124.可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络如局域网(local area network,lan)或广域网(wide area network,wan)连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
125.应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
126.此外,尽管在附图中以特定顺序描述了本公开方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
127.本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd
‑
rom、光学存储器等)上实施的计算机程序产品的形式。
128.本公开是参照根据本公开实施例的方法、装置(系统)、和计算机程序产品的流程
图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
129.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
130.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
131.尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
132.显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。