国产精品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>

      一種多媒體碼流的碼率調(diào)整方法

      文檔序號(hào):7588997閱讀:340來(lái)源:國(guó)知局
      專(zhuān)利名稱(chēng):一種多媒體碼流的碼率調(diào)整方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及數(shù)字視頻技術(shù),特別涉及一種多媒體碼流的碼率調(diào)整方法。
      背景技術(shù)
      運(yùn)動(dòng)圖象專(zhuān)家組(Motion Picture Experts GroupMPEG-2)是數(shù)字電視采用的國(guó)際標(biāo)準(zhǔn),該標(biāo)準(zhǔn)規(guī)定了模擬視頻、音頻信號(hào)的壓縮方式,并定義了用于視頻壓縮數(shù)據(jù)、音頻壓縮數(shù)據(jù)、控制數(shù)據(jù)及私有數(shù)據(jù)復(fù)用的數(shù)據(jù)結(jié)構(gòu),包括節(jié)目流PS(Programme Stream)及傳輸流TS(Transport Stream)。其中傳輸流是一種固定包長(zhǎng)的數(shù)據(jù)結(jié)構(gòu),主要用于壓縮碼流的傳輸。一般為188字節(jié)或是204字節(jié),其中第1個(gè)字節(jié)是包同步字節(jié)為0x47H;接下來(lái)的第2、3字節(jié)的低13位是包標(biāo)識(shí)PID(Packet Identifier),用以標(biāo)識(shí)此數(shù)據(jù)包內(nèi)攜帶的信息類(lèi)別,比如視頻數(shù)據(jù)、音頻數(shù)據(jù)等,其基本的包結(jié)構(gòu)如圖1所示。
      現(xiàn)有技術(shù)在MPEG-2發(fā)端送出固定碼率的傳輸流,由于傳輸介質(zhì)的不同或接收端的對(duì)碼率的要求不同,因而固定碼率的傳輸流適應(yīng)性差。如果傳輸碼流中節(jié)目碼率較低,則浪費(fèi)傳輸帶寬,如果傳輸碼流碼率過(guò)高,超過(guò)接受端承受能力,則引起丟包、無(wú)法同步等錯(cuò)誤。

      發(fā)明內(nèi)容
      本發(fā)明的目的在于提供一種多媒體碼流的碼率調(diào)整方法,以解決現(xiàn)有技術(shù)中固定碼率的傳輸流適應(yīng)性差的問(wèn)題。
      為解決上述問(wèn)題,本發(fā)明提供下述方案一種多媒體碼流的碼率調(diào)整方法,包括下述步驟檢測(cè)傳輸碼流中數(shù)據(jù)包的包標(biāo)識(shí);
      根據(jù)所述包標(biāo)識(shí)判斷對(duì)應(yīng)的數(shù)據(jù)包是否為空包,如果不是空包,則將該數(shù)據(jù)包寫(xiě)入存儲(chǔ)器,否則禁止將該空包寫(xiě)入存儲(chǔ)器;當(dāng)輸出碼率時(shí)鐘有效時(shí),判斷所述存儲(chǔ)器中是否具有一個(gè)整包的數(shù)據(jù)包,如果是則讀出一個(gè)數(shù)據(jù)包并輸出,否則輸出一個(gè)空包。
      所述的存儲(chǔ)器為緩沖存儲(chǔ)器。
      采用現(xiàn)場(chǎng)可編程門(mén)陣列或其他可編程邏輯芯片檢測(cè)數(shù)據(jù)包的包標(biāo)識(shí)。
      向緩存寫(xiě)數(shù)據(jù)包時(shí)以包為單為寫(xiě)入,即從該數(shù)據(jù)包的第一個(gè)字節(jié)開(kāi)始。
      所述緩存采用先進(jìn)先出隊(duì)列。
      所述緩存深度至少為兩個(gè)數(shù)據(jù)包的字節(jié)數(shù)。
      根據(jù)所述緩存的半滿中斷信號(hào)是否有效來(lái)判斷緩存是否具有一個(gè)整包的數(shù)據(jù)包。
      本發(fā)明采用以FPGA為核心的硬件結(jié)構(gòu)處理傳輸碼流,在數(shù)據(jù)的讀寫(xiě)、包標(biāo)識(shí)PID檢測(cè)、中斷響應(yīng)等處理具有延遲固定和處理速度快的特點(diǎn),提高了處理效率和可靠性,有效的解決了碼率不匹配引起的各種問(wèn)題,充分的利用傳輸帶寬。


      圖1為MPEG-2傳輸流包結(jié)構(gòu)示意圖;圖2為本發(fā)明碼率調(diào)整原理框圖;圖3為本發(fā)明的流程圖;圖4為碼率調(diào)整功能框圖。
      具體實(shí)施例方式
      本發(fā)明通過(guò)調(diào)整傳輸流中的空包(即包標(biāo)示PID為0x1ffH的數(shù)據(jù)包)數(shù)來(lái)調(diào)整輸出的傳輸碼流碼率。調(diào)整的前提是輸出碼率必須大于輸入碼率中的有效碼率,即在去掉輸入碼流中的空包后的有效碼流必須小于設(shè)定的輸出碼率。
      參閱圖2所示,本發(fā)明采用先入先出隊(duì)列(FIFO)實(shí)現(xiàn)傳輸流的緩存,即圖中的第一緩存,并通過(guò)FIFO的狀態(tài)來(lái)確定添加空包的時(shí)機(jī),第一緩存的深度至少為2個(gè)數(shù)據(jù)包字節(jié)長(zhǎng)度。PID檢測(cè)、FIFO控制等可以采用現(xiàn)場(chǎng)可編程門(mén)陣列FPGA(Field Programable Gate Array)或是其他的可編程邏輯芯片完成,在本實(shí)施例中采用FPGA。
      參閱圖3和圖4,本發(fā)明具體實(shí)現(xiàn)步驟如下步驟10輸入MPEG-2傳輸碼流。
      步驟20由FPGA檢測(cè)輸入碼流中數(shù)據(jù)包的包標(biāo)示PID,如果包標(biāo)示PID為0x1ffH,則確定數(shù)據(jù)包為空包,禁止FIFO的寫(xiě)信號(hào)以丟棄空包,否則進(jìn)行步驟30。
      禁止寫(xiě)信號(hào)是為了保證寫(xiě)入FIFO的數(shù)據(jù)中沒(méi)有傳輸流空包。
      由于包標(biāo)示PID字段是在傳輸流數(shù)據(jù)包的第2、3字節(jié),為了保證在檢測(cè)PID字段完成后數(shù)據(jù)包能夠完整的寫(xiě)入第一緩存,在FPGA內(nèi)部實(shí)現(xiàn)最少3個(gè)字節(jié)的第二緩存。
      步驟30將數(shù)據(jù)包寫(xiě)入第一緩存。
      為了保證以包為單位從第一緩存(FIFO)讀出數(shù)據(jù)包,無(wú)論是在初始狀態(tài)還是復(fù)位后重新啟動(dòng)都必須要從傳輸流數(shù)據(jù)包的第一個(gè)字節(jié)即同步字節(jié)開(kāi)始寫(xiě)入第一緩存。
      步驟40輸出碼率時(shí)鐘有效時(shí),檢查FIFO的狀態(tài),即檢查FIFO中的數(shù)據(jù)包。
      在本實(shí)施例中,通過(guò)判斷FIFO的半滿中斷信號(hào)是否有效來(lái)檢查FIFO的狀態(tài),也可采用其他方式。
      步驟50判斷半滿中斷信號(hào)是否有效,如果有效則表示FIFO內(nèi)部已經(jīng)有超過(guò)FIFO深度一半的數(shù)據(jù)(即至少有一個(gè)數(shù)據(jù)包),進(jìn)行步驟60,否則表明FIFO中數(shù)據(jù)還沒(méi)有到半滿,則進(jìn)行步驟70。
      步驟60從FIFO中同步的讀出一個(gè)數(shù)據(jù)包。
      步驟70從預(yù)設(shè)在FPGA內(nèi)部空包存儲(chǔ)區(qū)域同步的輸出一個(gè)空包。
      步驟80輸出碼流。
      輸出碼率時(shí)鐘根據(jù)需不同情況和需求預(yù)先設(shè)定。
      本發(fā)明方法在具體應(yīng)用時(shí),由于在輸入去除空包而輸出重新添加空包,這樣會(huì)改變的輸入碼流的數(shù)據(jù)包間距,影響傳輸流的一個(gè)基本時(shí)鐘特性(ProgramClock Reference,PCR),因此需要對(duì)PCR進(jìn)行調(diào)整,保證PCR信息的正確性。
      權(quán)利要求
      1.一種多媒體碼流的碼率調(diào)整方法,其特征在于包括步驟檢測(cè)傳輸碼流中數(shù)據(jù)包的包標(biāo)識(shí);根據(jù)所述包標(biāo)識(shí)判斷對(duì)應(yīng)的數(shù)據(jù)包是否為空包,如果不是空包,則將該數(shù)據(jù)包寫(xiě)入存儲(chǔ)器,否則禁止將該空包寫(xiě)入存儲(chǔ)器;當(dāng)輸出碼率時(shí)鐘有效時(shí),判斷所述存儲(chǔ)器中是否具有一個(gè)整包的數(shù)據(jù)包,如果是則讀出一個(gè)數(shù)據(jù)包并輸出,否則輸出一個(gè)空包。
      2.如權(quán)利要求1所述的方法,其特征在于,所述存儲(chǔ)器為緩沖存儲(chǔ)器。
      3.如權(quán)利要求1所述的方法,其特征在于,采用現(xiàn)場(chǎng)可編程門(mén)陣列或其他可編程邏輯芯片檢測(cè)數(shù)據(jù)包的包標(biāo)識(shí)。
      4.如權(quán)利要求2所述的方法,其特征在于,向緩存寫(xiě)數(shù)據(jù)包時(shí)以包為單為寫(xiě)入,即從該數(shù)據(jù)包的第一個(gè)字節(jié)開(kāi)始。
      5.如權(quán)利要求2所述的方法,其特征在于,所述緩存采用先進(jìn)先出隊(duì)列。
      6.如權(quán)利要求5所述的方法,其特征在于,所述緩存深度至少為兩個(gè)數(shù)據(jù)包的字節(jié)數(shù)。
      7.如權(quán)利要求6所述的方法,其特征在于,根據(jù)所述緩存的半滿中斷信號(hào)是否有效來(lái)判斷緩存是否具有一個(gè)整包的數(shù)據(jù)包。
      全文摘要
      本發(fā)明公開(kāi)了一種多媒體碼流的碼率調(diào)整方法,該方法為檢測(cè)傳輸碼流中數(shù)據(jù)包的包標(biāo)識(shí);根據(jù)所述包標(biāo)識(shí)判斷對(duì)應(yīng)的數(shù)據(jù)包是否為空包,如果不是空包,則將該數(shù)據(jù)包寫(xiě)入存儲(chǔ)器,否則禁止將該空包寫(xiě)入存儲(chǔ)器;當(dāng)輸出碼率時(shí)鐘有效時(shí),判斷所述存儲(chǔ)器中是否具有一個(gè)整包的數(shù)據(jù)包,如果是則讀出一個(gè)數(shù)據(jù)包并輸出,否則輸出一個(gè)空包。
      文檔編號(hào)H04L12/56GK1661985SQ20041000715
      公開(kāi)日2005年8月31日 申請(qǐng)日期2004年2月25日 優(yōu)先權(quán)日2004年2月25日
      發(fā)明者王展 申請(qǐng)人:華為技術(shù)有限公司
      網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1