MTK Camera相关的Makefile Option详解

时间:2022-02-03 20:16:46

列举了所有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

MTK Camera相关的Makefile Option详解的更多相关文章

  1. 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解

    PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...

  2. 《手把手教你》系列技巧篇(二十九)-java+ selenium自动化测试- Actions的相关操作上篇(详解教程)

    1.简介 有些测试场景或者事件,Selenium根本就没有直接提供方法去操作,而且也不可能把各种测试场景都全面覆盖提供方法去操作.比如:就像鼠标悬停,一般测试场景鼠标悬停分两种常见,一种是鼠标悬停在某 ...

  3. 《手把手教你》系列技巧篇(三十)-java+ selenium自动化测试- Actions的相关操作下篇(详解教程)

    1.简介 本文主要介绍两个在测试过程中可能会用到的功能:Actions类中的拖拽操作和Actions类中的划取字段操作.例如:需要在一堆log字符中随机划取一段文字,然后右键选择摘取功能. 2.拖拽操 ...

  4. Kintinuous 相关论文 Volume Fusion 详解

    近几个月研读了不少RGBD-SLAM的相关论文,Whelan的Volume Fusion系列文章的效果确实不错,而且开源代码Kintinuous结构清晰,易于编译和运行,故把一些学习时自己的理解和经验 ...

  5. linux每日命令(30):Linux 用户及用户组相关文件、命令详解

    一. 用户.用户组概念及其文件结构详解 Linux用户只有两个等级:root及非root.Linux中还有一部分用户,如:apache.mysql.nobody.ftp等,这些也都是非root用户,即 ...

  6. “makefile”写法详解,一步一步写一个实用的makefile,详解 sed 's,$∗\.o[ :]*,\1.o $@ : ,g' < $@.

    目的:编写一个实用的makefile,能自动编译当前目录下所有.c/.cpp源文件,支持二者混合编译.并且当某个.c/.cpp..h或依赖的源文件被修改后,仅重编涉及到的源文件,未涉及的不编译. 二要 ...

  7. Linux系统学习 二十一、SAMBA服务—相关文件、配置文件详解

    3.相关文件 常用文件: /etc/samba/smb.conf      #配置文件 /etc/samba/lmhosts        #对应NetBIOS名与主机的IP的文件,一般Samba会自 ...

  8. moviepy音视频剪辑:与大小相关的视频变换函数详解

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<movi ...

  9. 【Linux技术】autotools制作makefile过程详解

    Preface Makefile固然可以帮助make完成它的使命,但要承认的是,编写Makefile确实不是一件轻松的事,尤其对于一个较大的项目而言更是如此.那么,有没有一种轻松的手段生成Makefi ...

随机推荐

  1. 深入理解javascript原型和闭包(5)——instanceof

    又介绍一个老朋友——instanceof. 对于值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/ ...

  2. tomcat端口号被占用或者修改端口号的解决方法

    一)修改端口号: 在tomcat文件中找到conf里面的server.xml 在tomcat解压后的文件中按照下图操作

  3. canvas 画字

    用canvas画字还是头一回,要想和UI设计的画的一模一样还是真有些苦难,不过现在实现的效果已经很像了. <!--通过字体文件引入字体--><style>@font-face ...

  4. cPage分页,asp&period;net自定义分页,url传值分页,支持datalist、gridview、Repeater等

    asp.net分页是最最常用的功能,实现方式也很多,使用不同的控件有不同的分页方式. 下面分享一个我们团队内部使用了多年的一个分页控件cPage,是自己设计编写,没有冗余,简单.快速. cPage,现 ...

  5. spring容器IOC原理解析

    原理简单介绍: Spring容器的原理,其实就是通过解析xml文件,或取到用户配置的bean,然后通过反射将这些bean挨个放到集合中,然后对外提供一个getBean()方法,以便我们获得这些bean ...

  6. Atom打造 c&sol;c&plus;&plus;编译环境(忙了一个上午)

    众所周知 Atom是一款非常酷炫的编辑器.因为它就像上古卷轴一样,玩家可以开发各种dlc补丁,实现自己想要的效果.所以Atom 可以被你改造成自己想要的东西,可以用来写算法竞赛题目,可以开发网页,可以 ...

  7. text-shadow 详解及示例

    text-shadow  [tɛkst] - [ˈʃædoʊ]   定义: text-shadow: none | <shadow> [,<shadow>]* <shad ...

  8. Java 异常体系

    1.异常简介 Java把异常作为一种类,当做对象来处理.所有异常类的基类是Throwable类,两大子类分别是Error和Exception. 系统错误由Java虚拟机抛出,用Error类表示.Err ...

  9. Java二叉树的实现与特点

    二叉树是一种非常重要的数据结构,它同时具有数组和链表各自的特点:它可以像数组一样快速查找,也可以像链表一样快速添加.但是他也有自己的缺点:删除操作复杂. 我们先介绍一些关于二叉树的概念名词. 二叉树: ...

  10. jenkins openshift 持续集成

    参数部分没有 不要照抄,只供参考 需求: CI利用confd+etcd生成配置文件 CI把git的COMMIT 传到openshift的buildconfigs #!/bin/bash echo ec ...