一种基于FPGA的高效摄像头接口架构外文翻译资料

 2023-05-16 15:33:42

英语原文共 17 页,剩余内容已隐藏,支付完成后下载完整资料


一种基于FPGA的高效摄像头接口架构

摘要:在大多数实时视频处理应用中,摄像机用于捕获实时视频,通过嵌入式系统/现场可编程门阵列(fpga)对其进行处理并将其转换为显示设备支持的合适格式。在这种情况下,摄像头和显示设备之间的接口分别对捕获和显示的视频的质量起着至关重要的作用。在本文中,我们提出了一种高效的基于fpga的低成本互补金属氧化物半导体(CMOS)相机接口架构,用于实时视频流和处理应用。我们工作的新颖之处在于为控制器、转换器和几个接口模块设计了优化的架构,以实时有效地提取和处理视频帧。在图像采集和视频图形阵列(VGA)生成器块的设计中充分利用了并行性的灵活性。VGA到高清晰度多媒体接口HDMI转换所需的显示数据通道转换块已经被修改,以适应我们的目标,分别通过使用简单的逻辑结构,使用优化的有限状态机和转换最小化差分信号编码器。将整个体系结构的硬件利用率与现有体系结构进行了比较,结果表明所提出的体系结构比现有体系结构节省了近44%的硬件资源。

关键字:FPGA;摄像头;HDMI

1.前言

视觉是人类最具潜力的感官之一[1],因此基于实时视觉的系统或系统的一部分通常用于各种实时应用。一般来说,任何实时视频/图像处理技术都可以分为四个主要处理模块,即传感器、存储器、处理器和显示器[1]。传感器:用于从外部环境捕获视频序列,并将其转换为适合进一步处理的相应电信号。内存:它是一个内部RAM,捕获的视频序列被临时存储在其中以供进一步处理。该块还有助于同步传感器和处理器之间的数据,其中两个块以不同的频率运行。处理器:在本部分中,实现了设计所需的处理算法/架构。该块接受来自内存的数据。显示器:该块接受处理后的数据,并将其转换为显示设备支持的所需格式。

在本文中,我们提出了一种新的超大规模集成电路架构,以将低成本互补金属氧化物半导体(CMOS)相机和显示设备与处理元件有效地连接到FPGA板,并使用显示器等显示设备直接显示视频。整个体系结构用于在不影响体系结构精度的情况下获得较低的硬件,该体系结构使用Vivado 2018.3工具实现,其中编码由标准的超高速集成电路硬件描述语言(VHDL language)执行[3]。该架构分别使用Digilent Nexys Video(xc7a200t-1sbg484c)FPGA板和[4]Zybo Z7-10(xc7z010-1clg400c)FPGA板[5]进行了规模化和实际测试,其中Nexys Video为中级FPGA,Zybo Z7-10为低级FPGA。FPGA的级别通常是由成本和硬件复杂性定义的,如逻辑存储器、内存和DSP模块等。

1.1贡献

本文的创新概念如下:

  1. 摄像头控制器模块通过改进的串行摄像头控制总线(SCCB)控制模块在架构级别进行优化,图像捕获和视频图形阵列(CA)生成器块使用并行架构进行优化。
  2. 图像捕捉和视频图形阵列(VGA)生成器使用并行架构进行优化。
  3. 不同颜色平面转换块的设计复杂性在建筑层面上通过加法器和移位器最小化。
  4. vga到高清晰度多媒体接口HDMI的转换块分别通过修改显示数据通道(DDC)转换和TMDS编码器块进行优化,其中,使用优化的有限状态机(FSM)修改DDC转换,使用比较器和加法块优化过渡最小差分信号(TMDS)编码器。

2.相关的工作

通常,具有软硬件协同仿真技术的嵌入式系统由于易于实现而被广泛应用于视频处理系统。Said等人[6]提出了一种视频接口技术,使用Xilinx EDK工具与Micro-Blaze嵌入式处理器进行接口,并使用嵌入式C语言实现视频接口体系结构,将语言写入处理器。该系统使用Micron MT9V022 VGA摄像机以每秒60帧的速度捕捉视频,然后使用标准DVI接口显示视频。该架构需要大量的硬件资源,整体运行速度较低。Abdaoui等人[7]提出了一种用于捕获视频的类似技术,该技术在Virtex-5 FPGA上实现,并带有一个协处理器来控制整体操作。这种方法增加了对区域的需求,同时降低了整体频率。Biren和Berry[8]提出了一种新的相机接口架构,该架构使用FPGA制造商提供的不同IP核在Altera Cyclone-III FPGA上实现。IP核的使用增加了体系结构的总体硬件利用率。除了摄像机接口外,还实现了许多实时视频处理算法。基于立体视觉的视频校正由Maldeniya等人[9]提出,其中使用双摄像头捕捉立体图像,并使用Xilinx EDK工具中的嵌入式处理器,通过100Base-T协议与Spartan-3E FPGA接口。类似的,实时运动跟踪是由Mos queron等人[10]提出的。其中,使用嵌入式FPGA从摄像机捕获的实时视频中检测运动并处理。这种架构的缺点是整体帧率较低。有必要理解传感器的设计,以使相机能与任何处理元素正确地交互。ZBao等人[11]提出了一种64 x 64阵列图像传感器结构,该结构采用UMC 0.18mu;m技术设计,根据应用程序的不同,具有不同的用户定义的操作模式。用于读取传感器的电路依次捕获阵列中的行,并产生模拟电压,然后由芯片上的模拟到数字转换器进行数字化。这种架构能够以100帧/秒的速度生成64 x 64分辨率的图像。

3.提出的架构

Digilent Nexys Video [4]和Zybo Z7-10 [5] FPGA板分别用接口Omni vision OV7670[12]和OV9655[13]相机,进一步使用两线SCCB接口[14]初始化其内部电阻生成特定的用户定义视频格式。所提出的用于将摄像机与FPGA接口的架构如图1所示。在提出的体系结构中,不同的块需要不同的时钟频率(即clk1,clk2和clk3),以生成合适的视频序列输出,用于捕获和显示。因此,用Xilinx Vivado[16]工具中提供的Phase Locked Loop/MMCE IP核[15]作为时钟生成器,该体系结构可以为适当的操作准确地生成不同的时钟频率。

最初,摄像头由Optimised Controller模块配置,使用两种有线SCCB接口[14]以30帧/秒的速度生成640 x 480分辨率的视频序列。生成的视频为RGB565[17],为了使摄像机与设计的块之间保持适当的同步,在通过寄存器设置完成摄像机配置后,FPGA应通过PMOD Ports[18]开始串行接收摄像机的像素值。

Optimised Image Capture块使用相机的相应同步信号(VSYNC和HSYNC)将相机输出转换为适当的串行格式,然后转换为RGB444[17]格式由Optimised RGB565到RGB444转换块。转换后的像素值临时存储到内存中[19],这有助于在不同频率下操作的不同块之间同步像素值[20]。将一行写入内存后,Optimised VGA siginal Generator块通过Optimised RGB444到RGB565转换块读取存储的像素数据,然后将该数据转换成相应的VGA信号,并分别带有适当的同步信号(即VSYNC和HSYNC)。现在,根据模式切换值,颜色或灰色像素格式被优化颜色到灰色转换和MUX块选择,然后被优化VGA到HDMI转换块用来生成相应的HDMI格式。YGA和HDMI信号连接到Port选择块的输入端,Port选择块根据端口选择值从输入端选择一个特定的显示格式的信号,端口选择值连接到显示设备,如显示器/电视。

图1 摄像头与FGPA架构图

FPGA板支持VGA端口显示,其他板支持HDMI端口显示。因此,通过一些小的用户自定义修改,我们提出的架构可以在任何类型的FPGA板上实现。

3.1优化控制器

Optimised Controller单元用于根据相应的数据表[13]对相机的内部寄存器进行编程,以设置适当的操作模式。其中,考虑图像大小为640 x 480,帧数为30帧,像素值用RGB565格式表示[17]。优化控制器的架构如图2所示,它由寄存器集和修改的SCCB格式生成块组成。

3.1.1寄存器设置

两种摄像机生成的视频流规格(OV7670和OV9655),如视频大小、颜色规格、帧率等,可由设计人员根据应用需求通过相应的数据表进行设置[13]。为了生成高质量的视频,必须在适当的序列中在相应的地址上分配适当的值,分配过程中的任何错误寄存器地址和值肯定会影响生成的视频流的质量。因此,正确的寄存器地址和值被存储到寄存器集块中,然后被架构用来指定正确的视频格式。

图2 优化控制器架构

3.1.2修改SCCB格式生成

OmniVision摄像机使用SCCB接口[14]协议访问其内部寄存器,以定义摄像机生成的视频规格。SCCB的缩写是Serial Camera Control Bus,是Philips Inter-Integrated Circuit (PC)[21]协议的简化版本。Modified SCCB Format Generation块从寄存器集块中获取地址和数据,并将其转换为相应的SCCB格式值,因此通常使用串行数据传输技术。用于实现该块的伪代码在算法1中给出。从算法1可以看出,整个块是用计数器、比较器和基本逻辑组件设计的。该算法的设计目标是在不影响功能的情况下优化硬件参数。额外的信号(发送和接收)被考虑在两个相应的块之间进行适当的同步。类似地,信号id被用来定义相机寄存器的工作模式(读或写),通过根据相应的相机数据表考虑一个特定的值[13]

现有的两线PC或SCCB接口体系结构大多使用FSM模型[22]或相互依赖的计数器[23]进行串行化,增加了设计复杂度和硬件要求。

3.2 优化图像捕捉

为了在视频帧中出现的不同像素之间进行适当的同步,必须根据来自摄像机的各种同步信号(分别是PCLK、HREF和VSYNC)来捕获像素数据。这个块的主要任务是使用这些同步信号通过适当的地址(wr addr)和像素值(数据输出)以及写入使能(zer)信号将像素数据存储到内存中。优化图像捕获块的框图如图3所示该架构通过比较器1和比较器2分别检查VSYNC和HREF信号,从相机中捕获像素值,并将其存储到内存块中。这两个块分别生成中间复位信号,rst_temp和使能信号,en,然后用于重置整个体系结构,并保持在以前的值。只有当HREF= 1和VSYNC= 0时,比较器1和比较器2才会使rst_temp和en信号升高。在这种情况下,相机在每一个非重叠的PCLK脉冲上周期性地发送一个像素值。反馈体系结构是通过连接AND,Gate, Merger_1, DFF_1和Concatenation块,这些块能够在有效的条件下跟踪第二个PCLK,通过使wr = 1,它们迫使内存块进入写模式。同时使用DFF_2、Merger_2和DFF_3将摄像机在每个上升沿PCLK处输入的数据进行合并,生成RGB565格式的视频像素值[17]。另外,Counter和DFF_4块用于生成精确的写地址值wr_addr,以将像素值存储在正确的预定义位置。该架构使用基本门来降低硬件复杂度和逻辑利用率[3]

3.3 彩色平面转换

OV7670[12]和OV9655[13]相机支持RGB565, RGB555, RGB444, Raw Bayer和Processed Bayer彩色格式,但RGB565格式[17]被认为是从这些相机生成的视频帧[13]。这是因为它更接近现代大多数显示设备通常使用的RGB888颜色空间格式。因此,在由显示设备转换(即RGB565到RGB888格式)时,产生的错误会非常少。为了在内存单元中临时存储帧像素,使用这种格式需要大量的内存,而这在大多数中低频段fpga中是不存在的。因此,将RGB565格式转换为RGB444格式,将内存需求降低了近25%。但RGB444格式不适合产生高质量的彩色像素,也不适合许多应用程序。因此,需要将存储的RGB444格式转换为相应的RGB565格式。

图3 优化图像捕获架构

3.3.1优化了RGB565到RGB444的转换

转换公式如式(1)所示:

(1)

式中,xr→RGB565格式的红色像素值。xg→RGB565格式的绿皮值。xb→RGB565格式的蓝色像素值。Xg→RGB444格式的红色像素值。

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[591316],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版