リッチテキストに文書を添付する - どれがお得?
添付ファイルの圧縮形式はハフマン形式からLZ1形式になって圧縮率が向上した、と言う話を聞いている人は多いと思います。
この圧縮形式がそんなに賢いのであれば、重めのワードファイルとかをZIPにして添付する(ZIP や画像ファイルは圧縮対象外になります)事はもう意味が無いのでしょうか?
ちょっと気になってテストしてみました。
■ テスト環境
Lotus Notes 8.5 ja on Windows XP SP3
ローカルDBとして、ノートブック(8) テンプレート(note8book.ntf) をテンプレートにDBを作成
以下の3つのファイルでテスト
JPG ファイル: 217,515バイト (基本的にLZ1圧縮などの対象外となるファイル)
PPT ファイル: 1,032,704 バイト (典型的なドキュメントファイル)
TXT ファイル: 4,088,274 バイト (圧縮効果が出やすいテキストファイル)
メニューから[ファイル]-[添付]でファイルを添付するときに以下の4つのケースでテスト
・ 「圧縮」を外して添付
・ 「圧縮」をつけたまま添付
・ 添付前にZIP圧縮したまま添付 (ZIP形式は添付ファイル圧縮対象外になります)
・ 添付前にLZH圧縮したまま添付 (同様に圧縮対象外になります)
■ 参考情報
クライアント上のデータベースの添付ファイルの圧縮形式をLZ1 に変更するには以下のようにします。
ncompact -C -ZU xxx.nsf
(参考)既存の添付ファイルの圧縮形式を Huffman 形式から LZ1 形式にアップグレードする方法
このとき、「圧縮なし」で添付したものも LZ1形式の添付ファイルになってしまうので注意が必要です。
添付ファイルの圧縮形式を確認するには文書のプロパティで$FILEアイテムの圧縮の種類の項目を見て判断します。
■ テスト結果
以下のような結果になりました。単位はすべてバイトです。
JPG
元々圧縮されない形式なのでこんなものかな、て思います。
圧縮なし: 219,898
ハフマン: 219,907
LZ1 : 208,009
ZIP : 168,228
LZH : 181,430
PPT
LZ1圧縮が10%近い圧縮率を見せましたが、ZIPなどのアーカイバは20%近い圧縮率を示しており、やはりZIP/LZHが有利
圧縮なし: 1,035,539
ハフマン: 1,008,602
LZ1 : 936,449
ZIP : 889,870
LZH : 894,598
TXT
唯一ハフマン形式が有意な圧縮率を示したものの、LZ1圧縮では5分の1近くなっており、ZIP/LZHでは8分の1近いサイズまで圧縮されている。
圧縮なし: 4,091,891
ハフマン: 2,518,318
LZ1 : 843,106
ZIP : 496,099
LZH : 487,204
■ 結論
上記のテスト結果を踏まえると以下のように言えるのではないでしょうか。
・ ハフマン圧縮ではテキストファイルのような圧縮しやすい形式で無いとほとんどの場合有意な圧縮率を示さない
・ LZ1 圧縮では有意な圧縮が確認された
・ しかしながら、どちらの圧縮も既存アーカイバの圧縮率よりは劣る
と言うわけで残念ながらやはり、大きな添付ファイルは圧縮して添付するのが賢いようですね。。。
こうやって考えると、ハフマン圧縮よりも圧縮率が高い事は示せたと思うので、LZ1圧縮にすればMS WordやPowerpoint などのドキュメントファイルが多く添付されている文書では特に効果的である、と言うことは言えるかもしれませんね。
それと個人的にはあまり使っている人がいないようなのでテストに含めるのは止めましたが、7-zip形式(*.7z)が結構優秀でした。上のテストケースだとどれも7-zip形式はすべて他のアーカイバよりもよい圧縮率を示していました。
と言うわけでこんな話もみなさんの役に立ったでしょうか・・・・
この圧縮形式がそんなに賢いのであれば、重めのワードファイルとかをZIPにして添付する(ZIP や画像ファイルは圧縮対象外になります)事はもう意味が無いのでしょうか?
ちょっと気になってテストしてみました。
■ テスト環境
Lotus Notes 8.5 ja on Windows XP SP3
ローカルDBとして、ノートブック(8) テンプレート(note8book.ntf) をテンプレートにDBを作成
以下の3つのファイルでテスト
JPG ファイル: 217,515バイト (基本的にLZ1圧縮などの対象外となるファイル)
PPT ファイル: 1,032,704 バイト (典型的なドキュメントファイル)
TXT ファイル: 4,088,274 バイト (圧縮効果が出やすいテキストファイル)
メニューから[ファイル]-[添付]でファイルを添付するときに以下の4つのケースでテスト
・ 「圧縮」を外して添付
・ 「圧縮」をつけたまま添付
・ 添付前にZIP圧縮したまま添付 (ZIP形式は添付ファイル圧縮対象外になります)
・ 添付前にLZH圧縮したまま添付 (同様に圧縮対象外になります)
■ 参考情報
クライアント上のデータベースの添付ファイルの圧縮形式をLZ1 に変更するには以下のようにします。
ncompact -C -ZU xxx.nsf
(参考)既存の添付ファイルの圧縮形式を Huffman 形式から LZ1 形式にアップグレードする方法
このとき、「圧縮なし」で添付したものも LZ1形式の添付ファイルになってしまうので注意が必要です。
添付ファイルの圧縮形式を確認するには文書のプロパティで$FILEアイテムの圧縮の種類の項目を見て判断します。
■ テスト結果
以下のような結果になりました。単位はすべてバイトです。
JPG
元々圧縮されない形式なのでこんなものかな、て思います。
圧縮なし: 219,898
ハフマン: 219,907
LZ1 : 208,009
ZIP : 168,228
LZH : 181,430
PPT
LZ1圧縮が10%近い圧縮率を見せましたが、ZIPなどのアーカイバは20%近い圧縮率を示しており、やはりZIP/LZHが有利
圧縮なし: 1,035,539
ハフマン: 1,008,602
LZ1 : 936,449
ZIP : 889,870
LZH : 894,598
TXT
唯一ハフマン形式が有意な圧縮率を示したものの、LZ1圧縮では5分の1近くなっており、ZIP/LZHでは8分の1近いサイズまで圧縮されている。
圧縮なし: 4,091,891
ハフマン: 2,518,318
LZ1 : 843,106
ZIP : 496,099
LZH : 487,204
■ 結論
上記のテスト結果を踏まえると以下のように言えるのではないでしょうか。
・ ハフマン圧縮ではテキストファイルのような圧縮しやすい形式で無いとほとんどの場合有意な圧縮率を示さない
・ LZ1 圧縮では有意な圧縮が確認された
・ しかしながら、どちらの圧縮も既存アーカイバの圧縮率よりは劣る
と言うわけで残念ながらやはり、大きな添付ファイルは圧縮して添付するのが賢いようですね。。。
こうやって考えると、ハフマン圧縮よりも圧縮率が高い事は示せたと思うので、LZ1圧縮にすればMS WordやPowerpoint などのドキュメントファイルが多く添付されている文書では特に効果的である、と言うことは言えるかもしれませんね。
それと個人的にはあまり使っている人がいないようなのでテストに含めるのは止めましたが、7-zip形式(*.7z)が結構優秀でした。上のテストケースだとどれも7-zip形式はすべて他のアーカイバよりもよい圧縮率を示していました。
と言うわけでこんな話もみなさんの役に立ったでしょうか・・・・
コメント
Re: リッチテキストに文書を添付する - どれがお得?
ただ、全文検索のことや、ユーザーの利便性などを考え、圧縮率がzipのほうが上であることはわかった上で、DominoではLZ1を積極的に選択したい、と個人的には思っています。
(利便性という観点では、EMを使って自動的にzip化するソリューションもUSではあるらしいのですが、クライアントへのdll配布など大変でしょうし、やっぱりLZ1の圧縮率に満足するのが総合的によいのかなーと。)
2009-05-27 22:40 Murakami URL 編集
確かに圧縮してあると面倒ですよね
DBメンテ上はいいけど、確かに資料とかがZIPになっていると少し見るの面倒くさいな、て思ってしまうのでLZ1の力に頼って添付!と言うのもいいと思いますね。。
確かに圧縮しないで添付すれば、全文検索でヒットする、てかなり重要な要素ですよね。。
2009-05-27 23:41 長島 広隆 URL 編集