はじめに

こんにちは。ネットビジョン技術部今野です。

今回は、NVFilePlayerに追加した PatternGeneratorプラグインについて、機能そのものというよりも「なぜこの機能を開発したのか」という背景を中心にご紹介します。

PatternGeneratorは、任意の解像度やDataTypeを指定して、ジェネレーターボードから出力するためのテスト映像をその場で生成できる機能です。
対応しているパターンやDataTypeなど、具体的な機能については、以下の最新事例ページでも紹介しています。

本記事では、そこから少し視点を変えて、開発に至った背景や実際に想定している使い方について紹介していきます。

きっかけは「ちょっとしたテスト映像を作るのが大変」だったこと

弊社のジェネレーターボードを使用して評価を行う場合、当然ながら「何を出力するか」という映像データが必要になります。
従来のSVシリーズフルパッケージにも、任意の映像ファイルを作成するための FrmFileConverter.exe というツールは用意されていました。

ただ、

「RAW10でこの解像度のデータを出したい」

「RGBのカラーバーを少し試したい」

「伝送確認用に決まった値のデータを流したい」

といった用途で使おうとすると、対応しているフォーマットに制約があったり、NVFilePlayerとは別のツールを起動する必要があったりと、少し手間がかかります。
特に、解像度やDataTypeを変えながら何度も試すような評価では、この「少しの手間」が意外と積み重なります。

そこで、普段ジェネレーターボードの制御に使用しているNVFilePlayerの中で、そのままテスト映像まで作れるようにしたのがPatternGeneratorプラグインです。

「RAW10の○○×○○を作ってほしい」にすぐ対応したい

技術サポートを行っていると、お客様から

「RAW10 ○○○×○○○の映像を作ってもらえませんか」

「検査成績書で使っているテストデータをもらえませんか」

といったお問い合わせをいただくことがあります。

弊社はMIPIやパラレルの映像を伝送するための製品を開発していますが、その伝送路に流す「映像そのもの」を提供することにはあまり重きを置いてきませんでした。
お客様ごとにどのような映像を求めているかが異なる上に、それぞれ解像度やDataTypeが異なり、その都度専用のデータを作成する必要があるためです。

PatternGeneratorでは、この問題をできるだけ単純化するため、パターンを生成する処理と、RAW / RGB / YUVなどのDataTypeへ変換する処理を分けています。

そのため、同じカラーバーやグラデーションでも、評価対象に合わせて異なるDataTypeとして生成できます。

「とりあえずターゲットに何か正しいデータを入力して動作を確認したい」という場面で、すぐに使えることを意識した作りになっています。

ECUやディスプレイの初期評価にも

カメラECUや車載ディスプレイなどを開発している場合、最初から実際のカメラを用意して評価する必要があるとは限りません。
たとえばECUへの映像入力を確認したいだけであれば、既知のカラーバーやグラデーションを入力できた方が、問題の切り分けが簡単な場合もあります。

PatternGeneratorでは、解像度やDataTypeを指定してその場で映像を生成できるため、

ジェネレーターボード → ECU

といった構成を作れば、実カメラを用意する前の段階でも映像入力部分の確認を始めることができます。
表示系の評価でも同様に、任意解像度のカラーバーなどを簡単に出力できるため、初期の表示確認に利用できます。

伝送路の確認やデータの解析をしやすくする

弊社製品のお客様には、カメラやECUだけでなく、その間を接続するSerDesなどの伝送路を開発されている方も多くいらっしゃいます。
また弊社内でも、ジェネレーターボードとUVCキャプチャボードを組み合わせて、映像データの確認を行うことがあります。
こうした評価では、単に映像として見やすいカラーバーだけでなく、バイナリデータとして見たときに内容を把握しやすいパターンが便利な場合があります。

PatternGeneratorでは、固定値や規則性のあるデータを生成できるほか、フレームごとに番号を付与するようなパターンにも対応しています。

そのため、キャプチャしたデータをバイナリエディタなどで確認する場合でも、

「今見ているデータがどのフレームなのか」

「想定した位置にどのような値が入っているのか」

といったことを追いやすくなります。

映像として表示するためのテストパターンだけでなく、データそのものを確認・解析しやすくするためのテストデータを手軽に作れることも、PatternGeneratorで意識したポイントの一つです。

最後に

PatternGeneratorは、大規模な新製品というよりも、普段自分たちが製品を使っている中で感じていた「ここがもう少し簡単だったら」という部分から生まれた機能です。

BtoB向けの評価ツールでは、性能や対応規格などがまず重要になります。
一方で、実際の評価作業では、

「テストデータを作る」

「別のツールを起動する」

「条件を変えてもう一度ファイルを作る」

といった小さな操作も何度も繰り返します。

一つひとつは小さな手間でも、日常的に使っていると意外と大きな差になります。

自分たち自身でも製品を使いながら、そこで感じた不便を製品へフィードバックしていく。

PatternGeneratorのような機能を通して、今後もそうした形でネットビジョン製品の使いやすさを改善していければと思います。

ネットビジョンでは、このように実際に製品を使いながら、ハードウェア・FPGA・ソフトウェアを横断して製品や評価環境を改善していくエンジニアを募集しています。
少しでも興味を持っていただけましたら、ぜひ採用情報もご覧ください。

ご質問などは お問い合わせフォーム よりお気軽にご連絡ください。