CN109658337A - 一种图像实时电子消旋的fpga实现方法 - Google Patents
一种图像实时电子消旋的fpga实现方法 Download PDFInfo
- Publication number
- CN109658337A CN109658337A CN201811390551.8A CN201811390551A CN109658337A CN 109658337 A CN109658337 A CN 109658337A CN 201811390551 A CN201811390551 A CN 201811390551A CN 109658337 A CN109658337 A CN 109658337A
- Authority
- CN
- China
- Prior art keywords
- image
- racemization
- coordinate
- fpga
- ram
- 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.)
- Granted
Links
- 230000006340 racemization Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000013507 mapping Methods 0.000 claims abstract description 22
- 241001270131 Agaricus moelleri Species 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 5
- 238000013070 change management Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/60—Rotation of whole images or parts thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- 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
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
本发明提供了一种图像实时电子消旋的FPGA实现方法,采用FPGA+双口ram为平台,输入图像数据流,对原始图像旋转消旋角后得到目标图像,根据消旋参数进行坐标映射,坐标反映射得到P点相近的坐标,取周围四点像素灰度进行双线性差值得到灰度,得到目标图像的相邻四点灰度,将相邻四点灰度同时存储,当所有的像素点都消旋过后,一幅图像消旋完成。本发明通过模型设计、仿真、验证形成模块化的IP产品,实现高带宽输入图像的实时电子消旋。实现的图像电子消旋软核实时性强且可灵活移植,便于三化管理。
Description
技术领域
本发明涉及图像处理、计算机视觉、视频监控等领域,尤其是一种电子消旋的FPGA实现方法。
背景技术
电子消旋(旋转)是为解决由于传感器旋转导致视频画面旋转的一种数字信号处理解决方法。双线性插值法在数字图像处理中最常用,插值效果好且易实现。求取图像目的地址(x’,y’)的像素点灰度时需要先得到对应的四个原始图像像素点坐标,通过坐标读取原始图像像素灰度值,再对其进行双线性插值求取显示图像对应像素灰度值。
将原始图像与消旋后图像置于同一直角坐标系下,图像中心置于坐标系原点处,以图像中心为旋转中心,由图像目的地址(x’,y’)索引原始图像像素点坐标(x,y)的映射,称为逆向映射,反之成为正向映射,正向映射与逆向映射互为反函数,正向映射坐标关系如下:
x′=x*cos(th)-y*sin(th)+W/2
y′=x*sin(th)+y*cos(th)+H/2
其中:(x,y)为原始图像点坐标,(x’,y’)为消旋后对应图像点坐标,(th)为图像正向映射旋转角度,W、H为图像坐标偏移量。
图像坐标经过映射后常常会映射到相邻两坐标之间(坐标带小数),如图1所示,再进行插值处理得到整数点坐标的灰度值。
基于正向映射的消旋方法称为正向消旋,正向映射方法消旋延迟小,不需要缓存原始图像。
基于逆向映射的消旋方法称为逆向消旋,逆向消旋实现简单,但是需要原始图像缓存完成后才能进行消旋处理,逆向坐标映射如图2所示。
目前工程化应用的图像消旋都是基于逆向消旋方法,插值方法多采用双线性插值法,传统的逆向消旋算法需要多次访问同一原始图像坐标点,这样图像消旋就需要使用多倍于原始像素时钟的处理时钟,或者缓存多倍于原始图像数据的数据存储,在遇到高分辨率高帧频图像处理时硬件资源消耗激增。
发明内容
为了克服现有技术的不足,本发明提供一种图像实时电子消旋的FPGA实现方法:
本发明解决其技术问题所采用的技术方案的详细步骤如下:
步骤1:采用FPGA+双口ram为平台,将FPGA与双口ram连接,其中FPGA作为主处理芯片,ram作为图像现存;
步骤2:输入图像数据流:原始视频图像数据流;
步骤3:输入参数:原始图像旋转的角度参数,即输入消旋角th,对原始图像旋转消旋角th后得到目标图像;
步骤4:原始视频图像像素点坐标P根据消旋参数进行坐标映射,计算公式如下:
x′=x*cos(th)-y*sin(th)+W/2
y′=x*sin(th)+y*cos(th)+H/2 (1)
其中:(x,y)为原始图像点坐标,(x′,y′)为消旋后对应图像点坐标,th为图像旋转角度,W,H分别为原始图像到目标图像的坐标偏移量;
由此得到消旋后图像即目标图像所对应的像素点坐标位置P′,取整后得到h′;
步骤5:对h′进行坐标反映射得到P点相近的坐标h,计算公式如下:坐标h未取整;
x=x′*cos(-th)-y′*sin(-th)+W'/2
y=x′*sin(-th)+y′*cos(-th)+H'/2 (2)
步骤6:取h周围四点像素灰度进行双线性差值得到灰度作为h′点灰度;
步骤7:对h′相邻四点(h′(x,y),h′(x+1,y),h′(x+2,y),h′(x+3,y))同时进行步骤5和步骤6操作,得到目标图像的相邻四点灰度,将相邻四点灰度同时存储到32bit ram中,当所有的像素点都消旋过后,一幅图像消旋完成。
本发明的有益效果是通过模型设计、仿真、验证形成模块化的IP产品,实现高带宽输入图像的实时电子消旋。实现的图像电子消旋软核实时性强且可灵活移植,便于三化管理。
附图说明
图1是本发明单点正向映射图。
图2是本发明单点逆向映射图。
图3是本发明硬件架构。
图4是本发明单点正向逆向结合的映射图。
图5是本发明逻辑接口设计。
图6是本发明逻辑框架设计。
图7是本发明逻辑架构框图。
具体实施方式
下面结合附图和实施例对本发明进一步说明。
具体实施过程如下:
步骤1:采用FPGA+双口ram为平台,将FPGA与双口ram连接,如图3所示,其中FPGA作为主处理芯片,ram作为图像现存;
步骤2:输入图像数据流:原始视频图像数据流;
步骤3:输入参数:原始图像旋转的角度参数,即输入消旋角th,对原始图像旋转消旋角th后得到目标图像;
步骤4:原始视频图像像素点坐标P根据消旋参数进行坐标映射,计算公式如下:
x′=x*cos(th)-y*sin(th)+W/2
y′=x*sin(th)+y*cos(th)+H/2 (1)
其中:(x,y)为原始图像点坐标,(x′,y′)为消旋后对应图像点坐标,th为图像旋转角度(由原始图像旋转到目标图像的旋转角,相应地,目标图像旋转-th后可以得到原始图像),W,H分别为原始图像到目标图像的坐标偏移量;
由此得到消旋后图像即目标图像所对应的像素点坐标位置P′,取整后得到h′(如图1所示);
步骤5:对h′进行坐标反映射得到P点相近的坐标h,计算公式如下:坐标h未取整,如图2);
x=x′*cos(-th)-y′*sin(-th)+W'/2
y=x′*sin(-th)+y′*cos(-th)+H'/2 (2)
步骤6:取h周围四点像素灰度进行双线性差值得到灰度作为h′点灰度;
步骤7:对h′相邻四点(h′(x,y),h′(x+1,y),h′(x+2,y),h′(x+3,y))同时进行步骤5和步骤6操作,得到目标图像的相邻四点灰度,将相邻四点灰度同时存储到32bit ram中,当所有的像素点都消旋过后,一幅图像消旋完成。
本发明采用FPGA+双口ram为硬件平台,如图3所示(其中FPGA作为主处理芯片,ram作为图像显存),使用FPGA内部基本的BRAM、DSP等资源,采用标准的HDL语言完成整个设计,采用多位宽大容量的双口ram。
本发明采用32bit位宽的ram作为图像缓存(本发明通过目标图像相邻四点灰度(8bit)同时计算并存储解决了32bit位宽ram的读写问题),大大降低了ram的读写时钟频率,在高速图像应用中有力地降低了图像显存ram读写带宽风险,提高了模块的通用性和可靠性。
本发明采用参数化设置图像输入输出尺寸,接口化图像消旋参数,大大提高了模块的通用性和移植性。
所述的一种图像实时电子消旋的FPGA实现方法按照步骤1~7形成不同模块,在电子消旋应用中对不同模块进行调用,从而提高了整个设计的灵活性和可靠性。
本发明的图像实时电子消旋的FPGA实现方法,采用正逆向映射相结合的图像电子消旋法,先根据原始图像的坐标点映射出目的坐标(依据公式1的逆函数),再根据目的坐标反映射出原始图像坐标相邻点灰度(依据公式1),然后将反映射出的原始图像坐标(h1,h2,h3,h4)对应的原始图像灰度进行双线性插值,即得到目的坐标h’对应的灰度,如图4所示。
1.图像电子消旋模块接口设计:
基于FPGA+双口ram的硬件平台,如图3所示,设计一种通用性、可移植性强的电子消旋模块,需要设计常用视频接口。输入视频接口设计为帧同步、行有效、原始图像灰度值;输入参数接口设计为读取外部参数RAM接口,参数信息反应当前图像的消旋角度;输出信号接口为数据有效、消旋后点坐标、消旋后坐标点灰度值,电子消旋模块接口如图5所示。
2.电子消旋模块架构设计
设计一种合理的、有流处理能力的逻辑架构如图6所示,图像数据先进行行缓存,行缓存用于后面逆向消旋时使用,后进行正向坐标映射,正向映射的目的是找出当前行缓存图像能够映射到的目的图像位置,再根据目的图像坐标(除四取整后的坐标)进行反向映射,因为要进行目标图像像素点数据拼接(目标图像相邻4个8bit灰度拼成32bit格式存储到ram的一个地址),这里需要同时产生相邻的4个目的图像坐标灰度,同时进行双线性插值得到灰度,8bit灰度图像数据拼接成的32bit数据读写时钟将降为像素点时钟的四分之一。
一种图像实时电子消旋的FPGA实现方法,按照上述架构设计将图7中的流程图实现,可以得到图像实时电子消旋的硬件电路,算数运算单元采用FPGA内部DSP实现。中间变量的缓存使用FPGA内部BRAM实现,最后的消旋结果图像缓存至外部ram。
Claims (1)
1.一种图像实时电子消旋的FPGA实现方法,其特征在于包括下述步骤:
步骤1:采用FPGA+双口ram为平台,将FPGA与双口ram连接,其中FPGA作为主处理芯片,ram作为图像现存;
步骤2:输入图像数据流:原始视频图像数据流;
步骤3:输入参数:原始图像旋转的角度参数,即输入消旋角th,对原始图像旋转消旋角th后得到目标图像;
步骤4:原始视频图像像素点坐标P根据消旋参数进行坐标映射,计算公式如下:
x′=x*cos(th)-y*sin(th)+W/2
y′=x*sin(th)+y*cos(th)+H/2 (1)
其中:(x,y)为原始图像点坐标,(x′,y′)为消旋后对应图像点坐标,th为图像旋转角度,W,H分别为原始图像到目标图像的坐标偏移量;
由此得到消旋后图像即目标图像所对应的像素点坐标位置P′,取整后得到h′;
步骤5:对h′进行坐标反映射得到P点相近的坐标h,计算公式如下:坐标h未取整;
x=x′*cos(-th)-y′*sin(-th)+W'/2
y=x′*sin(-th)+y′*cos(-th)+H'/2 (2)
步骤6:取h周围四点像素灰度进行双线性差值得到灰度作为h′点灰度;
步骤7:对h′相邻四点(h′(x,y),h′(x+1,y),h′(x+2,y),h′(x+3,y))同时进行步骤5和步骤6操作,得到目标图像的相邻四点灰度,将相邻四点灰度同时存储到32bit ram中,当所有的像素点都消旋过后,一幅图像消旋完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811390551.8A CN109658337B (zh) | 2018-11-21 | 2018-11-21 | 一种图像实时电子消旋的fpga实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811390551.8A CN109658337B (zh) | 2018-11-21 | 2018-11-21 | 一种图像实时电子消旋的fpga实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109658337A true CN109658337A (zh) | 2019-04-19 |
CN109658337B CN109658337B (zh) | 2023-03-24 |
Family
ID=66112222
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811390551.8A Active CN109658337B (zh) | 2018-11-21 | 2018-11-21 | 一种图像实时电子消旋的fpga实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109658337B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166649A (zh) * | 2019-06-18 | 2019-08-23 | 北京控制与电子技术研究所 | 一种基于fpga的图像消旋器 |
CN111598784A (zh) * | 2020-04-23 | 2020-08-28 | 中国科学院上海技术物理研究所 | 一种基于45度镜宽幅多元并扫成像的像旋校正方法 |
CN111667413A (zh) * | 2020-05-27 | 2020-09-15 | 江苏和正特种装备有限公司 | 一种基于多源传感数据融合处理的图像消旋方法和系统 |
CN111984548A (zh) * | 2020-07-22 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络计算装置 |
CN112601030A (zh) * | 2020-12-09 | 2021-04-02 | 航天科工火箭技术有限公司 | 一种电子消像旋方法及设备 |
CN113962842A (zh) * | 2021-10-20 | 2022-01-21 | 北京航空航天大学 | 一种基于大规模集成电路高层次综合的动态无极消旋系统及方法 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006135796A (ja) * | 2004-11-08 | 2006-05-25 | Fuji Photo Film Co Ltd | 画像処理装置及び画像処理方法 |
CN106342328B (zh) * | 2008-05-23 | 2012-07-25 | 中国航空工业集团公司洛阳电光设备研究所 | 基于tidsp的电子消旋并行处理方法 |
CN105528758A (zh) * | 2016-01-12 | 2016-04-27 | 武汉精测电子技术股份有限公司 | 基于可编程逻辑器件的图像重映射方法及装置 |
CN106408517A (zh) * | 2016-08-31 | 2017-02-15 | 天津大学 | 快速的图像旋转方法 |
CN108154477A (zh) * | 2017-12-26 | 2018-06-12 | 深圳市兴森快捷电路科技股份有限公司 | 一种基于fpga的图像旋转方法 |
WO2018107776A1 (zh) * | 2016-12-13 | 2018-06-21 | 威创集团股份有限公司 | 视频数据旋转方法和系统 |
US20180174280A1 (en) * | 2016-12-16 | 2018-06-21 | Zhuhai Seine Technology Co., Ltd. | Method and Device for Image Rotation, and Apparatus for Image Formation |
CN108280801A (zh) * | 2018-01-10 | 2018-07-13 | 武汉精测电子集团股份有限公司 | 基于双线性插值的重映射方法、装置和可编程逻辑器件 |
-
2018
- 2018-11-21 CN CN201811390551.8A patent/CN109658337B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006135796A (ja) * | 2004-11-08 | 2006-05-25 | Fuji Photo Film Co Ltd | 画像処理装置及び画像処理方法 |
CN106342328B (zh) * | 2008-05-23 | 2012-07-25 | 中国航空工业集团公司洛阳电光设备研究所 | 基于tidsp的电子消旋并行处理方法 |
CN105528758A (zh) * | 2016-01-12 | 2016-04-27 | 武汉精测电子技术股份有限公司 | 基于可编程逻辑器件的图像重映射方法及装置 |
CN106408517A (zh) * | 2016-08-31 | 2017-02-15 | 天津大学 | 快速的图像旋转方法 |
WO2018107776A1 (zh) * | 2016-12-13 | 2018-06-21 | 威创集团股份有限公司 | 视频数据旋转方法和系统 |
US20180174280A1 (en) * | 2016-12-16 | 2018-06-21 | Zhuhai Seine Technology Co., Ltd. | Method and Device for Image Rotation, and Apparatus for Image Formation |
CN108154477A (zh) * | 2017-12-26 | 2018-06-12 | 深圳市兴森快捷电路科技股份有限公司 | 一种基于fpga的图像旋转方法 |
CN108280801A (zh) * | 2018-01-10 | 2018-07-13 | 武汉精测电子集团股份有限公司 | 基于双线性插值的重映射方法、装置和可编程逻辑器件 |
Non-Patent Citations (2)
Title |
---|
孙建林等: "基于FPGA和DSP的图像消旋系统的优化设计", 《无线电工程》 * |
曾祥萍等: "实时图像的电子消旋系统", 《光电工程》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110166649A (zh) * | 2019-06-18 | 2019-08-23 | 北京控制与电子技术研究所 | 一种基于fpga的图像消旋器 |
CN111598784A (zh) * | 2020-04-23 | 2020-08-28 | 中国科学院上海技术物理研究所 | 一种基于45度镜宽幅多元并扫成像的像旋校正方法 |
CN111598784B (zh) * | 2020-04-23 | 2022-08-02 | 中国科学院上海技术物理研究所 | 一种基于45度镜宽幅多元并扫成像的像旋校正方法 |
CN111667413A (zh) * | 2020-05-27 | 2020-09-15 | 江苏和正特种装备有限公司 | 一种基于多源传感数据融合处理的图像消旋方法和系统 |
CN111984548A (zh) * | 2020-07-22 | 2020-11-24 | 深圳云天励飞技术有限公司 | 神经网络计算装置 |
CN111984548B (zh) * | 2020-07-22 | 2024-04-02 | 深圳云天励飞技术股份有限公司 | 神经网络计算装置 |
CN112601030A (zh) * | 2020-12-09 | 2021-04-02 | 航天科工火箭技术有限公司 | 一种电子消像旋方法及设备 |
CN112601030B (zh) * | 2020-12-09 | 2023-04-25 | 航天科工火箭技术有限公司 | 一种电子消像旋方法及设备 |
CN113962842A (zh) * | 2021-10-20 | 2022-01-21 | 北京航空航天大学 | 一种基于大规模集成电路高层次综合的动态无极消旋系统及方法 |
CN113962842B (zh) * | 2021-10-20 | 2022-12-09 | 北京航空航天大学 | 一种基于大规模集成电路高层次综合的动态无极消旋系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109658337B (zh) | 2023-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109658337A (zh) | 一种图像实时电子消旋的fpga实现方法 | |
WO2020001168A1 (zh) | 三维重建方法、装置、设备和存储介质 | |
Gribbon et al. | A real-time FPGA implementation of a barrel distortion correction algorithm with bilinear interpolation | |
CN116050495A (zh) | 用稀疏数据训练神经网络的系统和方法 | |
CN108616717B (zh) | 一种实时全景视频拼接显示装置及其方法 | |
KR20220047284A (ko) | 포비티드 렌더링을 위한 시스템들 및 방법들 | |
CN101958112B (zh) | 手持设备屏幕画面同时实现90度和270度旋转的方法 | |
CN108022202B (zh) | 一种超前消隐几何引擎结构 | |
WO2022089592A1 (zh) | 一种图形渲染方法及其相关设备 | |
WO2022179362A1 (zh) | 一种图像融合方法以及装置 | |
CN111275608B (zh) | 一种基于fpga的遥感影像正射纠正并行系统 | |
CN109685715B (zh) | 一种显示系统中高精度图像无级旋转处理方法 | |
Regan et al. | An interactive graphics display architecture | |
CN110738594A (zh) | 基于fpga的机载电子仪表画面产生方法 | |
US7768521B2 (en) | Image processing apparatus and image processing method | |
WO2024051756A1 (zh) | 特效图像绘制方法、装置、设备及介质 | |
WO2023184754A1 (zh) | 可配置实时视差点云计算装置及方法 | |
CN109872268B (zh) | 一种高码速率遥感卫星原始数据实时快视方法 | |
CN113689448B (zh) | 一种基于FPGA的Sobel+Ewma边缘检测系统及方法 | |
CN111107295A (zh) | 基于fpga和非线性插值的视频缩放方法 | |
CN116312412A (zh) | 一种基于fpga的双三次插值电路 | |
CN114757985A (zh) | 基于zynq改进算法的双目深度感知装置及图像处理方法 | |
CN113962842B (zh) | 一种基于大规模集成电路高层次综合的动态无极消旋系统及方法 | |
JP2000187726A (ja) | デ―タ補間方法および装置及び記憶媒体 | |
Zhang et al. | A real-time image stitching method based on memory space conversion |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |