Win32 API 日本語リファレンス
ホームMedia.MediaFoundation › CODECAPI_AVEncSliceControlSize

CODECAPI_AVEncSliceControlSize

構造体
サイズx64: 0 バイト / x86: 0 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

(フィールドなし)

公式ドキュメント

スライスのサイズを、メガバイト (MB)、ビット、または MB 行を単位として指定します。

解説(Remarks)

H.264/AVC エンコーダー:

CODECAPI_AVEncSliceControlSize の値の意味は、CODECAPI_AVEncSliceControlMode プロパティによって制御されます。次の表は、CODECAPI_AVEncSliceControlSize プロパティと CODECAPI_AVEncSliceControlMode プロパティが、フレーム内のスライスのサイズと数をどのように制御するかを示しています。

CODECAPI_AVEncSliceControlMode の設定 値の意味
0 フレーム内の各スライスのサイズをマクロブロック単位で示す整数です。
値がフレーム内のマクロブロック数を超える場合、エンコーダーはこの設定を拒否する必要があります。
1 フレーム内の各スライスのサイズをビット単位で示す整数です。
エンコーダーは、スライス内のビット数がこの値を超える原因となるマクロブロックで新しいスライスを開始する必要があります (そのため、各スライスのサイズは常にこの値以下になります)。つまり、最後のスライスのサイズはこの値よりも大幅に小さくなる可能性があります。
2 フレーム内の各スライスのサイズをマクロブロック行単位で示す整数です。
値がフレーム内のマクロブロック行数を超える場合、エンコーダーはこの設定を拒否する必要があります。

アプリケーションが CODECAPI_AVEncSliceControlMode に値を設定しない場合、エンコーダーはエラーを返す必要があります。

推奨される既定の設定は、フレーム全体を 1 つのスライスとすることです。

エンコーダーによってはスライスを並列にエンコードすることがあるため、スライス制御の設定によってはパフォーマンスが影響を受ける可能性があります。たとえば、フレームを単一のスライスとしてエンコードすると、複数のスライスとしてエンコードする場合よりも遅くなることがあります。

スライス制御の設定は動的であり、エンコードセッション中に変更できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)