Tweet

octave で画像処理 - HD か SD か

やっとこさスカパー!HD に移行でき,HD 放送を楽しんでいる日々である. が,いろいろググってみると

最近作られた番組でも HD チャンネルで SD 画質で放送されているものが多い

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

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

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

sfline

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

こんな感じ.

では解析

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 )

kanon.jpg

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

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

WORKING!! ( AT-X )

working.jpg

これも SD 相当.

迷い猫オーバーラン! ( アニマックス )

mayoi.jpg

ちょっと例が良くなかったようだけど,よーく見ると SD の赤線を越えたスペクトルが存在する. 走査線 720 本あたりなのかなぁ.

デュラララ!! ( アニマックス )

dura.jpg

こちらは明らかに SD を越えるスペクトルがあることが分かる.

閃光のナイトレイド ( AT-X )

senkou.jpg

これも SD を越えてますね.

この日記の iPhone と Android への対応

先日,Android 端末を入手し,いろいろいじっている. 当然 web ブラウザもあり,いろんなサイトを見ている.

で,気がついたことが一つ.

左端にメニューがあるサイトの場合,本文がそれだけ圧迫されてしまうことになり,とても読みづらい

ということ. ふと気がつくと,ここのサイトもそんな構成になってるではないか.

というわけで,ここのページの説明を参考にして CSS を調整し,iPhone や Android 端末などの狭幅端末ではメニューを消すようにしてみた. とりあえず,手元の Android 端末ではうまく消えてるけど,iPhone なんかではどうだろう?

画像が入っているページだったりすると,レイアウトにやっぱり無理はあるけど,本文だけなら読みやすくなったんじゃないかと思う.


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-06-19 (土) 16:26:34 (3503d)