初めてのマクロレンズ

先日、鎌倉に紫陽花を撮りに行きました。梅雨の定番ですね。SIGMAの18-50で、一応マクロ撮影できるのですが、コマ収差が激しくてちょっとがっかりということがありました。ので、この機会にマクロ単焦点を買ってみました!

値段の割に評判の良さそうなTamronの90mmです。楽しいです。やはり安いズームと違って、ボケがきれいですね。めちゃくちゃ寄れるので、寄っただけの写真が量産されてしまいます。もっとがんばります。ピントはシビアですね。開放だと、顔を引っ込めたり出したりするだけでピントがずれるw これを買って、やはり自分は花撮り好きなんだなと改めて実感しました。

撮った写真はこちら。

K7をさわってきました

PENTAX デジタル一眼レフカメラ K-7 ボディK-7

PENTAX デジタル一眼レフカメラ K-7 ボディK-7

ついに新しいPentaxのデジタル一眼が発表されました。ものすごい気合いの入りようです。実は、発表直前の日曜にPentaxフォーラムに調整をしてもらいに行ってきたのですが、すごく自信のある発言をしていました。今年の一眼商戦はもらっっったあああ!!!(意訳)くらいの。なので、発表をすごく期待していたのですが、すごいですね。PentaxのAFの遅さは前から気になっていました。それから、電子水準器と角度の微調整。テクノロジーの進化が、こうしたデバイスの可能性を広げている様が、技術者として純粋にうれしい。

さて、今日またPentaxフォーラムに行ってきました。もちろん、K7を見ることができるとのことだったので。1時間待ちでしたが、さわることができました。感想としてはまず小さい! 手にすっぽり入る感じ。でもいいと思います。握りやすいし。次に驚くのが、ミラーアップの衝撃が小さい。全然違う。ボディの剛性アップが効いているんだと思います。ずっとガチャコンというでかい衝撃が気になってましたが、低くてコツッという小さな音になりました。高級感がありますね。その次に驚いたのが、インターフェースがすごく良くなっている。インターフェースってすごく小さなことで、別物なくらい使い勝手が変わります。今回気に入ったのが、撮影モードダイヤルのロック機能(以前もよく鞄の中でくるくる回っていた)、isoボタン(押しながらくるくる回すとISO感度が上がる)、手ぶれ防止ボタンの廃止(以前もよく鞄の中でoffになっていた)、Fnボタン周りの簡略化(今までFn -> 十時だったのがたとえばFnを押さずにWBをかえられる)。今まで微妙に不便だなぁと感じていたところがことごとく改善されていて、正直びっくりしました。こういう改善がすばらしいということよりも、こうした細かい部分に気が利くところが、今後もきっと改良してくれるという期待になります。

ということで早速ヨドバシで予約してきました。Pentaxフォーラムが新宿の西口にあるのとか絶対ねらってるよなぁ、とかw 店員さん曰く、かつてないほどに予約が殺到していて、当日渡せないかもしれないとのこと。ちなみに、期待したAFですが、確かに速くなっていました。すげぇ、とおもったのですが、直後にヨドバシで他社製DSLRを試したらもっと速くて萎えました。みんなこんなに速かったのかorz

そもそもなんでそんな最適化が欲しいのか

さて、ここでちょっと断りを入れておきたいことがあります。それはどのレベルの最適化をしたいのかという点です。私が言うところの最適化というのは、だいたい10〜100倍の高速化を目指すようなときです。個人的には1割速くなるためだけに、既存のインターフェースを破壊してまで最適化したいとは思いません。ただし、1年かかる処理を1日で終わらせるようにしたい上、理論的にはできる、JavaJIT最適化がボトルネックを抱いていることがわかるときだけ、この手の最適化をすることをお勧めします。たとえば、理論的にMath.logが100万回呼ばれるのがわかっていて、それが全体の60%をしめるときに、残りの処理を最適にしても2倍速には絶対になりません。逆に、本質的な計算(たとえば浮動小数点演算やMath.logなど)が全体の1割にしかみたずに、ほとんどの時間が関数呼び出しのオーバーヘッドやメモリロードにかかっていることがわかっているときはこうした最適化の意義があります。しかし、こうした状況は機械学習自然言語処理の分野では頻繁に起こります。なので、いつもPythonで書けばいいやということにはならないのですよ!

続きを読む

Javaをよくできる子にするために

昨日の続きです。一点書き忘れたのは、オブジェクトの生成が無視されることはないようだ、という点です。既存のJavaのインターフェースはオブジェクトを返すようになっているので、それらに乗っ取るならオブジェクトを、たとえばIntegerを返したくなるのが心情です。残念ながら、これらがただのintまで落ちることを期待するのは、現状では裏切られるようです。少なくとも外から実験的に見た結果ですが。

続きを読む

Javaはできる子です

Javaと聞くと、遅くね?と拒否反応を示す人は多いはず。就職して以降、弊社の戦略的事情から(本当だろうか)もっぱらプログラムはJavaで書いています。Javaは適当に遊んでいた程度でしたが、だいぶ慣れてきました。チューニング的な意味で。最近、大規模データや構造化データを扱うことが増えたので、ちょっと気を抜くと動かなくなります。同じインターフェースで5回くらい実装し直すのはざらです。

さて、Javaインタプリタだから遅いと思われがちですが、本当でしょうか。最近の経験を鑑みるに、JIT最適化はかなりがんばっているという印象を受けます。経験的に(CPU実験の)、もっとも効く最適化の一つはインライン展開(とそれに伴う定数伝搬など)なんですが、そちらは実はだいぶがんばっているように思います。遅い原因は、そこではなくてメモリ馬鹿食いから来るキャッシュミスと、それに伴う速度低下が原因の用に思います。Javaは仕様上(たしか)オブジェクトやら配列やら、何を作るにも余計にメモリを食います。Arrayなんて最悪にメモリ食うので、絶対にvectorに勝てません。可変長配列を自作することをお勧めします。HashMapもひどいことになるので、byte[]を作って2分探索をお勧めします。しかし、一方でJITでしかできない最適化もあるので、それを検証。テーマは仮想関数。

続きを読む

新レンズその2 FA 35mm F2AL

もう一つは、おなじみ 35mm F2 です。なんか、値段の割に超写りが良いよ、といろんなところでとりあえず買っとけといわれているので、とりあえず買っておいた。これまた中古で2.7万。プロテクターついてたから、まぁいいかなという感じ。よく、パーティーや飲み会に行くときは、暗いので明るい FA 50mm を持って行くのだが、たいてい会場は狭いので画角的にきついんですよね。ちょうどこのくらいのが欲しかった。

実は、前後に友達の結婚式があったので急いで買ったんだが、結局ゆうパック宅配ボックス使ってくれなくて間に合わなかったorz これから常用レンズとして使っていきます。