6.7.29 SaveVectorFrames

6.7.29.1 ノードの概要

Vector<ObjectRef> 型のフレームのデータをファイルに保存する. サポートされている ObjectRef は float 型と complex<float>  型のみである.

6.7.29.2 必要なファイル

無し.

6.7.29.3 使用方法

どんなときに使うのか

このノードは,複数のフレームのVector<ObjectRef> 型データを1つのファイルに保存するために用いる.

典型的な接続例

6.130 は,ネットワーク内で SaveVectorFrames を使用した接続例を示す. このネットワークでは, SaveVectorFrames は通常は非表示である LocalizeMUSIC のSPECTRUM端末で出力されたデータを入力として受け取る. それらのデータは方向毎の MUSIC スペクトルのパワーである. 将来の使用または文書化のために, SaveVectorFrames を使用してデータをファイルに保存する. LocalizeMUSIC の非表示出力SPECTRUMの詳細については, LocalizeMUSIC ノードリファレンス,特に LocalizeMUSIC の6.2.14.4ノードの入出力とプロパティを参照されたい.

\includegraphics[width=.8\textwidth ]{fig/modules/SaveVectorFrames}
Figure 6.130: SaveVectorFrames の接続例

6.7.29.4 ノードの入出力とプロパティ

入力

INPUT

: Vector<ObjectRef> 型のフレームのデータ. サポートされている型は Vector<float> 型と Vector<complex<float> > 型.

出力

OUTPUT

: 複数のフレームの Vector<ObjectRef> 型データを保存したファイル.

パラメータ

Table 6.128: SaveVectorFrames のパラメータ表

パラメータ名

デフォルト値

単位

説明

FILENAME

string 

   

出力ファイルのファイル名.

OUTPUTTYPE

string 

TEXT

 

出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する.

FILENAME

: string  type. 出力ファイルのファイル名.

OUTPUTTYPE

: string  type. 出力ファイルのファイル形式オプション. テキストファイルの場合はTEXT,バイナリファイルの場合はRAWを選択する. デフォルト値はTEXT.

6.7.29.5 ノードの詳細

SaveVectorFrames は,複数のフレームの Vector< float >  型または Vector<complex<float> > 型のデータを入力として受け取り,それらのすべてのデータを1つのファイルに保存する. ファイル形式は,OUTPUTTYPEパラメータで指定する. OUTPUTTYPEパラメータをRAWに設定すると,フレームのデータは,リトルエンディアン順にIEEE 754 32ビット単精度浮動小数点数形式で書き込まれる. このパラメータのデフォルト値TEXTは,RAWとは異なり人間が読めるデータを出力する.

6.129 に,OUTPUTTYPEパラメータでTEXTが選択されたときに,ファイル内でデータがどのようにフォーマットされるかの詳細を示す. 各データはスペースで区切られ,フレームのデータはラインフィードによってVectorのサイズでフレームごとに分離される.

Table 6.129: TEXT OUTPUTTYPE のファイル形式

データ型

ファイルフォーマット

Float

data[0] data[1] data[2] ... data[n]

 
 

data[0] data[1] data[2] ...... data[n]

 

Complex

data[0].real() data[0].imag() data[1].real() data[1].imag() ... data[n].real() data[n].imag()

 

float

   

ここで,nは,フレームのデータが格納されている入力ベクターのサイズである.

SaveVectorFrames は,データを受け取ったときにVectorのサイズをチェックする. 上のサンプルネットワーク(図 6.130)では, LocalizeMUSIC は Vector<float> を出力する. LocalizeMUSIC で指定された伝達関数が72個の音源から生成された場合,予想されるベクターサイズは72になる.伝達関数は音伝播のモデルである. 伝達関数の音源数は,ベクターサイズに影響を与える要因の1つであり,伝達関数作成中に決定される. 伝達関数の詳細については,https://www.hark.jp/document/harktv/の「HARK Transfer Function Tutorial」のビデオを参照して頂きたい. 伝達関数を生成するための詳細なドキュメントは,https://www.hark.jp/document/transfer-function-generation-manuals/を参照されたい.

入力データが Vector<float> 型に格納されていて,列サイズが72で,合計6397のフレームがあるとすると,出力ファイルの内容は図 6.131 のようになる. 表 6.129 に記述されているTEXTファイル形式でデータが保存されているものとする.

\includegraphics[width=.8\textwidth ]{fig/modules/SaveVectorFrames-2}
Figure 6.131: SaveVectorFrames のTEXT Float 型出力ファイルの例

6.131 および図 6.132 の左側に書かれたフレーム番号は,ファイルに書き込まれないことに注意.

6.132 は,入力データが図 6.130 のサンプルネットワークのような Vector<complex<float> > 型の場合の出力ファイルのサンプル内容を示す.列サイズは71. 合計で6397のフレームがある. また,データは表 6.129 に記述されているTEXTファイル形式で保存されているものとする.

\includegraphics[width=.8\textwidth ]{fig/modules/SaveVectorFrames-3}
Figure 6.132: SaveVectorFrames のTEXT Complex Float 型出力ファイルの例

Filename:

FILENAMEパラメータに値を指定するときは,フォーマット文字列と呼ばれるデータプロパティを持つ特別なパターン{tag:format}を使用するオプションを使用できる. フォーマット文字列を使用すると,入力データの情報を含んだファイル名を設定することができ,後の使用に便利である.
使用可能なタグを,表 6.130 に示す.

Table 6.130: SaveVectorFrames のタグ表

タグ

説明

単位

datatype

Data Type (float or complex float)

String

colsize

Column size of Vector

Integer

dim

Data Dimension (Fixed value. 1 for Vector)

Integer

6.130 にフォーマット文字列とその出力の例を示す..

Table 6.131: Vector<complex<float> > 型のフォーマット文字列とその出力の例. 配列のサイズは20とする.

フォーマット文字列 (FILENAME パラメータ値)

出力 (フォーマット指定されたファイル名)

samplefile.dat

samplefile.dat

samplefile_{datatype}.txt

samplefile_complex_float.txt

samplefile_col{colsize}.raw

samplefile_col20.raw

samplefile_dim{dim}.dat

samplefile_dim1.dat

samplefile_{datatype}_col{colsize}_dim{dim}.dat

samplefile_complex_float_col20_dim1.dat

LoadVectorFrames を使用して SaveVectorFrames によって出力されたファイルを Vector<ObjectRef> 型にロードするときは,列サイズおよびデータ型をパラメータで指定する必要がある. したがって,ファイル名にデータ情報を持つことは,後の使用に役立つ.

6.131 に示されているように,ファイル名の拡張子に関する規則はない. ユーザーが指定する任意の値にすることができる. ファイル名の拡張子は無くても良い.

{tag:format}の "format"の値はオプション. "format"は,03dのような桁数を指定するために使用できる.フォーマット指定子は,Cのprintfと同じである.