(57)【要約】【課題】少ない容量のメモリで、ＪＰＥＧデータを様々な順番で印刷することが可能な低コストなプリンタを提供する。【解決手段】ＪＰＥＧ方式で圧縮された第１のデータ群φ１を受信する際に、第１のデータ群φ１に含まれるＭＣＵを順番に検出する部分伸長機能２３と、検出されたＭＣＵのＲＡＭ１２の適当なアドレスに転送して並び替えを行う転送機能２４とを有するデータ受信部２２を有するプリンタ１を提供する。ＲＡＭ１２には、印刷するのに適した第２の配列でＭＣＵが並んだ第２のデータφ１０が格納されるので、出力部２５は、第２のデータ１０に含まれるＭＣＵをその順番で伸長するだけで、印刷ヘッドの動きに適した印刷データを提供できる。【選択図】        図２
2004336389.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、前記第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列工程を有するデータ処理方法。
【請求項２】
請求項１において、前記再配列工程では、前記第１のデータ群を受信し、順番に検出された各々の前記圧縮データセットを前記第２の配列を形成するための転送先へ出力するデータ処理方法。
【請求項３】
請求項１において、さらに、前記第２のデータ群に含まれる前記複数の圧縮データセットを前記第２の配列に従い伸長して出力する工程を有するデータ処理方法。
【請求項４】
請求項１において、前記第１のデータ群には、２次元画像のスキャン方向を主とする前記第１の配列で前記複数の圧縮データセットが含まれており、前記第２のデータ群には、２次元画像のサブスキャン方向を主とする前記第２の配列で前記複数の圧縮データセットが含まれているデータ処理方法。
【請求項５】
請求項１において、各々の圧縮データセットは、前記第１の配列に依存した差分情報を備えており、
前記再配列工程では、各々の前記圧縮データセットを順番に検出すると共に各々の前記圧縮データセットに対応する前記差分情報の絶対値を求め、前記複数の圧縮データセットとそれらに対応する前記絶対値が前記第２の配列に従って含まれた前記第２のデータ群を生成するデータ処理方法。
【請求項６】
請求項１において、各々の前記圧縮データセットは、２次元画像の前記画素領域に含まれる画素データが少なくとも離散コサイン変換、量子化およびハフマン符号化により圧縮され、量子化された離散コサイン係数の値を差分情報として含んでおり、
前記再配列工程では、各々の前記圧縮データセットを順番に検出すると共に各々の前記圧縮データセットに対応する離散コサイン係数の絶対値を求め、前記複数の圧縮データセットとそれらに対応する前記離散コサイン係数の絶対値が前記第２の配列に従って含まれた前記第２のデータ群を生成するデータ処理方法。
【請求項７】
請求項１において、前記圧縮データセットはＪＰＥＧ方式で圧縮されているデータ処理方法。
【請求項８】
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、前記第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列工程と、
前記第２のデータ群に含まれる前記複数の圧縮データセットを前記第２の配列に従い伸長して印刷する工程を有する印刷方法。
【請求項９】
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、前記第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列工程をコンピュータにおいて実行可能な命令を有するプログラム。
【請求項１０】
請求項９において、前記再配列工程では、前記コンピュータが受信した前記第１のデータ群から順番に検出された各々の前記圧縮データセットを前記第２の配列を形成するための転送先へ出力する処理を実行するプログラム。
【請求項１１】
請求項９において、前記第２のデータ群に含まれる前記複数の圧縮データセットを前記第２の配列に従い伸長して出力する工程をコンピュータがさらに実行可能な命令を有するプログラム。
【請求項１２】
請求項９において、各々の圧縮データセットは、前記第１の配列に依存した差分情報を備えており、
前記再配列工程では、各々の前記圧縮データセットを順番に検出すると共に各々の前記圧縮データセットに対応する前記差分情報の絶対値を求め、前記複数の圧縮データセットとそれらに対応する前記絶対値が前記第２の配列に従って含まれた前記第２のデータ群を生成する、プログラム。
【請求項１３】
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、前記第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列手段を有するデータ処理装置。
【請求項１４】
請求項１３において、前記再配列手段は、前記第１のデータを受信し、順番に検出された各々の前記圧縮データセットを前記第２の配列を形成するための転送先へ出力するデータ処理装置。
【請求項１５】
請求項１３において、さらに、前記第２のデータに含まれる前記複数の圧縮データセットを前記第２の配列に従い伸長して出力する手段を有するデータ処理装置。
【請求項１６】
請求項１３において、各々の前記圧縮データセットは、前記第１の配列に依存した差分情報を備えており、
前記再配列手段は、各々の前記圧縮データセットを順番に検出すると共に各々の前記圧縮データセットに対応する前記差分情報の絶対値を求め、前記複数の圧縮データセットとそれらに対応する前記絶対値が前記第２の配列に従って含まれた前記第２のデータ群を生成するデータ処理装置。
【請求項１７】
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、前記第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列手段と、
前記第２のデータに含まれる前記複数の圧縮データセットを前記第２の配列に従い伸長して印刷する手段を有する印刷装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＪＰＥＧ方式などで圧縮されたデータ列を伸長する方法に関するものである。
【０００２】
【従来の技術】
近年、デジタルカメラで撮影した画像などはＪＰＥＧ方式で圧縮されたデータ列として保存することが可能である。そのＪＰＥＧ方式で圧縮されたデータ群は、パーソナルコンピュータに保存したり、ウェブサイトにアップロードしてブラウザを介して伸長し画像として公開することが可能である。また、ＪＰＥＧ方式で圧縮されたデータ群を伸長して印刷用のデータを作成し、それにより画像をプリントアウトすることも可能である。
【０００３】
ＪＰＥＧ方式によると、画像は複数のマトリクス（画素領域または画素ブロック）に分割され、個々の画素領域を形成する情報、すなわち、画素データがエントロピー符号化（可変長符号化とも称される）であるハフマン方式により圧縮される。したがって、画像データを蓄積するためのデータ画素領域毎の画素データが圧縮されたデータセットは最小符号化単位（ＭＣＵ）と称され、ＪＰＥＧ方式で圧縮された画像ファイルには、ＭＣＵの階層では、複数のＭＣＵがスキャン方向の順番で並んで収納されている。
【０００４】
【特許文献１】
特開２０００−２７８６８５号公報
【０００５】
【発明が解決しようとする課題】
ＪＰＥＧ方式では、画像データが可変長符号化を用いて圧縮されるのでデータ量を大幅に減少でき、画像データを蓄積したり、画像データを伝送するのに適している。その一方で、画像データの途中の情報にアクセスしようとすると、最初から順番にＭＣＵを伸長あるいは復号していかないといけないと言う問題がある。画素データは可変長符号化された後にスキャン方向に並べられているので符号化された各々のＭＣＵのサイズは異なる。このため、先頭のＭＣＵから順番に復号していかないと、各々のＭＣＵの先頭または終わりを把握できない。
【０００６】
したがって、ＪＰＥＧ方式で圧縮されたデータ群に対して、ＭＣＵの並びと一致しない順番でＭＣＵを利用したい事態が発生したときにＪＰＥＧ方式で圧縮されたデータ群の処理はとたんに面倒なものになる。たとえば、画像を印刷する際に、ＭＣＵが並んだスキャン方向に画像の先頭からヘッドを動かして印刷する場合はＭＣＵを順番に伸長できるから良いとしても、スキャン方向とは異なる方向、たとえば、スキャン方向に直交するサブスキャン方向に印刷したり、スキャン方向に逆行する末端から印刷する場合は、事前に全てのＭＣＵを復号して２次元画像を表すドットマトリクスのデータを用意しておく必要がある。このため、膨大なデータを保持できるだけの大容量のメモリが必要になり、あるいは、圧縮した状態で画像データをプリンタに送信できなくなるので、ＪＰＥＧ方式で画像データを圧縮したメリットはなくなる。
【０００７】
特開２０００−２７８６８５号公報には、ＪＰＥＧ方式で圧縮されたデータ列を事前スキャナにより開始位置からシーケンシャルに復号することにより、指定されたイメージ領域に関する位置情報を事前走査テーブルとして記憶することが記載されている。一旦事前走査動作が実行されたならば、イメージ領域には直接にアクセスすることができるので、事前スキャナによって位置情報が事前走査テーブルに記憶されているいかなる符号化イメージ領域に関してもシーケンシャル走査は必要とされないことが記載されている。
【０００８】
この処理方法は、事前にＪＰＥＧデータ全体を伸長して画像全体のドットマトリクスをメモリに保持しておかなくても良いので、メモリ容量が少なくても印刷することができ、ＪＰＥＧ方式のメリットを維持できる。しかしながら、位置情報を記憶するために事前走査テーブルを新たに作成してメモリに保持しておく必要がある。したがって、ＪＰＥＧ方式で圧縮されたデータに加えて、事前走査テーブルを記憶する容量のメモリは最低限必要になる。特開２０００−２７８６８５号公報においては、イメージ領域のすべてより少ない領域に関する位置情報を記憶することにより、事前走査テーブルに必要な記憶装置の量を減らすことが記載されている。しかしながら、イメージ領域に直接にアクセスするためには位置情報を記憶しないといけないので、事前走査テーブルに割かれるメモリ容量をゼロにするわけにはいかない。
【０００９】
さらに、この処理方法は、イメージ領域に直接にアクセスするために事前走査テーブルを参照しないといけない。すなわち、位置情報が事前走査テーブルに記憶されていない符号化イメージ領域に関しては、そのイメージ領域にアクセスするために伸長作業を伴うシーケンシャル走査をしないといけなくなる。したがって、事前走査テーブルに割かれるメモリ容量をセーブしようとして事前走査テーブルに記憶される位置情報を削減すると、処理速度が低下してしまう。
【００１０】
そこで、本発明においては、少ない容量のメモリでＪＰＥＧ方式のようにエントロピー符号化を用いて圧縮されたデータを高速に処理することができるデータ処理方法を提供することを目的としている。また、そのようなデータ処理方法を実現することができるプログラムおよびデータ処理装置、さらには、プリンタを提供し、エントロピー符号化を用いて圧縮されたデータをより少ない容量のメモリでフレキシブルに処理できるようにすることを目的としている。
【００１１】
【課題を解決するための手段】
このため、本発明においては、画素領域毎に圧縮されたデータセットによりデータ群が構成されていることに着目し、フレキシブルな処理を行うために圧縮されたデータ全体を伸長（または伸張）してしまうのではなく、圧縮された各々のデータセットはそのまま圧縮された状態で順番を検出し、データセットの並び替えを行うことにより、フレキシブルな処理を可能にする。したがって、本発明によれば、オリジナルのデータ配列と異なる順番で処理を行うために、画像データ全体を伸長するほどの容量のメモリは不要であり、また、各データセットの位置情報を保存するため余分なテーブルも不要である。
【００１２】
すなわち、本発明のデータ処理方法は、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列工程を有する。この再配列工程を用いることにより、第１のデータ群を受信したときに、順番に検出された各々の圧縮データセットを第２の配列を形成するための転送先、例えば適当なメモリのアドレスへ出力することにより第２のデータ群を形成することができる。したがって、後続の処理に適した第２の配列で圧縮データセットが並んだ第２のデータ群をメモリなどの記録媒体に格納するだけで、オリジナルの第１のデータ群の内容を保存することが可能となる。このため、後続の処理のためにオリジナルの第１のデータ群全体をメモリに展開する必要はない。また、第１のデータ群をメモリに格納すると共にその位置情報を検出し、位置情報を含むテーブルを別途作成して記憶するという手間と、テーブルを格納するために必要となる余分なメモリ容量も省くことができる。
【００１３】
したがって、本発明のデータ処理方法が、再配列工程につづいて、第２のデータ群に含まれる複数の圧縮データセットを第２の配列に従い伸長して出力する工程を有する場合は、第２のデータ群に配列にしたがってアクセスするだけで処理を実行することができる。このため、本発明により、データ群に含まれる圧縮データセットに対して、その圧縮データセットの位置情報に基づいてダイレクトにアクセスしなくてはならないという問題の発生を阻止することができる。そして、本発明においては、圧縮データセットは圧縮されたままで格納されるので、メモリ容量の増加や、事前に全ての圧縮データを伸長するために費やされる処理時間の増加を防止することができ、経済的なハードウェアにより短時間で所望の処理を進めることができる。
【００１４】
したがって、本発明は、本発明のデータ処理方法が実行可能なプログラムあるいはプログラム製品およびデータ処理装置をも提供する。すなわち、本発明のプログラムは、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列工程をコンピュータにおいて実行可能な命令を有する。このプログラムは適当な記録媒体に記録したり、コンピュータネットワークを介して提供することが可能である。また、再配列工程では、コンピュータが受信した第１のデータ群から順番に検出された各々の圧縮データセットを第２の配列を形成するための転送先へ出力する処理を実行することにより第２のデータ群を生成することができ、コンピュータが管理するメモリをより有効に活用できる。コンピュータには、パーソナルコンピュータのように単独で動作するものに加えて、プリンタなどの周辺機器を制御するために周辺機器に実装されているＣＰＵなどのプロセッサも含まれる。そして、プログラムには、第２のデータ群に含まれる複数の圧縮データセットを第２の配列に従い伸長して出力する工程を実行する命令を含めることができる。
【００１５】
また、本発明のデータ処理装置は、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第１の配列で並んだ第１のデータ群から各々の圧縮データセットを順番に検出し、第１の配列とは異なる第２の配列に並べることにより第２のデータ群を生成する再配列手段を有する。再配列手段は、第１のデータを受信し、順番に検出された各々の圧縮データセットを第２の配列を形成するための転送先へ出力することにより第２のデータ群を生成することができる。また、データ処理装置には、第２のデータに含まれる複数の圧縮データセットを第２の配列に従い伸長して出力する手段を含めることができる。
【００１６】
本発明のデータ処理方法の１つの極めて有用なアプリケーションの形態は印刷である。すなわち、本発明においては、上述した再配列工程と、第２のデータ群に含まれる複数の圧縮データセットを第２の配列に従い伸長して印刷する工程を有する印刷方法を提供する。また、再配列手段と、第２のデータに含まれる複数の圧縮データセットを第２の配列に従い伸長して印刷する手段を有する印刷装置を提供する。
【００１７】
上述したＪＰＥＧ方式、また、それに類似する圧縮構造を持つＭＰＥＧ方式などにおいては、各々の圧縮データセットが、オリジナルの第１のデータ群の第１の配列に依存した差分情報を備えている場合がある。例えば、ＪＰＥＧ方式においては、各々の圧縮データセットは、２次元画像の画素領域に含まれる画素データが少なくとも離散コサイン変換、量子化およびハフマン符号化により圧縮されており、さらに、量子化された離散コサイン係数の値を差分情報として含んでいる。したがって、第１の配列と異なる第２の配列に圧縮データセットを並び変えた場合は、含まれている差分情報がそのままでは利用できない可能性がある。このため、再配列工程および再配列手段では、各々の圧縮データセットを順番に検出すると共に各々の圧縮データセットに対応する差分情報の絶対値を求め、複数の圧縮データセットとそれらに対応する絶対値が第２の配列に従って含まれた第２のデータ群を生成することが望ましい。圧縮データセットがＪＰＥＧ方式あるいはそれに類似する方式で圧縮されている場合は、再配列工程および再配列手段では、各々の圧縮データセットに対応する離散コサイン係数の絶対値を求め、複数の圧縮データセットとそれらに対応する離散コサイン係数の絶対値が第２の配列で含まれた第２のデータ群を生成することが望ましい。
【００１８】
本発明の一例は、第１のデータ群には、２次元画像のスキャン方向を主とする第１の配列で複数の圧縮データセットが含まれている場合に、再配列工程および再配列手段により、２次元画像のサブスキャン方向を主とする第２の配列で複数の圧縮データセットが含まれている第２のデータ群を生成するものである。サブスキャン方向に印刷する場合に有効であり、ＪＰＥＧ圧縮されたデータを小容量のメモリで、高速印刷が可能なプリンタを低コストで提供できる。メモリやディスクなどの外部記憶装置は、製品を構成する部品においてコスト的に大きな割合を占めており、記憶容量を削減できることは経済的な効果が大きい。
【００１９】
第２の配列は、上記に限定されることはなく、スキャン方向と逆方向に配列したり、第１の配列の一部を抜き出して第２の配列としたりすることが可能であり、後続の処理に適した種々の配列を第２の配列として選択することができる。
【００２０】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図１に本発明のデータ処理装置を備えたプリンタの概略を示してある。プリンタ１は、デジタルカメラ等の周辺機器やパーソナルコンピュータなどのホスト装置からＪＰＥＧ方式で圧縮されたデータ列またはデータ群（以降においてはＪＰＥＧデータまたは第１のデータ群）φ１を取得して、伸長して印刷する。第１のデータ群φ１は、コンパクトフラッシュ（登録商標）やメモリスティック（登録商標）などのストレージを読み取り可能なインターフェイス、またはホスト装置や周辺機器との通信を可能とするＵＳＢなどの通信インターフェイス１１を介してプリンタ１に提供される。
【００２１】
プリンタ１は、印刷用紙２にインク滴を吐出する複数のノズル３を備えた印刷ヘッド４と、この印刷ヘッド４をシャフト５に沿って紙幅方向を印刷時のスキャン方向として往復動するためのモータ６と、印刷時のスキャン方向と直交する紙送り方向に印刷用紙２をフィードするためにローラ７を駆動するモータ８とを有している。さらに、プリンタ１は、ＣＰＵ、ＲＡＭ、ＲＯＭなどによって構成される制御部１０を有しており、この制御部１０によりモータ６および８やノズル３からインク滴を吐出するタイミングが制御される。
【００２２】
この制御部１０は、第１のデータ群φ１を受信するときに、第１のデータ群φ１に第１の配列で含まれている複数の圧縮データセット、すなわち、ＪＰＥＧ方式ではＭＣＵを、第２の配列に並び替え、第２のデータ群φ１０としてＲＡＭ１２に記憶するデータ受信部２２を備えている。第１のデータ群φ１ではＭＣＵが画像のスキャン方向Ｘで配列（第１の配列）されている場合に、データ受信部２２において、ＭＣＵが印刷のスキャン方向Ｙで配列（第２の配列）された第２のデータ群φ１０に変換してＲＡＭ１２に格納する。これにより、プリンタ１では、第２のデータ群φ１０に含まれたＭＣＵをその順番で伸長して印刷することにより、プリンタのスキャン方向で簡単に第１のデータ群φ１で与えられた画像を印刷することができる。すなわち、本例のプリンタ１では、２次元画像のサブスキャン方向Ｙが印刷するときのスキャン方向となっており、以降では、データ列φ１のスキャン方向Ｘを基準となるスキャン方向として説明する。
【００２３】
さらに具体的に説明すると、本例の制御部１０は印刷データの処理を行うデータ処理部２０と、処理されたデータに基づいてモータ６、８およびヘッド４を制御してプリントアウトする機構制御部２１とを備えている。データ処理部２０に含まれる本例のデータ受信部２２は、インターフェイス１１から供給された第１のデータ群φ１に含まれる複数のＭＣＵの順番を検出し、それぞれのＭＣＵを、第２の配列になるようにＲＡＭ１２の所定のアドレスに転送してＭＣＵの並び順を変更して第２のデータ群φ１０を生成する再配列手段として機能する。さらに、データ処理装置２０は、ＲＡＭ１２に記録された第２のデータ群φ１０に基づき、ＭＣＵを順番に伸長して出力する出力部２５を備えている。
【００２４】
圧縮方式の１つであるＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｃｏｒｄｉｎｇ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式は、１つの画像を形成するドットマトリクスの情報が、その左側から右側に、そして上から下、すなわち、左上から右下に向って８ドット×８ドットの画素領域あるいは画素ブロックに分割され、その画素領域の単位でＭＣＵとして圧縮格納されている。画像を形成するドットマトリクスの単位は８ドット×８ドットに限定されるものではないが、分割された小マトリクスを１つの画素ブロックとして１つの圧縮データセット（ＭＣＵ）とし、複数の圧縮データセットが画像のスキャン方向、すなわち、左上から右下に向って順番に並べられた状態で集合体となり、それが１つの画像を圧縮したＪＰＥＧデータとなる。これが本例における第１のデータ群である。
【００２５】
ＪＰＥＧ方式により画像を圧縮する過程をもう少し説明する。まず、画像を形成するドットマトリクスを、画像データの原色系（ＲＧＢ）の色空間から色差系（ＹＣｂＣｒ）の色空間の画素データに変換する。次に、８ドット×８ドットの画素ブロックに分割し、このブロック単位で変換された画素データを離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）する。さらに、離散コサイン変換時に得られたＤＣＴ係数を、量子化テーブルを用いて量子化する。量子化されたＤＣＴ係数は、さらに、エントロピー符号化あるいは可変長符号化の１つであるハフマン符号を用いて圧縮される。ハフマン符号化の際、量子化されたＤＣＴ係数のＤＣ成分およびＡＣ成分のうち、ＤＣ係数（成分）は直前の画素ブロックのＤＣ係数に対する差分値が符号化される。このため、データ列φ１を復号する際には、ＭＣＵで圧縮されたデータを、圧縮したときの逆の手順、すなわち、ハフマン復号化、逆量子化、逆ＤＣＴ、ＲＧＢ変換という伸長処理を行うことで２次元画像のデータに伸長される。
【００２６】
ＪＰＥＧ方式で圧縮されたデータ群φ１においては、各々のＭＣＵが可変長符号化されているので、各々のＭＣＵはサイズが異なる。したがって、ハフマン復号化しないと各々のＭＣＵを識別できない。逆に言うと、ハフマン復号化すれば、逆量子化や逆ＤＣＴを含めた全ての伸長処理を実行しなくても、各々のＭＣＵを検出あるいは識別することが可能である。このため、データ受信部２２は、受信したデータ群φ１の先頭から順番にハフマン復号化しながら各々のＭＣＵを検出する部分伸長機能２３と、検出されたＭＣＵを第２の配列を形成するためのＲＡＭ１２のアドレスに出力する転送機能２４を備えている。したがって、データ受信部２２が全ての第１のデータ群φ１を受信してＲＡＭ１２にデータを格納すると、ＲＡＭ１２にはＭＣＵが第２の配列に並び順が変えられた第２のデータ群φ１０が形成される。
【００２７】
本例のデータ受信部２２では、第１のデータ群φ１はＲＡＭ１２に記憶せず、また、ＭＣＵを検出する際にハフマン復号化までは行うが、ハフマン復号化される前の、ハフマン符号化された状態のＭＣＵをＲＡＭ１２に格納する。このため、ＲＡＭ１２は、データ群φ１に含まれるＭＣＵを記録できる程度の容量があれば、第２のデータ群φ１０を記録できる。したがって、オリジナルのデータ群φ１を記憶する程度の容量のメモリにより、再配列された第２のデータ群φ１０を記憶できる。実際には、以下に示すように、各々のＭＣＵのＤＣ係数の絶対値を対応して格納するため、若干余分にメモリ領域を消費する。
【００２８】
上述したように、ＭＣＵにはＤＣ係数が差分情報として含まれている。したがって、第２の配列に並び替えると、そのままでは利用できない情報となる。このため、データ受信部２２の部分伸長機能２３において、部分伸長することにより各々のＭＣＵの差分情報として表されたＤＣ係数が得られるので、それらを累積演算し、直前のＭＣＵまでのＤＣ係数の絶対値を求める。さらに、出力機能２４が、ＭＣＵと共にＤＣ係数の絶対値をＲＡＭ１２に転送してこれらを関連付けて記憶する。これにより、ＭＣＵが第２の配列で並んだ第２のデータ群φ１０においても、ＭＣＵを順番に伸長できる。
【００２９】
図２に、本例のデータ受信部２２により第２のデータ群φ１０が生成される様子を示してある。この例では、第１のデータ群φ１にスキャン方向Ｘに順番に含められた複数のＭＣＵを、サブスキャン方向Ｙに並べ替えて第２のデータ群φ１０を生成する。部分伸長機能２３により、第１のデータ群φ１に含まれるＭＣＵ１が検出されると、転送機能２４により、ＲＡＭ１２のカラム０の領域１２ａの先頭アドレスにＭＣＵ１が転送される。同時に、それまでに累積されたＤＣ係数の絶対値φ１２がＭＣＵ１の後に記録されるように転送される。絶対値φ１２を先に記録しても良い。次に、部分伸長機能２３により、次のＭＣＵ２が識別されると、転送機能２４により、ＲＡＭ１２の次のカラム１の領域１２ｂの先頭アドレスにＭＣＵ２が転送される。同時にＭＣＵ１までの差分情報が累積された絶対値φ１２がＭＣＵ２の後に記録されるように転送される。第１のデータφ１を受信する処理が進んで、部分伸長機能２３によりＭＣＵ１７が識別されると、このＭＣＵ１７は、サブスキャン方向ＹではＭＣＵ１の次に並べられるので、転送機能２４は、ＭＣＵ１７を１カラム０の領域１２ａのＭＣＵ１の後のアドレスに転送する。このように第１のデータφ１を受信してＲＡＭ１２に格納する処理を繰り返すことにより、ＲＡＭ１２には、サブスキャン方向ＹにＭＣＵが並んだ第２のデータ群φ１０が格納される。
【００３０】
データ処理部２０の出力部２５は、少なくともＲＡＭ１２のカラム０の領域１２ａに、第２のデータ群φ１０のサブスキャン方向Ｙの一列分のデータ列φ１３が記録されると処理を開始することができる。カラム０のメモリ領域１２ａに、２次元画像のスキャン方向Ｘの左端のサブスキャン方向Ｙを構成するＭＣＵ１、ＭＣＵ１７、ＭＣＵ３３、ＭＣＵ４９、ＭＣＵ６５、ＭＣＵ８１、ＭＣＵ９７、ＭＣＵ１１３、ＭＣＵ１２９、およびＭＣＵ１４４のそれぞれが対応するＤＣ絶対値φ１２とペアで記録されると、印刷するためのスキャン方向Ｙの一列分のデータφ１３が生成される。このため、出力部２５は、データ列φ１３に含まれるＭＣＵを伸長し、印刷データとして機構制御部２１に送り、印刷を開始する。この例では、印刷ヘッド４の動きに合わせて、出力部２５はカラム０のメモリ領域１２ａに記録されたデータ列φ１３のＭＣＵを最後から先頭に向けて順番に伸長し、印刷ヘッド４の動きに適合した印刷データを出力することができる。プリンタ１において、印刷ヘッド４が移動するライン分の印刷データを記憶するだけのメモリ領域を使用できるのであれば、データ列φ１３のＭＣＵを先頭から順番に伸長しても良い。いずれの場合も、出力部２５においては、各々のＭＣＵが第１のデータ群φ１に記録されていた通りの順番では伸長されないが、ハフマン復号化は可能であり、さらに、その後はＭＣＵと共に記録されたＤＣ係数の絶対値φ１２を使用することにより、逆量子化、逆ＤＣＴ、およびＲＧＢ変換の伸長処理の全過程を経て、全てのＭＣＵを伸長することができる。
【００３１】
図３に、本例のプリンタ１において、第１のデータ群φ１を受信してから印刷するまでの処理の概要を、フローチャートを用いて示してある。ステップ４１において、受信する第１のデータ群φ１があると、ステップ４２において、データ受信部２２の部分伸長機能２３によりハフマン復号化のみを行い、第１のデータ群φ１に含まれるＭＣＵを順番に検出する。このステップ４２においてはＤＣ係数の絶対値φ１２も算出される。ＭＣＵが検出されると、ステップ４３において、検出されたＭＣＵの転送先（ＲＡＭ１２のアドレス）を設定し、ステップ４４において、検出されたＭＣＵとＤＣ係数の絶対値φ１２とをＲＡＭ１２に転送する。ステップ４１において、受信する第１のデータ群φ１が終了するまで繰り返すことにより、ＲＡＭ１２にＭＣＵが並び替えられた第２のデータφ１０が生成されるので、受信が終了すると、あるいは、受信途中でも印刷できるデータ列φ１３が整えば、ステップ４７において、出力部２５により、並び替えられた第２の配列に従ってＭＣＵが伸長され、ステップ４８において印刷される。
【００３２】
これらの処理は、上記の各ステップの処理を、プリンタ１の制御部１０を構成するＣＰＵあるいはＡＳＩＣなどのプロセッサあるいはマイクロコンピュータにより実行する命令を有するプログラムとして提供することができる。このプログラムは、プリンタ１のファームウェア１８としてＲＯＭ１９に記憶して提供し、利用することができる。また、インターネットなどのコンピュータネットワークを介して提供し、プリンタ１にインストールして利用することができる。また、上記の各ステップは、ハードウェアロジックにより実現することも可能であり、制御部１０として、そのようなハードウェアロジックを実装したプロセッサを採用することも可能である。また、一部の処理をハードウェアにより実行し、残りの処理をソフトウェアにより実行することも可能である。
【００３３】
このように、第１のデータ群φ１に含まれるＭＣＵを適当な第２の配列に並び替え、第２のデータ群φ１０として記憶できるデータ処理装置２０を有するプリンタ１では、第２のデータ群φ１０を記憶できるメモリ容量さえあれば、ＪＰＥＧ方式で圧縮された第１のデータ群φ１に含まれるＭＣＵの順番とは無関係にフレキシブルな順番でＭＣＵを伸長して印刷することができる。上記の例では、２次元画像のスキャン方向Ｘに配列された複数のＭＣＵをサブスキャン方向Ｙに印刷することができる。そして、第２のデータ群φ１０には、圧縮された状態のままのＭＣＵが含まれているので、本来のＪＰＥＧデータφ１を格納するのとほぼ同じ程度のメモリ領域があれば足り、オリジナルのデータφ１や各々のＭＣＵの位置情報を格納するためのメモリ領域は不要であり、データ記憶用のリソースは非常に少なくて良い。
【００３４】
さらに、データを受信した以降は、ＲＡＭ１２に生成された第２のデータ群φ１０に含まれるＭＣＵの配列に基づき処理を進めることができるので、位置情報に基づいてランダムにＭＣＵにアクセスする必要もない。したがって、印刷などの後続の処理を実行するために、ＲＡＭ１２に記憶された個々のＭＣＵに対して位置情報に基づきランダムにアクセスするような処理を高速で実行できるようなハードウェアリソースも不要となる。また、データを受信した以降の処理では、必要な順番でＭＣＵが参照できるため、その都度、ハフマン復号化より後の処理を行えば良い。このため、展開後のデータ処理に限って必要な記憶装置の容量は非常に少なくて良く、この点でもプリンタ１に搭載する記憶装置の容量を低減できる。小容量のメモリ装置は、マイクロプロセッサのチップ内に構成することも可能であり、部品点数の低減効果も得られ、さらに、コストダウンが可能である。また、プロセッサ内部にメモリ装置を搭載した場合、プロセッサ内の高速な幅広いバスで動作可能なメモリにできるので、キャッシュメモリを積まない安価なプロセッサを用いて高速に動作するプリンタを提供することが可能となる。
【００３５】
また、ＪＰＥＧデータφ１を処理するために使用するメモリ容量が少なくて済むという効果が得られるので、プリンタに限定されず、携帯端末のように、大きな容量の記憶装置を搭載し難いデータ処理装置において、ＪＰＥＧ方式あるいは類似の圧縮アルゴリズムを採用しているＭＰＥＧ方式で圧縮されたデータを取り扱うのに本発明は適している。
【００３６】
図４に、携帯端末５０から再配列後のデータ列φ１０をプリンタ１ａに送信して印刷する例を示してある。端末５０では、ブラウザなどの画像処理ができるアプリケーション５１が稼動しており、インターネット５９からＪＰＧＥデータφ１をダウンロードして表示できるようになっている。アプリケーション５１から画像をプリントする場合は、プリンタドライバ５３がＪＰＥＧ方式で圧縮された第１のデータ群φ１に含まれるＭＣＵをプリンタ１ａで印刷するのに適した第２の配列に変換してメモリ５２に記憶するデータ受信部５６を備えている。そして、メモリ５２に、第２の配列でＭＣＵが並んだ第２のデータφ１０がスプールファイルとして生成され、それが印刷データとしてプリンタドライバ５３からプリンタ１ａに供給される。プリンタドライバ５３のデータ受信部５６も、インターネット５９およびＬＡＮインターフェイス５８などを介して受信した第１のデータ列φ１を部分伸長（ハフマン復号化）することによりＭＣＵを検出する部分伸長機能５４と、検出されたＭＣＵを印刷用の配列に並び替える転送機能５５とを備えている。プリンタ１ａでは、印刷に適した配列にＭＣＵが並んだ第２のデータ群φ１０がデータ受信部２９により受信され、メモリ１２に記憶される。そして、出力部２５により伸長されて出力される。
【００３７】
なお、ＪＰＥＧ方式で圧縮されたデータ列には、ＤＨＰ（Ｄｅｆｉｎｅ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｐｒｏｇｒｅｓｓｉｏｎ）を含む階層符号化型のデータや、ＤＨＰマーカが挿入されない形式のデータがあるが、本発明はいずれのデータにも適用可能である。また、ＪＰＥＧ方式で圧縮されたデータ群の処理に限らず、ＭＰＥＧ方式などの、２次元画像が複数のマトリクスに分割され、各々のマトリクスが１つの画素ブロックとなり、その画素ブロック内に含まれる画素データが少なくともエントロピー符号化（可変長符号化）により圧縮された圧縮データセットが、第１の配列で並べられた第１のデータ群を処理する場合には、本発明を適用できる。
【００３８】
また、上記では、インクジェットタイプのプリンタ１、１ａを例に説明したが、サーマルタイプやレーザタイプのプリンタであっても良い。さらに、印刷ヘッド１３を移動または走査させながら印刷するタイプに限定されずに、ラインタイプのプリンタにも本発明は適用できる。また、プリンタは、ファクシミリやコピーなどの印刷する機能を有する機器を全て含む概念である。さらに、印刷処理に限らず、圧縮された順番と異なる順番で画面に画像を表示するような処理においても本発明は適用できる。
【００３９】
【発明の効果】
以上に説明したように、本発明においては、ＪＰＥＧ方式などで圧縮された第１のデータ群に含まれる複数の圧縮データセットを順番に検出し、それらの圧縮データセットを異なる順番に並び替えた第２のデータ群を形成する。したがって、圧縮データセットを圧縮されたままの状態で配列だけを変えることになり、本発明により、データ群を記憶するための容量をほとんど増加させずに、オリジナルのデータ群とは異なる順番でフレキシブルに、そして、余分な処理を発生させずに高速で所望の圧縮データセットにアクセスすることが可能となる。
【００４０】
したがって、本発明をプリンタに適応することにより、少ない容量のメモリで、ＪＰＥＧデータを様々な順番で印刷することが可能なプリンタを低コストで提供することができる。
【図面の簡単な説明】
【図１】本発明のデータ処理装置が搭載されたプリンタの概略を示す図である。
【図２】データ処理装置の再配列部によりデータ列の複数のＭＣＵの並びが変更される様子を示す図である。
【図３】図１に示すプリンタにおける印刷処理を示すフローチャートである。
【図４】データ列の再配列が外部機器で行われる例を示す図である。
【符号の説明】
１、１ａ    プリンタ
４    印刷ヘッド
１２    ＲＡＭ
２０    データ処理装置
２２    再配列部
２３    部分伸長機能
２４    転送機能
２５    出力部
φ１    第１のデータ群
φ１０    第２のデータ群
Ｘ    スキャン方向
Ｙ    サブスキャン方向
【図１】
2004336389.tif 000003
【図２】
2004336389.tif 000004
【図３】
2004336389.tif 000005
【図４】
2004336389.tif 000006