首页 / 信号处理装置

信号处理装置失效专利 发明

技术内容

技术领域 本发明涉及用于通过软件处理来执行包括多个单元信号处理步骤的信号处理 的信号处理装置。 背景技术 近来,越来越多的高性能计算机可在市场上购买到,且在计算机上可再现电 影和音乐,而这在过去是非常困难的。特别地,可以获得这样的视频和音频信号处 理应用程序,它们能够通过软件处理容易地执行实时信号处理,而无需使用诸如数 字信号处理器(DSP)或专用硬件等传统的专用信号处理设备。 这样的信号处理应用程序是由各种类型的信号处理中间件来支持的,诸如 Microsoft公司的产品DirectShow(可在线从 http://msdn.microsoft.com/library/defalt.asp?url=/library/en-us/directx9_c/directx/htm/d irectshow.asp获得)、MathWorks有限公司的产品MATLAB(可在线从 http://www.mathworks.com/获得)、以及Cycliing′74的产品Max/MSP(可在线从 http://www.cycling74.com/products/maxmsp.html获得)。 使用了这类中间件(middleware),信号处理应用程序能够相当容易地实现复杂 的特征。例如,诸如记录和再现、输入和输出、混合以及特殊效果等音频特征是通 过信号处理软件来实现的。也可获得具有诸如非线性编辑等复杂编辑特征的视频信 号处理应用程序。 具有插件配置的中间件系统在日本未审查专利申请公开号2001-109628和 7-302195中公开。插件是实现模块化特征的软件应用程序。该文档涉及信号处理。 因此,插件是实现信号处理模块的软件应用程序。 插件允许用户在需要时附加和使用期望的信号处理模块。尽管插件一般是单 独使用的,但近来开发了其中可通过插件组合来实现多个特征的新颖系统。将来, 这类多插件系统将变为新的增值系统的主流。 发明内容 提供这样一种信号处理装置是有用的,该装置允许用户灵活且任意地改变信 号处理装置的电路配置,而不会中断信号处理且不会中断信号输出。在例如用于实 况演出的音频信号处理中,改变电路配置而不中断音频输出操作使得能够容易地向 指定的部分应用或不应用音频特殊效果处理,诸如混响或失真。 为改变具有硬件结构的信号处理装置的电路配置而不中断信号处理,方便的 是预先设置所有可预期电路配置且通过开关或其类似物来切换。由于所有的电路配 置都是预先设置的,因此很难根据情形来改变到非预期的电路,这导致相当低的灵 活性。此外,预先设置所有的电路配置的成本是很高的。 即使是在允许用户下载电路配置信息的可切换硬件实现中,诸如在现场可编 程门阵列(FPGA)实现中,原则上,可能需要相当大的时间来切换电路,且在切 换电路之前和之后不确保电路一致性,由此导致电路切换期间的声音信号丢失或噪 声。很难动态地切换电路配置同时连续地输出音频信号。 在上述信号处理模块被组合来构造信号处理装置的情况下,与硬件结构不同, 可能通过改变软件来改变信号处理电路的电路配置。不使用硬件结构中的开关。由 此,可以灵活且任意地改变电路配置,且原则上,在切换期间生成的噪声将被去除。 然而,要注意以下事项。在软件信号处理中,一般信号处理是在分组单元中 执行的,以减小处理负载。在前馈电路配置中,信号在前向方向上流动,且动态地 切换电路配置甚至在分组处理期间也不会导致所处理的音频数据的不一致性。 然而,在包括反馈回路的电路配置中,在分组处理期间切换电路配置会导致 信号处理中的不一致性。这是由于数字信号处理理论中反馈回路的因果约束而产生 的。由于因果约束,即使在一个分组内,反馈回路电路也应当按照一个样本为单位 来执行。在包括两种类型的混合,即前馈类型和反馈回路类型的电路配置中,对前 馈电路的信号处理是按照分组为单位来执行的,而对反馈回路电路的信号处理是按 照一个样本为单位来执行的。因此,两种不同类型的控制处理是在同一分组时间中 执行的。 问题是,在包括这两个电路类型的混合的环境中,仅仅切换电路而不加以仔 细考虑会导致所处理的音频数据的不一致性。前馈电路和反馈回路电路具有不同的 可切换定时持续时间。如果简单地执行电路切换,则在切换之前在原始电路配置中 处理的音频数据以及在切换的电路配置中处理的音频数据可在同一分组中混合,导 致所处理的音频数据的不一致性,由此导致诸如噪声等问题。 因此,期望的是提供这样一种信号处理装置,其中信号处理装置的电路配置 可在不中断信号处理且不中断信号输出的情况下改变。 依照本发明的一个实施例,一种用于通过软件信号处理来执行信号处理的信 号处理装置,该信号处理包括处理数据单元中的多个单元信号处理步骤,每一处理 数据单元具有预定数量的数据样值,该信号处理装置包括以下元件。多个信号处理 模块分别通过软件处理来执行单元信号处理步骤。电路配置信息存储和管理单元储 存并管理多个信号处理模块以及由多个信号处理模块的输入和输出的虚拟连接状 态表示的电路配置信息。信号处理次序确定装置通过执行路径路由来确定多个信号 处理模块形成储存在电路配置信息存储和管理单元中的电路配置信息的次序。信号 处理执行装置通过按信号处理次序确定装置所确定的信号处理次序来顺序地启用 信号处理模块来执行信号处理。电路配置改变装置确定在信号处理执行装置执行的 信号处理过程中是否存在电路配置改变请求。当检测到电路配置改变请求时,电路 配置改变装置改变储存在电路配置信息存储和管理单元中的电路配置信息,并使得 信号处理次序确定装置重新执行路径路由,来确定多个信号处理模块形成在从处理 数据单元中的软件信号处理的结束到后续的处理数据单元的开始的周期中的改变 的电路配置信息的信号处理次序。从后续的处理数据单元的开始处的软件信号处理 是用由电路配置改变装置改变的电路配置来执行的。 依照上述实施例的信号处理装置,软件信号处理是由多个信号处理模块按预 定信号处理次序来顺序地执行的。这防止每一信号处理模块引起导致冗余的处理延 迟,诸如由于处理被储存在异步缓冲区中的数据所导致的延迟。 当在信号处理期间发生电路配置改变请求时,在从处理数据单元中的软件信 号处理的结束到后续的处理数据单元的开始的周期中,改变的电路配置信息被储存 在电路配置信息存储和管理单元中,且启用信号处理次序确定装置以找出新的信号 处理次序。信号处理执行装置按照该新的信号处理次序执行信号处理。 在这一情况下,电路配置在给定处理数据单元到后续的处理数据单元之间的 周期中改变,且要用改变的电路配置执行的信号处理是从后续的处理数据单元的开 始,而非处理数据单元的中间开始的。因此,从原始电路配置获得的处理结果和从 改变的电路配置获得的处理结果不被混合,由此确保即使具有包括回路的电路配 置,处理数据单元中的信号也连续地经受信号处理。 因此,即使在信号处理操作期间,也可以在不中断信号输出的情况下改变电 路配置,且可以用改变的电路配置连续地执行信号处理。 因此,依照本发明的一个实施例,即使在信号处理操作期间,也可能动态地 改变电路配置。也可能提供这样一种信号处理装置,其中当信号处理模块以多级连 接时,信号处理延迟不会增加。此外,即使在包括闭合回路的信号处理电路中,也 可能防止由动态地改变电路配置而引起的问题。 附图说明 图1是依照本发明的一个实施例的信号处理装置的主要部分的功能框图; 图2是示出依照本发明的该实施例的信号处理装置的示意图; 图3是示出依照本发明的该实施例的信号处理装置的示意图; 图4是示出依照本发明的该实施例的信号处理装置的示意图; 图5是示出依照本发明的该实施例的信号处理装置的示意图; 图6是示出依照本发明的该实施例的信号处理装置的插件结构的示意图; 图7是示出依照本发明的该实施例的信号处理装置的图结构的示意图; 图8是示出依照本发明的该实施例的信号处理装置的示例性电路配置的示意 图; 图9是示出依照本发明的该实施例的信号处理装置中的示例性电路形成过程 的流程图; 图10是示出依照本发明的该实施例的信号处理装置中的示例性电路形成过程 的流程图; 图11是示出依照本发明的该实施例的信号处理装置中的示例性电路形成过程 的流程图; 图12是示出依照本发明的该实施例的信号处理装置中的示例性电路形成过程 的流程图; 图13是示出依照本发明的该实施例的信号处理装置中的路径路由算法的流程 图; 图14是示出形成依照本发明的该实施例的信号处理装置中的路径路由算法的 一部分的初始路径路由算法的流程图; 图15是示出形成依照本发明的该实施例的信号处理装置中的路径路由算法的 该部分的初始路径路由算法的示意图; 图16是示出形成依照本发明的该实施例的信号处理装置中的路径路由算法的 该部分的初始路径路由算法的示例性搜索结果的示意图; 图17是示出形成依照本发明的该实施例的信号处理装置中的路径路由算法的 一部分的回路搜索算法的流程图; 图18是示出形成依照本发明的该实施例的信号处理装置中的路径路由算法的 该部分的回路搜索算法的示意图; 图19是示出依照本发明的该实施例的信号处理装置中的AV同步过程的流程 图; 图20是示出依照本发明的该实施例的信号处理装置中的动态电路配置改变过 程的流程图; 图21是示出依照本发明的该实施例的信号处理装置的电路配置的示例性改变 的示意图; 图22是示出依照本发明的该实施例的信号处理装置的电路配置的示例性改变 的示意图; 图23A和23B是示出通过添加插件对依照本发明的该实施例的信号处理装置 的电路配置的示例性改变的示意图; 图24A和24B是示出通过检测插件对依照本发明的该实施例的信号处理装置 的电路配置的示例性改变的示意图; 图25A和25B是示出通过改变插件对依照本发明的该实施例的信号处理装置 的电路配置的示例性改变的示意图; 图26A和26B是示出通过添加连接对依照本发明的该实施例的信号处理装置 的电路配置的示例性改变的示意图; 图27A和27B是示出通过添加插件和连接对本发明的该实施例的信号处理装 置的电路配置的示例性改变的示意图; 图28A和28B是示出依照本发明的该实施例的信号处理装置的电路配置的示 例性改变的示意图; 图29是示出依照本发明的该实施例的信号处理装置的电路配置的示例性改变 的示意图; 图30是示出依照本发明的该实施例的信号处理装置的电路配置的示例性改变 的示意图; 图31是是示出依照本发明的该实施例的信号处理装置的电路配置的示例性改 变的示意图; 图32是示出改变依照本发明的该实施例的信号处理装置的电路配置时所涉及 的示例性过程的流程图; 图33是示出用于依照本发明的该实施例的信号处理装置的参数设置方法的示 意图; 图34是示出用于依照本发明的该实施例的信号处理装置的另一参数设置方法 的示意图; 图35是示出图34所示的参数设置方法的示例性实现的流程图; 图36是示出图34所示的参数设置方法的另一示例性实现的流程图; 图37是示出用于依照本发明的该实施例的信号处理装置的实时分发过程的示 意图。 具体实施方式 下文将参考附图描述依照本发明的一个实施例的信号处理装置。以下描述的 该实施例的信号处理装置被实现为对于现有技术的同一类型的装置具有高级特征 的多插件系统。 现有的多插件系统具有如下的某些缺陷: (a)当插件以多级连接时,处理延迟(时延)成比例地增加。 (b)在插件之间的连接中有限制,难以将插件连接在一起以形成反馈回路。 (c)难以在信号处理期间改变插件之间的连接。 (d)由于低处理速度,难以实时实现多个特征。 (e)难以提供用于控制音频和视频或参数改变之间的同步的样本准确度。 (f)按单元处理信号仅在单个计算机上的闭合回路的形式中是可执行的。 若干现有的中间件系统部分地克服了上述缺点,然而,没有能够同时克服上 述所有缺点的中间件系统,因为它们中的某一些会彼此冲突(即,问题得以克服, 但随后会不利地影响另一问题)。例如,难以同时克服缺点(b)和(d)。 这些缺陷有时候会导致对于将系统结合到传统中间件产品中的关键瓶颈。 下文将描述的信号处理装置目的是要克服上述缺点。 依照本发明的一个实施例的信号处理装置被实现为通用信号处理中间件。该 中间件在下文中被称为“软件信号处理器(SSP)”。在以下实施例中,信号处理 将在音频信号处理的上下文中讨论。 如图2所示,SSP驻留在通用操作系统(OS)和应用程序软件之间。对SSP 的使用使得应用程序软件能够容易地实现复杂的信号处理特征。SSP是不需要图形 用户界面(GUI)的中间件,且对于用于没有显示设备的嵌入式设备的信号处理引 擎也是有用的。 依照实施例的信号处理装置的综述 作为依照本发明的一个实施例的信号处理装置的一种实现的SSP是具有图结 构的中间件,且基本上是在单个计算机上实现的。然而,如下所述,SSP可在通过 网络连接的多个计算机上实现。 被实现为SSP的依照本发明的一个实施例的信号处理装置由两个部分组成: 由软件实现的图模块(后文简称为“图”)以及由软件实现的插件模块(后文简称 为“插件”)。 插件模块是用于执行单元信号处理步骤的信号处理模块(软件),诸如滤波 器、平衡器或增益控制。 在本示例中,插件可具有多个输入端口和多个输出端口。插件在来自输入端 口的信号输入上执行对该插件唯一的信号处理,并从输出端口输出所得的信号。 一插件的输出端口被连接到另一插件的输入端口(该连接是虚拟连接,这意 味着来自一插件的输出信号被输入到另一插件,而非硬件连接。该虚拟连接在后文 中被称为“连接”)。多个插件可被连接以实现复杂的信号处理特征。插件仅通过 将一插件的输入端口连接到另一插件的输出端口来连接。数个插件的输入端口相连 或数个插件的输出端口相连是不允许的。 图扮演着SSP系统的角色,且适用于包括多个插件。响应于来自用户的操作 输入,图生成或删除插件,或连接插件的端口,且保留所得的电路配置信息。因此, 在图内部,可配置由插件组成的任意电路。 当调用图的信号处理功能时,该图将带有时间信息的所接收的音频数据顺序 地传输到包括在该图中的插件。该图也扮演了向插件输入和输出音频数据和附加信 息的角色。 此外,图包括插件的属性。由此,与插件一样,图具有输入和输出端口,使 得一图可与另一插件互连。图有了包括多个插件的能力,一旦创建了图,可将由多 个插件组成的电路块(图)作为单个插件来处理。被处理为插件的图具有将电路集 合作为单个组件来处理的功能。 示例性图 图3示出了包括多个插件的示例性图。依照本发明的一个实施例的信号处理 装置可由个人计算机(PC)实现,使得可接收用户输入/输出操作,且可依照用户 指令将图、插件及其连接可被图形地显示在PC的显示单元上。 在图3所示的示例中,用户首先创建基本根图200,然后在图200中创建由多 个插件201到204组成的电路。插件201到204可从预先储存在PC中的插件中选 择。插件在实际生成对象以前以模板的形式预先储存,该模板被称为面向对象的类。 例如,用户从储存在PC的存储单元中的插件中选择插件201到204,并在图 200中动态地生成(或映射)所选择的插件201到204。由此,生成了面向对象的 对象。用户指令连接插件201到204的输出端口和输入端口并连接图200和插件 201到204,由此设置了图3所示的电路。 图200保留内部插件201到204的电路配置信息。一旦用户调用了根图200 的信号处理功能,就从根图200的信号处理功能内递归地连续调用内部插件201 到204的信号处理功能,且顺序地执行与信号处理相关联的计算。递归信号处理功 能调用的传播是SSP系统本身的一个实现。 图4示出了包括多个插件的另一示例性图。如上所述,该图也是一个插件。 由此,图可被递归地构造,使得图包括与图不同的插件和该图本身(子插件)。与 其它插件一样,图具有输入和输出端口。图的内部定义了黑盒,它对图外部隐藏。 在图内部,定义由多个插件组成的电路块。 在图4中,父图400持有图401以及插件405,图401是子图。子图401持有 插件402、403和404。子图401内部的插件402、403和404对父图隐藏,且子图 401被视为单个插件。 首先,用户创建根图(即,父图400),它是根。一旦用户调用了根图400 的插件生成和删除功能,在根图内部生成子图401和插件405。 当用户调用子图401的插件生成和删除功能时,以类似的方式生成插件402、 403和404。 为执行信号处理,用户首先调用根图400的信号处理功能。然而,子图401 的信号处理功能作为插件来处理,且从根图400的信号处理功能内递归地连续调用 根图400内的插件405,且顺序地执行计算。递归信号处理功能调用的次序也是由 图来确定的。 在子图401中,首先调用子图401的信号处理功能。然而,从子图401的信 号处理功能内递归地连续调用子图401内的插件402、403和404的信号处理功能, 并顺序地执行计算。 SSP系统的一种实现是上述图操作本身。图或插件本身处理系统中所采用的 功能,诸如插件的生成和删除、插件之间的连接、插件之间的数据传输、时间信息 和音频及视频信息到插件之间的同步的应用、对插件的信号处理功能的顺序调用、 以及对功能调用的次序的确定。 在以下描述中,术语“系统”意味着图本身以及该图的功能。 图5是示出作为一个示例性实现的SSP中间件的总体结构的统一建模语言 (UML)类的示意图。该示意图是以面向对象的模型来表示的,其中定义了类和 接口(应用程序编程接口(API))。 插件类(CPlugin)继承了插件接口(IPlugin),且实现了插件唯一的接口。 插件类持有多个输入端口类(CInputPort)以及输出端口类(CoutputPort)。 依照其功能有多种类型的插件类。例如,加法器插件类是用于执行加法的插 件类,乘法器插件类是用于执行乘法的插件类。这些类被分类为用户自己的插件 (CMyPlugin)类。用户自己的插件类继承了插件类。在本示例中,中间件用户使 用插件模板来容易地创建他/她自己的插件。 接着,描述图类。图类(CGraph)包括多个插件类。与插件类一样,图类也 继承插件接口(IPlugin)。图本身也是一个插件类。 由此,图类具有递归的分层结构,其中图包括另一图和插件。这一结构对应 于在通用面向对象的设计模式中称为复合模式的结构。 此外,图还包括插件的属性。由此,与其它插件一样,图具有输入和输出端 口,使得图可以与另一插件互连。一旦生成了图对象,由多个插件对象组成的电路 块作为单个组件对象来处理。 定义图类和插件类的接口(API)。通过从SSP中间件客户机应用程序调用 API,可控制对象。由用户对SSP系统执行的操作是在这两种类型的对象上执行的。 插件结构 图6示出了插件600的一个示例结构。如上所述,插件600是软件信号处理 模块,且图6所示的组件是作为软件功能而非硬件来提供的。 如图6所示,插件600可包括信号处理器601、零个或多个输入端口602、以 及零个或多个输出端口603。插件600可通过一个或多个输入端口602以及一个或 多个输出端口603与另一插件或其它插件交换信号,例如音频信号。在该示例中, 输入和输出每端口一个信道的音频信号。 用户指示插件600添加或删除输入端口602和输出端口603,由此即使在信号 处理期间也可动态地改变插件600的输入端口602和输出端口603的数目。依照添 加端口的次序,输入端口602和输出端口603分别被分配标识号0到N(其中N 是任何自然数)和0到M(其中M是任何自然数)。用户选择标识号以指定输入 端口602之一和输出端口603之一。 插件600还包括用于储存零个或多个参数的零个或多个参数保留单元(参数 缓冲器)604。参数是用于设置信号处理中的效果的数量等的可变值,且是由用户 输入的。例如,当插件600被实现为放大器时,参数包括放大器增益值。插件600 的用户改变插件600的参数值以改变信号处理的效果。 在本示例中,参数被分配标识号0到K(其中K是任何自然数)。用户以任 意的时序指定任何参数的标识号以改变参数缓冲器604的内容。在插件600的机制 中,由用户给定的参数被储存在插件600内部的参数缓冲器604中。依照与从系统 (即,图)提供的样本数据同步的时间信息来读取参数,且参数然后被发送到信号 处理601以供其进行信号处理。 插件600还包括经常从SSP系统(即,图)接收时间信息的时间信息寄存器 605。时间信息标识音频输入或输出数据样本的累积的计数的数目,从SSP系统的 起始时间处开始(即,图的信号处理功能的起始时间)。累积的计数的数目是SSP 系统中最基本的时间信息。 在该实施例的SSP系统中,时间信息和音频输入或输出数据彼此完全同步。 SSP系统向插件600提供时间信息以及音频数据。因此,时间信息担当对插件600 的音频数据输入的数据样本的时戳,以允许插件600知道详细的时间信息,诸如要 经受信号处理的输入数据对应于决定时域中的什么样本。当参考绝对时间时,存在 于SSP系统中的所有插件都彼此同步,由此使得SSP系统中的整个电路能够以样 本准确度来实现同步信号处理。 插件600包括信号处理器601。来自另一插件的音频数据输入通过输入端口 602被发送到信号处理器601。当参考发送到信号处理器601的时间信息或参数值 时,信号处理器601在从输入端口602获得的音频数据上执行对插件600唯一的信 号处理。由信号处理器601处理的音频数据通过输出端口603被发送到另一插件。 在与时间信息同步时,插件600中的信号处理可以不仅按照一个样本为单位 来执行,而且还可以按照多个样本为单位来执行,例如,按照分组为单位,其中每 一分组具有多个样本。插件执行处理数据单元中的信号处理功能调用。由此,在按 照分组为单位执行信号处理时,对每一分组执行一个信号处理功能调用,且因此, 由于功能调用数目的减少,信号处理速度得到了提高。 在本实施例中,以使得与视频数据的视频帧同步来处理音频数据的方式来处 理音频数据和视频数据(该同步在后文中称为“AV同步”)。AV同步处理将在 下文中详细描述。在与视频数据的视频帧同步地处理音频数据的情况下,视频数据 的垂直同步信息Vs连同时间信息一起从系统传送到插件600。 插件600检查来自系统的与时间信息同步的垂直同步信息Vs。当检测到垂直 同步信息Vs的定时时,插件600执行提供音频和视频之间的同步的操作,例如与 垂直同步信息Vs的定时同步地改变从参数缓冲器604传送到信号处理器601的参 数的操作。该机制允许图中所配置的电路中的所有插件的所有参数都与垂直同步信 息Vs同步地更新。由此实现了AV同步。 示例图结构 图7是示出图700的示例结构的示意图。如上所述,图700是软件信号处理 模块,且图7中所示的图700的组件作为软件功能而非硬件来提供。 如上所述,图700具有插件的属性,且包括信号处理器701、输入端口702、 输出端口703、参数缓冲区704以及时间信息寄存器705。信号处理器701读取图 700中包括的插件。输入端口702、输出端口703、参数缓冲器704以及时间信息 寄存器705的功能类似于上文参考图6所描述的插件600中的对应组件的功能,且 因此省略对其的描述。可以理解,储存在参数缓冲器704中的参数是相对于图700 的参数。 现在将描述对图700专用的功能。 图700包括插件收集和保留单元706。图700可包括零个或多个插件。用户指 示图700添加或删除插件,由此即使在信号处理期间也能动态地生成或删除插件。 在信号处理期间动态生成或删除插件在下文中详细描述。 在图700中,依照添加插件的次序,所生成的插件被分配标识号0到J,其中 J是任何自然数。用户使用标识号来标识插件。图700不必按照插件生成和保留单 元706中的插件号的次序来保留插件。插件是由图700中的插件生成和保留单元 706以如下所述按照顺序计算的次序对它们排序的形式来保留的。 用户也可指示图700连接包括在图700中的插件。给定插件的输出端口和另 一给定插件的输入端口即使在信号处理期间也可以被动态地改变。动态改变是通过 用户向图700指定插件的标识号以及端口的标识号来执行的。响应于来自用户的改 变连接的指令,图700改变插件的连接状态。 用户指示图700启动信号处理。当用户调用图700的信号处理功能时,从图 700的信号处理功能内递归地连续调用包括在图700中的插件的信号处理功能。当 调用信号处理功能时,依照顺序计算的次序,连续地启用包括在图700中的图和插 件的信号处理器,这些图和插件是由插件生成和保留单元706以按照顺序计算的次 序对它们进行排序的形式来保留的。顺序地执行包括在图700中的图和插件的计 算,由此实现了图700中配置的总体电路的复杂信号处理操作。顺序计算的次序是 由系统根据插件之间的连接来确定的(即,图700)。 在依照用户指令改变电路设计的情况下,诸如添加或删除插件或改变输入端 口和输出端口之间的连接的情况下,图700执行以下所描述的路径路由,以自动为 包括在图700中的插件和子图确定顺序计算的最后次序。对包括在子图中的插件的 顺序计算的最优次序是由执行路径路由的子图自动确定的。 作为图700执行的路径路由的结果,插件组(包括作为插件的子图)以按照 顺序计算的最优次序对插件进行排序的形式被保留在插件生成和保留单元706中。 图700的路径路由算法将在下文中详细描述。 图的功能框图 图1是图结构的功能框图,其中图的功能是由框来表示的。图包括指令输入 接收功能单元1、插件生成和删除功能单元2、插件互连处理功能单元3、电路配 置信息存储和管理功能单元4、路径路由功能单元5、信号处理次序管理功能单元 6、信号处理执行功能单元7、信号处理功能存储单元8以及电路配置改变功能单 元9。 指令输入接收功能单元1接收生成或删除插件、连接一个插件的输入端口和 另一插件的输出端口、输入参数等等。指令输入接收功能单元1将插件生成或删除 指令传送到插件生成和删除功能单元2,并将输入和输出端口连接指令传送到插件 互连处理功能单元3。响应于插件生成或删除指令或输入和输出端口连接指令,指 令输入接收功能单元1激活路径路由功能单元5来执行路径路由。此外,响应于参 数输入指令,指令输入接收功能单元1适用于将输入参数保留在参数缓冲器中。 插件生成和删除功能单元2响应于来自指令输入接收功能1的插件生成或删 除指令生成或删除插件。当生成插件时,向所生成的插件分配一标识号,且将包括 标识号的所生成的插件的信息传送到电路配置信息存储和管理功能单元4。当删除 插件时,将包括所删除的插件的标识号的删除信息和删除请求传送到电路配置信息 存储和管理功能单元4。 响应于来自指令输入接收功能单元1的插件互连指令,插件互连处理功能单 元3在由连接指令向电路配置信息存储和管理功能单元4指定的插件的输出端口和 输入端口之间传送连接信息。 电路配置信息存储和管理功能单元4储存和管理来自插件生成和删除功能单 元2或插件互连处理功能单元3的插件生成信息、删除信息或连接信息中的、与图 中配置的电路有关的信息。 路径路由功能单元5响应于基于来自指令输入接收功能单元1的插件生成或 删除指令或输入和输出端口连接指令的激活请求,如下所述地激活和执行路径路由 算法。作为路径路由算法的结果,路径路由功能单元5确定插件的顺序计算的次序 (后文称为“信号处理次序”),并将与信号处理次序有关的信息发送到信号处理 次序管理功能单元6。 如上所述,信号处理次序管理功能单元6按照信号处理次序在插件生成和保 留单元中排列和保留插件的标识号。 如图1所示,信号处理执行功能单元7包括数据传输处理器71、信号处理功 能调用器72、信号处理时间管理器73以及信号处理同步管理器74。 信号处理执行功能单元7响应于经由指令输入接收功能单元1的信号处理启 动指令输入,用图中所配置的电路启动信号处理。当用户指示调用图的信号处理功 能时,信号处理功能调用器72从信号处理功能存储单元8中读取所指示的图的信 号处理功能。信号处理功能调用器72响应于用户指令读取图的信号处理功能,且 从图的信号处理功能中递归地顺序调用图中的插件的信号处理功能。 信号处理执行功能单元7的数据传输处理器71参考储存在电路配置信息存储 和管理功能单元4中的电路信息,且依照电路配置将音频数据顺序地传送到处理数 据单元中的插件(例如,按照一个样本为单位或按照一个分组为单位)。 信号处理时间管理器73管理来自数据传输处理器71的基于样本的时标。信 号处理同步管理器74在基于分组的信号处理期间的分组同步(例如,分组头部)、 如上所述其中音频数据的处理时间与视频数据的帧同步的AV同步、等等。 电路配置改变功能单元9基于信号处理执行功能单元7中的信号处理期间经 由指令输入接收功能单元1的用户操作检测电路配置改变请求。响应于电路配置改 变请求,电路配置改变功能单元9在电路配置信息存储和管理功能单元4中写入新 的电路配置信息,以将电路配置信息更新到新的电路配置信息,并在从给定处理单 元中的信号处理的结束到后续的处理数据单元中的信号的开始的周期中激活路径 路由功能单元5和信号处理次序管理功能6。 即使在信号处理执行功能单元7的信号处理期间,响应于基于来自电路配置 改变功能单元9的、改变图中的电路配置的指令的激活请求,来自指令输入接收单 元1的插件生成或删除指令或输入/输出端口连接指令,路径路由功能单元5激活 如下所述的路径路由算法,以对改变的电路配置执行路径路由。路径路由功能单元 5将路径路由结果发送到电路配置信息存储和管理功能单元4以及信号处理次序管 理功能6。由此,信号处理执行功能单元7基于改变的电路配置的路径路由结果, 按照信号处理次序用改变的电路配置来执行信号处理。 在该实施例中,电路配置改变功能单元9检测在信号处理执行功能单元7的 信号处理期间经由指令输入接收功能单元1来自用户的插件生成或删除指令或输 入/输出端口连接指令,作为电路配置改变请求。以下描述响应于电路配置改变请 求执行的电路改变过程。 用于形成具有图结构的电路的过程 接着,将在图中形成具有如图8所示的结构的电路的情况的上下文中描述依 照一个实施例形成信号处理电路的流程。在以下描述中,图和插件一般被称为“对 象”。在面向对象的术语中,对象是实例,它是图或插件的实体。 在生成对象时,图和插件的每一个的输入和输出端口的数目被如下地设为默 认(初始值)。用户可在生成对象之后添加或删除输入端口和/或输出端口。 对于父图800,输入端口数为0,输出端口数为0。 对于插件801,输入端口数为0,输出端口数为1。 对插件802,输入端口数为1,输出端口数为0。 对子图803,输入端口数为1,输出端口数为1。 对插件804,输入端口数为1,输出端口数为1。 对插件805,输入端口数为2,输出端口数为2。 对插件806,输入端口数为1,输出端口数为1。 在以下描述中,在输入端口和输出端口之后的数字表示端口号,使用0、1和 2。 电路创建过程 现在将参考图9到12所示的流程图描述用于创建图8所示的电路的过程。在 图9到12中,为易于理解,与该实施例的信号处理装置的操作相关联地示出用户 指令。尽管未示出,但该实施例的信号处理装置提供了对于依照用户的指令输入的 屏幕显示的视图,使得用户可在查看屏幕显示的同时执行输入操作。 首先,用户指示信号处理装置创建图800(父图)的对象(用户指令(1))。 然后,信号处理装置生成父图800作为根对象,并注册它(步骤S101)。 用户指示图800的对象创建插件801的对象(用户指令(2))。然后,在信 号处理装置中,实行所创建的图800的插件生成和删除功能以在图800内部生成插 件801并注册它(步骤S102)。响应于插件生成指令,图800中的路径路由功能 单元执行路径路由(步骤S103)。 用户指示图800的对象创建插件802的对象(用户指令(3))。然后,在信 号处理装置中,实行图800的插件生成和删除功能以在图800的内部生成插件802 并注册它(步骤S104)。响应于插件生成指令,图800中的路径路由功能单元执 行路径路由(步骤S105)。 用户指示图800的对象生成图803(子图)的对象(用户指令(4))。然后, 图800实行插件生成和删除功能以在图800内部生成子图803作为插件,并注册它 (步骤S106)。响应于插件生成指令,图800中的路径路由功能单元执行路径路 由(步骤S107)。 用户指示图803的对象创建输入端口0(外部)(用户指令(5))。然后, 在信号处理装置中,根据所生成的子图803,生成输入端口0(外部)并在子图803 中注册它(步骤S111)。在子图803中,自动生成对应于输入端口0(外部)的 内部输入端口0(内部)(步骤S112)。响应于端口创建指令,子图803中的路 径路由功能单元执行路径路由(步骤S113)。 用户指示子图803的对象创建输出端口0(外部)(用户指令(6))。然后, 在信号处理装置中,根据所生成的子图803,生成输出端口0(外部)并在子图803 中注册(步骤S114)。在子图803中,自动生成对应于输出端口0(外部)的内 部输入端口0(内部)(步骤S115)。响应于端口创建指令,子图803中的路径 路由功能单元执行路径路由(步骤S116)。 用户指示子图803的对象创建插件804的对象(用户指令(7))。然后,实 行子图803的插件生成和删除功能以在子图803内部生成插件804并注册它(步骤 S117)。响应于插件生成指令,子图803中的路径路由功能单元执行路径路由(步 骤S118)。 用户指示子图803的对象创建插件805的对象(用户指令(8))。然后,实 行子图803的插件生成和删除功能以在子图803内部生成插件805并注册它(步骤 S119)。响应于插件生成指令,子图803中的路径路由功能执行路径路由(步骤 S120)。 用户指示子图803的对象创建插件806的对象(用户指令(9))。然后,实 行子图803的插件生成和删除功能以在子图803内部生成插件806并注册它(步骤 S131)。响应于插件生成指令,子图803中的路径路由功能单元执行路径路由(步 骤S132)。 用户指令图800的对象连接插件801的输出端口0以及子图803的输入端口0 (外部)(用户指令(10))。然后,图800实行插件互连处理功能单元来连接插 件801的输出端口0和子图803的输入端口0(外部),并在子图800中注册该连 接(步骤S133)。响应于端口连接指令,图800中的路径路由功能单元执行路径 路由(步骤S134)。 用户指示图800的对象连接子图803的输出端口0(外部)和插件802的输入 端口0(用户指令(11))。然后,图800实行插件互连处理功能单元来连接子图 803的输出端口0(外部)和插件802的输入端口0,并在图800中注册该连接。 响应于端口连接指令,图800中的路径路由功能单元执行路径路由(步骤S136)。 用户指示子图803的对象连接子图803的输出端口0(内部)以及插件804 的输入端口0(用户指令(12))。然后,子图803实行插件互连处理功能单元来 连接子图803的内部输出端口0(内部)和插件804的内部输出端口0,并在子图 803中注册该连接(步骤S137)。响应于端口连接指令,子图803中的路径路由 功能单元执行路径路由(步骤S138)。 用户指示子图803的对象连接插件804的输出端口0和插件805的输入端口0 (用户指令(13))。然后,子图803实行插件互连处理功能来连接插件804的输 出端口0和插件805的输入端口0,并在子图803中注册该连接(步骤S141)。 响应于端口连接指令,子图803中的路径路由功能单元执行路径路由(步骤S142)。 用户指示子图803的对象连接插件805的输出端口1和插件806的输入端口0 (用户指令(14))。然后,子图803实行插件互连处理功能单元来连接插件805 的输出端口1和插件806的输入端口0,并在子图803中注册该连接(步骤S143)。 响应于端口连接指令,子图803中的路径路由功能单元执行路径路由(步骤S144)。 用户指示子图803的对象连接插件806的输出端口0和插件805的输入端口1 (用户指令(15))。然后,子图803实行插件互连处理功能单元来连接插件806 的输出端口0和插件805的输入端口1,并在子图803中注册该连接(步骤S145)。 响应于端口连接指令,子图803中的路径路由功能单元执行路径路由(步骤S146)。 最后,用户指示子图803的对象连接插件805的输出端口0和子图803的内 部输入端口0(内部)(用户指令(16))。然后,子图803实行插件互连处理功 能单元来连接插件805的输出端口0和子图803的内部输入端口0(内部),并在 子图803中注册该连接(步骤S147)。响应于端口连接指令,子图803中的路径 路由功能单元执行路径路由(步骤S148)。 由此,依照上述过程在图800中形成了图8所示的电路。当用户指示图800 启动信号处理时,如上所述,插件依照由路径路由确定的信号处理次序顺序地执行 信号处理。 如上所述,在该实施例的信号处理装置中,由于上述过程中的总共16个用户 步骤是在图对象上执行的,因此每次当执行步骤时会改变电路的图结构。因此,路 径路由算法是由系统(图)对每一步骤自动执行的。当电路配置创建过程结束,路 径路由也结束,且确定了信号处理次序。 接着,将描述在所形成的图8中所示的电路上执行信号处理的流程。 图800中的插件生成和保留单元保留按照路径路由算法所确定的最后顺序计 算次序所排序的插件。当假定插件是以最后次序保留时,现在将在图8所示的示例 的上下文中描述执行信号处理的流程。 (1)首先,用户指示图800启动信号处理。 (2)然后,执行图800的信号处理功能。 (3)然后,从图800的信号处理功能内执行插件801的信号处理功能。 (4)然后,从图800的信号处理功能内执行子图803的信号处理功能。 (4-1)然后,从子图803的信号处理功能内执行插件806的信号处理功能。 (4-2)然后,从子图803的信号处理功能内执行插件804的信号处理功能。 (4-3)然后,从子图803的信号处理功能内执行插件805的信号处理功能。 (5)然后,从图800的信号处理功能内执行插件802的信号处理功能。 在上述过程中,响应于用户指令仅执行用于指示图800启动信号处理的步骤 (1)的处理,且步骤(2)到(5)的处理是由图800和子图803自动执行的。 在每一插件的信号处理功能内,执行以下操作: (1)从输入端口接收输入数据; (2)在输入数据上执行信号处理;以及 (3)将经信号处理的输入数据输出到输出端口。 实施例的路径路由算法 接着,将描述依照该实施例由图的处理功能执行的路径路由算法。 以下路径路由算法依照该实施例构建系统的主要部分。该路径路由算法允许 包括在图中的插件按照最优次序来排序。在信号处理期间,按照对插件进行排序的 次序顺序地调用和执行插件的独特信号处理功能。 一般而言,当使用上述信号处理,诸如数字信号处理器(DSP)来执行信号处 理时,DSP中诸如算术逻辑单元(ALU)等算术电路单元顺序地执行计算以实现 所期望的信号处理。采用DSP等的该顺序处理方法也应用于由依照该实施例的中 间件的中央处理单元(CPU)执行的算术操作。 在该实施例中,给定电路被当作信号流图,顺序计算的次序是从该图中确定 的,且按照确定的次序顺序地执行计算。作为依照该实施例的中间件的一个实现的 SSP具有独特的路径路由算法。 该路径路由算法允许完全仿真包括反馈回路的任意数字电路配置。该路径路 由算法也允许动态地改变电路配置,而这在真实的硬件电路环境中是困难的。 依照该实施例的路径路由算法是用于确定顺序计算次序的算法,插件从该次 序开始信号处理以在由被连接来定义图的插件组成的电路上实现信号处理。图中所 配置的要经受路径路由的电路可包括反馈回路电路配置。 该路径路由算法被包含在图中,且图中的插件生成和保留单元执行路径路由 算法。 当用户指示图改变图结构时,图本身自动执行路径路由,并确定新的顺序计 算次序。当电路内存在多个图时,对各个图独立地执行路径路由,且仅在改变的图 上执行路径路由。该路径路由操作足够简单以在一段较短的时间内完成。 下文将描述依照该实施例的路径路由算法的细节。 在该实施例的路径路由算法中,插件作为节点来对待,插件是组成图的电路 元件。节点是在图理论中形成节点的元素。在该实施例中,电路可由包括由有向箭 头链接来链接的节点的有向边图。指向节点的箭头被定义为对该节点的输入,指向 节点外部的箭头被定义为从该节点的输出。在该实施例的路径路由算法中,前向跟 踪被连接起来以定义图的节点来确定信号次序。该实施例中的路径路由算法在后文 中被称为“节点扫描算法”。 节点扫描算法由作为基本路径路由算法的初始路径路由算法(主要是节点扫 描算法)以及用于依照回路信息来进一步路由路径的回路搜索算法组成。 在该实施例中,如图13所示,在节点扫描算法中,首先执行初始路径路由算 法(步骤S161)。当初始路径路由算法结束(步骤S152),执行回路搜索算法(步 骤S153)。 初始路径路由算法 在设置了要解决的以下建议问题之后,在以下描述的搜索条件下执行初始路 径路由算法: 要解决的建议问题: 假定前向跟踪被连接来定义图的节点。在以下条件下在一个循环中一次通过 所有的节点。确定满足该要求的循环次序,其中要跟踪的节点不必直接由图边连接, 且节点可被跳过和跟踪。 搜索条件: (a)路径可以无条件地通过没有输入的节点。 (b)路径可以无条件地通过形成延迟元件的插件的节点。 (c)定义所通过的节点的输出。 (d)一旦定义了连接到节点A的输入的前导节点B的输出,即定义节点A 的输入。 (e)如果定义了给定节点的所有诸如,则路径可通过给定节点。 事先按序向节点分配唯一号码作为标识符。这些号码在后文中被称为“节点 号(节点No.)”。节点号可以是任意的数字,且例如,节点号可以按照生成插件 对象的次序来分配。有两种类型的插件,即时延类型插件(LTP)和非时延类型插 件(NTP)。LTP是具有一个或多个样本的延迟的插件,形成了延迟元件。NTP 是没有延迟的插件,形成了门元件。 上述初始路径路由算法可以依照图14所示的流程图来执行。 首先,检查第一个节点(步骤S161),且确定当前节点是否已被分配了节点 序列号(后文称为“节点索引”)(步骤S162)。如果当前节点被分配了节点索 引,则确定所有节点是否都已被分配了节点索引(步骤S172)。如果确定了所有 节点都已被分配了节点索引,则该处理例程结束。 如果在步骤S172确定并非所有节点都已被分配了节点索引,则检查下一节点 (步骤S173)。然后,流程返回到步骤S162,且重复地执行步骤S162之后的处 理。 如果在步骤S162确定当前节点未被分配节点索引,则确定当前节点是否是路 径可无条件通过的节点(后文称为“无条件可通过节点”),即,当前节点是否是 LTP(步骤S163)。 如果在步骤S163确定当前节点不是无条件可通过节点,则确定是否定义了当 前节点的所有输入(步骤S164)。如果在步骤S164确定未定义所有输入,则检查 下一节点(步骤S165)。然后,流程返回到步骤S162,且重复执行步骤S162之 后的处理。 如果在步骤S163确定当前节点是无条件可通过节点或者在步骤S164确定已 定义了当前节点的所有输入,则路径通过当前节点,且定义当前节点的输出(步骤 S166)。然后,定义当前节点所连接到的节点的输入(步骤S167)。然后向当前 节点分配节点索引(步骤S168)。 确定所有节点是否都已被分配了节点索引(步骤S169)。如果确定所有节点 都已被分配了节点索引,则该处理例程结束。 依照初始路径路由算法的节点索引分配的一个具体示例将在图15所示的标志 的电路配置上下文中描述。在图15中,7个节点,即节点No.0到No.6是目标节 点。节点No.4和No.6是LTP。在初始路径路由算法中,如下依次检查节点No.0 到No.6。该检查在多个循环中重复执行,每一循环范围从节点No.0到No.6,直到 所有的节点都成为可通过的。 (1)节点No.0没有输入,且因此是可通过的。由此,定义节点No.0的输出 (0)。 (2)节点No.1被跳过,因为未定义输入(1)。 (3)节点No.2没有输入,且因此是可通过的。由此,定义节点No.2的输出 (0)。 (4)节点No.3被跳过,因为未定义所有输入(0、1和2)。 (5)节点No.4是LTP,且因此是可通过的。由此,定义节点No.4的输出(0)。 (6)节点No.5被跳过,因为未定义输入(0)。 (7)节点No.6是LTP,且因此是可通过的。由此,定义节点No.6的输出(0)。 由此,完成了路径路由的第一个循环。然后,如下在路径未通过且未定义其 输出的节点上执行路径路由的第二个循环。 (1)节点No.1变为可通过的,因为定义了所有输入(0和1)。由此,定义 节点No.1的输出(0)。 (2)节点No.3变为可通过的,因为定义了所有输入(0、1和2)。由此, 定义节点No.3的输出(0、1和2)。 (3)节点No.5变为可通过的,因为定义了输入(0)。由此,定义节点No.5。 由于该路径通过所有节点且定义了输出,该路径路由操作完成。在这一情况 下,路由在第二个循环中完成。 初始路径路由算法的路由结果 在初始路径路由算法的路由步骤中,节点是按照定义输出的次序来编号的, 且确定了路由结果。节点的这些新序列号是节点索引。图16示出了图15所示的图 的示例性电路配置的路由结果。 在该图中,插件按照节点索引的次序被储存在插件创建和保留单元中。每次 当执行路径路由算法时,更新储存在插件创建俄保留单元中的插件的次序。在信号 处理期间,图按照节点索引的次序调用插件的信号处理功能,由此实现了所期望的 信号处理。 如上所述,在第二个循环、第三个循环等等中重复执行初始路径路由算法来 检查节点,直到找到了对建议问题的解决方案。在路由循环中,找到至少一个可通 过节点。 然后,存在异常。即,在路由循环中,如果反馈回路中不包括形成延迟元件 的LTP,则找不到可通过节点。这在电路配置中是反常的。 在数字信号处理的总理论中,有必要在反馈回路中包括至少一个延迟元件, 以满足因果性原则。在依照该实施例的初始路径路由算法中,当用户创建不满足该 基本原则的电路时,发生异常。 在该实施例的初始路径路由算法中,使用异常的发生来向用户警告错误。当 用户创建不包括延迟元件的反馈电路时,在初始路径路由算法中发生上述路由异 常。当检测到该异常时,系统警告用户,使得他/她应当重新配置电路。 回路搜索算法 接着,将描述回路搜索算法。回路搜索算法提供了对信号处理期间CPU上的 负载的改进。该计数对于维持高实时信号处理而言是重要的。 期望的信号处理电路是通过使用初始路径路由算法中确定的路由结果来实现 的。然而,鉴于速度和性能,初始路径路由算法中所确定的路由结果对于包括反馈 回路的电路配置不一定是有利的。 包括反馈回路的电路配置应当满足数字信号处理理论中在不定义输入的情况 下不能定义输出的因果性约束。因此,在包括反馈回路的电路中,必须按照一个样 本为单位在插件上顺序地执行信号处理。即,必须按照一个样本为单位在插件上执 行音频数据输入/输出操作和信号处理。 问题是每次执行信号处理时需要的功能调用数。一般而言,在软件处理中, 功能调用导致CPU上的负载的增长(且因此成本是很高的)。在基于软件的实时 信号处理中,功能调用越少,处理速度和性能越高。对于改进处理速度和性能,用 于减少功能调用数的方法可能是需要的。 用于减少功能调用数的一种典型的方法是按照多个数据样本为单位,例如, 按照分组为单位来执行处理。与按照一个样本为单位处理相反,包括预定数量的数 据样值的块是按批来处理的。例如,当分组大小为1,024样本时,1,024的音频数 据样本的块由单个功能调用来处理。由此,可减少功能调用数。 然后,如果如上所述电路包括反馈回路,则可能以一个样本为单位需要功能 调用。在这一情况下,未实现基于分组的处理。 在该实施例的路径路由算法中,该问题通过在执行初始路径路由算法之后执 行如下所述的回路搜索算法而得以克服。 在包括反馈回路的电路中,形成回路的节点一般是电路的部分。该实施例中 的回路搜索算法利用这一事实来相对于信号处理次序分离形成回路的一组节点(后 文成为“回路节点”)和不形成回路的一组节点(后文成为“非回路节点”),且 对该组非回路节点启用基于分组的处理,由此完全提高了信号处理速度。 例如,在图15所示的电路配置中,3个节点,即节点No.3、No.4和No.6是 回路节点,且少于总共7个节点的一半。 仅以一个样本为单位处理回路节点,而同时按照分组为单位处理剩余的节点, 由此尽可能地防止速度的劣化。在总体电路配置中,回路节点的比率越小,可越有 效地防止速度的劣化。 图17是示出回路搜索算法的流程图。首先,使用闭合路径路由算法来确定回 路节点(步骤S171)。闭合路径路由算法可采用一般的图理论中的闭合路径路由 算法。一般的图理论中的闭合路径路由算法是已知的,且由此省略对其的详细描述。 检查初始路径路由算法中确定的信号处理次序,以确定按照信号处理次序是 否有非回路节点位于回路节点之间(步骤S172)。 如果确定按照信号处理次序有非回路节点位于回路节点之间(步骤S173), 则重新排列信号处理次序,使得非回路节点在回路节点之前(步骤S174)。即, 对节点索引重新编号。 如果在步骤S173确定按照信号处理次序没有非回路节点位于回路节点之间, 则回路搜索算法结束。 下文将在应用图15所示的电路配置的上下文中具体描述回路搜索算法。 图16中示出了对图15所示的电路配置执行初始路径路由算法的结果。在图 18的左侧部分中看到的表示出了由闭合路径路由算法确定的回路节点,即,在图 16所示的路由结果中用阴影表示节点No.3、No.4和No.6。 在初始路由算法的路由结果中,如可以从图18左侧所见到的表中清楚的,节 点No.1是非回路节点,它按照信号处理次序位于回路节点之间。依照该信号处理 次序,节点No.1也经受按照一个样本为单位的处理,尽管它无需经受按照一个样 本为单位的处理。 当应用回路搜索算法时,在步骤S174,改变信号处理次序,使得非回路节点 在回路节点之前。 如果改变了信号处理次序,应仍满足初始路径路由算法中解决的建议问题。 在回路搜索算法中,当改变信号处理次序时,可确定对改变的信号处理次序是否满 足初始路径路由算法中要解决的建议问题。在本示例中,改变信号处理次序,使得 非回路节点在第一回路节点之前,由此无需上述确定。这一改变方法是有利的,因 为正确地维持了信号处理的序列。 在图15所示的示例的上下文中,由于节点No.4和No.6本质上是LTP,因此 如果未定义输入,则定义输出。这一本质特征允许节点No.4和No.6在节点No.1 之后处理。 在本示例中,如在图18的右侧部分中看到的,回路搜索算法允许改变信号处 理次序,使得非回路节点-节点No.1被移至信号处理次序中的第三位置,即在第 一回路节点-节点No.4之前。 如由图18的右侧部分中的阴影所指出的,回路节点被分组。即,按照信号处 理次序定义回路节点组。 依照以下过程,按照图18的右侧部分中所见到的信号处理次序来执行信号处 理,由此最小化了功能调用数: (1)具有节点索引1到3的节点在回路外,且因此按照分组为单位来处理。 (2)具有节点索引4到6的节点驻留在回路中,因此按照一个样本为单位来 处理。 (3)具有节点索引7的节点在回路外,因此按照分组为单位来处理。 通过以此方式执行信号处理,减少的功能调用数,由此防止信号处理速度的 劣化。接着,在分组大小为1,024样本的情况下的功能调用数如下: (1)1,024个数据样本被传送到节点No.0以供处理(通过1个功能调用)。 (2)1,024个数据样本被传送到节点No.2以供处理(通过1个功能调用)。 (3)1,024个数据样本被传送到节点No.1以供处理(通过1个功能调用)。 (4)以下操作(4-1)到(4-3)被重复执行1,024次(通过3×1,024个功能 调用)。 (4-1)1个数据样本被传送到节点No.4以供处理(通过1个功能调用)。 (4-2)1个数据样本被传送到节点No.6以供处理(通过1个功能调用)。 (4-3)1个数据样本被传送到节点No.3以供处理(通过1个功能调用)。 (5)1,024个数据样本被传送到节点No.5以供处理(通过1个功能调用)。 在上述信号处理步骤(1)到(5)中,总共执行了3,076个功能调用来对10,24 个样本执行信号处理。 在该示例中,如果所有节点都是按照一个样本为单位来处理的,则总共执行 7,168个功能调用。执行该实施例中的节点扫描算法来定义一组回路节点,并对该 组回路节点的每一个执行对每一样本一个功能调用,而对剩余的非回路节点的每一 个,执行对每一分组一个功能调用。由此,功能调用数可减少大约57%。 在该实施例的系统中,并非使用固定分组大小,而是可以动态地改变分组大 小。 AV同步 如上所述,依照该实施例的信号处理装置允许样本准确的计算。该信号处理 装置还允许样本准确的AV同步。在传统的中间件中,在多级中连接的多个插件导 致与连接的插件数成比例的延迟,且难以同步处理所有的插件。 相反,依照该实施例,无论连接了什么插件,延迟都不会增加。由此,允许 插件以样本准确度来同步操作,且实现了样本准确的AV同步。 为AV同步的目的,在本实施例中,另外提供了V同步标志,作为来自系统 (图)的视频数据的垂直同步信息Vs,它是V同步标志被附加到时间信息的形式。 由于时间信息是在逐个样本的基础上更新的,因此对所有样本附加V同步标志。 例如,在每一帧的开始时刻,V同步标志被设为“1”,且在其它情况下设为“0”。 V同步标志表示用于将视频帧与音频数据样本相关联的同步脉冲信息。例如, 在每秒具有30帧的视频信息以及具有48kHz的采样频率的音频数据的情况下,每 一视频信息帧的音频数据的样本数是由48000÷30=1600来给出的(每帧样本数)。 在按照分组为单位处理音频数据的情况下,例如,如上所述,当每一分组的样本数 为1,024时,分组和帧的数目是不相等的。在本示例中,使用V同步标志来实现 AV同步。 系统(图)确定每一视频信息帧的音频数据样本的数目。系统(图)将音频 数据传送到插件,并且还将音频数据的样本时间信息和V同步标志作为关于样本 时间是否位于视频帧的开始的信息传送到插件。 当V同步标志指示输入音频数据对应于视频信息帧的开始时,每一插件与视 频帧的开始同步地改变保留在插件中的参数,以实现AV同步。 然而,保证按照某一方法使来自系统(图)的每一样本的时间信息与视频帧 的V同步标志相关联。在该示例中,该实施例的信号处理装置将信号处理的开始 时间点定义为视频帧的开始,并通过使用由系统(图)预定的每一视频信息帧的音 频数据样本数,将开始时间点之后的时间信息与V同步标志相关联。 图19是示出用于实现AV同步的插件中的过程的流程图。 首先,与音频数据样本对插件的输入同步地从系统(图)获得绝对时间计数 值t,作为对插件的时间信息输入(步骤S181)。即,从系统读取每一样本的时间 信息。被附加到时间信息的V同步标志也是从系统获得的。 插件确定每一样本的V同步标志是否为“1”,以确定V同步标志是否为“真”, 即,标志是否指示视频帧的开始(步骤S182)。如果确定V同步标志为“真”, 则执行AV同步处理。在本示例中,更新参数(步骤S183)。然后,执行时刻t 的信号处理(步骤S184)。 如果在步骤S182确定V同步标志不为“真”,则执行时刻t的信号处理,而 不改变参数(步骤S184)。 然后,获得要与对插件的下一音频数据样本输入同步地改变的下一绝对时间 计数值(t+1)(步骤S185),且重复地执行类似于上述步骤S182到S184的处理 操作(步骤S186到S188)。与随后的样本输入同步地重复执行上述的处理。 第一动态电路配置改变过程 如上所述,该实施例的信号处理装置响应于来自用户的图改变指令(电路配 置改变指令),即使在信号处理期间也能够动态地改变图结构。即使在信号处理期 间,本实施例中的路径路由算法(节点扫描算法)也可被重新执行以支持电路配置 的改变。 电路配置改变过程是在从用于处理数据单元中的信号的过程的结束到后续的 处理数据单元中的信号的开始的周期中执行的,由此,以从处理数据单元的开始, 而非在处理数据单元的中间的改变的电路配置来开始信号处理。因此防止了由改变 电路配置所引起的问题。 这一安排允许用户将该实施例的信号处理装置改为新的电路配置,而同时, 例如收听该实施例的信号处理装置所处理的声音和来自该装置的输出。因此有效地 将该实施例的信号处理装置应用于关于实况性能应用的设备。 图20是示出动态电路配置改变过程的流程图。该流程图是由图执行的。图21 是该过程的时序图。在该实施例中,例如,按照分组为单位处理具有48kHz的采 样频率的数字音频数据,每一分组包括例如1,024个样本。在图21中,时刻t、t+1、 t+2、t+3、……是以1,024个样本为间隔来设置的,且时刻t+i和下一时刻t+(i+1) 之间的时间周期Pd是例如20毫秒,其中i是整数。 在信号处理装置中,按照分组为单位对数字音频数据的处理是在比使用高速 时钟的时间周期Pd更短的时间周期中完成的。在电路配置的回路形成段中,分组 被解除组装,且在逐个样本的基础上执行信号处理,在这一情况下,信号处理也是 在比时间周期Pd更短的时间周期中完成的。 信号处理之后分组单元中的数据被写入缓冲存储器中,该缓冲存储器由例如 先进先出(FIFO)存储器组成。一般而言,如图21所示,数据在该分组单元的信 号处理结束之后回放,从后续的分组单元中的处理的起始时间开始。由此,以分组 为单位的音频数据被连续地回放。 按照分组为单位的数字音频数据的处理是在比时间周期Pd更短的时间周期中 完成的。如可以从图21中清楚的,从给定分组单元中的数据处理的结束到后续分 组单元中的数据的开始的周期是信号处理空闲周期。在该实施例中,空闲周期用作 动态电路配置可改变周期。 电路配置在从给定分组单元中的数据处理的结束到后续分组单元中的数据的 开始的周期中动态地改变,且用改变的电路配置的处理是从后续分组的开始处的数 据开始的。即,电路配置不在分组中间改变,且不会发生先前所讨论的问题。 首先,执行时刻t处的信号处理(步骤S191)。具体地,信号处理执行功能 单元7使用储存在电路配置信息存储和管理功能单元4中的电路配置信息,依照由 信号处理次序管理功能单元6所保留的信号处理次序,来按照分组为单位执行数据 处理。 在按照分组为单位执行数据处理之后,在动态电路配置可改变周期,即使在 信号处理期间,在该实施例中,电路配置改变功能单元9也能通过确定是否经由指 令输入接收功能单元1向图发出了生成或删除插件的指令、生成或连接输入端口和 输出端口的指令等,来确定是否存在图改变请求(电路配置改变请求)(步骤 S192)。 如果在步骤S192确定存在图改变请求,则图在电路配置信息存储和管理功能 单元4中保留新的电路配置信息,并重新执行路径路由来重新配置图的电路配置 (步骤S193)。该新信号处理次序的信息是路径路由的结果,它被保留在信号处 理次序管理功能单元6中。 然后,执行下一时刻(t+1)的信号处理(步骤S194)。时刻(t+1)的分组 经受使用新电路配置的信号处理,从分组的开始处的数据开始。 如果在步骤S192确定不存在图改变请求,则执行时刻(t+1)的信号处理, 而无需动态地改变电路配置(步骤S194)。 在步骤S194之后,重复执行类似于步骤S192到S193的处理(例如,步骤 S195到S196)。 图22示出了一个示例性电路配置改变指令。在图22所示的示例中,上述图 和插件是以例如PC等的GUI屏幕上的块的形式来可视地显示的,且块之间的连接 是使用诸如鼠标等定点设备来指示的。 在图22中,在GUI屏幕的左侧显示候选插件列表1001。例如,用户从列表 1001中选择期望的插件来添加插件。选中的插件被显示在GUI屏幕上。 然后,用户连接插件。具体地,用户将光标1002放置在要连接的插件的输出 端,并在连接的另一端朝向插件的输入端拖动光标1002。结果,以图22所示的方 式显示了一段连接。 当用户在连接的另一段在插件的输入段上拖放(或释放)光标1002时,建立 了插件之间的连接。通过将光标1002移至插件的输入端或输出端并点击鼠标,连 接以灰色显示或被显示为点划线,且通过设置它来删除。 改变电路配置的指令是由上述用户指令操作发出的。例如,图23A和23B示 出了从其中三个插件,即插件901、902和903被顺序地连接的电路配置,到其中 在插件901和902之间插入了新插件904的电路配置的改变。在这一情况下,删除 插件901和902之间的连接。相反,设置插件901和904之间的连接,并设置插件 904和902之间的连接。 图24A和24B示出了从其中四个插件,即插件911、912、913和914顺序地 连接的电路配置,到其中删除了插件912的电路配置的改变。在这一情况下,删除 插件912,且删除插件912和913之间的连接以及插件911和912之间按的连接。 相反,设置插件911和913之间的连接。 图25A和25B示出了从其中四个插件,即插件921、922、923和924顺序地 连接的电路配置,到其中插件922被改为插件925的电路配置的改变。 在这一情况下,删除插件922,且删除插件921和922之间的连接以及插件 922和923之间的连接。相反,插入插件925,且设置插件921和925之间的连接 以及插件925和923之间的连接。 图26A和26B示出了从其中四个插件,即插件931、932、933和934顺序地 连接的电路配置,到其中添加了插件932和933之间的连接的电路配置的改变。 在图27A和27B所示的示例中,其中四个插件,即插件941、942、943和944 顺序地连接的电路配置被改为其中在插件943和942之间的反馈回路中添加了两个 插件,即插件945和946的电路配置。 在图27A和27B所示的示例中,回路的形成导致数据与先前的数据混合,例 如,在逐个样本的基础上加到先前的数据。然而,在该实施例中,在分组单元的数 据中间没有电路配置改变,且不发生问题。 第二动态电路配置改变过程 在上述第一过程中,当用户在信号处理期间通过GUI执行动态改变电路配置 的操作时,该操作被检测为动态电路配置改变请求。然而,用于发出动态电路配置 改变请求的方法不限于用户对于改变电路配置的基于GUI的操作。 在第二过程中,事先保留用于改变操作的一个或多个电路配置,作为信号处 理期间的预设信息。图28A和28B示出了这一预设信息的一个示例。在图28A和 28B所示的示例中,图27A所示的原始电路配置被储存为预设1(图28A),且图 27B所示的经改变的电路配置被储存为预设2(图28B)。 预设电路信息1和预设电路信息2事先在图的电路配置信息存储和管理功能 单元4中注册。或者,可以向图提供预设电路信息存储单元。响应于电路配置改变 请求,可从预设电路信息存储单元中读取指定的预设电路信息,且可以在电路配置 信息存储和管理功能单元4中注册。 预设电路信息2可包括图28B所示的所有电路信息,或者可包括由图28B中 的“附加”表示的差异部分的信息。在这一情况下,差异部分的电路信息可被添加 到图28A所示的电路配置,由此获得了经改变的电路配置。 因此,预设电路信息是由用户指令操作从一个或多个预设电路信息中指定的, 且图的配置被动态地改为指定的预设电路信息。 例如,在图29中,采用了脚动开关2000。脚动开关2000包括按压操作部分 2001、2002和2003,它们是由用户以脚操作的。在该示例中,按压操作部分2001、 2003、2003和2004的每一个与预设电路信息相关联。在图29所示的示例中,按 压操作部分2001与预设电路信息1相关联,按压操作部分2002与预设电路信息2 相关联。 例如,当在信号处理期间按下脚动开关2000的按压操作部分2001时,对应 的操作信息被传送到图。图确定按下了按压操作部分2001来发出改为预设电路信 息1的请求,并以与上述类似的方式使用图中保留的预设电路信息1来执行动态电 路改变过程。 与上述实施例一样,在上文参考图21所述的动态电路配置可改变周期中,确 定按下了按下操作部分2001来发出改为预设电路信息1的请求,且执行电路改变 操作。 在图29中,使用脚动开关来指定预设电路信息。或者,预设电路信息可由用 户语音指定。有利的是,例如,对用户语音的使用允许执行者在进行演出的同时生 成改变电路配置的特定语音。 图30示出了基于语音的电路配置改变请求。在该示例中,预设电路信息和用 户语音事先相关联。在图30所示的示例中,语音“ah”与预设电路信息1相关联, 语音“eh”与预设电路信息2相关联。 话筒3001拾取用户语音,并向语音识别电路3002提供通过拾取语音而获得 的语音信号。语音识别电路3002识别来自用户的语音“ah”或“eh”,并将识别 结果传送到电路配置改变功能单元3003。响应于来自用户的语音“ah”的识别结 果,电路配置改变功能单元3003发出改为预设电路信息1的请求。响应于来自用 户的“eh”语音的识别结果,电路配置改变功能单元3003发出改为预设电路信息 2的请求。 在图30所示的示例中,语音识别电路3002和电路配置改变功能单元3003可 作为图中的插件形成。 第三动态电路配置改变过程 在上述第一和第二过程中,通过用户指令发出动态电路配置改变请求。替代 使用用户指令,可事先确定动态改变电路配置的定时以及要改变的电路配置信息, 且可依照确定的控制数据动态地改变电路配置。 这是序列发生器的情况。例如,如图31所示,为回放歌曲的音频数据,在从 回放的开始(ST)到第一改变定时CHG1的周期中用电路配置A执行信号处理; 在从第一改变定时CHG1到第二改变定时CHG2的周期中用电路配置B执行信号 处理;而在从第二改变定时CHG2到回放结束(ED)的周期中用电路配置C来执 行信号处理。 序列控制数据被设计成在回放的开始(ST)发出改为电路配置A的电路配置 请求,在第一改变定时CHG1发出改为电路配置B的电路配置请求,而在第二改 变定时CHG2发出改为电路配置C的电路配置请求。 与上述第二过程一样,电路配置A、B和C的信息是在图中预设的,且序列 控制数据可以仅包括改为电路配置A、B和C的电路配置请求。或者,序列控制 数据可包括电路配置A、B和C的电路配置信息,且图可从序列数据中获得电路 配置A、B和C的电路配置信息来改变电路配置。 如上所述,图管理信号处理时间,并监视包括在序列控制数据中的定时信息 (包括开始时间)。在改变定时,图将电路配置改为该改变定时之后的对应的电路 配置。 依照第三过程,信号处理可以依照序列控制数据的预定次序来顺序地执行, 而同时动态地改变信号处理电路。 要连同动态电路改变一起考虑的示例性过程 如上所述,在该实施例中,数据处理是以分组为单位执行的。确定分组大小, 使得额外开销可被尽可能多地减少。 分组大小在概念上实质上等于FIFO的深度(级数)。一般而言,存在当分组 大小减小时减少信号处理延迟(时延)的优点。相反,不利的是,信号处理的额外 开销比例增加,且如果不维持实时性能,信号处理本身不是及时的。信号处理越复 杂,信号处理所需的时间就越多。由此,不维持实时性能的可能性会增长。在其中 延迟会叨扰用户的环境中,诸如实况表演的情况,期望的是在允许信号处理能够及 时的范围内尽可能多地减小分组大小。 在上述动态电路改变的情况下,采用经改变的电路配置,预定的分组大小太 小,以致于无法支持处理速度。 在这一情况下,信号处理可能会失败。因此,在该实施例中,执行以下过程。 图32是示出这一过程的流程图。图32所示的过程也是由图执行的。 首先,确定是否执行了动态电路配置改变(步骤S1001)。如果确定未执行动 态电路配置改变,则该处理例程退出。 如果在步骤S1001确定执行了动态电路配置改变,则确定信号处理速度是否 过度(步骤S1002)。如果不这样做,则处理例程退出。 如果在步骤S1002确定信号处理速度过度,则将分组大小改为比当前大小更 大的大小(步骤S1003)。 替代将分组大小改为更大的大小,可警告用户将分组大小改为指定的大小。 步骤S1003中改变的分组大小可通过使用事先由用户依照优先级次序以优先 级注册的分组大小来选择。 用于插件的另一参数设置方法 如上所述,在该实施例的信号处理装置的信号处理操作中,可设置参数属性。 例如,在乘法器的情况下,参数对应于乘法系数。 典型的中间件被配置成使得参数按照来自用户的参数设置函数间歇地设置或 修改。在上述示例中,如图33所示,该实施例的信号处理装置以类似的方式配置。 具体地,如图6所示,向插件600提供参数保留单元604,且参数保留单元604适 用于按照来自用户的参数设置函数来间歇地设置或修改。在图33所示的示例中, 信号处理器6010是增益控制放大器,且放大器6010的增益是由参数保留单元604 所保留的参数来控制的。 在图33所示的结构中,难以按照例如一个样本为单位来准确地连续改变参数。 这是因为一般的OS难以维持相对于音频数据样本的一个样本时间(大约20毫秒) 的实时性能,导致函数调用之间长达几十毫秒的间隔。在一般的OS上,如果可维 持实时性能,则准确度的限制是几毫秒到几十毫秒。此外,对软件专用的时间变化 使得难以用毫秒数量级的样本准确度来控制参数改变功能的调用定时。 因此,在该实施例中,如下所述,设计参数设置方法,使得参数可以用一个 样本的准确度来改变。具体地,在该示例中,要保留在插件中的参数不被来自用户 的功能调用设置,而是由一种新颖的参数设置方法来调用,在该方法中,向图提供 用于向插件的输入端口分配参数来设置该端口的功能。该新颖的参数设置方法在后 文中称为“参数绑定”。 图34示出了一个示例性参数绑定。在插件中设置新输入端口1,且将输入端 口1连接到参数保留单元604。向该新输入端口1分配音频数据值。 插件内的参数是通过对输入端口1的音频数据值输入来更新的,而非通过来 自用户的设置功能调用来更新。音频数据值直接用作参数值,且在逐个样本的基础 上更新。 在参数和音频数据之间没有特定的区别。在该实施例中,由于所有的音频数 据与样本准确度同步,因此维持了参数改变和音频数据之间的同步。例如,用户同 时生成要与音频数据同步的参数信号,并将生成的参数信号输入到连接到期望插件 的参数保留单元的输入端口,由此以样本准确度实现了参数改变与音频数据的同 步。 图35示出了用于在图中注册参数绑定的过程。首先,向执行参数绑定的插件 另外提供用于参数绑定的输入端口(步骤S201)。然后,将其中保留指定参数的 参数保留单元连接到步骤S201中添加的输入端口(步骤S202)。 然后,担当参数的音频数据被输入到该附加输入端口(步骤S203)。然后, 图中的参数绑定的注册结束。 图36示出了用于取消已注册的参数绑定的过程。首先,中断对参数绑定的预 定插件的附加输入端口的数据输入(步骤S211)。然后,对其中断数据输入的输 入端口从其中保留指定参数的参数保留单元断开连接(步骤S212)。然后,删除 对其中断数据输入的输入端口(步骤S213)。然后,用于取消图中已注册的参数 绑定的过程结束。 即使在信号处理期间,也可以在任何定时执行参数绑定的注册和取消。 实时分发过程 上述实施例的信号处理装置一般是由单个计算机来实现的,且信号处理是在 单个计算机上执行的。该处理可以广泛地在通过网络连接的多个计算机上执行,由 此确保了CPU负载的实时分发。 分发处理可以通过利用分布式对象技术来实现,该技术是一般的计算技术, 诸如COM/DCOM(组件对象模型/分布式组件对象模型)或CORBA(公共对象请 求代理体系结构)。 下文将在COM/DCOM术语的上下文中描述分发处理,该术语主要是在 WindowsOS中使用的。首先,将该实施例的中间件中的所有插件对象实现为COM 对象。COM对象是面向对象的组件模型,且具有位置透明度的特征。位置透明度 允许在远程计算机上生成COM对象,如同该COM对象是在例如本地计算机上生 成的一样。 有了位置透明度,通过执行同一操作在本地计算机或远程计算机的任一个上 生成对象。即,作为COM对象的插件对象在多个计算机上统一地生成,而无需关 注网络。除插件生成之外的操作也可用本地或远程计算机任一个上的统一可操作性 来实现。 例如,音频输入和输出插件对象可被放置在本地计算机上,而回声插件对象 可被放置在远程计算机上。作为整体,可设置单个电路。 图37示出了要经受实时分发处理的示例性图。在图37所示的示例中,在其 中本地计算机1000和远程计算机2000通过网络3000连接的环境中,定义根图2500 并创建电路。 现在将参考图37描述创建电路的流程。用户以类似于仅使用本地计算机1000 来创建电路的方式创建电路。用户仅在处理的一部分中注意远程计算机2000。 (1)用户创建图2500的对象。图2500的对象是在本地计算机1000上创建 的。 (2)用户指示图2500的对象创建插件2501的对象。 (3)用户指示图2500的对象创建插件2502的对象。 (4)用户指示图2500的对象创建插件2503的对象。在这一情况下,向插件 生成功能分配远程计算机2000的标识符。 (5)用户指示图2500的对象创建插件2504的对象。 (6)用户指示图2500的对象连接插件2501的输出端口0和插件2502的输 入端口0。 (7)用户指示图2500的对象连接插件2502的输出端口0和插件2503的输 入端口0。 (8)用户指示图2500的对象连接插件2503的输出端口0和插件2504的输 入端口0。 (9)用户指示图2500的对象连接插件2504的输出端口0和插件2502的输 入端口1。 由此,设置了电路。用户仅在步骤(4)中关注远程计算机2000。用户可以类 似于仅使用本地计算机1000的方式来执行信号处理。 上述实施例实现了以下优点。 依照上述实施例,在软件数字信号处理中,如果以多级方式接信号处理电路, 则可能创建电路而不会增加处理延迟。也可能创建包括反馈结构的任何期望的数字 信号处理电路。 此外,可能动态地改变数字信号处理电路的电路配置。可动态更新的电路元 件是: 插件的添加或删除; 插件之间的连接; 插件的输入或输出端口的添加或删除; 插件参数和参数绑定的改变;以及 涉及信号处理的参数,诸如信号处理中的分组大小和采样频率。 通过将本实施例的信号处理装置的中间件结合到产品中,可制造其电路配置 可动态改变的产品。 此外,由此创建的信号处理电路被储存在文件中,从而允许稍后恢复信号处 理电路。交换该文件以便于替换或重复使用电路。 如果信号处理电路具有包括反馈回路的电路配置,则可最小化信号处理功能 调用数,从而可得执行实时信号处理所需的低CPU负载。 此外,电路参数的更新和音频数据之间的同步可以用样本准确度来控制。参 数值可使用音频数据来更新(参数绑定功能)。 此外,可能使用网络来执行实时分发处理。可实时地同时操作网络上的多个 电路。 本领域的技术人员应当理解,取决于设计要求和其它因素,在各种修改、组 合、子组合和改变落入所附权利要求书及其等效技术方案的范围内的意义上,可发 生各种修改、组合、子组合和改变。 相关申请的交叉引用 本发明包含涉及2005年3月24日提交给日本专利局的日本专利申请JP 2005-085348中的主题,该申请的全部内容通过引用结合于此。

相关技术
处理装置相关技术
山下功诚发明人的其他相关专利技术