摘要 實時視頻采集、存儲和處理,已在各領(lǐng)域得到廣泛應(yīng)用。文中介紹了基于FPGA的視頻采集系統(tǒng)設(shè)計的總體框架,并闡述了其中的設(shè)計流程,利用混沌信號對數(shù)據(jù)進行加密提高視頻數(shù)據(jù)的安全性。在DE2平臺下驗證實,文中設(shè)計的FPGA視頻采集系統(tǒng)完成了對實時視頻進行混沌加密,實驗結(jié)果表明,設(shè)計達到了初定的目標,加密的性能和效果能滿足應(yīng)用需要。
關(guān)鍵詞 視頻采集;FPGA;混沌加密;乒乓控制
實時視頻采集、存儲和處理已經(jīng)在得到廣泛應(yīng)用,如遠程監(jiān)控、安防、工程控制、醫(yī)療器械等。通常情況下,用CCD或CMOS采集視頻,而得到的都是模擬視頻信號,直接進行傳輸、存儲和處理比較困難,因此必須將其轉(zhuǎn)換為數(shù)字視頻信號。文中采用視頻解碼芯片和現(xiàn)場可編程門陣列FPGA設(shè)計的實時圖像采集系統(tǒng),不僅可以有效地縮短研發(fā)周期,而目可以廣泛應(yīng)用于圖像識別、網(wǎng)絡(luò)視頻傳輸和實時監(jiān)控等各類圖像信息處理系統(tǒng)。
此外,考慮到該設(shè)計的視頻采集系統(tǒng)可以投入后續(xù)的一些應(yīng)用,如網(wǎng)絡(luò)視頻或視頻會議等。信息安全對于本系統(tǒng)較為重要,要求本系統(tǒng)應(yīng)該具有一定的數(shù)據(jù)保密功能。由于目前許多加密算法的結(jié)構(gòu)復(fù)雜、運算量大,對于視頻采集這種實時性要求較高的數(shù)據(jù)流而言難以達到速度要求,因此,文中設(shè)計的系統(tǒng)選擇了—種加密效果良好,且易于硬件實現(xiàn)的混沌算法以對視頻數(shù)據(jù)進行加密。
1 混沌加密實現(xiàn)原理
1.1 混沌加密原理
混沌信號用于數(shù)據(jù)保密通信中有多種形式,究其根底混沌保密是利用混沌信號的各種特性實現(xiàn)的。在數(shù)據(jù)的發(fā)送端將其作為密鑰明文信息和混沌信號經(jīng)加密變換后形威密文,然后在信道中傳送,在接收端合法用戶知道解密密鑰和解密變換因此能夠得到正確的明文。這種加密原理主要源于傳統(tǒng)的對稱密鑰加密算法。
目前常用于加密的混沌同步方法主要有:驅(qū)動一響應(yīng)同步及串聯(lián)同步法、主動一被動同步方法、互耦合混沌同步法。自適應(yīng)同步方法、神經(jīng)網(wǎng)絡(luò)同步方法等。傳統(tǒng)的混沌加密算法首先需要產(chǎn)生混沌信號,混沌信號的產(chǎn)生要求較高。首先硬件要支持浮點運算,并且需要迭代一定次數(shù)才能產(chǎn)生混沌,所以占用硬件資源較大;相比較而言,本設(shè)計為實現(xiàn)視頻加密所采用的二維貓映射混沌加密算法和擴散算法,不會帶來信號失真,運算復(fù)雜度低,易于硬件的實現(xiàn),加密效果較好。
1.2 貓映射加密算法
貓映射的數(shù)學(xué)表達式為
其中,modl表示只取實數(shù)的小數(shù)部分。為將貓映射用于加密,需要對它進行適當(dāng)處理,首先將貓映射擴展到N×N,并進行離散化,如式(3)所示。
在實際圖像貓映射加密中,為讓圖像加密效果更理想,需要經(jīng)過n次迭代計算完成n階貓映射算法。需要說明的是,應(yīng)用貓映射算法加密的圖像必須是正方形,否則會產(chǎn)生像素混疊導(dǎo)致解碼失敗。因此,模運算的N表示圖像寬度。
1.3 擴散算法
擴散算法的數(shù)學(xué)表達式為
其中,f(xk,yk),f(xk+1,yk),f(xk+2,yk),f(xk+3,yk)表示一行中的連續(xù)4個像素值。進行模256的算法是為了使經(jīng)過擴散運算后的結(jié)果范圍在[0,255]內(nèi),保證運算結(jié)果仍為8位。此外,由于B矩陣中的元素都是整數(shù),對于不支持浮點數(shù)運算的硬件平臺來說,比較容易實現(xiàn)。
2 視頻采集系統(tǒng)的設(shè)計
此次設(shè)計采用的FPGA核心芯片是Altera公司CycloneII系列,型號EP2C35F672C。此型號芯片含有33 216個邏輯單元,內(nèi)置483 840bit的內(nèi)部RAM容量,其中包括105個M4K RAM模塊,35個內(nèi)嵌乘法器,4個PLL和475個I/O管腳。
2.1 系統(tǒng)的總體框架
設(shè)計的系統(tǒng)由A/D轉(zhuǎn)換、FPGA控制處理、外部SRAM和VGA組成,如圖1所示。A/D轉(zhuǎn)換部分用于圖像數(shù)據(jù)的采集和模數(shù)轉(zhuǎn)換。設(shè)計采用AD公司的視頻解碼芯片ADV7181。FPGA控制處理部分采用Altera公司的CydoneII系列芯片作為控制處理核心,負責(zé)前端數(shù)據(jù)采集和存儲,同時將數(shù)據(jù)傳輸至顯示器。另外,由于視頻數(shù)據(jù)采集的實時性和連續(xù)性要求,采用外部SRAM作為存儲設(shè)備。
2. 2 視頻采集的流程分析
視頻采集系統(tǒng)主要包括ITU656解碼模塊、I2C接口模塊、SRAM控制模塊和VGA顯示模塊。
當(dāng)系統(tǒng)加電后,首先通過過I2C接口模塊對ADV7181芯片進行初始化,使ADV7181芯片輸出標準的PAL制式數(shù)據(jù)。當(dāng)程序判斷出接收到的是有效視頻數(shù)據(jù)時,ITU656解碼模塊對A/D芯片產(chǎn)生的PAL制式數(shù)據(jù)流進行串并轉(zhuǎn)換和YUVtoRGB轉(zhuǎn)換,產(chǎn)生適合顯示的RGB數(shù)據(jù)格式。隨后FPGA將轉(zhuǎn)換后的圖像數(shù)據(jù)存入SRAM中,當(dāng)接收完一幀圖像數(shù)據(jù)后,F(xiàn)PGA將從SRAM中讀出視頻圖像數(shù)據(jù)并通過VGA模塊在CRT顯示器上顯示,與此同時FPGA繼續(xù)控制下一幀視頻的采集、轉(zhuǎn)換、存儲和顯示。整個視頻采集的流程如圖2所示。
3 視頻混沌加密系統(tǒng)的設(shè)計
混沌加密系統(tǒng)中,混沌加密算法的設(shè)計至關(guān)重要,它決定了混沌加密系統(tǒng)的安全性以及執(zhí)行效率。此外,由于視頻數(shù)據(jù)置龐大和實時性的特點,對混沌加密系統(tǒng)的執(zhí)行效率提出了更高的要求。具體的說,應(yīng)盡可能的避免重復(fù)的迭代運算,采用流水線式的結(jié)構(gòu)實現(xiàn)高速運算。
文中加密算法采用貓映射置亂算法和擴散算法相結(jié)合的方法實現(xiàn)。傳統(tǒng)用C語言實現(xiàn)的置亂和擴散加密方式主要是先對整幅圖像進行置亂后再進行擴散加密,程序中存在多次循環(huán)語句的調(diào)用,在圖像尺寸較大情況下,這些循環(huán)語句的調(diào)用會花費比較多的時間,造成數(shù)據(jù)處理實時性能不足;針對這種不足,考慮到Verilog語言的并行處理特點,提出具有實時處理能力的置亂擴散加密原理框圖,如圖3所示。
從原理上分析,置亂算法和擴散算法的運算對象不同,置亂算法處理的是像素位置,而擴散算法處理的是像素值。因此,借助Verlog語言的并行性特點,可以同時進行置亂算法和擴散算法。一方面將圖像像素坐標信息傳送到置亂加密模塊中,產(chǎn)生置亂后的地址,連接到SRAM的地址總線上;另一方面從視頻圖像中不斷地緩存連續(xù)的4個像素值傳送到擴散加密模塊中,經(jīng)過擴散算法后產(chǎn)生4個新的像素值,送到SRAM的數(shù)據(jù)總線上。
4 實驗及結(jié)果分析
4. 1 實驗結(jié)果
基于FPGA的視頻加密實驗結(jié)果如圖4所示。圖4(a)為采集到的某一幀圖像,需要說明的是圖像像素是由16位RGB565擴展為24位RGB888數(shù)據(jù)顯示的,其中RGB565數(shù)據(jù)是存放在SRAM中的數(shù)據(jù)。之所以存儲16位RGB565,是由于本系統(tǒng)中的外部存儲器SRAM的數(shù)據(jù)位寬為16位。選擇16位RGB565既滿足外部存儲器的數(shù)據(jù)帶寬要求,又不會降低圖像的視覺效果。圖14(b)為采集到的經(jīng)過混沌加密后的某一幀圖像,由于混沌加密算法會使圖像的像素值位寬變長,不能直接存放,需要將像素值截斷成RGB565的數(shù)據(jù)才能進行存儲。圖4(c)為經(jīng)過逆運算后得到的解密圖像。
4.2 安全性能分析
這里的安全性能分析主要是通過一幅圖像灰度值的統(tǒng)計特性來分析加密算法的安全性,采用Matlab計算出原圖像與加密后的灰度信息進行對比。
原圖像灰度值的統(tǒng)計直方圖,如圖5所示,從圖中可以了解到,圖像的頻率分布主要在低頻到中頻區(qū)域內(nèi)。
加密后圖像灰度值的統(tǒng)計直方圖,如圖6所示。對圖5和圖6進行比較,可以看出,經(jīng)過置亂和擴散加密的圖像灰度值統(tǒng)計特性發(fā)生了明顯的變化,圖像的頻率遍布整個頻率空間,這種效果正是置亂和擴散算法在加密中的充分體現(xiàn),也是圖像加密的安全性要求。正是由于混沌的這種特性,使得入侵者難以通過加密圖像的灰度值統(tǒng)計特性來破譯文件,從而增加密文圖像的安全性。
5 結(jié)束語
實驗完成了基于FPGA平臺的視頻采集系統(tǒng)的實現(xiàn)和混沌置亂擴散加密的算法設(shè)計。從實驗結(jié)果來看,設(shè)計達到設(shè)定的且標,加密的性能和效果基本滿足實際應(yīng)用的要求。由于系統(tǒng)采用的置亂擴散算法比較簡單,因此接下來的工作就是要利用更為復(fù)雜的混沌系統(tǒng)作為密碼流對視頻數(shù)據(jù)進行加密,以使視頻加密的安全性更好。