Composite TV — Signal Path Reference

コンポジットTV 信号経路図

キャプチャから送出までの全経路。各段が模している仮想機器、段間を流れる信号の形式、 そしてすべてのノイズ/グリッチの注入点とその物理的正当性。v1.1.0 時点——フルラインの同期・バースト・VBI、信号出力と音声搬送波、 時間軸誤差の信号化、受像機側の同期・利得系(水平/垂直の発振器とキー付きAGC)まで反映。

物理的に正しい位置に注入 実装上の近似(理由を明記) タップ(信号の取り出し点)

01全体トポロジー

OBS ソース映像 (任意サイズ) Encode送出側(局・デッキ) Detect伝搬路+検波器 DecodeTVの映像回路 Displayブラウン管 受像機の同期・利得系 Track → Flywheel / VFlywheel / Agc(各 263×1) Pack16bit / 8bit+ヘッダ行 「コンポジットTV 信号」コンパニオンソース Spout Filter →外部NTSCデコーダ 同期・バーストを実測 バースト位相・キラー・利得 走査タイミング タップ0: エンコード出力(破線) タップ1: 受信後(全劣化込み) 毎フレーム公開 コンポジット 受信済み信号 RGBフィールド 番組へ デバッグ波形はここをトレース
経路は検波器の出力で三手に分かれる。受像機の同期・利得系(琥珀)は受信信号から同期・バースト・ 同期先端レベルをライン毎に実測し、その結果だけが Decode(色の基準とキラー、AGC利得)と Display(走査タイミング)を動かす =受像機はエンコーダが何をしたかを知らない。下段(シアン)は信号のままの送出で、Pack は常時走っており フィルタの表示モードに関係なく信号ソースから取り出せる。

02パイプライン詳細 — 仮想機器と注入点

CAPTURE入力キャプチャフィルタ対象のソースをそのまま写す
  • 注入なし(レターボックス/アスペクト処理のみ次段で解決)
RGBA8 / ソース解像度 — まだただの映像
ENCODE送出側 — NTSCエンコーダ・VTRデッキ・音声送信機910サンプル×263行のフルライン信号を作る
  • 同期骨格+カラーバースト — 等化・切り込み垂直同期・水平同期・バースト9サイクル(変調基準+147°) syncBaseAt / burstAt
  • 帯域制限 Y 4.2 / I 1.3 / Q 0.4 MHz — 色にじみの正体 windowed-sinc FIR
  • リンギング — 映像アンプの減衰共振。因果カーネルなのでエッジの右側だけに尾 peaking
  • フラッギング/ヘッドスイッチの千切れ — デッキの時間軸誤差。ライン全体(同期ごと)が揺れる。カラーアンダー相当でクロマ位相は補正済み=色相は安定(実機どおり) tapeShiftOf → tpos
  • 水平同期ジッタ — 伝送路の時間軸誤差。副搬送波位相ごと揺れる(バーストも一緒に動くので受像側は追従できる) rxJitterOf → offJ, phN
  • 干渉ビート — 混信キャリアの加算。物理的には受信アンテナでの混信。検波前の加算なので効果は等価だが、実装位置の都合でタップ0にも乗る beat_gain
  • 音声搬送波 4.5MHz FM — 指定音声を ±25kHz偏移・75µsプリエンファシスでCPU合成し全ライン(帰線中も)に加算 audio_tex
  • 雑音の素材生成 — 複素ガウス雑音を空きチャンネルに書くだけ。この時点では信号に加算されない(注入は検波段) noiseIQ → .ba
RGBA32F / 910×263 — コンポジット信号。R=信号(±1.33→0..1格納) G=輝度(未使用) B,A=雑音素材(複素ガウスのI/Q)
B,A は Encode→Detect 間だけの内部受け渡し。検波の瞬間に消費されて信号の一部になり、Pack は R しか読まないため送出信号には含まれない(Pack出力の B は常に 0)
◧ タップ0「デッキ/送信側」 はここを取り出す
DETECT伝搬路 — アンテナ・チューナ・IF・包絡線検波器電波として受信する。砂嵐が生まれる場所
  • ドロップアウト+補償 — 時間軸上の信号欠落(0.5µs〜、対数分布)。補償は なし(白飛び/ノイズ帯)・グレー・1H遅延線。物理的にはデッキ内の現象。1H遅延線が「直前ラインのテクスチャ」を必要とするため検波段に実装。色落ちは副搬送波消失から自動的に出る=効果は正確 dropoutAt
  • ヘッドスイッチのRF途切れ(ノイズ帯) — 下端数ラインが復調不能に。これもデッキ内の現象だが実装は検波段。千切れ(Encode)と同じ帯形状で整列
  • ゴースト — 遅延した反射波の加算。Y/C分離前なので色にじみを伴う本物の多重像。同期にもゴーストが乗る compositeAt(n−delay)
  • 砂嵐(電界強度) — ライス包絡線検波: 搬送波+帯域制限雑音の包絡線。輝度は一様乱数ではなくレイリー分布。負変調なので大振幅ほど暗い env=|A+n|, IF帯域, 最小雑音
  • 検波レベル — 砂嵐側の静的な正規化(=巻き上がりきったAGCの定常利得)。動的なAGCは次段の受像機側 snow_level
RGBA32F / 910×263 — 受信済みコンポジット(同期は −0.4 のまま格納符号化で生存)
◧ タップ1「受信後」◧ デバッグ波形◧ Pack(信号ソースへ常時公開) はここを取り出す
TRACK +3パス受像機の同期・利得系 — 同期分離器・AFC・バーストゲート・AGC受信信号を実測する。ここから下流は送出側を一切参照しない
  • 同期分離器(整合フィルタ) — 67サンプル窓を±30の範囲で滑らせ、和が最小の位置=同期パルスとする。実機の積分型分離器と同じで、雑音に対し約8倍の余裕を稼ぐ。雑音が勝つと最小値がゲート内のランダムな位置に落ち、そこから水平の泳ぎ・引き裂きが創発する PSTrack → trk.r, trk.a
  • バーストゲート相関+CFAR — 分離器が決めた位置を基準に9サイクルを相関検出。同期底部を雑音基準として引き、砂嵐で振幅が過大評価されるのを防ぐ trk.g(位相), trk.b(振幅−雑音)
  • 垂直積分器 — VBI 9行それぞれで「ライン中どれだけが同期レベルに沈んでいるか」を測る。幅広の切り込みは充電し、幅狭の等化は充電しない trk.b(VBI行)
  • 水平発振器(フライホイール) — 毎ライン自走分だけ位相が進み、同期がゲート内にある間だけ位相比較が引き戻す。H-HOLDのデチューンが引き込み範囲を超えると位相が滑り続ける PSFlywheel
  • 垂直発振器(トリガ式・片側) — 同期パルスは発振器を早く発火させることしかできないので、設計上わずかに遅めに自走させランプ終盤で捕まえる。V-HOLDの±で外れ方が非対称になるのはこのため PSVFlywheel
  • キー付きAGC — 自前の水平位相でキーを打ち、同期先端とバックポーチの差を規定値に保つ二次ループ(帯域8Hz)。ハンチングのツマミはこのループの減衰不足=リミットサイクル PSAgc
RGBA32F / 263×1 ×4本 — 絵ではなく測定値。同期誤差・バースト位相・バースト振幅・信頼度/発振器位相/垂直位相/AGC利得
フィールドを跨いで状態を持ち越す(ピンポン)ため、蛇行も回転もAGCの脈動も再ロールせずに這う
DECODE受像機 — Y/C分離・同期検波信号から絵へ戻す。754×243の有効映像を読む(窓の外へはみ出すタップはバーストやポーチを読む=実機のフィルタと同じ)
  • Y/C分離 — バンドパス(安物)/2ラインコム/3ラインコム。ドットクロール・クロスカラーは方式差から自然発生(描いていない)
  • バーストゲートAFPC — Trackパスがライン毎に受信信号のバーストを相関検出し、その実測位相を復調基準にする。バーストが検出できないと発振器は自走してドリフト PSTrack → trk.g
  • カラーキラー(自動) — 実測バースト振幅が閾値を割ると色を殺す。砂嵐がモノクロになるのは電界強度を見ているからではなく、バーストが雑音に沈むから trk.b → lock
  • 副搬送波位相ドリフト — バーストにロックできない間だけ発振器が自走してドリフトする。以前の「電界強度<0.08で発火」ゲートは廃止。ロックの有無は実測バーストが決める lock ← trk.b
  • AGC利得の適用 — 受像機のAGCループが出したライン毎の利得を輝度・クロマに掛ける。定常値ではなく「定常からのずれ」を掛けるので、調整済みの明るさは変わらず過渡だけが出る agc_tex → gain
  • コントラスト/ブライトネス — 映像回路の利得・ペデスタル
RGBA16F / 754×243 — 復調済みRGBフィールド(1フレーム=1フィールド)
DISPLAYブラウン管 — 偏向・蛍光体・管面ビームが絵を描く。ここに残る注入はすべて受像機側の現象
  • 垂直AFC(V-HOLD) — VBI行の積分器充電(切り込み−等化)でトリガをゲートする垂直発振器。V-HOLDでデチューン、砂嵐で切り込みが埋もれると自走して回る。手動の垂直ロールは廃止(信号の垂直同期は正常。外部デコーダは安定して映るのが正解) PSTrack → PSVFlywheel → PSDisplay
  • 水平AFC(フライホイール) — 同期分離器の実測誤差を約12ライン時定数で平均し、走査時に補正。遅い誤差は真っ直ぐに直り、段差(ヘッドスイッチ等)は追従中の曲がりとして映り、ライン毎のジッタは素通しになる。ドロップアウト後の乱れは、同期を食われた行で分離器が雑音に誤トリガし推定を汚すことから創発(専用コードは削除済み) PSTrack → PSFlywheel → lineShift
  • 消磁 — 減衰交流によるうねり・R/Bミスコンバージェンス・虹色純度ムラ
  • 管の構造 — インターレース織り、ビーム径、走査線、残光(max合成)、シャドウマスク/グリル+ダンパー線、曲率、ビネット、オーバースキャン
  • 電源エンベロープ — ウォームアップ/垂直・水平コラプス/残光
  • デバッグ波形オーバーレイ — 検波後信号の1ライン全体(ポーチ→同期→バースト→有効映像)をトレース。受像機の内部状態も重ねる: アンバー=水平発振器の位相、シアン=分離器の信頼度、マゼンタ=AGC利得(管面より上に描くので表示段は波形に影響しない)
RGBA8 / ソース解像度 — 完成した「ブラウン管越しの絵」→ OBSの番組へ

一時発動の経路 — ドックとホットキーは信号を直接触りません。押すと該当するグリッチグループが設定時間だけ有効になるだけです (チェックを入れっぱなしにしたのと同じ状態)。グループの設定——受信不良なら発動中の電界強度・H-HOLD・V-HOLD・ゴースト・ジッタ・フェージング、 再生不良ならフラッギング・ヘッドスイッチング・ドロップアウトとテープ傷の1周掃引——が設定値いっぱいで効き始め、指数的にメインの状態へ戻ります。 その後の復帰(砂嵐からの立ち上がり、色の戻り、水平・垂直の再ロック、AGCの落ち着き)は受像機の物理が自力で行い、直接注入している演出はありません。 消磁・電源も同様にパラメータ経由です。

03送出される1フィールドの構造(910×264)

有効映像 754 サンプル × 243 行 4画素周期の副搬送波縞が乗る VBI 20行 — 等化 3 / 垂直同期(切り込み) 3 / 等化 3 / ブランク 11(半ライン周期のパルス列) ヘッダ行(信号ではない荷札): magic 0x4354 ・ version ・ format ・ tap ・ フィールド番号0–3 ・ 音声サンプル数 ・ 音声有無 FP 同期 −0.4 バースト ±0.2 映像 0(黒)〜 1.0(白) 0 21 88 107 143 156 (=4の倍数 → 復調位相が無補正で一致) 910 行0 行20 行262 行263
1画像 = 1フィールド。910 × 262.5 × 59.94 ≒ 14.318 MS/s = 4fsc と規格がそのまま閉じる。 16bit形式は R=上位バイト/G=下位バイト(B=0固定・Aは255。内部の雑音素材B/Aはここへは来ない)、 復元は composite = (v16/65535 − 0.5) / 0.375。 ld-decode の .tbc(4fsc・910×263・16bit)と幾何が一致し、ヘッダ行を落とせばほぼ相互変換できる。

04物理的正当性の総括

現象実装位置物理的な発生場所評価
同期・バースト・VBIEncode送出局のエンコーダ✓ 一致
帯域制限・色にじみEncodeNTSC規格そのもの✓ 一致
リンギングEncode映像アンプの共振✓ 一致因果カーネルで右側のみ=最小位相
フラッギング/千切れEncode(時間軸)デッキの時間軸誤差✓ 一致カラーアンダーの位相補正まで再現
水平同期ジッタEncode(時間軸)伝送路✓ 一致バースト・クロマ・同期が一体で揺れる
干渉ビートEncode 末尾受信アンテナの混信検波前加算なので効果は等価。タップ0に乗る不純のみ
音声搬送波Encode音声送信機(+4.5MHz)✓ 一致ビート音・点模様は受信側で自然発生
砂嵐・ゴーストDetect伝搬路〜検波器✓ 一致レイリー分布は検波の数学から
フェージングDetect(実効電界)伝搬路(ダクト・二波干渉・シンチレーション)✓ 一致機構別に3成分。深い谷では多重伝搬=ゴーストが立つ
ドロップアウト+DOCDetectデッキ内(RF喪失+補償回路)1H遅延線が前ラインのテクスチャを要するため。色落ち等の効果は正確
ヘッドスイッチのノイズ帯Detectデッキ内(ヘッド切替のRF途切れ)効果は正確。タップ0に乗らない
Y/C分離・ドットクロール・クロスカラーDecode受像機✓ 一致方式差からの自然発生
バーストロックTrack→Decode受像機のバーストゲートAFPC✓ 一致受信信号からライン毎に実測
同期分離+水平AFCTrack→Flywheel→Display受像機の同期系✓ 一致実測+フライホイール。弱電界の乱れ・ドロップアウト後の引きずりが創発
カラーキラー/位相ドリフトTrack→Decode受像機(バースト検出で自動)✓ 一致実測バースト振幅で自動判定・自走ドリフト。手動モードも残置
垂直同期(V-HOLD)Track→VFlywheel→Display受像機の垂直発振器✓ 一致VBIの積分器充電でトリガする片側性の発振器。回転・非対称な外れ方・再ロックが創発。手動の垂直ロールは廃止
水平同期(H-HOLD)Flywheel→Display受像機の水平発振器✓ 一致寄り→蛇行(安定限界)→位相スリップ(斜めコピー)が一つの漸化式から
AGC・ハンチングTrack→Agc→Decode受像機のキー付きAGC✓ 一致同期先端を実測する二次ループ。ドロップアウト後の白筋・信号消失時の暗転・復帰時の白飛びが創発
消磁・マスク・残光・曲率・電源Displayブラウン管✓ 一致

05既知の近似

受像機側は一通り実装済みです。同期分離器・水平AFC・バーストゲートAFPC・自動カラーキラー、 垂直同期のトリガ式発振器、キー付きAGCループが Track / Flywheel / VFlywheel / Agc の4パスとして入り、 かつて「代役」だったバーストロック、「専用コード」だったドロップアウト後の乱れ、「乱数」だったAGCハンチング、 「表示側のアニメーション」だった垂直ロールは、すべて実測からの創発に置き換わりました。

残る近似は、いずれも見た目と送出信号の正しさには影響しない範囲です。