(57)【要約】      （修正有）【課題】コピー動作時におけるメモリへのリードアクセス数を低減することにより、高速な復号処理を可能にする。【解決手段】ライン単位の処理を指定するコマンドデータを、連続した複数ライン分、メモリから入力する入力部と、入力されたコマンドデータに基づいて、連続した複数ラインの処理の組み合わせを解釈する制御部と、制御部の解釈に従い、ライン単位のデータの処理をコピーまたはデコードに処理を切り替える切り替え部と、切り替え部により切り替えられた処理に応じて、メモリへの復号化データの書き込みを制御する出力制御部と、出力制御部がメモリに書き込みした復号化データを格納するライトバッファメモリと、を備え、出力制御部は、制御部の解釈により、ライン単位のデータのコピー処理が連続する場合、ライトバッファメモリに格納されている復号化データをメモリに書き込む。【選択図】  図２
2006229363.tif 000002
【特許請求の範囲】
【請求項１】
ライン単位にメモリ上に格納されている、圧縮データを当該ライン単位に連続して読み出し、復号手段により復号化するデータ復号化装置であって、
前記ライン単位の処理を指定するコマンドデータを、連続した複数ライン分、前記メモリから入力する入力手段と、
前記入力手段により入力された前記コマンドデータに基づいて、前記連続した複数ラインの処理の組み合わせを解釈する制御手段と、
前記制御手段の解釈に従い、前記ライン単位のデータの処理をコピーまたはデコードに処理を切り替える切り替え手段と、
前記切り替え手段により切り替えられた処理に応じて、前記メモリへの復号化データの書き込みを制御する出力制御手段と、
前記出力制御手段が前記メモリに書き込みした復号化データを格納するライトバッファ手段と、を備え、
前記出力制御手段は、前記制御手段の解釈により、前記ライン単位のデータのコピー処理が連続する場合、前記ライトバッファ手段に格納されている前記復号化データを前記メモリに書き込む
ことを特徴とするデータ復号化装置。
【請求項２】
書き込みアドレスを指定するアドレス指定手段を更に備え、
前記出力制御手段は、前記指定された書き込みアドレスに従い、前記ライン単位の復号化データを前記メモリに書き込むことを特徴とする請求項１に記載のデータ復号化装置。
【請求項３】
前記制御手段は、前記コマンドデータがデコード処理の場合、前記切り替え手段を制御して、前記復号手段に前記メモリからライン単位に読み出した圧縮データを復号させることを特徴とする請求項１に記載のデータ復号化装置。
【請求項４】
前記制御手段の解釈により、第一のラインのコマンドデータがコピー処理の場合、当該制御手段は、前記切り替え手段を制御して、前記メモリより入力した前ラインの復号化データを、前記出力制御手段に受け渡し、
前記出力制御手段は、前記前ラインの復号化データを前記メモリに書き込みし、当該復号化データを前記ライトバッファ手段に格納することを特徴とする請求項１または２に記載のデータ復号化装置。
【請求項５】
前記制御手段の解釈により、前記第一のラインに連続する第二のラインのコマンドデータがコピー処理の場合、
前記出力制御手段は、前記ライトバッファ手段に格納されている前記復号化データを読み出し、当該復号化データを前記メモリに書き込みすることを特徴とする請求項４に記載のデータ復号化装置。
【請求項６】
前記制御手段の解釈により、第一のラインのコマンドデータがコピー処理であり、当該第一のラインに連続する第二のラインのコマンドがデコードの場合、
前記出力制御手段は、前記メモリに書き込みする復号化データを前記ライトバッファ手段に格納しないことを特徴とする請求項４に記載のデータ復号化装置。
【請求項７】
前記制御手段の解釈により、前記コマンドデータがｎ行（２以上の自然数）のコピー処理の場合、当該制御手段は、前記切り替え手段を制御して、前記メモリより入力した前ラインの復号化データを、前記出力制御手段に受け渡し、
前記出力制御手段は、前記前ラインの復号化データを前記メモリに書き込みし、ｎ−１行分の復号化データを、前記ライトバッファ手段に格納した復号化データを読み出して、前記メモリに書き込むことを特徴とする請求項１または４に記載のデータ復号化装置。
【請求項８】
情報処理装置から送信され、ライン単位にメモリ上に格納されている、圧縮された印刷データを当該ライン単位に連続して読み出し、復号し、当該復号された印刷データに基づいて画像処理を行う記録装置であって、
ライン単位にメモリ上に格納されている、圧縮された印刷データを当該ライン単位に連続して読み出し、復号手段により復号化する請求項１乃至７のいずれかに記載のデータ復号化装置と、
前記データ復号化装置により復号化された印刷データに基づいて画像処理を行う画像処理手段と、
前記画像処理の結果に従い、記録媒体上への記録を制御する記録制御手段と、
を備えることを特徴とする記録装置。
【請求項９】
前記記録制御手段は、プリントヘッドのスキャン制御、インク吐出制御、記録媒体の搬送制御を行うことを特徴とする請求項８に記載の記録装置。
【請求項１０】
ライン単位にメモリ上に格納されている、圧縮データを当該ライン単位に連続して読み出し、復号手段により復号化するデータ復号化方法であって、
前記ライン単位の処理を指定するコマンドデータを、連続した複数ライン分、前記メモリから入力する入力工程と、
前記入力工程により入力された前記コマンドデータに基づいて、前記連続した複数ラインの処理の組み合わせを解釈する制御工程と、
前記制御工程の解釈に従い、前記ライン単位のデータの処理をコピーまたはデコードに処理を切り替える切り替え工程と、
前記切り替え工程により切り替えられた処理に応じて、前記メモリへの復号化データの書き込みを制御する出力制御工程と、
前記出力制御工程が前記メモリに書き込みした復号化データをライトバッファメモリの格納するライトバッファ工程と、を備え、
前記出力制御工程は、前記制御工程の解釈により、前記ライン単位のデータのコピー処理が連続する場合、前記ライトバッファメモリに格納されている前記復号化データを前記メモリに書き込む
ことを特徴とするデータ復号化方法。
【請求項１１】
請求項１０に記載のデータ復号化方法をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムを格納したことを特徴とするコンピュータ可読の記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮されたデータを復号化するデータ復号化技術に関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータで印刷データを作成してプリンタへ送信する場合、印刷データは図形オブジェクトを含む矩形領域を単位として生成されることがある。例えば、図７を参照すると、７０１は記録媒体の全体的な領域を表し、７０２、７０３、７０４は印刷データを含む矩形領域である。
【０００３】
例えば、７０２に示すような図形オブジェクトを含む矩形領域を印刷データの一つの単位とし、ライン毎のデータを矩形領域単位にまとめた形式の印刷データをホストコンピュータで生成し、プリンタへ送信する。
【０００４】
矩形領域７０２は三角形や四角形や円形などの図形オブジェクトを含み、矩形領域７０３は楕円形の図形オブジェクトと文字データ（ＡＢＣＤ…）を含む。矩形領域７０４は、領域内に矩形７１１、７１３、７１４の３つの矩形オブジェクトデータが配置されており、領域７１２は矩形オブジェクトデータ７１１と矩形オブジェクトデータ７１３に挟まれた空白部を形成するデータ（白データ部）を示している。プリンタへ送信する印刷データは多値のカラーデータ（ＲＧＢ各色８ｂｉｔ／各色１０ｂｉｔ等）である場合、プリンタでは受信した印刷データを解釈し、色空間変換を行った後、ディザ法あるいは誤差拡散法などを用いて、多値のカラーデータをＣＭＹＫあるいはＣＭＹＫｃｍのインク各色のオンオフデータとなる２値のカラーデータを生成する。
【０００５】
従来、ホストコンピュータからプリンタへ送信する印刷データのデータ量を低減するために、種々のデータ圧縮方法が用いられてきた。ライン単位のデータをバイトランレングス圧縮方式によって圧縮し、さらにｎ行空白行を挿入し、ｎ行繰り返しコピー等の拡張コマンドを定義することによって、圧縮率を高めると同時にプリンタのＣＰＵ処理負荷を低減するようにしたものがある（例えば、特許文献１を参照）。また、他のデータ圧縮法として２つのラインデータの差分情報を用いて圧縮することによって、送信データ量を削減する方法がある。シードロー圧縮はその圧縮方法の一つである。着目した処理対象のラインデータを、別のラインデータ（ここで、参照するラインのことを「参照ライン」と呼ぶ。）を参照して、その差分情報を符号化する。例えば、参照ラインと処理対象のラインとを、各ラインの左端から比較して、異なるデータとその位置を符号化するものである。
【０００６】
図８は図７に示す矩形領域７０４をライン単位で詳細に表現した図であり、矩形領域７０４が１６本のラインから構成されている例を示したものである。斜線部８０１は矩形オブジェクトデータ７１１が存在する部分を示し、８０２は矩形オブジェクトデータが存在しない領域７１２を示している。また、斜線部８０３は矩形オブジェクトデータ７１３を示しており、斜線部８０４は矩形オブジェクトデータ７１４を示している。
【０００７】
ホストコンピュータ上で動作するプリンタドライバは、図８に示す矩形領域をライン単位でシードロー圧縮処理を順次行う。この処理手順を図８の参照により説明する。まず、ライン１に着目し、参照ラインとして仮想的に白データのみから構成されるライン０（図８の８０７）を想定し、この仮想的なライン０と、着目しているライン１との差分情報を符号化していく。斜線部８０１、斜線部８０３は白データ部ではなく、図形オブジェクトデータが存在するので、参照ラインに対して処理対象ラインのデータ８０１、８０３で置き換える。８０２は白データであり、仮想的な参照ラインであるライン０との差分はないため、この部分のデータは圧縮データには入らず、デコード時に参照ラインからコピーされることになる。
【０００８】
次に、ライン２に着目し、ライン１を参照ラインとしてシードロー圧縮を行う。ライン２はライン１と同じラインデータであるので、差分情報は無く圧縮データは生成されず、圧縮データ長が０の圧縮コードが生成される。ライン２からライン７までは同じラインデータの繰り返しなので、同様な圧縮コードが生成される。
【０００９】
次にライン８に着目し、ライン７を参照ラインとして圧縮を行う。ライン８は斜線部８０４の部分がライン７との差分となるので、この部分の差分情報が圧縮コード化される。
【００１０】
ライン９、１０はライン８の繰り返しであるため圧縮データ長が０の圧縮コードが生成されることになる。
【００１１】
次にライン１１に着目し、圧縮を行う。ライン１１はライン１０を参照ラインとして用い、以下同じラインデータが続くライン１２〜１６は圧縮データ長が０の圧縮コードが生成される。ホストコンピュータはこのようにしてラインデータを１ラインずつ処理し、１ラインの圧縮データの最後に終端コードを付加する。そして、ホストコンピュータは、図７の矩形領域７０４のデータを１６ラインに分割してシードロー圧縮したデータをプリンタへ送信する。
【００１２】
シードロー圧縮のように前ラインとの差分情報を符号化する圧縮方式では、同じデータのラインが繰り返される場合は、処理対象ラインが前ラインと同じであることを示せば良い。例えば、処理対象ラインが前ラインと同じであることを示すコマンドや符号情報を圧縮データの先頭に付加しておくような方法がある。このように圧縮データを構成することで、同じラインデータが繰り返される画像データを効率良く圧縮することが可能である。
【００１３】
従来例として、同じラインがｎ行繰り返される場合に、拡張コマンドを定義して、符号化時にｎ行繰り返しコマンドを圧縮データの先頭に付加し、デコード時に圧縮データの先頭に付加されている拡張コマンドを解読して、同じ行のデータはデコード処理ではなく、コピー処理を行うようにした例がある（例えば、特許文献１参照）。この例として、図９に圧縮データの例を示す。ライン単位のデータの先頭にＣＮＴ部９０１を配置し、次に圧縮データ部９０２が配置されている。ＣＮＴ部９０１にはライン１の圧縮データ部９０２のデータ数（カウント値）が収められている。圧縮データ部の先頭にＣＭＤ（コマンド）があり、このコマンドを拡張する拡張コマンドを定義し、いくつかの拡張コマンドの中に同じラインをｎ行繰り返すｎ行繰り返しコマンドが設定される。図８で示したラインデータを例とすると、ライン２の先頭のＣＭＤ（コマンド）におけるｎ行繰り返しコマンドとして、ライン２からライン７までの６行分が繰り返される「６」が指定され、次にライン８のＣＮＴ部と圧縮データ部が続く構造となる。
【００１４】
また、各ラインの圧縮データの先頭に圧縮データ長を付加し、特にコマンドを定義しないよなデータ構造も考えられる。図１０に圧縮データ例を示す。前述の例と同様にラインの先頭にＣＮＴ部１００１を配置し、次に圧縮データ部１００２が配置されている。ＣＮＴ部１００１にはライン１の圧縮データ部１００２のデータ数（カウント値）が収められている。続くＣＮＴ部１００３はライン２のデータ数（カウント値）が収められている。図８のラインデータをシードロー圧縮した場合を例にとると、ライン２からライン７まではライン１と同じデータであるので圧縮データはなく、カウント値「０」のＣＮＴ部が続くことになる。ＣＮＴ部１００４はライン３のもので、その後に図示しないカウント地「０」のＣＮＴ部が続き、ＣＮＴ部１００５はライン８の圧縮データ長が格納されている。
【００１５】
プリンタは、受け取った印刷データから通信プロトコル処理後、図９や図１０に示した圧縮データを取り出し、圧縮データに応じたデコード処理を行う。シードロー圧縮データの場合はシードローデコード処理を、その他の圧縮方式で圧縮されたデータの場合は対応したデコード処理を行う。図８のデータをシードロー圧縮したデータをデコードする場合、ライン１の圧縮データ９０２をＣＮＴ部９０１の長さ分メモリから読み出し、同時に参照ラインデータとなる前ラインのデータもメモリから読み出しながら、デコード処理を行い、デコードした結果のデコードデータをメモリへ書き出す。ただし、ライン１は矩形領域の先頭ラインなので参照ラインは白データで構成される仮想的なラインを用いてデコード処理が行われるが、他のラインは１ライン前のデコード結果を参照ラインとして用いる。
【００１６】
一方、プリンタのエンジン部分の印刷速度の向上、印刷解像度の向上およびホストコンピュータとプリンタ間の通信インタフェースの高速化によって、プリンタ内部で実行する処理は複雑化し、かつ高速な処理が求められている。このため、プリンタ内部のハードウェアを構成するＣＰＵ、メモリ、画像処理回路、インタフェース制御回路、プリンタエンジン制御回路もより一層の高速化が必要となってきている。これらのハードウェアブロックは各々がバスマスタとなってメモリへアクセスする頻度が増加する傾向にあり、メモリ周辺回路の高速化、メモリアクセスの効率化が高速処理を実現化するための重要な要因の一つとなってきている。また低コスト化の要求も強くなってきており、インタフェース制御系、画像処理系、プリンタエンジン制御系等で分離独立したメモリ回路を使用する構成からメモリデバイス数を減らして全ての制御系が１つのメモリ回路を使用する構成をとる傾向にあり、各処理系からメモリへのアクセスが集中化する方向にある。このように、コスト面からもメモリ周辺回路の高速化、メモリアクセスの効率化が求められている。
【００１７】
また、圧縮されたデータを復号化し、転送する際の処理時間を短縮するため、ライン間の関連性を記憶し、直前のラインと同一のラインの復号化、メモリへの画像データ出力を省略するようにした例がある（例えば、特許文献２を参照）。
【特許文献１】特開平０８−３００７４４号公報
【特許文献２】特開平２００２−１９８８２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来例におけるデータ圧縮方法によって圧縮されたデータを復号化する時、同一のラインが続く場合のデコード処理においては同一ラインのデコード処理は省略されるが、デコードされたデータをコピーする処理は発生していた。ここで、シードローデコード処理の流れを図１２のフローチャートを参照して説明する。図１０に示した圧縮されたデータをデコードする時、ＣＮＴ部１００１のカウント値から処理対象ラインが前ラインと同一かどうかを判断する（Ｓ１００１）。カウント値が「０」でなければ（コピー動作でなければ）（Ｓ１００１−ＮＯ）、処理をステップＳ１００２に進め、デコード処理を開始する。まず、圧縮データの読み込み（Ｓ１００２）、参照ラインデータの読み込み（Ｓ１００３）が行われ、デコード処理（Ｓ１００４）が行われる。デコードされたデータはメモリへ書き出され（Ｓ１００５）、これら一連の処理（Ｓ１００２〜Ｓ１００５）が１ラインの圧縮データのデコードが終わるまで実行される。
【００１９】
カウント値が「０」であれば（Ｓ１００１−ＹＥＳ）、前ラインのコピー処理と判断され、処理がステップＳ１００６に進められ、前ラインのコピー処理が行われる。前ラインのデータを読み込み（Ｓ１００６）、処理対象ラインの書き込みアドレスへデータを書き出す（Ｓ１００７）。これら一連の処理（Ｓ１００６とＳ１００７）が１ラインのデータ分実行される。
【００２０】
また、特許文献１に示された拡張コマンドによって、ｎ行コピーが指定された場合は、図１３に示す処理フローとなる。例えば、図９のＣＭＤ（コマンド）を解釈し、ｎ行コピーコマンドでなければ（Ｓ２００１−ＮＯ）、処理がステップＳ２００２に進められ、デコード処理を開始し、圧縮データの読み込み（Ｓ２００２）が行われ、デコード処理（Ｓ２００３）が行われる。デコードされたデータはメモリへ書き出され（Ｓ２００４）、これら一連の処理（Ｓ２００２〜Ｓ２００４）が１ラインの圧縮データのデコードが終わるまで実行される。ここでは特に圧縮方法を想定しない場合を記載しているが、シードローデコードの場合は図１２と同様のデコード処理となる。
【００２１】
ｎ行コピーコマンドの場合は（Ｓ２００１―ＹＥＳ）、処理がステップＳ２００５に進められ、前ラインのデータをｎ行コピーする処理が行われる。前ラインのデータを読み込み（Ｓ２００５）、処理対象ラインの書き込みアドレスへデータを書き出す（Ｓ２００６）。これら一連の処理（Ｓ２００５とＳ２００６）が１ラインのデータ分実行され、ｎ行コピー終了かどうかを判定し（Ｓ２００７）、ｎ行コピーが終了するまでラインコピー動作を繰り返す。
【００２２】
上述した従来例によると、同一ラインが連続する場合はデコード処理を行わないので、デコード処理に要する処理時間の省略によってデコーダ回路として高速化できるが、コピー処理のためのリードとライトのメモリアクセスは必要である。背景技術でも示したように、さらなる処理の高速化のためにはメモリアクセスの効率化のための改善が必要である。
【００２３】
特許文献２では、前ラインと同一のデータを持つラインデータはメモリへ書き出さずに、各ラインデータの属性を示す属性情報に前ラインであることを示すマークを付け、ラインデータを読み込む際には、まずライン属性情報を参照し、マーク付きのラインであることが判明した場合はメモリ読み出し手段が読み出しアクセスを行うアドレスを切替え、メモリ上に存在するラインデータを読み出すように構成する内容が開示されているが、この場合、ラインデータの属性を管理し、かつラインデータの読み出しの際にアドレスを切り替える等の制御機構が必要で実現のためには複雑なハードウェアを必要としていた。
【００２４】
本発明は上記の従来例に鑑みてなされたものであり、同一のラインデータが複数行連続する場合であっても、コピー動作時におけるメモリへのリードアクセス数を低減することにより、高速な復号処理を可能にする復号技術を提供することを目的とする。
【課題を解決するための手段】
【００２５】
上記目的を達成するべく、本発明にかかるデータ復号化装置は、主として以下の構成を備えることを特徴とする。
【００２６】
すなわち、ライン単位にメモリ上に格納されている、圧縮データを当該ライン単位に連続して読み出し、復号手段により復号化するデータ復号化装置は、
前記ライン単位の処理を指定するコマンドデータを、連続した複数ライン分、前記メモリから入力する入力手段と、
前記入力手段により入力された前記コマンドデータに基づいて、前記連続した複数ラインの処理の組み合わせを解釈する制御手段と、
前記制御手段の解釈に従い、前記ライン単位のデータの処理をコピーまたはデコードに処理を切り替える切り替え手段と、
前記切り替え手段により切り替えられた処理に応じて、前記メモリへの復号化データの書き込みを制御する出力制御手段と、
前記出力制御手段が前記メモリに書き込みした復号化データを格納するライトバッファ手段と、を備え、
前記出力制御手段は、前記制御手段の解釈により、前記ライン単位のデータのコピー処理が連続する場合、前記ライトバッファ手段に格納されている前記復号化データを前記メモリに書き込む
ことを特徴とする。
【発明の効果】
【００２７】
本発明によれば、デコーダブロックは、チェーンＤＭＡ動作時に、次ラインのコマンドを先読みし、処理対象ラインのコマンドと組み合わせることにより、参照ラインのコピー処理方法を制御して、処理対象ラインのデータを代用し、ライトバッファメモリに格納されている復号化データをメモリに書き込むことで、従来必要だったメモリからの参照ラインデータのリードアクセスを１ライン分することができ、復号処理の高速化が可能になる。
【発明を実施するための最良の形態】
【００２８】
[第１実施形態]
以下、添付図面を参照して本発明の第１実施形態を説明する。図５は本発明にかかるデータ復号化装置（以下、単に「復号装置」ともいう）を実装可能なプリンタシステムの概略を示すブロック図である。５０１がプリンタ本体（記録装置）であり、ホストＰＣ５０４と接続されている。ホストＰＣ５０４とはネットワーク５０５（有線ＬＡＮ、無線ＬＡＮ）やＵＳＢ、ＩＥＥＥ１３９４等を介して接続される。プリンタ５０１はコントローラ５０２とプリンタエンジン５０３から構成されている。コントローラ５０２はホストＰＣ５０４とのインタフェース機能を持ち、ホストＰＣ（情報処理装置）５０４から送信された印刷データを解釈し、圧縮された印刷データをデコードし、画像処理部により画像処理を行い、２値データへ変換して、記録制御部として機能するプリンタエンジン５０３へ渡す。プリンタエンジン５０３はコントローラ５０２から２値化された印刷データを受け取り、インクジェットプリンタの場合、プリントヘッドのスキャン制御、インク吐出制御、記録媒体の搬送制御等を行い、印刷を行う。
【００２９】
情報処理装置から送信され、ライン単位にメモリ上に格納されている、圧縮された印刷データをライン単位に連続して読み出し、復号し、当該復号された印刷データに基づいて画像処理を行う記録装置は、ライン単位にメモリ上に格納されている、圧縮された印刷データをライン単位に連続して読み出し、復号部（例えば、図２に示すデコーダブロック２０５）により復号化するデータ復号化装置と、データ復号化装置により復号化された印刷データに基づいて画像処理を行う画像処理部と、画像処理の結果に従い、記録媒体上への記録を制御する記録制御部とを備える。
【００３０】
＜装置本体の概略説明＞
図１４は、記録装置の好適な実施の形態であるインクジェットプリンタＩＪＲＡの構成の概要を示す外観斜視図である。図１４において、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギア５００９〜５０１１を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合するキャリッジＨＣはピン（不図示）を有し、ガイドレール５００３に支持されて矢印ａ，ｂ方向を往復移動する。キャリッジＨＣには、記録ヘッドＩＪＨとインクタンクＩＴとを内蔵した一体型インクジェットカートリッジＩＪＣが搭載されている。５００２は紙押え板であり、キャリッジＨＣの移動方向に亙って記録用紙Ｐをプラテン５０００に対して押圧する。
【００３１】
５００７，５００８はフォトカプラで、キャリッジのレバー５００６のこの域での存在を確認して、モータ５０１３の回転方向の切り替え等を行うためのホームポジション検知器である。５０１６は記録ヘッドＩＪＨの前面をキャップするキャップ部材５０２２を支持する部材で、５０１５はこのキャップ内を吸引する吸引器で、キャップ内開口５０２３を介して記録ヘッドの吸引回復を行う。５０１７はクリーニングブレードで、５０１９はこのブレードを前後方向に移動可能にする部材であり、本体支持板５０１８にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。又、５０２１は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム５０２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達機構で移動制御される。
【００３２】
これらのキャッピング、クリーニング、吸引回復は、キャリッジがホームポジション側の領域に来た時にリードスクリュー５００５の作用によってそれらの対応位置で所望の処理が行えるように構成されているが、周知のタイミングで所望の動作を行うようにすれば、本例にはいずれも適用できる。
【００３３】
＜制御構成の説明＞
次に、上述した装置の記録制御を実行するための制御構成について説明する。
【００３４】
図１５はインクジェットプリンタＩＪＲＡの制御回路の構成を示すブロック図である。制御回路を示す同図において、１７００は記録信号を入力するインタフェース、１７０１はＭＰＵ、１７０２はＭＰＵ１７０１が実行する制御プログラムを格納するＲＯＭ、１７０３は各種データ（上記記録信号やヘッドに供給される記録データ等）を保存しておくＤＲＡＭである。１７０４は記録ヘッド１７０８に対する記録データの供給制御を行うゲートアレイ（Ｇ．Ａ．）であり、インタフェース１７００、ＭＰＵ１７０１、ＲＡＭ１７０３間のデータ転送制御も行う。１７１０は記録ヘッド１７０８を搬送するためのキャリアモータ、１７０９は記録紙搬送のための搬送モータである。１７０５は記録ヘッドを駆動するヘッドドライバ、１７０６，１７０７はそれぞれ搬送モータ１７０９、キャリアモータ１７１０を駆動するためのモータドライバである。
【００３５】
上記制御構成の動作を説明すると、インタフェース１７００に記録信号が入るとゲートアレイ１７０４とＭＰＵ１７０１との間で記録信号がプリント用の記録データに変換される。そして、モータドライバ１７０６、１７０７が駆動されると共に、ヘッドドライバ１７０５に送られた記録データに従って記録ヘッドが駆動され、記録が行われる。
なお、上述のように、インクタンクＩＴと記録ヘッドＩＪＨとは一体的に形成されて交換可能なインクカートリッジＩＪＣを構成しても良いが、これらインクタンクＩＴと記録ヘッドＩＪＨとを分離可能に構成して、インクがなくなったときにインクタンクＩＴだけを交換できるようにしても良い。
【００３６】
図６は図５のコントローラ５０２の構成を示すブロック図である。コントローラ５０２はＵＳＢインタフェース６１４を介してホストＰＣ６１５と、ＩＥＥＥ１３９４インタフェース６１７を介してホストＰＣ６１８と、またＬＡＮコントローラ６１９を介して複数のホストＰＣと接続され、さらにエンジンインタフェース６１２を介してプリンタエンジン５０３と接続される。
【００３７】
コントローラ５０２はコントローラチップ６０２とＲＯＭ６０５、ＲＡＭ６０７、操作パネル６０９、ＩＥＥＥ１３９４インタフェース６１７、ＬＡＮコントローラ６１９、拡張インタフェース６２０から構成され、コントローラチップ６０２とＬＡＮコントローラ６１９、ＩＥＥＥ１３９４インタフェース６１７、拡張インタフェース６２０は拡張バス６５０を介して接続される。
【００３８】
コントローラチップ６０２はいわゆるＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  a  Ｃｈｉｐ）であり、ＣＰＵ６０３、ＲＯＭコントローラ６０４、ＲＡＭコントローラ６０６、操作パネルインタフェース６０８、バスインタフェース６１６、デコーダ６１０、画像データ処理ブロック６１１、ＵＳＢインタフェース６１４、エンジンインタフェース６１２から構成されるＬＳＩであり、各ブロックは内部バス６４０によって相互に接続されている。
【００３９】
ＣＰＵ６０３はＲＯＭ６０５に格納されたプログラムに従って動作し、各種インタフェースを通じてホストＰＣ６１５、６１８、プリンタエンジン５０３との通信や各部の制御を行う。ＲＯＭコントローラ６０４は接続されたＲＯＭ６０５とのインタフェース機能を備える。ＲＡＭコントローラ６０６は接続されたＲＡＭ６０７とのインタフェースとして機能し、ＲＡＭ６０７へのアクセスタイミングを制御しながら、ＣＰＵ６０３や他のブロックからの要求に従い、ＲＡＭ６０７へのデータ入出力を行う。
【００４０】
操作パネルインタフェース６０８は、操作キーやＬＥＤ、ＬＣＤを実装した操作パネル６０９とのインタフェースとして機能し、ユーザからの操作キー入力をＣＰＵ６０３へ伝え、ＣＰＵ６０３からの命令によってＬＥＤ、ＬＣＤの表示が制御される。バスインタフェース６１６は拡張バス６５０を制御するブロックであり、拡張バス６５０に接続された各コントローラとの通信制御を行う。デコーダ６１０はホストＰＣ６１５、６１８から送信される圧縮符号化された印刷データをＲＡＭ６０７から読み出し、デコードしてＲＡＭ６０７へ書き戻す。画像データ処理ブロック６１１は、デコーダによってデコードされたデータをＲＡＭ６０７から読み出し、各インク色のドットデータに変換し、ＲＡＭ６０７へ書き戻すブロックである。エンジンインタフェース６１２は、各インク色のドットデータをＲＡＭ６０７から読み出し、プリンタエンジン５０３へ送信する制御を行う。
【００４１】
ホストＰＣ６１５、６１８から送信される印刷データは、コントローラの各インタフェースから入力される。ＩＥＥＥ１３９４インタフェース６１７あるいはＬＡＮコントローラ６１９を経由して入力された印刷データは拡張バス６５０を通じてコントローラチップ６０２のバスインタフェース６１６を経由し、ＲＡＭコントローラ６０６の制御に従って、ＲＡＭ６０７へ書き込まれる。ＵＳＢインタフェース６１４はコントローラチップ６０２に内蔵されており、ホストＰＣ６１５から入力された印刷データは内部バス６４０を通じてＲＡＭコントローラ６０６の制御に従って、ＲＡＭ６０７へ書き込まれる。
【００４２】
ＲＡＭ６０７へ書き込まれた印刷データは、ＣＰＵ６０３によって通信プロトコルが解釈された後、デコーダ６１０へ渡され、デコードされる。デコードされた印刷データは画像データ処理ブロックによって各インク色のドットデータに変換された後、エンジンインタフェース６１２を通じてプリンタエンジン６１３へ送信され、記録媒体に印刷される。
【００４３】
図２は、図６に示すデコーダ６１０の内部構成を示すブロック図である。デコーダ６１０は、データ読み出し制御部２０２、データ書き込み制御部２０３、各種動作設定レジスタを備え、デコーダ６１０内部の各ブロックを制御する制御部２０４、デコーダブロック２０５、データ読み出し制御部から出力されるデータパスとデコーダブロック２０５から出力されるデータパスとを切り替えるＭＵＸ２０６、書き込み制御レジスタ２０７、ライトバッファメモリ２０８から構成されている。
【００４４】
データ読み出し制御部２０２は内部バス６４０とのインタフェースとして機能し、ＲＡＭ６０７等のメモリからデータを読み込み、後段のデータブロック２０５へ出力し、レジスタ設定用データおよび圧縮データのコマンドは制御部２０４へ渡す。制御部２０４はＣＰＵ６０３から設定されるＤＭＡソースアドレス、ＤＭＡデスティネーションアドレス、読み込みデータ長、動作モードなどの各種設定情報であるコマンドを図示しない内部レジスタに保持する。
【００４５】
シードロー圧縮法によって圧縮されたデータをデコードする場合に対応し、ＤＭＡソースアドレスレジスタには圧縮データの先頭アドレスと参照ラインデータの先頭アドレスを個別に設定できるように構成されている。
【００４６】
ＤＭＡデスティネーションアドレスレジスタには、デコードしたデータを書き出す領域の先頭アドレスを設定する。
【００４７】
読み込みデータ長レジスタは圧縮データ長と参照ラインデータ長を個別に設定するレジスタを備えている。また、これらのレジスタへデータをセットする方法はＣＰＵ６０３から書き込む以外にＲＡＭ６０７の所定の領域にＣＰＵ６０３がレジスタへの設定値を書き込んでおき、デコーダ６１０がバスマスタとなってＲＡＭ６０７から設定値を読み出し、前述の内部レジスタに設定することも可能である。
【００４８】
デコーダブロック６０５は、ＣＰＵ６０３からＲＡＭ６０７上のコマンドを読み込むよう設定された後に起動されると、バスマスタとしてＲＡＭ６０７上のコマンドを読み込み、内部レジスタへセットし、セットされたコマンドに従ってデコード処理を行う。本実施形態では、基本的にはＲＡＭ６０７上のコマンドを２つ読み込んでから、デコード動作を開始する。２つ目のコマンドを読み込むことを、以下、「コマンドの先読み」と呼ぶ。デコーダブロック６０５が読み込んだ２つのコマンドの組み合わせによって、参照ラインデータのコピー処理の方法が変わるよう構成されている。デコーダブロック６０５は、２つのコマンドを読み込む際に、次のラインのコマンドが書かれているアドレスも同時に読み込んでおき、１ラインのデコード処理が終了すると、次のラインのコマンドをＲＡＭ６０７から読み込んでレジスタへセットし、セットされたコマンドに従ってデコード処理を行い、最終ラインの処理を行うまでこれらの処理を連鎖状に繰り返す。
【００４９】
参照ラインのコピーコマンドが２つのコマンド内に含まれている場合は、コマンド２つ分（２ライン分）の処理を行った後、次の２つのコマンドを読み込んで動作する場合もある（詳しくは後述する）。このようにＲＡＭ６０７からレジスタ設定値を読み込んでデコード動作を実行し、次のライン用のレジスタ設定値を読み込みデコード動作を行うというような、ＣＰＵ６０３によるライン毎のレジスタ設定処理を必要とせず、連続的にメモリにアクセスして（以下、「チェーンＤＭＡ動作」という。）、デコード処理を行うことが可能である。
【００５０】
デコーダブロック２０５はデータ読み出し制御部２０２から渡される圧縮データをデコードし、ＭＵＸ２０６を経て、デコードされたデータがデータ書き込み制御部２０３へ渡される。シードロー圧縮されたデータをデコードする際は、圧縮データと参照ラインデータとを受け取り、デコーダブロック２０５はデコード処理を行う。ＭＵＸ２０６は、制御部２０４の制御によって、データ読み出し制御部２０２からの出力と、デコーダブロック２０５からの出力データとを切り替えて、データ書き込み制御部２０３へ出力する。デコーダブロック２０５によってデコード処理が行われる際は、デコーダブロック２０５からの出力データが選択され、同一ラインが続く場合のコピー処理時はデータ読み出し制御部２０２からの出力が選択される。
【００５１】
制御部２０４は、図１０に示した圧縮データのＣＮＴ部（コマンド部）を解釈し、デコーダ６１０を構成する各種ブロックの制御を行う。制御部２０４は処理対象ラインの次ラインのコマンドを先読みし、図示しないコマンドレジスタに保持する。
【００５２】
データ書き込み制御部２０３は内部バス６４０に対するインタフェースとして機能し、ＲＡＭ６０７等のメモリへデータを書き込む。この際、データ書き込み制御部２０３は、書き込み制御レジスタ２０７を参照して動作する。また、データ書き込み制御部２０３は、ＭＵＸ２０６を経て受け取ったデータをライトバッファメモリ２０８へ書き込み、先読みしたコピーコマンドのデータ書き込み時の際、データ書き込み制御部２０３はライトバッファメモリ２０８からデータを読み出してメモリへ書き込む。
【００５３】
先読みしたコマンドが参照ラインのコピー時（ＣＮＴ部のカウント値が「０」）、制御部２０４は、書き込み制御レジスタ２０７に処理対象ラインデータの書き込みアドレスに加えて、次ラインの書き込みアドレスを指定する。データ書き込み制御部２０３は処理対象ラインの書き込みアドレスへデータを出力する際に、ライトバッファメモリ２０８にもデータを保持する。次に書き込み制御レジスタ２０７を参照して次ラインの書き込みアドレスへライトバッファメモリ２０８から読み出したデータを出力する。
【００５４】
ライン単位にメモリ上に格納されている、圧縮データをライン単位に連続して読み出し、復号部（例えば、図２のデコーダブロック）により復号化するデータ復号化装置は、ライン単位の処理を指定するコマンドデータを、連続した複数ライン分、メモリから入力するデータ読み出し制御部２０２と、入力されたコマンドデータに基づいて、連続した複数ラインの処理の組み合わせ（（コピー、コピー）、（コピー、デコード）、（デコード、デコード）等）を解釈する制御部２０４と、制御部２０４の解釈に従い、ライン単位のデータの処理をコピーまたはデコードに処理を切り替える切り替え部（例えば、図２のＭＵＸ）と、切り替え部により切り替えられた処理に応じて、メモリへの復号化データの書き込みを制御するデータ書き込み制御部２０３と、データ書き込み制御部２０３がメモリに書き込みした復号化データを格納するライトバッファメモリとを備え、データ書き込み制御部２０３は、制御部の解釈により、ライン単位のデータのコピー処理が連続する場合、ライトバッファメモリに格納されている復号化データをメモリに書き込む。
【００５５】
この構成により、デコーダブロックは、チェーンＤＭＡ動作時に、次ラインのコマンドを先読みし、処理対象ラインのコマンドと組み合わせることにより、参照ラインのコピー処理方法を制御して、処理対象ラインのデータを代用し、ライトバッファメモリに格納されている復号化データをメモリに書き込むことで、従来必要だったメモリからの参照ラインデータのリードアクセスを１ライン分削減することが可能になる。
【００５６】
次に本実施形態にかかるデータ復号化装置における処理の流れを図１のフローチャートを参照して説明する。
【００５７】
まず、データ読み出し制御部２０２は、ＲＡＭ６０７より、処理対象ラインのコマンド（以降、「コマンド１」とする）を読み込み（Ｓ１０１）、次に、次ラインのコマンド（以降、「コマンド２」とする）を読み込む（Ｓ１０２）。
【００５８】
制御部２０４は、読み込まれたコマンド１とコマンド２が、それぞれコピーコマンドであるかを判定し（Ｓ１０３、Ｓ１０４、Ｓ１１３）、（コマンド１、コマンド２）の組み合わせが（コピー、コピー）の時は、処理をステップＳ１０５に進め、（コマンド１、コマンド２）の組み合わせが（コピー、デコード）の時は、処理をステップＳ１０９に進め、そして、（コマンド１、コマンド２）の組み合わせが（デコード、コピー）の時はステップＳ１１４、（デコード、デコード）の時はステップＳ１１９へ処理を進める。
【００５９】
なお、コマンド１が最終ラインのコマンドの場合、次ラインに対応するコマンド２は存在しないので、存在しないコマンド２はコピー以外のコマンドであるデコードコマンドへ分類する。
【００６０】
（コピー、コピー）の処理
第一のラインのコマンドデータ（コマンド１）がコピー処理の場合、制御部２０４は、ＭＵＸ２０６を制御して、メモリ（ＲＡＭ６０７）より入力した前ラインの復号化データを、書き込み制御部２０３に受け渡し、書き込み制御部２０３は、前ラインの復号化データをＲＡＭ６０７に書き込みし、そして、その復号化データをライトバッファメモリ２０８に格納する。
【００６１】
また、第一のラインに連続する第二のラインのコマンドデータ（コマンド２）がコピー処理の場合、書き込み制御部２０３は、ライトバッファメモリ２０８に格納されている復号化データを読み出し、その復号化データをＲＡＭ６０７に書き込みする。
【００６２】
これにより、ライトバッファメモリ２０８に格納されたデータは、後続の第２ラインのコピー処理において、ＲＡＭ６０７からのデータの読み出しに代わり、代用されることで、ＲＡＭ６０７へのアクセス回数を低減することが可能になる。具体的には以下の処理が実行されることになる。
【００６３】
（コマンド１、２）の組み合わせが（コピー、コピー）の時、コマンド１で指定されたコピー処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は、ＲＡＭ６０７より、前ライン（前ラインは既にデコードされている）のデータリードを行う（Ｓ１０５）。ただし、ここでは１ライン分のデータを一気にリードするのではなく、一部分をリードすることを想定している。もちろん、１ライン分のデータをメモリから読み込み保持するラインバッファをデコーダ６１０内に備えることにより、１ライン分のデータリードを一括して行うことも可能である。リードされたデータは制御部２０４の制御によって、データ読み出し制御部２０２からＭＵＸ２０６を経由してデータ書き込み制御部２０３へ渡される。
【００６４】
ここではコピー処理の実行なので、データを復号するためのデコーダブロック２０５は使用されない。データ書き込み制御部２０３は、データ読み出し制御部２０２によりリードされたデータを受け取り、書き込み制御レジスタ２０７によって指定されるＲＡＭ６０７の書き込みアドレスに従いデータを書き込む。また、データ書き込み制御部２０３は、ライトバッファメモリ２０８に対しても同じデータの書き込み処理を行う。データ書き込み制御部２０３によるＲＡＭ６０７とライトバッファメモリ２０８へのデータライト処理がＳ１０６で実行される。
【００６５】
次に、制御部２０４は、先読みしたコマンド２で指定されたコピー処理を行う。データ書き込み制御部２０３は、ライトバッファメモリ２０８からデータを読み出し、書き込み制御レジスタ２０７によって指定される書き込みアドレスに従ってデータの書き込みを行う（Ｓ１０７）。このようにステップＳ１０７ではライトバッファメモリ２０８に保持されていたデータを使用するので、従来、ライン毎のコピー時に必要であったＲＡＭ６０７へのリードアクセスを削減できる。
【００６６】
データ書き込み制御部２０３が、ライトバッファメモリ２０８に保持されているデータを書き込みした後、１ライン分のデータコピーがまだ残っている場合は、上述のステップＳ１０５からＳ１０７までの処理を繰り返し実行し（Ｓ１０５からＳ１０７の繰り返し処理は図示していない）、１ライン分のデータのコピーが終了するとステップＳ１０８へ進む。ステップＳ１０８へ処理が進められる時点で、コマンド１とコマンド２による２ライン分のデータのコピーが終了したことになる。
【００６７】
ステップＳ１０８ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ１０８−ＮＯ）、処理をステップＳ１０１へ戻し、全ラインの処理が終了した場合は（Ｓ１０８−ＹＥＳ）、本処理を終了する。
【００６８】
（コマンド１、２）の組み合わせが（コピー、デコード）の場合は、処理をステップＳ１０９に進め、データ読み出し制御部２０２は、前ラインのデータを読み込み（Ｓ１０９）、読み込んだデータを書き込みアドレスに従いライト（Ｓ１１０）する。ステップＳ１１０のライト処理は、メモリから読み出したデータをライトバッファメモリ２０８へ書き込む制御は行わず、ＲＡＭ６７へ書き込むだけである。
【００６９】
ステップＳ１０９とステップＳ１１０の一連の処理を繰り返し（Ｓ１０９と、１１０の繰り返し処理は図示していない）、１ライン分のデータのコピーが終わると処理をステップＳ１１１へ進める。
【００７０】
ステップＳ１１１において、制御部２０４は、内部のコマンドレジスタに格納されているコマンド２をコマンド１へシフトする。これはステップＳ１０９、Ｓ１１０で実行されたのはコマンド１のみなので、未実行のコマンド２をコマンド１用レジスタへコピーする処理である。
【００７１】
ステップＳ１１２ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ１１２−ＮＯ）、処理をステップＳ１０２へ戻し、次のコマンドを読み込み、コマンド２として制御部２０４内のコマンドレジスタへ格納し（Ｓ１０２）、ステップＳ１０３の処理へ移行する（この状態で、ステップＳ１１１でシフトしたコマンド１と新たに読み込んだコマンド２が揃うことになる）。全ラインの処理を終了した場合は（Ｓ１１２−ＹＥＳ）、本処理を終了する。
【００７２】
（デコード、コピー）の処理
コマンドデータ（コマンド１）がデコード処理の場合、最初に制御部２０４は、ＭＵＸ２０６を制御して、デコーダブロック２０５にＲＡＭ６０７からライン単位に読み出した圧縮データを復号させる。ここで復号されたデータは後続のラインのコピー処理において、利用することが可能である。
【００７３】
具体的には以下の処理が実行されることになる。
【００７４】
（コマンド１、２）の組み合わせが（デコード、コピー）の場合は（Ｓ１１３−ＹＥＳ）、処理をステップＳ１１４に進め、コマンド１で指定されたデコード処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は圧縮データと参照ラインデータを読み込む（Ｓ１１４）（図中のステップＳ１１４には、「圧縮データリード」と表記している。）。データ読み出し制御部２０２によりリードされた圧縮データ、参照ラインデータは、制御部２０４の制御によって、データ読み出し制御部２０２からデコーダブロック２０５へ渡される。デコーダブロック２０５は、データ読み出し制御部２０２から受け取った圧縮データと参照ラインデータとを用いてシードローデコードを行い、デコードデータを出力する（Ｓ１１５）。
ＭＵＸ２０６は制御部２０４によって、デコーダブロック２０５とデータ書き込み制御部２０３とを接続する。データ書き込み制御部２０３はデコードされたデータを受け取り、書き込み制御レジスタ２０７によって指定されるＲＡＭ６０７の書き込みアドレスに従い、デコードされたデータの書き込みを行う。また、データ書き込み制御部２０３は、ライトバッファメモリ２０８に対しても同じデータの書き込み処理を行う。データ書き込み制御部２０３により、ＲＡＭ６０７とライトバッファメモリ２０８へのデータ書き込み処理がステップＳ１１６で実行される。
【００７５】
次に、制御部２０４は先読みしたコマンド２で指定されたコピー処理を行う。制御部２０４は、データ書き込み制御部２０３を制御し、ライトバッファメモリ２０８からデータを読み出し、書き込み制御レジスタ２０７によって指定される書き込みアドレスに従い書き込み処理を行う（Ｓ１１７）。このようにステップＳ１１７では、ライトバッファメモリ２０８に保持されていたデータを使用するので、従来、ライン毎のコピー時に必要であったＲＡＭ６０７へのリードアクセスを削減できる（ステップＳ１１６、Ｓ１１７の処理は、先に説明したステップＳ１０６、Ｓ１０７と同様の処理を行うものとする）。
【００７６】
ライトバッファメモリ２０８に保持されているデータをライトした後、１ライン分のデコード処理がまだ残っている場合はＳ１１４からＳ１１７までの処理を繰り返し実行し（Ｓ１１４からＳ１１７の繰り返し処理は図示していない）、コマンド１による１ライン分のデコード処理とコマンド２による参照ラインコピーが終了するとステップＳ１１８へ処理を進める。ステップＳ１１８へ処理を進める時点で、上述のようにコマンド１とコマンド２の２ライン分のコマンドが終了したことになる。
【００７７】
ステップＳ１１８ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ１１８−ＮＯ）、処理をステップＳ１０１に戻して上述の処理を再び繰り返す。一方、全ラインの処理を終了した場合は（Ｓ１１８−ＹＥＳ）、本処理を終了する。
【００７８】
（コマンド１、２）の組み合わせが（デコード、デコード）の場合は、処理をステップＳ１１９に進め、コマンド１で指定されたデコード処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は圧縮データと参照ラインデータを読み込む（Ｓ１１９）（図中のステップＳ１１９では、「圧縮データリード」と表記している）。リードされた圧縮データ、参照ラインデータは制御部２０４の制御によって、データ読み出し制御部２０２からデコーダブロック２０５へ渡される。デコーダブロック２０５はデータ読み出し制御部２０２から受け取った圧縮データと参照ラインデータを用いてシードローデコードを行い、デコードデータを出力する（Ｓ１２０）。ＭＵＸ２０６は制御部２０４によって、デコーダブロック２０５とデータ書き込み制御部２０３を接続する。データ書き込み制御部２０３はデコードされたデータを受け取り、書き込み制御レジスタ２０７によって指定されるＲＡＭ４０７の書き込みアドレスに従い、書き込み処理を行う。ここでは、ステップＳ１１６とは異なり、ライトバッファメモリ２０８に対しての書き込み処理は行わない（Ｓ１２１）。
【００７９】
１ライン分のデコード処理がまだ残っている場合はＳ１１９からＳ１２１までの処理を繰り返し実行し（Ｓ１１９からＳ１２１の繰り返し処理は図示していない）、コマンド１による１ライン分のデコード処理が終了するとステップＳ１２２へ処理を進める。
【００８０】
ステップＳ１２２では制御部２０４内のコマンドレジスタに格納されているコマンド２をコマンド１へシフトする。これはステップＳ１１９、Ｓ１２０、Ｓ１２１で実行された処理はコマンド１に対する処理なので、先読みされた未実行のコマンド２を処理するために、コマンド１用レジスタへコピーする処理である。
【００８１】
ステップＳ１２３ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ１２３−ＮＯ）、処理をステップＳ１０２に戻し、コマンド２として、制御部２０４内のコマンドレジスタへ格納し（Ｓ１０２）、ステップＳ１０３の処理へ移行する（この状態で、ステップＳ１２２によりシフトしたコマンド１と新たに読み込んだコマンド２が揃うことになる）。
【００８２】
一方、全ラインの処理を終了した場合は（Ｓ１２３−ＹＥＳ）、本処理を終了する。
【００８３】
以上説明したように本実施形態によれば、デコーダブロックは、チェーンＤＭＡ動作時に、次ラインのコマンドを先読みし、処理対象ラインのコマンドと組み合わせることにより、参照ラインのコピー処理方法を制御して、処理対象ラインのデータを代用し、ライトバッファメモリに格納されている復号化データをメモリに書き込むことで、従来必要だったメモリからの参照ラインデータのリードアクセスを１ライン分削減することができ、復号処理の高速化が可能になる。
【００８４】
[第２実施形態]
第１実施形態は、先読みによる２つのラインに関するコマンドを解析し、２つのコマンドの組み合わせによりコピー、デコードを実行する例を説明した。本実施形態では、拡張コマンドとしてｎ行（２以上の自然数）コピーに対応するコマンドを実装した例を説明する。
【００８５】
デコーダは第１実施形態と同様のブロック構成を有するものとする。図２のデータ読み出し制御２０２が２ライン分のコマンドを先読みし、そして、制御部２０４がコマンドを解析し、コピーコマンドの場合、デコーダ６１０内部の各ブロックの動作を制御する。ここで、書き込み制御ブロック２０７は複数ライン分の書き込みアドレスを保持するよう構成されているものとする。例えば、拡張コマンドであるｎ行コピーコマンドが最大３２行をコピーする場合、３２ライン分の書き込みアドレスを保持可能なように構成すれば良い。
【００８６】
コマンドデータがｎ行（２以上の自然数）のコピー処理の場合、制御部２０４は、切り替え部（ＭＵＸ２０６）を制御して、メモリ（ＲＡＭ６０７）より入力した前ラインの復号化データを、書き込み制御部２０３に受け渡し、書き込み制御部２０３は、前ラインの復号化データをＲＡＭ６０７に書き込みし、そして、これをライトバッファメモリ２０８に格納し、残りｎ−１行分の復号化データのコピーを、ライトバッファメモリ２０８に格納した復号化データを読み出して、ＲＡＭ６０７に書き込む。
【００８７】
これにより、ライトバッファメモリ２０８に格納されたデータは、ｎ行のコピー処理において、ＲＡＭ６０７からのデータの読み出しに代わり、代用されることで、ＲＡＭ６０７へのアクセス回数を低減することが可能になる。具体的には以下の処理が実行されることになる。
【００８８】
本実施形態にかかるデータ復号化装置の処理の流れを図３のフローチャートを参照して説明する。
【００８９】
まず、データ読み出し制御部２０２は、ＲＡＭ６０７より、処理対象ラインのコマンド（以降、「コマンド１」とする）を読み込み（Ｓ２０１）、次に、次ラインのコマンド（以降、「コマンド２」とする）を読み込む（Ｓ２０２）。制御部２０４は、読み込まれたコマンド１とコマンド２が、それぞれコピーコマンドであるか判定し（Ｓ２０３、Ｓ２１１）、（コマンド１、コマンド２）の組み合わせが（ｎ行コピー、ｎ行コピー）、または（ｎ行コピー、デコード）の時は処理をステップＳ２０５に進め、（コマンド１、コマンド２）の組み合わせが（デコード、ｎ行コピー）の時は、処理をステップＳ２１２に進め、（コマンド１、コマンド２）の組み合わせが（デコード、デコード）の時は、処理をステップＳ２２０へ進める。なお、コマンド１が最終ラインのコマンドの場合、次ラインに対応するコマンド２は存在しないので、存在しないコマンド２はコピー以外のコマンドであるデコードコマンドへ分類する。
【００９０】
（ｎ行コピー、ｎ行コピー）、または（ｎ行コピー、デコード）処理
（コマンド１、２）の組み合わせが（ｎ行コピー、ｎ行コピー）、または（ｎ行コピー、デコード）の時、コマンド１で指定されたｎ行コピー処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は、ＲＡＭ６０７より、前ラインのデータリードを行う（Ｓ２０５）。リードされたデータは制御部２０４の制御によって、データ読み出し制御部２０２からＭＵＸ２０６を経由してデータ書き込み制御部２０３へ渡される。コピー処理のためデコーダブロック２０５は使用されない。
【００９１】
データ書き込み制御部２０３は、リードされたデータを受け取り、書き込み制御レジスタ２０７によって指定される書き込みアドレスに従い、そのデータをＲＡＭ６０７にライトする。また、ライトバッファメモリ２０８に対しても同じデータの書き込み処理を行う。データ書き込み制御部２０３によるＲＡＭ６０７とライトバッファメモリ２０８へのデータライト処理がＳ２０６で実行される。
【００９２】
次に、制御部２０４の制御の下、データ書き込み制御部２０３は、コマンド１で指定されたｎ行コピー処理の２ライン目のデータコピーを行うため、次のラインの書きこみアドレスに対してデータをライトする。制御部２０４は、データ書き込み制御部２０３を制御し、ライトバッファメモリ２０８からデータを読み出し、書き込み制御レジスタ２０７によって指定される書き込みアドレスに従い、ＲＡＭ６０７にデータの書き込みを行う（Ｓ２０７）。以降、書き込みアドレスを、次ラインへと、書き込みを行うラインを変更しながらステップＳ２０７と同様の処理を行う。すなわち、ライトバッファメモリ２０８からデータを読み出し、ＲＡＭ６０７への書き込み処理を繰り返し行い、ステップＳ２０８で、ｎ行コピーコマンドの最後のラインに関し、データの書き込み処理を行う。このようにステップＳ２０７からＳ２０８の各々のラインにおけるデータ書き込み処理で（ｎ行のコピーの場合、ライトバッファメモリ２０８に格納されているデータをｎ−１回、読み出してＲＡＭ６０７に書き込む処理）において、ライトバッファメモリ２０８に保持されているデータを使用するので、従来必要であったＲＡＭ６０７へのリードアクセスを削減できる。
【００９３】
ステップＳ２０８でライトバッファメモリ２０８に保持されているデータを書き込みした後、１ライン分のデータコピーがまだ残っている場合はＳ２０５からＳ２０８までの処理を繰り返し実行し（Ｓ２０５からＳ２０８の繰り返し処理は図示していない）、コマンドで指定されたライン分のデータのコピーが終了すると処理をステップＳ２０９へ進める。ステップＳ２０９へ処理が進められる時点で、コマンド１で指定されたｎライン分のデータコピーが終了したことになる。
【００９４】
ステップＳ２０９において、制御部２０４は、内部のコマンドレジスタに格納されているコマンド２を処理の対象となるコマンド１として、内容をシフトする。これはステップＳ２０５からステップＳ２０８で実行されたのはコマンド１のみなので、未実行のコマンド２をコマンド１用レジスタへコピーする処理である。
【００９５】
ステップＳ２１０ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ２１０−ＮＯ）、処理をステップＳ２０２へ戻し、コマンド２を読み込み続く処理を実行する（この状態で、ステップＳ２０９によりシフトしたコマンド１と新たに読み込んだコマンド２が揃うことになる）。全ラインの処理を終了した場合は（Ｓ２１０−ＹＥＳ）、本処理を終了する。
【００９６】
（デコード、ｎ行コピー）処理
（コマンド１、２）の組み合わせが（デコード、ｎ行コピー）の場合は（Ｓ２１１−ＹＥＳ）、処理をステップＳ２１２に進め、コマンド１で指定されたデコード処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は圧縮データと参照ラインデータをＲＡＭ６０７より読み込む（Ｓ２１２）（図中のステップＳ２１２には、「圧縮データリード」と表記している。）。データ読み出し制御部２０２により読み出された圧縮データ、参照ラインデータは、制御部２０４の制御によって、データ読み出し制御部２０２からデコーダブロック２０５へ渡される。デコーダブロック２０５は、データ読み出し制御部２０２から受け取った圧縮データと参照ラインデータとを用いてシードローデコードを行い、デコードデータを出力する（Ｓ２１３）。ＭＵＸ２０６は制御部２０４の制御の下、デコーダブロック２０５とデータ書き込み制御部２０３とを接続する。
【００９７】
データ書き込み制御部２０３はデコードされたデータを受け取り、書き込み制御レジスタ２０７によって指定されるＲＡＭ６０７の書き込みアドレスに従い、デコードされたデータの書き込みを行う。また、データ書き込み制御部２０３は、ライトバッファメモリ２０８に対しても同じデータの書き込み処理を行う。データ書き込み制御部２０３により、ＲＡＭ６０７とライトバッファメモリ２０８へのデータ書き込み処理がステップＳ２１４で実行される。
【００９８】
次に、制御部２０４は先読みしたコマンド２で指定されたｎ行コピー処理を行う。制御部２０４は、データ書き込み制御部２０３を制御し、ライトバッファメモリ２０８からデータを読み出し、ｎ行コピー処理の１ライン目のデータコピーを行うため書き込み制御レジスタ２０７によって指定される次のラインの書き込みアドレスに従い、書き込み処理を行う（Ｓ２１５）。
【００９９】
次に、ｎ行コピー処理の２ライン目のデータコピーを行うため、制御部２０４は、データ書き込み制御部２０３を制御し、ライトバッファメモリ２０８からデータを読み出し、書き込み制御レジスタ２０７によって指定される書き込みアドレスに従い、２ライン目のデータの書き込み処理を行う（Ｓ２１６）。以降、書き込みアドレスを次ラインへと変更しながら、ステップＳ２１６と同様の処理を行う。すなわち、データ書き込み制御部２０３は、制御部２０４の制御の下、ライトバッファメモリ２０８からデータを読み出し、ＲＡＭ６０７への書き込み処理を繰り返し行って、ステップＳ２１７でｎ行コピーコマンドの最後のライン（ｎライン目）までデータの書き込みを行う。
【０１００】
このようにステップＳ２１２からステップＳ２１７の各々のラインでのデータの書き込み処理には、ライトバッファメモリ２０８に保持されていたデータを使用するので、従来、ライン毎のコピー時に必要であったＲＡＭ６０７へのリードアクセスを削減することができる。
【０１０１】
データ書き込み制御部２０３は、ステップＳ２１７でライトバッファメモリ２０８に保持されているデータを書き込み処理した後、１ライン分のデコード処理がまだ残っている場合は、ステップＳ２１２からステップＳ２１７までの処理を繰り返し実行し（Ｓ２１２からＳ２１７の繰り返し処理は図示していない）、コマンド１による１ライン分のデコード処理とコマンド２による参照ラインのｎ行コピーが終了すると、処理をステップＳ２１９へ進める。ステップＳ２１９へ処理が進められる時点では、上述のようにコマンド１とコマンド２の合計（ｎ＋１）ライン分のデコード処理及び参照ラインのコピーが終了したことになる。
【０１０２】
ステップＳ２１９ですべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したか判定する。全ラインの処理が終了していない場合は（Ｓ２１９−ＮＯ）、処理をステップＳ２０１へ戻し、全ラインの処理が終了した場合は（Ｓ２１９−ＹＥＳ）、本処理を終了する。
【０１０３】
（デコード、デコード）処理
（コマンド１、２）の組み合わせが（デコード、デコード）の場合は（Ｓ２１１−ＮＯ）、処理をステップＳ２２０に進め、コマンド１で指定されたデコード処理を行うため、デコーダ６１０におけるデータ読み出し制御部２０２は圧縮データと参照ラインデータをＲＡＭ６０７より読み込む（Ｓ２２０）（図中のステップＳ２２０では、「圧縮データリード」と表記している。）。データ読み出し制御部２０２により読み出された圧縮データ、参照ラインデータは、制御部２０４の制御によって、データ読み出し制御部２０２からデコーダブロック２０５へ渡される。デコーダブロック２０５は、データ読み出し制御部２０２から受け取った圧縮データと参照ラインデータとを用いてシードローデコードを行い、デコードデータを出力する（Ｓ２２１）。
【０１０４】
ＭＵＸ２０６は制御部２０４の制御の下、デコーダブロック２０５とデータ書き込み制御部２０３とを接続する。データ書き込み制御部２０３はデコードされたデータを受け取り、書き込み制御レジスタ２０７によって指定されるＲＡＭ６０７の書き込みアドレスに従い、デコードされたデータの書き込みを行う。ここでは、先に説明したステップＳ２１４とは異なり、ライトバッファメモリ２０８に対して、データ書き込み制御部２０３はデータの書き込み処理は行わない（Ｓ２２２）。
【０１０５】
１ライン分のデコード処理がまだ残っている場合は、ステップＳ２２０からＳ２２２までの処理を繰り返し実行し（Ｓ２２０からＳ２２２の繰り返し処理は図示していない）、コマンド１による１ライン分のデコード処理が終了すると、処理はステップＳ２２３へ進められる。
【０１０６】
ステップＳ２２３において、制御部２０４は、内部のコマンドレジスタに格納されているコマンド２を処理の対象となるコマンド１として、内容をシフトする。これはステップＳ２２０からステップＳ２２２で実行されたのはコマンド１のみなので、未実行のコマンド２をコマンド１用レジスタへコピーする処理である。
【０１０７】
ステップＳ２２４ではすべてのコマンドの実行が終了したか、つまり対象となる全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合は（Ｓ２２４−ＮＯ）、処理をステップＳ２０２へ戻し、次のコマンドを読み込み、コマンド２として制御部２０４内のコマンドレジスタへ格納し（Ｓ２０２）、ステップＳ２０３の処理へ移行する（この状態で、ステップＳ２２３によりシフトしたコマンド１と新たに読み込んだコマンド２が揃うことになる）。一方、全ラインの処理が終了した場合は（Ｓ２２４−ＹＥＳ）、本処理を終了する。
【０１０８】
以上説明したように本実施形態によれば、ｎ行コピー拡張コマンドを備えた場合には、参照ラインデータのｎ行コピー拡張コマンドを実行する際にすでに読み込んだデータをｎライン分のデータとして書き出すことによって代用するので、従来コピー処理時に必要だったメモリからの参照ラインデータのリードアクセスを大幅に削減することができ、復号処理の高速化が可能になる。
【０１０９】
[第３実施形態]
第１実施形態は、デコーダブロック６１０が１つのコマンドを先読みし、２つのコマンドの組み合わせによって参照ラインデータのコピー処理のリードアクセスを削減するものであったが、先読みするコマンド数を増やすことによって、参照ラインデータのコピー処理が連続する場合、コピー処理のデータリードアクセスをさらに削減することが可能である。本実施形態はｎ個（ｎは２以上の自然数）のコマンドが先読み可能なように、デコーダ６１０を構成する。すなわち、制御部２０４内の図示しないコマンドレジスタは、ｎ個のコマンドを保持することができるレジスタを備え、書き込み制御レジスタ２０７はｎラインの参照データのコピーが連続する場合のためにｎライン分の書き込みアドレスを保持することが可能なレジスタを備えるものとする。
【０１１０】
このように構成した場合、本実施形態の具体的な処理の流れを図４のフローチャートを参照して説明する。
【０１１１】
まず、ステップＳ４０１において、データ読み出し制御部２０２は、コマンドの先読み処理を実行する。複数ラインの１ライン目の処理ではＫ個のコマンドをＲＡＭ６０７から先読みする。読み出した順にコマンド１、コマンド２とし、最後に読み出したコマンドをコマンドＫとする（Ｋは自然数）。
【０１１２】
ステップＳ４０２で先読みしたコマンドを解析し、コマンド１〜コマンドＫ（Ｋは自然数）が参照ラインコピー処理かどうかを判定する。コピー処理の場合は（Ｓ４０２−ＹＥＳ）、コマンド１で指定される参照ライン（コマンド１に対応する前ライン）のデータを読み込み（Ｓ４０３）、第１実施形態と同様に読み込んだデータを書き込み制御レジスタ２０７で指定されるアドレスに従い、データ書き込み制御部２０３がＲＡＭ６０７に書き込み、コマンド２〜コマンドＫのコピー処理を実行するために、ライトバッファメモリ２０８に読み出したデータを書き込む（Ｓ４０４）。
【０１１３】
コマンド１の１ライン分のデータのコピーをＳ４０３とＳ４０４を繰り返し実行して（Ｓ４０３とＳ４０４の繰り返し処理は図示していない）、コピー処理が終了すると、ステップＳ４０５で、制御部２０４内のコマンドレジスタ内で、実行済みコマンドを未処理のコマンドで置き換える。コマンド（Ｋ＋１）以降の未処理コマンドをコマンドレジスタ内のコマンド１からＫにシフトし、本処理を終了する。
【０１１４】
一方、ステップＳ４０２で先読みしたコマンドを解析し、コマンド１〜コマンドＫ（Ｋは自然数）が参照ラインコピー処理でないと判定された場合は（Ｓ４０２−ＮＯ）、処理をステップＳ４０６に進め、コマンド１〜コマンドＫのデコード処理を行う。デコード処理は、第１実施形態の図１における処理ステップＳ１１９〜Ｓ１２１で説明した処理と同様の処理である。ステップＳ４０７は、ステップＳ４０５と同じ処理で、実行済みコマンドを制御部２０４内のコマンドレジスタ内でシフトする処理である。
【０１１５】
全ラインのコマンドを実行していない場合は、再度ステップＳ４０１から処理を始める。コマンドレジスタ内に存在するコマンドを含めて、読み出されたコマンドの合計がＫ個となるまで追加でコマンドを先読みし、ステップＳ４０２以降の処理を実行する。
【０１１６】
以上説明したように本実施形態によれば、デコーダブロックはチェーンＤＭＡ動作時に、コマンドを先読みして合計ｎラインのコマンドを保持した後、後に続く参照ラインデータのコピーコマンドの場合は、一旦デコードしたデータまたは読み込んだデータをコピーコマンドの指定する書き込みアドレスに対して必要なライン数分のデータを書き出すことによってデータを代用するので、従来コピー処理時に必要だったメモリからの参照ラインデータのリードアクセス回数を大幅に削減することができ、復号処理の高速化が可能になる。
【０１１７】
（リードアクセス数の低減効果の例）
本発明の第１乃至第３実施形態にかかるデータの復号化処理によって得られるメモリへのリードアクセス数の低減効果の例を図１１に示す。この図では、７ラインの図形データを考え、１ライン目がデコードの必要な圧縮データ、２ライン目から７ライン目までの６ラインが１ライン目のデータと同じデータで構成されている場合を示している。ラインＮｏ欄（１１０１）はこの図形データのライン番号を示している。コマンド欄（１１０２）は各ラインの圧縮データに付加されるコマンドを示しており、前述したようにラインＮｏ．１がデコードコマンドで、ラインＮｏ．２以下ラインＮｏ．７までの６ラインがコピーコマンドである。
【０１１８】
データ／アクセスタイプ欄（１１０３、１１０４、１１０５）はシードローデコーダが扱うデータのタイプ（圧縮データはＥ（Ｅｎｃｏｄｅ  Ｄａｔａ）、参照ラインデータはＲ（Ｒｅｆｅｒｅｎｃｅ  Ｄａｔａ）、デコードデータはＤ（Ｄｅｃｏｄｅ  Ｄａｔａ））と、リードまたはライトのどちらのアクセスかを示すアクセスタイプ（ＲＤ＝メモリリード、ＷＲ＝メモリライト）を示す。表中各データタイプの前に着くＬｎ（ｎは１〜７の整数）はラインＮｏ．を表している。例えば、ラインＮｏ.２の下段の行は、「Ｌ２Ｄ（Ｌ１Ｄ）／ＷＲ」と表記されているが、「Ｌ２Ｄ」はラインＮｏ．２のデコードデータを意味している。ラインＮｏ．２の上段、ＲＤアクセスは「Ｌ１Ｄ」データが対象であるが、これはラインＮｏ．１のデコードデータを読み込むことを意味している。また、ＷＲアクセスが「Ｌ２Ｄ」というのはラインＮｏ．２のデコードデータとしてデータを書き出すことを表している。
【０１１９】
なお、「（Ｌ１Ｄ）」という表記は、データ自体はＬ１Ｄのデータをそのまま書き出すことを表している。また、データ／アクセスタイプ欄は「コマンド１個先読み」時と（１１０４）、「コマンドｎ個」先読み時（１１０５）、とを分けて表記している。ハッチングを付けた欄は本発明により削減されるメモリアクセスを示している。「コピー時に必要なアクセス数」の欄（１１０６）は、ラインＮｏ．１〜７までの処理を行う場合，実際に発生するメモリへのＲＤ数とＷＲ数のアクセス数の合計を示す。
【０１２０】
図１１からわかるように本発明によって、コピー時に必要なリードアクセス数は、コマンド１個先読み（１１０４）を実施するとコマンド先読み無し（１１０３）時と比べると、リードアクセス回数を６から３に半減できることがわかる。さらに、コマンドｎ個先読み（１１０５）を実施すると（ここでは７個のコマンド先読みが可能とすると）、コピー時に必要なリードアクセスをなくすことができる。
【０１２１】
本発明の実施形態によれば、ライン属性情報などの情報管理を必要とせず、比較的簡単な制御機構によって、メモリへのリードアクセスを大幅に削減し、復号処理の高速化が可能になる。
【０１２２】
（他の実施形態）
なお、本発明の目的は、前述した第１及び第２実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【０１２３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１２４】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【０１２５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１２６】
さらに、記憶媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１２７】
【図１】本発明の第１実施形態かかるデータ復号化装置の処理の流れを説明するフローチャートである。
【図２】デコーダ６１０の内部構成を示すブロック図である。
【図３】本発明の第２実施形態にかかるデータ復号化装置の処理の流れを説明するフローチャートである。
【図４】本発明の第３実施形態かかるデータ復号化装置の処理の流れを説明するフローチャートである。
【図５】本発明にかかる復号装置を実装可能なプリンタシステムの概略を示すブロック図である。
【図６】図５のコントローラ５０２の構成を示すブロック図である。
【図７】本発明の実施形態にかかる復号化装置が処理するプリントデータを例示する図である。
【図８】図７に示す矩形領域７０４をライン単位で詳細に表現した図であり、矩形領域７０４が１６本のラインから構成されている例を示した図である。
【図９】本発明の実施形態にかかる復号化装置が処理する圧縮データ構造を例示する図である。
【図１０】本発明の実施形態にかかる復号化装置が処理する圧縮データ構造を例示する図である。
【図１１】本発明にかかる復号化装置により、メモリリードアクセスが低減する効果を説明する図である。
【図１２】従来例におけるシードローデコード処理を説明するフローチャートである。
【図１３】従来例におけるシードローデコード処理を説明するフローチャートである。
【図１４】記録装置の好適な実施の形態であるインクジェットプリンタＩＪＲＡの構成の概要を示す外観斜視図である。
【図１５】インクジェットプリンタＩＪＲＡの制御回路の構成を示すブロック図である。
【図１】
2006229363.tif 000003
【図２】
2006229363.tif 000004
【図３】
2006229363.tif 000005
【図４】
2006229363.tif 000006
【図５】
2006229363.tif 000007
【図６】
2006229363.tif 000008
【図７】
2006229363.tif 000009
【図８】
2006229363.tif 000010
【図９】
2006229363.tif 000011
【図１０】
2006229363.tif 000012
【図１１】
2006229363.tif 000013
【図１２】
2006229363.tif 000014
【図１３】
2006229363.tif 000015
【図１４】
2006229363.tif 000016
【図１５】
2006229363.tif 000017