CN102131092B - 一种嵌入式视频传输方法 - Google Patents
一种嵌入式视频传输方法 Download PDFInfo
- Publication number
- CN102131092B CN102131092B CN 201010621239 CN201010621239A CN102131092B CN 102131092 B CN102131092 B CN 102131092B CN 201010621239 CN201010621239 CN 201010621239 CN 201010621239 A CN201010621239 A CN 201010621239A CN 102131092 B CN102131092 B CN 102131092B
- Authority
- CN
- China
- Prior art keywords
- video
- unit
- gpio
- emc
- cpu
- 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.)
- Active
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明公开了一种嵌入式视频传输方法,在所述方法中,采用FPGA实现了MicroBalze软核CPU、外部存储器控制器EMC、通用输入输出口GPIO,I2C。在视频传输过程中,CPU模块通过I2C、EMC和GPIO对外部视频解码单元、外部视频压缩单元和信道编码单元进行交互,实现视频数据从视频解码单元到视频压缩单元再到信道编码单元的传输。采用本发明实现了基于单个芯片的数据压缩和信道编码,并依靠MicroBalze软核CPU的控制能力有效地协调了低码率下速度的不匹配性,实现了视频采集与信道编码速度不匹配时的应用。
Description
技术领域
本发明涉及一种嵌入式视频传输方法,特别适用于输入视频流和输出视频流不匹配时的的视频传输,属于嵌入式技术领域。
背景技术
Xilinx公司是全球最大的FPGA生产厂商,Xilinx公司针对PowerPC和MicroBlaze推出了EDK开发工具。用于FPGA片内硬件***的建立和应用软件***的产生,即整个SOPC***的开发都是在Xilinx的EDK(嵌入式开发工具集)下完成的。Xilinx公司提供的嵌入式开发工具包EDK提供了SOPC工程管理接口的集成开发环境XPS(Xilinx Platform Studio)在此环境中包含了硬件平台架构、软件开发、布局布线实现、仿真与调试等SOPC设计中各个环节所需的所有工具和接口。若用户需要添加自己的逻辑模块和约束,则需要在ISE中完成。
针对低码速率下的视频图像应用是人们一直研究的热点,视频传输***的小型化、设计可重构性、对于视频传输***的构建具有重要意义。该方法构建的设备完成特定场景的拍摄,通过无线链路将视频图像传输至接收设备,实现了实时观测的目的。该方法的输入源为数据量为165Mbps(PAL制彩色图像)原始图像,信道传输速率25Kbps。针对原始数据量和传输速率的矛盾,该方法利用FPGA内部的软核CPU实现视频解码和压缩芯片配置及***总体数据流控制、信道编码模块交由逻辑设计单元,代替了以往***中需要专门添加控制CPU才可以实现的复杂控制功能,借助软核CPU建立起的一种握手机制,实现了一种低码速率下的视频传输应用。
现有的视频应用主要集中在通过特定芯片实现。且一旦硬件构建完毕则不具备可重构性,基于软核CPU的***硬件实现具有很大的灵活性。不同于通常的逻辑设计和控制设计交由不同芯片实现的方案,基于软核CPU的***将逻辑设计和控制设计有效的组织起来,将原本需要多功能芯片才能实现的功能集成单片实现,有效地节省了***面积,且基于软核CPU的***在***开发时将FPGA内的硬件逻辑开发和软件开发进行隔离,有效的促进了***开发的速度。
发明内容
本发明的目的在于:提供了一种嵌入式视频传输方法,本发明利用FPGA内的嵌入式MicroBalze软核CPU的灵活可配置性,实现了基于单个芯片的数据压缩和信道编码,并依靠MicroBalze软核CPU的控制能力有效地协调了低码率下速度的不匹配性,实现了视频采集与信道编码速度不匹配时的应用。
本发明的技术解决方案是:
一种嵌入式视频传输方法,通过以下步骤实现:
步骤1:在FPGA中实现MicroBalze软核CPU、外部存储器控制器EMC、通用输入输出口GPIO,I2C;所述CPU用于对EMC、GPIO、I2C进行调度;所述EMC与外部视频压缩单元进行交互;所述GPIO与外部信道编码单元进行交互;所述I2C与外部视频解码单元以及用于存储外部视频压缩单元固件的片上存储器进行交互;
步骤2:加电后对CPU、EMC、GPIO、I2C、片上存储器模块和进行初始化;
步骤3:CPU模块通过I2C配置外部视频解码单元:视频输入采用PAL制,视频输出采用BT.656模式;
步骤4:当外部视频解码单元检测到视频信号输入后,CPU模块通过EMC配置外部视频压缩单元工作在开阈值中断模式,并转入步骤5;
步骤5:视频信号经视频解码单元处理后输出到外部视频压缩单元中,外部视频压缩单元将输入的数据压缩后利用FIFO缓冲区进行存储;转入步骤6;
步骤6:若外部视频压缩单元的FIFO缓冲区达到设定的存储阈值,则启动阈值中断,使视频压缩单元的中断信号IRQ有效,CPU模块响应IRQ进入中断,并转入步骤7;
步骤7:CPU模块利用EMC读取视频压缩单元的FIFO缓冲区中的压缩数据,并利用GPIO将压缩数据输出到外部信道编码单元;由信道编码单元对输入的压缩数据进行处理后输出;
步骤8:在信道编码单元工作时,CPU模块判断信道编码单元结束标志信号FLAG是否有效,若FLAG有效,则信道编码单元工作结束,返回步骤6;若FLAG无效,且IRQ有效,则关闭视频解码单元的视频输入;等待IRQ无效后,开启视频解码单元视频输入,并返回步骤6。
所述GPIO与外部信道编码单元间通过双口RAM传递输出的压缩数据。
本发明与现有技术相比具有如下优点:
(1)本发明采用软硬件协同的设计方法,构建了片上***。本发明不同于通常的采用不同芯片实现逻辑设计和控制设计的方案,而是基于软核CPU将逻辑设计和控制设计有效的组织起来,将原本需要多个功能芯片才能实现的功能通过集成单片实现,有效地节省了***面积。
(2)本发明采用C语言实现了I2C、EMC和GPIO。并采用I2C配置外部视频解码单元ADV7180,利用GPIO实现压缩数据的输出;利用EMC控制外部视频压缩单元ADV212,省略了配置ADV212时序的设计;对于信道编码则采用逻辑设计,实现设计过程中软硬件同时进行,大大提高了设计的进程。
(3)本发明采用双口RAM实现了基于C语言的GPIO与基于VHDL语言的信道编码单元的交互。由于C语言设计不能精确控制时钟,在实现时,先采用双口RAM对GPIO输出的压缩数据进行接收,再通过双口RAM将压缩数据输出到信道编码单元,解决了C语言与VHDL语言的同步问题。
附图说明
图1为本发明原理组成框图;
图2为双口RAM配置图;
图3为本发明流程图。
具体实施方式
下面就结合附图对本发明具体实施方式做进一步介绍。
采用本发明利用单片FPGA实现了多个功能芯片才能实现的功能,缩小了视频传输***,提高了视频传输***设计的可重构性。
如图1所示,为采用本发明实现的视频传输***的设计图。在具体设计时,采用了软硬件协同设计的方案,FPGA内部实现分为两部分:基于MicroBalze软核CPU的嵌入式***和逻辑设计(信道编码单元),配备的外设如下:
1、I2C模块:通用接口,用以配置视频解码器ADV7180和从片上存储器中读取外部视频压缩单元(视频压缩芯片ADV212)的固件;
2、外部存储器控制器EMC:与ADV212接口,用于配置ADV212;
3、通用输入/输出口GPIO:产生复位信号、传输ADV212的压缩数据至逻辑设计;
5、片上存储器:C语言程序运行的载体,由FPGA的片内RAM实现,同时存储ADV212的32kB固件。
在***上电后,利用MicroBalze软核CPU调用各接口对ADV7180和ADV212进行配置。
ADV212***连接信号包括4根地址线(分别对应ADV212的16个直接寄存器)、32根数据线(与HDATA口关联的双向口,用于输出压缩后的码流)、读/写及片选信号。针对所述特性,CPU视ADV212为存储器件,利用其EMC外设(外部存储器控制器)即可控制ADV212,省略了配置ADV212时序的设计,从而加快了设计进度。
ADV7180是ADI公司的高性能视频解码器,与***器件的接口形式为I2C总线,Xilinx的EDK***中没有I2C IP,但提供了集成用户自设计外设的功能,于是本***中自行设计了I2C外设用以配置ADV7180。
在***工作过程中,由于GPIO采用C语言进行实现,因此存在与信道编码的逻辑设计进行交互的问题。
基于C语言的程序在执行时是按照指令时钟的执行时间进行安排的(每一条语句的执行时间不可以精确控制),但逻辑设计部分可以精确控制每一个时钟周期的操作,所以在基于C语言的设计和逻辑设计时进行交互时间,就需要将不能精确控制时钟的C语言设计转换到可以精确控制时钟操作的逻辑设计中。本发明采用双口RAM解决用以解决这一问题。利用ChipScope测试发现GPIO口发送一个数据占用了22个clk1周期,所以利用双口RAM的数据和地址的多对一性,很好的将多周期数据,转换单周期数据,满足了后续的逻辑设计需求。具体设计如图2所示。
在完成上述配置的介绍后,对本发明的工作流程做进一步介绍。该方法的输入源是数据量为165Mbps(PAL制彩色图像)原始图像,信道传输速率25Kbps。针对原始数据量和传输速率的矛盾,该方法利用FPGA内部的MicroBalze软核CPU实现视频解码和压缩芯片配置及***总体数据流控制、信道编码单元交由逻辑设计单元,代替了以往***中需要专门添加控制CPU才可以实现的复杂控制功能,借助软核CPU建立起的一种握手机制,实现了一种低码速率下的视频传输应用。
如图3所示,为本发明的流程图。其具体工作流程为:
1、加电后,对CPU、EMC、GPIO、I2C、片上存储器模块和定时器模块进行初始化;
2、CPU模块通过I2C配置ADV7180:视频输入采用PAL制,视频输出采用BT.656模式;
3、当ADV7180检测到有视频信号输入时,CPU开始利用EMC对ADV212进行配置:使ADV212工作在32bit normal模式、使能ADV212的FIFO阈值中断功能,即FIFO中数据满足所设定阈值时,ADV212即发生中断使IRQ信号有效(低电平);
4、输入的视频信号经ADV7180后直接传入ADV212,ADV212将生成的压缩数据存储入ADV212的FIFO缓冲区内;
5、若FIFO缓冲区内存储的数据达到设定的阈值后,进入中断,IRQ信号(有效)为低电平,CPU对IRQ进行响应;
6、CPU利用EMC读取ADV212的FIFO中的压缩数据,并通过GPIO发送到信道编码的逻辑设计,FIFO中的数据读空后,IRQ信号无效,重新开启中断;在发送的过程中,首先通过GPIO将数据发送到双口RAM,再读双口RAM数据到信道编码,从而实现了C语言与逻辑设计的同步;
7、在信道编码单元工作时,CPU模块判断信道编码单元结束标志信号FLAG是否有效,若FLAG有效,则表示信道编码单元工作结束,返回5,重新响应ADV212的中断;若FLAG无效,且IRQ有效,则表示ADV212中的FIFO缓冲区仍存在数据,则关闭视频解码单元的视频输入,等待IRQ无效后,再开启视频解码单元视频输入,然后返回步骤5。
经过上述的步骤7,实现了对视频信号采集、压缩、编码的握手控制,协调了压缩码流速度高和发送速度低的矛盾。
本发明未详细说明部分属本领域技术人员公知常识。
Claims (2)
1.一种嵌入式视频传输方法,其特征在于通过以下步骤实现:
步骤1:在FPGA中实现MicroBalze软核CPU、外部存储器控制器EMC、通用输入输出口GPIO,I2C;所述CPU用于对EMC、GPIO、I2C进行调度;所述EMC与外部视频压缩单元进行交互;所述GPIO与外部信道编码单元进行交互;所述I2C与外部视频解码单元以及用于存储外部视频压缩单元固件的片上存储器进行交互;
步骤2:加电后对CPU、EMC、GPIO、I2C、片上存储器模块进行初始化;
步骤3:CPU模块通过I2C配置外部视频解码单元:视频输入采用PAL制,视频输出采用BT.656模式;
步骤4:当外部视频解码单元检测到视频信号输入后,CPU模块通过EMC配置外部视频压缩单元工作在开阈值中断模式,并转入步骤5;
步骤5:视频信号经视频解码单元处理后输出到外部视频压缩单元中,外部视频压缩单元将输入的数据压缩后利用FIFO缓冲区进行存储;转入步骤6;
步骤6:若外部视频压缩单元的FIFO缓冲区达到设定的存储阈值,则启动阈值中断,使视频压缩单元的中断信号IRQ有效,CPU模块响应IRQ进入中断,并转入步骤7;
步骤7:CPU模块利用EMC读取视频压缩单元的FIFO缓冲区中的压缩数据,并利用GPIO将压缩数据输出到外部信道编码单元;由信道编码单元对输入的压缩数据进行处理后输出;
步骤8:在信道编码单元工作时,CPU模块判断信道编码单元结束标志信号FLAG是否有效,若FLAG有效,则信道编码单元工作结束,返回步骤6;若FLAG无效,且IRQ有效,则关闭视频解码单元的视频输入;等待IRQ无效后,开启视频解码单元视频输入,并返回步骤6。
2.根据权利要求1所述的一种嵌入式视频传输方法,其特征在于:所述GPIO与外部信道编码单元间通过双口RAM传递输出的压缩数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010621239 CN102131092B (zh) | 2010-12-24 | 2010-12-24 | 一种嵌入式视频传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010621239 CN102131092B (zh) | 2010-12-24 | 2010-12-24 | 一种嵌入式视频传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102131092A CN102131092A (zh) | 2011-07-20 |
CN102131092B true CN102131092B (zh) | 2012-11-14 |
Family
ID=44268963
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010621239 Active CN102131092B (zh) | 2010-12-24 | 2010-12-24 | 一种嵌入式视频传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102131092B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103475873B (zh) * | 2013-10-02 | 2017-06-06 | 黑龙江省科学院自动化研究所 | 多功能行走平台及其图像传输方法 |
CN107347158A (zh) * | 2017-06-01 | 2017-11-14 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 飞行器载荷终端图像压缩方法 |
CN109379597A (zh) * | 2018-10-27 | 2019-02-22 | 北京控制与电子技术研究所 | 一种基于fpga的图像压缩控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233994A1 (en) * | 2003-05-22 | 2004-11-25 | Lsi Logic Corporation | Reconfigurable computing based multi-standard video codec |
CN1964465A (zh) * | 2006-11-22 | 2007-05-16 | 天津亚威达电子有限公司 | 基于fpga的视频图像处理器 |
CN101309430A (zh) * | 2008-06-26 | 2008-11-19 | 天津市亚安科技电子有限公司 | 基于fpga的视频图像预处理器 |
-
2010
- 2010-12-24 CN CN 201010621239 patent/CN102131092B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040233994A1 (en) * | 2003-05-22 | 2004-11-25 | Lsi Logic Corporation | Reconfigurable computing based multi-standard video codec |
CN1964465A (zh) * | 2006-11-22 | 2007-05-16 | 天津亚威达电子有限公司 | 基于fpga的视频图像处理器 |
CN101309430A (zh) * | 2008-06-26 | 2008-11-19 | 天津市亚安科技电子有限公司 | 基于fpga的视频图像预处理器 |
Non-Patent Citations (1)
Title |
---|
杨志伟,冯宗哲,郭宝龙,杨智勇.嵌入式视频传输***的开发.《计算机工程》.2005,第31卷(第5期),200-212. * |
Also Published As
Publication number | Publication date |
---|---|
CN102131092A (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shand | Flexible image acquisition using reconfigurable hardware | |
US7360068B2 (en) | Reconfigurable signal processing IC with an embedded flash memory device | |
CN105208034B (zh) | 一种spi总线与can总线协议转换电路及方法 | |
CN102519960B (zh) | 一种嵌入式便携金相组织采集显示***及方法 | |
CN104881388A (zh) | 基于fpga的usb 3.0接口模块 | |
US7827386B2 (en) | Controlling memory access devices in a data driven architecture mesh array | |
CN105227850B (zh) | 使能元数据存储子*** | |
CN102131092B (zh) | 一种嵌入式视频传输方法 | |
CN101297256A (zh) | 包含复位设施的数据处理装置 | |
US9935637B2 (en) | Systems and methods for FPGA development and operation | |
CN109525844B (zh) | 一种多路视频编解码的加速***及方法 | |
CN206224997U (zh) | 一种语音识别Soc芯片架构 | |
CN102438106A (zh) | 一种视频采集*** | |
CN208638364U (zh) | 一种基于以太网的lvds总线检测*** | |
CN104813647A (zh) | 在传输机构内基于获取和设置架构执行命令 | |
CN104918004B (zh) | 基于fpga和dsp芯片的pci通信监控*** | |
CN103226537B (zh) | 一种实现手机硬件接口的可编程逻辑器件 | |
CN108259842A (zh) | 基于Zynq的图像传输与采集验证*** | |
CN201846416U (zh) | 图像传感器 | |
CN115484409A (zh) | 多图像传感器协同工作方法及*** | |
Yang et al. | Hardware system design of SD card reader and image processor on FPGA | |
CN208689417U (zh) | 一种嵌入式一体化开发平台 | |
CN205081868U (zh) | 一种视频采集压缩电路 | |
Yang et al. | Design of high performance image acquisition and processing platform based on DSP and FPGA | |
Cappelli et al. | XiSystem: a XiRisc-based SoC with a reconfigurable IO module |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |