srbn.live

検証記録: 記事の主張を、実機でどう確かめたかの記録です。

実機検証: OBSのインターレース解除モードとフィールド順序(2026-10-22)

対象記事: posts/articles/obs-interlace.md 環境: Windows 11、OBS Studio 32.2.2 と 33.0.0-rc3(公式zipのポータブル版、専用の設定。日本語UI)。キャンバス・出力 1920×1080、60fps、録画は無劣化(Lossless) 方法: tools/capture/verify_deinterlace.py、tools/capture/walk_deinterlace.py

素材

白い縦棒(幅60px)が毎秒600pxで右へ動く 1920×1080 の映像を、60fps で作ってからインターレース化した(1080i、30フレーム/60フィールド、トップフィールドが先)。1つのフレームの中で、偶数行と奇数行の棒の位置が10pxずれる(test-clip-frame.png)。

これをメディアソースで再生し、モードとフィールド順序の組み合わせごとに4秒録画した。録画の各フレームで、棒の位置を偶数行・奇数行ごとに求めた。

結果(32.2.2・33.0.0-rc3 で同じ傾向)

モード フィールド順序 縞 動きの更新 逆戻り
無効 — 10px(縞あり) 毎秒30回 0
破棄・Blend・Linear・Yadif トップ/ボトム 0 毎秒30回 0
Blend 2x トップ/ボトム 0 毎秒60回 0
Linear 2x・Yadif 2x・Retro トップ(素材と一致) 0 毎秒60回 0
Linear 2x・Yadif 2x・Retro ボトム(素材と逆) 0 毎秒60回 約半分のフレームで逆戻り(約103/208)

数値の全件: verify-deinterlace-32.json、verify-deinterlace-33.json

読み取り

  1. 「無効」では1フレームの中に2つの時点の絵が混ざり、動く物の縁に横縞が出る(closeup-disabled.png)。どのモードでも縞は消えた(closeup-yadif2x.png)
  2. 名前に「2x」が付かないモード(破棄・Blend・Linear・Yadif)は、動きの更新が毎秒30回になった。「2x」のモードと Retro は毎秒60回
  3. フィールド順序を素材と逆にすると、Linear 2x・Yadif 2x・Retro は動きが前後にガタつく。Blend 2x は影響を受けなかった
  4. 2x が付かないモードでは、フィールド順序を逆にしても、縞・逆戻りの測定値に差は出なかった

自動検出は無い

OBSのソースでは、ソース作成時にフィールド順序を「トップが先」にしている(libobs/obs-source.c の deinterlace_top_first = true、32.2.2)。映像から順序を判定する処理は見当たらない。旧記事の「通常は自動検出されます」は根拠がない。

メニューの場所(両版で実機確認)

ソース一覧でソースを右クリック → 「インターレース解除」→ 無効/破棄/Retro/Blend/Blend 2x/Linear/Linear 2x/Yadif/Yadif 2x、その下に「トップフィールドが先」「ボトムフィールドが先」(deinterlace-menu-33.png、walk-deinterlace-32.json/walk-deinterlace-33.json)。フィルタではなく、右クリックメニューの項目。

測っていないこと