• MTK平台Camera Dump Buffer处理


    (1)Dump Buffer的方法

    在Camera调试过程中可能会遇到预览图或拍照图有花屏,竖线等各种情况,这种情况下很多时候我们不清楚这种异常画面是如何来的?此时我们就可以通过Dump Buffer来确认是Sensor还是Pass2又或者是MDP等哪个模块的问题,从而排查画面异常的原因。

    可以看一下Mtk Hal的简单架构。
    在这里插入图片描述
    Dump Buffer的相关命令,MTK平台已经总结到FAQ上了,可参考如下两篇:

    可下如下命令准备进行dump。

    adb root
    adb remount
    adb shell setprop debug.cam.drawid 1
    adb shell setprop persist.vendor.dp.dumpreg.check 1
    adb shell setprop vendor.dp.dumpreg.enable 2
    adb shell setprop vendor.debug.hal3av3.forcedump 1
    adb shell setprop vendor.debug.aaa.perframe_prop.enable 1
    adb shell setprop vendor.debug.camera.dump.p2.debuginfo 1
    adb shell setprop vendor.debug.camera.copy.p1.lsc 1
    adb shell setprop vendor.debug.camera.dump.lsc2 1
    adb shell setprop vendor.debug.camera.SttBufQ.enable 60
    adb shell setprop vendor.debug.camera.AAO.dump 1
    adb shell setprop vendor.debug.camera.dump.p2.ext.img3o 1
    adb shell setprop vendor.debug.camera.img3o.dump 1
    adb shell setprop vendor.debug.camera.ufo_off 1
    adb shell setprop vendor.debug.camera.p2.dump 1
    adb shell setprop vendor.debug.camera.dump.JpegNode 1
    adb shell setprop vendor.debug.camera.raw.type 0
    adb shell pkill camera*
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    (2)Dump Buffer的port口

    以上两篇文章总结的还是很详细的,简单说一下dump出来的文件分别对应什么port口。

    (A)Preview + Record

    //Preview
    142822942-0133-0133-main-rrzo-PW1911-PH1424-BW3584__1904x1424_10_3.packed_word ———main sensor 的P1 rrzo buffer(Preview142822942-0133-0133-main-wdmao-PW1280-PH720-BW1280__1280x720_8_s0.yv12——— wdmao 代表为 display output buffer,也就是P2S 最终输出的main sensor的display buffer(Preview142822942-0133-0133-main-img3o-PW1920-PH1472-BW1920__1904x1424_8_s0.yv12———main sensor 的img3o buffer(P2Anode但是还没过MDP 的buffer,供3DNR用)  
    
    //Record
    040521031-2275-1954-main-wroto-PW640-PH480-BW640__640x480_8_s0.yv12———wroto代表为record output buffer,也就是 P2S 最终输出的main sensor 的record buffer(Record
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    (B)Capture

    (a)P1Node可以直接出pure raw

    在这里插入图片描述

    (b)对于ISP 6s相关平台,P1Node只能出pure raw,可以通过P2CaptureNode出process raw

    在这里插入图片描述

    (c)对于ISP 6s之前的平台,P1Node可以直接出process raw

    在这里插入图片描述

    (d)P2CaptureNode中的yuv

    在这里插入图片描述

    181441592-0403-0403-main-imgo-PW4006-PH3000-BW5008__4000x3000_10_1.packed_word || 181441592-0403-0403-main-imgo-PW4000-PH3000-BW8000__4000x3000_12_s0.raw———imgo代表P1Node 拍照所出的full size
    
    173029054-0049-0049-main-img2o-PW192-PH108-BW384__192x108_8_s0.yuy2———img2o代表ISP_P2出的thumbnail yuv
    
    173029054-0049-0049-main-img3o-PW4208-PH3120-BW8416__4208x3120_8_s0.yuy2———img3o代表ISP_P2出的main yuv
    
    173029054-0049-0049-main-wdmao-PW192-PH128-BW192__192x108_8_s0.nv21———wdmao代表MDP出的postview
    
    173029054-0049-0049-main-wroto-PW2304-PH4096-BW2304__2304x4096_8_s0.nv21———wroto代表MDP出的main yuv
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
  • 相关阅读:
    【NODE.JS】多进程架构(二)—— 句柄传递
    011:获取上证50的所有股票代码,并下载各个股K线数到excel表中
    Pytorch实战教程(二十七)-基于ResNet模型实现猫狗分类
    JavaScript实现代码雨
    LeetCode 0710.黑名单中的随机数 - 预处理实现O(1)取值
    12 Synchronized与锁升级
    C语言之内存函数
    3、TCP状态
    golang grpc——header和trailer元数据传输
    nginx配置奇怪的问题
  • 原文地址:https://blog.csdn.net/dongxianfei/article/details/126010011