專利名稱:在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種音頻與視頻數(shù)據(jù)同步的方法,尤其是有關(guān)于一種在 音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法。
背景技術(shù):
音頻-現(xiàn)頻交叉(Audio Video Interleave,以下簡稱為AVI)是一種基 于資源交換文件才各式(Resource Interchange File Format,以下簡稱為 RIFF)的文件格式。AVI文件被用于音頻-視頻序列的捕捉,編輯以及重放, 通常包含有多種不同數(shù)據(jù)類型的串流。這些數(shù)據(jù)被組織成為交叉的音頻-視 頻塊(chunk ),其中可通過塊的定時或字節(jié)長度獲得時間標記(timestamp )。
一般而言,AVI系統(tǒng)可以通過以下三種來源獲得時間信息實時時鐘 (Real Time Clock, RTC ),視頻同步時鐘(Video-sync, V—sync )以及系 統(tǒng)時鐘(System Time Clock, STC )。視頻編碼器使用視頻同步時鐘對視頻 幀進行編碼,而音頻編碼器4吏用系統(tǒng)時鐘對音頻幀進行編碼。音頻與^L頻編 碼器都4吏用系統(tǒng)時鐘來確定凝:據(jù)的演示時間標記(Presentation Time Stamp, PTS )值。
實際操作中,三種時鐘的定時經(jīng)常存在差異。請參照圖1,圖l是包含 有系統(tǒng)時鐘(RTC )、視頻時鐘(源V-sync )以及音頻時鐘(編碼器STC )的 AVI系統(tǒng)的示意圖,其中音頻時鐘有誤差。圖中顯示四個定時點,在第一個 定時點,系統(tǒng)時鐘與視頻時鐘處于同步狀態(tài),而音頻時鐘有輕微誤差。在第 四個定時點,音頻時鐘的累積誤差變大。
如圖l所示,在一定時間段后,音頻與視頻數(shù)據(jù)將失去同步。當(dāng)誤差變 大,如音頻數(shù)據(jù)滯后或超前于視頻數(shù)據(jù)一個或多個幀時,同步誤差將值得使 用者注意。顯然,這種狀態(tài)是不合需求的。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的之一在于提供一種解決此同步問題的方法。本發(fā)明提供一種在音頻視頻交叉(Audio Video Interleave,以下簡稱 為AVI )文件中進行音頻與視頻數(shù)據(jù)同步的方法,其中AVI文件包含多個音 頻與S見頻塊(chunk )。此方法包含有依據(jù)視頻時鐘與音頻時鐘確定主存取 單元組(Group of Main Access Units,以下簡稱為GMAU)的幀速率誤差; 依據(jù)幀速率誤差確定GMAU演示時間標記(Presentation Time Stamp,以下 簡稱為PTS );以及用GMAU PTS更新AVI文件,從而利用GMAU PTS播放GMAU。
本發(fā)明提供第二種同步方法,此方法包含有依據(jù)-現(xiàn)頻時鐘與音頻時鐘 確定幀速率誤差;將幀速率誤差與幀周期作比較,以獲得比較結(jié)果;以及依 據(jù)比較結(jié)果選擇性插入或丟棄至少 一個視頻幀。
本發(fā)明還提供另一種同步方法,此方法包含有依據(jù)視頻時鐘與音頻時 鐘確定幀速率誤差;將幀速率誤差與幀周期作比較,以獲得比較結(jié)果;以及 依據(jù)比較結(jié)果選擇性插入或丟棄至少一個音頻幀。
依據(jù)本發(fā)明的同步方法,通過插入或丟棄視頻或音頻幀的動作,可有效 改善幀速率誤差,從而保證音頻與視頻數(shù)據(jù)的同步。
圖1是顯示AVI系統(tǒng)中時鐘定時失諧的示意圖。
圖2是依據(jù)本發(fā)明第一實施例的方法詳細步驟的流程圖。
圖3是依據(jù)本發(fā)明第二實施例的方法詳細步驟的流程圖。
具體實施例方式
閱讀了以下對附圖所示的優(yōu)選實施例的詳細描述之后,本發(fā)明對于所屬 領(lǐng)域的技術(shù)人員而言將顯而易見。
記錄器(recorder)的多^各復(fù)用器(muxer )對經(jīng)由編碼器編碼的音頻 與視頻塊(chunk)進行多路傳輸而產(chǎn)生音頻視頻交叉(Audio Video Interleave,以下簡稱為AVI)文件。由于音頻與視頻塊是基于不同的時鐘 來源分別產(chǎn)生的,所以重放時視頻與音頻可能會失去同步。本發(fā)明提供了幾 種確保重放期間音頻與視頻同步的方法。在某些實施例中,多路復(fù)用器將音 頻與視頻的時間信息進行比較,以獲得幀速率誤差(frame rate error ), 然后AVI比特串流被調(diào)整為與幀速率誤差一致,以保證音頻與視頻同步。在 其它實施例中,時間標記(time stamp)附加于AVI文件,并且可依據(jù)幀速率誤差調(diào)整。
舉例來說,如果系統(tǒng)假定視頻時鐘(例如V-sync)精確,則音頻數(shù)據(jù) 或?qū)?yīng)于音頻重放的時間將依據(jù)視頻時鐘來調(diào)整。另一方面,如果系統(tǒng)假定 音頻時鐘(例如STC)精確,則視頻數(shù)據(jù)或?qū)?yīng)于視頻重放的時間將依據(jù)音 頻時鐘來調(diào)整。系統(tǒng)亦可選擇調(diào)整音頻或視頻數(shù)據(jù),或者選擇調(diào)整音頻或視 頻重放時間。舉例來說,如果視頻或音頻數(shù)據(jù)被依據(jù)幀速率誤差調(diào)整,則系 統(tǒng)可決定調(diào)整具有較快時鐘速率者,以避免丟棄數(shù)據(jù)。以下舉例說明在AVI 文件中校正音頻與視頻數(shù)據(jù)時鐘差異的方法的實施例。
在典型AVI系統(tǒng)中,視頻與音頻編碼器產(chǎn)生視頻與音頻塊,通常一個視 頻塊為一個視頻幀,而一個音頻塊包含一個或一個以上的音頻幀。音頻與視 頻塊通過多路復(fù)用器進行多路傳輸,然后被傳送到編寫模塊。對應(yīng)于視頻塊 的視頻時鐘可依據(jù)編碼幀的數(shù)目與周期獲得,其中,編碼幀的數(shù)目由偵測到 的V-sync波形的數(shù)目確定。音頻時鐘依據(jù)STC獲得。理想狀況下,視頻時 鐘與音頻時鐘應(yīng)在每一個數(shù)據(jù)區(qū)段對準,因此對每一個數(shù)據(jù)區(qū)段而言,音頻 重放與視頻重放的開啟時間均相同。然而,由于音頻與視頻數(shù)據(jù)可能失去同 步,所以音頻可能超前或滯后于對應(yīng)的視頻。數(shù)據(jù)區(qū)段可以是一個或一組幀。
在一實施例中,幀速率誤差通過比較音頻與視頻時鐘而獲得。并且如果 幀速率誤差大于一個音頻幀,舉例來說,音頻重放的時間滯后于對應(yīng)的視頻 重放一個幀長度,如8個音頻數(shù)據(jù)幀與9個視頻數(shù)據(jù)幀被多路傳輸,多路復(fù) 用器會特別告知編寫模塊,9個音頻數(shù)據(jù)幀已^皮多路傳輸。最初誤差并不會 如此嚴重,但是誤差將隨時間累積。當(dāng)幀速率誤差等于或大于一個幀周期時, 比特串流的內(nèi)容將被調(diào)整,以保證重放期間音頻與視頻同步。如果音頻時鐘 滯后于視頻時鐘,多路復(fù)用器可插入一個音頻幀或丟棄一個視頻幀;如果音 頻時鐘超前于視頻時鐘,多路復(fù)用器可插入一個視頻幀或丟棄一個音頻幀。 幀插入動作通常通過重復(fù)視頻或音頻幀來實現(xiàn)。
在某些實施例中,系統(tǒng)首先定義由交叉存取的音頻與視頻塊構(gòu)成的主存 取單元(Main Access Unit,以下簡稱為MAU ),舉例來說, 一個MAU載有 0. 5秒的數(shù)據(jù)。多個連續(xù)的MAU組成主存取單元組(Group of Main Access Units,以下簡稱為GMAU),舉例來說,由大約5分鐘的數(shù)據(jù)組成。GMAU時 間標i己定義為GMAU音頻與4見頻演示時間才示i己(GMAU Presentation Time Stamp,以下筒稱為GMAU PTS)并且插入至AVI文件的自定義塊。GMAU時間標記可用于校正音頻與視頻時鐘差異。系統(tǒng)是對完整的GMAU累積同步誤差, 而不是立即校正同步誤差。舉例來說,如前所述,如果整體累積誤差對應(yīng)于 一個音頻幀周期,編寫模塊將注意到一個額外的音頻數(shù)據(jù)幀被多路傳輸。因 此,觀測到的多路傳輸?shù)囊纛l幀的數(shù)目等于音頻幀的實際數(shù)目+1。 一旦多路 傳輸?shù)囊纛l幀的數(shù)目經(jīng)由系統(tǒng)計算出來,即可計算出新的GMAU PTS并且更 新至當(dāng)前GMAU,因此當(dāng)GMAU中的數(shù)據(jù)顯示時,視頻與音頻數(shù)據(jù)將依據(jù)新的 GMAU PTS而顯示。
為了使第一實施例的描述更清楚,請參照圖2,圖2是此同步方法的詳 細步驟的流程圖,方法包含以下步驟
步驟200:多路傳輸主存取單元組的多個音頻與視頻塊;
步驟202:確定主存取單元組的時鐘源的累積誤差;
步驟204:利用累積誤差確定新的GMAU PTS;
步驟206:用新的GMAU PTS更新當(dāng)前主存取單元組。
在本發(fā)明某些其它實施例中,視頻時鐘作為參考時鐘,但是觀測到的音 頻幀的數(shù)目與音頻幀的實際數(shù)目的確定是作為插入或丟棄視頻幀以達到同 步的依據(jù)。
如先前實施例中所述,音頻與視頻數(shù)據(jù)被多路傳輸,并且視頻時鐘被作 為參考時鐘,以確定幀速率誤差。當(dāng)誤差被轉(zhuǎn)換為對應(yīng)的幀數(shù)目時,AVI系 統(tǒng)接著將會確定插入或丟棄多個視頻幀,其中插入或丟棄的視頻幀的數(shù)目直 接與幀速率誤差相對應(yīng)。換言之,如果花費9個幀的時間來播放8個幀的音 頻數(shù)據(jù),系統(tǒng)將插入一個額外的視頻幀至AVI文件,以達到音頻視頻的同步。 相似地,如果花費7個幀的時間來播放8個幀的音頻數(shù)據(jù),系統(tǒng)將從AVI文 件中丟棄一個^f見頻幀。
為了使本實施例的描述更清楚,請參照圖3,圖3是依據(jù)本實施例的方 法詳細步驟的流程圖。方法包含以下步驟
步驟300:多路傳輸多個音頻與視頻塊以生成AVI文件;
步驟302:依據(jù)音頻與視頻時鐘確定累積誤差;
步驟304:利用累積誤差來確定插入到當(dāng)前AVI文件或從當(dāng)前AVI文件 丟棄的視頻幀的數(shù)目。
通過將視頻時鐘作為參考時鐘,僅需校正音頻數(shù)據(jù)即可。 所屬技術(shù)領(lǐng)域的技術(shù)人員當(dāng)可對本發(fā)明的方法與裝置作出更動與潤飾,在不脫離本發(fā)明的精神與范圍內(nèi)所作均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋 范圍。
權(quán)利要求
1. 一種在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法,其中該音頻視頻交叉文件包含有多個音頻與視頻塊,在該多個音頻與視頻塊中,該音頻視頻交叉文件被分組為至少一個主存取單元組,該方法包含有依據(jù)視頻時鐘與音頻時鐘確定該主存取單元組的幀速率誤差;依據(jù)該幀速率誤差確定主存取單元組演示時間標記;以及用該主存取單元組演示時間標記更新該主存取單元組,從而利用該主存取單元組演示時間標記播放該主存取單元組。
2. 如權(quán)利要求1所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,還包括多路傳輸該主存取單元組的該音頻與視頻數(shù)據(jù)。
3. 如權(quán)利要求1所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,該視頻時鐘是從多個視頻幀的視頻同步時鐘中獲得 的;該音頻時鐘是由系統(tǒng)時鐘獲得的。
4. 如權(quán)利要求1所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,該主存取單元組的長度由該音頻時鐘與該視頻時鐘 之間的時鐘速率差異定義。
5. 如權(quán)利要求1所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,該主存取單元組演示時間標記^皮記錄在該音頻^L頻 交叉文件的專用塊。
6. —種在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法,該音頻 視頻交叉文件包含有多個音頻與視頻塊,該方法包含有依據(jù)視頻時鐘與音頻時鐘確定幀速率誤差; 將該幀速率誤差與幀周期進行比較,以獲得比較結(jié)果;以及 依據(jù)該比較結(jié)果選擇性插入或丟棄至少一個視頻幀。
7. 如權(quán)利要求6所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,還包括多路傳輸該音頻與視頻數(shù)據(jù);其中將該幀速率誤差與該幀周期進行比較的步驟包含有當(dāng)該幀速率誤 差等于或大于該幀周期時,確定所要插入或丟棄的多個視頻幀的數(shù)目;以及當(dāng)該幀速率誤差小于該幀周期時,累積該幀速率誤差至后續(xù)主存取單元組。
8. 如權(quán)利要求6所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,該選擇性插入至少一個視頻幀的步驟包含重復(fù)至少 一個^f見頻幀。
9. 如權(quán)利要求6所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同 步的方法,其特征在于,該視頻時鐘是從多個視頻幀的視頻同步時鐘中獲得 的;該音頻時鐘是由系統(tǒng)時鐘獲得的。
10. —種在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法,該音 頻視頻交叉文件包含有多個音頻與視頻塊,該方法包含有依據(jù)視頻時鐘與音頻時鐘確定幀速率誤差; 將該幀速率誤差與幀周期進行比較,以獲得比較結(jié)果;以及 依據(jù)該比較結(jié)果選擇性插入或丟棄至少 一個音頻幀。
11. 如權(quán)利要求10所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù) 同步的方法,其特征在于,還包括多路傳輸該音頻與視頻數(shù)據(jù);其中將該幀速率誤差與該幀周期進行比較的步驟包含有當(dāng)該幀速率誤 差等于或大于該幀周期時,確定所要插入或丟棄的多個音頻幀的數(shù)目;以及 當(dāng)該幀速率誤差小于該幀周期時,累積該幀速率誤差至后續(xù)主存取單元組。
12. 如權(quán)利要求10所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù) 同步的方法,其特征在于,該選擇性插入至少一個音頻幀的步驟包含重復(fù)至 少一個音頻幀。
13. 如權(quán)利要求10所述的在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù) 同步的方法,其特征在于,該視頻時鐘是從多個視頻幀的視頻同步時鐘中獲 得的;該音頻時鐘是由系統(tǒng)時鐘獲得的。
全文摘要
本發(fā)明提供一種在音頻視頻交叉文件中進行音頻與視頻數(shù)據(jù)同步的方法。音頻視頻交叉文件包含有多個音頻與視頻塊,此同步方法包括依據(jù)視頻時鐘與音頻時鐘確定主存取單元組的幀速率誤差;依據(jù)幀速率誤差確定主存取單元組演示時間標記;以及用主存取單元組演示時間標記更新音頻視頻交叉文件,從而利用主存取單元組演示時間標記播放主存取單元組。本發(fā)明所提供的同步方法,通過插入或丟棄視頻或音頻幀的動作,可有效改善幀速率誤差,從而保證音頻與視頻數(shù)據(jù)的同步。
文檔編號G11B27/10GK101419827SQ20081000242
公開日2009年4月29日 申請日期2008年1月7日 優(yōu)先權(quán)日2007年10月22日
發(fā)明者李紀勛, 林其俊, 陳民樹 申請人:聯(lián)發(fā)科技股份有限公司