Tweet


* octave で画像処理 - HD か SD か [#w7ec50f8]

やっとこさスカパー!HD に移行でき,HD 放送を楽しんでいる日々である.
が,いろいろググってみると
> 最近作られた番組でも HD チャンネルで SD 画質で放送されているものが多い

らしい.
blu-ray とか売ることを考えて,テレビ放送では敢えて画質を落としているのだろう.

ググっている過程で,[http://anibin.blogspot.com/ あに瓶]というサイトを見つけた.
色んなアニメ番組の画面をキャプチャして2次元 FFT にかけていて,なかなか興味深い.

というわけで,似たようなことを octave でもやってみる.

** sfline [#w52fa3e4]

2次元 FFT だけなら手持ちの関数だけでもできるのだけど,空間周波数領域の画像を読みやすくするために,こんな関数を作ってみた.

空間周波数画像で,指定された縦解像度(=走査線数)のナイキスト周波数に横線を入れる関数.
つかいかたは
 y = sfline ( x, 1, 480 );

- 最初の引数は空間周波数画像
-- 上下左右を入れ替える前のもの
- 2ばんめの引数は線を入れるプレーン
-- 1 なら赤,2 なら緑,3 なら青
- 3ばんめの引数は解像度

 function y = sfline ( x, p, v )
   if ndims(x) != 3 
     return;
   endif
 
   y = x;
   v1 = floor ( ( v + 1 )/2.0 + 0.5 );
   v2 = rows( y ) - v1 + 1;
 
   y ( v1, :, p ) = ones(1, columns(y));
   y ( v2, :, p ) = ones(1, columns(y));
 endfunction

こんな感じ.

** では解析 [#gcbcb621]
 octave:135> [ x m a ] = imread ( '/home/imai/mpegconv/kanon.bmp' );    # キャプチャ画像を読み込んで
 octave:136> x = double ( x ) / 255.0;                                  # 型変換
 octave:137> y = fft2 ( x );                                            # 2次元 FFT にかけて
 octave:138> yn = abs(y)/max(max(max(abs(y))));                         # 最大値で正規化
 octave:139> yn = sfline ( yn, 1, 480 );                                # 走査線 480 本のところに赤線
 octave:140> yn = sfline ( yn, 2, 720 );                                # 走査線 720 本のところに緑線
 octave:141> ys = swap2 ( yn );                                         # 上下左右を入れ替えて,
                                                                        # 中心が DC 成分を表すようにする
 octave:142> imshow ( ys * 50000 );                                     # 空間周波数領域の表示
 octave:143> imwrite ( ys * 50000, 'kanon.png' );                       # 空間周波数領域画像の保存

読み込ませた元画像は 1920 x 1080 のサイズのもので,2次元 FFT をかけたものも 1920 x 1080 のサイズとなる.
しかし,空間周波数領域の上端,右端は,それぞれ1画素単位のしましまである.
このままでは横軸と縦軸のスケールが異なることになる.
つまり,1920 x 1080 の空間周波数領域画像は,縦横比 1:1 に直してやれば,横軸と縦軸の原点からの距離と解像度が一致することになる.

もちろん,octave 上で処理してもいいんだけど(さんざんやってきましたね),今回は手抜きして,外部コマンドを利用.
 $ pngtopnm kanon.png | pnmscale -xsize 1080 -ysize 1080 | cjpeg -quality 100 > kanon.jpg

** Kanon ( AT-X ) [#ve59c435]

#ref(kanon.jpg,right,around,25%)

AT-X で放送されている Kanon.
放送当時は「HD マスター」ということで話題になったらしい.
スペクトルは赤のラインの内側に集まっており,SD 画質であることがわかる.

評判をぐぐってみると,「実はコンポジットなのではないか」という話もある.
見てみると,実際に色ずれが起きてるシーンもあり,その推測は正しいようだ.
#clear

** WORKING!! ( AT-X ) [#n5d21bac]

#ref(working.jpg,right,around,25%)

これも SD 相当.
#clear

** 迷い猫オーバーラン! ( アニマックス ) [#sf034a4b]

#ref(mayoi.jpg,right,around,25%)
ちょっと例が良くなかったようだけど,よーく見ると SD の赤線を越えたスペクトルが存在する.
走査線 720 本あたりなのかなぁ.
#clear

** デュラララ!! ( アニマックス ) [#ecd82441]
#ref(dura.jpg,right,around,25%)
こちらは明らかに SD を越えるスペクトルがあることが分かる.
#clear

** 閃光のナイトレイド ( AT-X ) [#qb1f5436]
#ref(senkou.jpg,right,around,25%)
これも SD を越えてますね.
#clear

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS