next up previous
Next: MalibFilter Up: 各クラスの概要 Previous: MalibSource

Subsections

MalibBuffer

ホルダクラスのサブクラスうち、フィルタへの入力を許すクラスを抽象化する クラスで、ホルダクラス直下、かつそれらのクラスの親クラスとなる抽象 クラスである。

バーチャル関数として、後段のフィルタクラスから呼び出されることを 想定したフレームテーブルへのアクセサが用意されている (表3.3)。

 
 
Table 3.3: フレームテーブルへのアクセサ(バーチャル関数)
malib_buffer_get_frame() 引数で指定する番号のフレームを得る
malib_buffer_get_current_frame() 現在アクティブなフレームを得る
malib_buffer_get_next_frame() 現在アクティブなフレームの次を得る
malib_buffer_get_prev_frame() 現在アクティブなフレームの前を得る

MalibBufferを具体化するサブクラス

MalibBuffer のサブクラスには、現在MalibPlainBufMalibRingBufMalibLineBufが用意されている。それぞれのクラス の概要は次のとおりである(図3.10)。
  
Figure 3.10: MalibBufferのサブクラス
\includegraphics{images/subclassofbuffer.eps}

MalibPlainBuf
フレームを1枚だけ持つシンプルなバッファである。 後段のフィルタにおいて時間方向の処理が必要ない場合は、 効率の観点から本クラスをバッファとして利用することが望ましい。
MalibRingBuf
一定時間のフレーム内容を保持できる循環構造を持つ バッファである。リングバッファのバッファ長は生成時に 決定される。
MalibLineBuf
全てのフレームを保持し、必要に応じて直線上に延長され るバッファである。画像データは1枚のフレームあたりのサイズが 大きいため、簡単にメモリオーバフローを引き起こす恐れがある。 安全を考慮すると、短時間の利用に限り有効である。



Jun IIO
2001-06-14