带图像旋转的嵌入式装置的制作方法

文档序号:6553033阅读:217来源:国知局
专利名称:带图像旋转的嵌入式装置的制作方法
技术领域
本发明的各方面涉及数字图像操纵。其它方面涉及用于在例如移动电话的嵌入式装置中旋转数字图像的工具。
背景技术
数字图像操纵可涉及对数字图像执行的许多不同类型的修改和变换。数字图像操纵技术的实例包括旋转、放大、收缩、扭曲、边缘检测和过滤。
在某些应用中,例如旋转的图像操纵操作可帮助用户从某一视角理解图像,或可将图像定向以用于特定用途。在其它应用中,可执行数字图像操纵(包括旋转)以用于娱乐目的。数字图像操纵技术还用于产业中,用于多种应用中,所述应用包括图案识别、特征提取(例如,在视频监视和人物动作分析中)、图像恢复、图像增强、针对计算机动画序列的扭曲/变形,和生物医学图像处理。
多种数字图像操纵技术以相片编辑软件的形式市售。例如数码相机和移动电话的嵌入式装置也具有数字图像操纵功能。

发明内容
一种嵌入式装置的一个实施例包含旋转角度界定机构和旋转机构。所述旋转角度界定机构适于界定图像的任意旋转角度。所述旋转机构适于使用所述任意角度且仅使用整数算法来将旋转变换角度应用于所述图像,使得将所述图像内的像素映射到旋转的位置。


将参看以下图式来描述实施例,其中在所有图式中,相同标号表示相同项目,且图式中图1是能够执行旋转图像变换的示范性嵌入式装置的方框图;
图2是旋转之前图像的示意图,其说明坐标系统和旋转角度;图3是坐标平面的图,其说明在第一情况下将任意输入的旋转角度映射到0与90度之间的角度;图4是坐标平面的图,其说明在第二情况下将任意输入的旋转角度映射到0与90度之间的角度;图5是坐标平面的图,其说明在第三情况下将任意输入的旋转角度映射到0与90度之间的角度;图6是坐标平面的图,其说明在第四情况下将任意输入的旋转角度映射到0与90度之间的角度;图7是能够使用整数算法执行旋转变换的示范性嵌入式装置的方框图;图8是执行旋转变换的示范性方法的流程图;和图9是对具有适于执行旋转的数码相机的移动电话的说明。
具体实施例方式
图1是示范性嵌入式装置10的方框图,在所说明的实施例中,所述示范性嵌入式装置10包含无线移动通信装置。所说明的嵌入式装置10包含系统总线14;装置存储器16(其为所说明的装置10中的主存储器),其通过系统总线14连接到嵌入式装置10的其它部分并可由所述其它部分存取;和硬件实体18,其连接到系统总线14。硬件实体18中的至少某些实体执行涉及存取和使用主存储器16的动作。硬件实体18可包括微处理器、ASIC和其它硬件。
图形实体20连接到系统总线14。图形实体20可包含一较大集成系统(例如,芯片上系统(SoC))的核心或部分,或其可包含例如图形加速器的图形芯片。在所说明的实施例中,图形实体20包含图形管线(未图示)、图形时钟23、缓冲器22和总线接口19,所述总线接口19用以使图形实体20与系统总线14介接。
缓冲器22保存由图形实体20在每一像素处理中使用的数据。缓冲器22提供像素相关数据(例如,来自主存储器16内的缓冲器(未图示)的像素信息)的本地存储。
在所说明的实施例中,图形实体20还包括角度确定机构24和旋转变换机构26。角度确定机构24耦合到装置10的用户接口28。旋转机构26使用由角度确定机构24提供的旋转角度对图像执行旋转变换。尽管在所说明的实施例中图形实体20执行变换功能,但在其它实施例中,那些功能可由其它硬件18执行。
图2是图像50的示意说明。图像50具有宽度W和高度H。在大多数数字图像操纵方法中,以像素为单位来表达所述宽度W和高度H,但可使用其它度量单位。图像50的高度H沿着图2中的y轴52延伸,且图像的宽度W沿着x轴54延伸。在图2中,如图所示,图像50的宽度坐标从0延伸到W-1,且高度坐标从0延伸到H-1。图像50还具有旋转中心,如坐标(x0,y0)处所指示。
可以多种方式创建图像50,所述方式包括数字摄影、胶片摄影随后进行数字化、从非摄影源进行数字化,和纯数字说明/呈现。
如图2中所指示,在所说明的实施例中,将使图像50绕其中心旋转任意旋转角度α。所述角度α可为任何角度。在其它实施例中,可使图像50绕并非为图像的几何中心的其它点旋转。
通过使用一组变换函数将图像的每一像素映射到新的旋转位置来旋转图像50。对于旋转,由以下等式(1)和(2)表示所述变换函数xout=xo+(xin-xo)·cosθ-(yin-yo)·sinθ(1)yout=yo+(xin-xo)·sinθ+(yin-yo)·cosθ(2)其中xin和yin是输入像素坐标,xout和yout是输出像素坐标,θ是以弧度为单位来表达的旋转角度,且x0和y0是旋转中心的坐标,在这种情况下,所述旋转中心是图像50的中心。
等式(1)和(2)也可用矩阵形式表示为xout-xoyout-yo=cosθ-sinθsinθcosθ·xin-xoyin-yo---(3)]]>如等式(3)所示,可通过执行适当的矩阵乘法来直接计算图像50的输出像素的位置。然而,如图所示,所述计算使用旋转角度的正弦和余弦值。在某些实施例中,可使用(例如)查找表(LUT)来存储并检索正弦和余弦值。然而,具有用以处理任意指定的旋转角度的充分数目的正弦和余弦值的LUT可能需要大量的存储器或存储空间。在嵌入式装置上可能不能获得或不需要大量空间。
因此,在所说明的实施例中,计算旋转角度的正弦和余弦函数值。执行旋转运算的第一任务是将输入的所需的旋转角度(角度α)映射到范围在0度与90度之间的旋转角度(角度β)。因为这利用了正弦和余弦函数的周期性,所以简化了计算。
在此实施例中,当将角度α转换为范围在0与90度之间的角度β时要考虑四种情况。图3说明展示第一情况的坐标平面,其中角度α在0与90度之间。图4说明展示第二情况的坐标平面,其中角度α在90与180度之间。在那种情况下,角度β被设定为等于180减去α。图5说明展示第三情况的坐标平面,其中角度α在180与270度之间。在那种情况下,角度β被设定为等于α减去180。在图6的坐标平面中所示的第四情况下,角度β被设定为等于360减去α。如果角度α大于360度,那么将重复地从角度α中减去360,直到α在0与360度之间的范围内为止。对于是360的倍数的角度来说,旋转图像等同于原始图像。
通过将输入角度α映射到角度β,正弦和余弦关系变为如果0°≤α<90°,那么β=α且sinα=sinβcosα=cosβ---(4)]]>如果90°≤α<180°,那么β=180°-α且 如果180°≤α<270°,那么β=α-180°且 如果270°≤α<360°,那么β=360°-α且 在所说明的实施例中,使用泰勒级数(Taylor series)来近似正弦和余弦函数值。对于正弦函数,泰勒级数展开式为sinθ=θ-13!θ3+15!θ5-17!θ7+···---(8),]]>且对于余弦函数,泰勒级数展开式为cosθ=1-12!θ2+14!θ4-16!θ6+···---(9),]]>其中θ是转换为弧度单位的角度β。如在使用泰勒级数的任何情况中,当添加更多的项时,近似会变得更精确。然而,所使用的泰勒级数的项越多,过程的计算量就越大。另外,泰勒级数的连续项将不断变小的精度量添加到最终结果。因此,用于计算幂函数的泰勒级数的项数将取决于所需的精度以及可用的计算能力。
正弦和余弦值的精度量以及相应的用于特定应用中的泰勒级数的项数可变化。在某些显示器应用中,可能不需要很大的精度,而在图像分析或其它高性能应用中,可能需要大量精度。一种决定使用多少项的方法是设定一精度阈值,例如,近似的正弦和余弦值必须在实际值的5%内,且接着求得产生所需精度级的每一函数的泰勒级数的项数。在所说明的实施例中,不同的泰勒级数项数用于不同的角度。也就是说,使用以下等式(10)和(11)计算所说明的实施例中的正弦和余弦值
如等式(10)和(11)中所示,当角度β增加超过40度时,用于近似正弦和余弦函数的项数从两项增加到四项,因为在所说明的实施例中发现,对于小于40度的角度来说,两个泰勒级数项足以将函数近似到5%的精度内,但两项级数的精度减小超过40度。其它实施例可使用不同的阈值。
可实施所说明的图像旋转方法以在具有有限能力的计算系统(例如,整数微处理器)上运行。整数微处理器一般用于移动装置上,例如移动电话、具有数码相机的移动电话,和其它便携式计算装置。虽然整数微处理器通常包括浮点(即,十进制)数学仿真程序,但使用所述仿真程序可能消耗更多的时间,且计算量更大。可使用整数算法来实施变换。
当使用等式(10)和(11)的泰勒级数近似在整数微处理器上实施例如等式(1)和(2)的变换等式以计算正弦和余弦函数时,要考虑两个因素仅使用具有精度的整数算法来计算那些等式;和对运算进行排序,以避免整数溢出(integer overflow)(即,其中所计算的数字超过微处理器可处理的最大整数的情形)。
图7是适于使用整数算法执行上文所述的变换的示范性嵌入式装置70的方框图。嵌入式装置70包括主存储器16,其连接到系统总线14;图形实体76,其通过接口19连接到系统总线14;和整数微处理器71,其连接到系统总线14。嵌入式装置70还包括连接到微处理器的旋转运算促进程序(rotation operations facilitator)72。整数运算促进程序74包括在旋转运算促进程序72内。
旋转运算促进程序72使用等式(10)和(11)的近似来计算等式(1)和(2)的正弦和余弦函数,且执行其它旋转运算。整数运算促进程序74确保以避免整数溢出的计算次序使用整数算法执行所有必要的计算。下文将更详细地描述组件72、74的操作和所执行的计算。例如装置70的嵌入式装置的优势在于,不使用浮点仿真程序,这使得变换在整数微处理器71上更有效。可在硬件中、在软件中,在硬件和软件的某一组合中,或以与嵌入式装置70兼容的任何其它方式实施旋转运算促进程序72和整数运算促进程序74。
等式(10)和(11)不严格含有整数项,但那些等式的项可经转换,使得可使用整数算法执行计算。举例来说,可将 首先计算为实数,接着乘以210=1024,且最后四舍五入为整数。因此, 可被转换为13!·210=(0.16667)·1024=171.]]>可使用 的此新的整数表示形式来计算中间的算法运算。在所有中间运算都完成后,可通过除以210来获得最终结果。这种技术在中间整数算法运算期间保留了精度。类似地,可以相同方式将例如 的其它非整数项转换为整数,以使用纯整数算法获得精确的结果。一般来说,使用二的较大的幂来维持合理数目的有效数字,这有助于维持精度。然而,如果需要较小的精度,那么可将二的较小的幂用作乘数。另外,尽管其它整数的幂可用作乘数,但使用二的幂允许使用较快的移位运算,而不是相对较慢的乘法运算。
作为一个实施实例,以下代码说明在32位整数微处理器上实施所描述的旋转方法<pre listing-type="program-listing">uint32 w,h,beta,radian;int8 sinSign,cosSign;int32 xin,yin,xout,yout,xo,yo,sintheta,costheta;xo=w>>1;yo=h>>1;sinSign=1;cosSign=1;/*angle is an int32 input parameter indicating the rotation angle*/while(angle<0){angle+=360;}angle%=360;/*map angle to range
degrees*/if(angle<=90){ beta=angle;}else if(angle<=180){ beta=180-angle; cosSign=-1;}else if(angle<=270){beta=angle-180;sinSign=-1;cosSign=-1;</pre><pre listing-type="program-listing">  }else{   beta=360-angle;   sinSign=-1;  }  /*convert angle to radians*2^9*/  radian=beta*9;  /*calculate sin and cos*/  if(radian<=360){   /*beta<=40 degrees*/   sintheta=((radian*(262144-(radian*radian)/6))>>8)*sinSign;   costheta=(524288-radian*radian)*cosSign;  }else{   if(radian==810){   /*beta=90 degrees*/   sintheta=524288*sinSign;   costheta=0;   }else{   /*40<beta<90*/   sintheta=(((radian*(262144-(radian*radian)/6))>>8)+  (((((((((radian*radian*radian)/120)>>3)*  radian)>>10)*radian)/42)*((11010048-  radian*radian)>>10))>>21))*sinSign;   costheta=((524288-radian*radian)+  (((((((radian*radian*radian)/24)>>3)  *radian/30)>>10)*((7864320-  radian*radian)>>10))>>12))*cosSign;   }  }  /*for each output pixel,map to the corresponding input pixel*/  xin=xo+(((xout-xo)*costheta+(yout-yo)*sintheta)>>19);  yin=yo+(((xo-xout)*sintheta+(yout-yo)*costheta)>>19);</pre>在上述代码中,变量w是图像宽度,变量h是图像高度,且angle是被作为32位整数被存储的旋转角度。上述代码片断以C编程语言描述,但可用C++、Java、J++、汇编语言,或能够执行所述命令的任何其它编程语言来实施此处描述的旋转方法的其它实施例。为了促进实时性能,在所示的实施例中,例如,没有使用大于微处理器的32位能力的整数。以上代码中的运算次序使得计算中没有整数将大于32位。尽管此处针对32位微处理器实施,但也可针对其它微处理器(包括64和128位微处理器)以及在能够执行所述计算的任何其它计算装置(例如,ASIC)上实施这些旋转方法。尽管依据整数微处理器进行描述,但本文所述的旋转运算也可在能够进行浮点运算的微处理器上执行。
在图8的流程图中展示执行旋转变换的更一般的方法100。方法100在动作102处开始处理输入图像,且继续动作104。在动作104处,方法100获得旋转角度α。获得旋转角度α的方式取决于执行方法100的平台上可用的用户接口类型。在某些实施例中,用户可使用数字键击来输入角度。在其它实施例中,用户可使用非数字的键的某一组合来指示旋转角度。或者,如果方法100被实施为对许多图像执行相同旋转变换的方法,那么可将角度α编码在用于执行所述方法的指令中,在此情况下,动作104可包含从存储装置中检索α。一旦已获得角度α,方法100就继续动作106。
在动作106中,角度α如上文所述被映射到范围在0与90度之间的角度β。一旦完成动作106,方法100就继续S108,在S108中使用适当的泰勒级数近似来计算角度β的正弦和余弦函数。在计算了角度的正弦和余弦函数后,方法100继续动作110,在动作110中选择输入图像中的像素。一旦选择了像素,就执行动作112,在动作112中计算输出像素的位置。方法100的控制接着进行到动作114,在动作114中确定是否需要处理额外的输入像素。如果需要处理额外的输入像素(114是),那么方法100的控制返回动作110,且继续输入像素的处理。当不再有像素仍需变换时(114否),方法100的控制进行到动作116,在动作116中方法终止并返回。在方法100完成并返回后,可执行对于(例如)输出最终的旋转图像有用的任何额外的任务。
图9说明在绕图像的几何中心逆时针旋转之后,显示在移动电话的屏幕上的图像。在图9的图像的原始尺寸外部的经变换图像的像素区域被剪去,且图像的未使用区域具有黑色像素值。在其它实施例中,可重新调整图像的大小,使得原始图像中出现的每个像素也出现在旋转图像中。可赋予旋转图像中的未使用像素非黑色的色彩或特性,且如果使用支持像素透明度的图像格式,那么那些像素可被指示为透明的。
在以上描述内容的某些部分中,已假设待旋转的图像为RGB(红-绿-蓝)格式,其中每个图像像素具有针对所述像素的红色内容的值,针对绿色内容的值和针对蓝色内容的值。然而,所说明的变换方法可在不首先转换为RGB的情况下直接用于其它图像格式上。这是有利的,因为尽管RGB格式的图像相对易于操纵,但它们更难以压缩,且一般消耗更多的存储空间。
两种其它普通的图像格式是YCbCr和YCrCb。而在RGB图像中,数据依据每一像素的红、绿和蓝色彩值而存储,YCbCr和YCrCb格式通过纪录每一像素的亮度(Y)和色度(Cb、Cr)值来存储图像数据。YCbCr和YCrCb格式是比较流行的,因为它们用于普通的JPEG图片文件格式中。
如果在例如数码相机的便携式嵌入式装置上实施例如旋转的图像变换,那么对RGB、YCbCr和YCrCb图像进行操作的能力是有利的,因为所有三种格式均可用于数码相机中。这是由于数字图像被创建和处理的方式所致。
举例来说,大多数数码相机图像传感器包含仅对红、绿或蓝光中的一者而不是对所有三种色彩的光敏感的个别传感器单元。因此,个别单元通常以被称为Bayer图案的图案排列,其中对绿色敏感的单元分散在对红色和蓝色敏感的单元之中,并与其交替。在消费型产品中,绿色单元一般起支配作用,因为人类的视觉系统对绿色较为敏感,且包含更多的绿色单元往往会增加感知到的图像质量。在一个典型的Bayer图案中,16个单元的阵列可能包括8个绿色单元、4个红色单元和4个蓝色单元,其大致排列成棋盘图案。当由使用呈Bayer图案的单色单元的数码相机拍摄图像时,原始图像通常被内插,使得每一像素具有红值、绿值和蓝值,且至少在处理的中间阶段被存储为RGB图像。所述图像可进一步被转换为YCbCr或YCrCb以供存储。
尽管可通过应用上文描述的旋转变换方法直接处理YCbCr和YCrCb格式的图像,但存在可能(例如)对经二次取样的YCbCr和YCrCb图像执行额外的任务的某些情形。在经二次取样的图像中,某些色度值被丢弃或经二次取样以缩减文件的大小。举例来说,像素列以普通的H2V1 YCbCr 4:2:2格式被进行二次取样,但像素行不受影响。在此二次取样方案中,如果从零开始对列进行编号,那么仅偶数列具有Cb分量,且仅奇数列具有Cr分量。另一经二次取样的格式是YCbCr 4:2:0格式,其中每一2×2像素阵列共享单一的Cb值和单一的Cr值。YCrCb格式一般与YCbCr相同,只是Cb和Cr值的次序被颠倒。
上文描述的变换方法可直接应用于经二次取样的YCrCb和YCbCr格式,但这样做可能不会产生具有正确交替的Cb和Cr分量的最终图像。为了克服此问题,可通过考虑相邻的像素对并复制适当的Cb和Cr值,使得每一像素均具有Cb和Cr值,而从经二次取样的图像中创建临时的未经二次取样的图像(YCrCb 4:4:4和YCbCr 4:4:4)。接着将上文描述的变换方法应用于所述临时的未经二次取样的图像以产生临时的未经二次取样的输出图像。变换之后,丢弃经二次取样的输出图像中的额外的Cb和Cr值。由发明者执行的测试展示在RGB图像的处理与YCrCb和YCbCr格式的相同图像的处理之间没有视觉上可感知到的差异。
图9展示具有数码相机202的移动电话200的实施例。移动电话和数码相机每一者都是嵌入式装置类型。移动电话200和其数码相机202包括用于执行本文所述的图像变换的机构。在典型的使用中,用户将使用移动电话200的数码相机202来拍摄数字图片,且接着将使用移动电话200的处理能力来执行旋转。如图9中所示,数码相机204显示在移动电话200的显示屏幕206上。显示屏幕206可(例如)为相对较小的液晶显示器。如图所示,图像204已被逆时针旋转。临时覆盖在图像204上的覆盖图或下拉菜单214可提供用于进行额外旋转的指令。举例来说,用户可被指示使用移动电话204的箭头键210来增加或减小旋转角度。每一按键可经编程以与旋转角度增加或减小1或2度相对应。当改变旋转角度时,以新的旋转角度重复变换。新的旋转角度可以是相对于图像的当前位置或相对于其初始位置而给定的旋转角度。用户也可使用数字键212来指定旋转角度。
虽然已描述某些所说明的实施例,但本文已使用的文字是描述性文字而不是限制性文字。可(例如)在所附权利要求书的范围内作出变化。
权利要求
1.一种嵌入式装置,其包含旋转角度界定机构,其界定图像的旋转角度;和旋转机构,其使用所述角度且仅使用整数算法来将旋转变换应用于所述图像,使得所述图像内的像素被映射到旋转的位置。
2.根据权利要求1所述的装置,其进一步包含用户接口,所述用户接口耦合到所述旋转角度界定机构以获取所述旋转角度。
3.根据权利要求1所述的装置,其中所述旋转角度界定机构适于将旋转角度α映射到经映射的旋转角度β,且所述旋转机构在应用所述旋转变换时使用所述经映射的旋转角度。
4.根据权利要求3所述的装置,其中所述经映射的旋转角度β满足不等式0°≤B≤90°。
5.根据权利要求4所述的装置,其中所述旋转变换由矩阵变换表示xout-xoyout-yo=cos&theta;-sin&theta;sin&theta;cos&theta;&CenterDot;xin-xoyin-yo]]>其中xin和yin是所述图像的像素的位置坐标,xout和yout是所述像素的旋转的位置的位置坐标,x0和y0是所述旋转变换的旋转中心的位置坐标,且θ是以弧度为单位表达的所述经映射的旋转角度β。
6.根据权利要求5所述的装置,其中所述旋转角度α与所述经映射的旋转角度β之间的关系由以下等式表示如果0°≤α<90°,那么β=α且sin&alpha;=sin&beta;cos&alpha;=cos&beta;]]>如果90°≤α<180°,那么β=180°-α且 如果180°≤α<270°,那么β=α-180°且 如果270°≤α<360°,那么β=360°-α且
7.根据权利要求5所述的装置,其中所述旋转机构近似所述矩阵变换的正弦和余弦函数的值,以获得精确到所需的精度阈值内的值。
8.根据权利要求7所述的装置,其中所述旋转机构使用一个或一个以上泰勒级数项正弦和余弦近似来近似所述矩阵变换的所述正弦和余弦函数的值。
9.根据权利要求8所述的装置,其中如果所述经映射的旋转角度β在阈值角度以下,且所述经映射的旋转角度β的泰勒级数项的第二项在所述阈值角度以上,那么所述旋转机构使用泰勒级数项的第一项。
10.根据权利要求1所述的装置,其中所述旋转机构包括整数运算促进程序,所述整数运算促进程序适于将非整数项转换为整数,且以防止整数溢出的计算次序来执行计算。
11.根据权利要求1所述的装置,其中所述嵌入式装置是移动电话。
12.一种用数据编码的机器可读媒体,所述数据可与机器共同操作以促使界定图像的旋转角度;和仅使用整数算法将使用所述角度的旋转变换应用于所述图像,使得所述图像内的像素被映射到旋转的位置。
13.根据权利要求12所述的媒体,其中所述数据可与机器共同操作,以进一步促使映射所述旋转角度β,且在应用所述旋转变换时使用所述经映射的旋转角度。
14.根据权利要求13所述的媒体,其中所述数据可与机器共同操作,以促使所述经映射的旋转角度β满足不等式0°≤B≤90°。
15.根据权利要求14所述的媒体,其中所述数据可与机器共同操作,以促使由矩阵变换来表示所述旋转变换xout-xoyout-yo=cos&theta;-sin&theta;sin&theta;cos&theta;&CenterDot;xin-xoyin-yo]]>其中xin和yin是所述图像的像素的位置坐标,xout和yout是所述像素的旋转的位置的位置坐标,x0和y0是所述旋转变换的旋转中心的位置坐标,且θ是以弧度为单位表达的所述经映射的旋转角度β。
16.根据权利要求15所述的媒体,其中所述数据可与机器共同操作,以促使由以下等式表示任意旋转角度α与所述经映射的旋转角度β之间的关系如果0°≤α<90°,那么β=α且sin&alpha;=sin&beta;cos&alpha;=cos&beta;]]>如果90°≤α<180°,那么β=180°-α且 如果180°≤α<270°,那么β=α-180°且 如果270°≤α<360°,那么β=360°-α且
17.根据权利要求15所述的媒体,其中所述数据可与机器共同操作,以促使近似所述矩阵变换的正弦和余弦函数的值,以获得精确到所需的精度阈值内的值。
18.根据权利要求17所述的媒体,其中所述数据可与机器共同操作,以促使使用一个或一个以上泰勒级数项正弦和余弦近似来近似所述矩阵变换的所述正弦和余弦函数的值。
19.根据权利要求18所述的媒体,其中所述数据可与机器共同操作,以促使当所述经映射的旋转角度β在阈值角度以下且所述经映射的旋转角度β的泰勒级数项的第二项在所述阈值角度以上时,使用泰勒级数项的第一项。
20.根据权利要求12所述的媒体,其中所述数据可与机器共同操作,以促使将非整数项转换为整数,且以防止整数溢出的计算次序来执行计算。
21.一种设备,其包含嵌入式装置;所述嵌入式装置内的装置,其用于界定图像的旋转角度;和所述嵌入式装置内的装置,其用于仅使用整数算法将使用所述角度的旋转变换应用于所述图像,使得所述图像内的像素被映射到旋转的位置。
22.根据权利要求21所述的设备,其进一步包含用于将旋转角度α映射到经映射的旋转角度β且在应用所述旋转变换时使用所述经映射的旋转角度的装置。
23.根据权利要求22所述的设备,其中所述旋转变换由矩阵变换表示xout-xoyout-yo=cos&theta;-sin&theta;sin&theta;cos&theta;&CenterDot;xin-xoyin-yo]]>其中xin和yin是所述图像的像素的位置坐标,xout和yout是所述像素的旋转的位置的位置坐标,x0和y0是所述旋转变换的旋转中心的位置坐标,且θ是以弧度为单位表达的所述经映射的旋转角度β。
24.根据权利要求23所述的设备,其进一步包含用于近似等式(1)的正弦和余弦函数的值的装置。
25.根据权利要求23所述的设备,其中所述用于近似的装置使用第一范围的所述经映射的旋转角度β的第一精度级和第二范围的所述经映射的旋转角度β的第二精度级来近似等式(1)的所述正弦和余弦函数的值。
26.一种移动电话,其包含接收器/发射器组合件;微处理器;旋转角度界定机构,其界定图像的旋转角度;和旋转机构,其仅使用整数算法将使用所述角度的旋转变换应用于所述图像,使得所述图像内的像素被映射到旋转的位置。
27.根据权利要求26所述的移动电话,其中所述微处理器是整数微处理器。
28.根据权利要求27所述的移动电话,其进一步包含键区和显示屏幕。
29.根据权利要求28所述的移动电话,其进一步包含数码相机。
全文摘要
一种嵌入式装置的一个实施例包含旋转角度界定机构和旋转机构。所述旋转角度界定机构适于界定图像的任意旋转角度。所述旋转机构适于使用所述任意角度且仅使用整数算法来将旋转变换角度应用于所述图像,以便将所述图像内的像素映射到旋转的位置。
文档编号G06F7/548GK101061703SQ200580039276
公开日2007年10月24日 申请日期2005年9月29日 优先权日2004年9月29日
发明者周孟耀 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1