(57)【要約】      （修正有）【課題】  ランレングスデコーダの最低スループット４を保証する。【解決手段】  符号読み出し手段より読み出された複数符号ワードと符号パターン記憶手段に記憶されている符号パターンを比較し  複数符号ワードがマッチングする符号パターンを検出する符号パターンマッチング手段有し  マッチしたパターンに応じた数の符号データを同時に伸張処理する伸張手段。【選択図】  図６
2007189527.tif 000002
【特許請求の範囲】
【請求項１】
複数の符号ワードの並びからなるランレングス符号データを入力する符号入力手段、
前記符号入力手段から入力されたランレングス符号データの先頭の符号ワードから順番に複数の符号ワードを読み出す符号ワード読み出し手段、
あらかじめ複数の符号パターンが記憶されている符号パターン記憶手段、
前記符号読み出し手段によって読み出された複数の符号ワードと前記符号パターン記憶手段に記憶されている符号パターンとを比較することにより該複数の符号ワードがマッチする符号パターンを検出する符号パターンマッチング手段、
前記符号パターンマッチング手段によって検出された符号パターンに応じて前記複数の符号ワードに含まれるデータを一つまたは複数選択して出力することで該符号ワードの一部または全部を符号伸張処理する伸張データ出力手段、
前記符号パターンマッチング手段によって検出された符号パターンに応じて第一の符号ワード数および第二の符号ワード数とを決定する符号ワード数決定手段、
前記符号パターンマッチング手段によって検出された符号パターンに応じて符号ワードに含まれる一つのランレングス情報を選択して演算を行い新ランレングス情報を算出するランレングス情報演算手段とを有する符号伸張装置であって、
前記伸張データ出力手段による符号伸張処理は、前記符号ワード数決定手段によって決定される第一の符号ワード数に応じた符号ワードを同時に伸張処理し、
前記符号ワード読み出し手段は、前記符号ワード数決定手段によって決定される第二の符号ワード数に応じた符号ワードを処理済とし、
前記符号ワード読み出し手段は、前記ランレングス情報演算手段によって算出された新ランレングス情報によって処理済でない先頭の符号ワードを上書きし、
前記伸張データ出力手段は、一度に出力する伸張データの数が一定であることを特徴とする符号伸張装置。
【請求項２】
前記伸張データ出力手段は、一度に出力する伸張データの数が４であることを特徴とする請求項１に記載の符号伸張装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の符号伸張手段を用いたリアルタイム符号伸張装置に関するものである。
【背景技術】
【０００２】
データ列を扱うシステムにおいて、データ転送に必要なバス帯域やデータ記憶に必要な領域を削減するために、データの転送や記憶を行う前に符号化（エンコード処理）によるデータ圧縮を行って転送・記憶するデータ量を削減して、データの内容が必要となったときに復号化（デコード処理）によるデータ伸張を行うという技術がある。
【０００３】
圧縮形式は様々な種類が存在するが、同じ値を持つデータが連続することの多い文書画像データに関しては、単純かつ低コストなハードウェア構成で実現が可能なランレングス圧縮形式が採用されることがある。このとき、一つのデータが１バイトから成る場合、レングス情報も１バイトを使用したバイト単位でのランレングス圧縮を行うことが一般的である。
【０００４】
一方、プリンタでの印刷動作に利用される画像データにおいても上記のデータ圧縮・伸張処理によるデータ量削減が行われており、この場合、データ圧縮された画像データはプリンタがデータを要求するタイミングに間に合うようにデータ伸張されて順次プリンタに転送されるというリアルタイム処理が行われるため、プリンタ動作で利用するデータに欠損を発生させないためには、データ伸張の処理速度はプリンタがデータを要求する速度よりも常に上回っている必要がある。
【０００５】
ここで、ランレングス圧縮された圧縮データをデータ伸張する処理は、圧縮データ単位毎の逐次処理となる。その理由は、ランレングス圧縮の圧縮データはレングス情報とデータ情報の組が複数連続したもので、レングス情報の内容によりそれに続くデータ情報のデータ数が決定する可変長の圧縮方式であるために、次のレングス情報を見つけるためには前のレングス情報を評価する必要があるからである。一つのレングス情報の評価によって出力できるデータ数は可変であるが、通常、最小の場合で１になる。
【０００６】
従って、クロック同期で動作するデータ伸張処理回路の処理速度は最小の場合で１データ／サイクル、例えば１バイト単位でランレングス圧縮された圧縮データを伸張処理する場合には最小の場合で１バイト／サイクル、となるのが一般的である。スループット（単位時間内に処理可能なデータ量）で表現すれば、最低スループットが１となる。
【０００７】
近年、プリンタ技術が向上することによって、従来より高解像なプリントが可能なプリンタが登場してきている。解像度が高まるとプリントに必要となるデータ量も多くなり、必然的にプリンタに転送するデータ量が多くなる。高解像プリンタの中には、１サイクルの内に４データのデータ転送を要求するものもあり、この場合、ランレングス伸張の処理速度（スループット１）が、プリンタがデータを要求する速度（スループット４）を下回るために、リアルタイムでのデータ伸張処理が行えなくなる。そのため、あらかじめ圧縮データはデータ伸張して中間バッファに蓄えておき、プリンタの要求に応じて中間バッファからの読み出しとデータ転送を行うことでデータ欠損を防ぐ技術が考えられる。または、データ伸張処理回路をデータ転送回路に対して４倍の周波数を持つクロック信号で駆動して、データ転送１サイクルあたり４データの伸張が可能となるように回路を構成する手法が考えられる。
【特許文献１】特開平１１−８８１９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述した従来の技術における中間バッファは、プリンタが一度のプリント動作に必要とするデータ量を記憶するページメモリ装置により実現されるために、大幅なコスト増加となってしまう。また、上述した従来の技術における４倍の周波数を持つクロック信号による駆動は、データ転送回路自体が高速なクロックで駆動されている場合に、さらにその４倍の周波数を利用することは技術的には非常に難しく、半導体物理設計と製造技術および製造の面において非常にコストの高いものとなってしまう。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、本発明の符号伸張装置は、
複数の符号ワードの並びからなるランレングス符号データを入力する符号入力手段、前記符号入力手段から入力されたランレングス符号データの先頭の符号ワードから順番に複数の符号ワードを読み出す符号ワード読み出し手段、あらかじめ複数の符号パターンが記憶されている符号パターン記憶手段、前記符号読み出し手段によって読み出された複数の符号ワードと前記符号パターン記憶手段に記憶されている符号パターンとを比較することにより該複数の符号ワードがマッチする符号パターンを検出する符号パターンマッチング手段、前記符号パターンマッチング手段によって検出された符号パターンに応じて前記複数の符号ワードに含まれるデータを一つまたは複数選択して出力することで該符号ワードの一部または全部を符号伸張処理する伸張データ出力手段、前記符号パターンマッチング手段によって検出された符号パターンに応じて第一の符号ワード数および第二の符号ワード数とを決定する符号ワード数決定手段、前記符号パターンマッチング手段によって検出された符号パターンに応じて符号ワードに含まれる一つのランレングス情報を選択して演算を行い新ランレングス情報を算出するランレングス情報演算手段とを有し、
前記伸張データ出力手段による符号伸張処理は、前記符号ワード数決定手段によって決定される第一の符号ワード数に応じた符号ワードを同時に伸張処理し、前記符号ワード読み出し手段は、前記符号ワード数決定手段によって決定される第二の符号ワード数に応じた符号ワードを処理済とし、前記符号ワード読み出し手段は、前記ランレングス情報演算手段によって算出された新ランレングス情報によって処理済でない先頭の符号ワードを上書きし、前記伸張データ出力手段は、一度に出力する伸張データの数が一定であることを特徴とする。
【００１０】
また、前記伸張データ出力手段は、一度に出力する伸張データの数が４であることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、圧縮データ伸張装置のデータ伸張処理の最低スループットを４とすることができ、要求スループット４のプリンタに対して中間バッファなしでリアルタイムのデータ伸張処理が行え、中間バッファ用のページメモリが不要となり、また、データ伸張装置を駆動するクロック周波数を４倍とする必要がなく、システムのコスト増加を防ぐことが可能である。
【発明を実施するための最良の形態】
【００１２】
（実施例１）
以下、本発明の請求項１および請求項２における符号伸張装置の一実施例を図面に基づき説明する。
【００１３】
図１は本実施例に係る符号伸張装置の接続を示すブロック図である。同図において１は符号伸張装置で、２は符号データ記憶装置で、３はデータ利用装置で、４は符号データ転送バスで、５はデータ転送バスである。
【００１４】
符号データ記憶装置２は符号データ出力端子および符号データ転送要求入力端子を持ち、それらは符号データ転送バス４を介して符号伸張装置１と接続されている。そして、符号データ記憶装置２はランレングス符号データを記憶しており、符号伸張装置１の送信する符号データ要求信号に応じて、符号データ出力端子から間断なく８バイトずつ出力する。
【００１５】
符号伸張装置１は符号データ入力端子および符号データ転送要求出力端子を持ち、それらは符号データ転送バス４を介して符号データ記憶装置２と接続されている。符号伸張装置１は符号伸張処理が可能な状態となると符号データ要求出力端子から符号データ要求信号を出力し、接続先の符号データ記憶装置２から転送される符号データを符号データ入力端子を介して受信し、符号伸張処理を行う。この符号伸張処理の詳細は後述する。
【００１６】
また、符号伸張装置１はデータ出力端子およびデータ要求信号入力端子を持ち、それらはデータ転送バス５を介してデータ利用装置３と接続されている。符号伸張装置１はデータ利用装置３からのデータ要求信号に応じて符号伸張処理されたデータをデータ出力端子から間断なく４バイトずつ出力する。
【００１７】
データ利用装置３はデータ入力端子およびデータ転送要求出力端子を持ち、それらはデータ転送バス５を介して符号伸張装置１と接続されている。データ利用装置３はデータを利用する状態になるとデータ要求出力端子からデータ要求信号を出力し、接続先の符号伸張装置１から転送されるデータをデータ入力端子を介して受信する。
【００１８】
図２は本実施例に係る符号伸張装置の符号に含まれるレングスコードに関する仕様表である。符号伸張装置１は入力された符号データの伸張処理を本仕様表に従って行い、伸張されたデータを出力する。ここで、符号伸張装置１が扱う符号データはバイト単位のデータをランレングス圧縮したものであり、そのランレングス符号はレングスコード（１バイト）とその直後に続くデータ（可変長バイト）とを一組としてその組が複数個連続したものである。符号伸張装置１は、レングスコードを図２に示すレングスコード仕様表を用いて解釈してレングスコードの直後に続くデータのバイト長を求め、レングスコードで示された回数だけデータを出力し、まだ符号データが残っていれば次のレングスコードの解釈を行う、といった手順で符号データの伸張処理とデータ出力を行う。ここまで示したように、ランレングス符号により圧縮された符号データは、データの先頭から順にレングスコードを解釈して可変長のデータを処理していくことで、一意に伸張処理を行うことができるものである。
【００１９】
図３は本実施例に係る符号データ記憶装置に記憶されている符号データである。図中の四角は１バイトの符号データを表しており、記載されている数字は１６進数で符号データの内容を示している。符号データ記憶装置２は前述の通り、符号データ要求信号を受信したときに図３に示す符号データを左側から順に８バイトずつ出力する。
【００２０】
図４は図３に示す符号データのレングスコードに太線で囲みを付けた図である。符号データ記憶装置２および符号データ伸張装置１はこのレングスコードの情報をあらかじめ持っているわけではない。符号データ中のどのバイトがレングスコードになるかについては、前述した通り、符号データの先頭バイトから順に処理していくことにより判別することが可能である。この図は参考のために示した。
【００２１】
図５は図３に示す符号データを伸張処置して得られるデータを参考のために示した図である。図中の四角は１バイトのデータを表しており、記載されている数字は１６進数でデータの内容を示している。
【００２２】
図６は本実施例に係る符号伸張装置の内部構成を示すブロック図である。１０１は符号データ入力部で、１０２はランレングス符号伸張部で、１０３はパターンマッチング部で、１０４はデータ出力部である。
【００２３】
符号データ入力部１０１は内部に図示しない符号データバッファを持ち、符号データ記憶装置２から受信した符号データを１６バイト記憶することができる。符号データバッファに記憶された符号データはランレングス符号伸張部１０２およびランレングス符号伸張部Ｂ１０３から参照することが可能な構成となっており、符号データ入力部１０１はランレングス符号伸張部１０２が送信したシフト数を受信してそのバイト数だけ符号データバッファをシフトする機能、ランレングス符号伸張部１０２が送信した更新値を受信して符号データバッファ先頭の１バイトを書き換える機能、および、バッファの空き領域が８バイト以上になる見込みのときに符号データ要求信号を符号データ記憶装置２に対して送信する機能とを持つ。
【００２４】
ランレングス符号伸張部１０２は、データ出力部１０４から転送されるデータ要求信号がアクティブである間、パターンマッチング部１０３が送信したパターン番号を受信してその番号に応じて、「シフト数」を決定して符号データ入力部１０１に対して送信する機能、符号データ入力部１０１内部の符号データバッファに記憶されている符号データを参照して「更新値」を演算して符号データ入力部１０１に対して送信する機能、符号データ入力部１０１内部の符号データバッファに記憶されている符号データを参照して「出力値」を決定してデータ出力部１０４に送信する機能とを持つ。これらの機能はそれぞれ図示しない内部のテーブルに記憶されている情報を参照することにより行なわれ、詳細は後述する。
【００２５】
パターンマッチング部１０３は、符号データ入力部１０１内部の符号データバッファに記憶されている先頭８バイトの符号データを参照し、図示しない内部のテーブルに記憶されている４１種類のパターンと比較することによりその符号データがどのパターンに当てはまるかを一意に決定して、そのパターン番号をランレングス符号伸張部１０２に対して送信する機能を持つ。この機能の詳細は後述する。
【００２６】
データ出力部１０４は、データ利用装置３から受信するデータ要求信号をランレングス符号伸張部１０２に転送する。また、このデータ要求信号を受信している間は、ランレングス符号伸張部１０２が出力するデータをデータ利用装置３に対して出力する。
【００２７】
図７は本実施例に係る符号伸張装置におけるパターンマッチング部１０３内部のテーブルに記憶されているパターン情報を示す表である。パターンは４１種類あり、それぞれにパターン番号が割り振られている。各パターンは８バイトの符号データと比較される内容となっており、各バイト毎に数値の比較が行なわれ、８つすべてのバイトに対して一致するパターンがその８バイトの符号データに一致するパターンと判断される。
【００２８】
４１種類の各パターンはそれぞれ８バイトの符号データの各バイトに対応する８つの値から構成され、各値は単一の数値を持ち一つの数値のみに一致するもの、数値の範囲を持ち複数の数値に一致するもの、また、テーブル中＊マークで表記したすべての数値に一致するもの、とがある。４１種類の各パターンはすべて排他的であり、かつ、どのような８バイトの符号データに対しても４１種類の中で一つのパターンのみが必ず一致するように構成されている。パターンマッチング部１０３は、このテーブルに記憶されたパターン情報を用いて８バイトの符号データと比較することで一致するパターン番号を一意に決定してランレングス符号伸張部１０２に対してそのパターン番号を出力する。
【００２９】
図８は本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応するシフト数を示す表である。ランレングス符号伸張部１０２はパターンマッチング部１０３から入力されるパターン番号に対応するシフト数をこの表に従って決定し、符号データ入力部１０１に対して出力する。
【００３０】
図９は本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応する更新値を示す表である。ランレングス符号伸張部１０２はパターンマッチング部１０３から入力されるパターン番号に対応する更新値をこの表に従って決定し、符号データ入力部１０１に対して出力する。表中の（ｂｙｔｅ  ０）はランレングス符号伸張部１０２に対して入力される符号データのバイト０が持つ値を表し、同様に、（ｂｙｔｅ  ２）、（ｂｙｔｅ  ３）、（ｂｙｔｅ  ４）、（ｂｙｔｅ  ５）、（ｂｙｔｅ  ６）、はそれぞれ、ランレングス符号伸張部１０２に対して入力される符号データのバイト２、バイト３、バイト４、バイト５、バイト６、が持つ値を表し、パターン番号に対応する更新値はそれらの値に表中に示した加減算を行なって算出される。更新なしの場合は符号データ入力部１０１に対して更新しないことを表す信号を送信して符号データの更新を行なわない。
【００３１】
図１０は本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応する出力値を示す表である。ランレングス符号伸張部１０２はパターンマッチング部１０３から入力されるパターン番号に対応する出力値をこの表に従って決定し、データ出力部１０４に対して出力する。表中の（ｂｙｔｅ  １）はランレングス符号伸張部１０２に対して入力される符号データのバイト１が持つ値を表し、同様に、（ｂｙｔｅ  ２）、（ｂｙｔｅ  ３）、（ｂｙｔｅ  ４）、（ｂｙｔｅ  ５）、（ｂｙｔｅ  ６）、（ｂｙｔｅ  ７）、はそれぞれ、ランレングス符号伸張部１０２に対して入力される符号データのバイト２、バイト３、バイト４、バイト５、バイト６、バイト７、が持つ値を表す。
【００３２】
図１１は本実施例に係る符号伸張装置の接続を示すブロック図における符号データ転送バス４およびデータ転送バス５の転送手順を示すタイミングチャートである。符号伸張装置１はリセット信号が解除されてすぐに符号データ要求信号を送信し、内部の符号データバッファへの符号データ読み込みを開始する。また、データ利用装置３からのデータ要求信号を受信すると、符号伸張処理を開始して伸張したデータをデータ利用装置３に対して出力する。処理する符号データがなくなったことを検知すると動作を停止する。
【００３３】
この動作停止に関しては一般的な制御であるためにここでは詳細な説明は省略する。また、データ利用装置３はあらかじめ決まった量（３２バイト）のデータ信号を受信した後は、データ要求信号を送信しない。なお、チャート中のクロック信号およびリセット信号は、符号伸張装置１に対して入力されており、これらの信号に同期して内部の同期動作および初期化動作が行われる。
【００３４】
図１２は図１１に示すタイミングチャートにおける符号伸張装置１の内部動作を示した模式図である。図１１のタイミングチャートにおけるサイクル１からサイクル１３までの状態を図示してある。
【００３５】
図の左側に、符号伸張装置１の符号データ入力部１０１内部の符号データバッファに記憶された符号データを示している。ここで、符号データバッファは符号データ記憶装置２から転送された符号データをクロックに同期して記憶するため、符号データ転送バス４上で転送された符号データは転送の次のサイクルにおいて符号データバッファに記憶されている。
【００３６】
図中の丸枠で示した符号データはランレングス符号伸張部１０２から入力された更新値によって書き換えられた符号データを示す。符号データ入力部１０１は、符号データバッファに記憶された符号データのうち、ランレングス符号伸張部１０２から入力されたシフト数で示される符号データが次のサイクルには破棄されるように、符号データバッファ全体のバイトシフトを行い、また、記憶されている符号データが８バイト以下となる見込みの場合には符号データ要求信号が符号データ記憶装置２に対して送信されるように制御して、符号データバッファ内に８バイト以上の符号データが記憶されているように管理している。
【００３７】
図の中央に、符号伸張装置１のパターンマッチング部１０３が判定したパターンマッチング結果を示している。
【００３８】
図の右側に、符号伸張装置１のランレングス符号伸張部１０２が出力するシフト数、更新値、および、符号伸張装置１のランレングス符号伸張部１０２およびデータ出力部１０４が出力するデータを示している。データ出力部１０４は前述した通り、データ利用装置３からのデータ要求信号をランレングス符号伸張部１０２に対して転送するため、データ出力部１０４からデータ要求信号を受信していないサイクル４まではランレングス符号伸張部１０２は動作を停止している。
【００３９】
サイクル５からサイクル１２まではデータ出力部１０４からデータ要求信号を受信しているため、ランレングス符号伸張部１０２はアクティブ状態となりシフト数、更新値、およびデータの出力が行われている。
【００４０】
以下、図１１と図１２における符号伸張装置１、符号データ記憶装置２、および、データ利用装置３の各サイクルでの動作を説明する。
【００４１】
サイクル１では、リセットが解除されて動作が開始される。符号データバッファには８バイト以上の空きがあるため、符号伸張装置１は符号データ要求信号を出力する。符号データ記憶装置２は符号データ要求信号に応じて符号データを転送する。
【００４２】
サイクル２では、前サイクルにおいて符号データバッファに転送された符号データが符号データバッファに記憶される。符号データバッファには８バイト以上の空きがあるため、符号伸張装置１は符号データ要求信号を出力する。符号データ記憶装置２は符号データ要求信号に応じて符号データを転送する。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２９を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００４３】
サイクル３では、前サイクルにおいて符号データバッファに転送された符号データが符号データバッファに記憶される。符号データバッファには８バイト以上の空きがないため、符号伸張装置１は符号データ要求信号を出力しない。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２９を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００４４】
サイクル４では、パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２９を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００４５】
サイクル５では、パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２９を検出し、その番号をランレングス符号伸張部１０２に対して出力する。データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号２９に応じてシフト数、更新値、および、データの出力を行なう。
【００４６】
それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が４であり、その値を出力する。更新値はテーブルに記憶されている値が（ｂｙｔｅ  ０）−４であり、符号データのバイト０の値０４ｈから４を減算した値である００ｈを出力する。データは符号データのバイト１、バイト２、バイト３、バイト４の値であり、０１ｈ、０２ｈ、０３ｈ、０４ｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００４７】
サイクル６では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値と更新値を使って符号データバッファをシフトした後にバイト０の値を書き換える。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号１４を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００４８】
データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号１４に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が４であり、その値を出力する。更新値はテーブルに記憶されている値が更新なしであり、更新しない制御信号を出力する。データは符号データのバイト１、バイト３、バイト３、バイト３の値であり、０５ｈ、０６ｈ、０６ｈ、０６ｈを出力する。
【００４９】
データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。本サイクルの符号データシフトによって、符号データバッファには８バイト以上の空きができることが確定するため、符号伸張装置１は符号データ要求信号を出力する。符号データ記憶装置２は符号データ要求信号に応じて符号データを転送する。
【００５０】
サイクル７では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値を使って符号データバッファをシフトし、前サイクルにおいて符号データバッファに転送された符号データを符号データバッファに記憶する。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２８を検出し、その番号をランレングス符号伸張部１０２に対して出力する。データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号２８に応じてシフト数、更新値、および、データの出力を行なう。
【００５１】
それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が５であり、その値を出力する。更新値はテーブルに記憶されている値が更新なしであり、更新しない制御信号を出力する。データは符号データのバイト１、バイト２、バイト３、バイト４の値であり、０７ｈ、０８ｈ、０９ｈ、０Ａｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００５２】
サイクル８では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値を使って符号データバッファをシフトする。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号３０を検出し、その番号をランレングス符号伸張部１０２に対して出力する。データ利用装置３がデータ要求信号を送信する。
【００５３】
データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号３０に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が０であり、その値を出力する。更新値はテーブルに記憶されている値が（ｂｙｔｅ  ０）＋４であり、符号データのバイト０の値ＦＡｈに４を加算した値であるＦＥｈを出力する。
【００５４】
データは符号データのバイト１、バイト１、バイト１、バイト１の値であり、０Ｂｈ、０Ｂｈ、０Ｂｈ、０Ｂｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００５５】
サイクル９では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値と更新値を使って符号データバッファをシフトした後にバイト０の値を書き換える。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号３３を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００５６】
データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号３３に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が３であり、その値を出力する。
【００５７】
更新値はテーブルに記憶されている値が（ｂｙｔｅ  ２）−１であり、符号データのバイト２の値０５ｈから１を減算した値である０４ｈを出力する。データは符号データのバイト１、バイト１、バイト１、バイト３の値であり、０Ｂｈ、０Ｂｈ、０Ｂｈ、０Ｃｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００５８】
サイクル１０では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値と更新値を使って符号データバッファをシフトした後にバイト０の値を書き換える。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号２９を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００５９】
データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号２９に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が４であり、その値を出力する。更新値はテーブルに記憶されている値が（ｂｙｔｅ  ０）−４であり、符号データのバイト０の値０４ｈから１を減算した値である００ｈを出力する。
【００６０】
データは符号データのバイト１、バイト２、バイト３、バイト４の値であり、０Ｄｈ、０Ｅｈ、０Ｆｈ、１０ｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００６１】
サイクル１１では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値と更新値を使って符号データバッファをシフトした後にバイト０の値を書き換える。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号１３を検出し、その番号をランレングス符号伸張部１０２に対して出力する。
【００６２】
データ利用装置３がデータ要求信号を送信する。データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号１３に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が２であり、その値を出力する。更新値はテーブルに記憶されている値が（ｂｙｔｅ  ２）＋３であり、符号データのバイト０の値ＦＡｈに３を加算した値であるＦＤｈを出力する。
【００６３】
データは符号データのバイト１、バイト３、バイト３、バイト３の値であり、１１ｈ、１２ｈ、１２ｈ、１２ｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００６４】
サイクル１２では、符号データ入力部１０１は前サイクルにランレングス符号伸張部１０２から受信したシフト値と更新値を使って符号データバッファをシフトした後にバイト０の値を書き換える。パターンマッチング部１０３は符号データバッファに記憶されている先頭の８バイトの符号データを受信して内部のテーブル情報と比較してマッチするパターンの番号３１を検出し、その番号をランレングス符号伸張部１０２に対して出力する。データ利用装置３がデータ要求信号を送信する。
【００６５】
データ要求信号を受信したランレングス符号伸張部１０２はパターンマッチング部１０３から受信したパターン番号３１に応じてシフト数、更新値、および、データの出力を行なう。それぞれテーブルを参照して出力する。シフト値はテーブルに記憶されている値が２であり、その値を出力する。更新値はテーブルに記憶されている値が更新なしであり、更新しない制御信号を出力する。データは符号データのバイト１、バイト１、バイト１、バイト１の値であり、１２ｈ、１２ｈ、１２ｈ、１２ｈを出力する。データ出力部１０４はランレングス符号伸張部１０２が出力した４バイトのデータをデータ利用部３に対して出力する。
【００６６】
サイクル１３では、データ利用装置３はあらかじめ決まった量（３２バイト）のデータ信号を受信した後であるため、データ要求信号を送信しない。
【００６７】
以上説明したように、パターンマッチングによるランレングス伸張処理を行うことによって、データ利用部３の要求信号に応じて常に４バイトのデータ出力を行うことが可能である。
【００６８】
なお、請求項１における各手段と本実施例における処理部との対応を次に示す。符号入力手段とは符号データ入力部１０１である。符号ワード読み出し手段とは、符号データ入力部１０１である。符号パターン記憶手段とは、パターンマッチング手段１０３である。符号パターンマッチング手段とは、パターンマッチング手段１０３である。伸張データ出力手段とは、ランレングス符号伸張手段１０２である。
【００６９】
符号ワード数決定手段とは、ランレングス符号伸張手段１０２である。ランレングス情報演算手段とは、ランレングス符号伸張手段１０２である。
【図面の簡単な説明】
【００７０】
【図１】本実施例に係る符号伸張装置の接続を示すブロック図である。
【図２】本実施例に係る符号伸張装置の符号に含まれるレングスコードに関する仕様表である。
【図３】本実施例に係る符号データ記憶装置に記憶されている符号データである。
【図４】図３に示す符号データのレングスコードに太線で囲みを付けた図である。
【図５】図３に示す符号データを伸張処置して得られるデータを参考のために示した図である。
【図６】本実施例に係る符号伸張装置の内部構成を示すブロック図である。
【図７】本実施例に係る符号伸張装置におけるパターンマッチング部１０３内部のテーブルに記憶されているパターン情報を示す表である。
【図８】本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応するシフト数を示す表である。
【図９】本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応する更新値を示す表である。
【図１０】本実施例に係る符号伸張装置におけるランレングス符号伸張部１０２内部のテーブルに記憶されているパターン番号に対応する出力値を示す表である。
【図１１】本実施例に係る符号伸張装置の接続を示すブロック図における符号データ転送バス４およびデータ転送バス５の転送手順を示すタイミングチャートである。
【図１２】図１１に示すタイミングチャートにおける符号伸張装置１の内部動作を示した模式図である。
【符号の説明】
【００７１】
１  符号伸張装置
２  符号データ記憶装置
３  データ利用装置
４  符号データ転送バス
５  データ転送バス
１０１  符号データ入力部
１０２  ランレングス符号伸張部
１０３  パターンマッチング部
１０４  データ出力部
【図１】
2007189527.tif 000003
【図２】
2007189527.tif 000004
【図３】
2007189527.tif 000005
【図４】
2007189527.tif 000006
【図５】
2007189527.tif 000007
【図６】
2007189527.tif 000008
【図７】
2007189527.tif 000009
【図８】
2007189527.tif 000010
【図９】
2007189527.tif 000011
【図１０】
2007189527.tif 000012
【図１１】
2007189527.tif 000013
【図１２】
2007189527.tif 000014