本發(fā)明涉及一種自動同步的裝置及其操作方法,特別是涉及一種跨時鐘域視頻自動同步的裝置及其操作方法。
背景技術(shù):
在數(shù)字視頻的傳輸與處理領(lǐng)域,通常系統(tǒng)輸入的視頻數(shù)據(jù)信號與處理/輸出的視頻信號不在同一個時鐘域。通常采用在一個時鐘域(源時鐘域)將輸入的視頻數(shù)據(jù)存入到外部ddr存儲器中的幀buffer中,然后再另一個時鐘域(目的時鐘域)將外部ddr存儲器中幀buffer中的數(shù)據(jù)取出的方式來完成跨時鐘域的同步。這種方法的缺點是需要外部有比較大的存儲器。如果外部沒有較大的帶寬比較高的存儲器,就無法實現(xiàn)視頻信號的跨時鐘域的傳輸。這就限制了系統(tǒng)的靈活性,提高了視頻系統(tǒng)的成本。
還有一種方式不需要外部的存儲器,采用片內(nèi)的行buffer來同步。這種方法需要比較大的片上存儲器,并且由于異步時鐘的偏差的積累會造成buffer的溢出,這就需要復(fù)雜的溢出處理邏輯,否則會造成視頻數(shù)據(jù)出錯。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種跨時鐘域視頻自動同步的裝置及其操作方法,其能夠解決視頻數(shù)據(jù)異步時鐘域時需要外部存儲器作為幀buffer的問題。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:一種跨時鐘域視頻自動同步的裝置,其包括視頻信息測量裝置、目的時鐘域裝置、兩級寄存器、片上存儲器、視頻信息裝置、新的視頻調(diào)節(jié)裝置、新的同步信號產(chǎn)生裝置,視頻信息測量裝置測量出源時鐘域下的視頻信號的信息,目的時鐘域裝置將測得的源時鐘域下的視頻信息可靠地傳遞到目的時鐘域中的新的視頻調(diào)節(jié)裝置,兩級寄存器將視頻同步信號傳遞到目的時鐘域中的視頻信息裝置,片上存儲器將源時鐘域下的有效視頻信息存儲起來,并供目的時鐘域下讀取,同時會根據(jù)寫入與讀取操作產(chǎn)生空溢出標志與滿溢出標志送給新的視頻調(diào)節(jié)裝置,視頻信息裝置測量出送過來的視頻同步信號,從而得到視頻信息,并送給新的視頻調(diào)節(jié)裝置,新的視頻調(diào)節(jié)裝置根據(jù)源時鐘域下視頻信息測量裝置測的的視頻信息、目的時鐘域下視頻信息裝置測的源視頻同步信號的視頻信息,以及片上存儲器的空或滿標志,動態(tài)的調(diào)節(jié)產(chǎn)生新的視頻參數(shù),送到新的同步信號產(chǎn)生裝置,產(chǎn)生新的視頻同步信號,新的同步信號產(chǎn)生裝置根據(jù)新的視頻調(diào)節(jié)裝置送來的視頻參數(shù),產(chǎn)生新的視頻同步信號。
本發(fā)明還提供一種跨時鐘域視頻自動同步的裝置的操作方法,其包括以下步驟:步驟一,先使源時鐘域與目的時鐘域中的一行視頻信息的時間盡可能的相等,調(diào)整hblank的大小;然后根據(jù)源時鐘與目的時鐘的最大偏差確定△t的最大值;再根據(jù)該值確定系統(tǒng)需要的片上存儲器的大??;步驟二,在確定的片上存儲器的大小的基礎(chǔ)上,通過自動調(diào)節(jié)目的時鐘域中視頻一行時間的長短,來保證一幀時間內(nèi)的vtotal*△t/period_clk_dst不會大于選定的片上存儲器的大小而造成溢出;步驟三,測量出源時鐘域下視頻的信息;步驟四,將視頻流的有效數(shù)據(jù)存入片上存儲器;步驟五,將源時鐘域下的視頻信息同步到目的時鐘域下,同時將視頻同步信號同步到目的時鐘域下;步驟六,在目的時鐘域下測量出由源時鐘域傳遞過來的視頻同步信號所對應(yīng)的視頻信息;步驟七,使用源時鐘下測量的hactive/vactive/vfront_porch/vpluse/vback_porch/vfront_portch,以及目的時鐘域下的hback_porch/hfront_porch/hpulse作為目的時鐘域下需要的視頻信息;步驟八,在目的時鐘域下使用新的視頻信息重新產(chǎn)生新的視頻同步信號;步驟九,根據(jù)新的視頻同步信號的從片上存儲器讀取有效視頻數(shù)據(jù);步驟十,如果在一幀的時間內(nèi)de有效期間片上存儲器發(fā)生空溢出,則增加hback_porch或者hfront_porch或者hpulse;如果片上存儲器發(fā)生滿溢出,則減少hback_porch或者hfront_porch或者hpulse;復(fù)位片上存儲器,然后跳轉(zhuǎn)到步驟六;如果沒有發(fā)生片上存儲器空滿溢出,則標明已經(jīng)鎖定,系統(tǒng)正常工作。
本發(fā)明的積極進步效果在于:本發(fā)明視頻數(shù)據(jù)跨異步時鐘域傳輸不需要片外存儲器,并且不需要手動配置目的時鐘域中的timing信息。
附圖說明
圖1為本發(fā)明的示意圖。
具體實施方式
下面結(jié)合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術(shù)方案。
如圖1所示,本發(fā)明跨時鐘域視頻自動同步的裝置包括視頻信息測量裝置1、目的時鐘域裝置2、兩級寄存器3、片上存儲器4、視頻信息裝置5、新的視頻調(diào)節(jié)裝置6、新的同步信號產(chǎn)生裝置7,視頻信息測量裝置1測量出源時鐘域下的視頻信號的信息,目的時鐘域裝置2將測得的源時鐘域下的視頻信息可靠地傳遞到目的時鐘域中的新的視頻調(diào)節(jié)裝置6,兩級寄存器3將視頻同步信號傳遞到目的時鐘域中的視頻信息裝置5,片上存儲器4將源時鐘域下的有效視頻信息存儲起來,并供目的時鐘域下讀取,同時會根據(jù)寫入與讀取操作產(chǎn)生空溢出標志與滿溢出標志送給新的視頻調(diào)節(jié)裝置6,視頻信息裝置5測量出送過來的視頻同步信號,從而得到視頻信息,并送給新的視頻調(diào)節(jié)裝置6,新的視頻調(diào)節(jié)裝置6根據(jù)源時鐘域下視頻信息測量裝置1測的的視頻信息、目的時鐘域下視頻信息裝置5測的源視頻同步信號的視頻信息,以及片上存儲器4的空或滿標志,動態(tài)的調(diào)節(jié)產(chǎn)生新的視頻參數(shù),送到新的同步信號產(chǎn)生裝置7,產(chǎn)生新的視頻同步信號,新的同步信號產(chǎn)生裝置7根據(jù)新的視頻調(diào)節(jié)裝置6送來的視頻參數(shù),產(chǎn)生新的視頻同步信號。
本發(fā)明跨時鐘域視頻自動同步的裝置的操作方法,其包括以下步驟:
步驟一,先使源時鐘域與目的時鐘域中的一行視頻信息的時間盡可能的相等,調(diào)整hblank(行消隱區(qū))的大??;然后根據(jù)源時鐘與目的時鐘的最大偏差確定△t的最大值;再根據(jù)該值確定系統(tǒng)需要的片上存儲器的大?。?/p>
步驟二,在確定的片上存儲器的大小的基礎(chǔ)上,通過自動調(diào)節(jié)目的時鐘域中視頻一行時間的長短,來保證一幀時間內(nèi)的vtotal*△t/period_clk_dst(幀消隱區(qū)除以時鐘周期)不會大于選定的片上存儲器的大小而造成溢出;
步驟三,測量出源時鐘域下視頻的信息;
步驟四,將視頻流的有效數(shù)據(jù)存入片上存儲器;
步驟五,將源時鐘域下的視頻信息同步到目的時鐘域下,同時將視頻同步信號同步到目的時鐘域下;
步驟六,在目的時鐘域下測量出由源時鐘域傳遞過來的視頻同步信號所對應(yīng)的視頻信息;
步驟七,使用源時鐘下測量的hactive/vactive/vfront_porch/vpluse/vback_porch/vfront_portch(行有效數(shù)/幀有效行數(shù)/幀前肩/幀同步/幀后肩/),以及目的時鐘域下的hback_porch/hfront_porch/hpulse(行后肩/行前肩/行同步)作為目的時鐘域下需要的視頻信息;
步驟八,在目的時鐘域下使用新的視頻信息重新產(chǎn)生新的視頻同步信號;
步驟九,根據(jù)新的視頻同步信號的從片上存儲器讀取有效視頻數(shù)據(jù);
步驟十,如果在一幀的時間內(nèi)de有效期間片上存儲器發(fā)生空溢出,則增加hback_porch(行后肩時間)或者hfront_porch(行前肩時間)或者hpulse。如果片上存儲器發(fā)生滿溢出,則減少hback_porch或者hfront_porch或者hpulse。復(fù)位片上存儲器,然后跳轉(zhuǎn)到步驟六。如果沒有發(fā)生片上存儲器空滿溢出,則標明已經(jīng)鎖定,系統(tǒng)正常工作。
跨時鐘域視頻自動同步的裝置需要存儲最大vtotal*△t/period_clk_dst(幀總行數(shù)除以時鐘周期)個像素的片上存儲器,更為簡單。
為了保證目的時鐘域(相對于輸入時鐘域,也就是源時鐘域而言)視頻的timng(時序)信息(如front_porch/back_porch/pulsewidth等)不在傳輸?shù)钠陂g發(fā)生變化(即工作期間htotal/vtotal/hactiv/vactive保持穩(wěn)定,有些視頻系統(tǒng)需要此要求),源時鐘域中一行視頻持續(xù)的時間應(yīng)該與目的時鐘域一行視頻持續(xù)的時間盡可能的相等(當(dāng)兩個時鐘域同步時,二者相等)。這樣一幀視頻的時間內(nèi),積累的時間誤差會較小,所需要的視頻數(shù)據(jù)緩存也就最小。由于異步時鐘的特性,源時鐘域目的時鐘的頻率無法做到完全相同,所以源時鐘域內(nèi)一行視頻的時間t_line_src一般不等于目的時鐘域內(nèi)一行視頻的時間t_line_dst,二者會有一個偏差△t(大于0或者小于0).在一幀的時間內(nèi),二者的誤差積累為vtotal*△t,換算成目的時鐘的周期數(shù)n=vtotal*△t/period_clk_dst。
本發(fā)明的一種實施例如下所示:此實施例為當(dāng)hfront_porch較小,而hpulse/hback_porch較大時的一種情況。
所有指向stb(復(fù)位)狀態(tài)的箭頭的條件都是~full&~emtpy(滿,空)。
開始工作時,從idle態(tài)跳轉(zhuǎn)到init態(tài)。得到新的源時鐘域視頻timing信息與目的時鐘域下測的的源視頻timing信息后,在每幀的開始時,根據(jù)上一幀中存儲模塊產(chǎn)生的空滿溢出標志full/empty確定要跳轉(zhuǎn)的狀態(tài)。當(dāng)存儲器模塊為不空也不滿,沒有溢出時(~full&~empty),狀態(tài)跳轉(zhuǎn)到stb,標明裝置已經(jīng)調(diào)整完畢,進入穩(wěn)定狀態(tài);當(dāng)存儲器模塊發(fā)生空溢出時,跳轉(zhuǎn)到inc_back,增加hback_porch的值;當(dāng)存儲器發(fā)生滿溢出時,跳轉(zhuǎn)到dec_back狀態(tài),減少hback_porch的值;
在inc_back狀態(tài)下,每幀開始時,根據(jù)上一幀中存儲模塊產(chǎn)生的空滿溢出標志full/empty確定要跳轉(zhuǎn)的狀態(tài)。當(dāng)存儲器模塊為不空也不滿,沒有溢出時(~full&~empty),狀態(tài)跳轉(zhuǎn)到stb,標明裝置已經(jīng)調(diào)整完畢,進入穩(wěn)定狀態(tài);當(dāng)存儲器發(fā)生空溢出時,跳轉(zhuǎn)到inc_pls狀態(tài),增加hpulse的值,來輪流增加hback_porch與hpulse的值,防止只增大某一參數(shù)的值;當(dāng)存儲器發(fā)生滿溢出時,跳轉(zhuǎn)到dec_back狀態(tài),減少hback_porch的值;
在inc_pls狀態(tài)下,每幀開始時,根據(jù)上一幀中存儲模塊產(chǎn)生的空滿溢出標志full/empty確定要跳轉(zhuǎn)的狀態(tài)。當(dāng)存儲器模塊為不空也不滿,沒有溢出時(~full&~empty),狀態(tài)跳轉(zhuǎn)到stb,標明裝置已經(jīng)調(diào)整完畢,進入穩(wěn)定狀態(tài);當(dāng)存儲器發(fā)生空溢出時,跳轉(zhuǎn)到inc_back狀態(tài),增加hback_porch的值,來輪流增加hback_porch與hpulse的值,防止只增大某一參數(shù)的值;當(dāng)存儲器發(fā)生滿溢出時,跳轉(zhuǎn)到dec_back狀態(tài),減少hback_porch的值;
在dec_back狀態(tài)下,每幀開始時,根據(jù)上一幀中存儲模塊產(chǎn)生的空滿溢出標志full/empty確定要跳轉(zhuǎn)的狀態(tài)。當(dāng)存儲器模塊為不空也不滿,沒有溢出時(~full&~empty),狀態(tài)跳轉(zhuǎn)到stb,標明裝置已經(jīng)調(diào)整完畢,進入穩(wěn)定狀態(tài);當(dāng)存儲器模塊為滿溢出其調(diào)整后的hback_porch大于1時,跳轉(zhuǎn)到dec_pls狀態(tài),減少hpulse的值,來輪流減少hback_porch與hpulse的值,防止只減少某一參數(shù)的值;
在dec_plse狀態(tài)下,每幀開始時,根據(jù)上一幀中存儲模塊產(chǎn)生的空滿溢出標志full/empty確定要跳轉(zhuǎn)的狀態(tài)。當(dāng)存儲器模塊為不空也不滿,沒有溢出時(~full&~empty),狀態(tài)跳轉(zhuǎn)到stb,標明裝置已經(jīng)調(diào)整完畢,進入穩(wěn)定狀態(tài);當(dāng)存儲器模塊為滿溢出其調(diào)整后的hpulse大于1時,跳轉(zhuǎn)到dec_back狀態(tài),減少hback_porch的值,來輪流減少hback_porch與hpulse的值,防止只減少某一參數(shù)的值;當(dāng)存儲器為滿溢出且調(diào)整后的hpulse與hback_porch都小于2,則跳轉(zhuǎn)到init狀態(tài),重新測量新的源時鐘域視頻timing信息與目的時鐘域下測的的源視頻timing信息。
在stb狀態(tài)下,標明源時鐘域視頻timing已經(jīng)與目的時鐘域時評timing鎖定。如果存儲器又發(fā)生空滿溢出,則跳轉(zhuǎn)到init(初始)狀態(tài),重新測量新的源時鐘域視頻timing信息與目的時鐘域下測的的源視頻timing信息。
以上所述的具體實施例,對本發(fā)明的解決的技術(shù)問題、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。