同步音频网络软件接口的制作方法

文档序号:7609395阅读:214来源:国知局
专利名称:同步音频网络软件接口的制作方法
技术领域
本发明涉及一种接口,特别涉及一种可在交换网络上进行同步音频通信的软件接口。
背景技术
数字音频信号的传输和接收变得越来越普遍。数字音频信号可以压缩格式或者未压缩格式传输。尽管信号压缩减小了存储和传输数字音频信号所需的带宽,在一些音频系统中信号压缩可导致可感知的延迟和信号损失。
一些音频系统通过实时数字音频网络传送未压缩数据。当网络上的音频装置以与同步串行通信系统相类似的方式响应时钟信号时,这些网络被认为是同步的。这些网络利用专用的硬件以与音频装置相连接。
一种公知的专用系统使用专用接口以控制定时和其它低等级处理任务。这些专用接口不能以因特网所使用的传输控制协议/互联网协议(TCP/IP)进行通信。需要另一种接口。因为需要多个接口以传输和接收数字音频信号并且提供到因特网的访问,所以专用系统可能比较昂贵。
因此,需要一种能够使用标准网络接口来传输或者接收同步音频的系统。

发明内容
本发明提供一种包括网络接口的系统。该网络接口可与多任务、多线程操作系统兼容,并且可在交换网络上发送和接收同步音频包以及其它数据。该系统包括从同步音频包中提取音频数据的软件。
该系统还使用将音频数据格式化为同步音频包的软件。同步音频包可被格式化为包括CobraNet规范的许多协议的格式。同步音频包和其它数据包可在交换网络上被发送。
本领域的技术人员通过查阅下面的附图以及详细说明,可认为本发明的其它系统、方法、特征以及优点将会是或者将会变得显而易见。也意图将所有这些其它系统、方法、特征以及优点包括在本说明书中,包括在本发明的范围之内,并且通过所附的权利要求得以保护。


通过参照下列附图和说明可以更好地理解本发明。附图中的组件不必是按照一定比例进行绘制的、而是强调用于举例说明本发明的原理。而且,在附图中,类似的附图标记表示不同视图中相对应的部分。
图1为第一同步音频控制器;图2为第二同步音频控制器;图3为第三同步音频控制器;图4为同步音频驱动程序的传输流程图;图5为同步音频驱动程序的接收流程图;图6为第四同步音频控制器的部分框图;具体实施方式
第一同步音频控制器图1示意出第一说明性的同步音频控制器100。同步音频控制器100可被包括在适于基本并行执行多个应用程序的操作系统中。操作系统可为非实时系统,该非实时系统可多任务、多线程地执行多个应用程序以能够基本并行执行该多个应用程序。由操作系统多任务、多线程执行应用程序可在例如包括在计算机装置中的操作系统的计算环境中完成。实例的操作系统包括Microsoft Windows、UNIX、LINUX等等。同步音频控制器100可包括网络接口102、存储器104、处理器106和用户接口108。网络接口102将同步音频控制器100连接到其它装置,该网络接口102可为将信息从一地传输到另一地的卡或者插槽。
在图1,网络接口102可包括PCMCIA卡、ISA卡、PCI卡、网络电路或其它装置。这些装置可按照一种标准提供网络连接,该标准例如电气和电子工程师协会(“IEEE”)802标准、IEEE 802.3标准、以太网标准、IEEE 1394标准、无线以太网标准、光纤分布式数据接口(“FDDI”)标准或相似的标准。优选地,网络接口102工作在大约100Mbps或更高的频率上。
网络116也可符合这些标准中的一个标准。网络116可为能够进行基于包的数据传输的任何类型的网络。在一个实例中,该网络可为交换以太网网络。
存储器104为保存用于回取的数据的媒介。其可包括硬盘驱动器、光盘驱动器、数字通用光盘驱动器、随机存取存储器(“RAM”)、只读存储器(“ROM”)、可编程只读存储器(“PROM”)、电可擦除可编程只读存储器(“EEPROM”)、闪存存储器或其它任何类型的数字存储装置。处理器106可包括中央处理单元(“CPU”),例如Intel Pentium微处理器、Sun SPARC微处理器、Motorola微处理器、国际商用机器(IBM)处理器或任何其它处理器。
用户接口108可包括能够使用户访问应用程序的软件或硬件。用户接口108可包括绝对定点装置、相对定点装置或物理定点装置。也可使用其它光标控制装置,其中包括键盘和触摸屏系统。
存储器104可包括同步音频软件110和应用程序112。同步音频软件110可包括网络驱动程序以提供与网络接口102的低等级通信。另外,包括在同步音频软件110中的网络驱动程序可支持例如TCP/IP、IPX/SPX、NetBIOS、ATM、NetBEUI、AppleTalk和Token-Ring等协议。同步音频软件110也可为应用程序112提供软件接口。同步音频软件110的网络驱动程序可包括从网络接口102的厂商、从应用程序112的提供商或从第三方获得的驱动程序。另外,同步音频软件110可在同步音频软件110和网络接口102之间提供软件接口。同步音频软件110也可适于与管理已有硬件的已有操作系统兼容并且可在已有操作系统内执行,已有操作系统例如运行在个人计算机上的MicrosoftWindows操作系统。在一个实例中,同步音频控制器100包括操作系统,其中包括在同步音频软件102中的网络驱动程序可实现开放系统互联(OSI)模型。OSI模型是用于在七层中实现网络协议的网络结构。包或数据报从一层传递到下一层。
同步音频软件110可遵照同步音频规范以促进与其它同步音频装置之间的通信。该规范可包括数据格式、协议和/或任何其它的数据表示和通信相关的参数。同步音频软件110可处理同步音频数据,播放音频数据和/或在可记录媒介中保存音频数据,可记录媒介例如磁性媒介(硬盘)或电子媒介。同步音频软件110也可从媒介中接收音频数据,并产生用于在网络116上传输的同步音频数据,该媒介例如硬盘或其它诸如麦克风的数据源。另外,同步音频软件110可检测其所接收的数据包中所包括的数据类型。同步音频软件110可解码接收到的与音频数据相关的包。另一方面,如果该包与其它在操作系统中执行的应用程序相关,该包可通过同步音频软件110传送到应用程序112而不会被同步音频软件110改变(包在与它们被从交换网络接收时的相同的条件下被传送)。
第二同步音频控制器运行在多任务、多线程操作系统中的第二说明性的同步音频控制器200如图2所示。同步音频控制器200可包括网络接口202、存储器204、处理器206和用户接口208。操作系统、网络接口202、存储器204、处理器206和用户接口208可具有与先前描述的网络接口102、存储器104、处理器106和用户接口108一样的结构和功能。
存储器204可包括提供网络支持的网络软件层。存储器204也可包括网络接口驱动程序210、同步音频软件212、协议堆栈214、应用程序接口(“API”)216以及一个或多个应用程序218。多个应用程序218可基本并行地运行在操作系统中。同步音频软件200也可与在系统中的其它的应用程序218基本并行地运行在操作系统中。
网络接口驱动程序210可为由网络接口202的厂商提供的硬件驱动程序、由操作系统提供商提供的硬件驱动程序或由第三方提供的硬件驱动程序。网络接口驱动程序210能够为每一个应用程序经由网络116传输和接收包。同步音频软件212可在应用程序218和网络接口驱动程序210之间提供通信。此外,同步音频软件212可在同步音频软件220和网络接口驱动程序210之间提供通信接口。
协议堆栈214包含一组协议,该组协议共同工作在不同的等级上以使应用程序218能够在网络116上通信。一个实例的协议堆栈214可包括TCP/IP、IPX/SPX、NetBIOS、ATM、NetBEUI、AppleTalk和令牌环(Token-Ring)协议。协议堆栈214可为从操作系统的提供者获得的协议组,或可为由第三方提供的协议堆栈。同样地,API 216可为从操作系统的提供者获得的API,或可为由第三方提供的API。(同步音频软件212可包括它自己的协议堆栈和API。)应用程序218可包括许多其它的用户接口和应用程序,例如浏览器、新闻客户端程序、e-mail客户端程序、文件服务程序或其它服务程序或客户端程序。
在运行期间,包流可从网络116接收并且被网络接口202缓冲。为了响应包的接收,网络接口202可生成到操作系统的中断请求。在计算环境中执行多任务、多线程操作的操作系统,将基于中断请求相对于其它由操作系统执行的进程的优先级别确认中断请求。当中断请求达到适当等级的优先级别时,操作系统可通过为网络接口202提供中断来确认中断请求。在网络接口202由于提供的中断而从操作系统获得系统控制时,网络接口驱动程序210可由操作系统执行以将包传送到同步音频软件212。同步音频软件212可由操作系统执行以分析每个包来确定数据类型。被确定包括同步音频数据(同步音频包)的包可由同步音频软件212解码。与之相对,数据包可通过同步音频软件212没有变化地或没有对这些包进行任何其它形成的处理地被传送到协议堆栈214。
通过由操作系统提供到网络接口202的相同中断,操作系统能执行同步音频软件应用程序212。因此,当网络接口202从网络116接收同步音频包时,由操作系统提供而引起的中断,导致操作系统顺序执行网络接口202的操作和同步音频软件212。同步音频软件212可处理同步音频数据,播放音频数据和/或在可记录的媒介中保存音频数据。
同步音频软件212也可从诸如光盘的媒介或其它如磁带机或无线电接收机的数据源接收音频数据,并且产生和发送同步音频数据至网络接口驱动程序210,用于在网络116上传输。由同步音频软件212产生的同步音频数据可被缓冲并随后传送到网络接口驱动程序210。网络接口驱动程序210可将数据传送到网络接口202用于在网络116上传输。当操作系统能执行同步音频软件212时,可实现同步音频数据的产生和传送。当操作系统将中断提供到网络接口202以响应由操作系统对中断请求的接收时,操作系统能进行软件执行。
第三同步音频控制器图3示意出在多任务、多线程操作系统中运行的第三说明性同步音频控制器300。同步音频控制器300可包括网络接口302、存储器304、处理器306和用户接口308。
存储器304可包括为应用程序318提供网络支持的网络软件层,该网络软件层基本并行地运行在操作系统中。存储器304可包括网络接口驱动程序310、TCP/IP堆栈314、套接字(socket)API 316和一个或多个应用程序318。同步音频控制器300也可包括同步音频驱动程序320、同步音频应用程序322。可替换地,同步音频驱动程序320可与同步音频应用程序322集成以形成同步音频软件324。
同步音频驱动程序320可运行在操作系统的驱动程序等级上。同步音频应用程序可运行在驱动程序等级以上的等级,例如应用程序等级。因此,在多任务、多线程操作系统例如Microsoft Windows中,同步音频驱动程序可运行在驱动程序等级上,而同步音频应用程序可运行在应用程序等级上。在包括安全模式或保护模式的操作系统中,当激活安全模式时,能执行驱动程序但是禁止执行应用程序。因此,在这种安全模式下,可执行同步音频驱动程序而不执行同步音频应用程序。在存储器304中也包括与同步音频驱动程序320相通信的传输缓冲区326和接收缓冲区328,以临时存储音频数据。传输缓冲区326和接收缓冲区328也可为同步音频软件324的一部分。
网络接口驱动程序310可为操作系统提供商提供的硬件驱动程序、由网络接口302的生产商提供的硬件驱动程序或由第三方提供的硬件驱动程序。TCP/IP堆栈314可为从操作系统的提供商处获得的协议堆栈,或可为包括在防火墙应用程序中的TCP/IP堆栈,或可为单机协议堆栈。类似地,套接字(socket)API 316可为从操作系统提供商获得的API,或可为由第三方提供的API。此外,为了替换TCP/IP堆栈314和套接字(socket)API 316,可使用诸如IPX/SPX、NetBIOS、NetBEUI、AppleTalk、ATM和/或令牌环(Token-Ring)的其它协议的协议堆栈和APIs。为了简化,仅说明TCP/IP堆栈314和套接字(socket)API 316。在图3中,同步音频驱动程序320可包括它自己的协议堆栈和API,且可不依赖于其它协议堆栈。因此,同步音频驱动程序320可基本与TCP/IP堆栈314和API 316并行地运行。
应用程序318可包括多个其它用户接口和应用程序,例如浏览器、内容提供客户端程序、新闻客户端程序、e-mail客户端程序、文件服务程序、或其它服务程序或基本上与同步音频软件324并行运行的客户端程序。同步音频驱动程序320和同步音频应用程序322,或可替换地,同步音频软件324,可处理同步音频数据,播放音频数据,在可记录媒介中保存音频数据,从媒介接收音频数据,和/或产生和发送同步音频数据到网络接口驱动程序310,以用于在网络116上传输。
标准TCP/IP处理实例在图3中,应用程序318不直接与网络接口302通信。而是,同步音频控制器300包括通过套接字(socket)API 316的高等级网络接口。应用程序318向套接字(socket)API 316发送网络请求并从套接字(socket)API 316接收网络响应,套接字(socket)API 316与例如TCP/IP堆栈214的下一个较低的层进行通信。
当操作系统执行一个应用程序318以在网络116上传输数据时,由应用程序318生成请求。当套接字(socket)API 316从一个应用程序318接收请求时,套接字(socket)API 316格式化该请求并将该请求转发到TCP/IP堆栈314。TCP/IP堆栈314将该请求重新格式化为一个或多个数据包。术语“数据包”指的是可变或固定长度的传输单元,该传输单元包括表示除了同步音频数据或包括在同步包中的数据以外的信息的二进制数。正如之后讨论的,同步包可提供同步音频数据使用的定时信息。信息单元可既包括数据也包括含有识别号、源和目标地址(包括多播地址地址)的头部(header),头部有时还包括错误控制数据。数据包可包括IP包、UDP包、以太网包和IPX包。术语“同步音频包”描述包含同步音频数据的信息包。可格式化数据以将其在网络上传输,例如格式化为以太网包。格式化后的数据可包含具有识别号、源和目标地址(包括多播地址)的头部,头部有时还包括错误控制数据。
TCP/IP堆栈314将数据包转发到同步音频驱动程序320。同步音频驱动程序320可分析该包并且将这些未经处理的识别为数据包的包发送到网络接口驱动程序310。在这个实例中,网络接口驱动程序310是软件的最低层。网络接口驱动程序310直接发送数据包到网络接口302。
当已接收到响应时,数据包以与请求相反的方向发送。即,数据包首先由网络接口302接收。网络接口302读取和缓冲数据包。随后由网络接口驱动程序310将包传送到同步音频驱动程序320。同步音频驱动程序320确定该包为数据包,并且应该将该包经由TCP/IP堆栈314未经处理地传送到应用程序318。随后由TCP/IP堆栈314解码包,并且在解码期间从包中提取的数据被套接字(socket)API 316进一步处理。
同步音频处理实例在图3中,同步音频控制器300包括同步音频应用程序322和同步音频驱动程序320。通过操作系统,同步音频驱动程序320可基本上与TCP/IP堆栈314和套接字API 316并行运行。同步音频驱动程序320在网络接口驱动程序310和同步音频应用程序322之间提供接口。同步音频驱动程序320可包括、产生或访问传输缓冲区326和接收缓冲区328。
同步音频软件324处理在网络116上接收的同步音频包以解码和提取音频数据。解码可包括去除包括包的识别号、源地址和目标地址的包头,该包头例如以太网包头。另外,解码可包括将包括在同步音频包中的同步音频数据转换为音频数据。可按照例如CobraNet格式的预定格式格式化同步音频数据。
同步音频软件324也处理音频数据以编码音频数据并生成能在网络116上传输的同步音频包。编码音频数据可包括按照例如CobraNet格式的预定格式重新格式化音频数据。另外,编码音频数据可包括为异步音频数据加头部,该头部例如包括包的识别号、源地址和目标地址的以太网包头部。
在操作系统中执行同步音频软件324为网络接口302请求的中断的一部分。基于在网络接口302接收到同步音频包或同步包时由网络接口302生成的中断请求,产生中断,该中断使操作系统执行同步音频软件324。同步包指的是包括与同步音频包的传输相关的定时信息的包。定时信息包括代表网络时钟提供的网络定时的帧号、指示用于传输音频数据的多个传输信道中的一个的数据包号(bundle number)和网络接口302的MAC地址。
网络接口302对同步包的接收可因同步音频软件324生成的同步请求而执行。同步请求可包括同步音频软件324当前处理的数据包号(bundle number)和网络接口302的MAC地址。同步请求可由同步音频软件324生成并且被传送到网络接口驱动程序310。当网络接口驱动程序310接收请求时,该请求通过网络接口302被传送到网络116。
在图3和4中,当网络接口302接收同步音频包或同步包时,可生成中断请求。当操作系统基于中断请求将控制转移到网络接口302时,同步音频包或同步包可由网络驱动程序310传送到同步音频驱动程序320。同步音频驱动程序320可将包识别为与音频数据相关,并处理该包以提取音频数据或定时信息。当接收同步音频包或同步包时,同步音频驱动程序320可由操作系统执行,以判断同步音频应用程序322是否在402传输音频数据。该判断可评估同步音频控制器300是否已经被授权以在交换网络116上传输同步音频包。授权可基于手动设置的标记、逻辑操作、或其它任何确定何时应该使能/禁能同步音频软件324的运行的机制来做出。另外,同步音频驱动程序320可判断解码的包是否包括正确的数据包号(bundle number)、帧号和网络接口302的MAC地址。正确的数据包号是正由同步音频软件324处理的数据包号。
如果同步音频应用程序322不能传输数据,则同步音频驱动程序320停止并且等待下一个包。在404,同步音频驱动程序320判断所接收的包是否为同步包。作为接收到同步包的结果,可由同步音频驱动程序320传输同步音频包。如果接收的包不为同步包,则同步音频驱动程序320停止处理并且等待下一个包。
如果接收的包是同步包,则在406,同步音频驱动程序320判断是否应该发送在传输缓冲区326中的同步音频数据。可由操作系统执行同步音频驱动程序320,以生成提供到传输缓冲区326的同步音频数据。由同步音频驱动程序320生成的同步音频数据包括来自一个或多个音频数据信道(时隙(slot))的音频数据,该音频数据以预定频率和精度被采样。同步音频数据可为脉冲编码调制(PCM),虽然可使用其它的调制方案。PCM量化精度(resolution)可大约是16比特、20比特或24比特长度。在其它可接受的采样频率之中,一些可使用的采样频率包括32KHz、44KHz、48KHz和96KHz。在这个实例中,每个同步音频包的最大信道数目为八。这种与同步音频数据相关的信息可包括在同步音频数据中。在传输之前有必要缓冲同步音频数据,以便当接收同步包时有足够的同步音频数据填充同步音频包。如果不准备发送在传输缓冲区326中的同步音频数据,则同步音频驱动程序320停止直到它接收下一个包。
如果应该发送传输缓冲区326中的同步音频数据,则在408,同步音频驱动程序320可准备同步音频包并且插入适当的头部。头部可包括如采样的精度、采样的频率和在同步音频包中包含多少音频数据的信道(时隙)的信息。另外,头部可包括如先前讨论的网络包头部。在410,同步音频驱动程序320可增加数据包号和帧号到同步音频包。数据包号和帧号可为同步包中之前所包括的并由同步音频驱动程序320所解码的。如先前讨论的,数据包号促进音频数据的多个信道的通信。在412,同步音频驱动程序320可将来自传输缓冲区326的同步音频数据增加到同步音频包,并且在416可发送同步音频包以用于在网络上传输。当同步音频包由网络接口驱动程序310接收时,该同步音频包可通过网络接口302传送到网络116。
在图4和5中,当同步音频包通过网络接口302接收时,可生成中断请求。当操作系统将控制转移到网络接口302时,同步音频包可由网络驱动程序310传送到同步音频驱动程序320。同步音频驱动程序320可将包识别为与音频数据相关并开始处理该包。在502,一旦接收到同步音频包,同步音频驱动程序320可判断是否授权同步音频应用程序322以接收音频数据。授权包括如先前讨论的判断是否授权使能同步音频软件324。如果不授权接收音频数据,那么同步音频驱动程序320等待下一个包。否则,在504,同步音频驱动程序320可判断接收的包是否为同步音频包。如果它不是同步音频包,则同步音频驱动程序320停止直到其接收下一个包。如果已接收包是同步音频包,则在506,同步音频驱动程序320可判断数据包号是否为同步音频应用程序322当前处理的数据包号。如果数据包号不为同步音频应用程序322当前处理的数据包号,同步音频驱动程序320停止直到其接收下一个包。
当包具有当前处理的数据包号时,在508,同步音频驱动程序320可从该包中提取音频数据并基于包括在包的头部中的信息将音频数据分配到时隙或信道中。在510,同步音频驱动程序320可在接收缓冲区328中存储音频数据。在512,同步音频驱动程序320可基于授权状态判断在接收缓冲区328中的音频数据是否应该被发送到同步音频应用程序322。如果不应该发送到同步音频应用程序322,那么同步音频驱动程序320停止直到其接收下一个包。如果在接收缓冲区328中的音频数据被授权发送到同步音频应用程序322,那么在514,同步音频驱动程序320可传输音频数据到同步音频应用程序322。同步包和包括在其中的定时信息无需处理从网络116接收的同步音频包。
同步音频应用程序322可进一步处理音频数据以获得用于转换到音频声音所期望的格式。例如,同步音频应用程序322可再采样音频数据到可兼容的频率,例如44KHz。同步音频应用程序322也可将音频数据分到确定数目的信道,例如左、右信道用于立体声,或5个或更多的信道用于环绕声。另外,同步音频应用程序322可转换音频数据的格式,例如从脉冲编码调制转换到MP3。同步音频应用程序322也可在存储器中存储处理后的音频数据,例如,存储在如计算机的硬盘驱动器的磁性介质。
同步音频驱动程序320可在操作系统的驱动程序等级作为系统进程运行,这样它较一些由操作系统运行的与同步音频软件324并行运行的应用程序,具有更高的优先级别。另外,同步音频驱动程序320可能为相当“精益的”以最小化音频数据的处理时间。
在同步音频驱动程序320和同步音频应用程序322之间的直接通信促进高速运行,使得同步音频驱动程序320每秒能处理(传输和接收)大约750个同步音频包。因此,由于使用网络接口302请求的中断、驱动程序等级的操作和最小化的处理时间,同步音频软件可基本上实时地处理同步音频包。
第四同步音频控制器图6为具有其它应用程序的在多任务、多线程操作系统中的同步音频控制器600的部分框图的实例。说明性的同步音频控制器600包括同步音频应用程序602、同步音频驱动程序604、传输缓冲区326和接收缓冲区328。同步音频应用程序602包括解码器模块608、再取样模块610、缓冲区模块612和数据格式化模块614以在不同格式之间转换音频数据。在其它的实例中,可示意较少或较多数目的模块以举例说明所描述的同步音频应用程序602的功能。
解码器模块608可为任何形式的用于在一种或多种格式之间进行音频数据转换的转换进程,例如在MP3或DTS数据和脉冲编码调制(PCM)数据之间转换音频数据。例如,音频数据的外部来源616,如存储在存储器中的源文件、CD播放器等,可为在用于生成音频声音的MP3或DTS格式。因此,在操作系统中执行的同步音频应用程序602可处理从存储器装置(例如可在操作系统中访问的磁性介质)取回的源文件。另外,同步音频应用程序602产生的源文件可被存储在操作系统可访问的存储器装置中。解码器模块608也可分离视频数据的音频部分,并且将视频部分转发到视频处理装置,例如视频卡。
再采样模块610可为任何形式的用于在音频数据被采样的一个或多个频率之间转换的采样频率转换程序。例如,可在44.1KHz和48KHz之间再采样音频数据。当音频数据已经以期望的采样速率进行存储或从数据源取回时,可省略再采样模块610。
缓冲区模块612可提供将通过网络传输的音频数据的临时存储和从网络接收的音频数据的临时存储。例如,在再采样模块610处理音频数据之前和之后,音频数据可被临时存储在缓冲区模块内。
数据格式化模块614可将音频数据转化为与音频数据的包传输兼容的格式。另外,数据格式化模块614可提供改变包内的音频数据的表示格式的格式转换功能。例如,数据格式化模块614可在32比特格式和预定16比特块格式之间转换音频数据。当音频数据为用于包传输的期望的格式时,可省略数据格式化模块614的格式化功能。
也可配置数据格式化模块614以与同步音频驱动程序604通信。因此,可由同步音频驱动程序604从同步音频应用程序602接收音频数据以用于通过网络传输。另外,可从网络接收同步音频包中的音频数据,并且提取该音频数据并从同步音频驱动程序604将该音频数据传送到同步音频应用程序602。可在同步音频应用程序602和同步音频驱动程序604之间传输音频数据和对音频数据的请求。通信链路620提供在同步音频应用程序602和同步音频驱动程序604之间的双向通信路径。通信链路620可为有线的、无线的、光缆的或任何其它形式的通信接口。
实例的同步音频驱动程序604包括包供应缓冲区624、包请求模块626、同步包模块628、包格式化模块630、包传输模块632和同步请求模块634。在其它实例中,可示意出附加的或较少的模块以描述同步音频驱动程序604的功能。
包供应缓冲区624可为用于临时存储从同步音频应用程序602接收的音频数据的任何机制。当准备通过网络传输同步音频包时,包请求模块626可监测包供应缓冲区624。当包请求模块626确定包供应缓冲区624低于满音频数据或低于预定等级时,可经由通信链路620生成和传输包请求。另外,包请求模块626可将从网络接收的音频数据传输到数据格式化模块614。从网络接收的音频数据可为从接收缓冲区328(图3)提供到包缓冲区626的缓冲数据。
可配置同步包模块628以接收和分析经由网络传输的同步包。如先前所讨论,同步包通过网络被传输到网络接口202(图2)。一旦由同步音频驱动程序604接收,包可被提供到同步包模块628。同步包模块628可从同步包提取出定时信息。更具体而言,同步包模块628可确定包是同步包。此外,同步包模块626可从包中剥离头部和检验指示包与同步数据传输相关的唯一的ID。此外,定时信息,例如帧号、数据包号和MAC地址,可为从包中剥离的并被检验为正确的。如果信息正确,帧号可从包中解析出来并且被转发到包格式化模块630。
包格式化模块630可利用包供应缓冲区624的音频数据产生同步音频数据。如先前所讨论,可按照例如CobraNet格式的预定格式,产生同步音频数据。通过包格式化模块630,包供应缓冲区624中的音频数据可被取回并被转换为同步音频数据。由包格式化模块630产生的同步音频数据可被存储在传输缓冲区326中。
利用包括在传输缓冲区326中的同步音频数据,包格式化模块630可生成同步音频包。包格式化模块630可将从同步包模块628提供的帧号添加到同步音频数据。通过包格式化模块630,数据包号和任何其它识别信息也可被添加到同步音频数据的头部。一旦同步音频包被封装,数据被提供到包传输模块632。包传输模块632将完全封装的同步音频包提供到网络接口驱动程序31(图3)。网络接口驱动程序310将同步音频包传送到网络接口302以用于在网络116上传输。(图3)同步请求模块634可产生在交换网络上传输的请求以使得同步包通过交换网络传输。通过同步请求模块634可以预定间隔生成请求以维持同步包的稳固供应。同步包的稳固供应使得产生外发的同步音频包的稳定流,因为对于每个传输的同步音频包,接收一个同步包。
运行过程中,可由同步请求模块634通过网络传输请求。作为响应,同步模块628可接收同步包。在确认之后,同步模块628可解码包并解析出被提供到包格式化模块630的帧号。可生成同步音频包以响应同步包的接收。同步音频包可由包格式化模块630生成。可由存储在传输缓冲区326中的同步音频数据生成同步音频包。同步音频数据可由包格式化模块630取回并插入到同步音频包。同步音频包可随后由包传输模块632转发以在网络上传输。
另一方面,一旦接收到同步音频包,包被提供到包请求模块626。包请求模块626确定同步音频包的数据包号(bundle number)为当前正被处理的数据包号(bundle number),解码包并提取音频数据。经由通信链路620,音频数据被传输到数据格式化模块614。因此,同步音频应用程序602接收适合进一步处理的格式的音频数据。如果需要,音频数据被再格式化并被放置在数据缓冲区612中。再取样模块610可将音频数据的采样频率转换到期望的采样频率,例如CD盘的采样频率44.1kHz。解码器608可将音频数据转换到与例如MP3文件的外部资源616兼容的格式。可将转换的音频数据提供到外部资源,例如CD播放器、数字放大器、或存储介质,如硬盘驱动器。
先前描述的来自交换网络的包的处理和外发到交换网络的同步音频包的生成,是通过同步音频软件在多任务、多线程的操作系统的驱动程序等级上执行的。由于在网络接口302请求的中断的期间,由操作系统执行同步音频软件(图3),能基本实时地执行音频数据的处理。作为多任务、多线程操作系统中同步音频软件的基本上实时运行的结果,可使用操作系统内的现有系统和进程。另外,作为单一中断的结果,同步音频驱动程序604可在驱动程序等级执行包的识别、分类和处理。通过操作系统,单一中断也可允许正好在驱动程序等级之上执行同步音频应用程序602。因此,无需专门的和/或专用的硬件,可有效率并有效果地处理音频数据。
尽管已经描述了本发明的不同实施例,对于本领域普通技术人员显而易见的是在本发明的范围内可有更多的实施例和实施方案。因此,除了按照所附的权利要求和它们的等同内容外,本发明是不受限制的。
权利要求
1.一种计算机系统,其包括适于执行多个应用程序的操作系统;同步音频应用程序,其可在所述操作系统中与所述操作系统执行的其它应用程序基本并行地执行;配置成在所述操作系统中运行的网络接口,所述网络接口能够经由交换网络发送和接收用于所述应用程序的包流,其中,所述包流包括数据包和同步音频包;以及与所述网络接口和所述应用程序通信的同步音频驱动程序,所述同步音频驱动程序被配置成解码所述接收的包流中的同步音频包,并且将包括在所述同步音频包中的被解码的音频数据提供到所述同步音频应用程序,所述同步音频驱动程序被更进一步配置成不经改变地将所述数据包传送到所述其它应用程序。
2.如权利要求1所述的计算机系统,其特征在于,为了仅响应一个来自所述网络接口的中断请求,所述操作系统被配置成将所述网络接口、所述同步音频驱动程序和所述同步音频应用程序作为一组执行,以处理从所述交换网络接收的和经由所述交换网络传输的同步音频包。
3.如权利要求2所述的计算机系统,其特征在于,当从所述交换网络接收同步音频包时,不间断地顺序运行所述网络接口、所述同步音频驱动程序和所述同步音频应用程序。
4.如权利要求3所述的计算机系统,其特征在于,所述数据流还包括同步包,并且当从所述交换网络接收同步包时,不间断地顺序运行所述网络接口、所述同步音频驱动程序和所述同步音频应用程序,以处理音频数据并且传输包括所述音频数据的异步音频包。
5.如权利要求1所述的计算机系统,其特征在于,所述操作系统为Windows操作系统、Unix操作系统和Linux操作系统中的一种操作系统。
6.如权利要求1所述的计算机系统,其特征在于,解码所述同步音频包以去除包括标识符号、源地址和数据地址的头部。
7.如权利要求1所述的计算机系统,其特征在于,所述数据流还包括同步包,并且,所述同步音频驱动程序被配置成准备用于在所述被发送的包流中传输的同步音频包,以响应满足预定标准的所述同步包中的一个的接收。
8.如权利要求1所述的计算机系统,其特征在于,所述包流为以太网网络包流。
9.如权利要求1所述的计算机系统,其特征在于,所述同步音频包包括根据CobraNet规范被格式化的同步音频数据,并且解码所述同步音频包,以提取所述同步音频数据,并将所述同步音频数据转换成音频数据。
10.如权利要求1所述的计算机系统,其特征在于,所述音频数据仅为未压缩的音频数据。
11.一种计算机系统,其包括适于执行多个应用程序的操作系统;配置成在所述操作系统中运行的网络接口,所述网络接口能够经由交换网络发送和接收用于所述应用程序的数据包和同步音频包流;与所述网络接口和所述应用程序通信的同步音频驱动程序,其中,所述同步音频驱动程序被配置成识别并且解码同步音频包以提取音频数据;以及适于与所述同步音频驱动程序和除所述同步音频应用程序之外的应用程序通信的协议堆栈;其中,所述同步音频驱动程序被配置成将来自所述被解码的同步音频包的所述音频数据提供到所述同步音频应用程序,并且通过所述同步音频驱动程序未经改变地将从所述交换网络接收的所述数据包传送到所述协议堆栈。
12.如权利要求11所述的计算机系统,其特征在于,通过所述同步音频驱动程序传送到所述协议堆栈的所述数据包,与所述同步音频驱动程序从所述交换网络接收所述数据包时的情况相同。
13.如权利要求11所述的计算机系统,其特征在于,所述同步音频驱动程序还被进一步配置成生成并且传输来自音频数据的同步音频包。
14.如权利要求13所述的计算机系统,其特征在于,所述流包括同步包,所述同步音频驱动程序被配置成接收并且解码其中一个所述同步包,并且从音频数据中生成同步音频包,以响应对所述其中一个所述同步包的接收。
15.如权利要求11所述的计算机系统,其特征在于,所述操作系统是多任务和多线程的。
16.如权利要求15所述的计算机系统,其特征在于,所述操作系统被配置成和所述同步音频驱动程序以及所述同步音频应用程序基本并行地执行其它应用程序。
17.如权利要求11所述的计算机系统,其特征在于,所述同步音频应用程序的操作全部在所述操作系统的所述驱动程序等级执行。
18.如权利要求11所述的计算机系统,其特征在于,所述协议堆栈包括TCP/IP协议。
19.如权利要求11所述的计算机系统,其特征在于,所述同步音频驱动程序被配置成分析并且分类所述同步音频包和所述数据包。
20.一种计算机系统,其包括同步音频应用程序,其被配置成格式化从音频数据源接收的音频数据;以及与所述同步音频应用程序通信的同步音频驱动程序,所述同步音频驱动程序被配置成将所述格式化的音频数据转换成同步音频数据并且缓冲所述同步音频数据;所述同步音频驱动程序适于接收并且解码可从交换网络接收的同步包,其中,所述同步包包括帧号;其中,为了响应对所述同步包的接收,所述同步音频驱动程序被配置成生成包括被缓冲的同步音频数据和所述帧号的同步音频包,所述同步音频包可在所述交换网络上传输。
21.如权利要求20所述的计算机系统,其特征在于,所述同步音频驱动程序包括包请求模块,所述包请求模块被配置成只要包括在所述同步音频驱动程序中的包供应缓冲区不满时,就从所述同步音频应用程序请求音频数据。
22.如权利要求20所述的计算机系统,其特征在于,所述同步音频驱动程序包括包同步模块,所述包同步模块被配置成接收所述同步包,并且从所述同步包中提取所述帧号。
23.如权利要求20所述的计算机系统,其特征在于,所述音频数据源可为光盘、音频数据存储装置和麦克风中的任何一个。
24.如权利要求20所述的计算机系统,其特征在于,所述同步音频驱动程序包括包请求模块、包供应缓冲区模块和包格式化模块,其中,所述包请求模块被配置成监测所述包供应缓冲区,并且只要所述包供应缓冲区不满,就从所述同步音频应用程序请求附加的音频数据,所述包格式化模块被配置成从所述包供应模块解压缩音频数据,并且格式化所述音频数据以形成同步音频数据。
25.如权利要求24所述的计算机系统,其还包含传输缓冲区,其中,所述包格式化模块被配置成在所述传输缓冲区中存储同步音频数据,并且从存储在所述传输缓冲区中的所述同步音频数据中生成同步音频包以用于在所述交换网络上传输。
26.如权利要求20所述的计算机系统,其特征在于,所述同步音频数据包括表示包含在所述同步音频数据中的多个音频数据采样的精度的数据、表示所述音频数据采样的频率的数据、以及表示包含在所述同步音频数据中的音频数据的信道数目的数据。
27.如权利要求20所述的计算机系统,其特征在于,在所述同步音频包中的所述音频数据为未压缩的。
28.如权利要求20所述的计算机系统,其特征在于,所述同步音频驱动程序被配置成仅在多任务、多线程操作系统的驱动程序等级上运行。
29.一种计算机系统,其包括适于基本并行地执行多个应用程序的操作系统;同步音频软件,其可由所述操作系统执行,以处理所接收的同步音频包,并且从音频数据中生成同步音频包以用于传输;配置成在所述操作系统中运行的网络接口,所述网络接口适于经由交换网络发送和接收用于多个应用程序的包流,其中,所述接收的包流包括数据包、同步包和同步音频包,并且所述发送的包流包括数据包和同步音频包;其中,所述同步音频软件适于与所述网络接口和所述应用程序通信,所述同步音频软件被配置成解码来自所述接收的流中的同步音频包,所述同步音频软件被进一步配置成通过所述同步音频驱动程序将来自所述接收的流的数据包不经过任何处理地传送到所述其它应用程序,以及所述同步音频软件被进一步配置成开始在所述发送的包流中传输由所述同步音频软件生成的所述同步音频包,以响应对在所述接收的包流中的同步包的接收。
30.如权利要求29所述的计算机系统,其特征在于,所述操作系统为基于窗口的操作系统。
31.如权利要求29所述的计算机系统,其特征在于,所述同步音频软件包括可在所述操作系统的驱动程序等级上执行的同步音频驱动程序和可在所述操作系统的应用程序等级上执行的同步音频应用程序。
32.如权利要求29所述的计算机系统,其特征在于,所述同步音频软件包括同步音频驱动程序和同步音频应用程序,并且所述操作系统能在安全模式中运行,在所述安全模式中能执行所述同步音频驱动程序,而不能执行所述同步音频应用程序。
33.如权利要求29所述的计算机系统,其特征在于,所述同步音频软件被配置成可在利用已有的和预配置的硬件的预配置的和已有的操作系统中执行。
34.一种计算机系统,其包括适于执行多个应用程序的操作系统;配置成在所述操作系统中运行的网络接口,所述网络接口能够经由交换网络发送和接收同步音频包和数据包;以及可在所述操作系统中与由所述操作系统执行的其它应用程序基本并行地执行的同步音频软件,可执行所述同步音频软件以处理从所述网络接口接收或提供到所述网络接口的同步音频包,其中,每一个所述同步音频包包括音频数据。
35.如权利要求34所述的计算机系统,其特征在于,所述网络接口被配置成生成到所述操作系统的中断请求,并且可运行所述网络接口和所述同步音频软件以处理所述同步音频包,以便仅响应所述操作系统为响应所述中断请求而提供的一个中断。
36.如权利要求34所述的计算机系统,其特征在于,可执行所述同步音频软件以将音频数据格式化为用于在所述交换网络上传输的所述同步音频包。
37.如权利要求36所述的计算机系统,其特征在于,根据CobraNet规范格式化所述同步音频包。
38.如权利要求34所述的计算机系统,其特征在于,所述同步音频软件被配置成从存储装置取回所述音频数据,并且生成提供到所述网络接口的所述同步音频包。
39.如权利要求34所述的计算机系统,其特征在于,所述同步音频软件被配置成处理从所述网络接口接收的所述同步音频包,以提取所述音频数据,所述音频数据可由所述同步音频软件存储在存储装置中。
40.如权利要求34所述的计算机系统,其特征在于,所述交换网络是以太网网络。
41.如权利要求34所述的计算机系统,其特征在于,所述音频数据仅为未压缩的音频数据。
42.一种计算机系统,其包括适于执行多个应用程序的操作系统;配置成在所述操作系统中运行的网络接口,所述网络接口能够从交换网络接收同步音频包和数据包;以及同步音频软件,其可在所述操作系统中与可由所述操作系统执行的其它应用程序基本并行地执行,可执行所述同步音频软件以从自交换网络接收的所述同步音频包中提取音频数据。
43.如权利要求42所述的计算机系统,其还包含协议堆栈,所述协议堆栈可与所述同步音频软件基本并行地执行,以从自所述交换网络接收的所述数据包中提取数据以用于其它应用程序。
44.如权利要求42所述的计算机系统,其特征在于,所述同步音频软件包括同步音频驱动程序,所述同步音频驱动程序被配置成提取所述音频数据,并且同步音频应用程序被配置成将所述音频数据处理成可以预订格式播放和保存。
45.如权利要求42所述的计算机系统,其特征在于,所述数据包被格式化为传输控制协议/互联网协议的格式。
46.如权利要求42所述的计算机系统,其特征在于,所述交换网络为以太网网络,所述网络接口为以太网网络接口。
47.如权利要求42所述的计算机系统,其特征在于,所述网络接口符合IEEE 802.3标准。
48.权利要求42所述的计算机系统,其特征在于,所述网络接口适于将所述同步音频包传输到所述交换网络。
49.如权利要求48所述的计算机系统,其特征在于,可执行所述同步音频软件,以将音频数据格式化为所述同步音频包。
50.如权利要求42所述的计算机系统,其特征在于,根据CobraNet规范格式化所述同步音频包。
51.一种计算机系统,其包含配置成运行在多线程、多任务计算环境下的操作系统;配置成由所述操作系统运行的网络接口,所述网络接口被配置成经由交换网络传输同步音频包,并且被配置成从交换网络接收数据包和同步包;以及同步音频软件,其可在所述操作系统中与可运行在所述操作系统中的其它应用程序基本并行地,可执行所述同步音频软件以将音频数据格式化为用于由所述网络接口传输的同步音频包,从而响应对所述同步包中的一个的接收。
52.如权利要求51所述的计算机系统,其特征在于,根据CobraNet规范格式化所述同步音频包。
53.如权利要求51所述的计算机系统,其包含网络软件,可执行所述网络软件以从所述交换网络接收的所述数据包中提取数据。
54.如权利要求51所述的计算机系统,其特征在于,所述同步音频软件包括同步音频驱动程序。
55.如权利要求51所述的计算机系统,其特征在于,所述同步音频软件包括同步音频应用程序。
56.如权利要求51所述的计算机系统,其特征在于,所述数据包和同步包被格式化为传输控制协议/互联网协议的格式。
57.如权利要求51所述的计算机系统,其特征在于,所述交换网络为以太网网络,所述网络接口为以太网网络接口。
58.一种计算机系统,其包含网络接口;适于执行多个应用程序的操作系统,所述应用程序在所述操作系统中执行,以依照网络协议经由所述网络接口与交换网络进行通信;以及同步音频软件,其可在所述操作系统中与可运行在所述操作系统中的其它应用程序基本并行地运行,可执行所述同步音频软件,以经由所述网络接口与所述交换网络交换同步音频包。
59.如权利要求58所述的计算机系统,其特征在于,所述协议为传输控制协议/互联网协议。
60.如权利要求58所述的计算机系统,其特征在于,所述同步音频包被格式化为CobraNet规范的格式。
61.一种在交换网络上传送同步音频包的方法,其包括由网络接口接收包流,其中,所述包流包括数据包和同步音频包;由网络接口驱动程序处理所述包流;由同步音频驱动程序处理所述包流,以不经改变地将那些为数据包的包传送到协议堆栈;由所述同步音频驱动程序解码那些为同步音频数据的包;以及由所述协议堆栈基本并行地解码那些为数据包的包。
62.如权利要求61所述的方法,其特征在于,由同步音频驱动程序处理所述包流包括判断所述包是否为同步音频包。
63.如权利要求61所述的方法,其特征在于,由所述同步音频驱动程序解码那些为同步音频数据的包包括仅在所述包为同步音频包时从所述包中提取音频数据。
64.如权利要求63所述的方法,其特征在于,提取音频数据包含进一步处理由同步音频应用程序从所述同步音频数据中提取的音频数据。
65.如权利要求63所述的方法,其特征在于,提取音频数据包含在硬盘驱动器上存储所述被提取的音频数据。
66.如权利要求61所述的方法,其特征在于,处理所述包流包括生成中断请求和当所述中断请求被允许时,由所述网络接口驱动程序处理所述包流以及由所述同步音频驱动程序处理那些为同步音频数据的包。
67.如权利要求61所述的方法,其特征在于,解码那些为同步音频数据的包,包含将所述音频数据转换为所期望格式的音频数据。
全文摘要
一种计算机系统,其包括在网络上传输和/或接收包的网络接口。该包可包括同步音频包和数据包。该计算机系统可具有一种操作系统,在该操作系统中可执行同步音频软件以从同步音频包中提取音频数据,或将音频数据格式化为同步音频包。该系统也可包括在操作系统中与同步音频软件可基本并行执行的其它软件。该其它软件可从数据包中提取数据。
文档编号H04L29/06GK1890626SQ200480036223
公开日2007年1月3日 申请日期2004年11月8日 优先权日2003年11月7日
发明者P·B·布克沃特 申请人:哈曼国际工业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1