CN107534589B - 去抖动缓冲器更新 - Google Patents

去抖动缓冲器更新 Download PDF

Info

Publication number
CN107534589B
CN107534589B CN201680021052.4A CN201680021052A CN107534589B CN 107534589 B CN107534589 B CN 107534589B CN 201680021052 A CN201680021052 A CN 201680021052A CN 107534589 B CN107534589 B CN 107534589B
Authority
CN
China
Prior art keywords
frame
data
buffer
packet
timestamp
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.)
Active
Application number
CN201680021052.4A
Other languages
English (en)
Other versions
CN107534589A (zh
Inventor
苏巴辛格哈·夏敏达·苏巴辛格哈
维韦克·拉金德朗
杜敏达·德瓦苏伦德拉
坎卓·莫利·波力斯堤
芬卡特拉曼·S·阿提
文卡塔·萨伯拉曼亚姆·强卓·赛克哈尔·奇比亚姆
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN107534589A publication Critical patent/CN107534589A/zh
Application granted granted Critical
Publication of CN107534589B publication Critical patent/CN107534589B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/04Speech 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 predictive techniques
    • G10L19/16Vocoder architecture
    • G10L19/167Audio streaming, i.e. formatting and decoding of an encoded audio signal representation into a data stream for transmission or storage purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/062Synchronisation of signals having the same nominal but fluctuating bit rates, e.g. using buffers
    • H04J3/0632Synchronisation of packets and cells, e.g. transmission of voice via a packet network, circuit emulation service [CES]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9023Buffering arrangements for implementing a jitter-buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0016Arrangements for synchronising receiver with transmitter correction of synchronization errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0664Clock or time synchronisation among packet nodes using timestamps unidirectional timestamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明揭示一种装置,所述装置包含经配置以接收包的去抖动缓冲器,所述包包含第一数据及第二数据。所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本。所述第二数据对应于所述帧序列的第二帧。所述装置还包含分析器,所述分析器经配置以响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳。所述分析器还经配置以响应于接收到所述包而产生与所述第二数据相关联的第二帧接收时间戳。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。

Description

去抖动缓冲器更新
相关申请案的交叉参考
本申请案主张以下申请案的权益:在2015年8月18日提出申请的标题为“去抖动缓冲器更新(DE-JITTER BUFFER UPDATE)”的美国专利申请案第14/829,560号,及在2015年4月14日提出申请的标题为“去抖动缓冲器更新(DE-JITTER BUFFER UPDATE)”美国临时专利申请案第62/147,386号,及在2015年4月14日提出申请的标题为“缓冲器参数调整(BUFFERPARAMETER ADJUSTMENT)”的美国临时专利申请案第62/147,431号,所述申请案的内容以全文引导的方式并入本文中。
技术领域
本发明大体来说涉及去抖动缓冲器的更新。
背景技术
技术的进步已产生较小且较强大计算装置。举例来说,当前存在各种便携式个人计算装置,包含无线计算装置,例如小型、轻质且容易由用户运载的便携式无线电话、个人数字助理(PDA)及寻呼装置。更具体来说,便携式无线电话(例如蜂窝式电话及因特网协议(IP)电话)可经由无线网络传达语音及数据包。此外,许多此些无线电话包含并入其中的其它类型装置。举例来说,无线电话还可包含数字静止相机、数字视频摄像机、数字记录器及音频文件播放器。此外,此些无线电话可处理可执行指令,包含可用于接入因特网的软件应用程序,例如web浏览器应用程序。如此,这些无线电话可包含显著计算能力。
例如无线电话的电子装置可经由网络发送及接收数据。例如,音频数据可经由电路交换网络(例如,公共交换电话网络(PSTN)、全球移动通信***(GSM)网络等等)或包交换网络(例如,因特网语音协议(VoIP)网络、长期演进语音网络(VoLTE),等等)发送及接收。在包交换网络中,可将对应于音频帧序列的音频包从源装置个别地路由到目的地装置。由于网络条件,音频包可能无序到达。目的地装置可将所接收包存储在去抖动缓冲器中且可在所接收包为无序的情况下重新布置所接收包。
目的地装置可基于所接收包产生经处理音频信号。由源装置发送的特定包可能未被目的地装置接收,或可能经接收具有错误。随着去抖动缓冲器的缓冲深度增加及包的缓冲时间在经处理之前增加,经处理音频信号的指令可能由于更多包有时间到达目的地装置而改进。然而,增加的缓冲深度可增加不利影响用户体验的端对端延迟。减少缓冲深度减少端对端延迟,但增加由于对应于帧序列中的一些帧的包尚未及时到达目的地装置而在无关于所述帧的数据的情况下产生经处理音频信号的机会。
发明内容
在特定方面中,装置包含去抖动缓冲器及分析器。所述去抖动缓冲器经配置以接收包含第一数据及第二数据的包。所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本。所述第二数据对应于所述帧序列的第二帧。分析器经配置以响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳以及与所述第二数据相关联的第二帧接收时间戳。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。
在另一方面中,方法包含:在去抖动缓冲器处接收包。所述包包含第一数据以及第二数据。所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本。所述第二数据对应于所述帧序列的第二帧。方法还包含:响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳以及与所述第二数据相关联的第二帧接收时间戳。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。
在另一方面中,计算机可读存储装置存储指令,所述指令在由处理器执行时致使处理器执行包含在去抖动缓冲器处接收包的操作。所述包包含第一数据以及第二数据。所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本。所述第二数据对应于所述帧序列的第二帧。操作还包含:响应于接收到所述包,产生与所述第一数据相关联的第一帧接收时间戳以及产生与所述第二数据相关联的第二帧接收时间戳。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。
在另一方面中,装置包含用于接收包含第一数据以及第二数据的包的装置。所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本。所述第二数据对应于所述帧序列的第二帧。装置还包含用于执行缓冲管理的装置,包含用于响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳的装置以及用于响应于接收到所述包而产生与所述第二数据相关联的第二帧接收时间戳的装置。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。
在检视申请案(包含以下章节)之后,本发明的其它方面、优点及特征将变得显而易见:“图式简单说明”、“实施方式”及“权利要求书”。
附图说明
图1为可操作以更新去抖动缓冲器的***的特定说明性实例的框图;
图2A为说明图1的***的特定实例的操作的图;
图2B为说明图1的***的特定实例的操作的图;
图3为说明图1的***的特定实例的操作的图;
图4A为说明图1的***的特定实例的操作的图;
图4B为说明图1的***的特定实例的操作的图;
图5为说明图1的***的特定实例的操作的图;
图6为说明图1的***的特定实施方案的操作的图;
图7为说明图1的***的特定实施方案的操作的图;
图8为说明图1的***的特定实施方案的操作的图;
图9为可操作以更新缓冲器参数的***的特定说明性实例的框图;
图10说明更新去抖动缓冲器的特定方法的流程图;
图11为说明更新去抖动缓冲器的特定方法的流程图;
图12为说明调整缓冲器参数的特定方法的流程图;以及
图13为可操作以更新去抖动缓冲器的装置的特定说明性实例的框图。
具体实施方式
下文参考图式描述本发明的特定方面。在描述中,贯穿图式由共同参考编号指定共同特征。
揭示更新去抖动缓冲器的***及方法。源装置可将包发送到目的地装置。例如,目的地装置处的第一用户可参与和源装置处的第二用户的语音呼叫。在语音呼叫期间,第二用户可对耦合到或包含在源装置中的麦克风说话。源装置可接收对应于第二用户的语音的输入音频信号。输入音频信号可对应于音频帧序列。例如,音频帧序列可包含第一帧及第二帧。源装置可产生对应于音频帧序列的包。例如,源装置可产生包含对应于第一帧的第一帧数据的第一包。为了说明,第一帧数据可包含第一帧的第一语音参数。作为另一实例,源装置可产生包含对应于第二帧的第二帧数据的第二包。为了说明,第二帧数据可包含第二帧的第二语音参数。
包可具有部分冗余。例如,第二包可包含第一包的部分副本(例如,部分数据)。为了说明,第二包可包含第一语音参数的子集。在特定实例中,部分数据可指示第一语音参数与第二语音参数之间的差异。
第一包可包含对应于第一帧的第一产生时间戳(例如,实时传输协议(RTP)时间戳)。第二包可包含对应于第二帧的第二产生时间戳(例如,RTP时间戳)。第一产生时间戳及第二产生时间戳可指示第一帧在音频帧序列中比第二帧出现得早。源装置可发送对应于目的地装置的帧序列的包(例如,第一包及第二包)。源装置可将特定产生时间戳编码或附加到特定包。源装置可基于源装置的时钟而确定特定产生时间戳,所述源装置的所述时钟可或可不与目的地装置的时钟同步。另外或替代地,源装置可基于由源装置编码的样本的数目而确定特定产生时间戳。在一些实例中,产生时间戳以RTP单位表示。产生时间戳可指示帧序列的次序。
目的地装置可从源装置接收一或多个包。目的地装置可将所接收包存储在缓冲器(例如,去抖动缓冲器)中且可在无序接收包的情况下重新布置包。目的地装置可在对应于特定帧的数据已经缓冲达最小持续时间(例如,播放延迟)之后处理去抖动缓冲器中的每一特定帧。处理特定帧中的延迟可增加在随后帧经处理时对应于随后帧的包在去抖动缓冲器中的机会。
在一些情况下,目的地装置可在接收第一包之前接收第二包。第一包可在第二包之后被接收或可能未被接收(例如,第一包可能丢失)。目的地装置可响应于确定第二包包含对应于第一帧的部分数据而对第二包进行双排队。例如,目的地装置可在接收到第二包时确定去抖动缓冲器是否不存在第一帧。目的地装置可响应于确定第一组不存在而确定最近经处理帧在帧序列中是否在第一帧之前。目的地装置可响应于确定最近经处理帧在帧序列中在第一帧之前而缓冲对应于第一帧的第二包的第一副本。目的地装置可在接收第二包时缓冲对应于第二帧的第二包的第二副本。
目的地装置可处理来自去抖动缓冲器的帧。例如,目的地装置可基于第一帧的第一产生时间戳而确定待处理的下一帧为第一帧。如果第一包尚未及时被接收用于第一帧的播放,那么目的地装置可处理来自第二包的部分数据。目的地装置可基于部分数据而产生经处理语音信号。基于部分数据而产生的经处理语音信号可具有比在无对应于第一帧的任何数据的情况下所产生的经处理语音信号更佳的音频质量。
目的地装置可通过在去抖动缓冲器中添加(或更新)第一缓冲条目来缓冲第二包的第一副本。第一缓冲条目可包含第二包的第一副本(或指示其位置)。第一缓冲条目可能与第一帧相关联。例如,第一缓冲条目可指示第一产生时间戳。对第二包进行双排队使得部分数据存储在对应于第一帧的缓冲条目(例如,第一缓冲条目)可使得目的地装置能够更高效地处理部分数据而无需确定包含第一帧数据的第一包丢失(或尚未被接收)。例如,在无双排队的情况下,目的地装置可响应于在第一帧为待处理的下一帧时确定去抖动缓冲器中不存在对应于第一帧的缓冲条目而确定第一包丢失。目的地装置可响应于第一包丢失的确定而确定去抖动缓冲器是否包含包含对应于第一帧的部分数据的另一缓冲条目。目的地装置可响应于确定其它缓冲条目包含部分数据而处理其它缓冲条目。在双排队的情况下,目的地装置可响应于确定第一帧为待处理的下一帧而处理第一缓冲条目(例如,无需搜索用于第一帧的部分副本的去抖动缓冲器)。
目的地装置可处理部分数据以平衡具有播放延迟(例如,最小播放延迟)的益处与延迟处理的缺点。具有播放延迟的益处可包含增加在将处理随后帧时已接收到与随后帧相关联的包的可能性。延迟处理的缺点可包含增加端对端延迟。
目的地装置可响应于确定去抖动缓冲器不存在帧而播放擦除(erasure)。例如,目的地装置可在接收第二包之前播放对应于第一帧的擦除。目的地装置可响应于确定尚未处理帧序列中在第一帧之后的帧而在播放对应于第一帧的擦除之后处理第一帧(例如,部分数据)。例如,目的地装置可响应于确定最近经处理帧在帧序列中在第一帧之前而处理第一帧(例如,部分数据)。
在播放对应于第一帧的擦除之后处理第一帧(例如,部分数据)可启用隐式缓冲自适应(IBA)。例如,去抖动缓冲器的缓冲深度可通过在播放对应于第一帧的擦除之后缓冲第一帧的部分数据来隐式地增加(例如,增加1帧)。可在时间t0播放对应于第一帧的擦除,且可在时间t1处理对应于第一帧的部分数据。可在时间t2处理待在时间t1处理的随后帧(例如,第二帧)。随后帧的处理延迟(例如,从时间t1到时间t2)可对应于第一帧的播放持续时间(例如,20毫秒)。在随后帧(例如,第二帧)之后处理帧(例如,第三帧)还可通过处理延迟来延迟。去抖动缓冲器可存储随后帧(例如,第二帧及第三帧)的帧数据达对应于处理延迟的额外时间。去抖动缓冲器可由于隐式缓冲自适应而存储对应于更多帧的帧数据。例如,将随后帧(例如,第二帧)从时间t1到时间t2保存在去抖动缓冲器中而非在时间t1移除随后帧可增加在时间t1之后存储在去抖动缓冲器中的帧的数目(例如,增加1帧)。
在特定实例中,去抖动缓冲器的深度可在输入音频信号中的随后静默周期之后还原(例如,减少1帧)。例如,目的地装置可回应于确定与随后帧相关联的缓冲周期已期满(例如,无额外延迟)而处理静默周期之后的随后帧。经处理音频信号可包含比输入音频信号短的静默。
由于隐式缓冲自适应,去抖动缓冲器的深度可动态地调整以改变网络条件。例如,去抖动缓冲器的深度可在网络条件(例如,拥塞或包损失)致使在处理对应于帧的擦除之后接收帧(例如,帧的部分数据)时增加(例如,增加1帧)。作为另一实例,去抖动缓冲器的深度可在随后静默之后还原(例如,减少1帧)。
参考图1,揭示可操作以更新去抖动缓冲器的***的特定说明性实例且通常将其指定为100。***100可包含目的地装置102,所述目的地装置经由网络190与一或多个其它装置(例如,源装置104)通信。源装置104可耦合到麦克风146或与其通信。例如,源装置104可包含麦克风146。目的地装置102可耦合到扬声器142。目的地装置102可包含耦合到存储器176或与其通信的分析器122。目的地装置102可包含接收器124、去抖动缓冲器126、语音解码器160或其组合。在特定实施方案中,分析器122可经配置以操作作为去抖动缓冲器126与语音解码器160之间的接口模块。存储器176可经配置以存储分析数据120。分析数据120可包含帧偏移136(例如,大于或等于1帧)、最后产生时间戳138、播放延迟128、缓冲时间线106或其组合。
目的地装置102可包含比图1中所说明少或多的组件。例如,目的地装置102可包含一或多个处理器、一或多个存储器单元,或两者。目的地装置102可包含联网或分布式计算***。例如,存储器176可为联网或分布式存储器。在特定说明性实例中,目的地装置102可包含通信装置、耳机、解码器、智能电话、蜂窝式电话、移动通信装置、膝上型计算机、计算机、平板、个人数字助理(PDA)、机顶盒、视频播放器、娱乐单元、显示装置、电视机、游戏主控台、音乐播放器、无线电设备、数字视频播放器、数字视频光盘(DVD)播放器、调谐器、相机、导航装置或其组合。
在操作期间,第一用户152可参与和第二用户154的语音呼叫。第一用户152可使用目的地装置102且第二用户154可使用源装置104进行语音呼叫。在语音呼叫期间,第二用户154可对耦合到源装置104的麦克风146说话。输入音频信号130可对应于由第二用户154说出的话语的部分、话语或多个话语。输入音频信号130可对应于音频帧序列。例如,音频帧序列可包含第一帧184及第二帧186。第一帧184(例如,音频帧N)可能在音频帧序列中比第二帧186(例如,音频帧N+3)早。源装置104可经由麦克风146从第二用户154接收输入音频信号130。在特定实施方案中,麦克风146可捕获音频信号,且模/数转换器(ADC)可将来自模拟波形的所捕获音频信号转换成由数字音频样本组成的数字信号。数字音频样本可由声码器(语音编码解码器)“压缩”。声码器的编码器可压缩数字音频样本且形成包序列(例如,第一包132及第二包134)。第一包132可包含对应于第一帧184的第一帧数据164。第二包134可包含对应于第二帧186的第二帧数据166。
第一包132可指示第一帧184的第一产生时间戳(例如,RTP时间戳)。第二包134可指示第二帧186的第二产生时间戳(例如,RTP时间戳)。第一产生时间戳及第二产生时间戳可指示第一帧184在音频帧序列中比第二帧186早。第一产生时间戳及第二产生时间戳可由源装置104产生。源装置104可基于源装置104的时钟(其可或可不与目的地装置102的时钟同步)而确定特定产生时间戳。另外或替代地,源装置104可基于由源装置104编码的样本的数目而确定特定产生时间戳。在特定实例中,产生时间戳是以RTP单位表示。源装置104可将第一产生时间戳编码或附加到第一包132且将第二产生时间戳编码或附加到第二包134。产生时间戳可指示帧序列的次序。
在一些实施方案中,一或多个包可具有部分冗余。例如,随后包(例如,第二包134)可包含可用于重建构前一音频帧(例如,音频帧N)的冗余数据(例如,第一帧数据164的部分副本)。例如,第二包134可包含对应于第一帧数据164的至少部分的第一部分数据174以启用第一帧184的重新产生,但如与使用第一帧数据164相比可能处于减少分辨率。在特定实施方案,冗余数据(例如,第一部分数据174)可对应于“关键”语音帧。例如,关键语音帧的损失可在目的地装置102处产生的经处理语音信号中造成显著质量影响(例如,对用户显而易见的质量影响)。
在特定实施方案中,源装置104及目的地装置102可在恒定比特率(例如,13.2千比特/秒(kbps))信道上操作。在此实施方案中,对应于原始数据(例如,第二帧数据166)的原始帧比特率可减少(例如,到9.6kbps)以适应冗余数据(例如,第一部分数据174)。例如,恒定比特率的剩余比特率(例如,3.6kbps)可对应于冗余数据。在特定实例中,可取决于输入音频信号130的特性在源装置104处执行原始帧比特率的减少以对整体语音质量具有减少的影响。源装置104可经由网络190将包序列(例如,第一包132、第二包134或两者)发射到目的地装置102。
目的地装置102可接收包序列中的一或多个包(例如,第一包132、第二包134或两者)。分析器122可将由目的地装置102接收的包(例如,第一包132、第二包134或两者)存储在去抖动缓冲器126中。例如,分析器122可从目的地装置102接收包且可将包存储在去抖动缓冲器126中。在特定实例中,包可能在目的地装置102处无序接收。分析器122可在包为无序时重新排序去抖动缓冲器126中的一或多个包。由源装置104发送的包序列中的一或多个包可能未被目的地装置102接收,或可能被接收有错误。例如,包(例如,第一包132)可通过接收器124由于包损失而未被接收或可由于网络条件而被部分接收。
在一些情况中,目的地装置102可接收第二包134且可不接收第一包132或可在接收第一包132之前接收第二包134。在此情况中,目的地装置102可从接收器124接收第二包134且可将第二包134提供到分析器122。分析器122可在接收第二包134时在去抖动缓冲器126中对第二包134进行双排队(例如,***多个副本)。例如,分析器122可响应于确定去抖动缓冲器126不存在第一帧184且第二包134包含第一部分数据而将第二包134的第一副本存储在第一帧184的第一缓冲条目114中。分析器122还可将第二包134的第二副本存储在第二帧186的第二缓冲条目118中。分析器122可将第一缓冲条目114的第一旗标144设置成特定值(例如,1)以指示第一缓冲条目114对应于帧的帧数据的部分副本。分析器122可将第二缓冲条目118的第二旗标156设置成特定值(例如,0)以指示第二缓冲条目118对应于帧的帧数据的完整副本。
在特定实施方案中,分析器122可通过剖析包来确定帧偏移136(例如,部分帧与对应完整帧之间的包的数目)。分析器122可剖析包以响应于确定包含有帧的帧数据的部分副本来确定帧偏移136。例如,分析器122可剖析第二包134以确定第一部分数据174的第一帧偏移(例如,1),第一帧偏移指示第一部分数据174对应于第一帧184。另外或替代地,第二帧数据166可包含或指示帧偏移136。在其它特定实施方案中,帧偏移136可为大于1的任何数,例如2、3或5。
分析器122可基于由第二包134指示的第二帧186的第二产生时间戳而确定第二产生时间戳158。分析器122可将第二产生时间戳158存储在第二缓冲条目118中。分析器122可基于第二产生时间戳158及帧偏移136而确定第一产生时间戳148(例如,第一产生时间戳148=(第二产生时间戳158–(帧偏移136*样本数目/帧))。分析器122可将第一产生时间戳148存储在第一缓冲条目114中。在特定实例中,第二包134可指示帧偏移136、样本数目/帧(例如,640个样本/帧)或两者。
分析器122可基于第二包134的接收时间戳而确定第二帧186的第二接收时间戳150。分析器122可将第二接收时间戳150存储在第二缓冲条目118中。接收时间戳(其还可被称作为帧接收时间戳)可指示帧可用于目的地装置102或被其接收的时间。接收时间戳还可经调整以指示过去时间(例如,特定帧应已被用或应已被接收的时间)。接收时间戳可由目的地装置102基于目的地装置102的时钟(其可或可不与源装置104的时钟同步)产生。另外或替代地,接收时间戳可能基于由源装置104指示的样本的数目(例如,编码的样本的数目)。
分析器122可通过调整包(例如,部分冗余包)的接收时间戳来指示过去时间(例如,特定帧应已被用或应已被接收的时间)来产生所述包的特定帧(例如,部分帧)的接收时间戳。例如,分析器122可基于第二包134的接收时间戳且基于帧偏移136来产生第一帧184的第一接收时间戳140。分析器122可通过使帧偏移136乘以帧播放持续时间来确定特定持续时间。分析器122可通过从第二包134的接收时间戳减去至少特定持续时间来产生第一接收时间戳140。为了说明,分析器122可基于方程式而确定第一接收时间戳140:FRTS=PRTS–(FO*FPD)–1毫秒,其中FRTS=第一接收时间戳140,PRTS=第二包134的接收时间戳,FO=帧偏移136且FPD=帧播放持续时间。在特定实施方案中,第二包134可指示帧偏移136(例如,3)、帧播放持续时间(例如,20毫秒(ms)),或两者。分析器122可将第一接收时间戳140存储在第一缓冲条目114中。第一接收时间戳140可指示比由第二接收时间戳150指示的第二时间早的第一时间。
在特定实例中,分析器122可将第二包134的第一副本存储在存储器176的第一位置中且可将第二包134的第二副本存储在存储器176的第二位置中。第一缓冲条目114可指示第一位置(例如,包含其第一指针)。第二缓冲条目118可指示第二位置(例如,包含第二指针)。
分析器122可在第一播放时间处处理对应于第一帧184的第一缓冲条目114,如本文中所描述。分析器122可将第一部分数据174提供到语音解码器160。在特定实施方案中,分析器122可响应于接收到来自语音解码器160的对第一帧184的请求而将第一部分数据174提供到语音解码器160。分析器122可在第二播放时间处处理对应于第二帧186的第二缓冲条目118,如本文中所描述。分析器122可将第二帧数据166提供到语音解码器160。在特定实施方案中,分析器122可响应于接收到来自语音解码器160的对第二帧186的请求而将第二帧数据166提供到语音解码器160。语音解码器160可基于第一部分数据174及第二帧数据166而产生经处理音频信号116。例如,语音解码器160可基于第一部分数据174而产生第一所产生帧194且可基于第二帧数据166而产生第二帧186。经处理音频信号116可对应于第一所产生帧194及第二帧186。语音解码器160可经由扬声器142将经处理音频信号116输出到第一用户152。
在特定实例中,第一帧数据164可对应于第一帧184的第一语音参数。第一部分数据174可包含第一语音参数的子集。在另一特定实例中,第二帧数据166可对应于第二帧186的第二语音参数且第一部分数据174可对应于第一语音参数与第二语音参数之间的差。在此实例中,分析器122可基于第二语音参数与第一部分数据174的和而产生第一语音参数。分析器122可基于第一语音参数而产生经处理音频信号116。将了解,可甚至在第一包132从去抖动缓冲器126丢失时基于第一语音参数而产生经处理音频信号116。在特定实例中,分析器122可将第二包134、第一部分数据174、第二帧数据166、第一语音参数、第二语音参数或其组合提供到语音解码器160,且语音解码器160可产生经处理音频信号116。使用第一部分数据174产生以补偿损失包(例如,第一包132)的经处理音频信号116可具有比仅基于第二帧数据166产生的经处理语音信号更佳的音频质量。例如,经处理音频信号116可具有比基于第二帧数据166及未基于第一帧数据164(或第一部分数据174)产生的经处理语音信号少的用户可感知伪影。
在特定实施方案中,分析器122可抑制处理去抖动缓冲器126中的每一特定帧直到对应于特定帧的缓冲周期已期满。分析器122可基于特定帧的接收时间戳及播放延迟128(例如,最小播放延迟)而确定对应于特定帧的缓冲周期。
将第一接收时间戳140存储在第一缓冲条目114中可导致对应于第一帧184的第一缓冲周期在对应于第二帧186的第二缓冲周期的期满之前期满。例如,分析器122可基于第一接收时间戳140及播放延迟128的和而确定第一缓冲周期。分析器122可基于第二接收时间戳150与播放延迟128之间的和而确定第二缓冲周期。第一接收时间戳140可指示比由第二接收时间戳150指示的第二时间早的第一时间。分析器122可响应于确定对应于第一帧184的缓冲周期已期满而在第一播放时间处理第一缓冲条目114(例如,第一部分数据174),但对应于第二帧186的缓冲周期可仍继续进行。例如,第一帧184的第一播放时间可能比第二帧186的第二播放时间早。
分析器122可维持缓冲时间线106以追踪已播放的帧且指示待处理的下一帧。缓冲时间线106可指示待处理的下一帧具有紧在由缓冲时间线106指示的产生时间戳之后的特定产生时间戳。例如,随着帧经处理且从去抖动缓冲器126移除,分析器122可响应于处理特定帧而更新或设置缓冲时间线106(例如,RTP时间线)的值以指示特定帧的产生时间戳(例如,RTP时间戳)。此外,或在替代方案中,分析器122可响应于处理特定帧而更新最后产生时间戳138以指示特定帧的产生时间戳。分析器122可维持最后产生时间戳138以追踪最近经处理帧而产生时间戳。
包的损失,或输入音频信号130中的静默可致使缓冲时间线106不同于最后产生时间戳138。例如,分析器122可响应于确定去抖动缓冲器126不存在特定帧而播放擦除。分析器122可响应于播放擦除而基于帧播放持续时间(例如,20ms)而更新(例如,递增)缓冲时间线106的值。在此实例中,缓冲时间线106的值可超过最后产生时间戳138。在特定实施方案中,分析器122可通过将指示去抖动缓冲器126不存在特定帧的特定输入提供到语音解码器160来播放擦除。在特定实施方案中,分析器122可响应于确定对应缓冲周期(例如,第一缓冲周期)已期满且缓冲时间线106的值指示对应帧(例如,第一帧184)为待处理的下一帧而在特定播放时间处理特定缓冲条目(例如,第一缓冲条目114)。
在特定实施方案中,分析器122可响应于确定特定帧的产生时间戳(例如,RTP时间戳)超过最近经处理帧的产生时间戳而将特定包的副本存储在特定帧的去抖动缓冲器126中。例如,分析器122可响应于确定第二产生时间戳158超过指示最近经处理帧在音频帧序列中比第二帧186早的最后产生时间戳138而将第二包134包含在第二缓冲条目118中。作为另一实例,分析器122可响应于确定第一产生时间戳148超过指示最近经处理帧在音频帧序列中比第一帧184早的最后产生时间戳138而将第二包134包含在第一缓冲条目114。
分析器122可在特定帧的产生时间戳超过最后产生产生时间戳138时更新去抖动缓冲器126以存储与缓冲时间线106的值无关的特定帧的特定包的副本。例如,第一产生时间戳148可小于或等于指示分析器122已播放对应于第一帧184的擦除的缓冲时间线106的值(例如,第一帧数据164或第一部分数据174在第一帧184的播放时间之后被存储在去抖动缓冲器126中,因此替代第一帧184而播放擦除)。在此实例中,分析器122可更新去抖动缓冲器126以将第二包134的第一副本存储在第一缓冲条目114中。分析器122可响应于确定第二包134的第一副本待存储在第一缓冲条目114中且已播放对应于第一帧184的擦除而更新缓冲时间线106以指示第一帧184为待处理的下一帧。在此实例中,处理在擦除之后的第一缓冲条目114可将额外延迟添加到对随后帧的处理,这是因为已播放对应于第一帧184的擦除,如参考图2A到5及7进一步描述。额外延迟可通过致使去抖动缓冲器126的缓冲深度隐式地增加(例如,增加1帧)以缓冲更大数目个帧。在特定实施方案中,缓冲深度可在输入音频信号130中的随时静默周期之后还原(例如,减少1帧)。例如,分析器122可响应于确定与随后帧相关联的缓冲周期已期满(例如,无额外延迟)而处理静默周期之后的随后帧。经处理音频信号116可包含比输入音频信号130短的静默。由于隐式缓冲自适应,去抖动缓冲器126的深度可动态调整以改变网络条件。例如,去抖动缓冲器的深度可在网络条件(例如,拥塞或包损失)致使在处理对应于帧的擦除之后接收帧(例如,帧的部分数据)时增加(例如,增加1帧)。作为另一实例,去抖动缓冲器的深度可在随后静默之后还原(例如,减少1帧)。
在特定实施方案中,分析器122可在接收第二包134之后且在处理第一缓冲条目114之前接收第一包132。分析器122可响应于接收第一包132且确定由第一包132指示的第一产生时间戳超过最后产生时间戳138而更新第一缓冲条目114。例如,分析器122可将第二包134的第一副本从第一缓冲条目114移除。在特定实施方案中,分析器122可将对应于第一缓冲条目114的第二包134的第一副本从存储器176删除(或标记待删除)。分析器122可将第一包132存储在第一缓冲条目114中。在特定实施方案中,分析器122可将第一包132存储在存储器176中特定位置中且可更新第一缓冲条目114以指示第一缓冲条目114中的特定位置(例如,其地址)。分析器122可将第一旗标144更新到特定值(例如,0)以指示第一缓冲条目114对应于帧的帧数据的完整副本。分析器122可更新第一产生时间戳148以指示第一帧184的第一产生时间戳。分析器122可更新第一接收时间戳140以指示第一包132的接收时间戳。分析器122(或接收器124)可响应于接收第一包132而确定第一包132的接收时间戳。分析器122可处理第一缓冲条目114及第二缓冲条目118。语音解码器160可基于第一帧数据164及第二帧数据166而产生经处理语音信号。
***100可通过使得能够在播放对应于帧的擦除之后将帧的帧数据(例如,部分副本)缓冲在去抖动缓冲器中来启用隐式缓冲自适应。在播放对应于帧的擦除之后处理帧数据可延迟帧序列的随后帧的处理,致使由去抖动缓冲器进行的更多帧的缓冲。可通过在播放擦除之后处理帧数据来隐式地增加去抖动缓冲器的深度。可通过在缓冲条目存储关于损失包的部分数据时产生对应于缓冲条目的第一接收时间戳来由播放延迟的增强造成的经处理音频信号的中断。第一接收时间戳可指示第一时间比包含部分数据的包的第二接收时间戳早。
由***100提供的一个特定优点为在特定帧的帧数据是在播放对应于特定帧的擦除之后接收时启用隐式缓冲自适应。隐式缓冲自适应增加缓冲深度,此允许在播放对应于特定帧的擦除之后处理特定帧,而无需源装置104与目的地装置102之间的端对端延迟的永久增加。因此,隐式缓冲自适应仅以端对端延迟的暂时增加来改进经处理音频信号116的质量。
图2A至5说明在播放对应于帧的擦除之后接收帧的帧数据的部分副本时的图1的***100的操作的非限制性实例。图2A到3说明在帧对应于包含在静默之后的语音数据的活动帧时的***100的操作。例如,活动帧可对应于在静默周期之后的话音突发(talkspurt)。图4A到5说明在帧对应于语音数据的活动帧序列中的包含语音数据的活动帧时的***100的操作。
参考图2A,揭示说明图1的***的特定实例的操作的图且通常将其指定为200。图200说明随时间而变的经处理帧的帧数目。图200还说明时间t0处的去抖动缓冲器126的状态。如图2A中所说明,在时间t0,帧音频序列的帧子集可已由图1的分析器122处理。例如,帧1到3可对应于活动语音(例如,话音突发)。分析器122可已处理帧1到3。最后产生时间戳138可指示最近经处理帧(例如,帧3)的产生时间戳(例如,3*640=1920)。帧4到9可对应于话音突发之间的静默周期。分析器122可播放静默帧,无数据帧或对应于帧4到9的擦除。时间t0处的缓冲时间线106的值可指示对应于帧9的产生时间戳(例如,5760)。去抖动缓冲器126可包含对应于帧11的缓冲条目202及对应于帧12的缓冲条目204。缓冲条目202可包含帧11的产生时间戳212(例如,7040)。缓冲条目204可包含帧12的产生时间戳214(例如,7680)。缓冲条目202可包含具有用以指示缓冲条目202对应于帧的帧数据的完整副本的第一值的旗标222。缓冲条目204可包含具有用以指示缓冲条目204对应于帧的帧数据的完整副本的第一值的旗标224。
在时间t0,分析器122可基于缓冲时间线106(例如,5760)而确定待处理的下一帧为帧10。例如,分析器122可基于缓冲时间线106的值(例如,下一产生时间戳=缓冲器时间线106+样本数目/帧(例如,640))而确定下一帧(例如,图1的第一帧184)的下一产生时间戳(例如,6400)。分析器122可确定去抖动缓冲器126不存在下一帧(例如,帧10)。例如,分析器122可确定对应于下一产生时间戳的缓冲条目从去抖动缓冲器126丢失。分析器122可响应于确定去抖动缓冲器126不存在帧10(例如,第一帧184)而将静默周期扩展一个帧长度(例如,通过播放静默帧或无数据帧)。分析器122可更新缓冲时间线106的值以指示对应于帧10的产生时间戳。例如,分析器122可在针对去抖动缓冲器126不存在帧10扩展静默周期时使缓冲时间线106的值递增样本数目/帧(例如,640)。
参考图2B,揭示继续图2A的实例的图且通常将其指定为250。在时间t1,在扩展对应于帧10的静默周期之后,分析器122可接收包含帧10的帧数据(例如,帧数据的部分副本)的包(例如,图1的第二包134)。包还可包含另一帧(例如,帧13)的帧数据的完整副本。第二包134可指示帧13的产生时间戳(例如,8320)。分析器122可将包(例如,第二包134)的副本存储在对应于帧13(例如,第二帧186)的第二缓冲条目118。分析器122可将第二产生时间戳158存储在第二缓冲条目118中。第二产生时间戳158可指示帧13的产生时间戳(例如,8320)。分析器122可将第二旗标156设置成指示第二缓冲条目118对应于帧的帧数据的完整副本的特定值(例如,1)。
分析器122可基于图1的第二产生时间戳158及帧偏移136而确定帧10的第一产生时间戳148(例如,6400),如参考图1所描述。分析器122可响应于确定第一产生时间戳148超过最后产生时间戳138(例如,1920)而将包(例如,第二包134)的第一副本存储在对应于帧10(例如,第一帧184)的第一缓冲条目114中。分析器122可独立于缓冲时间线106的值将包(例如,第二包134)的第一副本存储在第一缓冲条目114中。例如,分析器122可将包(例如,第二包134)的第一副本存储在第一缓冲条目114中而不管缓冲时间线106的值(例如,6400)指示静默周期已由一个帧长度扩展。在特定实施方案中,分析器122可响应于确定缓冲时间线106的值大于或等于第一产生时间戳148而更新缓冲时间线106以指示第一帧184(例如,帧10)为待处理的下一帧。例如,分析器122可响应于确定缓冲时间线106的值大于或等于第一产生时间戳148而更新缓冲时间线106以指示产生时间戳(例如,5760)。产生时间戳(例如,5760)可在第一产生时间戳148(例如,6400)之前。更新缓冲时间线106以指示第一帧184(例如,帧10)为待处理的下一帧可使得分析器122能够在将静默周期扩展一个帧长度之后处理第一缓冲条目114。
参考图3,揭示继续图2A及2B的实例的图且通常将其指定为300。分析器122可确定待处理的下一帧为第一帧184(例如,帧10)。例如,分析器122可基于缓冲时间线106的值(例如,5760)及样本数目/帧(例如,640)而确定下一产生时间戳(例如,6400)。分析器122可基于第一产生时间戳148而确定去抖动缓冲器126包含对应于下一产生时间戳(例如,6400)的第一缓冲条目114。分析器122可在时间t2处理第一缓冲条目114。例如,分析器122可将帧数据(例如,第一部分数据174)、包(例如,第二包134)、对应于第一帧184(例如,帧10)的第一语音参数或其组合提供到语音解码器160,如参考图1所描述。分析器122可响应于处理第一帧184(例如,帧10)而更新缓冲时间线106以指示第一产生时间戳148。例如,分析器122可使缓冲时间线106递增样本数目/帧(例如,640)。
语音解码器160可产生经处理音频信号116,如参考图1所描述。在使静默周期扩展一个帧长度之后处理第一缓冲条目114可致使将缓冲条目202、缓冲条目204及第二缓冲条目118存储在去抖动缓冲器126中达对应于第一帧184的播放持续时间的额外时间。例如,如果尚未将第一缓冲条目114***到去抖动缓冲器126中,那么可在原本处理缓冲条目202的时间处理第一缓冲条目114。缓冲条目202的处理可被延迟第一帧184(例如,帧10)的播放持续时间(例如,20毫秒),导致随后帧的处理延迟。在处理延迟期间,目的地装置102可接收额外包且去抖动缓冲器126可缓冲对应于额外包的帧。由去抖动缓冲器126缓冲的帧的数目可增加,从而通过隐式地增加去抖动缓冲器126的深度而致使隐式缓冲自适应。处理延迟可增加去抖动缓冲器126包含对应于在将处理随后帧时的随后帧的数据的可能性。
参考图4A,揭示说明图1的***的另一特定实施方案的操作的图且通常将其指定为400。图400与图3的图300的不同之处在于帧1到9对应于活动语音(例如,话音突发)。最后产生时间戳138可指示最近经处理帧(例如,帧9)的产生时间戳(例如,5760)。最后产生时间戳138可指示与缓冲时间线106相同的值。分析器122可响应于确定去抖动缓冲器126不存在帧10而在时间t0播放擦除,如参考图1及2A所描述。
参考图4B,揭示继续图4A的实例的图且通常将其指定为402。分析器122可响应于确定第一产生时间戳148超过最后产生时间戳138而在时间t1将包(例如,第二包134)的第一副本存储在第一缓冲条目114中,如参考图1及2B所描述。分析器122可将包(例如,第二包134)的第一副本存储在第一缓冲条目114中而与缓冲时间线106的值是否指示已播放对应于第一帧184(例如,帧10)的擦除无关。在特定实施方案中,分析器122可响应于确定缓冲时间线106的值指示在音频帧序列中的第一帧184之后的帧为待处理的下一帧而更新缓冲时间线106以指示第一帧184为待处理的下一帧。例如,分析器122可响应于确定缓冲时间线106的值(例如,6400)大于或等于第一产生时间戳148而更新缓冲时间线106以指示在第一产生时间戳148(例如,6400)之前的产生时间戳(例如,5760)。
参考图5,揭示继续图4A及4B的实例的图且通常将其指定为500。分析器122可在时间t2处理第一缓冲条目114。在播放对应于第一帧184(例如,帧10)的擦除之后处理第一缓冲条目114可启用隐式缓冲自适应,如参考图1及3描述。
参考图6,揭示说明图1的***的特定实施方案的操作的图且通常将其指定为600。图600说明在缓冲条目在各种实施方案中经处理时的比较。图600包含说明4种状况的比较的表652。图600包含说明去抖动缓冲器126中存在哪些包(在图6中使用阴影图案展示)及在4种状况中的每一者中处理缓冲条目的时间的表650。图600还说明去抖动缓冲器126的缓冲条目。
如在表652中所展示,状况1对应于其中包含对应于特定帧的部分数据及对应于另一帧的完整帧数据的包在去抖动缓冲器126中排队一次(例如,非双排队)的实施方案。在状况1中,部分数据经处理而与播放延迟(例如,最小播放延迟)无关。可基于状况1到4中的播放延迟(例如,40毫秒(ms))而处理完整帧数据。如表652中所展示,接收时间戳调整(Rx_ts调整)在状况1中不适用。
如在表652中所展示,状况2到4对应于其中包含对应于特定帧的部分数据及对应于另一帧的完整帧数据的包排队两次(例如,双排队)的实施方案。例如,包的第一副本可在对应于特定帧的第一缓冲条目中排队,且包的第二副本可在对应于另一帧的第二缓冲条目中排队。
如表652中所展示,在状况2到3中不存在任何接收时间戳调整(Rx_ts调整)。例如,第一缓冲条目可存储包的接收时间戳。第二缓冲条目还可存储包的接收时间戳。在状况2中,部分数据是基于播放延迟(例如,最小播放延迟)而进行处理,且在状况3中,部分数据经处理而与播放延迟无关。
如在表652中所展示,在状况4中存在接收时间戳调整(Rx_ts调整)。例如,可产生指示第一时间比由包的接收时间戳指示的第二时间早的第一接收时间戳。第一缓冲条目可存储第一接收时间戳。在状况4中,部分数据是基于播放延迟(例如,最小播放延迟)而进行处理。
如在表650中所展示,在时间t=80毫秒(ms)且在时间t=100ms,去抖动缓冲器126为空(例如,不包含对应于帧序列的数据)。分析器122可将无数据的指示提供到语音解码器160。
在时间t=120ms,去抖动缓冲器126可包含对应于帧序列的第二帧(F2)的缓冲条目604。缓冲条目604可存储对应于包含第二帧(F2)的完整帧数据的包的接收时间戳(例如,115ms)的时间戳(TS)624。分析器122可基于TS 624(例如,115ms)及播放延迟(例如,40ms)而确定对应于缓冲条目604的缓冲周期。例如,分析器122可确定对应于缓冲条目604的缓冲周期在对应于由TS 624指示的第一时间(例如,115ms)与播放延迟(例如,40ms)之间的和的时间(例如,155ms)期满。在时间t=120ms,在状况1到4,分析器122可响应于确定对应于缓冲条目604的缓冲周期未期满而抑制处理(并出队)缓冲条目604。分析器122可将无数据的指示提供到语音解码器160。
在时间t=140ms,去抖动缓冲器126可包含对应于第二帧(F2)的缓冲条目604,且对应于帧序列的第四帧(F4)的缓冲条目608。缓冲条目608可存储对应于包含第四帧(F4)的完整帧数据的包的接收时间戳(例如,138ms)的TS 628。包还可包含帧序列的第一帧(F1)的部分数据。
在时间t=140ms,在状况1到4中,分析器122可确定对应于缓冲条目604及608的缓冲周期未期满。例如,对应于缓冲条目604的第一缓冲周期可能在t=155ms期满,且对应于缓冲条目608的第二缓冲周期可能在t=178ms(138ms+40ms)期满。分析器122可响应于确定对应于缓冲条目604及608的缓冲周期未期满而抑制处理缓冲条目604及608。
在状况1中,包含第四帧(F4)的完整帧数据及第一帧(F1)的部分数据的包可在去抖动缓冲器126中排队一次。例如,去抖动缓冲器126可包含对应于第四帧(F4)的缓冲条目608且可不包含对应于第一帧(F1)的缓冲条目。在状况1中,部分数据经处理而与播放延迟无关。分析器122可不能够在分析器122在帧序列中的特定帧(例如,F1)之前尚未处理帧且去抖动缓冲器126不包含对应于特定帧(例如,F1)的缓冲条目时确定特定帧(例如,F1)为待处理的下一帧。由于特定帧(例如,F1)并未指示为待处理的下一帧,因此分析器122可不能够确定对应于特定帧(例如,F1)的完整帧数据丢失且可不查找对应于其它帧(例如,F4)的缓冲条目中的对应于特定帧(例如,F1)的部分数据。因此,分析器122可将无数据的指示提供到语音解码器160。在状况1中,尽管去抖动缓冲器126包含对应于第一帧(F1)的部分数据,但分析器122可由于不存在双排队且无对应于第一帧(F1)的任何缓冲条目而播放擦除(例如,提供无数据的指示)。
在状况2到4中,包含第四帧(F4)的完整帧数据及第一帧(F1)的部分数据的包可在去抖动缓冲器126中进行双排队。例如,去抖动缓冲器126可包含对应于第一帧(F1)的缓冲条目602以及对应于第四帧(F4)的缓冲条目608。缓冲条目602可存储TS 622。在状况2到3中,在无接收时间戳调整的情况下,TS 622可对应于缓冲条目608的TS 628(例如,138ms)(例如,包的接收时间戳)。
在状况2中,部分数据是基于播放延迟(例如,40ms)而进行处理。分析器122可基于TS 622(例如,138ms)及播放延迟(例如,40ms)而确定与缓冲条目602相关联的缓冲周期在时间t=178ms期满。因此,图1的分析器122可响应于确定与缓冲条目602相关联的缓冲周期未期满而抑制在时间t=140ms处理缓冲条目602。分析器122可将无数据的指示提供到语音解码器160。在状况2中,尽管去抖动缓冲器126包含对应于第一帧(F1)的部分数据,但分析器122可由于部分数据是基于播放延迟而经处理且不存在任何接收时间戳调整而播放擦除(例如,提供无数据的指示)。
在状况3中,部分数据经处理而与播放延迟(例如,40ms)无关。与缓冲条目602相关联的缓冲周期将基于TS 622(例如,138ms)及播放延迟(例如,40ms)而在时间t=178ms已期满。如果图1的分析器122待基于缓冲周期而处理缓冲条目602,那么分析器122将由于缓冲周期将未期满而抑制在时间t=140ms处理缓冲条目602。然而,在状况3中,分析器122可在时间t=140ms处理缓冲条目602而与缓冲周期无关,这是因为缓冲条目602存储部分数据。
在状况4中,在接收时间戳调整的情况下,TS 622可指示比由TS 628指示的第二时间(例如,138ms)早的第一时间(例如,77ms)。例如,分析器122可基于TS 628、图1的帧偏移136(例如,3个帧)及播放持续时间(例如,20ms)而产生TS 622,如参考图1所描述。在状况4中,部分数据是基于播放延迟(例如,40ms)而经处理。分析器122可基于TS 622(例如,77ms)及播放延迟(例如,40ms)而确定与缓冲条目602相关联的缓冲周期在时间t=117ms期满。图1的分析器122可响应于确定与缓冲条目602相关联的缓冲周期已期满满而在时间t=140ms处理缓冲条目602。
在状况3到4中,分析器122可在时间t=140ms处理缓冲条目602之后将对应于缓冲条目602的数据提供到语音解码器160。语音解码器160可基于对应于缓冲条目602的数据而产生图1的经处理音频信号116,如参考图1所描述。
在时间t=160ms,去抖动缓冲器126可包含对应于第五帧(F5)的缓冲条目610。缓冲条目610可包含指示包含第五帧(F5)的完整帧数据的包的接收时间戳(例如,160ms)的TS630。包可包含第二帧(F2)的部分数据。分析器122可抑制在去抖动缓冲器126中对包进行双排队。例如,在状况1中,不存在任何双排队。在状况2到4中,分析器122可响应于确定去抖动缓冲器126已包含对应于第二帧(F2)的缓冲条目(例如,缓冲条目604)以及确定包包含对应于第二帧(F2)的部分数据而抑制对所述包进行双排队。例如,分析器122可将包存储在对应于第五帧(F5)的缓冲条目610中但可抑制将包的副本存储在对应于第二帧(F2)的缓冲条目中。
在时间t=160ms,在状况1及3到4中,去抖动缓冲器126不包含缓冲条目602。例如,在状况1中,分析器122可能由于单排队而尚未将缓冲条目602添加到去抖动缓冲器126,如本文中所描述。在状况3到4中,分析器122可响应于处理缓冲条目602而可已使缓冲条目602从去抖动缓冲器126出队(例如,移除)。在状况1及3到4中,分析器122可响应于确定对应于缓冲条目604的缓冲周期已期满而处理对应于第二帧(F2)的缓冲条目604。
在状况2中,去抖动缓冲器126可能由于出队且由于分析器122抑制较早(例如,在时间t=140ms)处理缓冲条目602而包含缓冲条目602,如本文中所描述。另外,分析器122可确定对应于缓冲条目602的缓冲周期在时间t=160ms尚未期满。例如,在状况2中,对应于缓冲条目602的缓冲周期可能在时间t=178ms(例如,138ms+40ms)期满。然而,分析器122可确定与缓冲条目604相关联的缓冲周期在时间t=160ms已期满。例如,对应于缓冲条目604的缓冲周期可能在时间t=155ms(例如,115ms+40ms)期满。分析器122可响应于确定对应于缓冲条目602的缓冲周期未期满而抑制处理对应于第一帧(F1)的缓冲条目602。分析器122可响应于确定去抖动缓冲器126包含对应于在帧序列中比与缓冲条目604相关联的第二帧(F2)早的帧(例如,第一帧(F1))的缓冲条目602而抑制处理缓冲条目604。分析器122可基于相应产生时间戳而确定第一帧(F1)在帧序列中比第二帧(F2)早,如参考图1所描述。因此,分析器122可播放擦除。例如,分析器122可将无数据的通知发送到语音解码器160。
在时间t=180ms,去抖动缓冲器126可包含对应于第六帧(F6)的缓冲条目612。缓冲条目612可包含指示包含第六帧(F6)的完整帧数据的包的接收时间戳(例如,178ms)的TS632。包还可包含第三帧(F3)的部分数据。在状况1中,存在单排队(即,无双排队),因此,去抖动缓冲器126可不包含对应于第三帧(F3)的缓冲条目606。在状况2到4中,分析器122可响应于确定去抖动缓冲器126不存在第三帧(F3)而在去抖动缓冲器126中对包进行双排队。例如,分析器122可将包的第一副本存储在对应于第三帧(F3)的缓冲条目606中且可将包的第二副本存储在对应于第六帧(F6)的缓冲条目612中。缓冲条目606可包含TS 626。在状况2到3中,在无接收时间戳调整的情况下,TS 626可能与TS 632相同。例如,TS 626可指示包的接收时间戳(例如,178ms)。在状况4中,在接收时间戳调整的情况下,TS 626可指示比由TS632指示的第二时间(例如,178ms)早的第一时间(例如,117ms)。例如,第一时间可能比由包的接收时间戳指示的时间(例如,178ms)早。
在时间t=180ms,在状况1中,分析器122可基于图1的缓冲时间线106而确定待处理的下一帧为第三帧(F3),如参考图1所描述。例如,分析器122可更新缓冲时间线106以指示第二帧(F2)的产生时间戳。分析器122可确定待处理的下一帧为具有紧在由缓冲时间线106指示的产生时间戳之后的特定产生时间戳的第三帧(F3)。分析器122可确定响应于确定第三帧(F3)为待处理的下一帧且去抖动缓冲器126不包含对应于第三帧(F3)的缓冲条目而确定对应于第三帧(F3)的完整帧数据丢失。分析器122可响应于确定对应于第三帧(F3)的完整帧数据丢失而确定另一缓冲条目是否包含对应于第三帧(F3)的部分数据。例如,分析器122可确定对应于第六帧(F6)的缓冲条目612包含对应于第三帧(F3)的部分数据。分析器122可在时间t=180ms处理对应于第三帧(F3)的部分数据而与播放延迟无关。
在状况2中,在时间t=180ms,分析器122可响应于确定对应于缓冲条目602的播放延迟周期已期满而处理对应于第一帧(F1)的缓冲条目602。
在状况3到4中,在时间t=180ms,分析器122可处理对应于第三帧(F3)的缓冲条目606。例如,在状况3中,分析器122可响应于确定第三帧(F3)为待处理的下一帧而与播放延迟无关来处理缓冲条目606。在状况4中,分析器122可响应于确定第三帧(F3)为待处理的下一帧且对应于缓冲周期606的播放周期已期满而处理缓冲条目606。例如,对应于缓冲条目606的播放延迟周期可在时间t=157ms(117ms+40ms)期满。
在时间t=200ms,在状况1及3到4中,分析器122可响应于确定第四帧(F4)为待处理的下一帧且对应于第四帧(F4)的播放延迟周期已期满而处理对应于第四帧(F4)的缓冲条目608。在状况2中,分析器122可响应于确定第二帧(F2)为待处理的下一帧(如参考图1所描述)且对应于缓冲条目604的播放延迟周期已期满而处理对应于第二帧(F2)的缓冲条目604。
在时间t=220ms,在状况1及3到4中,分析器122可响应于确定第五帧(F5)为待处理的下一帧且对应于第五帧(F5)的播放延迟周期已期满而处理对应于第五帧(F5)的缓冲条目610。在状况2中,分析器122可响应于确定第三帧(F2)为待处理的下一帧(如参考图1所描述)且对应于缓冲条目606的播放延迟周期已期满而处理对应于第三帧(F3)的缓冲条目606。
图600说明单排队(如在状况1中)可在帧序列的初始帧的部分数据经缓冲在去抖动缓冲器126中但分析器122尚未确定初始帧的完整帧数据丢失(如参考状况1在时间t=140ms所描述)时致使在无对应于所述初始帧的情况下产生经处理音频信号。
图600说明在双排队且无接收时间调整的情况下,基于播放延迟的部分数据可在特定帧的部分数据经缓冲在去抖动缓冲器126中但与对应于部分数据的缓冲条目相关联的缓冲周期尚未期满(如参考状况2在时间t=140ms及时间t=160ms所描述)时在处理帧中产生不必要的擦除及延迟。
图600说明,在图6的实例中,与具有双排队且无接收时间调整的播放延迟无关地处理部分数据可在一些情况下具有与基于具有双排队且具有接收时间调整的播放延迟而处理部分数据(如参考状况3到4所描述)相当的性能。与其它情况(例如,高抖动状况)下的基于具有双排队且具有接收时间调整的播放延迟处理部分数据(例如,如参考图8所描述)相比,与具有双排队且无接收时间调整的播放延迟无关地处理部分数据可能具有迥异结果。
参考图7,展示说明图1的***的特定实施方案的操作的图且通常将其指定为700。图700说明在缓冲条目在各种实施方案中经处理时的比较。图700包含说明2种状况的比较的表752。图700包含说明去抖动缓冲器126中存在哪些包(在图7中使用阴影图案展示)及在2种状况(图6的状况1及4)中的每一者中处理缓冲条目的时间的表750。图700说明去抖动缓冲器126的缓冲条目。
图7的去抖动缓冲器126的缓冲条目与图6的去抖动缓冲器126的缓冲条目不同之处在于对应于第六帧(F6)的缓冲条目612的TS 632在图7中指示比图6中TS 632所指示的时间(例如,178ms)较晚的第一时间(例如,183ms)。例如,包含第六帧(F6)的完整帧数据的包可与第一接收时间戳相关联,在参考图7所描述的实例中,所述第一接收时间戳比参考图6所描述的实例中的包的接收时间戳。包可包含对应于第三帧(F3)的部分数据。
在状况4中,分析器122可基于TS 632(例如,183ms)、图1的帧偏移136及播放延迟(例如,20ms)而产生对应于第三帧(F3)的TS 626(例如,122ms),如参考图1所描述。图7的TS626可指示比由图6的TS 626(例如,117ms)所指示的第二时间晚的第一时间(例如,122ms)。
在时间t=100ms到时间t=160ms,分析器122可如参考图6所描述操作。在时间t=180ms,分析器122可确定去抖动缓冲器126不存在对应于第三帧(F3)的缓冲条目。分析器122可播放擦除(例如,将指示无数据的通知提供到图1的语音解码器160)。在特定实例中,语音解码器160可响应于接收指示无数据的通知而请求分析器122确定去抖动缓冲器126是否具有存储对应于第三帧(F3)的部分数据的缓冲条目。分析器122可响应于确定去抖动缓冲器126的缓冲条目中无一者包含对应于第三帧(F3)的部分数据而将指示无数据的另一通知提供到语音解码器160。
在时间t=200ms,去抖动缓冲器126可包含对应于第六帧(F6)的缓冲条目612。缓冲条目612可包含对应于第三帧(F3)的部分数据。在状况4中,去抖动缓冲器126可包含对应于第三帧(F3)的缓冲条目606。例如,分析器122可响应于确定最近经处理帧在帧序列中在第三帧(F3)之前而在播放对应于第三帧(F3)的擦除之后在去抖动缓冲器126中包含缓冲条目606,如参考图1所描述。分析器122可更新缓冲时间线106以指示第三帧(F3)为待处理的下一帧,如参考图1所描述。
在时间t=200ms,在状况1中,分析器122可确定去抖动缓冲器126不包含对应于第三帧(F3)的缓冲条目。分析器122可响应于确定已播放对应于第三帧(F3)的擦除而抑制确定对应于另一帧的缓冲条目是否包含对应于第三帧(F3)的部分数据。分析器122可响应于确定第四帧(F4)为待处理的下一帧,去抖动缓冲器126不包含对应于第三帧(F3)的缓冲条目,及对应于缓冲条目608的缓冲周期已期满而处理对应于第四帧(F4)的缓冲条目608。
在时间t=200ms,在状况4中,分析器122可响应于确定第三帧(F3)为待处理的下一帧且对应于缓冲条目606的播放延迟周期已期满而处理对应于第三帧(F3)的缓冲条目606。在播放对应于第三帧的擦除之后处理对应于第三帧(F3)的缓冲条目606可致使隐式缓冲自适应,如参考图1所描述。
如与状况1相比,随后帧(例如,F4、F5、F6等等)的处理可在状况4中延迟,增加在待处理随后帧时对应于随后帧的数据在去抖动缓冲器126中的可能性。
参考图8,展示说明图1的***的特定实施方案的操作的图且通常经指定。图800说明在各种实施方案中处理缓冲条目时的比较。图800包含说明对应于图6的状况3及4的2种状况的比较的表852。图800包含说明去抖动缓冲器126中存在哪些包(在图8中使用阴影图案展示)及在2种状况中的每一者中处理缓冲条目的时间的表850。图800说明去抖动缓冲器126的缓冲条目。
图8中所说明的实例与图6中所说明的实例的不同之处在于图8中的播放延迟(例如,80ms)比图6中的播放延迟(例如,40ms)长。较长播放延迟(例如,80ms)可能对应于其中目的地装置102经历高抖动的情况。图8的去抖动缓冲器126的缓冲条目不同于图6的去抖动缓冲器126的缓冲条目。
在时间t=60ms,去抖动缓冲器126可能为空。图1的分析器122可响应于确定去抖动缓冲器126为空而将无数据的指示提供到图1的语音解码器160。
在时间t=80ms,去抖动缓冲器126可包含对应于第二帧(F2)的缓冲条目804。缓冲条目804的时间戳(TS)824可指示包含第二帧(F2)的完整帧数据的包的接收时间戳(例如,75ms)。图1的分析器122可基于TS 824(例如,75ms)及播放延迟(例如,80ms)而确定缓冲条目804的缓冲周期在时间t=155ms期满。在时间t=80ms,分析器122可响应于确定对应于缓冲条目804的缓冲周期未期满而抑制处理缓冲条目804。分析器122可播放擦除(例如,将无数据的通知提供到图1的语音解码器160)。
在时间t=100ms,去抖动缓冲器126可包含对应于第三帧(F3)的缓冲条目806。缓冲条目806的TS 826可指示包含第三帧(F3)的完整帧数据的包的接收时间戳(例如,97ms)。分析器122可确定对应于缓冲条目806的缓冲周期在时间t=177ms(例如,97ms+80ms)期满。在时间t=100ms,分析器122可响应于确定相应缓冲周期未期满而抑制处理缓冲条目804及806。分析器122可播放擦除(例如,将无数据的通知提供到图1的语音解码器160)。
在时间t=120ms,去抖动缓冲器126可包含对应于第四帧(F4)的缓冲条目808。缓冲条目808的TS 828可指示包含第四帧(F4)的完整帧数据的包的接收时间戳(例如,103ms)。分析器122可确定对应于缓冲条目808的缓冲周期在时间t=183ms(例如,103ms+80ms)期满。包还可包含对应于第一帧(F1)的部分数据。因此,分析器122可对包进行双排队。例如,去抖动缓冲器126可包含对应于第一帧(F1)的缓冲条目802。缓冲条目802可存储包的第一副本,且缓冲条目808可存储包的第二副本。在状况3中,在无接收时间戳调整的情况下,缓冲条目802的TS 822可指示包的接收时间戳(例如,103ms)。在状况4中,在接收时间戳调整的情况下,缓冲条目802的TS 822可指示比由包的接收时间戳指示的第二时间(例如,103ms)早的第一时间(例如,42ms)。
在时间t=120ms,在状况3中,分析器122可响应于确定缓冲条目802存储第一帧(F1)的部分数据且第一帧(F1)为待处理的下一帧而与播放延迟无关地处理缓冲条目802,如参考图1所描述。在状况4中,分析器122可确定缓冲条目802的缓冲周期在时间t=122ms(42ms+80ms)期满。因此,在状况4中,在时间t=120ms,分析器122可响应于确定相应缓冲周期未期满而抑制处理缓冲条目802、804、806及808。因此,分析器122可播放擦除(例如,将无数据的通知提供到图1的语音解码器160)。
在时间t=140ms,在状况3中,分析器122可响应于确定相应缓冲周期未期满而抑制处理缓冲条目804、806及808。分析器122可播放擦除(例如,将无数据的通知提供到图1的语音解码器160)。在状况4中,分析器122可响应于确定对应于缓冲条目802的缓冲周期已期满而处理缓冲条目802。
在时间t=160ms,去抖动缓冲器126可包含对应于第五帧(F5)的缓冲条目810。缓冲条目810的TS 830可指示包含第五帧(F5)的完整帧数据的包的接收时间戳(例如,160ms)。分析器122可确定对应于缓冲条目810的缓冲周期在时间t=240ms(例如,160ms+80ms)期满。包还可包含对应于第二帧(F2)的部分数据。分析器122可响应于确定去抖动缓冲器126已具有对应于第二帧(F2)的缓冲条目804而抑制对包进行双排队。例如,包含第二帧(F2)的完整帧数据的包可能在包含第二帧(F2)的部分数据的包之前已被接收。分析器122可抑制用部分数据替换(例如,盖写)完整帧数据。
在时间t=160ms,分析器122可响应于确定对应于缓冲条目804的缓冲周期已期满且第二帧(F2)为待处理的下一帧而处理对应于第二帧(F2)的缓冲条目804,如参考图1所描述。
在时间t=180ms,分析器122可响应于确定对应于缓冲条目806的缓冲周期已期满且第三帧(F3)为待处理的下一帧而处理对应于第三帧(F3)的缓冲条目806,如参考图1所描述。
在时间t=200ms,分析器122可响应于确定对应于缓冲条目808的缓冲周期已期满且第四帧(F4)为待处理的下一帧而处理对应于第四帧(F4)的缓冲条目808,如参考图1所描述。
如图800中所说明,在高抖动状况下,对应于状况3的实施方案可具有不同于对应于状况4的实施方案的性能。与播放延迟无关地处理帧的部分数据可减少到处理随后帧的时间已接收对应于随后帧的帧数据的可能性。在状况3中,可在无对应于随后帧的帧数据的情况下产生经处理信号。基于播放延迟而处理部分数据可增加到待处理随后帧的时间已接收对应于随后的帧数据的可能性。经处理信号可是基于对应于随后帧的帧数据而产生。在状况4中所产生的经处理信号可具有比在状况3中所产生的经处理信号更佳的音频质量(例如,较少伪影)。
参考图9,揭示可操作以更新缓冲器参数的***的特定说明性实例且通常将其指定为900。***900可包含目的地装置902,所述目的地装置经由网络944与一或多个其它装置(例如,源装置104)进行通信。例如,源装置104可经配置以将音频数据传递到目的地装置902。为了说明,源装置104及目的地装置902可参与语音呼叫,例如基于因特网协议的语音(VoIP)呼叫。另外或替代地,目的地装置902可经配置以将音频数据传递到源装置104,且源装置104可经配置以接收并处理音频数据。目的地装置902可包含或对应于图1的目的地装置102。
源装置104可基于待传递到目的地装置902的音频数据而产生包序列。例如,源装置104可包含语音译码器、解码器(未展示)或其组合。语音译码器可经配置以将语音信号压缩、划分或压缩并划分成区段,以产生帧。每一区段(或“帧”)的持续时间可经选择为足够短使得可期望信号的频谱包络保持相对静止。作为说明性、非限制性实例,一个帧长度可为二十毫秒,其在八千赫(kHz)的采样率下对应于160个样本。应注意,可使用其它帧长度或采样率。
语音编码器(例如,声码器)可产生多个帧(例如,多个经编码音频帧)且可用序号来标记每一帧,所述序号对应于帧写码序列内的多个帧的次序。每一帧的序号可被包含在帧的标头(例如,声码器包的标头)中。在一些实施方案中,每一帧可具有相同大小或相同最大帧大小。多个帧中的每一帧可被包含在声码器包中或对应于声码器包且每一声码器包可对应于帧序号。例如,第一帧(例如,第一声码器包)可对应于第一帧序号,且第二帧(例如,第二声码器包)可对应于第二帧序号。在第一帧是在第二帧之前产生时,第一帧序号可比第二帧序号低,指示第一帧为在帧序列中比第二帧早的帧(例如,较旧帧)。源装置104可将帧序列发射到目的地装置902作为第一数据包940。第一数据包940可包含由源装置104发射的多个单独报。
源装置104可经由网络944将第一数据包940发射到目的地装置902。网络944可包含可在源装置104与目的地装置902之间实现通信的一或多个装置。例如服务器(未展示)。在一些实施方案中,服务器,例如,RTP服务器,可经配置以将由源装置104发射的帧(或包)集束为集束包,所述集束包经提供到目的地装置902。例如,服务器可经配置以将例如多个声码器包的多个帧集束为集束包(例如,多帧包)。第一数据包940可包含或对应于图1的第一包132、第二包134或两者。网络944可包含或对应于图1的网络190。
在一些实施方案中,声码器可产生帧序列的包(例如,声码器包)以包含对应于线圈所产生帧的冗余信息。例如,声码器可产生第一声码器包且可在产生第一声码器包之后产生第二声码器包。第一声码器包可包含第一帧。第二声码器包可包含第二帧及第一帧的部分帧(例如,冗余信息)。在一些实施方案中,部分帧可对应于语音帧,所述语音帧的丢失将在目的地装置902处所产生的经处理语音信号中造成显著质量影响。
可在960处描绘由第一数据包940表示的包序列的第一实例。第一实例960说明在时间周期内由源装置104发射的帧序列。例如,帧序列可包含在第一时间(t1)处发射的第一包961、在第二时间(t2)处发射的第二包962、在第三时间(t3)处发射的第三包963,及在第四时间(t4)处发射的第四包964。在一些实施方案中,第一实例960中的时间中的每一者之间(例如,t1与t2之间,等等)的差可相同,例如20ms。第一包961可对应于语音信号的第一区段且可包含具有序号(n)的第一帧971。第二包962可对应于在第一区段之后的语音信号的第二区段。第二包962可包含具有序号(n+1)的第二帧972。
第三包963可对应于在第二区段之后的第三区段。第三包963可包含具有序号(n+2)的第三帧973。第三包963(例如,第三帧973)还可包含对应于第一帧971的部分帧975。部分帧975可具有序号(n),其为与第一帧971详谈的帧编号。部分帧所基于的特定帧可被称作原始帧,例如,第一帧971为原始帧。由于部分帧975为远离第一帧971两个帧(如由第一帧971的序号(n)与包含部分帧975的第三帧973的序号(n+2)之间的差所指示),因此部分帧具有偏移二。尽管部分帧975经说明在第三帧973之后,但在其它实施方案中,部分帧可在第三帧973之前或包含在第三帧973中。第四包964可对应于在第三区段之后的第四帧。第四包964可包含具有序号(n+3)的第四帧974。
在980处,描绘多帧包的序列的第二实例,其可与由网络944(例如,由包含在网络944中的服务器(未展示))产生的集束包相关联。第二实例980说明由网路944基于在时间周期内通过源装置104发射的帧所产生的多帧包(例如,帧序列)的序列。由源装置104发射的帧可包含或对应于由网络944接收的第一包序列940。网络944可基于第一包序列940的帧而产生(或发射)多帧包序列。例如,多帧包序列可包含由网络944在第一时间(t1)发射(或产生)的第一多帧包981、由网络944在第二时间(t2)发射(或产生)的第二多帧包982、由网络944在第三时间(t3)发射(或产生)的第三多帧包983以及由网络944在第四时间(t4)发射(或产生)的第四多帧包984。在一些实施方案中,第二实例980的时间中的每一者之间(例如,t1与t2之间,t2与t3之间,等等)的差可相同,例如,40ms。第一多帧包981可包含具有序号(n)的第一帧991及具有序号(n+1)的第二帧992。第二多帧包982可包含具有序列帧(n+2)的第三帧993且具有序号(n+3)的第四帧994。
第三帧983可包含具有序号(n+4)的第五帧995及具有序号(n+5)的第六帧996。第五帧995可包含对应于第二帧992的部分帧999。部分帧999可具有序号(n+1),所述序号为与第二帧992相同的序号。由于部分帧999远离第二帧992三个帧(如由第二帧992的序号(n+1)与包含部分帧999的第五帧995的序号(n+4)之间的差所指示),因此部分帧999具有偏移三。第四帧984可包含具有序号(n+6)的第七帧997及具有序号(n+7)的第八帧998。帧991到999中的每一者可由源装置104产生。
网络944可产生第二实例980中所描绘的多帧包序列并将其发射到目的地装置902。例如,多帧包序列可经由通信信道(即,有线或无线网络连接)发射。目的地装置902可接收第二包序列942,所述第二包序列可基于(或可对应于)第一数据包940或由网络944产生(或发射)的多帧包序列。第二包阵列942可包含由目的地装置902接收的多个单独包。由于网络944的条件,第一数据包940(或第二实例980的多帧包序列)可由目的地装置902接收作为具有不同于第一序列的第二包序列的第二包阵列942。例如,当在目的地装置902处接收第二包阵列942时,第二数据包的包可能无序、损坏(例如,具有比特错误)、丢失或其组合。作为另一实例,第二实例980的多帧包序列可由目的地装置902无序接收。
目的地装置902可包含接收器924、缓冲器926、缓冲管理器910、存储器930及语音解码器956。例如,接收器924可包含或对应于图1的接收器124。接收器924可经配置以接收一或多个包,例如,一或多个声码器包或一或多个多帧包。包可能由于可变网络延迟而在随机或不可预测到达时间到达接收器924。另外或替代地,包可能无序到达(例如,相对于第一包序列940、相对于第二实例980的多帧包序列或其组合而无序)。可将所接收包提供到缓冲管理器910。
缓冲管理器910可经配置以剖析所接收包且识别(例如,提取)每一包中所包含的以或多个帧。例如,缓冲管理器910可包含或对应于图1的分析器122。缓冲管理器910可经配置以在缓冲器926中存储(例如,排队)一或多个所接收包的帧。例如,缓冲器926可包含或对应于图1的去抖动缓冲器126。缓冲器926,例如去抖动缓冲器,可经配置以存储所接收帧以使得帧能够根据帧序列排序或减少与包到达时间相关联的抖动。增加缓冲器926的大小(例如,最小播放延迟)可减少最后丢失包的数目,且因此可增加缓冲器926中的帧的数目。缓冲器926中的帧的数目的增加可导致音频质量的增加。
在一些实施方案中,缓冲管理器910可将指向存储器(帧存储在其中的存储器930)中的位置的指针(例如,识别符)存储在缓冲器926中,而非将帧存储在缓冲器926中。例如,存储器930可包含或对应于图1的存储器176。如果缓冲管理器910识别所接收包中所包含的部分帧,缓冲管理器910可确定具有与部分帧相同的序号的对应帧(例如,完整帧)是否被包含在缓冲器926中。如果对应帧被存储在缓冲器926中,缓冲管理器910可抛弃部分帧。如果对应帧未存储在缓冲器926中,那么缓冲管理器910可通过将所接收包的第一副本及所接收包的第二副本***到缓冲器926中来对所接收包进行双排队。例如,缓冲管理器910可将部分帧***到缓冲器926作为接收包的第一副本。可根据部分帧的序号将所接收包的第一副本***到缓冲器926中。缓冲管理器910可将所接收包中所包含的第二帧***到缓冲器926中作为所接收包的第二副本。可根据第二帧的第二序号将所接收包的第二副本***到缓冲器926中。如果在将部分帧存储在缓冲器926中之后接收对应帧,那么缓冲管理器910可用完整帧替换部分帧。
缓冲管理器910可经配置以将来自缓冲器926的帧提供到语音解码器956。例如,语音解码器956可包含或对应于图1的语音解码器160。语音解码器956可经配置以接收帧并处理所接收帧以按周期性时间块(例如,20ms块)来产生音频输出958。例如,音频输出958可包含或对应于图1的经处理音频信号116。为产生连续音频输出,语音解码器956可经配置以周期性接收新帧(例如,以规则间隔)。例如,语音解码器956可经配置以每20ms接收新帧。
为将帧以恰当次序(例如,顺序次序)提供到语音解码器956,缓冲管理器910可维持计数器(未展示),所述计数器指示待提供到语音解码器956的帧的下一序号。基于计数器的值,缓冲管理器910可在一帧具有匹配计数器的值的序号时使所述帧从缓冲器926出队。可接着将经出队的帧提供到语音解码器956。在将帧提供到语音解码器956之后,缓冲管理器910可使计数器的值递增。
可根据缓冲器参数934将帧维持在缓冲器926中。例如,缓冲器参数934可包含或对应于图1的播放延迟128。缓冲器参数934可存储在存储器930中。在一些实施方案中,缓冲器参数934可被称作播放延迟(例如,缓冲深度)或播放延迟参数。播放延迟可指示帧保持在缓冲器926中的最小时间量或最大时间量。在一些实施方案中,播放延迟可指示在缓冲管理器910处接收的帧与提供到语音解码器956的帧之间的最小时间量或最大时间量。最小时间量可被称作为最小播放延迟,且最大时间量可被称作最大播放延迟。在目的地装置902的操作期间,缓冲管理器910可基于抖动而计算并更新缓冲器参数934的一或多个值。例如,在抖动值较高时可使用较高播放延迟且在抖动值较低或为零时可使用较低播放延迟。应注意,最小播放延迟的增加可以源装置104与目的地装置902之间的增加的端对端延迟为代价而减少最后损失包(例如,到达太晚而不能被语音解码器956使用的包)的数目。
如果基于计数器的值提供到语音解码器956的帧丢失(例如,帧不在缓冲器926中),那么缓冲管理器910可使用隐式缓冲自适应技术。隐式缓冲自适应技术可用于增加包播放的有效延迟。隐式缓冲自适应技术不会明显增加缓冲器参数934,但增加包保持在缓冲器926中的时间。为实施隐式缓冲自适应技术,缓冲管理器910在对应于计数器的值的特定帧丢失的情况下播放擦除。然而,如果特定帧(或对应于特定帧的部分帧)在阈限时间量(例如,20ms)内到达,那么可将特定帧提供到语音解码器956且播放。隐式缓冲自适应技术可在擦除或特定帧之后增加帧的总体延迟。例如,帧序列的第一部分可包含对应于语音(例如,话音突发)的音频数据。在此实例中,可在对应于在序列帧的第一部分(例如,话音突发)之后(例如,在帧序列已被语音解码器956接收并进行处理之后)的静默周期的序列帧的第二部分期间发生从增加的总体延迟恢复。
在一些实施方案中,作为说明非限制性实例,缓冲器参数934(例如,最小播放延迟)可具有大约40ms的值。在缓冲器参数为40m时,目的地装置902可在部分帧具有偏移3且包含在多帧包中时经历擦除的增加。例如,参考第二实例980,在产生第五帧995并将其包含在第三帧983中之后发射部分帧999(对应于第二帧992)。因此,假设无延迟,目的地装置902必须等待80ms(例如,两个40ms间隔)以在第二帧992丢失或损坏的情况下接收部分帧999。在40ms的缓冲器参数934的情况下,部分帧999可能未被及时接收以用于替代丢失的第二帧992且可能出现擦除。另外,由于多帧包包含两个或多于两个声码器包,多帧包的损失导致可各自造成擦除的两个丢失帧。另外,多帧包及多于2的偏移值的使用可在缓冲器参数934维持在40ms的情况下形成目的地装置902的增加擦除率的情况。
为识别可造成增加的擦除率的情况,缓冲管理器910可包含集束检测器912、偏移检测器914及擦除检测器916。缓冲管理器910可经配置以响应于由集束检测器912、偏移检测器914或擦除检测器916产生的一或多个指示符而调整缓冲器参数934的值,如本文中所描述。集束检测器912、偏移检测器914或擦除检测器916中的每一者可经配置以产生存储在存储器930中的对应数据。例如,集束检测器912可产生集束数据931。偏移检测器914可产生偏移数据932,且擦除检测器916可产生擦除数据933。偏移数据932可包含或对应于图1的帧偏移136。
集束数据931可包含与一起集束在多帧包中的帧(例如,语音帧)的数目相关联的第一数据。例如,集束数据931可与在时间周期期间所接收的多个包中所包含的帧的平均数目相关联。例如,在第一时间周期,目的地装置902可接收第一包,后续接着第二包,后续接着第三包。集束数据931可存储指示第一包中所包含的帧的第一数目的第一数据条目,指示第二包中所包含的帧的第二数目的第二数据条目,及指示第三包中所包含的帧的第三数目的第三数据条目。随着每一包中所包含的帧的平均数目增加,因此连续包之间的平均间隔时间增加。偏移数据932可追踪在第二时间周期所接收的每一部分帧的偏移值。擦除数据933可追踪在第三时间周期期间提供到语音解码器956的擦除(例如,播放擦除、静默帧或无数据帧)的数目。
集束检测器912、偏移检测器914及擦除检测器916中的每一者可经配置以产生对应指示符。例如,集束检测器912可产生集束指示符913,偏移检测器914可产生偏移指示符915,且擦除检测器916可产生擦除指示符917。为了说明,集束检测器912可基于集束数据931而产生集束指示符913。集束指示符913可指示帧的平均数目(声码器包的平均数目)/由目的地装置902接收的包。集束指示符913可基于最近所接收包含的预定数目(例如,五个最近所接收包)或基于在第一时间周期所接收的包(例如,在最后400ms期间所接收的包)而计算帧的平均数目/包。另外或替代地,集束指示符913可指示多个帧包是否由目的地装置902接收。例如,集束指示符913可具有用以指示接收到多帧包的逻辑1值且可具有用以指示未接收到多帧包的逻辑0值。另外或替代地,集束指示符913可指示由目的地装置902接收的连续包之间的平均时间间隔。
偏移检测器914可基于偏移数据932而产生偏移指示符915。偏移指示符915可指示在第二时间期间所接收的一或多个部分帧的平均偏移。擦除检测器916可基于擦除数据933而产生擦除指示符917。擦除指示符917可指示在第三时间期间所接收的擦除的平均数目。另外或替代地,擦除指示符917可将帧擦除率指示为擦除百分比。擦除百分比可指示在第三时间周期期间提供到语音解码器956的擦除的数目除以在第三时间周期期间提供到语音解码器956的帧的总数目。
缓冲管理器910可将指示符913、915、917中的一或多者与对应阈值进行比较。存储器930可存储一或多个阈值936,例如,集束阈值937、偏移阈值938及擦除阈值939。集束检测器912可将集束指示符913与集束阈值937,偏移指示符915与偏移阈值938、擦除指示符917与擦除阈值939或其组合进行比较。
作为说明性非限制性实例,集束阈值937可具有值1.5。如果集束指示符913大于或等于值1.5,集束检测器912可确定多帧包(例如,集束包)被目的地装置902接收。作为另一实例,在集束指示符913对应于连续包之间的平均时间间隔时,集束阈值937可具有值30ms。例如,在源装置104每20ms产生并发射帧作为声码器包时,假定无延迟,可在目的地装置902处每20ms接收所述帧。然而,在网络944产生多帧包时,可至少每40ms(例如,对应于用以产生两个声码器包包的时间量)产生(或发射)多帧包。假定无延迟,可在目的地装置902每40ms接收多帧包。因此,在集束指示符913(指示由目的地装置902接收的连续帧的平均间隔)大于或等于集束阈值937(例如,30ms)时,缓冲管理器910可确定多帧包被目的地装置902接收。因为如与接收非多帧包时相比,在接收多帧包时较不频繁地接收包,缓冲管理器910可增加缓冲器参数934以增加播放延迟(例如,缓冲深度)且因此包保持在缓冲器926中的时间。缓冲深度的增加允许缓冲管理器910具有可用于帧恢复的更多部分帧。在一些实施方案中,作为说明性非限制性实例,目的地装置902可根据一或多个标准(例如第3代合作伙伴条目(3GPP)标准(例如,增强语音服务(EVS)3GPP标准))使用部分帧来恢复丢失或损坏的帧。
作为说明性非限制性实例,偏移阈值938可具有值2.5。例如,在缓冲器参数934为40ms且每40ms(假设无延迟)接收包含两个声码器包的多帧包时,具有偏移值2的部分帧可被目的地装置902接收且在对应完整帧丢失的情况下可用。然而,如果部分帧具有偏移值3且每40ms(假设无延迟)接收包含两个声码器包的多帧包时,可在80ms之后接收到部分帧,此在需要部分帧来恢复丢失帧时可能太晚。因此,在偏移指示符915(例如,由目的地装置902接收的一或多个部分帧的平均偏移)大于或等于偏移阈值938(例如,2.5)时,缓冲管理器910可确定通过提供额外缓冲深度(例如,增加播放延迟)来增加帧保持在缓冲器926中的时间来增加缓冲器参数934。在播放帧之前增加帧保持在缓冲器中的时间允许缓冲管理器910在播放帧之前接收增加量的部分帧。缓冲管理器910可使用增加量的部分帧来进行帧恢复。
作为说明性非限制性实例,擦除阈值939可具有介于3%到5%之间的值。缓冲管理器910可将对应于3%到5%的擦除率视为高擦除率,所述高擦除率可导致音频输出958的减少质量。因此,在擦除指示符917(擦除率)大于或等于擦除阈值939(例如,4%)时,缓冲管理器910可通过提供额外缓冲器容量来增加缓冲器参数934以及时接收部分帧来使用部分帧来进行帧恢复,此可减少擦除率。
响应于指示符913、915、917中的一或多者满足(例如,大于或等于)对应阈值,缓冲管理器910可更新缓冲器参数934。例如,缓冲管理器910可显式地增加缓冲器参数934,例如增加最小播放值。为了说明,缓冲器参数934可响应于指示符913、915、917中的一或多者满足对应阈值而从第一最小播放值(例如,40ms)增加到第二最小播放值(例如,80ms)。缓冲管理器910可在静默周期期间调整缓冲器参数934。在静默周期期间,无任何包(包含经编码音频数据)可被目的地装置902接收。例如,在两个不同语音周期期间可能发生静默周期。增加缓冲器参数934可使得更多部分帧可用于缓冲器926中以用于进行帧恢复且可减少擦除率。
在缓冲器参数934经设置为第二最小播放值之后,缓冲器参数934可在指示符913、915、917中的一或多者不再满足对应阈值时设置回第一最小播放值。例如,在缓冲器参数934响应于擦除指示符917大于或等于擦除阈值939而被设置成第二值时,缓冲器参数934可响应于擦除指示符917小于擦除阈值939而被设置成第一值。
在操作期间,目的地装置902可将缓冲器参数934设置成第一值,例如初始值20ms。目的地装置902可接收对应于语音周期的第二包序列942。缓冲管理器910可使用缓冲器926来排序第二包序列942中所接收的帧。缓冲管理器910可将来自缓冲器926(或存储器930)的经排序的帧提供到语音解码器956以使得语音解码器956能够产生音频输出958。
除了排序帧且将所述帧提供到语音解码器956外,缓冲管理器910可产生指示符913、915、917且将指示符913、915、917中的每一者与对应阈值进行比较。响应于指示符913、915、917中的一或多者满足对应阈值,缓冲管理器910可将缓冲器参数934更新到第二值。例如,缓冲管理器910可在语音周期之后的静默周期期间更新缓冲器参数934。因此,可在第二语音周期(在静默周期之后)期间使用具有第二值的缓冲器参数934。
例如,在特定时间,缓冲器参数934可具有第一值,例如,缺省值,所述第一值经选择以在接收声码器包(例如,非集束RTP包)时且在部分帧具有特定偏移值(例如,部分帧与对应完整帧之间的包的数目)(例如值二或更少)时启用可接受帧擦除率。缓冲管理器可经配置以在缓冲管理器910确定帧擦除率不可接受,接收到RTP包(例如,多帧集束包),部分帧具有大于特定偏移值的偏移值,或其组合的情况下将缓冲器参数934的值更新(例如,增加)到第二值。
在一些实施方案中,可响应于指示符913、915、917中的所有三者满足对应阈值而更新缓冲器参数934,如参考图12所描述。在其它实施方案中,可响应于三个指示符913、915、917中的两者满足对应阈值而更新缓冲器参数934。在其它实施方案中,可将特定指示符与多个阈值进行比较。可响应于特定指示符小于第一阈值及第二阈值而将缓冲器参数934更新到第一值。可响应于特定指示符大于或等于第一阈值或响应于特定指示符大于或等于第二阈值且另一指示符满足条件而将缓冲器参数934更新到第二值。使用多个阈值可允许缓冲管理器响应于特定指示符大于或等于第一阈值来快速更新缓冲器参数而无需必须将另一指示符与对应阈值进行比较。
通过追踪历史数据,例如,集束数据931、偏移数据932、擦除数据933或其组合,目的地装置902可能够识别指示(例如,可导致)可使音频输出958质量降级的增加擦除率的一或多个条件。响应于识别一或多个条件,目的地装置902可动态更新缓冲器参数934以提供额外缓冲器容量以及时接收部分帧来使用所述部分帧进行帧恢复。例如,在所接收包流中存在部分帧时,目的地装置902可响应于可导致高擦除率的一或多个条件(例如,使用多帧包技术)而增加最小播放延迟。例如,经更新的缓冲器参数可适当更多部分帧能够包含在缓冲器926中。因此,更多部分帧将可用于缓冲器926以用于恢复丢失帧。通过具有可用于缓冲器926中的增加数目个部分帧,可恢复更多丢失帧且可产生较少擦除。恢复更多丢失帧且减少擦除的数目可减少帧擦除率且可改进音频输出958的质量。另外,由于永久地增加缓冲器参数934可能不利地影响源装置104与目的地装置902之间的端对端延迟,因此缓冲器参数934可在不再存在一或多个条件时经复位到原始值。
由***900提供的一个特定优点为可基于对应于一或多个检测条件的一或多个指示符而动态地更新缓冲器926的缓冲器参数934。由于缓冲器参数934的增加可能为暂时的,因此所更新的参数可能不会永久地增加源装置104与目的地装置902之间的端对端延迟。可响应于一或多个所检测到条件改进而将缓冲器参数934复位回到第一(较低)值。另外,所更新参数可使得能够产生具有增加质量级的音频输出。
参考图10,展示更新去抖动缓冲器的方法的特定说明性实施方案的流程图且通常将其指定为1000。在特定实施方案中,可通过图1的目的地装置102、去抖动缓冲器126、分析器122,图9的目的地装置902、缓冲器926或缓冲管理器910中的至少一者来执行方法1000的一或多个操作。
方法1000包含:在1002处,在去抖动缓冲器处接收包。例如,图1的去抖动缓冲器126可接收第二包134,如参考图1所描述。第二包134可包含第一部分数据174及第二帧数据166,如参考图1所描述。第一部分数据174可包含对应于输入音频信号130的帧序列的第一帧184的第一帧数据164的部分副本。第二帧数据166可对应于帧序列的第二帧186。
方法1000还包含:在1004处,产生与第一数据相关联的第一帧接收时间戳。例如,图1的分析器122可产生第一接收时间戳140,如参考图1所描述。图1的分析器122还可将第一接收时间戳140存储在去抖动缓冲器126的第一缓冲条目114中,如参考图1所描述。第一缓冲条目114可对应于第一帧184,如参考图1所描述。
方法1000进一步包含:在1006处,产生与第二数据相关联的第二帧接收时间戳。例如,图1的分析器122可产生第二接收时间戳150,如参考图1所描述。图1的分析器122还可将第二接收时间戳150存储在去抖动缓冲器126的第二缓冲条目118中,如参考图1所描述。第二缓冲条目118可对应于第二帧186。第一接收时间戳140可指示比由第二接收时间戳150指示的第二时间早的第一时间,如参考图1所描述。
在一些实施方案中,方法1000可包含:接收多个包。方法1000可包含:基于多个包而确定帧擦除率、偏移值或帧集束值中的至少一者。方法1000可进一步包含:响应于帧擦除率大于或等于第一阈值、偏移值大于或等于第二阈值或帧集束值大于或等于第三阈值中的至少一者而更新与缓冲器相关联的参数。
在一些实施方案中,方法1000可包含响应于帧擦除率满足第一阈值、偏移值满足第二阈值及帧集束值满足第三阈值的确定而更新与缓冲器相关联的参数。帧集束值可基于多个包。更新参数可包含将参数的值从第一值改变到第二值。方法1000还可包含:在更新参数之后,响应于帧擦除率小于第一阈值,偏移值小于第二阈值或帧集束值小于第三阈值而将参数的值从第二值改变到第一值。
方法1000可在基于第二接收时间戳150的缓冲周期期满之前启用对第一缓冲条目114的处理。产生第一接收时间戳140可使得能够在第一帧184为待处理的下一帧时在与第二包134相关联的缓冲周期的期满之前处理第一帧184。
参考图11,展示更新去抖动缓冲器的方法的特定说明性实施方案的流程图且通常将其指定为1100。在特定实施方案中,可通过图1的目的地装置102、去抖动缓冲器126、分析器122,图9的目的地装置902、缓冲器926或缓冲管理器910中的至少一者来执行方法1100的一或多个操作。
方法1100包含:在702处,在去抖动缓冲器处接收包。例如,图1的去抖动缓冲器126可接收第二包134,如参考图1所描述。第二包134可包含对应于输入音频信号130的帧序列的第一帧184的第一部分数据174,如参考图1所描述。方法1100还包含:在1104处,检测已播放对应于第一帧的擦除。例如,图1的分析器122可检测已播放对应于第一帧184的擦除,如参考图1所描述。
方法1100进一步包含:在1106处,将第一数据存储在去抖动缓冲器的第一缓冲条目中。例如,图1的分析器122可将第一部分数据174存储在去抖动缓冲器的第一缓冲条目114中,如参考图1所描述。
方法1100可使得能够在播放对应于帧的擦除之后将帧的帧数据(例如,完整帧数据或部分数据)包含在去抖动缓冲器中。在播放对应于帧的擦除之后对帧的帧数据(例如,完整帧数据或部分数据)的处理可通过隐式地增加去抖动缓冲器的缓冲深度来启用隐式缓冲自适应。
参考图12,揭示调整缓冲器参数的方法的特定说明性实施方案的流程图且通常将其指定为1200。缓冲器参数可包含或对应于图1的播放延迟128或图9的缓冲器参数934。方法1200可由图1的源装置104、目的地装置102(例如,分析器122)或图9的目的地装置902(例如,缓冲管理器910)执行。图12说明响应于集束指示符、偏移指示符及擦除指示符的组合的缓冲器参数的调整。
方法1200包含:在1202处,确定集束指示符是大于还是等于集束阈值。集束指示符可包含或对应于图9的集束数据931、集束指示符913,或其组合。集束阈值可包含或对应于图9的集束阈值937。响应于集束指示符小于集束阈值的确定,方法1200可前进到1208。在1208处,缓冲器参数可被设置为第一值。在一些实施方案中,第一值可包含或对应于缺省值,例如值40ms,作为说明性非限制性实例。如果缓冲器参数已经设置为第一值,那么缓冲器参数的值可不改变。在将缓冲器参数设置成第一值,方法1200可前进到1202。响应于集束指示符大于或等于集束阈值的确定,方法1200可前进到1204。
方法1200包含:在1204处,确定偏移指示符是大于还是等于偏移阈值。偏移指示符可包含或对应于图1的帧偏移136、图9的偏移数据932、偏移指示符915,或其组合。偏移阈值可包含或对应于图9的偏移阈值938。响应于偏移指示符小于偏移阈值的确定,方法1200可前进到1208。响应于偏移指示符大于或等于偏移阈值的确定,方法1200前进到1206。
方法1200包含:在1206处,确定擦除指示符是大于还是等于擦除阈值。擦除指示符可包含或对应于图9的擦除数据933、擦除指示符917,或其组合。擦除阈值可包含或对应于图9的擦除阈值939。响应于擦除指示符小于擦除阈值的确定,方法1200可前进到1208。响应于擦除指示符大于或等于擦除阈值的确定,方法1200可前进到1210。
在1210处,缓冲器参数可被设置成第二值。在一些实施方案中,第二值可能大于第一值。如果缓冲器参数已经设置为第二值,那么缓冲器参数的值可不改变。在将缓冲器参数设置成第二值之后,方法1200可前进到1202。因此,方法1200说明在满足三个条件时将缓冲器参数设置成第二值且在满足小于三个条件时将缓冲器参数设置成第一值。尽管图12说明执行比较的特定次序,但可以另一次序执行比较,或比较中的一或多者可同时(例如,在同一时间)执行。
在替代实施方案中,可响应于满足三个条件中的两者而更新缓冲器参数。条件可包含大于或等于对应阈值的集束指示符、偏移指示符以及擦除指示符。例如,缓冲器参数在满足三个条件中的两者时设置成第二值且在不满足两个或对于两个条件时设置成第一值。
在另一替代实施方案中,多个阈值可用于指示符。例如,多个阈值可用于偏移指示符。替代实施方案可包含确定偏移指示符是大于还是等于第一偏移阈值以及确定偏移指示符是大于还是等于第二偏移阈值。响应于偏移指示符大于或等于第一偏移阈值的确定,缓冲器参数可被设置成第二值。如果缓冲器参数已被设置成第二值,那么缓冲器参数的值可不改变。响应于偏移指示符小于第一偏移阈值的确定,可将偏移指示符与第二偏移阈值进行比较。
响应于偏移指示符小于第二偏移阈值的确定,缓冲器参数可被设置成第一值。如果缓冲器参数已被设置成第一值,那么缓冲器参数的值可不改变。响应于偏移指示符大于或等于第二偏移阈值的确定,可将擦除指示符与擦除阈值进行比较。
响应于擦除指示符小于擦除阈值的确定,缓冲器参数可被设置成第一值。响应于擦除指示符大于或等于第一擦除阈值的确定,缓冲器参数可被设置成第二值。因此,缓冲器参数在满足三个条件(例如,偏移指示符大于或等于第一偏移阈值、偏移指示符大于或等于第二偏移阈值且擦除指示符大于或等于擦除阈值)中的两者时被设置为第二值,且在不满足两个或多于两个的条件时被设置为第一值。
方法1200启用对参数的动态调整。例如,参数可经调整(例如,增加)以使得能够将更多部分帧存储在缓冲器中且用于帧恢复操作。使得能够将更多部分帧存储在缓冲器中可减少帧擦除率。
图10到12的方法可由以下各项实施:场可编程门闸阵列(FPGA)装置,专用集成电路(ASIC),例如中央处理单元(CPU)、数字信号处理器(DSP)的处理单元,控制器,另一硬件装置,固件装置,或其任一组合。作为实例,可通过执行指令的处理器个别地或以组合方式执行图10到12的方法中的一或多者,如关于图1及9所描述。
参考图13,描绘装置(例如,无线通信装置)的特定说明性实施方案的框图且通常将其指定为1300。在各种实施方案中,装置1300可具有比图13中所说明多或少的组件。在说明性实施方案中,装置1300可对应于图1的目的地装置102、源装置104及图9的目的地装置902中的一或多者。在说明性实施方案中,装置1300可根据参考图1到12所描述的***或方法中的一或多者操作。
在特定实施方案中,装置1300包含处理器1306(例如,中央处理器(CPU))。装置1300可包含一或多个额外处理器1310(例如,一或多个数字信号处理器(DSP))。处理器1310可包含语音及音乐编解码器(CODEC)1308及回波消除器1312。语音及音乐编解码器1308可包含声码器编码器1336、声码器解码器1338,或两者。
装置1300可包含图1的存储器176及CODEC 1334。存储器176可包含分析数据120。尽管未展示,存储器176还可包含图9的历史数据(例如,931到933)、阈值936及缓冲器参数934。装置1300可包含经由收发器1350耦合到天线1342的无线控制器1340。在特定实施方案中,收发器1350可包含图1的接收器124。
装置1300可包含耦合到显示控制器1326的显示器1328。图1的扬声器142、麦克风1346或两者可耦合到CODEC 1334。CODEC 1334可包含数/模转换器1302及数/模转换器1304。在说明性实施方案中麦克风1346可对应于图1的麦克风146。在特定实施方案中,CODEC 1334可接收来自麦克风146的模拟信号,使用模/数转换器1304将所述模拟信号转换成数字信号,以及将所述数字信号提供到语音及音乐编解码器1308。语音及音乐编解码器1308可处理数字信号。在特定实施方案中,语音及音乐编解码器1308可将数字信号提供到CODEC 1334。CODEC 1334可使用数/模转换器1302将数字信号转换成模拟信号且可将所述模拟信号提供到扬声器142。
装置1300可包含分析器122、去抖动缓冲器126、语音解码器160或其组合。分析器122、去抖动缓冲器126、语音解码器160可分别包含或对应于图9的缓冲管理器910、缓冲器926、语音解码器956。在特定实施方案中,分析器122、语音解码器160或两者可被包含在处理器1306、处理器1310、CODEC 1334、语音及音乐编解码器1308,或其组合中。在特定实施方案中,分析器122、语音解码器160或两者可包含在声码器编码器1336、声码器解码器1338或两者中。
分析器122、去抖动缓冲器126、语音解码器160或其组合可用于实施更新本文中所描述的去抖动缓冲器技术的硬件实施方案。替代地或另外,可实施软件实施方案(或组合式软件/硬件实施方案)。例如,存储器176可包含可由处理器1310或装置1300的其它处理单元(例如,处理器1306、CODEC 1334,或两者)执行的指令1356。指令1356可包含可由处理器1306及/或处理器1310执行以执行图10到12的方法中的一或多者的一或多个指令。指令1356可执行以实施由分析器122、语音解码器160或两者所为的操作。
在特定实施方案中,装置1300可被包含在***级封装或单片***装置1322中。在特定实施方案中,分析器122、去抖动缓冲器126、语音解码器160、存储器176、处理器1306、处理器1310、显示控制器1326、CODEC 1334及无线控制器1340被包含在***级封装或***单晶片装置1322。在特定实施方案中,输入装置1330及电源1344耦合到单片***装置1322。此外,在特定实施方案中,如在图13中所说明,显示器1328、输入装置1330、扬声器142、麦克风1346、天线1342及电源1344在单片***装置1322外部。在特定实施方案中,显示器1328、输入装置1330、扬声器142、麦克风1346、天线1342及电源1344中的每一者可耦合到单片***装置1322的组件,例如接口或控制器。
装置1300可包含耳机、移动通信装置、智能电话、蜂窝式电话、膝上型计算机、计算机、平板、个人数字助理、显示装置、电视、游戏主控台、音乐播放器、无线电、数字视频播放器、数字视频光盘(DVD)播放器、调谐器、相机、导航装置或其任何组合。
在说明性实施方案中,处理器1310可操作以执行参考图1到12所描述的方法或操作中的全部或部分。作为说明性实例,处理器1310可经配置以执行存储在存储器176中的软件(例如,一或多个指令1356的程序)。例如,处理器1310可经配置以根据图10的方法1000、图11的方法1100、图12的方法1200或其组合操作。为了说明,处理器1310可经配置以执行致使处理器1310执行处理去抖动缓冲器处的第一包的操作的指令1356,第一包包含第一数据及第二数据。第一数据包含对应于帧序列的第一帧的第一帧数据及对应于帧序列的第二帧的第二数据的部分副本。处理器还可执行产生与第一数据现骨干了的第一帧接收时间戳且产生与第二数据相关联的第二帧接收时间戳的操作。所述第一帧接收时间戳指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。处理器还可执行处理第一数据及第二数据以产生经处理语音信号的操作。
作为另一说明性实例,麦克风1346可捕获对应于用户语音信号的音频信号。ADC1304可将来自模拟波形的所捕获的音频信号转换成由数字音频样本构成的数字信号。处理器1310可处理数字音频样本。增益调整其可调整数字音频样本。回波消除器1312可减少可已由扬声器142进入麦克风1346的输出形成的回波。
声码器编码器1336可压缩对应于经处理语音信号的数字音频样本且可形成包序列(例如,数字音频样本的经压缩位的表示)。包序列可存储在存储器176中。序列的一或多个包可包含序列的其它包的部分副本。收发器1350可调制序列的每一包的一些形式(例如,可附加到包的其它信息)且可经由天线1342发射经调制数据。
作为又一实例,天线1342可接收对应于由另一装置经由网络发送的包序列的传入包。所接收包可对应于用户语音信号的帧序列。
分析器122可将传入包存储在去抖动缓冲器126(例如,去抖动缓冲器)中。分析器122可将传入包中的一或多者的多个副本存储在去抖动缓冲器126中。例如,分析器122可将对应于第一帧的第一缓冲条目中的包的第一副本及对应于第二帧的第二缓冲条目的包的第二副本存储在去抖动缓冲器126中。包可包含第一帧的帧数据的部分副本且可包含第二帧的帧数据的完整副本。在另一实例中,去抖动缓冲器可经配置以接收包含第一数据及第二数据的包。第一数据可包含对应于帧序列中的第一帧的第一帧数据的部分副本。第二数据可对应于帧序列中的第二帧。分析器122可经配置以响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳以及产生与所述第二数据相关联的第二帧接收时间戳。分析器122可经配置以基于第二帧接收时间戳且基于第一帧与第二帧之间的帧偏移而产生第一帧接收时间戳。例如,分析器122可基于以下方程式而确定第一接收时间戳:FRTS=PRTS–(FO*FPD)–1毫秒,其中FRTS=第一接收时间戳,PRTS=第二包的接收时间戳,FO=帧偏移,且FPD=帧播放持续时间。分析器122可经配置以将第一帧接收时间戳存储在第一缓冲条目中且可经配置以将第二帧接收时间戳存储在第二缓冲条目中。所述第一帧接收时间戳可指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。
包还可指示第二帧的第二产生时间戳。分析器122可经进一步配置以基于帧偏移及第二产生时间戳而确定第一帧的第一产生时间戳且响应于确定第一产生时间戳超过特定帧的产生时间戳而将第一帧接收时间戳存储在第一缓冲条目中,特定帧为最近经处理帧。例如,分析器122可基于以下方程式而确定第一产生时间戳:第一产生时间戳=(第二产生时间戳158–(帧偏移136*样本数目/帧))。
分析器122可基于播放延迟及第一帧接收时间戳或第一产生时间戳而处理第一缓冲条目。分析器122可将第一帧的帧数据的部分副本或包的第一副本提供到声码器解码器1338。声码器解码器1338可解压缩部分副本。
经解压缩波形可被称作经重建构音频样本。回波消除器1312可将回波从经重建构音频样本移除。语音解码器160可基于经重建构音频样本而产生经处理语音信号。增益调整器可放大或抑制经处理语音信号。DAC 1102可将经处理语音信号从数字信号转换成模拟波形且可将经转换信号提供到扬声器142。
分析器122可将帧的帧数据存储在去抖动缓冲器126中而与检测到已播放对应于帧的擦除无关。在播放擦除之后处理帧可通过隐式地增加去抖动缓冲器126的深度来启用隐式缓冲自适应。另外,分析器122可响应于将集束指示符、偏移指示符、擦除指示符或其组合与一或多个阈值进行比较而调整缓冲器参数934。
结合所描述实施方案,设备可可包含用于接收包含第一数据及第二数据的包的装置。例如,用于接收包的装置可包含图1的接收器124、图9的接收器924、收发器1350、一或多个其它装置、电路、模块、或经配置以接收包的指令,或其组合。第一数据可包含对应于帧序列的第一帧的第一帧数据的部分副本。第二数据可对应于帧序列的第二帧。
设备还包含用于执行缓冲管理的装置,包含用于响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳的装置以及用于响应于接收到所述包而产生与所述第二数据相关联的第二帧接收时间戳的装置。例如,用于执行缓冲管理的装置、用于产生第一帧接收时间戳的装置以及用于产生第二帧接收时间戳的装置可包含分析器122、缓冲管理器910、处理器1306、处理器1310、CODEC 1334或其组合。所述第一帧接收时间戳可指示比由所述第二帧接收时间戳指示的第二时间早的第一时间。在一些实施方案中,用于执行缓冲管理的装置可进一步执行将第一帧接收时间戳存储在去抖动缓冲器的第一缓冲条目中且将第二帧接收时间戳存储在去抖动缓冲器的第二缓冲条目中的功能。第一缓冲条目可对应于第一帧。第二缓冲条目可对应于第二帧。用于执行缓冲管理的装置可进一步执行处理第一缓冲条目及处理第二缓冲条目的功能。在说明性实施方案中,用于执行缓冲管理的装置可经进一步配置以响应于一或多个指示符满足对应阈值而更新缓冲器参数。设备还可包含经配置以基于第一帧数据及第二帧数据而产生经处理语音信号的用于解码语音的装置。例如,用于解码语音的装置可包含或对应于图1的语音解码器160、图9的语音解码器956、图13的声码器解码器1338,或其组合。在说明性实施例中,用于解码语音的装置可进一步执行解压缩第一帧数据且基于经解压缩第一帧数据而产生经处理语音信号的功能。
所揭示方面中的一或多者可实施于***或设备(例如装置1300)中,其可包含通信装置、固定位置数据单元、移动位置数据单元、移动电话、蜂窝式电话、卫星电话、计算机、平板计算机、便携式计算机、显示装置、媒体播放器,或桌上型计算机。替代地或另外,装置1300可包含机顶盒、娱乐单元、导航装置、个人数字助理(PDA)、监视器、计算机监视器、电视、调谐器、无线电、卫星无线电、音乐播放器、数字音乐播放器、便携式音乐播放器、视频播放器、数字视频播放器、数字视频光盘(DVD)播发器、便携式数字视频播发器、卫星、运载工具、包含处理器或存储或检索数据或计算机指令的任何其它装置,或其组合。作为另一说明性非限制性实例,***或设备可包含远程单元,例如手持式个人通信***(PCS)单元、例如具有全球定位***(GPS)能力的装置的便携式数据单元、读取计量设备或包含处理器或存储或检索数据或计算机指令的任何其它装置,或其任何组合。
尽管图1到13中的一或多者可说明根据本发明的教示的***、设备及/或方法,但本发明并不限于这些所说明***、设备及/或方法。如本文中所说明或所描述的图1到13中的任一者的一或多个功能或组件可与图1到13的另一功能或组件的一或多个其它部分组合。因此,本文中所描述的任何单个实例不应揭示为限制性且本发明的实例可经适合组合而不脱离本发明的教示。作为实例,图10到12的方法中的一或多者可由图13的处理器1310单独地或以组合方式执行。为了说明,图10到12的方法中的一者的部分可与图10到12的方法中的一者的第二部分组合。另外,参考图10到12所描述的一或多个操作可为任选的,可至少部分地同时执行,及/或可以不同于所展示或所描述次序的次序执行。
此外,所属领域的技术人员将进一步了解,结合本文中所揭示的实施方案所描述的各种说明性逻辑块、配置、模块、电路及算法步骤可实施为电子硬件、由处理器执行的计算机软件或两者的组合。各种说明性组件、块、配置、模块、电路及步骤已在上文大体就其功能方面加以描述。此功能性是实施为硬件还是处理器可执行指令取决于强加于整个***的特定应用及设计约束。所属领域的技术人员可针对每一特定应用以变化方式实施所描述功能性,此些实施方案决策不应解释为导致对本发明的范围的脱离。
结合本文中的揭示实施方案所描述的方法或算法的步骤可直接以硬件、由处理器执行的软件模块或两者的组合体现。软件模块可驻存于随机存取存储器(RAM)、快闪存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、寄存器、硬盘、可拆卸磁盘、光盘只读存储器(CD-ROM)或此项技术中已知的任一其它形式的非暂时存储媒体中。示范性存储媒体耦合到处理器使得处理器可从存储媒体读取信息及将信息写入到至存储媒体。在替代方案中,所述存储媒体可与处理器成整体。处理器及存储媒体可驻存于专用集成电路(ASIC)中。ASIC可驻存于计算装置或用户终端中。在替代方案中,处理器及存储媒体可作为离散组件驻留于计算装置或用户终端中。
所揭示方面的前述描述经提供以使得所属领域的技术人员能够制作或使用所揭示方面。在不脱离本发明的范围的情况下,对这些方面的各种修改对于所属领域的技术人员来说将易于显而易见,且本文中所定义的原理可应用于其它方面。因此,本发明并不意欲限于本文中所展示的方面,而是欲赋予其与以下权利要求书所定义的原理及新颖特征相一致的最宽广范围。

Claims (28)

1.一种装置,其包括:
去抖动缓冲器,其经配置以接收包,所述包包含第一数据及第二数据,其中所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本,且其中所述第二数据对应于所述帧序列的第二帧;
时钟,其经配置以产生时钟输出;
分析器,其经配置以响应于接收到所述包:
基于所述时钟输出产生与所述第二数据相关联的第二帧接收时间戳;且
产生与所述第一数据相关联的第一帧接收时间戳,其中所述第一帧接收时间戳指示比由所述第二帧接收时间戳所指示的第二时间早的第一时间;以及
语音解码器,其经配置以:
基于所述第一数据在与所述第二数据相关联的第二缓冲周期期满之前期满的第一缓冲周期期满之后产生第一输出,其中所述第一缓冲周期的所述期满是基于所述第一帧接收时间戳,且所述第二缓冲周期的所述期满是基于所述第二帧接收时间戳;以及
在所述第二缓冲周期的所述期满之后基于所述第二数据产生第二输出。
2.根据权利要求1所述的装置,其中所述分析器经进一步配置以基于所述第二帧接收时间戳且基于所述第一帧与所述第二帧之间的帧偏移而产生所述第一帧接收时间戳。
3.根据权利要求1所述的装置,其进一步包括存储器,所述存储器经配置以存储最近已由所述语音解码器处理的特定帧的产生时间戳,其中所述分析器经进一步配置以确定所述第一帧的第一产生时间戳。
4.根据权利要求3所述的装置,其中所述包指示所述第二帧的第二产生时间戳,其中基于帧偏移及所述第二产生时间戳而确定所述第一产生时间戳,且其中所述分析器经进一步配置以响应于确定所述第一产生时间戳超过所述特定帧的所述产生时间戳而将所述第一帧接收时间戳存储在第一缓冲条目中。
5.一种方法,其包括:
在装置的去抖动缓冲器处,接收包,所述包包含第一数据及第二数据,其中所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本,且其中所述第二数据对应于所述帧序列的第二帧;以及
响应于接收到所述包:
基于所述装置的时钟的时钟输出产生与所述第二数据相关联的第二帧接收时间戳;
产生与所述第一数据相关联的第一帧接收时间戳,其中所述第一帧接收时间戳指示比由所述第二帧接收时间戳所指示的第二时间早的第一时间;
基于所述第一数据在与所述第二数据相关联的第二缓冲周期期满之前期满的第一缓冲周期期满之后产生第一输出,其中所述第一缓冲周期的所述期满是基于所述第一帧接收时间戳,且所述第二缓冲周期的所述期满是基于所述第二帧接收时间戳;以及
在所述第二缓冲周期的所述期满之后基于所述第二数据产生第二输出。
6.根据权利要求5所述的方法,其中所述帧序列对应于音频信号。
7.根据权利要求5所述的方法,其进一步包括在所述去抖动缓冲器中将所述包进行双排队,其中将所述包进行双排队包括:
将所述第一数据及所述第一帧接收时间戳存储在所述去抖动缓冲器的第一缓冲条目中,所述第一缓冲条目对应于所述第一帧,以及
将所述第二数据及所述第二帧接收时间戳存储在所述去抖动缓冲器的第二缓冲条目中,所述第二缓冲条目对应于所述第二帧。
8.根据权利要求7所述的方法,其中将所述第一帧接收时间戳存储在所述第一缓冲条目中使得能够在对应于所述第二帧的第二缓冲周期期满之前处理所述第一帧的所述部分副本。
9.根据权利要求5所述的方法,其进一步包括:
响应于确定所述去抖动缓冲器中不存在所述第一帧而扩展静默周期,其中所述第一帧为在所述静默周期之后话音突发的帧,且其中所述静默周期对应于无音频输入的周期;以及
在扩展所述静默周期之后处理所述第一帧。
10.根据权利要求5所述的方法,其进一步包括:响应于确定所述去抖动缓冲器中不存在所述第一帧数据且所述包包含所述第一帧数据的所述部分副本:
将所述包的第一副本存储在第一存储器位置处,其中所述去抖动缓冲器的第一缓冲条目指示所述第一存储器位置;以及
将所述包的第二副本存储在第二存储器位置处,其中所述去抖动缓冲器的第二缓冲条目指示所述第二存储器位置。
11.根据权利要求10所述的方法,其进一步包括:
将与所述第一缓冲条目相关联的第一旗标设置成第一值以指示所述第一缓冲条目对应于帧的数据的部分副本;以及
将与所述第二缓冲条目相关联的第二旗标设置成第二值以指示所述第二缓冲条目对应于帧的数据的完整副本,且其中所述第二数据包含所述第二帧的第二帧数据的完整副本。
12.根据权利要求5所述的方法,其进一步包括:
基于所述第一帧接收时间戳及特定播放延迟而确定对应于所述第一帧的第一缓冲周期;以及
基于所述第二帧接收时间戳及所述特定播放延迟而确定对应于所述第二帧的第二缓冲周期,
其中所述第一帧的第一播放时间比所述第二帧的第二播放时间早。
13.根据权利要求5所述的方法,其进一步包括:在接收到所述包之前且响应于确定所述去抖动缓冲器中不存在所述第一帧:
播放擦除;以及
更新缓冲时间线的值。
14.根据权利要求5所述的方法,其进一步包括:
将所述第一数据存储在所述去抖动缓冲器的第一缓冲条目中,所述第一缓冲条目对应于所述第一帧;
接收包含所述第一帧数据的第二包;以及
更新所述去抖动缓冲器的所述第一缓冲条目以用所述第一帧数据替换所述第一数据。
15.根据权利要求14所述的方法,其进一步包括:
将所述第一帧接收时间戳存储在所述去抖动缓冲器的所述第一缓冲条目中;
确定所述第二包的经更新接收时间戳;以及
更新所述第一缓冲条目以用所述第二包的所述经更新接收时间戳来替换所述第一帧接收时间戳。
16.根据权利要求5所述的方法,其进一步包括:
接收多个包;
基于所述多个包而确定帧擦除率、偏移值或帧集束值中的至少一者;以及
响应于所述帧擦除率大于或等于第一阈值、所述偏移值大于或等于第二阈值或所述帧集束值大于或等于第三阈值中的至少一者而更新与缓冲器相关联的参数。
17.根据权利要求5所述的方法,其进一步包括:
接收多个包;以及
响应于帧擦除率满足第一阈值、偏移值满足第二阈值及帧集束值满足第三阈值的确定而更新与缓冲器相关联的参数,其中所述帧集束值是基于所述多个包。
18.根据权利要求17所述的方法,其中更新所述参数包括将所述参数的值从第一值改变到第二值,且所述方法进一步包括在更新所述参数之后,响应于所述帧擦除率小于所述第一阈值、所述偏移值小于所述第二阈值或所述帧集束值小于所述第三阈值而将所述参数的所述值从所述第二值改变到所述第一值。
19.一种计算机可读存储装置,其存储指令,所述指令在由处理器执行时致使所述处理器执行操作,所述操作包括:
在装置的去抖动缓冲器处,处理包,所述包包含第一数据及第二数据,其中所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本,且其中所述第二数据对应于所述帧序列的第二帧;以及
响应于处理所述包:
基于所述装置的时钟的时钟输出产生与所述第二数据相关联的第二帧接收时间戳;
产生与所述第一数据相关联的第一帧接收时间戳,其中所述第一帧接收时间戳指示比由所述第二帧接收时间戳所指示的第二时间早的第一时间;
基于所述第一数据在与所述第二数据相关联的第二缓冲周期期满之前期满的第一缓冲周期期满之后产生第一输出,其中所述第一缓冲周期的所述期满是基于所述第一帧接收时间戳,且所述第二缓冲周期的所述期满是基于所述第二帧接收时间戳;以及
在所述第二缓冲周期的所述期满之后基于所述第二数据产生第二输出。
20.根据权利要求19所述的计算机可读存储装置,其中产生所述第一帧接收时间戳包括:
使帧偏移乘以帧播放持续时间以获得持续时间;以及
从所述第二帧接收时间戳减去至少所述持续时间。
21.根据权利要求19所述的计算机可读存储装置,其进一步包括:
确定所述第一帧的第一产生时间戳;以及
响应于确定所述第一产生时间戳超过所述帧序列的前一帧的产生时间戳而将所述第一帧接收时间戳存储在第一缓冲条目中,其中所述前一帧为所述帧序列的最近经处理帧。
22.根据权利要求21所述的计算机可读存储装置,其进一步包括基于所述第一帧的所述第一产生时间戳超过所述前一帧的所述产生时间戳而确定所述前一帧在所述帧序列中比所述第一帧早。
23.根据权利要求21所述的计算机可读存储装置,其中产生所述第一产生时间戳包括:
使所述第一帧与所述第二帧之间的帧偏移乘以样本数目/帧以产生第一值;以及
从所述第二帧的第二产生时间戳减去所述第一值,其中所述包包含所述第二产生时间戳的指示。
24.根据权利要求19所述的计算机可读存储装置,其中所述包包含帧偏移的指示、样本数目/帧或两者。
25.根据权利要求19所述的计算机可读存储装置,其中所述操作进一步包括响应于确定所述去抖动缓冲器中不存在所述第一帧而将所述第一帧接收时间戳存储在第一缓冲条目中。
26.根据权利要求19所述的计算机可读存储装置,其中所述操作进一步包括将所述第一帧接收时间戳存储在第一缓冲条目中而与缓冲时间线的值无关。
27.一种设备,其包括:
用于接收包的装置,所述包包含第一数据及第二数据,其中所述第一数据包含对应于帧序列的第一帧的第一帧数据的部分副本,且其中所述第二数据对应于所述帧序列的第二帧;
用于产生时钟输出的装置;
用于执行缓冲管理的装置,其包括:
用于响应于接收到所述包而产生与所述第二数据相关联的第二帧接收时间戳的装置,所述第二帧接收时间戳是基于所述时钟输出;以及
用于响应于接收到所述包而产生与所述第一数据相关联的第一帧接收时间戳的装置,其中所述第一帧接收时间戳指示比由所述第二帧接收时间戳所指示的第二时间早的第一时间;
用于基于所述第一数据在与所述第二数据相关联的第二缓冲周期期满之前期满的第一缓冲周期期满之后产生第一输出的装置,其中所述第一缓冲周期的所述期满是基于所述第一帧接收时间戳,且所述第二缓冲周期的所述期满是基于所述第二帧接收时间戳;以及
用于在所述第二缓冲周期的所述期满之后基于所述第二数据产生第二输出的装置。
28.根据权利要求27所述的设备,其中所述用于接收所述包的装置、所述用于产生所述时钟输出的装置、所述用于产生所述第一输出的装置、所述用于产生所述第二输出的装置以及所述用于执行缓冲管理的装置集成到以下各项中的至少一者中:通信装置、计算机、音乐播放器、视频播放器、娱乐单元、导航装置、个人数字助理PDA、解码器或机顶盒。
CN201680021052.4A 2015-04-14 2016-03-10 去抖动缓冲器更新 Active CN107534589B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201562147431P 2015-04-14 2015-04-14
US201562147386P 2015-04-14 2015-04-14
US62/147,431 2015-04-14
US62/147,386 2015-04-14
US14/829,560 2015-08-18
US14/829,560 US9948578B2 (en) 2015-04-14 2015-08-18 De-jitter buffer update
PCT/US2016/021869 WO2016167904A1 (en) 2015-04-14 2016-03-10 De-jitter buffer update

Publications (2)

Publication Number Publication Date
CN107534589A CN107534589A (zh) 2018-01-02
CN107534589B true CN107534589B (zh) 2021-02-05

Family

ID=55587388

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680021052.4A Active CN107534589B (zh) 2015-04-14 2016-03-10 去抖动缓冲器更新

Country Status (6)

Country Link
US (1) US9948578B2 (zh)
EP (1) EP3284088A1 (zh)
JP (1) JP6442079B2 (zh)
KR (1) KR101877699B1 (zh)
CN (1) CN107534589B (zh)
WO (1) WO2016167904A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3228037B1 (en) * 2015-10-01 2018-04-11 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for removing jitter in audio data transmission
US10582258B2 (en) * 2015-12-26 2020-03-03 Intel Corporation Method and system of rendering late or early audio-video frames
US9967306B1 (en) * 2016-09-08 2018-05-08 Sprint Spectrum L.P. Prioritized transmission of redundancy data for packetized voice communication
DE102017127431A1 (de) * 2016-11-21 2018-05-24 Hirschmann Automation And Control Gmbh Messverfahren zur bedarfsgerechten Bestimmung von Durchlaufzeiten in einem Datennetzwerk
US10616123B2 (en) * 2017-07-07 2020-04-07 Qualcomm Incorporated Apparatus and method for adaptive de-jitter buffer
KR102391799B1 (ko) * 2017-10-19 2022-04-29 삼성전자주식회사 유니캐스트 기반 멀티미디어 서비스 방법 및 장치
CN107948735B (zh) * 2017-12-06 2020-09-25 北京乐我无限科技有限责任公司 一种视频播放方法、装置及电子设备
US10951390B2 (en) * 2018-02-05 2021-03-16 Arris Enterprises Llc Two-stage IP de-jitter algorithm in a multiplexer for a group of statistically multiplexed single program transport streams
CN108933786B (zh) * 2018-07-03 2021-04-09 公安部第一研究所 用于改善无线数字通信***接收方密文语音质量的方法
CN110098977B (zh) * 2019-04-12 2020-11-06 中国科学院声学研究所 网络数据包按序存储方法、计算机设备和存储介质
WO2021061935A1 (en) * 2019-09-25 2021-04-01 MIXHalo Corp. Multi-stride packet payload mapping for robust transmission of data
US11889128B2 (en) * 2021-01-05 2024-01-30 Qualcomm Incorporated Call audio playback speed adjustment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449545A (zh) * 2006-05-19 2009-06-03 卢森特技术有限公司 使用抖动缓冲器通信及处理voip数据包的方法和***
CN101873255A (zh) * 2009-04-27 2010-10-27 阿瓦雅公司 分组网络中的相关媒体流的动态缓冲和同步
CN102761468A (zh) * 2011-04-26 2012-10-31 中兴通讯股份有限公司 一种自适应调整语音抖动缓存区的方法及***
CN103873382A (zh) * 2012-12-17 2014-06-18 马维尔国际有限公司 数据帧缓冲方法和设备

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862298B1 (en) 2000-07-28 2005-03-01 Crystalvoice Communications, Inc. Adaptive jitter buffer for internet telephony
JP2003134076A (ja) * 2001-10-19 2003-05-09 Fujitsu Ltd スタッフ同期方式における受信装置
US7424026B2 (en) 2004-04-28 2008-09-09 Nokia Corporation Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal
US7590047B2 (en) 2005-02-14 2009-09-15 Texas Instruments Incorporated Memory optimization packet loss concealment in a voice over packet network
KR100789902B1 (ko) * 2005-12-09 2008-01-02 한국전자통신연구원 다중 프레임을 갖는 브이오아이피 패킷 처리 장치 및 그방법
US20080101398A1 (en) * 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
US20080101355A1 (en) * 2006-10-31 2008-05-01 Nokia Corporation Transmission scheme dependent control of a frame buffer
WO2008053806A1 (fr) * 2006-10-31 2008-05-08 Panasonic Corporation Dispositif de multiplexage, circuit intégré, procédé de multiplexage, programme de multiplexage, support d'enregistrement lisible par ordinateur avec programme de multiplexage enregistré et support d'enregistrement lisible par ordinateur avec flux de multiplexage enregistré
US8111720B2 (en) 2007-01-09 2012-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus to indicate maximum scheduling delay for jitter buffer implementations
US8340121B2 (en) * 2007-08-22 2012-12-25 Qualcomm Incorporated Method and apparatus for transmission of circuit switched voice over packet switched networks
CN101426228B (zh) * 2008-11-28 2012-01-04 上海华为技术有限公司 语音包的发送方法、装置和***
JP5229042B2 (ja) * 2009-03-25 2013-07-03 沖電気工業株式会社 ジッタバッファ制御装置、方法及びプログラム、並びに情報処理装置
US8352252B2 (en) * 2009-06-04 2013-01-08 Qualcomm Incorporated Systems and methods for preventing the loss of information within a speech frame
EP2302845B1 (en) * 2009-09-23 2012-06-20 Google, Inc. Method and device for determining a jitter buffer level
CN102130764A (zh) * 2010-12-01 2011-07-20 华为技术有限公司 时间同步信息传送方法、***和装置
US9047863B2 (en) * 2012-01-12 2015-06-02 Qualcomm Incorporated Systems, methods, apparatus, and computer-readable media for criticality threshold control
US9275644B2 (en) * 2012-01-20 2016-03-01 Qualcomm Incorporated Devices for redundant frame coding and decoding
US20140185610A1 (en) 2013-01-03 2014-07-03 Qualcomm Incorporated Selectively patching erasures in circiut-switched calls whose frame erasure rate rises above a threshold by establishing and synchronizing a voip stream
SG10201708531PA (en) * 2013-06-21 2017-12-28 Fraunhofer Ges Forschung Time Scaler, Audio Decoder, Method and a Computer Program using a Quality Control
CA2964362C (en) * 2013-06-21 2020-03-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Jitter buffer control, audio decoder, method and computer program
US10614816B2 (en) * 2013-10-11 2020-04-07 Qualcomm Incorporated Systems and methods of communicating redundant frame information
US9680507B2 (en) * 2014-07-22 2017-06-13 Qualcomm Incorporated Offset selection for error correction data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449545A (zh) * 2006-05-19 2009-06-03 卢森特技术有限公司 使用抖动缓冲器通信及处理voip数据包的方法和***
CN101873255A (zh) * 2009-04-27 2010-10-27 阿瓦雅公司 分组网络中的相关媒体流的动态缓冲和同步
CN102761468A (zh) * 2011-04-26 2012-10-31 中兴通讯股份有限公司 一种自适应调整语音抖动缓存区的方法及***
CN103873382A (zh) * 2012-12-17 2014-06-18 马维尔国际有限公司 数据帧缓冲方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Universal Mobile Telecommunications System(UMTS);LTE;Codec for Enhanced Voice Services(EVS);Jitter buffer management (3GPP TS 26.448 version 12.1.0 Release 12)";3GPP;《3GPP》;20150101;第8-21页 *

Also Published As

Publication number Publication date
JP6442079B2 (ja) 2018-12-19
US9948578B2 (en) 2018-04-17
KR101877699B1 (ko) 2018-07-12
US20160308791A1 (en) 2016-10-20
WO2016167904A1 (en) 2016-10-20
JP2018514804A (ja) 2018-06-07
CN107534589A (zh) 2018-01-02
KR20170137750A (ko) 2017-12-13
EP3284088A1 (en) 2018-02-21

Similar Documents

Publication Publication Date Title
CN107534589B (zh) 去抖动缓冲器更新
US10454811B2 (en) Apparatus and method for de-jitter buffer delay adjustment
US20200266839A1 (en) Media Controller with Buffer Interface
US7450601B2 (en) Method and communication apparatus for controlling a jitter buffer
EP3175567B1 (en) System and method of redundancy based packet transmission error recovery
EP2936770B1 (en) Apparatus and methods for controlling jitter buffer
US10735120B1 (en) Reducing end-to-end delay for audio communication
US10148391B2 (en) Method and apparatus for removing jitter in audio data transmission
JP2006238445A (ja) 仮想ジッタ・バッファおよび時間スケール修正を使用した、VoiceoverIP通信ネットワークにおいてネットワーク・ジッタを処理する方法および装置
US20170187635A1 (en) System and method of jitter buffer management
CN107978325B (zh) 语音通信方法和设备、操作抖动缓冲器的方法和设备
EP3343851B1 (en) Method and device for regulating playing delay
JP5806719B2 (ja) 音声パケット再生装置とその方法とプログラム
BR112017001088B1 (pt) Dispositivo e método de recuperação de erro de transmissão de pacote com base em redundância

Legal Events

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