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

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

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

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

電子設(shè)計 ? 來源:郭婷 ? 作者:電子設(shè)計 ? 2019-04-09 08:50 ? 次閱讀

簡介

視頻系統(tǒng),目前已經(jīng)深入消費應(yīng)用的各個方面,在汽車、機器人工業(yè)領(lǐng)域日益普遍。其在非消費應(yīng)用中的增長主要源于HDMI標(biāo)準(zhǔn)以及更快、更高效的DSPFPGA的出現(xiàn)。

本文將概要討論利用模擬或HDMI攝像機實現(xiàn)立體視覺(3D視頻)的各種要求。文章將描述一個基于FPGA的系統(tǒng),它將兩個視頻流結(jié)合成一個3D視頻流,通過HDMI 1.4發(fā)射器進行傳輸,同時還要介紹一個基于DSP的系統(tǒng),與通常需從兩臺攝像機接收數(shù)據(jù)相比,該系統(tǒng)可以節(jié)省DMA帶寬。另外,本文還將描述一種方法,該方法可以實現(xiàn)一種并排格式,可供3D攝像機或要求3D視頻的系統(tǒng)使用。

概述

立體視覺要求使用兩臺攝像機,二者相距大約5.5厘米,這是人類雙眼之間的典型間距,如圖1所示。

圖2所示高級功能框圖使用了采用相同視頻標(biāo)準(zhǔn)的兩臺同步攝像機、兩個視頻解碼器和一個FPGA。為了確保完全一致的幀速率,攝像機必須行鎖定到共同的參考時序。如果沒有同步,不使用外部存儲器,就不可能將輸出組合起來并存儲為完整的視頻幀。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

圖3顯示兩個行鎖定視頻流被合并成一個立體圖像。圖4顯示,如果不將整個視頻幀保存在外部存儲器中,則異步視頻流無法合并。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

然后,兩臺同步攝像機的輸出由視頻解碼器(如ADV7181D, ADV7182或ADV7186 用于模擬攝像機)進行數(shù)字化處;也可由 HDMI receivers(如ADV7610 或 ADV7611用于數(shù)字?jǐn)z像機)進行數(shù)字化處理。

視頻解碼器和HDMI接收器都采用內(nèi)部鎖相環(huán)(PLL)在其輸出總線上產(chǎn)生時鐘和像素數(shù)據(jù)。這意味著,在數(shù)字化模擬視頻,或者接收HDMI流時,將為兩臺攝像機產(chǎn)生兩個獨立的時鐘域。另外,兩個視頻流可能存在對齊誤差。這些時序差異和對齊誤差必須在后端器件(如FPGA)中進行補償,先將數(shù)據(jù)帶至共同的時鐘域,然后再將兩個視頻圖像結(jié)合成單個立體視頻幀。然后,通過一個支持3D的HDMI 1.4HDMI 接收器(如ADV7511 或 ADV7513—也可以將其提供給DSP(如 ADSP-BF609 Blackfin?處理器)—以便進一步處理。

時鐘架構(gòu)

視頻解碼器有兩種完全不同的時鐘源,具體取決于其是否鎖定。當(dāng)視頻PLL被鎖定至輸入同步信號時——水平同步(視頻解碼器)或TMDS時鐘(HDMI)——結(jié)果會產(chǎn)生一個鎖定至輸入視頻源的時鐘。當(dāng)視頻失鎖時,或者當(dāng)PLL處于強制自由運行模式時,視頻PLL不會鎖定至輸入同步信號,結(jié)果會產(chǎn)生一個鎖定至晶振時鐘的時鐘輸出。另外,時鐘可能不會在復(fù)位后輸出,因為LLC時鐘驅(qū)動器在復(fù)位后設(shè)置為高阻抗模式。

因此,如果系統(tǒng)有兩個或多個始于視頻解碼器或HDMI接收器的視頻路徑,即使將同一晶振時鐘提供給兩個視頻解碼器或HDMI接收器,仍會有兩個不同頻率、不同相位的不同時鐘域,因為每個器件都會基于自己的PLL產(chǎn)生自己的時鐘。

帶鎖定視頻解碼器的同步系統(tǒng)

典型的立體視頻使用兩個視頻源,其中,每個視頻解碼器都會鎖定至輸入視頻信號,并會基于輸入水平同步或TMDS時鐘產(chǎn)生自己的時鐘。當(dāng)兩臺攝像機同步——或行鎖定至同一參考時序時——分幀線將始終對齊。由于兩個獨立的視頻解碼器會收到相同的水平同步信號,因此,像素時鐘將擁有相同的像素時鐘頻率。這樣,就可以將兩條數(shù)據(jù)路徑帶入同一個時鐘域,如圖5所示。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

兩個視頻解碼 器都會收到同一同步信號,因此,它們也會鎖定

異步視頻系統(tǒng)

不幸的是,其中一個視頻解碼器可能因視頻源信號質(zhì)量欠佳而失鎖,如圖6所示;或者,攝像機因視頻鏈路斷開而失去同步性,如圖7所示。這會在兩條數(shù)據(jù)路徑中導(dǎo)致不同的頻率,結(jié)果又會導(dǎo)致進入后端中的數(shù)據(jù)量不對稱。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

視頻失鎖可以通過使用一個中斷(SD視頻解碼器為SD_UNLOCK,分量視頻解碼器為CP_UNLOCK,或HDMI接收器中的TMDSPLL_LCK寄存器)來檢測,該中斷會在一定延遲后介入。視頻解碼器集成了不穩(wěn)定水平同步平滑機制,因此,視頻失鎖的檢測可能需要兩三行。該延遲可通過控制FPGA中的失鎖來減少。

時鐘三態(tài)模式

在設(shè)計FPGA時鐘資源時,必須知道,默認(rèn)情況下,許多視頻解碼器和HDMI產(chǎn)品在復(fù)位后將時鐘和數(shù)據(jù)線路置為三態(tài)模式。因此,LLC像素時鐘不適用于同步復(fù)位。

兩條視頻流中的數(shù)據(jù)對齊誤差

為了簡化系統(tǒng)并減少合并兩幅圖像所需存儲器,到達(dá)FPGA的數(shù)據(jù)應(yīng)進行同步,以使來自第一臺攝像機的第M 行第N個 像素與來自第二臺攝像機的第M 行第N個 像素同時收到。

在FPGA輸入端,這可能很難實現(xiàn),因為兩條視頻路徑可能具有不同的延遲:行鎖定攝像機可能輸出存在對齊誤差的行,不同的連接長度可能加大對齊誤差,而視頻解碼器則可能帶來可變啟動延遲。受這些延遲影響,采用行鎖定攝像機的系統(tǒng)會有一些存在對齊誤差的像素。

行鎖定攝像機對齊誤差

即使是行鎖定攝像機也可能輸出存在對齊誤差的視頻行。圖8顯示來自兩臺攝像機的CVBS輸出端的垂直同步信號。一臺攝像機(同步主機)為第二臺攝像機(同步從機)提供行鎖定信號。380 ns的對齊誤差是清楚可見的。圖9展示的是這些攝像機輸出端的視頻解碼器傳輸?shù)臄?shù)據(jù)??梢钥吹?1個像素的位移。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

不同的連接長度

所有電氣連接都會帶來傳播延遲,因此,要確保兩條視頻路徑具有相同的軌道和電纜長度。

視頻解碼器/HDMI接收器延遲

所有視頻解碼器都會帶來可能因啟用的功能而異的延遲。另外,有些視頻器件含有可能增加隨機啟動延遲的因素——如深色FIFO。采用視頻解碼器的典型立體系統(tǒng)的隨機啟動延遲大約為5個像素時鐘。含有HDMI發(fā)射器和接收器的系統(tǒng)(如圖10所示)的隨機啟動延遲可能為40個像素時鐘左右。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

對齊誤差補償

圖11所示系統(tǒng)中,一個視頻解碼器對來自各攝像機的模擬信號進行數(shù)字化處理。各視頻路徑的數(shù)據(jù)和時鐘是獨立的。兩條視頻路徑都連接至FIFO,后者對輸入數(shù)據(jù)進行緩沖,以補償數(shù)據(jù)對齊誤差。在輸出數(shù)據(jù)時,F(xiàn)IFO使用來自其中一個解碼器的共用時鐘。在鎖定系統(tǒng)中,兩條數(shù)據(jù)路徑應(yīng)具有完全相同的時鐘頻率,以確保在攝像機行鎖定且視頻解碼器鎖定的情況下,不會出現(xiàn)FIFO溢出或下溢現(xiàn)象。

通過啟用或禁用FIFO輸出,控制模塊可以維持FIFO電平以盡量減少像素對齊誤差。如果采取了正確的補償措施,則FPGA模塊的輸出應(yīng)為與第一個像素對齊的兩條數(shù)據(jù)路徑。然后該數(shù)據(jù)提供給FPGA后端,以生成3D格式。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

對齊誤差測量

兩個數(shù)字化數(shù)據(jù)流之間的對齊誤差可以在視頻FIFO輸出端進行測量,其方法是使用一個單一時鐘計數(shù)器,該計數(shù)器在輸入信號之一的垂直同步(VS)脈沖上復(fù)位。圖12所示兩個視頻流(vs_a_in和vs_b_in)的對齊誤差為4個像素。計數(shù)器使用列表1中所示方法測量對齊誤差。計數(shù)從VS1的上升沿開始,并在VS2的上升沿終止。

如果一個幀的總像素長度是已知的,則可以通過從幀長中減去計數(shù)值,從而算出負(fù)偏斜(VS2位于VS1之前)。該負(fù)值應(yīng)在偏斜超過像素幀長的一半時計算。結(jié)果應(yīng)用來重新對齊FIFO中存儲的數(shù)據(jù)。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

列表1 簡單對齊誤差測量(Verilog?).

module misalign_measurement(

input wire reset,

input wire clk_in,

input wire vs_a_in,

input wire vs_b_in,

output reg [15:0] misalign,

output reg ready);

reg [15:0] cnt;

reg cnt_en, cnt_reset;

reg vs_a_in_r, vs_b_in_r;

assign vs_a_rising = vs_a_in 》 vs_a_in_r;

assign vs_b_rising = vs_b_in 》 vs_b_in_r;

always @(posedge clk_in)

begin

vs_a_in_r 《= vs_a_in;

vs_b_in_r 《= vs_b_in;

end

always @(posedge clk_in)

if (reset)

begin

{ ready, cnt_en } 《= 2‘b00;

misalign 《= 0;

end else begin

if ((vs_a_in == 1’b0) && (vs_b_in == 1‘b0))

{ ready, cnt_reset } 《= 2’b01;

else

cnt_reset 《= 1‘b0;

/* beginning */

if (vs_a_rising && vs_b_rising)

begin

misalign 《= 0;

{ ready, cnt_en } 《= 2’b10;

end

else if ((vs_a_rising 》 vs_b_in) || (vs_b_rising 》 vs_a_in))

{ ready, cnt_en } 《= 2‘b01;

/* ending */

if ((cnt_en == 1’b1) && (vs_a_rising || vs_b_rising))

begin

{ ready, cnt_en } 《= 2‘b10;

misalign 《= vs_a_rising ? (-(cnt + 1)) : (cnt + 1);

end

end

always @(posedge clk_in) /* counter */

if ((cnt_reset) || (reset))

cnt 《= 0;

else if (cnt_en)

cnt 《= cnt + 1;

endmodule

從兩個對齊視頻流生成3D視頻

一旦像素、行和幀數(shù)據(jù)都真正同步,F(xiàn)PGA可以將視頻數(shù)據(jù)轉(zhuǎn)換成3D視頻流,如圖13所示。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

輸入數(shù)據(jù)由共用時鐘讀入存儲器。同步時序分析儀檢查輸入的同步信號,并抽取視頻時序,包括水平前后沿長度、垂直前后沿、水平和垂直同步長度、水平有效行長、垂直有效行數(shù)和同步信號極化。將該信息與當(dāng)前水平和垂直像素位置一起傳給同步時序再發(fā)生器,這樣可以生成經(jīng)修改的時序,以便支持所需3D視頻結(jié)構(gòu)。新生成的時序應(yīng)延遲,以確保FIFO含有所需數(shù)據(jù)量。

并排3D視頻

對存儲器要求最低的架構(gòu)是并排格式,只需要一個兩行緩沖器(FIFO)即可存儲來自兩個視頻源的行內(nèi)容。并排格式的寬度應(yīng)為原始輸入模式的兩倍。為此,應(yīng)使用一個雙倍時鐘來為擁有雙倍水平行長度的再生同步時序提供時鐘。用于為后端提供時鐘的雙倍時鐘將以雙倍速率清空第一個FIFO和第二個FIFO,這樣即可并排顯示圖像,如圖14所示。并排圖像如圖15所示。

基于FPGA與DSP的系統(tǒng)實現(xiàn)3D視頻

結(jié)論

ADI公司的解碼器和HDMI產(chǎn)品以及簡單的后處理技術(shù)可以打造出真正的立體3D視頻,并為其傳輸提供條件。如本文所示,用簡單的數(shù)字模塊,無需使用昂貴的存儲器,即可實現(xiàn)3D視頻。這種系統(tǒng)可用于需要3D視覺的任何類型的系統(tǒng)中,從簡單的攝像機,到基于ADSP-BF609 DSP的可以跟蹤物體及其距離的專業(yè)系統(tǒng)。

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

    關(guān)注

    551

    文章

    7824

    瀏覽量

    346879
  • FPGA
    +關(guān)注

    關(guān)注

    1621

    文章

    21511

    瀏覽量

    599054
  • 解碼器
    +關(guān)注

    關(guān)注

    9

    文章

    1113

    瀏覽量

    40452
收藏 人收藏

    評論

    相關(guān)推薦

    FPGA+DSP架構(gòu)的視頻處理系統(tǒng)設(shè)計詳解

    系統(tǒng)采用基于FPGADSP協(xié)同工作進行視頻處理的方案,實現(xiàn)視頻采集、處理到傳輸?shù)恼麄€過程。
    發(fā)表于 10-23 15:35 ?6260次閱讀
    <b class='flag-5'>FPGA+DSP</b>架構(gòu)的<b class='flag-5'>視頻</b>處理<b class='flag-5'>系統(tǒng)</b>設(shè)計詳解

    [討論]FPGA培訓(xùn)—基于FPGADSP系統(tǒng)設(shè)計與實現(xiàn)

    架構(gòu)、嵌入式系統(tǒng)、實時操作系統(tǒng)、數(shù)字信號處理、圖像與視頻處理和數(shù)字通信等,可以實現(xiàn)片上課程理念。七、教學(xué)大綱基于Xilinx FPGA
    發(fā)表于 07-21 09:20

    基于FPGADSP視頻處理系統(tǒng)設(shè)計

      本系統(tǒng)采用基于FPGADSP協(xié)同工作進行視頻處理的方案,實現(xiàn)視頻采集、處理到傳輸?shù)恼麄€過程
    發(fā)表于 06-19 06:12

    基于FPGA+DSP架構(gòu)的視頻處理系統(tǒng)設(shè)計

      本系統(tǒng)采用基于FPGADSP協(xié)同工作進行視頻處理的方案,實現(xiàn)視頻采集、處理到傳輸?shù)恼麄€過程
    發(fā)表于 06-28 08:10

    一種基于FPGA+DSP視頻處理系統(tǒng)設(shè)計

    系統(tǒng)采用基于FPGADSP協(xié)同工作進行視頻處理的方案,實現(xiàn)視頻采集、處理到傳輸?shù)恼麄€過程。實
    發(fā)表于 07-01 07:38

    為什么說FPGA主導(dǎo)了3D視頻處理市場?

    和Neytiri對世界美好的愿望和共同的追求,使雙方互相看到了地球人和納威人之間不可分割的聯(lián)系,而觀眾則通過先進的3D視頻處理技術(shù),觀賞到了3D電影的逼真效果,感受到這部電影帶來的震撼。那么有誰知道,為什么說
    發(fā)表于 08-06 08:26

    基于FPGA系統(tǒng)通過合成兩條視頻流來提供3D視頻

    簡介視頻系統(tǒng),目前已經(jīng)深入消費應(yīng)用的各個方面,在汽車、機器人和工業(yè)領(lǐng)域日益普遍。其在非消費應(yīng)用中的增長主要源于HDMI標(biāo)準(zhǔn)以及更快、更高效的DSPFPGA的出現(xiàn)。
    發(fā)表于 11-03 08:00

    如何通過合成兩條視頻流來提供3D視頻?

    一種基于FPGADSP技術(shù)的實現(xiàn)3D視頻系統(tǒng)的設(shè)計
    發(fā)表于 06-02 06:06

    FPGA正掀起3D電視新潮流

    FPGA正在3D電視中大顯身手。各大OEM廠商都采用FPGA支持3D顯示屏設(shè)計,而領(lǐng)先的相機和攝像機制造商則用FPGA
    發(fā)表于 01-18 07:36 ?674次閱讀

    Lattice將在CES 2013上展示基于LatticeECP3的實時3D視頻轉(zhuǎn)換器

    萊迪思將在CES 2013上展示3D Impact Media的基于低密度LatticeECP3 FPGA的實時3D 視頻轉(zhuǎn)換器Realit
    發(fā)表于 12-18 08:53 ?1699次閱讀

    基于FPGA系統(tǒng)通過合成兩條視頻流來提供3D視頻

    基于FPGA系統(tǒng)通過合成兩條視頻流來提供3D視頻
    發(fā)表于 01-07 15:00 ?10次下載

    2D3D視頻自動轉(zhuǎn)換系統(tǒng)

    完成系統(tǒng)界面的設(shè)置及控制、顯示等功能,其DSP處理器實現(xiàn)圖像分割和渲染等核心算法,實現(xiàn)了1個高效的2D
    發(fā)表于 03-06 14:20 ?1次下載
    2<b class='flag-5'>D</b>到<b class='flag-5'>3D</b><b class='flag-5'>視頻</b>自動轉(zhuǎn)換<b class='flag-5'>系統(tǒng)</b>

    基于FPGADSP技術(shù)實現(xiàn)3D視頻系統(tǒng)設(shè)計

    視頻系統(tǒng),目前已經(jīng)深入消費應(yīng)用的各個方面,在汽車、機器人和工業(yè)領(lǐng)域日益普遍。其在非消費應(yīng)用中的增長主要源于HDMI標(biāo)準(zhǔn)以及更快、更高效的DSPFPGA的出現(xiàn)。
    的頭像 發(fā)表于 03-19 09:28 ?1729次閱讀
    基于<b class='flag-5'>FPGA</b>和<b class='flag-5'>DSP</b>技術(shù)<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>3D</b><b class='flag-5'>視頻</b>的<b class='flag-5'>系統(tǒng)</b>設(shè)計

    基于AVS 3D實時解碼器在 FPGA/SoC平臺上的設(shè)計與實現(xiàn)

    AVS(audio video coding standard)工作組針對3D視頻提出了雙目立體視頻編解碼方案。以AVS雙目拼接算法為核心,通過FPGA硬件加
    的頭像 發(fā)表于 04-07 11:33 ?2491次閱讀
    基于AVS <b class='flag-5'>3D</b>實時解碼器在 <b class='flag-5'>FPGA</b>/SoC平臺上的設(shè)計與<b class='flag-5'>實現(xiàn)</b>

    基于FPGA系統(tǒng)結(jié)合了兩個視頻流以提供3D視頻

    本文概述了使用模擬或HDMI攝像機實現(xiàn)立體視覺(3D視頻)的要求。它描述了一個基于 FPGA系統(tǒng),該
    的頭像 發(fā)表于 02-02 15:09 ?1676次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>系統(tǒng)</b>結(jié)合了兩個<b class='flag-5'>視頻</b>流以提供<b class='flag-5'>3D</b><b class='flag-5'>視頻</b>