2013年7月アーカイブ

バージョンの付け方が不揃いすぎるというのは置いておき。

deltaend04.pngのサムネール画像DeltaEndの0.61を公開しました。通知領域から昨日の変更ができていなかった酷いバグの修正と、内部動作の改良。DLL開放でメッセージ専用ウィンドウを、列挙とWM_NULLのポストによる通常の方法で対処できるようになりました。


gnyaclock.gifgnyaclockも2.0.2になりました。機能的にはGDI描画とGDI+描画の切り替えができるようになったぐらいですが、内部は別物です。PostScriptベースのOpenTypeフォントをGDI+で描画するためのQGraphicsText.dllが含まれています。

いずれもホームページ側のWin32コーナーにて。

JPEGのRST

| コメント(0) | トラックバック(0)
リスタートマーカーがどの程度実用になっているかと試してみました。

0FFDxhの下位3ビットが番号を表してRST0~RST7の8種類ですから、7連続で破損しても回復できるはずです。つまり例えばRST2の次が同じRST2の場合。

8連続以上を判別できないのは桁数の問題ですからどうにもなりません。MPEG-2 TSのcontinuity_counter(4ビット)も16連続以上は無理です。

そのJPEGですが、3連続の破損でずれました。ずれるつまり想定されるMCUの位置に進めなかったことを意味します。

私の実装だと回復できるのですが...IJGの実装のようですね。djpeg.exeでも確認しました。WindowsプレビューやFirefox等々。

jdmarker.cのjpeg_resync_to_restart()の中で再同期を処理していて、なるほど確かに2連続までしか復帰処理をしないようです。

そんなに派手に吹っ飛んだら表示し続けることの意味も薄いでしょうが、なぜ制限しているのでしょうね。

JPEG

| コメント(0) | トラックバック(0)
今の仕事に関係あるものの要求仕様にないところで、JPEG(ベースラインのみ)の実装をしてみました。

JPEG...夢でした。学生時代、まあ躁の気の迷いですから結局手つかずでしたが、「わかりやすいJPEG・MPEG2の実現法」なんて本を買ったりもしました。

ホストから短いパケット単位で送られてくるデータをその都度展開するという、能動的に読みに行く通常の動作と逆のものです。

マルチスレッドや割り込み優先度の差によって、データが必要サイズ揃うまで受信コールバックをブロックすればlibjpegの動作すら可能でしょうが、ちょっと作ってみたのです。必要RAMは3KB弱となりました。

以前Zlib展開の実装をしたことがありハフマン符号の理解があったこと、難関である逆離散コサイン変換に既存の(ライセンス的にOKな)関数を使ったことから、1週間程度で実用レベルのものができてしまいました。

ちなみに量子化テーブルやハフマンテーブルが一つのマーカーになっているもの、Y/C、DC/ACそれぞれ別々のマーカーになっているもの、と個性があるようでした。YCrCb 4:2:2のサンプルはImageMagickで作りましたが、出力できるソフトはあるのでしょうかね。

わかってしまえば至ってシンプルだなあ、というのが感想です。「非可逆」という割り切り、劇的な圧縮率。20年を越えて現役であり続けるのは凄いものです。

(追記2013/7/24)
YCrCb 4:2:2対応ソフトは少なくないようですが、GIFアニメ大学校様のこちらによると、Paint Shop Pro 8が色々設定できたようです。最新X5は不明ですが、さすがに4x2:2x2:2x2みたいなのは異常と言わざるを得ないような...。

ビラ

| コメント(0) | トラックバック(0)
bill.JPG出かけた帰り、浦和を歩いていると参院選候補者のビラが大量に路上に捨ててありました。ほとんど束になっている状態で、もらった人が捨てたものとは思えませんでした。

場所はイトーヨーカドー隣の薬局跡の角、線路沿いから一本入った道ですが、不自然きわまりない。

普通、選挙活動のビラ配りは駅前で行なうものでしょう。ビラを配る人があそこにいたとは考えにくいのですが、一体何がどうなってあそこに捨てたのか。

ともあれ都議会選で大負けした上にこの体たらく。下っ端の仕業にしても、ゴミの始末ぐらいしてもらいたいもんです。

月曜になってもまだあったので撮影しておきましたが、輪ゴムまでかかってますね。

ストロボスコープ

| コメント(0) | トラックバック(0)
「アリババタウン」取り込みはもう1年以上前のことでしたか。やはりプレーヤーの回転数をちゃんと調整しよう、と思いつつずるずると。

入手したプレーヤーはAIWAのPX-E860だったのですが、最近になって左手前のスイッチで回転数を切り替えることに気付きました。どうも今まで触ったことがあるものは全てフタの内側にありましたから、直径切り替えのレバーにしか注意が行かなかったようです。

なるほど確かに切り替わる。これでちゃんと再生できる目処が立ちました。

その調整をどうやったものか。前回はiPhoneで撮影して回転数を数えましたが、調べてみるとストロボスコープなるものがあるそうで。AC商用電源の周期に合わせた縞々を回して、静止して見えれば想定通りの回転数だとわかるもの。

Studio Kuro様のところでレコードプレーヤー用のストロボスコープを公開されていたので、それを使わせていただくことにしました。

しかし蛍光灯の下で行なったものでしょうが、今時インバーター式でない蛍光灯照明はありません。これも調べたところオヤイデ様が「LEDナツメ球が使える」との記事を書かれていましたので、早速電気店へ。

整流が甘い小型の廉価製品を使うのがポイントらしく、手持ちのクリップライトに付けるためE17のELPALDA1CN-G-E17-G455を購入してみたところ、バッチリでした。店頭で視線を左右に振って、光が点線に見える製品なら大丈夫。

しかし調整用の恐らく半固定抵抗でしょうか、それが裏面にあるのは整備性が悪いですね。滅多に触りはしませんが。ともあれ無事に調整できました。ストロボスコープも想像した通りのものでしたが、止まって見えると少し感動。

ちなみに実はもう針がないので、アピス様の互換品を使っていますが、自力で整備しちゃうと愛着が湧きますね。LPに手を出す...? 出してしまう...?

TortoiseSVN

| コメント(0) | トラックバック(0)
勤務先でTortoiseSVNの1.5系が使われているのですが、最終バージョン1.5.10に対し言語パックは1.5.9のままです。インストールしても選択できません。

英語で困るUIでもありませんが、言語パックのDLLのバージョンを本体と同じに書き換えたところ、選択できるようになりました。以下の4ファイルですが、チェックしているのは全てではないかもしれません。
  • TortoiseBlame1041.dll
  • TortoiseIDiff1041.dll
  • TortoiseMerge1041.dll
  • TortoiseProc1041.dll

さて、64ビット版Windowsでは64ビット版TortoiseSVNでないと、Explorerの右クリックメニューに出てきませんが、リリースされているのは1.6系以降のみです。

1.6系でもクライアントとしては問題ありませんが、リポジトリを1.5互換で作ることができません。

1.5系のコマンドライン版svnを使うか、1.6以降の場合だと以下の操作で作ることができました。

svnadmin create --fs-type fsfs --pre-1.6-compatible <path>
1

アーカイブ

ウェブページ

Powered by Movable Type 5.2.13

ホームページ