CN116312412A - 一种基于fpga的双三次插值电路 - Google Patents
一种基于fpga的双三次插值电路 Download PDFInfo
- Publication number
- CN116312412A CN116312412A CN202310080873.7A CN202310080873A CN116312412A CN 116312412 A CN116312412 A CN 116312412A CN 202310080873 A CN202310080873 A CN 202310080873A CN 116312412 A CN116312412 A CN 116312412A
- Authority
- CN
- China
- Prior art keywords
- buffer
- output
- input
- pixels
- bram
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000000872 buffer Substances 0.000 claims abstract description 60
- 239000004698 Polyethylene Substances 0.000 claims abstract description 13
- 238000004364 calculation method Methods 0.000 claims abstract description 8
- -1 polyethylene Polymers 0.000 claims abstract description 3
- 229920000573 polyethylene Polymers 0.000 claims abstract description 3
- 238000003491 array Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 5
- 238000000034 method Methods 0.000 claims description 5
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000008707 rearrangement Effects 0.000 claims description 3
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/006—Details of the interface to the display terminal
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/121—Frame memory handling using a cache memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于FPGA的双三次插值电路,电路的工作方式为:首先控制单元从外部DDR内存通过DMA读取像素到输入缓存中,读取的像素将被循环写入输入缓存中,然后PE直接读取输入缓存到内部运算寄存器中,PE算出高清图像像素点后,通过输出缓存,对PE的输出进行重排,使得硬件输出直接对接高清视频接口。本发明减少了行缓存的数量,提高每个时间周期的计算量,最大化吞吐量,降低了计算所需要的的延迟时间;设计了输出缓存,使得该系统可以对接常规视频接口。
Description
技术领域
本发明属于电子器件技术领域,尤其涉及一种基于FPGA的双三次插值电路。
背景技术
近年来,由于显示技术的发展,显示器制造的成本逐渐降低,支持4K超高清(UHD)分辨率的电视机在市场上成为主流。然而,主流的视频源还是以高清(HD)和全高清(qHD)为主,在高清屏幕上直接呈现低清内容显示效果较差,实时超分辨率系统正是一种将低清视频缩放到高清视频的硬件系统,使得视频的清晰度与高清屏幕相匹配。高质量的实时视频超分辨率系统对于4K的影音系统十分关键。超分辨率方法已被人们广泛的研究,人们提出了各种解决方案。
双三次插值作为一种经典的超分辨率算法,具有能够高质量重建图像的特点,但其计算复杂度十分之高。对于2倍超分辨率问题,假设图像的高宽为m×n,那么复杂度为0(64mn)。因此设计高效的硬件架构来加速双三插值成为一个难题。双三次插值不仅可以用于超分辨系统,更可以嵌入到各种图像处理系统之中,有着广泛的用途,因此设计双三次插值的硬件加速器具有深远的意义。
现有技术一的技术方案
早年,Nuno等人[https://doi.org/10.1109/RECONFIG.2005.34]提出的双三次插值硬件架构能够实现比当时的4核2.4GHzCPU软件实现快10倍的速度。他们提出的双三次插值架构计算核心为4级流水线,可以做到每4个时间周期计算出一个像素。
现有技术一的缺点
但技术一的延迟较高,需要至少缓存4行像素后才能开始计算。而且计算单元需要4个时间周期才能算出一个像素点,数据吞吐量较低。
发明内容
本发明的目的在于解决上述现有技术存在的缺陷,提供一种基于FPGA的双三次插值电路。
本发明主要解决目前双三次插值电路设计中的以下几个问题:
1)减少行缓存的数量;2)提高每个时间周期的计算量,最大化吞吐量;3)降低计算所需要的延迟时间;4)设计输出缓存,使得该系统可以对接常规视频接口,比如VGA接口。
本发明采用如下技术方案:
一种基于FPGA的双三次插值电路,其中,包括PE,输入缓存,输出缓存,内部运算寄存器。电路的工作方式为:首先控制单元从外部DDR内存通过DMA读取像素到输入缓存中,读取的像素将被循环写入输入缓存中,然后PE直接读取输入缓存到内部运算寄存器中,PE算出高清图像像素点后,通过输出缓存,对PE的输出进行重排,使得硬件输出直接对接高清视频接口。
进一步的是,输入缓存包含三块循环行缓存,当最后一块行缓存的最后一个像素被写完后,下一个像素将重新从第一块行缓存的第一个像素开始写,使用移位寄存器提供输入图小块的前3列。
进一步的是,输入图小块的前3列的值将从三块行缓存以及外部DDR的输入来更新。
进一步的是,PE为两级流水线,插值运算由4次MAC操作,阶段1为X方向插值,阶段2为y方向插值。输入的像素经过MAC金字塔后得到4次MAC的结果,这个结果为阶段1、即X方向插值的结果,随之,计算结果被输入到触发器中,延时一拍输出到阶段2的电路,阶段2使用和阶段1同样的MAC金字塔结构,输入为阶段1的结果,也就是4个X方向插值的结果,输出为最终像素值。
进一步的是,输出缓存由两块同余缓存阵列构成,同余缓存阵列的工作方式为:对于一行像素,使用4块BRAM缓存,分别为BRAM0,BRAM1,BRAM2,BRAM3,以组成同余缓存,坐标为k的像素存入BRAMkmod4中,地址为floor(k/4)。BRAM缓存配置为双端口RAM,可以同时写入1个像素和读取4个像素,这样4块BRAM可以实现在一个时钟周期内写入4个像素和读取16个像素。由于PE输出为4×4的矩阵,包含四行,所以使用16块BRAM,以组成同余缓存阵列。在一个时间周期内,可以同时将PE输出的16个像素写入到同余缓存中,也可以同时读取一行中连续的16个像素值,实现了输入输出速率的匹配,从而达到了数据重排的效果。
进一步的是,还包括为了避免读写之间的冲突,硬件系统使用了乒乓缓存分离数据的写入和读取,先写满一个同余缓存阵列,然后再读取这个同余缓存阵列,同时写另外一个同余缓存阵列,两个同余缓存阵列交替读写,保证数据可以连续输入和输出。
本发明的有益效果:
本发明提出了一种基于FPGA的双三次插值电路。其优点在于:1)设计了最优的输入缓存方案,减少行缓存的数量到3行。2)每个时间周期计算单元可以计算出1个像素,达到理论上每拍顺序输入像素时能够达到的最大吞吐量。3)计算延迟降低到只需要缓存1行所用的时间周期,在理论上达到了最优的延时时间。4)设计了输出缓存,使得该系统可以对接常规视频接口,比如VGA接口。
附图说明
图1为本发明的硬件设计数据流;
图2(a)为行缓存最后一个像素更新示意图(第n拍);
图2(b)为行缓存最后一个像素更新示意图(第n+1拍);
图3(a)为行缓存当前输出状态示意图;
图3(b)为输入图小块构成图;
图4为PE结构图;
图5(a)同余缓存阵列逻辑排布;
图5(b)同余缓存阵列实际排布。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的一种基于FPGA的双三次插值电路,如图1所示,一个基于FPGA的加速器通常包含了PE(ProcessingElement,处理单元)、片上内存、寄存器、LUT。控制单元首先从外部DDR(DualDataRate)内存通过DMA(DirectMemoryAccess)读取数据到片上内存中,然后PE直接读取片上内存到内部运算寄存器中,即图1中的D触发器,PE算出高清图像像素点后,通过输出缓存重排像素后可以输出到VGA接口等高清接口。本发明用片上内存BRAM(BlockRAM)实现三块循环行缓存,从外部DDR读取的像素将被循环写入这三块行缓冲中。如图2(a)-图2(b)所示,当最后一块行缓存的最后一个像素被写完后,下一个像素将重新从第一块行缓存的第一个像素开始写。本发明使用移位寄存器来提供输入图小块的前3列,这些值将从三块行缓存以及外部DDR的输入来更新,更新方式如图3(a)-图3(b)所示。如图3(a)所示,BRAM的输出为当前指针所指向的像素。图3(b)表示输入图小块的构成,实线方块为触发器,最后一列虚线方块分别表示三个行缓存BRAM的输出,也就是图3(a)所示BRAM的输出,以及DDR通过DMA的输出。这样。使用移位寄存器、行缓存、外部DDR提供的数据,就可以在每个时钟周期都更新输入图小块,实现右移一个像素的效果,将其写入PE的内部运算计算器中。
如图4所示,给出了流水线PE的设计,两个阶段之间的矩形表示触发器,f11到f14表示LR图像小块的第一行像素,p为输出像素(图中省略了第二行像素到第四行像素的部分),本发明设计了2级流水线PE,以减少数据的延迟,提高运行频率。插值运算由4次MAC完成,本发明采用了金字塔的结构设计4次MAC操作,以减少数据延迟,设计结构如图4所示。阶段1为X方向插值,阶段2为y方向插值。输入的像素经过MAC金字塔后得到4次MAC的结果,这个结果为阶段1、即X方向插值的结果,随之,计算结果被输入到触发器中,延时一拍输出到阶段2的电路。阶段2使用和阶段1同样的MAC金字塔结构,输入为阶段1的结果,也就是4个X方向插值的结果,输出为最终像素值。
对于输出部分,本发明设计了同余缓存阵列。对PE的输出进行重排,避免了将输出结果重新写回外部DDR的必要,使得硬件输出可以直接对接高清视频接口,比如VGA接口。对于一行像素,本发明使用4块BRAM缓存,分别为BRAM0,BRAM1,BRAM2,BRAM3,以组成同余缓存,坐标为k的像素存入BRAMkmod4中,地址为floor(k/4)。BRAM缓存配置为双端口RAM,可以同时写入1个像素和读取4个像素,这样4块BRAM可以实现在一个时钟周期内写入4个像素和读取16个像素。由于PE输出为4×4的矩阵,包含四行,所以本发明使用16块BRAM,以组成同余缓存阵列。在一个时间周期内,可以同时将PE输出的16个像素写入到同余缓存中,也可以同时读取一行中连续的16个像素值,实现了输入输出速率的匹配,从而达到了数据重排的效果。图5(a)-图(b)详细表示了这一过程。
如图5(a)、图5(b)所示,缓存阵列由4×4块BRAM组成,缓存4行像素,每块BRAM可以同时写入一个像素或者读取四个像素。图5(a)为缓存像素在图像中的排列,图5(b)为实际物理存储排列方式。
为了避免读写之间的冲突,本发明使用了乒乓缓存分离数据的写入和读取,先写满一个同余缓存阵列,然后再读取这个同余缓存阵列,同时写另外一个同余缓存阵列,两个同余缓存阵列交替读写,保证数据可以连续输入和输出。
实施例
本发明在一块Zynq-7020型号的FPGA上实现了本发明提出的硬件,源图像大小为960×540,超分辨率图像大小为3840×2160。FPGA上实现的双三次插值硬件通过AXI(AdvancedeXtensibleInterface)总线读取内存中的图像数据,并实时计算出结果输出到HDMI接口。系统运行频率为100MHz,此时测量出系统运行的帧率可以达到192.9。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种基于FPGA的双三次插值电路,其特征在于,包括PE,输入缓存,输出缓存,内部运算寄存器;其中,基于FPGA的双三次插值电路的工作方式为:首先控制单元从外部DDR内存通过DMA读取像素到输入缓存中,读取的像素将被循环写入输入缓存中,然后PE直接读取输入缓存到内部运算寄存器中,PE算出高清图像像素点后,通过输出缓存,对PE的输出进行重排,使得硬件输出直接对接高清视频接口。
2.根据权利要求1所述的基于FPGA的双三次插值电路,其特征在于,输入缓存由三块循环行缓存组成,当最后一块行缓存的最后一个像素被写完后,下一个像素将重新从第一块行缓存的第一个像素开始写,三块循环行缓存可以给输入图小块提供三个像素。
3.根据权利要求2所述的基于FPGA的双三次插值电路,其特征在于,输入图小块的前3列的值将从三块行缓存以及外部DDR的输入来更新。
4.根据权利要求2所述的基于FPGA的双三次插值电路,其特征在于,PE为两级流水线,插值运算由4次MAC操作,阶段1为X方向插值,阶段2为y方向插值,输入的像素经过MAC金字塔后得到4次MAC的结果,这个结果为阶段1、即X方向插值的结果,随之,计算结果被输入到触发器中,延时一拍输出到阶段2的电路,阶段2使用和阶段1同样的MAC金字塔结构,输入为阶段1的结果,也就是4个X方向插值的结果,输出为最终像素值。
5.根据权利要求1所述的基于FPGA的双三次插值电路,其特征在于,输出缓存由两块同余缓存阵列构成,同余缓存阵列的工作方式为:对于一行像素,使用4块BRAM缓存储存,分别为BRAM0,BRAM1,BRAM2,BRAM3,同余缓存即将坐标为k的像素存入BRAMkmod4中,地址为floor(k/4),BRAM缓存配置为双端口RAM,同时写入1个像素和读取4个像素,这样4块BRAM实现在一个时钟周期内写入4个像素和读取16个像素,由于PE输出为4×4的矩阵,包含四行,所以使用16块BRAM,以组成同余缓存阵列,在一个时间周期内,同时将PE输出的16个像素写入到同余缓存中,同时读取一行中连续的16个像素值,实现了输入输出速率的匹配,从而达到了数据重排的效果。
6.基于FPGA的双三次插值电路,其特征在于,还包括为了避免读写之间的冲突,硬件系统使用了两块如权利要求5所述的同余缓存,以组成乒乓缓存分离数据的写入和读取,先写满一个同余缓存阵列,然后再读取这个同余缓存阵列,同时写另外一个同余缓存阵列,两个同余缓存阵列交替读写,保证数据连续输入和输出。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080873.7A CN116312412A (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的双三次插值电路 |
ZA2023/02758A ZA202302758B (en) | 2023-02-08 | 2023-02-27 | Bicubic interpolation circuit based on fpga |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080873.7A CN116312412A (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的双三次插值电路 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116312412A true CN116312412A (zh) | 2023-06-23 |
Family
ID=86603616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310080873.7A Pending CN116312412A (zh) | 2023-02-08 | 2023-02-08 | 一种基于fpga的双三次插值电路 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116312412A (zh) |
ZA (1) | ZA202302758B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117277998A (zh) * | 2023-11-23 | 2023-12-22 | 西安智多晶微电子有限公司 | 一种应用于fpga的分频信号调整电路 |
-
2023
- 2023-02-08 CN CN202310080873.7A patent/CN116312412A/zh active Pending
- 2023-02-27 ZA ZA2023/02758A patent/ZA202302758B/en unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117277998A (zh) * | 2023-11-23 | 2023-12-22 | 西安智多晶微电子有限公司 | 一种应用于fpga的分频信号调整电路 |
CN117277998B (zh) * | 2023-11-23 | 2024-03-19 | 西安智多晶微电子有限公司 | 一种应用于fpga的分频信号调整电路 |
Also Published As
Publication number | Publication date |
---|---|
ZA202302758B (en) | 2023-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
USRE41413E1 (en) | Computer system controller having internal memory and external memory control | |
US7262776B1 (en) | Incremental updating of animated displays using copy-on-write semantics | |
CN110958362A (zh) | 基于分块查表的图像校正系统及其方法 | |
CN106846255B (zh) | 图像旋转实现方法及装置 | |
CN106201363B (zh) | 视频流像素级数据随机实时访问的存储器及存储方法 | |
CN116312412A (zh) | 一种基于fpga的双三次插值电路 | |
CN105354809A (zh) | 一种基于输出图像像素位置索引的预畸变方法和装置 | |
US5621866A (en) | Image processing apparatus having improved frame buffer with Z buffer and SAM port | |
CN109658337A (zh) | 一种图像实时电子消旋的fpga实现方法 | |
US20030142102A1 (en) | Texture mapping performance by combining requests for image data | |
CN104952088A (zh) | 一种对显示数据进行压缩和解压缩的方法 | |
CN109685715B (zh) | 一种显示系统中高精度图像无级旋转处理方法 | |
US20020171649A1 (en) | Computer system controller having internal memory and external memory control | |
CN109587500B (zh) | 一种基于fpga的动态可重配置视频缩放器 | |
CN103501419A (zh) | 一种基于fpga实现图像转置的方法 | |
CN108280801B (zh) | 基于双线性插值的重映射方法、装置和可编程逻辑器件 | |
CN112188262A (zh) | 图像处理方法、装置及系统和计算机可读介质 | |
CN111107295B (zh) | 基于fpga和非线性插值的视频缩放方法 | |
WO2021035643A1 (zh) | 监视图像生成方法、装置、设备和系统、图像处理设备 | |
US8812892B1 (en) | Hardware WCK2CK training engine using meta-EDC sweeping and adjustably accurate voting algorithm for clock phase detection | |
CN116166185A (zh) | 缓存方法、图像传输方法、电子设备及存储介质 | |
CN206021233U (zh) | 视频流像素级数据随机实时访问的存储器 | |
CN115511709A (zh) | 一种自适应的超分辨率图像采样系统 | |
Gong et al. | Design of high-speed real-time sensor image processing based on FPGA and DDR3 | |
CN114119372A (zh) | 一种基于fpga的高精度图像缩放的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |