コンピュータが面白い方法で画像を保存することがあると聞いたのを覚えています。たとえば、隣接するいくつかのピクセルがまったく同じ色である画像の場合、これらのピクセルは、次の 30 個またはいくつかのピクセルがすべて「赤」であるという情報として保存されます。赤色。
サイズがギガバイトの大きなプログラムをダウンロードすることがありますが、最初は 900 kb のファイルです。これらは単に、ftp に接続するための単なるツールであり、通常は特にいくつかのデータを提供するものだと思います。
では、たとえば長期保存など、情報にすぐにアクセスする必要がない場合、ギガバイトの情報をキロバイトとして保存できないのはなぜでしょうか?
この例では、プログラムはサイズが 1024 キロバイトのファイルを圧縮するよう求められています。この情報を圧縮するために使用されるプログラムは、メモリ内のバイトが単純に {1,0,0,1,0,0,...} のパターンを形成していることを検出します。プログラムは、後で情報を解凍するように求められた場合に認識できるアルゴリズムを作成し、このパターンが占めるメモリの長さを保存します。元の情報が占めていたデータは、今でははるかに小さくなっています。
必要なアルゴリズムが複雑すぎてファイル全体を圧縮できない場合、圧縮解除が要求されたときに、コンピューターはデータを別のアルゴリズムに分割して、より短い長さのデータを出力することができます。
これはデータを圧縮するための現実的なアプローチですか? Windows 7などのプログラムがデータを「展開」することが時々あるため、これはすでに使用されている可能性があると思いました。これは、プログラムが実際に行っていることですか?