專利名稱:一種嵌入式視頻傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種嵌入式視頻傳輸方法,特別適用于輸入視頻流和輸出視頻流不匹 配時(shí)的的視頻傳輸,屬于嵌入式技術(shù)領(lǐng)域。
背景技術(shù):
Xilinx公司是全球最大的FPGA生產(chǎn)廠商,Xilinx公司針對(duì)PowerPC和 MicroBlaze推出了 EDK開(kāi)發(fā)工具。用于FPGA片內(nèi)硬件系統(tǒng)的建立和應(yīng)用軟件系統(tǒng)的產(chǎn) 生,即整個(gè)SOPC系統(tǒng)的開(kāi)發(fā)都是在Xilinx的EDK(嵌入式開(kāi)發(fā)工具集)下完成的。Xilinx 公司提供的嵌入式開(kāi)發(fā)工具包EDK提供了 SOPC工程管理接口的集成開(kāi)發(fā)環(huán)境XPS (Xilinx Platform Studio)在此環(huán)境中包含了硬件平臺(tái)架構(gòu)、軟件開(kāi)發(fā)、布局布線實(shí)現(xiàn)、仿真與調(diào)試 等SOPC設(shè)計(jì)中各個(gè)環(huán)節(jié)所需的所有工具和接口。若用戶需要添加自己的邏輯模塊和約束, 則需要在ISE中完成。針對(duì)低碼速率下的視頻圖像應(yīng)用是人們一直研究的熱點(diǎn),視頻傳輸系統(tǒng)的小型 化、設(shè)計(jì)可重構(gòu)性、對(duì)于視頻傳輸系統(tǒng)的構(gòu)建具有重要意義。該方法構(gòu)建的設(shè)備完成特定場(chǎng) 景的拍攝,通過(guò)無(wú)線鏈路將視頻圖像傳輸至接收設(shè)備,實(shí)現(xiàn)了實(shí)時(shí)觀測(cè)的目的。該方法的輸 入源為數(shù)據(jù)量為165Mbps (PAL制彩色圖像)原始圖像,信道傳輸速率25Kbps。針對(duì)原始數(shù) 據(jù)量和傳輸速率的矛盾,該方法利用FPGA內(nèi)部的軟核CPU實(shí)現(xiàn)視頻解碼和壓縮芯片配置及 系統(tǒng)總體數(shù)據(jù)流控制、信道編碼模塊交由邏輯設(shè)計(jì)單元,代替了以往系統(tǒng)中需要專門添加 控制CPU才可以實(shí)現(xiàn)的復(fù)雜控制功能,借助軟核CPU建立起的一種握手機(jī)制,實(shí)現(xiàn)了一種低 碼速率下的視頻傳輸應(yīng)用?,F(xiàn)有的視頻應(yīng)用主要集中在通過(guò)特定芯片實(shí)現(xiàn)。且一旦硬件構(gòu)建完畢則不具備可 重構(gòu)性,基于軟核CPU的系統(tǒng)硬件實(shí)現(xiàn)具有很大的靈活性。不同于通常的邏輯設(shè)計(jì)和控制 設(shè)計(jì)交由不同芯片實(shí)現(xiàn)的方案,基于軟核CPU的系統(tǒng)將邏輯設(shè)計(jì)和控制設(shè)計(jì)有效的組織起 來(lái),將原本需要多功能芯片才能實(shí)現(xiàn)的功能集成單片實(shí)現(xiàn),有效地節(jié)省了系統(tǒng)面積,且基于 軟核CPU的系統(tǒng)在系統(tǒng)開(kāi)發(fā)時(shí)將FPGA內(nèi)的硬件邏輯開(kāi)發(fā)和軟件開(kāi)發(fā)進(jìn)行隔離,有效的促進(jìn) 了系統(tǒng)開(kāi)發(fā)的速度。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供了一種嵌入式視頻傳輸方法,本發(fā)明利用FPGA內(nèi)的嵌入 式MicroBalze軟核CPU的靈活可配置性,實(shí)現(xiàn)了基于單個(gè)芯片的數(shù)據(jù)壓縮和信道編碼,并 依靠MicroBalze軟核CPU的控制能力有效地協(xié)調(diào)了低碼率下速度的不匹配性,實(shí)現(xiàn)了視頻 采集與信道編碼速度不匹配時(shí)的應(yīng)用。本發(fā)明的技術(shù)解決方案是一種嵌入式視頻傳輸方法,通過(guò)以下步驟實(shí)現(xiàn)步驟1 在FPGA中實(shí)現(xiàn)MicroBalze軟核CPU、外部存儲(chǔ)器控制器EMC、通用輸入輸 出口 GPI0,I2C ;所述CPU用于對(duì)EMC、GPI0、I2C進(jìn)行調(diào)度;所述EMC與外部視頻壓縮單元
3進(jìn)行交互;所述GPIO與外部信道編碼單元進(jìn)行交互;所述I2C與外部視頻解碼單元以及用 于存儲(chǔ)外部視頻壓縮單元固件的片上存儲(chǔ)器進(jìn)行交互;步驟2 加電后對(duì)CPU、EMC、GPIO、I2C、片上存儲(chǔ)器模塊和進(jìn)行初始化;步驟3 :CPU模塊通過(guò)I2C配置外部視頻解碼單元視頻輸入采用PAL制,視頻輸出 采用BT. 656模式;步驟4 當(dāng)外部視頻解碼單元檢測(cè)到視頻信號(hào)輸入后,CPU模塊通過(guò)EMC配置外部 視頻壓縮單元工作在開(kāi)閾值中斷模式,并轉(zhuǎn)入步驟5 ;步驟5 視頻信號(hào)經(jīng)視頻解碼單元處理后輸出到外部視頻壓縮單元中,外部視頻 壓縮單元將輸入的數(shù)據(jù)壓縮后利用FIFO緩沖區(qū)進(jìn)行存儲(chǔ);轉(zhuǎn)入步驟6 ;步驟6 若外部視頻壓縮單元的FIFO緩沖區(qū)達(dá)到設(shè)定的存儲(chǔ)閾值,則啟動(dòng)閾值中 斷,使視頻壓縮單元的中斷信號(hào)IRQ有效,CPU模塊響應(yīng)IRQ進(jìn)入中斷,并轉(zhuǎn)入步驟7 ;步驟7 =CPU模塊利用EMC讀取視頻壓縮單元的FIFO緩沖區(qū)中的壓縮數(shù)據(jù),并利 用GPIO將壓縮數(shù)據(jù)輸出到外部信道編碼單元;由信道編碼單元對(duì)輸入的壓縮數(shù)據(jù)進(jìn)行處 理后輸出;步驟8:在信道編碼單元工作時(shí),CPU模塊判斷信道編碼單元結(jié)束標(biāo)志信號(hào)FLAG是 否有效,若FLAG有效,則信道編碼單元工作結(jié)束,返回步驟6 ;若FLAG無(wú)效,且IRQ有效,則 關(guān)閉視頻解碼單元的視頻輸入;等待IRQ無(wú)效后,開(kāi)啟視頻解碼單元視頻輸入,并返回步驟 6。所述GPIO與外部信道編碼單元間通過(guò)雙口 RAM傳遞輸出的壓縮數(shù)據(jù)。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn)(1)本發(fā)明采用軟硬件協(xié)同的設(shè)計(jì)方法,構(gòu)建了片上系統(tǒng)。本發(fā)明不同于通常的采 用不同芯片實(shí)現(xiàn)邏輯設(shè)計(jì)和控制設(shè)計(jì)的方案,而是基于軟核CPU將邏輯設(shè)計(jì)和控制設(shè)計(jì)有 效的組織起來(lái),將原本需要多個(gè)功能芯片才能實(shí)現(xiàn)的功能通過(guò)集成單片實(shí)現(xiàn),有效地節(jié)省 了系統(tǒng)面積。(2)本發(fā)明采用C語(yǔ)言實(shí)現(xiàn)了 I2C、EMC和GPI0。并采用I2C配置外部視頻解碼單 元ADV7180,利用GPIO實(shí)現(xiàn)壓縮數(shù)據(jù)的輸出;利用EMC控制外部視頻壓縮單元ADV212,省略 了配置ADV212時(shí)序的設(shè)計(jì);對(duì)于信道編碼則采用邏輯設(shè)計(jì),實(shí)現(xiàn)設(shè)計(jì)過(guò)程中軟硬件同時(shí)進(jìn) 行,大大提高了設(shè)計(jì)的進(jìn)程。(3)本發(fā)明采用雙口 RAM實(shí)現(xiàn)了基于C語(yǔ)言的GPIO與基于VHDL語(yǔ)言的信道編碼 單元的交互。由于C語(yǔ)言設(shè)計(jì)不能精確控制時(shí)鐘,在實(shí)現(xiàn)時(shí),先采用雙口 RAM對(duì)GPIO輸出的 壓縮數(shù)據(jù)進(jìn)行接收,再通過(guò)雙口 RAM將壓縮數(shù)據(jù)輸出到信道編碼單元,解決了 C語(yǔ)言與VHDL 語(yǔ)言的同步問(wèn)題。
圖1為本發(fā)明原理組成框圖;圖2為雙口 RAM配置圖;圖3為本發(fā)明流程圖。
具體實(shí)施例方式下面就結(jié)合附圖對(duì)本發(fā)明具體實(shí)施方式
做進(jìn)一步介紹。采用本發(fā)明利用單片F(xiàn)PGA實(shí)現(xiàn)了多個(gè)功能芯片才能實(shí)現(xiàn)的功能,縮小了視頻傳 輸系統(tǒng),提高了視頻傳輸系統(tǒng)設(shè)計(jì)的可重構(gòu)性。如圖1所示,為采用本發(fā)明實(shí)現(xiàn)的視頻傳輸系統(tǒng)的設(shè)計(jì)圖。在具體設(shè)計(jì)時(shí),采用了 軟硬件協(xié)同設(shè)計(jì)的方案,F(xiàn)PGA內(nèi)部實(shí)現(xiàn)分為兩部分基于MicroBalze軟核CPU的嵌入式系 統(tǒng)和邏輯設(shè)計(jì)(信道編碼單元),配備的外設(shè)如下1、I2C模塊通用接口,用以配置視頻解碼器ADV7180和從片上存儲(chǔ)器中讀取外部 視頻壓縮單元(視頻壓縮芯片ADV212)的固件;2、外部存儲(chǔ)器控制器EMC 與ADV212接口,用于配置ADV212 ;3、通用輸入/輸出口 GPIO 產(chǎn)生復(fù)位信號(hào)、傳輸ADV212的壓縮數(shù)據(jù)至邏輯設(shè)計(jì);5、片上存儲(chǔ)器C語(yǔ)言程序運(yùn)行的載體,由FPGA的片內(nèi)RAM實(shí)現(xiàn),同時(shí)存儲(chǔ)ADV212 的32kB固件。在系統(tǒng)上電后,利用MicroBalze軟核CPU調(diào)用各接口對(duì)ADV7180和ADV212進(jìn)行配置。ADV212外圍連接信號(hào)包括4根地址線(分別對(duì)應(yīng)ADV212的16個(gè)直接寄存器)、 32根數(shù)據(jù)線(與HDATA 口關(guān)聯(lián)的雙向口,用于輸出壓縮后的碼流)、讀/寫及片選信號(hào)。針 對(duì)所述特性,CPU視ADV212為存儲(chǔ)器件,利用其EMC外設(shè)(外部存儲(chǔ)器控制器)即可控制 ADV212,省略了配置ADV212時(shí)序的設(shè)計(jì),從而加快了設(shè)計(jì)進(jìn)度。ADV7180是ADI公司的高性能視頻解碼器,與外圍器件的接口形式為I2C總線, Xilinx的EDK系統(tǒng)中沒(méi)有I2C IP,但提供了集成用戶自設(shè)計(jì)外設(shè)的功能,于是本系統(tǒng)中自 行設(shè)計(jì)了 I2C外設(shè)用以配置ADV7180。在系統(tǒng)工作過(guò)程中,由于GPIO采用C語(yǔ)言進(jìn)行實(shí)現(xiàn),因此存在與信道編碼的邏輯 設(shè)計(jì)進(jìn)行交互的問(wèn)題?;贑語(yǔ)言的程序在執(zhí)行時(shí)是按照指令時(shí)鐘的執(zhí)行時(shí)間進(jìn)行安排的(每一條語(yǔ)句 的執(zhí)行時(shí)間不可以精確控制),但邏輯設(shè)計(jì)部分可以精確控制每一個(gè)時(shí)鐘周期的操作,所以 在基于C語(yǔ)言的設(shè)計(jì)和邏輯設(shè)計(jì)時(shí)進(jìn)行交互時(shí)間,就需要將不能精確控制時(shí)鐘的C語(yǔ)言設(shè) 計(jì)轉(zhuǎn)換到可以精確控制時(shí)鐘操作的邏輯設(shè)計(jì)中。本發(fā)明采用雙口 RAM解決用以解決這一問(wèn) 題。利用Chipkope測(cè)試發(fā)現(xiàn)GPIO 口發(fā)送一個(gè)數(shù)據(jù)占用了 22個(gè)clkl周期,所以利用雙口 RAM的數(shù)據(jù)和地址的多對(duì)一性,很好的將多周期數(shù)據(jù),轉(zhuǎn)換單周期數(shù)據(jù),滿足了后續(xù)的邏輯 設(shè)計(jì)需求。具體設(shè)計(jì)如圖2所示。在完成上述配置的介紹后,對(duì)本發(fā)明的工作流程做進(jìn)一步介紹。該方法的輸入源 是數(shù)據(jù)量為165Mbps (PAL制彩色圖像)原始圖像,信道傳輸速率25Kbps。針對(duì)原始數(shù)據(jù)量 和傳輸速率的矛盾,該方法利用FPGA內(nèi)部的MicroBalze軟核CPU實(shí)現(xiàn)視頻解碼和壓縮芯 片配置及系統(tǒng)總體數(shù)據(jù)流控制、信道編碼單元交由邏輯設(shè)計(jì)單元,代替了以往系統(tǒng)中需要 專門添加控制CPU才可以實(shí)現(xiàn)的復(fù)雜控制功能,借助軟核CPU建立起的一種握手機(jī)制,實(shí)現(xiàn) 了 一種低碼速率下的視頻傳輸應(yīng)用。如圖3所示,為本發(fā)明的流程圖。其具體工作流程為1、加電后,對(duì)CPU、EMC、GPI0、I2C、片上存儲(chǔ)器模塊和定時(shí)器模塊進(jìn)行初始化;
2,CPU模塊通過(guò)I2C配置ADV7180 視頻輸入采用PAL制,視頻輸出采用BT. 656模 式;3、當(dāng)ADV7180檢測(cè)到有視頻信號(hào)輸入時(shí),CPU開(kāi)始利用EMC對(duì)ADV212進(jìn)行配置 使ADV212工作在32bit normal模式、使能ADV212的FIFO閾值中斷功能,即FIFO中數(shù)據(jù) 滿足所設(shè)定閾值時(shí),ADV212即發(fā)生中斷使IRQ信號(hào)有效(低電平);4、輸入的視頻信號(hào)經(jīng)ADV7180后直接傳入ADV212,ADV212將生成的壓縮數(shù)據(jù)存儲(chǔ) Λ ADV212的FIFO緩沖區(qū)內(nèi);5、若FIFO緩沖區(qū)內(nèi)存儲(chǔ)的數(shù)據(jù)達(dá)到設(shè)定的閾值后,進(jìn)入中斷,IRQ信號(hào)(有效)為 低電平,CPU對(duì)IRQ進(jìn)行響應(yīng);6,CPU利用EMC讀取ADV212的FIFO中的壓縮數(shù)據(jù),并通過(guò)GPIO發(fā)送到信道編碼 的邏輯設(shè)計(jì),F(xiàn)IFO中的數(shù)據(jù)讀空后,IRQ信號(hào)無(wú)效,重新開(kāi)啟中斷;在發(fā)送的過(guò)程中,首先通 過(guò)GPIO將數(shù)據(jù)發(fā)送到雙口 RAM,再讀雙口 RAM數(shù)據(jù)到信道編碼,從而實(shí)現(xiàn)了 C語(yǔ)言與邏輯設(shè) 計(jì)的同步;7、在信道編碼單元工作時(shí),CPU模塊判斷信道編碼單元結(jié)束標(biāo)志信號(hào)FLAG是否有 效,若FLAG有效,則表示信道編碼單元工作結(jié)束,返回5,重新響應(yīng)ADV212的中斷;若FLAG 無(wú)效,且IRQ有效,則表示ADV212中的FIFO緩沖區(qū)仍存在數(shù)據(jù),則關(guān)閉視頻解碼單元的視 頻輸入,等待IRQ無(wú)效后,再開(kāi)啟視頻解碼單元視頻輸入,然后返回步驟5。經(jīng)過(guò)上述的步驟7,實(shí)現(xiàn)了對(duì)視頻信號(hào)采集、壓縮、編碼的握手控制,協(xié)調(diào)了壓縮碼 流速度高和發(fā)送速度低的矛盾。本發(fā)明未詳細(xì)說(shuō)明部分屬本領(lǐng)域技術(shù)人員公知常識(shí)。
權(quán)利要求
1.一種嵌入式視頻傳輸方法,其特征在于通過(guò)以下步驟實(shí)現(xiàn)步驟1 在FPGA中實(shí)現(xiàn)MicroBalze軟核CPU、外部存儲(chǔ)器控制器EMC、通用輸入輸出口 GPI0,12C ;所述CPU用于對(duì)EMC、GPI0、I2C進(jìn)行調(diào)度;所述EMC與外部視頻壓縮單元進(jìn)行交 互;所述GPIO與外部信道編碼單元進(jìn)行交互;所述I2C與外部視頻解碼單元以及用于存儲(chǔ) 外部視頻壓縮單元固件的片上存儲(chǔ)器進(jìn)行交互;步驟2 加電后對(duì)CPU、EMC、GPIO、I2C、片上存儲(chǔ)器模塊和進(jìn)行初始化; 步驟3 :CPU模塊通過(guò)I2C配置外部視頻解碼單元視頻輸入采用PAL制,視頻輸出采用 BT. 656 模式;步驟4 當(dāng)外部視頻解碼單元檢測(cè)到視頻信號(hào)輸入后,CPU模塊通過(guò)EMC配置外部視頻 壓縮單元工作在開(kāi)閾值中斷模式,并轉(zhuǎn)入步驟5 ;步驟5 視頻信號(hào)經(jīng)視頻解碼單元處理后輸出到外部視頻壓縮單元中,外部視頻壓縮 單元將輸入的數(shù)據(jù)壓縮后利用FIFO緩沖區(qū)進(jìn)行存儲(chǔ);轉(zhuǎn)入步驟6 ;步驟6 若外部視頻壓縮單元的FIFO緩沖區(qū)達(dá)到設(shè)定的存儲(chǔ)閾值,則啟動(dòng)閾值中斷,使 視頻壓縮單元的中斷信號(hào)IRQ有效,CPU模塊響應(yīng)IRQ進(jìn)入中斷,并轉(zhuǎn)入步驟7 ;步驟7 =CPU模塊利用EMC讀取視頻壓縮單元的FIFO緩沖區(qū)中的壓縮數(shù)據(jù),并利用GPIO 將壓縮數(shù)據(jù)輸出到外部信道編碼單元;由信道編碼單元對(duì)輸入的壓縮數(shù)據(jù)進(jìn)行處理后輸 出;步驟8 在信道編碼單元工作時(shí),CPU模塊判斷信道編碼單元結(jié)束標(biāo)志信號(hào)FLAG是否有 效,若FLAG有效,則信道編碼單元工作結(jié)束,返回步驟6 ;若FLAG無(wú)效,且IRQ有效,則關(guān)閉 視頻解碼單元的視頻輸入;等待IRQ無(wú)效后,開(kāi)啟視頻解碼單元視頻輸入,并返回步驟6。
2.根據(jù)權(quán)利要求1所述的一種嵌入式視頻傳輸方法,其特征在于所述GPIO與外部信 道編碼單元間通過(guò)雙口 RAM傳遞輸出的壓縮數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種嵌入式視頻傳輸方法,在所述方法中,采用FPGA實(shí)現(xiàn)了MicroBalze軟核CPU、外部存儲(chǔ)器控制器EMC、通用輸入輸出口GPIO,I2C。在視頻傳輸過(guò)程中,CPU模塊通過(guò)I2C、EMC和GPIO對(duì)外部視頻解碼單元、外部視頻壓縮單元和信道編碼單元進(jìn)行交互,實(shí)現(xiàn)視頻數(shù)據(jù)從視頻解碼單元到視頻壓縮單元再到信道編碼單元的傳輸。采用本發(fā)明實(shí)現(xiàn)了基于單個(gè)芯片的數(shù)據(jù)壓縮和信道編碼,并依靠MicroBalze軟核CPU的控制能力有效地協(xié)調(diào)了低碼率下速度的不匹配性,實(shí)現(xiàn)了視頻采集與信道編碼速度不匹配時(shí)的應(yīng)用。
文檔編號(hào)H04N7/26GK102131092SQ201010621239
公開(kāi)日2011年7月20日 申請(qǐng)日期2010年12月24日 優(yōu)先權(quán)日2010年12月24日
發(fā)明者孫文方, 張海濤, 邵應(yīng)昭 申請(qǐng)人:西安空間無(wú)線電技術(shù)研究所