当前位置: 首页 > news >正文

Camx-查看sensor mode 和效果参数

参考文档:80-NK872-13 QUALCOMM SPECTRA CAMERA ISP TUNING GUIDE

sensor 匹配

vendor/qcom/proprietary/chi-cdk/core/chiframework/chxsensorselectmode.cpp

ChiSensorModeInfo* ChxSensorModeSelect::FindBestSensorMode(UINT32                   cameraId,const DesiredSensorMode* pDesiredSensorMode)
{pSelectedMode = &pAllModes[pSelectedMode->modeIndex]; //update pSelectedModeCHX_LOG_DEBUG("Selected Usecase: %d,app_out(%d,%d), sensor_out(%d,%d), SelectedMode FPS:%d,"" modeIndex:%d, out_info_array.size:%d",useCase,pDesiredSensorMode->optimalWidth,pDesiredSensorMode->optimalHeight,pSelectedMode->frameDimension.width,pSelectedMode->frameDimension.height,pSelectedMode->frameRate,pSelectedMode->modeIndex,modeCount);
}

效果参数匹配

ps:修改 chxutils.cpp – 编译com.qti.chi.override

FillTuningModeData
\HLOS\vendor\qcom\proprietary\chi-cdk\core\chiutils\chxutils.cpp
效果参数调用的地方,还有别的文件也有这个函数,有时候调用不一样

VOID ChxUtils::FillTuningModeData(ChiMetadata*               pMetaData,ChiModeUsecaseSubModeType  usecaseMode,UINT32                     sensorModeIndex,UINT32*                    pEffectModeValue,UINT32*                    pSceneModeValue,UINT32*                    pFeature1Value,UINT32*                    pFeature2Value)
{ChiTuningModeParameter chiTuningModeParameter = { 0 };chiTuningModeParameter.noOfSelectionParameter = MaxTuningMode;chiTuningModeParameter.TuningMode[0].mode               = ChiModeType::Default;chiTuningModeParameter.TuningMode[0].subMode.value      = 0;chiTuningModeParameter.TuningMode[1].mode               = ChiModeType::Sensor;chiTuningModeParameter.TuningMode[1].subMode.value      = sensorModeIndex;chiTuningModeParameter.TuningMode[2].mode               = ChiModeType::Usecase;chiTuningModeParameter.TuningMode[2].subMode.usecase    = usecaseMode;chiTuningModeParameter.TuningMode[3].mode               = ChiModeType::Feature1;chiTuningModeParameter.TuningMode[3].subMode.feature1   = GetFeature1Mode(pMetaData, pFeature1Value);chiTuningModeParameter.TuningMode[4].mode               = ChiModeType::Feature2;chiTuningModeParameter.TuningMode[4].subMode.feature2   = GetFeature2Mode(pFeature2Value);chiTuningModeParameter.TuningMode[5].mode               = ChiModeType::Scene;chiTuningModeParameter.TuningMode[5].subMode.scene      = GetSceneMode(pMetaData, pSceneModeValue);chiTuningModeParameter.TuningMode[6].mode               = ChiModeType::Effect;chiTuningModeParameter.TuningMode[6].subMode.effect     = GetEffectMode(pMetaData, pEffectModeValue);ChxUtils::SetVendorTagValue(pMetaData, VendorTag::TuningMode, sizeof(ChiTuningModeParameter), &chiTuningModeParameter);CHX_LOG_VERBOSE("m_cameraId %d SensorMode %d UC %u feature %u %d scene %d effect %d",m_cameraId,sensorModeIndex,chiTuningModeParameter.TuningMode[2].subMode.usecase,chiTuningModeParameter.TuningMode[3].subMode.feature1,chiTuningModeParameter.TuningMode[4].subMode.feature2,chiTuningModeParameter.TuningMode[5].subMode.scene,chiTuningModeParameter.TuningMode[6].subMode.effect);}
}

log:

I CHIUSECASE: [VERBOSE] chxutils.cpp:1916 FillTuningModeData() SensorMode 0 UC 0 feature 0 0 scene 0 effect 0

**关键词2:PopulateGeneralTuningMetadata
这里是dump 效果参数
log:

V CamX    : [ VERB][PPROC  ] camxopenode.cpp:7353 PopulateGeneralTuningMetadata() TuningMode: ReqID: 12: Default 0, Sensor 0 usecase 0 feature1 0 feature2 0 secne 0 effect 0

vendor/qcom/proprietary/camx/src/hwl/ope/camxopenode.cpp

adb
实际生效

adb root
adb shell setprop persist.vendor.camera.debugdata.enable3A TRUE
adb shell setprop persist.vendor.camera.debugdata.enableTuningMetadata TRUE
开启metadata信息,需要杀进程才能生效

=

相关定义

vendor/qcom/proprietary/chi-cdk/api/common/chituningmodeparam.h


#ifndef CHITUNINGMODEPARAM_H
#define CHITUNINGMODEPARAM_H#ifdef __cplusplus
extern "C"
{
#endif // __cplusplusstatic const UINT32 MaxTuningMode  = 7;enum class ChiModeType
{Default  = 0,Sensor   = 1,Usecase  = 2,Feature1 = 3,Feature2 = 4,Scene    = 5,Effect   = 6
};enum class ChiModeUsecaseSubModeType
{Preview  = 0,Snapshot = 1,Video    = 2,ZSL      = 3,Liveshot = 4
};enum class ChiModeFeature1SubModeType
{None            = 0,ISPHDR          = 1,ADRC            = 2,InSensorHDR3Exp = 3
};enum class ChiModeFeature2SubModeType
{None                     = 0,OISCapture               = 1,HLG                      = 2,HDR10                    = 3,MFNRBlend                = 4,MFNRPostFilter           = 5,AIDenoiserMFNRBlend      = 6,AIDenoiserMFNRPostFilter = 7,MFSRBlend                = 8,MFSRPostFilter           = 9,OfflineNoiseReprocess    = 10
};enum class ChiModeSceneSubModeType
{None          = 0,Landscape     = 1,Snow          = 2,Beach         = 3,Sunset        = 4,Night         = 5,Portrait      = 6,BackLight     = 7,Sports        = 8,AntiShake     = 9,Flowers       = 10,CandleLight   = 11,Fireworks     = 12,Party         = 13,NightPortrait = 14,Theater       = 15,Action        = 16,AR            = 17,FacePriority  = 18,Barcode       = 19,BestShot      = 20
};
enum class ChiModeEffectSubModeType
{None      = 0,Mono      = 1,Sepia     = 2,Negative  = 3,Solarize  = 4,Posterize = 5,Aqua      = 6,Emboss    = 7,Sketch    = 8,Neon      = 9,Blackboard= 10,Whiteboard= 11
};
union ChiModeSubModeType
{UINT16                     value;ChiModeUsecaseSubModeType  usecase;/// feature1ChiModeFeature1SubModeType feature1;/// feature2ChiModeFeature2SubModeType feature2;/// sceneChiModeSceneSubModeType    scene;/// effectChiModeEffectSubModeType   effect;
};struct ChiTuningMode
{ChiModeType        mode;ChiModeSubModeType subMode;
};struct ChiTuningModeParameter
{UINT32         noOfSelectionParameter;ChiTuningMode  TuningMode[MaxTuningMode];
};#ifdef __cplusplus
}
#endif // __cplusplus#endif // CHITUNINGMODEPARAM_H
http://www.dtcms.com/a/308429.html

相关文章:

  • (LeetCode 每日一题) 2683. 相邻值的按位异或 (位运算)
  • 网络操作系统与应用服务器-1
  • SIwave 中 SIwizard 的 500 多个标准列表
  • 代码详细注释:演示多线程如何安全操作共享变量,使用互斥锁避免数据竞争。
  • Linux 文件系统基本管理
  • minidocx: 在C++11环境下运行的解决方案(二)
  • 网络攻击新态势企业级安全防御指南
  • Git分支管理:每个分支为什么这么命名?
  • Acrobat DC 应用安全配置:沙箱防护、数字签名
  • 了解微前端和SSO单点登录
  • Linux/Ubuntu 系统中打开火狐firefox、chromium浏览器失败
  • (三)从零搭建unity3d机器人仿真:使用WheelCollider实现turtlebot轮子差速运动
  • Linux系统编程-gcc(黑马笔记)
  • 译 | 用于具有外生特征的时间序列预测模型TimeXer
  • JavaScript 大数运算!
  • Abp+ShardingCore+EFCore.BulkExtensions使用案例
  • MCU中的DAC(数字模拟转换器)是什么?
  • 动态挑战-响应机制和密钥轮换
  • 算法练习:JZ32 从上往下打印二叉树
  • iOS高级开发工程师面试——其他
  • 磁盘坏道检测工具在美国服务器硬件维护中的使用规范
  • Linux 计划任务管理
  • 【在线五子棋对战】十一、整合封装服务器模块实现
  • linux git ssh配置过程
  • chrome.storage 和 localStorage
  • 自动化与配置管理工具 ——SaltStack
  • 用 AI 自动生成口型同步视频,短视频内容也能一人完成
  • 基于深度学习的医学图像分析:使用YOLOv5实现医学图像目标检测
  • 测试平台进化论:如何在CI/CD时代重构软件质量防线
  • # 前端开发规范基础汇总