LZ法で圧縮したデータについて
現在LZ法(LZ77)で圧縮したデータをバイナリエディタで見ております。
そのデータを解凍しなければならないため、とりあえずLZ法の圧縮/解凍プログラムを組みました。
とあるソフトが出力したデータなのですが、そこのドキュメントにはLZ77で圧縮しているという記述があります。
しかしバイナリエディタで中身を見ると、中間辺りにFF FF FF FFというFFの連なりが多量に見つかりました(20~30Byte)
LZ法のアルゴリズムの性質上、同じデータが連なるというのはありえないと思うのですが、認識違いでしょうか?
私はLZ77+huffmanを使っているのでは無いかと思っています。(しかしドキュメントにはLZ77の記述しかありません)
更にLZ法は圧縮情報の持ち方に規定が無い(RFC規定に準じた圧縮アルゴリズムを除く(gzip等))為
そのソフトが吐き出したLZ圧縮が掛かっていると思われるデータについての情報が無く
スライド窓の大きさのビット数などが分からないため、解凍に手を焼いています。
これはLZ法で圧縮したデータだよと言われて、只そのデータのみを渡されて
それを解凍するというのは可能なのでしょうか?
No.1ベストアンサー
- 回答日時:
いや…おっしゃるように、そりゃかなり無茶じゃないですか?LZ77は圧縮方式というよりはアルゴリズムでしかないわけですし、LZSSやLZMAもLZ77の一種とも言えるわけで、特定の実装を示していない。
おまけに圧縮後のヘッダサイズや圧縮のデータ構造も示していないわけですから…。
ただ、非常に単純なLZ77で圧縮した場合、FFが連続するようなことは考えられますよね。
ウィンドウサイズ限界の何倍かまで同じ文字列が繰り返し表れるような場合であれば、X文字前よりX文字分一致、というパターンが繰り返し出てくる可能性はあります。
ハフマン符号化をした場合はそういうパターンはむしろ残りにくいはずです。(文字列繰り返しがウィンドウサイズを超えているパターンが一部分にだけ固まっているということになるので、やや不自然)
また、圧縮前のファイル形式が分かっていれば、先頭付近のLZ77で圧縮されない部分のデータ形式から圧縮形式の一部を推定することは可能かも知れません。
余談というか、確信のない案のひとつになりますが…。
もっとも単純な方式として考えられるのは、1Byteで区切って一致位置・一致長を表すケースですよね。FFが連続するというところからは、4bitか8bitで区切っていそうに思えます。
LZ77であるなら、FFという文字のためのエスケープと言うことはないので、圧縮後にこれが連続するようなケースを考えると良いのではないでしょうか。
詳しく有難うございます!!
確かに単純なLZ法ですと、同じデータが連続していればffの塊があっても不思議ではないですね。
文字列の先頭から生のデータと思われる物を見ていったりしましたが
複数を出力すると、どうも何かのヘッダのようだと思われ、正直解凍は困難を極めています。
今回は恐らく見送る方になるかと思いますが、色々と試したという実績が必要でしたので
beefisdeadさんの案も大変参考になりました。
有難うございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 画像編集・動画編集・音楽編集 動画ファイルの圧縮方法についてはIフレームだのPフレームだの使って圧縮するらしいのですが、音声データ 1 2022/08/26 18:28
- 工学 冷凍機 凝縮器 凝縮温度について 2 2022/09/29 23:06
- その他(ブラウザ) Brave、Opera(データ圧縮)、Opera mini(高の高画質)ではどれがデータ量を節約出来 1 2022/05/08 12:59
- 情報処理技術者・Microsoft認定資格 問題 データの圧縮では圧縮後展開した結果の違いで2種類に分類される。説明せよ どのように分類されるん 2 2022/07/19 19:30
- Google Drive USB内の圧縮フォルダが開けません。教えて下さい! 1 2022/07/26 18:44
- その他(コンピューター・テクノロジー) どうすればExpressZip圧縮ソフトで再びpdfを圧縮、閲覧できますか? 4 2022/06/11 14:47
- iPhone(アイフォーン) iPhone 低解像度モードをオフにして iMessage で画像あるいは動画ファイルを送る場合、 2 2022/06/22 17:32
- その他(パソコン・スマホ・電化製品) スマホで送った写真がみれないということあるのでしょうか 3 2022/11/15 23:09
- Ruby 英数字を含む文字列(0-9,A-Z)の桁数圧縮をするには 5 2022/06/28 18:15
- PDF パワポ及びPDFのデータ量について 3 2023/07/20 10:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB】フォルダを圧縮処理したい
-
VB.NETでのzip圧縮について
-
破損させないで圧縮する方法
-
フォルダの中のフォルダも圧縮...
-
Powershellでzip圧縮が出来ない
-
数字を8文字の英数字にハッシュ化
-
Googleドライブで全く知らない...
-
フォルダが勝手に移動、エクス...
-
現在Macプロを使用しているので...
-
NotesのビューをEXCELシートに...
-
フォルダを削除しても勝手にま...
-
outlookのフォルダの順番の並べ...
-
大人数の作業においてエクセル...
-
見覚えの無いフォルダが勝手に...
-
outlookでadobepdfファイルが送...
-
ZIPファイルの解凍方法
-
Outlookの添付ファイル欄を広げ...
-
ISO-2022-JPという名の添付ファ...
-
MIBの取得ができません
-
インストールされているのに「...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.NETでのzip圧縮について
-
Powershellでzip圧縮が出来ない
-
bmp画像をtiff圧縮する方法
-
VB.Netでファイル圧縮する方法...
-
圧縮(lzh)を解凍するvbのサン...
-
パスワード付きzip圧縮を連続処...
-
パスワード付き圧縮を作成する...
-
数字を8文字の英数字にハッシュ化
-
フォルダの中のフォルダも圧縮...
-
フォルダとファイルを圧縮でき...
-
jpeg画像をより小さく圧縮する...
-
Notesの個人アドレス帳への登録
-
C#でcabファイルをつくる
-
【VB】フォルダを圧縮処理したい
-
VB2005 メール添付ファイルが...
-
【.net framework 3.5】インス...
-
LZ法で圧縮したデータについて
-
PDFファイルからテキストを抽出...
-
PHPでLHAを操作したいが・・
-
破損させないで圧縮する方法
おすすめ情報