数据处理设备的制作方法

文档序号:6656108阅读:144来源:国知局
专利名称:数据处理设备的制作方法
技术领域
本发明涉及可编程数据处理设备,并且特别涉及具有用于处理诸如视频数据的数据的位平面提取操作的可编程数据处理设备。
背景技术
在视频域中,像素通常由一个或几个数据字节表示。例如,在MPEG视频编码的默认格式中,通过将像素的亮度分量保存为一个字节来存储像素。该象素的色度部分被存储为两个字节,但是这些值同时被几个像素共享。如果考虑亮度部分,例如,该字节由8个单独位组成,并且被称为“位平面”。
MPEG视频编码的主要部分包括运动估计,当在位平面的基础上进行计算时能够很方便地计算运动估计。“绝对差求和”运算,在位平面基础上执行时,只涉及异或运算,之后对结果值的位数计数,后者在DSP处理器中通常被支持作为单个指令。在预处理步骤中,必须从视频流中提取位平面。这样的预处理步骤可能涉及,例如从包含4个压缩字节的32位值中的每个字节提取一个特定位。为了执行位平面提取,软件中的操作涉及以下操作(伪C语言所示)以获得一个4位结果值r。
结果,r=bpext(x,y)其中,x=包含4个压缩字节的32位值y=表示要提取的位的0到7之间的整数值位平面提取操作可以包括以下操作unsigned bpext_big(unsigned x,unsigned y){unsigned t0=x>>y;return(t0&0x00000001)|((t0&0x00000100)>>7)|((t0&0x00010000)>>14)|
((t0&0x01000000)>>21);}现在将参考图1更详细地说明上面所示的位平面提取操作。首先,在步骤101,将值x移动y个位置(也就是说“y”是表示要提取的位的数值),以使要提取的位都在相同的位置。然后,在步骤103,使用AND运算提取一位(例如,用t0&0x00000001提取第一位)。步骤105到107重复该步骤,从其它每个字节中提取相关位,直到提取了第n位(在这个例子中“n”是4)。在步骤109,将提取的位移动到目标位位置(对应于最后结果中所述位的最终位置),并且在步骤111中或(Or)到一起。
像素数据可以设置为“大端(big endian)”或“小端(little endian)”格式。在大端格式中,字节被设置为最高有效字节在前,而在小端格式中字节被设置为最低有效字节在前。因此,取决于像素数据的升降序性(endianness),或者其它原因,可能需要反转得到的位。
下面示出了如何反转位的实施方式实例unsigned bpext_reverse(unsigned x,unsigned y){unsigned r=bpext(x,y);return((r&1)<<3)|((r&2)<<1)|((r&4)>>1)|((r&8)>>3);}上面所示的指令选择各个位并且将它们移动到反转的位置,这样位0变为位3((r&1)<<3),位1变为位2((r&2)<<1)),等等,并且再将这些位或(Or)到一起。
注意到上述例子示出了如何从压缩数据中选择单个位。但是,也可以提取超过一位,例如,每个字节或数据单元选择两位,并且将这些位连接为一个八位结果值。
将理解,为了在可编程数据处理器上执行上述的位平面提取操作,该位平面提取操作涉及若干(非专用的)操作的执行。这在性能和功率消耗上都有缺点。
因而本发明的目的是提供一种具有不存在上述缺点的位平面提取操作的可编程数据处理设备。

发明内容
依照本发明的第一方面,提供一种用于处理数据的可编程数据处理设备,所述数据处理包括在压缩数据位上执行位平面提取操作的任务,该压缩数据位包括多个数据单元,每个数据单元具有多个数据位,所述设备包括-用于从每个数据单元有选择地提取数据位的提取装置,和-用于将提取出的数据位连接起来以提供结果值的连接装置,其中所述结果值由该可编程数据处理设备进一步处理。
依照本发明的另一方面,提供了一种在可编程数据处理器中对压缩数据位执行位平面提取操作的方法,该压缩数据位包括多个数据单元,每个数据单元具有多个数据位,该方法包括提供用于从每个数据单元有选择地提取数据位的专用硬件装置,和将提取出的数据位连接起来以提供结果值,所述结果值由该可编程数据处理器进一步处理。


为了更好地理解本发明,并且更清楚地显示如何实施本发明,将参考以下附图进行说明,并且这些附图只作为例子,其中图1示出了依照当前技术的位平面提取操作;图2a和2b分别描述了依照本发明的对结果进行或不进行位反转的位平面提取操作;图3示出了可以如何使用多路复用器在硬件中执行图1的位平面提取操作的例子;图4示出了对结果进行位反转的本发明的另一个方面;图5示出了图4中的多路复用器的其它细节;图6示出了本发明的另一方面。
具体实施例方式
依照本发明,提供了用于执行位平面提取操作的专用硬件。
参看图2a,考虑一32位压缩数据位的值,例如,包括4个字节或数据单元1a到1d。每个字节1a到1d包括8个位(分别是a0-a7,b0-b7,c0-c7,d0-d7)。位平面提取操作从这些字节中的每一个中有选择地取出一个位,例如第二位(a1,b1,c1,d1),这由一个自变量指定。该操作涉及将这些位(a1,b1,c1,d1)连接,并且返回一个4位结果值5(具有的第一位称为r0,第二位r1等)。如果所处理的数据不需要进行位反转,则结果值5是r3=a1,r2=b,r1=c1,r0=d1。
图2b示出了一个相似的位平面提取设备,但是需要对结果进行位反转,从而在结果值7中反转提取的数据位,使得r3=d1,r2=c1,r1=b1,r0=a1。换句话说,在图2a所示的实施例中,位提取操作提供没有位反转的结果值5,而图2b中位平面提取操作提供进行了位反转的结果值7。
如上所述,可以将硬件配置为提供没有进行位反转的结果值(即如图2a所示),或者提供进行了位反转的结果值(如图2b所示)。如前所述,可能为了多种原因对结果执行位反转,原因之一是处理升降序性。
或者,可以将硬件配置为有选择地提供正常格式或位反转格式的结果。例如,可以将位反转设置为一个参数,使得该设备能够返回结果5或位反转的结果7,如下面的应用所述。取决于具体应用是否需要位反转的结果,该参数可以由软件控制,或者在硬件中事先配置。
图3更详细地示出了如何在硬件中以低代价实现位平面提取操作。例如,该操作可以完全由只有3级深度的多路复用器来实现。
在图3中,为了参考方便,示出了用于从图2a和2b所示的字节之一(字节1a)中提供一个位的多路复用器装置。为每一个其它字节提供了相似装置。第一级多路复用器31将8个位减少到4个位(即n到n/2),第二级多路复用器33将这4个位减少到2个位,第三级多路复用器35将这2个位减少到1个位。以此方式,可以从位a7-a0中提取任何位ay。同样,可以使用多路复用器从字节1b中提取位by,从字节1c中提取位cy,从字节1d中提取位dy。
图4示出了可以如何通过提供硬件以处理两个选项来对结果进行位反转。在图4中,所提取的位ay,by,cy,dy通过一组多路复用器41a到41d。因而,结果值取决于是否需要位反转,由控制信号“c”来控制。
图5中更详细地示出了所述多路复用器之一41a。当控制信号“c”被设为高,所提取的位ay,by,cy,dy构成结果值5。换句话说,r3=ay;r2=by;r1=cy;r0=dy。但是,当控制信号“c”为低,所提取的位ay,by,cy,dy的顺序被反转,使得r3=dy;r2=cy;r1=by;r0=ay,从而构成结果值7。这样,可以使用附加硬件和参数“c”来在需要的时候提供位反转,例如为了更正升降序性。
如上所述,参数“c”可以由软件控制(因而允许动态控制位反转),或者取决于特定的数据处理应用在硬件中设置。
将认识到,上述本发明提供了一种比当前技术更有效的位平面提取操作和设备。与当前技术中执行的操作相比,除了提高了性能之外,该位平面提取方法和设备还消耗更少能量。
在实际应用中,可以将几种结果组合为单个的32位值。例如,如果一个结果对应4位,则8个结果可以组合为32位。因而可以通过对两个32位值取异或(XOR)来计算这样两个值之间的绝对差之和,并且对结果中“1”位进行计数。依照当前技术,组合多个结果涉及对先前的结果移位,并且对当前结果取或(OR)得到该值。
使用软件,这涉及如下操作unsigned bpext_reverse_shift(unsigned x,unsigned y,unsigned z){r+bpext_reverse(x,y);return(z<<4)|r;}其中x包含4个压缩字节的32位值y表示要提取的位的0到7之间的整数z包含先前结果的32位值但是,依照本发明的另一个方面,图6示出了使得这个操作能够通过使用一个操作在硬件中而不是通过使用上述的软件执行的一种装置。
上述本发明提供了一种可编程数据处理设备,其具有能够在绝对差求和的预处理步骤中使用的位平面提取装置。但是,注意到,本发明并不局限于该应用,应理解位平面提取操作还可以用于其它需要从多个字节中提取一个或多个位的数据处理操作。另外,数据位不必一定从不同的字节中提取,例如由每分量12个位表示的图像数据的应用。
尽管已经联系提取4个位描述了本发明,但是注意到,对于数据路径更宽的处理器,例如64位的处理器,所述指令可以是一次取出8个位。
同样,尽管优选实施例示出了使用多路复用器,应理解还可以使用提供相同功能的其它逻辑电路。
还应注意,上述实施例是为了举例说明本发明,而不是限制本发明,并且本领域技术人员将能够设计许多替代实施例而不偏离所附权利要求定义的本发明的范围。在权利要求中,括号中的任何参考符号不应被理解为限制权利要求。词“包括”和“包含”和类似词语不排除说明书或任何权利要求中作为整体所列出的元件或步骤之外其它元件或步骤的存在。对元件的单数引用不排除对这种元件的复数引用,反之亦然。本发明可以借助于包括若干不同元件的硬件实现,也可以借助于适当编程的计算机来实现。在列举若干装置的权利要求中,这些装置中的几个可以用同一硬件项来实现。在相互不同的从属权利要求中描述了特定措施的事实并不意味着不能使用这些措施的组合获益。
权利要求
1.一种用于处理数据的可编程数据处理设备,所述数据处理包括对压缩数据位执行位平面提取操作的任务,压缩数据位包括多个数据单元,每个数据单元具有多个数据位,所述设备包括-用于从每个数据单元有选择地提取数据位的提取装置;-用于将所提取的数据位连接以提供结果值的连接装置,其中所述结果值由该可编程数据处理设备进一步处理。
2.如权利要求1中所述的设备,其中所述用于从每个数据单元有选择地提取数据位的提取装置包括多个多路复用器(31,33,35),该多个多路复用器(31,33,35)被安排用来从每个数据单元选择特定数据位。
3.如权利要求2中所述的设备,其中所述多路复用器被配置在多个级中,每个级有选择地将每个数据单元中的位数从n减少到n/2,直到选择到期望的位。
4.如权利要求1中所述的设备,其中所述提取装置适用于从每个数据单元选择多于一个数据位。
5.如权利要求1到4中任何一个权利要求所述的设备,其中每个数据单元包括数据字节,并且其中所述设备被配置为从该多个数据字节的每一个之中提取预定的一个或多个数据位。
6.权利要求1中所述的设备,还包括用于在可编程数据处理设备进行下一步处理之前反转结果值中数据位的顺序的位反转装置(41a到41d)。
7.如权利要求6中所述的设备,其中所述用于反转位顺序的位反转装置包括一系列多路复用器(41a到41d),该多路复用器被安排用于-在第一操作模式中,构成结果值的所连接数据位通过多路复用器而不改变结果值的顺序;和-在第二操作模式中,当通过多路复用器时所连接数据位的顺序被反转。
8.如权利要求7中所述的设备,其中所述操作模式由参数控制,从而使得所述位反转装置能够依赖于特定的数据处理应用被动态控制。
9.如权利要求1中所述的设备,该设备还包括用于将结果值与先前的结果值组合的装置。
10.一种在可编程数据处理器中对压缩数据位执行位平面提取操作的方法,所述压缩数据位包括多个数据单元,每个数据单元具有多个数据位,所述方法包括以下步骤提供用于从每个数据单元有选择地提取数据位的专用硬件装置;和连接所提取的数据位以提供由该可编程数据处理器进一步处理的结果值。
11.如权利要求10所述的方法,还包括有选择地反转所连接数据位的顺序的步骤。
全文摘要
说明了一种具有位平面提取操作的可编程数据处理设备,位平面提取操作用于从一个值,例如包含4个字节1a到1d的32位值,提取数据。每个字节1a到1d包括8位(分别是a
文档编号G06F9/305GK1969255SQ200580019849
公开日2007年5月23日 申请日期2005年6月8日 优先权日2004年6月16日
发明者A·A·M·范韦尔 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1