下载
中文
注册

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_l inear

30

取step_fno_table有效数据范围内的最小值30