|
|
|
第343回:データ圧縮 とは
|
|
|
|
大和 哲 1968年生まれ東京都出身。88年8月、Oh!X(日本ソフトバンク)にて「我ら電脳遊戯民」を執筆。以来、パソコン誌にて初歩のプログラミング、HTML、CGI、インターネットプロトコルなどの解説記事、インターネット関連のQ&A、ゲーム分析記事などを書く。兼業テクニカルライター。ホームページはこちら。 (イラスト : 高橋哲史) |
|
「データ圧縮」とは、データに含まれる情報の意味を失わず、あるいは損ねずに、そのサイズを縮めることです。
携帯電話に限らず、機械が扱うデータには冗長で大きなサイズのデータが多く含まれています。しかし、コンピュータの処理スピードやメモリの容量、それに通信回線の帯域などのリソースには限りがあります。これらのリソースを、より有効に扱うため、携帯電話を含むデジタル情報機器ではさまざまな形で内部、あるいは外部とやり取りするデータを圧縮してから扱っているのです。
■ さまざまな圧縮方式
携帯電話を含むデジタル情報機器は非常にさまざまなデータの圧縮を行ないますが、大きく分けて2つの圧縮方式があります。
1つは、「可逆圧縮」です。これは圧縮データを再度、同じ全く同じ形のデータに戻せる方式です。圧縮しても失う情報がないことからロスレス(lossless)圧縮と呼ばれることもあります。
もう1つは非可逆圧縮(不可逆圧縮)です。これは、可逆圧縮と異なり、同じ形に復元できず、情報を一部欠落させてデータサイズを小さくするという圧縮方法です。ロッシー(lossy)圧縮と呼ぶこともあります。
本当にさまざまな場面でこれらの圧縮は使われていますが、たとえば、一例をあげると可逆圧縮は、たとえば、iアプリなどのJavaアプリケーションの圧縮に使われています。
携帯電話が使うJavaアプリは、プログラム本体やプログラムが使うデータがJar形式として圧縮され、サーバーに格納されています。携帯電話がサーバーから読み込んだ後、電話機内部で圧縮前のプログラムファイルの形に直してから使用しています。こうすることでプログラムをダウンロードするのに必要なパケット通信量を減らすことできるのです。
Javaアプリで扱うデータは、プログラム本体など、いずれも内容が1ビットでも変わってしまってはいけないものです。もし、内容が変わってしまうと、プログラムを実行するJava計算機がプログラムの内容を正しく解釈できず、プログラムを正常に実行できなかったり、最悪の場合は暴走したりする可能性があります。
そのため、データ圧縮方式には、扱うデータを圧縮前と同じ形に復元できる可逆圧縮が使われているわけです。
|
プログラム、データなどの圧縮には、圧縮前と完全に同じデータに戻せる「可逆圧縮」が使われる
|
基本的に、この可逆圧縮では、情報そのものを保ったままデータのサイズを小さくするために、データの冗長性や繰り返し性を利用したアルゴリズムを利用してデータ圧縮を行ないます。
可逆圧縮の技法でよく知られているものとしては、データに同じ内容が繰り返し出てくるようであれば繰り返し回数の情報で置き換えることで、データ容量を少なくする「ランレングス方式」や、データ中に同じ内容が出てきた場合にそれを辞書テーブルとして保存することでデータ量を少なくする「辞書圧縮」、辞書圧縮の応用で頻繁に出てくる情報をより少ないビット数で表すように変更することで「ハフマン符号化」などがあります。
また、非可逆圧縮は、たとえばカメラ機能で撮影した画像を携帯電話内のメモリに記録するときなどに使われています。携帯電話のメモリカードなどに記録されているJPEGという形式の画像データは、非可逆圧縮方式で圧縮した画像なのです。
JPEGでは、DCT(離散コサイン変換)法という技法を使って、画像のデータを非常に小さく圧縮します。この圧縮技法は、簡単に言うと「人間の目にあまり気にならない部分の情報を省略する」ことで画像のデータサイズを縮める方法です。
空を映した写真で考えてみましょう。一口に空と言っても、部分によって微妙に色が違います。ですが、青いことには変わりありませんので、似たような色であれば、同じ色だということにしてデータを圧縮しやすい形に見なすわけです。この繰り返しで、写真全体を表現するために必要な情報量はオリジナルよりかなり小さくすることができるわけです。
可逆圧縮ですと圧縮元の情報を失わないようにデータサイズの縮小を行なうため、ある程度までしか小さくすることはできません。一方、非可逆圧縮では、一般的にどんなデータでも非常に小さくすることが可能、という特徴があります。ただし、あまりデータサイズを小さくしすぎてしまうと、人間の目に気になるほどの品質劣化を招くことになります。
|
非可逆圧縮は、一部情報が欠落しても人間の目にとって同じ情報であればよい、画像ファイルの圧縮などに使われている。JPEG画像では、ある範囲内で似た色の部分はあえて同じ色にしてしまうことで画像データサイズを小さくしている
|
最近では、画像や音声の非可逆データ圧縮に関しては、離散コサイン変換ではなくウェーブレット変換を利用することで、高圧縮でありながら人間の目や耳には違いがわかりにくい圧縮、つまり冗長データの省略を行なうような圧縮アルゴリズムが研究され、実用化されています。
新しい画像フォーマット「JPEG2000」は、離散ウェーブレット変換を利用し、ブロックノイズなどが目立たない画像データ圧縮を実現しています。
(大和 哲)
2007/10/17 10:40
|
ケータイWatch編集部 k-tai@impress.co.jp
Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.
|
|
|
|
|
|