2011年3月26日土曜日

30歳の保健体育 番宣


局:BS11
放送日:2011/03/25
評価:HV1280-i(SPICE)


またまた縞HVの番宣。60iが基本のテレビにおいて絶滅することはないだろうけど増加傾向の縞縞映像。荒れの目立ちやすいSPICE縞で、元が鮮明なだけに線もぼろぼろになってしまっている。

ノイズ効果もなくコントラストも十分のすっきり画質なのに縞で台無しといった感じ。本放送では解消、というパターンもあるので、まあ期待しないで待っておこう。



縞解消後の分布。BS11ボケの影響と思われる縦長楕円分布だけど、縦の伸びはかなりよい。MXでは横も同じくらい伸びが大きな円分布になりそう、といっても縞解消した状態であればの話。

縞の状態から縦720からの拡大と判断できるのでジャギなどの特徴を見るまでもなくHV1280。

作画は少し簡素な感じはするものの、縞さえなければ線もなめらかで上質なHV映像なので、本放送も縞HVであれば補正して見ないともったいないかも?

とある魔術の禁書目録II 23話


局:TOKYO MX
放送日:2011/03/25
評価:HV1280

本編でなく文字のあるEDのとあるフレームの分布。奇妙な分布通り正常な状態ではなく、一見するとフィールドが逆転したような縞が見える。この問題が話題になったのはちょっと前だけど、片フィールドの位置が1ラインずれるという謎な挙動がたまに発生している。EDだけでなく本編中にもある。

この状態になると局ロゴも含めてずれが発生することから、エンコードの直前辺りで発生するトラブルだろうけど、MXの場合L字で局ロゴが変化するくらいのなので、エンコーダが絡む問題かどうか微妙なところ?いずれにしてもMX局内での問題なのは間違いない。

普通に見ていても必ず気付くとも限らずとても厄介な問題とはいえ、気付かないような場所であれば縞問題同様無視してもよさそう?だけどEDのように鮮明な文字があると気になる環境も多いだろう。



位置調整した時の分布。巨大なのはフルHD相当で入った文字を含むフレームのためで絵はいつも通りのボケHV。

適切な補正か検証していないけれどこの実験では以下を使用。

function mxshiftb_f(clip c) {
c = c.sf()
interleave(c.selectodd().
\ pointresize(c.width, c.height,
\ 0, -1, c.width, c.height),
\ c.selecteven()).weave()
}
function mxshiftb(clip c, int s, int e) {
c.ApplyRange(s, e, "mxshiftb_f")
}

mxshiftb(異常開始フレーム, 異常終了フレーム)

DeLetterL 0.8

リニューアル(test)版を公開しました。

前回の説明通り、新しい手法も追加していますが、画質にこだわらなければdeletterlの方が使いやすいので残しています。使い方は変わりませんが内部処理含め大幅に変更しています。個々の処理の説明はavsiファイル中に記載。長名のfunctionも増えたので表記上はDeLetterLと部分的に大文字にしていますが使う時は小文字でも大文字でも構いません。

説明として適切かどうか怪しいけれど録画している人も多そうなサンプルとして、3/20TBS放送のSTAR DRIVER 輝きのタクトのうち、次回予告~青の祓魔師番宣部分で説明します。

ヴァンガードのCM明け予告開始のフレームが0になるようにTrim()した状態を前提にしていますので、予告の最初のフレームが1234であればTrim(1234, 0)として、予告の最初のフレームがクリップの最初のフレームになるようにして下さい。

この条件でL字(TBSでは額縁状態なのでL字っぽい口字)のフィールド位置を確認すると、

0 予告開始
31 L字が出現
72 L字最大直前のフィールド
73 L字最大化、以降同じ
1084 L字継続のまま青の祓魔師開始
1917 L字最大の最後のフィールド
1918 L字縮小開始
1959 L字の残る最後のフィールド
1960 L字消滅、以降通常
1976 番宣最後のフィールド
1977 CMスタート

ShowFieldNumber()で数字を確認する時、L字の迫り出しがカクカクする場合はbottomfirstになっている可能性がありますのでAssumeTFF()などでtopfirstにして下さい。

deletterlでの補正

L字の開始フィールドは31, 終了フィールドは1959なので

DeLetterL(31, 1959, "tbs")

これで絵としては元のサイズに戻っていますが、tbsの場合周囲が欠けているため緑額縁が残ります。
これ以降はインタレ解除前提になりますので、普段使う方法でプログレ化して下さい。
失われた部分はどうにもならないので、

A案:素直に周囲を削って絵を拡大してしまう

CropDeLetterL(left=32, top=12, right=32, bottom=42)

サイズを維持するため少し拡大されます。フレーム範囲指定も可能。複数回のリサイズを避け、cropと同時に別のサイズにする場合は

cropdeletterl(left=32, top=12, right=32, bottom=42, width=1280, height=720)

のようにwidth, heightを指定してします。ただし複数箇所になる場合は注意が必要。指定している数値は例であって、推奨値ではありません。

B案:削る替わりに周囲をモーションぼかし(不正確な表現)っぽく流して誤魔化す

blurdeletterl(left=32, top=12, right=32, bottom=42)


処理イメージは(みどり)にあります。欠けていた部分を残っている絵の隅の色で埋めて誤魔化します。大抵は気持ち悪い映像になってしまうけれど絵によっては気にならないこともあるのでMXの短時間L字では代替できるパターンもありそう。

C案:色が気になるので、別の色で塗り替える

borderdeletterl(left=32, top=12, right=32, bottom=42, color=$000000)

欠けている部分を指定色で塗ってしまう。視聴環境によっては微妙幅の額は気にならないこともありそう?というこれも強引な方法。

ほとんどの場合素直に削ってしまうのが無難だけど、遊び的な意味で追加してみた処理。


フィールド単位の拡大を避けた補正


次にフィールド単位のリサイズの劣化を抑える少し面倒な手法を説明。

まずL字になっていない部分をL字化して全体をL字状態に統一します。全体といってもMXの部分L字のような場合はカット境界で分けるのが無難かも。追記 (より余分な劣化を減らすために、L字のない部分は別処理にした方が有利です・・が、範囲ごとに処理を変えるのも面倒になので、こだわりと手間のバランスで判断した方がよさそう)

最初に、最大L字なっていない範囲を最大L字化します。この指定がややこしいので意図を理解しないと分かりにくいけれど、上のフィールド位置でいうと0~72のフィールドがL字が皆無または、迫り出しの途中で最大になっていない部分になるので新しい関数FullLetterLにこの範囲を指定します。

FullLetterL(0, 72, "tbs", "in")

同様にL字終了部分では、1918~1976が最大L字になっていないので

FullLetterL(1918, 1976, "tbs", "out")

"in"はL字開始、"out"はL字終了を意味し省略時は"in"。最大L字になっていない範囲を指定するというわかりにくい指定になりますので注意して下さい。DeLetterLで指定するL字の開始位置や終了位置は使いません。

この2行で予告番宣全体がL字処理されたような状態になりますので、そのサイズのままインタレ解除し、その後で余分なところを切り取ります。

FullLetterL(0, 72, "tbs", "in")
FullLetterL(1918, 1976, "tbs", "out")

#ここで適当なインタレ解除
FullDeLetterL(0, 791, "tbs")


FullDeletterLは指定範囲全フレームが最大L字になっていることを前提に局設定に従ってフレームで拡大することでL字解除します。といっても欠け問題は対処していませんのでtbsの場合はDeLetterLと同様額縁状態になります。この場合もCropDeLetterLなどの後処理を行ないます。

DeLetterLとFullLetterl + fulldeletterlの組み合わせはどちらも似たような状態になりますが、後者はフィールド単位の拡大を回避しているため、劣化の少ない映像になります。

ここまで説明で気になる通り、FullLetterL + FullDeLetterLで処理した後にさらにCropDeLetterLでリサイズするのは軽微とはいえ劣化するので最初からFullLetterLから直接CropDeLetterLしてしまった方が効率的で画質面でも有利になります。

FullLetterL(0, 72, "tbs", "in")
FullLetterL(1918, 1976, "tbs", "out")

#ここで適当なインタレ解除
CropDeLetterL(0, 791, left=196, top=22, right=40, bottom=160)

どこまで削ってよいかは個々の判断になりますので、局指定の初期値はありません。適当に気にならない数字を決めて下さい。場合によっては少し工夫も必要になるので、無駄があってもFullLetterlL + FullDeLetterlL + CropDeLetterLの方がわかりやすいかもしれません。

テレ東など欠けのほとんど局の場合は、FullLetterLとFullDeLetterLでL字に関する処理は完了するので、通常CropDeLetterLなどを使う必要はありません。

MXやフジテレビではロゴ含めてリサイズされているため、FullLetterLを使う場合、対象個所はL字状態のままロゴ削除した方がよさそう。