TWI489827B - 串流封包傳輸方法 - Google Patents
串流封包傳輸方法 Download PDFInfo
- Publication number
- TWI489827B TWI489827B TW102121971A TW102121971A TWI489827B TW I489827 B TWI489827 B TW I489827B TW 102121971 A TW102121971 A TW 102121971A TW 102121971 A TW102121971 A TW 102121971A TW I489827 B TWI489827 B TW I489827B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- packets
- data
- length
- coded data
- Prior art date
Links
Description
本發明係關於一種串流封包傳輸方法,尤其是利用多個來源端進行串流封包傳輸之方法。
近年來,由於同儕網路技術(peer to peer,P2P)的興起,使得資料傳輸的來源端不再侷限於單一主伺服器,而可藉由多來源的架構(multi-source structure)進行資料傳輸,以提升資料傳輸的靈活性,且該技術目前更廣泛的應用於多媒體之串流傳輸中,例如PPStream、PPTV或Coolstreaming等。
在同儕網路中進行多媒體的串流傳輸時,通常係將一原始資料透過一錯誤更正碼(Error Correction Code)進行編碼,以形成數個資料區塊,並將同一個資料區塊所包含之數個封包藉由同一個來源端進行傳送,當一接收端接收該數個資料區塊後,若同一個資料區塊的封包遺失率在一定標準以下時,即可藉由一解碼程序修復該資料區塊所遺失之封包,並將該數個資料區塊解碼為正確之該原始資料,進而提升封包傳輸的可靠度。
然而,若將同儕網路技術應用於數個行動設備時,在各該行動設備持續移動的情況下,可能會因為多重路徑干擾或基地台換手等因素,而產生短暫的離線行為,當該行動設備因故離線而產生大量的連續性封包遺失時,若仍由同一個行動設備傳送相同資料區塊所包含之封包,所遺失之封包將發生在相同的資料區塊,當該資料區塊的封包遺失率超過一
定標準時,即使透過解碼程序也無法修復該資料區塊所遺失之封包,進而造成封包傳輸的可靠度下降。
有鑑於此,必須要有一套較佳之串流封包傳輸方法,以避免當同一來源端產生資料傳輸錯誤時,使得所遺失之封包皆發生在相同的資料區塊中。
本發明之主要目的係提供一種串流封包傳輸方法,該方法係使連續傳輸之封包位於不同資料區塊,以增加封包修復的機率,進而提升資料傳輸之可靠度。
為達到前述發明目的,本發明係提供一種串流封包傳輸方法,係包含:一封包長度計算步驟,係以一主伺服器在一傳輸網路中設定數個來源端,且該數個來源端係執行一封包長度方程式,並根據一參考封包遺失率及一封包總長度,計算一資料封包長度;一編碼步驟,係以該數個來源端執行一編碼程序,並依據該封包總長度及資料封包長度,將一原始資料編碼形成數個編碼資料區塊,且各該編碼資料區塊之封包的總數即為該封包總長度,各該編碼資料區塊之資料封包的數量即為該資料封包長度;一傳輸步驟,係由一接收端對該數個來源端發出一傳送要求,使各該來源端依序傳輸各該編碼資料區塊之其中一封包,當各該編碼資料區塊之其中一封包皆傳輸完成後,再依序傳輸各該編碼資料區塊之另一封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止;及一解碼步驟,係由該接收端將所接收之該數個封包重新排列,以形成各該編碼資料區塊,並執行一解碼程序,將該數個編碼資料區塊解碼形成該原始資料。
本發明之串流封包傳輸方法,其中該傳輸步驟在傳送該數個編碼資料區塊之封包的過程中,係先由其中一來源端依序傳輸各該編碼資
料區塊之封包,直到該來源端已到達該最大封包傳輸量後,再由尚未到達最大封包傳輸量之另一來源端依序傳輸各該編碼資料區塊所剩餘的封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止。
本發明之串流封包傳輸方法,其中該封包長度方程式如下所示:
其中,PLR eff
代表一有效封包遺失率,亦即當所有編碼資料區塊之封包皆傳送完成之後的封包遺失率;n代表該封包總長度,亦即該封包總數;k代表該資料封包長度,亦即該資料封包數;n-k代表一冗餘封包數;β代表該參考封包遺失率,係表示為p/(p+q);p代表封包由正確接收轉換為遺失的轉換機率;q代表封包由遺失轉換為正確接收的轉換機率;ω代表i個資料封包發生錯誤的機率()及其他錯誤發生在冗餘封包的機率()二者的乘積之一機率值;i
代表經解碼後仍無法復原的錯誤資料封包個數;j
代表未經修復的錯誤資料封包個數;arg Max
{ }代表當括號內之值最大化時所對應的參數值;Thpt eff
代表經過修復後之封包為正確的機率。
本發明之串流封包傳輸方法,其中該編碼程序係為一前向錯誤更正碼。
本發明之串流封包傳輸方法,其中該解碼程序係對應該編碼程序。
S1‧‧‧封包長度計算步驟
S2‧‧‧編碼步驟
S3‧‧‧傳輸步驟
S4‧‧‧解碼步驟
A~E‧‧‧編碼資料區塊
A0~E9‧‧‧封包
L1~L3‧‧‧曲線
N‧‧‧傳輸網路
1‧‧‧主伺服器
2‧‧‧終端裝置
3‧‧‧接收端
41~45‧‧‧來源端
第1圖:本發明之串流封包傳輸方法實施環境圖。
第2圖:本發明之串流封包傳輸方法流程圖。
第3圖:本發明之串流封包傳輸方法之編碼資料區塊示意圖。
第4a圖:本發明之串流封包傳輸方法傳輸示意圖。
第4b圖:本發明之串流封包傳輸方法傳輸示意圖。
第5a圖:本發明之串流封包傳輸方法封包遺失示意圖。
第5b圖:本發明之串流封包傳輸方法封包遺失示意圖。
第6圖:本發明之串流封包傳輸方法實驗數據比較圖。
為讓本發明之上述及其他目的、特徵及優點能更明顯易懂,下文特舉本發明之較佳實施例,並配合所附圖式,作詳細說明如下:
本發明所述之「連接」,係指二終端裝置之間藉由有線實體、無線媒介或其組合(例如:異質網路)等方式,而使該二裝置之資料可以相互傳遞。
請參照第1圖所示,其係本發明之串流封包傳輸方法之實施環境圖,其中,在一傳輸網路N中,係包含一主伺服器1及數個終端裝置2,該主伺服器1係用以將數個資料封包傳輸至相連接之該數個終端裝置2,且各該終端裝置2亦可彼此相互連接,以形成同儕網路傳輸。在本實施例中,該主伺服器1及該數個終端裝置2為具有資料處理及通訊功能之裝
置,例如:習知筆記型電腦(Notebook PC)、平板電腦(Tablet PC)或智慧型手機(Smart Phone)等行動裝置;該傳輸網路N可為實體、行動、異質網路或其組合等。因此,該主伺服器1及該數個終端裝置2可採用同儕網路傳輸方式,供不同使用者分享多媒體串流(Media Streaming)等資料。其中,該主伺服器1及該數個終端裝置2可由軟體(software)或硬體(hardware)等形式形成一計算模組、一傳輸模組及一儲存模組,該計算模組(例如:微處理器等)用以進行該主伺服器1及各該終端裝置2之參數計算及設定,並可對該多媒體串流之資料進行編碼或解碼;該傳輸模組(例如:對等傳輸協定控制器等)用以傳輸該多媒體串流之數個資料區塊(data block)所含有的封包(packets);該儲存模組(例如:快取記憶體等)用以接收該數個封包,並將該數個封包組成該資料區塊加以儲存。
此外,為了使本案之敘述更加明確,針對該主伺服器1及該數個終端裝置2,若該裝置在所述的步驟中,係用以傳送資料或進行傳送資料前的操作,以下皆定義為一來源端;若該裝置在所述的步驟中,係用以接收資料或進行接收資料後的操作,以下皆定義為一接收端。
請參照第2圖所示,其係本發明之串流封包傳輸方法流程圖,係包含:一封包長度計算步驟S1、一編碼步驟S2、一傳輸步驟S3及一解碼步驟S4。
該封包長度計算步驟S1,係以該主伺服器在該傳輸網路N中設定數個來源端,且該數個來源端係執行一封包長度方程式,並根據一參考封包遺失率及一封包總長度,計算一資料封包長度。
更詳言之,為了避免所有的資料皆由相同的來源端進行傳輸,進而導致相同的資料區塊有過多的封包遺失,因此須先設定數個來源端。且由於各該來源端之網路環境不盡相同,使得各該來源端之封包遺失率不同,因此,該數個來源端較佳係先進行分群,並將封包遺失率相近之
數個來源端設為同一群組,並以該數個來源端之封包遺失率的最大值作為該參考封包遺失率,再將該參考封包遺失率及該封包總長度代入該封包長度方程式,以計算在數個資料區塊的傳輸過程中,考量各該來源端之封包遺失率的情況下,當各該資料區塊之封包總長度已確定時,該資料區塊有多少封包為一資料封包。該封包長度方程式如下所示:
其中,PLR eff
代表一有效封包遺失率,亦即當所有封包皆傳送完成之後的封包遺失率;n代表該封包總長度;k代表該資料封包長度;β代表該參考封包遺失率,係表示為p/(p+q),p、q係為習知GE模型中之成敗狀態轉換機率,於此不再贅述。
進一步而言,在該封包長度方程式中,關於資料封包長度k的計算,可利用窮舉法等方式求得。當該數個來源端依據該參考封包遺失率及該封包總長度計算出該資料封包長度後,即可確定在後續的編碼處理時,各該資料區塊在該封包總長度下之較佳的資料封包數量,並可進而提升後續資料解碼時的封包修復率。據此,該封包長度計算步驟S1可根據該數個來源端的封包遺失率,求出各該資料區塊之較佳的資料封包數量,進而提升資料傳輸的可靠度。
該編碼步驟S2,係以該數個來源端執行一編碼程序,並依據該封包總長度及資料封包長度,將一原始資料編碼形成數個編碼資料區塊,且各該編碼資料區塊之封包的總數即為該封包總長度,各該編碼資料
區塊之資料封包的數量即為該資料封包長度。
更詳言之,為了提升資料傳輸的可靠度,各該來源端在傳輸該原始資料之前,較佳係先以該編碼程序對該原始資料進行編碼,以形成數個編碼資料區塊。在本實施例中,該編碼程序係為一前向錯誤更正碼(Forward Error Correction,FEC),且編碼後所產生之各該編碼資料區塊係包含數個資料封包及數個校驗封包,該資料封包的數量即為該資料封包長度,該數個資料封包及該數個校驗封包的總和即為該封包總長度。請參照第3圖所示,若考量各該來源端的封包遺失率,在該封包總長度為10的條件下(n=10),該資料封包長度較佳為6時(k=6),該編碼資料區塊A、B、C、D及E如圖所示皆具有10個封包,且以該編碼資料區塊A而言,該編碼資料區塊A包含6個資料封包及4個校驗封包,該6個資料封包分別為A0、A1、A2、A3、A4及A5;該4個校驗封包分別為A6、A7、A8及A9。據此,該編碼步驟S2可依據較佳之碼率(code rate,即k/n)對該原始資料進行編碼,以提高後續資料解碼時的封包修復率,進而提升資料傳輸的可靠度。
該傳輸步驟S3,係由一接收端對該數個來源端發出一傳送要求,使各該來源端依序傳輸各該編碼資料區塊之其中一封包,當各該編碼資料區塊之其中一封包皆傳輸完成後,再依序傳輸各該編碼資料區塊之另一封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止。
請參照第4a圖所示,若該接收端3係接收二個來源端41、42所傳輸之該編碼資料區塊A、B、C、D及E,其中,第一來源端41係依序傳輸各該編碼資料區塊A、B、C、D及E之該封包A0、B0、C0、D0及E0,當各該編碼資料區塊A、B、C、D及E之該封包A0、B0、C0、D0及E0皆傳輸完成後,再依序傳輸各該編碼資料區塊A、B、C、D及E
之另一封包A1、B1、C1、D1及E1,並持續傳輸至各該編碼資料區塊A、B、C、D及E之封包A5、B5、C51、D5及E5,直到所傳輸之總封包數量已到達該第一來源端41之一最大封包傳輸量後,再由第二來源端42依序傳輸各該編碼資料區塊A、B、C、D及E之封包A6、B6、C6、D6及E6,直到該數個編碼資料區塊A、B、C、D及E之所有封包傳輸完成為止。
請參照第4b圖所示,若該數個來源端的最大封包傳輸量皆為10,當該編碼資料區塊A、B、C、D及E欲以該數個來源端傳輸至該接收端時,該第一來源端41係依序傳輸各該編碼資料區塊A、B、C、D及E之封包A0、B0、C0、D0及E0及封包A1、B1、C1、D1及E1,直到該第一來源端41已到達該最大封包傳輸量後,再由尚未到達最大封包傳輸量之該第二來源端42依序傳輸各該編碼資料區塊A、B、C、D及E之封包A2、B2、C2、D2及E2及封包A3、B3、C3、D3及E3,並由一第三來源端43、一第四來源端44及一第五來源端45持續上述動作,直到該數個編碼資料區塊A、B、C、D及E之所有封包傳輸完成為止。
更詳言之,當該接收端欲接收該數個編碼資料區塊時,該數個編碼資料係透過數個來源端進行傳送,且依序傳輸各該編碼資料區塊之其中一封包,當各該編碼資料區塊之其中一封包皆傳輸完成後,再依序傳輸各該編碼資料區塊之另一封包,且在傳送該數個編碼資料區塊之封包的過程中,係先由其中一來源端依序傳輸各該編碼資料區塊之封包,直到該來源端已到達該最大封包傳輸量後,再由尚未到達最大封包傳輸量之另一來源端依序傳輸各該編碼資料區塊所剩餘的封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止。據此,該傳輸步驟S3在傳輸封包的過程中,可使連續傳送的封包皆位於不同的編碼資料區塊,當該數個來源端遇到連續性的封包遺失時,即可避免連續遺失的封包位於相同的編碼資料區塊中,以提高後續資料解碼時的封包修復率,進而提升資料傳
輸的可靠度。
該解碼步驟S4,係由該接收端將所接收之該數個封包重新排列,以形成各該編碼資料區塊,並執行一解碼程序,將該數個編碼資料區塊解碼形成該原始資料。
由於在該傳輸步驟S3中,該數個封包傳輸的順序並非組成各該編碼資料區塊的順序,因此必須將各該封包重新排列至相對應的區塊,以形成該數個編碼資料區塊,以利進行解碼作業。其中,該解碼程序較佳係對應該編碼步驟S2之編碼程序,以順利對該數個編碼資料區塊解碼形成該原始資料,在本實施例中,係為該前向錯誤更正碼。
更詳言之,在本實施例中,由於該數個編碼資料區塊之封包總長度皆為10,且各該編碼資料區塊皆具有6個資料封包及4個校驗封包,因此當各該編碼資料區塊所遺失的封包數等於或小於4的情況下,在進行解碼的作業中,皆可完整修復所遺失之封包。
請參照第5a圖所示,若該接收端係接收二個來源端所傳輸之該編碼資料區塊A、B、C、D及E,當第一接收端所傳輸之封包A2、B2...B3、C3產生連續性的遺失時,對該編碼資料區塊A、B及C而言只遺失了2個封包,對該編碼資料區塊D及E而言只遺失了1個封包,由於該編碼資料區塊A、B、C、D及E所遺失之封包皆在4個以下,因此在該解碼步驟S4中,均可完整修復各該編碼資料區塊所遺失之封包。請參照第5b圖所示,若該接收端係接收五個來源端所傳輸之該編碼資料區塊A、B、C、D及E,當第一接收端所傳輸之封包A0、B0...B1、C1產生連續性的遺失時,對該編碼資料區塊A、B及C而言只遺失了2個封包,對該編碼資料區塊D及E而言只遺失了1個封包,由於該編碼資料區塊A、B、C、D及E所遺失之封包皆在4個以下,因此在該解碼步驟S4中,均可完整修復各該編碼資料區塊所遺失之封包。
為證明本發明具有效能上的增進,以下特以C語言撰寫模擬系統,並以一電腦模擬在不同傳輸方法中,不同來源端數量對有效封包遺失率之影響。請參照第6圖所示,其係本發明與其他傳輸方法之來源端數量與有效封包遺失率關係圖。曲線L1係為本發明在不同來源端數量之有效封包遺失率變化曲線,曲線L2係為習知之internal FEC interleaving傳輸法在不同來源端數量之有效封包遺失率變化曲線,曲線L3係為習知之external FEC interleaving傳輸法在不同來源端數量之有效封包遺失率變化曲線,在該參考封包遺失率為0.05,且q值為0.1的條件下,可看出不論來源端的數量多寡,本發明皆可維持較低之有效封包遺失率,亦即本發明在解碼後所形成之該原始資料,具有較低之封包遺失率,因此本發明可提升資料傳輸的可靠度。
綜上所述,本發明係根據各該來源端的封包遺失率計算較佳之碼率,並以該碼率對該原始資料進行編碼以形成數個編碼資料區塊,且在傳輸該數個編碼資料區塊的封包時,連續傳輸之封包係位於不同編碼資料區塊,以增加封包修復的機率,進而提升資料傳輸之可靠度。
雖然本發明已利用上述較佳實施例揭示,然其並非用以限定本發明,任何熟習此技藝者在不脫離本發明之精神和範圍之內,相對上述實施例進行各種更動與修改仍屬本發明所保護之技術範疇,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
S1‧‧‧封包長度計算步驟
S2‧‧‧編碼步驟
S3‧‧‧傳輸步驟
S4‧‧‧解碼步驟
Claims (5)
- 一種串流封包傳輸方法,係包含:一封包長度計算步驟,係以一主伺服器在一傳輸網路中設定數個來源端,且該數個來源端係執行一封包長度方程式,並根據一參考封包遺失率及一封包總長度,計算一資料封包長度;一編碼步驟,係以該數個來源端執行一編碼程序,並依據該封包總長度及資料封包長度,將一原始資料編碼形成數個編碼資料區塊,且各該編碼資料區塊之封包的總數即為該封包總長度,各該編碼資料區塊之資料封包的數量即為該資料封包長度;一傳輸步驟,係由一接收端對該數個來源端發出一傳送要求,使各該來源端依序傳輸各該編碼資料區塊之其中一封包,當各該編碼資料區塊之其中一封包皆傳輸完成後,再依序傳輸各該編碼資料區塊之另一封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止;及一解碼步驟,係由該接收端將所接收之該數個封包重新排列,以形成各該編碼資料區塊,並執行一解碼程序,將該數個編碼資料區塊解碼形成該原始資料。
- 根據申請專利範圍第1項之串流封包傳輸方法,其中該傳輸步驟在傳送該數個編碼資料區塊之封包的過程中,係先由其中一來源端依序傳輸各該編碼資料區塊之封包,直到該來源端已到達該最大封包傳輸量後,再由尚未到達最大封包傳輸量之另一來源端依序傳輸各該編碼資料區塊所剩餘的封包,並重複上述操作直到該數個編碼資料區塊之所有封包傳輸完成為止。
- 根據申請專利範圍第1項之串流封包傳輸方法,其中該封包長度方程式如下所示:
- 根據申請專利範圍第1項之串流封包傳輸方法,其中該編碼程序係為一前向錯誤更正碼。
- 根據申請專利範圍第1項之串流封包傳輸方法,其中該解碼程序係對應該編碼程序以進行解碼。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102121971A TWI489827B (zh) | 2013-06-20 | 2013-06-20 | 串流封包傳輸方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102121971A TWI489827B (zh) | 2013-06-20 | 2013-06-20 | 串流封包傳輸方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201501493A TW201501493A (zh) | 2015-01-01 |
TWI489827B true TWI489827B (zh) | 2015-06-21 |
Family
ID=52718103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102121971A TWI489827B (zh) | 2013-06-20 | 2013-06-20 | 串流封包傳輸方法 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI489827B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7187657B2 (en) * | 2003-10-09 | 2007-03-06 | Matsushita Electric Industrial Co., Ltd. | Communication terminal and method used therein |
TWI362890B (en) * | 2007-12-18 | 2012-04-21 | Ind Tech Res Inst | Data transmission method and communication method using the method |
TWI364189B (zh) * | 2008-04-30 | 2012-05-11 | Chunghwa Telecom Co Ltd | |
TWI374632B (en) * | 2007-12-31 | 2012-10-11 | Ind Tech Res Inst | Methods and systems for bandwidth prediction |
TWI378684B (en) * | 2008-04-29 | 2012-12-01 | Quanta Comp Inc | Communication method and system of internet |
-
2013
- 2013-06-20 TW TW102121971A patent/TWI489827B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7187657B2 (en) * | 2003-10-09 | 2007-03-06 | Matsushita Electric Industrial Co., Ltd. | Communication terminal and method used therein |
TWI362890B (en) * | 2007-12-18 | 2012-04-21 | Ind Tech Res Inst | Data transmission method and communication method using the method |
TWI374632B (en) * | 2007-12-31 | 2012-10-11 | Ind Tech Res Inst | Methods and systems for bandwidth prediction |
TWI378684B (en) * | 2008-04-29 | 2012-12-01 | Quanta Comp Inc | Communication method and system of internet |
TWI364189B (zh) * | 2008-04-30 | 2012-05-11 | Chunghwa Telecom Co Ltd |
Also Published As
Publication number | Publication date |
---|---|
TW201501493A (zh) | 2015-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107276722B (zh) | 一种基于udp的数据传输方法和系统 | |
US7095729B2 (en) | Method for multimedia communication over packet channels | |
CN110943800A (zh) | 数据包的发送方法、装置及系统、存储介质、电子装置 | |
WO2015184914A1 (zh) | 一种数据包处理方法及装置 | |
AU2017309774B2 (en) | Device and associated methodoloy for encoding and decoding of data for an erasure code | |
JP2007251737A (ja) | データ転送方法及び,これを適用する通信システム及びプログラム | |
CN109905205B (zh) | 数据发送、接收的方法及设备、数据传输方法及系统 | |
CN107209713B (zh) | 按需文件修复的方法和系统 | |
US8942084B2 (en) | Method of reducing retransmission of data frame and receiving node therefor | |
CN103312458A (zh) | 混合编码方法 | |
JP7282895B2 (ja) | データの再送復号方法、装置、システム及び通信装置 | |
CN109412999B (zh) | 一种概率成型的映射方法及装置 | |
CN110545161B (zh) | 一种具有冗余的多媒体数据实时传输方法 | |
TW201739175A (zh) | 低密度奇偶檢查碼之編解碼方法 | |
CN111385055B (zh) | 一种数据传输方法和装置 | |
WO2019096271A1 (zh) | 信道状态信息csi编码方法及装置、存储介质和处理器 | |
US10200154B2 (en) | System and method for early packet header verification | |
CN106788886B (zh) | 一种lt码编解码方法 | |
JP2014239285A (ja) | データ伝送装置及び方法 | |
WO2016179743A1 (zh) | 一种编码装置及方法 | |
TWI489827B (zh) | 串流封包傳輸方法 | |
CN114401208B (zh) | 数据传输方法、装置、电子设备和存储介质 | |
CN109039536A (zh) | 数据的传输方法、设备及可读介质 | |
WO2018133415A1 (zh) | 一种物理编码子层的数据编解码方法和装置、存储介质 | |
US20200389184A1 (en) | Network data prediction method, network data processing device and network data processing method |