MTK Camera相關的Makefile Option詳解

SZX511發表於2019-04-18

MTK Camera相關的Makefile Option詳解


[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。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31529038/viewspace-2641772/,如需轉載,請註明出處,否則將追究法律責任。

相關文章