欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

MTK Camera相关的Makefile Option详解

程序员文章站 2024-02-01 17:43:34
列举了所有Camera相关的MakefileOption,并对其功能含义和OptionValues做了详细的解释。[KEYWORD]Others[SOLUTION]YUVCAM_INTERPOLATION#Description:#决定是否需要插值以及用什么方式进行插值(所谓插值就是拍照的照片比se ......

列举了所有camera相关的makefileoption,并对其功能含义和optionvalues做了详细的解释。
[keyword]
others
[solution]
yuvcam_interpolation
#description:
#决定是否需要插值以及用什么方式进行插值(所谓插值就是拍照的照片比sensor实际的像素还要大,如sensor是2m的,但实际上拍出的照片是3m的)。
#optionvalues:
#sw:软件(即sensor进行crz之后encode成jpeg阶段进行软件向上一级插值)向上插值一级,这个宏打开后,会影响到buffer的分配以及菜单的显示,sw的方式优点是省memory,缺点是速度比hw要慢。
#hw硬件(即使用captureresize的scaleup功能)向上插值一级,该宏打开后,会影响到buffer的分配以及菜单的显示
#none:sensor不进行插值。
注:这个宏打开只能实现向上插值一级,并且某些平台只能软件插值,这个宏不打开,手动进行插值也可以,当需要向上插值多级时,需要改变某些宏的定义并添加菜单。
contour_improvement_support
#description:
#决定是否打开dithering的功能,为了解决由于rgb888或yuv422转换为rgb565造成的colorlost导致图像一圈一圈的现象(也叫colorbanding或牛顿环),主要是improve相机预览时的效果。
#optionvalues:
#true:往画面中随机插入一些噪点,会降低一点清晰度,但是能有效改善colorbanding现象,lcm的gamma推荐使用gamma2.2.
#false如果光晕现象不明显,可以选择关闭此宏
注:在某些平台上不能将此宏和facedetect同时打开,是因为cpu的限制,都打开会影响performance,目前只有mt6235&mt6253才需要打开这个宏,其它平台camerapreview使用yuv422的格式,不会有contour的现象。
sensor_rotate
#description:
#该宏决定preview的时候按照sensor的模组输出还是需要进行旋转。
rotate:preview的layer作rotate,在11a、11b前只有0度和90度生效。在11a、11b后与horizontal_camera配合使用
度数为顺时针的度数
#optionvalues:
#sensor_rotate_0不做旋转
#sensor_rotate_90顺时针旋转90度
#sensor_rotate_180顺时针旋转180度
#sensor_rotate_270顺时针旋转270度
注:11a之前的版本只有0度和90度的才有效,其他方向的无效。11a,11b之后的版本横装的sensor打开横拍模式的宏时同时要打开rotate90度
jpeg_sensor_support
#description:
#该宏决定是否支持jpegsensor
jpegsensor:拍照时sensor吐出的数据是jpeg格式的,但preview的不是jpeg数据,一般是yuv的。
jpegsenor拍照时的数据量很小(省memory),帧率可以比较大,但前提是该sensor有jpegencode这
个模块,像mt6255平台最大可以支持3m的yuvsensor,若要支持5m的sensor,则需要使用
jpegsensor。
#optionvalues:
#true:当前选择的是jpegsensor
#false:当前选择的不是jpegsensor
注:目前有mt6276&mt6255可以支持jpegsensor。
flashlight_module
#description:
#闪光灯模组和sensor模组类似,这个宏包了闪光灯模组的代码,不同的闪光灯模组需要不同的
driver驱动,需要定义宏变量来控制,这个option只有使用xenonflash(氙气闪光灯的时候才需要
,一般的led闪光灯该option设置为none)
#optionvalues:
#imcr3603_s010a0:跑该模组的driver
#none:没有flashlight模块
注:
iso_priority_mode_support
#description:
#这个宏只有在camera/video分开的版本里有作用,在camcorder的版本里不使用这个宏了,如果设
置这个option为true,那么在optionmenu中将会出现isoauto,iso100,iso200,iso400等这样些菜单
。而在camcorder的代码中已经改成从sensordriver去query当前sensor支持的iso能力。
#optionvalues:
#true:
#false:
isp_support
#description:
#isp(imagesignalprocessing)图像信号处理。主要用来对前端图像传感器输出信号处理的单元,以
匹配不同厂商的图象传感器。
#optionvalues:
#true:表示bb有isp模块处理数据
#false:bb没有isp模块,不支持图像信号处理
注:当需要camera功能的时候,这个宏都是设为true
mshutter_support
#description:
#快门英文名称为shutter,快门是相机上控制感光片有效曝光时间的一种装置。mshutter是机械快

#optionvalues:
#true:使用的是mshutter
#false:使用的是电子shutter
注:因为我们使用的都是cmossensor,所以这个宏都是false
sensor_location
#description:
#sensor一般可以装在后盖上,也可以装在前盖上,或者翻盖手机的里面,设置这个宏会影响前面的
sensor_rotate最终生效的值。(会对应的做mirror或flip)
#optionvalues:
#sensor_on_:
#sensor_on_clam:
#sensor_inside_clam
exif_support
#description:
#用来打开和关闭exif功能,exif是exchangeableimagefileformat的缩写,是数码相机的一种特殊
文件格式。拍照完成后可以将快门速度,曝光时间等信息集成到图像文件中,目前支持的版本是
exifversion2.2.
#optionvalues:
#true:打开
#false:关闭
camcorder_support
#description:
#该宏用来控制打开摄录像机应用,如果打开则关闭camera和videorecorder,其值有4种:full、
standand、slim、custom、none,不同的值表示camcorder所支持的拍照模式不一样。
#optionvalues:
#full:说明camcorder支持的功能比较全,包括addframe、bss、burstshot、ebs、panaroma,hdr等
所有的拍照模式都支持。
#standard:支持addframe,bss。
#slim:只支持normal和contshot。
#custom:默认支持addframe,burstshot,ebs,hdr;如果您想自己选择实现哪几个功能,可以把值赋
为custom,它所支持的功能是可以去客制化的。
#none:关闭camcorder应用。
camcorder_face_detection_mode_support
#description:
#用来打开或关闭camcorder应用中的人脸检测功能。
#optionvalues:
#true:打开
#false:关闭
camcorder_smile_shutter_mode_support
#description:
#用来打开或关闭camcorder应用中的笑脸拍摄功能。
#optionvalues:
#true:打开
#false:关闭
panorama_view_support
#description:
#用来打开或关闭camcorder应用中的全景拍照功能,全景拍即拍三张照片再合成一张宽画幅的照片

#optionvalues:
#true:打开
#false:关闭
jpg_decode
#description:
#用来打开或关闭jpegdecorder,会在option.mak里根据platformhw的capability来决定是使用hw还
是sw的codec。
#optionvalues:
#true:打开
#false:关闭
jpg_encode
#description:
#用来打开或关闭jpegencorder,会在option.mak里根据platformhw的capability来决定是使用hw还
是sw的codec。
#optionvalues:
#true:打开
#false:关闭
cfg_mmi_camera_recorder_one_key_toggle
#description:
#用来打开或关闭camera和recorder间的一键切换功能。
#optionvalues:
#__on__:打开
#__off__:关闭
af_auxi_led_support
#description:这个是af辅助对焦灯的功能(因为环境很暗的时候找不到edge,所以没法实现对焦,需要将物体照亮才行),可以使用led灯来作为af的辅助对焦灯,这个在lowlight的环境会自动打开,亮的环境不会打开。
#optionvalues:
true:支持自动对焦
false:不支持自动对焦
af_support
#description:
#决定是否采用自动对焦功能
true:支持自动对焦
false:不支持自动对焦
backup_sensor_support
#description:
#决定是否支持备用型号sensor,即同一个软件包可以支持不同的sensor,当更换了sensor之后,不
需要重新download,但需要重新formatfat(因为不同sensor需要load不同的parameter)。
目前支持backup一颗sensor。
true:支持
false:不支持
dual_camera_support
#description:
#决定是否支持双camerasensor,一般在3g的版本里面因为会有前置和后置两颗sensor,都会设置为
true。
true:支持
false:不支持
cmos_sensor
#description:
#对应camerasensor的型号,若该sensor型号是以serial结尾,则说明这是一颗serialsensor,会在
option.mak中定义__serial_sensor_support__的宏
cmos_sensor=(sensor型号)
cmos_sensor_bak1
#description:
#主sensor的备用sensor
none:不支持
(other:sensor型号):子sensor的型号
sensor_type
#description:
#支持的主camerasensor的类型
yuv:yuvsensor,除了mt6251之外的所有bb都支持。
对应的sensordriver位于mcu\custom\drv\yuv_sensor\xxx\*.*
raw:rawsensor,目前有mt6236/mt6268平台可以支持
对应的sensordriver位于:mcu\custom\drv\image_sensor\xxx\*.*
direct:用于mtk平台较老的没有isp的basebandmt6223c,其它平台都不支持。
none:不支持camera
cmos_sensor_sub
#description:
#对应子sensor的型号
cmos_sensor_sub=(子sensor型号)
cmos_sensor_sub_bak1
#description:
#子sensor的备用型号
none:不支持
(other:sensor型号):备用子sensor的型号
sensor_sub_rotate
#description:
#子sensor的旋转角度
sensor_rotate_0:子sensor不作旋转
sensor_rotate_180:子sensor对应的画面旋转180度
sensor_type_sub
#子sensor的类型
yuv:子sensor类型为yuvsensor
raw:子sensor类型为rawsensor
none:不支持子camera
capture_scenario
[description]
#决定capture的时候是走onthefly还是offline的方式。
offline概念:即sensor输出的数据会先dump到memory里面再进行处理,以提高拍照帧率。
onthefly概念:sensor输出的数据直接以pipeline的方式给bb进行处理。
[optionvalues]
#offline:因为digitalzoom的时候,resizer需要更多的时间来处理,若以pipeline(onthefly)的
方式,则需要降低sensor输出的帧率,为了提高capture的帧率(可以减小shutterdelay)从而引入
了这种拍照模式。
#standard:没有digitalzoom(即1x)的时候走onthefly的流程(用以提高capture帧率),当
zoom倍数不为0的时候走offline的流程(从而capture不需要降你帧率)。
#on_the_fly:yuvsensor只可以使用onthefly的流程,rawsensor,这种拍照流程都可以设置。
flashlight_type
[description]
#设置flashlight的类型。根据有无flashled以及flashled的操作模式可以分为
led_onoff_support、led_flashlight_support和none三种。
[optionvalues]
#led_onoff_support:如果flashled的操作模式为torchmode,则flashlight_type宏设为
led_onoff_support。在torchmode下,不支持峰值电流或峰值电流的时间较短,补光效果较差,常
应用于手电筒。并且该模式下,用ui上的led菜单来控制led,当设置为on时,led会一直保持开的状
态直至设置为off。
#led_flashlight_support:如果flashled的操作模式为flashmode,则flashlight_type宏设为
led_flashlight_support。在flashmode下,支持峰值电流并且峰值电流的时间较长,补光效果较好
,常应用于闪光灯。并且该模式下,用ui和算法共同控制led的开关,可以实现先预闪再主闪的功能
(类似相机的做法),闪两次。
#none:不支持flashlight。
horizontal_camera
[description]
#决定是否打开horizontalcamera功能,若设置为true,定义它为全局编译宏。
[optionvalues]
#true:camera或者camcorder用水平的ui界面。当设置为true时,
11a(含)之后该宏只控制ui的部分,需要与sensorrotate配合才能将preview画面旋转。
10a(含)之前的版本打开横拍的功能只需要设置该宏为true即可。
#false:camera或者camcorder用竖直的ui界面。
lens_module
[description]
#设定主camera的lensmodule。它的值要么为na,即特定的lensmodule,要么为none。如果它的值从na变为none,则af_support必须设置为false;若它的值从none变为na,则af_support必须设置为true。
[optionvalues]
#na:特定的lensmodule。对于rawsensor,外挂lensmodule,需要正确设置。
#none:不支持lens_module。对于yuvsensor,集成了af功能,不需要lensmodule.
lens_module_bak1
[description]
#设置主备用camera的lensmodule。它的值要么为na,即特定的lensmodule,要么为none。如果它的值从na变为none,则af_support必须设置为false;若它的值从none变为na,则af_support必须设置为true。
[optionvalues]
#na:特定的lensmodule。对于rawsensor,外挂lensmodule,需要正确设置。
#none:不支持lens_module。对于yuvsensor,集成了af功能,不需要lensmodule
webcam_support
[description]
#决定是否打开webcam(网络摄像头)这个功能,会使用motionjpeg的方式,即bb端会将sensor过来的每帧数据都encode成jpeg,再将些jpeg数据透过usbcable传到pc端进行decode,若设置为true,定义它为全局编译宏
[optionvalues]
#true:打开webcam功能。
#false:不打开webcam功能。
yuvcam_encode_direct_write_file
[description]
#决定yuvcam编码时,是边编码边写到文件中,还是编码完成以后再写到文件中去。
[optionvalues]
#true:yuvcam编码时,边编码边写到文件中,可以节省memory,但缺点是速度慢。
#false:yuvcam编码时,编码完成以后再写到文件中。一般都将
yuvcam_encode_direct_write_file设置为false。

来源:http://bbs.16rd.com/thread-470246-1-1.html