CN103888381A - 用于控制抖动缓冲器的装置和方法 - Google Patents
用于控制抖动缓冲器的装置和方法 Download PDFInfo
- Publication number
- CN103888381A CN103888381A CN201210560747.3A CN201210560747A CN103888381A CN 103888381 A CN103888381 A CN 103888381A CN 201210560747 A CN201210560747 A CN 201210560747A CN 103888381 A CN103888381 A CN 103888381A
- Authority
- CN
- China
- Prior art keywords
- frame
- wobble buffer
- length
- controlling
- long
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/20—Arrangements for detecting or preventing errors in the information received using signal quality detector
- H04L1/205—Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W16/00—Network planning, e.g. coverage or traffic planning tools; Network deployment, e.g. resource partitioning or cells structures
- H04W16/18—Network planning tools
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/02—Arrangements for optimising operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/18—Selecting a network or a communication service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/04—Wireless resource allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W72/00—Local resource management
- H04W72/12—Wireless traffic scheduling
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L1/00—Supplying electric power to auxiliary equipment of vehicles
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L2210/00—Converter types
- B60L2210/30—AC to DC converters
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L2210/00—Converter types
- B60L2210/40—DC to AC converters
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L53/00—Methods of charging batteries, specially adapted for electric vehicles; Charging stations or on-board charging equipment therefor; Exchange of energy storage elements in electric vehicles
- B60L53/10—Methods of charging batteries, specially adapted for electric vehicles; Charging stations or on-board charging equipment therefor; Exchange of energy storage elements in electric vehicles characterised by the energy transfer between the charging station and the vehicle
- B60L53/14—Conductive energy transfer
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60L—PROPULSION OF ELECTRICALLY-PROPELLED VEHICLES; SUPPLYING ELECTRIC POWER FOR AUXILIARY EQUIPMENT OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRODYNAMIC BRAKE SYSTEMS FOR VEHICLES IN GENERAL; MAGNETIC SUSPENSION OR LEVITATION FOR VEHICLES; MONITORING OPERATING VARIABLES OF ELECTRICALLY-PROPELLED VEHICLES; ELECTRIC SAFETY DEVICES FOR ELECTRICALLY-PROPELLED VEHICLES
- B60L55/00—Arrangements for supplying energy stored within a vehicle to a power network, i.e. vehicle-to-grid [V2G] arrangements
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M1/00—Details of apparatus for conversion
- H02M1/0067—Converter structures employing plural converter units, other than for parallel operation of the units on a single load
- H02M1/007—Plural converter units in cascade
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M1/00—Details of apparatus for conversion
- H02M1/14—Arrangements for reducing ripples from DC input or output
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M1/00—Details of apparatus for conversion
- H02M1/42—Circuits or arrangements for compensating for or adjusting power factor in converters or inverters
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M5/00—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases
- H02M5/40—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases with intermediate conversion into DC
- H02M5/42—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases with intermediate conversion into DC by static converters
- H02M5/44—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases with intermediate conversion into DC by static converters using discharge tubes or semiconductor devices to convert the intermediate DC into AC
- H02M5/453—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases with intermediate conversion into DC by static converters using discharge tubes or semiconductor devices to convert the intermediate DC into AC using devices of a triode or transistor type requiring continuous application of a control signal
- H02M5/458—Conversion of AC power input into AC power output, e.g. for change of voltage, for change of frequency, for change of number of phases with intermediate conversion into DC by static converters using discharge tubes or semiconductor devices to convert the intermediate DC into AC using devices of a triode or transistor type requiring continuous application of a control signal using semiconductor devices only
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M7/00—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output
- H02M7/42—Conversion of DC power input into AC power output without possibility of reversal
- H02M7/44—Conversion of DC power input into AC power output without possibility of reversal by static converters
- H02M7/48—Conversion of DC power input into AC power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
- H02M7/4807—Conversion of DC power input into AC power output without possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode having a high frequency intermediate AC stage
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02M—APPARATUS FOR CONVERSION BETWEEN AC AND AC, BETWEEN AC AND DC, OR BETWEEN DC AND DC, AND FOR USE WITH MAINS OR SIMILAR POWER SUPPLY SYSTEMS; CONVERSION OF DC OR AC INPUT POWER INTO SURGE OUTPUT POWER; CONTROL OR REGULATION THEREOF
- H02M7/00—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output
- H02M7/66—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output with possibility of reversal
- H02M7/68—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output with possibility of reversal by static converters
- H02M7/72—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output with possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode
- H02M7/79—Conversion of AC power input into DC power output; Conversion of DC power input into AC power output with possibility of reversal by static converters using discharge tubes with control electrode or semiconductor devices with control electrode using devices of a triode or transistor type requiring continuous application of a control signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2416—Real-time traffic
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02B—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO BUILDINGS, e.g. HOUSING, HOUSE APPLIANCES OR RELATED END-USER APPLICATIONS
- Y02B70/00—Technologies for an efficient end-user side electric power management and consumption
- Y02B70/10—Technologies improving the efficiency by using switched-mode power supplies [SMPS], i.e. efficient power electronics conversion e.g. power factor correction or reduction of losses in power supplies or efficient standby modes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/60—Other road transportation technologies with climate change mitigation effect
- Y02T10/70—Energy storage systems for electromobility, e.g. batteries
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/60—Other road transportation technologies with climate change mitigation effect
- Y02T10/7072—Electromobility specific charging systems or methods for batteries, ultracapacitors, supercapacitors or double-layer capacitors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/60—Other road transportation technologies with climate change mitigation effect
- Y02T10/72—Electric energy management in electromobility
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02T90/10—Technologies relating to charging of electric vehicles
- Y02T90/14—Plug-in electric vehicles
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/12—Monitoring or controlling equipment for energy generation units, e.g. distributed energy generation [DER] or load-side generation
- Y04S10/126—Monitoring or controlling equipment for energy generation units, e.g. distributed energy generation [DER] or load-side generation the energy generation units being or involving electric vehicles [EV] or hybrid vehicles [HEV], i.e. power aggregation of EV or HEV, vehicle to grid arrangements [V2G]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Multimedia (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了一种用于控制抖动缓冲器的装置和方法。在一种实施方式中,用于控制抖动缓冲器的装置包括:用于估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值的语音段间延迟抖动估计器;以及用于基于抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节抖动缓冲器的长度的抖动缓冲器控制器。
Description
技术领域
本申请总体上涉及音频信号处理。更具体而言,本申请的实施方式涉及一种用于控制抖动缓冲器的装置和方法。
背景技术
由于高度不均一的网络条件,通过分组网络进行的语音传输会遭遇延迟的波动,通常称为抖动。在基于IP的网络中,固定的延迟可以归因于由于材料和距离而导致的算法、处理和传播延迟,然而,可变延迟是由于IP网络信息业务量的波动、互联网上不同的传输路径等而引起的。VoIP(互联网语音协议)接收机通常依赖于“抖动缓冲器”来对抗抖动的负面影响。在此,数据包(分组)延迟波动或者抖动被定义为在正常的数据包速率的情况下数据包的实际到达时间与参考时钟之间的时间差。通过引入附加的“播放(play out)”延迟,抖动缓冲器旨在将到达数据包的不均匀流转换成规则的数据包流,使得延迟波动不会对最终用户造成可感知的质量下降。语音通信对于延迟非常敏感,其中,对于正常的通话,单向延迟应当被保持为低于150ms,超过400ms被认为是不可接受的(ITU建议书G.114)。因此,由抖动缓冲器添加的附加延迟需要尽可能小。不幸的是,当数据包由于抖动的网络而晚于它们的预期的播放最后期限到达时,小的抖动缓冲器可能导致更频繁的数据包丢失。
为了在延迟与数据包丢失之间寻找最佳平衡,已经提出了各种抖动缓冲器管理方法。在一种典型的抖动缓冲器算法中,将到达的数据包连同元数据如序号等存储在缓冲器中。在一定量的时间如20ms之后,可以将来自抖动缓冲器的最旧的数据包发送给解码器。相应地,基于新的数据包的序号,将新的数据包插入到抖动缓冲器中。关于抖动缓冲器的设计,有两种常见的方法,即,固定抖动缓冲器和自适应抖动缓冲器。具有固定尺寸的抖动缓冲器提供恒定的缓冲器延迟,并且复杂性最小。显然,如果需要容纳大的延迟波动,则其可能引入过多的延迟。自适应抖动缓冲器动态地分配尺寸,这实际上更常用。
需要进一步改进抖动缓冲器的管理算法,使得能够实现最佳的整体感知质量。
发明内容
根据本申请的一种实施方式,提供了一种用于控制抖动缓冲器的装置,包括:用于估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值的语音段间延迟抖动估计器;以及用于基于抖动缓冲器的针对每个帧的长期长度和偏移值来调节抖动缓冲器的长度的抖动缓冲器控制器。
根据本申请的另一种实施方式,用于控制抖动缓冲器的装置包括:用于通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度的长期长度估计器;以及用于设置所述抖动缓冲器的长度的抖动缓冲器控制器。在该装置中,抖动缓冲器控制器被配置成基于针对当前语音段中的第一帧的所述长期长度和与第一帧同时接收到的帧的数量来设置抖动缓冲器的针对第一帧的长度。
本申请的另一实施方式涉及一种用于控制抖动缓冲器的装置,该装置包括:用于通过计算历史延迟抖动值的统计分布来估计抖动缓冲器的针对每个帧的长期长度的长期长度估计器;以及用于朝着长期长度来调节抖动缓冲器的当前长度的抖动缓冲器控制器。
本申请的又一实施方式提供了一种用于控制抖动缓冲器的装置,包括:用于监测抖动缓冲器的占用率的抖动缓冲器监测器;以及用于响应于占用率满足预定条件来增加抖动缓冲器的长度的抖动缓冲器控制器。
本申请还提供了一种用于控制抖动缓冲器的方法。根据该方法的一个实施方式,该方法包括:估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及基于抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节抖动缓冲器的长度。
根据本方法的另一实施方式,通过计算历史延迟抖动值的统计分布来估计抖动缓冲器的针对每个帧的长期长度;以及基于针对当前语音段中的第一帧的长期长度和与第一帧同时接收到的帧的数量来设置抖动缓冲器的针对第一帧的长度。
本方法的又一实施方式包括:通过计算历史延迟抖动值的统计分布来估计抖动缓冲器的针对每个帧的长期长度;然后朝着该长期长度来调节抖动缓冲器的当前长度。
本方法的再一实施方式包括:监测抖动缓冲器的占用率;然后响应于占用率满足预定条件来增加抖动缓冲器的长度。
附图说明
通过举例而非限制的方式来对本申请进行说明,在附图中,相似的附图标记指代相似的元件,在附图中:
图1A是示意性地示出了可以应用本申请的实施方式的一种示例性语音通信系统的图;
图1B是示意性地示出了可以应用本申请的实施方式的另一种示例性语音通信系统的图;
图2是示出了根据本申请的一种实施方式的用于控制抖动缓冲器的装置的图;
图3是示出了对锚帧的选择和对语音段(talkspurt)间延迟抖动的计算的图;
图4是示出了根据图2所示的实施方式的一种变型例的用于控制抖动缓冲器的装置的图;
图5是示出了根据图2所示的实施方式的另一种变型例的用于控制抖动缓冲器的装置的图;
图6是示出了根据图2所示的实施方式的又一种变型例的用于控制抖动缓冲器的装置的图;
图7是示出了根据图2所示的实施方式的再一种变型例的用于控制抖动缓冲器的装置的图;
图8是示出了根据本申请的又一种实施方式的用于控制抖动缓冲器的装置的图;
图9是示出了根据图8所示的实施方式的一种变型例的用于控制抖动缓冲器的装置的图;
图10是示出了本申请的又一种实施方式的图;
图11是示出了根据本申请的再一种实施方式的用于控制控制抖动缓冲器的装置的图;
图12是示出了根据图11所示的实施方式的一种变型例的用于控制抖动缓冲器的装置的图;
图13是示出了用于实现本申请的实施方式的示例性系统的框图;
图14是示出了根据本申请的用于控制抖动缓冲器的方法的实施方式对锚帧进行设置和更新的流程图;
图15是示出了根据本申请的用于控制抖动缓冲器的方法的实施方式对抖动缓冲器的长期长度进行估计的流程图;
图16是示出了根据本申请的用于控制抖动缓冲器的方法的实施方式对语音段间偏移值进行估计并且对抖动缓冲器的长期长度进行调节的流程图;
图17是示出了根据本申请的用于控制抖动缓冲器的方法的实施方式对抖动缓冲器的长度进行更新的流程图;以及
图18是示出了根据本申请的用于控制抖动缓冲器的方法的实施方式对抖动缓冲器进行预扩展的流程图。
具体实施方式
下面,参考附图来描述本申请的实施方式。应当注意,为了简洁,在附图和描述中,省略了与对于本领域技术人员而言公知的并且对于理解本申请而言并非必需的部件和处理有关的表示和描述。
本领域技术人员应当理解,本申请的多个方面可以实施为系统、设备(如移动电话、便携式媒体播放器、个人计算机、服务器、电视机机顶盒或数字录像机或者任意其他媒体播放器)、方法或者计算机程序产品。因此,本申请的多个方面可以采用硬件的实施方式的形式、软件的实施方式(包括固件、常驻软件、微代码等)的形式或者软件方面与硬件方面组合的实施方式的形式,其中,软件方面和硬件方面在本文中都可以总体上被称为“电路”、“模块”或“系统”。此外,本申请的多个方面可以采用包括在一个或更多个计算机可读介质中的计算机程序产品的形式,其中,计算机可读介质上包括有计算机可读程序代码。
可以利用一个或更多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以是例如但不限于电子的、磁性的、光学的、电磁性的、红外的或半导体的系统、装置或设备、或者上述装置的任意合适的组合。计算机可读存储介质的更具体的示例(非穷举性的列表)可以包括:具有一个或更多个导线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤、便携式压缩盘只读存储器(CD-ROM)、光学存储设备、磁性存储设备或者上述装置的任意合适的组合。在本文献的上下文中,计算机可读存储介质可以是能够包含或者存储用于由或者结合指令执行系统、装置或设备来使用的程序的任意有形的介质。
计算机可读信号介质可以包括其中包括有计算机可读程序代码的传播数据信号,该数据信号为基带信号或者作为载波的一部分。这样的传播数据信号可以采用各种形式,包括但不限于电磁信号或光学信号或者其任意合适的组合。
计算机可读信号介质可以是并非为计算机可读存储介质并且可以通信、传送或传输用于由或者结合指令执行系统、装置或设备来使用的程序的任意计算机可读介质。
包括在计算机可读介质中的程序代码可以使用任意合适的介质——包括但不限于无线、有线线路、光纤电缆、RF等或者其任意合适的组合——来发送。
用于执行本申请的多个方面的操作的计算机程序代码可以用一种或更多种编程语言——包括面向对象的编程语言,如Java、Smalltalk、C++等,以及传统的过程编程语言,如“C”编程语言或类似的编程语言——的任意组合来编写。编程代码可以作为单独的软件数据包整体地在用户的计算机上执行,或者部分地在用户的计算机上且部分地在远程计算机上执行,或者整体地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过包括局域网(LAN)或广域网(WAN)在内的任意类型网络连接至用户的计算机,或者可以(例如,通过利用互联网服务提供商的互联网)与外部计算机进行连接。
下面,参考根据本申请的实施方式的方法、装置(系统)和计算机程序产品的流程图说明和/或框图来描述本申请的多个方面。应当理解,流程图说明和/或框图中的每个块以及流程图说明和/或框图中的块的组合可以用计算机程序指令来实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,以产生机器,使得通过计算机或其他可编程数据处理装置的处理器来执行的指令产生用于实现流程图和/或框图块中所指定的功能/行为的装置。
这些计算机程序指令还可以存储在如下计算机可读介质中:该计算机可读介质可以指示计算机、其他可编程数据处理装置或其他设备来以特定的方式起作用,使得存储在计算机可读介质中的指令产生包括实现流程图和/或框图块中所指定的功能/行为的指令的制造品。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以产生要在计算机、其他可编程装置或其他设备上执行的一系列运算操作,从而产生计算机实现的处理,使得在计算机或其他可编程装置上执行的指令提供用于实现流程图和/或框图块中所指定的功能/行为的处理。
系统概述
图1A是示意性地示出了可以应用本申请的实施方式的示例性语音通信系统的图。
如图1A所示,用户A操作通信终端A,用户B操作通信终端B。在语音通信会话中,用户A和用户B通过他们的通信终端A和B彼此交谈。通信终端A和B通过数据链路103耦接。数据链路103可以实现为点到点连接或者通信网络。在用户A和用户B中的任一侧,对用户的通信终端所捕获的音频信号的音频块进行VAD(Voice Activity Detection,语音活动检测)。如果确定在音频块中存在语音,则对音频块进行相应的处理(如,施加适合于语音的增益),并且通过数据链路103将音频块发送给另一个用户的通信终端A。如果确定在音频块中不存在语音,则对音频块进行相应的处理(如,施加适合于非语音的增益),并且通过数据链路103将音频块发送给另一个用户的通信终端A。在这种情况下,可以给另一个用户的通信终端发送表示静默周期的简单信息,或者,可以通过不发送任何信息来表示该时间段对应于该音频块。另一个用户的通信终端接收所发送的音频块,并且将所发送的音频块存储至与上述时间对应的条目,作为其抖动缓冲器中的音频块,以消除传输抖动。通过解码和处理来馈送抖动缓冲器中的音频块,以在通信终端的输出换能器处再现这些音频块。接收到所述简单信息或者没有接收到任何信息可以在抖动缓冲器中产生相应的空的条目。
图1B是示意性地示出了可以应用本申请的实施方式的另一种示例性语音通信系统的图。在本示例中,可以在多个用户之间进行语音会议。
如图1B所示,用户A操作通信终端A,用户B操作通信终端B,用户C操作通信终端C。在语音会议会话中,用户A、用户B和用户C分别通过他们的通信终端A、B和C彼此交谈。图1B所示的通信终端与图1A所示的通信终端具有相同的功能。然而,通信终端A、B和C通过公共数据链路113或单独的数据链路113耦接至服务器。数据链路113可以实现为点到点连接或者通信网络。在用户A、用户B和用户C中的任一侧,对用户的通信终端所捕获的音频信号的音频块进行VAD。如果确定在音频块中存在语音,则对音频块进行相应的处理(如,施加适合于语音的增益),并且通过数据链路113将音频块发送给服务器。如果确定在音频块中不存在语音,则对音频块进行相应的处理(如,施加适合于非语音的增益),并且通过数据链路113将音频块发送给服务器。在这种情况下,可以向服务器115发送表示静默周期的简单信息,或者,可以通过不发送任何信息来表示该时间段对应于该音频块。服务器接收所发送的音频块,并且分别在其与用户相关联的抖动缓冲器中将所发送的音频块存储至与上述时间对应的条目作为音频块,以消除传输抖动。抖动缓冲器中的与上述时间对应的音频块被混频成一个音频块,并且,所混合的音频块被发送给所有的用户A、用户B和用户C。接收到所述简单信息或者没有接收到任何信息可以在抖动缓冲器中产生相应的空的条目。用户的通信终端从服务器接收音频块,并且在这些音频块的抖动缓冲器中将这些音频块存储至与上述时间对应的条目作为音频块,以消除传输抖动。在每个通信终端中,抖动缓冲器中的音频块被馈送给音频处理器,以通过通信终端的扬声器系统来再现这些音频块。虽然图1B示出了三个通信终端,然而,系统中当然可以耦接有两个或更多个通信终端。
语音段间抖动(偏移)的估计
如图2所示,本申请的第一实施方式提供了一种用于控制抖动缓冲器206的装置200。该装置包括:语音段间延迟抖动估计器202,用于估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及抖动缓冲器控制器204,用于基于用于每个帧的抖动缓冲器206的长期长度和偏移值来调节抖动缓冲器206的长度。
根据本实施方式,可以基于抖动缓冲器(JB)206的长期长度和当前语音段中的第一帧的延迟的偏移值(或抖动值)来调节抖动缓冲器206的长度(或大小,或级别)。JB的长期长度反映了在历史音频信号中延迟抖动器的长期级别,第一帧的延迟的偏移值反映了当前语音段的可能的延迟抖动。因此,根据本实施方式的用于控制JB的装置基于这二者来调节JB 206的长度。
应当注意,在此,使用了术语“帧”。在本申请的上下文中,假定“抖动缓冲器”是存储音频帧的“逻辑”抖动缓冲器。然而,取决于特定实现方式,物理抖动缓冲器可以存储任何形式的数据包或者音频帧。因此,在本说明书通篇中,术语“抖动缓冲器”应当被理解为包括实际上存储音频帧的抖动缓冲器和实际上存储任何形式的数据包(块)的抖动缓冲器,该数据包可以在被播放之前或者在被馈送到需要音频帧的任何部件中之前被解码为音频帧。在本申请中将不会明确地讨论解码处理,尽管解码处理确实存在。相应地,术语“帧”应当被理解为包括已经从数据包中解码的或者仍然编码在数据包中的实际帧、或者本身包括一个或更多个帧的数据包、或者编码在数据包中的或者已经从数据包中解码的多于一个的帧。换言之,在本申请的上下文中,涉及帧的处理还可以被理解为涉及数据包的处理、或者同时涉及多于一个包含在数据包中的帧的处理。
传统上,JB的长期长度可用于每个帧。可以通过长期长度估计器802(参见图8)计算过去的抖动值的直方图来估计JB的长期长度。替选地,可以用概率质量函数(PMF)来代替直方图(参见公开为US20090003369A1的US专利申请)。一旦计算出了直方图或者PMF,则可以通过设置阈值使得预期的延迟波动的累积概率小于该阈值来估计长期长度。
相对于上一语音段中的最后一个锚帧来计算第一帧的延迟的偏移值。传统上,使用锚帧作为用于对同一语音段内的新接收到的帧的延迟抖动进行估计的参考。在本申请中,通过使用上一语音段中的最后一个锚帧来估计跨语音段的或语音段间的延迟抖动(偏移值)。因此,可以参考上一语音段,在新的语音段开始时调节JB的长度。
可以通过锚帧设置单元402(图4)来设置语音段中的锚帧。理论上,可以使用具有最小单向延迟的帧作为锚帧。然而,很难测量绝对的单向延迟。测量绝对的单向延迟需要发射机和接收机二者的定时信息和时钟同步。此外,在如VoIP等实时系统中,存储很多数据包以得到最小延迟是不实际的,并且,使用太旧的锚帧可能导致数值问题和时钟漂移。因此,提出了使用语音段中的第一帧作为锚,然后保持对锚帧进行更新,使得可以使用一个语音段内的“局部”最小延迟。将第一帧设置为锚帧而导致的另一个问题是第一帧可能在延迟尖峰中,而在使用第一帧作为锚的情况下不能检测到延迟尖峰。这可能导致不准确的延迟分布估计和对抖动缓冲器的长度的高估。如上所述在语音段内保持对锚帧进行更新可以部分地缓解这个问题,并且,如稍后将要讨论的,通过跨语音段地使用上一语音段中的最后一个锚帧或者若干在前语音段中的更多的最后一个锚帧,可以进一步缓解这个问题。以这种方式,可以求得并且使用较长的时间段内的局部最小延迟。
因此,根据第一实施方式的变型例400,用于控制抖动缓冲器的装置还可以包括锚帧设置单元402,锚帧设置单元402用于:最初将当前语音段中的第一帧设置为锚帧,以及,当新接收的帧的延迟抖动满足预定条件时,将新接收的帧设置为锚帧。稍后将讨论对上一语音段中的最后一个锚帧的跨语音段的使用。
即,可以对锚帧进行实时更新,因此,可以使用在时间上更接近的锚帧。例如,如果新的帧的相对于当前锚帧的延迟抖动小于0,即,新的帧到达得比预期早,则可以使用新的帧作为新的锚帧。或者,为了避免使用太旧的锚帧,也可以使用新的具有零延迟抖动的帧作为新的锚帧。
例如,如图3所示,存在两个用静默帧(如斜线阴影块所示)分开的语音段1和2。语音段1中的帧X、Y和Z在时间t1、t2和t3发送(图3(a)),并且可以在时间t3、t4和t5在接收机侧接收到,总的延迟(相对于发送时间的总的延迟)为两个帧间隙(t1和t2)(假定ti+1-ti是20ms的帧间隙,并且i是整数)(图3(b)。在图3(b)中,可以将第一帧X设置为初始锚帧。由于帧Y和帧Z二者如预期的那样及时到达,因此,其相对于锚帧X的延迟抖动为零,可以将X保持为锚帧,或者,可以将帧Y或Z中的任一个更新为新的锚帧(在图3(b)中未示出)。
在图3(c)所示的情况下,以帧X或Y作为参考(锚帧),帧X和Y基于总的延迟如预期的那样到达,而帧Z比预期早1个帧(帧间隙)到达。因此,将帧Z更新为锚帧,这是因为抖动值小于0(-1帧)。应当注意,在图3(c)和图3(d)中,帧Y和Z被示出为同时(分别为t4或t5)到达。在本申请的上下文中,“同时”这个表述的含义是包括但不限于精确的字面上的含义,并且应当被理解为“在预定粒度的相同的时隙/时间间隔内”。在本申请中,例如,预定粒度可以是两个连续发送的帧/数据包之间的时隙(这样的时隙可以被称为帧间隙)、或者用于检查数据包到达的网络探测速率、或者处理时间粒度,但是不限于此。对于后者,例如,可以用帧时间段/间隙如20ms对到达时间进行量化。即,用整数个数据包来表示时间。类似地,在本申请的语境中,当提及具体的时间点时,取决于上下文,其还可以表示预定粒度的时隙。此外,当涉及针对某个帧的应当被理解为时间点的具体时间ti(i为整数)时,为了清楚起见,假定在发射机侧其表示该帧开始的时间点,或者在接收机侧其表示开始接收帧该帧的时间点。
在图3(d)所示的情况下,初始将第一帧X设置为锚帧,其中帧Y和Z二者相对于该锚帧被进一步延迟。帧Y的延迟抖动为2帧,而帧Z的延迟抖动为1帧,因此,由于抖动值大于0,帧X被保持为锚帧直到语音段1结束。
在当前语音段内,可以通过语音段内延迟抖动估计器502(在如图5所示的变型例500中)来对新接收的帧的相对于锚帧的抖动值进行估计。语音段内延迟抖动估计器502被配置成计算新接收的帧的实际接收时间与该新接收的帧的预期接收时间之间的差,作为所述延迟抖动。预期接收时间以当前锚帧作为参考来计算。
例如,仍然参考图3(c),假定语音段1中的第一帧X(初始锚帧)的接收时间为t3=R(0),并且,预期的帧间隙为G=20ms,则随后的帧Y和Z的“预期”接收时间为R(0)+20ms和R(0)+40ms。而实际上,帧Y和Z二者都是在t4=R(0)+20ms处被接收。因此,延迟抖动是接收各个帧的实际时间与接收各个帧的预期时间之间的差。即,对于帧Y,延迟抖动为R(0)+20-(R(0)+20)=0;而对于帧Z,延迟抖动为R(0)+20-(R(0)+40)=-20ms,表示帧Z早到达20ms。在此,以时间为单位来测量延迟抖动。由于在没有延迟抖动的情况下两个连续的帧之间的时隙(帧间隙)是固定的(如20ms),因此,也可以以帧为单位来衡量延迟抖动(以及延迟)。例如,可以说帧Z的延迟抖动为-1帧,也就是帧Z早到达一个帧。
在每个语音段内,可以持续地在满足预定条件的情况下更新锚帧。当每个语音段完成时,存在最后一个锚帧,如当语音段1完成时的图3(c)中的帧Z或者图3(d)中的帧X;对于新的语音段,存在新的锚帧,如当语音段2开始时的图3中的第一帧A。在本申请中,相对于上一语音段中的最后一个锚帧来计算第一帧的延迟的偏移值(抖动),因此,可以参考上一语音段,在新的语音段开始时调节JB的长度。
在如图6所示的变型例600中,可以在语音段间延迟抖动估计器202中借助于时间差估计器2022和帧数量估计器2024来估计第一帧的延迟的偏移值,其中,时间差估计器2022用于计算最后一个锚帧的接收时间与第一帧的接收时间之间的时间差,帧数量估计器2024用于估计所述最后一个锚帧与第一帧之间的预期的帧数量。具体而言,可以基于所述时间差和预期时间差来计算偏移值,其中,该预期时间差是基于预期的帧数量来获得的。
在帧数量估计器2024中,可以基于最后一个锚帧的序号和第一帧的序号以及关于在前语音段与当前语音段之间的静默帧的信息来确定预期的帧数量,关于静默帧的信息被承载在在前语音段和当前语音段中的至少一个语音段中的至少一个帧中。
例如,在DTX(不连续传输)模式下,在静默期间不传输任何帧。可以根据两个非静默帧的序号来推断两个非静默帧之间的非静默帧的数量,这是因为不管两个非静默帧是否属于相同的语音段,非静默帧都是依次编号。例如,在图3中,从帧X到帧C,静默帧的数量为C-X=6,这表示C是帧X之后的第五个帧(在此,使用X和C来表示两个帧的数量)。然而,不能根据RTP(实时传输协议)数据包/帧的RTP序号来直接推断自上一语音段结束以来已经过去的静默帧的数量,这是因为对于静默数据包/帧而言,RTP数据包的序号不递增。例如,在图3中,帧A的序号直接跟着帧Z的序号,因此,不可能根据帧Z和A的序号来推断帧Z与A之间的静默帧的数量。在此,DTX模式和RTP格式仅是示例,而本申请并不限于此。
因此,为了计算两个语音段中的两个帧之间的预期的帧数量,必需获得两个语音段之间的静默帧的数量。为了表示关于静默帧的信息,可以采用各种手段。例如,可以如在标准RTP帧格式中那样在所有的帧中嵌入时间戳信息,或者仅在在前语音段的最后一帧中和当前语音段的第一帧中嵌入时间戳信息。例如,在图3中,可以在所有的帧中嵌入时间戳信息,或者仅在帧Z和A中嵌入时间戳信息。在任一种情况下,帧Z和A中的时间戳信息都足以推断静默帧的数量。具体而言,嵌入在帧Z中的时间戳可以是其发送时间t3,嵌入在帧A中的时间戳可以是其发送时间t5。因此,在发送侧,帧Z与A之间的时间间隔可以是t5-t3-20ms=20ms(假定帧间隙为20ms),并且,可以推断静默帧的数量Nsil为Nsil=20ms/20ms=1帧。另外的替选为,可以在当前语音段中的第一帧中嵌入静默帧的数量。例如,在图3中,可以在帧A中嵌入表示存在一个静默帧的信息,即,Nsil=1帧。
因此,在本申请中,关于静默帧的信息可以包括:静默帧的数量,该数量被嵌入当前语音段中的第一帧中。或者,关于静默帧的信息可以包括在前语音段的最后一帧中的时间戳和当前语音段的第一帧中的时间戳。
设Nsil表示两个相邻的语音段之间的静默帧的数量(在图3的示例中,Nsil=1)。因此,对于当前语音段中的第一帧,自上一锚帧以来已经过去的帧的预期数量为Ntotal=Sj(0)-Sj-1(a)+Nsil,其中,Sj(0)是当前语音段j中的第一帧的序号(如,图3中的语音段2中的帧A),Sj-1(a)是在前语音段j-1中的锚帧的序号(如,图3(c)中的语音段1中的帧Z,或者图3(d)中的语音段1中的帧X)。例如,在图3(c)中,Ntotal=A-Z+Nsil=1+1=2帧,表示如果将静默帧计算在内,则A是锚帧Z之后的第二个帧。在图3(d)中,Ntotal=A-X+Nsil=3+1=4帧,表示如果将静默帧计算在内,则A是锚帧X之后的第四个帧。
设G(如20ms)是在没有抖动的情况下连续的帧之间的预期时隙(帧间隙),则上一语音段中的最后一个锚帧与当前语音段中的第一帧之间的预期接收时间差可以是Ntotal*G。因此,当前语音段中的第一帧相对于上一语音段中的最后一个锚帧的延迟抖动——即,语音段间延迟抖动——可以是Dj(0)=Rj(0)-Rj-1(a)-Ntotal*G,其中,Rj(0)是当前语音段j中的第一帧的接收时间,Rj-1(a)是上一语音段j-1中的最后一个锚帧的接收时间。在图3中,假定每个ti(i为整数)表示20ms的时隙,则在图3(c)中,Dj(0)=Rj(0)-Rj-1(a)-Ntotal*G=t8-t4-2*20=80-40=40ms;而在图3(d)中,Dj(0)=Rj(0)-Rj-1(a)-Ntotal*G=t8-t2-4*20=120-80=40ms。
这样计算的延迟抖动以时间为单位来量度。为了控制以帧为单位量度的抖动缓冲器大小(长度)的目的,可以通过除以时隙(帧间隙)G来将延迟抖动Dj(0)转换成以帧为单位的dj(0):其中,运算表示将实数x映射到最大在前整数的函数floor(x),即,是不大于x的最大整数。然而,该运算也可以是四舍五入(Round)或Ceil(是不小于x的最小整数)。例如,在图3(c)和图3(d)二者中,延迟抖动为Dj(0)=40/20=2个帧。以下表格示出了以上针对图3(c)和图3(d)所讨论的计算处理,还包括图3(b)所示的情形:
应当注意,在图3所示的示例中,为了描述清楚,所有的延迟和抖动都是以时隙图示的,这些时隙为正常的帧间隙的整数倍,因此,以时间为单位计算的延迟抖动Dj (0)正好是帧间隙(如20ms)的整数倍。然而,本申请不限于此,任意两个帧之间的实际时间差可以不是正常的帧间隙的整数倍。此外,应当注意,在图3中,为了便于理解,标记出了绝对的延迟值;然而正如以上讨论的计算处理中所示,这样的值对于本发明而言不是必需的,我们仅关心相对于锚帧的相对延迟(即,抖动)值。
在以上讨论的第一实施方式及其变型例中,当对语音段间延迟抖动——即,当前语音段中的第一帧的延迟的偏移值——进行估计时,使用上一语音段中的最后一个锚帧。上一语音段是紧在当前语音段之前的在前语音段。
替选地,可以相对于并非与当前语音段紧邻的在前语音段来估计偏移值,并且,参考上文中的描述,很容易理解如何估计偏移值。
再次,替选地,在如图7所示的变型例700中,用于控制抖动缓冲器的装置还可以包括偏移值缓存器702,偏移值缓存器702用于存储至少一个较早的语音段中的至少一个第一帧的至少一个较早的偏移值,并且,语音段间延迟抖动估计器202可以被配置成:基于至少一个较早的偏移值的平均值或者加权平均值来调节当前语音段中的第一帧的延迟的偏移值,或者,采用当前偏移值和至少一个较早的偏移值中的最大的偏移值。
使用并非与当前语音段紧邻的在前语音段或者多于一个在前语音段的益处在于得到对于偏移的更可靠的估计。紧邻在前的语音段可能非常短,这使得锚不太精确。因此,有意义的是,使用较早的且更可靠的语音段或者若干在前语音段来寻找具有最小延迟的语音段(相应的偏移将是最大的)。
然而,如果总是使用最小锚,则最终能够找到在整个会话过程中绝对最小的锚。然而,这可能不是很好的解决方案,因为这样的话很可能产生很大的偏移值,而又不能够解决时钟漂移问题(针对语音段间延迟抖动估计来重置新的参考锚帧隐含地可以解决时钟漂移问题)。因此,可以仅使用有限数量的在前语音段。该数量可以由预定阈值或预定时间段来限定。例如,可以规定仅可以考虑在上一30秒内的那些语音段。
抖动缓冲器的长期长度和瞬时长度的估计和调节
在上文中讨论的第一实施方式中,可以基于如在第一实施方式中所确定的抖动缓冲器的长期长度和偏移值来调节抖动缓冲器的瞬时长度(JB长度)。可以用任意合适的方式来实现这样的调节,只要长期长度和偏移值二者都被考虑即可。例如,如图8所示的第二实施方式800所示,可以首先基于来自长期长度估计器802的长期长度来确定JB长度(例如,JB长度=a*长期长度,其中,a是系数),接着,根据来自语音段间延迟抖动估计器202的偏移值来调节JB长度。
可以通过计算历史延迟抖动值的统计分布,如过去的抖动值的直方图,来估计用于语音段j中的帧n的抖动缓冲器的长期长度Bj(n)。通过利用该直方图,延迟抖动阈值可以被选择为:使得低于延迟抖动阈值的延迟抖动值的累积概率满足实际的要求。例如,如果语音通信应用要求帧丢失率应当低于5%,则可以将延迟抖动阈值设置为使得低于延迟抖动阈值的延迟抖动值的概率等于或大于95%。如果抖动缓冲器长度被设置为等于这样确定的阈值,则帧丢失率将等于或低于5%(尽管在本申请中,不一定直接采用长期长度作为瞬时抖动缓冲器长度)。替选地,可以用概率质量函数(PMF)来代替直方图(参见公开为US20090003369A1的US专利申请)。
应当注意,由于基于历史的抖动值来确定长期长度,所以仅在接收到新的帧时更新历史数据。因此,由长期长度估计器802进行的对长期长度的估计仅在接收到新的帧时被触发。在特定的时间处,可能接收到了或者没有接收到帧来用于更新长期长度。因此,在长期长度Bj(n)的符号中,忽略了时间索引t。
在第二实施方式的变型例900中,如图9所示,可以首先通过长期长度调节器902用第一实施方式中所讨论的偏移值dj(0)来调节长期长度Bj(n)。调节的基本思想是:如果偏移值大于0,则适当地减小长期长度。
可以用任何方式来实现对长期长度的减小。例如,可以采用以下公式或其任意变型:
如果偏移大于长期长度,则表示抖动已经耗尽长期长度,并且,应当立即播放数据包。而在本申请中,根据公式(1),仍然给予数据包一个较小的缓冲器长度(Bj(n)/2),以避免可能的数据包丢失。在此,分母“2”仅是示例,其可以是大于1的任意其他值。
当dj(0)小于Bj(n)时,表示新的语音段中的第一个数据包的偏移已经部分地“使用”了长期长度,并且,调节后的长期长度可以大于上一种情况。
在另一变型例中,长期长度调节器902可以被配置成使偏移值随着时间减小。即,在第一实施方式中计算的dj(0)可以仅用作在公式(1)中使用的初始偏移,并且,随着索引n增加(以及随着时间逝去),即,每次接收到新的帧,可以减小dj(0)的值,从而,可以使dj(0)对长期长度的影响随着时间减小。
在又一变型例中,提出了:如果在前语音段的传输质量非常差,则抛弃在前语音段的影响。即,如果上一语音段结束时的长期长度大于预定阈值,则对于新的语音段,长期长度估计器可以将长期长度重置为预定初始值,并且重置历史延迟抖动值。即,可以抛弃直到上一语音段为止的历史抖动值,并且,可以从新的语音段的开始处重新累积历史抖动值。以这种方式,可以将长期长度(并且从而将抖动缓冲器的长度)重置为正常水平,这是因为上一语音段可能是异常的语音段。
应当注意,第二实施方式的解决方案可以基于第一实施方式,然而,其也可以是独立于第一实施方式的解决方案。因此,如图8和图9所示,可以省略用虚线示出的那些部件。
对新的语音段的抖动缓冲器的初始长度的进一步调节
在上文中所讨论的第一实施方式和第二实施方式中,可以通过对抖动缓冲器的长期长度进行调节来调节抖动缓冲器的长度。一种简单的方法是直接使用长期长度作为针对每个帧的抖动缓冲器的瞬时长度。
在第三实施方式中,引入了对抖动缓冲器的长度——或者严格地说,针对新的语音段的抖动缓冲器的初始长度——的更具体的调节。
在图8和图9中也示出了第三实施方式,尤其是通过从抖动缓冲器206指向JB控制器204的虚线箭头示出了第三实施方式。具体而言,抖动缓冲器控制器204可以被配置成基于针对第一帧的长期长度和与第一帧同时接收到的帧的数量来设置抖动缓冲器206的针对当前语音段中的第一帧的长度。例如,可以使用以下公式或其任意变型:
Lj(t0)=B’j(n0)+N(t0)+C (2)
其中,Lj(t0)是当前语音段中的第一帧n0的时间t0处的抖动缓冲器的瞬时长度,B’j(n0)是用于第一帧n0的调节后的长期长度,N(t0)是在t0处接收的帧的数量,即,与第一帧n0同时接收到的帧的数量,C是预定的整常数。在此,“同时”这样的表述应当如上述进行理解。即,N(t0)实际上是与第一帧n0在同一时隙被接收的帧的数量。在此,N(t0)可以考虑或者不考虑第一帧本身,并且,因此引入的差可以用常数C来补偿。
在公式中,使用了长期长度的调节后的版本B’j(n0)。即,第三实施方式基于第一实施方式和/或第二实施方式。在独立于第一实施方式和/或第二实施方式的第四实施方式中,公式(2)可以重写为:
Lj(t0)=Bj(n0)+N(t0)+C (2’)
其中,Bj(n0)是用于第一帧n0的长期长度,但是没有根据偏移值dj(0)进行调节。
如之前的实施方式及其变型例中所讨论的,关注的是对抖动缓冲器的针对当前语音段中的第一帧的长期长度和/或初始长度的重置。作为重置(很可能连同网络条件的改善)的结果,这样的情况可能出现:在当新的语音段中的帧已经出现时,上一语音段的某些帧还没有被播放。此时,如果针对当前语音段中的第一帧的(调节后的或未调节的)长期JB长度长于上一语音段中的尚未播放的帧的数量,则,由于当前语音段中的第一帧必须等待与长期长度相对应的一段时间,在此期间,上一语音段中的帧将完全播放完毕。然而,如果上一语音段中的尚未播放的帧的数量(即,仍然由上一语音段所使用的抖动缓冲器长度)大于针对当前语音段中的第一帧的长期长度,则表示,如果必须基于针对第一帧的长期长度来及时播放当前语音段中的第一帧,则上一语音段中的不是所有的帧都可以播放。因此,在第三实施方式/第四实施方式的变型中,抖动缓冲器控制器204可以被配置成:如果仍然由上一语音段所使用的抖动缓冲器的长度大于长期长度并且新的语音段中的第一帧已经到来,则丢弃上一语音段中的部分帧,使得上一语音段中的帧仅占用抖动缓冲器的长期长度。
例如,如图10所示,在时间t1处,抖动缓冲器中仍然存在上一语音段中的5个帧(n-4至n),即JB长度为5帧。接着,在接下来的时间t2处,新语音段的3个帧(1至3,包括第一帧1)到达,并且抖动缓冲器的针对第一帧的估计的(和可能已经过调节的)长期长度为2。这表示,用于第一帧1的长期长度(2)加上新的语音段中的已经到达的帧的数量(3)可以占用5个帧的JB长度。如果不丢弃上一语音段中的一些帧,则当前语音段中的第一帧1必须等待4帧(n-3至n,帧n-4已经播放),这与2个帧的长期长度偏离太多。因此,必须丢弃上一语音段中的2个帧,以使得当前语音段中的第一帧能够准时播放。在如图10所示的示例中,丢弃了帧n-1和n,即,丢弃了最后几帧。然而,也可以采用其他丢弃方案,这将在稍后讨论。
抖动缓冲器长度的语音段内自适应
根据本申请的第五实施方式,抖动缓冲器的瞬时长度可以随着帧自适应地改变。作为长期目标,抖动缓冲器控制器204还可以被配置成朝着长期长度调节抖动缓冲器的当前长度。这样的调节可以通过计算长期长度与当前长度的加权平均值来实现。以下公式及其变型是示例:
Lf,j(n)=La,j(n)+α(B’j(n)-La,j(n)) (3)
其中,B’j(n)是抖动缓冲器的针对语音段j中的当前帧n的长期长度,其已经如之前的实施方式及其变型例中所描述的那样根据偏移值进行了调节,La,j(n)是抖动缓冲器的针对当前帧n的实际长度,Lf,j(n)是抖动缓冲器的针对当前帧n的最终长度,α是权值,其可以被认为是用于控制施加多少平滑的时间常数。
在以上实施方式中,使用了索引n,因此该操作是从一个帧到另一个帧来执行的。在该实施方式的变型中,该操作也可以以规则的时间间隔(通常为播放节律/时钟)执行,而非按接收的帧来执行。因此,公式(3)可以重写为:
Lf,j(t)=La,j(t)+α(B’j(n)-La,j(t)) (3’)
其中,B’j(n)是抖动缓冲器的针对语音段j中的当前帧n的长期长度,其已经如之前的实施方式及其变型例中所描述的那样根据偏移值进行了调节,La,j(t)是抖动缓冲器的针对当前时间t的实际长度,Lf,j(t)是抖动缓冲器的针对当前时间t的最终长度,α是权值,其可以被认为是用于控制施加多少平滑的时间常数。应当注意,术语B’j(n)中仍然使用了索引n,这是因为如上文中所讨论的,B’j(n)是基于帧来更新的。还应当注意,在公式(3’)中,当前时间t并非必须以一对一的方式对应于当前帧n,因为时间t总在向前流逝,而由于帧的延迟抖动,索引n并不一定这样平滑地增加。
在另一变型中,可以取决于瞬时缓冲器长度大于还是小于长期估计值来采用不同的自适应速率。因此抖动缓冲器控制器可以被配置成使得:当长期长度大于当前长度时,长期长度的权值更大,而当长期长度小于当前长度时,长期长度的权值更小。
在以上讨论的第五实施方式及其变型例中,使用了B’j(n)。然而,可以替代地使用Bj(n)。此外,当前语音段中的La,j(t)的初始值,即La,j(0),可以采用或者不采用第三实施方式/第四实施方式及其变型例中所讨论的值Lj(t0)。也就是说,第五实施方式及其变型例可以与本申请中所讨论的其他实施方式及其变型组合,另外也可以独立于本申请中所讨论的其他实施方式及其变型。
抖动缓冲器的预扩展
抖动是已经到达的帧的延迟波动。上文中所讨论的实施方式及其变型基于过去的帧的抖动来预测抖动缓冲器的长度。当存在大的抖动时,不能适当地更新缓冲器算法,这是因为瞬时抖动还未被缓冲器算法看到。在不调节JB长度的情况下,大的抖动可能产生大量的帧丢失。
因此,在图11所示的第六实施方式中,提出了基于对抖动缓冲器的“未来”进行监测来执行缓冲器的扩展。具体而言,用于控制抖动缓冲器206的装置1100可以包括用于监测抖动缓冲器206的占用率的抖动缓冲器监测器1102,并且其中,抖动缓冲器控制器204还被配置成响应于占用率满足预定条件来增加抖动缓冲器206的长度。
其思想是:在缓冲器完全变成空之前,通过插入帧来预先增加抖动缓冲器的长度。
一种实施方式是检查单帧缓冲器占用率的连续出现次数。例如,当连续出现两次的单帧缓冲器占用率时,可能表示已经出现了抖动的增加并且当前缓冲器长度不足以满足要求。因此,可以向当前缓冲器长度添加额外的一帧延迟。
推广开来,抖动缓冲器控制器204可以被配置成在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加抖动缓冲器206的长度。
由于预扩展是在缓冲器中仍然有可用的帧的情况下进行,因此,提供了如下益处:可以使用帧内插来代替传统的方法中的单侧帧外插。本领域技术人员公知,帧内插通常可以比帧外插产生更好的结果。预扩展还有助于将常常会在输出中产生失真的信号处理铺展开。
抖动缓冲器的长度不能增加得太快和/或无限制地增加。在一种变型例中,抖动缓冲器控制器204可以被配置成:每次条件满足时将抖动缓冲器的长度增加一帧。在另一种变型例中,用于控制抖动缓冲器的装置还可以包括用于监测音频信号的内容的信号内容监测器1104,并且其中,抖动缓冲器控制器204被配置成在音频信号的内容不适于帧插入的情况下不增加抖动缓冲器的长度。
一个具体的示例是瞬态信号区域。在瞬态信号区域的帧插入通常产生畸变。因此,信号内容监测器1104可以被配置成监测音频信号的瞬态,并且,抖动缓冲器控制器204可以被配置成在瞬态信号区域不增加抖动缓冲器的长度。
此外,当前抖动缓冲器的长度不可以太长。在一种变型例中,抖动缓冲器控制器可以被配置成在当前抖动缓冲器的长度超过预定阈值的情况下不增加抖动缓冲器的长度。
还可以参考过去的信号处理频率,即,如果已经进行了若干次帧插入,则可以停止帧插入。因此,在如图12所示的变型例1200中,用于控制抖动缓冲器的装置还可以包括用于对当前语音段内的帧插入进行计数的计数器1202,其中,抖动缓冲器控制器204可以被配置成在当前语音段内的帧插入的数量超过预定阈值的情况下不增加抖动缓冲器的长度。
应当注意,类似于其他实施方式,可以基于上文中所讨论的其他实施方式中的任一个或更多个来实现第六实施方式及其变型例,或者,可以独立于其他实施方式来实现第六实施方式及其变型例。正如图11和图12所示,所有用虚线示出的部件都可以省略或者可以按照任意组合方式与本实施方式组合。
缓冲器操作
在之前的实施方式及其变型例中,在不同的情况下,可以增加或缩短抖动缓冲器瞬时长度。当抖动缓冲器目标长度(所计算的抖动缓冲器长度)等于缓冲器当前实际长度时,推出并且播放抖动缓冲器的头部帧。在某些其他情况下,例如,在已经发出了预扩展命令的情况下,或者,如果抖动缓冲器目标长度大于缓冲器实际长度,则执行扩展。另一方面,如果抖动缓冲器目标长度小于缓冲器实际长度,则执行缓冲器缩短。
抖动缓冲器长度的增加可以通过在抖动缓冲器中有可用的帧的情况下进行帧内插或者在抖动缓冲器中没有可用的帧的情况下进行帧外插来实现。帧内插表示在抖动缓冲器中的可用的帧之前添加帧。所添加的帧可以是空帧、合成帧或抖动缓冲器中的当前播放帧或未来(尚未播放的)帧的副本。帧外插表示在抖动缓冲器的尾部添加帧。当抖动缓冲器中没有可用的帧时,表示所添加的帧在最后播放的帧之后。类似于内插,外插的帧也可以是空帧、合成帧或者最后的播放帧的副本。
抖动缓冲器长度的减小是通过丢弃抖动缓冲器中的帧来实现的。所丢弃的帧可以在抖动缓冲器的头部或者尾部、或者在抖动缓冲器的中间。如果考虑到帧在语音段中的位置,则当语音段要到达尾部时,通常可以丢弃抖动缓冲器中的尾部帧。当其在语音段的中间时,可以丢弃抖动缓冲器中的较早的帧。
为了避免由于连续的帧丢弃而产生可能的畸变,抖动缓冲器控制器可以被配置成通过交织地移除抖动缓冲器中的帧来减小抖动缓冲器的长度。所移除的帧可以是随意地选择的或者根据预定模式来选择的,如从每两个或三个帧中移除一个帧。
或者,用于控制抖动缓冲器的装置还可以包括用于估算抖动缓冲器中的帧的重要性的帧估计器,其中,抖动缓冲器控制器被配置成通过丢弃那些最不重要的帧来减小抖动缓冲器的长度。可以基于帧的信号能量或频谱通量来估算帧的重要性,那些具有相对较低的信号能量或低的频谱通量的帧被确定为相对较不重要的帧。
另外的可以用作用于丢弃帧的标准的因素是周期性。如果信号是高度周期性的,则可以使时间缩放(扩展或压缩)更不倾向于发生畸变。因此,可以对那些具有很高的周期性的音频信号段进行交织的帧去除;而如果需要,则对其他音频信号段进行其他形式的帧丢弃,如丢弃低能量的帧。
实施方式的组合和应用场景
以上所讨论的所有的实施方式及其变型例都可以用其任意组合来实现,并且,不同的部分/实施方式中所提及的但是具有相同或相似功能的任意部件都可以被实现为相同的或者单独的部件。
具体而言,当描述上文中的实施方式及其变型例时,省略了与在前实施方式或变型例中已经描述的部件具有类似的附图标记的那些部件,而仅描述了不同的部件。实际上,这些不同的部件或者可以与其他实施方式或变型的部件组合、或者可以独自构成单独的解决方案。例如,可以有以下单独的解决方案:(1)使用语音段间延迟抖动(偏移值)来调节抖动缓冲器长度(图2);(2)设置锚帧(图4);(3)估计语音段内延迟抖动并且更新锚帧(图3、图5);(4)估计语音段间延迟抖动(偏移值)(图6);(5)使用多个偏移值来调节抖动缓冲器长度(图7);(6)估计长期抖动缓冲器长度(图8);(7)基于长期抖动缓冲器长度和偏移值来确定抖动缓冲器长度(图8);(8)基于长期抖动缓冲器长度和第一批接收到的帧来设置和调节抖动缓冲器的瞬时长度(图10);(9)用偏移值来调节抖动缓冲器的长期长度(图9);(10)朝着抖动缓冲器长期长度来对抖动缓冲器长度进行语音段内自适应;(11)对抖动缓冲器进行预扩展;以及(12)对抖动缓冲器进行扩展/增加和缩短/减小。并且,可以对以上单独的解决方案中的任意两个或更多个进行组合来形成新的解决方案。
如本申请的“具体实施方式”的开始处所讨论的,可以用硬件或者软件之一或者二者来实施本申请的实施方式。图13是示出了用于实现本申请的多个方面的示例性系统的框图。
在图13中,中央处理单元(CPU)1301根据只读存储器(ROM)1302中存储的程序或者从存储部分1308加载到随机存取存储器(RAM)1303的程序来执行各种处理。在RAM 1303中,还根据需要对在CPU 1301执行各种处理等时所需要的数据进行存储。
CPU 1301、ROM 1302和RAM 1303通过总线1304连接至彼此。总线1304还连接有输入/输出接口1305。
以下部件连接至输入/输出接口1305:输入部分1306,包括键盘、鼠标等;输出部分1307,包括显示器,如阴极射线管(CRT)、液晶显示器(LCD)等,以及扬声器等;存储部分1308,包括硬盘等;以及通信部分1309,包括网络接口卡,如LAN卡、调制解调器等。通信部分1309通过如互联网等的网络来执行通信处理。
根据需要,输入/输出接口1305还连接有驱动器1310。根据需要,驱动器1310上还安装有可移除介质1311,如磁盘、光盘、磁光盘、半导体存储器等,使得从其读取的计算机程序能够根据需要而被安装到存储部分1308中。
在用软件实现上述部件的情况下,构成软件的程序从如互联网等的网络或者如可移除介质1311等的存储介质来安装。
用于控制抖动缓冲器的方法
在描述上文中的实施方式中的用于控制抖动缓冲器的装置的过程中,还清楚地公开了一些处理或方法。下文中,在不重复上文中已经描述过的某些细节的情况下给出这些方法的概述,但是,应当注意,虽然是在描述用于控制抖动缓冲器的装置的过程中公开了这些方法,然而,这些方法并非必须采用上述这些部件,或者并非必须用这些部件来执行。例如,虽然可以部分地或者完全地用硬件和/或固件来实现用于控制抖动缓冲器的装置的实施方式,而以下讨论的用于控制抖动缓冲器的方法也可以完全用计算机可执行的程序来实现,虽然这些方法也可以采用用于控制抖动缓冲器的装置的硬件和/或固件。
下面,将参考图14至18来描述该方法。应当注意,对应于音频信号的流属性,对抖动缓冲器的控制是与时间有关的过程。对于控制的不同的方面,有不同的线程。例如但非意在限制,图14至18示出了其中的若干线程。图14是用于设置和更新锚帧的线程1400。图15是用于估计抖动缓冲器的长期长度的线程1500。图16是用于估计跨语音段偏移以及调节抖动缓冲器的长期长度的线程1600。图17是用于更新抖动缓冲器的长度的线程1700。图18是用于对抖动缓冲器进行预扩展的线程1800。在每个线程中,某些操作——如,估计操作——可以包括更多的操作,虽然在图14至18中不一定示出这些更多的操作。此外,某些线程的结果可以由某些其他线程来使用。因此,根据本申请的用于控制抖动缓冲器的方法的实施方式可以仅是图14至18所示的线程之一的一部分,或者可以是桥接不同的线程的不同部分的解决方案。对于图14至18中未示出和/或以下未描述的那些细节,可以参考对用于控制抖动缓冲器的装置的描述。
根据本申请的第七实施方式,提供了一种用于控制抖动缓冲器的方法。根据本方法,相对于在前语音段中的最后一个锚帧的延迟对当前语音段中的第一帧的延迟的偏移值进行估计,并且使用该偏移值连同抖动缓冲器的针对每个帧的长期长度来调节抖动缓冲器的长度。正的偏移值表示新的语音段中的第一帧可能延迟得太多,即,具有正的抖动。在这种情况下,取决于实际需要,可以增加抖动缓冲器的长期长度以适应可能更大的抖动,或者可以减小抖动缓冲器的长期长度以避免由抖动缓冲器引入的延迟太长。
图14示出了锚帧的设置。一开始,即当接收到新的帧(操作1402)并且新的帧是新的语音段中的第一帧(操作1404中为“是”)时,将该帧设置为锚帧(操作1406)。接着,如果第一帧之后的新接收的帧(操作1404中为“否”)满足预定条件(操作1408中为“是”),则可以将其设置为锚帧。即,可以将锚帧更新为新接收的帧。
预定条件可以与新接收的帧的延迟抖动有关。如果延迟抖动小于0或者等于0,则可以将新接收的帧设置为新的锚帧。以这种方式,可以确保可以最终在每个语音段内定位局部最小延迟,从而避免了抖动缓冲器的长度变得太长。可以计算新接收的帧的实际接收时间与该新接收的帧的预期接收时间之间的时间差,以作为延迟抖动。预期接收时间可以以当前锚帧作为参考来计算。
可以相对于紧在当前语音段之前的在前语音段、或者并非紧邻当前语音段的在前语音段中的最后一个锚帧来估计上述偏移值。以这种方式,可以忽略某些太短或质量太坏的在前语音段,并且,类似于对语音段内延迟抖动的估计,可以确保参考(在前语音段中的锚帧)本身可以具有相对小的抖动。
替选地,当估计偏移值时,当前语音段中的第一帧的延迟的偏移值可以基于至少一个较早的偏移值的平均值或者加权平均值来调节,或者采用当前偏移值与至少一个较早的偏移值中的最大的偏移值。
可以将偏移值计算为以下两者之间的时间差:所述最后一个锚帧的接收时间与第一帧的接收时间之间的时间差,以及相应的预期时间差。可以基于所述最后一个锚帧与第一帧之间的预期的帧数量来获得预期时间差。
为了得到预期的帧数量,可以首先基于最后一个锚帧的序号和第一帧的序号来获得预期的帧数量。此外,可以根据在前语音段和当前语音段中的至少一个语音段中的至少一个帧来获得关于在前语音段与当前语音段之间的静默帧的信息。
例如,关于静默帧的信息可以包括静默帧的数量,该数量可以被嵌入当前语音段中的第一帧中。或者,关于静默帧的信息可以包括在前语音段中的最后一帧中的时间戳和当前语音段中的第一帧中的时间戳。
根据本申请的第八实施方式,该方法还可以包括:通过计算历史延迟抖动值的统计分布,如过去的抖动值的直方图或者概率质量函数(PMF),来估计每个帧的长期长度(图15中的操作1512或操作1514)。由于基于过去的帧的延迟抖动值来计算长期长度,所以可以用新的帧的接收(图15中的操作1502)来触发长期长度的计算或更新。
作为一种变型例,为了避免在前语音段的坏的质量太多地增加长期长度(并且从而增加抖动缓冲器瞬时长度),在新的语音段的开始(操作1504中为“是”)时提供削减太长的抖动缓冲器的机会。即,当上一语音段结束时的长期长度大于预定阈值Th1(操作1508中为“是”)时,可以将长期长度重置为初始值并且可以清空历史延迟抖动值(操作1510)。可以从第一帧开始重新累积历史数据,并且,从第一帧开始,可以基于自第一帧以来的历史抖动值来估计长期长度值(操作1512)。如果上一语音段结束时的长期长度不大于预定阈值Th1(操作1508中为“否”),则可以重置长期长度,并且可以继续基于自最初或者上一重置以来的历史抖动值来估计长期长度。
在如图16所示的变型例1600中,可以基于偏移值来对长期长度进行调节,并且,与以上所讨论的长期长度有关的所有操作都基于长期长度的调节后的值。例如,当偏移值大于零(操作1608中为“是”)时,可以减小长期长度(操作1610)。在图16中示出了:当偏移不大于0时,不执行任何操作,但是本申请不限于此。例如,取决于实际需要,在偏移不大于0时增加长期长度有时也是可以接受的。
可以回想到,对偏移值的估计(操作1606)是针对新的语音段中的第一帧(操作1604中为“是”)进行的。当在第一帧之后(操作1604中为“否”)接收到新的帧时(操作1602),可以针对每个帧调节相应的长期长度(操作1610)。作为另外的变型例,对于对长期长度的每个随后的调节,可以使偏移值逐渐衰减(操作1612),这是因为随后的帧距离第一帧越远,第一帧的偏移的影响越小。
在本申请的第九实施方式中,对抖动缓冲器的长度进行调节的操作可以包括:对于当前语音段中的第一帧(图17中的操作1702),基于针对第一帧的长期长度和与第一帧同时接收到的帧的数量来设置抖动缓冲器的长度(操作1708),以确保第一帧的延迟时间和用于其他已经接收的帧的缓冲空间。
在这种情况下,如果抖动缓冲器的由上一语音段所使用的长度(即抖动缓冲器实际长度)大于长期长度(操作1704中为“是”),并且新的语音段中的第一帧已经到达(操作1802),则可以丢弃上一语音段中的某些帧(操作1706),使得上一语音段中的帧仅占用抖动缓冲器的长期长度。如果抖动缓冲器当前长度不大于长期长度(操作1704中为“否”),则在新的语音段中的第一帧被播放之前有足够的时间来播放上一语音段中的帧(如果有的话)。过多的时间可以被抖动缓冲器中的在第一帧之前的空帧所占用。
随着时间的流逝(操作1712中为“是”)或者一旦接收到新的帧(操作1710中为“是”),则可以进一步朝着长期长度来调节抖动缓冲器的长度(操作1714)。在此,“时间间隔”可以是上述“处理时间粒度”,词“朝着”表示将抖动缓冲器的长度调节为更接近长期长度,并非必须立刻变为等于长期长度。
为了朝着长期长度调节抖动缓冲器的当前长度,可以计算长期长度与当前长度的加权平均值。当长期长度大于当前长度时,长期长度的权值可以更大,使得抖动缓冲器的长度可以很快地增加至长期长度,因为长期长度很大的情况通常表示延迟是剧烈的并且需要更长的抖动缓冲器来防止帧丢失。相反,当长期长度小于当前长度时,权值可以更小,因为在这种情况下,调节的目的是释放抖动缓冲器的不必要的长度以缩短延迟时间,这不如防止帧丢失时那样紧急。然而,有时,可以直接将长期长度设置为抖动缓冲器的针对每个帧的的长度。
根据本申请的第十实施方式,该方法还可以包括:在需要时(操作1716中为“是”)对抖动缓冲器进行预扩展(图17中的操作1718),以便为延迟抖动的可能的增加做好准备。
延迟抖动的这样的可能的增加可以用抖动缓冲器的连续的低占用率来反映,表示对未来的帧的接收正在变得更慢。因此,可以监测抖动缓冲器的占用率(图18中的操作1802),并且响应于占用率满足预定条件(如连续为低占用率)(操作1804中为“是”)来增加抖动缓冲器的长度(操作1814)。在一种变型例中,预定条件为:占用率连续地小于预定阈值达预定次数,如单帧占用率已经连续地出现了两次。
由于预扩展是基于预测的,最好谨慎,使得抖动缓冲器的长度不会增加得太多和太快。因此,可以对抖动缓冲器的预扩展提出一些限制。
在一种变型例中,可以监测音频信号的内容(操作1806),并且如果音频信号的内容不适合帧插入(操作1808中为“否”),则不增加抖动缓冲器的长度。例如,可以监测音频信号的瞬态,并且在瞬态信号区域中不增加抖动缓冲器的长度,因为在这样的区域中,帧的插入会产生明显的畸变。
此外,如果抖动缓冲器的当前长度已经很长,则不适合再增加抖动缓冲器的长度。因此,可以设置预定阈值Th2,如果超过该阈值Th2(操作1810中为“是”),则不执行增加抖动缓冲器的长度的操作。
另一个标准是帧插入的次数。可以对当前语音段内的帧插入进行计数(操作1816)。在当前语音段内的帧插入的次数超过预定阈值Th3(操作1812中为“是”)时,可以不执行增加抖动缓冲器的长度的操作。
类似于用于控制抖动缓冲器的装置的实施方式,一方面,第七实施方式至第十实施方式及其变型例的任意组合都是可能的;另一方面,实施方式及其变型例的每个方面都可以是单独的解决方案。
应当注意,本文中所使用的术语仅用于描述具体的实施方式的目的,而非意在限制本申请。如本文中所使用的,除非上下文清楚地指出,否则,单数形式的“一个(a)”、“一个(an)”和“该(the)”意在还包括复数形式。还应当理解,术语“包括(comprises)”和/或“包括(comprising)”在本说明书中使用时表示所说明的特征、整体、操作、步骤、元件和/或部件的存在,而非排除一个或更多个其他特征、整体、操作、步骤、元件、部件和/或其组合的存在或添加。
如要求保护的,权利要求中的功能元件以及所有的器件或操作的相应的结构、材料、行为和等同方案意在包括用于结合其他要求保护的元件来执行功能的任意结构、材料或行为。提供对本申请的描述用于说明和描述的目的,而非意在穷举或以所公开的形式来限制本申请。本领域技术人员可以在不偏离本申请的范围和精神的情况下对本申请进行很多修改和变化。选择并且描述实施方式,是为了最佳地解释本申请和实际应用的原理,以及使得本领域其他技术人员能够理解本申请能够以适于所考虑的具体用途的不同修改而用于不同的实施方式。
根据以上内容,可以看出描述了下述示例性实施方式(均用“EE”表示)。
EE 1.一种用于控制抖动缓冲器的装置,包括:
语音段间延迟抖动估计器,所述语音段间延迟抖动估计器用于估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及
抖动缓冲器控制器,所述抖动缓冲器控制器用于基于所述抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节所述抖动缓冲器的长度。
EE 2.根据EE 1所述的用于控制抖动缓冲器的装置,还包括锚帧设置单元,所述锚帧设置单元用于:最初将所述当前语音段中的所述第一帧设置为所述锚帧;以及当新接收的帧的延迟抖动满足预定条件时,将所述新接收的帧设置为所述锚帧。
EE 3.根据EE 2所述的用于控制抖动缓冲器的装置,其中,所述预定条件是所述延迟抖动小于0。
EE 4.根据EE 2所述的用于控制抖动缓冲器的装置,其中,所述预定条件是所述延迟抖动等于或者小于0。
EE 5.根据EE 1至4中任一项所述的用于控制抖动缓冲器的装置,还包括语音段内延迟抖动估计器,所述语音段内延迟抖动估计器用于计算所述新接收的帧的实际接收时间与所述新接收的帧的预期接收时间之间的差作为所述延迟抖动,所述预期接收时间是以当前锚帧作为参考来计算的。
EE 6.根据EE 1至5中任一项所述的用于控制抖动缓冲器的装置,其中,所述语音段间延迟抖动估计器被配置成估计所述当前语音段中的所述第一帧的延迟相对于紧在所述当前语音段之前的在前语音段中的最后一个锚帧的延迟的偏移值。
EE 7.根据EE 6所述的用于控制抖动缓冲器的装置,其中,所述语音段间延迟抖动估计器包括:
时间差估计器,所述时间差估计器用于计算所述最后一个锚帧的接收时间与所述第一帧的接收时间之间的时间差;以及
帧数量估计器,所述帧数量估计器用于估计所述最后一个锚帧与所述第一帧之间的预期的帧数量;并且其中,
所述语音段间延迟抖动估计器被配置成基于所述时间差和预期时间差来估计所述偏移值,其中,所述预期时间差是基于所述预期的帧数量来获得的。
EE 8.根据EE 7所述的用于控制抖动缓冲器的装置,其中,所述帧数量估计器被配置成基于所述最后一个锚帧的序号和所述第一帧的序号以及关于所述在前语音段与所述当前语音段之间的静默帧的信息来获得所述预期的帧数量,所述关于静默帧的信息被承载在所述在前语音段和所述当前语音段中的至少一个语音段中的至少一个帧中。
EE 9.根据EE 8所述的用于控制抖动缓冲器的装置,其中,所述关于静默帧的信息包括所述静默帧的数量,所述数量被嵌入在所述当前语音段中的所述第一帧中。
EE 10.根据EE 8所述的用于控制抖动缓冲器的装置,其中,所述关于静默帧的信息包括所述在前语音段中的最后一帧中的时间戳和所述当前语音段中的所述第一帧中的时间戳。
EE 11.根据EE 1至10中任一项所述的用于控制抖动缓冲器的装置,还包括偏移值缓存器,所述偏移值缓存器用于存储至少一个较早的语音段中的至少一个第一帧的至少一个较早的偏移值,其中,所述语音段间延迟抖动估计器被配置成:基于所述至少一个较早的偏移值的平均值或者加权平均值来调节所述当前语音段中的所述第一帧的延迟的所述偏移值;或者采用当前偏移值和所述至少一个较早的偏移值中的最大的偏移值。
EE 12.根据EE 1至11中任一项所述的用于控制抖动缓冲器的装置,还包括长期长度估计器,所述长期长度估计器用于通过计算历史延迟抖动值的统计分布来估计针对每个帧的所述长期长度。
EE 13.根据EE 1至12中任一项所述的用于控制抖动缓冲器的装置,还包括长期长度调节器,所述长期长度调节器用于当所述偏移值大于0时将针对每个帧的所述长期长度调节为更小的值。
EE 14.根据EE 13所述的用于控制抖动缓冲器的装置,其中,所述长期长度调节器被配置成使所述偏移值随着时间衰减。
EE 15.根据EE 12至14中任一项所述的用于控制抖动缓冲器的装置,其中,所述长期长度估计器被配置成:当所述上一语音段结束时的所述长期长度大于预定阈值时,将所述长期长度重置为初始值并且重置所述历史延迟抖动值。
EE 16.根据EE 1至15中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成基于用于所述当前语音段中的所述第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
EE 17.根据EE 1至16中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成:如果仍然由所述上一语音段所使用的所述抖动缓冲器的长度大于所述长期长度并且新的语音段中的第一帧已经到来,则丢弃所述上一语音段中的一些帧,使得所述上一语音段中的帧仅占用所述抖动缓冲器的所述长期长度。
EE 18.根据EE 1至17中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器还被配置成朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 19.根据EE 18所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成通过计算所述抖动缓冲器的所述当前长度和所述长期长度的加权平均值来调节所述当前长度。
EE 20.根据EE 19所述的用于控制抖动缓冲器的装置,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 21.根据EE 1至20中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成将所述抖动缓冲器的针对每个帧的长度确定为所述长期长度。
EE 22.一种用于控制抖动缓冲器的装置,包括:
长期长度估计器,所述长期长度估计器用于通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
抖动缓冲器控制器,所述抖动缓冲器控制器用于设置所述抖动缓冲器的长度;并且其中,
所述抖动缓冲器控制器被配置成基于针对当前语音段中的第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
EE 23.根据EE 22所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成:如果仍然由所述上一语音段所使用的所述抖动缓冲器的长度大于所述长期长度并且新的语音段中的第一帧已经到达,则丢弃所述上一语音段中的一些帧,使得所述上一语音段中的帧仅占用所述抖动缓冲器的所述长期长度。
EE 24.根据EE 22或23所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器还被配置成朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 25.根据EE 24所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成通过计算所述抖动缓冲器的所述当前长度和所述长期长度的加权平均值来调节所述当前长度。
EE 26.根据EE 25所述的用于控制抖动缓冲器的装置,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 27.一种用于控制抖动缓冲器的装置,包括:
长期长度估计器,所述长期长度估计器用于通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
抖动缓冲器控制器,所述抖动缓冲器控制器用于朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 28.根据EE 27所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成通过计算所述抖动缓冲器的所述当前长度和所述长期长度的加权平均值来调节所述当前长度。
EE 29.根据EE 28所述的用于控制抖动缓冲器的装置,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 30.根据EE 1至29中任一项所述的用于控制抖动缓冲器的装置,还包括用于监测所述抖动缓冲器的占用率的抖动缓冲器监测器,并且其中,所述抖动缓冲器控制器还被配置成响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
EE 31.根据EE 30所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
EE 32.根据EE 31所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在单帧占用率已经连续地出现了两次的情况下增加所述抖动缓冲器的长度。
EE 33.根据EE 30至32中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成每次将所述抖动缓冲器的长度增加一个帧。
EE 34.根据EE 30至32中任一项所述的用于控制抖动缓冲器的装置,还包括用于监测所述音频信号的内容的信号内容监测器,并且其中,所述抖动缓冲器控制器被配置成在所述音频信号的所述内容不适合帧插入的情况下不增加所述抖动缓冲器的长度。
EE 35.根据EE 34所述的用于控制抖动缓冲器的装置,其中,所述信号内容监测器被配置成监测所述音频信号的瞬态,并且,所述抖动缓冲器控制器被配置成在瞬态信号区域中不增加所述抖动缓冲器的长度。
EE 36.根据EE 30至32中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在所述抖动缓冲器的所述当前长度超过预定阈值的情况下不增加所述抖动缓冲器的长度。
EE 37.根据EE 30至32中任一项所述的用于控制抖动缓冲器的装置,还包括用于对所述当前语音段内的帧插入进行计数的计数器,其中,所述抖动缓冲器控制器被配置成在所述当前语音段内的帧插入的次数超过预定阈值的情况下不增加所述抖动缓冲器的长度。
EE 38.一种用于控制抖动缓冲器的装置,包括:
抖动缓冲器监测器,所述抖动缓冲器监测器用于监测所述抖动缓冲器的占用率;以及
抖动缓冲器控制器,所述抖动缓冲器控制器用于响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
EE 39.根据EE 38所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
EE 40.根据EE 39所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在单帧占用率已经连续地出现了两次的情况下增加所述抖动缓冲器的长度。
EE 41.根据EE 38至40中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成每次将所述抖动缓冲器的长度增加一个帧。
EE 42.根据EE 38至40中任一项所述的用于控制抖动缓冲器的装置,还包括用于监测音频信号的内容的信号内容监测器,并且其中,所述抖动缓冲器控制器被配置成在所述音频信号的所述内容不适合帧插入的情况下不增加所述抖动缓冲器的长度。
EE 43.根据EE 42所述的用于控制抖动缓冲器的装置,其中,所述信号内容监测器被配置成监测所述音频信号的瞬态,并且,所述抖动缓冲器控制器被配置成在瞬态信号区域中不增加所述抖动缓冲器的长度。
EE 44.根据EE 38至40中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在所述抖动缓冲器的所述当前长度超过预定阈值的情况下不增加所述抖动缓冲器的长度。
EE 45.根据EE 38至40中任一项所述的用于控制抖动缓冲器的装置,还包括用于对所述当前语音段内的帧插入进行计数的计数器,其中,所述抖动缓冲器控制器被配置成在所述当前语音段内的帧插入的次数超过预定阈值的情况下不增加所述抖动缓冲器的长度。
EE 46.一种用于控制抖动缓冲器的方法,包括:
估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及
基于所述抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节所述抖动缓冲器的长度。
EE 47.根据EE 46所述的用于控制抖动缓冲器的方法,还包括:最初将所述当前语音段中的所述第一帧设置为所述锚帧;以及当新接收的帧的延迟抖动满足预定条件时,将所述新接收的帧设置为所述锚帧。
EE 48.根据EE 47所述的用于控制抖动缓冲器的方法,其中,所述预定条件是所述延迟抖动小于0。
EE 49.根据EE 47所述的用于控制抖动缓冲器的方法,其中,所述预定条件是所述延迟抖动等于或者小于0。
EE 50.根据EE 46至49中任一项所述的用于控制抖动缓冲器的方法,还包括:计算所述新接收的帧的实际接收时间与所述新接收的帧的预期接收时间之间的差,作为所述延迟抖动,所述预期接收时间是以当前锚帧作为参考来计算的。
EE 51.根据EE 46至50中任一项所述的用于控制抖动缓冲器的方法,其中,所述估计所述偏移值的操作包括:估计所述当前语音段中的所述第一帧的延迟相对于紧在所述当前语音段之前的在前语音段中的最后一个锚帧的延迟的偏移值。
EE 52.根据EE 51所述的用于控制抖动缓冲器的方法,其中,所述估计所述偏移值的操作包括:
计算所述最后一个锚帧的接收时间与所述第一帧的接收时间之间的时间差;
估计所述最后一个锚帧与所述第一帧之间的预期的帧数量;以及
基于所述时间差和预期时间差来估计所述偏移值,其中,所述预期时间差是基于所述预期的帧数量来获得的。
EE 53.根据EE 52所述的用于控制抖动缓冲器的方法,其中,所述估计所述预期的帧数量的操作包括:基于所述最后一个锚帧的序号和所述第一帧的序号以及关于所述在前语音段与所述当前语音段之间的静默帧的信息来获得所述预期的帧数量,所述关于静默帧的信息被承载在所述在前语音段和所述当前语音段中的至少一个语音段中的至少一个帧中。
EE 54.根据EE 53所述的用于控制抖动缓冲器的方法,其中,所述关于静默帧的信息包括所述静默帧的数量,所述数量被嵌入在所述当前语音段中的所述第一帧中。
EE 55.根据EE 53所述的用于控制抖动缓冲器的方法,其中,所述关于静默帧的信息包括所述在前语音段中的最后一帧中的时间戳和所述当前语音段中的所述第一帧中的时间戳。
EE 56.根据EE 46至55中任一项所述的用于控制抖动缓冲器的方法,其中,所述估计所述偏移值的操作包括:基于所述至少一个较早的偏移值的平均值或者加权平均值来调节所述当前语音段中的所述第一帧的延迟的所述偏移值;或者采用所述当前偏移值和所述至少一个较早的偏移值中的最大的偏移值。
EE 57.根据EE 46至56中任一项所述的用于控制抖动缓冲器的方法,还包括:通过计算历史延迟抖动值的统计分布来估计针对每个帧的所述长期长度。
EE 58.根据EE 46至57中任一项所述的用于控制抖动缓冲器的方法,还包括:当所述偏移值大于0时,将针对每个帧的所述长期长度调节为更小的值。
EE 59.根据EE 58所述的用于控制抖动缓冲器的方法,还包括:使所述偏移值随着时间衰减。
EE 60.根据EE 57至59中任一项所述的用于控制抖动缓冲器的方法,其中,所述估计所述长期长度的操作包括:当所述上一语音段结束时的所述长期长度大于预定阈值时,将所述长期长度重置为初始值并且重置所述历史延迟抖动值。
EE 61.根据EE 46至60中任一项所述的用于控制抖动缓冲器的方法,其中,所述调节所述抖动缓冲器的长度的操作包括:基于用于所述当前语音段中的所述第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
EE 62.根据EE 46至61中任一项所述的用于控制抖动缓冲器的方法,还包括:如果仍然由所述上一语音段所使用的所述抖动缓冲器的长度大于所述长期长度并且新的语音段中的第一帧已经到达,则丢弃所述上一语音段中的一些帧,使得所述上一语音段中的帧仅占用所述抖动缓冲器的所述长期长度。
EE 63.根据EE 46至62中任一项所述的用于控制抖动缓冲器的方法,其中,所述调节所述抖动缓冲器的长度的操作包括:朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 64.根据EE 63所述的用于控制抖动缓冲器的方法,其中,所述朝着所述长期长度来调节所述抖动缓冲器的当前长度的操作包括:计算所述长期长度和所述当前长度的加权平均值。
EE 65.根据EE 64所述的用于控制抖动缓冲器的方法,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 66.根据EE 46至65中任一项所述的用于控制抖动缓冲器的方法,其中,所述调节所述抖动缓冲器的长度的操作包括:将所述抖动缓冲器的针对每个帧的长度确定为所述长期长度。
EE 67.一种用于控制抖动缓冲器的方法,包括:
通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
基于针对当前语音段中的第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
EE 68.根据EE 67所述的用于控制抖动缓冲器的方法,还包括:如果仍然由所述上一语音段所使用的所述抖动缓冲器的长度大于所述长期长度并且新的语音段中的第一帧已经到达,则丢弃所述上一语音段中的一些帧,使得所述上一语音段中的帧仅占用所述抖动缓冲器的所述长期长度。
EE 69.根据EE 67或68所述的用于控制抖动缓冲器的方法,还包括:朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 70.根据EE 69所述的用于控制抖动缓冲器的方法,其中,所述朝着所述长期长度来调节所述抖动缓冲器的当前长度的操作包括:计算所述长期长度和所述当前长度的加权平均值。
EE 71.根据EE 70所述的用于控制抖动缓冲器的方法,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 72.一种用于控制抖动缓冲器的方法,包括:
通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 73.根据EE 72所述的用于控制抖动缓冲器的方法,其中,所述朝着所述长期长度来调节所述抖动缓冲器的当前长度的操作包括:计算所述长期长度和所述当前长度的加权平均值。
EE 74.根据EE 73所述的用于控制抖动缓冲器的方法,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
EE 75.根据EE 46至74中任一项所述的用于控制抖动缓冲器的方法,还包括:
监测所述抖动缓冲器的占用率;以及
响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
EE 76.根据EE 75所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作包括:在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
EE 77.根据EE 76所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作包括:在单帧占用率已经连续地出现了两次的情况下增加所述抖动缓冲器的长度。
EE 78.根据EE 75至77中任一项所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作被配置成每次将所述抖动缓冲器的长度增加一个帧。
EE 79.根据EE 75至77中任一项所述的用于控制抖动缓冲器的方法,还包括监测音频信号的内容,并且其中,在所述音频信号的所述内容不适合帧插入的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 80.根据EE 79所述的用于控制抖动缓冲器的方法,其中,所述监测所述音频信号的内容的操作包括:监测所述音频信号的瞬态,并且其中,在瞬态信号区域中不执行所述增加所述抖动缓冲器的长度的操作。
EE 81.根据EE 75至77中任一项所述的用于控制抖动缓冲器的方法,其中,在所述抖动缓冲器的所述当前长度超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 82.根据EE 75至77中任一项所述的用于控制抖动缓冲器的方法,还包括对所述当前语音段内的帧插入进行计数,并且其中,在所述当前语音段内的帧插入的次数超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 83.一种用于控制抖动缓冲器的方法,包括:
监测所述抖动缓冲器的占用率;以及
响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
EE 84.根据EE 83所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作包括:在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
EE 85.根据EE 84所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作包括:在单帧占用率已经连续地出现了两次的情况下增加所述抖动缓冲器的长度。
EE 86.根据EE 83至85中任一项所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作被配置成每次将所述抖动缓冲器的长度增加一个帧。
EE 87.根据EE 83至85中任一项所述的用于控制抖动缓冲器的方法,还包括监测音频信号的内容,并且其中,在所述音频信号的所述内容不适合帧插入的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 88.根据EE 87所述的用于控制抖动缓冲器的方法,其中,所述监测所述音频信号的内容的操作包括监测所述音频信号的瞬态,并且其中,在瞬态信号区域中不执行所述增加所述抖动缓冲器的长度的操作。
EE 89.根据EE 83至85中任一项所述的用于控制抖动缓冲器的方法,其中,在所述抖动缓冲器的所述当前长度超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 90.根据EE 83至85中任一项所述的用于控制抖动缓冲器的方法,还包括对所述当前语音段内的帧插入进行计数,并且其中,在所述当前语音段内的帧插入的次数超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
EE 91.一种计算机可读介质,在所述计算机可读介质上记录有计算机程序指令,当所述程序指令被处理器执行时,所述程序指令使所述处理器能够执行用于控制抖动缓冲器的方法,所述用于控制抖动缓冲器的方法包括:
估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及
基于所述抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节所述抖动缓冲器的长度。
EE 92.一种计算机可读介质,在所述计算机可读介质上记录有计算机程序指令,当所述程序指令被处理器执行时,所述程序指令使所述处理器能够执行用于控制抖动缓冲器的方法,所述用于控制抖动缓冲器的方法包括:
通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
基于针对当前语音段中的第一帧的所述长期长度和与所述第一帧同时被接收的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
EE 93.一种计算机可读介质,在所述计算机可读介质上记录有计算机程序指令,当所述程序指令被处理器执行时,所述程序指令使所述处理器能够执行用于控制抖动缓冲器的方法,所述用于控制抖动缓冲器的方法包括:
通过计算历史延迟抖动值的统计分布来估计所述抖动缓冲器的针对每个帧的长期长度;以及
朝着所述长期长度来调节所述抖动缓冲器的当前长度。
EE 94.一种计算机可读介质,在所述计算机可读介质上记录有计算机程序指令,当所述程序指令被处理器执行时,所述程序指令使所述处理器能够执行用于控制抖动缓冲器的方法,所述用于控制抖动缓冲器的方法包括:
监测所述抖动缓冲器的占用率;以及
响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
Claims (36)
1.一种用于控制抖动缓冲器的装置,包括:
语音段间延迟抖动估计器,所述语音段间延迟抖动估计器用于估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及
抖动缓冲器控制器,所述抖动缓冲器控制器用于基于所述抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节所述抖动缓冲器的长度。
2.根据权利要求1所述的用于控制抖动缓冲器的装置,还包括锚帧设置单元,所述锚帧设置单元用于:最初将所述当前语音段中的所述第一帧设置为所述锚帧;以及当新接收的帧的延迟抖动满足预定条件时,将所述新接收的帧设置为所述锚帧。
3.根据权利要求1或2所述的用于控制抖动缓冲器的装置,还包括语音段内延迟抖动估计器,所述语音段内延迟抖动估计器用于计算所述新接收的帧的实际接收时间与所述新接收的帧的预期接收时间之间的差作为所述延迟抖动,所述预期接收时间是以当前锚帧作为参考来计算的。
4.根据权利要求1至3中任一项所述的用于控制抖动缓冲器的装置,其中,所述语音段间延迟抖动估计器被配置成估计所述当前语音段中的所述第一帧的延迟相对于紧在所述当前语音段之前的在前语音段中的最后一个锚帧的延迟的偏移值。
5.根据权利要求4所述的用于控制抖动缓冲器的装置,其中,所述语音段间延迟抖动估计器包括:
时间差估计器,所述时间差估计器用于计算所述最后一个锚帧的接收时间与所述第一帧的接收时间之间的时间差;以及
帧数量估计器,所述帧数量估计器用于估计所述最后一个锚帧与所述第一帧之间的预期的帧数量;并且其中,
所述语音段间延迟抖动估计器被配置成基于所述时间差和预期时间差来估计所述偏移值,其中,所述预期时间差是基于所述预期的帧数量来获得的。
6.根据权利要求5所述的用于控制抖动缓冲器的装置,其中,所述帧数量估计器被配置成基于所述最后一个锚帧的序号和所述第一帧的序号以及关于所述在前语音段与所述当前语音段之间的静默帧的信息来获得所述预期的帧数量,所述关于静默帧的信息被承载在所述在前语音段和所述当前语音段中的至少一个语音段中的至少一个帧中。
7.根据权利要求1至6中任一项所述的用于控制抖动缓冲器的装置,还包括长期长度调节器,所述长期长度调节器用于当所述偏移值大于0时将针对每个帧的所述长期长度调节为更小的值。
8.根据权利要求7所述的用于控制抖动缓冲器的装置,其中,所述长期长度调节器被配置成使所述偏移值随着时间衰减。
9.根据权利要求1至8中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成基于用于所述当前语音段中的所述第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
10.根据权利要求1至9中任一项所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器还被配置成朝着所述长期长度来调节所述抖动缓冲器的当前长度。
11.根据权利要求10所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成通过计算所述抖动缓冲器的所述当前长度和所述长期长度的加权平均值来调节所述当前长度。
12.根据权利要求11所述的用于控制抖动缓冲器的装置,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
13.根据权利要求1至12中任一项所述的用于控制抖动缓冲器的装置,还包括用于监测所述抖动缓冲器的占用率的抖动缓冲器监测器,并且其中,所述抖动缓冲器控制器还被配置成响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
14.根据权利要求13所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
15.根据权利要求13或14所述的用于控制抖动缓冲器的装置,还包括用于监测所述音频信号的内容的信号内容监测器,并且其中,所述抖动缓冲器控制器被配置成在所述音频信号的所述内容不适合帧插入的情况下不增加所述抖动缓冲器的长度。
16.根据权利要求15所述的用于控制抖动缓冲器的装置,其中,所述信号内容监测器被配置成监测所述音频信号的瞬态,并且,所述抖动缓冲器控制器被配置成在瞬态信号区域中不增加所述抖动缓冲器的长度。
17.根据权利要求13或14所述的用于控制抖动缓冲器的装置,其中,所述抖动缓冲器控制器被配置成在所述抖动缓冲器的所述当前长度超过预定阈值的情况下不增加所述抖动缓冲器的长度。
18.根据权利要求13或14所述的用于控制抖动缓冲器的装置,还包括用于对所述当前语音段内的帧插入进行计数的计数器,其中,所述抖动缓冲器控制器被配置成在所述当前语音段内的帧插入的次数超过预定阈值的情况下不增加所述抖动缓冲器的长度。
19.一种用于控制抖动缓冲器的方法,包括:
估计当前语音段中的第一帧的延迟相对于在前语音段中的最后一个锚帧的延迟的偏移值;以及
基于所述抖动缓冲器的针对每个帧的长期长度和所述偏移值来调节所述抖动缓冲器的长度。
20.根据权利要求19所述的用于控制抖动缓冲器的方法,还包括:最初将所述当前语音段中的所述第一帧设置为所述锚帧;以及当新接收的帧的延迟抖动满足预定条件时,将所述新接收的帧设置为所述锚帧。
21.根据权利要求19或20所述的用于控制抖动缓冲器的方法,还包括:计算所述新接收的帧的实际接收时间与所述新接收的帧的预期接收时间之间的差作为所述延迟抖动,所述预期接收时间是以当前锚帧作为参考来计算的。
22.根据权利要求19或20所述的用于控制抖动缓冲器的方法,其中,所述估计所述偏移值的操作包括:估计所述当前语音段中的所述第一帧的延迟相对于紧在所述当前语音段之前的在前语音段中的最后一个锚帧的延迟的偏移值。
23.根据权利要求22所述的用于控制抖动缓冲器的方法,其中,所述估计所述偏移值的操作包括:
计算所述最后一个锚帧的接收时间与所述第一帧的接收时间之间的时间差;
估计所述最后一个锚帧与所述第一帧之间的预期的帧数量;以及
基于所述时间差和预期时间差来估计所述偏移值,其中,所述预期时间差是基于所述预期的帧数量来获得的。
24.根据权利要求23所述的用于控制抖动缓冲器的方法,其中,所述估计所述预期的帧数量的操作包括:基于所述最后一个锚帧的序号和所述第一帧的序号以及关于所述在前语音段与所述当前语音段之间的静默帧的信息来获得所述预期的帧数量,所述关于静默帧的信息被承载在所述在前语音段和所述当前语音段中的至少一个语音段中的至少一个帧中。
25.根据权利要求19至24中任一项所述的用于控制抖动缓冲器的方法,还包括:当所述偏移值大于0时,将针对每个帧的所述长期长度调节为更小的值。
26.根据权利要求25所述的用于控制抖动缓冲器的方法,还包括:使所述偏移值随着时间衰减。
27.根据权利要求19至26中任一项所述的用于控制抖动缓冲器的方法,其中,所述调节所述抖动缓冲器的长度的操作包括:基于用于所述当前语音段中的所述第一帧的所述长期长度和与所述第一帧同时接收到的帧的数量来设置所述抖动缓冲器的针对所述第一帧的长度。
28.根据权利要求19至27中任一项所述的用于控制抖动缓冲器的方法,其中,所述调节所述抖动缓冲器的长度的操作包括:朝着所述长期长度来调节所述抖动缓冲器的当前长度。
29.根据权利要求28所述的用于控制抖动缓冲器的方法,其中,所述朝着所述长期长度来调节所述抖动缓冲器的当前长度的操作包括:计算所述长期长度和所述当前长度的加权平均值。
30.根据权利要求29所述的用于控制抖动缓冲器的方法,其中,当所述长期长度大于所述当前长度时,所述长期长度的权值更大,而当所述长期长度小于所述当前长度时,所述长期长度的权值更小。
31.根据权利要求19至30中任一项所述的用于控制抖动缓冲器的方法,还包括:
监测所述抖动缓冲器的占用率;以及
响应于所述占用率满足预定条件来增加所述抖动缓冲器的长度。
32.根据权利要求31所述的用于控制抖动缓冲器的方法,其中,所述增加所述抖动缓冲器的长度的操作包括:在小于预定阈值的占用率已经连续地出现了预定次数的情况下增加所述抖动缓冲器的长度。
33.根据权利要求31或32所述的用于控制抖动缓冲器的方法,还包括监测音频信号的内容,并且其中,在所述音频信号的所述内容不适合帧插入的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
34.根据权利要求33所述的用于控制抖动缓冲器的方法,其中,所述监测所述音频信号的内容的操作包括:监测所述音频信号的瞬态,并且其中,在瞬态信号区域中不执行所述增加所述抖动缓冲器的长度的操作。
35.根据权利要求31或32所述的用于控制抖动缓冲器的方法,其中,在所述抖动缓冲器的所述当前长度超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
36.根据权利要求31或32所述的用于控制抖动缓冲器的方法,还包括对所述当前语音段内的帧插入进行计数,并且其中,在所述当前语音段内的帧插入的次数超过预定阈值的情况下,不执行所述增加所述抖动缓冲器的长度的操作。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560747.3A CN103888381A (zh) | 2012-12-20 | 2012-12-20 | 用于控制抖动缓冲器的装置和方法 |
ES13818147T ES2714525T3 (es) | 2012-12-20 | 2013-12-19 | Aparato y métodos para controlar una memoria temporal de fluctuaciones de fase |
US14/654,346 US10560393B2 (en) | 2012-12-20 | 2013-12-19 | Controlling a jitter buffer |
PCT/US2013/076387 WO2014100331A1 (en) | 2012-12-20 | 2013-12-19 | Apparatus and methods for controlling jitter buffer |
EP13818147.4A EP2936770B1 (en) | 2012-12-20 | 2013-12-19 | Apparatus and methods for controlling jitter buffer |
HK16104742.5A HK1217141A1 (zh) | 2012-12-20 | 2016-04-26 | 用於控制抖動緩沖器的裝置和方法 |
US16/718,964 US12063162B2 (en) | 2012-12-20 | 2019-12-18 | Controlling a jitter buffer |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210560747.3A CN103888381A (zh) | 2012-12-20 | 2012-12-20 | 用于控制抖动缓冲器的装置和方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103888381A true CN103888381A (zh) | 2014-06-25 |
Family
ID=50957105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210560747.3A Pending CN103888381A (zh) | 2012-12-20 | 2012-12-20 | 用于控制抖动缓冲器的装置和方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10560393B2 (zh) |
EP (1) | EP2936770B1 (zh) |
CN (1) | CN103888381A (zh) |
ES (1) | ES2714525T3 (zh) |
HK (1) | HK1217141A1 (zh) |
WO (1) | WO2014100331A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554019A (zh) * | 2016-01-08 | 2016-05-04 | 全时云商务服务股份有限公司 | 一种音频去抖动系统和方法 |
WO2017107544A1 (zh) * | 2015-12-21 | 2017-06-29 | 小米科技有限责任公司 | 网络抖动处理方法、装置和终端设备 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN108141793A (zh) * | 2015-10-13 | 2018-06-08 | 三星电子株式会社 | 用于提供基于单播的多媒体服务的方法和装置 |
CN111587562A (zh) * | 2017-12-11 | 2020-08-25 | 北欧半导体公司 | 无线电通信 |
WO2022042159A1 (zh) * | 2020-08-31 | 2022-03-03 | 百果园技术(新加坡)有限公司 | 延迟控制方法和装置 |
CN115643393A (zh) * | 2022-12-23 | 2023-01-24 | 广州视景医疗软件有限公司 | 一种针对双眼图像的播放方法和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104469255A (zh) | 2013-09-16 | 2015-03-25 | 杜比实验室特许公司 | 改进的音频或视频会议 |
US9882818B2 (en) * | 2013-09-30 | 2018-01-30 | Apple Inc. | Adjusting a jitter buffer based on inter arrival jitter |
CN103594103B (zh) * | 2013-11-15 | 2017-04-05 | 腾讯科技(成都)有限公司 | 音频处理方法及相关装置 |
CN105099949A (zh) * | 2014-04-16 | 2015-11-25 | 杜比实验室特许公司 | 基于对延迟抖动和对话动态的监视的抖动缓冲器控制 |
KR102422794B1 (ko) * | 2015-09-04 | 2022-07-20 | 삼성전자주식회사 | 재생지연 조절 방법 및 장치와 시간축 변형방법 및 장치 |
US9749178B2 (en) | 2015-09-18 | 2017-08-29 | Whatsapp Inc. | Techniques to dynamically configure target bitrate for streaming network connections |
US10412779B2 (en) * | 2015-09-18 | 2019-09-10 | Whatsapp Inc. | Techniques to dynamically configure jitter buffer sizing |
EP3357197B1 (en) | 2015-09-29 | 2019-07-24 | Dolby Laboratories Licensing Corporation | Method and system for handling heterogeneous jitter |
US9929928B1 (en) * | 2015-12-24 | 2018-03-27 | Microsemi Solutions (U.S.), Inc. | Packet transmitter and method for timestamping packets |
US20170187635A1 (en) * | 2015-12-28 | 2017-06-29 | Qualcomm Incorporated | System and method of jitter buffer management |
DE112016006564T5 (de) * | 2016-03-10 | 2018-11-29 | Mitsubishi Electric Corporation | Empfänger und Ereigniserfassungszeitpunkt-Schätzungsverfahren |
US10686897B2 (en) | 2016-06-27 | 2020-06-16 | Sennheiser Electronic Gmbh & Co. Kg | Method and system for transmission and low-latency real-time output and/or processing of an audio data stream |
GB201614356D0 (en) | 2016-08-23 | 2016-10-05 | Microsoft Technology Licensing Llc | Media buffering |
KR102532645B1 (ko) * | 2016-09-20 | 2023-05-15 | 삼성전자 주식회사 | 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치 |
US10454811B2 (en) | 2017-04-07 | 2019-10-22 | Qualcomm Incorporated | Apparatus and method for de-jitter buffer delay adjustment |
CN109996286A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 通信方法和装置 |
CN110351201B (zh) * | 2018-04-04 | 2021-09-14 | 华为技术有限公司 | 一种数据处理方法及装置 |
US11595316B2 (en) * | 2018-06-01 | 2023-02-28 | Apple Inc. | Adaptive and seamless playback buffer adjustment for streaming content |
JP7094452B2 (ja) * | 2019-07-18 | 2022-07-01 | 三菱電機株式会社 | 情報処理装置、プログラム及び情報処理方法 |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6259677B1 (en) | 1998-09-30 | 2001-07-10 | Cisco Technology, Inc. | Clock synchronization and dynamic jitter management for voice over IP and real-time data |
US6452950B1 (en) | 1999-01-14 | 2002-09-17 | Telefonaktiebolaget Lm Ericsson (Publ) | Adaptive jitter buffering |
US6658027B1 (en) | 1999-08-16 | 2003-12-02 | Nortel Networks Limited | Jitter buffer management |
US6747999B1 (en) * | 1999-11-15 | 2004-06-08 | Siemens Information And Communication Networks, Inc. | Jitter buffer adjustment algorithm |
US6683889B1 (en) | 1999-11-15 | 2004-01-27 | Siemens Information & Communication Networks, Inc. | Apparatus and method for adaptive jitter buffers |
SE517156C2 (sv) | 1999-12-28 | 2002-04-23 | Global Ip Sound Ab | System för överföring av ljud över paketförmedlade nät |
ATE349113T1 (de) | 2000-04-14 | 2007-01-15 | Cit Alcatel | Selbstanpassender zitterspufferspeicher |
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 |
SE0004839D0 (sv) | 2000-12-22 | 2000-12-22 | Ericsson Telefon Ab L M | Method and communication apparatus in a communication system |
US6904059B1 (en) * | 2001-03-06 | 2005-06-07 | Microsoft Corporation | Adaptive queuing |
US20020172229A1 (en) | 2001-03-16 | 2002-11-21 | Kenetec, Inc. | Method and apparatus for transporting a synchronous or plesiochronous signal over a packet network |
EP1382143B1 (en) | 2001-04-24 | 2007-02-07 | Nokia Corporation | Methods for changing the size of a jitter buffer and for time alignment, communications system, receiving end, and transcoder |
US20030112758A1 (en) * | 2001-12-03 | 2003-06-19 | Pang Jon Laurent | Methods and systems for managing variable delays in packet transmission |
US7110422B1 (en) | 2002-01-29 | 2006-09-19 | At&T Corporation | Method and apparatus for managing voice call quality over packet networks |
US7266127B2 (en) | 2002-02-08 | 2007-09-04 | Lucent Technologies Inc. | Method and system to compensate for the effects of packet delays on speech quality in a Voice-over IP system |
US7496086B2 (en) | 2002-04-30 | 2009-02-24 | Alcatel-Lucent Usa Inc. | Techniques for jitter buffer delay management |
JP3825007B2 (ja) | 2003-03-11 | 2006-09-20 | 沖電気工業株式会社 | ジッタバッファの制御方法 |
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 |
CN1320805C (zh) | 2003-09-17 | 2007-06-06 | 上海贝尔阿尔卡特股份有限公司 | 一种分组交换网络自适应抖动缓冲区调整方法 |
AU2003304655A1 (en) | 2003-11-11 | 2005-05-26 | Telefonaktiebolaget Lm Ericsson (Publ) | Adapting playout buffer based on audio burst length |
US7573894B2 (en) | 2004-02-17 | 2009-08-11 | Mitel Networks Corporation | Method of dynamic adaptation for jitter buffering in packet networks |
WO2005089158A2 (en) | 2004-03-16 | 2005-09-29 | Snowshore Networks, Inc. | Jitter buffer management |
US7826441B2 (en) | 2004-08-30 | 2010-11-02 | Qualcomm Incorporated | Method and apparatus for an adaptive de-jitter buffer in a wireless communication system |
US8085678B2 (en) | 2004-10-13 | 2011-12-27 | Qualcomm Incorporated | Media (voice) playback (de-jitter) buffer adjustments based on air interface |
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 |
CN100442858C (zh) * | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
JP4744332B2 (ja) | 2006-03-22 | 2011-08-10 | 富士通株式会社 | ゆらぎ吸収バッファ制御装置 |
US7680099B2 (en) | 2006-08-22 | 2010-03-16 | Nokia Corporation | Jitter buffer adjustment |
EP1919137A1 (en) | 2006-10-30 | 2008-05-07 | Nokia Siemens Networks Gmbh & Co. Kg | Method for estimating jitter buffer management performance |
EP1931068A1 (en) | 2006-12-04 | 2008-06-11 | Nokia Siemens Networks Gmbh & Co. Kg | Method of adaptively dejittering packetized signals buffered at the receiver of a communication network node |
US8472320B2 (en) * | 2006-12-06 | 2013-06-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Jitter buffer control |
US8619642B2 (en) | 2007-03-27 | 2013-12-31 | Cisco Technology, Inc. | Controlling a jitter buffer |
US7733893B2 (en) | 2007-06-29 | 2010-06-08 | Global Ip Solutions (Gips) Ab | Method and receiver for determining a jitter buffer level |
EP2215785A4 (en) * | 2007-11-30 | 2016-12-07 | ERICSSON TELEFON AB L M (publ) | PLAY OUT DELAY ESTIMATE |
US7852882B2 (en) | 2008-01-24 | 2010-12-14 | Broadcom Corporation | Jitter buffer adaptation based on audio content |
CN101610249A (zh) | 2008-06-18 | 2009-12-23 | 鸿富锦精密工业(深圳)有限公司 | 抖动缓冲器及抖动缓冲方法 |
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 |
US8089992B2 (en) | 2009-09-30 | 2012-01-03 | At&T Intellectual Property I, L.P. | Systems and methods to measure the performance of a de-jitter buffer |
KR101399604B1 (ko) | 2010-09-30 | 2014-05-28 | 한국전자통신연구원 | 지터버퍼 조정장치, 전자장치 및 그 방법 |
US20140226476A1 (en) * | 2011-10-07 | 2014-08-14 | Telefonaktiebolaget L M Ericsson (Publ) | Methods Providing Packet Communications Including Jitter Buffer Emulation and Related Network Nodes |
MY170699A (en) | 2013-06-21 | 2019-08-26 | Fraunhofer Ges Forschung | Jitter buffer control, audio decoder, method and computer program |
-
2012
- 2012-12-20 CN CN201210560747.3A patent/CN103888381A/zh active Pending
-
2013
- 2013-12-19 US US14/654,346 patent/US10560393B2/en active Active
- 2013-12-19 WO PCT/US2013/076387 patent/WO2014100331A1/en active Application Filing
- 2013-12-19 ES ES13818147T patent/ES2714525T3/es active Active
- 2013-12-19 EP EP13818147.4A patent/EP2936770B1/en active Active
-
2016
- 2016-04-26 HK HK16104742.5A patent/HK1217141A1/zh unknown
-
2019
- 2019-12-18 US US16/718,964 patent/US12063162B2/en active Active
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108141793B (zh) * | 2015-10-13 | 2021-07-09 | 三星电子株式会社 | 用于提供基于单播的多媒体服务的方法和装置 |
US10972878B2 (en) | 2015-10-13 | 2021-04-06 | Samsung Electronics Co., Ltd. | Method and apparatus for providing unicast based multimedia service |
CN108141793A (zh) * | 2015-10-13 | 2018-06-08 | 三星电子株式会社 | 用于提供基于单播的多媒体服务的方法和装置 |
US11381938B2 (en) | 2015-10-13 | 2022-07-05 | Samsung Electronics Co., Ltd. | Method and apparatus for providing unicast-based multimedia service |
US10129161B2 (en) | 2015-12-21 | 2018-11-13 | Xiaomi Inc. | Method and apparatus for handling network jitter |
WO2017107544A1 (zh) * | 2015-12-21 | 2017-06-29 | 小米科技有限责任公司 | 网络抖动处理方法、装置和终端设备 |
CN105554019B (zh) * | 2016-01-08 | 2018-07-24 | 全时云商务服务股份有限公司 | 一种音频去抖动系统和方法 |
CN105554019A (zh) * | 2016-01-08 | 2016-05-04 | 全时云商务服务股份有限公司 | 一种音频去抖动系统和方法 |
CN107566889A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN107566889B (zh) * | 2017-09-15 | 2020-06-16 | 深圳国微技术有限公司 | 音频流流速误差处理方法、装置、计算机装置及计算机可读存储介质 |
CN111587562A (zh) * | 2017-12-11 | 2020-08-25 | 北欧半导体公司 | 无线电通信 |
CN111587562B (zh) * | 2017-12-11 | 2023-08-25 | 北欧半导体公司 | 无线电通信 |
WO2022042159A1 (zh) * | 2020-08-31 | 2022-03-03 | 百果园技术(新加坡)有限公司 | 延迟控制方法和装置 |
CN115643393A (zh) * | 2022-12-23 | 2023-01-24 | 广州视景医疗软件有限公司 | 一种针对双眼图像的播放方法和装置 |
CN115643393B (zh) * | 2022-12-23 | 2023-03-10 | 广州视景医疗软件有限公司 | 一种针对双眼图像的播放方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2936770B1 (en) | 2019-02-06 |
US10560393B2 (en) | 2020-02-11 |
US20220263423A9 (en) | 2022-08-18 |
US20150350099A1 (en) | 2015-12-03 |
US20200127577A1 (en) | 2020-04-23 |
HK1217141A1 (zh) | 2016-12-23 |
ES2714525T3 (es) | 2019-05-28 |
WO2014100331A1 (en) | 2014-06-26 |
US12063162B2 (en) | 2024-08-13 |
EP2936770A1 (en) | 2015-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103888381A (zh) | 用于控制抖动缓冲器的装置和方法 | |
US10680657B2 (en) | Media controller with jitter buffer | |
JP4838273B2 (ja) | メディア内同期化のための適応型メディア再生方法および装置 | |
US10805196B2 (en) | Packet loss and bandwidth coordination | |
US7263109B2 (en) | Clock skew compensation for a jitter buffer | |
US7424026B2 (en) | Method and apparatus providing continuous adaptive control of voice packet buffer at receiver terminal | |
KR101877699B1 (ko) | 지터-제거 버퍼 업데이트 | |
US20060092918A1 (en) | Audio receiver having adaptive buffer delay | |
US10135707B2 (en) | Playout delay adjustment method and electronic apparatus thereof | |
CN106487779A (zh) | 带宽管理 | |
US7349330B1 (en) | Packet receiver with the influence of jitter and packet losses reduced before a buffer becomes idle due to data delays and packet receiving method using the same | |
CN102292943A (zh) | 分组通信系统中的接收节点和用于管理分组通信系统中的接收节点中的缓冲器的方法 | |
CN105119755A (zh) | 一种抖动缓冲区调整方法及装置 | |
JP4076981B2 (ja) | 通信端末装置およびバッファ制御方法 | |
US20180227231A1 (en) | Identifying Network Conditions | |
US7983309B2 (en) | Buffering time determination | |
US8791981B2 (en) | Bit rate control apparatus and method thereof | |
Li et al. | Adaptive playout scheduling for VoIP using the K-Erlang distribution | |
JP2016126037A (ja) | 信号処理装置、および信号処理方法、並びにプログラム | |
JP5806719B2 (ja) | 音声パケット再生装置とその方法とプログラム | |
WO2016151852A1 (ja) | 音声再生装置、画像表示装置及びその音声再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140625 |