部分実装

Video#

型定義#

  • 型表現:Video<Color,3>
  • 型形式:Field Type Format
  • 意味:映像として意味付けされたColor Field
  • 値の構造:Color
  • Dimension:3固定。X,Y,Time
  • 互換性:Video。画像処理入力では現在時刻のImageを内部観測し、明示的なSliceでは指定時刻を使う

Video<Color,3>は三次元のColor Fieldを映像として扱う独立した意味型です。DimensionはX,Y,Timeの順です。Timeという独立したValue型や特別なField型を作りません。Timeは三つ目のDimensionの意味です。

Shapeと時間配置#

Shape<1920,1080,240>の240は第三Dimensionのサンプル数です。型表現にFrameという保存構造を固定しません。

時間配置の一次情報は第三Coordinateです。Regularでは開始時刻と正の間隔、Explicitでは厳密に増加する時刻列を持ちます。一定レート・可変レート・不均一サンプリングを同じ構造で表現できます。時間単位と基準はCoordinateに属します。

例えば秒を単位としてstart=0, step=1/24, count=240とすれば、先頭は0秒、末尾は239/24秒です。全体の再生区間の終端を推定する規則と、末尾サンプルの位置は別です。

Attribute#

Frame Rate、Timecode Rule、Start Timecodeおよび画像用のStandard Attributeを持てます。Frame Rateは任意の名目情報です。Coordinateと食い違っても、時刻列を上書きしません。固定レートを必要とする操作では、明示的な再サンプリングを要求します。

変換と操作#

Image一枚への変換は時刻選択と補間方針を伴うSliceです。Imageを並べたVideoの作成は、画像の整合と時間Coordinateを必要とするStackです。どちらも単なる型名の付け替えではありません。Grid<Color,3>との意味付け変更も明示的です。

利用可能範囲#

FileのVideo Dataモードは、対応codecの動画コンテナをVideoとして読み込みます。 通常のVideoモードは、速度・開始フレーム・Repeatを適用した現在時刻のImageを返します。 Video自体の時間配置は実際のPTSによるCoordinateです。Video FrameのSample/Timeで 独立してImageを観測することもできます。

選択方法 CNL 時間の扱い
Sample video_frame(video,sample_index) 0始まりの正確な整数。範囲外はエラー
Time video_frame_at_time(video,time) 指定座標以前の最新サンプルを保持。範囲外は先頭/末尾
fn main(video:Video<Color,3>,time:Float)->Image<Color,2>{
  return video_frame_at_time(video,time);
}

File動画のTime単位は秒です。画像処理入力での内部観測とFileの通常Videoは、既定でAE/Previewの評価時刻を使います。明示的なTimeには対応する純粋なFloat32式も使えます。秒とサンプル番号を混同せず、一般のVideoではCoordinateの単位を確認してください。補間はせず、元のTime Coordinateとsource.timeの精度・意味を保持します。

Output/Visualizeの既定観測は現在時刻です。Sample Indexを明示した静的観測は 0始まりのサンプル番号として維持し、秒やAE時刻へ読み替えません。Sampleの範囲外は エラー、Timeの範囲外は先頭・末尾での保持です。

paged取得・必要フレームだけの復号、同一取得状態の共有、内部の現在時刻観測があります。 初回取得の高速化、時間補間、Preview内の独立した再生・scrub操作、実AEでの長尺・全codec・MFRの確認は残ります。Video Codecの二枚の画像による符号化実験は別機能です。

FileとSource Layer / 対応状況

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。