ビデオ監視システムでのスムーズな表示のための闘争:ジャークを見つけて中和する

製品の開発に伴い、品質への注意も高まることは論理的です。 そして、機能面だけでなく、ユーザーの美学に関しても。



数年前とそれ以前のバージョンでは、Macroscopのビデオ表示品質が不十分でした。 「ジャーク」がありました。そのため、ディスプレイの滑らかさが損なわれ、最終的に全体的な視覚認識が悪化しました。



ユーザーは、画像が画面上で「けいれん」していないことに気付いたとき、その原因はあまり気にしません。 ビデオシステムは多くのコンポーネントで構成されており、ソフトウェアはその1つにすぎないため、これには多くの理由があります。 しかし、その部分のMacroscopが可能な限りスムーズに表示されるように、すべてを行う必要がありました。



このため、開発者は測定された要件を使用してタスクを明確に理解する必要があり、品質グループは評価ツールを用意する必要がありました。 この記事では、滑らかさの測定に使用するメトリックと、それを評価するツールを説明します。



#ネタバレ





それでは、ビデオがスムーズに表示されるか、スムーズに表示されるかをどのように判断しますか?



すぐに思い浮かぶのは何ですか? -クライアントアプリケーションで表示される内容と、IPカメラの「ネイティブ」表示を比較します。



そして、 最初の決定は専門家グループによる評価です。複数の人を選択し、ビデオを見せて、ジャークがないか評価するよう依頼します。



これは「額」の決定です。 ある程度効果的ですが、非常に時間がかかり、実用的ではありません。 品質グループが開発者から別のプロトタイプを受け取るたびに専門家を集めることは完全に非現実的です。



「好き嫌い」の主観的評価の代わりに、製品の滑らかさまたは予想される動作の基準を見つける必要がありましたが、これは修正できます。



この基準は次のように定式化されました: スムーズな表示のためには、各フレームがモニター画面に表示されれば十分です。



それに応じて、 2番目のソリューションが登場しました。 「滑らかさ」を測定する新しい方法は次のとおりです。一連の数字(割り当てられたフレームの各桁)を含むビデオクリップまたはストップウォッチを作成して表示し、表示されたビデオをIPカメラで撮影し、Macroscopを実行し、再度表示して再度撮影します別のカメラ(スマートフォンカメラ、Go Proなど)を使用します。



待っています。 結果のビデオフレームをフレームごとに分析します。遅延または欠落したフレーム(桁)の数をカウントし、ジャークの数を取得します。 これは時間のかかる方法です(IPカメラの標準周波数25 fpsでフレームごとにビデオを分解してみてください!これは毎分ほぼ1500フレームです)が、客観的に思えます。



現実。 実際には、すべてがそうではないことが判明しました。 標準のIPカメラは、〜25fpsの周波数のストリーム、モニター〜60fps、スマートフォンのカメラ〜30fpsのストリームを生成します。 フレームレートが複数ではないことに加えて、カメラとモニターは同期して動作しないことが判明しました。 そのため、モニター上のカメラのビデオを読み取るときに、フレームの変更が発生することがありました。 その結果、彼は「ぼんやり」して、画像内の数字がわかりにくくなりました。

したがって、2番目の方法も適合しませんでした。



ビデオストリームを表示するクライアントアプリケーション自体によるソフトウェアキャプチャまたは統計収集のオプションもありましたが、それらも削除しました。 外部コンポーネントのみを評価したかったのです。ユーザーが実際に見ているもので、システム全体が「ブラックボックス」です。



検索の結果、 ハードウェアソリューション 、つまりマイクロコントローラーをベースにしたスタンドが完成しました。







ビデオカメラを撮影する12個のLEDが付いた布と、このカメラからのビデオストリームを表示し、光信号を記録するモニターに重ねられた12個の光センサーが付いた布が含まれています。 外部光源の影響を排除するために、デバイス全体が遮光ボックスに入れられます。







デバイスは、LEDに特定のパターンのシーケンスを表示し、結果を読み取り、レポートの別の行に書き込みます。



LEDは、特定の周波数の光信号の特定のパターンを表示します。 したがって、たとえば、周波数が25 fpsのカメラの場合、1フレームまたは40ミリ秒で1回変更が発生します(20ミリ秒の場合はパターンが点灯し、20ミリ秒の場合は消灯し、次に次のパターンが点灯します)。



私たちは、カメラが目が見たものを正確にキャプチャし、さらには独自のフォトセンサーさえもキャプチャすることを期待していました。 予想によると、8パターンの固定シーケンスは次のようになります。







毎回、LEDは同じ信号シーケンスを再現しましたが、レポートではこのシーケンスは時々違反されました:あるべきではないフレームがありました(隣接する2つのパターンのLEDがアクティブでした)。



さまざまなIPビデオカメラを試してみたところ、最も鮮明なフレームは25 fpsプログレッシブスキャンカメラによって提供されたことが判明しました(たとえば、インターレーススキャンを使用した50 fpsバージョンとは異なります)が、ネットワークを介した送信中のフレームシーケンスへの違反は最小限でした。



何らかの方法で、アーティファクトを完全に取り除くことができませんでした-一部のフレームが遅れたり、他のフレームとマージされたりしましたが、実際にはぎくしゃくしていませんでした。







コテルニコフの定理は、周波数fのアナログ信号を復元するために少なくとも2fの基準周波数が必要であるということで、救助に来ました。 つまり、この場合、12.5 fpsの周波数(80msに相当)でのみ、LEDからの信号を確実に復元することができます。



結果として



その結果、実装したハードウェアソリューションにより、80ミリ秒以上のフレーム遅延に対応するジャークをキャプチャすることができ、表示されたビデオの知覚が著しく悪化しました。



この方法は効果的であり、ジャークを検出する問題を解決します。また、自動化のおかげで、品質グループの最小限の時間と労力しか必要ありません。 現時点では、新しいリリースごとの回帰テストで定期的に使用しています。



その結果、(長時間を費やしているものの)滑らかさ/非滑らかさの主観的な基準について、完全に客観的な測定方法を得ました。 組み立てられたスタンドにより、システムパラメータ(異なるネットワーク帯域幅、処理および表示用の異なる機器パフォーマンス)について、ディスプレイの滑らかさを迅速に評価することができました。 さらに、Macroscopアプリケーションへのバインドがないため、デスクトップ、モバイル、およびWebクライアントの両方をテストします。



All Articles