タグ

2007年12月25日のブックマーク (3件)

  • 高速な算術圧縮を実現する「Range Coder」:CodeZine

    はじめに 記事では、全体のサイズが最小となる算術圧縮を高速に実現するRange Coder(以下RC)を紹介します。 算術圧縮は、各文字の出現確率が分かっている場合にそのデータを最小長で表現可能な符号法です。各文字に固定の符号を割り当てるHuffman法とは違い、符号化を状態更新とみなし、すべての文字を符号し終わった後の状態を保存することで符号化を実現します。これにより1文字単位の符号長を1bitより細かく調整することが可能となります。 算術符号は圧縮率が高い反面、ビット単位の演算処理が大量に発生するため、符号化、復号化ともにHuffman符号に比べ遅いという問題点があります。今回紹介するRCは、算術符号の処理をバイト単位で行うことで高速な処理を可能にします。 また、算術圧縮については概要から説明します。対象読者 C++の利用者を対象としています。データ圧縮の基礎を知っていることが望まし

  • Tx: Succinct Trie Data Structure

    English 概要 TxはコンパクトなTrieを構築するためのライブラリです.従来のTrieの実装(darts等)に比べ1/4〜1/10の作業領域量で辞書を保持することができ、数億〜十億キーワードなど大規模な辞書を扱うことが可能です.Trieは文字列からなるキー集合を処理するデータ構造で、キーが辞書に含まれているかのみではなく、キーのPrefixが含まれているかを高速に求めることができます.内部データ構造にはSuccinct Data StructureであるLevel-Order Unary Degree Sequence (LOUDS)を利用しています. ダウンロード Txはフリーソフトウェアです.BSD ライセンスに従ってソフトウェアを使用,再配布することができます. tx-0.12.tar.gz: HTTP Archives tx-0.11.tar.gz: HTTP tx

  • Bep: 大規模コレクション向けの連想配列

    English 概要 Bepは大規模なコレクションからなる連想配列を扱うためのライブラリです.連想配列は文字列からなるキーを利用して任意のオブジェクトを登録・参照できるデータ構造です.C++ではSTL map, hash_mapなどが知られていますが,数千万から数億個のコレクションを処理する場合,使用メモリ量が非常に大きくなってしまう問題点がありました.Bepは内部に最小完全ハッシュ関数を利用し,従来の実装に比べ少ない作業領域量でコレクションを保持します.キー自体を除けば,1keyあたりの作業領域量は約3bitです(全体では,(keyを全てつなげた長さ) + (3/8*key種類数)バイト必要です) ダウンロード Bepはフリーソフトウェアです.BSD ライセンスに従ってソフトウェアを使用,再配布することができます. bep-0.01.tar.gz: HTTP 更新情報 2007-