專(zhuān)利名稱(chēng):視音頻同步方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)字多媒體處理技術(shù)領(lǐng)域,特別涉及一種視音頻同步方法。
背景技術(shù):
目前流行的視音頻編解碼器都是混和編解碼。也即是說(shuō)這些編解碼器均采用了,時(shí)間、空間的預(yù)測(cè),變換,量化和熵編碼的技術(shù)。這使得視音頻流的數(shù)據(jù)量會(huì)依據(jù)數(shù)據(jù)源的內(nèi)容的不同而有較大的差異,這樣會(huì)產(chǎn)生以下的不匹配的現(xiàn)象。
這種不匹配包括以下兩種情況首先,數(shù)據(jù)內(nèi)容的差異會(huì)導(dǎo)致最終解碼速度的波動(dòng),但是視音頻的播放速度是均勻的,這樣會(huì)產(chǎn)生解碼速度和播放速度的矛盾;其次,視音頻之間存在著同步關(guān)系,由于以上所述的解碼速度波動(dòng),對(duì)視音頻同步也存在很大的影響。
為解決以上問(wèn)題,在目前流行的視音頻標(biāo)準(zhǔn)中都采用在系統(tǒng)層加入時(shí)間標(biāo)志的辦法,這包括節(jié)目參考時(shí)鐘和顯示時(shí)間標(biāo)簽。節(jié)目參考時(shí)鐘是系統(tǒng)的參考時(shí)鐘,提供視音頻系統(tǒng)總的時(shí)間上的依據(jù),顯示時(shí)間標(biāo)簽是視音頻的播放時(shí)間的標(biāo)簽,視音頻流中的顯示時(shí)間標(biāo)簽提供各自的播放時(shí)間要求。所以將視音頻的顯示時(shí)間標(biāo)簽都以節(jié)目參考時(shí)鐘為參考,以保證音視頻同步的要求。
傳統(tǒng)的解碼器提取系統(tǒng)層中的顯示時(shí)間標(biāo)簽后,將顯示時(shí)間標(biāo)簽存入時(shí)間標(biāo)簽緩沖區(qū)中,而視音頻基本流存入視音頻基本流緩沖區(qū)中。視音頻解碼器從視音頻基本流緩沖區(qū)讀出視音頻基本流進(jìn)行解碼,每完成一定量的數(shù)據(jù)(比如視頻可能是一個(gè)圖像幀,音頻可能是一個(gè)音頻幀)就從視音頻各自的時(shí)間標(biāo)簽緩沖區(qū)中讀出一個(gè)時(shí)間標(biāo)簽,最后根據(jù)讀出的時(shí)間標(biāo)簽實(shí)現(xiàn)視音頻同步。這種方案使用了兩組獨(dú)立的緩沖區(qū)基本流緩沖區(qū)和時(shí)間標(biāo)簽緩沖區(qū),時(shí)間標(biāo)簽緩沖區(qū)中的時(shí)間標(biāo)簽與基本流緩沖區(qū)中的基本流的對(duì)應(yīng)關(guān)系靠解碼控制邏輯實(shí)現(xiàn)。但是實(shí)際應(yīng)用中,視音頻基本流數(shù)據(jù)往往會(huì)有誤碼,很容易造成解碼出錯(cuò)或者緩沖區(qū)溢出(包括基本流緩沖區(qū)和時(shí)間標(biāo)簽緩沖區(qū)),這種情況下時(shí)間標(biāo)簽緩沖區(qū)中的時(shí)間標(biāo)簽與基本流緩沖區(qū)中的基本流的對(duì)應(yīng)關(guān)系將會(huì)被打亂,這往往會(huì)引起視音頻同步的錯(cuò)誤傳播。實(shí)踐中可以采用增大基本流緩沖區(qū)和時(shí)間標(biāo)簽緩沖區(qū)的方法彌補(bǔ)種種方案的上述缺點(diǎn),但是這會(huì)明顯提高系統(tǒng)成本。
發(fā)明內(nèi)容
本發(fā)明的目的就是針對(duì)現(xiàn)有技術(shù)的不足,提出了一種視音頻同步方法,從而實(shí)現(xiàn)當(dāng)視音頻解碼出錯(cuò)或者緩沖區(qū)溢出時(shí)不產(chǎn)生視音頻同步的錯(cuò)誤傳播。
為了實(shí)現(xiàn)上述目的,本發(fā)明的視音頻同步方法包括下列步驟a.數(shù)據(jù)多路分離器從系統(tǒng)層碼流中提取視頻基本流、音頻基本流、節(jié)目參考時(shí)鐘、視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽數(shù)據(jù),并把視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽分別存入V_REG和A_REG寄存器中;b.把V_REG送入時(shí)間標(biāo)簽插入器,時(shí)間標(biāo)簽插入器檢測(cè)視頻基本流中的視頻圖像起始碼,并在其后按照指定的規(guī)則插入帶屏蔽位的視頻顯示時(shí)間標(biāo)簽,得到帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流;c.把A_REG送入時(shí)間標(biāo)簽插入器,時(shí)間標(biāo)簽插入器檢測(cè)音頻基本流中的音頻同步碼,并在其后按照指定的規(guī)則插入帶屏蔽位的音頻顯示時(shí)間標(biāo)簽,得到帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流;d.把帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流送入視頻基本流緩沖區(qū);e.把帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流送入音頻基本流緩沖區(qū);f.視頻解碼器從視頻基本流緩沖區(qū)讀取數(shù)據(jù)后,分析帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流中的圖像起始碼,并從中取出視頻顯示時(shí)間標(biāo)簽送入播放控制器;g.音頻解碼器從音頻基本流緩沖區(qū)讀取數(shù)據(jù)后,分析帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流中的音頻同步碼,并從中取出音頻顯示時(shí)間標(biāo)簽送入播放控制器;h.播放控制器將視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽分別和節(jié)目參考時(shí)鐘比較,根據(jù)比較結(jié)果和播放需要送出視音頻播放控制信號(hào)。
需要特別指出的是,上述的步驟b、c可以獨(dú)立工作,步驟d、e可以獨(dú)立工作,步驟f、g可以獨(dú)立工作。
本發(fā)明將時(shí)間標(biāo)簽分別插入視音頻基本流中并一起存儲(chǔ)在基本流緩沖區(qū)中,在不需要時(shí)間標(biāo)簽緩沖區(qū)的情況下實(shí)現(xiàn)時(shí)間標(biāo)簽與視音頻基本流的對(duì)應(yīng),向后一級(jí)視音頻解碼和播放模塊傳遞,從而達(dá)到將時(shí)間標(biāo)簽傳遞到播放控制模塊的目的,同時(shí)由于時(shí)間標(biāo)簽和視音頻基本流存在一個(gè)緩沖區(qū),所以當(dāng)視音頻解碼出錯(cuò)或者緩沖區(qū)溢出時(shí)不會(huì)出現(xiàn)視音頻同步的錯(cuò)誤傳遞。
圖1是使用本發(fā)明方法的解碼器的結(jié)構(gòu)示意圖。
具體實(shí)施例方式
如圖1所示,該解碼器包括以下模塊數(shù)據(jù)多路分離器101、時(shí)間標(biāo)簽插入器102、視音頻基本流緩沖區(qū)103、視頻解碼器104、音頻解碼器105、播放控制器106、系統(tǒng)時(shí)鐘恢復(fù)器107。
各模塊功能和本發(fā)明的實(shí)施過(guò)程如下數(shù)據(jù)多路分離器101從輸入的TS流中提取需要的視音頻基本流、節(jié)目參考時(shí)鐘以及視音頻PTS;將節(jié)目參考時(shí)鐘送入系統(tǒng)時(shí)鐘恢復(fù)器107,并把視音頻基本流和視音頻PTS送入時(shí)間標(biāo)簽插入器。
時(shí)間標(biāo)簽插入器102從視音頻基本流中找出視頻的圖像起始碼和音頻的同步碼,并在其后分別插入帶有屏蔽位的視音頻PTS,這樣可以防止PTS的某些位可以產(chǎn)生與視頻圖像起始碼或者音頻同步碼相同的碼字,而引起在插入PTS后的基本流產(chǎn)生新的視頻圖像起始碼和音頻同步碼。
視音頻基本流緩沖區(qū)103分開(kāi)存儲(chǔ)添加過(guò)PTS的視頻基本流和音頻基本流。
視頻解碼器104檢測(cè)視頻圖像起始碼,從后面提取V_PTS;并在播放控制信號(hào)下解碼。
音頻解碼器105檢測(cè)音頻同步碼,從后面提取A_PTS;并在播放控制信號(hào)下解碼。
播放控制器106根據(jù)V_PTS、A_PTS和系統(tǒng)時(shí)鐘STC來(lái)調(diào)整播放。
系統(tǒng)時(shí)鐘恢復(fù)器107根據(jù)節(jié)目參考時(shí)鐘PCR恢復(fù)出本地的系統(tǒng)時(shí)鐘STC,并送給播放控制器106。
其中時(shí)間標(biāo)簽插入器102的實(shí)施細(xì)節(jié)如下對(duì)于視頻基本流,在碼流中查找圖像起始碼,在其后插入帶有屏蔽位的V_PTS,帶有屏蔽位的V_PTS為屏蔽位----------------------------2’b11V_PTS有效-------------------------1-bitV_PTS[32:28]----------------------5-bit屏蔽位----------------------------1’b1V_PTS[27:21]----------------------7-bit屏蔽位----------------------------1’b1V_PTS[20:14]----------------------7-bit屏蔽位----------------------------1’b1V_PTS[13:7]-----------------------7-bit屏蔽位----------------------------1’b1V_PTS[6:0]------------------------7-bit對(duì)于一個(gè)新的V_PTS,當(dāng)?shù)谝淮握业揭曨l的圖像起始碼時(shí),置V_PTS有效位為1,而找到下一個(gè)視頻的圖像起始碼,若V_PTS沒(méi)有更新,則置V_PTS有效位為0,若V_PTS更新了,則置V_PTS有效位為1。
對(duì)于音頻基本流,在碼流中查找音頻同步碼,在其后插入帶有屏蔽位的A_PTS,帶有屏蔽位的A_PTS為
1、A_PTS有效等于1時(shí)屏蔽位----------------------------2’b0A_PTS有效-------------------------1’b1A_PTS[32:28]----------------------5bit屏蔽位----------------------------1’b0A_PTS[27:21]----------------------7bit屏蔽位----------------------------1’b0A_PTS[20:14]----------------------7bit屏蔽位----------------------------1’b0A_PTS[13:7]-----------------------7bit屏蔽位----------------------------1’b0A_PTS[6:0]------------------------7bit屏蔽位----------------------------8’b02、A_PTS有效等于0時(shí)屏蔽位----------------------------2’b0A_PTS有效-------------------------1’b0屏蔽位----------------------------13’b0對(duì)于一個(gè)新的A_PTS,當(dāng)?shù)谝淮握业揭纛l同步碼時(shí),置A_PTS有效位為1,而找到下一個(gè)音頻同步碼,若A_PTS沒(méi)有更新,則置A_PTS有效位為0,若A_PTS更新了,則置A_PTS有效位為1。由于音頻同步碼在音頻基本流中非同步碼的部分也可能出現(xiàn),所以對(duì)于音頻,在A_PTS有效位等于0的情況下,插入的數(shù)據(jù)量非常小。有利用節(jié)省基本流緩沖區(qū)的空間。
如上所述,本發(fā)明的視音頻同步方法,將時(shí)間標(biāo)簽分別插入視音頻基本流中并一起存儲(chǔ)在基本流緩沖區(qū)中,在不需要時(shí)間標(biāo)簽緩沖區(qū)的情況下實(shí)現(xiàn)時(shí)間標(biāo)簽與視音頻基本流的對(duì)應(yīng),當(dāng)視音頻解碼出錯(cuò)或者緩沖區(qū)溢出時(shí)不產(chǎn)生視音頻同步的錯(cuò)誤傳播。
盡管本發(fā)明是參照其優(yōu)選實(shí)施例來(lái)具體描述的,但本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離有所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)的各種修改。
權(quán)利要求
1.視音頻同步方法,其特征在于該方法包含以下步驟a.數(shù)據(jù)多路分離器從系統(tǒng)層碼流中提取視頻基本流、音頻基本流、節(jié)目參考時(shí)鐘、視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽數(shù)據(jù),并把視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽分別存入V_REG和A_REG寄存器中;b.把V_REG送入時(shí)間標(biāo)簽插入器,時(shí)間標(biāo)簽插入器檢測(cè)視頻基本流中的視頻圖像起始碼,并在其后按照指定的規(guī)則插入帶屏蔽位的視頻顯示時(shí)間標(biāo)簽,得到帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流;c.把A_REG送入時(shí)間標(biāo)簽插入器,時(shí)間標(biāo)簽插入器檢測(cè)音頻基本流中的音頻同步碼,并在其后按照指定的規(guī)則插入帶屏蔽位的音頻顯示時(shí)間標(biāo)簽,得到帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流;d.把帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流送入視頻基本流緩沖區(qū);e.把帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流送入音頻基本流緩沖區(qū);f.視頻解碼器從視頻基本流緩沖區(qū)讀取數(shù)據(jù)后,分析帶有視頻顯示時(shí)間標(biāo)簽的視頻基本流中的圖像起始碼,并從中取出視頻顯示時(shí)間標(biāo)簽送入播放控制器;g.音頻解碼器從音頻基本流緩沖區(qū)讀取數(shù)據(jù)后,分析帶有音頻顯示時(shí)間標(biāo)簽的音頻基本流中的音頻同步碼,并從中取出音頻顯示時(shí)間標(biāo)簽送入播放控制器;h.播放控制器將視頻顯示時(shí)間標(biāo)簽和音頻顯示時(shí)間標(biāo)簽分別和節(jié)目參考時(shí)鐘比較,根據(jù)比較結(jié)果和播放需要送出視音頻播放控制信號(hào)。
2.如權(quán)利要求1所述的視音頻同步方法,其特征在于所述的步驟b、c可以獨(dú)立工作,步驟d、e可以獨(dú)立工作,步驟f、g可以獨(dú)立工作。
全文摘要
本發(fā)明涉及一種視音頻同步方法。本發(fā)明將時(shí)間標(biāo)簽分別插入視音頻基本流中并一起存儲(chǔ)在基本流緩沖區(qū)中,在不需要時(shí)間標(biāo)簽緩沖區(qū)的情況下實(shí)現(xiàn)時(shí)間標(biāo)簽與視音頻基本流的對(duì)應(yīng),向后一級(jí)視音頻解碼和播放模塊傳遞。從而達(dá)到當(dāng)視音頻解碼出錯(cuò)或者緩沖區(qū)溢出時(shí)不產(chǎn)生視音頻同步的錯(cuò)誤傳播的目的,同時(shí)降低系統(tǒng)成本。
文檔編號(hào)H04N7/62GK1878315SQ20061009890
公開(kāi)日2006年12月13日 申請(qǐng)日期2006年7月14日 優(yōu)先權(quán)日2006年7月14日
發(fā)明者梁堅(jiān), 龐智博, 朱夢(mèng)堯 申請(qǐng)人:杭州國(guó)芯科技有限公司