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

VMRDeinterlaceTech

列挙型
基底型i4

メンバー 8

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

公式ドキュメント

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

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

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

各言語での定義

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

typedef enum VMRDeinterlaceTech : int {
    DeinterlaceTech_Unknown = 0,
    DeinterlaceTech_BOBLineReplicate = 1,
    DeinterlaceTech_BOBVerticalStretch = 2,
    DeinterlaceTech_MedianFiltering = 4,
    DeinterlaceTech_EdgeFiltering = 16,
    DeinterlaceTech_FieldAdaptive = 32,
    DeinterlaceTech_PixelAdaptive = 64,
    DeinterlaceTech_MotionVectorSteered = 128
} VMRDeinterlaceTech;
public enum VMRDeinterlaceTech : int
{
    DeinterlaceTech_Unknown = 0,
    DeinterlaceTech_BOBLineReplicate = 1,
    DeinterlaceTech_BOBVerticalStretch = 2,
    DeinterlaceTech_MedianFiltering = 4,
    DeinterlaceTech_EdgeFiltering = 16,
    DeinterlaceTech_FieldAdaptive = 32,
    DeinterlaceTech_PixelAdaptive = 64,
    DeinterlaceTech_MotionVectorSteered = 128,
}
Public Enum VMRDeinterlaceTech As Integer
    DeinterlaceTech_Unknown = 0
    DeinterlaceTech_BOBLineReplicate = 1
    DeinterlaceTech_BOBVerticalStretch = 2
    DeinterlaceTech_MedianFiltering = 4
    DeinterlaceTech_EdgeFiltering = 16
    DeinterlaceTech_FieldAdaptive = 32
    DeinterlaceTech_PixelAdaptive = 64
    DeinterlaceTech_MotionVectorSteered = 128
End Enum
import enum

class VMRDeinterlaceTech(enum.IntEnum):
    DeinterlaceTech_Unknown = 0
    DeinterlaceTech_BOBLineReplicate = 1
    DeinterlaceTech_BOBVerticalStretch = 2
    DeinterlaceTech_MedianFiltering = 4
    DeinterlaceTech_EdgeFiltering = 16
    DeinterlaceTech_FieldAdaptive = 32
    DeinterlaceTech_PixelAdaptive = 64
    DeinterlaceTech_MotionVectorSteered = 128
// VMRDeinterlaceTech
pub const DeinterlaceTech_Unknown: i32 = 0;
pub const DeinterlaceTech_BOBLineReplicate: i32 = 1;
pub const DeinterlaceTech_BOBVerticalStretch: i32 = 2;
pub const DeinterlaceTech_MedianFiltering: i32 = 4;
pub const DeinterlaceTech_EdgeFiltering: i32 = 16;
pub const DeinterlaceTech_FieldAdaptive: i32 = 32;
pub const DeinterlaceTech_PixelAdaptive: i32 = 64;
pub const DeinterlaceTech_MotionVectorSteered: i32 = 128;
// VMRDeinterlaceTech
const (
	DeinterlaceTech_Unknown int32 = 0
	DeinterlaceTech_BOBLineReplicate int32 = 1
	DeinterlaceTech_BOBVerticalStretch int32 = 2
	DeinterlaceTech_MedianFiltering int32 = 4
	DeinterlaceTech_EdgeFiltering int32 = 16
	DeinterlaceTech_FieldAdaptive int32 = 32
	DeinterlaceTech_PixelAdaptive int32 = 64
	DeinterlaceTech_MotionVectorSteered int32 = 128
)
const
  DeinterlaceTech_Unknown = 0;
  DeinterlaceTech_BOBLineReplicate = 1;
  DeinterlaceTech_BOBVerticalStretch = 2;
  DeinterlaceTech_MedianFiltering = 4;
  DeinterlaceTech_EdgeFiltering = 16;
  DeinterlaceTech_FieldAdaptive = 32;
  DeinterlaceTech_PixelAdaptive = 64;
  DeinterlaceTech_MotionVectorSteered = 128;
// VMRDeinterlaceTech
pub const DeinterlaceTech_Unknown: i32 = 0;
pub const DeinterlaceTech_BOBLineReplicate: i32 = 1;
pub const DeinterlaceTech_BOBVerticalStretch: i32 = 2;
pub const DeinterlaceTech_MedianFiltering: i32 = 4;
pub const DeinterlaceTech_EdgeFiltering: i32 = 16;
pub const DeinterlaceTech_FieldAdaptive: i32 = 32;
pub const DeinterlaceTech_PixelAdaptive: i32 = 64;
pub const DeinterlaceTech_MotionVectorSteered: i32 = 128;
const
  DeinterlaceTech_Unknown* = 0
  DeinterlaceTech_BOBLineReplicate* = 1
  DeinterlaceTech_BOBVerticalStretch* = 2
  DeinterlaceTech_MedianFiltering* = 4
  DeinterlaceTech_EdgeFiltering* = 16
  DeinterlaceTech_FieldAdaptive* = 32
  DeinterlaceTech_PixelAdaptive* = 64
  DeinterlaceTech_MotionVectorSteered* = 128
enum VMRDeinterlaceTech : int {
    DeinterlaceTech_Unknown = 0,
    DeinterlaceTech_BOBLineReplicate = 1,
    DeinterlaceTech_BOBVerticalStretch = 2,
    DeinterlaceTech_MedianFiltering = 4,
    DeinterlaceTech_EdgeFiltering = 16,
    DeinterlaceTech_FieldAdaptive = 32,
    DeinterlaceTech_PixelAdaptive = 64,
    DeinterlaceTech_MotionVectorSteered = 128,
}
#define global DeinterlaceTech_Unknown             0x0
#define global DeinterlaceTech_BOBLineReplicate    0x1
#define global DeinterlaceTech_BOBVerticalStretch  0x2
#define global DeinterlaceTech_MedianFiltering     0x4
#define global DeinterlaceTech_EdgeFiltering       0x10
#define global DeinterlaceTech_FieldAdaptive       0x20
#define global DeinterlaceTech_PixelAdaptive       0x40
#define global DeinterlaceTech_MotionVectorSteered 0x80