基于FPGA的LCD大屏幕拼接系統(tǒng)的設(shè)計(jì)
3、算法的FPGA實(shí)現(xiàn)
本文引用地址:http://www.ex-cimer.com/article/266848.htm3.1視頻分割算法的實(shí)現(xiàn)
算法對(duì)數(shù)字視頻的處理采用并行處理方式, 首先要對(duì)輸入視頻像素流進(jìn)行分割處理, 得到四路具有完整視頻格式的子視頻, 并且輸出的四路子視頻具有相同的掃描規(guī)律, 即行同步和場(chǎng)同步;四路子視頻中, 當(dāng)有一個(gè)視頻進(jìn)行場(chǎng)變換或行變換時(shí), 其它三路視頻也要同時(shí)完成對(duì)各自視頻的場(chǎng)變換或行變換;當(dāng)顯示屏在對(duì)屏上的第一行像素點(diǎn)進(jìn)行掃描時(shí),其余各顯示屏也都在對(duì)各自屏上的第一行像素點(diǎn)進(jìn)行掃描。盡管掃描規(guī)律一致, 但每個(gè)子屏幕所顯示的視頻圖像內(nèi)容卻是不同的。
(1)片外SRAM分時(shí)切換: 所設(shè)計(jì)視頻分割算法通過在外部SRAM 中對(duì)輸入視頻像素?cái)?shù)據(jù)幀進(jìn)行緩存,因?yàn)橐M(jìn)行不同順序的讀、寫操作。為了保證對(duì)數(shù)據(jù)進(jìn)行讀寫處理的連續(xù)性, 即對(duì)RAM的寫入和讀出不發(fā)生時(shí)間上中斷, 因此須使用兩組SRAM進(jìn)行讀、 寫分時(shí)切換操作, 如圖2 所示。
圖2 SRAM讀寫切換示意圖
在處理算法中使用了A、 B兩組像素?cái)?shù)據(jù)存儲(chǔ)區(qū), 用以記錄單幀的視頻像素?cái)?shù)據(jù)。FPGA 的分時(shí)切換邏輯是依據(jù)輸入視頻流的場(chǎng)同步控制信號(hào)VSync發(fā)生由高電平到低電平的轉(zhuǎn)換, 以此作為新數(shù)據(jù)幀到來的標(biāo)識(shí)。場(chǎng)同步控制寄存器Last-VSync 存儲(chǔ)的是像素流中前一個(gè)像素點(diǎn)的場(chǎng)同步控制信息,如果 LastVSync 為高電平“1”且當(dāng)前像素點(diǎn)的場(chǎng)同步信號(hào)VSync 為低電平 “0” , 則表示新的像素幀開始。那么幀存儲(chǔ)器選擇寄存器ReadBank則取反, 從而提示數(shù)據(jù)寫入和讀出控制邏輯進(jìn)行讀/寫幀緩存的切換;相反,如果場(chǎng)同步控制寄存器LastVSync 與當(dāng)前像素點(diǎn)的 VSync 值同時(shí)為有效“1” ,即表示沒有新的像素幀的到來, 幀存儲(chǔ)器選擇寄存器不發(fā)生變化。 這樣將輸入數(shù)據(jù)輪流分配到這兩組幀緩沖存儲(chǔ)器。即可實(shí)現(xiàn)對(duì)輸入視頻像素流的無縫緩沖與處理。
(2)子視頻同步控制獲?。?輸入視頻圖像在一幀內(nèi)的行同步控制信號(hào)(HSync)和場(chǎng)同步控制信號(hào)(VSync)與輸出的四路子視頻的行同步控制信號(hào)及場(chǎng)同步控制信號(hào)并不一致,因此需要在算法中加入一個(gè)參考視頻像素流,用于提供子視頻行場(chǎng)同步控制信息; 該參考視頻流不包含像素點(diǎn)的R、 G、 B數(shù)據(jù)信息, 但滿足輸出子視頻流所需要的行、 場(chǎng)同步控制信號(hào)的時(shí)序特征。在形成的單幀視頻圖像中其水平方向和垂直方向像素點(diǎn)個(gè)數(shù)為輸入視頻像素點(diǎn)個(gè)數(shù)的一半,視頻刷新頻率與輸入視頻保持一致。
視頻流的控制邏輯如圖 3 所示, 過程如下:第1 級(jí),將參考視頻流復(fù)制成4個(gè)子視頻流(Split4), 第2級(jí)是對(duì)每一個(gè)視頻像素流地像素坐標(biāo)增加偏移量(dx, dy), 使其對(duì)應(yīng)不同的子視頻像素點(diǎn)的顯示位置,例如,對(duì)第2 個(gè)子視頻, 由于它要讀取輸入視頻的右上方位置的視頻圖像數(shù)據(jù),設(shè)置其橫向偏移量為Width/2 和縱向偏移量為0,其它的子視頻與之類似。復(fù)制出的四路參考視頻要轉(zhuǎn)換成串行像素流,輸入到幀緩存讀取像素?cái)?shù)據(jù),第3級(jí)操作就需要改變它們的像素周期,使子視頻在每4 個(gè)像素周期內(nèi)輸出一個(gè)有效的像素?cái)?shù)據(jù), Cycles為預(yù)設(shè)置的控制像素周期(Cycles設(shè)置為 4), 使有效像素?cái)?shù)據(jù)的時(shí)鐘頻率與子視頻像素頻率相同。最后,對(duì)四路參考視頻像素流作不同的延時(shí)處理, 再經(jīng)過像素流融合(MUX4)為串行的視頻像素流。這樣把并行像素流轉(zhuǎn)為串行像素流,串行像素流讀取一幀像素的時(shí)間與輸入視頻像素流寫入一幀像素的時(shí)間是相等的。像素流融合操作對(duì)輸入的四路視頻, 通過設(shè)置控制參數(shù)(control), 在不同時(shí)鐘下選取帶有偏移量的視頻像素點(diǎn)。
圖 3 視頻流的控制邏輯圖
3.2視頻插值放大算法的FPGA實(shí)現(xiàn)
視頻插值放大模塊包含了坐標(biāo)計(jì)算單元、加權(quán)系數(shù)產(chǎn)生器、垂直插值單元、虛擬像素緩存器與水平插值單元,如圖4所示:
圖3 插值放大模塊的框圖
LCD顯示屏相關(guān)文章:lcd顯示屏原理
lcd相關(guān)文章:lcd原理
評(píng)論