專利名稱:一種嵌入式視頻傳輸方法
技術領域:
本發明涉及一種嵌入式視頻傳輸方法,特別適用于輸入視頻流和輸出視頻流不匹 配時的的視頻傳輸,屬于嵌入式技術領域。
背景技術:
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、通用輸入輸 出口 GPI0,I2C ;所述CPU用于對EMC、GPI0、I2C進行調度;所述EMC與外部視頻壓縮單元
3進行交互;所述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和GPI0。并采用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解決用以解決這一問 題。利用Chipkope測試發現GPIO 口發送一個數據占用了 22個clkl周期,所以利用雙口 RAM的數據和地址的多對一性,很好的將多周期數據,轉換單周期數據,滿足了后續的邏輯 設計需求。具體設計如圖2所示。在完成上述配置的介紹后,對本發明的工作流程做進一步介紹。該方法的輸入源 是數據量為165Mbps (PAL制彩色圖像)原始圖像,信道傳輸速率25Kbps。針對原始數據量 和傳輸速率的矛盾,該方法利用FPGA內部的MicroBalze軟核CPU實現視頻解碼和壓縮芯 片配置及系統總體數據流控制、信道編碼單元交由邏輯設計單元,代替了以往系統中需要 專門添加控制CPU才可以實現的復雜控制功能,借助軟核CPU建立起的一種握手機制,實現 了 一種低碼速率下的視頻傳輸應用。如圖3所示,為本發明的流程圖。其具體工作流程為1、加電后,對CPU、EMC、GPI0、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,實現了對視頻信號采集、壓縮、編碼的握手控制,協調了壓縮碼 流速度高和發送速度低的矛盾。本發明未詳細說明部分屬本領域技術人員公知常識。
權利要求
1.一種嵌入式視頻傳輸方法,其特征在于通過以下步驟實現步驟1 在FPGA中實現MicroBalze軟核CPU、外部存儲器控制器EMC、通用輸入輸出口 GPI0,12C ;所述CPU用于對EMC、GPI0、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傳遞輸出的壓縮數據。
全文摘要
本發明公開了一種嵌入式視頻傳輸方法,在所述方法中,采用FPGA實現了MicroBalze軟核CPU、外部存儲器控制器EMC、通用輸入輸出口GPIO,I2C。在視頻傳輸過程中,CPU模塊通過I2C、EMC和GPIO對外部視頻解碼單元、外部視頻壓縮單元和信道編碼單元進行交互,實現視頻數據從視頻解碼單元到視頻壓縮單元再到信道編碼單元的傳輸。采用本發明實現了基于單個芯片的數據壓縮和信道編碼,并依靠MicroBalze軟核CPU的控制能力有效地協調了低碼率下速度的不匹配性,實現了視頻采集與信道編碼速度不匹配時的應用。
文檔編號H04N7/26GK102131092SQ201010621239
公開日2011年7月20日 申請日期2010年12月24日 優先權日2010年12月24日
發明者孫文方, 張海濤, 邵應昭 申請人:西安空間無線電技術研究所