CN100354892C - 图像边缘过滤处理 - Google Patents

图像边缘过滤处理 Download PDF

Info

Publication number
CN100354892C
CN100354892C CNB2005100923883A CN200510092388A CN100354892C CN 100354892 C CN100354892 C CN 100354892C CN B2005100923883 A CNB2005100923883 A CN B2005100923883A CN 200510092388 A CN200510092388 A CN 200510092388A CN 100354892 C CN100354892 C CN 100354892C
Authority
CN
China
Prior art keywords
sample
edge
image
impact damper
result
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
Application number
CNB2005100923883A
Other languages
English (en)
Other versions
CN1728182A (zh
Inventor
R·J·利斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of CN1728182A publication Critical patent/CN1728182A/zh
Application granted granted Critical
Publication of CN100354892C publication Critical patent/CN100354892C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20021Dividing image into blocks, subimages or windows

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Lubrication Details And Ventilation Of Internal Combustion Engines (AREA)

Abstract

提供一种图像边缘过滤处理技术。图像垂直和水平边缘周围的数据样本被获得且被重复处理。如果样本与垂直边缘有关,与样本相关联的数据被置换在应用选中的过滤之前。样本保存在两个缓冲器中(用于处理边缘的每一条唯一边的一个缓冲器)且紧接着应用选择的过滤。每个样本设置包括多于四个数据样本。一旦过滤被处理,缓冲器中的数据被写入作为修改图像的一部分。如果样本与垂直边缘相关联,那么数据被重新置换出所写入的缓冲器。

Description

图像边缘过滤处理
技术领域
本发明的实施例通常涉及图像处理,尤其涉及一种流线型图像边缘过滤技术。
背景技术
图像过滤是增强着色图像质量的常用处理手段。典型地,当图像在显示装置或者打印介质中着色时,通过使用图像过滤来增强图像数据的质量从而增强图像自然数据。过滤器也可以用于其他目的。例如,一些过滤装置可以通过图像压缩和解压操作移去导入图像的不能使用的伪像。
图像数据实际上是由一连串长方形像素数据自然地表现出来的,像素数据构成的长方形集合为图像的整体,其表现值有亮度、颜色、纹理等。多数图像处理操作都是基于处理目的而人为地将图像细分成多个小块。例如,普通图像压缩算法都是按照宽和高均为16个像素单位将图像分成像素数据块。这些像素数据块之间的边界线通常都涉及到边缘。图像本身也常常在图像中描绘景物之间的过渡。轮廓清晰的图像能在图像中表现不同景物之间清楚的轮廓,通常轮廓清晰的图像是通过过滤处理来实现的。轮廓清晰的图像不包括不在原始景象中的可见边缘或其他对象,伪像可以由图像压缩和解压产生。边缘过滤处理可以除去伪像。如果不对图像进行过滤处理操作,那么实际上在观察器中的图像将出现一连串的格栅状边缘,与图像压缩中的块边缘相一致。因此,过滤处理是压缩图像重组后进行着色时必不可少的操作。
图像过滤处理存在一个问题,处理和增强图像自然数据是处理器和存储加强器的任务。就是说,图像典型地由数量庞多的像素数据来表示。此外,确定对任一特殊的像素值做什么修改并不能完全分析出来,除非知道了周围的像素值。因此,像素修改(通过过滤操作实现)通常依赖于周围的像素。
另外,过滤器必须很迅速地处理数据,例如将包括一连串帧(静态图像)的视频动态表现在显示装置上。在这种情况下,过滤器必须尽可能地有效率,视频观察器才不用在意正在视频中着色的帧之间的任何延迟。
用于提高效率的一种现有技术是使用单指令多数据流(SIMD)操作,每个指令操作产生多个结果。然而,更多新近的过滤器定义由于数据-依赖处理(每个数据值请求不同的操作)而不支持SIMD技术,因为SIMD操作需要在同一指令中处理多个数据样本。另外,过滤器定义也不能和SIMD数据的长度匹配。例如,过滤器按照四个样本定义,针对四个值中的每一个可能需要不同操作,因此不能立刻很好地与具有八个数据值的SIMD效力相协调。
因此,很有必要改进图像过滤处理操作。
发明内容
为了实现上述目的,本发明提供了一种方法,包括:获得围绕在图像边缘的第一边样本和第二边样本,其中样本超过由用于处理样本的一个或多个过滤器定义的范围;如果边缘是垂直边缘,置换所述第二边样本;在所述第一缓冲器和所述第二缓冲器中装入样本;和过滤所述样本来产生第一和第二结果。所述获得步骤进一步包括如下子步骤:通过从第二缓冲器复制在先的内容来获得所述第一边样本,该在先的内容与所述方法在先重复期间的在先第二边样本相关;和通过读取所述图像来获得第二边样本.
本发明还提供一种方法,包括:识别图像最近未处理的边缘;获得最近未处理边缘中第一边上的八个样本的四个集合以及第二边上的八个样本的四个集合;如果最近未处理的边缘是垂直边缘,置换所述获得样本中的至少一部分;在第一缓冲器和第二缓冲器中保存样本;以及分别在第一边样本和第二边样本的缓冲器内部过滤第一边样本和第二边样本。
本发明还提供一种系统,包括:第一缓冲器;第二缓冲器;和过滤处理管理器,用于获得图像未处理边缘两边上的8位样本,如果未处理的边缘是垂直边缘则置换所述获得样本中的至少一部分,并为第一缓冲器中的一边保存一设置,为第二缓冲器中的另一边保存另一设置,且检测样本的值,并响应该值来选择一过滤器从而相对所述样本进行处理。
本发明还提供一种方法,包括如下步骤:获得图像未处理边缘两边上的第一和第二区域;如果未处理的边缘是垂直边缘,则置换与第一和第二区域相关的数据;在第一缓冲器中保存第一区域的数据;在第二缓冲器中保存第二区域的数据;检测数据的值,且相对响应该值的数据选择一个或多个用于处理的过滤器;响应对所述一个或多个过滤器的处理,在第一缓冲器中保存第一结果,在第二缓冲器中保存第二结果;以及如果未处理边缘是垂直边缘,选择性地再置换,并写入第一结果和第二结果作为表示图像修改版本一部分的输出。
本发明还提供一种装置,位于计算机可访问的媒介中,包括:第一屏蔽数据结构;第二屏蔽数据结构;和第一缓冲器,与所述第一屏蔽数据结构相关联;第二缓冲器,与所述第二屏蔽数据结构相关联;和一过滤处理管理器,产生通过向围绕边缘的样本应用一个或多个过滤器而产生的图像的修改版本,其中,由一个或多个过滤器施加的变化响应第一和第二屏蔽数据结构的值而被接受或拒绝。
附图说明
图1是本发明实施例中图像处理方法的流程图。
图2是本发明实施例中图像处理的另一方法的流程图。
图3是本发明实施例中图像过滤处理系统的框图。
图4是本发明实施例中图像过滤处理设备的框图。
具体实施方式
图1示出了图像过滤方法100的流程图。方法100可以在机器可访问介质中执行。然而,方法100也可以在其他方式中执行,例如,以下但不仅仅局限于下述例子,方法100可以在一连串信号中执行、可以在硬件实现的一部分中执行等。在一实施例中,方法100(在这里命名为“处理”)在处理器架构中运行,采用单指令多数据流(SIMD)技术扫描图像数据并选择性地过滤图像数据,其中图像数据的许多部分根据单过滤指令来处理。这样提高了图像过滤操作的处理量。
开始,在内存、存储器或内存和存储器组合装置的机器可访问媒介中获得图像。图像包括像素表示流明、色度、纹理等。在图像中有选择性地将图像归类从而形成各种各样的图像场景或对象。针对像素的过滤处理是为了改善场景或对象的轮廓或者是为了改善色度、亮度、纹理度等。任何现有的或者开发常用的过滤器都是结合这里所说的技术来使用的。图像也自然表现为一连串具有边界线的矩形盒。当图像自然存储于压缩格式且处于压缩状态下更容易看见这些边缘,这些边缘在解压后变得能够辨认并利用各种各样的边缘过滤器将其除去。
在图像中将矩形线条垂直和水平定位。判断该特殊线是垂直的还是水平的主要根据该图的自然布局或者根据初始选择。换句话说,如果图像与定义图像的缺省布局或视图的元数据相关联,该缺省布局或视图将规定哪些被认为是垂直的和哪些被认为是水平的。
可选地,通过选择作为垂直或水平的线条的初始设置来任意确定哪一条线是垂直的和水平的。这意味着一旦选择后认为某些线垂直,与那些选择的线垂直的其他的线则自然设置为水平线了。因此,垂直或水平线的选择是相互关联的,但是用于在图像中将剩余线条分解为水平方向或垂直方向的选择一旦确定,则必须自始至终与初始选择相一致。为此,只要自始至终确定了垂直或水平方向,什么是垂直以及什么是水平也就相对确定了。
步骤110,识别最近未处理的图像边缘。未处理是指没有确定是否使用一个或多个相对于周边数据的过滤器。再者,边缘是指图像内部的线条。多个线条组合成矩形,在每个矩形有一些线条是垂直的而另一些是水平的。况且,边缘处于未处理状态直到边缘周围的数据样本处理完毕。
步骤120,为未处理边缘的第一边和第二边获得样本第一设置。样本尺寸已知,步骤121,超过边缘过滤器的定义范围。确切地说,相对于图像数据处理的各种边缘过滤器根据要处理的样本预定义尺寸。典型地,这些尺寸是四个样本的4个集合。在本发明的各种实施例中,均可使用该8位或16位样本的4个集合。其它的样本尺寸可以通过像上面和以下提到的SIMD技术来处理。一开始,步骤122,通过读出图像未处理边缘周围的数据获得第一边和第二边样本。当第一次重复方法100时执行这个步骤,这样不会有图像边缘被处理过。第一次重复操作方法100之后,获得第一边样本,步骤123,复制在先的第二边样本将其作为新的第一边样本;通过读出图像数据获得新的第二边样本。通过指示器或是偏移将边缘以及边缘周围数据样本管理并处理到图像中。每一个图像里的矩形都采用在先定义的长度(例如,字节、像素、位等);在先定义的长度允许指示器或偏移进入图像数据来获得样本。
一个实施例中,通过读出图像8位数据首先获得每个样本。换句话说,每个样本都是0-255位值的8位字数据。然而,应用到数据样本的特定的过滤器会产生比0-255更大的值;相应地,步骤130的一些实施例中,将每个样本从自然位长(例如8位)转变到更大的位长(例如16位)。
步骤124,通过检测来确定的当前未处理边缘是否与垂直边缘相关联。如果未处理边缘是垂直边缘,则,步骤124,第一边和第二边样本被传输,如果这是方法100的第一次重复操作。如果未处理边缘是垂直的且不是方法100的第一次重复操作,那么仅仅最新获得的第二边样本被传输,步骤124。只有垂直边缘才执行传输是因为一连串数据样本的读出将产生行或数据样本记录,但是当未处理边缘是垂直边缘时,数据样本才被组织起来且处理为数据列。
因而,通过行转换数据样本一个接一个被连续地组织起来,上述列可以与另一个连续地组合起来并像队列处理。例如,假设样本识别为行1:A,B,C,D;行2:E,F,G,H;行3:I,J,K,L;行4:M,N,O,P。这些行被置换成四个新行,行1:A,E,I,M;行2:B,F,J,N;行3:C,G,K,O;行4:D,H,L,P。实际上,根据未处理垂直边缘,垂直包围在边缘的数据(数据列)和是否使用过滤有关。因此,通过置换数据,行的初始值被置换成表示行格式的列。被置换的行可以相对于其他行被处理,因为它们都是用于未处理垂直边缘的所述列数据样本。
步骤130,第一边样本封装在第一缓冲器中且第二边样本封装在第二缓冲器中。缓冲器可以是内存、寄存器、存储器,或者相同的组合物。一旦第一边样本和第二边样本被读出,如果有必要的话被置换,并被存储在第一或第二缓冲器中,可检测数据样本的值并基于这些数值选择过滤器。换句话说,当数值被检测就可以使用不同类型的过滤器。例如,一些过滤器可以增强或修改流明,一些可以增强或修改色度,一些可以增强或修改纹理,一些可以平滑或消除边界线,等等。选择过滤器的技术是图像技术中已知的;相应地,任何这样的图像过滤选择技术也可以结合本发明的各种实施例使用。
步骤140,相对于第一和第二缓冲器中的样本处理选定的过滤器。一个实施例中,第一边和第二边样本是八个数据样本中的两个集合。八个数据样本中的这两个集合根据被选择的过滤器操作来处理。这样,单一选中的过滤操作是相对于八个数据样本的二个集合来处理的。这需要通过S MD(单指令多数据流)技术来实现,其优于用于多次重复(例如,8或4次重复)处理的单独过滤操作,对于八个数据样本的二个集合(多数据流)该过滤指令被处理一次(单指令),因此这也是一种实现高效处理的技术。
在一些实施例中,包含于第一缓冲器的第一边样本和包含于第二缓冲器的第二边样本中的每个数据样本都与位屏蔽值有关。位屏蔽值表示一个特定数据样本是否在选中过滤器的处理中被修改了。因此,步骤141,一个位屏蔽与每一个选中的过滤处理产生的过滤结果有关。例如,如果一个数据样本具有初始值250,且在选中过滤处理后具有一个修改的或改变的值255,那么该修改样本值的位屏蔽值被设置(值为1)表示该样本值改变了(反之亦然;例如,设置为0表示发生改变)。
在一些实施例中,在方法100的重复操作期间,位屏蔽形成行或阵列且封装在寄存器或内存的区域中。这些阵列使用布尔逻辑运算来比较,将它们加在一起或相对于两个阵列执行布尔逻辑“或”运算,像步骤142中描述的一样。任何结果阵列均表示哪个数据样本值将要被保留或将要被删除有利于初始的未修改数据样本值。
例如,如果一个结果阵列的入口被设置为“1”,这表示包括在第一和第二缓冲器内用于特定样本设置的值将被保留在修改的图像版本中。相反,如果结果阵列的入口被设置为“0”,这表示包括在第一和第二缓冲器内用于特定样本设置的值将被删除且图像的初始值保留在修改的图像版本中。
这是超越常用软件编码过滤的一种进步,其采用了依赖大量多重从属附加条件的命令,目的是为了确定一个修改样本值是否保留或删除。换句话说,按照惯例,关于是否接受修改样本值超过初始值和未修改样本值的决定是以大量条件逻辑为基础的,这在过滤操作之后执行。这是处理器和存储加强器以及用于图像着色的延迟操作。
本发明的实施例不依赖多重条件命令来确定是接受还是拒绝修改样本值;相反,在一些实施例中,相对于其他的处理是在单一指令中使用布尔逻辑运算通过位屏蔽来实现。
相对于缓冲器中的数据样本过滤处理之后,步骤140,同时在任何非限制性的位屏蔽使用布尔逻辑操作比较之后,步骤141和142,又进行另一项检测,步骤150,确定当前未处理边缘是否是垂直边缘。如果未处理边缘是垂直边缘,那么,步骤150,数据样本被重新置换出缓冲器且作为图像的修改部分被写出缓冲器。同样,在一些实施例中,如果数据样本被转化成更大的字长,该数据样本的长度被恢复成它们的初始尺寸。
此外,在一些情况下,一些改变的数据样本值不能作为图像的修改部分从缓冲器中写出,例如当结果位屏蔽阵列说明初始数据样本值将要被保持未改变状态。在这样的情况下,不会改变的数据样本的初始值可以从原始图像、内存、存储器等中直接获取。在一些情况下,步骤150写入操作期间,过滤结果被封装在寄存器或存储器中,并与初始值结合使用,因为样本封装在缓冲器和屏蔽阵列中。
同样,步骤150,执行检测来确定在原始图像中是否不再有还未处理的未处理边缘。如果所有的垂直和水平边缘都被处理过,则方法100停止重复操作。然而,如果还有未处理边缘,那么,因为下一个未处理边缘,在步骤110还继续重复该方法。
根据该方法,垂直边缘被成功处理完毕直到不再有未处理的垂直边缘,其指向处理的水平边缘。方法100重复期间与水平边缘相联系,数据没有被转移入或转移出缓冲器。方法100重复期间,指示器和偏移被更新地指向或访问没有被处理过的且与新近未处理边缘有关的数据样本的新区域。与相应的垂直边缘相关和与相应的水平边缘相关的数据样本的每个区域分别被处理一次。
图2示出了实现图像过滤的方法200的流程图。方法200在机器可访问和可阅读媒介中执行,也可在网络中执行。方法200能在硬件、固件、软件或硬件、固件和/或软件的组合物中执行。在一个实施例中,方法使用SIMD技术执行和实现图像过滤,在一连串八位宽度的SIMD操作中,边缘一条边的数据的八个样本集合相对该边缘的另一条边的数据的八个样本集合被处理(也就是,并行执行八个边缘位置的过滤操作)。
开始,在步骤210识别图像的最近未处理边缘。借助一个或多个过滤器处理图像来提高图像的质量(例如,平滑来消除由图像压缩产生的边缘伪像,等)。改进质量能提供更好的图像描绘的场景和对象,且因此更容易被图像观察器识别。过滤可以用来替修善的图像着色到显示装置或替修善的图像着色到打印媒介上。指示器或偏移计算器可以通过图像数据重复,用来保留与已处理边缘和未处理部分相关部分的轨迹。
步骤220,在每个未处理边缘的每条边获得八个样本的四个集合。也就是说,每四个的八个样本集合为一组,从图像中读出或获得。未处理边缘的第一边上的样本组(请求过滤操作)不需要从图像获得,因为它们在之前边缘的过滤缓冲器中。
步骤230,如果未处理边缘是垂直边缘则搜集样本被置换。获得的数据样本被置换再配置成格式化顺从上面提到的SIMD操作。典型地,一种读出操作从图像获得连续形式数据的单精度型记录或数量。由于水平边缘这会产生期望的格式,用邻近边缘上的样本(四个读操作获得八个样本的四行,每一个均来自该边缘的第二条边)。然而由于垂直边缘,每个读操作获得与一个边缘位置相一致的四个样本的一行;八个读指令被请求用来获得所有八个边缘位置的数据。置换操作将四个样本的八行再组合成被请求的八个样本的四个集合。如果未处理边缘是水平边缘,那么不会发生置换操作。
步骤240,在一个实施例中,最近获得的样本从8位样本转换成16位样本。这样做是因为过滤操作会导致中间值超过255,所以过滤操作是16位操作,可以在输入时防止出现16位数据。
步骤250,八个第一边样本的四个集合组被封装或保存在第一缓冲器中,八个第二边样本被封装或保存在第二缓冲器中。下一步,步骤260,通过定义为8位宽度的SIMD的多重过滤在缓冲器内部过滤这两组来获得每个过滤位置的多重过滤结果。特定过滤器的使用是以期望的过滤类型为基础的(例如,彻底的(强烈的),不充分的(极微的),等)。过滤操作可以包括限制过滤的变化数量,所谓的削减。在一个实施例中,削减水平定义为四个样本边缘,用于八位宽度SIMD操作中,通过组合和复制产生一个八位宽度削减设置值,两个削减水平用于过滤的两个四个样本边缘。
步骤265,确定每个过滤位置(八位宽,边缘的两条边上的样本)是否指向:a)保持初始未过滤的值,或者b)过滤时替换一个新的值,假如这样的话,来自哪个过滤器。在一个实施例中,位屏蔽被分配给第一缓冲器中的每个样本以及第二缓冲器中的每个样本。因为样本是16位值,屏蔽也是每个样本的位全部0或全部1的16位值。屏蔽的产生是以特定边缘输入至过滤器(例如,不过滤该边缘,彻底过滤该边缘,等)和检测在先过滤样本值为基础。该特定边缘输入,在一个实施例中,定义为四个样本边缘,与削减水平相似,类似于在SIMD操作中请求组合和复制来产生八位宽屏蔽。
布尔逻辑操作(例如,与,或,非,等都是八位宽SIMD允许的)可以用于应用相对原始未修改样本数据的屏蔽,多重过滤到值选择和获得边缘两条边上的样本的最终结果。无条件的SIMD布尔逻辑操作与传统选择的技术的多重条件软件逻辑指令相比,对于确定是否接受还是拒绝过滤值来说是更有效的处理方式。屏蔽和布尔逻辑操作的应用操作也是有效的,因为它使SIMD操作能够用到比过滤输入更宽的数据。在一个实施例中,过滤输入定义削减和过滤选择,用于长度为四的边缘,一种惯用的SIMD技术被用于形成与四位宽度SIMD指令相匹配的过滤操作。这里所描述的技术通过使用八位宽SIMD操作能达到过滤总量的两倍。
步骤270,第一缓冲器中的样本值从16位被重新转换成8位;并且,步骤275,如果未处理边缘是垂直边缘,那么样本值被重新置换。下一步,步骤280,第一缓冲器被写入作为图像修改版本的部分。下一步,在过滤下一个未处理边缘时,将第二缓冲器中的样本值复制到将要使用的第一缓冲器中。这样做而不是将图像存入第二缓冲器,避免了在一开始过滤下一个未处理边缘时,这些样本8位到16位的置换步骤。
步骤290,将最近未处理边缘分配给新的或下一个未处理边缘;并且,步骤295,方法200用于其他重复处理直到通过方法200将图像的每一个垂直和水平边缘都处理和重复操作过。
图3是图像过滤处理系统300的结构图。图像过滤处理系统300在机器可访问或可阅读媒介中执行,也可在网络中执行。在一个实施例中,图像过滤处理系统300包括上文提到的图1、2中方法100和200分别涉及的当前技术内容。图像过滤操作系统300确定何时操作图像过滤器以及在适当的时候告诉那些过滤器通过图像过滤处理系统300处理数据。这样,图像过滤处理系统300通过以在此所述的形式,在多数据流中形成单过滤操作,提高了与处理图像过滤有关的处理量。
图像过滤处理系统300包括第一缓冲器301、第二缓冲器302和过滤处理管理器303。第一和第二缓冲器301和302可以实现于内存、存储器、寄存器或各种内存、存储器和/或寄存器的组合。第一和第二缓冲器301和302封装过滤操作管理装置303获得的数据样本以及在过滤处理管理器303选择和执行一项期望的过滤操作之后分配给那些样本任何修改值。在一些实施例中,第一和第二缓冲器301和302也与第一和第二位屏蔽阵列有关。阵列包括一个到缓冲器中特定数据样本的映射值,且如果相应的数据样本值在过滤操作执行之后被修改则设置该映射值。在一些实施例中,第一和第二位屏蔽阵列是执行图像边缘过滤设备的寄存器或存储器固有的。
过滤处理管理器303重复图像310用于识别该图像310的未处理边缘,且获得每个未处理边缘的第二边上的8位样本数据。如果正在处理的最近边缘是垂直边缘则置换这些8位样本。在一个实施例中,这些8位样本也被转换成更长位,比如16位。下一步,过滤处理管理器303在第二缓冲器302中存储第二边样本。参照过滤边缘的顺序允许由第一边缘产生的已过滤的第二边的结果变为用于过滤下一边缘的第一边样本,这样这些样本从缓冲器302简单地复制到缓冲器301,在缓冲器302充满新样本之前。这避免了与存储和装载这些样本有关的格式化步骤。
一旦样本被完全格式化和保存在缓冲器301和302中,一个或多个过滤器的选择通过过滤处理管理器303确定下来。选择是基于和过滤处理管理器303有关的参数设置,基于封装在缓冲器301和302中的数据样本的检测值,或者基于同样或其他属性的组合。下一步,来自选中过滤器的过滤操作相对于第一边样本和第二边样本执行。这样可以导致一个或多个数据样本在第一或第二缓冲器301和302中改变。
在一些实施例中,与每个过滤样本有关的位屏蔽阵列提供最后的选择进程的结果,在初始样本之间选择,且给每个样本一个或多个已过滤结果。采用SMD布尔逻辑操作,提供每个操作的多个结果以及避免高代价执行数据依赖每样本的限制性分支操作。在一些实施例中,过滤结果可以和位屏蔽阵列一起临时封装在寄存器和存储器中,当需要的时候返回在第一和第二缓冲器301和302中处理。在其他实施例中,已过滤的结果和/或位屏蔽阵列可以被封装第一和第二缓冲器301和302中。
该过滤处理管理器303继续重复图像3 10的每个垂直和水平边缘直到一个完整的修改图像320完成。两个数据样本块在过滤处理管理器303的单重复期间被处理。
仅仅通过例子的方式,考虑与图像310有关的未处理数据样本310A的碎片。数据碎片310A包括8个垂直边缘(数字1-8在图3中以线/行表示),每个垂直边缘有围绕它的两块数据样本(图3中标号为A-J)。
继续当前例子,要过滤边缘2每条边上的样本,过滤处理管理器303从缓冲器302复制数据到缓冲器301,块B已过滤样本的数据产生于边缘1的在先过滤操作。下一步,过滤处理管理器303从块C获得全部八个样本(数据行),其在垂直边缘2的右边,置换该数据(因为边缘2是垂直边缘),将数据转换为16位数据样本值,同时存储数据于第一缓冲器301内。
过滤处理管理器303现在选择一个或多个过滤器来相对处理保存在第一和第二缓冲器301和302中的数据。这些过滤器相对第一和第二缓冲器301和302中的数据执行8位宽SIMD操作以及产生第一和第二缓冲器301和302中数据样本值的已修改版本。在一些实施例中,与每个缓冲器301和302有关的位屏蔽可以在过滤操作执行之后被适当设置,且用来从初始数据和每个样本的多重过滤数据中选择。所有样本的最终选择被保存在缓冲器301和302中。
下一步,缓冲器301中的数据被重新置换,重新转换为8位样本尺寸,原始图像310的被修改部分被写出。垂直边缘3重复继续,最后到4。一旦垂直边缘被处理,在水平边缘重复期间水平边缘被处理(图3中没有标识),数据样本不是置换到缓冲器或重新置换出缓冲器。当所有边缘被处理,一个完整的修改过的图像320便产生了。
图4示出了过滤处理装置400,根据本发明的实施例。过滤处理装置400可以在机器可访问或可读取媒介中执行,也可在网络中执行。在一个实施例中,过滤处理装置400执行图1和图2中方法100和200以及图3中系统300的各个部分。
过滤处理装置400包括第一屏蔽数据结构401A与第一缓冲器401B有关、第二屏蔽数据结构402A与第二缓冲器402B有关,以及过滤处理管理器403。屏蔽数据结构401A和402A可以是任何传统定义中的数据结构或对象。在一个实施例中,屏蔽数据结构401A和402A是位阵列或行,阵列或行的入口是与缓冲器401B或402B中一个封装的特定数据样本相对应的。
每个屏蔽数据结构401A和402A中的入口包括一个值。设置值(例如1或是)表示在过滤操作执行之后,特定缓冲器401B或402B内部的初始值变化成数据样本值。换句话说,设置值表示为提供给原始图像410的特定数据样本保存未变化的值。也就是说,设置可以被设定成表示一个动作,像保存未变化的值。未设置(例如0或否)可以表示在应用过滤之后数据样本任何改变的值将要被接受作为原始图像410的被修改版本的一部分。在屏蔽数据结构401A和402A内部的每一个值的入口通知过滤操作管理装置403关于是否过滤数据样本值或拒绝那些值有利于在原始图像410中被原始提供给那些数据样本的值。
在过滤处理装置400操作期间,过滤处理管理器403重复原始图像410的垂直和水平边缘直到每一个垂直和水平边缘都通过过滤处理管理器403处理完毕。每个垂直边缘被处理及每个水平边缘被处理。如果,在特定重复期间,边缘被处理成垂直边缘,那么数据样本在保存到第一和第二缓冲器401B和402B之前被置换。在一些实施例中,在由缓冲器401B和402B内部的过滤处理之前,数据样本也被转换成更多位长度或尺寸,用于解释可以提供更多位长度的过滤操作。
下一步,过滤处理管理器403,相对保存在第一缓冲器401B中的数据样本和保存在第二缓冲器402B中的数据样本来选择和执行过滤操作。这可以产生修改的数据样本值。第一和第二屏蔽数据结构401A和402A也因为入口改变值,如果特定入口的相应数据样本值在过滤操作值后被改变了。
最后,第一和第二数据结构401A和402A向过滤处理管理器403提供指令。该指令是每个第一和第二数据结构401A和402A内部的入口值,与第一和第二缓冲器401B和402B中的数据样本值相一致。第一和第二数据结构401A和402A中的特定入口值通知过滤处理管理器403接受缓冲器401B和402B其中一个的已过滤数据样本值或者拒绝值有利于原始图像410中原始提供给那些数据样本的值。
过滤处理管理器403随后再转变缓冲器401B任何在先的转换位长度到它们的初始长度,如果最近处理边缘是垂直边缘则重新置换缓冲器401B中的数据样本,且将数据写出缓冲器401B作为原始图像410已修改版本的一部分。过滤处理管理器303通过图像410继续重复直到每个原始图像410中的垂直和水平边缘被处理完毕。刚一完整地重复每个垂直和水平边缘就产生一个完整的已修改图像420。
上述描述是说明性的,而非限定性的。通过回顾上述描述,很多其他实施例对本领域的技术人员来说也是显而易见的。因此,本发明实施例的范围应当参照所附权利要求,并结合与这些权利要求等效的全部范围来确定。
根据37C.F.R.§1.72(b)提交的摘要是为了使读者快速地确定本技术表达的实质和中心思想。应当理解,该摘要的提交不是为了解释或限定权利要求的范围或含意。
在前述实施例的描述中,为使表达的更流畅,各种特征可组合在一单独的实施例中。该表达的方法不应当解释为反映如下目的,即,本发明要求保护的实施例具有的特征比清楚地记述在每条权利要求中的更多。而是,如随后的权利要求所反映的,发明主题可以具有相对于具备所有特征的单独公开的实施例更少的特征。因此,随后的权利要求是与实施例的描述相结合的,以每条权利要求独自作为一个独立的示例性的实施例。

Claims (29)

1.一种方法,包括:
获得围绕在图像边缘的第一边样本和第二边样本,其中样本超过由用于处理样本的一个或多个过滤器定义的范围,所述获得步骤进一步包括如下子步骤:
通过从第二缓冲器复制在先的内容来获得所述第一边样本,该在先的内容与所述方法在先重复期间的在先第二边样本相关;和
通过读取所述图像来获得第二边样本,
如果边缘是垂直边缘,置换所述第二边样本;
在所述第一缓冲器和所述第二缓冲器中装入样本;和
过滤所述样本来产生第一和第二结果。
2.如权利要求1所述的方法,其特征在于,所述过滤步骤包括,相对于使用SIMD技术的样本来处理一个或多个过滤器。
3.如权利要求2所述的方法,其特征在于,所述过滤步骤包括,相对于第一边样本和第二边样本来处理4位宽或8位宽SIMD操作。
4.如权利要求1所述的方法,其特征在于,还包括,使一个或多个位屏蔽与第一和第二缓冲器中的第一和第二样本相关联,其中,所述位屏蔽表示是接受还是拒绝第一和第二结果中包括的每一个结果。
5.如权利要求1所述的方法,其特征在于,还包括,相对于一个或多个位屏蔽来处理一个或多个布尔逻辑操作,从而确定是选择性地接受还是拒绝第一和第二结果中包括的一个或多个结果。
6.如权利要求1所述的方法,其特征在于,还包括,如果样本与垂直边缘相关,重新置换第一和第二结果,并将其写回作为图像修改版本的一部分。
7.如权利要求1所述的方法,其特征在于,还包括,将至少一个样本从一位长度转换到更大的长度。
8.一种方法,包括:
识别图像最近未处理的边缘;
获得最近未处理边缘中第一边上的八个样本的四个集合以及第二边上的八个样本的四个集合;
如果最近未处理的边缘是垂直边缘,置换所述获得样本中的至少一部分;
在第一缓冲器和第二缓冲器中保存样本;以及
分别在第一边样本和第二边样本的缓冲器内部过滤第一边样本和第二边样本。
9.如权利要求8所述的方法,其特征在于,还包括:
如果最近未处理的边缘是垂直边缘,在第一和第二缓冲器内部重新置换第一边样本和第二边样本;和
向所述第一和第二缓冲器写入图像修改版本的一部分。
10.如权利要求8所述的方法,其特征在于,还包括,在图像内部将最近未处理的边缘分配到下一个未处理的边缘,且重复所述方法直到图像的每一个垂直和水平边缘都被处理。
11.如权利要求8所述的方法,其特征在于,还包括,在图像内部将最近未处理的边缘分配到下一个未处理的边缘,且其中第二边上的八个样本的四个集合变成下一个未处理边缘的第一边上的八个样本的四个集合,其中,如果下一个未处理边缘是垂直边缘,则避免对第一边上样本的置换,且对第二边的样本发生置换。
12.如权利要求8所述的方法,其特征在于,还包括:
过滤之后将屏蔽分配到与第一和第二边的样本相关的修改结果;及
以与屏蔽相关的值为基础,确定是否接受数个修改结果。
13.如权利要求12所述的方法,其特征在于,所述确定步骤包括,处理一个或多个布尔逻辑操作并响应逻辑结果来选择或忽略数个修改结果。
14.如权利要求8所述的方法,其特征在于,还包括,在过滤前,将第一和第二缓冲器内部的第一和第二边的8位样本转换成16位样本。
15.如权利要求14所述的方法,其特征在于,还包括:
过滤后,将位屏蔽分配给第一缓冲器中的第一结果以及第二缓冲器中的第二结果;
基于位屏蔽,确定第一结果和第二结果中哪一个具有被保存或被忽略的变化;
将16位的第一结果转换为8位的第一结果,将16位的第二结果转换为8位的第二结果;
如果最近未处理的边缘是垂直边缘,则在第一和第二缓冲器内部重新置换8位的第一结果和8位的第二结果;和
写入第一和第二缓冲器作为图像修改版本的一部分。
16.一种系统,包括:
第一缓冲器;
第二缓冲器;和
过滤处理管理器,用于获得图像未处理边缘两边上的8位样本,如果未处理的边缘是垂直边缘则置换所述获得样本中的至少一部分,并为第一缓冲器中的一边保存一设置,为第二缓冲器中的另一边保存另一设置,且检测样本的值,并响应该值来选择一过滤器从而相对所述样本进行处理。
17.如权利要求16所述的系统,其特征在于,过滤处理管理器将位屏蔽分配给第一和第二缓冲器中的过滤器结果,其中每个屏蔽表示样本的初始值是否被保存来替换包括在过滤器结果中的已过滤结果。
18.如权利要求17所述的系统,其特征在于,过滤处理管理器根据屏蔽处理一个或多个布尔逻辑操作,从而确定为了有利于初始值,是接受还是拒绝在处理所选过滤器之后修改的选择结果。
19.如权利要求18所述的系统,其特征在于,如果未处理边缘是垂直边缘,则过滤处理管理器重新置换第一和第二缓冲器,并向重新置换的第一和第二缓冲器写入图像修改版本的一部分。
20.如权利要求16所述的系统,其特征在于,在处理可选过滤器之前,过滤处理管理器将第一和第二缓冲器内部的8位样本转换成16位样本。
21.如权利要求16所述的系统,其特征在于,过滤处理管理器重复移动图像的垂直和水平边缘,直到通过可选的过滤器将该图像的每个边缘都处理完毕。
22.一种方法,包括如下步骤:
获得图像未处理边缘两边上的第一和第二区域;
如果未处理的边缘是垂直边缘,则置换与第一和第二区域相关的数据;
在第一缓冲器中保存第一区域的数据;
在第二缓冲器中保存第二区域的数据;
检测数据的值,且相对响应该值的数据选择一个或多个用于处理的过滤器;
响应对所述一个或多个过滤器的处理,在第一缓冲器中保存第一结果,在第二缓冲器中保存第二结果;以及
如果未处理边缘是垂直边缘,选择性地再置换,并写入第一结果和第二结果作为表示图像修改版本一部分的输出。
23.如权利要求22所述的方法,其特征在于,还包括步骤:
在检测值之前,将第一和第二区域数据从第一位长转换成第二位长;和
在选择性写入前,将第一结果和第二结果从第二位长再转换回第一位长。
24.如权利要求22所述的方法,其特征在于,选择性的再置换和写入进一步包括:
将屏蔽分配给第一和第二结果的每一个,其中每一个屏蔽表示初始未过滤值是否被保存;和
根据屏蔽来执行一个或多个布尔逻辑操作,从而确定为了有利于初始值,在处理了一个或多个过滤器之后发生变化的第一和第二结果中的哪个被接受,而哪个被拒绝。
25.如权利要求22所述的方法,其特征在于,所述获得步骤还包括,从图像中读出第一和第二区域作为两个8位样本。
26.如权利要求22所述的方法,其特征在于,还包括,重复执行指令,直到图像的每个垂直和水平边缘都被处理。
27.一种装置,位于计算机可访问的媒介中,包括:
第一屏蔽数据结构;
第二屏蔽数据结构;和
第一缓冲器,与所述第一屏蔽数据结构相关联;
第二缓冲器,与所述第二屏蔽数据结构相关联;和
一过滤处理管理器,产生通过向围绕边缘的样本应用一个或多个过滤器而产生的图像的修改版本,其中,由一个或多个过滤器施加的变化响应第一和第二屏蔽数据结构的值而被接受或拒绝。
28.如权利要求27所述的装置,其特征在于,第一和第二屏蔽数据结构是位图阵列。
29.如权利要求27所述的装置,其特征在于,当被过滤处理管理器处理时,图像处于解压的格式。
CNB2005100923883A 2004-06-29 2005-06-29 图像边缘过滤处理 Expired - Fee Related CN100354892C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/880,977 2004-06-29
US10/880,977 US7551322B2 (en) 2004-06-29 2004-06-29 Image edge filtering

Publications (2)

Publication Number Publication Date
CN1728182A CN1728182A (zh) 2006-02-01
CN100354892C true CN100354892C (zh) 2007-12-12

Family

ID=35345383

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100923883A Expired - Fee Related CN100354892C (zh) 2004-06-29 2005-06-29 图像边缘过滤处理

Country Status (7)

Country Link
US (1) US7551322B2 (zh)
EP (1) EP1761896B1 (zh)
CN (1) CN100354892C (zh)
AT (1) ATE438158T1 (zh)
DE (1) DE602005015716D1 (zh)
TW (1) TWI310528B (zh)
WO (1) WO2006012340A2 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7551322B2 (en) 2004-06-29 2009-06-23 Intel Corporation Image edge filtering
KR100614647B1 (ko) * 2004-07-02 2006-08-22 삼성전자주식회사 디블록킹 필터에서의 효과적인 에지 필터링 연산을 위한레지스터 어레이 구조
GB0807803D0 (en) * 2008-04-29 2008-06-04 Imagination Tech Ltd An efficient apparatus for fast video edge filitering
TWI447643B (zh) * 2011-06-17 2014-08-01 Mstar Semiconductor Inc 資料存取方法以及可存取資料的電子裝置
BR122020018119B1 (pt) * 2012-01-17 2023-11-21 Gensquare Llc Método para aplicar um deslocamento de borda
JP6116291B2 (ja) * 2013-02-27 2017-04-19 オリンパス株式会社 画像処理装置、画像処理方法及び画像処理プログラム
CN104243996B (zh) * 2013-06-14 2017-07-28 瑞昱半导体股份有限公司 回路内处理装置及选择性的像素差值补偿方法和编码系统
JP6874626B2 (ja) * 2017-09-29 2021-05-19 ブラザー工業株式会社 プリンタドライバ
CN111105356B (zh) * 2019-12-26 2023-06-02 Tcl华星光电技术有限公司 图像处理方法、装置及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369447A (en) * 1991-11-15 1994-11-29 Sony United Kingdom Ltd. Video image filtering
CN1174478A (zh) * 1996-05-14 1998-02-25 大宇电子株式会社 用于去除运动画面解码器中成块效应的装置及方法
CN1316723A (zh) * 1999-09-24 2001-10-10 任天堂株式会社 在3维视频图像系统中提供卡通轮廓的方法和装置
US6384872B1 (en) * 1999-09-13 2002-05-07 Intel Corporation Method and apparatus for interlaced image enhancement

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466581B1 (en) * 1998-08-03 2002-10-15 Ati Technologies, Inc. Multistream data packet transfer apparatus and method
US6999100B1 (en) * 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6993191B2 (en) 2001-05-04 2006-01-31 Pts Corporation Methods and apparatus for removing compression artifacts in video sequences
US6823087B1 (en) * 2001-05-15 2004-11-23 Advanced Micro Devices, Inc. Parallel edge filters in video codec
US6831658B2 (en) * 2002-07-22 2004-12-14 Sun Microsystems, Inc. Anti-aliasing interlaced video formats for large kernel convolution
US7463688B2 (en) * 2003-01-16 2008-12-09 Samsung Electronics Co., Ltd. Methods and apparatus for removing blocking artifacts of MPEG signals in real-time video reception
US7170529B2 (en) * 2003-10-24 2007-01-30 Sigmatel, Inc. Image processing
US7551322B2 (en) 2004-06-29 2009-06-23 Intel Corporation Image edge filtering

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369447A (en) * 1991-11-15 1994-11-29 Sony United Kingdom Ltd. Video image filtering
CN1174478A (zh) * 1996-05-14 1998-02-25 大宇电子株式会社 用于去除运动画面解码器中成块效应的装置及方法
US6384872B1 (en) * 1999-09-13 2002-05-07 Intel Corporation Method and apparatus for interlaced image enhancement
CN1316723A (zh) * 1999-09-24 2001-10-10 任天堂株式会社 在3维视频图像系统中提供卡通轮廓的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ARCHITETURE DISIGN FOR DEBLOCKING FILTER INH.264/JVT/AVC.Yu.Wen Huang,To.Wei Chen,Bing.Yu Hsieh,Tu.ChihWang,Te.Hao Chang,Liang.Gee Chen.Graduate Insrtitute of Electronics Engineering and Department of Electrical Engineering,National Taiwan University.2003 *

Also Published As

Publication number Publication date
EP1761896A2 (en) 2007-03-14
EP1761896B1 (en) 2009-07-29
US20050286082A1 (en) 2005-12-29
WO2006012340A3 (en) 2006-11-23
TWI310528B (en) 2009-06-01
US7551322B2 (en) 2009-06-23
DE602005015716D1 (de) 2009-09-10
TW200606756A (en) 2006-02-16
WO2006012340A2 (en) 2006-02-02
ATE438158T1 (de) 2009-08-15
CN1728182A (zh) 2006-02-01

Similar Documents

Publication Publication Date Title
CN100354892C (zh) 图像边缘过滤处理
DE602004009591T2 (de) Differenz-codierung durch verwendung eines 3d-graphikprozessors
US6347157B2 (en) System and method for encoding a video sequence using spatial and temporal transforms
JP2523222B2 (ja) 画像縮小/拡大方法及び装置
JP3104868B2 (ja) 画像処理装置
JP2009505497A (ja) Simd型重複変換ベースのデジタルメディア符号化/復号化
DE112009004320T5 (de) Speicher-Untersystem
JPH0426149B2 (zh)
JPH10198337A (ja) 高速アスペクト比ズーミング及び圧縮及びシーリングを用いるサムネイル操作
KR20110074884A (ko) 화상처리장치 및 화상처리방법
JPH02288984A (ja) ビットマップ変更方法
DE60210720T2 (de) Eine 2D FIFO-Vorrichtung für blockbasierte Kodierung und Verfahren dazu
JP2007535267A (ja) 画像処理装置及び方法
US5694490A (en) System and method for a simultaneous multi-band block-stop filter
CN112184587B (zh) 一种边缘数据增强模型、以及基于所述模型的高效边缘数据增强方法及系统
JP2003324613A (ja) ウエーブレット処理装置及びウエーブレット処理方法
US7386179B2 (en) Encoding apparatus and method, and decoding apparatus, method and program
CN100444633C (zh) 图像处理方法和图像处理装置
JP2004517527A (ja) グラフィック画像符号化
JPH0479696A (ja) ブロック化装置
JP2008186123A (ja) 画像データ処理方法、画像データ処理プログラム及び画像データ処理装置
US20090245660A1 (en) Method and device for classifying samples representing a digital image signal
CN100574435C (zh) 影像压缩方法
JPH04245865A (ja) 画像処理装置
US7835584B1 (en) Method and apparatus for processing video data

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071212

Termination date: 20150629

EXPY Termination of patent right or utility model