掌桥专利:专业的专利平台
掌桥专利
首页

面向CMOS图像传感器的实时压缩存储内核

文献发布时间:2023-06-19 19:14:59


面向CMOS图像传感器的实时压缩存储内核

技术领域

本发明属于CMOS图像传感器数据处理系统领域和可编程逻辑器件领域,具体涉及到RISC-V六级流水线处理器设计,DDR3接口控制设计以及JPEG-LS协处理器设计。

背景技术

CMOS(Complementary Metal-Oxide-Semiconductor)图像传感器是使用CMOS工艺,将像素阵列单元、放大电路、模数转换器、时序控制逻辑、信号处理单元和外部接口单元这些功能模块全部集成在一片芯片上,从而实现图像采集的功能。

随着CMOS图像传感器的像素分辨率不断提高,动态范围不断扩大,导致需要实时传输以及预处理的图像数据量越来越大,而且多通道设计给图像采集和传输系统带来更大的带宽压力。

最直接的解决办法是提高存储器容量,双倍速率同步动态随机存储器——DDRSDRAM是一种最为成熟的高速率、高带宽、大容量的存储器。但是大容量存储器十分昂贵,容量提升有限。

因此,除了片外缓存,还可以在近图像传感器端进行实时的图像压缩处理,这有效地降低数据量,减轻了传输接口的带宽压力。

图像压缩的理论基础是其数据本身包含了大量冗余信息,理论上来说主要有编码冗余、像素间冗余、心里视觉冗余这三种冗余信息,而且像素分辨率越高的图像,图像数据的局部相关性越大,即冗余信息越多。

JPEG-LS压缩标准是基于HP实验室开发的算法—Loco-I,是ISO和ITU—T认可的新一代图像压缩标准,可以选择性的实现无损压缩和近无损压缩。

但是JPEG-LS算法码率不可控,对误差十分敏感,在与DDR3进行数据交互的时候,如果出现像素误差,一直累计到最后可能导致整张图像无法还原。

RISC-V是美国加州大学伯克利分校研发的完全开源的一种精简指令集体系结构。

基于模块化设计的RISC-V体系结构可以根据需要设计出灵活控制其他模块且能效比较高的CPU,这样的CPU是为整个系统量身定制的,可以解决DDR3和JPEG-LS压缩模块之间的数据交互,以及复杂的码率控制问题。

目前对于图像传感器存储的研究主要集中在DDR缓存策略和传输接口方案,还没有类似整体系统的内核设计。

然而“功耗墙”、“内存墙”和“性能墙”等问题日益突出,这不仅仅需要优化算法或者接口的某一方面,而是需要系统整体的架构优化。

发明内容

本发明的目的是面向CMOS图像传感器量身定制一种压缩存储内核,用于实时压缩和存储大量的数据,通过整体架构优化和定制设计,保证数据准确性和更低的功耗。

本发明的技术方案为:

一种面向CMOS图像传感器的实时压缩存储内核,包括DDR3接口控制模块、RISC-V处理器模块以及JPEG-LS协处理器模块。

整体方案示意图如图1所示,DDR3芯片作为图像数据的缓存中心,由DDR3接口控制模块控制缓存图像传感器的图像数据;RISC-V处理器模块定制了RV64IM指令,支持裁剪版的RT-Thread嵌入式操作系统,作为主控核心,调度在DDR3芯片内缓存的图像数据以及控制JPEG-LS协处理器的码流;JPEG-LS协处理器模块实现了JPEG-LS压缩算法,受RISC-V处理器模块控制,压缩来自DDR3芯片的图像数据并输出。

所述的DDR3接口控制模块如图2所示,用于控制向DDR3芯片写入图像传感器的数据以及从DDR3芯片读出数据到JPEG-LS协处理器的数据流向。DDR3接口控制模块物理层基于Xilinx公司的MIG IP配置DDR3的参数,包括DDR3芯片的工作频率(I/O频率)、用户端时钟频率、突发长度、数据位宽、读取模式、阻抗匹配、端口电平和引脚对应关系。DDR3接口控制模块用户层设计主要包括读/写状态机和FIFO缓冲区。

所述的读/写状态机如图3所示,包括复位状态、空闲状态、写入状态、顺序读出状态和指定读出状态。当一帧图像空间存满或者复位信号有效时,进入复位状态;复位初始化完成后进入空闲状态等待命令;FIFO缓冲区中的读/写缓冲区可分别发出读出/写入有效信号,写入有效信号优先级高于读出有效信号,该组信号使读/写状态机从空闲状态切换为顺序读出状态/写入状态;RISC-V处理器模块发来的指定位置读出信号优先级最高,使读/写状态机从空闲状态切换为指定读出状态。

所述的FIFO缓冲区包括DDR3芯片读/写缓冲区和数据同步模块,由读/写状态机、图像传感器接口信号和RISC-V处理器模块共同控制。其中,写入缓冲区检测图像传感器的数据同步信号、本级缓冲区和读/写状态机的状态,决定是否接收来自图像传感器的数据以及转发本级缓冲区数据给DDR3芯片缓存;读出缓冲区检测本级缓冲区和读/写状态机的状态,以及RISC-V处理器模块的控制信号,决定是否从DDR3芯片读出数据以及转发本级缓冲区数据给JPEG-LS协处理器;数据同步模块在DDR3接口控制模块的最后一级,负责输出数据的位宽转换和跨时钟域同步处理。

综上所述,顺序传输时:DDR3接口控制模块整体完成初始化后,自动连续缓存图像传感器的图像数据,由图3所示读/写状态机、写入缓冲区和图像传感器的数据同步信号控制,顺序缓存图像数据到DDR3芯片;由RISC-V处理器模块、读/写状态机模块和读出缓冲区控制,顺序读出数据;由RISC-V处理器模块校验读出的数据,无误后经过数据同步模块输出到JPEG-LS协处理器模块。指定位置传输或者数据校验出错时:由RISC-V处理器模块发出指定图像帧的指定地址信号,重新传输该段数据,完成后重复顺序传输过程。当且仅当本帧图像数据由RISC-V处理器模块校验完成后,DDR3接口控制模块才释放该缓存区域,此时该区域可被新一帧图像数据覆盖。

所述的RISC-V处理器模块如图4所示,包括In-order六级流水线模块、L1级Cache模块、AXI4总线及仲裁器和外设模块。其中,In-order六级流水线模块取指部分采用静态分支预测,预测后的指令输出到一级译码模块;一级译码对指令解码,重编码,并生成用来读出通用寄存器组的使能和地址信号;32个64位通用寄存器组模块根据一级译码和写回寄存器组模块的读/写信号以及地址信息,对本模块的通用寄存器进行读/写操作;二级译码对一级译码重编码的指令进行指令融合,生成执行阶段所需的操作数和操作符等信号;执行阶段包括多个逻辑和算术运算ALU模块,集中进行运算,运算结果输出到访问内存模块;访问内存根据运算结果和指令信息,处理总线访问对齐及数据掩码,连续访存指令策略是插入气泡,阻塞流水线;最终,写回寄存器模块根据指令判断是否写回到32个64位通用寄存器组模块。CLINT(Core local interrupt)模块是核内本地中断,用来处理时钟中断,该模块优先级最高,能够随时中断正在运行的流水线。L1级Cache模块包括I-Cache和D-Cache,均采用两路组相联结构,Cache line为128bit,每个Cache容量为4KB,替换算法为采用伪LRU算法,设置1bit年龄位判断;基本策略是Write back和Write allocate,该模块作为指令(Instruction)和数据(Data)的高速缓存,直接与取指模块和访问内存模块进行数据交互,通过如图4所示的AXI4仲裁器与AXI4总线进行数据交互(即同时只能有一个Cache或者一个直接访问外设命令和AXI4总线交互)。外设模块包括RAM、DDR3接口控制模块、JPEG-LS协处理器和图像传感器接口;其中由于本发明定制设计的RISC-V处理器支持裁剪版的RT-Thread操作系统,所以可使用小容量RAM作为内存。

综上所述,RISC-V处理器模块由底层In-order六级流水线模块执行指令,由L1级Cache和AXI4总线交互,由AXI4总线和各个外设交互。从宏观功能上看,RISC-V处理器模块调度DDR3芯片缓存的图像数据,数据校验无误后开启JPEG-LS协处理器,同时控制DDR3接口控制模块转发对应数据;若有误,则控制DDR3接口控制模块重新传输指定错误位置的数据;最后控制JPEG-LS协处理器的码率控制器模块拼接数据,根据系统前后接口的带宽控制码率并输出压缩后的数据。

所述的JPEG-LS协处理器模块,如图5所示,主要包括建模预处理模块、编码控制模块以及码率控制器模块。其中,建模预处理模块由RISC-V处理器模块控制,由DDR3接口控制器模块转发数据;编码控制模块包括正常模式编码——Golomb编码和游程模式编码,由模块内部扫描确定编码方式;所述的码率控制器模块,拼接编码后的数据并做数据对齐处理,由RISC-V处理器模块控制码率。

所述的JPEG-LS协处理器模块内部数据流向为:

(1)建模预处理模块接收控制和状态寄存器信号,开始接收数据,并进行局部梯度值的计算、量化和判断选择,输出结果到编码控制模块;

(2)编码控制模块根据具体梯度值结果信号决定编码模式:正常编码(Golomb编码)和游程编码。正常编码时,对计算出来的预测误差进行Golomb编码映射,更新像素数据,输出到码率控制器模块。游程编码时,基于建模的模板对数据进行游程长度扫描,记录扫描的数据的地址区间,记为游程长度(局部梯度值全为0);若扫描到本组数据末尾或者判断建模的局部梯度值不全为0时,则跳出游程扫描,记录地址区间,跳出之前记为游程长度,跳出之后记为中断长度;然后对游程长度内进行归一化编码处理,对中断长度内编码进行Golomb编码并输出到码率控制器模块;

(3)码率控制器模块,受RISC-V处理器模块控制,将本次正常编码和游程编码的码流拼接到一起,拼接完成的码流由RISC-V处理器模块控制进入协处理器内部缓存,一帧图像统一输出,并控制输出码率。

本发明的有益效果:本发明为通用型压缩存储内核设计,将压缩算法固化为硬件协处理器加速压缩过程,并且通过定制RISC-V处理器最大化减少了电路面积,且通过系统层面优化控制,使DDR3接口控制器模块和JPEG-LS协处理器模块高效稳定工作。

本发明使用时可作为自定义IP,给出输入端(图像传感器数据输入)和输出端(传输接口使能信号和数据通道)的信号,并且编写能被RISC-V交叉编译工具链编译通过的运行在RISC-V处理器上的程序,即可实现大量数据的自定义压缩存储。

附图说明

图1为本发明整体方案概览示意图,显示了系统三大模块的的连接关系和数据流向。

图2为DDR3接口控制图,展示了DDR3接口控制模块内部主要模块的连接关系和数据流向。

图3为读/写状态机示意图,展示了读/写状态机的主要状态切换流程。

图4为RISC-V处理器微架构图,展示了In-order六级流水线、L1级Cache、外设模块的连接关系。

图5为JPEG-LS协处理器内部主要模块图,展示了其内部主要模块的连接关系和数据流向。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。

一种面向CMOS图像传感器的实时压缩存储内核,包括DDR3接口控制模块、基于RISC-V架构的处理器模块以及基于JPEG-LS压缩算法的协处理器模块。

整体系统框架如图1所示,展示了三大模块的连接关系。从系统角度来看,图像数据由图像传感器产生,由DDR3接口控制模块控制写入DDR3芯片缓存,然后由RISC-V处理器模块校验、调度缓存的图像数据转发到JPEG-LS协处理器进行压缩,压缩后的图像数据由RISC-V处理器模块控制码率并输出。

以连续三帧图像缓存为例(假设第二帧校验出错),具体实施步骤如下:

步骤一,DDR3芯片的存储区域分为8个图像帧,读/写一次DDR3操作的数据量是一帧图像的一行,且DDR3芯片读/写端均有缓冲区控制,因此系统层面可实现同时读/写两帧图像。DDR3接口控制模块如图2所示,当DDR3接口控制模块完成初始化后,接受RISC-V处理器模块的分级复位信号,自动开始缓存第一帧图像数据,并且当DDR3芯片8帧图像未被存满,DDR3接口控制模块控制自动连续写入下一帧图像。

步骤二,RISC-V处理器微架构如图4所示。In-order六级流水线访问RAM,运行控制程序,校验数据并实时监测调度DDR3接口控制模块和JPEG-LS协处理器模块的条件。当DDR3缓存的图像帧达到控制程序设定值时(此处设置为1帧),RISC-V处理器模块发出访问外设请求(与Cache操作互斥),通过AXI4总线访问DDR3接口控制模块,发出调度第一帧图像数据请求,由DDR3接口控制模块控制转发,图像数据直接硬件输出到JPEG-LS协处理器(不通过AXI4);同时RISC-V处理器模块通过AXI4总线访问JPEG-LS协处理器的控制和状态寄存器,写入接收数据信号并开启压缩过程。

步骤三,JPEG-LS协处理器如图5所示,根据RISC-V处理器写入控制和状态寄存器的命令信号以及DDR3接口控制模块转发的图像数据开始压缩图像。首先对图像数据建模预处理,并且计算本组数据的局部梯度值,输出量化结果到编码控制模块。然后编码控制模块判断使用正常编码(Golomb编码)或者游程编码。正常模式编码时,直接将计算的预测误差进行Golomb编码映射;游程编码模式时,进行游程长度扫描,局部梯度值全为0的记为游程长度,若出现局部梯度值不为0的情况,则跳出扫描,跳出之后的长度记为中断长度,然后对游程长度内数据进行归一化编码处理,对中断长度内数据进行Golomb编码。最终将各组编码结果输出到码率控制器,由RISC-V处理器模块控制数据拼接并且控制速度输出码流。

步骤四,当JPEG-LS协处理器模块完成第一帧图像压缩并输出后,此时RISC-V处理器模块校验第二帧图像数据出错,则立即通过AXI4总线发出校验错误信号和错误具体地址信息,控制DDR3接口控制模块清空缓冲区,并且重新按照解码得到的地址读出图像数据。若再次出现校验错误或者RISC-V处理器运行的控制程序指定位置传输图像数据时,均重复本步骤过程。

步骤五,若校验无误且控制程序未指定位置传输图像数据时,均重复步骤一至步骤三过程。

综上所述,本发明为通用型存储压缩内核设计,具体实施方法可随运行在RISC-V处理器上的控制程序的变化而变化,上述步骤只是最基本的一种实现方式,具体实施时,可根据具体应用环境要求,编写不同的控制程序代码,通过RISC-V交叉编译工具链且未调用本发明不支持的库函数,均可实施在本发明上。

以上内容是结合具体的基本的实施方式对本发明所做的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • CMOS图像传感器串行图像数据训练的实时校正系统
  • CMOS图像传感器串行图像数据训练的实时校正系统
技术分类

06120115847349