自適應前向糾錯的製作方法
2023-10-26 18:52:17 3
專利名稱:自適應前向糾錯的製作方法
技術領域:
本發明主要涉及前向糾錯(FEC)。
背景技術:
有時,由於可能會出現大量的大包丟失/丟棄,無線網絡的錯誤率不足以用於視頻應用。丟棄或丟失的包有時沒有被恢復,但是在實施包恢復的方案中,利用重傳或FEC或兩者結合來恢復包。FEC已廣泛用於糾錯而無需重傳。FEC通過發送冗餘信息來恢復被損壞、被丟棄或丟失的包中所包含的數據,該冗餘信息可被接收器用來重構丟失的數據。FEC提供比重傳更快的數據恢復,並且不需要反饋信道。靜態FEC技術已被許多研究人員使用,但是它不能使FEC開銷與信道和網絡條件匹配。
在無線網絡中使用FEC已成為無線視頻應用的活躍研究領域。FEC的一個優點是它很適於多播。而且,FEC不需要與視頻編碼器進行交互,因此可應用於任何視頻編碼技術以及存儲的和直播的視頻。然而,由於網絡資源和靜態FEC算法所添加的冗餘量之間的不匹配,該冗餘量消耗無線網絡的有限帶寬,靜態FEC算法可能會使性能降級。
自適應FEC技術已顯示出有利於網絡性能。所有自適應技術都需要反饋來估計可用的網絡帶寬,然後基於該反饋來修改冗餘量。反饋可以是顯式的,如實時控制協議(RTCP)報告,或隱式的,如使用無線發送器低層包重傳。一般而言,如果網絡條件差,則自適應機制增加要發送的冗餘包數。如果網絡條件令人滿意,則不需要發送冗餘包,或者只需要發送少量的冗餘包。大多數現有技術方法都針對位級FEC。
發明內容
本發明致力於解決現有技術的這些和其它缺陷和缺點,且本發明針對自適應前向糾錯(FEC)。本發明的自適應FEC的一種應用是用於無線網絡上的視頻流傳輸。
根據本發明一方面,提供一種自適應FEC設備。該設備包括FEC編碼器和自適應FEC裝置。該FEC編碼器用於將k個源數據包編碼為n個包,其中n>k,並且該n個包包括冗餘包。該自適應FEC裝置用於基於至少一條反饋消息,來適應性地確定要和k個編碼包一起發送的冗餘包數。該至少一條反饋消息可以指示要在其上發送FEC編碼包的無線網絡的條件或狀態通過以下示範性實施例的詳細描述,並結合附圖,本發明的這些及其它方面、特徵和優點將變得顯而易見。
根據以下例圖,可以更好地理解本發明,其中圖1示出了可以應用本發明的示範性編碼/解碼前向糾錯(FEC)過程的圖;圖2示出了可以應用本發明的典型無線視頻系統架構的圖;圖3示出了無線區域網(WLAN)鏈路的接收比特率對所提供的發送速率的曲線;以及圖4示出了根據本發明原理的,用於無線網絡上視頻流傳輸的自適應FEC方法的流程圖。
具體實施例方式
在通過無線網絡進行視頻流傳輸的優選實施例中,本發明針對自適應前向糾錯(FEC)。本發明提供一種通過基於網絡條件動態調節FEC強度,來提高視頻流性能的自適應FEC方法和設備。基於網絡條件來優化通過無線網絡發送的冗餘包數。利用反饋信號向發送器方的自適應FEC裝置告知網絡條件。反饋信號可以來源於,但不限於接收器、中間節點或發送器鏈路層。可以在發送器方,通過訪問發送器無線硬體的信息如重傳嘗試,或者如果使用RTP(實時協議)時則利用RTCP報告,來監測網絡條件。發送器方信息的使用提供了對網絡條件變化的更快響應,因為不經常發送RTCP報告以保留網絡資源。然而,RTCP報告包括更多的信息,並且可用於更準確地估計可用的網絡帶寬。也可使用反饋消息的組合。自適應FEC裝置基於網絡條件來決定要發送多少冗餘包。如果網絡條件差,則與網絡條件令人滿意的情況相比,要發送的冗餘包數目更多。應該理解,雖然本發明是根據包級擦除FEC來描述的,但是也可以在保持本發明精神和範圍的同時,根據本發明使用其它類型的包級FEC。
本說明書說明本發明實施例的原理。因而,應該理解,本領域技術人員將能夠設計出雖然未在此處描述的實施例中明確描述或示出,但體現本發明原理且被包括在本發明精神和範圍內的各種配置。
在此列舉的所有例子和條件語言都旨在教導,來幫助讀者理解本發明原理、以及本發明人對本領域進一步貢獻的概念,並且應該被看作是不限於這些具體列舉的例子和條件。
而且,在此列舉本發明原理、方面和實施例及本發明特例的所有語句,都旨在包括與本發明結構上和功能上等同之物。另外,這些等同物旨在包括當前周知的等效物以及將來研發出的等效物,即研發出來執行相同功能的任何元件,而不論其結構怎樣。
因而,例如,本領域技術人員應該理解,在此給出的框圖代表體現本發明原理的說明性電路的概念視圖。類似,應該理解,任何流程表、流程圖、狀態轉移圖、偽碼等,都代表基本上可在計算機可讀介質上表示、因而可通過計算機或處理器來執行的各種過程,而不管是否明確示出這種計算機或處理器。
可以利用專用硬體以及能夠與適當軟體關聯地執行軟體的硬體,來提供圖中所示各元件的功能。當通過處理器來提供這些功能時,可以通過單個專用處理器、單個共享處理器、或其中一些可被共享的多個單獨處理器,來提供這些功能。而且,術語「處理器」或「控制器」的顯式使用不應被看作是專門指能夠執行軟體的硬體,而可以隱含包括但不限於數位訊號處理器(DSP)硬體、用於存儲軟體的只讀存儲器(ROM)、隨機存取存儲器(RAM)和非易失性存儲器。
也可以包括其它常規或定製的硬體。類似地,圖中所示的任何開關都只是概念性的。可以通過程序邏輯的工作、專用邏輯、程序控制與專用邏輯的交互,乃至手動地,執行它們的功能,實施者可以通過對上下文更具體的理解,來選擇特殊技術。
在本發明權利要求中,被表示為用於執行指定功能的手段的任何元件都旨在包括執行該功能的任何方式,例如包括a)執行該功能的電路元件的組合,或b)任何形式的軟體,因而包括固件和微碼等形式的軟體,該軟體與用於執行該軟體的適當電路結合以執行該功能。如這種權利要求所定義的本發明在於,由所列舉的各種手段提供的功能性以權利要求所要求的方式被組合和集合在一起。因而,認為能夠提供那些功能性的任何手段都等效於在此示出的手段。
包級擦除FEC用於提高無線鏈路的可靠性。因為錯誤的確切位置已知,所以擦除較容易進行。(n,k)擦除FEC方案將k個源包編碼為n(n>k)個包。這樣進行編碼,以致於由k個包組成的任何子集都足以重構源數據。
轉到圖1,總地用參考標記100來表示示範性編碼/解碼FEC過程。源包(k個原始包)110被輸入到編碼器120,由編碼器120輸出n個包130。這n個包130包括與這k個包對應的編碼數據131以及冗餘包對應的編碼數據132(即圖1中的陰影塊)。可利用多個FEC包的插入,來提高多個FEC塊的糾錯性能。解碼器140對這n個包(包括原始的k個包110和冗餘包)進行解碼,以獲得重構數據150(和k個原始包110相同)。
無線網絡的丟包率隨時間、網絡條件、網絡負載等而波動。因此,自適應前向糾錯控制方案對於調節通過信道發送的冗餘的數量很有用。本發明提供基於反饋的自適應前向糾錯方法和設備。如果網絡條件令人滿意,則不需要發送大量的冗餘包。相反,當丟包率高時(在預定閾值以上),則發送較多的冗餘包。
轉到圖2,總地用參考標記200來表示典型的無線視頻系統架構。發送器方(包括元件205、210、215、220、225和230)是受到FEC保護的視頻源,視頻源可以是存儲的或直播的內容。無線視頻系統架構200包括視頻存儲器205,該視頻存儲器205具有以信號通信方式與FEC編碼器210的輸入相連的輸出。任選地可以利用視頻捕獲單元215來代替視頻存儲器205,該視頻捕獲單元215具有以信號通信方式與視頻編碼器220的輸入相連的輸出,該視頻編碼器220依次又包括以信號通信方式與FEC編碼器210的輸入相連的輸出。FEC編碼器210的輸出以信號通信方式與緩衝器225的第一輸入相連。緩衝器225的輸出以信號通信方式與無線網絡接口230的輸入相連。無線網絡接口230的第一輸出以信號通信方式與無線鏈路(在此也稱為「無線網絡」)235相連。自適應FEC裝置240的第一和第二輸入以信號通信方式分別與無線網絡接口230的第二輸出和無線鏈路235相連。FEC裝置240的輸出以信號通信方式與緩衝器225的第二輸入相連。接收器245以信號通信方式與無線鏈路235相連。
發送器方FEC編碼器210對包進行編碼。每個包都包括整數個宏塊,並具有固定的字節數。然後,發送器方在經由無線網絡接口230將視頻數據傳遞到無線網絡235上之前,用實時協議/用戶數據報協議(RTP/UDP)對視頻數據進行打包。
發送器方始終發送所有的原始包。自適應FEC塊基於一條或多條反饋消息(以下稱為「反饋消息」),來決定要發送的冗餘包數。反饋消息可以來源於接收器方、並通過RTCP被發送給發送器,或者可以從發送器無線重傳信息來獲得反饋消息。無線重傳信息測量一個包被重傳的次數,並可用作網絡條件指示器。雖然發送器方信息可用於產生對網絡條件的快速適配,但有效的自適應方法可以將這兩種信息和RTCP一起使用,來提供對網絡條件的更長期觀察。
自適應FEC裝置240基於反饋消息來決定所要發送的包數。可利用許多替換技術確定所要發送的包的數量。例如,本發明的一個實施例使用增加/減少功能。根據該實施例原理,「令人滿意的」反饋消息使要發送的冗餘包減少1,直到0;否則,使冗餘包數增加1,直到n-k個包。為了得到良好適配率,應該使用大的n-k值。
在另一個替換實施例中,可以利用RTCP接收器報告來進行調節。尤其是,可以利用丟失碎片和丟失包累加數的RTCP發送器報告欄位,來進行調節。這些欄位分別代表自最後一次接收器報告以來的丟包數,以及自開始發送以來的總丟包數。
對於許多實際的802.11無線區域網(WLAN)鏈路,實際吞吐量在某一點上穩定到一常數,並且在某些情況下,當發送設備試圖通過鏈路推送更多數據時,實際吞吐量實際上將下降。圖3中說明了這一點,其中一般用附圖標記300來表示WLAN鏈路的接收比特率對所提供的發送速率的曲線。
如果視頻發送器(包括在無線網絡接口230中)正在以這樣一種速率發送數據,其中接收速率隨著所提供的發送速率增大而增大,則FEC將提高實際接收的信息量。然而,如果當視頻發送器正在曲線平直部分、或者更壞的情況下在正在下降的曲線部分上工作時,試圖發送更多數據,則FEC將無濟於事,並且可能實際上造成接收的視頻信息更少。為此,重要的是,視頻發送器要了解它實際上正在圖3曲線的什麼部分中工作。如果視頻發送器正在曲線下降部分中工作,則它不應該增加FEC數據量,而應該設法以某種其它方式(例如減小比特率)來提高性能,使得工作轉到曲線上升部分。如果視頻發送器已經在曲線的上升部分上工作,則視頻發送器可以添加附加的FEC信息並得到良好結果。
視頻發送器想要了解它處於曲線什麼部分的一種方式是,使用來自接收器245的反饋(例如RTCP報告)或無線發送器重傳信息。如果一旦添加了FEC,視頻接收器245接收較低的包速率,則視頻發送器正在曲線的下降部分上工作。如果一旦添加了FEC,視頻接收器245接收較高的包速率,則視頻發送器正在曲線上升部分上工作。如果視頻接收器245已經通過某種反饋路徑接收關於丟棄包的信息,則上述信息將可為視頻發送器所用。作為選擇,如已經描述的,可以利用來自無線發送器的媒體存取控制(MAC)級重傳信息來估計丟包數。
轉到圖4,總地用參考標記400來表示用無線網絡進行視頻流傳輸的自適應FEC方法。
功能塊405對視頻流編碼,以產生固定大小的視頻包(例如運動圖像專家組2(MPEG2)傳輸包),並將控制傳遞給功能塊410。在功能塊405,要發送的冗餘包數(以下也用變量「X」來表示)等於0。
功能塊410利用擦除碼FEC對每k個源包進行編碼,以產生具有n-k個冗餘包的n個包,然後將控制傳遞給功能塊415。功能塊415發送頭k個源包,並將控制傳遞給決策塊420。決策塊420測量並確定網絡條件。如果網絡條件良好(即在預定閾值以上),則控制傳遞到功能塊425。否則,如果網絡條件差(即在預定閾值以下),則控制傳遞到決策塊430。
功能塊425發送X=max{X-1,0}個冗餘包,並將控制返回給功能塊410。即,功能塊425比先前發送的包數少發送一個冗餘包,向下直到零個冗餘包下限。決策塊430根據接收到的比特率對所提供的發送速率(圖3所示曲線),來確定視頻發送器的工作區。尤其是,決策塊430確定發送器是在圖3曲線的上升區域中還是圖3曲線非上升區域中工作。如果發送器正在曲線非上升區域中工作,則控制傳遞給決策塊440,該決策塊440發送X個冗餘包,並將控制向後傳遞給功能塊410。否則,如果發送器正在曲線上升區域中工作,則控制傳遞給功能塊450,該功能塊450發送X=min{X+1,n-k}個冗餘包,並將控制向後傳遞給功能塊410。即,功能塊450比先前發送的包數多發送一個冗餘包,直到(n-k)個冗餘包上限。由功能塊425、440和450返回到功能塊410,使得能夠基於網絡條件來調節所發送的冗餘包數。
相關領域的普通技術人員基於此處的教導,可以容易弄清本發明的這些及其它特徵和優點。應該理解,可以以各種形式的硬體、軟體、固件、專用處理器或它們的組合,來實施本發明的教導。
最優選的是,將本發明的教導實施為硬體和軟體的組合。而且,優選地將軟體實施為確實可在程序存儲單元上具體化的應用程式。可將該應用程式上載到包括任何合適架構的機器,並通過該機器來執行。優選地,在具有硬體如一個或多個中央處理器(CPU)、隨機存取存儲器RAM和輸入/輸出(I/O)接口的計算機平臺上,實施該機器。該計算機平臺也可包括作業系統和微指令碼。在此描述的各種過程和功能可以是可通過CPU執行的微指令碼一部分或應用程式一部分、或它們的任意組合。另外,其它各種外圍單元可連接到該計算機平臺,如附加數據存儲單元和列印單元。
應該進一步理解,因為優選地用軟體來實施附圖中所描述的一些系統組成部件和方法,所以系統部件或過程功能塊之間的實際連接可以隨本發明的編程方式而有所不同。給定此處的教導,相關領域的普通技術人員將能夠預期本發明的這些及類似實施或配置。
雖然在此參考附圖描述了說明性實施例,但是應該理解,本發明不限於那些確切的實施例,並且在不脫離本發明範圍或精神的情況下,相關領域普通技術人員可以對本發明進行各種變化和更改。所有這種變化和更改都旨在被包括在如所附權利要求所闡述的本發明範圍內。
權利要求
1.一種設備,包括前向糾錯編碼器(210),用於將源數據的k個包編碼為n個包,其中n>k,並且該n個包包括冗餘數據;以及前向糾錯自適應裝置(240),用於響應至少一條反饋消息的接收,來自適應地確定要和k個源數據包一起編碼成具有編碼數據和冗餘數據的n個包的冗餘數據量。
2.根據權利要求1所述的設備,其中至少一條反饋消息指示要藉以發送所述編碼數據和冗餘數據的網絡的條件。
3.根據權利要求2所述的設備,其中所述網絡是無線網絡。
4.根據權利要求3所述的設備,其中當至少一條消息指示所述無線網絡的條件令人滿意時,所述前向糾錯自適應裝置(240)使冗餘包數減少一,下至最小值0。
5.根據權利要求3所述的設備,其中當至少一條消息指示無線網絡的條件不令人滿意時,所述前向糾錯自適應裝置(240)使冗餘包數增加一,上至最大值n-k個包。
6.根據權利要求2所述的設備,其中k個源數據包至少部分地包括視頻流數據。
7.根據權利要求1所述的設備,其中所述前向糾錯自適應裝置(240)基於增加/減少功能,來調節所要發送的冗餘包數。
8.根據權利要求1所述的設備,其中至少一條反饋消息包括實時控制協議(RTCP)接收器報告,該實時控制協議(RTCP)接收器報告說明的丟失包碎片和累計丟包數。
9.根據權利要求2所述的設備,其中根據預定閾值來確定網絡的條件,該預定閾值是基於實際收到的比特率對所提供的發送比特率的關係。
10.根據權利要求9所述的設備,其中當實際收到的比特率和所提供的發送比特率都增大時,所述前向糾錯自適應裝置(240)增加所要發送的冗餘包數。
11.根據權利要求1所述的設備,其中至少一條反饋消息對應於無線接口硬體低層的重傳信息。
12.根據權利要求1所述的設備,其中所述前向糾錯編碼器(210)利用擦除包級前向糾錯來對k個源數據包進行編碼。
13.一種用於無線網絡上視頻流傳輸的自適應前向糾錯(FEC)方法,所述方法包括編碼步驟(410),將k個源數據包編碼為n個包,其中n>k,並且該n個包包括來源於k個包的源數據以及冗餘數據;以及確定步驟(420、430),響應於接收指示無線網絡條件的至少一條反饋消息,來自適應地確定所述n個包的數量,其中發送來源於k個包的所述源數據及所述冗餘數據。
14.根據權利要求13所述的方法,其中所述自適應確定步驟包括,基於增加/減少功能來調節所要發送的冗餘包數目的步驟。
15.根據權利要求14所述的方法,其中當至少一條消息指示無線網絡的條件令人滿意時,所述調節步驟使冗餘包數減少(425)一,下至最小值0。
16.根據權利要求14所述的方法,其中當至少一條消息指示無線網絡的條件不令人滿意時,所述調節步驟使冗餘包數增加(450)一,上至最大值n-k個包。
17.根據權利要求13所述的方法,其中至少一條反饋消息包括實時控制協議(RTCP)接收器報告,該實時控制協議(RTCP)接收器報告說明丟包碎片和累計丟包數。
18.根據權利要求13所述的方法,其中根據預定閾值來確定網絡條件,該預定閾值是基於實際收到的比特率對所提供的發送比特率的關係。
19.根據權利要求18所述的方法,其中當實際收到的比特率和所提供的發送比特率都增大時,所述確定步驟增加(450)所要發送的冗餘包數。
20.根據權利要求13所述的方法,其中所述無線網絡包括無線接口硬體,且一條或多條反饋消息對應於無線接口硬體低層的重傳信息。
21.根據權利要求13所述的方法,其中所述確定步驟包括以下步驟當收到的包速率低於n個編碼包的發送速率時,禁止增加所要發送的冗餘包數。
22.根據權利要求21所述的方法,其中所述確定步驟包括以下步驟當收到的包速率低於n個編碼包的發送速率時,減少(425)所要發送的冗餘包數。
23.根據權利要求13所述的方法,其中所述編碼步驟(410)利用擦除包級前向糾錯,來對所述k個源數據包進行編碼。
24.一種前向糾錯方法,包括編碼步驟(410),將源數據的k個包和(n-k)個冗餘數據包一起編碼為n個包;以及確定步驟(420、430),響應關於發送所述n個包的網絡的狀態的至少一條反饋消息的接收,來確定要在其中發送所述源數據和所述冗餘數據的所述n個包的數量。
25.一種前向糾錯設備,包括用於將k個源數據包和(n-k)個冗餘數據的包一起編碼為n個包的裝置(210);以及用於響應關於發送所述n個包的網絡的狀態的至少一條反饋消息的接收,來確定要在其中發送所述源數據和所述冗餘數據的所述n個包數量的裝置(240)。
全文摘要
本發明描述了用於無線網絡上視頻流傳輸的自適應前向糾錯(FEC)設備和方法。該設備包括FEC編碼器(210)和自適應FEC裝置(240)。該FEC編碼器(210)用於將k個源數據包編碼為n個包,其中n>k,並且該n個包包括冗餘數據。該自適應FEC裝置(240)用於基於一條或多條反饋消息的接收,來自適應地確定要和k個編碼包一起發送的冗餘包數。這一條或多條反饋消息指示要藉以發送編碼視頻的無線網絡的條件。
文檔編號H04L1/00GK101061659SQ200580039836
公開日2007年10月24日 申請日期2005年6月14日 優先權日2004年12月2日
發明者伊扎特·希克馬特·伊扎特, 瑪麗·拉菲薩·科默, 託馬斯·安東尼·施塔爾 申請人:湯姆遜許可公司