JP4074832B2 - Data processing method and data processing apparatus - Google Patents

Data processing method and data processing apparatus Download PDF

Info

Publication number
JP4074832B2
JP4074832B2 JP2003129486A JP2003129486A JP4074832B2 JP 4074832 B2 JP4074832 B2 JP 4074832B2 JP 2003129486 A JP2003129486 A JP 2003129486A JP 2003129486 A JP2003129486 A JP 2003129486A JP 4074832 B2 JP4074832 B2 JP 4074832B2
Authority
JP
Japan
Prior art keywords
array
data
compressed
compressed data
data sets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003129486A
Other languages
Japanese (ja)
Other versions
JP2004336389A (en
Inventor
修司 山本
徳康 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naltec Inc
Original Assignee
Naltec Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Naltec Inc filed Critical Naltec Inc
Priority to JP2003129486A priority Critical patent/JP4074832B2/en
Publication of JP2004336389A publication Critical patent/JP2004336389A/en
Application granted granted Critical
Publication of JP4074832B2 publication Critical patent/JP4074832B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、JPEG方式などで圧縮されたデータ列を伸長する方法に関するものである。
【0002】
【従来の技術】
近年、デジタルカメラで撮影した画像などはJPEG方式で圧縮されたデータ列として保存することが可能である。そのJPEG方式で圧縮されたデータ群は、パーソナルコンピュータに保存したり、ウェブサイトにアップロードしてブラウザを介して伸長し画像として公開することが可能である。また、JPEG方式で圧縮されたデータ群を伸長して印刷用のデータを作成し、それにより画像をプリントアウトすることも可能である。
【0003】
JPEG方式によると、画像は複数のマトリクス(画素領域または画素ブロック)に分割され、個々の画素領域を形成する情報、すなわち、画素データがエントロピー符号化(可変長符号化とも称される)であるハフマン方式により圧縮される。したがって、画像データを蓄積するためのデータ画素領域毎の画素データが圧縮されたデータセットは最小符号化単位(MCU)と称され、JPEG方式で圧縮された画像ファイルには、MCUの階層では、複数のMCUがスキャン方向の順番で並んで収納されている。
【0004】
【特許文献1】
特開2000−278685号公報
【0005】
【発明が解決しようとする課題】
JPEG方式では、画像データが可変長符号化を用いて圧縮されるのでデータ量を大幅に減少でき、画像データを蓄積したり、画像データを伝送するのに適している。その一方で、画像データの途中の情報にアクセスしようとすると、最初から順番にMCUを伸長あるいは復号していかないといけないと言う問題がある。画素データは可変長符号化された後にスキャン方向に並べられているので符号化された各々のMCUのサイズは異なる。このため、先頭のMCUから順番に復号していかないと、各々のMCUの先頭または終わりを把握できない。
【0006】
したがって、JPEG方式で圧縮されたデータ群に対して、MCUの並びと一致しない順番でMCUを利用したい事態が発生したときにJPEG方式で圧縮されたデータ群の処理はとたんに面倒なものになる。たとえば、画像を印刷する際に、MCUが並んだスキャン方向に画像の先頭からヘッドを動かして印刷する場合はMCUを順番に伸長できるから良いとしても、スキャン方向とは異なる方向、たとえば、スキャン方向に直交するサブスキャン方向に印刷したり、スキャン方向に逆行する末端から印刷する場合は、事前に全てのMCUを復号して2次元画像を表すドットマトリクスのデータを用意しておく必要がある。このため、膨大なデータを保持できるだけの大容量のメモリが必要になり、あるいは、圧縮した状態で画像データをプリンタに送信できなくなるので、JPEG方式で画像データを圧縮したメリットはなくなる。
【0007】
特開2000−278685号公報には、JPEG方式で圧縮されたデータ列を事前スキャナにより開始位置からシーケンシャルに復号することにより、指定されたイメージ領域に関する位置情報を事前走査テーブルとして記憶することが記載されている。一旦事前走査動作が実行されたならば、イメージ領域には直接にアクセスすることができるので、事前スキャナによって位置情報が事前走査テーブルに記憶されているいかなる符号化イメージ領域に関してもシーケンシャル走査は必要とされないことが記載されている。
【0008】
この処理方法は、事前にJPEGデータ全体を伸長して画像全体のドットマトリクスをメモリに保持しておかなくても良いので、メモリ容量が少なくても印刷することができ、JPEG方式のメリットを維持できる。しかしながら、位置情報を記憶するために事前走査テーブルを新たに作成してメモリに保持しておく必要がある。したがって、JPEG方式で圧縮されたデータに加えて、事前走査テーブルを記憶する容量のメモリは最低限必要になる。特開2000−278685号公報においては、イメージ領域のすべてより少ない領域に関する位置情報を記憶することにより、事前走査テーブルに必要な記憶装置の量を減らすことが記載されている。しかしながら、イメージ領域に直接にアクセスするためには位置情報を記憶しないといけないので、事前走査テーブルに割かれるメモリ容量をゼロにするわけにはいかない。
【0009】
さらに、この処理方法は、イメージ領域に直接にアクセスするために事前走査テーブルを参照しないといけない。すなわち、位置情報が事前走査テーブルに記憶されていない符号化イメージ領域に関しては、そのイメージ領域にアクセスするために伸長作業を伴うシーケンシャル走査をしないといけなくなる。したがって、事前走査テーブルに割かれるメモリ容量をセーブしようとして事前走査テーブルに記憶される位置情報を削減すると、処理速度が低下してしまう。
【0010】
そこで、本発明においては、少ない容量のメモリでJPEG方式のようにエントロピー符号化を用いて圧縮されたデータを高速に処理することができるデータ処理方法を提供することを目的としている。また、そのようなデータ処理方法を実現することができるプログラムおよびデータ処理装置、さらには、プリンタを提供し、エントロピー符号化を用いて圧縮されたデータをより少ない容量のメモリでフレキシブルに処理できるようにすることを目的としている。
【0011】
【課題を解決するための手段】
このため、本発明においては、画素領域毎に圧縮されたデータセットによりデータ群が構成されていることに着目し、フレキシブルな処理を行うために圧縮されたデータ全体を伸長(または伸張)してしまうのではなく、圧縮された各々のデータセットはそのまま圧縮された状態で順番を検出し、データセットの並び替えを行うことにより、フレキシブルな処理を可能にする。したがって、本発明によれば、オリジナルのデータ配列と異なる順番で処理を行うために、画像データ全体を伸長するほどの容量のメモリは不要であり、また、各データセットの位置情報を保存するため余分なテーブルも不要である。
【0012】
すなわち、本発明のデータ処理方法は、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列工程を有する。各々の圧縮データセットは、第1の配列に依存した差分情報を備えており、再配列工程は、各々の圧縮データセットを、第1の配列に従って順番に検出するとともに、第1の配列に依存した差分情報を累積した値を求めることと、各々の圧縮データセットと、各々の圧縮データセットに対応する差分情報を累積した値とが、第2の配列に従った順番で交互に並ぶように、第2のデータ群を生成することとを含む、この再配列工程を用いることにより、第1のデータ群を受信したときに、順番に検出された各々の圧縮データセットを第2の配列を形成するための転送先、例えば適当なメモリのアドレスへ出力することにより第2のデータ群を形成することができる。したがって、後続の処理に適した第2の配列で圧縮データセットが並んだ第2のデータ群をメモリなどの記録媒体に格納するだけで、オリジナルの第1のデータ群の内容を保存することが可能となる。このため、後続の処理のためにオリジナルの第1のデータ群全体をメモリに展開する必要はない。また、第1のデータ群をメモリに格納すると共にその位置情報を検出し、位置情報を含むテーブルを別途作成して記憶するという手間と、テーブルを格納するために必要となる余分なメモリ容量も省くことができる。
【0013】
したがって、本発明のデータ処理方法が、再配列工程につづいて、第2のデータ群に含まれる複数の圧縮データセットを第2の配列に従い伸長して出力する工程を有する場合は、第2のデータ群に配列にしたがってアクセスするだけで処理を実行することができる。このため、本発明により、データ群に含まれる圧縮データセットに対して、その圧縮データセットの位置情報に基づいてダイレクトにアクセスしなくてはならないという問題の発生を阻止することができる。そして、本発明においては、圧縮データセットは圧縮されたままで格納されるので、メモリ容量の増加や、事前に全ての圧縮データを伸長するために費やされる処理時間の増加を防止することができ、経済的なハードウェアにより短時間で所望の処理を進めることができる。
【0014】
したがって、本発明は、本発明のデータ処理方法が実行可能なプログラムあるいはプログラム製品およびデータ処理装置をも提供する。すなわち、本発明のプログラムは、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列工程をコンピュータにおいて実行可能な命令を有する。このプログラムは適当な記録媒体に記録したり、コンピュータネットワークを介して提供することが可能である。また、再配列工程では、コンピュータが受信した第1のデータ群から順番に検出された各々の圧縮データセットを第2の配列を形成するための転送先へ出力する処理を実行することにより第2のデータ群を生成することができ、コンピュータが管理するメモリをより有効に活用できる。コンピュータには、パーソナルコンピュータのように単独で動作するものに加えて、プリンタなどの周辺機器を制御するために周辺機器に実装されているCPUなどのプロセッサも含まれる。そして、プログラムには、第2のデータ群に含まれる複数の圧縮データセットを第2の配列に従い伸長して出力する工程を実行する命令を含めることができる。
【0015】
また、本発明のデータ処理装置は、画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列手段を有する。各々の圧縮データセットは、第1の配列に依存した差分情報を備えており、再配列手段は、各々の圧縮データセットを、第1の配列に従って順番に検出するとともに、第1の配列に依存した差分情報を累積した値を求める部分伸長機能と、各々の圧縮データセットと、各々の圧縮データセットに対応する差分情報を累積した値とが、第2の配列に従った順番で交互に並ぶように、第2のデータ群を生成する転送機能とを含む。再配列手段は、第1のデータを受信し、順番に検出された各々の圧縮データセットを第2の配列を形成するための転送先へ出力することにより第2のデータ群を生成することができる。また、データ処理装置には、第2のデータに含まれる複数の圧縮データセットを第2の配列に従い伸長して出力する手段を含めることができる。
【0016】
本発明のデータ処理方法の1つの極めて有用なアプリケーションの形態は印刷である。すなわち、本発明においては、上述した再配列工程と、第2のデータ群に含まれる複数の圧縮データセットを第2の配列に従い伸長して印刷する工程を有する印刷方法を提供する。また、再配列手段と、第2のデータに含まれる複数の圧縮データセットを第2の配列に従い伸長して印刷する手段を有する印刷装置を提供する。
【0017】
上述したJPEG方式、また、それに類似する圧縮構造を持つMPEG方式などにおいては、各々の圧縮データセットが、オリジナルの第1のデータ群の第1の配列に依存した差分情報を備えている場合がある。例えば、JPEG方式においては、各々の圧縮データセットは、2次元画像の画素領域に含まれる画素データが少なくとも離散コサイン変換、量子化およびハフマン符号化により圧縮されており、さらに、量子化された離散コサイン係数の値を差分情報として含んでいる。したがって、第1の配列と異なる第2の配列に圧縮データセットを並び変えた場合は、含まれている差分情報がそのままでは利用できない可能性がある。このため、再配列工程および再配列手段では、各々の圧縮データセットを順番に検出すると共に各々の圧縮データセットに対応する差分情報の絶対値を求め、複数の圧縮データセットとそれらに対応する絶対値が第2の配列に従って含まれた第2のデータ群を生成することが望ましい。圧縮データセットがJPEG方式あるいはそれに類似する方式で圧縮されている場合は、再配列工程および再配列手段では、各々の圧縮データセットに対応する離散コサイン係数の絶対値を求め、複数の圧縮データセットとそれらに対応する離散コサイン係数の絶対値が第2の配列で含まれた第2のデータ群を生成することが望ましい。
【0018】
本発明の一例は、第1のデータ群には、2次元画像のスキャン方向を主とする第1の配列で複数の圧縮データセットが含まれている場合に、再配列工程および再配列手段により、2次元画像のサブスキャン方向を主とする第2の配列で複数の圧縮データセットが含まれている第2のデータ群を生成するものである。サブスキャン方向に印刷する場合に有効であり、JPEG圧縮されたデータを小容量のメモリで、高速印刷が可能なプリンタを低コストで提供できる。メモリやディスクなどの外部記憶装置は、製品を構成する部品においてコスト的に大きな割合を占めており、記憶容量を削減できることは経済的な効果が大きい。
【0019】
第2の配列は、上記に限定されることはなく、スキャン方向と逆方向に配列したり、第1の配列の一部を抜き出して第2の配列としたりすることが可能であり、後続の処理に適した種々の配列を第2の配列として選択することができる。
【0020】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図1に本発明のデータ処理装置を備えたプリンタの概略を示してある。プリンタ1は、デジタルカメラ等の周辺機器やパーソナルコンピュータなどのホスト装置からJPEG方式で圧縮されたデータ列またはデータ群(以降においてはJPEGデータまたは第1のデータ群)φ1を取得して、伸長して印刷する。第1のデータ群φ1は、コンパクトフラッシュ(登録商標)やメモリスティック(登録商標)などのストレージを読み取り可能なインターフェイス、またはホスト装置や周辺機器との通信を可能とするUSBなどの通信インターフェイス11を介してプリンタ1に提供される。
【0021】
プリンタ1は、印刷用紙2にインク滴を吐出する複数のノズル3を備えた印刷ヘッド4と、この印刷ヘッド4をシャフト5に沿って紙幅方向を印刷時のスキャン方向として往復動するためのモータ6と、印刷時のスキャン方向と直交する紙送り方向に印刷用紙2をフィードするためにローラ7を駆動するモータ8とを有している。さらに、プリンタ1は、CPU、RAM、ROMなどによって構成される制御部10を有しており、この制御部10によりモータ6および8やノズル3からインク滴を吐出するタイミングが制御される。
【0022】
この制御部10は、第1のデータ群φ1を受信するときに、第1のデータ群φ1に第1の配列で含まれている複数の圧縮データセット、すなわち、JPEG方式ではMCUを、第2の配列に並び替え、第2のデータ群φ10としてRAM12に記憶するデータ受信部22を備えている。第1のデータ群φ1ではMCUが画像のスキャン方向Xで配列(第1の配列)されている場合に、データ受信部22において、MCUが印刷のスキャン方向Yで配列(第2の配列)された第2のデータ群φ10に変換してRAM12に格納する。これにより、プリンタ1では、第2のデータ群φ10に含まれたMCUをその順番で伸長して印刷することにより、プリンタのスキャン方向で簡単に第1のデータ群φ1で与えられた画像を印刷することができる。すなわち、本例のプリンタ1では、2次元画像のサブスキャン方向Yが印刷するときのスキャン方向となっており、以降では、データ列φ1のスキャン方向Xを基準となるスキャン方向として説明する。
【0023】
さらに具体的に説明すると、本例の制御部10は印刷データの処理を行うデータ処理部20と、処理されたデータに基づいてモータ6、8およびヘッド4を制御してプリントアウトする機構制御部21とを備えている。データ処理部20に含まれる本例のデータ受信部22は、インターフェイス11から供給された第1のデータ群φ1に含まれる複数のMCUの順番を検出し、それぞれのMCUを、第2の配列になるようにRAM12の所定のアドレスに転送してMCUの並び順を変更して第2のデータ群φ10を生成する再配列手段として機能する。さらに、データ処理装置20は、RAM12に記録された第2のデータ群φ10に基づき、MCUを順番に伸長して出力する出力部25を備えている。
【0024】
圧縮方式の1つであるJPEG(Joint Photographic Cording Experts Group)方式は、1つの画像を形成するドットマトリクスの情報が、その左側から右側に、そして上から下、すなわち、左上から右下に向って8ドット×8ドットの画素領域あるいは画素ブロックに分割され、その画素領域の単位でMCUとして圧縮格納されている。画像を形成するドットマトリクスの単位は8ドット×8ドットに限定されるものではないが、分割された小マトリクスを1つの画素ブロックとして1つの圧縮データセット(MCU)とし、複数の圧縮データセットが画像のスキャン方向、すなわち、左上から右下に向って順番に並べられた状態で集合体となり、それが1つの画像を圧縮したJPEGデータとなる。これが本例における第1のデータ群である。
【0025】
JPEG方式により画像を圧縮する過程をもう少し説明する。まず、画像を形成するドットマトリクスを、画像データの原色系(RGB)の色空間から色差系(YCbCr)の色空間の画素データに変換する。次に、8ドット×8ドットの画素ブロックに分割し、このブロック単位で変換された画素データを離散コサイン変換(DCT:Discrete Cosine Transform)する。さらに、離散コサイン変換時に得られたDCT係数を、量子化テーブルを用いて量子化する。量子化されたDCT係数は、さらに、エントロピー符号化あるいは可変長符号化の1つであるハフマン符号を用いて圧縮される。ハフマン符号化の際、量子化されたDCT係数のDC成分およびAC成分のうち、DC係数(成分)は直前の画素ブロックのDC係数に対する差分値が符号化される。このため、データ列φ1を復号する際には、MCUで圧縮されたデータを、圧縮したときの逆の手順、すなわち、ハフマン復号化、逆量子化、逆DCT、RGB変換という伸長処理を行うことで2次元画像のデータに伸長される。
【0026】
JPEG方式で圧縮されたデータ群φ1においては、各々のMCUが可変長符号化されているので、各々のMCUはサイズが異なる。したがって、ハフマン復号化しないと各々のMCUを識別できない。逆に言うと、ハフマン復号化すれば、逆量子化や逆DCTを含めた全ての伸長処理を実行しなくても、各々のMCUを検出あるいは識別することが可能である。このため、データ受信部22は、受信したデータ群φ1の先頭から順番にハフマン復号化しながら各々のMCUを検出する部分伸長機能23と、検出されたMCUを第2の配列を形成するためのRAM12のアドレスに出力する転送機能24を備えている。したがって、データ受信部22が全ての第1のデータ群φ1を受信してRAM12にデータを格納すると、RAM12にはMCUが第2の配列に並び順が変えられた第2のデータ群φ10が形成される。
【0027】
本例のデータ受信部22では、第1のデータ群φ1はRAM12に記憶せず、また、MCUを検出する際にハフマン復号化までは行うが、ハフマン復号化される前の、ハフマン符号化された状態のMCUをRAM12に格納する。このため、RAM12は、データ群φ1に含まれるMCUを記録できる程度の容量があれば、第2のデータ群φ10を記録できる。したがって、オリジナルのデータ群φ1を記憶する程度の容量のメモリにより、再配列された第2のデータ群φ10を記憶できる。実際には、以下に示すように、各々のMCUのDC係数の絶対値を対応して格納するため、若干余分にメモリ領域を消費する。
【0028】
上述したように、MCUにはDC係数が差分情報として含まれている。したがって、第2の配列に並び替えると、そのままでは利用できない情報となる。このため、データ受信部22の部分伸長機能23において、部分伸長することにより各々のMCUの差分情報として表されたDC係数が得られるので、それらを累積演算し、直前のMCUまでのDC係数の絶対値を求める。さらに、出力機能24が、MCUと共にDC係数の絶対値をRAM12に転送してこれらを関連付けて記憶する。これにより、MCUが第2の配列で並んだ第2のデータ群φ10においても、MCUを順番に伸長できる。
【0029】
図2に、本例のデータ受信部22により第2のデータ群φ10が生成される様子を示してある。この例では、第1のデータ群φ1にスキャン方向Xに順番に含められた複数のMCUを、サブスキャン方向Yに並べ替えて第2のデータ群φ10を生成する。部分伸長機能23により、第1のデータ群φ1に含まれるMCU1が検出されると、転送機能24により、RAM12のカラム0の領域12aの先頭アドレスにMCU1が転送される。同時に、それまでに累積されたDC係数の絶対値φ12がMCU1の後に記録されるように転送される。絶対値φ12を先に記録しても良い。次に、部分伸長機能23により、次のMCU2が識別されると、転送機能24により、RAM12の次のカラム1の領域12bの先頭アドレスにMCU2が転送される。同時にMCU1までの差分情報が累積された絶対値φ12がMCU2の後に記録されるように転送される。第1のデータφ1を受信する処理が進んで、部分伸長機能23によりMCU17が識別されると、このMCU17は、サブスキャン方向YではMCU1の次に並べられるので、転送機能24は、MCU17を1カラム0の領域12aのMCU1の後のアドレスに転送する。このように第1のデータφ1を受信してRAM12に格納する処理を繰り返すことにより、RAM12には、サブスキャン方向YにMCUが並んだ第2のデータ群φ10が格納される。
【0030】
データ処理部20の出力部25は、少なくともRAM12のカラム0の領域12aに、第2のデータ群φ10のサブスキャン方向Yの一列分のデータ列φ13が記録されると処理を開始することができる。カラム0のメモリ領域12aに、2次元画像のスキャン方向Xの左端のサブスキャン方向Yを構成するMCU1、MCU17、MCU33、MCU49、MCU65、MCU81、MCU97、MCU113、MCU129、およびMCU144のそれぞれが対応するDC絶対値φ12とペアで記録されると、印刷するためのスキャン方向Yの一列分のデータφ13が生成される。このため、出力部25は、データ列φ13に含まれるMCUを伸長し、印刷データとして機構制御部21に送り、印刷を開始する。この例では、印刷ヘッド4の動きに合わせて、出力部25はカラム0のメモリ領域12aに記録されたデータ列φ13のMCUを最後から先頭に向けて順番に伸長し、印刷ヘッド4の動きに適合した印刷データを出力することができる。プリンタ1において、印刷ヘッド4が移動するライン分の印刷データを記憶するだけのメモリ領域を使用できるのであれば、データ列φ13のMCUを先頭から順番に伸長しても良い。いずれの場合も、出力部25においては、各々のMCUが第1のデータ群φ1に記録されていた通りの順番では伸長されないが、ハフマン復号化は可能であり、さらに、その後はMCUと共に記録されたDC係数の絶対値φ12を使用することにより、逆量子化、逆DCT、およびRGB変換の伸長処理の全過程を経て、全てのMCUを伸長することができる。
【0031】
図3に、本例のプリンタ1において、第1のデータ群φ1を受信してから印刷するまでの処理の概要を、フローチャートを用いて示してある。ステップ41において、受信する第1のデータ群φ1があると、ステップ42において、データ受信部22の部分伸長機能23によりハフマン復号化のみを行い、第1のデータ群φ1に含まれるMCUを順番に検出する。このステップ42においてはDC係数の絶対値φ12も算出される。MCUが検出されると、ステップ43において、検出されたMCUの転送先(RAM12のアドレス)を設定し、ステップ44において、検出されたMCUとDC係数の絶対値φ12とをRAM12に転送する。ステップ41において、受信する第1のデータ群φ1が終了するまで繰り返すことにより、RAM12にMCUが並び替えられた第2のデータφ10が生成されるので、受信が終了すると、あるいは、受信途中でも印刷できるデータ列φ13が整えば、ステップ47において、出力部25により、並び替えられた第2の配列に従ってMCUが伸長され、ステップ48において印刷される。
【0032】
これらの処理は、上記の各ステップの処理を、プリンタ1の制御部10を構成するCPUあるいはASICなどのプロセッサあるいはマイクロコンピュータにより実行する命令を有するプログラムとして提供することができる。このプログラムは、プリンタ1のファームウェア18としてROM19に記憶して提供し、利用することができる。また、インターネットなどのコンピュータネットワークを介して提供し、プリンタ1にインストールして利用することができる。また、上記の各ステップは、ハードウェアロジックにより実現することも可能であり、制御部10として、そのようなハードウェアロジックを実装したプロセッサを採用することも可能である。また、一部の処理をハードウェアにより実行し、残りの処理をソフトウェアにより実行することも可能である。
【0033】
このように、第1のデータ群φ1に含まれるMCUを適当な第2の配列に並び替え、第2のデータ群φ10として記憶できるデータ処理装置20を有するプリンタ1では、第2のデータ群φ10を記憶できるメモリ容量さえあれば、JPEG方式で圧縮された第1のデータ群φ1に含まれるMCUの順番とは無関係にフレキシブルな順番でMCUを伸長して印刷することができる。上記の例では、2次元画像のスキャン方向Xに配列された複数のMCUをサブスキャン方向Yに印刷することができる。そして、第2のデータ群φ10には、圧縮された状態のままのMCUが含まれているので、本来のJPEGデータφ1を格納するのとほぼ同じ程度のメモリ領域があれば足り、オリジナルのデータφ1や各々のMCUの位置情報を格納するためのメモリ領域は不要であり、データ記憶用のリソースは非常に少なくて良い。
【0034】
さらに、データを受信した以降は、RAM12に生成された第2のデータ群φ10に含まれるMCUの配列に基づき処理を進めることができるので、位置情報に基づいてランダムにMCUにアクセスする必要もない。したがって、印刷などの後続の処理を実行するために、RAM12に記憶された個々のMCUに対して位置情報に基づきランダムにアクセスするような処理を高速で実行できるようなハードウェアリソースも不要となる。また、データを受信した以降の処理では、必要な順番でMCUが参照できるため、その都度、ハフマン復号化より後の処理を行えば良い。このため、展開後のデータ処理に限って必要な記憶装置の容量は非常に少なくて良く、この点でもプリンタ1に搭載する記憶装置の容量を低減できる。小容量のメモリ装置は、マイクロプロセッサのチップ内に構成することも可能であり、部品点数の低減効果も得られ、さらに、コストダウンが可能である。また、プロセッサ内部にメモリ装置を搭載した場合、プロセッサ内の高速な幅広いバスで動作可能なメモリにできるので、キャッシュメモリを積まない安価なプロセッサを用いて高速に動作するプリンタを提供することが可能となる。
【0035】
また、JPEGデータφ1を処理するために使用するメモリ容量が少なくて済むという効果が得られるので、プリンタに限定されず、携帯端末のように、大きな容量の記憶装置を搭載し難いデータ処理装置において、JPEG方式あるいは類似の圧縮アルゴリズムを採用しているMPEG方式で圧縮されたデータを取り扱うのに本発明は適している。
【0036】
図4に、携帯端末50から再配列後のデータ列φ10をプリンタ1aに送信して印刷する例を示してある。端末50では、ブラウザなどの画像処理ができるアプリケーション51が稼動しており、インターネット59からJPGEデータφ1をダウンロードして表示できるようになっている。アプリケーション51から画像をプリントする場合は、プリンタドライバ53がJPEG方式で圧縮された第1のデータ群φ1に含まれるMCUをプリンタ1aで印刷するのに適した第2の配列に変換してメモリ52に記憶するデータ受信部56を備えている。そして、メモリ52に、第2の配列でMCUが並んだ第2のデータφ10がスプールファイルとして生成され、それが印刷データとしてプリンタドライバ53からプリンタ1aに供給される。プリンタドライバ53のデータ受信部56も、インターネット59およびLANインターフェイス58などを介して受信した第1のデータ列φ1を部分伸長(ハフマン復号化)することによりMCUを検出する部分伸長機能54と、検出されたMCUを印刷用の配列に並び替える転送機能55とを備えている。プリンタ1aでは、印刷に適した配列にMCUが並んだ第2のデータ群φ10がデータ受信部29により受信され、メモリ12に記憶される。そして、出力部25により伸長されて出力される。
【0037】
なお、JPEG方式で圧縮されたデータ列には、DHP(Define Hierarchical Progression)を含む階層符号化型のデータや、DHPマーカが挿入されない形式のデータがあるが、本発明はいずれのデータにも適用可能である。また、JPEG方式で圧縮されたデータ群の処理に限らず、MPEG方式などの、2次元画像が複数のマトリクスに分割され、各々のマトリクスが1つの画素ブロックとなり、その画素ブロック内に含まれる画素データが少なくともエントロピー符号化(可変長符号化)により圧縮された圧縮データセットが、第1の配列で並べられた第1のデータ群を処理する場合には、本発明を適用できる。
【0038】
また、上記では、インクジェットタイプのプリンタ1、1aを例に説明したが、サーマルタイプやレーザタイプのプリンタであっても良い。さらに、印刷ヘッド13を移動または走査させながら印刷するタイプに限定されずに、ラインタイプのプリンタにも本発明は適用できる。また、プリンタは、ファクシミリやコピーなどの印刷する機能を有する機器を全て含む概念である。さらに、印刷処理に限らず、圧縮された順番と異なる順番で画面に画像を表示するような処理においても本発明は適用できる。
【0039】
【発明の効果】
以上に説明したように、本発明においては、JPEG方式などで圧縮された第1のデータ群に含まれる複数の圧縮データセットを順番に検出し、それらの圧縮データセットを異なる順番に並び替えた第2のデータ群を形成する。したがって、圧縮データセットを圧縮されたままの状態で配列だけを変えることになり、本発明により、データ群を記憶するための容量をほとんど増加させずに、オリジナルのデータ群とは異なる順番でフレキシブルに、そして、余分な処理を発生させずに高速で所望の圧縮データセットにアクセスすることが可能となる。
【0040】
したがって、本発明をプリンタに適応することにより、少ない容量のメモリで、JPEGデータを様々な順番で印刷することが可能なプリンタを低コストで提供することができる。
【図面の簡単な説明】
【図1】本発明のデータ処理装置が搭載されたプリンタの概略を示す図である。
【図2】データ処理装置の再配列部によりデータ列の複数のMCUの並びが変更される様子を示す図である。
【図3】図1に示すプリンタにおける印刷処理を示すフローチャートである。
【図4】データ列の再配列が外部機器で行われる例を示す図である。
【符号の説明】
1、1a プリンタ
4 印刷ヘッド
12 RAM
20 データ処理装置
22 再配列部
23 部分伸長機能
24 転送機能
25 出力部
φ1 第1のデータ群
φ10 第2のデータ群
X スキャン方向
Y サブスキャン方向
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for decompressing a data string compressed by the JPEG method or the like.
[0002]
[Prior art]
In recent years, an image taken by a digital camera can be stored as a data string compressed by the JPEG method. The data group compressed by the JPEG method can be stored in a personal computer, uploaded to a website, decompressed via a browser, and released as an image. It is also possible to create data for printing by expanding a data group compressed by the JPEG method, and thereby print out an image.
[0003]
According to the JPEG method, an image is divided into a plurality of matrices (pixel regions or pixel blocks), and information forming individual pixel regions, that is, pixel data is entropy coding (also referred to as variable length coding). It is compressed by the Huffman method. Therefore, a data set in which pixel data for each data pixel area for storing image data is compressed is called a minimum encoding unit (MCU), and an image file compressed by the JPEG method has A plurality of MCUs are stored side by side in the scan direction.
[0004]
[Patent Document 1]
JP 2000-278865 A
[0005]
[Problems to be solved by the invention]
In the JPEG method, since the image data is compressed using variable length coding, the amount of data can be greatly reduced, and it is suitable for storing image data and transmitting image data. On the other hand, when trying to access information in the middle of image data, there is a problem that the MCU must be expanded or decoded in order from the beginning. Since the pixel data is variable-length encoded and then arranged in the scan direction, the size of each encoded MCU is different. For this reason, unless it decodes in order from the head MCU, the head or the end of each MCU cannot be grasped.
[0006]
Therefore, when a situation occurs in which an MCU is desired to be used in an order that does not match the MCU order for a data group compressed by the JPEG method, the processing of the data group compressed by the JPEG method becomes more troublesome. Become. For example, when printing an image, if the head is moved from the top of the image in the scan direction in which the MCUs are arranged and printed, the MCU can be expanded in order, but the direction different from the scan direction, for example, the scan direction In the case of printing in the sub-scan direction orthogonal to or from the end reverse in the scan direction, it is necessary to prepare dot matrix data representing a two-dimensional image by decoding all the MCUs in advance. For this reason, a large-capacity memory capable of holding an enormous amount of data is required, or the image data cannot be transmitted to the printer in a compressed state, so there is no merit of compressing the image data by the JPEG method.
[0007]
Japanese Patent Laid-Open No. 2000-278685 describes that position information relating to a specified image area is stored as a pre-scan table by sequentially decoding a data sequence compressed by the JPEG method from a start position by a pre-scanner. Has been. Once the prescan operation has been performed, the image area can be accessed directly, so sequential scanning is required for any encoded image area whose position information is stored in the prescan table by the prescanner. It is stated that it will not.
[0008]
This processing method does not need to decompress the entire JPEG data in advance and store the dot matrix of the entire image in the memory, so printing can be performed even with a small memory capacity, and the advantages of the JPEG method are maintained. it can. However, a new pre-scan table needs to be created and stored in the memory in order to store the position information. Therefore, in addition to the data compressed by the JPEG method, a memory having a capacity for storing the pre-scan table is required at a minimum. Japanese Patent Laid-Open No. 2000-278585 describes that the amount of storage device required for the pre-scan table is reduced by storing position information relating to an area smaller than all of the image areas. However, since the position information must be stored in order to directly access the image area, the memory capacity allocated to the pre-scan table cannot be reduced to zero.
[0009]
Furthermore, this processing method must reference a pre-scan table to directly access the image area. That is, for an encoded image area whose position information is not stored in the pre-scan table, sequential scanning with decompression work must be performed in order to access the image area. Therefore, if the position information stored in the pre-scan table is reduced in order to save the memory capacity allocated to the pre-scan table, the processing speed decreases.
[0010]
Accordingly, an object of the present invention is to provide a data processing method capable of processing data compressed using entropy coding as in the JPEG method at a high speed with a small amount of memory. Further, a program and a data processing apparatus capable of realizing such a data processing method, and a printer are provided, so that data compressed using entropy coding can be flexibly processed with a smaller capacity memory. The purpose is to be.
[0011]
[Means for Solving the Problems]
Therefore, in the present invention, paying attention to the fact that a data group is composed of a compressed data set for each pixel area, the entire compressed data is expanded (or expanded) for flexible processing. Instead, each compressed data set is compressed as it is, the order is detected, and the data sets are rearranged, thereby enabling flexible processing. Therefore, according to the present invention, in order to perform processing in an order different from that of the original data array, a memory having a capacity enough to expand the entire image data is unnecessary, and the position information of each data set is stored. No extra table is required.
[0012]
That is, according to the data processing method of the present invention, an image is divided into a plurality of pixel areas, and a plurality of compressed data sets obtained by compressing pixel data included in each pixel area using at least entropy coding is a first array. Each of the compressed data sets is sequentially detected from the arranged first data group, and has a rearrangement step for generating the second data group by arranging in a second array different from the first array. Each compressed data set has difference information depending on the first array, and the rearrangement step detects each compressed data set in order according to the first array and depends on the first array. Obtaining a value obtained by accumulating the difference information, and each compressed data set and a value obtained by accumulating the difference information corresponding to each compressed data set in the order according to the second array Alternating By using this rearrangement step, including generating a second data group so that the first data group is received, the respective compressed data sets detected in sequence when the first data group is received The second data group can be formed by outputting the data to a transfer destination for forming the two arrays, for example, an appropriate memory address. Therefore, the contents of the original first data group can be preserved only by storing the second data group in which the compressed data sets are arranged in the second arrangement suitable for the subsequent processing in a recording medium such as a memory. It becomes possible. For this reason, it is not necessary to expand the entire original first data group in the memory for subsequent processing. In addition, there is a trouble of storing the first data group in the memory, detecting the position information thereof, separately creating and storing a table including the position information, and an extra memory capacity necessary for storing the table. It can be omitted.
[0013]
Therefore, when the data processing method of the present invention includes a step of outputting a plurality of compressed data sets included in the second data group in accordance with the second sequence following the rearrangement step, Processing can be executed simply by accessing the data group according to the array. Therefore, according to the present invention, it is possible to prevent the occurrence of the problem that the compressed data set included in the data group must be directly accessed based on the position information of the compressed data set. In the present invention, since the compressed data set is stored in a compressed state, it is possible to prevent an increase in memory capacity and an increase in processing time spent for expanding all the compressed data in advance. The desired processing can be performed in a short time with economical hardware.
[0014]
Therefore, the present invention also provides a program or program product and a data processing apparatus that can execute the data processing method of the present invention. That is, the program of the present invention divides an image into a plurality of pixel areas, and a plurality of compressed data sets obtained by compressing pixel data included in each pixel area using at least entropy coding are arranged in a first array. An instruction capable of executing in a computer a rearrangement step of generating a second data group by sequentially detecting each compressed data set from the first data group and arranging the compressed data sets in a second array different from the first array Have This program can be recorded on an appropriate recording medium or provided via a computer network. Further, in the rearrangement step, a second process is performed by executing a process of outputting each compressed data set detected in order from the first data group received by the computer to a transfer destination for forming the second array. Data groups can be generated, and the memory managed by the computer can be used more effectively. The computer includes a processor such as a CPU mounted on the peripheral device to control the peripheral device such as a printer, in addition to a personal computer that operates alone. The program can include an instruction for executing a process of decompressing and outputting a plurality of compressed data sets included in the second data group according to the second array.
[0015]
In the data processing apparatus of the present invention, a plurality of compressed data sets obtained by dividing an image into a plurality of pixel regions and compressing pixel data included in each pixel region using at least entropy coding are in a first array. Each of the compressed data sets is sequentially detected from the arranged first data group, and rearrangement means for generating a second data group by arranging in a second array different from the first array. Each compressed data set has difference information depending on the first array, and the rearrangement means detects each compressed data set in order according to the first array and depends on the first array. The partial decompression function for obtaining the accumulated value of the difference information, each compressed data set, and the value obtained by accumulating the difference information corresponding to each compressed data set in the order according to the second array Alternating And a transfer function for generating the second data group. The rearrangement means may generate the second data group by receiving the first data and outputting each compressed data set detected in order to a transfer destination for forming the second array. it can. Further, the data processing apparatus can include means for expanding and outputting a plurality of compressed data sets included in the second data according to the second array.
[0016]
One very useful application form of the data processing method of the present invention is printing. That is, the present invention provides a printing method including the above-described rearrangement step and the step of printing a plurality of compressed data sets included in the second data group by expanding and printing in accordance with the second arrangement. Also provided is a printing apparatus having rearrangement means and means for expanding and printing a plurality of compressed data sets included in the second data according to the second arrangement.
[0017]
In the above-described JPEG system and MPEG system having a similar compression structure, each compressed data set may include differential information depending on the first arrangement of the original first data group. is there. For example, in the JPEG system, each compressed data set is such that pixel data included in a pixel area of a two-dimensional image is compressed by at least discrete cosine transform, quantization, and Huffman coding, and further, a quantized discrete data set The value of cosine coefficient is included as difference information. Therefore, when the compressed data set is rearranged in a second array different from the first array, the included difference information may not be used as it is. Therefore, in the rearrangement step and the rearrangement means, each compressed data set is detected in order and the absolute value of the difference information corresponding to each compressed data set is obtained, and a plurality of compressed data sets and their corresponding absolute values are obtained. It is desirable to generate a second data group in which values are included according to the second array. When the compressed data set is compressed by the JPEG method or a similar method, the rearrangement step and the rearrangement unit obtain the absolute value of the discrete cosine coefficient corresponding to each compressed data set, and a plurality of compressed data sets It is desirable to generate the second data group in which the absolute values of the discrete cosine coefficients corresponding thereto are included in the second array.
[0018]
In an example of the present invention, when the first data group includes a plurality of compressed data sets in the first array mainly in the scan direction of the two-dimensional image, the rearrangement step and the rearrangement unit A second data group including a plurality of compressed data sets is generated in a second array mainly in the sub-scan direction of the two-dimensional image. It is effective when printing in the sub-scan direction, and a printer capable of high-speed printing with a small-capacity memory using JPEG-compressed data can be provided at low cost. External storage devices such as memories and disks occupy a large proportion of the cost of the components that make up the product, and reducing the storage capacity has a great economic effect.
[0019]
The second arrangement is not limited to the above, and can be arranged in the direction opposite to the scanning direction, or a part of the first arrangement can be extracted to form the second arrangement. Various sequences suitable for processing can be selected as the second sequence.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in more detail with reference to the drawings. FIG. 1 shows an outline of a printer provided with a data processing apparatus of the present invention. The printer 1 acquires a data string or data group (hereinafter referred to as JPEG data or first data group) φ1 compressed by the JPEG method from a peripheral device such as a digital camera or a host device such as a personal computer, and decompresses it. Print. The first data group φ1 includes an interface capable of reading storage such as a compact flash (registered trademark) and a memory stick (registered trademark), or a communication interface 11 such as a USB that enables communication with a host device and peripheral devices. Via the printer 1.
[0021]
The printer 1 includes a print head 4 having a plurality of nozzles 3 for ejecting ink droplets onto a print paper 2 and a motor for reciprocating the print head 4 along a shaft 5 with the paper width direction as a scan direction during printing. 6 and a motor 8 for driving the roller 7 to feed the printing paper 2 in the paper feeding direction perpendicular to the scanning direction at the time of printing. Further, the printer 1 has a control unit 10 constituted by a CPU, a RAM, a ROM, and the like, and the timing at which ink droplets are ejected from the motors 6 and 8 and the nozzle 3 is controlled by the control unit 10.
[0022]
When receiving the first data group φ1, the control unit 10 receives the plurality of compressed data sets included in the first data group φ1 in the first array, that is, the MCU in the JPEG format, The data receiving unit 22 stores the data in the RAM 12 as the second data group φ10. In the first data group φ1, when the MCUs are arranged in the image scanning direction X (first arrangement), the data receiving unit 22 arranges the MCUs in the printing scanning direction Y (second arrangement). The second data group φ10 is converted and stored in the RAM 12. As a result, the printer 1 simply prints the image given by the first data group φ1 in the scanning direction of the printer by expanding and printing the MCUs included in the second data group φ10 in that order. can do. That is, in the printer 1 of this example, the sub-scan direction Y of the two-dimensional image is the scan direction when printing, and hereinafter, the scan direction X of the data row φ1 will be described as a reference scan direction.
[0023]
More specifically, the control unit 10 of this example includes a data processing unit 20 that processes print data, and a mechanism control unit that controls the motors 6 and 8 and the head 4 based on the processed data to print out the data. 21. The data receiving unit 22 of this example included in the data processing unit 20 detects the order of a plurality of MCUs included in the first data group φ1 supplied from the interface 11, and each MCU is placed in the second array. In this way, it functions as a rearrangement unit that transfers to a predetermined address in the RAM 12 and changes the arrangement order of the MCUs to generate the second data group φ10. Further, the data processing device 20 includes an output unit 25 that sequentially expands and outputs the MCU based on the second data group φ10 recorded in the RAM 12.
[0024]
JPEG (Joint Photographic Cording Experts Group), which is one of the compression methods, has the information of the dot matrix forming one image from the left side to the right side, and from top to bottom, that is, from top left to bottom right. The pixel area or pixel block of 8 dots × 8 dots is divided and compressed and stored as MCU in units of the pixel area. The unit of the dot matrix that forms the image is not limited to 8 dots × 8 dots, but the divided small matrix is used as one pixel block to form one compressed data set (MCU), and a plurality of compressed data sets are provided. The image scan direction, that is, a group of images arranged in order from the upper left to the lower right, becomes an aggregate, and becomes JPEG data obtained by compressing one image. This is the first data group in this example.
[0025]
The process of compressing an image by the JPEG method will be described a little more. First, the dot matrix forming the image is converted from the primary color system (RGB) color space of the image data to pixel data of the color difference system (YCbCr) color space. Next, the pixel data is divided into 8-dot × 8-dot pixel blocks, and the pixel data converted in units of blocks is subjected to discrete cosine transform (DCT). Furthermore, the DCT coefficient obtained at the time of discrete cosine transform is quantized using a quantization table. The quantized DCT coefficient is further compressed using a Huffman code which is one of entropy coding or variable length coding. At the time of Huffman encoding, of the DC component and AC component of the quantized DCT coefficient, the DC coefficient (component) is encoded as a difference value with respect to the DC coefficient of the immediately preceding pixel block. For this reason, when decoding the data string φ1, the decompression process such as Huffman decoding, inverse quantization, inverse DCT, and RGB conversion is performed in reverse order when the data compressed by the MCU is compressed. Is expanded into two-dimensional image data.
[0026]
In the data group φ1 compressed by the JPEG method, since each MCU is variable-length encoded, each MCU has a different size. Therefore, each MCU cannot be identified without Huffman decoding. In other words, if Huffman decoding is performed, each MCU can be detected or identified without executing all the decompression processes including inverse quantization and inverse DCT. Therefore, the data receiving unit 22 includes a partial decompression function 23 that detects each MCU while performing Huffman decoding in order from the head of the received data group φ1, and a RAM 12 that forms the detected MCU in a second array. Is provided with a transfer function 24 for outputting to the address. Therefore, when the data receiving unit 22 receives all the first data groups φ1 and stores the data in the RAM 12, the RAM 12 forms the second data group φ10 in which the MCUs are arranged in the second array and the order is changed. Is done.
[0027]
In the data receiving unit 22 of this example, the first data group φ1 is not stored in the RAM 12, and the Huffman decoding is performed when the MCU is detected, but the Huffman decoding is performed before the Huffman decoding. The MCU in the state is stored in the RAM 12. Therefore, the RAM 12 can record the second data group φ10 if it has a capacity sufficient to record the MCU included in the data group φ1. Therefore, the rearranged second data group φ10 can be stored by a memory having a capacity enough to store the original data group φ1. Actually, as shown below, since the absolute value of the DC coefficient of each MCU is stored correspondingly, a memory area is consumed a little extra.
[0028]
As described above, the DC coefficient is included in the MCU as difference information. Therefore, when the data is rearranged in the second array, the information cannot be used as it is. For this reason, the partial expansion function 23 of the data receiving unit 22 obtains DC coefficients represented as differential information of each MCU by partial expansion, so that they are cumulatively calculated and the DC coefficients up to the previous MCU are calculated. Find the absolute value. Further, the output function 24 transfers the absolute value of the DC coefficient together with the MCU to the RAM 12 and stores them in association with each other. Thereby, even in the second data group φ10 in which the MCUs are arranged in the second array, the MCUs can be expanded in order.
[0029]
FIG. 2 shows how the second data group φ10 is generated by the data receiver 22 of this example. In this example, a plurality of MCUs included in the first data group φ1 in the scan direction X in order are rearranged in the sub-scan direction Y to generate the second data group φ10. When the partial decompression function 23 detects MCU1 included in the first data group φ1, the transfer function 24 transfers MCU1 to the head address of the area 12a in the column 0 of the RAM 12. At the same time, the absolute value φ12 of the DC coefficient accumulated so far is transferred so as to be recorded after MCU1. The absolute value φ12 may be recorded first. Next, when the next MCU 2 is identified by the partial decompression function 23, the transfer function 24 transfers the MCU 2 to the start address of the area 12 b of the next column 1 of the RAM 12. At the same time, the absolute value φ12 in which the difference information up to MCU1 is accumulated is transferred so as to be recorded after MCU2. When the process of receiving the first data φ1 proceeds and the MCU 17 is identified by the partial decompression function 23, the MCU 17 is arranged next to the MCU 1 in the sub-scan direction Y, so the transfer function 24 sets the MCU 17 to 1 Transfer to the address after MCU1 in area 12a of column 0. Thus, by repeating the process of receiving the first data φ1 and storing it in the RAM 12, the RAM 12 stores the second data group φ10 in which MCUs are arranged in the sub-scan direction Y.
[0030]
The output unit 25 of the data processing unit 20 can start the process when the data row φ13 of one column in the sub-scan direction Y of the second data group φ10 is recorded at least in the column 12 area 12a of the RAM 12. . Each of the MCU1, MCU17, MCU33, MCU49, MCU65, MCU81, MCU97, MCU113, MCU129, and MCU144 that constitute the leftmost sub-scan direction Y of the scan direction X of the two-dimensional image corresponds to the memory area 12a of the column 0. When recorded as a pair with the DC absolute value φ12, data φ13 for one column in the scanning direction Y for printing is generated. Therefore, the output unit 25 expands the MCU included in the data string φ13, sends it to the mechanism control unit 21 as print data, and starts printing. In this example, in accordance with the movement of the print head 4, the output unit 25 sequentially expands the MCU of the data string φ 13 recorded in the memory area 12 a of column 0 from the end toward the beginning, Applicable print data can be output. If the printer 1 can use a memory area that only stores the print data for the line on which the print head 4 moves, the MCU of the data string φ13 may be expanded in order from the top. In any case, in the output unit 25, each MCU is not expanded in the same order as recorded in the first data group φ1, but Huffman decoding is possible, and thereafter, it is recorded together with the MCU. By using the absolute value φ12 of the DC coefficient, it is possible to expand all the MCUs through the entire process of expansion processing of inverse quantization, inverse DCT, and RGB conversion.
[0031]
FIG. 3 shows an outline of a process from reception of the first data group φ1 to printing in the printer 1 of the present example, using a flowchart. In step 41, if there is a first data group φ1 to be received, in step 42, only the Huffman decoding is performed by the partial decompression function 23 of the data receiving unit 22, and the MCUs included in the first data group φ1 are sequentially selected. To detect. In step 42, the absolute value φ12 of the DC coefficient is also calculated. When the MCU is detected, the transfer destination (address of the RAM 12) of the detected MCU is set in step 43, and the detected MCU and the absolute value φ12 of the DC coefficient are transferred to the RAM 12 in step 44. In step 41, the second data φ10 in which the MCUs are rearranged is generated in the RAM 12 by repeating until the first data group φ1 to be received is completed, so that printing is performed when reception is completed or even during reception. When the possible data string φ13 is prepared, in step 47, the output unit 25 expands the MCU according to the rearranged second array and prints it in step 48.
[0032]
These processes can be provided as a program having instructions executed by the processor or microcomputer such as the CPU or ASIC constituting the control unit 10 of the printer 1 in the above steps. This program can be provided by being stored in the ROM 19 as the firmware 18 of the printer 1 and used. Further, the program can be provided via a computer network such as the Internet and installed in the printer 1 for use. Each of the above steps can also be realized by hardware logic, and a processor equipped with such hardware logic can be adopted as the control unit 10. It is also possible to execute part of the processing by hardware and the rest of the processing by software.
[0033]
In this way, in the printer 1 having the data processing device 20 that can rearrange the MCUs included in the first data group φ1 into an appropriate second array and store it as the second data group φ10, the second data group φ10 If the memory capacity is sufficient, the MCU can be expanded and printed in a flexible order regardless of the order of the MCUs included in the first data group φ1 compressed by the JPEG method. In the above example, a plurality of MCUs arranged in the scan direction X of the two-dimensional image can be printed in the sub-scan direction Y. Since the second data group φ10 includes MCUs that remain in a compressed state, it is sufficient if there is almost the same memory area as the original JPEG data φ1 is stored. The memory area for storing the position information of φ1 and each MCU is not necessary, and the resources for data storage may be very small.
[0034]
Furthermore, after the data is received, the process can proceed based on the arrangement of the MCUs included in the second data group φ10 generated in the RAM 12, so there is no need to access the MCUs randomly based on the position information. . Therefore, in order to execute subsequent processing such as printing, hardware resources that can execute processing such as random access to each MCU stored in the RAM 12 based on position information at high speed are not required. . Further, in the processing after the data is received, the MCU can be referred to in the necessary order. Therefore, the processing after the Huffman decoding may be performed each time. For this reason, the capacity of the storage device required only for the data processing after development may be very small, and the capacity of the storage device mounted on the printer 1 can also be reduced in this respect. A small-capacity memory device can also be configured in a microprocessor chip, so that the effect of reducing the number of parts can be obtained and the cost can be reduced. In addition, when a memory device is installed inside the processor, it can be made a memory that can operate on a wide range of high-speed buses within the processor, so it is possible to provide a printer that operates at high speed using an inexpensive processor that does not have cache memory. It becomes.
[0035]
In addition, since it is possible to obtain an effect that the memory capacity used for processing the JPEG data φ1 is small, the present invention is not limited to a printer. The present invention is suitable for handling data compressed by the JPEG method or the MPEG method employing a similar compression algorithm.
[0036]
FIG. 4 shows an example in which the rearranged data string φ10 is transmitted from the portable terminal 50 to the printer 1a and printed. In the terminal 50, an application 51 capable of image processing such as a browser is running, and the JPG data φ1 can be downloaded from the Internet 59 and displayed. When printing an image from the application 51, the printer driver 53 converts the MCU included in the first data group φ1 compressed by the JPEG method into a second array suitable for printing by the printer 1a, and converts the memory 52 The data receiving part 56 memorize | stored in is provided. Then, the second data φ10 in which the MCUs are arranged in the second array is generated in the memory 52 as a spool file, which is supplied as print data from the printer driver 53 to the printer 1a. The data receiving unit 56 of the printer driver 53 also includes a partial decompression function 54 that detects the MCU by partially decompressing (Huffman decoding) the first data string φ1 received via the Internet 59 and the LAN interface 58. And a transfer function 55 for rearranging the MCUs arranged in a print array. In the printer 1a, the second data group φ10 in which MCUs are arranged in an array suitable for printing is received by the data receiving unit 29 and stored in the memory 12. Then, it is decompressed and output by the output unit 25.
[0037]
The data sequence compressed by the JPEG method includes hierarchically encoded data including DHP (Define Hierarchical Progression) and data in a format in which no DHP marker is inserted. The present invention is applicable to any data. Is possible. In addition to processing of a data group compressed by the JPEG method, a two-dimensional image such as an MPEG method is divided into a plurality of matrices, and each matrix becomes one pixel block, and pixels included in the pixel block The present invention can be applied when a compressed data set in which data is compressed at least by entropy coding (variable length coding) processes a first data group arranged in a first array.
[0038]
In the above description, the ink jet type printers 1 and 1a have been described as examples. However, a thermal type or laser type printer may be used. Furthermore, the present invention can be applied to a line type printer without being limited to the type that prints while moving or scanning the print head 13. The printer is a concept including all devices having a printing function such as facsimile and copying. Furthermore, the present invention can be applied not only to the printing process but also to a process of displaying images on the screen in an order different from the compressed order.
[0039]
【The invention's effect】
As described above, in the present invention, a plurality of compressed data sets included in the first data group compressed by the JPEG method or the like are detected in order, and these compressed data sets are rearranged in a different order. A second data group is formed. Therefore, only the arrangement is changed while the compressed data set is compressed, and the present invention allows flexible in a different order from the original data group without increasing the capacity for storing the data group. In addition, a desired compressed data set can be accessed at high speed without generating extra processing.
[0040]
Therefore, by applying the present invention to a printer, a printer capable of printing JPEG data in various orders with a small amount of memory can be provided at low cost.
[Brief description of the drawings]
FIG. 1 is a diagram showing an outline of a printer equipped with a data processing apparatus of the present invention.
FIG. 2 is a diagram illustrating a state in which the arrangement of a plurality of MCUs in a data string is changed by a rearrangement unit of the data processing device.
FIG. 3 is a flowchart showing a printing process in the printer shown in FIG. 1;
FIG. 4 is a diagram illustrating an example in which rearrangement of data strings is performed by an external device.
[Explanation of symbols]
1, 1a Printer
4 Print head
12 RAM
20 Data processing device
22 Rearrangement part
23 Partial extension function
24 Transfer function
25 Output section
φ1 First data group
φ10 2nd data group
X Scan direction
Y Sub-scan direction

Claims (14)

画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、前記第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列工程を有し、
各々の圧縮データセットは、前記第1の配列に依存した差分情報を備えており、
前記再配列工程は、各々の前記圧縮データセットを、前記第1の配列に従って順番に検出するとともに、前記第1の配列に依存した差分情報を累積した値を求めることと、
各々の前記圧縮データセットと、各々の前記圧縮データセットに対応する前記差分情報を累積した値とが、前記第2の配列に従った順番で交互に並ぶように、前記第2のデータ群を生成することとを含む、データ処理方法。
The image is divided into a plurality of pixel regions, and each of the first data group in which a plurality of compressed data sets in which pixel data included in each pixel region is compressed using at least entropy coding are arranged in a first array A reordering step of detecting a compressed data set in sequence and generating a second data group by arranging in a second array different from the first array;
Each compressed data set includes difference information depending on the first array,
The rearrangement step detects each of the compressed data sets in order according to the first array, and obtains a value obtained by accumulating difference information dependent on the first array;
The second data group is arranged such that each of the compressed data sets and a value obtained by accumulating the difference information corresponding to each of the compressed data sets are alternately arranged in the order according to the second array. Generating a data processing method.
請求項1において、前記再配列工程では、前記第1のデータ群を受信し、順番に検出された各々の前記圧縮データセットを前記第2の配列を形成するための転送先へ出力するデータ処理方法。  2. The data processing according to claim 1, wherein in the rearrangement step, the first data group is received, and each of the compressed data sets detected in order is output to a transfer destination for forming the second array. Method. 請求項1または2において、さらに、前記第2のデータ群に含まれる前記複数の圧縮データセットを前記第2の配列に従い伸長して出力する工程を有するデータ処理方法。According to claim 1 or 2, further data processing method having the step of outputting the plurality of compressed data sets included in the second data group extends in accordance with the second sequence. 請求項1ないし3のいずれかにおいて、前記第1のデータ群には、2次元画像のスキャン方向を主とする前記第1の配列の順番に並んだ前記複数の圧縮データセットが含まれており、
前記第2のデータ群には、2次元画像のサブスキャン方向を主とする前記第2の配列の順番に並んだ前記複数の圧縮データセットが含まれているデータ処理方法。
In any one of claims 1 to 3, wherein the first data group, the scanning direction of the two-dimensional image includes a plurality of compressed data sets arranged in order of the first sequence to the main ,
The data processing method, wherein the second data group includes the plurality of compressed data sets arranged in the order of the second arrangement mainly in a sub-scan direction of a two-dimensional image.
請求項1ないし4のいずれかにおいて、各々の前記圧縮データセットは、2次元画像の前記画素領域に含まれる画素データが少なくとも離散コサイン変換、量子化およびハフマン符号化により圧縮されており、前記差分情報は、量子化された離散コサイン係数の値を含む、データ処理方法。In any one of claims 1 to 4, each said compressed data set is two-dimensional the pixel data included in the pixel area are at least discrete cosine transform of an image are compressed by the quantization and Huffman coding, the difference information includes the value of the quantized DCT coefficients, the data processing method. 請求項1ないし5のいずれかにおいて、前記圧縮データセットはJPEG方式で圧縮されているデータ処理方法。6. The data processing method according to claim 1, wherein the compressed data set is compressed by a JPEG method. 画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、前記第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列工程と、
前記第2のデータ群に含まれる前記複数の圧縮データセットを前記第2の配列に従い伸長して印刷する工程を有し、
各々の前記圧縮データセットは、前記第1の配列に依存した差分情報を備えており、
前記再配列工程は、各々の前記圧縮データセットを、前記第1の配列に従って順番に検出するとともに、前記第1の配列に依存した差分情報を累積した値を求めることと、
各々の前記圧縮データセットと、各々の前記圧縮データセットに対応する前記差分情報を累積した値とが、前記第2の配列に従った順番で交互に並ぶように、前記第2のデータ群を生成することとを含む、印刷方法。
The image is divided into a plurality of pixel regions, and each of the first data group in which a plurality of compressed data sets in which pixel data included in each pixel region is compressed using at least entropy coding are arranged in a first array A rearrangement step of detecting a compressed data set in sequence and generating a second data group by arranging in a second array different from the first array;
Extending and printing the plurality of compressed data sets included in the second data group according to the second array;
Each compressed data set comprises difference information dependent on the first array;
The rearrangement step detects each of the compressed data sets in order according to the first array, and obtains a value obtained by accumulating difference information dependent on the first array;
The second data group is arranged such that each of the compressed data sets and a value obtained by accumulating the difference information corresponding to each of the compressed data sets are alternately arranged in the order according to the second array. Generating a printing method.
画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、前記第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列工程をコンピュータにおいて実行可能な命令を有するプログラムであって、
各々の前記圧縮データセットは、前記第1の配列に依存した差分情報を備えており、
前記再配列工程は、各々の前記圧縮データセットを、前記第1の配列に従って順番に検出するとともに、前記第1の配列に依存した差分情報を累積した値を求めることと、
各々の前記圧縮データセットと、各々の前記圧縮データセットに対応する前記差分情報を累積した値とが、前記第2の配列に従った順番で交互に並ぶように、前記第2のデータ群を生成することとを含む、プログラム。
The image is divided into a plurality of pixel regions, and each of the first data group in which a plurality of compressed data sets in which pixel data included in each pixel region is compressed using at least entropy coding are arranged in a first array A program having instructions capable of executing in a computer a rearrangement step of detecting a compressed data set in order and generating a second data group by arranging in a second array different from the first array,
Each compressed data set comprises difference information dependent on the first array;
The rearrangement step detects each of the compressed data sets in order according to the first array, and obtains a value obtained by accumulating difference information dependent on the first array;
The second data group is arranged such that each of the compressed data sets and a value obtained by accumulating the difference information corresponding to each of the compressed data sets are alternately arranged in the order according to the second array. Generating a program.
請求項において、前記再配列工程では、前記コンピュータが受信した前記第1のデータ群から順番に検出された各々の前記圧縮データセットを前記第2の配列を形成するための転送先へ出力する処理を実行するプログラム。9. The rearrangement step according to claim 8 , wherein each of the compressed data sets detected in order from the first data group received by the computer is output to a transfer destination for forming the second array. A program that performs processing. 請求項8または9において、前記第2のデータ群に含まれる前記複数の圧縮データセットを前記第2の配列に従い伸長して出力する工程をコンピュータがさらに実行可能な命令を有するプログラム。10. The program according to claim 8 or 9, further comprising instructions that allow the computer to further execute a step of decompressing and outputting the plurality of compressed data sets included in the second data group according to the second array. 画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、前記第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列手段を有し、
各々の前記圧縮データセットは、前記第1の配列に依存した差分情報を備えており、
前記再配列手段は、各々の前記圧縮データセットを、前記第1の配列に従って順番に検出するとともに、前記第1の配列に依存した差分情報を累積した値を求める部分伸長機能と、
各々の前記圧縮データセットと、各々の前記圧縮データセットに対応する前記差分情報を累積した値とが、前記第2の配列に従った順番で交互に並ぶように、前記第2のデータ群を生成する転送機能とを含む、データ処理装置。
The image is divided into a plurality of pixel regions, and each of the first data group in which a plurality of compressed data sets in which pixel data included in each pixel region is compressed using at least entropy coding are arranged in a first array Reordering means for detecting a compressed data set in order and generating a second data group by arranging in a second array different from the first array;
Each compressed data set comprises difference information dependent on the first array;
The rearrangement means detects each of the compressed data sets in order according to the first array, and a partial decompression function for obtaining a value obtained by accumulating difference information dependent on the first array;
The second data group is arranged such that each of the compressed data sets and a value obtained by accumulating the difference information corresponding to each of the compressed data sets are alternately arranged in the order according to the second array. A data processing apparatus including a transfer function to be generated.
請求項11において、前記再配列手段は、前記第1のデータを受信し、順番に検出された各々の前記圧縮データセットを前記第2の配列を形成するための転送先へ出力するデータ処理装置。12. The data processing apparatus according to claim 11 , wherein the rearrangement unit receives the first data and outputs each of the compressed data sets detected in order to a transfer destination for forming the second array. . 請求項11または12において、さらに、前記第2のデータに含まれる前記複数の圧縮データセットを前記第2の配列に従い伸長して出力する手段を有するデータ処理装置。13. The data processing apparatus according to claim 11 , further comprising means for expanding and outputting the plurality of compressed data sets included in the second data according to the second array. 画像を複数の画素領域に分割し、各々の画素領域に含まれる画素データを少なくともエントロピー符号化を用いて圧縮した複数の圧縮データセットが第1の配列で並んだ第1のデータ群から各々の圧縮データセットを順番に検出し、前記第1の配列とは異なる第2の配列に並べることにより第2のデータ群を生成する再配列手段と、
前記第2のデータ群に含まれる前記複数の圧縮データセットを前記第2の配列に従い伸長して印刷する手段を有し、
各々の前記圧縮データセットは、前記第1の配列に依存した差分情報を備えており、
前記再配列手段は、各々の前記圧縮データセットを、前記第1の配列に従って順番に検出するとともに、前記第1の配列に依存した差分情報を累積した値を求める部分伸長機能と、
各々の前記圧縮データセットと、各々の前記圧縮データセットに対応する前記差分情報を累積した値とが、前記第2の配列に従った順番で交互に並ぶように、前記第2のデータ群を生成する転送機能とを含む、印刷装置。
The image is divided into a plurality of pixel regions, and each of the first data group in which a plurality of compressed data sets in which pixel data included in each pixel region is compressed using at least entropy coding are arranged in a first array Reordering means for detecting a compressed data set in order and generating a second data group by arranging in a second array different from the first array;
Means for expanding and printing the plurality of compressed data sets included in the second data group according to the second array;
Each compressed data set comprises difference information dependent on the first array;
The rearrangement means detects each of the compressed data sets in order according to the first array, and a partial decompression function for obtaining a value obtained by accumulating difference information dependent on the first array;
The second data group is arranged such that each of the compressed data sets and a value obtained by accumulating the difference information corresponding to each of the compressed data sets are alternately arranged in the order according to the second array. A printing device including a transfer function to generate.
JP2003129486A 2003-05-07 2003-05-07 Data processing method and data processing apparatus Expired - Fee Related JP4074832B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003129486A JP4074832B2 (en) 2003-05-07 2003-05-07 Data processing method and data processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003129486A JP4074832B2 (en) 2003-05-07 2003-05-07 Data processing method and data processing apparatus

Publications (2)

Publication Number Publication Date
JP2004336389A JP2004336389A (en) 2004-11-25
JP4074832B2 true JP4074832B2 (en) 2008-04-16

Family

ID=33505310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003129486A Expired - Fee Related JP4074832B2 (en) 2003-05-07 2003-05-07 Data processing method and data processing apparatus

Country Status (1)

Country Link
JP (1) JP4074832B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4151684B2 (en) 2005-01-26 2008-09-17 ソニー株式会社 Encoding apparatus, encoding method, encoding program, and imaging apparatus

Also Published As

Publication number Publication date
JP2004336389A (en) 2004-11-25

Similar Documents

Publication Publication Date Title
JP4533043B2 (en) Image encoding apparatus and method, computer program, and computer-readable storage medium
JP2000278685A (en) Method for processing variable length encoded binary bit stream
JP2006129471A (en) Image processing method and image processing apparatus
JP4902474B2 (en) Image processing apparatus and image processing method
JP3661520B2 (en) Image processing apparatus, image processing method, image forming apparatus, and recording medium recording program
EP0506482B1 (en) Image processing
US20040150840A1 (en) Methods and systems for structuring a raster image file for parallel streaming rendering by multiple processors
JP4074832B2 (en) Data processing method and data processing apparatus
US8320018B2 (en) Method and means for converting image data in encoded format
JP2011040970A (en) Data processing apparatus and data processing method
US7373000B2 (en) Image processing apparatus
JP2004282382A (en) Network terminal equipment
JPWO2003034709A1 (en) Decompression method and data processing apparatus
JP2008236084A (en) Image processing method, image processor, image processing program and recording medium
US8582168B2 (en) Image processing apparatus and processing method thereof
JP4097585B2 (en) Output device and printing device
JP4320497B2 (en) Image processing device
US20090175547A1 (en) Image processing apparatus and image processing method
JP3190118B2 (en) Image processing device
JP4262145B2 (en) Image processing apparatus and control method thereof
JP2006157444A (en) Image forming apparatus and method
JP2001080139A (en) Serial printer and recording medium having recorder program recording
JP3867857B2 (en) Color image processing device
JP3119387B2 (en) Image processing device
JP2021164046A (en) Image processing apparatus, recording device, image processing method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070905

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071218

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080128

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140201

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees