CN100444111C - 信号处理装置 - Google Patents

信号处理装置 Download PDF

Info

Publication number
CN100444111C
CN100444111C CNB2006100741042A CN200610074104A CN100444111C CN 100444111 C CN100444111 C CN 100444111C CN B2006100741042 A CNB2006100741042 A CN B2006100741042A CN 200610074104 A CN200610074104 A CN 200610074104A CN 100444111 C CN100444111 C CN 100444111C
Authority
CN
China
Prior art keywords
signal processing
unit
plug
configuration information
circuit configuration
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.)
Expired - Fee Related
Application number
CNB2006100741042A
Other languages
English (en)
Other versions
CN1862490A (zh
Inventor
山下功诚
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN1862490A publication Critical patent/CN1862490A/zh
Application granted granted Critical
Publication of CN100444111C publication Critical patent/CN100444111C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • DTEXTILES; PAPER
    • D05SEWING; EMBROIDERING; TUFTING
    • D05BSEWING
    • D05B59/00Applications of bobbin-winding or -changing devices; Indicating or control devices associated therewith
    • D05B59/02Devices for determining or indicating the length of thread still on the bobbin
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Textile Engineering (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

用于通过软件信号处理来执行包括数据单元中的多个步骤的信号处理的信号处理装置,包括执行步骤的信号处理模块、储存信号处理模块和电路配置信息的电路配置信息存储和管理单元、通过执行路径路由来确定信号处理次序的信号处理次序确定单元、按照确定的次序来执行信号处理的信号处理执行单元、以及改变电路配置信息并使得信号处理次序确定单元重新指令路径路由来对从数据单元中的软件信号处理的结束到后续数据单元的开始的周期中改变的电路配置信息确定信号处理次序的电路配置改变单元。从后续数据单元的开始的软件信号处理是用改变的电路配置来执行的。

Description

信号处理装置
相关申请的交叉引用
本发明包含涉及2005年3月24日提交给日本专利局的日本专利申请JP2005-085348中的主题,该申请的全部内容通过引用结合于此。
技术领域
本发明涉及用于通过软件处理来执行包括多个单元信号处理步骤的信号处理的信号处理装置。
背景技术
近来,越来越多的高性能计算机可在市场上购买到,且在计算机上可再现电影和音乐,而这在过去是非常困难的。特别地,可以获得这样的视频和音频信号处理应用程序,它们能够通过软件处理容易地执行实时信号处理,而无需使用诸如数字信号处理器(DSP)或专用硬件等传统的专用信号处理设备。
这样的信号处理应用程序是由各种类型的信号处理中间件来支持的,诸如
Figure C20061007410400051
公司的产品DirectShow(可在线从http://msdn.microsoft.com/library/defalt.asp?url=/library/en-us/directx9_c/directx/htm/directshow.asp获得)、
Figure C20061007410400052
有限公司的产品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、以及零个或多个输出端口6030插件600可通过一个或多个输入端口602以及一个或多个输出端口603与另一插件或其它插件交换信号,例如音频信号。在该示例中,输入和输出每端口一个信道的音频信号。
用户指示插件600添加或删除输入端口602和输出端口603,由此即使在信号处理期间也可动态地改变插件600的输入端口602和输出端口603的数目。依照添加端口的次序,输入端口602和输出端口603分别被分配标识号0到N(其中N是任何自然数)和0到M(其中M是任何自然数)。用户选择标识号以指定输入端口602之一和输出端口603之一。
插件600还包括用于储存零个或多个参数的零个或多个参数保留单元(参数缓冲器)6040。参数是用于设置信号处理中的效果的数量等的可变值,且是由用户输入的。例如,当插件600被实现为放大器时,参数包括放大器增益值。插件600的用户改变插件600的参数值以改变信号处理的效果。
在本示例中,参数被分配标识号0到K(其中K是任何自然数)。用户以任意的时序指定任何参数的标识号以改变参数缓冲器604的内容。在插件600的机制中,由用户给定的参数被储存在插件600内部的参数缓冲器604中。参数依照与从系统(即,图)提供的样本数据同步的时间信息被读取,并且随后被发送到信号处理601以供其进行信号处理。
插件600还包括经常从SSP系统(即,图)接收时间信息的时间信息寄存器605。时间信息标识音频输入或输出数据样本的累积的计数的数目,从SSP系统的起始时间处开始(即,图的信号处理功能的起始时间)。累积的计数的数目是SNP系统中最基本的时间信息。
在该实施例的SNP系统中,时间信息和音频输入或输出数据彼此完全同步。SSP系统向插件600提供时间信息以及音频数据。因此,时间信息担当对插件600的音频数据输入的数据样本的时戳,以允许插件600知道详细的时间信息,诸如要经受信号处理的输入数据对应于决定时域中的什么样本。当参考绝对时间时,存在于SSP系统中的所有插件都彼此同步,由此使得SNP系统中的整个电路能够以样本准确度来实现同步信号处理。
插件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,并将输入和输出端口连接指令传送到插件互连处理功能单元30响应于插件生成或删除指令或输入和输出端口连接指令,指令输入接收功能单元1激活路径路由功能单元5来执行路径路由。此外,响应于参数输入指令,指令输入接收功能单元1适用于将输入参数保留在参数缓冲器中。
插件生成和删除功能单元2响应于来自指令输入接收功能1的插件生成或删除指令生成或删除插件。当生成插件时,向所生成的插件分配一标识号,且将包括标识号的所生成的插件的信息传送到电路配置信息存储和管理功能单元40当删除插件时,将包括所删除的插件的标识号的删除信息和删除请求传送到电路配置信息存储和管理功能单元40
响应于来自指令输入接收功能单元1的插件互连指令,插件互连处理功能单元3在由连接指令向电路配置信息存储和管理功能单元4指定的插件的输出端口和输入端口之间传送连接信息。
电路配置信息存储和管理功能单元4储存和管理来自插件生成和删除功能单元2或插件互连处理功能单元3的插件生成信息、删除信息或连接信息中的、与图中配置的电路有关的信息。
路径路由功能单元5响应于基于来自指令输入接收功能单元1的插件生成或删除指令或输入和输出端口连接指令的激活请求,激活和执行如下所述的路径路由算法。作为路径路由算法的结果,路径路由功能单元5确定插件的顺序计算的次序(后文称为“信号处理次序”),并将与信号处理次序有关的信息发送到信号处理次序管理功能单元6。
如上所述,信号处理次序管理功能单元6按照信号处理次序在插件生成和保留单元中排列和保留插件的标识号。
如图1所示,信号处理执行功能单元7包括数据传输处理器71、信号处理功能调用器72,信号处理时间管理器73以及信号处理同步管理器74o
信号处理执行功能单元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术语的上下文中描述分发处理,该术语主要是在
Figure C20061007410400371
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负载。
此外,电路参数的更新和音频数据之间的同步可以用样本准确度来控制。参数值可使用音频数据来更新(参数绑定功能)。
此外,可能使用网络来执行实时分发处理。可实时地同时操作网络上的多个电路。
本领域的技术人员应当理解,取决于设计要求和其它因素,在各种修改、组合、子组合和改变落入所附权利要求书及其等效技术方案的范围内的意义上,可发生各种修改、组合、子组合和改变。

Claims (8)

1.一种用于通过软件信号处理来执行信号处理的信号处理装置,所述信号处理包括处理数据单元中的多个单元信号处理步骤,每一处理数据单元具有预定数量的数据样本,所述信号处理装置的特征在于包括:
多个信号处理模块,所述信号处理模块分别通过软件处理执行所述单元信号处理步骤;
电路配置信息存储和管理单元,它储存和管理所述多个信号处理模块以及由所述多个信号处理模块的输入和输出的虚拟连接状态表示的电路配置信息;
信号处理次序确定装置,用于通过执行路径路由确定所述多个信号处理模块形成储存在所述电路配置信息存储和管理单元中的电路配置信息的信号处理次序;
信号处理执行装置,用于通过按照由所述信号处理次序确定装置确定的信号处理次序顺序地启用所述信号处理模块来执行所述信号处理;以及
电路配置改变装置,用于确定在所述信号处理执行装置中执行的信号处理期间是否存在电路配置改变请求,且当检测到所述电路配置改变请求时,改变储存在所述电路配置信息存储和管理单元中的电路配置信息,并使得所述信号处理次序确定装置重新执行路径路由,来确定所述多个信号处理模块形成从所述处理数据单元中的软件信号处理的结束到后续的处理数据单元的开始处的周期中改变的电路配置信息的信号处理次序;
其中,从所述后续处理数据单元的开始的软件信号处理是用由所述电路配置改变装置改变的电路配置来执行的。
2.如权利要求1所述的信号处理装置,其特征在于,还包括:
指令输入接收装置,用于从用户接收生成或删除信号处理模块的生成或删除指令,以及从用户接收连接所述多个信号处理模块的输入和输出的连接指令;以及
信号处理模块互连装置,用于响应于由所述指令输入接收装置从用户接收到的指令,设置所述多个信号处理模块的输入和输出之间的虚拟连接;
其中,所述电路配置改变装置在所述信号处理执行装置中执行的信号处理期间,检测到来自用户的生成或删除指令以及来自用户的连接指令中的至少一个,作为电路配置改变请求。
3.如权利要求1所述的信号处理装置,其特征在于,预设与当前由所述信号
处理执行装置用于执行信号处理的电路配置信息不同的电路配置信息,以及
当在所述信号处理执行装置中执行的信号处理期间从用户发出电路配置切换指令时,所述电路配置改变装置检测所述电路配置切换指令作为电路配置改变请求,并将储存在所述电路配置信息存储和管理单元中的电路配置信息改为所述预设电路配置信息,并使得所述信号处理次序确定装置重新执行路径路由来确定所述多个信号处理模块形成经改变的电路配置信息的信号处理次序。
4.如权利要求3所述的信号处理装置,其特征在于,所述预设电路配置信息包括多个电路配置信息,且所述电路配置切换指令包括指定要切换到所述多个电路配置信息中的哪一个电路配置信息的信息。
5.如权利要求1所述的信号处理装置,其特征在于,还包括:
存储单元,它储存所述电路配置信息中的一个或多个,以及指定使用所储存的电路配置信息的信号处理的定时;以及
用于在信号处理期间监视储存在所述存储单元中的指令信息,且当由所述指令信息指定的定时到达时,将所述电路配置改变请求以及指定在所述定时使用的电路配置信息的信息传送到所述电路配置改变装置的装置;
其中,当检测到所述电路配置改变请求时,所述电路配置改变装置从所述存储单元获得改变的电路配置信息,将所述改变的电路配置信息储存在所述电路配置信息存储和管理单元中,并使得所述信号处理次序确定装置重新执行路径路由,以确定所述多个信号处理模块形成在从所述处理数据单元中的软件信号处理的结束到后续的处理数据单元的开始的周期中改变的电路配置信息的信息处理次序。
6.如权利要求3所述的信号处理装置,其特征在于,来自用户的所述电路配置切换指令是通过用户操作脚动开关来发出的。
7.如权利要求3所述的信号处理装置,其特征在于,来自用户的所述电路配置切换指令是通过用户语音发出的。
8.一种用于通过软件信号处理来执行信号处理的信号处理装置,所述信号处理包括处理数据单元中的多个单元信号处理步骤,每一处理数据单元具有预定数量的数据样本,所述信号处理装置的特征在于包括:
多个信号处理模块,所述信号处理模块分别通过软件处理来执行所述单元信号处理步骤;
电路配置信息存储和管理单元,它储存和管理所述多个信号处理模块以及由所述多个信号处理模块的输入和输出的虚拟连接状态表示的电路配置信息;
信号处理次序确定单元,它通过执行路径路由,来确定所述多个信号处理模块形成储存在所述电路配置信息存储和管理单元中的电路配置信息的信号处理次序;
信号处理执行单元,它通过按照由所述信号处理次序确定单元确定的信号处理次序顺序地启用所述信号处理模块,来执行所述信号处理;以及
电路配置改变单元,它确定在所述信号处理执行单元中执行的信号处理期间是否存在电路配置改变请求,且当检测到电路配置改变请求时,改变储存在所述电路配置信息存储和管理单元中的电路配置信息,并使得所述信号处理次序确定单元重新执行路径路由,来确定所述多个信号处理模块形成从所述处理数据单元的软件信号处理的结束到后续的处理数据单元的开始的周期中改变的电路配置信息的信号处理次序;
其中,从所述后续处理数据单元的开始的软件信号处理是用由所述电路配置改变单元改变的电路配置来执行的。
CNB2006100741042A 2005-03-24 2006-03-23 信号处理装置 Expired - Fee Related CN100444111C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005085348A JP4622611B2 (ja) 2005-03-24 2005-03-24 信号処理装置
JP2005085348 2005-03-24

Publications (2)

Publication Number Publication Date
CN1862490A CN1862490A (zh) 2006-11-15
CN100444111C true CN100444111C (zh) 2008-12-17

Family

ID=36616887

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100741042A Expired - Fee Related CN100444111C (zh) 2005-03-24 2006-03-23 信号处理装置

Country Status (5)

Country Link
US (1) US8555251B2 (zh)
EP (1) EP1705569A3 (zh)
JP (1) JP4622611B2 (zh)
KR (1) KR101260295B1 (zh)
CN (1) CN100444111C (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8132148B2 (en) * 2005-04-29 2012-03-06 Microsoft Corporation XML application framework
US7886269B2 (en) 2005-04-29 2011-02-08 Microsoft Corporation XML application framework
KR101338980B1 (ko) * 2006-07-12 2014-01-03 삼성전자주식회사 통합 플러그인 기능을 가지는 호스트 장치 및 그의 통합플러그인 생성 방법
JP4872759B2 (ja) * 2007-03-30 2012-02-08 ヤマハ株式会社 ミキシング装置
JP4903092B2 (ja) 2007-07-05 2012-03-21 株式会社リコー 画像処理装置、画像処理制御方法、及び画像処理制御プログラム
FI120857B (fi) * 2007-12-19 2010-03-31 Teliasonera Ab Päätelaite, tallennusmedia, palvelukeskus ja menetelmä
US8488951B2 (en) * 2009-07-09 2013-07-16 Nvidia Corporation Multimedia framework to provide ultra-low power multimedia playback
JP5391889B2 (ja) * 2009-07-13 2014-01-15 株式会社リコー 画像形成装置、画像処理装置、画像処理システム、画像処理方法、プログラム、及び記録媒体
US9413854B1 (en) * 2013-07-15 2016-08-09 Amazon Technologies, Inc. Network-accessible signal processing service
CA3128713C (en) 2013-12-05 2022-06-21 Ab Initio Technology Llc Managing interfaces for dataflow graphs composed of sub-graphs
KR101920546B1 (ko) 2014-04-09 2018-11-20 미쓰비시덴키 가부시키가이샤 엘리베이터 장치
CA3005263C (en) 2015-12-21 2021-06-15 Ab Initio Technology Llc Sub-graph interface generation
JP6586119B2 (ja) * 2017-03-08 2019-10-02 株式会社三共 遊技機
JP6586118B2 (ja) * 2017-03-08 2019-10-02 株式会社三共 遊技機
JP6586120B2 (ja) * 2017-03-08 2019-10-02 株式会社三共 遊技機
JP6586121B2 (ja) * 2017-03-08 2019-10-02 株式会社三共 遊技機
JP2018175617A (ja) * 2017-04-19 2018-11-15 株式会社三共 遊技機
JP6943652B2 (ja) * 2017-07-10 2021-10-06 株式会社三共 遊技機
JP6943653B2 (ja) * 2017-07-10 2021-10-06 株式会社三共 遊技機
US11327802B2 (en) * 2019-07-31 2022-05-10 Microsoft Technology Licensing, Llc System and method for exporting logical object metadata
CN111324470B (zh) * 2020-01-20 2023-11-07 北京百度网讯科技有限公司 用于生成信息的方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1249627A (zh) * 1998-07-23 2000-04-05 索尼公司 信息信号处理装置、图像信息转换装置和图像显示装置
US6370682B1 (en) * 1999-09-15 2002-04-09 Siemens Atkiengesellschaft System and method for developing reusable flexible and platform independent software using components

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4378577A (en) * 1980-08-15 1983-03-29 Dictaphone Corporation Method and apparatus for recording and detecting indicating signals in a recording and/or reproducing device
US4796179A (en) * 1986-08-20 1989-01-03 Integrated Systems, Inc. Multirate real time control system code generator
US5249274A (en) 1990-10-24 1993-09-28 Vanderbilt University Simultaneous data-driven and demand-driven computational model for dynamically configured systems
US5331111A (en) * 1992-10-27 1994-07-19 Korg, Inc. Sound model generator and synthesizer with graphical programming engine
JPH0736858A (ja) * 1993-07-21 1995-02-07 Hitachi Ltd 信号処理プロセッサ
CA2153964A1 (en) * 1993-09-13 1995-03-23 Steven H. Milne Object-oriented audio record/playback system
US5793440A (en) * 1994-03-18 1998-08-11 Sony Corporation Key signal processing apparatus for video signal processing
US5883804A (en) * 1995-06-14 1999-03-16 Telex Communications, Inc. Modular digital audio system having individualized functional modules
JPH09106388A (ja) * 1995-10-11 1997-04-22 Oki Electric Ind Co Ltd 信号処理用並列型計算機
JPH10149281A (ja) * 1996-11-15 1998-06-02 Casio Comput Co Ltd 信号処理装置
US5913038A (en) * 1996-12-13 1999-06-15 Microsoft Corporation System and method for processing multimedia data streams using filter graphs
US5999906A (en) * 1997-09-24 1999-12-07 Sony Corporation Sample accurate audio state update
US6185535B1 (en) * 1998-10-16 2001-02-06 Telefonaktiebolaget Lm Ericsson (Publ) Voice control of a user interface to service applications
US6937969B1 (en) * 1999-06-10 2005-08-30 Interuniversitair Microelektronica Centrum (Imec) Method for determining signals in mixed signal systems
GB2354105A (en) * 1999-09-08 2001-03-14 Sony Uk Ltd System and method for navigating source content
US6829290B1 (en) * 1999-09-28 2004-12-07 Texas Instruments Incorporated Wireless communications system with combining of multiple paths selected from correlation to the primary synchronization channel
EP1186997A2 (en) 1999-11-30 2002-03-13 Texas Instruments Incorporated Graphical development system and method
US7080386B2 (en) * 2000-01-25 2006-07-18 Texas Instruments Incorporated Architecture with digital signal processor plug-ins for general purpose processor media frameworks
US6983464B1 (en) * 2000-07-31 2006-01-03 Microsoft Corporation Dynamic reconfiguration of multimedia stream processing modules
JP2002073439A (ja) * 2000-08-31 2002-03-12 Sony Corp 情報処理装置、情報処理方法及びプログラム格納媒体並びに情報処理システム
US20020065568A1 (en) * 2000-11-30 2002-05-30 Silfvast Robert Denton Plug-in modules for digital signal processor functionalities
GB2373975B (en) * 2001-03-30 2005-04-13 Sony Uk Ltd Digital audio signal processing
US7379877B2 (en) * 2001-09-13 2008-05-27 Nokia Corporation Signal processing device and signal processing method
US7742609B2 (en) * 2002-04-08 2010-06-22 Gibson Guitar Corp. Live performance audio mixing system with simplified user interface
DE60324149D1 (de) 2002-07-31 2008-11-27 Thomson Licensing Paketverarbeitungsarchitektur
US20040045009A1 (en) * 2002-08-29 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Observation tool for signal processing components
US20040045007A1 (en) * 2002-08-30 2004-03-04 Bae Systems Information Electronic Systems Integration, Inc. Object oriented component and framework architecture for signal processing
JP3694005B2 (ja) * 2003-05-21 2005-09-14 沖電気工業株式会社 デジタル信号処理装置及びデジタル信号処理方法
US7441020B2 (en) * 2003-06-27 2008-10-21 Microsoft Corporation Media plug-in registration and dynamic loading
US7577940B2 (en) * 2004-03-08 2009-08-18 Microsoft Corporation Managing topology changes in media applications
US7609653B2 (en) * 2004-03-08 2009-10-27 Microsoft Corporation Resolving partial media topologies
JP4296421B2 (ja) * 2004-06-09 2009-07-15 ソニー株式会社 信号処理装置
JP4348546B2 (ja) * 2005-01-20 2009-10-21 ソニー株式会社 信号処理装置、信号処理プログラムおよび記録媒体

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1249627A (zh) * 1998-07-23 2000-04-05 索尼公司 信息信号处理装置、图像信息转换装置和图像显示装置
US6370682B1 (en) * 1999-09-15 2002-04-09 Siemens Atkiengesellschaft System and method for developing reusable flexible and platform independent software using components

Also Published As

Publication number Publication date
EP1705569A2 (en) 2006-09-27
JP4622611B2 (ja) 2011-02-02
EP1705569A3 (en) 2007-10-31
KR101260295B1 (ko) 2013-05-03
KR20060103131A (ko) 2006-09-28
US20060218525A1 (en) 2006-09-28
JP2006268409A (ja) 2006-10-05
CN1862490A (zh) 2006-11-15
US8555251B2 (en) 2013-10-08

Similar Documents

Publication Publication Date Title
CN100444111C (zh) 信号处理装置
CN102754411B (zh) 使用客户端-服务器网桥管理对象
KR101126255B1 (ko) 신호처리장치
CA2932897A1 (en) Visual effects system for "big data" analysis workflow editors, distribution platforms, execution engines, and management systems comprising same
Fober et al. Programming interactive music scores with inscore
Ying et al. Bluefog: Make decentralized algorithms practical for optimization and deep learning
Malloch et al. A network-based framework for collaborative development and performance of digital musical instruments
CN109145055A (zh) 一种基于Flink的数据同步方法和系统
CN107408242A (zh) 提供对通信内的内容的交互式预览
CN109241026A (zh) 数据管理的方法、装置及系统
KR101182262B1 (ko) 신호처리장치, 신호처리방법 및 기록 매체
CN108334491B (zh) 文本分析方法、装置、计算设备及存储介质
Agostini et al. Programming in style with bach
KR20210023636A (ko) 장기간 연관성 높은 문서 클러스터링을 위한 방법 및 시스템
Malloch A framework and tools for mapping of digital musical instruments
TW201913427A (zh) 用於元組圖形程式之類型推論之系統及跨越網路執行元組圖形程式之方法
CN110083351A (zh) 用于生成代码的方法和装置
CN115114554A (zh) 一种拖拽组件的方法、装置、终端设备以及存储介质
CN111027196B (zh) 一种电力设备的仿真分析任务处理方法、装置及存储介质
CN114265846A (zh) 一种数据操作方法、装置、电子设备和存储介质
CN113778401A (zh) 一种页面生成的方法和装置
CN110688529A (zh) 用于检索视频的方法、装置和电子设备
CN108573042A (zh) 报表同步方法、电子设备及计算机可读存储介质
US11681545B2 (en) Reducing complexity of workflow graphs through vertex grouping and contraction
CN107992286A (zh) 智能编码方法、装置、终端设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081217

Termination date: 20150323

EXPY Termination of patent right or utility model