カメラのGOPとは何か?NVRのシークやAI解析にどのような影響を与えるのか?

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

カメラのGOPとは、独立符号化された動画フレームと予測符号化された動画フレームを順序付けたグループであり、その構造が圧縮、シーク、デコーダーの復旧を左右します。

NVRは通常、任意の予測フレームを単独ではデコードできません。そのフレームが参照画像に依存しているためです。クリップを開いたり解析を開始したりする際、デコーダーはまず適切なランダムアクセスフレームまで後方にシークし、その間のデータを処理することがあります。GOPが長いほどビットレートを節約できる場合がありますが、要求した画像が利用可能になるまでの処理量や遅延が増える可能性があります。

GOPは独立画像と予測画像を整理する

イントラ符号化画像またはランダムアクセス画像はデコードの基準点となり、P画像とB画像は他の画像との差分を保存します。正確な構造はコーデックとエンコーダーの設定によって異なります。I画像でも、後続フレームが意図した境界の外側にあるデータを参照している場合、必ずしもクリーンなランダムアクセスポイントになるとは限りません。

AWSのGOP圧縮の概要では、時間方向の圧縮を、完全なキーフレームに差分情報を続ける方式として説明しています。この依存関係があるため、GOP設計によってストレージ容量を削減できる一方、任意の場所へのアクセスは、独立した静止画像の連続を開く場合とは異なります。

クローズドGOPは、前のGOPからの参照なしでデコードできます。一方、オープン構造では、境界をまたぐ参照によって効率が向上する場合があります。したがって、NVRの互換性は、表示されるキーフレーム間隔だけでは決まりません。この違いは、後述する家庭内でのテストでも確認できます。

シークはデコード可能なアクセスポイントから始まる

ユーザーがイベントのタイムスタンプに移動すると、プレーヤーはそれより前にあるキーフレームまたはデコーダーリフレッシュポイントを探し、コーデックの状態を初期化して、目的の表示時刻まで前方にデコードします。キーフレーム間隔がまばらだと、ストレージやネットワークのスループットが十分に高速でも、プレビューの表示が遅く感じられることがあります。

AWS MediaConvertのフレームタイプのリファレンスでは、GOPをI、P、Bフレームタイプの配置として説明し、これらの選択を品質や互換性と関連付けています。同じ依存関係が、ホームNVRでのサムネイル抽出やフレーム単位のナビゲーションにも影響します。

インデックスによってアクセスポイントの位置特定は高速化できますが、ビットストリームに必要な参照デコードをなくすことはできません。サムネイルデータベースは独立した画像を保存しているため瞬時に表示できるように見えても、録画ストリームには依然としてGOPのデコードが必要です。

AIパイプラインではデコードと復旧のコストが発生する

動画AIはすべての画像を解析するのではなく、フレームをサンプリングすることがよくあります。しかしデコーダーは、要求されたサンプルの間にある参照フレームまで処理しなければならない場合があります。パケット損失が発生すると、クリーンなリフレッシュポイントに到達するまで予測画像が破損し、使用できない入力や見た目が損なわれた入力が連続して発生することもあります。

AWS ElementalのGOPサイズの制御では、GOPサイズをIフレーム間の間隔として定義し、そのパターンを形成するエンコーダーパラメーターを記載しています。これにより、GOPサイズはストレージ効率と復旧遅延の両方に関わる測定可能な入力になります。

問題が起きるのは、AIサンプラーが、要求したすべてのタイムスタンプから独立した有効画像が得られると想定している場合です。デコーダーが状態を明示的に報告しない限り、可変フレームレート、オープンGOP、並べ替えられたB画像、破損した参照によって、タイムスタンプがずれたり、不完全なフレームが渡されたりする可能性があります。

シーク遅延とAIフレームの利用可能性を測定する

解像度、フレームレート、コーデック、おおよその画質を一定に保ちながら、同じカメラシーンを複数のキーフレーム間隔でエンコードまたは収集します。さまざまなオフセットでのランダムシーク、イベントクリップの起動、サムネイル抽出、デコーダーのCPU使用率、ビットレート、パケット損失後に最初に有効になるAIフレームをテストします。

結果をイベント概要パイプラインに関連付けます。NVRがより前のキーフレームまでシークするか、タイムスタンプの整合性が保たれるか、デコーダーがクリーンなアクセスポイントに到達する前に検出の欠落が集中するかを記録します。

実際に使用するデコーダーで、確認、復旧、解析の目標を満たせる最長のGOPを選びます。ビットレートだけで性能を判断せず、カメラのファームウェア、コーデック、またはNVRのトランスコード設定を変更した後は再テストしてください。自動化を進める前に、中間結果を検証可能な状態に保つ必要があります。

テック&AIハブ

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.