06/16 の x86/x64最適化勉強会4 で『「AMDで使うと遅いんだけど」』というタイトル(カギカッコまで含めてタイトル)で発表してきました。とても軽い内容ですが。

pptx@自鯖 / slideshareしばし待たれよ

Amazon が bot (ここでは ≒ web クローラ)を正規形である長い URL(ページ内容は同じ)にリダイレクトすることは、だいぶ昔から知られています。co.jp 以外は調べてませんが、co.jp でだけ特殊な動きをするってことも考えづらいので、多分同じでしょう。

技術的にまとまってるのは 404 Blog Not Found:http://www.amazon.co.jp/ の「二枚舌」に学ぶ究極のSEO(2007年の記事)で、ここを見ると特定の UserAgent だとリダイレクトするようだ、と書かれています。

Read the rest of this entry

2012年05月にいただいた寄付は以下の2件です。ありがとうございました。

日付 お名前 方法 金額
05/03 おくるだP 現金手渡し 1,000円
05/27 大木 裕子 PayPal 5,000円
性能向上
  • Mac で、RGB から ULY2 へのエンコードをアセンブラ化して高速化した。
  • 共通: デコードを少しだけ高速化した。
  • 共通: x64 で、エンコードを 10% 程度高速化した。
その他
  • Mac で、中間圧縮用コーデックとしては不要なフラグを出力しないことによって、エンコード後のサイズをちょっとだけ小さくした。

Read the rest of this entry

v210 という YUV422 10bpc の非圧縮映像フォーマットがあります。このフォーマットは16バイトに6ピクセルを pack するようになっています。4バイトごとに2ビット余りますが、そこは0を埋めます。

さて、AVI ファイル…というか BITMAPINFOHEADER には biBitCount という WORD メンバがあって、非圧縮のフォーマットの場合は平均 bpp を格納することになっています。上記のとおり16バイトに6ピクセルなので、21.333…bpp と非整数です。結局何を入れればいいのか分からないので手元のソフトウェアの動作を見てみると以下のようになりました。

VirtualDub 1.9.11 (ちょっと古い)
20 = 4バイトごとに余った2ビットを計算に入れない場合の bpp
Premiere Elements 4 (これまた結構古い)
16 = 8bpc として計算した場合(例: UYVY)の bpp

うーん?

あと、v210 を定義している(と思われる)文書では、QuickTime の場合では 24 にしろ、と書いてあるように読めます。

てんでバラバラなのでどうしたものやら。

2012年04月にいただいた寄付は以下の1件です。ありがとうございました。

日付 お名前 方法 金額
04/25 すいすい 銀行振り込み 10,000円

記帳は1日にやったのにblogに書くのを忘れるとはどういうことか。

そして超絶筋肉痛なう

バージョン 11.0.0 で、Mac 上で QuickTime 経由で MOV ファイルにエンコードすることができるようになりました。一方、昔からある Windows 版では AVI ファイルにエンコードします。この記事では、相互にどのように読み込みができるかを説明します。

Read the rest of this entry

機能追加
  • QuickTime for Mac 用エンコーダコンポーネントを追加した。RGB24/ARGB32 からのエンコードのみ。ULY2 は Windows と比較してあまり速くない。
バグ修正
  • ULY2: QuickTime デコーダで、映像の幅や出力バッファの寸法によっては、映像が乱れてデコードされる。

Read the rest of this entry

POSIX 環境で非同期的なタイマを使うには setitimer() を使いますが、これだとタイマが 1 個しか使えません。(正確には SIGALRM, SIGVALRM, SIGPROF という性質の違うタイマをそれぞれ 1 個ずつ)

さすがにこれでは厳しいということで、POSIX.1b には timer_create() という関数が定義されていて、これだと好きなだけタイマを作ることができます。さらに、setitimer() と違い、タイマごとに好きなシグナルを発生させることができますし、シグナルを発生させる代わりにスレッドを起動して通知関数を呼び出させることもできます。

Read the rest of this entry