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

VMR9DeinterlaceTech

列挙型
基底型i4

メンバー 8

名前10進16進説明
DeinterlaceTech9_Unknown00x0アルゴリズムが不明であるか、独自仕様です。
DeinterlaceTech9_BOBLineReplicate10x1欠落している各ラインを、その上または下のラインを繰り返すことによって生成するアルゴリズムです。この方法はギザギザのアーティファクトを生じさせるため、推奨されません。
DeinterlaceTech9_BOBVerticalStretch20x2各ビデオ フィールドを垂直方向に 2 倍に引き伸ばすことによって、欠落しているラインを生成するアルゴリズムです。たとえば、2 本のラインを平均化したり、4 本のラインにわたって (-1, 9, 9, -1)/16 のフィルターを適用したりします。結果として得られる画像が上下に "bob"(揺れ)しないように、垂直方向のわずかな調整が行われます。
DeinterlaceTech9_MedianFiltering40x4メディアン フィルター処理を使用して、欠落しているライン内のピクセルを再生成するアルゴリズムです。
DeinterlaceTech9_EdgeFiltering160x10エッジ フィルターを使用して、欠落しているラインを生成するアルゴリズムです。この処理では、空間方向フィルターを適用して画像内容におけるエッジの向きを判定します。欠落しているピクセルは、検出されたエッジを横切る方向ではなく、それに沿った方向にフィルター処理を行うことで生成されます。
DeinterlaceTech9_FieldAdaptive320x20空間的補間または時間的補間を使用し、動きの量に応じてフィールド単位で両者を切り替えるアルゴリズムです。
DeinterlaceTech9_PixelAdaptive640x40空間的補間または時間的補間を使用し、動きの量に応じてピクセル単位で両者を切り替えるアルゴリズムです。
DeinterlaceTech9_MotionVectorSteered1280x80一連のビデオ フィールド内のオブジェクトを識別するアルゴリズムです。欠落しているピクセルを再生成する前に、シーン内の個々のオブジェクトの移動軸を時間軸と平行になるように整列させます。

公式ドキュメント

[このページに関連する機能である DirectShow はレガシー機能です。これは MediaPlayerIMFMediaEngine、および Audio/Video Capture in Media Foundation に置き換えられました。これらの機能は Windows 10 および Windows 11 向けに最適化されています。Microsoft は、可能な場合は新しいコードで DirectShow ではなく MediaPlayerIMFMediaEngineAudio/Video Capture in Media Foundation を使用することを強く推奨します。また、レガシー API を使用している既存のコードについても、可能であれば新しい API を使用するように書き直すことを推奨します。]

VMR9DeinterlaceTech 列挙型は、ビデオ ストリームのインターレース解除に使用されるアルゴリズムを記述します。これらのフラグは相互排他的ではなく、ドライバーは複数のフラグを組み合わせて設定できます。

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

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum VMR9DeinterlaceTech : int {
    DeinterlaceTech9_Unknown = 0,
    DeinterlaceTech9_BOBLineReplicate = 1,
    DeinterlaceTech9_BOBVerticalStretch = 2,
    DeinterlaceTech9_MedianFiltering = 4,
    DeinterlaceTech9_EdgeFiltering = 16,
    DeinterlaceTech9_FieldAdaptive = 32,
    DeinterlaceTech9_PixelAdaptive = 64,
    DeinterlaceTech9_MotionVectorSteered = 128
} VMR9DeinterlaceTech;
public enum VMR9DeinterlaceTech : int
{
    DeinterlaceTech9_Unknown = 0,
    DeinterlaceTech9_BOBLineReplicate = 1,
    DeinterlaceTech9_BOBVerticalStretch = 2,
    DeinterlaceTech9_MedianFiltering = 4,
    DeinterlaceTech9_EdgeFiltering = 16,
    DeinterlaceTech9_FieldAdaptive = 32,
    DeinterlaceTech9_PixelAdaptive = 64,
    DeinterlaceTech9_MotionVectorSteered = 128,
}
Public Enum VMR9DeinterlaceTech As Integer
    DeinterlaceTech9_Unknown = 0
    DeinterlaceTech9_BOBLineReplicate = 1
    DeinterlaceTech9_BOBVerticalStretch = 2
    DeinterlaceTech9_MedianFiltering = 4
    DeinterlaceTech9_EdgeFiltering = 16
    DeinterlaceTech9_FieldAdaptive = 32
    DeinterlaceTech9_PixelAdaptive = 64
    DeinterlaceTech9_MotionVectorSteered = 128
End Enum
import enum

class VMR9DeinterlaceTech(enum.IntEnum):
    DeinterlaceTech9_Unknown = 0
    DeinterlaceTech9_BOBLineReplicate = 1
    DeinterlaceTech9_BOBVerticalStretch = 2
    DeinterlaceTech9_MedianFiltering = 4
    DeinterlaceTech9_EdgeFiltering = 16
    DeinterlaceTech9_FieldAdaptive = 32
    DeinterlaceTech9_PixelAdaptive = 64
    DeinterlaceTech9_MotionVectorSteered = 128
// VMR9DeinterlaceTech
pub const DeinterlaceTech9_Unknown: i32 = 0;
pub const DeinterlaceTech9_BOBLineReplicate: i32 = 1;
pub const DeinterlaceTech9_BOBVerticalStretch: i32 = 2;
pub const DeinterlaceTech9_MedianFiltering: i32 = 4;
pub const DeinterlaceTech9_EdgeFiltering: i32 = 16;
pub const DeinterlaceTech9_FieldAdaptive: i32 = 32;
pub const DeinterlaceTech9_PixelAdaptive: i32 = 64;
pub const DeinterlaceTech9_MotionVectorSteered: i32 = 128;
// VMR9DeinterlaceTech
const (
	DeinterlaceTech9_Unknown int32 = 0
	DeinterlaceTech9_BOBLineReplicate int32 = 1
	DeinterlaceTech9_BOBVerticalStretch int32 = 2
	DeinterlaceTech9_MedianFiltering int32 = 4
	DeinterlaceTech9_EdgeFiltering int32 = 16
	DeinterlaceTech9_FieldAdaptive int32 = 32
	DeinterlaceTech9_PixelAdaptive int32 = 64
	DeinterlaceTech9_MotionVectorSteered int32 = 128
)
const
  DeinterlaceTech9_Unknown = 0;
  DeinterlaceTech9_BOBLineReplicate = 1;
  DeinterlaceTech9_BOBVerticalStretch = 2;
  DeinterlaceTech9_MedianFiltering = 4;
  DeinterlaceTech9_EdgeFiltering = 16;
  DeinterlaceTech9_FieldAdaptive = 32;
  DeinterlaceTech9_PixelAdaptive = 64;
  DeinterlaceTech9_MotionVectorSteered = 128;
// VMR9DeinterlaceTech
pub const DeinterlaceTech9_Unknown: i32 = 0;
pub const DeinterlaceTech9_BOBLineReplicate: i32 = 1;
pub const DeinterlaceTech9_BOBVerticalStretch: i32 = 2;
pub const DeinterlaceTech9_MedianFiltering: i32 = 4;
pub const DeinterlaceTech9_EdgeFiltering: i32 = 16;
pub const DeinterlaceTech9_FieldAdaptive: i32 = 32;
pub const DeinterlaceTech9_PixelAdaptive: i32 = 64;
pub const DeinterlaceTech9_MotionVectorSteered: i32 = 128;
const
  DeinterlaceTech9_Unknown* = 0
  DeinterlaceTech9_BOBLineReplicate* = 1
  DeinterlaceTech9_BOBVerticalStretch* = 2
  DeinterlaceTech9_MedianFiltering* = 4
  DeinterlaceTech9_EdgeFiltering* = 16
  DeinterlaceTech9_FieldAdaptive* = 32
  DeinterlaceTech9_PixelAdaptive* = 64
  DeinterlaceTech9_MotionVectorSteered* = 128
enum VMR9DeinterlaceTech : int {
    DeinterlaceTech9_Unknown = 0,
    DeinterlaceTech9_BOBLineReplicate = 1,
    DeinterlaceTech9_BOBVerticalStretch = 2,
    DeinterlaceTech9_MedianFiltering = 4,
    DeinterlaceTech9_EdgeFiltering = 16,
    DeinterlaceTech9_FieldAdaptive = 32,
    DeinterlaceTech9_PixelAdaptive = 64,
    DeinterlaceTech9_MotionVectorSteered = 128,
}
#define global DeinterlaceTech9_Unknown             0x0
#define global DeinterlaceTech9_BOBLineReplicate    0x1
#define global DeinterlaceTech9_BOBVerticalStretch  0x2
#define global DeinterlaceTech9_MedianFiltering     0x4
#define global DeinterlaceTech9_EdgeFiltering       0x10
#define global DeinterlaceTech9_FieldAdaptive       0x20
#define global DeinterlaceTech9_PixelAdaptive       0x40
#define global DeinterlaceTech9_MotionVectorSteered 0x80