> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/workflows/ja/burokku/blocks/video-processing/frame-delay.md).

# フレーム遅延

あるフレームで生成された値を参照します *以前の* 同じビデオストリームのフレーム。ワークフローの任意の出力（検出結果、数値、文字列、画像、...）をこのブロックに接続し、負の `オフセット`を設定すると、このブロックはその値を当時のまま返します `|オフセット|` フレーム前です。

過去（非正）のオフセットのみがサポートされています。真の未来先読みを行うには、ワークフロー全体の出力を遅延させる必要がありますが、同期型ランタイム（WebRTC/webexec、単一画像HTTP）ではそれは不可能なため、ここでは意図的に提供していません。

## このブロックの仕組み

1. 読み取ります `video_metadata` 接続された `image` から取得します `video_identifier` （ストリームごとの状態を分離して保持するために使用）と単調な `フレーム番号` (`N`).
2. 入力された `データ` 値を、フレーム番号をキーとする動画ごとのリングバッファに保存します。
3. 解決します `target_frame = N + offset` （ `offset <= 0`） `data[target_frame]` バッファにあれば返し、そうでなければ `default_value`.
4. 報告します `利用可能かどうか` （対象フレームがバッファされていたかどうか）と `参照フレーム番号` （常に現在のフレーム `N`).

## 一般的な使用例

* 現在のフレームを過去のフレーム（`-1`, `-5`）と比較して、変化／傾向を検出します。
* 遅延した遅い信号を、それが属するフレームに合わせます。
* Nフレーム前の値を記憶します（例：10フレーム前の支配色）。

## 要件と制限

* `オフセット` は `<= 0`。正のオフセットは拒否されます。
* `|オフセット|` 256を超えてはなりません。バッファされた各フレームはメモリに保持されるため、大きなオフセットで画像ストリームを遅延させるのは高コストです（1080pで1フレームあたり約6 MB、4Kで約25 MB）。可能であれば、フル画像ではなく小さな派生値を遅延させることを推奨します。
* 過去方向のオフセットはすべての実行コンテキストで機能し、出力遅延は発生しません。
* 状態はプロセスメモリ内に `video_identifier`をキーとして保持されます。ステートレス／マルチレプリカのリモートHTTPランタイムでは性能が低下します。
* 同時に追跡されるストリームは最大16本で、それを超えると最も最近見られた時刻が古いストリームのバッファが破棄されます。
* 〜を持つストリームは `フレーム番号` 再起動すると（例：再接続時）、そのバッファはクリアされます。
* 状態はワークフローの存続期間中保持され、再起動時にリセットされます。
* 値は利用できず（返り値は `default_value`）要求された `|オフセット|` 深さに達するまでです。
* 次の場合、 `オフセット` がランタイムセレクタに接続されている場合、バッファサイズはこれまでストリーム上で見られた最大の `|オフセット|` ものに合わせられるため、浅いオフセットと深いオフセットを交互に使っても、深い履歴は利用可能なまま維持されます。ストリームの途中でオフセットを増やすと、さらに深いフレームが利用可能になるのは、十分な新しいフレームがバッファされてからです。

### 型識別子

ステップで次の識別子を使用してください `"type"` フィールド： `roboflow_core/frame_delay@v1` ワークフローにこのブロックをステップとして追加するには。

### プロパティ

| **名前**          | **型**                             | **説明**                                                                                                         | 参照 |
| --------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------- | -- |
| `name`          | `str`                             | このステップの一意の識別子を入力してください。                                                                                        | ❌  |
| `オフセット`         | `整数`                              | 過去方向の相対フレームオフセット。0以下である必要があります。例：-1は1つ前のフレーム、-10は10フレーム前、0は現在のフレームです。バッファされた各フレームはメモリに保持されるため、-256までに制限されています。 | ✅  |
| `default_value` | `Optional[bool, float, int, str]` | 要求されたフレームがバッファで（まだ）利用できない場合に返される値。                                                                             | ❌  |

この **参照** 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します `ワークフロー` 実行時。参照 *バインディング* 詳細は。

### ランタイム互換性

`soft` - ランタイム `hosted_serverless`, `dedicated_deployment`；実行 `リモート`; 入力 `動画` このブロックは、プロセスメモリ内に動画ごとの状態を保持します（video\_metadata.video\_identifier をキーとする）。ステートレスまたは複数レプリカのHTTPランタイムでリモートステップ実行を行うと、連続するリクエストが別々のワーカープロセスによって処理される可能性があるため、呼び出し間で状態がリセットされ、追跡／カウント／集計には意味のない出力になります。安定したフレーム間結果を得るには、永続的な WebRTC セッションでローカルステップ実行を使用してください。

`soft` - 入力 `image` このブロックは、動画または繰り返しフレームのワークフローからの時間的コンテキストに依存します。静止画像／写真では、追跡、比較、集計、可視化に使える意味のある履歴がないため、このブロックの利点はほとんど、またはまったくありません。

### 入力と出力のバインディング

利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が `フレーム遅延` のバージョン `v1` あるか確認してください。

<details>

<summary>入力と出力のバインディング</summary>

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)）：バッファのインデックスに使用される動画メタデータ（フレーム番号とストリーム識別子）を提供する画像／動画フレーム。
  * `データ` (*Union\[*[*`list_of_values`*](/workflows/ja/gaido/developer-guide/kinds/list-of-values.md)*,* [*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)*,* [*`instance_segmentation_prediction`*](/workflows/ja/gaido/developer-guide/kinds/instance-segmentation-prediction.md)*,* [*`*`*](/workflows/ja/gaido/developer-guide/kinds/wildcard.md)*,* [*`keypoint_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/keypoint-detection-prediction.md)*,* [*`object_detection_prediction`*](/workflows/ja/gaido/developer-guide/kinds/object-detection-prediction.md)*]*）：遅延させる値。検出結果、数値、文字列、画像、またはその他のワークフロー出力にできます。
  * `オフセット` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)過去方向の相対フレームオフセット。0以下である必要があります。例：-1は1つ前のフレーム、-10は10フレーム前、0は現在のフレームです。バッファされた各フレームはメモリに保持されるため、-256までに制限されています。
* 出力
  * `出力` ([`*`](/workflows/ja/gaido/developer-guide/kinds/wildcard.md))：任意の要素に相当します。
  * `利用可能かどうか` ([`boolean`](/workflows/ja/gaido/developer-guide/kinds/boolean.md)) : ブールフラグ。
  * `参照フレーム番号` ([`整数`](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：整数値。

</details>

<details>

<summary>JSON 定義の例</summary>

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/frame_delay@v1",
	    "image": "$inputs.image",
	    "data": "$steps.object_detection_model.predictions",
	    "offset": -1,
	    "default_value": null
	}
```

</details>
