數碼電視中的編解碼器同步機制

2021-04-21 07:50:29 字數 1241 閱讀 4487

2、時間模型

在mpeg-2系統層時間模型中,它的端到端延遲——從訊號進入編碼器到訊號從解碼器輸出是乙個常數,訊號總共經過編碼器、編碼緩衝器、多路復用器、傳輸或儲存、解復用器、解碼緩衝器以及解碼器等器件的延遲。如圖2所示。

5、dts/pts的管理

在pcr域的33 bits中的90 khz部分(即pcr-base域)用於與pts和dts作比較,當二者相同時,相應的單元被顯示或者解碼。但按照mpeg-2標準的規定,pts/dts位於pes包的包頭中,而解復用器所解出的pes包頭的位元組不被送入到任何基本流解碼器的輸入緩衝區,僅用於控制各解碼器工作。每當解復用器解到乙個pts/dts時,pts/dts就作為其後送入各個基本流解碼器的輸入緩衝器中的資料的顯示/解碼時間,但此時送入通道緩衝器中的基本流並不一定立即被解碼,因此基本流解碼器必須記錄當前這個pts/dts及所對應的碼流位置,以利於後面的解碼和顯示同步。

針對以上分析,我們採用如下方法來達到解碼與顯示的同步:在每乙個基本流解碼器中建立乙個33 bits的pts/dts先入先出儲存器(fifo),用以存放pts/dts值,同時在解復用器中加入乙個檢測電路,每當碼流開始新的一幀影象時,則產生乙個訊號,用來通知基本流解碼器,並將該幀影象的pts/dts寫入到fifo中。每當解碼器解到一幀影象時,就從fifo中讀出相應的pts/dts,此pts/dts與stc進行比較,當兩者相等時,當前影象就開始顯示/解碼。

在mpeg-2標準中,並非每乙個pes包或每一幀影象均有pts和dts,一般ps流中每兩個pts之間的間隔是0.7 s,而ts流中每兩個pts之間的間隔是0.1 s,所以在沒有pts和dts的一幀影象出現時,我們可以在前一pts/dts的基礎上加一增量得到對應該幀影象的pts/dts,並將計算出來的新的pts/dts插入到存放pts/dts的fifo中去,即:ptsn=ptsn-1+δpts(n為第n幀影象)。

6、pts/dts同步實現和失步處理

27 mhz系統時鐘經過300分頻後,得到本地的33 bits pcr_base,該時鐘與暫存器中當前影象的pts/dts進行比較,系統軟體根據比較結果做出相應的處理:

(1) 若當前的pts/dts比pcr計數器的值小於半幀以上,即pts_base≤-δpts/2,此時說明系統解碼過慢,解碼器處於失步狀態,應根據該幀的結構做出相應的同步調整;

(2) 若當前的pts/dts比pcr計數器的值在半幀時間以內,我們認為此時系統解碼正常,立即顯示/解碼當前幀;

(3) 若當前的pts/dts大於pcr計數器的值,則此時解碼器稍快,在這種情況下,只需等到pcr與pts/dts相等時,就可顯示/解碼。

編解碼器的詳細介紹

業務是網路的主要業務之間。尤其移動網際網路業務的興起,在運營商和應用開發商中,業務份量極重,其中 的編譯碼服務涉及需求分析 應用開發 釋放license收費等等。最近因為專案的關係,需要理清 的codec,比較搞的是,在豆丁網上看運營商的規範 標準,同一運營商同樣的業務在不同文件中不同的要求,而且有...

Gstreamer中新增x265編解碼器

官方的當前 gstreamer 版本還不支援 x265 編譯碼,因此要新增 x265 需要自己編譯。本文基於 gstreamer1.3.3 版進行編譯安裝。需要首先自己編譯 gstreamer1.3.3 以及相應的 base good bad ugly外掛程式 開源x265 編碼器的官方 是 hg ...

使用AMR編解碼器生成VAD的標籤

目錄 1.amr編解碼器簡介 2.amr語音幀格式 3.vad標籤 這裡簡單介紹下amr編解碼器,amr編解碼器有窄帶和寬頻兩種模式。其中窄帶編碼模式有8種,編碼速率從4.75到12.2kbps。在窄帶編碼模式中取樣率為8000hz,每一幀為20ms,包含160個取樣點。在寬頻編碼模式下編碼模式有9...