※当サイトではアフィリエイト広告を利用しています
「可逆圧縮・非可逆圧縮」という言葉を聞いて、すぐに説明ができますか?
分かるようで分からない、しかも次々と登場していくIT用語。
業界について勉強し始めたばかり!という方にも分かりやすいようにまとめました。
これで「可逆圧縮・非可逆圧縮?聞いたことはあるけどよく知らない」から卒業しましょう!
今回は、可逆圧縮・非可逆圧縮について解説したいと思います。
可逆圧縮
可逆圧縮とは、データ圧縮方式の1つで、圧縮符号化の過程で元のデータを一切毀損せず、完全に元通りに復元できるように圧縮する手法のこと。
コンピュータプログラムや文字(テキスト)などのデータは、1ビットでも欠けたり変質するとその意味する内容自体が変わってしまうため、圧縮したデータを展開(解凍)したときに元のデータと完全に一致する可逆圧縮が行われる。
ファイルの圧縮によく使われるLZH、ZIP、CAB、画像圧縮形式のPNG、GIFなどは可逆圧縮。ロスレス圧縮ともいいます。
可逆圧縮の仕組み
主な可逆圧縮アルゴリズムとしては、ランレングス符号やハフマン符号などがあります。
ランレングス符号
最も基本的な圧縮アルゴリズムの一つで、連続して現れるデータを、繰り返しの回数で置き換えることによりデータ量を削減する方式です。
例えば、「AAAAABBBBBBCCCCCCCC」というデータを「A5B6C8」(Aが5個連続、Bが5個連続、Cが4個連続)という形に置き換えることで、3文字以上連続するデータは元の長さより短くなります。
実際には、データはビット単位(0と1の組み合わせ)で保持されるため、連続の無い・少ない区間への対策として、他の圧縮方式と合わせて利用されることが多いです。
ハフマン符号
文字列を区切り、区切られた後の文字列を統計的に処理して、出現確率が高いパターンに対して短い符号を設定することで全体のデータ量を圧縮する方法。
例えば「BASDEDEBAS」という文字列があれば、「BAS」に0「DE」に1を設定すれば、「0110」と短縮することができます。
ラングレス符号と違い、確実に圧縮することができますが、効率良く圧縮するためには、データ全体を調べる必要があり、時間がかかります。
非可逆圧縮
非可逆圧縮とは、データ圧縮方式のうち、圧縮符号化の過程でデータの一部の欠落や改変を許容することで極めて効率よく圧縮する手法のこと。
可逆圧縮とは異なり完全に元のデータを復元することはできないが、人間にほとんど違いがわからない程度の改変でも劇的に圧縮率を高めることができる利点があります。
そのため、非可逆圧縮されたデータを展開(解凍)しても元のデータには完全には一致しません。
画像や動画、音声など、データ上の細部が僅かに異なっていても人間の視聴覚には違いが気付きにくいため、画像や動画などの圧縮形式の多くが非可逆圧縮を採用しており、JPEG、MPEG-1、MPEG-2、MPEG-4、H.264、H.265、MP3、AAC、WMAなど主要なデータ形式のほとんどが非可逆となっている。
非可逆圧縮の仕組み
非可逆圧縮としては、特別なアルゴリズムがあるわけではなく、以下のような流れで圧縮が行われます。
1.元のデータを効率良く圧縮できる状態に加工・変換する。
2.可逆圧縮アルゴリズムを用いて圧縮処理を行う。
そのため、正確には、圧縮方式そのものが可逆と非可逆に分かれているわけではありませんが、実用的にはこの変換処理も含めて圧縮方式や圧縮形式の仕様の一部とみなされるため、分類として分けられています。