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.(またリサイザのクロッピング係数は浮動小数点数です。このため、必要ならサブピクセル補正が得られます。)
その他(マニュアルより)
- エッジの近くにノイズがあるような場合、リサイズフィルタのクロップ機能ではこれを拡大させる恐れがある。
- 処理速度にも若干の差がある。
あまびき開発日誌 #29, #30
あまびき開発 29 日目と 30 日目。
29 日目
- あまびきでは Yahoo! Web 検索経由で Amazon.co.jp を検索できるようにしているが、たつをさんの Yasazon - ヤサゾンと思いっきりかぶっていることに今さらながら気づいた。アフィリエイト用のリンク作成という機能もかぶっている。
- キーボードショートカットのヘルプを作成。
30 日目
- 検索結果の最終ページの場合に、最後の商品の後ろに空白を追加して、最後の商品が結果表示欄の一番上まで来るようにした。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #28
あまびき開発 28 日目。
キーボードショートカットの実装
Handling Keyboard Shortcuts in JavaScript の shortcut.js を使ってみることにした。
jQuery プラグインにも、キーボードショートカット用の rikrikrik: shortKeys jQuery plug-inがあるが、Opera と Safari で多少問題があるようなので、とりあえずこちらを採用。
なお shortcut.js では disable_in_input オプションを使えば、入力フォーム欄(input や textarea)にキーボードショートカットが適用されなくなる:
shortcut.add("a", function(){
alert('"A" is clicked!');
},{
'disable_in_input': true
});
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。
あまびき開発日誌 #26, #27
あまびき開発 26 日目と 27 日目。
26 日目
Blueprint ライブラリを試す
秋元@サイボウズラボ・プログラマー・ブログ: Blueprint CSSデザインのためのオープンライブラリで紹介されていた Blueprint という CSS フレームワークを使って index.html とスタイルシートを書き直してみた。
Blueprint を試したのは、The Yahoo! User Interface Library (YUI) よりも幅指定の自由度が高そうなのと、指定の仕方がより直感的だと思ったから。
27 日目
YUI を試す
The Yahoo! User Interface Library (YUI) を試してみる。
YUI には、CSS 関連のライブラリとして、Reset CSS、Fonts CSS、Grids CSS、Base CSS の 4 つがある(version 2.3.0 時点)。
最初の 3 つを全部利用する場合、yui > build > reset-fonts-grids にある reset-fonts-grids.css で一括読み込みでき、なおかつ、個別に読み込むよりもページ読み込みのパフォーマンスがいいらしい。以下に引用:
Yahoo! UI Library: Base CSS
Including the "reset-fonts-grids.css" file will give you more efficient pageload performance as compared to including each of the foundation files separately.
……が、結局 YUI 用に手直しするのに時間がかかりそうだったので、とりあえず YUI の使用は断念。
Blueprint も断念
さらに、前日試した Blueprint を使用した場合にも問題が発生。Blueprint を使用し、かつ、ウィンドウの幅が 960px(Blueprint のデフォルトの幅)より小さかった場合に、ツールチップを表示するときに画面が細かく揺れることに気づく。Blueprint の問題というよりも、ツールチップとの相性的なものなのかもしれない。
結局、あまびき本体に関しては、自前の CSS で行くことにする。Reset CSS とかだけは使うかもしれないが。
この記事は、Amazon.co.jp 商品検索サイト「あまびき」の開発中につけていたメモを、ブログ用にまとめ直したものです。



