本发明涉及一种多通道cmos传感器像素数据采集方法和装置,尤其涉及对于多通道cmos图像传感器像素数据采集时,fifo访问带宽的提升方法。属于fpga应用领域。
背景技术:
1、不同于常规cmos图像传感器,多数据通道cmos传感器通过多个数据传输通道传输图像像素数据,每个通道传输一行图像中的像素数据,图像采集时序如图1所示。如果把图像按从左到右作为x轴正向,从上到下作为y轴正向进行排列,则图像像素数据与图像传输通道关系如图2所示。因同一行内(y坐标相同)m个像素数据会通过m个通道传输,也会在同一时刻同步到达采集器件,因此需将几个通道数据同时暂存到不同存储器内,如需将像素数据重新组合成完整图像或进行其他处理,则需再按x,y坐标相应顺序从不同存储器内读取数据。
2、因fpga具有良好的硬件可定制性,灵活的实现各种处理功能和较高的处理带宽,因此常作为cmos图像传感器作的采集处理器件,通过fpga片内丰富的rom,ram或fifo等资源,可以灵活的构造出暂存多通道cmos图像像素数据的存储器,并进行数据处理。对于多通道图像传感器图像数据的采集,一般对应每个传输通道会使用fifo或移位寄存器等暂存数据,待暂存图像完整一行像素数据后按像素对应位置关系顺序读出,再进行处理。
3、较高的fifo读取带宽对于数据量较大的场景是必要的。提升读取fifo带宽方法有很多,如提高写入数据位宽至2倍或更高,增加处理时钟频率等,这些方法较为简单,但提高写入位宽会造成数据采集逻辑更加复杂,也需要使用较多资源;而提升时钟频率也不是无限度的,往往会受到器件性能的制约,且提高时钟频率会降低系统时序特性裕度及时序稳定性。
技术实现思路
1、本发明解决的技术问题是:克服现有技术的不足,本发明提出一种多通道cmos传感器像素数据采集方法和装置,即在相同时钟下获得更高的带宽,较好地解决多通道cmos传感器采集系统的带宽限制问题。
2、本发明解决技术的方案是:一种多通道cmos传感器像素数据采集方法,该方法包括如下步骤:
3、将多通道cmos传感器的像素数据位宽w,传输通道数m,每行每通道传输像素数n表示为如下形式:
4、n=n'×2n
5、m=m'×2m
6、其中,n,m=0,1,2...,n'和m'为奇数;
7、从通道0开始,将每k通道分为一组,图像传感器全部m通道共分成m/k组,其中k为m约数,选择k为2的整数次幂,令k=2k,有k≤m;
8、每组k个通道传输的像素数量为n×k=n'×2n×2k=n'×2n+k;
9、每个通道都采用一个fifo进行传输,fifo写入位宽为w,按照w×t的位宽读取,使得fifo带宽提升倍数为t,当fifo最大读取位宽为写入位宽的2t倍时,t最大值为2t。
10、优选地,当n≥t时,取n=t,k=0,有t=2t。
11、优选地,当n<t,m>0,且m+n≥t时,取k=t-n,有t=2t=2n+k。
12、优选地,当n<t,m>0,且m+n<t时,取k=m,有t=2t=2n+m。
13、优选地,当n<t,m=0时,取k=m=0,有t=2n=20。
14、优选地,每组k个通道的数据传输分为三个阶段:
15、第一阶段,每个通道对应存储一行像素,该行像素分为两部分,前一部分像素暂存起来写入寄存器,后一部分像素依次写入fifo,写入寄存器和fifo中的像素如下:
16、
17、
18、第二阶段,通道k-1~通道1暂存的像素数据对应追加到通道k-2~通道0的fifo中;
19、第三阶段,组内全部通道fifo同步按w×2t位宽读出。
20、优选地,前一部分像素暂存在寄存器,ram,fifo中。
21、优选地,所述fifo为基于block ram资源构造的异步fifo。
22、优选地,当fpga为xilinx kintex 7系列fpga时,倍数t为8。
23、本发明的另一个技术方案是:一种多通道cmos传感器像素数据采集装置,该装置包括m个fifo,每个通道对应一个fifo,从通道0开始,将每k通道分为一组,图像传感器全部m通道共分成m/k组,每组k个通道的数据传输分为三个阶段:
24、第一阶段,每个通道对应存储一行像素,该行像素分为两部分,前一部分像素暂存起来写入寄存器,后一部分像素依次写入fifo,写入寄存器和fifo中的像素如下:
25、
26、
27、第二阶段,通道k-1~通道1暂存的像素数据对应追加到通道k-2~通道0的fifo中;
28、第三阶段,组内全部通道fifo同步按w×2t位宽读出。
29、本发明与现有技术相比的有益效果是:
30、(1)、本发明在不改变时钟频率情况下,通过增加较少资源作为像素缓存结构,修改读取时序并调整fifo实际存储像素数量,使得fifo可以更高位宽读取,即在相同时钟下获得更高的带宽,较好解决了多通道cmos传感器采集系统的带宽限制问题。
31、(2)、本发明的在一定条件下,本发明方法可在fpga设计中有效构造出具有更高读取位宽的fifo,对于需要更高处理带宽的cmos传感器采集系统,可在使用较少资源情况下,获得相对较高的带宽提升。
1.一种多通道cmos传感器像素数据采集方法,其特征在于包括如下步骤:
2.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于当n≥t时,取n=t,k=0,有t=2t。
3.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于当n<t,m>0,且m+n≥t时,取k=t-n,有t=2t=2n+k。
4.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于当n<t,m>0,且m+n<t时,取k=m,有t=2t=2n+m。
5.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于当n<t,m=0时,取k=m=0,有t=2n=20。
6.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于每组k个通道的数据传输分为三个阶段:
7.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于前一部分像素暂存在寄存器,ram,fifo中。
8.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于所述fifo为基于block ram资源构造的异步fifo。
9.根据权利要求1所述的一种多通道cmos传感器像素数据采集方法,其特征在于当fpga为xilinx kintex 7系列fpga时,倍数t为8。
10.一种多通道cmos传感器像素数据采集装置,其特征在于包括m个fifo,每个通道对应一个fifo,从通道0开始,将每k通道分为一组,图像传感器全部m通道共分成m/k组,每组k个通道的数据传输分为三个阶段: