JP2010258532A - ビット長を符号に変換する回路及び方法 - Google Patents
ビット長を符号に変換する回路及び方法 Download PDFInfo
- Publication number
- JP2010258532A JP2010258532A JP2009103213A JP2009103213A JP2010258532A JP 2010258532 A JP2010258532 A JP 2010258532A JP 2009103213 A JP2009103213 A JP 2009103213A JP 2009103213 A JP2009103213 A JP 2009103213A JP 2010258532 A JP2010258532 A JP 2010258532A
- Authority
- JP
- Japan
- Prior art keywords
- assigned
- bit length
- code
- codes
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 76
- 238000012545 processing Methods 0.000 claims abstract description 20
- 238000006243 chemical reaction Methods 0.000 claims abstract description 3
- 238000000605 extraction Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 abstract description 10
- 238000007906 compression Methods 0.000 description 24
- 230000006835 compression Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 10
- 238000000926 separation method Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 2
- 241000700605 Viruses Species 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013144 data compression Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/42—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
【解決手段】ハフマンテーブル復号回路において、文字に割り当てられたビット長の入力に応じて、各文字に割り当てられたビット長をbl[N]に格納し、同じビット長が割り当てられた文字列の中での各文字列の順番をcode_fin[N]に格納する。また、同じビット長が割り当てられた文字の数をbl_count[M]に格納し、これに基づき、同じビット長を有する最小符号をcode_min[M]に格納する。これにより、セレクタ31が、code_min[M]に格納された複数の最小基準のうちbl[N]で指定された最小符号を取り出し、加算回路32が、これをcode_fin[N]に格納された値に加算する処理を並列に行い、その結果を文字に割り当てられた符号とする。
【選択図】図10
Description
そのため、ハフマン符号化では、各文字に割り当てた符号を保持するハフマンテーブルを作成し、圧縮データに付加しておく。そして、圧縮データの復号は、このハフマンテーブルを参照して行う。
具体的には、deflate圧縮では、ハフマンテーブルにおいて、各文字に割り当てた符号を保持するのではなく、各文字に割り当てた符号の長さ(ビット長)を保持する。同じビット長のグループの中での符号の割り振り方を、ASCIIコード順(対象がアルファベットであればアルファベット順)と定義することにより、ビット長から一意に符号を決定することが可能である。例えば、A,C,Dに割り当てられたビット長が何れも「3」であった場合、Aの符号が「100」と決まれば、C,Dは、それぞれ順番に「1」を加算することにより、「101」、「110」と決定することができる。
特許文献1では、復号化対象の符号が標準のハフマンテーブル又は非標準のハフマンテーブルの何れを使用して符号化されたものかを判定し、標準のハフマンテーブルを使用して符号化されたものであると判定された場合には、標準復号化回路にて標準のハフマンテーブルを使用して復号化し、非標準のハフマンテーブルを使用して符号化されたものであると判定された場合には、ソフトウェア処理手段にて非標準のハフマンテーブルを使用して復号化している。
特許文献2では、圧縮したデータストリーム中の有効なハフマン符号の長さに対して試験を行なうと共に、試験基準に対応するオフセットを使うことにより、ハフマン復号化の実行時間を短縮している。
しかしながら、これらの手順をハードウェアで実現しようとした場合、手順(2)においてはビット長の数だけ、手順(3)においては符号の数だけ、繰り返し処理を行わなければならない。そのため、符号の数が多い場合には処理時間が増大してしまう。
尚、特許文献1、2の技術は、各文字にビット長を割り当てたハフマンテーブルを作成し、ビット長に基づいて各文字を復号する場合のこのような問題点に着目したものではない。
また、基準符号生成部は、複数段の回路を含む並列計算回路であって、各段の回路が、第1のビット長が割り当てられた文字列の数を表すビット列を左に1ビットシフトすることによって得られたビット列と、第1のビット長より1つ長い第2のビット長が割り当てられた文字列の数を表すビット列とを加算し、この加算によって得られたビット列を左に1ビットシフトする回路である並列計算回路を用いて、複数の基準符号を生成する、ものであってよい。
更に、基準符号生成部は、所定数のビット長に関する所定数の処理であって、ビット長M(Mは自然数)に関する処理が、ビット長Kが割り当てられた文字列の数を表すビット列を左に(M−K)ビットシフトすることによって得られたビット列を、KがMより小さな自然数である場合について足し合わせる処理である所定数の処理を、並列に行うことにより、所定数の基準符号を生成する、ものであってよい。
[deflate圧縮におけるハフマンテーブルの圧縮方法]
図1は、本実施の形態で用いるハフマンテーブルの具体例について、その圧縮方法を示した図である。
図において、太矢印の左側は圧縮前のハフマンテーブルを、太矢印の右側は圧縮後のハフマンテーブルを示す。即ち、圧縮前のハフマンテーブルでは、各文字に対して符号を割り当てているが、圧縮後のハフマンテーブルでは、各文字に対して、符号の代わりに符号のビット長を割り当てている。具体的には、A,B,C,D,Eに対して、「010」、「011」、「100」、「101」、「110」の代わりに「3」を割り当て、Fに対して、「00」の代わりに「2」を割り当て、G,Hに対して、「1110」、「1111」の代わりに「4」を割り当てている。尚、一般には、文字列に対して符号やビット長を割り当てることも可能であるが、本実施の形態では、文字に対して符号やビット長を割り当てるものとして説明する。
図2は、本実施の形態におけるハフマン復号装置の構成例を示した図である。
このハフマン復号装置としては、例えば、圧縮されたデータを解凍しウイルスチェック等を行って再び圧縮する処理をすばやく行うことが要求されるルータ等の通信機器が例示されるが、PC(Personal Computer)等の一般的なコンピュータであってもよい。
図示するように、ハフマン復号装置は、ハフマンテーブル復号回路100と、ハフマンテーブル分離回路200と、ハフマン復号回路300とを含む。
尚、本実施の形態では、「文字」と称しているが、これは数字や記号を除外する趣旨ではない。但し、以下では、簡略化のため、文字としてアルファベットを例にとり説明する。
使用回数算出回路10は、圧縮後ハフマンテーブルデータが入力されると、各ビット長の使用回数、つまり、ビット長ごとのアルファベットの数を算出する。
最小符号算出回路20は、使用回数算出回路10により算出された各ビット長の使用回数に基づいて、各ビット長に割り当てられた符号のうちの最小の符号である最小符号を決定する。
割り当て符号算出回路30は、最小符号算出回路20により決定された最小符号に、各符号のビット長のグループごとの順番を加算して、最終的な符号を文字に割り振る。
更に、ハフマン復号回路300は、ハフマンテーブル分離回路200から入力された圧縮後データに含まれる符号を、ハフマンテーブル復号回路100から入力された圧縮前ハフマンテーブルデータにおいてその符号が割り当てられた文字に置き換えることによって圧縮前データに戻し、出力する。
(使用回数算出回路10)
図3は、一般的な使用回数算出回路10について示した図である。
図には、使用回数算出回路10に対して、圧縮後ハフマンテーブルデータ「3,3,3,3,3,2,4,4」が入力されていることが示されている。この場合、圧縮後ハフマンテーブルデータにおける1つのビット長が1クロックで入力されるものとする。すると、セレクタ11が、入力されたビット長ごとに、そのビット長に対応するbl_count[M]にその時点で格納されていた数を取り出す。そして、カウンタ12が、取り出された数に「1」を加算した数を元のbl_count[M]に格納する。
これにより、入力されたビット長ごとに、その使用回数がbl_count[M]に格納される。図の例では、全てのデータが入力された時点で、bl_count[2]、bl_count[3]、bl_count[4]に「1」、「5」、「2」が格納される。
図4は、一般的な最小符号算出回路20について説明するための図である。
この最小符号算出回路20では、(a)に示す式により、各ビット長の最小符号(code_min)が決定される。尚、この式は、RFC1951に定義されている。詳細は省略するが、「code = (code + bl_count[bits-1]) << 1」の計算を行えばよい。
図5は、各文字に割り振られたビット長に加え、各文字に割り振られた符号を示した図である。
最小符号算出回路20により各ビット長の最初の符号が決定されたので、割り当て符号算出回路30は、ビット長のグループごとにアルファベット順に「1」を加算しながら符号を割り振る。この場合、処理時間はO(A)となる。この例では、A=8(clock)であるが、286個の文字全てを対象とする場合、A=286(clock)となる。
まず、使用回数算出回路10は、ハフマンテーブルのデータをそのまま流せば完了する。ところが、全てのデータを流し終えた後、最小符号算出回路20で最大15クロック、割り当て符号算出回路30で最大286クロックかかるため、合計で最大301クロック後でなければ、ハフマンテーブルの復号が完了しない。
ハフマンテーブルを復号し、復号したハフマンテーブルを用いて圧縮データを復号し、この圧縮データの復号と並行して、次のハフマンテーブルを復号する、というパイプライン処理をスムーズに行うことができれば、圧縮データの解凍もスムーズに行うことができる。しかしながら、全てのデータを流し終えた後、圧縮前のハフマンテーブルを得るまでに最大301クロックもかかっていたのでは、パイプライン処理はスムーズに行えない。即ち、最小符号算出回路20及び割り当て符号算出回路30の処理が、パイプライン処理を行う上でボトルネックとなっている。
(使用回数算出回路10)
図6は、本実施の形態における使用回数算出回路10について示した図である。
本実施の形態では、図3に示したようにビット長ごとのアルファベットの数を数えるだけではなく、その時点でbl_count[M]に格納されていた値を、同時にハフマンテーブルに記録する。つまり、セレクタ11が、入力されたビット長ごとに、そのビット長に対応するbl_count[M]にその時点で格納されていた値を取り出す。そして、カウンタ12が、取り出された値に「1」を加算した値を元のbl_count[M]に格納するが、その際、セレクタ11によって取り出された値は、入力されたビット長に対応する文字に対するcode_fin[N]にも格納される。つまり、図3の回路に対して、各文字の同じビット長における順番をハフマンテーブルに書き込む回路を追加している。
尚、bl_count[M]に格納された値は、同じビット長が割り当てられた文字列の数の一例であり、bl[N]に格納された値は、各文字列に割り当てられたビット長の一例であり、この時点でcode_fin[N]に格納された値は、同じビット長が割り当てられた文字列の中での各文字列の順番の一例である。また、本実施の形態では、これらの情報を記録する記録部の一例として、使用回数算出回路10を設けている。
図7は、本実施の形態における最小符号算出回路20について説明するための図である。
この最小符号算出回路20でも、図4(a)に示す式により、各ビット長の最小符号(code_min)が決定される。この最小符号(code_min)は、図4(c)に示したものと同様であるが、再度、図7(a)に示す。
図7(b)に、並列計算回路の一例を示す。この並列計算回路の第1段の回路では、シフト回路22−1が、bl_count[0]を左に1ビットシフトすることによりcode_min[1]を算出し、このcode_min[1]がフリップフロップに保持されることなくそのまま加算回路21−2に入力される。また、第2段の回路では、加算回路21−2が、code_min[1]とbl_count[1]を加算し、シフト回路22−2が、その結果を左に1ビットシフトすることによりcode_min[2]を算出し、このcode_min[2]がフリップフロップに保持されることなくそのまま次の段の加算回路に入力される。以降、同様の計算を繰り返し、第15段の回路では、加算回路21−15が、code_min[14]とbl_count[14]を加算し、シフト回路22−15が、その結果を左に1ビットシフトすることによりcode_min[15]を算出する。そして、この並列計算回路では、各段の回路の算出結果が15段の回路を流れるのが十分に速ければ、全ての最小符号を1クロックで計算することも可能となる。
そこで、この場合のオプティマイズ方法について説明する。
図7(b)の回路におけるクリティカルパス(最大遅延)はcode_min[15]である。そこで、code_min[15]の計算を最適化する。
図8(a)は、図4(a)の計算式によるcode_min[15]の算出過程を示した図である。ここで、BKは、bl_count[K]の各ビットの値を示し、C15は、code_min[15]の各ビットの値を示す。各ビットの値を全て同じ記号BK、C15で示すが、これは各ビットの値が等しいことを意味するものではない。図から分かるように、code_min[15]は、bl_count[K]を左に(15−K)ビットシフトしたものを足し合わせることで求められる(K=1,2,3,…,14)。
図8(b)は、このことを踏まえて図8(a)を書き換えた図である。このような加算を行う加算回路は、十分1クロックで処理を完了できる回路規模である。
図9は、各文字に割り振られたビット長に加え、各文字に割り振られる符号の算出式と、その算出式によって算出された符号とを示した図である。
即ち、本実施の形態では、使用回数算出回路10により、ハフマンテーブル内のcode_fin[N]にアルファベットごとの同じビット長における順番が既に格納されている。そこで、割り当て符号算出回路30は、このcode_fin[N]に対して、計算式の欄に示すように、最小符号算出回路20により算出されたビット長に応じた最小符号を加算する。
この並列加算回路では、セレクタ31−1が、bl[1]に格納されたビット長「3」に対応する最小符号code_min[3]に格納された値「010」を取り出す。そして、加算回路32−1が、code_fin[1]に格納された値「000」に対して、最小符号code_min[3]に格納された値「010」を加算し、ハフマンテーブルにおける1番目の文字「A」に割り当てる符号とする。
また、セレクタ31−2が、bl[2]に格納されたビット長「3」に対応する最小符号code_min[3]に格納された値「010」を取り出す。そして、加算回路32−2が、code_fin[2]に格納された値「001」に対して、最小符号code_min[3]に格納された値「010」を加算し、ハフマンテーブルにおける2番目の文字「B」に割り当てる符号とする。
更に、セレクタ31−3が、bl[3]に格納されたビット長「3」に対応する最小符号code_min[3]に格納された値「010」を取り出す。そして、加算回路32−3が、code_fin[3]に格納された値「010」に対して、最小符号code_min[3]に格納された値「010」を加算し、ハフマンテーブルにおける3番目の文字「C」に割り当てる符号とする。
更に、セレクタ31−7が、bl[7]に格納されたビット長「4」に対応する最小符号code_min[4]に格納された値「1110」を取り出す。そして、加算回路32−7が、code_fin[7]に格納された値「0000」に対して、最小符号code_min[4]に格納された値「1110」を加算し、ハフマンテーブルにおける7番目の文字「G」に割り当てる符号とする。
このように、図9で説明した計算の全てを並列加算回路で行うことで、1クロックで処理が完了する。
まず、使用回数算出回路10は、ハフマンテーブルのデータをそのまま流せば完了する。全てのデータを流し終えた後、最小符号算出回路20、割り当て符号算出回路30とも、1クロックで処理可能であるため、合計2クロック後には、ハフマンテーブルが完成する。従って、パイプライン処理をスムーズに行うことが可能となる。
図11は、このときの動作の流れを示したフローチャートである。
図示するように、本実施の形態におけるハフマン復号装置では、ハフマンテーブル分離回路200が、圧縮後ハフマンテーブルデータと圧縮後データとからなる符号化データを受信すると、これらを分離する(ステップ101)。
また、手順(2)での最小符号の算出も、並列計算回路を用いて行うようにした。これにより、手順(2)の処理時間を短縮することができた。
Claims (7)
- 複数の文字列の各々に割り当てられた複数のビット長を、当該複数のビット長の各々を有する複数の符号に変換する回路であって、
前記複数のビット長の入力に応じて、同じビット長が割り当てられた文字列の数と、各文字列に割り当てられたビット長と、同じビット長が割り当てられた文字列の中での各文字列の順番とを記録する記録部と、
前記記録部により記録された前記文字列の数に基づいて、同じビット長を有する符号の基準となる符号である複数の基準符号を生成する基準符号生成部と、
前記複数の文字列に関する複数の処理であって、各文字列に関する処理が、前記基準符号生成部により生成された前記複数の基準符号のうち前記記録部により記録された当該各文字列に割り当てられたビット長を有する基準符号と、前記記録部により記録された同じビット長が割り当てられた文字列の中での当該各文字列の順番とに基づく処理である複数の処理を、並列に行うことにより、前記複数の符号を生成する割り当て符号生成部と
を含む、回路。 - 前記記録部は、前記複数のビット長のうち特定の文字列に割り当てられた特定のビット長の入力に応じて、当該特定のビット長と同じビット長が割り当てられた文字列の数を更新し、当該特定の文字列に対して、当該特定のビット長と、当該特定のビット長と同じビット長が割り当てられた文字列の更新前又は更新後の数とを保持する、請求項1の回路。
- 前記基準符号生成部は、複数段の回路を含む並列計算回路であって、各段の回路が、第1のビット長が割り当てられた文字列の数を表すビット列を左に1ビットシフトすることによって得られたビット列と、当該第1のビット長より1つ長い第2のビット長が割り当てられた文字列の数を表すビット列とを加算し、この加算によって得られたビット列を左に1ビットシフトする回路である並列計算回路を用いて、前記複数の基準符号を生成する、請求項1の回路。
- 前記基準符号生成部は、所定数のビット長に関する当該所定数の処理であって、ビット長M(Mは自然数)に関する処理が、ビット長Kが割り当てられた文字列の数を表すビット列を左に(M−K)ビットシフトすることによって得られたビット列を、KがMより小さな自然数である場合について足し合わせる処理である当該所定数の処理を、並列に行うことにより、当該所定数の基準符号を生成する、請求項1の回路。
- 複数の文字列の各々に割り当てられた複数のビット長を、当該複数のビット長の各々を有する複数の符号に変換する回路であって、
前記複数のビット長のうち特定の文字列に割り当てられた特定のビット長の入力に応じて、当該特定のビット長と同じビット長が割り当てられた文字列の数を更新し、当該特定の文字列に対して、当該特定のビット長と、当該特定のビット長と同じビット長が割り当てられた文字列の更新前又は更新後の数とを保持することにより、同じビット長が割り当てられた文字列の数と、各文字列に割り当てられたビット長と、同じビット長が割り当てられた文字列の中での各文字列の順番とを記録する記録部と、
前記複数のビット長を構成する互いに異なるビット長である所定数のビット長に関する当該所定数の処理であって、ビット長M(Mは自然数)に関する処理が、前記記録部により記録されたビット長Kが割り当てられた文字列の数を表すビット列を左に(M−K)ビットシフトすることによって得られたビット列を、KがMより小さな自然数である場合について足し合わせる処理である当該所定数の処理を、並列に行うことにより、同じビット長を有する符号の最小の符号である当該所定数の最小符号を生成する最小符号生成部と、
前記複数の文字列に関する複数の処理であって、各文字列に関する処理が、前記最小符号生成部により生成された前記所定数の最小符号のうち前記記録部により記録された当該各文字列に割り当てられたビット長を有する最小符号と、前記記録部により記録された同じビット長が割り当てられた文字列の中での当該各文字列の順番とを加算する処理である複数の処理を、並列に行うことにより、前記複数の符号を生成する割り当て符号生成部と
を含む、回路。 - 複数の文字列の各々に割り当てられた複数のビット長を定義した定義情報と、当該複数のビット長の各々を有する複数の符号を含むデータとからなる符号化データを復号する装置であって、
前記符号化データから前記定義情報を抽出する抽出部と、
前記抽出部により抽出された前記定義情報で定義された前記複数のビット長の入力に応じて、同じビット長が割り当てられた文字列の数と、各文字列に割り当てられたビット長と、同じビット長が割り当てられた文字列の中での各文字列の順番とを記録する記録部と、
前記記録部により記録された前記文字列の数に基づいて、同じビット長を有する符号の基準となる符号である複数の基準符号を生成する基準符号生成部と、
前記複数の文字列に関する複数の処理であって、各文字列に関する処理が、前記基準符号生成部により生成された前記複数の基準符号のうち前記記録部により記録された当該各文字列に割り当てられたビット長を有する基準符号と、前記記録部により記録された同じビット長が割り当てられた文字列の中での当該各文字列の順番とに基づく処理である複数の処理を、並列に行うことにより、前記複数の符号を生成する割り当て符号生成部と、
前記割り当て符号生成部により生成された前記複数の符号の各符号を、前記複数の文字列のうち当該各符号の元となるビット長が割り当てられた文字列に変換する変換部と
を含む、装置。 - 複数の文字列の各々に割り当てられた複数のビット長を、当該複数のビット長の各々を有する複数の符号に変換する方法であって、
前記複数のビット長の入力に応じて、同じビット長が割り当てられた文字列の数と、各文字列に割り当てられたビット長と、同じビット長が割り当てられた文字列の中での各文字列の順番とを記録するステップと、
前記文字列の数に基づいて、同じビット長を有する符号の基準となる符号である複数の基準符号を生成するステップと、
前記複数の文字列に関する複数の処理であって、各文字列に関する処理が、前記複数の基準符号のうち当該各文字列に割り当てられたビット長を有する基準符号と、同じビット長が割り当てられた文字列の中での当該各文字列の順番とに基づく処理である複数の処理を、並列に行うことにより、前記複数の符号を生成するステップと
を含む、方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009103213A JP4758494B2 (ja) | 2009-04-21 | 2009-04-21 | ビット長を符号に変換する回路及び方法 |
US12/753,784 US8018359B2 (en) | 2009-04-21 | 2010-04-02 | Conversion of bit lengths into codes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009103213A JP4758494B2 (ja) | 2009-04-21 | 2009-04-21 | ビット長を符号に変換する回路及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010258532A true JP2010258532A (ja) | 2010-11-11 |
JP4758494B2 JP4758494B2 (ja) | 2011-08-31 |
Family
ID=42980608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009103213A Expired - Fee Related JP4758494B2 (ja) | 2009-04-21 | 2009-04-21 | ビット長を符号に変換する回路及び方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8018359B2 (ja) |
JP (1) | JP4758494B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012124679A (ja) * | 2010-12-07 | 2012-06-28 | Internatl Business Mach Corp <Ibm> | 符号化データを復号する装置及び方法 |
JP2022518666A (ja) * | 2019-01-31 | 2022-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 |
JP2022518665A (ja) * | 2019-01-31 | 2022-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 圧縮/解凍オペレーションを実行するための汎用プロセッサ命令 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023044846A (ja) | 2021-09-21 | 2023-04-03 | キオクシア株式会社 | データ伸長装置、データ圧縮装置、及びメモリシステム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250667B2 (ja) * | 1984-09-27 | 1990-11-05 | Mitsubishi Electric Corp | |
JPH07106981A (ja) * | 1993-10-07 | 1995-04-21 | Fujitsu Ltd | 可変長符号デコード回路 |
JPH07177039A (ja) * | 1993-12-20 | 1995-07-14 | Canon Inc | ハフマン符号化復号化装置 |
JPH07184202A (ja) * | 1993-12-22 | 1995-07-21 | Kawasaki Steel Corp | 画像データ符号化装置 |
JP2002515201A (ja) * | 1996-03-15 | 2002-05-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディジタル信号符号化方法および装置 |
JP2002271208A (ja) * | 2000-12-15 | 2002-09-20 | Internatl Business Mach Corp <Ibm> | ハフマン符号化・復号化法 |
JP2006222626A (ja) * | 2005-02-09 | 2006-08-24 | Olympus Corp | 動画像伝送装置および動画像伝送システム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250667A (ja) | 1988-08-12 | 1990-02-20 | Matsushita Electric Works Ltd | モニタ付きインターホン装置 |
JPH07107303A (ja) * | 1993-09-30 | 1995-04-21 | Nec Corp | ハフマン符号の復号化方法 |
JP2000261324A (ja) | 1999-03-10 | 2000-09-22 | Fuji Film Microdevices Co Ltd | ハフマン復号化回路 |
US6573847B1 (en) * | 2002-01-08 | 2003-06-03 | Intel Corporation | Multi-table mapping for huffman code decoding |
-
2009
- 2009-04-21 JP JP2009103213A patent/JP4758494B2/ja not_active Expired - Fee Related
-
2010
- 2010-04-02 US US12/753,784 patent/US8018359B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250667B2 (ja) * | 1984-09-27 | 1990-11-05 | Mitsubishi Electric Corp | |
JPH07106981A (ja) * | 1993-10-07 | 1995-04-21 | Fujitsu Ltd | 可変長符号デコード回路 |
JPH07177039A (ja) * | 1993-12-20 | 1995-07-14 | Canon Inc | ハフマン符号化復号化装置 |
JPH07184202A (ja) * | 1993-12-22 | 1995-07-21 | Kawasaki Steel Corp | 画像データ符号化装置 |
JP2002515201A (ja) * | 1996-03-15 | 2002-05-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディジタル信号符号化方法および装置 |
JP2002271208A (ja) * | 2000-12-15 | 2002-09-20 | Internatl Business Mach Corp <Ibm> | ハフマン符号化・復号化法 |
JP2006222626A (ja) * | 2005-02-09 | 2006-08-24 | Olympus Corp | 動画像伝送装置および動画像伝送システム |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012124679A (ja) * | 2010-12-07 | 2012-06-28 | Internatl Business Mach Corp <Ibm> | 符号化データを復号する装置及び方法 |
US8947272B2 (en) | 2010-12-07 | 2015-02-03 | International Business Machines Corporation | Decoding encoded data |
JP2022518666A (ja) * | 2019-01-31 | 2022-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 |
JP2022518665A (ja) * | 2019-01-31 | 2022-03-16 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 圧縮/解凍オペレーションを実行するための汎用プロセッサ命令 |
JP7442526B2 (ja) | 2019-01-31 | 2024-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 圧縮/解凍オペレーションを実行するための汎用プロセッサ命令 |
JP7442529B2 (ja) | 2019-01-31 | 2024-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 |
Also Published As
Publication number | Publication date |
---|---|
US8018359B2 (en) | 2011-09-13 |
US20100265110A1 (en) | 2010-10-21 |
JP4758494B2 (ja) | 2011-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100894002B1 (ko) | 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법 | |
JP3278297B2 (ja) | データ圧縮方法及びデータ復元方法並びにデータ圧縮装置及びデータ復元装置 | |
JP4801776B2 (ja) | データ圧縮 | |
KR101049699B1 (ko) | 데이터의 압축방법 | |
US10547324B2 (en) | Data compression coding method, apparatus therefor, and program therefor | |
US9094039B2 (en) | Efficient deflate decompression | |
WO2014021837A1 (en) | Entropy coding and decoding using polar codes | |
JP7425526B2 (ja) | 動的ハフマン表生成のためのハードウェア領域を節約するためのラッチカウントの削減 | |
WO2010044100A1 (en) | Lossless compression | |
JP2010136417A (ja) | データ圧縮装置、及びデータ復元装置 | |
JP6045123B2 (ja) | エンコーダ、デコーダ及び方法 | |
JP6681313B2 (ja) | データを符号化するための方法、コンピュータ・プログラムおよびシステム | |
JP5656593B2 (ja) | 符号化データを復号する装置及び方法 | |
JP4758494B2 (ja) | ビット長を符号に変換する回路及び方法 | |
Yang et al. | Universal lossless data compression with side information by using a conditional MPM grammar transform | |
Mathpal et al. | A research paper on lossless data compression techniques | |
CN104682966B (zh) | 列表数据的无损压缩方法 | |
Hameed et al. | A new lossless method of Huffman coding for text data compression and decompression process with FPGA implementation | |
KR101367811B1 (ko) | 데이터 압축/해제장치 및 방법 | |
JP2005521324A (ja) | 損失のないデータの圧縮および圧縮解除方法および装置 | |
Mitzenmacher | On the hardness of finding optimal multiple preset dictionaries | |
Kaur et al. | Lossless text data compression using modified Huffman Coding-A review | |
Wang et al. | An Entropy Coding Based on Binary Encoding for Mixed-Radix Digits | |
Mahmood et al. | An Efficient Text Database Compression Technique using 6 Bit Character Encoding by Table Look Up | |
Begum et al. | An efficient text compression for massive volume of data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110111 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110405 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110517 |
|
RD14 | Notification of resignation of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7434 Effective date: 20110517 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110602 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140610 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |