JP6629165B2 - データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置 - Google Patents

データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置 Download PDF

Info

Publication number
JP6629165B2
JP6629165B2 JP2016199242A JP2016199242A JP6629165B2 JP 6629165 B2 JP6629165 B2 JP 6629165B2 JP 2016199242 A JP2016199242 A JP 2016199242A JP 2016199242 A JP2016199242 A JP 2016199242A JP 6629165 B2 JP6629165 B2 JP 6629165B2
Authority
JP
Japan
Prior art keywords
data
compression
unit
decompression
compressed
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
JP2016199242A
Other languages
English (en)
Other versions
JP2018061199A (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.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage 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 Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2016199242A priority Critical patent/JP6629165B2/ja
Priority to CN201710705689.1A priority patent/CN107919872A/zh
Priority to EP17187939.8A priority patent/EP3306822B1/en
Priority to US15/687,780 priority patent/US10164654B2/en
Publication of JP2018061199A publication Critical patent/JP2018061199A/ja
Application granted granted Critical
Publication of JP6629165B2 publication Critical patent/JP6629165B2/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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • 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/3066Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction by means of a mask or a bit-map
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
    • H03M7/48Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind alternating with other codes during the code conversion process, e.g. run-length coding being performed only as long as sufficientlylong runs of digits of the same kind are present
    • 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/607Selection between different types of compressors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • 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/50Conversion to or from non-linear codes, e.g. companding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/06Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection
    • H04L25/067Dc level restoring means; Bias distortion correction ; Decision circuits providing symbol by symbol detection providing soft decisions, i.e. decisions together with an estimate of reliability

Landscapes

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

Description

本実施形態は、データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置に関する。
従来、オリジナルのデータ列の内容を損なわずにデータ量を圧縮したり、圧縮されたデータを伸張し、オリジナルのデータ列に復元したりする、データ圧縮・伸張技術が開発されている。この技術の一つとして、ランレングス方式が存在する。ランレングス方式は、ある特定のデータが連続して出現する場合に、データ種別と連続する長さとのペアで符号化することにより、当該連続データを圧縮する
ランレングス方式では、圧縮されたデータを高い周波数で伸張する場合、ランレングス値を固定長で表現する方法が一般的に行われている。ただし、固定長方式では、特定データの連続数が非常に大きい場合や、逆に非常に小さい場合には、圧縮効率が悪くなってしまう。そこで、連続数に応じて複数の圧縮データフォーマットを使い分けることで圧縮効率の改善を図る圧縮装置が提案されている(例えば、特許文献1参照)。
しかしながら、伸張装置のスループット(1サイクルで伸張するデータ数)を保証しなければならない場合において、特許文献1に記載された圧縮装置で圧縮されたデータでは、1サイクルで複数のランレングスデータの解析が必要となってしまう。このため、1サイクルの処理中に、比較や加算を多数行わなければならず、動作周波数が低くなってしまうという問題があった。
特許第3676078号公報
本実施形態は、圧縮効率の低下を抑制し、かつ、高い周波数で動作可能な、データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置を提供することを目的とする。
本実施形態の圧縮装置は、連続して入力されるデータを、第1のビット幅を有するデータブロックに分割し、前記データブロックを所定の個数ずつ、1セグメントとして出力する入力データ分割部と、前記セグメントの圧縮手段として、一の前記セグメントに含まれる前記データブロックが特定データである割合に応じ、第1の圧縮手段、または第2の圧縮手段、または非圧縮手段のいずれかを選択する、圧縮手段選択部と、前記特定データに関し、連続量を圧縮データに格納する前記第1の圧縮手段を前記セグメントに対し実行する第1の圧縮部と、前記特定データの位置情報を前記圧縮データに格納する前記第2の圧縮手段を前記セグメントに対し実行する第2の圧縮部と、を有し、前記圧縮手段選択部によって選択された手段に従って圧縮された前記圧縮データは、前記圧縮手段を識別可能な識別用ビットを有することを特徴とする。
第1の実施形態に係わる圧縮装置の構成を説明する概略ブロック図。 圧縮データフォーマットを説明する図。 入力データと圧縮データのデータ構造を説明する図。 第1の実施形態に係わる圧縮装置の動作を説明するフローチャート。 第1の実施形態に係わる圧縮装置の別の構成を説明する図。 第1の実施形態に係わる伸張装置の構成を説明する概略ブロック図。 第1の実施形態に係わる伸張装置の動作を説明するフローチャート。 第1の実施形態の変形例に係わる圧縮データフォーマットを説明する図。 第1の実施形態の別の変形例に係わる圧縮データフォーマットを説明する図。 第2の実施形態に係わる圧縮装置の構成を説明する概略ブロック図。 入力データ、中間データ、及び、圧縮データのデータ構造を説明する図。 第2の実施形態に係わる圧縮装置の動作を説明するフローチャート。 第2の実施形態に係わる伸張装置の構成を説明する図。 第2の実施形態に係わる伸張装置の動作を説明するフローチャート。
以下、図面を参照して実施形態を説明する。
(第1の実施形態)
図1は、第1の実施形態に係わる圧縮装置の構成を説明する図である。圧縮装置1は、入力データを受け取って、圧縮データを生成し出力する。圧縮装置1は、入力データから、Wbitごとに区切られたデータブロックをN個ずつ取り出す。N個のデータブロックを1セグメントとし、1セグメントごとに所定の圧縮方法を用いて圧縮データを生成し、出力する。なお、圧縮装置1は、予め設定された特定のデータを圧縮する。以下、特定のデータとして“0”が設定されており、16bit(W=16)ごとに区切られたデータブロックを4個(N=4)ずつ取り出して圧縮する場合について説明する。
圧縮装置1は、データ切り出し部11と、圧縮方法判定部12と、圧縮データ生成部13とを有して構成される。
データ切り出し部(入力データ分割部)11は、入力データから、圧縮対象となるデータを取り出す。圧縮は、1セグメントごとに行うので、データ切り出し部11では、1セグメント分のデータとして、入力データの先頭からN×Wbitずつ切り出す。切り出されたデータは、圧縮方法判定部12に出力される。
圧縮方法判定部(圧縮手段選択部)12は、入力された1セグメントのデータを圧縮する方法を決定する。圧縮装置1は、1セグメントごとに、(1)ランレングス方式、(2)フラグ方式、(3)圧縮を行わない(非圧縮)、のいずれかの方法を用いて圧縮を行う。圧縮方法は、以下のように決定する。
N個のデータブロックが全て“0”である場合、ランレングス方式が選択される。“0”であるデータブロックが1つ以上N個未満の場合、フラグ方式が選択される。N個のデータブロックが全て“0”以外の値である場合、非圧縮が選択される。選択された圧縮方法と、圧縮対象となるデータとは、圧縮データ生成部13に出力される。
圧縮データ生成部13は、RL圧縮部(第1の圧縮部)131と、フラグ圧縮部(第2の圧縮部)132と、非圧縮部133とから構成される。選択された圧縮方法に応じて、1セグメントの圧縮対象データは、RL圧縮部131、フラグ圧縮部132、非圧縮部133のいずれかに入力され、圧縮データに変換され出力される。
図2は、圧縮データフォーマットを説明する図である。図2(a)は、ランレングス方式の圧縮データ、図2(b)は、フラグ方式の圧縮データの先頭フィールド、図2(c)は、非圧縮データの、データフォーマットを示している。
各データフォーマットの先頭には、識別子が付与される。識別子は、圧縮データがランレングス方式による圧縮データであるか、フラグ方式による圧縮データであるか、非圧縮データであるかを識別可能な値が設定される。例えば、ランレングスは“1”、フラグは“2”、非圧縮は“3”などの値が設定される。
ランレングス方式(第1の圧縮手段)を用いて圧縮したデータは、ランレングス方式で圧縮を行うセグメントの連続数を表すランレングス値を示す。例えば、連続する3つのセグメントのデータブロックが全て“0”である場合、ランレングス値は“3”となる。圧縮データは、Wbitのランレングス値の先頭にIbitの識別子を付加し、I+Wbitの固定長フィールドで出力される。
フラグ方式(第2の圧縮手段)を用いて圧縮したデータは、図2(b)に示す形式の先頭フィールドに、値が“0”以外データブロックを付加して生成される。先頭フィールドは、フラグビットの先頭に、圧縮方法を識別するための識別子が付与される。フラグビットは、値が“0”であるデータブロックの位置にビット「1」を立て、“0”データの位置情報を記憶させる。従って、フラグビットは、1つのセグメントに含まれるデータブロックの数と等しいビット数(Nbit)で表現される。先頭フィールドは、Nbitのフラグビットの前に(W−N)bitの予備ビットと識別子Ibitを付加して、I+Wbitの固定長フィールドとする。また、値が“0”以外のデータブロックは、各先頭にIbitの調整ビットを付加し、I+Wbitの固定長フィールドとする。
例えば、あるセグメントのデータブロックの値が、“1”“0”“2”“0”の順である場合、フラグビットは「0101」となる。また、“0”のデータブロックが除去され、“1”と“2”のデータブロックが、先頭フィールドに付加される。
非圧縮の場合、1セグメントのデータは、WbitのデータブロックごとにIbitの識別子を付加し、出力される。すなわち、各方式の圧縮データは、Wbitのデータの先頭にIbitの識別子を付加し、I+Wbitの固定長フィールドで出力される。
RL圧縮部131は、ランレングス値をカウントするカウンタ131aを有している。圧縮方法判定部12は、圧縮方法としてランレングス方式を選択した場合、対象データをRL圧縮部131に入力し、カウンタ131aをインクリメントする。圧縮方法判定部12は、次のセグメントの圧縮方式を、フラグ方式または非圧縮と判定した場合、RL圧縮部131に対して圧縮データの出力を指示する。RL圧縮部131は、ランレングス値を用いたフォーマットの圧縮データを生成し、出力する。
フラグ圧縮部132は、圧縮方法判定部12から1セグメント分のデータを入力されると、フォーマットの先頭フィールドを生成し、出力する。先頭フィールドに続けて、入力されたデータから“0”であるデータブロックを除去し、各データの先頭にIbitの調整ビットを付加して圧縮データを生成し、出力する。
非圧縮部133は、圧縮方法判定部12から1セグメント分のデータを入力されると、各データブロックの先頭にIbitの識別子を付加し、出力する。
図3は、入力データと圧縮データのデータ構造を説明する図である。図3は、16bitのデータブロック4個を1セグメントとし、セグメントごとに圧縮を行う場合について示している。入力データの最初のセグメントは、全てのデータブロックの値が“0”であるので、ランレングス方式で圧縮を行う。次のセグメントは、2つ目のデータブロックの値が“1”であり、他のデータブロックの値が“0”であるので、フラグ方式で圧縮を行う。最後のセグメントは、全てのデータブロックの値が“0”以外であるので、非圧縮とする。
従って、最初のセグメントを圧縮したデータとして、ランレングス値が1である16+Ibitのフィールドが出力される。すなわち、ランレングス圧縮により、16bitのデータブロック4個が、16+Ibitのフィールド1個に圧縮されて出力される。
2つ目のセグメントを圧縮したデータとして、4bitのフラグビット「1011」を含む16+Ibitの先頭フィールドが出力される。続いて、当該セグメントから値が“0”であるデータブロックを除去し、“1”のデータブロックを残す。そして、“1”のデータブロックの先頭にIbitの調整ビットを付加した16+Ibitのフィールドが出力される。すなわち、16bitのデータブロック4個がフラグ圧縮されて、16+Ibitのフィールド2個が出力される。
3つ目のセグメントは非圧縮であるので、各データブロックの先頭に、Ibitの識別子を付加した、16+Ibitのフィールドが4個出力される。
次に、本実施形態の圧縮装置の動作を説明する。図4は、第1の実施形態に係わる圧縮装置の動作を説明するフローチャートである。なお、圧縮に先立ち、圧縮装置には圧縮する特定データの値が登録されているものとする。以下、特定データとして“0”が登録されている場合について、説明する。
まず、カウンタ131aの値をゼロクリアする(zc=0、S1)。続いて、圧縮装置1に1セグメント分の入力データを読み込む(S2)。データ切り出し部11は、1セグメント分のデータを構成するN個のデータブロックを切り出し、圧縮方法判定部12に出力する(S3)。
圧縮方法判定部12は、N個のデータブロックのうち、値が“0”であるデータブロックの個数をカウントする(S4)。N個のデータブロックの全てが“0”である場合(S5、YES)、RL圧縮部131は、カウンタ131aの値を1増加させる。そして、圧縮装置1は、S2に戻って次のセグメントの入力データを読み込む。
一方、N個のデータブロックのうち、“0”でない値のデータブロックがある場合(S5、NO)、カウンタ131aの値をチェックする。カウンタ131aの値が0より大きい場合(S7、YES)、RL圧縮部131は、読み込み済かつ未圧縮であるセグメントのデータをランレングス方式で圧縮する。すなわち、カウンタ131aの値をランレングス値とする圧縮データを生成し(S8)、出力する(S12)。続いてS9に進み、現在の入力データについて、圧縮方法の判定を継続する。
カウンタ131aの値が0である場合(S7、NO)、N個のデータブロックの中に、値が“0”のものが存在するか否かを判定する(S9)。値が“0”のデータブロックが存在する場合(S9、YES)、フラグ圧縮部132は、セグメントのデータからフラグビットを作成してフラグ圧縮し(S10)、圧縮データを出力する(S13)。
一方、値が“0”のデータブロックが存在しない場合(S9、NO)、非圧縮部133は、非圧縮処理(非圧縮データを示す識別子を、データの先頭に付与する)を行い(S11)、圧縮データとして出力する(S13)。
圧縮データの出力が完了すると、S1に戻り、カウンタ131aをゼロクリアした後に、次のセグメントの入力データを読み込む。このようにして、圧縮装置1へのデータの入力が終了するまで、S1からS13の一連の動作を繰り返し、圧縮データを生成して出力する。
なお、図1では、ハードウェア上で圧縮装置を実現する場合について示しているが、ソフトウェアを用いて実現してもよい。図5は、第1の実施形態に係わる圧縮装置の別の構成例を説明する図である。ソフトウェアで実現する場合、圧縮動作を記述した圧縮プログラム33をデータベース3に登録しておく。データの圧縮を行う際には、PC2のRAM22に圧縮プログラム33を読み込んで展開する。そして、データベース3からPC2に入力データ31を読み込み、CPU21で圧縮プログラム33を実行することにより、圧縮データ32を生成する。
なお、図5では、入力データ31、圧縮データ32、圧縮プログラム33を同一のデータベース3に格納するように構成しているが、別々のデータベースに格納するように構成してもよい。また、入力データ31と圧縮データ32とは、データベース3に格納せずに、別の装置との間で直接入出力するように構成してもよい。
次に、圧縮装置1を用いて生成した圧縮データを伸張する伸張装置4について説明する。図6は、第1の実施形態に係わる伸張装置の構成を説明する図である。伸張装置4は、圧縮データを受け取って、伸張データを生成し出力する。伸張装置4は、圧縮データから、I+Wbitごとに出力されたフィールド単位でデータを伸張し、Wbitのデータブロック単位で伸張データを出力する。
伸張装置4は、伸張方法判定部(伸張手段選択部)41と、伸張データ生成部42とを有して構成される。伸張方法判定部41は、入力された圧縮データを伸張する方法を決定する。圧縮データとして、(1)ランレングス方式、(2)フラグ方式、(3)非圧縮、の3つのタイプの圧縮データが入力される。各フィールドの先頭には、圧縮方法を示すIbitの識別子が付与されている。従って、この識別子を解析することで、伸張方法判定部41は伸張方法を判別する。なお、伸張方法判定部41は、伸張方法判定の対象となるフィールドの位置を示すリードポインタ41aを備える。
伸張データ生成部42は、RL伸張部(第1の伸張部)421と、フラグ伸張部(第2の伸張部)422と、非伸張部423とから構成される。伸張方法判定部41で選択された伸張方法に応じて、1フィールド分の圧縮データが、RL伸張部421、フラグ伸張部422、非伸張部423のいずれかに入力され、伸張データに変換され出力される。
伸張方法判定部41において、リードポインタ41aが指すフィールドの識別子が、ランレングス方式を示していると判定された場合、当該フィールドはRL伸張部421に入力される。RL伸張部421は、当該フィールドに格納されているランレングス値に基づき、伸張データを生成する。すなわち、ランレングス値が示すセグメント数だけ、特定データを出力する。例えば、ランレングス値が3の場合、3セグメント×4データブロック=12個の“0”を出力する。伸張方法判定部41は、伸張に用いたフィールド数(=1フィールド)だけ、リードポインタ41aを進める。
伸張方法判定部41において、識別子がフラグ方式を示していると判定された場合、当該フィールドはフラグ伸張部422に入力される。フラグ伸張部422は、当該フィールドに格納されているフラグビットを解析し、伸張に用いるフィールド数を決定する。すなわち、フラグ方式では、フラグビットが「1」である箇所はデータが圧縮されているが、フラグビットが「0」である箇所はデータが圧縮されずに付加されている。従って、フラグビットを格納している先頭フィールドに加え、データが圧縮されずに付加されているフィールド分のデータを用いて伸張を行う。
例えば、フラグビットが「0101」である場合、伸張に用いるフィールド数は、1(先頭フィールド)+2(フラグビット0の個数)=3となる。フラグ伸張部422は、伸張方法判定部41に対し、フラグビット「0」の個数分のフィールドを要求する。また、伸張方法判定部41は、伸張に用いるフィールド数だけ、リードポインタ41aを進める。
伸張方法判定部41は、要求された個数分のフィールドを、フラグ伸張部422に出力する。フラグ伸張部422は、先頭フィールドに格納されているフラグビットに従い、フラグビットが「1」の場合は“0”を出力し、フラグビットが「0」の場合は、後続のフィールドの値を出力する。
例えば、フラグビットが「0101」であり、圧縮データとして入力された後続のフィールドが“2”“3”である場合、“2”“0”“3”“0”の4個のデータブロックを伸張データとして出力する。
伸張方法判定部41において、識別子が非圧縮を示していると判定された場合、当該フィールドは非伸張部423に入力される。非伸張部423は、先頭のIbitの識別子を削除し、Wbitの伸張データとして出力する。伸張方法判定部41は、処理に用いたフィールド数(=Nフィールド)分だけ、リードポインタ41aを進める。
すなわち、本実施形態の伸張装置4は、圧縮データのフィールドを参照すれば、伸張方法、及び、1サイクルの伸張に用いるフィールド数を決定することができる。従って、従来のように、複数のフィールドを参照してフィールド間の加算や比較を行う必要がないため、高い周波数で伸張処理を行うことができる。
次に、本実施形態の伸張装置の動作を説明する。図7は、第1の実施形態に係わる伸張装置の動作を説明するフローチャートである。なお、データ伸張に先立ち、伸張装置には伸張する特定データの値が登録されているものとする。また、リードポインタ41aは、入力される圧縮データの先頭のフィールドを指しているものとする。以下、特定データとして“0”が登録されている場合について、説明する。
まず、リードポインタ41aを参照し、圧縮データのフィールドを読み込み、当該フィールドに付加されている識別子を解析する(S21)。識別子がランレングス方式を示している場合(S22、YES)、RL伸張部421において当該フィールドをランレングス伸張する(S23)。伸張方法判定部41は、リードポインタ41aを1進め(S24)、伸張データを出力する(S30)。
識別子がランレングス方式ではないと判定された場合(S22、NO)、フラグ方式であるか否かを判定する(S25)。フラグ方式であると判定された場合(S25、YES)、フラグ伸張部422においてフラグビット解析を行い、フラグ伸張に必要なフィールドを伸張方法判定部41に要求し、フラグ伸張を行う(S26)。また、伸張方法判定部41は、フラグ伸張に用いたフィールド数(フラグビットが「0」の数+1)だけ、リードポインタ41aを進め(S27)、伸張データを出力する(S30)。
識別子がフラグ方式ではないと判定された場合(S25、NO)、非圧縮データであると判定する。非伸張部423において、先頭のIbitを当該フィールドから削除し、伸張データを生成する(S28)。伸張方法判定部41は、リードポインタ421aをN進め(S29)、伸張データを出力する(S30)。
RL伸張部421、フラグ伸張部422、非伸張部423のいずれかから伸張データが出力される(S30)と、S21に戻り、リードポインタ421aが示すフィールドを解析する。このようにして、伸張装置4へのデータの入力が終了するまで、S21からS30の一連の動作を繰り返し、伸張データを生成して出力する。
なお、上述ではハードウェア上で伸張装置を実現する場合について説明しているが、圧縮装置同様に、図7に示す伸張動作を、ソフトウェアを用いて実現してもよい。
このように、本実施形態によれば、N個のデータブロックからなるセグメントごとにデータを圧縮する。圧縮データの先頭に、圧縮方法を示す識別子を付与することで、伸張時には圧縮データのフィールドを参照すれば、伸張方法、及び、1サイクルの伸張に用いるフィールド数を決定することができる。従って、従来のように、複数のフィールドを参照してフィールド間の加算や比較を行う必要がないため、高い周波数で伸張処理を行うことができる。ただし、ランレングス圧縮を1セグメントごとに行うため、ランレングス値がN個の倍数に制限されてしまい、圧縮効率が低下する可能性がある。しかしながら、本実施形態によれば、ランレングス方式に加えてフラグ方式を併用することで、端数の特定データについても圧縮を行うことができるため、圧縮効率の低下を抑制することができる。
なお、圧縮データのフォーマットは、図2に示すフォーマットに限定される趣旨のものではなく、フィールドが固定長であって、特定の位置を参照することで圧縮方法を識別できるようなものであれば、種々の変更が可能である。図8は、第1の実施形態の変形例に係わる圧縮データフォーマットを説明する図である。フラグ方式の先頭フィールドのデータフォーマットの一例を示している。
本変形例では、フラグ圧縮の先頭フィールドにおいて、図2(b)に示した(W−N)bitの予備ビット部分に、フラグビットにおける非ゼロの数を格納する。これにより、フラグ方式で圧縮されたデータを伸張する際に、非ゼロ数を参照し、これに1(=先頭フィールド)を加えることで、伸張に用いるフィールドの数を特定することができる。フラグビットを解析してフィールド数を算出する必要がなくなるため、より高周波数で伸張処理を行うことができる。
なお、フラグビットの非ゼロ数に1を加えた数を、予備ビット部分に格納してもよい。この場合、予備ビット部分の数=伸張に必要なフィールド数となるため、伸張に必要なフィールド数特定時の加算処理が不要になり、より高周波数での処理が可能となる。
図9は、第1の実施形態の別の変形例に係わる圧縮データフォーマットを説明する図である。図9には、入力データのフォーマットが、IEEE754の半精度2進浮動小数点表現である場合の、圧縮データフォーマットの一例を示している。例えばIEEE754のように、入力データのフォーマットが予め定義されている場合、特定のビットパターンに圧縮方式を割り当てることで、圧縮方式の識別が可能となる。
IEEE754の半精度2進浮動小数点表現のデータフォーマットでは、16bitのデータブロックのうち、先頭の1bitが符号部、続く5bitが指数部、最後の10bitが仮数部に割り当てられている。符号部、指数部、仮数部の組み合わせで、±0、非正規仮数、正規仮数、NaN、±∞を識別、表現する。例えば、非正規仮数やNaNが使用されない用途である(入力データとして用いられない)場合、これらのパターンにランレングス方式やフラグ方式を割り当てる。
例えば、非正規化数を表すパターン(符号部:1、指数部:0、仮数部:0以外の値)にランレングス方式で圧縮したデータを、NaNを表すパターン(符号部:0or1、指数部:0x1f、仮数部:0以外の任意の値)にフラグ方式で圧縮したデータを割り当てる。ランレングス方式で圧縮したデータは、仮数部にランレングス値を格納し、フラグ方式で圧縮したデータは、仮数部にフラグビット(または、伸張時に用いるフィールド数、及び、フラグビット)を格納する。
この場合、フィールドの先頭の6bitを参照し、符号部=1、指数部=0であれば、ランレングス方式を用いた圧縮データであると判定する。また、フィールドの2bit目以降を参照し、指数部=0x1f、仮数部:非ゼロであれば、フラグ方式を用いた圧縮データであると判定することができる。従って、圧縮データの先頭に、識別子を付加する必要がなくなるため、圧縮後の各データのビット幅が、入力データのビット幅(=Wbit)のままとなる。従って、圧縮効率が改善される。
なお、予めデータフォーマットが定義されている入力データであれば、IEEE754以外のフォーマットでもよく、例えば、ASCIIコードなどの文字コードでもよい。ASCIIコードは、8bitでアルファベット、数字、記号等を識別、表現する。例えば、″が使用されない用途である(入力データとして用いられない)場合、記号のパターンにランレングス方式やフラグ方式を割り当てることができる。
(第2の実施形態)
第1の実施形態の圧縮装置は、ランレングス方式、フラグ方式、非圧縮のいずれの方法で圧縮を行うかを圧縮方法判定部で判定し、それぞれの圧縮部に入力データを振り分けていた。これに対し、第2の実施形態の圧縮装置は、まず、一つ目の圧縮器で、入力データに関してランレングス方式の圧縮を行い、続いて二つ目の圧縮器で、入力データに関してフラグ方式の圧縮を行う、すなわち、2段階で圧縮を行う点が異なっている。
図10は、第2の実施形態に係わる圧縮装置の構成を説明する図である。圧縮装置5は、第1圧縮器51と、第2圧縮器52とから構成される。第1の圧縮器51で入力データを受け取って、中間データを生成し、第2圧縮器52に出力する。第2圧縮器52は、中間データから圧縮データを生成し、出力する。
圧縮装置5は、入力データから、Wbitごとに区切られたデータブロックをN個ずつ取り出す。N個のデータブロックを1セグメントとし、ランレングス方式の圧縮を行い、中間データを生成して出力する。続いて、中間データから、W+Ibitごとに区切られたシンボルをN個ずつ取り出す。N個のシンボルを1セグメントとし、フラグ方式の圧縮あるいは非圧縮を行い、圧縮データを生成して出力する。本実施形態の圧縮装置は、予め設定された特定のデータを圧縮する。以下、特定のデータとして“0”が設定されており、入力データから16bit(W=16)ごとに区切られたデータブロックを4個(N=4)ずつ取り出して圧縮する場合について説明する。
第1圧縮器51は、データ切り出し部511と、圧縮方法判定部512と、圧縮データ生成部513とを有して構成される。圧縮データ生成部513は、RL圧縮部514と、非圧縮部515とを有して構成される。また、第2圧縮器52は、データ切り出し部521と、圧縮方法判定部522と、圧縮データ生成部523とを有して構成される。圧縮データ生成部523は、フラグ圧縮部524と、非圧縮部525とを有して構成される。
データ切り出し部511は、入力データから、圧縮対象となるデータを取り出す。圧縮は、1セグメントごとに行うので、データ切り出し部511では、1セグメントのデータとして、入力データの先頭からN×Wbitずつ切り出す。切り出されたデータは、圧縮方法判定部512に出力される。
圧縮方法判定部512は、1セグメントの入力データをランレングス方式で圧縮するか否かを判定する。N個のデータブロックが全て“0”である場合、ランレングス方式で圧縮可能であると判定される。ランレングス方式で圧縮可能であると判定された場合、N個のシンボルは、RL圧縮部514に出力される。一方、ランレングス方式で圧縮不可と判定された場合、非圧縮部515に出力される。
RL圧縮部514は、ランレングス値をカウントするカウンタ512aを有している。圧縮方法判定部512は、ランレングス方式で圧縮可能であると判定した場合、カウンタ512aをインクリメントする。圧縮方法判定部512は、次のセグメントの入力データをランレングス方式で圧縮不可と判定した場合、RL圧縮部514に対して圧縮データの出力を指示する。RL圧縮部514は、ランレングス値を用いて図2(a)に示すフォーマットの圧縮データを生成し、中間データとして出力する。
非圧縮部515は、圧縮方法判定部512から1セグメント分のデータを入力されると、各データブロックの先頭にIbitの調整ビット(例えば“0”)を付加し、中間データとして出力する。
データ切り出し部521は、中間データから、圧縮対象となるデータを取り出す。圧縮は、1セグメントごとに行うので、データ切り出し部521は、1セグメントのデータとして、中間データの先頭からN×(W+I)bitずつ切り出す。切り出されたデータは、圧縮方法判定部522に入力される。
圧縮方法判定部522は、1セグメントの中間データをフラグ方式で圧縮するか否かを判定する。 “0”であるシンボルが1つ以上N個未満の場合、フラグ方式で圧縮可能であると判定される。フラグ方式で圧縮可能であると判定された場合、N個のシンボルは、フラグ圧縮部524に出力される。一方、フラグ方式で圧縮不可と判定された場合、非圧縮部525に出力される。
フラグ圧縮部524は、圧縮方法判定部522から1セグメント分のデータを入力されると、第1の実施形態のフラグ圧縮部132と同様に、図2(b)に示すフォーマットの先頭フィールドを生成し、出力する。先頭フィールドに続けて、入力されたデータから“0”であるデータブロックを除去して圧縮データを生成し、出力する。なお、先頭フィールドは、図8に示すフォーマットでもよい。
非圧縮部525は、圧縮方法判定部522から1セグメント分のデータを入力されると、先頭のIbitについて、非圧縮を識別する識別子に変更し、出力する。
図11は、入力データ、中間データ、及び、圧縮データのデータ構造を説明する図である。図11は、データブロックまたはシンボル4個を1セグメントとし、セグメントごとに圧縮を行う場合について示している。入力データの最初のセグメントは、全てのデータブロックの値が“0”であるので、第1圧縮器51においてランレングス方式で圧縮を行う。2番目のセグメントと、3番目のセグメントは、“0”以外のデータブロックを含むので、第1圧縮器51では圧縮を行わない。
従って、中間データとして、まず、データブロック4個が、ランレングス方式により16+Ibitのシンボル1個に圧縮されて出力される。これに続いて、各データブロックの先頭にIbitの調整ビットが付加された8個のシンボルが出力される。すなわち、12個のデータブロックが9個のシンボルに圧縮されて出力される。
続いて、中間データの最初のセグメントは、2番目と4番目のシンボルが“0”であるので、フラグ方式で圧縮を行う。2番目のセグメントは、1番目のシンボルが“0”であるので、フラグ圧縮を行う。9番目のシンボルは、これ以降のシンボルの値に応じて圧縮を行う。(ここでは、非圧縮とする。)
従って、最初のセグメントの圧縮データとして、先頭フィールドが出力され、 “RL”“1”のフィールドが続く。なお、“RL”は、ランレングス方式で圧縮生成されていることを示す。すなわち、4個のシンボルがフラグ圧縮され、3個のフィールドが出力される。
続いて、2番目のセグメントの圧縮データとして、先頭フィールドが出力され、 “2”“3”“4”のデータブロックが続く最後に、非圧縮である9番目のシンボルが、先頭のIbit部分を、非圧縮を識別する識別子に変換され、1フィールドの圧縮データとして出力される。
次に、本実施形態の圧縮装置の動作を説明する。図12は、第2の実施形態に係わる圧縮装置の動作を説明するフローチャートである。なお、圧縮に先立ち、圧縮装置には圧縮する特定データの値が登録されているものとする。以下、特定データとして“0”が登録されている場合について、説明する。
まず、カウンタ512aの値をゼロクリアする(zc=0、S31)。続いて、第1圧縮器51に、1セグメント分の入力データを読み込む(S32)。データ切り出し部511は、1セグメント分のデータを構成するN個のデータブロックを切り出し、圧縮方法判定部512に出力する(S33)。
圧縮方法判定部512は、N個のデータブロックのうち、値が“0”であるデータブロックの個数をカウントする(S34)。N個のデータブロックの全てが“0”である場合(S35、YES)、カウンタ512aの値を1増加させ(S36)、第1圧縮器51は、S32に戻って次のセグメントの入力データを読み込む。
一方、N個のデータブロックのうち、“0”でない値のデータブロックがある場合(S35、NO)、RL圧縮部513は、カウンタ512aの値をランレングス値とする圧縮データを生成し、中間データとして出力する。また、非圧縮部514は、N個のデータブロックのそれぞれの先頭に、ビット幅調整用のIbit (例えば“0”)を付加し、中間データとして出力する(S37)。以上、S31からS37までの一連の処理は、第1圧縮器51において実行される。
続いて、第2圧縮器52に、1セグメント分の中間データを読み込む。データ切り出し部521は、1セグメント分のデータを構成するN個のシンボルを切り出し、圧縮方法判定部522に出力する(S38)。圧縮方法判定部522は、N個のシンボルの中に、値が“0”のものが存在するか否かを判定する(S39)。値が“0”のデータブロックが存在する場合(S39、YES)、フラグ圧縮部524において、セグメントのデータからフラグビットを作成してフラグ圧縮し(S40)、圧縮データとして出力する(S42)
一方、値が“0”のシンボルが存在しない場合(S39、NO)、非圧縮部525は、非圧縮処理(非圧縮を示す識別子を、シンボルの先頭の調整ビットと置換する処理)を行い(S41)、圧縮データとして出力する(S42)。以上、S38からS42までの一連の処理は、第2圧縮器52において実行される。
圧縮データの出力が完了すると、S31に戻り、カウンタ512aをゼロクリアした後に、次のセグメントの入力データを読み込む。このようにして、圧縮装置5へのデータの入力が終了するまで、S31からS41の一連の動作を繰り返し、圧縮データを生成して出力する。
なお、上述ではハードウェア上で圧縮装置を実現する場合について説明しているが、図12に示す圧縮動作を、ソフトウェアを用いて実現してもよい。
次に、の圧縮装置5を用いて生成した圧縮データを伸張する伸張装置6について説明する。図13は、第2の実施形態に係わる伸張装置の構成を説明する図である。伸張装置6は、圧縮データから、I+Wbitごとに出力されたフィールド単位でデータを伸張し、伸張データを出力する。伸張装置6は、第1伸張器61と、第2伸張器62とから構成される。第1伸張器61は、圧縮データから中間データを生成し、第2伸張器62に出力する。第2伸張器62は、中間データから伸張データを生成し、出力する。
第1伸張器61は、伸張方法判定部611と、中間データ生成部612とを有して構成される。伸張方法判定部611は、伸張方法判定の対象となるフィールドの位置を示すリードポインタ611aを備える。リードポインタ611aが指すフィールドの識別子が、フラグ方式を示していると判定された場合、当該フィールドはフラグ伸張部613に入力される。フラグ伸張部613は、当該フィールドに格納されているフラグビットを解析し、伸張に用いるフィールド数を決定する。そして、フラグ伸張部613は、伸張方法判定部611に対し、フラグビット0の個数分のフィールドを要求する。伸張方法判定部611は、伸張に用いるフィールド数だけリードポインタ611aを進める。
伸張方法判定部611は、要求された個数分のフィールドを、フラグ伸張部613に出力する。フラグ伸張部613は、先頭フィールドに格納されているフラグビットに従い、フラグビットが「1」の場合は“0”を出力し、フラグビットが「0」の場合は、後続のフィールドの値を出力する。
例えば、フラグビットが「0101」であり、圧縮データとして入力された後続のフィールドが“RL”“3”である場合、“RL”“0”“3”“0”の4個のシンボルを中間データとして出力する。ランレングス方式で圧縮生成されたシンボル“RL”は、フラグ伸張において、非ゼロと同様に扱われる。なお、中間データのシンボルは、16+Ibit区切りで生成される。
伸張方法判定部611において、識別子が非圧縮を示していると判定された場合、当該フィールドは非伸張部614に入力される。非伸張部614は、入力されたフィールドをそのまま中間データとして出力する。伸張方法判定部611は、処理に用いたフィールド数(=Nフィールド)分だけ、リードポインタ611aを進める。
第2伸張器62は、伸張方法判定部621と、伸張データ生成部622とを有して構成される。伸張方法判定部621は、伸張方法判定の対象となるシンボルの位置を示すリードポインタ621aを備える。リードポインタ621aが指すシンボルの識別子が、ランレングス方式を示していると判定された場合、当該シンボルはRL伸張部623に入力される。RL伸張部623は、当該シンボルに格納されているランレングス値に基づき、伸張データを生成する。伸張方法判定部621は、伸張に用いたシンボル数(=1シンボル)だけ、リードポインタ621aを進める。
伸張方法判定部621において、識別子が非圧縮を示していると判定された場合、当該シンボルは非伸張部624に入力される。非伸張部624は、先頭のIbitの識別子を削除し、Wbitの伸張データとして出力する。伸張方法判定部621は、処理に用いたシンボル数(=Nシンボル)分だけ、リードポインタ621aを進める。
すなわち、本実施形態の伸張装置6は、フラグ方式での伸張処理と、ランレングス方式での伸張処理とを、別々の伸張器で段階的に行うことにより、圧縮データの先頭のフィールドの解析パターン数を削減することができる。従って、より高い周波数で伸張処理を行うことができる。
次に、本実施形態の伸張装置の動作を説明する。図14は、第2の実施形態に係わる伸張装置の動作を説明するフローチャートである。なお、データ伸張に先立ち、伸張装置には伸張する特定データの値が登録されているものとする。また、リードポインタ611a、621aは、圧縮データ、及び、中間データの、先頭のフィールドを示しているものとする。以下、特定データとして“0”が登録されている場合について、説明する。
まず、リードポインタ611aを参照し、伸張対象となる圧縮データの先頭フィールドを第1伸張器61に読み込み、当該フィールドに付加されている識別子を解析する(S51)。識別子がフラグ方式を示している場合(S52、YES)、フラグ伸張部613において当該フィールドをフラグ伸張し、中間データとして出力する。また、伸張方法判定部611は、フラグ伸張に用いたフィールド数(フラグビットが0の数+1)だけ、リードポインタ611aを進める(S53)。
識別子がフラグ方式の圧縮データを示していないと判定された場合(S52、NO)、非伸張部614を介し、当該フィールドをそのまま中間データとして出力する。伸張方法判定部611は、リードポインタ611aをN進める(S54)。S51からS54までの一連の手順は、第1伸張器61において実行される。
続いて、リードポインタ621aを参照し、中間データのシンボルを第2伸張器62に読み込み、当該シンボルに付加されている識別子を解析する(S55)。識別子がランレングス方式であると判定された場合(S56、YES)、RL伸張部623においてランレングス伸張を行い、伸張データを生成する(S57)。また、伸張方法判定部611は、リードポインタ621aを1進め(S60)、伸張データを出力する(S61)。
識別子がランレングス方式ではないと判定された場合(S56、NO)、非圧縮であると判定する。非伸張部624において、先頭のIbitを当該シンボルから削除し、伸張データを生成する(S58)。また、伸張方法判定部621は、リードポインタ621aをN進め(S59)、伸張データを出力する(S61)。上述のS55からS61までの一連の手順は、第2伸張器62において実行される。
伸張データ生成部622から伸張データが出力されると、S51に戻り、リードポインタ611aが示すフィールドを解析する。このようにして、伸張装置6へのデータの入力が終了するまで、S51からS61の一連の動作を繰り返し、伸張データを生成して出力する。
なお、上述ではハードウェア上で伸張装置を実現する場合について説明しているが、圧縮装置同様に、図14に示す伸張動作を、ソフトウェアを用いて実現してもよい。
このように、本実施形態によれば、ランレングス方式と、フラグ方式とを2段階に分けて圧縮を行っているので、伸張処理においても、フラグ方式と、ランレングス方式とを、別々の伸張器で段階的に行うことができる。これにより、圧縮データのフィールドの解析パターン数を削減することができる。従って、より高い周波数で伸張処理を行うことができる。
なお、圧縮のデータフォーマットは、フィールドが固定長であって、特定の位置を参照することで圧縮方法を識別できるようなものであれば、種々の変更が可能である。例えば、図8に示すように、フラグ圧縮の先頭フィールドについて、(W−N)bitの予備ビット部分に、フラグビットにおける非ゼロの数を格納してもよい。また、図9に示すように、入力データのフォーマットが予め定義されている場合、特定のビットパターンに圧縮方式を割り当て、圧縮方式の識別子を付加せずに圧縮処理を行うようにしてもよい。圧縮データフォーマットの変更に応じて、伸張時における圧縮方法を識別する具体的な方法は、変更される。
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して説明した。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、一例として示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1、5…圧縮装置、2…PC、3…データベース、4、6…伸張装置、11、511、521…データ切り出し部、12、512、522…圧縮方法判定部、13、513、523…圧縮データ生成部、31…入力データ、32…圧縮データ、33…圧縮プログラム、41、611、621…伸張方法判定部、41a、421a、611a、621a…リードポインタ、42、622…伸張データ生成部、51…第1圧縮器、52…第2圧縮器、61…第1伸張器、62…第2伸張器、131、514…RL圧縮部、131a、512a…カウンタ、132、524…フラグ圧縮部、133、515、525…非圧縮部、421、623…RL伸張部、422、613…フラグ伸張部、423、614、624…非伸張部、612…中間データ生成部、

Claims (5)

  1. 連続して入力されるデータを、第1のビット幅を有するデータブロックに分割し、前記データブロックを所定の個数ずつ、1セグメントとして出力する入力データ分割部と、
    前記セグメントの圧縮手段として、一の前記セグメントに含まれる前記データブロックが特定データである割合に応じ、第1の圧縮手段、または第2の圧縮手段、または非圧縮手段のいずれかを選択する、圧縮手段選択部と、
    前記特定データに関し、連続量を圧縮データに格納する前記第1の圧縮手段を前記セグメントに対し実行する第1の圧縮部と、
    前記特定データの位置情報を前記圧縮データに格納する前記第2の圧縮手段を前記セグメントに対し実行する第2の圧縮部と、を有し、
    前記圧縮手段選択部によって選択された手段に従って圧縮された前記圧縮データは、前記圧縮手段を識別可能な識別用ビットを有することを特徴とする、データ圧縮装置。
  2. 前記圧縮手段選択部は、第1の圧縮手段選択部と、第2の圧縮手段選択部とを有しており、前記第1の圧縮手段選択部は、前記第1の圧縮手段または前記非圧縮手段を選択し、前記第2の圧縮手段選択部は、前記第2の圧縮手段または前記非圧縮手段を選択し、
    前記圧縮データは、前記第1の圧縮手段選択部によって選択された前記圧縮手段により前記セグメントを圧縮して中間データを生成し、前記第2の圧縮手段選択部によって選択された前記圧縮手段により前記中間データを圧縮して生成することを特徴とする、請求項1に記載のデータ圧縮装置。
  3. 連続して入力される第2のビット幅を有する複数のフィールドからなる圧縮データを伸張する伸張装置であって、
    前記フィールドに含まれる圧縮手段を識別可能な識別ビットに従って、第1の伸張手段、または第2の伸張手段、または非伸張手段を選択する、伸張手段選択部と、
    前記圧縮データに格納された連続量に基づき、特定データを出力する第1の伸張手段を前記圧縮データに対し実行する第1の伸張部と、
    前記圧縮データに格納された位置情報に基づき、前記特定データまたは非圧縮データを出力する第2の伸張手段を前記圧縮データに対し実行する第2の伸張部と、を有することを特徴とする、データ伸張装置。
  4. 前記伸張手段選択部は、第1の伸張手段選択部と、第2の伸張手段選択部とを有しており、前記第1の伸張手段選択部は、前記第1の伸張手段または前記非伸張手段を選択し、前記第2の伸張手段選択部は、前記第2の伸張手段または前記非伸張手段を選択し、
    前記伸張データは、前記第1の伸張手段選択部によって選択された前記伸張手段により前記フィールドを伸張して中間データを生成し、前記第2の伸張手段選択部によって選択された前記伸張手段により前記中間データを伸張して生成することを特徴とする、請求項3に記載のデータ伸張装置。
  5. 請求項1に記載のデータ圧縮装置と、前記データ圧縮装置で生成された圧縮データを伸張する請求項3に記載のデータ伸張装置とを有する、データ圧縮伸張装置。
JP2016199242A 2016-10-07 2016-10-07 データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置 Active JP6629165B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016199242A JP6629165B2 (ja) 2016-10-07 2016-10-07 データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置
CN201710705689.1A CN107919872A (zh) 2016-10-07 2017-08-17 数据压缩装置、数据解压装置以及数据压缩解压装置
EP17187939.8A EP3306822B1 (en) 2016-10-07 2017-08-25 Data compressing device, data decompressing device, and data compressing/decompressing apparatus
US15/687,780 US10164654B2 (en) 2016-10-07 2017-08-28 Data compressing device, data decompressing device, and data compressing/decompressing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016199242A JP6629165B2 (ja) 2016-10-07 2016-10-07 データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置

Publications (2)

Publication Number Publication Date
JP2018061199A JP2018061199A (ja) 2018-04-12
JP6629165B2 true JP6629165B2 (ja) 2020-01-15

Family

ID=59799212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016199242A Active JP6629165B2 (ja) 2016-10-07 2016-10-07 データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置

Country Status (4)

Country Link
US (1) US10164654B2 (ja)
EP (1) EP3306822B1 (ja)
JP (1) JP6629165B2 (ja)
CN (1) CN107919872A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180131749A1 (en) * 2016-11-10 2018-05-10 Ingram Micro Inc. System and Method for Optimizing Data Transfer using Selective Compression
CN111384961B (zh) * 2018-12-28 2022-07-26 上海寒武纪信息科技有限公司 数据压缩解压装置和数据压缩方法
CN111384965B (zh) * 2018-12-28 2022-06-17 上海寒武纪信息科技有限公司 数据压缩解压装置和数据解压方法
US11075647B2 (en) 2019-02-27 2021-07-27 Movidius Limited Methods and apparatus to compress data
CN111404907B (zh) * 2020-03-10 2022-04-22 桂林电子科技大学 一种基于ieee754格式的数据压缩传输方法
JP2022162930A (ja) * 2021-04-13 2022-10-25 株式会社ソシオネクスト ウェイトデータ圧縮方法、ウェイトデータ伸長方法、ウェイトデータ圧縮装置及びウェイトデータ伸長装置

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2573849B2 (ja) 1987-08-27 1997-01-22 セイコーエプソン株式会社 デ−タ圧縮装置
JP3199292B2 (ja) 1993-06-28 2001-08-13 日本電信電話株式会社 ハフマン符号の符号化でのランレングス抽出方法、ハフマン符号変換方法およびmh符号化処理方法
JP3210996B2 (ja) * 1993-07-30 2001-09-25 三菱電機株式会社 高能率符号化装置及び高能率復号化装置
US5721720A (en) 1994-12-28 1998-02-24 Kabushiki Kaisha Toshiba Optical recording medium recording pixel data as a compressed unit data block
JPH1098721A (ja) 1994-12-28 1998-04-14 Toshiba Corp 画像情報のエンコード/デコードシステム
JP3330013B2 (ja) 1996-03-14 2002-09-30 大日本スクリーン製造株式会社 2値データ圧縮/伸張回路、それらを用いた2値データ転送システム、及び2値データ圧縮/伸張方法
US5872529A (en) 1996-07-18 1999-02-16 Altera Corporation Dynamic datastream compression/decompression
JP3676078B2 (ja) 1998-05-07 2005-07-27 株式会社リコー ランレングス符号化方法及び圧縮装置
US6124811A (en) 1998-07-02 2000-09-26 Intel Corporation Real time algorithms and architectures for coding images compressed by DWT-based techniques
JP2000050271A (ja) 1998-07-29 2000-02-18 Fuji Film Microdevices Co Ltd 画像圧縮装置
JP2005079815A (ja) 2003-08-29 2005-03-24 Toshiba Corp 画像情報のエンコード・デコード方法及びディスク装置
KR101158586B1 (ko) * 2005-09-07 2012-06-22 주식회사 팬택 이동통신 단말기에서 런 렝쓰 코딩을 이용한 애니메이션생성 및 재생 방법
CN100517979C (zh) * 2005-10-10 2009-07-22 中兴通讯股份有限公司 一种数据压缩及解压缩方法
AU2009233627B2 (en) * 2009-10-30 2012-03-29 Canon Kabushiki Kaisha Compression method selection for digital images
TW201143305A (en) * 2009-12-29 2011-12-01 Ibm Data value occurrence information for data compression
CN101841337B (zh) * 2010-05-06 2013-04-24 华为终端有限公司 数据压缩和解压缩处理方法以及移动存储设备

Also Published As

Publication number Publication date
EP3306822B1 (en) 2021-08-11
JP2018061199A (ja) 2018-04-12
US10164654B2 (en) 2018-12-25
EP3306822A1 (en) 2018-04-11
US20180102788A1 (en) 2018-04-12
CN107919872A (zh) 2018-04-17

Similar Documents

Publication Publication Date Title
JP6629165B2 (ja) データ圧縮装置、及び、データ伸張装置、並びに、データ圧縮伸張装置
KR100894002B1 (ko) 선택적 압축과 복원 및 압축 데이터에 대한 데이터 포맷을위한 장치 및 방법
US5467087A (en) High speed lossless data compression system
US5374916A (en) Automatic electronic data type identification process
JP3337633B2 (ja) データ圧縮方法及びデータ復元方法並びにデータ圧縮プログラム又はデータ復元プログラムを記録したコンピュータ読み取り可能な記録媒体
JP3459030B2 (ja) 符号化システム
US9660667B2 (en) Method and apparatus for compressing/decompressing data using floating point
CN107565970B (zh) 一种基于特征识别的混合无损压缩方法及装置
US7548175B2 (en) Encoding apparatus, decoding apparatus, encoding method, computer readable medium storing program thereof, and computer data signal
JP6609404B2 (ja) 圧縮プログラム、圧縮方法および圧縮装置
JP6467937B2 (ja) 文書処理プログラム、情報処理装置および文書処理方法
JP6003059B2 (ja) 画像処理装置および画像処理方法、ならびに、画像形成装置
JP3593884B2 (ja) 符号化装置および復号装置
US9092717B2 (en) Data processing device and data processing method
JP6645013B2 (ja) 符号化プログラム、符号化方法、符号化装置および伸長方法
JP2000201080A (ja) 付加コ―ドを用いたデ―タ圧縮/復元装置および方法
JP4000266B2 (ja) データ符号化装置、データ符号化方法、及びそのプログラム
JP2021145281A (ja) 圧縮装置、伸張装置及び方法
JP6833643B2 (ja) 圧縮処理装置、伸長処理装置、圧縮処理用プログラム、伸長処理用プログラム
JPH08116263A (ja) データ処理装置及びデータ処理方法
JP2009206715A (ja) 画像圧縮装置
CN113796015A (zh) 数据的压缩和解压缩方法、数据压缩装置、以及数据解压缩装置
US20230163782A1 (en) Data compression system using concatenation in streaming
Mahmood et al. An Efficient Text Database Compression Technique using 6 Bit Character Encoding by Table Look Up
JPH06202844A (ja) データ圧縮復元処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170922

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20170925

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181203

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20191007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191018

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: 20191105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191204

R150 Certificate of patent or registration of utility model

Ref document number: 6629165

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150