图象内的复杂预处理系统的制作方法

文档序号:7961834阅读:166来源:国知局
专利名称:图象内的复杂预处理系统的制作方法
技术领域
本公开通常涉及视频处理,更具体地,涉及用于处理视频图象的变量。
背景技术
视频处理技术运用于一连串单个的图象之上,其当连续显示时表示移动的视频。通常可取的是,压缩原始图象以减少表示构成视频的一连串单个图象所需的数据量。通常的压缩技术是采用基于块的DCT(离散余弦变换)方法从源图象中去除掉空间冗余。所述基于块的DCT方法能够压缩图象帧数据或图象域数据以便优化源图象的压缩。因此,用于改善源图象优化的系统和方法将是有用的。


通过参照相应附图,本公开可以被更好地理解,并且它的大量的特征和优势对本领域的技术人员来说也变得明显。
图1是表示根据本公开的系统的框图。
图2和4是根据本公开的特定实施例的管道的特定实施例。
图3说明了根据本公开的特定实施例的与宏模块相关的八个块。
图5和6在框图表中说明了根据本公开的特定实施例的图2和4管道的变量计算模块的特定实施。
图7和8说明了根据本公开的特定实施例的方法。
在不同附图中的相同参考符号的使用表示相似或相同的对象。
具体实施例方式
确定和存储DCT类型指示器的系统和方法被公开。特别地,为一宏模块确定多个变量,并且使用这些变量去确定所述宏模块的帧或域压缩是否应该被执行。参照图1至7,本公开将被更好地理解。
图1说明了根据本公开的特定实施例的系统100。系统100表示具有多个模块的视频处理系统,包括视频输入110、视频管道120、视频压缩器130、存储控制器140、控制器150和存储器160。
这里广泛使用术语“端口”指的是与系统或系统的部分的功能相关连接。例如,术语端口可以指与系统的特定部分相关的一种或多种输入连接、一种或多种输出连接和一种或多种双向连接。需要理解的是,在图中各组成部分之间的特定端口类型是解释性的,不必将连接局限于特定端口类型,或者暗示不同端口的存在。例如,被解释为具有用“入”箭头表示的输入端口和用“出”箭头表示的输出端口的特定模块,在实际实施中可以具有一单个的双向端口。
视频输入110具有一端口来接收视频数据SOURCE VIDEO(源视频),并且被连接到存储控制器变量计算器140和控制器150。视频管道120被连接至存储控制器140和控制器150。视频压缩器130被连接至存储控制器140和控制器150。存储控制器140另外被连接至控制器150和存储器160。
在操作中,表示视频流的多个原始图象的SOURCE VIDEO(源视频)在视频输入110上被接收到。提供所述原始图象给视频管道120,该管道为视频压缩准备图象。视频管道120的特定模块240将被解释,并且其表示用于确定图象中的变量的管道分段模块。视频压缩器130基于来自变量计算器240的变量信息,接收和压缩来自视频管道120的预处理图象。在说明的实施例中,数据在模块110、120和130之间通过存储控制器140而传送,导致了从向存储器160请求数据到数据在所述模块上可用之间的延迟期。
处理效率通过在视频管道120中计算图象变量信息来实现,原因在于对存储器160的单独存取能够被用于支持在视频管道120中的多个预压缩阶段,包括变量计算器240阶段。这里所描述的使用单独存取的能力减少了在存储控制器140和存储器160之间,以及存储控制器140和它的客户之间的数据带宽的需要。视频管道120的特定实施例在图2中被说明。
图2说明了视频管道120的特定实施例,包括缩放器210、噪音减少过滤器220、变量计算器240和DCT类型选择器250。一种或多种连接,例如由202、212、222、242和243所表示的连接,能够被用于执行流经视频管道120的一种或多种数据流选择。例如,所有的数据可以顺序地从缩放器210流到噪音减少过滤器220,到变量计算器240和到DCT类型选择器250。在另一实施例中,数据可以选择性地,例如通过使用寄存器(没有被显示),分流缩放器210和噪音减少过滤器220之一或全部,正如连接202所表示的那样。
在操作中,在图2中的视频管道120上从存储器160接收源视频图象。典型地,源图象作为仅表示一部分源图象的数据组被接收在,并且被操作在视频管道120中。例如,所述部分可以是源图象的特定模块。在一个实施例中,所述特定模块可以是一种或多种宏模块。注意,这里所使用的术语宏模块在特定的环境中参照一种或多种MPEG规范而被理解,例如目前可用的被称作MPEG1、MPEG2和MPEG4的MPEG的各种MPEG标准的版本,全部这些对于本领域的技术人员而言是很容易知晓的。然而,需要理解的是,在这里本公开中的特定环境的使用是为了说明的目的,并且扩展到处理视频信息的其他基于块的环境。
在视频管道120中的源图象信息的目的地可以是一段(stage)或多段,包括缩放器210、噪音减少过滤器220和变量计算器240,如连接202所指示的。在视频管道120中的源视频图象的目的地可以是固定的或随着设计而变化的。例如,系统100可以被设计为唯一提供源图象数据给缩放器210。可选地,系统100可以提供给寄存器(没有被说明),允许源数据被提供给一个或多个视频管道120的若干段。例如,源数据可以被提供给缩放器210、噪音减少过滤器220和基于存储在寄存器位置中的值的变量计算器240之一。
正如所说明的那样,缩放器210能够接收原始源图象数据,例如从MC140的标为MB的存储器160的宏模块。缩放器210是一种能够在垂直和/或水平尺寸上缩放源图象的缩放器。来自缩放器210的被缩放图象,作为源图象的表示,能够被提供给一个或多个视频管道120的段,并且通过存储控制器140提供给存储器160。来自缩放器210的被缩放的图象是否被提供给存储器160和视频管道120段,例如噪音减少过滤器220,和变量计算器240,能够被固定或者随着设计而变化。
例如,系统100能够被设计为总是提供被缩放后的图象数据给一个或多个目的地。例如,这些被缩放的图象数据总是能够被提供给噪音减少过滤器220,或者总是被提供给噪音减少过滤器220和存储器160。在另一实施例中,系统100能够提供给寄存器(没有被说明),以便允许提供被缩放数据给视频管道120的若干段的一个或多个。例如,被缩放的数据能够被提供给噪音减少过滤器220,以及基于寄存器值的变量计算器240之一,并被提供给基于不同寄存器值的存储器160。
噪音减少过滤器220接收图象数据,例如来自存储器160的被标为MB的宏模块或者来自缩放器210的被缩放数据。噪音减少过滤器220过滤接收到的图象数据,并且在连接222上提供被过滤的图象数据。来自噪音减少过滤器220的被过滤的图象数据能够被提供给视频管道120的一段或多段(提供过滤数据给不止一段的能力没有被具体地示出),以及存储器160。来自噪音减少过滤器220的被过滤图象是否被提供给一个或多个存储器160和视频管道120段,诸如变量计算器240,可以是固定的或者随着设计而改变,以一种相对于缩放器210或噪音减少过滤器220的讨论相似的方式。
变量计算器240接收图象数据,诸如来自存储器160的被标为MB的宏模块,来自缩放器210的被缩放数据,或者来自噪音减少过滤器220的被过滤数据,并且为接收到的图象数据确定变量信息。在一实施例中,为8×8的亮度数据块计算变量信息。然而,为了效率的目的,这种计算可以在一个宏模块的基础上被执行。
16×16的宏模块包含了四个域模块和四个帧模块。图3为宏模块310说明了四个帧模块和四个域模块。帧模块1包扩宏模块310的最上面和最左面的64象素。帧模块2包括宏模块310的最上面和最右面的64象素。帧模块3包括宏模块310的最下面和最左面的64象素。帧模块4包括宏模块310的最下面和最右面的64象素。顶部域模块5和6在图3B中被说明,其中域模块5和6分别包括宏模块310的左半部分和右半部分的顶部区域(图3A中的非阴影象素线)。底部域模块7和8在图3C中被说明,其中域模块7和8分别包括宏模块310的左半部分和右半部分的底部区域(图3A中的阴影象素线)。一个或多个这样的八变量计算能够被提供给存储器160以供后用,正如由连接243和连接242所说明的那样。依照本公开的特定实施例,将为每一个八模块计算表示变量信息的值。
DCT类型的选择器250基于在变量计算器240上所计算得出的变量信息为每个宏摸块确定DCT类型。在一个实施例中,当宏模块的帧变量的总数少于所述宏模块的域变量总数时,DCT类型选择器250为每一个宏模块提供帧DCT指示器。相似地,当宏模块的域变量总数少于所述宏模块的帧变量的总数时,DCT类型选择器250为宏模块提供域DCT指示器。通过基于最低的总的帧或者域变量为一宏模块选择DCT类型,并且基于被计算出的DCT类型在视频压缩器130上压缩所述宏模块,这已经显示出获得了被改善的整体压缩。
图4说明了视频管道120的可替换实施例。与先前被描述的那些部件类似的部件被同样地编号。在图4的实施例中,所述在变量计算器240上为每一个宏模块所计算出的八模块变量值被提供给了变量选择280和DCT类型选择290。
变量选择280选择八模块变量值的最小的变量,并且提供所述值或者是所述值的舍位的或舍入的表示到变量选择280的输出。在一个实施例中,由变量计算器240所计算出的变量是16位的值,并且由变量选择280所输出的变量值是15位的值。
DCT类型选择290以一种与前面所描述的相似的方式,基于多个变量来确定1位的DCT类型指示器。
在图4所说明的实施例中,所述1位的DCT类型指示器与所述变量值相结合,被解释为15位变量(σ2),以便形成能够在存储器160中存储的数据字。以这样的方式,变量和DCT类型数据都能够以单独写的方式而被存储,因此所需的带宽少于如果DCT类型数据和变量数据被分别存储时所需要的。
由变量计算器240所计算的变量为宏模块测量空间活动性。所述宏模块j的空间活动性(actj),如变量,从图3的四个亮度,帧-组织模块1-4中计算出,并且图3的四个亮度,域-组织模块5-8如方程式1所示。注意,如果所述宏模块是循序图象的一部分,那么所述域变量可以被忽略。
actj=1+min(vblk1,vblk2,...,vblk8)方程式1这里,vblk1-vblk8是宏模块j的八个模块的变量。在特定实施例中,变量vblk1-vblk8是由方程式2所确定的变量。
vblkn=164×Σk=164(Pkn-Pmeann)2]]>方程式2这里,n代表八个模块中的一个,k代表模块n中的64象素中的一个,Pk表示第k个象素的值,并且Pmeann是模块n的64象素的平均值。
在一个实施例中,在宏模块基础上的8×8模块的亮度数据上计算出变量。16×16宏模块将包含四个变量值和四个域变量值。在另一实施例中,尽管其他的方法能够被用于确定MB的变量,但是可以为八个变量中的最小变量选择另外两个作为MB的变量。所得的变量将被写入存储器,作为给定宏模块j的16位值(15位变量和1位DCT)。
如果在所述帧上执行垂直缩放,那么将仅仅只有4个变量计算而不是8个。变量数目的这种减少导致了在执行垂直缩放时会丢失顶部域或者底部域。然而,在系统100的特定实施例中,由于变量在整个的16×16宏模块上计算出,所以仍然具有四个变量值。这导致了16个偶域线条(2、4、6、…、32),或者16个奇域线条(1、3、5、…、31)。
在一个实施例中,所有被选择的变量为整体图象而累加,并且接着按照部分的速率控制算法而被标准化。这种标准化在帧的末端通过用所述帧中的宏模块总数去除变量的总和而执行。
在一个实施例中,为模块所计算出的变量是它的变量。所采用的变量算法能够如下所示被简化和约掉。首先,仅仅在8位的Y部件输出上进行变量计算,如在来自NRF的输出上。变量(σ2)通过执行下述的在8×8模块上的64个部件上的累加而被确定1、初始化s=s2=0;2、就每个Y部件(总共64)使v=YCURRENT;s=s+v;s2=s2+v*v;
3、在接收了所有的64个部件以后o2=s2-(s*s)/64图5说明了用于确定s和s2的特定集成电路的引入。特别地,每个到变量模块的输入,Y(亮度)部件,将以同样的方式在其上被操作。因此,为了减少集成电路的面积,采用相同的模块为每个亮度部件计算s和s2。这种计算在8象素的单独线条上被执行,并且每个象素是从NRF或者VS输入的8位的无符号值。每个被说明的累加器部分在接收到一组8象素(1/2宏模块线条)后被重置。一旦两个中间变量s和s2被计算出,那么它们将被传递给图6的变量的可变累加模块。
图6的可变累加模块累加了8组s和s2变量,通过运用上述步骤3的方程式,它们将被用于计算每个亮度模块的变量(σ2)。
为了减少集成电路的面积,所述可变累加模块的算法功能将在8个亮度模块之间共享。所说明的特定的执行具有一个算术数据通路,它将两次被用作例示,以便产生这样的事实,即每一半MB线条将被需要用于两次变量域计算。因此,就任何给定的一半MB线条而言,具有两个对变量s和s2组的累加。
在系统100的一个实施例中,噪音减少过滤器220或者缩放器210处理全部64象素。这些64象素不能够代表来自单独宏模块的象素。相反地,他们对应于那些跨接四个水平地邻近的宏模块的象素的线条。因此,在图6的两个累加路径的每一个中,存在包含用于累加四个可能的MB的s和s2变量的16个累加寄存器的最大值的MUX部分。
变量是通过采用最后的s和s2变量值为给定的8×8数据模块计算出的。因此,图6的电路的两个相同的例示能够被用于产生所有的8个可能的变量。最后的变量的值将被舍位(truncate)为15位的结果,而不是软件所期待的真正的16位的结果。这种位减少对于促进连续变量信息数据模块的写入是必要的,该模块包含了最后的MB变量和DCT类型。
在一个实施例中,变量计算器240也负责确定平均帧变量。这种平均变量仅仅是用所述帧中的MB数目去除所述帧的所有MB变量的和。
然而,硬件中的由非恒定除数所进行的除法不是一项普通的执行。因此,软件提供了标准化的乘法因子1/n,以便促进平均变量计算的执行。
图7说明了根据本公开的特定实施例的方法。在步骤501,接收表示将被压缩的视频图象的第一部分的第一组数据。至于图2,第一组数据可以是一个或多个在变量计算器240上接收到的宏模块。所述第一数据组能够基于用户的选择从多个管道段之一接收到。
在步骤502,确定基于第一组数据的第一多个变量值。例如,可以确定8个变量值,每个对应每个帧和域亮度模块。
一个或多个在502上被计算出的变量值在步骤503可以存储在存储器中。502的执行,其存储可以是基于用户选择而有条件的进行。数据通路520指示步骤504可以独立于步骤503而被执行。
在步骤504,DCT类型,它控制第一组数据的压缩,将基于第一多个变量值而被确定。例如,当所述域变量具有比所述帧变量低的总和时,所述DCT类型将被设置为域DCT。同样地,当所述帧变量具有比所述域变量低的总和时,所述DCT类型将被设置为帧DCT。
步骤505和506能够选择性地执行,并且彼此独立。在步骤506,DCT类型的指示器和至少一个变量值将被提供给存储器,同时作为普通数据写的一部分。
在步骤505,DCT类型指示器被存储到存储器中。视频压缩器130使用DCT类型指示器去控制与所述DCT类型相关的宏模块是否被作为帧或者域数据而被压缩。
图8说明了根据本公开的另一方法。特别地,在步骤601,多个来自存储器的视频宏模块在第一时间阶段中被接收到。
在步骤602,多个视频宏模块在第一段管道上被处理,以便生成多个第一被修改的数据模块。例如,所述第一被修改的数据模块可以是来自缩放器段的被缩放数据或者是来自所述管道的数据过滤段的被过滤数据。
在步骤603,多个第一被修改的宏模块在所述管道的第二段上被处理,以便为每个第三时间段里的宏模块确定多个变量值。
在前面详细的描述中,参考了形成本文一部分的附图,并且在其中通过一种说明本发明可以实现的特定实施例的方式示出。这些实施例和其某个变量,已经作出充分详细地描述,以便能够使得本领域的技术人员实施该发明。需要理解的是,其它适宜的实施例可以被采用,并且那些逻辑和电子的改变可以在不脱离本发明精神或范围的情况下作出。另外,值得注意的是,图中所示的功能模块能够在不脱离本发明精神或范围的情况下被进一步地合并或是分割。因此,之前的详细描述不是为了限制这里所提出的特定的形式,相反地,它是为了覆盖所有合理包括在所附权利要求的精神和范围内的的选择、修改和等效替换。
权利要求
1.一种方法,包括接收表示要被压缩的视频图象的第一部分的第一组数据;确定第一多个变量值,其中每个变量值基于第一组数据的相应子集;和基于所述第一多个变量值确定DCT类型。
2.如权利要求1的方法,其中基于多个变量值确定DCT类型包括基于多个变量值中的第一变量值和所述第一多个变量值中的第二变量值之间的比较来确定所述DCT类型。
3.如权利要求1的方法,其中第一多个变量值包括基于第一组数据的第一子集的一个帧变量值和基于第一组数据的第二子集的一个域变量值。
4.如权利要求1的方法,其中第一多个变量值包括基于第一组数据的第一子集的一个第一域变量值和基于第一组数据的第二子集的一个第二域变量值。
5.如权利要1的方法,进一步包括提供至少一个将被存储到存储器中的变量值,所述至少一个变量值基于所述多个变量值中的至少一个。
6.如权利要求5的方法,其中至少一个变量值是无符号的,并且由奇数的位表示。
7.如权利要求6的方法,进一步包括提供一个将被存储到存储器的DCT类型的指示器。
8.如权利要求7的方法,其中DCT类型的指示器和至少一个变量值被同时存储。
9.如权利要求7的方法,其中DCT类型的指示器和一个变量值被存储到一个公用数据字中。
10.如权利要求1的方法,其中接收第一组数据包括在管道的第一段上从所述管道的第二段接收第一组数据。
11.如权利要求10的方法,其中所述管道的第二段包括视频缩放器。
12.如权利要求10的方法,其中所述管道的第二段包括噪音减少过滤器。
13.权利要求10的方法,进一步包括,识别所述管道的第二段作为所述管道第三段和所述管道第四段中的一个。
14.如权利要求13的方法,其中识别第二段进一步包括从存储器单元读取一个值以识别第二段。
15.一种方法,包括在第一时间段,从存储器接收多个视频宏模块;在第二时间段,在管道的第一段上处理多个视频宏模块,以便产生多个第一被修改的宏模块;在第三时间段,在所述管道的第二段上处理多个第一被修改的宏模块,以便为每个宏模块确定多个变量。
16.如权利要求15的方法,其中在所述管道的第一段上对多个视频宏模块的处理是在N个宏模块上操作的,其中N是大于1的正整数。
17.一种系统,包括管道的第一段,包括用于接收表示视频图象的一部分的第一组数据的一个输入,和用于提供表示基于第一组数据的视频图像的一部分的第二组数据的一个输出;和所述管道的第二段,包括连接到第一段的输出来接收第二组数据的输入,和输出,所述管道的第二段包括第一部分,用于确定第二组数据的一个或多个域变量值;和第二部分,用于确定第二组数据的一个或多个帧变量值。
18.如权利要求17的系统,其中第一部分基于第二组数据确定多个域变量值,并且第二部分基于第二组数据确定多个帧变量值。
19.权利要求18的系统,进一步包括连接到第一模块和第二模块的第三部分,用于接收变量值,并且提供指示器用于控制第二组数据的压缩。
20.权利要求17的系统,进一步包括存储器,包括用于提供表示视频图象的一部分的第三组数据给所述管道的输出,其中第一组数据是与第三组数据相同或者表示第三组数据的一组数据。
21.如权利要求20的系统,其中第一模块的输出与存储器连接,以便提供第二组数据给存储器的输入。
22.一种系统,包括能够同时传送N位信息的存储器;与所述存储器连接的处理模块,用于接收表示视频图象的一部分的视频信息,并且提供表示基于视频图象的一部分的变量计算的X位值,和指示将被运用到视频图象的一部分的压缩类型的Y位值,其中X、Y和N是整数,并且X和Y的总和小于或等于N。
23.如权利要求22的系统,其中处理模块进一步提供Y位值,其中Y位值是一个1位值。
24.如权利要求22的系统,其中存储器能够同时传送16位或更多位的信息。
全文摘要
公开了一种包括变量计算部分的具有视频管道的系统。所述变量计算部分为宏模块计算多个变量值。用于所述宏模块的DCT类型指示器将基于多个变量值而被确定。
文档编号H04N7/26GK1893651SQ20061008400
公开日2007年1月10日 申请日期2006年2月8日 优先权日2005年2月8日
发明者曾志华 申请人:Vixs系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1