專利名稱:用于語音ip傳輸?shù)淖赃m應(yīng)去抖動緩沖器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及無線通信系統(tǒng),并具體涉及用于分組交換通信的語音因特網(wǎng)協(xié)議(VoIP)的自適應(yīng)去抖動緩沖器。本發(fā)明適用于可能會丟失分組的任何系統(tǒng)。
背景技術(shù):
在通信系統(tǒng)中,可將分組的端對端延遲定義為從該分組在信號源處被生成的時刻到該分組到達(dá)其目的地的時刻所經(jīng)過的時間。在分組交換通信系統(tǒng)中,分組從信號源傳播到目的地的延遲可能會取決于包括但不限于信道條件和網(wǎng)絡(luò)負(fù)載的各種工作條件而變化。信道條件是指無線鏈路的質(zhì)量。確定無線鏈路質(zhì)量的一些因素是信號強(qiáng)度、移動速度和/或物理障礙。
端對端延遲包括在網(wǎng)絡(luò)和分組所經(jīng)過的各種元件中引入的延遲。許多因素都能影響端對端延遲。端對端延遲中的變化被稱為抖動。抖動會導(dǎo)致在分組不再有用之后才接收到分組。例如,在諸如語音的低等待時間應(yīng)用中,如果分組被接收到太晚,則它可能會被接收器丟棄。這樣的狀況導(dǎo)致通信質(zhì)量的惡化。
圖1是現(xiàn)有技術(shù)通信系統(tǒng)的框圖,其中接入終端包括去抖動緩沖器;圖2示出了現(xiàn)有技術(shù)的去抖動緩沖器;圖3是示出導(dǎo)致“下溢”的分組的傳輸、接收和再現(xiàn)的時序圖;
圖4A和4B是示出兩種情形下的最佳去抖動緩沖器長度的計算的時序圖;圖5是示出由延遲分組引起的“下溢”的形成過程的時序圖;圖6是示出目標(biāo)去抖動緩沖器長度的計算的流程圖;圖7A是示出第一情形下的分組的傳輸?shù)臅r序圖;圖7B是示出沒有采用去抖動緩沖器自適應(yīng)的分組的接收的時序圖;圖7C是示出采用去抖動緩沖器自適應(yīng)的分組的接收的時序圖,其中接收器可以在分組的預(yù)期時刻之后接收到該分組。
圖8A是示出允許接收器在分組的預(yù)期時刻之后接收到該分組的隱式緩沖器自適應(yīng)的一個實例的流程圖;圖8B是自適應(yīng)去抖動緩沖器的操作模式的狀態(tài)圖;圖9是示出根據(jù)另一實例的去抖動緩沖器自適應(yīng)的應(yīng)用的時序圖;圖10是示出根據(jù)一個實例的話音突峰中的語音信息的傳輸?shù)氖緢D,其中去抖動緩沖器延遲不足以避免數(shù)據(jù)碰撞;圖11是含有自適應(yīng)去抖動緩沖器的通信系統(tǒng)的框圖;圖12是包括自適應(yīng)去抖動緩沖器和時間規(guī)整單元的接收器的一部分的框圖;圖13A示出了包括壓縮和擴(kuò)展閾值的自適應(yīng)去抖動緩沖器的一個實例;圖13B示出了包括多個壓縮和擴(kuò)展閾值的自適應(yīng)去抖動緩沖器的一個實例;圖14是示出對具有不同延遲的分組的接收進(jìn)行時間規(guī)整的過程的時序圖;圖15是示出以下實例的時序圖i)話音片段的靜音部分的壓縮;和ii)話音片段的靜音部分的擴(kuò)展;圖16是示出話音信號的時序圖,其中話音信號的一些部分會重復(fù);圖17A是示出話音片段的示圖,其中被稱為RWindowSize的用于重疊相加(add-overlap)操作的參考窗口中的PCM樣本的數(shù)目被標(biāo)識,并且其中被稱為Segment的目標(biāo)片段大小或期望的片段大小被標(biāo)識;圖17B是示出根據(jù)一個實例的應(yīng)用重疊相加操作來壓縮話音片段的方法的示圖;圖18A是示出多個話音片段的示圖,其中被稱為RWindowSize的用于重疊相加操作的參考窗口中的PCM樣本的數(shù)目被標(biāo)識,并且其中被稱為Segment的目標(biāo)片段大小或期望的片段大小被標(biāo)識以為擴(kuò)展當(dāng)前話音片段作準(zhǔn)備;圖18B是示出根據(jù)一個實例的應(yīng)用重疊相加操作來擴(kuò)展話音樣本的方法的示圖;圖18C是示出根據(jù)可選實例的應(yīng)用操作來擴(kuò)展話音樣本的方法的示圖;圖19是示出對分組進(jìn)行擴(kuò)展以便為混合ARQ重傳情況下延遲的分組和失序到達(dá)的分組的到達(dá)留出余地的方法的示圖;圖20是示出兩個用戶之間的會話的時間線的示圖;圖21是示出根據(jù)一個實例的在話音突峰開頭處的增強(qiáng)的流程圖;圖22是示出根據(jù)可選實例的在話音突峰開頭處的增強(qiáng)的示圖;圖23是示出話音突峰結(jié)尾的增強(qiáng)的示圖;圖24是示出根據(jù)一個實例的在話音突峰結(jié)尾處的增強(qiáng)的流程圖;圖25是示出現(xiàn)有技術(shù)的去抖動緩沖器和解碼器系統(tǒng)的操作的示圖,其中去抖動緩沖器以規(guī)則的時間間隔向解碼器傳遞分組;圖26是示出根據(jù)一個實例的自適應(yīng)去抖動緩沖器和解碼器的操作的示圖,其中自適應(yīng)去抖動緩沖器以不規(guī)則的時間間隔向解碼器傳遞分組;圖27是示出根據(jù)一個實例的包括自適應(yīng)去抖動緩沖器和時間規(guī)整(time wrap)控制單元的接入終端(AT)的框圖;圖28示出了根據(jù)一個實例的包括自適應(yīng)去抖動緩沖器并適于對分組進(jìn)行時間規(guī)整的接收器的一部分;圖29示出了根據(jù)另一實例的包括自適應(yīng)去抖動緩沖器并適于對分組進(jìn)行時間規(guī)整的接收器的可選實例;圖30是示出根據(jù)一個實例的包括自適應(yīng)去抖動緩沖器并適于對分組進(jìn)行時間規(guī)整的接收器的一個實例中的解碼器中的調(diào)度器的一個實例的流程圖;圖31是示出接收器的一個實例中的音頻接口單元中的調(diào)度器的流程圖;圖32示出了在解碼器外部計算調(diào)度方案的時間規(guī)整單元;圖33示出了在解碼器中的時間規(guī)整單元中計算調(diào)度方案的時間規(guī)整單元。
具體實施例方式
在分組交換系統(tǒng)中,數(shù)據(jù)被形成為分組并通過網(wǎng)絡(luò)被路由。每個分組基于分組內(nèi)(典型為信頭中)包含的分配地址而被發(fā)送到網(wǎng)絡(luò)中的目的地。分組的端對端延遲,或者分組在網(wǎng)絡(luò)內(nèi)從第一用戶或“發(fā)送者”傳播到第二用戶或“接收者”所花費的時間,取決于以下因素而變化信道條件,網(wǎng)絡(luò)負(fù)載,系統(tǒng)的服務(wù)質(zhì)量(QoS)能力,以及除這些因素之外的競爭資源的其它流。應(yīng)注意,為了清楚起見,下面的討論描述支持分組數(shù)據(jù)通信的擴(kuò)頻通信系統(tǒng),其包括但不限于碼分多址(CDMA)系統(tǒng)、正交頻分多址(OFDMA)系統(tǒng)、寬帶碼分多址(W-CDMA)系統(tǒng)、全球移動通信系統(tǒng)(GSM)、支持諸如802.11(A、B、G)、802.16等的IEEE標(biāo)準(zhǔn)的系統(tǒng)。
在無線通信系統(tǒng)中,每個分組可能會遭受與屬于相同流的其它分組所經(jīng)歷的延遲不同的從源到目的地的延遲。延遲中的這種變化被稱為“抖動”。抖動對接收器端的應(yīng)用產(chǎn)生額外的復(fù)雜性。如果接收器不校正抖動,則接收到的消息在分組被重新組合時將會失真。一些系統(tǒng)在根據(jù)接收到的分組而重建消息時對抖動進(jìn)行校正。這樣的系統(tǒng)包含增加(被稱為抖動緩沖器延遲的)等待時間的去抖動緩沖器。當(dāng)去抖動緩沖器施加固定的較大的去抖動緩沖器延遲時,它可以容納分組到達(dá)時間中的大抖動量;然而,這種使用方式并不高效,因為具有較小延遲的分組也通過使用較大的去抖動緩沖器延遲而被處理,盡管這些分組可能已在之前被處理過。對于這些分組而言,這會導(dǎo)致比通過使用較小的去抖動緩沖器延遲而得到的延遲更大的端對端延遲。
為了防止這種情況,含有去抖動緩沖器的VoIP系統(tǒng)可以試圖適應(yīng)分組延遲中的變化。例如,去抖動緩沖器可以通過分析分組到達(dá)的統(tǒng)計數(shù)據(jù)來檢測分組延遲中的變化。許多去抖動緩沖器實現(xiàn)方案根本不使它們的延遲自適應(yīng),并且被配置成具有保守的大延遲。在這種情況下,去抖動緩沖器可能會對分組加入過大的延遲,從而使用戶的體驗處于次優(yōu)狀態(tài)。
下面的討論描述的是通過改變?nèi)ザ秳泳彌_器延遲來適應(yīng)分組延遲行為中的變化的自適應(yīng)去抖動緩沖器。該去抖動緩沖器利用話音時間規(guī)整來增強(qiáng)其跟蹤分組的可變延遲的能力。下面的討論適用于分組化的通信,諸如具有周期性數(shù)據(jù)傳輸、低等待時間要求、數(shù)據(jù)的順序處理或指定再現(xiàn)速率的通信。特別地,下面的討論詳細(xì)描述語音通信,其中數(shù)據(jù)或者話音和靜音源于信號源并被傳輸?shù)侥康牡赜糜谠佻F(xiàn)。原始數(shù)據(jù)被分組并使用已知的編碼方案被編碼。在接收器處,為數(shù)據(jù)的每個分組確定編碼方案。在話音通信中,例如,對話音進(jìn)行的編碼的類型不同于對靜音進(jìn)行的編碼的類型。這允許通信系統(tǒng)利用包括靜音部分的話音的周期性本質(zhì)。對于話音通信,數(shù)據(jù)呈現(xiàn)突發(fā)性,并且話音內(nèi)容可能會呈現(xiàn)重復(fù)性。由于語音通信的參與者不希望聽到延遲,而通信的質(zhì)量僅允許有限的延遲,所以分組化的話音傳輸具有低等待時間要求。分組化的話音可能會采取不同的路徑來到達(dá)接收器,然而,在接收后,分組將以它們的原始順序被重新編譯。因此,接收到的分組化話音被順序地再現(xiàn)。如果分組在空中傳輸或者物理層處理過程中被丟失,則該分組無法恢復(fù),但是接收器可以估計或猜測該分組的內(nèi)容。另外,話音通信的再現(xiàn)速率具有預(yù)定的再現(xiàn)速率或范圍。如果再現(xiàn)速率在該范圍之外,則接收器處的質(zhì)量會惡化。本討論的應(yīng)用的一個實例是將其應(yīng)用于話音通信。其它應(yīng)用可包括視頻通信、游戲通信或具有與話音通信類似的特性、規(guī)范和/或要求的其它通信。例如,視頻通信可能會期望使再現(xiàn)加速或減速。本討論對于這樣的應(yīng)用可能是合乎要求的。如在本文中提供的那樣,自適應(yīng)去抖動緩沖器可以允許接收器實現(xiàn)系統(tǒng)的抖動要求所指定的服務(wù)質(zhì)量。自適應(yīng)去抖動緩沖器使目標(biāo)去抖動緩沖器長度(例如,去抖動緩沖器中存儲的數(shù)據(jù)量)適應(yīng)于在該自適應(yīng)去抖動緩沖器處接收到的數(shù)據(jù)的定時和數(shù)據(jù)量。此外,自適應(yīng)去抖動緩沖器使用該去抖動緩沖器的狀態(tài)或大小(例如,自適應(yīng)去抖動緩沖器中存儲的數(shù)據(jù)的度量)來確定何時進(jìn)行時間規(guī)整對接收到的數(shù)據(jù)的處理和再現(xiàn)是有益的。例如,如果數(shù)據(jù)以低速率到達(dá)自適應(yīng)去抖動緩沖器,則自適應(yīng)去抖動緩沖器將該信息提供給時間規(guī)整單元,從而允許時間規(guī)整單元擴(kuò)展接收到的分組。如果自適應(yīng)去抖動緩沖器中存儲的數(shù)據(jù)超過閾值,則自適應(yīng)去抖動緩沖器提醒時間規(guī)整單元壓縮分組以便有效地跟上到來的數(shù)據(jù)。應(yīng)注意,時間規(guī)整是在可由通信的應(yīng)用和類型定義的限度內(nèi)進(jìn)行的。例如,在話音通信中,時間規(guī)整不應(yīng)該壓縮話音(即,提高音高),以免收聽者無法理解通信內(nèi)容。類似地,時間規(guī)整不應(yīng)該將話音擴(kuò)展出某一范圍之外。在理想情況下,時間規(guī)整的范圍被定義為使得收聽者幾乎沒有不適或完全沒有不適。
通信系統(tǒng)圖1是示出數(shù)字通信系統(tǒng)50的框圖。兩個接入終端(AT)52和82經(jīng)由基站(BS)70進(jìn)行通信。在AT 52內(nèi),發(fā)射處理單元64將語音數(shù)據(jù)發(fā)送給編碼器60,該編碼器60對語音數(shù)據(jù)進(jìn)行編碼和將其分組化并將經(jīng)分組的數(shù)據(jù)發(fā)送給低層處理單元58。然后為了實現(xiàn)發(fā)射,數(shù)據(jù)被發(fā)送給BS 70。BS 70處理接收到的數(shù)據(jù)并將數(shù)據(jù)發(fā)射到AT 82,其中數(shù)據(jù)在低層處理單元88被接收。然后數(shù)據(jù)被提供給去抖動緩沖器86,該去抖動緩沖器86存儲數(shù)據(jù)以便隱藏或減小抖動的影響。數(shù)據(jù)從去抖動緩沖器86被發(fā)送給解碼器84,并接著被發(fā)送給接收處理單元92。
為了從AT 82發(fā)射,數(shù)據(jù)/語音從發(fā)射處理單元94被提供給編碼器90。低層處理單元88處理用于發(fā)射到BS 70的數(shù)據(jù)。為了在AT 52接收來自BS 70的數(shù)據(jù),數(shù)據(jù)在低層處理單元58被接收。然后數(shù)據(jù)的分組被發(fā)送給去抖動緩沖器56,在這里它們被存儲直到達(dá)到所需的緩沖器長度或延遲為止。一旦達(dá)到該長度或延遲,去抖動緩沖器56就開始向解碼器54發(fā)送數(shù)據(jù)。解碼器54將經(jīng)分組的數(shù)據(jù)轉(zhuǎn)換成語音數(shù)據(jù)分組并將分組發(fā)送給接收處理單元62。在本實例中,AT 52的行為與AT82類似。
去抖動緩沖器存儲器或去抖動緩沖器被用在諸如上述的AT中,以便隱藏抖動的影響。在一個實例中,自適應(yīng)去抖動緩沖器被用于諸如VoIP通信的分組交換通信。去抖動緩沖器具有自適應(yīng)緩沖存儲器并使用話音時間規(guī)整來增強(qiáng)其跟蹤可變延遲和抖動的能力。在該實例中,使去抖動緩沖器的處理與解碼器的處理相協(xié)調(diào),其中去抖動緩沖器確定對分組進(jìn)行時間規(guī)整的時機(jī)或需要,并指示解碼器對分組進(jìn)行時間規(guī)整。解碼器通過按照去抖動緩沖器的指示對分組進(jìn)行壓縮或擴(kuò)展,來對分組進(jìn)行時間規(guī)整。
圖2示出了去抖動緩沖器的一個實例。到來的編碼分組被累積和存儲在緩沖器中。在一個實例中,緩沖器是先進(jìn)先出(FIFO)緩沖器,其中數(shù)據(jù)以特定順序被接收并以相同的順序被處理;首先被處理的數(shù)據(jù)是首先被接收的數(shù)據(jù)。在另一實例中,去抖動緩沖器是記錄下一個要處理的分組的有序列表。自適應(yīng)去抖動緩沖器可以是存儲器存儲單元,其中去抖動緩沖器的狀態(tài)是自適應(yīng)去抖動緩沖器中存儲的數(shù)據(jù)的度量(或分組數(shù)量)。由去抖動緩沖器處理的數(shù)據(jù)可從去抖動緩沖器發(fā)送給解碼器或其它裝置。經(jīng)編碼的分組可以對應(yīng)于固定量(例如,與8Khz采樣速率下的話音數(shù)據(jù)的160個樣本相對應(yīng)的20msec)的話音數(shù)據(jù)。在本發(fā)明的一個實例中,具有時間規(guī)整功能的解碼器所產(chǎn)生的樣本數(shù)目,可以基于分組是否經(jīng)過了時間規(guī)整而變化。當(dāng)去抖動緩沖器指示解碼器/時間規(guī)整器對分組進(jìn)行擴(kuò)展時,解碼器/時間規(guī)整器可產(chǎn)生多于160個樣本。另一方面,當(dāng)去抖動緩沖器指示解碼器/時間規(guī)整器對分組進(jìn)行壓縮時,解碼器/時間規(guī)整器可產(chǎn)生少于160個樣本。應(yīng)注意,可選系統(tǒng)可以具有不同的再現(xiàn)方案,諸如不同于20ms語音編碼的再現(xiàn)方案。
到達(dá)去抖動緩沖器的分組可能不會以規(guī)則間隔到達(dá)。因此去抖動緩沖器的設(shè)計目標(biāo)之一是調(diào)整到來的數(shù)據(jù)的不規(guī)則性。在本發(fā)明的一個實例中,去抖動緩沖器具有目標(biāo)去抖動緩沖器長度。目標(biāo)去抖動緩沖器長度是指在開始再現(xiàn)第一分組之前需要在去抖動緩沖器中累積的數(shù)據(jù)量。在另一實例中,目標(biāo)去抖動緩沖器長度可以指去抖動緩沖器中的第一分組在再現(xiàn)之前需要被延遲的時間量。圖2示出了目標(biāo)去抖動緩沖器長度。通過在開始分組的再現(xiàn)之前在去抖動緩沖器中累積足夠的分組,去抖動緩沖器能夠以規(guī)則間隔再現(xiàn)隨后的分組,同時將分組被用光的潛在可能性最小化。圖2示出了去抖動緩沖器,其中首先接收到去抖動緩沖器中的聲碼器分組,是被調(diào)度為從去抖動緩沖器輸出的下一分組。去抖動緩沖器包括充足的分組來實現(xiàn)所需的去抖動緩沖器延遲。這樣,去抖動緩沖器使分組所經(jīng)歷的抖動變得平滑并隱藏分組到達(dá)接收器的時間的變化。
圖3示出了各種情形下的分組的傳輸、接收和再現(xiàn)的時間線。第一分組PKT 1在時刻t0被傳輸,并在時刻t1被接收,并被再現(xiàn)。隨后的分組PKT 2、PKT 3和PKT 4在PKT 1之后以20ms的間隔被傳輸。在沒有時間規(guī)整的情況下,解碼器從第一分組的再現(xiàn)時刻起,以規(guī)則的時間間隔(例如,20ms)再現(xiàn)分組。例如,如果解碼器以規(guī)則的20ms間隔再現(xiàn)分組,則第一個接收到的分組在時刻t1得到再現(xiàn),并且隨后的分組將在時刻t1后的20ms、時刻t1后的40ms、時刻t1后的60ms等時刻得到再現(xiàn)。如圖3所示,PKT 2(在不采用去抖動緩沖器延遲的情況下)的預(yù)期再現(xiàn)時刻為t2=t1+20ms。PKT 2在其預(yù)期再現(xiàn)時刻t2之前被接收到。另一方面,分組3在其預(yù)期再現(xiàn)時刻t3=t2+20ms之后被接收到。這種狀況被稱為下溢。當(dāng)再現(xiàn)裝置準(zhǔn)備好再現(xiàn)分組,而分組卻沒有存在于去抖動緩沖器中時,就會發(fā)生下溢。典型地,下溢會使解碼器產(chǎn)生擦除(erasure)并使再現(xiàn)質(zhì)量惡化。
圖3還示出了第二種情形,在該情形中,去抖動緩沖器在第一分組的再現(xiàn)之前引入延遲tdjb。在這種情形下,去抖動緩沖器延遲被加入以便使再現(xiàn)裝置每20ms都能夠接收到分組(或樣本)。在這種情形下,盡管PKT 3在其預(yù)期再現(xiàn)時刻t3之后才被接收到,但是去抖動緩沖器延遲的加入使得PKT 3在PKT 2再現(xiàn)之后的20ms得到再現(xiàn)。
現(xiàn)在,PKT 1在時刻t0被發(fā)送,在時刻t1被接收,并在時刻t1+tdjb=t1’被再現(xiàn),而不是像先前那樣,在時刻t1被再現(xiàn)。再現(xiàn)裝置在PKT 1之后以例如20ms的預(yù)定間隔再現(xiàn)PKT 2,或者在時刻t2’=t1+tdjb+20=t2+tdjb再現(xiàn)PKT 2,并在時刻t3’=t3+tdjb再現(xiàn)PKT 3。將再現(xiàn)延遲tdjb,允許第三分組得到再現(xiàn)而不會導(dǎo)致下溢。因此,如圖3所示,去抖動緩沖器延遲的引入可減少下溢并防止話音質(zhì)量的惡化。
話音由話音突峰和靜音段組成。靜音段的擴(kuò)展/壓縮對話音質(zhì)量具有極小的影響或沒有影響。這就允許去抖動緩沖器針對每個話音突峰而對第一分組的再現(xiàn)進(jìn)行不同的延遲。
圖4A和4B為不同的話音突峰示出了傳輸和接收的時間線。應(yīng)注意,去抖動緩沖器延遲的量被確定以防止下溢。這被稱為“最佳去抖動緩沖器延遲”。最佳去抖動緩沖器延遲涉及目標(biāo)去抖動緩沖器長度。換言之,目標(biāo)去抖動緩沖器長度被確定成允許足夠的數(shù)據(jù)存儲在緩沖器中,以便使分組的再現(xiàn)與再現(xiàn)裝置的特性相一致。最佳去抖動緩沖器延遲可通過系統(tǒng)所經(jīng)歷的最大端對端延遲來確定??蛇x地,最佳去抖動緩沖器延遲可以是基于系統(tǒng)所經(jīng)歷的平均延遲。用于確定最佳去抖動緩沖器延遲的其它方法也可以具體針對給定的標(biāo)準(zhǔn)或系統(tǒng)設(shè)計來實現(xiàn)。此外,目標(biāo)去抖動緩沖器長度被確定以便實現(xiàn)最佳去抖動緩沖器延遲,因此,目標(biāo)去抖動緩沖器長度可以基于接收的分組速率、分組差錯率(PER)或其它工作統(tǒng)計數(shù)據(jù)來計算。
圖4A和4B示出了兩個實例的最佳去抖動緩沖器延遲。如圖所示,相繼的分組的傳輸和接收之間的時間隨時間而變化。由于PKT 3具有從傳輸?shù)浇邮兆铋L的延遲,所以使用該差值來確定用于去抖動處理的最佳延遲。
使用具有目標(biāo)去抖動緩沖器長度的去抖動緩沖器,可以避免至少一些下溢狀況。再參考圖3,第二種情形避免了(當(dāng)解碼器預(yù)期有分組到來并且再現(xiàn)裝置準(zhǔn)備好再現(xiàn)分組,而沒有分組存在于分組存儲緩沖器中時發(fā)生的)下溢。此處,在t1之后的20ms預(yù)定間隔后,PKT 2得到再現(xiàn),其中t1是PKT 1的再現(xiàn)時刻。盡管將PKT 3調(diào)度為在時刻t3再現(xiàn)或者預(yù)期PKT 3在時刻t3再現(xiàn),但是PKT 3直到時刻t3之后才被接收到。換言之,再現(xiàn)裝置準(zhǔn)備好再現(xiàn)PKT 3,但是該分組并沒有存在于存儲緩沖器中。由于PKT 3在預(yù)期時刻不能用于再現(xiàn),并且無法得到再現(xiàn),所以產(chǎn)生了關(guān)于PKT 3的大抖動量和下溢。PKT 4在PKT 4的預(yù)期再現(xiàn)時刻t4得到再現(xiàn)。應(yīng)注意,預(yù)期時刻t4是根據(jù)時刻t3計算的。由于每個分組可能會包含多于一個語音分組,所以由于下溢而引起的分組的丟失會使語音質(zhì)量惡化。
供考慮的另一種情形涉及如圖5所示的“由于延遲分組而引起的下溢”的形成過程,其中分組的傳輸、接收和預(yù)期再現(xiàn)時刻在時間上被示出。在這種情形下,每個分組在其預(yù)期再現(xiàn)時刻后的短時間內(nèi)被接收到。例如,PKT 50的預(yù)期再現(xiàn)時刻是t0,但是PKT 50直到t0后的時刻t0’才被接收到。下一分組51預(yù)期在時刻t1被接收到,但是它直到t1后的時刻t1’才被接收到。這引起導(dǎo)致“延遲下溢”(即由于延遲分組而引起的下溢)的高百分比的下溢的形成,并因而引起更高的端對端延遲。
顯然,將再現(xiàn)延遲較大的量的去抖動緩沖器,在將下溢保持在最少這方面是成功的。然而,這樣的去抖動緩沖器將較大的去抖動緩沖器延遲引入到分組的端對端延遲中。較大的端對端延遲會導(dǎo)致保持會話流中的困難。大于100ms的延遲會使收聽方認(rèn)為講話方還沒有結(jié)束講話。因此,要獲得良好的質(zhì)量,在理想情況下既要考慮避免下溢也要考慮減小端對端延遲。由于解決一個問題會惡化另一個問題,所以存在著問題。換言之,較小的端對端延遲通常會導(dǎo)致更多的下溢,而較大的端對端延遲通常會導(dǎo)致更少的下溢。因此,需要平衡這些競爭的目標(biāo)。具體而言,需要使去抖動緩沖器能夠跟蹤和避免下溢并同時減小端對端延遲。
去抖動緩沖器目標(biāo)長度自適應(yīng)去抖動緩沖器的設(shè)計目標(biāo)是允許系統(tǒng)以語音分組的特定“下溢率”為目標(biāo),同時實現(xiàn)低的端對端延遲。由于感覺到的質(zhì)量是下溢的百分比的函數(shù),所以以下溢的特定百分比為目標(biāo)的能力使得語音質(zhì)量能夠得到控制。當(dāng)存在缺失的分組時,在去抖動緩沖器處會發(fā)生分組下溢。當(dāng)分組被丟失或延遲時,該分組是缺失的分組。當(dāng)丟失的分組在其到達(dá)接收器前被丟棄時(諸如,當(dāng)它在接入網(wǎng)中的某處(例如,在物理層或前向鏈路調(diào)度器上)被丟棄時)會導(dǎo)致下溢。在這種情形下,通過使用去抖動緩沖器延遲無法校正下溢,因為分組從未到達(dá)去抖動緩沖器。可選地,可能會由于被延遲并在其再現(xiàn)時刻之后到達(dá)的分組而發(fā)生下溢。除了跟蹤由于延遲分組而引起的下溢之外,自適應(yīng)去抖動緩沖器還可以跟蹤由于丟失的分組而引起的下溢。
可以通過對下溢進(jìn)行權(quán)衡而得到去抖動緩沖器延遲,來控制由于延遲分組而引起的下溢的數(shù)目。表示由于延遲分組而引起的下溢的目標(biāo)百分比的值被稱為“下溢目標(biāo)”。該值是用于去抖動緩沖器的操作的目標(biāo)值,并被選擇為能夠?qū)⒍藢Χ搜舆t保持在合理的限度內(nèi)。在一個實例中,1%(0.01)的值可用作“下溢目標(biāo)”。另一實例使用0.5%(0.005)的值。為了實現(xiàn)“下溢目標(biāo)”,可以使去抖動緩沖器延遲自適應(yīng)。
在本發(fā)明的一個實例中,可以使用由于延遲分組而引起的下溢(下文中稱為“延遲下溢”)的百分比的經(jīng)過濾波的值,來使去抖動緩沖器延遲自適應(yīng)。在每個靜音段的結(jié)尾(或每個話音突峰的開頭)處,去抖動緩沖器延遲如圖6所示被更新。如圖6所示,算法規(guī)定如下內(nèi)容1)If(PERdelay<TARGET_VALUE)thenDEJITTER_DELAY=DEJITTER_DELAY-CONSTANT;2)If(PERdelay>TARGET_VALUE&&PERdelay>=last_PERdelay)thenDEJITTER_DELAY=DEJITTER_DELAY+CONSTANT;3)SetDEJITTER_DELAY=MAX(MIN_JITTER,DEJITTER_DELAY);AND4)DEJITTER_DELAY=MIN(MAX_JITTER,DEJITTER_DELAY). (1)在本實例中,可將初始去抖動緩沖器延遲設(shè)置成諸如40ms的常數(shù)值。TARGET_VALUE是“延遲下溢”的目標(biāo)值(例如1%)。PERdelay是在濾波器的參數(shù)允許實現(xiàn)TARGET_VALUE的情況下,分組的“延遲下溢”率的經(jīng)過濾波的值。last_PERdelay是去抖動緩沖器延遲的前一次更新時的PERdelay的值。DEJITTER_DELAY是如上文中定義的目標(biāo)去抖動緩沖器長度。在本實例中,CONSTANT等于20ms。MIN_JITTER和MAX_JITTER是去抖動緩沖器延遲的最小值和最大值;根據(jù)一個實例,這些值分別被設(shè)置為20ms和80ms。MIN_JITTER和MAX_JITTER可以基于系統(tǒng)模擬來估計。(MIN_JITTER,MAX_JITTER,CONSTANT)的值可取決于使用去抖動緩沖器的通信系統(tǒng)而被最優(yōu)化。
PERdelay可以在每個靜音段的結(jié)尾或在每個話音突峰的開頭處被更新,其中PERdelay被如下計算PERdelay=PER_CONSTANT×PERdelay+(1-PER_CONSTANT)×Current_PERdelay(2)PER_CONSTANT是供濾波器用于估計PERdelay的時間常數(shù)。該常數(shù)的值確定濾波器的存儲,并允許實現(xiàn)TARGET_VALUE。Current_PERdelay是在PERdelay的上一次更新和當(dāng)前更新之間觀察到的“延遲下溢”率。
Current_PERdelay被定義為上一次更新和當(dāng)前更新之間的延遲下溢分組的數(shù)目與PERdelay的接收到的分組的總數(shù)的比率。
參考圖6,用于計算和更新去抖動緩沖器延遲的處理100通過初始化DEJITTER_DELAY而在步驟101開始。在步驟102,通過比較而將PERdelay與TARGET_VALUE進(jìn)行比較。如果PERdelay小于TARGET_VALUE,則在步驟104,從DEJITTER_DELAY中減去值CONSTANT。如果在步驟102中PERdelay大于TARGET_VALUE,并且在步驟103中PERdelay大于TARGET_VALUE并大于或等于LAST_PERDELAY,并在步驟103中不小于last_PERdelay,則處理繼續(xù)進(jìn)行到?jīng)Q定108。在步驟108,DEJITTER_DELAY被設(shè)置成DEJITTER_DELAY加上值CONSTANT。從步驟103繼續(xù),如果PERdelay-不大于TARGET_VALUE并且不大于或等于LAST_PERDELAY,則處理繼續(xù)進(jìn)行到步驟110。此外,從步驟104繼續(xù),在步驟110,DEJITTER_DELAY被設(shè)置成等于MIN_JITTER和DEJITTER_DELAY中的最大值。從步驟110,處理繼續(xù)進(jìn)行到步驟112,以便在步驟112,將DEJITTER_DELAY設(shè)置成等于MAX_JITTER和DEJITTER_DELAY中的最小值。
對延遲的跟蹤去抖動緩沖器可以進(jìn)入對延遲進(jìn)行跟蹤(而不是對下溢率進(jìn)行跟蹤)的模式。所跟蹤的延遲可以是端對端延遲或去抖動緩沖器延遲。在一個實例中,去抖動緩沖器在目標(biāo)下溢率可以很容易滿足時進(jìn)入“延遲跟蹤”模式。這意味著去抖動緩沖器能夠在某段時間內(nèi)實現(xiàn)比目標(biāo)下溢率低的下溢率。該段時間可以是幾百毫秒到幾秒中的任何一段時間。
在該模式下,去抖動緩沖器具有目標(biāo)延遲值。這類似于上述的下溢目標(biāo)值??梢砸灶愃频姆绞绞褂蒙衔闹杏糜诖_定目標(biāo)下溢率的等式(1)來計算目標(biāo)延遲值。當(dāng)去抖動緩沖器進(jìn)入確定目標(biāo)延遲值的該模式時,只要能夠維持目標(biāo)延遲,這就可以允許去抖動緩沖器減小其目標(biāo)下溢率。
隱式緩沖器自適應(yīng)在一些情形下,解碼器可能會期待再現(xiàn)還沒有接收到的分組。圖5中示出了這種情形,其中PKT 50的預(yù)期再現(xiàn)時刻是t0,但是PKT 50在該時刻后才被接收到。類似地,PKT 51在其預(yù)期再現(xiàn)時刻t1后才被接收到,PKT 52在其預(yù)期再現(xiàn)時刻t2后才被接收到,等等。此處應(yīng)注意,分組相當(dāng)規(guī)則地到達(dá),但是由于PKT 50的接收時刻稍遲于其預(yù)期再現(xiàn)時刻,所以它使所有隨后的分組也錯過了它們的再現(xiàn)時刻。另一方面,如果解碼器能夠在時刻t0插入擦除并仍能夠在時刻t1再現(xiàn)分組PKT 50,則它將使得所有分組都符合它們的再現(xiàn)時刻。通過在擦除之后再現(xiàn)PKT 50而不是已經(jīng)對PKT 50進(jìn)行再現(xiàn),可以有效地使去抖動緩沖器長度自適應(yīng)。
應(yīng)注意,在PKT 50的擦除之后再現(xiàn)PKT 50可能會導(dǎo)致不連續(xù),這可以通過使用2005年7月7日提交的標(biāo)題為“PHASE MATCHING INVOCODERS”的共同未決的申請第11/192,231號中描述的相位匹配技術(shù)來消除。
如圖7A所示,在分組的接收中可能會存在間隙,諸如PKT 3和PKT 4之間的時間間隙。對于每個分組而言,分組到達(dá)時間中的延遲可能是不同的。去抖動緩沖器可以立即采用調(diào)整以補(bǔ)償該延遲,來做出響應(yīng)。如圖所示,PKT 1、PKT 2和PKT 3分別在時刻t1、t2和t3被接收到。在時刻t4,預(yù)期將接收到PKT 4,但是PKT 4還沒有到達(dá)。假定在圖7A中,預(yù)期每20ms就會接收到分組。在本示例中,PKT 2在PKT1后的20ms被接收到,并且PKT 3在PKT 1后的40ms被接收到。PKT4預(yù)期在PKT 1后的60ms被接收到,但是直到PKT 1后的80ms才到達(dá)。
在圖7B中,在接收到的第一個分組PKT 1的再現(xiàn)之前,在去抖動緩沖器處引入初始延遲。此處,傳輸延遲是Dinit。在這種情況下,PKT1將在時刻Dinit由緩沖器再現(xiàn),PKT 2將在時刻Dinit+20ms由緩沖器再現(xiàn),PKT 3將在時刻Dinit+40ms由緩沖器再現(xiàn),等等。在圖7B中,當(dāng)PKT 4未能在預(yù)期時刻Dinit+60ms到達(dá)時,擦除可由去抖動緩沖器再現(xiàn)。在對分組進(jìn)行再現(xiàn)的下一時刻,去抖動緩沖器將試圖再現(xiàn)PKT 4。如果PKT 4仍未到達(dá),則可在時刻Dinit+80ms發(fā)送另一個擦除。擦除將繼續(xù)被再現(xiàn),直到PKT 4到達(dá)去抖動緩沖器為止。一旦PKT 4到達(dá)去抖動緩沖器,PKT 4就接著被再現(xiàn)。這樣的處理會導(dǎo)致延遲,因為直到接收到PKT 4才會對其它分組進(jìn)行再現(xiàn)。當(dāng)系統(tǒng)不能夠恢復(fù)(即,從未接收到)PKT 4時,系統(tǒng)可以對處理進(jìn)行復(fù)位,從而允許再現(xiàn)PKT 4之后的分組而不再現(xiàn)PKT 4。在上述情形下,去抖動緩沖器的端對端延遲具有增加的潛在可能,因為在PKT 4到達(dá)之前可能會長時間地繼續(xù)發(fā)送擦除。
相反,根據(jù)如圖7C所示的實例,如果分組未能到達(dá)或者如果分組的接收被延遲,則在PKT 4的預(yù)期再現(xiàn)時刻將再現(xiàn)擦除。這類似于上面關(guān)于圖7B所描述的情形,在該情形下,系統(tǒng)等待PKT 4。在下一再現(xiàn)時刻,如果PKT 4仍未到達(dá)而下一分組PKT 5已經(jīng)到達(dá),則PKT 5得到再現(xiàn)。為了進(jìn)一步說明,假設(shè)PKT 4的接收被延遲并且去抖動緩沖器預(yù)期在時刻Dinit+80ms接收到PKT 4。當(dāng)PKT 4被延遲時,將再現(xiàn)擦除。在時刻Dinit+100ms,如果PKT 4仍未到達(dá),則對PKT 5進(jìn)行再現(xiàn)而不再現(xiàn)另一擦除。在該第二情形下,立即做出了對延遲的調(diào)整并避免了通信網(wǎng)絡(luò)中過大的端對端延遲。該處理可被稱為IBA,因為在再現(xiàn)之前存儲在緩沖器中的數(shù)據(jù)的大小是根據(jù)數(shù)據(jù)的接收而增加和減小的。
隱式緩沖器自適應(yīng)(IBA)處理200由圖8A中的流程圖示出。處理200可以實現(xiàn)在自適應(yīng)去抖動緩沖器內(nèi)的控制器(諸如輸出控制器760或去抖動緩沖器控制器756)中。處理200可以駐留在支持自適應(yīng)去抖動緩沖器的系統(tǒng)內(nèi)的其它部分中。在步驟202,在自適應(yīng)去抖動緩沖器處接收請求以提供用于再現(xiàn)的下一分組。下一分組被標(biāo)識為具有序列中的索引i的分組,具體為PKT[i]。在步驟204,如果隱式緩沖器自適應(yīng)(IBA)模式被啟用,則處理器繼續(xù)進(jìn)行到步驟206以根據(jù)IBA模式進(jìn)行處理;如果IBA模式被禁用,則處理繼續(xù)進(jìn)行到步驟226以便不采用IBA模式進(jìn)行處理。
如果在步驟206接收到PKT[i],則在步驟208,自適應(yīng)去抖動緩沖器提供PKT[i]以用于再現(xiàn)。IBA模式在步驟210被禁用,并且索引i被增加,即,(i=i+1)。此外,如果在步驟206沒有接收到PKT[i]并且如果在步驟214接收到PKT[i+1],則處理繼續(xù)進(jìn)行到步驟216以對PKT[i+1]進(jìn)行再現(xiàn)。IBA模式在步驟218被禁用,并且在步驟220,索引i被增加兩次,即,(i=i+2)。
如果在步驟214,PKT[i]和PKT[i+1]都沒有接收到,則在步驟222,控制器啟動對擦除的再現(xiàn);并且在步驟224,索引i被增加。應(yīng)注意,在本實例中,當(dāng)處于IBA模式中時,控制器總共檢查兩(2)個分組,來響應(yīng)諸如在步驟202中接收到的對下一分組的請求。這有效地實現(xiàn)了分組窗口,其中控制器在該分組窗口的范圍內(nèi)搜索接收到的分組。可選實例可以實現(xiàn)不同的窗口大小,例如,搜索三(3)個分組,在該實例中將是分組序號為i、i+1和i+2的分組。
返回到步驟204,如果IBA模式?jīng)]有被啟用,則處理繼續(xù)進(jìn)行到步驟226以確定是否接收到PKT[i]。如果接收到,則在步驟228,提供PKT[i]用于再現(xiàn),并且在步驟230,索引i被增加。如果在步驟226沒有接收到PKT[i]則在步驟232,自適應(yīng)去抖動緩沖器提供擦除以用于再現(xiàn)。由于沒有接收到PKT[i]并且擦除取代PKT[i]而得到再現(xiàn),所以啟用IBA模式。
圖8B是與IBA模式有關(guān)的狀態(tài)圖。當(dāng)處于普通模式242時,如果自適應(yīng)去抖動緩沖器提供PKT[i]用于再現(xiàn),則控制器停留在普通模式。當(dāng)擦除得到再現(xiàn)時,控制器從普通模式242轉(zhuǎn)換到IBA模式240。一旦處于IBA模式240,控制器就停留在該模式中并繼續(xù)再現(xiàn)擦除。在再現(xiàn)了PKT[i]或PKT[i+1]之后,控制器從IBA模式240轉(zhuǎn)換到普通模式242。
圖9是實現(xiàn)諸如圖8A和8B所示的IBA的去抖動緩沖器的一個實例。在本示例中,再現(xiàn)裝置從解碼器請求用于再現(xiàn)的樣本。然后,解碼器從去抖動緩沖器請求足夠的分組以允許再現(xiàn)裝置能夠進(jìn)行不間斷的再現(xiàn)。在本示例中,分組傳送語音通信,并且再現(xiàn)裝置每20ms就再現(xiàn)一樣本??蛇x系統(tǒng)可以通過其它配置將來自去抖動緩沖器的分組化的數(shù)據(jù)提供給再現(xiàn)裝置,并且分組化的數(shù)據(jù)可以不同于語音通信。
去抖動緩沖器在圖9中作為分組的堆疊而被示出。在該示例中,緩沖器首先接收到PKT 49,接著隨后接收到PKT 50、PKT 51、PKT 52、PKT 53等。該示例中的分組號指的是分組的順序。然而,在分組化的系統(tǒng)中,并不能保證將以該順序接收到分組。為了便于清楚地理解,在該示例中,分組以與傳輸順序相同的數(shù)字順序被接收,該順序也是再現(xiàn)的順序。為了說明的目的,在圖9中,將隨后接收到的分組堆在去抖動緩沖器中的先前接收到的分組的上面;例如,PKT 49堆在PKT50的上面,PKT 51堆在PKT 50的上面,等等。去抖動緩沖器中的位于堆疊底部的分組是首先要發(fā)送給再現(xiàn)裝置的分組。還應(yīng)注意,在本示例中,未示出目標(biāo)去抖動緩沖器長度。
在圖9中,相對于時間而畫出了分組的接收、分組的預(yù)期接收時刻以及分組的再現(xiàn)時刻。在每次接收到分組時,都示出了更新后的緩沖器狀態(tài)。例如,PKT 49在時刻t0被接收到,其中預(yù)期在時刻t1對PKT49進(jìn)行再現(xiàn)。在時刻t0(即PKT 49的接收時刻)上方的圖的頂部,示出了在接收到PKT 49之后的緩沖器狀態(tài)。將去抖動緩沖器處接收到的每個分組的接收時刻圖示為RECEIVED。就在RECEIVED時刻的下面,圖示了ANTICIPATED PLAYBACK時刻。再現(xiàn)時刻被標(biāo)識為PLAYBACK。
在該實例中,在最初,下一個要再現(xiàn)的分組是PKT 49,它被預(yù)期在時刻t0得到再現(xiàn)。預(yù)期下一個相繼的分組在時刻t1得到再現(xiàn),等等。第一分組PKT 49在預(yù)期再現(xiàn)時刻t0之前被接收到。因此,PKT 49按照預(yù)期在時刻t0得到再現(xiàn)。預(yù)期下一分組PKT 50在時刻t1得到再現(xiàn)。然而,PKT 50的接收被延遲,并且擦除取代PKT 50而被發(fā)送給再現(xiàn)裝置。PKT 50的延遲導(dǎo)致了如前所述的下溢。PKT 50在預(yù)期再現(xiàn)時刻t1之后并在下一預(yù)期再現(xiàn)時刻t2之前被接收到。一旦接收到PKT 50,就將PKT 50存儲在去抖動緩沖器中。因此,當(dāng)在時刻t2接收到下一個對用于再現(xiàn)的分組的請求時,系統(tǒng)在去抖動緩沖器中尋找序號最低的分組;并且PKT 50被提供給再現(xiàn)裝置以用于在時刻t2再現(xiàn)。應(yīng)注意,通過使用IBA,即使沒有及時接收到PKT 50以按照預(yù)期進(jìn)行再現(xiàn),PKT50也能在之后得到再現(xiàn),并且具有從該點接續(xù)下來的剩余的序號的分組也能得到再現(xiàn)。如圖所示,隨后的分組PKT 51、PKT 52等都被及時地接收和再現(xiàn)以避免更多的擦除。
盡管看上去好像IBA增加了分組的端對端延遲,但這并非實際情況。由于IBA導(dǎo)致更少數(shù)目的下溢,所以可以將從上文中的等式1估計的去抖動緩沖器值維持在較小的值。因此,IBA的整體效果將是分組整體的平均端對端延遲的減小。
IBA可以增強(qiáng)具有話音突峰的通信的處理。話音突峰是指語音通信的話音部分,其中語音通信包括符合正常話音模式(speech pattern)的話音部分和靜音部分。在話音處理中,聲碼器為話音生成一種類型的分組并為靜音生成另一種類型的分組。話音分組以一種編碼速率編碼,并且靜音以不同的編碼速率編碼。當(dāng)在去抖動緩沖器處接收到經(jīng)編碼的分組時,去抖動緩沖器根據(jù)編碼速率而識別分組類型。去抖動緩沖器假定話音幀是話音突峰的一部分。第一個非靜音幀是話音突峰的開頭。話音突峰在靜音分組被接收到時結(jié)束。在不連續(xù)的傳輸中,并非所有的靜音分組都被傳輸,這是因為接收器可能會實現(xiàn)模擬的噪聲來占據(jù)通信的靜音部分。在連續(xù)傳輸中,所有的靜音分組都被傳輸和接收。在一個實例中,去抖動緩沖器根據(jù)接收到的分組的類型來調(diào)整去抖動緩沖器長度。換言之,系統(tǒng)可以決定減小為通信的靜音部分所需的去抖動緩沖器的長度。應(yīng)注意,IBA方法可以適用于根據(jù)預(yù)定的定時方案(諸如固定速率等)進(jìn)行再現(xiàn)的任何通信。
時間規(guī)整話音突峰通常由數(shù)據(jù)的多個分組構(gòu)成。在一個實例中,可以將話音突峰的第一分組的再現(xiàn)延遲與去抖動緩沖器延遲相等的長度。去抖動緩沖器延遲可以以各種方式被確定。在一種情形下,去抖動緩沖器延遲可以是基于諸如上文中的等式1的算法而計算的去抖動緩沖器延遲。在另一情形下,去抖動緩沖器延遲可以是接收與去抖動緩沖器延遲的長度相等的語音數(shù)據(jù)所花費的時間。可選地,可將去抖動緩沖器延遲選擇為前述值中的較小值。在該實例中,假設(shè)去抖動緩沖器延遲通過使用等式1而被計算為60ms,并且話音突峰的第一個分組在第一時刻ti被接收到。當(dāng)在第一分組后的50ms接收到話音突峰的下一分組時,自適應(yīng)去抖動緩沖器數(shù)據(jù)等于去抖動延遲60ms。換言之,從在自適應(yīng)去抖動緩沖器處接收到分組到分組的再現(xiàn)所經(jīng)過的時間為60ms。應(yīng)注意,可以設(shè)置自適應(yīng)去抖動緩沖器的目標(biāo)長度以實現(xiàn)60ms延遲。這樣的計算確定的是為了滿足延遲時間而將要存儲的分組的數(shù)目。
自適應(yīng)去抖動緩沖器監(jiān)視數(shù)據(jù)對緩沖器的填充和從緩沖器的騰空,并調(diào)整緩沖器的輸出以便將緩沖器維持在目標(biāo)延遲長度,即調(diào)整數(shù)據(jù)量以便實現(xiàn)目標(biāo)延遲時間。當(dāng)去抖動緩沖器發(fā)送話音突峰的第一分組以用于再現(xiàn)時,存在著等于Δ的延遲,其中Δ=MIN(去抖動緩沖器延遲,接收等于去抖動延遲的語音數(shù)據(jù)所花費的時間)。話音突峰的隨后的分組被延遲的時間為Δ加上再現(xiàn)先前分組所花費的時間。因此,一旦已經(jīng)定義了第一分組的去抖動緩沖器延遲,就隱式地定義了相同話音突峰中的隨后分組的去抖動緩沖器延遲。在實踐中,去抖動緩沖器延遲的定義可能會需要額外的考慮以便適應(yīng)諸如圖10中所示的情況。
圖10示出了話音突峰中的語音信息的傳輸。話音突峰150在時刻t0被接收,并且話音突峰154在時刻t2被接收。在話音突峰150和話音突峰154之間接收到20ms的靜音段152。在接收到之后,自適應(yīng)去抖動緩沖器可以存儲接收到的數(shù)據(jù)并為每個話音突峰分組的再現(xiàn)確定延遲。在該實例中,話音突峰150在時刻t0在自適應(yīng)去抖動緩沖器處被接收到,其中自適應(yīng)去抖動緩沖器延遲時間被計算為80ms。將去抖動緩沖器延遲加到接收時刻上以產(chǎn)生再現(xiàn)時刻。這樣,話音突峰150在再現(xiàn)之前被自適應(yīng)去抖動緩沖器延遲了80ms。話音突峰150在時刻t1開始再現(xiàn),其中t1=t0+80ms,或者話音突峰150在接收到話音突峰150之后的80ms開始再現(xiàn);并且話音突峰150在時刻t4完成再現(xiàn)。通過使用諸如等式1的算法來計算上述目標(biāo)去抖動緩沖器長度,施加給話音突峰154的去抖動緩沖器延遲是40ms。這意味著話音突峰154的第一個分組將在時刻t3得到再現(xiàn),其中t3=t2+40ms,或者話音突峰154的第一個分組將在接收到話音突峰154之后的40ms得到再現(xiàn)。然而,分組154在時刻t3的再現(xiàn),與在時刻t4結(jié)束再現(xiàn)的話音突峰150的最后一個分組的再現(xiàn)是相沖突的。因此,(為分組154)計算出的40ms的去抖動緩沖器延遲不能使話音突峰150有足夠的時間結(jié)束再現(xiàn)。為了避免沖突并允許兩個分組都正確地得到再現(xiàn),應(yīng)該在話音突峰150的最后一個分組已經(jīng)再現(xiàn)之后才對與話音突峰150之間具有靜音段的話音突峰154的第一個分組進(jìn)行再現(xiàn)。在該實例中,話音突峰150和話音突峰154在時刻t3至t4之間相重疊。因此,再現(xiàn)方法在這種情形下是不理想的。為了防止如本文中所述的分組再現(xiàn)之間的重疊,需要檢測前一個話音突峰的最后一個分組被再現(xiàn)的時刻。因此,為分組進(jìn)行的去抖動緩沖器延遲的計算可以考慮前一個再現(xiàn)分組的再現(xiàn)時間,以便避免重疊或沖突。
如上所述,在一個實例中,去抖動緩沖器延遲是在話音突峰的開頭處計算或更新的。然而,將去抖動緩沖器延遲的更新限制到話音突峰的開頭,可能是有限制的,因為話音突峰常常在長度上有所變化并且工作條件在話音突峰期間可能會發(fā)生變化??紤]圖10的實例。因此,需要在話音突峰期間更新去抖動緩沖器延遲。
應(yīng)注意,合乎需要的是,控制從自適應(yīng)去抖動緩沖器中流出的數(shù)據(jù)流以便維持目標(biāo)延遲長度。這樣,如果自適應(yīng)去抖動緩沖器正在接收具有可變延遲的數(shù)據(jù),則從自適應(yīng)去抖動緩沖器中流出的數(shù)據(jù)就可以得到調(diào)整,以便允許緩沖器填充有足夠的數(shù)據(jù)來滿足目標(biāo)自適應(yīng)去抖動緩沖器長度。當(dāng)自適應(yīng)去抖動緩沖器所接收的分組不充足時,可以使用時間規(guī)整來擴(kuò)展分組以便維持目標(biāo)延遲長度。類似地,當(dāng)自適應(yīng)去抖動緩沖器所接收的分組過多并且正在存儲超出目標(biāo)延遲長度的分組時,可以使用時間規(guī)整來壓縮分組。自適應(yīng)去抖動緩沖器可以與解碼器配合工作以便對分組進(jìn)行時間規(guī)整,如本文中所述。
圖11是包括通過網(wǎng)絡(luò)元件進(jìn)行通信的兩個接收器的系統(tǒng)的框圖。接收器是AT 252和AT 282;如圖所示,AT 252和282適于通過BS 270進(jìn)行通信。在AT 252中,發(fā)射處理單元264將語音數(shù)據(jù)發(fā)送給編碼器260,編碼器260對語音數(shù)據(jù)進(jìn)行數(shù)字化并將經(jīng)分組的數(shù)據(jù)發(fā)送給低層處理單元258。然后分組被發(fā)送給BS 270。當(dāng)AT 252接收到來自BS 270的數(shù)據(jù)時,數(shù)據(jù)首先在低層處理單元258中被處理,從這里,數(shù)據(jù)的分組被提供給自適應(yīng)去抖動緩沖器256。接收到的分組被存儲在自適應(yīng)去抖動緩沖器256中,直到達(dá)到目標(biāo)去抖動緩沖器長度為止。一旦達(dá)到了目標(biāo)去抖動緩沖器長度,自適應(yīng)去抖動緩沖器256就將數(shù)據(jù)發(fā)送給解碼器254。在該示出的實例中,實現(xiàn)時間規(guī)整的壓縮和擴(kuò)展可以在解碼器254中執(zhí)行,該解碼器254將分組化的數(shù)據(jù)轉(zhuǎn)換成語音數(shù)據(jù)并將語音數(shù)據(jù)發(fā)送給接收處理單元262。在本發(fā)明的另一實例中,時間壓縮和擴(kuò)展(時間規(guī)整)可以在自適應(yīng)去抖動緩沖器內(nèi)由(未示出的)控制器執(zhí)行。AT 282的行為類似于AT 252。AT 282在從發(fā)射處理單元294到編碼器290到低層處理單元288并最終到BS 270的路徑上發(fā)送數(shù)據(jù)。AT 282在從低層處理單元288到自適應(yīng)去抖動緩沖器286到解碼器284到接收處理單元292的路徑上接收數(shù)據(jù)。進(jìn)一步的處理并未示出,但是可能會影響諸如語音的數(shù)據(jù)的再現(xiàn)并且可能會涉及音頻處理、屏幕顯示等。
等式1中給出的去抖動緩沖器等式在話音突峰的開頭處計算去抖動緩沖器延遲。去抖動緩沖器延遲可以表示諸如由話音突峰確定的特定分組數(shù)目,或者可以表示與(諸如語音數(shù)據(jù)的)數(shù)據(jù)的再現(xiàn)等效的預(yù)期時刻。此處應(yīng)注意,去抖動緩沖器具有目標(biāo)大小,并且這確定了預(yù)期在所有時間點處在去抖動緩沖器中看到的所存儲的數(shù)據(jù)量。
由于信道條件和其它工作條件而引起的分組延遲的變化,會導(dǎo)致分組到達(dá)自適應(yīng)去抖動緩沖器的時間的差別。因此,自適應(yīng)去抖動緩沖器中的數(shù)據(jù)量(分組數(shù)目)可能會小于或大于所計算的去抖動緩沖器延遲值DEJITTER_DELAY。例如,分組可能會以比它們最初在編碼器處被生成的速率更慢或更快的速率到達(dá)去抖動緩沖器。當(dāng)分組以慢于預(yù)期速率的速率到達(dá)去抖動緩沖器時,去抖動緩沖器會開始耗盡,因為到來的分組將不能以相同的速率補(bǔ)充流出的分組。換句話說,如果分組以比編碼器處的生成速率更快的速率到達(dá),則去抖動緩沖器的大小會開始增加,因為分組離開去抖動緩沖器的速率無法與它們進(jìn)入去抖動緩沖器的速率一樣快。前一種狀況會導(dǎo)致下溢,而后一種狀況會由于去抖動緩沖器中更大的緩沖時間而導(dǎo)致較高的端對端延遲。后一種狀況是重要的,因為如果分組數(shù)據(jù)系統(tǒng)的端對端延遲減小(AT移動到負(fù)載更小的區(qū)域或者用戶移動到具有更好信道質(zhì)量的區(qū)域),則合乎需要的是將該延遲減小結(jié)合到話音的再現(xiàn)中。端對端延遲是重要的話音質(zhì)量因素,并且再現(xiàn)延遲的任何減小都會被感覺為會話或話音質(zhì)量的提高。
為了在去抖動緩沖器中校正DEJITTER_DELAY和實際存在于去抖動緩沖器中的數(shù)據(jù)量之間的差別,去抖動緩沖器的一個實例采用時間規(guī)整。時間規(guī)整涉及擴(kuò)展或壓縮話音分組的持續(xù)時間。當(dāng)自適應(yīng)去抖動緩沖器開始耗盡時,去抖動緩沖器通過擴(kuò)展話音分組來實現(xiàn)時間規(guī)整,并且當(dāng)自適應(yīng)去抖動緩沖器變得大于DEJITTER_DELAY時,去抖動緩沖器通過壓縮話音分組來實現(xiàn)時間規(guī)整。自適應(yīng)去抖動緩沖器可以與解碼器配合工作以便對分組進(jìn)行時間規(guī)整。時間規(guī)整提供話音質(zhì)量的實質(zhì)性的提高而不會增加端對端延遲。
圖12是實現(xiàn)時間規(guī)整的自適應(yīng)去抖動緩沖器的一個實例的框圖。物理層處理單元302將數(shù)據(jù)提供給數(shù)據(jù)堆棧304。數(shù)據(jù)堆棧304將分組輸出給自適應(yīng)去抖動緩沖器和控制單元306。前向鏈路(FL)媒體接入控制(MAC)處理單元300向去抖動處理單元306提供越區(qū)切換指示。MAC層實現(xiàn)用于在物理層上(即通過空中)接收和發(fā)送數(shù)據(jù)的協(xié)議。MAC層可以包括安全、加密、認(rèn)證和連接信息。在支持IS-856的系統(tǒng)中,MAC層包含管理控制信道、接入信道以及前向和反向業(yè)務(wù)信道的規(guī)則。目標(biāo)長度估計器314通過使用等式1中給出的計算而向去抖動緩沖器提供目標(biāo)去抖動緩沖器長度。對目標(biāo)長度估計器314的輸入包括分組到達(dá)信息和當(dāng)前分組差錯率(PER)。應(yīng)注意,可選配置可以包括位于自適應(yīng)去抖動緩沖器和控制單元306內(nèi)的目標(biāo)長度估計器314。
在一個實例中,自適應(yīng)去抖動緩沖器和控制單元306還包括控制為再現(xiàn)提供的數(shù)據(jù)的速率的再現(xiàn)控制。從自適應(yīng)去抖動緩沖器和控制單元306,分組被發(fā)送給不連續(xù)發(fā)射(DTX)單元308,其中DTX單元308在話音數(shù)據(jù)未被接收到時向解碼器310提供背景噪聲信息。應(yīng)注意,由自適應(yīng)去抖動緩沖器和控制單元306提供的分組已準(zhǔn)備好用于解碼處理,并且可被稱為聲碼器分組。解碼器310對分組進(jìn)行解碼并將脈沖編碼調(diào)制(PCM)話音樣本提供給時間規(guī)整單元312。在可選實例中,可以將時間規(guī)整單元312實現(xiàn)在解碼器310內(nèi)。時間規(guī)整單元312從自適應(yīng)去抖動緩沖器和控制單元306接收時間規(guī)整指示符。時間規(guī)整指示符可以是控制信號、指令信號或標(biāo)記。在一個實例中,時間規(guī)整指示符可以是具有例如壓縮、擴(kuò)展和不進(jìn)行時間規(guī)整的多狀態(tài)指示符。對于不同的壓縮級別和/或不同的擴(kuò)展級別,可以有不同的值。在一個實例中,時間規(guī)整指示符指示時間規(guī)整單元312擴(kuò)展或壓縮數(shù)據(jù)。時間規(guī)整指示符指示擴(kuò)展、壓縮或不進(jìn)行時間規(guī)整??梢詫r間規(guī)整指示符看作是啟動時間規(guī)整單元312處的操作的控制信號。時間規(guī)整指示符可以是規(guī)定如何擴(kuò)展或壓縮分組的消息。時間規(guī)整指示符可以標(biāo)識要進(jìn)行時間規(guī)整的分組以及所采取的操作是壓縮還是擴(kuò)展。此外,時間規(guī)整指示符可以向時間規(guī)整單元312提供對選項的選擇。在靜音間隔期間,DTX模塊將去抖動緩沖器所提供的擦除流修改成擦除和靜音幀的流,其中解碼器使用該擦除和靜音幀的流來重建更準(zhǔn)確和更高質(zhì)量的背景噪聲。在可選實例中,時間規(guī)整指示符開啟和關(guān)閉時間規(guī)整。在另一實例中,指示符標(biāo)識用于再現(xiàn)的壓縮和擴(kuò)展的量。時間規(guī)整單元312可以修改來自解碼器的樣本并將樣本提供給音頻處理316,該音頻處理316可以包括接口和轉(zhuǎn)換單元以及音頻驅(qū)動器和揚聲器。
盡管時間規(guī)整指示符標(biāo)識了何時進(jìn)行壓縮或者何時進(jìn)行擴(kuò)展,但仍需要確定將對給定分組應(yīng)用多少時間規(guī)整。在一個實施例中,時間規(guī)整的量是固定的,其中分組根據(jù)話音周期或音高而被進(jìn)行時間規(guī)整。
在一個實施例中,時間規(guī)整指示符是作為目標(biāo)擴(kuò)展級別或目標(biāo)壓縮級別的百分比來傳遞的。換言之,時間規(guī)整指示符指示壓縮給定的百分比或者擴(kuò)展給定的百分比。
在一種情形下,可能有必要識別到來的數(shù)據(jù)的已知特性。例如,編碼器可以預(yù)期已知音調(diào)的數(shù)據(jù)或者具有例如特定長度特性的數(shù)據(jù)。在這種情況下,由于可以預(yù)期特定特性,所以使用時間規(guī)整來修改接收到的數(shù)據(jù)將不是理想的。例如,編碼器可以預(yù)期到來的數(shù)據(jù)具有特定的音調(diào)長度。然而,如果時間規(guī)整被啟用,則音調(diào)長度可能會通過時間規(guī)整而被修改。因此,在這種情形下,不應(yīng)該啟用時間規(guī)整。基于音調(diào)的通信包括但不限于文本電話/聾啞人電話裝置(TTY/TDD)信息、使用鍵盤輸入的應(yīng)用或者使用基于音調(diào)的通信的其它應(yīng)用。在這樣的通信中,音調(diào)載波信息的長度,并且因此,修改音高或音調(diào)長度,諸如在再現(xiàn)時的壓縮或擴(kuò)展,會導(dǎo)致該信息的丟失。在使有聽力障礙的接收者能夠接收的TTY、TDD和其它應(yīng)用中,解碼器也提供這種通信的其帶內(nèi)處理的狀態(tài)。該指示被用于掩蔽去抖動緩沖器所提供的時間規(guī)整指示。如果解碼器正在處理具有TTY/TDD信息的分組,則應(yīng)該禁用時間規(guī)整。這可以用2種方式來實現(xiàn);向去抖動緩沖器控制器提供TTY/TDD狀態(tài),或者向時間規(guī)整單元提供TTY/TDD狀態(tài)。如果解碼器TTY/TDD狀態(tài)被提供給去抖動緩沖器控制器,則當(dāng)聲碼器指示TTY/TDD的處理時,控制器不應(yīng)該指示任何擴(kuò)展或壓縮指示。如果解碼器TTY/TDD狀態(tài)被提供給時間規(guī)整單元,則這會起到濾波器的作用,并且如果解碼器正在處理TTY/TDD信息,則時間規(guī)整單元在接收到時間規(guī)整指示后不會采取操作。
在如圖12所示的系統(tǒng)中,自適應(yīng)去抖動緩沖器和控制單元306監(jiān)視到來數(shù)據(jù)的速率,并且在過多或過少的分組被獲得或緩沖時生成時間規(guī)整指示符。自適應(yīng)去抖動緩沖器和控制單元306確定何時進(jìn)行時間規(guī)整以及采取什么操作。圖13A示出了通過使用壓縮和擴(kuò)展閾值來做出時間規(guī)整決定的自適應(yīng)去抖動緩沖器的一個實例的操作。自適應(yīng)去抖動緩沖器累積可能已經(jīng)以不規(guī)則的時間間隔到達(dá)的分組。去抖動目標(biāo)長度估計器314產(chǎn)生目標(biāo)去抖動緩沖器長度;然后目標(biāo)去抖動緩沖器長度被施加給去抖動緩沖器。在實踐中,自適應(yīng)去抖動緩沖器和控制單元306使用去抖動緩沖器長度值來做出關(guān)于去抖動緩沖器操作的控制決定并控制再現(xiàn)。壓縮閾值和擴(kuò)展閾值分別指示何時觸發(fā)壓縮或擴(kuò)展??梢詫⑦@些閾值指定為去抖動目標(biāo)長度的一小部分。
如圖13A所示,目標(biāo)去抖動緩沖器長度被給定為LTarget。壓縮閾值被給定為TCompress,并且擴(kuò)展閾值被給定為TExpand。當(dāng)去抖動緩沖器長度增加到超出壓縮閾值TCompress時,去抖動緩沖器向解碼器指示分組應(yīng)該被壓縮。
以類似的方式,當(dāng)去抖動緩沖器長度減小到低于擴(kuò)展閾值TExpand時,去抖動緩沖器向解碼器指示分組應(yīng)該被擴(kuò)展并應(yīng)該以更低的速率被有效地再現(xiàn)。
擴(kuò)展和壓縮閾值之間的操作點避免了下溢以及端對端延遲的過大的增加。因此,目標(biāo)操作是在TCompress和TExpand之間。在一個實例中,擴(kuò)展和壓縮閾值的值被分別設(shè)置成去抖動緩沖器的目標(biāo)值的50%和100%。盡管在一個實例中,時間規(guī)整可以在解碼器內(nèi)部執(zhí)行,而在可選實例中,該功能可以在解碼器外部執(zhí)行,例如在解碼之后執(zhí)行。然而,在合成信號之前對信號進(jìn)行時間規(guī)整可能會更簡單。如果在解碼信號之后應(yīng)用這樣的時間規(guī)整方法,則將需要估計信號的音高周期。
在某些情形下,例如在W-CDMA系統(tǒng)中,去抖動緩沖器長度可以更大。時間規(guī)整閾值發(fā)生器可以生成多個壓縮和擴(kuò)展閾值??梢皂憫?yīng)于工作條件而計算這些閾值。圖13B中示出了多級別閾值。TC1是第一壓縮閾值,TC2是第二壓縮閾值,并且TC3是第三壓縮閾值。圖中也示出了表示三個不同的壓縮閾值的值的TE1、TE2和TE3。閾值可以基于時間規(guī)整的百分比(經(jīng)歷時間規(guī)整的分組數(shù)目)、壓縮分組的百分比、擴(kuò)展分組的百分比或者這兩個值的比率。閾值的數(shù)目可以根據(jù)需要而變化,換言之,可能會需要更多或更少的閾值。閾值中的每一個涉及不同的壓縮或擴(kuò)展速率,例如,對于要求更細(xì)粒度的系統(tǒng),可以使用更多的閾值,而對于更粗糙的粒度,可以使用更少的閾值。TE1、TE2和TE3等可以是目標(biāo)延遲長度的函數(shù)??梢酝ㄟ^跟蹤延遲下溢并基于諸如PER的差錯統(tǒng)計數(shù)據(jù)來改變閾值。
圖14示出了采用時間規(guī)整和沒有采用時間規(guī)整的分組的再現(xiàn)。在圖14中,PKT 1在時刻t1被傳輸,PKT 2在時刻t2被發(fā)送,等等。分組按照所指示的那樣到達(dá)接收器,其中PKT 1在t2’到達(dá),并且PKT 2在t2”到達(dá)。對于每個分組,將沒有使用時間規(guī)整的再現(xiàn)時刻作為PLAYBACK WITHOUT WARPING(沒有采用規(guī)整的再現(xiàn))給出。相反,將使用時間規(guī)整的再現(xiàn)時刻作為PLAYBACK WITH WARPING(采用規(guī)整的再現(xiàn))給出。由于本實例是關(guān)于諸如話音通信的實時數(shù)據(jù)的,所以分組的預(yù)期再現(xiàn)時刻具有固定的時間間隔。在再現(xiàn)期間,理想的是每個分組在預(yù)期再現(xiàn)時刻之前到達(dá)。如果分組的到達(dá)對于預(yù)期時刻的再現(xiàn)而言過遲,則會對再現(xiàn)質(zhì)量造成影響。
PKT 1和2被按時接收到,并且它們被再現(xiàn)而沒有經(jīng)歷時間規(guī)整。PKT 3和PKT 4二者在同一時刻t4’被接收到。兩個分組的接收時刻是滿足要求的,因為每個分組都是在相關(guān)的預(yù)期再現(xiàn)時刻(對于PKT 3為t4”,對于PKT 4為t5’)之前接收到的。PKT 3和4被按時再現(xiàn)而沒有經(jīng)歷時間規(guī)整。當(dāng)在PKT 5的預(yù)期再現(xiàn)時刻之后的時刻t6’接收到PKT 5時,問題發(fā)生了。在預(yù)期再現(xiàn)時刻,擦除取代PKT 5而得到再現(xiàn)。隨后,PKT 5在擦除已經(jīng)開始再現(xiàn)之后才到達(dá)。
在沒有采用規(guī)整的第一種情形下,PKT 5被丟棄并且PKT 6被接收到并在下一預(yù)期再現(xiàn)時刻得到再現(xiàn)。應(yīng)注意,在這種情況下,PKT 6被及時接收到以用于再現(xiàn)。在第二種情形下,如果PKT 5和PKT 5之后的所有分組被延遲,則每個分組對于預(yù)期再現(xiàn)而言會到達(dá)得過遲,并會導(dǎo)致一串擦除。在這兩種情形下,信息都被丟失,即,在第一種情形下PKT 5被丟棄;在第二種情形下PKT 5和隨后的分組被丟失。
可選地,使用IBA技術(shù)允許PKT 5在下一預(yù)期再現(xiàn)時刻得到再現(xiàn),其中隨后的分組從該點接續(xù)下來。IBA防止了數(shù)據(jù)的丟失,但延遲了分組流。
沒有采用時間規(guī)整的這種再現(xiàn)會增加通信系統(tǒng)中的整個端對端延遲。如圖14所示,分組間的延遲會導(dǎo)致丟失信息或者再現(xiàn)的延遲。
通過實現(xiàn)時間規(guī)整,當(dāng)PKT 5在其預(yù)期再現(xiàn)時刻之后到達(dá)時,分組被擴(kuò)展并且可以避免擦除。例如,擴(kuò)展PKT 4可以使再現(xiàn)以23ms完成而不是20ms。PKT 5在其被接收到時得到再現(xiàn)。這比發(fā)送擦除來進(jìn)行再現(xiàn)的情況(如圖14中所述的沒有采用時間規(guī)整但采用了IBA的再現(xiàn)的可選實例所示)要更快。用擴(kuò)展PKT 4來代替發(fā)送擦除,會使再現(xiàn)質(zhì)量的惡化更小。因此,時間規(guī)整提供了更好的整體再現(xiàn)質(zhì)量以及等待時間的減小。如圖14所示,通過使用時間規(guī)整,與不使用時間規(guī)整技術(shù)的情況相比,PKT 5之后的分組更早地得到了再現(xiàn)。在該具體實例中,當(dāng)使用時間規(guī)整時,PKT 7在時刻t9得到再現(xiàn),這要早于沒有采用時間規(guī)整的情況。
應(yīng)用時間規(guī)整以改善再現(xiàn)質(zhì)量,同時要考慮變化的工作條件以及話音傳輸中所傳輸信息的特性的變化。由于具有話音突峰和靜音段的話音特性會變化,所以目標(biāo)去抖動緩沖器延遲長度以及用于每種類型的數(shù)據(jù)的壓縮和擴(kuò)展閾值可能是不同的。
圖15示出了隨著話音突峰的不同,由于去抖動延遲的差異而引起的“靜音壓縮”和“靜音擴(kuò)展”的實例。在圖15中,陰影區(qū)域120、124和128表示話音突峰,而無陰影的區(qū)域122和126表示接收到的信息的靜音段。在被接收時,話音突峰120起始于時刻t1并結(jié)束于時刻t2。在接收器處,去抖動緩沖器延遲被引入,因此話音突峰120的再現(xiàn)開始于時刻t1’。去抖動緩沖器延遲被標(biāo)識為時刻t1’與時刻t1之間的差。在被接收時,靜音段122起始于時刻t2并結(jié)束于時刻t3。靜音段122被壓縮并被再現(xiàn)為從時刻t2’到t3’的靜音段132,這要小于接收到的靜音段122的原始持續(xù)時間。在信號源處,話音突峰124起始于時刻t3并結(jié)束于時刻t4。在接收器處,話音突峰104從時刻t3’到時刻t4’被再現(xiàn)。靜音段126(時刻t4到t5)在接收器處進(jìn)行再現(xiàn)時被擴(kuò)展為靜音段136,其中(t5’-t4’)大于(t5-t4)。當(dāng)去抖動緩沖器需要更早地再現(xiàn)分組時可以壓縮靜音段,并且當(dāng)去抖動緩沖器需要延遲分組的再現(xiàn)時可以擴(kuò)展靜音段。在一個實例中,靜音段的壓縮或擴(kuò)展會導(dǎo)致語音質(zhì)量微小的惡化。因此,可以實現(xiàn)自適應(yīng)去抖動延遲而不使語音質(zhì)量惡化。在圖15的實例中,自適應(yīng)去抖動緩沖器壓縮和擴(kuò)展由該自適應(yīng)去抖動緩沖器識別和控制的靜音段。
應(yīng)注意,如在本文中使用的那樣,時間規(guī)整是指響應(yīng)于到達(dá)時間和接收到的數(shù)據(jù)的長度而對再現(xiàn)進(jìn)行自適應(yīng)控制。時間規(guī)整可以通過在再現(xiàn)時壓縮數(shù)據(jù)、在再現(xiàn)時擴(kuò)展數(shù)據(jù)或者在再現(xiàn)時壓縮和擴(kuò)展數(shù)據(jù)來實現(xiàn)。在一個實例中,使用閾值來觸發(fā)壓縮。在另一實例中,使用閾值來觸發(fā)擴(kuò)展。在又一實例中,使用兩個觸發(fā)一個用于觸發(fā)壓縮,一個用于觸發(fā)擴(kuò)展。其它實例可以采用指示時間規(guī)整的各種級別(例如,不同速率的快速再現(xiàn))的多個觸發(fā)。
也可以在解碼器內(nèi)部執(zhí)行時間規(guī)整。用于執(zhí)行解碼器時間規(guī)整的技術(shù)被記述在2005年5月5日提交的標(biāo)題為“Time Warping FramesInside the Vocoder by Modifying the Residual”的共同未決的申請第11/123,467號中。
在一個實例中,時間規(guī)整包含用于“融合”話音片段的方法。融合話音片段涉及比較至少兩個連續(xù)的話音片段中的話音樣本,并且如果在所比較的片段之間發(fā)現(xiàn)相關(guān)性,則生成至少兩個連續(xù)片段的單一片段。話音的融合是在試圖保持話音質(zhì)量時進(jìn)行的。保持話音質(zhì)量并使引入到輸出的話音中的瑕疵(諸如是提供給用戶的質(zhì)量惡化的聲音,包括“咯嚓聲”和“砰響聲”)最小化,是通過仔細(xì)地選擇要融合的分組來實現(xiàn)的。話音片段的選擇基于片段的相似性或相關(guān)性。話音片段的相似性越接近,產(chǎn)生的話音質(zhì)量就越好并且引入話音瑕疵的概率就越低。
圖16示出了隨時間繪出的話音信號??v軸表示信號的幅度;并且橫軸表示時間。應(yīng)注意,話音信號具有區(qū)別性的模式,其中話音信號的一些部分隨時間重復(fù)。在該實例中,話音信號包括從時刻t1到t2的第一片段,其在t2到t3期間作為第二片段重復(fù)。當(dāng)發(fā)現(xiàn)片段的這種重復(fù)時,片段中的一個或更多個,諸如從時刻t2到時刻t3的片段,可以被消除而幾乎不會對樣本的再現(xiàn)質(zhì)量造成影響或者實際上不會造成影響。
在一個實例中,可以使用如在下文中給出的等式4來找出兩個話音片段之間的關(guān)系。相關(guān)性是兩個片段之間的關(guān)系的強(qiáng)度的度量。等式4提供了絕對和邊界相關(guān)因子(從-1到1)作為關(guān)系的強(qiáng)度的度量,其中與反映較強(qiáng)關(guān)系(即較大的相關(guān)性)的較高的正數(shù)相比,較低的負(fù)數(shù)反映較弱的關(guān)系,即較小的相關(guān)性。如果等式4的應(yīng)用指示“良好的相似性”,則執(zhí)行時間規(guī)整。如果等式4的應(yīng)用顯示出極弱的相似性,則瑕疵可能會存在于融合的話音片段中。相關(guān)性給出如下Corr(d)=Σi[(x(i)-mx)×(y(i-d)-my)]Σi(x(i)-mx)^2Σi(y(i-d)-my)^2---(4)]]>在等式4中,x和y表示兩個話音片段,m表示在其范圍內(nèi)計算兩個片段之間的相關(guān)性的窗口,d表示相關(guān)性部分,并且i是索引。如果等式4的應(yīng)用指示可以融合片段而不會引入瑕疵,則可以使用“重疊相加”技術(shù)來進(jìn)行融合。重疊相加技術(shù)將被比較的片段結(jié)合在一起并從兩個分離的話音片段中生成一個話音片段。使用重疊相加的結(jié)合,可以基于諸如等式5的等式,其中等式5給出如下a)OutSegment[i]=(Segment1(i)*(WindowSize-i)+(Segment2(i)*i)WindowSize]]>b)OutSegment[i]=(Segment2(i)*(WindowSize-i)+(Segment1(i)*i)WindowSize---(5)]]>i=0..WindowSize-1WindowSize=RWindowSize合成的樣本可以是脈沖編碼調(diào)制(PCM)樣本。每個PCM樣本具有定義位長度的預(yù)定格式和PCM樣本的格式。例如,16位帶符號數(shù)可以是表示PCM樣本的格式。通過應(yīng)用等式5而產(chǎn)生的重疊相加技術(shù),包括進(jìn)行加權(quán)以提供片段1的第一個PCM樣本和片段2的最后一個PCM樣本之間的平滑過渡。在等式5中,“RWindowSize”是參考窗口中的PCM樣本的數(shù)目,并且“OutSegment”是所產(chǎn)生的重疊相加后的片段的大小?!癢indowSize”等于參考窗口大小并且“Segment”是目標(biāo)片段大小。這些變量是取決于采樣速率、話音的頻率內(nèi)容以及質(zhì)量和計算復(fù)雜度之間的期望折衷而確定的。
圖17A和17B中示出了上述的重疊相加技術(shù)。在圖17A中,示出了由160個PCM樣本組成的話音片段。在該實例中,RWindowSize由PCM樣本0-47表示。換言之,PCM樣本0-47與大小為WindowSize的參考窗口中的樣本的數(shù)目相對應(yīng)。Segment是指目標(biāo)搜索區(qū)域的大小并由PCM樣本10-104表示。在該實例中,將PCM樣本0-47與樣本10-104進(jìn)行比較,一次比較一個PCM樣本,來找出參考樣本與目標(biāo)搜索區(qū)域之間的最佳相關(guān)性。目標(biāo)搜索區(qū)域內(nèi)發(fā)現(xiàn)最大相關(guān)性的位置被稱為“偏移”。在偏移點處,可以將RWindowSize與對應(yīng)于RWindowSize大小的Segment的部分結(jié)合。使對應(yīng)于PCM樣本104-160的話音片段保持不變。
在圖17B中,以一次比較一個PCM樣本的方式將話音片段的第一個RWindowSize樣本與話音片段的隨后的部分進(jìn)行比較。發(fā)現(xiàn)RWindowSize與目標(biāo)搜索區(qū)域(Segment)內(nèi)相應(yīng)長度的樣本之間的最大相關(guān)性的位置是“偏移”。偏移的長度是從話音片段的開頭到發(fā)現(xiàn)RWindowSize與Segment之間的最大相關(guān)性的點之間的距離。一旦發(fā)現(xiàn)最大相關(guān)性,就(在偏移點處)將RWindowSize與相應(yīng)長度的Segment融合。換言之,通過將RWindowSize加到Segment內(nèi)的相同長度的部分上,來執(zhí)行重疊相加。這是在如圖所示的偏移點處進(jìn)行的。如圖所示,從原始片段中復(fù)制剩余的樣本。所產(chǎn)生的話音樣本是通過將從原始話音片段中復(fù)制的剩余樣本附加在融合的樣本上而構(gòu)成的,如圖所示。所產(chǎn)生的分組比原始片段短偏移的長度更短。該處理被稱為話音壓縮。壓縮的話音片段越少,人檢測到任何質(zhì)量惡化的概率就越低。
當(dāng)去抖動緩沖器包含較少數(shù)目的語音分組時,執(zhí)行話音擴(kuò)展。如果去抖動緩沖器具有較少數(shù)目的語音分組,則下溢的概率會增加。當(dāng)發(fā)生下溢時,去抖動緩沖器可以將擦除饋送給解碼器。然而,這會導(dǎo)致語音質(zhì)量的惡化。為了防止語音質(zhì)量的這種惡化,可以延遲去抖動緩沖器中的最后幾個分組的再現(xiàn)。這是通過擴(kuò)展分組來實現(xiàn)的。
話音擴(kuò)展可以通過重復(fù)話音片段的多個PCM樣本來實現(xiàn)。重復(fù)多個PCM樣本同時避免瑕疵或音高平坦(pitch flatness)是通過采用比執(zhí)行話音時間壓縮時更多的PCM話音樣本進(jìn)行工作來實現(xiàn)的。例如,用于實現(xiàn)話音擴(kuò)展的PCM樣本的數(shù)目可以是話音時間壓縮中使用的PCM樣本的數(shù)目的兩倍??梢詮南惹霸佻F(xiàn)過的話音分組中獲得額外的PCM樣本。
圖18A示出了話音擴(kuò)展的一個實例,其中每個分組或話音片段的長度為160個PCM樣本并且“預(yù)擴(kuò)展的”話音片段被生成。在該實例中,將兩個話音片段(即,“當(dāng)前”話音片段和“先前”話音片段)進(jìn)行比較。將當(dāng)前話音片段的第一個RWindowSize PCM樣本選擇為參考樣本。將這些RWindowSize樣本與先前話音分組的Segment進(jìn)行比較,其中具有最大相關(guān)性的點(或偏移)被確定。在偏移點處將RWindowSizePCM樣本與先前分組內(nèi)的相應(yīng)大小的Segment重疊相加。通過復(fù)制并將其余的樣本從先前話音片段附加到經(jīng)過重疊相加的片段上來生成預(yù)擴(kuò)展的話音片段,如圖18A所示。則擴(kuò)展后的話音片段的長度是預(yù)擴(kuò)展片段的長度加上當(dāng)前話音片段的長度,如圖18A所示。在該實例中,PCM樣本從話音片段的開頭處被偏移。
在另一實例中,如圖18B所示擴(kuò)展當(dāng)前分組或話音樣本。參考樣本RWindowSize位于當(dāng)前話音片段的開頭處。將RWindowSize與其余的當(dāng)前話音分組進(jìn)行比較直到定位出具有最大相關(guān)性的點(偏移)。將參考樣本與當(dāng)前話音片段內(nèi)被發(fā)現(xiàn)具有最大相關(guān)性的相應(yīng)PCM樣本重疊相加。然后通過復(fù)制開始于分組的開頭處并結(jié)束于偏移點的PCM樣本,將重疊相加后的片段附加到該PCM樣本上,并復(fù)制和附加來自當(dāng)前分組的未修改的剩余的PCM樣本,來生成擴(kuò)展后的話音片段。擴(kuò)展后的話音片段的長度等于偏移加上原始分組的長度的總和。
在另一實例中,如圖18C所示擴(kuò)展話音,其中RWindowSize嵌在當(dāng)前分組或話音片段內(nèi)并且不發(fā)生在分組的開頭處。Roffset是與當(dāng)前分組的開頭到RWindowSize所起始的點之間的距離相對應(yīng)的話音片段的長度。將RWindowSize與當(dāng)前分組中在具有最大相關(guān)性的點處發(fā)現(xiàn)的相應(yīng)大小的PCM樣本重疊相加。然后通過復(fù)制開始于原始分組或當(dāng)前分組的開頭處并結(jié)束于偏移處的PCM樣本,并附加重疊相加后的片段和來自原始分組的剩余的PCM樣本,來生成擴(kuò)展后的話音片段。所產(chǎn)生的擴(kuò)展后的話音片段的長度是原始分組的長度加上偏移減去Roffset樣本(即如上面定義的Roffset中的PCM樣本的數(shù)目)。
經(jīng)濾波的時間規(guī)整閾值為了避免壓縮和擴(kuò)展決定的擺動,當(dāng)自適應(yīng)去抖動緩沖器中所存儲的分組的數(shù)目快速變化時,使用變量來估計自適應(yīng)去抖動緩沖器的狀態(tài),即自適應(yīng)去抖動緩沖器中所存儲的分組數(shù)目,一個實例在采樣窗口上濾波這樣的變量。自適應(yīng)去抖動緩沖器的狀態(tài)可以指自適應(yīng)去抖動緩沖器中所存儲的分組數(shù)目或者用于估計自適應(yīng)去抖動緩沖器中所存儲的數(shù)據(jù)的任何變量。在支持突發(fā)數(shù)據(jù)傳遞的稱為1xEV-DO的IS-856系統(tǒng)中,向給定接收器傳遞的分組被時分復(fù)用在前向鏈路上,接收器可能會在一個時刻接收若干分組,在之后的一端時間內(nèi)沒有分組被接收到。這導(dǎo)致在接收器的自適應(yīng)去抖動緩沖器處接收到脈沖串形式的數(shù)據(jù)。接收到的數(shù)據(jù)實際上會經(jīng)歷“集束”(bundling),其中可能會存在兩個或更多分組在時間上相互接近地一起到達(dá)的情況。這樣的集束會很容易導(dǎo)致分組的擴(kuò)展和壓縮之間的擺動,其中自適應(yīng)去抖動緩沖器響應(yīng)于接收到的數(shù)據(jù)的速率和緩沖器的狀態(tài)而提供時間規(guī)整指示。例如,考慮在話音突峰的開頭時,去抖動緩沖器的計算出的值(延遲或長度)為40ms的情況。在稍后的時刻,去抖動緩沖器載荷落到擴(kuò)展閾值以下,從而導(dǎo)致擴(kuò)展數(shù)據(jù)分組的決定。緊隨該分組的再現(xiàn)之后,集束的三個分組到達(dá)了;到達(dá)的數(shù)據(jù)填充了去抖動緩沖器的大小使得壓縮閾值被超過。這將導(dǎo)致分組被壓縮。由于集束的分組到達(dá)之后可能跟隨著一段時間內(nèi)沒有分組到達(dá)的狀態(tài),所以去抖動緩沖器可能會再次被耗盡,從而導(dǎo)致分組被擴(kuò)展。擴(kuò)展和壓縮之間的這種來回切換會導(dǎo)致要進(jìn)行時間規(guī)整的分組的高百分比。這是不希望有的,因為我們希望將信號信息由于時間規(guī)整而被修改的分組的百分比限制到很小的值。
一個實例通過使集束現(xiàn)象可能會對自適應(yīng)去抖動緩沖器的自適應(yīng)控制以及數(shù)據(jù)的時間規(guī)整和再現(xiàn)所造成的影響變平滑,來避免這種擺動。該實例使用平均值來確定何時進(jìn)行時間規(guī)整。平均值是通過濾波這種計算中所使用的變量來計算的。在一個實例中,壓縮和擴(kuò)展閾值是通過對去抖動緩沖器的大小進(jìn)行濾波或求平均來確定的。應(yīng)注意,緩沖器的大小是指緩沖器的當(dāng)前狀態(tài)。
將緩沖器大小的經(jīng)濾波的值與擴(kuò)展閾值進(jìn)行比較,會導(dǎo)致更高數(shù)目的下溢,因為通過使用未濾波的值可能已經(jīng)被擴(kuò)展的一些分組,在使用經(jīng)濾波的值的情況下沒被擴(kuò)展。另一方面,將經(jīng)濾波的值與壓縮閾值進(jìn)行比較,可以用來抑制大部分的擺動(或時間規(guī)整控制之間的來回切換)而只有最小的負(fù)面影響或?qū)嶋H上沒有負(fù)面影響。因此,可以以不同的方式對待壓縮和擴(kuò)展閾值。
在一個實例中,對照擴(kuò)展閾值來檢查自適應(yīng)去抖動緩沖器大小的即時值。相反,對照壓縮閾值來檢查去抖動緩沖器的經(jīng)濾波的值。一種配置使用無限脈沖響應(yīng)(IIR)濾波器來確定自適應(yīng)去抖動緩沖器的平均大小,其中自適應(yīng)去抖動緩沖器具有可被周期性(諸如每60ms計算一次)重新計算的經(jīng)濾波的值。濾波器時間常數(shù)可以從集束統(tǒng)計數(shù)據(jù)中導(dǎo)出并且用于1xEV-DO Rev A的該時間常數(shù)的一個實例可以是60msec。使用集束統(tǒng)計數(shù)據(jù)來導(dǎo)出濾波器時間常數(shù),這是因為它們與去抖動緩沖器的即時大小在工作期間的擺動情況之間具有很強(qiáng)的相關(guān)性。
由于缺失分組而引起的擴(kuò)展如上文中所述,自適應(yīng)去抖動緩沖器和用于控制自適應(yīng)去抖動緩沖器及控制接收到的數(shù)據(jù)的時間規(guī)整的各種方法可以適于具體的系統(tǒng)規(guī)范和工作條件。對于實現(xiàn)重復(fù)請求方案(諸如混合自動重復(fù)請求(H-ARQ)方案)以改善性能的通信系統(tǒng),這樣的重復(fù)處理具有關(guān)于如何擴(kuò)展話音分組的暗示。具體而言,H-ARQ會導(dǎo)致分組重新排序(即失序)地到達(dá)??紤]圖19,其示出了具有一定長度的去抖動緩沖器和給定為目標(biāo)去抖動緩沖器長度的50%的擴(kuò)展閾值TExpand。正被再現(xiàn)的當(dāng)前分組具有序號20,它是PKT 20。去抖動緩沖器包含分別具有序號21、23和24并標(biāo)為PKT 21、PKT 23和PKT 24的三個分組。當(dāng)再現(xiàn)裝置在再現(xiàn)了PKT 20之后請求下一分組時,擴(kuò)展閾值不會觸發(fā),因為去抖動緩沖器包含足以將緩沖器長度維持在計算出的去抖動緩沖器長度的50%以上的分組。在本實例中,PKT 21因此沒有被擴(kuò)展。如果PKT22直到PKT 21結(jié)束再現(xiàn)的時刻還未到達(dá),則這會導(dǎo)致下溢,因為分組是按照順序再現(xiàn)的,并且因此再現(xiàn)裝置不會在PKT 22之前再現(xiàn)PKT23。即使擴(kuò)展閾值不會觸發(fā),一個實例也預(yù)期到接收到的分組中的不連續(xù),并選擇擴(kuò)展PKT 21以便為PKT 22的到達(dá)留出更多的時間。這樣,PKT 21的擴(kuò)展可以避免分組缺失和擦除。因此,即使去抖動緩沖器長度超出了擴(kuò)展閾值TExpand,也可以擴(kuò)展分組。
可以增強(qiáng)應(yīng)對分組進(jìn)行擴(kuò)展的條件。如上文中所述,如果去抖動緩沖器大小低于擴(kuò)展閾值,則可以擴(kuò)展分組。在另一種情形下,如果具有下一序號的分組沒有存在于去抖動緩沖器中,則可以擴(kuò)展分組。
如前所述,可以在話音突峰的開頭處計算去抖動緩沖器延遲。由于包括但不限于信道條件和負(fù)載條件的網(wǎng)絡(luò)條件可能會在話音突峰期間(特別是在長話音突峰期間)發(fā)生變化,所以將一個實例配置成在話音突峰期間改變?nèi)ザ秳泳彌_器延遲。這樣,可以在話音突峰期間每過CHANGE_JITTER_TIME秒就周期性地重新計算上文中給出的去抖動緩沖器等式??蛇x地,可以在觸發(fā)事件(諸如工作條件、負(fù)載、空中接口指示的顯著變化或者其它事件)發(fā)生時重新計算變量。在一個實例中,可以將CHANGE_JITTER_TIME的值設(shè)置成0.2秒(200ms)。
時間規(guī)整閾值,例如壓縮和擴(kuò)展閾值,可以在話音突峰期間提供關(guān)于如何改變?nèi)≈档囊龑?dǎo)。正常操作是指當(dāng)自適應(yīng)去抖動緩沖器狀態(tài)在壓縮和擴(kuò)展閾值之間并在目標(biāo)去抖動緩沖器長度周圍時,接收器的操作。每個閾值充當(dāng)觸發(fā)。當(dāng)閾值被達(dá)到或違反時,可以取決于閾值而擴(kuò)展或壓縮自適應(yīng)去抖動緩沖器中的分組。自適應(yīng)去抖動緩沖器的大小在它接收到分組時可以繼續(xù)擴(kuò)展或收縮。自適應(yīng)去抖動緩沖器大小的這種持續(xù)的變化表明在通信期間可能會連續(xù)地接近壓縮和擴(kuò)展閾值。通常,系統(tǒng)試圖將自適應(yīng)去抖動緩沖器大小保持在擴(kuò)展和壓縮閾值之間,這被認(rèn)為是穩(wěn)定狀態(tài)。在穩(wěn)定狀態(tài)下,自適應(yīng)去抖動緩沖器的大小不變化;并且分組接收中的變化以及因此產(chǎn)生的自適應(yīng)去抖動緩沖器大小的變化,可以自動地使壓縮/擴(kuò)展閾值觸發(fā)并相應(yīng)地對分組進(jìn)行壓縮/擴(kuò)展,直到達(dá)到新的自適應(yīng)去抖動緩沖器延遲。在這種情形下,自適應(yīng)去抖動緩沖器目標(biāo)延遲長度根據(jù)CHANGE_JITTER_TIME而被更新??梢圆槐匾嬎闳ザ秳泳彌_器的實際大小,因為去抖動緩沖器大小在由于達(dá)到時間規(guī)整擴(kuò)展/壓縮閾值而引起觸發(fā)時會自動地變化。在一個實例中,可以將CHANGE_JITTER_TIME的值設(shè)置成0.2秒(200ms)。
越區(qū)切換預(yù)規(guī)整典型地,越區(qū)切換伴隨著短時間的覆蓋損失。當(dāng)越區(qū)切換即將來臨時,AT會經(jīng)歷較差的信道條件和增加的分組延遲。一個實例以對話音分組應(yīng)用時間規(guī)整的特殊方式來處理越區(qū)切換狀況。AT一決定越區(qū)切換到新的基站,該信息就被用于控制去抖動緩沖器。在接收到該越區(qū)切換信號后,AT進(jìn)入“預(yù)規(guī)整”模式,諸如圖8B的預(yù)規(guī)整模式244所示。在該模式下,AT擴(kuò)展分組直到兩個條件中的一個被滿足為止。在第一種條件下,去抖動緩沖器繼續(xù)累積分組并且累積起來的擴(kuò)展產(chǎn)生為PRE_WARPING_EXPANSION的去抖動緩沖器大小。換言之,對分組進(jìn)行擴(kuò)展直到達(dá)到PRE_WARPING_EXPANSION??蛇x地,在第二種條件下,時間段WARPING_TIME已被滿足。計時器在接收到越區(qū)切換信號或中斷指示符時開始計時;接收器在WARPING_TIME時停止計時。一旦這兩個條件中的一個已被滿足,AT就退出預(yù)規(guī)整模式。在預(yù)規(guī)整模式期間,除非(稍后描述的)End_Talkspurt條件被滿足,否則不壓縮任何分組,因為去抖動緩沖器希望累積足夠的分組以便以規(guī)則的間隔將它們發(fā)送給再現(xiàn)裝置。在分組以規(guī)則間隔(例如20ms)被預(yù)期的實例中,可以將PRE_WARPING_EXPANSION的值設(shè)置成40ms,并將WARPING_TIME的值設(shè)置成等于100個時隙(166ms)。
越區(qū)切換僅是中斷事件的一種形式。去抖動緩沖器可以實現(xiàn)用于處理越區(qū)切換或其它類型的中斷的機(jī)制。為此,所需的信息是需要多少去抖動超額量來處理中斷(PRE_WARPING_EXPANSION)和去抖動緩沖器將持續(xù)工作在這種中斷避免模式中多長時間(WARPING_TIME)。
計算延遲下溢的數(shù)目由于上文中提供的自適應(yīng)去抖動緩沖器等式被設(shè)計成以延遲下溢的百分比為目標(biāo),所以合乎需要的是準(zhǔn)確地測量延遲下溢的數(shù)目。當(dāng)發(fā)生下溢時,并不知道該下溢是由于分組延遲引起的還是由于在網(wǎng)絡(luò)中某處(即,傳輸路徑)被丟棄的分組引起的。因此需要準(zhǔn)確地確定下溢的類型。
在一個實例中,對于使用RTP/UDP/IP的通信,每個分組包括RTP序號。序號被用于以接收到的分組的傳輸順序來排列接收到的分組。當(dāng)發(fā)生下溢時,引起下溢的分組的RTP序號會存儲在諸如存儲器陣列的存儲器中。如果具有識別出的序號的分組較遲地到達(dá),則將該下溢作為“延遲下溢”而計數(shù)。
“延遲下溢率”是下溢的數(shù)目與接收到的分組的總數(shù)的比率。在每次更新去抖動緩沖器等式時,將下溢的數(shù)目和接收到的分組的數(shù)目都設(shè)置成零。
對話音突峰開頭和結(jié)尾處的增強(qiáng)考慮圖20,其示出了兩個用戶之間的會話的時間線。在該圖中,縱軸表示時間。每個用戶發(fā)送話音突峰和靜音段,它們?nèi)缓笥闪硪挥脩艚邮?。為了清楚起見,帶陰影的塊段400和410表示用戶1的話音突峰(話音片段)。未帶陰影的塊段405表示用戶2的話音突峰。時間線上的話音突峰外部的區(qū)域表示用戶沒有講話但是可能在聽另一用戶講話或在接收靜音段的時間。片段400在用戶2處得到再現(xiàn)。一旦話音片段400在用戶2處結(jié)束再現(xiàn),用戶2就在開始講話之前等待短時間間隔。用戶2的第一個話音片段405的開頭隨后由用戶1聽到。用戶1所感覺到的會話往返行程延遲(RTD)是用戶1停止講話的時刻到用戶1聽到用戶2的話音片段的開頭的時刻之間的時間間隙。會話RTD不是單向的端對端延遲,而是用戶特定的并且從用戶的觀點來看是很重要的。例如,如果會話RTD對于用戶1而言過大,這將促使用戶1再次開始講話而不等待用戶2的話音片段得到再現(xiàn)。這打斷了會話流并且會被感覺為會話質(zhì)量的惡化。
可以以不同的方式改變用戶1所體驗的會話RTD。在一個實例中,可以改變用戶1的話音片段的結(jié)尾被再現(xiàn)給用戶2的時刻。在第二實例中,改變的是用戶2的話音片段的開頭被再現(xiàn)給用戶1的時刻。應(yīng)注意,只有話音突峰的開頭和結(jié)尾的延遲才會影響會話中的語音質(zhì)量。設(shè)計目標(biāo)是進(jìn)一步減小在話音突峰開頭和結(jié)尾處的延遲。
在一個實例中,目標(biāo)是增強(qiáng)話音突峰的開頭??梢酝ㄟ^操作用戶1的話音突峰的第一個分組使得收聽者用戶2比實現(xiàn)默認(rèn)自適應(yīng)去抖動緩沖器延遲的情況更早地接收到分組,來實現(xiàn)這種增強(qiáng)。施加給自適應(yīng)去抖動緩沖器中的分組的延遲可以是默認(rèn)自適應(yīng)去抖動緩沖器延遲、計算出的值或者是被選擇成使得收聽者能夠在特定時刻接收到分組的值。在一種情形下,通過在每個接收到的話音突峰的開頭處重新計算自適應(yīng)去抖動緩沖器延遲來改變話音突峰的第一個分組的定時。當(dāng)減小施加給話音突峰的第一個分組的自適應(yīng)去抖動緩沖器延遲時,該第一個分組被加快地發(fā)送給收聽者。當(dāng)增加施加的延遲時,該第一個分組在較遲的時刻由收聽者接收到。用于第一個分組的默認(rèn)去抖動緩沖器延遲可以小于計算出的去抖動緩沖器延遲并且也可以大于計算出的去抖動緩沖器延遲。在所示出的實例中,通過可以以秒來測量的被稱為MAX_BEGINNING_DELAY的值,來限制每個話音突峰的第一個分組的去抖動延遲。該值可以是重新計算的去抖動緩沖器延遲或被設(shè)計成使得收聽者能夠在指定時刻接收到分組的延遲。MAX_BEGINNING_DELAY的值可以小于實際計算的去抖動緩沖器延遲。當(dāng)MAX_BEGINNING_DELAY小于計算出的去抖動緩沖器延遲并被施加給話音突峰的第一個分組時,話音突峰的隨后的分組將被自動地擴(kuò)展。隨后分組的自動擴(kuò)展會發(fā)生,是因為去抖動緩沖器不能以它再現(xiàn)分組的相同速率接收到分組。當(dāng)去抖動緩沖器再現(xiàn)分組時,去抖動緩沖器的大小發(fā)生減小并且擴(kuò)展閾值被接近。一旦達(dá)到擴(kuò)展閾值,擴(kuò)展就被觸發(fā)并且話音突峰中的隨后的分組被擴(kuò)展直到去抖動緩沖器接收到足以超過擴(kuò)展閾值的到來的分組。通過實現(xiàn)MAX_BEGINNING_DELAY值,收聽者更早地接收到了話音突峰的第一個分組,同時隨后的分組被擴(kuò)展。收聽者對更早地接收到初始分組感到滿意。增強(qiáng)話音突峰的開頭具有使下溢的數(shù)目發(fā)生小量增加的潛在可能;然而,適當(dāng)?shù)腗AX_BEGINNING_DELAY值會減輕這種影響。在一個實例中,MAX_BEGINNING_DELAY的值被計算為實際去抖動目標(biāo)的一小部分;舉例來說,大小為TARGET DE-JITTER BUFFERLENGTH的0.7倍的MAX_BEGINNING_DELAY值會導(dǎo)致下溢的微小的增加。在另一實例中,MAX_BEGINNING_DELAY值可以是諸如40ms的固定數(shù)字,這在例如支持1xEV-DO Rev A的系統(tǒng)中會導(dǎo)致下溢的微小增加。
擴(kuò)展話音突峰中的隨后的分組不會使整體語音質(zhì)量惡化。這在圖20中被示出,其中用戶2接收到來自用戶1的話音突峰的第一個分組并且初始或“單向延遲”被限制為Td1。如圖所示,話音片段400在用戶2處被接收到而沒有經(jīng)過任何擴(kuò)展或壓縮,然而,話音片段405在接收時在用戶1處被壓縮。
圖21是示出對話音突峰的開頭的增強(qiáng)的流程圖。首先在步驟510中確定系統(tǒng)是否處于靜音模式。靜音模式可以與話音突峰之間的靜音段或者去抖動緩沖器沒有正在接收分組的時間相對應(yīng)。如果系統(tǒng)不處于靜音模式,則處理結(jié)束。如果它處于靜音模式,則在步驟520中執(zhí)行目標(biāo)去抖動長度估計。然后,在步驟530中確定是否增強(qiáng)系統(tǒng)。根據(jù)一個實例,增強(qiáng)指示計算出的目標(biāo)自適應(yīng)去抖動長度大于給定值,該給定值在一個實例中被給定為諸如MAX_BEGINNING_DELAY的增強(qiáng)因子;在步驟540中,系統(tǒng)等待等于增強(qiáng)因子或目標(biāo)長度的一小部分的時間段以開始再現(xiàn)。如果系統(tǒng)不被增強(qiáng),則在步驟550中,系統(tǒng)等待新目標(biāo)長度以開始再現(xiàn)。新目標(biāo)的值可以等于計算出的目標(biāo)去抖動緩沖器長度或最大去抖動緩沖器長度。
圖22也示出了對話音突峰的開頭的增強(qiáng)。圖中示出的處理580開始于對話音突峰的識別??紤]兩種情形i)采用時間規(guī)整;和ii)沒有采用時間規(guī)整。在該實例中,使用20ms長度的話音分組??梢詫崿F(xiàn)任意長度的話音分組。此處,自適應(yīng)去抖動緩沖器在再現(xiàn)分組之前等待120ms。該值是自適應(yīng)目標(biāo)去抖動緩沖器長度并在步驟582中從自適應(yīng)去抖動緩沖器目標(biāo)估計器接收到。在本實例中,120ms等效于在不采用時間規(guī)整的情況下接收六(6)個分組,每個分組的長度為20ms。如果在步驟584,時間規(guī)整沒有被使用,則在120ms內(nèi)提供了六(6)個分組。因此,在第一種情形下,去抖動緩沖器在接收到六個分組之后將開始再現(xiàn)分組。這在時間上等效于120ms的延遲。在第二種情形下,通過實施時間規(guī)整,去抖動緩沖器可以擴(kuò)展接收到的前四(4)個分組并在接收到四(4)個分組之后開始再現(xiàn)分組。因此,即使這種情況下的80ms的去抖動緩沖器延遲小于估計的120ms的去抖動緩沖器延遲,也可以通過擴(kuò)展前面幾個分組來避免潛在的下溢。換言之,采用時間規(guī)整的分組再現(xiàn)可以比沒有采用時間規(guī)整的分組再現(xiàn)開始得更早。因此,時間規(guī)整可以用于增強(qiáng)話音突峰的開頭而不會影響下溢的數(shù)目。
在另一實例中,可以增強(qiáng)話音突峰的結(jié)尾。這是通過壓縮話音突峰的最后幾個分組,從而減小端對端延遲來實現(xiàn)的。換言之,話音突峰結(jié)尾處的延遲被變得更小并且第二用戶更快地從第一用戶聽到了回應(yīng)。圖23中示出了對話音突峰結(jié)尾的增強(qiáng)。此處,1/8速率分組指示話音突峰的結(jié)尾。這不同于可以用于傳輸語音數(shù)據(jù)的全速率(速率1)分組、半速率(速率1/2)分組或四分之一速率(速率1/4)分組。也可以將其它速率的分組用于靜音段期間或話音突峰結(jié)尾處的傳輸。在語音通信中實施1/8速率分組作為靜音指示符分組,被進(jìn)一步記述在優(yōu)先權(quán)日期為2005年2月1日、標(biāo)題為“METHOD FORDISCONTINUOUS TRANSMISSION AND ACCURATEREPRODUCTION OF BACKGROUND NOISE INFORMATION”的共同未決的美國專利申請第11/123,478號中。
如圖23所示,在沒有采用時間規(guī)整的情況下,分組N至分組N+4在100ms中被再現(xiàn)。通過壓縮話音突峰的最后幾個分組,相同的分組N至分組N+4可以在70ms中得到再現(xiàn)而不是在100ms中得到再現(xiàn)。當(dāng)實施時間壓縮時,話音質(zhì)量幾乎沒有惡化或?qū)嶋H上沒有惡化。對話音突峰的結(jié)尾的增強(qiáng),假定了接收器知曉對話音突峰結(jié)尾的識別,并能在接近結(jié)尾時預(yù)期到它。
當(dāng)在一個實例中通過實時傳輸協(xié)議(RTP)發(fā)送語音分組時,可以在每個話音突峰的最后一個分組中設(shè)置“話音突峰結(jié)尾”指示符。當(dāng)正在提供分組以進(jìn)行再現(xiàn)時,在去抖動緩沖器中的分組中檢查“話音突峰結(jié)尾”指示符。如果該指示符被設(shè)置在其中一個分組中并且在正被提供以用于再現(xiàn)的當(dāng)前分組和“話音突峰結(jié)尾”分組之間沒有缺失的序號,則對正被提供以用于再現(xiàn)的分組以及當(dāng)前話音突峰的所有將來的分組進(jìn)行壓縮。
在另一實例中,如果系統(tǒng)處于話音突峰中并且1/8速率分組或設(shè)置有靜音指示符描述(SID)位的分組被傳遞給再現(xiàn)裝置,則系統(tǒng)轉(zhuǎn)換到靜音??梢酝ㄟ^檢查1/8速率分組的大小而檢測到1/8速率分組。SID位被攜帶在RTP信頭中。如果系統(tǒng)處于靜音狀態(tài),并且既不是1/8速率分組也不是設(shè)置有SID位的分組被傳遞以用于再現(xiàn)時,系統(tǒng)轉(zhuǎn)換到話音突峰狀態(tài)。應(yīng)注意,在一個實例中,如本文中提供的自適應(yīng)去抖動緩沖方法可以在系統(tǒng)處于話音突峰狀態(tài)時被執(zhí)行,并且可以在系統(tǒng)處于靜音段時被忽略。
應(yīng)注意,該方法可以正確地丟棄遲到的重復(fù)分組。如果重復(fù)分組到達(dá),則它將被簡單地丟棄,因為分組的第一個實例已在適當(dāng)?shù)臅r刻得到再現(xiàn)并且其序號沒有被保存在包含“延遲下溢”候選者的陣列中。
當(dāng)在一個實例中通過RTP發(fā)送語音分組時,可以在每個話音突峰的最后一個分組中設(shè)置“話音突峰結(jié)尾”指示符。當(dāng)正在提供分組以進(jìn)行再現(xiàn)時,在去抖動緩沖器中的分組中檢查“話音突峰結(jié)尾”指示符。如果該指示符被設(shè)置在其中一個分組中并且在正被提供以用于再現(xiàn)的當(dāng)前分組和“話音突峰結(jié)尾”分組之間沒有缺失的序號,則對正被提供以用于再現(xiàn)的分組以及當(dāng)前話音突峰的所有將來的分組進(jìn)行壓縮。
圖24中示出了根據(jù)一個實例的對話音突峰結(jié)尾的增強(qiáng)的流程圖。新分組開始于步驟600。在步驟605中,如果去抖動緩沖器長度大于或等于壓縮閾值,則在步驟635中生成壓縮指示并且在步驟600中將結(jié)尾提供給新分組。在步驟605中,如果去抖動緩沖器不大于或等于壓縮閾值,則在步驟610中確定去抖動緩沖器長度是否小于或等于擴(kuò)展閾值。如果其小于或等于擴(kuò)展閾值,則步驟615確定結(jié)尾是否等于表示靜音段或話音突峰結(jié)尾的分組速率。在一個實例中,可以在靜音段期間或在話音突峰結(jié)尾處,以例如20ms的恒定間隔發(fā)送連續(xù)的一串1/8速率分組。在圖24中,如果在步驟615中確定結(jié)尾不等于1/8速率分組,則在步驟620中擴(kuò)展片段并返回到步驟600中的新分組。步驟625確定結(jié)尾是否等于1/8。在步驟625中,如果結(jié)尾等于1/8速率,則在步驟635中生成壓縮指示。如果它不等于1/8速率,則在步驟630中,再現(xiàn)是正常的,而不采用任何時間規(guī)整。
時間規(guī)整質(zhì)量優(yōu)化器當(dāng)許多連續(xù)的分組被壓縮(或擴(kuò)展)時,這會顯著地使音頻加速(或減速)并會導(dǎo)致質(zhì)量的惡化??梢酝ㄟ^隔開經(jīng)時間規(guī)整的分組,即在經(jīng)過時間規(guī)整的分組后跟隨有一些未經(jīng)過時間規(guī)整的分組以后再規(guī)整另一分組,來避免這種惡化。
如果將上述隔開經(jīng)規(guī)整的分組的方法應(yīng)用于擴(kuò)展,則會使一些本來會經(jīng)歷擴(kuò)展的分組不經(jīng)歷擴(kuò)展。這會導(dǎo)致下溢,因為分組的擴(kuò)展是在去抖動緩沖器耗盡分組時執(zhí)行的。因此,在一個實例中,可以將上述隔開經(jīng)規(guī)整的分組的方法應(yīng)用于壓縮分組,即在經(jīng)過壓縮的分組后可以跟隨有一些未經(jīng)過壓縮的分組,之后才可以壓縮另一個分組。典型地,在兩個經(jīng)壓縮的分組之間不應(yīng)被壓縮的這種分組的數(shù)目可以設(shè)置成2或3。
觸發(fā)時間規(guī)整的條件的設(shè)置此處描述的是用于觸發(fā)語音分組的時間規(guī)整(擴(kuò)展/壓縮)的許多條件。以下是用于確定將對分組進(jìn)行壓縮、進(jìn)行擴(kuò)展還是既不壓縮也不擴(kuò)展的(偽碼形式的)規(guī)則的組合集。
<pre listing-type="program-listing"><![CDATA[If(in Pre-Warping(Handoff Detected)Phase and no End of Talkspurt Detected)and DEJITTER_TARGET+PRE_WARPING EXPANSION not reached) Expand PacketEnd IfElse If(End of Talkspurt Detected)Compress End if ElseIf(Compress Threshold Triggered) CompressEnd ifElse If(Expand Threshold Triggered or Next Packet not in Queue) ExpandEnd If End IfEnd If.]]></pre>圖25示出了與解碼器功能耦合的常規(guī)去抖動緩沖器的實現(xiàn)方案。在圖25中,預(yù)期分組以20ms間隔到達(dá)去抖動緩沖器。在該實例中可以觀察到,分組以不規(guī)則的間隔到達(dá),即具有抖動。去抖動緩沖器累積分組直到達(dá)到特定去抖動緩沖器長度,以便一旦其開始以諸如20ms的規(guī)則間隔發(fā)送出分組,去抖動緩沖器就不會被耗盡。在到達(dá)所需要的去抖動緩沖器長度時,去抖動緩沖器開始以20ms的規(guī)則間隔開始再現(xiàn)分組。解碼器以規(guī)則間隔接收這些分組并將每個分組轉(zhuǎn)換成每分組為20ms的語音??蛇x實例可以選擇其它時間間隔。
作為比較,圖26示出了支持時間規(guī)整的自適應(yīng)去抖動緩沖器的實例。此處,分組以不規(guī)則的間隔到達(dá)自適應(yīng)去抖動緩沖器。然而在這種情況下,目標(biāo)去抖動緩沖器長度小得多。這是因為時間規(guī)整允許在去抖動緩沖器開始耗盡時擴(kuò)展分組,從而為自適應(yīng)去抖動緩沖器得到補(bǔ)充留出了時間。解碼器可以在自適應(yīng)去抖動緩沖器開始耗盡時擴(kuò)展分組,并在自適應(yīng)去抖動緩沖器開始累積過多的分組時壓縮分組??梢杂^察到,不均勻傳遞的語音分組從自適應(yīng)去抖動緩沖器被輸入到解碼器和時間規(guī)整單元中。由于采用了時間規(guī)整,這些分組被允許以不規(guī)則的間隔到達(dá),解碼器取決于原始分組的到達(dá)時間而將每個分組轉(zhuǎn)換成不同長度的語音分組。例如,在該實例中,解碼器將每個分組轉(zhuǎn)換成每分組為15-35ms的語音。由于分組因為時間規(guī)整而可以更早地得到再現(xiàn),所以所需的緩沖器大小變得更小,從而在網(wǎng)絡(luò)中產(chǎn)生更小的等待時間。
圖27是示出根據(jù)一個實例的AT的框圖。自適應(yīng)去抖動緩沖器706、時間規(guī)整控制單元718、接收電路714、處理器722的控制、存儲器710、發(fā)射電路712、解碼器708、H-ARQ控制720、編碼器716、話音處理724、話音突峰ID 726、差錯校正704可以如前面的實施例中所示耦合在一起。另外,它們可以經(jīng)由圖27中所示的通信總線702耦合在一起。
圖28示出了一個實例中的分組處理,其中分組由去抖動緩沖器接收并最終由揚聲器再現(xiàn)。如圖所示,分組在去抖動緩沖器處被接收。去抖動緩沖器在從解碼器接收到分組請求后向解碼器發(fā)送分組和時間規(guī)整信息。解碼器在從輸出驅(qū)動器接收到請求后向輸出驅(qū)動器發(fā)送樣本。
去抖動緩沖器內(nèi)的輸入控制器保持對到來的分組的跟蹤,并且如果在到來的分組中存在差錯則給出指示。去抖動緩沖器可以接收具有序號的分組。例如,差錯可以在到來分組的序號低于先前分組的序號時,由輸入控制器檢測到。圖28中位于輸入控制器內(nèi)的分類單元對到來的分組進(jìn)行分類。由分類單元定義的不同的類別可以包括“良好的分組”、“延遲的分組”、“差分組”等。此外,輸入控制單元可以對分組進(jìn)行比較并將該信息發(fā)送給去抖動緩沖器控制器。
圖28中示出的去抖動緩沖器控制器接收來自去抖動緩沖器的輸入和輸出控制器的雙向輸入。去抖動緩沖器控制器接收來自輸入控制器的數(shù)據(jù),其中這樣的數(shù)據(jù)指示到來數(shù)據(jù)的特性,諸如接收到的良好分組的數(shù)目、接收到的差分組的數(shù)目等。去抖動緩沖器可以使用該信息來確定何時需要使去抖動緩沖器收縮或增長,這會產(chǎn)生發(fā)送給時間規(guī)整控制器的用于壓縮或擴(kuò)展的信號。去抖動緩沖器控制器單元內(nèi)的分組差錯率(PER)單元計算PER延遲。去抖動緩沖器的輸出控制器從去抖動緩沖器請求分組。去抖動緩沖器的輸出控制器單元還可以指示最后一個被再現(xiàn)的分組。
解碼器將分組請求發(fā)送給去抖動緩沖器,并在這樣的請求后接收來自去抖動緩沖器的分組。解碼器內(nèi)的時間規(guī)整控制器單元從去抖動緩沖器的輸出控制器接收時間規(guī)整控制信息。時間規(guī)整控制信息指示將對分組進(jìn)行壓縮、擴(kuò)展還是使其保持不變。由解碼器接收的分組被解碼并轉(zhuǎn)換成話音樣本;并且在從輸出驅(qū)動器內(nèi)的緩沖器接收到請求后,樣本被發(fā)送給輸出驅(qū)動器。來自輸出驅(qū)動器的樣本請求由解碼器內(nèi)的輸出控制器接收。
相位匹配如前所述,在分組的預(yù)期再現(xiàn)時刻之后接收到分組,會導(dǎo)致擦除取代延遲分組而得到再現(xiàn)。接收到自適應(yīng)去抖動緩沖器處的擦除或缺失的分組,會導(dǎo)致解碼后的話音的不連續(xù)。當(dāng)自適應(yīng)去抖動緩沖器辨認(rèn)出潛在的不連續(xù)時,自適應(yīng)去抖動緩沖器可以請求解碼器執(zhí)行相位匹配。如圖28所示,自適應(yīng)去抖動緩沖器750可以包括接收來自輸出控制器760的輸入的相位匹配控制器。相位匹配控制信息被發(fā)送給可以位于解碼器762中的相位匹配單元。在一個實例中,相位匹配控制信息可以包括“相位偏移”和“游程長度”(run length)信息。相位偏移是解碼器已經(jīng)解碼的分組數(shù)目和編碼器已經(jīng)編碼的分組數(shù)目之間的差。游程長度是指就在當(dāng)前分組的解碼之前,解碼器已經(jīng)解碼的連續(xù)擦除的數(shù)目。
在一個實例中,相位匹配和時間規(guī)整都在具有公共控制代碼或軟件的解碼器中實現(xiàn)。在一個實例中,解碼器實現(xiàn)波形內(nèi)插,其中a)如果沒有使用時間規(guī)整和相位匹配,則使用采用160個樣本的波形內(nèi)插(waveform_interpolation)來進(jìn)行語音編碼;b)如果使用了時間規(guī)整并且沒有使用相位匹配,則使用采用(160+-N*音高周期)個樣本的波形內(nèi)插解碼(waveform_interpolation_decoding)來進(jìn)行語音編碼,其中N可以是1或2;c)如果沒有使用時間規(guī)整并且使用了相位匹配,則使用采用(160-Δ)個樣本的波形內(nèi)插解碼(waveform_interpolation_decoding)來進(jìn)行語音編碼,其中Δ是相位匹配量。
d)如果使用了相位匹配和時間規(guī)整二者,則使用采用(160-Δ+-N*音高周期)個樣本的波形內(nèi)插解碼(waveform_interpolation_decoding)來進(jìn)行語音編碼,其中Δ是相位匹配量。
對輸出驅(qū)動器的時鐘輸入,確定了該輸出驅(qū)動器內(nèi)的緩沖器對數(shù)據(jù)進(jìn)行請求的頻率。這是系統(tǒng)中的主要時鐘并且可以以許多不同的方式實現(xiàn)。系統(tǒng)的主時鐘可以通過PCM樣本的采樣速率導(dǎo)出。例如,如果正在通信的是窄帶話音,則系統(tǒng)每秒再現(xiàn)8000個PCM樣本(8KHz)。該時鐘可以驅(qū)動系統(tǒng)的其余部分。一種方法是讓音頻接口770在需要更多樣本時從解碼器請求更多樣本。另一種方法是讓解碼器/時間規(guī)整單元獨立地運行,由于該模塊知道先前傳遞了多少PCM樣本,所以它知道接下來何時提供更多的樣本。
調(diào)度器可以位于解碼器762中或音頻接口和控制單元810中。當(dāng)位于音頻接口控制單元810中時,調(diào)度器基于接收到的PCM樣本的數(shù)目來確定對分組的下一請求。當(dāng)調(diào)度器位于解碼器中時,調(diào)度器可以每過tms就請求分組。例如,解碼器調(diào)度器可以每2ms就從自適應(yīng)去抖動緩沖器750請求分組。如果在解碼器中沒有啟用時間規(guī)整,或者如果時間規(guī)整單元不位于解碼器762中,則調(diào)度器將與1個分組中的樣本數(shù)目恰好相對應(yīng)的一組樣本發(fā)送給音頻接口和控制單元770。例如,在音頻接口單元770每過2ms就請求樣本的情況下,解碼器的輸出控制器766發(fā)送16個PCM樣本(1個分組對應(yīng)于20ms,即8Khz采樣速率下的話音數(shù)據(jù)的160個樣本)。換言之,當(dāng)時間規(guī)整控制器位于解碼器外部時,解碼器的輸出是用于樣本轉(zhuǎn)換的普通分組。音頻接口單元770將樣本的數(shù)目轉(zhuǎn)換成在解碼器執(zhí)行時間規(guī)整的情況下它會接收到的樣本的數(shù)目。
在另一種情形下,當(dāng)時間規(guī)整控制器位于解碼器內(nèi)并且時間規(guī)整被啟用時,在壓縮模式下,解碼器可以輸出更少的樣本;并且在擴(kuò)展模式下,解碼器可以輸出更多的樣本。
圖30進(jìn)一步示出了調(diào)度功能由解碼器實現(xiàn)的情形。在步驟902,解碼器從去抖動緩沖器請求分組。在步驟904,分組被接收。在步驟906中,分組被轉(zhuǎn)換成“N”個樣本。在步驟908中,“N”個產(chǎn)生的樣本被傳遞給音頻接口控制單元,并且在步驟910中,將下一分組請求調(diào)度為N的函數(shù)。
圖31示出了解碼器外部的音頻接口和控制單元中的調(diào)度。在步驟1002,音頻接口單元首先請求一組PCM樣本。在步驟1004,接收到所請求的PCM樣本,并且在步驟1006中,將下一分組請求調(diào)度為N的函數(shù)。
時間規(guī)整指示符(諸如,不進(jìn)行時間規(guī)整指示符)可以是來自自適應(yīng)去抖動緩沖器的指令的一部分。圖32示出了在解碼器外部計算調(diào)度方案的例如音頻接口和控制單元中的時間規(guī)整單元。分組類型、時間規(guī)整指示符和要進(jìn)行的規(guī)整量被輸入給時間規(guī)整單元。
圖33示出了在解碼器中的時間規(guī)整單元中計算調(diào)度方案的時間規(guī)整單元。對時間規(guī)整單元的輸入包括分組類型、時間規(guī)整指示符和要進(jìn)行的規(guī)整量。規(guī)整量和啟用信號被輸入給時間規(guī)整單元的質(zhì)量優(yōu)化單元。時間規(guī)整信息被輸出。
盡管本說明書描述了本發(fā)明的特定實例,但是普通技術(shù)人員能在不脫離本發(fā)明概念的情況下提出本發(fā)明的變形。例如,本文中的教導(dǎo)是參照電路交換網(wǎng)絡(luò)元件進(jìn)行說明的,但是其等效地適用于分組交換域網(wǎng)絡(luò)元件。此外,本文的教導(dǎo)不限于認(rèn)證三元組對,還可適用于包括兩個SRES值(一個是通常的格式,一個是本文公開的新格式)的單個三元組。
本領(lǐng)域的專業(yè)技術(shù)人員可以理解,可以使用許多不同的工藝和技術(shù)中的任意一種來表示信息和信號。例如,上述說明中提到過的數(shù)據(jù)、指令、命令、信息、信號、比特、符號、及碼片都可以表示為電壓、電流、電磁波、磁場或磁性粒子、光場或光粒子、或以上的結(jié)合。
本領(lǐng)域的專業(yè)技術(shù)人員還可以進(jìn)一步意識到,結(jié)合本文中所公開的實例描述的各種示例的邏輯塊、模塊、電路、方法及算法,能夠以電子硬件、計算機(jī)軟件、或二者的結(jié)合被實現(xiàn)。為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各種示例的組件、程序塊、模塊、電路、方法及算法。這種功能究竟以硬件還是軟件方式來實現(xiàn),取決于整個系統(tǒng)的特定的應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)決定不應(yīng)被認(rèn)為超出了本發(fā)明的范圍。
結(jié)合本文中所公開的實例描述的多種示例的邏輯塊、模塊和電路可以用通用處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或晶體管邏輯、分立硬件部件、或設(shè)計成執(zhí)行本文所述功能的以上的任意組合來實現(xiàn)或執(zhí)行。通用處理器可以是微處理器,但是可替換地,處理器也可以是任何常規(guī)的處理器、控制器、微控制器、或狀態(tài)機(jī)。處理器也可以被實現(xiàn)為計算器件的組合,例如,DSP和微處理器的組合、多個微處理器的組合、一個或多個微處理器與一個DSP核心的組合、或任意其它此類配置。
結(jié)合本文中所公開的實例描述的方法或算法可以直接用硬件、處理器執(zhí)行的軟件模塊、或二者的結(jié)合來實施。軟件模塊可置于RAM存儲器、閃存、ROM存儲器、EPROM存儲器、EEPROM存儲器、寄存器、硬盤、可移動硬盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中??蓪⒋鎯橘|(zhì)連接到處理器,以便處理器可從存儲介質(zhì)讀取信息并向存儲介質(zhì)寫入信息??商鎿Q地,存儲介質(zhì)可以被集成在處理器中。處理器和存儲介質(zhì)可以置于ASIC中。
對所公開的實例的上述說明,是為了使本領(lǐng)域的任何專業(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實例,而是要符合與本文所公開的原理和新穎特點一致的最寬的范圍。
權(quán)利要求
1.一種設(shè)備,包括存儲器存儲單元,其被配置成存儲數(shù)據(jù)的分組;和第一控制器,其被配置成將所述存儲器存儲單元中所存儲的分組的數(shù)目與用于所述存儲器存儲單元的第一時間規(guī)整閾值進(jìn)行比較,所述第一控制器進(jìn)一步適于在所存儲的分組的數(shù)目違反所述第一時間規(guī)整閾值時生成時間規(guī)整指示符。
2.如權(quán)利要求1所述的設(shè)備,其中,所述設(shè)備進(jìn)一步包括輸入控制器,其被配置成接收分組并將分組存儲在所述存儲器存儲單元中;和輸出控制器,其被連接到所述第一控制器并被配置成從所述第一控制器接收所述時間規(guī)整指示符。
3.如權(quán)利要求2所述的設(shè)備,進(jìn)一步包括用于響應(yīng)于所述時間規(guī)整指示符而對分組進(jìn)行時間規(guī)整的裝置,其中,所述輸出控制器適于向所述用于對分組進(jìn)行時間規(guī)整的裝置提供所述時間規(guī)整指示符。
4.如權(quán)利要求3所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述存儲器存儲單元中所存儲的分組的數(shù)目與用于所述存儲器存儲單元的第二時間規(guī)整閾值進(jìn)行比較,并在所存儲的分組的數(shù)目超過所述第二時間規(guī)整閾值時生成所述時間規(guī)整指示符。
5.如權(quán)利要求4所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成生成所述時間規(guī)整指示符的用于分組的擴(kuò)展的第一值。
6.如權(quán)利要求5所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成生成所述時間規(guī)整指示符的用于分組的壓縮的第二值。
7.如權(quán)利要求6所述的設(shè)備,其中,所述第一值是目標(biāo)延遲長度的第一百分比。
8.如權(quán)利要求7所述的設(shè)備,其中,所述第二值是所述目標(biāo)延遲長度的第二百分比。
9.如權(quán)利要求6所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成如果在前一順序的分組后的第一時間段內(nèi)沒有接收到下一順序的分組,則生成所述第一值。
10.如權(quán)利要求6所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成在時間窗口上對所述存儲器存儲單元的狀態(tài)求平均值。
11.如權(quán)利要求10所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成在時間窗口上濾波所述存儲器存儲單元中所存儲的分組的數(shù)目。
12.如權(quán)利要求11所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成確定目標(biāo)去抖動緩沖器延遲長度,并將所述時間窗口確定為所述目標(biāo)去抖動緩沖器延遲長度的函數(shù)。
13.如權(quán)利要求12所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述目標(biāo)去抖動緩沖器延遲長度確定為將被存儲在所述存儲器存儲單元中的分組的目標(biāo)數(shù)目。
14.如權(quán)利要求10所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述存儲器存儲單元中所存儲的分組的濾波后的數(shù)目與所述第一和第二時間規(guī)整閾值進(jìn)行比較。
15.如權(quán)利要求1所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成生成所述時間規(guī)整指示符作為壓縮所述分組、擴(kuò)展所述分組或者處理所述分組而不進(jìn)行時間規(guī)整的指令。
16.如權(quán)利要求1所述的設(shè)備,其中,所述存儲器存儲單元是自適應(yīng)去抖動緩沖器。
17.一種用于處理數(shù)據(jù)的分組的方法,包括將數(shù)據(jù)的分組存儲在存儲器存儲單元中;將所述存儲器存儲單元中所存儲的分組的數(shù)目與第一時間規(guī)整閾值進(jìn)行比較;和當(dāng)所述存儲器存儲單元中所存儲的分組的數(shù)目違反所述第一時間規(guī)整閾值時,生成時間規(guī)整指示符。
18.如權(quán)利要求17所述的方法,進(jìn)一步包括響應(yīng)于所述時間規(guī)整指示符而對至少一個分組進(jìn)行時間規(guī)整。
19.如權(quán)利要求18所述的方法,進(jìn)一步包括將所述存儲器存儲單元中所存儲的分組的數(shù)目與第二時間規(guī)整閾值進(jìn)行比較;和當(dāng)所述存儲器存儲單元中所存儲的分組的數(shù)目小于所述第一時間規(guī)整閾值時,以第一值生成時間規(guī)整指示符,并且當(dāng)所述存儲器存儲單元中所存儲的分組的數(shù)目超過所述第二時間規(guī)整閾值時,以第二值生成時間規(guī)整指示符。
20.如權(quán)利要求17所述的方法,進(jìn)一步包括當(dāng)所述時間規(guī)整指示符是所述第一值時,擴(kuò)展至少一個分組;和當(dāng)所述時間規(guī)整指示符是所述第二值時,壓縮至少一個分組。
21.如權(quán)利要求20所述的方法,進(jìn)一步包括接收多個順序的分組;和響應(yīng)于所述時間規(guī)整指示符而重疊相加所述順序的分組的片段。
22.如權(quán)利要求21所述的方法,其中,所述重疊相加進(jìn)一步包括將多個片段中的至少兩個結(jié)合為a)---OutSegment[i]=(Segment1(i)*(WindowSize-i)+(Segment2(i)*i)WindowSize]]>b)---OutSegment[i]=(Segment2(i)*(WindowSize-i)+(Segment1(i)*i)WindowSize]]>i=0到WindowSize-1WindowSize=RWindowSize其中,OutSegment是所合成的重疊相加后的片段;Segment1和Segment2是將被重疊相加的所述多個片段中的所述至少兩個;WindowSize對應(yīng)于第一片段;并且RWindowSize對應(yīng)于第二片段。
23.如權(quán)利要求1 7所述的方法,進(jìn)一步包括通過跟蹤延遲分組的數(shù)目來確定第一時間規(guī)整閾值。
24.如權(quán)利要求23所述的方法,其中,延遲分組是在分組的相關(guān)預(yù)期再現(xiàn)時刻之后接收到的分組。
25.如權(quán)利要求17所述的方法,進(jìn)一步包括對至少一個分組進(jìn)行時間規(guī)整;和再現(xiàn)所述至少一個經(jīng)過時間規(guī)整的分組。
26.一種包含一組指令的計算機(jī)可讀存儲介質(zhì),該組指令包括輸入例程,其用于將數(shù)據(jù)的分組存儲在存儲器存儲單元中;第一例程,其用于將所述存儲器存儲單元中所存儲的分組的數(shù)目與第二時間規(guī)整閾值進(jìn)行比較;和第二例程,其用于在所述存儲器存儲單元中所存儲的分組的數(shù)目小于第一時間規(guī)整閾值時,以第一值生成時間規(guī)整指示符,并且在所述存儲器存儲單元中所存儲的分組的數(shù)目超過所述第二時間規(guī)整閾值時,以第二值生成時間規(guī)整指示符。
27.一種設(shè)備,包括存儲器存儲單元,其被配置成存儲數(shù)據(jù)的分組;和第一控制器,其被配置成將所述存儲器存儲單元中所存儲的分組的數(shù)目與用于所述存儲器存儲單元的第一壓縮時間規(guī)整閾值和第一擴(kuò)展時間規(guī)整閾值進(jìn)行比較,所述第一控制器進(jìn)一步適于如果所存儲的分組的數(shù)目超過所述第一壓縮時間規(guī)整閾值,則生成指示壓縮的時間規(guī)整控制信號,并且如果所存儲的分組的數(shù)目超過所述第一擴(kuò)展時間規(guī)整閾值,則生成指示擴(kuò)展的時間規(guī)整控制信號。
28.如權(quán)利要求27所述的設(shè)備,其中,所述第一控制器進(jìn)一步適于將所存儲的分組的數(shù)目與一組壓縮時間規(guī)整閾值和一組擴(kuò)展時間規(guī)整閾值進(jìn)行比較,其中所述一組壓縮時間規(guī)整閾值中的每個和所述一組擴(kuò)展時間規(guī)整閾值中的每個與用于所述存儲器存儲單元的目標(biāo)延遲長度的唯一百分比相對應(yīng)。
29.如權(quán)利要求27所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成如果在下一順序的分組的預(yù)期再現(xiàn)時刻后接收到所述下一順序的分組,則生成用于擴(kuò)展的所述時間規(guī)整控制信號。
30.如權(quán)利要求29所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成在將所存儲的分組的數(shù)目與時間規(guī)整閾值進(jìn)行比較之前,在時間窗口上對所述存儲器存儲單元的狀態(tài)求平均值。
31.如權(quán)利要求30所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成在時間窗口上濾波所述存儲器存儲單元中所存儲的分組的數(shù)目。
32.如權(quán)利要求31所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成確定目標(biāo)延遲長度,并將所述時間窗口確定為所述目標(biāo)延遲長度的函數(shù)。
33.如權(quán)利要求32所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述目標(biāo)延遲長度確定為將被存儲在所述存儲器存儲單元中的分組的目標(biāo)數(shù)目。
34.如權(quán)利要求30所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述存儲器存儲單元中所存儲的分組的平均數(shù)目與時間規(guī)整閾值進(jìn)行比較。
35.如權(quán)利要求27所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成生成時間規(guī)整控制信號,所述時間規(guī)整控制信號是多狀態(tài)控制信號。
36.如權(quán)利要求35所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成確定用于所述存儲器存儲單元的目標(biāo)延遲長度,其中所述存儲器存儲單元是自適應(yīng)去抖動緩沖器,并且其中,所述目標(biāo)延遲長度是目標(biāo)去抖動緩沖器延遲。
37.一種設(shè)備,包括存儲器存儲單元,其被配置成存儲數(shù)據(jù)的分組;和第一控制器,其適于確定用于所述存儲器存儲單元的目標(biāo)延遲長度,并在所存儲的分組的數(shù)目超過所述目標(biāo)延遲長度時啟動對至少一個分組的壓縮。
38.如權(quán)利要求37所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成維持由于延遲的分組而引起的下溢的給定百分比。
39.如權(quán)利要求38所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成將所述目標(biāo)延遲長度計算為If(PERdelay<TARGET_VALUE)thenDEJITTER_DELAY=DEJITTER_DELAY-CONSTANT;If(PERdelay>TARGET_VALUE&&PERdelay>=last_PERdelay)thenDEJITTER_DELAY=DEJITTER_DELAY+CONSTANT;SetDEJITTER_DELAY=MAX(MIN_JITTER,DEJITTER_DELAY);andDEJITTER_DELAY=MIN(MAX_JITTER,DEJITTER_DELAY),其中,PERdelay是由于延遲的分組而引起的下溢的比率,TARGET_VALUE是延遲的分組的目標(biāo)比率,DEJITTER_DELAY是自適應(yīng)去抖動緩沖器的目標(biāo)延遲長度,CONSTANT是預(yù)先定義的值,并且MAX_JITTER和MIN_JITTER是分別表示最大和最小目標(biāo)延遲長度的預(yù)先定義的值。
40.如權(quán)利要求39所述的設(shè)備,其中,所述第一控制器被配置成將所述PERdelay計算為PERdelay=PER_CONSTANT×PERdelay+(1-PER_CONSTANT)×Current_PERdelay其中,PER_CONSTANT是用于估計PERdelay的濾波器的時間常數(shù)。
41.如權(quán)利要求40所述的設(shè)備,其中,所述第一控制器包括分組差錯計算單元,其被配置成計算Current_PERdelay作為延遲的分組的比率,其中,延遲分組的在預(yù)期再現(xiàn)時刻之后被接收到,并且其中,所述Current_PERdelay。
42.如權(quán)利要求41所述的設(shè)備,其中,所述分組差錯計算單元被配置成計算所述Current_PERdelay作為從PERdelay的上一次更新到當(dāng)前更新期間測量的延遲的分組與接收到的包括延遲的分組的全部分組的比率,并將所述Current_PERdelay計算為
43.如權(quán)利要求42所述的設(shè)備,其中,所述第一控制器被配置成識別接收到的分組的第一部分,其中,所述第一部分與話音突峰相對應(yīng),并且其中,所述話音突峰包括多個順序的分組。
44.如權(quán)利要求43所述的設(shè)備,其中,所述第一控制器被配置成通過所述第一部分的編碼來識別所述第一部分。
45.如權(quán)利要求44所述的設(shè)備,其中,所述第一控制器被配置成確定所述話音突峰的第一分組的預(yù)期再現(xiàn)時刻,并在所述預(yù)期再現(xiàn)時刻之前啟動所述話音突峰的所述第一分組的再現(xiàn)。
46.如權(quán)利要求45所述的設(shè)備,其中,所述第一控制器進(jìn)一步被配置成在所述第一分組的再現(xiàn)之后啟動隨后的分組的擴(kuò)展。
47.如權(quán)利要求46所述的設(shè)備,其中,所述第一控制器被配置成識別話音突峰的開頭和結(jié)尾。
48.如權(quán)利要求47所述的設(shè)備,其中,所述第一控制器被配置成識別所述話音突峰的結(jié)尾部分,并壓縮所述話音突峰的所述結(jié)尾部分中的至少一個分組。
49.如權(quán)利要求48所述的設(shè)備,其中,所述第一控制器被配置成通過接收到的分組的編碼速率來識別所述話音突峰的所述結(jié)尾部分。
50.如權(quán)利要求49所述的設(shè)備,其中,所述第一控制器被配置成通過靜音指示符識別所述話音突峰的所述結(jié)尾部分。
51.如權(quán)利要求50所述的設(shè)備,其中,所述第一控制器被配置成通過話音突峰結(jié)尾指示符識別所述話音突峰的所述結(jié)尾部分。
52.一種用于處理經(jīng)分組的數(shù)據(jù)的方法,包括將數(shù)據(jù)的分組存儲在存儲器存儲單元中;確定用于所述存儲器存儲單元的目標(biāo)延遲長度;相對于所述目標(biāo)延遲長度來估計所述存儲器存儲單元的狀態(tài),其中,所述存儲器存儲單元的狀態(tài)是所述存儲器存儲單元中所存儲的數(shù)據(jù)的度量;和如果所述存儲器存儲單元的狀態(tài)違反所述目標(biāo)延遲長度,則啟動來自所述存儲器存儲單元的至少一個分組的時間規(guī)整。
53.如權(quán)利要求52所述的方法,進(jìn)一步包括將所述目標(biāo)延遲長度計算為If(PERdelay<TARGET_VALUE)thenDEJITTER_DELAY=DEJITTER_DELAY-CONSTANT;If(PERdelay>TARGET_VALUE&&PERdelay>=last_PERdelay)thenDEJITTER_DELAY=DEJITTER_DELAY+CONSTANT;SetDEJITTER_DELAY=MAX(MIN_JITTER,DEJITTER_DELAY);andDEJITTER_DELAY=MIN(MAX_JITTER,DEJITTER_DELAY),其中,PERdelay是由于延遲的分組而引起的下溢的比率,TARGET_VALUE是延遲分組的目標(biāo)比率,DEJITTER_DELAY是自適應(yīng)去抖動緩沖器的目標(biāo)延遲長度,CONSTANT是預(yù)先定義的值,并且MAX_JITTER和MIN_JITTER是預(yù)先定義的值,所述預(yù)先定義的值分別是最大和最小目標(biāo)延遲長度。
54.如權(quán)利要求53所述的方法,進(jìn)一步包括生成時間規(guī)整控制信號;接收多個順序的分組;和響應(yīng)于所述時間規(guī)整控制信號而對片段進(jìn)行重疊相加。
55.如權(quán)利要求54所述的方法,其中,所述重疊相加包括將多個片段中的至少兩個結(jié)合為a)OutSegment[i]=(Segment1(i)*(WindowSize-i)+(Segment2(i)*i)WindowSize]]>b)OutSegment[i]=(Segment2(i)*(WindowSize-i)+(Segment1(i)*i)WindowSize]]>i=0至WindowSize-1WindowSize=RWindowSize其中,OutSegment是所合成的重疊相加后的片段,Segment1和Segment2是將被重疊相加的片段,WindowSize對應(yīng)于第一片段,并且RWindowSize對應(yīng)于第二片段。
56.如權(quán)利要求55所述的方法,其中,所述重疊相加進(jìn)一步包括識別所述第一片段和所述第二片段之間的相關(guān)性最大的部分。
57.如權(quán)利要求56所述的方法,其中,所述識別所述第一片段和所述第二片段之間的相關(guān)性最大的部分進(jìn)一步包括通過按照以下等式計算最大相關(guān)性來識別所述相關(guān)性最大的部分Corr(d)=Σi[(x(i)-mx)×(y(i-d)-my)]Σi(x(i)-mx)^2Σi(y(i-d)-my)^2,]]>其中,x表示所述第一片段,y表示話音的所述第二片段,m表示相關(guān)性窗口,i是索引值,并且d表示相關(guān)性部分。
58.如權(quán)利要求52所述的方法,進(jìn)一步包括對多個順序的分組進(jìn)行時間規(guī)整;禁止對至少一個順序的分組的時間規(guī)整,其中,所述至少一個順序的分組在所述多個順序的分組之后;和在所述至少一個順序的分組之后,啟用時間規(guī)整。
59.如權(quán)利要求52所述的方法,進(jìn)一步包括計算時間規(guī)整比率,其中,所述時間規(guī)整比率是時間窗口上的經(jīng)過時間規(guī)整的分組的數(shù)目;和啟動分組的作為所述時間規(guī)整比率的函數(shù)的時間規(guī)整。
60.一種包含一組指令的計算機(jī)可讀存儲介質(zhì),該組指令包括輸入例程,其用于將數(shù)據(jù)的分組存儲在存儲器存儲單元中;目標(biāo)延遲長度計算例程,其用于確定用于所述存儲器存儲單元的目標(biāo)延遲長度;第一例程,其用于相對于所述目標(biāo)延遲長度來估計所述存儲器存儲單元的狀態(tài),其中,所述存儲器存儲單元的狀態(tài)是所述存儲器存儲單元中所存儲的數(shù)據(jù)的度量;和第二例程,如果所述存儲器存儲單元的狀態(tài)違反所述目標(biāo)延遲長度,則所述第二例程啟動來自所述存儲器存儲單元的至少一個分組的時間規(guī)整。
61.一種設(shè)備,包括緩沖存儲器存儲單元,其被配置成存儲數(shù)據(jù)的分組;和用于緩沖自適應(yīng)的裝置,其被配置成將接收到的數(shù)據(jù)的分組的順序標(biāo)識符與再現(xiàn)順序進(jìn)行比較,第一控制器被配置成選擇接收到的分組的至少一個以用于再現(xiàn)。
62.如權(quán)利要求61所述的設(shè)備,其中,所述用于緩沖自適應(yīng)的裝置進(jìn)一步被配置成如果沒有接收到具有預(yù)期再現(xiàn)順序標(biāo)識符的預(yù)期分組,則啟動擦除的再現(xiàn),其中,所述擦除在所述預(yù)期分組的預(yù)期再現(xiàn)時刻被再現(xiàn)。
63.如權(quán)利要求61所述的設(shè)備,其中,所述用于緩沖自適應(yīng)的裝置進(jìn)一步被配置成確定下一預(yù)期再現(xiàn)時刻;將接收到的分組的順序標(biāo)識符與包括所述預(yù)期再現(xiàn)順序標(biāo)識符的多個順序標(biāo)識符進(jìn)行比較;和如果沒有接收到所述預(yù)期分組和下一順序的分組,則啟動擦除的再現(xiàn),其中,所述擦除在所述預(yù)期分組的下一預(yù)期再現(xiàn)時刻被再現(xiàn)。
64.一種設(shè)備,包括連接到解碼器的時間規(guī)整控制單元,所述時間規(guī)整控制單元適于接收時間規(guī)整指示符并響應(yīng)于所述時間規(guī)整指示符而啟動至少一個分組的時間規(guī)整;連接到所述時間規(guī)整控制單元的解碼電路,所述解碼電路被配置成從接收到的數(shù)據(jù)的分組中生成一組樣本,所述解碼電路進(jìn)一步被配置成響應(yīng)于所述時間規(guī)整指示符的第一值而生成第一組樣本,并響應(yīng)于所述時間規(guī)整指示符的第二值而生成第二組樣本;和連接到所述時間規(guī)整控制單元的輸出控制單元,所述輸出控制單元被配置成輸出樣本。
65.如權(quán)利要求64所述的設(shè)備,其中,所述設(shè)備進(jìn)一步包括解碼電路,其被連接到所述時間規(guī)整控制單元并被配置成解碼接收到的分組;和連接到所述解碼器和所述時間規(guī)整控制單元的輸出控制器,所述輸出控制器被配置成輸出由所述時間規(guī)整控制單元確定的分組。
66.如權(quán)利要求65所述的設(shè)備,其中,所述時間規(guī)整控制單元被配置成找出分組內(nèi)容中的近似的冗余。
67.如權(quán)利要求66所述的設(shè)備,其中,所述時間規(guī)整控制單元被配置成重復(fù)冗余以擴(kuò)展分組并減少冗余以壓縮分組。
68.如權(quán)利要求67所述的設(shè)備,其中,所述冗余是話音信號的重復(fù)部分。
69.如權(quán)利要求68所述的設(shè)備,其中,所述第一組樣本被生成以用于分組的壓縮,并且所述第二組樣本被生成以用于擴(kuò)展,并且其中,所述第一組樣本小于所述第二組樣本。
70.如權(quán)利要求69所述的設(shè)備,其中,所述時間規(guī)整指示符是多狀態(tài)指示符,并且其中,第一值對應(yīng)于壓縮,第二值對應(yīng)于擴(kuò)展,并且第三值對應(yīng)于不采用時間規(guī)整的處理。
71.如權(quán)利要求70所述的設(shè)備,其中,響應(yīng)于所述時間規(guī)整指示符的第三值,所述解碼電路生成第三組樣本,其中,所述第三組樣本大于所述第一組樣本并且小于所述第二組樣本。
72.如權(quán)利要求71所述的設(shè)備,其中,所述時間規(guī)整指示符的第四值對應(yīng)于第二壓縮級別,其中,響應(yīng)于接收到所述第四值,所述解碼電路生成小于所述第一組樣本的第四組樣本。
73.如權(quán)利要求72所述的設(shè)備,其中,所述時間規(guī)整指示符的第五值對應(yīng)于第二擴(kuò)展級別,其中,響應(yīng)于接收到所述第五值,所述解碼電路生成大于所述第二組樣本的第五組樣本。
74.一種設(shè)備,包括時間規(guī)整控制單元,其被配置成接收經(jīng)過解碼的分組的樣本,所述時間規(guī)整控制單元適于接收時間規(guī)整指示符并響應(yīng)于所述時間規(guī)整指示符而啟動至少一個分組的時間規(guī)整,所述時間規(guī)整控制單元被配置成轉(zhuǎn)換多個接收到的樣本以生成一組輸出樣本,所述時間規(guī)整控制單元進(jìn)一步被配置成響應(yīng)于所述時間規(guī)整指示符的第一值而將接收到的樣本轉(zhuǎn)換成第一組輸出樣本,并響應(yīng)于所述時間規(guī)整指示符的第二值而將接收到的樣本轉(zhuǎn)換成第二組樣本,其中,所述第一組輸出樣本小于所述第二組樣本。
75.如權(quán)利要求74所述的設(shè)備,其中,所述第一組輸出樣本是從接收到的樣本壓縮出來的,并且所述第二組樣本是從接收到的樣本中擴(kuò)展出來的。
76.如權(quán)利要求75所述的設(shè)備,其中,所述時間規(guī)整控制單元被配置成找出分組內(nèi)容中的近似的冗余。
77.如權(quán)利要求76所述的設(shè)備,其中,所述時間規(guī)整控制單元被配置成重復(fù)冗余以擴(kuò)展分組并減少冗余以壓縮分組。
78.如權(quán)利要求77所述的設(shè)備,其中,所述冗余是話音信號的重復(fù)部分。
79.如權(quán)利要求78所述的設(shè)備,其中,所述第一組樣本被生成以用于分組的壓縮,并且所述第二組樣本被生成以用于擴(kuò)展,并且其中,所述第一組樣本小于所述第二組樣本。
80.如權(quán)利要求79所述的設(shè)備,其中,所述時間規(guī)整指示符是多狀態(tài)指示符,并且其中,第一值對應(yīng)于壓縮,第二值對應(yīng)于擴(kuò)展,并且第三值對應(yīng)于不采用時間規(guī)整的處理。
81.如權(quán)利要求80所述的設(shè)備,其中,響應(yīng)于所述時間規(guī)整指示符的第三值,所述解碼電路生成第三組樣本,其中,所述第三組樣本大于所述第一組樣本并且小于所述第二組樣本。
82.如權(quán)利要求81所述的設(shè)備,其中,所述時間規(guī)整指示符的第四值對應(yīng)于第二壓縮級別,其中,響應(yīng)于接收到所述第四值,所述解碼電路生成小于所述第一組樣本的第四組樣本。
83.如權(quán)利要求82所述的設(shè)備,其中,所述時間規(guī)整指示符的第五值對應(yīng)于第二擴(kuò)展級別,其中,響應(yīng)于接收到所述第五值,所述解碼電路生成大于所述第二組樣本的第五組樣本。
84.一種用于處理經(jīng)分組的數(shù)據(jù)的方法,包括接收時間規(guī)整指示符;響應(yīng)于所述時間規(guī)整指示符而啟動至少一個分組的時間規(guī)整;從接收到的數(shù)據(jù)的分組中生成一組樣本,包括響應(yīng)于所述時間規(guī)整指示符的第一值而生成第一組樣本;和響應(yīng)于所述時間規(guī)整指示符的第二值而生成第二組樣本;和輸出所述一組樣本。
85.一種用于存儲一組指令的計算機(jī)可讀介質(zhì),該組指令包括第一例程,其用于接收時間規(guī)整指示符;第二例程,其用于響應(yīng)于所述時間規(guī)整指示符而啟動至少一個分組的時間規(guī)整;第三例程,其用于從接收到的數(shù)據(jù)的分組中生成一組樣本,包括第四例程,其用于響應(yīng)于所述時間規(guī)整指示符的第一值而生成第一組樣本;第五例程,其用于響應(yīng)于所述時間規(guī)整指示符的第二值而生成第二組樣本;和第六例程,其用于輸出所述一組樣本。
全文摘要
本發(fā)明公開了一種用于分組交換通信的語音IP傳輸(VoIP)的自適應(yīng)去抖動緩沖器。本發(fā)明所提供的去抖動緩沖器方法和設(shè)備避免了下溢的再現(xiàn),同時平衡了端對端延遲。在一個實例中,去抖動緩沖器在每個話音突峰的開頭被重新計算。在另一實例中,話音突峰分組在接收到所有剩余的分組后被壓縮。
文檔編號H04L12/56GK101048813SQ200580036630
公開日2007年10月3日 申請日期2005年8月30日 優(yōu)先權(quán)日2004年8月30日
發(fā)明者P·J·布萊克, R·卡普爾, S·D·斯平多拉, M·亞武茲 申請人:高通股份有限公司