專利名稱:抖動(dòng)緩沖器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及抖動(dòng)緩沖器。具體而言,本發(fā)明涉及從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)。
背景技術(shù):
在實(shí)時(shí)通信事件,諸如音頻或視頻呼叫中,發(fā)送器可以通過通信信道向接收器發(fā)送數(shù)據(jù)。通信信道可以存在于很多不同的可能網(wǎng)絡(luò)中的一個(gè)(或多個(gè))中。例如,通信信道可以存在于因特網(wǎng)或諸如移動(dòng)電信網(wǎng)絡(luò)的無線網(wǎng)絡(luò)中。不利地,在通過通信信道發(fā)送時(shí),數(shù)據(jù)(可能以數(shù)據(jù)分組的形式發(fā)送)可能被延遲或破壞。有多種技術(shù)可以用于應(yīng)對數(shù)據(jù)在通信信道上發(fā)送時(shí)的延遲或破壞。
作為范例,可以在接收器處使用抖動(dòng)緩沖器,以便消除實(shí)時(shí)通信事件中數(shù)據(jù)發(fā)送延遲變化的效應(yīng)。這增大了盡管在分組傳播延遲中的隨機(jī)變化(稱為抖動(dòng))也實(shí)現(xiàn)接收器處數(shù)據(jù)連續(xù)回放的可能性。抖動(dòng)緩沖器置于接收器處,用于在接收器處開始回放之前累積一些數(shù)據(jù)分組,從而向通信事件中引入額外的延遲(抖動(dòng)緩沖器延遲),這有助于適應(yīng)數(shù)據(jù)分組傳播延遲抖動(dòng)。抖動(dòng)緩沖器可以根據(jù)分組傳播延遲中的變化調(diào)整其在通信事件期間的延遲。抖動(dòng)緩沖器還可以對發(fā)自發(fā)送器的、到達(dá)接收器雜亂無章的數(shù)據(jù)分組排序,從而能夠以正確的次序在接收器處回放數(shù)據(jù)分組。抖動(dòng)緩沖器也可以丟棄遲到的數(shù)據(jù)分組,即在實(shí)時(shí)通信事件中在接收器處安排從抖動(dòng)緩沖器播出它們的時(shí)間之后到達(dá)抖動(dòng)緩沖器的數(shù)據(jù)分組。抖動(dòng)緩沖器的狀態(tài)描述抖動(dòng)緩沖器的當(dāng)前條件,可以包括例如抖動(dòng)緩沖器延遲、抖動(dòng)緩沖器尺寸和/或抖動(dòng)緩沖器中可用空間的指示??梢园凑諘r(shí)間量例如秒(或更常見的,毫秒)數(shù)或按照內(nèi)容(例如音頻或視頻數(shù)據(jù))的幀數(shù),表達(dá)抖動(dòng)緩沖器延遲??梢园凑諗?shù)據(jù)量,例如比特、字節(jié)或分組數(shù)量,表達(dá)抖動(dòng)緩沖器大小和抖動(dòng)緩沖器中的可用空間??梢愿鶕?jù)折衷次數(shù)控制抖動(dòng)緩沖器延遲,包括
抖動(dòng)緩沖器延遲和遲到數(shù)據(jù)分組數(shù)量(即在實(shí)時(shí)通信事件中在接收器處安排從抖動(dòng)緩沖器播出它們的時(shí)間之后到達(dá)抖動(dòng)緩沖器的數(shù)據(jù)分組數(shù)量)之間的折衷。盡管更高的抖動(dòng)緩沖器延遲減小了遲到分組的量,但造成的回放延遲增大可以不利地影響實(shí)時(shí)通信的相互作用。因此可以相對于遲到數(shù)據(jù)分組的數(shù)量平衡抖動(dòng)緩沖器延遲。通過這種方式,如果用于通信事件的通信信道上的條件變化,使得遲到數(shù)據(jù)分組的數(shù)量變化,則可以控制抖動(dòng)緩沖器延遲,以平衡遲到數(shù)據(jù)分組數(shù)量的變化。抖動(dòng)緩沖器延遲的調(diào)整和引入到接收信號中的修改量之間的折衷。增大或減小抖動(dòng)緩沖器延遲表示必須要比預(yù)期更慢或更快地在接收器處播出信號的一部分,這可能導(dǎo)致質(zhì)量劣化。不過,在必要時(shí)調(diào)整抖動(dòng)緩沖器延遲仍然可能是有益的,因此可以相對于引入到接收信號中的修改量平衡抖動(dòng)緩沖器的調(diào)整。通過這種方式,接收器能夠控制通信事件中使用的抖動(dòng)緩沖器延遲。
發(fā)明內(nèi)容
發(fā)明人意識(shí)到在實(shí)時(shí)通信事件中處理要發(fā)送到抖動(dòng)緩沖器的數(shù)據(jù)的方式和抖動(dòng)緩沖器的狀態(tài)是互相聯(lián)系的。此外,發(fā)明人意識(shí)到,可能有益的是基于抖動(dòng)緩沖器的狀態(tài)來控制描述如何處理在實(shí)時(shí)通信事件中要從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的處理參數(shù)。類似地,可能有益的是基于用于在實(shí)時(shí)通信事件中處理要從發(fā)送器向抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的處理參數(shù)來控制抖動(dòng)緩沖器的狀態(tài)。在一些實(shí)施例中,可以聯(lián)合地確定處理參數(shù)和抖動(dòng)緩沖器狀態(tài)。根據(jù)本發(fā)明的第一方面,提供了一種從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的方法,所述方法包括在所述發(fā)送器處確定至少一個(gè)處理參數(shù),所述處理參數(shù)描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送;根據(jù)所確定的至少一個(gè)處理參數(shù),處理要從發(fā)送器向抖動(dòng)緩沖器發(fā)送的數(shù)據(jù);基于所確定的至少一個(gè)處理參數(shù)從所述發(fā)送器向所述接收器發(fā)送控制信息,所述控制信息由所述接收器用于控制所述抖動(dòng)緩沖器的狀態(tài);以及在實(shí)時(shí)通信事件中從所述發(fā)送器向所述接收器的抖動(dòng)緩沖器發(fā)送已處理數(shù)據(jù)。有利地,基于(一個(gè)或多個(gè))處理參數(shù),使用控制信息來控制抖動(dòng)緩沖器的狀態(tài)。這允許以將適合在發(fā)送器處理要發(fā)送到抖動(dòng)緩沖器的數(shù)據(jù)的方式的方式來控制抖動(dòng)緩沖器的狀態(tài)。至少一個(gè)處理參數(shù)可以包括任何影響接下來在接收器處如何處理已處理數(shù)據(jù)的參數(shù),以便在接收器處播出。例如,至少一個(gè)處理參數(shù)可以包括如下至少一項(xiàng)(i)用以在處理數(shù)據(jù)期間對數(shù)據(jù)編碼的編碼比特率,(ii) FEC深度,(iii)分組化延遲和(iv)交織延遲。所述控制信息可以指示所確定的至少一個(gè)處理參數(shù),所述方法還可以包括在所述接收器處基于指示的至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài)。替選地,該方法還可以包括在所述發(fā)送器處基于所確定的至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài),其中所述控制信息可以指示所確定的抖動(dòng)緩沖器的狀態(tài)??梢栽谒霭l(fā)送器處聯(lián)合地確定所述至少一個(gè)處理參數(shù)和所述抖動(dòng)緩沖器的狀態(tài)??梢源_定所述處理參數(shù)以由此控制所發(fā)送數(shù)據(jù)的至少一個(gè)質(zhì)量參數(shù)。所發(fā)送數(shù)據(jù)的所述至少一個(gè)質(zhì)量參數(shù)可以包括如下至少一項(xiàng)(i)編碼質(zhì)量,(ii)比特率,和(iii)相 對于分組損失的魯棒性。處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟可以包括對數(shù)據(jù)編碼,其中所述至少一個(gè)處理參數(shù)可以包括用以對數(shù)據(jù)編碼的編碼比特率。所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間,其中可以基于所述編碼比特率確定所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間。所述已處理數(shù)據(jù)可以包括數(shù)據(jù)分組流,并且處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟可以包括產(chǎn)生與所述數(shù)據(jù)分組中的至少一個(gè)相關(guān)的校正數(shù)據(jù)單元,其中所述至少一個(gè)處理參數(shù)可以包括校正深度,所述校正深度設(shè)置允許與所述校正數(shù)據(jù)單元之一相關(guān)的最舊和最新數(shù)據(jù)分組之間的數(shù)據(jù)分組流中的最大可允許位移。所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,其中可以基于校正深度確定抖動(dòng)緩沖器的延遲。所述校正數(shù)據(jù)單元可以是前向糾錯(cuò)數(shù)據(jù)單元,所述校正深度可以是前向糾錯(cuò)深度。
所述數(shù)據(jù)可以包括數(shù)據(jù)單元流,處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟可以包括將所述數(shù)據(jù)單元分組化成要發(fā)送的數(shù)據(jù)分組,其中所述至少一個(gè)處理參數(shù)可以包括分組化延遲,所述分組化延遲設(shè)置從將所述數(shù)據(jù)單元分組化成數(shù)據(jù)分組得到的數(shù)據(jù)單元的最大可允許延遲。所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,其中可以根據(jù)分組化延遲確定抖動(dòng)緩沖器的延遲。處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟可以包括交織要發(fā)送的至少一些數(shù)據(jù)單元,其中至少一個(gè)處理參數(shù)可以包括交織延遲,該交織延遲設(shè)置從交織數(shù)據(jù)單元得到的數(shù)據(jù)單元的最大可允許延遲。所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,其中可以根據(jù)交織延遲確定抖動(dòng)緩沖器的延遲。所述抖動(dòng)緩沖器狀態(tài)可以包括如下至少一項(xiàng)(i)所述抖動(dòng)緩沖器的大小,(ii)所述抖動(dòng)緩沖器的延遲,和(iii)所述抖動(dòng)緩沖器中的可用空間。所述抖動(dòng)緩沖器狀態(tài)可以是所述抖動(dòng)緩沖器的當(dāng)前狀態(tài)或所述抖動(dòng)緩沖器的將來狀態(tài)。
根據(jù)本發(fā)明的第二方面,提供了一種用于向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的發(fā)送器,所述發(fā)送器包括確定模塊,用于確定至少一個(gè)處理參數(shù),所述處理參數(shù)描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送;處理模塊,用于根據(jù)所確定的至少一個(gè)處理參數(shù)處理要從發(fā)送器向抖動(dòng)緩沖器發(fā)送的數(shù)據(jù);以及發(fā)送模塊,用于(i)基于確定的處理參數(shù)向所述接收器發(fā)送控制信息,所述控制信息由所述接收器用于控制所述抖動(dòng)緩沖器的狀態(tài),以及(ii)在實(shí)時(shí)通信事件中向所述接收器的抖動(dòng)緩沖器發(fā)送已處理數(shù)據(jù)。根據(jù)本發(fā)明的第三方面,提供了一種用于從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含在非暫態(tài)計(jì)算機(jī)可讀介質(zhì)上并且配置為使得在處理器上執(zhí)行時(shí)執(zhí)行這里所描述任何方法的步驟。根據(jù)本發(fā)明的第四方面,提供了一種在接收器的抖動(dòng)緩沖器處從發(fā)送器接收實(shí)時(shí)通信事件的數(shù)據(jù)的方法,所述方法包括基于至少一個(gè)處理參數(shù)在所述接收器處從所述發(fā)送器接收控制信息,其中根據(jù)至少一個(gè)處理參數(shù)在所述發(fā)送器處處理數(shù)據(jù)以在實(shí)時(shí)通信事件中發(fā)送;基于接收的控制信息,控制抖動(dòng)緩沖器的狀態(tài);以及在所述接收器的抖動(dòng)緩沖器處從所述發(fā)送器接收所述實(shí)時(shí)通信事件的數(shù)據(jù)。根據(jù)本發(fā)明的第五方面,提供了一種用于從發(fā)送器接收實(shí)時(shí)通信事件的數(shù)據(jù)的接收器,所述接收器包括接收模塊,用于基于至少一個(gè)處理參數(shù)從所述發(fā)送器接收控制信息,其中根據(jù)至少一個(gè)處理參數(shù)在所述發(fā)送器處處理數(shù)據(jù)以在實(shí)時(shí)通信事件中發(fā)送;一種用于從所述發(fā)送器接收實(shí)時(shí)通信事件的數(shù)據(jù)的抖動(dòng)緩沖器;以及用于基于接收的控制信息來控制抖動(dòng)緩沖器的狀態(tài)的控制模塊。根據(jù)本發(fā)明的第六方面,提供了一種用于在接收器的抖動(dòng)緩沖器處從發(fā)送器接收實(shí)時(shí)通信事件的數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含在非暫態(tài)計(jì)算機(jī)可讀介質(zhì)上并且配置為使得在處理器上執(zhí)行時(shí)執(zhí)行這里描述的任一種方法的步驟。根據(jù)本發(fā)明的第七方面,提供了一種用于從這里所描述的發(fā)送器向這里所描述的接收器發(fā)送實(shí)時(shí)通信事件中的數(shù)據(jù)的通信系統(tǒng)。如上所述,在一個(gè)方面中,提供一種在接收器的抖動(dòng)緩沖器處從發(fā)送器接收實(shí)時(shí)通信事件的數(shù)據(jù)的方法,所述方法包括基于至少一個(gè)處理參數(shù)在所述接收器處從所述發(fā)送器接收控制信息,其中根據(jù)至少一個(gè)處理參數(shù)在所述發(fā)送器處處理數(shù)據(jù)以在實(shí)時(shí)通信事件中發(fā)送;基于接收的控制信息,控制抖動(dòng)緩沖器的狀態(tài);以及在所述接收器的抖動(dòng)緩沖器處從所述發(fā)送器接收所述實(shí)時(shí)通信事件的數(shù)據(jù)。所述控制信息可以指示所述至少一個(gè)處理參數(shù),且所述方法還可以包括在所述接收器處基于指示的至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài)?!?br>
可以在所述發(fā)送器處基于所述至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài),且所述控制信息可以指示所確定的抖動(dòng)緩沖器的狀態(tài)。處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)可以包括對數(shù)據(jù)編碼,且所述至少一個(gè)處理參數(shù)可以包括用以對數(shù)據(jù)編碼的編碼比特率,且所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間,其中所述方法還可以包括基于所述編碼比特率確定所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間。所述數(shù)據(jù)可以包括數(shù)據(jù)分組流,且處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)可以包括產(chǎn)生與所述數(shù)據(jù)分組中的至少一個(gè)相關(guān)的校正數(shù)據(jù)單元,且所述至少一個(gè)處理參數(shù)包括校正深度,所述校正深度設(shè)置允許與所述校正數(shù)據(jù)單元之一相關(guān)的最舊和最新數(shù)據(jù)分組之間的數(shù)據(jù)分組流中的最大可允許位移,且所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,其中所述方法還可以包括基于所述校正深度確定所述抖動(dòng)緩沖器的延遲。所述校正數(shù)據(jù)單元可以是前向糾錯(cuò)數(shù)據(jù)單元,所述校正深度可以是前向糾錯(cuò)深度。所述數(shù)據(jù)可以包括數(shù)據(jù)單元流,且處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)可以包括將所述數(shù)據(jù)單元分組化成要發(fā)送的數(shù)據(jù)分組,所述至少一個(gè)處理參數(shù)包括分組化延遲,所述分組化延遲設(shè)置從將所述數(shù)據(jù)單元分組化成數(shù)據(jù)分組得到的數(shù)據(jù)單元的最大可允許延遲,其中所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,且其中所述方法還可以包括根據(jù)所述分組化延遲確定所述抖動(dòng)緩沖器的延遲。所述數(shù)據(jù)可以包括數(shù)據(jù)單元流,且處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)可以包括交織至少一些要發(fā)送的數(shù)據(jù)單元,所述至少一個(gè)處理參數(shù)包括交織延遲,所述交織延遲設(shè)置從交織所述數(shù)據(jù)單元得到的數(shù)據(jù)單元的最大可允許延遲,其中所述抖動(dòng)緩沖器的狀態(tài)可以包括所述抖動(dòng)緩沖器的延遲,且其中所述方法還可以包括根據(jù)所述交織延遲確定所述抖動(dòng)緩沖器的延遲。所述抖動(dòng)緩沖器狀態(tài)可以包括如下至少一項(xiàng)(i)所述抖動(dòng)緩沖器的大小,(ii)所述抖動(dòng)緩沖器的延遲,和(iii )所述抖動(dòng)緩沖器中的可用空間。所述抖動(dòng)緩沖器狀態(tài)可以是所述抖動(dòng)緩沖器的當(dāng)前狀態(tài)或所述抖動(dòng)緩沖器的將來狀態(tài)。
為了更好地理解本發(fā)明并示出如何可以將其付諸實(shí)施,現(xiàn)在將以舉例方式參考以下附圖,其中
圖1示出了根據(jù)優(yōu)選實(shí)施例的通信系統(tǒng);
圖2是根據(jù)優(yōu)選實(shí)施例從發(fā)送器向接收器發(fā)送數(shù)據(jù)的第一過程的流程 圖3是示出了一個(gè)范例中視頻幀序列中字節(jié)數(shù)的曲線 圖4a示出了可以如何產(chǎn)生FEC數(shù)據(jù)單元的第一范例;圖4b示出了可以如何產(chǎn)生FEC數(shù)據(jù)單元的第二范例;
圖4c示出了可以如何產(chǎn)生FEC數(shù)據(jù)單元的第三范例;
圖5是根據(jù)優(yōu)選實(shí)施例利用FEC在通信系統(tǒng)中發(fā)送的數(shù)據(jù)流的圖示;
圖6是根據(jù)優(yōu)選實(shí)施例在通信系統(tǒng)中發(fā)送的分組化數(shù)據(jù)流的圖示;
圖7是根據(jù)優(yōu)選實(shí)施例在通信系統(tǒng)中發(fā)送的交織數(shù)據(jù)流的圖示;
圖8是根據(jù)優(yōu)選實(shí)施例調(diào)節(jié)接收器的抖動(dòng)緩沖器狀態(tài)的過程的流程 圖9是根據(jù)優(yōu)選實(shí)施例從發(fā)送器向接收器發(fā)送數(shù)據(jù)的第二過程的流程圖;以及 圖10是根據(jù)優(yōu)選實(shí)施例從發(fā)送器向接收器發(fā)送數(shù)據(jù)的第三過程的流程圖。
具體實(shí)施例方式現(xiàn)在將僅以舉例的方式描述本發(fā)明的優(yōu)選實(shí)施例。參考圖1,現(xiàn)在描述根據(jù)優(yōu)選實(shí)施例的通信系統(tǒng)100。通信系統(tǒng)100包括發(fā)送器102和接收器108。發(fā)送器102包括用于處理數(shù)據(jù)的處理器104和用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器106。接收器108包括用于處理數(shù)據(jù)的處理器110、用于存儲(chǔ)數(shù)據(jù)的存儲(chǔ)器112和用于從發(fā)送器102接收數(shù)據(jù)的抖動(dòng)緩沖器114。在工作時(shí),發(fā)送器102能夠處理數(shù)據(jù)(例如從存儲(chǔ)器106檢索)以(例如使用處理器104)形成包括多個(gè)數(shù)據(jù)分組的數(shù)據(jù)流。然后可以通過網(wǎng)絡(luò)在通信信道上向接收器108的抖動(dòng)緩沖器114發(fā)送數(shù)據(jù)流。如上所述,在從抖動(dòng)緩沖器輸出以在接收器108處(例如利用處理器110)處理之前,在抖動(dòng)緩沖器中短時(shí)間(亦即,“抖動(dòng)緩沖器延遲”)存儲(chǔ)數(shù)據(jù)。接收器108處的處理可能涉及對來自數(shù)據(jù)流的數(shù)據(jù)解分組和解碼。可以在接收器108處的存儲(chǔ)器112中存儲(chǔ)數(shù)據(jù),或者從接收器108例如向用戶輸出數(shù)據(jù)。數(shù)據(jù)流中的數(shù)據(jù)可能涉及發(fā)送器102的用戶和接收器108的用戶之間的實(shí)時(shí)通信事件(諸如語音呼叫或視頻呼叫)。從發(fā)送器102向接收器108發(fā)送數(shù)據(jù)所經(jīng)的網(wǎng)絡(luò)可以是能夠提供適當(dāng)通信信道的任何適當(dāng)網(wǎng)絡(luò)。網(wǎng)絡(luò)可以是廣域網(wǎng)(WAN)或局域網(wǎng)(LAN)。例如,網(wǎng)絡(luò)可以是內(nèi)部網(wǎng)、因特網(wǎng)或諸如移動(dòng)電話網(wǎng)絡(luò)的電話網(wǎng)??梢栽诜謩e用于通過網(wǎng)絡(luò)發(fā)送和接收數(shù)據(jù)流的任何適當(dāng)設(shè)備或裝置中實(shí)施發(fā)送器102和接收器108。例如,可以將發(fā)送器102和接收器108實(shí)現(xiàn)為用戶裝置,諸如能夠連接到網(wǎng)絡(luò)的個(gè)人計(jì)算機(jī)或電話。抖動(dòng)緩沖器114的狀態(tài)在抖動(dòng)緩沖器114從發(fā)送器102接收到數(shù)據(jù)時(shí)以及在從抖動(dòng)緩沖器114取出數(shù)據(jù)以在接收器108中處理時(shí)而改變。可以根據(jù)從發(fā)送器102接收直到取出以在接收器108中處理將在抖動(dòng)緩沖器114中存儲(chǔ)數(shù)據(jù)的時(shí)間(抖動(dòng)緩沖器延遲),或根據(jù)抖動(dòng)緩沖器114中數(shù)據(jù)內(nèi)容的幀數(shù)或根據(jù)例如測量為抖動(dòng)緩沖器114中存在的數(shù)據(jù)比特?cái)?shù)或字節(jié)數(shù)的數(shù)據(jù)量,由描述抖動(dòng)緩沖器114中當(dāng)前數(shù)據(jù)量的參數(shù)(諸如抖動(dòng)緩沖器114的延遲或大小)描述抖動(dòng)緩沖器114的狀態(tài)。抖動(dòng)緩沖器114的狀態(tài)也可以描述抖動(dòng)緩沖器114中的可用空間,可以將其確定為抖動(dòng)緩沖器114的最大允許大小減去抖動(dòng)緩沖器114的當(dāng)前大小??梢钥闯?,抖動(dòng)緩沖器114的狀態(tài)影響接收器108處如何接收數(shù)據(jù)。因此,在抖動(dòng)緩沖器114的狀態(tài)變化時(shí),可能有利的是 根據(jù)抖動(dòng)緩沖器114的當(dāng)前狀態(tài)改變處理數(shù)據(jù)以發(fā)送到接收器108的方式。因此發(fā)明人意識(shí)到,向發(fā)送器102發(fā)送接收器108的抖動(dòng)緩沖器狀態(tài)(例如抖動(dòng)緩沖器114的當(dāng)前大小或延遲和抖動(dòng)緩沖器114中的可用空間)可能是有益的,其中可以基于抖動(dòng)緩沖器114的狀態(tài)控制發(fā)送器的處理模塊工作。參考圖2,描述了從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送數(shù)據(jù)的第一種方法。在步驟S202中,發(fā)送器102從接收器108的抖動(dòng)緩沖器114接收抖動(dòng)緩沖器狀態(tài)信息(如圖1所示)。抖動(dòng)緩沖器狀態(tài)信息表示抖動(dòng)緩沖器114的當(dāng)前狀態(tài),例如可以指示抖動(dòng)緩沖器114的當(dāng)前延遲或大小,還可以指示抖動(dòng)緩沖器114中的可用空間。抖動(dòng)緩沖器狀態(tài)信息可以指示抖動(dòng)緩沖器114的其他屬性,其在確定如何最好地處理數(shù)據(jù)以從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送時(shí)可能有用。在步驟S204中,基于在步驟S202中接收的抖動(dòng)緩沖器信息來控制發(fā)送器102的至少一個(gè)處理參數(shù)。(一個(gè)或多個(gè))處理參數(shù)描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送??梢栽诓襟ES204中控制的可能處理參數(shù)的范例包括編碼比特率、FEC深度、分組化延遲和交織延遲。下文更詳細(xì)地描述了這些范例。本領(lǐng)域的技術(shù)人員將明了,可以用與這里給出的范例類似的方式控制用于處理數(shù)據(jù)以從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送的其他處理參數(shù)。 在步驟S206中,根據(jù)在步驟S204中確定的(一個(gè)或多個(gè))處理參數(shù)處理數(shù)據(jù)以在發(fā)送器102處發(fā)送??梢杂砂l(fā)送器102中的若干處理模塊處理數(shù)據(jù)。例如,可以有編碼模塊、FEC模塊、分組化模塊和交織模塊。每個(gè)模塊都可以根據(jù)在步驟S204中確定的(一個(gè)或多個(gè))處理參數(shù)工作。通過根據(jù)在步驟S204中確定的(一個(gè)或多個(gè))處理參數(shù)處理數(shù)據(jù),以適于根據(jù)抖動(dòng)緩沖器114的狀態(tài)在抖動(dòng)緩沖器114處被接收這樣的方式處理數(shù)據(jù)。在步驟S208中,從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送已處理數(shù)據(jù)。通過網(wǎng)絡(luò)發(fā)送數(shù)據(jù),不利地,在發(fā)送數(shù)據(jù)時(shí)可能有一些可變延遲或破壞。如上所述,在接收器108處使用抖動(dòng)緩沖器114有助于克服由數(shù)據(jù)發(fā)送時(shí)的可變延遲和破壞引入的問題。因此上文描述了一種從發(fā)送器102向接收器108發(fā)送實(shí)時(shí)通信事件中的數(shù)據(jù)的方法,由此基于在接收器108處接收數(shù)據(jù)的抖動(dòng)緩沖器114的狀態(tài)來控制在發(fā)送器102處處理數(shù)據(jù)以向接收器108發(fā)送的方式。如下文所述,當(dāng)前的抖動(dòng)緩沖器狀態(tài)影響實(shí)時(shí)通信事件中用于處理數(shù)據(jù)以發(fā)送到抖動(dòng)緩沖器114的若干處理模塊的性能。1.編碼器比特率
發(fā)送器102可以包括處理模塊,用于在實(shí)時(shí)通信事件中對數(shù)據(jù)編碼以發(fā)送到接收器108??梢栽诎l(fā)送器102處在硬件或軟件(例如在CPU 104中執(zhí)行)中實(shí)現(xiàn)處理模塊。可以利用任何適當(dāng)?shù)囊阎幋a技術(shù)對數(shù)據(jù)編碼。特定的編碼技術(shù)可能適于不同類型的數(shù)據(jù)。例如,在數(shù)據(jù)包括來自發(fā)送器102用戶的話音時(shí),那么編碼技術(shù)可以包括特定的話音編碼器用于對數(shù)據(jù)的話音部分編碼。也可以使用其他編碼技術(shù),例如,以壓縮要發(fā)送到接收器108的數(shù)據(jù)。利用使編碼數(shù)據(jù)具有特定編碼比特率的編碼比特率來處理數(shù)據(jù)。更高的編碼率典型地導(dǎo)致更高質(zhì)量的信號,但需要通過通信信道向接收器108發(fā)送更多數(shù)據(jù)。發(fā)送器102可以基于要發(fā)送的輸入信號和/或基于要發(fā)送數(shù)據(jù)的通信信道的條件來調(diào)整其編碼比特率。例如,輸入信號可以是視頻信號,編碼器可以在瞬時(shí)比特率中產(chǎn)生突然增大(峰值),如圖3所示。圖3示出了曲線圖,其表示每幀視頻信號一旦在發(fā)送器102處被編碼時(shí)的字節(jié)數(shù)??梢钥闯?,編碼比特率對于每個(gè)視頻幀不同,尤其是在比其他視頻幀高得多的比特率下對一些視頻幀(例如幀編號0和幀編號100)編碼。視頻信號幀的比特率的變化可能發(fā)生,因?yàn)槭褂貌煌木幋a技術(shù)對不同視頻幀編碼。在輸入信號是音頻信號時(shí),可能發(fā)生類似狀況。例如,在獨(dú)立于先前編碼的部分對音頻或視頻信號的一部分編碼時(shí),那么編碼視頻或音頻幀的比特率通常較高。這與可以利用差分編碼技術(shù)編碼的其他視頻或音頻幀相反,因此那些其他視頻或音頻幀的編碼比特率通常較低。編碼比特率突然增大的另一范例是在依賴于先前編碼部分但利用較低比特率高效差分編碼模式對輸入信號的部分編碼時(shí)。在輸入信號是視頻信號時(shí)的實(shí)施例中,對于一些視頻幀防止差分編碼可能是有益的(即使比特率增大),例如,在輸入視頻信號突然改變(例如,視頻信號中的景物變化)的情況下,或在由于分組損失而希望停止錯(cuò)誤傳播效應(yīng)時(shí)。編碼數(shù)據(jù)瞬時(shí)比特率的峰值導(dǎo)致在實(shí)時(shí)通信事件中從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送更大數(shù)據(jù)分組和/或更大數(shù)量的數(shù)據(jù)分組。數(shù)據(jù)量的這種增大必須要被接收器108處的抖動(dòng)緩沖器114適應(yīng)。如果最大允許抖動(dòng)緩沖器大小(例如以比特/字 節(jié)或分組數(shù)表達(dá))低于要放在抖動(dòng)緩沖器114中的數(shù)據(jù)量,那么將丟棄一些數(shù)據(jù)。這可能導(dǎo)致實(shí)時(shí)通信事件中通信系統(tǒng)100的性能降低。在另一種情形中,編碼數(shù)據(jù)瞬時(shí)比特率的峰值導(dǎo)致所得數(shù)據(jù)分組的更高傳播延遲。在這種情況下,在等待新分組到達(dá)時(shí)抖動(dòng)緩沖器具有充分多更早數(shù)據(jù)以為回放提供時(shí),這是有益的。根據(jù)圖2中所示的方法,發(fā)送器102處的編碼模塊可以根據(jù)抖動(dòng)緩沖器114的當(dāng)前大小或根據(jù)抖動(dòng)緩沖器114中當(dāng)前可用空間(亦即,最大允許大小減去當(dāng)前大小)調(diào)整其編碼比特率。編碼比特率是在步驟S204中根據(jù)抖動(dòng)緩沖器114的狀態(tài)控制的處理參數(shù)。如果抖動(dòng)緩沖器114中的可用空間小,那么發(fā)送器102的編碼模塊應(yīng)當(dāng)避免突然增大要發(fā)送到抖動(dòng)緩沖器114的數(shù)據(jù)的比特率。另一方面,實(shí)時(shí)通信事件中數(shù)據(jù)發(fā)送的瓶頸可能是發(fā)送器102和接收器108之間的通信信道(而非抖動(dòng)緩沖器114處的可用空間)。在這種情況下,數(shù)據(jù)比特率的增大可能導(dǎo)致所得的數(shù)據(jù)分組在通過通信信道發(fā)送時(shí)傳播延遲的增大,同時(shí)在等待新分組到達(dá)時(shí)抖動(dòng)緩沖器114可以具有充分多更早數(shù)據(jù)以為回放提供(如抖動(dòng)緩沖器114的當(dāng)前大小所示)。在這種情況下,盡管傳播延遲更高,但編碼器仍然能夠增大比特率(基于抖動(dòng)緩沖器114的當(dāng)前大小指示),因?yàn)槎秳?dòng)緩沖器能夠繼續(xù)輸出其已經(jīng)接收的更早數(shù)據(jù),因此在接收器108處的數(shù)據(jù)輸出中將沒有延遲,并且根據(jù)增大的比特率,數(shù)據(jù)質(zhì)量能夠保持很高。因此可以看出,用于對從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送的數(shù)據(jù)編碼的編碼比特率可以依賴于由在步驟S202中發(fā)送器102處從接收器108接收的抖動(dòng)緩沖器狀態(tài)信息指示的抖動(dòng)緩沖器114狀態(tài)進(jìn)行控制。2.前向糾錯(cuò)
可以將數(shù)據(jù)流中的數(shù)據(jù)分成數(shù)據(jù)分組,以通過發(fā)送器102和接收器108之間的通信信道發(fā)送。在理想的系統(tǒng)中,通信信道是無損的,從而在接收器108的抖動(dòng)緩沖器114處接收從發(fā)送器102通過通信信道發(fā)送的每個(gè)數(shù)據(jù)分組。不過,在真實(shí)的物理系統(tǒng)中,通信信道可能是有損耗的,表示一些發(fā)送的數(shù)據(jù)分組將在通信信道上損失,這樣將不會(huì)在接收器108的抖動(dòng)緩沖器114處被接收。這可能是不利的??梢允褂眯U桨笌椭诮邮掌?08處恢復(fù)至少一些損失的數(shù)據(jù)分組。作為范例,前向糾錯(cuò)(FEC)是可以用于應(yīng)對通信信道中分組損失的一種校正方案。FEC產(chǎn)生除原始數(shù)據(jù)單元之外的冗余數(shù)據(jù)(作為FEC數(shù)據(jù)單元)并包括通過通信信道發(fā)送的數(shù)據(jù)流中的FEC數(shù)據(jù)單元。發(fā)送原始和冗余FEC數(shù)據(jù)的FEC方案被稱為系統(tǒng)FEC方案。不發(fā)送原始數(shù)據(jù)的FEC方案稱為非系統(tǒng)性方案。在后一種情況下,發(fā)送的數(shù)據(jù)總量仍然高于原始數(shù)據(jù)量,以提供冗余性。為簡單起見,但不失一般性,這里討論系統(tǒng)FEC方案??梢詫⑷哂郌EC數(shù)據(jù)單元放在獨(dú)立于數(shù)據(jù)流中數(shù)據(jù)分組的其自己分組中。替選地或此外,可以將FEC數(shù)據(jù)單元附加(或“搭載”)到數(shù)據(jù)流中的原始數(shù)據(jù)分組。為簡單起見,但不失一般性,這里討論獨(dú)立的原始和FEC分組。在一些原始數(shù)據(jù)分組損失于通信信道中時(shí),可以使用成功到達(dá)的FEC數(shù)據(jù)單元和成功到達(dá)的數(shù)據(jù)分組來恢復(fù)(至少一些)損失的數(shù)據(jù)分組。亦即,與通信信道中的實(shí)際分組損失相比,F(xiàn)EC減小了接收器的解碼器看到的分組損失。圖4a、4b和4c示出了可以如何產(chǎn)生FEC數(shù)據(jù)單元的三個(gè)范例。如圖4a所示,可以產(chǎn)生FEC數(shù)據(jù)單元404作為數(shù)據(jù)流中原始數(shù)據(jù)分組402的精確副本。通過在數(shù)據(jù)流中既包括數(shù)據(jù)分組402又包括FEC數(shù)據(jù)單元404,數(shù)據(jù)分組402中的數(shù)據(jù)被發(fā)送兩次。因此,如果 在發(fā)送期間數(shù)據(jù)分組402損失,但成功接收到FEC數(shù)據(jù)單元404,那么可以在接收器處(利用FEC數(shù)據(jù)單元404)成功恢復(fù)數(shù)據(jù)分組402中的數(shù)據(jù)。如圖4b所示,可以使用模塊408來產(chǎn)生FEC數(shù)據(jù)單元410,這是在更低比特率下編碼的原始數(shù)據(jù)分組406的副本。如果在發(fā)送期間數(shù)據(jù)分組406損失,但成功接收到FEC數(shù)據(jù)單元410,那么可以在接收器處基于FEC數(shù)據(jù)單元410至少部分恢復(fù)數(shù)據(jù)分組406中的數(shù)據(jù)。應(yīng)當(dāng)注意,如果數(shù)據(jù)分組402和406具有相同大小(例如相同的比特?cái)?shù)),那么FEC數(shù)據(jù)單元410將比FEC數(shù)據(jù)單元404具有更小的大小(例如更少比特)。因此,盡管FEC數(shù)據(jù)單元404可能在恢復(fù)數(shù)據(jù)分組402時(shí)比FEC數(shù)據(jù)單元410在恢復(fù)數(shù)據(jù)分組406時(shí)更有用,但可能有益的是如圖4b中所示的那樣產(chǎn)生FEC數(shù)據(jù)單元,因?yàn)镕EC數(shù)據(jù)單元410比FEC數(shù)據(jù)單元404為數(shù)據(jù)流使用通信信道上更少的可用比特率。如圖4c所示,可以使用混合模塊418從多個(gè)原始數(shù)據(jù)分組,例如數(shù)據(jù)分組412、414和416產(chǎn)生FEC數(shù)據(jù)單元420。有限域(Galois域)算術(shù)可以用于組合原始數(shù)據(jù)分組。例如,混合模塊418可以確定應(yīng)用于三個(gè)數(shù)據(jù)分組412、414和416的XOR函數(shù)的逐個(gè)比特結(jié)果,以產(chǎn)生FEC數(shù)據(jù)單元420。在另一種方法中,利用Galois域GF (28)算術(shù)逐個(gè)字節(jié)組合數(shù)據(jù)分組412、414和416,以產(chǎn)生FEC數(shù)據(jù)單元420。在這種意義上,F(xiàn)EC數(shù)據(jù)單元420是組合或混合原始數(shù)據(jù)分組412、414和416的結(jié)果。如果在發(fā)送期間數(shù)據(jù)分組412、414和416之一損失,但成功接收到其他兩個(gè)數(shù)據(jù)分組和FEC數(shù)據(jù)單元420,那么可以在接收器處成功恢復(fù)損失數(shù)據(jù)分組中的數(shù)據(jù)(利用另外兩個(gè)數(shù)據(jù)分組和FEC數(shù)據(jù)單元420)。因此可以看出,可以通過若干不同方式產(chǎn)生FEC數(shù)據(jù)單元。不同的FEC方案描述了產(chǎn)生FEC數(shù)據(jù)單元的不同方式。FEC方案可以描述與FEC數(shù)據(jù)單元的產(chǎn)生相關(guān)的因素,諸如產(chǎn)生的FEC數(shù)據(jù)單元的數(shù)量;用于產(chǎn)生FEC數(shù)據(jù)單元的數(shù)據(jù)分組;如何發(fā)送FEC數(shù)據(jù)單元(例如,作為獨(dú)立分組或通過向數(shù)據(jù)分組附加FEC數(shù)據(jù)單元);以及FEC數(shù)據(jù)單元放在數(shù)據(jù)流中哪里。FEC方案的損失恢復(fù)性能描述FEC方案利用FEC數(shù)據(jù)單元在接收器處恢復(fù)損失的數(shù)據(jù)分組的能力。通常,增大數(shù)據(jù)流中FEC數(shù)據(jù)單元的數(shù)量改進(jìn)了 FEC方案的損失恢復(fù)性能。不過,增大數(shù)據(jù)流中FEC數(shù)據(jù)單元的數(shù)量是以比特率效率為代價(jià)的。FEC方案的損失恢復(fù)性能在很大程度上取決于FEC開銷和FEC深度。
FEC開銷描述相對于原始數(shù)據(jù)量的冗余數(shù)據(jù)量(例如,相對于原始分組數(shù)量的FEC分組數(shù)量)。更高的開銷一般改善FEC方案的損失恢復(fù)性能。另一方面,更高的開銷是以比特率效率為代價(jià)的。如果保持原始數(shù)據(jù)的編碼比特率不變,那么增大的冗余性導(dǎo)致增大的總比特率。替選地,如果總比特率被約束,那么增大的冗余性是以原始數(shù)據(jù)編碼比特率減小為代價(jià)的。FEC深度描述可以由FEC數(shù)據(jù)單元保護(hù)(即組合成FEC數(shù)據(jù)單元)的最舊和最新數(shù)據(jù)分組(包括兩種那些數(shù)據(jù)分組)之間的位移。換言之,其描述了可以組合成FEC數(shù)據(jù)單元的原始數(shù)據(jù)分組的最大數(shù)量。更高的深度提供了 FEC數(shù)據(jù)單元的數(shù)據(jù)分組的不同組合的更多可能性,從而實(shí)現(xiàn)FEC方案的更高靈活性,例如,改變信道條件。在其中將FEC數(shù)據(jù)單元約束為一個(gè)原始數(shù)據(jù)分組的副本的一個(gè)極端范例中,更高深度提供了原始數(shù)據(jù)分組及其副本(FEC數(shù)據(jù)單元)在時(shí)間上分開更大的可能性。在突發(fā)分組損失條件中這是有利的,因?yàn)樗沟猛ㄐ判诺郎贤话l(fā)串中損失原始數(shù)據(jù)分組和副本(FEC數(shù)據(jù)單元)的概率最小化。FEC深度與發(fā)送中的延遲相關(guān)。FEC數(shù)據(jù)單元組合先前產(chǎn)生的原始數(shù)據(jù)分組,因此在發(fā)送器102處沒有因利用FEC導(dǎo)致的額外算法延遲。不過,為了重建在接收器108處損 失的數(shù)據(jù)分組,在接收器108處采取延遲,因?yàn)镕EC數(shù)據(jù)單元的產(chǎn)生和發(fā)送晚于其所基于的數(shù)據(jù)分組??梢栽趫D5中示出的時(shí)序圖看出這點(diǎn)。圖5示出了其中使用數(shù)據(jù)流的三個(gè)數(shù)據(jù)分組(502,504和506)產(chǎn)生FEC數(shù)據(jù)單元508的狀況。在產(chǎn)生全部三個(gè)數(shù)據(jù)分組502、504和506之前,不能產(chǎn)生FEC數(shù)據(jù)單元。因此,在發(fā)送器102處產(chǎn)生FEC數(shù)據(jù)單元508之前,將從發(fā)送器102發(fā)送數(shù)據(jù)分組502和504。因此,最早可以發(fā)送FEC數(shù)據(jù)單元508的時(shí)間就在數(shù)據(jù)分組506之后。圖5中示出了這種情形。數(shù)據(jù)分組和FEC數(shù)據(jù)單元的發(fā)送花費(fèi)有限量的時(shí)間。圖5示出了通過網(wǎng)絡(luò)在有損通信信道上發(fā)送期間數(shù)據(jù)分組502的損失(510)。不過,數(shù)據(jù)分組504和506和FEC數(shù)據(jù)單元508全都在接收器108處被成功接收??梢允褂脭?shù)據(jù)分組504和506與FEC數(shù)據(jù)單元508來恢復(fù)接收器108處損失的數(shù)據(jù)分組502。不過,在接收器108的抖動(dòng)緩沖器114處接收到全部三個(gè)數(shù)據(jù)分組504和506以及FEC數(shù)據(jù)單元508之前,不能恢復(fù)損失的數(shù)據(jù)分組502。因此,如圖5所示,在接收器108處應(yīng)當(dāng)接收到數(shù)據(jù)分組502的時(shí)間(如果其未損失)和可以利用FEC數(shù)據(jù)單元508恢復(fù)數(shù)據(jù)分組的時(shí)間之間存在對數(shù)據(jù)分組502進(jìn)行FEC恢復(fù)所需的延遲。如果不滿足數(shù)據(jù)流的延遲要求,則將判定損失的數(shù)據(jù)分組502在到達(dá)FEC數(shù)據(jù)單元508之前在接收器108處不可解碼。這將很可能導(dǎo)致FEC方案的性能顯著下降。不過,不必由FEC在接收器108處引入這種延遲作為額外的延遲。例如,在接收器108處可能已經(jīng)存在所需的延遲。接收器108處延遲的一種可能原因是存在抖動(dòng)緩沖器114。如上所述,抖動(dòng)緩沖器114向數(shù)據(jù)流中引入延遲,以便緩解分組到達(dá)時(shí)間的隨機(jī)變化(抖動(dòng))。如果在應(yīng)當(dāng)從抖動(dòng)緩沖器114輸出數(shù)據(jù)分組502 (如果在發(fā)送期間未損失)的時(shí)間之前接收到FEC數(shù)據(jù)單元508,那么可以有可能恢復(fù)數(shù)據(jù)分組502而不會(huì)在接收器108處在抖動(dòng)緩沖器114已經(jīng)引入的延遲之外引入任何額外延遲。應(yīng)當(dāng)選擇FEC深度,以便保持損失的數(shù)據(jù)分組和FEC數(shù)據(jù)單元之間的延遲,這可以用于在接收器108的延遲要求之內(nèi)恢復(fù)損失的數(shù)據(jù)分組。因此,對于實(shí)時(shí)數(shù)據(jù)發(fā)送(例如,視頻呼叫或音頻呼叫),可以將FEC深度設(shè)置為較低數(shù)字。給定抖動(dòng)緩沖器114的尺寸,發(fā)送器102處的FEC方案可以選擇最高可能深度,而不會(huì)進(jìn)一步增大(或最小限度地增大)接收器108處的延遲。在抖動(dòng)緩沖器114的大小增大時(shí),F(xiàn)EC的深度相應(yīng)增大。在要減小抖動(dòng)緩沖器的大小時(shí),相應(yīng)地減小FEC的深度(或在接收器108處引入額外延遲以應(yīng)對FEC深度)。為了避免后一種情況下FEC性能突然下降,在響應(yīng)于期望的抖動(dòng)緩沖器大小減小而減小FEC深度之前不應(yīng)當(dāng)減小抖動(dòng)緩沖器114的大小(或者應(yīng)當(dāng)在接收器處引入額外的延遲以應(yīng)對FEC深度)。3.分組化
發(fā)送器102可以包括處理模塊,用于在實(shí)時(shí)通信事件中將數(shù)據(jù)分組化成數(shù)據(jù)分組以發(fā)送到接收器108??梢栽诎l(fā)送器102處在硬件或軟件(例如在CPU 104上執(zhí)行)中實(shí)現(xiàn)處理模塊。用于將數(shù)據(jù)分成數(shù)據(jù)分組(例如,形式為數(shù)據(jù)分組的包頭和其他這樣的實(shí)施細(xì)節(jié))的協(xié)議可以取決于要在其上發(fā)送數(shù)據(jù)的通信信道的性質(zhì),例如要通過其發(fā)送數(shù)據(jù)分組的網(wǎng)絡(luò)類型。在編碼數(shù)據(jù)單位小時(shí),可能有利的是將它們放入一個(gè)更大的數(shù)據(jù)分組中發(fā)送,而 不是利用獨(dú)立的小數(shù)據(jù)分組發(fā)送。這減小關(guān)聯(lián)的分組包頭開銷。換言之,由于發(fā)送更少的數(shù)據(jù)分組,所以有更少的分組包頭,這樣就減小了發(fā)送的分組包頭數(shù)據(jù)量。圖6示出了要從發(fā)送器102向接收器108發(fā)送數(shù)據(jù)流的六個(gè)相繼數(shù)據(jù)單元6021到6026的范例。在圖6中所示的范例中,在數(shù)據(jù)分組中發(fā)送數(shù)據(jù)單元,由此在每個(gè)數(shù)據(jù)分組中發(fā)送三個(gè)數(shù)據(jù)單元。亦即,僅發(fā)送兩個(gè)更大的分組,而不是發(fā)送六個(gè)小分組,每個(gè)分組僅包含數(shù)據(jù)單元之一。例如,在圖6中所示的范例中,從發(fā)送器102向接收器108發(fā)送兩個(gè)數(shù)據(jù)分組604和606。數(shù)據(jù)分組604包括前三個(gè)數(shù)據(jù)單元(數(shù)據(jù)單元1、2和3),而數(shù)據(jù)分組606包括后三個(gè)數(shù)據(jù)單元(數(shù)據(jù)單元4、5和6)。在數(shù)據(jù)單元的這種分組化減小了分組包頭開銷,其以延遲為代價(jià)。我們將這一延遲稱為分組化延遲。例如,在圖6所示的狀況中,數(shù)據(jù)單元I在產(chǎn)生數(shù)據(jù)單元3之前不被發(fā)送,因?yàn)閿?shù)據(jù)單元1、2和3全部在數(shù)據(jù)分組604中共同發(fā)送。這意味著,數(shù)據(jù)單元I在發(fā)送器102處被產(chǎn)生以及在接收器108處被接收之間的延遲比數(shù)據(jù)單元3的對應(yīng)延遲更高。圖6中,分組化延遲被示為如果每個(gè)數(shù)據(jù)單元被獨(dú)立發(fā)送則在接收器108處會(huì)接收到數(shù)據(jù)單元I的時(shí)間和在數(shù)據(jù)分組604中接收到數(shù)據(jù)單元I的時(shí)間之間的時(shí)間間隔。不過,如果接收器108能夠容忍數(shù)據(jù)單元I的分組化延遲,例如,如果在接收器108處接收到數(shù)據(jù)分組604之前,在接收器108處解碼和/或回放不需要數(shù)據(jù)單元I,那么分組化延遲不會(huì)變成數(shù)據(jù)單元發(fā)送的額外延遲/成本。由于接收器108處的抖動(dòng)緩沖器延遲,可能是這種情況。例如,抖動(dòng)緩沖器114可以具有充分多更早的數(shù)據(jù)(數(shù)據(jù)流中的先前數(shù)據(jù)單元I)以在數(shù)據(jù)分組604到達(dá)之前提供連續(xù)解碼和/或回放。因此,抖動(dòng)緩沖器114的狀態(tài),尤其是當(dāng)前抖動(dòng)緩沖器的延遲將影響可以容忍的分組化延遲量。發(fā)送器102處實(shí)施的分組化方案使用在步驟S202中在發(fā)送器102處從接收器108接收的抖動(dòng)緩沖器狀態(tài)信息以控制所發(fā)送數(shù)據(jù)的分組化延遲。例如,可以控制分組化延遲,使得給定抖動(dòng)緩沖器114的抖動(dòng)緩沖器延遲,它被最大化,而不會(huì)進(jìn)一步增大(或最小限度增大)所發(fā)送數(shù)據(jù)流的數(shù)據(jù)單元總延遲。因此,可以控制分組化延遲使其對應(yīng)于抖動(dòng)緩沖器114的延遲。這意味著,可以控制分組化延遲以等于(或近似等于)抖動(dòng)緩沖器114的延遲。4.交織
發(fā)送器102可以包括處理模塊用于在實(shí)時(shí)通信事件中對數(shù)據(jù)單元交織以發(fā)送到接收器108??梢栽诎l(fā)送器102處在硬件或軟件(例如在CPU 104上執(zhí)行)中實(shí)現(xiàn)處理模塊。用于交織數(shù)據(jù)單元的協(xié)議可能取決于要在其上發(fā)送數(shù)據(jù)的通信信道的性質(zhì),例如,要通過其發(fā)送交織數(shù)據(jù)單元的網(wǎng)絡(luò)類型。使用交織以通過非相繼方式布置數(shù)據(jù)單元,以便在發(fā)送期間分布和最小化分組損失的效果。交織減小了由于數(shù)據(jù)流發(fā)送期間分組損失或分組損失突發(fā)而使相繼數(shù)據(jù)單元未到達(dá)接收器108的概率。與損失相繼數(shù)據(jù)單元相比,損失不相繼的數(shù)據(jù)單元通常導(dǎo)致數(shù)據(jù)流質(zhì)量的更小下降。此外,交織增大了相鄰數(shù)據(jù)單元可用于隱藏?fù)p失的數(shù)據(jù)單元的概率,這從而通常導(dǎo)致?lián)p失單元更高的隱藏質(zhì)量。在形成數(shù)據(jù)分組時(shí)以及在發(fā)送數(shù)據(jù)分組時(shí)都可以使用交織。在一個(gè)范例中,在發(fā)送數(shù)據(jù)分組時(shí)使用交織。圖7示出了六個(gè)相繼的數(shù)據(jù)單元,其中將每個(gè)單元放到獨(dú)立的數(shù)據(jù)分組(7021到7026)中,以從發(fā)送器102向接收器108發(fā)送。在如上所述的其他實(shí)施例中,可以將超過一個(gè)數(shù)據(jù)單元分組到每個(gè)數(shù)據(jù)分組,以在發(fā)送器102處根據(jù)分組化方案發(fā)送。在不應(yīng)用交織時(shí),按照{(diào)1,2,3,4,5,6}的次序,即按照相繼次 序發(fā)送數(shù)據(jù)分組702。在這種情況下,發(fā)送期間的損失突發(fā)(相繼數(shù)據(jù)分組的損失)導(dǎo)致數(shù)據(jù)流的相繼數(shù)據(jù)單元損失,這可能對于接收器108處所接收數(shù)據(jù)質(zhì)量尤其不利。不過,在應(yīng)用交織時(shí),然后數(shù)據(jù)分組發(fā)送的次序不是按照數(shù)據(jù)單元的相繼次序。例如,圖7示出了按照{(diào)1,3,5,2,4,6}的次序發(fā)送的數(shù)據(jù)分組。在這種情況下,發(fā)送期間的損失突發(fā)(相繼數(shù)據(jù)分組的損失)可能導(dǎo)致數(shù)據(jù)流的不相繼數(shù)據(jù)單元損失,這可能對于接收器108處所接收數(shù)據(jù)質(zhì)量沒有那么不利。例如,可以在接收器處正確接收到數(shù)據(jù)流中的相鄰數(shù)據(jù)單元,其可以用于隱藏?fù)p失的數(shù)據(jù)單元。盡管交織減小了發(fā)送期間數(shù)據(jù)分組損失的影響,但其代價(jià)是延遲。防止順序發(fā)送數(shù)據(jù)單元表示將僅在產(chǎn)生和發(fā)送數(shù)據(jù)流中較晚數(shù)據(jù)單元之后才發(fā)送較早的數(shù)據(jù)單元。在以上范例中,僅在產(chǎn)生并發(fā)送數(shù)據(jù)單元3和5之后才發(fā)送數(shù)據(jù)單元2。因此,在數(shù)據(jù)單元I之后接收器108處將不會(huì)立即有數(shù)據(jù)單元2。為了便于在接收器108處連續(xù)回放數(shù)據(jù)流,可以更慢地播放數(shù)據(jù)單元1,直到接收到數(shù)據(jù)單元2,或者可以用正常速度播放數(shù)據(jù)單元I但起點(diǎn)被延遲,或利用其組合。就一切情況而論,交織需要接收器108處的回放延遲,這稱為“交織延遲”。圖7中將交織延遲示為如果相繼發(fā)送數(shù)據(jù)單元?jiǎng)t在接收器108處會(huì)接收到數(shù)據(jù)單元2的時(shí)間和由于交織數(shù)據(jù)分組而接收到數(shù)據(jù)單元2的時(shí)間之間的時(shí)間間隔。不過,僅僅由于交織,未必需要在接收器108處引入延遲。如上所述,由于抖動(dòng)緩沖器114,接收器處可能已經(jīng)存在延遲。如果接收器108能夠容忍數(shù)據(jù)單元2的交織延遲,例如,如果在接收器108處接收到數(shù)據(jù)單元2之前,在接收器108處解碼和/或回放不需要數(shù)據(jù)單元2,那么交織延遲不會(huì)變成數(shù)據(jù)單元發(fā)送的額外延遲/成本。由于接收器108處的抖動(dòng)緩沖器延遲,可能是這種情況。例如,抖動(dòng)緩沖器114可以具有充分多更早的數(shù)據(jù)(數(shù)據(jù)流中的先前數(shù)據(jù)單元2)以在數(shù)據(jù)單元2到達(dá)接收器108之前提供連續(xù)解碼和/或回放。因此,抖動(dòng)緩沖器114的狀態(tài),尤其是當(dāng)前抖動(dòng)緩沖器的延遲將影響可以容忍的交織延遲量。發(fā)送器102處實(shí)施的交織方案使用在步驟S202中在發(fā)送器102處從接收器108接收的抖動(dòng)緩沖器狀態(tài)信息以控制所發(fā)送數(shù)據(jù)的交織延遲。例如,可以控制交織延遲,使得給定抖動(dòng)緩沖器114的抖動(dòng)緩沖器延遲,它被最大化,而不會(huì)進(jìn)一步增大(或最小限度增大)所發(fā)送數(shù)據(jù)流的數(shù)據(jù)單元總延遲。因此,可以控制交織延遲使其對應(yīng)于抖動(dòng)緩沖器114的延遲。這意味著,可以控制交織延遲以等于(或近似等于)抖動(dòng)緩沖器114的延遲。在另一個(gè)范例中,在形成數(shù)據(jù)分組以從發(fā)送器102向接收器108發(fā)送時(shí),使用交織。將若干編碼數(shù)據(jù)單元放到每個(gè)數(shù)據(jù)分組中??紤]六個(gè)相繼的數(shù)據(jù)單元1、2、3、4、5、6,以及將三個(gè)數(shù)據(jù)單元分組化成第一數(shù)據(jù)分組而另外三個(gè)數(shù)據(jù)單元分組化成第二數(shù)據(jù)分組的情況。如果不應(yīng)用交織,那么第一數(shù)據(jù)分組會(huì)包括前三個(gè)數(shù)據(jù)單元{1,2,3},而第二數(shù)據(jù)分組會(huì)包括后三個(gè)數(shù)據(jù)單元{4,5,6}。在這種情況下,發(fā)送期間的數(shù)據(jù)分組損失導(dǎo)致數(shù)據(jù)流的相繼數(shù)據(jù)單元損失,這可能對于接收器108處所接收數(shù)據(jù)質(zhì)量尤其不利。不過,在實(shí)施交織時(shí),第一數(shù)據(jù)分組可以包括數(shù)據(jù)單元{1,3,5},而第二數(shù)據(jù)分組可以包括數(shù)據(jù)單元{2,4,6}。在這種情況下,發(fā)送期間的數(shù)據(jù)分組損失導(dǎo)致數(shù)據(jù)流的不相繼數(shù)據(jù)單元損失,這可能對于接收器108處所接收數(shù)據(jù)質(zhì)量沒有那么不利。例如,可以在接收器處正確接收到數(shù)據(jù)流中的相鄰數(shù)據(jù)單元,其可以用于隱藏?fù)p失的數(shù)據(jù)單元。在本范例中,發(fā)送器102引入了延遲,即分組化和交織延遲的組合。不過,如上所 述,如果由于抖動(dòng)緩沖器114的延遲,接收器處已經(jīng)存在這種組合延遲,它可能不是額外的延遲。因此,可以共同控制交織延遲和分組化延遲,使得組合延遲(分組化延遲+交織延遲)對應(yīng)于抖動(dòng)緩沖器114的延遲,如步驟S202中在發(fā)送器102處接收的抖動(dòng)緩沖器狀態(tài)信息所示。因此,上面描述了基于接收器108的抖動(dòng)緩沖器114狀態(tài)控制發(fā)送器102的處理模塊工作的方法??梢月?lián)合控制處理參數(shù)。通過這種方式,基于抖動(dòng)緩沖器114的狀態(tài),控制描述如何處理數(shù)據(jù)以發(fā)送到接收器108的處理參數(shù),從而優(yōu)化處理數(shù)據(jù)的方式以適合抖動(dòng)緩沖器114的狀態(tài)。在上述實(shí)施例中,抖動(dòng)緩沖器114的狀態(tài)是抖動(dòng)緩沖器114的當(dāng)前狀態(tài)。在替選實(shí)施例中,向發(fā)送器102指示的抖動(dòng)緩沖器狀態(tài)可以是抖動(dòng)緩沖器的將來狀態(tài),指示抖動(dòng)緩沖器可能在從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送數(shù)據(jù)時(shí)的將來某個(gè)點(diǎn)具有的狀態(tài)。參考圖8,現(xiàn)在描述另一種優(yōu)化發(fā)送器102處使用的處理參數(shù)和抖動(dòng)緩沖器114狀態(tài)之間關(guān)系的方法。在步驟S802中,確定會(huì)在處理數(shù)據(jù)以發(fā)送到接收器108時(shí)對發(fā)送器102使用將是有益的處理參數(shù)。這些處理參數(shù)可以是如上所述基于抖動(dòng)緩沖器114狀態(tài)確定的處理參數(shù)的調(diào)節(jié)版本。替選地,可以在步驟S802中確定處理參數(shù)而不考慮抖動(dòng)緩沖器114的狀態(tài)。如上所述,處理參數(shù)可以包括編碼比特率、FEC深度、分組化延遲和交織延遲中的一種或多種。在步驟S804中,使用在步驟S802中確定的處理參數(shù)來確定會(huì)適于接收已經(jīng)根據(jù)在步驟S802中確定的處理參數(shù)處理過的數(shù)據(jù)的抖動(dòng)緩沖器114的狀態(tài)。例如,如果增大編碼比特率,那么可能需要增大抖動(dòng)緩沖器114中的可用空間以適應(yīng)由于編碼比特率增大而要發(fā)送的額外數(shù)據(jù)。應(yīng)當(dāng)根據(jù)數(shù)據(jù)編碼比特率的變化并根據(jù)發(fā)送路徑的瓶頸來調(diào)整抖動(dòng)緩沖器的大小。如果抖動(dòng)緩沖器中的可用空間是發(fā)送路徑中的瓶頸,那么應(yīng)當(dāng)減小抖動(dòng)緩沖器114的當(dāng)前大小以允許在抖動(dòng)緩沖器114處接收更多數(shù)據(jù)。替選地,如果通信信道是發(fā)送路徑中的瓶頸,并且增大比特率導(dǎo)致傳播延遲增大,那么抖動(dòng)緩沖器114必須要確保具有充分多的更早數(shù)據(jù),以保證在等待新數(shù)據(jù)時(shí)連續(xù)回放。作為另一范例,如果用于產(chǎn)生要發(fā)送的數(shù)據(jù)流數(shù)據(jù)單元的FEC數(shù)據(jù)單元的FEC深度增大,那么可能需要增大抖動(dòng)緩沖器114的延遲,從而可以在需要它們之前在抖動(dòng)緩沖器114處接收到FEC數(shù)據(jù)單元,以便校正數(shù)據(jù)單元發(fā)送中的誤差。作為另一范例,如果分組化延遲和交織延遲之一或兩者增大,那么可能需要相應(yīng)地增大抖動(dòng)緩沖器114的延遲,從而在需要從抖動(dòng)緩沖器114輸出數(shù)據(jù)單元之前在接收器108的抖動(dòng)緩沖器114接收到它們。確定在步驟S804中確定的抖動(dòng)緩沖器狀態(tài)以優(yōu)化抖動(dòng)緩沖器114用于接收在發(fā)送器102處基于處理參數(shù)處理的數(shù)據(jù)的操作。在步驟S806中,從發(fā)送器102向接收器108發(fā)送在步驟S804中確定的抖動(dòng)緩沖器狀態(tài)的指示??梢栽趶陌l(fā)送器向接收器108發(fā)送數(shù)據(jù)的同時(shí)發(fā)送抖動(dòng)緩沖器狀態(tài),或者可以在從發(fā)送器向接收器108發(fā)送數(shù)據(jù)之前發(fā)送抖動(dòng)緩沖器狀態(tài)。抖動(dòng)緩沖器狀態(tài)指示的發(fā)送將需要從發(fā)送器102向接收器108發(fā)送少量的比特,其可以從發(fā)送器102向接收器108在獨(dú)立數(shù)據(jù)分組中發(fā)送或者附到現(xiàn)有數(shù)據(jù)分組中。
在步驟S808中,基于從發(fā)送器102接收到的抖動(dòng)緩沖器狀態(tài)的指示來調(diào)節(jié)接收器108處抖動(dòng)緩沖器114的狀態(tài)。通過這種方式,將抖動(dòng)緩沖器114置于一種適于(即優(yōu)化)接收從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送的數(shù)據(jù)的狀態(tài)。因此,在發(fā)送器102處(如上所述根據(jù)處理參數(shù))處理數(shù)據(jù)并將其發(fā)送到接收器108的抖動(dòng)緩沖器114時(shí),然后抖動(dòng)緩沖器114處于適于接收該數(shù)據(jù)的狀態(tài)中。如上所述,F(xiàn)EC方案可以發(fā)送關(guān)于FEC深度中的期望增大的信息,分組化方案可以發(fā)送關(guān)于分組化延遲中期望增大的信息,交織方案可以發(fā)送關(guān)于相繼數(shù)據(jù)單元分離的期望增大的信息。在這些情況下,為了促進(jìn)相對于分組損失有更高魯棒性,抖動(dòng)緩沖器114應(yīng)當(dāng)增大其大小(即其延遲)。通常,發(fā)送器102可以向接收器108發(fā)送關(guān)于抖動(dòng)緩沖器大小(延遲)的期望增大或減小的信息。參考圖9,現(xiàn)在描述另一種優(yōu)化發(fā)送器102處使用的處理參數(shù)和抖動(dòng)緩沖器114的狀態(tài)之間關(guān)系的方法。在圖9中所示的方法中,聯(lián)合并自適應(yīng)地優(yōu)化處理參數(shù)(在發(fā)送器102處用于處理數(shù)據(jù)以發(fā)送到接收器108)和接收器108的抖動(dòng)緩沖器114的狀態(tài)。優(yōu)化(優(yōu)化度量)中涉及的參數(shù)可以包括編碼質(zhì)量和比特率,針對分組損失的魯棒性和延遲。在步驟S902中,發(fā)送器102中用于處理數(shù)據(jù)以發(fā)送到接收器108的抖動(dòng)緩沖器114的處理參數(shù)與用于控制抖動(dòng)緩沖器114狀態(tài)的抖動(dòng)緩沖器控制信息一起被確定。共同確定處理參數(shù)和抖動(dòng)緩沖器控制信息,使得它們彼此適合(或“優(yōu)化”)。因此,處理根據(jù)處理參數(shù)處理的數(shù)據(jù),使得其得到優(yōu)化以由工作于抖動(dòng)緩沖器控制信息指示的抖動(dòng)緩沖器狀態(tài)中的抖動(dòng)緩沖器114接收。在發(fā)送器102處執(zhí)行步驟S902的聯(lián)合確定。在步驟S904中,從發(fā)送器102向接收器108發(fā)送抖動(dòng)緩沖器控制信息。可以在從發(fā)送器向接收器108發(fā)送數(shù)據(jù)的同時(shí)發(fā)送抖動(dòng)緩沖器控制信息,或者可以在從發(fā)送器向接收器108發(fā)送數(shù)據(jù)之前發(fā)送抖動(dòng)緩沖器控制信息。抖動(dòng)緩沖器控制信息的發(fā)送將需要從發(fā)送器102向接收器108發(fā)送少量的比特,其可以從發(fā)送器102向接收器108在獨(dú)立數(shù)據(jù)分組中發(fā)送或者附到現(xiàn)有數(shù)據(jù)分組中。在步驟S906,在接收器108處使用抖動(dòng)緩沖器控制信息以設(shè)置抖動(dòng)緩沖器114的狀態(tài)。例如,可以根據(jù)已經(jīng)在步驟S902中與處理參數(shù)一起確定的抖動(dòng)緩沖器控制信息來設(shè)置抖動(dòng)緩沖器114的大小或延遲。在步驟S908,在發(fā)送器102處利用在步驟S902中確定的處理參數(shù)來處理數(shù)據(jù)。在步驟S910中,從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送已處理數(shù)據(jù)。如上所述,抖動(dòng)緩沖器114將處在適于接收已經(jīng)根據(jù)在步驟S902中確定的處理參數(shù)處理過的數(shù)據(jù)的狀態(tài)。·在上文關(guān)于圖9所述的方法中,在發(fā)送器102處執(zhí)行處理參數(shù)和抖動(dòng)緩沖器控制信息的聯(lián)合確定,然后從發(fā)送器102向接收器108發(fā)送抖動(dòng)緩沖器控制信息,從而可以相應(yīng)地設(shè)置抖動(dòng)緩沖器114的狀態(tài)。不過,在替選實(shí)施例中,在接收器108處執(zhí)行處理參數(shù)和抖動(dòng)緩沖器控制信息的聯(lián)合確定,然后從接收器108向發(fā)送器102發(fā)送抖動(dòng)緩沖器狀態(tài)的指示和/或所確定處理參數(shù)的指示,使得發(fā)送器102能夠相應(yīng)地控制處理參數(shù)。在替選實(shí)施例中,在控制節(jié)點(diǎn)(除發(fā)送器102和接收器108之外)處執(zhí)行處理參數(shù)和抖動(dòng)緩沖器控制信息的聯(lián)合確定,并且從控制節(jié)點(diǎn)向接收器108發(fā)送抖動(dòng)緩沖器控制信息,從而能夠相應(yīng)地設(shè)置抖動(dòng)緩沖器114的狀態(tài)并且可以從控制節(jié)點(diǎn)向發(fā)送器102發(fā)送所確定處理參數(shù)的指示,使得發(fā)送器102能夠使用所確定的處理參數(shù)來處理數(shù)據(jù)以發(fā)送到接收器108。可能有利的是聯(lián)合確定處理參數(shù)和抖動(dòng)緩沖器114的狀態(tài),從而可以相對于彼此優(yōu)化發(fā)送器102處的數(shù)據(jù)處理和接收器108處的抖動(dòng)緩沖器114的狀態(tài)。改善通信系統(tǒng)工作的一種方式是發(fā)送器102向接收器108發(fā)送控制信息,其中接收器108基于控制信息來控制抖動(dòng)緩沖器114的狀態(tài)。這允許發(fā)送器102確定其用以處理數(shù)據(jù)以發(fā)送到接收器108的處理參數(shù),例如以改善已處理數(shù)據(jù)的質(zhì)量。然后基于處理參數(shù),確定抖動(dòng)緩沖器114的狀態(tài)??梢栽诎l(fā)送器102處確定抖動(dòng)緩沖器的狀態(tài),那么發(fā)送到接收器108的控制信息包括所確定的抖動(dòng)緩沖器114狀態(tài)的指示。替選地,從發(fā)送器102向接收器108發(fā)送的控制信息可以包括發(fā)送器102處用于處理實(shí)時(shí)通信事件的數(shù)據(jù)以發(fā)送到接收器108的(一個(gè)或多個(gè))處理參數(shù)的指示。在那種情況下,接收器108基于從發(fā)送器102接收的處理參數(shù)的指示來確定抖動(dòng)緩沖器114的狀態(tài)。圖10是從發(fā)送器102向接收器108發(fā)送實(shí)時(shí)通信事件數(shù)據(jù)的過程的流程圖。在步驟S1002中,確定發(fā)送器102中用于處理數(shù)據(jù)以發(fā)送到接收器108的抖動(dòng)緩沖器114的處理參數(shù)??梢源_定處理參數(shù)以改善已處理數(shù)據(jù)的質(zhì)量。在步驟S1004中,從發(fā)送器102向接收器108發(fā)送控制信息。如上所述,控制信息可以包括在步驟S1002中確定的抖動(dòng)緩沖器114的狀態(tài)指示和/或處理參數(shù)的指示。可以在從發(fā)送器102向接收器108發(fā)送數(shù)據(jù)的同時(shí)發(fā)送控制信息,或者可以在從發(fā)送器102向接收器108發(fā)送數(shù)據(jù)之前發(fā)送控制信息??刂菩畔⒌陌l(fā)送將需要從發(fā)送器102向接收器108發(fā)送少量的比特,其可以從發(fā)送器102向接收器108在獨(dú)立數(shù)據(jù)分組中發(fā)送或者附到現(xiàn)有數(shù)據(jù)分組中。在步驟S1006中,在接收器108處使用控制信息以設(shè)置抖動(dòng)緩沖器114的狀態(tài)。例如,可以根據(jù)控制信息設(shè)置抖動(dòng)緩沖器114的大小或延遲。在步驟S1008中,在發(fā)送器102處使用在步驟S1002中確定的處理參數(shù)來處理實(shí)時(shí)通信事件的數(shù)據(jù)。在步驟S1010中,從發(fā)送器102向接收器108的抖動(dòng)緩沖器114發(fā)送已處理數(shù)據(jù)。如上所述,抖動(dòng)緩沖器114將處在適于接收已經(jīng)根據(jù)在步驟S1002中確定的處理參數(shù)處理過的數(shù)據(jù)的狀態(tài)。例如,發(fā)送器102可以僅僅基于對應(yīng)處理模塊(例如處理模塊的發(fā)送器和接收器部分的組合)的性能來決定處理參數(shù)的最佳值,而不是聯(lián)合地優(yōu)化處理參數(shù)和抖動(dòng)緩沖器114的狀態(tài)。例如,在發(fā)送器102處確定用于FEC方案的處理參數(shù)時(shí),發(fā)送器102處的FEC編碼器可能決定增大FEC深度以改善數(shù)據(jù)流從發(fā)送期間的分組損失恢復(fù)的能力。接收器108處的FEC解碼器將相應(yīng)地增大其延遲。如果抖動(dòng)緩沖器114的延遲低于對應(yīng)于新FEC深度的延遲,那么在接收器108處播出數(shù)據(jù)時(shí)可能有問題。在現(xiàn)有技術(shù)的系統(tǒng)中,F(xiàn)EC解碼器處的新延遲將被抖動(dòng)緩沖器視為增大的延遲/抖動(dòng)。抖動(dòng)緩沖器然后將相應(yīng)地調(diào)整其延遲,但這種調(diào)整可能發(fā)生得太晚或太快,因而接收器108處播出的信號質(zhì)量可能受影響。不過,相反,根據(jù)上述方法,發(fā)送器102處的FEC編碼器在FEC深度改變之前通知抖動(dòng)緩沖器114,那么抖動(dòng)緩沖器114就有時(shí)間為FEC延遲的變化做準(zhǔn)備。在這種情況下,抖動(dòng)緩沖器114將為延遲增大做準(zhǔn)備,并將更慢播放其內(nèi)容,同時(shí)等待更多數(shù)據(jù)分組到達(dá)。這將改善在 接收器108處播出的信號質(zhì)量。
示出的上述方法步驟(尤其是圖2、8、9和10中所示的方法步驟)可以實(shí)現(xiàn)于發(fā)送器102和接收器108處的硬件或軟件中。例如,在軟件中執(zhí)行方法步驟時(shí),可以通過在發(fā)送器102和接收器108的處理模塊上從計(jì)算機(jī)程序產(chǎn)品執(zhí)行指令來實(shí)施它們。本領(lǐng)域的技術(shù)人員將明了,可以通過任何適當(dāng)方式組合上述不同實(shí)施例的特征。此外,盡管已經(jīng)參考優(yōu)選實(shí)施例特別示出并描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員將理解,在不脫離如所附權(quán)利要求界定的本發(fā)明范圍的情況下可以在形式和細(xì)節(jié)上做出各種改變。
權(quán)利要求
1.一種從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的方法,所述方法包括在所述發(fā)送器處確定至少一個(gè)處理參數(shù),所述處理參數(shù)描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送;根據(jù)所確定的至少一個(gè)處理參數(shù),處理要從發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù);基于所確定的至少一個(gè)處理參數(shù),從所述發(fā)送器向所述接收器發(fā)送控制信息,所述控制信息由所述接收器用于控制所述抖動(dòng)緩沖器的狀態(tài);以及在實(shí)時(shí)通信事件中從所述發(fā)送器向所述接收器的抖動(dòng)緩沖器發(fā)送已處理數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其中(i)所述控制信息指示所確定的至少一個(gè)處理參數(shù),且其中所述方法還包括在所述接收器處基于指示的至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài),或者(ii)所述方法還包括在所述發(fā)送器處基于所確定的至少一個(gè)處理參數(shù)確定所述抖動(dòng)緩沖器的狀態(tài),其中所述控制信息指示所確定的抖動(dòng)緩沖器的狀態(tài)。
3.根據(jù)權(quán)利要求2所述的方法,其中在所述發(fā)送器處聯(lián)合地確定所述至少一個(gè)處理參數(shù)和所述抖動(dòng)緩沖器的狀態(tài)。
4.根據(jù)任一前述權(quán)利要求所述的方法,其中確定所述處理參數(shù)以由此控制所發(fā)送數(shù)據(jù)的至少一個(gè)質(zhì)量參數(shù),并且其中所發(fā)送數(shù)據(jù)的所述至少一個(gè)質(zhì)量參數(shù)包 括如下至少一項(xiàng)(i)編碼質(zhì)量,( )比特率,和(iii)相對于分組損失的魯棒性。
5.根據(jù)任一前述權(quán)利要求所述的方法,其中處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟包括對數(shù)據(jù)編碼,且其中所述至少一個(gè)處理參數(shù)包括用以對數(shù)據(jù)編碼的編碼比特率,且其中所述抖動(dòng)緩沖器的狀態(tài)包括所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間,其中基于所述編碼比特率確定所述抖動(dòng)緩沖器的大小或所述抖動(dòng)緩沖器中的可用空間。
6.根據(jù)任一前述權(quán)利要求所述的方法,其中所述已處理數(shù)據(jù)包括數(shù)據(jù)分組流,且其中處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟包括產(chǎn)生與所述數(shù)據(jù)分組中的至少一個(gè)相關(guān)的校正數(shù)據(jù)單元,且其中所述至少一個(gè)處理參數(shù)包括校正深度,所述校正深度設(shè)置允許與所述校正數(shù)據(jù)單元之一相關(guān)的最舊和最新數(shù)據(jù)分組之間的數(shù)據(jù)分組流中的最大可允許位移,其中所述抖動(dòng)緩沖器的狀態(tài)包括所述抖動(dòng)緩沖器的延遲,其中基于所述校正深度確定所述抖動(dòng)緩沖器的延遲,且其中所述校正數(shù)據(jù)單元是前向糾錯(cuò)數(shù)據(jù)單元,所述校正深度是前向糾錯(cuò)深度。
7.根據(jù)任一前述權(quán)利要求所述的方法,其中所述數(shù)據(jù)包括數(shù)據(jù)單元流,且其中處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟包括將所述數(shù)據(jù)單元分組化成要發(fā)送的數(shù)據(jù)分組,且其中所述至少一個(gè)處理參數(shù)包括分組化延遲,所述分組化延遲設(shè)置從將所述數(shù)據(jù)單元分組化成數(shù)據(jù)分組得到的數(shù)據(jù)單元的最大可允許延遲,且其中所述抖動(dòng)緩沖器的狀態(tài)包括所述抖動(dòng)緩沖器的延遲,且其中根據(jù)所述分組化延遲確定所述抖動(dòng)緩沖器的延遲。
8.根據(jù)任一前述權(quán)利要求所述的方法,其中所述數(shù)據(jù)包括數(shù)據(jù)單元流,且其中處理要從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)的所述步驟包括交織至少一些要發(fā)送的數(shù)據(jù)單元,且其中所述至少一個(gè)處理參數(shù)包括交織延遲,所述交織延遲設(shè)置從交織所述數(shù)據(jù)單元得到的數(shù)據(jù)單元的最大可允許延遲,且其中所述抖動(dòng)緩沖器的狀態(tài)包括所述抖動(dòng)緩沖器的延遲,且其中根據(jù)所述交織延遲確定所述抖動(dòng)緩沖器的延遲。
9.一種用于向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的發(fā)送器,所述發(fā)送器包括確定模塊,用于確定至少一個(gè)處理參數(shù),所述處理參數(shù)描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送;處理模塊,用于根據(jù)所確定的至少一個(gè)處理參數(shù)來處理要從發(fā)送器向抖動(dòng)緩沖器發(fā)送的數(shù)據(jù);以及發(fā)送模塊,用于(i)基于確定的處理參數(shù)向所述接收器發(fā)送控制信息,所述控制信息由所述接收器用于控制所述抖動(dòng)緩沖器的狀態(tài),以及(ii)在實(shí)時(shí)通信事件中向所述接收器的抖動(dòng)緩沖器發(fā)送已處理數(shù)據(jù)。
10.一種用于從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送實(shí)時(shí)通信事件的數(shù)據(jù)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含在非暫態(tài)計(jì)算機(jī)可讀介質(zhì)上并且配置為使得在處理器上執(zhí)行時(shí)執(zhí)行權(quán)利要求1到8的任一項(xiàng)所述的步驟。
全文摘要
用于發(fā)送或接收實(shí)時(shí)通信事件的數(shù)據(jù)的方法、發(fā)送器、接收器和計(jì)算機(jī)程序產(chǎn)品,數(shù)據(jù)是從發(fā)送器向接收器的抖動(dòng)緩沖器發(fā)送的。在發(fā)送器處確定描述在實(shí)時(shí)通信事件中如何處理數(shù)據(jù)以從所述發(fā)送器向所述抖動(dòng)緩沖器發(fā)送的至少一個(gè)處理參數(shù)。根據(jù)所確定的至少一個(gè)處理參數(shù),處理要從發(fā)送器向抖動(dòng)緩沖器發(fā)送的數(shù)據(jù)?;谒_定的至少一個(gè)處理參數(shù),從發(fā)送器向接收器發(fā)送控制信息,其中控制信息由接收器用于控制抖動(dòng)緩沖器的狀態(tài)。在實(shí)時(shí)通信事件中從所述發(fā)送器向所述接收器的抖動(dòng)緩沖器發(fā)送已處理數(shù)據(jù)。
文檔編號H04J3/06GK103023813SQ20121041188
公開日2013年4月3日 申請日期2012年10月25日 優(yōu)先權(quán)日2011年10月25日
發(fā)明者R.瓦芬, M.尼爾森, S.V.安德森, A.杰費(fèi)里默 申請人:斯凱普公司