> 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/image-stack.md).

# 画像スタック

圧縮された動画フレームを固定サイズのスタックに蓄積し、最新の N フレームを JPEG エンコードされたバイナリブロブとして返します。共有ホスティングの安全性を考慮して設計されており、フレームは常に JPEG 圧縮され、解像度制限に収まるようにダウンサンプリングされるため、メモリ不足の状態を防ぎます。

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

1. ワークフローの各サイクルごとに動画フレーム（WorkflowImageData）を受け取ります。
2. フレームが設定された解像度制限（デフォルト 1920x1080）を超える場合は、アスペクト比を保持したままダウンサンプリングします。
3. フレームを品質 75 で JPEG エンコードし、生成されたバイト列を保存します。
4. 各カメラごとに最大 `stack_size` 個の圧縮フレームを保持する FIFO バッファ（deque）を維持します。バッファがいっぱいになると、最も古いフレームが自動的に削除されます。
5. If `stack_size` 呼び出し間で値が変わる場合（例: 動的セレクタ経由）、バッファは再サイズ化され、既存のフレームは新しい上限まで保持されます。
6. 入力の `clear` が True の場合、現在のフレームを追加する前にバッファをフラッシュします。
7. JPEG バイトブロブのリスト（新しい順）と現在のフレーム数を出力します。

## 一般的な使用例

* **アクション / 活動認識**：N フレームのクリップを蓄積し、それらを複数画像を基に推論できる視覚言語モデル（例: Google Gemini、Qwen）に渡して、アクションの分類、イベントの検出、またはシーンで何が起きているかの説明を行います。
* **タイムラプススナップショット**：定期的な視覚比較のために最後の N フレームを収集します。
* **イベントバッファリング**：関心のあるイベントの前後のフレームをローリングウィンドウで保持します。

### 型識別子

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

### プロパティ

| **名前**              | **型**  | **説明**                                                         | 参照 |
| ------------------- | ------ | -------------------------------------------------------------- | -- |
| `name`              | `str`  | このステップの一意の識別子を入力してください。                                        | ❌  |
| `stack_size`        | `整数`   | スタックに保持する最大フレーム数（1-64）。スタックがいっぱいになると最も古いフレームが削除されます。           | ✅  |
| `resolution_width`  | `整数`   | 最大フレーム幅（ピクセル、64-1920）。これより広いフレームは、アスペクト比を維持したままダウンサンプリングされます。  | ✅  |
| `resolution_height` | `整数`   | 最大フレーム高さ（ピクセル、64-1080）。これより高いフレームは、アスペクト比を維持したままダウンサンプリングされます。 | ✅  |
| `clear`             | `bool` | True の場合、現在のフレームを追加する前にフレームバッファ全体をフラッシュします。シーン変更時の状態リセットに便利です。 | ✅  |

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

### ランタイム互換性

`soft` - ランタイム `hosted_serverless`, `dedicated_deployment`；実行 `リモート`; 入力 `動画` ：フレームスタックは video\_identifier ごとにプロセスメモリに保存されます。ステートレスまたは複数レプリカの HTTP ランタイムでリモートステップ実行を行うと、連続するフレームが異なるワーカープロセスによって処理されることがあるため、スタックがリセットされたり、一部のフレーム履歴しか保持されないことがあります。フレーム間で安定した結果を得るには、永続的な WebRTC セッションでローカルステップ実行を使用してください。

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

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

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

<details>

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

* 入力
  * `image` ([*`image`*](/workflows/ja/gaido/developer-guide/kinds/image.md)）：スタックに追加する動画フレーム。
  * `stack_size` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：スタックに保持する最大フレーム数（1-64）。スタックがいっぱいになると最も古いフレームが削除されます。
  * `resolution_width` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：最大フレーム幅（ピクセル、64-1920）。これより広いフレームは、アスペクト比を維持したままダウンサンプリングされます。
  * `resolution_height` ([*`整数`*](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：最大フレーム高さ（ピクセル、64-1080）。これより高いフレームは、アスペクト比を維持したままダウンサンプリングされます。
  * `clear` ([*`boolean`*](/workflows/ja/gaido/developer-guide/kinds/boolean.md)）：True の場合、現在のフレームを追加する前にフレームバッファ全体をフラッシュします。シーン変更時の状態リセットに便利です。
* 出力
  * `フレーム` ([`list_of_values`](/workflows/ja/gaido/developer-guide/kinds/list-of-values.md))：任意の型の値のリスト。
  * `フレーム数` ([`整数`](/workflows/ja/gaido/developer-guide/kinds/integer.md)）：整数値。

</details>

<details>

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

```json
{
	    "name": "<your_step_name_here>",
	    "type": "roboflow_core/image_stack@v1",
	    "image": "$inputs.image",
	    "stack_size": 5,
	    "resolution_width": 640,
	    "resolution_height": 480,
	    "clear": false
	}
```

</details>
