数字图像的缩放方法及装置制造方法及图纸

技术编号:6989843 阅读:204 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种数字图像的缩放方法及装置,其中的插值运算包括:在插值函数表中查找纵向的缩放系数数值并进行修正后,利用该数值对像素进行纵向缩放操作;在插值函数表中查找横向的缩放系数数值并进行修正后,利用该数值对像素进行横向的缩放操作;其中的修正步骤为:判断所述缩放系数数值是否小于零;若是,则令该缩放系数数值乘以一个大于等于0且小于等于1的系数后作为修正后的缩放系数数值;否则直接以该缩放系数数值作为修正后的缩放系数数值。只需要一个插值函数(对应一个查找表),就能在不同缩放比例情况下只通过单一的寄存器调节实时直观地改变缩放效果,既节省了查找表的存储空间,又方便了芯片的调试工作。

【技术实现步骤摘要】

本专利技术属于数字视频信号处理领域,具体地说,涉及一种数字图像的缩放方法及装置
技术介绍
数字图像的缩放是目前所有数字视频处理芯片都必须支持的功能。首先,数字视 频在进入高清时代以后,显示设备如液晶显示器的分辨率可高达1920X1080,这就要求数 字视频处理芯片能很好的将传统的标清视频源(如NTSC720X480及PAL720X576)信号放 大到合适的尺寸以在相应的高分辨率显示设备上显示。另一方面,一些流行的低端或便携 式显示设备可能只有很低的分辨率,如640X480等等,又要求将输入的高分辨率视频信号 进行相应的缩小。这些无处不在的应用都要求数字视频处理芯片能提供优异的图像缩放功 能。当图像被放大时,图像的高频信息会随着放大倍数的增加不断流失,我们都有这 样的经验,即图像放大会让图像变模糊,所以在图像放大时一个主要的问题是如何尽量保 持图像的清晰度。而另一方面,当图像缩小时,一些额外的高频信息会被引入到结果图像中 来,从而造成结果图像呈现颗粒状并使图像的平滑感降低,所以在图像缩小时我们又要面 对一个如何保持图像平滑度的问题。这种两难的处境促使目前的数字视频处理芯片通常都 需要准备两套或者更多套不同的图像缩放器参数来完成不同的放大或缩小任务。举个例子 来说,三次多项式法是一种比较常见的图像缩放方法,也就是说缩放的结果图像的像素是 通过对原始图像像素利用三次多项式函数进行插值来得到的。选取不同的三次多项式函数 可以得到不同的缩放效果,有的三次多项式函数产生的图像比较平滑但也较模糊,而有的 则比较清晰。从前面的分析可以看出我们可以在图像缩小时选取结果较平滑模糊的三次多 项式函数,而在图像放大的情况下选用结果较清晰的三次多项式函数。如果图像缩放器要 处理的情况分布较离散,也就是说既可能要将图像缩的很小,有可能要将图像放的很大,那 么通常我们会需要准备很多不同的三次多项式函数来处理不同的情况。上面描述的方法是目前数字视频处理芯片中的图像缩放器常用的方法。它至少有 以下几个缺点1)芯片所需的存储空间较大。这是因为通常数字视频处理芯片中的图像缩 放器所使用的插值函数是以查找表的方式存储的,越多的插值函数就对应越多的查找表, 也就需要更多的存储空间。2)芯片调试不方便。由于目前的显示设备的分辨率分布很分 散,从很小的320X240到全高清的1920X1080都有,而且输入图像的尺寸也千差万别,所 以数字视频处理芯片要准备的不同的插值函数会很多,那么在调试芯片时每当缩放比例变 化时就需要装载不同的查找表,不能做到直观的观察缩放结果的变化。3)插值函数不容易 确定。同样由于需要的插值函数会很多,确定这些插值函数就需要芯片的设计人员在不同 的缩放比例下尝试很多不同函数,这种工作既费时又费力。为了提高图像缩放器的设计效 率和芯片的使用效率,理想的图像缩放器应当做到只使用一套查找表(对应一个单一的插 值函数),而在不同的缩放比例下能通过调节单一的寄存器来方便地达到实时直观的调节效果。我们先介绍一下传统的图像缩放器。图1给出了一幅尺寸为NXM的原始图像,即 横向每行N个像素,纵向共M行,原始像素用“眷”表示。在进行图像缩放时,如果目标图像 的尺寸为N’和M’,我们先定义横向缩放步长step_x = (N-I)/(N' -1)及纵向缩放步长step_y = (M_1)/(M,_1)再从图像的左上角ρ (1,1)开始从左到右按step_x移动,每移动一次产生一个新 的像素点“■”。当移动到图像最右边的像素时再跳回图像最左边并向下方移动step_y,接 着重复从左到右按st印^的移动。这样直到到达最右下角的原始像素ρ (M,N)。不难检查 出如果step_x和step_y是按上面的计算得出的,那么从ρ (1,1)开始的这样的移动一定可 以准确到达P (M,N),并且产生出共N’ XM’个新像素“ ■”。这N’ XM’的新像素“· ”就组 成了缩放的结果图像。因为输入图像是一行接着一行顺次进入芯片的,所以在集成电路中实现图像缩放 器需要使用行缓存,也就是用以存储视频图像一行数据的缓存器。如果图像缩放的运算需 要多行图像数据,那么就需要多条的行缓存来保存这些数据。考虑到目前常用的图像缩放 器都使用4X4的原始图像像素来进行插值运算,也就是说每一个新像素“· ”是由其周围 的4X4= 16个原始图像像素插值产生的,我们的描述也以此为例,这样一来,我们就需要 4行图像数据来进行缩放的插值运算,也就是说先将图像的第1,2,3,4行数据存储在4条 行缓存中,并从左到右顺次进行插值计算产生相应的新像素“■”。当原始图像的第1,2,3, 4行数据所能产生的新像素都计算完毕后,再开始利用第2,3,4,5行进行运算。依此类推, 直到完成所有的新像素“■”的产生。在实际的芯片设计中,由于图像数据预读的需要,行 缓存的数目会多于4。这里,轮换使用行缓存在图像缩放器设计中已是众所周知的技术,所 以我们不再作详细的描述。下面我们介绍在传统缩放器中一个新像素“·”是如何从其周 围的4X4 = I6个原始图像像素插值产生的。前面我们介绍了新象素“■”产生的位置是由St印)和step_y从原始图像的左上 角移动到右下角来确定的。如图2中所示,对于某一个新像素A,假设A周围的4X4= 16 个原始图像的像素被称为a(l),a(2),. . .,a(16),并且它们属于原始图像的第i i+3行。 新像素A距其左上角像素a(6)的横向距离为offset),纵向距离为0ffset_y。原始图像横 向与纵向的相邻像素间的距离都计为1. 0,那么我们有0 ( offset_x < 1. 0及0彡offset, y < 1.0o图像的缩放运算的核心就是利用a(l) a(16)来插值产生新像素A的值。另 外,为了便于集成电路的实现,考虑到一条行缓存中的像素是从左到右顺次进入的,我们可 以将横向和纵向的计算进行解耦,即先进行纵向的计算得到4列的中间结果,再进行横向 的计算得到随后的A值。假设插值函数为F(t),那么我们有coll = /SUM_C0Lcol2 = /SUM_C0Lcol3 = /SUM_C0Lcol4 = /SUM_C0L其中SUM_C0L = F(1+offset_y) +F(offset_) +F(1-offset_y) +F(2-offset_y)和A = /SUM_R0ff其中SUM_R0W = F(1+offset_x) +F(offset_x) +F(1-offset_x) +F(2-offset_x)需要注意一点,当新像素A在原始图像中的位置处于图像的边界附近时,我们有 可能无法找到其周围的4X4= 16个原始像素。在这种情况下,用户可以通过重复边界像 素来补足16个点,也可以简单的将离A最近的原始像素直接赋予新像素A。这些边界情况 的处理在图像缩放器设计中是众所周知的技术,在此不做详细论述。根据用户的喜好,插值 函数F(t)可以是不同的函数,如常用的CR样条函数,Mitchell函数等。用户也可以基于 经验自行产生插值函数。通常插值函数F(t)都拥有类似图3中的曲线。在实际的集成电路实现中,通常F(t)的数值是预先计算本文档来自技高网...

【技术保护点】
1.一种数字图像的缩放方法,包括如下步骤:将视频图像输入行缓存器;对行缓存器中存储的N×M的原始图像中的像素进行插值运算得到新像素,直至将该原始图像缩放为N’×M’的目标图像;所述插值运算包括:在插值函数表中查找纵向的缩放系数数值;对该纵向的缩放系数数值进行修正后,利用修正后的纵向的缩放系数数值对像素进行纵向的缩放操作;在插值函数表中查找横向的缩放系数数值;对该横向的缩放系数数值进行修正后,利用修正后的横向的缩放系数数值对像素进行横向的缩放操作;其中的修正步骤为:判断所述缩放系数数值是否小于零;若是,则令该缩放系数数值乘以一个大于等于0且小于等于1的修正系数后作为修正后的缩放系数数值;否则直接以该缩放系数数值作为修正后的缩放系数数值。

【技术特征摘要】

【专利技术属性】
技术研发人员:朱舸鲁恒张琦俞诚
申请(专利权)人:富士通微电子上海有限公司
类型:发明
国别省市:31

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

1