圧縮率が高いダミーファイルはどうやって作ればいいのか。dd コマンドのゼロ埋めとランダム埋めを組み合わせて作ってみる。
オンラインストレージサービスの Dropboxがローカルのフォルダとオンラインストレージを同期させるソフトのベータ版を公開している ((2/3) - Experimental Forum Build - 1.3.13 « Dropbox Forums)。ベータテスタへの特典として,容量制限値が 5 GB 増えるというので話題になっている。ヘルプには 500 MB のアップロード毎に 500 MB ずつ増やせると書いてあるが (Dropbox - Why didn't I get my free space for beta testing the latest forum build? -),どうやら 1 GB のファイルでもいいらしい。
効率よく容量アップする方法として,ダミーファイルを使う方法が紹介されている (Dropboxベータテスト参加で追加5GBを獲得するための手っ取り早い方法 | ひとりぶろぐ)。このダミーファイルは全部で5つで,拡張子が mp4 になっているが動画ファイルではない。Dropbox は,動画ファイルとしてのフォーマットを確認することはないので,中身は何でもいいのだ。ただし,5つとも全部違わなければならない。同じファイルであるかどうかにつては,Dropbox がチェックするからである。このダミーファイルが満たす条件はいくつかある。
最後の Zip 圧縮したときに容量が小さくなることは,Dropbox には関係がないが,ダウンロードして使うためには必要な条件になる。圧縮後の容量を小さくするには,ファイルの内容が単純でなければならない。例えば dd コマンドでゼロ埋めで作ってやればそれができるが (dd (UNIX) - Wikipedia),全部をゼロ埋めすると,すべてのファイルの内容が同じになってしまう。逆にランダムにすると,ファイルの内容は違うが,圧縮してもほとんど容量が変わらないことになってしまう。とすると,ランダムとゼロ埋めのハイブリッドのファイルであれば,この相反する条件が満たせるのではないか。
自分が作ろうと思ったらどうやるかと考えたオペレーションは例えば以下の通り。今回は Windows 7 上の Cygwin で行った。まずゼロ埋めした大きいファイルを作る。
ランダムな小さいファイルを5つ作る。
ゼロ埋めしたファイルと結合する。
自分のためにだけなら以上で終了。DUMMY001.mp4 - DUMMY005.mp5 を Dropbox に入れればよい。他の人に効率よく渡すには,圧縮率優先で Zip 圧縮すればよい (Man page of GZIP)。
これでメデタク展開すると合計 5 GB になる 5 MB の圧縮ファイルができた。
それにしても,この Dropbox のベータ版,SD カードや USB 外付けハードディスクから自動的にインポートできるというのは便利だが,ファイル名が日付時刻に自動変換されて「2012-02-07 22.42.10.mp4」のようになってしまうのは嬉しくない機能である。同じファイル名で同期して欲しいものだ。
Posted by n at 2012-02-07 22:53 | Edit | Comments (0) | Trackback(0)
Master Archive Index
Total Entry Count: 1957