(57)【特許請求の範囲】
【請求項１】
ラスタデータをハイブリッド圧縮するための装置であって、前記ラスタデータは各ピクセルがアレイのある位置でカラーを表示するピクセルのアレイである前記装置において、
ピクセルのアレイのサブアレイをバッファするための第１の記憶装置と、
個々のサブアレイで動作しそこにある同色の連結されたピクセルのパッチを認識するパッチ認識器であって、各パッチは確定可能なピクセル数をもつパッチ認識器と、
パッチにあるピクセルを第１の符号化処理によって効率的に圧縮可能であるか否かにそれぞれ応じて、個々のパッチを第１のタイプのパッチまたは第２のタイプのパッチのいずれかに分離し、かつ前記第１のタイプのパッチと前記第２のタイプのパッチのデータ間の各境界が不連続になる影響を軽減する透明ピクセルの第２のタイプのパッチに関する情報を保存するパッチタイプ分別器と、
第１のタイプの符号化されたデータに第１のタイプのパッチのピクセルと透明ピクセルを符号化するために第１の符号化処理を用いる第１の圧縮器と、
サブアレイを複数行に分割するのに適した第２の圧縮器であって、各行は複数のピクセルのブロックを含み、各ブロックは行の位置を含み、さらに前記第２の圧縮器は第２のタイプの符号化されたデータに第２のタイプのパッチのピクセルを含むピクセルのブロックだけを符号化し、行内の各符号化されたブロックの位置に関する情報を符号化するために第２の符号化処理を用いるのに適した第２の圧縮器と、を備え、
それによって、第１のタイプと第２のタイプの符号化されたデータを圧縮形式で記憶装置に格納し、前記アレイの再現されたピクセルを得るためにそれぞれの符号化処理を逆にすることによって実質的に再現可能にすることができるラスタデータをハイブリッド圧縮するための装置。
【請求項２】
前記第１の符号化処理は可逆符号化であり、
前記第２の符号化処理は非可逆符号化である請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項３】
前記第１の符号化処理は、ランレングス符号化を含む請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項４】
前記第２の符号化処理は、変換符号化を含む請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項５】
所定の瞬間に前記装置により獲得された圧縮率をモニタする適応制御器であって、前記圧縮率は、これまで符号化を受けたラスタデータ部分を格納するのに必要なビット数を対応する符号化されたラスタデータを格納するのに必要なビット数で除算したデータによって与えられる適応制御器とをさらに備え、
前記適応制御器は、モニタされた圧縮率と目的とする圧縮率との間の比較に応じて所与の瞬間に、目的とする圧縮率に合うために前記第２の圧縮処理の圧縮に影響する１以上の圧縮パラメータを適応させて調整する請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項６】
前記装置は所与の圧縮率を獲得するための圧縮パラメータのセットに応答するものであり、前記圧縮率はラスタデータを格納するのに必要なビット数を符号化されたラスタデータを格納するのに必要なビット数で除算したものによって与えられる前記装置において、
再圧縮制御器であって、現在獲得した圧縮率が目的とする圧縮率に合わないという表示に応じて、符号化されたラスタデータをラスタデータに復号可能であり、前記現在獲得した圧縮率よりも高い圧縮率を発生させる別の圧縮パラメータのセットで前記装置がラスタデータを再圧縮可能である再圧縮制御器とをさらに備える請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項７】
前記第１の符号化処理はランレングス符号化を含み、
前記第２の符号化処理は変換符号化されたデータを形成するために複数のブロックで動作する変換符号化を含む請求項１記載のラスタデータをハイブリッド圧縮するための装置。
【請求項８】
変換符号化はＪＰＥＧ符号化されたデータを形成するために複数のブロックで動作するＪＰＥＧ符号化であり、各ブロックは８×８ピクセルブロックのアレイである請求項７記載のラスタデータをハイブリッド圧縮するための装置。
【請求項９】
前記パッチタイプ分別器は、ブロックが少なくとも第２のタイプのパッチの所定のしきい値ピクセル数を含むことが真であるか否かを決定し、真でなければ、第１のタイプのパッチに属するものとしてこれらのピクセルを再分類して分離するインブロックカウンタをさらに備える請求項７記載のラスタデータをハイブリッド圧縮するための装置。
【請求項１０】
第２のタイプのパッチのピクセルで部分的に満たされたブロックに対して、前記ブロックの補完ピクセルはブロックを部分的に満たす前記ピクセルのカラー値を平均化することにより実質的に与えられるカラー値を個々にもつ請求項７記載のラスタデータをハイブリッド圧縮するための装置。
【請求項１１】
前記パッチタイプ分別器は第２のタイプのパッチのピクセルと関連する位置タグも発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化され、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項７記載のラスタデータをハイブリッド圧縮するための装置。
【請求項１２】
前記パッチタイプ分別器は第２のタイプのパッチのピクセルと関連する位置タグも発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化され、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項８記載のラスタデータをハイブリッド圧縮するための装置。
【請求項１３】
前記装置は前記パッチ認識器としても働くように前記第１の圧縮器の第１の経路を用いることで、前記第１の圧縮器の前記第１の経路は同色の連結されたピクセルのパッチを認識し、認識中に第１のタイプのパッチも符号化する請求項１乃至１２記載のラスタデータをハイブリッド圧縮するための装置。
【請求項１４】
請求項１乃至１３のいずれかの装置を用い、各ピクセルがアレイのある位置でカラーを表示するピクセルのアレイを備えて符号化されたラスタデータをハイブリッド伸張するための装置において、
符号化されたデータを格納するための第２の記憶装置と、
第１のタイプと第２のタイプの符号化されたデータを前記アレイの対応するピクセルにそれぞれ復号してラスタデータを再現するために前記第２の記憶装置に接続される第１および第２の伸張器と、
を備えるラスタデータをハイブリッド伸張するための装置。
【請求項１５】
ラスタデータをハイブリッド圧縮および伸張するための装置において、
請求項１乃至１３のいずれか記載のハイブリッド圧縮するための装置と、
符号化されたデータを格納するための第２の記憶装置と、
第１のタイプと第２のタイプの符号化されたデータを前記アレイの対応するピクセルにそれぞれ復号してラスタデータを再現するために前記第２の記憶装置に接続される第１および第２の伸張器と、
を備えるラスタデータをハイブリッド圧縮および伸張するための装置。
【請求項１６】
前記第１の伸張器は第１のタイプの符号化されたデータを第１のタイプの再現されたピクセルと第２のタイプのピクセルと関連する位置タグに復号し、
前記第２の伸張器は第２のタイプの符号化されたデータを第２のタイプの再現されたピクセルに復号し、
第１のタイプのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルは、ラスタデータを再現するためにアレイのそれぞれの位置に復号される請求項１５記載のラスタデータをハイブリッド圧縮および伸張するための装置。
【請求項１７】
ラスタデータをハイブリッド圧縮するための方法であって、前記ラスタデータは各ピクセルがアレイのある位置でカラーを表示するピクセルのアレイである前記方法において、
同色の連結されたピクセルのパッチを確認するステップと、
パッチにあるピクセルを第１の符号化処理によって効率的に圧縮可能であるか否かにそれぞれ応じて、各パッチが第１のタイプまたは第２のタイプに属するかどうかを分別するステップと、
前記第１のタイプのパッチと前記第２のタイプのパッチのデータ間の各境界が不連続になる影響を軽減する透明ピクセルの第２のタイプのパッチに関する情報を保存するステップと、
第１の圧縮処理により前記第１のタイプと透明ピクセルに属するパッチを符号化するステップと、
アレイを複数行に分割するステップであって、各行は複数のピクセルのブロックを含み、各ブロックは行の位置を含む分割するステップと、
第２の圧縮処理により第２のタイプのパッチのピクセルを含むピクセルのブロックだけを符号化するステップと、
各行内の各符号化されたブロックの位置に関する情報を符号化するステップと、
を含むラスタデータをハイブリッド圧縮するための方法。
【請求項１８】
前記第１の符号化処理は可逆符号化であり、
前記第２の符号化処理は非可逆符号化である請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項１９】
前記第１の符号化処理は、ランレングス符号化を含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２０】
前記第２の符号化処理は、変換符号化を含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２１】
少なくとも目的とする圧縮率を獲得しながら、ラスタページは前記第１の圧縮処理により優先的に圧縮される請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２２】
所定の瞬間に前記方法により獲得された圧縮率をモニタするステップであって、前記圧縮率は、これまで符号化を受けたラスタデータ部分を格納するのに必要なビット数を対応する符号化されたラスタデータを格納するのに必要なビット数で除算したデータによって与えられる圧縮率をモニタするステップと、
モニタされた圧縮率と目的とする圧縮率との間の比較に応じて所与の瞬間に、目的とする圧縮率に合うために前記第２の圧縮処理の圧縮に影響する１以上の圧縮パラメータを適応させて調整するステップと、
をさらに含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２３】
前記方法は所与の圧縮率を獲得するための圧縮パラメータのセットに応答するものであり、前記圧縮率はラスタデータを格納するのに必要なビット数を符号化されたラスタデータを格納するのに必腰なビット数で除算したものによって与えられる前記方法において、
現在獲得した圧縮率が目的とする圧縮率に合わないという表示に応じて、符号化されたラスタデータをラスタデータに復号するステップと、前記現在獲得した圧縮率よりも高い圧縮率を発生させる別の圧縮パラメータのセットでラスタデータを再圧縮するステップとをさらに含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２４】
前記第１の符号化処理はランレングス符号化を含み、
前記第２の符号化処理は変換符号化されたデータを形成するために複数のブロックで動作する変換符号化を含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２５】
変換符号化はＪＰＥＧ符号化されたデータを形成するために複数のブロックで動作するＪＰＥＧ符号化であり、各ブロックは８×８ピクセルブロックのアレイである請求項２４記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２６】
前記パッチタイプに分別するステップは、ブロックが少なくとも第２のタイプのパッチの所定のしきい値ピクセル数を含むことが真であるか否かを決定するステップと、真でなければ、第１のタイプのパッチに属するものとしてこれらのピクセルを再分類して分離するステップとをさらに含む請求項２４記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２７】
第２のタイプのパッチのピクセルで部分的に満たされたブロックに対して、前記ブロックの補完ピクセルはブロックを部分的に満たす前記ピクセルのカラー値を平均化することにより実質的に与えられるカラー値を個々にもつ請求項２４記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２８】
前記パッチタイプに分別するステップは第２のタイプのパッチのピクセルと関連する位置タグを発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化されるステップを含み、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項２４記載のラスタデータをハイブリッド圧縮するための方法。
【請求項２９】
前記パッチタイプに分別するステップは第２のタイプのパッチのピクセルと関連する位置タグを発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化されるステップを含み、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項２５記載のラスタデータをハイブリッド圧縮するための方法。
【請求項３０】
前記方法は前記第１の圧縮処理の第１の経路を用いて、同色の連結されたピクセルのパッチを確認し、パッチの確認中に第１のタイプのパッチも符号化する請求項１７乃至２９記載のラスタデータをハイブリッド圧縮するための方法。
【請求項３１】
ラスタデータとして対応するピクセルアレイを個々にもつラスタデータの第１の層および第２の層を供給するステップと、
前記第１のタイプに属するパッチからの前記第１の層のピクセルと前記第２のタイプに属するパッチからのピクセルに対応する関連する位置タグに割り当てるステップと、
前記第２の層の前記第２のタイプに属するパッチからの前記第２の層のピクセルに割り当てるステップと、
ラスタデータの第１の層と第２の層を重ね合わせることによりラスタデータの表示を形成するステップと、
前記第１の圧縮処理を前記第１の層に施し、前記第２の圧縮処理を前記第２の層に施すステップと、
をさらに含む請求項１７記載のラスタデータをハイブリッド圧縮するための方法。
【請求項３２】
符号化されたラスタデータをラスタデータにハイブリッド伸張するための方法であって、前記ラスタデータは請求項１７乃至３１のいずれかの方法に従って圧縮され、各ピクセルがアレイのある位置でカラーを表示するピクセルのアレイを備え、前記符号化されたラスタデータは第１のタイプおよび第２のタイプの符号化されたデータに分離可能である前記方法において、
第１のタイプの符号化されたデータを第１のタイプの再現されたピクセルと第２のタイプのピクセルと関連する位置タグに復号するステップと、
第２のタイプの符号化されたデータを第２のタイプの再現されたピクセルに復号するステップと、を含み
第１のタイプのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルは、ラスタデータを再現するためにアレイのそれぞれの位置に復号される符号化されたラスタデータをラスタデータにハイブリッド伸張するための方法。
【請求項３３】
ラスタデータをハイブリッド圧縮および伸張するための方法であって、前記ラスタデータは各ピクセルがアレイのある位置でカラーを表示するピクセルのアレイである前記方法において、
第１の記憶装置においてピクセルのアレイのサブアレイをバッファするステップと、
個々のサブアレイで同色の連結されたピクセルのパッチを確認するステップであって、各パッチは確定可能なピクセル数をもつ確認するステップと、
パッチにあるピクセルを第１の符号化処理によって効率的に圧縮可能であるか否かにそれぞれ応じて、個々のパッチを第１のタイプのパッチまたは第２のタイプのパッチのいずれかに分別して分離し、かつ前記第１のタイプのパッチと前記第２のタイプのパッチのデータ間の各境界が不連続になる影響を軽減する透明ピクセルの第２のタイプのパッチに関する情報を保存するステップと、
第１のタイプの符号化されたデータに第１のタイプのパッチのピクセルと透明ピクセルを符号化するために第１の符号化処理を用いるステップと、
サブアレイを複数行に分割するステップであって、各行は複数のピクセルのブロックを含み、各ブロックは行の位置を含む分割するステップと、
第２のタイプの符号化されたデータに第２のタイプのパッチのピクセルを含むピクセルのブロックだけを符号化し、行内の各符号化されたブロックの位置に関する情報を符号化するために第２の符号化処理を用いるステップと、
第２の記憶装置において第１のタイプおよび第２のタイプの符号化されたデータを格納するステップと、
ラスタデータを再現するために第２の記憶装置にある第１のタイプと第２のタイプの符号化されたデータを前記アレイの対応するピクセルに復号するステップと、
を含むラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３４】
第１のタイプの符号化されたデータは第１のタイプの再現されたピクセルと第２のタイプのピクセルと関連する位置タグに復号され、
第２のタイプの符号化されたデータは第２のタイプの再現されたピクセルに復号され、
第１のタイプのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルは、ラスタデータを再現するためにアレイのそれぞれの位置に復号される請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３５】
前記第１の符号化処理は可逆符号化であり、
前記第２の符号化処理は非可逆符号化である請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３６】
前記第１の符号化処理は、ランレングス符号化を含む請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３７】
前記第２の符号化処理は、変換符号化を含む請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３８】
所定の瞬間に前記方法により獲得された圧縮率をモニタするステップであって、前記圧縮率は、これまで符号化を受けたラスタデータ部分を格納するのに必要なビット数を対応する符号化されたラスタデータを格納するのに必腰なビット数で除算したデータによって与えられる圧縮率をモニタするステップと、
モニタされた圧縮率と目的とする圧縮率との間の比較に応じて所与の瞬間に、目的とする圧縮率に合うために前記第２の圧縮処理の圧縮に影響する１以上の圧縮パラメータを適応させて調整するステップと、
をさらに含む請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項３９】
前記方法は所与の圧縮率を獲得するための圧縮パラメータのセットに応答するものであり、前記圧縮率はラスタデータを格納するのに必腰なビット数を符号化されたラスタデータを格納するのに必要なビット数で除算したものによって与えられる前記方法において、
現在獲得した圧縮率が目的とする圧縮率に合わないという表示に応じて、符号化されたラスタデータをラスタデータに復号するステップと、前記現在獲得した圧縮率よりも高い圧縮率を発生させる別の圧縮パラメータのセットでラスタデータを再圧縮するステップとをさらに含む請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４０】
前記第１の符号化処理はランレングス符号化を含み、
前記第２の符号化処理は変換符号化されたデータを形成するために複数のブロックで動作する変換符号化を含む請求項３３記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４１】
変換符号化はＪＰＥＧ符号化されたデータを形成するために複数のブロックで動作するＪＰＥＧ符号化であり、各ブロックは８×８ピクセルブロックのアレイである請求項４０記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４２】
前記パッチタイプに分別するステップは、ブロックが少なくとも第２のタイプのパッチの所定のしきい値ピクセル数を含むことが真であるか否かを決定するステップと、真でなければ、第１のタイプのパッチに属するものとしてこれらのピクセルを再分類して分離するステップとをさらに含む請求項４０記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４３】
第２のタイプのパッチのピクセルで部分的に満たされたブロックに対して、前記ブロックの補完ピクセルはブロックを部分的に満たす前記ピクセルのカラー値を平均化することにより実質的に与えられるカラー値を個々にもつ請求項４０記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４４】
前記パッチタイプに分別するステップは第２のタイプのパッチのピクセルと関連する位置タグを発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化されるステップを含み、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項４０記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４５】
前記パッチタイプに分別するステップは第２のタイプのパッチのピクセルと関連する位置タグを発生させ、前記位置タグは前記第１の圧縮器に向けられて第１の符号化処理により符号化されるステップを含み、
第１のタイプおよび第２のタイプの符号化されたデータが再現されたピクセルに復号されるとき、ラスタデータは第１のタイプのパッチのそれらの再現されたピクセルと関連する位置タグをもつ第２のタイプのそれらの再現されたピクセルとから再現される請求項４１記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【請求項４６】
前記方法は前記第１の圧縮処理の第１の経路を用いて、同色の連結されたピクセルのパッチを確認し、パッチの確認中に第１のタイプのパッチも符号化する請求項３３乃至４５記載のラスタデータをハイブリッド圧縮および伸張するための方法。
【発明の詳細な説明】
発明の背景
本発明は、一般的にデータの圧縮および伸張に関し、さらに詳しく言えば、ラスタ化されたデータ内に存在する可能性のある異なるタイプの構造を決定し、そしてそれに適当な圧縮スキームを選択的に適用することに関する。
ディスプレイ指向の環境において、画像データは二次元のページ表示によって示される。ページは通常、ユーザによってディスクトップ・パブリッシング・アプリケーションを使用してワークステーション上に構成される。ページはテキスト，線画（「グラフィック」とも呼ばれる）および像（すなわちフォト）のオブジェクトを含み、そしてページ記述言語（ＰＤＬ）により特定されたページ記述ファイルの形式でデスクトップ・パブリッシング・アプリケーションにより出力される。ページがプリンタまたは表示画面などの描写装置によって描きだされる前に、データは描写装置にラスタ化されたページの形式で提供される必要がある。ラスタ化された形式への変換は、使用するＰＤＬに固有のＰＤＬインタープリタによって行われる。
ラスタ化されたページは、各ピクセルが特定のカラーをもつピクセルの２次元アレイによるページのディジタル表示である。カラーは、各ピクセルに割当られたビット数に依存する範囲のもので、ビット数が大きければ大きいほど色解像度（色濃淡）が高くなる。プリンタの応用では、色を４つの基本インク，すなわち、シアン色（Ｃ），マゼンタ色（Ｍ），黄色（Ｙ）および黒（Ｋ）に対応する４つの要素に分類すると都合が良い。例えば、商業的な用途では通常、色が各色の要素に割当られた記憶装置の８ビット（バイト）を用いて得た色解像度をもつことから、各ピクセルはそれに関連して４バイトを持つことになる。これにより、およそ４０億通りのインクの組み合わせを作りだすことになる。
プリンタ，特にレーザプリンタは通常、一定の速度で印刷するプリントエンジンをもつ。ラスタデータは前記プリンタエンジンに出力速度と比例した速度で供給される必要があり、そうでなければプリシタのオバーランエラーが生じる可能性がある。少なくとも、前記プリンタエンジンはページ出力の過程でラスタデータを待つように構成されていない。したがって、入力データ速度とプリンタエンジンの出力速度間の不一致を調和させるために、プリントバッファ（またはフレームバッファとも呼ばれる）が少なくとも一つのラスタ化されたページを一時調和させるために用いられる。
ラスタ化されたページの二次元特性の結果、メモリは解像度の平方および／またはページの直線の長さの積で増加するページを格納する必要がある。例えば、適度なプリンタの解像度、例えば４００ｄｐｉ（１インチ長さ当たりのドット数）（すなわち１５７ドット毎ｃｍ）が８．５インチ×１１インチ（すなわち２１．６×２７．９ｃｍ）のサイズのページに適用されると、ページに必要なメモリは６０Ｍバイト（メガバイト）ほどになる。メモリコストが高くなると、この大きさのメモリはレーザプリンタの他の部品全部を合計したコストを容易に越えるコストがかかり、商業的または経済的に実現不能である。
プリンタバッファの大きさを極小化する一般的な解決法は、ラスタデータを格納する前に圧縮することである。１またはそれ以上のページの圧縮されたラスタデータが格納されると、それらはプリンタエンジンに適した制御速度で伸張される。
米国特許第５，４７９，５８７号には、プリンタバッファ極小化方法が開示されており、そこではラスタデータが所与のプリンタバッファに適合するように十分に圧縮されるまで圧縮率を上げて異なる圧縮処理を試みることによりラスタデータが圧縮される。毎回より高い圧縮率を持つ圧縮処理をそのような複数の処理の予め規定した能力から選択するもので、この処理は、ランレングス符号化などの非可逆処理から可逆処理まである。一般的に、可逆符号化はテキストおよび線画データに有効であるのに対して、非可逆符号化は画像データに有効である。しかしながら、この方法では、所定の圧縮率を達成するためにラスタページの特性が非可逆圧縮を必要とする場合、印刷品質が劣化してしまう。これは、選択した圧縮処理のうちの１つのみをページの各ストリップに簡潔に施すためであり、ストリップが画像データ以外にもテキストや線画データを含む場合には、可逆圧縮処理では一般的に、通常ではテキストまたは線画データを正確に描く鮮明なラインをぼやかしたり、または本来存在しなかった望ましくないものが生じてしまうこともある。
欧州特許公開第０５９７５７１号には、ページ内のオブジェクトのタイプを最初に抽出して、各オブジェクトの境界をラスタ化の前に決定する方法が開示されている。適切な圧縮処理を選択して各オブジェクトのタイプに施す。このようにして、可逆圧縮処理をテキストや線画オブジェクトに最適に施す一方で、非可逆圧縮処理を画像オブジェクトに施す。本質的に、この方法はページ記述ファイルとラスタ化されたページ間の中間的な形式であるディスプレイリストのレベルで動作する。オブジェクトとそれらのタイプは、ディスプレイリストにあるＰＤＬの高水準の絶対的オブジェクト規定コマンドからの分析によって決定される。これにより、ＰＤＬコマンドの特定のブランドやバージョンの知識だけでなく、これらの暗黙の表現からあるオブジェクトを再生する方法が必要となる。いずれにしても、矩形ブロックで囲まれているオブジェクト等の最も簡単な境界を除くすべてが、ディスプレイリストのレベルでそのように解読することから現実的に決定可能なものである。
一般的にいって、ディスプレイリストは特定のＰＤＬインタープリタで解釈されて、ページ表現にラスタデータを発生する。この解釈過程は「ブラックボックス」にリンクされており、ここではディスプレイリストが一端で入力され、他端でラスタデータが出力される。データがラスタ化されると、それはピクセルのアレイまたはビットマップの形式になり、個々の圧縮処理を施す明白な良く規定されたオブジェクトはなくなる。
本発明の目的および要約
したがって、本発明の一般的な目的は、データ劣化を最小限に抑えてラスタデータを最適にデータ圧縮するための方法および装置を提供することにある。
本発明の他の目的は、すでにラスタ化されたデータ中に存在する可能性がある異なるタイプの構造を決定し、そして選択的にそれに対して適当な圧縮処理を施すことである。
本発明の他の目的は、プリントまたはフレームバッファに必要なメモリを最小限に抑えることである。
本発明の他の目的は、所望の圧縮率であれば、可逆圧縮処理と非可逆圧縮処理との調和法（および画質劣化量の制御法）を定めることで、少なくとも所望の圧縮率に対する圧縮を達成することである。
前記および追加の目的は、本発明の以下の特徴により達成される。
本発明の目的は、ページ上に存在する可能性のある異なるタイプのオブジェクトに最適な圧縮処理を施すことである。可逆ランレングス符号化等の第１のタイプの圧縮は、テキストまたは線画として認識されるデータに施すことが好ましい。しかしながら、第１のタイプの圧縮は、画像またはフォトとして認識されるデータに施す場合、有効でない場合がある。目標とする圧縮率をえるためには、変換符号化等の第２のタイプの圧縮をこれらのタイプのデータに施すことが好ましい。好適な実施形態において、変換符号化は８×８ピクセルの集積ブロックに適用される非可逆ＪＰＥＧ符号化である。しかしながら、ページがページ技術ファイルからラスタ化されたページデータに変換されると、ページからなる種々のオブジェクトのタイプやソースに関するすべての履歴情報がなくなる。
本発明の一つの重要な特徴は、ラスタ化された形式でページを分析することが可能であることである。これは、カラーパッチの形式でラスタデータにある構造を認識することにより達成される。パッチは同色のつながったピクセルの広がりとして見なされる。パッチが認識されると、パッチが第１のタイプの圧縮処理で効率的に圧縮することができるか否かということに基づいて、タイプ１パッチまたはタイプ２パッチに区別される。各々のパッチの大きさは、そこにあるピクセル数（「パッチピクセルカウント（PatchPixelCount）」）により測定される。タイプ１パッチは、所定数のＤ１以上のパッチピクセルカウントをもち、タイプ２パッチは、Ｄ１よりも少ないパッチピクセルカウントをもつ。好適な実施形態において、Ｄ１は６〜８である。次いで第１の圧縮処理をタイプ１パッチに施し、第２の圧縮処理をタイプ２パッチに施す。
したがって、ラスタ化された形式でも、テキストまたは線画のオブジェクトは一般的に認識可能であり、画像またはフォトオブジェクトとは区別される。次いで適切な圧縮処理を各タイプのデータに施して、品質を維持しながら有効な圧縮を最適にえることができる。
本発明の別の特徴によれば、２つのタイプのパッチ間にある任意の境界を取り扱うための規定を設ける。元のラスタデータはピクセルレベルの粒度をもつ。しかしながら、好適な第２の圧縮処理であるブロック指向ＪＰＥＧ圧縮では、ブロックレベル（８×８ピクセル）に対してタイプ２のデータの粒度が粗くなってしまい、ここでブロックレベルはタイプ１パッチと関連するタイプ１のデータと比較すると６４：１の領域比率だけより大きいものである。２つのタイプの粒度が合わなければ、タイプ２とタイプ１データの境界が連続していないということである。この問題は、タイプ２パッチを透明ピクセルとしてそれらの元のピクセル粒度にもコード化することで処理される。後にドキュメントを再現する場合、透明ピクセルは伸張されたタイプ２データの１以上のウィンドウを形成して再現されたドキュメントで表示することにより、タイプ１とタイプ２のデータ間の境界にある元の精細な構造を保存できる。
境界においても、タイプ２パッチで部分的にのみ満たされているＪＰＥＧブロックがある。ＪＰＥＧ圧縮がそのようなブロックに施される場合、それらの不自然かつ不連続な構造により圧縮率を下げる傾向にある望ましくない周波数が発生してしまう。この影響をなくすために、圧縮を施す前にブロックの満たされていない部分にあるピクセル値がブロックにあるタイプ２のピクセルの平均値により置き換えられる。
好適な実施形態において、パッチ認識器は、作業ウィンド内にあるピクセルを行毎に走査し各行内をピクセル毎に走査してパッチを認識する。パッチがすべて分析された後で、パッチタイプ分別器によりタイプ１パッチとタイプ２パッチに分離する。第１の圧縮器はタイプ１パッチからのタイプ１ピクセルを圧縮するだけでなく、タイプ２パッチからのタイプ２ピクセルの位置を表す透明ピクセルも圧縮する。第１の圧縮器はタイプ２ピクセルをブロック毎に圧縮する。２つのタイプの圧縮された符号は圧縮ページバッファに個々に格納される。これらは、一緒にしてドキュメントを再現する前に第１および第２の伸張器によりそれぞれ伸張される。
代替実施形態の一つの特徴は、第１のパスにある第１の圧縮器もパッチ認識器として働くものとされることである。第１のパスにおいて、第１の圧縮器はランレングス符号器（ＲＬＥ）をすべてのラスタデータに施す。ＲＬＥが同色ピクセルのランまたは広がりを示すので、パッチはＲＬＥ処理の集積部として認識される。この特徴は、タイプ１の圧縮とパッチ認識の処理を１つに組み合わせるため効果的なものである。
代替実施形態における別の特徴によれば、しきい値は、ブロックがＪＰＥＧ圧縮すべきものであるか否かを決定するために設定される。ブロック（８×８ピクセル）がタイプ２ピクセルの小さな数（すなわちブロックＰ２カウントBrockP2Count）は所定のしきい値よりも小さい）のみをもてば、そのブロックにもＪＰＥＧ圧縮を実効するため費用効率がよくない。その代わり、ブロック内のすべてのデータはタイプ１として処理される。好適な実施形態において、これはインブロックカウンタにより達成される。
本発明の別の態様によれば、圧縮処理中、現在まで達成される圧縮率は各ストリップ（ブロックの列）が終了した後にモニタされ、圧縮パラメータのセットページ全体に必要な圧縮率をえるために適応させて変更される。多数のパラメータは圧縮率に影響を及ぼすもので、これはＪＰＥＧ符号化における量子化マトリックスに適用するＱ＿ファクタパラメータを含む。好適に実施形態では、Ｑ＿ファクタは必要な圧縮率内で最も良い画像品質を維持するように変更することができる。好適な実施形態において、これは適応圧縮率制御装置により達成される。
本発明の別の態様によれば、稀ではあるが伸張処理は必要な圧縮率が得られない場合に実行される。圧縮率に関連するパラメータのセットを調整する。圧縮されたドキュメントは前のパラメータのセットを部分毎使用して復号され、最新のパラメータのセットを使用して伸張されるものである。
本発明の追加の目的，特徴および利点は好適な実施例の以下の記載から理解され、その記載は添付の図面とともになされるものである。
【図面の簡単な説明】
図１は、本発明が適用可能な通常の環境を示す略図的システムブロック図である。
図２は、テキスト，グラフィックおよび画像オブジェクトを含むページの例である。
図３は、本発明の好適な実施形態によるハイブリッド圧縮の装置および方法のブロック図である。
図４ａは、タイプ１のラスタデータを第１のラスタ層に分離した略図的分離図である。
図４ｂは、タイプ２のラスタデータを第２のラスタ層に分離した略図的分離図である。
図５は、本発明の別の好適な実施形態によるハイブリッド圧縮の装置および方法のブロック図である。
図６は、本発明の好適な実施形態によるランレンスグ符号のスケジュールを示す表である。
図７は、本発明の好適な実施形態により、ドキュメントを圧縮するシーケンスを示す流れ図である。
図８ａは、図５および図７に示す第１の圧縮器の第１のパスに取り入れた処理を示す流れ図である。
図８ｂは、図８ａで始まる流れの続きを示した流れ図である。
好適な実施形態の詳細な説明
図１は、本発明が適用可能な通常の環境を示す略図的システムブロック図である。ディスクトップ・パブリッシング・アプリケーションを動作するホストコンピュータまたはワークステーション１０を用いて、最終的に印刷形式にされるかまたは画面に表示されるページ指向ドキュメントを作成する。より詳しく言えば、プロッタ，ファクシミリ機や表示画面等の他のタイプのレンダリングの応用が適用可能であることも理解されているが、プリンタ・アプリケーションを参照して示されている。
ホストコンピュータまたはワークステーション１０で作成したページ指向ドキュメントは通常、テキスト，線画（代替的に「グラフィック」として知られている）および画像のオブジェクトが混合したものである。これらの内容や他の内容はページ記述言語（ＰＤＬ）により特定され、ドキュメントはページ記述ファイル２０として出力される。使用する特定のＰＤＬに特有のＰＤＬインタープリタ３０は、ページ記述ファイルを解釈し、ラスタ化されたページデータのストリーム４０で略式に表示したように、ビットマップ形式でページ毎にドキュメントを作成する。一般的なページメモリ５０は、入力端５２を介してラスタ化されたデータを受け、それを出力端５４を介してプリントエンジン７０と関連づける。プリントエンジン７０は通常ページ毎に印刷をするので、一般的なページメモリ５０はドキュメントの１枚以上のページを収集して、それをプリントエンジン７０に送るように働く。ＰＤＬインタープリタ３０から発生したラスタ化されたデータレートは一般的に、プリントエンジン７０の取入レートとは異なるので、一般的なページメモリ５０もまた、一時的に記憶領域を供給することで２つの異なるレートを和らげるように働く。
先に記載したように、ラスタ化されたデータのページは、記録領域用に数十〜数百メガバイトのメモリを必要とするので、非圧縮形式で格納するには非現実的なものである。このため、一般的なページメモリ５０は、ラスタ化されたページデータのストリーム４０を受けて一度にストリップ４１のような一部を圧縮する圧縮機１００を含む。圧縮されたラスタデータは圧縮されたページバッファ２００に格納される。その後、圧縮されたページバッファ２００から読みだされ、伸張器３００により伸張された後にプリントエンジン７０に供給されて印刷されるドキュメントをページ毎に出力する。このようにして、一般的なページメモリのメモリ要求は、圧縮過程で達成される圧縮率と同じ比率で減少される。
実際、ＰＤＬインタープリタ３０や一般的なページメモリ２００はプリントエンジン７０で動作するプリンタ制御部を形成する。ＰＤＬインタープリタ３０と圧縮器１００と伸張器３００は、専用ハードウェアプロセッサまたはマイクロプロセッサシステム部６０のいずれかで実行される。後者の場合、マイクロプロセッサシステム６０は、マイクロプロセッサ６２と不揮発性読出し専用メモリ（ＲＯＭ）６４とランダムアクセスメモリ（ＲＡＭ）６６を含む。種々の要素の機能は、ＲＯＭ６４に記憶される手順として取り込まれており、マイクロプロセッサ６２により実行可能である。また、ＲＡＭ６６は、ストリップ４１の一時記憶容量としてだけでなく、圧縮されたページバッファ２００としても作用する。
図２は、テキスト，グラフィックおよび画像のオブジェクトを含むページの例である。ここでは１枚のページを対象にして述べているが、ここで言うページとは複数のページを含む可能性がある１つのドキュメントを意味していることを理解されたい。例では、背面にテキスト９２があるページ９０が図示されている。これはまた、ハート形のデザイン９６と、それに重複されている間に挟まれたリボン付のより大きいサイズのハート形のデザインからなる線画９４をもつ。小さいサイズのハート９６はまた、フォト９８用のフレームを形成しており、ページの中央に「ＰＨＯＴＯ」と記載されている。図２は略式的に白黒で記載しているが、種々の物体はカラーの場合もある。
ページ９０がラスタ化される場合、それはピクセルの二次元アレイで表示される。好適な実施形態において、各ピクセルは４バイトで表示され、１バイトは各主要インクカラーＣＭＹＫ用のものである。先に説明したように、これにより各ピクセルが約４０億通りのインクの組み合わせのうちのものを表示できるようになる。
ラスタ化されたデータからの構造の決定およびそれらのタイプ
ページ９０がページ記述ファイルからラスタ化されたページデータに変換されると、ページを含む種々のオブジェクトのタイプおよびソースに関する履歴情報のすべてが失われる。本発明の一つの重要な特徴は、ラスタ化された形式でページを分析でき、異なる構造やそれらのタイプを決定でき、そして各タイプの構造に適切な圧縮処理を施すことができることである。
図３は、本発明の好適な実施形態によるハイブリッド圧縮の装置および方法のブロック図である。再度図１を参照すると、一般的なページメモリ５０は、圧縮器１００と圧縮されたページバッファ２００と伸張器３００を含む。圧縮器１００は入力端５２からラスタ化されたデータをストリップ毎に受けて、作業バッファ１１０へと送る。好適な実施形態において、各ストリップは、ページ全体で８ピクセル高作業ウィンドウになる８行のピクセルである。パッチ認識器１２０は、作業ウィンドウ内のピクセルを行毎（ウィンドウの上から下）を走査し、各行内をピクセル毎（左から右）を走査して、同色の連なるピクセルのパッチを認識する。２つのピクセルは、それらが水平に，垂直にまたは斜めに互いに隣接しているものであれば、連結される。以下に説明するように、好適な実施形態において、ストリップのパッチは認識器１２０が実際に次のストリップを走査した後に認識される。パッチが認識されると、パッチタイプ分別器１３０は、大きさや各パッチにあるピクセル数（「パッチピクセルカウント」）により少なくとも２つのタイプのパッチ間を区別する。
テキストまたは線画の特性は、それらが通常より大きな大きさをもつカラーパッチからなるもので、各々は数ピクセルから数千ピクセルのものまであるパッチピクセルカウントをもつということである。大きいパッチは、タイプ１パッチとして参照される。そこにあるピクセルはタイプ１ピクセルｐ１（ｉ，ｊ）として参照され、ここでの座標（ｉ，ｊ）はページのピクセルアレイのｉ番目の行とｊ番目の列を表示している。大きいサイズカラーパッチの特徴は、１つのピクセルから別のピクセルヘと移る際の活動が低く冗長が高いということであり、一般的に可逆圧縮処理により効果的な圧縮が達成される。
一方で、画像やフォトオブジェクトは主に、より小さい大きさのカラーパッチからなり、各々は通常１ピクセルから数ピクセルの範囲のパッチピクセルカウントをもつ。小さいパッチはまた、タイプ２パッチとして参照され、それにあるピクセルはタイプ２ピクセル，ｐ２（ｉ，ｊ）として参照される。この小さいサイズのカラーパッチの特徴は、１つのピクセルから別のピクセルへと移る際の活動が高く冗長が低いことである。一般的に、パッチサイズが小さくなると、可逆圧縮の効果はかなり下がることになる。実際、パッチがある一定の大きさよりも下に下がると、可逆圧縮は１よりも小さい圧縮率を生じる。これは、符号化に必要なコードがパッチが符号化しようとするパッチよりも多くのスペースを占めるためである。一般的に、画像オブジェクトは、変換コード化処理、特に非可逆式でより効果的に圧縮される。このタイプの圧縮は、いくつかの情報が圧縮・伸張サイクルで失われているため、「非可逆」という用語を用いる。しかしながら、画像オブジェクトに対しては圧縮率が１０：１の場合でも、情報の損失は人間の目からは容易に分からないものである。
タイプ１（大きい）パッチとタイプ２（小さい）パッチの間の境界は、パッチにあるピクセル数，すなわちパッチピクセルカウントが所定の最小カウント（「パッチＰ１ミニマムカウント（PatchP1MinCount）」もしくは「Ｄ１」）と等しいかもしくはそれよりも大きいかどうかでそれぞれ区分けされる。言い換えれば、パッチはそのパッチピクセルカウント≧Ｄ１であればタイプ１で、パッチピクセルカウント＜Ｄ１であればタイプ２ということである。このしきい値数Ｄ１は、ドキュメントに施されるタイプ１とタイプ２の圧縮処理の所望の割合を調整するためのパラメータを供給し、ここでしきい値数がより高ければタイプ２の圧縮割合が大きくなる。パラメータＤ１を予め決定するには、問題となるドキュメント上のグラフィックや画像オブジェクトの予測特性や特定の混合，そして目標となる圧縮率を全体的に達成するために施される特定のタイプの可逆および非可逆圧縮処理を考慮する必要がある。Ｄ１を決定するための１つの現実的な方法は、選択した可逆および非可逆圧縮処理を表示ページに施して、全体的に目標とする圧縮率内で、どのしきい値数が可逆圧縮の割合を最小にする混合を生じるかを検討する。好適な実施形態において、パッチＰ１ミニマムカウント（Ｄ１）の値は、６〜８個の範囲内である。
先に記載したように、作動ウィンドウまたはストリップ８ピクセル高がページ上の上部から底部へとストリップ毎に移動する。しかしながら、パッチが現在のストリップの外側で一部下がることを可能にするために、パッチ内のピクセルの係数は行が十分に考慮されるまで遅延される。つまり、係数は現在のウィンドウを越えて遅延される。パッチサイズの所定のしきい値数はＤ１であるので、極端な場合のパッチはピクセルが列Ｄ１に高く積み重なった場合のものである。したがって、パッチにあるピクセルの記録は、少なくともパッチの上部のピクセルのＤ１行を含むものである。好適な実施形態において、Ｄ１はストリップ高である８と同じ大きさである。したがって、パッチ認識は現在のストリップが走査された後に前のストリップに実行される。
グラフィックおよびフォト層への分離
パッチがパッチ認識器１２０により分析された後、それらはパッチタイプ分別器１３０によりタイプ１とタイプ２のパッチに分離される。一般的に、タイプ１パッチはテキストまたはグラフィックオブジェクトに関するもので、タイプ２パッチは画像オブジェクトに関するものである。元のラスタページは、タイプ１パッチを含む第１のラスタ層とタイプ２パッチを含む第２のラスタ層に分離されるものとして認識される。
図４ａおよび図４ｂはそれぞれ、ラスタデータオブジェクトの第１のラスタ層４１０と第２のラスタ層４２０への略図的分離を示している。第１のラスタ層４１０は、第１の圧縮処理を受けるべきそれらのピクセルを収集し、第２のラスタ層４２０は、第２の圧縮処理を受けるべきそれらのピクセルを収集する。図２に示したページ９０の例を用いると、テキスト９２と線画９４のようなグラッフィクが主な部分となるオブジェクトを示すタイプ１ピクセル，ｐ１（ｉ，ｊ）は第１の層上に保持されているが、ハート形のフレーム９６にある主にフォト９８を示すタイプ２ピクセル，ｐ２（ｉ，ｊ）は第２の層に分離される。同時に、ｐ２（ｉ，ｊ）ピクセルの位置情報は、切り離し４１２を示す透明ピクセルｔ２（ｉ，ｊ）の形状の第１の層に保存されている。したがって、すべてのオブジェクトが元々第１のラスタ層４１０にあるかのようであり、次いで画像オブジェクトに関連するタイプ２パッチは切り離され、第２のラスタ層４２０上に配置される。
第１の圧縮
図３を再度参照すると、タイプ１パッチにあるピクセル，ｐ１（ｉ，ｊ）は第１の圧縮器１５０に送られる。タイプ２パッチにあるピクセル，ｐ２（ｉ，ｊ）は第２の圧縮器１６０に送られる。同時にｐ２（ｉ，ｊ）の座標は透明ピクセルｔ２（ｉ，ｊ）として処理される第１の圧縮器に送られる。第１の圧縮器１５０で実行される好適な可逆圧縮処理はランレングス符号化（ＲＬＥ）であり、ここで色パッチが開始時の色ピクセルと同色のピクセルの１以上のランレングスにより符号化可能である。ＲＬＥ圧縮処理はタイプ１ピクセルｐ１（ｉ，ｊ）と透明ｔ２（ｉ，ｊ）ピクセルの両方に施す。その結果生じる圧縮されたコードは第１の圧縮された層２１０として圧縮されたページバッファ２００に格納される。
第２の圧縮
第２の圧縮器１６０により実行される好適な圧縮処理は、非可逆圧縮スキームであるＪＰＥＧ等のＤＣＴ（離散コサイン変換）である。ＪＰＥＧ圧縮処理は、国際標準化機構の委員会であるジョイント・フォトグラフィック・エキスパート・グループ（Joint Photographic Experts Group）により公表されたものである。ＪＰＥＧ圧縮をタイプ２ピクセルｐ２（ｉ，ｊ）のブロックに施す。第２の圧縮器１６０が圧縮を実行した後、その結果生じる圧縮されたコードは第２の圧縮された層２２０として圧縮されたページバッファ２００内に格納される。
ＪＰＥＧ符号化処理は良く規定されており、次の３つのステップからなる。（１）変換係数を得るための８×８ピクセルブロックのＤＣＴ（離散コサイン変換）（２）係数の量子化（３）量子化した係数のエントロピー符号化（ＪＰＥＧのベースライン・システムに対するデフォルトはハフマン符号化）。
ＪＰＥＧの特徴は、個々のピクセルレベルではなく、８×８ピクセルの集積ブロックで動作する点である。この動作モードに適合するのに、第２のラスタ層４２０は図４ｂに示される８×８ピクセルブロックに略図的に区分される。ブロック４３２等の８×８ピクセルブロックのグリッド４３０（すべて図示せず）をページ全体に重ね合わせる。ページの行（または列）の数が８の倍数でなければ、さらに行（または列）をこの要求を満たすためにページに追加する。このように追加した行（または列）はページの最後の行（または列）の繰り返しである。
図示した例において、タイプ２ピクセルはより小さいハート９６により境界を付けた領域に集まるものとされる。したがって、一般的に３つのタイプのブロックが生じることが分かる。それらは、タイプ２ピクセルをまったくもたないブロック（例えばブロック４３２），部分的にタイプ２ピクセルで満たされたブロック（例えばブロック４４４），そして完全にタイプ２ピクセルで満たされたブロック（例えばブロック４４６）である。
ブロックの各水平行はブロック行４４０のようなブロック行を形成する。標準のＪＰＥＧ動作をブロック行毎、そしてブロック行内毎にページに施す。二次元の離散コサイン変換（ＤＣＴ）は、完全にもしくは部分的にタイプ２ピクセルで満たされたブロックのいずれかのみに施す。したがって、ブロック行はＪＰＥＧ符号化を受けるブロックがまったくないか，いくつかのブロックが受けるか，またはすべてのブロックが受けるものを含むことになる。ＪＰＥＧ符号化の標準的な実施において、現在のブロックのＤＣ係数は前のブロックに対して規定され、したがって圧縮中のブロックシーケンスは伸張中のものと同じものでなければならない。ブロック行内にあるすべてのばらばらなブロックを一つに集めて、ＪＰＥＧ符号化をする前に隣接したひと続きのものを形成する。
好適な実施例において、ページ上のブロックの位置とタイプ情報も符号化されて圧縮された状態で格納される。２ビットコードは現在のブロック行をＪＰＥＧブロックがまったくないもの，いくつかのＪＰＥＧブロックがあるもの，多くのＪＰＥＧブロックがあるものを含むものとして分類し、完全にＪＰＥＧ符号化する。ブロック行内に「いくつかの」ブロックしかＪＰＥＧ符号化されない場合、位置付け情報はブロック行内にあるそれらの位置のリストに続くブロック行のＪＰＥＧブロック数により与えられる。「多くの」ブロックがＪＰＥＧ符号化される場合、ブロック行内のすべてのブロックに対応するビットアレイは、それぞれＪＰＥＧ符号化されているブロックかそうでないブロックかに応じてオンまたはオフにした各ブロックのビットで与えられる。「いくつかの」と「多くの」は、ブロック位置付け情報に必要なビット数を最小にする方法で決定される。
本発明の別の態様によれば、第１および第２のラスタ層４１０，４２０の両方に実行する特別な特徴により２つのタイプのデータ間の任意の境界を取り扱うようにする。
元のラスタデータはピクセルレベルの粒度をもつ。しかしながら、ブロック指向のＪＰＥＧ圧縮はブロックレベルに対するタイプ２データの粒度を粗くし、データ１タイプのものと比較すると領域比率が６４：１とより大きい。２つのタイプの間で粒度が合わないと、タイプ２とタイプ１のデータ間の各境界が不連続になってしまう。
タイプ１パッチ以外でも、第１のラスタ層４１０に元の精細の粒度のタイプ２パッチの位置が透明ピクセルｔ２（ｉ，ｊ）として保存される。以下に示すように、再現されたドキュメントが第１および第２の層を組み合わせることで形成される場合、透明ピクセルは第２の層に対して第１の層に１以上のウィンドウを形成し、ウィンドウにある第２の層のそれらの部分のみを組み合わせて選択する。第１のラスタ層にある透明ウィンドウが任意の形状であるため、すべてのＪＰＥＧ符号化したブロックを再現されたドキュメントにおいて示す必要はない。したがって、ＪＰＥＧ圧縮はピクセルからブロックの粒度までタイプ２のデータを粗くするが、タイプ１とタイプ２データ間の領域での精細の構造は再現されたドキュメントに再度格納される。
第２のラスタ層４２０上に、部分的にタイプ２ピクセルで満たされた参照番号４４４のようなブロックは、タイプ１とタイプ２ピクセルを混合したものを含む元のページ上で個々の領域を覆う。分離後、タイプ１パッチは第１のラスタ層４１０で終了する。タイプ２パッチは、タイプ１パッチで元々占められた空所であるブロックに補足して、部分的に満たされたブロックにおいて第２のラスタ層４２０で終了する。しかしながら、ＤＣＴは規定されていないピクセルがあればブロックに施すことはできない。１つの可能性はタイプ１ピクセルを第１の場所にあるブロックから取り除くことで、空所がなくなる。その欠点は、ＤＣＴを混合したタイプのブロックに施す場合、その構造が不自然かつ不連続なために、圧縮率を下げる傾向をもつ望ましくない周波数が生じたり、本来存在していなかった望ましくない物が生じてしまう。この影響を軽減するために、ＤＣＴを施す前にブロックの補足領域にあるピクセル値はブロックにあるタイプ２ピクセルの平均値で置き換えられる。
最終的な装置の要求に応じて、ＪＰＥＧ符号化されたフォトデータは、ブロック，ブロック行またはページ全体をもとにインターリーブされる。
伸張
ドキュメントの１枚以上のページが圧縮されたプリントバッファ２００に圧縮形式で格納されると、それらは伸張器３００により伸張される段階に入る。伸張器３００は、第１の伸張器３１０と第２の伸張器３２０からなる。
第１の伸張器３１０は第１の圧縮された層２１０に格納された符号化されたデータを伸張してピクセルｐ１（ｉ，ｊ）と略式的に第１のラスタ層４１０に存在する透明ピクセルｔ２（ｉ，ｊ）を回復する。ピクセルｐ１はタイプ１パッチからのものであり、透明ピクセルｔ２は空所を表すタイプ２パッチからくるもので、この空所は第２のラスタ層４２０に除去されたタイプ２パッチから残されたものである。
第２の伸張器３２０は第２の圧縮された層２２０に格納された符号化データを伸張して再現されたピクセルｐ２’（ｉ，ｊ）を回復する。非可逆圧縮スキームにおいて、これらの再現されたピクセルは、第２のラスタ層４２０に略式的に存在するタイプ２パッチを表す元のピクセルｐ２（ｉ，ｊ）と必ずしも同一のものでない。
伸張はブロック行毎に行われ、各ブロック行は８ピクセル行高である。前のブロック行の最後のピクセル行のみが可逆符号化されたデータのコピーと繰り返しに必要である（第１のブロック行の前のピクセル行は、インクがついていない紙に対応する値をもつとされる）。
メモリ空間は完全なブロック行に割り当てられる。再現下のブロック行がＪＰＥＧ符号化ブロックを含めば、第２の伸張器はこれらのブロックをブロック行にあるそれらの位置に復号する。第１の伸張器３１０は符号化されたデータを第１の圧縮された層２１０から行毎そして各行内のピクセル毎に復号する。タイプ１ピクセルｐ１（ｉ，ｊ）はそれらのラスタ位置に復号されるが、透明ピクセルｔ２（ｉ，ｊ）は対応するＪＰＥＧの復号されたピクセルｐ２’（ｉ，ｊ）により置き換えられる。これは、ＡＮＤゲート３３０とＯＲゲート３４０で略式的に表示されている。
好適な代替実施形態
図５は、本発明の別の好適な実施形態によるハイブリッド圧縮の装置および方法を示すブロック図である。２経路にある修正した第１の圧縮器はタイプ１データに可逆ランレングス符号化（ＲＬＥ）を施し、第２の圧縮器１６０はタイプ２データに非可逆ＪＰＥＧ符号化を施す。
図３に示す実施形態と同様に、一般化されたページメモリ５０は圧縮器１００’と，圧縮されたページバッファ２００と，伸張器３００を含む。圧縮１００’はラスタ化されたデータをストリップ毎に入力端５２から作業バッッファ１１０へと受ける。次いでラスタ化されたデータはパッチ認識器１２０’，パッチタイプ分別器１３０’により処理されて、第１の圧縮器１５０’または第２の圧縮器１６０のいずれかへの経路を決定される。
代替実施形態における１つの特徴は、パッチ認識と第１の圧縮器の第１の経路は同じ過程に統合さていることである。第１の圧縮器の第１の経路（またはパッチ認識器１２０’）はＲＬＥをすべてのラスタデータに施す。ＲＬＥが同色のピクセルのランまたは広がりを示すので、パッチはＲＬＥ処理の集積部分として認識される。
その後、パッチタイプ分別器１３０’はタイプ１とタイプ２パッチを整理する。これは、パッチサイズ比較器１３２とインブロック比較器１３４により達成される。パッチサイズ比較器１３２は、各パッチがパッチピクセルカウント≧Ｄ１または＜Ｄ１かどうかでタイプ１とタイプ２を最初に分離する。パッチピクセルカウント≧Ｄ１であれば、ランレングス符号化されたタイプ１ピクセルは第１の圧縮器１５０’の第２の経路により処理されるようにその経路が決定される。これらのタイプ１ピクセルは可逆式で残る。パッチピクセルカウント＜Ｄ１であれば、タイプ２ピクセルは第２の圧縮器１６０への経路が予定される。これらのピクセルは非可逆圧縮の候補となる。
代替実施形態における別の特徴は、ブロックのＪＰＥＧ圧縮用のしきい値を設定することである。ブロック（８×８ピクセル）がタイプ２ピクセルの少ない数のみであれば、そのブロックでＪＰＥＧ圧縮を行うにはコスト効率が良くない。好適な実施形態において、インブロック比較器１３４はさらにタイプ２ピクセルのスクリーニングを実行する。それは、パッチサイズ比較器１３２からのタイプ２ピクセルを受けて、個々のＪＰＥＧブロックにタイプ２ピクセルの数を決定する。ＪＰＥＧブロックにあるすべてのタイプ２ピクセルが結合されたブロックＰ２カウント＜６（ブロックのピクセルのおよそ１０％）になれば、それらタイプ１パッチとして再度分類され、第１の圧縮器１５０’の第２の経路で処理されるように再度方向付けされる。そうでなければ、第１の実施形態と同様に、符号化されていないピクセルｐ２（ｉ，ｊ）の形式のタイプ２パッチは、個々のＪＰＥＧブロックで第２の圧縮器１６０へと経路を決定される。
同様に、残りのタイプ２ピクセルの位置情報は、第１の圧縮器１５０’の第２の経路で圧縮されるように透明ピクセルｔ２（ｉ，ｊ）の形式で経路を決定される。
第１の圧縮器１５０’の第２の経路は本質的に３つのソースからの入力を合わせる。１つはパッチサイズ比較器からの第１経路の符号化されたｐ１（ｉ，ｊ）である。第２のものはインブロック比較器１３４で「タイプ１」ピクセルとして再度方向付けされた最初はタイプ２ピクセルであったものである。第３の入力は第１の圧縮器１５０’の第２の経路で最初にランレングス符号化される透明ピクセルｔ２（ｉ，ｊ）であり、それらその後に他の２つの入力とこれらのピクセルがドキュメントページに表れる順番で統合される。
図６は、本発明の好適な実施形態によるランレングスコードのスケジュールをリストした表である。前と同じように、ピクセルとその色を行ｉ，列ｊのｐ（ｉ，ｊ）で表す。タイプ１ピクセルはｐ１（ｉ，ｊ）となり、タイプ２ピクセルはｐ２（ｉ，ｊ）となり、その位置は透明ピクセルｔ２（ｉ，ｊ）となる。ｐ（ｉ，ｊ）よりも上（行がｉ−１までとそれを含むもの）とその左側（ピクセルの行がｉでｊ−１までとそれを含むもの）のすべてのピクセルはすでに符号化されたものとされている。
可逆符号化または復号過程において、ラスタ化されたドキュメントはインクがない紙で囲まれている。ドキュメントの境界の外側のピクセルを参照すると、その色は「インクなし」と仮定される。グラフィック層は現在の行内にある同色の繰り返しによりランレングス符号化され、前の行の区分または２つの組み合わせをコピーする。特定のコードは、新しいカラー，任意のカラー（３２ビット）または限定されたパレットカラー数（オプション）を規定するように保存される。ランレングスはコード（１のランレングス，カラーの単一ピクセル）に埋め込まれているかもしくは短いランレングスまたは長いランレングスとして明確に規定されているかのいずれかである。
本質的に、各ランレングス符号はランレングスパラメータが続く４ビットタイプコードのシンタックスをもち、単一ピクセルｐ（ｉ，ｊ）から行ｉにおいてピクセルのラン（Ｒ＝ランレングス）に符号化する。ランレングスパラメータは短いものかまたは長いものの場合がある。短いランレングスパラメータは４ビット数である。それは、それぞれ１〜１５の値により２〜１６ピクセルのランを表している（コード化されたパラメータ値は実際のランレングスから１を引いたものである）。１７ピクセルまたはそれよりも長いランは、実際のランレングスの１６ビットが後に続く４ビットの零前置をもつ長いランレングスパラメータにより表示される（このパラメータのすべてのビット数は２０ビットである）。
一般的に、パッチはランレングス符号化中に確認され、その確認は、最初に現在の行（すなわち、行パッチ）に沿ってランを探し、そして前に符号化した領域にある同色の隣接パッチと行パッチとが結合できるものを探すことによりなされる。
より詳しく言えば、ドキュメントは行毎そして各行内でピクセル毎に走査され、一時的にランレングス（可逆）符号化される。各ニューカラーコード（すなわち、ピクセル行にある新しいランの開始）と関連するものは、零から従属の数をもつ行パッチ（すなわち、コピーや繰り返しコードによりニューカラーと関係する同色のピクセル）である。現在のピクセル行にある行パッチが前の符号化された領域（すなわち、行パッチの左側および／または上側）にある同色の別のパッチに隣接する場合、それらは合体されてより大きなパッチを形成する。このように、パッチはパッチ認識器１２０’により認識され、パッチにあるピクセル数の点から見た大きさが決定される。
図７は、本発明の好適な実施形態によるもので、ドキュメントを圧縮するシーケンスを示す流れ図である。この流れ図は図５に示すブロック図を参照すると理解しやすい。
一般的に、ドキュメントはページ毎，ページのストリップ毎，ストリップの行毎，そして行のピクセル毎に処理される。ｉ番目の行とｊ番目の列に位置するピクセルをｐ（ｉ，ｊ）とする。ストリップはｉs＝１〜８とラベル付けした８行をもつ。パッチ認識器１２０’で現在処理されるストリップを「ストリップカレント」とし、現在のストリップの直前に処理されたストリップを「ストリップラスト」とする。
認識からタイプ分離までの符号工程は、８ピクセル行（ＪＰＥＧブロック行高）のストリップのステップにおいてページの上から下まで移動する水平ウィンドウと見ることができる。ウィンドウ高は少なくとも１６行（すなわち、少なくとも２ストリップ高）である。一番上のストリップ（ストリップラスト）が前のステップで一時的に符号化された後、一番上のブロック行にある符号化方法を最終的に混合する決定は、ストリップラストの最後から少なくともパッチＰ１ミニマムカウント（Ｄ１）分遅延されて、ブロック行にあるすべての新しいカラーコードがそれ自体やそれらの従属を保護する機会の供与を保証する。本発明の実施形態においての工程を簡潔にするために、８行（１ストリップ）遅延を選択する。ストリップは、次のストリップの第１の圧縮器の第１の経路の終了地点で決定する。この選択は、パッチＰ１ミニマムカウントが８よりも大きい場合に限り、上述した遅延に従って行うものである。ストリップラストの符号化が終了すれば、現在のストリップカレントはストリップラストになり、ウィンドウは８行下に移動して新しいストリップカレントとなる次の行を曝す。
ステップ５１０において、圧縮すべきドキュメントにシーケンスを開始する。
ステップ５２０において、Ｎ×Ｍのピクセルアレイをもつ新しいラスタページを考慮する。初期段階では、ｉ＝０，ストリップラストのすべてのピクセルはインクなしと設定する。
ステップ５３０において、ラスタデータの新しいストリップ（ストリップカレント）を作業バッファ１１０に読み出す。
ステップ５３２において、ページの行カウントとストリップの行カウントをインクリメントするとき、ページの次の行を考慮する。
ステップ５３４において、第１の列からｊ＝１と設定して処理を開始する。
ステップ５３６において、パッチ認識器１２０’は、現在の行に沿って新しいランを認識することで次の行パッチを見つけ、そしてそれをランの上部または左側の同色の隣接したピクセルとつなげる。本質的に、ストリップカレントに存在しストリップラストから延びている可能性のあるパッチを認識する。認識工程の一環として、パッチのランレングスコードも作られる。パッチ認識のより詳細なシーケンスは図８ａおよび図８ｂと組み合わせて以下に記載される。
ステップ５３８において、次のピクセルがそのページ以外のものでなければ、すなわちｊがＮよりも大きくない場合、ステップ５３６に再度戻って制御を行ない次のランを認識する。行にある最後のピクセルが処理されると、制御はステップ５３９へと進む。
ステップ５３９において、最後の行が処理されるまで、ストリップにある次の行を処理するためにステップ５３２に戻り制御を行う。次いで制御はステップ５４０に進む。
ステップ５４０において、ストリップラストとストリップカレントの両方で認識された各パッチのサイズを利用する。パッチタイプの分別器１３０’は、ストリップラスト内にすべてまたは部分的に存在するパッチのみを検査して、タイプ１パッチおよびタイプ２パッチと符号化または非符号化形式の両方の関連するピクセルを分離する。
ステップ５５０において、第２の経路１５０’にある第１の圧縮器は透明ピクセルを符号化して、それらを符号化したタイプ１ピクセルと合わせる。第２の圧縮器１６０はタイプ２ピクセルをブロック毎に圧縮する。このようにして、ストリップラストにあるラスタデータはタイプ１とタイプ２に分離され、次いで圧縮されて個々に圧縮されたページバッファ２００に格納される。圧縮されたタイプ１データは第１の圧縮された層２１０に格納され、圧縮されたタイプ２データは第２の圧縮された層２２０に格納される。
ステップ５６０において、ストリップラストは圧縮された状態であり、これまで圧縮されたデータの更新された圧縮率（ＣＲ）を計算する。以下により詳細に述べるように、適切な圧縮率制御器１７０はＣＲを目的の圧縮率と比較し、次のストリップ（すなわち、ストリップカレント）で始まる圧縮率に影響を及ぼす第２の圧縮器でのＱ＿ファクタのような圧縮パラメータを適切に調整する。
ステップ５７０において、ページの最後に達しなければ、制御はステップ５７２を介してステップ５３０に戻る。達した場合は、制御はステップ５８０に進む。
ステップ５７２において、ストリップラストにあるデータが圧縮され圧縮ページバッファ２００に格納され、そしてストリップカレントがパッチ認識器を介したことから、処理されたストリップカレントはストリップラストを置き換える。制御はステップ５３０に戻って新しいストリップカレントを処理する。
ステップ５８０において、ストリップカレントとしてページの最後のストリップはパッチ認識器を介する。それが最後のストリップであることから、通常の１ストリップ遅延を行わずにパッチサイズの分別器にかける。
したがって、次のステップ５８２，５８４はそれぞれステップ５４０と５５０に平行するものである。
ステップ５９０において、制御はステップ５２０に戻り、ドキュメントの最後に達するまで新しいページを開始する。最後に達した場合は、圧縮処理がステップ５９２で終了する。
図８ａは、図５および図７に示す第１の圧縮器の第１の経路での処理を示す流れ図である。図８ｂは、図８ａで始まる流れ図の続きである。
ラスタドキュメントは行毎，そして各行内のピクセル毎に走査される。ラスタページの行１〜ｉ−１と行ｉの１〜ｊ−１のピクセルはすでに符号化されたものとする。一般的に、各パッチはニューカラーピクセルと同色の連結したピクセル（「従属」）の数をもつ。ニューカラーとしては規定されていないものですでに符号化したセクションにある各ピクセルｐ（ｉ’，ｊ’）は、ｐ（ｉ’，ｊ’）に続くコピーと繰り返しチェーンの元であるニューカラーピクセルに対するポインタをもつ。行パッチがすでに符号化したパッチと隣接する場合は、すでに符号化されたパッチから参照ピクセル（ＲＥＦ）に対してランレングスコードの１つにより行パッチは既存するパッチと合体される。このＲＥＦピクセルは、ニューカラーピクセル自体でなければ、パッチのニューカラーピクセルを差し示すポインタをもつ。
上述の処理は以下のステップで詳細に記載する。
ステップ６００において、列ｊの右側のランをチェックすることにより、次のパッチに新しい検索を開始する。これによりｒ0が決定され、同色のピクセルのランレングスが位置（ｉ，ｊ）で始まり、ｊ＜ｋ＜ｊ＋ｒ0の関係にあるｐ（ｉ，ｋ）＝ｐ（ｉ，ｊ）のように、行ｉに沿った列ｊの右側に延びる。ランレングスは１ピクセルと同等の小ささからＮ−ｊ＋１と同等の大きさまでのものがあり、ここでＮは行のピクセル数である。
次のステップにおいて、すでに符号化されたドキュメント部分にある隣接ピクセルは現在のランレングス（行パッチ）のカラーを合わせるために検索される。適合箇所が見つかれば、参照ピクセル（ＲＥＦ）がマークされ、現在のランレングスはコピーおよび繰り返しコードの１つを用いて符号化される。
ステップ６１０において、ｐ（ｉ，ｊ）＝ｐ（ｉ−１，ｊ）であれば、コード１１を適用できるが、例えば前の行のセグメントをコピーするよりコンパクトなコード（コード４またはコード５）は初めにチェックされる前には適用されない。それ以外は制御はステップ６２０に進む。ｊ＜ｋ＜ｊ＋ｒの関係をもつｐ（ｉ，ｋ）＝ｐ（ｉ−１，ｋ）とする（明らかに、前の行で合ったシーケンスであるｒは少なくとも１である）。ｒ≧ｒ0であれば、前の行からコピーされたピクセルの数は少なくともｒ0であり、ランレングスＲ＝ｒを更新して、Ｃ＝２と設定する。つまり、ランレングスコードはコード４またはコード５のいずれかであり（Ｃは可変値であり、ステップ６６０においてランレングスがＲ＝１またはＲ＞１かどうかにより偶数または奇数コードのいずれかに後に変換されるものである）、各ピクセルｐ（ｉ，ｋ）はｊ≦ｋ＜ｊ＋ｒの関係のＲＥＦ［ｐ（ｉ，ｋ）］＝ｐ（ｉ−１，ｋ）をもつ。制御はステップ６６０へと進む。
ｒ＜ｒ0の場合、Ｃ＝５（つまりランレングスコードはコード１１となる）、Ｒ＝ｒ0，そしてＲＥＦ＝ｐ（ｉ−１，ｊ）に設定する。制御はステップ６６０に進む。
ステップ６２０において、ｐ（ｉ，ｊ）＝ｐ（ｉ，ｊ−１）であれば、ランの左側のピクセルをチェックし（コード２または３）、そうでなければ制御はステップ６３０に進む。それが同じカラーをもてば、Ｃ＝１，Ｒ＝ｒ0およびＲＥＦ＝ｐ（ｉ，ｊ−１）と設定する。制御はステップ６６０に進む。
ステップ６３０において、ｐ（ｉ，ｊ）＝ｐ（ｉ−１，ｊ−１）であれば、ランの斜め左上側にあるピクセルをチェックし（コード６または７）、そうでなければ制御はステップ６４０に進む。それが同色をもてば、Ｃ＝３，Ｒ＝ｒ0およびＲＥＦ＝ｐ（ｉ−１，ｊ−１）と設定する。制御はステップ６６０に進む。
ステップ６４０において、ランの斜め右上側にあるピクセルをチェックする（コード８または９）。ｊ＋ｒ0≦Ｎであれば（すなわち、列がそのページ内のものである）、次いでｐ（ｉ，ｊ）＝ｐ（ｉ−１，ｊ＋ｒ0）であれば、Ｃ＝４，Ｒ＝ｒ0，そして参照ピクセルＲＥＦ＝ｐ（ｉ−１，ｊ＋ｒ0）と設定し、制御はステップ６６０に進む。そうでなければ、制御はステップ６５０に進む。
ステップ６５０において、ｒ＝ｒ0と設定して、次のサイクルを繰り返すことで前の行（コード１３）で最も遠くで合ったものを見つける。そのサイクルとは、ｐ（ｉ，ｊ）＝ｐ（ｉ−１，ｊ＋ｒ−１）であれば、Ｃ＝６，Ｒ＝ｒ，そしてＲＥＦ＝ｐ（ｉ−１，ｊ＋ｒ−１）と設定し、制御はステップ６６０に進み、そうでなければｒを１デクリメントし、新しい値ｒ＞１であれば、もう一度サイクルを繰り返すものである。そうでなければ、制御はステップ６７０に進む。
ステップ６６０において、ｐ（ｉ，ｊ）で始まる行パッチを見つけて隣接するピクセルと合わせ、Ｒ＝１のときコード＝２×Ｃと設定し、そうでなければ、コード＝２×Ｃ＋１と設定する。参照ピクセルＲＥＦを検証する。それがニューカラーコードでマークされていれば、Ｒはその従属のカウントに加えられる。参照ピクセルＲＥＦがニューカラーでなければ、パッチのニューカラー参照ピクセルへのポインタをもつ。この場合、ＲＥＦはニューカラーで置き換えられ、パッチの従属のカウントは更新される。前の行からピクセルをコピーする場合、それは単一のカラーである必要はないものであるが、このコードよりも下側に下がる各ピクセルはその参照ピクセルに上記処理を施す。制御はステップ６８０に進む。
ステップ６７０において、隣接するピクセルを合わせるための検索がうまくいかなければ、ｐ（ｉ，ｊ）で始まるｒ0ピクセルのランはその付近のものにリンクすることはできない。ｐ（ｉ，ｊ）が予め選択したカラーのパレットからのカラーに合えば、パラメータとして適合カラーのパレットインデックスをもつコード＝１に設定する。そうでなければ、ｐ（ｉ，ｊ）はニューカラーとして規定され、パラメータとしてフルカラー表示をもつコード＝０となる。両者の場合において、Ｒ＝１（１ピクセルのみがこのモードでコード化されたもの）であり、新しく規定された新しいカラーの従属のカウントは零に設定される。制御はステップ６８０に進む。
ステップ６８０において、この点でＲピクセルは第１の圧縮器の第１の経路で符号化され、ピクセルポインタｊはｊ＋Ｒに更新され、そしてＲ＝ｒ0であれば、制御はステップ６００に戻り次の行パッチを処理する。
ある場合において、ランレングスｒ0は完全に使い尽くされていない。ｒ0−Ｒ＞０であれば、この残りはコード＝２または３で現在の行で繰り返しとして符号化され、ランレングスはｒ0−ＲでＲＥＦ＝ｐ（ｉ，ｊ−１）である。また、ステップ６６０でのように、ＲＥＦがニューカラーでない場合、そのポインタはニューカラーに再設定される。最後に、ｊは今度はｒ0−Ｒで再度インクリメントされる。制御はステップ６００に戻り、ここでは次のランレングスの処理が始まる。
このようにして、第１の圧縮器１２０’の第１の経路は一度に１つの行ブロックのドキュメントを符号化する。すべてのパッチは図６にリストした割り当てられたランレングスコードであり、それに応じてそのパッチピクセルカウントが容易に決定される。
適切な圧縮率制御
本発明の別の特徴によれば、圧縮処理中これまで達成された圧縮率は各行ブロックが完了した後にモニタされ、圧縮パラメータのセットは適切に変更されて、ドキュメント全体に必要な圧縮率をえる。
ドキュメントの符号化の開始時に、所望の圧縮率（ＣＲ0）を特定する。いくつかのパラメータを適切に調整することでこの目的を達成する。これらのパラメータは、（ａ）パッチＰ１ミニマムカウントパラメータ，（ｂ）ブロックＰ２ミニマムカウントパラメータおよび（ｃ）ＪＰＥＧ符号化の再に量子化マトリックスに付加されるＱ＿ファクタパラメータを含む。第１の２つのパラメータはタイプ１とタイプ２の圧縮処理の相対比率を制御する。本発明の実施形態において、第１の２つのパラメータを固定する。Ｑ＿ファクタパラメータのみを適切に変更することができ、必要な圧縮率内での最高の画像品質を維持できる。
ＪＰＥＧ符号化において、再現エラーの主な原因はＤＣＴ係数の量子化である。第２の（および通常無視できる）原因は計算時のまるめ誤差である。本発明の実施形態では、８個の値がＱ−ファクタパラメータに割り当てられている（３ビットにコード化された０〜７間のＱ＿レベルにより特定されている）。Ｑ＿ファクタ値が選択される場合、それは元の量子化マトリックスにあるすべての要素を乗算して現在の量子化マトリックスを決定する。Ｑ＿ファクタの値は小さい値から大きい値（０．２５〜２．０）のもので、それらはそれぞれ精細な量子化から粗い量子化，低圧縮率から高圧縮率，または小さい認識エラーから大きな認識エラーになる。
ドキュメントの所望の圧縮率をＣＲ0とすれば、許容間隔を規定する所定の低高制限による境界をもつマージン［ＣＲL，ＣＲH］内で瞬間圧縮率ＣＲを維持しようとする。本発明の実施形態において、間隔の低高制限はそれぞれ、ＣＲL＝１．０５×ＣＲ0および，ＣＲH＝１．１０×ＣＲ0として選択されたものである。
図５は、第２の圧縮器１６０と圧縮されたページバッファ２００と連動する適切な圧縮率制御器１７０を示している。圧縮率制御器は、図１に示すマイクロプロセッサベースの制御器の一部として実施されるのが好ましい。入力端１７２から、ＣＲL，ＣＲHのような圧縮パラメータおよびＱ＿ファクタ値の定義を受ける。好適な実施形態において、それはフィードバックループ１７４を介してＱ＿ファクタを調整することにより、第２の圧縮器１６０の圧縮率を制御するのに役立つ。
ドキュメントの符号化を開始した時、Ｑ＿ファクタは初期値，例えば最も精細な量子化（Ｑ＿レベル＝０）に再設定される。各ブロック行の符号化の最後では、これまで達成された圧縮率ＣＲを決定し、別の入力端１７６を介して適切な圧縮率制御器１７０に供給する。これは、ドキュメントの一番上から最後に符号化されたブロック行の終わりまでの元のデータの部分を表示するのに必要なビット数をこの部分の圧縮された表示にかかるビット数で除算した割合である。
適切な圧縮率制御器での処理はＱ＿ファクタをしかるべく調整する。ＣＲ＜ＣＲLであれば、瞬間圧縮率は十分ではなく、Ｑ＿ファクタが最も高い値でなければ、Ｑ＿ファクタを次に高い値に増やしＱ＿レベルを１インクリメントする。ＣＲ＞ＣＲHであれば、瞬間圧縮率は非可逆符号化で必要なものよりもより多くのエラーを引き起こすので必要なものよりもより高くし、次いでＱ＿ファクタが最も低い値でなければ、Ｑ＿ファクタを次に低い値に下げＱ＿レベルを１デクリメントする。ＣＲが許容間隔の制限内であれば、調整する必要はない。調整がさらに必要になるまで、現在のＱ＿ファクタで圧縮を再開する。
瞬間圧縮率が必要な圧縮率よりも高いものであっても、可逆圧縮をドキュメントのすべての領域に無条件に施すことはない。Ｑ＿ファクタは非常に高品質の再現をわずかに生じるが、写真画像データはそれでもＪＰＥＧ符号化される。
代替処理
本発明の別の態様によれば、必要な圧縮率が獲得されないような稀な場合に再圧縮処理が実行される。上述した符号化処理は一般的にほとんどのドキュメントに対して適度に必要な圧縮率をえる。しかしながら、この目的は最適なパラメータのセットで常に保証されるものではない。この場合、割り当てられた記憶領域はドキュメントの最後に達する前に消費される。この点で、すでに圧縮されたドキュメント部分の元のデータはおそらくほとんど利用できないものである。
圧縮率を上げるために調整可能なパラメータは、パッチＰ１ミニマムカウント，ブロックＰ２ミニマムカウント，およびＱ＿ファクタの値の範囲である。パッチＰ１Ｍｉｎカウントを上げブロックＰ２ミニマムカウントを下げると、可逆符号化されたパッチを非可逆モードにする。Ｑ＿ファクタのパラメータの値を粗くすると、ドキュメントのＪＰＥＧ符号化された部分の圧縮率が上がる。
移動ウィンドウの概念を適用すると、ドキュメントの圧縮部分は（前のパラメータのセットを用いて）次第に復号され、（更新したパラメータのセットを用いて）再圧縮される。可逆／非可逆ピクセルの割当には変化はなく、ＪＰＥＧ符号化されたブロック用にショートカットをとるが、ブロックはより高いＱ＿ファクタで再圧縮されなければならない。このブロックはエントロピー復号され、量子化された係数は古（Ｑ＿ファクタ）／新（Ｑ＿ファクタ）の割合で乗算され、再度エントリピー符号化される。
これまで記載した本発明の種々の態様の実施例は好適な実施形態であるが、当業者にはそれらの変形も可能であることを理解されたい。ここに記載した装置および方法は一般的なラスタデータの圧縮に応用可能である。したがって、本発明は添付の請求の範囲の全範囲内で保護を受けるものである。
【図１】
0004249265.tif 000002
【図２】
0004249265.tif 000003
【図４ａ】
0004249265.tif 000004
【図４ｂ】
0004249265.tif 000005
【図３】
0004249265.tif 000006
【図５】
0004249265.tif 000007
【図６】
0004249265.tif 000008
【図７】
0004249265.tif 000009
【図８ａ】
0004249265.tif 000010
【図８ｂ】
0004249265.tif 000011