本发明涉及一种相关线性插值方法及系统,特别是一种基于fpga的相关线性插值方法及系统。
背景技术:
为了获得彩色图像最详细的信息,数字相机有多种成像器件的结构可供选择,最佳方案是采用三块传感器接受r/g/b三色信息,进而利用dsp完成后续图像合成和处理。然而,目前市面采用最多的方案是采用一块传感器作为接收光信号的传感器,在传感器前端加上三色滤光片实现图像的采集。这种方案成本低,收到很多用户的青睐。原理是:不同位置采集到rgb三色的其中一色,通过后续的相邻象元的像素值补充缺失的r/g/b值,即颜色差值。
插值算法的计算方式很多,比较常用的有像素插值算法、双线性插值算法、双三次插值算法和分形算法四种。其中,像素差值算法比较简单,像素缺少的r/g/b值由相邻像素补充,可在多平台运行,需求资源少,速度快。但是色彩变换边缘会产生明显的锯齿,效果不好。双三次插值算法和分形算法虽然插值算法图像质量好但是运算时间长,需求硬件资源较高,算法复杂,fpga难以实现。传统的线性插值算法是采用像素周边四个相邻像素求平均值补充缺失的信息,对于图像变化较大的位置信息补充偏差较大,且资源占用较大。
技术实现要素:
本发明目的在于提供一种基于fpga的相关线性插值方法及系统,解决现有方法对于图像变化较大的位置信息补充偏差较大且资源占用较大的问题。
一种基于fpga的相关线性插值方法的具体步骤为:
第一步构建基于fpga的相关线性插值系统
基于fpga的相关线性插值系统,包括:像素位置确定模块、g值生成模块和插值模块。
像素位置确定模块的功能为:确定rgb像素在图像中位置;
g值生成模块的功能为:生成像素g值;
插值模块的功能为:通过插值获取每个像素的三个色彩信息。
其中像素位置确定模块、g值生成模块和插值模块均在fpga中运行。
第二步像素位置确定模块确定rgb像素在图像中位置
像素位置确定模块接收来自探测器的图像和时序信号,其中探测器的图像格式符合bayer模式,其中图像信号按像素行存储在ram中,ram中共有7行图像原数据存储空间和7行g数据存储空间,其中7行图像原数据存储空间中同一时刻只存储6行图像原数据,当起始位置进入一行新的图像原数据时,则末端位置释放出一行旧的图像原数据。g数据存储空间的存储方式与图像原数据存储空间的存储方式相同,且在数据上与图像原数据相对应。
像素位置确定模块根据输入的时序信号进行计数,确定像素位置,进而判断像素表达的是r、g或者b色彩信息,其中奇数行与奇数列代表r色彩信息,偶数行与偶数列代表b色彩信息,偶数行与奇数列、奇数行与偶数列代表g色彩信息。
第三步g值生成模块生成像素g值
g值生成模块根据像素位置,生成像素的g值:
对于偶行偶列像素,分别计算该像素的左右两个像素的绝对值和上下两个像素的绝对值,取这两个绝对值中较小的那个方向的两个像素的平均值作为g值;
对于奇行奇列像素,分别计算该像素的左右两个像素的绝对值和上下两个像素的绝对值,取这两个绝对值相对较小的那个方向的两个像素的平均值作为g值;
对于奇行偶列像素,直接取所在位置的像素灰度值作为g值;
对于偶行奇列像素,直接取所在位置的像素灰度值作为g值;
图像有效区间以外的图像数据,相应位置的g值为0。
所生成的像素g值对应存储在ram中的g数据存储空间内。
第四步插值模块通过插值获取每个像素的三个色彩信息
对于ram中末端倒数第二行的某个像素,插值模块读取该像素所在行和上下两行共计3行的原始灰度值数据和对应的g值数据,根据位置信息,将该像素位置的上下左右四个像素的原始灰度值求平均值作为r值,将该像素位置的左上、左下、右上、右下四个像素原始灰度值求平均值作为b值,从而得到每个像素的三个色彩信息。
一种基于fpga的相关线性插值系统,包括:像素位置确定模块、g值生成模块和插值模块。其中像素位置确定模块、g值生成模块和插值模块顺次连接,其中像素位置确定模块、g值生成模块和插值模块均在fpga中运行。
像素位置确定模块确定rgb像素在图像中位置,g值生成模块生成像素g值,插值模块通过插值获取每个像素的三个色彩信息。
本发明能够解决现有插值方法过于复杂,fpga占用资源较多,需要dsp芯片进行数据处理的问题。本发明结合成像效果,能够利用fpga实现相关线性插值,片上资源占用较少。
具体实施方式
实施例1
一种基于fpga的相关线性插值方法的具体步骤为:
第一步构建基于fpga的相关线性插值系统
基于fpga的相关线性插值系统,包括:像素位置确定模块、g值生成模块和插值模块。
像素位置确定模块的功能为:确定rgb像素在图像中位置;
g值生成模块的功能为:生成像素g值;
插值模块的功能为:通过插值获取每个像素的三个色彩信息。
其中像素位置确定模块、g值生成模块和插值模块均在fpga中运行。
第二步像素位置确定模块确定rgb像素在图像中位置
像素位置确定模块接收来自探测器的图像和时序信号,其中探测器的图像格式符合bayer模式,图像格式前4行前4列为
其中图像信号按像素行存储在ram中,ram中共有7行图像原数据存储空间和7行g数据存储空间,其中7行图像原数据存储空间中同一时刻只存储6行图像原数据,当起始位置进入一行新的图像原数据时,则末端位置释放出一行旧的图像原数据。g数据存储空间的存储方式与图像原数据存储空间的存储方式相同,且在数据上与图像原数据相对应。
像素位置确定模块根据输入的时序信号进行计数,确定像素位置,进而判断像素表达的是r、g或者b色彩信息,其中奇数行与奇数列代表r色彩信息,偶数行与偶数列代表b色彩信息,偶数行与奇数列、奇数行与偶数列代表g色彩信息。
第三步g值生成模块生成像素g值
g值生成模块根据像素位置,生成像素的g值:
对于偶行偶列像素,分别计算该像素的左右两个像素的绝对值和上下两个像素的绝对值,取这两个绝对值中较小的那个方向的两个像素的平均值作为g值;
对于奇行奇列像素,分别计算该像素的左右两个像素的绝对值和上下两个像素的绝对值,取这两个绝对值相对较小的那个方向的两个像素的平均值作为g值;
对于奇行偶列像素,直接取所在位置的像素灰度值作为g值;
对于偶行奇列像素,直接取所在位置的像素灰度值作为g值;
图像有效区间以外的图像数据,相应位置的g值为0。
所生成的像素g值对应存储在ram中的g数据存储空间内。
第四步插值模块通过插值获取每个像素的三个色彩信息
对于ram中末端倒数第二行的某个像素,插值模块读取该像素所在行和上下两行共计3行的原始灰度值数据和对应的g值数据,根据位置信息,将该像素位置的上下左右四个像素的原始灰度值求平均值作为r值,将该像素位置的左上、左下、右上、右下四个像素原始灰度值求平均值作为b值,从而得到每个像素的三个色彩信息。
实施例2
一种基于fpga的相关线性插值系统,包括:像素位置确定模块、g值生成模块和插值模块。其中像素位置确定模块、g值生成模块和插值模块顺次连接,其中像素位置确定模块、g值生成模块和插值模块均在fpga中运行。
像素位置确定模块确定rgb像素在图像中位置,g值生成模块生成像素g值,插值模块通过插值获取每个像素的三个色彩信息。