うえぽんSW局

古いタイプの日記ブログです。気まぐれに更新してます。

2012年01月

 色変換プラグインの「補間なし平均」をver0.3.0に更新しました。
 いつもの置き場所にあります。

 AviUtl プラグイン フィルタ by うえぽん

 更新内容は
 ・AviUtlのver0.99k2でYC48の色変換もするようになったので、それにならってYC48に対応
 ・メモリ速度がボトルネックになるようなのでスレッド数を半分にして並行する他の処理へリソースを回すようにした
 の2点です。

 AviUtl内部と入出力の色空間が、異なるなら変換、同じなら無変換、という感じになってます。


 以下は覚え書き。

【bt.601とbt.709の相互変換の覚え書き】
(Y0, U0, V0)を別規格の(Y1, U1, V1)へ変換する式

(a, b, c): 変換元、RGBから輝度Yを求める際の各係数 ※a+b+c=1.0
(p, q, r): 変換先。RGBから輝度Yを求める際の各係数 ※p+q+r=1.0
とすると

Y1 = Y0 +        (r-q*c/b)*(1.0-c)*2.0 * U0 +         (p-q*a/b)*(1.0-a)*2.0 * V0
U1 = (1.0-r+q*c/b)*(1.0-c)/(1.0-r) * U0 + (-p+q*a/b)*(1.0-a)/(1.0-r) * V0
V1 = (-r+q*c/b)*(1.0-c)/(1.0-p) * U0 + (1.0-p+q*a/b)*(1.0-a)/(1.0-p) * V0

例えば、変換元がBT.709で変換先がBT.601なら
(a, b, c) = (0.2126, 0.7152, 0.0722)
(p, q, r) = (0.29891, 0.58661, 0.11448)
を代入する

 で、YC48の色変換をMMXやSSE2の整数演算で行えるようにしたら次のようになりました。
●BT.709→BT.601
yy = Y + ((-15640*U - 27905*V + 65536) >> 17);
uu = U + (( 2456*U + 15038*V + 65536) >> 17);
vv = V + (( 9931*U + 3352*V + 65536) >> 17);

●BT.601→BT.709
yy = Y + ((13441*U + 25705*V + 65536) >> 17);
uu = U + ((-1331*U - 14514*V + 65536) >> 17);
vv = V + ((-9585*U - 2196*V + 65536) >> 17);

 BT.709 → BT.601 → BT.709という計算をYC48の値の範囲(約12bit)で総当りで調べたところ、最大誤差が±1、誤差の割合が約11.624%でした。
 誤差±1ということは幅は3(-1、0、+1の3つの値になるという意味)なので、約12bit→10bitという丸めによって幅は1/4になり、理論上は10bit精度時の誤差は±0になるはずです(※入出力プラグインが行う変換との相性次第)。

 もっと精度にこだわるなら、内部と入出力の色空間を揃えれて無変換にしてください。
このエントリーをはてなブックマークに追加

 ベテルギウスがそろそろ超新星爆発するかもしれないというのがブームらしいです。
 オカルト的には、ホピ族の予言にある『青い星のようなもの』がベテルギウスの超新星爆発であり、そのガンマ線バーストによって2012年に人類が滅びるということになっているんだとか。

 ただし「そろそろ」と言っても「100万年以内」とかそういうレベルとのこと。
 【科学】巨星ベテルギウス、迫る大爆発 青く輝く天体ショー - MSN産経ニュース

 NASAの発表では超新星爆発で地球が滅ぶことはないようです。
 NASAが公式発表「2012年に超新星爆発で地球が滅ぶことはないのでご安心を」 : ギズモード・ジャパン

 というわけで4コマ漫画。

【4コマ】ベテルギウス爆発しろ!
このエントリーをはてなブックマークに追加

 新年あけましておめでとうございます。

【4コマ付】2012年


 2012年はオカルト的には様々な災厄が予想されているようで人類の節目らしいです。
このエントリーをはてなブックマークに追加

↑このページのトップヘ