TWI387269B - 封包處理裝置和封包處理方法 - Google Patents
封包處理裝置和封包處理方法 Download PDFInfo
- Publication number
- TWI387269B TWI387269B TW098143891A TW98143891A TWI387269B TW I387269 B TWI387269 B TW I387269B TW 098143891 A TW098143891 A TW 098143891A TW 98143891 A TW98143891 A TW 98143891A TW I387269 B TWI387269 B TW I387269B
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- error check
- data
- packets
- specific
- Prior art date
Links
- 238000012545 processing Methods 0.000 title claims abstract description 119
- 238000003672 processing method Methods 0.000 title claims description 23
- 239000000463 material Substances 0.000 claims description 29
- 238000000034 method Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 22
- 230000000873 masking effect Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000013461 design Methods 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000007781 pre-processing Methods 0.000 description 5
- 230000003750 conditioning effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000015654 memory Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000001824 photoionisation detection Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
- H04N21/2389—Multiplex stream processing, e.g. multiplex stream encrypting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/23608—Remultiplexing multiplex streams, e.g. involving modifying time stamps or remapping the packet identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/236—Assembling of a multiplex stream, e.g. transport stream, by combining a video stream with other content or additional data, e.g. inserting a URL [Uniform Resource Locator] into a video stream, multiplexing software data into a video stream; Remultiplexing of multiplex streams; Insertion of stuffing bits into the multiplex stream, e.g. to obtain a constant bit-rate; Assembling of a packetised elementary stream
- H04N21/2362—Generation or processing of Service Information [SI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/426—Internal components of the client ; Characteristics thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/434—Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/438—Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
- H04N21/4385—Multiplex stream processing, e.g. multiplex stream decrypting
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
本發明所揭示的實施例有關於封包處理,更具體的,有關於封包處理裝置和封包處理方法。
相比於利用類比信號承載音頻與視頻資訊的類比電視系統,數位電視(DTV)系統利用數位信號傳送並且接收音頻與視頻資訊。例如,在發射器端,首先將要傳送的音頻與視頻資訊打包(packetize)為傳輸(Transport Stream,TS)流封包,接著,TS流封包經過調變經由廣播技術(broadcasting techniques)進行發射。接收器端需要解調模塊,解調模塊用於解調由調諧器和天線接收的已調變輸入信號,以從已調變輸入信號中複製TS流封包;在解調模塊之後,接收端還需要解多工模塊對封包進行識別和解多工處理,以將分別對應於視頻封包、音頻封包、節目及系統資訊協議(Program and System Information Protocol,PSIP)封包的視頻資訊、音頻資訊、PSIP資訊儲存在各自的儲存空間。接著,所需的視頻資訊、音頻資訊和PSIP資訊將被擷取以供進一步處理。
在傳統設計中,所接收的全部封包解多工後進行儲存。但是,解多工並儲存的特定封包可能承載了後續信號處理級所不需要的資訊,這不可避免的加重了後續資料處理級的封包處理負擔。
有鑒於此,本發明提供一種封包處理裝置和封包處理方法。
本發明提供一種封包處理裝置,包含:一封包識別單元,用於接收多個封包,並檢查從已接收封包中導出的識別資訊和資料長度資訊,以識別已接收封包中的多個第一封包;以及一封包調整單元,耦接於該封包識別單元,用於檢查該多個第一封包以識別該多個第一封包中的多個第二封包,其中,該多個第二封包中每個的資訊載量中具有特定資料,該封包調整單元還用於對每個該第二封包中的至少該資訊載量進行調整。
本發明提供一種封包處理方法,用於一封包處理裝置中,包含:接收多個封包,並檢查從已接收封包中導出的識別資訊和資料長度資訊,以識別已接收封包中的多個第一封包;檢查該多個第一封包以識別該多個第一封包中的多個第二封包,其中,該多個第二封包中每個的資訊載量中具有特定資料;以及對每個該第二封包中的至少該資訊載量進行調整。
本發明提供的封包處理裝置和封包處理方法減輕了後續資料處理級的封包處理負擔。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包括」和「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。以外,「耦接」一詞在此係包含任何直接及間接的電性連接手段。間接的電性連接手段包括透過其他裝置進行連接。
本發明的概念是檢查從已接收封包(例如符合ATSC標準的TS流封包)中導出的識別資訊,以識別每一個在資訊載量(payload)中包含所需表區段資料的特定封包,例如任何一個資訊載量承載了虛擬頻道表(Virtual Channel Table,VCT)區段資料的PSIP封包;然後檢查特定封包的資訊載量,以識別出每一個具有所需表區段特定資料的特定封包;接著,調整每一個已識別特定封包的資訊載量,以對不需要的資訊進行預處理。由於事先對已識別特定封包傳送的不需要的資訊進行處理,因此後續資料處理級的封包處理負擔可有效減輕。特別地,對於特定的封包,只有當特定封包的所有資料已經過調整成為對應的已調整封包的資料時,才將每一個特定封包的資料都儲存在儲存裝置中。換言之,較佳地,已識別的特定封包的資料在進入儲存裝置緩衝之前已經過調整。為清楚起見,以下揭露本發明的特定示範實施例。
第1圖是根據本發明第一示範實施例的封包處理裝置的模塊示意圖。封包處理裝置100包括封包識別單元102、封包調整單元104和儲存模組106。封包識別單元102接收多個封包P_IN,並檢查從已接收封包P_IN導出的識別資訊,以從已接收封包P_IN中識別多個第一封包P_1。舉例而言(本發明並不以此為限),每個第一封包P_1具有相同的封包識別碼(Packet IDentifier,PID)值。封包識別單元102將已識別第一封包P_1傳送至後續的封包調整單元104,並將已接收封包P_IN中的其餘封包P_3儲存在儲存模組106。換言之,本實施例中封包識別單元102的輸出是封包格式的。封包調整單元104耦接於封包識別單元102,用於從封包識別單元102識別出的第一封包P_1中再識別第二封包P_2,其中,每個第二封包P_2的資訊載量都包含待處理的特定資料。接著,封包調整單元104至少調整每個已識別第二封包P_2的資訊載量,以產生已調整封包,並將已調整封包的資料D_2儲存在儲存模組106。未識別為第二封包P_2的剩餘第一封包P_1的資料D_1則不應用任何調整,直接儲存在儲存模組106。簡而言之,最終,透過封包識別單元102和封包調整單元104的合作,所有承載不需要的資訊的封包都將識別為前述的第二封包P_2。
請注意,取決於設計要求,封包調整單元104的輸出可能是打包格式或者拆包(de-packetized)結果。例如,在一個示範實施中,封包調整單元104調整每個第二封包P_2的資訊載量以產生已調整封包,並將對應於第二封包P_2的已調整封包分別儲存在儲存模組106中的封包緩衝器;此外,封包調整單元104將未識別為第二封包P_2的剩餘第一封包P_1傳遞至儲存模組106中的封包緩衝器。封包調整單元104產生的已調整/未調整封包會在後續資料處理級中進一步處理。在另一示範實施中,封包調整單元104調整每個第二封包P_2的資訊載量,以產生具有已調整資訊載量的已調整封包,並將分別對應於第二封包P_2的已調整資訊載量儲存在儲存模組106中;此外,封包調整單元104將未識別為第二封包P_2的剩餘第一封包P_1的資訊載量儲存至儲存模組106中。因此,封包調整單元104產生的已調整/未調整封包的拆包結果(即已調整/未調整封包導出的資訊載量)將在後續資料處理級處理。簡而言之,本發明不限制封包調整單元104所產生輸出的格式;實際上,所有識別每一個資訊載量承載所需資料的特定封包、然後改變已識別特定封包的資訊載量内容的封包處理機制均落入本發明的範圍。
儲存模組106可用任何資料儲存元件來實現。例如,儲存模組106可以是具有多個儲存區域的單一記憶體(緩衝器),多個儲存區域分別用於儲存來自封包識別單元102、封包調整單元104的不同類型的封包;或者,儲存模組106可以是多個單獨記憶體(緩衝器)的組合,各記憶體分別分配給來自封包識別單元102、封包調整單元104的不同類型的封包。例如(本發明並不以此為限),對於經封包識別單元102和封包調整單元104合作已接收且已識別的第二封包P_2的資料,除非所有資料已經過封包調整單元104的調整,否則不將所有資料儲存在儲存模組106中。
為更清楚的描述第1圖所示示範實施例的技術特點,以下用MPEG兼容封包(例如符合ATSC標準的TS流封包)作為例子。封包識別單元102能夠識別資訊載量承載VCT區段資料的任何PSIP封包。請一併參考第2、3圖。第2圖是以封包格式展示TS流層級結構的示意圖,第3圖是以封包内容展示TS流層級結構的示意圖。從以上兩圖可見,每個TS流封包包括標頭和資訊載量。請注意,標頭包含PID值以指示封包類型。TS流封包的資訊載量可形成封包基本流(Packet Elementary Stream,PES)封包和表區段。例如,PES封包的資訊載量可用於傳送視頻資料、音頻資料等,表區段的資訊載量可用於傳送服務資訊(Service Information,SI)表、PSIP表、節目特定資訊(Program Specific Information,PSI)等。另外,PES封包的資訊載量將形成多個基本流(ES),例如視頻ES、音頻ES和資料ES。基於符合ATSC標準的TS層級結構,封包識別單元102能夠識別資訊載量承載VCT區段資料的PSIP封包,封包調整單元104能夠識別資訊載量承載VCT區段描述符(descriptor)資料的PSIP封包,描述符可以是服務位置描述符(Service Location Descriptor,SLD)等。舉例而言,封包識別單元102接收多個TS流封包(例如P_IN),並將所接收TS流封包的PID值與所儲存的預設識別值作比較。在一種情況中,TS流封包的PID值與預設識別值的比較結果指示TS流封包是視頻封包或音頻封包,已識別視頻/音頻封包(例如P_3)就儲存在儲存模組106中的封包緩衝器。在另一情況中,TS流封包的PID值與預設識別值的比較結果指示TS流封包是PSIP封包,則封包識別單元102檢查該PSIP封包的資訊載量是否包含所需表區段的資料。例如,若PSIP封包的資訊載量包括一個表區段的表ID,封包識別單元102則擷取表ID以確定相應的表區段是否為所需表區段,例如VCT區段。通常,每個表區段具有指定的區段長度。因此,用表ID識別出所需表區段後,從所需表區段擷取區段長度資訊即可了解所需表區段的資料量。基於所需表區段的資料長度,封包識別單元102可以了解後續封包是否包含所需表區段的資料。換言之,獲得所需表區段的區段長度後,透過對所傳送資料的位元/位元組計數,即可輕易的識別出資訊載量承載所需表區段資料的封包。第4圖展示VCT區段的位元流語法。如第4圖所示,表ID 402指示該表區段為VCT區段,區段長度403指示VCT區段的資料量,VCT區段的資訊載量包含一個或多個描述符404,其中一個描述符404可以是SLD。此外在VCT區段的末尾還包含32位元的循環冗餘校驗(CRC)碼406,用於驗證VCT區段的資料正確性。
如上所述,封包識別單元102檢查已接收封包P_IN的PID值。因此,封包識別單元102也可具有傳統PID篩選器的功能,也就是識別每個已接收封包的封包類型,並向後續的封包解多工模塊提供索引值以幫助封包解多工運作。
當PSIP封包的資訊載量包含所需表區段(例如VCT區段)的資料時,PSIP封包被識別為前述的第一封包P_1。在改變封包識別單元102所識別的PSIP封包之前,封包調整單元104需要先確定PSIP封包的資訊載量是否包含所需表區段的特定資料(例如描述符資料)。舉例而言(本發明不以此為限),封包調整單元104能夠搜尋任何資訊載量承載SLD資料的PSIP封包。第5圖展示SLD的位元流語法。如第5圖所示,描述符標籤502指示描述符是SLD。因此,封包調整單元104檢查VCT區段中描述符的描述符標籤來了解是否為所需描述符(例如SLD)。當發現PSIP封包的資訊載量包含SLD資料時,封包調整單元104將該PSIP封包歸類為前述的第二封包P_2。當PSIP封包的資訊載量不含SLD資料時,封包調整單元104將PSIP封包的資料D_1(也就是第一封包P_1中未識別為第二封包P_2的部分)存入儲存模組106。
請注意,表區段是由多個TS流封包的資訊載量形成的,表區段的描述符資料可存在於對應於該表區段的一些TS流封包的資訊載量中。因此,封包調整單元104實施為從第一封包P_1中選擇第二封包P_2,其中,第一封包P_1中每個的資訊載量承載所需表區段的資料,第二封包P_2中每個的資訊載量承載所需描述符資料(例如SLD資料)。在一種示範實施中,封包調整單元104配置為透過丟棄至少一個特定描述符的資料來調整每個第二封包P_2的資訊載量。或者,封包調整單元104也可透過將至少一個特定描述符的資料替換為作為掩蔽(mask)的預設資料樣式(例如0x00),來調整每個第二封包P_2的資訊載量。
通常,SLD資料包含節目對映資訊;但也可從TS流傳送的其他表中導出節目對映資訊。例如,根據MPEG標準,對於每個實體頻道,也經由TS流傳送節目關聯表(Program Association Table,PAT)。PAT列出透過相應實體頻道傳送的TS流中可用的所有節目,且列出的每個節目以節目號碼來識別。此外,PAT中列出的每個節目具有用在節目對映表(Program Map Table,PMT)中的一個PID值的關聯值,PMT描述哪些PID包含與所需節目有關的資料。即使TS流中找不到SLD資料,仍可透過從PMT等表中導出的資訊來獲得虛擬頻道號碼和節目號碼間的所需對映關係。簡而言之,由於節目對映資訊可從TS流傳輸的其他表中導出,VCT區段的SLD資料可視為不需要的資訊。請注意,前述的SLD資訊可丟棄或掩蔽只是本發明的一個舉例。取決於設計需求,經PSIP封包傳送的VCT區段的其他描述符也可丟棄或掩蔽。例如,在一種示範設計中,在所需表區段中找到的所有描述符均可丟棄或掩蔽。以上設計均符合本發明之精神。
依據上述可知,封包調整單元104對透過PSIP封包資訊載量傳送的偵測到的描述符進行預處理(丟棄或掩蔽),以有效減輕後續資料處理級(例如解多工模塊)的封包處理負擔。當用預設資料樣式(例如0x00)掩蔽不需要的資訊時,由於二進制位元的轉變(transition)頻率較低,可有效減少電力消耗。當丟棄不需要的資訊時,由於資料量變少,可有效減少緩衝暫存的大小。
請注意,從來源封包P_IN中識別第一封包P_1進而識別第二封包P_2的方式不限於檢查PID值、表ID、區段長度和/或描述符標籤。只要某種方式能夠識別每一個資訊載量承載所需表區段資料的特定封包,然後檢查特定封包的資訊載量以識別具有所需表區段特定資料的每個特定封包,則封包處理裝置100就可以採用該方式。
請一併參考參考第6、7圖。第6圖是根據本發明第一示範實施例的封包處理方式的流程圖。第7圖展示第6圖的延續流程。在結果實質上相同的條件下,不要求精確按照第6、7圖所示的順序實施各步驟。此示範實施例的方法由第1圖所示的封包處理裝置100採用。本發明的示範方法包括以下步驟:步驟600:開始。
步驟602:接收之前的資料處理級(例如解調模塊)產生的TS流,其中TS流連續傳送多個封包(即TS流封包)。
步驟604:對TS流實施封包標頭偵測,以識別TS流傳送的來源封包。
步驟606:檢查來源封包的PID值,以確定來源封包是否為特定封包(例如PSIP封包)。若是(圖中標示為“Yes”,下同)則進行至步驟610;否則(圖中標示為“No”,下同)進行至步驟608。
步驟608:不應用任何調整而直接儲存封包,接著進行至步驟604以識別TS流傳送的下一個來源封包。
步驟610:檢查特定封包資訊載量的起始資料是否包括一個尚未成功擷取區段長度的新表區段的資訊。若是,則進行至步驟612;否則進行至步驟614。
步驟612:檢查是否從該特定封包中成功導出新表區段的區段長度。若是,則進行至步驟613;否則進行至步驟615。
步驟613:獲得新表區段的區段長度。例如,新表區段的區段長度可透過處理一個特定封包中的表區段資料來導出,也可以透過處理分別包含在不同封包中的表區段資料和延續表區段資料來導出。進行至步驟616。
步驟614:還原(restore)之前處理的表區段的剩餘部分的區段長度,接著進行至步驟616。
步驟615:對獲得區段長度所必需的表區段資料進行備份(backup),並進行至步驟604。
步驟616:檢查區段長度是否小於等於特定封包未處理部分的大小,其中,取決於特定封包的實際處理狀態,特定封包的未處理部分可包括特定封包的全部或者部分資料。若檢查結果為是,則進行至步驟628;否則就進行至步驟618。
步驟618:檢查特定封包的未處理部分是否承載所需表區段(例如VCT區段)的資料。若是則進行至步驟620;否則進行至步驟619。
步驟619:不應用任何調整而直接儲存特定封包未處理部分的資料,接著進行至步驟626。
步驟620:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟622;否則進行至步驟619。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料,例如SLD資料。
步驟622:至少調整特定封包未處理部分的資料,以產生對應於該特定封包的已調整封包的已調整部分。例如,相應的已調整封包的已調整部分可透過丟棄或掩蔽所需表區段的一個或多個描述符資料來產生,接著進行至步驟624。
步驟624:儲存已調整封包的已調整部分的資料,接著進行至步驟626。
步驟626:將當前處理表區段的剩餘部分的區段長度進行備份,接著進行至步驟604,以識別TS流傳送的下一個來源封包。
步驟628:檢查區段長度的資料是否包括所需表區段的資料。若是則進行至步驟632;否則進行至步驟630。
步驟630:不應用任何調整而直接儲存區段長度的資料,接著進行至步驟612,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
步驟632:檢查區段長度的資料是否包括所需表區段的特定資料。若是則進行至步驟634;否則進行至步驟630。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料。
步驟634:至少調整區段長度的資料以產生對應於特定封包的已調整封包的已調整資料。例如,已調整資料可透過丟棄或掩蔽所需表區段的一或多個描述符資料來產生。
步驟636:儲存已調整封包的已調整資料,接著進行至步驟612,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
由於一個表區段的資料可能經由TS流的一或多個封包來傳送,可以參考表區段的區段長度來識別表區段的末尾,以輔助表區段的資料處理。例如,封包識別單元102、封包調整單元104透過參考所需表區段的區段長度,可輕易得知輸入資料是否為所需表區段的末尾。此外,若發現之前已識別特定封包的資訊載量承載了所需表區段的資料,可以檢查從所需表區段資料中導出的區段長度參數,以了解當前識別的特定封包資訊載量是否承載所需表區段的延續資料。換言之,區段長度可為封包識別單元102提供有用資訊。因此,對於透過多於一個封包傳送的所需表區段的資料,封包識別單元102除檢查表ID之外還可參考區段長度,以了解已識別特定封包的資訊載量是否承載所需表區段的資料。因此可執行步驟610、612、614、616,以確定已識別特定封包(例如PSIP封包)是承載多於一個表區段的資料還是只承載單一表區段的部分資料,以相應執行恰當的資料處理流程。此外,允許執行步驟626即暗示尚未到達當前處理表區段的末尾,則更新區段長度以記錄表區段剩餘部分的大小,以輔助同一表區段的後續資料處理。
為更清楚的描述與使用區段長度相關的技術特徵,稍後會討論幾種示例情形。情形一中,已識別特定封包的資訊載量的初始資料是一個新表區段的起始,且已識別特定封包的資訊載量只包括新表區段的部分資料(即表區段的資料是透過多個TS流封包來傳送),步驟613獲得新表區段的區段長度(新表區段從當前已識別特定封包資訊載量的起始開始),由於步驟616將確定新表區段的區段長度大於當前已識別特定封包未處理部分的大小(也就是當前已識別特定封包的封包大小),會執行步驟618。
情形二中,已識別特定封包資訊載量的初始資料是一個新表區段的起始,且已識別特定封包的資訊載量包括多於一個表區段的資料,步驟613獲得新表區段的區段長度(新表區段從當前已識別特定封包資訊載量的起始開始),由於步驟616將確定新表區段的區段長度不大於當前已識別特定封包的未處理部分的大小(也就是當前已識別特定封包的原始封包大小),會執行步驟628;此外,處理完第一個表區段之後,流程回到步驟612以導出第一個表區段的下一表區段的區段長度,其中,已識別特定封包未處理部分的大小這時等於已識別特定封包的原始封包大小減去已處理表區段的區段長度。由於本領域習知技藝者閱讀以上描述後可輕易理解後續資料處理流程,此處為簡潔省略更多細節。
情形三中,已識別特定封包的資訊載量的初始資料不是新表區段的開始(也就是說,表區段資料由多個TS流封包傳送,且當前識別特定封包的資訊載量的起始是表區段的延續資料),且已識別特定封包的資訊載量只包含表區段的部分資料,步驟614還原之前處理表區段剩餘部分的區段長度,由於步驟616將確定區段長度(記錄之前處理的表區段的剩餘部分的大小)大於當前已識別特定封包的未處理部分的大小(也就是當前已識別特定封包的原始封包大小),會執行步驟618。
情形四中,已識別特定封包資訊載量的初始資料不是新表區段的開始(也就是說,表區段資料由多個TS流封包傳送,且當前識別的特定封包的資訊載量起始是表區段的延續資料),且已識別特定封包的資訊載量包含多於一個表區段的資料,步驟614還原之前處理表區段剩餘部分的區段長度,由於步驟616將確定區段長度(記錄之前處理的表區段的剩餘部分的大小)不大於當前已識別特定封包的未處理部分的大小(也就是當前已識別特定封包的原始封包大小),會執行步驟628;此外,處理完第一個表區段之後,流程回到步驟612以導出第一個表區段的下一表區段的區段長度,其中,已識別特定封包未處理部分的大小這時等於已識別特定封包的原始封包大小減去之前處理的表區段剩餘部分的區段長度。由於本領域習知技藝者閱讀以上描述後可輕易理解後續資料處理流程,此處為簡潔省略更多細節。
簡而言之,無論特定封包(例如PSIP封包)的資訊載量承載表區段的全部資料或是部分資料,第6、7圖所示的流程均可調整傳送所需表區段特定資料(例如VCT區段的SLD資料)的每個特定封包的資訊載量,以達到對不需要的資訊進行預處理的目的。
請注意,第6、7圖所示的流程是用來處理TS流。因此,第6、7圖所示的流程會檢查來源資料,從而處理封包處理裝置100接收的每個封包。本領域習知技藝者閲讀前文段落對第1圖所示的封包處理裝置100的描述以及第6、7圖所示流程後可輕易理解第6、7圖各步驟的運作,此處為簡潔起見省略進一步的描述。
在以上示範實施例中,封包調整單元104調整每個第二封包P_2的資訊載量以產生相應的已調整封包。換言之,封包調整單元104產生的已調整封包的資訊載量内容不同於相應的第二封包P_2的資訊載量内容。在第二封包P_2包括錯誤檢查碼(例如CRC碼)以驗證資料正確性時,為保持使用CRC碼用於資料正確性驗證的好處,應當對第二封包P_2而非對已調整封包應用錯誤檢查;否則預期的錯誤檢查功能可能不能恰當工作。以下提出了支援錯誤檢查功能的示範封包處理裝置。
請參考第8圖,第8圖是根據本發明第二示範實施例的封包處理裝置的模塊示意圖。封包處理裝置700包括封包識別單元702、封包調整單元704、儲存模組706和錯誤檢查碼處理單元708。由於封包識別單元702、儲存模組706的運作及功能與第1圖所示的封包識別單元102、儲存模組106相同,此處為簡潔省略了進一步描述。錯誤檢查碼處理單元708用於參考特定表區段(特定表區段是一個特定資料區段)的原始錯誤檢查碼以對特定表區段實施錯誤檢查(例如CRC),然後產生對特定表區段實施錯誤檢查的錯誤檢查結果(圖中標示為“CR”),其中,該特定表區段的資料是經封包識別單元702識別的第一封包P_1傳送的資料。錯誤檢查結果指示特定表區段的資料正確性。換言之,錯誤檢查結果是相應於對特定表區段應用的錯誤檢查而產生的,其中,該特定表區段從第一封包P_1的資料載量中導出,該第一封包P_1由封包識別單元702識別。
封包調整單元704耦接至封包識別單元702和錯誤檢查碼處理單元708,封包調整單元704用於產生未調整封包資料D_1和已調整封包資料D_2’至儲存模組706。在此示範實施例中,封包調整單元704至少調整每個特定第二封包P_2的資訊載量,以產生相應的已調整封包,接著將已調整封包的資料儲存至儲存模組706;此外,封包調整單元704也配置為透過以錯誤檢查結果替換原始錯誤檢查碼來產生已調整封包,其中,原始錯誤檢查碼是透過對應於特定表區段的至少一個第一封包P_1傳送的,錯誤檢查結果是從對特定表區段實施錯誤檢查來導出的。請注意,第一封包P_1可能包括特定資料以及原始錯誤檢查碼,且上述第一封包中的已調整封包會將特定資料丟棄或掩蔽,錯誤檢查結果將替換原始錯誤檢查碼。這也符合本發明之精神。透過參考封包處理裝置700產生的已調整的特定表區段的錯誤檢查結果,後續資料處理級無需對已調整的特定表區段實施錯誤檢查,即可輕易且直接的了解已調整特定表區段的錯誤檢查狀態。
本領域習知技藝者閱讀前文關於封包處理裝置100的段落後可輕易理解,本實施例中的封包識別單元702的輸出是封包格式的,封包調整單元704的輸出可以是拆包結果或者封包格式,取決於設計需求。此處為簡潔省略進一步描述。
為更清楚的描述第8圖所示的示範實施例的技術特點,以下用符合ATSC標準的TS流封包作為舉例。封包識別單元702識別任何資訊載量承載VCT區段資料的PSIP封包。錯誤檢查碼處理單元708實施為用於處理VCT區段的CRC碼。也就是說,錯誤檢查碼處理單元708根據VCT區段末尾的原始32位元CRC碼來對VCT區段實施CRC,接著獲得對VCT區段實施CRC的錯誤檢查結果。封包調整單元704偵測包括VCT區段的至少一特定描述符的特定資料。在一個示範實施中,封包調整單元704透過丟棄至少一特定描述符的資料(例如SLD資料)來調整每個第二封包P_2的資訊載量。在另一實施中,封包調整單元704利用作為掩蔽的預設資料樣式(例如0x00)替換至少一特定描述符的資料(例如SLD資料),來調整每個第二封包P_2的資訊載量。另外,封包調整單元704進一步用錯誤檢查結果替換對應於VCT區段的經由PSIP封包傳送的原始32位元CRC碼。由此保持了CRC的準確度。
請一併參考第9、10圖。第9圖是根據本發明第二示範實施例的封包處理方法的流程圖。第10圖是第9圖的延續流程。在結果實質上相同的條件下,不要求精確按照第9、10圖所示的順序實施各步驟。此示範實施例的方法由第8圖所示的封包處理裝置700採用。本發明的示範方法包括以下步驟:步驟800:開始。
步驟802:接收之前的資料處理級(例如解調模塊)產生的TS流,其中TS流連續傳送多個封包(即TS流封包)。
步驟804:對TS流實施封包標頭偵測,以識別TS流傳送的一個來源封包。進行至步驟806。
步驟806:檢查來源封包的PID值,以確定來源封包是否為特定封包(例如PSIP封包)。若是則進行至步驟810;否則進行至步驟808。
步驟808:不應用任何調整而直接儲存封包,接著進行至步驟804以識別TS流傳送的下一個來源封包。
步驟810:檢查特定封包資訊載量的起始資料是否包括尚未成功擷取區段長度的一個新表區段的資訊。若是則進行至步驟812;否則進行至步驟814。
步驟812:檢查是否能從該特定封包中成功導出新表區段的區段長度。若是,則進行至步驟813;否則進行至步驟815。
步驟813:獲得新表區段的區段長度。例如,新表區段的區段長度可透過處理一個特定封包中的表區段資料來導出,也可以透過處理分別包含在不同封包中的表區段資料和延續表區段資料來導出。進行至步驟816。
步驟814:還原之前處理的表區段的剩餘部分的區段長度,並還原對之前處理的表區段部分資料實施錯誤檢查所導出的部分錯誤檢查結果,接著進行至步驟816。
步驟815:對獲得區段長度所必需的表區段資料進行備份,並進行至步驟804。
步驟816:檢查區段長度是否小於等於特定封包未處理部分的大小,其中,取決於特定封包的實際處理狀態,特定封包的未處理部分可包括特定封包的全部或者部分資料。若檢查結果為是,則進行至步驟830;否則就進行至步驟817。
步驟817:檢查特定封包的未處理部分是否承載所需表區段(例如VCT區段)的資料。若是則進行至步驟821;否則進行至步驟818。
步驟818:對特定封包未處理部分的資料實施錯誤檢查,以導出部分錯誤檢查結果。進行至步驟819。
步驟819:不應用任何調整而直接儲存特定封包未處理部分的資料,接著進行至步驟820。
步驟820:將當前處理表區段的剩餘部分的區段長度和部分錯誤檢查結果進行備份,接著進行至步驟804,以識別TS流傳送的下一個來源封包。
步驟821:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟822;否則進行至步驟818。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料,例如SLD資料。
步驟822:對特定封包未處理部分的資料實施錯誤檢查,以導出部分錯誤檢查結果。進行至步驟824。
步驟824:調整特定封包未處理部分的資料,以產生對應於該特定封包的已調整封包的已調整部分。例如,相應的已調整封包的已調整部分可透過丟棄或掩蔽所需表區段的一個或多個描述符資料來產生,接著進行至步驟826。
步驟826:儲存已調整封包的已調整部分的資料,接著進行至步驟820。
步驟830:檢查區段長度的資料是否包括所需表區段的資料。若是則進行至步驟834;否則進行至步驟832。
步驟832:不應用任何調整而直接儲存區段長度的資料,接著進行至步驟812,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
步驟834:參考部分錯誤檢查結果並對特定封包未處理部分的資料實施錯誤檢查,以導出最終錯誤檢查結果。進行至步驟836。
步驟836:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟838;否則進行至步驟840。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料。
步驟838:透過調整區段長度的特定資料(例如丟棄或掩蔽所需表區段的一或多個描述符的資料)並用最終錯誤檢查結果替換原始錯誤檢查碼,以產生對應於特定封包的已調整封包的資料,接著進行至步驟842。
步驟840:利用最終錯誤檢查結果替換原始錯誤檢查碼,以產生對應於特定封包的已調整封包的資料,接著進行至步驟842。
步驟842:儲存已調整封包的資料,接著進行至步驟812,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
如上所述,由於一個表區段的資料可能經由TS流的一或多個封包來傳送,可以參考表區段的區段長度來識別表區段的末尾,以輔助表區段的資料處理。例如,封包識別單元702、封包調整單元704和錯誤檢查碼處理單元708透過參考所需表區段的區段長度,可輕易得知輸入資料是否為所需表區段的末尾。具體而言,區段長度可為封包識別單元702提供有用資訊。因此,對於經由多於一個封包傳送的所需表區段的資料,封包識別單元702除檢查表ID之外還可參考區段長度,以了解已識別特定封包的資訊載量是否承載了所需表區段的資料。
簡而言之,無論特定封包(例如PSIP封包)的資訊載量承載表區段的全部資料或是部分資料,第9、10圖所示的流程均可調整傳送所需表區段特定資料(例如VCT區段的SLD資料)的每個特定封包的資訊載量,以達到對不需要的資訊進行預處理的目的。更具體的,當已識別特定封包的資訊載量包含所需表區段的特定資料以及對應於所需表區段的錯誤檢查碼時,可以透過調整所需表區段的特定資料(例如丟棄或掩蔽所需表區段的一或多個描述符資料),並用對所需表區段實施錯誤檢查所導出的最終錯誤檢查結果來替換原始錯誤檢查碼,以產生相應的已調整封包;當已識別特定封包的資訊載量包含所需表區段的特定資料但不包含對應於所需表區段的錯誤檢查碼時,可以透過調整所需表區段的特定資料(例如丟棄或掩蔽所需表區段的一或多個描述符資料),以產生相應的已調整封包;當已識別特定封包的資訊載量包含對應於所需表區段的錯誤檢查碼但不包含所需表區段的特定資料時,可用對所需表區段實施錯誤檢查所導出的最終錯誤檢查結果來替換原始錯誤檢查碼,以產生相應的已調整封包。
請注意,第9、10圖所示的流程可用於處理TS流。因此,第9、10圖所示的流程將檢查來源資料從而處理封包處理裝置700接收的每個封包。封包處理方法的第一示範實施例與第二示範實施例的主要差別在於:封包處理方法的第二示範實施例中,將錯誤檢查功能納入考慮。本領域習知技藝者閱讀前文段落對第8圖及第9、10圖流程所示封包處理裝置700的描述後可輕易理解第9、10圖所示各步驟的運作,此處為簡潔起見省略進一步的描述。
第11圖是根據本發明第三示範實施例的封包處理裝置的模塊示意圖。示範封包處理裝置900包括封包識別單元902、封包調整單元904、儲存模組906和錯誤檢查碼處理單元908。由於封包識別單元902、儲存模組906的運作及功能與第1圖所示的封包識別單元102、儲存模組106相同,此處為簡潔省略了進一步描述。
封包調整單元904耦接至封包識別單元902和錯誤檢查碼處理單元908,封包調整單元904用於產生未調整封包資料D_1和已調整封包資料D_2”至儲存模組906。在此示範實施例中,封包調整單元904至少調整每個特定第二封包P_2的資訊載量,以產生相應的已調整封包,接著將已調整封包的資料儲存至儲存模組906。例如,封包調整單元904丟棄或掩蔽所需表區段的特定資料;此外,當對原始特定表區段(原始特定表區段是特定資料區段)實施錯誤檢查(例如CRC)的錯誤檢查結果指示原始特定表區段通過了錯誤檢查,錯誤檢查碼處理單元908就反應已調整特定表區段產生更新過的錯誤檢查碼(圖中標示為“New_code”),封包調整單元904利用更新過的錯誤檢查碼替換原始錯誤檢查碼以產生已調整封包,其中,原始錯誤檢查碼是透過對應於特定表區段的至少一第一封包P_1傳送的,更新過的錯誤檢查碼是錯誤檢查碼處理單元908產生的。請注意,第一封包P_1可能包括特定資料以及原始錯誤檢查碼,且上述第一封包中的已調整封包會將特定資料丟棄或掩蔽,更新過的錯誤檢查碼將替換原始錯誤檢查碼。這也符合本發明之精神。由此,當後續資料處理級對已調整的特定表區段實施錯誤檢查時,已調整的特定表區段由於包括更新過的錯誤檢查碼,就可以通過錯誤檢查。
若對原始特定表區段實施錯誤檢查的錯誤檢查結果指示原始特定表區段未通過錯誤檢查,暗示原始特定表區段包含錯誤位元,在一個示範實施中的封包調整單元904仍會調整對應於原始特定表區段的特定第二封包P_2的資訊載量;但是,透過至少一第一封包P_1傳送的原始錯誤檢查碼保持不變。當後續資料處理級對已調整特定表區段實施錯誤檢查時,已調整特定表區段包含的原始錯誤檢查碼會導致已調整特定表區段不通過錯誤檢查。由此保持了CRC的準確性。請注意以上僅為舉例說明,本發明並不以此為限。換言之,其他可處理原始特定表區段不通過錯誤檢查的機制也都可行。
為更清楚的描述第11圖所示的示範實施例的技術特點,以下用符合ATSC標準的TS流封包作為舉例。封包識別單元902識別任何資訊載量承載VCT區段資料的PSIP封包。錯誤檢查碼處理單元908實施為用於處理VCT區段的CRC碼。也就是說,錯誤檢查碼處理單元908根據VCT區段末尾的原始32位元CRC碼來對VCT區段實施CRC,以確定VCT區段的資料正確性。當VCT區段通過CRC時,錯誤檢查碼處理單元908就反應已調整VCT區段產生更新過的錯誤檢查碼,已調整VCT區段是透過封包調整單元904調整對應於VCT區段的第二封包P_2的資訊載量來產生的。更具體的,封包調整單元904偵測包括所需表區段的至少一特定描述符的特定資料,例如VCT區段的SLD資料。在一個示範實施中,封包調整單元904透過丟棄至少一特定描述符的資料(例如SLD資料)來調整每個第二封包P_2的資訊載量。在另一實施中,封包調整單元904利用作為掩蔽的預設資料樣式(例如0x00)替換至少一特定描述符的資料(例如SLD資料),來調整每個第二封包P_2的資訊載量。此外,從錯誤檢查碼處理單元908接收更新過的32位元CRC碼之後,封包調整單元904用更新過的32位元CRC碼替換原始32位元CRC碼,其中,原始32位元CRC碼透過對應於VCT區段的至少一第一封包P_1傳送。但當發現原始VCT區段含有錯誤位元時,封包調整單元904則不改變原始32位元CRC碼,以通知後續資料處理級錯誤位元的存在。
請參考第12、13圖。第12圖是根據本發明第三示範實施例的封包處理方法的流程圖。第13圖是第12圖的延續流程。在結果實質上相同的條件下,不要求精確按照第12、13圖所示的順序實施各步驟。此示範實施例的方法由第11圖所示的封包處理裝置900採用。本發明的示範方法包括以下步驟:步驟1000:開始。
步驟1002:接收之前的資料處理級(例如解調模塊)產生的TS流,其中TS流連續傳送多個封包(即TS流封包)。
步驟1004:對TS流實施封包標頭偵測,以識別TS流傳送的一個來源封包。進行至步驟1006。
步驟1006:檢查來源封包的PID值,以確定來源封包是否為特定封包(例如PSIP封包)。若是則進行至步驟1010;否則進行至步驟1008。
步驟1008:不應用任何調整而直接儲存封包,接著進行至步驟1004以識別TS流傳送的下一個來源封包。
步驟1010:檢查特定封包資訊載量的起始資料是否包括尚未成功擷取區段長度的一個新表區段的資訊。若是則進行至步驟1012;否則進行至步驟1014。
步驟1012:檢查是否能從該特定封包中成功導出新表區段的區段長度。若是,則進行至步驟1013;否則進行至步驟1015。
步驟1013:獲得新表區段的區段長度。例如,新表區段的區段長度可透過處理一個特定封包中的表區段資料來導出,也可以透過處理分別包含在不同封包中的表區段資料和延續表區段資料來導出。進行至步驟1016。
步驟1014:還原之前處理的表區段的剩餘部分的區段長度,並還原對之前處理的表區段的部分資料實施錯誤檢查所導出的部分錯誤檢查結果,接著進行至步驟1016。
步驟1015:對獲得區段長度所必需的表區段資料進行備份,並進行至步驟1004。
步驟1016:檢查區段長度是否小於等於特定封包未處理部分的大小,其中,取決於特定封包的實際處理狀態,特定封包的未處理部分可包括特定封包的全部或者部分資料。若檢查結果為是,則進行至步驟1030;否則就進行至步驟1017。
步驟1017:檢查特定封包的未處理部分是否承載所需表區段(例如VCT區段)的資料。若是則進行至步驟1021;否則進行至步驟1018。
步驟1018:對特定封包未處理部分的資料實施錯誤檢查,以導出部分錯誤檢查結果。進行至步驟1019。
步驟1019:不應用任何調整而直接儲存特定封包未處理部分的資料,接著進行至步驟1020。
步驟1020:將當前處理表區段的剩餘部分的區段長度和部分錯誤檢查結果進行備份,接著進行至步驟1004,以識別TS流傳送的下一個來源封包。
步驟1021:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟1022;否則進行至步驟1018。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料,例如SLD資料。
步驟1022:對特定封包未處理部分的資料實施錯誤檢查,以導出部分錯誤檢查結果。進行至步驟824。
步驟1024:調整特定封包未處理部分的資料,以產生對應於該特定封包的已調整封包的已調整部分。例如,相應的已調整封包的已調整部分可透過丟棄或掩蔽所需表區段的一個或多個描述符資料來產生,接著進行至步驟1026。
步驟1026:儲存已調整封包的已調整部分的資料,接著進行至步驟1020。
步驟1030:檢查區段長度的資料是否包括所需表區段的資料。若是則進行至步驟1034;否則進行至步驟1032。
步驟1032:不應用任何調整而直接儲存區段長度的資料,接著進行至步驟1012,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
步驟1034:參考部分錯誤檢查結果並對特定封包未處理部分的資料實施錯誤檢查,以導出最終錯誤檢查結果。進行至步驟1035。
步驟1035:檢查該最終錯誤檢查結果,以了解所需表區段是否通過錯誤檢查。若是,則進行至步驟1036;否則進行至步驟1042。
步驟1036:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟1038;否則進行至步驟1040。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料。
步驟1038:透過調整區段長度的資料(例如丟棄或掩蔽所需表區段的一或多個描述符的資料)並用更新過的錯誤檢查碼替換原始錯誤檢查碼,以產生對應於特定封包的已調整封包的資料,其中,更新過的錯誤檢查碼是反應所需表區段已調整特定資料而產生的。接著進行至步驟1046。
步驟1040:用更新過的錯誤檢查碼替換原始錯誤檢查碼,以產生對應於特定封包的已調整封包的資料,其中,更新過的錯誤檢查碼是反應所需表區段已調整特定資料而產生的。接著進行至步驟1046。
步驟1042:檢查特定封包的未處理部分是否包括所需表區段的特定資料。若是則進行至步驟1044;否則進行至步驟1032。例如,檢查VCT區段以了解特定封包的未處理部分是否包含一或多個描述符資料。或者,也可檢查VCT區段每個描述符的描述符標籤,以了解特定封包的未處理部分是否包括一個或多個目標描述符資料。
步驟1044:透過調整區段長度的資料(例如丟棄或掩蔽所需表區段的一或多個描述符的資料),以產生對應於特定封包的已調整封包的資料。進行至步驟1046。
步驟1046:儲存已調整封包的資料,接著進行至步驟1012,以處理經由同一特定封包傳送的包括全部或部分資料的下一表區段。
如上所述,由於一個表區段的資料可能經由TS流的一或多個封包來傳送,可以參考表區段的區段長度來識別表區段的末尾,以輔助表區段的資料處理。例如,封包識別單元902、封包調整單元904和錯誤檢查碼處理單元908透過參考所需表區段的區段長度,可輕易得知輸入資料是否為所需表區段的末尾。具體而言,區段長度可為封包識別單元902提供有用資訊。因此,對於透過多於一個封包傳送的所需表區段的資料,封包識別單元902除檢查表ID之外還可參考區段長度,以了解已識別特定封包的資訊載量是否承載所需表區段的資料。
簡而言之,無論特定封包(例如PSIP封包)的資訊載量承載表區段的全部資料或是部分資料,第12、13圖所示的流程均可調整傳送所需表區段特定資料(例如VCT區段的SLD資料)的每個特定封包的資訊載量,以達到對不需要的資訊進行預處理的目的。
更具體的,當已識別特定封包的資訊載量包含所需表區段的特定資料並包含指示相應的所需表區段通過錯誤檢查的錯誤檢查碼時,可以透過調整所需表區段的特定資料(例如丟棄或掩蔽所需表區段的一或多個描述符資料),並用更新過的錯誤檢查碼來替換原始錯誤檢查碼,以產生相應的已調整封包,其中,更新過的錯誤檢查碼是反應所需表區段已調整的特定資料而產生的;當已識別特定封包的資訊載量包含所需表區段的特定資料但不包含對應於所需表區段的錯誤檢查碼時,可以透過調整所需表區段的特定資料(例如丟棄或掩蔽所需表區段的一或多個描述符資料),以產生相應的已調整封包;當已識別特定封包的資訊載量包含指示相應的所需表區段通過錯誤檢查的錯誤檢查碼、但不包含所需表區段的特定資料時,可用更新過的錯誤檢查碼來替換原始錯誤檢查碼,以產生相應的已調整封包,其中,更新過的錯誤檢查碼是反應所需表區段已調整的特定資料而產生的。
請注意,第12、13圖所示的流程可用於處理TS流。因此,第12、13圖所示的流程將檢查來源資料從而處理封包處理裝置700接收的每個封包。封包處理方法的第三示範實施例與第二示範實施例的主要差別在於對錯誤檢查碼的調整方式。本領域習知技藝者閱讀前文段落對第11圖以及第12、13圖流程所示的封包處理裝置900的描述後可輕易理解第12、13圖所示各步驟的運作,此處為簡潔起見省略進一步的描述。
請注意,當丟棄所需表區段的一或多個描述符時,實際資料量也相應的變化。因此應當相應調整任何相關的資料長度欄位/參數。此外,在一個示範實施中,示範封包處理裝置100、700、900的元件可以在解調模塊和解多工模塊之外;但在一替代實施中,示範封包處理裝置的元件可以部分或全部併入解調模塊,或者部分或全部併入解多工模塊。這些均落入本發明的範圍。
舉例而言,封包識別單元102、702、902實施的識別處理和封包調整單元104、704、904實施的調整處理可以採用基於封包的處理機制或者基於位元組的處理機制,取決於實際設計考慮。在採用基於封包的處理機制時,封包識別單元102、702、902會檢查每個完整的封包來確定如何處理所接收的完整封包,封包調整單元104、704、904也會檢查每個完整的封包來確定如何處理所接收的完整封包。在採用基於位元組的處理機制時,封包識別單元102、702、902會檢查每個完整的位元組來確定如何處理所接收的完整位元組,封包調整單元104、704、904也會檢查每個完整的位元組來確定如何處理所接收的完整位元組。以這種方式,可以在接收到封包的全部資料之前開始封包資料的處理;換言之,封包資料的處理(包括識別處理和調整處理)不需要等到接收完整封包資料後再進行。但是,封包識別單元102、702、902和封包調整單元104、704、904所採用的封包資料處理機制(例如基於封包的處理機制或基於位元組的處理機制)並不意味著對本發明範圍的限制。換言之,只要能達到如下相同目的:透過封包識別單元和封包調整單元的合作對不需要的資訊(例如VCT區段的SLD資料)進行預處理,既可以基於位元組處理TS資料,也可以基於封包或是基於任何資料大小來處理TS資料。以上均落入本發明的範圍。
任何熟習此項技藝者,在不脫離本發明之精神和範圍內,當可做些許的更動與潤飾,因此本發明之保護範圍當視所附之申請專利範圍所界定者為準。
100、700、900...封包處理裝置
102、702、902...封包識別單元
104、704、904...封包調整單元
106、706、906...儲存模組
402...表ID
403...區段長度
404...描述符
406...CRC碼
502...描述符標籤
708、908...錯誤檢查碼處理單元
600-636、800-842、1000-1046...步驟
第1圖是根據本發明第一示範實施例的封包處理裝置的模塊示意圖。
第2圖是以封包格式展示TS流層級結構的示意圖。
第3圖是以封包内容展示TS流層級結構的示意圖。
第4圖展示VCT區段的位元流語法。
第5圖展示SLD的位元流語法。
第6圖是根據本發明第一示範實施例的封包處理方式的流程圖。
第7圖是第6圖的延續流程。
第8圖是根據本發明第二示範實施例的封包處理裝置的模塊示意圖。
第9圖是根據本發明第二示範實施例的封包處理方法的流程圖。
第10圖是第9圖的延續流程。
第11圖是根據本發明第三示範實施例的封包處理裝置的模塊示意圖。
第12圖是根據本發明第三示範實施例的封包處理方法的流程圖。
第13圖是第12圖的延續流程。
100...封包處理裝置
102...封包識別單元
104...封包調整單元
106...儲存模組
Claims (20)
- 一種封包處理裝置,包含:一封包識別單元,用於接收多個封包,並檢查從已接收封包中導出的識別資訊和資料長度資訊,以識別已接收封包中的多個第一封包;以及一封包調整單元,耦接於該封包識別單元,用於檢查該多個第一封包以識別該多個第一封包中的多個第二封包,其中,該多個第二封包中每個的資訊載量中具有特定資料,該封包調整單元還用於對每個該第二封包中的至少該資訊載量進行調整。
- 如申請專利範圍第1項所述的封包處理裝置,更包含:一儲存模組,耦接於該封包調整單元,用於分別儲存對應於該多個第二封包的已調整封包的資料;其中,當透過該封包識別單元和該封包調整單元進行識別的該多個第二封包中每個的資料都經過該封包調整單元調整時,將該多個第二封包中每個的資料都儲存在該儲存模組中。
- 如申請專利範圍第1項所述的封包處理裝置,其中,該多個第一封包中的每個是一節目和系統資訊協議封包,且該特定資料包括一特定表區段的至少一特定描述符的資料,該資料長度資訊包括該特定表區段的一區段長度。
- 如申請專利範圍第3項所述的封包處理裝置,其中,該特定表區段是一虛擬頻道表區段。
- 如申請專利範圍第4項所述的封包處理裝置,其中,該至少一特定描述符包括一服務位置描述符。
- 如申請專利範圍第3項所述的封包處理裝置,其中,該封包調整單元經由丟棄該至少一特定描述符的該資料,調整該多個第二封包中的每個。
- 如申請專利範圍第3項所述的封包處理裝置,其中,該封包調整單元經由利用一預設資料樣式替換該至少一特定描述符的該資料,調整該多個第二封包中的每個。
- 如申請專利範圍第1項所述的封包處理裝置,其中,該多個第一封包的資訊載量包括一特定資料區段的一原始錯誤檢查碼,該特定資料包括該特定資料區段的資料,且該封包處理裝置更包含:一錯誤檢查碼處理單元,用於根據該原始錯誤檢查碼對該特定資料區段實施一錯誤檢查,其中,該封包調整單元進一步調整該原始錯誤檢查碼。
- 如申請專利範圍第8項所述的封包處理裝置,其中,該錯誤檢查碼處理單元產生對該特定資料區段實施該錯誤檢查的一錯誤檢查結果,且該封包調整單元用該錯誤檢查結果替換該原始錯誤檢查碼,其中,該原始錯誤檢查碼是透過對應於該特定資料區段的至少一第一封包傳送的。
- 如申請專利範圍第8項所述的封包處理裝置,其中,當對該特定資料區段實施的該錯誤檢查的一錯誤檢查結果指示該特定資料區段通過該錯誤檢查時,該錯誤檢查碼處理單元為對應於該特定資料區段的已調整特定資料區段產生一更新過的錯誤檢查碼,且該封包調整單元用該更新過的錯誤檢查碼替換該原始錯誤檢查碼,其中,該原始錯誤檢查碼是透過對應於該特定資料區段的至少一第一封包傳送的。
- 一種封包處理方法,用於一封包處理裝置中,包含:接收多個封包,並檢查從已接收封包中導出的識別資訊和資料長度資訊,以識別已接收封包中的多個第一封包;檢查該多個第一封包以識別該多個第一封包中的多個第二封包,其中,該多個第二封包中每個的資訊載量中具有特定資料;以及對每個該第二封包中的至少該資訊載量進行調整。
- 如申請專利範圍第11項所述的封包處理方法,更包含:利用一儲存模組分別儲存對應於該多個第二封包的已調整封包的資料;其中,當透過該封包識別單元和該封包調整單元進行識別的該多個第二封包中每個的資料都經過該封包調整單元調整時,將該多個第二封包中每個的資料都儲存在該儲存模組中。
- 如申請專利範圍第11項所述的封包處理方法,其中,該多個第一封包中的每個是一節目和系統資訊協議封包,且該特定資料包括一特定表區段的至少一特定描述符的資料,該資料長度資訊包括該特定表區段的一區段長度。
- 如申請專利範圍第13項所述的封包處理方法,其中,該特定表區段是一虛擬頻道表區段。
- 如申請專利範圍第14項所述的封包處理方法,其中,該至少一特定描述符包括一服務位置描述符。
- 如申請專利範圍第13項所述的封包處理方法,其中,調整該多個第二封包中的每個的步驟包含:丟棄該至少一特定描述符的該資料。
- 如申請專利範圍第13項所述的封包處理方法,其中,調整該多個第二封包中的每個的步驟包含:用一預設資料樣式替換該至少一特定描述符的該資料。
- 如申請專利範圍第11項所述的封包處理方法,其中,該多個第一封包的資訊載量包括一特定資料區段的一原始錯誤檢查碼,該特定資料包括該特定資料區段的資料,且該封包處理方法更包含:根據該原始錯誤檢查碼對該特定資料區段實施一錯誤檢查;以及調整該原始錯誤檢查碼。
- 如申請專利範圍第18項所述的封包處理方法,其中,調整該原始錯誤檢查碼包含:用對該特定資料區段實施該錯誤檢查的一錯誤檢查結果替換該原始錯誤檢查碼,其中,該原始錯誤檢查碼是透過對應於該特定資料區段的至少一第一封包傳送的。
- 如申請專利範圍第18項所述的封包處理方法,更包含:當對該特定資料區段實施的該錯誤檢查的一錯誤檢查結果指示該特定資料區段通過該錯誤檢查時,為對應於該特定資料區段的已調整特定資料區段產生一更新過的錯誤檢查碼;其中,調整該原始錯誤檢查碼包含:用該更新過的錯誤檢查碼替換該原始錯誤檢查碼,其中,該原始錯誤檢查碼是透過對應於該特定資料區段的至少一第一封包傳送的。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13965908P | 2008-12-22 | 2008-12-22 | |
US13966208P | 2008-12-22 | 2008-12-22 | |
US12/633,726 US8902893B2 (en) | 2008-12-22 | 2009-12-08 | Packet processing apparatus and method capable of generating modified packets by modifying payloads of specific packets identified from received packets |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201110620A TW201110620A (en) | 2011-03-16 |
TWI387269B true TWI387269B (zh) | 2013-02-21 |
Family
ID=42265506
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098143892A TWI520597B (zh) | 2008-12-22 | 2009-12-21 | 信號處理裝置 |
TW098143891A TWI387269B (zh) | 2008-12-22 | 2009-12-21 | 封包處理裝置和封包處理方法 |
TW098143888A TWI398132B (zh) | 2008-12-22 | 2009-12-21 | 封包處理裝置和封包處理方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098143892A TWI520597B (zh) | 2008-12-22 | 2009-12-21 | 信號處理裝置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098143888A TWI398132B (zh) | 2008-12-22 | 2009-12-21 | 封包處理裝置和封包處理方法 |
Country Status (4)
Country | Link |
---|---|
US (3) | US8910233B2 (zh) |
EP (3) | EP2361469B1 (zh) |
TW (3) | TWI520597B (zh) |
WO (3) | WO2010072131A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8910233B2 (en) * | 2008-12-22 | 2014-12-09 | Mediatek Inc. | Signal processing apparatuses capable of processing initially reproduced packets prior to buffering the initially reproduced packets |
US9219550B2 (en) * | 2011-06-23 | 2015-12-22 | Infinera Corporation | Forward carrier recovery using forward error correction (FEC) feedback |
WO2013044248A1 (en) * | 2011-09-23 | 2013-03-28 | Futurewei Technologies, Inc. | Method and apparatus to increase forwarding silicon functionality through packet manipulation |
WO2014011355A1 (en) | 2012-07-12 | 2014-01-16 | Sony Corporation | Parameterized services descriptor for advanced television services |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW477139B (en) * | 1999-07-08 | 2002-02-21 | Thomson Licensing Sa | An adaptive transport protocol decoder |
US20040030776A1 (en) * | 2002-08-12 | 2004-02-12 | Tippingpoint Technologies Inc., | Multi-level packet screening with dynamically selected filtering criteria |
US20060056407A1 (en) * | 2004-09-13 | 2006-03-16 | Matsushita Electric Industrial Co., Ltd. | Demultiplexer |
US20070130613A1 (en) * | 2005-12-05 | 2007-06-07 | Samsung Electronics Co., Ltd. | Method and apparatus for storing digital broadcasting signal |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970386A (en) * | 1997-01-27 | 1999-10-19 | Hughes Electronics Corporation | Transmodulated broadcast delivery system for use in multiple dwelling units |
US6115074A (en) * | 1997-07-10 | 2000-09-05 | Ozkan; Mehmet Kemal | System for forming and processing program map information suitable for terrestrial, cable or satellite broadcast |
JP3309069B2 (ja) * | 1997-11-17 | 2002-07-29 | 株式会社日立製作所 | 多重符号化画像音声データの受信装置 |
JP3189889B2 (ja) | 1998-02-20 | 2001-07-16 | 日本電気株式会社 | Pidフィルタ回路 |
KR20010075755A (ko) | 2000-01-17 | 2001-08-11 | 구자홍 | 디지털 티브이용 epg의 ett 식별구조 |
AU2001263441A1 (en) | 2000-06-12 | 2001-12-24 | General Instrument Corporation | Apparatus and method for resolution of conflicts in protocol data of multiple data streams |
CA2358607A1 (en) | 2000-10-24 | 2002-04-24 | General Instrument Corporation | Packet identifier (pid) aliasing for a broadband audio, video and data router |
US7099318B2 (en) * | 2001-12-28 | 2006-08-29 | Intel Corporation | Communicating message request transaction types between agents in a computer system using multiple message groups |
US20040017831A1 (en) | 2002-04-05 | 2004-01-29 | Jian Shen | System and method for processing SI data from multiple input transport streams |
US7899929B1 (en) * | 2003-06-05 | 2011-03-01 | Juniper Networks, Inc. | Systems and methods to perform hybrid switching and routing functions |
CN1722787A (zh) | 2004-07-12 | 2006-01-18 | 上海乐金广电电子有限公司 | A c-3普通界面模块装置 |
CN101605204A (zh) | 2004-08-25 | 2009-12-16 | 汤姆逊许可公司 | 减少数字视频输入的频道变换时间的方法 |
US20060248374A1 (en) | 2005-04-18 | 2006-11-02 | Macadam A D S | Packet Processing Switch and Methods of Operation Thereof |
TWI266533B (en) | 2005-06-29 | 2006-11-11 | Avermedia Tech Inc | Analog/digital set-top box |
EP1909420A4 (en) | 2005-06-30 | 2010-07-28 | Leader Electronics | DEVICE FOR MODIFYING A PART OF A PREFERRED PACKAGE |
KR100735276B1 (ko) * | 2005-08-18 | 2007-07-03 | 삼성전자주식회사 | 디지털 비디오 방송 시스템에서 다중 프로토콜 캡슐화순방향 오류 정정 프레임의 복호 방법 및 장치 |
CN100442264C (zh) * | 2005-10-14 | 2008-12-10 | 威盛电子股份有限公司 | 封包处理系统与方法 |
EP1808994A1 (fr) * | 2006-01-12 | 2007-07-18 | Alcatel Lucent | Dispositif de commutation à transport universel de trames de paquets de données |
US20080005767A1 (en) | 2006-01-27 | 2008-01-03 | Samsung Electronics Co., Ltd. | Multimedia processing apparatus and method for mobile phone |
DE102006018384A1 (de) | 2006-04-20 | 2007-10-25 | Linde Ag | Verfahren und Vorrichtung zur Enteisung und Reinigung von Ventilatoren |
US20080002742A1 (en) * | 2006-06-28 | 2008-01-03 | Chung-Bin Wu | Receiver system and related method for processing error packets utilizing packet replacement |
JP2008141618A (ja) | 2006-12-04 | 2008-06-19 | Tohoku Univ | ネットワークアプリケーション弁別方法、ならびに不正アクセス検出システム |
JP4912856B2 (ja) * | 2006-12-15 | 2012-04-11 | 株式会社東芝 | フィルタリング装置及びデジタル放送受信装置 |
KR20080061055A (ko) * | 2006-12-28 | 2008-07-02 | 한국정보통신대학교 산학협력단 | P2p 응용 서비스 식별 시스템 및 방법 |
US20080240093A1 (en) * | 2007-03-28 | 2008-10-02 | Horizon Semiconductors Ltd. | Stream multiplexer/de-multiplexer |
JP4925130B2 (ja) * | 2007-12-14 | 2012-04-25 | Kddi株式会社 | 通信制御方法およびシステム |
US8199750B1 (en) * | 2007-12-18 | 2012-06-12 | World Wide Packets, Inc. | Communicating with a control plane using a forwarding information format and control plane processing of packets devoid of a virtual switch identifier |
US8910233B2 (en) * | 2008-12-22 | 2014-12-09 | Mediatek Inc. | Signal processing apparatuses capable of processing initially reproduced packets prior to buffering the initially reproduced packets |
-
2009
- 2009-11-20 US US12/622,437 patent/US8910233B2/en active Active
- 2009-11-24 US US12/624,411 patent/US8321767B2/en active Active
- 2009-12-08 US US12/633,726 patent/US8902893B2/en active Active
- 2009-12-21 WO PCT/CN2009/075755 patent/WO2010072131A1/en active Application Filing
- 2009-12-21 EP EP09834085.4A patent/EP2361469B1/en active Active
- 2009-12-21 WO PCT/CN2009/075773 patent/WO2010072134A1/en active Application Filing
- 2009-12-21 EP EP09834084.7A patent/EP2361474B1/en active Active
- 2009-12-21 TW TW098143892A patent/TWI520597B/zh active
- 2009-12-21 WO PCT/CN2009/075761 patent/WO2010072132A1/en active Application Filing
- 2009-12-21 TW TW098143891A patent/TWI387269B/zh active
- 2009-12-21 EP EP09834087.0A patent/EP2361480A4/en not_active Withdrawn
- 2009-12-21 TW TW098143888A patent/TWI398132B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW477139B (en) * | 1999-07-08 | 2002-02-21 | Thomson Licensing Sa | An adaptive transport protocol decoder |
US20040030776A1 (en) * | 2002-08-12 | 2004-02-12 | Tippingpoint Technologies Inc., | Multi-level packet screening with dynamically selected filtering criteria |
US20060056407A1 (en) * | 2004-09-13 | 2006-03-16 | Matsushita Electric Industrial Co., Ltd. | Demultiplexer |
US20070130613A1 (en) * | 2005-12-05 | 2007-06-07 | Samsung Electronics Co., Ltd. | Method and apparatus for storing digital broadcasting signal |
Also Published As
Publication number | Publication date |
---|---|
TW201110620A (en) | 2011-03-16 |
US8902893B2 (en) | 2014-12-02 |
US20100157158A1 (en) | 2010-06-24 |
US20100162089A1 (en) | 2010-06-24 |
US8321767B2 (en) | 2012-11-27 |
EP2361474A1 (en) | 2011-08-31 |
EP2361480A1 (en) | 2011-08-31 |
WO2010072134A1 (en) | 2010-07-01 |
US20100158042A1 (en) | 2010-06-24 |
WO2010072131A1 (en) | 2010-07-01 |
EP2361480A4 (en) | 2015-04-15 |
EP2361469B1 (en) | 2016-11-30 |
TWI398132B (zh) | 2013-06-01 |
EP2361469A1 (en) | 2011-08-31 |
EP2361469A4 (en) | 2012-10-17 |
TW201034445A (en) | 2010-09-16 |
TWI520597B (zh) | 2016-02-01 |
US8910233B2 (en) | 2014-12-09 |
WO2010072132A1 (en) | 2010-07-01 |
TW201025941A (en) | 2010-07-01 |
EP2361474B1 (en) | 2016-11-30 |
EP2361474A4 (en) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210250394A1 (en) | Transmission method, reception method, transmission apparatus, and reception apparatus | |
US10321200B2 (en) | Transmission method, reception method, transmission apparatus, and reception apparatus | |
US10361801B2 (en) | Transmission method, transmission apparatus and system | |
US20210345008A1 (en) | Transmission method, reception method, transmission apparatus, and reception apparatus | |
CN106576189B (zh) | 发送方法、接收方法、发送装置及接收装置 | |
US11665405B2 (en) | Transmission method, reception method, transmission apparatus, and reception apparatus | |
TWI387269B (zh) | 封包處理裝置和封包處理方法 | |
US6807585B2 (en) | Method and system for parsing section data | |
US8023409B2 (en) | Method and system for reconfigurable pattern filtering engine | |
US7668270B2 (en) | Method and system for programmable filtering offset | |
KR101141644B1 (ko) | Psi 변환 장치 및 방법 | |
CN113475088B (zh) | 收发方法、收发装置 | |
US8146121B2 (en) | Systems and methods for processing program content and information in a video broadcast | |
KR101363847B1 (ko) | 디지털 방송수신기용 psip 테이블 구조 및 그 저장제어장치 | |
JP2007110489A (ja) | コンテンツ処理装置及びコンテンツ処理方法、並びにコンピュータ・プログラム |