CN105474313A - 使用质量控制的时间缩放器、音频解码器、方法和计算机程序 - Google Patents

使用质量控制的时间缩放器、音频解码器、方法和计算机程序 Download PDF

Info

Publication number
CN105474313A
CN105474313A CN201480046485.6A CN201480046485A CN105474313A CN 105474313 A CN105474313 A CN 105474313A CN 201480046485 A CN201480046485 A CN 201480046485A CN 105474313 A CN105474313 A CN 105474313A
Authority
CN
China
Prior art keywords
time
scaling
sample block
audio signal
input audio
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
CN201480046485.6A
Other languages
English (en)
Other versions
CN105474313B (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.)
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Original Assignee
Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
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 Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV filed Critical Fraunhofer Gesellschaft zur Forderung der Angewandten Forschung eV
Priority to CN201910588534.3A priority Critical patent/CN110211603B/zh
Publication of CN105474313A publication Critical patent/CN105474313A/zh
Application granted granted Critical
Publication of CN105474313B publication Critical patent/CN105474313B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/02Speech 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 using spectral analysis, e.g. transform vocoders or subband vocoders
    • G10L19/022Blocking, i.e. grouping of samples in time; Choice of analysis windows; Overlap factoring
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/03Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters
    • G10L25/06Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the type of extracted parameters the extracted parameters being correlation coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Quality & Reliability (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Data Mining & Analysis (AREA)
  • Studio Circuits (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Electric Clocks (AREA)
  • Electrically Operated Instructional Devices (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)
  • Escalators And Moving Walkways (AREA)

Abstract

一种用于提供输入音频信号的时间缩放版本的时间缩放器配置为计算或估计可通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量。所述时间缩放器配置为取决于可通过对所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计,来执行所述输入音频信号的时间缩放。一种音频解码器包括这种时间缩放器。

Description

使用质量控制的时间缩放器、音频解码器、方法和计算机程序
技术领域
根据本发明的实施例涉及一种用于提供输入音频信号的时间缩放版本的时间缩放器。
根据本发明的另外实施例涉及一种用于基于输入音频内容来提供已解码音频内容的音频解码器。
根据本发明的另外实施例涉及一种用于提供输入音频信号的时间缩放版本的方法。
根据本发明的另外实施例涉及一种用于执行所述方法的计算机程序。
背景技术
音频内容(包括常规音频内容,如音乐内容、话语内容、混合常规音频/话语内容)的存储及传输是重要的技术领域。由以下事实引起特别挑战:收听者期望音频内容的连续播放,而没有任何中断,且没有由音频内容的存储和/或传输引起的任何可听到的假象。同时,需要使关于存储方式及数据传输方式的要求保持尽可能地低,以将成本保持在可接受的限度内。
例如,如果从存储介质的读出暂时被中断或延迟,或如果在数据源与数据宿之间的传输暂时被中断或延迟,则会造成问题。例如,经由因特网的传输并不十分可靠,这是由于TCP/IP分组可能会丢失,且由于在因特网上的传输延迟可以(例如)取决于因特网节点的变化的负载情形而变化。然而,为了具有令人满意的用户体验,需要音频内容的连续播放,而没有可听到的“间隙”或可听到的假象。此外,需要避免将由大量音频信息的缓冲引起的实质延迟。
鉴于以上论述,可认识到,甚至在不连续提供音频信息的情况下仍然需要提供良好音频质量的概念。
发明内容
根据本发明的实施例创建了一种用于提供输入音频信号的时间缩放版本的时间缩放器。所述时间缩放器配置为计算或估计可通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量。此外,所述时间缩放器配置为取决于可通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计来执行对所述输入音频信号的时间缩放。根据本发明的这一实施例是基于以下理念:存在输入音频信号的时间缩放将导致实质可听到的失真的情形。此外,根据本发明的实施例是基于以下发现:质量控制机制通过评估所需的时间缩放是否将实际提供输入音频信号的时间缩放版本的足够质量来有助于避免这种可听到的失真。因此,时间缩放不仅受到所需的时间伸展或时间收缩控制,且也受到可获得的质量评估的控制。因此,举例而言,如果时间缩放将导致输入音频信号的时间缩放版本的不可接受的低质量本则推迟时间缩放。然而,也可使用输入音频信号的时间缩放版本的(预期)质量的计算估计来调整时间缩放的任何其他参数。总之,在以上提到的实施例中使用的质量控制机制有助于减少或避免应用时间缩放的系统中的可听到的假象。
在优选实施例中,所述时间缩放器配置为使用所述输入音频信号的第一样本块及所述输入音频信号的第二样本块执行重叠相加操作(其中所述输入音频信号的所述第一样本块与所述输入音频信号的所述第二样本块可以是属于单一帧或属于不同帧的重叠或不重叠样本块)。所述时间缩放器配置为相对于所述第一样本块对所述第二样本块进行时间移位(例如,当与所述第一样本块及所述第二样本块相关联的原始时间线比较时),以及对所述第一样本块和时间移位的第二样本块进行重叠相加,从而获得所述输入音频信号的时间移位版本。根据本发明的这一实施例是基于以下发现:使用第一样本块及第二样本块的重叠相加操作通常导致良好的时间缩放,其中在许多情况下,相对于第一样本块调整第二样本块的时间移位允许使失真保持合理地小。然而,也已发现,引入检查第一样本块与时间移位的第二样本块的预想的重叠相加是否实际导致输入音频信号的时间缩放版本的足够质量的额外质量控制机制有助于以甚至更好的可靠性避免可听到的假象。换句话说,已发现,在已识别第二样本块相对于第一样本块的所需(或有利)时间移位后执行质量检查(基于可通过时间缩放获得的输入音频信号的时间缩放版本的质量估计)是有利的,这是由于此过程有助于减少或避免可听到的假象。
在优选实施例中,所述时间缩放器配置为计算或估计所述第一样本块与时间移位的第二样本块之间的所述重叠相加操作的质量(例如,预期质量),以便计算或估计可通过所述时间缩放获得的所述输入音频信号的时间移位版本的(预期)质量。已发现,重叠相加操作的质量实际上对可通过时间缩放获得的输入音频信号的时间缩放版本的质量具有较强的影响。
在优选实施例中,所述时间缩放器配置为取决于确定所述第一样本块或所述第一样本块的一部分(例如,右侧部分,也即,在所述第一样本块的末端的样本)与所述第二样本块或所述第二样本块的一部分(例如,左侧部分,也即在所述第二样本块的开头的样本)之间的类似程度来确定所述第二样本块相对于所述第一样本块的时间移位。这种概念是基于以下发现:确定第一样本块与时间移位的第二样本块之间的类似性提供了对重叠相加操作的质量的估计,且因此也提供对可通过时间缩放获得的输入音频信号的时间缩放版本的质量的有意义估计。此外,已发现,可使用适度计算复杂性以良好的精确度来确定第一样本块(或第一样本块的右侧部分)与时间移位的第二样本块(或经时间移位的第二样本块的左侧部分)之间的类似程度。
在优选实施例中,所述时间缩放器配置为针对所述第一样本块与所述第二样本块之间的多个不同时间移位,确定与在所述第一样本块或所述第一样本块的一部分(例如,右侧部分)与所述第二样本块或所述第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息,并且基于针对该多个不同时间移位的与类似程度有关的所述信息确定将用于所述重叠相加操作的(候选)时间移位。因此,第二样本块相对于第一样本块的时间移位可以选择以适用于音频内容。然而,可以在确定将用于重叠相加操作的(候选)时间移位后,执行包括可通过输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的(预期)质量的计算或估计的质量控制。换句话说,通过使用质量控制机制,可确保基于针对多个不同时间移位的与在第一样本块(或第一样本块的一部分)与第二样本块(或第二样本块的一部分)之间的类似程度有关的信息所确定的时间移位实际上导致足够良好的音频质量。因此,可有效地减少或避免假象。
在优选实施例中,所述时间缩放器配置为取决于的目标时间移位信息而确定所述第二样本块相对于所述第一样本块的时间移位,所述时间移位将用于所述重叠相加操作(除非响应于不足的质量估计而推迟所述时间移位操作)。换句话说,考虑目标时间移位信息并且进行以下尝试:确定第二样本块相对于第一样本块的时间移位,使得第二样本块相对于第一样本块的时间移位接近由目标时间移位信息描述的目标时间移位。因此,可以实现通过第一样本块与时间移位的第二样本块的重叠相加获得的(候选)时间移位与(由目标时间移位信息定义)要求一致,其中如果可以通过时间缩放获得的输入音频信号的时间缩放版本的(预期)质量的计算或估计指示不足的质量,则可防止重叠相加操作的实际执行。
在优选实施例中,所述时间缩放器配置为基于与在所述第一样本块或所述第一样本块的一部分(例如,右侧部分)与按照所确定的时间移位进行时间移位的所述第二样本块或按照所确定的时间移位进行时间移位的所述第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息,计算或估计可通过所述输入音频信号的时间缩放获得的所述输入音频信号的时间移位版本的质量(例如,预期质量)。已发现,第一样本块或第一样本块的一部分与按照所确定的时间移位进行时间移位的第二样本块或按照所确定的时间移位进行时间移位的第二样本块的一部分之间的类似程度构成用于决定可通过时间缩放获得的输入音频信号的时间缩放版本是否具有足够质量的良好准则。
在优选实施例中,所述时间缩放器配置为基于与在所述第一样本块或所述第一样本块的一部分(例如,右侧部分)和按照所确定的时间移位进行时间移位的所述第二样本块或按照所确定的时间移位进行时间移位的所述第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息决定是否实际执行时间缩放。因此,使用第一(通常在计算上较简单且不十分可靠)算法的识别为候选时间移位的时间移位的确定后接着是质量检查,其是基于与在第一样本块(或第一样本块的一部分)和按照所确定的时间移位进行时间移位的第二样本块(或按照所确定的时间移位进行时间移位的第二样本块的一部分)之间的类似程度有关的信息。基于所述信息的“质量检查”通常比仅确定候选时间移位更可靠,且因此用以最终决定是否实际上执行时间缩放。因此,如果时间缩放将导致过多可听到的假象(或失真),则可以防止时间缩放。
在优选实施例中,所述时间缩放器配置为在可通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计指示大于或等于质量阈值的质量的情况下,相对于第一样本块对第二样本块进行时间移位,并且对所述第一样本块与时间移位的第二样本块进行重叠相加,从而获得所述输入音频信号的时间移位版本。所述时间缩放器配置为取决于对使用第一类似性度量评估的在所述第一样本块或所述第一样本块的一部分(例如,右侧部分)和所述第二样本块或所述第二样本块的一部分(例如,左侧部分)之间的类似程度的确定,来确定所述第二样本块相对于所述第一样本块的时间移位。所述时间缩放器还配置为基于与使用第二类似性度量评估的在所述第一样本块或所述第一样本块的一部分(例如,右侧部分)与按照所确定的时间移位进行时间移位的所述第二样本块或按照所确定的时间移位进行时间移位的所述第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息,计算或估计可通过所述输入音频信号的时间缩放获得的所述输入音频信号的时间移位版本的质量(例如,预期质量)。第一类似性度量和第二类似性度量的使用允许以适度计算复杂性快速确定第二样本块相对于第一样本块的时间移位,并且也允许以高精确度计算或估计可通过输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。因此,即使将通常在计算上简单的第一类似性度量用于确定第二样本块相对于第一样本块的(候选)时间移位(其中当确定第二样本块相对于第一样本块的候选时间移位时,使用如第二类似性度量的高计算复杂性的类似性度量通常将过于要求严格),使用两个不同类似性度量的两步骤过程允许组合第一步骤中的比较小的计算复杂性与第二(质量控制)步骤中的高精确度,并且允许减少或避免可听到的假象。
在优选实施例中,所述第二类似性度量在计算上比所述第一类似性度量复杂。因此,可以以高精确度执行“最终”质量检查,而可按有效率的方式执行第二样本块相对于第一样本块的时间移位的容易确定。
在优选实施例中,所述第一类似性度量是互相关、或归一化的互相关、或平均幅度差函数、或平方误差之和。优选地,所述第二类似性度量是针对多个不同时间移位的互相关或归一化的互相关的组合。已发现,互相关、归一化的互相关、平均幅度差函数或均方误差之和允许对第二样本块相对于第一样本块的(候选)时间移位的良好且有效率的确定。此外,已发现,为针对多个不同时间移位的互相关或归一化的互相关的组合的类似性度量是用于评估(计算或估计)可通过时间缩放获得的输入音频信号的时间缩放版本的质量的十分可靠的量。
在优选实施例中,所述第二类似性度量是至少四个不同时间移位的互相关的组合。已发现,至少四个不同时间移位的互相关的组合允许对质量的精确评估,这是由于也可以通过确定至少四个不同时间移位的相关性来考虑信号随时间的变化。同样,可以通过使用至少四个不同时间移位的互相关性而在一定程度上考虑谐波。因此,可以实现可获得的质量的特别好的评估。
在优选实施例中,所述第二类似性度量为针对间隔所述第一样本块或所述第二样本块的音频内容的基频的周期持续时间的整数倍的时间移位所获得的第一互相关值与第二互相关值以及针对间隔所述音频内容的基频的周期持续时间的整数倍的时间移位所获得的第三互相关值与第四互相关值的组合,其中获得第二互相关值的时间移位与获得该第三互相关值的时间移位间隔该音频内容的基频的周期持续时间的一半的奇数倍。因此,该第一互相关值和第二互相关值可以提供关于音频内容是否在时间上至少大致固定的信息。类似地,该第三互相关值及该第四互相关值也可提供关于音频内容是否在时间上至少大致固定的信息。此外,第三互相关值及第四互相关值相对于第一互相关值及第二互相关值“在时间上偏移”的事实允许考虑谐波。总之,基于第一互相关值、第二互相关值、第三互相关值与第四互相关值的组合的第二类似性度量的计算带来高度精确性,及因此带来可通过时间缩放获得的输入音频信号的时间缩放版本的(预期)质量的计算(或估计)的可靠结果。
在优选实施例中,根据q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)或根据q=c(p)*c(-p)+c(-1/2*p)*c(1/2*p)获得所述第二类似性度量q。在以上等式中,c(p)是第一样本块与在时间上移位(相对于彼此,且相对于原始时间线)第一样本块或第二样本块的音频内容的基频的周期持续时间p的所述第二样本块之间的互相关值。c(2*p)是第一样本块与在时间上移位2*p的第二样本块之间的互相关值。c(3/2*p)是第一样本块与在时间上移位3/2*p的第二样本块之间的互相关值。c(1/2*p)是第一样本块与在时间上移位1/2*p的第二样本块之间的互相关值。c(-p)是第一样本块与在时间上移位-p的第二样本块之间的互相关值,且c(-1/2*p)是第一样本块与在时间上移位-1/2*p的第二样本块之间的互相关值。已发现,以上等式的使用导致可通过时间缩放获得的输入音频信号的时间缩放版本的(预期)质量的特别好且可靠的计算(或估计)。
在优选实施例中,所述时间缩放器配置为将基于可通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的计算或估计的质量值和可变阈值进行比较,以决定是否应执行时间缩放。可变阈值的使用允许调适所述阈值以用于决定是否应针对该情形执行时间缩放。因此,在一些情形下,可以提高用于执行时间缩放的质量要求,且在其他情形下可降低所述质量要求,例如取决于先前时间缩放操作或信号的任何其他特性。因此,可进一步增加是否执行时间缩放的决策的重要性。
在优选实施例中,所述时间缩放器配置为响应于对于时间缩放的质量将针对一个或多个先前样本块不足够的发现,减小所述可变阈值,从而降低质量要求。通过减小可变阈值,可避免在延长的时段中省略时间缩放,这是因为此可导致缓冲器欠载运行或缓冲器超限运行,且将因此比由时间缩放引起产生一些假象更有害。因此,可以避免将由时间缩放的过度延迟引起的问题。
在优选实施例中,所述时间缩放器配置为响应于时间缩放已经应用于一个或多个先前样本块的事实,增大所述可变阈值,从而提高质量要求。因此,可以确保只在可达到比较高的质量等级(比“正常”质量等级高)的情况下才对后续的样本块进行时间缩放。相比之下,如果时间缩放将不能满足比较高的质量要求,则防止一连串后续样本块的时间缩放。这是适当的,因为将时间缩放应用至多个后续的样本块将通常导致假象,除非时间缩放满足比较高的质量要求(其通常比在仅时间缩放单一样本块而非一连串相邻样本块的情况下可应用的“正常”质量要求高)。
在优选实施例中,所述时间缩放器包括范围有限的第一计数器,用于对因为已达到可通过所述时间缩放获得的所述输入音频信号的时间移位版本的相应质量要求而已经进行时间缩放的样本块的数目或帧的数目进行计数。此外,所述时间缩放器包括范围有限的第二计数器,用于对因为尚未达到可通过所述时间缩放获得的所述输入音频信号的时间移位版本的相应质量要求而尚未进行时间缩放的样本块的数目或帧的数目的、进行计数。所述时间缩放器配置为取决于所述第一计数器的值及取决于所述第二计数器的值计算所述可变阈值。通过使用范围有限的第一计数器及范围有限的第二计数器,获得用于调整可变阈值的简单机制,其允许使可变阈值适宜的各种情形,同时避免阈值的过小或过大值。
在优选实施例中,所述时间缩放器配置为将与所述第一计数器的值成比例的值与初始阈值相加,并且从中减去与所述第二计数器的值成比例的值以便获得所述可变阈值。通过使用这种概念,可以非常简单的方式获得可变阈值。
在优选实施例中,所述时间缩放器配置为取决于可通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计而执行所述输入音频信号的时间缩放,其中对所述输入音频信号的时间缩放版本的质量的所述计算或估计包括对在所述输入音频信号的时间移位版本中的将由时间缩放引起的假象的计算或估计。通过对在输入音频信号的时间缩放版本中的将由时间缩放引起的假象进行计算或估计,可以使用用于质量的计算或估计的有意义的准则,这是因为假象将通常使人类收听者的听觉印象退化。
在优选实施例中,对所述输入音频信号的时间移位版本的所述(预期)质量的计算估计包括对在所述输入音频信号的时间移位版本中的将由所述输入音频信号的后续样本块的重叠相加操作引起的假象的计算或估计。已认识到,重叠相加操作可能是当运行时间缩放时的主要假象源。因此,已发现这是计算或估计将由输入音频信号的后续样本块的重叠相加操作引起的输入音频信号的时间缩放版本的假象是一种有效率的方法。
在优选实施例中,所述时间缩放器配置为取决于所述输入音频信号的后续样本块的类似程度来计算或估计可通过所述输入音频信号的时间缩放获得的述输入音频信号的时间缩放版本的(预期)质量。已发现,如果输入音频信号的后续块或样本包括比较高的类似性,则通常可以以良好的质量执行时间缩放,而如果输入音频信号的后续样本块包括实质差异,则通常由时间缩放产生失真。
在优选实施例中,所述时间缩放器配置为计算或估计在可通过所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本中是否存在可听到的假象。已发现,可听到的假象的计算或估计提供良好地适宜于人类听觉印象的质量信息。
在优选实施例中,所述时间缩放器配置为在可通过所述时间缩放获得的所述输入音频信号的时间移位版本的所述(预期)质量的所述计算或估计指示不足的质量的情况下将时间缩放推迟至后续帧或至后续样本块。因此,有可能在因为产生较少假象而更适宜于时间缩放的时间执行时间缩放。换句话说,通过取决于可通过时间缩放实现的质量来灵活地选择运行时间缩放的时间,可以改进输入音频信号的时间缩放版本的听觉印象。此外,这种想法是基于以下发现:时间缩放操作的轻微延迟通常不提供任何实质问题。
在优选实施例中,所述时间缩放器配置为在可通过所述时间缩放获得的所述输入音频信号的时间移位版本的所述(预期)质量的所述计算或估计指示不足的质量的情况下,将时间缩放推迟至所述时间缩放较难被听到的时间。因此,可通过避免可听到的失真来改进听觉印象。
根据本发明的实施例创建了一种用于基于输入音频内容来提供已解码音频内容的音频解码器。所述音频解码器包括抖动缓冲器,其配置为对表示音频样本块的多个音频帧进行缓冲。所述音频解码器也包括解码器内核,其配置为基于从所述抖动缓冲器接收的音频帧来提供音频样本块。此外,所述音频解码器包括如上概述的基于样本的时间缩放器。该基于样本的时间缩放器配置为基于由该解码器内核提供的音频样本块来提供时间缩放的音频样本块。此音频解码器是基于以下理念:配置为取决于对可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计而执行输入音频信号的时间缩放的时间缩放器良好地适宜于在包括抖动缓冲器及解码器内核的音频解码器中使用。抖动缓冲器的存在允许(例如)在可通过时间缩放获得的输入音频信号的时间缩放版本的预期)质量的计算或估计指示将获得不良质量的情况下,推迟时间缩放操作。因此,包括质量控制机制的基于样本的时间缩放器允许避免或至少减少包括抖动缓冲器及解码器内核的音频解码器中的可听到的假象。
在优选实施例中,所述音频解码器还包括抖动缓冲器控制器。所述抖动缓冲器控制器配置为将控制信息提供给该基于样本的时间缩放器,其中所述控制信息指示是否应该执行基于样本的时间缩放。替代地,或另外,所述控制信息可以指示所需的时间缩放量。因此,可取决于音频解码器的要求来控制基于样本的时间缩放器。举例而言,抖动缓冲器控制器可执行信号自适应控制,且可以按信号自适应方式选择应该执行基于帧的时间缩放还是基于样本的时间缩放。因此,存在额外的灵活度。然而,基于样本的时间缩放器的质量控制机制以可(例如)超越由抖动缓冲器控制器提供的控制信息,使得即使在由抖动缓冲器控制器提供的控制信息指示应该执行基于样本的时间缩放的情况下仍然避免(或停用)基于样本的时间缩放。因此,“智能”的基于样本的时间缩放器可以超越抖动缓冲器控制器,这是因为基于样本的时间缩放器能够获得与可通过时间缩放获得的质量有关的更详细信息。总之,基于样本的时间缩放器可受到由抖动缓冲器控制器提供的控制信息导引,但如果质量将因遵循由抖动缓冲器控制器提供的控制信息而实质上受到危害,则仍然可以“拒绝“时间缩放,这有助于确保令人满意的音频质量。
根据本发明的另一实施例创建了一种用于提供输入音频信号的时间缩放版本的方法。所述方法包括计算或估计可通过所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量(例如,预期质量)。所述方法还包括取决于可通过所述时间缩放获得的所述输入音频信号的时间移位版本的所述(预期)质量的所述计算或估计,来执行所述输入音频信号的时间缩放。这种方法基于与以上提到的时间缩放器相同的考虑。
根据本发明的又一实施例创建了一种计算机程序,其用于当该计算机程序正在计算机上运行时执行所述方法。所述计算机程序基于与所述方法且和以上描述的抖动缓冲器相同的考虑。
附图说明
随后将参考附图描述根据本发明的实施例,其中:
图1示出了根据本发明的实施例的抖动缓冲器控制器的方框示意图;
图2示出了根据本发明的实施例的时间缩放器的方框示意图;
图3示出了根据本发明的实施例的音频解码器的方框示意图;
图4示出了根据本发明的另一实施例的音频解码器的方框示意图,其中示出了对抖动缓冲器管理(JBM)的概述;
图5示出了用以控制PCM缓冲程度的算法的伪程序代码;
图6示出了用以根据接收时间和RTP分组的RTP时间戳来计算延迟值和偏移值的算法的伪程序代码;
图7示出了用于计算目标延迟值的算法的伪程序代码;
图8示出了抖动缓冲器管理控制逻辑的流程图;
图9示出了具有质量控制的经修改的WSOLA的方框示意图表示;
图10a和图10b示出了用于控制时间缩放器的方法的流程图;
图11示出了用于时间缩放的质量控制的算法的伪程序代码;
图12示出了通过根据本发明的实施例获得的目标延迟和播放延迟的图形表示;
图13示出了在根据本发明的实施例中执行的时间缩放的图形表示;
图14示出了用于基于输入音频内容来控制对已解码音频内容的提供的方法的流程图;以及
图15示出了根据本发明的实施例的用于提供输入音频信号的经时间缩放的版本的方法的流程图。
具体实施方式
5.1.根据图1的抖动缓冲器控制器
图1示出了根据本发明的实施例的抖动缓冲器控制器的方框示意图。用于基于输入音频内容来控制对已解码音频内容的提供的抖动缓冲器控制器100接收音频信号110或与音频信号有关的信息(所述信息可描述音频信号或音频信号的帧或其他信号部分的一个或多个特性)。
此外,抖动缓冲器控制器100提供用于基于帧的缩放的控制信息(例如,控制信号)112。例如,控制信息112可以包含启动信号(用于基于帧的时间缩放)和/或定量控制信息(用于基于帧的时间缩放)。
此外,抖动缓冲器控制器100提供用于基于样本的时间缩放的控制信息(例如,控制信号)114。控制信息114可(例如)包含用于基于样本的时间缩放的启动信号和/或定量控制信息。
所述抖动缓冲器控制器110配置为按照信号自适应方式选择基于帧的时间缩放或基于样本的时间缩放。因此,抖动缓冲器控制器可配置为评估音频信号或关于音频信号110的信息,并且基于此来提供控制信息112和/或控制信息114。因此,例如可以按照以下方式使使用基于帧的时间缩放还是使用基于样本的时间缩放的决策适宜于音频信号的特性:如果基于音频信号和/或基于与音频信号的一个或多个特性有关的信息预期(或估计)基于帧的时间缩放不导致音频内容的实质退化,则使用在计算上简单的基于帧的时间缩放。相反,如果基于对音频信号110的特性的评估(由抖动缓冲器控制器)预期或估计需要基于样本的时间缩放来避免当执行时间缩放时的可听到的假象,则抖动缓冲器控制器通常决定使用基于样本的时间缩放。
此外,应注意,抖动缓冲器控制器110自然也可以接收额外控制信息,例如,指示是否应该执行时间缩放的控制信息。
在下文中,将描述抖动缓冲器控制器100的一些可选细节。例如,抖动缓冲器控制器100可提供控制信息112、114,使得当将使用基于帧的时间缩放时,丢弃或插入音频帧以控制抖动缓冲器的深度,且使得当使用基于样本的时间缩放时,执行音频信号部分的经时间移位的重叠相加。换句话说,抖动缓冲器控制器100可(例如)与抖动缓冲器(在一些情况下,也标识为去抖动缓冲器)合作,且控制抖动缓冲器以执行基于帧的时间缩放。在这种情况下,可通过从抖动缓冲器丢弃帧或通过将帧(例如,包含指示帧“未激活”以及应该使用舒适噪声产生的信令的简单帧)插入抖动缓冲器来控制抖动缓冲器的深度。此外,抖动缓冲器控制器100可控制时间缩放器(例如,基于样本的时间缩放器)以执行音频信号部分的时间移位的重叠相加。
所述抖动缓冲器控制器100可配置为按信号自适应方式在基于帧的时间缩放、基于样本的时间缩放与时间缩放的去激活之间切换。换句话说,抖动缓冲器控制器通常不仅区分基于帧的时间缩放与基于样本的时间缩放,并且也选择完全不存在时间缩放的状态。例如,如果不需要时间缩放(因为抖动缓冲器的深度在可接受范围内),则可选择后一状态。换句话说,基于帧的时间缩放和基于样本的时间缩放通常并非可由抖动缓冲器控制器选择的仅有两个操作模式。
抖动缓冲器控制器100也可以考虑与抖动缓冲器的深度有关的信息,用于决定应使用哪一操作模式(例如,基于帧的时间缩放、基于样本的时间缩放或无时间缩放)。例如,抖动缓冲器控制器可以比较描述抖动缓冲器(也标识为去抖动缓冲器)的所需深度的目标值与描述抖动缓冲器的实际深度的实际值,且取决于所述比较来选择操作模式(基于帧的时间缩放、基于样本的时间缩放或无时间缩放),使得选择基于帧的时间缩放或基于样本的时间缩放以便控制抖动缓冲器的深度。
抖动缓冲器控制器100可(例如)配置为在先前帧未激活的(例如,这可基于音频信号110自身或基于与音频信号有关的信息而辨识,所述信息是例如在不连续传输模式的情况下的静音识别符标志SID)的情况下,选择舒适噪声插入或舒适噪声删除。因此,如果需要时间伸展且先前帧(或当前帧)是未激活的,则抖动缓冲器控制器100可向抖动缓冲器(也标识为去抖动缓冲器)发出信令:应该插入舒适噪声帧。此外,如果需要执行时间收缩且先前帧是未激活的(或当前帧是未激活的),则抖动缓冲器控制器100可以命令抖动缓冲器(或去抖动缓冲器)移除舒适噪声帧(例如,包含指示应执行舒适噪声产生的信令信息的帧)。应注意,当各个帧携带指示产生舒适噪声的信令信息(且通常不包含额外经编码音频内容)时,可将所述各个帧视为未激活的。在不连续传输模式的情况下,这种信令信息可(例如)呈静音指示标志(SID标志)的形式。
相反,抖动缓冲器控制器100优选地配置为在先前帧是激活的(例如,先前帧不包含指示应产生舒适噪声的信令信息)的情况下,选择音频信号部分的经时间移位的重叠相加。音频信号部分的这种经时间移位的重叠相加通常允许以比较高的分辨率(例如,具有小于音频样本块的长度或者小于音频样本块的长度的四分之一或者甚至小于或等于两个音频样本或者如单一音频样本一样小的分辨率)来调整基于输入音频信息的后续帧获得的音频样本块之间的时间移位。因此,基于样本的时间缩放的选择允许非常精细调整的时间缩放,其帮助避免激活帧的可听到的假象。
在抖动缓冲器控制器选择基于样本的时间缩放的情况下,抖动缓冲器控制器也可以提供额外控制信息以调整或精细调整基于样本的时间缩放。例如,抖动缓冲器控制器100可配置为确定音频样本块是否表示激活的但“静音”的音频信号部分,例如,包含比较小能量的音频信号部分。在这种情况下,也就是说,如果音频信号部分是“激活的”(例如,并非在音频解码器中使用舒适噪声产生的音频信号部分,而是使用音频内容的更详细解码)但“静音的”(例如,其中信号能量低于某能量阈值,或甚至等于零),则抖动缓冲器控制器可提供控制信息114以选择重叠相加模式,其中将表示“静音”(但是激活的)音频信号部分的音频样本块与随后音频样本块之间的时间移位设置为预定最大值。因此,基于样本的时间缩放器不需要基于随后音频样本块的详细比较来识别适当的时间缩放量,而可相当简单地使用针对时间移位的预定最大值。可理解,“静音”音频信号部分将通常不在重叠相加操作中引起实质假象,无论时间移位的实际选择如何。因此,由抖动缓冲器控制器提供的控制信息114可简化将由基于样本的时间缩放器执行的处理。
相反,如果抖动缓冲器控制器110发现音频样本块表示“激活的”且非静音的音频信号部分(例如,不存在舒适噪声产生并且还包括高于某一阈值的信号能量的音频信号部分),则抖动缓冲器控制器提供控制信息114以藉此选择按信号自适应方式确定(例如,由基于样本的时间缩放器且使用对随后音频样本块之间的类似性的确定)音频样本块之间的时间移位的重叠相加模式。
此外,抖动缓冲器控制器100也可以接收与实际缓冲器充满度有关的信息。抖动缓冲器控制器100可响应于确定需要时间伸展且抖动缓冲器为空而选择插入隐藏帧(也就是说,使用分组丢失恢复机制(例如,使用基于先前解码的帧的预测)产生的帧)。换句话说,抖动缓冲器控制器可针对基本上将需要基于样本的时间缩放(因为先前帧或当前帧是“激活的”)但因为抖动缓冲器(或去抖动缓冲器)为空而不能适当地执行基于样本的时间缩放(例如,使用重叠相加)的情况发起例外处置。因此,抖动缓冲器控制器100可配置为提供适当控制信息112、114,甚至对于例外情况亦然。
为了简化抖动缓冲器控制器100的操作,抖动缓冲器控制器100可配置为取决于当前是否使用结合舒适噪声产生(亦简要地标识为“CNG”)的不连续传输(亦简要地标识为“DTX”)来选择基于帧的时间缩放或基于样本的时间缩放。换句话说,抖动缓冲器控制器100可(例如)在基于音频信号或基于与音频信号有关的信息而认识到先前帧(或当前帧)是应使用舒适噪声产生的“未激活的”帧的情况下选择基于帧的时间缩放。这可以(例如)通过评估音频信号的经编码表示中包括的信令信息(例如,标志,如所谓的“SID”标志)来确定。因此,抖动缓冲器控制器可在当前使用结合舒适噪声产生的不连续传输的情况下决定应使用基于帧的时间缩放,这是由于在这种情况下,可预期此时间缩放仅引起小的可听到的失真或无可听到的失真。相反,除非存在任何例外情况(如空抖动缓冲器),否则可使用基于样本的时间缩放(例如,如果当前不使用结合舒适噪声产生的不连续传输)。
优选地,在需要时间缩放的情况下,抖动缓冲器控制器可以选择(至少)四个模式之一。例如,抖动缓冲器控制器可配置为在当前使用结合舒适噪声产生的不连续传输的情况下,选择舒适噪声插入或舒适噪声删除来进行时间缩放。此外,抖动缓冲器控制器可配置为在当前音频信号部分是激活的但包含小于或等于能量阈值的信号能量并且抖动缓冲器不空的情况下,选择使用预定时间移位的重叠相加操作来进行时间缩放。此外,抖动缓冲器控制器可配置为在当前音频信号部分是激活的且包含大于或等于能量阈值的信号能量并且抖动缓冲器不空的情况下,选择使用信号自适应时间移位的重叠相加操作来进行时间缩放。最后,抖动缓冲器控制器可配置为在当前音频信号部分是激活的并且抖动缓冲器为空的情况下,选择插入隐藏帧来进行时间缩放。因此,可看到,抖动缓冲器控制器可配置为按信号自适应方式选择基于帧的时间缩放或基于样本的时间缩放。
此外,应注意,抖动缓冲器控制器可配置为在当前音频信号部分是激活的且包含大于或等于能量阈值的信号能量并且抖动缓冲器不空的情况下,选择使用信号自适应时间移位和质量控制机制的重叠相加操作来进行时间缩放。换句话说,可存在针对基于样本的时间缩放的额外质量控制机制,其补充由抖动缓冲器控制器执行的基于帧的时间缩放与基于样本的时间缩放之间的信号自适应选择。因此,可使用分层概念,其中抖动缓冲器执行基于帧的时间缩放与基于样本的时间缩放之间的初始选择,且其中实施额外质量控制机制以确保基于样本的时间缩放不导致音频质量的不可接受退化。
总之,已经解释了抖动缓冲器控制器100的基本功能性,并且也已解释其可选改进。此外,应注意,抖动缓冲器控制器100可由本文中描述的特征和功能性中的任何一个来补充。
5.2.根据图2的时间缩放器
图2示出了根据本发明的实施例的时间缩放器200的方框示意图。时间缩放器200配置为接收输入音频信号210(例如,呈由解码器内核提供的样本序列的形式),且基于此输入音频信号210提供输入音频信号的经时间缩放的版本212。时间缩放器200配置为计算或估计可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。此功能性可(例如)由计算单元执行。此外,时间缩放器200配置为取决于对可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计而执行输入音频信号210的时间缩放,以藉此获得输入音频信号的经时间缩放的版本212。此功能性可(例如)由时间缩放单元执行。
因此,时间缩放器可执行质量控制以确保当执行时间缩放时,避免音频质量的过度退化。例如,时间缩放器可配置为基于输入音频信号预测(或估计)是否预期所设想的时间缩放操作(例如,基于经时间移位的(音频)样本块执行的重叠相加操作)导致足够好的音频质量。换句话说,时间缩放器可配置为在实际执行输入音频信号的时间缩放前计算或估计可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的(预期)质量。为此目的,时间缩放器可(例如)比较时间缩放操作中涉及的输入音频信号的部分(例如将被重叠相加以执行时间缩放的输入音频信号的所述部分)。总之,时间缩放器200通常配置为检查是否可预期所设想的时间缩放将导致输入音频信号的经时间缩放的版本的足够音频质量,且基于此检查结果而决定是否执行时间缩放。替代地,时间缩放器可取决于可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量的计算估计的结果而调适时间缩放参数中的任意一个(例如,在将重叠相加的样本块之间的时间移位)。
在下文中,将描述时间缩放器200的可选改进。
在优选实施例中,时间缩放器配置为使用输入音频信号的第一样本块和输入音频信号的第二样本块执行重叠相加操作。在这种情况下,时间缩放器配置为相对于第一样本块时间移位第二样本块,且重叠相加第一样本块与经时间移位的第二样本块,以藉此获得输入音频信号的经时间缩放的版本。例如,如果需要时间收缩,则时间缩放器可以输入所述输入音频信号的第一数目的样本,且基于所述样本提供输入音频信号的经时间缩放的版本的第二数目的样本,其中样本的第二数目小于样本的第一数目。为了实现样本数目的减少,可将第一数目的样本分成至少第一样本块和第二样本块(其中第一样本块与第二样本块可重叠或不重叠),且第一样本块和第二样本块可以一起在时间上移位,使得第一样本块与第二样本块的时间移位的版本重叠。在第一样本块和第二样本块的移位版本之间的重叠区域中,应用重叠相加操作。如果第一样本块与第二样本块在重叠区域(在其中执行重叠相加操作)中且优选地亦在重叠区域的周围中“充分”类似,则可应用此重叠相加操作,而不引起实质可听到的失真。因此,通过重叠相加原先未在时间上重叠的信号部分,执行时间收缩,这是由于样本的总数减少了(在输入音频信号210中)原先尚未重叠但在输入音频信号的经时间缩放的版本212中重叠的样本的数目。
相反,也可以使用此重叠相加操作来执行时间伸展。例如,第一样本块与第二样本块可被选择为重叠的,且可包含第一总时间扩展。随后,可将第二样本块相对于第一样本块时间移位,使得减少了第一样本块与第二样本块之间的重叠。如果经时间移位的第二样本块与第一样本块非常匹配,则可以执行重叠相加,其中第一样本块与第二样本块的经时间移位的版本之间的重叠区域就样本的数目而言且就时间而言可以比第一样本块与第二样本块之间的原始重叠区域短。因此,使用第一样本块和第二样本块的经时间移位的版本的重叠相加操作的结果可以包含比原始形式的第一样本块和第二样本块的总扩展大的时间扩展(就时间而言且就样本的数目而言)。
因此,明显的可以使用输入音频信号的第一样本块和输入音频信号的第二样本块,使用重叠相加操作获得时间收缩和时间伸展两者,其中第二样本块相对于第一样本块时间移位(或第一样本块与第二样本块皆相对于彼此时间移位)。
优选地,时间缩放器200配置为计算或估计第一样本块与第二样本块的经时间移位的版本之间的重叠相加操作的质量,以便计算或估计可通过时间缩放获得的输入音频信号的经时间缩放的版本的(预期)质量。应注意,如果针对充分类似的样本块的部分执行重叠相加操作,则通常几乎不存在任何可听到的假象。换句话说,重叠相加操作的质量实质上影响输入音频信号的经时间缩放版本的(预期)质量。因此,重叠相加操作的质量的估计(或计算)提供输入音频信号的时间缩放版本的质量的可靠估计(或计算)。
优选地,时间缩放器200配置为取决于第一样本块或第一样本块的一部分(例如,右侧部分)与经时间移位的第二样本块或经时间移位的第二样本块的一部分(例如,左侧部分)之间的类似程度的确定,来确定第二样本块相对于第一样本块的时间移位。换句话说,时间缩放器可配置为确定第一样本块与第二样本块之间的哪个时间移位最适于获得足够好的重叠相加结果(或至少最佳可能的重叠相加结果)。然而,在额外(“质量控制”)步骤中,可验证第二样本块相对于第一样本块的确定的时间移位是否实际带来足够好的重叠相加结果(或预期带来足够好的重叠相加结果)。
优选地,时间缩放器针对第一样本块与第二样本块之间的多个不同时间移位,确定关于第一样本块或第一样本块的一部分(例如,右侧部分)与第二样本块或第二样本块的一部分(例如,左侧部分)之间的类似程度的信息,且基于关于所述多个不同时间移位的类似程度的信息来确定将用于重叠相加操作的(候选)时间移位。换句话说,可执行针对最佳匹配的搜索,其中可以比较与不同时间移位的类似程度有关的信息,以找到可实现最佳类似程度的时间移位。
优选地,时间缩放器配置为取决于目标时间移位信息来确定第二样本块相对于第一样本块的时间移位,所述时间移位将用于重叠相加操作。换句话说,当确定哪个时间移位将(例如,作为候选时间移位)用于重叠相加操作时,可考虑(顾及)可(例如)基于对缓冲器充满度、抖动和可能其他额外准则的评估而获得的目标时间移位信息。因此,使重叠相加适宜于系统的要求。
在一些实施例中,时间缩放器可配置为基于与第一样本块或第一样本块的一部分(例如,右侧部分)与按照所确定的(候选)时间移位进行时间移位的第二样本块或按照所确定的(候选)时间移位进行时间移位的第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息,计算或估计可以通过输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。关于类似程度的所述信息提供与重叠相加操作的(预期)质量有关的信息,且因此亦提供与可通过时间缩放获得的输入音频信号的时间缩放版本的质量有关的信息(至少估计)。在一些情况下,与可通过时间缩放获得的输入音频信号的时间缩放版本的质量有关的计算或估计的信息可以用以决定是否实际执行时间缩放(其中在后一种情况下,可推迟时间缩放)。换句话说,时间缩放器可以配置为基于与第一样本块或第一样本块的一部分(例如,右侧部分)与按照所确定的(候选)时间移位进行时间移位的第二样本块或按照所确定的(候选)时间移位进行时间移位的第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息来决定是否实际执行时间缩放。因此,如果预期时间缩放将引起音频内容的过度退化,则评估与可通过时间缩放获得的输入音频信号的时间缩放版本的质量有关的计算或估计的信息的质量控制机制可以实际上导致省略时间缩放(至少对于当前音频样本块或帧)。
在一些实施例中,可针对第一样本块与第二样本块之间的(候选)时间移位的初始确定和针对最终质量控制机制使用不同类似性度量。换句话说,如果可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计指示大于或等于质量阈值的质量,时间缩放器可配置为相对于第一样本块时间移位第二样本块,且重叠相加第一样本块与经时间移位的第二样本块,以藉此获得输入音频信号的经时间缩放的版本。时间缩放器可配置为取决于使用第一类似性度量评估的在第一样本块或第一样本块的一部分(例如,右侧部分)与第二样本块或第二样本块的一部分(例如,左侧部分)之间的类似程度的确定,来确定第二样本块相对于第一样本块的(候选)时间移位。同样,时间缩放器可配置为基于与使用第二类似性度量评估的在第一样本块或第一样本块的一部分(例如,右侧部分)与按照所确定的(候选)时间移位进行时间移位的第二样本块或按照所确定的(候选)时间移位进行时间移位的第二样本块的一部分(例如,左侧部分)之间的类似程度有关的信息,计算或估计可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。例如,第二类似性度量可以在计算上比第一类似性度量复杂。这种概念是有用的,因为通常有必要每个时间缩放操作多次计算第一类似性度量(以便确定在第一样本块与第二样本块之间的多个可能时间移位值中的在第一样本块与第二样本块之间的“候选”时间移位)。相反,第二类似性度量通常仅需要每个时间移位操作计算一次,例如,作为使用第一(在计算上较不复杂)质量度量确定的“候选”时间移位是否可预期导致足够好的音频质量的“最终”质量检查。因此,如果第一类似性度量指示对于“候选”时间移位在第一样本块(或其一部分)与经时间移位的第二样本块(或其一部分)之间具有相当好(或至少充分好的)类似性,但第二(且通常更有意义或精确的)类似性度量指示时间缩放将不导致足够好的音频质量,则可能仍避免执行重叠相加。因此,质量控制(使用第二类似性度量)的应用有助于避免时间缩放中的可听到的失真。
例如,第一类似性度量可为互相关或归一化的互相关、或平均幅度差函数、或均方误差之和。这种类似性度量可以计算上有效率的方式获得,且足以发现第一样本块(或其一部分)与(经时间移位的)第二样本块(或其一部分)之间的“最佳匹配”,也就是说,确定“候选”时间移位。相反,第二类似性度量可(例如)是多个不同时间移位的互相关值或归一化的互相关值的组合。此类似性度量提供高度精确性,且有助于在评估时间缩放的(预期)质量时考虑音频信号的额外信号分量(例如,谐波)或固定性。然而,第二类似性度量比第一类似性度量在计算上要求高,使得当搜索“候选”时间移位时应用第二类似性度量将在计算上效率低下。
在下文中,将描述用于确定第二类似性度量的一些选项。在一些实施例中,第二类似性度量可以是至少四个不同时间移位的互相关的组合。例如,第二类似性度量可以是针对间隔第一样本块或第二样本块的音频内容的基频的周期持续时间的整数倍的时间移位获得的第一互相关值与第二互相关值以及针对间隔音频内容的基频的周期持续时间的整数倍的时间移位获得的第三互相关值与第四互相关值的组合。获得第一互相关值的时间移位可与获得第三互相关值的时间移位相隔音频内容的基频的周期持续时间的一半的奇数倍。如果音频内容(由输入音频信号表示)实质上固定且由基频支配,则可预期可(例如)归一化的第一互相关值与第二互相关值都接近一。然而,由于针对与获得第一互相关值和第二互相关值的时间移位间隔基频的周期持续时间的一半的奇数倍的时间移位获得第三互相关值和第四互相关值两者,因此可以预期在音频内容实质上固定且由基频支配的情况下,第三互相关值和第四互相关值相对于第一互相关值和第二互相关值相反。因此,可基于第一互相关值、第二互相关值、第三互相关值和第四互相关值形成有意义的组合,其指示在(候选)重叠相加区域中音频信号是否足够固定且由基频支配。
应注意,可通过根据下式:
q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)
或根据
q=c(p)*c(-p)+c(-1/2*p)*c(1/2*p)
计算类似性度量q来获得特别有意义的类似性度量。
在上式中,c(p)是第一样本块(或其一部分)与在时间上移位(例如,相对于输入音频内容内的原始时间位置)第一样本块和/或第二样本块的音频内容的基频的周期持续时间p的第二样本块(或其一部分)之间的互相关值(其中音频内容的基频通常实质上在第一样本块中与在第二样本块中相同)。换句话说,互相关值基于从输入音频内容取得的样本块计算,且另外按输入音频内容的基频的周期持续时间p相对于彼此时间移位(其中可例如基于基频估计、自相关或类似者,获得基频的周期持续时间p)。类似地,c(2*p)是第一样本块(或其一部分)与在时间上移位2*p的第二样本块(或其一部分)之间的互相关值。类似的定义亦适用于c(3/2*p)、c(1/2*p)、c(-p)和c(-1/2*p),其中c(.)的自变量表示时间移位。
在下文中,将解释在时间缩放器200中可选地应用的用于决定是否应执行时间缩放的一些机制。在一个实施中,时间缩放器200可配置为比较基于可通过时间缩放获得的输入音频信号的时间缩放版本的(预期)质量的计算或估计的质量值与可变阈值,以决定是否应执行时间缩放。因此,也可以取决于例如表示先前时间缩放的历史情况作出是否执行时间缩放的决策。
例如,时间缩放器可配置为响应于时间缩放的质量针对一个或多个先前样本块不足的发现来减小可变阈值,以藉此降低质量要求(为了实现时间缩放,其必须达到)。因此,确保未针对可引起缓冲器超限或缓冲器欠载的长的帧序列(或样本块)防止时间缩放。此外,时间缩放器可配置为响应于时间缩放已应用于一个或多个先前块或样本的事实而增大可变阈值,以藉此提高质量要求(为了实现时间缩放,其必须达到)。因此,可防止过多随后块或样本经时间缩放,除非可获得时间缩放的非常好的质量(相对于正常质量要求而提高)。因此,可避免如果时间缩放的质量条件过低则将引起的假象。
在一些实施例中,时间缩放器可包含用于计数已经时间缩放(因为已达到可通过时间缩放获得的输入音频信号的时间缩放版本的各自质量要求)的样本块的数目或帧的数目的范围有限的第一计数器。此外,时间缩放器也可以包含用于计数尚未时间缩放(因为尚未达到可通过时间缩放获得的输入音频信号的时间缩放版本的各自质量要求)的样本块的数目或帧的数目的范围有限的第二计数器。在这种情况下,时间缩放器可配置为取决于第一计数器的值和取决于第二计数器的值来计算可变阈值。因此,可用适度计算努力来考虑时间缩放的“历史”(以及“质量”历史)。
例如,时间缩放器可配置为将与第一计数器的值成比例的值与初始阈值相加,并且从中(例如,从加法的结果)减去与第二计数器的值成比例的值以便获得可变阈值。
在下文中,将总结可在时间缩放器200的一些实施例中提供的一些重要功能性。然而应注意,在下文中描述的功能性并非时间缩放器200的基本功能性。
在一种实施方式中,时间缩放器可配置为取决于可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计而执行输入音频信号的时间缩放。在这种情况下,输入音频信号的时间缩放版本的质量的计算或估计包含在输入音频信号的经时间缩放的版本中的将由时间缩放引起的假象的计算或估计。然而,应注意,可以间接方式(例如,通过计算重叠相加操作的质量)执行假象的计算或估计。换句话说,输入音频信号的时间缩放版本的质量的计算或估计可以包含输入音频信号的经时间缩放的版本中的将由输入音频信号的后续样本块的重叠相加操作引起的假象的计算或估计(其中,自然地,可将某个时间移位应用于后续样本块)。
例如,时间缩放器可配置为取决于输入音频信号的后续(且可能重叠的)样本块的类似程度来计算或估计可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。
在优选实施例中,时间缩放器可配置为计算或估计在可通过对输入音频信号的时间缩放获得的输入音频信号的经时间缩放的版本中是否存在可听到的假象。如上文所提到,可按间接方式执行可听到的假象的估计。
作为质量控制的结果,可在十分适合于时间缩放的时候执行时间缩放,且在不十分适合于时间缩放的时候避免时间缩放。例如,时间缩放器可配置为在可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计指示不足质量(例如,低于某一质量阈值的质量)的情况下,将时间缩放推迟至后续帧或后续样本块。因此,可在更适合于时间缩放的时候执行时间缩放,使得产生较少假象(详言之,可听到的假象)。换句话说,时间缩放器可配置为在可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计指示不足质量的情况下将时间缩放推迟至时间缩放较难以被听到的时间。
总之,可以按照多种不同方式改进时间缩放器200,如上所论述。
此外,应注意,时间缩放器200可选地与抖动缓冲器控制器100组合,其中抖动缓冲器控制器100可决定是否应使用基于样本的时间缩放(其通常由时间缩放器200执行)或是否应使用基于帧的时间缩放。
5.3.根据图3的音频解码器
图3示出了根据本发明的实施例的音频解码器300的方框示意图。
音频解码器300配置为接收输入音频内容310,其可被视为输入音频表示,且其可(例如)以音频帧的形式表示。此外,音频解码器300基于此输入音频内容提供可(例如)以已解码音频样本的形式表示的已解码音频内容312。音频解码器300可(例如)包含抖动缓冲器320,其配置为接收(例如)呈音频帧的形式的输入音频内容310。抖动缓冲器320配置为缓冲表示音频样本块的多个音频帧(其中单一帧可以表示一个或多个音频样本块,且其中由单一帧表示的音频样本可逻辑上再分成多个重叠或非重叠音频样本块)。此外,抖动缓冲器320提供“经缓冲”的音频帧322,其中音频帧322可以包含包括在输入音频内容310中的音频帧和由抖动缓冲器产生或插入的音频帧(例如,包含以信号通知产生舒适噪声的信令信息的“未激活的”音频帧)。音频解码器300进一步包含解码器内核330,其自抖动缓冲器320接收经缓冲音频帧322且其基于自抖动缓冲器接收的音频帧322提供音频样本332(例如,具有与音频帧相关联的音频样本块)。此外,音频解码器300包含基于样本的时间缩放器340,其配置为接收由解码器内核330提供的音频样本332,且基于此音频样本提供组成已解码音频内容312的经时间缩放的音频样本342。基于样本的时间缩放器340配置为基于音频样本332(也就是说,基于由解码器内核提供的音频样本块)提供经时间缩放的音频样本(例如,呈音频样本块的形式)。此外,音频解码器可包含可选控制器350。在音频解码器300中使用的抖动缓冲器控制器350可(例如)与根据图1的抖动缓冲器控制器100相同。换句话说,抖动缓冲器控制器350可配置为按信号自适应方式选择由抖动缓冲器320执行的基于帧的时间缩放或由基于样本的时间缩放器340执行的基于样本的时间缩放。因此,抖动缓冲器控制器350可接收输入音频内容310或与输入音频内容310有关的信息作为音频信号110,或作为与音频信号110有关的信息。此外,抖动缓冲器控制器350可将控制信息112(如相对于抖动缓冲器控制器100所描述)提供给抖动缓冲器320,且抖动缓冲器控制器350可将如关于抖动缓冲器控制器100所描述的控制信息114提供给基于样本的时间缩放器140。因此,抖动缓冲器320可以配置为丢弃或插入音频帧以便执行基于帧的时间缩放。此外,解码器内核330可配置为响应于携带指示产生舒适噪声的信令信息的帧而执行舒适噪声产生。因此,可由解码器内核330响应于“未激活的”帧(包括指示应产生舒适噪声的信令信息)被插入抖动缓冲器320来产生舒适噪声。换句话说,简单形式的基于帧的时间缩放可有效地得到产生包含舒适噪声的帧,其由“未激活的”帧被插入抖动缓冲器(可响应于由抖动缓冲器控制器提供的控制信息112来执行所述插入)而触发。此外,所述解码器内核可配置为响应于空抖动缓冲器而执行“隐藏”。这种隐藏可以包含基于在丢失的音频帧前的一个或多个帧的音频信息来产生“丢失”帧(空抖动缓冲器)的音频信息。例如,假定丢失的音频帧的音频内容是在丢失的音频帧前的一个或多个音频帧的音频内容的“接续”,则可以使用预测。然而,这种技术中已知的任意帧丢失隐藏概念可由解码器内核使用。因此,在抖动缓冲器320变空的情况下,抖动缓冲器控制器350可以命令抖动缓冲器320(或解码器内核330)发起隐藏。然而,解码器内核甚至可以在无明确控制信号的情况下基于自己的智能来执行隐藏。
此外,应注意,基于样本的时间缩放器340可以等同于关于图2描述的时间缩放器200。因此,输入音频信号210可以对应于音频样本332,且输入音频信号的经时间缩放的版本212可对应于经时间缩放的音频样本342。因此,时间缩放器340可配置为取决于可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计而执行输入音频信号的时间缩放。基于样本的时间缩放器340可由抖动缓冲器控制器350控制,其中由抖动缓冲器控制器提供给基于样本的时间缩放器340的控制信息114可指示是否应执行基于样本的时间缩放。此外,控制信息114可(例如)指示将要由基于样本的时间缩放器340执行的所需的时间缩放量。
应注意,时间缩放器300可由关于抖动缓冲器控制器100和/或关于时间缩放器200描述的特征和功能性中的任意一个来补充。此外,音频解码器300也可以由本文中所描述(例如,关于图4至图15)的任何其他特征和功能性补充。
5.4.根据图4的音频解码器
图4示出了根据本发明的实施例的音频解码器400的方框示意图。音频解码器400配置为接收分组410,其可包含一个或多个音频帧的经分组化表示。此外,音频解码器400提供已解码音频内容412,例如,呈音频样本的形式。音频样本可(例如)按“PCM”格式(也就是说,按脉冲编码调制形式,例如,按表示音频波形的样本的一连串数字值的形式)表示。
音频解码器400包含解分组器420,其配置为接收分组410,且基于分组410提供解分组的帧422。此外,解分组器配置为从分组410提取所谓的“SID标志”,SID标志以信号通知“未激活的”音频帧(也就是说,应使用舒适噪声产生的音频帧,而非音频内容的“正常”详细解码)。SID标志信息以424来标识。此外,解分组器提供实时输送协议时间戳(也标识为“RTPTS”)和到达时间戳(也标识为“到达TS”)。时间戳信息以426来标识。此外,音频解码器400包含去抖动缓冲器430(亦简要地标识为抖动缓冲器430),其从解分组器420接收解分组的帧422,且其将经缓冲的帧432(并且可能也有插入的帧)提供给解码器内核440。此外,去抖动缓冲器430从控制逻辑接收用于基于帧的(时间)缩放的控制信息434。同样,去抖动缓冲器430将缩放反馈信息436提供给播放延迟估计。音频解码器400也包括时间缩放器(也标识为“TSM”)450,其从解码器内核440接收已解码音频样本442(例如,呈脉冲码调制数据的形式),其中解码器内核440基于从去抖动缓冲器430接收的经缓冲或插入的帧432提供已解码音频样本442。时间缩放器450也从控制逻辑接收用于基于样本的(时间)缩放的控制信息444,且将缩放反馈信息446提供给播放延迟估计。时间缩放器450也提供经时间缩放的样本448,其可表示呈脉冲编码调制形式的经时间缩放的音频内容。音频解码器400也包括PCM缓冲器460,其接收经时间缩放的样本448且缓冲经时间缩放的样本448。此外,PCM缓冲器460提供经时间缩放的样本448的经缓冲的版本,作为已解码音频内容412的表示。此外,PCM缓冲器460可将延迟信息462提供给控制逻辑。
音频解码器400也包括目标延迟估计470,其接收信息424(例如,SID标志)以及包含RTP时间戳和到达时间戳的时间戳信息426。基于此信息,目标延迟估计470提供目标延迟信息472,其描述合乎需要的延迟,例如,应由去抖动缓冲器430、解码器440、时间缩放器450和PCM缓冲器460引起的合乎需要的延迟。例如,目标延迟估计470可计算或估计目标延迟信息472,使得延迟不会被选择得过大,但足以补偿分组410的一些抖动。此外,音频解码器400包含播放延迟估计480,其配置为接收来来自去抖动缓冲器430的缩放反馈信息436和来自时间缩放器460的缩放反馈信息446。例如,缩放反馈信息436可描述由去抖动缓冲器执行的时间缩放。此外,缩放反馈信息446描述由时间缩放器450执行的时间缩放。关于缩放反馈信息446,应注意,由时间缩放器450执行的时间缩放通常为信号自适应性的,使得由缩放反馈信息446描述的实际时间缩放可与可由基于样本的缩放信息444所描述的所需时间缩放不同。总之,由于根据本发明的一些方面提供的信号自适应性,缩放反馈信息436和缩放反馈信息446可以描述可不同于所需的时间缩放的实际时间缩放。
此外,音频解码器400也包括控制逻辑490,其执行音频解码器的(主要)控制。控制逻辑490自解分组器420接收信息424(例如,SID标志)。此外,控制逻辑490接收来自目标延迟估计470的目标延迟信息472、来自播放延迟估计480的播放延迟信息482(其中播放延迟信息482描述由播放延迟估计480基于缩放反馈信息436和缩放反馈信息446导出的实际延迟)。此外,控制逻辑490(可选地)接收来自PCM缩放器460的延迟信息462(其中,替代地,PCM缓冲器的延迟信息可以为预定量)。基于接收的信息,控制逻辑490将基于帧的缩放信息434和基于样本的缩放信息442提供给去抖动缓冲器430和时间缩放器450。因此,控制逻辑考虑到音频内容的一个或多个特性(例如,是否存在应根据由SID标志携带的信令执行舒适噪声产生的“未激活的”帧的问题),以信号自适应方式,取决于目标延迟信息472和播放延迟信息482来设置基于帧的缩放信息434和基于样本的缩放信息442。
此处应注意,控制逻辑490可执行抖动缓冲器控制器100的功能中的一些或全部,其中信息424可对应于与音频信号有关的信息110,其中控制信息112可对应于基于帧的缩放信息434,且其中控制信息114可对应于基于样本的缩放信息444。同样应注意,时间缩放器450可执行时间缩放器200的功能性中的一些或全部(或反之亦然),其中输入音频信号210对应于已解码音频样本442,且其中输入音频信号的经时间缩放的版本212对应于经时间缩放的音频样本448。
此外,应注意,音频解码器400对应于音频解码器300,使得音频解码器300可执行关于音频解码器400描述的功能性中的一些或全部,且反之亦然。抖动缓冲器320对应于去抖动缓冲器430,解码器内核330对应于解码器440,且时间缩放器340对应于时间缩放器450。控制器350对应于控制逻辑490。
在下文中,将提供关于音频解码器400的功能性的一些额外细节。详言之,将描述提议的抖动缓冲器管理(JBM)。
描述抖动缓冲器管理(JBM)解决方案,其可用以将具有帧(含有已编码话语或音频数据)的所接收分组410馈入解码器440,同时维持连续播放。在基于分组的通信(例如,因特网语音通信协议(VoIP))中,分组(例如,分组410)通常经受变化的传输时间,且在传输期间丢失,此导致接收器(例如,包含音频解码器400的接收器)的到达间抖动和分组丢失。因此,需要抖动缓冲器管理和分组丢失隐藏解决方案以实现无间断的连续输出信号。
在下文中,将提供解决方案的概述。在所述的抖动缓冲器管理的情况下,在所接收的RTP分组(例如,分组410)内的已编码数据首先经解分组化(例如,使用解分组器420),且将具有已编码数据(例如,在经AMR-WB编码帧内的语音数据)的所得帧(例如,帧422)馈入去抖动缓冲器(例如,去抖动缓冲器430)。当需要新脉冲码调制数据(PCM数据)以进行播放时,其需要由解码器(例如,解码器440)提供。为此目的,自去抖动缓冲器(例如,自去抖动缓冲器430)上拉帧(例如,帧432)。通过使用去抖动缓冲器,可补偿到达时间的波动。为了控制缓冲器的深度,应用时间标度修改(TSM)(其中时间标度修改亦简单地标识为时间缩放)。时间标度修改可基于已编码帧(例如,在去抖动缓冲器430内)或在分开的模块中(例如,在时间缩放器450内)发生,从而允许对PCM输出信号(例如,PCM输出信号448或PCM输出信号412)的更细粒度调适。
在图4中示出了上述概念,图4示出了抖动缓冲器管理的概观。为了控制去抖动缓冲器(例如,去抖动缓冲器430)的深度并且由此控制去抖动缓冲器(例如,去抖动缓冲器430)和/或TSM模块(例如,在时间缩放器450内)内的时间缩放D等级,使用控制逻辑(例如,由目标延迟估计470和播放延迟估计480支持的控制逻辑490)。其使用与目标延迟(例如,信息472)和播放延迟(例如,信息482)和当前是否使用结合舒适噪声产生(CNG)的不连续传输(DTX)(例如,信息424)有关的信息。例如,从用于目标延迟估计和播放延迟估计的分离模块(例如,模块470和480)产生延迟值,且例如由解分组器模块(例如,解分组器420)提供激活的/未激活的位(SID标志)。
5.4.1.解分组器
在下文中,将描述解分组器420。解分组器模块将RTP分组410分离成单个帧(存取单元)422。解分组器也计算并非分组中唯一的或第一帧的所有帧的RTP时间戳。例如,将RTP分组中含有的时间戳指派给其第一帧。在聚集(也就是说,对于含有一个以上单个帧的RTP分组)的情况下,将用于随后帧的时间戳增加帧持续时间除以RTP时间戳的标度的量。此外,对RTP时间戳而言,每一帧也标注有接收到RTP分组时的系统时间(“到达时间戳”)。可以看出,可以将RTP时间戳信息和到达时间戳信息426提供给(例如)目标延迟估计470。解分组器模块也确定帧是否是激活的或含有静音插入描述符(SID)。应注意,在未激活的周期内,在一些情况下仅接收SID帧。因此,将可(例如)包含SID标志的信息424提供给控制逻辑490。
5.4.2.去抖动缓冲器
去抖动缓冲器模块430存储在网络上接收(例如,经由TCP/IP型网络)的帧422,直至解码(例如,由解码器440)为止。帧422被插入按RTP时间戳升序排序的队列中,以撤销在网络上可能已经发生的重新排序。在队列前部的帧可馈入解码器440,且接着(例如,从去抖动缓冲器430)移除。如果队列为空,或根据在(队列的)前部处的帧与先前读取的帧的时间戳差,帧丢失,则传回空帧(例如,从去抖动缓冲器430至解码器440)以触发解码器模块440中的分组丢失隐藏(如果最后帧是激活的)或舒适噪声产生(如果最后帧为“SID”或未激活的)。
换句话说,解码器440可配置为在帧中信令传输应该使用舒适噪声(例如,使用是激活的“SID”标志)的情况下产生舒适噪声。另一方面,解码器也可以配置为在先前(最后一个)帧是激活的(也就是说,舒适噪声产生被去激活)且抖动缓冲器变空(使得空帧由抖动缓冲器430提供给解码器440)的情况下,例如通过提供预测的(或外插的)音频样本来执行分组丢失隐藏。
去抖动缓冲器模块430亦通过将空帧添加到(例如,抖动缓冲器的队列)前部来进行时间伸展或丢弃在(例如,抖动缓冲器的队列)前部的帧来进行时间收缩以支持基于帧的时间缩放。在未激活的周期的情况下,去抖动缓冲器可表现得如同添加或丢弃了“NO_DATA”帧一般。
5.4.3.时间标度修改(TSM)
在下文中,将描述本文中也简要地标识为时间缩放器或基于样本的时间缩放器的时间标度修改(TSM)。使用具有内建质量控制的经修改的基于分组的WSOLA(基于波形类似性的重叠相加)(例如,参考[Lia01])算法执行信号的时间标度修改(简要地标识为时间缩放)。一些细节可见于(例如)将在以下解释的图9中。时间缩放的等级是取决于信号的;当缩放时将创建严重假象的信号由质量控制侦测到,且接近静音的低电平信号被按最可能的程度来缩放。可良好地时间缩放的信号(如,周期性信号)按内部导出的移位来缩放。从类似性度量(诸如,归一化的互相关)导出移位。通过重叠相加(OLA),当前帧的末端(本文中也标识为“第二样本块”)经移位(例如,相对于当前帧的开头,当前帧的开头在本文中也标识为“第一样本块”)以缩短或延长帧。
如已提到,以下将参考示出了具有质量控制的经修改的WSOLA的图9并且也参考图10a和图10b和图11描述关于时间标度修改(TSM)的额外细节。
5.4.4.PCM缓冲器
在下文中,将描述PCM缓冲器。时间标度修改模块450按时间变化的标度改变由解码器模块输出的PCM帧的持续时间。例如,每音频帧432,解码器440可以输出1024个样本(或2048个样本)。相反,归因于基于样本的时间缩放,时间缩放器450可以每音频帧432输出变化数目的音频样本。相反,扬声器声卡(或大体上,声音输出器件)通常预期固定的帧设定,例如20ms。因此,使用具有先进先出行为的额外缓冲器来对时间缩放器输出样本448施加固定的帧设定。
当观看整个链时,这种PCM缓冲器460不创建额外的延迟。更确切地,仅在去抖动缓冲器430与PCM缓冲器460之间共享延迟。然而,目标在于将存储于PCM缓冲器460中的样本的数目保持为尽可能地低,这是因为这样增加了存储于去抖动缓冲器430中的帧的数目,并且因此减小了后续丢失的机率(其中解码器隐藏较晚接收的丢失帧)。
图5中示出了的伪程序代码示出了用以控制PCM缓冲程度的算法。如可以从图5的伪程序代码看到,基于取样率(“sampleRate”)计算声卡帧大小(“soundCardFrameSize”),其中作为示例,假定帧持续时间为20ms。因此,每声卡帧的样本的数目是已知的。随后,通过解码音频帧432(也标识为“accessUnit”)来填充PCM缓冲器,直至PCM缓冲器中的样本的数目(“pcmBuffer_nReadableSamples”)不再小于每个声卡帧的样本的数目(“soundCardFrameSize”)为止。首先,自去抖动缓冲器430获得(或请求)帧(也标识为“accessUnit”),如在参考数字510处所示出的。随后,通过对从去抖动缓冲器请求的帧432进行解码来获得音频样本的“帧”,如可在参考512处看到。因此,获得已解码音频样本(例如,以442来标识)的帧。随后,将时间标度修改应用于已解码音频样本442的帧,使得获得经时间缩放的音频样本448的“帧”,其可在参考数字514处看到。应注意,经时间缩放的音频样本的帧可以比输入时间缩放器450的已解码音频样本442的帧包含数目更大的音频样本或数目更小的音频样本。随后,将经时间缩放的音频样本448的帧插入PCM缓冲器460,如可在参考数字516处看到。
重复此程序,直至足够数目的(经时间缩放的)音频样本在PCM缓冲器460中可用。足够数目的(经时间缩放的)样本在PCM缓冲器中可用,经时间缩放的音频样本的“帧”(具有如由类似声卡的声音播放器件需要的帧长度)被从PCM缓冲器460读出且转发至声音播放器件(例如,至声卡),如在参考数字520和522处示出的。
5.4.5.目标延迟估计
在下文中,将描述可由目标延迟估计器470执行的目标延迟估计。目标延迟指定在播放先前帧的时间与此帧已被接收的时间之间的所需缓冲延迟(如果与当前在目标延迟估计模块470的历史中所含有的所有帧相比,其在网络上具有最低传输延迟)。为了估计目标延迟,使用两个不同抖动估计器,一个长期抖动估计器和一个短期抖动估计器。
长期抖动估计
为了计算长期抖动,可以使用FIFO数据结构。在使用DTX(不连续传输模式)的情况下,存储于FIFO中的时间跨度可能不同于所存储的输入项的数目。由于该原因,以两个方式来限制FIFOD窗大小。其可含有至多500个输入项(在每秒50个分组的速率下,等于10秒)和至多10秒的时间跨度(最新与最旧分组之间的RTP时间戳差)。如果将存储较多输入项,则移除最旧输入项。对于在网络上接收的每一RTP分组,将输入项添加到FIFO。输入项含有三个值:延迟、偏移和RTP时间戳。这种值是根据RTP分组的接收时间(例如,由到达时间戳表示)和RTP时间戳来计算的,如在图6的伪码中所示出的。
如可在参考数字610和612处看到,计算两个分组(例如,后续分组)的RTP时间戳之间的时间差(产生“rtpTimeDiff”),且计算两个分组(例如,后续分组)的接收时间戳之间的差(产生“rcvTimeDiff”)。此外,将RTP时间戳从传输器件的时基转换至接收器件的时基,如可在参考数字614处看到,从而产生“rtpTimeTicks”。类似地,将RTP时间差(RTP时间戳之间的差)转换至接收器时间标度(接收器件的时基),如可在参考数字616处看到,从而产生“rtpTimeDiff”。
随后,基于先前延迟信息来更新延迟信息(“delay”),如可在参考数字618处看到。例如,如果接收时间差(也就是说,接收到分组的时间的差)大于RTP时间差(也就是说,在发出分组的时间之间的差),则可得出延迟已增大的结论。此外,计算偏移时间信息(“offset”),如可在参考数字620处看到,其中偏移时间信息表示接收时间(也就是说,接收到分组的时间)与已发送分组的时间(如由RTP时间戳定义,其转换至接收器时间标度)之间的差。此外,将延迟信息、偏移时间信息和RTP时间戳信息(转换至接收器时间标度)添加到长期FIFO,如可在参考数字622处看到。
随后,将一些当前信息存储作为用于下一个迭代的“先前(previous)”信息,如可在参考数字624处看到。
可将长期抖动计算作为当前存储于FIFO中的最大延迟值与最小延迟值之间的差:
longTermJitter=longTermFifo_getMaxDelay()-longTermFifo_getMinDelay()
短期抖动估计
在下文中,将描述短期抖动估计。(例如)按两个步骤来进行短期抖动估计。在第一步骤中,使用与长期估计所进行的计算相同的抖动计算,但具有以下修改:FIFO的窗大小局限于至多50个输入项和至多1秒的时间跨度。将所得抖动值计算为当前存储于FIFO中的94%延迟值(忽略三个最高值)与最小延迟值之间的差:
shortTermJitterTmp=shortTermFifo1_getPercentileDelay(94)-shortTermFifo1_getMinDelay()
在第二步骤中,首先,针对此结果补偿短期与长期FIFO之间的不同偏移:
shortTermJitterTmp+=shortTermFifo1_getMinOffset()
shortTermJitterTmp-=longTermFifo_getMinOffset()
将此结果添加到窗大小具有至多200个输入项和至多四秒的时间跨度的另一FIFO。最后,将存储于FIFO中的最大值增加至帧大小的整数倍并且用作短期抖动:
shortTermFifo2_add(shortTermJitterTmp)
shortTermJitter=ceil(shortTermFifo2_getMax()/20.f)*20
通过长期/短期抖动估计的组合的目标延迟估计
为了计算目标延迟(例如,目标延迟信息472),取决于当前状态,按不同方式组合长期与短期抖动估计(例如,如上定义为“longTermJitter”和“shortTermJitter”)。对于激活的信号(或信号部分,对于其不使用舒适噪声产生),将范围(例如,由“targetMin”和“targetMax”定义)用作目标延迟。在DTX期间且针对DTX之后的起动,计算两个不同值作为目标延迟(例如“targetDtx”和“targetStartUp”)。
关于如何计算不同目标延迟值的方式的细节可见于(例如)图7中。如可在参考数字710和712处看到,基于短期抖动(“shortTermJitter”)和长期抖动(“longTermJitter”)计算指派激活信号的范围的值“targetMin”和“targetMax”。在DTX期间的目标延迟(“targetDtx”)的计算示出于参考数字714处,且针对起动(例如,在DTX后)的目标延迟值(“targetStartUp”)的计算示出于参考数字716处。
5.4.6.播放延迟估计
在下文中,将描述可由播放延迟估计器480执行的播放延迟估计。播放延迟指定播放先前帧的时间与已接收此帧的时间之间的缓冲延迟(如果与当前在目标延迟估计模块的历史中所含有的所有帧相比,其在网络上具有最低可能传输延迟)。使用以下公式以毫秒为单位对其进行计算:
playoutDelay=prevPlayoutOffset-longTermFifo_getMinOffset()+pcmBufferDelay;
只要当使用以毫秒为单位的当前系统时间和被转换至毫秒的帧的RTP时间戳,从去抖动缓冲器模块430弹出接收的帧时,都重新计算变量“prevPlayoutOffset”:
prevPlayoutOffset=sysTime-rtpTimestamp
为了避免在帧不可用的情况下“prevPlayoutOffset”将过时,在基于帧的时间缩放的情况下,更新所述变量。对于基于帧的时间伸展,将“prevPlayoutOffset”增加帧的持续时间,且对于基于帧的时间收缩,将“prevPlayoutOffset”减少帧的持续时间。变量“pcmBufferDelay”描述在PCM缓冲器模块中缓冲的时间的持续时间。
5.4.7.控制逻辑
在下文中,将详细描述控制器(例如,控制逻辑490)。然而,应注意,根据图8的控制逻辑800可由关于抖动缓冲器控制器100描述的特征和功能性中的任意一个补充,且反之亦然。此外,应注意,控制逻辑800可代替根据图4的控制逻辑490,且可选地包含额外特征和功能性。此外,不需要以上关于图4描述的所有特征和功能性也存在于根据图8的控制逻辑800中,且反之亦然。
图8示出了控制逻辑800的流程图,其自然也可以以硬件实施。
控制逻辑800包含上拉810帧用于解码。换句话说,选择帧用于解码,且在下文中确定应如何执行这种解码。在检查814中,检查先前帧(例如,在步骤810中上拉用于解码的帧之前的先前帧)是否是激活的。如果在检查814中发现先前帧是未激活的,则选择第一决策路径(分支)820,其用以调适未激活的信号。相反,如果在检查814中发现先前帧是激活的,则选择第二决策路径(分支)830,其用以调适激活的信号。第一决策路径820包含在步骤840中确定“gap”(间隙)值,其中间隙值描述播放延迟与目标延迟之间的差。此外,第一决策路径820包含基于间隙值决定850将执行的时间缩放操作。第二决策路径830包含取决于实际播放延迟是否在目标延迟间隔内而选择860时间缩放。
在下文中,将描述关于第一决策路径820和第二决策路径830的额外细节。
在第一决策路径820的步骤840中,执行对于下一个帧是否是激活的检查842。例如,检查842可检查在步骤810中上拉用于解码的帧是否是激活的。替代地,检查842可检查在步骤810中上拉用于解码的帧之后的帧是否是激活的。如果在检查842中发现下一个帧是未激活的,或下一个帧尚不可用,则在步骤844中将变量“gap”设置为实际播放延迟(由变量“playoutDelay”定义)与DTX目标延迟(由变量“targetDtx”表示)之间的差,如以上在章节“目标延迟估计”中所描述。相反,如果在检查840中发现下一个帧是激活的,则在步骤846中将变量“gap”设置为播放延迟(由变量“playoutDelay”表示)与起动目标延迟(如由变量“targetStartUp”定义)之间的差。
在步骤850中,首先检查变量“gap”的幅度是否大于(或等于)阈值。这在检查852中进行。如果发现变量“gap”的幅度小于(或等于)阈值,则不执行时间缩放。相反,如果在检查852中发现变量“gap”的幅度大于阈值(或等于阈值,取决于具体实施),则决定需要缩放。在另一检查854中,检查变量“gap”的值为正还是负(也就是说,变量“gap”是否大于零)。如果发现变量“gap”的值不大于零(也就是说,负),则将帧插入去抖动缓冲器(步骤856中的基于帧的时间伸展),使得执行基于帧的时间缩放。这可以(例如)由基于帧的缩放信息434发信号通知。相反,如果在检查854中发现变量“gap”的值大于零(也就是说,正),则从去抖动缓冲器中丢弃帧(步骤856中的基于帧的时间收缩),使得执行基于帧的时间缩放。这可以使用基于帧的缩放信息434来发信号通知。
在下文中,将描述第二决策分支860。在检查862中,检查播放延迟是否大于(或等于)(例如)由变量“targetMax”描述的最大目标值(也就是说,目标间隔的上限)。如果发现播放延迟大于(或等于)最大目标值,则由时间缩放器450执行时间收缩(步骤866,使用TSM的基于样本的时间收缩),使得执行基于样本的时间缩放。这可以(例如)由基于样本的缩放信息444发信号通知。然而,如果在检查862中发现播放延迟小于(或等于)最大目标延迟,则执行检查864,其中检查播放延迟是否小于(或等于)(例如)由变量“targetMin”描述的最小目标延迟。如果发现播放延迟小于(或等于)最小目标延迟,则由时间缩放器450执行时间伸展(步骤866,使用TSM的基于样本的时间伸展),使得执行基于样本的时间缩放。这可以(例如)由基于样本的缩放信息444发信号通知。然而,如果在检查864中发现播放延迟不小于(或等于)最小目标延迟,则不执行时间缩放。
总之,图8中示出了控制逻辑模块(也标识为抖动缓冲器管理控制逻辑)将实际延迟(播放延迟)与所需的延迟(目标延迟)进行比较。在显著差异的情况下,其触发时间缩放。在舒适噪声期间(例如,当SID标志是激活的时),由去抖动缓冲器模块触发和执行基于帧的时间缩放。在激活期间,由TSM模块触发和执行基于样本的时间缩放。
图12示出了用于目标延迟估计和播放延迟估计的示例。图形表示1200的横坐标1210描述时间,且图形表示1200的纵坐标1212描述以毫秒为单位的延迟。“targetMin”和“targetMax”系列创建了在窗化网络抖动后由目标延迟估计模块需要的延迟范围。播放延迟“playoutDelay”通常处在所述范围内,但由于信号自适应时间标度修改,调适可能被稍微延迟。
图13示出了在图12迹线中执行的时间标度操作。图形表示1300的横坐标1310描述以秒为单位的时间,且纵坐标1312描述以毫秒为单位的时间缩放。在图形表示1300中,正值指示时间伸展,负值指示时间收缩。在脉冲串期间,两个缓冲器皆只变空一次,且插入一个隐藏帧来进行伸展(在35秒处加上20毫秒)。对于所有其他调适,可使用较高质量的基于样本的时间缩放方法,其由于信号自适应方法而导致变化的标度。
总之,响应于在某个窗中抖动的增加(并且也响应于抖动的减少),动态地调适目标延迟。当目标延迟增加或减少时,通常执行时间缩放,其中以信号自适应方式作出与时间缩放的类型有关的决策。如果当前帧(或先前帧)是激活的,则执行基于样本的时间缩放,其中按信号自适应方式调适基于样本的时间缩放的实际延迟以便减少假象。因此,当应用基于样本的时间缩放时,通常不存在固定的时间缩放量。然而,即使先前帧(或当前帧)是激活的,当抖动缓冲器变空时,作为例外处置,有必要(或推荐)插入隐藏帧(其构成基于帧的时间缩放)。
5.8.根据图9的时间标度修改
在下文中,将参考图9描述与时间标度修改有关的细节。应注意,已在章节5.4.3.中简要描述了时间标度修改。然而,下文将更详细地描述可(例如)由时间缩放器150执行的时间标度修改。
图9示出了根据本发明的实施例的具有质量控制的经修改的WSOLA的流程图。应注意,根据图9的时间缩放900可由关于根据图2的时间缩放器200描述的特征和功能性中的任意一个补充,且反之亦然。此外,应注意,根据图9的时间缩放900可对应于根据图3的基于样本的时间缩放器340和根据图4的时间缩放器450。此外,根据图9的时间缩放900可代替基于样本的时间缩放866。
时间缩放(或时间缩放器,或时间缩放器修改器)900接收已解码(音频)样本910,例如按照脉冲编码调制(PCM)的形式。已解码样本910可对应于已解码样本442、对应于音频样本332或对应于输入音频信号210。此外,时间缩放器900接收可(例如)对应于基于样本的缩放信息444的控制信息912。控制信息912可以(例如)描述目标标度和/或最小帧大小(例如,将提供给PCM缓冲器460的音频样本448的帧的样本的最小数目)。时间缩放器900包含切换(或选择)920,其中基于与目标标度有关的信息决定是否应执行时间收缩、是否应执行时间伸展或是否不应该执行时间缩放。例如,切换(或检查,或选择)920可基于自控制逻辑490接收的基于样本的缩放信息444。
如果基于目标标度信息发现不应该执行缩放,则按未修改的形式将接收的已解码样本910转发作为时间缩放器900的输出。例如,按未修改的形式将已解码样本910转发给PCM缓冲器460,作为“经时间缩放的”样本448。
在下文中,将针对执行时间收缩(其可由检查920基于目标标度信息912发现)的情况来描述处理流程。在需要时间收缩的情况下,执行能量计算930。在此能量计算930中,计算样本块(例如,包含给定数目的样本的帧)的能量。在能量计算930后,执行选择(或切换,或检查)936。如果发现由能量计算930提供的能量值932大于(或等于)能量阈值(例如,能量阈值Y),则选择第一处理路径940,其包含信号自适应地确定在基于样本的时间缩放内的时间缩放量。相反,如果发现由能量计算930提供的能量值932小于(或等于)阈值(例如,阈值Y),则选择第二处理路径960,其中按基于样本的时间缩放应用固定时间移位量。在按信号自适应方式确定时间移位量的第一处理路径940中,基于音频样本执行类似性估计942。类似性估计942可以考虑最小帧大小信息944,且可提供与最高类似性有关的(或与最高类似性的位置有关的)信息946。换句话说,类似性估计942可以确定哪一位置(例如,样本块内的样本的哪一位置)最适合于时间收缩重叠相加操作。将与最高类似性有关的信息946转发给质量控制950,其计算或估计使用与最高类似性有关的信息946的重叠相加操作是否将导致大于(或等于)质量阈值X(其可恒定或其可为可变的)的音频质量。如果质量控制950发现重叠相加操作(或等效地,可以通过重叠相加操作获得的输入音频信号的时间缩放版本)的质量将小于(或等于)质量阈值X,则省略时间缩放,且由时间缩放器900输出未缩放的音频样本。相反,如果质量控制950发现使用与最高类似性有关(或与最高类似性的位置有关)的信息946的重叠相加操作的质量将大于或等于质量阈值X,则执行重叠相加操作954,其中在重叠相加操作中应用的移位由与最高类似性有关的(或与最高类似性的位置有关的)信息946描述。因此,由重叠相加操作提供经缩放的音频样本块(或帧)。
经时间缩放的音频样本956的块(或帧)可以(例如)对应于经时间缩放的样本448。类似地,如果质量控制950发现可获得的质量将小于或等于质量阈值X则被提供的未缩放的音频样本952的块(或帧)也可以对应于“经时间缩放的”样本448(其中在这种情况下,实际上不存在时间缩放)。
相反,如果在选择936中发现输入音频样本910的块(或帧)的能量小于(或等于)能量阈值Y,则执行重叠相加操作962,其中在重叠相加操作中使用的移位由最小帧大小(由最小帧大小信息描述)定义,且其中获得经缩放的音频样本964的块(或帧),其可对应于经时间缩放的样本448。
此外,应注意,在时间伸展的情况下执行的处理与在时间收缩中执行的处理相似,不过修改了类似性估计和重叠相加。
总之,应注意,当选择时间收缩或时间伸展时,在信号自适应的基于样本的时间缩放中区分三个不同情况。如果输入音频样本块(或帧)的能量包含比较小的能量(例如,小于(或等于)能量阈值Y),则用固定时间移位(也就是说,用固定的时间收缩或时间伸展量)执行时间收缩或时间伸展的重叠相加操作。相反,如果输入音频样本块(或帧)的能量大于(或等于)能量阈值Y,则通过类似性估计(类似性估计942)确定“最佳”(在本文中有时也标识为“候选”)时间收缩或时间伸展量。在随后质量控制步骤中,确定通过使用先前确定的“最佳”时间收缩或时间伸展量的这种重叠相加操作是否获得足够质量。如果发现可达到足够质量,则使用确定的“最佳”时间收缩或时间伸展量来执行重叠相加操作。相反,如果发现使用先前确定的“最佳”时间收缩或时间伸展量的重叠相加操作无法达到足够质量,则时间收缩或时间伸展被省略(或推迟至稍后时间点,例如,至稍后帧)。
在下文中,将描述关于可由时间缩放器900(或由时间缩放器200,或由时间缩放器340或由时间缩放器450)执行的质量自适应时间缩放的一些另外细节。使用重叠相加(OLA)的时间缩放方法广泛可用,但一般而言,不执行信号自适应时间缩放结果。在可用于本文中描述的时间缩放器中的所描述的解决方案中,时间缩放量不仅取决于通过类似性估计(例如,通过类似性估计942)提取的位置(其对于高质量时间缩放似乎最佳),并且也取决于重叠相加(例如,重叠相加954)的预期质量。因此,在时间缩放模块中(例如,在时间缩放器900中,或在本文中描述的其他时间缩放器中)引入两个质量控制步骤,以决定时间缩放是否将导致可听到的假象。在可能产生假象的情况下,时间缩放被推迟至其将较难被听见的时间点。
第一质量控制步骤将通过类似性度量(例如,通过类似性估计942)提取的位置p用作输入来计算目标质量度量。在周期性信号的情况下,p是当前帧的基频。针对位置p、2*p、3/2*p和1/2*p计算归一化的互相关c()。预期c(p)为正值,且c(1/2*p)可能为正或负。对于谐波信号,c(2p)的符号也应为正,且c(3/2*p)的符号应该等于c(1/2*p)的符号。此关系可用以建立目标质量度量q:
q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)。
q值范围为[-2;+2]。理想谐波信号将导致q=2,而可能在时间缩放期间产生可听到的假象的非常动态且宽带的信号将产生较低值。归因于基于逐个帧进行时间缩放的事实,用以计算c(2*p)和c(3/2*p)的整个信号可能尚不可用。然而,也可以通过查看过去的样本来进行评估。因此,可使用c(-p)替代c(2*p),且类似地,可使用c(-1/2*p)替代c(3/2*p)。
第二质量控制步骤将目标质量度量q的当前值与动态最小质量值qMin(其可对应于质量阈值X)进行比较来确定是否应将时间缩放应用于当前帧。
存在针对具有动态最小质量值的不同意图:如果q具有低值(因为信号被评估为不良的而无法在长时段中缩放),则应缓慢地减小qMin以确保仍可在某一时间点以较低预期质量执行预期缩放。另一方面,具有高值q的信号不应该导致缩放一行中的许多帧,缩放许多帧将降低与长期信号特性(例如,节律)有关的质量。
因此,使用以下公式计算动态最小质量qMin(其可(例如)等效于质量阈值X):
qMin=qMinInitial-(nNotScaled*0.1)+(nScaled*0.2)
qMinInitial为在某一质量与直至可以按请求的质量缩放帧为止时的延迟之间优化的配置值,其中值1为良好折衷。nNotScaled是由于不足的质量(q<qMin)而尚未缩放的帧的计数器。nScaled计数由于达到质量要求(q>=qMin)而已缩放的帧的数目。两个计数器的范围都受到限制:其将不减小至负值,且将不增加至高于缺省地设置为(例如)4的指定值。
如果q>=qMin,则当前帧将被时间缩放到位置p,否则,时间缩放将被推迟至符合此条件的接下来的帧。图11的伪码说明用于时间缩放的质量控制。
可以看出,将qMin的初始值设置为1,其中所述初始值以“qMinInitial”来标识(参见参考数字1110)。类似地,nScaled的最大计数器值(标识为“变量qualityRise”)被初始化为4,如可在参考数字1112处看到。将计数器nNotScaled的最大值初始化为4(变量“qualityRed”),参见参考数字1114。随后,通过类似性度量提取位置信息p,如可在参考数字1116处看到。随后,根据可在参考数字1116处看到的等式,计算由位置值p描述的位置的质量值q。取决于变量qMinInitial,并且也取决于计数器值nNotScaled和nScaled,计算质量阈值qMin,如可在参考数字1118处看到。可以看出,质量阈值qMin的初始值qMinInitial减小了与计数器nNotScaled的值成比例的值,且增大了与值nScaled成比例的值。可以看出,计数器值nNotScaled和nScaled的最大值也确定质量阈值qMin的最大增大和质量阈值qMin的最大减小。随后,执行质量值q是否大于或等于质量阈值qMin的检查,如可在参考数字1120处看到。
如果情况如此,则执行重叠相加操作,如可在参考数字1122处看到。此外,减小计数器变量nNotScaled,其中确保所述计数器变量不变负。此外,增大计数器变量nScaled,其中确保nScaled不超过由变量(或常数)qualityRise定义的上限。计数器变量的调适可见于参考数字1124和1126。
相反,如果在参考数字1120处示出的比较中发现质量值q小于质量阈值qMin,则省略重叠相加操作的执行,考虑到计数器变量nNotScaled不超过由变量(或常数)qualityRed定义的阈值,增大计数器变量nNotScaled,且考虑到计数器变量nScaled不变负,减小计数器变量nScaled。针对质量不足的情况下的计数器变量的调适示出于参考数字1128和1130处。
5.9.根据图10a和图10b的时间缩放器
在下文中,将参考图10a和图10b来解释信号自适应时间缩放器。图10a和图10b示出了信号自适应时间缩放的流程图。应注意,如在图10a和图10b中示出了信号自适应时间缩放可(例如)应用于时间缩放器200中、时间缩放器340中、时间缩放器450中或时间缩放器900中。
根据图10a和图10b的时间缩放器1000包含能量计算1010,其中计算音频样本的帧(或一部分或一块)的能量。例如,能量计算1010可对应于能量计算930。随后,执行检查1014,其中检查在能量计算1010中获得的能量值是否大于(或等于)能量阈值(其可(例如)是固定能量阈值)。如果在检查1014中发现在能量计算1010中获得的能量值小于(或等于)能量阈值,则可假定可通过重叠相加操作获得足够质量,且在步骤1018中,利用最大时间移位来执行重叠相加操作(以藉此获得最大时间缩放)。相反,如果在检查1014中发现在能量计算1010中获得的能量值不小于(或等于)能量阈值,则使用类似性度量执行对于在搜索区域内的模板分段的最佳匹配的搜索。例如,类似性度量可以是互相关、归一化的互相关、平均幅度差函数或均方误差之和。在下文中,将描述关于对最佳匹配的此搜索的一些细节,并且也将解释可获得时间伸展或时间收缩的方式。
现在对参考数字1040处的图形表示进行参考。第一表示1042示出了开始于时间t1且结束于时间t2的样本块(或帧)。可以看出,开始于时间t1且结束于时间t2的样本块可逻辑上分离成开始于时间t1且结束于时间t3的第一样本块和开始于时间t4且结束于时间t2的第二样本块。然而,接着相对于第一样本块时间移位第二样本块,如可在参考数字1044处看到。例如,作为第一时间移位的结果,经时间移位的第二样本块开始于时间t4′且结束于时间t2′。因此,在时间t4′与时间t3之间存在第一样本块与经时间移位的第二样本块之间的时间重叠。然而,可以看出,例如,在时间t4′与t3之间的重叠区域中(或在时间t4′与t3之间的重叠区域的一部分内),不存在第一样本块与第二样本块的经时间移位的版本之间的良好匹配(也就是说,无高类似性)。换句话说,时间缩放器可以(例如)时间移位第二样本块,如在参考数字1044处所示,且确定时间t4′与t3之间的重叠区域(或所述重叠区域的一部分)的类似性度量。此外,时间缩放器也可以将额外时间移位应用于第二样本块(如在参考数字1046处所示),使得第二样本块的经(两次)时间移位的版本开始于时间t4″且结束于时间t2″(其中t2″>t2′>t2,且类似地,t4″>t4′>t4)。时间缩放器也可以确定表示例如在时间t4″与t3之间(或例如,在时间t4″与t3之间的一部分内)第一样本块与第二样本块的经两次时间移位的版本之间的类似性的(定量)类似性信息。因此,时间缩放器评估第二样本块的经时间移位的版本的哪个时间移位将在与第一样本块的重叠区域中得到的类似性最大化(或至少大于一阈值)。因此,可确定导致第一样本块与第二样本块的经时间移位的版本之间的类似性最大化(或至少足够大)的“最佳匹配”的时间移位。因此,如果在时间重叠区域(例如,在时间t4″与t3之间)内存在第一样本块与第二样本块的经两次时间移位的版本之间的足够类似性,则可以由所使用的类似性度量确定的可靠性预期重叠相加第一样本块和第二样本块的经两次时间移位的版本的重叠相加操作导致无实质音频假象的音频信号。此外,应注意到,第一样本块与第二样本块的经两次时间移位的版本之间的重叠相加导致具有时间t1与t2″之间的时间延长的音频信号部分(其比自时间t1延伸至时间t2的“原始”音频信号长)。因此,可以通过重叠相加第一样本块和第二样本块的经两次时间移位的版本来实现时间伸展。
类似地,可以实现时间收缩,如将参照在参考数字1050处的图形表示所解释。如可在参考数字1052处看到,原始样本块(或帧)在时间t11与t12之间延伸。可以将原始样本块(或帧)划分成(例如)从时间t11延伸至时间t13的第一样本块以及从时间t13延伸至时间t12的第二样本块。第二样本块被向左时间移位,如可在参考数字1054处看到。因此,第二样本块经(一次)时间移位的版本开始于时间t13′且结束于时间t12′。同样,在时间t13′与t13之间存在第一样本块与第二样本块的经一次时间移位的版本之间的时间重叠。然而,时间缩放器可以确定表示在时间t13′与t13之间(或时间t13′与t13之间的时间的一部分)的第一样本块与第二样本块的经(一次)时间移位的版本的类似性的(定量)类似性信息,且发现类似性并不特别好。此外,时间缩放器可进一步时间移位第二样本块,以藉此获得第二样本块的经两次时间移位的版本,其示出于参考数字1056处,且其开始于时间t13″且结束于时间t12″。因此在时间t13″与t13之间存在第一样本块与第二样本块的经(两次)时间移位的版本之间的重叠。时间缩放器可以发现,(定量)类似性信息指示在时间t13″与t13之间在第一样本块与第二样本块的经两次时间移位的版本之间的高类似性。因此,时间缩放器可得出结论:可在第一样本块与第二样本块的经两次时间移位的版本之间以良好质量和较少音频假象(至少具有由使用的类似性度量提供的可靠性)执行重叠相加操作。此外,也可以考虑在参考数字1058处示出了的第二样本块的经三次时间移位的版本。第二样本块的经三次时间移位的版本可开始于时间t13′"且结束于时间t12′"。然而,在时间t13′"与t13之间的重叠区域中,第二样本块的经三次时间移位的版本可以不包含与第一样本块的良好类似性,这是因为所述时间移位并不合适。因此,时间缩放器可发现第二样本块的经两次时间移位的版本包含与第一样本块的最佳匹配(在重叠区域中和/或在重叠区域的周围中和/或在重叠区域的一部分中的最佳类似性)。因此,时间缩放器可执行第一样本块与第二样本块的经两次时间移位的版本的重叠相加,其限制性条件为额外质量检查(其可取决于第二更有意义的类似性度量)指示足够质量。作为重叠相加操作的结果,获得组合样本块,其自时间t11延伸至时间t12″,且其在时间上比从时间t11至t12的原始样本块短。因此,可执行时间收缩。
应注意,可由搜索1030执行已经参照在参考数字1040和1050处的图形表示描述的以上功能性,其中作为搜索最佳匹配的结果,提供与最高类似性的位置有关的信息(其中描述最高类似性的位置的信息或值在本文中亦以p来标识)。可以使用互相关、使用归一化的互相关、使用平均幅度差函数或使用均方误差之和来确定在各自重叠区域内的第一样本块与第二样本块的经时间移位的版本之间的类似性。
一旦确定了关于最高类似性的位置(p)的信息,执行针对最高类似性的经识别位置(p)的匹配质量的计算1060。可执行此计算,例如,如在图11中的参考数字1116处所示出。换句话说,可使用可针对不同时间移位(例如,时间移位p、2*p、3/2*p和1/2*p)获得的四个相关性值的组合来计算关于匹配质量的(定量)信息(例如,其可以q来标识)。因此,可获得表示匹配质量的(定量)信息(q)。
现参考图10b,执行检查1064,其中将描述匹配质量的定量信息q与质量阈值qMin进行比较。这种检查或比较1064可以评估由变量q表示的匹配质量是否大于(或等于)可变质量阈值qMin。如果在检查1064中发现匹配质量足够(也就是说,大于或等于可变质量阈值),则使用最高类似性的位置(例如,其由变量p描述)来应用重叠相加操作(步骤1068)。因此,执行重叠相加操作,例如,在导致“最佳匹配”(也就是说,导致类似性信息的最高值)的第一样本块与第二样本块的经时间移位的版本之间。针对细节,(例如)参考关于图形表示1040和1050进行的解释。重叠相加的应用也示出于图11中的参考数字1122处。此外,在步骤1072中执行帧计数器的更新。例如,更新计数器变量“nNotScaled”和计数器变量“nScaled”,例如,如参考图11在参考数字1124和1126处所描述。相反,如果在检查1064中发现匹配质量不足(例如,小于(或等于)可变质量阈值qmin),则避免(例如,推迟)重叠相加操作,其指示于参考数字1076处。在这种情况下,也对帧计数器进行更新,如在步骤1080中所示。可执行帧计数器的更新,例如,如在图11中的参考数字1128和1130处所示出。此外,参考图10a和图10b描述的时间缩放器也可以计算可变质量阈值qMin,其示出于参考数字1084处。可执行可变质量阈值qMin的计算,例如,如在图11中的参考数字1118处所示出。
总之,时间缩放器1000(其功能性已参考图10a和图10b以流程图的形式进行了描述)可以使用质量控制机制(步骤1060至1084)执行基于样本的时间缩放。
5.10.根据图14的方法
图14示出了用于基于输入音频内容来控制对已解码音频内容的提供的方法的流程图。根据图14的方法1400包含按信号自适应方式选择1410基于帧的时间缩放或基于样本的时间缩放。
此外,应注意,方法1400可由本文中描述(例如,关于抖动缓冲器控制器)的特征和功能性中的任意一个来补充。
5.11.根据图15的方法
图15示出了用于提供输入音频信号的经时间缩放的版本的方法1500的方框示意图。所述方法包含计算或估计1510可通过对输入音频信号的时间缩放获得的输入音频信号的时间缩放版本的质量。此外,方法1500包含取决于可通过时间缩放获得的输入音频信号的时间缩放版本的质量的计算或估计而执行1520输入音频信号的时间缩放。
方法1500可由本文中描述(例如,关于时间缩放器)的特征和功能性中的任意一个来补充。
6.结论
总之,根据本发明的实施例创建一种用于高质量话语和音频通信的抖动缓冲器管理方法和装置。所述方法和所述装置可与通信编码解码器(诸如,MPEGELD、AMR-WB或未来的编码解码器)一起使用。换句话说,根据本发明的实施例创建一种用于补偿在基于分组通信中的到达间抖动的方法和装置。
本发明的实施例可应用于(例如)称作“3GPPEVS”的技术中。
在下文中,将简要描述根据本发明的实施例的一些方面。
本文中描述的抖动缓冲器管理解决方案创建一种系统,其中许多描述的模块为可用的且按以上描述的方式组合。此外,应注意,本发明的方面也涉及模块自身的特征。
本发明的一个重要方面是用于自适应抖动缓冲器管理的时间缩放方法的信号自适应选择。描述的解决方案在控制逻辑中组合基于帧的时间缩放与基于样本的时间缩放,使得组合了两个方法的优势。可用的时间缩放方法为:
●在DTX中的舒适噪声插入/删除;
●重叠相加(OLA),而无在低信号能量中(例如,对于具有低信号能量的帧)的相关性;
●针对激活信号的WSOLA;
●在空抖动缓冲器的情况下,插入隐藏帧来进行伸展。
本文中描述的解决方案描述用以组合基于帧的方法(舒适噪声插入和删除,和插入隐藏帧来进行伸展)与基于样本的方法(针对激活信号的WSOLA,和针对低能量信号的未同步化的重叠相加(OLA))的机制。在图8中,说明根据本发明的实施例的选择用于时间标度修改的最佳技术的控制逻辑。
根据本文中描述的再一个方面,使用用于自适应抖动缓冲器管理的多个目标。在描述的解决方案中,目标延迟估计将不同优化准则用于计算单一目标播放延迟。这些准则导致首先针对高质量或低延迟优化的不同目标。
用于计算目标播放延迟的多个目标为:
●质量:避免晚期丢失(评估抖动);
●延迟:限制延迟(评估抖动)。
描述的解决方案的一个(可选)方面是优化目标延迟估计,使得限制延迟并且也避免晚期丢失,且此外保留抖动缓冲器中的小部分以增加内插的机率以允许实现解码器的高质量误差隐藏。
另一(可选)方面涉及迟到帧的TCX隐藏恢复。迄今多数抖动缓冲器管理解决方案抛弃迟到的帧。已描述了在基于ACELPD解码器中使用迟到帧的机制[Lef03]。根据一方面,此机制也用于不同于ACELP帧的帧(例如,如TCX的经频域编码的帧),以(一般而言)辅助解码器状态的恢复。因此,迟接收和已隐藏的帧仍被馈入解码器以改进解码器状态的恢复。
根据本发明的另一重要方面是以上描述的质量自适应时间缩放。
进一步得出结论:根据本发明的实施例创建一种可用于在基于分组通信中改进用户体验的完整抖动缓冲器管理解决方案。观察到所提出的解决方案执行起来比发明人已知的任何其他已知抖动缓冲器管理解决方案更优越。
7.实施替代方案
虽然已在装置的上下文中描述了一些方面,但显然,这种方面亦表示对应的方法的描述,其中块或器件对应于方法步骤或方法步骤的特征。类似地,在方法步骤的上下文中描述的方面亦表示对应装置的对应的块或项目或特征的描述。所述方法步骤中的一些或全部可由(或使用)硬件装置(例如,微处理器、可编程计算机或电子电路)来执行。在一些实施例中,最重要的方法步骤中的某一个或多个可由此装置执行。
本发明的经编码音频信号可存储于数字存储介质上,或可在诸如无线传输介质或有线传输介质(诸如,因特网)的传输介质上传输。
取决于某些实施要求,本发明的实施例可以硬件或以软件实施。可使用存储有电子可读控制信号的例如软盘、DVD、Blu-Ray、CD、ROM、PROM、EPROM、EEPROM或FLASH内存的数字存储介质执行所述实施,电子可读控制信号与(或能够与)可程序化计算机系统合作使得执行各方法。因此,数字存储介质可以是计算机可读的。
根据本发明的一些实施例包含具有电子可读控制信号的数据载体,电子可读控制信号能够与可编程计算机系统合作,使得执行本文中描述的方法之一。
通常,可将本发明的实施例实施是具有程序代码的计算机程序产品,程序代码可操作以用于当计算机程序产品在计算机上执行时执行所述方法之一。程序代码可(例如)存储于机器可读载体上。
其他实施例包含存储于机器可读载体上的用于执行本文中描述的方法之一的计算机程序。
换句话说,本发明方法的实施例因此是具有程序代码的计算机程序,所述程序代码用于当计算机程序在计算机上执行时执行本文中描述的方法之一。
本发明方法的再一实施例因此是包含、记录有计算机程序的数据载体(或数字存储介质或计算机可读介质),所述计算机程序用于执行本文中描述的方法之一。数据载体、数字存储介质或记录介质通常为有形的和/或非暂时性的。
本发明方法的再一实施例因此是表示计算机程序的数据串流或一连串信号,所述计算机程序用于执行本文中描述的方法之一。数据串流或所述一连串信号可(例如)配置为经由数据通信连接(例如,经由因特网)传送。
再一实施例包含一种处理装置(例如,计算机或可编程逻辑器件),其配置为或调适以执行本文中描述的方法之一。
再一实施例包含一种计算机,其安装有用于执行本文中描述的方法之一的计算机程序。
根据本发明的再一实施例包含配置为将用于执行本文中描述的方法之一的计算机程序传送(例如,以电子方式或以光学方式)至接收器的装置或系统。接收器可(例如)为计算机、移动设备、存储器件或类似者。装置或系统可(例如)包含用于将计算机程序传送至接收器的文件服务器。
在一些实施例中,可使用可编程逻辑器件(例如,现场可编程门阵列)执行本文中描述的方法的一些或全部功能性。在一些实施例中,现场可编程门阵列可以与微处理器合作以便执行本文中描述的方法之一。通常,所述方法优选地由任一硬件装置执行。
本文中描述的装置可使用硬件装置或使用计算机或使用硬件装置与计算机的组合来实施。
本文中描述的方法可使用硬件装置或使用计算机或使用硬件装置与计算机的组合来执行。
上述实施例仅例示了本发明的原理。应理解,本文中描述的配置和细节的修改和变化将对其他本领域技术人员而言显而易见。因此,意图为仅受到随附的申请专利范围的范畴限制,且不受通过本文中的实施例描述和解释呈现的特定细节限制。
参考文献
[Lia01]Y.J.Liang,N.Faerber,B.Girod:“Adaptiveplayoutschedulingusingtime-scalemodificationinpacketvoicecommunications”,2001
[Lef03]P.Gournay,F.Rousseau,R.Lefebvre:“Improvedpacketlossrecoveryusinglateframesforprediction-basedspeechcoders”,2003

Claims (29)

1.一种用于提供输入音频信号(210;332;442;910)的时间缩放版本(212;312;448;956)的时间缩放器(200;340;450;866;900;1000),
其中所述时间缩放器配置为计算或估计(950;1060)能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量,并且
其中所述时间缩放器配置为取决于能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计而执行(954;1068)对所述输入音频信号的时间缩放。
2.如权利要求1所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为使用所述输入音频信号的第一样本块和所述输入音频信号的第二样本块来执行重叠相加操作(954;1068),
其中所述时间缩放器配置为执行所述第二样本块相对于所述第一样本块的时间移位,并且对所述第一样本块与时间移位的第二样本块进行重叠相加,从而获得所述输入音频信号的时间移位版本。
3.如权利要求2所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为计算或估计(950;1060)所述第一样本块与所述时间移位的第二样本块之间的重叠相加操作的质量,以便计算或估计能够通过所述时间缩放获得的所述输入音频信号的时间移位版本的质量。
4.如权利要求2或3所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为:取决于对所述第一样本块或所述第一样本块的一部分与所述第二样本块或所述第二样本块的一部分之间的类似程度的确定来确定(942;1030)所述第二样本块相对于所述第一样本块的时间移位(p)。
5.如权利要求4所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为:针对所述第一样本块与所述第二样本块之间的多个不同时间移位,确定与所述第一样本块或所述第一样本块的一部分与所述第二样本块或所述第二样本块的一部分之间的类似程度有关的信息,以及基于针对所述多个不同时间移位的与类似程度有关的信息来确定将要用于所述重叠相加操作的时间移位(p)。
6.如权利要求4或5所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为取决于目标时间移位信息来确定所述第二样本块相对于所述第一样本块的时间移位(p),所述时间移位将用于所述重叠相加操作。
7.如权利要求4至6中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为:基于与所述第一样本块或所述第一样本块的一部分与按照所确定的时间移位(p)进行时间移位的所述第二样本块或按照所确定的时间移位(p)进行时间移位的所述第二样本块的一部分之间的类似程度有关的信息,计算或估计(950;1060)能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间移位版本的质量(q)。
8.如权利要求7所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为:基于与所述第一样本块或所述第一样本块的一部分与按照所确定的时间移位(p)进行时间移位的所述第二样本块或按照所确定的时间移位(p)进行时间移位的所述第二样本块的一部分之间的类似程度有关的信息来决定(1064)是否实际执行时间缩放。
9.如权利要求1至8中任一项所述的时间缩放器(200;340;450;866;900;1000),
其中所述时间缩放器配置为:在对能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量(q)的计算或估计指示大于或等于质量阈值(qmin)的质量的情况下,执行第二样本块相对于第一样本块的时间移位,并且对所述第一样本块和时间移位的第二样本块进行重叠相加(954;1068),从而获得所述输入音频信号的时间移位版本;并且
其中所述时间缩放器配置为取决于对使用第一类似性度量评估的在所述第一样本块或所述第一样本块的一部分与所述第二样本块或所述第二样本块的一部分之间的类似程度的确定来确定所述第二样本块相对于所述第一样本块的时间移位(p);并且
其中所述时间缩放器配置为:基于与使用第二类似性度量评估的在所述第一样本块或所述第一样本块的一部分与按照所确定的时间移位进行时间移位的所述第二样本块或按照所确定的时间移位进行时间移位的所述第二样本块的一部分之间的类似程度有关的信息,计算或估计(950;1060)能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间移位版本的质量(q)。
10.如权利要求9所述的时间缩放器(200;340;450;866;900;1000),其中所述第二类似性度量(q)在计算上比所述第一类似性度量复杂。
11.如权利要求9或10所述的时间缩放器(200;340;450;866;900;1000),其中所述第一类似性度量是互相关、或归一化互相关、或平均幅度差函数、或均方误差之和,并且
其中所述第二类似性度量(q)是针对多个不同时间移位的互相关或归一化的互相关的组合。
12.如权利要求9至11中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述第二类似性度量(q)是至少四个不同时间移位的互相关的组合。
13.如权利要求12所述的时间缩放器(200;340;450;866;900;1000),其中所述第二类似性度量(q)是针对间隔所述第一样本块或所述第二样本块的音频内容的基频的周期持续时间(p)的整数倍的时间移位所获得的第一互相关值与第二互相关值以及针对间隔所述音频内容的基频的周期持续时间(p)的整数倍的时间移位所获得的第三互相关值与第四互相关值的组合,
其中获得该第一互相关值的时间移位与获得该第三互相关值的时间移位间隔所述音频内容的基频的周期持续时间(p)的一半的奇数倍。
14.如权利要求9至13中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述第二类似性度量q是根据下式获得的:
q=c(p)*c(2*p)+c(3/2*p)*c(1/2*p)
q=c(p)*c(-p)+c(-1/2*p)*c(1/2*p),
其中c(p)是第一样本块与在时间上移位第一样本块或第二样本块的音频内容的基频的周期持续时间p的所述第二样本块之间的互相关值;
其中c(2*p)是第一样本块与在时间上移位2*p的第二样本块之间的互相关值;
其中c(3/2*p)是第一样本块与在时间上移位3/2*p的第二样本块之间的互相关值;
其中c(1/2*p)是第一样本块与在时间上移位1/2*p的第二样本块之间的互相关值;
其中c(-p)是第一样本块与在时间上移位-p的第二样本块之间的互相关值;且
其中c(-1/2*p)是第一样本块与在时间上移位-1/2*p的第二样本块之间的互相关值。
15.如权利要求1至14中任一项所述的时间缩放器(200;340;450;866;900;1000),
其中所述时间缩放器配置为将基于对能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的计算或估计获得的质量值(q)和可变阈值(qmin)进行比较(1064),以决定是否应该执行时间缩放。
16.如权利要求15所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为:响应于时间缩放的质量对于一个或多个先前样本块不足的发现,减小所述可变阈值(qmin),从而降低质量要求。
17.如权利要求15或16所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为响应于时间缩放已经应用于一个或多个先前样本块的事实而增大所述可变阈值(qmin),从而提高质量要求。
18.如权利要求15至17中任一项所述的时间缩放器(200;340;450;866;900;1000),
其中所述时间缩放器包括范围有限的第一计数器(nScaled),用于对因为已达到能够通过所述时间缩放获得的所述输入音频信号的时间移位版本的相应质量要求而已经进行时间缩放的样本块的数目或帧的数目的进行计数,并且
其中所述时间缩放器包括范围有限的第二计数器(nNotScaled),用于对因为尚未达到能够通过所述时间缩放获得的所述输入音频信号的时间移位版本的相应质量要求而尚未进行时间缩放的样本块的数目或帧的数目进行计数;并且
其中所述时间缩放器配置为取决于所述第一计数器(nScaled)的值及取决于所述第二计数器(nNotScaled)的值来计算所述可变阈值(qmin)。
19.如权利要求18所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为将与所述第一计数器(nScaled)的值成比例的值与初始阈值相加,并且从中减去与所述第二计数器(nNotScaled)的值成比例的值,以便获得所述可变阈值(qmin)。
20.如权利要求1至19中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为取决于能够通过对所述时间缩放获得的所述输入音频信号的时间缩放版本的质量(q)的所述计算或估计(950;1060)而执行对所述输入音频信号的时间缩放,其中对所述输入音频信号的时间缩放版本的质量的所述计算或估计包括对在所述输入音频信号的时间移位版本中的将由时间缩放引起的假象的计算或估计。
21.如权利要求20所述的时间缩放器(200;340;450;866;900;1000),其中对所述输入音频信号的时间缩放版本的质量(q)的所述计算或估计(950;1060)包括对在所述输入音频信号的时间移位版本中的将由所述输入音频信号的后续样本块的重叠相加操作(954;1068)引起的假象的计算或估计。
22.如权利要求1至21中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为取决于所述输入音频信号的后续样本块的类似程度而计算或估计(950;1060)能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量(q)。
23.如权利要求1至22中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为计算或估计在能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本中是否存在可听到的假象。
24.如权利要求1至23中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器配置为在对能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计指示不足的质量的情况下将时间缩放推迟至后续帧或后续样本块。
25.如权利要求1至24中任一项所述的时间缩放器(200;340;450;866;900;1000),其中所述时间缩放器可配置为在能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计指示不足的质量的情况下将时间缩放推迟至所述时间缩放较难被听到的时间。
26.一种用于基于输入音频内容(310)提供解码音频内容(312)的音频解码器(300),所述音频解码器包括:
抖动缓冲器(320),配置为对表示音频样本块的多个音频帧进行缓冲;
解码器内核(330),配置为基于从所述抖动缓冲器接收的音频帧(322)来提供音频样本块(332);
如权利要求1至25中任一项所述的基于样本的时间缩放器(200;340;450;866;900;1000),其中所述基于样本的时间缩放器配置为基于由所述解码器内核提供的音频样本块来提供时间缩放的音频样本块(342)。
27.如权利要求26所述的音频解码器(300),其中所述音频解码器还包括抖动缓冲器控制器(100;350;490;800),
其中所述抖动缓冲器控制器配置为将控制信息(114;444)提供至所述基于样本的时间缩放器(200;340;450;866;900;1000),其中所述控制信息指示是否应执行基于样本的时间缩放,及/或其中所述控制信息指示所需的时间缩放量。
28.一种用于提供输入音频信号的时间缩放版本的方法(1500),
其中所述方法包括计算或估计(1510)能够通过对所述输入音频信号的时间缩放获得的所述输入音频信号的时间缩放版本的质量,并且
其中所述方法包括取决于对能够通过所述时间缩放获得的所述输入音频信号的时间缩放版本的质量的所述计算或估计来执行(1520)对所述输入音频信号的时间缩放。
29.一种计算机程序,用于当所述计算机程序正在计算机上执行时执行如权利要求28所述的方法。
CN201480046485.6A 2013-06-21 2014-06-18 时间缩放器、音频解码器、方法和计算机可读存储介质 Active CN105474313B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910588534.3A CN110211603B (zh) 2013-06-21 2014-06-18 使用质量控制的时间缩放器、音频解码器、方法和数字存储介质

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
EP13173159 2013-06-21
EP13173159.8 2013-06-21
EP14167055 2014-05-05
EP14167055.4 2014-05-05
PCT/EP2014/062833 WO2014202672A2 (en) 2013-06-21 2014-06-18 Time scaler, audio decoder, method and a computer program using a quality control

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201910588534.3A Division CN110211603B (zh) 2013-06-21 2014-06-18 使用质量控制的时间缩放器、音频解码器、方法和数字存储介质

Publications (2)

Publication Number Publication Date
CN105474313A true CN105474313A (zh) 2016-04-06
CN105474313B CN105474313B (zh) 2019-09-06

Family

ID=51022305

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201480046485.6A Active CN105474313B (zh) 2013-06-21 2014-06-18 时间缩放器、音频解码器、方法和计算机可读存储介质
CN201910588534.3A Active CN110211603B (zh) 2013-06-21 2014-06-18 使用质量控制的时间缩放器、音频解码器、方法和数字存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910588534.3A Active CN110211603B (zh) 2013-06-21 2014-06-18 使用质量控制的时间缩放器、音频解码器、方法和数字存储介质

Country Status (18)

Country Link
US (3) US10204640B2 (zh)
EP (3) EP3321935B1 (zh)
JP (1) JP6317436B2 (zh)
KR (1) KR101952192B1 (zh)
CN (2) CN105474313B (zh)
AU (2) AU2014283256B2 (zh)
BR (1) BR112015032174B1 (zh)
CA (1) CA2916126C (zh)
ES (2) ES2667823T3 (zh)
HK (3) HK1223727A1 (zh)
MX (1) MX355850B (zh)
MY (1) MY171256A (zh)
PL (2) PL3321935T3 (zh)
PT (2) PT3011564T (zh)
RU (1) RU2662683C2 (zh)
SG (2) SG11201510501YA (zh)
TW (1) TWI581257B (zh)
WO (1) WO2014202672A2 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2667823T3 (es) * 2013-06-21 2018-05-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Escalador de tiempo, decodificador de audio, procedimiento y programa informático mediante el uso de un control de calidad
PL3011692T3 (pl) 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy
US9948578B2 (en) * 2015-04-14 2018-04-17 Qualcomm Incorporated De-jitter buffer update
GB2535819B (en) * 2015-07-31 2017-05-17 Imagination Tech Ltd Monitoring network conditions
KR102422794B1 (ko) * 2015-09-04 2022-07-20 삼성전자주식회사 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치
US10878835B1 (en) * 2018-11-16 2020-12-29 Amazon Technologies, Inc System for shortening audio playback times
US20200184366A1 (en) * 2018-12-06 2020-06-11 Fujitsu Limited Scheduling task graph operations
CN110113270B (zh) * 2019-04-11 2021-04-23 北京达佳互联信息技术有限公司 网络通信的抖动控制方法、装置、终端及存储介质
CN112764709B (zh) * 2021-01-07 2021-09-21 北京创世云科技股份有限公司 一种声卡数据的处理方法、装置及电子设备
CN113242546B (zh) * 2021-06-25 2023-04-21 南京中感微电子有限公司 音频转发方法、设备和存储介质
CN117041123B (zh) * 2023-10-08 2024-02-09 广东保伦电子股份有限公司 一种双任务并发广播监听方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006106466A1 (en) * 2005-04-07 2006-10-12 Koninklijke Philips Electronics N.V. Method and signal processor for modification of audio signals
US20070260462A1 (en) * 1999-12-28 2007-11-08 Global Ip Solutions (Gips) Ab Method and arrangement in a communication system
US20080285599A1 (en) * 2005-11-07 2008-11-20 Ingemar Johansson Control Mechanism for Adaptive Play-Out with State Recovery
CN101379556A (zh) * 2006-02-07 2009-03-04 诺基亚公司 控制音频信号的时间缩放
CN102214464A (zh) * 2010-04-02 2011-10-12 飞思卡尔半导体公司 音频信号的瞬态检测方法以及基于该方法的时长调整方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3832491A (en) * 1973-02-13 1974-08-27 Communications Satellite Corp Digital voice switch with an adaptive digitally-controlled threshold
US4052568A (en) * 1976-04-23 1977-10-04 Communications Satellite Corporation Digital voice switch
US5175769A (en) * 1991-07-23 1992-12-29 Rolm Systems Method for time-scale modification of signals
US5806023A (en) * 1996-02-23 1998-09-08 Motorola, Inc. Method and apparatus for time-scale modification of a signal
US6360271B1 (en) 1999-02-02 2002-03-19 3Com Corporation System for dynamic jitter buffer management based on synchronized clocks
US6549587B1 (en) 1999-09-20 2003-04-15 Broadcom Corporation Voice and data exchange over a packet based network with timing recovery
US6788651B1 (en) 1999-04-21 2004-09-07 Mindspeed Technologies, Inc. Methods and apparatus for data communications on packet networks
US6658027B1 (en) 1999-08-16 2003-12-02 Nortel Networks Limited Jitter buffer management
US6665317B1 (en) 1999-10-29 2003-12-16 Array Telecom Corporation Method, system, and computer program product for managing jitter
US6683889B1 (en) 1999-11-15 2004-01-27 Siemens Information & Communication Networks, Inc. Apparatus and method for adaptive jitter buffers
US6700895B1 (en) 2000-03-15 2004-03-02 3Com Corporation Method and system for computationally efficient calculation of frame loss rates over an array of virtual buffers
US7246057B1 (en) 2000-05-31 2007-07-17 Telefonaktiebolaget Lm Ericsson (Publ) System for handling variations in the reception of a speech signal consisting of packets
US6862298B1 (en) 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
US6738916B1 (en) 2000-11-02 2004-05-18 Efficient Networks, Inc. Network clock emulation in a multiple channel environment
ATE353503T1 (de) 2001-04-24 2007-02-15 Nokia Corp Verfahren zum ändern der grösse eines zitlerpuffers zur zeitausrichtung, kommunikationssystem, empfängerseite und transcoder
US7006511B2 (en) 2001-07-17 2006-02-28 Avaya Technology Corp. Dynamic jitter buffering for voice-over-IP and other packet-based communication systems
US7697447B2 (en) 2001-08-10 2010-04-13 Motorola Inc. Control of jitter buffer size and depth
US6977948B1 (en) 2001-08-13 2005-12-20 Utstarcom, Inc. Jitter buffer state management system for data transmitted between synchronous and asynchronous data networks
US7170901B1 (en) 2001-10-25 2007-01-30 Lsi Logic Corporation Integer based adaptive algorithm for de-jitter buffer control
US7079486B2 (en) 2002-02-13 2006-07-18 Agere Systems Inc. Adaptive threshold based jitter buffer management for packetized data
US7496086B2 (en) 2002-04-30 2009-02-24 Alcatel-Lucent Usa Inc. Techniques for jitter buffer delay management
AU2002321917A1 (en) * 2002-08-08 2004-02-25 Cosmotan Inc. Audio signal time-scale modification method using variable length synthesis and reduced cross-correlation computations
US20040062260A1 (en) 2002-09-30 2004-04-01 Raetz Anthony E. Multi-level jitter control
US7426470B2 (en) * 2002-10-03 2008-09-16 Ntt Docomo, Inc. Energy-based nonuniform time-scale modification of audio signals
US7289451B2 (en) 2002-10-25 2007-10-30 Telefonaktiebolaget Lm Ericsson (Publ) Delay trading between communication links
US7394833B2 (en) 2003-02-11 2008-07-01 Nokia Corporation Method and apparatus for reducing synchronization delay in packet switched voice terminals using speech decoder modification
US20050047396A1 (en) 2003-08-29 2005-03-03 Helm David P. System and method for selecting the size of dynamic voice jitter buffer for use in a packet switched communications system
US7596488B2 (en) 2003-09-15 2009-09-29 Microsoft Corporation System and method for real-time jitter control and packet-loss concealment in an audio signal
US7337108B2 (en) * 2003-09-10 2008-02-26 Microsoft Corporation System and method for providing high-quality stretching and compression of a digital audio signal
US20050094628A1 (en) 2003-10-29 2005-05-05 Boonchai Ngamwongwattana Optimizing packetization for minimal end-to-end delay in VoIP networks
US20050137729A1 (en) * 2003-12-18 2005-06-23 Atsuhiro Sakurai Time-scale modification stereo audio signals
US6982377B2 (en) * 2003-12-18 2006-01-03 Texas Instruments Incorporated Time-scale modification of music signals based on polyphase filterbanks and constrained time-domain processing
US7359324B1 (en) 2004-03-09 2008-04-15 Nortel Networks Limited Adaptive jitter buffer control
EP1754327A2 (en) 2004-03-16 2007-02-21 Snowshore Networks, Inc. Jitter buffer management
US7424026B2 (en) * 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
EP2189978A1 (en) 2004-08-30 2010-05-26 QUALCOMM Incorporated Adaptive De-Jitter Buffer for voice over IP
US7783482B2 (en) 2004-09-24 2010-08-24 Alcatel-Lucent Usa Inc. Method and apparatus for enhancing voice intelligibility in voice-over-IP network applications with late arriving packets
US20060187970A1 (en) 2005-02-22 2006-08-24 Minkyu Lee Method and apparatus for handling network jitter in a Voice-over IP communications network using a virtual jitter buffer and time scale modification
US7599399B1 (en) 2005-04-27 2009-10-06 Sprint Communications Company L.P. Jitter buffer management
US7548853B2 (en) * 2005-06-17 2009-06-16 Shmunk Dmitry V Scalable compressed audio bit stream and codec using a hierarchical filterbank and multichannel joint coding
US7746847B2 (en) 2005-09-20 2010-06-29 Intel Corporation Jitter buffer management in a packet-based network
US20070083377A1 (en) * 2005-10-12 2007-04-12 Steven Trautmann Time scale modification of audio using bark bands
US7720677B2 (en) * 2005-11-03 2010-05-18 Coding Technologies Ab Time warped modified transform coding of audio signals
ES2400160T3 (es) * 2006-04-04 2013-04-08 Dolby Laboratories Licensing Corporation Control de una característica percibida del volumen sonoro de una señal de audio
US20070276657A1 (en) * 2006-04-27 2007-11-29 Technologies Humanware Canada, Inc. Method for the time scaling of an audio signal
US20070263672A1 (en) * 2006-05-09 2007-11-15 Nokia Corporation Adaptive jitter management control in decoder
RU2398361C2 (ru) * 2006-06-16 2010-08-27 Эрикссон Аб Интеллектуальный способ, система и узел ограничения аудио
US8346546B2 (en) * 2006-08-15 2013-01-01 Broadcom Corporation Packet loss concealment based on forced waveform alignment after packet loss
US7573907B2 (en) 2006-08-22 2009-08-11 Nokia Corporation Discontinuous transmission of speech signals
US7647229B2 (en) 2006-10-18 2010-01-12 Nokia Corporation Time scaling of multi-channel audio signals
JP2008139631A (ja) * 2006-12-04 2008-06-19 Nippon Telegr & Teleph Corp <Ntt> 音声合成方法、装置、プログラム
US8472320B2 (en) 2006-12-06 2013-06-25 Telefonaktiebolaget Lm Ericsson (Publ) Jitter buffer control
US7899678B2 (en) * 2007-01-11 2011-03-01 Edward Theil Fast time-scale modification of digital signals using a directed search technique
US8078456B2 (en) * 2007-06-06 2011-12-13 Broadcom Corporation Audio time scale modification algorithm for dynamic playback speed control
US8401865B2 (en) 2007-07-18 2013-03-19 Nokia Corporation Flexible parameter update in audio/speech coded signals
EP2215785A4 (en) 2007-11-30 2016-12-07 ERICSSON TELEFON AB L M (publ) ESTIMATED READING TIME
JP5250255B2 (ja) 2007-12-27 2013-07-31 京セラ株式会社 無線通信装置
US7852882B2 (en) 2008-01-24 2010-12-14 Broadcom Corporation Jitter buffer adaptation based on audio content
EP2250768A1 (en) 2008-03-13 2010-11-17 Telefonaktiebolaget L M Ericsson (PUBL) Method for manually optimizing jitter, delay and synch levels in audio-video transmission
EP2141696A1 (en) * 2008-07-03 2010-01-06 Deutsche Thomson OHG Method for time scaling of a sequence of input signal values
PL2311033T3 (pl) * 2008-07-11 2012-05-31 Fraunhofer Ges Forschung Dostarczanie sygnału aktywującego dopasowanie czasowe i kodowanie sygnału audio z jego użyciem
PL2304723T3 (pl) 2008-07-11 2013-03-29 Fraunhofer Ges Forschung Urządzenie i sposób dekodowania zakodowanego sygnału audio
JP5083097B2 (ja) 2008-07-30 2012-11-28 日本電気株式会社 ジッターバッファ制御方法と通信装置
EP2230784A1 (de) 2009-03-19 2010-09-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Vorrichtung und Verfahren zur Übertragung einer Mehrzahl von Informationssignalen in einem flexiblen Zeitmultiplex
US8848525B2 (en) 2009-06-10 2014-09-30 Genband Us Llc Methods, systems, and computer readable media for providing adaptive jitter buffer management based on packet statistics for media gateway
US8670990B2 (en) * 2009-08-03 2014-03-11 Broadcom Corporation Dynamic time scale modification for reduced bit rate audio coding
EP2302845B1 (en) 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
JP5773502B2 (ja) * 2010-01-12 2015-09-02 フラウンホーファーゲゼルシャフトツール フォルデルング デル アンゲヴァンテン フォルシユング エー.フアー. オーディオ符号化器、オーディオ復号器、オーディオ情報を符号化するための方法、オーディオ情報を復号するための方法、および上位状態値と間隔境界との両方を示すハッシュテーブルを用いたコンピュータプログラム
ES2458354T3 (es) * 2010-03-10 2014-05-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Decodificador de señales de audio, codificador de señales de audio, métodos y programa de ordenador que utiliza tasa de muestreo dependiente de la codificación del contorno de distorsión en el tiempo
US8693355B2 (en) 2010-06-21 2014-04-08 Motorola Solutions, Inc. Jitter buffer management for power savings in a wireless communication device
CA2813898C (en) * 2010-10-07 2017-05-23 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Apparatus and method for level estimation of coded audio frames in a bit stream domain
TWI425502B (zh) 2011-03-15 2014-02-01 Mstar Semiconductor Inc 音訊的時間伸縮方法與相關裝置
WO2012167479A1 (en) 2011-07-15 2012-12-13 Huawei Technologies Co., Ltd. Method and apparatus for processing a multi-channel audio signal
CN103404053A (zh) 2011-08-24 2013-11-20 华为技术有限公司 音频或语音信号处理器
WO2013051975A1 (en) * 2011-10-07 2013-04-11 Telefonaktiebolaget L M Ericsson (Publ) Methods providing packet communications including jitter buffer emulation and related network nodes
US9324336B2 (en) 2011-10-20 2016-04-26 Lg Electronics Inc. Method of managing a jitter buffer, and jitter buffer using same
GB2495927B (en) 2011-10-25 2015-07-15 Skype Jitter buffer
WO2014039843A1 (en) 2012-09-07 2014-03-13 Apple Inc. Adaptive jitter buffer management for networks with varying conditions
US9420475B2 (en) 2013-02-08 2016-08-16 Intel Deutschland Gmbh Radio communication devices and methods for controlling a radio communication device
ES2667823T3 (es) * 2013-06-21 2018-05-14 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Escalador de tiempo, decodificador de audio, procedimiento y programa informático mediante el uso de un control de calidad
PL3011692T3 (pl) * 2013-06-21 2017-11-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Sterowanie buforem rozsynchronizowania, dekoder sygnału audio, sposób i program komputerowy

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260462A1 (en) * 1999-12-28 2007-11-08 Global Ip Solutions (Gips) Ab Method and arrangement in a communication system
WO2006106466A1 (en) * 2005-04-07 2006-10-12 Koninklijke Philips Electronics N.V. Method and signal processor for modification of audio signals
US20080285599A1 (en) * 2005-11-07 2008-11-20 Ingemar Johansson Control Mechanism for Adaptive Play-Out with State Recovery
CN101379556A (zh) * 2006-02-07 2009-03-04 诺基亚公司 控制音频信号的时间缩放
CN102214464A (zh) * 2010-04-02 2011-10-12 飞思卡尔半导体公司 音频信号的瞬态检测方法以及基于该方法的时长调整方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
SALIM ROUCOS ET AL.: "High Quality Time-Scale Modification for Speech", 《ICASSP’85 IEEE INTERPRETATION CONFERENCE ON ACOUSTIC,SPEECH,AND SIGNAL PROCESSING》 *
SHAHAF GROFIT ET AL.: "Time-Scale Modification of Audio Signals Using Enhanced WSOLA With Management of Transients", 《IEEE TRANSACTIONS ON AUDIO,SPEECH,AND LANGUAGE PROCESSING》 *
SUNGJOO ET AL.: "VARIABLE TIME-SCALE MODIFICATION OF SPEECH USING TRANSIENT INFORMATION", 《1997 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS,SPEECH,AND SIGNAL PROCESSING》 *

Also Published As

Publication number Publication date
MX2015017831A (es) 2016-04-15
PT3321935T (pt) 2019-09-12
RU2662683C2 (ru) 2018-07-26
PT3011564T (pt) 2018-05-08
CN110211603B (zh) 2023-11-03
AU2017204613A1 (en) 2017-07-27
PL3321935T3 (pl) 2019-11-29
RU2016101580A (ru) 2017-07-26
HK1255429B (zh) 2020-07-17
HK1255499A1 (zh) 2019-08-16
AU2017204613B2 (en) 2019-02-14
US20160171990A1 (en) 2016-06-16
ES2667823T3 (es) 2018-05-14
JP2016529536A (ja) 2016-09-23
SG10201708531PA (en) 2017-12-28
TWI581257B (zh) 2017-05-01
CA2916126C (en) 2019-07-09
EP3011564B1 (en) 2018-01-31
PL3011564T3 (pl) 2018-07-31
AU2014283256A1 (en) 2016-02-11
US20190147901A1 (en) 2019-05-16
US20210233553A1 (en) 2021-07-29
EP3321934B1 (en) 2024-04-10
EP3321934A1 (en) 2018-05-16
KR101952192B1 (ko) 2019-02-26
AU2014283256B2 (en) 2017-09-21
BR112015032174B1 (pt) 2021-02-23
TW201517025A (zh) 2015-05-01
JP6317436B2 (ja) 2018-04-25
US10204640B2 (en) 2019-02-12
MX355850B (es) 2018-05-02
ES2739481T3 (es) 2020-01-31
MY171256A (en) 2019-10-07
KR20160023830A (ko) 2016-03-03
US10984817B2 (en) 2021-04-20
HK1223727A1 (zh) 2017-08-04
WO2014202672A3 (en) 2015-06-18
CN105474313B (zh) 2019-09-06
CA2916126A1 (en) 2014-12-24
SG11201510501YA (en) 2016-01-28
EP3011564A2 (en) 2016-04-27
EP3321935B1 (en) 2019-05-29
EP3321935A1 (en) 2018-05-16
CN110211603A (zh) 2019-09-06
WO2014202672A2 (en) 2014-12-24
BR112015032174A2 (pt) 2017-07-25

Similar Documents

Publication Publication Date Title
CN105518778A (zh) 抖动缓冲器控制器、音频解码器、方法及计算机程序
CN105474313A (zh) 使用质量控制的时间缩放器、音频解码器、方法和计算机程序

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant