CN107430503B - 音频传输系统的信号同步和等待时间抖动补偿 - Google Patents

音频传输系统的信号同步和等待时间抖动补偿 Download PDF

Info

Publication number
CN107430503B
CN107430503B CN201680020077.2A CN201680020077A CN107430503B CN 107430503 B CN107430503 B CN 107430503B CN 201680020077 A CN201680020077 A CN 201680020077A CN 107430503 B CN107430503 B CN 107430503B
Authority
CN
China
Prior art keywords
audio
thread
capture
playback
latency
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
CN201680020077.2A
Other languages
English (en)
Other versions
CN107430503A (zh
Inventor
M·多尔贝克
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN107430503A publication Critical patent/CN107430503A/zh
Application granted granted Critical
Publication of CN107430503B publication Critical patent/CN107430503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L21/00Speech or voice signal processing techniques to produce another audible or non-audible signal, e.g. visual or tactile, in order to modify its quality or its intelligibility
    • G10L21/04Time compression or expansion
    • G10L21/055Time compression or expansion for synchronising with other signals, e.g. video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/162Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • G11B2020/10546Audio or video recording specifically adapted for audio data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
    • G11B2020/1074Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control involving a specific threshold value

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Dram (AREA)

Abstract

讨论了与针对音频系统的输入和输出信号同步以及等待时间抖动补偿相关的技术。这种技术可以包括:基于音频捕获线程与音频回放线程之间的所检测到的等待时间确定经虚拟地缓冲的样本数量;以及基于所述经虚拟地缓冲的样本数量使音频输入信号与音频输出信号同步。

Description

音频传输系统的信号同步和等待时间抖动补偿
优先权声明
本申请要求于2015年4月30日提交的且名称为“SIGNAL SYNCHRONIZATION ANDLATENCY JITTER COMPENSATION FOR AUDIO TRANSMISSION SYSTEMS(音频传输系统的信号同步和等待时间抖动补偿)”的美国非临时专利申请序列号14/700,481的优先权,所述美国非临时专利申请通过引用以其全部内容结合在此。
背景技术
在音频传输系统的背景下,对于执行各种各样的音频处理任务(诸如回波补偿、有源噪声消除等),输入音频信号与输出音频信号之间的同步可能是令人期望的或甚至是必需的。例如,当输入音频信号与输出音频信号之间存在明确限定的等待时间时,可以使输入音频信号与输出音频信号同步。
然而,当前音频传输系统由于各种各样的因素(诸如根据相同音频时钟操作相关联捕获设备和回放设备的系统中的输入驱动器与输出驱动器之间的不一致同步;难以补偿根据不同音频时钟操作捕获设备和回放设备的系统中的异步采样率转换中的抖动;等等)而无法提供这种同步。
可能令人期望的是,在音频传输系统背景下高效地使输入音频信号与输出音频信号同步。针对这些和其他考虑因素,需要本发明的改进。随着期望提供高质量图像处理和计算机视觉变得更广泛,这种改进可能变得很关键。
附图说明
在附图中通过示例的方式而非通过限制的方式展示了本文中所描述的材料。为了说明的简单和清晰起见,附图中所展示的元件不一定按比例绘制。例如,为清楚起见,一些元件的尺寸相对于其他元件可能被放大了。进一步,在认为适当的情况下,在附图之间对参考标记加以重复以表示相应的或相似的元件。在附图中:
图1展示了示例音频系统;
图2展示了示例捕获线程执行和示例回放线程执行的示例时序图;
图3展示了具有共享音频时钟的示例音频系统;
图4展示了用于执行音频系统的同步的示例过程;
图5展示了示例捕获线程执行和示例回放线程执行的示例时序图;
图6展示了具有独立音频时钟的示例音频系统;
图7展示了用于执行音频系统的同步的示例过程;
图8展示了示例捕获线程执行和示例回放线程执行的示例时序图;
图9是流程图,展示了用于执行音频信号同步的示例过程;
图10是用于执行音频信号同步的示例系统的示意图;并且
图11是全部根据本公开的至少一些实施方式安排的示例系统的示意图。
具体实施方式
现在参照附图描述一个或多个实施例或实施方式。虽然对特定配置和安排进行了讨论,但应理解,这仅出于说明目的来进行。相关领域的技术人员将认识到,在不背离本说明书的精神和范围的情况下可以采用其他配置和安排。对相关领域技术人员而言将明显的是,本文中描述的技术和/或安排还可以在除了本文中描述的系统和应用之外的各种各样的其他系统和应用中被采用。
虽然以下描述阐述了可以在如例如片上系统(SoC)架构等架构中显现各实施方式,但本文中描述的技术和/或安排的实施方式并不局限于具体的架构和/或计算系统并且出于类似目的可以由任何架构和/或计算系统实现。例如,采用例如多个集成电路(IC)芯片和/或封装体和/或各种计算设备和/或消费电子(CE)设备(诸如音频设备、多功能设备、平板计算机、智能电话等)的各种架构可以实现本文描述的技术和/或安排。此外,虽然以下描述可以阐述多个特定细节(诸如逻辑实现、系统部件的类型和相互关系、逻辑划分/集成选择等),但可以在没有这些特定细节的情况下实践要求保护的主题。在其他实例中,可以不详细示出某些材料(如例如,控制结构和完整的软件指令序列),以便不模糊本文中公开的材料。
本文中公开的材料可以在硬件、固件、软件、或其任意组合中实现。本文中公开的材料还可以被实现为存储于机器可读介质上的指令,所述指令可以由一个或多个处理器来读取并执行。机器可读介质可以包括用于存储或传输采用由机器(例如,计算设备)可读的形式的信息的任何介质和/或机构。例如,机器可读介质可包括:只读存储器(ROM);随机存取存储器(RAM);磁盘存储介质;光存储介质;闪存设备;电气、光学、声学或其他形式的传播信号(例如,载波、红外信号、数字信号等)等。
说明书中提到“一种实施方式”、“实施方式”、“示例实施方式”等表明所描述的实施方式可以包括具体特征、结构、或特性,但每个实施例可能不一定包括这个具体特征、结构、或特性。此外,这些短语不一定指代同一实施方式。另外,当结合实施例描述具体特征、结构或特性时,应理解,结合无论本文中是否明确地描述的其他实施方式来实施这种特征、结构或特性在本领域技术人员的认知范围内。
本文中描述的方法、设备、装置、计算平台、系统和物品涉及使输入音频信号与输出音频信号同步。
如以上所描述的,在音频传输系统的背景下,可能令人期望的是使输入音频信号与输出音频信号同步。例如,音频传输系统可以是基于块的多线程音频传输系统。在本文所讨论的一些实施例中,执行音频系统的同步可以包括检测音频捕获线程与音频回放线程之间的等待时间。例如,可以基于将捕获线程函数调用的时间戳与回放线程函数调用的时间戳进行比较来检测等待时间。基于等待时间(例如,所测得或检测到的等待时间),可以确定经虚拟地缓冲的音频样本数量。例如,经虚拟地缓冲的音频样本数量可以对应于采样率乘以等待时间并且因为任何实际(例如,物理)缓冲音频样本都不与等待时间相关联,所以其可以被表征为虚拟的。基于所确定的经虚拟地缓冲的音频样本,可以使音频输入信号与音频输出信号同步。
例如,在具有基于相同音频时钟操作的捕获设备(例如,声卡等)和回放设备(例如,以太网发射器等)的音频传输系统中,使输入信号与输出信号同步可以包括:初始化与捕获设备相关联的捕获驱动器和与回放设备相关联的回放驱动器;在这种初始化之后确定经虚拟地缓冲的音频样本数量;以及基于经虚拟地缓冲的音频样本数量初始化与捕获驱动器和回放驱动器相关联的缓冲器,从而使得输入信号和输出信号在其之间具有目标、预定或标称等待时间。例如,目标等待时间和共享音频时钟可以在输入信号与输出信号之间提供已知的、明确限定的且一致的等待时间。
在其他示例中,音频传输系统可以具有基于独立音频时钟操作的捕获设备和回放设备,并且所述系统可以包括用于实现经由闭环控制器控制的转换比的异步采样率转换器。在这种示例中,闭环控制器可以对来自与捕获驱动器和回放驱动器相关联的缓冲器的缓冲水平以及经虚拟地缓冲的音频样本数量进行采样,并且闭环控制器可以基于缓冲器中物理样本数量和经虚拟地缓冲的音频样本数量生成转换比。对物理样本数量和虚拟样本数量两者的这种采样可以随着时间的推移而在闭环控制器的输入中提供较少噪声并且提供更准确且稳健的转换比。
图1展示了根据本公开的至少一些实施方式安排的示例音频系统100。如图1中所示出的,音频系统100可以包括可以实现操作系统(OS)102的中央处理单元(CPU)101、捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107和经虚拟地缓冲的样本模块108。例如,操作系统102可以实现捕获线程103、回放线程105、等待时间检测模块107和经虚拟地缓冲的样本模块108。音频系统100可以包括诸如汽车音频平台、音频平台、音频传输系统、音频架构等任何适当的音频系统。例如,音频系统100可以实现基于块的多线程音频传输系统。在一些示例中,OS 102可以被表征为基于块的多线程音频传输OS。例如,音频系统100可以是基于块的,从而使得其处理音频数据(诸如脉冲编码调制(PCM)音频数据)块。例如,音频数据块可以由样本组成,所述样本可以由数据字组成,所述数据字可以由数据位组成。
而且,如所示出的,捕获线程103可以实现捕获驱动器104,并且回放线程105可以实现回放驱动器106。而且,如所示出的,系统100可以包括可以分别在捕获驱动器104和回放驱动器106的控制下操作的捕获设备110和回放设备、以及缓冲器109。缓冲器109可以包括诸如环形缓冲器或先入先出(FIFO)缓冲器等任何适当的缓冲器。如所示出的,在一些示例中,可以在CPU 101之外实现缓冲器109。在其他示例中,可以由CPU 101实现缓冲器109。例如,缓冲器109可以包括用于实现环形缓冲器、FIFO缓冲器等的存储器和逻辑电路系统。
此外,如所示出的,捕获设备110可以接收音频输入信号121。音频输入信号121可以是诸如来自音频捕获源(诸如麦克风(和相关联电路系统)等)的模拟或数字输入信号等任何适当的输入信号。捕获设备110可以包括诸如硬件捕获设备等任何适当的捕获设备。例如,捕获设备110可以是声卡等。捕获设备110、CPU 101和回放设备可以处理音频输入信号121,并且音频系统100可以经由回放设备122提供音频输出信号122。音频输出信号122可以是诸如模拟或数字输出信号等任何适当的输出信号。音频输出信号122可以被提供给诸如扬声器(和相关联电路系统)等任何音频输出设备。回放设备111可以包括诸如硬件回放设备等任何适当的回放设备。例如,回放设备111可以是以太网发射器等。例如,捕获设备110和回放设备111可以被实现为由两个独立驱动器(例如,分别是捕获驱动器104和回放驱动器106)服务的两个独立硬件设备。如针对音频系统300和600所讨论的,捕获设备110和回放设备111可以由共同音频时钟或由单独音频时钟驱动。
如所讨论的,音频系统100可以是基于块的系统。例如,捕获驱动器104和回放驱动器106可以以基于块的方式(例如,捕获驱动器104可以提供PCM音频样本块等,并且回放驱动器106可以消耗PCM音频样本块等)操作。块的长度可以被表征为一段时间。如图1中所示出的,捕获驱动器104与回放驱动器106之间的接口可以经由缓冲器109提供。
如图1中所示出的,系统100可以包括等待时间检测模块107,所述等待时间检测模块可以检测或测量对捕获线程103的执行与对回放线程105的执行之间的等待时间(L)123。等待时间检测模块107可以使用任何一种或多种适当的技术来检测对捕获线程103的执行与对回放线程105的执行之间的等待时间123。例如,等待时间检测模块107可以将捕获线程函数调用(FC)124与回放线程函数调用(FC)125进行比较以便检测对捕获线程103的执行与对回放线程105的执行之间的等待时间123。例如,等待时间123可以被测量或检测为捕获线程函数调用的捕获线程时间戳与捕获线程函数调用之后的回放线程函数调用的回放线程时间戳之间的时间差。例如,在多线程音频传输系统中,等待时间123可以是对捕获线程的执行与对回放线程的执行之间的时间间隔。
图2展示了根据本公开的至少一些实施方式安排的示例捕获线程执行201和示例回放线程执行202的示例时序图200。如图2中所示出的,捕获线程执行201可以包括在其之间具有定时——捕获时间(T捕获)204——的捕获操作203,回放线程执行202可以包括在其之间具有定时——回放时间(T回放)206——的回放操作205。例如,随着时间207推进,捕获线程执行201可以以1/T捕获的捕获率执行捕获操作203,并且回放线程执行202可以以1/T回放的回放率执行回放操作205。在一些示例中,捕获率和回放率可以与采样率相关联。例如,采样率(fs)可以等于捕获率的整数倍或等于回放率的整数倍或两者。采样率可以是音频应用的任何适当采样率,诸如32000Hz、44100Hz、48000Hz等。捕获率可以被选择为使得每项捕获操作传输与周期T捕获=N捕获/fs对应的整数个样本N捕获。回放率可以被选择为使得每项回放操作传输与周期T回放=N回放/fs对应的整数个样本N回放。例如,对于48000Hz的采样率,捕获线程和回放线程可以对具有192个样本的块进行操作,从而使得捕获率和回放率可以是250Hz(例如,48000Hz/192)。
如所示出的,捕获操作203与回放操作205之间的等待时间(T)208可以被提供为特定捕获操作209与紧随其后的回放操作210之间的时间差。例如,等待时间208可以是捕获操作209与回放操作210之间的间隔。如所讨论的,可以使用任何一种或多种适当的技术(诸如,确定与捕获操作209相关联的时间戳(例如,与捕获操作209相关联的函数调用的时间戳)和与回放操作210相关联的时间戳(例如,与捕获操作210相关联的函数调用的时间戳)之差)来确定等待时间208。例如,可以基于捕获操作的时间和紧随其后的回放操作的时间来确定等待时间208。
返回到图1,如所示出的,等待时间检测模块107可以将等待时间123提供给经虚拟地缓冲的样本模块108。等待时间123可以包括任何适当的数据,诸如与等待时间相关联的持续时间、与多个等待时间相关联的多个持续时间或多个等待时间的中值持续时间等。例如,等待时间检测模块107可以生成并且提供这种持续时间或中值持续时间等。例如,中值持续时间可以基于约15个等待时间样本等。经虚拟地缓冲的样本模块108可以接收等待时间123,并且经虚拟地缓冲的样本模块108可以基于等待时间123来生成经虚拟地缓冲的样本(VBS)126数量。经虚拟地缓冲的样本模块108可以使用任何一种或多种适当的技术来生成经虚拟地缓冲的样本126数量。例如,经虚拟地缓冲的样本126数量可以基于等待时间123和经由音频系统100实现的采样率(fs)。
如所讨论的,经虚拟地缓冲的样本模块108可以使用任何一种或多种适当的技术来生成经虚拟地缓冲的样本126数量。在一些示例中,可以基于等待时间123和采样率(诸如,如等式(1)中所示出的,通过将采样率与等待时间123相乘)来生成经虚拟地缓冲的样本126数量:
N经虚拟地缓冲的样本=fs·T
(1)其中,N经虚拟地缓冲的样本可以是经虚拟地缓冲的样本数量,fs可以是采样率,并且T可以是等待时间。
图3展示了根据本公开的至少一些实施方式安排的具有共享音频时钟303的示例音频系统300。如图3中所示出的,音频系统300可以包括可以实现操作系统(OS)102的中央处理单元(CPU)101、捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108和缓冲器初始化模块301。此外,音频系统300可以包括可以接收音频输入信号121的捕获设备110、可以提供音频输出信号122的回放设备111以及缓冲器109。例如,CPU 101、OS 102、捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、捕获设备110、音频输入信号121、回放设备111、音频输出信号122和缓冲器109可以包括任何适当的特性并且可以执行如针对音频系统100所讨论的任何操作,并且为了简洁起见将不再重复这种细节。
而且,如图3中所示出的,音频系统300可以实现或接收音频时钟303。如所示出的,音频时钟303可以被提供给捕获设备110和回放设备111。例如,音频时钟303可以将共同音频时钟提供给捕获设备110和回放设备111。在一些示例中,音频时钟303可以用于为如本文中所讨论的捕获和回放操作计时或实现所述捕获和回放操作。例如,音频时钟303可以提供捕获设备110与回放设备111的同步,从而使得音频系统300可以被表征为同步音频系统等。例如,捕获设备110和回放设备111可以在如由音频时钟303所建立的相同时域中操作。然而,如所示出的,捕获设备110可以由捕获驱动器104进行服务并且回放设备111可以由回放驱动器106进行服务,从而使得捕获设备110和回放设备111可以由独立驱动器进行服务。此外,捕获驱动器104和回放驱动器可以不提供为音频输入信号121与音频输出信号122的严格同步。
如本文进一步讨论的,音频输入信号121与音频输出信号122之间的同步可以经由缓冲器初始化信号302提供。例如,在音频系统300启动之后,捕获驱动器104和回放驱动器106可以被初始化或启动。在这种初始化之后,等待时间检测模块107可以检测等待时间123,并且将等待时间123提供给可以确定经虚拟地缓冲的样本126数量的经虚拟地缓冲的样本模块108。缓冲器初始化模块301可以确定用于初始化缓冲器109的缓冲器初始化信号301。例如,缓冲器初始化信号302可以指示基于经虚拟地缓冲的样本126数量的经物理地缓冲的样本数量以及可以在初始化时提供给缓冲器109的目标等待时间304。这种经物理地缓冲的样本可以被插入作为零值样本或作为跳过样本等。例如,可以使音频输出信号122中的这种经物理地缓冲的样本静音。这种经物理地缓冲的样本可以在音频系统300初始化时提供音频输入信号121与音频输出信号122之间的已知且明确限定的等待时间(例如,所选择或预定的目标等待时间304)。例如,基于音频时钟303调整到目标等待时间304和操作可以为音频系统300提供音频输入信号121与音频输出信号122之间的明确限定的同步。
图4展示了根据本公开的至少一些实施方式安排的用于执行音频系统的同步的示例过程400。如图4中所展示的,过程400可以包括一项或多项操作401至408。过程400可以由音频系统(例如,音频系统300或本文中所讨论的任何其他设备或系统)执行,或者过程400的部分可以由系统执行以便执行音频信号同步和/或抖动补偿。可以针对任何音频系统启动、复位等重复过程400或其部分。
如所示出的,过程400可以开始于开始操作401,在操作402处,“选择目标等待时间”,在所述操作处,可以选择目标等待时间。例如,目标等待时间可以是输入音频信号与输出音频信号之间的目标等待时间。这种目标等待时间可以被表征为标称等待时间、所选等待时间、预定等待时间等。可以使用任何一种或多种适当的技术来选择这种目标等待时间。例如,可以预定并设定音频系统的目标等待时间;目标等待时间可由用户选择;目标等待时间可以基于捕获时间或捕获率、回放时间或回放率、采样率等生成。例如,参照音频系统300,如所示出的,可以由操作系统102确定目标等待时间304并且可以将其提供给缓冲器初始化模块301。
在一些示例中,可以基于经由捕获线程实现的捕获时间(例如,捕获率的倒数)来确定目标或标称等待时间。例如,如等式(2)中所示出的,目标或标称等待时间可以是捕获时间乘以标称等待时间因子。
T标称=LF·T捕获
(2)其中,LF可以是等待时间因子,T标称可以是标称或目标等待时间,并且T捕获可以是捕获时间。等待时间因子可以是任何适当的因子,诸如约2到3的范围中的值等。在一些示例中,等待时间因子可以是2.5。
例如,标称等待时间可以被选择为使得其足够大以便包括针对捕获线程处的串并转换和回放线程处的并串转换的一个时间段(例如,一个捕获时间(T捕获)204,请参照图2)以及也是一个时间段(例如,最大等待时间是一个时间段)的最大测量启动等待时间(例如,在操作405处确定的等待时间(T)208),基于块的音频处理可能需要所述串并转换和并串转换。例如,如进一步讨论的,可以使用过程400的技术将未知启动等待时间校正为已知等待时间。在这种示例中,等待时间因子可以具有最小值2。然而,这种标称等待时间可能易受抖动等的影响,并且等待时间因子(和标称等待时间)可以被选择以减小这种抖动。例如,对于提供用于数据转换的时间、对最大测量启动等待时间的补偿和抖动减小,等待时间因子2.5可能是有利的。例如,如果音频系统的采样率是48000Hz并且每项捕获操作传输N捕获=192个样本,从而使得捕获时间或时间段是4ms,则等待时间因子2.5可以提供10ms的标称等待时间。这种标称等待时间可以提供4ms(例如,1个周期)的数据转换时间、对高达4ms测量启动等待时间的补偿和2ms的标称剩余等待时间,所述标称剩余等待时间可以提供相对于所述周期(例如,4ms周期)在中途抵消的并且因此高度耐受抖动的等待时间。
如所讨论的,标称等待时间可以是任何适当的值,诸如,对于4ms周期系统,示例性10ms。同样,如所讨论的,标称等待时间可以为系统所知并且因此可以是对音频系统的操作的目标等待时间。例如,音频系统的缓冲器可以被初始化以便将未知但测得的等待时间转换为已知等待时间(例如,目标等待时间)。这种初始化过程可以提供输入音频信号与输出音频信号之间可由系统100用于实现各种音频处理(诸如回波补偿、有源噪声消除等)的明确限定且稳健的等待时间。
过程400可以在操作403——“初始化捕获驱动器和回放驱动器”——处继续,在所述操作处,可以初始化捕获驱动器和回放驱动器。例如,参照图3,音频系统300可以在例如音频系统300启动之后初始化或启动捕获驱动器104和回放驱动器106。音频系统300可以使用任何一种或多种适当的技术来初始化捕获驱动器104和回放驱动器106。例如,对捕获驱动器104和回放驱动器106的初始化可以提供捕获操作与回放操作之间的未知(并且因此,非期望的)等待时间。参照图2,例如,在捕获驱动器104和回放驱动器106初始化之后,捕获线程执行201和回放线程执行可以在其之间具有未知等待时间(T)208。
返回到图4,过程400可以在操作404——“检测捕获线程与回放线程之间的等待时间”——处继续,在所述操作处,可以检测捕获线程与回放线程之间的等待时间。例如,等待时间可以被表征为启动等待时间、检测到的启动等待时间、测得的启动等待时间等。可以使用任何一种或多种适当的技术来检测和/或测量等待时间。例如,参照图3,等待时间检测模块107可以使用本文中所讨论的任何技术来检测等待时间(例如,等待时间123)。等待时间可以是单个等待时间测量结果、多个等待时间测量结果的中值等。参照图2,等待时间(例如,检测到的启动等待时间等)可以是等待时间(T)208,从而使得等待时间可以是捕获操作与回放操作210之间的间隔。
返回到图4,过程400可以在操作405——“确定经虚拟地缓冲的样本数量”——处继续,在所述操作处,可以基于在操作404处使用任何一种或多种适当的技术来检测到和/或测得的等待时间来确定经虚拟地缓冲的样本数量。例如,如关于等式(1)所示出的,经虚拟地缓冲的样本数量可以是等待时间乘以音频系统的采样率。例如,参照图3,经虚拟地缓冲的样本模块108可以使用本文中所讨论的任何技术来生成经虚拟地缓冲的样本数量(例如,经虚拟地缓冲的样本126数量)。如所讨论的,因为任何实际缓冲的音频样本都不与等待时间相关联,所以经虚拟地缓冲的音频样本数量可以被表征为虚拟的。
返回到图4,过程400可以在操作406——“确定经物理地缓冲的启动样本数量”——处继续,在所述操作处,可以基于经虚拟地缓冲的样本数量使用任何一种或多种适当的技术来确定经物理地缓冲的样本数量。例如,经物理地缓冲的启动样本数量可以表示可以在缓冲器初始化时提供以便将在操作404处检测到的所测得的(例如,未知且非期望的)启动等待时间移动或转换为在操作402处选择的目标等待时间的缓冲样本数量。可以使用任何一种或多种适当的技术来确定经物理地缓冲的启动样本数量。例如,参照图3,缓冲器初始化模块301可以生成基于经虚拟地缓冲的样本126数量的经物理地缓冲的启动样本数量以及目标等待时间304,并且缓冲器初始化模块301可以提供经物理地缓冲的启动样本数量作为缓冲器初始化信号302的一部分。
如所讨论的,可以使用任何一种或多种适当的技术来确定(例如,经由缓冲器初始化模块301等)经物理地缓冲的启动样本数量。例如,如等式(3)中所示出的,可以确定与在操作402处确定的目标等待时间相关联的总体样本数量,并且如等式(4)中所示出的,可以确定经物理地缓冲的启动样本数量:
N总体样本=T标称等待时间·fs
(3)N经物理地缓冲的样本=N总体样本-N经虚拟地缓冲的样本
(4)其中,N总体样本可以是总体样本数量(例如,初始化缓冲器以提供期望标称等待时间所需的总体样本数量),T标称等待时间可以是标称或目标等待时间(例如,如在操作402处所确定的),fs可以是采样率,N经物理地缓冲的样本可以是经物理地缓冲的启动样本数量(例如,用于物理地缓冲以使信号等待时间为标称或目标等待时间的样本数量),并且N经虚拟地缓冲的样本可以是在操作405处确定的经虚拟地缓冲的样本数量。
例如,如经由缓冲器初始化模块301实现的操作406可以确定在初始化时物理地存储在缓冲器中以便将等待时间从所测得或所检测到的等待时间(并且与经虚拟地缓冲的样本数量相关联)移动至目标等待时间(并且与总体样本数量相关联)的样本数量。如所示出的,这种物理存储的样本数量可以是经虚拟地缓冲的样本数量与总体样本数量之差。
过程400可以在操作407——“初始化缓冲器”——处继续,在所述操作处,可以初始化音频系统的缓冲器。例如,参照图3,缓冲器初始化模块301可以将缓冲器初始化信号302提供给缓冲器109以便进行初始化。如所讨论的,缓冲器初始化信号302可以包括在初始化时存储在缓冲器109中的经物理地缓冲的启动样本数量。这种样本可以被处理并且可以由此提供附加等待时间或滞后以便将等待时间从所测得的等待时间(例如,等待时间123)移动至目标等待时间(例如,目标等待时间304)。这种样本可以包括任何适当的数据,诸如零值样本、跳过样本、随机数据值样本等。此外,缓冲器初始化信号302可以包括缓冲器初始化或启动信号。例如,缓冲器109(例如,环形缓冲器、FIFO缓冲器等)可以对与经物理地缓冲的启动样本数量相关联的数据进行缓冲并且基于接收缓冲初始化信号302来初始化或启动。
返回到图4,如所示出的,过程400可以在结束操作407处结束。例如,过程400可以提供音频系统的启动或初始化过程,从而使得在过程400之后,音频系统可以根据被同步且其间具有已知等待时间的音频输入信号121和音频输出信号122操作。可以在启动音频系统或复位音频系统等时执行过程400。例如,过程400可以在系统已经启动之后通过测量捕获线程与执行线程之间的等待时间来提供等待时间补偿,并且过程400可以对输入信号与输出信号之间的非期望未知等待时间提供有源补偿。
图5展示了根据本公开的至少一些实施方式安排的示例捕获线程执行501和示例回放线程执行502的示例时序图500。例如,时序图500可以展示捕获线程执行501、回放线程执行502和在执行过程400之后的缓冲器填充水平520。如图5中所示出的,捕获线程执行501可以包括在其之间具有定时——捕获时间(T捕获)504——的捕获操作503,回放线程执行502可以包括在其之间具有定时——回放时间(T回放)506——的回放操作505。例如,随着时间507推进,捕获线程执行501可以以1/T捕获的捕获率执行捕获操作503,并且回放线程执行502可以以1/T回放的回放率执行回放操作505。在一些示例中,捕获率和回放率可以与采样率相关联。例如,采样率(fs)可以等于捕获率的整数倍或回放率的整数倍或两者。采样率可以是音频应用的任何适当采样率,诸如32000Hz、44100Hz、48000Hz等。捕获率可以被选择为使得每项捕获操作传输与周期T捕获=N捕获/fs对应的整数个样本N捕获。回放率可以被选择为使得每项回放操作传输与周期T回放=N回放/fs对应的整数个样本N回放。
如所示出的,可以如针对过程400所讨论的那样生成捕获操作503与回放操作505之间的已知等待时间(TKL)508,从而使得已知等待时间508可以是特定捕获操作509与紧随其后的回放操作510之间的时间差。例如,已知等待时间508可以是捕获操作509与回放操作510之间的间隔以及捕获操作503的任何捕获操作与回放操作505中的紧随其后的回放操作之间的间隔。如所讨论的,已知等待时间508可以用于在初始化时使用经物理地缓冲的样本来初始化缓冲器,从而使得经物理地缓冲的样本数量可以基于总体缓冲样本数量(例如,与标称或目标等待时间相关联)和经虚拟地缓冲的样本数量(例如,与在启动时的捕获线程执行501与回放线程执行502之间的检测等待时间相关联)。在一些示例中,可以依据等式(4)(即,根据总体缓冲样本数量(例如,与标称或目标等待时间相关联)与经虚拟地缓冲的样本数量(例如,与在启动时的捕获线程执行501与回放线程执行502之间的检测等待时间相关联)之差)选择用于初始化缓冲器的经物理地缓冲的样本数量。
图5还展示了随着时间507的缓冲器填充水平520。如所示出的,在填充持续时间(TF)期间,缓冲器填充水平520可以是特定值(例如,一个或多个),并且在空持续时间(TE)514期间,缓冲器填充水平520可以是零等。例如,缓冲器(例如,缓冲器109等)可以在捕获操作503处被加载或填充等,并且在回放操作505处被清空或使用等。例如,在缓冲器加载操作512处,缓冲器可以被填充,从而使得缓冲器加载操作512与捕获操作509相关联,并且在缓冲器读取操作513处,缓冲器可以被读取且清空,从而使得缓冲器读取操作513可以与回放操作510相关联。
图6展示了根据本公开的至少一些实施方式安排的具有独立音频时钟的示例音频系统600。如图6中所示出的,音频系统600可以包括可以实现操作系统(OS)102的中央处理单元(CPU)101、捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、异步采样率转换器601和闭环控制器602。例如,异步采样率转换器601和闭环控制器602可以被实现为捕获线程103的一部分。此外,音频系统600可以包括可以接收音频输入信号121的捕获设备110、可以提供音频输出信号122的回放设备111以及缓冲器109。例如,CPU 101、OS 102、捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、捕获设备110、音频输入信号121、回放设备111、音频输出信号122和缓冲器109可以包括任何适当的特性并且可以执行如针对音频系统100所讨论的任何操作,并且为了简洁起见将不再重复这种细节。
而且,如图6中所示出的,音频系统600可以实现或接收输入音频时钟606和输出音频时钟607。如所示出的,输入音频时钟606可以被提供给捕获设备110,并且输出音频时钟607可以被提供给回放设备111。例如,可以由独立晶体等驱动输入音频时钟606和输出音频时钟607。此外,输入音频时钟606与输出音频时钟607之间可能存在时钟偏斜,从而使得音频输入信号121和音频输出信号122可以是异步的。
例如,为了补偿这种时钟偏斜(例如,输入音频时钟606的时钟域与输出音频时钟607的时钟域之间),音频系统600可以实现异步采样率转换器601和闭环控制器602。例如,闭环控制器602可以经由缓冲器填充信号603对缓冲器109的缓冲器填充进行采样,并且闭环控制器602可以接收经虚拟地缓冲的样本126数量。基于缓冲器填充信号603和经虚拟地缓冲的样本126数量,闭环控制器602可以生成转换比604。例如,转换比604可以基于经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量的总和。例如,可以将所述总和与先前总和、先前多个总和的中值、目标总和等进行比较,并且可以基于比较或偏差来生成转换比604。闭环控制器602可以使用任何一种或多种适当的技术(诸如,应用滤波技术来将经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量的总和转变成转换604)来生成转换比604。例如,闭环控制器602可以基于经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量的总和来实现比例-积分-微分控制技术。
如所示出的,闭环控制器602可以将转换比604提供给异步采样率转换器601。异步采样率转换器601可以接收转换比604,并且异步采样率转换器601可以基于转换比604通过调整其插值/抽取比来补偿相关联的时钟偏斜。例如,如果经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量的总和大于目标总和等,则异步采样率转换器601可以减小针对每个输入样本块(或周期)生成的输入样本数量。相应地,如果所述总和小于目标总和等,则异步采样率转换器601可以增大针对每个输入样本块(或周期)生成的输入样本数量。
基于经由经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量的总和的控制(例如,与仅监测缓冲器填充信号603相比),系统600可以提供无抖晃和颤动伪影的音频输入信号121与音频输出信号122的更稳健同步,尤其是在捕获线程执行与回放线程执行之间的等待时间与捕获线程执行的捕获周期大致相同时,这可能提供经物理地缓冲的样本数量的大摆动。本文中针对图8进一步讨论了这种示例。
如本文进一步讨论的,可以经由基于经虚拟地缓冲的样本126数量和缓冲器填充信号603生成转换比604的闭环控制器602提供音频输入信号121与音频输出信号122之间的同步。例如,闭环控制器602可以对经虚拟地缓冲的样本126数量与基于缓冲器填充信号603确定的经物理地缓冲的样本数量进行求和,并且闭环控制器602可以基于所述总和来生成转换比604。
图7展示了根据本公开的至少一些实施方式安排的用于执行音频系统的同步的示例过程700。如图7中所展示的,过程700可以包括一项或多项操作701至707。过程700可以由音频系统(例如,音频系统600或本文中所讨论的任何其他设备或系统)执行,或者过程700的部分可以由系统执行以便执行音频信号同步和/或抖动补偿。例如,可以基本上连续地重复过程700或其部分以便为具有由独立时钟信号服务的捕获设备和回放设备的音频系统提供同步和/或抖动补偿。
如所示出的,过程700可以开始于开始操作701,在操作702处,“检测捕获线程与回放线程之间的等待时间”,在所述操作处,可以检测捕获线程与回放线程之间的等待时间。例如,等待时间可以被表征为测得的等待时间、检测到的启动等待时间、监测到的等待时间等。可以使用任何一种或多种适当的技术来检测和/或测量等待时间。例如,参照图6,等待时间检测模块107可以使用本文中所讨论的任何技术来检测等待时间(例如,等待时间123)。等待时间可以是单个等待时间测量结果、多个等待时间测量结果的中值等。参照图2,等待时间(例如,检测到的等待时间等)可以是等待时间(T)208,从而使得等待时间可以是捕获操作209与回放操作210之间的间隔。
返回到图7,过程700可以在操作703——“确定经虚拟地缓冲的样本数量”——处继续,在所述操作处,可以基于在操作702处使用任何一种或多种适当的技术来检测到和/或测得的等待时间来确定经虚拟地缓冲的样本数量。例如,如关于等式(1)所示出的,经虚拟地缓冲的样本数量可以是等待时间乘以音频系统的采样率。例如,参照图6,经虚拟地缓冲的样本模块108可以使用本文中所讨论的任何技术来生成经虚拟地缓冲的样本数量(例如,经虚拟地缓冲的样本126数量)。如所讨论的,因为任何实际缓冲的音频样本都不与等待时间相关联,所以经虚拟地缓冲的音频样本数量可以被表征为虚拟的。
过程700可以在操作704——“确定缓冲器填充水平”处继续,在所述操作处,可以确定缓冲器填充水平和/或经物理地缓冲的样本数量。可以使用任何一种或多种适当的技术来确定缓冲器填充是平和/或经物理地缓冲的样本数量。例如,可以通过访问缓冲器(诸如环形缓冲器或FIFO缓冲器)来确定缓冲器填充水平和/或经物理地缓冲的样本数量。例如,参照图6,缓冲器109可以提供或被访问以提供缓冲器填充信号603,所述缓冲器填充信号可以指示缓冲器填充水平和/或经物理地缓冲的样本数量。
返回到图7,过程700可以在操作705——“生成转换比”——处继续,在所述操作处,可以基于经虚拟地缓冲的样本数量和缓冲器填充水平和/或经物理地缓冲的样本数量来生成转换比。例如,参照图6,闭环控制器602可以基于经虚拟地缓冲的样本数量(例如,经虚拟地缓冲的样本126数量)和缓冲器填充水平和/或经物理地缓冲的样本数量来生成转换比604(例如,经由缓冲器填充信号603)。闭环控制器602可以使用任何一种或多种适当的技术基于经虚拟地缓冲的样本数量和缓冲器填充水平和/或经物理地缓冲的样本数量来生成转换比604。例如,闭环控制器602可以确定总体样本数量作为经虚拟地缓冲的样本数量与经物理地缓冲的样本(例如,缓冲器109内)数量的总和。例如,如关于等式(5)所示出的,闭环控制器602可以确定总体样本数量:
N总体样本=N经虚拟地缓冲的样本+N经物理地缓冲的样本
(5)其中,N总体样本可以是总体样本数量,N经虚拟地缓冲的样本可以是经虚拟地缓冲的样本数量(例如,如通过例如等式(1)确定的经虚拟地缓冲的样本126数量),N经物理地缓冲的样本可以是经物理地缓冲的样本数量(例如,如通过缓冲器填充信号603确定的实际上处于缓冲器中的样本数量)。
返回到图7,过程700可以在操作706——“修改采样率”——处继续,在所述操作处,可以基于在操作705处生成的转换比来修改或调整样本或采样率(诸如捕获采样率)。可以使用任何一种或多种适当的技术来修改采样率。例如,参照图6,异步采样率转换器601可以基于转换比604对捕获驱动器104与缓冲器109之间的音频捕获信号进行插值或抽取。尽管本文中关于对捕获采样率的修改而讨论,但是系统600可以使用捕获设备110与回放设备111之间的任何适当的定时修改(诸如对回放采样率的修改等)来调整所讨论的时钟偏斜。
返回到图7,如所示出的,过程700可以在结束操作706处结束。例如,过程700可以提供单个采样率修改。可以在音频系统600的操作期间如所示出的经由返回循环708如基本上连续地重复过程700任意次数以便基于采样率修改或控制来提供输入音频信号与输出音频信号之间的同步。例如,针对图6,闭环控制器602可以连续地操作以便通过基本上连续地测量经物理地缓冲的样本数量(例如,基于缓冲器填充信号603)并且通过经由等待时间检测模块107基本上连续地测量捕获线程103与回放线程105之间的等待时间并且基本上连续地提供经虚拟地缓冲的样本126数量来补偿任何随时间变化的时钟偏斜。由此,音频输入信号121和音频输出信号121可以被基本上同步。
图8展示了根据本公开的至少一些实施方式安排的示例捕获线程执行801和示例回放线程执行802的示例时序图800。例如,时序图800可以展示捕获线程执行801、回放线程执行802、经物理地缓冲的样本数量803、经虚拟地缓冲的样本数量804和总体缓冲样本数量805。如图8中所示出的,捕获线程执行801可以包括捕获操作811至817,并且回放线程执行802可以包括随时间807执行的回放操作821至826。此外,捕获操作811与回放操作821之间可以是等待时间(T)831,捕获操作812与回放操作822之间可以是等待时间832,捕获操作814与回放操作823之间可以是等待时间833,捕获操作815与回放操作824之间可以是等待时间834,捕获操作815与回放操作825之间可以是等待时间835,并且捕获操作816与回放操作826之间可以是等待时间836。如图8中所示出的,如果随后的捕获操作在其之间不具有回放操作,则可以不针对第一捕获操作(例如,如针对捕获操作813所示出的)生成等待时间。然而,如果随后的回放操作在其之间不具有捕获操作,则可以基于相同初始捕获操作(例如,如针对捕获操作815和回放操作824、825所示出的)针对两者生成等待时间。
例如,捕获线程执行801和回放线程802可以在其之间具有抖动,所述抖动使相对大的等待时间832摆动到相对小的等待时间833并且从相对小的等待时间833摆动到相对大的等待时间835。此外,可以通过相继启动捕获驱动器104和回放驱动器106或者通过任何其他排列原因来引起捕获操作811至817与回放操作821至826之间的执行紧密性。例如,在特定操作处(诸如在捕获操作814之后的回放操作823等处),相对大的等待时间832(例如,接近于捕获执行线程802的捕获时间838)可能由于抖动等而比捕获执行线程802的捕获时间838长。此外,抖动等可能使回放操作825领先于捕获操作816等。
图8还示出了随时间807变化的经物理地缓冲的样本数量803。如所示出的,在没有非期望的抖动的情况下,经物理地缓冲的样本数量803可以基本上常规地从零值到与特定样本数量(诸如一个样本等)相关联的水平840交替。然而,如所示出的,在特定时间(诸如与捕获操作814之后的回放操作823相关联的时间),经物理地缓冲的样本数量803可能由于抖动等而从水平840上升到水平850。例如,如果如本文中所讨论的闭环控制系统仅基于经物理地缓冲的样本数量803(例如,基于缓冲器填充水平)操作,则可以在控制信号中提供引起采样率的不令人期望摆动以及输入音频信号与输出音频信号之间缺少同步的大量噪声。然而,使用总体缓冲样本数量805(例如,经物理地缓冲的样本数量803与经虚拟地缓冲的样本数量804的总和)的所讨论技术可以为输入音频信号与输出音频信号之间的时钟偏斜和同步的控制提供平滑(甚至在抖动的背景下)。
例如,图8展示了随时间807变化的经虚拟地缓冲的样本数量804。如所示出的,经虚拟地缓冲的样本数量804可以包括与等待时间831至836相关联的样本861至866。例如,可以基于等待时间831至836和如针对等式(1)所讨论的采样率来生成或确定样本861至866中的每个样本。如所示出的,样本861至866可以与等待时间831至836成比例。例如,基于等待时间831、832、835和836,样本861、862、865和866可能相当大,并且基于等待时间833和834,样本863和864可能相当小。
此外,如经由总体缓冲样本数量805所示出的,组合(例如,经物理地缓冲的样本数量803与经虚拟地缓冲的样本数量804的总和)可以提供基本上平滑的总体样本871至876集合。例如,样本871可以对应于经物理地缓冲的样本数量803与样本861之和的水平840,样本872可以对应于经物理地缓冲的样本数量803与样本862之和的水平840,样本873可以对应于经物理地缓冲的样本数量803与样本863之和的水平850,样本874可以对应于经物理地缓冲的样本数量803与样本864之和的水平850,样本875可以对应于经物理地缓冲的样本数量803与样本865之和的水平840,并且样本876可以对应于经物理地缓冲的样本数量803与样本866之和的水平840。在所展示的示例中,总体样本873和874可能明显大于总体样本871、872、875和876,并且如所讨论的,闭环控制器可以基于这种数据经由转换比来补偿时钟偏斜。在此背景下,闭环控制器和异步采样率转换器可以基于总体样本871至876来提供平滑且稳健的时钟偏斜补偿。此外,与用于时钟偏斜补偿的这种总体样本871至876相关联的平滑性和抖动缺乏可以与经物理地缓冲的样本803或样本861至866的信号的大摆动形成对比。
图9是流程图,展示根据本公开的至少一些实施方式安排的用于执行音频信号同步的示例过程900的流程图。如图9中所展示的,过程900可以包括一项或多项操作901至903。过程900可以形成音频信号同步过程的至少一部分。通过非限制性示例的方式,过程900可以形成如由如本文中讨论的音频系统100、音频系统300或音频系统600执行的音频信号同步过程的至少一部分。此外,本文中将参照图10的系统1000描述过程900。
图10是根据本公开的至少一些实施方式安排的用于执行音频信号同步的示例系统1000的示意图。如图10中所示出的,系统1000可以包括一个或多个中央处理单元(CPU)1001、捕获设备110、回放设备111以及存储器存储设备1002。而且,如所示出的,CPU 1001可以包括捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、闭环控制器602、异步采样率转换器601和/或缓冲器初始化模块301。在系统1100的示例中,存储器存储设备1002可以存储音频或相关数据或内容,诸如,音频输入信号数据、音频输出信号数据、函数调用、经虚拟地缓冲的样本数量、经物理地缓冲的样本数量、总体缓冲样本数量、音频样本、音频数据字、音频数据位、等待时间数据、目标等待时间数据、采样率、缓冲器填充信号数据、转换比、捕获率信号数据和/或本文中讨论的任何其他数据。
如所示出的,在一些示例中,可以经由中央处理单元1001实现捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、闭环控制器602、异步采样率转换器601和/或缓冲器初始化模块301。在其他示例中,可以经由音频信号处理器、专用硬件、固定功能电路系统、一个或多个执行单元等实现捕获线程103、捕获驱动器104、回放线程105、回放驱动器106、等待时间检测模块107、经虚拟地缓冲的样本模块108、闭环控制器602、异步采样率转换器601和/或缓冲器初始化模块301的一个或多个部分。固定功能电路系统可以包括例如专用逻辑或电路系统并且可以提供固定功能入口点集合,所述集合可以映射到针对固定目的或功能的专用逻辑。执行(EU)可以包括例如可编程逻辑或电路系统(诸如可以提供广泛的可编程逻辑功能的一个或多个逻辑核)。
中央处理单元1001可以包括任意数量和类型的处理单元或模块,所述处理单元或模块可以为系统1000提供控制以及其他高级功能和/或提供如本文中所讨论的任何操作。存储器存储设备1002可以是任意类型的存储器,诸如易失性存储器(例如,静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等)或非易失性存储器(例如,闪存等)等等。在非限制性示例中,存储器存储设备1002可以由缓存存储器实现。
返回到对图9的讨论,过程900可以开始于操作901——“检测音频捕获线程与音频回放线程之间的等待时间”,在所述操作处,可以检测音频捕获线程与音频回放线程之间的等待时间。例如,如经由中央处理单元1001所实现的等待时间检测模块107可以使用任何一种或多种适当的技术来检测等待时间。例如,可以基于对捕获线程103和回放线程105的分析来检测等待时间。在一些示例中,检测音频捕获线程与音频回放线程之间的等待时间可以包括将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较。如所讨论的,执行过程900的音频系统(例如,系统1000)可以包括任何适当的音频系统(诸如基于块的多线程音频系统等)。例如,系统1000可以包括基于块的多线程操作系统。在一些示例中,操作处提供的等待时间可以基于单个等待时间检测或测量,并且在其他示例中,等待时间可以是多个检测到的等待时间的中值(例如,15个检测到的等待时间的中值等)。
过程900可以在操作902——“基于所检测到的等待时间来确定经虚拟地缓冲的音频样本数量”——处继续,在所述操作处,可以基于音频捕获线程与音频回放线程之间的等待时间来确定经虚拟地缓冲的音频样本数量。例如,如经由中央处理单元1001所实现的经虚拟地缓冲的样本模块108可以使用任何一种或多种适当的技术来确定经虚拟地缓冲的音频样本数量。在一些示例中,经虚拟地缓冲的音频样本数量可以基于音频捕获线程与音频回放线程之间的等待时间以及与音频捕获线程相关联的采样率。例如,如针对等式(1)所讨论的,可以确定经虚拟地缓冲的音频样本数量。
过程900可以在操作903——“基于经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步”——处继续,在所述操作处,可以基于经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。可以通过使用任何一种或多种适当的技术基于经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
例如,可以通过基于音频输入信号121和音频输出信号122之间的目标等待时间与音频捕获线程和音频回放线程之间的等待时间之差初始化与音频捕获线程和音频回放线程相关联的缓冲器来使音频输入信号与音频输出信号同步。在一些示例中,可以初始化捕获驱动器104和回放驱动器106,并且在操作901处的等待时间检测可能在这种初始化之后。如本文中所讨论的,捕获驱动器104可以与捕获线程103和捕获设备110相关联,并且回放驱动器106可以与回放线程105和回放设备111相关联。此外,捕获设备110和回放设备111可以基于如针对图3所讨论的共享音频时钟操作。
例如,中央处理单元1001和/或存储器存储设备1002可以实现环形缓冲器或FIFO缓冲器等,并且如经由中央处理单元1001所实现的缓冲器初始化模块301可以基于系统1000的目标(例如,已知)等待时间来确定所述差。例如,所述差可以与使捕获线程103和回放线程105从在操作901处确定的等待时间(例如,测得的检测等待时间)变为目标等待时间相关联的时滞或样本数量等相关联。例如,可以使用关联于或对应于目标等待时间和检测到的等待时间之差的经物理地缓冲的样本数量来初始化缓冲器。
在其他示例中,可以通过基于在操作902处确定的经虚拟地缓冲的音频样本数量生成针对异步采样率转化的转换比来使音频输入信号与音频输出信号同步。例如,如经由中央处理单元1001所实现的闭环控制器602可以生成转换比,并且异步采样率转换器601可以基于转换比对音频捕获信号执行插值或抽取中的至少一项。在一些示例中,所述用于异步采样率转换的转换比可以基于经虚拟地缓冲的音频样本数量以及与音频捕获线程和音频回放线程相关联的缓冲器的缓冲器填充水平的总和。例如,可以经由中央处理单元1001和/或存储器存储设备1002实现缓冲器(例如,环形缓冲器或FIFO缓冲器等)。例如,所述总和可以是在操作902处确定的经虚拟地缓冲的音频样本数量与基于缓冲器的状态确定的经物理地缓冲的音频样本数量的总和。此外,如所讨论的,捕获驱动器104可以与捕获线程103和捕获设备110相关联,并且回放驱动器106可以与回放线程105和回放设备111相关联。在一些示例中,捕获设备110和回放设备111可以基于如针对图6所讨论的独立音频时钟(例如,第一和第二音频时钟、输入和输出音频时钟等)操作。
可以串行地或者并行地重复过程900任意次数以便执行音频信号同步和/或抖动补偿。如所讨论的,过程900可以提供音频输入信号与音频输出信号之间的稳健且抗抖动同步。此外,如所讨论的,在一些示例中,过程900的操作903可以包括基于音频捕获线程和音频回放线程之间的目标等待时间与音频捕获线程和音频回放线程之间的等待时间之差初始化与音频捕获线程和音频回放线程相关联的缓冲器。在这种示例中,系统1000可以包括缓冲器初始化模块301,并且系统1000可以可选地不包括闭环控制器602和/或异步采样率转换器601。在其他示例中,过程900的操作903可以包括基于经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。在这种示例中,系统1000可以包括闭环控制器602和异步采样率转换器601,并且系统1000可以可选地不包括缓冲器初始化模块301。
本文中所描述的系统的各种部件可以以软件、固件和/或硬件和/或其任何组合来实现。例如,系统100、300、600、1000或1100的各部件可以至少部分地由诸如可以在计算系统(诸如,例如音频系统)中找到的计算片上系统(SoC)的硬件来提供。本领域技术人员可以认识到,本文中所描述的系统可以包括尚未在相应附图中描绘的附加部件。例如,本文中讨论的系统可以包括为了清楚起见尚未被描绘的附加部件,诸如附加音频硬件、音频卡、扬声器、麦克风、音频接口等。
虽然本文中所讨论的示例过程的实施方式可以包括按所展示的顺序进行示出的所有操作,但是本公开并不限于这个方面,并且在各个示例中,本文中的示例过程的实施方式可以仅包括所示操作的子集、以与所展示的顺序不同的顺序执行的操作、或附加操作。
另外,本文中所讨论的操作中的任何一项或多项操作可以响应于由一个或多个计算机程序产品提供的指令而进行。这种程序产品可以包括提供当由例如处理器执行时可以提供本文中所描述的功能的指令的信号承载介质。计算机程序产品可以以一个或多个机器可读介质的任何形式提供。因此,例如,包括一个或多个处理器核的处理器可以响应于由一个或多个机器可读介质传达给处理器的程序代码和/或指令或指令集而进行本文中的示例过程框中的一个或多个框。通常,机器可读介质可以以程序代码和/或指令或指令集的形式传达软件,所述程序编码和指令集可以使本文中描述的设备和/或系统中的任何一者实现系统100、300、600、1000或1100的至少多个部分、或者如本文中讨论的任何其他模块或组件。
如本文中所描述的任何实施方式中所使用的,术语“模块”指被配置用于提供本文中所描述的功能的软件逻辑、固件逻辑、硬件逻辑和/或电路系统的任何组合。软件可以具体化为软件包、代码和/或指令集或指令,并且如本文中所描述的任何实施方式中所使用的,“硬件”可以例如单独地或以任何组合包括硬连线电路系统、可编程电路系统、状态机电路系统、固定功能电路系统、执行单元电路系统和/或存储由可编程电路系统执行的指令的固件。所述模块可以统一地或单独地具体化为形成例如集成电路(IC)、片上系统(SoC)等较大系统的一部分的电路系统。
图11是根据本公开的至少一些实施方式安排的示例系统1100的示意图。在各实施方式中,尽管系统1100不限于此上下文,但系统1100可以是音频系统或媒体系统。例如,系统1100可以并入个人计算机(PC)、膝上计算机、超级膝上计算机、平板计算机、触摸板、便携式计算机、手持式计算机、掌上型计算机、个人数字助理(PDA)、蜂窝电话、组合式蜂窝电话/PDA、电视、智能设备(例如,智能电话、智能平板计算机或智能电视)、移动互联网设备(MID)、消息设备、数据通信设备、相机(例如,自动对焦相机、超级变焦相机、数码单镜头反光(DSLR)相机)等。
在各实施方式中,系统1100包括耦合至可选显示器1120的平台1102。平台1102可以从内容设备接收内容,所述内容设备如(多个)内容服务设备1130或(多个)内容递送设备1140或其他类似内容源。包括一个或多个导航特征的可选导航控制器1150可用于与例如平台1102和/或显示器1120交互。下面更详细描述这些部件中的每一个。
在各实施方式中,平台1102可以包括芯片组1105、处理器1110、存储器1112、天线1113、存储设备1114、图形子系统1115、应用1116和/或无线电1118的任意组合。芯片组1105可以在处理器1110、存储器1112、存储设备1114、图形子系统1115、应用1116和/或无线电1118之中提供相互通信。例如,芯片组1105可以包括能够提供与存储设备1114的交互通信的存储适配器(未描绘)。
处理器1110可以被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核处理器、或任何其他微处理器或中央处理单元(CPU)。在各实施方式中,处理器1110可以是(多个)双核处理器、(多个)双核移动处理器等。
存储器1112可以被实施为易失性存储设备,如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、或静态RAM(SRAM)。
存储设备1114可以被实施为非易失性存储设备,如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附连存储设备、闪存、电池应急SDRAM(同步DRAM)、和/或可接入网络的存储设备。在各实施方式中,存储设备1114可以包括用于当例如包括多个硬盘驱动器时增加对有价值的数字媒体的存储性能增强型保护的技术。
图形子系统1115可以执行对如用于显示的静态或视频图像的处理。例如,图形子系统1115可以是图形处理单元(GPU)或视觉处理单元(VPU)。可以使用模拟或数字接口将图形子系统1115和显示器1120通信地耦合。例如,所述接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或符合无线HD的技术中的任何接口。图形子系统1115可以集成到处理器1110或芯片组1105中。在一些实施方式中,图形子系统1115可以是通信地耦合至芯片组1105的独立设备。
本文描述的音频处理技术可以采用各种硬件架构来实现。例如,音频处理功能可以被集成在芯片组内。可替代地,可使用分立音频和/或媒体处理器。如又另一种实施方式,音频处理功能可以由通用处理器(包括多核处理器)来提供。在进一步实施例中,所述功能可以在消费电子设备中实施。
无线电1118可以包括能够使用各种适合的无线通信技术发射并接收信号的一个或多个无线电。这种技术可以涉及跨一个或多个无线网络的通信。示例无线网络包括(但不限于)无线局域网(WLAN)、无线个域网(WPAN)、无线城域网(WMAN)、蜂窝网和卫星网。在跨这种网络进行通信时,无线电1118可以根据任何版本的一个或多个可适用标准操作。
在各实施方式中,显示器1120可以包括任何电视机类监测器或显示器。显示器1120可以包括例如,计算机显示屏、触摸屏显示器、视频监视器、类似电视机的设备和/或电视机。显示器1120可以是数字的和/或模拟的。在各实施方式中,显示器1120可以是全息显示器。而且,显示器1120可以是可以接收视觉投影的透明表面。这种投影可以传递各种形式的信息、图像、和/或物体。例如,这种投影可以是针对移动增强现实(MAR)应用的视觉覆盖。在一个或多个软件应用1116的控制下,平台1102可以在显示器1120上显示用户界面1122。
在各实施方式中,(多个)内容服务设备1130可以由任何国家的、国际的和/或独立的服务托管,并且因此例如经由互联网可接入平台1102。(多个)内容服务设备1130可以耦合至平台1102和/或显示器1120。平台1102和/或(多个)内容服务设备1130可以耦合至网络1160以将媒体信息传送至网络1160并且从所述网络传送(例如,发送和/或接收)。(多个)内容递送设备1140也可以耦合至平台1102和/或显示器1120。
在各实施方式中,(多个)内容服务设备1130可以包括有线电视盒、个人计算机、网络、电话、能够递送数字信息和/或内容的支持互联网的设备或电器、以及能够在内容提供方与平台1102和/或显示器1120之间经由网络1160或直接地单向或双向传达内容的任何其他类似设备。应理解的是,内容可以经由网络1160单向地和/或双向地来往于系统1100中的任何一个部件与内容提供方之间进行通信。内容的示例可以包括任何媒体信息,包括例如视频、音乐、医疗和游戏信息等。
(多个)内容服务设备1130可以接收如包含媒体信息、数字信息和/或其他内容的有线电视节目的内容。
内容提供方的示例可以包括任何有线或卫星电视或无线电或互联网内容提供方。所提供的示例不旨在以任何方式限制根据本公开的实施方式。
在各实施方式中,平台1102可以从具有一个或多个导航特征的导航控制器1150中接收控制信号。控制器1150的导航特征可以用于例如与用户界面1122进行交互。在各实施例中,导航控制器1150可以是定点设备,该定点设备可以是允许用户输入空间(例如,连续的和多维的)数据到计算机的计算机硬件部件(特别是人机接口设备)。如图形用户界面(GUI)和电视机以及监视器的许多系统允许用户使用物理姿势来控制计算机或电视机并向计算机或电视机提供数据。
可以通过指针、光标、聚焦环或在显示器上显示的其他视觉指示器的移动在显示器(例如,显示器1120)上复制控制器1150的导航特征的移动。例如,在软件应用1116的控制下,位于导航控制器1150上的导航特征可以例如被映射为在用户界面1122上显示的虚拟导航特征。在各实施例中,控制器1150可以不是独立部件但可以集成在平台1102和/或显示器1120内。然而,本公开不限于本文中示出或描述的元件或内容。
在各实施方式中,驱动器(未示出)可以包括使用户能够通过例如在初始启动之后触摸按钮(当启用时)立刻打开和关闭类似电视机的平台1102的技术。即使当平台被“关闭”时,程序逻辑也可以允许平台1102将内容流传输到媒体适配器或其他(多个)内容服务设备1130或(多个)内容递送设备1140。此外,芯片组1105可以包括支持例如5.1环绕声音频和/或高清7.1环绕声音频的硬件和/或软件。驱动器可以包括用于集成图形平台的图形驱动器。在各实施例中,图形驱动器可以包括外围部件互连(PCI)快速图形卡。
在各实施方式中,系统1100中示出的部件中的任何一个或多个部件可以是集成的。例如,平台1102和(多个)内容服务设备1130可以是集成的,或者平台1102和(多个)内容递送设备1140可以是集成的,或者平台1102、(多个)内容服务设备1130和(多个)内容递送设备1140可以例如是集成的。在各实施例中,平台1102和显示器1120可以是集成的单元。例如,显示器1120和(多个)内容服务设备1130可以是集成的,或者显示器1120和(多个)内容递送设备1140可以是集成的。这些示例并不意在限制本公开。
在各实施例中,系统1100可以被实现为无线系统、有线系统、或二者的组合。当被实现为无线系统时,系统1100可以包括适合于通过如一个或多个天线、发射器、接收器、收发器、放大器、滤波器、控制逻辑等的无线共享介质进行通信的部件和接口。无线共享介质的示例可以包括无线光谱部分,如RF光谱等。当被实现为有线系统时,系统1100可以包括适用于通过有线通信介质(如输入/输出(I/O)适配器、利用相应有线通信介质连接I/O适配器的物理连接器、网络接口卡(NIC)、光盘控制器、视频控制器、音频控制器等)进行通信的部件和接口。有线通信介质的示例可以包括导线、线缆、金属引线、印刷电路板(PCB)、背板、交换光纤、半导体材料、双绞线、同轴线缆、光纤等。
平台1102可以建立一个或多个逻辑或物理信道以传送信息。所述信息可以包括媒体信息和控制信息。媒体信息可以指表示针对用户的内容的任意数据。内容的示例可以包括例如,来自语音对话、视频会议、流式视频、电子邮件消息、语音邮件消息、字母数字符号、图形、图像、视频、文字等数据。来自语音对话的数据可以是例如:语音信息、静默时间段、背景噪音、舒适噪声、声调等。控制信息可以指表示针对自动化系统的命令、指令或控制字的任何数据。例如,控制信息可以用于通过系统路由媒体信息、或者指示节点以预定方式处理所述媒体信息。然而,各实施例并不限于图11中所示出或描述的元件或上下文。
可以使用硬件元件、软件元件、或两者的组合来实施各实施例。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。软件的示例可以包括:软件组件、程序、应用、计算机程序、应用程序、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、函数、方法、过程、软件接口、应用程序接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号、或其任意组合。判定是否使用硬件元件和/或软件元件来实现实施例可以根据任意数量的因子而变化,如预期的计算速率、功率电平、耐热性、处理周期预算、输入数据速率、输出数据速率、存储器资源、数据总线速度以及其他设计或性能约束。
可以由机器可读介质上所存储的表示性指令实施至少一个实施例的一个或多个方面,所述指令表示处理器内的各种逻辑,当被机器读取时所述指令使所述机器制作用于执行本文中所描述的技术的逻辑。这种表示(被称为“IP核”)可以被存储在有形机器可读介质上并提供给各顾客或制造设施以加载至实际制作所述逻辑或处理器的制作机器中。
虽然已经参照各实施方式描述了本文中阐述的某些特征,但并不打算在限制性意义上解释本说明书。因此,本公开涉及的对本领域技术人员而言明显的对本文中所描述的实施方式以及其他实施方式的各种修改被视为是在本公开的精神和范围内。
下面的示例涉及进一步的实施例。
在一个或多个第一实施例中,一种用于针对音频系统执行同步的方法包括:检测音频捕获线程与音频回放线程之间的等待时间;基于所述音频捕获线程与所述音频回放线程之间的所述等待时间来确定经虚拟地缓冲的音频样本数量;以及基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
进一步针对所述第一实施例,检测所述音频捕获线程与所述音频回放线程之间的所述等待时间包括将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较。
进一步针对所述第一实施例,所述经虚拟地缓冲的音频样本数量基于所述音频捕获线程与所述音频回放线程之间的所述等待时间以及与所述音频捕获线程相关联的采样率。
进一步针对所述第一实施例,所述音频系统包括基于块的多线程操作系统。
进一步针对所述第一实施例,所述方法进一步包括:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器。
进一步针对所述第一实施例,所述方法进一步包括:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器,其中,所述缓冲器包括环形缓冲器或先入先出(FIFO)缓冲器中的至少一种,并且其中,基于所述差来初始化所述缓冲器包括:使用与所述差相对应的经物理地缓冲的样本数量来初始化所述缓冲器。
进一步针对所述第一实施例,所述方法进一步包括:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器,其中,所述音频捕获线程与所述音频回放线程之间的所述等待时间基于所述音频捕获线程与所述音频回放线程之间的多个采样等待时间。
进一步针对所述第一实施例,所述方法进一步包括:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器;以及在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器。
进一步针对所述第一实施例,所述方法进一步包括:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器,以及在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备和所述回放设备基于共享音频时钟操作。
进一步针对所述第一实施例,所述方法进一步包括:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。进一步针对所述第一实施例,所述方法进一步包括:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比,其中,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。
进一步针对所述第一实施例,所述方法进一步包括:至少部分地基于所述经虚拟地缓冲的音频样本数量生成用于异步采样率转换的转换比,以及基于所述转换比对音频捕获信号执行插值或抽取中的至少一项。
进一步针对所述第一实施例,所述方法进一步包括:至少部分地基于所述经虚拟地缓冲的音频样本数量生成用于异步采样率转换的转换比,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备基于第一音频时钟操作,并且所述回放驱动器基于独立于所述第一音频时钟的第二音频时钟操作。
在一个或多个第二实施例中,一种音频系统包括:缓冲器,被配置用于存储音频数据;以及中央处理单元,耦合至所述缓冲器,所述中央处理单元用于:检测音频捕获线程与音频回放线程之间的等待时间;基于所述音频捕获线程与所述音频回放线程之间的所述等待时间来确定经虚拟地缓冲的音频样本数量;以及基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
进一步针对所述第二实施例,所述中央处理单元用于检测所述音频捕获线程与所述音频回放线程之间的所述等待时间包括:所述中央处理单元用于将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较。
进一步针对所述第二实施例,所述经虚拟地缓冲的音频样本数量基于所述音频捕获线程与所述音频回放线程之间的所述等待时间以及与所述音频捕获线程相关联的采样率。
进一步针对所述第二实施例,所述音频系统包括基于块的多线程音频系统。
进一步针对所述第二实施例,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器。
进一步针对所述第二实施例,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器进,其中,所述缓冲器包括环形缓冲器或先入先出(FIFO)缓冲器中的至少一种,并且其中,所述中央处理单元用于基于所述差来初始化所述缓冲器包括:所述中央处理单元用于使用与所述差相对应的经物理地缓冲的样本数量来初始化所述缓冲器。
进一步针对所述第二实施例,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器,其中,所述音频捕获线程与所述音频回放线程之间的所述等待时间基于所述音频捕获线程与所述音频回放线程之间的多个采样等待时间。
进一步针对所述第二实施例,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器,其中,所述中央处理单元进一步用于:在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器。
进一步针对所述第二实施例,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器,其中,所述中央处理单元进一步用于:在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器,并且所述音频系统进一步包括:捕获设备,所述捕获设备耦合至所述中央处理单元,其中,所述捕获驱动器与捕获设备相关联;以及回放设备,所述回放设备耦合至所述中央处理单元,其中,所述回放驱动器与回放设备相关联,并且其中,所述捕获设备和所述回放设备基于共享音频时钟操作。
进一步针对所述第二实施例,所述中央处理单元进一步用于:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。
进一步针对所述第二实施例,所述中央处理单元进一步用于至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比,其中,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。
进一步针对所述第二实施例,所述中央处理单元进一步用于:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比,其中,所述中央处理单元进一步用于:基于所述转换比对音频捕获信号执行插值或抽取中的至少一项。
进一步针对所述第二实施例,所述中央处理单元进一步用于:至少部分地基于所述经虚拟地缓冲的音频样本数量生成用于异步采样率转换的转换比,并且所述音频系统进一步包括:捕获设备,所述捕获设备耦合至所述中央处理单元,其中,所述捕获设备将基于第一音频时钟操作;以及回放设备,所述回放设备耦合至所述中央处理单元,其中,所述回放设备将基于独立于所述第一音频时钟的第二音频时钟操作。
在一个或多个第三实施例中,一种音频系统包括:用于检测音频捕获线程与音频回放线程之间的等待时间的装置;用于基于所述音频捕获线程与所述音频回放线程之间的所述等待时间来确定经虚拟地缓冲的音频样本数量的装置;以及用于基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步的装置。
进一步针对所述第三实施例,用于检测所述音频捕获线程与所述音频回放线程之间的所述等待时间的装置包括:用于将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较的装置。
进一步针对所述第三实施例,所述经虚拟地缓冲的音频样本数量基于所述音频捕获线程与所述音频回放线程之间的所述等待时间以及与所述音频捕获线程相关联的采样率。
进一步针对所述第三实施例,所述音频系统包括基于块的多线程操作系统。
进一步针对所述第三实施例,所述音频系统进一步包括:用于基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器的装置。进一步针对所述第三实施例,所述音频系统进一步包括:用于基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器的装置,其中,所述缓冲器包括环形缓冲器或先入先出(FIFO)缓冲器中的至少一种,并且其中,用于基于所述差初始化所述缓冲器的装置包括:用于使用与所述差相对应的经物理地缓冲的样本数量来初始化所述缓冲器的装置。
进一步针对所述第三实施例,所述音频系统进一步包括:用于基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器的装置,其中,所述音频捕获线程与所述音频回放线程之间的所述等待时间基于所述音频捕获线程与所述音频回放线程之间的多个采样等待时间。进一步针对所述第三实施例,所述音频系统进一步包括:用于基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器的装置;以及用于初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器的装置。
进一步针对所述第三实施例,所述音频系统进一步包括:用于基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差初来始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器的装置;以及用于初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器的装置,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备和所述回放设备基于共享音频时钟操作。
进一步针对所述第三实施例,所述音频系统进一步包括:用于至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比的装置。
进一步针对所述第三实施例,所述音频系统进一步包括:用于至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比的装置,其中,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。进一步针对所述第三实施例,所述音频系统进一步包括:用于至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比的装置;以及用于基于所述转换比对音频捕获信号执行插值或抽取中的至少一项的装置。
进一步针对所述第三实施例,所述音频系统进一步包括:用于至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比的装置,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备基于第一音频时钟操作,并且所述回放驱动器基于独立于所述第一音频时钟的第二音频时钟操作。
在一个或多个第四实施例中,至少一种机器可读介质包括多条指令,所述指令响应于在设备上被执行而使所述设备通过以下方式执行音频信号同步:检测音频捕获线程与音频回放线程之间的等待时间;基于所述音频捕获线程与所述音频回放线程之间的所述等待时间来确定经虚拟地缓冲的音频样本数量;以及基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
进一步针对所述第四实施例,所述机器可读介质包括响应于在所述设备上被执行而使所述设备通过以下方式执行音频信号同步的进一步的指令:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器。
进一步针对所述第四实施例,所述机器可读介质包括响应于在所述设备上被执行而使所述设备通过以下方式执行音频信号同步的进一步的指令:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。
进一步针对所述第四实施例,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。
在一个或多个第五实施例中,至少一种机器可读介质可以包括多条指令,所述指令响应于在计算设备上被执行而使所述计算设备执行根据以上实施例中的任一项所述的方法。
在一个或多个第六实施例中,一种设备可以包括用于执行根据以上实施例中的任一项所述的方法的装置。
将认识到,这些实施例并不限于如此描述的这些实施例,而是可以在不背离所附权利要求书的范围的情况下通过修改和变更来实践。例如,以上实施例可以包括特征的特定组合。然而,以上实施例并不限于这个方面,并且在各实施方式中,以上实施例可以包括仅采取这类特征的子集、采取这类特征的不同顺序、采取这类特征的不同组合、和/或采取除了明确例举的那些特征之外的附加特征。因此,实施例的范围应当参考所附权利要求书、连同这样的权利要求书有权获得的等效物的全部范围来确定。

Claims (28)

1.一种用于对音频系统执行同步的方法,所述方法包括:
检测音频捕获线程与音频回放线程之间的等待时间;
基于所述音频捕获线程与所述音频回放线程之间的所述等待时间和采样率来确定经虚拟地缓冲的音频样本数量;以及
基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
2.如权利要求1所述的方法,其中,检测所述音频捕获线程与所述音频回放线程之间的所述等待时间包括:将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较。
3.如权利要求1所述的方法,其中,所述采样率与所述音频捕获线程相关联。
4.如权利要求1所述的方法,其中,所述音频系统包括基于块的多线程操作系统。
5.如权利要求1所述的方法,进一步包括:
基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化与所述音频捕获线程和所述音频回放线程相关联的缓冲器。
6.如权利要求5所述的方法,其中,所述缓冲器包括环形缓冲器或先入先出(FIFO)缓冲器中的至少一种,并且其中,基于所述差来初始化所述缓冲器包括:使用与所述差相对应的经物理地缓冲的样本数量来初始化所述缓冲器。
7.如权利要求5所述的方法,其中,所述音频捕获线程与所述音频回放线程之间的所述等待时间基于所述音频捕获线程与所述音频回放线程之间的多个采样等待时间。
8.如权利要求5所述的方法,进一步包括:
在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器。
9.如权利要求8所述的方法,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备和所述回放设备基于共享音频时钟操作。
10.如权利要求1所述的方法,进一步包括:
至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。
11.如权利要求10所述的方法,其中,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。
12.如权利要求10所述的方法,进一步包括:基于所述转换比来对音频捕获信号执行插值或抽取中的至少一项。
13.如权利要求10所述的方法,其中,所述捕获驱动器与捕获设备相关联,并且所述回放驱动器与回放设备相关联,并且其中,所述捕获设备基于第一音频时钟操作,并且所述回放驱动器基于独立于所述第一音频时钟的第二音频时钟操作。
14.一种音频系统,包括:
缓冲器,被配置用于存储音频数据;以及
中央处理单元,耦合至所述缓冲器,所述中央处理单元用于:检测音频捕获线程与音频回放线程之间的等待时间;基于所述音频捕获线程与所述音频回放线程之间的所述等待时间和采样率来确定经虚拟地缓冲的音频样本数量;以及基于所述经虚拟地缓冲的音频样本数量使音频输入信号与音频输出信号同步。
15.如权利要求14所述的音频系统,其中,所述中央处理单元用于检测所述音频捕获线程与所述音频回放线程之间的所述等待时间包括:所述中央处理单元用于将捕获线程函数调用时间戳与回放线程函数调用时间戳进行比较。
16.如权利要求14所述的音频系统,其中,所述采样率与所述音频捕获线程相关联。
17.如权利要求14所述的音频系统,其中,所述音频系统包括基于块的多线程音频系统。
18.如权利要求14所述的音频系统,其中,所述中央处理单元进一步用于:基于所述音频输入信号和所述音频输出信号之间的目标等待时间与所述音频捕获线程和所述音频回放线程之间的所述等待时间之差来初始化所述缓冲器。
19.如权利要求18所述的音频系统,其中,所述缓冲器包括环形缓冲器或先入先出(FIFO)缓冲器中的至少一种,并且其中,所述中央处理单元用于基于所述差来初始化所述缓冲器包括:所述中央处理单元用于使用与所述差相对应的经物理地缓冲的样本数量来初始化所述缓冲器。
20.如权利要求18所述的音频系统,其中,所述音频捕获线程与所述音频回放线程之间的所述等待时间基于所述音频捕获线程与所述音频回放线程之间的多个采样等待时间。
21.如权利要求18所述的音频系统,其中,所述中央处理单元进一步用于:在检测所述音频捕获线程与所述音频回放线程之间的所述等待时间之前,初始化与所述音频捕获线程相关联的捕获驱动器和与所述音频回放线程相关联的回放驱动器。
22.如权利要求21所述的音频系统,进一步包括:
捕获设备,所述捕获设备耦合至所述中央处理单元,其中,所述捕获驱动器与所述捕获设备相关联;以及
回放设备,所述回放设备耦合至所述中央处理单元,其中,所述回放驱动器与所述回放设备相关联,并且其中,所述捕获设备和所述回放设备基于共享音频时钟操作。
23.如权利要求14所述的音频系统,其中,所述中央处理单元进一步用于:至少部分地基于所述经虚拟地缓冲的音频样本数量来生成用于异步采样率转换的转换比。
24.如权利要求23所述的音频系统,其中,所述用于异步采样率转换的转换比基于所述经虚拟地缓冲的音频样本数量以及与所述音频捕获线程和所述音频回放线程相关联的缓冲器的缓冲器填充水平的总和。
25.如权利要求23所述的音频系统,其中,所述中央处理单元进一步用于:基于所述转换比对音频捕获信号执行插值或抽取中的至少一项。
26.如权利要求23所述的音频系统,进一步包括:
捕获设备,所述捕获设备耦合至所述中央处理单元,其中,所述捕获设备用于基于第一音频时钟操作;以及
回放设备,所述回放设备耦合至所述中央处理单元,其中,所述回放设备用于基于独立于所述第一音频时钟的第二音频时钟操作。
27.至少一种机器可读介质,包括
多条指令,所述多条指令响应于在计算设备上被执行而使所述计算设备执行如权利要求1-13中的任一项所述的方法。
28.一种用于对音频系统执行同步的设备,包括:
用于执行如权利要求1-13中的任一项所述的方法的装置。
CN201680020077.2A 2015-04-30 2016-03-07 音频传输系统的信号同步和等待时间抖动补偿 Active CN107430503B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/700,481 US10013229B2 (en) 2015-04-30 2015-04-30 Signal synchronization and latency jitter compensation for audio transmission systems
US14/700,481 2015-04-30
PCT/US2016/021263 WO2016175920A1 (en) 2015-04-30 2016-03-07 Signal synchronization and latency jitter compensation for audio transmission systems

Publications (2)

Publication Number Publication Date
CN107430503A CN107430503A (zh) 2017-12-01
CN107430503B true CN107430503B (zh) 2021-11-23

Family

ID=57198692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680020077.2A Active CN107430503B (zh) 2015-04-30 2016-03-07 音频传输系统的信号同步和等待时间抖动补偿

Country Status (4)

Country Link
US (1) US10013229B2 (zh)
EP (1) EP3289588A4 (zh)
CN (1) CN107430503B (zh)
WO (1) WO2016175920A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10720139B2 (en) * 2017-02-06 2020-07-21 Silencer Devices, LLC. Noise cancellation using segmented, frequency-dependent phase cancellation
US10313218B2 (en) * 2017-08-11 2019-06-04 2236008 Ontario Inc. Measuring and compensating for jitter on systems running latency-sensitive audio signal processing
GB2566978A (en) 2017-09-29 2019-04-03 Nokia Technologies Oy Processing audio signals
US10452345B1 (en) * 2018-05-15 2019-10-22 Sonos, Inc. Media playback system with virtual line-in
US10534573B2 (en) * 2018-05-29 2020-01-14 Sonova Ag Method for apparatus for sample rate conversion with unknown input and output clocks
JP7293257B2 (ja) * 2018-05-31 2023-06-19 グーグル エルエルシー 低パワー、高帯域幅、低遅延データバス
US20200133619A1 (en) * 2018-10-25 2020-04-30 Drivetime, Inc. System and method for detecting, estimating, and compensating acoustic delay in high latency environments
CN114255788B (zh) * 2020-09-21 2024-04-09 炬芯科技股份有限公司 一种异步采样的转换方法及其转换装置
CN112350688B (zh) * 2021-01-07 2021-04-23 北京欣博电子科技有限公司 一种语音信号跨时钟域处理方法及装置和智能语音芯片
CN112951272B (zh) * 2021-01-21 2021-11-23 北京锐马视讯科技有限公司 音频比对方法和装置、设备
CN113765918B (zh) * 2021-09-07 2023-04-18 广州飞傲电子科技有限公司 一种音频传输控制方法、装置及音频传输控制设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1975859A (zh) * 2005-10-28 2007-06-06 索尼英国有限公司 音频处理
CN101271720A (zh) * 2008-04-22 2008-09-24 中兴通讯股份有限公司 一种手机流媒体音视频的同步方法
CN103987009A (zh) * 2013-02-13 2014-08-13 森海塞尔通信公司 听力装置的运行方法及听力装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327418B1 (en) 1997-10-10 2001-12-04 Tivo Inc. Method and apparatus implementing random access and time-based functions on a continuous stream of formatted digital data
US7319703B2 (en) 2001-09-04 2008-01-15 Nokia Corporation Method and apparatus for reducing synchronization delay in packet-based voice terminals by resynchronizing during talk spurts
US7392102B2 (en) 2002-04-23 2008-06-24 Gateway Inc. Method of synchronizing the playback of a digital audio broadcast using an audio waveform sample
US7555017B2 (en) * 2002-12-17 2009-06-30 Tls Corporation Low latency digital audio over packet switched networks
US7434078B2 (en) * 2003-03-21 2008-10-07 Microsoft Corporation Synchronization with hardware utilizing software clock slaving via a clock
US7706901B2 (en) * 2004-10-01 2010-04-27 Microsoft Corporation Low latency real-time audio streaming
US7672742B2 (en) * 2005-02-16 2010-03-02 Adaptec, Inc. Method and system for reducing audio latency
CN100428798C (zh) * 2006-03-07 2008-10-22 华为技术有限公司 一种数字电视解码方法和系统
US8166194B2 (en) * 2006-12-13 2012-04-24 Microsoft Corporation Lock-free shared audio buffer
CN101731011B (zh) * 2007-05-11 2014-05-28 奥迪耐特有限公司 用于设置接收器延迟时间的方法
US9250646B2 (en) 2012-12-19 2016-02-02 Intel Corporation Clock recovery using remote arrival timestamps
CN103209360B (zh) * 2013-03-04 2018-02-13 小米科技有限责任公司 一种多方视频共享的方法和装置
US9819604B2 (en) 2013-07-31 2017-11-14 Nvidia Corporation Real time network adaptive low latency transport stream muxing of audio/video streams for miracast

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1975859A (zh) * 2005-10-28 2007-06-06 索尼英国有限公司 音频处理
CN101271720A (zh) * 2008-04-22 2008-09-24 中兴通讯股份有限公司 一种手机流媒体音视频的同步方法
CN103987009A (zh) * 2013-02-13 2014-08-13 森海塞尔通信公司 听力装置的运行方法及听力装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"An Optimal Client Buffer Model for Multiplexing HTTP Streams";Saayan Mitra 等;《2012 IEEE 14th International Workshop on Multimedia Signal Processing (MMSP)》;20121112;第283-288页 *
"流媒体系统中音视频同步机制的设计与实现";杨蓓;《中国优秀硕士学位论文全文数据库(信息科技辑)》;20100515(第2010年第05期);第I136-129页正文第14-38页 *

Also Published As

Publication number Publication date
US20160321028A1 (en) 2016-11-03
US10013229B2 (en) 2018-07-03
EP3289588A4 (en) 2018-11-21
EP3289588A1 (en) 2018-03-07
WO2016175920A1 (en) 2016-11-03
CN107430503A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
CN107430503B (zh) 音频传输系统的信号同步和等待时间抖动补偿
US10979630B2 (en) Workload scheduler for computing devices with camera
US11553156B2 (en) Systems and methods for video splicing and displaying
US9591358B2 (en) Media playback workload scheduler
US8922713B1 (en) Audio and video synchronization
US10484690B2 (en) Adaptive batch encoding for slow motion video recording
CN107077313B (zh) 用于非媒体内容的远程显示的改进延迟和效率
US10366704B2 (en) Active acoustic echo cancellation for ultra-high dynamic range
JP2018509791A (ja) 無線リンク状態に基づくビデオ復号化待ち時間調整、並びにビデオ復号化誤りの隠蔽のための、古いパケットのリプレイ
TW201428683A (zh) 用於記錄在輸入幾何物件粒度上的可視度測試之結果的方法、設備及系統
US9538208B2 (en) Hardware accelerated distributed transcoding of video clips
KR101722413B1 (ko) 부하 라인 최적화를 위한 그래픽 전압 감소
JP7418569B2 (ja) 異種プラットフォームでのハードウェアアクセラレーションによるタスクのスケジューリング及び負荷分散のための送信及び同期技術
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング
WO2017143522A1 (en) Graphics processor workload acceleration using a command template for batch usage scenarios
WO2013097077A1 (en) Display controller interrupt register
US10168985B2 (en) Dynamic audio codec enumeration
CN117014590A (zh) 图像处理方法、装置、终端和存储介质
CN117676225A (zh) 图像处理方法、装置、终端和存储介质

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