• Hexagon SDK camera_streaming example demo运行方法



    本文使用的Hexagon_SDK版本为3.5.4,设备芯片型号为sm8250。

    概述

    注意:
    本样例适用于sm8250/sm7250/sm8350。
    对于其他目标如msm8998, sdm660, sdm485, sm8150, sm7150, sm6125等。请参阅Example_legacy.html。
    相机流的样例为hvx_app_add_constant,可以在Hexagon_SDK目录下找到。这个简单的样例展示了开发人员如何使用相机流框架提供的实用程序来开发用于拜耳像素数据处理的相机流样例。
    在设备上运行样例之前,请确保已准备好Hexagon_SDK运行依赖关系。

    目的

    本样例的目标是

    • 演示如何使用相机流框架提供的实用程序
    • 为开发人员提供编程模型。
    • 展示相机流通常处理的不同用例
    • 使用这些样例作为参考,开发人员可以用他们自己的代码替换处理部分,并快速实现他们自己的摄像机流用例。

    add_constant样例展示了应用程序如何将运行时参数从OEM插件传递到QDSP6 lib,以及应用程序如何在Android和DSP之间传输和访问缓冲区。

    编译样例

    构建hvx_add_constant样例的步骤如下,这同样也适用于其他相机流的例子。

    编译OEM插件

    通过windows系统命令行进入\examples\camera_streaming\hvx_add_constant_stub文件夹,为Hexagon_SDK的安装目录,在我的电脑上为“D:\Hexagon_SDK\3.5.4”,各位根据自己的实际情况,进行调整。
    注:本文默认各位读者已经准备好了Hexagon_SDK的运行环境,即已经运行了setup_sdk_env.cmd脚本。
    然后运行以下命令进行编译

    make tree V=android_Release sm8250=1
    
    • 1

    此文件夹下的android_Release\ship文件夹下将出现libmmcamera_hvx_add_constant.so文件。

    编译QDSP6库

    同样进入到\examples\camera_streaming\hvx_add_constant文件夹,然后执行以下编译命令:

    make tree V=hexagon_Release_dynamic_toolv83_v66 sm8250=1 VERBOSE=1
    
    • 1

    注意,make命令中的“tree”对于构建指定变体(hexon_releaseg)的所有样例依赖关系是必要的。VERBOSE=1是一个可选标志,用于显示make及其包含的模拟测试结果的详细信息。对于相同变体的示例的后续重新构建可以省略如下所示的“tree”。

    make V=hexagon_Release_dynamic_toolv83_v66 sm8250=1
    
    • 1

    注意,这个make命令以共享库(.so)格式构建QDSP6库。此共享库将加载到支持HVX流的目标芯片组。
    这时在此文件夹下会生成hexagon_Release_dynamic_toolv83_v66\libdsp_streamer_add_constant.so文件

    将样例加载到设备上

    有一种方法可以在模拟器上离线测试摄像机流媒体代码(如下所示),但由于流媒体的性质,示例通常是在安装了合适的成像传感器的目标设备上测试的。
    作为一个预先要求,目标设备应该预装APPS构建和DSP构建。另外,以hvx_add_constant为例:
    运行以下命令将生成的文件推送到设备中

    adb push D:\Hexagon_SDK\3.5.4\examples\camera_streaming\hvx_add_constant\hexagon_Release_dynamic_toolv83_v66\libdsp_streamer_add_constant.so /system/lib/rfsa/adsp
    
    • 1
    adb push D:\Hexagon_SDK\3.5.4\examples\camera_streaming\hvx_add_constant_stub\android_Release\libmmcamera_hvx_add_constant.so /system/lib/
    
    • 1

    如果设备中的/system/lib/rfsa/adsp以及/system/lib/文件夹不存在,可以运行以下命令建立文件夹

    adb shell mkdir -p /system/lib/rfsa/adsp
    
    • 1

    运行样例

    当前运行相机流的方法是使用adb shell setprop命令来启用和禁用它。
    假设OEM插件名称为“libmmcamera_hvx_add_constant.”so”,执行以下操作,启用HVX相机流并加载指定的QDSP6库进行处理。

    adb shell setprop persist.camera.hvx_lib_1 "libmmcamera_hvx_add_constant.so"
    
    • 1

    禁用流媒体,使像素数据完全绕过HVX流媒体模块,作为一个正常的ISP,执行以下命令:

    adb shell setprop persist.camera.hvx_lib_1 ""
    
    • 1

    开启相机流(HVX)模式。

    adb root 
    adb remount
    
    • 1
    • 2

    创建一个名为camxoverridessettings .txt的新文本文件,并在文件中插入enableHVXStreaming=1,然后将其推送到以下位置/vendor/etc/camera的设备。如果文件夹不存在,则通过上文命令创建它们。
    如果文件存在运行以下命令:

    adb shell echo enableHVXStreaming=1 > /vendor/etc/camera/camxoverridesettings .txt
    
    • 1

    接下来继续执行命令

    adb reboot 
    adb root 
    adb remount 
    adb shell setenforce 0
    
    • 1
    • 2
    • 3
    • 4

    重新启动设备。在MTP上启动骁龙相机应用程序或相应的相机应用程序
    设备在预览模式,你应该看到明亮的区域将定期增强为粉红色,这表明相机流模式正在工作添加常量样例,具体效果如下视频所示。

    video

  • 相关阅读:
    oracle提高执行更新或新增的SQL效率
    QTreeWidget样式qss
    【优化发电】基于matlab差分进化算法求解单库发电优化问题【含Matlab源码 2253期】
    算法简述-串和串的匹配、排序、深度/广度优先搜索、动态规划、分治、贪心、回溯、分支限界
    虽然webpack4以后。webpack 可以不用再引入一个配置文件来打包项目,但还是梳理常用配置信息
    VulnHub — CH4INRULZ_v1.0.1
    结构方程模型SEM、路径分析房价和犯罪率数据、预测智力影响因素可视化2案例...
    【IEEE出版顺利申请中】2024年第四届电子信息工程与计算机科学国际会议(EIECS 2024)
    Java通过HttpURLConnection访问页面并解析HTML文件元素
    C++ 性能小测 1 二维数组的遍历效率
  • 原文地址:https://blog.csdn.net/weixin_42112050/article/details/126270161