2012年6月22日金曜日

幾分まともに

ソースを書き換えて入れ替え終わっていたと思って写真をアップロード。
3分以上かかってようやく完了。

…おかしい…

ソースが変わってなかったですorz

寝ながら複数の環境をみつつやってるとこんなものですね。

気を取り直し書き換えて別の写真をアップしたところ25秒ほどで戻ってきました。
リサンプリングではないのでジャギーが目立ちますけどこれで十分かな?

サクッと戻ってくれば快適なんでしょうけど非力なルーターですしね(笑)

せっかくなのでどこかにオプション設定できればいいのでしょうけどアドイン形式で埋め込めればいいのかなぁ。

ソースをパラパラと見ているのですがうまい切り口が見えないのでとりあえずはここ(直接ソースを変更)まで。

2012年6月21日木曜日

ようやく発見

どうにもgrepで入力ミスしているのかうまく検索できないときがとても多いですが、ようやくたどり着きました。
root@mzkw04nu:/home/htdocs/blog# grep "create_thumbnail" *.php
mob.php:       create_thumbnail(IMG_DIR.$img_name, IMG_DIR.$img_name, $w, $h, $ratio0);
mob.php:       create_thumbnail(IMG_DIR.$img_name, $thumb2img=IMG_DIR.THUMB2.$img_name, $w, $h, $ratio);
upload.php:    create_thumbnail($attached_file, $_attached, $w, $h, $ratio, $quality);
upload.php:       create_thumbnail($_attached, $thumb2img=str_replace(IMG_DIR,IMG_DIR.THUMB2,$_attached), $real_w, $real_h, $ratio2, $quality);
upload.php:     if(!is_file($thumb)) create_thumbnail($_attached, $thumb, $real_w, $real_h, $ratio_s1, $quality);
utils_admin.php:function create_thumbnail($input, $output, $w='', $h='', $ratio='', $quality=75){ // Revised in v.1.8.6
utils_admin.php:    if(!is_file($thumb = IMG_DIR.THUMB1.$_img)) create_thumbnail($img, $thumb, $size[0], $size[1], $ratio1);
utils_admin.php:     create_thumbnail($img, $thumb, $size[0], $size[1], $ratio2);
utils_admin.php:     if(!is_file($thumb)) create_thumbnail($imgfile, $thumb, $size[0], $size[1], $ratio);
utils_admin.php内でImageCopyResampledを行っているのを。(とてもいまさら(笑))
 //@ImageCopyResampled($img_out, $img_in, 0, 0, 0, 0, $_w, $_h, $w, $h) or ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, $_w, $_h, $w, $h);
  ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, $_w, $_h, $w, $h);
コードを直接変更してResampleはコメントアウトさせて見ました。
時間があればもうちょっと何かやってあげようかとは思います。

2012年6月19日火曜日

Motion用のビュワーを作成中

Motionで監視カメラを動作させ続けていますが今のところ全く問題はありません。
ただ、OpenWrtの配布形態のバイナリではMPEG変換がどうも行われないようなので再構築する必要がありそうです。

ですがどうもよく動作を理解していないので今のところWEB/PHPでとりあえず対応しています。

2つの環境で動作させているのですが、ルータではやはり処理能力が不足気味で画像も320×240で動作させて2FPS程度が限界のようです。(保存先をメモリーにすれば幾分早くなるのかもしれませんが必要以上のコマが必要とも思わないのでこれでいいのかなと。)

またファイル数が千単位に膨れ上がるとターミナルやSAMBA接続で厳しくなっているので今のところ月別のディレクトリの中にさらに日ごとに分けて保存するようにしています。
部屋で監視させているとだいたいこれで毎日2000~4000枚のJpeg画像が生成されています。

保存形態は当初から大体このような形で大丈夫かな?と言った程度です。(MPEG運用になればまた違った形になるかもしれませんが。

ざっとした雛形は1日で出来上がったのですが細かいところでいろいろと欲が出てきていていまのところサムネイル用の画像を作成させるかどうかで仕様を悩んでいるところです。

ppBlogで実感していたのですが、どうもルータに画像処理を行わせるとどうしても処理が重すぎてどうにもならない様でどうしたものかと。
PHPで画像ファイルを扱うのは非常に簡素化されているので工夫するにしても差ほど変わらないだろうというのが今のところの感触です。
たった320×240の画像から160×120のサムネイル画像(原画自体がサムネイルじゃないかと思いますけど(笑))を生成するのに処理してるのがわかるぐらい待たされました。
画像のリサイズを行う方法は2つあり、一つは全ピクセル情報をつかってのリサンプリングしリサイズを行う方法。もう一つは単純にピクセルを間引いてリサイズを行う方法。
WindowsXPのころからこの様な処理はどちらにしてもほとんどがハードウェアなどで処理されたりCPU自体の処理能力の向上によって体感速度はあまりかわらないものなのですが、ルータでは明らかに前者よりも単純に間引いてリサイズするほうが処理時間が短く済みます。
出来上がった画像は当然不自然にはなりますが処理時間とのトレードオフと考えれば十分考える余地があります。(このへんの処理もppBlogで手を加えると処理時間が短くサクサク動くようになるのかも?とかちょっと目論んでいますがどうなることやら(笑))

2012年6月14日木曜日

ようやくマウスパッドのドライバを更新

先日のcal_days_in_montの対処として適当なコードで対処しました。(本来はきちんと対処する必要があるのですが目の前の対処だけで済ませました。

その後ふとしたきっかけでノートのマウスパッドのドライバがあるのではないかと感じたのでまた少し検索してみました。

ALPS DRIVERで検索してみるといくつか気になるページがありましたがそれらしいページがAcerのページにありました。

Acer TREIBER

Acer Aspire 5320 Notebook (TouchPad ALPS) Treiber
Version: 7.0.1101.14
Typ: Notebooktreiber
Datum: 2009-06-11 14:40:01
Hersteller Home/Support: Acer
http://www.treiberupdate.de/treiber-download/download-176893-treiber-Acer-Aspire5320Notebook(TouchPadALPS).html

ALPSのデバイスは基本的に実際に販売している側で公開されているのみでALPS側からはリリースされていないので面倒なデバイスですね。

現状一番困っているのはFirefoxが旧バージョンでのいい加減なドライバのサポートを行わない方針になってマウスパッド側でのスクロールが不自由になったのでずいぶん前から探していました。

以前に探したときは旧バージョンの表記ミスや広告表示のためのダミーページばかりでしたがようやくまともそうなページを開くことができました。

WindowsXP 32bit用のドライバもあったのでウィルスチェックを行ったあと入れてみました。

PCの再起動を行うとマウスパットが色々なマウスメッセージをハンドリングするためのダミーウィンドウ用のアプリやベースとなる設定プログラムが起動された。
zip圧縮形式のなかに未圧縮の実行ファイルが格納されていたためか再起動時に何度か起動確認のためのメッセージが表示された.

早速試してみるとようやくまともにFirefoxが動作するようになった。

2012年6月2日土曜日

cal_days_in_month はどこで定義されているのだろう?

<?php
$num 
cal_days_in_month(CAL_GREGORIAN82003); // 31echo "2003 年 8 月の日数は $num 日です";?>
 
Fatal error: Call to undefined function cal_days_in_month() in /home/htdocs/test_cal.php on line 2
 ちょっと使いたかったんですが、見当たらないようです。
どこで定義されているんでしょうかねぇ?