JP6990881B2 - エントロピー・エンコーディングのシステム・レベル・テスト - Google Patents

エントロピー・エンコーディングのシステム・レベル・テスト Download PDF

Info

Publication number
JP6990881B2
JP6990881B2 JP2019513059A JP2019513059A JP6990881B2 JP 6990881 B2 JP6990881 B2 JP 6990881B2 JP 2019513059 A JP2019513059 A JP 2019513059A JP 2019513059 A JP2019513059 A JP 2019513059A JP 6990881 B2 JP6990881 B2 JP 6990881B2
Authority
JP
Japan
Prior art keywords
computer
input
eed
stt
data
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.)
Active
Application number
JP2019513059A
Other languages
English (en)
Other versions
JP2019534602A (ja
Inventor
ドゥアーレ、アリ
ヴィティッヒ、デニス
ギャミ、シャイレッシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2019534602A publication Critical patent/JP2019534602A/ja
Application granted granted Critical
Publication of JP6990881B2 publication Critical patent/JP6990881B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3084Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
    • H03M7/3088Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6076Selection between compressors of the same type
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion 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/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6064Selection of Compressor
    • H03M7/6082Selection strategies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

本発明は、一般にコンピュータ・システムに関し、より詳細には、エントロピー・エンコーディングのシステム・レベル・テストに関する。
信号処理において、データ圧縮は、情報の元の表現よりも少ないビットを使用するように情報をエンコードすることによって、データ・ファイルのサイズを縮小することを伴う。圧縮は、不可逆圧縮または可逆圧縮のいずれかを使用して実行される。可逆圧縮は、統計的冗長性を識別して除去することによってビット数を減らし、可逆圧縮が実行された場合、情報は失われない。これに対して、不可逆圧縮は、不要な情報またはあまり重要でない情報を削除することによってビット数を減らし、不可逆圧縮が実行された場合、それらのビットが失われる可能性がある。データ圧縮は、データを格納および送信するために必要なリソースを削減するため、有用である。圧縮プロセスにおいて、および通常は圧縮プロセスの反転(解凍、以下、展開ともいう)において、計算リソースが消費される。データ圧縮方式の設計は、圧縮の程度、(不可逆データ圧縮を使用する場合に)導入される変形の量、およびデータの圧縮および展開に必要な計算リソースなどの、さまざまな要因間のトレードオフを伴う。
ハフマンおよびLempel-Zivは、可逆圧縮アルゴリズムの2つのタイプである。ハフマン・エンコーディングは、一意の接頭符号を作成し、入力データ内に出現する一意の各シンボルに割り当てる、エントロピー・エンコーディングのタイプである。「エントロピー・エンコーディング」という用語は、データを格納している媒体の特定の特性に依存しない可逆データ圧縮方式を指すために使用される。ハフマン・エンコーディングは、入力データ内の固定長の各入力シンボルを対応する接頭符号に置き換えることによって、データを圧縮するために使用される。各接頭符号は長さが異なっており、入力データ内の最も多く共通しているシンボルに、最も短い符号が割り当てられる。ハフマン・エンコーディングの基本的な考え方は、短いコードワードを、出現する可能性が高い入力ブロックに割り当て、長いコードワードを、出現する可能性が低い入力ブロックに割り当てるということである。ハフマン符号の設計は、情報源の統計値が先験的に知られているということを仮定して、固定ブロック長に最適である。
Lempel-Ziv圧縮アルゴリズムは、可変長-固定長符号を実装するために使用される。Lempel-Zivの基本的な考え方は、データの入力シーケンスを解析して、長さの異なる重複していないブロックに変換しながら、それまでに現れたブロックの辞書を構築することである。入力データデータ内のシンボルの頻度に関する推定に依存するハフマン符号とは対照的に、Lempel-Ziv符号は、いずれかの特定の内容を含んでいる入力データのために設計されるのではなく、情報源の大規模な集合のために設計される。
エントロピー・エンコーディングのシステム・レベル・テストのための方法を提供する。
実施形態は、エントロピー・エンコーディングのシステム・レベル・テストのための方法、システム、およびコンピュータ・プログラム製品を含む。方法は、入力シンボルおよびそれらに対応するさまざまな長さの一意のコードワードを含んでいるシンボル変換テーブル(STT:symbol translation table)を受信することを含む。異なる長さのそれぞれを有しているコードワードの数を指定するエントロピー・エンコーディング記述子(EED:entropy encoding descriptor)も受信される。STTおよびEEDのうちの1つまたは両方の内容が、テスト・ケースを生成するように変更され、エントロピー・エンコーディング・テストが実行される。この実行することは、エントロピー・エンコーディング・テストがデータ圧縮テストであることに基づき、入力シンボルのうちの1つまたは複数を含んでいる入力データ文字列の内容、ならびにSTTおよびEEDの内容に基づいて、可逆データ圧縮プロセスを実行することと、エントロピー・エンコーディング・テストがデータ展開テストであることに基づき、コードワードのうちの1つまたは複数を含んでいる入力データ文字列の内容、ならびにSTTおよびEEDの内容に基づいて、データ展開プロセスを実行することとを含む。エントロピー・エンコーディング・テストの結果は、期待される結果と比較され、比較の結果が出力される。
その他の特徴および長所が、本発明の手法によって実現される。本発明のその他の実施形態および態様は、本明細書において詳細に説明され、請求される発明の一部と見なされる。本発明を長所および特徴と共によく理解するために、説明および図面を参照されたい。
本発明と見なされる対象は、本明細書の最後にある特許請求の範囲において具体的に指摘され、明確に請求される。本発明の前述およびその他の特徴、および長所は、添付の図面と併せて行われる以下の詳細な説明から明らかになる。
1つまたは複数の実施形態に記載されている、エントロピー・エンコーディングのシステム・レベル・テストのためのシステムのブロック図である。 1つまたは複数の実施形態に記載されている、圧縮テストにおいて使用するためにエントロピー・エンコーディング記述子(EED)およびシンボル変換テーブル(STT)を生成するためのブロック図である。 1つまたは複数の実施形態に記載されている、完成されたハフマン・ツリーおよびハフマン符号を示す図である。 1つまたは複数の実施形態に記載されている、圧縮テストにおいて使用するためにEEDおよびSTTを生成するためのブロック図である。 1つまたは複数の実施形態に記載されている、入力データの二段圧縮を実行するためのフロー図である。 1つまたは複数の実施形態に記載されている、展開されたデータを生成するためのブロック図である。 1つまたは複数の実施形態に記載されている、圧縮されたデータの二段展開を実行するためのフロー図である。 1つまたは複数の実施形態に記載されている、エントロピー・エンコーディングのシステム・レベル・テストのためのコンピュータ・システムを示す図である。
本明細書に記載された実施形態は、二段階の圧縮を実装するコンピュータ・システムにおけるエントロピー・エンコーディングのシステム・レベル・テストを提供する。1つまたは複数の実施形態は、疑似ランダム・テスト生成を使用して二段圧縮プロセスおよびそれに対応する展開をテストする方法を提供する。二段圧縮/展開プロセスは、第1の段階としてLempel-Zivタイプの符号、および第2の段階としてハフマン圧縮手法に基づくエントロピー符号を含むことができる。1つまたは複数の実施形態に従って、圧縮および展開は、エントロピー・エンコーディングをテストするための2つの主要なコンポーネントである。圧縮の場合、ハフマン・ツリーが、入力データに基づいて、可能性のあるすべての組み合わせに関して生成され、左詰めのコードワードを含むシンボル変換テーブル(STT)が構築される。加えて、SST内のビットの数(圧縮時に使用される)およびシンボルのインデックス作成に使用される入力ビットの数(展開時に使用される)の指示を含んでいる、ハフマン・ツリーを定義するエントロピー・エンコーディング記述子(EED)が生成される。1つまたは複数の実施形態に従って、STTまたはEEDあるいはその両方を操作することによって、無効なコードワードを含むさまざまなコードワードが構築される。このようにして、データ例外ケースを生成してテストすることがき、プロセスが、シンボルの最大長まで増大することができ、したがって、最大ハフマン・ツリーまで増大することができる。同様の方法を展開に使用することができ、その場合、ハフマン・ツリーが入力データに基づいて構築され、EEDが、シンボルのインデックス作成に使用される入力ビットの数を見つけるために使用される。1つまたは複数の実施形態に従って、エントロピー・エンコーディングのシステム・レベル・テストを実行するために、テスト対象のデバイスの既存の圧縮符号および展開符号に対して、最小限の変更が必要である。以前に生成されたSTTおよびEEDを操作することによって、新しいハフマン・ツリーを構築することを必要とせずに、エントロピー・エンコーディングのシステム・レベル・テストのための多くの派生テスト・ケースを生成できる。
ここで図1を参照すると、1つまたは複数の実施形態に従って、エントロピー・エンコーディングのシステム・レベル・テストのためのシステムのブロック図100が概略的に示されている。図1のブロック図100は、システム・レベルのエントロピー・エンコーディング・テストを実行するために、テスト対象のデバイス104およびシミュレータ108に入力されるテスト・データ102を含んでいる。デバイスのテスト結果106がテスト対象のデバイス104から出力され、シミュレータのテスト結果110がシミュレータ108から出力されて、比較論理112に入力される。比較の結果が、テスト結果114として出力される。1つまたは複数の実施形態では、テスト・データ102は、圧縮または展開される入力文字列、STT、EEDを含む。テスト対象のデバイス104は、IBMのSystem z(R)などの、ただしこれに限定されない、任意のハフマン・タイプの符号をデータ圧縮に使用するコンピュータ・システムを含むことができる。テスト結果114は、デバイスのテスト結果106がシミュレータのテスト結果110(すなわち、期待されるテスト結果)に一致するかどうかを示すことができる。加えて、テスト結果114は、デバイスのテスト結果106とシミュレータのテスト結果110の間の差異を示すことができ、入力文字列、EED、またはSTT、あるいはその組み合わせに対する推奨される変更を含む追加テキストを実行するように、推奨することができる。
ここで図2を参照すると、1つまたは複数の実施形態に従って、データ圧縮の場合にEEDおよびSTTを生成するためのブロック図200が概略的に示されている。入力A202は、入力データ文字列の可能性のあるすべてのシンボルを含んでいる。例えば、入力データがテキストである場合、入力A202は、アルファベット(例えば、A~Z)に含まれるすべての文字および句読点のシンボルを含むことができる。1つまたは複数の実施形態では、可能性のあるすべてのシンボルに基づいてツリーを構築することによって、ハフマン・ツリー204が生成される。1つまたは複数の実施形態では、ハフマン・ツリー204は、システム・アーキテクチャに応じて、213(8,192)という多くの葉になる可能性がある。EED206およびSTT208は、ハフマン・ツリー204の内容に基づいて構築される。1つまたは複数の実施形態では、STT208は、左詰めのコードワードを含み、STT内の各エントリは、可能性のある各シンボルを定義する16ビット・フィールドを含む。1つまたは複数の実施形態では、EED206は、ハフマン・ツリー204内の各長さの葉の数を指定する16ビットの要素を含む。葉の数は、コードワードの長さ(ビットの数)と同じである。したがって、EED206を使用して、(圧縮の場合に)使用されるSTT208内のビットの数および(展開の場合に)シンボルのインデックス作成に使用される入力ビットの数を示すことができる。図2にも示されているように、入力B210は、Lempel-Ziv圧縮を使用して圧縮されている入力データに含まれているシンボルを含んでいる入力A202のサブセットである。辞書212は、入力データ文字列に含まれているシンボルに基づいて、Lempel-Ziv圧縮プロセスによって構築される。図2に示されるように、EED206およびSTT208は、辞書212の末尾に連結される。
1つまたは複数の実施形態に従って、EED206は、ハフマン・ツリーを定義し、辞書212の末尾にある32バイト・フィールドによって実装される。加えて、STT208がEED206の末尾にあり、SST208内の各エントリは、各シンボルを定義する16ビット・フィールドである。1つまたは複数の実施形態に従って、EED206およびSTT208の構築および使用は、二段圧縮機能のテストの一部である。特定のハフマン・ツリーから有効なEED206が構築された後に、EED206のアーキテクチャを有効に保ちながら、EED206の内容を再配置することができる。例えば、EED206の2つ以上のエントリを交換することができ、そうすることによって、仮想ハフマン・ツリー(virtual Huffman tree)が作成され、新しいテスト・ケースの生成に使用され得る。同様に、一意のシンボルを表すSTT208内の各エントリの代わりに、複数のエントリを、同じ値を持つように、したがって、データのパターンを作成するように、変更することができる。行うことができる変更の別の例は、例外を引き起こすために、EEDの有効なエントリをインクリメントまたはデクリメントできることである。各エントリが変更されている間に、エントリの特定の対の合計が同じままであるように、それらのエントリの値が変更されてよい。STTおよびEEDのうちの1つまたは両方の内容を変更することが、該EEDにおいて指定された前記異なる長さのうちの1つを、該EEDによって指定された別の前記異なる長さと交換することを含んでいてよい。また、STTおよびEEDのうちの1つまたは両方の内容を変更することが、単一の入力シンボルに対応する2つのコードワードを含むように該STTを更新することを含んでいてよい。さらに、STTおよびEEDのうちの1つまたは両方の内容を変更することが、同じコードワードに対応する2つの入力信号を含むように該STTを更新することを含んでいてよい。
ここで図3を参照すると、1つまたは複数の実施形態に従って、完成されたハフマン・ツリーおよびハフマン符号300が概略的に示されている。完成されたハフマン・ツリーおよびハフマン符号300は、ハフマン・ツリー302、入力データ文字列内のシンボル304のリスト、各シンボルの頻度306、および各シンボル304に関連付けられたコードワード308を含んでいる。図3のハフマン・ツリー302の例は、入力データ文字列「today we are talking about huffman algorithm」に基づいて構築されている。入力データ文字列は44の入力データ長を有しており、各シンボル304は、図3に示されている対応する頻度306を有している。一意のシンボル(または文字)は、頻度に基づいて並べ替えられ、左の最も頻度の高いシンボル304(6の頻度を有する「-」または「スペース」および「a」)から開始し、右で、最も頻度の低いシンボル304(1の頻度を有する「w」、「k」、「y」、「b」、および「d」)で終了している。ハフマン・ツリー302の最下位の葉は、各シンボル304に対応している。
図3に示されているハフマン・ツリー302の構築は、第1の2つの最小頻度(1の頻度を有する「b」および1の頻度を有する「d」)を、2の頻度を有するノード310にマージすることを含むことができる。第2の2つの最小頻度のノード(1の頻度を有する「k」および1の頻度を有する「y」)も、2の頻度を有するノード312にマージされる。第3の最小頻度のノード(1の頻度を有する「w」および2の頻度を有する「m」)は、3の頻度を有するノード314にマージされる。第4の最小頻度のノード(2の頻度を有するノード310および2の頻度を有するノード312)は、4の頻度を有するノード316にマージされる。最小頻度のノードを結合するこのプロセスが続行されて、図3に示されているハフマン・ツリー302が得られる。図3に示されている例では、「0」のコードワードのビットが、ノードの左にある葉に割り当てられ、「1」のビットが、ノードの右にある葉に割り当てられる。ハフマン・ツリーの最上位からシンボル「-」(またはスペース)までのパス318内の葉の数は、3である。したがって、シンボル「-」に関連付けられたコードワードの長さは3であり、この例では、割り当てられるコードワードは「000」である。シンボル304がコードワード308に置き換えられた後の、圧縮されたサイズは、25である。1つまたは複数の実施形態では、左に分岐するときに0の符号が割り当てられ、右に分岐するときに1の符号が割り当てられる。
1つまたは複数の実施形態に従って、入力データ内の各シンボル304(または文字)は、ビットの列(またはコードワード308)を使用することによってエンコードされ、コードワード308が連結されて、圧縮されたデータを生成する。シンボル304の頻度が高いほど、符号の長さが短くなる(すなわち、対応するコードワード308のビット数が少なくなる)。ハフマン・ツリー302は、接頭符号ツリーの一例である。これは、受信側が、シンボルの末尾が存在するときに、ハフマン・ツリー302内の有効なコードワード308が存在しないために、特殊なマーカーがなくても、ハフマン・ツリー302内のいずれかの他の有効なコードワードの接頭符号(開始)であることを見分けることができるからである。
1つまたは複数の実施形態に従って、図3に示されているハフマン・ツリー302に対応するSTTは、以下のエントリを含むことができる。
Figure 0006990881000001
1つまたは複数の実施形態に従って、図3に示されているハフマン・ツリー302に対応するEEDは、1または2あるいは6~16の長さのコードワードに対応しているシンボルがなく、1個のシンボルが3の長さのコードワードに対応しており、10個のシンボルが4の長さのコードワードに対応しており、8個のシンボルが5の長さのコードワードに対応していることを示すように、以下のエントリを含むことができる。
Figure 0006990881000002
ここで図4を参照すると、1つまたは複数の実施形態に従って、データ圧縮の場合にEEDおよびSTTを生成するためのブロック図400が概略的に示されている。図4に示されているように、EED406およびSTT408は、Lempel-Ziv圧縮などの第1の段階の圧縮からの可能性のある出力に基づいて構築される。入力402は、第1の段階の圧縮の可能性のある出力を含んでいる。辞書404は、第1の段階の圧縮に基づいて構築される。
1つまたは複数の実施形態に従って、第1の段階の圧縮は、すべてのシンボル(または1の長さの文字列)を含むように辞書404を初期化することと、現在の入力に一致する辞書内の最長の文字列「W」を検索することと、Wの辞書インデックスを出力に発行して、入力からWを削除することと、入力内の次のシンボルが続くWを辞書404に追加することと、入力データ内のすべてのシンボルについて検索、発行、および追加を繰り返すこととを含む、Lempel-Zivエンコーディング・アルゴリズムである。このようにして、すべての可能性のある入力文字に対応する単一文字の文字列を含むように、辞書404を初期化することができ、このアルゴリズムは、辞書404内にない部分文字列を検出するまで、連続的に長くなる部分文字列に関して入力文字列をスキャンすることによって、機能する。そのような文字列が検出された場合、最後の文字を含まない文字列(すなわち、辞書404内にある最長の部分文字列)のインデックスが辞書404から取り出され、出力に送信され、新しい文字列(最後の文字を含む)が、次に利用可能な符号と共に辞書404に追加される。その後、最後の入力文字が、部分文字列をスキャンするための次の開始点として使用される。このようにして、連続的に長くなる文字列が辞書404に登録され、単一の出力値としてその後のエンコーディングに利用できるようなる。このアルゴリズムは、繰返しパターンを含むデータに対して最も良く機能するため、メッセージの初期部分の圧縮は小さいが、メッセージが長くなるにつれて、圧縮率が増加する。
図4に示されている実施形態では、辞書404を使用することによって生成された(すなわち、第1の段階の圧縮が完了した後の)シンボルが、ハフマン・ツリーを生成するために使用される。この実施形態では、「abc」の入力文字列が、「101010」としてLempel-Zivアルゴリズムから出力されてよく、この出力が、ハフマン・ツリー410を構築するためのシンボルとして入力される。その後、ハフマン・アルゴリズムは、「0010」のコードワードを割り当ててよい。したがって、入力データ文字列内の3つのシンボルを含んでいる「abc」の入力文字列は、第1および第2の段階の圧縮プロセスによって、コードワード「0010」に圧縮されてよい。EED406およびSTT408は、ハフマン・ツリー410の内容に基づいて生成され、辞書404の末尾に追加される。
ここで図5を参照すると、1つまたは複数の実施形態に従って、入力データの二段圧縮を実行するためのフロー図500が概略的に示されている。図5に示されているフロー図500は、単一のシンボルに対して実行することができ、プロセスは、入力データ文字列内のシンボルごとに、ブロック502から510までのフロー全体をループする。代替として、図5に示されているフロー図500内の各ブロックは、シンボルの文字列またはシンボルのページなどの、入力シンボルのグループに対して実行することができる。ブロック502で、入力データが受信される(入力シンボルのグループまたは単一の入力シンボルのいずれか)。ブロック504で、IBM System z(R)の圧縮呼び出し命令(CMPSC)または同様の圧縮方法が発行され、第1の段階の圧縮(1つまたは複数の実施形態では、Lempel-Ziv圧縮)を実行する。Lempel-Ziv圧縮からの出力506(圧縮されたシンボルまたはシンボルのグループ)は、第2の段階の圧縮(1つまたは複数の実施形態では、ハフマン圧縮アルゴリズム)への入力として使用される。ブロック508で、以前に生成されたSTTを使用して一意のコードワードが入力シンボルに割り当てられ、ブロック510で、エントロピー・エンコードされて圧縮されたデータが出力される。
ここで図6を参照すると、1つまたは複数の実施形態に従って、展開されデータを生成するためのブロック図600が概略的に示されている。図6に示されているように、圧縮されたデータを含んでいる入力データ602が、例えばコードワードの形態で、コードワードを対応するシンボルに置き換えるためにハフマン展開アルゴリズム604に入力される。二段階の圧縮が実装される1つまたは複数の実施形態では、ハフマン展開アルゴリズム604から出力されるシンボルは、Lempel-Ziv展開アルゴリズムなどの第2の展開アルゴリズムによって展開される必要がある圧縮されたデータ606である。圧縮されたデータをEEDと共に使用することによって、辞書に対してインデックスを生成する。図6に示されているように、この生成は、圧縮されたデータ606が表す元の圧縮されていないシンボル(または文字)を決定するように、辞書608にインデックスを作成することによって実行できる。
ここで図7を参照すると、1つまたは複数の実施形態に従って、圧縮されたデータの二段展開を実行するためのフロー図700が概略的に示されている。図7に示されているフロー図700は、単一のコードワードに対して実行することができ、プロセスは、入力データ文字列内の圧縮されたコードワードごとに、ブロック702から708までのフロー全体をループする。代替として、図7に示されているフロー図700内の各ブロックは、コードワードの文字列またはコードワードのページなどの、入力シンボルのグループに対して実行することができる。ブロック702で、入力データが受信される(圧縮されたコードワードのグループまたは単一の圧縮されたコードワードのいずれか)。ブロック704で、コードワードに対応する(例えば、Lempel-Zivアルゴリズムによって生成された)辞書内のインデックスを検索するために、EEDがアクセスされる。ブロック706で、このインデックスがCMPSCに入力され、CMPSCが、辞書のインデックスに対応する展開されたデータ708を出力する。
ここで図8を参照すると、1つまたは複数の実施形態に従って、エントロピー・エンコーディングのシステム・レベル・テストのためのコンピュータ・システムが概略的に示されている。本明細書に記載された方法は、ハードウェア、ソフトウェア(例えばファームウェア)、またはハードウェアとソフトウェアの組み合わせにおいて実装され得る。実施形態例では、本明細書に記載された方法は、パーソナル・コンピュータ、ワークステーション、マイクロコンピュータ、またはメインフレーム・コンピュータなどの、専用または汎用デジタル・コンピュータのマイクロプロセッサの一部としてハードウェアにおいて実装される。したがって、システム800は、O/Sの複数のインスタンスを同時に実行できる汎用コンピュータまたはメインフレーム801を含んでよい。
実施形態例では、ハードウェア・アーキテクチャに関して図8に示されているように、コンピュータ801は、1つまたは複数のプロセッサ805、メモリ・コントローラ815に接続されたメモリ810、ならびにローカル入出力コントローラ835を介して通信によって結合された1つまたは複数の入力または出力あるいはその両方の(I/O)デバイス840、845(または周辺機器)を含む。入出力コントローラ835は、例えば、1つまたは複数のバスあるいは従来技術において知られたその他の有線接続または無線接続であることができるが、これらに限定されない。入出力コントローラ835は、簡単にするために省略されている、通信を可能にするためのコントローラ、バッファ(キャッシュ)、ドライバ、リピータ、およびレシーバなどのその他の要素を含むことができる。さらに、ローカル・インターフェイスは、前述のコンポーネント間の適切な通信を可能にするために、アドレス、制御、またはデータ接続、あるいはその組み合わせを含んでよい。入出力コントローラ835は、出力デバイス840および845にアクセスするように構成された複数のサブチャネルを含んでよい。サブチャネルは、光ファイバ通信ポートを含んでよい。
プロセッサ805は、ソフトウェア、具体的には、キャッシュ・ストレージまたはメモリ810などの、ストレージ820に格納されたソフトウェアを実行するためのハードウェア・デバイスである。プロセッサ805は、カスタムメイドであるか、あるいは市販されたプロセッサ、中央処理装置(CPU)、コンピュータ801に関連付けられた複数のプロセッサ間の補助プロセッサ、(マイクロチップまたはチップ・セットの形態での)半導体ベースのマイクロプロセッサ、マクロプロセッサ、または一般的に、命令を実行するための任意のデバイスであることができる。
メモリ810は、揮発性メモリ素子(例えば、DRAM、SRAM、SDRAMなどのランダム・アクセス・メモリ(RAM))および不揮発性メモリ素子(例えば、ROM、消去可能プログラマブル読み取り専用メモリ(EPROM)、電子的消去可能プログラマブル読み取り専用メモリ(EEPROM)、プログラマブル読み取り専用メモリ(PROM)、テープ、コンパクト・ディスク読み取り専用メモリ(CD-ROM)、ディスク、フロッピー・ディスク、カートリッジ、カセットなど)のうちのいずれか1つまたは組み合わせを含むことができる。さらに、メモリ810は電子、磁気、光、またはその他の種類のストレージ媒体、あるいはその組み合わせを組み込んでよい。メモリ810が、さまざまなコンポーネントが互いに遠く離れた位置にあるが、プロセッサ805によってアクセスされ得る、分散アーキテクチャを含むことができるということに注意する。
メモリ810内の命令は、1つまたは複数の別々のプログラムを含むことができ、それらの各プログラムは、論理的機能を実装するための実行可能命令の順序付けられたリストを含む。図8の例では、メモリ810内の命令は、適切なオペレーティング・システム(OS)811を含む。オペレーティング・システム811は、基本的に他のコンピュータ・プログラムの実行を制御し、スケジューリング、入出力制御、ファイルおよびデータの管理、メモリ管理、ならびに通信制御および関連するサービスを提供する。
メモリ810は、複数論理パーティション(LPAR)812を含んでよく、各論理パーティションがオペレーティング・システムのインスタンスを実行する。LPAR812はハイパーバイザによって管理されてよく、このハイパーバイザは、メモリ810に格納されて、プロセッサ805によって実行されるプログラムであってよい。
実施形態例では、従来のキーボード850およびマウス855が、入出力コントローラ835に接続され得る。I/Oデバイス840、845などのその他の出力デバイスは、例えば、プリンタ、スキャナ、マイクロホンなどの入力デバイスを含んでよいが、これらに限定されない。最後に、I/Oデバイス840、845は、例えば、ネットワーク・インターフェイス・カード(NIC)または変調器/復調器(他のファイル、デバイス、システム、またはネットワークにアクセスするため)、無線周波(RF)またはその他のトランシーバ、電話インターフェイス、ブリッジ、ルータなどの、ただしこれらに限定されない、入力および出力の両方と通信するデバイスをさらに含んでよい。システム800は、ディスプレイ830に接続されたディスプレイ・コントローラ825をさらに含むことができる。実施形態例では、システム800は、ネットワーク865に接続するためのネットワーク・インターフェイス860をさらに含むことができる。ネットワーク865は、コンピュータ801と、外部サーバ、クライアントなどとの間での、ブロードバンド接続を介した通信用のIPベースのネットワークであり得る。ネットワーク865は、コンピュータ801と外部システムの間で、データを送受信する。実施形態例では、ネットワーク865は、サービス・プロバイダによって管理された管理IPネットワークであり得る。ネットワーク865は、例えば、WiFi、WinMaxなどの無線プロトコルおよび無線技術を使用して、無線方式で実装されてよい。ネットワーク865は、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・エリア・ネットワーク、インターネット・ネットワーク、またはその他の類似する種類のネットワーク環境などの、パケット交換ネットワークであることもある。ネットワーク865は、固定無線ネットワーク、無線ローカル・エリア・ネットワーク(LAN)、無線広域ネットワーク(WAN)、パーソナル・エリア・ネットワーク(PAN)、仮想プライベート・ネットワーク(VPN)、インターネット、またはその他の適切なネットワーク・システムであってよく、信号を送受信するための機器を含む。
コンピュータ801がPC、ワークステーション、インテリジェント・デバイスなどである場合、メモリ810内の命令は、基本入出力システム(BIOS)(簡単にするために省略されている)をさらに含んでよい。BIOSは、起動時にハードウェアを初期化してテストし、OS811を起動し、ハードウェア・デバイス間でデータの転送をサポートする、基本的なソフトウェア・ルーチンのセットである。BIOSは、コンピュータ801が起動されたときにBIOSを実行できるように、ROMに格納される。
コンピュータ801が動作中であるときに、プロセッサ805は、メモリ810内に格納された命令を実行することと、データをメモリ810との間で通信することと、命令に従ってコンピュータ801の動作を全体的に制御することとを実行するように構成される。
実施形態例では、本明細書に記載された方法は、データ信号上で論理機能を実装するための論理ゲートを含んでいる個別の論理回路、適切な組み合わせ論理ゲートを含んでいる特定用途向け集積回路(ASIC)、プログラマブル・ゲート・アレイ(PGA)、フィールド・プログラマブル・ゲート・アレイ(FPGA)などの、それぞれ従来技術においてよく知られている、技術のいずれかまたは組み合わせを使用して実装され得る。
本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明を限定することを意図していない。本明細書で使用される単数形「a」、「an」、および「the」は、文脈上特に明示的に示されない限り、複数形も含むことが意図されている。「備える(comprise)」または「備えている(comprising)」あるいはその両方の用語は、本明細書で使用される場合、記載された機能、整数、ステップ、処理、要素、またはコンポーネント、あるいはその組み合わせの存在を示すが、1つまたは複数のその他の機能、整数、ステップ、処理、要素、コンポーネント、またはこれらのグループ、あるいはその組み合わせの存在または追加を除外していないということが、さらに理解されるであろう。
下の特許請求の範囲内のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、動作、および均等物は、具体的に請求されるその他の請求された要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。本発明の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態での発明に限定されない。本発明の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本発明の原理および実際的な適用を最も適切に説明するため、およびその他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態に関して、本発明を理解できるようにするために、実施形態が選択されて説明された。
本発明は、任意の可能な統合の技術的詳細レベルで、システム、方法、またはコンピュータ・プログラム製品、あるいはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含んでよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスであることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組み合わせであってよいが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・フロッピー・ディスク、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピー・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組み合わせを含む。本明細書において使用されているコンピュータ可読記憶媒体は、それ自体が、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワーク、あるいはその組み合わせ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードされ得る。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバ、あるいはその組み合わせを備えてよい。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソース・コードまたはオブジェクト・コードのいずれかであってよい。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続されてよく、または接続は、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行われてよい。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールドプログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用することによって、電子回路をカスタマイズするためのコンピュータ可読プログラム命令を実行してよい。
本発明の態様は、本明細書において、本発明の実施形態に従って、方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得るということが理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施する手段を作り出すように、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてマシンを作り出すものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作の態様を実施する命令を含んでいる製品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラム可能なデータ処理装置、または他のデバイス、あるいはその組み合わせに特定の方式で機能するように指示できるものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックに指定される機能/動作を実施するように、コンピュータ実装プロセスを生成すべく、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスに読み込まれ、コンピュータ上、その他のプログラム可能な装置上、またはその他のデバイス上で一連の動作可能なステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に従って、システム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表してよい。一部の代替の実装では、ブロックに示された機能は、図に示された順序とは異なる順序で発生してよい。例えば、連続して示された2つのブロックは、実際には、含まれている機能に応じて、実質的に同時に実行されるか、または場合によっては逆の順序で実行されてよい。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組み合わせは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組み合わせを実行する専用ハードウェアベースのシステムによって実装され得るということにも注意する。
本発明のさまざまな実施形態の説明は、例示の目的で提示されているが、網羅的であることは意図されておらず、開示された実施形態に限定されない。記載された実施形態の範囲および思想を逸脱することなく多くの変更および変形が可能であることは、当業者にとって明らかである。本明細書で使用された用語は、実施形態の原理、実際の適用、または市場で見られる技術を超える技術的改良を最も適切に説明するため、または他の当業者が本明細書で開示された実施形態を理解できるようにするために選択されている。

Claims (10)

  1. シンボル変換テーブル(STTおよびエントロピー・エンコーディング記述子(EEDのうちの1つまたは両方の内容を変更して、テスト・ケースを生成することと、ここで、前記STTは、入力シンボルおよび前記入力シンボルそれぞれに対応する一意のコードワードを含み、前記一意のコードワードのうちの少なくとも2つが異なる長さを有し、及び前記EEDは、前記異なる長さのそれぞれを有している前記コードワードの数を指定する、
    エントロピー・エンコーディング・テストを実行すること
    含むコンピュータ実装方法であって、該実行が、
    前記エントロピー・エンコーディング・テストがデータ圧縮テストであることに基づき、前記入力シンボルのうちの1つまたは複数を含んでいる入力データ文字列の内容、ならびに前記STTおよび前記EEDの内容に基づいて、可逆データ圧縮プロセスを実行すること、ならびに
    前記エントロピー・エンコーディング・テストがデータ解凍テストであることに基づき、前記コードワードのうちの1つまたは複数を含んでいる入力データ文字列の内容、ならびに前記STTおよび前記EEDの内容に基づいて、データ解凍プロセスを実行すること
    前記エントロピー・エンコーディング・テストの結果をシミュレータのテスト結果と比較することと、
    前記比較の結果をテスターに出力することと
    を含む、前記コンピュータ実装方法。
  2. 前記STTおよび前記EEDがハフマン・ツリーを表す、請求項1に記載の方法。
  3. 前記ハフマン・ツリーを生成することと、
    前記ハフマン・ツリーに基づいて前記STTおよび前記EEDを生成することと
    をさらに含んでいる、請求項2に記載の方法。
  4. 前記内容を変更することが、前記EEDにおいて指定された前記異なる長さのうちの1つを、前記EEDによって指定された別の前記異なる長さと交換することを含んでいる、請求項1に記載の方法。
  5. 前記内容を変更することが、単一の入力シンボルに対応する2つのコードワードを含むように前記STTを更新することを含んでいる、請求項1に記載の方法。
  6. 前記内容を変更することが、同じコードワードに対応する2つの入力信号を含むように前記STTを更新することを含んでいる、請求項1に記載の方法。
  7. 前記入力シンボルのうちの1つまたは複数が第2の可逆データ圧縮プロセスからの出力に対応する、請求項1に記載の方法。
  8. 前記データ解凍プロセスからの出力が、さらなる解凍のために第2のデータ解凍プロセスに送信される、請求項1に記載の方法。
  9. コンピュータ可読命令を含んでいるメモリと、
    前記コンピュータ可読命令を実行するためのプロセッサと
    を備えているシステムであって、前記コンピュータ請求項1~8のいずれか1項に記載のコンピュータ実装方法を実行する、前記システム。
  10. コンピュータに、請求項1~8のいずれか1項に記載のコンピュータ実装方法を実行させるためのコンピュータ・プログラム。
JP2019513059A 2016-09-23 2017-09-25 エントロピー・エンコーディングのシステム・レベル・テスト Active JP6990881B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/273,806 US9673836B1 (en) 2016-09-23 2016-09-23 System level testing of entropy encoding
US15/273,806 2016-09-23
PCT/EP2017/074225 WO2018055160A1 (en) 2016-09-23 2017-09-25 System level testing of entropy encoding

Publications (2)

Publication Number Publication Date
JP2019534602A JP2019534602A (ja) 2019-11-28
JP6990881B2 true JP6990881B2 (ja) 2022-01-12

Family

ID=58778593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019513059A Active JP6990881B2 (ja) 2016-09-23 2017-09-25 エントロピー・エンコーディングのシステム・レベル・テスト

Country Status (6)

Country Link
US (1) US9673836B1 (ja)
JP (1) JP6990881B2 (ja)
CN (1) CN109690957B (ja)
GB (1) GB2569067B (ja)
TW (1) TWI643061B (ja)
WO (1) WO2018055160A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11483009B2 (en) * 2019-05-08 2022-10-25 Intel Corporation Self-checking compression
CN113660527A (zh) * 2021-07-19 2021-11-16 广州紫为云科技有限公司 一种基于边缘计算的实时交互体感方法、系统及介质
CN116521093B (zh) * 2023-07-03 2023-09-15 漳州科恒信息科技有限公司 一种智慧社区人脸数据存储方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001136075A (ja) 1999-11-05 2001-05-18 Fujitsu Ltd データ圧縮/復元装置及びデータ圧縮/復元プログラムを記録した記憶媒体
JP2002198822A (ja) 2000-12-27 2002-07-12 Nec Corp データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体
JP2003087798A (ja) 2001-09-13 2003-03-20 Canon Inc 動画像圧縮装置及び方法
US20130135121A1 (en) 2011-11-24 2013-05-30 International Business Machines Corporation Compression algorithm incorporating dynamic selectionof a predefined huffman dictionary
JP2014179709A (ja) 2013-03-13 2014-09-25 Ricoh Co Ltd 画像処理装置、方法及びプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471207A (en) * 1994-02-23 1995-11-28 Ricoh Company Ltd. Compression of palettized images and binarization for bitwise coding of M-ary alphabets therefor
US6404931B1 (en) * 1998-12-14 2002-06-11 Microsoft Corporation Code book construction for variable to variable length entropy encoding
US7436329B2 (en) * 2003-04-17 2008-10-14 Droplet Technology, Inc. Multiple technique entropy coding system and method
US7415162B2 (en) * 2003-05-27 2008-08-19 Zaxel Systems, Inc. Method and apparatus for lossless data transformation with preprocessing by adaptive compression, multidimensional prediction, multi-symbol decoding enhancement enhancements
US6919826B1 (en) 2003-12-19 2005-07-19 Sun Microsystems, Inc. Systems and methods for efficient and compact encoding
EP1836858A1 (en) * 2005-01-14 2007-09-26 Sungkyunkwan University Methods of and apparatuses for adaptive entropy encoding and adaptive entropy decoding for scalable video encoding
US7652599B1 (en) * 2008-08-27 2010-01-26 Xerox Corporation Range normalization for entropy reduction arithmetic encoding/decoding
US7864086B2 (en) * 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US8356060B2 (en) 2009-04-30 2013-01-15 Oracle International Corporation Compression analyzer
US7990297B1 (en) * 2010-02-26 2011-08-02 Research In Motion Limited Encoding and decoding methods and devices employing dual codesets
WO2012173315A1 (ko) * 2011-06-17 2012-12-20 엘지전자 주식회사 인트라 예측 모드 부호화/복호화 방법 및 장치
US9729884B2 (en) * 2012-01-18 2017-08-08 Lg Electronics Inc. Method and device for entropy coding/decoding
US8754792B2 (en) * 2012-07-14 2014-06-17 Sigma Designs, Inc. System and method for fixed rate entropy coded scalar quantization

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001136075A (ja) 1999-11-05 2001-05-18 Fujitsu Ltd データ圧縮/復元装置及びデータ圧縮/復元プログラムを記録した記憶媒体
JP2002198822A (ja) 2000-12-27 2002-07-12 Nec Corp データ圧縮装置及び圧縮方法並びにその制御プログラムを記録した記録媒体
JP2003087798A (ja) 2001-09-13 2003-03-20 Canon Inc 動画像圧縮装置及び方法
US20130135121A1 (en) 2011-11-24 2013-05-30 International Business Machines Corporation Compression algorithm incorporating dynamic selectionof a predefined huffman dictionary
JP2014179709A (ja) 2013-03-13 2014-09-25 Ricoh Co Ltd 画像処理装置、方法及びプログラム

Also Published As

Publication number Publication date
TW201816610A (zh) 2018-05-01
WO2018055160A1 (en) 2018-03-29
CN109690957B (zh) 2023-04-28
GB2569067B (en) 2022-04-27
GB2569067A (en) 2019-06-05
US9673836B1 (en) 2017-06-06
JP2019534602A (ja) 2019-11-28
TWI643061B (zh) 2018-12-01
GB201904378D0 (en) 2019-05-15
CN109690957A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
US11483009B2 (en) Self-checking compression
JP6425709B2 (ja) 復元中に予備拡張辞書を利用するデータ復元
JP6381546B2 (ja) 多バイト・フレームのパイプライン化圧縮のための方法、符号化データ・ストリームへの高帯域圧縮のための装置、およびコンピュータ・プログラム製品
US8937564B2 (en) System, method and non-transitory computer readable medium for compressing genetic information
JP6990881B2 (ja) エントロピー・エンコーディングのシステム・レベル・テスト
JP7425526B2 (ja) 動的ハフマン表生成のためのハードウェア領域を節約するためのラッチカウントの削減
Maruyama et al. An online algorithm for lightweight grammar-based compression
US10735025B2 (en) Use of data prefixes to increase compression ratios
JP2021527376A (ja) データ圧縮
US8674856B2 (en) Data compression utilizing longest common subsequence template
WO2021130754A1 (en) Systems and methods of data compression
US20180041224A1 (en) Data value suffix bit level compression
US20180102787A1 (en) Character conversion
Funasaka et al. Adaptive loss‐less data compression method optimized for GPU decompression
JP2018521537A (ja) 仮想メモリシステムにおける圧縮されたキャッシングの改善
JP6613669B2 (ja) 圧縮プログラム、圧縮方法、情報処理装置、置換プログラムおよび置換方法
JP2017194753A (ja) 符号化プログラム、符号化方法、符号化装置、検索プログラム、検索方法および検索装置
US10361980B2 (en) Lossy text source coding by word length
JP2016052046A (ja) 圧縮装置、伸長装置およびストレージ装置
CN108829872B (zh) 无损压缩文件的快速处理方法、设备、系统及存储介质
JP2016170750A (ja) データ管理プログラム、情報処理装置およびデータ管理方法
US10915559B2 (en) Data generation method, information processing device, and recording medium
US10623016B2 (en) Accelerated compression/decompression including predefined dictionary
US20180145701A1 (en) Sonic Boom: System For Reducing The Digital Footprint Of Data Streams Through Lossless Scalable Binary Substitution
JP2016134808A (ja) データ圧縮プログラム、データ復元プログラム、データ圧縮装置、及びデータ復元装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190425

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210309

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20210602

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210602

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20210602

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210622

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20211117

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20211117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211119

R150 Certificate of patent or registration of utility model

Ref document number: 6990881

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150