摘 要: 闡述了流水線的基本原理,提出了基于流水線的YCbCr信號到RGB信號的色度空間轉換新方法,有效地提高了嵌入式系統(tǒng)中數(shù)字視頻處理" title="數(shù)字視頻處理">數(shù)字視頻處理速度。
關鍵詞: 流水線 FPGA VHDL 數(shù)字視頻 色度空間
近年來,由于人們對數(shù)字視頻處理技術的要求不斷提高,越來越多的數(shù)字視頻處理系統(tǒng)開始采用FPGA+DSP的體系架構。在這一架構中,F(xiàn)PGA的作用是對視頻數(shù)據(jù)進行較低階的預處理,如縮放、銳化、平滑、色度空間轉換等,DSP的作用是在預處理的基礎上對視頻數(shù)據(jù)進行高階處理,如編碼、識別等。由于數(shù)字視頻處理系統(tǒng)對實時性的要求較高,因此FPGA子系統(tǒng)的處理速度越快、處理效率越高,則預處理所需的時間就越短,DSP子系統(tǒng)就有充足的時間對視頻數(shù)據(jù)進行更復雜的處理,系統(tǒng)的整體性能就越強。在設計實際的FPGA子系統(tǒng)時,提出了流水線(Pipeline)方法,有效地提升了系統(tǒng)的處理速度和執(zhí)行效率。
1 流水線方法
流水線處理由通常的流水作業(yè)法而來,它是指將待處理的任務分解為相互有關而又相對獨立的、可以順序執(zhí)行的子任務。也就是說整個處理過程被劃分為一組串行連接的子過程,以完成相應的子任務。在數(shù)字視頻處理系統(tǒng)中,F(xiàn)PGA所承擔的運算大部分是加法,以3變量相加的任務為例,傳統(tǒng)的設計方法" title="設計方法">設計方法是直接構建一個3輸入的加法器,一次性計算出結果,而流水線設計方法則是先構建兩個2輸入的加法器,再將這兩個加法器級聯(lián)形成一個2級流水線系統(tǒng),經(jīng)過兩次計算得到最終結果,兩者的設計思想如圖1所示。
流水線有兩大優(yōu)點:第一,采用流水線技術" title="流水線技術">流水線技術的系統(tǒng)可以工作在更高的時鐘頻率" title="時鐘頻率">時鐘頻率下。在實際的FPGA系統(tǒng)中,系統(tǒng)所能承受的最高時鐘頻率受限于系統(tǒng)中的組合邏輯模塊的最大" title="最大">最大延時。圖1中(a)系統(tǒng)的工作時鐘不能超過1/Ta(Ta為加法器A的延時),(b)系統(tǒng)的工作時鐘不能超過1/Tb。由于加法器B的結構比加法器A簡單,所以必然有Tb
2.1 算法原理
在數(shù)字視頻處理系統(tǒng)中,色度空間的轉換被大量應用,如RGB空間與YCbCr空間的相互轉換,RGB空間與HSI空間的相互轉換等,這類轉換所需的運算量不大,但所要處理的視頻流的數(shù)據(jù)量很大,且對實時性要求較高,非常適合用流水線技術來實現(xiàn)。其中8bit YCbCr信號到RGB信號的轉換關系如式(1)所示。
在FPGA中直接構建加(減)法器很容易,但要構建小數(shù)乘法器則較為復雜,通常的做法是變小數(shù)運算為整數(shù)運算,變乘除運算為移位運算。基于這一思想,式(1)中YCbCr分量到G分量的轉換公式中的小數(shù)系數(shù)可用式(2)來代替。
所以YCbCr分量到G分量的轉換關系就可以近似的寫為式(3):
========
在數(shù)字電路中,乘以2相當于變量左移一位,除以2相當于變量右移一位,因此YCbCr分量到G分量轉換電路的原始硬件結構框圖如圖2所示。圖2所示電路中最復雜的模塊為5變量加法器,設其最大處理延時為T1,則電路的最高輸入時鐘頻率不超過1/T1。
2.2 流水線設計
流水線技術的核心思想就是將低速的復雜模塊拆分為多個高速的簡單模塊。圖2中的多變量加法器屬于復雜模塊,應將其拆分為多個兩變量加法器的級聯(lián),如圖3所示。在圖3中,YCbCr分量到G分量轉換任務由9個兩變量加法器組成的4級流水線來完成,輸入數(shù)據(jù)在時鐘的驅動下依次經(jīng)過4級流水線的處理,即可得到所需的處理結果。
圖3中每一級流水線所用到的加法器均為19位兩變量加法器,設其最大處理延時為T2,則電路的最高輸入時鐘頻率不超過1/T2。在實際運算過程中,前級流水線經(jīng)過T2延時后得出當前輸入的計算結果并將其送入次級流水線后,可以直接對下一組輸入數(shù)據(jù)進行計算,整個系統(tǒng)的工作流程可用表1來表示。
由表1可見,在經(jīng)過最初的4T2延時后,每經(jīng)過一個T2時間,就會有一組處理后的結果輸出,這一指標將大大優(yōu)于采用非流水線結構的電路。
2.3 仿真測試
利用Altera公司的Quartus II平臺對圖2和圖3的設計方案進行仿真測試,得到的結果如表2所示。由表2不難發(fā)現(xiàn),應用流水線技術后,系統(tǒng)所能承受的最大輸入時鐘頻率提高了1倍,系統(tǒng)的運行速度和執(zhí)行效率均獲得大幅提升。
在基于流水線技術的數(shù)字視頻系統(tǒng)中,由于各級流水線的結構不盡相同,必須考慮各級流水線的同步問題。圖3中的兩個帶斜線的方塊的作用就是為了數(shù)據(jù)同步,在實際設計時可用寄存器來完成。另外,YCbCr分量到R分量、YCbCr分量到G分量、YCbCr分量到B分量的計算復雜度不盡相同,所需的流水線的級數(shù)也不一樣。在整個系統(tǒng)的搭建中,較短流水線的最終輸出應加以延時以做到和較長流水線的最終輸出同步。
由于流水線設計是在以空間換時間,因此設計基于流水線結構的電路所需的門電路要比傳統(tǒng)設計方法多,在器件選型時應注意留出余量。
基于流水線的設計方法相對于傳統(tǒng)設計方法而言,可以在不顯著增加硬件開銷的前提下大幅提升系統(tǒng)的運行速度和處理效率,對于設計高速數(shù)字視頻處理系統(tǒng)具有很大的實用價值。
參考文獻
1 Wang Y,Ostermann J,Ya-Qin Z著,侯正信,楊 喜,王文全譯.視頻處理與通信.北京:電子工業(yè)出版社,2003
2 Sjoho l S著,邊計年,薛宏熙譯.VHDL設計電子線路.北京:清華大學出版社,2001
3 王宇紅,常 青.用VHDL語言設計流水操作.微處理機,2002;(2)
4 北京理工大學ASIC研究所.VHDL語言100例詳解.北京:清華大學出版社,1999
5 朱明程,熊元姣.ACTEL數(shù)字系統(tǒng)現(xiàn)場集成技術.北京:清華大學出版社,2004