盧崇麟
國(guó)家廣播電視總局六四一臺(tái) 福建省 泉州市 362100
隨著廣播電視技術(shù)的發(fā)展,我國(guó)已全面實(shí)現(xiàn)了使用數(shù)字電視進(jìn)行傳輸覆蓋,數(shù)字電視的數(shù)字編碼壓縮后都以碼流的形式輸出,本文接下來(lái)對(duì)MPEG-2 的碼流形成進(jìn)行分析,并介紹數(shù)字碼流錯(cuò)誤監(jiān)測(cè)指標(biāo)。
在數(shù)字電視系統(tǒng)中,所有的視頻、音頻,數(shù)據(jù)信息都通過(guò)編碼得到基本碼流,或稱為ES流,是最原始的編碼數(shù)據(jù)。因此需要在形成基本碼流后,再產(chǎn)生打包的基本碼流,就是PES 流。一般以一幀圖像為一個(gè)基本編碼單元,形成打包的基本碼流。打包基本碼流的長(zhǎng)度不固定,是由基本碼流加入包頭信息后形成的。
PES 包頭中包含著重要信息,其中最為重要的是PTS 和DTS,PTS 指的是顯示時(shí)間標(biāo)簽,而DTS 指的是解碼時(shí)間標(biāo)簽,PTS 指示已解碼的信息何時(shí)顯示,而DTS 則是指對(duì)接收到的數(shù)據(jù)信息何時(shí)進(jìn)行解碼。為了能夠按照預(yù)期的設(shè)計(jì)顯示每幅圖像,就要對(duì)每副圖像設(shè)置一個(gè)PTS 標(biāo)簽。DTS 的值可以由PTS得到,一般情況下兩者是相同的,但是當(dāng)編碼圖像包含B 幀時(shí),解碼時(shí)間和顯示時(shí)間是不同的,此時(shí)的PTS 和DTS 是不一樣的。音頻編碼解碼的順序和輸出的順序是一致的,所以PTS 和DTS 的值是一樣的。PTS 是包頭信息中最重要的信息之一,它直接影響終端的視音頻是否同步。PES包最重要的字段有如下幾個(gè):
PES 包的長(zhǎng)度是可變的,用16比特來(lái)表示,因此一個(gè)PES 包的最大長(zhǎng)度為2 的16 次方字節(jié)。PES 包凈荷的第1 個(gè)字節(jié)是一幀圖像、一個(gè)圖像序列或GOP的起始碼。PES 包頭長(zhǎng)度字節(jié)占用8比特,用PES 包長(zhǎng)減掉PES 包頭的長(zhǎng)度,剩下的就是PES 包的凈荷數(shù)據(jù)長(zhǎng)度。
PES 包起始前綴占用24 比特,表征一個(gè)PES 包開(kāi)始,類似于同步字節(jié),是一個(gè)固定的數(shù)值,用16進(jìn)制表示為OX000001。
ES 流標(biāo)識(shí)符占用ES 流標(biāo)識(shí)符8比特,表征ES流的類型,說(shuō)明所傳的ES 流是視頻、音頻或數(shù)據(jù)。一般用OXC0 表示音頻,OXE0表示視頻。
節(jié)目流PS指將同一節(jié)目的視頻、音頻,數(shù)據(jù)信息流進(jìn)行復(fù)用產(chǎn)生的數(shù)據(jù)流,由PES 流組成,PES流是由ES流加包頭產(chǎn)生的。
PS流中每個(gè)PES包的長(zhǎng)度不統(tǒng)一,雖然可通過(guò)OX000001 同步字節(jié)檢測(cè)是否同步,但無(wú)法準(zhǔn)確確定同步位置,在遇到差錯(cuò)時(shí),無(wú)法檢測(cè)到同步位置,無(wú)法恢復(fù)同步。
PS流只適合信道干擾小的使用環(huán)境,如演播室或系統(tǒng)內(nèi)的硬盤(pán)等,因此必須使用統(tǒng)一長(zhǎng)度的數(shù)據(jù)包來(lái)滿足抗干擾的需求。
視頻、音頻或數(shù)據(jù)PES 流經(jīng)過(guò)傳輸復(fù)用器組合成的一個(gè)碼流就是傳輸流,分為節(jié)目復(fù)用和傳輸復(fù)用。節(jié)目復(fù)用通常是將有同一時(shí)間基準(zhǔn)的視頻、音頻或數(shù)據(jù)的PES 包打包。而傳輸復(fù)用是將不同時(shí)間基準(zhǔn)的多套節(jié)目PES 流進(jìn)行打包處理。打包長(zhǎng)度不能太長(zhǎng),規(guī)定為188 字節(jié),類似于計(jì)算機(jī)通信的數(shù)據(jù)包長(zhǎng)度,IP包最大長(zhǎng)度為65535 字節(jié)。在TS 碼流層插入PCR,用于收端節(jié)目與發(fā)端節(jié)目的同步,由于TS流打包長(zhǎng)度固定,便于在數(shù)據(jù)流中準(zhǔn)確檢測(cè)到同步字節(jié)的位置,適用于信道環(huán)境差的情況。
傳輸流的包長(zhǎng)為188 字節(jié),其中包頭占用4 字節(jié),數(shù)據(jù)凈荷占用184 字節(jié),數(shù)據(jù)凈荷為PES格式的數(shù)據(jù)流。如圖1 為某一傳輸碼流包頭監(jiān)測(cè)結(jié)果。包頭由下面幾個(gè)部分組成:
包頭中同步字節(jié)為OX47,占用8 比特。數(shù)字電視不同于模擬電視,模擬電視可以使用行、場(chǎng),色同步信號(hào)實(shí)現(xiàn)收發(fā)兩端的同步,而數(shù)字電視經(jīng)過(guò)壓縮編碼、數(shù)字化后,以數(shù)據(jù)包的形式存在,同步信息已不存在,只能通過(guò)OX47字節(jié)來(lái)識(shí)別以實(shí)現(xiàn)同步。
傳送錯(cuò)誤指示占用1 比特,用來(lái)表示傳輸流中是否有錯(cuò)誤,1表示有錯(cuò)誤,0表示沒(méi)有錯(cuò)誤。
傳送優(yōu)先級(jí)占用1 比特,表示該傳輸包的優(yōu)先級(jí),類似于PES包中的優(yōu)先級(jí)。
包PIP 占用13 比特,每一個(gè)視頻、音頻,數(shù)據(jù)的PES 流都分別對(duì)應(yīng)一個(gè)PID,在數(shù)據(jù)流中識(shí)別出各自的視頻、音頻節(jié)目唯一的方法就是不同的PID。終端解碼PID 在傳輸流中還要傳送節(jié)目專用信息,例如節(jié)目關(guān)聯(lián)表PAT,節(jié)目映射表PMT 等也必須用PID 來(lái)區(qū)分和識(shí)別。這些節(jié)目專用信息表的PID 有的是固定值,例如PAT表的PID用OX0001表示,NIT 表的 PID 用 OX0010 表示 , SDT 表 和 BAT 表 的 PID 用OX0011 表示。節(jié)目專用信息的TS包有效數(shù)據(jù)不足時(shí),使用空包表示其PID固定為OX1FFF。前文已經(jīng)說(shuō)明收發(fā)端的同步是通過(guò)同步字節(jié)建立起來(lái)的,而且PID 在包頭中的位置固定,因此收端很容易通過(guò)PID值提取所需的數(shù)據(jù)。
傳送加擾控制占用2 比特,表征該包是否被加擾,00表示未被加擾。
適配域控制字占用1 比特,表示適配域是否存在。
連續(xù)計(jì)數(shù)器占用4 比特,表征發(fā)送的數(shù)據(jù)從發(fā)端傳輸?shù)绞斩耸欠駚G失,發(fā)端循環(huán)對(duì)所有TS流傳送包從0 到15 計(jì)數(shù),若收端收到的包和之前的包計(jì)數(shù)值不連續(xù),則認(rèn)為傳輸中丟失了數(shù)據(jù)包。如圖1 中有14 個(gè)連續(xù)計(jì)數(shù)錯(cuò)誤。
圖1 傳輸流包頭監(jiān)測(cè)
PCR 是適配域中的一個(gè)重要參數(shù),占用42比特。編碼器的系統(tǒng)時(shí)鐘頻率為27MHz,在視頻進(jìn)行編碼時(shí),系統(tǒng)時(shí)鐘的取樣值要賦予TS流中的PCR,用于收端定時(shí)信息的提取。MPEG-2規(guī)定PCR傳遞的間隔不應(yīng)大于40毫秒,兩個(gè)連續(xù)的PCR 差值不大于100 毫秒。PTS、DTS和PCR主要用來(lái)解決視音頻傳輸中的同步問(wèn)題,PTS、DTS是在PES碼流層插入的。
傳輸流的技術(shù)測(cè)試使用TR101290測(cè)試標(biāo)準(zhǔn)和三級(jí)錯(cuò)誤檢測(cè)模式。TR101290測(cè)試標(biāo)準(zhǔn)將錯(cuò)誤指標(biāo)分為三級(jí),第一級(jí)指標(biāo)是確保解碼器正確解碼的幾個(gè)必要參數(shù),第二級(jí)是解碼器持續(xù)可靠工作必須的基本指標(biāo),第三級(jí)為確保應(yīng)用正確使用的指標(biāo)。
1.傳送流同步丟失錯(cuò)誤:當(dāng)連續(xù)監(jiān)測(cè)到兩個(gè)以上的不正確同步時(shí),即為同步丟失錯(cuò)誤,通常以5個(gè)包為一個(gè)組進(jìn)行監(jiān)測(cè)。
2.同步字節(jié)錯(cuò)誤:如果傳輸流中的同步字節(jié)不是0X47,即使此時(shí)的包長(zhǎng)度仍然是188 字節(jié),也會(huì)產(chǎn)生同步字節(jié)錯(cuò)誤。
3.PAT 錯(cuò)誤: PAT 表的 PID值為0X0000時(shí),PAT錯(cuò)誤可能是PAT 表的重復(fù)間隔超過(guò)0.5 秒、PAT表為空或者PAT的PID中包頭的加密控制段不是0,即被加擾。
4.連續(xù)計(jì)數(shù)錯(cuò)誤:發(fā)端對(duì)所有相同PID 的包進(jìn)行從0 到15 重復(fù)計(jì)數(shù),收端有丟包、包重復(fù)、包順序錯(cuò)的情況就會(huì)產(chǎn)生連續(xù)計(jì)數(shù)錯(cuò)。
5.PMT錯(cuò)誤:PMT錯(cuò)誤可能是PMT 表的重復(fù)間隔超過(guò)0.5秒、PMT 表為空或者PMT 的PID中包頭的加密控制段不是0。
6.設(shè)置PID錯(cuò)誤:監(jiān)測(cè)是否每一個(gè)PID 都有碼流,是否同一PID 的視頻、音頻或數(shù)據(jù)的重復(fù)間隔不超過(guò)0.5 秒。若碼流沒(méi)有PID,無(wú)法完成該節(jié)目解碼。
1.傳輸錯(cuò)誤:TS包頭中的傳送包錯(cuò)誤指示為1,說(shuō)明傳送的包中有一個(gè)不可糾正的錯(cuò)誤位。
2.CRC 錯(cuò)誤:CRC錯(cuò)誤表明在PSI 和SI 表中循環(huán)冗余檢測(cè)碼檢測(cè)到錯(cuò)誤。
3.PCR 間隔錯(cuò)誤:如前所述,收端收到PCR 間隔超過(guò)100毫秒、PCR整個(gè)發(fā)送間隔超過(guò)40毫秒,就會(huì)影響收端正確解碼,產(chǎn)生PCR間隔錯(cuò)誤。
4.PCR抖動(dòng)錯(cuò)誤:PCR精度和PCR 抖動(dòng)不超過(guò)500 毫秒,否則會(huì)使收端時(shí)鐘失鎖或抖動(dòng)過(guò)大。
5.PTS 錯(cuò)誤:PTS 重復(fù)發(fā)送間隔為700 毫秒,否則會(huì)影響圖像的正確顯示。如圖2 展示的是PTS 重復(fù)間隔錯(cuò)誤的截圖,如圖3為PTS重復(fù)間隔小于700ms的截圖。
6.CAT錯(cuò)誤:表示沒(méi)有CAT表或PID為0X0001的表不是CAT表,CAT表指出授權(quán)管理信息EMM的PID,確保接收機(jī)正確解碼。
圖2 PTS重復(fù)間隔錯(cuò)誤
圖3 PTS重復(fù)間隔小于700ms
第三級(jí)錯(cuò)誤主要指標(biāo)為:EIT 錯(cuò)誤、NIT 錯(cuò)誤、SDT 錯(cuò)誤、RST 錯(cuò)誤、TDT 錯(cuò)誤、SI 重復(fù)率錯(cuò)誤、非指定PID 錯(cuò)誤,空緩沖器錯(cuò)誤和數(shù)據(jù)延遲錯(cuò)誤。第三級(jí)錯(cuò)誤并不一定對(duì)接收機(jī)解碼產(chǎn)生致命影響。