JP5218015B2 - Data decompressor - Google Patents

Data decompressor Download PDF

Info

Publication number
JP5218015B2
JP5218015B2 JP2008321077A JP2008321077A JP5218015B2 JP 5218015 B2 JP5218015 B2 JP 5218015B2 JP 2008321077 A JP2008321077 A JP 2008321077A JP 2008321077 A JP2008321077 A JP 2008321077A JP 5218015 B2 JP5218015 B2 JP 5218015B2
Authority
JP
Japan
Prior art keywords
data
compressed
compressed data
uncompressed
decompressed
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.)
Expired - Fee Related
Application number
JP2008321077A
Other languages
Japanese (ja)
Other versions
JP2010147671A (en
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2008321077A priority Critical patent/JP5218015B2/en
Publication of JP2010147671A publication Critical patent/JP2010147671A/en
Application granted granted Critical
Publication of JP5218015B2 publication Critical patent/JP5218015B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は画像データを圧縮してメモリに記憶し、該メモリから圧縮データを読み出し、伸長処理を行うデータ伸長装置に関する。   The present invention relates to a data decompression apparatus that compresses image data and stores it in a memory, reads the compressed data from the memory, and performs decompression processing.

例えば、プリンタ装置等の印刷装置において、メモリを有効利用するため、画像データに対して圧縮処理を行い、メモリに圧縮データを記憶した後、メモリからデータを読み出し、伸長処理を行うデータ伸長装置が使用されている。このデータの伸長処理を行う際、どのような圧縮形式であるか、また圧縮データであるか、又は非圧縮データであるかを、データを圧縮した単位、例えば1バイト単位で判断し、メモリから読み出したデータ順序に従って伸長処理を行っている。   For example, in a printing apparatus such as a printer apparatus, a data decompression apparatus that performs compression processing on image data, stores compressed data in the memory, reads data from the memory, and performs decompression processing in order to effectively use the memory. It is used. When performing this data decompression processing, it is determined in what unit the data is compressed, for example, in units of 1 byte, from the memory, to determine what compression format, compressed data, or non-compressed data. Decompression processing is performed according to the read data order.

尚、圧縮データを復元する方法として、特許文献1も提案されている。
特開2006−268251号公報
Patent Document 1 has also been proposed as a method for restoring compressed data.
JP 2006-268251 A

しかしながら、従来のデータ伸長処理(復元処理)において、処理速度を向上させるためには、伸長回路の構成を変更する必要がある。例えば、配線の引き回しを考慮し、また制御回路を搭載したASICのプロセスを変更する等の高速化対応が必要となる。さらに、伸長回路の変更を行った場合、消費電力が増加する。   However, in the conventional data decompression process (restoration process), it is necessary to change the configuration of the decompression circuit in order to improve the processing speed. For example, it is necessary to take measures to increase the speed by taking into account the wiring and changing the process of the ASIC equipped with the control circuit. Furthermore, when the expansion circuit is changed, the power consumption increases.

そこで、本発明はメモリに記憶された圧縮データに関する圧縮情報を参照し、圧縮データを効率よく復元することによって、消費電力を増加させることなく、圧縮データの伸長処理を高速で行うデータ伸長装置を提供するものである。   Accordingly, the present invention provides a data decompression device that performs decompression processing of compressed data at high speed without increasing power consumption by referring to compression information relating to compressed data stored in a memory and efficiently restoring the compressed data. It is to provide.

上記課題は第1の発明によれば、非圧縮データと、圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を記憶する第1の記憶手段と、前記圧縮データを伸長データに伸長する伸長手段と、前記圧縮情報に基づいて前記非圧縮データの連続を検出する検出手段と、前記検出手段によ検出された連続する前記非圧縮データをまとめて復元する復元手段と、前記伸長手段により伸長された伸長データ及び前記復元された前記非圧縮データを記憶する第2の記憶手段と、前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する出力手段とを有するデータ伸長装置を提供することによって達成できる。 The above object is achieved, according to the first invention, the non-compressed data, the compressed data, a first storage means for storing said compressed information of uncompressed data and the compressed data, decompresses the compressed data to the decompression data and expansion means for a detection means for detecting a sequence of the non-compressed data based on the compression information, and restoring means for restoring together the non-compressed data consecutive Ri detected by said detecting means, said extension second storage means for storing the non-compressed data decompressed data and is the recovered, which is extended by the means, the second storage means stored said extension data and the restored the output uncompressed data This can be achieved by providing a data decompression device having an output means.

また、上記課題は第2の発明によれば、非圧縮データと、直前に位置するデータの繰り返しを指定する圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を記憶する第1の記憶手段と、前記圧縮データを伸長データに伸長する伸長手段と、前記圧縮情報に基づいて前記圧縮データが前記非圧縮データの後に並んで記憶されている状態を検出する検出手段と、前記検出手段によ検出され前記繰り返しを指定する圧縮データが指定する繰り返し回数に1を加えた回数前記非圧縮データを復元する復元手段と、前記伸長データ及び前記復元された前記非圧縮データ記憶する第2の記憶手段と、前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する出力手段とを有するデータ伸長装置を提供することによって達成できる。 Further, the problem according to the second invention, the non-compressed data, the compressed data that specifies the repetition of data located immediately before the first for storing said compressed information of uncompressed data and the compressed data storage means, and expanding means for expanding the compressed data into decompressed data, and detection means for the compressed data based on the compression information to detect the state stored alongside after the non-compressed data, said detecting means storing a restoring means for compressing data to be designated to restore the number of times the uncompressed data obtained by adding 1 to the number of iterations to specify, the decompressed data and the restored the uncompressed data in the detected the repeated Ri by the second storage means, the data decompression device and an output means for outputting the second said extension data and the restored the uncompressed data is stored in the storage means It can be achieved by providing.

また、上記課題は第3の発明によれば、前記圧縮データの圧縮情報は、フラグデータとして前記第1の記憶手段に記憶されるデータ伸長装置を提供することによって達成できる。   According to a third aspect of the present invention, the above object can be achieved by providing a data decompression device in which the compression information of the compressed data is stored as flag data in the first storage means.

また、上記課題は第4の発明によれば、前記圧縮データは、前記圧縮情報に連続して前記第1の記憶手段に記憶されるデータ伸長装置を提供することによって達成できる。   According to a fourth aspect of the present invention, the object can be achieved by providing a data decompression device in which the compressed data is stored in the first storage means in succession to the compression information.

また、上記課題は第5の発明によれば、非圧縮データと、圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を第1の記憶手段に記憶させる処理と、前記圧縮データを伸長データに伸長する処理と、前記圧縮情報に基づいて前記非圧縮データの連続を検出する処理と、前記検出手段によ検出された連続する前記非圧縮データをまとめて復元する処理と、前記伸長データ及び前記復元された前記非圧縮データを第2の記憶手段に記憶する処理と、前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する処理とをコンピュータに実行させるプログラムを提供することによって達成できる。 Further, according to the above-mentioned problems is the fifth invention, and uncompressed data, and compressed data, wherein the processing the compressed information of the non-compressed data and the compressed data is stored in the first memory means, said compressed data a process of extending the extension data, and processing for detecting a sequence of the non-compressed data based on the compression information, a process of restoring together the non-compressed data consecutive Ri detected by said detecting means, said a process of storing the decompressed data and the restored the uncompressed data in the second storage means, and outputting the expanded data and the restored the uncompressed data is stored in said second storage means This can be achieved by providing a program for causing a computer to execute.

さらに、上記課題は第6の発明によれば、非圧縮データと、直前に位置するデータの繰り返しを指定する圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を第1の記憶手段に記憶する処理と、前記圧縮データを伸長データに伸長する処理と、前記圧縮情報に基づいて前記圧縮データが前記非圧縮データの後に並んで記憶されている状態を検出する処理と、前記検出処理によ検出され前記繰り返しを指定する圧縮データが指定する繰り返し回数に1を加えた回数前記非圧縮データを復元する処理と、前記伸長処理により伸長されたデータ及び前記復元処理された前記非圧縮データ第2の記憶手段に記憶する処理と、前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する処理とをコンピュータに実行させるプログラムを提供することによって達成できる。 Furthermore, according to the above-mentioned problems is the sixth invention, the non-compressed data, the compressed data that specifies the repetition of data located immediately before the non-compressed data and the first storage means and the compression information of the compressed data a process of storing in a process of extending the compressed data into decompressed data, and processing the compressed data based on the compression information to detect the state stored alongside after the non-compressed data, the detection processing specifying a said detected repeatedly Ri by the number compressed data obtained by adding 1 to the repeat count to specify the processing for restoring the uncompressed data, the decompression processing by extension data and the restored processed the non a process of storing the compressed data in the second storage means, and outputting the expanded data and the restored the uncompressed data is stored in said second storage means It can be achieved by providing a program for causing a computer to execute.

本発明によれば、連続する非圧縮データをまとめて復元することができ、また直前の非圧縮データと同じデータの連続という並びを検出した際、この非圧縮データを含めて連続データとして、まとめて伸長することができ、データの復元速度を高速化することができる。   According to the present invention, continuous uncompressed data can be restored together, and when the sequence of the same data as the previous uncompressed data is detected, the uncompressed data is included as continuous data. Data can be decompressed and the data restoration speed can be increased.

以下、本発明の実施の形態を図面に基づいて説明する。
図1は、本実施形態のデータ伸長回路のブロック図である。尚、本例のデータ伸長回路は、PCIバスを介してCPU2に接続され、更にCPU2はメモリ3に接続されている。メモリ3には、例えば圧縮された画像データが記憶されており、CPU2はメモリコントローラとして機能し、メモリ3から画像データを読み出し、データ伸長回路に送信する。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a block diagram of the data decompression circuit of this embodiment. Note that the data decompression circuit of this example is connected to the CPU 2 via the PCI bus, and the CPU 2 is further connected to the memory 3. The memory 3 stores, for example, compressed image data, and the CPU 2 functions as a memory controller, reads the image data from the memory 3, and transmits it to the data decompression circuit.

データ伸長回路1は大きく4つの回路ブロックに分かれており、前段FIFO(First-In First-Out)4とデータセレクタ5、参照テーブル6が接続された伸長回路7、データ生成バッファ8、及び後段FIFO9で構成されている。
前段FIFO4は、CPU2の制御によってメモリ3から読み出された画像データを一時的に保持するバッファであり、メモリ3から読み出された伸長すべき圧縮データが格納される。
The data decompression circuit 1 is roughly divided into four circuit blocks. The decompression circuit 7 is connected to a first-in first-out (FIFO) 4, a data selector 5 and a reference table 6, a data generation buffer 8, and a subsequent FIFO 9. It consists of
The pre-stage FIFO 4 is a buffer that temporarily holds image data read from the memory 3 under the control of the CPU 2, and stores compressed data to be decompressed read from the memory 3.

図2は、上記前段FIFO4とデータセレクタ5の回路構成を示す図である。前段FIFO4は伸長入力FIFOコントローラ13の制御に従ってデータを取り込む。尚、前段FIFO4の入力ビット幅と出力ビット幅は同じである必要はなく、本例の場合前段FIFO4の入力は、前段FIFO4が接続されたバス幅、即ち32bit幅のPCIバスに対応し、32bit幅のデータを取得する。一方、前段FIFO4の出力は伸長回路7が要求するデータ幅、例えば8バイト幅とするのが一般的である。しかし、本例では出力幅は8バイトではなく、9バイト分即ち72bit幅であり、以後この9バイトで説明する。尚、この理由は、フラグ部分の1バイトと符号化されたデータ部分8バイトに対応させる構成である。すなわち、フラグ部と符号化されたデータ部を合わせたデータを一度に読み出し可能なデータ幅としている。   FIG. 2 is a diagram showing a circuit configuration of the preceding FIFO 4 and the data selector 5. The pre-stage FIFO 4 captures data according to the control of the decompression input FIFO controller 13. Note that the input bit width and the output bit width of the first-stage FIFO 4 do not need to be the same. In this example, the input of the first-stage FIFO 4 corresponds to the bus width to which the first-stage FIFO 4 is connected, that is, the 32-bit width PCI bus. Get the width data. On the other hand, the output of the first-stage FIFO 4 generally has a data width required by the decompression circuit 7, for example, an 8-byte width. However, in this example, the output width is not 8 bytes but 9 bytes, that is, 72 bits wide, and will be described with these 9 bytes. The reason is that the flag part corresponds to 1 byte and the encoded data part 8 bytes. That is, the data width including the flag portion and the encoded data portion is set to a data width that can be read at a time.

また、前段FIFO4に入力するデータは8bit単位で並んでおり、フラグ1バイトとそれに続く符号化されたデータ8バイトを図3に示すように順次選択して、72bit幅のデータに変換する。   The data input to the first-stage FIFO 4 is arranged in units of 8 bits, and a flag 1 byte and subsequent 8 bytes of encoded data are sequentially selected as shown in FIG. 3 and converted into 72-bit width data.

図4は伸長回路7の回路構成であり、伸長回路7はデータセレクタ5から供給される符号化されたデータ(圧縮データ)を伸長(復元)する回路である。伸長回路7には、参照テーブル6に接続され、データセレクタ5から8bit構成のフラブデータ、及び圧縮データ「1」〜「8」が入力する。尚、圧縮データ「1」〜「8」の圧縮形式は、非圧縮タイプ、直前データの連続を示すリピートタイプ、及び数バイト前と同一データの並びを示すポインタタイプの3種類である。   FIG. 4 shows a circuit configuration of the decompression circuit 7. The decompression circuit 7 is a circuit for decompressing (restoring) the encoded data (compressed data) supplied from the data selector 5. The decompression circuit 7 is connected to the reference table 6 and receives 8-bit flag data and compressed data “1” to “8” from the data selector 5. The compression formats of the compressed data “1” to “8” are three types: an uncompressed type, a repeat type indicating the continuation of the immediately preceding data, and a pointer type indicating the same data sequence as several bytes before.

非圧縮タイプとは上記参照テーブル6に参照すべきデータが存在しないデータであり、符号化される前と同じデータである。また、リピートタイプとは最後にテーブルに保管されたデータを連続して参照するデータであり、同じデータが何回くり返されているかの情報を符号化したデータである。さらに、ポインタタイプとはテーブルの特定箇所から数バイト分の同一データが存在するものであり、上記特定箇所と同一データ数を示す情報を符号化したデータである。   The uncompressed type is data for which there is no data to be referred to in the reference table 6, and is the same data as before being encoded. The repeat type is data that continuously refers to the data stored last in the table, and is data that encodes information indicating how many times the same data is repeated. Furthermore, the pointer type is data in which several bytes of the same data exist from a specific part of the table, and is data obtained by encoding information indicating the same number of data as the specific part.

図5は伸長回路7に入力する圧縮データのデータ構成を示す図である。同図(a)は、圧縮データの具体的な構成を示す図である。最初の1バイトはフラグデータであり、フラグデータの後に8個の圧縮データ(及び非圧縮データ)が記録されている。フラグデータは同図(b)に示すように、1バイト8ビットのデータであり、データ“0”が非圧縮データを示し、データ“1”が圧縮データを示す。   FIG. 5 is a diagram showing the data structure of the compressed data input to the decompression circuit 7. FIG. 4A is a diagram showing a specific configuration of compressed data. The first byte is flag data, and eight compressed data (and uncompressed data) are recorded after the flag data. As shown in FIG. 4B, the flag data is 1-byte 8-bit data, where data “0” indicates uncompressed data and data “1” indicates compressed data.

例えば、最初のフラグデータ(#1)がフラグ“0”である場合、8個の圧縮データ(及び非圧縮データ)の最初の(#1)のデータは、1バイト(8ビット)の非圧縮データである。同図(c)に示すデータ構成は、この非圧縮データの例を示し、原データのまま記述される。   For example, when the first flag data (# 1) is the flag “0”, the first (# 1) data of 8 compressed data (and uncompressed data) is 1 byte (8 bits) uncompressed. It is data. The data structure shown in FIG. 5C shows an example of the uncompressed data, and is described as the original data.

一方、最初のフラグデータ(#1)がフラグ“1”である場合、8個の圧縮データ及び非圧縮データの最初の(#1)のデータは、1バイト(8ビット)の圧縮データである。この場合、2種類のタイプがあり、圧縮データの上位2ビットが“11”の場合前述のリピートタイプであり、上位2ビットが“11”ではない場合ポインタタイプである。   On the other hand, when the first flag data (# 1) is the flag “1”, the first (# 1) data of the 8 compressed data and the non-compressed data is 1-byte (8-bit) compressed data. . In this case, there are two types, the above-described repeat type when the upper 2 bits of the compressed data are “11”, and the pointer type when the upper 2 bits are not “11”.

ポインタタイプは、同図(d)に示すように、上位5ビットが一致開始位置のデータを記録し、下位3ビットが一致文字列の長さデータを記録する。一方、リピートタイプの場合、同図(e)に示すように、上位2ビットが“11”であり、下位6ビットは同一データが連続する長さ情報である。   In the pointer type, as shown in FIG. 4D, the upper 5 bits record data at the matching start position, and the lower 3 bits record the length data of the matching character string. On the other hand, in the case of the repeat type, as shown in FIG. 5E, the upper 2 bits are “11” and the lower 6 bits are length information in which the same data continues.

図6は、データ生成バッファ8の回路構成を示す図である。データ生成バッファ8は、F/F8a−1〜8a−8、4つのセレクタ10a〜10d、データ生成バッファコントローラ11、及びカウンタ12で構成され、伸長回路7によって伸長されたデータをF/F8a−1〜8a−8に格納すると共に、データ生成バッファコントローラ11の制御によって伸長されたデータを後段FIFO9に転送する。   FIG. 6 is a diagram showing a circuit configuration of the data generation buffer 8. The data generation buffer 8 includes F / Fs 8a-1 to 8a-8, four selectors 10a to 10d, a data generation buffer controller 11, and a counter 12. The data generated by the expansion circuit 7 is converted into F / F 8a-1. The data stored in .about.8a-8 and the data expanded by the control of the data generation buffer controller 11 are transferred to the subsequent FIFO 9.

図7は後段FIFO9の構成を示す図であり、バイト単位で書き込んだデータを、ワード単位で読み出す構成であり、デュアルポートメモリ14a〜14d、ライトアドレスカウンタ15a〜15d、リードアドレスカウンタ16、及び比較器17で構成されている。尚、上記それぞれの回路の処理動作については後述する。   FIG. 7 is a diagram showing the configuration of the post-stage FIFO 9, in which data written in byte units is read in word units, dual port memories 14a-14d, write address counters 15a-15d, read address counter 16, and comparison The device 17 is configured. The processing operation of each circuit will be described later.

以上の構成において、以下に本例の処理動作を説明する。
先ず、メモリ3から読み出した圧縮データを前段FIFO4に入力する。伸長入力FIFOコントローラ13は、32bit単位で入力する圧縮データの入力制御を行い、伸長入力FIFOコントローラ13からのライト信号(WR)の入力に従って32bitの圧縮データを前段FIFO4に入力し、リード信号(RD)の入力に従って8bit×4(4バイト)のデータをデータセレクタ5を構成するセレクタ5−0〜5−8に出力する。
尚、上記圧縮データの入力処理は、後述するEmpty(エンプティ)の信号の入力に基づいて行われる。
In the above configuration, the processing operation of this example will be described below.
First, the compressed data read from the memory 3 is input to the preceding FIFO 4. The decompression input FIFO controller 13 performs input control of compressed data input in units of 32 bits, inputs 32-bit compressed data to the preceding FIFO 4 according to the input of the write signal (WR) from the decompression input FIFO controller 13, and reads the read signal (RD). ), 8 bits × 4 (4 bytes) data is output to the selectors 5-0 to 5-8 constituting the data selector 5.
The compressed data input process is performed based on an input of an Empty signal described later.

図4は伸長入力FIFOコントローラ13から出力されるセレクト信号に従って各セレクタ5−0〜5−8に圧縮データが入力する際の入力論理を示す。伸長入力FIFOコントローラ13は32bitの圧縮データを入力する毎にカウントアップする不図示のカウンタを有し、同図に示す0〜8のリングカウントを行う。伸長入力FIFOコントローラ13は、上記カウント値に対応してセレクタ5a−0〜5a−8に順次セレクト信号を出力し、8bit(1バイト)のデータを対応するF/F(フリップフロップ)5b−0〜5b−8に転送する。   FIG. 4 shows the input logic when compressed data is input to each of the selectors 5-0 to 5-8 in accordance with a select signal output from the decompression input FIFO controller 13. The decompression input FIFO controller 13 has a counter (not shown) that counts up every time 32-bit compressed data is input, and performs ring counting of 0 to 8 shown in FIG. The decompression input FIFO controller 13 sequentially outputs a select signal to the selectors 5a-0 to 5a-8 corresponding to the count value, and the corresponding F / F (flip-flop) 5b-0 corresponding to 8-bit (1 byte) data. Transfer to ~ 5b-8.

例えば、同図に示す0〜7bit(32bitの中の最初の8bit)のデータは、セレクタ5a−0を介してF/F5b−0に入力し、8〜15bit(32bitの中の次の8bit)のデータは、セレクタ5a−1を介してF/F5b−1に入力し、以下16〜23bit(32bitの中の次の8bit)、及び24〜31bit(32bitの中の最後の8bit)のデータは、セレクタ5a−2、及び5a−3を介してF/F5b−2、及び5b−3に入力する(図3に示すa)。   For example, data of 0 to 7 bits (first 8 bits in 32 bits) shown in the figure is input to the F / F 5b-0 via the selector 5a-0, and 8 to 15 bits (next 8 bits in 32 bits). Is input to the F / F 5b-1 via the selector 5a-1, and the following 16 to 23 bits (the next 8 bits in 32 bits) and 24 to 31 bits (the last 8 bits in 32 bits) are Then, the signals are input to the F / Fs 5b-2 and 5b-3 via the selectors 5a-2 and 5a-3 (a shown in FIG. 3).

次に、メモリ3から供給された次の32bitのデータは、0〜7bit(32bitの中の最初の8bit)のデータが、セレクタ5a−4を介してF/F5b−4に入力し、8〜15bit(32bitの中の次の8bit)のデータが、セレクタ5a−5を介してF/F5b−5に入力し、以下16〜23bit(32bitの中の次の8bit)、及び24〜31bit(32bitの中の最後の8bit)のデータが、セレクタ5a−6、及び5a−7を介してF/F5b−6、及び5b−7に入力する(図3に示すb)。   Next, the next 32-bit data supplied from the memory 3 is 0 to 7 bits (first 8 bits of the 32 bits) input to the F / F 5b-4 via the selector 5a-4, and 8 to 8 bits. Data of 15 bits (the next 8 bits in 32 bits) is input to the F / F 5b-5 via the selector 5a-5, and the following 16 to 23 bits (the next 8 bits in 32 bits) and 24 to 31 bits (32 bits) The last 8 bits of the data are input to the F / Fs 5b-6 and 5b-7 via the selectors 5a-6 and 5a-7 (b shown in FIG. 3).

さらに、メモリ3から供給された次の32bitのデータは、0〜7bit(32bitの中の最初の8bit)のデータが、セレクタ5a−8を介してF/F5b−8に入力し(図3に示すc)、72bit(9バイト)のデータがF/F5b−0〜F/F5b−8に揃う。尚、図3に示すF/F5b−0〜5b−8内の「フラグ」、圧縮データ「1」〜「8」の意味は、最初の上記処理によってF/F5b−0〜5b−8に保持されるデータを示す。尚、以後F/F5b−0〜5b−8には、図3に示す論理に従ったデータが入力する。   Further, the next 32-bit data supplied from the memory 3 is 0 to 7 bits (first 8 bits of the 32 bits) input to the F / F 5b-8 via the selector 5a-8 (see FIG. 3). C) and 72-bit (9 bytes) data are arranged in F / F5b-0 to F / F5b-8. The meanings of “flag” and compressed data “1” to “8” in F / F 5b-0 to 5b-8 shown in FIG. 3 are held in F / F 5b-0 to 5b-8 by the first processing described above. Data to be displayed. Note that data according to the logic shown in FIG. 3 is input to the F / Fs 5b-0 to 5b-8.

次に、伸長回路7は上記F/F5b−0〜5b−8に入力したデータの伸長処理を行う。図8〜図10は、伸長回路7の処理を説明するフローチャートである。先ず、図8に示すフローチャートに従って、F/F5b−0〜5b−8に9バイトのデータが保持されたか判断する(ステップ(以下、Sで示す)1)。ここで、F/F5b−0〜5b−8に9バイトのデータが保持されると(S1がYES)、初期値(n=1)の設定を行う(S2、State01)。   Next, the decompression circuit 7 performs decompression processing on the data input to the F / Fs 5b-0 to 5b-8. 8 to 10 are flowcharts for explaining processing of the decompression circuit 7. First, according to the flowchart shown in FIG. 8, it is determined whether 9 bytes of data are held in the F / Fs 5b-0 to 5b-8 (step (hereinafter referred to as S) 1). Here, when 9 bytes of data are held in the F / Fs 5b-0 to 5b-8 (S1 is YES), an initial value (n = 1) is set (S2, State01).

次に、n、n+1番目が非圧縮+リピートタイプであるか判断する(S3)。すなわち、F/F5b−0に保持された最初の1バイト(8bit)のデータであるフラグ情報を参照し、nとn+1ビット目のデータを解析し、非圧縮+リピートタイプのデータであるか判断する。最初の処理では、8bitの中の1ビット目と2ビット目のデータが参照され、非圧縮+リピートタイプのデータであるか判断する。   Next, it is determined whether the n, n + 1th is the non-compressed + repeat type (S3). That is, the flag information that is the first 1-byte (8-bit) data held in the F / F 5b-0 is referred to, and the n and n + 1 bit data are analyzed to determine whether the data is uncompressed + repeat type data. To do. In the first process, the data of the first bit and the second bit in 8 bits are referred to and it is determined whether the data is non-compressed + repeat type data.

ここで、1ビット目と2ビット目のデータが非圧縮+リピートタイプのデータであれば(S3がYES)、後述する図9に示す処理に移行する。一方、1ビット目と2ビット目のデータが非圧縮+リピートタイプのデータでなければ(S3がNO)、nビット目(1ビット目)のデータ(フラグ)が圧縮を示しているか判断する(S4)。   Here, if the data of the first bit and the second bit is non-compressed + repeat type data (S3 is YES), the process proceeds to the process shown in FIG. On the other hand, if the data of the first bit and the second bit is not uncompressed + repeat type data (S3 is NO), it is determined whether the data (flag) of the nth bit (first bit) indicates compression ( S4).

ここで、1ビット目のデータ(フラグ)が圧縮を示していれば(S4がYES)、後述する図10に示す処理に移行する。一方、1ビット目のデータが圧縮を示していなければ(S4がNO)、判断(S5)に移行する。すなわち、nビット目(1ビット目)が非圧縮データであることを示す場合、判断(S5)以降の処理を実行し、連続する非圧縮データを伸長回路7に読み出し、伸長処理を行う。   If the data (flag) of the first bit indicates compression (S4 is YES), the process proceeds to the process shown in FIG. On the other hand, if the first bit data does not indicate compression (S4 is NO), the process proceeds to judgment (S5). That is, when the n-th bit (first bit) indicates non-compressed data, the processing after judgment (S5) is executed, the continuous non-compressed data is read to the decompression circuit 7, and decompression processing is performed.

例えば、判断(S5)において、n+1ビット目(2ビット目)が圧縮データであることを示している場合(S5がYES)、nバイト目(1バイト目)のデータをデータ生成バッファ8に書き込み、nをn+1とする(S6、State02)。   For example, in the determination (S5), when the n + 1th bit (second bit) indicates compressed data (S5 is YES), the nth byte (first byte) data is written to the data generation buffer 8 , N is set to n + 1 (S6, State02).

すなわち、伸長回路7はF/F5b−1から圧縮データ「1」を読み出し、データ生成バッファ8に圧縮データ「1」(但し、このデータは非圧縮データである)を書き込む。   That is, the decompression circuit 7 reads the compressed data “1” from the F / F 5b-1, and writes the compressed data “1” (however, this data is uncompressed data) to the data generation buffer 8.

一方、判断(S5)において、n+1ビット目(2ビット目)も非圧縮データであることを示している場合(S5がNO)、更にn+2ビット目(3ビット目)のデータが圧縮データであるか判断し(S7)、n+2ビット目(3ビット目)も圧縮データである場合(S7がYES)、n〜n+1バイト目(1、2バイト目)のデータをデータ生成バッファ8に書き込み、nをn+2とする(S8、State03)。すなわち、伸長回路7はF/F5b−1及び5b−2から圧縮データ「1」、「2」を読み出し、データ生成バッファ8に圧縮データ「1」、「2」(但し、このデータも非圧縮データである)を書き込む。   On the other hand, when the determination (S5) indicates that the n + 1 bit (second bit) is also uncompressed data (S5 is NO), the data of the n + 2 bit (third bit) is the compressed data. If the n + 2 bit (3rd bit) is also compressed data (YES in S7), the data of n to n + 1 bytes (1st and 2nd bytes) is written to the data generation buffer 8 and n Is set to n + 2 (S8, State03). That is, the decompression circuit 7 reads the compressed data “1” and “2” from the F / Fs 5b-1 and 5b-2, and the compressed data “1” and “2” (but this data is also uncompressed) to the data generation buffer 8. Data).

さらに、判断(S7)において、n+2ビット目(3ビット目)も非圧縮データである場合(S7がNO)、更にn+3ビット目(4ビット目)のデータが圧縮データであるか判断し(S9)、n+3ビット目(4ビット目)も圧縮データである場合(S9がYES)、n〜n+2バイト目(1〜3バイト目)のデータをデータ生成バッファ8に書き込み、nをn+4とする(S10、State04)。すなわち、伸長回路7はF/F5b−1乃至5b−3から圧縮データ「1」〜「3」を読み出し、データ生成バッファ8に圧縮データ「1」〜「3」(但し、このデータも非圧縮データである)を書き込む。   Further, in the determination (S7), when the n + 2 bit (3rd bit) is also uncompressed data (S7 is NO), it is further determined whether the n + 3 bit (4th bit) data is compressed data (S9). ), If the n + 3th bit (the 4th bit) is also compressed data (YES in S9), the nth to n + 2nd byte (1st to 3rd byte) data is written to the data generation buffer 8, and n is set to n + 4 ( S10, State04). That is, the decompression circuit 7 reads the compressed data “1” to “3” from the F / Fs 5b-1 to 5b-3, and the compressed data “1” to “3” (however, this data is also uncompressed). Data).

以後同様の処理を行い、連続する非圧縮データをデータ生成バッファ8に書き込む(S11〜S18、State05〜08)。また、圧縮データ「1」〜「8」全てが非圧縮データである場合(S17がNO)、F/F5b−1乃至5b−8から圧縮データ「1」〜「8」を読み出し、データ生成バッファ8に圧縮データ「1」〜「8」を書き込む(S19、State09)。尚、データ生成バッファ8に書き込まれる上記非圧縮データは、具体的には図6に示すF/F8a−1〜8a−8に書き込まれる。
このように処理することにより、連続する非圧縮データの伸長処理を迅速に行うことができる。
Thereafter, similar processing is performed, and continuous uncompressed data is written to the data generation buffer 8 (S11 to S18, State05 to 08). When all the compressed data “1” to “8” are non-compressed data (NO in S17), the compressed data “1” to “8” are read from the F / Fs 5b-1 to 5b-8, and the data generation buffer The compressed data “1” to “8” are written to 8 (S19, State09). The uncompressed data written to the data generation buffer 8 is specifically written to the F / Fs 8a-1 to 8a-8 shown in FIG.
By processing in this way, continuous decompression processing of uncompressed data can be performed quickly.

また、上記判断(S5、S7、・・S17)において、各判断時点のn値が8、7、・・・2であるか判断し、一致する数値である場合、対応する処理(S6、S8、・・S18)を実行する。この場合、一致する数値を越えて参照すべきデータ(フラグ)が存在しないためである。したがって、例えば判断(S5)において、n=8の場合、8バイト目の非圧縮データをデータ生成バッファ8(F/F8a−8)に書き込み、処理(S6)によってn+1の処理が行われた後のn=9を判断し(S20)、処理(S3)に戻る。また、例えば判断(S7)において、n=7の場合7、8バイト目の非圧縮データをデータ生成バッファ8(F/F8a−7、8a−8)に書き込み、処理(S8)によってn+2の処理が行われた後のn=9を判断し(S20)、処理(S3)に戻る。以下、同様に処理を行う。   Further, in the above determination (S5, S7,... S17), it is determined whether the n value at each determination point is 8, 7,... 2, and if it is a matching numerical value, the corresponding processing (S6, S8) ,... S18) is executed. This is because there is no data (flag) to be referenced beyond the matching numerical value. Therefore, for example, in the determination (S5), when n = 8, the uncompressed data of the 8th byte is written to the data generation buffer 8 (F / F8a-8), and after the processing of (n + 1) is performed by the processing (S6) N = 9 is determined (S20), and the process returns to the process (S3). For example, in the determination (S7), when n = 7, the 7th and 8th bytes of uncompressed data are written to the data generation buffer 8 (F / F 8a-7, 8a-8), and the process of (S8) is performed as n + 2. N = 9 is determined after the operation is performed (S20), and the process returns to the process (S3). Thereafter, the same processing is performed.

一方、前述の判断(S4)において、nビット目(1ビット目)が圧縮を示していれば(S4がYES)、図10に示す処理に移行する。尚、図10に示すフローチャートにおいて、S1〜S4の処理は前述の図8に示すフローチャートと同様の処理である。したがって、判断(S4)以降の処理について説明する。すなわち、判断(S4)において、nビット目(1ビット目)が圧縮を示していれば(S4がYES)、n番目の圧縮データの上位2bitが“11”であるか判断する(S21)。ここで、上位2bitが“11”であれば(S21がYES)、リピートタイプの伸長処理を行う(S22、State11)。   On the other hand, in the above-described determination (S4), if the nth bit (first bit) indicates compression (S4 is YES), the process proceeds to the process shown in FIG. In the flowchart shown in FIG. 10, the processing of S1 to S4 is the same processing as the flowchart shown in FIG. Therefore, the process after judgment (S4) is demonstrated. That is, in the determination (S4), if the n-th bit (first bit) indicates compression (S4 is YES), it is determined whether the upper 2 bits of the n-th compressed data is “11” (S21). If the upper 2 bits are “11” (S21 is YES), repeat type expansion processing is performed (S22, State11).

例えば、2番目の圧縮データの上位2bitが“11”であれば、直前の圧縮データ「1」を使用して伸長処理を行う。この場合、F/F5b−1から圧縮データ「1」を読み出し、データ生成バッファ8(F/F8a−2)に圧縮データ「1」を書き込む。また、3番目の圧縮データの上位2bitが“11”であれば、直前の圧縮データ「2」のデータの伸長処理を繰り返し、F/F5b−2から圧縮データ「2」を読み出し、データ生成バッファ8(F/F8a−3)に圧縮データ「2」を書き込む。以下、nの値に対応して、直前の圧縮データを繰り返しデータ生成バッファ8に書き込み、伸長データの作成処理を行う。   For example, if the upper 2 bits of the second compressed data is “11”, the decompression process is performed using the immediately preceding compressed data “1”. In this case, the compressed data “1” is read from the F / F 5b-1, and the compressed data “1” is written to the data generation buffer 8 (F / F 8a-2). If the upper 2 bits of the third compressed data is “11”, the data decompression process of the previous compressed data “2” is repeated, the compressed data “2” is read from the F / F 5b-2, and the data generation buffer The compressed data “2” is written into 8 (F / F8a-3). Thereafter, corresponding to the value of n, the immediately preceding compressed data is repeatedly written in the data generation buffer 8 to perform decompression data creation processing.

このように処理することによって、直前のデータと同じデータが繰り返す場合、効率よくデータの伸長処理を行うことができる。尚、上記リピートタイプの伸長処理を実行する毎にnをn+1し(S24)、n=9の判断を行い(S25)、n=9になるまで処理を繰り返す。   By processing in this way, when the same data as the previous data is repeated, the data expansion process can be performed efficiently. Each time the repeat type expansion process is executed, n is incremented by 1 (S24), n = 9 is determined (S25), and the process is repeated until n = 9.

次に、フラグデータのnビット目が圧縮を指示している場合でも(S4がYES)、n番目の圧縮データの上位2bitが“11”ではない場合(S21がNO)、ポインタタイプの伸長処理を行う(S23、State12)。   Next, even when the nth bit of the flag data indicates compression (S4 is YES), if the upper 2 bits of the nth compressed data is not “11” (S21 is NO), the pointer type decompression processing (S23, State12).

例えば、n番目の圧縮データの上位2bitが“10”である場合、該n番目の下位5ビットのデータを参照し、上位5ビットのデータが指示する一致開始位置のデータを参照し、対応する一致開始位置から下位3ビットのデータが指示するバイト分のデータを伸長回路7に読み出し、データ生成バッファ8に書き込む。例えば、下位3ビットのデータが“000”である場合、一致開始位置から2バイト分のデータをデータ生成バッファ8に書き込む。また、下位3ビットのデータが“111”である場合、一致開始位置から9バイト分のデータをデータ生成バッファ8に書き込む。   For example, when the upper 2 bits of the nth compressed data is “10”, the nth lower 5 bits of data are referred to, the data of the match start position indicated by the upper 5 bits of data is referred to, and the corresponding Data corresponding to the byte indicated by the lower 3 bits of data from the match start position is read to the decompression circuit 7 and written to the data generation buffer 8. For example, when the lower 3 bits of data are “000”, 2 bytes of data from the match start position are written into the data generation buffer 8. If the lower 3 bits of data are “111”, 9 bytes of data from the match start position are written into the data generation buffer 8.

このように処理することによって、前の連続するデータと同じ連続するデータが繰り返す場合、効率よくデータの伸長処理を行うことができる。   By processing in this way, when the same continuous data as the previous continuous data is repeated, the data expansion process can be performed efficiently.

次に、前述の判断(S3)において、nビット目とn+1ビット目のデータが非圧縮+リピートタイプのデータである場合(S3がYES)について説明する。この場合、図9に示す処理に移行する。尚、図9に示すフローチャートにおいて、S1〜S3の処理は前述の図8に示すフローチャートと同様の処理である。したがって、判断(S3)以降の処理について説明する。すなわち、判断(S3)において、n、n+1ビット目(例えば、1、2ビット目)が非圧縮+リピートタイプのデータである場合、n番目のデータを圧縮されたデータで示される連続回数+1だけのバイト数をデータ生成バッファ8に書き込む(S26)。   Next, a description will be given of the case where the nth bit and the (n + 1) th bit data are uncompressed + repeat type data (S3 is YES) in the above-described determination (S3). In this case, the process proceeds to the process shown in FIG. In the flowchart shown in FIG. 9, the processing of S1 to S3 is the same processing as the flowchart shown in FIG. Therefore, the process after judgment (S3) is demonstrated. That is, in the determination (S3), when the nth and n + 1th bits (for example, the first and second bits) are non-compressed + repeat type data, the nth data is represented by the number of consecutive times +1 indicated by the compressed data. Are written in the data generation buffer 8 (S26).

例えば、上記n=1の場合、1番目のデータを圧縮されたデータで示される連続回数(1回)だけデータ生成バッファ8(F/F8b−2)に書き込む。また、例えばn=2の場合、2番目のデータを圧縮されたデータで示される連続回数(1回)だけデータ生成バッファ8(F/F8b−2)に書き込む(S27、S28がNO)。上記処理をnが9になるまで繰り返し実行する(State10、S28がYES)。   For example, when n = 1, the first data is written into the data generation buffer 8 (F / F 8b-2) for the number of consecutive times (one time) indicated by the compressed data. For example, when n = 2, the second data is written in the data generation buffer 8 (F / F 8b-2) for the number of consecutive times (one time) indicated by the compressed data (NO in S27 and S28). The above processing is repeatedly executed until n becomes 9 (State10, S28 is YES).

このように処理することにより、非圧縮データに続きリピートタイプのデータの伸長処理を効率よく行うことができる。
上記処理によってデータ生成バッファ8(F/F8a−1〜8a−8)には、伸長回路7によって伸長処理されたデータが入力し、以後セレクタ10a〜10dを介して伸長された画像データが後段FIFO9に送信される。
By performing processing in this way, it is possible to efficiently perform repeat type data decompression processing following uncompressed data.
The data generated by the decompression circuit 7 is input to the data generation buffer 8 (F / Fs 8a-1 to 8a-8) by the above processing, and the image data decompressed through the selectors 10a to 10d thereafter is the subsequent FIFO 9 Sent to.

図11は上記送信処理を説明するフローチャートであり、データ生成バッファコントローラ11の処理を説明するものである。また、図12はデータ生成バッファコントローラ11の制御に従ったセレクタ10a〜10dの選択論理を説明する図である。
先ず、伸長回路7からのデータ書き込み指示を判断し(ステップ(以下、STで示す)1)、カウンタ12の値と伸長回路7から読み出したデータのバイト数より、後段FIFO9へのデータをセレクトし、後段FIFO9にデータを書き込む(ST2)。この処理は、1回目のデータ転送であり、後段FIFO9に書き込むバイト数によって伸長入力FIFOコントローラ13は選択するセレクタ10a〜10dを決定する。
FIG. 11 is a flowchart for explaining the transmission process, and explains the process of the data generation buffer controller 11. FIG. 12 is a diagram for explaining the selection logic of the selectors 10a to 10d according to the control of the data generation buffer controller 11.
First, a data write instruction from the decompression circuit 7 is determined (step (hereinafter referred to as ST) 1), and data to the subsequent FIFO 9 is selected based on the value of the counter 12 and the number of bytes of data read from the decompression circuit 7. Then, data is written to the subsequent FIFO 9 (ST2). This process is the first data transfer, and the decompression input FIFO controller 13 determines the selectors 10a to 10d to be selected according to the number of bytes to be written in the subsequent FIFO 9.

例えば、1回目に1バイトのデータのみを転送する場合、セレクタ10aが選択され、F/F8a−1からデータがデュアルポートメモリ14aに転送される(図12に示すa)。また、1回目に2バイトのデータを転送する場合、セレクタ10a及び10bが選択され、F/F8a−1及び8a−2からデータがデュアルポートメモリ14a、14bに転送される(図12に示すb)。同様に、1回目に3バイトのデータを転送する場合、及び4バイトのデータを転送する場合についても、図12に示すc及びdに示す通りである。   For example, when only 1-byte data is transferred for the first time, the selector 10a is selected, and the data is transferred from the F / F 8a-1 to the dual port memory 14a (a shown in FIG. 12). When transferring 2 bytes of data for the first time, the selectors 10a and 10b are selected, and the data is transferred from the F / Fs 8a-1 and 8a-2 to the dual port memories 14a and 14b (b shown in FIG. 12). ). Similarly, the case of transferring 3 bytes of data for the first time and the case of transferring 4 bytes of data are as shown in c and d of FIG.

次に、データを書き込むバイト数が“4”以下であるか判断する(ST3)。上記のように、1回目に4バイト以下のデータを転送する場合には(ST3がYES)、カウンタ値を現在のカウンタ値+伸長回路7から入力したバイト数とする(ST5)。例えば、上記図12に示すaの場合、カウンタ12のカウンタ値は“1”(0+1)となる。また、同図に示すbの場合、カウンタ値は“2” (0+2)となり、同図に示すcの場合、カウンタ値は“3” (0+3)となり、同図に示すdの場合、カウンタ値は“0”に戻る。   Next, it is determined whether the number of bytes for writing data is “4” or less (ST3). As described above, when data of 4 bytes or less is transferred for the first time (ST3 is YES), the counter value is set to the current counter value + the number of bytes input from the decompression circuit 7 (ST5). For example, in the case of a shown in FIG. 12, the counter value of the counter 12 is “1” (0 + 1). In the case of b shown in the figure, the counter value is “2” (0 + 2). In the case of c shown in the figure, the counter value is “3” (0 + 3). In the case of d shown in the figure, the counter value is Returns to “0”.

一方、前述の判断(ST3)において、データを書き込むバイト数が“4”以上である場合(ST3がNO)、2回目のデータを転送するため、カウンタ12の値と伸長回路7から読み出したデータのバイト数より、後段FIFO9へのデータをセレクトする(ST4)。   On the other hand, in the above determination (ST3), when the number of bytes to which data is written is “4” or more (NO in ST3), the value of the counter 12 and the data read from the decompression circuit 7 are transferred to transfer the second data. From the number of bytes, data for the subsequent FIFO 9 is selected (ST4).

この場合、図12に示すように、例えば2回目に1バイトのみのデータを転送する場合、セレクタ10aが選択され、F/F8a−1からデータがデュアルポートメモリ14aに1バイトのデータが転送される(図11に示すf)。また、2回目に2バイトのデータを転送する場合、セレクタ10a及び10bが選択され、F/F8a−1及び8a−2からデータがデュアルポートメモリ14a、14bに転送される(図11に示すg)。尚、1回目に3バイトのデータを転送する場合、及び4バイトのデータを転送する場合についても、同図にh及びiで示す通りである。   In this case, as shown in FIG. 12, for example, when transferring data of only 1 byte for the second time, the selector 10a is selected, and data of 1 byte is transferred from the F / F 8a-1 to the dual port memory 14a. (F shown in FIG. 11). When transferring 2 bytes of data for the second time, the selectors 10a and 10b are selected, and the data is transferred from the F / Fs 8a-1 and 8a-2 to the dual port memories 14a and 14b (see g shown in FIG. 11). ). The case of transferring 3 bytes of data for the first time and the case of transferring 4 bytes of data are as indicated by h and i in FIG.

尚、上記説明はカウンタ値が“0”の場合であるが、カウンタ値が“1”の場合については図12のjに示す通りであり、カウンタ値が“2”の場合については同図のkに示す通りであり、カウンタ値が“3”の場合については同図のlに示す通りである。   Although the above description is for the case where the counter value is “0”, the case where the counter value is “1” is as shown in FIG. 12 j, and the case where the counter value is “2” is shown in FIG. The case where the counter value is “3” is as indicated by l in FIG.

図13は伸長回路7からデータを転送し、後段FIFO9にデータを書き込む際のタイムチャートである。尚、同図の例は、伸長回路7から読み出すバイト数を「1」バイト、「2」バイト、「3」バイト、「4」バイト、・・・とした場合の処理を示す。この場合、先ずカウンタ12のカウント値は最初の「1」バイトのデータ転送によって“1”にカウントアップし、次の「2」バイトのデータ転送によって“3”にカウントアップし、更に次の「3」バイトのデータ転送によって“2”(3+3−4)となる。   FIG. 13 is a time chart when data is transferred from the decompression circuit 7 and data is written in the subsequent FIFO 9. Note that the example in the figure shows processing when the number of bytes read from the decompression circuit 7 is “1” bytes, “2” bytes, “3” bytes, “4” bytes,. In this case, the count value of the counter 12 is first counted up to “1” by the first “1” byte data transfer, counted up to “3” by the next “2” byte data transfer, and then the next “ It becomes “2” (3 + 3-4) by data transfer of 3 ”bytes.

また、ライトアドレスカウンタ15a〜15dは対応するデュアルポートメモリ14a〜14dにデータが転送される毎にカウントアップし、例えば「3」バイトのデータが転送された時点では、ライトアドレスカウンタ15aのカウンタ値は“2”であり、ライトアドレスカウンタ15bのカウンタ値も“2”であり、ライトアドレスカウンタ15cのカウンタ値は“1”であり、ライトアドレスカウンタ15bのカウンタ値も“1”である。   The write address counters 15a to 15d are incremented each time data is transferred to the corresponding dual port memories 14a to 14d. For example, when "3" bytes of data are transferred, the counter value of the write address counter 15a is counted. Is “2”, the counter value of the write address counter 15b is “2”, the counter value of the write address counter 15c is “1”, and the counter value of the write address counter 15b is also “1”.

また、デュアルポートメモリ14a〜14dの全てにデータが転送されると、デュアルポートメモリ14a〜14dに入力されたデータは、例えば不図示のエンジン制御部に転送される。この時、RDアドレスカウンタ16は+1される。   When data is transferred to all of the dual port memories 14a to 14d, the data input to the dual port memories 14a to 14d is transferred to, for example, an engine control unit (not shown). At this time, the RD address counter 16 is incremented by one.

比較器17はWRアドレスカウンタ15d及びRDアドレスカウンタ16のカウント値を比較し、Full(フル)又はEmpty(エンプティ)の信号を出力する。Empty信号はWRアドレスカウンタ15dのカウント値がRDアドレスカウンタ16のカウント値に一致した時出力され、デュアルポートメモリ14a〜14dのデータが読み出され、デュアルポートメモリ14a〜14dが空であることをデータ生成バッファコントローラ11及び伸長入力FIFOコントローラ13に通知する。一方、Full信号はWRアドレスカウンタ15dのカウント値をプラス(+)1した値がRDアドレスカウンタ16のカウント値に一致した時出力され、全てのデュアルポートメモリ14a〜14dにデータが入力し、デュアルポートメモリ14a〜14dからのデータ読み出しを要求する際出力される。   The comparator 17 compares the count values of the WR address counter 15d and the RD address counter 16, and outputs a Full signal or an Empty signal. The Empty signal is output when the count value of the WR address counter 15d matches the count value of the RD address counter 16, the data of the dual port memories 14a to 14d is read, and the dual port memories 14a to 14d are empty. The data generation buffer controller 11 and the decompression input FIFO controller 13 are notified. On the other hand, the Full signal is output when the count value of the WR address counter 15d plus (+) 1 matches the count value of the RD address counter 16, and data is input to all the dual port memories 14a to 14d. Output when requesting data read from the port memories 14a to 14d.

以上のように処理することによって、非圧縮データが連続する場合、連続する非圧縮データをまとめて後段FIFO9に転送することができ、また非圧縮データに続くデータが直前の非圧縮データと同じである場合、同じ非圧縮データが続く回数分後段FIFO9に転送することによって、データ伸長処理を効率よく実行することができる。したがって、圧縮データの伸長処理をより高速に行うことができる。
また、伸長回路を変更する必要もなく、消費電力の増加を抑えることができる。
By processing as described above, when non-compressed data continues, the continuous non-compressed data can be transferred to the subsequent FIFO 9 together, and the data following the non-compressed data is the same as the previous uncompressed data. In some cases, the data decompression process can be efficiently executed by transferring the same uncompressed data to the subsequent FIFO 9 for the number of times that the same uncompressed data continues. Therefore, the compressed data can be decompressed at a higher speed.
Further, it is not necessary to change the decompression circuit, and an increase in power consumption can be suppressed.

尚、図13に示すフローチャートにおいては、伸長回路からのデータ読み出しを4バイト以下の場合について説明したが、実際には非圧縮データの連続や、同一データの連続は4バイトを越えることもある。その場合のタイムチャートとして、8バイトデータが連続する例を図14に示す。   In the flowchart shown in FIG. 13, the case where data reading from the decompression circuit is 4 bytes or less has been described. However, in actuality, the continuation of uncompressed data or the continuation of the same data may exceed 4 bytes. As a time chart in that case, FIG. 14 shows an example in which 8-byte data continues.

この場合、カウンタ12のカウント値は“8”を繰り返し、ライトアドレスカウンタ15a〜15dは対応するデュアルポートメモリ14a〜14dに8バイト毎のデータが転送されるため、ライトアドレスカウンタ15a〜15dは全て同じカウント値を繰り返す。   In this case, since the count value of the counter 12 repeats “8” and the write address counters 15a to 15d transfer the data every 8 bytes to the corresponding dual port memories 14a to 14d, all the write address counters 15a to 15d Repeat the same count value.

図15に示すタイムチャートは、更に後段FIFO9へのデータの書き込み速度のみを2倍にしたタイミングを示す。この場合、上記図13及び図14に示す例と比較すると、全体の処理速度が向上していることが分かる。すなわち、後段FIFO9へのデータ書き込み速度のみを向上させるだけで、全体のデータ転送速度を向上されることができ、これは回路の一部のみの高速対応なので、例えばASIC化した時などでも回路全体を高速化するよりも制約条件を緩和することができ、更に高速で動作する部分が絞られるため、消費電力への影響も最小限に抑えることが可能である。   The time chart shown in FIG. 15 shows the timing at which only the data writing speed to the subsequent FIFO 9 is doubled. In this case, it can be seen that the overall processing speed is improved as compared with the examples shown in FIGS. In other words, the entire data transfer speed can be improved only by improving the data writing speed to the post-stage FIFO 9, and this is a high-speed support for only a part of the circuit. The constraint conditions can be relaxed rather than increasing the speed, and the portion operating at a higher speed can be narrowed down, so that the influence on the power consumption can be minimized.

尚、上記実施形態の説明では、前段FIFO4の出力幅を9バイト分、即ち72bit幅としたが、前述のように、これはフラグ部を1バイトと符号化されたデータ8バイト分であるので、フラグと符号化されたデータ部を合わせたデータを一度にリード可能なデータ幅であれば何バイトでもよい。さらに、複数のフラグと複数の符号化されたデータ群としてもよい。   In the description of the above embodiment, the output width of the first-stage FIFO 4 is 9 bytes, that is, 72 bits. As described above, this is because the flag portion is 8 bytes of encoded data. Any number of bytes may be used if the data width is such that the combined data of the flag and the encoded data portion can be read at once. Furthermore, a plurality of flags and a plurality of encoded data groups may be used.

また、上記実施形態の説明では、入力や出力のデータバスが32bit幅のPCIバスに接続される構成としたが、どのようなアクセス形式のデータバスとしてもよい。   In the above description of the embodiment, the input and output data buses are connected to the 32-bit PCI bus. However, any access type data bus may be used.

本実施形態の印刷装置のデータ伸長回路のブロック図である。It is a block diagram of a data decompression circuit of the printing apparatus of the present embodiment. 前段FIFOとデータセレクタの回路構成を示す図である。It is a figure which shows the circuit structure of a front | former stage FIFO and a data selector. フラグ1バイトとそれに続く符号化されたデータ8バイトを順次セレクトするデータ変換例を説明する図である。It is a figure explaining the example of a data conversion which selects 1 byte of flags, and the subsequent encoded data 8 bytes sequentially. 伸長回路を説明する回路ブロック図である。It is a circuit block diagram explaining a decompression circuit. 圧縮データのデータフォーマットを説明する図である。It is a figure explaining the data format of compression data. データ生成バッファの回路構成を示す図である。It is a figure which shows the circuit structure of a data generation buffer. 後段FIFOの構成を示す図である。It is a figure which shows the structure of a back | latter stage FIFO. 伸長処理を説明するフローチャートである。It is a flowchart explaining an expansion | extension process. 伸長処理を説明するフローチャートである。It is a flowchart explaining an expansion | extension process. 伸長処理を説明するフローチャートである。It is a flowchart explaining an expansion | extension process. データ生成バッファコントローラの処理を説明するフローチャートである。It is a flowchart explaining the process of a data generation buffer controller. データ生成バッファコントローラの制御に従ってセレクタが選択するデータを説明する図である。It is a figure explaining the data which a selector selects according to control of a data generation buffer controller. 伸長回路からデータを転送し、後段FIFOにデータを書き込む際のタイムチャートである。It is a time chart at the time of transferring data from a decompression circuit and writing data in a subsequent FIFO. 伸長回路からデータを転送し、後段FIFOに連続する8バイトのデータを書き込む際のタイムチャートである。It is a time chart at the time of transferring data from the decompression circuit and writing continuous 8-byte data in the subsequent FIFO. 後段FIFOへのデータの書き込み速度のみを2倍にした場合のタイムチャートである。It is a time chart at the time of doubling only the data writing speed to the post-stage FIFO.

符号の説明Explanation of symbols

1・・・データ伸長回路
2・・・CPU
3・・・メモリ
4・・・前段FIFO
5・・・データセレクタ
5a−0〜5a−8・・セレクタ
5b−0〜5b−8・・F/F
7・・・伸長回路
8・・・データ生成バッファ
8a−0〜8a−8・・F/F
9・・・後段FIFO
10a〜10d・・セレクタ
11・・データ生成バッファコントローラ
12・・カウンタ
13・・伸長入力FIFOコントローラ
14a〜14d・・デュアルポートメモリ
15a〜15d・・ライトアドレスカウンタ
16・・リードアドレスカウンタ
17・・比較器
1 ... Data decompression circuit 2 ... CPU
3 ... Memory 4 ... Previous FIFO
5... Data selectors 5a-0 to 5a-8..Selectors 5b-0 to 5b-8..F / F
7: Decompression circuit 8: Data generation buffer 8a-0 to 8a-8, F / F
9: Post-stage FIFO
10a to 10d, selector 11, data generation buffer controller 12, counter 13, decompression input FIFO controllers 14a to 14d, dual port memories 15a to 15d, write address counter 16, read address counter 17, comparison vessel

Claims (6)

非圧縮データと、圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を記憶する第1の記憶手段と、
前記圧縮データを伸長データに伸長する伸長手段と、
前記圧縮情報に基づいて前記非圧縮データの連続を検出する検出手段と、
前記検出手段によ検出された連続する前記非圧縮データをまとめて復元する復元手段と、
前記伸長手段により伸長された伸長データ及び前記復元された前記非圧縮データを記憶する第2の記憶手段と、
前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する出力手段と、
を有することを特徴とするデータ伸長装置。
And uncompressed data, and compressed data, a first storage means for storing said compressed information of uncompressed data and the compressed data,
Decompression means for decompressing the compressed data into decompressed data;
Detecting means for detecting a sequence of the non-compressed data based on the compression information,
And restoring means for restoring together the non-compressed data consecutive Ri detected by said detecting means,
Second storage means for storing the decompressed data decompressed by the decompressing means and the decompressed uncompressed data;
And output means for outputting the expanded data and the restored the uncompressed data is stored in said second storage means,
A data decompression device comprising:
非圧縮データと、直前に位置するデータの繰り返しを指定する圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を記憶する第1の記憶手段と、
前記圧縮データを伸長データに伸長する伸長手段と、
前記圧縮情報に基づいて前記圧縮データが前記非圧縮データの後に並んで記憶されている状態を検出する検出手段と、
前記検出手段によ検出され前記繰り返しを指定する圧縮データが指定する繰り返し回数に1を加えた回数前記非圧縮データを復元する復元手段と、
前記伸長データ及び前記復元された前記非圧縮データ記憶する第2の記憶手段と、
前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する出力手段と、
を有することを特徴とするデータ伸長装置。
And non-compressed data, a first storage means for storing the compressed data that specifies the repetition of data located immediately before, and the compressed information of the non-compressed data and the compressed data,
Decompression means for decompressing the compressed data into decompressed data;
Detecting means for detecting a state in which the compressed data based on the compression information is stored in line after the non-compressed data,
And restoring means for restoring the number of times the uncompressed data compressed data obtained by adding 1 to the repeat count to specify that specifies the repetition Ri detected by said detecting means,
Second storage means for storing the decompressed data and the restored uncompressed data ;
And output means for outputting the expanded data and the restored the uncompressed data is stored in said second storage means,
A data decompression device comprising:
前記圧縮データの圧縮情報は、フラグデータとして前記第1の記憶手段に記憶されることを特徴とする請求項1、又は2に記載のデータ伸長装置。   The data decompression apparatus according to claim 1 or 2, wherein the compression information of the compressed data is stored in the first storage means as flag data. 前記圧縮データは、前記圧縮情報に連続して前記第1の記憶手段に記憶されることを特徴とする請求項1、2、又は3に記載のデータ伸長装置。   The data decompression apparatus according to claim 1, 2, or 3, wherein the compressed data is stored in the first storage means continuously with the compression information. 非圧縮データと、圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を第1の記憶手段に記憶させる処理と、
前記圧縮データを伸長データに伸長する処理と、
前記圧縮情報に基づいて前記非圧縮データの連続を検出する処理と、
前記検出手段によ検出された連続する前記非圧縮データをまとめて復元する処理と、
前記伸長手段により伸長された伸長データ及び前記復元された前記非圧縮データを第2の記憶手段に記憶する処理と、
前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する処理と、
をコンピュータに実行させるプログラム。
And uncompressed data, and compressed data, a process of storing and said compressed information of uncompressed data and the compressed data in the first storage means,
Processing to decompress the compressed data into decompressed data;
A process for detecting a sequence of the non-compressed data based on the compression information,
A process for restoring together the non-compressed data consecutive Ri detected by said detecting means,
A process of storing the decompressed data decompressed by the decompressing means and the decompressed uncompressed data in a second storage means;
Processing for outputting the decompressed data and the decompressed uncompressed data stored in the second storage means;
A program that causes a computer to execute.
非圧縮データと、直前に位置するデータの繰り返しを指定する圧縮データと、前記非圧縮データ及び前記圧縮データの圧縮情報を第1の記憶手段に記憶する処理と、
前記圧縮データを伸長データに伸長する処理と、
前記圧縮情報に基づいて前記圧縮データが前記非圧縮データの後に並んで記憶されている状態を検出する処理と、
前記検出処理によ検出され前記繰り返しを指定する圧縮データが指定する繰り返し回数に1を加えた回数前記非圧縮データを復元する処理と、
前記伸長データ及び前記復元処理された前記非圧縮データ第2の記憶手段に記憶する処理と、
前記第2の記憶手段に記憶された前記伸長データ及び前記復元された前記非圧縮データを出力する処理と、
をコンピュータに実行させるプログラム。
And uncompressed data, and the compressed data that specifies the repetition of data located immediately before a process of storing said compressed information of uncompressed data and the compressed data in the first storage means,
Processing to decompress the compressed data into decompressed data;
A process of detecting a state in which the compressed data based on the compression information is stored in line after the non-compressed data,
A process for restoring the number of times the uncompressed data compressed data obtained by adding 1 to the repeat count to specify that specifies the repetition Ri detected by the detection process,
A process of storing the decompressed data and the decompressed uncompressed data in a second storage unit;
Processing for outputting the decompressed data and the decompressed uncompressed data stored in the second storage means;
A program that causes a computer to execute.
JP2008321077A 2008-12-17 2008-12-17 Data decompressor Expired - Fee Related JP5218015B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008321077A JP5218015B2 (en) 2008-12-17 2008-12-17 Data decompressor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008321077A JP5218015B2 (en) 2008-12-17 2008-12-17 Data decompressor

Publications (2)

Publication Number Publication Date
JP2010147671A JP2010147671A (en) 2010-07-01
JP5218015B2 true JP5218015B2 (en) 2013-06-26

Family

ID=42567665

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008321077A Expired - Fee Related JP5218015B2 (en) 2008-12-17 2008-12-17 Data decompressor

Country Status (1)

Country Link
JP (1) JP5218015B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5600494B2 (en) * 2010-06-29 2014-10-01 株式会社トーモク Packaging box

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05207296A (en) * 1992-01-29 1993-08-13 Fuji Xerox Co Ltd Picture processing unit
JPH09252409A (en) * 1996-03-15 1997-09-22 Ricoh Co Ltd Data compression method in page printer
JP3970007B2 (en) * 2001-12-07 2007-09-05 キヤノン株式会社 Image processing apparatus, image processing method, program, and storage medium
JP4109875B2 (en) * 2002-02-22 2008-07-02 キヤノン株式会社 Image encoding apparatus, image encoding method, program, and storage medium
US7006700B2 (en) * 2004-06-25 2006-02-28 Avocent Corporation Digital video compression command priority
JP4760727B2 (en) * 2007-02-07 2011-08-31 カシオ電子工業株式会社 Data compression apparatus, decoding apparatus thereof, method thereof, and program

Also Published As

Publication number Publication date
JP2010147671A (en) 2010-07-01

Similar Documents

Publication Publication Date Title
US7979611B2 (en) Multi-protocol serial interface apparatus and system-on-chip apparatus including the same
US5805086A (en) Method and system for compressing data that facilitates high-speed data decompression
US10218382B2 (en) Decompression using cascaded history windows
JP6048251B2 (en) Data compression device, data compression method, data compression program, data restoration device, data restoration method, and data restoration program
US20160233880A1 (en) Data compression apparatus and data decompression apparatus
US11424761B2 (en) Multiple symbol decoder
JP5218015B2 (en) Data decompressor
EP1214792B1 (en) Method and apparatus for reducing the time required for decompressing data
US20220171724A1 (en) Memory system and information processing system
CN111279617A (en) Data decompression device and method
WO2021034749A1 (en) Decompression engine for decompressing compressed input data that includes multiple streams of data
JP5055497B2 (en) Data processing device
JP2006332982A (en) Decoder circuit and decoding method
JP4953145B2 (en) Character string data compression apparatus and method, and character string data restoration apparatus and method
WO2023224024A1 (en) Logic analyzer circuit, integrated circuit, and integrated circuit system
JP2007140858A (en) Method for accessing memory, and device for accessing memory
JP7481167B2 (en) Compressed data decompression system, memory system, and data decompression method
EP0768799A2 (en) Method and circuit for rearranging output data in variable-length decoder
JPH08221248A (en) Micro processor
JP4479370B2 (en) Processor
JP2010086321A (en) Memory control system
JP2010287114A (en) Method and device for storing data
JP2000330931A (en) Device and method for dma transfer control
US10432216B1 (en) Configurable compression circuit
CN118071575A (en) Data processing system and data processing method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130218

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160315

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5218015

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees