<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 低通濾波器之VLS架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)

          低通濾波器之VLS架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)

          作者: 時(shí)間:2016-12-05 來(lái)源:網(wǎng)絡(luò) 收藏
          第一章 緒論

          影像有時(shí)候會(huì)出現(xiàn)干擾的現(xiàn)象,稱為雜訊(noise)。由於雜訊的性質(zhì)不同,導(dǎo)致去除雜訊的方法也不盡相同。這邊我們假設(shè)雜訊的狀況為干擾亮點(diǎn),此一雜訊屬於高頻的雜訊,因此利用低通濾波器來(lái)使雜訊模糊化,藉此達(dá)到去除雜訊的效果。

          本文引用地址:http://www.ex-cimer.com/article/201612/326262.htm

          1.1 研究背景與動(dòng)機(jī)

          雜訊的本意是對(duì)外界干擾的總稱。何謂影像的雜訊呢?例如由於電視天線狀況不佳導(dǎo)致影像接收不好,這又可分為兩類,其一是收視的影像本身出現(xiàn)扭曲、歪斜或者是模糊不清等情況。其二是影像上面出現(xiàn)各種形式的干擾斑點(diǎn)、條紋等。後一種干擾稱之為影像的雜訊(noise)。

          由於雜訊的性質(zhì)不同,導(dǎo)致去除雜訊的方法也不盡相同。那麼,如何從一幅有雜訊的影像中把雜訊除去呢?這是本篇研究的主題。我們的目的是要把干擾的雜訊除去,得到清晰的影像。

          因此我們可以把有雜訊干擾的影像放大觀察後,可以知道,雜訊的濃度與其四周像素(pixel)的濃度間,存在著很大的濃度差。正是這種急遽變化的濃度差,使人覺(jué)得刺眼,利用雜訊的這種性質(zhì)除去雜訊的方法,一般稱之為平滑化(smoothing)。但影像的邊界部份也有急遽變化的濃度差。如何將邊界與雜訊恰當(dāng)?shù)姆蛛x開(kāi)來(lái),只除去雜訊部份,這也是需要注意的地方。

          1.2 數(shù)位影像類型簡(jiǎn)介

          基礎(chǔ)的影像類型有四種,這邊作個(gè)簡(jiǎn)單的介紹。

          1.二元數(shù)位影像(binary) 每一個(gè)像素不是黑就是白。由於像素只有兩種可能值,因此每個(gè)像素只需1位元,這種影像的儲(chǔ)存效率很高。

          2.灰階影像(grayscale) 每一個(gè)像素都是灰色,只是深淺不同,一般來(lái)說(shuō)範(fàn)圍從0(黑)到255(白)。由此可知每個(gè)像素需要8位元來(lái)表示。

          3.全彩或RGB影像(true color) 每一個(gè)像素都有自己的顏色,這個(gè)顏色是由不同比例的紅,綠,藍(lán)調(diào)配而成。且每個(gè)原色深淺範(fàn)圍也各都是0-255。因?yàn)槊總€(gè)像素需要使用24位元,所以這種影像又稱為24位元彩色影像(24-bit color image)。

          4.索引影像(indexed) 大部分影像集中在某一部分,為了方便儲(chǔ)存及處理,於是建立相對(duì)應(yīng)的色譜(colormap)或調(diào)色盤(pán)(color palette),每個(gè)像素的值僅代表著色譜上對(duì)應(yīng)顏色的索引(index)。

          第二章 421濾波器及演算法

          我們可以透過(guò)對(duì)像素執(zhí)行特定函數(shù)運(yùn)算來(lái)修正影像。對(duì)於四周的部份(臨域)也可以使用同樣的方式去運(yùn)算。主要的概念便是將遮罩覆蓋到指定的影像上面。如此一來(lái),便會(huì)如圖2.1所示,產(chǎn)生一個(gè)新的影像,該影像的像素值則是根據(jù)遮罩下的像素值運(yùn)算而來(lái)。而遮罩與函數(shù)的結(jié)合便稱之為濾波器(filter)。

          濾波器的運(yùn)算大致來(lái)說(shuō)可分為三個(gè)步驟:

          1.將遮罩置於指定像素上。

          2.將濾波器的所有元素與臨域相對(duì)應(yīng)的像素相乘。

          3.將上述乘法的結(jié)果相加後計(jì)算平均值。

          影像中的所有像素都需重覆此一運(yùn)算。

          2.1 高通濾波器及低通濾波器

          影像處理中的一個(gè)重要概念就是頻率(frequency)。簡(jiǎn)單來(lái)說(shuō),影像的頻率是像素值隨著距離變化的一種度量。高頻的部份(high-frequency)指的是短距離內(nèi)像素值產(chǎn)生很大的變化,例如影像的邊緣部份或雜訊部份。相對(duì)地,低頻(low- -frequency)的部份則是影像中像素值變化不大的部份,像是背景等。

          因此所謂的高通濾波器(high-pass filter)便是保持高頻率的部份,減少或消除低頻率的部份的濾波器;而低通濾波器(low-pass filter)則是保持低頻率的部份,減少或消除高頻率的部份的濾波器。

          2.2 421低通濾波器演算法

          舉例來(lái)說(shuō),若有一421低通濾波器函數(shù)與指定像素E及其臨域的像素值如圖2.2及圖2.3所示,

          則其對(duì)指定像素進(jìn)行運(yùn)算的結(jié)果為

          E’= ( A + 2B + C + 2D + 4E + 2F + G + 2H + I ) / 16

          以上面的例子來(lái)說(shuō),421平均濾波器是低通濾波器,此濾波器的效果會(huì)模糊邊緣,或者是降低高頻的雜訊,所以這邊我們可以利用它降低亮點(diǎn)的雜訊干擾。並且由於421低通濾波器的函數(shù)是線性的計(jì)算,屬於線性濾波器,因此可以拆解成如圖2.4的表示方法。

          2.3 影像邊界延伸之處理

          在本節(jié)之前並沒(méi)有談到影像邊界之問(wèn)題。如圖2.5所示,若指定像素在邊界時(shí),遮罩器可能會(huì)超過(guò)影像邊界。而在真實(shí)的世界中,我們想要處理的影像必定為有限大小,所以會(huì)產(chǎn)生邊界問(wèn)題。因此如何處理邊界延伸之問(wèn)題就顯得格外重要。

          解決邊界延伸的方法有許多種類型,各有其優(yōu)缺點(diǎn)。例如補(bǔ)零方法,是將超過(guò)邊界之部份全部當(dāng)成零來(lái)計(jì)算,此種方法的實(shí)現(xiàn)方式最為簡(jiǎn)單。但是由於可能造成的落差太大,所以並不適合我們?cè)谶@邊使用。另一種方法為週期性對(duì)稱延伸,是利用複製指定像素的臨域去做計(jì)算。這樣做的好處是邊界延伸的部份會(huì)與鄰近的像素值相近,在視覺(jué)上會(huì)有一種連續(xù)的效果。因此在這邊我們採(cǎi)用此種方法去處理邊界延伸之問(wèn)題。如圖2.6。

          第三章 硬體功能及規(guī)格

          在前面的章節(jié)我們簡(jiǎn)單說(shuō)明了421低通濾波器的演算法,本章節(jié)針對(duì)它以及內(nèi)部各個(gè)部份的功能及規(guī)格上做介紹。它的架構(gòu)如圖3.1所示。

          表3.1 LPF輸入及輸出腳位

          輸入腳位名稱

          功能說(shuō)明

          大小(bits)

          CLK

          時(shí)脈週期。

          1

          RSTn

          重設(shè),0代表重設(shè);1代表不動(dòng)作。

          1

          DIN

          接收輸入資料。

          24

          DINEn

          控制輸入資料的致能;0 代表致能。

          1

          HS

          當(dāng)資料為圖片每行的開(kāi)頭之前或結(jié)尾之後則1;否則0。

          1

          VS

          當(dāng)資料為圖片的開(kāi)頭之前或結(jié)尾之後則1;否則0。

          1

          輸出腳位名稱

          功能說(shuō)明

          大小(bits)

          DOUT

          傳送輸出資料。

          24

          DOUTEn

          控制輸出資料的致能;0 代表致能。

          1

          表3.1說(shuō)明了輸入及輸出腳位。這邊的時(shí)脈週期我們採(cǎi)用的是正緣觸發(fā)。重設(shè)是低準(zhǔn)位重設(shè),高準(zhǔn)位不動(dòng)作。因?yàn)槲覀兊挠跋耦愋褪菕?cǎi)用YUV,而YUV各為8位元,因此輸入及輸出的資料為24位元。不過(guò)需要注意的是我們只對(duì)Y做影像處理,因此為了節(jié)省記憶體空間,偶數(shù)行的U留下但是V捨去,奇數(shù)行的U捨去但是V留下,而兩行間的UV共用。另外輸入及輸出的致能腳為低準(zhǔn)位致能。

          3.1 各級(jí)架構(gòu)

          此低通濾波器中,總共大致可分為3個(gè)架構(gòu),如圖3.3所示。其中包括有邊界處理器(Boundary)、記憶體(Memory)、計(jì)算處理器(Processer)等。一一敘述如下。

          3.1.1 邊界處理器

          為了影像在邊界延伸時(shí)的特殊情況,我們?cè)O(shè)計(jì)了一個(gè)專門(mén)用來(lái)處理邊界問(wèn)題之部分,如圖3.4。

          邊界處理器之規(guī)格如表3.2所列。DIN_1、DIN_2及DIN_3僅含有YU或YV,因此為16位元。DOUT_1、DOUT_2、DOUT_3、DOUT_4及DOUT_5僅含有Y或U或V,所以為8位元。C_EVEN是為了控制記憶體的讀寫(xiě)動(dòng)作,所以會(huì)把C_EVEN接至記憶體的輸入腳。

          表3.2

          輸入腳位名稱

          功能說(shuō)明

          大小(bits)

          CLK

          時(shí)脈週期。

          1

          RSTn

          重設(shè),0代表重設(shè);1代表不動(dòng)作。

          1

          HS

          當(dāng)資料為圖片每行的開(kāi)頭之前或結(jié)尾之後則1;否則0。

          1

          VS

          當(dāng)資料為圖片的開(kāi)頭之前(或結(jié)尾之後)則1;否則0。

          1

          DINEn

          控制輸入資料的致能;0 代表致能。

          1

          DIN_1

          從SRAM讀進(jìn)的偶數(shù)列資料。

          16

          DIN_2

          從SRAM讀進(jìn)的奇數(shù)列資料。

          16

          DIN_3

          從掃描列讀進(jìn)的資料。

          16

          輸出腳位名稱

          功能說(shuō)明

          大小(bits)

          DOUTEn

          控制輸出資料的致能;0 代表致能。

          1

          DOUT_1

          僅含有Y且送到Processer的資料。

          8

          DOUT_2

          僅含有Y且送到Processer的資料。

          8

          DOUT_3

          僅含有Y且送到Processer的資料。

          8

          DOUT_4

          僅含有U的資料。

          8

          DOUT_5

          僅含有V的資料。

          8

          C_EVEN

          0代表掃瞄列為偶數(shù)列;1則為奇數(shù)列。

          13.1.2記憶體

          我們把偶數(shù)列跟奇數(shù)列的資料分別儲(chǔ)存於不同的記憶體中。先使用Memory Generate 呼叫出 single port的SRAM,然後與控制讀寫(xiě)電路組合成如圖3.5所示之記憶體,偶數(shù)列與奇數(shù)列的記憶體架構(gòu)一樣,只有控制讀寫(xiě)電路略有不同。

          表3.3

          輸入腳位名稱

          功能說(shuō)明

          大小(bits)

          CLK

          時(shí)脈週期。

          1

          RSTn

          重設(shè),0代表重設(shè);1代表不動(dòng)作。

          1

          DINEn

          控制輸入資料的致能;0 代表致能。

          1

          DIN

          寫(xiě)入到記憶體的資料。

          32

          C_EVEN

          0代表掃瞄列為偶數(shù)列;1則為奇數(shù)列。

          1

          輸出腳位名稱

          功能說(shuō)明

          大小(bits)

          DOUT

          從記憶體讀出的資料。

          32

          本章開(kāi)頭提到為了節(jié)省記憶體空間,因此在存入資料時(shí),並非將原始的資料直接存入,而是只取YU或者是YV,加上一次儲(chǔ)存兩行的資料,所以輸入及輸出資料為32位元。

          3.1.3 計(jì)算處理器

          計(jì)算處理器的主要功能是要處理對(duì)Y做加權(quán)函數(shù)的計(jì)算。DIN_1與DIN_3的加權(quán)值為1,而DIN_2的加權(quán)值為2。

          整理出計(jì)算處理器規(guī)格如表3.4。

          表3.4

          輸入腳位名稱

          功能說(shuō)明

          大小(bits)

          CLK

          時(shí)脈週期。

          1

          RSTn

          重設(shè),0代表重設(shè);1代表不動(dòng)作。

          1

          DIN_1

          僅含有Y且加權(quán)值為1。

          8

          DIN_2

          僅含有Y且加權(quán)值為2。

          8

          DIN_3

          僅含有Y且加權(quán)值為1。

          8

          輸出腳位名稱

          功能說(shuō)明

          大小(bits)

          DOUT

          輸出為計(jì)算過(guò)後的Y。

          8

          第四章 硬體的設(shè)計(jì)

          本章開(kāi)始設(shè)計(jì)濾波器內(nèi)部的各個(gè)部份,說(shuō)明如下。

          4.1 邊界處理器

          在設(shè)計(jì)邊界處理器之前,我們必須先考慮週期性對(duì)稱延伸的幾種情況。包括有上下週期性對(duì)稱延伸、左右週期性對(duì)稱延伸,最後一種則是兩個(gè)情況同時(shí)發(fā)生的時(shí)候。

          先考慮上下週期性對(duì)稱延伸,發(fā)生在指定像素為第一列或是最後一列之任意像素。左右週期性對(duì)稱延伸,則是發(fā)生在指定像素為第一行或是最後一行之任意像素。而兩種情況會(huì)同時(shí)發(fā)生在指定像素為圖片的四個(gè)端點(diǎn)時(shí)。

          4.1.1 上下週期性對(duì)稱延伸

          要解決上下週期性對(duì)稱延伸之問(wèn)題,只要在指定像素為第一列及最後一列時(shí),將DIN_1複製到DIN_3或是將DIN_3複製到DIN_1。在上邊界時(shí),必須要等到掃描到第二列才能複製;下邊界時(shí),則直接複製從記憶體讀出的資料。

          4.1.2 左右週期性對(duì)稱延伸

          與上下週期性對(duì)稱延伸之問(wèn)題類似,因此解決方法也類似,只要將所讀入的資料貼到左側(cè)或右側(cè)即可。在左邊界時(shí),必須要等到掃描到第二行像素時(shí)才能複製它當(dāng)成延伸;在右邊界時(shí),想要取得已經(jīng)掃瞄過(guò)的像素當(dāng)成延伸則需要利用到暫存器。

          我們可以發(fā)現(xiàn),必須要等到掃描第二列第二行時(shí),邊界處理器才會(huì)有第一次的輸出(DIN_1、DIN_2與DIN_3是同時(shí)輸出的)。因此,可設(shè)計(jì)出如圖4.3之架構(gòu)。

          4.1.3 兩種情況同時(shí)發(fā)生

          當(dāng)兩種情況同時(shí)發(fā)生時(shí),延伸之方法如圖2.6所表示。

          4.2 記憶體

          從圖3.6的儲(chǔ)存方式來(lái)看,雖然掃描時(shí)一次是一個(gè)像素值,不過(guò)利用暫存器並且合成,儲(chǔ)存時(shí)便可一次存兩個(gè)像素值,並且可以在輸入前取DEven為YU;Dodd為YV。而輸出時(shí)也可利用暫存器並且做分解,如圖4.4所示。

          在控制讀寫(xiě)方面,需要注意的是當(dāng)掃描到偶數(shù)列時(shí),儲(chǔ)存奇數(shù)列之記憶體的讀寫(xiě)腳位會(huì)一直維持在讀的狀態(tài);而掃瞄到奇數(shù)列時(shí),儲(chǔ)存偶數(shù)列之記憶體的讀寫(xiě)腳位也會(huì)一直維持在讀的狀態(tài)。

          4.3 計(jì)算處理器

          依照?qǐng)D2.4做拆解運(yùn)算,如圖4.5(a)(b)(c),可以看出只需要兩個(gè)1x3的濾波器和一些暫存器就可以完成圖2.4的拆解動(dòng)作。

          因此計(jì)算處理器的設(shè)計(jì)上最為簡(jiǎn)單,其中大部分是由組合電路所組成。如圖4.6所示。

          其中的暫存器R1與R2是為了將ALU_1所計(jì)算出的結(jié)果暫存起來(lái),如圖4.7。ALU_1及ALU_2的作用是為了做加權(quán)函數(shù)的計(jì)算,輸出為 DIN_1 + 2*DIN_2 + DIN_3 ,但須注意的是ALU_1輸出及ALU_2輸入位元大小的設(shè)定,以免發(fā)生溢位。最後再將ALU_2的輸出向右位移4位元(函數(shù)計(jì)算中的除以16),DOUT即為做完加權(quán)計(jì)算的Y值。

          第五章 設(shè)計(jì)與驗(yàn)證之流程

          在本章節(jié)中,我們將簡(jiǎn)單的介紹LPF設(shè)計(jì)流程,接著,會(huì)利用一組的測(cè)試資料,來(lái)驗(yàn)證模擬結(jié)果是否正確。

          5.1 設(shè)計(jì)流程

          如圖5.1所示,一開(kāi)始先考慮架構(gòu)之功能,接著使用硬體描述語(yǔ)言Verilog HDL 實(shí)現(xiàn)功能之設(shè)計(jì),經(jīng)過(guò)編譯器確定語(yǔ)法無(wú)誤後,再模擬結(jié)果。若有問(wèn)題,則回頭尋找錯(cuò)誤;若沒(méi)有問(wèn)題,則完成全部設(shè)計(jì)之流程。5.2 模擬及驗(yàn)證

          完成RTL之後,接著要模擬及驗(yàn)證結(jié)果是否正確。首先要先將.ppm檔轉(zhuǎn)換成.dat檔,因?yàn)檫@是Verilog HDL中testbench所能夠讀取的檔案。我們除了用Verilog HDL來(lái)模擬421低通濾波器之外,也使用C語(yǔ)言模擬421低通濾波器,並將兩者輸出之結(jié)果儲(chǔ)存成.dat檔來(lái)比較。若結(jié)果無(wú)誤,則轉(zhuǎn)換回.ppm檔。

          5.3 波型圖

          當(dāng)模擬完成之後,使用Verdi觀察波型圖。

          5.3.1 低通濾波器

          圖5.3(a)(b)說(shuō)明了當(dāng)讀取資料為圖片的開(kāi)頭之前或結(jié)尾之後時(shí),VS會(huì)為1;否則為0。當(dāng)讀取資料為圖片每行的開(kāi)頭之前或結(jié)尾之後時(shí),HS會(huì)為1;否則為0。

          5.3.2 邊界處理器

          在之前提到邊界處理器需要利用到暫存器並位移。如圖5.4所表示,R1、R4、R7、R10分別為DIN_1延遲一個(gè)、兩個(gè)、三個(gè)及四個(gè)時(shí)脈週期;R2、R5、R8、R11分別為DIN_2延遲一個(gè)、兩個(gè)、三個(gè)及四個(gè)時(shí)脈週期;而R3、R6、R9、R12分別為DIN_3延遲一個(gè)、兩個(gè)、三個(gè)及四個(gè)時(shí)脈週期。

          圖5.4 邊界處理器

          5.3.3 記憶體

          記憶體在控制讀寫(xiě)方面,需要注意的是當(dāng)掃描到偶數(shù)列時(shí),儲(chǔ)存奇數(shù)列之記憶體的讀寫(xiě)腳位會(huì)一直維持在讀的狀態(tài);而掃瞄到奇數(shù)列時(shí),儲(chǔ)存偶數(shù)列之記憶體的讀寫(xiě)腳位也會(huì)一直維持在讀的狀態(tài)。圖5.5(a)是掃描到奇數(shù)列時(shí),而圖5.5(b)則是為掃描到偶數(shù)列時(shí)??勺⒁獾絎En的差異性。

          圖5.5(a) 儲(chǔ)存偶數(shù)列之記憶體

          圖5.5(b) 儲(chǔ)存偶數(shù)列之記憶體

          5.3.4 計(jì)算處理器

          可以看出利用暫存器的位移便只需要兩個(gè)1x3的濾波器即可達(dá)到原本要求之函數(shù)加權(quán)計(jì)算。

          圖5.6 計(jì)算處理器




          關(guān)鍵詞: 低通濾波器VLS架

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();