2)節(jié)目流(PS)
將具有共同時間基準的一個或多個PES組合(復(fù)合)而成的單一的數(shù)據(jù)流稱為節(jié)目流(Program Stream)。PS包的結(jié)構(gòu)如圖3所示。
由圖3可見,PS包由包頭、系統(tǒng)頭、PES包3部分構(gòu)成。包頭由PS包起始碼、系統(tǒng)時鐘基準(SCR-System Clock Reference)的基本部分、SCR的擴展部分和PS復(fù)用速率4部分組成。
PS包起始碼用于識別數(shù)據(jù)包所屬數(shù)據(jù)流的性質(zhì)及序號。
SCR的基本部分是1個33 bit的數(shù),由MPEG-1與MPEG-2兼容共用。SCR擴展部分是1個9 bit的數(shù),由MPEG-2單獨使用。SCR是為了解決壓縮編碼圖像同步問題產(chǎn)生的。因為,I、B、P幀經(jīng)過壓縮編碼后,各幀有不同的字節(jié)數(shù);輸入解碼器的壓縮編碼圖像的幀順序I1P4B2B3P7B5B6I10B8B9 中的P4、I10幀,需要經(jīng)過重新排序緩存器延遲后,才能重建編碼輸入圖像的幀順序I1B2B3P4B5B6P7B8B9I10;視頻ES與音頻ES是以前后不同的視頻與音頻的比例交錯傳送的。以上3條均不利于視音頻同步。所以,為解決同步問題,提出在統(tǒng)一系統(tǒng)時鐘(SSTC-Single System Time Clock)條件下,在PS包頭插入時間標(biāo)志SCR的方法。整個42 bit字寬的SCR,按照MPEG規(guī)定分布在寬為33 bit的1個基礎(chǔ)字及寬為9 bit的1個擴展區(qū)中。由于MPEG-1采用了相當(dāng)于33 bit字寬的90kHz的時間基準,考慮到兼容,對節(jié)目流中的SCR也只用33 bit。為了提高PAL或NTSC已編碼節(jié)目再編碼的精確性,MPEG-2將時間分解力由90kHz提高到27MHz光柵結(jié)構(gòu),使通過TS時標(biāo)中的9 bit 擴展區(qū)后,精確性會更高。具體方法是將9 bit用作循環(huán)計數(shù)器,計數(shù)到300時,迅速向33 bit基本區(qū)轉(zhuǎn)移,同時將擴展區(qū)計數(shù)器復(fù)原,以便由基本區(qū)向擴展區(qū)轉(zhuǎn)移時重新計數(shù)。將42 bit作為時間標(biāo)志插入PS包頭的第5到第10個字節(jié),表明SCR字段最后1個字節(jié)離開編碼器的時間。在系統(tǒng)目標(biāo)解碼(STD-System Target Decoder)輸入端,通過對27MHz的統(tǒng)一系統(tǒng)時鐘(SSTC)取樣后提取。顯然,在編碼端,STC不僅產(chǎn)生了表明視音頻正確的顯示時間PTS和解碼時間DTS,而且也產(chǎn)生了表明STC本身瞬時值的時間標(biāo)記SCR。在解碼端,應(yīng)相應(yīng)地使SSTC再生,并正確應(yīng)用時間標(biāo)志,即通過鎖相環(huán)路(PLL-Phase Lock Loop),用解碼時本地用SCR相位與輸入的瞬時SCR相位鎖相比較,確定解碼過程是否同步,若不同步,則用這個瞬時SCR調(diào)整27MHz時鐘頻率。每個SCR字段的大小各不相同,其值是由復(fù)用數(shù)據(jù)流的數(shù)據(jù)率和SSTC的27MHz時鐘頻率確定的??梢?,采用時間標(biāo)志PTS、DTS 和SCR,是解決視音頻同步、幀的正確顯示次序、STD緩存器上溢或下溢的好方法。
PS復(fù)用速率用于指示其速率大小。
系統(tǒng)頭由系統(tǒng)頭起始碼、系統(tǒng)頭長度、速率界限范圍、音頻界限范圍、各種標(biāo)志指示、視頻界限范圍、數(shù)據(jù)流識別、STD緩存器界限標(biāo)度、STD緩存器尺寸標(biāo)度、(視頻,音頻,或數(shù)據(jù))流識別等10個部分組成。各種標(biāo)志部分由固定標(biāo)志指示、約束系統(tǒng)參數(shù)數(shù)據(jù)流(CSPS-Constrained System Parameter Stream)指示、系統(tǒng)音頻鎖定標(biāo)志指示、系統(tǒng)視頻鎖定標(biāo)志指示4個部分組成。其中,CSPS是對圖像尺寸、速率、運動矢量范圍、數(shù)據(jù)率等系統(tǒng)參數(shù)的限定指示。
顯然,PS的形成分兩步完成:其一是將視頻ES、音頻ES、其他ES分別打包成視頻PES包、音頻PES包、其他PES包:使每個PES包內(nèi)只能存在1種性質(zhì)的ES;每個PES包的第一個AU的包頭可包含PTS和DTS;每個PES包的包頭都有用于區(qū)別不同性質(zhì)ES的數(shù)據(jù)流識別碼。這一切,使解復(fù)用和不同ES之間同步重放成為可能。其二是通過PS復(fù)用器將PES包復(fù)用成PS包,即將每個PES包再細分為更小的PS包。PS包頭含有從數(shù)字存儲媒介(DSM-Digital storage Medium)進入系統(tǒng)解碼器各個字節(jié)的解碼專用時標(biāo),即預(yù)定到達時間表,它是時鐘調(diào)整和緩存器管理的參數(shù)。典型PS解碼器如圖4所示,圖中示意了數(shù)字視頻解碼器輸出的、符合ITU-R. 601標(biāo)準的視頻數(shù)據(jù)幀順序I1B2B3P4B5B6P7B8B9I10,與數(shù)字視頻編碼器輸出的數(shù)字視頻編碼ES幀順序I1P4B2B3P7B5B6I10B8B9二者之間的關(guān)系。圖中PS解復(fù)用器實際上是系統(tǒng)解復(fù)用器和拆包器的組合,即解復(fù)用器將MPEG-2 的PS分解成一個個PES包,拆包器將PES包拆成視頻ES和音頻ES,最后輸入各自的解碼器。系統(tǒng)頭提供數(shù)據(jù)流的系統(tǒng)特定信息,包頭與系統(tǒng)頭共同構(gòu)成一幀,用于將PES包數(shù)據(jù)流分割成時間上連續(xù)的PS包??梢?,一個經(jīng)過MPEG-2編碼的節(jié)目源是由一個或多個視頻ES和音頻ES構(gòu)成的,由于各個ES共用1個27MHz的時鐘,可保證解碼端視音頻的同步播出。例如,一套電影經(jīng)過MPEG-2編碼,轉(zhuǎn)換成1個視頻ES和4個音頻ES。顯然,PS包長度比較長且可變,用于無誤碼環(huán)境,適合于節(jié)目信息的軟件處理及交互多媒體應(yīng)用。但是,PS包越長,同步越困難;在丟包時數(shù)據(jù)的重新組成,也越困難。顯然,PS用于存儲(磁盤、磁帶等)、演播室CD-I、MPEG-1數(shù)據(jù)流。
3) 傳輸流(TS)
將具有共同時間基準或具有獨立時間基準的一個或多個PES組合而成的單一的數(shù)據(jù)流稱為傳輸流(Transport Stream)。TS實際是面向數(shù)字化分配媒介(有線、衛(wèi)星、地面網(wǎng))的傳輸層接口。對具有共同時間基準的兩個以上的PES先進行節(jié)目復(fù)用,然后再對相互可有獨立時間基準的各個PS進行傳輸復(fù)用,即將每個PES再細分為更小的TS包,TS包結(jié)構(gòu)如圖5所示。
由圖5可見,TS包由包頭、自適應(yīng)區(qū)和包數(shù)據(jù)3部分組成。每個包長度為固定的188 B,包頭長度占4 B,自適應(yīng)區(qū)和包數(shù)據(jù)長度占184 B。184 B為有用信息空間,用于傳送已編碼的視音頻數(shù)據(jù)流。當(dāng)節(jié)目時鐘基準(PCR-Program Clock Reference)存在時,包頭還包括可變長度的自適應(yīng)區(qū),包頭的長度就會大于4 B??紤]到與通信的關(guān)系,整個傳輸包固定長度應(yīng)相當(dāng)于4個ATM包。考慮到加密是按照8 B順序加擾的,代表有用信息的自適應(yīng)區(qū)和包數(shù)據(jù)的長度應(yīng)該是8 B的整數(shù)倍,即自適應(yīng)區(qū)和包數(shù)據(jù)為23×8 B =184 B。
TS包的包頭由如圖所示的同步字節(jié)、傳輸誤碼指示符、有效載荷單元起始指示符、傳輸優(yōu)先、包識別(PID-Packet Identification)、傳輸加擾控制、自適應(yīng)區(qū)控制和連續(xù)計數(shù)器8個部分組成。其中,可用同步字節(jié)位串的自動相關(guān)特性,檢測數(shù)據(jù)流中的包限制,建立包同步;傳輸誤碼指示符,是指有不能消除誤碼時,采用誤碼校正解碼器可表示1bit 的誤碼,但無法校正;有效載荷單元起始指示符,表示該數(shù)據(jù)包是否存在確定的起始信息;傳輸優(yōu)先,是給TS包分配優(yōu)先權(quán);PID值是由用戶確定的,解碼器根據(jù)PID將TS上從不同ES來的TS包區(qū)別出來,以重建原來的ES;傳輸加擾控制,可指示數(shù)據(jù)包內(nèi)容是否加擾,但包頭和自適應(yīng)區(qū)永遠不加擾;自適應(yīng)區(qū)控制,用2 bit表示有否自適應(yīng)區(qū),即(01)表示有有用信息無自適應(yīng)區(qū),(10)表示無有用信息有自適應(yīng)區(qū),(11)表示有有用信息有自適應(yīng)區(qū),(00)無定義;連續(xù)計數(shù)器可對PID包傳送順序計數(shù),據(jù)計數(shù)器讀數(shù),接收端可判斷是否有包丟失及包傳送順序錯誤。顯然,包頭對TS包具有同步、識別、檢錯及加密功能。
TS包自適應(yīng)區(qū)由自適應(yīng)區(qū)長、各種標(biāo)志指示符、與插入標(biāo)志有關(guān)的信息和填充數(shù)據(jù)4部分組成。其中標(biāo)志部分由間斷指示符、隨機存取指示符、ES優(yōu)化指示符、PCR標(biāo)志、接點標(biāo)志、傳輸專用數(shù)據(jù)標(biāo)志、原始PCR標(biāo)志、自適應(yīng)區(qū)擴展標(biāo)志8個部分組成。重要的是標(biāo)志部分的PCR字段,可給編解碼器的27MHz時鐘提供同步資料,進行同步。其過程是,通過PLL,用解碼時本地用PCR相位與輸入的瞬時PCR相位鎖相比較,確定解碼過程是否同步,若不同步,則用這個瞬時PCR調(diào)整時鐘頻率。因為,數(shù)字圖像采用了復(fù)雜而不同的壓縮編碼算法,造成每幅圖像的數(shù)據(jù)各不相同,使直接從壓縮編碼圖像數(shù)據(jù)的開始部分獲取時鐘信息成為不可能。為此,選擇了某些(而非全部)TS包的自適應(yīng)區(qū)來傳送定時信息。于是,被選中的TS包的自適應(yīng)區(qū),可用于測定包信息的控制bit和重要的控制信息。自適應(yīng)區(qū)無須伴隨每個包都發(fā)送,發(fā)送多少主要由選中的TS包的傳輸專用時標(biāo)參數(shù)決定。標(biāo)志中的隨機存取指示符和接點標(biāo)志,在節(jié)目變動時,為隨機進入I幀壓縮的數(shù)據(jù)流提供隨機進入點,也為插入當(dāng)?shù)毓?jié)目提供方便。自適應(yīng)區(qū)中的填充數(shù)據(jù)是由于PES包長不可能正好轉(zhuǎn)為TS包的整數(shù)倍,最后的TS包保留一小部分有用容量,通過填充字節(jié)加以填補,這樣可以防止緩存器下溢,保持總碼率恒定不變。
4) 節(jié)目特定信息(PSI)
由上述可知,1個TS包由固定的188B組成,用于傳送已編碼視音頻數(shù)據(jù)流的有用信息占用184B空間。但是,還需要傳輸節(jié)目隨帶信息及解釋有關(guān)TS特定結(jié)構(gòu)的信息(元數(shù)據(jù)),即節(jié)目特定信息(PSI-Program Specific Information)。用于說明:1個節(jié)目是由多少個ES組成的;1個節(jié)目是由哪些個ES組成的;在哪些個PID情況下,1個相應(yīng)的解碼器能找到TS中的各個數(shù)據(jù)包。這對于由不同的數(shù)據(jù)流復(fù)用成1個合成的TS是1個決定性的條件。為了重建原來的ES,就要追蹤從不同ES來的TS包及其PID。因此,一些映射結(jié)構(gòu)(Mapping Mechanism),如節(jié)目源結(jié)合表(PAT)和節(jié)目源映射表(PMT)兩種映射結(jié)構(gòu),會以打包的形式存在于TS上,即借助于PSI傳輸一串描述了各種ES的表格來實現(xiàn)。MPEG認為,可用4個不同的表格作出區(qū)別:
● 節(jié)目源結(jié)合表(PAT-Program Association Table):在每個TS上都有一個PAT,用于定義節(jié)目源映射表。用MPEG指定的PID(00)標(biāo)明,通常用PID=0表示 。
● 條件接收表(CAT-Conditional Access Table):用于準備解密數(shù)據(jù)組用的信息,如加密系統(tǒng)標(biāo)識、存取權(quán)的分配、各個碼序的發(fā)送等。用MPEG指定的PID(01)標(biāo)明,通常用PID=1表示。
● 節(jié)目源映射表(PMT-Program Map Table):在TS上,每個節(jié)目源都有一個對應(yīng)的PMT,是借助裝入PAT中節(jié)目號推導(dǎo)出來的。用于定義每個在TS上的節(jié)目源(Program),即將TS上每個節(jié)目源的ES及其對應(yīng)的PID信息、數(shù)據(jù)的性質(zhì)、數(shù)據(jù)流之間關(guān)系列在一個表里。解碼器要知道分配節(jié)目的ES的總數(shù),因為MPEG總共允許256個不同的描述符,其中ISO占用64個,其余由用戶使用。
● 網(wǎng)絡(luò)信息表(NIT- Network Information Table):可傳送網(wǎng)絡(luò)數(shù)據(jù)和各種參數(shù),如頻帶、轉(zhuǎn)發(fā)信號、通道寬度等。MPEG尚未規(guī)定,僅在節(jié)目源結(jié)合表(PAT)中保留了1個既定節(jié)目號“0”(Program-0)。
有了PAT及 PMT這兩種表,解碼器就可以根據(jù)PID將TS上從不同的ES來的TS包分別出來。
節(jié)目特定信息(PSI)的結(jié)構(gòu),如圖6所示。根據(jù)PID將TS上從不同的ES來的TS包分別出來可分兩步進行:其一是從PID=0的PAT上找出帶有PMT的那個節(jié)目源,如Program-1,或Program-2;其二是從所選擇的PMT中找到組成該節(jié)目源的各個ES的PID,如從Program-1箭頭所指的PMT-1中ES-2所對應(yīng)的Audio-1的PID為48,或從Program-2箭頭所指的PMT-2中ES-1所對應(yīng)的Video的PID為16。同樣,Program-1的MAP的PID為22,ES-1所對應(yīng)的Video的PID為54;Program-2的PMT-2中ES-2所對應(yīng)的Audio-1的PID為81,ES-1所對應(yīng)的Video的PID為16,MAP的PID為33;PAT的PID為0;CAT授權(quán)管理信息(EMM-Entitlement Management Message)的PID為1。這樣,就追蹤到了TS上從不同的ES來的TS包及其PID,如圖6所示的TS上不同ES的TS包的PID分別為48、16、22、21、54、0、16、33、1。顯然,解碼器根據(jù)PID將TS上從不同的ES來的TS包分別出來的過程,也可以從圖7的TS雙層解復(fù)用結(jié)構(gòu)圖中得到解釋。要注意,MPEG-2的TS是經(jīng)過節(jié)目復(fù)用和傳輸復(fù)用兩層完成的:在節(jié)目復(fù)用時加入了PMT;在傳輸復(fù)用時加入PAT。所以,在節(jié)目解復(fù)用時,就可以得到PMT,如圖7中的ES (MAP) (PMT-1)和ES (MAP) (PMT-2);在傳輸解復(fù)用時,就可以得到PAT,如圖7中的PS-MAP。將圖6與圖7對照,就可以知道解碼器是如何追蹤到TS上從不同的ES來的TS包及其PID的。(未完待續(xù))