1999-07-08[n年前へ]
■走査線の狭間
1/60秒の世界を目指せ
あぁ、今回は(今回も)めちゃくちゃマニアックな話である。トップページには「身近な疑問を調べる」、と書いてあるが、他の人にはぜんぜん身近ではないだろう。最近、妙に忙しいので、身近な疑問がおろそかにされているのだ。身近な疑問の解決は結構難しいのである。そのため小難しい話が続くのだ。困ったことだ。
さて、今回やったことを結論から言えば(*)、AVIファイルをフィールド毎に分解してBitmapファイルに落とすプログラムを作ったのだ。「このソフトはとても便利だ」と言ってくれる人がいたならば、感謝感激雨あられだ。とりあえず、私には欠かすのことのできないソフトである。なぜ、このソフトがそんなに便利なのかを、これから手短に(**)語りたい。
* 「結論から言えば」、とか、「要するに」という人は必ず結論を言わなかったり、全く要約されていない話をするのはなぜだろうか?
** 同じく、「手短に」ときたら、必ず話は長くなる。
一般的なTVで使われている信号はNTSCと呼ばれる。1秒あたり約30フレームからなり、1フレームは2フィールドにわけられる。というと、複雑に聞こえるが実はとても単純だ(***)。単に1フレームが奇数フィールドと偶数フィールドに分かれているだけである。フィールドというとわかりにくいので走査線と考えればわかりやすい、と思う。
*** 当然のごとく、単純ではない。
NTSCの信号を時系列で追うとこのような画像の集合になっている。例えば、こういう具合だ。
1フレーム目の奇数フィールド(走査線)
1フレーム目の偶数フィールド(走査線)
2フレーム目の奇数フィールド(走査線)
2フレーム目の偶数フィールド(走査線)
.
.
.
29フレーム目の奇数フィールド(走査線)
29フレーム目の偶数フィールド(走査線)
30フレーム目の奇数フィールド(走査線)
30フレーム目の偶数フィールド(走査線)
30フレームで約1秒であるから、1枚の画像(フレーム)は約1/30秒である。だから、普通のビデオカメラで撮影した画像は1/30分の1秒毎の画像を示しているのである。しかし、もっと高速度撮影したいと思うときがある。ウン百万出せば、1万分の1秒の撮影でも可能な高速度カメラが買えるが、個人ではとても買えない。また、そもそもやりたい用途向けの高速度撮影用のカメラが存在しない場合というのもままあるのだ。そういった場合には、時間軸に対しては1/30秒までの撮影にしか使うことはできない、と思えるだろう。
しかし、NTSCの信号もフィールド毎に分解すれば、1/30秒の半分、すなわち1/60秒毎の画像を示しているのである。たかだか2倍ではあるが、されど2倍である。1/30秒では見えていなくても、1/60秒では見える世界というのもあるのだ。
画像例を用いて説明しよう。左の1/30秒間の画像を奇数フィールドと偶数フィールドに分解したのが右の画像(a),(b)だ。(a),(b)を比べると、黒い矩形が左から右に移動しているのがわかるだろう。今回のソフトウェアはそういった計測には非常に便利なのだ。このソフトウェアを使えば、普通のビデオカメラの性能を2倍にすることができるのだ。スポーツをやる方などは自分のフォームをチェックするのに使うといいだろう(画像解析までしてフォームチェックはしないか、普通...)。これで、フォームチェックはプロ級だ。
1/30のままの例 | 1/60のフィールドに分解した例 |
1/30と1/60がたかだか2倍でも結構違うという良い例は、1/30秒のシャッタースピードではブレた写真になってしまう人でも、1/60秒なら大丈夫、とか、ゲームを作る際に1/60秒以内に人間からの入力に対して反応を返してやれば、プレーヤーはスムーズに感じるが、1/30秒ではダメだ、とかいう話がある。
というわけで(****)、AVIで記録された動画ファイルを1/60毎の画像に分解するプログラムが今回作成したものである。
奇数フィールドと偶数フィールドを分けることにより2枚の画像に分解し、それぞれの画像内で失われたフィールドを単純補間により復元することができる。奇数フィールドが先頭か、あるいは、偶数フィールドが先頭かは選ぶことができるし(奇数フィールドと偶数フィールドのどちらが先か選べるということでもわかるように、どちらが先であるか必ずしも決まっているわけではないらしい。そこらへんは、各映像機器によって変えなければならない。)、インターレースでなくノンインターレースの場合、つまり、単にAVIファイルの各画像を静止画におとすことだけもできる。
**** 「というわけで」は話を強引に次へつなげるときに使う。
このプログラムを使ったあとはScion ImagePCを使うのがお勧めだ。Macintoshの世界で一般的なNH-imageのWindows版である。今回のプログラムで作成した静止画群をスタック化して使うのがいいと思う。そうそう、Scion ImagePCに読む込むときには静止画を8bit(gray)画像へと前処理しておくことがお勧めだ。
2005-05-12[n年前へ]
2005-07-03[n年前へ]
■加速度センサ@東芝Tablet PC
東芝が発売しているTablet PC上で、加速度センサの値を使用した例を探してみた。すると、Making sense of the Tablet PC Accelerometer: WinGimcanaというものが見つかった。このアプリケーション自体は加速度センサの値を得るようなことはしていないのだが、東芝のTablet PCに付属しているInputSyncというユーティリティを使って、PCの傾斜に応じて動くアプリケーションを実現している。
InputSyncは傾斜に応じてカーソルを動かすユーティリティであり、任意のアプリケーションに対してそのカーソル駆動を適用させることができる。だから、アプリケーション側からすれば、単にカーソルに対する反応を記述するだけで、(結果として)加速度センサの値に応じた動きをさせることができる。
しかし、InputSyncを使った場合には、東芝のTablet PCが搭載する6自由度の加速度センサの値のうち2軸の値しか活用することができないとか、高速度の値取得ができないなどの不都合な点がある。ユーザー・インタフェース用としては、高速度の値取得はできなくても構わないし、最悪2軸入力でも悪くはない。とはいえ、せっかくなのでもう少し調べてみることにする。
2006-01-22[n年前へ]
■「今日見た瞬間」
「Lightbox JSで動画もWEB 2.0っぽく表示しよう」なんていう改造をしたのは、これからは動画へのリンクが増えそう・増やそうと思ったからです。「今日見た景色」の写真に、少しづつ「今日見た瞬間」の動画を混ぜていこうか、と考えたからです。だから、写真と動画を同じように扱えるようにしたかった、というわけです。
毎日、目の前の広い360度の景色の中にある「ごく狭いどこか」に目が惹きつけられます。そして、私はカメラのレンズをそこに向けシャッターボタンを押し、その一瞬の景色がデジタル・カメラの中に記録されるのです。「その一瞬の景色」といっても、私の記憶の中にある景色は「一瞬だけれど動いている景色」です。けれど、デジカメに記録された画像は静止した一瞬になってしまっているのです。「動いている一瞬の景色」にはなっていないのです…。
先週、何年も前に発売された「古いDVビデオカメラ」をYahoo!オークションで買いました。なぜ、そんな古いビデオカメラを買ったかというと、そのカメラは毎秒240フィールド(インターレース)の撮影ができる、という機能を持っていたからです。わかりやすく言えば、(上手く使えば)一秒間に240コマの高速度撮影ができる機能を持っていたからです。自分の目の前にある「何か」に惹きつけられて、それを眺めた時の「記憶の中の景色」を忠実に記録できるかもしれない、と思ってそのビデオカメラを買ってみたのです。「動いている一瞬の景色」を眺めることができるかもしれない、と思って買ってみたのです。
というわけで、右上に貼り付けてみた「今日見た瞬間」私が眺めた「動いている一瞬の景色」は、東京北千住で眺めた「雪どけの水滴」です。BGMは1950年にヒットしたSammy Kayeの"Harbor Lights"です。(ちなみに、iPod用のビデオ動画だとこんな感じです)
2010-03-10[n年前へ]
■広角・高速度・小型と三拍子揃ったデジカメをカシオが発表
「カシオ、最大1,000コマ/秒の動画も撮影可能な高速デジカメ」
カシオは9日、コンパクトデジタルカメラの新製品として「EX-FH100」を発表。4月9日から発売する。価格はオープンで、予想実売価格は45,000円前後。カラーはブラック/シルバー。(中略)連写モードの場合、900万画素の高精細画像で最大40枚/秒のスピードで、30枚まで撮影が可能。
1,000コマ/秒、420コマ/秒、240コマ/秒、120コマ/秒の高速な4段階で動画撮影が行なえる。(中略)本モードにより、超スロー撮影を楽しめるという。動画は最大ハイビジョン(1,280×720ピクセル)まで対応し(中略)そのほか、1回の撮影で標準・明るめ・暗めの被写体にあわせた3枚の画像を高速連写し、本体内で1 枚に合成する「ハイスピードライティング」などを装備する。
有効画素数は1,010万画素、焦点距離は35mm判換算で約24~240mmで光学ズームは10倍、デジタルズームは4倍。