實(shí)現離屏視頻幀合成與分解的可移植可擴展解決方案
用于處理離屏頁(yè)面的視頻幀合成與分解模塊是視頻通信、視頻網(wǎng)絡(luò )、視頻安防等多媒體應用中最重要的軟件組件之一。離屏頁(yè)面是指沒(méi)有在屏幕上顯示的那些視頻幀。
視頻幀合成模塊能夠接入多個(gè)視頻輸入通道,每個(gè)通道可以有各自不同的屬性,如像素格式、像素分辨率等。然后將來(lái)自這些通道的幀合成到單個(gè)或多個(gè)視頻輸出通道(同樣可以有不同的屬性)的輸出幀上。當這種合成幀經(jīng)編碼并從一臺設備發(fā)送出去時(shí),接收設備中的幀分解模塊將會(huì )完成相反的功能,即提取輸入通道的視頻幀中的合成幀。圖1和圖2顯示了這些組件的功能描述。
本文將討論需要使用這些模塊的各種用例,在嵌入式平臺上實(shí)現幀合成器/分解器的不同方法以及這些方法各自的優(yōu)缺點(diǎn),并推薦一種使用OpenGL ES構架和圖形處理單元(GPU)的具有高度可移植性和可擴展性的設計解決方案。
2.0 用例
多媒體系統有許多不同的應用場(chǎng)合需要使用幀合成器/分解器功能性組件。下面的解釋討論了其中的一些使用案例。
2.1 視頻通信系統
在涉及到雙方進(jìn)行高清視頻呼叫的IP視頻通信系統中(即在點(diǎn)到點(diǎn)視頻呼叫中),要求每臺設備與另外一臺設備交換從各自攝像機捕獲到的視頻幀。每臺設備上可能會(huì )使用不同的視頻壓縮技術(shù)(如MPEG、H.264等)對捕獲到的攝像機圖像幀進(jìn)行壓縮/編碼。壓縮后的比特流再使用各種網(wǎng)絡(luò )協(xié)議(如RTP、UDP)在網(wǎng)絡(luò )上傳送。
在接收端,首先要接收來(lái)自發(fā)送端的編過(guò)碼的數據流,然后使用MPEG、H.264等視頻解壓縮算法進(jìn)行解碼/解壓縮。最終在接收端顯示解碼后的幀。這樣,呼叫雙方都至少需要具有同時(shí)解碼從網(wǎng)絡(luò )上收到的幀和編碼自己的攝像機捕獲到的幀的功能。
在智能手機、平板電腦等典型的嵌入式系統中,實(shí)現點(diǎn)到點(diǎn)視頻呼叫所需的這些編碼/解碼算法因所用的處理器架構而成為可能。這些算法要么在多內核CPU或低功耗數字信號處理器(DSP)上實(shí)現,要么使用硬件視頻加速器實(shí)現。
但在視頻會(huì )議情況下,會(huì )有多臺設備進(jìn)行視頻呼叫。因此如果一臺設備想要參與視頻會(huì )議呼叫,它需要支持一個(gè)以上的解碼實(shí)例來(lái)解碼從多方收到的視頻,還需要一個(gè)編碼實(shí)例來(lái)編碼自己攝像機的內容。
由于設備存在最多一路高清幀的編碼和解碼電路限制,低端平板電腦和智能手機不可能支持涉及多路高清幀解碼和單路高清幀編碼的會(huì )議呼叫。為了讓這種系統支持高清視頻會(huì )議,它們需要采用所有設備能夠撥入的高端視頻通信橋。圖3顯示了這種視頻橋的功能。
評論