CN1114154C - 数据处理 - Google Patents
数据处理 Download PDFInfo
- Publication number
- CN1114154C CN1114154C CN99121734A CN99121734A CN1114154C CN 1114154 C CN1114154 C CN 1114154C CN 99121734 A CN99121734 A CN 99121734A CN 99121734 A CN99121734 A CN 99121734A CN 1114154 C CN1114154 C CN 1114154C
- Authority
- CN
- China
- Prior art keywords
- effect
- plug
- unit
- parameter
- core
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 23
- 238000004891 communication Methods 0.000 claims abstract description 8
- 230000001360 synchronised effect Effects 0.000 claims abstract description 4
- 230000003993 interaction Effects 0.000 abstract description 3
- 230000000694 effects Effects 0.000 description 159
- 238000003860 storage Methods 0.000 description 13
- 238000013461 design Methods 0.000 description 12
- 238000000034 method Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 10
- 239000002131 composite material Substances 0.000 description 10
- 230000000875 corresponding effect Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005286 illumination Methods 0.000 description 6
- 238000011084 recovery Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 230000001151 other effect Effects 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000033228 biological regulation Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000010008 shearing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002844 continuous effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Stored Programmes (AREA)
Abstract
一种数据处理装置,其中核心程序对象影响并控制用于完成数据处理任务的多个插件程序对象的操作,该装置提供了核心程序对象和每个这样的数据处理任务之间的通信:(i)一个允许核心程序对象和用于完成该任务的一个插件程序对象之间相互作用的同步接口;和(ii)一个允许核心程序对象和用于完成该任务的一个硬件设备之间相互作用的异步接口。
Description
本发明涉及数据处理方法和装置。
一些基于计算机的数据处理系统使用“核心”计算机程序和多个可能的程序模块或当需要时被加载的“插件(plug-in)”。
使用各种微软视窗操作系统的术语,可以提供程序模块或插件作为“动态加载库”或“DLL”。DLL一般为较大的包含程序码、数据和子程序库的文件。在用于执行当前文件时将其加载到存储器。
一种使用这样结构的数据处理系统的实例为基于计算机的视频特殊效果系统。在这样的系统,使用者一般可以通过从多个可用模块选择连续的效果模块来建立用于视频序列的合成的特殊效果。例如,由使用者建立的效果序列可以包括:
(i) 图象加载器
(ii) 运动跟踪器
(iii) 与运动跟踪链接的发光效果
(iv) 与运动跟踪链接的图象重新排列
作为具有在核心程序的整体控制下在模块之间传递的数据的程序块或插件可以实现每个这样的效果。在核心程序对象和插件对象之间的接口是一个同步接口,以便将程序控制(事实上,在多任务环境,所谓的“线程”)传送到接着完成其处理任务的插件。然后仅控制返回到核心程序以继续执行使用该线程的其他处理。
本发明提供一种数据处理装置,其中核心程序对象对多个用于完成数据处理任务的插件程序对象有影响并控制其操作,所提供的装置用于在核心程序对象和每个这样的数据处理任务之间的通信:
(i)允许核心程序对象和用于完成该任务的插件程序对象之间相互作用的同步接口;和
(ii)允许核心程序对象和用于完成该任务的硬件设备之间相互作用的异步接口。
一方面,提供允许与软件插件同步接口的数据处理系统,另一方面,允许将来使用专用硬件单元替换其中某些插件的升级的可能性,本发明识别并寻找二者之间的潜在的冲突。这种类型的专用硬件单元,特别是翻译设备,一般使用异步接口(事实上,某些软件插件可以使用异步接口)。因此,本发明包含一个违反直觉的步骤,即,在一个单独的系统不但提供异步而且提供同步插件接口。
通过下面结合附图对所提及的示意性实施例的详细描述,本发明的上述和其他目的、特征和优点将变得显而易见。
图1示意性地示出一个数字视频特殊效果装置;
图2示意性地示出图1装置的操作软件结构;
图3是图1装置的操作软件结构的详细示意图;
图4示意性地示出图1装置中的更新效果参数的传播;
图5示意性地示出图1装置中的再绘制命令的传播;
图6示意性地示出一个图形编辑器窗口和一个选项板窗口;
图7示意性地示出一个图形编辑操作;
图8示意性地示出创建一个合成效果图标;
图9示意性地示出一个合成效果的文件结构;
图10示意性地示出一个浏览器窗口;
图11示意性地示出操作软件的初始设置;
图12示意性地示出一个在前提出的效果插件;
图13示意性地示出一种新形式的效果插件;
图14示意性地示出在图13的效果插件的效果服务器和代理效果之间的关系;
图15示意性地示出一个系统高速缓存器;和
图16示意性地示出一个插件接口。
图1示意性地示出一个数字视频特殊效果装置。
经输入接口100接收包括连续视频图象的数字视频信号并将其存储在盘阵列设备110。盘阵列设备110也存储由该装置产生的任何处理图象,并经输出接口120输出。
中央处理单元130存取存储在盘阵列的数据以便根据使用者的命令完成各种视频特殊效果。CPU130接收来自诸如鼠标和键盘之类的用户输入设备140的输入,并将运行数据和程序代码存储在存储器150,并产生经显示驱动器170在显示屏幕160输出的数据。
该装置可以实现,例如,一个在Microsoft Windows NT操作系统下运行适当软件的通用计算机(例如,PC)。在本实施例中,盘阵列经UItraSCSI数据链路连接到CPU130。
图2示意性地示出(在非常一般的水平上)图1装置的操作软件的结构。
软件被分为两种程序代码:核心结构(core framework),如图2的左侧所示,和各种“插件”,如图2的右侧所示。一旦已初始加载该软件,就出现核心结构并控制在不同特殊效果处理之间共享的装置的操作部件。相反,插件与各个特殊效果(例如发光效果,运动跟踪效果,等)有关并仅在需要时加载。
这是一个非常高效的设计,因为仅将那些与使用者当前需要的效果模块有关的插件加载到存储器。与其中必须加载用于每个可能特殊效果的程序代码的系统相比节省存储器。由于当第一次启动系统时避免将所有程序代码加载到存储器,所以这种设计还允许装置更快速的初始化,并且当在图形编辑器第一次选择一个图标时能够减少代码加载所带来的延迟(看下文)。另外,这种设计允许减少提供给或安装到该装置的设备子集,仅包含一个图形编辑器和无插件的核心处理。该系统还允许第三方或使用者产生其本身的插件,只要他们坚持定义一个插件和核心结构之间的接口协议。因此,使用者通过编写一个相对小的插件程序就能非常简单地产生预定效果。
核心结构和插件之间的通信使用所谓的“对象链接和嵌入”(OLE)协议进行,在“Understanding ActiveX and OLE”,Microsoft出版社1996年出版,作者David Chappell,描述了该协议。
在OLE系统,软件设计者能够实现称为“COM(Component Obiect Model)对象”的不同的计算机程序部分。每个COM对象支持一个或多个COM“接口”,每个接口包括多个“方法”。一个方法是完成一个特定操作的函数或过程。通过使用COM对象的软件可以调用COM方法。限定系统使得使用COM对象的软件其它部分仅通过定义的接口调用COM方法,因此它们不能直接存取该对象内的程序代码和数据,除非经过定义的COM接口。
这样,在本系统,核心结构经这些COM接口与插件通信。(事实上,核心结构包括多个能够提供COM接口的互连对象,但是基本原理相同)。
图3示出比图2所示更为详细的操作软件结构。在图3,该图被分为四个象限。左上象限表示所谓的浏览窗口310;右上象限表示效果用户接口(UI)320;右下象限表示具有相关参数数据(PD)的效果“服务器”330;和左下象限表示包括图形的核心处理器340,以及对象管理器350,绘制(render)管理器352和变化管理器358。在左下和右下象限之间的接口是构成Windows NT注册的一部分的图元数据库354,和包含效果图标,及缺省参数值的选项板356。下面将参照图11进一步描述图元数据库354,以及参照图6到图9进一步描述选项板。
核心处理器340内部是一个“图形”-事实上,是一个具有各个特定效果的链接序列的“单向非循环图形”。在该图形每个效果表示为一个代理效果(PE),代理效果具有一个相关的高速缓存(C),一旦可得到该效果高速缓存(C)就用于存储该效果的输出,因此,例如,如果改变与序列中较高等级效果相关的参数,就允许一序列效果中的效果数据的重复使用。每个代理效果与一个相应的效果服务器330相关。
对象管理器350负责控制系统中的激活对象的持续时间和存储器管理。绘制管理器352控制绘制任务的开始,进行,优先次序和停止。变化管理器358控制取消/恢复信息并向系统的各个部分通知这种改变。
图3的基本分区是两个左侧象限(上左和下左)涉及核心结构的特征,该核心结构不特定于任何特定的效果。这些对象加载到存储器,与使用者希望实现的特定的特殊效果无关。两个右侧象限(上右和下右)涉及插件。每个插件具有一个完成与该插件执行的效果相关处理的服务器330,和一个提供涉及该效果的用户接口控制(事实上,用于在浏览窗口310中显示)的用户接口320。
在图3存在一个类似的上下划分,这样,两个上面的象限(上左和上右)涉及与该特殊效果相关的用户接口控制,以及两个下面的象限(下左和下右)涉及为实现这些效果所完成的处理和组织。
浏览窗口给出使用者浏览由该装置执行的一序列效果中的一个特定效果的输出和控制参数。因此,当使用者打开浏览窗口时,必须或者产生,或者,如果可能的话,从高速缓存存储检索一个效果的输出。
在这种采用多COM对象类型的系统中,一般不希望每个对象将其运行或结果数据存储在一个分开的数据文件中。的确,这种设计与导致建立OLE系统的理论完全不一致。相反,所有对象将这种类型系统中的数据存储在一个单独的文件或“复合文件”中,但是复合文件内具有规定的结构。
基本上,在复合文件内,设置与文件类似的结构和目录结构。一个目录的等效物是所谓的“存储”,而与一个文件类似的是所谓的“流”。每个复合文件包含一个根存储,根存储下面是一个熟知的存储和流的树结构。COM流接口比COM存储接口简单,但是,自然,存储接口提供更大的灵活性。
通常,每个COM对象被指定其中存储其运行数据的其本身的存储或其本身的流。然而,在诸如本发明的视频特殊效果处理器之类的分级系统中,核心340与多个插件协调工作,而在以前系统中使用的结构是将一个流分配给每个效果插件。
相反,在本实施例中,已认识到简单地将一个存储或一个流分配给一个插件会给插件对象的设计和运行带来很多限制。相反,在核心和插件之间的接口定义中,每个插件可以在流和存储之间选择,以便,如果插件设计者希望,插件就可以将其运行数据以直接方式存储,如果要求的话,插件也可以在其本身的流和存储的目录安排下存储运行数据。由创建插件程序代码的插件设计者预先进行这种选择。
在下面的描述中,将参照图4和5描述各个对象之间的通信协议。参照图6到9将描述使用核心程序340的图形编辑部分建立一系列单个效果以形成一个合成效果的方式。接着将参照图10描述浏览窗口及其与效果UI320之间的相互作用。
这样,图4示意性地示出图3中的更新效果参数的传播。
这种情况的一个实例是使用者正建立一个“发光”的特殊效果,其中将光源的效果增加到一个图象。光源具有用户定义的源和相对于该图象的目的地位置。如果使用者希望改变其中一个位置,这将使任何当前来自该效果的绘制输出无效并且该变化必须在图3的不同象限所示的各个对象之间传播。这一过程如图4所示。
参见图4,使用者实际上经浏览窗口310输入一个改变的参数(下面看图10)。浏览窗口与一个特定的效果UI320相关,该效果UI320依次作为涉及一个单独效果的插件的一部分。(事实上,一个单独的浏览窗口可以与多于一个的效果相关,并且并非所有的效果必须具有在任何特定时间打开的浏览窗口,但保留图3的简化设计以用于该讨论)。插件向核心发出“将要编辑”的通知。
在已完成改变之后,插件发出“发生变化”的信息。这包含和/或初始化一系列动作。在第一步骤401,浏览窗口将更新参数传送到效果UI320。效果UI320向相应的效果服务器330发出“设定”命令,设定存储在效果服务器330内的参数的修改值。这是图4中的步骤402。
在步骤403,效果服务器330将“取消/恢复”对象写入到核心340,提供处理的细节或指向变化前后的参数记录(在效果服务器)的指针。响应接收该取消/恢复对象,在步骤404,核心将参数已改变和某些高速缓存数据输出可能无效的通知广播给所有浏览窗口。该通知不特定于发生参数变化的浏览窗口。
在步骤405,每个浏览窗口向相应的效果UI320发出要求更新其处理参数的信息。在步骤406,效果UI320向相应的效果服务器发出“得到”命令以得到新参数,在步骤407新参数返回效果UI320。在步骤408效果UI传播该变化用于浏览窗口中的显示。
通常,当处理参数改变时,导致必须绘制一个或多个效果的输出。图5示出重新绘制命令通过该装置,并从图4的处理继续的传播方式。
在步骤502,浏览窗口向绘制管理器发出重新绘制命令。接着在步骤503绘制管理器向相应的效果服务器330发出重新绘制命令。当效果服务器已完成重新绘制图象时,就在步骤504向核心340发出“完成”信息。在步骤505核心将该信息发送给浏览窗口,并且在步骤506和507浏览窗口与效果UI320相互作用以显示重新绘制的效果输出。
在存在几个打开的浏览窗口、以及感兴趣的几帧(这几帧可由使用者定义为全部视频剪切中的子集以用于测试目的)的情况下,根据下面的优先次序用于分配处理源,绘制图象成为多个同时发生的任务:
(i)当前显示的用于使用者观看的一个图象或多个图象;
(ii)感兴趣的输出序列的第一和最后图象;和
(iii)感兴趣的输出视频序列的剩余图象。
进一步详细地说,在绘制管理器向效果服务器发出重新绘制命令之前,绘制管理器发出指定序列中的哪个图象要被绘制的“准备绘制”信息。效果服务器以其“相关性”的通知对此作出响应,即,能够执行在绘制管理器请求之前所必须的那些绘制图象。这可能是由另一个效果(例如,单向非循环图形中的直接前述效果)绘制的图象或由该效果本身绘制的图象。后者的情况发生在运动跟踪器的实例中,在这里,为绘制图象5,运动跟踪器需要其本身的图4的绘制输出。
响应从效果服务器返回的信息,绘制管理器发出用于要求这些图象的“准备绘制”信息,等等,直到相关树结束为止。
在每一阶段,效果代理检查要求的图象或绘制输出是否被高速缓存,并通知绘制管理器。
因此,例如,如果准备绘制信息发送给指定图象5的运动跟踪器,就是说其需要一个图4的绘制输出(由其本身)。绘制管理器接着将准备绘制信息送给图4的运动跟踪器,运动跟踪器对此作出响应以指示其要求图象3,等。以这种方式建立在绘制要求图象(图象5)之前所必须的绘制作业列表。处于高速缓存的绘制输出不包括在绘制管理器的作业列表。
在一个效果要求一个前面效果的绘制输出的情况下发生同样的情况,直到一系列的效果为止。
在处理的结束,绘制管理器将全部要求的作业以相反的次序设定为运行,因此不绘制当前要求的图象直到绘制完其全部相关图象为止。
出于最优化考虑,绘制管理器能够从图形检测到每个效果的输入。这样,效果服务器能发送一个预定代码(例如,一个空白回答)以简单地表明“需要到该效果的全部输入”。
作为进一步的延伸,可以使用相同的协议以便每个效果服务器能通知绘制管理器其输出在相邻图象之间是否相同。这种情况下的一个简单实例是一个(固定)参数插件,在这种情况下输出不变。一个进一步的实例是输出已准备好并被高速缓存情况下的任何其他效果,因此就连续输出是否相同而言能进行直接前向检测。响应这样的通知,绘制管理器将该信息传送到一个效果服务器,该效果服务器处于单向非循环图形中的后面。接着该效果服务器(如果适当的话)仅绘制一定范围内的图象中的一个并重复该输出用于其他图象,在这种情况下其输出保持相同。
图6示意性地示出图形编辑器窗口600和选项板窗口60。在核心340的控制下图形编辑器窗口600和选项板窗口610显示在显示屏幕160。
图形编辑器窗口600包含多个图标620,每个图标映射到并表示系统中存在的插件的一个不同的可能的效果。使用鼠标控制,使用者能够将这些图标“拉”到滚动图形窗口610。由使用者在图形窗口彼此相关地设置这些图标并使用逻辑链路630将其链接,逻辑链路630在窗口中显示为图形线。
链路630表示一个效果的输出到一个后续效果的输入的传送,并且(在该实施例中)一直具有从图形的下面到图形窗口的上面的方向。因此,图6所示的实例具有将其输出传送给发光效果650的图象加载器图标640。
由于使用者在图形窗口建立图形链路,核心340建立逻辑链路以确定绘制输出从一个效果插件传送到另一个的方式。
现在参照图7将描述创建图形链路的方式。接着参照图9将描述逻辑链路。
在图7中,使用者已选择(例如,使用鼠标单击)发光效果并且现在具有一个从图标650指向鼠标指针730的可移动的图形线720。随着鼠标指针接近于混合效果图标700,通过放大710放大、或围绕混合效果图标,放大710示出在边块740的底面的两个输入口。随着鼠标指针接近于输入口中的一个,图形线720抓住该输入点并通过鼠标单击固定在此处。这样就在效果650和效果700之间建立逻辑和图形连接。
一旦建立逻辑和图形连接,使用者能“罩住”图形窗口中的效果图标的一个链接组800。这里,“罩住”意味着使用计算机鼠标以标准方式拖走围绕该组的一个框符。(使用的一种方式是单击并保持在框符的左上角,将鼠标拖到右下角并释放鼠标按钮。这是选择或挑选多个屏幕对象的标准方式)。
然后,使用者能够将链接效果组拖到选项板区域。这就创建一个新的复合效果图标810,该图标具有由到该组的输入形成的一组输入和该组的输出形成的一组输出。从逻辑角度讲,取代效果图标810映射到一个特定的插件,效果图标810映射到以特定方式互连的链接插件组。
接着,复合效果图标810构成选项板的一部分,由使用者在设计图形时使用。然后,如果使用者希望使用复合图标810,他就简单地将其拖到图形窗口位置即可。效果图标810最好保留为图形窗口中的一个单独的图标,但在其他使用中可以将其扩展到初始组800。作为一个进一步的替换,效果图标810可以以压缩形式显示为一个单独的图标,但具有一个显示的“扩展”按钮以便使用者能单击该扩展按钮以显示初始图标组800。在任意情况下,由图标810提供的复合效果为初始组800的复制品。
图9示出强调该处理的数据存储。在图9中,图标850已从选项板区域600中的选项板图标620拖到图形编辑器区域610。
与选项板区域600相关,并存储在图3所示的选项板356的是一个设置为具有根860和悬挂在该根的各个数据项870的树的数据结构。每个数据项870表示一个效果图标620,除诸如效果875之类的复合效果的情况之外。这里,形成该效果的效果图标(3a,3b)设置为悬挂在数据项875的子结构。
存在一个类似的数据结构以存储图形编辑区域中的效果。这里,示出根880,根880仅具有一个悬挂在其上面的效果885。如果在图形编辑器区域将多个效果聚集在一起并将其拖到选项板,它们就构成一个与结构875类似的进一步的复合效果结构。
图10示意性地示出一个浏览窗口。该浏览窗口包括一个图象显示区域900,各种“特性页面”910,和效果控制920(这里在发光效果实例中示为定位十字线),以及“按钮块”930。
通过核心结构设定浏览窗口的基本布局,该布局为从效果到效果的标准形式。然而,使用特性页面910调整的特定项由对应于一个特定效果的效果UI320设定。效果UI也提供显示细节用于控制920。
这样,在所示实例,十字线920确定发光效果中的光的来源或目标位置。使用者能使用计算机鼠标拖走该十字线。拖动该十字线改变与控制有关的参数(x,y)值,由此初始化图4的程序(更新参数值)。作为该程序的最后部分,在步骤408,效果UI将修正参数值发送到浏览窗口。在该阶段,将十字线重新拉到其新位置。因此,尽管使用者看来拖动动作已将十字线移到其最终位置,事实上拖动动作创建一个参数更新,如图4所示程序,参数更新导致十字线的移动。
图11示意性地示出操作软件的初始设置。该设置表示在该装置的一个特定操作期间完成任何绘制之前的状况。
在Windows操作系统下插件实现为“动态加载库”(DLL)。DLL一般是包含程序代码,数据和子程序库的较大文件。常规地,为保存存储器并提高系统性能,当第一次需要执行或初始化由DLL处理的一个特定过程时将DLL加载到存储器。在本实施例中,保存存储器并提高系统性能的设想通过一个进一步的步骤实现。
这样,当从选项板区域第一次取出一个效果图标时,常规地,对应于该效果的DLL将被加载到存储器以提供核心340足够的信息(例如,与其他效果图标的互连性)用于构造图形。
在本实施例中,在该阶段不加载该效果的DLL。相反,加载表示该效果的所谓的“图形元数据”1000。图形元数据向核心提供定义该效果与其他效果的互连性的信息(例如,输入和输出的数目)。这使得核心不需要加载任何DLL就可构造一个图形,这样通过直到确实需要加载时才加载较大文件就节省了存储器。
如果打开一个涉及一个效果的浏览窗口,或者如果通过任何其他方法执行复合效果,就加载DLL而丢弃或忽略图形元数据。
图12到14示意性地示出(在其他事件之间)便于系统自动化的效果插件的特性。
图12示意性地示出一个前面提到的效果插件。该效果取得图象信息、(示为“剪切”1300)并根据三个处理参数P1,P2和P3(诸如发光位置等)动作。在图12的插件中,参数值设定在插件内,即,通过作为该插件的一部分编写的预定程序代码。这使得整个参数控制-例如用于参数随时间变化的动画系统,或在诸如发光位置之类的参数通过诸如运动跟踪器之类的另一个效果改变的情况下-变得比较困难,要求效果插件内的附加代码并经常并联效果插件的文本。
图13示意性地示出根据本发明的一实施例的另一种方法。这里,由分开的插件1320定义每个参数,插件1320以与上述图形编辑器中定义的效果之间的链接相同的方式链接到“主”效果插件1330。事实上,上面给出的描述是整个过程的简化,在该阶段也进行了简化以有助于解释。
一般向使用者隐瞒参数插件,例如通过将它们显示在“关闭该页面”的图形编辑器和选项板的屏幕位置。
这样,如果试图以自主式,非动画方式(即,不从其他效果引入参数值)进行操作,就使用主效果的浏览窗口为每个参数插件1320设定参数。
如果参数由另一个效果的输出定义,例如,位置值由运动跟踪效果提供,则所需要的是,保留主效果插件1330和适当的参数插件1320之间的逻辑链路并初始化到运动跟踪效果的链路。
为理解该系统对动画的作用,参照图14。
图14表示首先在图3示出的核心和插件之间的左右划分。在图14的左侧,为“主”效果服务器1350设置代理效果(PE)1340。也为每个参数插件1320设置代理效果1360。代理效果1360具有比代理效果1340简单得多的特性,并且代理效果1360和参数插件1320之间的通信使用简化的代理效果1340和效果服务器1350之间的通信协议的子集。
实际上,代理效果1360可以是一个单独的数据值(在非动画系统)或者数值列表(在动画系统)。在动画系统,数值列表可以表示为“密钥帧”值,即,为序列中的特定图象设定的数据值,其中由核心根据线性或用户定义的非线性插值法对干预值插值。这样,在每个插件内不必编写预定的动画软件就可以以特别简单和方便的方式实现动画。
将该描述与较早给出的关于效果之间的相关性联系起来,当“准备绘制”信息由效果服务器1350从绘制管理器接收时,效果服务器1350作出响应,在提供其输出之前要求全部输入。效果输入所包括的自然是参数插件,因此下一阶段是绘制管理器向每个参数插件发送绘制信息。如果参数插件包含一个单独的值,或如果当前图象为密钥帧,则参数插件就准备在绘制时提供适当的参数。然而,如果参数插件包含动画数据并且当前图象不是密钥帧,则在效果内使用参数之前必须首先插值该参数。
图15示意性地示出一个系统高速缓存1100。这是整个高速缓存区的示意图-事实上,如前所述,高速缓存也可以被认为是与相应的代理效果相关的多个高速缓存,但由于在这样的各个高速缓存之间动态分配存储器资源,图15所示也是一个有效的高速缓存。
在系统存储器150提供高速缓存,该高速缓存能够存储来自效果的图象1110和非图象绘制输出1130(例如,在运动跟踪效果情况下的运动向量)。
高速缓存的含义是存储单向非循环图形中的每个效果的绘制输出(与其是否是图象无关)。以这种方式,如果单向非循环图形中特定位置上的一个效果改变,不必重新绘制该位置后面的效果以提供新输出。相反,可以重复使用高速缓存输出。一个进一步的优点是通过在参数变化之前和之后存储特定效果(这些具有打开的浏览窗口的效果)的输出,有助于并加速取消/恢复操作。也存储相应的参数变化,因此,通过加载高速缓存存储器1100的适当信息就能简单地取消或恢复参数变化。当产生变化时在效果服务器编写的取消/恢复对象的控制下进行。
与像一个运动向量这样的简单数据值相比图象占据非常多的存储器空间,或许为简单数据值占用的存储器空间的百万倍。因此,在该实施例,当高速缓存存储器接近其容量并存储另一个图象时,删除高速缓存中最近最少访问的图象以便为新存储图象产生空间。然而,在该装置的操作持续时间期间不删除高速缓存中的其它数据-参数值,非图象绘制输出等,这是因为与图象相比这些数据消耗少量的存储器空间。接着该信息可用于重复使用,或用于取消/恢复操作,只要该信息在操作持续时间内保持有效。
实际上,由插件规定一个数据项是否是刷新,根据惯例图象数据项设定为刷新,而非图象项设定为非刷新。
图16示意性地示出核心340和效果服务器之间的异步/同步转换器1200。
转换器1200以“To do”队列,即,要作的绘制作业列表的形式从绘制管理器接收异步重新绘制命令。当完成一个作业时,“完成”信息从转换器1200返回绘制管理器。
转换器1200接收异步作业请求并向适当的软件插件发出同步请求。这意味着作为接口的转换器1200将一个控制“线程”(Windows术语)传送给该软件插件,该软件插件保留线程的控制直到该作业完成为止。接着,该软件插件将该线程返回接口,接口通过向核心发出“完成”信息作出响应。
在初始化时,核心查询每个插件(或与该插件有关的图形元数据)以确定该插件能否处理同步或异步通信。如果安装可能运行在不同的机器的一个硬件插件(例如,用于以特定方式绘制的外部设备)或一个异步软件插件以取代一个软件插件,该插件经异步接口与核心相互作用(事实上是异步初始化绘制任务的绘制管理器),这是由于硬件加速器更适于以这种方式操作。因此,在这种情况下,转换器1200被旁路。
转换器可以作为核心的一部分或每个相关插件的一部分。
因此,通过在两段软件之间提供转换器1200的违反直觉的步骤,为以后升级到专用硬件提供一个高效的硬件接口。
尽管这里参照附图已详细描述了本发明的示意性的实施例,应该明白本发明不限于这些准确的实施例,在不脱离由附属权利要求书定义的本发明的范围和精神的情况下,本领域的技术人员可以作出各种变化和修改。
Claims (1)
1.一种数据处理装置,其中核心程序对象影响并控制用于完成数据处理任务的多个插件程序对象的操作,所述装置提供所述核心程序对象和每个这样的数据处理任务之间的通信:
(i)一个允许所述核心程序对象和用于完成该任务的一个插件程序对象之间相互作用的同步接口;和
(ii)一个允许所述核心程序对象和用于完成该任务的一个硬件设备之间相互作用的异步接口,
其特征在于,还包括:
一个与所述核心对象相关的同步/异步转换器,
其中,一个或多个插件对象具有相应的相关同步/异步转换器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9816760A GB2340265B (en) | 1998-07-31 | 1998-07-31 | Data processing |
GB9816760.4 | 1998-07-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1252561A CN1252561A (zh) | 2000-05-10 |
CN1114154C true CN1114154C (zh) | 2003-07-09 |
Family
ID=10836536
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN99121734A Expired - Fee Related CN1114154C (zh) | 1998-07-31 | 1999-07-31 | 数据处理 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6782539B2 (zh) |
EP (1) | EP0981083B1 (zh) |
JP (1) | JP4299925B2 (zh) |
KR (1) | KR100712374B1 (zh) |
CN (1) | CN1114154C (zh) |
DE (1) | DE69938991D1 (zh) |
GB (1) | GB2340265B (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2370658A (en) * | 2000-12-29 | 2002-07-03 | Metadyne Ltd | A modular software framework |
CN100440879C (zh) * | 2001-01-25 | 2008-12-03 | 株式会社东芝 | 能适应多个无线通信系统的移动无线通信装置 |
US6920630B2 (en) * | 2001-11-30 | 2005-07-19 | International Business Machines Corporation | Graphical user interface for managing resource bundles for internationalization |
US7287222B2 (en) * | 2002-01-31 | 2007-10-23 | Canon Kabushiki Kaisha | Information processing apparatus and method that determines effectiveness of metadata for editing information content |
US20050066042A1 (en) * | 2003-09-23 | 2005-03-24 | Hummer Jesse Adam | Plug-in status interfacing |
US7436535B2 (en) | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US8060743B2 (en) * | 2003-11-14 | 2011-11-15 | Certicom Corp. | Cryptographic method and apparatus |
US20050209865A1 (en) * | 2004-03-17 | 2005-09-22 | Aravind Doss | Architecture to integrate different software subsystems |
US7761814B2 (en) | 2004-09-13 | 2010-07-20 | Microsoft Corporation | Flick gesture |
US8055821B2 (en) * | 2004-11-17 | 2011-11-08 | International Business Machines Corporation | Apparatus, system, and method for converting a synchronous interface into an asynchronous interface |
US9098758B2 (en) * | 2009-10-05 | 2015-08-04 | Adobe Systems Incorporated | Framework for combining content intelligence modules |
US20120166953A1 (en) * | 2010-12-23 | 2012-06-28 | Microsoft Corporation | Techniques for electronic aggregation of information |
US9679404B2 (en) | 2010-12-23 | 2017-06-13 | Microsoft Technology Licensing, Llc | Techniques for dynamic layout of presentation tiles on a grid |
US9436685B2 (en) | 2010-12-23 | 2016-09-06 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
US9715485B2 (en) | 2011-03-28 | 2017-07-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
US9846682B1 (en) * | 2013-11-25 | 2017-12-19 | Amazon Technologies, Inc. | Cross-platform presentation of digital content |
US11145125B1 (en) | 2017-09-13 | 2021-10-12 | Lucasfilm Entertainment Company Ltd. | Communication protocol for streaming mixed-reality environments between multiple devices |
CN109240758B (zh) * | 2018-07-25 | 2021-10-29 | 武汉精测电子集团股份有限公司 | 一种支持插件接口同步异步统一调用的方法及微内核系统 |
KR20210060274A (ko) | 2019-11-18 | 2021-05-26 | 김윤주 | 자유자재 주머니 벨트버클 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2244354B (en) * | 1990-05-25 | 1994-02-23 | Silicon Systems Inc | Multi-device emulation |
US5265252A (en) * | 1991-03-26 | 1993-11-23 | International Business Machines Corporation | Device driver system having generic operating system interface |
WO1993007554A1 (en) * | 1991-10-07 | 1993-04-15 | Eastman Kodak Company | A compositer interface for arranging the components of special effects for a motion picture production |
US5999173A (en) * | 1992-04-03 | 1999-12-07 | Adobe Systems Incorporated | Method and apparatus for video editing with video clip representations displayed along a time line |
US5434975A (en) * | 1992-09-24 | 1995-07-18 | At&T Corp. | System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications |
US5696970A (en) * | 1993-04-01 | 1997-12-09 | Intel Corporation | Architecture for implementing PCMCIA card services under the windows operating system in enhanced mode |
US5530858A (en) * | 1993-04-01 | 1996-06-25 | Intel Corporation | Method and apparatus for background processing for PCMCIA card services |
US6466992B2 (en) * | 1994-12-07 | 2002-10-15 | Next Computer, Inc. | Method for providing stand-in objects |
US5915131A (en) * | 1995-05-05 | 1999-06-22 | Apple Computer, Inc. | Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services |
US5802368A (en) * | 1995-09-29 | 1998-09-01 | Informix Software, Inc. | Dynamic Library Task Switching |
-
1998
- 1998-07-31 GB GB9816760A patent/GB2340265B/en not_active Expired - Fee Related
-
1999
- 1999-07-26 DE DE69938991T patent/DE69938991D1/de not_active Expired - Lifetime
- 1999-07-26 EP EP99305909A patent/EP0981083B1/en not_active Expired - Lifetime
- 1999-07-29 US US09/364,250 patent/US6782539B2/en not_active Expired - Fee Related
- 1999-07-29 JP JP21558999A patent/JP4299925B2/ja not_active Expired - Fee Related
- 1999-07-31 KR KR1019990031541A patent/KR100712374B1/ko not_active IP Right Cessation
- 1999-07-31 CN CN99121734A patent/CN1114154C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2340265A (en) | 2000-02-16 |
GB2340265B (en) | 2003-04-23 |
GB9816760D0 (en) | 1998-09-30 |
JP4299925B2 (ja) | 2009-07-22 |
KR20000016992A (ko) | 2000-03-25 |
EP0981083A1 (en) | 2000-02-23 |
DE69938991D1 (de) | 2008-08-14 |
CN1252561A (zh) | 2000-05-10 |
JP2000056988A (ja) | 2000-02-25 |
EP0981083B1 (en) | 2008-07-02 |
US6782539B2 (en) | 2004-08-24 |
KR100712374B1 (ko) | 2007-05-02 |
US20030177286A1 (en) | 2003-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1114154C (zh) | 数据处理 | |
KR100652466B1 (ko) | 디지털 이미지 처리 장치 | |
US6469723B1 (en) | Video special effects apparatus | |
JP4166376B2 (ja) | ディジタル・ビデオ信号処理装置及び方法 | |
US5734852A (en) | Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system | |
JP2003330713A (ja) | 異種装置プラットフォーム間を移動するプラットフォーム特定型のグラフィカルユーザインターフェイスのウィジェットの変換 | |
US6501476B1 (en) | Video processing and rendering | |
US6523174B1 (en) | Data processing method using sub-operation metadata to determine execution sequencing prior to object loading | |
KR100652464B1 (ko) | 디지털 비디오 처리장치 | |
KR100652465B1 (ko) | 비디오 특수 효과 장치 | |
US6801225B1 (en) | Data storage in ole systems |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20030709 Termination date: 20100731 |