安霸pipeline简述之YUV域的处理
YUV域处理模块的详细介绍:
YUV域的处理主要是rgb_to_yuv_matrix,chroma_scale,ASF(空域降噪),MCTF(时域降噪),SharpenB(锐化模块)。
RGB2YUV Matrix:此模块是设置RGB到YUV的矩阵。矩阵的格式为标准的3x3转换矩阵加上YUV的偏移量。


矩阵的设置要根据sensor input具体考虑,也可以根据显示器类型或应用类型具体定制。如果是Mono sensor,该矩阵需要设置为单位矩阵。
修改Y_offest可以修改画面的整体亮度,U /V_offest可以修改画面的色彩饱和度。这个矩阵一般不建议修改,使用默认的即可。
Chroma Scale:经过转换矩阵后,U、V分量经过Chroma Scale进行处理,本模块是对色彩信号整体的控制量,相当于饱和度的设置。

Chroma Scale成员是以亮度为索引,修改不同的亮度的色彩强度。当Chroma Scale成员全部设置为0时就是灰色图像。
ASF(空域降噪):经过转换矩阵后,Y分量也就是Luma信号首先经过一个降噪/加锐模块。在绝大多数情况下,此时会选择ASF模块进行降噪处理。
首先该模块会检测图像的边缘区和平坦区通过不同的滤波器对不同频率区域做相应处理。

当像素的边缘分值低于direction_decide_t0时,做iso滤波;当像素的边缘分值高于direction_decide_t1时,做dir滤波。对于分值在direction_decide_t0与direction_decide_t1之间的,
会用iso滤波与dir滤波融合来处理。
fir_specify的取值范围是2-4。当取2时,控制滤波强度参数是fir_strength_iso(iso滤波强度)和fir_strength_dir(dir滤波强度)。
当取3时,则是使用fir_per_dir_fir_dir_amount(iso滤波与dir滤波融合强度),fir_per_dir_fir_dir_strength(dir滤波强度),fir_per_dir_fir_iso_strength(iso滤波强度)。
当取4时,则是使用fir_coefs控制滤波强度。分别是一个平坦区和8个方向。
为了保持图像的细节和边缘,还提供了两个level_control。如下:

这是一组基于图像频率的level Control ,T0T1_div_high和T0T1_div_high_delta限定了高频率范围。T0T1_div_low和T0T1_div_low_delta限定了低频率范围。剩下的频率则属于中等频率 范围。,T0T1_div_high/mid/low_strength则是对应频率的降噪强度。值越大,降噪强度越小。

这是一组基于亮度的level_Control ,level_str_adjust_high和level_str_adjust_high_delta限定了高亮度范围。level_str_adjust_low和level_str_adjust_low_delta限定了低亮度范围。剩下的亮度范围则属于中等亮度范围。,level_str_adjust_high/mid/low_strength则是对应亮度的降噪强度。值越大,降噪强度越大。

最后的这些参数的作用是对以上三种降噪方式(fir_iso/dir、level_str_adjust_*、T0T1_div_*)做一个幅值得限定。
MCTF(时域降噪):MCTF模块是一个对图像的时域和空间域分别进行处理的模块。Y(亮度信号)、U、V(色彩信号)会一同进入这个模块做降噪处理。此模块主要分为一个时域降噪部分,一个空域降噪部分。
空间域降噪部分:

空域降噪有两路滤波,分别是isotropic和directional两路滤波,由边缘门限y/cb/cr_spat_smth_directional_decide_t0/t1来确定。
当图像分为iso区域和dir区域后, 分别用两组level_control来对这些区域做降噪处理。Y/cb/cr_spat_smth_dir*是对dir区域进行降噪的level_control,Y/cb/cr_spat_smth_iso*是对iso区域进行降噪的level_control。
y/cb/cr_advance_iso_noise_level和y/cb/cr_advance_iso_size是生效最快的的空域滤波器。noise_level、size越大,去噪越强。

时域降噪部分:

时域滤波器是通过一组基于motion的level_control去控制,如下:

y/cb/cr_t0/t1/t2/t3是四个运动强度的阈值,0-1表示运动强度最低的范围,这部分像素的时域降噪强度采用的是y/cb/cr_temporal_alpha0控制;1-t1表示较强的运动范围,这部分像素的时域降噪强度是由y/cb/cr_temporal_alpha1控制;后续同上。
运动检测部分:运动检测的功能是划分出画面中的静止区域,做时域降噪;另外的运动区域则做空域降噪。

Noise_base是很重要的判断运动的参数,值越大越容易被判定为静止。Motion_response的值越大,越容易被判断为运动区域。Slow_mo_sensitivity检测慢速运动的灵敏度,值越大,对慢速运动的检测越灵敏。
SharpenB(锐化模块):YUV信号在经过MCTF后就来到了此模块。此模块的作用有两个作用,一个作用是对图像进行锐化操作;另一个作用就是对锐化后的图像再进行一次降噪处理。

锐化从sharpening FIR开始,sharpening FIR中主要的参数如下:

Fir_specify是锐化滤波器的选择,取值范围是0-4,不同的取值会使用不同的锐化滤波器,见下图:

取0时,只对平坦区进行锐化操作,使用fir_strength_iso控制其锐化强度;取1时使用fir_cofes中的第一个卷积核,即控制平坦区的卷积核做锐化操作,也是只针对平坦区
取2时,会将图像分为平坦区和边缘区,两个区域划分的阈值由edge_thresh划分的,大于edge_thresh的部分将划为边缘区;小于edge_thresh的部分将划为平坦区。
取3时,使用Fir_per_dir_fir_iso_strengths控制平坦区的锐化强度,Fir_per_dir_fir_dir_strengths控制边缘区的锐化强度,介于平坦区和边缘区之间的区域则使用Fir_per_dir_fir_dir_amounts决定锐化强度。
取4时使用fir_coefs中的平坦区以及八个方向的卷积核去做锐化处理,八个方向分别为0°、90°、45°、135°、22.5°、67.5°、112.5°、157.5°。
sharpening FIR之后是一个index_scale模块,是一个level_control的锐化处理模块。其参数如下:

由于Non-Smooth Detec的引入,这个模块不建议调试。
index_scale之后是一个coring_table模块,是一个对上述两个模块做一个锐化输出的限幅模块。其参数如下:

Coring_table是对锐化输出的一个系数,锐化的输出会乘以coring_table,所以coring_table内的数值越大,锐化的强度就越高。
Fractional_bits也是一个控制锐化输出分数的分母,取1时,锐化不变,当大于1时并且随着其增大时,锐化的输出会越小。
coring_table之后是一个gain_scale模块

gain_scale之后是一个Min/Max模块

· 
这两个level control常用method 14控制。分别控制弱边缘、边缘和强边缘的锐化强度。其中对边缘的划分以high、low的值做划分。
锐化中的降噪是Spatial FIR模块,主要参数如下:


这个子模块主要对输入的信号做一个降噪处理,用direction_decide_t0/t1判断像素属于还是低频区域。
当fir_specify去不同的值时,会使用不同的参数控制对高频区、低频区的降噪强度。
取0时,只对平坦区进行降噪操作,使用fir_strength_iso控制其降噪强度。
取1时使用fir_cofes中的第一个卷积核,即控制平坦区的卷积核做降噪操作,也是只针对平坦区。
取2时,使用fir_strength_iso控制低频区域的降噪强度,使用fir_strength_dir控制高频区域的降噪强度。
取3时,使用Fir_per_dir_fir_iso_strengths控制平坦区的降噪强度,Fir_per_dir_fir_dir_strengths控制边缘区的降噪强度,介于平坦区和边缘区之间的区域则使用Fir_per_dir_fir_dir_amounts决定降噪强度。
取4时使用fir_coefs中的平坦区以及八个方向的卷积核去做降噪处理,八个方向分别为0°、90°、45°、135°、22.5°、67.5°、112.5°、157.5°。
之后会对锐化和降噪做一个融合,通过Final Clamp判断门限以及做一个整体限幅,主要参数如下:

Edge_thresh为sharpening FIR子模块中的平坦区,边缘区的阈值。
Max_change_up5x5\Max_change_down5x5则是分别控制图像的overshoot(锐化后的白边白点)的强度和图像的undershoot(锐化后的黑边黑点)的强度。
Max_change_up\Max_change_down则是对锐化、降噪输出做一个总的限幅。
安霸pipeline简述之YUV域的处理的更多相关文章
- 安霸pipeline简述之rgb域的处理
RGB域处理模块的详细介绍: RGB域的处理主要是demosaic,color_correction,tone_curve(类似于gamma曲线). Demosaic:此模块将bayer Patt ...
- 简述安霸pipeline及其关键参数--raw域模块
何为pipeline: sensor输出是一种叫Bayer 格式的RAW数据图像.ISP 对RAW数据图像的处理流程就是我们说的ISP PipeLine.通过PipeLine的处理,我们可以从一副RA ...
- 推送安霸A7L实时视频至RTMP服务器(1)
使用librtmp进行H264与AAC直播 (转:http://www.codeman.net/2014/01/439.html) 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为 ...
- 360 奇酷行车记录仪12967p 安霸a7
http://www.qikoo.com/che?utm_source=xingchejiluyi_360daohang_xialareci_0528&utm_medium=inside ht ...
- postMessage 跨域
基于 postMessage 和 localStorage 的跨域本地存储方案 安·记 2014-09-07 2099 阅读 跨域 存储 localStorage HTML5 的 postMessag ...
- C#编写的通过汉字得到拼音和五笔码
public static class SpellAndWbConfig { #region 变量声明 // XML文件读取实例 /// <summary> /// XML文件读取实例 / ...
- .net 生成拼音码与五笔码
首先加入配置文件: <?xml version="1.0" encoding="utf-8" ?> <CodeConfig> <S ...
- 主流芯片解决方案Ambarella的高清网络摄像机、德州仪器和控制海思
(本文由四川艾普作为数码科技有限公司 苏斌.范清华 收集) 高清网络视频监控发展到今天.正的高清时代.诸多有实力的高清摄像机厂家的产品线也逐渐完好起来,高清网络视频监控的配套产品有更加丰富和成熟.与此 ...
- ISP PIPLINE (十一) color correction
什么是color correction? 为什么要进行color correction? 转换后的色彩饱和度更加明显,更加符合人眼感官. 如何进行color correction? 下图是步骤: 第一 ...
随机推荐
- 【.NET 与树莓派】控制彩色灯带(WS28XX)
彩色灯带,相信不用老周多说,大家都知道,没准你家里的灯墙里面就有.老周的茅屋是早期建造的,所以没有预留的灯槽,明灯的话是不好看的,因此老周家里没使用灯带.不过,像柜子后面,显示器后面,书桌边沿这些地方 ...
- Jenkins监控
目录 一.Monitoring插件 二.Prometheus监控 一.Monitoring插件 Monitoring插件(monitoring)使用JavaMelody,对Jenkins进行监控.插件 ...
- Nginx配置缓存
目录 一.简介 二.配置 三.其它参数 忽略Cache-Control头部 缓存post请求 缓存动态内容 使用Cookie作为缓存键的一部分 手动清理缓存 支持断点续传 设置查看缓存命中与否 一.简 ...
- 基于MCRA-OMLSA的语音降噪(一):原理
前面的几篇文章讲了webRTC中的语音降噪.最近又用到了基于MCRA-OMLSA的语音降噪,就学习了原理并且软件实现了它.MCRA主要用于噪声估计,OMLSA是基于估计出来的噪声去做降噪.类比于web ...
- LuoguP4419 [COCI2017-2018#1] Cezar 题解
Content 有一个牌库,有一些点数为 \(1\sim 11\) 的牌,其中除了点数为 \(10\) 的牌有 \(16\) 张之外,其余点数的牌各有四张.现在玩一个游戏,已经拿出了 \(n\) 张牌 ...
- LuoguP2097 资料分发1 题解
Content 有一些电脑,一部分电脑有双向数据线连接.如果一个电脑得到数据,它可以传送到的电脑都可以得到数据.现在,你有这个数据,问你至少将其输入几台电脑,才能使所有电脑得到数据. 数据范围:\(n ...
- JAVA中Base64和byte数组(byte[]) 相互转换
Base64转byte[] byte[] bytes = DatatypeConverter.parseBase64Binary("base64字符串"); byte[]转base ...
- IDEA快速创建一个简单的SpringBoot项目(需要联网)
一.点击File-New-Project,选择Spring initializr ,选择jdk1.8及以上 二.填写相关信息,点击Next 3.选择Web -Spring Web,点击Next 4.输 ...
- 谷歌浏览器(chrome)查找、打包已安装的扩展程序
我们有时候会安装浏览器扩展程序,正常情况下,我们回去谷歌应用商店里面进行下载,但是这个需要VPN,有时候我们没法使用VPN,想从其他已安装扩展程序的浏览器上直接安装就可以使用我们下面这个方法 win1 ...
- JAVA获取当前日期指定月份后(多少个月后)的日期
环境要求:使用jdk1.8 package com.date; import java.text.ParseException; import java.text.SimpleDateFormat; ...