Last update: Saturday, 04-Jun-2011 17:29:12 JST |
_ 塩兄のクロスフェードのコードを見ていて、ふと思い出したのでメモから写しておく。Photoshopの「下のレイヤーと統合」に相当する、RGBA+RGBA→RGBAなビットマップ合成アルゴリズム*1。
*1: RGBA=ARGBともいう。「アルファ付きRGB」の意味。
// Cs: 上になる画像のカラー(RGB) // As: 上になる画像のアルファ // Cd: 下になる画像のカラー(RGB) // Ad: 下になる画像のアルファ // Cr: 合成結果画像のカラー(RGB) // Ar: 合成結果画像のアルファ // すべて0.0〜1.0で扱う if ( As + Ad == 0.0 ) { // 別扱いしないと0除算エラーが出る Ar = 0.0; Cr = 0.0; } else { Ar = Ad + ( ( 1 - Ad ) * As ); Cr = ( ( Cd * Ad * ( 1 - As ) ) + ( Cs * As ) ) / Ar; }
_ GIMPのレイヤ合成とか吉里吉里のレイヤ合成とかでコードは探せばあるはずだが、ちょっと検索した限りではアルゴリズムは見つからなかったので、ちょっとは書いておく価値はあるかな・・・と思ったら、やねうらお氏の「スーパープログラマーへの道」第CB回の文章部(コードではない)で発見。「PhotoShopのレイヤ合成は、エネルギー分配に基づくもので〜」以下の部分ね。\
_
なお、クロスフェードに使う場合は「Adへの倍率を1.0→0.0へ変化させながら、Asへの倍率を0.0→1.0へ変化」させることになる。
_ とりあえず、ノートPCに入れてみた。
AV REVIEW 2008年 01月号 |
_ ベンチ内容は動画解像度に関わるものが多い。コントラスト・グラデーション・発色も見られるが、測定用の指標があるわけではなく主観評価用。さすがに画質はよい。
_ ということで、「あーこりゃ液晶だと辛いだろうなー」と思いながらブラウン管で観る(笑)。もちろんブラウン管だと「動画解像度」は静止画解像度とまったく同じなので、このベンチの意味はない。ちなみにあとでLCD2490WUXiで見たら悲惨というか無残というか(苦笑)。
_
なお、うちの32ZP57だと、マスクピッチの影響で静止画でも横方向解像度は500〜550本がせいぜい。つまりドットで換算すれば横方向は1000-1100pxくらいということ。ただ固定画素じゃないからこの程度でも十分といえば十分。どーせ横方向は圧縮でUV解像度が半分になってるし、1920←→1440の変換が行われて本来の解像度が失われていたりすることも多々あるので。
_ いつごろからか、TMPGEnc4.2*1で作成したH.264/AVC映像のシークがPS3でうまくいかなくなっていることに気づく。なんかときどき他の環境でも正常に読み込めないちう話もあって、何か変だと思うのだがよく理由がわからんということだったんだが。
_ ふと、mp4boxがVirtualDubと同じくストリーム補正に使えるんじゃないかと思いついて試してみた・・・バッチリだ!
_ ということで、「mp4box -add infile.mp4 -new outfile.mp4」とすることで、動作の怪しいMPEG4 AVC映像ファイルがまともになる可能性があることを覚えておくとよいかも・・・ちうか手順書も暇をみて更新しておくかな。
*1: 4.3以降(現行の4.4.1.237も含む)は、映像と音声の同期がとれないMPEG4ファイルを吐くバグがいるので注意。4.3でMPEG4エンコーダを変更した際に何かやらかしたらしいのだが。
メールはこちらへ...[後藤浩昭 / Hiroaki GOTO / GORRY / gorry@hauN.org]