Field Attribute#
AttributeはField全体に付属する名前付き情報です。TypeやValue本体ではありません。Metadataという別の保存系統、Dimension Attribute、各セルのAttributeは設けません。セルごとに異なるvelocityやmaskは別のFieldです。
StandardとCustom#
Standard Attributeは、名前・値の型・意味・適用対象がCNLで定義されています。Custom Attributeは、ユーザーやファイル形式が追加する情報です。保存方法は同じです。違いは、CNLがその意味を定義しているかどうかだけです。
名前は完全一致で比較します。Standard名と同名のCustom Attributeを作って、型や意味を上書きすることはできません。
存在と既定値は独立#
Required / Optionalは存在が必要かどうかです。Defaultableは省略時に定められた値を参照できるかどうかです。これらを一つの排他的な区分にはしません。
省略、Unknown、既知の値は異なります。既定値を参照しても、保存データへそのAttributeを勝手に追加しません。省略そのものを調べることもできます。
標準定義#
実装のStandard Attribute登録一覧は同じ定義から生成しています。次の説明はそれぞれの意味と制約を規定します。
| 正式名 | 値の型 | 適用対象 | 必須 | 省略時 |
|---|---|---|---|---|
| Color Space | Text | Image / Video | いいえ | Unknown |
| Alpha Interpretation | Text | Image / Video | いいえ | Unknown |
| Pixel Aspect | Float | Image / Video | いいえ | 1 |
| Data Window | 4個のInteger | Image / Video | いいえ | なし |
| Display Window | 4個のInteger | Image / Video | いいえ | なし |
| Frame Rate | 正のRational | Video | いいえ | なし |
| Timecode Rule | Text | Video | いいえ | なし |
| Start Timecode | Text | Video | いいえ | なし |
Color Space#
RGB成分の色解釈です。空文字は禁止し、不明はUnknownとします。4成分であること、EXRであること、AEから来たことだけでは色空間を断定しません。色空間変換は、明示された入力色空間か、理解できる既知のAttributeを要求します。双方が異なる場合は、明示指定を上書き操作として見える形で扱い、黙って推測しません。
Alpha Interpretation#
Unknown、Straight、Premultipliedのいずれかです。Colorという型そのものはアルファの関連付けを決めません。Premultiply/Unpremultiply操作は数値と解釈を一緒に変える契約です。UnknownをStraightとみなして処理しません。
Pixel Aspect#
ピクセルの幅÷高さです。有限の正の値に限定します。省略時の表示解釈は正方形ピクセル(1)です。これはShapeを変えません。
Data Window / Display Window#
整数の[xmin,ymin,xmax,ymax]で、両端を含みます。最大値は最小値以上です。Data Windowは保持された画像領域、Display Windowは表示基準領域です。二つは一致も包含も強制しません。ファイル入力はData Windowに対応するValue・Shape・座標を作ります。切り出し処理は領域の意味も更新する必要があります。
Frame Rate#
正の分子・分母による名目上のサンプル頻度です。例えば30000/1001。Coordinateを書き換える指示ではありません。可変時間配置では平均や名目値が間隔と一致しないことがあります。その場合もCoordinateを優先します。一定間隔を要求する処理は、Frame Rateだけで判断せずCoordinateを検証します。
Timecode Rule / Start Timecode#
時刻につけるラベルの規約と開始ラベルです。サンプル位置そのものではありません。未対応の規約は保持できますが、時刻変換に使えると偽って解釈しません。
Attribute値の記述形式#
Boolean、符号付きInteger、有限のFloat、Text、正の分母を持つRational、Integer/Float/Textの配列を保持できます。Text Attributeが存在してもText型の公開Valueソケットを追加したことにはなりません。
現在の保存上限はAttribute数1024、名前1024バイト、Text値65536バイト、配列4096要素です。これらは無制限のメモリ確保を防ぐ保存プロファイルであり、Fieldの次元数やValue型ではありません。
演算による継承#
同一Fieldをそのまま返す場合はすべて保持します。値だけを変更する演算は、意味が変わらない情報のみ継承します。色変換・領域変更・時間再配置は該当Standard Attributeを更新します。二つの入力で属性が食い違う場合、どちらかを無言で採用しません。各ノードの契約が選択・拒否・削除の方針を定めます。現行GPU経路の一般的な継承は一部対応です。