本發(fā)明涉及數(shù)字視頻領(lǐng)域,尤指一種數(shù)字視頻切換方法及裝置。
背景技術(shù):
隨著多媒體技術(shù)的發(fā)展,人們對能通過顯示屏看到的畫面內(nèi)容有了越來越多的需求。顯然通過某一個視頻信號源來顯示人們的所需求的內(nèi)容有很大的局限性,這就催生了視頻矩陣的的產(chǎn)生與發(fā)展。一般情況下,都是通過將不同類型輸入視頻信號轉(zhuǎn)換成HDMI、VGA或LVDS信號,然后再通過相應(yīng)的矩陣芯片進(jìn)行切換,最后再將信號轉(zhuǎn)換成想要的格式。
在視頻輸入接口將不同類型的信號轉(zhuǎn)換成HDMI、VGA或LVDS信號時(shí),一般都會先通過特定的芯片將視頻輸入轉(zhuǎn)換成并行的RGB、YPbPr或者BT1120信號,再通過HDMI編碼芯片、DAC等芯片將信號轉(zhuǎn)換成統(tǒng)一的HDMI、VGA或LVDS信號。輸出時(shí)將對應(yīng)信號轉(zhuǎn)換成RGB、YPbPr或者BT1120信號,再將信號轉(zhuǎn)換成所需要的信號格式。這樣一次信號傳輸一般都會進(jìn)行4次格式轉(zhuǎn)換。不光硬件成本偏高,而且在這些轉(zhuǎn)換中或多或少都會對視頻質(zhì)量產(chǎn)生不可逆的影響,一般轉(zhuǎn)換級數(shù)越多圖像受影響就越大。雖然HDMI信號和LVDS信號抗干擾性好,但目前可供選擇的HDMI信號和LVDS信號矩陣芯片價(jià)格都比較高昂。VGA信號雖然大多可以通過廉價(jià)的模擬矩陣切換,但是VGA信號本身抗干擾能力就很差。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明目的在于解決在數(shù)字視頻矩陣切換系統(tǒng)中,對用戶通過對FPGA發(fā)送串行協(xié)議實(shí)時(shí)的進(jìn)行視頻輸出的畫面進(jìn)行靈活的控制與切換,以便能根據(jù)用實(shí)際使用場景,輸出用戶想要的視頻輸入畫面。
為達(dá)上述目的,本發(fā)明具體提供一種數(shù)字視頻切換方法,所述方法包含:根據(jù)外部輸入的時(shí)鐘信號的采集輸入數(shù)據(jù),將所述輸入數(shù)據(jù)輸入至預(yù)定級緩存中存儲;通過預(yù)置頻率的鎖相環(huán)時(shí)鐘于所述預(yù)定級緩存中讀取存儲的輸入數(shù)據(jù),并根據(jù)指令對所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù);通過預(yù)置頻率的鎖相環(huán)時(shí)鐘將所述輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘;通過切換過的輸入時(shí)鐘將預(yù)定級緩存中存儲的所述輸出數(shù)據(jù)提取后輸出。
在上述數(shù)字視頻切換方法中,優(yōu)選的,所述預(yù)定級緩存包含三到十級緩存。
在上述數(shù)字視頻切換方法中,優(yōu)選的,所述預(yù)置頻率的取值范圍為148.5MHZ到250MHZ。
在上述數(shù)字視頻切換方法中,優(yōu)選的,所述預(yù)置頻率為200MHZ。
在上述數(shù)字視頻切換方法中,優(yōu)選的,所述根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘包含:根據(jù)指令將所述輸入信號中的時(shí)鐘信號通過FPGA的四選一IP核進(jìn)行時(shí)鐘信號切換,獲得切換過的輸入時(shí)鐘。
本發(fā)明還提供一種數(shù)字視頻切換裝置,所述裝置包含輸入緩存模塊、輸出緩存模塊、時(shí)鐘切換模塊、數(shù)據(jù)切換模塊和命令接收模塊;所述輸入緩存模塊用于根據(jù)外部輸入時(shí)鐘信號的采集輸入數(shù)據(jù),將所述輸入數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述命令接收模塊用于接收用戶發(fā)出的指令;所述數(shù)據(jù)切換模塊用于通過預(yù)置頻率的鎖相環(huán)時(shí)鐘于所述預(yù)定級緩存中讀取存儲的輸入數(shù)據(jù),并根據(jù)所述命令接收模塊接收到的指令對所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù);以及,通過預(yù)置頻率的鎖相環(huán)時(shí)鐘將所述輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述時(shí)鐘切換模塊用于根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘;所述輸出緩存模塊用于通過切換過的輸入時(shí)鐘將預(yù)定級緩存中存儲的所述輸出數(shù)據(jù)提取后輸出。
在上述數(shù)字視頻切換裝置中,優(yōu)選的,所述輸入緩存模塊和所述輸出緩存模塊分別包含復(fù)數(shù)個寄存器,所述寄存器用于緩存所述輸入數(shù)據(jù)或所述輸出數(shù)據(jù)。
在上述數(shù)字視頻切換裝置中,優(yōu)選的,所述寄存器數(shù)量為三個到十個。
在上述數(shù)字視頻切換裝置中,優(yōu)選的,所述時(shí)鐘切換模塊包含輸入時(shí)鐘端口、輸出時(shí)鐘端口和切換組模塊;所述切換組模塊包含十四個矩陣切換列表寄存器和十四個四選一IP核單元,所述矩陣切換列表寄存器與所述四選一IP核單元一對一設(shè)置;所述輸入時(shí)鐘端口包含十六路數(shù)據(jù)接口,所述十六路數(shù)據(jù)接口包含十四路輸入時(shí)鐘接口和兩路零數(shù)據(jù)接口;所述四選一IP核單元包含五個4:1MUX內(nèi)核,所述五個4:1MUX內(nèi)核中,一個4:1MUX內(nèi)核作為輸出內(nèi)核與所述輸出時(shí)鐘端口相連,余下四個4:1MUX內(nèi)核中每一個4:1MUX內(nèi)核與所述十六路數(shù)據(jù)接口中四路數(shù)據(jù)接口相連;所述矩陣切換列表寄存器分別與所述四選一IP核單元中五個4:1MUX內(nèi)核相連。
在上述數(shù)字視頻切換裝置中,優(yōu)選的,所述數(shù)據(jù)切換模塊包含切換單元、鎖相環(huán)時(shí)鐘單元和至少兩個雙口RAM存儲單元;所述鎖相環(huán)時(shí)鐘單元用于提供預(yù)定頻率的時(shí)鐘信號,并通過所述時(shí)鐘信號于所述預(yù)定級緩存中采集所述輸入數(shù)據(jù)至一個雙口RAM存儲單元存儲;以及通過所述時(shí)鐘信號將存儲至另一個雙口RAM存儲單元的輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述切換單元用于根據(jù)所述命令接收模塊接收到的指令對雙口RAM存儲單元存儲的所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù)后存儲至另一個雙口RAM存儲單元。
通過本發(fā)明所提供的數(shù)字視頻切換方法及裝置,能夠通過最多2次視頻轉(zhuǎn)換和更低的成本實(shí)現(xiàn)了對視頻源進(jìn)行靈活的控制與切換。
附圖說明
此處所說明的附圖用來提供對本發(fā)明的進(jìn)一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對本發(fā)明的限定。在附圖中:
圖1為本發(fā)明所提供的數(shù)字視頻切換方法的流程示意圖;
圖2為本發(fā)明所提供的數(shù)字視頻切換裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明所提供的數(shù)字視頻切換裝置中輸入緩存模塊的結(jié)構(gòu)示意圖;
圖4為本發(fā)明所提供的數(shù)字視頻切換裝置中輸出緩存模塊的結(jié)構(gòu)示意圖;
圖5為本發(fā)明所提供的數(shù)字視頻切換裝置中時(shí)鐘切換模塊的結(jié)構(gòu)示意圖;
圖6為本發(fā)明所提供的數(shù)字視頻切換裝置中數(shù)據(jù)切換模塊的連接示意圖;
圖7為本發(fā)明所提供的數(shù)字視頻切換裝置中數(shù)據(jù)切換模塊的流程示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施例和附圖,對本發(fā)明做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
請參考圖1所示,本發(fā)明具體提供一種數(shù)字視頻切換方法,所述方法包含:S101根據(jù)外部輸入的時(shí)鐘信號的采集輸入數(shù)據(jù),將所述輸入數(shù)據(jù)輸入至預(yù)定級緩存中存儲;S102通過預(yù)置頻率的鎖相環(huán)時(shí)鐘于所述預(yù)定級緩存中讀取存儲的輸入數(shù)據(jù),并根據(jù)指令對所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù);通過預(yù)置頻率的鎖相環(huán)時(shí)鐘將所述輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;S103根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘;S104通過切換過的輸入時(shí)鐘將預(yù)定級緩存中存儲的所述輸出數(shù)據(jù)提取后輸出。
在上述實(shí)施例中,所述預(yù)定級緩存包含三到十級緩存;所述預(yù)置頻率的取值范圍為148.5MHZ到250MHZ,優(yōu)選的所述預(yù)置頻率可采用200MHZ;實(shí)際工作中具體采用幾級緩存可根據(jù)實(shí)際情況設(shè)置,本發(fā)明在此并不做限制;在實(shí)際采用上述方法對視頻信號進(jìn)行靈活切換的過程中,具體可通過FPGA來實(shí)現(xiàn)的,通過串行輸入指令進(jìn)行不同視頻需求的切換方法;簡單來說通過利用FPGA的雙向RAM功能進(jìn)行BT1120視頻數(shù)據(jù)緩存和提供統(tǒng)一時(shí)鐘進(jìn)行視頻的傳輸后,再通過雙向RAM進(jìn)行提取與輸出;該過程中,矩陣切換的FPGA可分軟、硬件兩部分,其中軟件部分主要由一個頂層模塊matrix以及PLL,F(xiàn)IFO_DC,命令接收,復(fù)位等模塊組成;頂層模塊的主要功能為:描述輸入輸出接口,調(diào)用IP核,根據(jù)命令對數(shù)據(jù)進(jìn)行緩存與交換;硬件部分主要由1片Lattice公司ECP2系列LFE2-50E-7F672C FPGA主芯片,電源芯片,以及若干配置芯片等器件組成。實(shí)際使用時(shí),首先由頂層模塊matrix輸入BT1120信號,經(jīng)過幾級緩存進(jìn)入輸入FIFO;使用一個鎖相環(huán)200MHZ的時(shí)鐘由FIFO讀出數(shù)據(jù),然后根據(jù)命令進(jìn)行同步的數(shù)據(jù)切換;使用同一個200MHZ的時(shí)鐘把切換過的數(shù)據(jù)送入輸出FIFO;最后使用切換過的輸入時(shí)鐘由輸出FIFO把數(shù)據(jù)輸出FPGA。
為提高時(shí)鐘信號切換過程中的傳輸帶寬,在本發(fā)明一優(yōu)選的實(shí)施例中,所述根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘包含:根據(jù)指令將所述輸入信號中的時(shí)鐘信號通過FPGA的四選一IP核進(jìn)行時(shí)鐘信號切換,獲得切換過的輸入時(shí)鐘;在該實(shí)施例中,避免了常規(guī)技術(shù)中直接用assign語句配合case語句切換時(shí)鐘信號的方式,避免降低時(shí)鐘信號的傳輸帶寬,導(dǎo)致后續(xù)輸出緩存模塊對數(shù)據(jù)的傳輸,進(jìn)而導(dǎo)致圖像無法正常顯示的問題。
請參考圖2所示,本發(fā)明還提供一種數(shù)字視頻切換裝置,所述裝置包含輸入緩存模塊、輸出緩存模塊、時(shí)鐘切換模塊、數(shù)據(jù)切換模塊和命令接收模塊;所述輸入緩存模塊用于根據(jù)外部輸入時(shí)鐘信號的采集輸入數(shù)據(jù),將所述輸入數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述命令接收模塊用于接收用戶發(fā)出的指令;所述數(shù)據(jù)切換模塊用于通過預(yù)置頻率的鎖相環(huán)時(shí)鐘于所述預(yù)定級緩存中讀取存儲的輸入數(shù)據(jù),并根據(jù)所述命令接收模塊接收到的指令對所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù);以及,通過預(yù)置頻率的鎖相環(huán)時(shí)鐘將所述輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述時(shí)鐘切換模塊用于根據(jù)指令對所述時(shí)鐘信號進(jìn)行切換,獲得切換后的輸入時(shí)鐘;所述輸出緩存模塊用于通過切換過的輸入時(shí)鐘將預(yù)定級緩存中存儲的所述輸出數(shù)據(jù)提取后輸出。
請參考圖3和圖4所示,在上述實(shí)施例中,所述輸入緩存模塊和所述輸出緩存模塊分別包含復(fù)數(shù)個寄存器,所述寄存器用于緩存所述輸入數(shù)據(jù)或所述輸出數(shù)據(jù);所述寄存器數(shù)量為三個到十個;在請參考圖3所示,在實(shí)際工作中,其中輸入緩存模塊主要是通過外部輸入的14路時(shí)鐘信號將外部輸入的14路BT1120數(shù)據(jù)采集接收進(jìn)入FPGA;如果將數(shù)據(jù)直接接入數(shù)據(jù)切換模塊的話,由于在FPGA項(xiàng)目綜合布局布線過程中每一路數(shù)據(jù)的第一根信號線經(jīng)過的內(nèi)部電路的長短不一,以致于會導(dǎo)致數(shù)據(jù)傳輸時(shí)間長短不一致產(chǎn)生不在同一個時(shí)鐘域存取數(shù)據(jù)的問題,進(jìn)而導(dǎo)致后續(xù)模塊的數(shù)據(jù)采集錯位;針對該現(xiàn)象,本發(fā)明通過將每一路輸入的數(shù)據(jù)由寄存器緩存予以克服,另外,每路緩存的緩存級數(shù)的取值范圍一般在3-10級。請參考圖4所示,輸出緩存模塊的功能是通過時(shí)鐘切換模塊的輸出時(shí)鐘將數(shù)據(jù)切換模塊切換后的數(shù)據(jù)通過寄存器緩存,最后通過FPGA的輸出管腳輸出到后續(xù)的芯片上去;其作用與前述輸入緩存模塊的寄存器緩存一致;同樣,緩存的取級數(shù)也應(yīng)該控制在3-10級。
時(shí)鐘切換模塊的功能就是將輸入的14路的時(shí)鐘按照用戶的要求任意切換到對應(yīng)的輸出時(shí)鐘端口上去,如果直接用assign語句配合case語句實(shí)現(xiàn)的話會降低時(shí)鐘信號的傳輸帶寬,導(dǎo)致后續(xù)輸出緩存模塊對數(shù)據(jù)的傳輸,進(jìn)而導(dǎo)致圖像無法正常顯示;為此,在本發(fā)明一優(yōu)選的實(shí)施例中所述時(shí)鐘切換模塊還包含輸入時(shí)鐘端口、輸出時(shí)鐘端口和切換組模塊;請參考圖5所示,所述切換組模塊包含十四個矩陣切換列表寄存器和十四個四選一IP核單元,所述四選一IP核單元包含至少五個四選一IP核,以下以4:1MUX內(nèi)核指代所述四選一IP核;所述矩陣切換列表寄存器與所述四選一IP核單元一對一設(shè)置;所述輸入時(shí)鐘端口包含十六路數(shù)據(jù)接口,所述十六路數(shù)據(jù)接口包含十四路輸入時(shí)鐘接口和兩路零數(shù)據(jù)接口;所述五個4:1MUX內(nèi)核中,一個4:1MUX內(nèi)核作為輸出內(nèi)核與所述輸出時(shí)鐘端口相連,余下四個4:1MUX內(nèi)核中每一個4:1MUX內(nèi)核與所述十六路數(shù)據(jù)接口中四路數(shù)據(jù)接口相連;所述矩陣切換列表寄存器分別與所述四選一IP核單元中五個4:1MUX內(nèi)核相連。在上述實(shí)施例中,因?yàn)閱蝹€4:1MUX無法滿足14X14的矩陣規(guī)模,為此本發(fā)明的單個輸出采用2級4:1MUX來實(shí)現(xiàn),具體如圖所示,具體實(shí)施中,先將每4路輸入時(shí)鐘信號通過一個4:1MUX輸出一個信號,再將該信號輸入余下的一個4:1MUX中,以此則有4X4總共16個輸入端,多余的2輸入端則用數(shù)據(jù)0來實(shí)現(xiàn),然后再將4個4:1MUX的輸出再通過一個4:1MUX輸出;于是,要實(shí)現(xiàn)14X14的矩陣總共需要(4+1)X14=70個4:1MUX;最后根據(jù)串行命令接收與執(zhí)行部分的矩陣輸出列表配置每個4:1MUX以實(shí)現(xiàn)時(shí)鐘切換。
在本發(fā)明一優(yōu)選的實(shí)施例中,所述數(shù)據(jù)切換模塊包含切換單元、鎖相環(huán)時(shí)鐘單元和至少兩個雙口RAM存儲單元;所述鎖相環(huán)時(shí)鐘單元用于提供預(yù)定頻率的時(shí)鐘信號,并通過所述時(shí)鐘信號于所述預(yù)定級緩存中采集所述輸入數(shù)據(jù)至一個雙口RAM存儲單元存儲;以及通過所述時(shí)鐘信號將存儲至另一個雙口RAM存儲單元的輸出數(shù)據(jù)輸入至預(yù)定級緩存中存儲;所述切換單元用于根據(jù)所述命令接收模塊接收到的指令對雙口RAM存儲單元存儲的所述輸入數(shù)據(jù)進(jìn)行同步的數(shù)據(jù)切換,獲得輸出數(shù)據(jù)后存儲至另一個雙口RAM存儲單元。實(shí)際工作中,該數(shù)據(jù)切換模塊將輸入緩存模塊輸出的數(shù)據(jù)用根據(jù)輸入的時(shí)鐘用雙口RAM存儲,用頻率為200M的時(shí)鐘取數(shù)據(jù),然后在數(shù)據(jù)切換模塊的后半部分用頻率為200M的時(shí)鐘寫入另一個雙口RAM;最后再用時(shí)鐘切換模塊的輸出時(shí)鐘取出后一個雙口RAM的數(shù)據(jù);為避免輸入數(shù)據(jù)量與200M頻率不匹配的問題,本發(fā)明通過有雙口RAM數(shù)據(jù)時(shí)來取數(shù)據(jù)的方法,其中FPGA內(nèi)部的雙口RAM有個標(biāo)志位EMPTY標(biāo)識的是雙口RAM是否為空,如果該標(biāo)志被置1說明此雙口RAM數(shù)據(jù)為空,反之則有數(shù)據(jù);本發(fā)明利用了雙口RAM的這個特點(diǎn),通過這個對此標(biāo)志位取反來控制200M時(shí)鐘取數(shù)據(jù)的使能的;在后一個雙口RAM寫入的時(shí)候,為避免一直以200M時(shí)鐘寫入數(shù)據(jù)造成最后輸出的時(shí)候取數(shù)據(jù)取不過來,數(shù)據(jù)擁塞的問題,本發(fā)明通過前述的前一個雙口RAM的空標(biāo)志,用類似于時(shí)鐘切換模塊的方法切換給后一個雙口RAM的使能來解決此問題;最后再根據(jù)命令接收與執(zhí)行部分矩陣輸出列表通過assign語句配合case實(shí)現(xiàn)數(shù)據(jù)的切換;這樣數(shù)據(jù)的切換全是基于同一個200M的時(shí)鐘的,也就不會有時(shí)鐘域的問題存在了。
在上述實(shí)施例中,根據(jù)命令接收與執(zhí)行部分矩陣輸出列表通過assign語句配合case實(shí)現(xiàn)數(shù)據(jù)的切換具體請參考圖6和圖7所示,前面的時(shí)鐘切換模塊和數(shù)據(jù)切換模塊都提到了串行命令接收與執(zhí)行部分,該部分目的在于提供移位寄存器來實(shí)現(xiàn)數(shù)據(jù)命令的接收功能,當(dāng)CMD_CLK上每出現(xiàn)一個上升沿時(shí),移位寄存器對CMD_DATA進(jìn)行一次采樣,并將數(shù)據(jù)進(jìn)行一次從低位到高位的移位。每當(dāng)CMD_LATCH線路上出現(xiàn)一次上升沿時(shí),對移位寄存器的最新10位數(shù)據(jù)進(jìn)行鎖存;然再由解析部分進(jìn)行解析;當(dāng)命令正確時(shí)便執(zhí)行相應(yīng)的功能,同時(shí)為了保證命令數(shù)據(jù)的準(zhǔn)確與安全,命令中需要增加校驗(yàn)項(xiàng),例如采用的是XOR檢驗(yàn)方式;具體命令定義實(shí)例如下表1所示。
表1
本發(fā)明所提供的數(shù)字視頻切換方法及裝置基于FPGA平臺,利用其雙口RAM和PLL提供時(shí)鐘進(jìn)行配合實(shí)現(xiàn)BT1120視頻數(shù)據(jù)切換的方法。該方法即能可靠地減少因視頻轉(zhuǎn)換次數(shù)過多而產(chǎn)生的不可逆的干擾,又能很大程度地降低目前市場上視頻矩陣的生產(chǎn)成本。
以上所述的具體實(shí)施例,對本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。