次の方法で共有


ビデオのインターレースを解除するには

[このページに関連付けられている機能である Windows Media Format 11 SDK は、従来の機能です。 ソース リーダーシンク ライターに置き換わりました。 ソース リーダーシンク ライターは、Windows 10とWindows 11用に最適化されています。 Microsoft では、可能であれば、新しいコードで Windows Media Format 11 SDK ではなくソース リーダーシンク ライターを使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

ビデオ キャプチャ カードなどの一部のビデオ ソースでは、インターレースディスプレイ用のビデオ データが配信されます。 インターレースされたビデオの各フレームは、2 つのフィールドで構成されます。 上部のフィールドには、ビデオの最初の行とその後の 1 行おきに表示されます。 下部のフィールドには、ビデオの 2 行目とその後の 1 行おきに表示されます。 そのため、1 つのフィールドには偶数行がすべて含まれており、もう 1 つのフィールドには奇数行がすべて含まれます。 フレームを構成するフィールドは、表示時間が若干異なるため、インターリーブ時に静的イメージが形成されません。

コンピューター モニターにビデオを表示する場合は、ビデオの各フレームを 1 つの画像として表示する必要があります (ビデオを一度に 1 フレーム全体を表示するこの方法は 、プログレッシブ ビデオと呼ばれます)。インターレースされたビデオを段階的に表示すると、2 つのフィールド間の時間差のため、フレームが正しく表示されないことがあります。 Windows Media Video コーデックと Windows Media Video Advanced Profile コーデックはどちらも、インターレースされたコンテンツをプログレッシブ フレームに変換する前処理機能をサポートしています。

コーデックデインターレース入力ビデオを表示するには、 IWMWriterAdvanced2::SetInputSetting メソッドを 呼び出します。 使用する設定はg_wszDeinterlaceMode。 インターレース解除モードを次のいずれかの値に設定します。

説明
WM_DM_NOTINTERLACED 入力はプログレッシブです。 この設定を使用して、インターレース解除モードを別の値に設定した場合に、インターレース解除を停止します。
WM_DM_DEINTERLACE_NORMAL このモードを選択すると、インターレース フレームの偶数フィールドと奇数フィールドがブレンドされます (モーション補正メカニズムを使用)。利点:
  • プログレッシブ ディスプレイのインターレースアーティファクトが大幅に削減されます。
  • Windows Media Video コーデックは、高品質の圧縮ビデオを生成します。
WM_DM_DEINTERLACE_HALFSIZE 出力解像度が入力解像度の半分以下の場合は、このモードを選択します。 たとえば、入力ビデオの解像度が 640 x 480 ピクセルで、出力ビデオの解像度が 320 x 240 ピクセルの場合は、このモードを使用します。利点:
  • プログレッシブ ディスプレイのインターレースアーティファクトが大幅に削減されます。
WM_DM_DEINTERLACE_HALFSIZEDOUBLERATE 出力解像度が入力解像度の半分以下で、出力 フレーム レート が 2 倍の場合は、このモードを選択します。 たとえば、入力ビデオ解像度が 30 インターレース フレーム/秒で 640 x 480 ピクセルで、出力ビデオ解像度が 60 フレーム/秒で 320 x 240 ピクセルである場合に、このモードを使用します。利点:
  • これにより、各フィールドがフレームに変換されるため、情報をブレンドする必要がないため、高品質のプログレッシブ フレームが生成されます。
  • インターレースされたフィールドの完全な動きがキャプチャされます。
WM_DM_DEINTERLACE_INVERSETELECINE このモードを選択すると、テレシンされた 30 フレーム/秒のビデオが元のフィルムの 24 フレーム/秒に変換されます。利点:
  • 30 フレーム/秒ではなく 24 フレーム/秒しかエンコードする必要がないため、圧縮品質が大幅に向上します。
  • 結果はプログレッシブであるため、インターレース解除の同じ圧縮と表示の利点が実現されます。
WM_DM_DEINTERLACE_VERTICALHALFSIZEDOUBLERATE このモードは、垂直出力解像度が入力垂直解像度の 1/2 以下で、出力 フレーム レート が 2 倍の場合に選択します。 たとえば、入力垂直ビデオ解像度は 30 インターレース フレーム/秒で 640 x 480 ピクセル、出力垂直ビデオ解像度は 60 フレーム/秒で 320 x 240 ピクセルです。利点:
  • これにより、各フィールドがフレームに変換されるため、情報をブレンドする必要がないため、高品質のプログレッシブ フレームが生成されます。
  • インターレースされたフィールドの完全な動きがキャプチャされます。

混合コンテンツの場合は、新しい型のサンプルを渡す前に、必要に応じてデインターレース モードを設定します。 たとえば、プログレッシブ入力でエンコードを開始するには、インターレース解除モードを設定する必要はありません。 一部のサンプルで通常のインターレース解除が必要な場合は、インターレース解除モードをWM_DM_DEINTERLACE_NORMALに設定する必要があります。 その後、追加のプログレッシブ サンプルを処理するには、インターレース解除モードをWM_DM_NOTINTERLACEDに設定する必要があります。

逆テレシネ設定

逆テレシネの詳細については、「逆テレシ ネを使用するには」を参照してください。

インターレース解除モードを WM_DM_DEINTERLACE_INVERSETELECINE に設定した場合は、 IWMWriterAdvanced2::SetInputSetting を呼び出して、最初の入力フレームのテレシネ パターンを指定できます。 使用する設定はg_wszInitialPatternForInverseTelecine。 初期パターンを次のいずれかの値に設定します。

説明
WM_DM_IT_DISABLE_COHERENT_MODE 入力メディアがテレシネ プロセスを通過したが、フレームが予測可能なパターンでなくなったことを指定します。 これは通常、テレシネ処理後にメディアが編集されたことを示します。 この設定を使用すると、コーデックは独自に元のフレームの再構築を試みます。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_TOP AA フレームの上部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_TOP BB フレームの上部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_TOP BC フレームの先頭フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_TOP CD フレームの先頭フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_TOP DD フレームの先頭フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_AA_BOTTOM AA フレームの下部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BB_BOTTOM BB フレームの下部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_BC_BOTTOM BC フレームの下部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_CD_BOTTOM CD フレームの下部フィールドが最初のサンプルであることを指定します。
WM_DM_IT_FIRST_FRAME_IN_CLIP_IS_DD_BOTTOM DD フレームの下部フィールドが最初のサンプルであることを指定します。

高度なトピック