欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于音頻與視頻同步的技術(shù)的制作方法

文檔序號:7978022閱讀:370來源:國知局
用于音頻與視頻同步的技術(shù)的制作方法
【專利摘要】描述了用于確定流是否處于穩(wěn)定狀態(tài)并且當(dāng)該流處于穩(wěn)定狀態(tài)時(shí)允許對PTS值的調(diào)整的技術(shù)。當(dāng)在一段時(shí)間期間接收到的PTS值不發(fā)生意外變化時(shí),該流會(huì)處于穩(wěn)定狀態(tài)。例如,當(dāng)流處于穩(wěn)定狀態(tài)時(shí),可以基于系統(tǒng)緩沖水平(即上溢或下溢),來調(diào)整音頻或視頻的PTS值。PTS值的調(diào)整量可以基于緩沖水平是否顯示在向更大的上溢或下溢移動(dòng)。在一些情況下,當(dāng)流沒有處于穩(wěn)定狀態(tài)時(shí),允許以采樣率回放音頻并且允許以幀速率回放視頻,而不是由PTS控制。
【專利說明】用于音頻與視頻同步的技術(shù)
【技術(shù)領(lǐng)域】
[0001]概括地說,本文中公開的主題涉及在音頻渲染和視頻回放期間對音頻與視頻的同
止/J/ O
【背景技術(shù)】
[0002]音頻-視頻同步試圖在視頻回放期間的適當(dāng)時(shí)刻來渲染音頻。例如,音頻和視頻數(shù)據(jù)可以儲(chǔ)存在諸如硬盤、DVD、藍(lán)光磁盤的本地存儲(chǔ)介質(zhì)內(nèi)或者通過IP網(wǎng)絡(luò)、線纜或者衛(wèi)星進(jìn)行傳送。例如,美國專利5,430,485、5,771,075和6,510,279說明了傳統(tǒng)的音頻-視頻同步的示例。
[0003]圖1示出了用于音頻-視頻同步的常規(guī)技術(shù)的示例。解復(fù)用器(Demux)接收傳輸流中經(jīng)復(fù)用的音頻和視頻信號。該傳輸流可以符合IS0/IEC13818-1:1994。在圖1中,ES代表基本流,該基本流包括視頻和音頻部分,并且定義于IS0/IEC13818-2 (視頻部分)和13818-3 (音頻部分)中。解復(fù)用器從傳輸流中提取諸如節(jié)目時(shí)鐘恢復(fù)(PCR)和呈現(xiàn)時(shí)間戳(PTS)的定時(shí)信息。PCR信息可以用于恢復(fù)本地系統(tǒng)時(shí)間時(shí)鐘(STC)。接收到的視頻幀和音頻采樣分別具有相關(guān)聯(lián)的PTS。PTS指示視頻幀或音頻采樣的呈現(xiàn)時(shí)間。當(dāng)STC與視頻幀的PTS相匹配時(shí),顯示該視頻幀,而當(dāng)STC與音頻采樣的PTS相匹配時(shí),渲染該音頻采樣。當(dāng)音頻PTS值與STC值相匹配并且視頻PTS值與STC值相匹配的時(shí)候,發(fā)生音頻-視頻同步。然而,該音頻-視頻同步技術(shù)有一些潛在的問題。
[0004]第一個(gè)潛在的問題是:當(dāng)發(fā)生時(shí)基不連續(xù)性時(shí),錯(cuò)誤的PCR值會(huì)中斷音頻-視頻同步。按照IS0/IEC13818-1 (1994),系統(tǒng)時(shí)基不連續(xù)性位值為I指示已經(jīng)發(fā)生了 PCR不連續(xù)性。例如,通過在指定為PCR_PID的PID的傳輸流分組中使用discontinuity,indicator=l可以指示系統(tǒng)時(shí)基不連續(xù)性(參見,例如,IS0/IEC13818-1 (1994)的42頁)。無論discontinuity_indicator=l還是O,當(dāng)發(fā)生不連續(xù)性時(shí),傳輸流分組中的下一個(gè)PCR/PTS表示新的系統(tǒng)時(shí)間時(shí)鐘的采樣。PCR值會(huì)由于各種原因而出現(xiàn)錯(cuò)誤。例如,PCR值會(huì)由于失真(諸如網(wǎng)絡(luò)傳輸過程中的噪聲或信號訛誤)而發(fā)生改變,或者編碼器會(huì)出現(xiàn)錯(cuò)誤并傳送錯(cuò)誤的PCR值。
[0005]處理PCR不連續(xù)性的傳統(tǒng)方法是用解復(fù)用器計(jì)算PCR跳躍量,并通過將PTS加上PCR跳躍量來使用PCR跳躍量對PTS值重建基礎(chǔ)(re-base)。該方法的潛在問題在于,在一些情況下,使用PCR計(jì)算出的偏移與PTS不連續(xù)性無關(guān)。換句話說,使用PCR跳躍量并不足以校正PTS值以保持或達(dá)到音頻-視頻同步。因此,使用重建基礎(chǔ)的PTS來達(dá)到音頻-視頻同步會(huì)導(dǎo)致視頻靜止或音頻故障。
[0006]第二個(gè)潛在的問題是系統(tǒng)緩沖區(qū)下溢或上溢會(huì)造成音頻故障或視頻靜止。解復(fù)用器、視頻和音頻解碼器和/或視頻和音頻渲染器可以使用系統(tǒng)緩沖區(qū)。下溢或上溢可以發(fā)生在可變流輸入位速率情況下,例如可能發(fā)生網(wǎng)絡(luò)抖動(dòng)的IPTV環(huán)境。圖1的系統(tǒng)體系結(jié)構(gòu)并不確定在緩沖區(qū)下溢或上溢情況下的PTS重建基礎(chǔ)的量。【專利附圖】

【附圖說明】
[0007]在圖中通過舉例而非限定的方式示出了本發(fā)明的實(shí)施例,并且在圖中,相同的參考標(biāo)號指代相同的元素。
[0008]圖1示出了用于音頻-視頻同步的常規(guī)技術(shù)的示例。
[0009]圖2描繪了可以用于執(zhí)行音頻-視頻同步的示例系統(tǒng)。
[0010]圖3描繪了呈現(xiàn)定時(shí)模塊的連續(xù)和不連續(xù)狀態(tài)的示例狀態(tài)圖。
[0011]圖4A和4B描繪了可以用于修改呈現(xiàn)時(shí)間戳的示例過程。
[0012]圖5描繪了模塊調(diào)用順序的示例。
[0013]圖6A-6D描繪了可以使用一些實(shí)施例來校正的PTS模式的不例。
[0014]圖7描繪了可以使用本發(fā)明的實(shí)施例的示例系統(tǒng)。
【具體實(shí)施方式】
[0015]貫穿本說明所提及的“一個(gè)實(shí)施例”或“實(shí)施例”意指在本發(fā)明的至少一個(gè)實(shí)施例中包含結(jié)合該實(shí)施例描述的特定的特征、結(jié)構(gòu)或特性。因此,在本說明的各個(gè)地方出現(xiàn)短語“在一個(gè)實(shí)施例中”或“實(shí)施例”并不一定全部指的是相同的實(shí)施例。此外,特定的特征、結(jié)構(gòu)或特性可以在一個(gè)或多個(gè)實(shí)施例中進(jìn)行組合。
[0016]多個(gè)實(shí)施例提供了確定呈現(xiàn)定時(shí)模塊是否處于穩(wěn)定狀態(tài)并且當(dāng)呈現(xiàn)定時(shí)模塊處于穩(wěn)定狀態(tài)時(shí)允許調(diào)整PTS值的方式。當(dāng)在一段時(shí)間內(nèi)接收到的PTS值未顯著變化時(shí),呈現(xiàn)定時(shí)模塊可以處于穩(wěn)定狀態(tài)。例如,當(dāng)呈現(xiàn)定時(shí)模塊處于穩(wěn)定狀態(tài)時(shí),可以基于系統(tǒng)緩沖區(qū)水平(即,上溢或下溢)來調(diào)整音頻或視頻的PTS值。PTS值的調(diào)整量可以基于緩沖水平似乎趨于更大的上溢還是下溢。在一些情況下,當(dāng)呈現(xiàn)定時(shí)模塊沒有處于穩(wěn)定狀態(tài)時(shí),允許音頻以采樣率進(jìn)行回放并且允許視頻以幀速率進(jìn)行回放,而不是由PTS來控制。
[0017]提供了關(guān)于呈現(xiàn)定時(shí)模塊的說明,并且可以基于呈現(xiàn)定時(shí)模塊是否處于穩(wěn)定狀態(tài)來決定是否調(diào)整PTS值。然而,在一些實(shí)施例中,可以基于在一段時(shí)間內(nèi)接收到的音頻或視頻PTS值的變化沒有超過閾值,而不是基于呈現(xiàn)定時(shí)模塊的狀態(tài)來決定是否調(diào)整PTS值。
[0018]圖2描繪了可以用于執(zhí)行音頻-視頻同步的示例系統(tǒng)。解復(fù)用器202可以接收包括音頻和視頻部分的傳輸流。傳輸流可以符合MPEG-2 (IS0/IEC13818-1:1994),但是該流可以符合其它標(biāo)準(zhǔn)(例如但不限于MPEG-U MPEG-4、H.263、H.264、H.265、VCl和VP8)。解復(fù)用器202可以解析初始PTS,確定其到達(dá)時(shí)間并且將該信息附加到相關(guān)聯(lián)的緩沖區(qū)。解復(fù)用器202還可以初始化針對推送模式回放(調(diào)諧器或UDP回放)和本地文件回放的緩沖。解復(fù)用器202可以向視頻解碼器204提供基本流(ES)的視頻部分以及相關(guān)的呈現(xiàn)時(shí)間戳(PTS)0解復(fù)用器202可以向音頻解碼器220提供基本流(ES)的音頻部分以及相關(guān)的呈現(xiàn)時(shí)間戳(PTS)。
[0019]視頻解碼器204可以根據(jù)可應(yīng)用的視頻解碼標(biāo)準(zhǔn)(例如但不限于MPEG-l、MPEG-2、MPEG-4、H.263、H.264、H.265、VCl和VP8)來執(zhí)行視頻解碼。例如,視頻解碼可以包括使用可變長度解碼(VLD)來解析壓縮流、執(zhí)行反量化(IQ)、執(zhí)行反離散余弦變換(IDCT)、執(zhí)行運(yùn)動(dòng)補(bǔ)償(MC)以及塊重建(BR)。視頻渲染器206可以從視頻解碼器204接收經(jīng)解碼的視頻以及視頻的PTS。視頻渲染器206提供視頻用于回放。可以將視頻幀存儲(chǔ)在幀緩沖區(qū)中,并且圖形引擎隨后可以向顯示器提供這些幀。視頻渲染器206可以向呈現(xiàn)定時(shí)模塊230提供視頻PTS和顯示的幀(示出為“消耗的幀”)的數(shù)量以及視頻渲染器206的幀緩沖區(qū)的緩沖狀態(tài)。
[0020]每當(dāng)渲染器具有帶有PTS的幀時(shí),其可以調(diào)用呈現(xiàn)定時(shí)模塊230??梢酝ㄟ^當(dāng)前流時(shí)間加上補(bǔ)償來計(jì)算幀的渲染時(shí)間??梢詫⒀a(bǔ)償定義為由渲染定時(shí)處理的但還未由顯示設(shè)備顯示的幀的持續(xù)時(shí)間。
[0021]音頻解碼器220可以根據(jù)可應(yīng)用的音頻解碼標(biāo)準(zhǔn)(例如但不限于MPEG-l、MPEG-2、MPEG-4、H.263、H.264和H.265)來執(zhí)行音頻解碼。音頻渲染器222可以從音頻解碼器220接收經(jīng)解碼的音頻以及音頻的PTS。音頻渲染器222可以提供音頻用于回放。例如,音頻可用于揚(yáng)聲器和/或頭戴式耳機(jī)的音頻硬件輸出。音頻渲染器222可以向呈現(xiàn)定時(shí)模塊230提供音頻PTS和消耗的音頻采樣(示出為“消耗的幀”)的數(shù)量以及音頻渲染器222的緩沖區(qū)的狀態(tài)。
[0022]時(shí)鐘恢復(fù)塊210可以基于從接收到的傳輸流中提取出的節(jié)目時(shí)鐘恢復(fù)(PCR)來生成系統(tǒng)時(shí)間時(shí)鐘(STC)。
[0023]呈現(xiàn)定時(shí)模塊230可以潛在地調(diào)整接收到的視頻或音頻PTS值,并且向視頻渲染器206提供調(diào)整后的視頻PTS值以及向音頻渲染器222提供調(diào)整后的音頻PTS值。如果呈現(xiàn)定時(shí)模塊處于穩(wěn)定(STABLE)或連續(xù)狀態(tài),那么可以調(diào)整PTS值。呈現(xiàn)定時(shí)模塊230可以處于穩(wěn)定或不穩(wěn)定狀態(tài),這取決于隨音頻和視頻流接收到的PTS值中的變化。例如,如果接收到的PTS值之間的變化小于閾值,那么呈現(xiàn)定時(shí)模塊230可以處于穩(wěn)定狀態(tài)。如果接收到的PTS值之間的變化大于閾值,那么呈現(xiàn)定時(shí)模塊230可以處于不穩(wěn)定狀態(tài)。
[0024]如果呈現(xiàn)定時(shí)模塊處于不連續(xù)性(DISCONTINUITY)或不連續(xù)狀態(tài),那么接收到的PTS值可能是錯(cuò)誤的,如果使用接收到的PTS值來進(jìn)行音頻-視頻同步,那么這會(huì)導(dǎo)致音頻損失或視頻靜止。在不連續(xù)性(DISCONTINUITY)或不連續(xù)狀態(tài)中,允許音頻以采樣率進(jìn)行回放并且允許視頻以幀速率進(jìn)行回放,而不是由PTS來控制。在不連續(xù)性(DISCONTINUITY)或不連續(xù)狀態(tài)中,可以對音頻和視頻二者進(jìn)行回放,但可能無法嘗試音頻-視頻同步。例如,當(dāng)檢測到不連續(xù)性時(shí),呈現(xiàn)定時(shí)模塊230可以將調(diào)整后的PTS設(shè)置為無效值(例如,-1或OxFFFFFFFF)。當(dāng)視頻渲染器206或音頻渲染器222識(shí)別出該無效的PTS時(shí),它們可以以采樣率或幀速率提供回放。
[0025]PTSn表示從視頻或音頻輸入流中提取的PTS,并且η表示接收到的PTS的數(shù)量。PTSn表示理論P(yáng)TS值。對于視頻來說,可以通過之前顯示的巾貞的數(shù)量除以巾貞速率來確定PTSTn。例如,如果顯示的幀的數(shù)量為500并且?guī)俾蕿?5fps,那么理論P(yáng)TS值為500/25=20。對于音頻來說,可以通過之前渲染的采樣的數(shù)量除以音頻采樣率來確定PTSTn。Deltan可以表示PTSn與PTSTn之間的差。Delta’ n可以表示兩個(gè)連續(xù)的Deltan之間的差。
[0026]當(dāng)N個(gè)連續(xù)的Delta’n小于或等于閾值時(shí),呈現(xiàn)定時(shí)模塊230可以進(jìn)入穩(wěn)定狀態(tài)。值N可以是10或其它數(shù)量。當(dāng)I個(gè)Delta’n大于閾值時(shí),發(fā)生呈現(xiàn)定時(shí)模塊230進(jìn)入不連續(xù)性狀態(tài)。在N個(gè)連續(xù)的Delta’ n小于或等于閾值之后,呈現(xiàn)定時(shí)模塊230可以重新進(jìn)入穩(wěn)定狀態(tài)。
[0027]呈現(xiàn)定時(shí)模塊230可以顯露PTS轉(zhuǎn)換API,渲染器可以調(diào)用該API。
[0028]圖3描繪了圖2的呈現(xiàn)定時(shí)模塊的連續(xù)和不連續(xù)狀態(tài)的示例狀態(tài)圖。視頻不連續(xù)性或音頻不連續(xù)性可以使呈現(xiàn)定時(shí)控制模塊進(jìn)入不連續(xù)性(DISCONTINUITY)狀態(tài)。在呈現(xiàn)定時(shí)控制模塊進(jìn)入不連續(xù)性(DISCONTINUITY)狀態(tài)之后,音頻和視頻二者可以以它們的采樣率或幀速率自由運(yùn)行。
[0029]多個(gè)實(shí)施例提供了基于系統(tǒng)緩沖水平來調(diào)整PTS值的方式。當(dāng)流處于穩(wěn)定狀態(tài)并且檢測到系統(tǒng)緩沖區(qū)上溢或下溢時(shí),呈現(xiàn)定時(shí)模塊(圖2)可以調(diào)整視頻和音頻二者的PTS值??梢詫⒊跏嫉腜TS值發(fā)送到呈現(xiàn)定時(shí)模塊,并且該呈現(xiàn)定時(shí)模塊潛在地提供調(diào)整后的PTS。
[0030]對于視頻來說,可以將下溢定義為具有遲到時(shí)間戳的大量連續(xù)的幀,在其之間沒有任何“準(zhǔn)時(shí)”的幀?!按罅俊笨梢允窍褚曨l解碼器所支持的最壞情況的臨時(shí)編碼結(jié)構(gòu)一樣大的數(shù)量,例如在H.264的情況下為16。對于音頻來說,可以將下溢描述為具有遲到時(shí)間戳的多個(gè)連續(xù)的音頻幀,在其之間沒有任何“準(zhǔn)時(shí)”的幀。該數(shù)量取決于音頻內(nèi)部管線并且可能不大于2或3。
[0031]在渲染器要執(zhí)行PTS轉(zhuǎn)換之前向呈現(xiàn)定時(shí)模塊230提供系統(tǒng)緩沖水平。渲染器可以響應(yīng)于PTS的接收來執(zhí)行PTS轉(zhuǎn)換。當(dāng)呈現(xiàn)定時(shí)模塊進(jìn)入穩(wěn)定(STABLE)狀態(tài)時(shí),系統(tǒng)緩沖水平信息可以確定,從而使得穩(wěn)定的緩沖水平是已知的。緩沖水平可以表示為所使用的緩沖區(qū)與緩沖區(qū)容量相比的百分比。
[0032]當(dāng)系統(tǒng)輸入或輸出異常發(fā)生時(shí)(例如,由于網(wǎng)絡(luò)抖動(dòng)),可以檢測到系統(tǒng)緩沖水平變化。例如,如果緩沖水平處于下溢并且緩沖水平不斷減少,那么將調(diào)整因子加到轉(zhuǎn)換后的PTS上。因?yàn)槿绻鸓TS大于系統(tǒng)時(shí)鐘,那么渲染變慢,所以增加PTS導(dǎo)致更慢的數(shù)據(jù)消耗。如果緩沖水平處于上溢并且該水平不斷增加,那么從轉(zhuǎn)換后的PTS減去調(diào)整因子。因?yàn)槿绻鸓TS小于系統(tǒng)時(shí)鐘,那么渲染加快,所以減少PTS會(huì)導(dǎo)致更快的數(shù)據(jù)消耗。
[0033]圖4A描繪了可以用于修改呈現(xiàn)時(shí)間戳的示例過程。在執(zhí)行圖4A的過程之前,當(dāng)呈現(xiàn)定時(shí)模塊處于穩(wěn)定狀態(tài)時(shí),渲染器(音頻或視頻)的緩沖水平可以確定。此后,當(dāng)呈現(xiàn)定時(shí)模塊進(jìn)入穩(wěn)定狀態(tài)或處于穩(wěn)定狀態(tài)中時(shí)所確定的系統(tǒng)緩沖水平可以被稱為“穩(wěn)定的緩沖水平”。方框402包括確定當(dāng)前的緩沖水平與穩(wěn)定的緩沖水平之間的差??梢皂憫?yīng)于在渲染器或呈現(xiàn)定時(shí)模塊處的音頻或視頻呈現(xiàn)時(shí)間戳的接收來執(zhí)行方框402。方框402和404中的緩沖可以與音頻或視頻渲染器相關(guān)聯(lián),該音頻或視頻渲染器與接收到的觸發(fā)方框402的音頻或視頻呈現(xiàn)時(shí)間戳相關(guān)聯(lián)。方框404包括確定是否在發(fā)生緩沖區(qū)下溢或上溢。如果當(dāng)前的緩沖水平比穩(wěn)定的緩沖水平小某一值,該值大于閾值,并且當(dāng)前的緩沖水平不斷減少,那么認(rèn)為該緩沖區(qū)處于下溢狀態(tài)。如果當(dāng)前的緩沖水平比穩(wěn)定的緩沖水平大某一值,該值大于閾值,并且當(dāng)前的緩沖水平不斷增加,那么認(rèn)為該緩沖區(qū)處于上溢狀態(tài)。在下溢的情況下,方框406跟隨在方框404之后。在緩沖區(qū)上溢的情況下,方框408跟隨在方框404之后。在方框406中,針對緩沖區(qū)下溢,將調(diào)整因子加到PTS上以增加轉(zhuǎn)換后的PTS來導(dǎo)致較慢的讀出。在方框408中,從轉(zhuǎn)換后的PTS減去調(diào)整因子以減少PTS并導(dǎo)致較快的緩沖區(qū)讀出。可以通過從PTSn中減去Deltan來確定轉(zhuǎn)換后的PTS。
[0034]圖4B描繪了調(diào)整呈現(xiàn)時(shí)間戳的示例方式。當(dāng)視頻渲染器的緩沖區(qū)或音頻渲染器的緩沖區(qū)進(jìn)入不健康狀態(tài)(例如,下溢或上溢)時(shí),可以發(fā)生調(diào)整因子的更新。相同的調(diào)整因子可以用于調(diào)整視頻和音頻PTS 二者。如果將視頻PTS調(diào)整了一數(shù)量,那么可以將音頻PTS調(diào)整該相同的數(shù)量以潛在地保持音頻/視頻同步??梢栽谝纛l渲染器緩沖區(qū)和視頻渲染器緩沖區(qū)二者都進(jìn)入健康狀態(tài)(即,沒有上溢或下溢)之后停止調(diào)整的使用。[0035]圖4B的過程的一個(gè)可能的目標(biāo)是保持PTS變化盡可能平滑。對PTS的大的修改會(huì)導(dǎo)致顯示假象或音頻故障。當(dāng)系統(tǒng)緩沖區(qū)趨于上溢或下溢時(shí),圖4B的過程試圖通過調(diào)整PTS來阻止該趨勢。初始調(diào)整可以是相對小的量。在調(diào)整之后,如果緩沖水平趨于離開健康狀態(tài),那么將增加調(diào)整因子以減少達(dá)到健康狀態(tài)的時(shí)間。在調(diào)整之后,如果緩沖水平趨向于健康狀態(tài),那么減小調(diào)整因子。當(dāng)緩沖區(qū)再次進(jìn)入健康狀態(tài)時(shí),再次將調(diào)整因子減小到小的值。
[0036]方框450包括當(dāng)呈現(xiàn)定時(shí)模塊處于穩(wěn)定狀態(tài)時(shí)確定系統(tǒng)緩沖水平。該穩(wěn)定的緩沖水平可以與既不上溢也不下溢的狀態(tài)相對應(yīng)。例如,當(dāng)呈現(xiàn)定時(shí)模塊進(jìn)入穩(wěn)定狀態(tài)時(shí),可以針對視頻渲染器緩沖區(qū)或音頻渲染器緩沖區(qū)來確定系統(tǒng)緩沖水平。該緩沖水平可以與既不上溢也不下溢的緩沖水平相對應(yīng)。在視頻渲染器處當(dāng)每次到達(dá)PTS時(shí),該視頻渲染器可以使該視頻渲染器所使用的緩沖區(qū)的當(dāng)前的系統(tǒng)緩沖水平(在圖2中示為“緩沖狀態(tài)”)對于呈現(xiàn)定時(shí)模塊230以及PTS值來說是可用的。在音頻渲染器處當(dāng)每次到達(dá)PTS時(shí),該音頻渲染器可以使該音頻渲染器所使用的緩沖區(qū)的當(dāng)前的系統(tǒng)緩沖水平(在圖2中示為“緩沖狀態(tài)”)對于呈現(xiàn)定時(shí)模塊230以及PTS值來說是可用的。將音頻渲染器或視頻渲染器的當(dāng)前的緩沖水平與相應(yīng)的穩(wěn)定的緩沖水平相比較。方框452包括確定穩(wěn)定的緩沖水平和當(dāng)前的緩沖水平之間的絕對差是否大于閾值。如果絕對差大于閾值,那么方框454跟隨在方框452之后。如果絕對差不大于閾值,那么方框460跟隨在方框452之后。
[0037]方框460包括重新設(shè)置調(diào)整因子值。初始的調(diào)整因子值可以是O或者根據(jù)實(shí)驗(yàn)使用而確定的較小值。當(dāng)緩沖水平與穩(wěn)定的緩沖水平之間的差不大于閾值時(shí),認(rèn)為該緩沖水平是健康的,并且將把調(diào)整因子值重新設(shè)置為O或者根據(jù)實(shí)驗(yàn)使用而確定的較小值。當(dāng)系統(tǒng)緩沖水平(音頻和視頻緩沖水平二者)二者都處于健康狀態(tài)時(shí),不需要使用調(diào)整因子來調(diào)整PTS。如果當(dāng)音頻和視頻 緩沖水平二者都處于健康狀態(tài)時(shí)要調(diào)整PTS,可以重新設(shè)置調(diào)整因子以使得PTS的調(diào)整最小化。
[0038]方框454包括確定絕對差是否大于之前的絕對差。之前的絕對差可以在緊鄰的之前或之前的緩沖水平和穩(wěn)定的緩沖水平之間。如果該差更大(或者不斷增加),那么方框470跟隨在方框454之后。如果該差更大(或者不斷增加),那么緩沖水平狀況不斷增加下溢或上溢。如果該差沒有更大(或者保持穩(wěn)定或者不斷減少),那么方框480跟隨在方框454之后。如果該差沒有更大(或者保持穩(wěn)定或者不斷減少),那么緩沖水平狀況變得減少下溢或上溢。
[0039]方框470包括將Delta1^l加調(diào)整因子。在之前的調(diào)整之后,如果緩沖水平繼續(xù)趨于遠(yuǎn)離健康狀態(tài),那么將增加Deltan以減少達(dá)到健康狀態(tài)的時(shí)間。因?yàn)榫彌_水平趨于更多下溢或上溢,所以可以增加Deltan。使用較高Delta1J^調(diào)整可以提供更接近健康水平的緩沖水平的更快運(yùn)動(dòng)??梢曰趯?shí)驗(yàn)結(jié)果來設(shè)置調(diào)整因子值,并且可以通過系統(tǒng)中使用了多少緩沖區(qū)來確定調(diào)整因子值。
[0040]方框480包括將Deltan減少調(diào)整因子。因?yàn)榫彌_區(qū)趨于遠(yuǎn)離下溢或上溢并趨向于健康水平,因此可以將Deltan減少調(diào)整因子。減少Deltan可以防止過度調(diào)整PTS值并且可以潛在更快地達(dá)到健康的系統(tǒng)緩沖水平。在一段時(shí)間的調(diào)整之后,如果緩沖水平趨向于健康狀態(tài),那么減少Delta?。在一些情況下,方框480可以涉及不改變Deltan。
[0041]方框482包括確定當(dāng)前的緩沖水平是否大于穩(wěn)定的緩沖水平。如果當(dāng)前的緩沖水平大于穩(wěn)定的緩沖水平,那么認(rèn)為緩沖區(qū)上溢,并且方框490跟隨在方框482之后。如果當(dāng)前的緩沖水平小于穩(wěn)定的緩沖水平,那么認(rèn)為緩沖區(qū)下溢,并且方框495跟隨在方框482之后。
[0042]方框490包括將PTS值減少Deltan。方框490處理潛在地處于上溢狀態(tài)的緩沖區(qū)。
[0043]方框495包括將PTS值增加Deltan。方框495處理潛在地處于下溢狀態(tài)的緩沖區(qū)。
[0044]圖5描繪了模塊調(diào)用順序的示例。在輸入信號很可能劣化(例如,基于該輸入信號的傳輸介質(zhì))的情況下或者如果檢測到信號訛誤,應(yīng)用可以請求使用呈現(xiàn)定時(shí)模塊。例如,與通過線纜或電纜傳輸?shù)妮斎胄盘栂啾?,通過陸地廣播傳輸?shù)妮斎胄盘柛锌赡芰踊?。例如,?yīng)用可以是播放器或者具有嵌入式媒體播放器的瀏覽器。應(yīng)用可以請求打開解復(fù)用器、時(shí)鐘恢復(fù)、渲染器和呈現(xiàn)定時(shí)模塊。打開呈現(xiàn)定時(shí)模塊的請求分配并初始化該呈現(xiàn)定時(shí)模塊的實(shí)例。應(yīng)用可以向呈現(xiàn)定時(shí)模塊發(fā)出設(shè)置時(shí)鐘(set_Cl0Ck)命令來導(dǎo)致設(shè)置時(shí)鐘設(shè)備句柄。應(yīng)用可以向呈現(xiàn)定時(shí)模塊發(fā)出設(shè)置播放速率(set_play_rate)命令來設(shè)置播放速率。播放速率可以是1X、2X或其它速率。應(yīng)用可以向呈現(xiàn)定時(shí)模塊發(fā)出設(shè)置基準(zhǔn)時(shí)間(set_base_time)命令來設(shè)置管線的基準(zhǔn)時(shí)間,其中該基準(zhǔn)時(shí)間用于計(jì)算流時(shí)間。應(yīng)用可以向渲染器發(fā)出設(shè)置呈現(xiàn)定時(shí)模塊句柄(set_presentation_timing_module_handle)命令,并且渲染器可以使用該句柄來調(diào)用呈現(xiàn)定時(shí)模塊。每個(gè)渲染器可以向呈現(xiàn)定時(shí)模塊發(fā)出請求來請求轉(zhuǎn)換PTS值。針對轉(zhuǎn)換PTS值的請求可以包括接收到的PTS值、理論P(yáng)TS值和渲染器的緩沖水平。當(dāng)函數(shù)調(diào)用返回時(shí),pts_轉(zhuǎn)換(pts_convert)的返回可以用于向渲染器傳送轉(zhuǎn)換后的PTS值。在轉(zhuǎn)換PTS值之后,應(yīng)用可以請求關(guān)閉解復(fù)用器、呈現(xiàn)定時(shí)模塊、時(shí)鐘恢復(fù)和渲染器。 [0045]圖6A-6D描繪了可以使用一些實(shí)施例來校正的PTS模式的示例。在圖6A-6D中,PTS值在垂直軸上而時(shí)間在水平軸上。圖6A描繪了 PTS不連續(xù)性的情況。圖6B描繪了 PTS奇數(shù)點(diǎn)的情況。圖6C描繪了 PTS空閑(spare)或信號丟失的情況。圖6D描繪了不匹配的輸入位速率情況。
[0046]在實(shí)施例中,PTS偏移的調(diào)整是基于歷史統(tǒng)計(jì)數(shù)據(jù)的。下面的公式I可以用于確定何時(shí)以及如何校正PTS值。
[0047]公式1:
【權(quán)利要求】
1.一種計(jì)算機(jī)實(shí)現(xiàn)的方法,其包括: 部分基于接收到的呈現(xiàn)時(shí)間戳的變化來確定是否能進(jìn)行音頻-視頻同步,以及 當(dāng)允許進(jìn)行音頻-視頻同步時(shí),允許對接收到的呈現(xiàn)時(shí)間戳值進(jìn)行調(diào)整。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述呈現(xiàn)時(shí)間戳值與音頻呈現(xiàn)時(shí)間戳值或視頻呈現(xiàn)時(shí)間戳值中的至少一個(gè)相對應(yīng)。
3.根據(jù)權(quán)利要求1所述的方法,其中,當(dāng)在一段時(shí)間期間接收到的連續(xù)PTS值的變化不多于閾值時(shí),允許進(jìn)行音頻-視頻同步。
4.根據(jù)權(quán)利要求1所述的方法,其中,允許對所述接收到的呈現(xiàn)時(shí)間戳值進(jìn)行調(diào)整包括:允許部分基于系統(tǒng)緩沖水平來將所述呈現(xiàn)時(shí)間戳值調(diào)整一數(shù)量。
5.根據(jù)權(quán)利要求4所述的方法,其中,允許部分基于系統(tǒng)緩沖水平來將所述接收到的呈現(xiàn)時(shí)間戳值調(diào)整一數(shù)量包括:當(dāng)(i)所述系統(tǒng)緩沖水平和穩(wěn)定的緩沖水平之間的差大于閾值,并且(ii)與所述系統(tǒng)緩沖水平和所述穩(wěn)定的緩沖水平之間的之前的差相比,所述系統(tǒng)緩沖水平和所述穩(wěn)定的緩沖水平之間的差不斷減少或穩(wěn)定時(shí),減少所述數(shù)量。
6.根據(jù)權(quán)利要求4所述的方法,其中,允許基于系統(tǒng)緩沖水平來將所述呈現(xiàn)時(shí)間戳值調(diào)整一數(shù)量包括:當(dāng)(i)所述系統(tǒng)緩沖水平和穩(wěn)定的緩沖水平之間的差大于閾值,并且(ii)與所述系統(tǒng)緩沖水平與所述穩(wěn)定的緩沖水平之間的之前的差相比,所述系統(tǒng)緩沖水平和所述穩(wěn)定的緩沖水平之間的差不斷增加時(shí),增加所述數(shù)量。
7.根據(jù)權(quán)利要求4所述的方法,其中,所述數(shù)量部分基于接收到的呈現(xiàn)時(shí)間戳值和理論呈現(xiàn)時(shí)間戳值之間的差。
8.根據(jù)權(quán)利要求1所述的方法,其中,當(dāng)在一段時(shí)間期間接收到的連續(xù)PTS值的變化多于閾值時(shí),不允許進(jìn)行音頻-視頻同步,并且還包括: 當(dāng)不允許進(jìn)行音頻-視頻同步時(shí),允許以采樣率回放音頻和視頻并且允許以幀速率回放視頻,而不是由PTS控制。
9.一種裝置,包括: 視頻渲染器; 視頻渲染器緩沖區(qū); 音頻渲染器; 音頻渲染器緩沖區(qū);以及 呈現(xiàn)定時(shí)模塊,其用于從所述視頻渲染器和音頻渲染器接收呈現(xiàn)時(shí)間戳和視頻渲染器緩沖水平以及音頻渲染器緩沖水平,其中,所述呈現(xiàn)定時(shí)模塊將確定是否允許對呈現(xiàn)時(shí)間戳的修改。
10.根據(jù)權(quán)利要求9所述的裝置,其中, 當(dāng)連續(xù)呈現(xiàn)時(shí)間戳之間的差小于閾值時(shí),所述呈現(xiàn)定時(shí)模塊將允許對呈現(xiàn)時(shí)間戳的修改,并且 音頻和視頻回放基于系統(tǒng)時(shí)間時(shí)鐘與呈現(xiàn)時(shí)間戳之間的比較來進(jìn)行。
11.根據(jù)權(quán)利要求10所述的裝置,其中,所述呈現(xiàn)定時(shí)模塊將允許對呈現(xiàn)時(shí)間戳修改一數(shù)量,其中,所述數(shù)量部分基于當(dāng)前的緩沖水平和穩(wěn)定的緩沖水平之間的差是不斷增加還是減少。
12.根據(jù)權(quán)利要求11所述的裝置,其中,當(dāng)所述當(dāng)前的緩沖水平和所述穩(wěn)定的緩沖水平之間的差不斷減少時(shí),所述呈現(xiàn)定時(shí)模塊將減少所述數(shù)量。
13.根據(jù)權(quán)利要求11所述的裝置,其中,當(dāng)所述當(dāng)前的緩沖水平和所述穩(wěn)定的緩沖水平之間的差不斷增加時(shí),所述呈現(xiàn)定時(shí)模塊將增加所述數(shù)量。
14.根據(jù)權(quán)利要求11所述的裝置,其中,所述數(shù)量部分基于接收到的呈現(xiàn)時(shí)間戳值和理論呈現(xiàn)時(shí)間戳值之間的差。
15.根據(jù)權(quán)利要求9所述的裝置,其中,當(dāng)連續(xù)呈現(xiàn)時(shí)間戳之間的差超過閾值時(shí),所述呈現(xiàn)定時(shí)模塊將允許以采樣率回放音頻以及以幀速率回放視頻,而不是由呈現(xiàn)時(shí)間戳控制。
16.—種系統(tǒng),包括: 無線網(wǎng)絡(luò)接口; 顯不器;以及 處理器,其被配置為: 部分基于視頻或音頻流中的至少一個(gè)的連續(xù)呈現(xiàn)時(shí)間戳是否變化超過閾值,來確定是否允許使用系統(tǒng)時(shí)間時(shí)鐘和呈現(xiàn)時(shí)間戳二者的音頻-視頻同步,并且 響應(yīng)于允許使用系統(tǒng)時(shí)間時(shí)鐘和呈現(xiàn)時(shí)間戳二者的音頻-視頻同步,所述處理器將確定對視頻或音頻流中的至少一個(gè)的呈現(xiàn)時(shí)間戳進(jìn)行調(diào)整的量。
17.根據(jù)權(quán)利要求16所述的系統(tǒng),其中,為了確定對視頻或音頻流中的至少一個(gè)的呈現(xiàn)時(shí)間戳進(jìn)行調(diào)整的量,所述處理器將: 確定由視頻或音頻渲染器使用的緩沖區(qū)何時(shí)處于上溢或下溢狀況,并且 響應(yīng)于確定所述緩沖區(qū)處于上溢或下溢狀況,所述處理器將基于所述上溢或下溢狀況是不斷減輕、保持基本不變還是不斷加重來確定所述量。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,響應(yīng)于所述上溢或下溢狀況不斷減輕或保持基本不變,所述處理器將減少所述量。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,響應(yīng)于所述上溢或下溢狀況不斷加重,所述處理器將增加所述量。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述量部分基于接收到的呈現(xiàn)時(shí)間戳值和理論呈現(xiàn)時(shí)間戳值之間的差。
【文檔編號】H04N21/44GK103621102SQ201180071324
【公開日】2014年3月5日 申請日期:2011年5月12日 優(yōu)先權(quán)日:2011年5月12日
【發(fā)明者】曾善軍, K·黑茲利特, 呂鐵漢, 程亮, 吳杰 申請人:英特爾公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1
东兰县| 行唐县| 固安县| 扬州市| 大洼县| 宕昌县| 深圳市| 通渭县| 绍兴市| 公安县| 辽阳县| 全椒县| 江西省| 克什克腾旗| 睢宁县| 太谷县| 方城县| 永靖县| 延边| 白玉县| 清河县| 邳州市| 澄迈县| 报价| 专栏| 天等县| 洪泽县| 仁布县| 罗定市| 登封市| 元氏县| 宜城市| 临西县| 含山县| 佛教| 石台县| 应用必备| 体育| 富民县| 荣昌县| 利川市|