「写真は千の言葉に値する」-それで、古いことわざは言う。平均的な単語の長さは約4文字なので、写真は4kBの情報を伝えます。しかし、情報ではなく、どのくらいのエントロピーが絵で伝えることができますか?
あなたの仕事は、可能な限り最高のエントロピーで、サイズがちょうど4,000バイトのイメージを生成することです。選択した任意の言語、ライブラリ、または画像形式を使用でき、ここに画像をアップロードする限り、コンソールまたはファイルに出力できます。
得点
スコアは、DEFLATEアルゴリズムとデフォルト設定(具体的にはcommand)を使用して、GNU tar
バージョン1.28およびgzip
バージョン1.6で画像を圧縮した場合の圧縮率(4000÷圧縮サイズ)ですtar -czvf out.tar.gz image
。最小の圧縮率が優先されます。
gzip -n image
4000バイトの入力を与えられた4023バイトよりファイルを大きく生成することはできません。ヘッダーには10バイト、フッターには8バイト、DEFLATEブロックのヘッダーとパディングには1バイト、DEFLATEブロックのサイズには4バイトが必要です。残りは非圧縮バイトとして保存されます。ランダムビットで構成されるほとんどのファイルは、圧縮されていない状態で保存されます。
tar
デフォルトでは、出力ファイルにmtimeを含むメタデータが含まれます。これは、最終的な圧縮ファイルのサイズに影響を与えます-一部のmtimesは他のmtimesよりもよく圧縮されます。コマンドを変更するgzip -n image
と、mtime(および入力ファイル名)に関係なく出力サイズが決定的になります。