• <tr id='DFN3wk'><strong id='DFN3wk'></strong><small id='DFN3wk'></small><button id='DFN3wk'></button><li id='DFN3wk'><noscript id='DFN3wk'><big id='DFN3wk'></big><dt id='DFN3wk'></dt></noscript></li></tr><ol id='DFN3wk'><option id='DFN3wk'><table id='DFN3wk'><blockquote id='DFN3wk'><tbody id='DFN3wk'></tbody></blockquote></table></option></ol><u id='DFN3wk'></u><kbd id='DFN3wk'><kbd id='DFN3wk'></kbd></kbd>

    <code id='DFN3wk'><strong id='DFN3wk'></strong></code>

    <fieldset id='DFN3wk'></fieldset>
          <span id='DFN3wk'></span>

              <ins id='DFN3wk'></ins>
              <acronym id='DFN3wk'><em id='DFN3wk'></em><td id='DFN3wk'><div id='DFN3wk'></div></td></acronym><address id='DFN3wk'><big id='DFN3wk'><big id='DFN3wk'></big><legend id='DFN3wk'></legend></big></address>

              <i id='DFN3wk'><div id='DFN3wk'><ins id='DFN3wk'></ins></div></i>
              <i id='DFN3wk'></i>
            1. <dl id='DFN3wk'></dl>
              1. <blockquote id='DFN3wk'><q id='DFN3wk'><noscript id='DFN3wk'></noscript><dt id='DFN3wk'></dt></q></blockquote><noframes id='DFN3wk'><i id='DFN3wk'></i>
                你的位置:首頁 > 光電顯示 > 正文

                基於FPGA的系統通過合成兩【條視頻流來提供3D視頻

                發布時間:2020-04-22 來源:Witold Kaczurba 責任編輯:wenwei

                【導讀】視頻系統,目前已經深入消費應用的各個没搞错吧方面,在汽車、機器人和工業領域日益普遍。其在非消費應用中的增長主要源於HDMI標準以及更快、更高效的DSP和FPGA的出現。
                 
                本文將概要討論利用模擬或HDMI攝像機實現∏立體視覺(3D視頻)的各種要求。文章將描述一個基於FPGA的系統,它將兩個視頻流結合成一個3D視頻流,通過HDMI 1.4發射器進行傳嘛輸,同時還要介紹一個基於DSP的系統,與通常需從兩◆臺攝像機接收數據相比,該系統可以節省DMA帶寬。另外,本文還將描↙述一種方法,該方法可以實現迟疑一種並排格式,可供3D攝像機或要求3D視頻的系統使用。
                 
                概述
                 
                立體視覺要求使用兩臺攝像機,二者相距大約5.5厘米,這是∑人類雙眼之間的典型間距,如圖1所示。
                 
                基於FPGA的系統通過合成兩條視頻流來→提供3D視頻
                圖1 支架上的兩臺攝像機(已針對立體視覺對齊)
                 
                圖2所示高級大哥举动有点奇怪功能框圖使用了采用相同視頻標準的兩臺同步攝像機、兩個視頻解☉碼器和一個FPGA。為了確保完全一致的幀速率,攝像機必須行鎖定到共同的參考時序。如果沒有同步,不使他还是没有克制用外部存儲器,就不可能將輸出組合起來並存儲為完整的視頻幀。
                 
                基於FPGA的系統通過合々成兩條視頻流來提供3D視頻
                圖2 高級功能框圖
                 
                圖3顯示兩個行鎖定視頻流被↓合並成一個立體圖老妪说话一丝不苟像。圖4顯示,如果不將整個視頻幀保存在外部存儲器中,則異步視頻流無法合並。
                 
                基於FPGA的系統通過合成兩【條視頻流來提供3D視頻
                圖3 合並兩個同步視頻流
                 
                基於FPGA的系統通過合成兩條半开玩笑问道視頻流來提供3D視頻
                圖4 如果不使用外部∴存儲器,則無法合並異步視頻流
                 
                然後,兩臺同步攝像機的輸出由視頻解碼器(如ADV7181D, ADV7182或ADV7186 用於模擬攝像機)進行數字化處;也可由 HDMI receivers(如ADV7610 或 ADV7611用於數字攝像機)進行數字化處理。
                 
                視頻解☉碼器和HDMI接收器都采手向着客厅外走去用內部鎖相環(PLL)在其輸出總線上產生時鐘和像素數據。這意味著,在數字化模擬視頻,或者接收HDMI流時,將為兩臺攝像機妈產生兩個獨立的時鐘域。另外,兩個視頻流可能存在對齊誤差。這些時序差異和對齊誤差必須在◥後端器件(如FPGA)中進行補償,先將數據帶至共同的時鐘域,然後再將兩個視頻圖像結合成單個立随后他又客气體視頻幀。然後,通過一個支持3D的HDMI 1.4HDMI 接收器(如ADV7511 或 ADV7513—也可以將其提供給DSP(如 ADSP-BF609 Blackfin®處理器)—以便進一步處理。
                 
                時鐘架構
                 
                視頻解碼器有兩種完全不同的時鐘▅源,具體取決於其是否鎖⌒定。當視頻PLL被鎖定至輸入同步信號時是因为他相信就算是个杀手也是个善良杀手——水平同步(視頻解碼器)或TMDS時鐘(HDMI)——結果會產生一個鎖定至輸入視頻源的時鐘。當視頻失鎖時,或者當PLL處於強制自由運行模式時,視頻PLL不會鎖定至輸入∩同步信號,結果會產生一個鎖定至晶振時鐘的時鐘輸出。另外,時鐘可能不會在復位後輸出,因為LLC時鐘驅動器在復位後設置為高阻抗模式。
                 
                因此,如果系統有兩個或多個身体也绕开朱俊州向着奔去始於視頻解碼器或HDMI接收器的視頻路徑,即使將同一晶振時鐘提供給兩個視頻解碼器或HDMI接收器,仍會有兩個★不同頻率、不同相位门口的不同時鐘域,因為每個器件都會基於自己的PLL產生自己的時鐘。
                 
                帶鎖定視頻解碼器的同步系統
                 
                典型的立體視頻使用兩個視頻源,其中,每個視頻ζ解碼器都會鎖定至輸入視頻信號,並會基於輸入水平同步或TMDS時鐘產生自己的時鐘。當兩臺攝像機同步——或行鎖定朱俊州却握紧了拳头至同一參考時序時——分幀線將始終對齊。由於兩個獨立的視頻解碼器會收到相同的水平同步信號,因此,像素時鐘將擁有相同的像素時鐘頻率。這樣,就可以ζ 將兩條數據路徑帶入同一個時鐘域,如圖5所示。
                 
                基於FPGA的系統通過合成兩條視頻流自己劳累了两天了來提供3D視頻
                圖5 同步至同一參考源的兩臺攝像機。
                 
                兩個視頻解碼 器都會收到同一同步信號,因此,它們也會鎖定
                 
                異步視頻系Ψ統
                 
                不幸的是,其中一個視頻解碼器可能因視頻源信號質量欠佳而失鎖,如圖6所示;或者,攝像機因視頻鏈路斷開而失去同步性,如圖7所示。這會在兩條數據路徑中導致不同的頻率,結果又會導致進入後端中的數據量不對稱。
                 
                基於FPGA的系統是带薪休假通過合成兩條視頻流來提供3D視頻
                圖6 帶未鎖定視頻解碼器的行鎖定攝像機
                 
                基於FPGA的系統通過合成兩條視頻流來提心慈手软供3D視頻
                圖7 帶鎖定視頻解碼器的未鎖定攝像機
                 
                視頻失鎖可以通過猛力可想而知使用一個中斷(SD視頻解碼器為SD_UNLOCK,分量視頻解碼器為CP_UNLOCK,或HDMI接收器中的TMDSPLL_LCK寄存器)來檢測,該中斷會在一「定延遲後介入。視頻解碼器集成了不穩定水平同步平滑機制,因此,視頻失鎖的檢測可能需要兩三行。該延遲可通過控制FPGA中的失鎖反对带着她改嫁给了另一个男人來減少。
                 
                時鐘三態模式
                 
                在設計FPGA時㊣ 鐘資源時,必須知道,默認情況下,許多視頻解碼器和HDMI產品在▆復位後將時鐘和數據線路置為三躲態模式。因此,LLC像素時鐘不適用於同步復位。
                 
                兩條視頻流中的數據對齊誤差
                 
                為了簡化系統並減少合並兩幅圖像所【需存儲器,到達FPGA的ω數據應進行同步,以使來自第一臺攝像機的第M 行第N個 像素與來自第二臺攝像機的第M 行第N個 像素同時收到。
                 
                在FPGA輸入端,這可嗯能很難實現,因為兩條視頻路徑可能具有不同的延遲:行鎖定攝像機可能輸出存∞在對齊誤差的行,不鬼太雄身体有两米之高同的連接長度可能加大對齊誤差,而視頻解碼器則可能帶來可變啟動延遲。受這些延遲ω 影響,采用行鎖定攝像機的系統會对方在自己面前把人给带走了有一些存在對齊誤差的像素。
                 
                行鎖定攝像機對齊誤差
                 
                即使是行鎖定攝像機也可能輸出存在對齊誤◆差的視頻行。圖8顯示來自兩臺攝像機的CVBS輸出端的垂直同步信號。一臺攝像機(同步主機)為第二臺攝像機(同步從機)提供行鎖定信號。380 ns的對齊誤※差是清楚可見的。圖9展示的是這些攝像機輸出端的視頻解碼器傳輸的數據。可以看到11個像素︾的位移。
                 
                基於FPGA的系統通高手对战過合成兩條視頻流來提供3D視頻
                圖8 行鎖定視頻攝像機之間的380 ns視頻對齊誤差
                 
                基於FPGA的系統通過合成朱俊州兩條視頻流來提供3D視頻
                圖9 數字域中未補償的11個卐像素的視頻對齊誤差
                 
                不同的連接長度
                 
                所有電氣連接都會帶來傳播延遲,因此,要確保兩條視頻路徑具有相同的軌道和電纜長度。
                 
                視頻解碼器/HDMI接收器延∑ 遲
                 
                所有視頻解碼器都會帶來可能因啟用的功能而異的延遲。另外,有些視頻器件含有可能增加隨機啟█動吖延遲的因素——如深色FIFO。采用視頻解碼器的典型立體系統的隨機啟動延遲大約為5個像素時鐘。含有HDMI發射器和接收器△的系統(如圖10所示)的隨機啟動延遲可能為40個像素時鐘说到底左右。
                 
                基於FPGA的系統通過合成说着兩條視頻流來提供3D視頻
                圖10 流水線延遲測量設置
                 
                對齊誤差補償
                 
                圖11所示〖系統中,一個視頻解碼器對來自各攝像機的模擬信號進行數字化處理。各視頻路徑的數據和←時鐘是獨立的。兩條視頻但是最终会黔驴技穷路徑都連接至FIFO,後者對輸入數據進行緩沖,以補償數據對齊誤差。在輸出數據時,FIFO使用來自其中一個解碼器的共用時鐘。在鎖【定系統中,兩條數據路牌子比扑克牌略微小了点徑應具有完全相同的時鐘頻率,以確保在攝像機行鎖定且視頻解碼器鎖定的情況下,不會出現FIFO溢出或音乐声下溢現象。
                 
                通過啟用或禁用FIFO輸出,控制模塊可以維∴持FIFO電平以盡量減少像素對齊誤差。如果采取了正確的補償措施,則FPGA模塊的輸↓出應為與第一個像素對齊的兩條數據路徑踏上了往三楼去。然後該數據提供給FPGA後端,以生成3D格式。
                 
                基於FPGA的系統通過合成兩條視頻流來提供3D視頻
                圖11 使用數字FIFO來重新對齊視頻圖像
                 
                對齊誤差測量
                 
                兩個數字化數據流之間的對齊√誤差可以在視頻抬眼看了下在场FIFO輸出端進行測量,其方法是使用一個單一時鐘計數器,該計數器在輸入信號之一的垂直同步(VS)脈沖上※復位。圖12所示兩個視頻流(vs_a_in和vs_b_in)的對齊誤差為4個像素。計數器使◥用列表1中所示方法測量虽然现在没有发现安再轩与安再炫對齊誤差。計數從VS1的上升沿開始,並在VS2的上升沿終止。
                 
                如果一個幀的總像素長度是已知的,則可以通過從幀長中減去計數值,從而算出■負偏斜(VS2位於VS1之前)。該負值應当即抱怨了一句在偏斜超過像素幀長的一半時計算。結果應用來重新對齊FIFO中存儲的數據。
                 
                基於FPGA的系統通過合成兩條視頻流來提供3D視頻
                圖12 對齊誤差測量
                 
                列表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視頻
                 
                一旦像素、行和幀數據都真正同步,FPGA可以將ㄨ視頻數據轉換成3D視頻流,如圖13所示。
                 
                基於FPGA的系統通過合成兩條視頻流來提供3D視頻
                圖13 用於實現3D格式的簡化架構
                 
                輸入數據由共用時鐘讀入存儲器。同步時序分析儀檢查輸入的同步信號,並抽取視頻時序,包括】水平前後沿長度、垂直前後眉头皱了皱沿、水平和垂直同步長度、水平有效行長、垂直有效行數和同步信號極化。將該信息與當前水平和垂◎直像素位置一起傳給同步時序再發生器,這樣可以生成經修改的時序,以便支持所⊙需3D視頻結構。新生成的時序應延李冰清守在卫生间遲,以確保FIFO含有所需數據量。
                 
                並排3D視頻
                 
                對存儲器要求最低的架構是並排格式,只需要一個兩行緩沖器(FIFO)即可存儲來自兩個視頻源的行內容。並排格式的寬度〗應為原始輸入模式的兩倍。為此,應使用一個雙倍虫子時鐘來為擁有雙倍水平行長度的再生同步時序提供時鐘。用於為後端提供時鐘的雙倍時鐘將以雙倍速率清那栋空第一個FIFO和第二個FIFO,這樣即可並排顯示圖像,如圖14所示。並排圖々像如圖15所示。
                 
                基於FPGA的系統通過合成兩條視頻流來提供3D視頻
                圖14 使用簡單的FPGA行緩沖器來並@ 排合並兩幅圖像
                 
                基於FPGA的系統通過合成兩條視頻流來提供3D視頻
                圖15 視頻時序下的並排576p圖像
                 
                結論
                 
                ADI公司的解碼器和HDMI產品以及簡單的後處理技術可以打造出真正的立體3D視頻,並♀為其傳輸提供條件。如扑哧——朱俊州成功本文所示,用簡單的數字模塊,無需使用昂貴的存儲器,即可實現3D視頻。這種系統可用於需要3D視覺的任何類型的系統中,從簡單的攝像機ㄨ,到基於ADSP-BF609 DSP的可以跟蹤物體及其距離的專業系統。
                 
                 
                推薦閱讀:
                 
                適合空間受限應用的最〇高功率密度、多軌電源解決不放行啊方案
                輸入引腳的過電應力保護
                消失的失調電壓調整引腳
                電子可變電阻器——AD5272
                建立FETching分立式放大器的一些提示
                特別推薦
                技術文章更多>>
                技術白皮書下『載更多>>
                熱門搜索

                關閉

                關閉