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