基于FPGA的網(wǎng)絡圖像采集處理系統(tǒng)設計
2.3.2 量化和編碼
量化是將經(jīng)過DCT變化后的系數(shù)值除以量化表中的量化值,其結(jié)果四舍五入得到。系統(tǒng)采用推薦的亮度量化表對圖像數(shù)據(jù)進行量化,該表存在FPGA的片上RAM中。由于硬件除法是通過迭代減法完成的,速度慢,因此先計算量化表中數(shù)值的倒數(shù)值,把DCT變化系數(shù)乘以量化表對應的倒數(shù)值,即可將除法轉(zhuǎn)換成速度較快的乘法運算。
量化后系數(shù)經(jīng)過Z型掃描器轉(zhuǎn)換成一維ZIG-ZAG序列,序列的第1個數(shù)值表示直流(DC)分量,其后的63個數(shù)值表示交流(AC)分量。對DC分量采用一維差分前值預測編碼,即將DC分量減去上一個8×8子快的DC分量。對AC分量采用游程編碼,并且用一個字節(jié)的高四位來表示AC分量連續(xù)0值個數(shù),低四位表示下一個非零系數(shù)所需位數(shù),這樣能夠表示的最大0值個數(shù)為15個,如果AC分量中0值個數(shù)多于15個,采用(15,0)來表示。(0,0)表示EOB,說明后面分量值全為0。這樣游程/預測編碼對系數(shù)0的值進行壓縮。最后霍夫曼編碼器利用霍夫曼表分別對DC和AC系數(shù)進行霍夫曼編碼,輸出JPEG圖像碼流。
2.4 網(wǎng)絡傳輸
通過在NiosⅡ處理器上移植支持TCP/IP協(xié)議棧的μC/OS-Ⅱ操作系統(tǒng)來實現(xiàn)圖像的網(wǎng)絡傳輸功能。軟件流程圖如圖7所示。本文引用地址:http://www.ex-cimer.com/article/190790.htm
首先將NiosⅡ作為網(wǎng)絡通信服務器,創(chuàng)建一個網(wǎng)絡監(jiān)聽套接字,將該套接字同NiosⅡ處理器的本機的IP地址和端口號進行綁定,調(diào)用Listen監(jiān)聽函數(shù)使系統(tǒng)處于監(jiān)聽狀態(tài),監(jiān)聽客戶端(PC機)請求,一旦監(jiān)聽到客戶端的連接請求,服務器端置圖像壓縮使能端有效,開始圖像的壓縮,并接收硬件邏輯完成壓縮的圖像數(shù)據(jù),然后服務器端向客戶端發(fā)送圖像的幀頭和圖像數(shù)據(jù),一幀圖像發(fā)送完成后會接著發(fā)送下一幀圖像,直到收到停止圖像發(fā)送指令,進入下一個監(jiān)聽的等待狀態(tài)為止??蛻舳酥饕窍蚍掌鞫税l(fā)出連接請求,一旦連接成功,即開始接收服務器端傳送的圖像幀頭和圖像數(shù)據(jù),并將圖像進行顯示??蛻舳嗽谕V菇邮請D像前,會不斷重復接收圖像數(shù)據(jù)的工作過程。
3 測試結(jié)果
AD采集一副大小為720×576的圖像,經(jīng)過硬件邏輯裁剪成如圖8(a)所示的512×512大小的圖像,由JPEG編碼器進行圖像壓縮,在PC機上解壓縮后的圖像如圖8(b)所示。將原始圖像和解壓縮后的圖像進行對比,計算圖像的峰值信噪比:
式中:MSE為原始圖像和壓縮圖像的均方誤差。從圖中可看到,PSNR>30時,圖像視覺失真度比較低。
4 結(jié)語
本文介紹了一種基于FPGA的網(wǎng)絡圖像處理系統(tǒng)設計和實現(xiàn)方法。系統(tǒng)主要包括圖像采集模塊、RAM控制模塊、JPEG編碼器3部分邏輯。在單片FPGA上實現(xiàn)圖像的采集、裁剪、緩存和JPEG編碼,構(gòu)建NiosⅡ處理器實現(xiàn)圖像的網(wǎng)絡傳輸功能。測試表明,系統(tǒng)的體積小,功耗低,算法升級靈活方便。此外系統(tǒng)運行穩(wěn)定,性能也滿足要求。
評論