专利名称:一种实现自动调整照片方向的方法及移动终端的制作方法
技术领域:
本发明涉及移动终端领域,尤其涉及一种实现自动调整照片方向的方法及移动终端。
背景技术:
随着集成电路技术的飞速发展,移动终端已经拥有了强大的处理能力,移动终端正在从简单的通话工具变为一个综合的信息处理平台。现代的移动终端已经拥有极为强大 的处理能力、内存、固化的存储介质以及像电脑一样的操作系统。现有的移动终端的操作系统能够提供强大的多媒体拍照功能,其中横屏和竖屏的 切换功能是一大特色,在默认的情况下,用户可使用横屏和竖屏两种拍照方式,但是由于拍 照角度的不一致,在横屏拍照方式下的照片,在移动终端或计算机中再次显示时会出现观 看角度不符合用户正常习惯的情况,需要用户在浏览时手动对照片进行旋转操作,当用户 浏览数目众多且角度不同的照片时,繁琐的操作会使用户体验大打折扣。针对这个问题,现有技术中,实现自动调整照片方向的方法如下如图1所示,当 进行多角度拍摄照片时,方向感知装置的驱动层实时获取当前移动终端的重力加速度的三 轴数据,方向感知装置的硬件抽象层(HAL,HardwareAbstraction Layer)根据三轴数据得 到倾斜角度数据,通过调用接口发送给照相机模块的应用程序模块保存;同时,照相机模块 的驱动层获取摄像头返回的图像数据,并发送给照相机模块的HAL,照相机模块的HAL将 图像数据发送给图像编码模块进行编码,图像编码模块编码完成后将图像数据保存在存储 器;照相机模块的应用程序模块将倾斜角度数据记录到该照片的文件头部信息中,当在移 动终端上再次浏览该照片时,图片库的应用程序通过记录的倾斜角度数据对照片进行一定 角度的旋转。这个方法是在图像编码模块编码完成后将图像数据保存在存储器,如果当在 移动终端上浏览图片时,根据倾斜角度数据对照片进行调整,也就是说对图像数据先保存 后调整,所以这个方法存在的缺陷就是,如图2所示,一旦照片脱离移动终端,比如将照片 放在计算机上进行显示,照片就恢复成拍照时的角度,仍然需要用户手动的调整照片方向。 当用户连续浏览多张不同角度的照片时,每打开一张照片,都要根据当时的倾斜数据角度 进行一次照片方向的调整,降低了浏览的效率。
发明内容
有鉴于此,本发明的主要目的在于提供一种实现自动调整照片方向的方法及移动 终端,在移动终端上自动调整多角度拍摄的照片的方向。为达到上述目的,本发明的技术方案是这样实现的本发明公开一种实现自动调整照片方向的移动终端,该移动终端包括方向感知 装置、照相机模块、图像编码模块;其中,方向感知装置,用于向照相机模块发送移动终端的倾斜角度数据;照相机模块,用于根据所述倾斜角度数据,获得移动终端的方向数据;并获取图像数据之后将图像数据和方向数据发送给图像编码模块;图像编码模块,用于根据方向数据对图像数据进行处理,并将处理后的图像数据保存到存储器。上述移动终端中,所述方向感知装置包括驱动层、硬件抽象层(HAL)、调用接口 ; 其中,驱动层,用于实时获取当前移动终端的重力加速度的三轴数据,将三轴数据发送 给 HAL ;HAL,用于调用驱动程序,根据所述三轴数据,利用反三角函数公式,计算得到移动 终端的倾斜角度数据,将倾斜角度数据发送给调用接口 ;调用接口,用于接收HAL发送的倾斜角度数据,将倾斜角度数据发送给照相机模 块。上述移动终端中,所述照相机模块包括应用程序模块、服务层、硬件抽象层 (HAL);其中,应用程序模块,用于根据方向感知装置发送的倾斜角度数据,得到移动终端的方 向数据,将方向数据发送给服务层;服务层,用于接收应用程序模块发送的方向数据,将方向数据发送给HAL ;HAL,用于获取图像数据,将图像数据和方向数据发送给图像编码模块。本发明还公开一种实现自动调整照片方向的方法,该方法包括方向感知装置向照相机模块发送移动终端的倾斜角度数据;照相机模块根据所述倾斜角度数据获得移动终端的方向数据,并获取图像数据之 后将图像数据和方向数据发送给图像编码模块;图像编码模块根据方向数据对图像数据进行处理,并将处理后的图像数据保存到 存储器。上述方法中,所述方向感知装置向照相机模块发送移动终端的倾斜角度数据具体 为移动终端中的方向感知装置的驱动层实时获取当前移动终端的重力加速度的三 轴数据;方向感知装置的HAL调用驱动程序,根据所述三轴数据,利用反三角函数公式,计 算得到移动终端的倾斜角度数据,将倾斜角度数据通过方向感知装置的调用接口发送给照 相机模块的应用程序模块。上述方法中,所述照相机模块模根据所述倾斜角度数据获得移动终端的方向数据 具体为在照相机模块的应用程序模块中预先定义四个方向,照相机模块的应用程序模块 接收倾斜角度数据,确定所述倾斜角度数据所在的方向,将所述方向的方向数据通过照相 机模块的服务层发送给照相机模块的HAL。上述方法中,所述四个方向分别为0度方向、90度方向、180度方向、270度方向,其 中0度、90度、180度和270度是X轴与水平面且沿顺时针方向的夹角,每个角度方向代表 其数值正负45度范围内的角度的方向。上述方法中,所述图像编码模块根据方向数据对图像数据进行处理,并将处理后 的图像数据保存到存储器具体为
在图像编码模块中预先定义编码原则,图像编码模块根据照相机模块的HAL发送 的方向数据利用所述编码原则确定图像数据的最小编码单元(MCU)的编码次序,对图像数 据进行编码和压缩处理,将图像数据直接保存到存储器。上述方法中,所述图像编码模块根据照相机模块的HAL发送的方向数据利用所述 编码原则确定图像数据的MCU的编码次序具体为如果是0度方向,图像数据的宽和高不需要互换,从图像数据的左上角的MCU开始编码;如果是90度方向,将图像数据的宽和高互换,以0度时图像数据为基准的右上角的 MCU开始编码;如果是180度方向,图像数据的宽和高不互换,以0度时图像数据为基准的 右下角的MCU开始编码;如果是270度方向,将图像数据的宽和高互换,以0度时图像数据 为基准的左下角MCU开始编码。本发明提供实现自动调整照片方向的方法及移动终端,利用方向感知装置和图像 编码技术,能够自动根据拍照时的角度对照片方向进行自动调整,然后保存调整后的照片, 因此本发明中的方案是按照观看角度符合用户正常习惯保存图像数据,针对不同角度下拍 摄的照片在移动终端或者计算机再次显示时,无需用户再一一进行手动调整照片方向,提 高照片的浏览效率,大大节省时间和精力,改善用户体验;本发明提供的方法及移动终端可以应用于多种操作系统,其中因为Android操作 系统是源代码公开的操作系统,所以当该方案应用于Android操作系统时,移动终端的制 造商不再通过具有操作系统修改权限的企业来进行移动终端中操作系统的重新配置和修 改,而是根据用户需求等对本方法中的相关配置进行自行修改,提高了移动终端的应用灵 活性,降低了移动终端的制造商的研发和生产成本。
图1为现有技术中实现自动调整照片方向的结构示意图;图2为现有技术中移动终端拍摄的照片在计算机中显示时的示例图;图3为本发明实现自动调整照片方向的移动终端的结构示意图;图4为本发明实现自动调整照片方向的方法的流程示意图;图5为本发明基于移动终端的平面的三维坐标系;图6为本发明中移动终端拍摄的照片在计算机中显示时的示例图。
具体实施例方式本发明提供一种实现自动调整照片方向的方法及移动终端,该方法及移动终端可 以适用于多种操作系统,如Windows Mobile操作系统、Symbian操作系统以及Android操 作系统等,其基本思想是方向感知装置向照相机模块发送移动终端的倾斜角度数据;照 相机模块根据所述倾斜角度数据,获得移动终端的方向数据;并获取图像数据之后将图像 数据和方向数据发送给图像编码模块;图像编码模块根据方向数据对图像数据进行处理, 并将处理后的图像数据保存到存储器。下面通过附图及具体实施例对本发明再做进一步的详细说明。本发明提供一种实现自动调整照片方向的移动终端,图3是本发明实现自动调整 方向的移动终端的结构示意图,如图3所示,该装置包括方向感知装置31、照相机模块32、图像编码模块33;其中,方向感知装置31,用于向照相机模块32发送移动终端的倾斜角度数据;照相机模块32,用于根据所述倾斜角度数据,获得移动终端的方向数据;并获取图像数据之后将图像数据和方向数据发送给图像编码模块33 ;图像编码模块33,用于根据方向数据对图像数据进行处理,并将处理后的图像数 据保存到存储器;方向感知装置31进一步包括驱动层311、硬件抽象层(HAL) 312、调用接口 313 ; 其中,驱动层311,用于实时获取当前移动终端的重力加速度的数字化三轴数据,将三轴 数据发送给HAL312;HAL312,用于调用驱动程序,根据所述三轴数据,利用反三角函数公式,计算得到 移动终端的倾斜角度数据,将倾斜角度数据发送给调用接口 313 ;调用接口 313,用于接收HAL312发送的倾斜角度数据,将数据发送给照相机模块 32 ;照相机模块32进一步包括应用程序模块321、服务层322、硬件抽象层 (HAL) 323 ;其中,应用程序模块321,用于根据调用接口 313发送的倾斜角度数据,得到移动终端的 方向数据,将方向数据发送给服务层322 ;应用程序模块321根据调用接口 313发送的倾斜角度数据得到移动终端的方向数 据,将方向数据发送给服务层322具体为在应用程序模块321中预先定义四个方向,应用 程序模块321接收倾斜角度数据,确定所述倾斜角度数据所在的方向,将方向数据通过服 务层322发送给HAL323 ;所述四个方向分别为0度方向、90度方向、180度方向、270度方 向,0度、90度、180度和270度是X轴与水平面且沿顺时针方向的夹角,每个角度方向代表 其数值正负45度范围内的角度的方向;服务层322,用于接收应用程序模块321发送的方向数据,将数据发送给HAL323 ;HAL323,用于获取图像数据,将图像数据和方向数据发送给图像编码模块33 ;图像编码模块33根据方向数据对图像数据进行处理,并将处理后的图像数据保 存到存储器具体为图像编码模块根据HAL323发送的方向数据确定图像数据的最小编码 单元(MCU,Micro Control Unit)的编码次序,对图像数据进行编码和压缩处理,将图像数 据直接保存到存储器;所述图像编码模块33根据HAL323发送的方向数据确定图像数据的MCU的编码次 序具体为如果是0度方向,图像数据的宽和高不需要互换,从图像数据的左上角的MCU开 始编码;如果是90度方向,将图像数据的宽和高互换,以0度时图像数据为基准的右上角的 MCU开始编码;如果是180度方向,图像数据的宽和高不互换,以0度时图像数据为基准的 右下角的MCU开始编码;如果是270度方向,将图像数据的宽和高互换,以0度时图像数据 为基准的左下角MCU开始编码。本发明提供一种实现自动调整照片方向的方法,图4是本发明实现自动调整照片 方向的方法的流程示意图,如图4所示,该方法包括以下步骤步骤401,方向感知装置根据移动终端的三轴数据获得倾斜角度数据,并发送给照相机模块的应用程序模块;具体的,如图5所示,Z轴始终垂直于移动终端的平面,X轴和Y轴始终位于移动终端的平面上且互相垂直,构成了一个基于移动终端的平面的三维坐标系,当移动终端旋转 时,移动终端受到的重力加速度会在X轴、Y轴和Z轴上出现分量,当移动终端进行多角度 拍摄照片时,移动终端中的方向感知装置的驱动层实时获取当前移动终端的重力加速度在 移动终端的X轴、Y轴和Z轴的数字化三轴数据;方向感知装置可以是重力传感器、加速度 传感器、磁场传感器等;方向感知装置的HAL调用驱动程序,根据方向感知装置的驱动层获取的移动终端 的三轴数据,利用反三角函数公式,计算得到移动终端的倾斜角度数据,将倾斜角度数据通 过方向感知装置的调用接口发送给照相机模块的应用程序模块;步骤402,照相机模块的应用程序模块根据倾斜角度数据得到移动终端的方向数 据,通过照相机模块的服务层发送给照相机模块的HAL ;具体的,对照相机模块中的应用程序模块进行配置,即在照相机模块的应用程序 模块中预先定义四个方向,分别为0度方向、90度方向、180度方向、270度方向,0度、90 度、180度和270度是X轴与水平面且沿顺时针方向的夹角,每个角度方向代表其数值正 负45度范围内的角度的方向,照相机模块的应用程序模块接收倾斜角度数据,确定该倾斜 角度数据所在的方向,将该方向的方向数据通过照相机模块的服务层发送给照相机模块的 HAL ;步骤403,照相机模块的HAL获取图像数据,将图像数据和方向数据发送给图像编 码模块;具体的,在实际应用中,照相机模块的驱动层中的驱动程序可以驱动移动终端摄 像头的芯片记录图像,将拍摄的图像保存在内核空间,照相机模块的HAL通过从内核空间 中将图像的图像数据拷贝到用户空间来获取图像数据,将该图像数据和接收到的方向数据 一并发送给图像编码模块;步骤404,图像编码模块根据方向数据对图像数据进行处理,并将处理后的图像数 据保存到存储器;具体的,图像编码模块将接收到的图像数据划分成多个8*8像素的MCU,在图像编 码模块中预先定义编码原则,图像编码模块根据照相机模块的HAL发送的方向数据利用该 编码原则确定图像数据的MCU的编码次序,该编码原则为如果是0度方向,图像数据的宽 和高不需要互换,从图像数据的左上角的MCU开始编码;如果是90度方向,就将图像数据 的宽和高互换,以0度时图像数据为基准的右上角的MCU开始编码;如果是180度方向,图 像数据的宽和高不需要互换,以0度时图像数据为基准的右下角的MCU开始编码;如果是 270度方向,就将图像数据的宽和高互换,以0度时图像数据为基准的左下角MCU开始编码; 其中,编码的过程是对图像数据进行离散余弦变换,即将图像数据的时域转换成频域,将光 强集中在几个可控系数,对可控系数进行量化整理,再对量化整理后的图像数据进行重新 编排,将光频率最低的放在最前面;此外,还需要对图像数据中的直流系数使用差分脉冲编 码调制进行编码,对图像数据中的交流系数使用行程长度编码进行编码,最后利用熵编码 对图像数据进行进一步压缩,压缩过程可以包括有损压缩和无损压缩;图像编码模块对图 像数据确定次序、编码和压缩后,直接保存到主存储器或者外部存储器,外部存储器可以是T-flash卡等;存储图像数据后,图像编码模块可以通过照相机模块的HAL和照相机模块的 服务层将图像已经处理并保存完毕的完成指令发送给照相机模块的应用程序模块。如图6所示,因为保存的图像数据是根据方向数据进行调整后的图像数据,所以 当图像在移动终端或者计算机中再次显示时,由于已经按照观看角度符合用户正常习惯保 存图像数据,无需用户再手动对图像方向进行旋转;根据用户的需求,可以不启动这个功 能,当不需要启动这个功能时,在照相机模块的应用程序模块的此功能的菜单中选择否即 可屏蔽此功能。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在 本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
一种实现自动调整照片方向的移动终端,其特征在于,该移动终端包括方向感知装置、照相机模块、图像编码模块;其中,方向感知装置,用于向照相机模块发送移动终端的倾斜角度数据;照相机模块,用于根据所述倾斜角度数据,获得移动终端的方向数据;并获取图像数据之后将图像数据和方向数据发送给图像编码模块;图像编码模块,用于根据方向数据对图像数据进行处理,并将处理后的图像数据保存到存储器。
2.根据权利要求1所述的移动终端,其特征在于,所述方向感知装置包括驱动层、硬 件抽象层(HAL)、调用接口 ;其中,驱动层,用于实时获取当前移动终端的重力加速度的三轴数据,将三轴数据发送给HAL ;HAL,用于调用驱动程序,根据所述三轴数据,利用反三角函数公式,计算得到移动终端 的倾斜角度数据,将倾斜角度数据发送给调用接口 ;调用接口,用于接收HAL发送的倾斜角度数据,将倾斜角度数据发送给照相机模块。
3.根据权利要求1或2所述的移动终端,其特征在于,所述照相机模块包括应用程序 模块、服务层、硬件抽象层(HAL);其中,应用程序模块,用于根据方向感知装置发送的倾斜角度数据,得到移动终端的方向数 据,将方向数据发送给服务层;服务层,用于接收应用程序模块发送的方向数据,将方向数据发送给HAL ; HAL,用于获取图像数据,将图像数据和方向数据发送给图像编码模块。
4.一种实现自动调整照片方向的方法,其特征在于,该方法包括 方向感知装置向照相机模块发送移动终端的倾斜角度数据;照相机模块根据所述倾斜角度数据获得移动终端的方向数据,并获取图像数据之后将 图像数据和方向数据发送给图像编码模块;图像编码模块根据方向数据对图像数据进行处理,并将处理后的图像数据保存到存储器。
5.根据权利要求4所述的方法,其特征在于,所述方向感知装置向照相机模块发送移 动终端的倾斜角度数据具体为移动终端中的方向感知装置的驱动层实时获取当前移动终端的重力加速度的三轴数 据;方向感知装置的HAL调用驱动程序,根据所述三轴数据,利用反三角函数公式,计算得 到移动终端的倾斜角度数据,将倾斜角度数据通过方向感知装置的调用接口发送给照相机 模块的应用程序模块。
6.根据权利要求4所述的方法,其特征在于,所述照相机模块模根据所述倾斜角度数 据获得移动终端的方向数据具体为在照相机模块的应用程序模块中预先定义四个方向,照相机模块的应用程序模块接收 倾斜角度数据,确定所述倾斜角度数据所在的方向,将所述方向的方向数据通过照相机模 块的服务层发送给照相机模块的HAL。
7.根据权利要求6所述的方法,其特征在于,所述四个方向分别为O度方向、90度方 向、180度方向、270度方向,其中0度、90度、180度和270度是X轴与水平面且沿顺时针方向的夹角,每个角度方向代表其数值正负45度范围内的角度的方向。
8.根据权利要求4至7任一项所述的方法,其特征在于,所述图像编码模块根据方向数 据对图像数据进行处理,并将处理后的图像数据保存到存储器具体为在图像编码模块中预先定义编码原则,图像编码模块根据照相机模块的HAL发送的方 向数据利用所述编码原则确定图像数据的最小编码单元(MCU)的编码次序,对图像数据进 行编码和压缩处理,将图像数据直接保存到存储器。
9.根据权利要求8所述的方法,其特征在于,所述图像编码模块根据照相机模块的HAL 发送的方向数据利用所述编码原则确定图像数据的MCU的编码次序具体为如果是O度方向,图像数据的宽和高不需要互换,从图像数据的左上角的MCU开始编 码;如果是90度方向,将图像数据的宽和高互换,以O度时图像数据为基准的右上角的MCU 开始编码;如果是180度方向,图像数据的宽和高不互换,以0度时图像数据为基准的右下 角的MCU开始编码;如果是270度方向,将图像数据的宽和高互换,以0度时图像数据为基 准的左下角MCU开始编码。
全文摘要
本发明公开一种实现自动调整照片方向的方法及移动终端。本发明的方案中方向感知装置向照相机模块发送移动终端的倾斜角度数据;照相机模块根据所述倾斜角度数据,获得移动终端的方向数据;并获取图像数据之后将图像数据和方向数据发送给图像编码模块;图像编码模块根据方向数据对图像数据进行处理,并将处理后的图像数据保存到存储器。根据本发明的技术方案,针对不同角度下拍摄的照片在移动终端或者计算机再次显示时,无需用户再一一进行手动调整照片方向。
文档编号H04N1/387GK101841603SQ20101017262
公开日2010年9月22日 申请日期2010年5月12日 优先权日2010年5月12日
发明者冯宇傲, 张圣杰, 贾嘉 申请人:中兴通讯股份有限公司