(57)【特許請求の範囲】
【請求項１】
圧縮シリアルデータを、マトリックスの左上を始点とするジグザグパターンで、該マトリックスに配置し、
前記マトリックスの左上に位置するサブセット以外のデータが非ゼロの係数を含むか否か調べ、
前記サブセット以外のデータが非ゼロの係数を含まない場合、前記マトリックスのサイズに対応する逆コサイン変換に替えて、該サブセットのサイズに対応する逆コサイン変換を該サブセットに適用し、
前記逆コサイン変換を適用したサブセットに、前記マトリックスのサイズおよび該サブセットのサイズによって決定されるスケーリング値を乗じ、
前記スケーリング値を乗じた前記サブセットを、前記マトリックスを満たすように、繰り返しコピーすることによって、該マトリックスを補間する、
電子データ解凍の速度および効率を向上する方法であって、
前記マトリックスのサイズは８×８であり、
前記サブセットのサイズは１×１、２×２または４×４であり、
前記サブセットのサイズが１×１の場合、前記スケーリング値は０．１２５であり、
前記サブセットのサイズが２×２の場合、前記スケーリング値は０．２５であり、
前記サブセットのサイズが４×４の場合、前記スケーリング値は０．５である、
方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ伝送の効率を向上させるために複雑なデジタル画像データを解凍する方法及び装置に関する。
【０００２】
【従来の技術】
カラー画像データは複雑（即ち大量）であるため、許容時間枠内で伝送を完了するためには、通常高圧縮率が適用されなければならない。高圧縮率によってデータロスがより多くなり、このデータのロスは普通は周波数域の高周波数端で起こる。さらに、市場のローエンドユーザのファックスマシンに含まれる画像形成装置は、通常はサーマルインクジェットプリンタを含み、誤差拡散ハーフトーニング技術を使用する。サーマルインクジェットプリンタを使用する際に起こるハーフトーニングによって、高周波数データがさらにロスする。したがって、保存され伝送された原稿の詳細の大部分を、最終的なユーザは実際に見ることがない。
【０００３】
これを考慮に入れると、有効なファックス伝送は、画像データに適用される解凍（圧縮解除）動作と受信側ファックスのＣＰＵのクロック速度との間の適切な対応が必要となる。換言すると、解凍が所与のＣＰＵ速度に対して多くの処理を要する場合、データは受信を待たねばならず、適切なサイズのバッファが必要となる。これによって、カラーファックスのプリントが非常に遅れた場合、人間のオペレータはフラストレーションを感じるし、電話線待ち時間がバッファのオーバーフローのために長くなると、伝送は終了してしまう。したがって、受信側ファックスでの処理時間を短縮することが有益である。これを行う一つの方法は、より高速なＣＰＵを用いてデータにモデムを通過させ続けることである。さらに、電話線伝送の待ち時間を避けるためにより大きなバッファを設けてもよい。しかし、これらの解決策によってコストが著しく増大し、実際的ではないかもしれない。したがって、より高価な装置の購入に頼らずに、より高速なデータ解凍を実施することによって、カラーファクシミリの計算処理時間を短縮させることが最も有益である。
【０００４】
【発明が解決しようとする課題】
したがって、公知の装置及び方法は意図した目的には適するが、デジタル画像データを解凍し処理時間を短縮することによってシリアルデータ伝送の効率を向上させるために、可変ブロックサイズ逆離散コサイン変換を使用する高速ＪＰＥＧ圧縮器による画像解凍のニーズが残っている。
【０００５】
【課題を解決するための手段】
本発明は、電子データ解凍の速度及び効率を向上させる方法に関する。この方法は、マトリックスに対応する圧縮シリアルデータを検索することを含む。次にサブセット変換結果を生成するために圧縮シリアルデータのサブセットに変換を適用する。最後に、サブセット変換結果の補間を実行して解凍データを提供する。
【０００６】
本発明の他の態様によると、電子データ解凍の速度及び効率を向上させる方法が提供される。この方法は、データの特定の配置について圧縮シリアルデータを調査することを含む。次に、調査ステップで見出したデータの特定の配置に応じて圧縮データのサブセットを決定する。これに続いてサブセット変換結果を生成するために圧縮データのサブセットに変換を適用する。最後にサブセット変換結果の補間を実行して解凍データを提供する。
【０００７】
本発明のさらに他の態様によると、ＪＰＥＧ解凍の速度及び効率を向上させる方法が提供されている。この方法は、データの特定の配置について圧縮シリアルデータを調査し、圧縮データのサブセットを決定することを含む。サブセット変換結果を生成するために決定した圧縮データのサブセットに変換を適用する。最後に、サブセット変換結果の補間を実行して８×８フルのピクセルデータマトリックスを提供する。
【０００８】
本発明の他の特徴及び利点は、図面を参照して以下の説明を読み進めることによって明らかになるであろう。
【０００９】
【発明の実施の形態】
図面（図示は本発明の実施の形態を説明する目的のもので、これを限定するものではない）を参照すると、図１は本発明のファクシミリ（ファックス）装置１０の実施の形態の構成を示すブロック図である。ファックス１０は、制御プロセス及びファクシミリ伝送制御手順を実行するＣＰＵ１２、プログラムを制御するＲＡＭ１４、及びファクシミリ装置を制御するための種々のボタン及び／又はスイッチ、並びにシステム動作の状態を検査する、ＬＣＤ又はＬＥＤを有するディスプレイコンソール１６を含む。原稿を取得しそこから画像データを生成するためにスキャナ２０も含まれる。画像処理ユニット２２は、画像信号と伝送コードとの間の符号化及び復号化（圧縮及び解凍）プロセスを実行するために含まれる。本発明の目的のために、ファックス１０はモデム２４を含むか又は該モデムとインタフェースする。このモデムは、電話線を介して写真情報を受信したり、適応する受信装置２６、例えば別のファクシミリマシン、プリンタ、コンピュータ端末又は類似の装置に伝送する変調及び復調装置である。
【００１０】
上述のように、画像処理ユニット２２は、画像信号及び伝送コードを圧縮及び解凍するために使用される。画像信号を圧縮及び解凍する一つの一般的な方法は、図２を参照して解凍に関して詳細に説明されるＪＰＥＧ（Joint Photographic Experts Group）標準の使用によるものである。符号化圧縮データストリーム２００はファックス１０によって受信され、画像処理ユニット２２に出力されて対応するデジタル画像ピクセルデータを生成する。符号化データはその中に幾つかの係数を有する。特に最低周波数情報の係数はＤＣ係数（ＤＣＣ）と称され、残りの係数はＡＣ係数（ＡＣＣ）である。当業界でよく理解されるように、ランレングスカウンティング（ＲＬＣ）動作の第1の復号化は、データブロック長を決定するために実行される。次にブロック２１０で示されるような可変長コード（ＶＬＣ）のハフマン復号化が実行されてゼロでないＡＣＣに先行するゼロの数とＡＣＣ振幅との組み合わせを含む記号を復号化する。このようにして、係数を所望の順序で配置することでベクトル２２０を形成する。しかし、量子化されたＤＣＣは、通常はベクトル２２０の第1の値であり、実際のＤＣＣ値から先行データブロックのＤＣＣを引いた差として表される。示されるように、ステップ２３０のＤＰＣＭは、実際のＤＣＣ値を、量子化されたデータベクトル２２０の第1の位置に再構成するために必要な比較を実行する。次に一次元ベクトルデータ２２０をブロック２４０で示されるような選択したパターン（通常「ジグザグ」）を介して８×８のマトリックスに配置して量子化された係数データマトリックス２５０を得る。次にＤＣＣ及びＡＣＣを逆量子化する、即ち各係数に、ステップ２６０で「ステップサイズ」と称される所定の整数を乗算する。最後に逆量子化した係数データマトリックス２７０は、ステップ２８０で８×８逆離散コサイン変換され、８×８のピクセルデータマトリックス２９０を得る。本発明の焦点が主に当てられるのは、逆離散コサイン変換（ＩＤＣＴ）処理のこの領域である。
【００１１】
一般的に、本発明は、出力画像の画質を著しく損なわずに、減少されたデータのセットに対してＪＰＥＧ解凍法の一部分を実行することを含む。本発明は、４×４ＩＤＣＴは８×８ＩＤＣＴよりも速く実行されることができ、２×２ＩＤＣＴは４×４ＩＤＣＴよりも速く実行されることができ、１×１ＩＤＣＴは２×２ＩＤＣＴよりも速く実行されることができる事実を利用する。当業界で公知であるように、量子化後のブロックにおける大部分のＤＣＴ係数はゼロであるため、ＪＰＥＧは圧縮を達成する。本発明は、より少ない係数ゼロを計算することによって時間を節約する。また、一定量の高周波数のロスは、特に色分解データの場合又はファックス環境において許容されることができることも知られている。本発明は、アクティビティの高帯域通過情報即ち係数ゼロを調べる。ブロック端部(end-of-block)係数ゼロが走査の初期に見つかると、より小さなブロックサイズのＩＤＣＴを実行する。通常の８×８ＩＤＣＴは実行されず、代わりにより小さなブロックサイズのＩＤＣＴ結果の補間が実行されて８×８フルのピクセルデータマトリックスを提供する。これによって、本発明は計算時間を節約できる。
【００１２】
本発明の好適な実施の形態は、ＪＰＥＧ解凍の通常のステップから始まり、量子化されたデータベクトル２２０へと続く。データベクトル２２０が走査されゼロでない係数の最大インデックスを調べる。換言すると、データ値を調べ、データの残りは全てゼロであるためブロックコマンドの端部がどこに到達したかを決定する。好適な実施の形態では、最大インデックス結果に応じて四つの異なる方法がある。これらの方法は、処理のために１×１、２×２、４×４、通常の８×８のデータマトリックスのいずれかを使用することからなる。ｋをブロックサイズとし、ｋ∈｛１、２、４、８｝とし、ベクトルｖ（ｎ）のゼロでない係数の最大インデックスをＭとすると、以下のように要約することができる。
●  Ｍ＝０であるならば、ｋ＝１を選択し、そうでなければ
●  Ｍ≦４且つｖ（３）＝０であるならば、ｋ＝２を選択し、そうでなければ
●  Ｍ≦１３且つｖ（１０）＝０であるならば、ｋ＝４を選択し、そうでなければ
●  ｋ＝８（通常のＪＰＥＧ状態）を選択する。
上記の要約を以下に説明する。
【００１３】
上記において、ｋ＝１である場合、残りのマトリックス値が全てゼロであるため、１×１のデータマトリックスを処理するだけでよい。図３を参照すると、マトリックス３００がこの場合を示す。ゼロでない係数の最大インデックスはロケーション０である。残りのロケーション１−６３は、値ゼロの係数をアドレスする。したがって、ベクトル２２０の残りを逆変換されるマトリックスに走査する必要がない。ｖ（０）（即ちロケーション０）のＤＣＣ係数は量子化ステップによって乗算される。次に、１×１マトリックスのＩＤＣＴは、実際には同じ値のままであるため、この場合ＩＤＣＴステップに対する処理は必要ない。しかし、普通に圧縮した場合にデータは通常８×８ＤＣＴであるため、１×１対８×８ＩＤＣＴのスケーリング効果を許容するために８で除算しなければならない。後は、この得られたピクセル値を補間して８×８フルのピクセルデータを得るのみである。これは、単一の平均ピクセル結果をブロックにわたって単に反復させ８×８サンプル全てに記入することによって行われる。
【００１４】
ｋ＝２の第２の方法では、図３に示すようにマトリックス３２０に２×２のサブセットマトリックス３１０がある。サブセットマトリックスはロケーション０、１、２及び４を含む。これは、最低周波数ＡＣＣが保持されていることを意味する。ただし、ロケーション３は２×２サブセットマトリックス３１０のボックスの外側にあることに注目されたい。これは、処理を進行する前にロケーション３が値ゼロかをチェックする必要があることを意味する。ロケーション３がゼロでない値を有する場合、好適な実施の形態では、第3の方法に進み４×４サブセットマトリックス３３０を適用する。しかし、ｖ（３）が値ゼロを有する場合、図４に示すように第2の方法を進行する。
【００１５】
図4を参照すると、高速再走査４００ステップを実行してベクトル２２０から必要な値をメモリに入れる。次にステップ４１０で四つのサンプルを逆量子化する。次にステップ４２０のスケーリングされた２×２ＩＤＣＴが続く。普通にＪＰＥＧ圧縮したデータは８×８ＤＣＴを受け取るため、好適な実施の形態では、スケーリングのために０．２５だけ乗算する（即ち４で除算する）ことが必要になる。スケーリングは、８×８ＩＤＣＴの代わりに２×２を使用することを補償する。一般的なスケーリングを以下に説明する。
数ＸのＮ×ＮアレイのＮ×Ｎ逆ＤＣＴを、
ＩＤＣＴN（Ｘ）＝ＤTNＸＤN
と仮定し、式中、上付き文字Ｔはマトリックス転置を意味し、マトリックスＤNは以下のエントリーを有する。
【００１６】
【数１】
0004680377.tif 000002
低周波数ＤＣＴ係数の選択されたＫ×ＫアレイＣに対して、ピクセルのＫ×Ｋアレイも得られ、該ピクセルは補間されて８×８ブロックを形成する。
Ｋ＝１、１×１の場合、ＤＣでありＹ＝Ｃ*（１／８）
Ｋ＝２、２×２の場合、          Ｙ＝ＩＤＣＴ2（Ｃ）*（１／４）
Ｋ＝４、４×４の場合、          Ｙ＝ＩＤＣＴ4（Ｃ）*（１／２）
Ｋ＝８、８×８の場合、ＪＰＥＧにおいて従来技術を使用し、補間は必要ない
Ｙ＝ＩＤＣＴ8（Ｃ）
一般的な場合、Ｎ×Ｎの最終的なブロックサイズ（例えばＪＰＥＧでは８×８）に対して、
Ｙ＝ＩＤＣＴK（Ｃ）*（Ｋ／Ｎ）
である。
【００１７】
データをスケーリングした後、補間ステップ４３０を実行する。この補間によって８×８フルのデータブロックを得ることができる。好適な実施の形態では、当業者によってよく理解されている最近傍法（換言するとピクセル反復）を使用して補間を実行する。２×２サブブロックでは、補間は８×８マトリックスにおける２×２データの２×２サブブロック毎のステップアンドリピートを含む。サブブロックが縦四つ横四つとなるため、１６個の２×２位置があることになり、データをコピーして補間を達成する。
【００１８】
ｋ＝４の場合の第３の方法では、図３に示すように、マトリックス３４０に４×４のサブセットマトリックス３３０がある。サブセットマトリックスは、ロケーション０−９、１１−１３、１７、１８及び２４を含む。この好適な実施の形態では、ロケーション１３より上にゼロでない係数がなく、サブセットマトリックス３３０の外側のロケーション１０が値ゼロを有する場合のみにこの方法を選択する。さらなるロケーションをチェックするための余分な処理時間の犠牲が許容されるならば、又はチェックしないことによる不正確性が許容されるならば、他の構成も可能である。ｖ（１３）より上にゼロでない係数がなく、ｖ（１０）＝０の条件が本発明の好適な実施の形態において満たされない場合、通常のＪＰＥＧ８×８ＩＤＣＴの第４の方法を実行する。しかし、条件が満たされる場合は、図４に示すように第３の方法の２×２の例と同じ手順にならう。ロケーション０〜１３をステップ４００で迅速に再走査する。サブセットマトリックス３３０のロケーション１７、１８及び２４は定義上、値ゼロである。逆量子化４１０をサブセットマトリックスデータに施し、ステップ４２０のスケーリングされた４×４ＩＤＣＴが続く。ここで用いるスケーリング因子は、上記に示し説明したように０．５である。次にステップ４３０で補間を実行する。４×４サブブロックでは補間は８×８マトリックスにおける４×４データの４×４サブブロック毎のステップアンドリピートを含む。サブブロックが縦二つ横二つとなるため、四つの４×４位置があり、データをコピーして補間を達成する。
【００１９】
最後に、他の方法を用いることができない場合、第４の方法を用いる。第４の方法は、８×８ＩＤＣＴを用いた通常の標準ＪＰＥＧ解凍である。この特定の方法では解凍時間は節約されないのは明らかである。しかし、（ブロックステートメントの端部をより早く取得し、より短いデータストリームを得るために）ＪＰＥＧ圧縮が多くのゼロ値を形成する傾向を利用することによって、上記に説明した本発明を実施するデコーダは従来のデコーダよりも約２倍速度が速いことが実験によって判定された。速度の改善は、より速い逆変換及びより小さなデータのセットに動作する解凍ステップの直接的な結果によるものである。
【図面の簡単な説明】
【図１】本発明を実施するために使用され得るファクシミリマシンの一般的な態様を例示する一般化したブロック図である。
【図２】ＪＰＥＧ解凍方式を実行するために使用されるステップを概略的に例示した図である。
【図３】１×１、２×２及び４×４の動作ブロックを示す三つの８×８マトリックスを例示した図である。
【図４】本発明がＪＰＥＧ解凍技術において実施され得る一つの方法を概略的に例示した図である。
【符号の説明】
１０    ファクシミリ装置
３００、３２０、３４０    マトリックス
３１０、３３０    サブセットマトリックス
【図１】
0004680377.tif 000003
【図２】
0004680377.tif 000004
【図３】
0004680377.tif 000005
【図４】
0004680377.tif 000006