GVD使用メモリ一覧
GVDライブラリが使用するメモリ領域の一覧です。
名称 |
制約 |
用途 |
使い方 |
開放タイミング |
Work(ワーク) |
|
GVDライブラリの初期化時に必要なバッファです。 |
GVD_InitInitializeParamで各初期設定を行ったあと、GVD_GetRequiredMemorySizeで必要サイズを取得します。 ユーザはGVD_GetRequiredMemorySizeで返されたサイズ以上を確保し、GVD_SetWorkMemoryに渡す必要があります。 |
GVD_Finalize後に開放できます。 |
Heap(ヒープ) |
|
動画デコードのためハードウェアが使用するバッファです。 必要サイズはデコードするコンテンツによって変動します。 |
コンテキスト毎にユーザが確保して GVD_SetOutputHeapに渡す必要があります。 サイズは以下の式を参考に見積もることができます。標準的な規格以外の解像度の場合は、水平垂直画素数がそれぞれ最大15画素分多く消費されることがあります。 サイズ[Byte] = 2.5 * 水平画素数 * 垂直画素数 * (1+参照フレーム数) |
GVD_CloseFileまたはGVD_Disconnect後に開放できます。 |
Input buffer(入力バッファ) |
|
H.264ストリームをGVDライブラリへ渡すためのバッファです。 |
ストリーム取得元の送信データ幅に合わせてメモリを配置することを推奨します(例:ATAの場合32 Byte境界とするとCPUでのバッファ処理を回避できます) |
内蔵ファイルストリーマの場合、GVD_Finalize後に開放できます。 外部ファイルストリーマの場合、GVD_PutInputBufferにてGVDに渡してから、discard_input_bufferにて返却されるまでの間は開放しないでください。この他はいつでも開放できます。 |
Output buffer(出力バッファ) |
|
デコードされたフレーム(画像)を出力するためのバッファです。 |
表示回路でそのまま使用可能なYUV422形式で出力されます。 |
出力先がVRAMの場合、GVD_PutOutputBufferにてGVDに渡してから、commit_output_buffer/discard_output_bufferにて返却されるまでの間は開放しないでください。この他はいつでも開放できます。 出力先がBMUの場合、GVD_PutOutputBufferにてGVDに渡してから、出力先にBMUを設定したコンテキストを破棄、またはVRAM出力に変更した後に開放できます。 |
Position buffer(位置情報バッファ) |
|
巻き戻しなどシークを行うためにIDRフレームの番号とストリームのオフセット位置を格納するバッファです。 |
gvdPositionBuffer 構造体の配列を登録してください。 詳細はGVD_SetPositionBuffer のページを参照してください。 |
GVD_CloseFileまたはGVD_Disconnect後に開放できます。 |