專利名稱:傳輸流音視頻同步及防抖動(dòng)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及到音視頻同步技術(shù),特別涉及到傳輸流音視頻同步及防抖動(dòng)方法。
背景技術(shù):
傳輸流是針對(duì)可能出現(xiàn)顯著錯(cuò)誤的環(huán)境中,進(jìn)行節(jié)目傳輸和存儲(chǔ)而定義。因此,當(dāng) 信號(hào)差或外部干擾引起傳輸流網(wǎng)絡(luò)抖動(dòng)時(shí),為了能夠保證其正常工作,需要提供特殊的機(jī) 制減輕或消除網(wǎng)絡(luò)抖動(dòng)的影響,該特殊機(jī)制即為傳輸流防抖動(dòng)機(jī)制。例如當(dāng)一個(gè)移動(dòng)數(shù)字 接收終端,從一個(gè)網(wǎng)絡(luò)信號(hào)強(qiáng)的區(qū)域進(jìn)入信號(hào)弱的區(qū)域再回到信號(hào)強(qiáng)的區(qū)域,該過程中就 會(huì)產(chǎn)生網(wǎng)路的波動(dòng),在信號(hào)弱的區(qū)域,移動(dòng)數(shù)字接收終端接收不到數(shù)據(jù)或接收到的數(shù)據(jù)有 誤,使其播放不出節(jié)目或播放馬賽克;當(dāng)重新回到信號(hào)強(qiáng)的區(qū)域時(shí),移動(dòng)數(shù)字接收終端要求 能夠立刻恢復(fù)正常播放,而不能出現(xiàn)靜幀、音視頻不同步等現(xiàn)象。另外,傳輸流作為一種復(fù)合流,其能包含一個(gè)或多個(gè)節(jié)目數(shù)據(jù),并且各節(jié)目數(shù)據(jù)都 可分開獨(dú)立傳輸,客戶端能夠從傳輸流中抽取出獨(dú)立的節(jié)目內(nèi)容并生成該包含該節(jié)目數(shù)據(jù) 的節(jié)目流;當(dāng)網(wǎng)絡(luò)抖動(dòng)數(shù)據(jù)出錯(cuò)時(shí),同一節(jié)目的音視頻數(shù)據(jù)由于丟失或數(shù)據(jù)出錯(cuò),很可能會(huì) 導(dǎo)致最終的音視頻播放不同步。當(dāng)前通用的音視頻同步處理機(jī)制如下系統(tǒng)時(shí)鐘恢復(fù)通過提供一個(gè)外部時(shí)鐘來實(shí) 現(xiàn),音頻、視頻單元的時(shí)間信息PTS(Presentation Time stamp,展現(xiàn)時(shí)間戳)可以從解析 PES (Packet Elementary Stream,分組基本流)包得到,具體實(shí)現(xiàn)如下(1)選擇一個(gè)外部時(shí)鐘作為系統(tǒng)參考時(shí)鐘;(2)設(shè)置音頻、視頻共同的一個(gè)時(shí)間基準(zhǔn);(3)以當(dāng)前解析出的音頻、視頻的PTS時(shí)間與時(shí)間基準(zhǔn)的差值作為其呈現(xiàn)時(shí)間;(4)在音頻、視頻呈現(xiàn)端(顯示端),根據(jù)系統(tǒng)時(shí)鐘及相應(yīng)的呈現(xiàn)時(shí)間信息依次呈 現(xiàn);若音頻或視頻的呈現(xiàn)時(shí)間大于系統(tǒng)當(dāng)前時(shí)間,則立即呈現(xiàn);否則,緩存該音頻或視頻直 到指定的時(shí)間到來時(shí)才呈現(xiàn)?;蛘?,上述方法的一種簡化版本,如下(1)以音頻時(shí)鐘作為系統(tǒng)參考時(shí)鐘;(2)設(shè)置音頻、視頻共同的一個(gè)時(shí)間基準(zhǔn);(3)以當(dāng)前解析出的音頻、視頻的PTS時(shí)間與時(shí)間基準(zhǔn)的差值作為其呈現(xiàn)時(shí)間;(4)在音頻、視頻呈現(xiàn)端(顯示端),比較音頻、視頻的呈現(xiàn)時(shí)間信息來呈現(xiàn);若視 頻的呈現(xiàn)時(shí)間小于等于音頻的呈現(xiàn)時(shí)間,則立即呈現(xiàn);否則,緩存該視頻直到指定的時(shí)間到 來時(shí)才呈現(xiàn)。上述兩種方法在傳輸流網(wǎng)絡(luò)發(fā)生抖動(dòng)的時(shí)候,由于沒有一個(gè)很好的預(yù)測網(wǎng)絡(luò)抖動(dòng) 及消除網(wǎng)絡(luò)抖動(dòng)的方法,都會(huì)導(dǎo)致一個(gè)音頻或視頻的停頓,或者是音頻、視頻的不同步。
發(fā)明內(nèi)容
本發(fā)明的目的之一為提供傳輸流音視頻同步及防抖動(dòng)方法,可確保傳輸流音視頻的同步。本發(fā)明提出一種傳輸流音視頻同步及防抖動(dòng)方法,應(yīng)用于傳輸流解析過程中,所述傳輸流包括節(jié)目時(shí)鐘參考、音頻展現(xiàn)時(shí)間戳以及視頻展現(xiàn)時(shí)間戳,所述方法包括步驟將獲取的第一次節(jié)目時(shí)鐘參考設(shè)置為基準(zhǔn)時(shí)間;判斷網(wǎng)絡(luò)是否發(fā)生抖動(dòng);如是,更新基準(zhǔn)時(shí)間;否則,進(jìn)行下一步驟;根據(jù)基準(zhǔn)時(shí)間以及音頻展現(xiàn)時(shí)間戳或者視頻展現(xiàn)時(shí)間戳計(jì)算音頻有效時(shí)間戳或 者視頻有效時(shí)間戳。優(yōu)選地,所述判斷網(wǎng)絡(luò)是否發(fā)生抖動(dòng)的步驟進(jìn)一步包括步驟設(shè)置節(jié)目時(shí)鐘參考的突變閾值;判斷當(dāng)前節(jié)目時(shí)鐘參考與上次節(jié)目時(shí)鐘參考之差的絕對(duì)值是否大于其與突變閾 值的乘積;如是,則發(fā)生抖動(dòng);否則,未發(fā)生抖動(dòng)。優(yōu)選地,所述更新基準(zhǔn)時(shí)間的步驟進(jìn)一步包括步驟將當(dāng)前節(jié)目時(shí)鐘參考與上次節(jié)目時(shí)鐘參考之差與當(dāng)前的基準(zhǔn)時(shí)間相加;設(shè)定兩者之和為更新的基準(zhǔn)時(shí)間。優(yōu)選地,所述音頻有效時(shí)間戳的計(jì)算方式為將音頻展現(xiàn)時(shí)間戳減去基準(zhǔn)時(shí)間。優(yōu)選地,所述視頻有效時(shí)間戳的計(jì)算方式為將視頻展現(xiàn)時(shí)間戳減去基準(zhǔn)時(shí)間。本發(fā)明的傳輸流音視頻同步及防抖動(dòng)方法,通過在網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí),對(duì)基準(zhǔn)時(shí)間 進(jìn)行調(diào)整,實(shí)現(xiàn)對(duì)音視頻有效時(shí)間戳的突變,獲取線性增大的音視頻有效時(shí)間戳,以保證視 頻平滑流暢以及音視頻同步,提升網(wǎng)絡(luò)傳輸?shù)目煽啃浴?br>
圖1是本發(fā)明一實(shí)施例中傳輸流的復(fù)用端操作示意圖;圖2是本發(fā)明一實(shí)施例中傳輸流的解復(fù)用端操作示意圖;圖3是本發(fā)明一實(shí)施例中傳輸流的復(fù)用及解復(fù)用示意圖;圖4是本發(fā)明一實(shí)施例中傳輸流音視頻同步及防抖動(dòng)方法的步驟流程圖;圖5是本發(fā)明一實(shí)施例的一實(shí)施方式中傳輸流音視頻同步及防抖動(dòng)方法的步驟 流程圖;圖6是本發(fā)明一實(shí)施例中音視頻有效時(shí)間戳計(jì)算示意圖;圖7是本發(fā)明另一實(shí)施例中更新基準(zhǔn)時(shí)間的步驟流程圖。本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施例方式本發(fā)明通過在傳輸流的解析過程中,將第一次獲取的節(jié)目時(shí)鐘參考設(shè)置為基準(zhǔn)時(shí) 間,并可在網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí),對(duì)該基準(zhǔn)時(shí)間進(jìn)行調(diào)整,并利用該基準(zhǔn)時(shí)間計(jì)算音、視頻有效 時(shí)間戳,以此實(shí)現(xiàn)音視頻的同步,提升網(wǎng)絡(luò)傳輸?shù)目煽啃?。由于傳輸?Transport Stream, TS流)中各節(jié)目的音頻、視頻以及PSI (Program Specifically Information,節(jié)目特定信息)數(shù)據(jù)等都是獨(dú)立傳輸?shù)?;因此,在傳輸流的?fù)用及解復(fù)用過程中,需要加入特定的信息來表征各節(jié)目任意一部分何時(shí)呈現(xiàn);即在復(fù)用的 時(shí)候?qū)崟r(shí)的加入一定的時(shí)間信息,待解復(fù)用時(shí)再根據(jù)該時(shí)間信息呈現(xiàn)音視頻內(nèi)容,以此保 證同一節(jié)目的音頻、視頻能夠同步呈現(xiàn)。在傳輸流的形成中加入相應(yīng)的時(shí)間信息,比如PTS (Presentation TimeStamp,展 現(xiàn)時(shí)間戳)、DTS(Decoding Time Stamp,解碼時(shí)間戳)以及PCR(Program Clock Reference, 節(jié)目時(shí)鐘參考)等。該加入時(shí)間信息的具體的操作如下
(1)在傳輸流復(fù)用端,主要進(jìn)行注入時(shí)間信息及多節(jié)目的復(fù)合操作,其中時(shí)間信息 的注入如下所示(參照?qǐng)D1)I、在將 ES 流(Elementary Stream,基本流)打包為 PES 流(PacketElementary Stream,分組基本流)時(shí),根據(jù)STC (System Time Clock,系統(tǒng)時(shí)鐘)作參考將PTS以及DTS 時(shí)鐘信息注入PES包中;II、在將PES流打包為傳輸流時(shí),將PID以及PCR時(shí)間信息注入到TS包中;(2)在傳輸流解復(fù)用端,解復(fù)用即是將同一信道中不同時(shí)序進(jìn)行傳輸?shù)墓?jié)目分離 出來;音視頻同步由DTS、PTS以及PCR三者協(xié)調(diào)完成,并且PCR是重建系統(tǒng)時(shí)間基準(zhǔn)的絕 對(duì)時(shí)標(biāo),而DTS和PTS是解碼和重現(xiàn)時(shí)刻的相對(duì)時(shí)標(biāo),但在實(shí)際應(yīng)用中可以忽略DTS時(shí)間信 息,通過應(yīng)用PTS與PCR信息來實(shí)現(xiàn)音視頻的同步(參照?qǐng)D2)。音視頻的同步主要是恢復(fù)系統(tǒng)時(shí)鐘,比較系統(tǒng)時(shí)鐘與當(dāng)前音視頻上的時(shí)間信息, 以此控制音頻、視頻的呈現(xiàn)。在傳輸流復(fù)用端,音頻、視頻流通過共同的節(jié)目參考時(shí)鐘,產(chǎn)生 指示音頻和視頻的正確顯示和解碼時(shí)序的時(shí)間信息,同時(shí)可用來指示在抽樣瞬間系統(tǒng)時(shí)鐘 的瞬時(shí)值;在傳輸流解復(fù)用端,通過恢復(fù)當(dāng)前的系統(tǒng)時(shí)鐘及正確使用音視頻的時(shí)間信息,實(shí) 現(xiàn)音視頻同步(參照?qǐng)D3)。參照?qǐng)D4,提出本發(fā)明一實(shí)施例的一種傳輸流音視頻同步及防抖動(dòng)方法,應(yīng)用于傳 輸流解析過程中,所述傳輸流包括節(jié)目時(shí)鐘參考、音頻展現(xiàn)時(shí)間戳以及視頻展現(xiàn)時(shí)間戳,所 述方法包括步驟S10、將獲取的第一次節(jié)目時(shí)鐘參考設(shè)置為基準(zhǔn)時(shí)間;步驟S11、判斷網(wǎng)絡(luò)是否發(fā)生抖動(dòng);如是,更新基準(zhǔn)時(shí)間(步驟S110);否則,進(jìn)行 下一步驟;步驟S12、根據(jù)基準(zhǔn)時(shí)間以及音頻展現(xiàn)時(shí)間戳或者視頻展現(xiàn)時(shí)間戳計(jì)算音頻有效 時(shí)間戳或者視頻有效時(shí)間戳。如步驟SlO所述,在傳輸流解析中,取第一次解析獲得的PCR(節(jié)目時(shí)鐘參考)時(shí) 間PCR_TIME為基準(zhǔn)時(shí)間PCR_BASE_0,當(dāng)前PCR時(shí)間CUR_PCR等于PCR_TIME,上次PCR時(shí)間 LAST_PCR等于0 ;若基準(zhǔn)時(shí)間PCR_BASE_0不為0,即已經(jīng)獲取了基準(zhǔn)時(shí)間值,則LAST_PCR等 于 CUR_PCR,CUR_PCR 等于 PCR_TIME。如步驟Sll所述,若網(wǎng)絡(luò)發(fā)生抖動(dòng)引發(fā)了數(shù)據(jù)流的損失,此時(shí)由于傳輸流中PCR出 現(xiàn)時(shí)鐘周期遠(yuǎn)小于音頻PTS及視頻PTS出現(xiàn)時(shí)鐘周期;因此,PCR時(shí)間信息的突變能夠最先 表征出傳輸流的抖動(dòng)。而且,如需保證視頻平滑流暢以及音視頻同步,就需要一個(gè)線性增大 的音視頻有效時(shí)間戳,為此可通過對(duì)音視頻有效時(shí)間戳的突變實(shí)現(xiàn)。因此,通過PCR的時(shí)鐘周期判斷出網(wǎng)絡(luò)發(fā)生抖動(dòng)后,可通過更新基準(zhǔn)時(shí)間(步驟 S110),實(shí)現(xiàn)對(duì)音視頻有效時(shí)間戳的突變。
參照?qǐng)D5,在本實(shí)施例的一實(shí)施方式中,上述步驟Sll進(jìn)一步包括步驟S111、設(shè)置節(jié)目時(shí)鐘參考的突變閾值;步驟S112、判斷當(dāng)前節(jié)目時(shí)鐘參考(當(dāng)前PCR)與上次節(jié)目時(shí)鐘參 考(上次PCR) 之差的絕對(duì)值是否大于其與突變閾值的乘積;如是,則發(fā)生抖動(dòng);否則,未發(fā)生抖動(dòng)。如步驟Slll所述,將解析的當(dāng)前PCR時(shí)間與上次解析獲取的上次PCR時(shí)間的差值 記為DELTA_PCR ;當(dāng)?shù)谝淮谓馕霁@取PCR時(shí)間的時(shí)候DELTA_PCR為0,以后每次解析完P(guān)CR 時(shí)間后DELTA_PCR等于CUR_PCR減去LAST_PCR ;并設(shè)置一個(gè)PCR時(shí)間突變閾值VALUE。如步驟S112所述,若解析的當(dāng)前PCR時(shí)間與上次PCR時(shí)間差值的絕對(duì)值(| PCR-LAST_PCR |)大于VALUE與DELTA_PCR的乘積,就認(rèn)為當(dāng)前傳輸流發(fā)生了網(wǎng)絡(luò)抖動(dòng)。否 貝U,進(jìn)行步驟S12。如步驟S12所述,在傳輸流解析中,取解析獲得的當(dāng)前音頻PTS時(shí)間為OTR_PTS_ AUDIO,將當(dāng)前音頻PTS時(shí)間與基準(zhǔn)時(shí)間的差值(CUR_PTS_AUDI0_PCR_BASE_0)作為當(dāng)前的 音頻有效時(shí)間戳AUDIO_TIMESTAMP。且,取解析獲得的當(dāng)前視頻PTS時(shí)間為OTR_PTS_VIDE0,將當(dāng)前視頻PTS時(shí)間 與基準(zhǔn)時(shí)間的差值(CUR_PTS_VIDE0_PCR_BASE_0)作為當(dāng)前的視頻有效時(shí)間戳VIDE0_ TIMESTAMP。(參照?qǐng)D 6)參照?qǐng)D7,提出本發(fā)明另一實(shí)施例的一種傳輸流音視頻同步及防抖動(dòng)方法,上述步 驟SllO進(jìn)一步包括步驟S1101、將當(dāng)前節(jié)目時(shí)鐘參考與上次節(jié)目時(shí)鐘參考之差與當(dāng)前的基準(zhǔn)時(shí)間相 加;步驟S1102、設(shè)定兩者之和為更新的基準(zhǔn)時(shí)間。若當(dāng)前傳輸流發(fā)生了網(wǎng)絡(luò)抖動(dòng),DELTA_PCR值保持最近一次計(jì)算獲得的有效值不 變,基準(zhǔn)時(shí)間PCR_BASE_0為通過調(diào)整PCR基準(zhǔn)時(shí)間PCR_BASE_0,通過將PCR_BASE_0加上當(dāng) 前PCR時(shí)間與上次PCR時(shí)間的差值(PCR_BASE_0+ (CRU_PCR-LAST_PCR)),實(shí)現(xiàn)對(duì)基準(zhǔn)時(shí)間的 調(diào)整,以平衡音視頻的抖動(dòng),達(dá)到音視頻同步。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用 本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān) 的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
權(quán)利要求
一種傳輸流音視頻同步及防抖動(dòng)方法,應(yīng)用于傳輸流解析過程中,所述傳輸流包括節(jié)目時(shí)鐘參考、音頻展現(xiàn)時(shí)間戳以及視頻展現(xiàn)時(shí)間戳,其特征在于,所述方法包括步驟將獲取的第一次節(jié)目時(shí)鐘參考設(shè)置為基準(zhǔn)時(shí)間;判斷網(wǎng)絡(luò)是否發(fā)生抖動(dòng);如是,更新基準(zhǔn)時(shí)間;否則,進(jìn)行下一步驟;根據(jù)基準(zhǔn)時(shí)間以及音頻展現(xiàn)時(shí)間戳或者視頻展現(xiàn)時(shí)間戳計(jì)算音頻有效時(shí)間戳或者視頻有效時(shí)間戳。
2.根據(jù)權(quán)利要求1所述的傳輸流音視頻同步及防抖動(dòng)方法,其特征在于,所述判斷網(wǎng) 絡(luò)是否發(fā)生抖動(dòng)的步驟進(jìn)一步包括步驟設(shè)置節(jié)目時(shí)鐘參考的突變閾值;判斷當(dāng)前節(jié)目時(shí)鐘參考與上次節(jié)目時(shí)鐘參考之差的絕對(duì)值是否大于其與突變閾值的 乘積;如是,則發(fā)生抖動(dòng);否則,未發(fā)生抖動(dòng)。
3.根據(jù)權(quán)利要求1所述的傳輸流音視頻同步及防抖動(dòng)方法,其特征在于,所述更新基 準(zhǔn)時(shí)間的步驟進(jìn)一步包括步驟將當(dāng)前節(jié)目時(shí)鐘參考與上次節(jié)目時(shí)鐘參考之差與當(dāng)前的基準(zhǔn)時(shí)間相加;設(shè)定兩者之和為更新的基準(zhǔn)時(shí)間。
4.根據(jù)權(quán)利要求1至3中任意一項(xiàng)所述的傳輸流音視頻同步及防抖動(dòng)方法,其特征在 于,所述音頻有效時(shí)間戳的計(jì)算方式為將音頻展現(xiàn)時(shí)間戳減去基準(zhǔn)時(shí)間。
5.根據(jù)權(quán)利要求1至3中任意一項(xiàng)所述的傳輸流音視頻同步及防抖動(dòng)方法,其特征在 于,所述視頻有效時(shí)間戳的計(jì)算方式為將視頻展現(xiàn)時(shí)間戳減去基準(zhǔn)時(shí)間。
全文摘要
本發(fā)明揭示了一種傳輸流音視頻同步及防抖動(dòng)方法,應(yīng)用于傳輸流解析過程中,所述傳輸流包括節(jié)目時(shí)鐘參考、音頻展現(xiàn)時(shí)間戳以及視頻展現(xiàn)時(shí)間戳,所述方法包括步驟將獲取的第一次節(jié)目時(shí)鐘參考設(shè)置為基準(zhǔn)時(shí)間;判斷網(wǎng)絡(luò)是否發(fā)生抖動(dòng);如是,更新基準(zhǔn)時(shí)間;否則,進(jìn)行下一步驟;根據(jù)基準(zhǔn)時(shí)間以及音頻展現(xiàn)時(shí)間戳或者視頻展現(xiàn)時(shí)間戳計(jì)算音頻有效時(shí)間戳或者視頻有效時(shí)間戳。本發(fā)明的傳輸流音視頻同步及防抖動(dòng)方法,通過在網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí),對(duì)基準(zhǔn)時(shí)間進(jìn)行調(diào)整,實(shí)現(xiàn)對(duì)音視頻有效時(shí)間戳的突變,獲取線性增大的音視頻有效時(shí)間戳,以保證視頻平滑流暢以及音視頻同步,提升網(wǎng)絡(luò)傳輸?shù)目煽啃浴?br>
文檔編號(hào)H04N7/62GK101848396SQ20091018850
公開日2010年9月29日 申請(qǐng)日期2009年11月30日 優(yōu)先權(quán)日2009年11月30日
發(fā)明者胡小華 申請(qǐng)人:深圳市致芯微電子股份有限公司