お知らせ: にーやんのブログ 2 に移転しました。こちらのブログは、2009 年末までに削除します。

スポンサード リンク

Overlay フィルタの最適化

possible Overlay() optimisation? - Doom9's Forum より sh0dan 氏の投稿。少し古いネタですが、整理していたら出てきたのでメモ。

前提

  • 質問者の Mug Funky 氏は、Overlay がすべてのフレームで画像(PNG)全部をレンダリングして遅いので、これを最適化する方法を尋ねています。
  • Overlay フィルタの内部形式は、YUV 4:4:4(YV24)。入力クリップはいったんこの形式に変換されます。
  • AviSynth v2.6(2008-03-19 現在、公式なリリースはありません)から YV24 がサポートされる予定です。

sh0dan 氏の回答

possible Overlay() optimisation? - Doom9's Forum

Well - overlay converts the image to yv24 before it applies clipping, but it will only convert the mask, if any part of the image is visible.(Overlay はクリッピングを適用する前にその画像を YV24 に変換します。しかし、もしその画像のどの部分も見えているのなら、マスクのみを変換します。)

Convert your images to YV12. The YV12 -> YV24 is much faster - especially for the mask.(画像を YV12 に変換してください。YV12 -> YV24 はずっと高速です - とりわけマスクに関しては。)

If you need to maintain chroma, use v2.6, as you can use YV24 natively.(もし色差を保持する必要があるのなら、YV24 をネイティブに使用できる v2.6 を使ってください。)

まとめ

  • v2.5x では、Overlay に渡す前に YV12 に変換しておくと、より高速になる。
  • v2.6 では YV24 にするという選択肢も。

といった感じでしょうか。

リサイズフィルタのクロップ機能とリサイズ+クロップの違い

Is there a chromatic aberration filter? - Doom9's Forum より IanB 氏の投稿。少し古いネタですが、整理していたら出てきたのでメモ。

エッジの扱い

Is there a chromatic aberration filter? - Doom9's Forum

...resize(1440,1080,1,1,-1,-1)

versus(と)

...resize(1442,1082).crop(1,1,-1,-1)

Are not exactly the same. The boundary conditions in the resizer are different. In the first case the edge row of pixels are not used in the output image, in the second they are. A very minor point.(は、正確には同じではありません。リサイザでの境界線の状態が異なります。最初のケースではピクセルのエッジの列は出力画像では使用されません。2 番目のケースでは使用されます。非常に些細なことではありますが。)

データ型の違い

Is there a chromatic aberration filter? - Doom9's Forum

Also the cropping factors on the resizers are floating point numbers so you can get subpixel adjustment if required.(またリサイザのクロッピング係数は浮動小数点数です。このため、必要ならサブピクセル補正が得られます。)

その他(マニュアルより)

  • エッジの近くにノイズがあるような場合、リサイズフィルタのクロップ機能ではこれを拡大させる恐れがある。
  • 処理速度にも若干の差がある。

複数行の文字列を Subtitle フィルタ形式に変換する AvsP 用マクロ

前回、JavaScript を使って複数行の文字列を Subtitle フィルタ形式に変換するページを紹介しました。後になって AvsP のマクロを使っても変換できるのではないかと気づいたので、試しに作ってみました。AvsP ユーザーなら、こちらの方が便利かもしれません。

複数行の文字列をSubtitle フィルタ向けの 1 行文字列に変換する AvsP マクロ(ZIP 形式。404 バイト)

まず以下の手順でインストールします:

  1. ダウンロードしたファイルを解凍。
  2. 1 で生成されたフォルダの中にある convert2multiline.py を AvsP の macros フォルダにコピー。

AvsP を(再)起動すると「マクロ(Macros)」メニューに convert2multiline という項目が追加されていると思います。複数行の文字列を選択した状態でマクロを実行すると、Subtitle で利用可能な形式に変換された文字列に置換されます。

下に手順を解説した動画を貼っておきますので、そちらも参考にしてください。

動画による解説

動画のページ: zoome動画: AvsPマクロで複数行文字列をSubtitle用に変換 - niiyan X zoome

関連記事

複数行の文字列を Subtitle フィルタ形式に変換する JavaScript

Project N: 025 - Subtitle フィルタの複数行サポート(AviSynth v2.57 以降)で、AviSynth 2.5.7 から Subtitle で複数行の文字列がサポートされたことは紹介しましたが。しかし行数が増えると、一々 \n を書くのが面倒に感じられます。そこで、JavaScript (jQuery)を使ってブラウザ上で簡単に変換できるページを作成しました(動作には、ブラウザの設定で JavaScript を有効にする必要があります)。

複数行の文字列をSubtitle フィルタ向けの 1 行文字列に変換する

「変換前の文字列」欄に複数行の文字列を入力して「変換」ボタンをクリックすると、「変換済みの文字列」欄に Subtitle で利用可能な形式に変換された文字列が表示されます。あとは、それをコピペして使ってください。

【2008-03-10 追記】
AvsP マクロ版を公開しました。複数行の文字列を Subtitle フィルタ形式に変換する AvsP 用マクロを参照してください。

関連記事

Project N: 025 - Subtitle フィルタの複数行サポート(AviSynth v2.57 以降)

AviSynth 2.5.7 から、Subtitle フィルタにおいて複数行の文字列の表示が可能になっています。これまで tategaki というユーザー定義関数を作って、半ば無理矢理、縦書きを実現していましたが、もうその必要もなくなりました。

Subtitle フィルタで複数行の文字列を表示するためには、具体的に次の 2 つの条件を満たす必要があります:

  1. lsp パラメータを明示する。
  2. 文字列中の改行したい箇所に \n (バックスラッシュ+n。日本語環境では、円記号+n(ともに半角))を挿入する。

これで \n の部分で改行されるようになります。実際に試してみましょう:

BlankClip(width=320, height=240)
Subtitle("Line 1\nLine 2\n\nLine 4", lsp=0)

Subtilteフィルタの複数行のテスト

3 行目は空なので、空行(改行のみ)になっています。

これまで tategaki という自作の関数で実現していたものを、2.5.7 以降の Subtitle フィルタに置き換えるとこのようになります。

# 固定値の指定
font = "Courier NEW" # フォント
font_size = 18 # フォントのサイズ
font_color = $6FE47A # フォントの色
halo_color = $11B301 # 文字の縁の色
lsp = 0 # lsp パラメータ
# 背景
BlankClip(width=320, height=240)
# AviSynth 2.57 以降
Subtitle("A\nB\nC\nD\nE\n", 4,0, 0,0, font, font_size, font_color, halo_color, lsp=lsp)

Subtilteフィルタの複数行のテスト2

このままでは、少し文字と文字との縦の間隔が空いているように見えます。このようなときは、lsp パラメータの値を変更することで行間のスペースを調整することが可能です(lsp は line spacing に由来)。たとえば lsp = -24 にすると、このようになります:

Subtilteフィルタの複数行のテスト3

逆に lsp の値を大きくすると、行間が広くなります。

なお、Subtitle フィルタや lsp パラメータの詳細は、マニュアルを参考にしてください。AviSynth WikiSubtitle フィルタのページは古いままなので、複数行に関する説明はありません(2008-03-06 現在。後日、新しい訳に差し替える予定)。

関連記事

Page 2 of 28: 1 2 3 4 5 6 7 8 9 »