(57)【要約】【課題】圧縮効率の高い符号化を実現するとともに、並列処理が容易で、符号化された画像データ全体のデコード処理の処理速度を向上する。【解決手段】印刷装置は、画像を複数のブロックごとに可逆圧縮または非可逆圧縮され、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを、ブロックごとに復号して、印刷用の画像データを出力する復号化部を有し、復号化部は、可変長符号化データをブロックごとに分け、順次、ブロック符号化データとして読み出す読み出し部と、読み出したブロック符号化データを、先入れ先出し態様で記憶する複数段のバッファーと、ブロック符号化データに含まれる識別子が予め定められた値である場合に、バッファーに値０を一括して書き込む一括書込部と、バッファーからブロック符号化データを順次読み出して、可変長符号化データに対応した復号化を行う復号部と、を備える。【選択図】図１２
2020015214.tif 000002
【特許請求の範囲】
【請求項１】
画像を印刷する印刷装置であって、
前記画像を複数の画素からなる複数のブロックに分け、該ブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを取得する取得部と、
取得された前記可変長符号化データを、前記ブロックごとに復号して、印刷用の画像データを出力する復号化部と、
出力された前記印刷用の画像データを用いて印刷を行う印刷部と、
を有し、
前記復号化部は、
取得された前記可変長符号化データを前記ブロックごとに分け、順次、ブロック符号化データとして読み出す読み出し部と、
読み出した前記ブロック符号化データを、先入れ先出し態様で記憶する複数段のバッファーと、
前記ブロックごとに読み出された前記ブロック符号化データに含まれる前記識別子が、予め定められた値である場合に、前記バッファーに値０を一括して書き込む一括書込部と、
前記バッファーから前記ブロック符号化データを順次読み出して、前記可変長符号化データに対応した復号化を行う復号部と、
を備える、
印刷装置。
【請求項２】
請求項１に記載の印刷装置において、
前記可変長符号化データには、前記ブロック符号化データが、前記可逆圧縮または前記非可逆圧縮のいずれの圧縮がなされているかを示す値が保存されたタグが含まれており、
前記復号部は、
前記可逆圧縮された前記ブロック符号化データを可逆的に復号する可逆復号化部と、
前記非可逆圧縮された前記ブロック符号化データを非可逆的に復号する非可逆復号化部と、
を有し、
前記復号化部は、
前記ブロック符号化データに含まれる前記タグの値にしたがって、前記ブロック符号化データを、前記可逆復号化部または前記非可逆復号化部に振り分ける振り分け部を、
さらに備える、
印刷装置。
【請求項３】
請求項１または請求項２に記載の印刷装置において、
前記読み出し部は、前記識別子が、予め定められた値である場合に、処理中の前記ブロックの次の前記ブロックの前記可変長符号化データを読み出す、
印刷装置。
【請求項４】
請求項２に記載の印刷装置において、
前記可変長符号化データは、前記ブロックごとに、Ｎ（Ｎは２以上の整数）個の色成分ごとに直交変換を行うことにより得られる周波数成分を量子化した量子化値をそれぞれ可変長符号により圧縮した第１圧縮データと、異なる複数個の色がインデックスとして登録される辞書を用いて各画素の色と対応づけられた該インデックスをそれぞれ可変長符号により圧縮した第２圧縮データと、を含む符号化データであり、
前記可逆復号化部は、前記第２圧縮データを１サイクルで復号し、
前記非可逆復号化部は、前記第１圧縮データを多くともＮサイクルで復号する、
印刷装置。
【請求項５】
請求項１から請求項４までのいずれか一項に記載の印刷装置において、
前記復号化部を複数備える、
印刷装置。
【請求項６】
画像を印刷する印刷装置による印刷方法であって、
前記画像を複数の画素からなる複数のブロックに分け、該ブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを取得する取得工程と、
取得された前記可変長符号化データを、前記ブロックごとに復号して、印刷用の画像データを出力する復号化工程と、
出力された前記印刷用の画像データを用いて印刷を行う印刷工程と、
を有し、
前記復号化工程は、
取得された前記可変長符号化データを前記ブロックごとに分け、順次、ブロック符号化データとして読み出す工程と、
読み出した前記ブロック符号化データを、先入れ先出し態様の複数段のバッファーに記憶する工程と、
前記ブロックごとに読み出された前記ブロック符号化データに含まれる前記識別子が、予め定められた値である場合に、前記バッファーに値０を一括して書き込む工程と、
前記バッファーから前記ブロック符号化データを順次読み出して、前記可変長符号化データに対応した復号化を行う工程と、
を備える、
印刷方法。
【請求項７】
印刷システムであって、
画像の画像データを圧縮して可変長符号化データとする符号化装置と、該可変長符号化データを該符号化装置から取得し、印刷データに復号して印刷する印刷装置と、を備え、
前記符号化装置は、
前記可変長符号化データを、前記画像を複数の画素からなる複数のブロックに分け、該ブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データとして生成し、
前記印刷装置は、
前記可変長符号化データを取得する取得部と、
取得された前記可変長符号化データを、前記ブロックごとに復号して、印刷用の画像データを出力する復号化部と、
出力された前記印刷用の画像データを用いて印刷を行う印刷部と、
を有し、
前記復号化部は、
取得された前記可変長符号化データを前記ブロックごとに分け、順次、ブロック符号化データとして読み出す読み出し部と、
読み出した前記ブロック符号化データを、先入れ先出し態様で記憶する複数段のバッファーと、
前記ブロックごとに読み出された前記ブロック符号化データに含まれる前記識別子が、予め定められた値である場合に、前記バッファーに値０を一括して書き込む一括書込部と、
前記バッファーから前記ブロック符号化データを順次読み出して、前記可変長符号化データに対応した復号化を行う復号部と、
を備える、
印刷システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、印刷装置に関する。
【背景技術】
【０００２】
印刷装置と、該印刷装置に画像データを転送するホストコンピューターと、を備える印刷システムが知られている。かかる印刷システムでは、ホストコンピューターから印刷装置に画像データを転送する際に、転送速度の低下を抑制するために、ハフマン符号等の可変長符号により画像データを符号化し、符号化された符号化データを印刷装置に転送し、印刷装置において符号化データを復号化する技術が採用されている。画像データを符号化することにより転送速度のボトルネックは解消するものの、符号化の手法として圧縮効率の高い可変長符号を採用することにより、復号化のスループットを向上することが困難であった。印刷装置では、復号化を所定の速度以上で実行しなければ印刷が止まってしまうことがある。そこで、従来、可変長符号の復号化の処理速度の向上に関する技術が種々提案されている。例えば、特許文献１には、複数の可変長符号デコーダーを備え、各可変長符号デコーダーにおけるデコード処理を並列して実行する技術が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−４５４８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、可変長符号の符号長は、可変長符号テーブルをルックアップしなければ判明しないことから、複数の可変長符号をデコードするためには、可変長符号テーブルを逐次ルックアップする必要があり、１サイクルにおけるデコード処理の処理速度の向上が困難である。また、ＲＧＢからなるカラー画像を符号化する場合において、各色成分Ｒ、Ｇ、Ｂをまとめて一つの符号とすると、符号長が長くなってしまうとともに、膨大な可変長符号テーブルをルックアップする必要があり、デコード処理の処理速度の向上が困難である。したがって、各色成分Ｒ、Ｇ、Ｂごとに符号化を行って１サイクルの時間を短縮することにより、画像全体のデコード処理の処理速度を向上し、画像全体の印刷に要する時間を低減する必要がある。
【課題を解決するための手段】
【０００５】
本開示の一実施形態によれば、印刷装置が提供される。この印刷装置は、画像を印刷する印刷装置であって；前記画像を複数の画素からなる複数のブロックに分け、該ブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを取得する取得部と；取得された前記可変長符号化データを、前記ブロックごとに復号して、印刷用の画像データを出力する復号化部と；出力された前記印刷用の画像データを用いて印刷を行う印刷部と；を有し；前記復号化部は、取得された前記可変長符号化データを前記ブロックごとに分け、順次、ブロック符号化データとして読み出す読み出し部と；読み出した前記ブロック符号化データを、先入れ先出し態様で記憶する複数段のバッファーと；前記ブロックごとに読み出された前記ブロック符号化データに含まれる前記識別子が、予め定められた値である場合に、前記バッファーに値０を一括して書き込む一括書込部と；前記バッファーから前記ブロック符号化データを順次読み出して、前記可変長符号化データに対応した復号化を行う復号部と；を備える。
【図面の簡単な説明】
【０００６】
【図１】一実施形態としての印刷システムの構成を示すブロック図。
【図２】印刷装置の概略構成を示す説明図。
【図３】印刷制御装置および印刷装置により実行される印刷処理の処理手順を示すフローチャート。
【図４】画像符号化処理の処理手順を示すフローチャート。
【図５】画像符号化処理の処理手順を示すフローチャート。
【図６】辞書インデックス、可変長符号および符号ビット長の関係の一例を示す説明図。
【図７】辞書の更新の様子を模式的に示す説明図。
【図８】辞書の更新の様子を模式的に示す説明図。
【図９】ハールウェーブレット変換および逆変換の演算を模式的に示す説明図。
【図１０】ハールウェーブレット変換の様子を模式的に示す説明図。
【図１１】量子化シフト値の一例を示す説明図。
【図１２】復号化部の内部構成を示すブロック図。
【図１３】復号化部による復号の様子を模式的に示す説明図。
【発明を実施するための形態】
【０００７】
Ａ．実施形態：
Ａ１．装置構成：
図１は、本開示の一実施形態としての印刷システム３００の構成を示すブロック図である。印刷システム３００は、印刷制御装置１００と、印刷制御装置１００の制御の下で実際に画像を印刷する印刷装置２００と、から構成されている。印刷システム３００は、全体が一体となった広義の印刷装置として機能する。
【０００８】
印刷制御装置１００は、コンピューターにより構成されている。印刷制御装置１００は、ユーザーから入力される画像データを可変長符号により符号化し、符号化された符号化データを印刷装置２００に送信する。印刷制御装置１００は、記録媒体１１０と、ＣＰＵ１３０と、転送部１５０とを備える。記録媒体１１０と、ＣＰＵ１３０と、転送部１５０とは、いずれも図示しない内部バスにより接続されている。
【０００９】
記録媒体１１０は、ＲＡＭ、ＲＯＭ等を含む。記録媒体１１０は、プログラム１１１を記録する。プログラム１１１としては、例えば、プリンタードライバーや、後述の画像符号化処理を実行するためのプログラム等が該当する。記録媒体１１０には、プログラム１１１の他、画像符号化処理で用いる各種テーブルおよび辞書等が格納されている。
【００１０】
ＣＰＵ１３０は、符号化部１３１を備える。符号化部１３１としての機能は、ＣＰＵ１３０が記録媒体１１０に格納されている制御プログラムを実行することにより実現される。
【００１１】
符号化部１３１は、ユーザーから入力される印刷対象画像の画像データを、可逆モードと、非可逆モードとのうちのいずれかを選択して圧縮する。本実施形態において、「印刷対象画像」は、ＲＧＢからなるカラー画像であり、１画素につきＲ、Ｇ、Ｂ各８ビットの合計２４ビットの画像である。なお、印刷対象画像は、１画素につきＲ、Ｇ、Ｂ各９ビット以上の画像であってもよい。画像の符号化についての詳細な説明は、後述する。
【００１２】
転送部１５０は、印刷制御装置１００と印刷装置２００との間で無線通信を行って、符号化部１３１により符号化された符号化データを、印刷装置２００に送信する。転送部１５０は、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）を含む無線ＬＡＮ等の規格に準拠した無線通信を行う。
【００１３】
印刷装置２００は、４色のインク、具体的には、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）のインクを吐出するインクジェットプリンターである。印刷装置２００は、印刷制御装置１００から送信される符号化データを復号化して、復号された印刷データ（以下、「復号済み印刷データ」と呼ぶ）を取得し、かかる復号済み印刷データに基づいて印刷媒体に対して複数のノズルからインクを吐出することにより、印刷媒体上にドットを形成し、画像や文字等を印刷する。印刷装置２００は、取得部２５０と、復号化部２３０と、印刷部２１０とを備える。
【００１４】
取得部２５０は、印刷装置２００と印刷制御装置１００との間で無線通信を行って、印刷装置２００から符号化データを取得する。取得部２５０は、印刷制御装置１００の転送部１５０と同様に、例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）を含む無線ＬＡＮ等の規格に準拠した無線通信を行う。
【００１５】
復号化部２３０は、印刷制御装置１００の符号化部１３１により符号化された符号化データを復号化して復号済み印刷データを取得する。本実施形態において、復号化部２３０は、汎用のコンピューターではなく、ハードウェアで実現される。復号化部２３０は、半導体チップ上に実装された回路である。復号化部２３０の詳細構成については、後述する。
【００１６】
印刷部２１０は、復号済み印刷データから印刷データを生成する処理および印刷データに基づく印刷の統合制御処理を行う。これらの処理は周知の技術なので、詳細な説明は省略するが、概要を説明すると、印刷部２１０は、復号済み印刷データの解像度を印刷解像度に変換し、インク色Ｃ、Ｍ、Ｙ、Ｋの階調値で表現される画像データに変換する。印刷部２１０は、各インク色の画像データを各インク色のドットの有無、すなわち、ドット有り（２５５）とドット無し（０）の２階調の階調値に変換する。印刷部２１０は、各インク色Ｃ、Ｍ、Ｙ、Ｋの媒体Ｐ上のドットの有無を示すデータをラスタライズし、印刷制御用のコマンドを含む印刷データを生成する。印刷部２１０は、印刷装置２００の各部を制御して、印刷データを印刷させる。
【００１７】
図２は、印刷装置２００の概略構成を示す説明図である。印刷装置２００は、上述の印刷部２１０に加えて、ヘッドユニット２７０と、キャリッジモーター２８０と、搬送モーター２９０と、駆動ベルト２６１と、フレキシブルケーブル２６２と、プラテン２６３とを備える。
【００１８】
印刷部２１０は、ＣＰＵ、ＲＡＭおよび入出力インターフェイスを備える装置であり、ＣＰＵがＲＡＭに格納されたコンピュータープログラムを実行することにより、印刷装置２００の各部の制御が行われる。
【００１９】
ヘッドユニット２７０は、フレキシブルケーブル２６２を介して印刷部２１０と電気的に接続されている。ヘッドユニット２７０は、図示しないキャリッジガイドに主走査方向Ｄ１に往復移動可能に取り付けられている。ヘッドユニット２７０は、駆動ベルト２６１を介して伝達されるキャリッジモーター２８０の動力により主走査方向Ｄ１に沿って往復移動する。
【００２０】
ヘッドユニット２７０は、キャリッジ２７１と、４つのインクカートリッジ２７２と、印刷ヘッド２７３とを備える。キャリッジ２７１には、インク色ごとの４つのインクカートリッジ２７２が装着されている。本実施形態では、４つのインクカートリッジ２７２には、シアン（Ｃ）、マゼンタ（Ｍ）、イエロー（Ｙ）およびブラック（Ｋ）のインクがそれぞれ収容されている。印刷ヘッド２７３には、印刷媒体Ｐに対向する面にインクを吐出する複数のノズル列が設けられている。インクカートリッジ２７２から印刷ヘッド２７３に供給されたインクは、ノズルから液滴状に吐出される。
【００２１】
搬送モーター２９０は、印刷部２１０からの制御信号に応じて駆動する。搬送モーター２９０の動力がプラテン２６３に伝達することにより、印刷媒体Ｐが副走査方向Ｄ２に搬送される。
【００２２】
印刷部２１０は、印刷データの生成が完了すると、搬送モーター２９０を駆動し、印刷媒体Ｐを副走査方向Ｄ２の印刷開始位置まで搬送させる。印刷部２１０は、キャリッジモーター２８０を駆動し、ヘッドユニット２７０を主走査方向Ｄ１の印刷開始位置まで移動する。印刷部２１０は、ヘッドユニット２７０を主走査方向Ｄ１に沿って移動させるとともにヘッドユニット２７０から印刷媒体Ｐにインクを吐出する制御と、印刷媒体Ｐを印刷方向である副走査方向Ｄ２に搬送するための搬送モーター２９０の制御とを交互に繰り返す。これにより、印刷媒体Ｐに画像が印刷される。なお、図２において、ヘッドユニット２７０は、主走査方向Ｄ１に沿って往復移動し、印刷媒体Ｐは、主走査方向Ｄ１と交差する副走査方向Ｄ２の上流から下流に沿って搬送される。本実施形態では、副走査方向Ｄ２は、主走査方向Ｄ１と直交する方向である。
【００２３】
Ａ２．印刷処理：
図３は、印刷制御装置１００および印刷装置２００により実行される印刷処理の処理手順を示すフローチャートである。図３の左側に示すように、ユーザーが印刷制御装置１００において印刷対象画像を指定して印刷指示を行うと、印刷制御装置１００における印刷処理が開始される。符号化部１３１は、画像符号化処理を実行する（ステップＳ１００）。画像符号化処理は、後述のブロックを単位として行われる。次に、転送部１５０は、取得部２５０と無線通信を行って、符号化データを印刷装置２００に転送する（ステップＳ１０５）。このとき、符号化データは、後述のバンド単位で転送される。
【００２４】
図３の右側に示すように、取得部２５０が転送部１５０を介して印刷制御装置１００から符号化データを受信すると、印刷装置２００における印刷処理が開始される。取得部２５０は、符号化データを取得する（ステップＳ１１０）。次に、復号化部２３０は、画像復号化処理を実行する（ステップＳ１１５）。画像復号化処理は、画像符号化処理と同様に、後述のブロックを単位として行われる。次に、印刷部２１０は、復号済み印刷データに基づき、印刷対象画像を印刷する（ステップＳ１２０）。以下、図４〜図１３を用いて、画像符号化処理および画像復号化処理の処理内容について説明する。
【００２５】
Ａ３．画像符号化処理：
図４および図５は、ステップＳ１００としての画像符号化処理の処理手順を示すフローチャートである。図４に示すように、符号化部１３１は、ブロックデータを取得する（ステップＳ２１０）。「ブロック」とは、印刷対象画像における複数の画素の構成を意味し、本実施形態では、８×８の画素から構成されている。印刷対象画像全体において、縦方向や横方向の画素数が８の倍数でない場合、画像の端において８×８画素に満たないブロックが発生する。この場合、符号化部１３１は、８×８画素になるようにダミーの画素を補うことによって、８×８のブロックの画素データを取得する。なお、ブロックは、８×８の画素に限らず、例えば、４×４画素でもよいし、１６×１６画素でもよいし、他の任意の画素数でもよい。
【００２６】
次に、符号化部１３１は、記録媒体１１０を用いて、後述の辞書をバックアップする（ステップＳ２１５）。辞書をバックアップするのは、辞書が更新されても更新前の状態に復元できるようにするためである。なお、辞書の構成等についての詳細な説明は、後述する。
【００２７】
次に、符号化部１３１は、着目画素の色を辞書インデックスに変換する（ステップＳ２２０）。ステップＳ２２０において、符号化部１３１は、ブロックを構成する６４画素を１画素ずつ順に着目し、各画素につき各色成分Ｒ、Ｇ、Ｂの組み合わせを辞書インデックスに変換する。このとき、符号化部１３１は、辞書の先頭のインデックス（後述の辞書インデックス０）に変換された回数をカウントする。これは、１ブロック分の符号化対象のデータにおいて値０が連続する場合、すなわち、１ブロック内ですべて同じ色となる場合に、より高い圧縮効果を得るためである。このため、ステップＳ２２０では、各画素の各色成分Ｒ、Ｇ、Ｂの組み合わせを辞書インデックスに変換するとともに、辞書の先頭の辞書インデックスに変換された回数をカウントする。
【００２８】
図６は、辞書インデックス、可変長符号および符号ビット長の関係の一例を示す説明図である。辞書インデックスには、Ｎ（Ｎは自然数）個それぞれ異なる色が登録されている。上記Ｎは、予め定められた固定値である。本実施形態における辞書インデックスは、説明の便宜上、０、１、２および３の４つとする。なお、辞書インデックスの数は、４つに限らず、他の任意の自然数としてもよい。図６に示すように、辞書インデックスには、それぞれ互いに異なる可変長符号が対応づけられている。符号ビット長は、可変長符号のビット長である。本実施形態では、辞書インデックス０に対応づけられている可変長符号の符号ビット長が最も短くなるように、各辞書インデックスに可変長符号が対応づけられている。
【００２９】
上述のステップＳ２２０において、符号化部１３１は、着目画素の各色Ｒ、Ｇ、Ｂの組み合わせが辞書インデックスのいずれに該当するかを特定し、特定された辞書インデックスに対応づけられている可変長符号を出力する。具体的には、図６に示すように、着目画素の色が辞書インデックス０に登録されている色である場合、符号化部１３１は、可変長符号として１を出力する。この場合、符号ビット長は１である。すなわち、符号のデータ量は、１ビットである。また、着目画素の色が辞書インデックス１に登録されている色である場合、符号化部１３１は、可変長符号として０１を出力する。この場合、符号ビット長は２である。すなわち、符号のデータ量は２ビットである。
【００３０】
同様に、着目画素の色が辞書インデックス２または３に登録されている色である場合、符号化部１３１は、可変長符号として００１または００００を出力する。この場合、符号ビット長は３または４である。すなわち、符号のデータ量は３ビットまたは４ビットである。
【００３１】
着目画素の色が辞書に登録されていない色である場合、符号化部１３１は、可変長符号として０００１を出力する。この場合、符号ビット長は４である。すなわち、符号のデータ量は４ビットである。
【００３２】
以上の処理の後、符号化部１３１は、辞書を更新する（図４、ステップＳ２２５）。
【００３３】
図７および図８は、辞書の更新の様子を模式的に示す説明図である。図７では、辞書インデックス０に色Ｃ０が、辞書インデックス１に色Ｃ１が、辞書インデックス２に色Ｃ２が、辞書インデックス３に色Ｃ３が、それぞれ登録されている例を示している。図８では、着目画素の色が、辞書に登録されていない例を示している。
【００３４】
図７に示すように、着目画素の色が色Ｃ２である場合、先頭の辞書インデックス０に色Ｃ２が登録される。さらに、着目画素の色が登録されていた辞書インデックスよりも上位の辞書インデックスは、１つずつ繰り下げられる。具体的には、辞書インデックス１に色Ｃ０が登録され、辞書インデックス２に色Ｃ１が登録される。着目画素の色が登録されていた辞書インデックスよりも下位の辞書インデックスは、変更されない。すなわち、図７に示す例では、辞書インデックス３は変更されない。
【００３５】
次に着目画素の色が辞書に登録されていない場合について説明する。ここで、図８において、更新前の辞書に登録されている色は、図７に示す例と同じである。図８に示すように、着目画素の色Ｃｘは、辞書に登録されていない。この場合、先頭の辞書インデックス０に色Ｃｘが新規に登録される。さらに、辞書インデックス０、１および２は、それぞれ１つずつ繰り下げられる。具体的には、辞書インデックス１に色Ｃ０が登録され、辞書インデックス２に色Ｃ１が登録され、辞書インデックス３に色Ｃ２が登録される。最も下位の辞書インデックス３に登録されていた色Ｃ３は、削除される。なお、上述のように、着目画素の色が辞書に登録されていない色である場合には、辞書符号化において、可変長符号として０００１が出力されるとともに、着目画素の色Ｃｘを示す可逆的な固定長の符号が出力される。
【００３６】
上述のステップＳ２２５において、符号化部１３１は、上述の手順により辞書を更新するので、辞書に登録されている色は、過去に辞書に登録された実績がある色のうち、直近に辞書に登録された各々異なる４つの色となる。また、辞書インデックス０に登録されている色を符号化する場合、辞書は更新されない。このように、直近に符号化した色を先頭の辞書インデックス０に移動させるのは、以下の理由による。辞書インデックス０に対応付けられている可変長符号の符号ビット長が最も短いことから、出現頻度が高い色ほど短い符号によって符号化することができ、符号化データの情報量を低減させることができるからである。なお、先頭ではない辞書インデックスに最も短い符号ビット長が対応づけられている構成においては、かかる辞書インデックスに、直近に符号化した色を登録してもよい。
【００３７】
図４に示すように、符号化部１３１は、新規に辞書に登録された色の数である新規登録色数Ｎｎが基準値Ｎより大きくなったか否かを判定する（ステップＳ２３０）。本実施形態において、「基準値Ｎ」は、予め定められた自然数である。本実施形態において、基準値Ｎは、上述のように、説明の便宜上、４としている。なお、基準値Ｎは、他の任意の自然数を設定してもよい。
【００３８】
ステップＳ２３０において、新規登録色数Ｎｎが基準値Ｎ以下である場合（ステップＳ２３０：ＮＯ）、符号化部１３１は、ブロック内の全画素を符号化したか否かを判定する（ステップＳ２３５）。符号化していない画素が残っている場合（ステップＳ２３５：ＮＯ）、符号化部１３１は、上述のステップＳ２２０に戻り、上述したステップＳ２２０〜ステップＳ２３５の処理を繰り返す。
【００３９】
新規登録色数Ｎｎが基準値Ｎ以下であることが満たされている間に、ブロック内の全画素が符号化された場合（ステップＳ２３５：ＹＥＳ）、符号化部１３１は、可逆符号化を実行する。具体的には、符号化部１３１は、タグ信号を、可逆符号化を示す値０に設定する（ステップＳ２４５）。タグ信号とは、符号化モードの種類を示すビットフラグである。本実施形態では、符号化モードとして、非可逆モードと、辞書を用いた可逆モードとの２種類のモードが存在する。
【００４０】
次に、符号化部１３１は、ゼロランがあるか否かを判定する（ステップＳ２５０）。本実施形態において、「ゼロラン」とは、１つのブロックにおける符号化対象のデータが連続して値０であることを意味する。辞書符号化の場合には、１ブロック分の全画素において、辞書インデックス０に対応する色が連続して表れることであると言い換えることができる。ステップＳ２５０において、符号化部１３１は、上述のステップＳ２２０においてカウントした辞書インデックス０に変換された回数が１ブロック分の回数、すなわち、６４回であるか否かを判定する。辞書インデックス０に変換された回数が６４回である場合、符号化部１３１は、ゼロランがあると判定し（ステップＳ２５０：ＹＥＳ）、ゼロラン識別子を、ゼロランありを示す値１に設定する（ステップＳ２５５）。他方、辞書インデックス０に変換された回数が６４回でない場合、符号化部１３１は、ゼロランがないと判定し（ステップＳ２５０：ＮＯ）、ゼロラン識別子を、ゼロランなしを示す値０に設定する（ステップＳ２６０）。
【００４１】
次に、符号化部１３１は、タグ信号と、ゼロラン識別子と、上述のステップＳ２２０で変換した、１ブロック分、すなわち６４画素分の辞書インデックスの符号化データと、を圧縮ストリームに出力する（ステップＳ２６５）。具体的には、ゼロラン識別子が値０である場合、すなわち、符号化対象のブロックにおいてゼロランが発生していない場合、符号化部１３１は、１ビットの固定長のタグ信号、１ビットの固定長のゼロラン識別子、および１ブロック分の可変長符号を、この順で圧縮ストリームに出力する。他方、ゼロラン識別子が値１である場合、すなわち、符号化対象のブロックにおいてゼロランが発生している場合、符号化部１３１は、１ブロック分の可変長符号を省略し、１ビットの固定長のタグ信号、および１ビットの固定長のゼロラン識別子を圧縮ストリームに出力する。以上で１つのブロックに対する可逆符号化が完了する。なお、ステップＳ２２０、ステップＳ２４５〜ステップＳ２６５により得られた圧縮データは、後述の他の形態（４）における第２圧縮データに相当する。
【００４２】
図５に示すように、符号化部１３１は、印刷対象画像を構成する全ブロックデータを取得したか否かを判定する（ステップＳ３００）。全ブロックデータを取得していない、すなわち、符号化していないブロックデータが存在する場合（ステップＳ３００：ＮＯ）、符号化部１３１は、上述のステップＳ２１０に戻る。
【００４３】
ブロック内の全画素が符号化される前に、新規登録色数Ｎｎが基準値Ｎよりも大きくなった場合（ステップＳ２３０：ＹＥＳ）、符号化部１３１は、上述のステップＳ２１５での辞書のバックアップを利用して、辞書を復元する（ステップＳ２４０）。これは、取得したブロックについては非可逆符号化を行うものとし、可逆符号化のために更新してきた辞書は使わないからであり、ステップＳ２４０では、次のブロックを符号化するときのために、辞書を元の状態に戻しておくからである。
【００４４】
図５に示すように、符号化部１３１は、非可逆符号化処理を実行する。具体的には、符号化部１３１は、タグ信号を、可逆符号化を示す値１に設定する（ステップＳ２７０）。なお、ステップＳ２４５およびステップＳ２７０において、可逆符号化を示す値を１とし、非可逆符号化を示す値をゼロとしてもよい。次に、符号化部１３１は、非可逆符号化を行う（ステップＳ２７５）。本実施形態では、ハールウェーブレット変換を採用する。
【００４５】
図９は、ハールウェーブレット変換および逆変換の演算を模式的に示す説明図である。上述のように、本実施形態では、ブロックが８×８画素であるので、入力画素データは８×８画素であるが、説明の便宜上、図９では、入力画素データが２×２画素の場合を示している。入力画素データとしてのＡ０〜Ａ３の４画素は、各色成分Ｒ、Ｇ、Ｂそれぞれについて、低周波成分ＬＬと、水平エッジ成分ＨＬと、垂直エッジ成分ＬＨと、斜めエッジ成分ＨＨとの４つに変換される。本実施形態において、符号化部１３１は、入力画素データの変換の演算に加減算およびシフト演算のみを用いている。
【００４６】
図１０は、本実施形態における実際のハールウェーブレット変換の様子を模式的に示す説明図である。図１０では、入力画素データが８×８画素の場合を示している。図１０に示すように、符号化部１３１は、低周波成分ＬＬを対象に、階層的に３回、ウェーブレット変換を実行する。具体的には、入力画素データは、各色成分Ｒ、Ｇ、Ｂごとに、１回目のウェーブレット変換で、それぞれ４×４画素の４つのサブバンドに分割される。すなわち、４×４画素の低周波成分ＬＬ１と、４×４画素の水平エッジ成分ＨＬ１と、４×４画素の垂直エッジ成分ＬＨ１と、４×４画素の斜めエッジ成分ＨＨ１とに変換される。なお、以降の説明において、低周波成分をＤＣ成分と、水平エッジ成分、垂直エッジ成分、および斜めエッジ成分をＡＣ係数群と呼ぶことがある。
【００４７】
次に、２回目の変換で、１回目の変換で得られた低周波成分ＬＬ１を対象に各色成分Ｒ、Ｇ、Ｂごとにウェーブレット変換が実行されて、それぞれ２×２画素の４つのサブバンドに分割される。すなわち、それぞれ２×２画素の、低周波成分ＬＬ２と、水平エッジ成分ＨＬ２と、垂直エッジ成分ＬＨ２と、斜めエッジ成分ＨＨ２とに変換される。そして、３回目のウェーブレット変換で、２回目のウェーブレット変換で得られた低周波成分ＬＬ２を対象に各色成分Ｒ、Ｇ、Ｂごとにウェーブレット変換が実行されて、それぞれ１画素の４つのサブバンドに分割される。すなわち、それぞれ１画素の、低周波成分ＬＬ３と、水平エッジ成分ＨＬ３と、垂直エッジ成分ＬＨ３と、斜めエッジ成分ＨＨ３とに変換される。なお、一般的に、変換後における情報量としてのエントロピーの低下幅は、写真のような自然画像では、偏りが生じる。具体的には、ＬＬ３のエントロピーの低下は少ない一方、例えば、ＨＨ１のような高域成分のエントロピーは２〜４ビット程度、低下する。
【００４８】
図９に示すように、符号化部１３１は、各色成分Ｒ、Ｇ、Ｂごとに変換された各周波数成分を量子化する。具体的には、符号化部１３１は、入力値がｘである場合における量子化値Ｑ（ｘ）を、下記の式により算出する。なお、関数ｉｎｔは、小数点以下を切り捨てて整数部分のみを取る演算子である。
Ｑ（ｘ）＝ｉｎｔ｛（ｘ＋ＱＳ／２）／ＱＳ｝
【００４９】
上記の式では、量子化をハードウェアで実現する形態も考慮して、除算を使わないシフト演算で可能な値としている。また、量子化シフト値ＱＳとしては、高域成分ほど大きな値を採用する。これは、一般に、周波数成分が高ければ高いほど、圧縮率を高くしてもヒトの視覚には知覚されにくいという理由による。
【００５０】
図１１は、量子化シフト値ＱＳの一例を示す説明図である。図１１では、量子化後の画像の画質の程度を示すクオリティｑ０、ｑ１、ｑ２の３種類のテーブルを用意する場合を例示している。クオリティｑ０、ｑ１、ｑ２の順に画質は高くなる。図１１に示すように、ｑ１は、ｑ０に比べて、周波数成分ＨＬ２、ＬＨ２、ＨＨ２およびＨＬ１、ＬＨ１、ＨＨ１に対応づけられた量子化シフト値ＱＳが小さいので、切り捨てられるビット数が小さく、圧縮率が低くなる代わりに、画質が良好になる。同様に、ｑ２は、ｑ１に比べて、周波数成分ＨＬ１、ＬＨ１、ＨＨ１に対応付けられた量子化シフト値ＱＳが小さいので、切り捨てられるビット数が小さく、圧縮率が低くなる代わりに、画質が良好になる。
【００５１】
図９に示すように、符号化部１３１は、量子化後の各成分を、各々の生起確率に応じた可変長符号に変換する。具体的には、符号化部１３１は、まず、ＤＣ成分ＬＬ１を可変長符号に変換し、次に、ＡＣ係数群ＨＬ２、ＬＨ２およびＨＨ２を可変長符号に変換する。そして、符号化部１３１は、ＡＣ係数群ＨＬ１、ＬＨ１およびＨＨ１をそれぞれ３回可変長符号に変換する。このとき、符号化部１３１は、上述の可逆符号化の場合と同様に、１ブロック分の符号化対象のデータのうち、ＡＣ係数群ＨＬ１、ＬＨ１、ＨＨ１、ＨＬ２、ＬＨ２およびＨＨ２が連続して値０であるかを特定する。これは、上述のステップＳ２２０と同様に、１ブロック分の符号化対象データにおいて値０が連続する場合、すなわち、高周波成分であるＡＣ係数群がない場合に、より高い圧縮効果を得るためである。
【００５２】
そして、図５に示すように、符号化部１３１は、上述のステップＳ２５０〜ステップＳ２６０と同様に、ゼロランがあるか否かを判定し（ステップＳ２８０）する。ゼロランがあると判定された場合（ステップＳ２８０：ＹＥＳ）、ゼロラン識別子を、ゼロランありを示す値１に、ゼロランがないと判定された場合（ステップＳ２５０：ＮＯ）、ゼロラン識別子を、ゼロランなしを示す値０に、それぞれ設定する（ステップＳ２８５、ステップＳ２９０）。なお、「ゼロラン」とは、非可逆符号化の場合には、１ブロック分の全画素において、量子化後のＡＣ係数群がすべて値０であると言い換えることができる。
【００５３】
次に、符号化部１３１は、タグ信号と、ゼロラン識別子と、非可逆変換後の符号化データと、を圧縮ストリームに出力する（ステップＳ２９５）。具体的には、ゼロラン識別子が値０である場合、すなわち、符号化対象のブロックにおいてゼロランが発生していない場合、符号化部１３１は、１ビットの固定長のタグ信号、１ビットの固定長のゼロラン識別子、および１ブロック分の非可逆変換後の符号化データを、圧縮ストリームに出力する。このとき、符号化部１３１は、ゼロラン識別子と、ＡＣ係数群の各符号化データとを対応づけて出力する。具体的には、ＡＣ係数群ＨＬ２、ＬＨ２およびＨＨ２の符号化データ、３回分のＡＣ係数群ＨＬ１、ＬＨ１およびＨＨ１の各符号化データの各先頭にゼロラン識別子が埋め込まれる。
【００５４】
他方、ゼロラン識別子が値１である場合、すなわち、符号化対象のブロックにおいてゼロランが発生している場合、符号化部１３１は、１ブロック分の非可逆変換後の符号化データを省略し、１ビットの固定長のタグ信号、および１ビットの固定長のゼロラン識別子を圧縮ストリームに出力する。以上で１つのブロックに対する非可逆符号化が完了する。なお、ステップＳ２７０〜ステップＳ２９５により得られた圧縮データは、後述の他の形態（４）における第１圧縮データに相当する。
【００５５】
図４および図５に示すように、上述のステップＳ２１０〜ステップＳ３００の処理を繰り返し実行することにより、符号化部１３１は、ブロックデータごとに辞書符号化または非可逆符号化のいずれかによってブロックデータを符号化する。全てのブロックデータの符号化が完了すると（ステップＳ３００：ＹＥＳ）、符号化データが完成したとして、画像符号化処理（図３、ステップＳ１００）を終了する。
【００５６】
Ａ４．画像復号化処理：
次に、印刷装置２００において行われる符号化データの復号化について説明する。画像復号化処理は、印刷装置２００の復号化部２３０によって実行される。上述のように、復号化部２３０は、ハードウェアによって構成されている。
【００５７】
図１２は、復号化部２３０の内部構成を示すブロック図である。復号化部２３０は、読み出し部２３１と、可変長符号デコード部２３２と、一括書込部２３３と、振り分け部２３４と、復号部２３５と、出力データ制御部２３６と、復号化データ出力部２３７とを備える。
【００５８】
読み出し部２３１は、取得部２５０を介して印刷制御装置１００から取得したバンド単位の符号化データを、ブロック単位に分割して、ブロック符号化データとして読み出し用バッファーｂｆ１に読み込む。本実施形態において、バンドとは、印刷対象画像における副走査方向Ｄ２に所定の個数のブロックの画素数に対応した数のラスターを意味する。本実施形態では、上述の所定の個数は、８個であり、１バンドは、６４ラスターである。なお、所定の個数は、８個に代えて、任意の自然数個としてもよい。
【００５９】
図１２に示すように、読み出し用バッファーｂｆ１には、各ブロック符号化データとして、符号化モードの種類を示すフラグであるタグ信号ｔｇと、ゼロランであるか否かを示すフラグであるゼロラン識別子ｉｄｆと、１つの可変長符号化データｂｄとが、この順番に格納される。上述のように、タグ信号ｔｇおよびゼロラン識別子ｉｄｆは、それぞれ１ビットの固定長データであるため、可変長符号化データｂｄと同時に読み出して、ブロック符号化データから切り出すことができる。
【００６０】
上述の画像符号化処理において説明したように、タグ信号ｔｇが値０の場合、可変長符号化データｂｄは可逆符号化により符号化されており、タグ信号ｔｇが値１の場合には、可変長符号化データｂｄは非可逆符号化により符号化されている。また、ゼロラン識別子ｉｄｆが値１の場合、ブロック内でゼロランが発生しており、ゼロラン識別子ｉｄｆが値０の場合、ブロック内でゼロランは発生していない。
【００６１】
可変長符号デコード部２３２は、図示しないＶＬＣテーブルを用いて、可変長符号化データｂｄをデコードする。ＶＬＣテーブルとしては、上述の画像符号化処理で用いた、図５に示すテーブルが該当する。
【００６２】
一括書込部２３３は、可変長符号デコード部２３２によりデコードされた符号化データを中間データ用バッファーｂｆ２に格納する。このとき、一括書込部２３３は、ゼロラン識別子ｉｄｆを利用して、各ブロックにおいてゼロランが発生しているか否かを判断し、ゼロランが発生している場合には、当該ブロックの符号化データとして、中間データ用バッファーｂｆ２に値０を一括して書き込む。これは、１ブロック分の符号化対象データがすべて値０である場合には、中間データ用バッファーｂｆ２への書き込み処理の処理速度を向上させ、復号化に要する時間を短縮するためである。なお、一括書込部２３３による中間データ用バッファーｂｆ２へのデータの書き込み、および中間データ用バッファーｂｆ２についての詳細な説明は、後述する。
【００６３】
振り分け部２３４は、中間データ用バッファーｂｆ２からブロック符号化データを読み出してタグ信号ｔｇを検出し、検出されたタグ信号ｔｇの値にしたがって当該ブロックの可変長符号化データｂｄが、可逆符号により符号化されたものであるか、非可逆符号化により符号化されたものであるかを判定する。可変長符号化データｂｄが可逆符号により符号化されたものである場合、振り分け部２３４は、復号部２３５のうち、後述の可逆復号化部２４５に可変長符号化データｂｄを復号させる。他方、可変長符号化データｂｄが非可逆符号により符号化されたものである場合、振り分け部２３４は、復号部２３５のうち、後述の非可逆復号化部２４１に可変長符号化データｂｄを復号させる。
【００６４】
復号部２３５は、中間データ用バッファーｂｆ２からブロック符号化データを読み出して、ブロック符号化データに対応した復号化を行う。復号部２３５は、非可逆復号化部２４１と、可逆復号化部２４５とを備える。
【００６５】
非可逆復号化部２４１は、非可逆符号化モードで符号化された可変長符号化データｂｄを復号する。非可逆復号化部２４１は、振り分け部２３４により可変長符号化データｂｄが非可逆符号化されたものであると判定されると、イネーブル状態にされる。本実施形態において、非可逆復号化部２４１は、１画素を１サイクルで復号する。
【００６６】
非可逆復号化部２４１は、ハール逆変換部２４２と、ハール逆量子化部２４３とを備える。ハール逆変換部２４２は、可変長符号化データｂｄに対してハール逆変換を施す。ハール逆量子化部２４３は、ハール逆変換された可変長符号化データｂｄに対して、Ｑ値テーブルｔｂを用いて、逆量子化を施す。Ｑ値テーブルｔｂとして、例えば、図１１に示すテーブルが利用される。ハール逆変換とハール逆量子化とを経て復号されたデータは、出力データ制御部２３６に出力される。
【００６７】
図１２に示すように、可逆復号化部２４５は、可逆符号化モードで符号化された可変長符号化データｂｄを復号する。可逆復号化部２４５は、振り分け部２３４により可変長符号化データｂｄが可逆符号化されたものであると判定されると、イネーブル状態にされる。可逆復号化部２４５は、可逆符号化する際に用いた辞書ｄｉｃと同じとなる辞書を参照して、可変長符号化データｂｄの辞書インデックスに対応づけられている符号を逆引きすることにより、符号化データを復号する。可逆復号化部２４５は、可逆符号化する際に用いた辞書ｄｉｃを用いることにより、１画素を１サイクルで復号する。復号されたデータは、出力データ制御部２３６に出力される。
【００６８】
出力データ制御部２３６は、非可逆復号化部２４１または可逆復号化部２４５により復号された、ブロックごとの復号済みの印刷データを、出力用バッファーｂｆ３に格納する。復号化データ出力部２３７は、出力用バッファーｂｆ３に格納されているブロックごとの復号済みの印刷データを、印刷部２１０に送る。印刷部２１０は、受信した復号済みの印刷データから印刷データを生成し、かかる印刷データに基づき印刷を実行する。
【００６９】
図１３は、復号化部２３０による復号の様子を模式的に示す説明図である。図１３では、ブロック３のブロック符号化データを復号化する様子を示しており、図１２に示す復号化部２３０のうち、読み出し部２３１から復号部２３５までの処理の様子に着目している。図１３に示すように、読み出し部２３１によって、ブロック３のブロック符号化データとして、タグ信号ｔｇと、ゼロラン識別子ｉｄｆと、可変長符号化データｂｄと、が読み出されている。その後、読み出された可変長符号化データｂｄは、可変長符号デコード部２３２によって、１ブロック分の各画素ｂ０〜ｂ６３の符号化データにデコードされる。
【００７０】
図１３に示すように、一括書込部２３３は、１ブロックを構成する画素数、すなわち、６４個のセレクターｓｌ０〜ｓｌ６３を備える。各セレクターｓｌ０〜ｓｌ６３は、選択制御値に応じて、２つの入力値のいずれかの入力値を出力する。具体的には、一括書込部２３３は、ゼロラン識別子ｉｄｆを選択制御値として入力し、入力値として各画素ｂ０〜ｂ６３の符号化データと、値０とを入力する。各セレクターｓｌ０〜ｓｌ６３は、選択制御値であるゼロラン識別子ｉｄｆが値０である場合、すなわち、ゼロランが発生していない場合、各画素ｂ０〜ｂ６３の符号化データを出力して、中間データ用バッファーｂｆ２に格納する。
【００７１】
他方、選択制御値であるゼロラン識別子ｉｄｆが値１である場合、すなわち、ゼロランが発生している場合には、値０を出力して、中間データ用バッファーｂｆ２に格納する。このとき、一括書込部２３３は、各画素ｂ０〜ｂ６３の符号化データは参照せずに、中間データ用バッファーｂｆ２に対して６４画素分同時に値０を書き込む。なお、タグ信号ｔｇは、各セレクターｓｌ０〜ｓｌ６３には入力されずに、中間データ用バッファーｂｆ２の先頭アドレスに、そのまま書き込まれる。
【００７２】
ここで、中間データ用バッファーｂｆ２は、先入れ先出し（ＦＩＦＯ：First In First Out）態様のメモリーである。中間データ用バッファーｂｆ２は、複数段に亘ってブロック符号化データを記憶する。本実施形態では、中間データ用バッファーｂｆ２は、第１層ｔ０、第２層ｔ１、第３層ｔ２の３段に亘ってブロック符号化データを格納する。なお、中間データ用バッファーｂｆ２は、課題を解決するための手段におけるバッファーの下位概念に相当する。
【００７３】
一括書込部２３３は、中間データ用バッファーｂｆ２へブロック符号化データを書き込む際、第１層ｔ０、第２層ｔ１、第３層ｔ２の順にブロック符号化データを書き込む。図１３に示す例では、第１層ｔ０にブロック１のブロック符号化データｂｄが、第２層ｔ１にブロック２のブロック符号化データｂｄが、第３層ｔ２にブロック３のブロック符号化データｂ０〜ｂ６３が、それぞれ書き込まれた状態を示している。
【００７４】
次に、振り分け部２３４は、中間データ用バッファーｂｆ２から第１層ｔ０、第２層ｔ１、第３層ｔ２の順で、ブロックごとにタグ信号ｔｇを読み出す。そして、上述のように、振り分け部２３４は、各ブロックのブロック符号化データｂｄが可逆符号により符号化されたものであるか、非可逆符号化により符号化されたものであるかを判定して、符号化モードに応じて、非可逆復号化部２４１または可逆復号化部２４５をイネーブルの状態に変更する。その後、非可逆復号化部２４１および可逆復号化部２４５において、上述の復号化処理が実行される。
【００７５】
上述のように、非可逆符号化による可変長符号化データｂｄは、１色ずつ読み出す必要があるために、１画素につき３サイクルの読み出し時間を要する。他方、可逆符号化による可変長符号化データｂｄは、１画素につき１サイクルの読み出し時間を要する。したがって、振り分け部２３４では、可変長符号化データｂｄが可逆符号化によるものか、非可逆符号化によるものかによって、一括書込部２３３による書き込み処理を待機する場合がある。しかし、本実施形態では、ブロック内でゼロランが発生している場合には、可逆符号化、非可逆符号化のいずれの場合にも、１ブロック分を一括して１サイクルで書き込むことができ、ゼロランが発生していない場合に比べて短いサイクルで１ブロック分の符号化データを書き込むことができる。したがって、振り分け部２３４は、常に１サイクルで１画素を読み出すことができ、タグ信号ｔｇの値を読み出すことにより、非可逆復号化部２４１と可逆復号化部２４５との振り分けをオーバーヘッドなく実行できる。
【００７６】
以上説明した本実施形態の印刷システム３００によれば、複数のブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データｂｄを、ブロックごとに分け、順次、ブロック符号化データとして読み出す。そして、読み出したブロック符号化データを、先入れ先出し態様の３段の中間データ用バッファーｂｆ２に記憶し、ブロックごとに読み出されたブロック符号化データに含まれるゼロラン識別子iｄｆがゼロランを示す値１である場合に、中間データ用バッファーｂｆ２に値０を一括して書き込む。したがって、読み出したブロック符号化データを１画素ずつ復号する構成と比べて、ブロック符号化データを中間データ用バッファーｂｆ２に一括して書き込むことにより、復号に要する時間を短縮できる。このため、符号化された画像データ全体のデコード処理の処理速度を向上できる。
【００７７】
Ｂ．他の実施形態：
（１）上記実施形態において、印刷対象画像は、Ｒ、Ｇ、Ｂ各８ビットの合計２４ビットのＲＧＢ画像であったが、本開示はこれに限定されない。例えば、印刷対象画像は、モノクロ画像であってもよい。印刷対象画像がモノクロ画像である場合、階調数が１画素につき８ビットであるため、画素データは輝度値によって表されてもよい。このような構成においても、上記実施形態と同様な効果を奏する。
【００７８】
（２）上記各実施形態において、印刷制御装置１００の機能の少なくとも一部を印刷装置２００が有していてもよい。また、印刷装置２００の機能の少なくとも一部を印刷制御装置１００が有していてもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００７９】
（３）上記各実施形態において、取得部２５０はバンド単位で符号化データを取得し、また、復号化部２３０はバンド単位で符号化データを復号していたが、本開示はこれに限定されない。例えば、復号化部２３０は、符号化データをブロック単位で取得し、ブロック単位で復号してもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００８０】
（４）上記各実施形態において、ハールウェーブレット変換を用いたが、ハールウェーブレット変換に代えて、離散コサイン変換、サブバンド符号化等の非可逆符号化手法を用いてもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００８１】
（５）上記各実施形態において、復号化部２３０は、ハール逆変換およびハール逆量子化を実行していたが、ハール逆変換およびハール逆量子化の実行を省略してもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００８２】
（６）上記各実施形態において、符号化部１３１は、ステップＳ２７５において、ブロックごとにＲ、Ｇ、Ｂの３つの色成分ごとに直交変換を行っていたが、３つの色成分に限られず、２以上の任意の整数個の色成分ごとに直交変換を行ってもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００８３】
（７）上記各実施形態において、印刷装置２００は、復号化部２３０を複数備えてもよい。上述のように、非可逆符号化による可変長符号化データｂｄは、１画素につき３サイクルの読み出し時間を要し、可逆符号化による可変長符号化データｂｄは、１画素につき１サイクルの読み出し時間を要する。すなわち、中間データ用バッファーｂｆ２にブロック符号化データを書き込む際に時間がかかる場合がある。本実施形態では、一括書込部２３３により、ブロック内でゼロランが発生している場合における読み出し時間を短縮できることに加えて、複数の復号化部２３０により、並行して複数のブロックのブロック符号化データの復号を実行できる。このため、印刷対象画像全体の復号化処理の処理速度を更に向上できる。
【００８４】
（８）上記各実施形態において、印刷装置２００は、４色のインク（シアン、マゼンタ、イエロー、ブラック）により印刷を行うインクジェットプリンターであったが、本開示はこれに限定されない。使用するインクの数は、上記と異なっていてもよい。具体的には、上述の４色に加えて、特色インクを含む５色であってもよいし、ライトグレー、ライトシアン、ライトマゼンタの３色のインクを含む７色であってもよいし。これらの構成においても、印刷システム３００の要求スペックに応じて、復号化部２３０あるいは復号部２３５を並列させる個数を適宜変更してもよい。このような構成においても、上記各実施形態と同様な効果を奏する。
【００８５】
（９）上記各実施形態において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。また、本開示の機能の一部または全部がソフトウェアで実現される場合には、そのソフトウェア（コンピュータープログラム）は、コンピューター読み取り可能な記録媒体に格納された形で提供することができる。この発明において、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスクやＣＤ−ＲＯＭのような携帯型の記録媒体に限らず、各種のＲＡＭやＲＯＭ等のコンピューター内の内部記憶装置や、ハードディスク等のコンピューターに固定されている外部記憶装置も含んでいる。すなわち、「コンピューター読み取り可能な記録媒体」とは、データを一時的ではなく固定可能な任意の記録媒体を含む広い意味を有している。
【００８６】
本開示は、上述の実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態中の技術的特徴は、上述の課題の一部又は全部を解決するために、あるいは、上述の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００８７】
Ｃ．他の形態：
（１）本開示の一実施形態によれば、印刷装置が提供される。この印刷装置は、画像を印刷する印刷装置であって；前記画像を複数の画素からなる複数のブロックに分け、該ブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、該ブロックにおける符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを取得する取得部と；取得された前記可変長符号化データを、前記ブロックごとに復号して、印刷用の画像データを出力する復号化部と；出力された前記印刷用の画像データを用いて印刷を行う印刷部と；を有し；前記復号化部は、取得された前記可変長符号化データを前記ブロックごとに分け、順次、ブロック符号化データとして読み出す読み出し部と；読み出した前記ブロック符号化データを、先入れ先出し態様で記憶する複数段のバッファーと；前記ブロックごとに読み出された前記ブロック符号化データに含まれる前記識別子が、予め定められた値である場合に、前記バッファーに値０を一括して書き込む一括書込部と；前記バッファーから前記ブロック符号化データを順次読み出して、前記可変長符号化データに対応した復号化を行う復号部と；を備える。
【００８８】
この形態の印刷装置によれば、複数のブロックごとに可逆圧縮または非可逆圧縮された可変長符号化データであって、符号化対象のデータが連続して値０であることを示す識別子を含む可変長符号化データを、ブロックごとに分け、順次、ブロック符号化データとして読み出す。読み出したブロック符号化データを、先入れ先出し態様の複数段のバッファーに記憶し、ブロックごとに読み出されたブロック符号化データに含まれる識別子が、予め定められた値である場合に、バッファーに値０を一括して書き込む。したがって、符号化対象のデータが連続して値０である場合に、読み出したブロック符号化データを１画素ずつ復号する構成と比べて、ブロック符号化データを中間データ用バッファーｂｆ２に一括して書き込むことにより、復号に要する時間を短縮できる。このため、符号化された画像データ全体のデコード処理の処理速度を向上できる。
【００８９】
（２）上記形態の印刷装置において、前記可変長符号化データには、前記ブロック符号化データが、前記可逆圧縮または前記非可逆圧縮のいずれの圧縮がなされているかを示す値が保存されたタグが含まれており；前記復号部は、前記可逆圧縮された前記ブロック符号化データを可逆的に復号する可逆復号化部と；前記非可逆圧縮された前記ブロック符号化データを非可逆的に復号する非可逆復号化部と；を有し；前記復号化部は、前記ブロック符号化データに含まれる前記タグの値にしたがって、前記ブロック符号化データを、前記可逆復号化部または前記非可逆復号化部に振り分ける振り分け部を、さらに備えてもよい。
この形態の印刷装置によれば、ブロック符号化データに含まれるタグの値にしたがって、ブロック符号化データを、可逆復号化部または非可逆復号化部に振り分けるので、単一の復号化部において可逆的な復号と非可逆的な復号とを切り替えて復号化する構成に比べて、復号化部の構成が複雑化することを抑制できる。
【００９０】
（３）上記形態の印刷装置において、前記読み出し部は、前記識別子が、予め定められた値である場合に、処理中の前記ブロックの次の前記ブロックの前記可変長符号化データを読み出してもよい。
この形態の印刷装置によれば、識別子が予め定められた値である場合に、処理中のブロックの次のブロックの可変長符号化データを読み出すので、可変長符号化データの読み出しからバッファーへの書き込みまでに要する時間を短縮できる。
【００９１】
（４）上記形態の印刷装置において、前記可変長符号化データは、前記ブロックごとに、Ｎ（Ｎは２以上の整数）個の色成分ごとに直交変換を行うことにより得られる周波数成分を量子化した量子化値をそれぞれ可変長符号により圧縮した第１圧縮データと、異なる複数個の色がインデックスとして登録される辞書を用いて各画素の色と対応づけられた該インデックスをそれぞれ可変長符号により圧縮した第２圧縮データと、を含む符号化データであり；前記可逆復号化部は、前記第２圧縮データを１サイクルで復号し；前記非可逆復号化部は、前記第１圧縮データを多くともＮサイクルで復号してもよい。
この形態の印刷装置によれば、可逆復号化部は、異なる複数個の色がインデックスとして登録される辞書を用いて各画素の色と対応づけられた該インデックスをそれぞれ可変長符号により圧縮した第２圧縮データを１サイクルで復号する。非可逆復号化部は、Ｎ（Ｎは２以上の整数）個の色成分ごとに直交変換を行うことにより得られる周波数成分を量子化した量子化値をそれぞれ可変長符号により圧縮した第１圧縮データを多くともＮサイクルで復号する。このため、各復号化部による復号化処理を容易に並列することができ、可変長符号化データ全体の復号化処理の処理に要する処理時間を低減できる。
【００９２】
（５）上記形態の印刷装置において、前記復号化部を複数備えてもよい。この形態の印刷装置によれば、復号化部を複数備えるので、複数のブロックのブロック符号化データの復号を並行して実行でき、印刷対象画像全体の復号化処理の処理速度を向上できる。
【００９３】
本開示は、種々の形態で実現することも可能である。例えば、印刷装置、印刷方法、符号化装置と印刷装置とを備える印刷システム、かかる装置、方法およびシステムを実現するためのコンピュータープログラム、かかるコンピュータープログラムを記録した記録媒体等の形態で実現できる。
【符号の説明】
【００９４】
Ａ０…画素、Ａ１…画素、Ａ２…画素、Ａ３…画素、Ｃ０…色、Ｃ１…色、Ｃ２…色、Ｃ３…色、Ｃｘ…色、Ｄ１…主走査方向、Ｄ２…副走査方向、Ｎ…基準値、Ｎｎ…新規登録色数、Ｐ…印刷媒体、１００…印刷制御装置、１１０…記録媒体、１１１…プログラム、１３０…ＣＰＵ、１３１…符号化部、１５０…転送部、２００…印刷装置、２１０…印刷部、２３０…復号化部、２３１…読み出し部、２３３…一括書込部、２３４…振り分け部、２３５…復号部、２３６…出力データ制御部、２３７…復号化データ出力部、２４１…非可逆復号化部、２４２…ハール逆変換部、２４３…ハール逆量子化部、２４５…可逆復号化部、２５０…取得部、２６１…駆動ベルト、２６２…フレキシブルケーブル、２６３…プラテン、２７０…ヘッドユニット、２７１…キャリッジ、２７２…インクカートリッジ、２７３…印刷ヘッド、２８０…キャリッジモーター、２９０…搬送モーター、３００…印刷システム、ＨＨ…斜めエッジ成分、ＨＨ１…斜めエッジ成分、ＨＨ２…斜めエッジ成分、ＨＨ３…斜めエッジ成分、ＨＬ…水平エッジ成分、ＨＬ１…水平エッジ成分、ＨＬ２…水平エッジ成分、ＨＬ３…水平エッジ成分、ＬＨ…垂直エッジ成分、ＬＨ１…垂直エッジ成分、ＬＨ２…垂直エッジ成分、ＬＨ３…垂直エッジ成分、ＬＬ…低周波成分、ＬＬ１…低周波成分、ＬＬ２…低周波成分、ＬＬ３…低周波成分、Ｑ…量子化値、ＱＳ…量子化シフト値、ｂｄ…可変長符号化データ、ｂｆ１…読み出し用バッファー、ｂｆ２…中間データ用バッファー、ｂｆ３…出力用バッファー、ｄｉｃ…辞書、ｉｄｆ…ゼロラン識別子、ｓｌ０〜ｓｌ６３…セレクター、ｔ０…第１層、ｔ１…第２層、ｔ２…第３層、ｔｂ…Ｑ値テーブル、ｔｇ…タグ信号
【図１】
2020015214.tif 000003
【図２】
2020015214.tif 000004
【図３】
2020015214.tif 000005
【図４】
2020015214.tif 000006
【図５】
2020015214.tif 000007
【図６】
2020015214.tif 000008
【図７】
2020015214.tif 000009
【図８】
2020015214.tif 000010
【図９】
2020015214.tif 000011
【図１０】
2020015214.tif 000012
【図１１】
2020015214.tif 000013
【図１２】
2020015214.tif 000014
【図１３】
2020015214.tif 000015