修改内存缓冲区中位字段的方法与装置制造方法及图纸

技术编号:2881381 阅读:232 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种使用位模式修改数据项中选定数据部分的方法。所述方法识别待修改的数据部分。该方法通过访问多个字段进一步选定一个字段。所述字段包括多个重复出现的位模式。相邻字段具有相同的位模式,但偏移至少一位。所述方法选择一掩码以获得一个在选定的字段中选定的位模式,而该位模式与所述已识别的数据项是对齐的。该方法通过使用所述位模式中一个选定的位模式,在所述已识别数据部分上执行一个预定的位操作,来修改所述已识别数据部分。本发明专利技术也公开了实现上述方法的一种处理器。(*该技术在2021年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及一种修改内存缓冲区位字段的方法,更特别地,涉及一种与显示设备相应的内存缓冲区中非字节或非字对齐的位字段的修改方法。
技术介绍
一般而言,一个显示屏分为多行多列的小单元或基本区,称为图像元素或像素。欲在显示屏上显示一幅图像,则需将代表该图像的数据写入与显示屏相应的内存缓冲区。内存缓冲区包含一个数据项的块。这些数据项可以是字节、16位字或32位字。内存缓冲区中数据项的位字段对应于显示屏的像素。每个位字段一般包含诸如相应像素色彩与亮度之类的信息。该领域的技术人员都知道,每个像素所要求的位数是不同的。对于一个简单的8色显示器,每个像素需要3位。位字段中象这样长度的位字段不是对齐的,而是从数据项的一开始就是偏移的。一些位字段跨接于相邻数据项的边界。修改这样的非对齐位字段需要相当大的数据处理开销。使用微处理器对一个误对齐位字段所进行的一般操作涉及到从一个数据项中分离出位字段,对该位字段进行操作,以及将位字段重新置于数据项中以便进行进一步的处理。一般而言,使用微处理器进行这样的操作必须执行诸如移位、循环、与、或等指令。某些微处理器有另外一些允许直接位操作的指令,譬如bset(位设置)与bclr(位清零)。但是,所有这些指令都是处理器操作密集型的,每条指令都需要多个周期的处理器时间来执行。另一个修改非对齐位字段的可行方法是,使用预定的掩码以及与待修改位字段所有可能的起始位置相对齐的像素信息。尽管该方法降低了指令执行的数量,但是存储预定的掩码与像素信息却需要相当大的存储空间。再一个可行方法是使用特制的硬件,对位字段直接进行操作。美国专利6,061,783号公开了这样一个例子。
技术实现思路
根据本专利技术的一个方面,提供了一种修改具有一位模式的数据项选定数据部分的方法。该方法标识待修改的一个数据部分。该方法还进一步通过访问多个字段而选定一个字段。该字段包含多个重复出现的位模式。具有相同位模式的相邻字段偏移至少一位。该方法选择一个掩码,以获得与所识别数据部分相对齐的选定字段的一个位模式。该方法通过利用所述位模式之一,在所述标识的数据部分执行一个预定的位操作来修改所识别的数据部分。该方法最好可以进一步标识相对所述数据项起始位置而言,所述数据部分的偏移值,并且,该方法可以使用所述偏移值访问多个字段,以选定所述字段。该方法最好可以通过使用所述偏移值选定一个掩码的方法访问多个掩码,从而选择一个掩码。该方法应该可以通过使用偏移值从多个索引中选择一个索引的方法来选择一个字段,并且,使用所选索引选择一个字段的方法访问多个字段。所述数据项最好可以是与一个显示屏相应的内存缓冲区中多个数据项中的一个选定数据项,其中,所述数据部分对应于显示屏上的一个像素。在这样的应用中,所述位模式可以是一个色彩数据。该方法可以标识待修改数据部分,其途径是标识包含待修改数据部分的数据项。该方法也可以选择一个字段,其途径是访问多个色彩字段,以从基于一个色彩参数所选定的色彩字段子集中选择一个色彩字段。该方法最好可以进一步校验所述数据部分,以确定是否所述数据部分横跨一个相邻数据项,从而导致在所述相邻数据项中留下剩余数据部分。如果确定存在这样的剩余数据部分,那么该方法在相邻数据项中修改剩余数据部分,其方式与如上所述的通过一个选定的第二字段与掩码的方法类似。根据本专利技术的另一方面,提供了一个数据部分的处理器,用于修改具有一位模式的数据项的一个选定数据部分。所述处理器包括一个字段选择器,用于从多个字段中选择一个字段。所述字段包含多个如上所述的重复出现的位模式。该处理器还包括一个掩码选择器,用于选择一个掩码,从而在一个选定的与所述数据部分对齐的字段中获得一个选定的位模式。该处理器进一步包括一个位操作器,用于修改所述数据部分,其方法是在带选定位模式的数据部分上执行一个预定的位操作。该字段选择器最好可以从多个字段中选择一个字段,并且,该掩码选择器可以选择一个掩码,其方式是基于相对于所述数据项起始处选定数据部分的一个偏移值。附图说明为了更好地理解与实施本专利技术,现在参照附图说明最佳具体实施方式,其中图1是一个显示屏与相连内存缓冲区的示意图;图2是一个方框示意图,示出了与处理器相应的内存,该内存包含在处理器中执行的程序指令,用于图1中示出的显示屏与相关内存缓冲区进行接口;图3是根据本专利技术的一个具体实施方式修改内存缓冲区数据项的数据部分的一系列步骤,其中,数据部分对应于图1中示出的显示屏的一个像素;图4是一个示意图,示出了在图3的序列步骤中,如何使用存储在查阅表中的数据来修改数据项中的选定数据部分;图5是一个示意图,示出了横跨图1中内存缓冲区的两个相邻数据项的数据项;以及图6是数据部分处理器的方框图,该处理器执行图3中某些步骤。具体实施例方式图1示出了显示屏2与相连内存缓冲区4。显示屏2的一个例子液晶显示器(LCD)。内存缓冲区4用来存储一块一般由16位字组成的数据项。也可以使用其他位长度的数据项。数据项6的位字段对应于显示屏2上的像素。图1也示出了一个数据部分8,它在该具体实施方式中是选定数据项10对应于像素12的一个3位的位字段。数据部分8包括像素12的色彩信息。用这个3位的数据部分8可以确定8色中的一种颜色。图2是一个方框示意图,示出了与显示屏2接口所需的组件。除了内存缓冲区4以外,内存14通过总线18连接到处理器16上,其方式是该领域的技术人员所熟知的。处理器16通过执行内存14中的可读程序指令来修改存储于内存缓冲区4中的数据项6。图4示出了存储于内存14中的查阅表(LUTs)。查阅表包括一个色彩查阅表22,一个索引查阅表24与一个掩码查阅表26。色彩查阅表22有多个色彩字段28,安排成8乘3的二维阵列,以便于通过索引寻址访问。色彩字段28包含了有关8种色彩的信息。每个色彩由一个包含三个色彩字段的子集所表征。虚线所围框内所示出的是一个蓝色色彩字段子集30。每个色彩字段28包含重复出现的代表特定色彩数据的3比特位模式32。第一个色彩字段的第一个位模式开始于色彩字段的起始位置(位0的位置)33。譬如,蓝色的第一个色彩字段34将起始于“001”的一个蓝色位模式36。随后出现的第一个色彩字段的位中包含重复出现的蓝色位模式“001”。第二个蓝色色彩字段38,与第一个蓝色色彩字段34相邻,包含与第一个蓝色色彩字段34中相同的位模式,但偏移一个比特。第二个色彩字段中蓝色位模式36起始于位1位置,而不是起始于位0位置。在位0位置的第一位包含蓝色位模式“001”的最后一位。类似的,第三个蓝色色彩字段40包含与第一个蓝色色彩字段34中相同的位模式,但偏移两个比特。在位0与位1位置的第三个蓝色色彩字段40的前两位包含蓝色位模式“001”的最后两位。色彩字段34、38、40中的一个包含有一个蓝色位模式“001”,该位模式与内存缓冲区4中数据项10的选定的3位数据部分8对齐。以类似的方式设置其他7种颜色的色彩字段28。索引查阅表24有多个包含索引或索引值的字段。对于一个16位的数据项而言,共有18个字段——16个字段与数据项的16位相对应,而另外两个字段(以数据部分中的位数减去1得到)则用来处理边界条件。后面将描述这些边界条件。存储在每个字段中的索引值,是索引查阅表24中的字段位置除以3本文档来自技高网
...

【技术保护点】
一种使用一种位模式修改数据项选定数据部分的方法,所述方法包括:识别待修改的数据部分;通过访问多个字段来选择一个字段,所述字段包括多个重复出现的位模式,其中,相邻字段具有相同的位模式,但偏移至少一位;选择一个掩码,以在所述选定字段 中获得一个选定的所述位模式,而所述选定位模式与所述已识别的数据部分是对齐的;以及通过使用所述位模式中一个选定的位模式,在所述已识别数据部分上执行一个预定的位操作,来修改所述的已识别数据部分。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:马春奇陈伟东莫君亮王可宇
申请(专利权)人:飞思卡尔半导体公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1