国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于mpeg-2的多路ps流轉(zhuǎn)復(fù)用為一路ts流的方法

      文檔序號:7625812閱讀:257來源:國知局
      專利名稱:基于mpeg-2的多路ps流轉(zhuǎn)復(fù)用為一路ts流的方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種基于MPEG-2的多路PS流復(fù)用 為一路TS流的方法。
      背景技術(shù)
      數(shù)字電視廣播系統(tǒng)是目前應(yīng)用最為廣泛的數(shù)字圖像信息通信系統(tǒng)。數(shù)字電視廣 播系統(tǒng)采用DVB標(biāo)準(zhǔn)(Digital Video Broadcasting,數(shù)字視頻廣播標(biāo)準(zhǔn))作為數(shù)字電視節(jié) 目信道傳輸標(biāo)準(zhǔn),DVB標(biāo)準(zhǔn)選定MPEG-2標(biāo)準(zhǔn)作為音頻及視頻的編碼壓縮方式,將一路信源 編碼為 ES 流(Elementary Mream,基本碼流)后打包形成 PES 包(Packetised Elementary Mreams,基本碼流包),再經(jīng)轉(zhuǎn)換處理將PES包轉(zhuǎn)換為TS包后,將各路作為電視節(jié)目信源的 ES流轉(zhuǎn)換的TS包復(fù)用為一路TS流(Transport Mream,傳輸流),最后通過衛(wèi)星、有線電視 等不同媒介傳輸方式進(jìn)行傳輸。為了能較快的制作出數(shù)字電視節(jié)目,很多時候不能僅依靠 自行錄制來獲取信源,還可以將既得音、視頻數(shù)據(jù)作為信源。DVD光盤的容量大、音畫質(zhì)量 好,是既得音、視頻數(shù)據(jù)來源的優(yōu)良選擇。但是,DVD光盤中的音、視頻數(shù)據(jù)是采用MPEG-2標(biāo) 準(zhǔn)編碼壓縮后以PS流(Program Stream,節(jié)目流)的形式進(jìn)行存儲的,無法直接用于數(shù)字電 視節(jié)目信道傳輸。

      發(fā)明內(nèi)容
      針對現(xiàn)有技術(shù)中存在的上述不足,本發(fā)明的目的在于提供一種基于MPEG-2的多 路PS流復(fù)用為一路TS流的方法,在MPEG-2標(biāo)準(zhǔn)的系統(tǒng)層實現(xiàn)PS流至TS流的轉(zhuǎn)換和復(fù)用, 進(jìn)而解決用DVD光盤中存儲的音、視頻數(shù)據(jù)制作數(shù)字電視節(jié)目的問題。為實現(xiàn)上述目的,本發(fā)明采用了如下技術(shù)手段
      基于MPEG-2的多路PS流復(fù)用為一路TS流的方法,包括以下步驟
      A)從一路PS流中拷貝出PES包,具體為
      al)讀取PS流數(shù)據(jù),通過計算相鄰兩個PS包起始碼之間的字節(jié)數(shù)獲知PS包的字節(jié)數(shù), 進(jìn)而提取出PS流中的各個PS包;
      a2)分別解析所提取的PS包的系統(tǒng)頭部分,獲知每個PS包中所包含的PES包的個數(shù) 和類型;再分別解析各個PES包的包頭部分,獲知每個PES包的字節(jié)數(shù);進(jìn)而分別拷貝出PS 流中所包含的N個PES包;
      B)將從一路PS流中拷貝出的PES包轉(zhuǎn)換為TS包,具體為
      bl)對于從一路PS流中拷貝出的N個PES包中第η個PES包,η e {1,2,. . .,N},將 第η個PES包按字節(jié)順序分割為M個184字節(jié)的數(shù)據(jù)塊dn,m和1個小于或等于184字節(jié)的 數(shù)據(jù)塊 dn,e ;其中 me {1,2,..., Μ}, M= int (DPESn/184),DPESn 表示第 η 個 PES 包的字節(jié)數(shù), i/7i(DPESn/184)表示小于或等于(DPESn/184)的最大整數(shù);b2)按照TS包格式,將第η個PES包分割所得的各個數(shù)據(jù)塊分別封裝為TS包;所述TS 包格式由4個字節(jié)的包頭和184字節(jié)的載荷區(qū)構(gòu)成;TS包格式的包頭依次由1個字節(jié)的同 步字節(jié)字段、Ibit的傳輸誤碼指示字段、Ibit的有效載荷單元起始指示字段、Ibit的傳輸 優(yōu)先字段、Hbit的PID字段、2bit的傳輸加擾控制字段、2bit的自適應(yīng)控制字段和4bit的 連續(xù)計數(shù)器字段構(gòu)成;
      第η個PES包分割所得的各個數(shù)據(jù)塊分別封裝為TS包的步驟如下
      ①對于184字節(jié)的數(shù)據(jù)塊dn,m:
      將數(shù)據(jù)塊dn,m封裝為TS包格式的載荷區(qū);TS包格式的包頭中,除PID字段、有效載荷單 元起始指示字段和自適應(yīng)控制字段以外的字段均為0;自適應(yīng)控制字段的兩個bit分別為0 和1 ;有效載荷單元起始指示字段,當(dāng)m=l時取為1,當(dāng)m興1時取為0 ;
      ②對于小于或等于184字節(jié)的數(shù)據(jù)塊dn,e
      當(dāng)數(shù)據(jù)塊dn,e為184字節(jié)時,將數(shù)據(jù)塊de封裝為TS包格式的載荷區(qū);TS包格式的包頭 中,除PID字段和自適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit分別為0 和1 ;
      當(dāng)數(shù)據(jù)塊dn,e為183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段和數(shù)據(jù)塊4封裝為 TS包格式的載荷區(qū),自適應(yīng)區(qū)長度字段的值為0x01 ;TS包格式的包頭中,除PID字段和自 適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;
      當(dāng)數(shù)據(jù)塊dn,e小于183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段、L個填充字節(jié)和 數(shù)據(jù)塊dn,e封裝為TS包格式的載荷區(qū),其中L=ISS-DttaY Ddn,e為數(shù)據(jù)塊dn,e的字節(jié)數(shù),自適 應(yīng)區(qū)長度字段的值為(L+1),填充字節(jié)的值為OxFF ;TS包格式的包頭中,除PID字段和自適 應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;
      ③對于上述①和②中TS包格式包頭中的PID字段
      當(dāng)且僅當(dāng)封裝于TS包格式載荷區(qū)中的數(shù)據(jù)塊dn,m或數(shù)據(jù)塊dn,e來自同一 PS流中拷貝 出的同一類型的PES包時,其包頭中PID字段的值相同;
      b3)按步驟bl)和b2)將從一路PS流中拷貝出的N個PES包依次轉(zhuǎn)換為TS包;
      C)通過步驟A)和B)從作為數(shù)字電視節(jié)目信源的I路PS流中分別拷貝出PES包并轉(zhuǎn) 換為TS包;其中,I彡1 ;
      D)完成復(fù)用處理,形成一路TS流,具體為
      dl)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的一個PS包的碼率 Rpsj=Dpsjχ Δ SCRj/Fclk ;
      其中,Rpsj表示一路PS流中第j個PS包的碼率,Dpsj表示該第j個PS包的字節(jié)數(shù), Δ SCRj表示該第j個PS包與其相鄰的第j+Ι個PS包的SCR差值;Fm表示系統(tǒng)時鐘頻率; d2)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的碼率
      Ri= Σ j=i — j(RpSj)/J ;
      其中,Ri表示作為數(shù)字電視節(jié)目信源的I路PS流中第i路PS流的碼率,J表示該第i 路PS流中包含PS包的個數(shù);
      d3)通過步驟dl)和d2)分別計算出作為數(shù)字電視節(jié)目信源的I路PS流的碼率并求 和,得到數(shù)字電視節(jié)目信源的總碼率Rt。tal ;
      d4)設(shè)定TS流的碼率Rts,使得其滿足Rt。tal <RTS<2Rtotal ;d5)按下式計算TS流中傳輸一個TS包所對應(yīng)的PCR增值Δ PCRts Δ PCRts=FclkX 188 X 8/RTS ;
      d6)以作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的第一個PS包的SCR值作為該 路PS流轉(zhuǎn)化為TS流的PCR起始值,每插入一個TS包PCR值就增加Δ PCRts,由此確定作為 數(shù)字電視節(jié)目信源的I路PS流復(fù)用為TS流后各路的PCR信息;然后,采用現(xiàn)有的復(fù)用方法 將作為數(shù)字電視節(jié)目信源的I路PS流轉(zhuǎn)換的TS包復(fù)用為一路碼率為Rts的TS流,并相應(yīng) 的插入各路數(shù)字電視節(jié)目信源的PSI信息,碼率匹配采用填充空TS包的方式實現(xiàn)。本發(fā)明相比于現(xiàn)有技術(shù)的優(yōu)勢在于,本發(fā)明的基于MPEG-2的多路PS流復(fù)用為一 路TS流的方法在MPEG-2標(biāo)準(zhǔn)的系統(tǒng)層實現(xiàn)PS流至TS流的轉(zhuǎn)換和復(fù)用,利用該方法可以 將DVD光盤中存儲的PS流形式的音、視頻數(shù)據(jù)轉(zhuǎn)換為TS流用于制作數(shù)字電視節(jié)目,為數(shù)字 電視節(jié)目制作提供了 一種新的便捷途徑。


      圖1為PS包的格式結(jié)構(gòu)示意圖; 圖2為PES包的格式結(jié)構(gòu)示意圖3為TS包的格式結(jié)構(gòu)示意圖。
      具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明的技術(shù)方案作進(jìn)一步的說明。本發(fā)明的基于MPEG-2的多路PS流復(fù)用為一路TS流的方法分為四個大的步驟
      A)首先從一張DVD光盤中讀取的一路PS流中拷貝出PES包;
      B)然后再將拷貝出的PES包轉(zhuǎn)換為TS包;
      C)通過步驟A)和B)從作為數(shù)字電視節(jié)目信源的I張DVD光盤中讀取的I路PS流中 分別拷貝出PES包并轉(zhuǎn)換為TS包;其中,I彡1 ;
      D)完成復(fù)用處理,形成一路TS流。下面詳細(xì)說明上述各個步驟的實現(xiàn)方法和功能。A)從一路PS流中拷貝出PES包的具體步驟如下
      al)計算出每一個PS包的字節(jié)數(shù),原理就是計算PS流中相鄰兩個PS包起始碼之間的 字節(jié)數(shù),這個字節(jié)數(shù)就是PS包的字節(jié)數(shù)。獲取PS包的字節(jié)數(shù)以后,即可在計算機(jī)中相應(yīng)的 分配存儲空間的大小,把整個PS包讀取到存儲空間中。具體實現(xiàn)方法是,通過識別PS包的 起始碼到PS包的起始碼位置,然后計算相鄰兩個PS包起始碼之間的字節(jié)數(shù)即為PS包的字 節(jié)數(shù),從而讀取出每一個PS包。a2)PS包的格式結(jié)構(gòu)如圖1所示。每個PS包包含有多個PES包,分別解析所提取 的PS包的系統(tǒng)頭部分,獲知每個PS包中所包含的PES包的個數(shù)和類型,這樣就可以預(yù)先分 配好存放PES包的內(nèi)存塊的個數(shù);PES包的類型有兩種,一種是音頻數(shù)據(jù)類型,另一種是視 頻數(shù)據(jù)類型。PES包的格式結(jié)構(gòu)如圖2所示。PES包的包頭信息中包含有PES包長度字段, 分別解析各個PES包的包頭部分,可以獲知每個PES包的字節(jié)數(shù),從而確定存放PES包的各個內(nèi)存塊的大小,然后分別拷貝出PES包保存到相應(yīng)的內(nèi)存塊中。具體實現(xiàn)方法是,PS包 指針跳過PS包的包頭部分,處理PS包的系統(tǒng)頭,獲取PS包中PES包的個數(shù)N和類型信息, 然后分配N個內(nèi)存塊(大小待定),同時PS包指針指向第一個PES包的包頭;從PES包的包 頭獲取PES包的長度,為以第一個內(nèi)存塊分配大小并拷貝出第一個PES包,然后PS包指針 指向下一個PES包頭;若一路PS流中共包含N個PES包,則這樣循環(huán)N次,直到把所有N個 PES包都拷貝到相應(yīng)的內(nèi)存塊中。用這樣的方法,分別拷貝出PS流中所包含的N個PES包; 對不同的PS流而言,這里的數(shù)字N不是一個定值,需要根據(jù)每路PS流中包含的PS包個數(shù) 以及每個PS包中包含的PES包個數(shù)而定。 B)將從一路PS流中拷貝出的PES包轉(zhuǎn)換為TS包的具體步驟如下
      bl)對于從一路PS流中拷貝出的N個PES包中第η個PES包,η e {1,2,. . .,N},將 第η個PES包按字節(jié)順序分割為M個184字節(jié)的數(shù)據(jù)塊dn,m和1個小于或等于184字節(jié)的 數(shù)據(jù)塊 dn,e ;其中 me {1,2,..., Μ}, M= int (DPESn/184),DPESn 表示第 η 個 PES 包的字節(jié)數(shù), i/7i(DPESn/184)表示小于或等于(DPESn/184)的最大整數(shù);
      b2)TS包的結(jié)構(gòu)格式如圖3所示。按照TS包格式,將第η個PES包分割所得的各個數(shù) 據(jù)塊分別封裝為TS包;所述TS包格式由4個字節(jié)的包頭和184字節(jié)的載荷區(qū)構(gòu)成;TS包 格式的包頭依次由1個字節(jié)的同步字節(jié)字段、Ibit的傳輸誤碼指示字段、Ibit的有效載荷 單元起始指示字段、Ibit的傳輸優(yōu)先字段、Ubit的PID字段、2bit的傳輸加擾控制字段、 2bit的自適應(yīng)控制字段和4bit的連續(xù)計數(shù)器字段構(gòu)成;
      第η個PES包分割所得的各個數(shù)據(jù)塊分別封裝為TS包的步驟如下
      ①對于184字節(jié)的數(shù)據(jù)塊dn,m:
      將數(shù)據(jù)塊dn,m封裝為TS包格式的載荷區(qū);TS包格式的包頭中,除PID字段、有效載荷單 元起始指示字段和自適應(yīng)控制字段以外的字段均為0;自適應(yīng)控制字段的兩個bit分別為0 和1 ;有效載荷單元起始指示字段,當(dāng)m=l時取為1,當(dāng)m興1時取為0 ;
      ②對于小于或等于184字節(jié)的數(shù)據(jù)塊dn,e
      當(dāng)數(shù)據(jù)塊dn,e為184字節(jié)時,將數(shù)據(jù)塊de封裝為TS包格式的載荷區(qū);TS包格式的包頭 中,除PID字段和自適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit分別為0 和1 ;
      當(dāng)數(shù)據(jù)塊dn,e為183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段和數(shù)據(jù)塊4封裝為 TS包格式的載荷區(qū),自適應(yīng)區(qū)長度字段的值為0x01 ;TS包格式的包頭中,除PID字段和自 適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;
      當(dāng)數(shù)據(jù)塊dn,e小于183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段、L個填充字節(jié)和 數(shù)據(jù)塊dn,e封裝為TS包格式的載荷區(qū),其中L=ISS-DttaY Ddn,e為數(shù)據(jù)塊dn,e的字節(jié)數(shù),自適 應(yīng)區(qū)長度字段的值為(L+1),填充字節(jié)的值為OxFF ;TS包格式的包頭中,除PID字段和自適 應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;
      ③對于上述①和②中TS包格式包頭中的PID字段
      當(dāng)且僅當(dāng)封裝于TS包格式載荷區(qū)中的數(shù)據(jù)塊dn,m或數(shù)據(jù)塊dn,e來自同一 PS流中拷貝 出的同一類型的PES包時,其包頭中PID字段的值相同;
      b3)按步驟bl)和b2)將從一路PS流中拷貝出的N個PES包依次轉(zhuǎn)換為TS包; C)通過步驟A)和B)從作為數(shù)字電視節(jié)目信源的I路PS流中分別拷貝出PES包并轉(zhuǎn)換為TS包;作為數(shù)字電視節(jié)目信源的PS流可以是1路,也可以是多路,即I彡1 ; D)完成復(fù)用處理,形成一路TS流的具體步驟如下
      復(fù)用過程的重點,就是決定什么時間把PCR信息插入到TS數(shù)據(jù)包流中去,插入的PCR 信息就是為了實現(xiàn)PS流中SCR (系統(tǒng)時鐘基準(zhǔn))映射到TS流中去,以便在TS流的解碼過 程中能夠?qū)σ?、視頻數(shù)據(jù)進(jìn)行幀同步。按照DVB標(biāo)準(zhǔn)(Digital Video Broadcasting,數(shù)字 視頻廣播標(biāo)準(zhǔn)),所生成TS流中的PCR信息出現(xiàn)的時間間隔為40ms。dl)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的一個PS包的碼 率
      Rpsj=Dpsjχ Δ SCRj/Fclk ;
      其中,Rpsj表示一路PS流中第j個PS包的碼率,Dpsj表示該第j個PS包的字節(jié)數(shù), Δ SCRj表示該第j個PS包與其相鄰的第j+Ι個PS包的SCR差值;Fm表示系統(tǒng)時鐘頻率; 本事實例中,系統(tǒng)時鐘為27MHz,即FaK=27MHz ;
      d2)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中任一路PS流的碼率
      Ri= Σ j=i — j(RpSj)/J ;
      其中,Ri表示作為數(shù)字電視節(jié)目信源的I路PS流中第i路PS流的碼率,J表示該第i 路PS流中包含PS包的個數(shù);
      d3)通過步驟dl)和d2)分別計算出作為數(shù)字電視節(jié)目信源的I路PS流的碼率并求 和,得到數(shù)字電視節(jié)目信源的總碼率Rt。tal ;
      d4)設(shè)定TS流的碼率Rts,使得其滿足Rt。tal <RTS<2Rtota ;
      TS流的碼率Rts必須大于數(shù)字電視節(jié)目信源的總碼率Rtotal,否則必然造成解碼器緩沖 區(qū)下溢。如果TS流的碼率I TS小于了 I t。tal,會造成播放速度變慢,音視頻不同步等傳輸問 題。所以在將多路PS流復(fù)用為一路TS流的過程中,碼率匹配時可以在TS流中加入空TS 包,使得TS流的碼率滿足Rt。tal <RTS<2Rt。ta。TS流碼率Rts比Rtotal大一些的好處在于,可以 保證所有節(jié)目流都按時到達(dá)解碼器,并且可以降低TS流中有用TS包被干擾的概率,從而提 高TS流抗干擾能力;Rts小于2Rt。ta的原因是避免碼率擴(kuò)展過大而導(dǎo)致TS流中包含過多的 空TS包,使得TS流中無用數(shù)據(jù)量過多而降低傳輸效率。d5)按下式計算TS流中傳輸一個TS包所對應(yīng)的PCR增值Δ PCRts APCR=FclkX188X8/RTS ;
      通過這一步,復(fù)用前的準(zhǔn)備工作已完成。d6)以作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的第一個PS包的SCR值作 為該路PS流轉(zhuǎn)化為TS流的PCR起始值,每插入一個TS包PCR值就增加Δ PCRts,由此確定 作為數(shù)字電視節(jié)目信源的I路PS流復(fù)用為TS流后各路的PCR信息;然后,采用現(xiàn)有的復(fù)用 方法將作為數(shù)字電視節(jié)目信源的I路PS流轉(zhuǎn)換的TS包復(fù)用為一路碼率為Rts的TS流,并 相應(yīng)的插入各路數(shù)字電視節(jié)目信源的PSI信息,碼率匹配采用填充空TS包的方式實現(xiàn)。這里要介紹兩個概念碼率匹配和輪詢插入。碼率匹配PS流里每一個字節(jié)都由“系統(tǒng)參考時鐘SCR”和“PS流當(dāng)前碼率”共同 確定了唯一的一個時間點,說明該時間點之前PS流中的這個字節(jié)必須被送入解碼器的緩 沖區(qū)中。如果定義“一路PS流中相鄰兩個時間點之差與設(shè)定的TS碼率I TS的乘積”為期望 數(shù)據(jù)量,定義“PS流中相鄰兩個時間點之差與PS流實際碼率I t。tal的乘積”為實際數(shù)據(jù)量,由于設(shè)定的TS碼率Rts比PS流實際碼率I t。tal的值更大,因此實際數(shù)據(jù)量是小于期望數(shù)據(jù) 量的,因此,可以通過插入空TS包的方式使得碼率為I t。tal的多路PS流復(fù)用為碼率為Rts的 一路TS流,即在相鄰兩個時間點的實際數(shù)據(jù)量之后填充空TS包使得縱數(shù)據(jù)量等于期望數(shù) 據(jù)量。這一過程,稱為碼率匹配。輪詢插入按DVB的標(biāo)準(zhǔn),每間隔40ms插入一個包含PCR信息的TS包,而系統(tǒng)時 鐘頻率為27MHz,將1秒時間換算為PCR值即為27M個PCR時鐘單位,則40ms時間換算成 PCR值即為0. 18 M個PCR時鐘單位,因此在TS流中每增加0. 18M個PCR時鐘單位的時間 就需要插入一個包含PCR信息的TS包;而按DVB的標(biāo)準(zhǔn),插入包含PSI信息節(jié)目特定信息 (節(jié)目特定信息)的TS包的時間間隔不得超過700ms,例如每間隔IOOms插入一個包含PSI 信息的TS包,IOOms時間換算成PCR值即為0. 45 M個PCR時鐘單位,因此在TS流中每增加 0. 45M個PCR時鐘單位的時間就需要插入一個包含PSI信息的TS包。這一過程,稱為PCR 信息和PSI信息的輪詢插入?,F(xiàn)有的TS流服用方法中,PCR信息和PSI信息的插入方式, 就是采用的輪詢插入方法。本發(fā)明的服用過程中,PCR信息的計算方式,即以作為數(shù)字電視節(jié)目信源的I路PS 流中一路PS流的第一個PS包的SCR值作為該路PS流轉(zhuǎn)化為TS流的PCR起始值,每插入 一個TS包PCR值就增加Δ PCRts,由此確定作為數(shù)字電視節(jié)目信源的I路PS流復(fù)用為TS流 后各路的PCR信息。而各路數(shù)字電視節(jié)目信源的PSI信息需要根據(jù)各路數(shù)字電視節(jié)目信源 的具體信息而制定?;镜腜SI信息包括PAT表(節(jié)目源結(jié)合表)、ΡΜΤ表(節(jié)目源映射表)、 SDT表(節(jié)目信息表),下面介紹一下PSI信息中PAT表、PMT表和SDT表的作用
      PAT表解碼器通過完整的PAT表可以知道這TS流文件包含幾路節(jié)目和每路節(jié)目對應(yīng) 的PMT表的PID,從而為下一步解析PMT做好準(zhǔn)備。PMT表ΡΑΤ表中已經(jīng)為每路節(jié)目的PMT表唯一定義了一個PID,這樣通過PID就 能解析出PMT表的內(nèi)容。PMT表的作用是告訴解碼器該P(yáng)MT表對應(yīng)的節(jié)目流的數(shù)據(jù)流的 PID (音頻和視頻的PID),從而解碼器就可以從眾多的分散的TS包中依次提取出每一路節(jié) 目來。另外,從PMT表可以獲得包含有PCR (節(jié)目時鐘基準(zhǔn))信息的TS包的PID,從而解碼 器可以提取出PCR信息,恢復(fù)出系統(tǒng)參考時鐘。SDT表SDT表的主要作用就是對整個TS流里的節(jié)目流進(jìn)行描述,解碼器通過SDT 表可以知道節(jié)目名稱,節(jié)目提供商等節(jié)目信息,這樣用戶可以根據(jù)這些信息選擇自己喜歡 的節(jié)目。由此,在TS流中,PAT表里標(biāo)示了 TS流里的節(jié)目數(shù),以及每一路節(jié)目對應(yīng)的PMT 表,通過每路節(jié)目對應(yīng)的PMT表,可以知道每路節(jié)目的音頻和視頻的PID,通過PID就可以從 眾多的TS包中提取每一路節(jié)目對應(yīng)的視頻和音頻數(shù)據(jù),從而分別完成解碼。本發(fā)明中將作為數(shù)字電視節(jié)目信源的多路PS流轉(zhuǎn)換的TS包復(fù)用為一路碼率為I TS 的TS流,其具體步驟與現(xiàn)有技術(shù)中將多路作為電視節(jié)目信源的ES流轉(zhuǎn)換的TS包復(fù)用為一 路TS流的具體方法相同,屬于現(xiàn)有技術(shù),本文就不再加以贅述。多路PS流按照本發(fā)明的方 法,加上通過輪詢插入特定的PSI信息后,轉(zhuǎn)化為一路TS流,再發(fā)送出去,接收端收到TS流 后將其中的空TS包丟棄,那么TS流每一個時間字節(jié)到達(dá)解碼器的時間必定和原PS流里對 應(yīng)的字節(jié)到達(dá)解碼器的時間相同,這樣解碼后的視頻和音頻必定能同步的播放出來,從而 實現(xiàn)了多路PS流到一路TS流的轉(zhuǎn)換復(fù)用。
      最后說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制,盡管參照較 佳實施例對本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對本發(fā)明的技 術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的宗旨和范圍,其均應(yīng)涵蓋在本 發(fā)明的權(quán)利要求范圍當(dāng)中。
      權(quán)利要求
      1.基于MPEG-2的多路PS流復(fù)用為一路TS流的方法,其特征在于,包括以下步驟A)從一路PS流中拷貝出PES包,具體為al)讀取PS流數(shù)據(jù),通過計算相鄰兩個PS包起始碼之間的字節(jié)數(shù)獲知PS包的字節(jié)數(shù), 進(jìn)而提取出PS流中的各個PS包;a2)分別解析所提取的PS包的系統(tǒng)頭部分,獲知每個PS包中所包含的PES包的個數(shù) 和類型;再分別解析各個PES包的包頭部分,獲知每個PES包的字節(jié)數(shù);進(jìn)而分別拷貝出PS 流中所包含的N個PES包;B)將從一路PS流中拷貝出的PES包轉(zhuǎn)換為TS包,具體為bl)對于從一路PS流中拷貝出的N個PES包中第η個PES包,η e {1,2,. . .,N},將 第η個PES包按字節(jié)順序分割為M個184字節(jié)的數(shù)據(jù)塊dn,m和1個小于或等于184字節(jié)的 數(shù)據(jù)塊 dn,e ;其中 me {1,2,..., Μ}, M= int (DPESn/184),DPESn 表示第 η 個 PES 包的字節(jié)數(shù), i/7i(DPESn/184)表示小于或等于(DPESn/184)的最大整數(shù);b2)按照TS包格式,將第η個PES包分割所得的各個數(shù)據(jù)塊分別封裝為TS包;所述TS 包格式由4個字節(jié)的包頭和184字節(jié)的載荷區(qū)構(gòu)成;TS包格式的包頭依次由1個字節(jié)的同 步字節(jié)字段、Ibit的傳輸誤碼指示字段、Ibit的有效載荷單元起始指示字段、Ibit的傳輸 優(yōu)先字段、Hbit的PID字段、2bit的傳輸加擾控制字段、2bit的自適應(yīng)控制字段和4bit的 連續(xù)計數(shù)器字段構(gòu)成;第η個PES包分割所得的各個數(shù)據(jù)塊分別封裝為TS包的步驟如下①對于184字節(jié)的數(shù)據(jù)塊dn,m:將數(shù)據(jù)塊dn,m封裝為TS包格式的載荷區(qū);TS包格式的包頭中,除PID字段、有效載荷單 元起始指示字段和自適應(yīng)控制字段以外的字段均為0;自適應(yīng)控制字段的兩個bit分別為0 和1 ;有效載荷單元起始指示字段,當(dāng)m=l時取為1,當(dāng)m興1時取為0 ;②對于小于或等于184字節(jié)的數(shù)據(jù)塊dn,e當(dāng)數(shù)據(jù)塊dn,e為184字節(jié)時,將數(shù)據(jù)塊de封裝為TS包格式的載荷區(qū);TS包格式的包頭 中,除PID字段和自適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit分別為0 和1 ;當(dāng)數(shù)據(jù)塊dn,e為183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段和數(shù)據(jù)塊4封裝為 TS包格式的載荷區(qū),自適應(yīng)區(qū)長度字段的值為0x01 ;TS包格式的包頭中,除PID字段和自 適應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;當(dāng)數(shù)據(jù)塊dn,e小于183字節(jié)時,依次由1個字節(jié)的自適應(yīng)區(qū)長度字段、L個填充字節(jié)和 數(shù)據(jù)塊dn,e封裝為TS包格式的載荷區(qū),其中L=ISS-DttaY Ddn,e為數(shù)據(jù)塊dn,e的字節(jié)數(shù),自適 應(yīng)區(qū)長度字段的值為(L+1),填充字節(jié)的值為OxFF ;TS包格式的包頭中,除PID字段和自適 應(yīng)控制字段以外的字段均為0,自適應(yīng)控制字段的兩個bit均為1 ;③對于上述①和②中TS包格式包頭中的PID字段當(dāng)且僅當(dāng)封裝于TS包格式載荷區(qū)中的數(shù)據(jù)塊dn,m或數(shù)據(jù)塊dn,e來自同一 PS流中拷貝 出的同一類型的PES包時,其包頭中PID字段的值相同;b3)按步驟bl)和b2)將從一路PS流中拷貝出的N個PES包依次轉(zhuǎn)換為TS包;C)通過步驟A)和B)從作為數(shù)字電視節(jié)目信源的I路PS流中分別拷貝出PES包并轉(zhuǎn) 換為TS包;其中,I彡1 ;D)完成復(fù)用處理,形成一路TS流,具體為dl)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的一個PS包的碼率 Rpsj=Dpsjχ Δ SCRj/Fclk ;其中,Rpsj表示一路PS流中第j個PS包的碼率,Dpsj表示該第j個PS包的字節(jié)數(shù), Δ SCRj表示該第j個PS包與其相鄰的第j+Ι個PS包的SCR差值;Fm表示系統(tǒng)時鐘頻率; d2)按下式計算作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的碼率Ri= Σ j=i — j(RpSj)/J ;其中,Ri表示作為數(shù)字電視節(jié)目信源的I路PS流中第i路PS流的碼率,J表示該第i 路PS流中包含PS包的個數(shù);d3)通過步驟dl)和d2)分別計算出作為數(shù)字電視節(jié)目信源的I路PS流的碼率并求 和,得到數(shù)字電視節(jié)目信源的總碼率Rt。tal ;d4)設(shè)定TS流的碼率Rts,使得其滿足Rt。tal <RTS<2Rtotal ;d5)按下式計算TS流中傳輸一個TS包所對應(yīng)的PCR增值Δ PCRts Δ PCRts=FclkX 188 X 8/RTS ;d6)以作為數(shù)字電視節(jié)目信源的I路PS流中一路PS流的第一個PS包的SCR值作為該 路PS流轉(zhuǎn)化為TS流的PCR起始值,每插入一個TS包PCR值就增加Δ PCRts,由此確定作為 數(shù)字電視節(jié)目信源的I路PS流復(fù)用為TS流后各路的PCR信息;然后,采用現(xiàn)有的復(fù)用方法 將作為數(shù)字電視節(jié)目信源的I路PS流轉(zhuǎn)換的TS包復(fù)用為一路碼率為Rts的TS流,并相應(yīng) 的插入各路數(shù)字電視節(jié)目信源的PSI信息,碼率匹配采用填充空TS包的方式實現(xiàn)。
      全文摘要
      本發(fā)明提供了一種基于MPEG-2的多路PS流復(fù)用為一路TS流的方法,該方法分為四個大的步驟A)首先從一張DVD光盤中讀取的一路PS流中拷貝出PES包;B)然后再將拷貝出的PES包轉(zhuǎn)換為TS包;C)通過步驟A)和B)從作為數(shù)字電視節(jié)目信源的I張DVD光盤中讀取的多路PS流中分別拷貝出PES包并轉(zhuǎn)換為TS包;D)完成復(fù)用處理,形成一路TS流。本發(fā)明的基于MPEG-2的多路PS流復(fù)用為一路TS流的方法在MPEG-2標(biāo)準(zhǔn)的系統(tǒng)層實現(xiàn)PS流至TS流的轉(zhuǎn)換和復(fù)用,利用該方法可以將DVD光盤中存儲的PS流形式的音、視頻數(shù)據(jù)轉(zhuǎn)換為TS流用于制作數(shù)字電視節(jié)目,為數(shù)字電視節(jié)目制作提供了一種新的便捷途徑。
      文檔編號H04N21/236GK102104795SQ20111007870
      公開日2011年6月22日 申請日期2011年3月30日 優(yōu)先權(quán)日2011年3月30日
      發(fā)明者季小康, 林 建, 王璐, 甘平, 黃發(fā), 黃揚(yáng)帆 申請人:重慶大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1