2

CMOS ビデオをキャプチャし、それをトランスポート ストリームにエンコードし、イーサネット経由でリモート PC に送信する Zynq Xilinx FPGA に基づいた学生向けのオープン ソース大学プロジェクトを計画しています。基本的に、私はさらに別の IP カメラを設計したいと考えています。FPGA の経験は豊富ですが、ビデオ データのエンコードと転送に関する知識が不足しています。これが私の計画です:

  1. CMOS カメラを FPGA に接続し、ビデオ フレームを受信して​​外部 DDR メモリに保存し、HDMI 出力を使用して監視することを確認します。問題ありません。

  2. たとえば、ビデオ ストリームを H.264 形式に圧縮し、トランスポート ストリームに入れる必要があることを理解しています。ここでは、知識がほとんどなく、いくつかのヒントが必要です。

  3. トランスポート ストリームを形成したら、UDP パケットを使用してネットワーク経由で送信できます。FIFOからデータを読み取り、UDPパケットとしてリモートPCに送信するハードウェアソリューションが機能しています。

  4. そして最後に、ffmpeg ライブラリを使用してビデオを受信して​​再生する予定です。

    ffplay udp://localhost:5678

私の質問は基本的に2ステップに関するものです。ピクセル フレームをトランスポート ストリームに変換するにはどうすればよいですか? 私のオプションは次のとおりです。

  1. のような商用 IP を使用する

ここでは、それらが無料で使用できるとは思えず、資金もあまりありません。

  1. 次のようなオープンコアを使用します

    • http://sourceforge.net/projects/hardh264/ - ここでコアは h264 出力のみを生成しますが、それをトランスポート ストリームにカプセル化する方法は?
    • opencores.org を検索しましたが、このトピックでは成功しませんでした
    • たぶん誰かがオープンソース関連の優れた FPGA プロジェクトを知っていますか?
  2. Vivado HLS (C 言語) を使用してハードウェア エンコーダーを自作します。しかし、ここでアルゴリズムがわからないという問題があります。たぶん、ffmpeg または Cisco openh264 ライブラリをギグして、生のピクセル フレームを H.264 形式に変換してトランスポート ストリームに入れる機能を見つけることができますか? ここでも助けが必要です。

また、FPGA 内で生成する可能性のあるストリームと、ffplay ユーティリティによってホストで期待されるストリームのフォーマットの互換性についても心配しています。ヘルプ、ヒント、リンク、および書籍は高く評価されています。

4

1 に答える 1