マガジンのカバー画像

bzip2を読む

24
bzip2のソースコードを図解で紹介しています。
運営しているクリエイター

2018年6月の記事一覧

bzip2を読む ファイルフォーマット

こんにちは、junkawaです。 本記事では、bzip2の圧縮ファイルの形式について紹介します。 ス…

bzip2を読む ブロックソート10

こんにちは、junkawaです。 本記事では、前回に続きブロックソートアルゴリズムの「巡回行列…

bzip2を読む ブロックソート11

こんにちは、junkawaです。 本記事では、前回に続きブロックソートアルゴリズムの「巡回行列…

bzip2を読む MTF1

こんにちは、junkawaです。 本記事では、Move To Front (MTF) 変換について紹介します。 目…

bzip2を読む MTF2

こんにちは、junkawaです。 本記事では、Move To Front (MTF) 変換についてソースコードを交…

bzip2を読む MTF3

こんにちは、junkawaです。 本記事では、Move To Front (MTF) 変換についてソースコードを交…

bzip2を読む ハフマン符号1

こんにちは、junkawaです。 本記事では、bzip2で使われるハフマン符号について紹介します。 これまでのあらすじbzip2ではブロックソート、MTFを使って、下記方針のもとに入力データを変換します。  ・データに含まれるシンボルの出現頻度に偏りがでる  ・元のシンボルに戻すことが簡単な方式   (簡単とは、戻すための付加データが少ない、高速に復号できる、など) この段階ではbzip2の目的である、データサイズの圧縮は実現できていません。 これから説明する、「ハ

bzip2を読む ハフマン符号2

こんにちは、junkawaです。 今回は、ハフマン符号化の符号長割当についてソースコードを交え…

bzip2を読む ハフマン符号3

こんにちは、junkawaです。 本記事では、カノニカルハフマン符号(Canonical Huffman Code)に…

bzip2を読む ハフマン符号4

こんにちは、junkawaです。 本記事では、複数のハフマンテーブルを用いて符号化を行うマルチ…

bzip2を読む ハフマン符号5

こんにちは、junkawaです。 本記事では、複数のハフマンテーブルを使って符号化を行うマルチ…

bzip2を読む ハフマン符号6

こんにちは、junkawaです。 本記事では、ハフマン符号化で使用した情報を出力バッファに書き…

bzip2を読む ハフマン符号7

こんにちは、junkawaです。 本記事では、ハフマン符号化で使用した情報を出力バッファに書き…

bzip2を読む ハフマン符号8

こんにちは、junkawaです。 本記事では、ハフマン符号後のデータを出力バッファに書き出す処理について紹介します。 コードの紹介sendMTFValues() @ compress.c https://github.com/junkawa/bzip2/blob/master/bzip2-1.0.6/compress.c#L239 544: /*--- And finally, the block data proper ---*/ MTF変換後のデータをハ