お気に入りに追加 設定ホームページ
ポジション:ホーム >> ニュース >> 電子

製品カテゴリ

商品のタグ

FMUSERサイト

FPGAベースのシステムは3つのビデオストリームを組み合わせてXNUMXDビデオを提供します

Date:2021/10/18 21:55:31 Hits:
はじめにビデオシステムは、すでに消費者向けアプリケーションに普及しており、自動車、ロボット工学、および産業分野でますます普及しています。 非消費者向けアプリケーションへのこの成長は、主にHDMI規格と、より高速でより効率的なDSPおよびFPGAの導入によるものです。 この記事では、アナログまたはHDMIビデオカメラを使用して立体視(3Dビデオ)を実現するための要件について概説します。 3つのビデオストリームを1.4つのXNUMXDビデオストリームに結合してHDMIXNUMXトランスミッターを介して送信するFPGAベースのシステムと、XNUMX台のカメラからデータを受信するために通常必要なDMA帯域幅を節約するDSPベースのシステムについて説明します。 さらに、3Dカメラまたは3Dビデオを必要とするシステムで使用するためのサイドバイサイドフォーマットを実現するためのXNUMXつの方法を示します。 一般的な概要立体視には、図5.5に示すように、人の目の間の一般的な間隔である約1cm離れたXNUMX台のビデオカメラが必要です。 図1。 立体視用に配置されたスタンド上のXNUMX台のカメラ。 図2に示す高レベルのブロック図は、同じビデオ規格を使用するXNUMX台の同期ビデオカメラ、XNUMX台のビデオデコーダー、およびFPGAを使用しています。 まったく同じフレームレートを確保するには、ビデオカメラを共通のタイミング基準にラインロックする必要があります。 同期がないと、外部メモリを使用せずに出力を組み合わせて完全なビデオフレームを保存することはできません。 図2。 高レベルのブロック図。 図3は、XNUMXつのラインロックされたビデオストリームがXNUMXつの立体画像にマージされているところを示しています。 図4は、ビデオフレーム全体を外部メモリに保存せずに非同期ビデオストリームをマージする方法を示しています。 図3。 XNUMXつの同期されたビデオストリームをマージします。 図4。 非同期ビデオストリームは、外部メモリを使用せずにマージすることはできません。 次に、7181台の同期されたビデオカメラの出力は、アナログビデオカメラ用のADV7182D、ADV7186、またはADV7610などのビデオデコーダーによってデジタル化されます。 または、デジタルビデオカメラを備えたADV7611やADVXNUMXなどのHDMIレシーバーによって。 ビデオデコーダーとHDMIレシーバーは、内部フェーズロックループ(PLL)を使用して、出力バスでクロックとピクセルのデータを生成します。 これは、アナログビデオをデジタル化するとき、またはHDMIストリームを受信するときに、XNUMX台のカメラに対してXNUMXつの別々のクロックドメインが生成されることを意味します。 さらに、XNUMXつのビデオストリームの位置がずれる可能性があります。 これらのタイミングの違いとミスアライメントは、FPGAなどのバックエンドデバイスで補正する必要があり、XNUMXつのビデオ画像をXNUMXつのステレオスコピックビデオフレームに結合する前に、データを共通のクロックドメインに移動します。 同期されたビデオストリームは、ADV1.4やADV3などのHDMI 7511 7513D対応HDMIトランスミッターを介して送信されます。または、ADSP-BF609Blackfin®プロセッサーなどのDSPに送信され、さらに処理されます。 クロッキングアーキテクチャビデオデコーダーには、ロックされているかロック解除されているかに応じて、XNUMXつの異なるクロッキングソースがあります。 ビデオPLLが着信同期信号(ビデオデコーダーの場合は水平同期、HDMIの場合はTMDSクロック)にロックされると、着信ビデオソースにロックされるクロックが生成されます。 ビデオロックが失われた場合、またはPLLが強制フリーランモードになっている場合、ビデオPLLは着信同期信号にロックされず、水晶クロックにロックされたクロック出力を生成します。 また、リセット後、LLCクロックドライバがハイインピーダンスモードに設定されているため、リセット後にクロックが出力されない場合があります。 したがって、システムにビデオデコーダーまたはHDMIレシーバーからのXNUMXつ以上のビデオパスがある場合、同じクリスタルクロックがXNUMXつのビデオデコーダーまたはHDMIレシーバーにそれぞれ提供されている場合でも、周波数と位相が異なるXNUMXつの異なるクロックドメインがあります。デバイスは、独自のPLLに基づいて独自のクロックを生成します。 ロックされたビデオデコーダーを備えた同期システムXNUMXつのソースを使用する一般的なステレオスコピックビデオでは、各ビデオデコーダーは着信ビデオ信号にロックし、着信水平同期またはTMDSクロックに基づいて独自のクロックを生成します。 XNUMX台のカメラが同期されている場合、または同じタイミング基準にラインロックされている場合、フレームラインは常に位置合わせされます。 XNUMXつの別々のビデオデコーダーは同じ水平同期を受信するため、ピクセルクロックは同じピクセルクロック周波数になります。 これにより、図5に示すように、XNUMXつのデータパスを共通のクロックドメインに入れることができます。 図5。 共通の参照に同期されたXNUMX台のビデオカメラ。 両方のビデオデコーダーは同じ同期信号を受信するため、それらもロックされます。 両方のビデオデコーダーは同じ同期信号を受信するため、それらもロックされます。 非同期ビデオシステム残念ながら、図6に示すように、ビデオソース信号の品質が低いためにデコーダーの7つがロックを失う可能性があります。 または、図XNUMXに示すように、ビデオリンクが壊れているためにカメラの同期が失われる可能性があります。 これにより、XNUMXつのデータパスの周波数が異なり、バックエンドにクロックされるデータの量が非対称になります。 図6。 ロック解除されたビデオデコーダーを備えたラインロックカメラ。 図7。 ロックされたビデオデコーダーを備えたロック解除されたカメラ。 失われたビデオロックは、遅延後に開始する割り込み(SDビデオデコーダーの場合はSD_UNLOCK、コンポーネントビデオデコーダーの場合はCP_UNLOCK、HDMIレシーバーのTMDSPLL_LCKレジスター)を使用して検出できます。 ビデオデコーダーは、不安定な水平同期をスムーズにするメカニズムを統合しているため、失われたビデオロックの検出には最大で数行かかる場合があります。 この遅延は、FPGA内で失われたロックを制御することで減らすことができます。 クロックトライステートモードFPGAクロッキングリソースを設計する場合、デフォルトでは、多くのビデオデコーダーとHDMI製品が、リセット後にクロックラインとデータラインをトライステートモードにすることを知っておくことが重要です。 したがって、LLCピクセルクロックは同期リセットには適していません。 XNUMXつのビデオストリームでのデータの不整合システムを簡素化し、XNUMXつの画像を組み合わせるために必要なメモリを削減するには、FPGAに到達するデータを同期して、最初のカメラからのM番目のラインのN番目のピクセルをM番目のN番目のピクセルと受信する必要があります。 XNUMX番目のカメラからのライン。 XNUMXつのビデオパスのレイテンシが異なる可能性があるため、FPGAの入力でこれを実現するのは難しい場合があります。ラインロックカメラは不整合なラインを出力する可能性があり、異なる接続長は不整合の原因となる可能性があり、ビデオデコーダは可変の起動レイテンシを導入する可能性があります。 これらの待ち時間のために、ラインロックカメラを備えたシステムでは、ピクセル数がずれていると予想されます。 ラインロックされたカメラのずれラインロックされたカメラでさえ、ずれたビデオラインを出力する可能性があります。 図8は、XNUMX台のカメラのCVBS出力からの垂直同期信号を示しています。 XNUMX台のカメラである同期マスターは、XNUMX台目のカメラである同期スレーブにラインロック信号を提供します。 380nsのミスアライメントがはっきりと見えます。 図9は、これらのカメラの出力でビデオデコーダーによって送信されたデータを示しています。 11ピクセルのシフトが見られます。 図8。 ラインロックされたビデオカメラ間の380nsのビデオのずれ。 図9。 デジタルドメインでの補正されていない11ピクセルのビデオのずれ。 異なる接続長すべての電気接続は伝搬遅延を引き起こすため、両方のビデオパスのトラックとケーブルの長さが同じであることを確認してください。 ビデオデコーダー/ HDMIレシーバーのレイテンシーすべてのビデオデコーダーは、有効な機能に応じて変化する可能性のあるレイテンシーを導入します。 さらに、一部のビデオパーツには、ランダムな起動遅延を追加する可能性のあるディープカラーFIFOなどの要素が含まれています。 ビデオデコーダーを使用する一般的な立体視システムでは、ランダムな起動遅延が約5ピクセルクロックになる場合があります。 図10に示すように、HDMI送信機と受信機を含むシステムでは、約40ピクセルクロックのランダムな起動遅延が発生する可能性があります。 図10。 パイプラインは測定のセットアップを遅らせます。 ミスアライメント補正図11は、各カメラからのアナログ信号がビデオデコーダーによってデジタル化されるシステムを示しています。 データとクロックは、ビデオパスごとに異なります。 両方のビデオパスはFIFOに接続されており、FIFOは、データの不整合を補正するために着信データをバッファリングします。 データをクロックアウトするとき、FIFOはデコーダーのXNUMXつからの共通クロックを使用します。 ロックされたシステムでは、XNUMXつのデータパスのクロック周波数がまったく同じである必要があります。これにより、カメラがラインロックされ、ビデオデコーダーがロックされている限り、FIFOのオーバーフローやアンダーフローが発生しなくなります。 FIFO出力を有効または無効にすることにより、制御ブロックはFIFOレベルを維持して、ピクセルのずれを最小限に抑えます。 補正が適切に実行される場合、FPGAブロックの出力は最初のピクセルに位置合わせされたXNUMXつのデータパスである必要があります。 そのデータは、3Dフォーマットの生成のためにFPGAバックエンドに供給されます。 図11。 デジタルFIFOを使用してビデオ画像を再調整します。 ミスアライメント測定XNUMXつのデジタル化されたデータストリーム間のミスアライメントは、着信信号のXNUMXつの垂直同期(VS)パルスでリセットされるXNUMXクロックカウンタを使用して、ビデオFIFOの出力で測定できます。 図12は、4ピクセルずれたXNUMXつのビデオストリーム(vs_a_inとvs_b_in)を示しています。 カウンターは、リスト1に示す方法を使用してミスアライメントを測定します。 カウントはVS1の立ち上がりエッジで開始し、VS2の立ち上がりエッジで停止します。 フレームの合計ピクセル長がわかっている場合は、フレームの長さからカウント値を引くことにより、負のスキュー(VS2に先行するVS1)を計算できます。 この負の値は、スキューがピクセルフレーム長の半分を超える場合に計算する必要があります。 結果は、FIFOに格納されているデータを再調整するために使用する必要があります。 図12。 ミスアライメント測定。 リスト1。 単純なミスアライメント測定(Verilog®)。 モジュールmisalign_measurement(入力ワイヤリセット、入力ワイヤclk_in、入力ワイヤvs_a_in、入力ワイヤvs_b_in、出力reg [15:0]ミスアライン、出力reg準備完了); reg [15:0] cnt; reg cnt_en、cnt_reset; reg vs_a_in_r、vs_b_in_r; vs_a_rising = vs_a_in> vs_a_in_rを割り当てます。 vs_b_rising = vs_b_in> vs_b_in_rを割り当てます。 常に@(posedge clk_in)begin vs_a_in_r <= vs_a_in; vs_b_in_r <= vs_b_in; 常に終了@(posedge clk_in)if(reset)begin {ready、cnt_en} <= 2'b00; ミスアライン<= 0; end else begin if((vs_a_in == 1'b0)&&(vs_b_in == 1'b0)){ready、cnt_reset} <= 2'b01; それ以外の場合、cnt_reset <= 1'b0; / *開始* / if(vs_a_rising && vs_b_rising)begin misalign <= 0; {準備完了、cnt_en} <= 2'b10; 終了elseif((vs_a_rising> vs_b_in)||(vs_b_rising> vs_a_in)){ready、cnt_en} <= 2'b01; / *終了* / if((cnt_en == 1'b1)&&(vs_a_rising || vs_b_rising))begin {ready、cnt_en} <= 2'b10; ミスアライン<= vs_a_rising? (-(cnt + 1)):( cnt + 1); end end always @(posedge clk_in)/ *カウンター* / if((cnt_reset)||(reset))cnt <= 0; else if(cnt_en)cnt <= cnt + 1; endmodule 3つの整列したビデオストリームからの3Dビデオの生成ピクセル、ライン、およびフレームデータが真に同期すると、FPGAは図13に示すように、ビデオデータをXNUMXDビデオストリームに形成できます。 図13。 3Dフォーマットを実現する簡素化されたアーキテクチャ。 着信データは、共通のクロックによってメモリに読み込まれます。 同期タイミングアナライザは、着信同期信号を調べて、水平方向のフロントポーチとバックポーチの長さ、垂直方向のフロントポーチとバックポーチ、水平方向と垂直方向の同期長、水平方向のアクティブラインの長さ、垂直方向のアクティブラインの数、信号を同期します。 この情報を現在の水平および垂直ピクセル位置とともに同期タイミング再生装置に渡すと、目的の3Dビデオ構造に対応するように変更されたタイミングを生成できます。 FIFOに必要な量のデータが含まれるようにするには、新しく作成されたタイミングを遅らせる必要があります。 サイドバイサイド3Dビデオメモリに関して最も要求の厳しいアーキテクチャはサイドバイサイドフォーマットであり、両方のビデオソースからのラインのコンテンツを格納するために2ラインバッファ(FIFO)のみを必要とします。 サイドバイサイドフォーマットは、元の着信フォーマットのXNUMX倍の幅にする必要があります。 これを実現するには、水平線の長さがXNUMX倍になるように、再生成された同期タイミングをクロックするためにXNUMX倍のクロックを使用する必要があります。 バックエンドのクロックに使用される14倍のクロックは、図XNUMXに示すように、最初のFIFOを空にし、次にXNUMX番目のFIFOをXNUMX倍のレートで空にして、画像を並べて配置できるようにします。 並べた画像を図15に示します。 図14。 単純なFPGAラインバッファを使用してXNUMXつの画像を並べてステッチします。 図15。 ビデオタイミングを備えた576p画像を並べてまとめアナログ・デバイセズのデコーダーとHDMI製品は、単純な後処理とともに、真の立体3Dビデオを作成して送信できるようにします。 示されているように、単純なデジタルブロックと高価なメモリなしで3Dビデオを実現することが可能です。

伝言を残す 

名前 *
メール *
電話
住所
Code 確認コードを参照してください? リフレッシュをクリック!
メッセージ
 

メッセージ一覧

コメント読み込んでいます...
ホーム| 私たちに関しては| 製品| ニュース| ダウンロード| サポート| フィードバック| お問い合わせ(英語)| カスタマーサービス

連絡先: ゾーイ・チャン Web: www.fmuser.net

Whatsapp / Wechat: +86 183 1924 4009

スカイプ: tomleequan 電子メール: [メール保護] 

Facebook: FMUSERBROADCAST Youtube: FMUSER ZOEY

英語での住所: Room305, HuiLanGe, No.273 HuangPu Road West, TianHe District., GuangZhou, China, 510620 中国語での住所: 广州市天河区黄埔大道西273号惠兰阁305(3E)