没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
Camera 框架分析
Camera 子系统是 Android 系统中比较复杂的子系统之一。在
系统集成方面,Camera 子系统除了实现 camera 功能外其作为多
媒体实现的基础模块,与声音控制系统(Audio),视频编解码系
统(Video Codec),显示系统(Display),存储系统(Storage)
以及输入输出系统(I/O)都有密切的联系。在 Camera 模块内部,
Camera 系统也不仅仅是实现视频数据获取及存储。为了达到良好
的视频(照片)质量。Camera 系统中往往包含大量的图像处理算
法程序库,根据不同的需要这些算法库可以放在不同的处理层。
一、Camera 子系统层次结构
Camera 作为一个子系统,提供了取景器、视频录制和拍摄照
片等功能,并且提供各种控制类借口,如 Java 层的接口和本地接口。
其中 Java 框架中的 camera 类实行了 Java 层相机接口,为拍照和
扫描等功能业务使用。本地接口可以给本地程序调用,如存储、编
解码、视频通话、显示等。基本层次结构如下图:
二、Camera 子系统系统结构
Camera 子系统从下往上包括了驱动层、框架层和 APP 层。系
统结构如图所示:
(1)应用层:LenovoCamera、其他美颜相机等,对相机做
一些基本初始化,之后调用 setPreviewwindow,然后调用到
framework 层的方法。对应文件位置:
(2)框架层:由 camera Java 层接口、Java 本地调用接口
(JNI)、camera 本地框架(client 端)、camera 本地服务及
camera HAL 组成。
1.Camera Java 层向应用层接口提供的类为
android.hardware.Camera,对应的源代码文件为:camera.java,
此类有些方法通过 JNI 调用本地框架中的代码实现。
2.Java 本地调用接口(JNI),代码路径:frameworks/base/
core/jni/android_hardware_Camera.cpp,这一部分被编译成为
libandroid_runtime.so,它不做任何处理相当于一个中间站,转去
到下一层 camera 本地框架(client 端)中实现
3.camera 本地框架(client 端),代码路径:frameworks/av/
camera/Camera.cpp,这一部分内容被编译成库 libcamera_client.so,
同样这一部分可以理解为一个中转站,通过 binder 机制调用与
camera 本地服务进行通讯。
4.camera 本地服务,代码路径:frameworks/av/services/
camera/libcamearservice/CameraService.cpp,这一部分被编译成
libcameraservice.so, 本部分配合底层相关的硬件驱动框架和编解
码库实现一个具体的 camera。
5.camera HAL,硬件抽象层,代码路径:
frameworks/av/services/camera/libcamearservice/device1/
CameraHardwareInterface.h,基于此接口完成的 HAL 来实现 camera 数
据传输及功能控制。
(3)驱动层,基于 Linux 的 video for Linux 视频驱动框架即
(V4L2),通过 V4L2 接口实现数据采集、格式转换、大小缩放、
数据传输的功能。
三、camera HAL 从 1.0 到 3.0
Android 从最初的 1.0 到 6.0 大大小小的版本经历了接近 20
个,那么 camera 子系统也进行的很多改动和升级。Camera API
由 1.0 升级到 3.0,camera HAL 由 1.0 升级到 3.0,相对应的在
框架层处理逻辑也发生改变,如下图所示:
剩余23页未读,继续阅读
资源评论
- 滕扬Lance2023-07-26文档内容准确清晰,不仅介绍了框架的基本功能,还深入解析了其在实际应用中的优势和不足。
- Crazyanti2023-07-26这份文件提供了对高通平台camera框架的详尽分析,对于理解该框架的原理和特点非常有帮助。
- KerstinTongxi2023-07-26总体来说,这篇文章对高通平台camera框架进行了全面细致的描述,对于学习该框架以及进行相关开发的人们来说是一份非常有价值的参考资料。
- 以墨健康道2023-07-26作者运用简洁明了的语言,使得即使没有相关背景知识的人也能够轻松理解文章的主旨。
- 坑货两只2023-07-26通过对比传统相机框架,本文对高通平台camera框架的创新之处进行了客观分析,使得读者对其价值有了更清晰的认识。
湖边看驴
- 粉丝: 5
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- push_version
- 软件自制图像批量压缩工具
- 基于深度学习的抗梯度噪声的缺陷检测器python源码+文档说明+模型的预训练
- 基于python+pytorch+mysql实现停车场车牌识别管理系统源码+文档说明
- 基于QT+MySQl+OpenCV车牌识别搭建停车场管理系统C++源码+文档说明+界面展示
- 基于深度学习的停车场收费系统-车牌识别模块python源码+文档说明+博客教学
- 空白.pages
- 基于Java+Springboot+vue的智能停车场管理系统(源代码+数据库+9000字论文) 本项目前后端不分离+部署教程
- 基于SSM写的停车场管理系统,加入了车牌识别和数据分析+源码+文档说明
- stream-response.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功