(57)【要約】【課題】  復号データに白データを付加する処理をハードウェアで実行することにより、ソフトウェア処理の負荷を軽減する。【解決手段】  復号データ計数手段、１行の復号終了時に計数値を取込み、行毎の計数値を保持する手段、メモリ保持した復号データに続くアドレスを行毎に指定する手段、前行の行復号長と前記計数値を比較する手段、白データ出力手段を備え、ｎ行目の復号終了時に前記比較手段で（ｎ−１）行目の行復号長と前記計数値を比較した結果、前記計数値が（ｎ−１）行目の行復号長より小さい場合、（ｎ−１）行目の行復号長と同じになる様に、ｎ行目の復号データに続くアドレスから順次（ｎ−１）行目のデータをコピーし、逆の場合、各行のデータ長がｎ行目の復号データ長と同じになる様、１行目から（ｎ−１）行目までの各行の復号データに続くアドレスから順次白データを出力し、（ｎ＋１）行目の復号処理を再開する。【選択図】  図１
2005354168.tif 000002
【特許請求の範囲】
【請求項１】
圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、
圧縮データをメモリから入力する入力手段と
入力された圧縮データを解釈し、復号化を行うデコード手段と
復号化したデコードデータをメモリへ出力する出力手段と
デコードデータ数をカウントするカウンタと
１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と
メモリへ出力したデコードデータに続くアドレスをライン毎に指定するアドレス指定手段と
前ラインのラインデコード長と前記カウンタ値を比較する比較手段と
白データをメモリへ出力する白データ出力手段と
前述の各手段を制御する制御手段を備え、
ｎライン目（ｎは自然数）のデコード終了時に前記比較手段で（ｎ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｎ−１）ライン目のラインデコード長より小さい場合、（ｎ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｎライン目のデコードデータに続くアドレスから順次（ｎ−１）ライン目のデータをコピーし、（ｎ−１）ライン目のラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長がｎライン目のデコードデータ長と同じになるように前記アドレス指定手段によって指定される、１ライン目から（ｎ−１）ライン目までの各ラインのデコードデータに続くアドレスから順次白データを出力し、（ｎ＋１）ライン目のデコード処理を再開して動作することを特徴とするデータ復号化装置。
【請求項２】
前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする請求項１記載のデータ復号化装置。
【請求項３】
前記アドレス指定手段はメモリへ出力した、ライン毎のデコード出力最終アドレスの次アドレスを保持する手段で構成されることを特徴とする請求項１記載のデータ復号化装置。
【請求項４】
前記アドレス指定手段は、デコードデータをメモリへ出力した先頭アドレスをライン毎に保持し、前記ラインデコード長保持手段に保持されるライン毎のラインデコード長から計算したデコード出力最終アドレスの次アドレスを指定する手段で構成されることを特徴とする請求項１または２記載のデータ復号化装置。
【請求項５】
前記アドレス指定手段は、前記復号化装置の内部レジスタまたは外部メモリをアドレス保持手段とすることを特徴とする請求項１乃至４記載のデータ復号化装置。
【請求項６】
圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、
圧縮データをメモリから入力する入力手段と
入力された圧縮データを解釈し、復号化を行うデコード手段と
復号化したデコードデータをメモリへ出力する出力手段と
デコードデータ数をカウントするカウンタと
１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と
メモリへ出力したデコードデータに続くアドレスをライン毎に指定するアドレス指定手段と
前ラインのラインデコード長と前記カウンタ値を比較する比較手段と
白データをメモリへ出力する白データ出力手段と
前述の各手段を制御する制御手段を備え、
ｍライン目（ｍは自然数）のデコード終了時に前記比較手段で（ｍ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｍ−１）ライン目のラインデコード長より小さい場合、（ｍ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｍライン目のデコードデータに続くアドレスから順次（ｍ−１）ライン目のデータをコピーした後、（ｍ＋１）ライン目のデコード処理を行い、最終ライン（ｎライン目とする。ｎは自然数）のデコード終了後、各ラインのデコードデータ長と最終ラインデコード長である前記カウンタ値を比較し、各ラインのラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長が最終ラインデコードデータ長と同じになるように前記アドレス指定手段によって指定される、１ライン目から（ｎ−１）ライン目までの各ラインのデコードデータに続くアドレスから順次白データを出力するよう動作することを特徴とするデータ復号化装置。
【請求項７】
前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする請求項６記載のデータ復号化装置。
【請求項８】
前記アドレス指定手段はメモリへ出力した、ライン毎のデコード出力最終アドレスの次アドレスを保持する手段で構成されることを特徴とする請求項６記載のデータ復号化装置。
【請求項９】
前記アドレス指定手段は、デコードデータをメモリへ出力した先頭アドレスをライン毎に保持し、前記ラインデコード長保持手段に保持されるライン毎のラインデコード長から計算したデコード出力最終アドレスの次アドレスを指定する手段で構成されることを特徴とする請求項６または７記載のデータ復号化装置。
【請求項１０】
前記アドレス指定手段は、前記復号化装置の内部レジスタまたは外部メモリをアドレス保持手段とすることを特徴とする請求項６乃至９記載のデータ復号化装置。
【請求項１１】
圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、
圧縮データをメモリから入力する入力手段と
入力された圧縮データを解釈し、復号化を行うデコード手段と
復号化したデコードデータをメモリへ出力する出力手段と
デコードデータ数をカウントするカウンタと
１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と
前ラインのラインデコード長と前記カウンタ値を比較する比較手段と
メモリ上のデータをメモリ上の他の領域へコピーするコピー手段と
白データをメモリへ出力する白データ出力手段と
前述の各手段を制御する制御手段を備え、
ｍライン目（ｍは自然数）のデコード終了時に前記比較手段で（ｍ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｍ−１）ライン目のラインデコード長より小さい場合、（ｍ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｍライン目のデコードデータに続くアドレスから順次（ｍ−１）ライン目のデータをコピーした後、（ｍ＋１）ライン目のデコード処理を行い、最終ライン（ｎライン目とする。ｎは自然数）のデコード終了後、各ラインのデコードデータをメモリ上の他の領域へコピーする際に、各ラインのラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長が最終ラインのデコードデータ長と同じになるように各ラインのデコードデータのコピー処理に続いて白データを出力するよう動作することを特徴とするデータ復号化装置。
【請求項１２】
前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする請求項１１記載のデータ復号化装置。
【請求項１３】
前記デコード手段は、シードロー・デコーダであることを特徴とする請求項１乃至１２記載のデータ復号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、圧縮されたデータを復号化するデータ復号化装置に関するものである。
【背景技術】
【０００２】
従来、ホストコンピュータで印刷データを作成してプリンタへ送信する場合、印刷データは図形オブジェクトを含む矩形領域を単位として生成される。図５を使用して説明する。図５において、５０１は印刷用紙領域を表し、５０２、５０３、５０４は印刷データを含む矩形領域である。例えば、５０２に示すように、ある図形オブジェクトを含む矩形領域を印刷データの一つの単位とし、ライン毎にプリンタへ送る印刷データをホストコンピュータで生成し、プリンタへ送信する。５０２は三角形や四角形や円形などの図形オブジェクトを含み、５０３は楕円形の図形オブジェクトと文字データを含む。５０４は５１１、５１３、５１４、５１５、５１６の５つの矩形オブジェクトデータが図のように配置されており、５１２は５１１と５１３のオブジェクトに挟まれた白データ部である。プリンタへ送信する印刷データは多値のカラーデータ（RGB各色8bit/各色10bit等）である。プリンタでは受信した印刷データを解釈し、色空間変換を行った後、ディザ法あるいは誤差拡散法などを用いて、多値のカラーデータをCMYKあるいはCMYKcmのインク各色のオンオフデータとなる２値のカラーデータを生成する。
【０００３】
ホストコンピュータからプリンタへ送信する印刷データ量を少なくするために種々のデータ圧縮方法が用いられてきた。ライン単位のデータをバイトランレングス圧縮方式によって圧縮し、さらにｎ行空白行挿入、ｎ行繰り返しコピー等の拡張コマンドを定義することによって、圧縮率を高めると同時にプリンタのＣＰＵ処理負荷を低減するようにしたものもある。（例えば、特許文献１参照。）また、他のデータ圧縮法として２つのラインデータの差分情報を用いて圧縮することによって、送信データ量を削減する方法がある。シードロー圧縮はその圧縮方法の一つである。着目したラインデータを、別のラインデータを参照して、その差分情報を符号化する。参照するラインのことを参照ラインと呼ぶ。参照ラインと着目ラインをラインの左端から比較して、異なるデータとその位置を符号化するものである。
【０００４】
図６は図５に示す矩形領域５０４に示す矩形領域をライン単位で詳細に表現した図であり、矩形領域が２７本のラインから構成されている例を示したものである。斜線部６０１は図形オブジェクト５１１が存在する部分を示し、６０２は図形オブジェクトが存在しない空白部分５１２を、斜線部６０３は図形オブジェクト５１３を示している。また、斜線部６０４は図形オブジェクト５１４を、縦線部６０５は図形オブジェクト５１５を、斜線部６０６は図形オブジェクト５１６を示している。
【０００５】
ホストコンピュータ上で動作するプリンタドライバは、図６に示す矩形領域をライン単位でシードロー圧縮処理を順次行う。この処理手順を図７を参照して説明する。図中７０１〜７０６は図６の６０１〜６０６にそれぞれ対応する。まずLine１に着目し、参照ラインとして仮想的に７０７に示す白データから構成されるLine 0を想定し、Line ０との差分情報を符号化していく。斜線部７０１、斜線部７０３は白データではなく、図形オブジェクトデータが存在するので、参照ラインに対して着目ラインのデータ７０１、７０３で置き換える。７０２は白データであり、参照ライン７０７との差分はないため、この部分のデータは圧縮データには入らず、デコード時に参照ラインからコピーされることになる。斜線部７０３の右端から右側はオブジェクトデータが存在せず、余白であるので参照ラインデータを想定しても差分情報はなく、圧縮データに情報は入らない。次にLine ２に着目し、Line 1を参照ラインとしてシードロー圧縮を行う。Line ２はLine １と同じ内容のラインデータであるので、差分情報はなく圧縮データはない。Line ２からLine ７までは同じラインデータの繰り返しなので、同様に圧縮データはない。次にLine ８に着目し、Line 7を参照ライン７０８として圧縮を行う。Line ８は斜線部７０４の部分がLine ７との差分となるので、この部分の差分情報が圧縮コード化される。しかし、Line ８の７０４よりも右側の部分はLine ７との差分情報がないため、圧縮コードに情報が入らない。Line ９、１０はLine ８の繰り返しであるため圧縮データはない。次にLine１１に着目し、圧縮を行う。Line１１はLine １０を参照ライン７０９として用いる。斜線部７０４より左側の空白部と斜線部７０４より右側の空白部７１０が差分情報となり、圧縮コード化される。以下同じラインデータが続くLine１２〜１４は圧縮データはない。Line １５に着目した際、Line １４の太線で示した部分を参照ラインデータとして使用する。以下同様にしてシードロー圧縮符号化を順次行う。Line２１はLine ２０を参照ラインとして使用する。
【０００６】
ホストコンピュータはこのようにしてラインデータを１ラインずつ処理し、１ラインの圧縮データの最後に終端コードを付加する。図５の５０４領域の２７ライン分のデータをシードロー圧縮してプリンタへ送信する。
【０００７】
プリンタでは、受け取った印刷データから終端コードを探して、ライン単位の圧縮データを切り出し、シードローデコード処理を行う。ライン単位のデコード処理は図１２に示す手順で行われる。まずメモリ上に置かれた圧縮データを読み込む（Ｓ１００１）。次にメモリ上に置かれた参照ラインデータを読み込む（Ｓ１００２）。Ｓ１００１で読み込んだ圧縮データを解析し、デコード処理を行い（Ｓ１００３）、デコード・データをメモリへ出力する（Ｓ１００４）。Ｓ１００５で１ライン分の圧縮データをデコードしたかどうかを判定し、１ラインのデコード処理が終了している場合は本処理を終了し、そうでなければＳ１００１へ戻り、上述した処理を繰り返す。
【０００８】
図５の矩形領域５１４がデコードされる過程を図７を参照して説明する。
【０００９】
Line １をデコードする際、参照ラインは仮想的に７０７に示した白データからなるLine ０を想定し、Line １の圧縮データを用いて、上述した手順に従ってデコード処理を行う。圧縮コードをデコードした結果をメモリに書き込んでいく。７０１、７０２、７０３の部分が書き出されたところで圧縮コードが終了するので、Line １の処理を終了し、Line ２へと進む。Line 2〜Line ７はLine １と同じラインデータの繰り返しであるため、Line １のデータが順次参照されて、コピーされていく。すなわち、Line ２はLine １をコピーし、Line ３はLine ２をコピーするというように順次前ラインがコピーされていく。Line ８はLine ７を参照し、Line ７と同じ部分のデータはLine ７をコピーし、異なる部分のデータは置き換えてメモリへデコード・データとして出力する。圧縮コードはLine ８の７０４部分で終わるので、７０４から右側部分は参照ラインデータをコピーしてデコード・データとして出力する。Line ９〜Line １４は上述した手順で順次デコード処理が行われる。Line １４のデコードを終了した時点では、Line １の長さを幅とする１４ライン分の矩形領域データがメモリ上へデコード・データとして出力された状態となる。
【００１０】
次に、Line １５をデコードする時はLine １４を参照し、デコード結果を書き出していく。この処理はLine １４の右端まではLine １４のデータを参照して実行されるが、Line １４の右端からさらに右側の部分は白データを参照ラインデータとして、仮想的に想定してデコード処理を続ける。図１２の処理においては、参照ラインデータがなくなった後に、さらに参照ラインデータの要求があると、Ｓ１００２で白データを参照ラインデータとして供給して動作する。
【００１１】
以下Line ２７まで、上述した処理を繰り返し、デコード処理を終了する。
【００１２】
プリンタ内部では、デコード処理が終了した印刷データを画像処理ブロックがメモリから読み出して、色空間変換を行った後ディザ法あるいは誤差拡散法などを用いて、多値のカラーデータをCMYKあるいはCMYKcmのインク各色のオンオフデータとなる２値のカラーデータを生成する。画像処理ブロックは複数ラインからなる印刷データ領域が矩形領域であることを前提として構成されている場合、画像処理ブロックの前段の処理は印刷データをメモリへ矩形領域として書き出す必要があった。
【特許文献１】特開平０８−３００７４４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
従来は、上述したように、シードロー圧縮方法を用いて圧縮されたデータをプリンタでデコードした結果は、必ずしも矩形領域とはならない場合がある。図６に示したデコード・データは図５の矩形領域５０４のうちオブジェクトデータの右側にある白データはメモリ上には書きこまれていない状態である。上述したように、後段の画像処理ブロックにおいては余白となる白データも含めて矩形領域のデータを対象に処理を行う場合を前提とすると、図６のデコード・データのラインの右側にデータが足りないラインについては白データを付加する必要がある。図６においては、Line １〜Line １９の右側に白データを付加し、Line ２３〜２７の長さを横幅として持つ矩形領域のデータをメモリ上に形成する必要がある。
図６の画像データのラインデータの右側に白データを付加するために、従来は図１３に示すような処理を行っていた。
【００１４】
まず、シードローデコード処理を行う（Ｓ２００１）。詳細は図１２に示した処理を対象となるデータのライン数分実行する。次に、最終ラインデコード長を取得する（Ｓ２００２）。複数ラインデータ処理の最後のラインのデコード長をメモリ上に書き込まれたデコード・データを調べて取得する処理である。Ｓ２００３で各ラインのデコード・データ長を調べて取得する。これもメモリ上に書き込まれたデコード・データを調べて取得する処理である。Ｓ２００４でデコードデータを画像処理バッファへコピーする処理を行う。１ライン分のデコードデータをコピー後、Ｓ２００３で取得したデコード・データ長とＳ２００２で取得した最終ラインデコード長を比較し（Ｓ２００５）、デコード・データ長が最終ラインデコード長よりも短い場合は、その差分に白データを付加する処理を行う（Ｓ２００６）。図６の画像データの場合、メモリ上には、各ラインのデコードデータが連続して書かれているので、ラインの右側に白データを書き出す空き領域がない。画像処理ブロックへ渡す別のメモリ領域へ、デコードデータをライン毎にコピーする際にデコードデータの後ろに白データを付加してメモリへ書き出す処理を行う。これらの処理を全てのラインデータに対して行ったかどうかを判定し（Ｓ２００７）、まだ処理すべきラインデータがある場合は、Ｓ２００３へ戻って次のラインデータの処理を行い、そうでない場合は本処理を終了する。
【００１５】
しかしながら、図１３で説明した処理は、メモリに書き込まれたデコードデータを１ラインずつ読み込んで、矩形領域を構成する全ラインのデコードデータ長を調べ、かつ各ラインを別のメモリ領域へコピーする時に必要なラインデータの右側に白データを付加するので、このソフトウェア処理はＣＰＵにとって処理負荷が重く、矩形領域を構成するライン数が多くなるほどＣＰＵの処理負荷が増大し、結局はプリンタの印刷処理に必要となる他のソフトウェア処理に影響してしまうという問題があった。
【００１６】
また、特許文献１では拡張コマンドの１つとして、行の終端から残りの印字領域を空白データで埋めるという例が開示されているが、この拡張コマンドを使って各ラインの終端から残りの印字領域を空白データで埋めると画像データが用紙の左端側にしかないような場合は無駄な空白データをメモリへ書き出すこととなり、画像処理速度の低下を招く要因となっていた。
【００１７】
本発明は上記従来例に鑑みてなされたものであり、デコード・データに白データを付加して矩形データとするために行っていた処理をハードウェアで実行することにより、ソフトウェア処理の負荷を抑えることが可能なデコーダを提供することを目的とする。
【課題を解決するための手段】
【００１８】
このような課題を解決するために、本発明における請求項１記載のデータ復号化装置は、圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、圧縮データをメモリから入力する入力手段と、入力された圧縮データを解釈し、復号化を行うデコード手段と、復号化したデコードデータをメモリへ出力する出力手段と、デコードデータ数をカウントするカウンタと、１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と、メモリへ出力したデコードデータに続くアドレスをライン毎に指定するアドレス指定手段と、前ラインのラインデコード長と前記カウンタ値を比較する比較手段と、白データをメモリへ出力する白データ出力手段と、前述の各手段を制御する制御手段を備え、ｎライン目（ｎは自然数）のデコード終了時に前記比較手段で（ｎ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｎ−１）ライン目のラインデコード長より小さい場合、（ｎ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｎライン目のデコードデータに続くアドレスから順次白データを出力し、（ｎ−１）ライン目のラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長がｎライン目のデコードデータ長と同じになるように前記アドレス指定手段によって指定される、１ライン目から（ｎ−１）ライン目までの各ラインのデコードデータに続くアドレスから順次白データを出力し、（ｎ＋１）ライン目のデコード処理を再開して動作することを特徴とする。
【００１９】
また、本発明における請求項２記載のデータ復号化装置は、請求項１記載のデータ復号化装置において、前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする。
【００２０】
また、本発明における請求項３記載のデータ復号化装置は、請求項１記載のデータ復号化装置において、前記アドレス指定手段はメモリへ出力した、ライン毎のデコード出力最終アドレスの次アドレスを保持する手段で構成されることを特徴とする。
【００２１】
また、本発明における請求項４記載のデータ復号化装置は、請求項１または２記載のデータ復号化装置において、前記アドレス指定手段は、デコードデータをメモリへ出力した先頭アドレスをライン毎に保持し、前記ラインデコード長保持手段に保持されるライン毎のラインデコード長から計算したデコード出力最終アドレスの次アドレスを指定する手段で構成されることを特徴とする。
【００２２】
また、本発明における請求項５記載のデータ復号化装置は、請求項１乃至４記載のデータ復号化装置において、前記アドレス指定手段は、前記復号化装置の内部レジスタまたは外部メモリをアドレス保持手段とすることを特徴とする。
【００２３】
このような課題を解決するために、本発明における請求項６記載のデータ復号化装置は、圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、圧縮データをメモリから入力する入力手段と、入力された圧縮データを解釈し、復号化を行うデコード手段と、復号化したデコードデータをメモリへ出力する出力手段と、デコードデータ数をカウントするカウンタと、１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と、メモリへ出力したデコードデータに続くアドレスをライン毎に指定するアドレス指定手段と、前ラインのラインデコード長と前記カウンタ値を比較する比較手段と、白データをメモリへ出力する白データ出力手段と、前述の各手段を制御する制御手段を備え、ｍライン目（ｍは自然数）のデコード終了時に前記比較手段で（ｍ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｍ−１）ライン目のラインデコード長より小さい場合、（ｍ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｍライン目のデコードデータに続くアドレスから順次（ｍ−１）ライン目のデータをコピーした後、（ｍ＋１）ライン目のデコード処理を行い、最終ライン（ｎライン目とする。ｎは自然数）のデコード終了後、各ラインのデコードデータ長と最終ラインデコード長である前記カウンタ値を比較し、各ラインのラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長が最終ラインデコードデータ長と同じになるように前記アドレス指定手段によって指定される、１ライン目から（ｎ−１）ライン目までの各ラインのデコードデータに続くアドレスから順次白データを出力するよう動作することを特徴とする。
【００２４】
また、本発明における請求項７記載のデータ復号化装置は、請求項６記載のデータ復号化装置において、前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする。
【００２５】
また、本発明における請求項８記載のデータ復号化装置は、請求項６記載のデータ復号化装置において、前記アドレス指定手段はメモリへ出力した、ライン毎のデコード出力最終アドレスの次アドレスを保持する手段で構成されることを特徴とする。
【００２６】
また、本発明における請求項９記載のデータ復号化装置は、請求項６または７記載のデータ復号化装置において、前記アドレス指定手段は、デコードデータをメモリへ出力した先頭アドレスをライン毎に保持し、前記ラインデコード長保持手段に保持されるライン毎のラインデコード長から計算したデコード出力最終アドレスの次アドレスを指定する手段で構成されることを特徴とする。
【００２７】
また、本発明における請求項１０記載のデータ復号化装置は、請求項６乃至９記載のデータ復号化装置において、前記アドレス指定手段は、前記復号化装置の内部レジスタまたは外部メモリをアドレス保持手段とすることを特徴とする。
【００２８】
このような課題を解決するために、本発明における請求項１１記載のデータ復号化装置は、圧縮されたデータを復号化するデータ復号化装置であって、ライン単位のデータを復号化する処理を連続して実行するチェーンＤＭＡモードを備え、圧縮データをメモリから入力する入力手段と、入力された圧縮データを解釈し、復号化を行うデコード手段と、復号化したデコードデータをメモリへ出力する出力手段と、デコードデータ数をカウントするカウンタと、１ラインのデコード終了時に前記カウンタの値を取り込み、ライン毎のカウンタ値を保持する複数のラインデコード長保持手段と、メモリへ出力したデコードデータに続くアドレスをライン毎に指定するアドレス指定手段と、前ラインのラインデコード長と前記カウンタ値を比較する比較手段と、メモリ上のデータをメモリ上の他の領域へコピーするコピー手段と、白データをメモリへ出力する白データ出力手段と、前述の各手段を制御する制御手段を備え、ｍライン目（ｍは自然数）のデコード終了時に前記比較手段で（ｍ−１）ライン目のラインデコード長と前記カウンタ値を比較した結果、前記カウンタ値が（ｍ−１）ライン目のラインデコード長より小さい場合、（ｍ−１）ライン目のラインデコード長と同じになるように前記アドレス指定手段によって指定される、ｍライン目のデコードデータに続くアドレスから順次（ｍ−１）ライン目のデータをコピーした後、（ｍ＋１）ライン目のデコード処理を行い、最終ライン（ｎライン目とする。ｎは自然数）のデコード終了後、各ラインのデコードデータをメモリ上の他の領域へコピーする際に、各ラインのラインデコード長よりも前記カウンタ値の方が大きい場合、各ラインのデータ長が最終ラインのデコードデータ長と同じになるように各ラインのデコードデータのコピー処理に続いて白データを出力するよう動作することを特徴とする。
【００２９】
また、本発明における請求項１２記載のデータ復号化装置は、請求項１１記載のデータ復号化装置において、前記ラインデコード長保持手段は、前記復号化装置の内部レジスタまたは外部メモリで構成されることを特徴とする。
【００３０】
また、本発明における請求項１３記載のデータ復号化装置は、請求項１乃至１２記載のデータ復号化装置において、前記デコード手段は、シードロー・デコーダであることを特徴とする。
【発明の効果】
【００３１】
以上から明らかなように、従来はデコードデータが矩形領域となるようにデータが足りない部分に白データを付加するために、メモリに書き込まれたデコードデータを１ラインずつ読み込んで、矩形領域を構成する全ラインのデコードデータ長を調べ、かつ各ラインを別のメモリ領域へコピーする時に、必要なラインデータの右側に白データを付加するという処理を行っていた。このソフトウェア処理はＣＰＵにとって処理負荷が重く、矩形領域を構成するライン数が多くなるほどＣＰＵの処理負荷が増大し、結局はプリンタの印刷処理に必要となる他のソフトウェア処理に影響してしまうという問題があったが、本発明の実施例１によれば、シードロー・デコーダブロックはチェーンＤＭＡ動作によって複数ラインを連続してデコード処理中にｎライン目のデコードデータ長が参照ラインデータ長よりも長くなったことを検出すると、１ライン目から（ｎ―１）ライン目の右側に該当するメモリ領域に対してライン毎に白データを付加する処理をハードウェアで実行するように構成したので、矩形領域データをソフトウェ処理の介在無しに得ることができるため、従来問題となっていたＣＰＵの処理負荷の低減する課題を解決することができる。
【００３２】
また、本発明の実施例２によればシードロー・デコーダブロックはチェーンＤＭＡ動作によって複数ラインを連続してデコード処理した後、画像処理ブロックのバッファ領域へデコードデータをコピーする際に、各ラインのデコードデータ長と最終ラインのデコードデータ長を比較し、デコードデータ長の方が短い場合、デコードデータをコピーした後に白データを書き出して、画像処理ブロックのバッファ領域に矩形領域データが形成されるように動作するので、ソフトウェ処理の介在無しに矩形領域データを得ることができるため、従来問題となっていたＣＰＵの処理負荷の低減する課題を解決することができる。
【００３３】
また、上記実施の形態ではシードロー法による圧縮方法を用いた場合に関して説明したが、本発明はシードロー法に限定されるものではなく、複数ラインの相関を用いる他の圧縮法であっても同様の効果を有する。
【発明を実施するための最良の形態】
【００３４】
（実施例１）
以下図面を参照して本発明の第１実施例を説明する。図３は本発明が実装されるプリンタシステムの概略ブロック図である。３０１がプリンタ本体であり、ホストＰＣ３０４と接続されている。ホストＰＣとはネットワーク（有線ＬＡＮ、無線ＬＡＮ）やＵＳＢ、ＩＥＥＥ１３９４等を介して接続される。プリンタ３０１はコントローラ３０２とプリンタエンジン３０３から構成されている。コントローラはホストＰＣ３０４とのインタフェース機能と、ホストＰＣから送信された印刷データを解釈し、圧縮された印刷データをデコードし、画像処理を行い、２値データへ変換してプリンタエンジンへ渡す。プリンタエンジン３０３はコントローラ３０２から２値化された印字データを受け取り、インクジェットプリンタの場合、プリントヘッドのスキャン制御、インク吐出制御、紙送り制御等を行い、印刷を行う。
【００３５】
図４はコントローラのブロックを示す図である。コントローラ４０１はＵＳＢインタフェースを介してホストＰＣ４１５と、ＩＥＥＥ１３９４インタフェースを介してホストＰＣ４１８と、またＬＡＮインタフェースを介して複数のホストＰＣと接続され、さらにエンジンインタフェースを介してプリンタエンジン４１３と接続される。
【００３６】
コントローラ４０１はコントローラチップ４０２とＲＯＭ４０５、ＲＡＭ４０７、操作パネル４０９、ＩＥＥＥ１３９４インタフェース４１７、ＬＡＮコントローラ４１９、拡張インタフェース４２０から構成され、コントローラチップ４０２とＬＡＮコントローラ４１９、ＩＥＥＥ１３９４インタフェース４１７、拡張インタフェース４２０は拡張バスを介して接続される。
【００３７】
コントローラチップ４０２はいわゆるＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  a  Ｃｈｉｐ）であり、ＣＰＵ４０３、ＲＯＭコントローラ４０４、ＲＡＭコントローラ４０６、操作パネルインタフェース４０８、バスインタフェース４１６、シードロー・デコーダ４１０、画像データ処理ブロック４１１、ＵＳＢインタフェース４１４、エンジンインタフェース４１２から構成されるＬＳＩであり、各ブロックは内部バスによって相互に接続されている。
【００３８】
ＣＰＵ４０３はＲＯＭ４０５に格納されたプログラムに従って動作し、各種インタフェースを通じてホストＰＣ、プリンタエンジンとの通信や各部の制御を行う。ＲＯＭコントローラ４０４は接続されたＲＯＭ４０５とのインタフェースを行う。ＲＡＭコントローラ４０６は接続されたＲＡＭ４０７とのインタフェースを行い、ＲＡＭアクセスタイミングを制御しながら、ＣＰＵ４０３や他のブロックからの要求に従い、ＲＡＭへのデータ入出力を行う。操作パネルインタフェース４０８は、操作キーやＬＥＤ、ＬＣＤを実装した操作パネル４０９とのインタフェースを行い、ユーザからの操作キー入力をＣＰＵ４０３へ伝え、ＣＰＵ４０３からの命令によってＬＥＤ、ＬＣＤの表示が制御される。バスインタフェース４１６は拡張バスを制御するブロックであり、拡張バスに接続された各コントローラとの通信制御を行う。シードロー・デコーダ４１０はホストＰＣから送信されるシードロー法によって圧縮された印刷データをＲＡＭ４０７から読み出し、デコードしてＲＡＭへ書き戻す。画像データ処理ブロック４１１は、デコーダによってデコードされたデータをＲＡＭ４０７から読み出し、各インク色のドットデータに変換し、ＲＡＭ４０７へ書き戻すブロックである。エンジンインタフェース４１２は、各インク色のドットデータをＲＡＭ４０７から読み出し、プリンタエンジン４１３へ送信する制御を行う。
【００３９】
ホストＰＣから送信される印刷データは、コントローラの各インタフェースから入力される。ＩＥＥＥ１３９４インタフェースあるいはＬＡＮコントローラを経由して入力された印刷データは拡張バスを通じてコントローラチップ４０２のバスインタフェース４１６を経由し、ＲＡＭコントローラ４０６の制御に従って、ＲＡＭ４１７へ書き込まれる。ＵＳＢインタフェース４１４はコントローラチップ４０２に内蔵されており、ホストＰＣ４１５から入力された印刷データは内部バスを通じてＲＡＭコントローラ４０６の制御に従って、ＲＡＭ４０７へ書き込まれる。
【００４０】
ＲＡＭ４０７へ書き込まれた印刷データは、ＣＰＵ４０３によって通信プロトコルが解釈された後、シードロー・デコーダ４１０へ渡され、デコードされる。デコードされた印刷データは画像データ処理ブロックによって各インク色のドットデータに変換された後、エンジンインタフェース４１２を通じてプリンタエンジン４１３へ送信され、紙へ印刷される。
【００４１】
図２は図４に示すシードロー・デコーダ４１０の内部ブロック図である。シードロー・デコーダ４１０は本図では２０１で示され、内部バスインタフェースブロック２０２とシードロー・デコーダブロック２０４、レジスタブロック２０３から構成されている。
【００４２】
レジスタブロック２０３はＣＰＵ４０３から設定されるＤＭＡソースアドレス、ＤＭＡデスティネーションアドレス、読み込みデータ長、領域長、動作モードなどの各種設定情報を内部レジスタに保持する。ＤＭＡソースアドレスレジスタには、圧縮データの先頭アドレスと参照ラインデータの先頭アドレスを個別に設定できるように構成されている。ＤＭＡデスティネーションアドレスは、デコードしたデータを書き出す領域の先頭アドレスを設定する。本実施例ではＤＭＡデスティネーションアドレスは図５の矩形領域５０４のオブジェクトの左端から印字領域の右端までの幅のデータを出力できる領域を１ラインの長さとして確保して設定する。読み込むデータ長は圧縮データ長と参照ラインデータ長を個別に設定でできるように構成されている。前ラインのデコードデータを参照ラインとして使用し、参照ラインデータ長は前ラインのデコードデータ長を使用する。
【００４３】
また、これらのレジスタへデータをセットする方法はＣＰＵから書き込む方法の他に、レジスタへの設定値をＲＡＭ４０７の所定の領域にＣＰＵ４０３が書き込んでおき、シードロー・デコーダ４１０がバスマスタとなってＲＡＭから前述の内部レジスタに読み込み設定することも可能である。デコーダブロックは、ＣＰＵ４０３からＲＡＭ４０７上のパラメータを読み込むよう設定されてから起動されると、バスマスタとなってＲＡＭ４０７上のパラメータを読み込み、内部レジスタへセットし、セットされたパラメータに従ってデコード処理を行う。このとき次のラインのパラメータの書かれているアドレスも同時に読み込んでおく。１ラインのデコード処理が終了すると、次のラインのパラメータをＲＡＭから読み込んでレジスタへセットし、セットされたパラメータに従ってデコード処理を行い、最後のラインの処理を行うまでこれらの処理を連鎖状に繰り返す。このように、ＲＡＭからレジスタ設定値を読み込み、デコード動作を実行し、次のライン用のレジスタ設定値を読み込みデコード動作を行うというような、ＣＰＵによるライン毎のレジスタ設定処理を必要とせずに、連鎖状にデコード処理を行うチェーンＤＭＡモードが可能なように構成されている。
【００４４】
さらに、レジスタブロックは圧縮データをデコードした結果である各ラインのデコードデータ長を、ラインデコード終了時に、後述するシードロー・デコーダブロック２０４内部のカウンタ２０６を参照して保持するラインデコード長レジスタセットを備える。ラインデコード長レジスタセット２０５はチェーンＤＭＡ起動時に初期化され、保持していた内容がクリアされるが、チェーンＤＭＡ終了後は次回チェーンＤＭＡが起動されるまで、その内容を保持する。ラインデコード長レジスタセットは、チェーンＤＭＡで処理するライン数分のデコード長を保持できるように構成されている。例えば、チェーンＤＭＡで３２ラインが最大ライン数の場合、３２個のレジスタがあれば良く、ライン番号に対応してデコード長を保持し、読み出すことができる。例えば、４番目のラインのデコード長はＣＰＵがラインデコード長レジスタセットの４番目のレジスタから読み出せば良い。
【００４５】
内部バスインタフェースブロック２０２は、コントローラチップ４０１の内部バスに接続されており、ＣＰＵからのレジスタアクセスをレジスタブロック２０３へ中継する機能と、内部バス上でバスマスタとなってＲＡＭ４０７へアクセスを行うＤＭＡコントローラ機能を持つ。レジスタブロック２０３の各種設定情報に従い動作し、ＤＭＡソースアドレスを先頭アドレスとするメモリ領域から順次読み出したデータをシードロー・デコーダブロック２０４へ渡し、シードロー・デコーダブロック２０４から受け取ったデコード・データをＤＭＡデスティネーションアドレスを先頭アドレスとするメモリ領域へ順次書き込む。
【００４６】
シードロー・デコーダブロック２０４はシードロー法に従って圧縮された圧縮データを解釈し、シードローデコードを行うブロックである。内部バスブロック２０３から圧縮データと参照ラインデータを受け取り、デコード処理を行う。参照ラインデータが終了した後もデコード動作を続ける場合は、参照ラインデータとして白データをシードロー・デコーダの内部で生成する機能も備える。ホストコンピュータから送信されるデータの色空間がＲＧＢの場合は「１」、ＣＭＹＫまたはＣＭＹＫｃｍの場合は「０」（白を表すデータ）を白データとして用いる。１または０のどちらを白データとして使用するかは、レジスタブロック２０３内に備えるレジスタで指定可能である。図７の７０７に示すように仮想的な参照ラインを用いる場合は、メモリの別領域に準備しておいた白データラインを参照ラインとして読み込むよう設定すれば良い。あるいは上述したような参照ラインデータ用に白データを生成する機能を使用しても良い。内部バスインタフェースブロック２０２から入力される圧縮データの先頭からデコードをはじめ、圧縮データまたは参照ラインデータがなくなったところで１ラインのデコード動作を終了する。シードロー・デコーダブロック２０４は内部にカウンタ２０６を持ち、デコードして出力したデータバイト数をカウントする。
【００４７】
レジスタブロック２０３は、複数ラインの圧縮データの各ラインのデコードデータ長を、ラインデコード終了時にシードロー・デコーダブロック２０４内部のカウンタ２０６を参照して、該当するライン用のラインデコード長レジスタセット２０５に保持する。また、メモリへ書き出した各ラインのライン出力データの最終アドレスをライン出力データレジスタセット２０７に保持する。
【００４８】
次に図１を用いてシードロー・デコーダの動作を説明する。
【００４９】
この処理を開始する前にＣＰＵは複数ラインのシードローデコードをチェーンＤＭＡ動作で行うための各ラインのパラメータをメモリ上の所定の領域に展開して書き込んでおく。パラメータは各ラインの圧縮データの先頭アドレス、圧縮データ長、参照ラインデータの先頭アドレス、デコードデータの書き込み先頭アドレス、次ラインの設定パラメータの先頭アドレスなどである。ここでは各ラインデコードデータの書き込み先頭アドレスはライン毎に、あるオフセット値を持って設定される。オフセット値は図５の領域５０４の左端から印字領域の右端までの長さを設定する。このように設定することによって、デコード後、白データをデコードデータに付加する必要が生じた場合、後続のラインデータを移動させずに白データを書き込むことが可能となる。この後、シードロー・デコーダを起動すると、上述したパラメータをメモリから読み込んでレジスタブロック２０３の所定レジスタへ格納し、１ライン目のデコードを開始する（Ｓ１０１）。内部バスインタフェースブロック２０２、シードロー・デコーダブロック２０４はレジスタブロック２０３の設定に従って動作する。図７のLine １のデコード処理の際には仮想的な白データの参照ライン７０７を想定し、デコード後、メモリ上に７０１、７０２、７０３のデコードデータを書き出し、ライン出力最終アドレスレジスタセットの１番目のレジスタにデコードデータの最終出力データアドレスを格納し、またラインデコードデータ長レジスタにデコードデータ長を格納して、ラインデコード処理を終了する。
【００５０】
次に、Ｓ１０２でラインデコード長レジスタセット２０５の１番目のレジスタと参照ラインデータ長が設定される参照ライン長レジスタの値を比較し、ラインデコード長が参照ラインデータ長よりも長いかどうかを判定する。
【００５１】
ラインデコード長の方が長ければＳ１０３へ進み、そうでなければＳ１０７へ進む。Line １のデコードデータ長は参照ラインデータ７０７と同じ長さとなるのでＳ１０７へ進んだ後、Ｓ１０１へ戻って次ライン  Line ２のデコードを行う。シードロー・デコーダはLine ２用のパラメータをメモリから読み込み、ラインデータのデコード処理を開始する。Line ２からLine ７まではデコードデータ長は参照ラインデータ長と同じであるので、上記処理を繰り返し実行する。Line ８は斜線部７０４から右側はLine ７と同じデータであるので圧縮データは斜線部７０４までで終了する。Line ８の斜線部７０８の部分は参照ラインであるLine ７のデータをコピーしてデコードデータとして出力する。この処理はラインでコード処理Ｓ１０１に含まれる。Line  ９からLine １４まではデコードデータ長は参照ラインデータ長と同じであるので、上記処理を繰り返し実行する。Line １５をデコードすると、デコードデータ長は参照ラインであるLine １４よりも長くなるため、Ｓ１０２からＳ１０３へと処理が進む。
【００５２】
Line １５のようにデコードデータ長が参照ラインデータ長よりも長くなると、デコード結果を矩形領域とするためには現時点で最大長であるLine １５のデコードデータ長を矩形領域の幅として扱う必要があるが、この矩形領域を構成するラインであるLine １からLine １５を見直すと図７に示すように、Line １からLine １４の右側にはデータが何も書かれていない状態となる。前述したようにシードローデコード処理の後段の画像処理ブロックでは矩形領域のデータを処理対象として動作するため、Line １からLine １４までの右側に白データを追加して矩形領域データを生成して画像処理ブロックへ渡す必要がある。本実施例では図８に示すように、Line １５のデコード処理終了後、Line １からLine １４の右側に白データ８１３を書き出す処理を行う。Ｓ１０３以下の処理は白データ８１３を書き出す処理を説明するものである。
【００５３】
Ｓ１０３では、白データ出力開始アドレスの取得処理を行う。メモリ上に書き出したデコードデータの後に書き出す白データ出力開始アドレスは、レジスタブロック２０３のライン出力データ最終アドレスレジスタセットから取得した値に１を加えた値を使用する。図８に示すように、Line １からLine １４の右側にライン毎に順次白データを出力していく。まず、ライン出力データ最終アドレスレジスタセットの１番目のレジスタから読み出した値に１を加えてLine １の白データ出力開始アドレスを取得し、Ｓ１０４へ進む。
【００５４】
Ｓ１０４ではＳ１０３で取得したアドレスを先頭アドレスとして白データの出力処理を行う。出力する白データの長さは、Line １５のデコードデータ長からLine １のデコードデータ長を引いたものである。白データの出力を終了すると、Ｓ１０５へ進み、ライン出力データ最終アドレスレジスタセットの該当ラインの値をＳ１０４の白データを出力した最終アドレスの値で更新する。
【００５５】
Ｓ１０６では、シードローデコードの着目ラインの１つ前のラインまでの白データ出力処理が終了したかどうかを判定する。今はLine １５が着目ラインであるので、Line １からLine １４までの白データ出力処理が終了したかどうかを判定することになる。着目ラインの１つ前のラインまで白データ出力が終了していない場合は、Ｓ１０３へ戻って次のラインの白データ出力処理を行う。着目ラインの１つ前のラインまで白データの出力が終了している場合は、Ｓ１０７へ進む。
【００５６】
Ｓ１０７ではチェーンＤＭＡとして設定された全ラインのシードローデコード処理が終了したかどうかを判定する。デコード処理していないラインが残っている場合は、Ｓ１０１へ戻り次のラインのシードローデコード処理を行う。ここまでの処理ではLine １５までのデコード処理は終了しているので、Line １６からデコード処理を再開することになる。以下、上述した手順によってデコードを続けると、Line ２０で再びデコードデータ長が参照ラインデータ長より長くなる。そうすると再度Line １からLine １９の右側に白データを付加する処理を行う。図９の９１４で示す矩形ブロックに白データを付加することになる。９１４の白データを付加する処理の後、Line ２１からデコード処理を再開し、全ラインのシードローデコード処理が終了すると本処理を終了する。
【００５７】
上述したように、本実施例においては、シードロー・デコーダブロックはチェーンＤＭＡ動作によって複数ラインを連続デコード処理中にｎライン目のデコードデータ長が参照ラインデータ長よりも長くなったことを検出すると、１ライン目から（ｎ―１）ライン目の右側の該当するメモリ領域に対してライン毎に白データを付加する処理をハードウェアで実行するように構成したので、矩形領域データをソフトウェ処理の介在無しに得ることができ、従来問題となっていたＣＰＵの処理負荷の低減する課題を解決することができる。
【００５８】
（実施例２）
上記実施例１は、シードロー・デコーダブロックが矩形領域データを生成するためにデコードデータの右側に白データをメモリへ書き出す処理を行うものであった。実施例２は白データをデコードデータの右側のメモリ領域に書き出さずに、次段の画像処理ブロックが使用するバッファメモリ領域へデコードデータをコピーする際にデコードデータを付加するように構成したものである。
【００５９】
シードロー・デコーダブロックの構成を図１０に示す。内部バスインタフェースブロックはメモリ上のデコードデータを読み込み、設定された領域へ書き出すコピー機能を有する。
【００６０】
処理動作は図１１のフローチャートで説明する。図１１の処理動作を開始する前に、ＣＰＵはＲＡＭへシードローデコード処理のためのチェーンＤＭＡパラメータを設定し、更にデコードデータを画像処理バッファメモリ領域へコピー処理するためのパラメータについても設定しておく。デコーダブロック１００１はレジスタ設定によって動作モードが変更可能で、シードローデコード処理の他に後述するコピー処理を実行することができるよう構成されている。
【００６１】
まず、シードローデコード処理を行う（Ｓ２０１）。Ｓ２０１の処理は図１のＳ１０１の処理を前ライン分行う処理である。Ｓ２０１を終えると図６に示す２７ライン分のデコードデータがメモリ上に書き出される。ただし、本処理においては各ラインのデコードデータはメモリ上に連続して書き込むように動作する。実施例１と同様、シードローデコード処理をチェーンＤＭＡ設定によって動作させ、全ラインのデコード処理終了後、続けてデコードデータを画像処理用バッファメモリへコピーする動作を行う。最後のラインのデコード長をラインデコード長レジスタから取得する（Ｓ２０２）。実施例１でも説明したように、参照ラインデータ長は前ラインのデコードデータ長を使用するので、デコードデータ長の最大値は最終ラインのデコードデータ長となる。
【００６２】
次にＳ２０３で１ライン目のラインデコード長をラインデコード長レジスタから読み込み、Ｓ２０４で１ライン目のデコードデータを画像処理ブロック用のバッファ領域へコピーする処理を行う。この処理はシードロー・デコーダブロックの内部バスインタフェースブロックによって実行される。
【００６３】
次にラインデコード長と最終ラインデコード長を比較し、ラインデコード長の方が最終ラインデコード長よりも短い場合は、白データをＳ２０３でコピーしたラインデータの後ろへ続けて書き出し、ラインデコード長と付加した白データ長の合計が最終ラインデータ長となるまで続ける（Ｓ２０６）。
【００６４】
Ｓ２０７で全ラインの処理が終了したかどうかを判定する。全ラインの処理が終了していない場合はＳ２０３へ戻って次ラインも同様に処理を行う。Ｓ２０７で全ラインの処理が終了した場合は、本処理を終了する。
【００６５】
なお、本実施例のＳ２０３からＳ２０７の処理はシードローデコード処理と同様な機構でチェーンＤＭＡ処理可能なように構成されている。
【００６６】
上述したように、本実施例においては、シードロー・デコーダブロックはチェーンＤＭＡ動作によって複数ラインを連続してデコード処理した後、画像処理ブロックのバッファ領域へデコードデータをコピーする際に、各ラインのデコードデータ長と最終ラインのデコードデータ長を比較し、デコードデータ長の方が短い場合、デコードデータをコピーした後に白データを書き出して、画像処理ブロックのバッファ領域に矩形領域データが形成されるように動作する。
【００６７】
画像処理ブロックはこのようにして矩形領域データが形成された後処理を実行する。本実施例においても、矩形領域データをソフトウェ処理の介在無しに得ることができるため、従来問題となっていたＣＰＵの処理負荷の低減する課題を解決することができる。
【００６８】
（その他の実施例）
実施例１は、シードロー・デコーダブロックが矩形領域データを生成するためにデコードデータの右側に白データをメモリへ書き出す処理を行うものであり、デコード処理を行ったラインが直前のラインよりも長くなった時点で、１ライン目から直前のラインの右側に白データを付加する動作を行っていたが、実施例２のように最終ラインまでデコードを実行し、最終ラインのデコードデータ長と各ラインのデコードデータ長を比較し、最終ラインデコードデータ長の方が長い場合は、最終ラインデコードデータ長と同じ長さになるまで白データを各ラインのデコードデータに続けて出力するよう動作するよう構成しても構わない。
【００６９】
また、実施例１及び実施例２では、シードロー・デコーダ２０１のレジスタブロック２０３内部に実装したラインデコード長レジスタセット２０６、ライン出力データ最終アドレスレジスタセット２０７にそれぞれ各ラインのデコードデータ長とデコードデータを出力した最終アドレスを保持するように構成していたが、これらの情報をメモリ上の所定の領域に各ラインのデコード終了時に書き出し、白データを出力する必要が発生した時に、シードロー・デコーダ２０１がメモリ上から読み込むように構成することも可能である。この場合、実施例１及び実施例２ではレジスタセットの本数によって１回のチェーンＤＭＡで処理可能なライン数の最大値が決定されていたが、メモリ上に前述の情報を保存することにより、ライン数の最大値の制限が大幅に緩和することができるという効果がある。
【００７０】
また、実施例１ではデコードデータの右側に白データを書き出す際に使う先頭アドレスはライン出力データ最終アドレスに１を加えた値を使用していたが、あらかじめ１を加えたアドレスを保持しておき、保持しておいた値を使用しても構わないし、各ラインのデコードデータを書き出した先頭アドレスに各ラインのデコードデータ長を加えたアドレスを使用するように構成しても構わない。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施例１におけるデータ復号化装置の処理動作を示すフローチャートである。
【図２】本発明の実施例１におけるデータ復号化装置の内部構成を示すブロック図である。
【図３】本発明におけるプリンタシステムの構成を示すブロック図である。
【図４】本発明におけるプリンタのコントローラの構成を示すブロック図である。
【図５】本発明が対象とするプリントデータを示す図である。
【図６】本発明が対象とするプリントデータの矩形領域内の詳細を示す図である。
【図７】本発明が対象とするプリントデータの矩形領域内の復号化過程を説明する図である。
【図８】本発明の実施例１における復号化動作過程で復号化済みのラインデータの右側に出力する白データを示す図である。
【図９】本発明の実施例１における復号化動作過程で復号化済みのラインデータの右側に出力する白データを示す図である。
【図１０】本発明の実施例２におけるデータ復号化装置の内部構成を示すブロック図である。
【図１１】本発明の実施例２におけるデータ復号化装置の処理動作を示すフローチャートである。
【図１２】従来例における矩形領域を構成する１ラインのデコード処理の詳細を示すフローチャートである。
【図１３】従来例におけるデコード処理終了後のデータに白データを付加して矩形領域を生成する処理の詳細を示すフローチャートである。
【符号の説明】
【００７２】
Ｓ１０１  １ラインの圧縮データをデコード処理
Ｓ１０２  デコードされたラインデータ長と参照ラインデータ長を比較する処理
Ｓ１０３  白データ出力開始アドレスを取得する処理
Ｓ１０４  白データを出力する処理
Ｓ１０５  ライン出力データの最終アドレス更新処理
Ｓ１０６  着目ラインよりも前のラインの処理がすべて終了したかどうかを判定する処理
Ｓ１０７  全ラインの復号化処理が終了したかどうかを判定する処理
【図１】
2005354168.tif 000003
【図２】
2005354168.tif 000004
【図３】
2005354168.tif 000005
【図４】
2005354168.tif 000006
【図５】
2005354168.tif 000007
【図６】
2005354168.tif 000008
【図７】
2005354168.tif 000009
【図８】
2005354168.tif 000010
【図９】
2005354168.tif 000011
【図１０】
2005354168.tif 000012
【図１１】
2005354168.tif 000013
【図１２】
2005354168.tif 000014
【図１３】
2005354168.tif 000015