块噪声检测和滤波的制作方法

文档序号:6770479阅读:297来源:国知局
专利名称:块噪声检测和滤波的制作方法
块噪声检测和滤波优先权声明本申请要求2009 年 2 月 10 日提交的题为 “BL0CKN0ISEDETECTI0N AND FILTER,, 的美国临时专利申请No. 61/151,434的优先权,该临时申请的内容明白地援引包含于此。背景例如图像、音频或视频内容的数字内容的压缩可能将伪像(artifacts)引入被压缩的数字内容中。引入伪像的类型和程度取决于数据类型与压缩技术。压缩伪像一般发生在例如DVD的媒体中,例如MPEG-I、MPEG-2、MPEG-4、JPEG等压缩的视频格式中。尤其,块噪声可能存在于数字压缩的视频或图像文件中。附图简述

图1示出表示块噪声如何被引入到数字图像和/或视频中以及如何使用由块噪声检测器确定的控制参数应用块噪声滤波器的方框图。图2给出阐述具有图像或视频处理器的系统的一个示例的方框图,该图像或视频处理器具有块噪声检测器和/或块噪声滤波器。图3给出阐述具有图像或视频处理器的光盘装置的一个示例的方框图,该图像或视频处理器具有块噪声检测器和/或块噪声滤波器。图4给出阐述在块噪声检测器内的组件的一个示例的方框图。图5给出阐述在块噪声滤波器内的组件的一个示例的方框图。图6给出在行或列上的差值幅度的平均的一个示例。图7给出应用于平均差值幅度的中值滤波器的输出的一个示例。图8给出具有已移除的DC电平的平均差值幅度的一个示例。图9给出具有已移除的DC电平及边缘峰值抑制的平均差值幅度的一个示例。图10给出在各种块间距和偏移处的经归一化总和差值幅度的一个示例。图11给出针对已缩放的图像的平均差值幅度的一个示例。图12给出针对已缩放的图像的在各块间距和偏移处的归一化总和差值幅度的一个示例。图13给出针对已缩放的图像的在各种块间距和偏移处的归一化总和差值幅度的一个示例,其中相邻的非零间隔值被求和。图14给出在行或列上的平均差值幅度的一个示例。图15给出表现出在具有可变偏移的固定间距处多像素宽峰值的归一化总和差值幅度的一个示例。图16A给出在具有可变偏移的固定间距处的归一化总和差值幅度的一个示例,其中相邻非零间隔值被求和。图16B给出一表格,该表格具有通过控制图15和图16A中的总和差值幅度获得的值例。图17-18给出将块噪声滤波器作用于具有和不具有缩放效果的噪声边界的效果的示例。
图19给出用于块噪声检测的示例过程的流程图。图20给出用于选择块噪声滤波器的控制参数的示例过程的流程图。图21给出将块噪声滤波器应用于图像的流程图。图22示出以计算机系统的示例形式的机器的示意图,在该计算机系统中可执行使机器执行这里描述的一个或多个方法的指令集。实施方式下面的描述及附图是解说性的且不应视为限制。描述了许多具体细节以提供公开内容的透彻理解。然而,在某些情况下,不对公知或惯常的细节进行描述以避免混淆说明。 对本公开中的一个实施例的引述可以但不一定是针对同一实施例的引述;并且这些引述表示诸实施例中的至少一个实施例。说明书中对于“一实施例”或“一个实施例”的引述意味着结合该实施例描述的某一具体特征、结构或特性包括在本公开的至少一个实施例中。说明书中各处出现的短语“在一个实施例中”不一定全部指相同的实施例,也不是与其它实施例相互排斥的单独或替代的实施例。此外,所描述的各种特征可由一些实施例展现而不由其它实施例展现。同样,所描述的各种要件可能是一些实施例的要件而不是其它实施例的要件。在本公开的上下文中以及使用各术语的特定背景中,本说明书中使用的术语一般具有业内的普遍意义。用来描述公开内容的某些术语在下文中或说明书其它部分中予以描述,以向关于本公开内容的实践者提供附加引导。为了方便,可突出显示某些术语,例如使用斜体字和/或引号。使用突出显示对术语的范围和意义没有任何影响;在相同背景中,不管是否被突出显示,该术语的范围和意义是相同的。应当理解,同一事物能用一种以上的方法予以说明。因此,替代性文字及同义字可用于这里记载的任何一个或多个术语,该术语是否已在此被详细说明或讨论了并不是那么重要。已提供某些术语的同义词。一个或多个同义词的引用不排除其它同义词的使用。这里讨论的任何术语在本说明书中任何位置的示例使用仅是说明性的,并且不打算进一步限制本公开或任何范例性术语的范围和意义。同样,本公开不限于在本说明书中给出的各个实施例。下面给出根据本公开的实施例的仪器、装置、方法及其关联结果的示例,其不旨在进一步限制公开的范围。注意示例中使用的标题与副标题是为了方便读者,而不应当限制本公开的范围。除非另有定义,所有的技术及科学术语在这里具有本领域内普通技术人员共同理解的相同意义。在构成冲突的情况下,以本文件(包括定义)为准。本公开的实施例包括用于块噪声检测和滤波的系统和方法。图1示出表示块噪声106如何被引入到数字图像和/或视频102中且如何使用由块噪声检测器152确定的控制参数来应用块噪声滤波器154的方框图100。典型图像或视频压缩方案将诸如块噪声的伪像引入到数字图像/视频102里。尤其,通过应用有损压缩方案,可能将块噪声引入图像/视频106中。在此描述的技术涉及块噪声检测器152,其分析和处理受影响的数字图像/视频 106并识别块噪声的属性/特性(如,块大小、偏移、边界位置、块噪声的强度(例如块噪声的严重性))和/或图像特性(如,图像中的细节量)。块噪声检测器152可使用块噪声和/或图像特性产生控制参数108至块噪声滤波器154。控制参数108可包括块噪声滤波器增益值、边缘强度乘数等。块噪声滤波器IM可在原始图像上工作以减少或消除块噪声伪像的能见度。在一实施例中,经由数字压缩引入的块噪声可通过仅识别图像中以(大约)固定的间隔隔开的唯独垂直或唯独水平边缘而检测到。检测可通过分析水平和垂直亮度(Iuma) 像素差以检测规则间隔的峰值来施行。基于此检测,产生一水平及垂直图,该水平及垂直图指示块噪声边界的位置。可从测得的亮度块大小推导出色度块大小并使用色度像素差数据为色度构成分离边界图。已在检测前经分辨率缩放的图像也使用用于确定大小和偏移的修正方案来适应,并在块边界图中作出由于此缩放的块边界模糊的规定。这些块边界图可被传给一噪声滤波器函数,该噪声滤波器函数基于图内容过滤图像中的块噪声。一般而言,块噪声检测在整个图像帧或大部分图像帧上执行,并且检测结果通常不完整,直到已分析整个帧或帧的绝大部分为止。此通过在分析中引入更多数据而提高了检测的统计可靠性。在视频源的情况下,检测结果可能仍不可用直至帧结束为止,从而招致检测过程中的1帧延迟。因此块噪声滤波器操作通常应用于后面的帧周期。块噪声边界的检测仅为空间上,非关乎时域方面,即其个别地在一视频帧/场序中在各单个图像帧上执行。除了水平及垂直块边界的位置,此函数也自动地确定用于块噪声滤波器功能的控制参数。这些参数包括水平和垂直滤波器的强度,以及由滤波器使用以沿图像中对象的边缘抑制噪声及滤除伪像的水平和垂直梯度乘数。检测块噪声和计算控制参数的过程将进一步结合图6-16和图19-20的描述更详细地予以说明。图2示出阐述具有图像或视频处理器250的系统200的示例的方框图,图像或视频处理器250具有块噪声检测器252和/或块噪声滤波器254。系统200包括处理单元202、存储器204和/或图像/视频处理器250。在一些实施例中,任何上述模块/装置或其代表功能可整体或部分地处在系统200外部。系统200 —般能接收和处理起源于许多源的数字图像、数字视频和/或数字音频, 许多源包括但不限于因特网内容(流数据和/或在本机储存)、由数字成像设备(如摄录像机、相机等等)录制的内容、使用者产生的内容、在存储介质上存储的内容(如,VHS、磁性介质或光学介质)等。光学媒体格式的可兼容类型可包括但不限于⑶、DVD、HD-DVD、蓝光和 HDV0兼容性光盘也可以是只读存储器(ROM)、一写多读式(WORM)、交互式(I)、和/或可擦除式(E)。具有块噪声的附加视频源包括例如数字广播电视、卫星电视、数字有线电视等。系统200的一个实施例包括耦合至存储器204的处理单元202。该处理单元202 可以是能执行由系统200使用的指令的软件代理和/或硬件组件的任何组合。可通过与存储器204通信而存取指令。在一个实施例中,处理单元202在内部和/或外部请求并执行必要的计算。处理单元202可与存储器204通信,在一些实施例中,存储器204储存可由处理单元202和/或图像处理器250执行的指令序列。存储器204可以是作为图像处理器250的数据输入/输出缓冲器的软件代理和/ 或硬件组件的任何组合。存储器204中的数据可从系统200内部和/或外部的任何实体接收到。系统200的一个实施例包括图像/视频处理器250,该图像/视频处理器250可耦合于存储器204。图像处理器250可以是软件代理和/或硬件组件的任何组合,其能执行图像和/或视频处理,包括例如块噪声检测和块噪声滤除。图像处理器250的一个实施例包括块噪声检测器252和/或块噪声滤波器254。数字图像/视频可从存储器204接收或检索。另外,对于块噪声检测和/或块噪声滤除,进一步参考图6-16和图19-20的示例进行描述,可由图像处理器250应用的处理包括作为示例而非限制的几何变换(如,放大、 缩放、减少、旋转等等)、色彩调整、亮度调整、对比度调整、量化、转换至不同的色彩空间、数字合成、光学合成、内插、假频减少、滤波、图像编辑、图像配准、图像稳定化、图像分离等。块噪声检测器252的示例性组件/模块进一步结合图4的示例予以说明,且块噪声滤波器的示例组件进一步结合图5的示例予以说明。图3给出阐述具有图像或视频处理器350的光盘装置300的一个示例的方框图, 图像或视频处理器350具有块噪声检测器352和/或块噪声滤波器354。媒体播放机(如,光盘装置300)可包括光盘读取器302、处理单元304、存储器单元306和/或图像/视频处理器。在一些实施例中,任何上述模块/装置或其代表的功能可整体或部分地处于媒体播放机外部(例如光盘装置300)。在替代实施例中,对于光盘装置外的媒体播放机,应理解光盘读取器302可在没有偏离本公开内容的新颖技术的情形下用任何其它适合媒体读取器来代替。其它类型的适宜媒体读取器可在已知和/或传统手段下工作。光盘读取器302可以是软件代理和/或硬件组件的任何组合,其能将光投射到光盘上,检测从光盘反射的光和/或将检测到的光转化成电信号。光盘读取器302能读取任何光盘,包括但不限于⑶、DVD、HD-DVD、蓝光和HDV。兼容性光盘亦可包括只读存储器(ROM), 一写多读式(WORM),交互式(I),和/或可擦除式(E)。在一实施例中,光盘装置300包括存储器306,该存储器306耦合至光盘读取器 302。存储器306可以是软件代理和/或硬件组件的任何组合,其充当光盘读取器302的数据输入/输出缓冲器。光盘装置300的一个实施例包括耦合至与光盘读取器302的处理单元304。在一些示例中,处理单元304耦合至存储器306和/或图像/视频处理器350。处理单元304可以是能执行由光盘装置300使用的指令的软件代理和/或硬件组件的任何组合。在一实施例中,处理单元304处理内部和/或外部请求并执行必要的计算。处理单元304可与存储器406通信,存储器406在一些实施例中储存可由处理单元304和/或图像/视频处理器350执行的指令序列。图像/视频处理器350可以是能执行图像、视频和/或数字音频处理的软件代理和/或硬件组件的任何组合。在一实施例中,处理器350包括块噪声检测器352和/或块噪声滤波器354以执行一些或所有与块噪声检测和/或滤除关联的任务。块噪声滤波器252的示例性组件/模块进一步参照图4的示例而解说,块噪声滤波器的示例性组件进一步参照图5的示例而解
说ο图4描绘出阐述在块噪声检测器452中的组件的一个示例的方框图。
块噪声检测器452包括差幅(dMag)发生器402、dMag处理器404、具有可变间距 /固定间距模块和缩放模块408的dMag加法器406、块大小和偏移评估器410、边界图发生器412、滤波器增益发生器414和/或边缘梯度乘数发生器416 (例如它可以是滤波器控制参数发生器420的组件)。在一些实施例中,任何上述模块/装置或代表其的功能可以整体或部分处于检测器452的外部。差幅(dMag)发生器402可实现为例如在机器上的计算机可读介质或计算机可读存储介质中,实现在固件、硬件、其组合形式中或实现在任何可应用的已知或传统设备或系统中体现的软件。在本说明书中描述的这种及其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。dMag发生器402可以是软件代理和/或硬件组件的任何组合,它能针对图像中的相邻像素(如,帧或视频的图像帧)计算像素值中的差幅。在一实施例中,dMag发生器402 包括优化器和行/列平均发生器。在一实施例中,将图像的差幅(dMag)用于图像或视频的块噪声检测。该差幅可通过计算像素值中的水平和垂直的1像素差的发生器402来确定。这些是相邻像素位置间的差别的幅度-即对于像素位置N,差幅是像素N减去像素N+1的绝对像素值。可针对亮度和色度计算差幅。计算出的dMag值可通过一系列操作中的一个或多个得到优化(如通过dMag优化器)以增强用于指示块噪声的信噪比(SNI )。例如,自块噪声产生的差值相比于来自图像中的主要待征一般是相对小的值。例如,源自噪声块之间的边界的垂直和水平线的阴影线相比图像中其它图形的轮廓一般较淡。为了防止较大量值图像特征湮没块噪声差并可能造成错的正块噪声边界识别,越过某一阈值的差值的量值可被限制为该阈值或该阈值附近。作为一示例,对于使用像素值 8位表征的图像,该阈值可以是10 (出自255的8位最大值)。此外,由于块噪声边界引起的差幅中的小峰值一般具有一像素宽度。(在某些情况下由于向上缩放、色度向上采样或单纯图像像素值的效果可稍微较大)。结果,可由此检测和隔离这些特征。这样做的一种方式是使用排除这些特征的滤除过程。如果接着从图像中减去该滤波器的输出,则仅留下较小的特征,例如由于块噪声的差幅值。该过程增大了差幅图像的信噪比,其中在这种情况下的“信号”是噪声块之间的边界的差幅且一般是块噪声的结果。在一实施例中,行/列平均发生器沿彼此垂直的方向对水平和垂直差幅求和并随后求平均(例如水平差幅中的行被求平均(垂直地),且垂直差幅中的列被求平均(水平地)。使用这些结果,行/列平均发生器可产生等于图像宽度的水平差幅的向量,以及等于图像高度的垂直差幅的向量。求平均过程倾向于加强规则块边界特征。然而,越多不规则定位的残留图像数据或随机噪声数据未被加强,且在差幅平均值中引入一变化的背景电平。图6描绘横跨列或行的差幅(dMag)的平均的示例,其示出平均水平差幅的曲线图 600。各水平位置的差幅在垂直轴604上示出,并且越过图像宽度的像素位置沿水平轴602 示出。图像中规则间隔的峰值606通常与块之间的水平边界对应。曲线图的平均值或“DC”电平608主要源自随机噪声和低电平图像数据的残留。图像600末尾处的大峰值610起因于原始图像和图像左、右侧的窄垂直黑条之间的大差异。 为了解说目的,在这里(以及下面的章节中)只显示水平差幅曲线图。由垂直曲线图获得类似结果。该方法大体上是针对块边界位置执行的,块边界位置对于横跨所有列的垂直差幅以及横跨所有行的水平差幅而言是相同的。在块大小横跨图像显著变化的示例中,可执行经修正的程序。如图6的示例中所说明,通常有一呈现在平均差幅向量中的背景或“DC”电平608。 该背景或“DC”电平608通过使用类似于前面处理步骤的中值滤波器方法而被很大程度地移除。中值滤波器可通过行/列平均发生器应用至平均差幅,且随后从平均的差幅中减去该结果。中值滤波器应用至IxN像素的区域,其中N可以是固定的或可编程的。如先前情况,N值7已凭经验地显示运作良好。图7描绘应用至平均差幅的中值滤波器的输出706的示例。(注意图像700中的垂直标度704被归一化至曲线图的数据内容,因此中值滤波器输出看起来较之前的曲线图放大)。图8描绘具有已通过将中值滤波器的输出从平均差幅中减去而移除DC电平的平均差幅的示例。可以清楚地看出背景或“DC”电平已被移除。图8的示例显示由于原始图像的黑色边界而在平均差幅边缘处仍有峰值810。这些边界可能起因于长宽比校正(即,信箱状(letterbox)、邮筒(pillarbox))或有时只是在图像边缘的小黑条纹。后续的步骤将分析求平均的差幅以确定通过数据中的峰值表示的块边界的大小及位置。然而,这些极大峰值的存在,因为其大小而可将块大小和位置的分析抛弃。因而,有利的是在块大小和位置检测之前去除这些峰值或显著地减少其量值。应付这些峰值的一种方法是简单地抑制差幅向量的边缘附近的所有值。尽管这种方法经常运作良好,但其假设知道图像的实际边缘位于何处。然而,这并非总是可靠地知道的。在这里使用的技术用以识别向量中的第一若干最大值,比较这些最大值的幅度,然后, 基于比较的结果,减小最大峰值的振幅。将该算法(例如通过行/列平均值发生器)应用至平均差值减去中值的结果示出于图9的示例中。(注意图像中的垂直标度904对曲线图数据内容归一化,以致减小大峰值进而导致对于总数据集而言更为均一的标度)。检测器404的一个实施例包括dMag处理器404。该dMag处理器404可实现为例如在机器上的计算机可读媒体或计算机可读存储介质中,固件、硬件及其组合中或在任何可应用之已知或传统设备或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。dMag处理器404可以是硬件组件和/或软件代理的任何组合,它能分析、处理和/ 或滤除该差幅数据以增大指示图像或视频帧中的块噪声的SNR。在一实施例中,dMag处理器404实现滤波器,以隔离对应于块噪声的特征。例如, 可使用中值滤波器来隔离特征。该中值滤波器或其它类似滤波器可在小区域内选择一中间值像素。对于水平差幅,处理器404可将中值滤波器应用至IXN像素的水平定向区域;对于垂直差幅,处理器404可将中值滤波器应用至NX 1像素的垂直定向区域。在此种情况下N可以是固定的或可编程的。例如,可使用7的N值,主要是因为最普通的块大小是8像素。在一实施例中,处理器404从未滤除差幅中减去中值滤波器的输出,其中小于零的值被限位至零。该过程可能去除大多数图像特征,从而增加用于在噪声块间的边界检测的信噪比。在一实施例中,dMag处理器404可抑制围绕图像中对象边缘的差幅值。即使在从差幅中减去中间值后,仍有来自原始图像的对象边缘的残余。这些现象可通过检测原始图像中的边缘及抑制这些位置的差幅而进一步减少。在一实施例中,处理器404执行边缘检测,例如,通过将垂直和水平滤波器(如, 3x3索贝尔滤波器)应用至原始图像的亮度部分,而后取各结果的绝对值以得到垂直和水平梯度幅度。该索贝尔滤波器例如为HorSobelFilter3x3 =[-101-2 0 2-1 0 1 ];VerSobelFilter3x3 =[12 10 0 0-1 -2 -1 ];(注意滤波器的输出必须由除以4来归一化)。将梯度幅度与阈值比较并可在梯度幅度超过阈值的位置将差幅设定至零。使用适当的梯度幅度单独地处理水平和垂直差幅。可针对8位梯度幅度表示法将典型阈值设定成 20。该过程进一步改进差幅数据的信噪比。检测器404的一个实施例包括dMag加法器406。该dMag加法器406可实现为例如在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。dMag加法器406可以是能产生固定和/或可变的间隔/间距总和的硬件组件和/ 或软件代理的任何组合。加法器406可在变化间距及偏移处对差幅求和,以识别噪声块的大小及其位置。 加法器406可计算差幅的归一化总和,在数据开始阶段在一定范围的间隔间距和一定范围的偏移处,该差幅为均勻地(或实质上均勻地)横跨差值向量的间隔。间隔大小可在最小-最大块大小范围内(MinSize =MaxSize)且偏移范围可在最小-最大开始位置范围内(MinOffset =MaxOffset)。间隔大小标识块的大小,而偏移标识块的位置。加法器406可针对块大小范围内的每个项目和偏移之范围内的每个项目个别地求和差幅数据。加法器406可随后基于各大小的块数目归一化该总和,各大小之块数目可存在于横跨差幅向量中的多个位置。一旦计算出所有间隔大小和偏移的总和,通过加法器406计算所有总和的平均值。从间隔/偏移总和减去该平均值以改善SNR。负结果可限位至零。与差幅向量中的块边界峰值的实际位置对准的间隔大小和偏移典型地具有最大 (或接近最大)的总和。对于整数倍的大小间隔而言也是如此。该间隔大小(及其倍数)当其与差幅向量中的块边界峰值对准时也在间隔大小的偏移处重复。图10描绘在各种块间距和偏移处的归一化求和的差值的一个示例,其表现出用于水平差幅向量的所得间隔/偏移总和。轴1002表示偏移值,轴1004表示归一化求和的差幅,而曲线图1000表示的不同曲线针对不同的间隔大小。加法器406可计算所有间隔大小的总和,在此示例中,从4至16,而对于偏移则从 1至32。该曲线图中的最高幅值用于8和16的块大小。两种大小具有每8像素重复的峰值,这指示块大小最可能为8。第一值的偏移为8,其指示第一块边界位于第8像素位置处或其附近(其预期用于8像素宽的块,其中第一块对准图像的左边缘)。当图像在块噪声检测之前已缩放时,可横跨多个(例如两个)像素抹除块之间的锐利边界。其发生原因是在大多数定标器中固有的低通滤波及图像中的像素数目(并因此块中的像素数)改变的事实。结果,在不同差幅向量中检测到的块边界峰值可能不是单个像素宽的峰值,而是大于一个像素宽度。图11描绘用于已缩放的图像的平均差幅并可发生峰值抹除的一个示例。曲线图1100是图像的垂直差幅的放大区,该图像以缩放率2/3比例缩小。结果, 含有三个原始8像素块的M像素被缩放至16像素,得到三个5又1/3像素块(平均值)。 在图11的示例的曲线图1100中,可以观察到由于向下缩放过程中的块边界抹除,每个第三峰值实际上是2倍像素宽。当处理曲线图1100中显示的差幅向量以计算间隔/偏移总和时(如先前步骤描述),抹除的块边缘导致可能多于1倍像素宽的间隔峰值。图12描绘用于已被缩放的图像的在各种块间距和偏移处的归一化总和差幅的一个示例。在示例性曲线图1200中,具有最大振幅的间隔大小为16,它与三个5又1/3像素块的组对应。取决于将2倍像素宽间隔峰值的哪一部分用来确定到下一峰值的距离,间隔 16峰值之间的偏移间距在5和6像素间变化。较低幅度间隔也表示类似的行为,例如8像素间隔也具有清楚抹除的间隔峰值。这些抹除的间隔峰值通过向峰值位置中增加不确定性和减小间隔峰值振幅(由于用于名义偏移的值横跨一个以上的位置)使确定实际块大小为何更为困难。围绕这个问题的一种方法是将抹除的间隔峰值结合成单一值(例如通过缩放管理器408)。加法器406的一个实施例包括缩放管理器408。缩放管理器408例如实现为在一机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在此说明书中描述的这种或其它引擎系意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。缩放管理器408可以是能将加法过程调整至已被缩放的图像的硬件组件和/或软件代理的任何组合。例如,缩放管理器408可将未在各侧通过零值定界的一间隔峰值的实例结合成单一峰值。这可例如通过将峰值各侧上的两个值加至峰值中并随后将边界值设定为零来执行。仅针对大于两邻值的间隔/偏移值来执行求和运算。对相邻非零间隔值求和的结果示例表示在图13的示例性曲线图1300中。这基于与图12中的曲线图1200相同的数据,但间隔值已针对相邻非零位置求和。现在更清楚地定义各峰值位置,且横跨变化偏移具有规则的振幅。
注意当图像缩放尚未发生时,通常各峰值是清楚的,在各侧上具有零值。因而,执行上述的峰值数据合并操作影响很小或者没有影响,并使间隔/偏移数据基本上不变。一般来说,合并的间隔/偏移数据集提供对于原始间隔/偏移集而言相同或更优的结果。图14描绘在列或行上经平均的差幅的一个示例。曲线图1400示出初看起来像是指示块噪声的规则间隔图案的峰值。如果接近地检查曲线图1400中的峰值之间的间隔,则证实它们隔开7或8个像素。然而,峰值间距图案不表现出规则性。图15描绘针对图14的示例中所示的平均差幅数据的多像素宽峰值在具有可变偏移的固定间距处的归一化求和差幅的曲线图1500。曲线图1500表现为峰值与可变间距的混杂物且并不表现出清楚的图案。然而,从该曲线图可以清楚看到,存在多倍像素宽度的峰值,其指示应当检查的经合并的峰值曲线图。图16A描绘显示在具有可变偏移的可变间距处的归一化求和差幅的示例,其中相邻非零间隔值被求和。在曲线图1600中,可观察到存在15的块大小,如通过具有最高峰值的间隔指示的那样,以及介于两个最高间隔峰值之间的15的间距。然而,曲线图中有15像素间隔的若干其它峰值,且这些峰值有足够大的振幅以致15的块大小选择不确定。这由差幅曲线图中显示的峰值间距所支持,其清楚地指出块大小并非15。另外注意到该示例的间隔/偏移数据实际比许多情形表现得更好,在前述许多情形下,经常根本没有可辨认的图案,即使在合并抹除的峰值后。因而,可使用另一方法来针对图像缩放导致在图像的宽度和/或高度上的可变块大小的情况识别名义块大小。这种类型的缩放图像的一个关键特征是块大小具有名义值,但可根据所使用的缩放率以士1像素从一个块变化至下一个块。变化通常为一像素并沿从名义块大小的一个方向。因此,在一实施例中,当对峰值求和时可使用间隔大小中的单个像素变化来执行求和 (例如通过dMag加法器406)。加法器406可选择起点,随后使用某一范围的间隔大小(即,之前的间隔/偏移计算中的MinSize至MaxSize)步进地通过差幅。接着加法器406可将在这些位置处找到的值求和。对于每个间隔大小,加法器406确定一组差值总和。例如,可计算三个差值总和, 其中一个容许从当前间隔大小的-1像素的可能偏移,另一个容许无偏移,而再一个容许+1 像素的可能偏移。在拟将一值加至总和的各个位置处,检查容许的差幅(如,对于“_1”偏移的名义和名义减1)并选择最大的一个。所选位置处的值被加至该间隔的总和。该位置也变成起点,间隔大小与该起点相加以确定下一位置。差幅值以此方式步进通过所有的间隔大小以及各间隔的_1、0和+1像素偏移。一旦计算总和,可对它们进行检查以确定指示哪一种块大小(若有的话)。由dMag加法器406执行的下列步骤更详尽地描述该程序水平可变间隔过程(A)识别起点。(1)确定向量中的最大差幅值。从搜寻点排除在边缘的16像素内的那些点(它们
14被视为无效的界外值)。设定阈值为刚识别的最大值的1/4。(2)在最小块大小(4)的偏移开始,步进通过这些值直至越过阈值但不大于以前确定的最大值(其被视为无效的界外值)的位置。这是第一候选开始位置。(3)生效该候选开始位置。该候选开始位置必须比其任一侧的值更大(即,真实峰值),并大于阈值。如果当前候选未生效,则持续步进通过这些值,直到找到一有效的开始位置为止。如果起点太深入差幅阵列(即,接近阵列的末尾),则差幅数据不指示可识别的块边界,如此将所有总和设定为零。这为真的条件是(Width-1-MaxSize-HorizontalMartLo cation)小于或等于零。(B)对于从MinSize至MaxSize的各间隔大小,进行下列操作(1)从起点开始以间隔值步进通过差幅值,对于各间隔容许_1、0和+1的偏移变化。针对每个间隔和-1、0及+1的偏移变化对值求和。这是如此完成的偏移变化为-1使用当前间隔大小的增量步进通过这些值。如果在名义位置处的值小于名义位置减1,则将该位置减1的值加至-1偏移变化的间隔总和,否则将该值加在名义位置处。使用经识别之最大位置作为下一步的起点。偏移变化为0使用当前间隔大小的增量步进通过这些值。由于偏移为0,仅使用名义间隔大小处的值。使用经识别的位置作为下一步的起点。偏移变化为+1使用当前间隔大小的增量步进通过这些值。如果名义位置处的值系小于名义位置加1,则将在该位置加1处的值加至+1偏移变化的间隔总和,否则在名义位置处加上该值。 使用经识别的最大位置作为下一步的起点。(2)通过将总和除以(宽度/间隔大小)对各总和作归一化。垂直可变间隔过程(A)重复水平过程,但使用垂直差幅向量和图像高度(它是垂直向量长度)而非图像宽度。对于垂直块边界,由于起点太靠近差幅向量的末端,无有效块大小之条件在于(He ight-1-MaxSize-VerticalStartLocation)小于或等于零。图16B的示例表指示在对于图15及图16A的示例中的曲线图1500和曲线图1600
的示例中的差幅数据上执行该程序的结果。最大间隔总和针对8像素间隔的-1偏移以及7像素间隔的+1偏移找到。它们在图16B的表格中标识为数据元1610。这类关系(即对于间隔N的-1偏移和对于间隔N-I 的+1偏移的总和两者均为大且类似)指示经缩放图像的平均块大小落在两间隔大小之间。 因此在该示例中,看上去块大小已被缩放至7和8像素之间。在这类情况下,传统的是使用较低间隔作为名义块大小。后续的步骤将指示如何将此块大小用来识别特定块边界位置(这发生在非均勻间距)。另外注意,被识别为1620的值,其大小与结构类似于值1610,但针对两倍于最大值的间隔大小。如同使用不可变偏移的间隔/偏移求和方法,由于2X间隔大小将会横跨经求和以产生最大值的相同的一些数据点,所以这是典型图案。可由评估器410使用可变偏移总和以确定块大小。
检测器404的一个实施例包括块大小和偏移评估器410。块大小和偏移评估器410 可例如实现为在一机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在此说明书中描述的这种或其它引擎系意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。评估器410可以是能确定来自差幅数据的块噪声特性硬件组件和/或软件代理的任何组合。例如,由加法器406产生的差幅的可变偏移总和可由评估器410使用以确定块大小。评估器410可执行垂直和水平求和两者的过程且在下面示例性步骤中详述(A)第一和最末间隔总和(即,MinSize间隔的_1偏移以及MaxSize间隔的+1偏移)可通过将其设定成相邻值而实际上丢弃。由于这些块大小在MinSize至MaxSize的块尺寸范围(如,4 16)之外,这样就可以了。(B)确定间隔大小和可变偏移值,该值包括最大差幅总和。(C)检查最大总和是非零的。(当间隔开始位置太靠近右/底部图像边缘并导致在先前步骤所有总和被设定为零时,这种情况发生)若其为零,则将块大小设定为零(指示未找到有效块大小)并退出。(D)将经识别的最大总和与同一间隔的其它2个可变偏移的总和比较。(E)如下地确定块大小(其中“当前间隔”指示最大值的间隔)如果中心(零)偏移为其间隔的最大值或如果该间隔的所有偏移相等,则在当前间隔是偶数且当前间隔一半的中心偏移的值极为接近最大值(例如其7/8倍)的条件下将块大小设定为当前间隔的一半,否则将块大小设定为当前间隔。否则-1偏移是最大值,由此检查下一较低间隔值。+1偏移不可能为最大,因为下一较大间隔的-ι偏移由于如何执行之前步骤中的归一化过程而将始终较大。如果下一较低间隔大小的+1偏移类似于(例如其15/16倍)或大于同一间隔的 0和-1偏移,且靠近当前间隔的+1偏移(例如其3/4倍),则如果最大间隔(N)为奇数且(N+1V2间隔的-1偏移靠近最大值(例如其7/8倍), 则如果(N-I)/2间隔的+1偏移靠近(N+l)/2间隔的_1偏移(其3/4倍)贝丨J将块大小设定为(N-I) Λ否则将块大小设定为(N-I)否则如果最大间隔(N)是偶数且Ν/2间隔的-1偏移靠近(例如其7/8倍)最大值,则若(Ν/2)-1间隔的+1偏移靠近Ν/2间隔的_1偏移(例如其3/4倍)则将块大小设定为(Ν/2)_1否则将块大小设定为N-I否则将块大小设定至N-I否则将块大小设定为N在一个实施例中,评估器410也检查由加法器406产生的间隔/偏移总和以确定在偏移峰值之间的间距。例如,评估器410可检查横越各种间隔和偏移的差幅的归一化总和以识别最高(或接近最高)的振幅峰值以及在峰值间的间距。评估器410能使用峰值幅度和间距数据来识别块大小和偏移。下面的程序用以识别哪些峰值振幅是重要以及这些峰值间之间距(A)找到最大峰值振幅。从此值产生一对阈值,上阈值是最大值的5/8,而下阈值是最大值的3/8。储存最大值以供之后用于设定块噪声滤除参数,并储存含有最大值的偏移,用于算术地确定块大小和初始块边界位置。(B)对于各间隔大小,以各偏移步进通过这些值并识别具有超过上阈值的值的所有峰值以及具有超过下阈值的值的所有峰值。(C)对于具有大于上阈值的至少一个峰值的各间隔大小,步进通过用于该间隔的偏移并识别超出下阈值的峰值之间的间距。峰值之间的间距仅为这些峰值的偏移值之间的差。将介于超阈值峰值之间的各间距储存至“偏移阵列”。(D)执行经合并的间隔/偏移值的水平和垂直设定的上述过程(即,其中相邻峰值由于图像缩放已并入单倍像素宽的峰值)。当在图10中的示例中所示的间隔/偏移数据上执行该程序时,找到下列峰值间距间隔上的最大峰值16偏移上的最大峰值32间隔大小8的水平偏移间距8 8 8间隔大小16的水平偏移间距8 8 8基于该数据,块大小为8是相当清楚的。然而,当对图16A中所示的间隔/偏移数据执行相同的程序时,发现下列各项间隔上的最大峰值15偏移上的最大峰值11间距大小14的水平偏移间距4 3 5 2 4 3间距大小15的水平偏移间距2 6 7 8间距大小16的水平偏移间距3 6 7 3 6对于该示例,没有清楚指示块大小为何。间隔大小之间指示的间距存在冲突。这类不确定的数据是也可使用可变偏移程序的原因之一。如此确定的峰值间距测量值(如偏移阵列)可由评估器410使用以确定块大小和偏移。块大小是通过间隔/偏移阵列中的间距大小和峰值之间的间距两者确定,而初始偏移取决于间隔/偏移阵列中的块大小及最大峰值的偏移。可执行以下示例性顺序的优先级步骤以确定块大小和偏移。这些步骤在偏移阵列数据上执行。术语“MaxPeakOffset”使用来自先前步骤的合并峰值数据集指示具有最大振幅的峰值偏移。可将相同系列的步骤应用于水平和垂直偏移阵列两者。(A)寻找标准8像素块大小。这为真的条件是 在具有非零项的偏移阵列中的最大间隔大小为16。 最大峰值发生在8的倍数的间隔大小处。 存在偏移阵列行的一行中的至少个3测得的峰值-峰值间距。·间距大小8的偏移阵列中的前三个项均为8。 间距大小16的偏移阵列中的前三项均为8。设定块大小为8。将初始偏移设定至(MaxPeakoffsetmod 8)+8。(B)寻找表现为4、8、12及16间隔大小的4像素块大小。这为真的条件是 在具有非零项的偏移阵列中的最大间隔大小是16。 最大峰值发生在作为4的倍数的间隔大小处。 偏移阵列中所有4的倍数间隔具有至少一个非零项。 偏移阵列中的至少3个4的倍数间隔具有4的平均间距。将大小设定为4。将初始偏移设定至(MaxPeakoffsetmod 4)+4。(C)寻找一偶数间隔大小,其中该间隔大小的一半具有相同峰值间距。此为真之条件是 具有最大差值的间隔大小是偶数。 偏移阵列中用于该间隔大小的有项相同。 偏移阵列中用于该间隔大小的有项与用于该间隔大小一半的偏移阵列项相同。将块大小设定为该间隔的峰值-峰值间距。将初始偏移设定至(MaxPeakoffsetmod BlockSize)+BlockSize。(D)寻找3的倍数的间隔大小,其中2/3和1/3间隔大小具有相同的块大小。这为真的条件是 具有最大差值的间隔大小是3之倍数。 该间隔大小为12或更大(因此其1/3是4或更大)。 偏移阵列中该间隔大小的所有项是相同的。 偏移阵列中该间隔大小的所有项与2/3倍的间隔大小的偏移阵列项相同,并与 1/3倍的间隔大小的偏移阵列项相同。将名义块大小设定为该间隔的峰值-峰值间距。将初始偏移设定至(MaxPeakoffsetmod BlockSize)+BlockSize。(E)寻找仅具有非零测得偏移的单间隔大小,其中该间隔大小等于含有最大峰值的间隔大小。此为真的条件是 偏移阵列中存在具有非零项的单个间隔大小。 该间隔大小的偏移阵列中的第一项与该间隔大小相同。设定名义块大小为该间隔大小。将初始偏移设定至(MaxPeakoffsetmod BlockSize)+BlockSize。(F)寻找11的“宏”块的特殊情况,其具有4-4-3的块。这种情况出现在V⑶图像缩放的某些情况下。这为真的条件是 最大或接近最大峰值发生在11的间隔大小。 偏移阵列中存在超过5的峰值-峰值间距的项。· 11像素间隔行中最早的6个偏移阵列项是序列“443443”的旋转变量。将块大小设定为4。在将最大峰值的偏移除以所找到的间隔大小(即11)后将初始偏移值设定至余数,如果该余数小于名义块大小(4)则加上名义块大小G)。(G)寻找具有5的块的16的“宏”块的特殊情况,其中在5_11或11_5的间隔16 的偏移阵列项中的峰值-峰值间距。这种情况通常起因于从1920向下缩放至1280和起因于从1080向下缩放至720 (即三个8像素块向下缩放至16像素组中的三个块)。这为真之条件是 在具有非零项的偏移阵列中的最大间隔大小是16。 最大峰值发生在16的间隔大小处。 偏移阵列中具有2或更大的峰值-峰值间距项。· 16像素间隔行的前2个偏移阵列项为5-11或11_5。将块大小设定为5。在将最大峰值的偏移除以所找到的间隔大小(即16)后,将初始偏移值设定为余数,若该余数小于名义块大小(5)则加上名义块大小(5)。(H)寻找具有非零测得偏移的单个间隔大小。将块大小设定为该单间隔的偏移阵列中的各项的(经圆整)平均值。评估器410可通过首先检查单间隔大小的合并间隔/偏移总和中的偏移项并随后找到最大值项的偏移,如此确定初始偏移值。随后可在将该偏移除以单间隔大小后将初始偏移设定为余数,若该余数小于名义块大小则加上名义块大小。(I)否则,将块大小和偏移设定至零(其指示未检测到块)。评估器410随后可从通过检查偏移阵列中的项在先前步骤中确定的这些项以及基于可变偏移(-1/0/+1)方法的这些项选择最终的块大小和偏移。如果从偏移阵列中的项确定的块大小为零(其指示没找到任何有效块大小),则使用由可变偏移方法确定的值。存在用于确定垂直块大小和偏移的一种特殊情况。如果从偏移阵列中的项确定的垂直块大小为2,则原始图像数据几乎必然是两交织域的交织,所述两交织域具有在两者之间的时域差(例如,它们不是来自同一时间点)。当属于这种情况时,则将块大小设定为零 (指示没有有效块大小)。检测器404的一个实施例包括边界图发生器412。该边界图发生器412可例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。边界图发生器412可以是能使用名义块大小及开始边界位置产生块边界图的硬件组件和/或软件代理的任何组合。发生器412可基于差幅向量中的峰值间距确定亮度块边界。使用的程序可在第一块边界的已确定位置处开始,而后以名义块大小步进通过该差幅数据。在各步,对最大峰值位置搜寻一小窗,然后将其标记为一块边界。该位置作为下一搜寻的起点,且该过程继续至数据的末尾。发生器412可产生一块边界图,该块边界图包括在该过程中识别的块边界的位置。边界图为一向量,其大小与差幅向量的相同。边界图项具有三值,其中0指示在一位置不存在块边界,1指示在一位置存在块边界,而值1/2指示存在次要边界特征。由于缩放,次要边界特征包括抹除的边界并指示一边界因此大于一像素宽度。下面的程序提供这如何执行的更多细节。应注意,可在程序执行前将块边界图全部初始化为零,且过程之每一步的默认搜寻窗为士2像素。该程序对于水平及垂直亮度块边界图两者均相同。(A)首先,检查块大小是否为0。如果是,则没有找到块噪声边界且边界图全部保持为零。(B)将第一边界的位置设定至初始偏移值。对于该位置的边界图被设定至1. 0的最大值。这也成为第一峰值搜寻的基准。(C)寻找由缩放造成的开始位置处的“双重宽度峰值”。如果与开始位置相邻的诸位置中的任一个大于开始位置的幅度,则将该邻接块边界图位置的值设定为1.0。否则,如果与开始位置相邻的这些位置中的任一位置大于开始位置幅度的1/10,则将该块边界图的值设定为0.5。(D)步进通过差幅数据以如下地寻找在围绕每个候选块边界位置的窗中的峰值将名义块大小加至基准以对新的峰值搜寻确定窗的中心位置。识别搜寻窗内的最大值(即峰值)的位置。如果新识别的峰值的幅度大于先前位置的峰值幅度的1/5,则 将块边界图中的这个位置设定至1. 0。 将其标记为当前峰值并作为下一搜寻的基准。 寻找缩放引起的在开始位置处的“双宽度峰值”。如果与开始位置相邻的这些位置中的任一位置大于开始位置的幅度的1/10,则将该位置的块边界图的值设定为0. 5。否则如果新识别的峰值的幅度大于先前峰值的1/20且下一较高位置处的幅度小于4倍的新峰值幅度(注意这消除了作为非真实峰值但只在搜寻窗的极限处的峰值位置),则 不改变块边界位置阵列中的这个位置,而是将其设定为下一搜寻的基准。否则使用先前的基准加上名义块大小作为下一搜寻的基准。重复以上步骤顺序,直到到达差幅向量的末尾为止。发生器412能产生色度的图。用于产生色度块边界图的程序类似亮度图的程序。 其差别在于使用色度差幅数据而不是亮度,且由于色度向上采样之后图像缩放的可能性, 色度块边界图容许双重分立的峰值。因此可使用经修正程序的以下示例(A)首先,检查块大小是否为0。如果是,则未找到块噪声边界且边界图全保持为零。(B)可将第一边界的位置设定至初始偏移值。对于该位置的边界图值被设定至最大值1.0。此也成为第一峰值搜寻的基准。
(C)寻找缩放造成的在开始位置处的“双宽度峰值”。如果与开始位置相邻的诸位置中的任一位置大于开始位置的幅度,则将该相邻块边界图位置的值设定为1.0。否则,如果与开始位置相邻的这些位置中的任一位置大于开始位置的幅度的1/10,则将该块边界图的值设定为0.5。(D)步进通过差幅数据以如下地寻找在围绕各候选块边界位置的窗内的峰值将名义块大小加至基准以确定针对新峰值搜寻的窗的中心位置。识别搜寻窗内的最大值(即峰值)的位置。如果新识别峰值的幅度大于先前位置处的峰值幅度的1/5,则 将块边界图中的该位置设定至1. 0。 将这标记为当前峰值和下一搜寻的基准。 寻找缩放造成的在开始位置处的“双宽度峰值”和“双重分离峰值”。如果与开始位置紧邻的这些位置中的任一位置大于开始位置的幅度的1/10,则将该位置的块边界图的值设定为0. 5。如果紧邻的位置不具有有效值,则使用改变边界图值的相同标准来检查距离中心2个像素的相邻位置。 使多个双峰值选择不合格如果有多个分离的峰值,则选择两者中的最大的一个否则如果在左边具有分离的峰值并在右边具有连接的峰值,选择较大的一个。否则如果在右边具有分离的峰值并在左边具有连接的峰值,选择较大的一个。否则如果新识别峰值的幅度大于前一峰值的1/20且下一较高位置处的幅度小于新峰值幅度的4倍(注意这消除了作为非真实峰值而仅在搜寻窗之极限处的峰值位置), 则 不改变块边界位置阵列中的这个位置,而是确实将其设定为下一搜寻的基准。否则使用前一基准加上名义块大小作为下一搜寻的基准。重复以上步骤顺序,直到到达差幅向量的末尾为止。检测器404的一个实施例包括一滤波器增益发生器414。滤波器增益发生器414 可例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。滤波器增益发生器414可以是硬件组件和/或软件代理的任何组合,它能对于一块噪声滤波器计算、确定、产生滤波器增益值。滤波器增益发生器414可通过在基准值开始并基于一定数量经计算的“修正量” 作修改而计算滤波器增益。这些修正量基于下面列出的因数,并可加至基准增益以确定最终增益值。一般来说,可针对水平和垂直滤波器增益计算分离的修正量值。可使用下面内容作为增益计算中的因数 名义增益是1.0 块边界强度(BBQ增大增益 低细节(总和的差幅)增大增益 较大块大小增大增益
低于1. 0的块边界强度快速减小增益 阈值上的间隔的计数连同块边界强度可确定块噪声是否还存在,S卩如果认为不存在明显的块噪声则可将增益设定为零。一旦已计算出这些修正量,它们可与基准增益值合并以产生水平和垂直滤波器增益。第一步骤是识别指示没有块噪声存在的条件。如果这些条件不存在,则将各种增益修正量加至基准增益值并使结果局限于上限和下限(分别为2. 3和0)。然后,对于其中增益修正量的效果导致零增益以及图像细节修正量的幅度构成修正量的总效果的绝大多数的特殊情形,则将滤波器增益系设定至1. 0。这意欲观察其中高图像细节本身迫使滤波器增益为零的情形。一旦已计算水平和垂直增益,则寻找一更特殊的条件。如果满足下列条件,则使垂直和水平滤波器增益两者皆设定为零。(1)藉由间隔/偏移方法的块大小确定在水平与垂直两者上皆为零。(2)两滤波器增益中的一个为零,或都非常低(其中,低=0.25)。检测器404的一个实施例包括边缘梯度乘数发生器416。边缘梯度乘数发生器416 可例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。边缘梯度乘数发生器416可以是硬件组件和/或软件代理的任何组合,它能对于块噪声滤波器计算、确定和/或产生边缘梯度乘数,边缘梯度乘数发生器416的组件和功能进一步参照图5的示例予以描述。在一实施例中,滤波器增益发生器414和/或边缘梯度乘数发生器是滤波器控制参数发生器420的组件。边缘梯度乘数发生器416可通过在基准值处开始并基于一对计算出的“修正量” 对其作修改来确定边缘梯度乘数。这些修正量可基于例如图像中的块强度及细节水平予以确定,且将这些修正量加至基准梯度乘数以得出最终增益值。可针对水平和垂直滤波器增益计算独立的修正量值。可使用以下各项作为梯度乘数计算中的因数 名义乘数是2.0眷高块边界强度使乘数减小;非常低的块边界强度使乘数增大 高细节使乘数增大一旦已计算出这些修正量,发生器416可合并基准梯度乘数值以产生水平和垂直梯度乘数。可将两修正量加至基准梯度乘数值并使结果局限于1.0的下限。图5给出阐述在块噪声滤波器554内的组件之一示例的方框图。块噪声之处理的下一阶段滤除块噪声边界。为了有效地这样做,可基于图像中的块噪声的特性适当地配置块噪声滤波器。对滤波器的控制输入包括例如亮度和/或色度边界图(由图4的示例中的块噪声检测器确定)、垂直和水平滤波器增益值以及垂直和水平边缘强度乘数(例如边缘梯度乘数)。滤波器输入管理器502可计算或管理滤波器554的这些输入。这些后来值可基于以下因数自动地确定,例如 块检测强度(峰值差幅值) 块大小
图像中的细节水平(整个图像上的差幅值的归一化总和) 具有超过一阈值的幅度的间隔数目。用于计算滤波器控制值的协议可基于来自多个图像类型分析的经验数据。滤波器输入管理器502可计算或管理滤波器554的以下输入。水平亮度块边界图水平亮度块边界位置图。这是输入图像宽度的阵列,其中诸项指示主要边界和次要边界。垂直亮度块边界图垂直亮度块边界位置图。这是输入图像宽度的阵列,其中诸项指示主要边界和次要边界。水平色度块边界图水平色度块边界位置图。这是输入图像之宽度的阵列,其中诸项指示主要边界和次要边界。垂直色度块边界图垂直色度块边界位置图。这是输入图像宽度的阵列,其中诸项指示主要边界和次要边界。水平滤波器增益水平滤波器的增益值。该增益值影响水平滤波器系数和滤波器宽度的选择。垂直滤波器增益垂直滤波器的增益值。该增益值影响垂直滤波器系数和滤波器高度的选择。水平梯度乘数水平梯度用以抑制在水平图像特征边缘的滤波。梯度乘数影响抑制执行的程度。垂直梯度乘数垂直梯度用以抑制在垂直图像特征边缘的滤波。该梯度乘数影响抑制执行的程度。块噪声滤波器554的一个实施例包括图像梯度发生器504。图像梯度发生器504 例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。图像梯度发生器504可以是能计算、确定和/或产生图像中的梯度的硬件组件和 /或软件代理的任何组合。图像梯度可用于沿图像中的对象的边缘抑制伪像。梯度是使用5x5索贝尔 (Sobel)滤波器通过亮度像素数据计算出的。这些索贝尔滤波器例如定义为HorSobelFilter5x5 = [ _1 0 0 0-20002-40004-20002-10 0 0 1]
VertSobelFilter5x5 =[ 1 2 4 2 10 0 0 0 00 0 0 0 00 0 0 0 0-1 -2 -4 -2 -1 ](注意滤波器的输出通过除以10而被归一化。)可首先将2维高斯滤波器应用于亮度数据,然后应用索贝尔滤波器以产生垂直及水平图像梯度。可取结果的绝对值以产生垂直和水平梯度幅度。块噪声滤波器554的一个实施例包括垂直滤波器506。垂直滤波器506可例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。垂直滤波器506可以是能沿垂直维度滤波图像的硬件组件和/或软件代理的任何组合。垂直滤波器506可基于块边界图、滤波器增益和/或梯度乘数输入值中的一个或多个沿垂直维度滤波图像。滤波器在通过横跨与边界相邻的诸块的一部分高度的垂直块边界图所指示的块边界位置处分配Y、Cb及Cr垂直差。滤波器506可基于垂直滤波器增益因数确定垂直亮度滤波器的系数。该亮度滤波器由例如3个系数构成,这些系数在块边界位置的每一侧形成镜像。也可使用更多或更少的系数。额外的系数能产生更好的结果。下面的等式说明如何计算滤波器系数的一个示例
if(FilterGain>l. 0) then
LCoefficientl= (5+((FilterGain-I)*1. 5))/16; Lcoefficient2= (2+ ((FilterGain-I)*2. 0))/16; LCoefficient3= ((FilterGain-I)*2·0)/16; else
LCoefficientl= (5+ ((FilterGai-I)*5))/16; Lcoefficient2=(2+((FilterGain-l)*2))/16; LCoeff icient3=0; endif滤波器可应用在亮度块边界图中具有峰值的位置。如果边界图中的相邻位置具有相等的非零振幅,则具有最高(或接近最高)指数的那个被选择作为中心峰值的位置。在一实施例中,计算了三个亮度差值,然后将它们各自与组滤波器系数组相乘。第一差值可基于在中心峰值位置处介于相邻像素之间的差确定。剩下的两个差值可基于第一计算出的差值、每个相邻接位置处的相邻像素值之间的差以及相邻位置的块边界图幅值来计算出。中心块边界差值是中心位置处的像素值和下一较高位置处的像素值之间的差。相邻值可首先基于各相邻位置的边界图值是否为零来确定。如果是,则相邻差值的值也为零。 否则,相邻值是中心差值和相邻像素差值的幅度的最小值(或接近最小值)乘以相邻像素差值的符号(士 1)。如果中心像素位于位置N,则以下等式描述如何计算三个差值中的每一个的示例 (其中“Diffl”在中心位置,而“DiffO”和“Diff2”分别为中心之前或之后的位置)
Diffl=LumaImage(N) -Lumalmage(N+1); DiffOTemp二LumaImage(N-I) -Lumalmage(N); Diff2Temp=LumaImage(N+1) -Lumalmage (N+2); if(LumaVerticalBlockBoundaryMap(N-I)>0) then
Diff0=min (abs(Diffl), abs(DiffOTemp))*sign(DiffOTemp); else
DiffO=O; end if
if(LumaVerticalBlockBoundaryMap(N+1)>0) then
Diff2=min(abs(Diffl), abs(Diff2Temp))*sign(Diff2Terap); else
Diff2=0; endif接着可使用针对各像素位置的计算出的滤波器系数和块边界差值将垂直滤波器 506应用至图像。对于位于块边界峰值位置的士4像素邻近位置内并沿垂直于边界的方向的每个像素,计算滤波器的效果并基于滤波器计算来修正像素值。下面的等式指示如何进行滤波器计算的一个示例,假设N是刚好在块边界(假设位于两像素之间)之前(之上) 的像素位置。该计算针对与边界正交的单个列进行。FilteredImage (N_3)=OriginalImage(N-3)-(DiffO*LCoefficient3); FilteredIraage(N-2)=OriginalImage(N-2)-(DiffO*LCoefficient2)
-(Diffl*LCoefficient3); FilteredImage(N-I)=OriginalImage(N-I)-(DiffO氺LCoefficientl)
-(Diffl*LCoefficient2) -(Diff2*(LCoefficient2/4)); FilteredImage(N)=OriginalImage(N)-(DiffO氺-LCoefficientl)
-(Diffl氺LCoefficientl) -(Diff2* (LCoefficient1/2)); FilteredImage (N+l)=OriginalImage(N+l) + (DiffO* (LCoefficientl/2
))
+(Diffl*LCoefficientl) +(Diff2氺-LCoefficientl); FilteredImage(N+2)=OriginalImage(N+2)+(DiffO*(LCoefficient2/4
))
+(Diffl*LCoefficient2) +(Diff2*—LCoefficientl); FilteredImage (N+3)=OriginalIraage(N+3) + (DiffO*(LCoefficient3))
+ (Diffl*LCoefficient2);
FilteredImage(N+4)=OriginalImage(N+4)+(Diff2氺LCoefficient3);在一个实施例中,垂直滤波器506例如基于垂直滤波器增益因数计算垂直色度的系数。由于色度带宽通常较低并且块大小通常较大,因此色度通常比亮度更重度地滤波。色度滤波器可由多达4个的系数构成,这些系数在块边界位置的每一侧上形成镜像。也可使用更多或更少的系数。额外的系数能产生更好的结果。由于色度块通常比亮度块更大并因而需要较大型滤波器以便使其有效地平滑化,因此色度滤波器具有更多系数。另外,色度的抹除块边界可横跨达2个像素,而不是对于亮度的1个像素。下面等式描述如何计算滤波器系数的一个示例FilterGain=Eiin (VerticalFilterGain*l. 25,2. 5) if (FilterGain)L 0) then
CCoefficientl=(5+((FilterGain-I)5))/16; Ccoefficient2=(2+((FilterGain-I)0))/16; Ccoefficient3=(FilterGain-0.5)*1.5)/16; Ccoefficient4=(FilterGain-l)*0.875)/16; elseif (FilterGain〈0.5) then
CCoefficientl=(5+( (FilterGai-I)*5))/16; Ccoefficient2=(2+((FilterGain-I)*2))/16; CCoefficient3=0; Ccoefficient4=0; else
CCoefficientl=(5+((FilterGai-I)*5))/16; Ccoefficient2=(2+((FilterGain-1)*2))/16; CCoefficient3= ((FilterGain-O. 5)*1. 5))/16; Ccoefficient4=0; endif垂直滤波器506可应用在色度块边界图中具有峰值的位置。如果边界图中的相邻位置具有相等的非零振幅,则可将具有最高指数的那个位置选为中心峰值的位置。将色度块边界图用于Cb和Cr两者,并且滤波器对于两者相同地实现。对于色度计算差值的方法与亮度的方法相同,例外的是色度使用五个差值而亮度使用三个。一般使用较多差值基于下面两个原因(1)由于色度块一般比亮度块更大,因此色度滤波器横跨较大数目的像素位置。(2)色度滤波器容许非毗连块边界以解决向上采样色度的缩放。如果中心像素处于位置N,则以下等式描述如何计算五个差值中的每一个的示例 (其中“Diff2”在中心位置,而其它“Diff”值在与中心相邻的位置)Diff2=ChromaImage(N) -ChromaImage(N+1); DiffOTemp=ChromaImage(N~2) -ChromaImage (N-1); DifflTemp=ChroraaImage (N~l) -ChroraaIraage (N); Diff3Temp二ChromaImage (N+1) -ChromaImage (N+2); Diff4Temp=ChromaImage(N+2) -ChromaImage(N+3); if (ChromaVer.ticalBIockBoundaryMap (N-2) >0) then
DiffO=Uiin (abs(Diff2), abs (DiffOTemp)) *sign (DiffOTemp); else
DiffO=O; end if
if(ChromaVerticalBlockBoandaryMap(N-I)>0) then
Diffl=min(abs(Diff2), abs(DifflTemp))*sign(DifflTemp); else
Diffl=O; end if
if (ChromaVerticalBlockBoundaryMap(N+1) >0) then
Diff3=min(abs(Diff2), abs(Diff3Temp))*sign (Diff3Temp);
…ι else
Diff3=0; end if
if(ChromaVerticalBlockBoundaryMap(N+2)>0) then
Diff4=min(abs(Diff2),abs (Diff4Terap))*sign(Diff4Temp); else
Diff4-0; endif滤波器本身则可使用针对每个像素位置计算出的滤波器系数及块边界差值而应用至图像。对位于块边界峰值位置的士6像素邻近位置内和沿垂直于边界的方向的每个像素,计算滤波器的效果并基于滤波器计算来修正像素值。下面的方程指示如何执行滤波器计算的示例,假设N为刚好在块边界(假设位于两像素之间)之前(之上)的像素位置。该计算针对沿边界的单个列。存在两种不同类型的滤波器计算,其一是当块边界图中没有分离的峰值(即“相邻”值只与中心峰值相距一个像素位置),另一种方法是当至少一个分离的峰值(即“相邻”值与中心峰值相距两个像素位置)。当没有出现分离的、双峰值时,使用下面的等式
FilteredIraage(N-4)=OriginalIraage(N-4)-(Diffl*CCoefficient4); FilteredImage(N-3)=OriginalImage(N—3)_(Diffl*CCoefficient3) -(Diff2*CCoefficient4);
FilteredImage(N_2)=OriginalImage(N_2)-(Diffl*CCoefficient2)
-(Diff2*CCoefficient3); FilteredImage(N-l)=OriginalImage(N-l)-(Diffl*CCoefficientl)
-(Diff2*CCoefficient2) -(Diff3*(CCoefficient2/4)); FilteredImage(N—0)=OriginalImage(N—0)—(Diff1*—CCoefficientl)
一(Diff2氺CCoefficientl) -(Diff3*(CCoefficientl/2));
FilteredImage(N+l) =OriginalImage(N+l) + (Diff1*(CCoefficientl/2
))
+(Diff2*CCoefficientl) +(Diff3*-CCoefficientl); FilteredIraage(N+2)=OriginalImage(N+2)+(Diff1*(CCoefficient2/4
))
+(Diff2*CCoefficient2) +(Diff3*CCoefficientl); FilteredIraage(N+3)=OriginalImage(N+3) + (Diff2*(CCoefficient3))
+(Diff2*CCoefficient2); FilteredIraage (N+4)=OriginalImage(N+4) + (Diff2氺LCoefficient3)
+(Diff3氺CCoefficient3);
FilteredImage(N+5)=OriginalImage(N+5)+(Diff3*CCoefficient4)当出现分离的、双峰值时,使用下面的等式FilteredImage(N_5)=OriginalImage(N—5)5(DiffO*CCoefficient4); FilteredImage(N—4)=OriginalImage(N-4)-(Diff0氺CCoefficient3); FilteredIraage(N—3)二OriginalImage(N-3)-(DiffO氺CCoefficient2) -(Diff2*CCoefficient4);
FilteredImage (N—2)=OriginalImage(N—2) — (DiffO*CCoefficientl)
-(Diff2*CCoefficient3); FilteredImage(N-I)=OriginalIraage(N-I)一(DiffO氺CCoefficientl)
_(Diff2氺CCoefficient2) -(Diff4*(CCoefficient4); FilteredImage(N)=OriginalImage(N) + (DiffO氺一CCoefficient2)
-(Diff2*CCoefficientl) -(Diff4*(CCoefficient3)); FilteredImage (N+l)=OriginalImage(N+l) + (DiffO*(CCoefficient3))
+(Diff2*CCoefficientl) +(Diff4*CCoefficient2);
FilteredImage(N+2)=OriginalImage(N+2) +(DiffO氺(CCoefficient4))
+(Diff2*CCoefficient2) +(Diff4*CCoefficientl); FilteredImage(N+3)=OriginalImage(N+3)+(Diff2*(CCoefficient3))
+(Diff4*CCoefficientl); FilteredImage(N+4)=OriginalIraage(N+4)+(Diff2*LCoefficient4)
+(Diff4*CCoefficient2); FilteredIraage (N+5)=OriginalImage(N+5) + (Diff4*CCoefficient3); FilteredImage(N+6)=OriginalImage(N+6)+(Diff4氺CCoefficient4);块噪声滤波器554的一个实施例包括水平滤波器510。该水平滤波器510可例如
实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在
任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意
欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述
的至少一些功能,和/或执行等同的功能。水平滤波器510可以是能沿水平维度滤波图像的硬件组件和/或软件代理的任何组合。在一个实施例中,水平滤波器510基于水平块边界图、滤波器增益和梯度乘数输入值沿水平维度过滤经垂直滤波的图像。滤波器在通过横跨与边界相邻的诸块的一部分宽度的水平块边界图所规定的块边界位置处分配Y、Cb及Cr水平差。水平滤波器510能类似于垂直滤波器地实现,其差别在于其应用于垂直滤波器的输出而非原始图像,并且其在由水平块边界图规定的位置处沿水平方向施加。在完成针对每个水平块边界位置的滤波后,可例如基于垂直梯度幅值通过边缘混合器508将经垂直滤波的图像和该原始图像混合。可将输出送至水平滤波器。混合器508 可使用输入图像的水平梯度混合垂直滤波图像和水平滤波图像。在一个实施例中,边缘混合器508基于水平图像梯度幅度乘以水平梯度乘数而产生混合因数。作为结果超过1的混合图值可限位至1。然后混合图及混合图像可以与用于垂直滤波图像类似的方式计算。块噪声滤波器554的一个实施例包括边缘平滑器512。边缘平滑器512可例如实现为在机器上的计算机可读媒体或计算机可读存储介质中、固件、硬件或其组合中或在任何可应用的已知或传统装置或系统中体现的软件。在本说明书中描述的这和其它引擎意欲包括任何机器,制造品或物质组成,它们能执行本说明书中隐含地、明确地或内在地描述的至少一些功能,和/或执行等同的功能。边缘平滑器512可以是能去除块边界和/或滤波器伪像的硬件组件和/或软件代理的任何组合。边缘平滑器可如2008年9月4日提交的共同审理的题为“SYSTEM,METH0D, AND APPARATUS FOR SMOOTHING OF EDGES IN IMAGES TO REMOVE IRREGULARITIES (用于平滑图像中的边缘以去除不规则性的系统、方法和装置)”的美国专利申请No. 12/204,760号中所描述地那样实现,该申请的内容通过引用纳入于此。在一个实施例中,边缘平滑器512在结果所得的图像上执行边缘平滑以沿图像中的对象边缘去除块边界和滤波器伪像。可使用任何适合的边缘平滑滤波器。可基于块滤波器增益值确定滤波器内核大小。在一实施例中,如果垂直和水平滤波器增益值两者均为零, 则跳过边缘平滑步骤。如果两增益值小于2,则使用小的滤波器内核。否则,使用大的边缘平滑滤波器内核。图17-18描绘将块噪声滤波器应用于具有和不具有缩放效果的噪声边界的效果的示例。块噪声滤波器通过横跨邻接并垂直于边界的诸像素中的相邻块之间的边界分配差异来减少块噪声。滤波器系数基于滤波器增益值,该滤波器增益值是滤波器的控制输入。 滤波器位置通过输入块边界图确定,其中规定块边界位于2个像素位置之间。图17的示例中示出滤波器效果的一个示例。该图绘出横跨位于“像素0”和“像素1”之间的假定块边界的视频信号的幅度,其中左块的电平为0而右块的电平为1。图中的红线是原始的、预过滤的信号。滤波器工作以将左块、右块之间的差异(即,原始信号中从0至1的大阶跃)分配到与块边界相邻的像素中。蓝线是经滤波的结果。滤波器也应付在块边界上缩放的效果。这示出于图18的示例中,图18示出经两次缩放的信号。该示例模拟一首先从4:2:0向上采样至4:4:4而后缩放至一不同分辨率的色度信号。这产生块边界的相邻位置中的像素的2倍像素宽的架构(即,附图中之红线中的像素-1和像素0)。结果,当像素值从左至右横跨块边界时,像素值中存在2个阶跃—— 较小的阶跃在左边、介于像素-2和像素-1之间,而较大的主要阶跃在右边、介于像素0及像素1之间。以红色表示原始信号,其最终滤波结果以蓝色显示。分别以棕色和黄色表示次要和主要阶跃的总滤波器的效果。总滤波器响应是对两阶跃的响应的总和。在应用滤波器以后,可通过经滤波和未经滤波的图像执行边缘混合操作,其中混合程度由梯度乘数控制输入确定。在一些实例中,沿图像中的对象边缘施加边缘平滑函数以去除块噪声和滤波器伪像。图19描绘块噪声检测的一示例过程的流程图。在过程1902中,计算差幅(dMag)。在过程1904中,抑制高电平dMag值。在过程 1906中,将中间值从dMag去除。在过程1908中,在对象边缘周围抑制dMag值,在过程1910 中,计算行和列上的dMag的平均值并将该平均值经优化以减去中间值。在过程1912中,计算dMag的总和并在一些实例中将其归一化。过程1914将来自间隔/偏移总和的峰值与过程块1912中计算出的固定偏移合并。随后在过程块1918检查这些合并的峰值间隔/偏移总和以确定各间隔大小的不同偏移值的峰值间的间距。随后在过程块1920,基于具有固定间隔的间隔偏移总和将峰值间距用作确定块大小和偏移的基础。与过程1914、1918和1920 并行地,在过程方框1916检查使用可变偏移计算得到的归一化间隔/偏移总和来确定块大小。在过程1922中,检查通过过程1920及1916中的两不同的方法确定的块大小和偏移值以选择最终的块大小和偏移。图20描绘选择块噪声滤波器的控制参数的示例过程的流程图。在过程2002,确定块噪声滤波器增益。在过程2004,确定边缘梯度乘数。在过程 2006中,对块噪声进行滤波。图21描绘将块噪声滤波器应用于图像的流程图。在过程2102,基于图像中的块噪声特性为块噪声滤波器选择增益设定。在过程 2104,使用垂直增益因数计算垂直亮度滤波器的系数。在过程2106,使用垂直增益因数计算垂直色度滤波器的系数。在过程2108,使用垂直和色度滤波器的系数沿垂直维度对图像滤波,以产生垂直滤波的图像并通过混合垂直滤波图像和原始图像产生混合的图像。在过程2110,使用水平增益因数计算水平亮度滤波器的系数。在过程2112,使用水平增益因数计算水平色度滤波器的系数。在过程2114,使用水平和色度滤波器的系数沿水平维度对垂直滤波的图像进行滤波,以产生水平滤波的图像。在过程2116中,通过混合垂直滤波图像和水平滤波图像来产生混合的图像。图22示出以计算机系统的示例形式的机器的示意图,该计算机系统可执行一组指令,以使机器执行本文中讨论的任何一个或多个方法。在图22的示例中,计算机系统2200包括处理器、存储器、非易失性存储器和接口装置。各种常见组件(例如高速缓存存储器)为了说明简单而被省略。计算机系统900旨在解说一硬件设备,在其上可实现本说明书中描述的任何组件。计算机系统2200可以是任何可应用的已知或适宜的类型。计算机系统2200的组件可经由总线或通过一些其它已知或适宜的设备耦合在一起。处理器可以是例如传统微处理器,例如英特尔的Pentium微处理器或摩托罗拉的 power PC微处理器。本领域内技术人员将发现术语“机器可读(储存)介质”或“计算机可读(储存)介质”包括可由处理器访问的任何类型设备。存储器通过例如总线耦合于处理器。存储器作为示例而非限定地包括随机存取存储器(RAM),例如动态RAM (DRAM)和静态RAM(SRAM)。存储器可以是本地、远程或分布式的。总线也使处理器与非易失性存储器和驱动单元耦合。非易失性存储器通常是磁软盘或硬盘;磁光盘;光盘;例如CD-ROM、EPROM或EEPROM的只读取存储器(ROM);磁或光学卡;或用于大量数据储存的其它形式。一些这样的数据经常在计算机2200中的软件的执行期间通过直接存储器访问进程写入存储器中。非易失性存储器可以是本地、远程或分布式的。非易失性存储器是可选的,因为可创建存储器中所有可应用数据可获得的系统。一典型计算机系统将经常包括至少处理器、存储器以及将存储器耦合于处理器的设备(例如总线)。软件通常储存在非易失性存储器和/或驱动单元中。事实上,对于大程序,甚至不可能在存储器中储存整段程序。然而,应理解为了运行软件,在必要时,可将其移动至适于处理的一个计算机可读位置,并且为了解说目的,本文中将该位置称为存储器。即使当软件移动至该存储器以执行时,处理器典型地利用硬件寄存器来储存与软件关联的值,以及本地高速缓冲存储器以理想地加速执行。如这里使用的,当软件程序被视为“在计算机可读介质中执行”时,软件程序假定为储存在任何已知或适宜的位置(从非易失性储存器至硬件寄存器)。当与程序关联的至少一个值被存储在可由处理器读取的寄存器中时,处理器被认为 “配置以执行一程序”。总线也使处理器耦合于网络接口设备。接口可包括调制解调器或网络接口中的一个或多个。应意识到,可将调制解调器或网络接口视为计算机系统2200的一部分。接口可包括模拟调制解调器、isdn调制解调器、有线调制解调器、令牌环接口、卫星传输接口(例如“直接PC”)、或将计算机系统耦合至其它计算机系统的其它接口。接口 208可包括一个或多个输入和/或输出设备。I/O设备可包括例如但不限于键盘、鼠标或其它定位装置、磁盘驱动器、打印机、扫描仪及包括显示设备的其它输入和/或输出设备。显示设备可包括例如但不局限于阴极射线管(CRT)、液晶显示器(LCD)或一些其它可应用的已知或适宜的显示设备。为简单起见,假设未在图22的示例中描述的任何设备的控制器常驻在接口中。在操作中,可通过操作包括例如例如磁盘操作系统的文件管理系统的系统软件来控制计算机系统900。用关联的文件管理系统软件来运行系统软件的一个示例来自华盛顿州Redmond的微软公司称为Windows⑧的操作系统族,及其关联的文件管理系统。操作系统软件与其关联文件管理系统软件的另一示例是Linux操作系统及其关联的文件管理系统。该文件管理系统典型地储存在非易失性存储器和/或驱动单元中并使处理器执行操作系统所需要的各个动作,以输入和输出数据并将数据存储在存储器中,包括将文件储存在非易失性存储器和/或驱动单元上。详细说明的一些部分按照计算机存储器中的数据位上的操作的算法和符号表示来呈现。这些算法说明和表示是由本领域内技术人员使用以最有效地将他们的工作实质传达给其它本领域内技术人员的手段。这里的一种算法大体上构思为得出所需结果的自相容操作序列。这些操作是需要物理量的物理控制的操作。尽管不是必须的,但一般这些量以电或磁信号形式出现,这类信号可被储存、转移、合并、比较和以其它方式操纵。主要地由于共同用途的原因,有时将这些信号称为位、值、元素、符号、字符、项、数字等被证实是适宜的。然而应当记住,所有这些和类似的术语是与适当物理量关联并仅为应用于这些量的适宜标示。除非下面讨论中另行明确陈述,应当理解在整个说明书中,利用例如“处理”或“计算”或“运算”或“确定”或“显示”等术语的阐述指计算机系统(或类似电子计算设备) 的动作与进程,所述动作与进程将计算机系统的寄存器和存储器内表示作物理(电子)量的数据操纵且转换成计算机系统存储器或寄存器或其它这类信息储存、传输或显示装置内类似地表示为物理量的其它数据。在这里给出的算法和显示并非固有地关联于任何具体的计算机或其它装置。可依据本文的教示将各种通用系统配合程序使用,或构建更专门的装置来执行一些实施例的方法是适宜的。各种这些系统所需的结构将从下面的描述变得清楚。此外,这些技术不是参照具体编程语言予以描述的,并且各实施例可因此使用多种程序语言来实现。在替代实施例中,机器作为独立装置运作或可连接(如网络连接)至其它机器。在网络连接部署中,机器可在一客户机-服务器网络环境中发挥服务器或客户机的功能,或作为对等(或分布式)网络环境中的对等机器。机器可以是服务器计算机、客户机计算机、个人计算机(PC)、平板PC、膝上计算机、机顶盒(STB)、个人数字助理(PDA)、蜂窝电话、iWione、黑莓、处理器、电话、网络设施、 网络路由器、交换机或网桥、或可(循序或不循序)执行一组指令的任何机器,这组指令规定该机器采取的行动。尽管一范例性实施例中示出机器可读介质或机器可读存储介质为单一介质,然而术语“机器可读介质”和“机器可读存储介质”应当视为包括存储一个或多个指令集的单一介质或多重介质(例如集中或分布式数据库,和/或相关高速缓存存储器和服务器)。术语 “机器可读介质”和“机器可读存储介质”也应视为包括任何介质,所述介质能储存、编码或携带一指令集,该指令集由机器执行并使机器执行目前揭示的技术或创新的任何一个或多个方法。—般来说,被执行以实现本公开实施例的例程可实现为操作系统或专门应用、组件、程序、对象、模块或指令序列的一部分,它们被称为“计算机程序”。计算机程序在计算机中的各种存储器和储存设备中多数时间典型地包括一个或多个指令集,并当由计算机中的一个或多个处理单元或处理器读取和执行时,使计算机执行操作以执行涉及本公开的各个方面的要素。此外,尽管已在完全功能计算机及计算机系统的背景中描述了一些实施例,然而本领域内技术人员将理解,各实施例能以许多形式作为程序产品分配,并且本公开平等地应用而不论实际用于实现此分配的具体类型的机器或机器可读介质。机器可读存储介质、机器可读介质或计算机可读(存储)介质的其它示例包括但不限于可记录类型介质,尤其例如易失性和非易失性存储设备、软盘及其它可移动片、硬盘驱动器、光盘(例如紧凑盘只读存储器(⑶ROMS)、数字多功能盘(DVD)等),以及例如数字和模拟通信链路的传输类型介质。除非上下文清楚地要求其它情形,否则在整个说明书和权利要求书中,词“包含”、 “包括”等应解释为包含在内的意思,与排它或穷尽的意义相反;也就是说,“包含但不局限于”的意义。如本文中使用的,术语“连接的”、“耦合的”或其任何变化,意指在两个或更多个组件之间的任何连接或耦合,可以是直接的也可以是间接的,要素之间的连接耦合可以是实体连接、逻辑连接或其组合。另外,术语“在这里”、“之上”、“之下”和类似含义字语当用于本申请时应当指本发明的整个部分而非本申请的任何特殊部分。在上下文允许的情形下,以上使用单数或复数的详细说明中的词也可包括复数或单数。当涉及包含两个或更多个项的清单时,词“或”涵盖词的所有以下解释清单中的任何项,清单中的所有项以及清单中各项的任何组合。本公开的实施例的以上详述并非穷尽性的或用来限制前面公开的精确形式的教示。尽管本公开的特定实施例及示例为说明目的而如前描述,然而各种等效修改可能落在本公开的范围内,如本领域内技术人员所能理解的那样。例如,尽管过程或方框以给定顺序给出,然而替代实施例可执行具有步骤的例程,或采用具有不同顺序功能框的系统,并可删除、移动、新增、细分、组合和/或修改一些过程或方框以提供替代或次组合。这些过程或方框中的每一个可以各种不同方式实施。另外,尽管过程或方框有时表示为连续地施行,但这些过程或方框也可并列地执行,或在不同时间执行。这里提到的任何其它具体的数目仅为示例替代实施可使用不同的值或范围。这里提供的本公开的教义可应用于其它系统,不一定是前述系统。可结合上述各实施例的要素和动作以提供其它实施例。上述任何专利和申请案以及其它参考文献(包括任何在随附申请文件中列出的文献)通过引用纳入于此。可根据需要修改本公开的各个方面以利用上述各参考文献的系统、功能和理念以提供本公开的又一些其它实施例。鉴于以上详细说明可对本公开作出这些及其它的改变。尽管上述说明描述了本公开的某些实施例,并描述了预想到的最佳模式,但无论文本中对上述内容描述地多么具体, 其教义都可通过许多方法实践。系统的细节可在其实施细节中显著地变化,而仍然由本文披露的主题事项所涵盖。如前面提到的,当描述本公开的某些特征或方面时,所使用的特定术语不应视为暗示该术语已在此重新定义以局限于本公开中与该术语关联的任何具体特性、特征式方面。一般来说,下面权利要求书中的术语不应当解释为将本公开限制于说明书中披露的具体实施例,除非前面的详细说明章节明白地定义了这个术语。因此,本公开的实际范围不仅涵盖所揭示的实施例,而且涵盖在权利要求书指导下实践或实施本公开的所有等效方法。尽管本公开的某些方面以某个权利要求的形式呈现,然而发明人可预想到以任何数目权利要求形式的本公开的各个方面。例如,尽管本公开有一个方面根据35U. S. C. § 112,13表述为装置加功能的权利要求,然而其它方面也可同样表现为装置加功能的权利要求,或表现为其它形式,例如在计算机可读介质中表现的。(意欲视为根据35U. S. C. §112,13的任何权利要求将会用词“用于..的装置”开始)。因此,申请人保留在提交该申请之后增加额外权利要求以将这些附加权利要求形式推广到本公开其它方面的权利。
权利要求
1.一种检测图像中的块噪声的方法,所述方法包括 对于所述图像中的相邻像素计算像素值的差幅; 从产生自所述图像中的特征的差幅除去一组差幅; 将中值滤波器应用于所述图像以产生输出; 从所述差幅中减去所述输出;在所述图像中执行边缘检测以检测边缘像素位置。
2.如权利要求1所述的方法,其特征在于,所述差幅包含用于水平相邻像素的水平差幅和用于垂直相邻像素的垂直差幅; 进一步包括,沿垂直方向对所述水平差幅求平均以产生图像宽度的水平差幅的平均值的第一向量;沿水平方向对所述垂直差幅求平均以产生图像高度的垂直差幅的平均值的第二向量。
3.如权利要求2所述的方法,其特征在于,还包括沿图形中的图像的宽度绘出相对于像素位置的所述第一向量。
4.如权利要求2所述的方法,其特征在于,还包括沿图形中的图像的高度绘出相对于像素位置的所述第二向量。
5.如权利要求2所述的方法,其特征在于,还包括从所述垂直差幅的平均值或从所述水平差幅的平均值中去除DC电平。
6.如权利要求5所述的方法,其特征在于,通过将中值滤波器应用于所述平均值并从所述平均值减去所述结果而去除所述DC电平。
7.如权利要求2所述的方法,其特征在于,还包括抑制所述第一及第二向量中接近所述图像的边缘的值。
8.如权利要求2所述的方法,其特征在于,还包括确定一组候选间隔大小和一组候选偏移的差幅的归一化总和; 使用归一化总和的最大值确定所述块噪声的间隔大小与偏移。
9.如权利要求8所述的方法,其特征在于,还包括使用间隔大小和偏移以确定名义块大小和起始边界块位置。
10.如权利要求8所述的方法,其特征在于,还包括,确定所述差幅的三个归一化总和; 其中,在所述三个归一化总和中的第一次求和中,使用一名义位置和所述名义位置-1来计算总和值,并选择获得所述总和值的较大值的位置;其中,在所述三个归一化总和的第二次求和中,使用名义位置和所述名义位置+1来计算总和值,并选择获得所述总和值的较大值的位置;其中,在所述三个归一化总和的第三次求和中,使用名义位置计算总和值以选择所述名义位置。
11.如权利要求10所述的方法,其特征在于,还包括识别候选间隔大小和偏移值,所述候选间隔大小和偏移值产生差幅的最大归一化总和;将所述最大归一化总和与针对所述候选间隔大小的另外两个偏移值计算出的总和比较,以确定块噪声的块大小并使用所述名义块大小和起始边界位置选择最终的块大小和偏移值。
12.如权利要求9所述的方法,其特征在于,还包括识别后续边界块位置; 其中,所述后续边界块位置如下地决定将所述开始边界块位置增量所述名义块的大小;在围绕所述后续边界块位置的窗内识别一最大或接近最大的差幅值的位置;以及选择所述最大或接近最大值的位置作为后续块边界位置。
13.如权利要求12所述的方法,其特征在于,进一步包括使用多个后续边界块位置产生块边界图。
14.如权利要求1所述的方法,其特征在于,进一步包括使用所述差幅确定是否比例缩放所述图像。
15.如权利要求1所述的方法,其特征在于,所述水平和垂直相邻像素是1像素差相隔的。
16.如权利要求1所述的方法,其特征在于,进一步包括,通过识别等于或超过阈值的一组差幅且将所述一组差幅设定至所述阈值来衰减所述一组的差幅。
17.如权利要求1所述的方法,其特征在于,从所述差幅减去中值滤波器的输出进一步包含将小于零的值限制至零。
18.如权利要求1所述的方法,其特征在于,所述边缘检测使用索贝尔滤波器进行。
19.如权利要求18所述的方法,其特征在于,所述索贝尔滤波器是3x3的。
20.如权利要求2所述的方法,其特征在于,所述抑制在所述边缘像素位置处的边缘差幅进一步包括在其中对应梯度幅度等于或超过一梯度阈值的边缘像素位置中的一个位置处设定所述边缘差幅为零。
21.如权利要求2所述的方法,其特征在于,针对亮度及色度,计算所述差幅。
22.如权利要求21所述的方法,其特征在于,进一步包括,使用针对色度计算的差幅产生色度块边界图,以及使用针对亮度计算的差幅产生亮度块边界图。
23.如权利要求8所述的方法,其特征在于,进一步包括,使用归一化总和以确定所述块噪声的一组噪声特性,并使用差幅数据以确定所述图像的一组图像特性。
24.如权利要求23所述的方法,其特征在于,所述一组噪声特性包括块噪声的强度和块大小; 所述一组的图像特性包括所述图像中的细节的量。
25.如权利要求23所述的方法,其特征在于,还包括使用所述一组噪声和图像特性确定块噪声滤波器的增益值。
26.一种用于配置块噪声滤波器以滤除图像中的块噪声的方法,所述方法包含 对于所述图像中的相邻像素计算像素值中的差幅;其中,所述差幅包括水平相邻像素的水平差幅以及垂直相邻像素的垂直差幅; 使用所述差幅的归一化总和确定所述块噪声的一组噪声特性; 使用差幅数据确定所述图像的一组图像特性; 使用所述一组噪声和图像特性配置对所述块噪声滤波器的输入。
27.如权利要求沈所述的方法,其特征在于,对所述块噪声滤波器的输入包含具有垂直滤波器增益和水平滤波器增益的增益值。
28.如权利要求沈所述的方法,其特征在于,所述一组的噪声特性包括块噪声强度和块大小; 所述一组的图像特性包括图像中的细节的量。
29.如权利要求沈所述的方法,其特征在于,所述增益值包括水平滤波器增益和垂直滤波器增益。
30.如权利要求27所述的方法,其特征在于,进一步包括用增加的块噪声强度增加所述块噪声滤波器的增益值。
31.如权利要求27所述的方法,其特征在于,进一步包括用所述图像中的低量细节,增加所述块噪声滤波器的增益值。
32.如权利要求27所述的方法,其特征在于,进一步包括用较大的块大小来增加所述块噪声滤波器的增益值。
33.如权利要求沈所述的方法,其特征在于,对所述块噪声滤波器的输入进一步包含具有水平边缘乘数和垂直边缘乘数的边缘梯度乘数。
34.如权利要求33所述的方法,其特征在于,还包括用增加的块噪声强度降低所述边缘梯度乘数。
35.如权利要求33所述的方法,其特征在于,还包括用所述图像中的高量细节,增加所述边缘梯度乘数。
36.如权利要求沈所述的方法,其特征在于,还包括产生所述图像中的块噪声边界位置的块边界图; 其中所述块边界图包括水平和垂直边界。
37.如权利要求沈所述的方法,其特征在于,还包括用所述块边界图、所述增益值和所述边缘梯度乘数配置所述块噪声滤波器; 将所述块噪声滤波器应用于所述图像以产生经滤波的图像。
38.如权利要求37所述的方法,其特征在于,还包括在经滤波的图像上执行边缘混合。
39.如权利要求37所述的方法,其特征在于,还包括在经滤波的图像上执行边缘平滑化。
40.一种用于将块噪声滤波器应用至图像的方法,所述方法包括 基于所述图像中的块噪声特性为所述块噪声滤波器选择一增益设定; 其中,所述增益设定包括垂直增益因数;使用所述垂直增益因数计算垂直亮度滤波器的一组系数; 使用所述垂直增益因数计算垂直色度滤波器的一组系数;使用所述垂直及色度滤波器的系数沿垂直维度滤波所述图像以产生垂直滤波的图像。
41.如权利要求40所述的方法,其特征在于,所述增益设定包括水平增益因数; 还包括使用所述水平增益因数计算水平亮度滤波器的一组系数; 使用所述水平增益因数计算水平色度滤波器的一组系数;使用水平和色度滤波器的系数沿水平维度滤波所述垂直滤波的图像以产生一水平滤波的图像。
42.如权利要求41所述的方法,其特征在于,还包括通过将所述垂直滤波的图像和所述图像混合而产生第一混合的图像;通过将所述垂直滤波的图像与水平滤波的图像混合而产生第二混合的图像。
43.如权利要求42所述的方法,其特征在于,还包括在所述混合的图像上执行边缘平滑化。
44.一种系统,包括用于针对图像中的相邻像素计算像素值中的差幅的装置;用于从产生自所述图像中的特征的差幅中除去一组差幅的装置;用于针对一组候选间隔大小及一组候选偏移确定所述差幅的归一化总和的装置; 用于计算所述差幅值的行与列的确定平均值的装置; 用于使用所述间隔大小和偏移以确定名义块大小和起始边界块位置的装置; 用于识别后续边界块位置的装置;其中,所述后续边界块位置是通过使用所述名义块大小将所述开始块位置递增而确定的;用于使用所述归一化总和的最大值以确定所述块噪声的间隔大小和偏移的装置; 用于使用多个后续边界块位置产生块边界图的装置。
45.一种光盘装置,包括光盘读取器,其中所述光盘读取器当操作时读取光盘;存储器,所述存储器耦合于所述光盘读取器;以及图形处理器,所述图形处理器耦合于所述存储器,其中所述图形处理器执行一算法,所述算法通过以下各项将块噪声滤波器应用于图像基于所述图像中的块噪声特性为所述块噪声滤波器选择增益设定; 其中,所述增益设定包括垂直增益因数和水平增益因数; 使用垂直增益因数计算垂直亮度滤波器的系数; 使用垂直增益因数计算垂直色度滤波器的系数;使用所述垂直和色度滤波器的系数沿垂直维度滤波所述图像以产生垂直滤波的图像;使用所述水平增益因数计算垂直亮度滤波器的系数; 使用所述水平增益因数计算水平色度滤波器的系数;使用所述水平和色度滤波器的系数沿水平维度过滤所述垂直滤波的图像以产生水平滤波的图像;通过将所述垂直滤波的图像与所述图像混合而产生第一混合的图像; 通过将所述垂直滤波的图像与所述水平滤波的图像混合而产生第二混合图像。
46.如权利要求45所述的装置,其特征在于,所述光盘读取器是蓝光盘读取器。
47.如权利要求45所述的装置,其特征在于,所述光盘读取器是DVD读取器。
48.如权利要求5所述的装置,其中该光盘读取器是HD-DVD读取器。
全文摘要
本发明披露用于块噪声检测和滤波的系统和方法。一实施例包括,对于图像中的相邻像素计算像素值的差幅。这些差幅包括用于水平相邻像素的水平差幅以及用于垂直相邻像素的垂直差幅。一实施例进一步包括使用差幅的归一化总和来确定块噪声的一组噪声特性和图像的一组图像特性并使用该组噪声和图像特性配置对该块噪声滤波器的输入。
文档编号G11B20/00GK102349107SQ201080011860
公开日2012年2月8日 申请日期2010年2月10日 优先权日2009年2月10日
发明者D·R·亚当斯, L·A·汤普逊 申请人:晶像股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1