CN110177218B - 一种安卓设备的拍照图像处理方法 - Google Patents
一种安卓设备的拍照图像处理方法 Download PDFInfo
- Publication number
- CN110177218B CN110177218B CN201910580514.1A CN201910580514A CN110177218B CN 110177218 B CN110177218 B CN 110177218B CN 201910580514 A CN201910580514 A CN 201910580514A CN 110177218 B CN110177218 B CN 110177218B
- Authority
- CN
- China
- Prior art keywords
- layer
- instruction
- frame
- photo
- camera
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
Abstract
本发明属于图像处理领域,其公开了一种安卓设备的拍照图像处理方法,当安卓设备的摄像头拍摄后,系统的HAL层获取摄像头拍摄的视频帧或照片帧,并调用GPU对视频帧或照片帧按照预设的指令进行处理得到已处理的视频帧或照片帧并输出。该方法使拍照APP在调用摄像头进行拍摄后,在HAL层对摄像头拍摄的数据调用GPU处理,无需在JAVA层调用CPU进行处理,处理后数据再传给拍照APP,相比于传统的拍照APP的图片处理过程,优势是硬件OPENGL直接对图像整体处理,中间节省的就是JAVA语言通过算法逐点像素处理的时间;其可以提高图像的处理速度和处理效果,降低CPU负荷。
Description
技术领域
本发明涉及图像处理领域,具体为一种安卓设备的拍照图像处理方法。
背景技术
GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”;
众所周知的,在PC上,由于游戏、大型软件的发展用户日益认识到显卡的重要性,毕竟这些图形处理工作还是GPU处理得更高效,显卡的售价甚至超过此前的重要核心元件CPU,在PC市场上最知名的显卡无疑就是NVIDIA,而GPU的名字也是由NVIDIA提出的。
随着手机芯片的日益成熟,在智能手机上GPU开始凸显出重要性,当下全球流行的GPU分别有Imagination的powerVR、高通的Adreno、ARM的Mali。
ARM作为移动市场的领导者,其当然也认识到了GPU的重要性,特别是GPU对自动驾驶、人工智能、AR/VR等新兴行业等尤为重要,ARM开始在GPU市场发力,2016年推出的G71性能较之前版本的图形性能增长50%,因此广受各移动芯片企业的欢迎,逐渐在移动GPU市场形成三足鼎立的地位。
对于游戏、视频的图像数据处理的需求和计算量逐渐增大,GPU的重要性日益显现。
目前安卓版本,默认拍照应用不支持镜像和翻转功能。许多拍照的App增加镜像和翻转,但使用的是软件层JAVA的代码进行图像处理,JAVA对像素点进行遍历,处理时间较长且耗费CPU资源。在日益增长的摄像头分辨率发展下,从300百万像素逐渐过渡到1000~2000万像素,如果单只使用软件进行图像镜像、翻转,则给CPU带来更大的负担。
所以,本申请所要解决的技术问题是:如何使移动终端的拍照APP在进行拍摄、预览、拍照时,能够降低CPU负荷,提高图像显示速度和效果。
发明内容
本发明的目的在于提供一种安卓设备的拍照图像处理方法,该方法使拍照APP在调用摄像头进行拍摄后,在HAL层对摄像头拍摄的数据调用GPU处理,无需在JAVA层调用CPU进行处理,处理后数据再传给拍照APP,相比于传统的拍照APP的图片处理过程,优势是硬件OPENGL直接对图像整体处理,中间节省的就是JAVA语言通过算法逐点像素处理的时间;其可以提高图像的处理速度和处理效果,降低CPU负荷。
为实现上述目的,本发明提供如下技术方案:一种安卓设备的拍照图像处理方法,当安卓设备的摄像头拍摄后,系统的HAL层获取摄像头拍摄的视频帧或照片帧,并调用GPU对视频帧或照片帧按照预设的指令进行处理得到已处理的视频帧或照片帧并输出。
在上述的安卓设备的拍照图像处理方法中,所述预设的指令包括对视频帧或照片帧进行翻转、镜像、变形、裁剪或缩放处理。
在上述的安卓设备的拍照图像处理方法中,所述方法包括如下步骤:
步骤1:JAVA层的拍照APP根据用户操作生成指令发送给JNI层;
步骤2:JNI层将指令进行处理并发送给HAL层;
步骤3:HAL层根据指令调用GPU对摄像头拍摄的视频帧或照片帧进行处理,得到已处理的视频帧或照片帧;
步骤4:HAL层将已处理的视频帧或照片帧发送给JAVA层的拍照APP进行显示。
在上述的安卓设备的拍照图像处理方法中,所述步骤3中,GPU对频帧或照片帧进行处理的方法具体为:GPU通过调用OPENGL的函数对频帧或照片帧按照指令进行处理。
与现有技术相比,本发明的有益效果是:
本方法使拍照APP在调用摄像头进行拍摄后,在HAL层对摄像头拍摄的数据调用GPU处理,无需在JAVA层调用CPU进行处理,可以提高图像的处理速度和处理效果,降低CPU负荷。
附图说明
图1为本发明的实施例1的流程方框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
请参阅图1,一种安卓设备的拍照图像处理方法,包括如下步骤:
步骤1:JAVA层的拍照APP根据用户操作生成指令发送给JNI(Java NativeInterface,JAVA本地接口)层;
在拍照APP中有多种拍摄模式,如拍照、录像、预览模式,并且在APP中具有各种图像处理的参数设置栏,参数设置栏中可以设置对所拍摄的图像或视频进行镜像处理、翻转处理、变形处理、裁剪处理或缩放处理。
现以镜像处理为例:
在JAVA层,安卓系统自带camera服务代码,frameworks/ex/camera2/portability/src/com/android/ex/camera2/portability/CameraAgent.java;新增一个setDisaplyMirror函数,提供给拍照APP调用;
拍照APP通过调用该setDisaplyMirror函数可以设定是否对图像进行镜像处理,如:
App打开摄像头后,设置镜像模式:
mCameraDevice.setDisplayMirror(1);
关闭镜像模式:
mCameraDevice.setDisplayMirror(0);
JNI层会收到上述的setDisaplyMirror函数;
步骤2:JNI层将指令进行处理并发送给HAL层;
在本步骤中,JNI层主要用于实现JAVA层的代码与HAL层(硬件抽象层)的代码之间的交互。
JNI层的工作,只是把JAVA层的函数,送到C代码编写的HAL层。具体来说,对于图像的镜像操作的实例中:在frameworks/base/core/jni/android_hardware_Camera.cpp文件中,通过camera->sendCommand(CAMERA_CMD_SET_DISPLAY_MIRROR,1),把mirror镜像的开关参数,传给HAL层的camera对象。
步骤3:HAL层根据指令调用GPU对摄像头拍摄的视频帧或照片帧进行处理,得到已处理的视频帧或照片帧;
安卓HAL层,实现的是对硬件对象的封装。当JNI层对特定的caemra设备,传入了mirror参数后,HAL层会进一步处理。
具体来说,hardware/设备厂/camera/CameraHal/CameraHal.cpp中,收到了JNI的传入参数后,调用GPU的加速功能,对摄像头物理设备送上来的原始数据即的视频帧或照片帧进行处理,翻转或镜像。
GPU通过OPENGL的函数进行图像处理,如旋转图片:glRotatef(angle,0.0f,0.0f,1.0f);
镜像图片:glScalef(-1.0f,0.0f,0.0f);
步骤4:HAL层将已处理的视频帧或照片帧发送给JAVA层的拍照APP进行显示。
当然,如果拍照APP不需要对照片进行上述的图像处理,其可以按照传统的拍照方式进行,无需进行上述的步骤,也无需调用OPENGL的函数。
本发明的优点在于:通过setDisplayMirror函数或setDisplayRotate函数或其他类似函数先在HAL层设置好标记,在摄像头的原始数据送到后,通过OPENGL的加速功能,进行图像处理。处理后数据再传给拍照APP,相比于传统的拍照APP的图片处理过程,中间节省的就是硬件OPENGL对图像处理的时间。
所以,本发明可以提高图像的处理速度和处理效果,降低CPU负荷。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
Claims (3)
1.一种安卓设备的拍照图像处理方法,其特征在于:当安卓设备的摄像头拍摄后,系统的HAL层获取摄像头拍摄的视频帧或照片帧,并调用GPU对视频帧或照片帧按照预设的指令进行处理得到已处理的视频帧或照片帧并输出;
所述方法包括如下步骤:
步骤1:JAVA层的拍照APP根据用户操作生成指令发送给JNI层;
步骤2:JNI层将指令进行处理并发送给HAL层;
步骤3:HAL层根据指令调用GPU对摄像头物理设备送上来的原始数据即视频帧或照片帧进行处理进行处理,得到已处理的视频帧或照片帧;
步骤4:HAL层将已处理的视频帧或照片帧发送给JAVA层的拍照APP进行显示。
2.根据权利要求1所述的安卓设备的拍照图像处理方法,其特征在于:所述预设的指令包括对视频帧或照片帧进行翻转、镜像、变形、裁剪或缩放处理。
3.根据权利要求1所述的安卓设备的拍照图像处理方法,其特征在于:所述步骤3中,GPU对频帧或照片帧进行处理的方法具体为:GPU通过调用OPENGL的函数对频帧或照片帧按照指令进行处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580514.1A CN110177218B (zh) | 2019-06-28 | 2019-06-28 | 一种安卓设备的拍照图像处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910580514.1A CN110177218B (zh) | 2019-06-28 | 2019-06-28 | 一种安卓设备的拍照图像处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110177218A CN110177218A (zh) | 2019-08-27 |
CN110177218B true CN110177218B (zh) | 2021-06-04 |
Family
ID=67699488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910580514.1A Active CN110177218B (zh) | 2019-06-28 | 2019-06-28 | 一种安卓设备的拍照图像处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110177218B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110705497A (zh) * | 2019-10-11 | 2020-01-17 | Oppo广东移动通信有限公司 | 图像帧处理方法、装置、终端设备及计算机可读存储介质 |
CN110942065B (zh) * | 2019-11-26 | 2023-12-12 | Oppo广东移动通信有限公司 | 文本框选方法、装置、终端设备及计算机可读存储介质 |
CN111061524A (zh) * | 2019-12-09 | 2020-04-24 | Oppo广东移动通信有限公司 | 一种应用数据处理方法及相关装置 |
CN110933313B (zh) * | 2019-12-09 | 2021-07-16 | Oppo广东移动通信有限公司 | 暗光拍照方法及相关设备 |
CN110958399B (zh) * | 2019-12-09 | 2021-06-29 | Oppo广东移动通信有限公司 | 高动态范围图像hdr实现方法及相关产品 |
CN110942047B (zh) * | 2019-12-09 | 2023-07-07 | Oppo广东移动通信有限公司 | 应用优化方法及相关产品 |
CN110933275B (zh) * | 2019-12-09 | 2021-07-23 | Oppo广东移动通信有限公司 | 拍照方法及相关设备 |
CN111062025B (zh) * | 2019-12-09 | 2022-03-01 | Oppo广东移动通信有限公司 | 应用数据处理方法及相关装置 |
CN110971830B (zh) * | 2019-12-09 | 2021-11-02 | Oppo广东移动通信有限公司 | 视频拍摄的防抖方法及相关装置 |
CN110958390B (zh) * | 2019-12-09 | 2021-07-20 | Oppo广东移动通信有限公司 | 图像处理方法及相关装置 |
CN110991369A (zh) * | 2019-12-09 | 2020-04-10 | Oppo广东移动通信有限公司 | 图像数据处理方法及相关装置 |
CN114827514B (zh) * | 2021-01-29 | 2023-11-17 | 华为技术有限公司 | 电子设备及其与其他电子设备的数据传输方法和介质 |
CN113727035B (zh) * | 2021-10-15 | 2023-05-12 | Oppo广东移动通信有限公司 | 图像处理方法、系统、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833803A (zh) * | 2018-09-20 | 2018-11-16 | Oppo广东移动通信有限公司 | 成像方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2933998A4 (en) * | 2012-12-28 | 2016-08-24 | Nubia Technology Co Ltd | RECORDING DEVICE AND RECORDING METHOD |
-
2019
- 2019-06-28 CN CN201910580514.1A patent/CN110177218B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833803A (zh) * | 2018-09-20 | 2018-11-16 | Oppo广东移动通信有限公司 | 成像方法、装置和电子设备 |
Non-Patent Citations (1)
Title |
---|
《基于安卓平台的具有实时滤镜功能的camera开发》;杨开广;《中国优秀硕士学位论文全文数据库》;20190515;1138-879 * |
Also Published As
Publication number | Publication date |
---|---|
CN110177218A (zh) | 2019-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110177218B (zh) | 一种安卓设备的拍照图像处理方法 | |
CN111225150B (zh) | 插帧处理方法及相关产品 | |
CN109670427B (zh) | 一种图像信息的处理方法、装置及存储介质 | |
CN111147749A (zh) | 拍摄方法、拍摄装置、终端及存储介质 | |
WO2019237982A1 (zh) | 贴纸设置方法及装置 | |
CN108510557B (zh) | 图像色调映射方法及装置 | |
CN110968962B (zh) | 基于云渲染在移动端或大屏三维展示方法及系统 | |
CN110598139A (zh) | 基于5G云计算的Web浏览器增强现实实时定位的方法 | |
CN108364324B (zh) | 图像数据处理方法、装置及电子终端 | |
CN108289185B (zh) | 一种视频通信方法、装置及终端设备 | |
CN112839223A (zh) | 图像压缩方法、装置、存储介质及电子设备 | |
CN112351093A (zh) | 截屏图像共享方法、装置、设备及计算机可读存储介质 | |
CN107424206B (zh) | 一种利用现实环境影响虚拟场景光影表现的互动方法 | |
CN111866372A (zh) | 自拍方法、装置、存储介质以及终端 | |
CN113469883B (zh) | 动态分辨率的渲染方法、装置、电子设备及可读存储介质 | |
CN113411660B (zh) | 视频数据的处理方法、装置和电子设备 | |
US20240013432A1 (en) | Image processing method and related device | |
CN108898650B (zh) | 人形素材创建方法及相关装置 | |
CN116341586B (zh) | 扫码方法、电子设备及存储介质 | |
CN111784811A (zh) | 一种图像处理方法、装置,电子设备及存储介质 | |
CN113535293B (zh) | 一种安卓设备截屏的方法、系统及介质 | |
CN112118414B (zh) | 视频会话方法、电子设备以及计算机存储介质 | |
CN114089896A (zh) | 一种渲染图像截取方法及装置 | |
CN114222185A (zh) | 视频播放方法、终端设备及存储介质 | |
WO2019238001A1 (zh) | 拍照控制方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 511356 Room 501, building 2, No. 63, Yong'an Avenue, Huangpu District, Guangzhou, Guangdong Patentee after: Guangzhou lubangtong Internet of things Technology Co.,Ltd. Address before: 510653 3rd floor, building F, kehuiyuan, 95 Daguan Road, Tianhe District, Guangzhou City, Guangdong Province Patentee before: GUANGZHOU ROBUSTEL TECHNOLOGIES Co.,Ltd. |
|
CP03 | Change of name, title or address |