一、前言
众所周知,市面上的摄像头五花八门,每种不同的应用场景就要使用不同的摄像头,不同的摄像头有着各类差异,例如大小、外形、分辨率、数据格式、接口等,所以我们在同一款芯片上要适配不同的摄像头也就意味着各种参数都要重新设置,本篇博文就给大家介绍 Hi3566V100 平台是如何添加一种新分辨率的。仅适用于使用 MIPI 接口的 Sensor,使用的软件 SDK 版本是 Hi3562V100_MobileCam_SDK_V2.0.0.2。
二、修改 MIPI_RX
2.1 在 MIPI_RX 添加分辨率
首先数据从 Sensor 模组出来,第一步肯定是板端的 MIPI_RX 要接收这些数据,所以板端的 MIPI_RX 接口要设置好对应的数据格式、分辨率、帧率、Lane 的配置方式等参数,这些参数都是在 middleware\ndk\code\mediaserver\configs\sensor\hi3562v100\xxxxx(Sensor 目录) \sensor_interface_cfg_params.c 文件内设置的,下面是添加一个 1600x1300 分辨率的例子:
图 2.1 在 HI_MAPI_MIPI_INTF_S 中添加
图2.2 在 HI_MAPI_VCAP_SensorMode 中添加
在这两个结构体中添加后就完成对 MIPI_RX 的配置了。
三、修改数据通路分辨率
3.1 增加分辨率定义
以下部分都是在 Reference 层中的操作:
① 打开 product_iniparam_common.c 文件,在 PARAM_INIPARAM_GetMediaModeEnum 文件下添加 1600x1300 的选项,具体操作如下:
图 3.1 PARAM_INIPARAM_GetMediaModeEnum 中添加分辨率
② 打开 hi_product_param_define.h ,添加下面配置
图 3.2 在 HI_PARAM_MediaMode 中添加分辨率
③ 打开 product_param_debug.c,在 PDT_PARAM_GetMediaModeStr 中添加 1600x1300 的配置选项:
图 3.3 在 PDT_PARAM_GetMediaModeStr 中添加分辨率
3.2 新增配置文件
参考 config_product_mediamode_cam0_record_1080p.ini 仿写 config_product_mediamode_cam0_record_1600x1300.ini。
① 修改 mediamode
图 3.4 修改 mediamode
② 修改 vcap、vpss、venc的分辨率
图 3.5 修改 Vcap 分辨率
图 3.6 修改 Vpss 分辨率
图 3.7 修改 Venc 分辨率
③ 修改ini ,主要是添加新加入的 1600x1300 的 mediamode 文件
图 3.8 添加 module
图 3.9 定义 module
④ 最后一步,在 ini 文件中把 common.mediamode.config.1 改为刚才的 HI_PARAM_MEDIAMODE_1300P_30 就大功告成了,后面的录像文件都会变成 1600x1300 分辨率了
图 3.10 使用 1300P 的 mediamode
参考资料:
【1】《HiMobileCam V2.0参考设计开发指南.pdf》
【2】《Camera Sensor V2.0 适配指南.pdf》
评论