0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用OpenGL ES構(gòu)架和GPU的離屏幀合成器/分解器功能實(shí)現(xiàn)

電子設(shè)計(jì) ? 來(lái)源:電子技術(shù)設(shè)計(jì) ? 作者:Sharath Bhat ? 2021-03-19 09:34 ? 次閱讀

1.0 引言

用于處理離屏頁(yè)面的視頻幀合成與分解模塊是視頻通信、視頻網(wǎng)絡(luò)、視頻安防等多媒體應(yīng)用中最重要的軟件組件之一。離屏頁(yè)面是指沒(méi)有在屏幕上顯示的那些視頻幀。

視頻幀合成模塊能夠接入多個(gè)視頻輸入通道,每個(gè)通道可以有各自不同的屬性,如像素格式、像素分辨率等。然后將來(lái)自這些通道的幀合成到單個(gè)或多個(gè)視頻輸出通道(同樣可以有不同的屬性)的輸出幀上。當(dāng)這種合成幀經(jīng)編碼并從一臺(tái)設(shè)備發(fā)送出去時(shí),接收設(shè)備中的幀分解模塊將會(huì)完成相反的功能,即提取輸入通道的視頻幀中的合成幀。圖1和圖2顯示了這些組件的功能描述。

本文將討論需要使用這些模塊的各種用例,在嵌入式平臺(tái)上實(shí)現(xiàn)幀合成器/分解器的不同方法以及這些方法各自的優(yōu)缺點(diǎn),并推薦一種使用OpenGL ES構(gòu)架和圖形處理單元(GPU)的具有高度可移植性和可擴(kuò)展性的設(shè)計(jì)解決方案。

2.0 用例

多媒體系統(tǒng)有許多不同的應(yīng)用場(chǎng)合需要使用幀合成器/分解器功能性組件。下面的解釋討論了其中的一些使用案例。

2.1 視頻通信系統(tǒng)

在涉及到雙方進(jìn)行高清視頻呼叫的IP視頻通信系統(tǒng)中(即在點(diǎn)到點(diǎn)視頻呼叫中),要求每臺(tái)設(shè)備與另外一臺(tái)設(shè)備交換從各自攝像機(jī)捕獲到的視頻幀。每臺(tái)設(shè)備上可能會(huì)使用不同的視頻壓縮技術(shù)(如MPEG、H.264等)對(duì)捕獲到的攝像機(jī)圖像幀進(jìn)行壓縮/編碼。壓縮后的比特流再使用各種網(wǎng)絡(luò)協(xié)議(如RTP、UDP)在網(wǎng)絡(luò)上傳送。

在接收端,首先要接收來(lái)自發(fā)送端的編過(guò)碼的數(shù)據(jù)流,然后使用MPEG、H.264等視頻解壓縮算法進(jìn)行解碼/解壓縮。最終在接收端顯示解碼后的幀。這樣,呼叫雙方都至少需要具有同時(shí)解碼從網(wǎng)絡(luò)上收到的幀和編碼自己的攝像機(jī)捕獲到的幀的功能。

智能手機(jī)、平板電腦等典型的嵌入式系統(tǒng)中,實(shí)現(xiàn)點(diǎn)到點(diǎn)視頻呼叫所需的這些編碼/解碼算法因所用的處理器架構(gòu)而成為可能。這些算法要么在多內(nèi)核CPU或低功耗數(shù)字信號(hào)處理器(DSP)上實(shí)現(xiàn),要么使用硬件視頻加速器實(shí)現(xiàn)。

但在視頻會(huì)議情況下,會(huì)有多臺(tái)設(shè)備進(jìn)行視頻呼叫。因此如果一臺(tái)設(shè)備想要參與視頻會(huì)議呼叫,它需要支持一個(gè)以上的解碼實(shí)例來(lái)解碼從多方收到的視頻,還需要一個(gè)編碼實(shí)例來(lái)編碼自己攝像機(jī)的內(nèi)容。

由于設(shè)備存在最多一路高清幀的編碼和解碼電路限制,低端平板電腦和智能手機(jī)不可能支持涉及多路高清幀解碼和單路高清幀編碼的會(huì)議呼叫。為了讓這種系統(tǒng)支持高清視頻會(huì)議,它們需要采用所有設(shè)備能夠撥入的高端視頻通信橋。圖3顯示了這種視頻橋的功能。

視頻橋接收來(lái)自所有設(shè)備的多路編碼過(guò)的輸入視頻流,然后將它們解碼為幀。來(lái)自多方的解碼幀再合成為單個(gè)幀。這種視頻橋?qū)槊總€(gè)連接的用戶設(shè)備生成合成幀。

視頻橋?yàn)槟硞€(gè)用戶設(shè)備產(chǎn)生的合成幀包含有除該臺(tái)設(shè)備自己產(chǎn)生的幀以外的所有其它用戶設(shè)備產(chǎn)生的視頻幀。因此為了在所有設(shè)備之間建立視頻會(huì)議,必須至少有一個(gè)橋。這種橋可以是一個(gè)高端視頻卡,也可以是具有更強(qiáng)編碼和解碼功能的這些設(shè)備之一。

正如我們?cè)谏鲜隼又锌吹降哪菢樱缪菀曨l橋角色的嵌入式設(shè)備需要具有離屏視頻幀合成組件。

2.2 外部顯示器

對(duì)上述視頻會(huì)議用例中與視頻橋連接的每臺(tái)設(shè)備來(lái)說(shuō),可能要求從輸入的單路視頻通道中提取/分解合成視頻幀,并將它們顯示到各臺(tái)顯示設(shè)備,或者出于演示等目的在接收終端的屏幕各窗口上顯示。下面的圖4就展示了這樣的一個(gè)用例,其中來(lái)自用戶A、C和D的幀被顯示在用戶A的LCD屏幕的各個(gè)獨(dú)立窗口上,而來(lái)自用戶B的幀顯示在諸如HDMI電視機(jī)等外部顯示器上。

2.3 3D視頻會(huì)議

在如圖5所示的3D視頻會(huì)議應(yīng)用案例中,要求將來(lái)自兩個(gè)攝像傳感器的輸入幀合成在一起,經(jīng)編碼后在網(wǎng)絡(luò)上以數(shù)據(jù)流的形式傳輸。接收端則要求提取/分解出來(lái)自每個(gè)攝像傳感器的幀,以便將各個(gè)通道的幀渲染到顯示器的不同通道上,實(shí)現(xiàn)立體觀看體驗(yàn)。

3.0 實(shí)現(xiàn)

離屏幀合成器/分解器功能可以有多種實(shí)現(xiàn)方式:

3.1 使用獨(dú)立于平臺(tái)的算法

這種方法采用可以在CPU上運(yùn)行的通用算法。雖然這種實(shí)現(xiàn)具有很好的可移植性,但會(huì)導(dǎo)致CPU負(fù)擔(dān)過(guò)重。這是因?yàn)閹暮铣?分解過(guò)程通常包含以下一些操作:

●縮放或重新調(diào)整視頻幀尺寸(放大或縮小)

●輸入視頻幀在輸出幀中的定位

●輸入幀的剪切

●輸出幀的剪切

●輸入通道的Alpha混合

●輸入/輸出幀的旋轉(zhuǎn)

在幀速率為30fps的視頻流情況下,這些操作必須以1/30s即33.33ms的幀周期執(zhí)行。如果幀的像素分辨率更高,比如720p、1080p,那么處理這些幀將成為CPU很重的負(fù)擔(dān)。CPU負(fù)擔(dān)的加重將導(dǎo)致不良的用戶界面,因?yàn)镮/O互動(dòng)少了。如果處理器不能在如此短的幀周期內(nèi)處理完一幀,那么在幀合成過(guò)程中有可能發(fā)生丟幀現(xiàn)象。

3.2 使用特殊平臺(tái)縮放器

一些嵌入式處理器提供特殊平臺(tái)縮放器的硬件實(shí)現(xiàn),它們實(shí)際上是用硬件方式實(shí)現(xiàn)的多相過(guò)濾器,可以針對(duì)不同縮放比例提供可編程的過(guò)濾系數(shù)。

為了在應(yīng)用程序中發(fā)揮這種特殊平臺(tái)功能,CPU芯片供應(yīng)商將提供定制的設(shè)備驅(qū)動(dòng)程序。我們可以通過(guò)縮放器設(shè)備驅(qū)動(dòng)程序使用這種縮放器來(lái)實(shí)現(xiàn)合成功能。應(yīng)用程序可以利用不同的輸入/輸出剪切參數(shù)一次調(diào)整一個(gè)輸入幀并合成到輸出幀中。一旦縮放器調(diào)整好了一個(gè)輸入幀的大小并將它放到輸入幀中,它就會(huì)向CPU內(nèi)核發(fā)出中斷信號(hào)。

針對(duì)將N個(gè)輸入幀合成到一個(gè)輸出幀的應(yīng)用而言,它必須在一個(gè)幀周期內(nèi)完成N次尺寸調(diào)整操作。這些縮放器非常高效,可以在可接受的時(shí)間限制內(nèi)完成縮放處理。合成幀的輸出幀速率取決于單次縮放操作所占用的時(shí)間。

如果是N到1的合成、并且輸入/輸出幀具有相同的像素分辨率,那么

N代表輸入數(shù)量

T代表一次縮放操作所花的時(shí)間

如果合成中的輸入/輸出幀具有不同的像素分辨率,那么:

Tn代表將第n個(gè)輸入通道的幀縮放后放到輸出通道所花的時(shí)間。其中n:0-》N

上述公式同樣可以應(yīng)用于具有一個(gè)輸入和N個(gè)輸出通道的分解器。

雖然使用這種方法可以提供高效的解決方案,但它不具有可移植性。這些硬件功能對(duì)嵌入式處理器來(lái)說(shuō)是特定的。要么不同的嵌入式處理器不一定有這些功能,要么是以不同的方式實(shí)現(xiàn),具有不同的功能清單。

控制這些定制硬件的設(shè)備驅(qū)動(dòng)程序提供的接口和功能在每種嵌入式處理器上是不同的。而且一般來(lái)說(shuō),像旋轉(zhuǎn)、Alpha混合等功能無(wú)法用這種縮放器硬件來(lái)實(shí)現(xiàn)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4591

    瀏覽量

    128141
  • 分辨率
    +關(guān)注

    關(guān)注

    2

    文章

    1008

    瀏覽量

    41735
  • 多媒體
    +關(guān)注

    關(guān)注

    0

    文章

    490

    瀏覽量

    36838
  • OpenGL
    +關(guān)注

    關(guān)注

    1

    文章

    84

    瀏覽量

    29132
  • 安防
    +關(guān)注

    關(guān)注

    9

    文章

    2237

    瀏覽量

    62217
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求指點(diǎn)  簡(jiǎn)易波形分解合成器

       簡(jiǎn)易波形分解合成器輸入為2路模擬信號(hào),輸出為滿足下面要求的模擬信號(hào),輸出帶200Ω電阻負(fù)載。當(dāng)輸入只有1路輸入信號(hào)時(shí),另一路無(wú)信號(hào)即為0。1.基本要求(1) 輸入1路正弦交流信號(hào):電壓峰峰
    發(fā)表于 04-25 16:54

    合成器

    1、使用反饋有一種設(shè)備與振蕩有關(guān),.稱為合成器。在一些情況下,從普通振蕩出來(lái)的正弦波不夠完美。射頻工程師發(fā)現(xiàn)如果振蕩與其它電路結(jié)合起來(lái),利用反饋,可以使正弦波更完美,這就適
    發(fā)表于 12-06 14:06

    詳解頻率合成器高性能架構(gòu)的實(shí)現(xiàn)

    )可以極大地促進(jìn)高性能架構(gòu)的實(shí)現(xiàn)。大部分高頻系統(tǒng)都使用傳統(tǒng)的基于整數(shù)分頻的設(shè)計(jì)(圖1)或基于分?jǐn)?shù)N分頻的設(shè)計(jì)。不管是使用哪種設(shè)計(jì),聯(lián)合使用單個(gè)通用頻率合成器IC和一個(gè)外部壓控振蕩
    發(fā)表于 07-08 06:10

    基于DDS的頻率合成器設(shè)計(jì)介紹

    合成器有顯著的優(yōu)勢(shì)。這些優(yōu)勢(shì)包括亞赫茲頻率控制分辨率,相位失調(diào)和輸出幅度控制,以及無(wú)需基于PLL頻率合成器設(shè)計(jì)所需要的外部元件。另外,作為一個(gè)基于數(shù)字的波形發(fā)生,其頻率、相位和幅度的改變可以通過(guò)一個(gè)簡(jiǎn)單
    發(fā)表于 07-08 07:26

    如何利用FPGA設(shè)計(jì)PLL頻率合成器?

    電子技術(shù)應(yīng)用頻率合成技術(shù)是現(xiàn)代通信的重要組成部分,它是將一個(gè)高穩(wěn)定度和高準(zhǔn)確度的基準(zhǔn)頻率經(jīng)過(guò)四則運(yùn)算,產(chǎn)生同樣穩(wěn)定度和準(zhǔn)確度的任意頻率。頻率合成器是電子系統(tǒng)的心臟,是影響電子系統(tǒng)性能的關(guān)鍵因素之一
    發(fā)表于 07-30 07:55

    什么是頻率合成器

    和相位來(lái)生成被調(diào)制信號(hào),因此對(duì)于數(shù)字通信系統(tǒng)來(lái)說(shuō)可以產(chǎn)生任意的波形。軟件無(wú)線電系統(tǒng)中的數(shù)字上下變頻、本地載波的產(chǎn)生以及壓控震蕩等重要環(huán)節(jié)都可以用DDS技術(shù)實(shí)現(xiàn)?! 〔捎肈DS技術(shù)的直接數(shù)字頻率合成器
    發(fā)表于 08-19 19:18

    鎖相環(huán)頻率合成器是什么原理?

    頻率合成器的主要性能指標(biāo)鎖相環(huán)頻率合成器原理鎖相環(huán)頻率合成器捕捉過(guò)程的分析與仿真
    發(fā)表于 04-22 06:27

    分享一個(gè)不錯(cuò)的使用OpenGL ES實(shí)現(xiàn)視頻合成分解的可移植可擴(kuò)展解決方案

    本文將討論需要使用這些模塊的各種用例,在嵌入式平臺(tái)上實(shí)現(xiàn)合成器/分解器的不同方法以及這些方法各自的優(yōu)缺點(diǎn),并推薦一種使用OpenGL
    發(fā)表于 06-02 07:10

    基于555定時(shí)合成器

    描述帶有 LFO 的 Atari Punk 控制臺(tái)這個(gè)簡(jiǎn)單的合成器使用 3 555 個(gè)定時(shí),兩個(gè)作為步進(jìn)聲音驅(qū)動(dòng),一個(gè)作為低頻振蕩。再加上一些用于控制的定時(shí)電容和電位
    發(fā)表于 07-20 06:40

    頻率合成器,頻率合成器原理及作用是什么?

    頻率合成器,頻率合成器原理及作用是什么? 所謂的頻率合成器,就是以一個(gè)精確度、穩(wěn)定度極好的石英晶體振蕩作為基準(zhǔn)頻率,并利用加、減
    發(fā)表于 03-23 11:04 ?1.5w次閱讀

    什么是直接式頻率合成器(DS)

    什么是直接式頻率合成器(DS) 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”。現(xiàn)代戰(zhàn)
    發(fā)表于 03-23 11:23 ?1684次閱讀

    間接式頻率合成器(IS)的定義和原理是什么?

    間接式頻率合成器(IS)的定義和原理是什么? 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”?,F(xiàn)代戰(zhàn)爭(zhēng)是
    發(fā)表于 03-23 11:31 ?2309次閱讀

    單環(huán)鎖相頻率合成器,單環(huán)鎖相頻率合成器是什么意思

    單環(huán)鎖相頻率合成器,單環(huán)鎖相頻率合成器是什么意思 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)的“心臟”。現(xiàn)代戰(zhàn)爭(zhēng)是
    發(fā)表于 03-23 11:36 ?985次閱讀

    集成鎖相環(huán)頻率合成器,什么是集成鎖相環(huán)頻率合成器

    集成鎖相環(huán)頻率合成器,什么是集成鎖相環(huán)頻率合成器 頻率合成的歷史 頻率合成器被人們喻為眾多電子系統(tǒng)
    發(fā)表于 03-23 11:45 ?795次閱讀

    pll頻率合成器工作原理與pll頻率合成器的原理圖解釋

    pll頻率合成器工作原理與pll頻率合成器的原理圖解釋 我們要搞清楚pll頻率合成器工作原理與pll頻率合成器的原理圖就要先搞清楚pll和頻率合成器
    的頭像 發(fā)表于 02-24 18:19 ?9296次閱讀
    pll頻率<b class='flag-5'>合成器</b>工作原理與pll頻率<b class='flag-5'>合成器</b>的原理圖解釋