跳转至

Hi3516CV610╱Hi3516CV608 3DNR参数配置说明

前言

概述

本文档详细的描述了Hi3516CV610/Hi3516CV608 3DNR参数配置说明以及3DNR接口调试指南。

产品版本

与本文档相对应的产品版本如下。

产品名称

产品版本

Hi3516C

V608

Hi3516C

V610

读者对象

本文档(本指南)主要适用于以下工程师:

  • 技术支持工程师
  • 软件开发工程师

修改记录

文档版本

发布日期

修改说明

00B01

2026-06-30

第1次临时版本发布。

接口及参数说明

参数说明

下面介绍3DNR的接口及参数。

ot_nr_v2

【说明】

定义3DNR X接口版本V2的参数。

【定义】

typedef struct {
    ot_nr_v2_pshrp  iey;
    ot_nr_v2_sfy  sfy[3];
    ot_nr_v2_mdy  mdy[2];
    ot_nr_v2_tfy  tfy[2];
    ot_nr_v2_nrc0  nrc0;
    ot_nr_v2_nrc1  nrc1;
    ot_nr_v2_sfy_lut luty[2];
    ot_nr_v2_pp  pp;
    ot_nr_v2_mdy0  mdy0;
    struct {
    td_u8 nry1_en         : 1;
    td_u8 nry2_en         : 1;
    td_u8 nry3_en         : 1;
    td_u8 nry4_en         : 1;
    td_u8 nrc0_mode       : 1;
    td_u8 nrc_en          : 1;
    };
} ot_nr_v2;

【成员】

成员名称

描述

iey

亮度滤波增强模块参数。

sfy

亮度滤波空域滤波参数。

mdy

亮度滤波运动检测参数。

tfy

亮度滤波时域滤波参数。

nrc0

色度滤波C0级参数。

nrc1

色度滤波C1级参数。

luty

亮度滤波空域滤波曲线参数。

pp

3dnr后处理参数。

mdy0

亮度滤波预处理时域滤波参数。

nry1_en

亮度滤波N1级使能开关。取值范围:[0, 1]

nry2_en

亮度滤波N2级使能开关。取值范围:[0, 1]

nry3_en

亮度滤波N3级使能开关。取值范围:[0, 1]

nry4_en

亮度滤波N4级使能开关。取值范围:[0, 1]

nrc0_mode

色度滤波C0级模式选择。取值范围:[0, 1]

nrc_en

色度滤波使能开关。取值范围:[0, 1]

【3DNR X接口与MPI接口的对应关系】

  • en 对应于nry1_en、nry2_en、nry3_en、nry4_en,默认参数分别为1、1、1、1;
  • nCmode对应于nrc0_mode,默认参数为0;
  • nCen对应于nrc_en,默认参数为1。

ot_nr_v2_pshrp

【说明】

3DNR后增强模块参数。

【定义】

typedef struct { 
    td_u16 coarse_g1, coarse_g2, coarse_g3, coarse_g4; 
    td_u16 fine_g1, fine_g2, fine_g3, fine_g4;
    td_u16 o_sht_b, u_sht_b;
    td_u16 o_sht_f, u_sht_f;
    td_u16 sfn7_0, sfn7_1, sfn8_0, sfn8_1;
    td_u16 sf_bld[17];
    td_u16 shp_ctl_mean[17], shp_ctl_dir[17];
    td_u16 sth1_0, sth2_0, sth3_0, sth1_1, sth2_1, sth3_1;
    td_u16 sfn0_0, sfn1_0, sfn2_0, sfn3_0, sfn0_1, sfn1_1, sfn2_1, sfn3_1; 
} ot_nr_v2_pshrp;

【成员】

成员名称

描述

coarse_g1, coarse_g2, coarse_g3, coarse_g4

中频信息增强的强度,1~4对应不同增强滤波器。

取值范围:[0, 1023]

fine_g1, fine_g2, fine_g3, fine_g4

高频信息增强的强度,1~4对应不同增强滤波器。

取值范围:[0, 1023]

o_sht_b, u_sht_b, o_sht_f, u_sht_f

o_sht(over shoot control), u_sht(under shoot control)分别表示抑制增强导致的白边和黑边。f和b分别表示前景和背景。数值越小,表示抑制能力越强,即增强越弱。

取值范围:[0, 255]

sfn7_0, sfn7_1, sfn8_0, sfn8_1

用于混合的滤波器号(7号、8号混合滤波器)。

取值范围:[0, 4]

sf_bld[17]

7号、8号混合滤波器的混合曲线(共用一条曲线)。混合指标分别为边缘方向性、亮度。

取值范围:[0, 63]

shp_ctl_mean[17], shp_ctl_dir[17]

用于抑制噪声不被增强的曲线(仅作用于1号和2号滤波器的中频信息增强(coarse_g))。纵坐标数值越小,表示增强越弱。

取值范围:[0, 63]

sth1_0, sth2_0, sth3_0, sth1_1, sth2_1, sth3_1

运动前景和背景区域的保边阈值。根据阈值选择使用不同的滤波器,需要配合sfn使用。

取值范围:[0, 511]

sfn0_0, sfn1_0, sfn2_0, sfn3_0, sfn0_1, sfn1_1, sfn2_1, sfn3_1

根据sth保边阈值,不同图像特性选择不同滤波器的类型(滤波器号),其中0、5、6号滤波器为输入。

取值范围:[0, 8]

【3DNR X接口与MPI接口的对应关系】

  • N4级的nXsf1 对应于iey.coarse_g1、iey.fine_g1,默认参数分别为128、128;
  • N4级的nXsf2 对应于iey.coarse_g2、iey.fine_g2,默认参数分别为128、128;
  • N4级的nXsf3 对应于iey.coarse_g3、iey.fine_g3,默认参数分别为128、128;
  • N4级的nXsf4 对应于iey.coarse_g4、iey.fine_g4,默认参数分别为128、128;
  • N4级的nXsf7 对应于iey.sfn7_0、iey.sfn7_1,默认参数分别为0、0;
  • N4级的nXsf8对应于 iey.sfn8_0、iey.sfn8_1,默认参数分别为0、0;
  • N4级的nXsht 对应于iey.o_sht_f、iey.u_sht_f、iey.o_sht_b、iey.u_sht_b,默认参数分别为80、80、80、80;
  • N4级的nXsfn对应于 iey.sfn0_0、iey.sfn1_0、iey.sfn2_0、iey.sfn3_0,默认参数分别为4、4、4、0;
  • N4级的nX2sfn对应于iey.sfn0_1、iey.sfn1_1、iey.sfn2_1、iey.sfn3_1,默认参数分别为3、3、3、0;
  • N4级的nXsth对应于 iey.sth1_0、iey.sth2_0、iey.sth3_0,默认参数分别为100、100、70;
  • N4级的nX2sth对应于 iey.sth1_1、iey.sth2_1、iey.sth3_1,默认参数分别为100、100、70。

【3DNR_N4 接口与MPI接口的对应关系】

  • n4shp_ctl_mean 对应于iey.shp_ctl_mean[17];
  • n4shp_ctl_dir 对应于iey.shp_ctl_dir[17];
  • n4sf_bld 对应于iey.sf_bld[17]。

ot_nr_v2_sfy

【说明】

3DNR空域滤波参数。

【定义】

typedef struct { 
    td_u8 sfs1, sfs2, sfs4, sfs5;
    td_u8 sbr1, sbr2, sbr4;
    td_u8 sft2, sft4;
    td_u8 strf3, strf4, strb3, strb4;
    td_u16 bld6;
    td_u16 sth1_0, sth2_0, sth3_0, sth1_1, sth2_1, sth3_1;
    td_u16 sfn0_0, sfn1_0, sfn2_0, sfn3_0, sfn0_1, sfn1_1, sfn2_1, sfn3_1;
    td_u16 sfn6_0, sfn6_1, sfn7_0, sfn7_1, sfn8_0, sfn8_1;
} ot_nr_v2_sfy;

【成员】

成员名称

描述

sfs1, sfs2, sfs4, sfs5

表示1~5号滤波器强度(N1级的3号4号滤波器强度均由sfs4控制,N2、N3级3号滤波器由strf3, strf4, strb3, strb4控制,5号滤波器仅在N2级有效)。

取值范围:[0, 255]

sbr1, sbr2, sbr4

表示1、2、4号滤波器的滤波的不对称强度。

取值范围:[0, 255]

sft2, sft4

表示2~4号滤波器附加强度。

取值范围:[0, 255]

strf3, strf4, strb3, strb4

表示3号、4号滤波器前景以及背景的滤波强度(仅N2、N3级生效)。

取值范围:[0, 31]

bld6

表示sfn6_0和sfn6_1滤波结果的混合比例(仅N1级生效)。

取值范围:[0,16]

sth1_0, sth2_0, sth3_0, sth1_1, sth2_1, sth3_1

运动前景和背景区域的保边阈值。根据阈值选择使用不同的滤波器,需要配合sfn使用。

取值范围:[0, 511]

sfn0_0, sfn1_0, sfn2_0, sfn3_0, sfn0_1, sfn1_1, sfn2_1, sfn3_1

根据sth保边阈值,不同图像特性选择不同滤波器的类型(滤波器号)。

取值范围:[0, 8]

sfn6_0, sfn6_1, sfn7_0, sfn7_1, sfn8_0, sfn8_1

表示6号、7号、8号滤波器的混合选择(滤波器号)。

取值范围:[0, 5]

【3DNR X接口与MPI接口的对应关系】

  • bld6仅在N1级有效。
  • sfn7_0、sfn7_1、sfn8_0、sfn8_1仅在N2、N3级有效。
  • sfs5仅在N2级有效。
  • N1级的nXsf1 对应于 sfy[0].sfs1、sfy[0].sbr1,默认参数分别为30、128;
  • N1级的nXsf2 对应于 sfy[0].sfs2、sfy[0].sft2、sfy[0].sbr2,默认参数分别为100、0、128;
  • N1级的nXsf4 对应于 sfy[0].sfs4、sfy[0].sft4、sfy[0].sbr4,默认参数分别为100、10、128;
  • N1级的nXsf6 对应于 sfy[0].sfn6_0、sfy[0].sfn6_1、sfy[0].bld6,默认参数分别为2、4、0;
  • N1级的nXsfn对应于 sfy[0].sfn0_0、sfy[0].sfn1_0、sfy[0].sfn2_0、sfy[0].sfn3_0,默认参数分别为2、2、2、2;
  • N1级的nXsth对应于 sfy[0].sth1_0、sfy[0].sth2_0、sfy[0].sth3_0,默认参数分别为40、100、100;
  • N1级的nX2sfn对应于 sfy[0].sfn0_1、sfy[0].sfn1_1、sfy[0].sfn2_1、sfy[0].sfn3_1,默认参数分别为2、2、2、4;
  • N1级的nX2sth对应于 sfy[0].sth1_1、sfy[0].sth2_1、sfy[0].sth3_1,默认参数分别为40、40、60。
  • N2级的nXsf1 对应于 sfy[1].sfs1、sfy[1].sbr1,默认参数分别为20、128;
  • N2级的nXsf2 对应于 sfy[1].sfs2、sfy[1].sft2、sfy[1].sbr2,默认参数分别为20、0、128;
  • N2级的nXsf3 对应于 sfy[1].strf3、sfy[1].strb3,默认参数分别为20、10;
  • N2级的nXsf4 对应于 sfy[1].sfs4、sfy[1].sft4、sfy[1].sbr4、sfy[1].strf4、sfy[1].strb4,默认参数分别为80、10、128、20、10;
  • N2级的nXsf5 对应于 sfy[1].sfs5,默认参数为55;
  • N2级的nXsf6 对应于 sfy[1].sfn6_0、sfy[1].sfn6_1,默认参数分别为5、3;
  • N2级的nXsf7 对应于sfy[1].sfn7_0、sfy[1].sfn7_1,默认参数分别为4、3;
  • N2级的nXsf8 对应于sfy[1].sfn8_0、sfy[1].sfn8_1,默认参数分别为4、3;
  • N2级的nXsfn对应于 sfy[1].sfn0_0、sfy[1].sfn1_0、sfy[1].sfn2_0、sfy[1].sfn3_0,默认参数分别为6、6、6、6;
  • N2级的nXsth对应于 sfy[1].sth1_0、sfy[1].sth2_0、sfy[1].sth3_0,默认参数分别为100、80、80;
  • N2级的nX2sfn对应于 sfy[1].sfn0_1、sfy[1].sfn1_1、sfy[1].sfn2_1、sfy[1].sfn3_1,默认参数分别为0、0、3、4;
  • N2级的nX2sth对应于 sfy[1].sth1_1、sfy[1].sth2_1、sfy[1].sth3_1,默认参数分别为0、0、40。
  • N3级的nXsf1 对应于 sfy[2].sfs1、sfy[2].sbr1,默认参数分别为20、128;
  • N3级的nXsf2 对应于 sfy[2].sfs2、sfy[2].sft2、sfy[2].sbr2,默认参数分别为40、0、128;
  • N3级的nXsf3 对应于 sfy[2].strf3、sfy[2].strb3,默认参数分别为20、10;
  • N3级的nXsf4 对应于 sfy[2].sfs4、sfy[2].sft4、sfy[2].sbr4、sfy[2].strf4、sfy[2].strb4,默认参数分别为100、0、128、20、10;
  • N3级的nXsf6 对应于 sfy[2].sfn6_0、sfy[2].sfn6_1,默认参数分别为5、3;
  • N3级的nXsf7 对应于sfy[2].sfn7_0、sfy[2].sfn7_1,默认参数分别为4、3;
  • N3级的nXsf8 对应于sfy[2].sfn8_0、sfy[2].sfn8_1,默认参数分别为4、3;
  • N3级的nXsfn对应于 sfy[2].sfn0_0、sfy[2].sfn1_0、sfy[2].sfn2_0、sfy[2].sfn3_0,默认参数分别为3、3、3、3;
  • N3级的nXsth对应于 sfy[2].sth1_0、sfy[2].sth2_0、sfy[2].sth3_0,默认参数分别为60、100、80;
  • N3级的nX2sfn对应于 sfy[2].sfn0_1、sfy[2].sfn1_1、sfy[2].sfn2_1、sfy[2].sfn3_1,默认参数分别为3、3、3、4;
  • N3级的nX2sth对应于 sfy[2].sth1_1、sfy[2].sth2_1、sfy[2].sth3_1,默认参数分别为40、60、60。

ot_nr_v2_mdy

【说明】

3DNR运动检测参数。

【定义】

typedef struct { 
    td_u16 math0, math1;
    td_u16 mate0, mate1;
    td_u8 mabw0, mabw1;
} ot_nr_v2_mdy;

【成员】

成员名称

描述

math0、math1

表示通路0,1中动静判决阈值。取值范围:[0, 999]

mate0、mate1

表示通路0,1中平坦区域运动检测指数。

取值范围:[0, 8]

mabw0、mabw1

表示通路0,1中运动检测内容窗口大小的选择。

取值范围: [5, 9]

【3DNR X接口与MPI接口的对应关系】

  • N1级的mXmath对应于 mdy[0].math0、mdy[0].math1,默认参数分别为200、200;
  • N1级的mXmate对应于 mdy[0].mate1,默认参数为2;
  • N1级的mXmabw对应于 mdy[0].mabw1,默认参数为9;
  • N2级的mXmath对应于 mdy[1].math0、mdy[1].math1,默认参数分别为200、200;
  • N2级的mXmate对应于 mdy[1].mate0、mdy[1].mate1,默认参数分别为2、2;
  • N2级的mXmabw对应于 mdy[1].mabw0、mdy[1].mabw1,默认参数分别为9、9。

ot_nr_v2_mdy0

【说明】

3DNR预时域处理参数。

【定义】

typedef struct { 
    td_u16 tfs;
    td_u16 math;
    td_u16 mathd;
    td_u8 mabw;
    td_u8 tdz;
    td_u8 tfs_mot[17];
} ot_nr_v2_mdy0;

【成员】

成员名称

描述

tfs

表示预时域处理的时域滤波强度。

取值范围:[0, 15]

math

表示预时域中动静判决静止区域修正参数。取值范围:[0, 255]

mathd

表示预时域中动静判决运动区域修正参数。取值范围:[0, 255]

mabw

表示预时域处理中运动检测内容窗口大小的选择。

取值范围: [0, 2]

tdz

表示运动检测死区。

取值范围:[0, 255]

tfs_mot[17]

调整N0级的时域强度曲线。

取值范围:[0, 16]

【3DNR X接口与MPI接口的对应关系】

  • N0级的pretfs对应于 mdy0.tfs,默认参数为8;
  • N0级的premath对应于 mdy0.math,默认参数为100;
  • N0级的premathd对应于 mdy0.mathd,默认参数为80;
  • N0级的premabw对应于 mdy0.mabw,默认参数为2;
  • N0级的pretdz对应于 mdy0.tdz,默认参数为32。
  • N0级的tfs_mot对应于mdy0.tfs_mot数组。

ot_nr_v2_tfy

【说明】

3DNR时域滤波参数。

【定义】

typedef struct { 
    td_u8 tfs0;
    td_u8 tfs1;
    td_u8 tfs2;
    td_u8 ref_en;
    td_u8 tss0;
    td_u8 tss1;
    td_u8 tss2;
    td_u8 _rb_;
    td_u8 tfr0[6];
    td_u8 tfr1[6];
    td_u8 tfs0_mot[17];
    td_u8 tfs1_mot[17];
    td_u8 tfs_mode;
} ot_nr_v2_tfy;

【成员】

成员名称

描述

tfs0、tfs1、tfs2

不同通路中时域滤波绝对强度。

取值范围:[0, 15]

tss0、tss1、tss2

不同通路中时域中混入空域的比例。

取值范围:[0, 31]

tfr0[6]、tfr1[6]

通路0,1中静止区域时域滤波的相对强度。

取值范围:[0, 31]

tfs0_mot[17]、tfs1_mot[17]

调整通路0,1中运动与静止区域的时域强度曲线。

取值范围:[0, 16]

tfs_mode

静止区域计算的模式选择。

0:自动选择通路1和通路2的混合结果作为静止区域。

1:仅选择通路1的结果作为静止区域,此时tfs2与tss2失效。

ref_en

参考帧开关。

0:关闭

1:打开

_rb_

保留。

【3DNR X接口与MPI接口的对应关系】

  • ref对应于tfy[1].ref_en,用于控制N0级的时域开关和总的时域开关,默认参数为1。
  • tfs_mode对应于tfy[0].tfs_mode,用于控制N1级与N2级静止区域计算的模式,默认参数为0。
  • N1级的nXtfs对应于tfy[0].tfs0、tfy[0].tfs1、tfy[0].tfs2,默认参数分别为4、6、6;
  • N1级的nXtss对应于tfy[0].tss0、tfy[0].tss1、tfy[0].tss2,默认参数分别为31、0、0;
  • N1级的nXtfr0对应于tfy[0].tfr0[6],默认参数分别为16、8、16、8、0、0;
  • N1级的nXtfr1对应于tfy[0].tfr1[6],默认参数分别为16、8、16、8、0、0;
  • N2级的nXtfs对应于tfy[1].tfs0、tfy[1].tfs1、tfy[1].tfs2,默认参数分别为0、10、10;
  • N2级的nXtss对应于tfy[1].tss0、tfy[1].tss1、tfy[1].tss2,默认参数分别为31、0、0;
  • N2级的nXtfr0对应于tfy[1].tfr0[6],默认参数分别为16、8、16、8、0、0;
  • N2级的nXtfr1对应于tfy[1].tfr1[6],默认参数分别为16、8、16、8、0、0。

【3DNR_N1接口与MPI接口的对应关系】

  • n1tfs0_mot对应于tfy[0].tfs0_mot[17];
  • n1tfs1_mot对应于tfy[0].tfs1_mot[17]。

【3DNR_N2接口与MPI接口的对应关系】

  • n2tfs0_mot对应于tfy[1].tfs0_mot[17];
  • n2tfs1_mot对应于tfy[1].tfs1_mot[17]。

ot_nr_v2_sfy_lut

【说明】

3DNR空域滤波曲线参数。

【定义】

typedef struct { 
    td_u8 sf_var_f[17], sf_var_b[17];
    td_u8 sf_dir_f[17], sf_dir_b[17];
    td_u8 sf_bri_f[17], sf_bri_b[17];
    td_u8 sf5_var_f[17], sf5_var_b[17];
    td_u8 sf5_dir_f[17], sf5_dir_b[17];
    td_u8 sf5_bri_f[17], sf5_bri_b[17];
    td_u8 sf5_sad_f[17];
    td_u8 sf_cor[17], sf5_cor[17];
    td_u8 sf_mot[17], sf5_mot[17];
    td_u8 var_by_bri[17];
    td_u8 sf_bld[17];
} ot_nr_v2_sfy_lut;

【成员】

成员名称

描述

sf_var_f[17], sf_var_b[17],

sf5_var_f[17], sf5_var_b[17]

表示3~5号滤波器根据图像边缘强度调整滤波强度的曲线(f表示前景,b表示背景。曲线仅用于N2、N3级)。3号、4号滤波器共用sf_var_f和sf_var_b。

取值范围:[0, 63]

sf_dir_f[17], sf_dir_b[17],

sf5_dir_f[17], sf5_dir_b[17]

表示3~5号滤波器根据边缘方向性调整滤波强度的曲线(f表示前景,b表示背景。曲线仅用于N2、N3级)。3号、4号滤波器共用sf_dir_f和sf_dir_b。

取值范围:[0, 63]

sf_bri_f[17], sf_bri_b[17],

sf5_bri_f[17], sf5_bri_b[17]

表示3~5号滤波器根据亮度调整滤波强度的曲线(f表示前景,b表示背景。曲线仅用于N2、N3级)。3号、4号滤波器共用sf_bri_f和sf_bri_b。

取值范围:[0, 63]

sf5_sad_f[17]

表示5号滤波器根据运动图像边缘强度调整滤波强度的曲线(曲线仅用于前景及N2级)。

取值范围:[0, 63]

sf_cor[17],

sf5_cor[17]

表示3~5号滤波结果回叠原信号的强度。(3、4号滤波器仅回叠前景部分,5号滤波器回叠全图)。

取值范围:[0, 63]。3号、4号滤波器共用sf_cor。

sf_mot[17],

sf5_mot[17]

表示3~5号滤波器前景背景区域划分曲线。3号、4号滤波器共用sf_mot。

取值范围:[0, 16]

var_by_bri[17]

用于控制[nXsth/nX2sth]接口最后一个值sth3的区域选择。

取值范围:[0, 63]

sf_bld [17]

表示6号、7号、8号滤波器的混合比例。

取值范围:[0, 63]

【3DNR_N2 接口与MPI接口的对应关系】

  • n2sf_var_f 对应于luty[0].sf_var_f [17];
  • n2sf_var_b 对应于luty[0].sf_var_b [17];
  • n2sf_bri_f 对应于luty[0].sf_bri_f [17];
  • n2sf_bri_b 对应于luty[0].sf_bri_b [17];
  • n2sf_dir_f 对应于luty[0].sf_dir_f [17];
  • n2sf_dir_b 对应于luty[0].sf_dir_b [17];
  • n2sf_cor对应于luty[0].sf_cor [17];
  • n2sf_mot对应于luty[0].sf_mot [17];
  • n2sf5_var_f 对应于luty[0].sf5_var_f [17];
  • n2sf5_var_b 对应于luty[0].sf5_var_b [17];
  • n2sf5_bri_f 对应于luty[0].sf5_bri_f [17];
  • n2sf5_bri_b 对应于luty[0].sf5_bri_b [17];
  • n2sf5_dir_f 对应于luty[0].sf5_dir_f [17];
  • n2sf5_dir_b 对应于luty[0].sf5_dir_b [17];
  • n2sf5_sad_f 对应于luty[0].sf5_sad_f [17];
  • n2sf5_cor对应于luty[0].sf5_cor [17];
  • n2sf5_mot对应于luty[0].sf5_mot [17];
  • n2var_by_bri 对应于luty[0].var_by_bri[17];
  • n2sf_bld 对应于luty[0].sf_bld[17]。

【3DNR_N3 接口与MPI接口的对应关系】

  • n3sf_var_f 对应于luty[1].sf_var_f [17];
  • n3sf_var_b 对应于luty[1].sf_var_b [17];
  • n3sf_bri_f 对应于luty[1].sf_bri_f [17];
  • n3sf_bri_b 对应于luty[1].sf_bri_b [17];
  • n3sf_dir_f 对应于luty[1].sf_dir_f [17];
  • n3sf_dir_b 对应于luty[1].sf_dir_b [17];
  • n3sf_cor对应于luty[1].sf_cor [17];
  • n3sf_mot对应于luty[1].sf_mot [17];
  • n3var_by_bri 对应于luty[1].var_by_bri[17];
  • n3sf_bld 对应于luty[1].sf_bld[17]。

ot_nr_v2_nrc0

【说明】

3DNR视频色度滤波C0级参数。

【定义】

typedef struct { 
    td_u8 trc;
    td_u8 sfc;
    td_u8 tfc;
    td_u8 tfs;
    td_u8 tfs_mot[17];
} ot_nr_v2_nrc0;

【成员】

成员名称

描述

sfc

空域强度参数。

取值范围:[0, 255]

trc

用于抑制运动区域的色彩侵染现象。

取值范围:[0, 255]

tfc

表示色度时域滤波强度。

取值范围:[0, 63]

tfs

表示色度时域滤波强度。

取值范围:[0, 15]

tfs_mot[17]

表示时域滤波中使用到运动检测曲线。

取值范围:[0, 16]

【3DNR X接口与MPI接口的对应关系】

  • sfc 对应于nrc0.sfc,默认参数为80;
  • tfc对应于nrc0.tfc,默认参数为20;
  • trc 对应于 nrc0.trc,默认参数为100;
  • nCtfs对应于nrc0.tfs,默认参数为15。

【3DNR_nc接口与MPI接口的对应关系】

nc0tfs_mot对应于nrc0.tfs_mot[17]。

ot_nr_v2_nrc1

【说明】

3DNR视频色度滤波C1级参数。

【定义】

typedef struct { 
    td_u8 pre_sfs;
    td_u8 sfs1;
    td_u8 sfs2_coarse;
    td_u8 sfs2_coarse_f;
    td_u8 sfs2_fine_f;
    td_u8 sfs2_fine_b;
    td_u8 sfs1_mot[17];
    td_u8 sfs2_mot[16];
    td_u16 sfs2_sat[20];
    td_u8 sfs2_mode;
} ot_nr_v2_nrc1;

【成员】

成员名称

描述

pre_sfs

表示色度0号空域滤波去噪强度。

取值范围:[0, 16]

sfs1

表示色度1号空域滤波去噪强度。

取值范围:[0, 255]

sfs2_coarse

表示2号空域滤波器粗调整体强度。

取值范围:[0, 31]

sfs2_coarse_f

表示2号空域滤波器粗调前景强度。在sfs2_coarse的基础上可以进一步调整前景的去噪强度。

取值范围:[0, 31]

sfs2_fine_f

表示2号空域滤波器细调前景强度。

取值范围:[0, 16]

sfs2_fine_b

表示2号空域滤波器细调背景强度。

取值范围:[0, 16]

sfs1_mot[17]

表示色度空域去噪中1号滤波器前景背景区域去噪强度曲线。

取值范围:[0, 16]

sfs2_mot[16]

表示色度空域去噪中2号滤波器不同区域选择前景去噪强度(sfs2_fine_f)还是背景去噪强度(sfs2_fine_b)的曲线,需配合sfs2_fine_f以及sfs2_fine_b使用。

取值范围:[0, 16]

sfs2_sat[20]

表示2号滤波器根据饱和度调整去噪强度的曲线。

取值范围:[0, 1023]

sfs2_mode

表示2号滤波器强度调整的模式选择。

0:使用sfs2_coarse进行2号滤波器的强度调节,此时sfs2_sat[20]失效。

1:使用sfs2_sat[20]进行2号滤波器的强度调节,此时sfs2_coarse失效。

【3DNR X接口与MPI接口的对应关系】

  • nc1_pre_sfs对应于nrc1.pre_sfs,默认参数为16;
  • nCsfs1对应于nrc1.sfs1,默认参数为10;
  • sfs2_c_f对应于nrc1.sfs2_coarse_f,默认参数为16;
  • sfs2_c对应于nrc1.sfs2_coarse,默认参数为16;
  • sfs2_fine_f对应于nrc1.sfs2_fine_f,默认参数为16;
  • sfs2_fine_b对应于nrc1.sfs2_fine_b,默认参数为16。
  • sfs2_mode对应于nrc1.sfs2_mode,默认参数为0。

【3DNR_nc接口与MPI接口的对应关系】

nc1sfs1_mot对应于nrc1.sfs1_mot[17];

nc1sfs2_mot对应于nrc1.sfs2_mot[16];

nc1sfs2_sat对应于nrc1.sfs2_sat[20]。

ot_nr_v2_pp

【说明】

3DNR视频后处理参数。

【定义】

typedef struct { 
    td_u16 gamma_lut[33];
    td_u8 gamma_en;
    td_u8 ca_lut[33];
    td_u8 ca_en;
} ot_nr_v2_pp;

【成员】

成员名称

描述

gamma_en

表示后处理gamma开关。

取值范围:[0, 1]

gamma_lut[33]

表示后处理gamma曲线。

取值范围:[0, 255]

ca_en

表示后处理ca开关。

取值范围:[0, 1]

ca_lut[33]

表示后处理ca曲线。

取值范围:[0, 63]

【3DNR X接口与MPI接口的对应关系】

  • gamma_en对应于pp.gamma_en,默认参数为0;
  • ca_en对应于pp.ca_en,默认参数为0;

【3DNR NC接口与MPI接口的对应关系】

  • post_gamma_lut对应于pp.gamma_lut数组;
  • post_ca_lut对应于pp.ca_lut[33]。

默认参数

Hi3516CV610 YUV 3DNR参数的接口默认参数,如图1所示。

图 1 3DNR参数的接口参数界面

说明:

  • nX**,mX**参数里面的X的均指级数,代指第n级。
  • [en] 使能该级去噪功能,0时表示此级功能关闭,1则表示此级功能生效。
  • 色度分为NC0和NC1两级,由 nCen开关控制。
  • 如果亮度有剧烈变化,3dnr时域可能出现重新收敛的情况。

3DNR的亮度去噪(NRy)由五级串联去噪功能组成,按如下分为5级,编号为N0,N1,N2,N3,N4,不同级之间的同样编号、类型滤波器效果由于实现差异、串联效应等,导致不同级结果并不完全一样。色彩滤波器独立于亮度滤波器,分为两级NC0和NC1。在亮度去噪和色度去噪操作后,还可以进行后处理(Post Processing(PP)),即亮度调整(gamma)和饱和度调整(Ca)。如图2所示。

  • N0级为纯时域滤波器。
  • N1,N2可以选择时域滤波和空域滤波。
  • N3为纯空域滤波器(带时域辅助)。
  • N4为空域增强模块(带时域辅助)。

图 2 3DNR流程图

【3DNR约束说明】

参数选择

Norm模式

Advance模式

ref_en=0

亮度色度时域均无效;亮度空域均有效。

不支持Advance 模式。

ref_en=1

亮度色度空域均有效;亮度N2级时域无效,空域有效(若需要看到明显空域效果,可以将N2级tss0调大),N1、N3、N4级空域均有效;

色度sfs2无效。

亮度、色度时域空域均有效。

空域滤波器参数说明

N1~N3级包含0~5号基础空域滤波器,即nXsf0、nXsf1、nXsf2、nXsf3、nXsf4、nXsf5。不同的基础滤波器有不同的特性,nXsf1和nXsf2主要针对冲击噪点的去除,但保边能力较弱。而nXsf3~ nXsf5有较强的保边能力。可根据不同的图像特性灵活使用。(注:nX**参数里面的X均指级数,代指第n级。)

  • [nXsf0]零号滤波器为该级输入的原始像素。
  • [nXsf1][nXsf2]分别用于调试1号,2号滤波器。

    1号和2号滤波器[nXsf1][nXsf2]的特点对于图像强边缘的去噪能力较强,可以去除冲击噪点,但是对于平坦区域的去噪能力较弱(相对于nXsf3~ nXsf5滤波器,平坦区域的颗粒感强一些),1,2号滤波器效果类似,但2号的滤波强度更强一些。

  • 每级的[nXsf1] 有两个参数, 依次为sfs和sbr, [nXsf2]和[nXsf4] 接口有三个参数, 依次为sfs、sft和sbr,具体如图1和图2所示。

    图 1 nXsf1参数示例图

    图 2 nXsf2和nXsf4参数示例图

    • 参数sfs用于调节滤波器强度,设置范围均为[0, 255]。参数sft为滤波强度的补充。通常只需要调节sfs(sft设置为0);然而在sfs设定较大的时候,仍需要加强去噪强度,可调节sft作为补充,sft越大,滤波器越接近均值滤波器。
    • 参数sbr用于调试“亮暗不对称”去噪模式:设置为128时表示亮暗对称去噪模式(默认模式);设置为小于128时倾向去亮噪声,设置为大于128时倾向去暗噪声。该参数偏离128值越大,表示不对称强度越大。取值范围:[0, 255]。
  • [nXsf3] 用于调试3号滤波器。有两个参数可调,分别用于设置前景和背景的强度。取值范围:[0, 31]。

    图 3 nXsf3调试参数示例图

    • 3号滤波器在N2和N3级生效。
    • 3号滤波器效果保边性能强,可以保护较弱的边缘不被模糊,但是对于冲击噪声的抑制能力相对较弱。
    • 前景和背景的区分由nXsf_mot决定。
  • [nXsf4] 用于调试4号滤波器的滤波强度,前三个接口取值范围:[0, 255],后两个接口取值范围:[0, 31]。该处仅为N1~N3级的[nXsf4],在N4级的[nXsf4]参数将在•[nXsf1][nXsf2][nXsf3]...处详细介绍。

    • 4号滤波器在N1~ N3级生效。
    • [nXsf4] 接口前三个参数, 依次为sfs、sft和sbr。参数的意义可以参考[nXsf2]滤波器。
    • [nXsf4] 接口后两个参数用于设置前景和背景的强度,在N2和N3级生效。
    • 4号滤波器的滤波效果类似3号滤波器。相比3号滤波器,噪声去除强度较强,但保边效果相对弱。
  • [nXsf5] 用于调试5号滤波器的滤波强度,取值范围:[0, 255]。

    图 4 nXsf5调试参数示例图

    • 5号滤波器仅在N2级生效。
    • 相对与其他基础滤波器,5号滤波器的滤波去噪强度最强,可以有效去除平坦区域噪声,同时保护强边缘,但是比较容易丢失弱纹理细节。

    如图5所示(1号2号滤波器对比效果类似,本文档不再展示),该效果图仅为展示不同滤波器对效果的影响,并非最终的效果。

    图 5 常用的基础滤波器效果对比图

    • 从图5可以看出,相较于2号滤波器,3、4、5号滤波器的保边效果比较明显。对大边缘保边效果最明显的是5号滤波器,但是该滤波器也可能会保留一些非边缘噪声。
    • 各种基础滤波器具有不同特性,因此,可以通过混合滤波器(6、7、8号滤波器)选择不同滤波器进行混合,实现不同区域使用不同滤波器的目的。
  • [nXsf6]该接口配置6号滤波器结果,为两组滤波器的混合结果。

    • N1级该接口的前两个参数(sfn6_0和sfn6_1)分别表示混合滤波器号码,取值范围:[0, 5];第三个参数(bld6)表示混合比例,取值范围:[0, 16], 混合权重越大,越倾向于第二个参数(sfn6_1)选择的滤波器结果。N1级中的3号滤波器的强度由[nXsf4]决定。5号滤波器为输入。

      图 6 N1级sf6参数示例图

      如图6所示:当前N1级sf6参数示例为2,4,0,其中2,4表示sfn6_0选择2号滤波器,sfn6_1选择4号滤波器,bld6为0,表示sf6混合滤波器倾向于sfn6_0,也即2号滤波器;

    • N2级和N3该接口的两个参数(sfn6_0和sfn6_1)表示混合滤波器号码,取值范围:[0, 5];混合权重分别由表格[n2sf_bld]和[n3sf_bld]决定,混合指标为图像边缘强度。

  • [nXsf7] [nXsf8]该接口配置7号和8号滤波器选择,为两组滤波器的混合结果。

    图 7 nXsf7和nXsf8参数调试示例截图

    • 在N2、N3级中,该两组接口的两个参数(sfn7_0和sfn7_1以及sfn8_0和sfn8_1)表示混合滤波器号码,取值范围:[0, 5];混合权重分别由表格[n2sf_bld], [n3sf_bld]决定。7号滤波器的混合指标是边缘方向性,数值越大说明该区域方向性越强。8号滤波器的混合指标也是图像边缘强度。选择0号滤波器结果时,则为输入N2/N3级的原始像素。
    • 在N4级,该接口的两个参数表示混合滤波器号码,取值范围:[0, 4];混合权重分别由表格[n4sf_bld]决定。7号滤波器混合指标为边缘方向性,8号滤波器混合指标为亮度。选择0号滤波器结果时,则为输入N4级的原始像素。
  • [nXsf_bld] 该表格用于配置N2和N3级中6,7或者8号混合滤波器的混合比例。

    • N2、N3级中,横坐标的定义参考6,7或者8号的图像指标(三个混合滤波器的混合指标分别为图像边缘强度,边缘方向性,局部相似度)。纵坐标的值表示混合比例,值越大,6,7或者8号接口中的第二组滤波器所占的比例就越高。

      以N2级n2sf_bld举例,当前曲线形状调试如图8所示:在横坐标前12个点,纵坐标数值较大,当前第二组滤波器所占的比较较高,在横坐标后12个点,纵坐标数值接近为0,第一组滤波器所占的比例就高。

      图 8 n2sf_bld调试示例图

    • N4级中,横坐标为7或者8号的图像指标(两个混合滤波器的混合指标分别为边缘方向性,亮度)。纵坐标的值表示混合比例,值越大,7或者8号接口中的第二组滤波器所占的比例就越高。

    表 1 6号、7号、8号滤波器具体用于混合的指标(横坐标)

    混合指标

    N1

    N2

    N3

    N4

    sf6

    线性(bld6)

    边缘强度

    边缘强度

    无

    sf7

    无

    边缘方向性

    边缘方向性

    边缘方向性

    sf8

    无

    边缘强度(相比6号边缘的响应更强)

    边缘强度(和6号表现一致)

    亮度

  • [nXsfn/nX2sfn] [nXsth/nX2sth]:[nXsfn/ nX2sfn]表示不同图像特征区域选择不同滤波器的类型,取值[0,8],与 [nXsth/nX2sth] 接口配合使用,nXsth/nX2sth则表示不同区域的特征区分阈值的上下限,取值为[0,511]。N0~N2级中的nXsfn, nXsth和nX2sfn, nX2sth分别对应前景和背景的滤波器和阈值的选择。注意,背景的滤波依赖于时域的开启,若使用纯空域模式,nX2sfn, nX2sth将不生效,强度也同时由[nXtss]接口决定,该接口取值越大,背景滤波强度越大。

    图 9 nXsfn/nX2sfn和nXsth/nX2sth调试参数示例

    nXsfn /nXsth 参数分别为 sfn0、sfn1、sfn2、sfn3和sth1、sth2、sth3,按照以下方式混合:

    • 第三个特征小于sth3 时选择sfn3的结果;
    • 大于等于sth3且第二个特征小于sth2时则选择sfn2结果;
    • 大于等于sth2且第一个特征小于sth1时则选择sfn1结果;
    • 第一个特征大于sth1选择sfn0的结果。

    此方法可实现在不同区域进行不同处理效果。sth1、sth2、sth3分别使用不同滤波器的特征阈值,度量存在差异,不能直接进行对比。

    如图10所示,sth1区域对边缘划分较细,但容易出现断线;sth2区域边缘划分相对sth1更粗更实;sth3边缘划分最粗最实。

    图 10 sth1、sth2、sth3指标示意图(划分指标均为120)

    图 11 N1级nXsfn调试参数示例

    如图11所示,从右往左描述如下:

    • 第三个特征小于50时选择0号滤波器结果;
    • 大于等于50且第二个特征小于100时则选择2号滤波器结果;
    • 大于等于100且第一个特征小于40时则选择2号滤波器结果;
    • 第一个特征大于40选择2滤波器结果。

    注意:N4级的sfn和sth依赖N3级,关闭N3级可能会导致N4级sth参数调试失效。因此在使用N4级时,需要将N3级打开。若需要关闭N3级去噪,可将滤波器强度设置为0或者将sfn设置为0。

N4主要用于图像增强。包含0~5号分频增强器,即nXsf0、nXsf1、nXsf2、nXsf3、nXsf4、nXsf5。其中nXsf0、nXsf5为输入。

  • [nXsf1] [nXsf2] [nXsf3] [nXsf4] 该接口在N4级别用于调试增强器,具体如图12所示。

    图 12 nXsf1/nXsf2/nXsf3/nXsf4参数示例图

    • 该接口的两个参数分别用于不同图像特性的增强力度,第一个参数用于增强图像的中频纹理,第二个参数用于增强图像的高频细节。
    • [nXsf1] [nXsf2]可以根据表格[n4shp_ctl_mean]和[n4shp_ctl_dir]表示不同区域增强强度控制,主要用于抑制噪声不被增强。
  • [nXsht] 该接口仅作用于N4级,用于抑制图像中的出现的黑白边。前两个参数(o_sht_f、u_sht_f)分别作用于运动前景的白边和黑边,而后两个参数(o_sht_b、u_sht_b)作用于背景的白边和黑边。取值范围:[0, 255]。数值越小,抑制强度越强,即增强越弱。设置为0时,即不增强。

曲线说明:

  • [nXsf_var_f] [nXsf_var_b] 两个表格的纵坐标分别用于配置3、4号滤波器的前景和背景的强度增益(32为增益1倍,63约为2倍;注:设置0时,则滤波器强度为0),表格的横坐标表示图像边缘强度的指标。
  • [nXsf_bri_f] [nXsf_bri_b] 两个表格的纵坐标分别用于配置3、4号滤波器的前景和背景的强度增益(32为增益1倍,63约为2倍;注:设置0时,则滤波器强度为0),表格的横坐标表示图像亮度的指标。
  • [nXsf_dir_f] [nXsf_dir_b] 两个表格的纵坐标分别用于配置3、4号滤波器的前景和背景的强度增益(32为增益1倍,63约为2倍;注:设置0时,则滤波器强度为0),表格的横坐标表示图像边缘方向性的指标。从图2-2图像指标对比可以看出在一些具有一定方向性的弱边缘的地方,图像边缘方向性较图像边缘强度表现会更好。
  • [nXsf_cor]该表格的纵坐标用于配置回叠原始信号的强度,表格的横坐标表示图像边缘方向性的指标。注意3、4号滤波器的回叠效果仅作用于前景区域。
  • [nXsf5_var_f] [nXsf5_var_b] [nXsf5_bri_f] [nXsf5_bri_b] [nXsf5_dir_f] [nXsf5_dir_b] 表格用于配置5号滤波器的强度增益(32为增益1倍,63约为2倍;注:设置0时,则滤波器强度为0)。表格的意义可参考3、4号滤波器表格的配置。
  • [nXsf5_sad_f] 该表格的纵坐标用于配置5号滤波器的前景的去噪强度增益,表格的横坐标表示运动图像边缘强度的指标。

    图 13 图像指标对比图

  • [nXsf5_cor] 该表格的纵坐标用于配置回叠原始信号的强度,表格的横坐标表示图像边缘方向性的指标。5号滤波器的回叠效果作用于全图。

  • [nXsf_mot] 表格横坐标表示运动指数,数值越大运动可能性越大。纵坐标用于配置3~4号滤波器前景和背景的混合比例。值越大越倾向于使用背景的滤波器强度,比如[nXsf_var_b];反之,越倾向于前景的滤波器强度,比如[nXsf_var_f]。
  • [nXsf5_mot] 表格横坐标表示运动指数,数值越大运动可能性越大。纵坐标用于配置5号滤波器前景和背景的混合比例。值越大越倾向于使用背景的滤波器强度,比如[nXsf5_var_b];反之,越倾向于前景的滤波器强度,比如[nXsf5_var_f]。
  • [nXvar_by_bri]该表格配合[nXsfn/nX2sfn] [nXsth/nX2sth]接口使用,表格横坐标表示亮度指标,表格的竖坐标用于控制[nXsth/nX2sth]接口最后一个值sth3的区域选择,竖坐标的值配置为32,则保持原始sth3的区域不变。配置的值越大,则更少的区域选择sfn3的结果,反之更多区域选择sfn3的结果。
  • [n4shp_ctl_mean]该表格的横坐标表示检测图像坏点的可能性(数值最大不说明一定是坏点),纵坐标表示增强强度增益。一般来说该曲线横坐标的值越大,说明是坏点的可能性越大,则需要增强的强度越小(即纵坐标越小),防止增强坏点。
  • [n4shp_ctl_dir]该表格的横坐标表示图像边缘方向性,纵坐标表示增强强度增益。一般来说方向性强的地方,需要增强强度越大(即纵坐标越大),为了增强边缘区域。

时域接口参数说明

每一级均包含了时域的信息用于图像处理。N1、N2级的时域可采用分层处理结构(第0层、第1层和第2层),其中每个时域的接口都有三套分别对应于三层(如果接口有多个参数,接口带上后缀0,1,2来区分层级)。

  • [ref]:该接口表示参考帧开关。ref 为时域参考的总开关。

    • 设置为0时参考帧不载入,时域滤波无效;
    • 设置为1时,时域滤波参数才能生效。
  • [pretfs]:N0级时域滤波强度。利用premath和premathd动静判断信息,在N1级运行前进行时域滤波。取值范围:[0, 15]。

    注意:tfs1、tfs2和pretfs不宜同时设置过大,否则可能导致背景噪声无法有效去除的效果。math0调较小时,tfs0不宜设置过大,否则可能出现拖尾现象。

    如图1所示,该效果图仅用于展示不同Pretfs对效果的影响。并非最终的结果。

    图 1 Pretfs调整效果对比图

  • [n0tfs_mot]:N0级精细控制时域强度的曲线(与pretfs配合使用),曲线横坐标为运动指数(数值越大,运动概率越高),纵坐标为时域强度。该曲线有助于调整运动后的收敛速度,可用于优化运动拖尾现象。

    图 2 n0tfs_mot调试示例图

  • [nXtfs0_mot/nXtfs1_mot]:N1和N2级精细控制运动和静止不同区域的时域强度的曲线(与N1级和N2级的tfs配合使用,nXtfs0_mot与nXtfs1_mot分别对应tfs0与tfs1)。曲线横坐标为运动指数(数值越大,运动概率越高),纵坐标为时域强度。该曲线有助于优化运动后收敛速度。以N1级为例,具体参考图3和图4。

    图 3 n1tfs0_mot调试示例图

    图 4 n1tfs1_mot调试示例图

  • [premath] [premathd]:N0级动静判决修正。取值范围[0,255]。premath主要修正静止区域,数值越大,背景区域越安静,判定为静止区域越多,但是也可能同时引起运动边缘区域的缺失;premathd主要修正运动区域,数值越小,判定为运动区域越多。建议premath设置值为BNR中的md_static_ratio的4倍,premathd设置为BNR中的md_motion_ratio的4倍。

    图 5 室内人物运动图像

    图 6 室内人物运动图像对应的运动MAP信息

    BNR中md_static_ratio、md_motion_ratio、md_static_fine_strength参数会影响BNR的运动MAP信息;需要注意:BNR运动MAP信息的显示需要在业务通路配置为离线模式。

  • [premabw]:N0级运动检测内容窗口大小的选择,值越大选用的窗口越大。取值范围:[0, 2]

  • [pretdz]:N0级静止和运动区域精细比例调节,值越大,判断为静止区域越多。取值范围:[0, 255]

    须知:

    pre系列参数与tss2、tfs2配合使用。

  • [mXmath]:动静判决阈值。其值越大,被运动检测单元判定为“静止”的像素越多,因而被实施时域滤波的像素也越多,画面当然也越安静,一般情况下,将nXtfs调最大,将mXmath调到刚好抑制雨点现象,这时再适当调低nXtfs,直到没有雨点;N1级采用分层应用,系统会先根据该接口的第二个值划分出图像的静止区域,作为图像的背景层(即绝对静止区域)。剩余图像作为前景层,将会根据第一个参数继续划分出相对静止区域和运动区域,做分别处理。math0主要为了分出前景区域。math1主要为了分出背景区域。

    图 7 mXmath区域划分示意图

    图7所示,mXmath进行了两级的运动区分,即通过两个math将图像分成三部分。其中math1将图像分成前景和背景,math0再进一步将前景区域(红色框内)分为运动可能性更大的区域(黄色圆内)以及运动过度区域(红色框内,黄色圆外)。

    图 8 mXmath调试参数示例

    图 9 mXmath调试合理时室外池塘效果图

    图 10 mXmath调小示例图

    图 11 mXmath调小时对应室外池塘效果图

    从图9和图11对比可以发现,mXmath调试较小,容易导致背景区域噪声压制不住和部分背景区域判断成运动选择空域导致画面模糊的问题。

    须知:

    当premath生效的时候,N1级和N2级选择的背景区域由math1和premath共同决定。当math1判断的背景区域比premath的背景区域大时,则以math1判断的背景区域为准,否则由premath决定。(注:如果math1调0时,背景区域则全部由premath计算得到,时域和空域滤波强度由tss2、tfs2控制)。

  • [mXmate]:表示平坦区域运动检测指数,其值越大,被平坦运动检测单元判定为“静止”的像素越多,因而被实施时域滤波的像素也越多,画面当然也越安静;一般需要先将math调试到合适,再微调mate,以平衡雨点噪声和运动拖尾为合适,其取值范围为[0, 8]。

  • [mXmabw]:运动检测内容窗口大小的选择,主要配合math使用,值越大,窗口越大。当在低照度下math调大还不能抑制雨点,建议将mabw调试到7以上,从而可以减轻math抑制雨点的负担,降低时域滤波的副作用。其取值范围为[5, 9]。
  • [tfs_mode]:静止区域的计算模式的选择。当该值设置为0时,静止区域为premath和math1共同决定,此时可参照[mXmath]须知对静止区域调整。当该值设置为1时,静止区域仅由math1决定,此时tfs2与tss2失效。
  • [nXtss]:值越大静止区域越光滑,但静止区域图像内容可能越模糊。取值范围为[0,31]。该参数的两个值表示分别作用不同区域。

    • 如果采取分区处理模式,可以适当调大第一个参数,作用于在运动相对不明显的区域防止前景的虚化问题。第二个参数作用于背景。
    • 当tss0表示math0决定的前景区域的空域强度,tss1表示math1决定的背景区域的空域强度,tss2表示premath决定的背景区域的空域强度。
    • 在NORM模式中,N2级仅支持空域滤波,空域滤波整体强度由tss0控制。
  • [nXtfs]:时域滤波强度,当前滤波区域使用时域时,此参数表示时域作用强度,值越大强度越大。该接口的取值范围是[0, 15]。tfs0表示math0决定的前景区域的时域强度,tfs1表示math1决定的背景区域的时域强度,tfs2表示premath决定的背景区域的时域强度。(math1和premath的背景选择可以参考mXmath接口)。注意:前景的tfs0和math0不宜过强,容易产生拖尾或者毛刺等副作用。

    建议tss1与tss2设置一样的数值,tfs1和tfs2设置一样的数值,可较好地调节背景强度。

    图 12 nXtfs调试合理时参数示例

    图 13 nXtfs调试合理时对应室外池塘效果图

    图 14 nXtfs调小时参数示例图

    图 15 nXtfs调小时对应的室外池塘效果图

    从图13和图15对比可以发现,nXtfs调试较小,容易导致静止画面噪声跳动问题;

  • [nXtfr0/nXtfr1]:拖尾、去噪平衡控制参数。总共6种处理方式,每个值越小表示可以控制拖尾的能力越强,但去噪能力减弱。结果取6种方式中去噪效果最明显的一种。取值范围均为[0,31]。当前nXtfr0/nXtfr1一般采用推荐的默认参数,画面出现运动拖尾,优先调试tfs和math。

    图 16 nXtfr0/nXtfr1调试参数示例

色度去噪参数说明

色度去噪分为两级,NRc0和NRc1,开关为nCen。NRc0为时空域处理;NRc1为空域处理。

  • [nC0mode]:该接口表示NRc0的模式选择。当nC0mode为0时,NRc0仅使用时域去噪(NRc0中仅有tfs参数生效)。当nC0mode为1时,NRc0使用旧接口(NRc0中的tfs、sfc、tfc、trc均生效),但此时NRc1中空域滤波器sfs2无效。
  • [nCtfs]:该接口为NRc0级的时域去噪强度。取值范围:[0, 15]

    图 1 nCtfs=4调试效果图

    图 2 nCtfs=15调试效果图

    从图1和图2可以发现nCtfs调试越大,去色噪能力越强,同时颜色也会有一定的损失。

  • [sfc]:表示3DNR去色噪的第0级的空域滤波的混合强度,取值范围:[0, 255]。调试越大,画面去低频的色噪能力越强,对整体画面的颜色损失就越大。

  • [tfc]:表示3DNR去色噪的时域滤波混合强度,取值范围:[0, 63]。该参数调试去色噪强度(如图3所示),调试过程中,需权衡色噪的去除程度与色彩拖尾和画面色调变化。

    • 在[0, 16]时,随着tfc增大,去色噪越强;
    • 在[17, 48]时,随着tfc增大,去色噪会变弱;
    • 在[49, 63]时,随着tfc增大,去色噪越强。

    图 3 TFC参数控制去色噪强度图

  • [trc]:时域强度参数,用于抑制运动区域的色噪,但调大容易发生色彩浸染现象。

  • [nc0tfs_mot]:该接口为控制时域处理的前景背景区域去噪强度,横坐标表示运动强度(强度为0则为静止区域),纵坐标表示去噪强度。一般情况下,时域处理主要作用于背景区域,因此曲线设置一般为左边高右边低,否则有可能会出现颜色拖尾的现象。
  • [nCen]:该接口表示色度去噪的总开关。
  • [nc1_pre_sfs]:该接口为NRc1级的预滤波器去噪强度,去噪处理作用于全局。取值范围:[0, 16]。在某些偏色场景下,该参数变化可能不线性。
  • [nCsfs1]:该接口为NRc1级的1号滤波器去噪强度,可与曲线nc1sfs1_mot配合使用。取值范围:[0, 255]。
  • [sfs2_c_f]:该接口为NRc1级的2号滤波器前景补充去噪强度。参数sfs2_c_f的变化对效果的影响并非是线性变化的。sfs2_c_f 参数是在sfs2_c 参数的基础上对前景再调节降噪强弱。当sfs2_c较小时,sfs2_c_f在低数值时调整,对前景降噪无法再减弱,可能会出现效果不变的情况。同理,在sfs2_c较大时,sfs2_c_f在高数值时调整,对前景降噪无法再加强,也可能会出现效果不变的情况。取值范围:[0, 31]。
  • [sfs2_mode]:该接口为色度2号滤波器调整强度的模式选择。当该值为0时,sfs2_c接口生效,可通过调整该数值粗略地改变去噪强度,此时sfs2_sat失效;当该值为1时,sfs2_sat接口生效,可通过调整该曲线精细地改变去噪强度,此时sfs2_c失效。
  • [sfs2_c]:该接口为NRc1级的2号滤波器总体去噪强度。取值范围:[0, 31]。若sfs2_c调0,则调整sfs2_c_f无效,若sfs2_c调大,则调整sfs2_c_f可进一步调整前景区域去噪强度。整体的强度不宜调的过大,否则可能会出现颜色晕出以及颜色损失的现象。
  • [nc1sfs2_sat]:该曲线可根据饱和度精细调整去噪强度,横坐标为饱和度,纵坐标为去噪强度。取值范围:[0, 1023]。
  • [sfs2_fine_f]:该接口为NRc1级的2号滤波器前景精调去噪强度,作为[sfs2_c_f]的补充。取值范围:[0, 16]。
  • [sfs2_fine_b]:该接口为NRc1级的2号滤波器背景精调去噪强度,作为[sfs2_c_b]的补充。取值范围:[0, 16]。

    在调整好sfs2_c_f 以及sfs2_c参数的基础上,可以进一步调整sfs2_fine_f以及sfs2_fine_b对前景区域和背景区域的去噪强度分别进行调整,二者互不影响。

  • [nc1sfs2_mot]:该曲线可调整不同区域使用前景强度(sfs2_fine_f)还是背景强度(sfs2_fine_b)。横坐标为运动指数,纵坐标为使用背景强度的比例,越倾向于使用背景强度(sfs2_fine_b)的比例越高。

  • [nc1sfs1_mot]:该接口为控制sfs1空域滤波器的前景背景区域去噪强度,横坐标表示运动强度(强度为0则为静止区域),纵坐标表示去噪强度。一般情况下,空域处理主要作用于前景区域(背景区域具有时域去噪),因此曲线设置一般为左边低右边高,否则有可能会对背景的颜色造成损伤。

    须知:

    色度去噪中使用的运动判决均由NRc0级的运动判决决定。

后处理参数说明

后处理可以分别对亮度(gamma)以及饱和度(Ca)进行调整。

  • [gamma_en]:该接口为后gamma 的开关,该开关依赖于N4级开关,即在N4级开时,后处理才生效。
  • [post_gamma_lut]:该接口为调整的gamma曲线。横坐标与纵坐标均为亮度,取值范围为[0,255]。
  • [ca_en]:该接口为后ca的开关。
  • [post_ca_lut]:该接口为调整的ca曲线。横坐标为饱和度,纵坐标为增强的强度(32为不改变饱和度,小于32为衰减,大于32为增强),取值范围:[0, 63]。

典型场景下的3DNR接口调试指南

与之前芯片调优类似,主要依赖时域去噪,空域去噪作为补充。和之前主要区别在于亮度去噪和色度去噪的第零级支持时域处理,可以与BNR配合调试动静判决和时域降噪。

图 1 3DNR调试总体流程

  1. 调整时域参数,抑制背景画面噪声,使背景区域安静,同时抑制运动区域出现拖尾效应。

    • 调试3DNR N0级,调大pretfs。同时可适当调试premath、premathd、premabw以及pretdz,初步控制背景噪声,运动没有拖尾现象。此外,还可以精细调整N0级tfs_mot曲线来抑制拖尾的现象。
    • 接着配合调试整体时域强度。N1、N2的第0,1层可以分别作为前景层和背景层。调试背景层的mXmath1,以抑制背景画面的雨点噪声为合适程度。然后调试前景层的mXmath0, 控制一部分前景运动的噪声。
    • 调试第一级的n1tfs以抑制画面的整体噪声水平为合适,需要兼顾时域去噪效果和画面运动的拖尾;通常前景层的tfs需要调的比背景小,防止运动物体的拖尾现象。
    • 调试第二级的m2math 和 n2tfs,控制整体噪声的安静水平和噪声的幅度。第二级的m2math通常要比第一级的m1math配置的小,来防止拖尾现象。
    • 若拖尾现象比较严重,可调小mXtfs0(减少前景使用的时域强度),或者调小mXmath(减少运动边缘被判定为背景的区域),同时也可以调整tfr0和tfr1减少拖尾现象。
    • 低照度下,为了减轻math的负担,可以适当调试mabw参数,极低照度下,可以适当调试mate参数来获得画面整体噪声的抑制。

    具体如图2所示。

    图 2 3DNR时域部分调试流程图

  2. 调整空域参数,进一步抑制背景雨点噪声,同时保留背景区域细节。

    • 对于背景区域,主要利用时域进行去噪,空域进行补充去噪。在低噪度下,时域背景中仍可能出现较严重的雨点噪声,此时可以增强nXtss1,同时配合nX2sfn以及nX2sth对不同背景区域进行不同强度的去噪。
    • 对于N1、N2级的分层模式,可以通过调高前景层的n1tss0在前景层混入一定比例的空域滤波结果,来增强运动物体的去噪效果。
    • 根据nX2sfn与nX2sth来调整背景不同区域使用不同强度的滤波器。N2中的3号、4号和5号滤波器均可根据3DNR_n2中的曲线进行不同区域不同强度的调整。
    • 建议操作步骤为,先调大基础滤波器的去噪强度以及nXtss1,调整nXsfn为0号滤波器和基础滤波器的组合,再调整nX2sth的数值,找出不同阈值控制的区域。对不同区域选择适合的滤波器,最后再调整滤波器强度以及tss1到适合,以及对3DNR_n2中的曲线进行精调,尽可能保留背景区域细节信息。
    • 以同样的方法调整N3级的背景空域参数,作为N2级去噪结果的补充。
  3. 调整空域参数,抑制前景噪声,同时保留前景细节。

    • 调试N2、N3的空域参数,每一级均可以分开前景和背景,分别调试空域效果。可以调试6、7、8号滤波器作为混合滤波器。根据当前噪声特性,通过调节基础滤波器的混合权重,做到尽量不损失细节的前提下压低噪声。
    • 建议运动区域主要利用N2级的空域滤波器组合进行去噪,前景区域利用5号滤波器压制爆点噪声和强边缘噪声,同时配合3号滤波器(例如使用6号混合滤波器对5号和3号滤波器进行混合)在压制噪声的同时保留更多细节。前景区域可以通过Coring的功能保留细节合入细碎噪声。再利用N3级的3号和4号滤波器对噪声做进一步的压制处理。前景区域的处理,可以通过曲线的调节来达到细节、边缘和噪声平衡的强度。在低噪度的情况下,可以通过Coring保留一定的细碎噪声和细节,让图像更加自然。
    • 以同样的方法调整N3级的前景空域参数,作为N2级去噪结果的补充。
  4. 最后一级为增强滤波器,就是post sharpen,用来进行细节增强的。该级可以对静止区域和运动区域分开调试,分别配置不同的增强参数。

  5. 在亮噪调试合理的基础上,最后调试色度去噪NRc接口。

    打开Nc0中的tfs进行时域去噪,同时调整3DNR_nc中的nctfsMot,一般曲线左端数值调整更大,右端数值更小,目的是让静止区域尽可能使用时域滤波,同时减少运动区域使用时域滤波,防止出现色度的拖尾现象。

  6. 调试色噪N1级参数,进一步减少色噪。

    先调整presfs减少色噪的大小。再调整ncsfs1以及sfs2进行色噪去除。ncsfs1可配合3DNR_nc中的ncsfs1Mot控制sfs1空域去噪的区域,一般曲线左端数值较大,右端数值较小,目的是尽可能减少静止区域使用空域去噪,空域去噪有可能对小块颜色造成损伤。若sfs1仍不能满足去噪效果,可接着调试sfs2,先调整整体强度sfs2_c,再在此基础上调整前景的强度sfs2_c_f。若此时颜色损失比较严重,可以分别减小sfs2_fine_f和sfs2_fine_b,减小sfs2对前景和背景区域的损伤。若需要更加精细地对不同区域使用不同的去噪强度,可调整sfs2_mot曲线进行前景区域和背景区域的区分,或者调整sfs2_sat曲线控制不同饱和度的去噪强度。

调试3dnr过程中常见问题解答

  1. 调节基础滤波器强度,图像效果不明显?

    答:应在sfn参数中选择调节的滤波器号,同时调整对应通路的tss的强度。

  2. 调节tfs2和tss2效果不明显?

    答:当math1调节较大时,背景区域由math1决定的区域为主,此时调节tfs1和tss1可达到调整背景的效果。若希望使用tfs2和tss2来调整背景,需将math1尽可能调小,甚至调为0。

  3. 发现ISP其他模块的参数或3dnr中的空域参数调节改变过大时,图像会出现延时反应?

    答:可以查看3dnr中的时域强度参数:亮度相关的可以查看pretfs、nXtfs。色度相关的可以查看nctfs。若上述参数过大时,可适当调小上述参数,此时图像延时反应现象会有所减弱。

  4. 使用混合滤波器时,调整混合选择的滤波器强度,图像效果不明显?

    答:除了问题1的方法外,还需要检查曲线sf_bld,查看调整的滤波器混合比例是否过小。

  5. 增加时域强度,背景去噪效果反而更差?

    答:检查调整的时域强度是否过强,时域强化过强,可能会导致信息无法更新,去噪效果变差。此时调小时域强度,可能去噪效果更好。

    注意:3dnr具有N0、N1、N2三级时域去噪,同时调得过大就可能出现该问题。

  6. Norm模式下,N2级不生效?

    答:Norm模式下,N2级时域不生效,仅空域滤波器生效,此时tss0控制空域滤波器的整体强度,可调大tss0,查看N2是否生效。

  7. sharpen、3dnr中均具有运动区域(前景区域)和静止区域(背景区域)分别使用不同强度的能力。若运动区域和静止区域增益或去噪强度差异较大时,可能会出现画面部分区域清晰和模糊跳变的情况。

    答:该现象出现的原因:运动map计算不够准确,部分静止区域有时被认为是静止区域,有时被认为是运动区域。此时运动区域和静止区域的处理差异较大,则会出现部分区域时而清晰时而模糊。因此缓解该现象可以通过调整运动map(调大BNR中md_static_ratio、md_motion_ratio、md_static_fine_strength以及3dnr X中premath、premathd、pretdz等参数,使得被误判为运动区域的静止区域被判定为静止区域);或通过减少运动区域和静止区域的处理差异;或调整3dnr Attr中的n2sf_mot、n3sf_mot(亮噪相关)和nc0tfs_mot、nc1sfs1_mot、nc1sfs2_mot(色噪相关),使得运动区域和静止区域过度平滑。

  8. pretfs调0后,调整premath、premathd、pretdz等参数也会对图像效果造成影响。

    答:不仅pretfs使用了premath等参数控制的运动map,在N1、N2、N3、N4级中也都使用了premath等参数控制的运动map,所以即使pretfs调0,再调整这些参数也会影响到图像效果。