用于处理不同类型数据的数据处理装置的制作方法

文档序号:7644971阅读:190来源:国知局
专利名称:用于处理不同类型数据的数据处理装置的制作方法
技术领域
本发明涉及处理不同类型数据的一种数据处理装置。例如可以将本发明应用于一个视频处理装置中。视频处理装置一般是对作为不同类型数据的亮度(Y)以及色度(UV)象素进行处理。将要处理的象素还有可能由于它们源于不同图象而有所不同。
背景技术
数据处理装置一般包括一个接口,通过该接口,它可以接收将要处理的数据。一般来说,该接口会暂时存储将要处理的数据。这种贮存是必要的,这是因为,数据处理装置不能总及时处理它所接收到的数据。
接口也可以将它所接收的数据存储到一个或另一个存储部分内,究竟存储到哪一个存储部分内取决于数据的类型。例如,我们假定接口接收包含有亮度以及色度象素的视频。这样,接口可以具有其中存储有亮度象素的一个存储部分,以及其中存储有色度象素的另一个存储部分。例如由于处理包括一个画中画(PIP)特征,所以将要处理的视频可能源于不同的图象。在这种情况下,可以有不同组的存储部分,每一组存储部分属于一个不同的图象。
发明概述本发明的一个目的是提供改善了的投资效益。
依据本发明,能够处理不同类型数据的一种数据处理装置,包括用于执行一组程序项的一个控制器。每个程序项都使得数据处理装置能够获取并处理某种类型的数据块。接口将一个数据块暂时存储在若干存储部分的一个部分内。其中存储有数据块的存储部分是用这样一个位置所确定的用于这个数据块的程序项已经位于该组程序项内。
本发明考虑了以下一些问题。数据处理装置可能必须处理各种数据组合。一个组合可能包括相对较高比率的某种类型的数据,而另一种组合可能包括相对较低比率的该种类型的数据。例如,视频数据可以包括相对较多的色度象素或相对较少的色度象素,这取决于视频格式。
数据处理装置一般接收表现为数据流形式的一个数据组合,它对不同类型的数据进行时分多路复用。该数据流可以在一个时间间隔内包括相对较高比率的某种类型的数据,而在另一个时间间隔内包括相对较低比率的该种类型的数据。
依据
背景技术
,接口依据数据类型,而将数据暂时存储在一个或另一个存储部分内。换言之,每种类型的数据具有它自己的存储部分。一个存储部分应当足够大,以便能临时存储指定给它的那种类型的数据。从上文所说明的内容来看,用于数据的一个组合的存储部分的容量必须相对较大,而用于另一种组合的存储部分的容量可以相对较小。此外,有可能存在在某个时间间隔中,一个存储部分需要存储相对较多的数据,另一个存储部分必须存储相对较少的数据,而在另一个时间间隔中,情况相反。
有两种基本的解决方法,来解决与背景技术相关的这些问题。一个方案是,给予每一个存储部分相对较大的容量,使得它总是可以存储指定给它的那种类型的数据。由于这种方法需要一般来说不能有效使用的大量的储存容量,因此,相对较昂贵。另一个方案是,将一个存储器动态分割为许多部分,每一个存储部分属于某种类型的数据。将用于某种类型数据的一个存储部分作得较大或较小,取决于该种类型数据所需的储存容量。由于这种方法需要用软件或硬件实现的或两者都用所实现的相对复杂的一个存储管理系统,因而它也相对较贵。
依据本发明,控制器执行了一组程序项,一个程序项使得数据处理装置能获取并处理某种类型的一个数据块。接口依据所述程序组内的程序项的位置,将一个数据块暂时存储在一个存储部分内或是另一个存储部分内。
控制器将遵照一个预定方案,执行所述程序项。由于依据本发明,一个程序项使得依据所述程序项组内的程序项的位置,使一个数据块暂时存储在一个或另一个存储部分内,所以,下文定义了一种方案,该方案遵循在接口的一个存储部分内,暂时存储数据块的原则。因此,在接口中,不需要用于管理数据储存的复杂的存储管理系统。
出于以下原因,本发明还改善了投资效益。数据处理装置将连续处理数据块。这暗示着,接口将会把这些数据块连续提供给一个或多个处理电路。依据本发明,一个程序项使得一个数据块得到处理,且程序项的位置确定了该数据块被存储于接口内的哪一处。因此,在任何给定的瞬间,都能立即了解需要在该时刻进行处理的一个特定的数据块存储在接口内的哪一处。这样,使数据块从接口中读出以便进行处理的硬件和/或软件,可以相对简单。
此外,本发明允许对存在于接口内的存储部分进行有效利用。依据本发明,一个程序项使得数据处理装置能够获取并处理某个数据块。这暗示着存在一个取数据延迟。由于数据要进入处理管线,因此,在一个数据块被写入一个存储部分的时刻,以及该数据块被读出的时刻之间,取数据延迟不同。最好是,接口刚好具有足够的存储部分,以度过该取数据延迟,不多也不少。在这种情况下,在大部分时间内,存储部分中充满了数据,因此它们将得到有效利用。
存储部分可以具有一个均匀的容量。在任何应用中,都可以用以下这种方式,将需要处理的数据分割为适当的数据块,使得大多数数据块具有与存储部分的容量相应的一个大小。这种做法还进一步对有效利用存储部分起到了作用。
以下,将参见附图,对本发明的这些以及其它方面进行更详细的说明。
附图的简要说明

图1是一张总体图,它显示了下文所说明的本发明的基本特征;图2是显示了依据本发明的一个视频处理装置的一张框图;图3是一张视烦处理装置的第一滤波器单元的框图;图4是一张视频处理装置的一个输出单元的框图;图5图示了所给的有关视频处理装置如何处理一个象素块的例子;图6是视频处理装置的控制寄存器的框图;图7是显示了视频处理装置的基本工作方案的图;图8是视频处理装置的一个控制器的框图;图9是用于控制器的调度程序的一部分;图10是显示了用于控制器的取数据文件的图;图11是显示了由控制器实现的一系列步骤的图;图12是视频处理装置的主汇流排(main-bus)接口的框图。
发明的实施例以下说明涉及参考标记。在所有附图中,相似的机构标记有相似的字母标记。在单独一张图中可能出现几个相似的机构。在这种情况下,在该字母标记中附加上一个数字或后缀,以便识别出相似的机构。出于方便考虑,也可以忽略数字或后缀,或在其值不重要的情况下(不在意值),也可以用一个星号来替代它们。适用于本发明的这些特征与权利要求书中的相同。
图1显示了前面所概述过的本发明的基本特征。一个数据处理装置[DPA]能够处理不同类型的数据[I,II,III]。数据处理装置[DPA]包括一个控制器[MCP],用于执行一组程序项[PI]。一个程序项[PI]使得数据理装置[DPA]能够获取并处理[F&PR]某种类型[I,II,III]的数据块[DB]。数据处理装置[DPA]还包括一个接口[INT],用于将一个数据块[DB]暂时存储在若干存储部分[MS]中的一个内。其中存储有所述数据块[DB]的存储部分是由一个位置确定的,在该位置上,用于该数据块[DB]的程序项[PI]已经处于该组程序项内。
例如,可以将图1中所示的特征应用于一个视频处理装置。该视频处理装置例如可以用于将一种视频数据从一种显示格式修改为另一种显示格式,这种修改例如可以通过修改行数以及/或每行的象素数来实现。视频处理装置例如还可用于将一个副图象以及或图形插入到一个主图象内。
图2显示了依据本发明的一个视频处理装置。视频处理装置通过一个主汇流排[HWY],接收来自未示出的一个主存储器的视频数据。作为响应,它提供一个视频输出流[VIDOUT],该流例如可以提供给一个视频显示设备或一个视频记录设备。视频处理装置包括一个主汇流排接口[MBIF]、两个滤波单元第一和第二滤波单元[XPB1,XPB2]、一个输出单元[XPC]、一个流输出电路[SO]以及一个控制器[MCP]。两个滤波单元[XPB]以及输出单元[XPC]通过两条内部总线,连接到主汇流排接口[MBIF],两条内部总线为第一和第二内部总线[XBUS1,XBUS2]。控制器[MCP]经由控制总线[CBUS]而连接到图2所示的各种其它单元。存在允许数据在两个滤波单元[XPB]以及输出单元[XPC]之间进行传送的数据通路。这些数据通路显示于图2中,但并没有被标记。
图3显示了第一滤波单元[XPB1]。第二滤波单元[XPB2]与之完全相同。第一滤波单元[XPB1]包括两个内部总线接口[IBIF],一个接口专用于一条内部总线[XBUS],第一滤波单元还包括一个数据传送电路[TRNSFR]。数据传送电路[TRNSFR]允许将数据传送到作为第二滤波单元[XPB2]的另一个滤波单元,并允许将数据传送到输出单元[XPC]。第一滤波单元[XPB1]还包括一个输入纵横制单元[XBARI]、一个输出纵横制单元[XBAR0]、表现为第一到第二十四SRAM[SRAM1-SRAM24]的24个存储电路、以及表现为第一和第二水平滤波器[HFIL1,HFIL2]以及第一和第二垂直滤波器[VFIL1,VFIL2]的四个处理电路。输入纵横制单元[XBARI]可以接收来自作为第二滤波单元[XPB2]的其它滤波单元的数据,或接收来自输出单元[XPC]的数据。
图4显示了输出单元[XPC]。输出单元[XPC]包括两条内部总线接口[IBIF],一个接口用于一条内部总线[XBUS],输出单元还包括一个数据传输电路[TRNSFR]。输出单元[XPC]还包括两个输入纵横制单元第一和第二输入纵横制单元[XBARI1,XBARI2],还包括一个输出纵横制单元[XBAR0]、表现为第一到第二十四SRAM[SRAM1-SRAM24]的24个存储电路、以及表现为矩阵/去矩阵(matrix/dematrix)电路[MD]的5个处理电路、两个上采样[UPS]、一个混合器[BLND]以及一个查找表[LUT]。第一和第二输入纵横制单元[XBARI1,XBAR2]可以接收来自控制器[MCP]的数据。输出纵横制单元[XBAR0]可以将数据加到流输出电路[SO]以及控制器[MCP]。
图2所示的视频处理装置基本操作如下。主汇流排接口[MBIF]经由主汇流排[HWY],从主存储器中获取图3中未示出的一个象素块。接着,主汇流排接口[MBIF]经由内部总线[XBUS]中的一条,将该象素块传送给众多滤波单元[XPB]中一个滤波单元内的一个SRAM,或是传送给输出单元[XPC]内的一个SRAM。接着,滤波单元[XPB]或是输出单元[XPC]内的处理电路中的一个,对象素块进行处理。这就产生了被处理过一次的一个数据块。它被存储在另一个SRAM中。其后,可以利用同一个或另一个处理电路,对这个经过处理的象素块进行处理。这种一步接一步的处理连续不断,直到获取了输出单元[XPC]内的SRAM中存储的、全部经过处理的象素块为止。随后,输出单元[XPC]将全部经过处理的象素块传述到流输出电路[SO]。
视频处理装置对不同的象素块,连续执行上文中所说明的处理。因此,流输出电路[SO]连续接收全部经过处理的象素块。它将自己所接收到的象素安排为适当的格式,并加入一些同步信号。这样,就得到了视频输出流[VIDOUT]。
图5显示了对一个象素块进行处理的例子。它包括三个处理步骤第i、第i+1以及第i+2步处理步骤[PS(i),PS(i+1),PS(i+2)]。假定图2显示的主汇流排接口[MBIF]已经获取到来自主存储器的象素块。因此该象素块存在于主汇流排接口[MBIF]中。
在第(i)步处理步骤[PS(i)]中,主汇流排接口[MBIF]经由第一内部总线[XBUS1],将象素块传送到第一滤波单元[XPB1]内的第一SRAM[SRAM1]。在第(i+1)步处理步骤[PS(i+1)]中,第一滤波单元[XPB1]对象素块进行处理。特别是,第一水平滤波器[XFIL1]从第一SRAM[SRAM1]中逐个象素地读出象素块,它对读出的象素进行处理,并将处理过的象素写入输出单元[XPC]的第12SRAM[SRAM12]中。这一传送的执行经过了图3所示的第一滤波单元[XPB1]的输出纵横制单元[XBAR0]以及数据传输电路[TRNSFR],且通过了图4所示的输出单元[XPC]的第一输入纵横制单元[XBARI1]。因此,在第(i+1)步处理步骤[PS(i+1)]结束时,输出单元[XPC]的第12个SRAM[SRAM12]将包括一个经过处理的象素块。在第(i+2)步处理步骤[PS(i+2)]中,输出单元[XPC]将经过处理的象素块传送到流输出电路[SO]。
图5中所示的处理与由单独一个水平滤波器构成的一个视频处理链相对应。利用图2所示的视频处理装置,可以构成许多不同的视频处理链。例如,它允许所构成的一个视频处理链包括一系列的滤波器以及其它类型的处理,例如是混合、上采样和下采样,上述一系列滤波器中的一部分可以并联。包含于两个滤波器单元[XPB]以及输出单元[XPC]内的SRAM用作一个视频处理链内的两个连续基本操作之间的FIFO存储器,所述基本操作是某种处理操作。
原则上,在每一个处理步骤中,图2中所示的视频处理装置都可以对一个新象素块进行处理。这样,在某个处理步骤期间,视频处理装置还可以同时处理不同的数据块。例如,参见图6,在第(i+1)步处理步骤[PS(i+1)]中,主汇流排接口[MBIF]可以将一个新象素块传送到第一或第二滤波单元[XPB1,XPB2]或输出单元[XPC]的一个SRAM中。这个新的象素块可能会经历例如象图5中所示的视频处理链内的所述处理。在这种情况下,图5中所示的操作被移动了一个处理步骤,以用于新的象素块。
此外,在每个处理步骤中,图2中所示的视频处理装置可以处理两个新的象素块。这与所存在的两个内部总线[XBUS]相关。每一个内部总线[XBUS]允许在单独一个处理步骤中,将一个象素块从主汇流排[MBIF]传送到第一或第二滤波单元[XPB1,XPB2]或输出单元[XPC]。例如,参见图5以及其中所显示的第i步处理步骤[PS(i)],在主汇流排接口[MBIF]通过第一条内部总线[XBUS1],将相关的象素块传送到第一滤波单元[XPB1]的第一SRAM[SRAM1]的同时,它可以通过第二条内部总线[XBUS2],将另一个象素块传送到第一滤波单元[XPB1]内的另一个SRAM,或是第二滤波单元[XPB2]或输出单元[XPC]内的一个SRAM中。
图2所示的控制器[MCP]使得视频处理装置能依据某种视频处理链,来处理一个象素块。这种处理包括如上文参照附图5所述的一系列的处理步骤[PS]。此外,某个处理步骤[PS]中的处理仅涉及在视频处理装置中所出现的某个电路子设备。对于每一个处理步骤,控制器[MCP]对该处理步骤所涉及的电路子集进行适当编辑。
例如,我们考虑图5所示的处理,特别是,在第i+1步处理步骤[PS(i+1)]中的处理。它涉及图3所示的第一滤波单元[XPB1]的以下电路第一SRAM[SRAM1]、输入纵横制单元[XBARI]、第一水平滤波器[HFIL1]、输出纵横制单元[XBAR0]以及传输单元[TRNSFR]。处理还涉及图4所示的输出单元[XPC]的以下电路第一输入纵横制单元[XBARI1]以及第12 SRAM[SRAM12]。
图3所示的控制器[MCP]对前述电路进行编辑,这样,在组合中,它们执行图5所示的第i+1步处理步骤[PS(i+1)]中所显示的处理,这将在后面进行说明。控制器[MCP]对第一滤波单元[XPB1]的第一SRAM[SRAM1]进行编辑,以便它能提供需要滤波的象素块。例如也可以通过确定适当的读取起始地址,作到上述这一点。控制器对第一滤波单元[XPB1]的输入纵横制单元[XBARI]进行编辑,从而,它使得第一SRAM[SRAM1]与第一水平滤波器[HFIL1]相连。控制器对第一水平滤波器[HFIL1]进行编辑,从而它执行所需类型的滤波。控制器[MCP]对输出纵横制单元[XBAR0],以及第一滤波单元[XPB1]的数据传输电路[TRNSFR]和输出单元[XPC]的第一输入纵横制单元[XBARI1]进行编辑,这些电路使得第一滤波器单元[XPB1]的第一水平滤波器[HFIL1]与输出单元[XPC]的第12 SRAM[SRAM12]相连。最后,控制器[MCP]对输出单元[XPC]内的第12SRAM[SRAM12]进行编辑,这样,经过滤波的象素被适当地存储。也可以通过定义一个适当的写入起始地址,来作到上述这一点。
图3所示的两个滤波单元[XPB]的电路以及图4所示的输出单元[XPC]具有控制寄存器。控制寄存器的内容确定了该控制寄存器所属的电路的功能特性。因此,图3所示的控制器[MCP]通过将控制数据写入各个控制寄存器,从而,对滤波单元[XPB]以及输出单元[XPC]内的电路进行编辑。控制器[MCP]也可以通过管理已经包含于该电路的控制寄存器内的控制数据,从而对一个电路进行编辑。
图6显示了一个控制寄存器[CREG]。控制寄存器[CREG]包括一个前端寄存器[FREG]、一个阴影寄存器[SREG]以及一个寄存器控制器[RCNTRL]。其基本操作如下。控制寄存器[CREG]通过图2所示的控制总线[CBUS],接收来自同样是图2所示的控制器[MCP]的控制数据。这一控制数据首先被写入到前端寄存器[FREG]。响应于来自控制器[MCP]的一个控制命令,寄存器控制器[RCNRTL]可以使控制数据传送到阴影寄存器[SREG]。包含于阴影控制器[SREG]内的控制数据确定了所述控制寄存器所属的电路的功能特性。当包含于前端寄存器[FREG]内的控制数据被传送到阴影寄存器[SREG]时,包含于阴影寄存器[SREG]内的控制数据可被传送回前端寄存器[FREG]中。寄存器控制器[RCNTRL]使得能响应来自控制器[MCP]的控制命令,来实现这种交换操作。
图7显示了图2所示的视频处理装置的基本操作方案。时间是以时钟周期为单位水平绘制的。视频处理装置交替实现处理步骤[PS]以及配置步骤(configuration step)[CS]。
在处理步骤[PS]中,视频处理装置处理一个或多个象素块。例如,一个象素块可以通过一个处理电路或仅仅简单地从一个存储电路被传送到另一个存储电路。在并联时,另一个象素可以通过另一个处理电路,或被传送到另一个存储电路。对这些象素块的操作是通过控制包含于视频处理装置内的各个电路的阴影寄存器中的数据而确定的。
在处理步骤[PS]中,在处理数据的同时,图2所示的控制器[MCP]可以将控制数据写入众多的控制寄存器中。它还指示各个寄存器控制器,在接下来的配置步骤[CS]中,应当执行什么操作。由于这些控制数据确定了要执行的数据操作,因此没有修改阴影寄存器内的各个控制数据。在处理期间将控制数据写入前端寄存器的作法,可被看作是为后续处理步骤所作的准备。这意味着,在第n步处理步骤[PS(n)]期间,对数据进行处理的同时,就确定了在后续第(n+1)步处理步骤[PS(n+1)]中执行的数据处理。
在配置步骤[CS]中,可以修改各个阴影寄存器的内容。例如,参见图7所示的控制寄存器[CREG],寄存器控制器[RCNTRL]可以使阴影寄存器[SREG]接收包含于前端寄存器[FREG]的控制数据。寄存器控制器[RCNTRL]也可以将控制数据原样放在阴影寄存器[SREG]内。这样,如果有任何传送的话,则配置步骤[CS]仅仅涉及在各个控制寄存器内的控制数据的这种传送。因此,配置步骤将只需要几个时钟周期。
处理步骤[PS]以及配置步骤[CS]以下述方式,彼此交替执行。让我们假定图2所示的视频处理电路执行一个处理步骤。这通常暗示着各种处理电路对象素块进行处理。已经处理了其象素块的一个处理电路通知图2所示的控制器[MCP],它已经完成了它的任务。当控制器[MCP]接收到来自处于工作状态的每一个处理电路的一个这种就绪信号时,它就启动一个配置步骤。同样,已经如所指示的那样传送了控制数据的一个控制寄存器通知控制器[MCP]它已经完成了自己的工作。这暗示着合适的控制数据已经被调入阴影寄存器。当控制器[MCP]接收到来自其中发生了控制数据的传输的每一个控制寄存器的这样一种配置就绪信号时,它启动一个处理步骤[PS]。
图8显示了视频处理装置的控制器[MCP]。控制器[MCP]包括一个控制处理器[CPU]以及一个控制存储器[CMEM]。控制存储器[CMEM]包括以下项一个内核程序[KRNL]、一个子程序库[SR]、一个调度程序[SCHED]、一个取数据文件[DFF]以及一个任务延续文件[TCF]。控制存储器[CMEM]也可以包括另外一些数据项,例如变量。内核程序[KRNL]以及子程序[SR]包括用于控制处理器[CPU]的指令。调度程序[SCHED]、取数据文件[DFF]以及任务延续文件[TCF]包括子程序地址。
在执行处理步骤[PS]期间,子程序[SR]确定了对数据块的某个操作。例如,图5显示了在第i+1步处理步骤[PS(i+1)]中,从第一滤波单元[XPB1]内的第一SRAM[SRAM1]中读出一个象素块,以便由第一滤波单元[XPB1]内的第一水平滤波器[HFIL1]对其进行处理,经过处理的象素块被写入输出单元[XPC]内的第十二SRAM[SRAM12内]。这样,可以利用一个子程度[SR]来定义这种操作。在视频信号处理方面,一个子程序[SR]与一个视频信号处理链的某个操作有关。
特别是,一个子程序[SR]使得控制处理器[CPU]以这样一种方式,对视频处理装置进行编辑,从而,将会执行所需的操作。这意味着一个子程序[SR]使得控制处理器[CPU]能够将控制数据写入操作中所涉及的电路的控制寄存器[CREG],以及/或移动已经包含在这些控制寄存器内的控制字。这样,这些电路的阴影寄存器[SREG]包括适当的控制数据。
图9显示了调度程序[SCHED]的一部分。调度程序[SCHED]被显示为具有行和列的阵列。图9显示了调度程序[SCHED]的一部分,只有一个第j和第(j+1)行[R(j),R(j+1)],一个第k到(k+7)列[C(k),……,C(k+7)]。所显示的调度程序[SCHED]的这部分涉及图象的一个行周期。每一个单元为所述视频处理装置定义了某个任务。一个任务与包含于主存储器内的数据块相关。任务号0,1,2,3或4定义了涉及何种类型的数据,以及在数据处理以及传输中,视频处理装置应当对这个数据执行什么处理。
例如,任务号1可以涉及用于一个高清晰度图象的亮度象素的数据块。任务号2可以涉及用于同一高清晰度图象的色度象素的数据块。任务号3可以涉及用于标准清晰度图象的亮度象素的数据块。应当依据不同的视频信号处理链,对每个不同的象素块进行处理。任务号4可以涉及用于调度程序[SCHED]的新数据。它包括利用这一新数据对调度程序[SCHED]进行更新。任务号0(零)是一个所谓的空任务。一个空任务与数据块无关,因此,它不会使视频处理装置传送或处理任何数据。
尤其是,定义了非空任务(1,2,3,4)的一个单元包括子程序的一个其始地址。该子程序是使视频处理装置执行所需任务的头一个链路子程序。因而,下文中,其起始地址包含于调度子程序[SCHED]内的一个子程序将被称为第一子程序。链的每一个子程序是在不同的处理步骤中执行的。
利用包含于图8中所示的控制存储器[CMEM]中的项内核程序[KRNL]、取数据文件[DFF]以及任务延续文件[TCF],形成并管理子程序链。这意味着这些项使得控制处理器[CPU]来控制视频处理装置,这样它能正确地执行调度程序[SCHED]中所定义的各种任务。这将在以下进行更详细的说明。
参见图2,第一子程序命令主汇流排接口[MBIF]从主存储器中获取一个相关数据块。另外,第一子程序将第二子程序的一个起始地址写入图8所示的取数据文件[DFF]中。第二子程序使得主汇流排接口[MBIF]将数据块传送到第一和第二滤波单元[XPB1,XPB2]或输出单元[XPC]内的一个存储电路中。这种传输的发生是经由第一还是第二内部总线[XBUS1,XBUS2],取决于第一子程序的起始地址分别位于图9所示的调度子程序[SCHED]的第j行还是第(j+1)行[R(j),R(j+1)]。只有在确定相关的数据块存在于主汇流排接口[MBIF]时,才能执行第二子程序。为此,在一定的延迟之后,执行第二子程序。这个延迟是通过图8所示的控制存储器[CMEM]中的取数据文件[DFF]获取到的。
图10显示了取数据文件[DFF]。取数据文件[DFF]在功能上,可被看作是表现为表格形式的三个寄存器的集合一个初始、一个中间以及一个最终干线获取(highway-fetch)寄存器[HFP0,HFP1以及HFP2]。每个干线获取寄存器[HFP]都与4个连续的处理步骤相对应。特别是,每一行干线获取寄存器[HFP]都与一个处理步骤相对应。
数据获取文件[DFF]的功能运转如下。在第n个处理步骤中,图8所示的控制处理器[CPU]执行图10所示的调度程序[SCHED]的第j和第(j+1)行[R(j),R(j+1)],以及第k列[C(k)]。这些第一子程序会使控制处理器[CPU]将各个第二子程序的起始地址写入初始干线获取寄存器[HFP0]中。在后续第(n+1)步处理步骤中,控制处理器[CPU]执行图10所示的位于调度程序[SCHED]的第j以及第(j+1)行[R(j),R(j+1)],第(k+1)列上的单元中所定义的第一子程序。这些第一子程序将会使控制处理器[CPU]将各个第二子程序的起始地址写入初始干线获取寄存器[HFP0]的第二行内。
在前述段落中所说明的处理一个处理步骤接一个处理步骤地连续执行。因此,在第(n+4)步处理步骤中,初始干线获取寄存器[HFP0]将会被全部添满。这样,在中间干线获取寄存器[HFP1]的内容已经被复制到最终干线获取寄存器[HFP2]之后,初始干线获取寄存器的内容将会被复制到中间干线获取寄存器[HFP1]。实际上,在每4个处理步骤的周期中,干线获取寄存器[HFP]向左移动一个位置。在第(i+5)个处理步骤中,图8所示的控制处理器[CPU]执行了位于图10所示的调度程序[SCHED]的第j以及第(j+1)行[R(j),R(j+1)],第(k+5)列[C(k+5)]上的单元中所定义的第一子程序。由于初始干线获取寄存器[HFP0]已经为空,所以,这些子程序将会令控制处理器[CPU]执行操作,以便将相应的第二子程序的起始地址写入初始干线获取寄存器[HFP0]的第一行内。
图8中所示的控制处理[CPU]读取来自最终干线获取寄存器[HFP2]的相应的第二子程序的其始地址,以便执行这些子程序。尤其是,当控制处理器[CPU]已经将一个第二子程序的起始地址写入初始干线获取寄存器[HFP0]的一个单元内时,它相继读取来自具有同一位置的初始干线获取寄存器[HFP2]的一个第二子程序的起始地址。这样,控制存储器[CPU]将会执行最后提到的第二子程序,该最后提到的第二子程序的起始地址是控制处理器从最终干线获取寄存器[HFP2]中读出的。正如已经解释的那样,在每4个处理步骤的周期中,干线获取寄存器[HFP]向左移动一个位置。
因此,图10所示的取数据文件[DFF]使得在一个任务的第一子程序与该任务的第二子程序之间产生了8个处理步骤的延迟,任务的第一子程序请求来自主存储器的数据,任务的第二子程序是将来自图3所示的主汇流排接口[MBIF]的这一数据传送到同样是图2所示的第一或第二滤波单元[XPB1,XPB2]或输出单元[XPC]。这种延迟考虑了伴随通过主汇流排[HWY]以及主汇流排接口[MBIF]来获取数据所发费的等待时间。在下文中,将对这种等待时间,同时还有主汇流排接口[MBIF]进行更详细的说明。
当图8所示的控制处理器[CPU]已经执行了一个任务的第一和第二子程序时,作为该任务对象的数据块将存在于第一或第二滤波单元或输出单元的一个存储电路中。这样,视频处理装置就预备利用第三或其它子程序处理数据块,或仅仅对其进行传送。这些子程序执行如下。
第二子程序使得图8所示的控制处理器[CPU]能将第三子程序的起始地址写入同样在图8中显示的任务延续文件[TCF]中。这一写入操作是在执行第二子程序的处理步骤中执行的。在后续处理步骤中,控制处理器[CPU]读取第三子程序的起始地址,并执行这一子程序。这使得如果有第四子程序的话,则控制处理器[CPU]会将第四子程序的起始地址写入任务延续文件[TCF]中。在下一个处理步骤中,控制处理器[CPU]读取第四子程序的起始地址,并执行这个子程序。这使得如果有第五子程序的话,则控制处理器[CPU]会将第五子程序的起始地址写入任务延续文件[TCF]中。这种处理过程连续执行,直到该任务的最后一个子程序执行完毕。这就完成了该任务。
参见图8,内核程序[KRNL]是这样一种程序,它使得控制处理器[CPU]能读取调度程序[SCHED]、取数据文件[DFF]以及任务延续文件[TCF]内的子程序的起始地址,并如上文中所述,执行这些子程序。可通过图2所示的流输出电路[SO]内产生的一个中断,来激活内核程序[KRNL]。这种中断表示视频输出流[VIDOUT]已经到达当前帧内的某一点。一帧一般包括在显示一些行之前的消隐行。流输出电路[SO]可以将一个中断提供给控制处理器[CPU],以便例如,当视频输出流[VIDOUT]已经到达倒数第二个消隐行时,激活内核程序[KRNL]。也可以在有关一帧的最后一个象素块的任务结束后,终止所述内核程序[KRNL]。图9所示的调度程序[SCHED]最好包括一个特殊任务,它能恰当地终止所有处理,并将视频处理装置中的电路复位。
图11显示了一系列步骤,从而使内核程序[KRNL]使得控制处理器能在每个处理步骤中执行。当然,我们假定这种内核程序[KRNL]处于运行状态。这一系列步骤包括第一到第五步骤[S1-S5]。
在第一步骤[S1]中,控制处理器读取图9所示的调度程序[SCHED]内的两个单元[RD(SCHED)]。对这两个单元的读取操作,是依据当前处理步骤以及当前行而执行的。参见图9,在每个和某一行有关的处理步骤中,控制处理器将一列向右移动。在每一新行,控制处理器将2行向下移动。可依据处理步骤中某个数目,来定义一行。例如,在图9中,一行包括8个处理步骤。我们已经解释过调度程序[SCHED]的一个单元以子程序链的第一子程序的起始地址的方式,确定了一个任务。这样,在第一步骤[S1]中,控制处理器读取两个第一子程序起始地址,并将这些起始地址写入一个子程序执行文件中。该文件例如可表现为多个寄存器的组合。
在第二步骤[S2]中,控制处理器对最终干线获取寄存器内一行上的两个单元执行读操作[RD(HFP2)]。所读取的两个单元依赖于当前处理步骤。参见图10,在每一个处理步骤中,控制处理器将一行向下移动,直到到达最后一行。这样,下一行将变为最终干线获取寄存器[HFP2]的顶行。我们已经解释过最终干线获取寄存器[HFP2]包含一个任务中的第二子程序的起始地址。这样,在第二步骤[S2]中,控制处理器读取两个第二子程序起始地址,并将这些起始地址写入子程序执行文件。
在第三步骤[S3]中,控制处理器读取图2所示的流输出电路[SO]内的一个指针。该指针表示一个缓冲区的填充度,在该缓冲区内,存储有在以视频输出流[VIDOUT]的形式被输出之前,被暂时存储的经过处理的象素。可以说,这个指针告诉控制处理器[CPU]数据流电路[SO]是否需要经过进一步处理的象素。
在第四步骤[S4]中,控制处理器读出包含于图8的任务延续文件[TCF]内的起始地址。这些起始地址涉及任务内的第三和其它子程序。这意味着任务延续文件[TCF]包含子程序的起始地址,而不是任务的第一和第二子程序。控制处理器将从任务延续文件[TCF]中读出的起始地址,写入子程序执行文件。
在第五步骤[S5]中,控制处理器连续读取包含于子程序执行文件内的起始地址。作为响应,控制处理器连续执行与这些起始地址相符的子程序。这样,就可以说,对于每个处理步骤来说,在第一到第四步骤[S1-S4]中,控制处理器制作了所要执行的子程序的清单,在第五步骤[S5]中,它实际执行了这些子程序。
内核程序[KRNL]的以下方面没有在图10中示出。原则上,与流输出电路[SO]以视频输出流[VIDOUT]的形式输出的象素相比,图2所示的视频处理装置对连续的象素块进行的处理要快一些。这样,视频处理装置应当时常中断其处理,以便防止流输出电路[SO]中的溢出。可以通过暂时使内核程序[KRNL]不工作,而使视频处理装置中断其处理。
内核程序[KRNL]包括以下特征,用于防止图2所示的视频处理装置相对于视频输出流[VIDOUT]来说,超前太多。在每4个处理步骤的周期之后,内核程序[KRNL]使得图8所示的控制处理器[CPU]对流输出电路[SO]内的一个寄存器执行读操作,该寄存器的内容指示了将要输出的当前象素的位置。这样,该寄存器指示出视频处理装置中的处理相对于视频输出流[VIDOUT]来说,是否超前太多。如果视频处理装置超前太多,则使内核程序[KRNL]停止一定时间段的工作。
图12显示了图2所示的视频处理装置的主汇流排接口[MBIF]。它包括两个缓冲存储器一个第一以及一个第二缓冲存储器[IRAM1,IRAM2],每一个缓冲存储器都具有2KB容量。每一个缓冲存储器[IRAM]被分割为8个块第一到第八块[B1,……,B8],每一个块都具有256字节的容量。
主汇流排接口[MBIF]的基本操作如下。在每4个处理步骤的周期中,缓冲存储器[IRAM]交替地与主汇流排[HWY]以及内部总线[XBUS]相耦合。这意味着在4个连续的处理步骤的周期中,第一缓冲存储器[IRAM1]与主汇流排[HWY]相连,而第二缓冲存储器[IRAM2]与内部总线[XBUS]相连。这种情况在图12中有所展示。反向应用加在后续的4个处理步骤的周期上第二缓冲存储器[IRAM2]与主汇流排[HWY]相连,而第一缓冲存储器[IRAM1]与内部总线[XBUS]相连。与主汇流排[HWY]相连的、用于4个连续处理步骤的一个给定周期的缓冲存储器[IRAM1/IRAM2],用于接收来自外部主存储器的数据。同时,与内部总线[XBUS]相连的其它缓冲存储器[IRAM2/IRAM1],用于将所接收到的来自主存储器的数据传送到第一或第二滤波单元或是输出单元。这样,缓冲存储器[IRAM]随着不同的由4个连续处理步骤形成的每个周期,而改变任务。
数据从主存储器传送到第一或第二滤波单元或是输出单元需要花费3个由4个连续处理步骤所需的周期。在第一周期中,控制器请求主汇流排[MBIF]从主存储器中获取数据。在第二周期中,数据被从主存储器传送到与主汇流排[HWY]相连的缓冲存储器[IRAM1/IRAM2]。在第三周期中,同一个缓冲存储器[IRAM1/IRAM2]与内部总线[XBUS]相连,数据从该缓冲存储器[IRAM1/IRAM2]传送到第一或第二滤波单元或是输出单元。应当注意,存在取数据文件的一个对应。上文中所说明的第一、第二以及第三周期分别与初始取数据寄存器[HPF0]、中间取数据寄存器[HFP1]以及最终取数据寄存器[HFP2]相对应,这些寄存器显示于图10中。
主汇流排接口[MBIF]以下述方式存储存储数据。一个缓冲存储器[IRAM]与4个连续处理步骤组成的一个周期相应。在该周期的第一处理步骤中,在第一和第二单元[B1,B2]中,主汇流排接口[MBIF]对将要从缓冲存储器[IRAM]传送到第一或第二滤波单元或输出单元的数据进行存储。特别是,它将要通过第一内部总线[XBUS1]进行传送的数据存储在第一单元[B1]内,将要通过第二内部总线[XBUS2]进行传送的数据存储在第二单元[B2]内。在相关周期的第二处理步骤中,将要通过第一和第二内部总线[XBUS1,XBUS2]进行传送的数据分别存储在第三以及第四单元[B3,B4]中,诸如此类。
简而言之,在一个包含4个处理步骤的周期中,第一和第二单元[B1,B2]、第三以及第四单元[B3,B4]、第五和第六单元[B5,B6]以及第七和第八单元[B7,B8]分别与第一、第二、第三和第四处理步骤相对应。具有奇数号码的单元包含有将要通过第一内部总线[XBUS1]进行传送的数据。具有偶数号码的单元包含有将要通过第二内部总线[XBUS2]进行传送的数据。因此,图9所示的调度程序[SCHED]的每一个单元都与缓冲存储器[IRAM]内的一个特定的单元[B]相关。由于调度程序[SCHED]的一个单元确定了由视频处理电路所处理的特定的数据块,因而这种做法就预先确定了该数据块将会存储在主汇流排接口[MBIF]中的哪一处。
可以用以下方式,将图8所示的调度程序[SCHED]写入控制器[MCP]的控制存储器[CMEM]中。图9所示的调度程序[SCHED]可以包括定义用于更新调度程序[SCHED]的一个任务的一个或多个单元。我们已经提到过,图9中所示的任务号可以与用于调度程序[SCHED]的新数据有关。任务号4将会使视频处理装置从主存储器中读出一个数据块,并将该数据块从主存储器传送到控制存储器[CMEM],其中,上述数据块定义了调度程序[SCHED]的一个新部分。
主存储器可以包括压缩形式的调度程序。原则上,可以使用任何数据压缩技术,对包含于调度程序内的数据进行压缩。例如,图9所示的调度程序[SCHED]的部分包括含有任务号1的一系列的后续单元。因此,可以通过指出含有任务号1的单元序列,而不是分别为每个单元定义一个任务号1,从而,可以对调度程序[SCHED]进行压缩。可对图8所示的控制处理器[CPU]进行编程,以便对以压缩形式定义了调度程序的一个新部分的数据块进行解压缩。这样,图9所示的任务号4不仅会使定义了调度程序的一个新部分的数据块被从主存储器中读出。它还会使该数据块被接压缩,之后被加入到调度程序中。
可以物理实现图2所示的视频处理装置,之后,可以以下述方式使其执行操作。在第一步骤中,视频处理装置是以例如是包含图3所示的各个单元的集成电路的形式制造的。
在第二步骤中,各个控制软件项被调入图8所示的控制存储器[CMEM]中。内核程序[KRNL]以及子程序[SR]都是这种控制软件项的例子。其它的控制软件项例如可以是一个初始化程序,该初始化程序使得调度程序[SCHED]的第一部分被调入控制存储器[CMEM]。初始化程序还可以创建取数据文件[DFF]以及任务延续文件[TCF]的轮廓,这种创建例如可以通过为这些项定义合适的存储范围来实现。被调入控制存储器[CMEM]的控制软件项可包含于一个数据载体中,这种载体例如可以是一张盘或非易失性存储器。可通过象互联网这样的一个通信网,从这样一种数据载体中搜索到这种控制软件项。
在第三步骤中,一个或多个调度程序[SCHED]被调入一个存储器,该存储器通过主汇流排[HWY],与图3所示的视频处理装置相连。调度程序[SCHED]是一组程序软件项。已经被调入到控制存储器[CMEM]中的控制软件项,允许控制器[MCP]执行包含于该调度程序[SCHED]内的软件项。控制器[MCP]将读出调度程序[SCHED],并执行包含于其中的程序项。当程序软件项执行时,程序软件项使得视频处理装置能获取并处理某个数据块。因此,视频处理装置将会连续处理数据块。这些数据块可以包含于存储所述调度程序[SCHED]的存储器中,或是存储于不同的存储器中。已经调入与主汇流排[HWY]相连的存储器内的调度程序[SCHED]可以包含于一个数据载体中,这种数据载体例如可以是一张盘或一个非易失性存储器。可通过诸如象互联网这样的一个通信网络,从这样一种数据载体中检索到调度程序[SCHED]。
图12所示的以及参照图3到图12作了进一步说明的视频处理装置是实现图1所示的基本特征的一个例子。图1所示的程序项[PI]表现为包含于图9所示的调度程序[SCHED]内的数据。已经参照图9到图12进行了说明,即控制器[MCP]执行调度程序[SCHED]。我们还说明了程序项的执行,使得图2所示的视频处理装置获取并处理一个数据块。图1所示的接口表现为图12所示的主汇流排[MBIF]的形式。主汇流排[MBIF]包括两个缓冲存储器[IRAM1,IRAM2]。每一个缓冲存储器被分为八块[B1-B8]。因此,图1所示的存储部分[MS]表现为图12所示的一个块[B]。主汇流排接口[MBIF]暂时将一个数据块存储到众多块[B]中的一个块内。其中存储有数据块的块[B]是由所述调度程序[SCHED]内的数据位置定义的,其中的调度程序已经使得数据块被获取到,以便进行处理。
上文中的附图以及它们的说明并不仅是对本发明的限制。很明显有很多选择,这些选择都可以落入附加权利要求书的范围内。有关这一点,写了以下结束之前的评述。
利用硬件或软件项,可以有许多种方法实现这些功能。在这一点上,附图是非常概略的,每一张图仅表示本发明的一种可能的实施例。这样,尽管附图将不同的功能显示为不同的单元,但绝不排除单独一个硬件或软件项实现几种功能。也不排除硬件的集合或软件项的集合或是这两者的集合实现一种功能。
不应当将权利要求中的任何参考号解释为对权利要求的限制。动词“包括”的使用不排除除了在一项权利要求所定义的那些部件和步骤外,还有其它的部件和步骤存在。在一个部件或步骤之前的不定冠词“一个(a)”或“一个(an)”并不排除存在若干这种部件或步骤。
权利要求
1.用于处理不同类型数据[I,II,III]的一种数据处理装置[DPA],其特征在于所述数据处理装置[DPA]包括—一个控制器[MCP],用于执行一组程序项[PI],一个程序项使得数据处理装置[DPA]能获取并处理[F&PR]某种类型[I,II,III]的一个数据块[DB];以及—一个接口[INT],用于暂时将一个数据块[DB]存储到若干存储部分[MS]内的一个存储部分中,存储有该数据块[DB]的存储部分是由一个位置定义的,在该位置,用于这个数据块[DB]的程序项[PI]已经位于这组程序项内。
2.对用于处理不同类型数据[I,II,III]的数据处理装置[DPA]进行配置的一种方法,所述方法包括—一个配置步骤,在该步骤中,对控制器[MCP]进行编程,以便以这样一种方式执行一组程序项[PI],即响应一个程序项[PI],控制器[MCP]使得该数据处理装置[DPA]能获取并处理[F&PR]某种类型[I,II,III]的一个数据块[DB],其结果,所述数据块[DB]被暂时存储在若干存储部分[MS]的一个中,其中存储有所述数据块[DB]的存储部分[MS]是由这样一个位置定义的,在这个位置中,用于该数据块[DB]的程序项[PI]已经位于该组程序项内。
3.用于包含一个控制器[MCP]的数据处理装置[DPA]的一种计算机程序产品,所述计算机产品包括一组指令,其中,当这些指令被调入所述控制器[MCP]使,这些指令允许控制器[MCP]以这样一种方式执行一组程序项[PI]响应一个程序项[PI],控制器[MCP]使得数据处理装置[DPA]获取并处理某种类型[I,II,III]的一个数据块[DB],其结果,所述数据块[DB]被暂时存储在若干存储部分[MS]的一个中,其中存储有所述数据块[DB]的所述存储部分[MS]是由这样一个位置定义的,在该位置中,用于所述数据块[DB]的所述程序项[PI]已经位于该组程序项内。
4.用于一种数据处理装置[DPA]的一种计算机程序产品,所述计算机程序产品包括一组程序项[PI],当执行一个程序项[PI]时,该程序项使得数据处理装置[DPA]获取并处理[F&PR]某种类型[I,II,III]的数据块[DB],其结果,该数据块[DB]被暂时存储在若干存储部分[MS]的一个中,其中存储有所述数据块[DB]的存储部分[MS]是由这样一个位置定义的,在该位置上,用于所述数据块[DB]的所述程序项[PI]已经位于该组程序项内。
5.如权利要求4所述的一种计算机程序产品,所述计算机程序产品包括一个程序项[PI],当执行该程序项时,它使得所述数据处理装置[DPA]将该组程序项[PI]的一个新部分写入一个内部控制存储器[CMEM]。
全文摘要
能够处理诸如象众多图象的亮度(Y)以及色度(UV)这样的不同类型数据[I,II,III]的一种数据处理装置[DPA]。数据处理装置[DPA]包括一种控制器[MCP],用于执行一组程序项[PI]。程序项[PI]使得,数据处理装置[DPA]能够获取某种类型[I,II,III]的数据块[DB],并对其进行处理[F&PR]。数据处理装置[DPA]还包括一个接口[INT],用于将一个数据块[DB]暂时存储到若干存储部件[MS]之一中。其中存储有数据块[DB]的存储部件是由这样一种位置确定的,所述位置使得,用于该数据块[DB]的程序项[PI]已经处于所述一组程序项内。
文档编号H04N5/14GK1386245SQ01802113
公开日2002年12月18日 申请日期2001年4月26日 优先权日2000年5月30日
发明者B·布鲁 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1