專利名稱:通過獨立解碼器時鐘來減少媒體流延遲的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本公開涉及數(shù)字媒體傳送,并更具體地,涉及減少媒體流延遲的系統(tǒng)和方法。
背景技術(shù):
現(xiàn)今,越來越多的消費者在其家中具有對因特網(wǎng)的高速或?qū)拵нB接。這些寬帶連 接所提供的增加的帶寬允許向用戶居住地(例如,家庭消費者)傳送數(shù)字電視、視頻以及多 媒體服務(wù)。這些服務(wù)以媒體流的形式在網(wǎng)絡(luò)上傳輸。在用戶居住地,數(shù)字媒體接收機對一 個或多個媒體流解碼。數(shù)字媒體接收機還生成用于由電視或監(jiān)控器顯示的圖像信號。切換 至不同的媒體流將導致在新的流可被解碼和顯示前的有限量延遲。一定量的延遲對于數(shù)字 流是不可避免的,但是消費者更偏好相對較少的延遲。
通過參考下列附圖可更好地理解本公開的多個方面。附圖中的組件并不一定按比 例繪制。重點放在清晰闡釋本公開的原則。圖1是用于同步媒體流的系統(tǒng)和方法的一個實施例所在環(huán)境的框圖。圖2是示出在圖1中的數(shù)字媒體接收機的音頻和視頻幀接收和處理的框圖。圖3是圖1中的數(shù)字媒體接收機中的所選組件的框圖。圖4A到4D示出了在不同時間點圖3中的視頻和音頻解碼器的內(nèi)容,并示出了在 圖3中的ASTC和VSTC響應(yīng)于緩沖器中多個幀的到達如何被調(diào)整。圖5示出了在由圖1中的數(shù)字媒體接收機中的兩個不同解碼器時鐘所導致的播出 行為。圖6是示出了在圖1中的獨立解碼器時鐘產(chǎn)生邏輯的狀態(tài)圖。圖7是圖1中的數(shù)字媒體接收機的一個實施例的框圖。
具體實施例方式鍵這里公開的實施例提供了減少節(jié)目流中的視頻延遲的系統(tǒng)、設(shè)備和方法的實施 例,該節(jié)目流包括視頻和音頻流。一個這樣的實施例是一種方法,該方法包括基于作為音 頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳(presentation timestamp)將音頻參考時鐘設(shè) 置為初始值;基于作為視頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將視頻參考時鐘設(shè)置為 初始值;響應(yīng)于最小緩沖器填充延遲和作為視頻流中第一完整可解碼幀的幀的接收中的較晚者(later),啟動音頻和視頻參考時鐘;根據(jù)音頻參考時鐘對音頻流解碼;以及根據(jù)視頻 參考時鐘對視頻流解碼。一個這樣的數(shù)字媒體回放設(shè)備包括音頻參考時鐘,被配置用于存儲音頻流中的 接收幀的音頻解碼器緩沖器;被配置用于基于每個幀的時間戳與音頻參考時鐘當前值的對 比來對音頻解碼器緩沖器中的幀解碼的音頻解碼器;視頻參考時鐘;被配置用于存儲視頻 流中的接收幀的視頻解碼器緩沖器,視頻流和音頻流組成一個節(jié)目流;被配置用于基于每 個幀的時間戳與視頻參考時鐘的當前值的對比來對視頻解碼器緩沖器中的幀解碼的視頻 解碼器;獨立解碼器時鐘產(chǎn)生邏輯。獨立解碼時鐘產(chǎn)生邏輯被配置用于基于作為音頻流 中的第一可解碼幀的幀的呈現(xiàn)時間戳將音頻參考時鐘設(shè)置為初始值;基于作為視頻流中的 第一可解碼幀的幀的呈現(xiàn)時間戳將視頻參考時鐘設(shè)置為初始值;響應(yīng)于最小緩沖器填充延 遲和作為視頻流中第一完整可解碼幀的幀的接收中的較晚者,啟動音頻和視頻參考時鐘。另一個這樣的數(shù)字媒體回放設(shè)備包括用于生成音頻參考時鐘的裝置;用于緩沖 接收的音頻流中的幀的裝置;用于根據(jù)音頻參考時鐘對音頻解碼器緩沖器中的幀解碼的裝 置;用于生成視頻參考時鐘的裝置;用于緩沖接收的視頻流中的幀的裝置,視頻流和音頻 流組成一個節(jié)目流;用于根據(jù)視頻參考時鐘對視頻解碼器緩沖器中的幀解碼的裝置;用于 基于作為音頻流中的第一可解碼幀的幀的接收設(shè)置音頻參考時鐘的初始值的裝置;用于基 于作為視頻流中的第一可解碼幀的幀的接收設(shè)置視頻參考時鐘的初始值的裝置;以及用于 響應(yīng)于最小緩沖器填充延遲和視頻流中第一完整可解碼幀的接收中的較晚者,啟動音頻和 視頻參考時鐘的裝置。示例性實施例圖1是用于同步媒體流的系統(tǒng)和方法的一個實施例所在環(huán)境的框圖。系統(tǒng)100向 訂戶傳送多個數(shù)字服務(wù),該數(shù)字服務(wù)可包括電視編程、視頻點播、按次計費、音樂、因特網(wǎng)接 入、購物和電話。這些服務(wù)通過使用媒體流被傳送,該媒體流可被提供自多個源。一個諸如 此類的源是媒體源110,該媒體源對來自諸如電纜網(wǎng)絡(luò)或空中電視基站的媒體源的內(nèi)容編 碼。由媒體源110生成的流被捕獲并由頻道變更服務(wù)器120緩存一段時間,以便(在一些 實施例中)提供錯誤恢復(fù)和加速的頻道改變能力。本領(lǐng)域技術(shù)人員應(yīng)當熟悉其他媒體流的源,并且其他媒體流的源意欲在本公開的 范圍內(nèi)。多個媒體流源可位于稱為“頭端”的設(shè)備,該“頭端”由服務(wù)提供商(例如,電纜電 視公司)運營。但是,這些組件并不限于位于該位置。普通的媒體流編碼格式包括MPEG-2、 MPEG-4和VC-1,但是其他編碼格式也被考慮在本公開的范圍內(nèi)。在一些環(huán)境中,已編碼的 媒體流代表單個用戶節(jié)目,因此包括被復(fù)用在一起成為單個節(jié)目傳輸流(SPTS)的視頻基 本流和音頻基本流。媒體流被經(jīng)由網(wǎng)絡(luò)130傳送到一個或多個數(shù)字媒體接收機140。在圖1的示例性 環(huán)境中,網(wǎng)絡(luò)130包括核心/分發(fā)網(wǎng)絡(luò)150和接入網(wǎng)絡(luò)160。多個媒體流被組合并分組到一 個媒體分組流,該媒體分組流具有適合在核心/分發(fā)網(wǎng)絡(luò)150上傳輸?shù)男问健3休d多個目 的地為多個不同訂戶的用戶節(jié)目的媒體分組流在核心/分布網(wǎng)絡(luò)150上傳輸,并被傳送到 多個位于網(wǎng)絡(luò)邊界的交換機170。每個交換機170為特定訂戶選擇承載在媒體分組流中的 節(jié)目子集,并且向那些與交換機170連接的訂戶產(chǎn)生經(jīng)由訂戶連接180傳送的流。在一些 實施例中,經(jīng)傳送的流使用多播地址,但在其他實施例中,可使用單播地址。
數(shù)字媒體接收機140通過訂戶連接180接收承載所選節(jié)目的媒體分組流。數(shù)字媒 體接收機140將媒體分組的流轉(zhuǎn)換成模擬或數(shù)字視頻信號,該信號被提供給顯示器(例如, 電視或計算機監(jiān)視器)以被用戶觀看。數(shù)字媒體接收機140的一些實施例還提供交互特性, 諸如,電子節(jié)目指南(EPG)、網(wǎng)頁瀏覽器或DVR(數(shù)字視頻記錄器)功能。在一些實施例中, 數(shù)字媒體接收機140使用機頂盒的形式。在其他實施例中,數(shù)字媒體接收機140由個人計 算機(PC)實現(xiàn)。術(shù)語“數(shù)字媒體接收機”可延伸到其他包含接收和處理壓縮的數(shù)字視頻流 的能力的其他類型的接收機。其他類型的接收機的示例包括與承載媒體分組流的傳輸頻 道相耦合的手持和/或移動接收機;具有視頻服務(wù)能力的接收機(VSER);以及其他諸如媒 體播放器的電子設(shè)備。如前所述,節(jié)目流的子集由交換機170選擇以傳送至特定訂戶位置。這些節(jié)目流 中的每一個可被看作承載于不同的邏輯頻道。數(shù)字媒體接收機140與頻道變更服務(wù)器120 通信以請求特定的節(jié)目流或邏輯頻道被包括在由訂戶接收的媒體分組流中。例如,數(shù)字媒 體接收機140響應(yīng)于將要觀看FOX網(wǎng)絡(luò)的用戶請求向頻道變更服務(wù)120請求頻道變更,并 以FOX作為目標頻道。在一些實施例中,在數(shù)字媒體接收機140中的頻道變更邏輯與頻道 變更服務(wù)器120和數(shù)字媒體接收器140中的解碼器交互以從一個流切換到另一個。雖然此處使用了術(shù)語“頻道變更”,但該術(shù)語不限于用戶請求。該術(shù)語還意欲覆蓋 非用戶發(fā)起的請求(例如,在特定時間變更到一邏輯頻道以進行記錄或觀看的自動變更)。 術(shù)語“頻道”并不限于傳統(tǒng)的電視頻道,而是包括任何與特定媒體內(nèi)容示例或服務(wù)相關(guān)聯(lián)的 流。頻道變更(或其他流轉(zhuǎn)換事件)使得數(shù)字媒體接收機140開始對不同的流解碼。 作為其結(jié)果,在新的流可被解碼和顯示之前,會發(fā)生一定量的延遲。數(shù)字媒體接收機140包 括獨立解碼器時鐘邏輯190,該時鐘邏輯實現(xiàn)用于通過獨立解碼器時鐘來減少媒體流延遲 的系統(tǒng)和/或方法?,F(xiàn)在將呈現(xiàn)時間戳和時鐘產(chǎn)生(clocking)的簡要概述,并且將參考圖 2、圖3、圖4A到4D、圖5、圖6和圖7進一步描述邏輯190。節(jié)目流一般包括視頻流和相應(yīng)的音頻流。這兩種流在系統(tǒng)中經(jīng)歷不同量的延遲或 等待時間。與視頻和音頻流中的時間戳相組合的所發(fā)送參考時鐘允許在數(shù)字媒體接收機 140處對兩個流進行同步。媒體源110生成參考時鐘,并周期性地以節(jié)目時鐘參考(PCR)或 系統(tǒng)時鐘參考(SCR)的形式向所發(fā)送的流插入時間戳。數(shù)字媒體接收機140通過使用本地 振蕩器恢復(fù)時鐘參考,該本地振蕩器由接收自媒體源110的時鐘參考(PCR/SCR)校正?;?復(fù)的時鐘可稱為系統(tǒng)時間時鐘(STC)。媒體源110還向視頻和音頻流中插入解碼和呈現(xiàn)時 間戳(DTS/PTS)。解碼時間戳(DTS)判定該幀何時將被提供給解碼器用以解碼,而呈現(xiàn)時間 戳(PTS)判定解碼器何時輸出該幀以用以顯示。在本公開中,術(shù)語“時間戳”可指DTS、PTS 或二者?,F(xiàn)在將參照圖2描述利用獨立解碼器時鐘邏輯190來減少媒體流延遲的技術(shù)。通 過參照時間線200將闡釋在數(shù)字媒體接收機140處的音頻和視頻接收和處理。雖然刻度不 需要是線性的,但是最早的時間點出現(xiàn)在時間線200的左端。因為視頻處理通常比音頻處 理占用時間長,所以數(shù)字媒體接收機140通常需要緩沖比音頻時間長的視頻。作為此要求 的結(jié)果,媒體源110在相應(yīng)的或相匹配的音頻幀220之前發(fā)送第一參考視頻幀210。但是, 視頻幀210和音頻幀220在同時被呈現(xiàn),因為它們具有相同的PTS值(并因此被同步)。這意味著開始與第一視頻幀210同時被接收的第一音頻幀230具有比第一視頻幀210小的 PTS值-在音頻幀220之前接收的所有音頻幀(未示出)也如此。換句話說,那些音頻幀相 對于第一視頻幀210是晚的。因此,當使用傳統(tǒng)解碼器時鐘產(chǎn)生技術(shù)時,該超前/延遲將導 致用于視頻幀的PTS與用于音頻幀的PTS之間的初始差(D,PTS)。與傳統(tǒng)系統(tǒng)相比,這里公 開的系統(tǒng)和方法通過在數(shù)字媒體接收機140中為視頻和音頻解碼器使用單獨的參考時鐘 來減小D,PTS。時鐘產(chǎn)生的細節(jié)將參考圖3、圖4A到4D、圖5和圖6描述,但總體方案將參考 圖2中的時間線200來描述。當接收到第一節(jié)目時鐘參考240時,數(shù)字媒體接收機140中的視頻和音頻解碼器 時鐘并未啟動(這與傳統(tǒng)時鐘產(chǎn)生方案不同)。相反,當接收到用于第一可解碼音頻幀250 的PTS時,音頻系統(tǒng)時間時鐘(ASTC)被初始化-但未啟動。當接收到可用于第一可解碼視 頻幀260的PTS時,視頻STC (VSTC)被初始化-但未啟動。當滿足兩個條件時,ASTC和VSTC 二者均被啟動。首先,最小所需音頻緩沖延遲04已自流緩沖的開始傳遞。該延遲Da允許音 頻解碼器緩沖器水平建立至合適的欠載運行(imderrim)闕值,其中,Da的值依賴于內(nèi)容和 網(wǎng)絡(luò)的多個特征(例如,壓縮度、網(wǎng)絡(luò)抖動,等等)。ASTC和VSTC啟動運行所需的第二個條 件是已經(jīng)過了延遲Dkef,該延遲開始于VSTC被初始化的時間點。該延遲等同于完整接收第 一可解碼視頻幀到視頻解碼器緩沖器中的時間。在一些實施例中,該延遲是依賴于數(shù)據(jù)的, 并且,當整個I-幀被接收到解碼器緩沖器中或者從解碼器緩沖器取得時,向獨立解碼器時 鐘產(chǎn)生邏輯190告知。在其他實施例中,邏輯190依賴于基于一組圖片的典型大小的預(yù)計 算延遲。當滿足這些條件時,兩個解碼器時鐘被同時啟動,其中VSTC以低于ASTC的速率運 行。在一些實施例中,VSTC以ASTC大約80%的速率運行,但是其他比例也是可能的。當 ASTC跟上VSTC時,VSTC速率被調(diào)整以與ASTC匹配。如果在經(jīng)過時間Dkef時,Da也已經(jīng)過, 則ASTC的初始值被遞增過沖音頻延遲D,a(Da經(jīng)過時間與Dkef經(jīng)過時間之差)。因為在該 情況下,最小音頻緩沖延時Da已被滿足,該遞增通過自開始丟棄 ΔΑ量的音頻緩沖而防止了 音頻被緩沖超過所需的時間。該增量還最小化了 VSTC和ASTC的初始值的差異,從而允許 ASTC更快地趕上VSTC。應(yīng)注意到,因為兩個STC沒有等待D,PTS (即,用于與第一視頻幀210 匹配的音頻幀220到達數(shù)字媒體接收機140)就在同時啟動,所以與傳統(tǒng)解碼器相比,獨立 解碼器時鐘產(chǎn)生邏輯190減少了初始視頻緩沖延遲,減少量為D,pts-D,a(當 ΔΑ為零時,其 等同于D綜上所述,數(shù)字媒體接收機140為視頻和音頻解碼器使用單獨的參考時鐘。視頻 和音頻幀隨即以其各自參考時鐘確定的速率從其各自的緩沖器中被消耗,其中,這兩個速 率不同。視頻解碼器在代表比音頻解碼器初始時間值晚的時間值被初始化,并且兩個時鐘 被同時啟動。因此,視頻時鐘在音頻時鐘之前的位置啟動,這意味著視頻呈現(xiàn)開始于音頻展 示之前的位置。但是,視頻時鐘速率被設(shè)置為比音頻時鐘速率慢,因此,音頻流在某一點“趕 上”視頻流。在該點處,視頻解碼器時鐘速度被增加以匹配音頻解碼器時鐘速度,并且二者 以同一速率運行。圖3是數(shù)字媒體接收機140中所選組件的框圖。包括不同流類型的數(shù)字媒體傳輸 流305被提供給傳輸流解復(fù)用器/解析器310。解復(fù)用器310通過承載在流305內(nèi)的節(jié)目 標識符(PID)來識別音頻和視頻流。來自流305的視頻幀315被存儲在視頻解碼器緩沖器320中,然后被視頻解碼器325解碼。來自流305的音頻幀330被存儲在音頻解碼器緩沖器 335中,然后被音頻解碼器340解碼。在解碼后,音頻數(shù)據(jù)345被作為輸出提供給揚聲器,并 且視頻數(shù)據(jù)350被作為輸出提供給顯示器。在圖3的實施例中,數(shù)據(jù)通過轉(zhuǎn)換器355被轉(zhuǎn) 換成模擬數(shù)據(jù),但此轉(zhuǎn)換是可選的。在解碼器流水線中的多個組件的操作可通過控制處理 器360被協(xié)調(diào)。解復(fù)用器/解析器310還執(zhí)行解析功能,即從傳輸流分組抽取節(jié)目時鐘參考 (PCR),并從分組化基本流(PES)分組中抽取時間戳(DTS和/或PTS)。接收機時鐘365被 本地振蕩器(未示出)所控制,并且PCR值370被用于校正相對于發(fā)射機時鐘的相位錯誤。 獨立解碼器時鐘產(chǎn)生邏輯190還接收多個來自解復(fù)用器310的控制信號375,該控制信號指 示多個類型幀的到達并驅(qū)動邏輯190的行為(如上結(jié)合圖2所述)-例如,新的流、第一PCR、 第一音頻PTS、第一音頻幀、第一視頻PTS、第一可解碼視頻幀的啟動、第一可解碼視頻幀的 結(jié)束,等等。與適當?shù)目刂菩盘?75 —起,邏輯190還從解復(fù)用器310接收時間戳380 (DTS 和/或PTS)。音頻解碼器340由自ASTC寄存器385拉出的音頻時鐘值驅(qū)動,并且視頻解碼 器325由自VSTC寄存器390拉出的視頻時鐘值驅(qū)動,其中,那些寄存器被初始化并且啟動 計數(shù),如先前結(jié)合圖2所述。邏輯190還包括多個參數(shù)(例如,相對音頻延遲04、過沖音頻 延遲 ΔΑ、VSTC速率和ASTC速率(未示出))?,F(xiàn)在將描述數(shù)字媒體接收機140的操作。圖4A到4D示出了在不同時間點視頻解 碼器緩沖器320和音頻解碼器緩沖器335的內(nèi)容,并示出了響應(yīng)于緩沖器中多個幀的到達、 在ASTC 385和VSTC 390中的值如何被調(diào)整。圖5示出了由兩個不同解碼器時鐘所得的播 出行為。在圖4A到4D和圖5中,示出了具有同樣PTS值(S卩,那些對觀看者顯示為“已同 步的”(lip sync' ed)值)的音頻幀和視頻幀,并用一直線連接兩個幀。圖4A描述了在新的流剛被獲取后(例如,作為頻道變更的結(jié)果)的數(shù)字媒體流。 ASTC 385和VSTC 390還未被初始化,并且不在運行。(在一些實施例中,時鐘先前運行以 對前一流解碼,在檢測到新流后,兩個時鐘被停止。)在該流剛被獲取后,第一音頻幀到達 音頻解碼器緩沖器335。帶有PTS(Al)的第一可解碼音頻幀的到達觸發(fā)了 ASTC 385的初 始化,該ASTC 385被設(shè)置到PTS。因此,在此示例中,ASTC 385被設(shè)置為Al的PTS。雖然 ASTC 385已被初始化,但時鐘還未被啟動。(下面將描述啟動ASTC 385的條件)。應(yīng)當注 意的是,在大多數(shù)編碼方案中,所有音頻幀都是可解碼的,但是這里描述的技術(shù)還覆蓋允許 不可解碼音頻幀的編碼方案。接下來,接收到另一音頻幀A2。在此時,音頻解碼器緩沖器 335包括Al和A2,而視頻解碼器緩沖器320是空的。圖4B描述了在較晚時間點的數(shù)字媒體流,此時第一參考視頻幀開始到達視頻解 碼器緩沖器320。到此時,音頻解碼器緩沖器335包括Al至A5,并且視頻解碼器緩沖器320 包括完整的幀Vl和V2 (B-幀)、V3 (P-幀)和V4 (I-幀)的開始。V4是I-幀,即第一可解 碼視頻幀,并且用于該第一可解碼視頻幀的PTS的到達通過獨立解碼器時鐘產(chǎn)生邏輯190 觸發(fā)了 VSTC 390的初始化。VSTC 390被設(shè)置為所接收的第一可解碼視頻幀的PTS。在此示 例中,VSTC 390被設(shè)置為I-幀V4的PTS。雖然VSTC390已被初始化,但是時鐘并未啟動。 (下面將描述啟動VSTC 390的條件)。應(yīng)當注意的是,在音頻幀Al和任意視頻幀或音頻幀A2和任意視頻幀間沒有連線。 雖然Al和A2與Vl和V2同時存在緩沖器中,但是并不意味著Al和A2與Vl和V2被同時呈現(xiàn)。這是一個典型行為同時回放的視頻和音頻一般并不同時出現(xiàn)在已接收的數(shù)據(jù)流中。 相反,視頻幀一般出現(xiàn)在所接收的數(shù)據(jù)流中早于那些具有相同PTS的音頻幀的位置,因為 視頻需要更長的時間來緩沖。圖4C描述了在較晚時間點的數(shù)字媒體流,這時音頻解碼器緩沖器335被以最小水 平填充(由PCR和音頻PTS間的偏移決定)。該偏移是固定值,一般在100毫秒的數(shù)量級, 因此最小值可以是任何比該固定值大的值。當音頻緩沖器達到此最小值,獨立解碼器時鐘 產(chǎn)生邏輯190確定第一可解碼視頻幀是否已被完全接收到視頻解碼器緩沖器320中。在圖 4C的示例情景中,第一可解碼視頻幀V4僅被部分接收(由V4左側(cè)邊界的虛線表示)。因 此,獨立解碼器時鐘產(chǎn)生邏輯190并不啟動ASTC 385和VSTC 390。但是,如果視頻幀已被 完全接收,則邏輯190將同時使能ASTC 385和VSTC 390。如果第一可解碼視頻幀未被完全接收,則邏輯190等待額外量 ΔΑ,直到第一可解 碼視頻幀被完全接收為止,并且使ASTC 385遞增此額外等待量以保持原始音頻緩沖量。然 后,邏輯190同時使能ASTC 385和VSTC 390。圖4D描述了在較晚時間點的數(shù)字媒體流,此時第一可解碼視頻流已被完全接 收。音頻解碼器緩沖器現(xiàn)在包括Al到Α10。視頻解碼器緩沖器包括完整幀Vl (B-幀)、 V2 (B-幀)、V3 (P-幀)和V4 (I-幀)。因為第一可解碼視頻幀被完全接收,所以獨立解碼器時 鐘產(chǎn)生邏輯190將ASTC 385提前 ΔΑ(以保持原始最小音頻緩沖量),并隨即啟動ASTC385 和VSTC 390。因為ASTC 385在圖4Α中被首先初始化為Al. PTS,所以在此情形下,ASTC自 A1.PTS+D,a的初始值開始計數(shù)(即,周期性遞增),其等同于A3.PTS。VSTC 390自初始值 V4. PTS開始計數(shù)(即,周期性遞增)。如前所述,獨立解碼器時鐘產(chǎn)生邏輯190首先配置VSTC 390以比ASTC 385低的 速率運行,以允許音頻流(相對于視頻流其啟動滯后)可趕上視頻流。邏輯190的一些實 現(xiàn)方式使用兩個由來自單個物理計時器的中斷所遞增的虛擬寄存器來部分地以軟件實現(xiàn) VSTC 390和ASTC 385。這些寄存器被分別用作VSTC 390和ASTC 385的源。通過調(diào)整發(fā) 生在每個計時器中斷的遞增量,VSTC 390和ASTC 385的速率可相對彼此發(fā)生變更。其他 實現(xiàn)方式使用兩個硬件計時器,該計時器可從公用時鐘得到?,F(xiàn)在將通過圖5描述兩個流的播出行為。音頻幀的呈現(xiàn)時間與運行的ASTC 385 一起被示出。視頻幀的呈現(xiàn)時間與運行的VSTC 390 —起被示出。在此圖中,最早的時間點 在右側(cè)。如前所述,與ASTC 385相比,VSTC 390以降低的速率運行,因此,VSTC 390的時鐘 周期比ASTC 385的時鐘周期長。 要呈現(xiàn)的第一視頻幀是V4 (幀Vl到V3被接收,但是不能在參考幀之前被呈現(xiàn))。 同時,音頻幀A3和A4被呈現(xiàn)。(幀Al和A2不能被呈現(xiàn),因為ASTC已經(jīng)被提前超過了這 兩幀的PTS)。但是,對應(yīng)于V4的音頻幀是A9和A10。(該對應(yīng)關(guān)系已在先前的圖4C中示 出,并且在圖4D中再次用一直線連接A9到V4,并用另一直線連接AlO到V4。)因此,當看 到V4并聽到A3時,用戶感受到幀是非同步的。隨著接下來幾個視頻幀被從緩沖器中呈現(xiàn), 用戶還是感覺到幀是非同步的,并且,音頻滯后于視頻。但是,因為視頻幀被以比音頻幀低 的速率呈現(xiàn),所以音頻流直到V8被呈現(xiàn)的時候趕上視頻流。該行為通過V8和A18間的垂 線于圖5示出。 獨立解碼器時鐘產(chǎn)生邏輯190追蹤VSTC和ASTC值間的差異。當二者相等時,邏
10輯190調(diào)整VSTC 390的速率以與ASTC 385的速率匹配。在那之后,兩個解碼器時鐘以相 同的速率運行。如果發(fā)生另一頻道變更,則邏輯190被再次調(diào)用以停止解碼器時鐘的運行, 基于接收自解碼器緩沖器的幀來重新初始化時鐘,并基于接收幀再次啟動時鐘。因此,獨立解碼器時鐘產(chǎn)生邏輯190的總體效果可被概括如下。在初始緩沖延遲 后,視頻和音頻流開始在同一時間播放。因為編碼器首先發(fā)送視頻(相對于其對應(yīng)的音 頻),所以音頻最初滯后于視頻,并且觀看者經(jīng)歷不同步的音頻和視頻。但是,因為視頻以更 低的速率播出,所以,音頻在某點處趕上視頻,并且用戶經(jīng)歷同步流。一旦此同步被建立,則 音頻和視頻保持同步,因而頻道變更的影響消失了。該方法通過大約等同于音頻和視頻時間差的量來改善初始視頻緩沖時間。另外, 該緩沖時間在慢回放階段被反向獲得,因為在視頻緩沖器中的數(shù)據(jù)水平逐漸增長。因此,一 旦音頻和視頻流間的同步被建立且視頻回放速率增加到正常速率(即,與音頻速率相同), 在視頻解碼器緩沖器320中的水平就達到其視頻回放先前未啟動時應(yīng)達到的水平。圖6是示出獨立解碼器時鐘產(chǎn)生邏輯190的狀態(tài)圖。在接收到新流的開始時(事 件602),邏輯190移動到初始狀態(tài)605。自初始狀態(tài)605,當接收到用于第一可解碼音頻幀 的PTS時(事件615),邏輯190轉(zhuǎn)換到狀態(tài)610并初始化ASTC 385。自狀態(tài)610,當接收到 用于第一可解碼視頻幀的PTS時(事件625),邏輯190轉(zhuǎn)換到狀態(tài)620并初始化VSTC 390。 可替換地,當在初始狀態(tài)605中接收到用于第一可解碼視頻幀的PTS時(625),邏輯190轉(zhuǎn) 換到狀態(tài)630并初始化VSTC 390,然后,當接收到用于第一可解碼音頻幀的PTS時(事件 615),邏輯190轉(zhuǎn)換到狀態(tài)635并初始化ASTC 385。從狀態(tài)620或狀態(tài)635,獨立解碼器時鐘產(chǎn)生邏輯190無條件地轉(zhuǎn)換到狀態(tài)640。 最小音頻緩沖器填充延遲的期滿(事件645)導致從狀態(tài)640轉(zhuǎn)換到狀態(tài)650。自狀態(tài)650, 當接收到第一完整可解碼視頻幀時(事件660),邏輯190轉(zhuǎn)換到狀態(tài)655并啟動ASTC 385 和VSTC 390 二者??商鎿Q地,如果在狀態(tài)640中接收到第一完整可解碼視頻幀(事件660), 則邏輯190轉(zhuǎn)換到狀態(tài)665,并當最小音頻緩沖器填充延遲期滿時(事件645)從狀態(tài)665 轉(zhuǎn)換到狀態(tài)655 (其中ASTC 385和VSTC 390被啟動)。邏輯190無條件地從狀態(tài)655移動 到狀態(tài)670,在670解碼開始。最后,當新流開始時(事件602),邏輯190返回到初始狀態(tài) 605。獨立解碼器時鐘產(chǎn)生邏輯190可被應(yīng)用于任何接收已編碼的視頻流和相應(yīng)的已 編碼音頻流的數(shù)字媒體接收機中。此設(shè)備的示例包括機頂盒、個人視頻記錄器、家庭媒體 中心、居住地網(wǎng)關(guān)、與傳輸信道耦合的手持和/或移動接收機、具有視頻服務(wù)能力的接收機 (VSER)、以及諸如媒體播放器的其他電子設(shè)備。圖7是數(shù)字媒體接收機140的實施例的框圖。數(shù)字媒體接收機140包括多個在計 算機領(lǐng)域已知的組件,包括處理器710、存儲器720、網(wǎng)絡(luò)接口 730、外圍輸入輸出(I/O)接口 740、解碼器750、以及輸出子系統(tǒng)760。一些實施例還包括存儲設(shè)備770 (例如,非易失性存 儲器或磁盤驅(qū)動器)。這些組件通過總線780耦合。圖7中忽略了多個在說明數(shù)字媒體接 收機140的操作時并不必需的常規(guī)組件。外圍I/O接口 740提供輸入和輸出信號,例如,來自遙控器或前端面板按鈕或鍵盤 的用戶輸入,以及在前端面板上的諸如LED或LCD的輸出。網(wǎng)絡(luò)接口 730接收流。解碼器 750將進入的視頻流解碼為已解碼的視頻流,并將進入的音頻流解碼為已解碼的音頻流。輸出子系統(tǒng)760將已解碼的視頻幀轉(zhuǎn)換為用于計算機監(jiān)視器或電視顯示的視頻信號,并將已 解碼的音頻幀轉(zhuǎn)換為通過揚聲器播放的音頻信號。如前所述,數(shù)字媒體接收機140經(jīng)由網(wǎng)絡(luò)接口 730接收數(shù)字視頻流。在一些實施 例中,這是本地局域網(wǎng)(LAN)接口或諸如因特網(wǎng)的廣域網(wǎng)(WAN)接口。在其他實施例中,網(wǎng) 絡(luò)接口 730連接到射頻(RF)網(wǎng)絡(luò),并且在此實施例中,數(shù)字媒體接收機140可包括處理接 收自RF網(wǎng)絡(luò)的數(shù)字信號的調(diào)諧器/解調(diào)器(未示出)。如圖7所示,獨立解碼器時鐘產(chǎn)生邏輯190可以硬件實現(xiàn),或者可以作為指令駐 留在存儲器720中,該指令在被處理器710執(zhí)行時實現(xiàn)通過獨立解碼器時鐘來減少媒體流 延遲的系統(tǒng)和方法。硬件實現(xiàn)方式包括(但不限于)可編程邏輯設(shè)備(PLD)、可編程門陣 列(PGA)、現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、片上系統(tǒng)(SoC)、以及封裝系統(tǒng) (SiP) 0另外,獨立解碼器時鐘產(chǎn)生邏輯190可以硬件邏輯和處理器可執(zhí)行指令(軟件)的 結(jié)合來實現(xiàn)。獨立解碼器時鐘產(chǎn)生邏輯190可實現(xiàn)在任意計算機可讀介質(zhì)中,以供指令執(zhí)行系 統(tǒng)、裝置或設(shè)備使用或者連接到指令執(zhí)行系統(tǒng)、裝置或設(shè)備。這樣的指令執(zhí)行系統(tǒng)包括任意 基于計算機的系統(tǒng)、包括處理器的系統(tǒng)、或者其他可從指令執(zhí)行系統(tǒng)獲取并執(zhí)行指令的系 統(tǒng)。在本公開的上下文中,“計算機可讀介質(zhì)”可以是任何可包含、存儲、通信、傳播或傳輸程 序的裝置,該裝置被指令執(zhí)行系統(tǒng)使用或與之連接。例如,計算機可讀介質(zhì)可以是(但不限 于)基于電子、磁、光學、電磁、紅外或半導體技術(shù)的系統(tǒng)。使用電子技術(shù)的計算機可讀介質(zhì)的具體示例包括(但不限于)下述隨即存取存 儲器(RAM)、只讀存儲器(ROM)、可擦寫可編程只讀存儲器(EPR0M或閃存)。使用磁技術(shù)的 具體示例包括(但不限于)便攜式計算機磁盤。使用光技術(shù)的具體示例包括(但不限于) 致密盤(⑶)和數(shù)字視頻盤(DVD)。此處示出的任意軟件組件是被選擇用于示出在此處公開的獨立解碼器時鐘產(chǎn)生 邏輯190中功能是如何在各組件間分配的抽象物。其他功能劃分也是可能的,并且這些其 他可能意欲在本公開的范圍內(nèi)。另外,就具體數(shù)字結(jié)構(gòu)(例如,陣列、表、標識、指針、集合 等)描述的軟件組件而言,也可使用其他提供相似功能的數(shù)字結(jié)構(gòu)。此處包括的任意軟件組件以代碼和數(shù)據(jù)的方式描述,而不是參考執(zhí)行該代碼的特 定硬件設(shè)備。另外,就以面向?qū)ο蟮男g(shù)語描述的系統(tǒng)和方法而言,并不一定要求系統(tǒng)和方法 以面向?qū)ο蟮恼Z言實現(xiàn)。相反,系統(tǒng)和方法可以任何編程語言實現(xiàn),并在任意硬件平臺上執(zhí) 行。此處指的任意軟件組件包括被封裝的可執(zhí)行代碼,例如,作為獨立可執(zhí)行文件、 庫、共享庫、可載入模塊、驅(qū)動器、或集群、以及已封裝的解釋碼(例如作為一類)。一般而 言,系統(tǒng)和方法所使用的用于減少媒體流延遲的組件在此處以代碼和數(shù)據(jù)方面進行描述, 而非參考執(zhí)行該代碼的特定硬件設(shè)備。另外,系統(tǒng)和方法可以任意編程語言實現(xiàn),并在任意 硬件平臺上被執(zhí)行。根據(jù)此處公開的實施例,此處的流程圖、消息圖、狀態(tài)圖和/或數(shù)據(jù)流圖提供了通 過獨立解碼器時鐘來減少媒體流延遲的系統(tǒng)和方法的操作的示例。可替換地,這些圖可被 看作是描述了由獨立解碼器時鐘產(chǎn)生邏輯190實現(xiàn)的方法的示例性動作。這些圖中的框代 表流程、功能、模塊或部分代碼,該代碼包括一個或多個用于實現(xiàn)處理中邏輯功能或步驟的可執(zhí)行指令。可替換實現(xiàn)方式也包含在本公開的范圍內(nèi)。在這些可替換實現(xiàn)方式中,功能 可被以與示出的或討論的顛倒的次序執(zhí)行,包括實質(zhì)同時或以相反次序進行,這依賴于所 涉及的功能。前述描述出于說明和描述目的已被呈現(xiàn)。并不意欲窮盡或限制本公開于所公 開的精確形式。根據(jù)上述教導,可以進行明顯的變更或改變。但是,所討論的實現(xiàn)方式被選 擇和描述以示出本公開的原則和其實際應(yīng)用,從而使本領(lǐng)域技術(shù)人員可在多個實現(xiàn)方式和 更改(適于所考慮的特定用途)中利用本公開。所有此類更改和改變在由權(quán)利要求確定的 根據(jù)其公平合法地賦予權(quán)力而解釋的本公開的范圍內(nèi)。
權(quán)利要求
一種減少節(jié)目流中的視頻延遲的方法,該節(jié)目流包括視頻流和音頻流,該方法包括,基于作為所述音頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將音頻參考時鐘設(shè)置為初始值;基于作為所述視頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將視頻參考時鐘設(shè)置為初始值;響應(yīng)于最小緩沖器填充延遲和作為所述視頻流中第一完整可解碼幀的幀的接收中的較晚者,啟動音頻和視頻參考時鐘;根據(jù)所述音頻參考時鐘對所述音頻流解碼;以及根據(jù)所述視頻參考時鐘對所述視頻流解碼。
2.如權(quán)利要求1所述的方法,還包括最初設(shè)置所述視頻參考時鐘的速率慢于所述音頻參考時鐘的速率。
3.如權(quán)利要求1所述的系統(tǒng),還包括響應(yīng)于所述視頻參考時鐘的當前值與所述音頻參考時鐘的當前值相同,設(shè)置所述視頻 參考時鐘的速率等于所述音頻參考時鐘的速率。
4.如權(quán)利要求1所述的方法,其中,所述音頻參考時鐘的初始值等于所述音頻流中的 第一可解碼幀的呈現(xiàn)時間戳值。
5.如權(quán)利要求1所述的方法,其中,所述視頻參考時鐘的初始值等于所述視頻流中的 第一可解碼幀的呈現(xiàn)時間戳值。
6.如權(quán)利要求1所述的方法,其中,設(shè)置所述視頻參考時鐘的步驟響應(yīng)于所述視頻流 中的第一可解碼幀的呈現(xiàn)時間戳的接收。
7.如權(quán)利要求1所述的方法,其中,設(shè)置所述音頻參考時鐘的步驟響應(yīng)于所述音頻流 中的第一可解碼幀的呈現(xiàn)時間戳的接收。
8.如權(quán)利要求1所述的方法,還包括在延遲Dkef期滿后,如果已經(jīng)過了延遲Da,則以過沖音頻延遲 ΔΑ遞增所述音頻參考時 鐘的初始值,其中,所述過沖音頻延遲 ΔΑ是Da經(jīng)過時間與Dkef經(jīng)過時間之差, 其中,Deef是所述視頻參考時鐘的設(shè)置值與完全接收作為所述第一可解碼視頻幀的幀 到視頻解碼器緩沖器中所需的時間之差,并且 其中,Da是最小音頻緩沖延遲。
9.一種數(shù)字媒體回放設(shè)備,包括 音頻參考時鐘;音頻解碼器緩沖器,被配置用于存儲音頻流中的接收幀;音頻解碼器,被配置用于基于每個幀的時間戳與所述音頻參考時鐘的當前值的對比來 不時地對所述音頻解碼器緩沖器中的幀解碼; 視頻參考時鐘;視頻解碼器緩沖器,被配置用于存儲視頻流中的接收幀,所述視頻流和所述音頻流組 成一個節(jié)目流;視頻解碼器,被配置用于基于每個幀的時間戳與所述視頻參考時鐘的當前值的對比來 不時地對所述視頻解碼器緩沖器中的幀解碼;獨立解碼器時鐘產(chǎn)生邏輯,被配置用于基于作為所述音頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將所述音頻參考時鐘設(shè)置 為初始值;基于作為所述視頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將所述視頻參考時鐘設(shè)置 為初始值;以及響應(yīng)于最小緩沖器填充延遲和作為所述視頻流中第一完整可解碼幀的幀的接收中的 較晚者,啟動所述音頻和視頻參考時鐘。
10.如權(quán)利要求9所述的設(shè)備,還包括頻道變更請求邏輯,其中,設(shè)置所述音頻和視頻 參考時鐘的步驟是響應(yīng)于所述頻道變更請求邏輯的。
11.如權(quán)利要求9所述的設(shè)備,還包括用于最初設(shè)置所述視頻參考時鐘的速率慢于所述音頻參考時鐘的速率的邏輯。
12.如權(quán)利要求9所述的設(shè)備,還包括用于響應(yīng)于所述視頻參考時鐘的當前值與所述音頻參考時鐘的當前值相同而設(shè)置所 述視頻參考時鐘的速率等于所述音頻參考時鐘的速率的邏輯。
13.如權(quán)利要求9所述的設(shè)備,其中,所述音頻參考時鐘的初始值是所述音頻流中的第 一可解碼幀的呈現(xiàn)時間戳值。
14.如權(quán)利要求9所述的設(shè)備,其中,所述視頻參考時鐘的初始值等于所述視頻流中的 第一可解碼幀的呈現(xiàn)時間戳值。
15.如權(quán)利要求9所述的設(shè)備,其中,被配置用于設(shè)置所述視頻參考時鐘的邏輯響應(yīng)于 所述視頻流中的第一可解碼幀的呈現(xiàn)時間戳的接收。
16.如權(quán)利要求9所述的設(shè)備,其中,被配置用于設(shè)置所述音頻參考時鐘的邏輯響應(yīng)于 所述音頻流中的第一可解碼幀的呈現(xiàn)時間戳的接收。
17.一種數(shù)字媒體回放設(shè)備,包括用于生成音頻參考時鐘的裝置;用于緩沖接收的音頻流中的幀的裝置;用于根據(jù)所述音頻參考時鐘對音頻解碼器緩沖器中的幀解碼的裝置;用于生成視頻參考時鐘的裝置;用于緩沖接收的視頻流中的幀的裝置,所述視頻流和所述音頻流組成一個節(jié)目流;用于根據(jù)所述視頻參考時鐘對視頻解碼器緩沖器中的幀解碼的裝置;用于基于作為所述音頻流中的第一可解碼幀的幀的接收設(shè)置所述音頻參考時鐘的初 始值的裝置;用于基于作為所述視頻流中的第一可解碼幀的幀的接收設(shè)置所述視頻參考時鐘的初 始值的裝置;以及用于響應(yīng)于最小緩沖器填充延遲和所述視頻流中第一完整可解碼幀的接收中的較晚 者,啟動所述音頻和視頻參考時鐘的裝置。
18.如權(quán)利要求17所述的設(shè)備,還包括用于最初將所述視頻參考時鐘的速率設(shè)置為慢于所述音頻參考時鐘的速率的裝置。
19.如權(quán)利要求17所述的設(shè)備,還包括用于響應(yīng)于所述視頻參考時鐘的當前值與所述音頻參考時鐘的當前值相同而設(shè)置所述視頻參考時鐘的速率等于所述音頻參考時鐘的速率的裝置。
20.如權(quán)利要求17所述的設(shè)備,其中,用于生成音頻參考時鐘的裝置響應(yīng)于接收的音頻流中的時間戳,并且, 用于生成視頻參考時鐘的裝置響應(yīng)于接收的視頻流中的時間戳。
全文摘要
在一個實施例中,一種減少節(jié)目流中的視頻延遲的方法,包括基于作為音頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將音頻參考時鐘設(shè)置為初始值;基于作為視頻流中的第一可解碼幀的幀的呈現(xiàn)時間戳將視頻參考時鐘設(shè)置為初始值;響應(yīng)于最小緩沖器填充延遲和作為視頻流中第一完整可解碼幀的幀的接收中的較晚者,啟動音頻和視頻參考時鐘;根據(jù)音頻參考時鐘解碼音頻流;根據(jù)視頻參考時鐘解碼視頻流;最初設(shè)置視頻參考時鐘的速率慢于音頻參考時鐘的速率;響應(yīng)于視頻參考時鐘的當前值與音頻參考時鐘的當前值相同,設(shè)置視頻參考時鐘的速率等于音頻參考時鐘的速率。
文檔編號H04N7/26GK101889451SQ200880119372
公開日2010年11月17日 申請日期2008年12月5日 優(yōu)先權(quán)日2007年12月5日
發(fā)明者坦庫特·阿珂古爾 申請人:思科技術(shù)公司