本發(fā)明涉及一種視頻處理技術領域,特別涉及一種多處理器架構的實時圖像壓縮平臺。
背景技術:
隨著圖形圖像技術的發(fā)展,對于芯片電路的圖像的實時壓縮能力提出了越來越高的要求,現(xiàn)有的圖像壓縮平臺的壓縮能力以及壓縮算法已經無法滿足日益提高的需求。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種多處理器架構的實時圖像壓縮平臺,用于解決上述現(xiàn)有技術的問題。
本發(fā)明一種多處理器架構的實時圖像壓縮平臺,其中,包括:至少一解碼芯片,第一fpga,dsp,arm處理器以及存儲器;該至少一解碼芯片用于進行圖像輸入源的解碼;該第一fpga用于接收緩存解碼芯片輸出的數(shù)字圖像信號,以及信號的預處理,根據(jù)不同的視頻源完成相應的圖像預處理;該dsp用于圖像的壓縮編碼;該arm處理器用于進行壓縮碼流的對外傳輸;該存儲器用于進行圖像的緩存。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,包括:第二fpga,用于輔助該dsp的圖像的壓縮編碼。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,包括:該解碼芯片的解碼包括模擬信號到數(shù)字信號的轉變以及串行數(shù)字信號到并行數(shù)字信號的轉換。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其 中,該壓縮編碼的算法為游程編碼和小波編碼。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,該第一fpga以及第二fpga分別設置有一存儲器,用于進行圖像的緩存。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,該arm處理器還用于進行該fpga以及該dsp的程序加載。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,該第一fpga與該第二fpga之間采用高速串行總線完成數(shù)據(jù)的傳輸;該fpga與該dsp之間采用emif口通信,該第二fpga與該arm處理器之間采用pci-e高速總線進行數(shù)據(jù)傳輸。
根據(jù)本發(fā)明的多處理器架構的實時圖像壓縮平臺的一實施例,其中,還包括:flash存儲器用于存儲該fpga以及該dsp的應用程序。
綜上,本發(fā)明的多處理器架構的實時圖像壓縮平臺,能夠滿足對于圖像實時壓縮能力的要求,解決了現(xiàn)有的圖像的實時壓縮芯片實時壓縮能力不足的問題。
附圖說明
圖1所示為本發(fā)明多處理器架構的實時圖像壓縮平臺的模塊圖;
圖2所示為本發(fā)明多處理器架構的實時圖像壓縮平臺通信原理示意圖;
圖3所示為fpga的工作原理模塊圖;
圖4所示為游程編碼的流程框圖;
圖5所示為小波編碼算法的流程圖;
圖6所示為本發(fā)明多處理器架構的實時圖像壓縮平臺的工作原理圖。
具體實施方式
為使本發(fā)明的目的、內容、和優(yōu)點更加清楚,下面結合附圖和實 施例,對本發(fā)明的具體實施方式作進一步詳細描述。
圖1所示為本發(fā)明多處理器架構的實時圖像壓縮平臺的模塊圖,本發(fā)明多處理器架構的實時圖像壓縮平臺是能夠實現(xiàn)多路視頻源輸入,多種壓縮算法按需加載的通用圖像壓縮平臺。本發(fā)明多處理器架構的實時圖像壓縮平臺包括多種視頻制式的解碼芯片101-104,解碼芯片的數(shù)量和類型靈活可變,fpga1、fpga2、dsp11、dsp12、arm3以及ddr4。
參考圖1,解碼芯片101-104(數(shù)量不以此為限)負責完成圖像輸入源的解碼,包括各種不同制式的視頻源(可見光的,紅外的,微光的,低分辨率的,高清分辨率的),分別完成解碼。解碼功能不限定于模擬信號到數(shù)字信號的轉變,也可以完成串行數(shù)字信號到并行數(shù)字信號的轉換。fpga1用于接收緩存解碼芯片101-104輸出的數(shù)字圖像信號,以及信號的預處理,根據(jù)不同的視頻源完成相應的圖像預處理。例如紅外圖像需要進行非均勻性校正操作,微光圖像進行圖像幀疊加操作,以及圖像的增強和直方圖均衡化等操作。fpga2、dsp11以及dsp12協(xié)同配合,共同實現(xiàn)多路圖像源的壓縮編碼工作。壓縮編碼算法可以主要采用游程編碼和小波編碼。arm處理器3用于壓縮碼流的對外傳輸,可以采用千兆以太網接口,arm處理器3用于對外通信和控制,例如通過以太網接口接收外部命令可以選擇加載游程編碼或者小波編碼算法。
fpga1以及fpga2可分別外掛大容量ddr內存4以實現(xiàn)圖像的多幀緩存。
參考圖1,整個系統(tǒng)的主控制器為arm處理器3,fpga1接收到圖像源后分別對圖像進行預處理操作,然后判別圖像類別,并把判別信息傳輸給arm處理器3,由arm處理器3決定使用何種算法或者根據(jù)以太網接口收到的控制命令來決定使用何種算法,由arm處理器3來完成fpga2,dsp11以及dsp12的程序加載。進行圖像壓縮算法實 現(xiàn)的核心為fpga2+dsp11+dsp12處理器。
參考圖1,fpga1與fpga2之間采用高速串行總線完成數(shù)據(jù)的傳輸。fpga2與dsp1和dsp2之間采用emif口通信,完成數(shù)據(jù)的交換,在fpga2中兩塊雙口ram(dpram)與emif互聯(lián)。fpga2與arm之間采用pci-e高速總線進行數(shù)據(jù)傳輸,數(shù)據(jù)主要為壓縮的碼流。
圖2所示為本發(fā)明多處理器架構的實時圖像壓縮平臺通信原理示意圖,如圖1以及圖2所示,平臺的各個處理器的應用程序可以統(tǒng)一存儲在一片大容量的flash存儲器5中,可以根據(jù)系統(tǒng)需要加載,程序統(tǒng)一存儲也便于程序的更新和管理。大容量flash存儲器5掛載在arm處理器3上,由arm處理器3負責對fpga2,dsp1,dsp2處理器依次加載。平臺加電啟動后,arm處理器3首先完成程序的加載操作,然后arm處理器進行fpga2的程序加載操作,當fpga2啟動以后,進行dsp1和dsp2的程序加載工作,讀取大容量flash存儲器5中的dsp1和dsp2程序并完成dsp1和dsp2處理器的程序加載。fpga1也可以單獨掛載一片flash芯片完成自身的程序加載操作。
參考圖1和圖2,arm處理器3可以采用j-link仿真器和rs232串口完成仿真調試工作。fpga1和fpga2采用菊花鏈式jtag連接實現(xiàn)程序的調試。dsp1和dsp2也采用菊花鏈式jtag接口完成程序的調試。
圖3所示為fpga的工作原理模塊圖,參考圖1以及圖3,fpga1主要完成原始輸入圖像數(shù)據(jù)的預處理操作,包括非均勻性校正、色彩空間轉換、直方圖均衡等。如果輸入圖像為紅外圖像則進行非均勻性校正操作,對于彩色圖像可能需要進行色彩空間轉換操作,以及圖像增強和去噪等操作。
參考圖1,由fpga2處理器、dsp11和dsp12處理器協(xié)同配合,共同實現(xiàn)多路圖像源的壓縮編碼工作。壓縮編碼算法主要采用游程編碼和小波編碼。
游程編碼算法主要包括:離散余弦變換+量化+zigzag編碼+熵編碼操作。小波編碼算法主要包括:小波變換+量化+嵌入式塊編碼+優(yōu)化截斷操作。
圖4所示為游程編碼的流程框圖,如圖4所示,采用的游程編碼算法主要包括離散余弦變換+量化+zigzag編碼+熵編碼操作。在fpga2處理器中即可實現(xiàn),無需占用其他處理器資源。經過fpga1處理器預處理后的圖像數(shù)據(jù)首先分成8*8的方塊,然后對每個小方塊分別進行離散余弦變換,將圖像從空間域轉換到頻率域,每個小方塊變換后得到一個8*8系數(shù)表,左上角代表最低頻信息,右下角代表最高頻信息;量化操作就是對8*8系數(shù)表的每個值分別除以某個值,其原則是對低頻信號除以較小的值,對高頻系數(shù)除以較大的值,從而達到盡量保留低頻系數(shù),減小高頻系數(shù)的目的,起到的壓縮的作用。經過量化后的系數(shù)進行zigzag重排序就會提高64個系數(shù)出現(xiàn)連續(xù)0系數(shù)的概率,從而為游程編碼提供了可能。然后對游程編碼結果進行熵編碼,進一步壓縮數(shù)據(jù)量得到最終的壓縮碼流。
圖5所示為小波編碼算法的流程圖,如圖5所示,對于小波壓縮算法,必須借助多個處理器并建立合理的并行體系才能實時實現(xiàn).流水線并行方法和單指令流多數(shù)據(jù)流(singleprogrammultipledata,spmd)并行方法是計算機并行處理領域內最為通用的兩種并行方法。本系統(tǒng)的壓縮算法硬件實現(xiàn)方案借用這兩種并行思想,建立了其并行體系結構,如圖所示,利用dsp處理器的流水線操作將小波壓縮算法分解成三部分,與三級流水線對應。包括離散小波變換和量化,嵌入式塊編碼,優(yōu)化截斷。利用spmd思想將編碼任務分派給fpga2和dsp1,dsp2處理器,交由它們共同完成。在三級流水線中,第一、三級任務被映射到fpga2中執(zhí)行,第二級流水任務被映射到dsp1,dsp2中共同執(zhí)行。
參考圖1以及圖5,多路并行的圖像數(shù)據(jù)經過fpga1處理后緩存 在外部存儲器中,當緩存數(shù)據(jù)滿一個圖像幀時,fpga2執(zhí)行小波變換+量化運算,運算結果存入外部ddr緩存中,dsp1和dsp2分別通過emif接口將運算的結果讀出并執(zhí)行嵌入式塊編碼運算,運算結果通過emif接口寫入外部ddr緩存中.當一個圖像幀的所有編碼塊的嵌入式塊編碼運算結果寫入ddr緩存時,fpga2執(zhí)行優(yōu)化截斷運算,得到最終的壓縮碼流,并通過pci-e總線輸出到arm處理器中。arm處理器通過千兆以太網輸出。
圖6所示為本發(fā)明多處理器架構的實時圖像壓縮平臺的工作原理圖,參考圖1-6,原始圖像經過小波變換后得到一幅小波系數(shù),量化模塊對小波系數(shù)進行量化操作,為壓縮提供可能性。嵌入式塊編碼1和嵌入式塊編碼2執(zhí)行相同的操作,并行操作,提高數(shù)據(jù)處理能力,其將各個子帶分成一個個相對獨立的碼塊,然后進行編碼操作,產生壓縮碼流。fpga2再對碼流進行優(yōu)化截斷處理產生最終的碼流。
參考圖1-6,將各個處理器(fpga1處理器除外)的程序統(tǒng)一存儲在大容量flash中,該flash掛載在arm處理器上,所以fpga2,dsp1,dsp2處理器的程序加載工作由arm處理器統(tǒng)一控制完成。
參考圖1-6,將fpga2的配置管腳連接到arm處理器的一組gpio引腳。fpga2配置引腳中的init(初始化信號),done(配置完成信號)統(tǒng)一連接到arm處理器。當arm處理器完成自身的程序加載后即跳轉到啟動代碼1處。啟動代碼1的程序功能就是利用arm處理器的gpio接口模擬fpga2配置時序,將存儲在大容量flash中的fpga2程序傳輸?shù)絝pga2中。
參考圖1-6,dsp1和dsp2的程序加載工作由fpga2完成。當fpga2啟動以后首先完成dsp1和dsp2的程序加載。具體實現(xiàn)途徑為:在fpga2中構造兩個hpi接口控制器分別與dsp1和dsp2的hpi口連接。fpga2首先需要讀取大容量flash中的dsp1和dsp2的配置程序到fpga2中緩存,該功能通過fpga2和arm處理器之間的pci-e總線完 成數(shù)據(jù)傳輸。然后fpga2通過兩個hpi口同時完成dsp1和dsp2的程序配置。
各個程序文件按照如表1所示的順序,從flash空間0地址開始依次存放。
表1
綜上,本發(fā)明的多處理器架構的實時圖像壓縮平臺,能夠滿足對于圖像實時壓縮能力的要求,解決了現(xiàn)有的圖像的實時壓縮芯片實時壓縮能力不足的問題。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明技術原理的前提下,還可以做出若干改進和變形,這些改進和變形也應視為本發(fā)明的保護范圍。