帶寬變化連接上的動態(tài)比特率調(diào)節(jié)的制作方法
【專利摘要】通過保持轉(zhuǎn)碼進(jìn)程與掛鐘同步,實時地對媒體文件的音頻和視頻流進(jìn)行轉(zhuǎn)碼。轉(zhuǎn)碼被初始配置為稍快于實時。一旦轉(zhuǎn)碼幀被轉(zhuǎn)碼,則將其從所述轉(zhuǎn)碼器通過可變帶寬連接進(jìn)行推送。然后對轉(zhuǎn)碼進(jìn)行周期性地監(jiān)控,以估計在轉(zhuǎn)碼緩沖器的傳輸期間可用的帶寬。測量兩個時間間隔:緩沖器間隔,其是之前的兩個傳輸?shù)霓D(zhuǎn)碼緩沖器時間戳中的差別,以及對應(yīng)于上一個轉(zhuǎn)碼緩沖器的實時傳輸時間的時鐘間隔。如果觀測到明顯差別,則通過從該差別導(dǎo)出的參數(shù)來調(diào)整轉(zhuǎn)碼器比特率。
【專利說明】帶寬變化連接上的動態(tài)比特率調(diào)節(jié)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及實時媒體傳輸。
【背景技術(shù)】
[0002]圖1示出了現(xiàn)有技術(shù)的媒體傳輸系統(tǒng)100,其包括媒體服務(wù)器子系統(tǒng)102,該媒體服務(wù)器子系統(tǒng)102通過網(wǎng)絡(luò)106 (例如因特網(wǎng))連接到移動單元或目的地單元104。
[0003]每個移動單元104可以是例如被裝配以便建立媒體會話的智能手機(jī)或筆記本電腦。
[0004]媒體服務(wù)器子系統(tǒng)102可包括用于生成媒體文件的媒體服務(wù)器計算裝置108、用于處理媒體文件的因特網(wǎng)內(nèi)容調(diào)節(jié)協(xié)議(ICAP)服務(wù)器計算裝置110、以及用于處理來自移動單元或終端104的請求以及用來執(zhí)行其它功能的超文本傳輸協(xié)議(HTTP)代理服務(wù)器計算裝置112。
[0005]可由移動(目的地)單元104請求媒體會話。媒體會話的目標(biāo)是從媒體服務(wù)器子系統(tǒng)102向移動單元104發(fā)送媒體分組(媒體文件)的流。
[0006]當(dāng)請求移動單元104和媒體服務(wù)器子系統(tǒng)102之間的網(wǎng)絡(luò)106上的連接的帶寬低于實時發(fā)送原始媒體文件所需的帶寬時,所述媒體文件可被位于ICAP服務(wù)器110中的設(shè)備(其一般為HTTP代理服務(wù)器112的附屬物)調(diào)節(jié)為該較低的帶寬。
[0007]網(wǎng)絡(luò)106上的連接的帶寬還可在出現(xiàn)針對媒體文件調(diào)節(jié)的附加問題時進(jìn)行改變。
[0008]從而,需要用來針對在具有改變帶寬的連接上的傳輸改進(jìn)媒體文件的帶寬調(diào)節(jié)的方法和系統(tǒng)。
【發(fā)明內(nèi)容】
[0009]本發(fā)明的一個目的是,提供用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到移動單元的變化帶寬鏈路上實時進(jìn)行傳輸?shù)姆椒ê拖到y(tǒng)。
[0010]根據(jù)本發(fā)明的一個方面,提供了用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到移動單元、或目的地單元的變化帶寬鏈路上實時進(jìn)行傳輸?shù)姆椒?,該方法包?
[0011]采用至少一個處理器,以用于:
[0012](i)將所述媒體文件的一個或多個片段編碼成轉(zhuǎn)碼媒體片段,以形成流片段;
[0013](ii)確定之前形成的流片段的估計傳送時間,該估計傳送時間是將所述之前形成的流片段從轉(zhuǎn)碼器傳遞并由所述變化帶寬鏈路消耗所需的時間間隔;以及
[0014](iii)將所述轉(zhuǎn)碼媒體片段的當(dāng)前編碼率作為所述估計傳送時間的函數(shù)來調(diào)整。
[0015]在上述方法中,步驟(i)包括:
[0016]以初始編碼率將所述媒體文件的至少第一片段編碼成相應(yīng)的第一轉(zhuǎn)碼媒體片段;以及
[0017]將所述當(dāng)前編碼率設(shè)置為等于所述初始編碼率;
[0018]并且步驟(iii)包括以經(jīng)過調(diào)整的當(dāng)前編碼率將所述媒體文件的隨后片段編碼成相應(yīng)的轉(zhuǎn)碼媒體片段。
[0019]在上述方法中,步驟(iii)還包括將所述當(dāng)前編碼率作為所述流片段在所述移動單元處的估計顯示時間的函數(shù)進(jìn)行調(diào)節(jié),所述估計顯示時間是從與兩個之前形成的流片段相關(guān)聯(lián)的時間戳導(dǎo)出的。
[0020]步驟(iii)還包括將所述當(dāng)前編碼率作為所述當(dāng)前編碼率的函數(shù)進(jìn)行調(diào)整。
[0021]在本方面的一種實施方式中,所述函數(shù)是所述當(dāng)前編碼率與調(diào)整參數(shù)的乘積,其中所述調(diào)整參數(shù)取決于所述估計顯示時間和所述估計傳送時間。
[0022]為了方便起見,所述調(diào)整參數(shù)是所述估計顯示時間除以所述估計傳送時間。
[0023]所述方法還包括將所述轉(zhuǎn)碼媒體片段傳送到所述移動單元以用于顯示。
[0024]在上述方法中,對所述當(dāng)前編碼率的調(diào)整可隨時執(zhí)行。例如,所述調(diào)整可周期性地執(zhí)行。
[0025]在本發(fā)明的實施方式中,步驟(ii )還包括將所述估計傳送時間估計為當(dāng)前時間和上一次編碼的之前時間之間的當(dāng)前時鐘間隔,并且所述步驟(iii)還包括:
[0026]確定當(dāng)前緩沖器間隔,其表示之前流片段在所述移動單元處的估計顯示時間,所述當(dāng)前緩沖器間隔是從嵌入到兩個之前形成的流片段中的時間戳導(dǎo)出的;
[0027]將所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔進(jìn)行比較;以及
[0028]將所述當(dāng)前編碼率作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔的函數(shù)進(jìn)行調(diào)難
iF.0
[0029]為了便利起見,所述兩個之前形成的流片段包括最后兩個流片段。
[0030]在上述方法中,所述調(diào)整包括,在所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔之間有預(yù)定量的差別的情況下對所述當(dāng)前編碼率進(jìn)行調(diào)整。
[0031]例如,步驟(iii)可包括在N秒的當(dāng)前時鐘間隔已經(jīng)逝去之后對所述當(dāng)前編碼率進(jìn)行調(diào)整。在本發(fā)明的實施方式中,N在2到5秒的范圍內(nèi),例如N=3秒。
[0032]將所述當(dāng)前編碼率作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔進(jìn)行的調(diào)整可按以下步驟執(zhí)行:
[0033]在所述當(dāng)前緩沖器間隔和所述當(dāng)前時鐘間隔之間的第一相對差別超出第一預(yù)定閾值THl的情況下,將所述當(dāng)前編碼率增加第一增量值,其中所述第一增量值是從所述第一相對差別計算得到的;以及
[0034]在所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔之間的第二相對差別超出第二預(yù)定閾值TH2的情況下,將所述當(dāng)前編碼率減少第二增量值,其中所述第二增量值是從所述第二相對差別計算得到的。
[0035]為了方便起見,可將THl選為至少0.05,并將TH2選為至少0.02。
[0036]在上述方法中,所述第一增量值等于所述第一相對差別除以第一衰減參數(shù)AFl,且所述第二增量值等于所述第二相對差別除以第二衰減參數(shù)AF2,其中選擇所述第一衰減參數(shù)AFl和所述第二衰減參數(shù)AF2以使得防止對所述當(dāng)前編碼率的過度或快速過調(diào)并且確保所述調(diào)整步驟的穩(wěn)定性。
[0037]在本發(fā)明的另一實施方式中,步驟(iii)包括只有在未檢測到所述轉(zhuǎn)碼媒體片段的傳輸中存在暫停的條件下才對所述當(dāng)前編碼率進(jìn)行調(diào)整。
[0038]在本發(fā)明的所述另一實施方式中,步驟(i i i )還包括檢測所述暫停,其中包括:[0039]計算時鐘間隔平均和當(dāng)前時鐘間隔,其中所述時鐘間隔平均是自對所述媒體文件的編碼已經(jīng)開始以來的過去當(dāng)前時鐘間隔的平均,所述當(dāng)前時鐘間隔是在當(dāng)前時間和上次編碼的之前時間之間測量的;以及
[0040]在所述當(dāng)前時鐘間隔超出所述當(dāng)前間隔平均預(yù)定差額XC的情況下,確定檢測到所述暫停。
[0041]上述方法還包括在滿足下列條件的情況下確定檢測到所述暫停:
[0042]已經(jīng)出現(xiàn)了至少兩個當(dāng)前時鐘間隔;以及
[0043]所述暫停已經(jīng)被檢測到的次數(shù)小于檢測到暫停的最大次數(shù)(MP)。
[0044]所述方法還包括在所述當(dāng)前時鐘間隔超出所述時鐘間隔平均乘以參數(shù)M的情況下確定檢測到暫停。所述方法還包括在檢測到所述暫停的情況下以所述平均時鐘間隔取代所述當(dāng)前時鐘間隔。在本發(fā)明的實施方式中,MP是3,XC是1,且M是4。
[0045]根據(jù)本發(fā)明的另一方面,提供了用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到移動單元的變化帶寬鏈路上進(jìn)行實時傳輸?shù)拿襟w處理系統(tǒng),該媒體處理系統(tǒng)包括:
[0046]處理器和具有存儲在其上的用于由所述處理器執(zhí)行的計算機(jī)可讀指令的非瞬時性計算機(jī)可讀存儲媒介,形成:
[0047]轉(zhuǎn)碼器,被配置為將所述媒體文件的一個或多個片段轉(zhuǎn)碼成轉(zhuǎn)碼媒體片段,以形成流片段;以及
[0048]動態(tài)比特率適配器,被配置為將所述轉(zhuǎn)碼器的當(dāng)前編碼比特率作為之前形成的流片段的估計傳送時間的函數(shù)進(jìn)行調(diào)整,所述估計傳送時間是將所述之前形成的媒體片段從所述轉(zhuǎn)碼器傳遞并由所述變化帶寬鏈路消耗所需的時間間隔。
[0049]在上述媒體處理系統(tǒng)中,所述動態(tài)比特率適配器還被配置為將所述當(dāng)前編碼率作為所述流片段在所述移動單元處的估計顯示時間的函數(shù)進(jìn)行調(diào)整,該估計顯示時間是從與兩個之前形成的流片段相關(guān)聯(lián)的時間戳導(dǎo)出的。
[0050]所述媒體處理系統(tǒng)還包括轉(zhuǎn)碼器緩沖器,該轉(zhuǎn)碼器緩沖器適于將轉(zhuǎn)碼媒體片段轉(zhuǎn)發(fā)到網(wǎng)絡(luò)、以及將與所述轉(zhuǎn)碼媒體片段中的至少一些轉(zhuǎn)碼媒體片段相關(guān)聯(lián)的時間戳發(fā)送到所述動態(tài)比特率適配器。
[0051 ] 所述動態(tài)比特率適配器包括:
[0052]掛鐘模塊,用于追蹤所述當(dāng)前時間;以及
[0053]服務(wù)質(zhì)量(QoS)調(diào)整器,被配置為將所述當(dāng)前時間和所述時間戳處理成QoS值,該QoS值將被發(fā)送到所述轉(zhuǎn)碼器以用于隨時對所述轉(zhuǎn)碼器的編碼比特率進(jìn)行調(diào)整。
[0054]在上述媒體處理系統(tǒng)中,動態(tài)比特率適配器還包括暫停檢測器,該暫停檢測器被配置為檢測所述轉(zhuǎn)碼媒體片段的傳輸?shù)闹袛?、以及在檢測到所述中斷的情況下抑制所述動態(tài)比特率適配器對所述當(dāng)前編碼率的調(diào)整。
[0055]所述動態(tài)比特率適配器還被配置為將所述當(dāng)前編碼率作為所述當(dāng)前編碼率的函數(shù)進(jìn)行調(diào)整。
[0056]在本方面的一種實施方式中,所述動態(tài)比特率適配器還被配置為將所述估計傳送時間估計為當(dāng)前時間和上次編碼的之前時間之間的當(dāng)前時鐘間隔。
[0057]所述動態(tài)比特率適配器還被配置為:[0058]確定當(dāng)前緩沖器間隔,該當(dāng)前緩沖器間隔表示之前流片段在所述移動單元處的估計顯示時間,所述當(dāng)前緩沖器間隔是從嵌入在兩個之前形成的流片段中的時間戳導(dǎo)出的;
[0059]將所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔進(jìn)行比較;以及
[0060]將所述當(dāng)前編碼率作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔的函數(shù)進(jìn)行調(diào)
難
iF.0
[0061]所述動態(tài)比特率適配器還被配置為在所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔之間有預(yù)定量的差別的情況下對所述當(dāng)前編碼率進(jìn)行調(diào)整。
[0062]根據(jù)本發(fā)明的另一方面,其中提供了用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到移動單元的變化帶寬鏈路上進(jìn)行實時傳輸?shù)姆椒?,該方法包?
[0063]采用至少一個處理器,以用于:
[0064](a)以等于初始編碼率的當(dāng)前編碼率將所述媒體文件的至少第一片段編碼成轉(zhuǎn)碼媒體片段以形成流片段,以及傳送所述流片段;
[0065](b)基于之前傳送的流片段的估計傳送時間將所述當(dāng)前編碼率重新評估成新編碼率,所述估計傳送時間是將被所述變化帶寬鏈路消耗的所述流片段所需要的時間間隔;
[0066](c)將所述當(dāng)前編碼率設(shè)置為等于所述新編碼率;
[0067](d)以所述當(dāng)前編碼率將所述媒體文件的另一片段編碼成轉(zhuǎn)碼媒體片段;以及
[0068](e)重復(fù)步驟(b)到(d),直到所述媒體文件或媒體文件的一部分已經(jīng)被完全轉(zhuǎn)碼。
[0069]在上述方法中,步驟(b)包括將所述估計傳送時間估計為當(dāng)前時間和上次重新評估的之前時間之間的當(dāng)前時鐘間隔。
[0070]所述步驟(b)還包括:
[0071]確定當(dāng)前緩沖器間隔,該當(dāng)前緩沖器間隔表示上一個流片段在所述移動單元處的估計顯示時間,所述當(dāng)前緩沖器間隔是從嵌入在所述上一個和之前的流片段的所述轉(zhuǎn)碼媒體片段中的至少一些轉(zhuǎn)碼媒體片段中的時間戳導(dǎo)出的;
[0072]將所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔進(jìn)行比較;以及
[0073]在所述當(dāng)前時鐘間隔不同于所述當(dāng)前緩沖器間隔的情況下,對所述當(dāng)前編碼率進(jìn)行修改。
[0074]在上述方法中,所述當(dāng)前編碼率是作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔的函數(shù)被修改的。
[0075]在上述方法中,步驟(b)還包括將所述新編碼率作為所述當(dāng)前編碼率、以及上一個流片段在所述移動單元處的估計顯示時間的函數(shù)進(jìn)行計算,所述估計顯示時間是嵌入在所述上一個和之前的流片段的所述轉(zhuǎn)碼媒體片段中的至少一些轉(zhuǎn)碼媒體片段中的時間戳的函數(shù)。
[0076]例如,所述函數(shù)可以是當(dāng)前編碼率和調(diào)整參數(shù)的乘積,其中所述調(diào)整參數(shù)取決于所述估計顯示時間和所述估計傳送時間。
[0077]在本發(fā)明的實施方式中,步驟(b)包括僅在N秒的當(dāng)前時鐘間隔過去后重新評估當(dāng)前編碼率。
[0078]在本發(fā)明的替換實施方式中,步驟(b)還包括檢測所述轉(zhuǎn)碼媒體片段的傳輸?shù)闹袛啵约霸跈z測到所述中斷的情況下抑制對所述當(dāng)前編碼率的調(diào)整。[0079]從而,提供了用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到移動單元的帶寬改變的鏈路上進(jìn)行實時傳輸?shù)母倪M(jìn)方法和系統(tǒng)。
【專利附圖】
【附圖說明】
[0080]現(xiàn)在通過具體示例的方式結(jié)合附圖對本發(fā)明的實施方式進(jìn)行描述,其中:
[0081]圖1示出了現(xiàn)有技術(shù)的媒體傳輸系統(tǒng)100 ;
[0082]圖2示出了根據(jù)本發(fā)明的實施方式的媒體傳遞系統(tǒng)200,其中包括可變比特率轉(zhuǎn)碼器202 ;
[0083]圖3示出了可變比特率轉(zhuǎn)碼器系統(tǒng)300的簡化框圖,其中包括圖2的可變比特率轉(zhuǎn)碼器202 ;
[0084]圖4示出了根據(jù)本發(fā)明的實施方式的動態(tài)比特率調(diào)節(jié)進(jìn)程400的流程圖;
[0085]圖5是圖4的QoS重新評估步驟408的更為詳細(xì)的流程圖;
[0086]圖6示出了圖5的步驟508 “初始化QoS計算”的擴(kuò)展流程圖;
[0087]圖7示出了圖5的步驟520 “檢測暫?!钡臄U(kuò)展流程圖;
[0088]圖8示出了圖5的步驟524 “處理暫?!钡臄U(kuò)展流程圖;
[0089]圖9是圖5的步驟528 “計算QoS”的擴(kuò)展流程圖;
[0090]圖10是圖4的步驟412 “應(yīng)用新的QoS值”的擴(kuò)展流程圖;
[0091]圖11示出了根據(jù)本發(fā)明的另一實施方式的修改動態(tài)比特率調(diào)節(jié)進(jìn)程1100的流程圖;
[0092]圖12是圖11的分段QoS重新評估步驟1108的更為詳細(xì)的流程圖;以及
[0093]圖13是圖12的“初始化分段QoS計算”步驟1206的更為詳細(xì)的流程圖。
【具體實施方式】
[0094]本發(fā)明的實施方式的目標(biāo)是提高通過帶寬隨時間改變的網(wǎng)絡(luò)的HTTP多媒體傳遞中的用戶體驗。這通過動態(tài)改變多媒體文件的編碼率以匹配可用帶寬來實現(xiàn)。
[0095]可在ICAP協(xié)議上實施所述方案,但到裝置的最終傳遞是基于HTTP的,并且所述方案均等地適用于兩種協(xié)議。
[0096]當(dāng)用戶通過移動網(wǎng)絡(luò)流傳輸視頻時,網(wǎng)絡(luò)經(jīng)常不具有足夠的可用帶寬來提供近乎實時的傳遞。結(jié)果,由于視頻在端裝置上拖延,觀看體驗的質(zhì)量很差。
[0097]為了避免這一問題,根據(jù)發(fā)明的實施方式,通過隨時調(diào)整當(dāng)前編碼率以近似地匹配可用帶寬來調(diào)節(jié)媒體的編碼率。當(dāng)使用HTTP協(xié)議進(jìn)行流傳輸時,客戶端應(yīng)用不向服務(wù)器發(fā)送任何反饋,并且基本的傳輸控制協(xié)議(TCP)連接信息不能被可靠地使用。
[0098]現(xiàn)有方案將實時流傳輸協(xié)議(RTSP)用作控制協(xié)議,其中通過用戶數(shù)據(jù)報協(xié)議(UDP)的實時傳輸協(xié)議(RTP)用于數(shù)據(jù)傳遞。當(dāng)使用這些協(xié)議時,視頻播放器每秒若干次將反饋從移動單元發(fā)送到服務(wù)器。該反饋還包括關(guān)于網(wǎng)絡(luò)修復(fù)(分組丟失、抖動等)的信息,而且允許自動調(diào)整編碼率。授權(quán)給Francis R.Labonte等人的題為“DATA STREAMING THROUGHTIME-VARYING TRANSPORT MEDIA”的美國專利7,844,725的全部內(nèi)容在這里通過引用而視為加入,其公開了用于在隨時間變化的連接上進(jìn)行數(shù)據(jù)流傳輸?shù)姆椒ā?br>
[0099]使用HTTP來代替RTSP和RTP的組合是讓人期待的,這是因為HTTP是普遍的網(wǎng)頁協(xié)議。其用來傳輸幾乎任何類型的數(shù)據(jù)。由于HTTP支持是針對網(wǎng)頁客戶端和服務(wù)器兩者的要求,通過HTTP傳輸視頻對于在不使用諸如RTSP/RTP的只為更特定目的提供服務(wù)的并行協(xié)議的情況下最大化客戶端和服務(wù)器之間的互操作性來講是天然合適的。類似的示例,可考慮文件下載。文件傳輸協(xié)議(FTP)是特別針對該目的設(shè)計的,但如今,網(wǎng)頁上的相當(dāng)比例的文件都是通過HTTP而不是FTP傳輸?shù)摹?br>
[0100]另一考慮是設(shè)備的互操作性。HTTP是廣泛互操作的。其在服務(wù)器側(cè)和客戶端側(cè)都具有數(shù)不盡的實施。Apache作為其實際的參考實施,每個客戶端都可與之互操作。另一方面,RTSP則在許多商業(yè)實施中產(chǎn)生非兼容性問題(還可參見關(guān)于HTTP與RTSP/RTP比較的文章:http://www.remlab.net/op/vod.shtml)。
[0101]然而,當(dāng)在音頻和視頻流傳輸中使用HTTP時,關(guān)于所述傳遞的唯一可用信息來自TCP連接,其在操作系統(tǒng)層被管理,并且未意識到多媒體。同樣,在多媒體服務(wù)器和客戶端之間還經(jīng)常發(fā)現(xiàn)代理服務(wù)器。這些代理服務(wù)器處理與客戶端裝置之間的連接,并且它們建立它們自己的連接。本發(fā)明的實施方式在不需要從接收客戶端到流傳輸服務(wù)器的顯性反饋的情況下使得能夠在HTTP連接上進(jìn)行有效的音頻和視頻流傳輸。
[0102]圖2示出了根據(jù)本發(fā)明的實施方式的媒體傳遞系統(tǒng)200,該媒體傳遞系統(tǒng)200包括可變比特率轉(zhuǎn)碼器202,可變比特率轉(zhuǎn)碼器202為在可變帶寬鏈路204上從媒體服務(wù)器計算裝置108傳送到移動單元104中的移動視頻應(yīng)用206的媒體文件提供動態(tài)比特率調(diào)節(jié)。優(yōu)選地,到移動(目的地)單元104的可變帶寬鏈路204提供到HTTP代理服務(wù)器計算裝置112的HTTP連接。在圖2中,我們示出到移動單元104的HTTP鏈路204。該鏈路可以是直接鏈路,例如實驗室中,或者通過因特網(wǎng),包括到移動單元104自身的無線點(wireless drop)。
[0103]移動單元104是例如智能手機(jī)、膝上電腦、平板、或用來設(shè)置媒體會話的另一像計算機(jī)一樣的裝置之類的裝置。
[0104]移動視頻應(yīng)用206包括存儲在諸如存儲器的計算機(jī)可讀存儲媒介中用于供處理器執(zhí)行的計算機(jī)可讀指令。
[0105]在一種實施方式中,可變比特率轉(zhuǎn)碼器202包括存儲在諸如存儲器的計算機(jī)可讀存儲媒介中用于供處理器執(zhí)行的計算機(jī)可讀指令??商鎿Q地,可在固件中實施可變比特率轉(zhuǎn)碼器202。
[0106]可變比特率轉(zhuǎn)碼器202被示為嵌入在ICAP服務(wù)器110中,該ICAP服務(wù)器110通過ICAP鏈路耦合到HTTP代理服務(wù)器112,應(yīng)該理解的是,可變比特率轉(zhuǎn)碼器202還可以替換地被嵌入在HTTP代理服務(wù)器112中或媒體服務(wù)器108中。
[0107]圖3示出了可變比特率轉(zhuǎn)碼器系統(tǒng)300的簡化框圖,可變比特率轉(zhuǎn)碼器系統(tǒng)300包括媒體處理服務(wù)器302,媒體處理服務(wù)器302是計算裝置,至少包括程序存儲存儲器304、CPU306和網(wǎng)絡(luò)接口 308,以及圖2的可變比特率轉(zhuǎn)碼器202??勺儽忍芈兽D(zhuǎn)碼器202被優(yōu)選地實現(xiàn)為包括存儲在程序存儲存儲器304中并由CPU306執(zhí)行的指令的軟件模塊。在本發(fā)明的各種實施方式中,媒體處理器服務(wù)器302可表示媒體服務(wù)器108、因特網(wǎng)內(nèi)容調(diào)節(jié)協(xié)議(ICAP)服務(wù)器108、或超文本傳輸協(xié)議(HTTP)代理服務(wù)器112。
[0108]可變比特率轉(zhuǎn)碼器202包括動態(tài)比特率適配器310、會話變量存儲模塊312、轉(zhuǎn)碼器314、轉(zhuǎn)碼緩沖器316和掛鐘318。動態(tài)比特率適配器310包括QoS調(diào)整器模塊320和暫停檢測器模塊322。會話變量存儲模塊312包括配置文件324和保存變量存儲326。從而,在本發(fā)明的一種實施方式中,可變比特率轉(zhuǎn)碼器202的上述模塊310、312、314、316、318、320,322和324包括存儲在計算機(jī)存儲器中供處理器執(zhí)行的計算機(jī)可讀指令。
[0109]網(wǎng)絡(luò)接口 308包括硬件(物理接口)和軟件(協(xié)議)。
[0110]CPU306運行操作系統(tǒng)(OS,未示出),例如Linux,其中包括協(xié)議。
[0111]OS還提供基于在計算機(jī)中可用的時鐘芯片的定時服務(wù),可從其中導(dǎo)出當(dāng)前時間(CT)。這在掛鐘318模塊中展現(xiàn)。
[0112]DBRA310模塊在需要時從OS軟件(核)讀取時間(掛鐘時間),但掛鐘318模塊可能對其進(jìn)行修飾,例如對其進(jìn)行縮放或偏移,以及保持本地“掛鐘”變量,該變量在轉(zhuǎn)碼媒體片段傳輸開始時從零開始計時,并從而使得當(dāng)前時間(CT)對DBRA310可用。
[0113]在操作過程中,通過轉(zhuǎn)碼緩沖器316、網(wǎng)絡(luò)接口 308和通過可變帶寬鏈路204(其中網(wǎng)絡(luò)接口 308的功能是實施作為諸如HTTP的應(yīng)用協(xié)議的基礎(chǔ)的可靠傳輸控制協(xié)議(TCP)),轉(zhuǎn)碼器314接收媒體文件328、將媒體文件328轉(zhuǎn)碼或編碼成適于向移動單元104傳輸?shù)谋忍芈省?br>
[0114]在傳送一個或多個轉(zhuǎn)碼媒體片段(還將被稱作流片段)的過程中使用的時間間隔,依賴于可變帶寬鏈路204上可用的帶寬并受到可靠傳輸控制協(xié)議(TCP)的控制。從而,可通過在連續(xù)流片段離開轉(zhuǎn)碼器緩沖器316時觀測時刻(instance)來計算在流片段的傳輸過程中使用的近似時間,其中從掛鐘318的輸出獲得時間值。計算的傳送時間被稱為“估計傳送時間”。
[0115]為了闡明表示“傳送時間”或“估計傳送時間”,應(yīng)該注意的是,這可以有效地作為以可變帶寬鏈路204的比特率順次傳送轉(zhuǎn)碼片段所需的時間段,即轉(zhuǎn)碼片段在離開可變比特率轉(zhuǎn)碼器202的同時所占用的時間。其并不是可變比特率轉(zhuǎn)碼器202和移動單元104之間的延遲時間,該延遲時間是未知的且與本發(fā)明的實施方式的操作無關(guān)。
[0116]估計傳送時間是將從轉(zhuǎn)碼器傳遞并由帶寬變化鏈路所消耗的一個或多個之前的流片段所需的時間間隔。
[0117]應(yīng)該理解的是,在優(yōu)選實施方式的變形中,還可從較早的流片段中導(dǎo)出估計傳送時間,其中所述較早的流片段并不緊挨在估計的時間之前。
[0118]動態(tài)比特率適配器310監(jiān)控來自轉(zhuǎn)碼器緩沖器316的時間戳,并使用掛鐘和會話變量312執(zhí)行算法,以用于估計可變帶寬鏈路204上的可用帶寬以及相應(yīng)地調(diào)整當(dāng)前服務(wù)質(zhì)量(QoS)值。轉(zhuǎn)碼器314然后相應(yīng)地應(yīng)用當(dāng)前QoS值來調(diào)整當(dāng)前編碼比特率。在下文中,術(shù)語“轉(zhuǎn)碼比特率”、“編碼率”和“QoS值”在本申請中可交替使用?!稗D(zhuǎn)碼比特率”和“編碼率”直接指的是來自轉(zhuǎn)碼器314的轉(zhuǎn)碼操作的結(jié)果比特率;“QoS值”是輸入到轉(zhuǎn)碼器314的參數(shù),其用于控制編碼率,從而間接地指明編碼率。
[0119]當(dāng)發(fā)起會話時,包括初始QoS值的會話參數(shù)被確定并被存儲在配置文件324中。
[0120]在QoS調(diào)整器模塊320中周期性地計算新的QoS值,其使用比特率調(diào)節(jié)功能來比較估計傳送時間,即把流片段(包括一個或多個轉(zhuǎn)碼片段)從可變比特率轉(zhuǎn)碼器202傳送所花費的時間。估計傳送時間在下文中還被稱作當(dāng)前時鐘間隔,以及估計顯示時間,即在移動單元104中顯示相同流片段所需的時間,正如嵌入在流中的時間戳所指示的一樣。估計顯示時間(還被稱為當(dāng)前緩沖器間隔)是在流片段的時間戳中隱式指明的時間,其中所述流片段的時間戳供移動單元的顯示功能在實時顯示所述流片段的過程中使用。之前觀測和計算的值(比如在開始發(fā)送流片段時的掛鐘時間和時間戳)以及在計算間隔平均的過程中需要的值被保留在保存變量存儲326中。在本發(fā)明的實施方式中,當(dāng)前時鐘間隔等于至少3秒的調(diào)節(jié)刷新間隔。
[0121]應(yīng)該理解的是,鏈路204上可用的比特率并不是直接可觀測的,而且關(guān)于移動單元104中的任何緩沖器的占用情況的任何信息也都不是可用的。然而,在按照所嵌入的時間戳所指示實時接收、緩沖以及顯示所述視頻流的時候,移動單元104將隨時自動接收附加流片段。在這種情況中,舉例來講,由基礎(chǔ)網(wǎng)絡(luò)協(xié)議(TCP)來管轄傳輸速率。只要可變比特率轉(zhuǎn)碼器202能夠如掛鐘時間所測那樣實時發(fā)送每個這種片段,則鏈路比特率是足夠的。但如果比特率不夠,則這將在可變比特率轉(zhuǎn)碼器202中被檢測到,這是因為之前的流片段不能在足夠短的時間內(nèi)被發(fā)送。當(dāng)假定移動單元104具有用來平滑比特率變化的接收緩沖器時,如果鏈路比特率長時間不夠,則該接收緩沖器將餓死(starve)。為了避免這一情況,可變比特率轉(zhuǎn)碼器202將需要縮減編碼率(QoS)。
[0122]類似地,當(dāng)可用比特率大得多時,傳送一個流片段比時間戳所指示的時間間隔所花時間要少,并且QoS值能夠增加。下文在圖9中對QoS調(diào)整器模塊320的功能進(jìn)行詳細(xì)描述。
[0123]當(dāng)在移動單元104中對流的顯示被臨時暫停時,即轉(zhuǎn)碼媒體片段的傳輸中斷發(fā)生時,可變比特率轉(zhuǎn)碼器202將不能發(fā)送附加流片段。提供了暫停檢測器模塊322,以檢測這一狀況以及避免錯誤地調(diào)整QoS值。
[0124]如在針對給定的原始和轉(zhuǎn)碼媒體文件格式的格式標(biāo)準(zhǔn)文檔中所規(guī)定的那樣將時間戳嵌入到原始和轉(zhuǎn)碼媒體中。時間戳被嵌入到至少一些轉(zhuǎn)碼媒體片段中,而不管其格式如何。下表I示出了支持時間戳的公共媒體文件格式和標(biāo)準(zhǔn)編解碼器的部分列表。定義相關(guān)實時時刻的時間戳被用來將移動單元104中的接收的視頻序列的實時顯示鎖定為原始視頻序列的相應(yīng)的實時序列。作為結(jié)果,可通過在轉(zhuǎn)碼媒體片段被傳送時觀測在這些轉(zhuǎn)碼媒體片段中的時間戳并從而計算“估計顯示時間”來在可變比特率轉(zhuǎn)碼器202處估計所述“顯示時間”,即通過在移動單元處常規(guī)(非快進(jìn))顯示一個或多個轉(zhuǎn)碼媒體分段所占用的時間間隔。
[0125]表1:文件格式和編解碼器標(biāo)準(zhǔn)
[0126]
【權(quán)利要求】
1.一種用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到目的地單元的變化帶寬鏈路上進(jìn)行實時傳輸?shù)姆椒?,該方法包? 采用至少一個處理器,以用于: (i)將所述媒體文件的一個或多個片段編碼成轉(zhuǎn)碼媒體片段,以形成流片段; (ii)確定之前形成的流片段的估計傳送時間,該估計傳送時間是將所述之前形成的流片段從轉(zhuǎn)碼器傳遞并由所述變化帶寬鏈路消耗所需的時間間隔;以及 (iii)將所述轉(zhuǎn)碼媒體片段的當(dāng)前編碼率作為所述估計傳送時間的函數(shù)來調(diào)整。
2.根據(jù)權(quán)利要求1所述的方法,其中步驟(i)包括: 以初始編碼率將所述媒體文件的至少第一片段編碼成相應(yīng)的第一轉(zhuǎn)碼媒體片段;以及 將所述當(dāng)前編碼率設(shè)置為等于所述初始編碼率; 并且步驟(iii)包括以經(jīng)過調(diào)整的當(dāng)前編碼率將所述媒體文件的隨后片段編碼成相應(yīng)的轉(zhuǎn)碼媒體片段。
3.根據(jù)權(quán)利要求1或2所述的方法,其中步驟(iii)還包括將所述當(dāng)前編碼率作為所述流片段在所述目的地單元處的估計顯示時間的函數(shù)進(jìn)行調(diào)整,所述估計顯示時間是從與兩個之前形成的流片段相關(guān)聯(lián) 的時間戳導(dǎo)出的。
4.根據(jù)權(quán)利要求1-3中的任一項所述的方法,其中步驟(ii)還包括將所述估計傳送時間作為當(dāng)前時間與上次編碼的之前的時間之間的當(dāng)前時鐘間隔進(jìn)行估計。
5.根據(jù)權(quán)利要求4所述的方法,其中步驟(iii)還包括: 確定當(dāng)前緩沖器間隔,該所述當(dāng)前緩沖器間隔表示之前的流片段在所述目的地單元處的估計顯示時間,所述當(dāng)前緩沖器間隔是從嵌入在兩個之前形成的流片段中的時間戳導(dǎo)出的; 將所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔進(jìn)行比較;以及 將所述當(dāng)前編碼率作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔的函數(shù)進(jìn)行調(diào)整。
6.根據(jù)權(quán)利要求5所述的方法,其中所述調(diào)整還包括: 在所述當(dāng)前緩沖器間隔與所述當(dāng)前時鐘間隔之間的第一相對差別超出第一預(yù)定閾值THl的情況下,將所述當(dāng)前編碼率增加第一增量值,所述第一增量值是從所述第一相對差別計算得到的;以及 在所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔之間的第二相對差別超出第二預(yù)定閾值TH2的情況下,將所述當(dāng)前編碼率減少第二增量值,所述第二增量值是從所述第二相對差別計算得到的。
7.根據(jù)權(quán)利要求1-6中的任一項所述的方法,其中步驟(iii)還包括檢測所述轉(zhuǎn)碼媒體片段的傳輸?shù)闹袛唷⒁约霸跈z測到所述中斷的情況下抑制對所述當(dāng)前編碼率的調(diào)整。
8.根據(jù)權(quán)利要求7所述的方法,其中檢測所述傳輸?shù)闹袛喟? 計算時鐘間隔平均、當(dāng)前時鐘間隔,所述時鐘間隔平均是自對所述媒體文件的編碼已經(jīng)開始以來的過去的當(dāng)前時鐘間隔的平均,所述當(dāng)前時鐘間隔是在當(dāng)前時間與上次編碼的之前的時間之間測量的;以及 在所述當(dāng)前時鐘間隔超出所述當(dāng)前間隔平均預(yù)定差額XC的情況下,確定檢測到所述中斷。
9.一種用于對媒體文件或媒體文件的一部分進(jìn)行編碼以用于在到目的地單元的變化帶寬鏈路上進(jìn)行實時傳輸?shù)拿襟w處理系統(tǒng),該媒體處理系統(tǒng)包括: 處理器和具有存儲在其上的用于由所述處理器執(zhí)行的計算機(jī)可讀指令的非瞬時性計算機(jī)可讀存儲媒介,形成: 轉(zhuǎn)碼器,被配置為將所述媒體文件的一個或多個片段轉(zhuǎn)碼成轉(zhuǎn)碼媒體片段,以形成流片段;以及 動態(tài)比特率適配器,被配置為將所述轉(zhuǎn)碼器的當(dāng)前編碼比特率作為之前形成的流片段的估計傳送時間的函數(shù)進(jìn)行調(diào)整,所述估計傳送時間是將所述之前形成的媒體片段從所述轉(zhuǎn)碼器傳遞并由所述變化帶寬鏈路消耗所需的時間間隔。
10.根據(jù)權(quán)利要求9所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器還被配置為將所述估計傳送時間估計為當(dāng)前時間與上次編碼的之前的時間之間的當(dāng)前時鐘間隔。
11.根據(jù)權(quán)利要求9或10所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器還被配置為將所述當(dāng)前編碼率作為所述流片段在所述目的地單元處的估計顯示時間的函數(shù)進(jìn)行調(diào)整,所述估計顯示時間是從與兩個之前形成的流片段相關(guān)聯(lián)的時間戳導(dǎo)出的。
12.根據(jù)權(quán)利要求9-11中的任一項所述的媒體處理系統(tǒng),該媒體處理系統(tǒng)還包括轉(zhuǎn)碼器緩沖器,該轉(zhuǎn)碼器緩沖器適于將轉(zhuǎn)碼媒體片段轉(zhuǎn)發(fā)到網(wǎng)絡(luò)、以及將與所述轉(zhuǎn)碼媒體片段中的至少一些轉(zhuǎn)碼媒體片段相關(guān)聯(lián)的時間戳發(fā)送到所述動態(tài)比特率適配器。
13.根據(jù)權(quán)利要求1 0-12中的任一項所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器還被配置為: 確定當(dāng)前緩沖器間隔,該當(dāng)前緩沖器間隔表示之前的流片段在所述目的地單元處的估計顯示時間,所述當(dāng)前緩沖器間隔是從嵌入在兩個之前形成的流片段中的時間戳導(dǎo)出的; 將所述當(dāng)前時鐘間隔與所述當(dāng)前緩沖器間隔進(jìn)行比較;以及 將所述當(dāng)前編碼率作為所述當(dāng)前時鐘間隔和所述當(dāng)前緩沖器間隔的函數(shù)進(jìn)行調(diào)整。
14.根據(jù)權(quán)利要求10-13中的任一項所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器包括: 掛鐘模塊,用于追蹤所述當(dāng)前時間;以及 服務(wù)質(zhì)量(QoS)調(diào)整器,被配置為將所述當(dāng)前時間和所述時間戳處理成QoS值,該QoS值將被發(fā)送到所述轉(zhuǎn)碼器以用于對所述轉(zhuǎn)碼器的編碼比特率進(jìn)行調(diào)整。
15.根據(jù)權(quán)利要求9-14中的任一項所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器還被配置為將所述當(dāng)前編碼率作為所述當(dāng)前編碼率的函數(shù)進(jìn)行調(diào)整。
16.根據(jù)權(quán)利要求9-15中的任一項所述的媒體處理系統(tǒng),其中所述動態(tài)比特率適配器還包括暫停檢測器,該暫停檢測器被配置為檢測所述轉(zhuǎn)碼媒體片段的傳輸?shù)闹袛?、以及在檢測到所述中斷的情況下禁止所述動態(tài)比特率適配器對所述當(dāng)前編碼率進(jìn)行調(diào)整。
【文檔編號】H04N19/146GK103733632SQ201280039692
【公開日】2014年4月16日 申請日期:2012年7月10日 優(yōu)先權(quán)日:2011年8月16日
【發(fā)明者】S·科特, J-N·克勞澤 申請人:萬特里克斯公司