Camera知识架构
2023-02-21 11:13:27 0 举报
AI智能生成
android camera相关的一些知识点
作者其他创作
大纲/内容
硬件
模组Camera Compact Module
结构
镜头
种类
微距镜头
变焦镜头
定焦镜头
鱼眼镜头
超广角镜头
广角镜头
标准镜头
远摄镜头
反射镜头
移轴镜头
增距镜
饼干镜头
潜望式镜头
控制
光圈
作用
控制通光量
控制景深
光圈越大,景深越小
F/1.4
焦距
1p2g
p:塑料 g:玻璃
Sensor
CCD
CIS(CMOS Image Sensor)
微透镜
滤光片
GR
BG
BG
感光片
音圈马达VCM(Voice Coil Motor)
作用
对焦
相位对焦
反差对焦
激光对焦
DSP
ISP
JPEG encoder
USB device controller
软板FPC
封装工艺
CSP低端
COB中端
FC高端
golden模组
种类
SOC Sensor
YUV
2个字节保存一个像素
RAW Sensor
RAW10
10位保存一个像素
接口
并行
Parallel接口
串行
mipi接口
原理图
供电部分
模拟电压(VCAMA)
数字电压(VCAMD)
IO口电压(VCAMIO)
Sensor Input部分
Rest脚
用于复位和初始化
PDN脚
Camera工作状态控制:1.normol work(工作) 2.standby(待机)
Mclk脚
即MasterClock脚,由BB提供给Sensor的外部clock
I2C部分
SCL(I2C Clock)
SDA(I2C Data)
MIPI部分
mipi clock
mipi data
MIPI_RDN
MIPI_RDP
Flash
直接半截PMIC供电
有独立的控制芯片
成像原理
相机种类
单反
双反
微单
针孔
拍立得
3D摄像头
旁轴相机
驱动
V4L2
Video for linux2
1.打开 Camera Power LDO,让 Camera 有能量保证。
2.打开 IIC,设置 PDN 引脚,使 Camera 退出 Standby 模式,按照要求让 Reset 脚做一个复位动作。
3.读一下 sensor 的版本 ID,这样可以让你确认是否连接上你想要的 sensor。
4.对 Sensor 进行初始化下载最基本的参数让 Sensor 工作起来,可能包括软复位。
5.下载 preview 的参数,为预览动作准备。
6.下载 Capture 的参数,为拍照动作准备。
7.设置 PDN 引脚,使 Sensor 进入 Standby 模式, 或者关掉 LDO 等动作,退出 Camera。
Tuning
ISP
3A
AF
AF ROI
AE
AE Table
AWB
refine?
软件
APP
Photo
预览
流程
算法
自动场景检测ASD
人脸检测
实时美颜
原理
人脸检测
人脸模型
美颜参数
磨皮
廋脸
大眼
分段美颜
算法供应商
宏软
奇酷360
Licence
实时美体
虚化
贴图
二维码扫描
zxing
OCR
HDR检测
滤镜
GPUImage
GPUImageFastBlurFilter
GPUImageGaussianBlurFilter
高斯模糊
RenderScript
fastBlur
...
控件
SurfaceView
GLSurfaceView
OpenGLES
2.0
3.0
GLES31
GLES32
OES
GL_TEXTURE_EXTERNAL_OES
Render
Shader
顶点着色器
片段着色器
顶点和纹理坐标
渲染方式
On-Screen Rendering
意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。(例如我们显示/录制的Surface)
Off-Screen Rendering
意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。(区别于Surface的另外一种渲染区)
FBO(Frame Buffer Object)
帧缓冲对象
GLThread
线程同步
Buffer
ByteBuffer
FloatBuffer
IntBuffer
SurfaceHolder
TextureView
必须在硬件加速开启的窗口中
GPU
GPU分析利器(GAPID)
Vulkan
硬件加速
LAYER_TYPE_SOFTWARE
使用软件来绘制 View Layer,绘制到一个 Bitmap,并顺便关闭硬件加速
LAYER_TYPE_HARDWARE
使用 GPU 来绘制 View Layer,绘制到一个 OpenGL texture(如果硬件加速关闭,那么行为和 VIEW_TYPE_SOFTWARE 一致);
LAYER_TYPE_NONE
关闭 View Layer。
SurfaceTexture
Surface
Texture
拍照
流程
算法
单帧
美颜
人像
单摄
双摄
标定(校准)
灯箱
棋盘格
内参/外参
售后标定Golden.bin
SPRD
方案A
方案B(旧)
方案B(新)
方案C
SN id
双摄标定APK CameraCalibration
OTP/EEPROM
AE同步
帧同步
Stereo
Logical ID
metadata的配置
摄像头组合
RGB + RGB
主要用于计算景深,实现背景虚化和重对焦
RGB + Mono
主要提升暗光/夜景影像拍摄质量
Wide + Tele
主要用于光学变焦
RGB + Depth
主要用于三维重建
Dof景深
VSDoF
preview
capture
Portrait Editor
多帧
HDR
欠曝
正常曝光
过曝
夜景
MFNR
SFNR
MFSR
3DNR
照片
压缩编码
有损
JPEG
huffman
BMP
无损
PNG
webp
HEIF(High Efficiency Image File Format)是高效率图像文件格式
TIFF
EXIF
工具
IMP
exiftool
字段
maker
model
orientation
location
resolution
水印
HAL层
展锐方式
拿到YUV数据
子主题
MTK方式
APP层
色彩空间
RGB
Y
U
V
U
V
YUV422
YUV422P
YUV420
YUV420P
YU12
先 Y 再 U 后 V
YV12
先 Y 再 V 后 U
YUV420SP
NV21(Android)
先存 Y 分量,在 VU 交替存储
NV12(IOS)
先存 Y 分量,再 UV 进行交替存储
YUV444
RAW
DNG(Digital Negative)
H
S
V
S
V
色调
饱和度
亮度
dump
图像质量
亮度,动态范围
镜头
传感器
HDR算法
ISP
清晰度
对焦马达
镜头
传感器
ISP
抖动
噪声
镜头
传感器
ISP
对焦马达
色彩还原度
ISP
缩略图
缩略图快显
PostView
设置
SelfTimer
Off
3s
5s
10s
Flash
off
auto
如何检测?
on
torch
前摄屏幕补光
分辨率
ratio
4:3
16:9
1:1
Fullscreen
插值
最临近像素插值
线性插值
立方插值
样条插值
S-SPline
Turbo Photo
16位对齐
前拍镜像
水印
Logo水印
时间水印
Capture Sound
模式
Auto
人像
微距
大光圈
美颜
全景/广角自拍
融合
夜景/超级夜景
专业
HDR
50M/超分辨率
图像超分
流光快门/长曝光
前后双景
魔法分身
留声相机/有声照片
相关App
SprdPhotosProvider.apk
oem_trusted_authority
com.sprd.android.providers.SpecialTypesProvider
oem_trusted_certificate
应用签名:B79DF4A82E90B57EA76525AB7037AB238A42F5D3
SprdPhotoEdit.apk
PhotoVoiceRecorder.java
MediaRecorder
格式
采样率
Burst连拍模式
CShot
间隔拍照
Google Lens
go版本不支持
Video
预览
流程
对焦
FOCUS_MODE_AUTO
自动对焦模式,应用需要调用autoFocus(AutoFocusCallback)开始对焦,只会对焦一次,对焦成功会有回调。
FOCUS_MODE_INFINITY
无穷对焦模式,应用很少,不能调用autoFocus(AutoFocusCallback)方法。
FOCUS_MODE_MACRO
特写镜头对焦模式,应用需要调用autoFocus(AutoFocusCallback)开始对焦
FOCUS_MODE_FIXED
固定焦点模式,焦点不可调用时都是在这种模式,如果Camera能够自动对焦,这种模式会固定焦点,通常应用于超焦距对焦
FOCUS_MODE_EDOF
扩展景深模式,暂时不知道用法。
FOCUS_MODE_CONTINUOUS_VIDEO
连续自动对焦模式,主要用于录制视频过程中,Camera会不断地尝试聚焦,这是录制视频时对焦模式的最好选择,在设置了Camera的参数后就开始自动对焦,但是调用takePicture时不一定已经对焦完成。
zoom
数码变焦Digital Zoom
光学变焦Optical Zoom
希区柯克变焦
AE
录像
流程
开始
暂停
VSS(Video Snap Shot)
停止
编解码
编码
视频编码
原理
消除冗余
时间冗余
空间冗余
子主题
I帧
帧内编码
B帧
P帧
帧间编码
参数
帧率
分辨率
1080P
720P
码率
标准
ITU
ITU-R无线电通信
ITU-T电信标准化
H.26X系列
H.264
AVC
SVC
MVC
H.265/HEVC
ITU-D电信发展部门
ISO/IEC
MPEG系列
MediaCodec
media_profile
media_codec
音频编码
解码
播放器
ExoPlayer
Votamin
方式
硬解
GPU
软解
CPU
封装格式
MPG
VOB
MP4
3GP
ASF
RMVB
WMV
MOV
Divx
MKV
FLV
TS/PS
FFMPEG
ijkplayer
设置
Video resolution
Flash
Scene mode
Microphone
防抖
光学防抖OIS
电子防抖EIS
模式
普通
TimeLapse
SlowMotion
短视频
电影镜头
PIP双景录像
preview/record 画面呈现两颗 camera 影像的一个 feature
Settings
Data storage
Location tag
White balance
Anti flicker
50hz
60hz
auto
Reset settings
第三方Camera
QuickCamera
IntentCamera
IntentVideo
IntentCapture
VoiceCamera
Google Assistant
Go版本不支持语音交互
WhatsApp/Instagram/GoogleDialer
分辨率显示问题
XTS
CTS
GTS
ITS
API
API1
API2
MTK
common
一些公共的库内容的调用
feature
客制化的内容
host
主目录,activity,已经UI部分的处理
SPRD
Framework
cameraserver
metadata
Android TAGs
Vendor TAGs
Custom TAGs
HAL
SPRD
MTK
camerahalserver
LAZY HAL
其他
性能优化
工具
profiler
systrace
simpleperf
perfetto
自定义log
Cpu dump工具
CpuFloat & PerfMon+ Apk
查看视频文件丢帧情况工具
perflock 及 thermal Debug
相关测试项
启动类
冷启动
提高cpu频率
强制开启多核
多线程同步加载
热启动
切换类
模式切换
都用SurfaceView做预览
前后置切换
预览类
Photo
Video
拍照类
普通拍照
算法上移处理
采用ZSL HAL
AppZSL
高像素拍照
bypass检查
曝光时间是否合理
多帧处理的话帧数是否合理
算法拍照
1.算法上移处理
2.bypass
3.Cpu Boost,算法处理的时候可以将CPU调度调优,以加速处理
跳帧
多线程+线程池
缩略图显示速度
用预览做缩略图
视频类
高帧率录制
高帧率
>60fps插帧
防抖录制
设置合理的防抖缓存buffer数量
CPU perflock可以调优
尽量大小核分布均匀严密
高像素防抖录制
内存优化
内存泄漏
OOM
内存抖动
工具
procrank
ion
/sys/kernel/debug/ion/heaps/system
/sys/kernel/debug/dma_buf/ [ bufinfo | dmaprocs ]
Gpu内存信息
dumpsys meminfo
profiler
功耗
bugreport
稳定性
Monkey
MTBF
自定义脚本
相关命令
编译
log
dump
debug
adb shell dumpsys media.camera
常见名词缩写
收藏
0 条评论
下一页