<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MTK MFNR 學(xué)習(xí)筆記

          共 8219字,需瀏覽 17分鐘

           ·

          2024-04-17 08:02

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過(guò)閱讀本文,您將收獲以下知識(shí)點(diǎn):

          一、MFNR 簡(jiǎn)介
          二、MFNR 開(kāi)關(guān)與決策
          三、MFNR 相關(guān)的adb 命令
          四、MFNR log 分析
          五 參考文獻(xiàn)

          一、MFNR 簡(jiǎn)介

          MFNR : Multiple Frame Noise Reduction
          MFLL : Multiple Frame Low Light
          BSS : Best Select Shot

          MFNR 跟 MFLL 是兩個(gè)功能一致,名稱(chēng)不同的簡(jiǎn)稱(chēng),是MTK 推出的YUV domain 多幀降噪的算法。

          MFNR 是在 P2_CaputureNode 中 CaptureFeaturePipe 的路徑,多幀的raw 首先在 rootnode 中做 bss,同時(shí)會(huì)做 recorder 動(dòng)作,然后依次進(jìn)入到 P2ANode 做 raw2yuv ,產(chǎn)生的yuv等image,送到 MultiFrameNode(掛載 MFNR 算法)中進(jìn)行多幀降噪處理,產(chǎn)生一張降噪后的YUV;如果還掛在其他的單幀YUV算法,則送YUVNode 處理,最終送到MDPNode 做crop ,resize處理;
          大致流程如下:
          Raws--> RootNode(BSS)-->Raws-->P2A(Raw2Yuv)-->YUVs-->MultiFrameNode(MFNR)-->YUV-->YUVNode-->YUV-->MDPNode-->Yuv

          二、MFNR 開(kāi)關(guān)與決策

          2.1 MFNR 開(kāi)關(guān)設(shè)置

          開(kāi)關(guān)控制在:MTK_CAM_MFB_SUPPORT
          代碼路徑:
          /device/*/ProjectConfig.mk
          如果支持,默認(rèn)建議設(shè)置為 3
          MTK_CAM_MFB_SUPPORT =3

           0: 關(guān) MFLL 
          1:開(kāi) MFLL
          2:開(kāi) AIS
          3:開(kāi) MFLL 和AIS
          • 1.不支持MFNR時(shí),請(qǐng)?jiān)?app 中設(shè)置

          MTK_MFNR_FEATURE_MFB_MODE 為 MTK_MFNR_FEATURE_MFB_OFF

          • 2.支持MFNR 時(shí),請(qǐng)?jiān)?app 中設(shè)置

          MTK_MFNR_FEATURE_MFB_MODE 為 MTK_MFNR_FEATURE_MFB_AUTO,由 CUST_MFLL_AUTO_MODE 決策走哪個(gè)模式

          • 3.當(dāng)支持AIS時(shí),可以使用下面二者任一種

          1.MTK_MFNR_FEATURE_AIS_MODE = MTK_MFNR_FEATURE_AIS_ON
          2.MTK_MFNR_FEATURE_MFB_MODE = MTK_MFNR_FEATURE_MFB_AIS

          • 4.當(dāng)前面的meta確認(rèn)為非 OFF 狀態(tài),則去判斷tuning設(shè)置的threshold 是否滿(mǎn)足,(mfll_iso_th 決策是否走M(jìn)FNR)。

          三、MFNR 相關(guān)的adb 命令

          1.強(qiáng)制開(kāi)、關(guān) MFNR

          adb shell setprop vendor.mfll.force 1 // 開(kāi) :1 、 關(guān):0

          2. dump MFNR 各階段的圖片

          adb shell setprop vendor.mfll.dump.all 1
          路徑:/data/vendor/camera_dump

          3.開(kāi)MFNR 的log

          adb shell setprop vendor.mfll.log_level 3

          4.dump MFNR 需要的RaW 跟YUV 圖

          adb shell setprop vendor.debug.camera.p2.dump 1

          5.dump bss 之前的RAW和RRZO

          adb shell setprop vendor.debug.camera.bss.dump 1

          四、MFNR log 分析

          Log 關(guān)鍵字

          log關(guān)鍵字:
          MFNRPlugin|capture req|capture intent: 2|connect call|MfllCore

          connect call|capture req|capture intent: 2|mfll_iso_th.*enablemfb|Mfll apply.*frames|Collected Selection|capture request frames count|BSS output|skip frame count|allocate memory|times to blend|funcprocessMemc|process.*collected request|doMsBlending|process.*callback request

          關(guān)鍵字 解釋
          connect call 調(diào)用cameraservice的app 以及使用的api
          capture req capture intent: 2 拍照請(qǐng)求幀以及intent
          MFNRPlugin MFNR
          origin_iso 838 當(dāng)前預(yù)覽iso
          mfll_iso_th:100 多幀 iso 決策 ,
          enableMfb:1 開(kāi)啟 mfll
          frameCapture:4 多幀拍照張數(shù)4張
          evaluateCaptureSetting 拍照決策 mainFrame:1 subFrames:3
          BSS output BSS 選幀
          BSS: skip frame 過(guò)BSS 算法 skip的張數(shù)
          allocate memory 分配內(nèi)存
          collected request(0/4) MFNR 收到幀的張數(shù)
          doMsBlending 多幀融合
          callback request 依次 callback 每一幀


          // 水印相機(jī)
          04-10 16:41:04.080150 1422 8639 I CameraService: CameraService::connect call (PID 8414 "com.tencent.zebra", camera ID 0) and Camera API version 1
          // capture req#:92 capture intent: 2 第 92 幀 請(qǐng)求拍照
          04-10 16:41:09.544396 1478 9201 D mtkcam_hal_android.device: [capture intent: 2] + ULog#158932
          04-10 16:41:09.544453 1478 9201 D mtkcam_hal_android.device: [ASettingRuleHelper::updateLogicalSetting] capture intent: 2
          04-10 16:41:09.544487 1478 9201 D mtkcam_hal_android.device: [capture intent: 2] - ULog#158933
          04-10 16:41:09.545722 1478 9201 I mtkcam-FeatureSettingPolicy: [collectCaptureInfo] (0xb400007a86f4af30) capture req#:92
          04-10 16:41:09.548862 1478 9201 D MFNRPlugin: (9201)[negotiate] Collected Selection:(0/0), ISP mode: 0, sensorId:0, Req(92)

          // origin_iso:838 但前預(yù)覽iso
          // mfll_iso_th:100 多幀 iso 決策 ,
          // enableMfb:1 開(kāi)啟 mfll
          // frameCapture:4 多幀拍照張數(shù)4張
          04-10 16:41:09.549907 1478 9201 I MfllCore/Strategy: {Mfll}[queryStrategy] iso:838, origin_iso:838, mfll_iso_th:100, downscale(enabled:0, ratio:0, 16/16), finalCfg(enableMfb:1, frameCapture:4), postrefine(nr:1, mfb:1), aevc(ae:0, lcso:0)
          04-10 16:41:09.550055 1478 9201 D MFNRCapability_Basic: (9201)[updateSelection] Mfll apply = 1, frames = 4
          04-10 16:41:09.550410 1478 9201 D MFNRPlugin: (9201)[negotiate] Collected Selection:(1/0), ISP mode: 0, sensorId:0, Req(92)
          04-10 16:41:09.550512 1478 9201 D MFNRCapability_Basic: (9201)[updateSelection] Mfll apply = 1, frames = 4
          04-10 16:41:09.550784 1478 9201 D MFNRPlugin: (9201)[negotiate] Collected Selection:(2/0), ISP mode: 0, sensorId:0, Req(92)
          04-10 16:41:09.550857 1478 9201 D MFNRCapability_Basic: (9201)[updateSelection] Mfll apply = 1, frames = 4
          04-10 16:41:09.551145 1478 9201 D MFNRPlugin: (9201)[negotiate] Collected Selection:(3/0), ISP mode: 0, sensorId:0, Req(92)
          04-10 16:41:09.551218 1478 9201 D MFNRCapability_Basic: (9201)[updateSelection] Mfll apply = 1, frames = 4

          // evaluateCaptureSetting 拍照決策 mainFrame:1 subFrames:3
          //BSS output BSS 選幀
          04-10 16:41:09.552314 1478 9201 D mtkcam-FeatureSettingPolicy: [evaluateCaptureSetting] capture request frames count(mainFrame:1, preCollectFrames:0, subFrames:3)
          04-10 16:41:09.555439 1478 9201 D mtkcam-CaptureInFlightRequest: [insertRequest] insert capture RequestNo 92, size #:1
          04-10 16:41:09.777355 1478 9373 D BssCore : (9373)[postPrepareRequests] MTK_FEATURE_BSS_PROCESS = 0, BSS output(enable bss:1) - order(0)
          04-10 16:41:09.777365 1478 9373 D BssCore : (9373)[postPrepareRequests] MTK_FEATURE_BSS_PROCESS = 0, BSS output(enable bss:1) - order(3)
          04-10 16:41:09.777373 1478 9373 D BssCore : (9373)[postPrepareRequests] MTK_FEATURE_BSS_PROCESS = 0, BSS output(enable bss:1) - order(1)
          04-10 16:41:09.777379 1478 9373 D BssCore : (9373)[postPrepareRequests] MTK_FEATURE_BSS_PROCESS = 0, BSS output(enable bss:1) - order(2)

          // BSS: skip frame 過(guò)BSS 算法 skip的張數(shù)
          04-10 16:41:09.778173 1478 9373 I MtkCam/CapturePipe/RootNode: [reorder]BSS: skip frame count: 0, golden:0

          // allocate memory 分配內(nèi)存
          04-10 16:41:09.820663 1478 9505 D MfllCore: {Mfll}[operator()] future allocate memory +

          // collected request(0/4) MFNR 收到幀的張數(shù)
          04-10 16:41:09.821332 1478 9379 D MFNRPlugin: (9379)[process] collected request(0/4)
          04-10 16:41:09.821347 1478 9508 D MfllCore: {Mfll}[operator()] times to blend(3), MEMC instanceNum(1), threadsNum(1)
          04-10 16:41:09.821375 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(0) +
          04-10 16:41:09.841445 1478 9379 D MFNRPlugin: (9379)[process] collected request(1/4)
          04-10 16:41:09.847348 1478 9505 D MfllCore: {Mfll}[operator()] future allocate memory -
          04-10 16:41:09.863183 1478 9379 D MFNRPlugin: (9379)[process] collected request(2/4)
          04-10 16:41:09.886023 1478 9379 D MFNRPlugin: (9379)[process] collected request(3/4)

          // memc 過(guò)完
          04-10 16:41:09.913152 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(0) -
          04-10 16:41:09.913241 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(1) +
          04-10 16:41:09.920605 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(1) -
          04-10 16:41:09.920615 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(2) +
          04-10 16:41:09.927396 1478 9508 D MfllCore: {Mfll}[operator()] funcProcessMemc(2) -

          //doMsBlending 多幀融合
          04-10 16:41:09.950564 1478 9510 D MfllCore: {Mfll}[doMsBlending] blending (0) ok
          04-10 16:41:09.950575 1478 9510 D MfllCore: {Mfll}[doMsBlending] re-use input base buffer for 2nd blend
          04-10 16:41:09.975629 1478 9510 D MfllCore: {Mfll}[doMsBlending] blending (1) ok
          04-10 16:41:10.008877 1478 9510 D MfllCore: {Mfll}[doMsBlending] use working buffer as output
          04-10 16:41:10.053627 1478 9510 D MfllCore: {Mfll}[doMsBlending] blending (2) ok
          04-10 17:19:21.915968 13594 15334 D MfllCore: {Mfll}[doMsBlending] blending (4) ok

          // callback request 依次 callback 每一幀
          04-10 16:41:10.053840 1478 9379 D MFNRPlugin: (9379)[process] callback request(0/4) 0xb4000079471651a8
          04-10 16:41:10.054679 1478 9379 D MFNRPlugin: (9379)[process] callback request(1/4) 0xb4000079471651a8
          04-10 16:41:10.055064 1478 9379 D MFNRPlugin: (9379)[process] callback request(2/4) 0xb4000079471651a8
          04-10 16:41:10.055407 1478 9379 D MFNRPlugin: (9379)[process] callback request(3/4) 0xb4000079471651a8

          五 參考文獻(xiàn)

          MTK文檔

          參考文獻(xiàn):

          【騰訊文檔】Camera學(xué)習(xí)知識(shí)庫(kù)
          https://docs.qq.com/doc/DSWZ6dUlNemtUWndv

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺(jué)得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請(qǐng)聯(lián)系小編刪除,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!

          點(diǎn)擊閱讀原文,為大佬點(diǎn)贊!

          瀏覽 314
          10點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          10點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩国产毛片一区二区三区无码精品 | 欧美性猛交XXXX免费看久久久 | 欧美三级,美国一级 | 操B网址 操屄网址 | 国国产精品美女 |