手持设备上视频图像的快速缩放方法技术

技术编号:6121006 阅读:293 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种手持设备上视频图像的快速缩放方法,包括水平方向上的缩放和垂直方向上的缩放;将水平方向或垂直方向上的每个像素长度均分为四等分,形成四个等分参照区间,每个等分参照区间具有两个端点的坐标值;采用改进的画直线方法进行缩放;之后按下述步骤进行操作:首先在水平方向上画点,完成后再在垂直方向上重复水平方向上画点的过程;亦可以首先在垂直方向上画点,完成后再在水平方向上重复垂直方向上画点的过程;当水平方向和垂直方向上的点均达到终点,则结束。本发明专利技术主要采用改进后的画直线方法,可有效减少运算量,尤其是乘累加的次数,同时缩放后的质量显著好于最近领域缩放。

【技术实现步骤摘要】

本专利技术涉及一种视频处理技术,特别涉及一种。
技术介绍
目前,手持消费电子设备上的视频播放是一个很重要的功能,消费者要求能够将 互联网上的各种视频下载到手持设备上直接进行播放,而无需提前经过转换。互联网上 常见的视频格式,其分辨率千差万别。从QVGA (32(^240像素),到VGA (640*480像素), Dl (720*480像素),再到最近两年大量增加的720P (1280*720像素),1080P (1920*1080像 素)。所有这些不同分辨率的视频,要在手持设备上顺利播放,除了要求手持设备具有很高 的解码性能和全面的解码兼容性外,也无一例外要求能够提供视频图像的实时缩放功能。 其主要的原因在于,手持设备受限于显示屏(IXD)的工艺和整体成本,其显示分辨率主要 有WQVGA08(^272像素),VGA(640*480像素)和WVGA(800*480像素)几种。因此,要将不 同视频的分辨率按照显示屏(LCD)的分辨率输出,必须在嵌入式多媒体系统设计中增加视 频图像的实时缩放功能。在嵌入式系统中,视频图像的实时缩放,一直都是整个系统设计中不可缺少的模 块。通常,视频图像的缩放模块都采用硬件或软件来完成。采用硬件的方案,可以使用复杂 的缩放算法,缩放后质量最好。但是这一类硬件通常直接挂在系统总线上,它需要不断的读 取解码器解码得到的视频图像数据,经过缩放后,再送到外部存储器或者直接送到显示屏 (IXD)上。其一般性的系统框图如图Ia和图Ib所示。图Ia中,视频图像缩放模块(Video Scaler)直接将存储在外部存储器(External Memory)的原始视频图像数据读入其中,缩 放后再直接送到LCD上。由于原始视频图像数据量太大,因此在缩放模块中设计一个同样 大小的图像数据缓冲来一次存储整帧的数据的成本就变得非常高。减小内部数据缓冲的结 果必然使得Video kaler需要从外部存储器中不断地分批分块读取图像数据进来缩放。如 果LCD的刷新率是60赫兹/秒,则Video Scaler每秒所需要从外部存储器读取的数据就 是60倍原始视频图像大小。毫无疑问,这加重了系统总线和存储器访问的负担,必然反过 来影响视频编解码器的性能。同理,在图Ib中的设计中,缩放后的数据重新写回到外部存 储器中,再从外部存储器写到IXD,这种方式比前一种方式进一步加重了系统负担。为了降低系统负担,可在视频编解码器(Video Decoder)内部实现Video Scaler 功能。这样直接送到外部存储器的是经过缩放后的解码图像,如此对总线带宽和存储器访 问的影响远小于上面两个方案。Video Codec通常由可编程处理器或专用的硬件完成。采 用可编程处理器实现Video Codec,需要考虑增加的缩放模块所带来的复杂程度和缩放效 果,并尽量在这二者之间寻找折中。过于复杂的缩放算法会消耗大量的处理器运算资源,反 过来严重影响视频解码性能;而过于简单的缩放算法将造成缩放后图像的质量急剧下降。常见的视频缩放算法包括最近领域缩放,双线性缩放,双立方缩放等算法。最近领 域缩放最简单,但效果最差,极容易引起锯齿现象。双线性缩放是一种被广泛使用的缩放算法。一般的,缩放倍数在0. 5倍以上,2倍以下的,采用双线性缩放对任何图像的缩放结果都 是完全可以接受的。在0.5倍以下,2倍以上的缩放效果存在一定下降。双线性缩放的不足 之处在于二维方向上每缩放一个点需要共计8次乘累加。这在软件上存在一定量的开销。 双立方缩放的效果更好,但需要增加的运算复杂度也是三个中最高的,并且远超过前两者。由上可知,即使采用双线性缩放,仍需要一定的计算量,而采用最近领域缩放的质 量却是最差的。考虑到视频最大的原始分辨率为1080P(1920*1088像素),最小的原始分 辨率基本在QVGA(32(^240像素)左右。而通常需要缩放到的目标分辨率都是IXD的显示 分辨率,即介于WQVGA 08(^272像素)和WVGA (800*480像素)之间,可见缩小的最大倍数 是4倍,而放大的倍数是3倍左右,即缩放倍数介于原始视频图像的0. 25到3倍之间。因 此,本专利技术综合考虑了最近领域和双线性缩放,同时结合了视频图像的组织方式,提出一种 缩放方法,可有效减少运算量,尤其是乘累加的次数,同时缩放后的质量显著好于最近领域 缩放,逼近双线性缩放效果。图像缩放的一般方法从一维方向上看,可以表示成如下形式。以X方向缩放为 例Xs = kxd其中,xd表示缩放后点的χ坐标,Xs表示对应的缩放前点的χ坐标,k表示缩放的 倍数。从此表达式来看,它和直线方程是一致的。既然如此,通用的画直线方法也一样适用 于 χ 方向的缩放° 在文献 Jack Ε. Bresenham, “ Algorithm for computer control of a digital plotter" , IBM Systems Journal, Vol. 4, No. 1, January 1965, pp. 25-30的Bresenham直线绘制(Bresenham Line Drawing)算法是最为常见的直线画法。它的基 本原理如下1.画第i点P(Xi,Yi),Xi表示P点在水平方向上的坐标,Yi表示P点在垂直方向 上的坐标,其像素值表示为PixelO^yi);2.准备画第i+1点,χ坐标加1,即xi+1 = Xi+1 ;判断如果达到终点,则完成;否则, 由图2可知,下个要画的点或者是当前点的右邻接点B(注申请人指明是哪一点,最好能在 图中有相应标示),或者是当前点的右上邻接点A ;3.如果直线方程y = kx与xi+1的交点的y坐标大于M(Xi,yi+0.5)的y坐标的话, 下个点即A(xw,yi+1),像素值为Pixel(xi+1,yi+1);否则,下个点为B (xi+1,yi),其像素值为 Pixel (xi+1, Yi);4.画点 A(xi+1,yi+1)或者 B(xi+1,y);5.跳回第2步。上述的Bresenham直线绘制算法借助于一个误差量(直线与当前实际绘制像素点 的距离),来确定下一个像素点的位置。该算法的巧妙之处在于采用增量计算,使得对于每 一列,只要检查误差量的符号,就可以确定该下一列的像素位置。采用该算法绘制直线,虽然下一个点的获取可由一次比较完成,但直线的效果还 是比较粗糙的。利用该算法原理进行图像缩放,其质量和最近领域法本质是一样的。文 献 Riemersma, Thiadmer ; “ Quick and smooth image scaling with Bresenham “ ;Dr. Dobb ' s Journal ;May 2002.提出了 一禾中 smooth scaling with Bresenham。其核心思想是在Bresenham直线绘制(Bresenham Line Drawing)算法基础上引入半像素。参考图2,若对应的y坐标在N点,由于N点的y坐标大于M点的y坐标, 则该点像素值和M点相同,其像素值为pixel (xi+1, yi+0.5),它是对A点和B点的像素值求平 均得到的。若小于M点的y坐标,则取B(xi+1,yi)本文档来自技高网...

【技术保护点】
1.一种手持设备上视频图像的快速缩放方法,包括水平方向上的缩放和垂直方向上的缩放;其特征在于:将水平方向或垂直方向上的每个像素长度均分为四等分,形成四个等分参照区间,每个等分参照区间具有两个端点的坐标值;之后按下述步骤进行操作:首先沿水平方向上画点,完成后再沿垂直方向画点;亦可以首先沿垂直方向上画点,完成后再沿水平方向上画点;其中沿水平方向上画点包括:步骤11、画第i点P(xi,yi),i是为方便叙述而引入的索引,xi表示P在缩放后水平方向上的坐标,yi对应着P在缩放前水平方向上的坐标,其像素值表示为pixel(xi,yi);步骤12、判断是否达到终点,若达到终点,则退出沿水平方向上画点的过程;否则,准备画第i+1点,对xi坐标加1得到xi+1,即xi+1=xi+1;步骤13、确定第i+1点的缩放前水平方向像素值:构建水平方向上的缩放直线方程yi=k1xi,式中的xi表示缩放后点的水平方向坐标,yi表示对应的缩放前点的水平方向坐标;k1为图像在水平方向上的缩放倍数,该直线方程与坐标轴xi+1的交点,判断该交点的y坐标处于yi和yi+1之间的像素长度的哪个等分参照区间,则第i+1点的缩放前水平方向像素值就取该等分参照区间下方端点的像素值;步骤14、根据步骤13所确定的第i+1点的缩放前水平方向像素值进行画点;之后返回步骤12;其中在垂直方向上画点包括:步骤21、画第j点Q(xj,yj),j是为方便叙述而引入的索引,yj表示Q在缩放后垂直方向上的坐标,xj表示Q在缩放前垂直方向上的坐标,其像素值表示为pixel(xj,yj);步骤22、判断是否达到终点,若达到终点,则退出沿垂直方向上画点的过程;否则,准备画第j+1点,对xj坐标加1得到xj+1,即xj+1=xj+1;步骤23、确定第j+1点的缩放前垂直方向像素值:构建垂直方向上的缩放直线方程yj=k2xj,式中的xj表示缩放后点的垂直方向坐标,yj表示对应的缩放前点的垂直方向坐标;k2为图像在垂直方向上的缩放倍数,该直线方程与坐标轴xi+1的交点,判断该交点的y坐标处于yj和yj+1之间的像素长度的哪个等分参照区间,则第j+1点的缩放前垂直方向像素值就取该等分参照区间下方端点的像素值;步骤24、根据步骤23所确定的第j+1点的垂直方向像素值进行画点;之后返回步骤22;当水平方向和垂直方向上的点均达到终点,则结束。...

【技术特征摘要】

【专利技术属性】
技术研发人员:简欢
申请(专利权)人:福州瑞芯微电子有限公司
类型:发明
国别省市:35

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

1