一種信號高效處理方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及信號采集,特別涉及一種圖像信號采集處理方法。
【背景技術(shù)】
[0002] 隨著圖像與視頻處理技術(shù)、網(wǎng)絡(luò)技術(shù)和自動控制技術(shù)的發(fā)展,視頻監(jiān)控系統(tǒng)已從 早期模擬監(jiān)控過渡到數(shù)字化網(wǎng)絡(luò)監(jiān)控。數(shù)字視頻監(jiān)控系統(tǒng)是以數(shù)字視頻的壓縮、傳輸、存儲 和播放為核心,并采用先進的數(shù)字圖像壓縮、編碼、解碼和傳輸技術(shù),從而實現(xiàn)可視化監(jiān)控。 傳統(tǒng)的視頻采集系統(tǒng)僅支持幾種制式的視頻數(shù)據(jù),很難清晰地抓拍到目標(biāo)快速變化的瞬時 圖片,而很多高幀頻的攝像頭只是對圖像進行了簡單的采集,并未經(jīng)過信號的數(shù)字的分析 處理,使得圖像數(shù)據(jù)的信道傳輸和存儲速度無法擺脫瓶頸。
【發(fā)明內(nèi)容】
[0003] 為解決上述現(xiàn)有技術(shù)所存在的問題,本發(fā)明提出了一種信號高效處理方法,包 括:
[0004] 通過CPLD完成對視頻數(shù)據(jù)的采集并將采集的視頻數(shù)據(jù)緩存在內(nèi)部隊列中,將內(nèi) 部隊列的數(shù)據(jù)打包并行傳輸至編碼芯片,編碼芯片對圖像進行JPEG壓縮,壓縮后的數(shù)據(jù)通 過AGP總線傳輸給控制上位機,然后通過上位機對圖像進行解碼顯示。
[0005] 優(yōu)選地,所述將采集的視頻數(shù)據(jù)緩存在內(nèi)部隊列中,進一步包括:
[0006] 將輸入的視頻數(shù)據(jù)流以幀為單位交替地寫入兩個不同的SDRAM存儲單元,在寫入 其中一塊SDRAM的同時,將另一塊SDRAM中的數(shù)據(jù)讀出,并送到數(shù)據(jù)編碼單元進行運算;
[0007] 編碼芯片接收到CPLD傳輸?shù)膱D像數(shù)據(jù)后,以幀為單位交替寫入兩塊SDRAM存儲 器,與此同時,數(shù)據(jù)被交替讀出,輸出給數(shù)據(jù)壓縮單元進行編碼;
[0008] 編碼芯片上電復(fù)位后,芯片內(nèi)程序從Flash起始處加載并啟動,通過二次引導(dǎo),將 應(yīng)用程序全部搬移到編碼芯片內(nèi)存中,然后跳轉(zhuǎn)到入口函數(shù),完成初始化配置,并等待CPLD 的外部中斷觸發(fā)信號;CPLD采集到數(shù)據(jù)后,緩存到接口隊列中,并以中斷的方式觸發(fā)編碼 芯片的DMA進程,編碼芯片以DMA的方式將數(shù)據(jù)存儲到SDRAM中,若一幀圖像傳輸完畢,則 觸發(fā)軟中斷,進入JPEG編碼子程序;編碼完成后,再次觸發(fā)DMA進程,將數(shù)據(jù)回傳給CPLD ;
[0009] 所述壓縮后的數(shù)據(jù)通過AGP總線傳輸給控制上位機,進一步包括:
[0010] AGP總線接口內(nèi)部邏輯先判斷總線啟動信號,若該引腳電平由高變低,則啟動一次 數(shù)據(jù)傳輸過程,然后判斷讀寫信號電平LWR,若LWR為1,表示AGP寫過程,否則為讀過程;在 AGP讀過程中包括讀狀態(tài)和讀數(shù)據(jù),通過地址總線LA來判斷,在讀過程中,若LA = 04H,則 為讀寄存器狀態(tài);若LA = A0H,則為讀批量圖像數(shù)據(jù);而寫過程中,若LA = 01H,則為系統(tǒng)復(fù) 位,立即執(zhí)行,不寫入寄存器;若LA = 02H,則為命令下載,需要將命令字寫入相應(yīng)寄存器; 若LA = 03H,則為命令刷新,立即執(zhí)行,不寫入寄存器;所述CPLD的IP核包括隊列數(shù)據(jù)緩 存器,位寬為32位,與AGP總線位寬相匹配;在CPLD內(nèi)部增添了數(shù)據(jù)方向控制模塊,保證數(shù) 據(jù)有序地下載和上傳。
[0011] 優(yōu)選地,所述編碼芯片對圖像進行JPEG壓縮,進一步包括:
[0012] 首先對圖像進行分塊處理,然后對每一個像素分塊進行離散余弦變換,保留低頻 系數(shù),去除高頻系數(shù),再對矩陣系數(shù)進行量化和;最后進行編碼,實現(xiàn)圖像的壓縮,在分塊處 理之前,通過以下過程將RGB轉(zhuǎn)換成YcbCr形式:
[0013] Y = 0. 299R+0. 587G+0. 114B
[0014] Cb =-0.169R-0. 331G+0. 5B+128
[0015] Cr =0.5R-0. 419G-0. 081B+128
[0016] 然后將多個亮度分量子塊和兩個色度分量子塊構(gòu)成的一個編碼單元作為最小編 碼單元,在分割圖像時,對初始圖像進行填充,使其寬度和高度為8的倍數(shù)。
[0017] 本發(fā)明相比現(xiàn)有技術(shù),具有以下優(yōu)點:改善信號傳輸存儲速度,降低了對信道寬度 以及存儲空間大小的要求。
【附圖說明】
[0018] 圖1是根據(jù)本發(fā)明實施例的信號高效處理方法的流程圖。
【具體實施方式】
[0019] 下文與圖示本發(fā)明原理的附圖一起提供對本發(fā)明一個或者多個實施例的詳細(xì)描 述。結(jié)合這樣的實施例描述本發(fā)明,但是本發(fā)明不限于任何實施例。本發(fā)明的范圍僅由權(quán) 利要求書限定,并且本發(fā)明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細(xì)節(jié) 以便提供對本發(fā)明的透徹理解。出于示例的目的而提供這些細(xì)節(jié),并且無這些具體細(xì)節(jié)中 的一些或者所有細(xì)節(jié)也可以根據(jù)權(quán)利要求書實現(xiàn)本發(fā)明。
[0020] 本發(fā)明的一方面提供了一種信號高效處理方法。圖1是根據(jù)本發(fā)明實施例的信號 高效處理方法流程圖。本發(fā)明利用多接口、高速率傳輸?shù)膱D像處理系統(tǒng),由CPLD采集數(shù)字 化后的視頻圖像數(shù)據(jù),通過編碼芯片將采集的數(shù)據(jù)進行編碼壓縮,然后再將編碼壓縮后的 數(shù)據(jù)通過AGP總線傳輸給上位機,最后再通過上位機對圖像進行解壓縮并顯示。
[0021] 本發(fā)明通過CPLD,對視頻解碼器進行配置,并接收視頻解碼器輸出的圖像數(shù)據(jù); 同時,采用了通用輸出接口,接收標(biāo)準(zhǔn)數(shù)字相機輸出的圖像數(shù)據(jù)。在CPLD完成對視頻數(shù)據(jù) 的采集并經(jīng)內(nèi)部隊列緩存后,將數(shù)據(jù)打包并行傳輸給編碼芯片,編碼芯片對圖像進行JPEG 壓縮,壓縮后的數(shù)據(jù)通過AGP總線傳輸給控制上位機,然后通過上位機對圖像進行解碼顯 不〇
[0022] 視頻傳輸協(xié)議是以幀為單位傳輸,采用隔行掃描。視頻解碼器采用同步信號嵌入 數(shù)據(jù)內(nèi)部的輸出方式。CPLD完成圖像數(shù)據(jù)的接收后,經(jīng)過格式變換及濾波將圖像數(shù)據(jù)傳輸 給編碼芯片進行壓縮。壓縮打包完成后,將數(shù)據(jù)回傳給CPLD,通過CPLD控制AGP總線接口 時序,將數(shù)據(jù)最終上傳給上位機。為了滿足圖像數(shù)據(jù)高速、雙向、實時的傳輸,在編碼芯片與 CPLD之間設(shè)計了兩個高速的隊列緩沖。
[0023] 在CPLD內(nèi)部IP核中創(chuàng)建了內(nèi)部隊列,數(shù)據(jù)寬度為32位,存儲容量為3MX 32位。 采用了獨立的讀時鐘和寫時鐘,數(shù)據(jù)達(dá)到半滿,半滿標(biāo)志位置1 (half_flag = " 1");達(dá)到 滿,滿標(biāo)志置l(full_flag = "l")。視頻數(shù)據(jù)采集、處理完成之后,CPLD通過隊列的滿標(biāo) 志查看隊列是否已滿,如果未滿,則將32位圖像數(shù)據(jù)在寫時鐘的邏輯控制下寫入到隊列; 將半滿信號連接到編碼芯片的中斷引腳,半滿信號置高,會觸發(fā)編碼芯片的DMA進程,將隊 列中的圖像數(shù)據(jù)讀出。同理,編碼芯片通過外設(shè)接口將CPLD作為其外部存儲空間,壓縮后 的數(shù)據(jù)通過DMA寫到CPLD內(nèi)部的另一個隊列,半滿信號觸發(fā)CPLD內(nèi)部讀數(shù)進程,將數(shù)據(jù)讀 出,通過AGP總線上傳到控制上位機。
[0024] 對圖像數(shù)據(jù)處理流程,源圖像先經(jīng)過正向預(yù)處理后進行離散小波變換,然后對變 換的小波系數(shù)進行量化處理和熵編碼,最后將熵編碼后獲得的圖像數(shù)據(jù)打包成壓縮數(shù)據(jù)包 輸出。解碼則按照壓縮碼流中提供的各個參數(shù)將編碼過程進行逆向操作,最終將源圖像重 構(gòu)還原出來。
[0025]為了防止在編碼過程中造成數(shù)據(jù)的丟失,在采集與編碼電路之間設(shè)計一組幀緩存 電路。輸入的視頻數(shù)據(jù)流以幀為單位交替地寫入兩個不同的SDRAM存儲單元,在寫入其中 一塊SDRAM的同時,將另一塊SDRAM中的數(shù)據(jù)讀出,并送到數(shù)據(jù)編碼單元進行運算。這樣數(shù) 據(jù)的輸入/輸出都是不間斷的,非常適合流水線式操作,完成數(shù)據(jù)的無縫緩存和處理。
[0026] 編碼芯片接收到CPLD傳輸?shù)膱D像數(shù)據(jù)后,以幀為單位交替寫入兩塊SDRAM存儲 器。與此同時,數(shù)據(jù)被交替讀出,輸出給數(shù)據(jù)壓縮單元進行編碼。數(shù)據(jù)流被嚴(yán)格有效地控制, 不會出現(xiàn)丟數(shù)據(jù)或者誤碼,而且效率很高。
[0027] 編碼芯片對圖像數(shù)據(jù)的編碼流程為:上電復(fù)位后,編碼芯片程序從Flash起始處 加載并啟動,通過二次引導(dǎo),最終將應(yīng)用程序全部搬移到編碼芯片內(nèi)存中,然后跳轉(zhuǎn)到入口 函數(shù),完成初始化配置,并等待CPLD的外部中斷觸發(fā)信號。CPLD采集到數(shù)據(jù)后,緩存到接 口隊列中,并以中斷的方式觸發(fā)編碼芯片的DMA進程,編碼芯片以DMA的方式將數(shù)據(jù)存儲到 SDRAM中,若一幀圖像傳輸完畢,則觸發(fā)軟中斷,進入JPEG編碼子程序。編碼完成后,再次觸 發(fā)DMA進程,將數(shù)據(jù)回傳給CPLD。
[0028] AGP總線接口內(nèi)部邏輯先判斷總線啟動信號,若該引腳電平由高變低,則啟動一次 數(shù)據(jù)傳輸過程,然后判斷讀寫信號電平LWR,若LWR為1,表示AGP寫過程,否則為讀過程。 AGP讀過程又分為讀狀態(tài)和讀數(shù)據(jù),通過地址總線LA來判斷,讀過程中,若LA = 04H,則為 讀寄存器狀態(tài);若LA = A0H,則為讀批量圖像數(shù)據(jù)。而寫過程中,若LA = 01H,