欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于并行處理的流媒體音視頻同步播放方法

文檔序號:7868955閱讀:252來源:國知局
專利名稱:一種基于并行處理的流媒體音視頻同步播放方法
技術領域
本發(fā)明涉及流媒體音視頻圖像處理領域,特別涉及一種流媒體音視頻的播放方法。
背景技術
目前主流的視頻編解碼標準有MJPEG(即Motion JPEG, 一種視頻壓縮格式,其中每一幀圖像都分別使用JPEG編碼,也可簡稱為MJPE)、H264等都是采用傳統(tǒng)的混合編碼結構,該結構采用時間和空間預測、變換、量化和熵編碼方法,將視頻幀編碼設為不同的幀類型1幀、B幀、P幀,這必將引起視頻解碼速度因幀類型不同而有所不同,而視頻的渲染幀率是固定的,從而產(chǎn)生了視頻解碼速度與渲染速度不匹配的現(xiàn)象。由于音視頻流要求同步播放,而音頻和視頻數(shù)據(jù)是異步解碼和輸出的,如果不采用同步輸出控制機制,必將導致音視頻播放不同步的現(xiàn)象。

發(fā)明內(nèi)容
本發(fā)明的目的是針對目前流媒體音視頻播放過程中存在的解碼速度和渲染速度不匹配和/或音視頻播放不同步問題,提供一種基于并行處理的流媒體視頻同步播放方法。為了實現(xiàn)本發(fā)明的目的,采用如下技術方案
一種基于并行處理的流媒體音視頻同步播放方法,在時間上或空間上并行處理音視頻獲取、音視頻拆分、視頻解碼、音頻解碼、時間戳誤差分析、視頻渲染和音頻播放步驟,所述的時間戳誤差是視頻解碼時間戳和音頻解碼時間戳之間的音視時間戳誤差。所述音視頻獲取步驟之前構建緩沖區(qū)空間,所述緩沖區(qū)空間包括音視頻混合緩沖
區(qū)隊列如-、視頻解碼緩沖區(qū)隊
列、音頻解碼緩沖區(qū)隊列、視頻渲染緩沖區(qū)隊列、視頻解碼時間戳緩沖區(qū)隊列、音頻播放緩沖區(qū)隊列音頻解碼時間戳緩沖區(qū)隊列 、音視頻誤差時間戳緩沖區(qū)隊列―拜。所述音視頻獲取步驟將從流媒體源獲取到的音視頻混合數(shù)據(jù)包依次插入預先構建的音視頻混合緩沖區(qū)隊列。所述音視頻拆分步驟從音視頻混合緩沖區(qū)隊列依次取出音視頻混合數(shù)據(jù)包,利用音視頻拆分算法對音視頻混合數(shù)據(jù)包進行音視頻拆分,提取視頻流、音視流、拆分后時間戳;將視頻流與時間戳組成視頻解碼節(jié)點插入預先構建的視頻解碼
緩沖區(qū)隊列;將音頻流與時間戳》"組成音頻解碼節(jié)點插入預先構建的音
頻解碼緩沖區(qū)隊列。
所述視頻解碼步驟從視頻解碼緩沖區(qū)隊列依次取出視頻解碼節(jié)點,對節(jié)點中視頻流進行解碼,獲取解碼后的視頻流、視頻解碼時間戳;將視頻流與拆分后時間戳 ^組成視頻渲染節(jié)點插入預先構建的視頻渲染緩沖區(qū)隊列;將視頻解碼時間戳和拆分后時間戳組成視頻解碼時間戳節(jié)點插入預先構建的視頻解碼時間戳緩沖區(qū)隊列Iisllitatarttif。所述音頻解碼步驟從音頻解碼緩沖區(qū)隊列依次取出音頻解碼節(jié)點,對節(jié)點中音頻流進行解碼,獲取解碼后的音頻流、音頻解碼時間戳;將音頻流與拆分后時間戳組成音頻播放節(jié)點插入預先構建的音頻播放緩沖區(qū)隊列;將音頻解碼時間戳和拆分后時間戳1 " 組成音頻解碼時間戳節(jié)點插入預先構建的音頻解碼時間戳緩沖區(qū)隊列—。所述時間戳誤差分析步驟以拆分后時間戳為關鍵字在視頻解碼緩沖區(qū)隊列杳找視頻解碼時間戳對應節(jié)點信息;再以拆分后時間戳 為關 鍵字在音頻解碼緩沖區(qū)隊列Maeitatofct-查找音頻解碼時間戳對應節(jié)點信息;通過視頻解碼時間戳3 ** !* ***和音頻解碼時間戳得到音視誤差時間戳=
yamgMlIm1...... -;將音視誤差時間戳1firae^P 與拆分后時間戳1組成音視
頻誤差時間戳節(jié)點插入預先構建的音視頻誤差時間戳緩沖區(qū)隊列所述視頻渲染步驟依次從視頻解碼緩沖區(qū)隊列Gitstekrf取出視頻渲染節(jié)點,獲取視頻流和拆分后時間戳2 " !* ;再根據(jù)拆分后時間戳從音視頻誤差時間戳緩沖區(qū)隊列&^1 ·取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間;判斷音視頻誤差時間la* — >0是否成立,如果成立則立即播放,否則就等待 δηβ—再播放。所述音頻播放步驟依次從音頻解碼緩沖區(qū)隊列取出音頻播放節(jié)點,獲取音頻流和拆分后時間戳;再根據(jù)拆分后時間戳從音視頻誤差時間戳緩沖區(qū)隊列取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間^;判斷音視頻誤差
時間>0是否成立,如果成立則等待再播放,否則就立即播放。本發(fā)明采用上述步驟的方法,將整個播放過程,分解為幾個步驟,可以形成不同的處理模塊,通過將這些處理模塊運行在同一臺多處理器的服務器上,或是運行在網(wǎng)絡相連的不同服務器上,從而可以實現(xiàn)時間上和/或空間上的并行處理;通過緩沖區(qū)空間的構建,可以使需要各個步驟處理的音視頻數(shù)據(jù)在緩沖區(qū)空間的隊列中依序進行,這樣當某個步驟在數(shù)據(jù)處理時,其它步驟在處理完該步驟相關聯(lián)的數(shù)據(jù)后,可以繼續(xù)處理其它部分的數(shù)據(jù),從而保證流音視頻的并行、高效的播放;通過獲取拆分后時間戳、視頻解碼時間戳和音頻解碼時間戳,并判斷后兩之間的音視頻誤差時間與預設值或設定參數(shù)之間的關系,來確定是否進行音頻和/或視頻的播放,特別是通過拆分后時間戳作為基準,通過它插入數(shù)據(jù)、取出數(shù)據(jù)、判斷數(shù)據(jù),從而更好地實現(xiàn)基于同一拆分后時間戳的音頻和視頻能夠同步播放,進而保證整個流媒體音視頻能夠同步播放。


圖1為本發(fā)明的基于并行計算的流媒體音視頻同步播放方法的時序圖。圖2為本發(fā)明的基于并行計算的流媒體音視頻同步播放方法的流程圖。
具體實施例方式下面結合說明書附圖,通過具體實施方式
進一步詳細說明本發(fā)明。如圖1所示,本發(fā)明是將來自于一個或多個網(wǎng)絡服務點或者是本地現(xiàn)有的流媒體音視頻數(shù)據(jù)的播放過程,劃分為音視頻獲取、音視頻拆分、視頻解碼、音頻解碼、時間戳誤差分析、視頻渲染和音頻播放等幾個步驟,處理每個步驟的過程可以通過計算機分別組成相應的處理模塊,這些模塊可以運行在同一臺多處理器的服務器上,也可以運行在網(wǎng)絡相連的不同服務器上,這樣通過并行啟動操作,使這些處理過程可以實現(xiàn)同時在時間上的并行和/或空間上的并行,即同一時間,不同服務器或同一服務器的不同處理器可以同時并行處理各個步驟,實現(xiàn)時間上的并行處理;同樣,不同服務器可以通過網(wǎng)絡相連位于不同的地方,在并行啟動操作下,實現(xiàn)不同地方或位置的空間上并行處理。如圖2所示,上述各步驟的具體過程如下1、構建緩沖區(qū)空間
通過構建如下的緩沖區(qū)隊伍,所述緩沖區(qū)空間包括音視頻混合緩沖區(qū)隊列hi#、視頻解碼緩沖區(qū)隊列、音頻解碼緩沖區(qū)隊列、視頻渲染緩沖區(qū)隊列視頻解碼時間戳緩沖區(qū)隊列、音頻播放緩沖區(qū)隊列音
頻解碼時間戳緩沖區(qū)隊列、音視頻誤差時間戳緩沖區(qū)隊列&‘。對于緩沖區(qū)空間內(nèi)各隊列中的元素,采用FIFO方式處理緩沖區(qū)中各元素結點。緩沖區(qū)隊列既可以分布在同一臺的服務器上,也可以分布在網(wǎng)絡相連的不同服務器上,但是對所有并行處理模塊提供統(tǒng)一的數(shù)據(jù)接口 ;緩沖區(qū)空間服務器接收各個并行處理模塊對緩沖區(qū)空間的訪問請求并對其進行處理,訪問請求包括插入數(shù)據(jù)請求、取出數(shù)據(jù)請求、數(shù)據(jù)查找請求,插入數(shù)據(jù)請求是將數(shù)據(jù)插入到指定隊列的隊首,取出數(shù)據(jù)請求是從指定隊列的隊尾取出數(shù)據(jù),數(shù)據(jù)查找請求是以指定關鍵字在指定隊列查找元素結點并將此結點從隊列中取出。各個并行處理模塊通過向緩沖區(qū)空間服務器發(fā)送請求的方式(插入數(shù)據(jù)請求、取出數(shù)據(jù)請求、數(shù)據(jù)查找請求)操作緩沖區(qū)隊列中的元素結點;發(fā)送請求前先生成請求數(shù)據(jù)包,請求數(shù)據(jù)包包含的數(shù)據(jù)項隊列名稱、操作類型(取出、插入、查找)、元素結點。
元素結點根據(jù)每個緩沖區(qū)隊列的實際情況而不同。音視頻混合緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項音視頻混合流
視頻解碼緩沖區(qū)隊列r的元素節(jié)點包含的數(shù)據(jù)項解碼前視頻流、拆分后時間戳1;
音頻解碼緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項解碼前音頻流拆分后時間戳;
視頻渲染緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項解碼后視頻流iNiKitapiv、拆分后時間戳;
視頻解碼時間戳緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項視頻解碼時間戳 和拆分后時間戳1;
音頻播放緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項解碼后音頻流與§^_65_、音頻解碼時間戳;
音頻解碼時間戳緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項音頻解碼時間戳 、拆分后時間;
音視頻誤差時間戳緩沖區(qū)隊列的元素節(jié)點包含的數(shù)據(jù)項音視誤差時間戳 與時間戳 &Ββ_。上述各元素節(jié)點的數(shù)據(jù)項,部分會在下面表述的步驟得到或插入到相應的緩沖區(qū)隊列中。2、音視頻獲取
音視頻獲取步驟將從流媒體源獲取到的音視頻混合數(shù)據(jù)包依次插入預先構建的音視頻混合緩沖區(qū)隊列Uia1.。流媒體源可以是一個或多個網(wǎng)絡服務點或者是本地現(xiàn)有的流媒體文件。3、音視頻拆分
音視頻拆分步驟從音視頻混合緩沖區(qū)隊列`依次取出音視頻混合數(shù)據(jù)包,利用音視頻拆分算法對音視頻混合數(shù)據(jù)包進行音視頻拆分,提取視頻流、音視流、拆分后時間戳;將視頻流與時間戳組成視頻解碼節(jié)點插入預先構建的視頻解碼緩沖區(qū)隊
列極4>—;將音頻流與時間戳組成音頻解碼節(jié)點插入預先構建的音頻解碼緩
沖區(qū)隊列^^βκΒαΛκβΛ。音視頻拆分的處理方法有TS流拆分算法和PS流拆分算法,這些算法主要針對MPEG-PS、MPEG-TS ;MPEG-PS (Program Stream)主要應用于存儲的具有固定時長的音視頻混合流,有包頭、系統(tǒng)頭、PES包3部分構成;MPEG-TS主要應用于實時傳送的音視頻混合流,它是采用分包發(fā)送的,每個包包括包頭、負載。TS流拆分處理方法主要是根據(jù)TS流包頭信息進行解析獲取音頻流、視頻流;PS流拆分處理方法主要是根據(jù)PS流包頭信息、系統(tǒng)頭信息進行解析獲取音頻流、視頻流。4、視頻解碼
視頻解碼步驟從視頻解碼緩沖區(qū)隊列依次取出(取出方法見本說明書的前文所述)視頻解碼節(jié)點,對節(jié)點中視頻流進行解碼,獲取解碼后的視頻流、視頻解碼時間戳;將視頻流與拆分后時間戳組成視頻渲染節(jié)點插入預先構建的視頻渲
染緩沖區(qū)隊列&W ;將視頻解碼時間戳和拆分后時間戳》 ^ 組成視頻 解碼時間戳節(jié)點插入預先構建的視頻解碼時間戳緩沖區(qū)隊列。視頻解碼主要是將視頻流進行解壓縮;通常將MJPE格式碼流或者H264格式碼流轉換成RGB格式碼流或者YVU格式碼流。5、音頻解碼
音頻解碼步驟從音頻解碼緩沖區(qū)隊列依次取出音頻解碼節(jié)點,對節(jié)點中音頻流進行解碼,獲取解碼后的音頻流、音頻解碼時間戳;將音頻流與拆分后時間戳組成音頻播放節(jié)點插入預先構建的音頻播放緩沖區(qū)隊列;將音頻解碼時間戳和拆分后時間戳組成音頻解碼時間戳節(jié)點插入預先構建的
音頻解碼時間戳緩沖區(qū)隊列。6、時間戳誤差分析
時間戳誤差分析步驟以拆分后時間戳為關鍵字在視頻解碼緩沖區(qū)隊列
查找視頻解碼時間戳對應節(jié)點信息;再以拆分后時間戳為關鍵字在音頻解碼緩沖區(qū)隊列查找音頻解碼時間戳對應節(jié)點信息;通過視頻解碼時間戳21"8^ * *和音頻解碼時間戳得到音視誤差時間戳-;將音視誤差時間戳—―與拆分后時間戳組成音視頻誤差時間
戳節(jié)點插入預先構建的音視頻誤差時間戳緩沖區(qū)隊列。7、視頻渲染
視頻渲染步驟依次從視頻解碼緩沖區(qū)隊列取出視頻渲染節(jié)點,獲取視頻流和拆分后時間戳;再根據(jù)拆分后時間戳從音視頻誤差時間戳緩沖區(qū)隊列如—取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間;判斷音視頻誤差時間
lfewW >0是否成立,如果成立則立即播放,否則就等待1 " 再播放。另外的實施例中,還可以根據(jù)實際需要,設定非零的判斷考量參數(shù),即音視頻誤差時間與預設值之間的大小關系或其它邏輯關系成立時,則判斷可以立即播放,否則
就等待條件成立時再播放。8、音頻播放
音頻播放步驟依次從音頻解碼緩沖區(qū)隊列取出音頻播放節(jié)點,獲取音頻流和拆分后時間戳;再根據(jù)拆分后時間戳從音視頻誤差時間戳緩沖區(qū)隊列如神取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間T麗料;判斷音視頻誤差時間
評>0是否成立,如果成立則等待 ■再播放,否則就立即播放。同樣,另外的實施例中,還可以根據(jù)實際需要,設定非零的判斷考量參數(shù),即音視頻誤差時間與預設值之間的大小關系或其它邏輯關系成立時,則判斷可以立即播 放,否則就等待條件成立時再播放??梢姡ㄟ^上述各步驟,基于拆分后時間戳作為參考基準,對流媒體的音
視頻混合數(shù)據(jù)包依次插入緩沖區(qū)隊列、依次拆分、依次查找、依次取出等操作,并且視頻播
放是在視頻渲染后,再基于拆分后時間戳獲取并判斷音視頻誤差時間是否滿足播
放的預設條件,如果滿足(如本發(fā)明的一個實施例中取大于零為條件成立)則播放,否則就繼續(xù)等待直到滿足才播放;而音頻播放同樣基于拆分后時間戳獲取并判斷音視頻誤差時間
是否滿足播放的預設條件,如果滿足(如本發(fā)明的一個實施例中取大于零為條件成
立)則播放,否則就繼續(xù)等待直到滿足才播放。這樣,由于上述各步驟可以在時間上和/或空間上并行處理,拆分后的各個元素節(jié)點,可以同時并行處理,不必等待,只要基于相同的拆分后時間戳就可以連續(xù)播放,特別是上述視頻播放是在視頻渲染后再進行播放條件的判斷,有效解決了視頻解碼速度與渲染速度之間的匹配問題,而且音頻播放與視頻渲染后的視頻播放都是基于同一元素節(jié)點的拆分后時間戳來判定是否進行播放的條件,這樣就可以使同一元素節(jié)點的音頻和視頻的播放達到同步,而無需采用現(xiàn)有技術中的同步輸出控制。
權利要求
1.一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,時間上或空間上并行處理音視頻獲取、音視頻拆分、視頻解碼、音頻解碼、時間戳誤差分析、視頻渲染和音頻播放步驟,所述的時間戳誤差是視頻解碼時間戳和音頻解碼時間戳之間的音視時間戳誤差。
2.如權利要求1所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述音視頻獲取步驟之前構建緩沖區(qū)空間,所述緩沖區(qū)空間包括緩沖區(qū)空間包括音視頻混合緩沖區(qū)隊列、視頻解碼緩沖區(qū)隊列、首頻解碼緩沖區(qū)隊列、視頻丨Ji染緩沖區(qū)隊列、視頻解碼時間戳緩沖區(qū)隊列音頻播放緩沖區(qū)隊列—匕^、音頻解碼時間戳緩沖區(qū)隊列、音視頻誤差時間戳緩沖區(qū)隊列^。
3.如權利要求1或2所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述音視頻獲取步驟將從流媒體源獲取到的音視頻混合數(shù)據(jù)包依次插入預先構建的音視頻混合緩沖區(qū)隊列。
4.如權利要求3所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述音視頻拆分步驟從音視頻混合緩沖區(qū)隊列依次取出音視頻混合數(shù)據(jù)包,利用音視頻拆分算法對音視頻混合數(shù)據(jù)包進行音視頻拆分,提取視頻流、音視流、拆分后時間戳;將視頻流與時間戳組成視頻解碼節(jié)點插入預先構建的視頻解碼緩沖區(qū)隊列;將音頻流與時間戳組成音頻解碼節(jié)點插入預先構建的音頻解碼緩沖區(qū)隊列。
5.如權利要求4所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述視頻解碼步驟從視頻解碼緩沖區(qū)隊列依次取出視頻解碼節(jié)點,對節(jié)點中視頻流進行解碼,獲取解碼后的視頻流、視頻解碼時間戳;將視頻流與拆分后時間戳1組成視頻渲染節(jié)點插入預先構建的視頻渲染緩沖區(qū)隊列;將視頻解碼時間^TnBgriiItIlIllIiill和拆分后時間戳組成視頻解碼時間戳節(jié)點插入預先構建的視頻解碼時間戳緩沖區(qū)隊列。
6.如權利要求5所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述音頻解碼步驟從音頻解碼緩沖區(qū)隊列依次取出音頻解碼節(jié)點,對節(jié)點中音頻流進行解碼,獲取解碼后的音頻流、音頻解碼時間戳;將音頻流與拆分后時間戳成音頻播放節(jié)點插入預先構建的音頻播放緩沖區(qū)隊列Usttm^ar ;將音頻解碼時間戳拆分后時間戳1& ^組成音頻解碼時間戳節(jié)點插入預先構建的音頻解碼時間戳緩沖區(qū)隊列。
7.如權利要求6所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述時間戳誤差分析步驟以拆分后時間戳為關鍵字在視頻解碼緩沖區(qū)隊列十查找視頻解碼時間戳對應節(jié)點信息;再以拆分后時間戳為關鍵字在音頻解碼緩沖區(qū)隊列查找音頻解碼時間戳對應節(jié)點信息;通過視頻解碼時間戳1和音頻解碼時間戳1得到音視誤差時間戳-K^eds**,;將音視誤差時間戳與拆分后時間戳組成音視頻誤差時間戳節(jié)點插入預先構建的音視頻誤差時間戳緩沖區(qū)隊列。
8.如權利要求7所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述視頻渲染步驟依次從視頻解碼緩沖區(qū)隊列取出視頻渲染節(jié)點,獲取視頻流和拆分后時間戳;再根據(jù)拆分后時間戳1 * 從音視頻誤差時間戳緩沖區(qū)隊列偏科取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間r臓界;判斷音視頻誤差時間與預設值的大小關系是否成立,如果成立則立即播放,否則就等待 δ" 4ρ_再播放。
9.如權利要求8所述一種基于并行處理的流媒體音視頻同步播放方法,其特征在于,所述音頻播放步驟依次從音頻解碼緩沖區(qū)隊列取出音頻播放節(jié)點,獲取音頻流和拆分后時間戳;再根據(jù)拆分后時間戳 從音視頻誤差時間戳緩沖區(qū)隊列評取出音視誤差時間戳節(jié)點,獲取音視頻誤差時間T麗釋;判斷音視頻誤差時間與預設值的大小關系是否成立,如果成立則等待再播放,否則就立即播放。
全文摘要
本發(fā)明公開一種基于并行處理的流媒體音視頻同步播放方法,屬于音視頻圖像處理領域,通過將來自于一個或多個網(wǎng)絡服務點或者是本地現(xiàn)有的流媒體音視頻數(shù)據(jù)的播放過程,劃分為音視頻獲取、音視頻拆分、視頻解碼、音頻解碼、時間戳誤差分析、視頻渲染和音頻播放等幾個步驟,并基于拆分后時間戳作為基準,對音頻播放和視頻渲染后的視頻播放是否滿足播放條件進行判定,從而實現(xiàn)音頻和視頻的同步播放,并解決了視頻解碼速度與渲染速度不匹配的問題,上述各步驟可以運行在同一臺多處理器的服務器上,也可以運行在網(wǎng)絡相連的不同服務器上,這樣通過并行啟動操作,使這些處理過程可以實現(xiàn)同時在時間上的并行和/或空間上的并行。
文檔編號H04N21/8547GK103024517SQ20121054605
公開日2013年4月3日 申請日期2012年12月17日 優(yōu)先權日2012年12月17日
發(fā)明者吳小偉, 劉念林, 李汶隆 申請人:四川九洲電器集團有限責任公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
平罗县| 盘锦市| 精河县| 甘南县| 阿坝| 白玉县| 正宁县| 深水埗区| 玉山县| 化州市| 江西省| 屏南县| 军事| 深水埗区| 应城市| 金华市| 正安县| 永济市| 鹤壁市| 永福县| 舟曲县| 绥德县| 同仁县| 常宁市| 新泰市| 赣州市| 巴彦淖尔市| 瓮安县| 普安县| 南平市| 满洲里市| 互助| 三门峡市| 天门市| 盘山县| 沈丘县| 璧山县| 广宗县| 哈密市| 洛川县| 雅安市|