專利名稱::Ts包修整的制作方法TS包修整相關(guān)申請的交叉引用根據(jù)35USC119(e),本申請要求于2007年8月8日提交的題為“TSPacketGrooming(TS包修整)”的第60/954,640號美國臨時申請的權(quán)益,該臨時申請的全部內(nèi)容通過引用并入本文?;诼?lián)邦資助的研究和開發(fā)的發(fā)明權(quán)利聲明不適用參照壓縮盤上的“序列表”、表或計算機(jī)程序列表附錄不適用
背景技術(shù):
:本發(fā)明涉及在數(shù)字廣播系統(tǒng)中接收數(shù)據(jù)包的方法和裝置,更具體地涉及在數(shù)字視頻廣播(DVB)系統(tǒng)中用于修整傳輸流包的方法和裝置。MPEG(運動圖像專家組)標(biāo)準(zhǔn)專注于視頻和音頻數(shù)據(jù)的編碼和傳輸。通常,MPEG標(biāo)準(zhǔn)使用壓縮算法來減少將被傳輸和/或存儲的字節(jié)的數(shù)量,而不顯著影響原始視頻和音頻內(nèi)容的質(zhì)量。國際標(biāo)準(zhǔn)化組織(在下文稱為IS0/IEC)已經(jīng)開發(fā)了MPEG-2標(biāo)準(zhǔn),用于對運動的圖像和相關(guān)聯(lián)的音頻進(jìn)行編碼。MPEG-2標(biāo)準(zhǔn)在四個文檔中闡述。文檔IS0/IEC13818-1(系統(tǒng))規(guī)定了規(guī)范的系統(tǒng)編碼。它定義了用于結(jié)合視頻和音頻數(shù)據(jù)的多路復(fù)用結(jié)構(gòu),并且包括視頻和相關(guān)聯(lián)的音頻的同步播放序列所需的定時信息。文檔IS0/IEC13818-2(視頻)規(guī)定了視頻數(shù)據(jù)的編碼表示和重構(gòu)圖像所需的解碼方法。文檔IS0/IEC13818-3(音頻)規(guī)定了音頻數(shù)據(jù)的編碼表示和重構(gòu)聲音所需的解碼方法。文檔IS0/IEC13818-4(—致性)規(guī)定了確定編碼流特性的程序和測試是否符合文檔IS0/IEC13818-1、13818-2和13818-3中的要求。MPEG-2標(biāo)準(zhǔn)提供了基于包的編碼和多媒體數(shù)據(jù)的傳輸,將視頻、音頻、其它數(shù)據(jù)多路復(fù)用為比特流。然后將比特流分段為打包基本流(PES),接著將對應(yīng)的包多路復(fù)用為兩個不同流中之一傳輸流(TS)或節(jié)目流(PS)。傳輸流由固定長度(188字節(jié))的包構(gòu)成,而節(jié)目流包括可變長度的PES包的多路復(fù)用。傳輸流在數(shù)字視頻廣播(DVB)系統(tǒng)中使用,而節(jié)目流在無誤差環(huán)境中使用,例如,數(shù)字多功能光盤(DVD)上的錄制節(jié)目。PES是用于攜帶基本流數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)?;玖?ES)是編碼的視頻、編碼的音頻、或在只具有一個包識別符(PID)的PES包序列中所攜帶的其它編碼數(shù)據(jù)流中的任一種。傳輸流(TS)包在視頻廣播中使用,其中傳輸信道具有噪音并且面對多種減損,例如多徑衰落、群時延變化、由于接收機(jī)相對于廣播站移動的多普勒效應(yīng)、由本地振蕩器漂移引起的載波頻率偏移、載波相位噪聲、載波振幅不均衡、由無意的過濾引起的信道帶寬畸變等。與基于MPEG-2標(biāo)準(zhǔn)采用的DVB傳輸流(TS)的其它DVB傳輸系統(tǒng)形成對比,DVB-H是用于手持接收機(jī)的廣播服務(wù)的規(guī)范,并且在2004年11月被正式地采用作為ETSI(歐洲電信標(biāo)準(zhǔn)協(xié)會)標(biāo)準(zhǔn)。更具體地,DVB-H是地面數(shù)字TV標(biāo)準(zhǔn),其要求節(jié)約能源并且允許接收機(jī)在接收服務(wù)時自由地移動。DVB-H基于網(wǎng)際協(xié)議(IP)。因此,DVB-H標(biāo)準(zhǔn)接口是IP接口形式。這種接口允許DVB-H系統(tǒng)與其它基于IP的網(wǎng)絡(luò)結(jié)合。這種結(jié)合是IP組播系統(tǒng)的一個特征。MPEG-2TS仍然由鏈路數(shù)據(jù)層使用。將編碼的多媒體數(shù)據(jù)映射成可變長度的IP包,該IP包被稱為IP數(shù)據(jù)報。通過多協(xié)議封裝(MPE)和在DVB數(shù)據(jù)廣播規(guī)范ETSIEN301192中定義的適配協(xié)議,將IP數(shù)據(jù)報封裝到傳輸流中。在MPE級別,增加了前向糾錯(FEC)這一額外級。這種被稱為MPE-FEC的技術(shù)是DVB-H主要創(chuàng)新之一。MPE-FEC補(bǔ)充了底層DVB-T標(biāo)準(zhǔn)的物理層FEC。其降低了手持設(shè)備接收的信噪比(SNR)要求。在IP輸入流通過MPE被封裝之前,在IP輸入流級別的鏈路層上進(jìn)行MPE-FEC處理。圖IA是包括DVB-H編碼譯碼器的DVB-H發(fā)射機(jī)的框圖,DVB-H編碼譯碼器包含MPE-FEC、MPE和時間分片技術(shù)。時間分片技術(shù)是DVB-H系統(tǒng)的功率節(jié)約特征,其將發(fā)射的節(jié)目流分配到時間片內(nèi),從而允許接收機(jī)僅在想要接收突發(fā)數(shù)據(jù)的時候是活動的而在其它的功率節(jié)約時間內(nèi)斷電。根據(jù)時間片方法,對由不同源提供且作為基本流的IP輸入流進(jìn)行多路復(fù)用。單個MPEG音頻或視頻編碼器的輸出稱為基本流(ES)。分別對每個單獨的基本流進(jìn)行MPE-FEC誤差保護(hù)計算。將IP圖封裝到MPE段中。MPE段又通過前向糾錯(FEC)碼進(jìn)行保護(hù)。里德所羅門碼RS(255,191,64)碼用于數(shù)據(jù)可靠性增強(qiáng)并且形成FEC段。根據(jù)時間分片方法,對由不同源提供且作為單個基本流(ES)的IP輸入流進(jìn)行多路復(fù)用。將視頻節(jié)目流編碼為MPEG-2格式,接著通過MPE-FEC段對編碼的數(shù)據(jù)進(jìn)行包裝和多路復(fù)用以形成傳輸流(TS)包。DVB-T編碼器101包括4K調(diào)制器和發(fā)射器參數(shù)信令(TPS)信息,該信息表示DVB-H傳輸?shù)腄VB-T編碼器(TPS)信息與物理層的DVB-T標(biāo)準(zhǔn)兼容。圖IB示出了DVB-H接收機(jī)的現(xiàn)有技術(shù)框圖。接收機(jī)120包括恢復(fù)MPEG-2傳輸流(TS)包的DVB-H解調(diào)器122。然后,將TS包124應(yīng)用于包括時間分片模塊134的DVB-HIP解封裝器130。時間分片模塊134控制接收機(jī)解碼想要的服務(wù),并且在其它服務(wù)中關(guān)閉。其目的是減少接收機(jī)的功率消耗。MPEG-FEC模塊136提供補(bǔ)充的FEC功能,其允許接收機(jī)120處理尤其困難的接收情況。傳輸流包可攜帶許多不同的節(jié)目流,每個傳輸流包使用不同的壓縮系數(shù)和比特率,該比特率可在整體比特率保持恒定的情況下動態(tài)地改變(統(tǒng)計多路復(fù)用)。為移動和手持接收機(jī)設(shè)備的數(shù)字視頻廣播規(guī)定了DVB-H標(biāo)準(zhǔn),該設(shè)備有時候可能由于小尺寸的天線和它們相對于廣播站的移動速度而不能良好地接收,本發(fā)明的目的是提供用于改進(jìn)解調(diào)的數(shù)據(jù)包質(zhì)量的方法和裝置。
發(fā)明內(nèi)容本發(fā)明提供用于修整傳輸流包的方法和裝置,該傳輸流包能夠支持多種數(shù)據(jù)服務(wù)。根據(jù)本發(fā)明的一個實施方式,應(yīng)用多種交叉校驗技術(shù),以重構(gòu)部分正確的接收到的TS包并且改進(jìn)MPE-FEC處理的性能,從而產(chǎn)生無誤差I(lǐng)P數(shù)據(jù)報。在本發(fā)明的一個實施方式中,DVB接收機(jī)部分地包括解調(diào)器和接口模塊,接口模塊被配置為根據(jù)被應(yīng)用于MPEG-2傳輸流的所選擇的包段的一組預(yù)定條件,接收多個解調(diào)的傳輸流包。接收機(jī)進(jìn)一步包括具有解析器和布爾邏輯單元的包處理器,布爾邏輯單元被配置為對一組模式執(zhí)行邏輯操作,這一組模式可以是連續(xù)聚集在一起或物理上分布在一個接收到的包內(nèi)和/或多個包之間的單個比特和/或多個比特。包處理器可耦合至包含算法的存儲器模塊,存儲器模塊被配置為與包處理器一起執(zhí)行多個交叉校驗和調(diào)整功能。對接收到的包的檢測可從定位同步模式和獲得預(yù)定數(shù)量的連續(xù)正確同步模式起始。一旦連續(xù)接收到預(yù)定數(shù)量的(例如5個)同步模式,則可識別包的正確邊界。然后處理器可解析(定義為檢查和識別感興趣的預(yù)定字段)傳輸流包的頭字段。所述頭字段包括對本發(fā)明的交叉校驗和調(diào)整技術(shù)至關(guān)重要的多組比特模式。將具有相同包識別符(PID)字段的包存儲在存儲器模塊的相應(yīng)位置,將校驗它們單獨的連續(xù)計數(shù)(CC)字段與網(wǎng)頁計數(shù)值。影子計數(shù)器可以是從0到OxF計數(shù)和循環(huán)的4比特二進(jìn)制計數(shù)器,即,影子計數(shù)器可以是模16計數(shù)器。包處理器可執(zhí)行如下的交叉校驗步驟。如果PID字段匹配預(yù)選的PID值以及CC字段不匹配影子計數(shù)器的值,那么處理器會調(diào)整CC字段。如果CC字段匹配影子計數(shù)器值以及PID值不匹配預(yù)選的PID值,那么處理器會調(diào)整PID字段。包處理器可將接收到的包臨時存儲在緩沖器中用于進(jìn)一步處理,即,根據(jù)本發(fā)明的一個實施方式、基于相應(yīng)的PID和CC恢復(fù)規(guī)則修改感興趣的字段(例如,PID和CC字段)。如果接收到的TS包的PID字段匹配預(yù)選擇的PID值并且其CC字段匹配網(wǎng)頁計數(shù)值,那么包處理器可將接收到的TS包轉(zhuǎn)發(fā)至下面的IP解封裝器。包處理器可進(jìn)一步校驗“適配字段控制”狀態(tài)以確定適配字段是否具有不規(guī)則的長度。如果適配字段控制是二進(jìn)制模式'10'或'11'之一,那么處理器可將適配字段長度調(diào)整至規(guī)則長度。處理器可進(jìn)一步校驗“有效載荷單元起始指示符”(PUSI)字段的狀態(tài)。PUSI字段為0表示傳輸流(TS)包沒有攜帶新的有效載荷的起始。如果PID字段匹配預(yù)選擇的值以及PUSI字段不匹配所期望的PUSI值(例如'0'),那么處理器可重置PUSI字段。包處理器可進(jìn)一步校驗指針字段與所期望的指針值;以及如果PID與匹配,那么將指針字段設(shè)置為最小長度值。最小長度值可被定義為剩余段長度值和常量(例如,十進(jìn)制183)減去適配字段長度的結(jié)果之中的最小值。包處理器可進(jìn)一步校驗段長度字段與IP長度值以及驗證IP校驗和的有效性;如果段長度字段不匹配IP長度值以及IP校驗和有效,那么將段長度字段調(diào)整為IP長度值;以及如果段長度字段匹配以及IP校驗和有效,那么保留段長度字段。包處理器可進(jìn)一步校驗地址字段與所期望的地址值;如果地址字段不匹配,那么基于整齊的段地址,校正地址字段。包處理器可進(jìn)一步校驗表邊界標(biāo)記和幀邊界標(biāo)記;根據(jù)在規(guī)范的相應(yīng)部分描述的規(guī)則,修改表邊界和幀邊界。圖IA是現(xiàn)有技術(shù)中已知的DVB-H發(fā)射機(jī)的框圖;圖IB是現(xiàn)有技術(shù)中已知的DVB-H接收機(jī)的現(xiàn)有技術(shù)框圖;圖IC是根據(jù)本發(fā)明的一個實施方式的DVB-H接收機(jī)的示例性框圖;圖2是現(xiàn)有技術(shù)中已知的,通過MPE將IP數(shù)據(jù)報封裝到TS包中;圖3示出了在ETSIEN301192和IS0/IEC13818-6中定義的根據(jù)DVB-H傳輸流的MPE段語法;圖4示出了根據(jù)MPEG標(biāo)準(zhǔn)的MPEG-2TS包;圖5示出了現(xiàn)有技術(shù)中已知的、通過使用多協(xié)議封裝(MPE)將IP數(shù)據(jù)報封裝到多個TS包中;圖6A-6D示出了根據(jù)本發(fā)明的一個實施方式,通過使用交叉校驗技術(shù)修整TS包的流程圖;圖7示出了根據(jù)本發(fā)明的一個實施方式用于修整TS包的示例性的包處理器;圖8示出了根據(jù)本發(fā)明的一個實施方式改進(jìn)的性能與通常的DVB-H接收機(jī)之間的仿真結(jié)果。下面的詳細(xì)描述和附圖將能更好地理解本發(fā)明的特征和優(yōu)點。具體實施例方式圖IC是根據(jù)本發(fā)明的一個實施方式的示例性DVB-H接收機(jī)140框圖。接收機(jī)實施方式140部分地包括包處理器148,包處理器148介于DVB-H解調(diào)器模塊142與時間分片模塊154之間。包處理器148截取和處理大量的TS包144,并且輸出經(jīng)修整的TS'包145,接著將TS'包145應(yīng)用于IP解封裝模塊150。本文中所用的術(shù)語“修整(groom)”描述了根據(jù)本發(fā)明的實施方式的經(jīng)修改的TS包,以改進(jìn)載噪(C/N)比。包處理器148被耦合至存儲算法的存儲器模塊146,該算法用于交叉校驗TS包中的多組比特模式以校正接收到的TS包中的至關(guān)重要的字段,從而提高M(jìn)PE-FEC處理和IP數(shù)據(jù)報解封裝的性能。本發(fā)明的交叉校驗技術(shù)將在下面詳細(xì)描述。DVB標(biāo)準(zhǔn)規(guī)定通過多協(xié)議封裝(MPE)在MPEG-2TS中攜帶IP數(shù)據(jù)報。圖2示出了將每個IP數(shù)據(jù)報201封裝到MPE210中。接著又將MPE210封裝到MPE段232中。然后將MPE段的流放入基本流(ES)中,即,具有具體節(jié)目識別符(PID)的MPEG-2TS包的流。每個MPE段具有12字節(jié)的頭部231、有效載荷長度232和4字節(jié)的循環(huán)冗余校驗(CRC-32)尾部233??偟挠行лd荷長度等于IP數(shù)據(jù)報的長度。MPE210包括多個行212和多個列214。列數(shù)對應(yīng)于191字節(jié),行數(shù)對應(yīng)于256、512,768或1024。每行的191字節(jié)還由里德所羅門(RS)碼保護(hù),RS碼產(chǎn)生用于MPE-FEC221的附加64個RS奇偶字節(jié)(RS碼字)。因此,MPE-FEC編碼器產(chǎn)生合并了IP數(shù)據(jù)報201且被稱為FEC幀的特定幀結(jié)構(gòu)。FEC幀由最大1024行和常數(shù)的255列構(gòu)成,最大為261,120字節(jié)。將MPE數(shù)據(jù)封裝到多個MPE段232中,將RS數(shù)據(jù)封裝到多個MPE-FEC段242中。在相同的ES內(nèi),發(fā)送完最后一個MPE段之后立即發(fā)送MPE-FEC段242,但是MPE-FEC段242與MPE段具有不同的表id。使用兩個不同的表id使得接收機(jī)能夠區(qū)別兩種類型的段。MPE-FEC幀的行數(shù)在服務(wù)信息中發(fā)送并且可取256、512、768或1024中的任一值。用于應(yīng)用數(shù)據(jù)表(ADT)的列數(shù)是191,用于RS數(shù)據(jù)表221的列數(shù)是64。將具體突發(fā)的IP數(shù)據(jù)報從左上角起始、垂直地逐列引入ADT中。如果IP數(shù)據(jù)報不能精確地在列的底部結(jié)束,則剩下的字節(jié)繼續(xù)從下一列的頂部起始。如果IP數(shù)據(jù)報不能精確地填滿ADT,則剩下的字節(jié)位置用零填補(bǔ)(零填補(bǔ)217)。在每行上,通過使用里德所羅門碼1(255,191,64),根據(jù)同一行的191個IP數(shù)據(jù)報字節(jié)(和填補(bǔ)字節(jié),如果應(yīng)用的話)計算RS數(shù)據(jù)表221的64個奇偶字節(jié)。MPE段232的頭部231和MPE-FEC段242的頭部241包含4字節(jié)的實時參數(shù)字段,該實時參數(shù)字段包括12比特的起始地址,該起始地址表示相應(yīng)IP數(shù)據(jù)報或RS列的起始位置的字節(jié)號(從ADT表的起始位置計數(shù));18比特的delta_t參數(shù);以及1比特的表邊界標(biāo)記和幀邊界標(biāo)記,以發(fā)出表結(jié)束和幀結(jié)束的信號。圖3是根據(jù)ETSIEN301192和IS0/IEC13818-6中定義的DVB-H傳輸流的MPE段語法。圖4是根據(jù)MPEG-2標(biāo)準(zhǔn)的MPEG-2傳輸流包格式語法。圖5是示出了188字節(jié)的多個傳輸流包500,每個包包括頭部501和有效載荷502。每個頭部501包括八(8)比特同步字節(jié)字段510、一(1)比特傳輸誤差指示符字段511、一(1)比特有效載荷單元起始指示符字段512、一(1)比特傳輸優(yōu)先級字段513、十三(13)比特包識別符字段514、兩⑵比特傳輸加擾控制字段515、兩⑵比特適配字段控制字段516、四(4)比特連續(xù)計數(shù)器字段517和可選的適配字段518。在MPEG-2標(biāo)準(zhǔn)中描述了這些字段中的每一個。下面只描述與本發(fā)明實施方式相關(guān)的字段。同步字節(jié)510具有二進(jìn)制形式〃01000111〃(0x47),并且識別傳輸流(TS)包的起始。有效載荷單元起始指示符(PUSI)字段512指出TS包攜帶新的有效載荷的起始(PUSI="1")或者TS包沒有攜帶新的有效載荷的起始(PUSI="0")。包指示符(PID)字段514指示有效載荷502中攜帶的數(shù)據(jù)的類型。保留特定的PID值。連續(xù)計數(shù)器(CC)字段517對具有相同PID字段514值的連續(xù)TS包進(jìn)行計數(shù)。四比特連續(xù)計數(shù)字段517用于幫助檢測廣播誤差。計數(shù)器通常從0到OxF計數(shù),然后再從0起始。流中具有相同PID的下一個包將具有遞增1的連續(xù)計數(shù)器字段。這樣,連續(xù)計數(shù)器在具有相同PID的所有包內(nèi)以連續(xù)的序列運行。然而,具有不同PID的包的連續(xù)序列是不同的。圖6A示出了根據(jù)本發(fā)明的一個實施方式的修整TS包的方法。該方法包括在識別了TS包的起始之后(例如,在成功地接收到連續(xù)數(shù)量的同步模式之后)解析接收到的TS包500的頭501;以及執(zhí)行包識別符(PID)字段514和連續(xù)計數(shù)器字段517的過濾。該方法還包括比較PID字段514與預(yù)選的PID值,以及校驗CC字段517與影子計數(shù)器(shadowcounter)中的值。預(yù)選的PID值可以是由用戶提供的希望的服務(wù)值。在步驟610處,包處理器執(zhí)行CC字段和PID字段的驗證。在步驟612處,包處理器通過執(zhí)行布爾操作,比較PID字段514與“希望的"PID服務(wù)值,以及比較CC字段517與影子計數(shù)器中的值。包含在存儲器模塊146中的軟件(機(jī)器可讀碼)可執(zhí)行下列指令如果PID字段514與希望的PID服務(wù)值匹配,并且CC字段517不匹配影子計數(shù)器值,那么在步驟614處包處理器會(能夠)用影子計數(shù)器值調(diào)整(修改)CC字段517。CC值的恢復(fù)將在下面進(jìn)行詳細(xì)描述。CC恢復(fù)這是指連續(xù)計數(shù)器值的恢復(fù)。連續(xù)計數(shù)器的行為由下列規(guī)則(除了IS0/IEC13181-1)管理連續(xù)計數(shù)器是4比特字段,與具有相同PID的每個傳輸流包一起遞增。連續(xù)計數(shù)器值在到達(dá)其最大值之后返回到0。當(dāng)包的適配字段控制等于'00'或'10'時,連續(xù)計數(shù)器不增加。·在傳輸流中,重復(fù)包可作為2個并且僅2個具有相同PID的連續(xù)傳輸流包發(fā)送。重復(fù)包將與原始包具有相同的連續(xù)計數(shù)器值,并且適配字段控制字段等于'01'或'11'。在重復(fù)包中,原始包的每個字節(jié)重復(fù),除了在程序時鐘參考字段(如果存在)中之外,對有效值進(jìn)行編碼?!ぎ?dāng)具體傳輸包中的連續(xù)計數(shù)器與具有相同PID的上一傳輸流包中的連續(xù)計數(shù)器值相差一個增量時,或者當(dāng)滿足非遞增條件(適配字段控制被設(shè)置為'00'或'10',或者上述的重復(fù)包)時,具體傳輸包中的連續(xù)計數(shù)器是連續(xù)的。當(dāng)非連續(xù)指示符被設(shè)置為'1'(參考2.4.3.4)時,連續(xù)計數(shù)器可以是不連續(xù)的。在空包的情況下,連續(xù)計數(shù)器的值是未定義的。在步驟616中,PID字段和CC字段可具有下列兩個條件之一(i)如果PID字段514匹配以及CC字段517匹配,那么在步驟690處可將TS包轉(zhuǎn)發(fā)至DVB-H解封裝器;(ii)如果PID字段514不匹配所希望的PID服務(wù)值,以及CC字段517匹配影子計數(shù)器值,那么在步驟618處將(能夠)用希望的PID服務(wù)值調(diào)整PID字段514。PID字段恢復(fù)將在下一部分描述。PID恢復(fù)當(dāng)具有正確連續(xù)計數(shù)器值的包中的PID字段遭到破壞時,這個方案可能恢復(fù)PID值。根據(jù)本發(fā)明的一個實施方式,將接收到的包的連續(xù)計數(shù)器與攜帶IP/MPE流的所有PID的期望的連續(xù)計數(shù)器進(jìn)行比較。如果CC值與一個且僅一個PID的期望CC值匹配,那么PID恢復(fù)方案將接收到的TS包的PID字段校正至具有與之匹配的CC字段的PID。在步驟620處,圖6A中所示的方法還包括解析適配字段控制516。在步驟622處,如果包處理器校驗出PID字段514匹配以及適配字段518具有不規(guī)則長度,那么在步驟624處調(diào)整適配字段。在MPE流中,適配字段通常用于下列目的1)當(dāng)未使用段包裝時,用非協(xié)議數(shù)據(jù)填補(bǔ)TS包。2)當(dāng)MPE段的剩余長度是183時,可使用1字節(jié)的適配字段(在這個TS包中沒有空間來起始新的段)。3)通過多路復(fù)用器發(fā)送某些附加信息。根據(jù)本發(fā)明的一個實施方式,包處理器148對封裝算法執(zhí)行初始訓(xùn)練以確定MPE封裝方案。如果使用沒有適配字段的段包裝,那么除了在滿足條件2)時以外,TS修整程序使用該信息、通過否認(rèn)來校正適配字段控制。0058]在步驟630處,該方法還包括解析PUSI字段512。這是因為被破壞的包可能具有被設(shè)置為錯誤值的PUSI字段。例如,當(dāng)接收到的TS包攜帶新的有效負(fù)載的起始時,PUSI值等于單位值。在步驟632處,驗證這個條件。如果PID字段匹配以及PUSI不匹配,那么執(zhí)行步驟634。否則在步驟636處保留PUSI字段值。在本發(fā)明的一個實施方式中,將PUSI設(shè)置為1的接收到的TS包需要滿足的條件是a)適配字段控制為Oxl或0x3;以及b)TS包有效載荷的長度(184-適配字段)大于當(dāng)前接收的段的剩余長度。如果這些條件中的任一個不滿足,那么將PUSI校正為0。反之,具有段起始的包可能具有被破壞為0的PUSI。在本發(fā)明的一個實施方式中,當(dāng)剩余長度小于有效載荷長度時檢測到這個條件,表id字段緊隨其后。表id是MPE或MPE-FEC段的第一字節(jié)。對于MPE段,表id設(shè)置為0x3E,對于MPE-FEC段,表id設(shè)置為0x78。在步驟640處,圖6B所示的方法進(jìn)一步包括解析指針字段(未示出)。指針字段是PUSI為單位值(="1")的TS包的第一字節(jié)有效載荷字節(jié)。指針字段包含TS包中緊跟在指針字段后面的字節(jié)數(shù)。指針字段的破壞能夠使軟件丟失段頭的蹤跡。因此,為了正確地定位段頭,在步驟642處使指針字段有效。如果PID字段匹配,PUSI為1以及指針字段不等于剩余的段長度,那么將發(fā)現(xiàn)對指針字段的潛在破壞。在步驟644處,指針值能夠用183(十進(jìn)制)與適配字段長度的差值、以及剩余段長度中的最小差值取代。在本發(fā)明的一個實施方式中,如果表id(在MPE段情況下為0x3e,或MPE-FEC段情況下為0x78)有效,那么將指針值校正至剩余段長度值。在步驟650處,圖6B所示的方法進(jìn)一步包括解析有效載荷(未示出)中的表ID字段,以及比較其與有效表ID的預(yù)定設(shè)置(例如,對于PAT為0x00、對于CAT為0x01、對于PMT為0x02、對于NIT為0x40等)。在步驟652處,包處理器確定如果PUSI為1以及指針指示的字節(jié)不是有效的表ID,那么在步驟654處包處理器會調(diào)整表ID字段。在步驟660處,該方法進(jìn)一步包括解析段長度,以及比較段長度與IP長度。段長度表示相關(guān)聯(lián)的IP圖所需的TS包的數(shù)目。MPE段的最大大小為4096字節(jié),從而可封裝多達(dá)4080字節(jié)的IP圖(4096-(12字節(jié)段頭-(4字節(jié)CRC))。在步驟662處,包處理器確定如果段長度不等于IP長度,以及IP頭校驗和有效,那么在步驟664處將段長度調(diào)整至IP長度。否則在步驟666處保留段長度。下面描述段長度的調(diào)整。段長度根據(jù)本發(fā)明的一個實施方式,如下檢測到段長度的破壞1)如果是MPE段,那么可比較IP圖長度與段長度。下面的關(guān)系表示破壞IPLength!=MPELength-13。在破壞的情況下,可按下列方式驗證IPHeaderLength值a.IP頭校驗和如果IP頭校驗和通過,那么假設(shè)MPELength等于IPLength+13;或者b.UDP長度如果IPLength=UDPLength+IPHeaderSize,那么可將MPELength修改為IPLength+13。2)如果是MPE-FEC段,那么表大小(行數(shù))用于驗證段長度字段是否完整。在步驟670處,圖6C所示的方法進(jìn)一步包括解析地址字段,以及比較地址字段與已經(jīng)寫入MPE表中的多個字節(jié)。在步驟672處,包處理器確定如果地址字段與已經(jīng)寫入MPE表內(nèi)的多個字節(jié)不匹配,那么假設(shè)地址字段被破壞并且可基于MPE段的當(dāng)前位置校正地址字段。對于MPE-FEC段,將校正系數(shù)應(yīng)用于計算與應(yīng)用數(shù)據(jù)表的偏移。在步驟680處,該方法進(jìn)一步包括解析表邊界標(biāo)記和幀邊界標(biāo)記。表邊界標(biāo)記通過發(fā)射機(jī)在幀的最后一個MPE段和最后一個MPE-FEC段中設(shè)置為1。幀邊界設(shè)置于幀的最后一個MPE-FEC段中。錯誤的表邊界標(biāo)記和幀邊界標(biāo)記需要被清除。如果具有PUSI標(biāo)記的TS包被破壞,以及有效載荷不對應(yīng)于應(yīng)用數(shù)據(jù)表(ADT)的最后部分或RS數(shù)據(jù)列,那么認(rèn)為標(biāo)記是錯誤的。在步驟681處,如果設(shè)置表邊界標(biāo)記而沒有設(shè)置幀邊界標(biāo)記,那么如果包處理器進(jìn)一步校驗出這個部分的表ID不是MPE段,或者如果下一段的表ID不是MPE-FEC段,那么在步驟683處將表邊界標(biāo)記清零(“0")。如果在步驟681處條件不滿足,那么在步驟685處包處理器將校驗是否設(shè)置了幀邊界標(biāo)記。如果未設(shè)置幀邊界標(biāo)記(即="0"),那么在步驟686處將包轉(zhuǎn)發(fā)至下面的定時接口單元730中,接口單元730被配置為與時間分片模塊730(圖7)交互。如果在步驟685處條件滿足,那么包處理器進(jìn)一步校驗這個段的表ID是否不是MPE-FEC段。如果條件滿足,那么在步驟688處包處理器將表邊界和幀邊界標(biāo)記清零。如果這個段的表ID是MPE-FEC段,那么包處理器進(jìn)一步校驗下一段的表ID是否是MPE-FEC段,以及段地址是否小于MPE-FEC表行數(shù)的64倍乘積。如果條件滿足,那么在步驟690處包處理器將幀邊界標(biāo)記清零,并且將包轉(zhuǎn)發(fā)至下面的時間分片接口用于進(jìn)一步的處理。否則,在步驟691處處理器僅轉(zhuǎn)發(fā)包。下面描述用于修正表邊界標(biāo)記和幀邊界標(biāo)記的示例性偽代碼。表和幀邊界標(biāo)記在步驟680處用于修正壞的表邊界標(biāo)記和幀邊界標(biāo)記的偽代碼如下If(TBL_BDRYissetANDFRM_BDRYisnotset)If(TBLIDofcurrentsectioninnot0x3EORTBL_IDofnextsectionisnot0x78)ClearTBL_BDRYEndlfElseIf(FRM_BDRYisset)If(TBL_IDofcurrentsectionisnot0x78)ClearFRMBDRYElseIf(TBL_IDofnextsectionis0x78ANDNextSectionAddress<=64*NumberofMPE-FECtablerows)ClearTBL_BDRYandFRM_BDRYEndIfEndIf(如果設(shè)置了TBL_BDRY并且未設(shè)置FRM_BDRY如果當(dāng)前段的TBLID不是0x3E或者下一段的TBL_ID不是0x78將TBL_BDRY清零結(jié)束否則如果設(shè)置了FRM_BDRY如果當(dāng)前段的TBL_ID不是0x78將FRM_BDRY清零否則如果下一段的TBL_ID是0x78且下一段地址<=64*MPE-FEC表的行數(shù)將TBL_BDRY和FRM_BDRY清零結(jié)束結(jié)束)圖7是包處理器148的示例性實施方式。包處理器148部分地包括解析模塊710,解析模塊710被配置為解析接收到的TS包的頭以過濾PID字段514。解析器710還識別其它感興趣的預(yù)定字段,例如CC字段517、PUSI字段512、適配字段控制516、適配字段(圖5)的指針字段、地址字段(圖3)、表和幀邊界標(biāo)記(圖3)等。布爾操作器750在接收到的TS包中對感興趣的字段執(zhí)行驗證。在本發(fā)明的一個實施方式中,可通過修改模塊720、基于布爾操作的結(jié)果校正重要的參數(shù),修改模塊720根據(jù)上面描述的規(guī)則調(diào)整(修改)感興趣的字段。包處理器148可進(jìn)一步包括緩沖器740,緩沖器740被配置為臨時存儲修整的TS'包145??蓪噶钋矣糜趫?zhí)行包處理器148的操作(例如,根據(jù)所描述的規(guī)則解析和修改感興趣的字段)的軟件(計算機(jī)程序)存儲在存儲器模塊146中。存儲器模塊146可與包處理器集成或位于處理器外部。包處理器可進(jìn)一步部分地包括時間分片接口模塊730、被配置為臨時存儲修整的TS'包的緩沖模塊740、和被配置為提供用戶接口的多個狀態(tài)和控制寄存器。在本發(fā)明的一個實施方式中,包處理器可以是集成電路(IC)或通過ASIC(專用IC)實現(xiàn)的IC的一部分、以及FPGA(現(xiàn)場可編程門陣列)、結(jié)構(gòu)化門陣列、和/或可以用現(xiàn)有技術(shù)已知的任何方式編程的其它處理器。圖8示出了根據(jù)本發(fā)明的一個實施方式,改進(jìn)的性能與通常DVN-H接收機(jī)之間的仿真結(jié)果。仿真使用具有隨機(jī)字節(jié)誤差的參考TS流。通過如下兩個參數(shù)確定誤差1)包誤碼率(PER)包具有誤差的比率。假設(shè)包誤差是獨立且不相關(guān)的。2)條件字節(jié)誤碼率(CBER)壞包里被破壞的字節(jié)的比例。也假設(shè)字節(jié)誤碼率是不相關(guān)的。仿真參數(shù)是8K模式、QPSK、編碼率1/2、保護(hù)區(qū)間1/4、和多普勒頻率15Hz、65Hz和95Hz??衫斫庾止?jié)誤碼和包誤碼的假設(shè)不是嚴(yán)格有效的,因為突發(fā)噪聲和/或干擾時非??赡墚a(chǎn)生相關(guān)誤差。圖8指出了根據(jù)本發(fā)明的一個實施方式,可在8.6dBC/N、65Hz多普勒頻率下以及在9.4dBC/N、95Hz多普勒頻率下實現(xiàn)小于5%的MFER(MPE_FEC幀誤碼率)。這些(即1.3dB至3.IdB)與通常接收機(jī)的性能要好(即,只滿足MBRAI規(guī)范的實現(xiàn))。盡管參照示例性實施方式描述了本發(fā)明,但是本領(lǐng)域技術(shù)人員將認(rèn)識到各種修改也是可能的。例如,本文描述的方法可通過硬件、軟件和/或其任意組合實現(xiàn)。由此,說明書和附圖是示例性的而不是限制性的。然而,顯然地,可在不背離權(quán)利要求所述的寬泛的精神和范圍的前提下對其進(jìn)行各種修改和改變,本發(fā)明旨在覆蓋權(quán)利要求范圍內(nèi)的所有修改和等同。權(quán)利要求一種在數(shù)字視頻廣播(DVB)系統(tǒng)的接收機(jī)中修整傳輸流(TS)的方法,所述方法包括解析接收到的TS包的頭字段;比較所述接收到的TS的包識別符(PID)字段與所選擇的包識別符(PID)值;比較所述接收到的TS包的連續(xù)計數(shù)器(CC)字段與所期望的CC值;如果所述PID字段匹配而所述CC字段不匹配,那么修改所述接收到的TS包的所述CC字段;如果所述PID字段不匹配而所述CC字段匹配,那么調(diào)整所述PID字段;以及如果所述PID字段匹配且所述CC字段匹配,那么將所述接收到的TS包轉(zhuǎn)發(fā)至處理模塊。2.如權(quán)利要求1所述的方法,其中,所述處理模塊是MPE-FEC解碼器,所述MPE-FEC解碼器被配置為根據(jù)MPEG-2標(biāo)準(zhǔn)處理里德所羅門前向糾錯(FEC)解碼功能。3.如權(quán)利要求1所述的方法,進(jìn)一步包括比較所述接收到的TS包的適配字段控制與預(yù)定的適配字段控制模式;以及如果所述PID字段匹配且所述適配字段控制與所述預(yù)定的適配字段控制模式匹配,那么修改適配字段長度。4.如權(quán)利要求3所述的方法,進(jìn)一步包括校驗所述接收到的TS包的有效載荷單元起始指示符(PUSI)字段;如果所述PID字段匹配且所述PUSI字段等于單位值,那么重置所述PUSI字段;以及如果所述PID字段匹配且所述PUSI字段等于零,那么保留所述PUSI字段。5.如權(quán)利要求4所述的方法,進(jìn)一步包括比較所述接收到的TS包的指針字段與所期望的指針值;如果所述PID字段匹配,所述PUSI等于單位值且所述指針字段不匹配,那么將所述指針字段設(shè)置為最小長度值;以及如果所述PUSI字段等于單位值并且由所述指針字段指示的字節(jié)不是有效的表ID,那么修改表ID字段。6.如權(quán)利要求5所述的方法,其中,所述最小長度值是剩余的段長度值和十進(jìn)制183減去適配字段長度的結(jié)果中的最小值。7.如權(quán)利要求5所述的方法,進(jìn)一步包括比較所述接收到的TS包的段長度值與IP長度值;校驗IP校驗和的有效性;如果所述段長度值與所述IP長度值不匹配且所述IP頭校驗和有效,那么將所述段長度值修改至所述IP長度值;以及如果所述段長度值與所述IP長度值匹配且所述IP校驗和有效,那么保留所述段長度值。8.如權(quán)利要求7所述的方法,進(jìn)一步包括比較所述接收到的TS包的地址字段與預(yù)定的地址值;如果地址字段不匹配所述預(yù)定的地址值,那么基于段的當(dāng)前位置修改所述地址字段;以及修改表邊界標(biāo)記和/或幀邊界標(biāo)記。9.一種用于修整多個接收到的傳輸流包的裝置,所述裝置包括接口模塊,被配置為根據(jù)所選擇的服務(wù),接收多個傳輸流(TS)包;包處理器,具有解析器和布爾邏輯單元,所述解析器被配置為解析所述多個接收到的傳輸流包中的每一個的包頭,所述布爾邏輯單元被配置為邏輯比較所述接收到的傳輸流包中的一組模式與多個預(yù)定值;以及存儲器模塊,被配置為存儲軟件,所述軟件包含用于所述包處理器的程序代碼。10.如權(quán)利要求9所述的方法,其中,所述多個預(yù)定值是二進(jìn)制值。11.如權(quán)利要求9所述的裝置,其中,所述一組模式是在接收到的傳輸流包中的相鄰的或者物理上分離的單個比特和比特組。12.如權(quán)利要求9所述的裝置,其中,所述包處理器對封裝在所述包頭中的包識別符(PID)字段和連續(xù)計數(shù)器(CC)字段進(jìn)行解析。13.如權(quán)利要求9所述的裝置,其中,所述程序代碼包括算法,所述算法適于與所述包處理器一起操作以基于從所述PID字段和所述CC字段的布爾操作獲得的結(jié)果進(jìn)行CC恢復(fù)和PID恢復(fù)。14.如權(quán)利要求9所述的裝置,其中,所述包處理器進(jìn)一步包括被配置為跟蹤C(jī)C值的影子計數(shù)器。15.如權(quán)利要求14所述的裝置,其中,所述影子計數(shù)器是4位模16計數(shù)器。16.如權(quán)利要求14所述的裝置,其中,所述包處理器進(jìn)一步解析適配字段控制比特;如果所述PID值匹配且所述適配字段控制比特等于單位值,那么調(diào)整適配字段長度。17.如權(quán)利要求16所述的裝置,其中,所述包處理器進(jìn)一步解析有效載荷起始指示符(PUSI)值;比較所述PUSI值與所期望的PUSI值;如果所述PID值匹配以及所述PUSI值與所期望的PUSI值不匹配,那么將所述PUSI值重置為0;以及如果所述PID值匹配以及所述PUSI值與所期望的PUSI值匹配,那么保留所述PUSI值。18.如權(quán)利要求17所述的裝置,其中,所述包處理器解析指針字段值;比較所述指針閾值與預(yù)定的指針值;將所述指針字段值設(shè)置為剩余段長度值和十進(jìn)制183減去所述適配字段長度的結(jié)果中的最小值。19.如權(quán)利要求18所述的裝置,其中,如果所述PUSI值等于單位值且所述指針字段值不是有效的表ID,那么所述包處理器進(jìn)一步調(diào)整表ID字段。20.如權(quán)利要求19所述的裝置,其中,所述包處理器進(jìn)一步執(zhí)行解析段長度值;通過比較所述段長度值與預(yù)定的長度值,使所述段長度值有效;如果所述段長度值不匹配所述預(yù)定的長度值,那么將所述段長度值調(diào)整至所述和;以及如果所述段長度值匹配所述預(yù)定的長度值,那么保留所述段長度值。21.如權(quán)利要求20所述的裝置,其中,所述預(yù)定的長度值是IP長度和常量之和。22.如權(quán)利要求21所述的裝置,其中,所述常量是十進(jìn)制13。23.如權(quán)利要求20所述的裝置,其中,所述包處理器進(jìn)一步執(zhí)行解析地址字段;比較所述地址字段與預(yù)定的地址值;以及如果所述地址字段不匹配所述預(yù)定的地址值,那么基于段的當(dāng)前位置調(diào)整所述地址字段。24.如權(quán)利要求20所述的裝置,其中,所述包處理器進(jìn)一步執(zhí)行解析表邊界標(biāo)記和幀邊界標(biāo)記;校驗所述表邊界標(biāo)記和所述幀邊界標(biāo)記的有效性;如果所述PUSI等于單位值且有效載荷不對應(yīng)于應(yīng)用數(shù)據(jù)表的最后部分,那么校正所述表邊界標(biāo)記和所述幀邊界標(biāo)記;以及調(diào)整表邊界和幀邊界。全文摘要修整接收到的數(shù)據(jù)包以改進(jìn)數(shù)字視頻廣播系統(tǒng)的MPEG-2傳輸流包的性能。應(yīng)用多種交叉校驗技術(shù)以確保按需校正至關(guān)重要的信息塊,例如,包識別符(PID)字段、連續(xù)計數(shù)器(CC)字段、表ID、段長度、IP頭校驗和、表和幀邊界、應(yīng)用數(shù)據(jù)表大小。文檔編號H04N5/445GK101904168SQ200880102373公開日2010年12月1日申請日期2008年8月8日優(yōu)先權(quán)日2007年8月8日發(fā)明者姜錫鳳,斯瑞德哈·拉梅什,李秉澤申請人:邁凌有限公司