![見出し画像](https://assets.st-note.com/production/uploads/images/82113442/rectangle_large_type_2_99569afc33454226f6b6c45ca418779e.png?width=1200)
レースドローン向け低遅延IP映像伝送
水野 史暁(みずの ふみあき)
ドローンレースとは,空中に設けられたチェックポイントを周回し,障害物を回避しながら,ゴールまでの時間を競うもので,エンターテイメントへのドローン活用の一例として知られている.
その中で,ドローンに取り付けられたカメラの映像をもとに操縦を行う競技があり,速いものでは時速150kmに迫る高速な飛行をすることから,低遅延な映像伝送が要求されている.
多くのレースドローンにおいては,低遅延を実現するためにアナログ映像伝送が採用されているが,電源ノイズ,モータやモータドライバの放射ノイズ,マルチパスなどによるノイズに起因する画質の劣化が問題になる.
そのため,水野さんはデジタル伝送をアナログ並みの低遅延で実現することを目標として,FPGAを使ったハードウェアを開発するとともに,低遅延を実現するためのソフトウェアを開発した.
デジタルにおける低遅延を実現するためにはいくつものハードルがあったが,その中でもバッファリングをいかに解消するかというところが中心となった.
たとえば,カメラから画像を取得する際にもバッファがあり,画像補正にもバッファ,エンコードにも圧縮にもバッファといったように,メモリ上にフレームを展開して各段階の処理を行う都合上,何層ものバッファを経由することになってしまう(図-1).
![](https://assets.st-note.com/img/1658277830546-lLIHW6BH2j.png?width=1200)
ちなみに,30fpsだとすると1フレームバッファリングをすることで33.3msの遅延が発生することになるが,時速150kmで飛行するドローンの場合には約1.4mも進んでしまう.いかにバッファリングを減らすかが重要であることは理解できよう.
まず,カメラからの映像取得であるが,MIPI(Mobile Industry Processor Interface)を利用したことで,一般的なUSBと異なり,CMOSセンサに直接アクセスでき,かつ伝送路の帯域も大きく,無圧縮で,バッファリングやFIFOなども利用しないことで遅延を大幅に削減することを実現した.
次に,色やガンマ値の補正といったエンコード処理については,FPGAベースで実装し,CPU処理に比べると遅延を削減することができた.
圧縮については,実装せずにRAWで伝送するという選択もあったが,HD画像を30fpsで伝送すると1.5Gbps近くになり無線伝送するには現実的ではなく,やはり圧縮を実装することとした.
ただし,動画で一般的に利用されているH.265などのフレーム間圧縮の場合は,キーフレームのパケット受信にロスが発生すると,次のキーフレーム受信まで動画が破綻してしまい,高速で飛行するレースドローンの操縦においては致命的な影響が発生することから,MotionJPEGを用いたフレーム内圧縮として実装した(図-2).
![](https://assets.st-note.com/img/1657069259757-OkswVWBK2A.png?width=1200)
フレームの圧縮については,1フレーム丸ごと圧縮するとバッファリングの遅延が発生するために,8ラインごとに圧縮するように実装を行った(図-3).
![](https://assets.st-note.com/img/1658277619130-Fzh2SaqWCf.png?width=1200)
この圧縮についてもFPGAを用い,HDL (Hardware Description Language) ベースでJPEG圧縮を実装することで遅延を削減するとともに,VDMA (Video Direct Memory Access) を用いて高速なメモリ転送を行うこととした.
これらの実装により,アナログ伝送並みの遅延となる33.6msの遅延を達成し,画像圧縮付きデジタルIP映像伝送としてはきわめて低い遅延で映像伝送することができた.また,圧縮率についてはHD画質(1280×720)プログレッシブ30Hzにおいて100Mbps以下を達成し当初の目標を達成することができた.
ちなみに,この伝送遅延の評価を行うために,LEDとフォトトランジスタを使用した,測定装置の実装も行った.カメラにLEDの光を写し,映像伝送されたディスプレイからの光を,フォトトランジスタを用いて測定するもので,LEDが光ってからディスプレイの光として帰ってくるまでの遅延時間を測定する(図-4).
![](https://assets.st-note.com/img/1658277866443-EiHN2Rfa1E.png?width=1200)
プロジェクトの遂行においては,半導体不足の影響が大きく,自作の基板を作ったり,互換のハードウェアを自作したりするなど,クリエータの執念が感じられた.
また,今回の実装ではIP伝送の部分はLinuxを使ったが,FPGAとLinuxのメモリ空間の間でどのように伝送するかや,すでにあるFPGAのHDLをいかに改造してこのプロジェクトにフィットさせるかなど,すでにあるものを組み合わせただけではできない,創意工夫と実装力が試されるプロジェクトになった.(田中邦裕 PM担当)
[関連URL]
https://fumimaker.net/entry/2022/06/16/225653
[統括PM追記]田中PMが「執念」と書いておられるが,こんなに多数の困難を乗り越えたプロジェクトは珍しい.半導体不足もさりながら,期待していたものが動かなかったとか遅すぎたとか,土地勘のないLinuxを勉強しなければいけなくなったとか,成果報告会直前の1月にピボットしたとか,さらには集中しすぎた疲れで倒れてしまい,救急隊員にガラス窓を破って入ってもらったとか,まさにプロジェクトXばりの物語があった.
レースドローンってただの遊びじゃないの? と思われるかもしれないが,ここで開発された技術の適用性はとても高い.たとえば,これだけ遅延が少ないと,移動体に計算資源を積まずに高度な自動操縦をすることが可能になる.エッジコンピューティング流行りだが,その逆もありということだ.この技術,近い将来ブレークする予感がする.
(2022年6月30日受付)
(2022年8月15日note公開)