大久保 榮 監修「H.264/AVC 教科書」(2004, インプレス) を職場そばの書店で発見したので購入。あーこれが3ヶ月前に出ていてくれれば「dpb_output_delay の output って何だ、presentation のことなのか? presentation のことなのか?」などという叫びを上げずに済んだのに。
いつもの教科書シリーズと同様に、結局は勧告書にあたらなければいけないのはかわらないのだけど、それでも読める日本語になっているだけありがたい。しばらく職場に置いとくことにしよう。
「次世代動画符号化方式 MPEG-4 AVC/H.264」は HRD のあたりの解説を読みながら、これは本当に日本語なのだろうかと本気で疑ってしまったからなー。
悲しいときー、悲しいときー。ノート PC が入ってる鞄をつい手を滑らして落としてしまったときー。
悲しいときー、悲しいときー。鞄を開けてみたら角のヒンジがゆがんでディスプレイが開かなくなってたときー。
5月に買ったばかりの PC だというあたりが悲しさを増してくれるポイント。とりあえずゆがみを無理やりマイナスドライバで補正して、ディスプレイが開くようにしたところ HDD や液晶には問題が波及していなかったのだけが救い。
一週間と一日を費やして何とかドキュメント書きにケリを付けることに成功。これでよーやくコードをつつきまわすだけの仕事に復帰できる。
来週になれば、月・火の二日間をしのぐだけで夏休み突入。まー気持ちよく休みに入れるように頑張りますか。
評価基準。
「バグってたからスクラッチから同じ機能のものを実装した。ソースも公開する」- 神
「俺がバグを直してやるから、ソースよこせ」 - 可もなく不可もなく
「誰かがバグを直すはずだから、ソース公開しろ」- 恥を知れ
今給黎 隆「DirectX 9 シェーダプログラミング」(2004, 毎日コミュニケーションズ) 購入。以前書いた 現実逃避的思考 (Pixel Shader に動き検索をやらせるには) を調べるときに参考になるかもということで。
まー結局無理という結論になる場合でも、3D まわりの知識を持っとくのは悪いことじゃないので、全くの無駄にはせずに済むはず。読みさえすれば。
昨日の本を眺めながら、2D プロットの 3D 化(密度の可視化)のために D3D 使ってみるのも手かと妄想中。最近 Excel の 2D 散布図を見ながら「データ要素ごとにインクを打つと厚みがついて自動的に 3D グラフができあがるプリンターないかなー」とか思うことが多いので。
テクスチャーかぶせればデータ系列ごとの色分けも楽そうだし、メッシュ周り調べるだけで実現できるならやってみたほうがいいのかも。
そろそろ 0.7.0 の作業再開もしなきゃ。
7月〜8月にかけての電気代1万3千円。嗚呼、去年は冷夏だったとはいえ8千円以下で済んでたのに。
やはり、出勤時のクーラー切り忘れ×3は大きかったか。帰宅してドアを開けた直後のありえないひんやりした空気とか、正直悲しいものがある。
先月はバタバタしてたし、中途半端に設定温度を高くしていて動作音が聞こえなくなってることがあるのも原因なんだろうなと反省。8月から9月には同じ失敗は繰り返さないようにしたいもの。
夏休み中の現実逃避。とりあえず適当な座標列テキストを読み込んで、下のような絵が出せるようになった。
後はテクスチャかぶせて色分けできるようにして、カメラ移動できるようにして……むー目盛り線も欲しい……かなぁ。
8/9 の本だと、Vertex Shader/Pixel Shader がメインで、FVF の解説とかの DirectX Graphics まわりの基本的なところの記述が無かったので、インフィニティ「DirectX9プログラミングガイド」(2004, 秀和システム)を購入。
内容はタイトルとは違って、DirectX 3D のガイドに終始している。基本的には Visual Studio の DirectX9 AppWizard ベースの解説になっているのだけど……フレームワーク周りは 8/9 のシェーダー本の方が判りやすかったような気がしないでもない。
ただ、初学者がはまりそうな罠をつぶす書き方になっているので、私のまさに求めている情報が記述されていてくれたのがうれしかった点。ライティング ON の場合には法線ベクトルが必須とかその辺。(今回は手間を省くためにライティング OFF で対処してたり)
あー何となく Pixel Shader で動き検索をやらす方法が判ったような気が。テクスチャ(参照フレームと原画フレーム)でポイントをずらして diff 画像を作って、さらに abs をかけてから mipmap 用の縮小テクスチャ(水平・垂直共に 1/16)を見れば、それが MB 単位の MAE (Mean Absolute Error) になるのか。
1 MV の評価のうち、SAD を求める部分がフレーム全体で Pixel Shader の 2 スロットで済むのは……実行速度にもよるのだろうけど、それなりにうれしいなぁ。RD 考慮しようとするとアレだけど。
dplot-0.1.0.lzh を投棄。Excel の 2D 散布図を眺めながら、プロット一つ毎に盛り上がって 3D グラフになってくれないかとか考えてる人しか仕合せになれないステキなプログラム。
DirectX まわりの初期化が決めうちだったりするので、テストした環境以外では問題が発生する可能性あり。Intel 855GME 組み込みのグラフィック機能で動いてるから多分他でも問題なく動くとは思うのだけれども。
途中で色々と力尽きて、追加したかったのに諦めた機能とかがあるけど、とりあえず個人的には使える範囲のプログラムになってくれたので公開。それでもビットマップ保存くらいはつけておいた方が良かったかなと思わないでもない。
無駄にフレームワークと決別して C++ を使わずに C のみに拘って作ったためにあちこちで地雷(左手座標系なので Z 軸は手前側がマイナスとか、デバイスのクリア時の ZBUFFER 指定忘れとか)を踏みまくり、思っていたよりも時間がかかってしまった。あー 0.7.0 の作業はまるでできなかったなー。
Radeon 8500 で動かないのはまずいよなというわけで、dplot-0.1.1.lzh に更新。D3DCAPS9 の MaxPrimitiveCount を無視していたので、超えない範囲で動くように分割して API 呼び出し。
まだ MaxVertexIndex が決めうちなので、問題が発生する可能性はあるのだけど……頂点数は 65534 未満だから大丈夫だろう。たぶん。
起床後、時計を見てびっくり。AM10:33 とか表示されてる。やー 8:23 に一度は起きたのだけど、二度寝の誘惑に屈したのがいけなかったか。熟睡モードに入ってしまい、起きたのは 3 時間後。
一応反省。どうやら休みの気分がまだ抜けていなかったらしい。明日からは真人間のフリができるように気を引き締めていこう。
やね うらお「解析魔法少女 美咲ちゃん マジカルオープン」(2004, 秀和システム) 読了。週末に買って、通勤時に電車の中で読んでいた。基本的には OllyDbg の解説書。結構知らなかった機能も解説されてるのでうれしかった。
クラックの「イロハ」までは書いてあるんだけど「ホヘト」までは書いてないのが不満な点というか……。VirtualAlloc まで触れるなら Execute Protection (書き込み属性と実行属性を排他に) まで記述しておくべきなんじゃないかなというか。
美咲「でたわね!邪神ドングラー!あなたはソフトウェアにプロテクトをかけ、罪もないバックアップ目的のコピーをもことごとく妨害し続けてきた!許せない。罪のないコピーを虐げるだなんて!あなたの悪事の数々、この倉塚美咲がしかと見届けたわよ!いでよ、逆アセンブラ!マジカルオ〜プン!!」解析本作成舞台裏 より引用
締め切りに間に合わなかった 14 章以降を WEB 公開するときは上のようなノリになるらしい(大誤解)ので、期待しよーっと。
dplot は、やはりグリッドやらマーカーやらがあった方が便利かな(仕事で使ってみて無いと使い物にならないと気がついた)というわけで、今週末に少し手を入れてみる予定。
後は、範囲エリアでテキスト入力も受け付けるようにして、テクスチャとデータのファイルオープンダイアログを別々にレジストリに保存するようにして……。むーカメラ位置だけでなく、視点も変えられた方が使い道が広がるというのはわかっているのだけど、そこまで手が回るかどうか。
「巣作りドラゴン」(2004, ソフトハウスキャラ)に順調に時間を吸い取られている。日曜をほぼフルに潰して 7 周まわり、よーやく S ランクを拝むことができた。SSS は遠いなぁ。お陰で眠くてしょうがない。
当然ながら dplot の作業はほとんど進んでいない。修正が済んだら独立ページ作ってやる予定だったのだが……。とりあえず GUI 周りの改修もまだ表示周りしか完了してないので、これから制御コード追加して……Direct 3D のオブジェクトこね回して……日曜に作業しなかったのが痛いなぁ。
うわぁ……仕事関連でものすごく鬱になるメールを眺めてしまった。私の責任は 1% 程度しかないから気楽だけど、80% を担当してるあの人の場合……南無南無。
目盛り線の追加とか GUI 修正とかレジストリの利用とかの修正を済ませて、Density Plot として配布ページも作成。以下想定用途。
この例だとものすごーく偏っていて、使い道が限られそうだけど、まー基本的なツールだし私が気がついてない使用方法をあるだろうということで。ここに書くだけだとすぐに埋もれてしまうので、一応恒久的な配布ページを作成して消えないように努力をしてみた。
あー R でも、gregmisc パッケージを追加して 2D ヒストグラム描画させれば同じようなことができたのか。一応方法。
> install.packages("gregmisc") # 初回起動時のみ必要 (WEB からパッケージを取得) > library(gregmisc) # ライブラリ組み込み (hist2d を含む) > t = read.table("data.file") # データ読み込み > h2d = hist2d(t, show=FALSE) # ヒストグラム集計 (200x200 のグリッドで) > # 3D ワイヤーフレーム描画 > persp(h2d$x, h2d$y, h2d$counts, ticktype="detailed")
上に書いたのは最低限必要なコマンドだけなので、それぞれの機能のオプションを変えたい場合は help を引くように。以下、参考にしたページ。
むー車輪の再発明という言葉が頭をよぎるが、汎用解析ツール上で動かすよりも専用ツールで DirectX 使った方が軽いし、使い方も判りやすいと自分をだますことにしよう。
発動。失敗。
昨日、客先にて「ピクセルシェーダーで動き検索の話を振って Radeon X800 搭載 PC を Get」という頭の悪い計画を発動してみたのだけどあえなく敗退してしまった。うーむ、ちと悲観的な見通しを並べすぎたのがわるかったのかなー。
やっぱり「動き検索の消費する 50% の CPU 負荷が 0% に」とか「今ならトップに立てる」とか「ACM 向けにペーパーが書けますよ」とか楽観的な言葉ばかりを並べてみるべきだったのだろうか。つーかあまり風呂敷広げすぎると後でえらい目にあうからそーゆう訳にもいかないし。
まー仕事としてじゃなく道楽で調べる場合なら NDA も発生しないからネタになっていいのだけど、そのための出費がそれなりに必要になってしまうのがなー。悲しいところ。もう少し財務方面の改善がないと実行には移せそうに無い。
文庫版が出ていたので、塩野七生「ローマ人の物語 ユリウス・カエサル ルビコン以前」(新潮文庫) を読む。AM 4:30 までかかって下巻 (通算で10巻) の途中まで読んだ時点で睡魔に負けた。
おかげで今も眠くて仕方がない。いちおー起きたのは AM 8:00 だったので平常どおりの時間に職場についてるからいいのだけど。
感想。そのうち「ガリア戦記」も読んでおかなきゃ。どーやら Amazon のブックレビューを見る限りでは岩波文庫版よりも講談社学術文庫版の方が現代日本語として読みやすいらしいので、そちらを選ぶことにしよう。一応リンクも 国原 吉之助 訳「ガリア戦記」 (講談社学術文庫)。