(57)【特許請求の範囲】
【請求項１】
画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得する取得手段と、
取得された圧縮画素データをブロック単位に伸張する伸張手段と、
伸張された１ライン分の画素データを保持する第１及び第２のデータ保持手段と、
前記伸張手段により伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替える第１の切替手段と、
前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替える第２の切替手段と、
前記第２の切替手段により読み出された画素データを出力する出力手段と、
前記第１または第２のデータ保持手段からの画素データの出力制御を行う制御手段と、
を有し、
前記各データ保持手段は、
画素データを記憶する記憶部と、
前記第１の切替手段からの書込指示に応じて前記伸張手段から出力された画素データを前記記憶部に書き込む書込部と、
前記第１の切替手段からの前記書込指示と排他的な読出指示に応じて前記記憶部に記憶された画素データを読み出す第１の読出処理部と、
前記第１の切替手段からの読出指示に応じて、前記制御手段からの指示に応じた画素データを前記記憶部から読み出し前記第２の切替手段へ出力する第２の読出処理部と、
を有し、
前記伸張手段は、前記第１の読出処理部により読み出された画素データを参照して圧縮画素データを伸張し、
前記制御手段は、後入れ先出し方式にて画素データを読み出す指示を前記第２の読出処理部に送ることを特徴とする復号装置。
【請求項２】
画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得する取得手段と、
取得された圧縮画素データをブロック単位に伸張する伸張手段と、
伸張された１ライン分の画素データを保持する第１及び第２のデータ保持手段と、
前記伸張手段により伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替える第１の切替手段と、
前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替える第２の切替手段と、
前記第２の切替手段により読み出された画素データを出力する出力手段と、
前記第１または第２のデータ保持手段からの画素データの出力制御を行う制御手段と、
を有し、
前記各データ保持手段は、
画素データを記憶する記憶部と、
前記第１の切替手段からの書込指示に応じて前記伸張手段から出力された画素データを前記記憶部に書き込む書込部と、
前記第１の切替手段からの前記書込指示と排他的な読出指示に応じて前記記憶部に記憶された画素データを読み出す第１の読出処理部と、
前記第１の切替手段からの読出指示に応じて、前記制御手段からの指示に応じた画素データを前記記憶部から読み出し前記第２の切替手段へ出力する第２の読出処理部と、
を有し、
前記伸張手段は、前記第１の読出処理部により読み出された画素データを参照して圧縮画素データを伸張し、
前記制御手段は、前記記憶部における画素データの読出開始位置を指示として前記第２の読出処理部に送ることを特徴とする復号装置。
【請求項３】
請求項１又は２に記載の復号装置において、
伸張された１ライン分の画素データを保持する第３のデータ保持手段と、
前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段へ切り替えることで、当該データ保持手段から画素データを読み出し前記第３のデータ保持手段に出力する第３の切替手段と、
を有し、
前記伸張手段は、１つ前に伸張した画素データを前記第１または第２のデータ保持手段から、２つ前に伸張した画素データを前記第３のデータ保持手段からそれぞれ取得し、その取得した画素データを参照して圧縮画素データを伸張することを特徴とする復号装置。
【請求項４】
請求項１又は２に記載の復号装置において、
前記伸張手段は、前記第１の読出処理部により読み出された画素データのうち伸張対象ブロックと同一並び順に位置するブロックから伸張された画素データまたは当該同一並び順に位置するブロック周辺のブロックから伸張された画素データを参照して圧縮画素データを伸張することを特徴とする復号装置。
【請求項５】
請求項１又は２に記載の復号装置において、
前記第１及び第２のデータ保持手段は、読出しと書込みとを独立して動作可能な３ポートメモリであることを特徴とする復号装置。
【請求項６】
請求項１又は２に記載の復号装置において、
前記第１及び第２のデータ保持手段は、書込部におけるデータ入力ポート及び第１の読出処理部におけるデータ出力ポートを共有化した２ポートメモリであることを有することを特徴とする復号装置。
【請求項７】
請求項１乃至６のいずれか１項に記載の復号装置と、
印刷対象の画像データを受け付ける手段と、
印刷対象の画像データが圧縮されている場合に、前記復号装置へ当該画像データの復号を指示する復号指示手段と、
前記復号装置から出力された画像データを処理する画像処理手段と、
を有することを特徴とする画像処理装置。
【請求項８】
コンピュータに、
画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得させ、
取得された圧縮画素データをブロック単位に伸張させ、
伸張された１ライン分の画素データを第１及び第２のデータ保持手段に保持させ、
伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、
画素データの書込み先とされていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、
前記第１または第２のデータ保持手段から後入れ先出し方式にて読み出された画素データを出力させ、
前記取得された圧縮画素データをブロック単位に伸張させる際、伸張された画素データの書込み先でない側の前記第１または第２のデータ保持手段から読み出された画素データを参照させる、
ことを特徴とする復号プログラム。
【請求項９】
コンピュータに、
画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得させ、
取得された圧縮画素データをブロック単位に伸張させ、
伸張された１ライン分の画素データを第１及び第２のデータ保持手段に保持させ、
伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、
画素データの書込み先とされていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、
前記第１または第２のデータ保持手段から、指示された読出開始位置から順番に読み出された画素データを出力させ、
前記取得された圧縮画素データをブロック単位に伸張させる際、伸張された画素データの書込み先でない側の前記第１または第２のデータ保持手段から読み出された画素データを参照させる、
ことを特徴とする復号プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、復号装置、復号プログラム及び復号機能を有する画像処理装置に関する。
【背景技術】
【０００２】
コンピュータの利用者がプリンタに印刷データを送信して印刷を実行させる際、コンピュータはデータ伝送量を削減するために所定の圧縮方式に従って印刷データを圧縮してから伝送する場合が少なくない。ただ、プリンタにおいては、印刷を実行する前に受信した圧縮データを伸張して復号する処理を行うことになるが、この復号処理に要する時間の短縮を図るために、データ伸張回路の前段に１対の入力バッファ回路（ラインバッファ）を設け、圧縮データを書き込む入力バッファ回路と、データ伸張回路へ送る圧縮データを読み出す入力バッファ回路とを切り替えながら復号を行う圧縮伸張方式が提案されている（例えば、特許文献１）。
【０００３】
また、データ伝送量を更に削減するために、圧縮対象のラインに含まれる画素データを圧縮する際に、直前のラインの当該画素と同じ位置にある画素データを参照する技術が提案されている（例えば、特許文献２）。すなわち、この従来技術においては、復号装置において、データ伸張を行うコマンドデコード回路の後段に復号データを一時保持するラインバッファを設け、復号装置は、受信した圧縮データを伸張する際、ラインバッファに保持されている直前に伸張された復号データを参照できるように構成されている。
【０００４】
ところで、近年のプリンタは高機能化が進み、オリジナル画像をそのまま印刷することに留まらず、例えば、オリジナル画像の左右を入れ替える鏡像印刷やオリジナル画像を左右方向にずらすシフト印刷などの画像編集処理が可能になってきている。このような画像編集機能を提供するためには、画像編集処理用のラインバッファを利用すれば容易に実現することは可能である。
【０００５】
【特許文献１】特開２０００−１８３７５２号公報
【特許文献２】特開２００２−２２３３６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来において鏡像印刷等の画像編集処理を実施するためには、伸張処理用に設けたラインバッファとは別個に画像編集処理用のラインバッファが必要となるため製造コストが増加してしまう。
【０００７】
本発明は、伸張処理と画像編集処理に用いるデータ保持手段の共有化を図ることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る復号装置は、画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得する取得手段と、取得された圧縮画素データをブロック単位に伸張する伸張手段と、伸張された１ライン分の画素データを保持する第１及び第２のデータ保持手段と、前記伸張手段により伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替える第１の切替手段と、前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替える第２の切替手段と、前記第２の切替手段により読み出された画素データを出力する出力手段と、前記第１または第２のデータ保持手段からの画素データの出力制御を行う制御手段と、を有し、前記各データ保持手段は、画素データを記憶する記憶部と、前記第１の切替手段からの書込指示に応じて前記伸張手段から出力された画素データを前記記憶部に書き込む書込部と、前記第１の切替手段からの前記書込指示と排他的な読出指示に応じて前記記憶部に記憶された画素データを読み出す第１の読出処理部と、前記第１の切替手段からの読出指示に応じて、前記制御手段からの指示に応じた画素データを前記記憶部から読み出し前記第２の切替手段へ出力する第２の読出処理部と、を有し、前記伸張手段は、前記第１の読出処理部により読み出された画素データを参照して圧縮画素データを伸張し、前記制御手段は、後入れ先出し方式にて画素データを読み出す指示を前記第２の読出処理部に送ることを特徴とする。
【００１０】
本発明に係る復号装置は、画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得する取得手段と、取得された圧縮画素データをブロック単位に伸張する伸張手段と、伸張された１ライン分の画素データを保持する第１及び第２のデータ保持手段と、前記伸張手段により伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替える第１の切替手段と、前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替える第２の切替手段と、前記第２の切替手段により読み出された画素データを出力する出力手段と、前記第１または第２のデータ保持手段からの画素データの出力制御を行う制御手段と、を有し、前記各データ保持手段は、画素データを記憶する記憶部と、前記第１の切替手段からの書込指示に応じて前記伸張手段から出力された画素データを前記記憶部に書き込む書込部と、前記第１の切替手段からの前記書込指示と排他的な読出指示に応じて前記記憶部に記憶された画素データを読み出す第１の読出処理部と、前記第１の切替手段からの読出指示に応じて、前記制御手段からの指示に応じた画素データを前記記憶部から読み出し前記第２の切替手段へ出力する第２の読出処理部と、を有し、前記伸張手段は、前記第１の読出処理部により読み出された画素データを参照して圧縮画素データを伸張し、前記制御手段は、前記記憶部における画素データの読出開始位置を指示として前記第２の読出処理部に送ることを特徴とする。
【００１１】
また、伸張された１ライン分の画素データを保持する第３のデータ保持手段と、前記第１の切替手段が画素データの書込み先としていない側の前記第１または第２のデータ保持手段へ切り替えることで、当該データ保持手段から画素データを読み出し前記第３のデータ保持手段に出力する第３の切替手段と、を有し、前記伸張手段は、１つ前に伸張した画素データを前記第１または第２のデータ保持手段から、２つ前に伸張した画素データを前記第３のデータ保持手段からそれぞれ取得し、その取得した画素データを参照して圧縮画素データを伸張することを特徴とする。
【００１２】
また、前記伸張手段は、前記第１の読出処理部により読み出された画素データのうち伸張対象ブロックと同一並び順に位置するブロックから伸張された画素データまたは当該同一並び順に位置するブロック周辺のブロックから伸張された画素データを参照して圧縮画素データを伸張することを特徴とする。
【００１３】
また、前記第１及び第２のデータ保持手段は、読出しと書込みとを独立して動作可能な３ポートメモリであることを特徴とする。
【００１４】
また、前記第１及び第２のデータ保持手段は、書込部におけるデータ入力ポート及び第１の読出処理部におけるデータ出力ポートを共有化した２ポートメモリであることを有することを特徴とする。
【００１５】
本発明に係る画像処理装置は、上記発明に記載の復号装置と、印刷対象の画像データを受け付ける手段と、印刷対象の画像データが圧縮されている場合に、前記復号装置へ当該画像データの復号を指示する復号指示手段と、前記復号装置から出力された画像データを処理する画像処理手段と、を有することを特徴とする。
【００１６】
本発明に係る復号プログラムは、コンピュータに、画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得させ、取得された圧縮画素データをブロック単位に伸張させ、伸張された１ライン分の画素データを第１及び第２のデータ保持手段に保持させ、伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、画素データの書込み先とされていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、前記第１または第２のデータ保持手段から後入れ先出し方式にて読み出された画素データを出力させ、前記取得された圧縮画素データをブロック単位に伸張させる際、伸張された画素データの書込み先でない側の前記第１または第２のデータ保持手段から読み出された画素データを参照させることを特徴とする。
本発明に係る復号プログラムは、コンピュータに、画像データの主走査方向の１ラインを連続したｎ（ｎは２以上の正整数）画素毎にブロック分割し、その分割したブロック毎に圧縮して生成された圧縮画素データを取得させ、取得された圧縮画素データをブロック単位に伸張させ、伸張された１ライン分の画素データを第１及び第２のデータ保持手段に保持させ、伸張された画素データの書込み先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、画素データの書込み先とされていない側の前記第１または第２のデータ保持手段から画素データを読み出すように、画素データの読出し先とする前記第１または第２のデータ保持手段を交互に切り替えさせ、前記第１または第２のデータ保持手段から、指示された読出開始位置から順番に読み出された画素データを出力させ、前記取得された圧縮画素データをブロック単位に伸張させる際、伸張された画素データの書込み先でない側の前記第１または第２のデータ保持手段から読み出された画素データを参照させることを特徴とする。
【発明の効果】
【００１７】
請求項１記載の発明によれば、圧縮された画素データの伸張処理に用いるデータ保持手段と、画像データの編集処理とに用いるデータ保持手段とを共有化することができる。これにより、画像編集機能を提供する場合の装置コストを削減することができる。特に、後入れ先出し方式にて画素データを読み出すことができるので、画像編集処理用のデータ保持手段を別途用意することなく鏡像印刷などの画像編集処理にも容易に対応することができる。
【００１８】
請求項２記載の発明によれば、後入れ先出し方式にて画素データを読み出すことができるので、画像編集処理用のデータ保持手段を別途用意することなく鏡像印刷などの画像編集処理にも容易に対応することができる。
【００１９】
請求項２記載の発明によれば、画素データの読出開始位置を指示することができるので、画素編集処理用のデータ保持手段を別途用意することなくシフト印刷などの画像編集処理にも容易に対応することができる。
【００２０】
請求項３記載の発明によれば、１つ前に伸張した画素データのみならず、２つ前に伸張した画素データを参照して圧縮画素データを伸張することができる。
【００２１】
請求項４記載の発明によれば、１つ前に伸張した画素データのうち同一並び順のブロック以外のブロックから得られた画素データを参照して圧縮画素データを伸張することができる。
【００２２】
請求項５記載の発明によれば、第１及び第２のデータ保持手段を、従前から存在する３ポートメモリを利用して実現することができる。
【００２３】
請求項６記載の発明によれば、第１及び第２のデータ保持手段を、従前から存在する２ポートメモリを利用して実現することができるので、装置コストを更に削減することができる。
【００２４】
請求項７記載の発明によれば、画像編集処理用のメモリを別途用意する必要がないので、鏡像印刷やシフト印刷などの画像編集機能を提供する際の装置コストを削減することができる。
【００２５】
請求項８記載の発明によれば、圧縮された画素データの伸張処理に用いるデータ保持手段と、画像データの編集処理とに用いるデータ保持手段とを共有化した装置を動作させることができる。これにより、画像編集機能を提供する装置のコストを削減することができる。特に、後入れ先出し方式にて画素データを読み出すことができるので、画像編集処理用のデータ保持手段を別途用意することなく鏡像印刷などの画像編集処理にも容易に対応することができる。
請求項９記載の発明によれば、画素データの読出開始位置を指示することができるので、画素編集処理用のデータ保持手段を別途用意することなくシフト印刷などの画像編集処理にも容易に対応することができる。
【発明を実施するための最良の形態】
【００２６】
以下、図面に基づいて、本発明の好適な実施の形態について説明する。
【００２７】
実施の形態１．
【００２８】
図１は、本発明に係る画像処理装置１０のハードウェア構成の一例を示した図である。本実施の形態における画像処理装置１０は、鏡像印刷やシフト印刷などの様々な機能を実現する印刷機能及びコピー機能等を搭載した複合機であり、コンピュータを内蔵した装置である。図１において、ＣＰＵ１１は、ＲＯＭ１９に格納されたプログラムにしたがってスキャナ１４やプリンタエンジン１６等本装置に搭載された各種機構の動作制御を行う。アドレスデータバス１２は、ＣＰＵ１１の制御対象となる各種機構と接続してデータの通信を行う。操作パネル１３は、鏡像印刷指示やシフト印刷指示等ユーザからの指示の受け付け、情報の表示を行う。スキャナ１４は、ユーザがセットした原稿を読み取り、電子データとしてＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１５等に蓄積する。ＨＤＤ１５は、スキャナ１４を使用して読み取った電子文書などを格納する。プリンタエンジン１６は、ＣＰＵ１１で実行される制御プログラムからの指示に従い出力用紙上に画像を印字する。ネットワークインタフェース（Ｉ／Ｆ）１７は、ネットワーク５１を接続し、コンピュータ５０から本装置宛に送信されてきた印刷画像の受信等データの送受信に利用される。ＲＡＭ１８は、プログラム実行時のワークメモリや電子データ送受信時の通信バッファとして利用される。ＲＯＭ１９は、本装置の動作制御等に関する各種プログラムが格納されている。復号装置２０は、印刷対象としてコンピュータ５０から送られてきた画像データが圧縮されている場合、その圧縮画像をオリジナル画像に復号する。
【００２９】
本実施の形態においては、印刷対象のオリジナル画像を構成する画素データを、主走査方向に連続したｎ個の画素データ毎にブロックを生成し、画素データをブロック単位で圧縮する。なお、ｎは、１の場合には圧縮できないので２以上の正整数である。つまり、オリジナル画像の主走査方向のラインデータは、ｍ（ｍは自然数）個のｎバイト固定長のブロックで形成される。コンピュータ５０は、符号手段を用いてデータ圧縮処理を実施し、画像処理装置１０に印刷指示と共に送信する。本実施の形態では、可逆圧縮による圧縮方式を用いて画素データをブロック単位にコードデータ化する。データ圧縮によりコード化された画素データは可変長である。コンピュータ５０が画像処理装置１０へ送る圧縮画像データには、圧縮に関する情報、換言すると圧縮したデータの復号に必要な情報が含まれることになる。具体的には、各ブロックにつき、当該ブロックに含まれる画素データがどのようなコマンドに従ってコード化されたのかを示す当該コマンドの識別情報（コード識別子）、当該コマンドにより指示された圧縮方法に従って圧縮されたことによりコード化された画素データ（コードデータ）、コードデータ長等が含まれる。特に、本実施の形態においては、あるブロックに対する圧縮指示（コマンド）として、直前のラインに含まれる直上のブロックと同じ圧縮方法であるというコマンドが用意された圧縮方式を採用しているものとする。画像データを形成する主走査方向の各ラインは、同一数のブロック数で構成されているので、「直上ブロック」というのは、直前に伸張された１ラインにおいて同一の並び順に位置するブロックのことをいう。
【００３０】
画像処理装置１０は、ネットワークインタフェース１７を介してコンピュータ５０から送られてくる印刷対象の画像データを受信すると、ＲＡＭ１８に一時保持する。そして、画像処理装置１０は、プリンタエンジン１６に印刷を指示するが、印刷対象の画像データがコードデータ化された圧縮画像データである場合、復号装置２０を用いてその圧縮画像データをオリジナル画像に復号してから印刷を指示する。また、画像処理装置１０は、操作パネル１３などから入力されたユーザ指示に応じてオリジナル画像を反転して鏡像印刷したり、印刷開始位置をずらしてシフト印刷したりする。
【００３１】
図２は、本実施の形態における復号装置２０のブロック構成図である。図２において、データ取込部２１は、復号対象の圧縮画像データをＲＡＭ１８から１ラインデータずつ順番に取り出すことによって復号装置２０に取り込む。コード識別部２２は、データ取込部２１により取り込まれた１ライン分の圧縮画像データを解析することによって当該ラインを構成する各ブロックの圧縮画像データからコード識別子、コードデータをそれぞれ抽出する。コード格納部２３には、コード識別部２２により抽出された各ブロックのコード識別子及びコードデータが格納される。
【００３２】
伸張部２４は、詳細は後述するように、コード格納部２３に格納された各ブロックのコードデータを順次参照してオリジナルの画素データに伸張する。伸張部２４により伸張された１ライン分の画素データは、いずれかのデータ保持部２６ａ，２６ｂに送出され保持されるが、切替部２５は、送出先とするデータ保持部２６ａ，２６ｂを交互に切り替える。データ保持部２６ａ，２６ｂは、それぞれ少なくとも復号後の１ラインデータ長のラインバッファにより形成される。データ出力部２８は、いずれかのデータ保持部２６ａ，２６ｂに保持されている画素データを、ネットワーク５１を介して出力するが、切替部２７は、出力対象の画素データを保持しているデータ保持部２６ａ，２６ｂを交互に切り替える。制御部２９は、復号装置２０における復号処理全体の制御を行う。具体的な切替部２５，２７における切替制御及び制御部２９における制御内容については追って説明する。また、信号線１〜６は、後述する図３に示した各種制御信号３２，３４，３７及び各種データ信号３３，３５，３８を伝送する信号線であり、このうち制御信号線は１，３，５は破線で、データ信号線２，４，６は実線で、それぞれ図示した。信号線７，８は、画素データの読出位置等制御部２９が画像編集処理のための指示情報をデータ保持部２６に送出するために接続された信号線である。なお、図２において、１対のデータ保持部２６ａ，２６ｂに共通する内容においてはデータ保持部２６と“ａ”，“ｂ”を除いて表す。信号線１〜８や他の図においても同様とする。
【００３３】
復号装置２０における各機能は、復号装置２０に組み込まれた回路によって実現する。また、復号装置２０が持つ機能をプログラムで実現するように構成してもよい。この場合、データを記憶するコード格納部２３及びデータ保持部２６以外の復号装置２０における各構成要素２１，２２，２４，２５，２７，２８，２９は画像処理装置１０に搭載されたコンピュータと、コンピュータに搭載されたＣＰＵ１１で動作するプログラムとの協調動作により実現される。また、復号装置は、プリンタエンジン１６の外部に設けられたＤＦＥ（Ｄｉｇｉｔａｌ  Ｆｒｏｎｔ  Ｅｎｄ）に実装されてもよい。また、復号装置は、ＰＣＩあるいは、ＰＣＩｅｘｐｒｅｓｓなどの汎用バスを介して接続されてもよい。
【００３４】
また、本実施の形態で用いるプログラムは、通信手段により提供することはもちろん、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体に格納して提供することも可能である。通信手段や記録媒体から提供されたプログラムは、画像処理装置１０に搭載されたコンピュータにインストールされ、そのコンピュータのＣＰＵ１１がインストールされたプログラムを順次実行することで各種処理が実現される。
【００３５】
次に、本実施の形態における復号装置２０が圧縮画像を復号するときの動作について説明する。
【００３６】
印刷対象の圧縮画像データが画像処理装置１０に送られてきてＲＡＭ１８に一時保持されると、データ取込部２１は、圧縮画像データのうち先頭から１ラインデータずつ順番にＲＡＭ１８から取り出す。データ取込部２１により取り出された１ライン分のデータには、複数ブロックの圧縮画像データが含まれているが、コード識別部２２は、各ブロックの圧縮画像データからコード識別子及びコードデータをそれぞれ抽出し、コード格納部２３へ送出する。これにより、コード格納部２３は、各ブロックのコード識別子及びコードデータが格納される。そして、伸張部２４及び切替部２５，２７は、制御部２９による動作制御のもと同期をとりながら次のようにして圧縮された画素データを伸張する。
【００３７】
図３は、本実施の形態の復号装置２０におけるタイミングチャートを示した図である。制御部２９は、図示しない同期信号を、復号装置２０に含まれる各構成要素に送出している。伸張部２４及び切替部２５，２７は、この同期信号に従って同期をとりながら動作する。切替部２５は、図３に示したように、同期信号に従い所定期間毎に、内部で発生する切替信号３１のＨｉとＬｏを切り替える。本実施の形態では、切替信号３１がＨｉのときにはデータ保持部２６ａを構成するラインバッファ（ＬＢ）＃１側へ切り替え、切替信号３１がＬｏのときにはデータ保持部２６ｂを構成するラインバッファ（ＬＢ）＃２側へ切り替える。この切替制御により選択された側のデータ保持部２６ａまたはデータ保持部２６ｂのいずれか一方のみにデータの書込みが可能になる。また、切替部２５は、書込指示として書込制御信号３２を送出する。本実施の形態においては、切替信号３１と同時に書込制御信号３２を送出するが、切替信号３１のＨｉとＬｏを所定期間毎に切り替えているので、書込制御信号３２は、データ保持部２６ａとデータ保持部２６ｂに交互に送出されることになる。つまり、伸張部２４から送出される１ライン分の画素データは、データ保持部２６ａとデータ保持部２６ｂに交互に送られることになる。なお、上記所定期間は、復号装置２０の処理性能とデータ保持部２６へ読み書きするデータ長とにより決定すればよい。このように、データ保持部２６は、切替部２５による切替制御によって送出されてくる書込制御信号３２に同期して、伸張部２４から送出された画素データ３３を交互に保持する。
【００３８】
また、伸張部２４は、上記所定期間毎に画素データ３３を送出する一方、ブロック単位の画素データの伸張を行う際に直前に伸張した１ラインに含まれる直上ブロックの画素データを必要に応じて利用する。書込み先とされるデータ保持部２６は、切替部２５によって交互に切り替えられるので、直前に伸張した画素データは、現在書込みが行われていない側のデータ保持部２６に格納されているはずである。従って、切替部２５は、書込制御信号３２を送出していない側のデータ保持部２６へ読出制御信号３４を送出する。これにより、伸張部２４は、現在、画素データ３３が書き込まれているデータ保持部２６ａまたはデータ保持部２６ｂとは反対側のデータ保持部２６ｂまたはデータ保持部２６ａから直前に書き込まれた画素データ３５を所定期間毎に得ることになる。
【００３９】
一方、切替部２７は、同期信号に従い所定期間毎に、内部で発生する切替信号３６のＨｉとＬｏを切り替える。切替信号３６の利用方法は、切替部２５の切替信号３１と同じで、切替制御により選択された側のデータ保持部２６にのみデータの書込みが可能になる。伸張された画素データは、データ出力部２８により送出されてＲＡＭ１８に保持されることになるが、伸張された画素データの読出し先となるデータ保持部２６は、現在書込みが行われていない側のデータ保持部２６である。従って、切替部２７は、書込制御信号３２に従い書込みが行われていない側のデータ保持部２６へ読出制御信号３７を送出する。これにより、データ出力部２８には、現在、画素データ３３が書き込まれているデータ保持部２６ａまたはデータ保持部２６ｂとは反対側のデータ保持部２６ｂまたはデータ保持部２６ａから直前に書き込まれた画素データ３８が所定期間毎に読み出されることになる。
【００４０】
ここで、伸張部２４における伸張処理について説明する。
【００４１】
伸張部２４は、複数のブロックそれぞれに対応したコードデータをコード格納部２３から順番に読み出して、そのコードデータを復号することによって圧縮画素データを伸張する。ただ、直上ブロックと同じ方式にて圧縮するという圧縮指示コマンドの識別子が当該ブロックの圧縮画像データに含まれていた場合、伸張部２４は、伸張対象のブロックのコードデータを復号せずに、信号線２から送られてきた１ライン分の画素データのうち直上ブロックに対応する画素データを、当該ブロックにおける圧縮画素データを伸張した画素データとして利用する。このように、伸張部２４は、符号化により生成されたコードデータを復号することなく伸張後の画素データを得る。このようにして得られた当該ブロックの伸張後の画素データは、上記の通り切替部２５を介してデータ保持部２６に送られ保持される。
【００４２】
図４は、本実施の形態におけるデータ保持部２６を形成するラインバッファの構成図である。本実施の形態におけるラインバッファ２６は、２つの読出しポートと１つの書込みポートを有する３ポートＲＡＭである。ラインバッファ２６は、伸張された後の１ライン分の画素データを保持可能な容量のメモリ４０と、読出しポートにおいて読み出すべき画素データの格納位置を管理するリードポインタ管理部４１，４３と、書込みポートにおいて画素データの書込み位置を管理するライトポインタ管理部４２とを有している。なお、各信号線に付した符号１〜８は、図２，３に示した符号に対応させている。
【００４３】
まず、ライトポインタ管理部４２は、信号線３，４と共に書込部を構成する。ライトポインタ管理部４２は、新たなラインの画素データの書込みを開始するに際し書込み位置を示すポインタを初期化する。通常は、画素データの格納に用いるメモリ４０の先頭アドレスに初期化される。そして、書込制御信号線３から書込制御信号３２が入力されると同時に、データ信号線４から画素データ３３が送られてくると、ライトポインタ管理部４２は、画素データ３３のメモリ４０への書込みに合わせてポインタを更新する。
【００４４】
リードポインタ管理部４１は、信号線１,２と共に第１の読出処理部を構成する。リードポインタ管理部４１は、新たなラインの画素データの読出しを開始するに際し読出位置を示すポインタを初期化する。通常は、先頭の画素データが格納されているメモリ４０のアドレスに初期化される。そして、読出制御信号線１から読出制御信号３４が入力されると、リードポインタ管理部４１は、ポインタが指し示すアドレスに格納された画素データ３５がメモリ４０から読み出す。そして、読み出した画素データがデータ信号線２から送出されると、リードポインタ管理部４１は、その読出しに合わせてポインタを更新する。
【００４５】
リードポインタ管理部４３は、信号線５，６と共に第２の読出処理部を構成する。リードポインタ管理部４３は、読出制御信号線５から読出制御信号３４が入力されると同時に制御部２９からの読出指示に応じたメモリ４０上のアドレスでポインタを初期化する。すなわち、後入れ先出し方式（ＬＩＦＯ）によるデータ読出しを指示する信号が信号線７を介して制御部２９から送られてくると、リードポインタ管理部４３は、メモリ４０に格納されている最後尾の画素データのアドレス位置にポインタを初期化する。そして、画素データの最後尾から先頭に向けて画素データが順番に読み出され、そしてデータ信号線６から送出されると、リードポインタ管理部４３は、その読出しに合わせてポインタを更新する。このＬＩＦＯによる画素データの読出し方式は、鏡像印刷をする場合に適している。また、アドレスを示すデータ信号が信号線８を介して制御部２９から送られてくると、リードポインタ管理部４３は、メモリ４０の当該アドレス位置にポインタを初期化する。そして、そのポインタ位置から最後尾に向けて画素データが順番に読み出され、そしてデータ信号線６から送出されると、リードポインタ管理部４３は、その読出しに合わせてポインタを更新する。この１ラインの途中から画素データの読出しを開始する方式は、シフト印刷をする場合に適している。
【００４６】
図３及び図４を用いて説明したように、データ保持部２６に保持された画素データは、第１の読出処理部により伸張部２４に送られて、画素データの伸張処理に利用されると同時に、第２の読出処理部によりデータ出力される。
【００４７】
実施の形態２．
【００４８】
図５は、本実施の形態におけるラインバッファ２６の構成図である。実施の形態１では、ラインバッファ２６を３ポートメモリにて実現していたが、本実施の形態では、より安価な２ポートメモリで実現した。
【００４９】
切替部２５から出力される読出制御信号３４は、書込制御信号３２が送出されてくるラインバッファ２６とは異なるラインバッファ２６に常に送出される。つまり、画素データの書込動作と読出動作は、排他的であるので、実施の形態１のようにリードポインタ管理部４１とライトポインタ管理部４２を別個に設けなくても、本実施の形態のように１つのリード／ライトポインタ管理部４４を設けて、実施の形態１と同様に動作させるようにしてもよい。すなわち、リード／ライトポインタ管理部４４は、新たなラインの画素データの読み書きを開始するに際し書込み位置を示すポインタを初期化する。そして、例えば図５に例示したように書込制御信号線３から書込制御信号３２が入力されると同時に、データ信号線４から画素データ３３が送られてくると、リード／ライトポインタ管理部４４は、画素データ３３のメモリ４０への書込みに合わせてポインタを更新する。続いて、書込制御信号線３から書込制御信号３２が入力されてこなければ、これは読出制御信号３４が入力されたとみなすことができるので、リード／ライトポインタ管理部４４は、ポインタが指し示すアドレスに格納された画素データ３５がメモリ４０から読み出されてデータ信号線２から送出されると、その読出しに合わせてポインタを更新する。
【００５０】
一方、リード／ライトポインタ管理部４４に読出制御信号線１が接続されている場合において、読出制御信号線１から読出制御信号３４が入力されてこないときには書込制御信号３２が入力されたとみなすことができるので、リード／ライトポインタ管理部４４は、データ信号線４から送られてくる画素データ３３のメモリ４０への書込みに合わせてポインタを更新する。続いて、読出制御信号線２から読出制御信号３４が入力されると、リード／ライトポインタ管理部４４は、ポインタが指し示すアドレスに格納された画素データ３５がメモリ４０から読み出されてデータ信号線２から送出されると、その読出しに合わせてポインタを更新する。
【００５１】
以上のように、画素データの書込みと読出しは交互に行われるので、ラインバッファ２６には、書込制御信号３２または読出制御信号３４の少なくともいずれか一方を入力されればすむ。
【００５２】
実施の形態３．
【００５３】
図６は、本実施の形態における復号装置２０のブロック構成図である。本実施の形態における復号装置２０は、実施の形態１の構成に切替部５２及びデータ保持部５３を加えた構成を有している。データ保持部５３は、データ保持部２６と同じ構成でよく、伸張された１ライン分の画素データを保持するラインバッファで形成される。切替部５２は、切替部２７と同じように、出力対象の画素データを保持しているデータ保持部２６ａ，２６ｂを交互に切り替える。データ保持部２６は、直前に伸張された画素データを保持し、データ保持部５３は、データ保持部２６が保持していた画素データを保持する。すなわち、データ保持部２６が１つ前に伸張した画素データを保持するのに対し、データ保持部５３は、２つ前に伸張した画素データを保持することになる。
【００５４】
図７は、本実施の形態の特徴を説明するためのデータ保持部２６に記憶されたブロックを示した概念図であり、再下段が書込処理中のデータ保持部２６ａ（または２６ｂ）、中段が直前に書き込まれたデータ保持部２６ｂ（または２６ａ）、そして最上段がその前に書き込まれたデータ保持部５３が示されている。伸張処理を行う際、実施の形態１における伸張部２４は、データ保持部２６から直前に伸張したラインを読み出して直上ブロックを参照するよう構成したが、本実施の形態における伸張部２４は、更にデータ保持部５３から２つ前に伸張した画素データをも読み出して参照するよう構成した。これにより、伸張対象のブロックＡが直前に伸張したラインに含まれる直上ブロックＢと一致せずに利用できなくても、更にその前に伸張したラインに含まれるブロックＡ、すなわち直上ブロックＢの直上ブロックＡと一致していればその画素データを利用する。
【００５５】
実施の形態４．
【００５６】
図８は、本実施の形態の特徴を説明するためのデータ保持部２６に記憶されたブロックを示した概念図であり、下段が書込処理中のデータ保持部２６ａ（または２６ｂ）、上段が直前に書き込まれたデータ保持部２６ｂ（または２６ａ）が示されている。
【００５７】
実施の形態１における伸張部２４は、データ保持部２６から直前に伸張したラインを読み出して直上ブロックを参照するよう構成したが、本実施の形態における伸張部２４は、直上ブロック周辺のブロックを参照する。すなわち、伸張対象のブロックＡが直前に伸張したラインに含まれる直上ブロックＢと一致せずに利用できなくても、その直上ブロックＢ周辺のブロックＡと一致していればその画素データを利用する。なお、図８では、直上ブロックＢに隣接した後段のブロックと一致したため、このブロックを参照する場合の例を示したが、直上ブロックに隣接したブロックに限定せず、更に隣のブロックを参照するようにしてもよい。このように、伸張した画素データを利用することによって伸張対象のブロックに対して伸張処理を実際に実施しなくても伸張した画素データを得るようにしてもよい。直上ブロックのどの並びまでのブロックを参照するかは、参照する処理とコードデータを実際に復号する処理とのトレードオフになる。
【００５８】
前述した各実施の形態は、適宜組み合わせて実施してもよい。また、上記各実施の形態においては、復号装置２０を画像処理装置１０に適用した場合を例にして説明したが、画像処理装置１０に限らず、圧縮された画素データを伸張する必要がある装置であれば、その装置に組み込んで実施するようにしてもよい。また、復号装置２０を単独の装置として設けるように構成してもよい。
【００５９】
なお、上記各実施の形態において、印刷対象の画像データの圧縮方式として、基本的には可逆圧縮方式を想定しているが、非可逆圧縮方式にも可能であれば適用してもよい。
【図面の簡単な説明】
【００６０】
【図１】実施の形態１における画像処理装置のハードウェア構成図である。
【図２】実施の形態１における復号装置のブロック構成図である。
【図３】実施の形態１の復号装置におけるタイミングチャートを示した図である。
【図４】実施の形態１におけるデータ保持部を形成するラインバッファの構成図である。
【図５】実施の形態２におけるデータ保持部を形成するラインバッファの構成図である。
【図６】実施の形態３における復号装置を示したブロック構成図である。
【図７】実施の形態３の特徴を説明するためのデータ保持部に記憶されたブロックを示した概念図である。
【図８】実施の形態４の特徴を説明するためのデータ保持部に記憶されたブロックを示した概念図である。
【符号の説明】
【００６１】
１，５  読出制御信号線、２，４，６，７，８  データ信号線、３  書込制御信号線、１０  画像処理装置、１１  ＣＰＵ、１２  アドレスデータバス、１３  操作パネル、１４  スキャナ、１５  ハードディスクドライブ（ＨＤＤ）、１６  プリンタエンジン、１７  ネットワークインタフェース（Ｉ／Ｆ）、１８  ＲＡＭ、１９  ＲＯＭ、２０  復号装置、２１  データ取込部、２２  コード識別部、２３  コード格納部、２４  伸張部、２５，２７，５２  切替部、２６ａ，２６ｂ，５３  データ保持部（ラインバッファ）、２８  データ出力部、２９  制御部、４０  メモリ、４１，４３  リードポインタ管理部、４２  ライトポインタ管理部、４４  リード／ライトポインタ管理部、５０  コンピュータ、５１  ネットワーク。
【図１】
0004525726.tif 000002
【図２】
0004525726.tif 000003
【図３】
0004525726.tif 000004
【図４】
0004525726.tif 000005
【図５】
0004525726.tif 000006
【図６】
0004525726.tif 000007
【図７】
0004525726.tif 000008
【図８】
0004525726.tif 000009