次の方法で共有


ICCompress 関数 (vfw.h)

ICCompress 関数は、1 つのビデオ 画像を圧縮します。

構文

DWORD VFWAPIV ICCompress(
  HIC                hic,
  DWORD              dwFlags,
  LPBITMAPINFOHEADER lpbiOutput,
  LPVOID             lpData,
  LPBITMAPINFOHEADER lpbiInput,
  LPVOID             lpBits,
  LPDWORD            lpckid,
  LPDWORD            lpdwFlags,
  LONG               lFrameNum,
  DWORD              dwFrameSize,
  DWORD              dwQuality,
  LPBITMAPINFOHEADER lpbiPrev,
  LPVOID             lpPrev
);

パラメーター

hic

使用するコンプレッサーに取り付ける。

dwFlags

圧縮フラグ。 次の値が定義されています。

ICCOMPRESS_KEYFRAME

コンプレッサーは、このフレームをキーフレームにする必要があります。

lpbiOutput

出力形式を含む BITMAPINFOHEADER 構造体へのポインター。

lpData

圧縮されたフレームを格納するのに十分な大きさの出力バッファーへのポインター。

lpbiInput

入力形式を含む BITMAPINFOHEADER 構造体へのポインター。

lpBits

入力バッファーへのポインター。

lpckid

予約済みです。使わないでください。

lpdwFlags

AVI インデックスで使用される戻りフラグへのポインター。 次の値が定義されています。

AVIIF_KEYFRAME

現在のフレームはキー フレームです。

lFrameNum

フレーム番号。

dwFrameSize

要求されたフレーム サイズ (バイト単位)。 ICGetInfo 関数によって返されるVIDCF_CRUNCH フラグの存在によって示されるように、コンプレッサーが推奨されるフレーム サイズをサポートしている場合は、0 以外の値を指定します。 このフラグが設定されていない場合、またはフレームのデータ速度が指定されていない場合は、このパラメーターに 0 を指定します。

このパラメータで指定されたサイズ目標を得るために、コンプレッサーは画質を犠牲にするか、他のトレードオフを行う必要があります。

dwQuality

フレームに要求された品質値。 ICGetInfo によって返されるVIDCF_QUALITY フラグの存在によって示されるように、コンプレッサーが推奨品質値をサポートしている場合は、0 以外の値を指定します。 それ以外の場合は、このパラメーターに 0 を指定します。

lpbiPrev

前のフレームの形式を含む BITMAPINFOHEADER 構造体へのポインター。

lpPrev

前のフレームの非圧縮イメージへのポインター。 このパラメーターは、高速テンポラル圧縮には使用されません。 キー フレームを圧縮するとき、コンプレッサーがテンポラル圧縮をサポートしていない場合、またはコンプレッサーが前のイメージの形式とデータを格納するために外部バッファーを必要としない場合は、このパラメーターに NULL を 指定します。

戻り値

成功した場合 はICERR_OK を返し、それ以外の場合はエラーを返します。

解説

出力バッファーのサイズで必要な を取得するには、 ICM_COMPRESS_GET_SIZE メッセージを送信します (または ICCompressGetSize マクロを使用します)。

コンプレッサーは、 lpdwFlags の内容を、キー フレームの作成時に AVIIF_KEYFRAME に設定します。 アプリケーションで AVI ファイルを作成する場合は、 lpckidlpdwFlags に対して返される情報をファイルに保存する必要があります。

コンプレッサーは lpbiPrevlpPrev を使用してテンポラル圧縮を実行し、前のフレームの形式とデータを格納するために外部バッファーを必要とします。 キー フレームを圧縮する場合、高速圧縮を実行する場合、またはコンプレッサーに前のイメージの形式とデータを格納する独自のバッファーがある場合は、lpbiPrevlpPrevNULL を指定します。 ICGetInfoVIDCF_TEMPORAL フラグを返し、コンプレッサーが通常の圧縮を実行しており、圧縮するフレームがキー フレームでない場合は、これらのパラメーターに NULL 以外の値を指定します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー vfw.h
Library Vfw32.lib
[DLL] Msvfw32.dll

関連項目

ビデオ圧縮関数

ビデオ圧縮マネージャー