自動フィールドシフト インタレース解除プラグイン ガイド

1.はじめに

自動フィールドシフト(afs.auf)はAviUtl用のインタレース解除プラグインです。
AviUtl0.99で動作を確認していますが、0.98dなど以前のバージョンのAviUtlでも 動作報告をいただいています。
本テキストでは自動フィールドシフトの特徴、処理、機能について説明します。

2.自動フィールドシフトの特徴

地上波放送をPCで録画すると、動きのある画像に横縞が入っているデータが 作成されることがあります。
このような画像はインタレース画像と呼ばれます。
インタレース(interlace)とは交互に織り交ぜる、という意味で、PC録画で 得られる横縞の入った画像は、2枚の画像の組み合わせになっています。

地上波放送は、低解像度で微妙にずれた画像を1/60秒毎に送ってきます。
PCではこの画像を2枚組み合わせて、1/30秒おきに1枚の高解像度画像として 保存します。
このため、組み合わせた2枚の画像の内容に差があると、その部分が縞に見えます。
地上波放送の画像とPC録画の画像を区別するため、地上波放送の1/60秒単位の 画像を「フィールド」、
PC録画の1/30秒単位の画像を「フレーム」と呼びます。

自動フィールドシフトは、フレームのフィールド組み合わせをずらす (シフトする)ことで、縞の発生を抑えるプラグインです。
フィールドをシフトしたフレームは、中に入っているフィールドが元々表示 されていたタイミングで再生される必要があります。
しかし、フィールドは1/60秒単位の画像なので、PC録画で作られた1/30秒単位の 動画像と同じデータ形式では、
本来の表示タイミングが再現できません。
自動フィールドシフトに対応した出力プラグインでデータを保存すれば、 本来の表示タイミングで再生できる動画像を作成することができます。
また、自動フィールドシフトには、フィールドシフトだけでは無くならない 横縞模様を取り除くための各種画像処理が搭載されています。

自動フィールドシフトの処理はAviUtlで60fps読み込みを行って偶数か奇数の どちらかのフレームを自動的に間引くのに近いものです。 作成されるデータも60fps精度になります。
60fps化では、ソースに含まれている映像が24fpsか30fpsかによって処理を 変える必要がありません。自動フィールドシフトも同様に、色々なフレームレート の素材で作成された映像を同一の処理でプログレッシブ化できます。

縦1ライン/フィールドの動きなど、縞模様が検出しにくい場合に対応するため、 自動フィールドシフトv6.2から新しい判定方式が追加されました。
新方式では周囲5フレームの動き解析によりテレシネパターンを推定し、 現在のフレームをシフトするべきか判定します。
この方式は縞模様の検出量が少ない場合に、自動的に使用されます。

また、自動フィールドシフトv7.0から、AviUtlの標準24fps出力に 自動フィールドシフトのタイミング処理が反映されるようになりました。

3.自動フィールドシフトの処理

2パスの解析を行い、3パス目で画面を合成します。
(以下のPass1-3は自動フィールドシフト内部の処理を順を追って 説明したもので、ユーザが意識する必要はありません。)

[Pass1] フィールド組み合わせを決定

Pass1に関係する設定値:
上、下、左、右、切替点、判定比、縞(シフト)、フィールドシフト

[Pass2] 解除のための詳細な画像解析

Pass2に関係する設定値:
縞(解除)、Y動き、C動き

[Pass3] インタレース解除済み画面の合成

Pass3に関係する設定値:
解除Lv、シーンチェンジ検出(解除Lv1)

[その他]

間引き

フィールドをシフトすると表示タイミングが不均一になるので、入力映像の 1フレームより表示期間が短いフレームが発生します。 このようなデータの再生は重たいので、表示期間の短いフレームを間引く ことで再生しやすいデータにできます。
この設定は、フィールドシフトをonにした上で、対応した出力プラグインを 使用した場合にのみ効果があります。

スムージング

自動フィールドシフトは、ソース映像に同期してフィールド単位で 表示タイミングを決めます。 このため、表示期間がソース2フィールドのフレームとソース3フィールドの フレームが混在したデータが作成されます。
このようなデータはソース映像の表示タイミングには忠実なのですが、 PCでの再生に問題がある場合があります。 PCの動画再生では、1/60秒精度の制御ができなかったり、再生処理の負荷が 変動すると滑らかに再生できなくなる場合が多くあります。
スムージングは表示期間ソース2フィールドと3フィールドのフレームが 隣接している時、両方の表示期間をソース2.5フィールドに平均化します。 これによって、正確な再生ができない環境でも比較的滑らかに 再生できるデータを作成します。
この設定は、「フィールドシフト」と「間引き」をonにした上で、 対応した出力プラグインを使用した場合にのみ効果があります。

24fps化

映画やアニメーションなどをテレビで放送した映像では、出力フレームレートを 1/24秒に固定すると再生しやすいデータを作成できる場合があります。 このオプションをonにすると、フレームの表示タイミングがソースの1.25倍の 周期に固定されます。
この設定は、「フィールドシフト」と「間引き」をonにした上で、 対応した出力プラグインを使用した場合にのみ効果があります。
なお、24fps化によって映像と音声の同期に±ソース2フィールドの誤差が生じます。 部分的に24fps化して出力する場合、誤差の影響で24fps部分の直後のフレームが 失われる場合があります。

※この機能は、出力プラグインでのタイミング調整でフレーム間隔を1/24秒に 固定するだけのもので、AviUtlの「フレームレートの変更」とは関係ありません。

編集モード

シフト判定の判定領域や結果を確認できます。
判定領域は白い枠線で表示し、判定領域の左上の4つの枠にシフト判定結果を表示します。
上段(赤)が縞模様による判定、下段(青)がテレシネパターンによる判定を示します。
そのフレームで選択されなかった方式の結果には「×」印がつき、手動編集によって 反転しているフレームの枠には縦線が入ります。
また、編集モード時はプレビューが解除Lv0になるので、横縞模様を確認しながら手動編集できます。
出力時には、自動的に編集モードは無効になります。

調整モード

縞模様と動きの判定結果を確認できます。
動きを検出したピクセルを青、縞模様を検出したピクセルを灰色、 動きと縞模様を両方検出したピクセルを部分を水色で表示します。
表示される判定結果は画面合成用のもので、関係する設定値は 縞(解除)、Y動き、C動きになります。
なお、縞(解除)、Y動き、C動きの値を縞(シフト)と同じにすると、 シフト判定用の検出結果とほぼ同じものが確認できます。
※ 縞、動き検出ともシフト判定用と画面合成用は若干アルゴリズムが異なるので、 完全に同じではありません。
解除Lvが2以上の時は判定領域フィルタがかかっています。
出力時には、自動的に調整モードは無効になります。

ログ保存、再生

ログ保存をonにすると、出力時に自動フィールドシフトの判定ログを保存します。
ログのファイル名は「出力ファイル名.afs」になります。
同梱のコンバーターでログを解析することにより、出力結果のより詳細な情報が得られます。
また、ログ再生機能と組み合わせることにより、中間ファイルを作って2段階で出力することが 可能になります。
まず前半では、自動フィールドシフトでログ保存をon、フレームレートの変更を「なし」に 設定して、AviUtlの標準AVI出力から中間ファイルを出力します。
後半では、中間ファイルをAviUtlに読み込んで自動フィールドシフトのログ再生をonにします。
中間ファイル作成時の判定結果が有効になるので、出力プラグインや24fps出力などを行います。

YUY2補間(ランチョス2法)

AviUtlでYUY2読み込みを行う場合、YUY2形式は色差信号の横解像度が半分なので、 AviUtlが補間を行って内部表現へ変換します。
YUY2補間をonにすると、この補間をランチョス2法でやり直します。
特にAviUtl0.99はYUY2補間の品質が非常に悪いので、YUY2補間のやり直しが効果的です。

4.表示タイミングの例

例1)
ソース 60field/sec
A1A2B1B2B3C1C2D1D2D3

自動フィールドシフト インタレース解除 30frame/sec (>X> シフトされたフレーム)
A1+2B1+2>B2+3>>C1+2>D2+3

対応出力プラグイン 60frame/sec (* Nullフレーム)
A1+2*B1+2B2+3*C1+2*D2+3**

間引きon 60frame/sec
A1+2*B2+3**C1+2*D2+3**

スムージングon 120frame/sec
A1+2**** B2+3**** C1+2**** D2+3****

例2)
ソース 60field/sec
A1A2B1B2B3C1C2C3

インタレース解除 30frame/sec
A1+2B1+2>B2+3>C2+3

対応出力プラグイン 60frame/sec
A1+2*B1+2B2+3*C2+3**

間引きon 60frame/sec
A1+2*B2+3**C2+3**

スムージングon 120frame/sec
A1+2**** B2+3***** C2+3****

以上の表示タイミングは出力プラグインのafs_client.hで計算されています。

5.自動フィールドシフトの縞解除機能

自動フィールドシフトにはフィールドシフトだけでは消えなかった横縞模様を 取り除く画像処理機能が搭載されています。
解除機能は設定の解除Lvで0から5まで選択でき、Lv0は解除なし、Lv1~Lv5は 数字が大きいほど残像が少なくなります。

[解除Lv0] 解除なし

横縞模様を解除しません。
フィールドシフトで組み合わされた新しいフレームがそのまま出力になります。
解除Lv0に関係する設定値:
なし

[解除Lv1] フィールド三重化

フィールドシフトで組み合わされた新しいフレームに、さらに1つ前の フィールドを残像として足しこみます。
動きによる縞模様は完全に残像に変換されます。
古いブラウン管でテレビを見る感覚に近い画面になります。

シーンチェンジ検出をonにすると、以下の条件で1つ前のフィールドを 足しこまず、フレーム内で二重化します。

1つ前のフィールドを取り込むため、フィールドシフトoffで使うのが 望ましい解除方式です。

解除Lv1に関係する設定値:
縞(解除)、Y動き、C動き、シーンチェンジ検出(解除Lv1)

[解除Lv2] 縞検出二重化

フレーム内で縞模様を検出して、縞の部分を平均化して残像に変えます。
映画やアニメーションなど、フィールド単位の動きが少ない映像に向いています。
解除Lv2に関係する設定値:
縞(解除)

[解除Lv3] 動き検出二重化

前のフレームと比較をして、動き(色の変化)があった部分だけ縞の平均化を 行います。
解除Lv2だと平均化されてしまう静止した横縞模様を保存できます。
静止したテロップの細かい文字や、アニメーションなどの枠線付きの静止画の 輪郭をつぶしたくない場合に使用してください。
動き検出の設定値を上げすぎると縞の解除漏れが残る、などの副作用が ありますので注意してください。

解除Lv3に関係する設定値:
縞(解除)、Y動き、C動き

[解除Lv4] 動き検出補間

前のフレームと比較をして動きがあった部分は、片方のフィールドを潰して 残す方のフィールドの画像で補間します。
残像はなくなりますが、この解除がかかった部分は縦の解像度が半分になります。
解除したいインタレース縞以外の場所で縞模様が検出されないように、 解除する対象の画像に合わせて各種閾値を慎重に設定する必要があります。

解除Lv4に関係する設定値:
縞(解除)、Y動き、C動き

[解除Lv5] 斜め線補正補間

解除Lv4の補間に、斜め線の補正機能を加えたものです。
斜めのエッジを滑らかに補間しますが、複雑な画像を解除するとノイズが 発生することがあります。

解除Lv5に関係する設定値:
縞(解除)、Y動き、C動き

6.自動フィールドシフトの24fps出力

自動フィールドシフトver7.0から、AviUtlの標準24fps出力に 自動フィールドシフトの判定アルゴリズムを使うようになりました。
使い方、注意点は以下の通りです。

「インターレースの解除」の設定

「フレームレートの変更」の設定

使用できる出力先

注意点

7.更新履歴

2004/10/24 自動フィールドシフト ver.7.1対応
2004/10/21 自動フィールドシフト ver.7.0対応
2004/10/18 自動フィールドシフト ver.6.3対応
2004/10/15 自動フィールドシフト ver.6.2対応
2004/ 8/ 7 自動フィールドシフト ver.5.1対応
2004/ 8/ 4 自動フィールドシフト ver.5.0対応
2004/ 7/20 自動フィールドシフト ver.4.6対応
2004/ 7/19 自動フィールドシフト ver.4.5a対応
解除Lv説明文の誤字修正
2004/ 7/18 自動フィールドシフト ver.4.5対応
初版