---
title: hi_isp_piris_attr
description: "定义P-Iris属性。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/ispdevug/ispdevapi_0211.html
sourcePath: /source/zh/canncommercial/900/others/ispdevug/ispdevapi_0211.html
indexId: 3799945acbb035ab931a735835c535c8f3cbb414c9a399647180c2095b2866ed65
---
# hi_isp_piris_attr

#### 说明

定义P-Iris属性。


#### 定义

```
typedef struct {
hi_bool
step_fno_table_change;
hi_bool
zero_is_max;
hi_u16
total_step;
hi_u16
step_count;
hi_u16
step_fno_table[HI_ISP_AI_MAX_STEP_FNO_NUM];
hi_isp_iris_f_no
max_iris_fno_target;
hi_isp_iris_f_no
min_iris_fno_target;
hi_bool
fno_ex_valid;
hi_u32
max_iris_fno_target_linear;
hi_u32
min_iris_fno_target_linear;
} hi_isp_piris_attr;
```


#### 成员

| 成员名称 | 描述 |
| --- | --- |
| step\_fno\_table\_change | P\-Iris步进电机位置与光圈F值映射表是否更新标志。该值为HI\_TRUE时会更新P\-Iris步进电机位置与F值映射表，为HI\_FALSE时不更新。 |
| zero\_is\_max | P\-Iris步进电机Step 0是否对应最大光圈位置标志，取值与P\-Iris镜头相关。该值为HI\_TRUE时表示步进 电机处于位置0时，光圈打开至最大，为HI\_FALSE时表示步进电机处于位置0时光圈关闭。 |
| total\_step | P\-Iris步进电机的总步数，具体大小与P\-Iris镜头相关。 取值范围为[1, 1024]。 |
| step\_count | P\-Iris步进电机的可用步数，具体大小与P\-Iris镜头相关。 取值范围为[1, 1024]。 |
| step\_fno\_table[HI\_ISP\_AI\_MAX\_STEP\_FNO\_NUM] | P\-Iris步进电机位置与F值映射表，具体数据与P\-Iris镜头相关。 取值范围为[1, 1024]。 \#define HI\_ISP\_AI\_MAX\_STEP\_FNO\_NUM 1024 |
| max\_iris\_fno\_target | 最大光圈目标值，可用于控制AE分配路线，实际生效光圈大小与P\-Iris镜头相关。 取值范围为[HI\_ISP\_IRIS\_F\_NO\_32\_0, HI\_ISP\_IRIS\_F\_NO\_1\_0]。 |
| min\_iris\_fno\_target | 最小光圈目标值，可用于控制AE分配路线，实际生效光圈大小与P\-Iris镜头相关。 取值范围为[HI\_ISP\_IRIS\_F\_NO\_32\_0, HI\_ISP\_IRIS\_F\_NO\_1\_0]。 |
| fno\_ex\_valid | 对接P\-Iris时，AE分配路线是否采用更高精度的光圈F值等效增益标志。该值为HI\_TRUE时表示AE分配路线采用高精度的光圈F值等效增益。默认为HI\_FALSE。 |
| max\_iris\_fno\_target\_linear | 最大光圈F值等效增益目标值，可用于控制AE分配路线，实际生效光圈大小与P\-Iris镜头相关。 取值范围为[1, 1024]。 |
| min\_iris\_fno\_target\_linear | 最小光圈F值等效增益目标值，可用于控制AE分配路线，实际生效光圈大小与P\-Iris镜头相关。 取值范围为[1, 1024]。 |


#### 注意事项

- 在线更换P-Iris镜头时，可以通过MPI设置该结构体，将新镜头的参数传递给AE算法和P-Iris驱动。
- step_fno_table_change为只写寄存器，通过MPI获取该参数的值始终为HI_FALSE。
- total_step表示P-Iris步进电机的总步数，可用于标定光圈的起始位置。
- step_count表示P-Iris步进电机的可用步数，一般小于total_step，因为靠近光圈关闭端的位置在将光圈孔径转换为F值时误差较大，光圈调节过程中容易出现振荡，所以通常不会利用光圈关闭端附近的那些位置。当前最多支持1024步的PIris镜头，若P-Iris镜头的精度很高，可调节步数超过1024，建议舍去光圈关闭端附近的那些位置。
- P-Iris步进电机位置与光圈F值映射表step_fno_table一般根据镜头原厂提供的步进电机位置与光圈孔径对应关系制作。由于P-Iris的控制通过AE分配路线进行，这就要求光圈F值与曝光时间和增益有较好的线性关系，因此映射表需要较高的精度。这里用1024表示F1.0，512表示F1.4，以此类推，1表示F32.0。制作映射表时，可以根据最大光圈孔径对应的实际F值来规定映射表的最大值，也可以不用管光圈达到最大时的实际F值是多少，统一将最大光圈孔径映射为1024。同一款镜头处于不同焦距时，step_fno_table可能需要修改。
- 以福光NV03105P这款P-Iris镜头为例说明与镜头相关的参数该如何设置。  表1
中步进电机位置与孔径面积对应关系是镜头原厂提供的。该款镜头步进电机总步数为93，步进电机位置为0时，光圈孔径面积最大，标称最大相对孔径为F1.4，据此规定映射表F值最大值为512。规定好最大值后，就可以计算出其他孔径面积对应的F值，因为孔径面积与F值成线性关系。比如说步进电机位置1对应的孔径面积为48.835，得到F值为(48.835/49.366)*512=506，以此类推，可以得到所有有效步进电机位置对应的F值。由下表可以看到，当镜头靠近关闭端时，孔径面积很小，与最大孔径面积相差上万倍，映射表F值精度已不足以表现出孔径面积的变化，得到的F值都为0。实际上，哪怕提高映射表精度，由于镜头关闭端附近标称孔径面积与实际孔径面积一般相差较大，得到的F值也是不正确的，建议不要使用，否则在光圈调节过程中容易出现振荡。对于该款镜头，建议制作映射表时只取前62步，因此得到镜头相关的参数如下表所示。
- 步进电机位置与光圈F值映射表step_fno_table的前step_count个元素才是有效的，会被AE算法计算时用到，需要保证数组坐标小于step_count时，值单调递增，当数组坐标为(step_count-1)时，达到光圈最大F值。通过MPI设置step_fno_table时，只有前step_count个元素才会被写入寄存器保存；通过MPI获取step_fno_table时，只有前step_count个元素才会读出有效数值，其他值为0。
- 光圈类型为P-Iris时，AE算法计算最大/最小曝光量会参考max_iris_fno_target/min_iris_fno_target(若fno_ex_valid为true，则参考max_iris_fno_target_linear/min_iris_fno_target_linear)的值，因此这几个值要与step_fno_table的值相匹配，即最大/最小值都在step_fno_table有效数据范围内。
- 在手动配置DCF光圈相关信息时，需要关闭AI。如果需要配置的最大及实际光圈值为hi_isp_iris_f_no中定义的10个标准值，配置max_iris_fno_target为最大光圈值，配置min_iris_fno_target为实际光圈值即可。如果光圈不为10个标准值，则需要配置fno_ex_valid为HI_TRUE，以F32.0等效增益为1倍为基数计算实际光圈及最大光圈等效增益，并配置max_iris_fno_target_linear为最大光圈等效增益，配置min_iris_fno_target_linear为实际光圈等效增益。如果AI使能，则根据实际光圈生效的大小计算光圈值，并更新DCF信息。光圈最小可支持到F32.0。


**表1 P-Iris步进电机位置与F值映射表，以福光NV03105P为例**

| 步进电机位置 | 孔径面积 | 映射表F值 | 步进电机位置 | 孔径面积 | 映射表F值 | 步进电机位置 | 孔径面积 | 映射表F值 |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 0 | 49.366 | 512 | 35 | 20.07 | 208 | 70 | 0.136 | 1 |
| 1 | 48.835 | 506 | 36 | 19.241 | 200 | 71 | 0.095 | 1 |
| 2 | 48.234 | 500 | 37 | 18.42 | 191 | 72 | 0.067 | 1 |
| 3 | 47.571 | 493 | 38 | 17.609 | 183 | 73 | 0.045 | 0 |
| 4 | 46.856 | 486 | 39 | 16.808 | 174 | 74 | 0.028 | 0 |
| 5 | 46.11 | 478 | 40 | 16.017 | 166 | 75 | 0.016 | 0 |
| 6 | 45.324 | 470 | 41 | 15.237 | 158 | 76 | 0.008 | 0 |
| 7 | 44.511 | 462 | 42 | 14.469 | 150 | 77 | 0.004 | 0 |
| 8 | 43.674 | 453 | 43 | 13.788 | 143 | 78 | 0.003 | 0 |
| 9 | 42.822 | 444 | 44 | 12.972 | 135 | 79 | 0.003 | 0 |
| 10 | 41.963 | 435 | 45 | 12.254 | 127 | 80 | 0.002 | 0 |
| 11 | 41.099 | 426 | 46 | 11.541 | 120 | 81 | 0.002 | 0 |
| 12 | 40.231 | 417 | 47 | 10.843 | 112 | 82 | 0.001 | 0 |
| 13 | 39.357 | 408 | 48 | 10.162 | 105 | 83 | 0.001 | 0 |
| 14 | 38.478 | 399 | 49 | 9.497 | 98 | 84 | 0.001 | 0 |
| 15 | 37.608 | 390 | 50 | 8.851 | 92 | 85 | close | 0 |
| 16 | 36.721 | 381 | 51 | 8.222 | 85 | 86 | close | 0 |
| 17 | 35.832 | 372 | 52 | 7.611 | 79 | 87 | close | 0 |
| 18 | 34.94 | 362 | 53 | 7.018 | 73 | 88 | close | 0 |
| 19 | 34.047 | 353 | 54 | 6.443 | 67 | 89 | close | 0 |
| 20 | 33.153 | 344 | 55 | 5.893 | 61 | 90 | close | 0 |
| 21 | 32.259 | 335 | 56 | 5.354 | 56 | 91 | close | 0 |
| 22 | 31.365 | 325 | 57 | 4.832 | 50 | 92 | close | 0 |
| 23 | 30.473 | 316 | 58 | 4.329 | 45 | 93 | M\- stop | 0 |
| 24 | 29.582 | 307 | 59 | 3.843 | 40 | \- | \- | \- |
| 25 | 28.706 | 298 | 60 | 3.376 | 35 | \- | \- | \- |
| 26 | 27.82 | 289 | 61 | 2.926 | 30 | \- | \- | \- |
| 27 | 26.937 | 279 | 62 | 2.494 | 26 | \- | \- | \- |
| 28 | 26.059 | 270 | 63 | 2.08 | 22 | \- | \- | \- |
| 29 | 25.184 | 261 | 64 | 1.684 | 17 | \- | \- | \- |
| 30 | 24.315 | 252 | 65 | 1.305 | 14 | \- | \- | \- |
| 31 | 23.451 | 243 | 66 | 0.949 | 10 | \- | \- | \- |
| 32 | 22.593 | 234 | 67 | 0.607 | 6 | \- | \- | \- |
| 33 | 21.741 | 225 | 68 | 0.374 | 4 | \- | \- | \- |
| 34 | 20.896 | 217 | 69 | 0.225 | 2 | \- | \- | \- |


**表2 P-Iris镜头相关参数，以福光NV03105P为例**

| 参数名 | 参数值 | 备注 |
| --- | --- | --- |
| zero\_is\_max | HI\_TRUE | 步进电机位置0对应光圈最大孔径，因此该值为HI\_TRUE |
| total\_step | 93 | 步进电机总步数为93 |
| step\_count | 62 | 步进电机可用步数为62 |
| step\_fno\_table | {30,35,40,45,50,56,61,67,73,79,85,92,98,105,112,120,127,135,143,150,158, 166,174,183,191,200,208,217,225,234,243,252,261,270,279,289,298,307,316,325,335,344, 353,362,372,381,390,399,408,417,426,435,444,453,462,470,478,486,493,500,506,512} | 根据表1，取步进电机前62 步对应的F值，按照从小到大的排列顺序，制作映射表。AE算法计算时，只会用到step\_fno\_table数组中的前step\_count个元素。当数组坐标小于step\_count时，值必须保证是单调递增的。当数组坐标为(step\_count\-1)时，达到光圈最大F值512。 |
| max\_iris\_fno\_target | HI\_ISP\_IRIS\_F\_NO\_1\_4 | 映射表最大值512对应F1.4 |
| min\_iris\_fno\_target | HI\_ISP\_IRIS\_F\_NO\_5\_6 | 映射表最小值30接近对应F5.6 |
| fno\_ex\_valid | HI\_FALSE | 默认不采用高精度的光圈F值等效增益 |
| max\_iris\_fno\_target\_ linear | 512 | 取step\_fno\_table有效数据范围内的最大值512 |
| min\_iris\_fno\_target\_linear | 30 | 取step\_fno\_table有效数据范围内的最小值30 |
