


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一種多線程的視頻同步控制方法
1視頻解碼過程中b幀-錄像視頻同步視頻同步機(jī)制目前,常用的視頻編解碼標(biāo)準(zhǔn)如mpeg-1、mpeg-2、mpeg-4和h.26x。該結(jié)構(gòu)采用時(shí)間和空間預(yù)測(cè)、變換、量化和熵編碼方法,將視頻場(chǎng)景編碼為不同的類型:內(nèi)陸預(yù)測(cè)場(chǎng)景(i模式)、內(nèi)陸預(yù)測(cè)場(chǎng)景(p模式)和雙向預(yù)測(cè)場(chǎng)景(b模式)。這將導(dǎo)致解碼速度因視頻內(nèi)容而異,視頻接收率固定,解碼速度與顯示速度之間沒有對(duì)應(yīng)的問題。此外,頻率和視頻是編碼和傳輸?shù)姆蛛x,并且需要在視頻上同時(shí)輸出。如果采用最佳控制方法,很容易導(dǎo)致圖像輸出的不同步。解決這個(gè)問題的方法,現(xiàn)有技術(shù)一般是采用較大的緩沖區(qū)來緩沖編碼數(shù)據(jù)和編碼后的圖像和音頻幀為了解決現(xiàn)有技術(shù)所存在的以上問題,本發(fā)明的目的在于提供了一種多線程的音視頻同步控制方法,所述方法采用操作系統(tǒng)信號(hào)量、條件變量、系統(tǒng)層定義的節(jié)目參考時(shí)鐘和顯示時(shí)間戳,從而使得音視頻在同一的本地系統(tǒng)時(shí)鐘的參考下按照PTS時(shí)刻嚴(yán)格輸出,從而實(shí)現(xiàn)了音視頻同步播放。2一般介紹本文多線程的音視頻同步控制方法是基于嵌入式Linux操作系統(tǒng)的平臺(tái)開發(fā)并實(shí)現(xiàn)的3激活解碼過程本方案包括下述步驟步驟1:創(chuàng)建五個(gè)線程,分別是解復(fù)用線程、音頻解碼線程、視頻解碼線程、音頻同步輸出線程和視頻同步輸出線程。步驟2:啟動(dòng)解復(fù)用線程完成對(duì)系統(tǒng)層的傳輸流或節(jié)目流的解復(fù)用處理,將傳輸流或節(jié)目流拆分成音頻基本流、視頻基本流以及時(shí)間信息;然后將音頻基本流插入音頻基本流隊(duì)列尾部,將視頻基本流插入視頻基本流隊(duì)列尾部,激活解碼線程;若音頻基本流隊(duì)列或視頻基本流隊(duì)列溢出則解復(fù)用線程掛起等待。對(duì)于傳輸流,本步驟所述的音頻基本流和視頻基本流是通過PID值(進(jìn)程標(biāo)識(shí)符)區(qū)分的,首先解析PID值為0x00的數(shù)據(jù)包,從該數(shù)據(jù)包中的節(jié)目關(guān)聯(lián)表PAT獲得各個(gè)節(jié)目的節(jié)目映射表PMT的PID值。解碼某個(gè)節(jié)目則解析該節(jié)目對(duì)應(yīng)的節(jié)目映射表,從而獲得該節(jié)目中音頻基本流的PID值以及視頻基本流的PID值,然后接收相應(yīng)PID值的數(shù)據(jù)包,將數(shù)據(jù)重組成PES(PacketizedElementaryStreams,帶有包頭的基本碼流)分組后插入基本流隊(duì)列。對(duì)于節(jié)目流,則是通過各個(gè)PES數(shù)據(jù)分組中的StreamID(流標(biāo)識(shí)符)標(biāo)志位區(qū)分音頻和視頻基本流。本步驟所述的時(shí)間信息是指PES分組中的時(shí)間戳PTS與節(jié)目參考時(shí)鐘PCR,將解析得到的PTS值保存在相應(yīng)的隊(duì)列節(jié)點(diǎn)中。解復(fù)用線程在將一整個(gè)PES分組的基本流插入基本流隊(duì)列后,對(duì)信號(hào)量進(jìn)行P操作(即對(duì)信號(hào)量申請(qǐng)資源)來激活解碼線程;所述音頻基本流隊(duì)列或視頻基本流隊(duì)列通過該隊(duì)列的長(zhǎng)度判斷其是否溢出,若溢出則解復(fù)用線程掛起等待。步驟3:啟動(dòng)音頻解碼線程和視頻解碼線程分別解碼音頻基本流隊(duì)列和視頻基本流隊(duì)列中的比特流,并將時(shí)間信息和解碼后的音頻數(shù)據(jù)和圖像數(shù)據(jù),分別插入音頻輸出隊(duì)列尾部和視頻輸出隊(duì)列尾部,激活音頻輸出線程或視頻輸出線程,若音頻輸出隊(duì)列或視頻輸出隊(duì)列溢出則解碼線程掛起等待。其中解碼后的音頻數(shù)據(jù)為PCM數(shù)據(jù)(PulseCodeModulation,脈沖調(diào)制編碼數(shù)據(jù))。本步驟所述的音頻解碼過程如下:(a)音頻解碼線程阻塞于音頻信號(hào)量,在解復(fù)用線程激活信號(hào)量后開始解碼;(b)對(duì)音頻基本流隊(duì)列頭的音頻基本流進(jìn)行解碼;(c)將解碼后一幀音頻PCM數(shù)據(jù)插入音頻輸出隊(duì)列尾部,并激活音頻輸出條件變量;(d)將音頻基本流隊(duì)列中的時(shí)間戳PTS值保存在音頻輸出隊(duì)列對(duì)應(yīng)節(jié)點(diǎn)中;所述音頻輸出隊(duì)列通過該隊(duì)列的長(zhǎng)度判斷其是否溢出,若音頻輸出隊(duì)列溢出則音頻解碼線程掛起等待。本步驟所述的視頻解碼過程如下:(a)視頻解碼線程阻塞于音頻信號(hào)量,在解復(fù)用線程激活信號(hào)量后開始解碼;(b)對(duì)視頻基本流隊(duì)列頭的視頻基本流進(jìn)行解碼;(c)將解碼后的一幀圖像數(shù)據(jù)插入視頻輸出隊(duì)列尾部,并激活視頻輸出條件變量;(d)將視頻基本流隊(duì)列中的時(shí)間戳PTS值保存在視頻輸出隊(duì)列對(duì)應(yīng)節(jié)點(diǎn)中;所述視頻輸出隊(duì)列通過該隊(duì)列的長(zhǎng)度判斷其是否溢出,若視頻輸出隊(duì)列溢出則視頻解碼線程掛起等待。步驟4:啟動(dòng)音頻同步輸出線程和視頻同步輸出線程,根據(jù)解碼后的時(shí)間戳與本地系統(tǒng)時(shí)鐘的差值,選擇符合輸出時(shí)間的數(shù)據(jù)進(jìn)行輸出;并根據(jù)視頻與音頻的時(shí)間戳的差值,對(duì)視頻播放進(jìn)行重復(fù)與跳幀處理,從而使得音視頻同步輸出。本步驟所述的音頻輸出過程由以下步驟實(shí)現(xiàn):(a)音頻輸出線程阻塞于音頻輸出條件變量;(b)在音頻解碼線程激活條件變量后,計(jì)算當(dāng)前時(shí)刻的本地系統(tǒng)時(shí)鐘STC;(c)查找音頻輸出隊(duì)列中時(shí)間戳PTS值與STC值最接近的隊(duì)列節(jié)點(diǎn),將該隊(duì)列節(jié)點(diǎn)的音頻PCM數(shù)據(jù)輸出。本步驟所述的視頻輸出過程由以下步驟實(shí)現(xiàn):(a)視頻輸出線程阻塞于視頻輸出條件變量;(b)在視頻解碼線程激活條件變量后,計(jì)算當(dāng)前時(shí)刻的本地系統(tǒng)時(shí)鐘STC;(c)查找視頻輸出隊(duì)列中PTS值與STC值最接近的隊(duì)列節(jié)點(diǎn),計(jì)算視頻PTS與音頻PTS的差值,如果視頻PTS值大于音頻PTS值,則重復(fù)顯示該隊(duì)列節(jié)點(diǎn)中的圖像,如果視頻PTS值小于音頻PTS值,則跳過該隊(duì)列節(jié)點(diǎn)。步驟2與步驟3線程間的同步處理采用的是信號(hào)量機(jī)制,通過對(duì)信號(hào)的PV操作協(xié)調(diào)解復(fù)用線程與解碼線程間的同步,其中PV操作由p操作(即信號(hào)量加一)和v操作(即信號(hào)量減一,若信號(hào)量為零則掛起線程)組成。步驟2和步驟3緩沖基本流數(shù)據(jù)與解碼后的數(shù)據(jù)采用的是隊(duì)列,在隊(duì)列尾插入數(shù)據(jù),在隊(duì)列頭對(duì)數(shù)據(jù)進(jìn)行解碼。步驟3與步驟4線程間的同步處理采用的是條件變量,即通過激活條件變量來激活相應(yīng)的輸出線程。如圖2所示,本控制系統(tǒng)包括解復(fù)用模塊、音頻解碼器、視頻解碼器、音頻同步輸出模塊、視頻同步輸出模塊、用于保存音頻基本流的音頻基本流隊(duì)列、用于保存視頻基本流的視頻基本流隊(duì)列、用于保存解碼后的音頻數(shù)據(jù)的音頻輸出隊(duì)列、用于保存解碼后的視頻數(shù)據(jù)的視頻輸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年成膜助劑項(xiàng)目發(fā)展計(jì)劃
- 2025年跨境電商產(chǎn)業(yè)園合作協(xié)議書
- 2025年船用舾裝件項(xiàng)目發(fā)展計(jì)劃
- 文化、教育、體育書籍專門零售企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 煙草物流企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 鐵制咖啡臺(tái)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 竹制桌企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 照相輔助器材批發(fā)企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 未來之城電動(dòng)駕駛體驗(yàn)行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 危險(xiǎn)品倉儲(chǔ)企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 往年專業(yè)知識(shí)(水利水電)相關(guān)題目及答案
- 乳突根治護(hù)理查房
- 駱駝祥子選擇題100道及答案
- 2024年株洲師范高等??茖W(xué)校高職單招(英語/數(shù)學(xué)/語文)筆試歷年參考題庫含答案解析
- 審計(jì)學(xué)知識(shí)點(diǎn)歸納總結(jié)
- 2024釔-90微球選擇性內(nèi)放射治療肝臟惡性腫瘤規(guī)范化操作專家共識(shí)
- 2024年中郵保險(xiǎn)公司招聘筆試參考題庫含答案解析
- 浙江省杭州市2023年中考英語真題
- 浙教版科學(xué)七年級(jí)上冊(cè)全冊(cè)課件
- (中級(jí))心理治療師歷年考試真題匯總整理(含答案)
- 保潔巡查記錄表
評(píng)論
0/150
提交評(píng)論