本申请是向中国知识产权局提交的申请日为1月27日的标题为“用于对音频信号进行编码和解码的方法及设备”的第80014179.6号申请的分案申请。示例实施例涉及一种对音频信号或语音信号进行编码和解码的方法以及用于完成所述方法的设备。
背景技术:
::音频信号通常在频域中执行编码和解码,例如,高级音频编码(aac)。例如,aac编解码器执行改进离散余弦变换(mdct)以变换到频域,并使用心理声学技术方面的信号掩蔽级(signalmaskinglevel)来执行频谱量化。无损编码被应用于对量化结果进行进一步的压缩。aac使用霍夫曼编码进行无损编码。应用算术编码的位片算术编码(bsac)编解码也可被用于代替霍夫曼编码以进行无损编码。通常在时域对语音信号进行编码和解码。通常,在时域执行编码的语音编解码器是码激励线性预测(celp)类型。所述celp是指语音编码技术。现在,g.729、amr-nb、amr-wb、ilbcevrc等通常被用作基于celp的语音编码设备。在可通过线性预测(lp)获得语音信号的假定下开发编码方法。当对语音信号进行编码时,lp系数和激励信号是必要的。通常,可使用线谱对(lsp)对lp系数进行编码,同时可使用若干码本(codebook)对激励信号进行编码。基于celp的编码方法包括代数celp(acelp),共轭结构(cs)-celp等。在传输率和心理声学的限制方面,低频带和高频带在灵敏度上有差别。低频带对语音频率/声音频率上的精细结构敏感。与低频带相比,高频带对所述精细结构较不敏感。基于该理论,低频带分配有大量的比特以对所述精细结构进行详细编码,而高频带分配有比低频带少的比特并执行编码。根据这样的技术(诸如频带复制),在低频带,使用诸如aac的编解码器来对精细结构进行详细编码,在高频带,通过能量信息和监管(regulatory)信息来表现所述精细结构。sbr复制正交镜像滤波器(qmf)域中的低频信号,从而产生高频信号。比特减少方法也被应用于立体声信号。更具体地,立体声信号被变换为单声道信号,并且表现立体声信息的参数被提取。接下来,立体声参数和单声道信号压缩数据被发送。因此,解码设备可使用发送的参数对立体声信号进行解码。对于立体声信息的压缩,可使用参量立体声(ps)。另外,运动图像专家组环绕(mpegs)技术可被用于提取和发送多声道信号的参数。将更详细地描述无损编码的对象。可通过将量化的频谱的量化索引视为一个符号来执行无损编码。另外,可通过将量化的频谱索引映射到比特平面并收集比特来执行编码。当基于上下文的无损编码被执行时,先前帧的信息可被使用。当解码设备不具有关于先前帧的信息时,无损解码设备可能执行错误的解码,或在更坏的情况下,系统可能停止。例如,在应用音频编码和解码设备的数字音频广播中,听众可随时打开无线电并开始收听。在对音频流的随机访问期间,解码设备需要关于先前帧的信息以进行精确解码。然而,由于缺少先前帧的信息,使得再现困难。技术实现要素:发明目的示例实施例提供了一种语音音频编码设备,所述语音音频编码设备通过在低频带选择频域编码或线性预测域(lpd)编码之一,使用用于lpd编码的代数码激励线性预测(acelp)或变换码激励(tcx),并通过高频带的增强型频带复制(esbr),来对输入的信号进行编码。有益效果根据一方面,当对音频信号或语音信号进行编码时,用于解码的冗余比特信息可被减少。根据另一方面,在对音频信号或语音信号进行解码的开始时,通过参照用于解码的特定比特信息,解码设备的计算可被减少。另外,根据另一方面,不管随机访问音频信号还是语音信号,解码都是可用的。附图说明图1示出根据示例实施例的用于音频信号或语音信号的编码设备的框图;图2示出根据示例实施例的由用于音频信号或语音信号的编码设备执行的示例编码方法的流程图;图3示出根据示例实施例的用于音频信号或语音信号的解码设备的框图;图4示出根据示例实施例的由用于音频信号或语音信号的解码设备执行的解码方法的示例的流程图;图5示出根据其他示例实施例的用于解释解码方法的,已编码的音频信号或语音信号的比特流的示例的示图;图6示出根据其他示例实施例的用于已编码的音频信号或语音信号的解码方法的流程图;图7示出通过在频域解码与线性预测域(lpd)解码之间确定解码模式的,由根据示例实施例的解码设备执行的解码方法的流程图;图8示出根据示例实施例的由解码设备执行的核心解码方法的流程图。具体实施方式根据示例实施例,用于音频信号或语音信号的编码方法和解码方法可通过将由3gpp标准化的增强高级音频编码(eaac)脉冲编解码器与amr-wb+编解码器的工具部分地结合来实现编解码。图1示出根据示例实施例的用于音频信号或语音信号的编码设备的框图。基于acc编解码器、频带复制(sbr)以及参量立体声(ps)技术来标准化eaac+。这里,amr-wb+应用码激励线性预测(celp)编解码器和变换码激励(tcx)方案来对低频带进行编码,并应用带宽扩展(bwe)方案对高频带进行编码。另外,基于线性预测(lp)的立体声技术可被应用。在图1中示出的编码设备中,由核心编码设备对低频带的信号进行编码,而由增强型sbr(esbr)103对高频带的信号进行编码。可由运动图像专家组环绕(mpegs)102对立体声频段的信号进行编码。对低频域信号进行编码的核心编码设备可在两种编码模式下进行操作,即,频域(fd)编码模式和lp域(lpd)编码模式。用于对低频带信号进行编码的核心编码设备102和103可根据通过信号分类器101的信号,选择是使用频域编码设备110还是使用lpd编码设备105。例如,核心编码设备可进行切换,从而由频域编码设备110对诸如音乐信号的音频信号进行编码,并且由lpd编码设备105对语音信号进行编码。通过切换确定的编码模式信息被存储在比特流中。当编码模式被切换到频域编码设备110时,通过频域编码设备110执行编码。可通过如下的语法来表现核心编码设备的操作。频域编码设备110可在块切换/滤波器组(filterbank)模块111中根据适合于信号的窗口长度来执行变换。改进的离散余弦变换(mdct)可被用于所述变换。作为临界采样变换的mdct可实现约50%的重叠,并产生与窗口长度的一半对应的频率系数。例如,当在频域编码设备110中使用的一帧的长度是1024时,可使用具有作为1024的采样的量的两倍的2048的采样长度的窗口。另外,1024的采样可被除以8,从而具有256的长度的窗口的mdct被执行八次。根据核心编码模式的变换,可使用2304的长度的窗口产生1152的频率系数。在需要时,已变换的频域数据可应用瞬时噪声整形(tns,temporalnoiseshaping)112。所述tns112是指一种用于在频域中执行lp的方法。通常在信号具有由于时域与频域之间的对偶性而引起的强冲击(attack)时应用tns112。例如,时域中的强冲击信号可被表示为频域的相对平坦的信号。当使用所述信号执行lp时,编码效率会增加。当由tns112处理的信号是立体声信号时,中端(m/s,midside)立体声编码113可被应用。当通过左信号和右信号对立体声信号进行编码时,编码效率会降低。在这种情况下,使用左信号与右信号之和与左信号与右信号之差,立体声信号可被变换为具有高编码效率。通常使用标量量化器,经过频率变换、tns、以及m/s立体声编码的信号可被量化。当标量量化被均匀地应用于整个频带时,量化结果的动态范围会急剧增加,从而使量化特性恶化。为了防止这点,基于心理声学模型104对频带进行划分,其中,所述频带被定义为缩放因子频段(scalefactorband)。可通过将缩放信息提供给每个缩放因子频段,并基于心理声学模型104考虑到使用的比特数量来计算缩放因子,以执行量化。当数据被量化为零时,即使在解码之后,所述数据被表现为零。由于存在较多量化为零的数据,因此被解码的信号的失真会增加。为了减少信号失真,可执行在解码期间添加噪声的功能。因此,编码设备可产生并发送关于噪声的信息。对量化的数据执行无损编码。无损编码设备120可应用上下文算术编码。无损编码设备120可将先前帧的频谱信息和目前为止已解码的频谱信息用作上下文信息。无损编码的频谱信息可与先前计算的缩放因子信息、噪声信息、tns信息、m/s信息等一起被存储在比特流中。当核心编码设备切换到lpd编码设备105时,可通过将一个超帧划分为多个帧并将每一帧的编码模式选择为acelp107或tcx106来执行编码。例如,一个超帧可包括1024的采样,另一超帧可包括四个256的采样。频域编码设备110的一帧可具有与lpd编码设备105的一个超帧相同的长度。当在acelp与tcx之间选择编码模式时,可使用闭环方法和开环方法。根据闭环方法,首先尝试acelp编码和tcx编码,并使用诸如信噪比(snr)的测量来选择编码模式。根据开环方法,通过了解信号的特性来确定编码模式。以下显示了表现lpd编码设备105的操作的传统语法的示例。在acelp的情况下,通过选择若干固定的比特分配模式之一来执行编码。在这种情况下,比特分配模式包括在比特流中。在tcx的情况下,由于通过可变比特分配模式执行编码,因此比特分配信息是不必要的。以下将更具体地解释前述内容。根据tcx方案,在lp之后剩余的激励信号被变换至频域,并且编码在频域中被执行。可通过mdct执行到频域的变换。根据lp编码,以包括四个帧的一个超帧为单位执行编码。针对所述四个帧,指示每一帧的acelp和tcx之间的编码模式的模式信息需要被发送。当模式信息是acelp时,由于针对一帧使用的比特率需要一致,因此关于使用的比特率的信息被包括在正被发送的比特流中。tcx包括取决于变换长度的三种模式。在lp编码模式中,acelp模式包括取决于使用的比特率的多种模式。以下在表1和表2中显示了在上面已解释的与acelp和tcx模式相关的比特分配模式的示例。[表1][表2]mod[x]的值帧中的编码模式比特流元素0acelpacelp_coding()1tcx的一帧tcx_coding()2覆盖半个超帧的tcxtcx_coding()3覆盖整个超帧的tcxtcx_coding()例如,tcx包括取决于变换长度的三种模式。如表1中所示,根据所述三种模式,(1)通过tcx对一帧进行编码,(2)通过tcx对一个超帧的一半进行编码,(3)通过tcx对整个超帧进行编码。这里,lpd_mode可如表1中所示被构造。例如,当lpd_mode为0时,以从比特4到比特0的顺序将其表示为00000。这意味着通过acelp对一个超帧中的所有帧进行编码,如表1中所示。在表1中示出的26个lpd_mode中,在5种情况下不使用acelp,即,15、19、23、24和25。也就是说,当lpd_mode是15、19、23、24和25时,在一个超帧中仅使用tcx而不是acelp。因此,当在当前超帧中不使用acelp时,不需要acelp_core_mode的传输。在这种情况下,通过产生在一个超帧中不使用acelp或在一个超帧中仅使用tcx的信息的操作,确定是否进一步分析acelp_core_mode信息。也就是说,当在一个超帧中仅使用了tcx时,acelp的比特分配信息未包括在比特流中。仅当在至少一帧中使用了acelp时,acelp的比特分配信息才包括在比特流中。因此,可减少已编码的音频信号或已编码的语音信号的大小。以下示出描述能够减少acelp的比特分配信息的lpd编码设备的操作的示例语法。当选择了tcx时,针对时域信号通过执行lp来提取激励信号。提取的激励信号被变换到频域。例如,可应用mdct。被频率变换的激励信号通过一个全局增益被归一化,然后被标量量化。对量化的索引信息(即,量化的数据)执行无损编码。无损编码设备可应用上下文算术编码。无损编码设备可将先前帧的频谱信息和目前为止已解码的频谱信息用作上下文。被无损编码的频谱信息可与所述全局增益、lp系数信息等一起被存储在比特流中。存储的比特流可通过比特流复用器130被输出为已编码的音频流。图2示出根据示例实施例的由用于音频信号或语音信号的编码设备执行的示例编码方法的流程图。参照图2,在操作201,确定是否通过lpd编码对输入的低频信号进行编码。当lpd编码被用作操作201的确定结果时,在操作203,lpd编码的模式被确定并且模式信息被存储。在操作204,确定是否仅使用tcx以进行编码,并在操作206,当将仅使用tcx时执行lpd编码。当作为操作204的确定结果,不仅仅通过tcx执行编码时,acelp的比特分配信息被存储并且操作206的lpd编码被执行。当在操作201中确定不使用lpd编码时,在操作202中执行频域编码。图3示出根据示例实施例的用于音频信号或语音信号的解码设备的框图。参照图3,所述解码设备包括:比特流解复用器301、计算解码单元302、滤波器组303、时域解码单元(acelp)304、转换窗口单元305和307、线性预测编码器(lpc)306、低音后置滤波器308、esbr309、mpegs解码器320、m/s311、tns312、块切换/滤波器组313。解码设备可对通过图1中示出的编码设备或图2中示出的编码方法编码的音频信号或语音信号进行解码。当通过频域编码模式执行编码时,图3中示出的解码设备可基于编码模式信息在频域中进行解码。当通过lpd编码模式执行编码时,解码设备可针对一个超帧的每一帧,基于关于是使用celp还是tcx的信息,通过与所述编码模式对应的模式进行解码。可通过如下语法表现图3中示出的解码设备中的核心解码方法。基于从所述语法确定的信息,当应用频域编码时,执行频域解码。所述频域解码恢复通过缩放因子信息和算术编码无损编码和量化的频谱,对量化的频谱反量化,并通过乘以所述缩放因子来产生频谱。基于产生的频谱,使用tns和m/s信息改变频谱,相应地产生恢复的频谱。在需要时可添加噪声。通过对恢复的频谱进行反量化来产生最终的核心时域信号。mdct可应用于反量化。可由以下示出的语法表现频域解码方法。可由以下示出的语法表现由解码设备确定关于已编码的低频带信号的核心编码模式的方法。lpd的编码模式信息(lpd_mode)包括关于一个超帧的acelp和tcx的组成的信息。当仅使用tcx时,即使acelp比特分配信息(acelp_core_mode)没有被包括在比特流中,也不执行acelp解码。因此,解码是可用的。因此,通过读取在一个超帧中未使用acelp的信息,或读取仅使用tcx的信息,确定是否另外地分析acelp比特分配信息(acelp_core_mode)。当确定仅使用tcx时,针对所述超帧执行tcx解码。当包括了acelp时,在另外地分析acelp比特分配信息(acelp_core_mode)之后,可执行acelp或tcx解码。因此,通过分析已编码的音频信号或语音信号的比特流,产生已解码的低频信号,从而确认是否通过lpd编码来执行编码,并在lpd编码未被使用时执行频域解码。当lpd编码被使用时,lpd的编码模式被分析,并在作为分析的结果仅使用tcx时,执行lpd解码。当通过acelp编码对至少一帧进行编码时,acelp的比特分配信息被分析并且lpd解码被执行。当lpd编码被执行时,相应于包括在一个超帧中的分别的四个帧的编码模式信息(acelp或tcx)来执行解码。根据tcx,产生被算术编码的频谱,并且与发送的全局增益相乘,从而产生频谱。通过逆mdct(imdct)对产生的频谱反量化。基于发送的lp系数执行lp合成,从而产生核心解码的信号。根据acelp,基于自适应的且创新的码本的增益信息和索引来产生激励信号。针对激励信号执行lp合成,从而产生核心解码的信号。图4示出根据示例实施例的由用于音频信号或语音信号的解码设备执行的解码方法的示例的流程图。参照图4,在操作401,确定是否通过lpd编码对输入的比特流进行编码。作为操作401的结果,当执行lpd编码时,在操作403,分析lpd的模式。在操作404,确定是否仅使用tcx以进行编码。当仅使用tcx编码时,在操作406,执行lpd解码。作为操作404的结果,当不仅仅通过tcx执行编码时,分析acelp比特分配信息,并执行操作406的lpd解码。在操作401,当lpd未被用于编码时,在操作402,执行频域解码。在下文中,将参照图5至图7描述根据其他示例实施例的解码设备和方法。图5示出根据其他示例实施例的用于解释解码方法的,已编码的音频信号或语音信号的比特流的示例的示图。图5示出应用上下文重设标记的示例。上下文重设标记被应用于aac/tcx熵编码。算术编码上下文是用于指示重设的语法。上下文重设标记被周期性地设置为1,从而上下文重设被执行。根据传统的aac,由于针对每一帧执行解码,因此可在广播期间的随机的时间点开始解码。然而,在mpeg统一语音和音频编解码(usac)的情况下,由于先前帧被用作上下文,因此如果先前帧未被解码,则当前帧的解码不可用。因此,当用户随机访问已编码的音频信号或语音信号的特定位置以进行再现时,需要确定与所述位置对应的将被解码的帧的上下文重设标记的设置状态,换句话说,确定当前帧的解码是否可用。图6示出根据其他示例实施例的用于已编码的音频信号或语音信号的解码方法的流程图。参照图6,针对输入的比特流的用户的解码开始命令被接收。在操作601,确定所述比特流的核心比特流解码是否可用。当核心比特流解码可用时,在操作603,执行核心解码。在操作604,执行esbr比特流分析和解码,并在操作605,执行mpegs分析和解码。在操作601,当核心比特流解码不可用时,在操作602,结束当前帧的解码。确定针对下一帧的核心解码是否可用。在该操作期间,当检测到可解码的帧时,可从所述帧开始执行解码。可根据是否可参考关于先前帧的信息来确定核心解码的可用性。可根据是否重设算术编码的上下文信息(即,通过读取arith_reset_flag信息)来确定关于先前帧的信息的参考可用性。可通过如下的语法表现根据其他示例实施例的解码方法。参照以上语法,当关于仅一个信道的信息被包括在比特流中时,使用single_channel_element执行解码。当同时使用两个信道的信息执行解码时,使用channel_pair_element。通过分析核心编码模式(core_mode)来确定是频域还是lpd。在channel_pair_element的情况下,由于包括关于两个信道的信息,因此存在两种核心编码信息模式。基于前述内容,当执行频域编码时,通过重设上下文来分析是否执行解码,然后可执行频域解码。以下显示了表现上述方法的示例语法。参照所述语法,arith_reset_flag在所述语法的前面。当arith_reset_flag被设置时(即,当上下文被重设时),执行频域解码。当上下文未被重设时,可不对当前帧进行解码。图7示出通过确定频域解码或线性预测域(lpd)解码,由根据示例实施例的解码设备执行的解码方法的流程图。参照图7,在操作701,确定输入的已编码的比特流是被频域解码还是被lpd解码。另外,根据确定结果执行频域解码或lpd解码。当作为操作701的结果执行频域解码时,首先在操作702确定上下文是否被重设。当需要上下文重设时,在操作703,开始当前帧的解码。当不执行上下文重设时,在操作704结束当前帧的解码,并且针对下一帧执行确定。当lpd解码被执行时(即,当比特流被lpd编码时),在操作705,确定一个超帧中的lp编码模式。基于操作706中的确定来确定是否使用至少一个tcx。当使用tcx时,在操作707,分析是否重设对应的上下文。当作为操作707的确定结果,上下文需要重设时,在操作708,从当前帧开始执行解码。当不执行上下文重设时,在操作704结束当前帧的解码,并且针对下一帧执行确定。如上所述,当lpd模式为0时,意味着仅使用acelp。因此,当lp编码模式(lpd_mode)具有除了0以外的值时,意味着使用至少一个tcx。当tcx被使用至少一次时,关于是否重设上下文的信息被包括在已编码的比特流中。这里,在不使用先前帧的上下文的acelp的情况下,可不论是否重设算术编码的上下文信息,都执行解码。在根据示例实施例的解码设备中,可使用针对上下文重设的arith_reset_flag,使操作效率最大化,其中,所述针对上下文重设的arith_reset_flag包括在使用tcx的帧中。当解码设备通过分析输入的比特流来执行lpd解码时,可使用由以下语法表现的方法。总之,依据不采用根据示例实施例的解码方法的频域解码,需要对频谱数据之前的所有数据进行解析,以确定上下文是否被重设。依据不采用根据示例实施例的解码方法的tcx,所有数据需要根据acelp/tcx的组成而被解码,以确定上下文是否被重设。这是因为诸如缩放因子的信息对于确定上下文重设是必要的。然而,由于在aac的情况下第一比特是arith_reset_flag,并且在lpd模式的情况下通过对首先的6比特进行解析并读取arith_reset_flag值来确定上下文重设状态,因此根据示例实施例的解码方法可在不对所有帧进行解码的情况下确定帧的解码可用性。结果,解码设备的操作效率可被最大化。根据其他示例实施例的编码设备可通过进一步地包括关于对当前帧的随机访问是否可用的信息来执行编码。图8示出根据示例实施例的由解码设备执行的核心解码方法的流程图。参照图8,当用户试图在随机时间对已编码的音频信号或语音信号进行解码时,在操作801,编码设备通过接收已编码的比特流并确定对帧的随机访问是否可用,来确定对当前帧的解码是否可用,然后在操作803,执行核心解码。当核心解码不可用时,确定下一帧的解码可用性。当在这期间检测到可解码的帧时,可从所述帧开始执行解码。可根据对当前帧的随机访问是否可用来确定解码的可用性。在操作803的核心编码之后,在操作804,执行esbr比特流分析和解码,并且在操作805,执行mpegs分析和解码。接下来,在操作806,再现已解码的信号。频域编码包括总共8种窗口类型的信息。根据先前帧的核心编码模式和窗口类型,所述8种类型可由2比特来表现。在这种情况下,当关于先前帧的核心编码模式的信息不存在时,解码不可用。为防止这点,可添加关于帧是否可随机访问的信息,并且可使用添加的信息按另一方式表现window_sequence信息。所述window_sequence信息是指确定频谱的数量并执行反量化所必要的信息。针对不允许random_access的帧,根据传统方法,window_sequence信息可由2比特表现。针对允许random_access的帧,由于上下文重设对于解码是必要的,因此arith_reset_flag总被设置为1。在这种情况下,不必要单独地包括和发送arith_reset_flag。以下语法是参照图6描述的原始语法。另外,以下语法是根据修改的实施例的修正的语法。如以上语法中所示,可添加random_access字段(1比特)。当random_access字段的标记值被设置时,用于进行解码的window_sequence信息可被不同地表现。以下介绍与以上内容对应的语法。在以上语法中,可如下表现fd_channel_stream。在以上语法中,可由以下语法表现fd_channel_stream、ics_info。在以下语法中,可为window_sequence信息分配3比特。当如上所述为window_sequence信息分配了3比特时,可如下定义window_sequence。首先,如下传统地定义window_sequence。<window_sequnce的传统定义>根据以上定义,存在具有值1的三种情况,即,long_start_sequence、stop_start_sequence和stop_start_1152_sequence。例如,在stop_start_1152_sequence的情况下,通过lpd对先前帧进行编码的信息对于解码是必要的。当值为3时,通过lpd对先前帧进行编码的信息对于解码也是必要的。以下示出的语法是根据示例实施例定义的window_sequence信息的示例。可通过将8个值顺序地分配给8种类型的window_sequence来表现window_sequence信息,也可按另一方式表现window_sequence信息。<根据示例实施例的window_sequence的定义>另外,如上所述,在随机访问帧的情况下,对于解码,需要执行上下文重设。因此,arith_reset_flag总被设置为1。在这种情况下,不需要单独地包括和发送arith_reset_flag。因此,以下参照图6描述的语法可被如下修正。<原始语法><示例修正的语法>如上所述,在随机访问帧的情况下,对于解码,需要执行上下文重设。因此,arith_reset_flag总被设置为1。在这种情况下,不需要单独地包括和发送arith_reset_flag。在tcx中,随机访问帧不能参考先前的超帧。因此,可按与频域解码相同的方式省略随机访问帧的arith_rest_flag的传输。根据以上方法的与tcx相关的示例语法可被如下表现。<根据示例实施例的与tcx相关的语法>根据其他示例实施例,在随机访问帧的情况下,比特流可包括关于是否通过lpd编码对当前的超帧进行编码的信息。也就是说,针对随机访问帧,比特流可包括关于先前帧是通过频域编码还是lpd编码被编码为当前帧的信息(first_lpd_flag)。当lpd编码的tcx被执行时,在对先前的超帧进行编码的步骤中使用的核心编码模式信息对于解码是必要的。然而,由于当前的超帧的tcx的反量化的频谱的数量(即,已变换的频谱的数量)已知,因此先前帧的核心编码模式信息是必要的。因此,所述语法可另外地包括先前的超帧的核心编码模式信息、关于当前的超帧是否是第一lp帧的信息、或关于先前的超帧是否是lp帧的信息(first_lpd_flag)。先前的超帧被lpd编码的信息可被设置为核心编码模式信息(first_lpd_flag)。<根据示例实施例的用于设置first_lpd_flag的标准>先前帧(超帧)的core_mode当前帧(超帧)的core_modefirst_lpd_flag011110<根据示例实施例的包括first_lpd_flag的语法>以上描述的随机访问帧信息的传输可根据工具而变化,即:(1)所述信息可被发送到每个随机访问帧,或(2)所述信息可被一次发送到usac的全部净荷。例如,可通过在包含有频域信息的single_channel_element中声明random_access,来包含与被频域编码的部分相关的随机访问信息。与随机访问相关的信息可被包括到包含usac的全部净荷信息的部分,而不是single_channel_element,以适应于所有类型的工具。根据其他示例实施例,在esbr的情况下,可使用1比特发送关于头的存在的头信息。这里,为了通过自身对随机访问帧进行解码,需要发送所述头信息。因此,可根据随机访问的声明来执行头信息的解析。具体地,仅在随机访问被声明时分析所述头,而在随机访问未被声明时不分析所述头。为了这个目的,仅在所述帧不是随机访问帧时预备并发送关于sbr头的存在的1比特的信息。因此,针对非随机访问帧,可省略不必要的头解析的操作。以下示出关于该处理的语法。参照以上语法,当random_access为true时,bs_header_flag被设置为true,且sbr头被分析。当random_access为false时,关于sbr头信息是否是必要的信息被发送。仅当sbr头信息必要时执行sbr头分析。在下文中,将详细描述根据示例实施例的各种版本的解码方法。<版本1:通过添加first_acelp_flag来在第一acelp帧中对acelp_core_mode解码>lpd的编码模式信息(lpd_mode)包括关于一个超帧的acelp和tcx的组成的信息。acelp的比特分配信息(acelp_core_mode)仅在使用acelp时是必要的。因此,仅在这种情况下,语法可被构造为对acelp_core_mode信息进行解码。当在当前超帧中第一次通过acelp对帧进行编码时读取所述acelp_core_mode信息。针对下一次通过acelp编码的下一帧,可基于第一次读取的acelp_core_mode信息来执行acelp解码,而不需要读取acelp_core_mode信息。可由以下语法表现以上方法。仅针对acelp编码的帧读取first_acelp_flag是否为1,当first_acelp_flag为1时,通过读取acelp_core_mode来读取acelp比特分配信息。接下来,acelp_core_mode被设置为0。因此,可在没有读取acelp_core_mode的情况下对下一acelp编码的帧进行解码。<版本2:当通过is_tcx_only()仅使用tcx时不对acelp_core_mode进行解码的配置,以及添加lpd_mode!=0并且对arith_reset_flag(比特减少是0)进行解码的配置>lpd编码模式信息(lpd_mode)包括关于一个超帧的acelp和tcx的组成的信息。当仅使用tcx时,即使acelp比特分配信息(acelp_core_mode)未包括在比特流中,也不执行acelp解码。因此,解码是可用的。因此,通过读取在一个超帧中未使用acelp的信息或者读取仅使用tcx的信息,确定是否另外地分析acelp比特分配信息(acelp_core_mode)。当确定仅使用tcx时,针对所述超帧执行tcx解码。当包括acelp时,在acelp比特分配信息(acelp_core_mode)被另外地分析之后,可执行acelp或tcx解码。另外,当通过acelp对所述超帧中的所有帧进行解码时(lpd_mode=0),由于不执行tcx解码,因此arith_reset_flag是不必要的。因此,当lpd_mode为0时,读取arith_reset_flag信息并可随后通过tcx_coding()执行tcx解码。这里,由于arith_reset_flag信息是用于仅在超帧中的第一tcx帧中重设上下文的信息,因此通过读取arith_reset_flag并随后将arith_reset_flag重设为0来执行解码。以下示出语法lpd_channel_stream()的示例。另外,以下示出语法tcx_coding()的示例。<版本3:通过添加first_acelp_flag来在第一acelp帧中对acelp_core_mode进行解码的配置,以及添加lpd_mode!=0并且对arith_reset_flag(比特减少是0)进行解码的配置>仅在通过acelp编码的第一帧中确定first_acelp_flag是否为1。当first_acelp_flag为1时,读取acelp_core_mode,从而读取acelp比特分配信息。接下来,first_acelp_flag被设置为0。因此,可在不读取acelp_core_mode的情况下对下一acelp编码的帧进行解码。另外,当通过acelp对超帧中的所有帧进行解码时(lpd_mode=0),由于不执行tcx解码,因此arith_reset_flag是不必要的。因此,当lpd_mode为0时,读取arith_reset_flag信息,并且随后可通过tcx_coding()来执行tcx解码。这里,由于arith_reset_flag信息是用于仅在超帧中的第一tcx帧中重设上下文的信息,因此通过读取arith_reset_flag并随后将arith_reset_flag重设为0来执行解码。以下示出语法lpd_channel_stream()的示例。以下示出语法tcx_coding()的示例。<版本4:在不添加新的标记的情况下acelp_core_mode的解码是可选择的配置>如下修正lpd_mode_table。所述修正目标在于根据编码方法对表进行重构。因此,使用在超帧中的所有模式信息,通过分组并顺序排列仅包括acelp编码的模式、包括acelp编码和tcx编码两者的模式以及仅包括tcx编码的模式,来重构所述表。为此,这里,新定义new_lpd_mode。以下示出重构的表的示例。可使用如下语法定义所述表。仅在new_lpd_mode为21或更大时,通过读取acelp_core_mode来读取acelp比特分配信息,从而执行解码。因此,解码设备可被简化。所建议的用于对音频信号或语音信号进行解码的方法包括:分析根据编码顺序重构的新的lp编码模式(new_lpd_mode),根据所述新的lp编码模式的值确定是否读取acelp编码模式,当必要时读取acelp编码模式,并根据确定的acelp编码模式和new_lpd_mode来进行解码。将介绍一种用于使用acelp_core_mode和lpd_mode的冗余以及上述结构来减少使用的比特的方法。为了这个目的,上述new_lpd_mode表可被分类为如下的四个组,从而如下所示定义从属lpd_mode的表。<版本5:通过定义新的模式来减少比特数量的方法>基本上,lpd_mode使用5个比特。然而,实际26种情况是适用的并且6种情况仍被保留。由于在acelp_core_mode中很少使用模式6和模式7,因此可定义新的模式来代替模式6和模式7,从而另外地减少比特。由于acelp_core_mode需要被新定义,因此需要名称版本。为了与上述acelp_core_mode进行区别,将使用temporal_core_mode,其含义可被如下重新定义。新定义的temporal_core_mode包括acelp_core_mode中常用的模式以及从属new_lpd_mode中常用的模式。在如下示例中分配模式。当temporal_core_mode为0到5时,与从属new_lpd_mode(sub_new_lpd_mode)对应的new_lpd_mode_0以及与new_lpd_mode_1对应的new_lpd_mode是可选择的。这被定义为new_lpd_mode_01。由于总共21个元素具有new_lpd_mode_01,因此用于编码的最大可使用比特是5比特。new_lpd_mode_01意味着new_lpd_mode0至new_lpd_mode20的21种情况。各种编码方法可被应用于对所述21种情况进行编码。例如,可使用熵编码实现另外的比特减少。另外,当temporal_core_mode为6时可选择的new_lpd_mode与new_lpd_mode_2对应。通过2比特的编码对于从21至24的4种情况是可用的。另外,当temporal_core_mode为7时可选择的new_lpd_mode对应于new_lpd_mode_3。由于new_lpd_mode被限制为25,因此比特分配不必要。可如下配置使用以上定义的表的语法。所建议的用于对音频信号或语音信号进行解码的方法可包括:分析temporal_core_mode,其中,通过将具有高可用性的从属new_lpd_mode来代替低可用性模式分配到acelp编码模式中来重构temporal_core_mode;根据选择的temporal_core_mode来读取acelp编码模式和从属new_lpd_mode;使用读取的acelp编码模式和从属new_lpd_mode来确定acelp编码模式和new_lpd_mode;并根据确定的acelp编码模式和new_lpd_mode来执行解码。<版本6:甚至维持低可用性模式的配置>如上所述的版本5将从属new_lpd_mode分配给低可用性模式。然而,甚至低可用性模式也可通过以下方法被全部维持。首先,当acelp_core_mode的模式6和模式7被使用时,总共8种模式被使用并且3比特是必要的。在这种情况下,frame_mode被应用于分配new_lpd_mode的从属组。通过2比特来对frame_mode进行编码并且每个frame_mode具有下表中示出的含义。这里,根据frame_mode选择从属的new_lpd_mode。使用的比特根据每个从属new_lpd_mode而变化。如下构造使用以上定义的表的语法。所建议的用于对音频信号或语音信号进行解码的方法可包括:分析准备用于分配new_lpd_mode的从属组的frame_mode;读取与选择的frame_mode对应的acelp编码模式和从属new_lpd_mode;使用读取的acelp编码模式和从属new_lpd_mode来确定acelp编码模式和new_lpd_mode;并根据确定的acelp编码模式和new_lpd_mode执行解码。尽管已显示和描述了一些示例,但本公开不限于描述的示例实施例。而是,本领域的技术人员将理解,可对这些示例实施例进行改变。示例实施例包括计算机可读介质,所述计算机可读介质包括用于实现由计算机实施的各种操作的程序指令。所述介质还可单独包括程序指令、数据文件、数据结构、表等,或包括程序指令、数据文件、数据结构、表等的组合。所述介质和程序指令可以是为了示例实施例的目的而专门设计和构造的,或者所述介质和程序指令可以是对计算机软件领域的技术人员公知和可用的类型。因此,本发明的范围不限于描述的实施例,而是由权利要求及其等同物限定。当前第1页1 2 3 当前第1页1 2 3 
技术特征:
1.一种对音频信号或语音信号进行解码的设备,所述设备包括:
处理器,被配置为:
接收比特流,其中,所述比特流包括用于当前帧的编码模式的信息以及指示在不参考关于先前帧的信息的情况下对当前帧的解码是否可行的参数;
基于所述用于当前帧的编码模式的信息,确定当前帧是在线性预测域被编码还是在频域被编码;
基于所述参数,在所确定的域中对当前帧进行解码。
2.如权利要求1所述的设备,其中,所述用于当前帧的编码模式的信息被分配给每一帧。
3.如权利要求1所述的设备,其中,处理器被配置为:如果在不参考关于先前帧的信息的情况下对当前帧的解码可行,则将上下文重设信息设置为1。
4.如权利要求1所述的设备,其中,处理器被配置为:如果在不参考关于先前帧的信息的情况下对当前帧的解码不可行,则读取上下文重设信息。
5.如权利要求3所述的设备,其中,处理器被配置为:如果上下文重设信息被设置为1,则重设上下文。
6.如权利要求1所述的设备,其中,处理器被配置为:如果在不参考关于先前帧的信息的情况下对当前帧的解码可行,则将上下文重设信息设置为1并执行变换码激励解码。
7.如权利要求1所述的设备,其中,处理器被配置为:如果在不参考关于先前帧的信息的情况下对当前帧的解码不可行,则读取上下文重设信息并执行变换码激励解码。
8.如权利要求6所述的设备,其中,处理器被配置为:如果上下文重设信息被设置为1,则重设上下文。
技术总结
提供了一种用于对音频信号进行编码和解码的方法及设备。
技术研发人员:朱基岘;金重会;吴殷美;成昊相
受保护的技术使用者:三星电子株式会社
技术研发日:.01.27
技术公布日:.01.31