專(zhuān)利名稱(chēng):傳輸流解碼與編碼定時(shí)同步的裝置及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及多媒體數(shù)據(jù)的解碼與編碼定時(shí)同步的裝置及方法,特別涉及傳輸流解碼與編碼定時(shí)同步的裝置及方法。
背景技術(shù):
隨著多媒體技術(shù)的發(fā)展,一路節(jié)目的視頻、音頻及其他輔助數(shù)據(jù)經(jīng)過(guò)數(shù)字化處理、壓縮編碼后,分別形成視頻的基本流ES(Elementary Stream)、音頻的基本流和其他輔助數(shù)據(jù)的基本流;將不同的基本流分別加包頭打包為PES(Packetised ES)包,為了多路數(shù)據(jù)節(jié)目流的復(fù)用和有效的傳輸,又將PES包作為負(fù)載分割后插入傳輸流包(TS包)或節(jié)目流包(PS包)中,形成分別是基于可變長(zhǎng)度打包的節(jié)目流PS(Program Steam)和基于固定長(zhǎng)度打包的傳輸流(Transport Stream)。在ES層,和同步有關(guān)的主要是VBV-Delay域,表示解碼器視頻緩沖器在收到圖像起始碼的最后一個(gè)字節(jié)后,至當(dāng)前解碼幀解碼開(kāi)始所應(yīng)等待的時(shí)間,用以防止解碼器的緩沖器出現(xiàn)上溢或下溢。在PES層,和同步有關(guān)的主要是在PES包頭信息中出現(xiàn)的PTS(顯示時(shí)間標(biāo)簽)和DTS(解碼時(shí)間標(biāo)簽)。在TS流中包含了編碼時(shí)鐘參考(該編碼時(shí)鐘參考的數(shù)值表示編碼時(shí)鐘輸出的脈沖總數(shù),這個(gè)脈沖總數(shù)從零開(kāi)始計(jì)數(shù)),用于解碼時(shí)鐘恢復(fù)。解碼器端解碼時(shí),首先利用編碼時(shí)鐘參考重建和編碼器同步的27MHz時(shí)鐘(此時(shí)鐘為標(biāo)準(zhǔn)協(xié)議中規(guī)定的時(shí)鐘),恢復(fù)27MHz時(shí)鐘后,再利用PES流中的解碼時(shí)間標(biāo)簽,顯示時(shí)間標(biāo)簽進(jìn)行音、視頻的同步,同時(shí)利用VBV Delay在解碼器中的緩沖器充盈到相應(yīng)程度后啟動(dòng)初始解碼。在解碼器中,解碼時(shí)鐘的恢復(fù)是同步的關(guān)鍵。如果解碼時(shí)鐘和編碼時(shí)鐘嚴(yán)格匹配,那么視頻和音頻的解碼和顯示將自動(dòng)和編碼保持相同的速率。但在實(shí)際中,解碼器均有自主的解碼時(shí)鐘,并不和編碼時(shí)鐘匹配,因而需要利用接收到的編碼時(shí)鐘參考來(lái)使解碼器的解碼時(shí)鐘同步于編碼器的編碼時(shí)鐘,所采用的典型方法是通過(guò)鎖相環(huán)(PLL)裝置來(lái)實(shí)現(xiàn)。
在編碼和解碼的過(guò)程中,編碼器根據(jù)編碼時(shí)鐘進(jìn)行編碼,并根據(jù)編碼時(shí)鐘在傳輸流中添加編碼時(shí)鐘參考,在傳輸流的包頭中添加指示音頻和視頻解碼時(shí)間的解碼時(shí)間標(biāo)簽(DTS)、指示音頻和視頻顯示時(shí)間的顯示時(shí)間標(biāo)簽(PTS)等時(shí)間控制信息,其中,解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽以編碼時(shí)鐘參考為時(shí)間基準(zhǔn)。如圖1所示,在解碼器端,CPU在接收到傳輸流后提取解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽存放在寄存器中,每當(dāng)傳輸流開(kāi)始傳輸新的一幀圖像時(shí),CPU將該幀圖像的解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽寫(xiě)入到寄存器中,同時(shí),解碼器在解碼圖像時(shí),從寄存器中讀出相應(yīng)的解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽,將解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽與鎖相環(huán)裝置輸出的解碼時(shí)鐘的計(jì)數(shù)值相比較,當(dāng)兩者相等時(shí),CPU就控制解碼器進(jìn)行解碼或控制緩沖器將數(shù)據(jù)傳送給顯示器進(jìn)行顯示。
如圖2所示,現(xiàn)有的方法采用鎖相環(huán)(PLL)的方式恢復(fù)解碼時(shí)鐘,來(lái)使解碼時(shí)鐘同步于編碼時(shí)鐘。其恢復(fù)解碼時(shí)鐘的具體過(guò)程為給壓控晶振一個(gè)電壓,壓控晶振根據(jù)該電壓產(chǎn)生解碼時(shí)鐘,并將該解碼時(shí)鐘輸出給計(jì)數(shù)器,計(jì)數(shù)器具有兩個(gè)輸入端,一個(gè)輸入端用于接收解碼時(shí)鐘輸出的脈沖,另一個(gè)輸入端用于接收清零信號(hào)(CPU每接收到一個(gè)編碼時(shí)鐘參考就產(chǎn)生一個(gè)清零信號(hào),如圖1所示);計(jì)數(shù)器接收到清零信號(hào)后,開(kāi)始統(tǒng)計(jì)其接收到的脈沖個(gè)數(shù),當(dāng)接收到下一個(gè)清零信號(hào)時(shí),輸出統(tǒng)計(jì)的脈沖個(gè)數(shù)給減法器的一個(gè)輸入端,并清零;同時(shí),將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值輸入減法器的另一個(gè)輸入端,減法器將其兩個(gè)輸入端收到的數(shù)值作差,如果作差結(jié)果不為零,則減法器輸出數(shù)字結(jié)果信號(hào),將減法器輸出的數(shù)字結(jié)果信號(hào)轉(zhuǎn)換為電壓信號(hào),調(diào)整該電壓信號(hào)來(lái)改變壓控晶振的輸出頻率,通過(guò)以上的反饋控制逐步使解碼時(shí)鐘和編碼時(shí)鐘同步,有了同步的解碼時(shí)鐘,按照解碼時(shí)間標(biāo)簽進(jìn)行解碼,并按照顯示時(shí)間標(biāo)簽進(jìn)行顯示就可以實(shí)現(xiàn)解碼與編碼的同步。如果減法器作差的結(jié)果為零,則可以判定壓控晶振輸出的時(shí)鐘(解碼時(shí)鐘)和編碼時(shí)鐘是同步的,無(wú)需調(diào)整壓控晶振的電壓。由于在減法器輸出得到的結(jié)果信號(hào)可能會(huì)帶有毛刺,影響調(diào)整壓控晶振的精度,因此在減法器和壓控晶振之間設(shè)置一個(gè)低通濾波器,能夠?qū)⒔Y(jié)果信號(hào)中帶有的毛刺濾除。
采用上述鎖相環(huán)的方式來(lái)恢復(fù)時(shí)鐘,使解碼時(shí)鐘同步于編碼時(shí)鐘,能夠很好的完成解碼和編碼的同步過(guò)程,但是,這種恢復(fù)時(shí)鐘的方式需要使用壓控晶振,壓控晶振是通過(guò)復(fù)雜的電路來(lái)實(shí)現(xiàn)的,不但實(shí)現(xiàn)困難,并且實(shí)現(xiàn)的成本也比較高。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)的缺陷和不足,本發(fā)明的目的在于提供一種傳輸流解碼與編碼定時(shí)同步的裝置,能夠低成本的實(shí)現(xiàn)解碼時(shí)鐘同步于編碼時(shí)鐘,并且降低實(shí)現(xiàn)的復(fù)雜度。
為了達(dá)到上述目的,本發(fā)明傳輸流解碼與編碼定時(shí)同步的裝置,包括重配控制模塊,用于為重配脈沖計(jì)數(shù)器配置計(jì)數(shù)值,并在初始狀態(tài)時(shí),根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;重配脈沖計(jì)數(shù)器,輸入解碼時(shí)鐘,并用于對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)到其所被配置的計(jì)數(shù)值時(shí),輸出一個(gè)中斷;計(jì)數(shù)器,用于統(tǒng)計(jì)重配脈沖計(jì)數(shù)器在連續(xù)兩個(gè)編碼時(shí)鐘參考之間所輸出的中斷個(gè)數(shù);比較器,一個(gè)輸入端用于接收連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,另一個(gè)輸入端用于接收所述計(jì)數(shù)器統(tǒng)計(jì)的連續(xù)兩個(gè)編碼時(shí)鐘參考之間的中斷個(gè)數(shù),比較器根據(jù)所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述中斷個(gè)數(shù),比較解碼時(shí)間與編碼時(shí)間是否相等;所述重配控制模塊接收比較器的比較結(jié)果,在比較結(jié)果不相等時(shí),調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值,使所述重配計(jì)數(shù)器根據(jù)調(diào)整后的計(jì)數(shù)值輸出中斷,所述比較器比較得到調(diào)整后的解碼時(shí)間與編碼時(shí)間相等。
優(yōu)選的,所述的重配控制模塊可以包括初始計(jì)數(shù)值配置單元,用于在初始狀態(tài)時(shí),根據(jù)解碼時(shí)鐘和預(yù)先設(shè)定的預(yù)定時(shí)長(zhǎng)為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;計(jì)數(shù)值重配單元,用于接收比較器的比較結(jié)果,并在所述比較結(jié)果不相等時(shí),計(jì)算新的計(jì)數(shù)值配置到重配脈沖計(jì)數(shù)器中。
優(yōu)選的,所述的比較器將所接收到中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為相同的單位,并將轉(zhuǎn)換后的值進(jìn)行比較,獲得解碼時(shí)間和編碼時(shí)間是否相等的比較結(jié)果,并將比較結(jié)果發(fā)送給重配控制模塊。
優(yōu)選的,所述的比較器包括解碼時(shí)間計(jì)算單元,用于將統(tǒng)計(jì)的中斷個(gè)數(shù)乘以所述預(yù)定時(shí)長(zhǎng)來(lái)獲取解碼時(shí)間;編碼時(shí)間計(jì)算單元,用于將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值除以預(yù)先設(shè)定的編碼時(shí)鐘頻率來(lái)獲取編碼時(shí)間;時(shí)間比較單元,用于比較解碼時(shí)間和編碼時(shí)間是否相等,并將比較結(jié)果發(fā)送給重配控制模塊。
進(jìn)一步的,本裝置還包括CPU,用于從所接收到的傳輸流中獲取編碼時(shí)鐘參考的差值,并輸出到所述比較器中;并在每獲得一個(gè)編碼時(shí)鐘參考時(shí)向所述計(jì)數(shù)器發(fā)出一個(gè)清零信號(hào),所述計(jì)數(shù)器根據(jù)所述清零信號(hào)進(jìn)行計(jì)數(shù)清零;所述CPU還接收來(lái)自重配脈沖計(jì)數(shù)器的中斷,并統(tǒng)計(jì)中斷個(gè)數(shù),將所統(tǒng)計(jì)的中斷個(gè)數(shù)轉(zhuǎn)換成解碼時(shí)間,從而根據(jù)該解碼時(shí)間進(jìn)行解碼控制。
進(jìn)一步的,本裝置還包括解碼器、緩沖器和顯示器,所述CPU內(nèi)還設(shè)置有解碼控制模塊,用于統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù),根據(jù)該中斷個(gè)數(shù)所對(duì)應(yīng)的解碼時(shí)間,以及自傳輸流中獲取的解碼時(shí)間標(biāo)簽控制解碼器進(jìn)行解碼,和/或根據(jù)該中斷個(gè)數(shù)所對(duì)應(yīng)的解碼時(shí)間以及自傳輸流中獲取的顯示時(shí)間標(biāo)簽控制緩沖器輸出解碼后的數(shù)據(jù)至顯示器顯示。
采用上述的裝置后,由重配脈沖計(jì)數(shù)器產(chǎn)生中斷,統(tǒng)計(jì)在連續(xù)兩個(gè)編碼時(shí)鐘參考之間重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)(該中斷個(gè)數(shù)表示解碼時(shí)間),將統(tǒng)計(jì)的中斷個(gè)數(shù)和該連續(xù)兩個(gè)編碼時(shí)鐘參考的差值(該差值表示編碼時(shí)間)進(jìn)行比較,如果比較結(jié)果不相等,則說(shuō)明解碼時(shí)鐘和編碼時(shí)鐘不同步,為使解碼器的解碼時(shí)鐘同步于編碼器的編碼時(shí)鐘,通過(guò)對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整,使調(diào)整后的比較結(jié)果相等,來(lái)達(dá)到解碼時(shí)鐘和編碼時(shí)鐘同步;這樣,根據(jù)重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)計(jì)算得到的解碼時(shí)間就與編碼時(shí)間一致,解碼時(shí)鐘和編碼時(shí)鐘達(dá)到了同步,與現(xiàn)有的裝置比較,沒(méi)有使用壓控晶振等成本比較高并且實(shí)現(xiàn)復(fù)雜的硬件,而使用的是硬件成本比較低的重配脈沖計(jì)數(shù)器,并且計(jì)數(shù)器、比較器和重配控制模塊都能夠通過(guò)軟件的模塊來(lái)實(shí)現(xiàn),不但降低了成本,而且實(shí)現(xiàn)也比較容易。
同時(shí),本發(fā)明的目的還在于提供一種傳輸流解碼與編碼定時(shí)同步的方法,能夠低成本的實(shí)現(xiàn)解碼時(shí)鐘同步于編碼時(shí)鐘,并且降低實(shí)現(xiàn)的復(fù)雜度。
為了達(dá)到上述目的,本發(fā)明傳輸流解碼與編碼定時(shí)同步的方法,包括以下步驟(1)采用重配控制模塊在初始狀態(tài)時(shí)根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;(2)采用重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)到配置的計(jì)數(shù)值時(shí)將輸出一個(gè)中斷;(3)采用計(jì)數(shù)器統(tǒng)計(jì)所述重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù);(4)采用比較器根據(jù)連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù),比較解碼時(shí)間與編碼時(shí)間是否相等;(5)重配控制模塊接收比較器的比較結(jié)果,如果比較結(jié)果不相等,則重配重配脈沖計(jì)數(shù)器的計(jì)數(shù)值,使調(diào)整后的解碼時(shí)間與編碼時(shí)間相等。
優(yōu)選的,所述步驟(1)具體為;預(yù)先設(shè)置預(yù)定時(shí)長(zhǎng),將正常工作狀態(tài)下的解碼時(shí)鐘頻率與所述預(yù)定時(shí)長(zhǎng)的商作為初始計(jì)數(shù)值,所述重配控制模塊將該初始計(jì)數(shù)值配置到重配脈沖計(jì)數(shù)器中。
優(yōu)選的,所述步驟(4)中,比較器將所接收到中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為相同的單位,并將轉(zhuǎn)換后的值進(jìn)行比較,獲得解碼時(shí)間和編碼時(shí)間是否相等的比較結(jié)果。
優(yōu)選的,所述步驟(4)中,比較器將統(tǒng)計(jì)的中斷個(gè)數(shù)與所述的預(yù)定時(shí)長(zhǎng)的乘積作為解碼時(shí)間,將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值與預(yù)先設(shè)定的編碼時(shí)鐘頻率的商作為編碼時(shí)間,然后比較所述解碼時(shí)間和編碼時(shí)間是否相等。
優(yōu)選的,步驟(5)中調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值的方法為通過(guò)公式P=MN×Q]]>來(lái)獲取新的計(jì)數(shù)值,將該新的計(jì)數(shù)值配置到重配計(jì)數(shù)器中;其中,所述的P為獲取的新的計(jì)數(shù)值,所述的M為統(tǒng)計(jì)的中斷個(gè)數(shù)或其轉(zhuǎn)換后的數(shù)值或根據(jù)所述中斷個(gè)數(shù)計(jì)算得到的解碼時(shí)間,所述的N為連續(xù)兩個(gè)編碼時(shí)鐘參考的差值或其轉(zhuǎn)換后的數(shù)值或根據(jù)所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值計(jì)算得到的編碼時(shí)間,所述的Q為重配脈沖計(jì)數(shù)器中的當(dāng)前計(jì)數(shù)值,且所述M與N具有相同的單位。
進(jìn)一步的,所述調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值的方法為根據(jù)網(wǎng)絡(luò)延時(shí)的狀況通過(guò)漸變或一步到位的方式對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整。
進(jìn)一步的,所述步驟(2)后還包括(A)解碼控制模塊統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù),根據(jù)該中斷個(gè)數(shù)和解碼時(shí)間標(biāo)簽控制解碼器進(jìn)行解碼,和/或根據(jù)該中斷個(gè)數(shù)和顯示時(shí)間標(biāo)簽控制緩沖器進(jìn)行顯示。
采用上述的方法后,重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)到配置的計(jì)數(shù)值時(shí)輸出中斷,通過(guò)統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)(該中斷個(gè)數(shù)代表解碼時(shí)間),將統(tǒng)計(jì)的中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值(該差值代表編碼時(shí)間)進(jìn)行比較,如果比較結(jié)果不相等,則說(shuō)明解碼時(shí)鐘和編碼時(shí)鐘不同步,為使解碼器的解碼時(shí)鐘同步于編碼器的編碼時(shí)鐘,本發(fā)明通過(guò)對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整,使調(diào)整后的比較結(jié)果相等,來(lái)使解碼時(shí)鐘同步于編碼時(shí)鐘;這樣,根據(jù)重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)計(jì)算解碼時(shí)間就與編碼時(shí)間一致,與現(xiàn)有技術(shù)相比,在解碼端通過(guò)對(duì)重配脈沖計(jì)數(shù)器中計(jì)數(shù)值的調(diào)整,來(lái)使解碼時(shí)鐘同步于編碼時(shí)鐘,不必再利用電壓來(lái)調(diào)整壓控晶振輸出解碼時(shí)鐘的復(fù)雜處理過(guò)程,不但降低了復(fù)雜度,而且節(jié)省了成本。
圖1為現(xiàn)有技術(shù)解碼器端進(jìn)行解碼和顯示的系統(tǒng)結(jié)構(gòu)圖;圖2為現(xiàn)有技術(shù)通過(guò)鎖相環(huán)完成解碼時(shí)鐘和編碼時(shí)鐘同步的系統(tǒng)結(jié)構(gòu)圖;圖3為本發(fā)明傳輸流解碼與編碼定時(shí)同步的裝置的具體實(shí)施例的結(jié)構(gòu)圖;
圖4為本發(fā)明的裝置在解碼器端調(diào)整解碼和編碼在時(shí)間上同步的一種優(yōu)選實(shí)施例的結(jié)構(gòu)圖;圖5為本發(fā)明傳輸流解碼與編碼定時(shí)同步的方法的具體實(shí)施例的流程圖;圖6為本發(fā)明在解碼器端調(diào)整解碼和編碼在時(shí)間上同步的一種優(yōu)選實(shí)施例的流程圖。
具體實(shí)施例方式
本發(fā)明提供了傳輸流解碼與編碼定時(shí)同步的裝置,下面結(jié)合附圖以及具體實(shí)施例對(duì)本發(fā)明提供的裝置進(jìn)行詳細(xì)的說(shuō)明。
如圖3所示,為本實(shí)施例傳輸流解碼與編碼定時(shí)同步的裝置結(jié)構(gòu)圖,本實(shí)施例中包括計(jì)數(shù)器、重配脈沖計(jì)數(shù)器、比較器和重配控制模塊。該重配脈沖計(jì)數(shù)器與計(jì)數(shù)器相連,比較器分別與計(jì)數(shù)器、重配控制模塊相連,重配控制模塊與重配脈沖計(jì)數(shù)器相連。
其中,重配控制模塊,用于為重配脈沖計(jì)數(shù)器配置計(jì)數(shù)值,并在初始狀態(tài)時(shí),根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;所述計(jì)數(shù)值的目的是使重配脈沖計(jì)數(shù)器每隔預(yù)定時(shí)長(zhǎng)輸出一個(gè)中斷,這樣則可將這個(gè)定時(shí)發(fā)出的中斷作為判斷和調(diào)整解碼時(shí)鐘與編碼時(shí)鐘同步的依據(jù)。
如當(dāng)采用本領(lǐng)域內(nèi)的標(biāo)準(zhǔn)協(xié)議所規(guī)定的時(shí)鐘頻率27MHz作為正常工作狀態(tài)的解碼時(shí)鐘時(shí),而所述預(yù)定時(shí)長(zhǎng)可為1ms,則可配置的初始計(jì)數(shù)值為27000,使重配脈沖計(jì)數(shù)器根據(jù)當(dāng)前解碼時(shí)鐘計(jì)數(shù),并且每計(jì)數(shù)到27000就輸出一個(gè)中斷,相當(dāng)于每隔1ms輸出一個(gè)中斷。(所述預(yù)定時(shí)長(zhǎng)可以由開(kāi)發(fā)人員根據(jù)統(tǒng)計(jì)的方便或系統(tǒng)實(shí)現(xiàn)的必要性來(lái)預(yù)先設(shè)定);初始計(jì)數(shù)值是通過(guò)重配控制模塊上設(shè)置的初始計(jì)數(shù)值配置單元來(lái)配置的,調(diào)整計(jì)數(shù)值的過(guò)程是由設(shè)置在重配控制模塊上的計(jì)數(shù)值重配單元來(lái)完成的。
重配脈沖計(jì)數(shù)器,其一個(gè)輸入端用于接收重配控制模塊配置的計(jì)數(shù)值,另一個(gè)輸入端用于接收解碼時(shí)鐘輸出的脈沖,并對(duì)其進(jìn)行計(jì)數(shù);每計(jì)數(shù)到計(jì)數(shù)值輸出一個(gè)中斷(如上述配置的計(jì)數(shù)值為27000,該重配脈沖計(jì)數(shù)器每計(jì)數(shù)到27000輸出一個(gè)中斷),其輸出的中斷一路發(fā)送給計(jì)數(shù)器,另一路發(fā)送給CPU進(jìn)行解碼控制(如圖4所示);計(jì)數(shù)器,用于統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù);其具有兩個(gè)輸入端,一個(gè)輸入端用于接收重配脈沖計(jì)數(shù)器發(fā)送的中斷,另一個(gè)輸入端用于接收清零信號(hào)(CPU每接收到一個(gè)編碼時(shí)鐘參考就產(chǎn)生一個(gè)清零信號(hào),如圖4所示);計(jì)數(shù)器接收到一個(gè)清零信號(hào)后,開(kāi)始統(tǒng)計(jì)其接收到的中斷個(gè)數(shù),當(dāng)接收到下一個(gè)清零信號(hào)時(shí),輸出統(tǒng)計(jì)的中斷個(gè)數(shù)給比較器,并清零;
比較器,一個(gè)輸入端接收連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,該連續(xù)兩個(gè)編碼時(shí)鐘參考的差值可以用于計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間;另一個(gè)輸入端接收計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù),該中斷個(gè)數(shù)可以用于計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間;比較器根據(jù)所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述中斷個(gè)數(shù),比較編碼時(shí)間與解碼時(shí)間是否相等,并將比較結(jié)果輸出其中,比較器根據(jù)接收到的連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間,可以通過(guò)比較器上設(shè)置的編碼時(shí)間計(jì)算單元來(lái)實(shí)現(xiàn),具體可以為比較器根據(jù)預(yù)先設(shè)定的編碼時(shí)鐘頻率和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,計(jì)算所述的編碼時(shí)間。由于一般情況下,比較器不知道編碼端的真實(shí)的編碼時(shí)鐘頻率是多少,因此比較器需要預(yù)先假定一個(gè)編碼時(shí)鐘頻率,所述預(yù)先設(shè)定的編碼時(shí)鐘頻率是根據(jù)實(shí)際應(yīng)用來(lái)設(shè)置,如一般采用本領(lǐng)域內(nèi)的標(biāo)準(zhǔn)協(xié)議,編碼時(shí)鐘頻率f為27MHz。假定所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值n為2700000,則根據(jù)編碼時(shí)間t=n/f,得到t=(2700000/27000000)*1000=100ms。
比較器根據(jù)接收到的連續(xù)兩個(gè)編碼時(shí)鐘參考之間的中斷個(gè)數(shù),獲得連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間,可以通過(guò)比較器上設(shè)置的解碼時(shí)間計(jì)算單元來(lái)實(shí)現(xiàn),具體可以為由于重配脈沖計(jì)數(shù)器每隔預(yù)定時(shí)長(zhǎng)產(chǎn)生1個(gè)中斷,則將中斷個(gè)數(shù)乘以預(yù)定時(shí)長(zhǎng)即可得到解碼時(shí)間。如前而假定的預(yù)定時(shí)長(zhǎng)為1ms,如果比較器接收到的中斷個(gè)數(shù)為100個(gè),則解碼時(shí)間為100ms。
比較器上還設(shè)置有時(shí)間比較單元,該時(shí)間比較單元比較上述通過(guò)計(jì)算得到的解碼時(shí)間和編碼時(shí)間,將比較結(jié)果發(fā)送給重配控制模塊。
如果在正常工作狀態(tài)下,輸入重配脈沖計(jì)數(shù)器的解碼時(shí)鐘采用標(biāo)準(zhǔn)的27MHz,設(shè)定的預(yù)定時(shí)長(zhǎng)為1ms,則根據(jù)該時(shí)鐘配置重配脈沖計(jì)數(shù)器的計(jì)數(shù)值為2700000,如果連續(xù)兩個(gè)編碼時(shí)鐘參考的差值為2700000時(shí),按照上面的方法,比較器計(jì)算得到的解碼時(shí)間和編碼時(shí)間都為100ms,此時(shí),解碼時(shí)鐘同步于編碼時(shí)鐘。假定由于時(shí)鐘抖動(dòng)輸入重配脈沖計(jì)數(shù)器的解碼時(shí)鐘變?yōu)榱?6MHz,表明解碼時(shí)鐘變慢了,而比較器按照標(biāo)準(zhǔn)中規(guī)定時(shí)鐘的頻率(f=27MHz)計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間,這樣,在連續(xù)兩個(gè)編碼時(shí)鐘參考的差值為2700000時(shí),按照公式t=n/f計(jì)算得到編碼時(shí)間是100ms;在連續(xù)連個(gè)編碼時(shí)鐘參考之間,重配脈沖計(jì)數(shù)器當(dāng)前的計(jì)數(shù)值為27000時(shí),計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù)則為 由于設(shè)定的固定時(shí)長(zhǎng)為1ms,通過(guò)計(jì)算得到解碼時(shí)間是 重配控制模塊,接收比較器的比較結(jié)果,如果比較結(jié)果不相等,則調(diào)整為重配脈沖計(jì)數(shù)器的配置的計(jì)數(shù)值,使調(diào)整后比較器計(jì)算的解碼時(shí)間與編碼時(shí)間相等;按照上述解碼時(shí)鐘變成26MHz時(shí),重配控制模塊接收的解碼時(shí)間 和編碼時(shí)間(100ms)的比較結(jié)果不相等,表明解碼時(shí)鐘不同步于編碼時(shí)鐘,則重配控制模塊調(diào)整重配脈沖計(jì)數(shù)器配置的計(jì)數(shù)值,使比較器計(jì)算的解碼時(shí)間等于編碼時(shí)間。
優(yōu)選地,調(diào)整計(jì)數(shù)值可以通過(guò)重配控制模塊上設(shè)置的重配計(jì)數(shù)值計(jì)算單元來(lái)實(shí)現(xiàn),重配計(jì)數(shù)值計(jì)算單元通過(guò)公式P=MN×Q]]>來(lái)獲取新的計(jì)數(shù)值,將該新的計(jì)數(shù)值配置到重配計(jì)數(shù)器中;其中,所述的P為獲取的新的計(jì)數(shù)值,所述的M為根據(jù)統(tǒng)計(jì)的中斷個(gè)數(shù)計(jì)算得到的解碼時(shí)間,所述的N為根據(jù)連續(xù)兩個(gè)編碼時(shí)鐘差值計(jì)算得到的編碼時(shí)間,所述的Q為重配脈沖計(jì)數(shù)器中的當(dāng)前計(jì)數(shù)值。根據(jù)上述假定,則M=2627×100ms,]]>N=100ms,Q=27000,計(jì)算得到P=26000。
調(diào)整后的新的計(jì)數(shù)值P就是使解碼時(shí)鐘同步于編碼時(shí)鐘所需要的計(jì)數(shù)值,對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整后,該重配脈沖計(jì)數(shù)器在解碼時(shí)鐘的驅(qū)動(dòng)下,根據(jù)新的計(jì)數(shù)值來(lái)輸出中斷,在連續(xù)兩個(gè)編碼時(shí)鐘參考之間,能夠使比較器的比較結(jié)果相等,表明連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間和編碼時(shí)間相等,解碼時(shí)鐘同步于編碼時(shí)鐘。
與現(xiàn)有技術(shù)相比,都是完成解碼時(shí)鐘和編碼時(shí)鐘同步的過(guò)程,現(xiàn)有技術(shù)是對(duì)壓控晶振輸出的解碼時(shí)鐘進(jìn)行調(diào)整,使解碼時(shí)鐘和編碼時(shí)鐘一致來(lái)完成時(shí)鐘同步,而本實(shí)施例是不改變解碼時(shí)鐘,加入了一個(gè)對(duì)解碼時(shí)鐘進(jìn)行計(jì)數(shù)的重配脈沖計(jì)數(shù)器,通過(guò)改變重配脈沖計(jì)數(shù)器中的計(jì)數(shù)值,在連續(xù)兩個(gè)編碼時(shí)鐘參考之間,使連續(xù)兩個(gè)編碼時(shí)鐘參考的差值與重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)相等,達(dá)到解碼時(shí)鐘同步于編碼時(shí)鐘,由于本實(shí)施例的裝置中沒(méi)有使用壓控晶振這樣成本高實(shí)現(xiàn)復(fù)雜的元件,而采用了重配脈沖計(jì)數(shù)器這樣的簡(jiǎn)單的硬件,另外,計(jì)數(shù)器、比較器和重配控制模塊還可以通過(guò)軟件的模塊來(lái)實(shí)現(xiàn)的,不但降低了成本,而且實(shí)現(xiàn)起來(lái)非常簡(jiǎn)單。
如圖4所示,為本實(shí)施例的裝置在解碼器端調(diào)整解碼和編碼在時(shí)間上同步的實(shí)施結(jié)構(gòu)圖,包括傳輸流解碼與編碼定時(shí)同步的裝置、解碼器、寄存器、CPU、緩沖器和顯示器,其中,CPU上設(shè)置有解碼控制模塊,CPU分別與解碼器、緩沖器、寄存器、傳輸流解碼與編碼定時(shí)同步的裝置相連,該CPU還分別比較器、計(jì)數(shù)器、重配脈沖計(jì)數(shù)器相連,解碼器與緩沖器相連。
解碼與編碼在時(shí)間上同步的過(guò)程中,解碼器端的CPU接收編碼器端發(fā)送過(guò)來(lái)的傳輸流,并根據(jù)傳輸流的類(lèi)型將傳輸流放入解碼器中,該解碼器根據(jù)類(lèi)型可以分為音頻解碼器、視頻解碼器和文本解碼器。CPU提取傳輸流中的編碼時(shí)鐘參考以及解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽存放在寄存器中,該解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽以編碼時(shí)間為基準(zhǔn)。CPU中的解碼控制模塊,從寄存器中讀出相應(yīng)的解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽,將解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽與根據(jù)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)所獲得的時(shí)間相比較,當(dāng)兩者相等時(shí),CPU就控制解碼器進(jìn)行解碼或控制緩沖器將數(shù)據(jù)傳送給顯示器進(jìn)行顯示。
由于傳輸不穩(wěn)定、時(shí)鐘抖動(dòng)等原因引起解碼時(shí)鐘或編碼時(shí)鐘發(fā)生變化,從而導(dǎo)致解碼和編碼在時(shí)間上的不同步,這樣,需要根據(jù)編碼時(shí)鐘參考,通過(guò)傳輸流解碼與編碼定時(shí)同步的裝置來(lái)調(diào)整解碼時(shí)鐘同步于編碼時(shí)鐘,來(lái)達(dá)到解碼和編碼在時(shí)間上的同步,下面結(jié)合圖4對(duì)如何判斷解碼時(shí)鐘是否同步于編碼時(shí)鐘,以及調(diào)整時(shí)鐘同步的過(guò)程進(jìn)行詳細(xì)的描述CPU接收到傳輸流后,自傳輸流中提取編碼時(shí)鐘參考,將計(jì)算得到的連續(xù)兩個(gè)編碼時(shí)鐘參考的差值發(fā)送到比較器中,并且每提取一個(gè)編碼時(shí)鐘參考,就產(chǎn)生一個(gè)清零信號(hào)發(fā)送給計(jì)數(shù)器,計(jì)數(shù)器每收到一個(gè)清零信號(hào),就將其統(tǒng)計(jì)連續(xù)兩個(gè)編碼時(shí)鐘參考之間的中斷個(gè)數(shù)發(fā)送給比較器,并開(kāi)始新的統(tǒng)計(jì);比較器根據(jù)收到的連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間;并根據(jù)接收到的連續(xù)兩個(gè)編碼時(shí)鐘參考之間的中斷個(gè)數(shù),計(jì)算連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間;比較器比較編碼時(shí)間和解碼時(shí)間是否相等,如果比較的結(jié)果不相等,表明解碼時(shí)鐘不同步于編碼時(shí)鐘,比較器將輸出比較結(jié)果給重配控制模塊,重配控制模塊就能夠根據(jù)比較結(jié)果對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整,通過(guò)調(diào)整使比較結(jié)果相等,來(lái)達(dá)到解碼時(shí)鐘同步于編碼時(shí)鐘。
這樣,CPU的解碼控制模塊對(duì)重配脈沖計(jì)數(shù)器輸出的中斷進(jìn)行統(tǒng)計(jì),當(dāng)統(tǒng)計(jì)的中斷個(gè)數(shù)轉(zhuǎn)換成解碼時(shí)間,恰好與編碼器添加在傳輸流中的解碼時(shí)間標(biāo)簽或顯示時(shí)間標(biāo)簽規(guī)定的時(shí)間一致時(shí),解碼控制模塊控制解碼器進(jìn)行解碼或是控制緩沖器將其存儲(chǔ)的數(shù)據(jù)輸出給顯示器進(jìn)行顯示。通過(guò)對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)器進(jìn)行調(diào)整,使解碼時(shí)鐘同步于編碼時(shí)鐘,就能夠恢復(fù)解碼和編碼在時(shí)間上的同步過(guò)程。
在實(shí)際的應(yīng)用中,上述的比較器、計(jì)數(shù)器和重配控制模塊都可以通過(guò)軟件模塊或硬件模塊來(lái)實(shí)現(xiàn)的,其可以設(shè)置在CPU的外部,也可以集成設(shè)置在CPU內(nèi)部,具體實(shí)現(xiàn)為CPU內(nèi)的軟件模塊。
本實(shí)施例同時(shí)提供了傳輸流解碼與編碼定時(shí)同步的方法,下面結(jié)合附圖對(duì)本實(shí)施例的方法進(jìn)行詳細(xì)說(shuō)明。
如圖5所示,為本實(shí)施例傳輸流解碼與編碼定時(shí)同步的方法流程圖,該方法包括以下步驟
(501)重配控制模塊根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;(502)重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)到配置的計(jì)數(shù)值時(shí)將輸出一個(gè)中斷;(503)計(jì)數(shù)器統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù);(504)比較器根據(jù)連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù),比較解碼時(shí)間與編碼時(shí)間是否相等;如果比較結(jié)果不相等,則重配控制模塊調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值,使調(diào)整后的解碼時(shí)間與編碼時(shí)間相等。
該步驟中,連續(xù)兩個(gè)編碼時(shí)鐘參考的差值可用于獲得或表示在連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間;統(tǒng)計(jì)的中斷個(gè)數(shù)可用于獲得或表示在連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間。
該步驟中可以根據(jù)中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值分別計(jì)算出解碼時(shí)間和編碼時(shí)間,將該解碼時(shí)間和編碼時(shí)間相比較能夠判斷出解碼時(shí)鐘是否同步于編碼時(shí)鐘,如果比較結(jié)果相等,則表示在連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間和解碼時(shí)間相等,解碼時(shí)鐘同步于編碼時(shí)鐘;如果中斷個(gè)數(shù)和差值比較結(jié)果不相等,則表示在連續(xù)兩個(gè)編碼時(shí)鐘參考之間的編碼時(shí)間和解碼時(shí)間不相等,則需要對(duì)解碼端的重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整,使解碼時(shí)鐘同步于編碼時(shí)鐘。
如圖6所示,為本實(shí)施例在解碼器端調(diào)整解碼和編碼在時(shí)間上同步的優(yōu)選實(shí)施流程圖,包括以下步驟(601)經(jīng)過(guò)編碼器進(jìn)行編碼后的傳輸流傳輸?shù)浇獯a器端;(602)CPU對(duì)傳輸流進(jìn)行語(yǔ)法分析,提取編碼時(shí)鐘參考以及解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽,并且每提取一個(gè)編碼時(shí)鐘參考就產(chǎn)生一個(gè)清零信號(hào)發(fā)送給計(jì)數(shù)器,并根據(jù)傳輸流中數(shù)據(jù)的類(lèi)型,將數(shù)據(jù)發(fā)送給音頻解碼器、視頻解碼器或是文本解碼器;(603)重配脈沖計(jì)數(shù)器在解碼時(shí)鐘的驅(qū)動(dòng)下進(jìn)行計(jì)數(shù),達(dá)到配置的當(dāng)前計(jì)數(shù)值時(shí),重配脈沖計(jì)數(shù)器清零重新開(kāi)始計(jì)數(shù),同時(shí)輸出一個(gè)中斷;該輸出的中斷用于進(jìn)行兩方面的處理,一方面輸入CPU,用于控制解碼端的數(shù)據(jù)解碼及顯示,如以下的步驟(604);另一方面輸入計(jì)數(shù)器,用于判斷解碼時(shí)鐘是否同步于編碼時(shí)鐘,如以下的步驟(605)至步驟(608);(604)CPU中的解碼控制模塊接收并統(tǒng)計(jì)來(lái)自重配脈沖計(jì)數(shù)器輸出的中斷,根據(jù)統(tǒng)計(jì)的中斷個(gè)數(shù)和解碼時(shí)間標(biāo)簽來(lái)控制解碼器解碼,和/或根據(jù)統(tǒng)計(jì)的中斷個(gè)數(shù)和顯示時(shí)間標(biāo)簽來(lái)控制緩沖器進(jìn)行顯示;其具體的過(guò)程是解碼控制模塊將統(tǒng)計(jì)的中斷個(gè)數(shù)轉(zhuǎn)換為時(shí)間,當(dāng)中斷個(gè)數(shù)轉(zhuǎn)換為時(shí)間后達(dá)到解碼時(shí)間標(biāo)簽規(guī)定的解碼時(shí)間時(shí),CPU控制解碼器進(jìn)行解碼,并將解碼的數(shù)據(jù)存儲(chǔ)到緩沖器中;解碼控制模塊將統(tǒng)計(jì)的中斷個(gè)數(shù)轉(zhuǎn)換為時(shí)間,當(dāng)中斷個(gè)數(shù)轉(zhuǎn)換為時(shí)間后達(dá)到顯示時(shí)間標(biāo)簽規(guī)定的顯示時(shí)間時(shí),CPU控制緩沖器將其內(nèi)部存儲(chǔ)的數(shù)據(jù)進(jìn)行顯示。
(605)計(jì)數(shù)器接收到一個(gè)清零信號(hào),開(kāi)始對(duì)重配脈沖計(jì)數(shù)器輸出的中斷進(jìn)行計(jì)數(shù),當(dāng)該計(jì)數(shù)器接收到下一個(gè)清零信號(hào)時(shí),將其統(tǒng)計(jì)的連續(xù)兩個(gè)編碼時(shí)鐘參考之間重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)發(fā)送給比較器,并清零;(606)CPU將計(jì)算得到的連續(xù)兩個(gè)編碼時(shí)鐘參考的差值發(fā)送給比較器;(607)比較器接收步驟(605)中統(tǒng)計(jì)的中斷個(gè)數(shù)和步驟(606)中得到的差值,分別計(jì)算出在連續(xù)兩個(gè)編碼時(shí)鐘參考之間的解碼時(shí)間和編碼時(shí)間,比較該解碼時(shí)間和編碼時(shí)間是否相等,如果相等,則表示編碼時(shí)鐘同步于解碼時(shí)鐘,不需要調(diào)整,返回步驟(603);如果不相等,則進(jìn)入步驟(608);計(jì)算解碼時(shí)間的方法為將統(tǒng)計(jì)的中斷個(gè)數(shù)乘以預(yù)定時(shí)長(zhǎng)。計(jì)算編碼時(shí)間的方法為將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值除以預(yù)先設(shè)定的編碼時(shí)鐘頻率(如標(biāo)準(zhǔn)中規(guī)定時(shí)鐘的頻率)。
(608)產(chǎn)生解碼時(shí)鐘同步于編碼時(shí)鐘所需的新的計(jì)數(shù)值,對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整后,返回步驟(603)。
其中,步驟(607)中產(chǎn)生解碼時(shí)鐘同步于編碼時(shí)鐘所需的新的計(jì)數(shù)值的方法包括但不限于下述的公式通過(guò)公式P=MN×Q]]>來(lái)生成;公式中的P為產(chǎn)生的新的計(jì)數(shù)值,M為根據(jù)統(tǒng)計(jì)的中斷個(gè)數(shù)計(jì)算得到的解碼時(shí)間,N為根據(jù)連續(xù)兩個(gè)編碼時(shí)鐘差值計(jì)算得到的編碼時(shí)間,Q為重配脈沖計(jì)數(shù)器中的當(dāng)前計(jì)數(shù)值。
步驟(607)中得到新的計(jì)數(shù)值后,將新的計(jì)數(shù)值重新配置到重配脈沖計(jì)數(shù)器中,根據(jù)網(wǎng)絡(luò)延時(shí)的狀況也可以有兩種方式,如果網(wǎng)絡(luò)延時(shí)小,可以采用一步到位的方式來(lái)重配;如果網(wǎng)絡(luò)延時(shí)大,則需要采用漸變的方式來(lái)一步一步的進(jìn)行重配,以保證網(wǎng)絡(luò)傳輸波動(dòng)的平穩(wěn)性。
下面以一個(gè)具體應(yīng)用的實(shí)施例來(lái)對(duì)本實(shí)施例更進(jìn)一步的說(shuō)明。
設(shè)解碼端的正常工作狀態(tài)下,解碼時(shí)鐘頻率為27MHz,設(shè)定一個(gè)預(yù)定時(shí)長(zhǎng)為1ms,根據(jù)正常工作狀態(tài)下的解碼時(shí)鐘頻率以及預(yù)定時(shí)長(zhǎng)為重配脈沖計(jì)數(shù)器配置計(jì)數(shù)值為27000,該重配脈沖計(jì)數(shù)器每計(jì)數(shù)到27000就輸出一個(gè)中斷(每隔1ms輸出一個(gè)中斷)。CPU統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù),并根據(jù)中斷個(gè)數(shù)獲得編碼用去的時(shí)間。一般情況下,解碼端不知道編碼端的編碼時(shí)鐘頻率,因此在解碼端,CPU默認(rèn)編碼端的時(shí)鐘頻率,如可默認(rèn)編碼端的時(shí)鐘頻率為標(biāo)準(zhǔn)協(xié)議中的27MHz,則如果CPU所獲得的連續(xù)兩個(gè)編碼時(shí)鐘參考的差值為2700000,則CPU認(rèn)為編碼用去的時(shí)間為100ms;如果傳輸流中在添加第二個(gè)編碼時(shí)鐘參考的同時(shí)添加顯示時(shí)間標(biāo)簽,則表示解碼需要在100ms時(shí)顯示該數(shù)據(jù),解碼器端的CPU需要在接收到第100個(gè)中斷時(shí),控制緩沖器顯示數(shù)據(jù),來(lái)達(dá)到解碼和編碼在時(shí)間上的同步(編碼時(shí)間為100ms,解碼時(shí)間也為100ms)。如果由于時(shí)鐘抖動(dòng)等原因,解碼端的解碼時(shí)鐘頻率不穩(wěn)定,變成了26MHz。在該連續(xù)兩個(gè)編碼時(shí)鐘參考的差值時(shí)間(即100ms)內(nèi),CPU接收重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)為 當(dāng)CPU接收到的中斷個(gè)數(shù)為100個(gè)進(jìn)行顯示時(shí),實(shí)際解碼用去的時(shí)間為 而CPU認(rèn)為的編碼用去的時(shí)間是100ms,很顯然解碼時(shí)鐘不同步于編碼時(shí)鐘,編碼和解碼在時(shí)間上是不同步的。如圖3所示,本實(shí)施例能夠通過(guò)比較器判斷出編碼和解碼的不同步,本實(shí)施例是將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值2700000輸入比較器的一個(gè)輸入端,將該連續(xù)兩個(gè)編碼時(shí)鐘之間重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù) 輸入比較器的另一個(gè)輸入端,比較器也默認(rèn)編碼時(shí)鐘頻率為27MHz,從而將2700000轉(zhuǎn)換為編碼時(shí)間是100ms,將 轉(zhuǎn)換為解碼時(shí)間是 兩個(gè)轉(zhuǎn)換后的時(shí)間不相等,則比較器能夠判斷出編碼時(shí)鐘和解碼時(shí)鐘不同步,并將比較的結(jié)果發(fā)送給重配控制模塊,重配控制模塊通過(guò)公式P=MN×Q]]>能夠計(jì)算出新的計(jì)數(shù)值為26000,將該新的計(jì)數(shù)值配置到重配脈沖計(jì)數(shù)器中,就能夠達(dá)到解碼時(shí)鐘同步于編碼時(shí)鐘。重配后,當(dāng)CPU接收到第二個(gè)編碼時(shí)鐘參考時(shí),同時(shí)接收到了顯示時(shí)間標(biāo)簽,該顯示時(shí)間標(biāo)簽以編碼時(shí)鐘參考為時(shí)間基準(zhǔn),CPU根據(jù)這兩個(gè)編碼時(shí)鐘參考的差值2700000,計(jì)算出需要在解碼用去100ms時(shí)顯示數(shù)據(jù),這樣,CPU統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)為100個(gè)時(shí)(調(diào)整計(jì)數(shù)值為26000后,重配脈沖計(jì)數(shù)器是每隔1ms發(fā)送一個(gè)脈沖),解碼實(shí)際用去的時(shí)間恰好為100ms,此時(shí)顯示,解碼和編碼在時(shí)間上是同步的。同樣,如果編碼時(shí)鐘發(fā)生了變化,也可以通過(guò)上述的處理過(guò)程進(jìn)行同樣的判斷與調(diào)整,在此不再贅述。
本實(shí)施例的重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),計(jì)數(shù)到配置的計(jì)數(shù)值時(shí)輸出中斷,通過(guò)統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù)(該中斷個(gè)數(shù)可用于獲得或表示解碼時(shí)間),將統(tǒng)計(jì)的中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值(該差值可用于獲得或表示編碼時(shí)間)進(jìn)行比較,如果比較結(jié)果不相等,則說(shuō)明解碼時(shí)鐘和編碼時(shí)鐘不同步,為使解碼器的解碼時(shí)鐘同步于編碼器的編碼時(shí)鐘,通過(guò)對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整,使調(diào)整后的比較結(jié)果相等,來(lái)使解碼時(shí)鐘同步于編碼時(shí)鐘;這樣,重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)轉(zhuǎn)換成解碼時(shí)間就與編碼時(shí)間一致,利用該重配脈沖計(jì)數(shù)器產(chǎn)生的中斷個(gè)數(shù)分別與解碼時(shí)間標(biāo)簽和顯示時(shí)間標(biāo)簽相比較,來(lái)進(jìn)行解碼的控制,就實(shí)現(xiàn)了解碼和編碼的同步,與現(xiàn)有技術(shù)相比,在解碼端通過(guò)對(duì)重配脈沖計(jì)數(shù)器中計(jì)數(shù)值的調(diào)整,來(lái)使解碼時(shí)鐘同步于編碼時(shí)鐘,不必再利用電壓來(lái)調(diào)整壓控晶振輸出解碼時(shí)鐘的復(fù)雜處理過(guò)程,不但降低了復(fù)雜度,而且節(jié)省了成本。
上述實(shí)施例中的比較器是基于時(shí)間的比較,判斷解碼時(shí)鐘是否服從于編碼時(shí)鐘的,因此比較器需要通過(guò)編碼時(shí)間計(jì)算單元、解碼時(shí)間計(jì)算單元,將統(tǒng)計(jì)的中斷數(shù)轉(zhuǎn)換為解碼用去的時(shí)間,將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為編碼用去的時(shí)間,轉(zhuǎn)換后通過(guò)時(shí)間比較單元比較二者在數(shù)值上是否相等,如果不相等,則表示解碼時(shí)鐘不服從于編碼時(shí)鐘,解碼和編碼在時(shí)間上是不同步的。
但實(shí)際上,比較器接收到的中斷個(gè)數(shù)、連續(xù)兩個(gè)編碼時(shí)鐘參考的差值可分別代表解碼時(shí)間和編碼時(shí)間,因此只需要將接收到中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為相同的單位,就可以用于進(jìn)行比較判斷解碼時(shí)間是否與編碼時(shí)間同步。所述的相同的單位可以是時(shí)間、脈沖個(gè)數(shù)或中斷個(gè)數(shù)。如果是轉(zhuǎn)換成脈沖個(gè)數(shù),則將中斷個(gè)數(shù)乘以重配脈沖計(jì)數(shù)器的計(jì)數(shù)值即可獲得脈沖個(gè)數(shù)。轉(zhuǎn)換成中斷個(gè)數(shù)的方法可參照轉(zhuǎn)換成脈沖個(gè)數(shù)的方法,不再贅述。
此時(shí),重配控制模塊所用于計(jì)算新的計(jì)數(shù)值的公式P=MN×Q]]>中,P表示產(chǎn)生的新的計(jì)數(shù)值,M為統(tǒng)計(jì)的中斷個(gè)數(shù)或其轉(zhuǎn)換后的數(shù)值,N為連續(xù)兩個(gè)編碼時(shí)鐘參考的差值或其轉(zhuǎn)換后的數(shù)值,Q為重配脈沖計(jì)數(shù)器中的當(dāng)前計(jì)數(shù)值。
如轉(zhuǎn)換成脈沖個(gè)數(shù)時(shí),設(shè)接收到的中斷個(gè)數(shù)為 連續(xù)兩個(gè)編碼時(shí)鐘參考的差值為2700000,當(dāng)前重配脈沖計(jì)數(shù)器的計(jì)數(shù)值為27000,則P=MN×Q=2627×100×270002700000×27000=26000.]]>由上述分析可以看出,本發(fā)明定時(shí)同步的裝置及方法可以做出多種調(diào)整,且不限于應(yīng)用在多媒體數(shù)據(jù)的編碼和解碼進(jìn)行定時(shí)同步的領(lǐng)域,還可以應(yīng)用到其他需要定時(shí)同步的相鄰或相近的領(lǐng)域中。
權(quán)利要求
1.一種傳輸流解碼與編碼定時(shí)同步的裝置,包括重配控制模塊,用于為重配脈沖計(jì)數(shù)器配置計(jì)數(shù)值,并在初始狀態(tài)時(shí),根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;重配脈沖計(jì)數(shù)器,輸入解碼時(shí)鐘,并用于對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)到其所被配置的計(jì)數(shù)值時(shí),輸出一個(gè)中斷;計(jì)數(shù)器,用于統(tǒng)計(jì)重配脈沖計(jì)數(shù)器在連續(xù)兩個(gè)編碼時(shí)鐘參考之間所輸出的中斷個(gè)數(shù);比較器,一個(gè)輸入端用于接收連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,另一個(gè)輸入端用于接收所述計(jì)數(shù)器統(tǒng)計(jì)的連續(xù)兩個(gè)編碼時(shí)鐘參考之間的中斷個(gè)數(shù),比較器根據(jù)所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述中斷個(gè)數(shù),比較解碼時(shí)間與編碼時(shí)間是否相等;所述重配控制模塊接收比較器的比較結(jié)果,在比較結(jié)果不相等時(shí),調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值,使所述重配計(jì)數(shù)器根據(jù)調(diào)整后的計(jì)數(shù)值輸出中斷,所述比較器比較得到調(diào)整后的解碼時(shí)間與編碼時(shí)間相等。
2.按照權(quán)利要求1所述的傳輸流解碼與編碼定時(shí)同步的裝置,其特征在于,所述的重配控制模塊包括初始計(jì)數(shù)值配置單元,用于在初始狀態(tài)時(shí),根據(jù)解碼時(shí)鐘和預(yù)先設(shè)定的預(yù)定時(shí)長(zhǎng)為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;計(jì)數(shù)值重配單元,用于接收比較器的比較結(jié)果,并在所述比較結(jié)果不相等時(shí),計(jì)算新的計(jì)數(shù)值配置到重配脈沖計(jì)數(shù)器中。
3.按照權(quán)利要求2所述的傳輸流解碼與編碼定時(shí)同步的裝置,其特征在于,所述的比較器將所接收到中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為相同的單位,并將轉(zhuǎn)換后的值進(jìn)行比較,獲得解碼時(shí)間和編碼時(shí)間是否相等的比較結(jié)果,并將比較結(jié)果發(fā)送給重配控制模塊。
4.按照權(quán)利要求2所述的傳輸流解碼與編碼定時(shí)同步的裝置,其特征在于,所述的比較器包括解碼時(shí)間計(jì)算單元,用于將統(tǒng)計(jì)的中斷個(gè)數(shù)乘以所述預(yù)定時(shí)長(zhǎng)來(lái)獲取解碼時(shí)間;編碼時(shí)間計(jì)算單元,用于將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值除以預(yù)先設(shè)定的編碼時(shí)鐘頻率來(lái)獲取編碼時(shí)間;時(shí)間比較單元,用于比較解碼時(shí)間和編碼時(shí)間是否相等,并將比較結(jié)果發(fā)送給重配控制模塊。
5.按照權(quán)利要求1所述的傳輸流解碼與編碼定時(shí)同步的裝置,其特征在于,還包括CPU,用于從所接收到的傳輸流中獲取編碼時(shí)鐘參考的差值,并輸出到所述比較器中;并在每獲得一個(gè)編碼時(shí)鐘參考時(shí)向所述計(jì)數(shù)器發(fā)出一個(gè)清零信號(hào),所述計(jì)數(shù)器根據(jù)所述清零信號(hào)進(jìn)行計(jì)數(shù)清零;所述CPU還接收來(lái)自重配脈沖計(jì)數(shù)器的中斷,并統(tǒng)計(jì)中斷個(gè)數(shù),將所統(tǒng)計(jì)的中斷個(gè)數(shù)轉(zhuǎn)換成解碼時(shí)間,從而根據(jù)該解碼時(shí)間進(jìn)行解碼控制。
6.按照權(quán)利要求5所述裝置,其特征在于還包括解碼器、緩沖器和顯示器,所述CPU內(nèi)還設(shè)置有解碼控制模塊,用于統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù),根據(jù)該中斷個(gè)數(shù)所對(duì)應(yīng)的解碼時(shí)間,以及自傳輸流中獲取的解碼時(shí)間標(biāo)簽控制解碼器進(jìn)行解碼,和/或根據(jù)該中斷個(gè)數(shù)所對(duì)應(yīng)的解碼時(shí)間以及自傳輸流中獲取的顯示時(shí)間標(biāo)簽控制緩沖器輸出解碼后的數(shù)據(jù)至顯示器顯示。
7.一種傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,包括以下步驟(1)采用重配控制模塊在初始狀態(tài)時(shí)根據(jù)解碼時(shí)鐘為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;(2)采用重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù),每計(jì)數(shù)到配置的計(jì)數(shù)值時(shí)將輸出一個(gè)中斷;(3)采用計(jì)數(shù)器統(tǒng)計(jì)所述重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù);(4)采用比較器根據(jù)連續(xù)兩個(gè)編碼時(shí)鐘參考的差值和所述計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù),比較解碼時(shí)間與編碼時(shí)間是否相等;(5)重配控制模塊接收比較器的比較結(jié)果,如果比較結(jié)果不相等,則重配重配脈沖計(jì)數(shù)器的計(jì)數(shù)值,使調(diào)整后的解碼時(shí)間與編碼時(shí)間相等。
8.按照權(quán)利要求7所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,所述步驟(1)具體為預(yù)先設(shè)置預(yù)定時(shí)長(zhǎng),將正常工作狀態(tài)下的解碼時(shí)鐘頻率與所述預(yù)定時(shí)長(zhǎng)的商作為初始計(jì)數(shù)值,所述重配控制模塊將該初始計(jì)數(shù)值配置到重配脈沖計(jì)數(shù)器中。
9.按照權(quán)利要求8所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于所述步驟(4)中,比較器將所接收到中斷個(gè)數(shù)和連續(xù)兩個(gè)編碼時(shí)鐘參考的差值轉(zhuǎn)換為相同的單位,并將轉(zhuǎn)換后的值進(jìn)行比較,獲得解碼時(shí)間和編碼時(shí)間是否相等的比較結(jié)果。
10.按照權(quán)利要求8所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,所述步驟(4)中,比較器將統(tǒng)計(jì)的中斷個(gè)數(shù)與所述的預(yù)定時(shí)長(zhǎng)的乘積作為解碼時(shí)間;將連續(xù)兩個(gè)編碼時(shí)鐘參考的差值與預(yù)先設(shè)定的編碼時(shí)鐘頻率的商作為編碼時(shí)間,然后比較所述解碼時(shí)間和編碼時(shí)間是否相等。
11.按照權(quán)利要求9或10所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,步驟(5)中調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值的方法為通過(guò)公式P=MN×Q]]>來(lái)獲取新的計(jì)數(shù)值,將該新的計(jì)數(shù)值配置到重配計(jì)數(shù)器中;其中,所述的P為獲取的新的計(jì)數(shù)值,所述的M為統(tǒng)計(jì)的中斷個(gè)數(shù)或其轉(zhuǎn)換后的數(shù)值或根據(jù)所述中斷個(gè)數(shù)計(jì)算得到的解碼時(shí)間,所述的N為連續(xù)兩個(gè)編碼時(shí)鐘參考的差值或其轉(zhuǎn)換后的數(shù)值或根據(jù)所述連續(xù)兩個(gè)編碼時(shí)鐘參考的差值計(jì)算得到的編碼時(shí)間,所述的Q為重配脈沖計(jì)數(shù)器中的當(dāng)前計(jì)數(shù)值,且所述M與N具有相同的單位。
12.按照權(quán)利要求7所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,所述調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值的方法為根據(jù)網(wǎng)絡(luò)延時(shí)的狀況通過(guò)漸變或一步到位的方式對(duì)重配脈沖計(jì)數(shù)器的計(jì)數(shù)值進(jìn)行調(diào)整。
13.按照權(quán)利要求7所述的傳輸流解碼與編碼定時(shí)同步的方法,其特征在于,所述步驟(2)后還包括(A)解碼控制模塊統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù),根據(jù)該中斷個(gè)數(shù)和解碼時(shí)間標(biāo)簽控制解碼器進(jìn)行解碼,和/或根據(jù)該中斷個(gè)數(shù)和顯示時(shí)間標(biāo)簽控制緩沖器進(jìn)行顯示。
全文摘要
本發(fā)明公開(kāi)了一種傳輸流解碼與編碼定時(shí)同步的裝置及方法。為解決現(xiàn)有技術(shù)中解碼時(shí)鐘同步于編碼時(shí)鐘的實(shí)現(xiàn)過(guò)程復(fù)雜并且成本高的問(wèn)題而發(fā)明。本發(fā)明的裝置包括重配脈沖計(jì)數(shù)器、計(jì)數(shù)器、比較器、重配控制模塊。本發(fā)明的方法包括為重配脈沖計(jì)數(shù)器配置初始計(jì)數(shù)值;重配脈沖計(jì)數(shù)器對(duì)解碼時(shí)鐘輸出的脈沖進(jìn)行計(jì)數(shù)并輸出中斷;計(jì)數(shù)器統(tǒng)計(jì)重配脈沖計(jì)數(shù)器輸出的中斷個(gè)數(shù);比較器一個(gè)輸入端接收連續(xù)兩個(gè)編碼時(shí)鐘參考的差值,計(jì)算編碼時(shí)間,另一個(gè)輸入端接收計(jì)數(shù)器統(tǒng)計(jì)的中斷個(gè)數(shù),計(jì)算解碼時(shí)間;比較器比較解碼時(shí)間與編碼時(shí)間是否相等;如果比較結(jié)果不相等,調(diào)整重配脈沖計(jì)數(shù)器的計(jì)數(shù)值。本發(fā)明能夠簡(jiǎn)單并且低成本的實(shí)現(xiàn)解碼時(shí)鐘同步于編碼時(shí)鐘。
文檔編號(hào)H03M7/30GK101051836SQ20071006500
公開(kāi)日2007年10月10日 申請(qǐng)日期2007年3月30日 優(yōu)先權(quán)日2007年3月30日
發(fā)明者戴春泉, 董欣 申請(qǐng)人:北京中星微電子有限公司