次の方法で共有


エンコード方法 (Microsoft Media Foundation)

Windows Media Audio および Video コーデックのほとんどは、複数のエンコード方法をサポートしています。 各方法を使用する方法とタイミングを知ることは、高品質の圧縮コンテンツを作成するのに役立ちます。

エンコードメソッドはすべて、デコーダーが圧縮された入力データを管理するために使用されるバッファーに焦点を当てています。 このバッファーは、ストリームのビット レート (1 秒あたりのビット数) とバッファー ウィンドウ (ミリ秒単位) によって定義されます。 エンコードする場合、コーデックはバッファーの拘束に従います。 バッファーの詳細については、「 リークバケットバッファーモデル」を参照してください。

定数ビット レート エンコード

Windows Media Audio コーデックと Video コーデックのいずれかでエンコードされたストリームのビット レートは一定ではありません。 定数ビットレート(CBR)エンコーディングは、したがって、やや誤解を招く用語である。 CBR でエンコードされたストリームの識別機能は、サンプル サイズのバリエーションを制限する小さなバッファー ウィンドウです。 CBR エンコードは、主にネットワーク経由で送信先にストリーミングされるコンテンツに使用されます。 このようなシナリオでは、一貫した帯域幅の使用に依存できることが重要です。

構成の観点から見ると、CBR エンコードは、エンコードを開始する前に、出力コンテンツの平均ビット レートと、そのビット レートに適用されるバッファー ウィンドウの両方を設定するという点で、他のモードとは異なります。 その他のモードでは、エンコーダーの構成時にこれらの値の一方または両方が不明であり、エンコード中にコーデックによって計算されます。 CBR は、Windows Media Encoder の DMO で使用される標準エンコード モードです。

Two-Pass定数ビット レート エンコード

Standard CBR では、1 つのエンコード パスのみが使用されます。 コンテンツを入力サンプルとして提供すると、コーデックによってコンテンツが圧縮され、出力サンプルが返されます。 また、入力サンプルを2回処理することも可能です。 最初のパスでは、コーデックによって計算が実行され、コンテンツのエンコードが最適化されます。 2 番目のパスでは、コーデックは最初のパスで収集されたデータを使用してコンテンツをエンコードします。

2 パス CBR エンコードには多くの利点があります。 多くの場合、バッファリングの要件を変更することなく、標準の CBR エンコードよりも大幅な品質向上が得られます。 これにより、このエンコード モードは、ネットワーク経由でストリーミングされるコンテンツに最適です。 2 パス CBR が実現できない唯一の状況は、ライブ ソースからコンテンツをエンコードし、2 番目のパスを使用できない場合です。

2 パス CBR ストリームの出力メディアの種類は、標準の CBR ストリームと同じです。使用するビット レートとバッファー ウィンドウを引き続き指定します。 DMO を構成するときは、2 つのパスを実行するように設定する必要があります。 また、最初のパスのサンプルの送信が完了したら、DMO に通知する必要があります。

Quality-Based可変ビット レート エンコード

CBR エンコードは実際には一定のビット レートを維持しないため、可変ビット レート エンコード (VBR) との違いは少しかすんでいるように見える場合があります。 CBR と VBR の主な違いは、使用されるバッファー ウィンドウのサイズです。 VBR でエンコードされたストリームには、通常、CBR でエンコードされたストリームと比較して大きなバッファー ウィンドウがあります。 品質ベースの VBR は例外でなく、ビット レートもバッファー ウィンドウも定義しません。 代わりに、品質の値を設定します。 その後、コーデックは、結果として得られるストリームのバッファー要件に関係なく、エンコードされたメディアの品質がその期間を通じて一貫するようにデータの圧縮を試みます。

品質ベースの VBR では、1 つのエンコード パスが使用され、大きな圧縮ストリームが作成される傾向があります。 エンコードが完了すると、デコーダーがデータを圧縮解除できるように、コーデックによってバッファー要件が設定されます。 エンコードされた VBR ストリームはネットワーク経由のストリーミングには適していないため、品質ベースの VBR は、ローカル再生シナリオ (またはダウンロードと再生) にのみ使用する必要があります。

制約のない可変ビット レート エンコード

品質ベースの VBR とは異なり、制約のない VBR は特定の品質レベルにエンコードされません。 代わりに、指定されたビット レートを維持しながら、コンテンツを可能な限り高い品質にエンコードします。 制約のない VBR では、2 つのエンコード パスが使用され、2 パス CBR に似ていますが、ストリームのバッファー ウィンドウ設定を指定しない点が異なっています。 つまり、平均ビット レートが設定した値以下である限り、ストリーム内の個々のサンプルのサイズに制限はありません。

制約のない VBR は、バッファー要件に合わせて要件を満たす再生シナリオがほとんどないため、使用が制限されています。 コーデックは、エンコード後に必要な値にバッファー ウィンドウを設定できるため、バッファー サイズを制御できません。 ほとんどの場合、バッファーのサイズや帯域幅の使用量の一貫性を気にしない場合は、品質ベースの VBR を使用する必要があります。

Peak-Constrained可変ビット レート エンコード

最終的なエンコード モードは、ピーク制約付き VBR です。 制約のない VBR と同様に、このモードでは 2 つのエンコード パスが使用され、指定されたビット レートにエンコードされます。 ただし、ピーク制約付き VBR では、エンコードのピーク値も構成します。 ピーク値は、通常のバッファー構成値に似ています。ピーク ビット レートとピーク バッファー ウィンドウがあります。 このファイルは、ピーク値によって記述されるバッファーに準拠するようにエンコードされ、ストリームの全体的な平均ビット レートが、指定した平均ビット レート値以下になるように設定されます。

制約付き VBR は概念化が困難な場合があります。 使用されるバッファリング モデルを考える最も簡単な方法を次に示します。 ストリームが、バッファーの定義に使用されるピーク ビット レートとピーク バッファー ウィンドウを持つ CBR ストリームであるとします。 通常、ピーク ビット レートは非常に高くなります。 エンコーダーを使用すると、指定した予想平均ビット レート値がストリームの期間中に維持されます。 ストリーム内の特定のポイントでは、平均ビット レートは、ストリームの合計サイズ (ビット単位) をストリーム継続時間 (秒) で割った値よりも大きいことが保証されます。

次の例を考えてみましょう。1 秒あたり平均ビット レートが 16,000 ビット、ピーク ビット レートが 48,000 ビット/秒、ピーク バッファー ウィンドウが 3,000 (3 秒) のストリームを構成します。 ストリームに使用されるバッファーのサイズは、ピーク値によって決定される 144,000 ビット (48,000 ビット/秒 x 3 秒) です。 エンコーダーは、そのバッファーに準拠するようにデータを圧縮します。 また、ストリームの平均ビットレートは 16,000 以下である必要があります。 エンコーダーが複雑なコンテンツ セグメントを処理するために非常に大きなサンプルを作成する必要がある場合は、大きなバッファー サイズを利用できます。 ただし、平均を指定したレベルに下げるには、ストリームの他の部分を低いビット レートでエンコードする必要があります。

ピーク制約付き VBR エンコードは、有限のバッファー容量と一部のデータ レート制約を持つ再生デバイスに役立ちます。 この一般的な例は、DVD に使用されるエンコードです。

VBR エンコードの使用

Windows Media コーデック