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域的处理的更多相关文章

  1. 安霸pipeline简述之rgb域的处理

    RGB域处理模块的详细介绍: RGB域的处理主要是demosaic,color_correction,tone_curve(类似于gamma曲线).   Demosaic:此模块将bayer Patt ...

  2. 简述安霸pipeline及其关键参数--raw域模块

    何为pipeline: sensor输出是一种叫Bayer 格式的RAW数据图像.ISP 对RAW数据图像的处理流程就是我们说的ISP PipeLine.通过PipeLine的处理,我们可以从一副RA ...

  3. 推送安霸A7L实时视频至RTMP服务器(1)

    使用librtmp进行H264与AAC直播 (转:http://www.codeman.net/2014/01/439.html) 1.帧的划分 1.1 H.264帧 对于H.264而言每帧的界定符为 ...

  4. 360 奇酷行车记录仪12967p 安霸a7

    http://www.qikoo.com/che?utm_source=xingchejiluyi_360daohang_xialareci_0528&utm_medium=inside ht ...

  5. postMessage 跨域

    基于 postMessage 和 localStorage 的跨域本地存储方案 安·记 2014-09-07 2099 阅读 跨域 存储 localStorage HTML5 的 postMessag ...

  6. C#编写的通过汉字得到拼音和五笔码

    public static class SpellAndWbConfig { #region 变量声明 // XML文件读取实例 /// <summary> /// XML文件读取实例 / ...

  7. .net 生成拼音码与五笔码

    首先加入配置文件: <?xml version="1.0" encoding="utf-8" ?> <CodeConfig> <S ...

  8. 主流芯片解决方案Ambarella的高清网络摄像机、德州仪器和控制海思

    (本文由四川艾普作为数码科技有限公司 苏斌.范清华 收集) 高清网络视频监控发展到今天.正的高清时代.诸多有实力的高清摄像机厂家的产品线也逐渐完好起来,高清网络视频监控的配套产品有更加丰富和成熟.与此 ...

  9. ISP PIPLINE (十一) color correction

    什么是color correction? 为什么要进行color correction? 转换后的色彩饱和度更加明显,更加符合人眼感官. 如何进行color correction? 下图是步骤: 第一 ...

随机推荐

  1. C#编程概述(摘抄)

    C#编程概述 一个简单的C#程序 标识符 标识符是一种字符串,用来命名变量.方法.参数和许多后面将要阐述的其他程序结构. 关键字 所有C#关键字都由小写字母组成,但是.NET类型名使用Pascal大小 ...

  2. C++STL标准库学习笔记(二)二分查找

    二.STL中的二分查找算法 1.binary_search 2.lower_bound 3.upper_bound 记得#include<algorithm>! 前言: 在这个笔记中,我把 ...

  3. ios self.和_区别

    - "self."调用该类的setter或getter方法,"_"直接获取自己的实例变量.property 和 instance variable 是有区别的. ...

  4. mysql 连接数过多内存增长过快

    mysql连接允许长连接和短链接,但是本身建立连接会有很大开销所以一般连接mysql会使用长连接.但是全部是使用长连接后,可能会出现mysql有时占用内存涨的特别快,这是因为mysql在执行过程中临时 ...

  5. 一个自定义的c++错误类 和 同步异步、阻塞非阻塞(区别简述)

    一个例子,自定义exception 继承std::exception 1 class _oct_udp_api_export_ udp_err : public std::exception 2 { ...

  6. 【LeetCode】1404. 将二进制表示减到 1 的步骤数 Number of Steps to Reduce a Number in Binary Representation to One

    作者: 负雪明烛 id: fuxuemingzhu 个人博客:http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 转成十进制模拟 修改二进制字符串 日期 题目地址:ht ...

  7. 【九度OJ】题目1193:矩阵转置 解题报告

    [九度OJ]题目1193:矩阵转置 解题报告 标签(空格分隔): 九度OJ http://ac.jobdu.com/problem.php?pid=1193 题目描述: 输入一个N*N的矩阵,将其转置 ...

  8. 【LeetCode】643. 子数组最大平均数 I Maximum Average Subarray I (Python)

    作者: 负雪明烛 id: fuxuemingzhu 公众号:每日算法题 目录 题目描述 题目大意 解题方法 方法一:preSum 方法二:滑动窗口 刷题心得 日期 题目地址:https://leetc ...

  9. [LeetCode]621. Task Scheduler 任务安排 题解

    题目描述 给定一个char数组,代表CPU需要做的任务,包含A-Z,不用考虑顺序,每个任务能在1个单位完成.但是有规定一个非负整数n代表两个相同任务之间需要至少n个时间单位.球最少数量的时间单位完成所 ...

  10. 1632 B君的连通

    B国拥有n个城市,其交通系统呈树状结构,即任意两个城市存在且仅存在一条交通线将其连接.A国是B国的敌国企图秘密发射导弹打击B国的交通线,现假设每条交通线都有50%的概率被炸毁,B国希望知道在被炸毁之后 ...