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)画像へと前処理しておくことがお勧めだ。
2000-09-16[n年前へ]
■モザイク消し器の真実
買うも買わないもアナタの自由
で「モザイク消し器」について考えてみた。といっても、考えてみただけで使ってみたわけではない。当たり前である。そんな「モザイク消し器」が私の家にあるわけはないからだ。歩く「悟り」、歩く「生き仏」と呼ばれる私の家にそんなものがあって良いはずがない。その証拠に私はそんな風に呼ばれたことがない(土屋賢治風ロジック)。モザイクの向こう - 隠しているから良いのです- (2000.07.18)
さて、そんな風に言いたい所なのだが、実はそれがあるのだ。何と、「モザイク消し器」が私の家には鎮座しているのである。といって、それは私のものではなくて、某編集者の方がとあることのために送ってくれたものなのである。
残念ながら、このくりくり小僧はあまりにも使い物にならなかったので、部屋の片隅にそのまま放置されていた。いや、こう書くと誤解されそうである。別に変なことに使ったわけではなくて、技術的に使い物にならなかったのである。一応、そこの所はハッキリしておきたい。大体、コレを一体どうやって変なことに使うのだ(以下略)。
今回、このくりくり小僧を送り返すことになったので、せっかくだからこのモザイク消し器がどんな風に技術的に使い物にならなかったかをこのタイミングで書いてみることにしたいと思う。
まずは、このくりくり小僧の操作方法を説明しておこう。ビデオ信号は通常のNTSC信号で入出力するようになっている。エロビデオをこの「くりくり小僧」に入力し、処理した画像をテレビへ送るのである。あるいは、処理した画像を新たにビデオにダビングするのかもしれない。
この「くりくり小僧」は、対応するモザイク処理(広義の)の種類は
- モザイク(狭義の)
- 反転
「くりくり小僧」の写真を見ると判ると思うが、画像復元処理をかける領域の
- 大きさ
- 位置
写真中にあるその他のボリューム
- 輝度
- 明るさ
- エンハンサー
それでは、まずは適当にモザイク画像を作ってみる。そして、その画像を「くりくり小僧」を使ってキレイに戻せるかを調べてみることにしよう。そこで、最初に示すのが
- 女性のオリジナル画像
- オリジナル画像の一部に反転処理をかけたもの(後述するが、実は失敗している)
上の右の反転画像の中央部に対して、「くりくり小僧」で復元処理をかけてみたのが下の画像である。さて、画像は元通りになっているだろうか?
この画像を見る階調は確かに反転しているのであるが、色が明らかにおかしい。オリジナル画像では赤かったハズの唇が青いのである。それどころか、顔全体が青いのである。真っ青だ。明るさは正しそうなのであるが、色合いは絶対に何かが狂っている。
そこで、「基準画像」に対して、「くりくり小僧」で反転復元処理をかけてみることで、どのような処理をかけているかを調べてみた。それが下の画像である。左が「基準画像」で、右が「基準画像」に「くりくり小僧」で反転復元処理をかけてみた画像である。なお、画像の右端および下端部分に関しては「くりくり小僧」で反転復元処理をかけていない。
さて、画像の向かって左にあるグレイスケールの階調部分を見れば一目瞭然だと思うが、この「くりくり小僧」で反転復元処理をかけた画像は確かに明るさが反転している。それはその他の白黒画像の部分を見ても明らかである。
そして、カラーチャート部分を見てみると、色合いは実は全く変化していないことが判る。右上から左下まで「紫・青...橙・赤」と繋がっているカラーチャートは左と右でそれほど違っていない。ほとんど同じである。
それは考えてみれば、当たり前なのである。「くりくり小僧」の入出力はNTSC(NationalTelevision System Commitee)方式を使っている。このNTSC信号はカラー画像を
- 輝度情報
- 赤 - 輝度情報
- 青 - 輝度情報
- 赤 - 輝度情報
- 青 - 輝度情報
ところが、先ほど私が女性のオリジナル画像に対して反転処理をかけてみたものは、RGB画像のRGBそれぞれのチャンネルに対して反転処理をかけていたのである。これでは、明るさが反転するだけでなくて、色合いまで反転してしまう。私は、何と「くりくり小僧」の入出力はNTSC方式を使っていて、RGB画像でないことを失念していたのである。その結果、女性の顔色が反転したまま真っ青になってしまったわけだ。
そこで、その「輝度チャンネルのみの反転」ということを考慮してテストしてみたものが次の画像である。今度は反転画像の中央部に「くりくり小僧」で復元処理をかけた部分の色合いが正しい色合いであることがわかるだろう。
なるほど、「反転画像」に関しては「くりくり小僧」は確かにちゃんと画像を復元できることが判った。しかし、しかしである。反転モザイク処理をかけたビデオなんてそうそうあるわけがない。いや、そんなに自信を持っていうと何やら変な疑いをかけられそうであるが、多分そうだろう。ほとんどは、次に示すモザイク(狭義の)処理だと思う。それをキレイに復元できなければ、「モザイク消し器」と名乗る資格はない。そうは思わないだろうか?百歩譲っても、「反転消し器」と言うべきではないだろうか?そこで、狭義のモザイク画像に対してこの「くりくり小僧」が威力を発揮することができるかどうかを、次に調べてみた。
まずは、作ったモザイク画像を先に示そう。下の左が先程と同じオリジナル画像で、右がモザイク(狭義の)画像である。よく(?)見かける画像だと思う。
それでは、「くりくり画像」はこのモザイク向こうをキレイに映し出すことができるだろうか?この機械は悩めるエロ子羊達を救うことができるのだろうか?それを確かめてみたのが次の画像である。先のモザイク画像の中央部に「くりくり小僧」で復元処理をかけてみたものである。
「何だこりゃぁあぁ」、と私は思わず叫びそうになった。いや、別にこの機械のためにお金を払ったわけじゃないから良いのだけれど、一体なんなのだこれは。このモザイク消し機能はハッキリ言って大嘘である。桃太郎侍だったら「おまえなんか「モザイク消し器」じゃねぇぇ」と切り捨てるところだ。
これなら、前回
で試したような単なるボカシ処理の方がずっと上である。ちなみに、この下の画像が単なるボカシ処理で「モザイク」を消してみたものである。上の「くりくり小僧」の復元画像よりもずっとマシであることが判るだろう。モザイクの向こう - 隠しているから良いのです- (2000.07.18)
ちなみに、先程の「反転処理」の場合と同じように、「基準チャート」に対して「くりくり小僧」でモザイク復元処理をかけてみたものを示してみよう。下に示すその画像を見れば、「くりくり小僧」のモザイク復元処理が
- 輝度チャンネルの反転処理
- 横方向のエッジ強調処理
しかし、この「モザイク復元処理」をかけてみても、私には全然モザイクの向こうは見えないのである。もう、何が何だか判らないのである。もう、何が何だか判らないが故に、もしかしたら人の持つ無限の想像力をフルに発揮できるのではないか、と思うほどである。私は残念ながらエロの想像力が足りないのかもしれないが、想像力の発達したエロの天上人達であれば話は別だろう。
さて、今回の話は「モザイク消し器のMTF(仮称)」というタイトルで書き始めたのであるが、「モザイク消し器」の実力がこんなものだったのでお蔵入りしていたのである。まぁ、解析の出来としてはイマイチであるが、もしかしたら「モザイク消し器」を買おうかどうかと迷っている子羊達の参考になるかもしれないので、一応公開してみた次第だ。
さて、私はこの機械をいじってみて思わず暴れ出しそうになったが、それはもしかしたら私だけかもしれない。人によっては、「何て素晴らしいんだ!!この機械は!!」と感激する可能性だってゼロではない。イマジネーションが豊かなあなたであれば、さぞかし素晴らしい桃源郷がモザイクの向こうに見えるのかもしれない。
だから、「買うか、買わないか」はアナタの自由だ。だから、このイマジネーション養成ギブスに大枚を払うの悪くないかもしれない。この機械でイマジネーションを鍛えた暁には、モザイクの向こうにアナタには何かが見えるかもしれない。確かに、それも悪くないかもしれないだろう。そこに何が見えるかは、結局あなた次第だと思うのである。
2005-01-04[n年前へ]
2005-09-07[n年前へ]
■「appleのビデオ機能」
先日、末広町で飲んでいた時に、appleのビデオ出力のメカニズムの話題に一瞬なった。忘れている箇所も多かったので、もう一度そのメカニズムを追いかけてみた。
apple回路では、14.32MHzのオシレータ出力を2分周した7.12MHzの信号がビデオ信号のドット・クロックとなる。回路上はあくまで、(基本的には)1ドットが1bitの単純な構成である。
ところで、NTSCのビデオ信号のカラー情報は「ビデオ信号に重畳した3.58MHz波形」の位相で表すが、この3.58MHzはappleのビデオ・クロック(7.12MHz)のちょうど二倍である(もちろん単にそう設計したわけである)。ということは、2ドット分のビデオ・信号を"on""off"として出力した場合と、"off""on"して出力した場合では、NTSC信号でのカラー情報(位相)が180度ずれたもの(=補色)を表すことができるのである。
ということは、基本的にはハイレゾ1bit=1dotとして、まるで二値的に思えるシステムであっても、少なくとも白(on.on)と黒(off.off)と紫(on.of)と緑(off.on)という四色が生成できることになる。もちろん、単純に言ってしまえば、(7.12MHz単位の)2ドット毎(=NTSCのカラー信号3.58MHzの周期)に対して2bit使っているということになるので当たり前と言えば当たり前の話になる。そして、連続する2ドットのon-offの組み合わせでNTSCのカラー信号を生成(疑似表現)するので、「連続する2ドットの関係で色が決まる」というappleのカラー・グラフィックの掟がここにできるわけだ。
さらに、(ある時期以降の)appleの場合ビデオ・データの特定の(=横7ドット, 縦8ドットのテキストモードとの兼ね合いで使われていなかった最上位の)bitを立てると、フリップフロップ回路で70nsだけ信号を送らすことができる。その70nsのずれは、NTSCのカラー信号3.58MHzのドット・クロック幅の25%に相当する(角度で言うと90度)。ということは、NTSC信号でのカラー情報(位相)が0, 180度の色だけでなく、90, 270度の色も出力(疑似生成)することができるようになる。すなわち、黒・白・紫・緑に加えて青・橙という計6色が出力することができるようになる。
そして、これらの出力機能は結局のところ、二値出力の高低信号の位置を「ドット配置やドットの位置ずらし」といった操作で変化させているにすぎない。ということは、こういった出力をモノクロ・ディスプレイに対して行えば、(ClearTextなどの技術の祖先とも言える)「基本ドットの位置を25%だけ横にずらして、(位置出力として、あるいは階調出力として)滑らかな出力を行う」なんていうこともできるわけである。(出力デバイスがもしもカラー・デバイスであれば)「色のにじみ」が結果として出現するところも全く同じと言えば、同じである。
単純明快な回路ではあるが、こういう単純なシステムをなんだか忘れてしまっているような気がする今日この頃、だ。
2007-09-07[n年前へ]
■NTSCとニガシオ
こんにちは、さようなら。
NTSCのビデオ信号のカラー情報は「ビデオ信号に重畳した3.58MHz波形」の位相で表すが、3.58MHzはappleのビデオ・クロック(7.12MHz)のちょうど1/2である。だから、2ドット分のビデオ・信号を"on""off"として出力した場合と、"off""on"して出力した場合では、NTSC信号でのカラー情報(位相)が180度ずれた色(=補色)として表すことができる。
飲食店というものは一般には十ルクスで、それ以下でやろうとするものが風俗営業になるわけですね。三ルクス以下になると違反です。
ここに、「連続する2ドットのon-offの組み合わせで色が決まる」꒤꒦appleꖫꗩꆼꆦꖰꗩꗕꖣꗃꖯ겤잤궤ꊤ겤ꌍ
「ニガシオやめたのに飽きました、アッハッハ!」