旋转位像的装置及方法

文档序号:6609095阅读:150来源:国知局

专利名称::旋转位像的装置及方法
技术领域
:本总发明构思涉及一种图像变换装置及其方法。更具体地,本总发明构思涉及采用Bresenham直线算法来旋转图像的图像变换装置及其图像变换方法。
背景技术
:在图形应用、游戏程序、图像处理设备的驱动器、固件软件和硬件ASIC中,需要旋转位像以输出期望的图像。图1图示了传统的位图旋转系统,图2图示了传统的位图旋转系统中的坐标变换误差。图1中的传统的位图旋转系统包括源位图10、旋转引擎20、插补引擎30以及旋转后的位图40。旋转引擎20使用公式1,根据源位图10的多个像素中的每一个的坐标(X,Y),计算一组新的坐标(X,Y)以产生旋转后的位图40,其中T是旋转的角度。公式1<formula>formulaseeoriginaldocumentpage6</formula>可以将公式1表达为公式2。<formula>formulaseeoriginaldocumentpage6</formula>公式1和公式2使用逆时针旋转来计算新的坐标。然而,由于传统的显示设备或打印设备使用顺时针旋转,所以应该使用顺时针的坐标变换公式。公式3示出了顺时针坐标变换公式。公式3<formula>formulaseeoriginaldocumentpage6</formula>可以通过将公式3应用到组成源位图10的像素来获得映射旋转后的位图40的坐标。因此,可以通过读取源位图10的像素、计算新坐标并利用新坐标存储源位图IO的像素值来生成旋转后的位图40。位图存在于整数坐标系统中,而在诸如公式3的坐标变换公式中使用的cos(T)和sin(T)通常是实数。因此,在计算新坐标时使用的值执行实数计算,从而,相当降低了数字计算的速度。另外,由于计算后的新坐标也包括实数,所以并不是源位图IO的每个像素的所有坐标都映射旋转后的位图40,并且源位图10的多个像素可能映射到旋转后的位图40的一个像素,如图2中所示。在图2中,如果源位图10的两个像素映射到旋转后的位图40的一个像素,则旋转后的位图40就有一个黑像素(blackpixel),其没有被从源位图10的任何像素映射到。插补引擎30将插入算法应用于旋转后的位图40,以校正黑像素。然而,由于有插补引擎30执行的插入算法的特性,这可能导致在数字计算的速度上的降低。因此,传统的位图旋转系统使用实数数据来为源位图10的所有像素执行计算,并且使用插入算法来4丸行后4吏正(after-correction),从而其4毛费相当长的时间来计算位图旋转。
发明内容本总发明构思提供一种通过将Bresenham直线算法应用于位图旋转而具有快速计算速度的图像变换装置及其图像变换方法。本总发明构思的其他方面和效用将部分地在后面的描述中给出,以及将部分地从描述中显而易见,或者可以通过实践本总发明构思来学到。本总发明构思的上述和/或其他方面可以通过提供一种用于旋转位像的装置来实现,该装置包括边缘信息计算器,用于使用位图信息来计算关于与源位图的预定边缘相对应的旋转后的位图的边缘的信息;直线信息计算器,用于使用旋转后的位图的边缘信息来计算直线信息以生成旋转后的位图;以及位图生成器,用于使用旋转后的位图的边缘信息和直线信息来生成最终的旋转后的位图。位图信息可以包括用于旋转源位图的旋转角度、源位图的大小、旋转后的位图的大小、源位图的色彩、对应于源位图的像素信息。该装置还可以包括坐标提取器,其用于使用位图信息来提取源位图的边缘的角坐标(cornercoordinate)。边缘信息计算器可以根据下面的公式来计算旋转后的位图的边缘信息X=XXCOSy=—yxsin(r)+}xcos(r)其中,(x,y)是源位图的边缘的角坐标,T是用于旋转源位图的旋转角度,(X,Y)是与源位图的边缘的角坐标相对应的旋转后的位图的边缘的角坐标。源位图的边缘可以包括在源位图中彼此相邻的第一边缘和第二边缘。边缘信息计算器可以计算与第一边缘和第二边缘的接触点(contactpoint)的坐标、第一边缘的另一角的坐标以及第二边缘的另一角的坐标相对应的第一角坐标、第二角坐标以及第三角坐标。该装置还可以包括扩展表生成器,用于生成扩展表,其中,考虑源位图的大小和旋转后的位图的大小,将源位图的像素重复预定次数。直线信息计算器可以计算边缘信息的Bresenham因数,并且参考Bresenham因数计算直线信息。直线信息可以包括直线的运动方向和运动距离,以生成构成在旋转后的位图中彼此相邻的构成第三边缘和第四边缘的直线。当运动方向改变的任何时候,直线信息计算器可以重新计算运动距离。位图生成器可以重复将源位图映射到与沿着直线的运动方向的运动距离相对应的旋转后的位图的操作。本总发明构思的上面和/或其他方面和效用也可以通过提供一种旋转位像的方法来实现,该方法包括使用位图信息计算关于与源位图的预定边缘相对应的旋转后的位图的边缘的信息;使用旋转后的位图的边缘信息来计算直线信息以生成旋转后的位图;以及使用旋转后的位图的边缘信息和直线信息来生成最终的旋转后的位图。位图信息可以包括用于旋转源位图的旋转角度、源位图的大小、旋转后的位國的大小、源位图的色彩、以及对应于源位图的像素信息。该方法还包括使用位图信息来提取源位图的边缘的角坐标。边缘信息的计算可以包括根据下面的公式计算的旋转后的位图的边缘信白<formula>formulaseeoriginaldocumentpage9</formula>其中,(x,y)是源位图的边缘的角坐标,T是用于旋转源位图的旋转角度,(X,Y)是与源位图的边缘的角坐标相对应的旋转后的位图的边缘的角坐标。源位图的边缘可以包括在源位图中彼此相邻的第一边缘和第二边缘。边缘信息的计算可以包括可以计算与第一边缘和第二边缘的接触点(contactpoint)的坐标、第一边缘的另一角的坐标以及第二边缘的另一角的坐标相对应的第一角坐标、第二角坐标以及第三角坐标。该方法还可以包括生成扩展表,其中,考虑源位图的大小和旋转后的位图的大小,将源位图的像素重复预定次数。直线信息的计算可以包括计算边缘信息的Bresenham因数,并且参考Bresenham因数计算直线信息。直线信息可以包括直线运动的方向和直线运动的距离,以生成构成在旋转后的位图中彼此相邻的第三边缘和第四边缘的直线。Bresenham因数的计算可以包括计算直线运动的运动方向和直线运动的距离以生成构成在旋转后的位图中彼此相邻的第三边缘和第四边缘的直线。直线信息的计算还包括当运动方向改变的任何时候,重新计算运动距离。生成最终旋转后的位图可以包括重复沿着直线运动方向将源位图映射到与运动距离相对应的旋转后的位图的操作。本总发明构思的上述和/或其他方面和效用还可以通过提供一种用于旋转源位图的装置来实现,该装置包括直线信息计算器,用于计算对应于源位图的旋转后的位图的边缘的Bresenham因数,以及用于参考Bresenham因数来计算直线信息;以及位图生成器,用于基于来自直线信息计算器的计算来生成最终旋转后的位图。该位图生成器可以通过沿着水平方向和对角方向移动源位图的像素来生成最终旋转后的位图。该装置还可以包括扩展表生成器,用于考虑源位图的大小和旋转后的位图的大小,生成其中源位图的像素被重复了预定次数的扩展表。本总发明构思的上述和/或其他方面和效用还可以通过提供一种旋转源位图的方法来实现,该方法包括计算对应于源位图的旋转后的位图的边缘的Bresenham因数;参考Bresenham因数来计算直线信息;以及基于所有计算生成最终旋转后的位图。该方法还包括通过在水平方向和对角方向移动源位图的像素来生成最终旋转后的位图。该方法还包括考虑源位图的大小和旋转后的位图的大小来生成扩展表,其中,源位图的像素被重复了预定次数。从以下结合附图的实施例的详细描述中,本总发明构思的这些和/或其他方面和效用将变得明显并且将更容易被理解,在附图中图1是图示传统的位图旋转系统的视图;图2是图示传统的位图旋转系统中的坐标变换误差的视图;图3是根据本总发明构思的示例性实施例的图像变换装置的方框图;图4是图示源位图和旋转后的位图的示意图;图5图示了整数坐标空间中的点的运动;图6A-图6B图示直线(straightline)的位图映射结果;图7图示整数坐标空间中的直线生成;图8图示使用Bresenham直线算法的直线生成;图9A-图9C图示由图3的扩展表生成器生成的扩展表;图10图示由图3的位图生成器旋转的最终位图;以及图11是图示根据本总发明构思的示例性实施例的图像变换方法的流程图。贯穿附图,相同的附图标记将被理解为表示相同的元件、特征和结构。具体实施例方式现在将详细参考本总发明构思的实施例,在附图中图示了其示例,在附图中自始至终相同附图标记表示相同元素。为了解释本总发明构思,下面通过参考附图来描述实施例。图3是根据本总发明构思的示例性实施例的图像变换装置的方框图,图4是图示源位图和旋转后的位图的示意图。在图3中,根据本总发明构思的示例性实施例的位像旋转装置100包括坐标提取器110、边缘信息计算器120、直线信息计算器130、扩展表生成器140以及位图生成器150。参考图3和图4,坐标提取器110使用位图信息提取源位图200的一个边缘的角坐标,并且将角坐标提供给边缘信息计算器120。位图信息可以包括用于旋转源位图200的旋转角度、源位图200的大小、旋转后的位图300的大小、源位图200的色彩以及对应于源位图200的像素信息。如果位像旋转装置100是计算机,则位图信息被从窗口图形设备接口(GDI)提供到坐标提取器110。源位图200的某个边缘指在源位图200中彼此相邻的第一边缘和第二边缘。在图4中,源位图200的上边缘是第一边缘El,在图中与第一边缘E1相邻的边缘是第二边缘E2。第一边缘El和第二边缘E2彼此接触以形成角,所以角的坐标重叠。因此,坐标提取器110提取第一边缘El和第二边缘E2的接触点的坐标(xl,yl)、第一边缘E1的另一角的坐标(x2,y2)以及第二边缘E2的另一角的坐标(x3,y3)。位图信息可以包括源位图200的第一边缘E1和第二边缘E2的其它角的坐标。因此,不需要坐标提取器IIO。边缘信息计算器120使用位图信息或从坐标提取器IIO提供的边缘的角坐标来计算旋转后的位图300的、与源位图200的一个边缘相对应的边缘信自边缘信息计算器120使用公式4计算旋转后的位图300的边缘信息,其中,(x,y)是源位图200的一个角的坐标,T是用于旋转源位图200的旋转角,以及(X,Y)是旋转后的位图300的、与源位图200的边缘的角坐标相对应的角坐标。公式4解释顺时针坐标变换如下。公式4<formula>formulaseeoriginaldocumentpage11</formula>边缘信息计算器120使用由坐标提取器110提取的源位图200的边缘的角坐标,来计算旋转后的位图300的、与源位图200的角相对应的第一角坐标、第二角坐标以及第三角坐标。边缘信息计算器120仅计算旋转后的位图300的、与源位图200的角相对应的第一角坐标、第二角坐标以及第三角坐标,所以当与计算所有像素的坐标的传统方法相比较时,根据本总发明构思的实施例的位图旋转计算的速度是相同的。由坐标提取器110提取的坐标是第一边缘E1和第二边缘E2的接触点的坐标(xl,yl)、第一边缘E1的另一角的坐标(x2,y2)以及第二边缘E2的另一角的坐标(x3,y3)。因此,边缘信息计算器120使用公式4计算旋转后的位图300的第三边缘E3和第四边缘E3的角坐标(XI,Yl)、(X2,Y2)以及(X3,n)。在公式5中列出了使用公式4在边缘信息计算器120中计算旋转后的位图300的第三边缘E3和第四边缘E4的角坐标(X1,Yl)、(X2,Y2)以及(X3,Y3)的方法。旋转后的位图300的第三边缘E3和第四边缘E4是通过旋转源位图200的第一边缘E1和第二边缘E2而生成的边缘,并且因此分别对应于源位图200的第一边缘E1和第二边缘E2。此外,旋转后的位图300的第三边缘E3和第四边缘E4的每个角表示第一角、第二角以及第三角。公式5Jf=^xcos(77)+力xsin(r)K=-xtxsin(r)+y、xcos(r)Z2=x2xcos(r)+少2xsin(r)72=-x2xsin(r)+_y2xcos(r)I3=x3xcos(r)十_y3xsin(r)73=-x3xsin(r)十;/3xcos(r)直线信息计算器130使用由边缘信息计算器120计算的旋转后的位图300的边缘信息,来计算旋转后的位图300的直线信息。直线信息包括直线的运动方向和运动距离,以生成构成在旋转后的位图中彼此相邻的第三边缘E3和第四边缘E4的直线。直线信息计算器130可以计算对应于边缘信息的Bresenham因数,并且参考Bresenham因数计算直线信息。此外,直线信息计算器130在每次直线的运动方向改变时都重新计算运动距离,并且应用重新计算的运动距离来生成最终旋转后的位图。由直线信息计算器130使用Bresenham直线算法计算的Bresenham因数被用于旋转源位图200,这在下面参考图5-图7详细描述。扩展表生成器140考虑位图信息中的源位图200的大小和旋转后的位图300的大小而生成扩展表,其中源位图200的像素被重复预定次数。下面参考图8详细描述扩展表生成器140。位图生成器150使用由边缘信息计算器120计算的边缘信息(即,旋转后的位图的角坐标)和由直线信息计算器130计算的直线信息来生成最终旋转后的位图。如果源位图200的大小与旋转后的位图300的比率为1:1,则位图生成器150将源位图200的每个像素映射到旋转位图300的对应像素。然而,如果旋转位图300的大小大于源位图200的大小,则使用由扩展表生成器140生成的扩展表来将源位图200映射到旋转后的位图300。位图生成器150重复通过沿着由直线信息计算器130确定的直线的运动方向运动与运动距离相对应的距离而将源位图200映射到旋转后的位图300的操作。下面参考图9详细描述位图生成器150。图5图示了整数坐标空间中的点的运动,图6A-图6B图示了直线的位图映射结果,图7图示了整数坐标空间中的直线生成,图8图示使用brehensam直线算法所生成的直线。参考图5-图8,描述了Bresenham直线算法,其确定在直线信息计算器130中被参考用来计算直线信息的Bresenham因数。如在1965年的"Algorithmsforcomputercontrolofadigitalplotter"中描迷的,Bresenham直线生成包括如下方法,其中将由不^丸行实数计算而产生的提高的计算速度与传统直线生成方法进行比较。此夕卜,在1985年Bresenham发表的"Runlengthslicealgorithmsforincrementallines"中描述了具有在1965年发表的方法上增加的计算速度的方法。由直线信息计算器130计算的Bresenham因数遵循1985年发表的直线生成方法。因此,省略了1965年发表的直线生成方法,这里描述1985年发表的直线生成方法。参考图5,从一点到另一点的运动可以是水平方向或对角线方向。因此,如图5中所示,当前点A可以运动到点B或点C。直线的斜率可以具有小于Tan—Ul/2)的角度,并且连接点A到点B或连接点A到点C的直线从左到右开始,即增加x-值的方向。基于上述前提,在图6B中图示了被用来绘制图6A中的直线的数字化的直线的位图存储器映射的结果。如图6B中所示,通过重复地在水平方向运动一定距离、在对角线方向运动一定距离、以及然后再在水平方向运动一定距离,来映射直线。如果对角线运动出现的规则已知的话,则可能比在1965年发表的直线生成方法中减少一些计算。参考图6B,当像素具有初始坐标(Ai,i)时,如果另一像素的位置是(Ai+1,i+l),则执行对角线方向中的运动。当像素的y值增加值1时,y值增加并且出现对角线方向中的运动。图7图示图5的整数坐标空间中的理想直线。通过选择坐标(Ai,i)之后的下一像素,而出现对角线方向中的运动。假设x轴坐标Ai具有介于0和dx之间的值,y轴坐标i具有介于0和dy之间的值,则可以使用公式6计算与x坐标Ai和Ai+1的中值相对应的y轴值bi。公式66,=/+0.5=:£^),/=0,1,.."(办一1)如果将表示直线y=(dy/dx)x的公式代入利用bi表示y轴坐标的公式6,则可以使用公式7来计算x轴坐标,以表示在对角线方向中的运动之前的左手下方像素的x轴坐标。公式7x=血(1+2/),,'-0,1"."(办一1)2办由于x是根据变量i变化的实数,所以如果假设数字化的x值为Ai,则可以在图6中计算x值Ai。因此,将INT[x]定义为不超过x的最大整数。例如,INT[2.5]为2。下面在公式8中给出简化公式。公式8血2=鮮,1^gSA=血0/0办,0""办-1)血M=(gl)一2办/=血%2办,如果0为偶数,则N=R,否则,N=R+dy7;=(TV+2及)%2办,0^/《(办-1)j!口果&+2i)<2dy,贝'J7;+,=2i<formula>formulaseeoriginaldocumentpage15</formula>如果(7;+2i)〈0,贝寸&+1=5,。如果(z;+2W)^2办,则=5",+1。可以使用公式8计算Ai,如公式9中所示。公式9<formula>formulaseeoriginaldocumentpage15</formula>可以从公式IO导出公式11。公式11^口果(7;+2W)22办,贝寸=e。如果(7;+2i)〈2办,贝寸//,+1=g—1。因此,取决于(r,+2i)和2办的值,运动距离7/,+1可以为Q或Q-l。公式12基于A,其确定水平运动的大小为(7;+2i)-2办。公式12如果£),<0,则使用=g—1并更新/),+1=/),+2*,或者15+2,72办可以使用公式9来计算图6中的水平运动距离Hi+1,如公式10所示,公式10<formula>formulaseeoriginaldocumentpage15</formula>如果<formula>formulaseeoriginaldocumentpage16</formula>,则使用H=Q并更新<formula>formulaseeoriginaldocumentpage16</formula>可以使用公式13来计算初始点的运动距离//。。公式13<formula>formulaseeoriginaldocumentpage16</formula>可以使用公式14来计算最终点的运动距离公式14<formula>formulaseeoriginaldocumentpage16</formula>上面公式基于作为r""-'(l/2)的直线斜率。当直线斜率介于7W'(l/2)和45°之间时,上面假设可以推广到所有斜率。通过将上面公式中的x和y进行交换,来允许将假设斜率介于0°和45°之间的上面公式应用于介于45°和90°之间的斜率,并且通过应用管理其它象限中的直线与介于0°和90。之间的直线的关系的对应规则来允许将上面公式应用于那些象限。在满足条件办<血<2办的直线中,Q通常为1以及M通常为0。这意味着水平运动通常为1或0,从而运动距离是没有意义的。然而,具有介于(T和r朋-'(l/2)之间的dy/dx斜率的直线与具有介于r朋-'(l/2)和45°之间的dx/(dx-dy)斜率的直线完全对称。具有介于0°和r朋-'(i/2)之间的斜率的直线的水平运动和对角线运动与具有介于r"""(i/2)和图8图示通常的八分线(octantline),其在坐标(Xs,Ys)开始并且在坐标(Xt,Yt)结束。通过参考图8更容易解释使用图5-图7描述的Bresenham直线算法。参考图3-图8,为了利用使用Bresenham直线算法计算的Bresenham因数来生成旋转后的位图300,直线信息计算器130可以计算直线信息。因此,可以使用Bresenham因数在旋转后的位图300的所有方向中生成直线。图9A-图9C图示使用图3的扩展表生成器140生成的扩展表。参考图3-图9C,如果源位图200和旋转后的位图300具有相同的宽度和高度,则不需要由扩展表生成器140生成扩展表。然而,源位图200和旋转后的位图300不是总具有相同的宽度和高度。例如,打印才几可以通iU立伸源位图200来生成旋转后的位图300。图9A图示源位图200的一部分。扩展表生成器140扩展图9A的源位图200的该部分以变成扩展表,其中每个像素都重复预定次数,如图9B所示。由于生成扩展表的方法与用于缩小或扩展图像的传统的图像按比例缩放的方法相同,所以省略了该方法的详细描述。如图9C中所示,旋转后的位图300的宽度对应于对角线的长度而不是如图9B中所示的13个像素。图9B的拉伸后的1个像素位图是在考虑了扩展表生成器140中的图9A的源位图的宽度和图9C的旋转后的位图的宽度的情况下生成的中间位图。即,图9B的具有宽度13的中间位图被映射到图9C的位图。在这种情况下,图9C的旋转后的位图的宽度不是13个像素。扩展表生成器140通过考虑图9A的源位图的宽度与图9C的旋转后的位图的宽度的比率可以获得对应于图9A的每个像素的拉伸因数,以从图9A的源位图生成图9B的中间位图。扩展表生成器140可以将拉伸因数存储在与图9A中图示的源位图一样宽的映射空间中。如果存储了值2、3、2、3和3,则可以使用与两次X1、三次X2、两次X3、三次X4和三次X5相对应的比率来生成图9B的中间位图。尽管在该示例性实施例中仅描述了x轴拉伸,但是也可以通过使用上述方法来获得用于拉伸y轴的像素值。由扩展表生成器140生成的扩展表包括在旋转源位图200之前获得的信息,并且完全不影响位图旋转计算。因此,在旋转位图之后不需要传统的附力口4#才卜。图10图示由图3的位图生成器150旋转的最终位图。参考图3、图4和图10,位图生成器150将由扩展表生成器140生成的扩展表映射到旋转后的位图300。参考由边缘信息计算器120计算的旋转后的位图300的第一角坐标到第三角坐标(XI,Yl)、(X2,Y2)和(X3,Y3),位图生成器150沿着连接第一角到第三角的直线将扩展表与旋转后的位图300对应起来。在图10中,直线S1连接第一角和第二角,并且沿着y轴位于直线Sl之下一个像素的直线包括S2、S3.....SH。同样,直线L1连接第一角和第三角,并且沿着X轴位于直线L1之右一个像素的直线包括L2、L3.....LW。位图生成器150参考由直线信息计算器130计算的Bresenham因数,基本上等于对应运动地在直线Sl的方向上映射位图。图10图示在直线Sl的方向上出现对角线运动的任何时候被更新为包括值4、5、6和3的运动距离。位图生成器150沿着直线Sl映射位图,然后沿着直线Ll运动一个像素,然后再利用4、5、6和3的运动距离沿着直线S2映射位图。即,位图生成器150在沿着水平直线S1的水平方向上映射4个像素、在对角线地运动1个像素之后水平地映射5个像素、在对角线地运动1个像素之后水平地映射6个像素、以及在对角线地运动1个像素之后水平地映射3个像素。随后,位图生成器150运动到直线S2以映射相同的运动距离。重复该过程直到直线SH。在位图生成器150利用4、5、6和3的运动距离从直线Sl到直线SH映射了所有位图之后,源位图200被变换为最终旋转后的位图300,其以如图4中所示的某个角度旋转。图11是图示根据本总发明构思的图像变换方法的流程图。此后,参考图3到图11描述根据本总发明构思的示例性实施例的图像变:換方法。坐标提取器IIO使用位图信息提取源位图200的某个边缘的角坐标。在操作S400中,坐标提取器IIO提取源位图200的第一边缘E1和第二边缘E2的角坐标(xl,yl)、(x2,y2)和(x3,y3)的每一对,如图4中所示。在操作S410中,边缘信息计算器120使用位图信息或所提取的角坐标(xl,yl)、(x2,y2)和(x3,y3)来计算旋转后的位图300的边缘信息。此时,边缘信息计算器120使用公式4计算旋转后的位图300的边缘信息。参考图4,由边缘信息计算器120计算的旋转后的位图300的边缘信息包括坐标(XI,Yl)、(X2,Y2)和(X3,Y3)。在操作S420中,直线信息计算器130使用所计算的旋转后的位图300的边缘信息来计算边缘信息的Bresenham因数,并且参考Bresenham因数确定用于位图映射的运动方向和运动距离。在操作S430中,扩展表生成器140考虑到源位图200的大小和旋转后的位图300的大小而生成扩展表,其中源位图200的像素被重复一定次数。如果源位图200的大小和旋转后的位图300的大小的比率为1:1,则不需要操作S430。位图生成器150顺序地沿着直线Sl、S2、S3.....SH的方向将扩展表与旋转后的位图300相映射,如图IO所示。在位图生成器150中生成最终旋转后的位图300遵循如图10中所示的相同的操作(S440)。为了解释本总发明构思的效果,表1示出了在使用在1965年和1985年公开的Bresenham因数的位图旋转的情况下对计算速度进行仿真的结果。仿真的第一条件包括位图的初始坐标为(0,G),并且通过改变最高行的位置来将仿真重复几次,以便增强可靠度。仿真的第二条件包括对大约A4纸的1/4、2/4、3/4和4/4大小的位图进行仿真。A4纸具有大约4800像素的宽度和大约6400像素的高度。仿真的第三条件包括对大位图进行仿真。例如,在该仿真中使用的位图具有20000宽和100000高。仿真的第四条件包括对具有介于0°和45。之间的斜率的18-20个位图的旋转进行仿真,而每次按照半个位图的宽度来改变y坐标。表l<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>可以通过重复根据上面四个条件的仿真来获得表1。如图1所示,使用在1985年公开的Bresenham因数具有比在1965年公开的Bresenham因数增加45°/。的计算速度。使用上面的位像旋转方法的位像旋转装置可能是使用位像的宽范围的装置的任何一个,诸如多媒体显示装置、游戏的应用程序或者打印装置。根据本总发明构思的位像旋转装置和位像旋转方法可以通过使用Bresenham直线算法执行位图旋转计算的整数计算,来提高位像的旋转计算速度。尽管已经示出并描述了本总发明构思的一些实施例,但是本领域技术人员应该懂得在不偏离本总发明构思的原理和精神的前提下,可以在这些实施例中作出改变,本总发明构思的范围由所附权利要求书及其等效物来限定。权利要求1.一种用来旋转位像的装置,该装置包括边缘信息计算器,用于使用位图信息计算关于与源位图的预定边缘相对应的旋转后的位图的边缘的信息;直线信息计算器,用于使用所述旋转后的位图的边缘信息计算直线信息以生成旋转后的位图;以及位图生成器,用于使用所述旋转后的位图和所述直线信息生成最终旋转后的位图。2.如权利要求l所述的装置,其中所述位图信息包括旋转角度,用于旋转所述源位图;所述源位图的大小;所述旋转后的位图的大小;所述源位图的色彩;以及对应于所述源位图的像素信息。3.如权利要求l所述的装置,还包括坐标提取器,用于使用所述位图信息提取所述源位图的边缘的角坐标。4.如权利要求l所述的装置,其中所述边缘信息计算器根据下面的公式计算所述旋转后的位图的边缘信息Z=XXCOSy=-xxsin(r)十少xcos(71)其中(x,y)为所述源位图的边缘的角坐标,T是用于旋转源位图的旋转角度,以及(X,Y)是与所述源位图的边缘的角坐标相对应的所述旋转后的位图的边缘的角坐标。5.如权利要求l所述的装置,其中所述源位图的边缘包括在所述源位图中彼此相邻的第一边缘和第二边缘。6.如权利要求5所述的装置,其中所述边缘信息计算器计算与所述第一边缘和所述第二边缘的接触点的坐标、所述第一边缘的另一角的坐标、以及所述第二边缘的另一角的坐标相对应的第一角坐标、第二角坐标、以及第三角坐标。7.如权利要求2所述的装置,还包括扩展表生成器,用于考虑所述源位图的大小和所述旋转后的位图的大小而生成扩展表,其中所述源位图的像素被重复预定次数。8.如权利要求l所述的装置,其中所述直线信息计算器计算用于所述边缘信息的Bresenham因数,并且参考Bresenham因数计算所迷直线信息。9.如权利要求8所述的装置,其中所述直线信息包括直线的运动方向和运动距离,用于生成构成在所述旋转后的位图中彼此相邻的第三边缘和第四边缘的直线。10.如权利要求9所述的装置,其中所述直线信息计算器在所述运动方向改变的任何时候都重新计算所述运动距离。11.如权利要求IO所述的装置,其中所述位图生成器沿着所述直线的运动方向与所述运动距离相对应地重复将所述源位图映射到所述旋转后的位图的操作。12.—种旋转位像的方法,该方法包括使用位图信息计算关于与源位图的预定边缘相对应的旋转后的位图的边缘的信息;使用所述旋转后的位图的边缘信息来计算直线信息,以生成所述旋转后的位图;以及使用所述旋转后的位图的边缘信息和直线信息生成最终旋转后的位图。13.如权利要求12所述的方法,其中所述位图信息包括用于旋转所述源位图的旋转角度;所述源位图的大小;所述旋转后的位图的大小;所述源位图的色彩;以及对应于所述源位图的像素信息。14.如权利要求12所述的方法,还包括使用所述位图信息提取所述源位图的边缘的角坐标。15.如权利要求12所述的方法,其中在所述计算边缘信息中,根据下面的公式计算所述旋转后的位图的边缘信息<formula>formulaseeoriginaldocumentpage3</formula>其中(x,y)为所述源位图的边缘的角坐标,T是用于旋转源位图的旋转角度,以及(X,Y)是与所述源位图的边缘的角坐标相对应的所述旋转后的位图的边缘的角坐标。16.如权利要求12所述的方法,其中所述源位图的边缘包括在所述源位图中彼此相邻的第一边缘和第二边缘。17.如权利要求16所述的方法,其中在所述计算边缘信息中,计算与所述第一边缘和所述第二边缘的接触点的坐标、所述第一边缘的另一角的坐标、以及所述第二边缘的另一角的坐标相对应的第一角坐标到第三角坐标。18.如权利要求13所述的方法,还包括考虑所述源位图的大小和所述旋转后的位图的大小而生成扩展表,其中所述源位图的像素被重复预定次数。19.如权利要求12所述的方法,其中所述计算直线信息包括计算用于所述边缘信息的Bresenham因数;以及参考Bresenham因数计算所述直线信息。20.如权利要求19所述的方法,其中所述直线信息包括直线的运动方向和运动距离,用于生成构成在所述旋转后的位图中彼此相邻的第三边缘和第四边缘的直线。21.如权利要求19所述的方法,其中在所述计算Bresenham因数中,计算直线的运动方向和运动距离,以生成构成在旋转后的位图中彼此相邻的第三边缘和第四边缘的直线。22.如权利要求21所述的方法,其中所述计算直线信息还包括在所述运动方向改变的任何时候都重新计算所述运动距离。23.如权利要求22所述的方法,其中在所述生成最终旋转的位图的过程中,重复沿着所述直线的运动方向与所述运动距离相对应的将所述源位图映射到所述旋转后的位图的操作。24.—种用于旋转源位图的装置,该装置包括直线信息计算器,用于计算用于与所述源位图相对应的旋转后的位图的边缘的Bresenham因数,以及用于参考所述Bresenham因数计算直线信息;以及位图生成器,用于基于来自所述直线信息计算器的计算结果而生成最终旋转后的位图。25.如权利要求24所述的装置,其中所述位图生成器通过在水平方向和对角线方向移动所述源位图的像素来生成所述最终旋转后的位图。26.如权利要求25所述的装置,还包括扩展表生成器,用于考虑所述源位图的大小和所述旋转后的位图的大小来生成扩展表,其中所述源位图的像素被重复预定次数。27.—种旋转源位图的方法,该方法包括计算用于与所述源位图相对应的旋转后的位图的边缘的Bresenham因数;参考所述Bresenham因数计算直线信息;以及基于所有计算结果,生成最终旋转后的位图。28.如权利要求27所述的方法,还包括通过在水平方向和对角线方向运动所述源位图的像素,来生成所述最终旋转后的位图。29.如权利要求28所述的方法,还包括考虑所述源位图的大小和所述旋转后的位图的大小而生成扩展表,其中所述源位图的像素被重复预定次数。全文摘要提供了一种用于旋转位像的位像变换装置和方法。该装置包括边缘信息计算器,用于使用位图信息计算关于与源位图的预定边缘相对应的旋转后的位图的边缘的信息;直线信息计算器,用于使用旋转后的位图的边缘信息来计算直线信息以生成旋转后的位图;以及位图生成器,用于使用旋转后的位图的边缘信息和直线信息来生成最终旋转后的位图。因此,可以增强位像旋转的计算速度。文档编号G06T3/60GK101114378SQ20071010393公开日2008年1月30日申请日期2007年5月15日优先权日2006年7月25日发明者李承勉申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1