一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

音频发送器处理器、音频接收器处理器以及相关方法和计算机程序与流程

2021-10-08 21:27:00 来源:中国专利 TAG:信道 音频处理 文中 传输 有用


1.本发明涉及音频处理,并且具体地涉及在诸如无线信道之类的易错传输信道的上下文中有用的音频处理应用。


背景技术:

2.美国专利5,852,469公开了移动图像编码和/或解码系统以及可变长度编码和/或解码系统。编码器具有用于将编码器提供的码流划分为多个码串的划分器以及用于从头到尾正向排列多个码串中的至少一个和从尾到头反向排列其他码串中的至少一个的重新排序器。可变长度编码系统包括码字表,其用于存储多个码字,使得码字对应于源符号。编码器从码字表中选择与输入的源符号相对应的码字,并将所选码字作为编码数据输出。可以在正向和反向中的任一个方向上对多个码字进行解码。多个码字被配置为使得可以通过码字的预定权重(在二进制码的情况下,通过码字中“1”或“0”的数量)来检测码之间的停顿。
3.ep 1155498 b1公开了一种用于产生或读取包括作为参考点的多个光栅点的数据流的概念,其中,第一集合中的每个码字的至少一部分从段的光栅点开始在第一写入方向上写入,并且第二码字集中的码字的至少一部分从段的第二光栅点开始在与第一写入方向相反的第二写入方向上被写入到数据流中。如果第二集合的码字不适合或不完全适合段,则不适合所分配的段的该码字的至少一部分或该码字的其余部分根据预定规则被写入不同的、非完全占用的段。
4.该过程确保错误传播仅限于两个光栅点之间的空间。
5.mpeg

4音频标准第三部分[1]定义了bsac,其使用位切片算术编码,其中,心理声学相关性在音频帧上线性下降。
[0006]
mpeg

4音频标准第三部分[1]定义了aac的比特流有效载荷的错误敏感度类别([1]中的表4.94):
[0007][0008]
相关数据随后被存储在对应错误敏感度类的实例中以形成er aac有效载荷,随后可以使用前向纠错或检测手段对其进行单独保护。指定了数据元素到类别中的固定分配。由于熵编码,这导致了可变长度的类。需要传输这些长度以允许对er aac有效载荷进行解码,这会导致额外的开销。
[0009]
drm[2]针对aac的比特流有效载荷定义了超帧,以允许不相等的错误保护(aac_super_frame)。超帧由预定义数量(5个或10个)的aac帧组成。假设在比特流有效载荷的开头处可以使用aac帧的心理声学上更重要的比特。因此,每帧的前n个比特(例如,200个比特)被截取并连续存储在超帧的开头。这些比特随后由crc保护。这些帧的剩余比特随后在没有保护的情况下存储。由于始终将固定数量的数据视为敏感数据,因此不需要传输长度信息来对受保护的有效载荷进行解码(当然,需要超帧的各个帧的长度信息,但这不在目前考虑的范围内)。
[0010]
由mpeg

4音频标准第三部分中所述的bsac生成的帧已经按心理声学相关性排序;它从最重要的比特开始,并以最不重要的比特结束。这是以频谱线的所有比特的算术编码/解码的更高计算复杂性为代价的。
[0011]
由于mpeg

4第三部分中所述的aac方法的性质,各种错误敏感度类别的实例具有可变长度。这对于卷积码没有问题,但不适用于需要保护固定数量的数据的块码。
[0012]
如果比特流有效载荷已经基于各个比特的心理声学重要性进行了排列,则drm方法有效。


技术实现要素:

[0013]
本发明的目的是提供一种用于生成错误保护帧或用于处理所接收到的错误保护帧的改进的但有效的概念。
[0014]
该目的通过权利要求1所述的音频发送器处理器、权利要求23所述的音频接收器处理器、权利要求44所述的音频发送处理方法、权利要求45所述的音频接收处理方法、或权利要求46所述的计算机程序来实现。
[0015]
用于生成错误保护帧的音频发送器处理器使用对应于音频帧的编码音频数据,其中,该编码音频数据包括诸如比特或字节的第一数量的信息单元和第二数量的信息单元。帧构建器构建具有码字光栅的帧,码字光栅定义预定义总数的码字的参考位置,其中,该帧构建器被配置为:从码字的第一预定义子集的参考位置开始写入第一数量的信息单元中的信息单元,并从码字的第二预定义子集的参考位置开始写入第二数量的信息单元中的信息单元,其中,帧构建器确定第一数量的信息单元和第二数量的信息单元之间的边界,使得第二数量的信息单元的起始信息单元与码字边界重合。音频发送器处理器具有错误保护编码器,其用于分别处理预定义总数的码字以获得表示错误保护帧的多个处理后的码字,和/或用于处理第一预定义子集中的一个或多个码字以获得第一处理结果,和/或用于处理第二预定义子集中的一个或多个码字以获得第二处理结果,以及用于将第一处理结果或第二处理结果添加到预定义数量的码字,以获得多个处理后的码字。
[0016]
在接收器侧,用于处理所接收到的错误保护帧的音频接收器处理器包括用于接收错误保护帧的接收器接口。音频接收器处理器包括错误保护处理器,其用于处理错误保护帧以获得编码音频帧。具体地,错误保护处理器被配置为检查编码音频帧的码字的第一预定义子集是否包括错误。音频接收器处理器包括错误隐藏器或错误隐藏指示器,其被配置为在码字的第一预定义子集中检测到错误的情况下执行(全)帧丢失隐藏操作,或生成并转发指示要在远程位置进行帧丢失隐藏操作的错误隐藏指示。
[0017]
由于通过在接收器侧使用关于码字的第一预定义子集的信息,一方面对码字的第一预定义子集和另一方面对码字的第二预定义子集进行单独处理,因此获得了关于生成错误保护帧的非常有效的处理和关于错误检查的处理,因为第一集合的码字的预定义子集是预定义的,并且因此在没有任何特定的附加信号化(例如,每帧的信号化比特等)的情况下对解码器已知。这不是必需的;替代地,因为编码器使用第一码字的预定义子集来写入第一数量的信息单元,并且由于接收器或音频接收器处理器依赖于该预定义,因此一方面使有效的错误保护可用,并且另一方面使有效的错误检查可用。
[0018]
优选地,接收侧上的错误保护处理允许单独计算处理结果,例如,码字的第一子集中的两个或更多个码字而不是来自第二集合的任何码字的哈希值,并且同时,仅对来自码字的第二预定义子集中的码字而不是来自第一集合的任何码字计算哈希值允许在解码器侧进行有效的错误检查处理,因为仅必须使用特定数量的码字而不是所有码字来进行哈希验证。在接收机处理的早期,可以确定帧中是否出现严重错误,而最终导致需要进行全帧丢失隐藏操作,或者是否传输错误仅影响了相对不太重要的音频数据,使得仅需要更高质量的部分帧丢失隐藏操作来解决此类错误,或根本不需要隐藏操作。
[0019]
由于本发明经由特定的帧构建操作在一方面的音频编码和另一方面的错误保护处理之间形成桥梁的事实,因此由于对具有第一数量的数据的码字的第一预定义子集和具
有第二数量的数据的码字的第二预定义子集进行了单独的错误保护处理,可以在解码器侧上应用非常高效且非常高质量和智能的错误处理过程。优选地,第一数量的数据是心理声学上更重要的数据或者是辅助信息和可选的tns数据以及较低频谱值的最高和最低有效位,而第二数量的数据通常包括较高频率的最高和最低有效位,从心理声学的角度来看,其对音频感知不是那么重要。通常在第二数量的信息单元中的其他信息单元是在算术编码器的比特消耗没有完全消耗可用的比特预算的前提下生成的残余数据。
[0020]
具体地,将第一数量的信息单元和第二数量的信息单元写入第一和第二预定义子集,其中,第一数量的信息单元和第二数量的信息单元之间的边界被放置在码字边界处,以确保在非常重要的码字(即,码字的第一预定义子集)与不太重要的码字(例如,码字的第二预定义子集)之间发现清晰的分离。在音频编码器应用的编码操作是依赖于信号的编码操作的场景中,最终通过控制编码操作以及通过计算附加的残余比特导致适用于固定帧光栅的帧的音频数据的可变长度结果,例如,第一数量的信息单元和第二数量的信息单元之间的边界逐帧动态地变化。然而,心理声学上更重要的数据(例如,低频数据)包括在第一预定义子集中,并且因此,在发送器侧,仅检查码字的第一预定义子集会导致将执行全帧丢失隐藏的情况,而一旦在接收器侧已经确定了码字的第一预定义子集已无任何错误地被接收,就执行进一步的处理,例如进行对码字的第二预定义子集的检查。因此,一旦确定了码字的第一预定义子集有错误,就执行全帧丢失隐藏操作,例如,前一帧的重复或前一帧的修改重复或任何类似的操作,而不花费任何资源来进一步处理所接收到的错误帧。
[0021]
接收器处理器包括帧读取器,其用于根据识别码字的第一预定义子集和码字的第二预定义子集的预定义帧读取过程来读取编码音频帧。编码器侧帧构建器应用的任何音频数据处理顺序都可以取消/重新排列,或者对于直接读取过程而言对解码器是已知,使得当针对该第一预定义子集检测到无错误条件时,解码器可以至少关于第一预定义子集解析所接收到的帧,并且甚至在第二预定义子集的无错误条件也已被确定的情况下,解码器可以针对第二预定义子集解析所接收到的帧。
[0022]
帧读取器通常只需要在确定码字的第一预定义子集的无错误情况之后被激活。错误保护处理器只需要知道在错误保护处理器输出的数据帧中码字的第一预定义子集的位置,但出于错误检查的目的,不必知道已在哪个方向上将任何数据写入由码字表示的相应位置。
[0023]
优选地,心理声学上不太重要的数据位于帧中的特定位置,该特定位置可以位于帧的左边界或帧的右边界或帧内预定数量的码字/参考位置。期望将心理声学上更重要的数据与心理声学上不太重要的数据分开,或者需要在音频帧内重新排列心理声学上更重要的数据和心理声学上不太重要的数据。
[0024]
例如,当编码音频数据的帧是由尚未被定制为与特定错误保护处理器合作的预定义的和标准化的音频解码器生成时,需要重新排列以针对给定的错误保护和检测方案调整数据。取决于心理声学上更重要的数据和心理声学上不太重要的数据的可用性,这种重新排列允许单独的帧丢失隐藏过程。
附图说明
[0025]
随后将参照附图讨论本发明的优选实施例,在附图中:
[0026]
图1是原始lc3比特流有效载荷的示例的示意图;
[0027]
图2示出了图1中给出的示例lc3比特流有效载荷中的比特基于它们的心理声学相关性的分布;
[0028]
图3示出了lc3比特流有效载荷重新排列的示例;
[0029]
图4示出了lc3比特流有效载荷重新排列的另一示例,其中算术编码器/解码器在字节粒度上操作;
[0030]
图5示出了音频发送器处理器的优选实施方式;
[0031]
图6示出了实现帧构建的过程;
[0032]
图7示出了由图5的帧构建器执行的优选过程;
[0033]
图8示出了帧构建器的优选过程;
[0034]
图9a

9c示出了由图5的帧构建器构建的帧内的码字的第一预定义子集和码字的第二预定义子集的位置的示意性表示;
[0035]
图10示出了由帧构建器直接写入帧的优选实施方式;
[0036]
图11示出了图5的帧构建器的重新排列过程的优选实施方式;
[0037]
图12示出了图5的错误保护编码器的优选实施方式;
[0038]
图13示出了根据本发明的音频接收器处理器的优选实施方式;
[0039]
图14示出了错误保护处理器和错误隐藏器的优选过程;
[0040]
图15示出了错误保护处理器和错误隐藏器的另一优选实施方式;
[0041]
图16示出了部分帧丢失隐藏的隐藏频谱范围的示意性表示;
[0042]
图17示出了部分帧丢失隐藏的另一实施方式;
[0043]
图18示出了图13的帧读取器的优选实施方式;
[0044]
图19示出了帧读取器用于将所接收到的数据重新排列为特定标准(例如,标准化音频解码器)所需的帧格式的优选实施方式;
[0045]
图20示出了帧读取器为了直接读取错误保护帧的音频数据而进行的优选过程;
[0046]
图21示出了图5的音频编码器的优选实施方式;以及
[0047]
图22示出了图13的音频解码器的优选实施方式。
[0048]
随后,讨论了本发明在特定上下文中的优选实施方式。
具体实施方式
[0049]
比特是在编码过程中基于它们的心理声学相关性按时间顺序写入的,而不是按空间顺序写入的。最重要的数据最先写入,最不重要的数据最后写入。然而,“正常”音频帧内心理声学上不太重要的比特的位置可以因帧而异,具体取决于底层编码数据。例如,这可能是由于将数据从两侧写入帧,而从一侧写入算术编码数据,并且从另一侧同时写入通过其他方式编码的数据。这种方法的示例是lc3编解码器。
[0050]
预想具有两个比特类的系统。比特流有效载荷基于与输出的相关性被细分为两类:
[0051]
·
在心理声学上不太重要的比特(它们的失真允许部分帧丢失隐藏)被归为一类;
[0052]
·
在心理声学上更重要的比特(它们的失真需要全帧丢失隐藏)被归为另一类。
[0053]
这样做的原因是——取决于这两类的可用性——设想了不同的隐藏策略。这两种
不同的隐藏策略随后被称为全帧丢失隐藏和部分帧丢失隐藏:
[0054]
·
如果涵盖心理声学上更重要的比特的类丢失,则发生全帧丢失隐藏。涵盖心理声学上不太重要的比特的类的可用性无关紧要

不评估其数据。在这种情况下,当前帧没有数据可用,因此该帧完全基于最后接收到的帧进行合成。
[0055]
·
如果涵盖心理声学上更重要的比特的类可用,但涵盖心理声学上不太重要的数据的类丢失,则可能发生部分帧丢失隐藏。在这种情况下,心理声学上更重要的数据可用并可用于重建帧——只是心理声学上不太重要的数据需要基于最后完全接收到的帧进行合成。在许多情况下,部分帧丢失隐藏旨在提供比全帧丢失隐藏更好的质量(即,更少的伪影)。
[0056]
这两类的大小是例如由信道编码器预定义的。
[0057]
前向错误检测和校正方案优选地利用里德

所罗门码并在码字粒度上工作,而每个码字由多个半字节(4比特,也称为半八位字节)组成。在本例(lc3)中,一个码字由13至15个半字节组成。在优选实施例中,这种前向错误检测和校正方案提供不同程度的错误检测和校正,这取决于所花费的开销,例如
[0058]
·
每个码字4个半字节开销允许校正2个半字节(错误保护模式3);
[0059]
·
每个码字6个半字节开销允许校正3个半字节(错误保护模式4)。
[0060]
对于给定的总比特率,净比特率取决于所选的错误保护模式——错误检测和校正能力越高,可用的净比特率就越小。
[0061]
两个类都需要单独的错误检测。考虑到给定的信道编码配置,优选地将一类的所有比特存储到特定数量的码字中,并将另一类的所有比特存储到剩余数量的码字中。
[0062]
将比特流有效载荷内的比特细分为多个类,使得特定数量的码字始终包括一类的比特,而剩余数量的码字包括另一类的比特。
[0063]
如前所述,心理声学上不太重要的比特的位置可以因帧而异,具体取决于底层编码数据。
[0064]
然而,目标是将特定数量的心理声学上不太重要的比特分开以进行重新排列(允许单独的错误保护和检测结合信道编解码器提供的固定码字大小和位置)。
[0065]
必须在逐帧的基础上自适应地进行重新排列。对于这种重新排列,不需要额外的辅助信息(例如,长度信息)来恢复重新排列或对重新排列的比特流有效载荷进行解码。
[0066]
通常写入比特流有效载荷,使得可以以有效的方式实现写入和读取例程。心理声学重要性通常不起作用,这可能导致比特流有效载荷,其中,心理声学上不太重要的比特和心理声学上更重要的比特混合在一起。为了在前面提到的给定要求的上下文中允许有效前向错误保护,这种比特流有效载荷是次优的并且需要重新排列。
[0067]
由于心理声学上不太重要的比特的位置可以取决于底层编码数据因帧而异,因此不可能直接映射到固定的码字大小和位置。因此,

以一种直接的方法

相关比特被重新排列如下:
[0068]
·
心理声学上不太重要的比特存储在预排序比特流有效载荷的一端。
[0069]
·
心理声学上更重要的比特存储在预排序比特流有效载荷的另一端。
[0070]
心理声学上不太重要的比特数是基于错误保护模式和信道编码帧的大小静态导出的。
[0071]
然而,心理声学上不太重要的比特的位置是动态导出的。自适应重新排列规则是预定义的,使得不需要额外的辅助信息来在解码器侧撤销重新排列。适配规则确保心理声学上最不重要的比特总是存储在比特流的所选一侧的远端,同时确保解码器准确地知道如何恢复原始比特流有效载荷。
[0072]
一方面,在“正常”比特流有效载荷已被编码器完全写入之后,这种重新排列可以作为后处理步骤进行——并且在剩余的“正常”有效载荷被解码器读取之前,作为对辅助信息进行解码(其绝不是重新排列的一部分)之后的预处理步骤。
[0073]
另一方面,这种重新排列也可以在编码过程中进行,将编码比特直接写入适当的位置——并且在解码过程中,直接从适当的位置读取该比特。
[0074]
请注意,可以将心理声学上不太重要和心理声学上更重要的比特分配给专用码字。将心理声学上不太重要的比特分配给最左边的码字和将心理声学上更重要的比特分配给最右边的码字仅是一个优选实施例。因此,重新排列也可以取决于所选分配不同地进行。唯一的先决条件是分配是预定义的,使得解码器可以在没有比特流中的附加信息的情况下恢复该过程。
[0075]
可以考虑以下应用场景:
[0076]
1.应写入音频帧,使得在比特流的一端收集心理声学上不太重要的比特:
[0077]
a.开始从两侧写入针对较高有效位提供的区域。
[0078]
b.当两个写入指针相遇时停止。
[0079]
c.继续从两侧写入针对较低有效位提供的区域。
[0080]
2.以“正常”方式写入音频帧,但应重新排列,使得在比特流的一端收集心理声学上不太重要的比特:
[0081]
a.从两侧开始读取和解析帧。
[0082]
b.当读取针对较高有效位提供的比特数时停止:心理声学上不太重要的比特是两个读取指针之间的剩余比特。
[0083]
c.将左指针之前的数据与两个指针之间的数据进行交换。
[0084]
3.写入音频帧,使得在比特流的一端收集心理声学上不太重要的比特,但应以“正常”方式重新排列:
[0085]
a.从两侧开始读取帧。如果心理声学上不太重要的比特应存储在比特流的左侧,则从左侧读取心理声学上更重要的比特的起始点可以(意味着:等于)从针对心理声学上不太重要的比特提供的比特数导出。如果心理声学上不太重要的比特应存储在比特流的右侧,则从右侧读取心理声学上更重要的比特的起始点可以从针对心理声学上不太重要的比特提供的比特数和总比特数导出。
[0086]
b.当两个写入指针相遇时停止。
[0087]
c.将用于读取心理声学上更重要的比特的起始点之前的数据(参见a.)与该起始点和两个指针的会合点之间的数据进行交换。
[0088]
4.应读取音频帧,使得在比特流的一端收集心理声学上不太重要的比特:
[0089]
a.从两侧开始读取帧。如果心理声学上不太重要的比特应存储在比特流的左侧,则从左侧读取心理声学上更重要的比特的起始点可以从针对心理声学上不太重要的比特提供的比特数导出。如果心理声学上不太重要的比特应存储在比特流的右侧,则从右侧读
取心理声学上更重要的比特的起始点可以从针对心理声学上不太重要的比特提供的比特数和总比特数导出。
[0090]
b.当两个写入指针相遇时停止。
[0091]
c.继续从两侧读取帧的剩余部分。从右侧读取心理声学上不太重要的比特的起始点与从左侧读取心理声学上更重要的比特的起始点相同(参见a.)。
[0092]
图5示出了根据本发明的优选实施例的音频发送器处理器。音频发送器处理器优选地包括帧构建器506和错误保护编码器508。
[0093]
音频发送器处理器的输入是一定量的编码音频数据,例如,从输入音频编码器500的音频数据帧导出的音频数据,该音频编码器500通常是可变长度音频编码器。音频编码器所需的比特量取决于要编码的信号,但是,在优选实施方式中,音频数据的输出——通常以编码音频数据帧的形式——是固定长度的帧。因此,音频编码器通常以可变质量进行编码,使得难以编码的待编码音频数据帧最终以较低质量表示在编码音频数据中表示,而易于编码(即,可以用特定质量级别的较低数量的比特进行编码)的待编码音频数据帧最终以较高质量表示在音频编码器500的输出处表示。
[0094]
通常,音频编码器针对音频数据的特定(例如,时域)部分的输出包括第一数量的信息单元和第二数量的信息单元。在50%重叠添加的情况下,时域部分具有两倍的帧大小,即,新输入到编码器中或由解码器的重叠添加级输出的音频样本的数量。
[0095]
图5中的帧构建器506可以例如包括重新排列器502和随后连接的帧写入器504组成,或者可以例如在任何中间表示不是问题的情况下仅由帧写入器组成,该帧构建器506被配置用于构建具有码字光栅的帧,该码字光栅定义该帧的预定义总数的码字的参考位置。例如,参照图9a、图9b、图9c示出了这样的帧,其中,给出了不同的码字排列,并且其中,例如,预定义码字的参考位置被指示为竖直线,并且那些参考位置是码字的开始或码字的结尾或两者。这些参考位置或光栅点不需要任何特定的信息单元,而是由特定比特或字节位置给出,某些数据被写入该位置。因此,参考位置或光栅点不会产生任何开销,并且通常标记错误保护处理器的码字的开始或结束。
[0096]
根据本发明,帧构建器被配置为:从码字的第一预定义子集的参考位置开始写入第一数量的信息单元中的信息单元。
[0097]
从码字的第二预定义子集的参考位置开始写入第二数量的信息单元中的信息单元。帧构建器506被配置为:确定第一数量的信息单元和第二数量的信息单元之间的边界,使得第二数量的信息单元中的起始信息单元与码字边界重合。因此,一方面在发送器侧并且另一方面在接收器侧获得了第一数量的信息单元和第二数量的信息单元以及相应关联的错误保护过程之间的明确分离。
[0098]
音频发送器处理器附加地包括错误保护编码器508,其用于分别处理预定义数量的码字以获得表示错误保护帧的多个处理后的码字。对于该过程,错误保护编码器可以包括熵添加或块编码器,例如,里德

所罗门编码器。备选地或附加地,错误保护编码器可以包括另一非码字单独处理设备(例如,crc或哈希值处理器),其处理第一预定义子集中的一个或多个码字以获得第一处理结果(例如,第一哈希值)或者对第二预定义子集中的一个或多个码字进行处理以获得第二处理结果(例如,第二哈希值),并将处理结果或第一和第二处理结果之一添加到预定义数量的码字以获得多个处理后的码字。第一处理结果仅从第一预
定义子集导出,而第二处理结果仅从第二预定义子集导出。优选地,错误保护处理的顺序使第一和第二处理结果根据尚未经过任何错误冗余处理的码字(例如,输入到里德

所罗门编码器或任何其他错误保护块编码器的码字)计算。优选地,第一和第二处理结果以单独的附加码字被添加到码字的第一和第二预定义集合中,或者被添加到在第一或第二集合内仍然可用的空白空间,并且码字和诸如哈希值之类的处理结果通过里德

所罗门编码器处理器进行保护。
[0099]
由图5的错误保护编码器508获得的错误保护帧被转发到优选的无线发送器,例如,符合dect(数字增强型无绳电话)标准的设备。因此,该发送器510将错误保护帧发送到(无线)易错信道中。
[0100]
优选地,帧构建器506被配置为:基于第二预定义子集的信息容量确定第一数量的信息单元和第二数量的信息单元之间的边界,使得第二预定义子集的信息容量等于第二数量的信息单元的信息单元数量。一旦帧写入器504已经写入了等于整个帧的总数据量减去第二预定义子集的容量的数据量,就完成了音频帧的第一数量的数据,并且第二数量的数据从码字的第二个预定义子集中的第一码字的开始处开始。
[0101]
用于生成第一和第二数量的信息单元的音频编码器500或源编码器依赖于逐帧处理并使用音频信号的预定义时间部分。信息单元包括强制性信息单元集合,例如,由算术编码器或通常的可变长度编码器生成的数据。信息单元具有可变数量的残余信息单元,其提供音频信号的时间部分的改进质量表示,并且当算术编码器尚未完成比特预算时,该数据被写入比特流。源编码器500被配置为使用可变长度编码规则,其导致针对预定义时间部分的信号相关数量的信息单元。帧构建器被配置为构建编码音频帧,使得编码音频帧在编码信息单元中具有固定大小,并且音频编码器500被配置为确定残余信息单元的可变数量作为预定义帧大小和强制比特数之间的差异。
[0102]
优选地,帧构建器504被配置为:逐帧且信号自适应地确定第一数量的信息单元和第二数量的信息单元之间的边界,使得取决于帧的音频信号,边界表示与帧的不同音频信息相关或由音频解码器以不同方式解释的边界信息单元。优选地,边界信息单元指代和表示频谱域音频编码器中的特定频谱值或频谱值的特定组合,如优选地在音频编码器500内所使用的,并且稍后将参照针对编码器的图21和针对解码器的图22对其进行讨论。
[0103]
在本发明的优选实施方式中,帧写入器504或通常的帧构建器506被配置为:将第一数量的信息单元写入第一预定义子集中,如在图6中的600处标识的。在步骤601中,一旦第一子集填充了信息单元,确定第一和第二数量的信息单元之间的边界。如项602中所指示的,将第二数量的信息单元写入码字的第二预定义子集中。
[0104]
优选地,如图7所示,码字的第一预定义子集具有码字顺序和指定的参考位置。对于优选地也具有码字和参考位置的顺序的码字的第二预定义子集也是如此。
[0105]
图9a示出了在码字帧内排列码字的预定义子集的第一可能性。在图9a的实施例中,码字的第一子集是码字4、5、6、7,并且码字的第二子集是码字1、2、3。
[0106]
码字的第二子集中的码字——接收第二数量的信息单元(其优选地是心理声学上不太重要的音频数据)的码字——都彼此相邻并位于帧起始位置。码字的第一子集中的码字——接收第一数量的信息单元(其优选地是心理声学上更重要的音频数据)的码字——都彼此相邻并位于帧结束位置。
[0107]
码字的第一预定义子集由帧中的第四个码字以及从码字4到码字5、从码字5到码字6、以及从码字6到码字7的顺序或序列来预定义。第一预定义子集识别码字和写入方向上的码字顺序。在优选实施例中,帧构建器被配置为写入码字的第一子集,即,如在码字的参考位置处开始的箭头所指示的码字4、5、6、7。从左到右的写入操作在作为参考位置的第四个码字的起始处开始,并且反方向的写入在作为参考位置的第七个码字的结尾处(即,在帧结束位置处)开始。第二预定义子集也相应地识别码字和写入方向上的码字顺序。
[0108]
码字的第二子集由帧中的第一码字以及从第一个码字到第二个码字以及从第二个码字到第三个码字的顺序或序列来预定义。在码字或子集都彼此相邻的情况下,顺序或序列信息由写入或读取方向隐式地给出。再次,从左到右的左侧方向写入在第一个码字的帧起始位置处,并且从第二子集的右端(即,从码字3)的写入沿着向帧起始位置的方向从第三个码字的末尾开始。
[0109]
自然地,第一子集中和第二子集中的码字的数量是可以自由选择的,并且第二子集中的码字的数量越高,全帧丢失隐藏的必要性越低。然而,必须确保第一子集中的码字的数量足够大,使得当第二子集中的所有码字或例如第二子集的图9a实施例中的码字1和3是错误的时(其可以由图13中所示的音频接收器处理器检测到),可以进行质量可接受的部分帧丢失隐藏。
[0110]
图9b示出了第一预定义子集和第二预定义子集的备选实施方式。再一次,两个子集都定义了彼此相邻的码字,但是第一预定义子集现在与帧起始位置对齐,而码字的第二预定义子集现在与帧结束位置对齐。
[0111]
图9c示出了另一种备选方案,其中,第一子集和第二子集彼此不相邻地排列,即,第二子集中的码字(即,码字2)穿插在第一预定义子集中的两个码字(即,码字1和码字3)之间。图9c再次指示各个码字的写入方向,并且显而易见的是,例如码字编号5是从两侧写入的,并且在这种情况下,用于写入码字的第二子集的写入指针将在码字编号5内的某个地方相遇。
[0112]
在图9a至图9c的实施例中,码字表示上方的箭头指示当应用两个写入指针的优选实施方式时的写入方向,随后将参照图8对其进行讨论。具体地,如关于图9a至图9c所讨论的,帧构建器5被配置为:使用例如图9a所示的编码音频数据帧一侧处的预定数量的相邻码字作为码字的第二子集,或者使用例如参照图9a或图9b所示的编码音频数据帧的另一侧处的第一预定义数量的相邻码字作为码字的第一子集,其中,码字的第一预定义数量和码字的第二预定义数量之和等于码字的总预定义数量。备选地,如图9c所示,第一子集中的至少一个码字位于第二子集中的两个码字之间,或者反之亦然。
[0113]
优选地,帧构建器506被配置为:使用码字的第一子集的参考位置将第一数量的信息单元写入第一预定义子集,并且一旦第一预定义子集被填充,就将第二数量的信息单元在第二预定义子集的参考位置处写入,并且帧构建器506被配置为:将边界确定为写入第一预定义子集中的最后一个码字的最后一个信息单元,或在第二预定义子集中的第一码字的参考位置处写入的第一信息单元。优选地,以这样的方式选择第一和第二数量的信息单元,即,第一数量的信息单元中的所有或至少大部分信息单元在心理声学上比第二数量的信息单元中的大部分或所有信息单元更重要。
[0114]
备选地或附加地,并且如关于发送器侧所讨论的,当仅第二数量的信息单元中的
信息单元被检测为已损坏时,在音频接收器处理器中仅预想部分帧丢失隐藏,并且其中,当第一数量的信息单元中的信息单元被确定为已损坏时,在音频接收器处理器中预想全帧丢失隐藏。
[0115]
如稍后关于图1或图2所讨论的,编码信息单元来自至少两个类别,所述至少两个类别选自由以下项组成的组:固定长度辅助信息、可变长度辅助信息、时间噪声整形信息、频谱的第一频率部分的一个或多个最高有效位、频谱的第二频率部分的一个或多个最高有效位(其中,第二频率部分高于第一频率部分)、第一频率部分的一个或多个最低有效位或符号位、第二频率部分的一个或多个最低有效位或符号位、以及残余比特,其中,如果由音频编码器生成,则固定长度辅助信息、可变长度辅助信息、时间噪声整形信息、第一频率部分的频谱的一个或多个最高有效位、以及第一频率部分的一个或多个最低有效位或符号位被用作第一数量的信息单元的类别,并且其中,第二频率部分的最高有效位、第二频率部分的一个或多个最低有效位或符号信息单元或残余比特被用作第二数量的信息单元的类别。
[0116]
在图8所示的优选实施例中,使用了两个写入指针810、812。第一写入指针810被配置为在第一写入方向上操作和写入,并且第二写入指针812被配置为在与第一写入方向相反的第二写入方向上操作和写入。用于第一写入指针的数据通过第一受控输入获得并且例如从输入缓冲器802中获取,其中,存在任何可想象的音频编码器输出数据的形式或指定的中间格式(例如,标准化格式),例如关于图1针对lc3(低复杂度通信编解码器)音频编码器所讨论的。
[0117]
在第一示例情况中,输入缓冲器中的数据直接来自编码器。在这种情况下,数据在它们来自编码器时被获取。在该第一示例情况的示例中,编码器在第一受控输入804中写入谱线或谱线元组的lsb和符号,并在第二受控输入806中写入该相同谱线或谱线元组的msb。
[0118]
在第二示例情况中,数据源于已写入的帧。然后,控制器应用比特流或帧解析器读取比特流或帧,并以读取/解析顺序将数据提供给受控输入。在该第二示例情况的示例中,解析器读取谱线或谱线元组的lsb和符号,并将该数据提供到第一受控输入804中,并且解析器读取该相同谱线或谱线元组的msb,并将该数据提供到第二受控输入806中。
[0119]
存在第二受控输入806,其也访问输入缓冲器802并将数据提供给第二写入指针812,该第二写入指针812被配置为在第二(相反)方向上写入。控制器800被配置为至少控制第一和第二写入指针810、812,并且优选地附加地控制输入804、806。控制器接收第二集合的码字的数量或相应地不太重要的信息单元的数量(即,码字的第二预定义子集中的码字的容量)作为输入。控制器优选地已存储关于预定义的第一和第二子集以及相关联的顺序的信息,即,关于帧中的码字数量/位置和/或相应子集中的码字的顺序的信息。
[0120]
控制器800控制输入804、806。控制器针对第一数量的信息单元附加地将第一和第二指针设置到帧中的起始位置/地址。指针810递增,并且指针812同步地递减。
[0121]
控制器800检测到第一子集中的所有码字都被写入输出缓冲器,并且控制器针对第二数量的信息单元设置第一和第二指针的起始位置/地址,并且随后同步地按顺序递增/递减写入指针以附加地执行第二数量的信息单元的写入。优选地,控制器800执行的过程的顺序如图8所示,但也可以执行不同的顺序。然而,基于第一数量的信息单元何时被写入来确定第二数量的信息单元的开始是一种逐帧确定第一和第二数量的信息单元的自动且低效率且低复杂度的方式,即使音频编码器以依赖于音频信号的方式操作。
[0122]
如关于图10和图11所讨论的,存在几种用于帧构建器的应用。具体地,图10示出了执行直接写入时的过程。在步骤100中,帧构建器从音频编码器接收编码音频数据并确定码字的第一预定义子集。从两侧写入,并且当写入指针彼此相遇时停止写入,如项目101所示。继续写入码字的第二预定义子集,直到写入所有信息单元。具体地,如102所示,至少相对于一个写入指针在第二预定义子集的帧的开始或结束处继续写入。
[0123]
帧构建器还可以用于重新排列已经存在的比特流,例如,lc3比特流格式。在该过程中,编码音频帧以指定的/标准化的中间格式存在,其中,例如,第一集合的所有码字或第二集合的所有码字在最终要重新排列的帧的左侧或右侧处彼此相邻。
[0124]
在步骤200中,确定第一预定义子集。在步骤202中,从两侧读取并解析中间格式。在步骤204中,当读取到第一预定义子集中的信息单元的容量时,停止读取和解析。在具体实施例(例如图3所示,稍后将详细讨论)中,在步骤206中,通过将左指针之前的数据与指针之间的数据进行交换来写入帧。图11实施例中的写操作仅在步骤206中进行,因为步骤202至204仅涉及读取和解析等过程。写入不必是如在关于图10讨论的直接写入中的递增或递减写入,而是通过对某些连续数量的信息单元进行交换来完成写入。
[0125]
图12示出了图5所示的错误保护编码器508的优选实施方式。在第一步骤210中,错误保护处理器508仅从码字的第一预定义子集计算第一哈希值,而不需要来自码字的第二子集中的任何码字。在步骤212中,仅从第二预定义子集计算第二哈希值,即,不需要来自第一预定义子集中的任何码字。
[0126]
在步骤214中,第一和第二哈希值被添加到帧的子集中,如214所示。在步骤216中,对子集和哈希值执行诸如里德

所罗门编码的块编码,以获得被转发到优选地无线发送器510的错误保护帧,该发送器例如是符合dect的发送器。
[0127]
图21示出了典型的音频编码器或源编码器(例如,音频编码器500),但是音频编码器500也可以由以可变长度方式操作的任何其他音频编码器来实现,即,当质量保持相同时,针对音频信号的时间部分生成特定数量的比特,该时间部分因帧而异。
[0128]
音频信号被输入到分析窗口器52中,该窗口器52优选地以重叠方式操作,即,具有小于窗口的时间长度的时间提前值。该数据是帧的(窗口化)时间部分,并且被输入到时间

频率变换54中,该变换54优选地被实现为mdct(修正离散余弦变换)。
[0129]
在框56中,执行可选的时间噪声整形操作,其由频率上的预测组成。tns级56的输出是预测残差值,并且另外,tns辅助信息优选地被输出到熵编码器60中,熵编码器60是诸如算术编码器的可变长度熵编码器。mdct输出频谱值或tns频谱残差值由量化器58量化,量化器58可以或可以不以心理声学方式控制,并且量化的数据被输入到诸如算术编码器的可变长度熵编码器。音频编码器附加地包括残余编码器,其用于在可变长度熵编码器没有完全消耗可用比特预算时生成为了以附加比特填充帧所必需的残余比特。可以使用或不使用的其他特征是噪声填充、全局增益应用或频谱噪声整形。在框60的输出处,比特流多路复用器被布置为从框60接收数据,这些数据可以是msb、lsb和符号以及其他数据。
[0130]
在图22所示的解码器侧,存在可变长度熵解码器,其再次是例如算术解码器。可变长度熵解码器的结果被输入到去量化器74中,并且当tns处理可用时,去量化器74的输出由逆tns处理器处理,或者当不执行tns时,去量化器74的输出被转发到频率

时间逆变换,其可以是例如mdct逆变换,如图22中78所示。框78的输出被转发到合成窗口和重叠/添加处理
器80,其最终获得时域解码音频信号。由逆tns处理器74使用的tns数据通常从比特流导出,并且甚至优选地从可变长度熵解码器导出,但是也可以使用其他方式来编码、处理和传输数据。
[0131]
随后,参照图1至图4讨论本发明的优选实施方式。该实施例依赖于图9a所示的码字的第一和第二预定义子集的顺序和排列,但同样适用于其他排列。随后的实施例给出了比特级别的清楚细节,但是,当然,特定图仅是实施例,并且显而易见的是,也可以使用其他详细的图/数字。
[0132]
本节中的重点示例性地在于重新排列场景,以将数据与给定的错误保护和检测方案对齐,允许取决于心理声学上更重要的数据和心理声学上不太重要的数据的可用性来进行单独的帧丢失隐藏过程。
[0133]
基于lc3比特流有效载荷说明优选实施例。该比特流有效载荷大致可以细分为以下类别(见前文):
[0134]
1.辅助信息,固定部分(纯红色)和可变部分(对角线红白条纹)
[0135]
2.tns,算术编码(tns
arith
)
[0136]
3.频谱的msb,算术编码(msb spec
arith
)
[0137]
4.频谱的lsb和符号(lsb

sign spec)
[0138]
5.残余
[0139]
请注意,频谱是通过频谱元组编码的,而每个元组表示两条后续的频谱线。
[0140]
箭头指示写入和读取方向。写入/读取顺序如下:
[0141]
1.辅助信息的固定部分是从右到左写入的。
[0142]
2.辅助信息的可变部分是从右到左写入的。
[0143]
3.算术编码的tns数据是从左到右写入的。
[0144]
4.频谱的算术编码的msb以及频谱的lsb和符号是同步写入的(逐频谱线,从表示最低频率的频谱线开始),而算术编码的msb是从左到右写入的,并且lsb和符号(未进行算术编码)是从右到左写入的。
[0145]
5.如果这两个数据部分之间剩余有比特,则从右到左写入残余比特。
[0146]
虽然第1类和第2类始终被视为在心理声学上很重要,但第3类至第5类通常被视为在心理声学上不太重要。然而,该区域内所有这些比特的相关性不是恒定的:
[0147]
·
表示残余的比特是最不重要的;
[0148]
·
表示频谱元组的比特在心理声学上越不重要,覆盖的频谱线表示的频率越高,即
[0149]
·
表示覆盖具有较高频率的频谱线的频谱元组的比特不太重要;
[0150]
·
表示覆盖具有较低频率的频谱线的频谱元组的比特更重要。
[0151]
图1和图2示出了基于心理声学相关性的比特分布。红色指示高相关性;绿色指示低相关性。存在两个过渡阶段,并且它们均在逐帧的基础上动态地变化。
[0152]
比特流中最后写入的比特是在心理声学上最不重要的比特。他们的位置是可变的。它可以通过检查直到剩下被视为在心理声学上不太重要的给定数量的比特为止,在写入或读取(和解析)比特流时直接确定。该给定数量涵盖了特定数量的频谱线(msb以及lsb和符号)的比特和残余。频谱的覆盖范围从表示最高频率的线开始。给定的不太重要的比特
数越高,上限频率就越低,如果这些不太重要的比特失真,则上限频率可以被成功地解码。
[0153]
被视为在心理声学上不太重要的码字的数量n
pccw
,以及被视为在心理声学上不太重要的比特的数量,是调谐参数。该调谐参数优选地根据错误保护码的特性来确定。对于lc3中的一个实施例,取决于作为错误保护码的特性的示例的保护强度(错误保护模式m)和时隙大小n
s
,已实验性地导出最佳大小,其指定信道道编码帧的大小,即,以字节为单位的总帧大小。这体现在以下公式中:
[0154][0155]
图3给出了重新排列前后的音频帧以及信道编解码器提供的码字的分配的示例。它还示出了在解码器侧对重新排列的比特流有效载荷的解析。
[0156]
本示例中的总比特率为76800比特/秒,以10ms为一帧,产生每帧96个字节。对于该帧长度,信道编解码器提供13个码字:3个总大小为7字节的码字和10个总大小为7.5字节的码字。使用错误保护模式4(=3字节保护开销),fec(前向错误校正)开销为39个字节,剩余57个字节用于有效载荷,分为3个净大小为4字节的码字和10个净大小为4.5字节的码字。
[0157]
图3a示出了一帧中被分成57个字节分组的比特流有效载荷,总共产生456个比特[0:455]。红色框对应于静态辅助信息,而红色/白色形状的区域对应于动态辅助信息,取决于编码数据,动态辅助信息可以因帧而异。
[0158]
被视为不太重要的比特以蓝色示出,由比特边界b_left和b_right界定(在给定示例中,b_left=184,b_right=315)。从最高频率开始,该区域与残余比特重叠,并附加地覆盖“msb spec
arith”和“lsb sign spec”中的比特。“msb spec
arith”中的比特数量通常高于“lsb sign spec”中的比特数量,因为通常对msb进行编码所消耗的每频谱线比特多于对lsb和符号进行编码所消耗的每频谱线比特。
[0159]“msb spec
arith”到b_left(从左到右写入,以绿色示出)和“lsb sign spec”到b_right(从右到左写入,以白色示出)共同表示从零赫兹到到目前为止编码的最高频率的频谱元组。如果还有一个频谱元组应被认为在心理声学上不太重要,则至少一个边界会向外移动;如果还有一个频谱元组应被认为在心理声学上更重要,则至少一个边界会向内移动。
[0160]
图3b示出了重新排列后的帧:蓝色部分[184:315]与绿色部分[0:183]进行交换。请注意,蓝色部分可以比绿色部分更小、大小相同或更大。
[0161]
图3c显示作为输入到信道编解码器的13个码字的有效载荷。
[0162]
图3d示出了所接收到的比特流有效载荷。它示例性地示出了两个失真的码字。
[0163]
图3e示出了解码过程。它示例性地示出了封装在两个比特边界be_bp_left和be_bp_right之间的失真比特。由该范围内的比特表示的频谱元组的频率仓应通过部分帧丢失隐藏进行合成。
[0164]
显然,比特流有效载荷内的比特向两个预想类的分配不直接映射到信道编码器提供的码字。
[0165]
在给定示例中,图3a中b_left和b_right之间的部分[184:315]被分配给第二类,而其他比特[0:183]和[316:455]被分配给第一类。这里,图3a中分配给第二类的比特[184:315]在不增加第二类码字数量的情况下不适合图3c中的码字结构。第二类将部分位于码字
6[184:203]中、完全位于码字7至9[204:311]中、以及部分位于码字10[312:315]中。因此,需要重新排列,如图3b所示:现在第二类[0:131]完全适合前四个码字1至4。
[0166]
在给定示例中,4个码字属于第二类,并且9个码字属于第一类。要存储在任一类中的比特的数量受到该类码字提供的有效载荷比特数量的限制。在给定示例中,码字1至3均提供4个字节的有效载荷,而码字4至13均提供4.5个字节的有效载荷。这导致
[0167]
·
3*4字节 1*4.5字节=16.5字节,用于在心理声学上不太重要的比特,以及
[0168]
·
9*4.5字节=40.5字节,用于在心理声学上更重要的比特。
[0169]
虽然在心理声学上不太重要的比特的数量(block_size)是预先确定的,但边界(b_left和b_right)的位置在逐帧的基础上变化。在重新排列后,这些比特总是位于同一位置,这实现了有效的信道编码。
[0170]
在编码器侧,比特流bs_enc被重新排列如下:
[0171][0172]
其中,len是帧的净大小(以比特为单位),并且block_size是较低有效位的数量。
[0173]
在解码器侧,在对比特流进行解码时确定边界b_right,即,读取“1.msb spec
arith”和“1.lsb sign spec”的两个指针彼此相遇的边界(见图3e)。从前向错误保护配置(错误保护模式和码字数量n
pccw
)可以获知在心理声学上不太重要的比特的数量。在解码器侧对帧bs_rearranged重新排列如下:
[0174][0175]
如果在帧bs_rearranged上没有应用误码,则bs_enc等于bs_dec。
[0176]
如前所述,重新排列可以作为后处理步骤进行,也可以直接在写入/读取过程中进行。
[0177]
以下参数是静态的:
[0178]
1.时隙大小n
s
以八位字节(字节)为单位指定信道编码帧的大小。在给出的示例中,n
s
=96。
[0179]
2.n
cw
指定用于对数据帧进行编码的码字的数量
[0180][0181]
在给出的示例中,n
cw
=13。
[0182]
3.针对i=0..n
cw

1定义的参数l
i
以半八位字节(即,半字节)指定第i个码字的长度,并且由下式给出:
[0183][0184]
在给出的示例中,l
1..3
=14,l
4..13
=15。请注意,在图3c中以不同方式进行枚举。
[0185]
4.指定(rs)码i在错误保护模式m中的汉明距离(hamming distance)的参数d
i,m

下式给出:
[0186]
d
i,m
:=2m

1针对i=0..n
cw
‑1[0187]
其中,m>1。在给出的示例中,d
i,m
=2*4

1=7。
[0188]
5.分配给在心理声学上不太重要的比特的码字的数量是基于帧长度和错误保护模式导出的(见上文)。在给出的示例中,
[0189]
6.部分隐藏块的大小(以半八位字节为单位)可以被导出为:
[0190][0191]
在给出的示例中,n
pc
=33。
[0192]
7.不太重要的比特的数量(block_size)可以被导出为:
[0193]
block_size=4n
pc
[0194]
在给出的示例中,block_size=132。
[0195]
8.相应地,写入tns数据的起始点是已知的(从左边起16.5个字节)。
[0196]
需要对编码器侧的每一帧进行以下操作:
[0197]
1.从比特流有效载荷的右端开始,从右到左写入固定部分的辅助信息。
[0198]
2.从辅助信息的固定部分的左端开始,从右到左写入辅助信息的可变部分,
[0199]
3.从数据流有效载荷的左端开始block size,从左到右写入tns数据。
[0200]
4.从tns数据的右端开始,从左到右写入频谱数据的msb“1.msb spec
arith”,直到b_left block_size

1=b_right;并且1从辅助信息的左端开始,从右到左写入频谱数据的lsb和符号“1.lsb sign spec”,直到b_left block_size。请注意,事先不知道b_left和b_right。
[0201]
5.当读取“1.msb spec
arith”和“1.lsb sign spec”的两个指针相遇时(见图3e中箭头),确定边界b_left block_size

1=b_right。
[0202]
6.从比特流有效载荷的左边界开始,继续从左到右写入频谱数据的msb“2.msb spec
arith”;并且从block_size

1开始,继续从右到左写入频谱数据的lsb和符号“2.lsb sign spec”。
[0203]
7.从频谱数据的lsb和符号的左端开始,从左到右写入残余。
[0204]
解码器侧的读取可以类似于所描述的编码器侧的写入。
[0205]
图3示出了写入或读取重新排列的比特流有效载荷的过程。图3a示出了“正常”比特流有效载荷,而图3b示出了重新排列的比特流有效载荷。如上所述,可以立即写入或读取该重新排列的比特流有效载荷。备选地,重新排列也可以作为编码器侧的后处理或解码器侧的预处理来执行。然而,该重新排列过程需要解析比特流,如下所示:
[0206]
·
原始顺序

重新排列的顺序:b_left和b_right需要通过计算要写入的剩余比特来找到——如果该数量等于block_size,则到达边界。
[0207]
·
重新排列的顺序

原始顺序:b_right需要通过观察读取“1.msb spec
arith”和“1.lsb sign spec”的指针来找到——当两个指针相遇时,到达边界。
[0208]
虽然表示在心理声学上不太重要的比特的比特范围由信道编解码器预先确定,但b_left和b_right可以位于任意比特位置。
[0209]
在一个优选实施例中,算术编码器/解码器在字节粒度上进行操作。在该示例中,b_left已经落到字节边界。这反映在图3a中,其中,b_left=184。
[0210]
然而,由于底层信道编码器(图3c)在半字节(4比特)粒度上操作,block_size可以不是字节的倍数,并且因此b_right也可以不落在字节边界上。在这种情况下,在如上所述的重新排列之后将出现失配。在给定示例中,这种失配在字节17[128:135](图3e)中可见,其中,算术解码器必须在比特位置132处开始解码,比特位置132不是字节边界。
[0211]
为了解决这个问题,现在将block_size导出为:
[0212][0213]
图4示出了该实施例的示例,考虑了与图3中给出的参数相同的参数。这里,block_size=136比特,即,b_right现在也在字节边界上,导致算术解码器的起始点位于比特位置136,即,整数字节位置17处(图4e,算术解码器从对tns
arith
进行解码开始)。字节17[132:135]的右半字节(以蓝白色条纹显示)现在包含被视为在心理声学上不太重要的比特,尽管它被分配给旨在覆盖在心理声学上更重要的数据的码字。这具有以下影响:
[0214]
·
如果码字5中存在不可校正的比特错误,则即使错误仅影响字节17的右半字节(即,比特[132:135]),整个帧也将利用全帧丢失隐藏来合成。
[0215]
·
如果码字5至13是好的,而码字4中存在不可校正的比特错误,其可能正好位于字节17的左半字节(即,比特[128:132]),则字节17的右半字节仍然可以被解码,因为它是在好的码字5中编码的。
[0216]
值得注意的是:
[0217]
·
如果b_left不像如图3给出的示例中那样在字节边界上,则它可以稍微向下一个左字节边界偏移。
[0218]
·
属于在心理声学上不太重要的数据的频谱元组的数量可以略有增加,而属于在心理声学上更重要的数据的频谱元组的数量可以相应地略有减少。因此,在一些受损情况下,可能会发生以下情况:可以被解码的频率元组的数量少于在半字节/比特粒度情况下的频率元组的数量。然而,在质量方面,这将产生边际影响,但允许更有效地实现算术编码器/解码器。
[0219]
尽管以上事例解决了粒度彼此为整数关系的情况,但是在粒度的非整数关系的情况下或者在算术编码器粒度低于错误保护粒度的情况下使用类似的处理。
[0220]
比特流重新排列(将在心理声学上不太重要的比特与在心理声学上更重要的比特分开)的优选方法的特征是,这些比特是由音频编码器/解码器按时间顺序(而不是空间顺序)写入或读取的,从高重要比特开始并以低重要比特结束,因为两个比特流写入器同时写入比特流,或者两个比特流读取器同时从比特流中读取(在本例中为沿不同方向),并且由于可变长度编码,没有给出先验信息,其中,当写入或读取特定数量的数据时,定位这两个写入或读取指针。一旦写入了该数量的数据,或者一旦解析了(即,读取和评估)该数量的数据,这样的位置才被知晓——因为写入或读取了特定数量的数据,或者因为在写入或读取过程中两个指针已经彼此相遇。
[0221]
尽管在编码步骤之后或在解码步骤之前作为后处理或预处理的重新排列是可能的,但是直接写入或读取重新排列的比特流是优选的,因为重新排列需要附加的解析步骤。
[0222]
随后,参照图13至图20讨论了本发明与解码器侧或接收器侧相关的优选实施例。
[0223]
图13示出了用于处理所接收到的错误保护帧的音频接收器处理器。音频接收器处理器包括接收器接口300,其用于接收错误保护帧并将错误保护帧输出到错误保护处理器302。错误保护处理器302被配置用于对错误保护帧进行处理以得到编码音频帧。具体地,错误保护处理器接收关于第一或第二预定义子集的信息,并且优选地,仅来自第一预定义子集,并且甚至仅接收关于属于第一预定义子集中的码字的信息。该信息足以使错误保护处理器302可以检查从错误保护处理器302导出的编码音频帧的码字的预定义子集是否包括错误。
[0224]
错误保护处理器302处理错误保护帧,输出具有码字的帧,并且附加地生成具有码字的帧(通常是固定长度帧)在码字的第一预定义子集中是否具有错误的信息。
[0225]
在该上下文中,值得一提的是,输入到图5的音频发送器处理器的错误保护编码器508的码字或由音频接收器处理器的错误保护处理器302输出的码字也可以被认为是有效载荷码字,并且由音频接收器处理器的错误保护处理器302输出的码字或输入到图5的音频发送器处理器的错误保护编码器508的码字仅被称为码字。
[0226]
音频接收器处理器包括错误隐藏器或错误隐藏指示器304,其被配置为在码字的第一预定义子集中检测到错误的情况下执行帧丢失隐藏操作,或生成要在例如远程位置执行的这种错误隐藏操作的指示。
[0227]
音频接收器处理器包括帧读取器306和随后连接的音频解码器308。帧读取器306可以由错误保护处理器302或错误隐藏器或错误隐藏指示器304控制。具体地,在错误保护处理器302确定码字的第一预定义子集中的错误导致典型的全帧丢失隐藏的情况下,帧读取器306和音频解码器308可以以这些块不必再针对该帧操作的方式来控制。
[0228]
如果错误保护处理器302确定码字的第二预定义子集中有错误,但码字的第一预定义子集中没有错误,则控制帧读取器306在码字的第一预定义子集中读取,但可以跳过对码字的第二预定义子集的读取,因为已经检测到错误,或者如果不是码字的第二预定义子集中的所有码字都是错误的,则至少可以跳过对已经在其中检测到错误的特定码字的读取。
[0229]
在错误保护处理器302已经确定码字的两个子集都没有错误的情况下(即,不包含任何尚未被错误保护处理器过程纠正的错误),则帧读取器306被配置为:使用关于第一和第二预定义子集的预定义信息来读取第一和第二预定义子集中的编码音频数据,并且帧读取器306可以以任何形式或指定的中间格式输出所读取的音频数据,用于由音频解码器308处理的目的。
[0230]
当错误隐藏器或错误隐藏指示器304已经被错误保护处理器302控制以执行部分丢帧隐藏时,错误隐藏器可以产生合成音频数据并将该合成音频数据转发到音频解码器308,使得音频解码器可以使用该隐藏数据,例如,更高的频谱值或残余数据,而不是在第二码字的第二集合中的传输但受错误影响的音频数据。取决于实施方式,图13中的错误隐藏器或错误隐藏指示器304或帧丢失隐藏器使用来自一个或多个较早帧的数据,并且隐藏器304可以集成到音频解码器中,使得两个功能相互集成。在错误隐藏指示器的情况下,在远离错误保护处理器的地方进行隐藏,并且音频解码器从设备304接收执行隐藏的指示。
[0231]
优选地,错误保护帧具有两级错误保护。第一级错误保护是由发送器侧的块编码
器(例如,里德

所罗门编码器)引入的冗余。另一和第二道保护是一方面在码字的第一预定义子集和另一方面在码字的第二预定义子集上计算一个或多个哈希码。
[0232]
尽管错误保护处理器,并且具体地是错误保护处理器应用的块码(例如,里德

所罗门码)可以检测和校正若干错误,但情况可能是:一些错误在没有任何检测或没有任何校正的情况下在里德

所罗门解码中幸存,或者错误校正在错误的方向上“校正”了错误。为了也找到这些错误,使用里德

所罗门解码操作输出的传输哈希值执行哈希验证,并将该传输哈希值与从解码后的码字的第一(或第二)预定义子集中导出的哈希值进行比较。
[0233]
图14示出了优选实施方式。在步骤400中,执行具有错误检测/校正的里德

所罗门解码。该过程产生具有码字和传输的第一和第二结果值的解码帧,这些结果值优选地被实现为哈希值。在步骤402中,从第一预定义子集计算第一哈希值,并且在步骤404中,将计算出的第一哈希值与传输的第一哈希值进行比较。如果两个哈希值相等,则过程进行到步骤406。然而,在两个哈希值不相等的情况下,如步骤408所示,已经检测到错误并停止处理,并且开始全帧丢失隐藏。
[0234]
然而,当已经确定了第一哈希值与传输的第一哈希值彼此相等时,执行步骤406,其中,第二哈希值被计算,并与传输的第二哈希值进行比较。如果两个哈希值不相等,则应用步骤410中指示的过程,即,执行部分帧丢失隐藏。然而,当确定关于码字的第二预定义子集的两个哈希值相等时,控制帧读取器和音频解码器以执行无错误解码操作。图14所示的过程优选地由错误隐藏器或错误隐藏指示器304和/或由错误保护处理器302来实现。
[0235]
图15示出了图14的框410中示出的部分帧丢失隐藏的优选实施方式。在步骤420中,确定码字的第二预定义子集中的所有码字中是否只有一个或多个码字是错误的。为此,例如从诸如里德

所罗门解码器的块解码器或按每个码字进行的crc校验接收信息。通常,里德

所罗门解码器将指示码字的第二预定义子集中的码字或哪个码字是错误的。例如,框420指示只有一个或两个码字是错误的,而第二预定义码字集的其他码字是正确的。这些其他未损坏码字的数据尽可能多地用于正常解码或部分隐藏。在步骤422中,读取第二子集的一个或多个非错误块或码字。
[0236]
在步骤424中,确定一个或多个错误码字反映了诸如频谱范围或残余数据之类的含义。为此,关于码字的第二预定义子集的码字顺序和参考位置的信息是有用的。步骤424确定错误码字的含义,使得步骤426可以合成错误块的隐藏数据,例如,由框424确定的频谱范围。备选地,一种错误隐藏也可以是简单地跳过已被指示为损坏的残余数据,使得在仅残余数据被损坏的无问题情况下,将要在无错误码字的情况下获得的残余解码和相应的质量改进根本不作为一种错误隐藏过程来执行。
[0237]
然而,在确定特定频谱范围被损坏的情况下,该频谱范围的隐藏数据由框426生成。
[0238]
在框428中,对来自第一预定义子集的读取数据和来自第二预定义子集中的码字的正确数据和隐藏数据进行组合和解码,以最终获得由部分帧丢失隐藏过程产生的音频信号的时间部分(帧)的解码音频信号。
[0239]
图16示出了由框424执行的过程的一般表示。通过解析具有错误数据的比特流,确定与这些数据表示的频谱值相关的数据的含义,以获得隐藏频谱范围。然而,这些数据的实际值并未被使用,因为它们已经被确定为是错误的。步骤424和426之后的过程的结果将是:
获得无错误的频谱范围数据,直到隐藏边界和合成/隐藏数据代替的错误频谱数据存在于隐藏边界和最大频率之间的频谱范围内。然而,在其他实施例中,情况可能是:隐藏频谱范围没有完全延伸到最大边界,而是仅覆盖隐藏边界和低于音频解码器所需的最大频率的另一边界之间的特定频谱范围。音频解码器仍然接收在隐藏边界和最大频率之间正确接收到的数据。
[0240]
在实施例中,错误隐藏器或错误隐藏指示器304被配置为生成替代数据,然后该数据被解码,或者通常由解码器与无错误数据一起使用。在另一实施例中,错误隐藏器或错误隐藏指示器304仅产生错误隐藏指示,并且该指示由诸如图13的解码器308的音频解码器评估,如框304和308之间的连接线所示,其中,连接线携带错误隐藏指示。然后,音频解码器在没有特定音频解码操作(尽管通常,错误隐藏指示被“解码”或解释)的情况下,例如使用来自较早帧或启发式过程或其他相关过程中的数据来采取必要的错误隐藏措施。
[0241]
图17示出了使用关于图1、图2、图3或图4所讨论的或由图21中的音频编码器获得的数据的情况。在步骤430中,将对应于正确的最高有效位的最高频率确定为隐藏边界。备选地,也可以将msb和lsb/符号位的最高频率中的最大值确定434为隐藏边界。
[0242]
在步骤432中,较高频率值被完全合成或使用可能获得的lsb或符号位合成:尽管较高频率的msb位被损坏,但lsb或符号位仍可用于与损坏的msb位对应的频谱值。在步骤436中,当错误数据覆盖比隐藏边界更低频率值的lsb或符号位时,错误数据也被合成。合成过程的输出是图16示意性示出的隐藏频谱范围内的频谱值形式的合成/隐藏数据。
[0243]
图18示出了图13的帧读取器306的优选实施方式。帧读取器优选地包括输入缓冲器442和输出缓冲器452或到音频解码器的直接输出。帧读取器306包括控制器440、在第一读取方向上操作的第一受控输入指针444和在第二读取方向上操作的第二受控输入指针446。第一受控输入指针444可以对第一写入指针448进行馈送,并且第二受控输入指针446可以对第二写入指针450进行馈送。
[0244]
如图8中的800所示的编码器侧的相应控制器,接收器侧的指针实现的控制器440也接收关于第二预定义子集中的码字数量的信息或关于在心理声学上不太重要的信息单元的总数或容量的信息。
[0245]
另外,在尽可能多地使用来自码字的第二预定义子集的数据的情况下,控制器440可以从错误保护处理器接收第二子集中的错误码字的指示,如关于图17所讨论的。如果不是这种情况,并且如果确定码字的第二预定义子集中的至少一个码字是错误的,并且因此,被码字的第二预定义子集覆盖的所有频谱数据都由错误隐藏操作生成作为合成或隐藏数据,不需要从错误保护处理器到控制器440的任何控制。
[0246]
然而,控制器440的过程类似于图8的控制器800,但交换了写入和读取的概念。具体地,图18中的控制器440控制写入点以例如用于数据交换,或通过增量写入来控制写入点。在如图19的上下文中讨论的布置的情况下进行数据交换,而针对图20所示的直接解码执行递增/递减过程。
[0247]
控制器440针对第一数量的信息单元设置帧中的第一和第二指针的起始位置/地址,然后同步地递增/递减输入(读取)指针。控制器440检测到第一子集中的所有码字都从输入缓冲器中读取,并随后针对第二数量的信息单元设置第一和第二指针的起始位置/地址,并同步递增/递减读取指针,直到所有剩余数据都被读取。
[0248]
在第一示例情况下,从解码器请求写入输出缓冲器452的数据,因为只有解码器(特别是熵解码器和/或残余解码器)知道需要来自哪个指针的多少信息单元或比特。在示例中,如熵解码器所要求的,解码器从第一写入指针448接收频谱线或频谱线元组的lsb和符号,并且从第二写入指针450接收该相同频谱线或频谱线元组的msb。
[0249]
在第二示例情况下,数据将被写入特定帧。然后,控制器应用语法控制的比特流或帧读取器,以用于基于特定的帧语法经由指针444、446从输入缓冲器442读取比特,然后经由框448和450将数据写入输出缓冲器452或写入传输设备。在示例中,语法控制的比特流或帧读取器经由例如指针446读取频谱线或频谱线元组的lsb和符号,并且所读取的数据经由框450写入缓冲器452,并且语法控制的比特流或帧读取器经由例如指针448读取该相同的频谱线或频谱线元组的msb,并且所读取的数据经由框448写入输出缓冲器452。
[0250]
因此,在优选实施例中,图13的音频解码器308通常包括解析器和渲染器。解析器由图22的框71和72组成,并且渲染器包括图22的剩余框,因为在该实施例中,在没有算术或一般熵解码的情况下不能确定行或行元组的msb部分或者行或行元组的msb/符号部分需要多少编码比特。在转码操作的情况下,解析器在没有后续渲染器的情况下使用,因为转码操作输出使用与输入帧相比不同的语法编写的帧。
[0251]
图19示出了当例如控制器440或通常图13的帧读取器306执行重新排列操作时的优选实施方式。在步骤456中,确定输入(读取)指针的起始位置,使得码字的第一预定义子集被读取。在该过程中,情况例如是:码字的第二子集被收集在帧的开始或结束处的相邻码字中。步骤456接收第二码字的数量或第二信息单元数量作为输入。另外,在码字的第二预定义子集位于帧的末尾的情况下,步骤456也需要每帧的信息单元总数。
[0252]
在步骤458中,当读取指针彼此相遇时,过程停止,并且在该事件中,确定帧中的会合位置。在步骤460中,将读取起始位置之前的数据与该位置和会合位置之间的数据进行交换。
[0253]
在框460的输出处,已经获得了指定的/标准化的中间帧格式。
[0254]
图20示出了用于直接解码目的的帧读取器306的过程。步骤470再次接收第二码字的数量或第二数量的信息单元。步骤470可能需要每帧的信息单元总数。然后,确定输入(读取)指针的起始位置以读取第一预定义子集。步骤470以及步骤456控制读取指针444、446。在步骤472中,当读取指针彼此相遇并获得相遇位置时,过程停止。在步骤474中,从两侧继续读取剩余部分,其中,反向读取的起点为第一步中所确定的起点。在框474的输出处,获得用于直接解码应用的音频解码器的数据。
[0255]
虽然已经在装置的上下文中描述了一些方面,但是将清楚的是,这些方面还表示对应方法的描述,其中,块或设备对应于方法步骤或方法步骤的特征。类似地,在方法步骤上下文中描述的方面也表示对相应块或项或者相应装置的特征的描述。
[0256]
取决于某些实现要求,可以在硬件中或在软件中实现本发明的实施例。实现方式可以使用其上存储有电子可读控制信号的数字存储介质(例如,软盘、dvd、cd、rom、prom、eprom、eeprom或flash存储器)来执行,与可编程计算机系统协作(或能够协作),使得执行相应方法。
[0257]
根据本发明的一些实施例包括具有电子可读控制信号的数据载体,其能够与可编程计算机系统协作以便执行本文所述的方法之一。
[0258]
通常,本发明的实施例可以实现为具有程序代码的计算机程序产品,程序代码可操作以在计算机程序产品在计算机上运行时执行方法之一。程序代码可以例如存储在机器可读载体上。
[0259]
其他实施例包括存储在机器可读载体或非暂时性存储介质上的用于执行本文描述的方法之一的计算机程序。
[0260]
换言之,本发明方法的实施例因此是具有程序代码的计算机程序,该程序代码用于在计算机程序在计算机上运行时执行本文所述的方法之一。
[0261]
因此,本发明方法的另一实施例是其上记录有计算机程序的数据载体(或者数字存储介质或计算机可读介质),该计算机程序用于执行本文所述的方法之一。
[0262]
因此,本发明方法的另一实施例是表示计算机程序的数据流或信号序列,该计算机程序用于执行本文所述的方法之一。数据流或信号序列可以例如被配置为经由数据通信连接(例如,经由互联网)传送。
[0263]
另一实施例包括处理装置,例如,计算机或可编程逻辑器件,所述处理装置被配置为或适于执行本文所述的方法之一。
[0264]
另一实施例包括其上安装有计算机程序的计算机,该计算机程序用于执行本文所述的方法之一。
[0265]
在一些实施例中,可编程逻辑器件(例如,现场可编程门阵列)可以用于执行本文所述的方法的功能中的一些或全部。在一些实施例中,现场可编程门阵列可以与微处理器协作以执行本文所述的方法之一。通常,方法优选地由任意硬件装置来执行。
[0266]
上述实施例对于本发明的原理仅是说明性的。应当理解的是,本文所述的布置和细节的修改和变形对于本领域其他技术人员将是显而易见的。因此,旨在仅由所附专利权利要求的范围来限制而不是由借助对本文的实施例的描述和解释所给出的具体细节来限制。
[0267]
参考文献
[0268]
[1]“iso/iec14496

3 mpeg

4 information technology

coding of audio

visual objects

part 3:audio”,2009.
[0269]
2]“etsi es 201 980digital radio mondiale;system specification,”2014.
[0270]
[3]“etsi tr 103 590v1.1.1(2018

09)digital enhanced cordless telecommunications(dect);study of super wideband codec in dect for narrowband,wideband and super

wideband audio communication including options of low delay audio connections(lower than 10ms framing)”。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜