(57)【特許請求の範囲】
【請求項１】
必要メモリを満たすように画像を圧縮する方法であって、
前記画像において一様な色を有する領域のサイズを判定するステップと、
領域サイズ閾値の候補値を複数取得するステップと、
前記判定された前記領域のサイズを、前記領域サイズ閾値の前記複数の候補値のうちの少なくとも１つの候補値と比較するステップと、
前記１つの候補値を満たす前記領域を構成するエッジを可逆圧縮した場合の、可逆圧縮後のデータ量を推定するステップと、
推定した前記データ量と前記必要メモリとの比較に基づいて前記複数の候補値から値を前記領域サイズ閾値として選択するステップと、
選択された前記領域サイズ閾値の値を満たす前記領域を構成するエッジを可逆圧縮するステップと、
可逆圧縮される前記領域以外の前記画像の領域を非可逆圧縮するステップと、
を有することを特徴とする方法。
【請求項２】
前記領域の前記サイズは、前記領域の長さと前記領域の最大幅との合計に基づいて判定されることを特徴とする請求項１記載の方法。
【請求項３】
前記必要メモリは、所定の品質レベルで非可逆圧縮画像データを格納するメモリ量を所定のメモリ目標サイズから減算することで規定されることを特徴とする請求項１または２に記載の方法。
【請求項４】
前記候補値から選択された値は、前記必要メモリに最も近く且つ前記必要メモリを満たす推定データ量に対応することを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
サイズが判定される前記領域は、所定のコントラスト閾値を満たさないことを特徴とする請求項１乃至４の何れか１項に記載の方法。
【請求項６】
前記判定するステップよりも前に、前記画像の一部の領域を可逆圧縮し、且つ、前記画像のその他の部分の領域を、複数のパーティションに分割されたデータ構造を持つ圧縮データに非可逆圧縮して、前記複数のパーティションの数が所定の最低品質レベルを上回るかを判定するステップと、
前記判定するステップよりも前に、前記メモリ目標を満たすために前記複数のパーティションのうち最低品質のパーティションを削除するステップとを更に備えることを特徴とする請求項１乃至５の何れか１項に記載の方法。
【請求項７】
必要メモリを満たすように画像を圧縮する方法であって、
第１の方法で圧縮される領域であって前記画像において一様な色を有する領域のサイズの候補値を複数取得するステップと、
前記画像における領域であって前記候補値のうちの１つの候補値を満たす領域を前記第１の方法で圧縮することにより取得される圧縮データのデータ量を推定するステップと、
前記推定されたデータ量及び前記必要メモリに基づいて前記複数の候補値から領域のサイズの値を選択するステップと、
前記画像における領域であって選択された前記値を満たす領域を前記第１の方法で圧縮し、且つ、前記画像における領域であって選択された前記値を満たさない領域を第２の方法で圧縮するステップであって、前記第１の方法は前記第２の方法よりもデータの損失が少ない圧縮方法であるステップと、
を有することを特徴とする方法。
【請求項８】
前記推定するステップは、
一様な色を有する領域であって当該領域のサイズが前記候補値のうちの１つより大きい領域を前記画像において判定することと、
前記判定された領域が前記第１の方法で圧縮される場合に前記判定された領域の圧縮データのデータ量を推定することとを含むことを特徴とする請求項７記載の方法。
【請求項９】
必要メモリとは所定のデータ量であり、
前記必要メモリを満たすように画像を圧縮するとは、前記所定のデータ量以下でメモリに格納されるように画像を圧縮することであることを特徴とする請求項１乃至８の何れか１項に記載の方法。
【請求項１０】
前記１つの候補値を満たす前記領域とは、領域のサイズを示す当該領域の長さおよび最大幅の合計値が当該１つの候補値以上である領域であることを特徴とする請求項１乃至８の何れか１項に記載の方法。
【請求項１１】
メモリ容量を満たすように画像を圧縮する装置であって、
プロセッサと、
メモリとを備え、前記メモリは、
前記画像において一様な色を有する領域のサイズを判定するステップと、
領域サイズ閾値の候補値を複数取得するステップと、
判定された前記領域のサイズを、前記領域サイズ閾値の前記複数の候補値のうちの少なくとも１つの候補値と比較するステップと、
前記１つの候補値を満たす前記領域を構成するエッジを可逆圧縮した場合の、可逆圧縮後のデータ量を推定するステップと、
推定された前記データ量と前記必要メモリとの比較に基づいて前記複数の候補値から値を前記領域サイズ閾値として選択するステップと、
選択された前記領域サイズ閾値の値を満たす前記領域を構成するエッジを可逆圧縮するステップと、
可逆圧縮される前記領域以外の前記画像の領域を非可逆圧縮するステップとを有する方法を実行するように前記プロセッサに指図するように構成されたコンピュータが実行可能なプログラムを格納することを特徴とする装置。
【請求項１２】
必要メモリを満たすように画像を圧縮する装置であって、
プロセッサと、
メモリとを備え、前記メモリは、
第１の方法で圧縮される領域であって前記画像において一様な色を有する領域のサイズの候補値を複数取得するステップと、
前記画像における領域であって前記候補値のうちの１つの候補値を満たす領域を前記第１の方法で圧縮することにより取得される圧縮データのデータ量を推定するステップと、
前記推定されたデータ量及び前記必要メモリに基づいて前記複数の候補値から領域のサイズの値を選択するステップと、
前記画像における領域であって選択された前記値を満たす領域を前記第１の方法で圧縮し、且つ、前記画像における領域であって選択された前記値を満たさない領域を第２の方法で圧縮するステップであって、前記第１の方法は前記第２の方法よりもデータの損失が少ない圧縮方法であるステップとを備える方法を実行するように前記プロセッサに指図するように構成されたコンピュータが実行可能なプログラムを格納することを特徴とする装置。
【請求項１３】
前記プログラムは、
一様な色を有する領域であって当該領域のサイズが前記候補値のうちの１つより大きい領域を前記画像において判定するステップと、
前記判定された領域が前記第１の方法で圧縮される場合に前記判定された領域の圧縮データのデータ量を推定するステップとを実行するように前記プロセッサに指図するように更に構成されることを特徴とする請求項１２記載の装置。
【請求項１４】
必要メモリとは所定のデータ量であり、
前記必要メモリを満たすように画像を圧縮するとは、前記所定のデータ量以下でメモリに格納されるように画像を圧縮することであることを特徴とする請求項１１乃至１３の何れか１項に記載の装置
【請求項１５】
前記１つの候補値を満たす前記領域とは、領域のサイズを示す当該領域の長さおよび最大幅の合計値が当該１つの候補値以上である領域であることを特徴とする請求項１１乃至１４の何れか１項に記載の装置。
【請求項１６】
必要メモリを満たすように画像を圧縮する方法をプロセッサが実行するように構成されたコンピュータが実行可能なプログラムを格納するコンピュータ可読記憶媒体であって、前記方法は、
前記画像において一様な色を有する領域のサイズを判定するステップと、
領域サイズ閾値の候補値を複数取得するステップと、
判定された前記領域のサイズを、前記領域サイズ閾値の前記複数の候補値のうちの少なくとも１つの候補値と比較するステップと、
前記１つの候補値を満たす前記領域を構成するエッジを可逆圧縮した場合の、可逆圧縮後のデータ量を推定するステップと、
前記推定データ量と前記必要メモリとの比較に基づいて前記複数の候補値から値を前記領域サイズ閾値として選択するステップと、
選択された前記領域サイズ閾値の値を満たす前記領域を構成するエッジを可逆圧縮するステップと、
可逆圧縮される前記領域以外の前記画像の領域を非可逆圧縮するステップと、
を有することを特徴とするコンピュータ可読記憶媒体。
【請求項１７】
前記領域の前記サイズは、前記領域の長さと前記領域の最大幅との合計に基づいて判定されることを特徴とする請求項１６記載のコンピュータ可読記憶媒体。
【請求項１８】
前記必要メモリは、所定の品質レベルで非可逆圧縮画像データを格納するメモリ量を所定のメモリ目標サイズから減算することで規定されることを特徴とする請求項１６又は１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記候補値から選択された前記値は、前記必要メモリに最も近く且つ前記必要メモリを満たす推定データ量に対応することを特徴とする請求項１６乃至１８の何れか１項に記載のコンピュータ可読記憶媒体。
【請求項２０】
サイズが判定される前記領域は、所定のコントラスト閾値を満たさないことを特徴とする請求項１６乃至１９の何れか１項に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記判定するステップよりも前に、前記画像の一部の領域を可逆圧縮し、且つ、前記画像のその他の部分の領域を、複数のパーティションに分割されたデータ構造を持つ圧縮データに非可逆圧縮して、前記複数のパーティションの数が所定の最低品質レベルを上回るかを判定するステップと、
前記判定するステップよりも前に、前記メモリ目標を満たすために前記複数のパーティションのうち最低品質のパーティションを削除するステップとを更に有することを特徴とする請求項１６乃至２０の何れか１項に記載のコンピュータ可読記憶媒体。
【請求項２２】
必要メモリを満たすように画像を圧縮する方法をプロセッサが実行するように構成されたコンピュータが実行可能なプログラムを格納するコンピュータ可読記憶媒体であって、前記方法は、
第１の方法で圧縮される領域であって前記画像において一様な色を有する領域のサイズの候補値を複数取得するステップと、
前記画像における領域であって前記候補値のうちの１つの候補値を満たす領域を前記第１の方法で圧縮することにより取得される圧縮データのデータ量を推定するステップと、
前記推定されたデータ量及び前記必要メモリに基づいて前記複数の候補値から領域のサイズの値を選択するステップと、
前記画像における領域であって選択された前記値を満たす領域を前記第１の方法で圧縮し、且つ、前記画像における領域であって選択された前記値を満たさない領域を第２の方法で圧縮するステップであり、前記第１の方法は前記第２の方法よりもデータの損失が少ない圧縮方法であるステップと、
を有することを特徴とするコンピュータ可読記憶媒体。
【請求項２３】
前記プログラムは、
一様な色を有する領域であって当該領域のサイズが前記候補値のうちの１つより大きい領域を前記画像において判定するステップと、
判定された前記領域が前記第１の方法で圧縮される場合に前記判定された領域の圧縮データのデータ量を推定するステップとを実行するように前記プロセッサに指図するように更に構成されることを特徴とする請求項２２記載のコンピュータ可読記憶媒体。
【請求項２４】
必要メモリとは所定のデータ量であり、
前記必要メモリを満たすように画像を圧縮するとは、前記所定のデータ量以下でメモリに格納されるように画像を圧縮することであることを特徴とする請求項１６乃至２３の何れか１項に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記１つの候補値を満たす前記領域とは、領域のサイズを示す当該領域の長さおよび最大幅の合計値が当該１つの候補値以上である領域であることを特徴とする請求項１６乃至２４の何れか１項に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理に関し、特に画像を圧縮する方法及び装置に関する。また本発明は、画像を圧縮するコンピュータプログラムを記録したコンピュータ可読媒体を含むコンピュータプログラムに関する。
【背景技術】
【０００２】
多くのコンピュータシステムは、大量の画像又はビットマップデータを処理する必要がある。そのようなコンピュータシステムは、一般に限られたメモリリソースで動作しているため、処理中に必要なメモリの量を削減するためにデータを圧縮することが多い。
【０００３】
そのようなコンピュータシステムの一例は、ラスタ画像処理システムである。ラスタ画像プロセッサ（ＲＩＰ）は、文書の体裁を示すフォント及びグラフィックスに関するデジタル情報を使用し、その情報をプリンタ等の撮像デバイスが出力できる個々の画素から合成された画像に変換する。当技術分野において、多くの種類のラスタ画像プロセッサが既知である。これらは、フレームメモリＲＩＰ、バンドメモリＲＩＰ及びタイル順序ＲＩＰを含む。
【０００４】
タイルＲＩＰにおいて、ページは正方形のタイルに分割される。各タイルは、ＲＩＰが次のタイルのレンダリングを開始する前に完全にレンダリングされる。出力圧縮器は、タイル順序でデータを受け入れられるという条件で、レンダリングされたタイルが得られ次第そのようなＲＩＰを用いてそのタイルの圧縮を開始してもよい。
【０００５】
圧縮方法を選択する際、圧縮されているデータの種類に適した方法を使用することが重要である。これらの方法は、非可逆又は可逆のいずれかとして大別される。
【０００６】
多くの場合、可逆圧縮アルゴリズム及び非可逆圧縮アルゴリズムの双方を利用するハイブリッド圧縮戦略は、ラスタ画像プロセッサの出力を圧縮するために使用される。ハイブリッド圧縮戦略において、レンダリングビットマップは、平坦な領域及び画像領域にセグメント化される。一般にこれは、適度な圧縮率を維持しつつ高画質を実現する良好な戦略である。しかし、メモリリソースが不十分なシステムにおいて、圧縮を目標メモリサイズ（すなわち、許容可能なメモリ容量）内にするために圧縮戦略を調整する必要がある。
【０００７】
例えば、一般的なＪＰＥＧ圧縮処理において、ＤＣＴ係数は、最終的な符号化画像のサイズを調整するために使用可能な量子化テーブルを使用して量子化される。量子化レベルが高いほど、量子化中により多くの知覚可能な情報が失われる。
【０００８】
ＪＰＥＧを非可逆圧縮アルゴリズムとして採用するハイブリッド戦略は、量子化レベルを調整することでその非可逆圧縮率を調整できる。初期圧縮で目標メモリを満たせない場合、より高い量子化レベルの再圧縮が必要である。しかし、ある特定の量子化レベルを設定することで実現可能なメモリ節約を予測することは困難である。従って、所定の目標メモリに適したレベルに到達するまで量子化レベルを毎回増分して調整することにより、２回以上の再圧縮の試行が必要である。
【０００９】
符号化画像のサイズを調整する別の方法は、最高次係数から開始して所望の目標メモリに到達したら停止する画像のＤＣＴ係数を破棄する方法である。画像の視覚情報の大部分がＤＣ係数及びより低いＡＣ係数内で符号化されるため、これは実現可能である。
【００１０】
再圧縮を必要とせずに高次ＡＣ係数を削除できる画像のスペクトルＪＰＥＧ符号化の方法が使用可能である。ＤＣＴ符号化ブロック毎に、量子化係数は、視覚的重要度が低下していくスペクトルバンド内に格納される。ＤＣＴ係数の次数の増大は、画像の視覚品質に対する影響が減少することに直接関連する。従って、符号化ＤＣＴ係数は、全体的な画質への関連性を減少させるに従ってソートされるスペクトルのパーティションにグループ化できる。この構成において、より高いスペクトルのパーティション及びそれらと関連付けられた符号化ＤＣＴ係数を削除することにより、画質の劣化は必要最低限となりうる。このように、あまり関連しないパーティションを最初に除去することでメモリを適応的に解放できるため、再圧縮の必要はない。また、可逆圧縮データを縮小するために、プロセッサがより積極的な領域セグメント化パラメータを設定することで画像を再セグメント化するため、より多くの領域は、再圧縮処理において画像領域として分類される。
【００１１】
より多くの領域を画像領域として分類する１つの方法は、瞬時圧縮率を許容差内に維持するように圧縮パラメータ及びセグメント化パラメータの双方を動的に調整する。この方法は、全体的な圧縮率が基準を満たすまでストリップ毎に文書を再圧縮する。しかし、ストリップ毎に圧縮パラメータ及びセグメント化パラメータを調整することにより、ページにわたり一貫性のない品質となりうる。最後の全体的な圧縮率ではなく瞬時圧縮率に基づいて再圧縮を判断することにより、時期尚早な最適化につながり且つ不必要に品質を損なう可能性がある。とりわけ、再圧縮する前にそのようなパラメータを調整することで実現可能なメモリ節約を判定することは困難であるため、画像全体は場合によっては２回以上再圧縮される。
【００１２】
別の方法は、ブロックベースのハイブリッド圧縮システムを開示する。そのシステムにより、圧縮率は、ブロックを無地又は画像として分類するために使用された閾値を調整することで制御される。無地ブロックの数と分類閾値の値との間のマッピングが格納される。マッピングにおける各点は、そのような分類閾値が選択される場合に無地として分類可能なブロックの数を示す。この情報は、再圧縮が必要な場合に閾値を調整するために使用される所定の分類閾値に対する圧縮率を大まかに示す。しかし、単に無地ブロックの数を使用するだけでは圧縮率を正確に予測できず、これは、試行された再圧縮が所望の圧縮率を満たせない可能性があることを意味する。再圧縮が所望の圧縮率を満たせない場合にメモリ使用量を削減する他の方法は、画像間引き、拡大した量子化ステップ又はより暗い領域に対する選択的な量子化を含む。これらの他の方法の欠点は、所望の圧縮率を満たすまで再圧縮が行われる場合に実行されなければならない再圧縮の更なる回数に対する要件である。
【発明の概要】
【００１３】
本発明の目的は、既存の構成の１つ以上の欠点を実質的に克服するか、あるいは少なくとも改善することである。
【００１４】
初期圧縮においてメモリ容量（すなわち、目標メモリサイズ）を超える場合に目標の再圧縮サイズを判定し、且つそれに依存してエッジデータ圧縮方法と画像データ圧縮方法との組合せを変更することで目標のメモリ使用量を達成するために１つ以上の圧縮のみを実行することにより、上述の問題に対処しようとするシングルパス再圧縮（ＳＰＲ）構成と呼ばれる構成を開示する。
【００１５】
本発明の一態様によると、必要メモリを満たすメモリに格納される画像を圧縮する方法であって、
画像において一様な色を有する領域のサイズを判定するステップと、
領域サイズ閾値の候補値を取得するステップと、
判定された領域のサイズを領域サイズ閾値の候補値のうちの少なくとも１つと比較するステップと、
データ量を推定して領域サイズ閾値の候補値のうちの少なくとも１つを満たす領域を構成するエッジを符号化するステップと、
推定データ量と必要メモリとの比較に基づいて領域サイズ閾値として候補値から値を選択するステップと、
選択された領域サイズ閾値の値を満たす領域を構成するエッジを可逆圧縮するステップと、
可逆圧縮される領域以外の領域の画像データを非可逆圧縮するステップと、
を備える方法が提供される。
【図面の簡単な説明】
【００１６】
次に、以下の図面を参照して本発明の１つ以上の実施形態を説明する。
【図１】図１は、文書をレンダリング及び印刷する印刷システムを示す概略ブロック図である。
【図２】図２は、クライアントベースのアーキテクチャを有する図１の印刷システムを示す概略ブロック図である。
【図３】図３は、ホストベースのアーキテクチャを有する図１の印刷システムを示す概略ブロック図である。
【図４】図４は、タイルを示す図である。
【図５】図５は、ＳＰＲ構成に従って図２及び図３のシステムにおいて使用されたようなＲＩＰ出力圧縮装置を示す概略ブロック図である。
【図６】図６は、図５に示されたＲＩＰ出力圧縮装置により実行された圧縮処理を示す概略的なフローチャートである。
【図７】図７は、ＳＰＲ構成に従って図５に示されたようなＲＩＰ出力圧縮装置に対する概略ブロック図を示す拡大図である。
【図８】図８は、タイルの走査線（又は行）上の単一の画素ランに対する画素ラン生成処理を示すフローチャートである。
【図９】図９は、画素ランに対するコントラストを算出するために使用された画素の近傍を示す図である。
【図１０】図１０は、結合基準が候補画素ランにより満たされるエッジ形成の例を示す図である。
【図１１】図１１は、エッジ生成器により実行されたエッジ生成処理を示すフローチャートである。
【図１２】図１２は、エッジ生成処理器により生成されたエッジの視覚的重要度を評価する方法を示す概略的なフローチャートである。
【図１３ａ】図１３ａは、エッジメタデータが再圧縮マネージャに格納される方法の１つの表現の一例を示す図である。
【図１３ｂ】図１３ｂは、図１３ａに示した同一の例に対してエッジメタデータが再圧縮マネージャに格納される方法の別の表現を示す図である。
【図１４Ａ】図１４Ａは、非可逆符号化のために符号化ユニットに分割されている画像を示す概略図である。
【図１４Ｂ】図１４Ｂは、８×８ＤＣＴブロックを示す概略図である。
【図１５】図１５は、ＳＰＲ構成に係る非可逆画像圧縮装置の構成を示す概略図である。
【図１６ａ】図１６ａは、ＤＣＴ領域における品質パーティションを示す概略図である。
【図１６ｂ】図１６ｂは、符号化ＤＣＴ係数に対する例示的なパーティショニング方式を示すテーブルである。
【図１７】図１７は、ＳＰＲ構成により圧縮されたタイルの一例を示す図である。
【図１８】図１８は、図６に示された戦略的なメモリ削減ステップを示す概略的なフローチャートである。
【図１９】図１９は、エッジ評価基準を調整するために使用されたメタデータを表す例示的なヒストグラムを示す図である。
【図２０ａ】図２０ａは、初期圧縮後に品質パーティションをメモリ内に格納する方法を示す概略図である。
【図２０ｂ】図２０ｂは、再圧縮後に品質パーティションをメモリ内に格納する方法を示す概略図である。
【図２１Ａ】図２１Ａ及び図２１Ｂは、説明した配列を実行できる汎用コンピュータシステムを形成する概略ブロック図である。
【図２１Ｂ】図２１Ａ及び図２１Ｂは、説明した配列を実行できる汎用コンピュータシステムを形成する概略ブロック図である。
【発明を実施するための形態】
【００１７】
いずれか１つ以上の添付の図面において、同一の図中符号を有するステップ及び特徴又はその両方を参照する。それに反する意図が示されない限り、これらのステップ及び特徴又はその両方は、本明細書のために同一の機能又は動作を有する。
【００１８】
尚、「背景技術」の節及び従来技術の構成に関連する上記の節に含まれた説明は、それぞれの使用法を通じて周知の技術を形成してもよい構成の説明に関連する。そのような説明は本発明者又は本特許出願人による表現として解釈されるべきではなく、そのような構成は当技術分野における一般常識の一部を何らかの形で形成する。
【００１９】
データの再圧縮は多くの計算を必要とするため、画質を最適化しつつ結果として得られる圧縮データがワンパスで必要メモリ（許容可能なメモリ容量）を満たすことを保証する適切な再圧縮パラメータを判定することが有利である。開示されたＳＰＲ構成は、ハイブリッド圧縮システムにおいてそのような再圧縮パラメータを判定する方法に関する問題を解決する。
【００２０】
本明細書で説明する構成の原理は、一般に画像の圧縮に適用可能である。説明を簡単にするため、カラーラスタ画像処理システムにおいて使用された画像の圧縮を参照して構成を説明する。しかし、ＳＰＲ構成を説明した構成に限定することを意図しない。例えばＳＰＲ構成は、メモリリソースが制限される圧縮を利用するあらゆる構成に適用されてもよい。
【００２１】
自然画像の場合、ＪＰＥＧ及びウェーブレット圧縮等の非可逆圧縮アルゴリズムは、視覚的に重要でない情報を破棄することで高圧縮率及び許容可能な視覚品質を実現できる。しかし、情報が破棄される場合、テキスト又はグラフィックス等の色の急激な変化を含む文書には視覚アーチファクトが発生しうる。
【００２２】
可逆圧縮の利点は出力が高品質なことである。色の急激な変化が維持されなければならないテキスト領域及びグラフィック領域とってこれは重要であり、ほとんどの非可逆なアルゴリズムにより生じたアーチファクトの種類を回避できる。解像度及び色深度が向上するにつれ画素ベースの可逆方法では法外にメモリに費用がかかるようになるため、ＪＰＥＧ−ＬＳ等の画素ベースの可逆方法はスケーラビリティが低い。最悪のケースでは、ジョブにより、圧縮サイズは元のサイズより大きくなる。
【００２３】
エッジベースの可逆アルゴリズムは、結合画素の領域を見つけ、各領域の形状を符号化する。多くの画素を含む大きなエリアを単一のエッジのみで示せるため、エッジベースの可逆アルゴリズムは、単色のテキスト領域又はグラフィック領域を非常に効率的に表せる。解像度が向上するときにエッジの数が増加しないため、エッジベースの可逆アルゴリズムは、解像度又はビット深度の向上による影響をあまり受けない。
【００２４】
非可逆方法又は可逆方法だけではＲＩＰ出力の圧縮に対して満足のいく結果を出せない。一般的なＲＩＰ出力は、単一のページにわたり種々の異なる要件を含む。ＲＩＰにより生成された画素データは、テキスト領域、グラフィック領域及び自然画像領域等の多数の異なる領域の種類のうちの１つに属しうる。領域の種類の各々は、種々の特性を有するために種々の圧縮要件を有する。可逆方法と非可逆方法との組合せ又はハイブリッドは、高品質を維持しつつ高圧縮率を実現する１つの方法であり、可逆方法が急激な色の変化を維持する一方で、非可逆方法は多くの色を有する領域を強く圧縮する。
【００２５】
ハイブリッド手法は、可逆符号化されるべき領域及び非可逆符号化されるべき領域を識別する何らかの方法を必要とする。
【００２６】
文字、記号及び他のグリフを形成する画素の領域をテキスト領域として示す。一般に多くのブロック図、チャート及びクリップアートにおいて見つけられる同一の色の大きな領域を形成する画素の領域をグラフィック領域として示す。テキスト領域及びグラフィック領域の双方は、領域毎に単色を含み、急峻なエッジを維持するために正確に規定された領域間の変化を必要とする。通常、可逆符号化はこれらの領域に対して使用される。テキスト領域及びグラフィック領域は、包括的に「平坦な領域」と呼ばれ、本明細書において「第１の領域」とも呼ばれる。
【００２７】
本明細書において「第２の領域」とも呼ばれる画像領域は、グラフィック領域又はテキスト領域の色間の変化よりも平滑に変動する多くの色を含む領域である。一般に写真画像と関連付けられたこれらの領域は、領域内で色が絶えず変化しているために大量のデータを含む。通常、非可逆符号化は画像領域に対して使用される。人間の視覚システムが画像領域と平坦な領域との間の境界を２つの平坦な領域間の境界と殆ど同一に処理するため、画像領域の境界は、依然として正確に保存されなければならない。しかし、人間の視覚システムが画像領域内の色又は輝度の僅かな変動にあまり反応しないため、画像領域内の画素は厳密に維持される必要はない。
【００２８】
図１は、ネットワーク１０４を介してプリンタ１０５に接続されたパーソナルコンピュータ１０１を含む一般的な印刷システム１００を示す概略ブロック図である。図２１Ａ及び図２１Ｂに関して以下に更に詳細に説明するように、パーソナルコンピュータ１０１及びプリンタ１０５の各々は、少なくとも１つのプロセッサユニットと、メモリユニットと、ネットワーク１０４と通信する変復調器（モデム）送受信機デバイスとを備える。プリンタ１０５はプリンタエンジン１０７を更に備える。ネットワーク１０４は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）又はパラレルポート接続を含むあらゆる接続であってもよい。
【００２９】
パーソナルコンピュータ１０１のユーザ２１６８（図２１Ａを参照）がプリンタ１０５を使用して文書２１７１を物理媒体に印刷することを選択する場合、処理には多数の段階がある。第１に、パーソナルコンピュータ１０１上で実行するソフトウェアアプリケーション１０２は、印刷対象のオブジェクトを記述するＡｄｏｂｅ（登録商標）ＰｏｓｔＳｃｒｉｐｔ（登録商標）又はヒューレットパッカードのプリンタコマンド言語（ＰＣＬ）等のページ記述言語（ＰＤＬ）の形式のデータを生成する。第２に、パーソナルコンピュータ１０１上で更に実行するホスト印刷マネージャ１０３は、結果として得られるデータをネットワーク１０４を介してパーソナルコンピュータ１０１からプリンタ１０５に送信する前に、ＰＤＬを処理する。
【００３０】
プリンタ１０５のクライアント印刷マネージャ１０６は、結果として得られるデータがプリンタ１０５のプリンタエンジン１０７に提供される前に、結果として得られるデータを物理媒体に印刷する更なる処理を実行する。
【００３１】
ホスト印刷マネージャ１０３及びクライアント印刷マネージャ１０６により実行された動作は、通常、ジョブ生成と、ラスタ画像プロセシング（ＲＩＰ）と、ＲＩＰ出力圧縮と、ＲＩＰ出力伸張と、ＲＩＰ後処理とから構成される。これらのタスクは、選択されたアーキテクチャの種類に依存して多くの異なる方法でホスト印刷マネージャ１０３とクライアント印刷マネージャ１０６との間で分割される。
【００３２】
ＲＩＰは、一般的な印刷ジョブに存在しうる多くのレベル及びオブジェクトを２次元ラスタ化出力に合成する役割を担う。出力は、選択された解像度でページエリアの画素毎に色値を規定できなければならない。レーザプリンタエンジンのリアルタイム要件のために、ラスタ形式のページ全体は、通常、ＲＩＰ後処理が開始すると印刷のために使用可能である。
【００３３】
ＲＩＰ後処理は、レンダリングデータを使用し、必要なあらゆる最終的な処理を実行し、且つリアルタイムのデータをプリンタエンジン１０７に供給する処理である。印刷処理の全ての段階がリアルタイムのデータの供給を保証できる場合、データが印刷のために適時に一定の速度でシステムを通してパイプライン方式で実行される単純なシングルパスシステムが動作可能である。しかし、レンダリングされる必要のあるソースデータの複雑さが変動するために、ラスタ画像プロセッサは必ずしもリアルタイムで動作するとは限らない。
【００３４】
一般的なレーザプリンタエンジンにおいて、ＲＩＰ後処理は、ページがプリンタ１０５を介して供給される時にリアルタイムで動作しなければならない。リアルタイムで動作しない場合、プリンタエンジン１０７は機能停止し、ページ全体を再度印刷する必要がある。リアルタイムのデータの供給を保証するために、ＲＩＰ出力のページ全体をバッファリングしなければならない。無圧縮画素データのページ全体をバッファリングするのに必要なメモリには法外な費用がかかる。従って、低い費用で十分な性能を実現するためにＲＩＰ出力圧縮が必要である。ＲＩＰ出力の伸張もリアルタイムで実行されなければならない。
【００３５】
ホスト印刷マネージャ１０３又はクライアント印刷マネージャ１０６へのタスクの委譲は、選択されたアーキテクチャの種類に依存する。２つの一般的なアーキテクチャは、クライアントベース又はホストベースのアーキテクチャである。
【００３６】
図２は、処理の大部分がクライアント印刷マネージャ１０６により実行される図１の印刷システムに対するクライアントベースのアーキテクチャを示す概略ブロック図である。パーソナルコンピュータ１０１のユーザ２１６８は、文書２１７１を印刷することを選択し、ホスト印刷マネージャ１０３に送出されるＰＤＬをソフトウェアアプリケーション１０２に作成させる。ホスト印刷マネージャ１０３内のジョブ生成器２０１は、ＰＤＬを使用し、それをクライアント印刷マネージャ１０６のＲＩＰ２０３に供給可能なフォーマットに編成する。データは、ネットワーク１０４を介してジョブ生成器２０１からデータをクライアント印刷マネージャ１０６のジョブメモリ２０２に格納するプリンタ１０５に送出される。次にデータは、ＲＩＰ２０３によりレンダリングされ、ＲＩＰ出力と呼ばれる画素のビットマップを作成する。次にＲＩＰ出力は、ＲＩＰ出力圧縮器２０４により圧縮され、圧縮メモリ２０５に格納される（「圧縮メモリ」という用語は、圧縮データの記憶装置に割り当てられたメモリの部分を示すために使用される）。プリンタエンジン１０７が情報を必要とする前に、データは、ＲＩＰ出力伸張器２０６により無圧縮メモリ２０７に伸張される（「無圧縮メモリ」という用語は、無圧縮データの記憶装置に割り当てられたメモリの部分を示すために使用される）。このデータは、プリンタエンジン１０７により生成された印刷品質を最適化するように多くの方法でポストＲＩＰプロセッサ２０８により変更される。最後に、画素データはプリンタエンジン１０７に供給される。
【００３７】
図３は、処理の大部分がホスト印刷マネージャ１０３にシフトされている図１の印刷システムのホストベースのアーキテクチャを示す概略ブロック図である。パーソナルコンピュータ１０１のユーザ２１６８は、文書２１７１を印刷することを選択し、ホスト印刷マネージャ１０３に送出されるＰＤＬをソフトウェアアプリケーション１０２に作成させる。ジョブ生成器２０１は、ＰＤＬを処理し、それをＲＩＰ２０３に供給可能なフォーマットに編成する。このデータは、ＲＩＰ２０３によりレンダリングされる前にジョブメモリ２０２に格納され、ＲＩＰ出力と呼ばれる画素のビットマップを作成する。ＲＩＰ出力は、ＲＩＰ出力圧縮器２０４により圧縮され、ネットワーク１０４を介して圧縮メモリ２０５に格納されるプリンタ１０５のクライアント印刷マネージャ１０６に送出される。プリンタエンジン１０７が情報を必要とする前に、データは、ＲＩＰ出力伸張器２０６により伸張され、無圧縮メモリ２０７に格納される。そこから、ポストＲＩＰプロセッサ２０８は、プリンタエンジン１０７により生成された印刷品質を最適化するように多くの方法でデータを変更する。最後に、画素データはプリンタエンジン１０７に送出される。
【００３８】
図２１Ａ及び図２１Ｂは、説明した種々のＳＰＲ構成を実施できる汎用コンピュータシステム２１００を示す。図２１Ａ及び図２１Ｂと関連付けられた説明は、主にパーソナルコンピュータ１０１の構造及び機能に関する。しかし、プリンタ１０５の構造及び機能が非常に類似しているため、パーソナルコンピュータの操作方法の説明は、大部分がプリンタに適用されてもよい。
【００３９】
図２１Ａに示されるように、コンピュータシステム２１００は、コンピュータモジュール１０１と、キーボード２１０２、マウスポインタデバイス２１０３、スキャナ２１２６、カメラ２１２７及びマイク２１８０等の入力デバイスと、プリンタ１０５、表示装置２１１４及びスピーカ２１１７を含む出力デバイスとを備える。外部変復調器（モデム）送受信機デバイス２１１６は、接続２１２１を介して通信ネットワーク１０４と通信するためにコンピュータモジュール１０１により使用されてもよい。通信ネットワーク１０４は、インターネット、セルラ電気通信ネットワーク等のワイドエリアネットワーク（ＷＡＮ）又は専用ＷＡＮであってもよい。接続２１２１が電話線である場合、モデム２１１６は従来の「ダイヤルアップ」モデムであってもよい。あるいは、接続２１２１が大容量（例えば、ケーブル）接続である場合、モデム２１１６はブロードバンドモデムであってもよい。無線モデムは、通信ネットワーク１０４に無線接続するために更に使用されてもよい。
【００４０】
コンピュータモジュール１０１は、一般に、少なくとも１つのプロセッサユニット２１０５と、メモリユニット２１０６とを備える。例えばメモリユニット２１０６は、半導体ランダムアクセスメモリ（ＲＡＭ）及び半導体読み出し専用メモリ（ＲＯＭ）を有してもよい。コンピュータモジュール１０１は、ビデオディスプレイ２１１４、スピーカ２１１７及びマイク２１８０に結合するオーディオ／ビデオインタフェース２１０７と、キーボード２１０２、マウス２１０３、スキャナ２１２６、カメラ２１２７及び必要に応じてジョイスティック又は他のヒューマンインタフェースデバイス（不図示）に結合する入出力（Ｉ／Ｏ）インタフェース２１１３と、外部モデム２１１６及びプリンタ１０５用のインタフェース２１０８とを含む複数のＩ／Ｏインタフェースを更に備える。いくつかの実現例において、モデム２１１６は、インタフェース２１０８等のコンピュータモジュール１０１内に組み込まれてもよい。コンピュータモジュール１０１は、接続２１２３を介してコンピュータシステム２１００がローカルエリアネットワーク（ＬＡＮ）として既知であるローカルエリア通信ネットワーク２１２２に接続できるようにするローカルネットワークインタフェース２１１１を更に有する。図２１Ａに示されるように、ローカル通信ネットワーク２１２２は、一般にいわゆる「ファイアウォール」デバイス又は同様の機能性を備えたデバイスを含むワイドネットワーク１０４に接続２１２４を介して更に結合してもよい。ローカルネットワークインタフェース２１１１は、Ｅｔｈｅｒｎｅｔ（登録商標）回路カード、Ｂｌｕｅｔｏｏｔｈ（登録商標）無線装置又はＩＥＥＥ８０２．１１無線装置を備えてもよいが、多数の他の種類のインタフェースがインタフェース２１１１に対して実施されてもよい。
【００４１】
Ｉ／Ｏインタフェース２１０８及び２１１３は、直列接続性及び並列接続性のいずれか一方又は双方を提供してもよい。一般に直列接続性は、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格に従って実現され、対応するＵＳＢコネクタ（不図示）を有する。記憶装置２１０９が提供され、一般に記憶装置２１０９は、ハードディスクドライブ（ＨＤＤ）２１１０を含む。フロッピディスクドライブ及び磁気テープドライブ（不図示）等の他の記憶装置が更に使用されてもよい。オプションのディスクドライブ２１１２は、一般に、データの不揮発性ソースとして動作するように提供される。例えば、光ディスク（例えば、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ（登録商標）ディスク）、ＵＳＢ−ＲＡＭ、取り外し可能な外部ハードドライブ及びフロッピディスク等のポータブルメモリ装置は、システム２１００に対する適切なデータソースとして使用されてもよい。
【００４２】
コンピュータモジュール１０１の構成要素２１０５〜２１１３は、一般に、結果として当業者に既知であるコンピュータシステム２１００の動作の従来のモードから得られる方法で相互接続バス２１０４を介して通信する。例えばプロセッサ２１０５は、接続２１１８を使用してシステムバス２１０４に結合される。同様に、メモリ２１０６及び光ディスクドライブ２１１２は、接続２１１９によりシステムバス２１０４に結合される。説明した構成を実施できるコンピュータの例には、ＩＢＭのＰＣ及び互換性のあるもの、サンスパークステーション、アップルＭａｃ又は同様のコンピュータシステムが含まれる。
【００４３】
ＳＰＲ方法は、コンピュータシステム２１００を使用して実現されてもよい。説明される図６〜図８、図１１及び図１２、並びに図１８の処理は、コンピュータシステム２１００内で実行可能な１つ以上のソフトウェアアプリケーションプログラム２１３３、２１７２として実現されてもよい。ＳＰＲ方法は、コンピュータ１０１上で実行するプログラム２１３３及び／又はプリンタ１０５上で実行するプログラム２１７２を使用して実現されてもよい。特に、ＳＰＲ方法のステップは、コンピュータシステム２１００内で実行されるソフトウェア２１３３、２１７２で命令２１３１（図２１Ｂを参照）により実施される。ソフトウェア命令２１３１は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成されてもよい。ソフトウェアは２つの別個の部分に更に分割されてもよく、第１の部分及び対応するコードモジュールはＳＰＲ方法を実行し、第２の部分及び対応するコードモジュールは、第１の部分とユーザとの間のユーザインタフェースを管理する。
【００４４】
例えばソフトウェアは、以下に説明する記憶装置を含むコンピュータ可読媒体に格納されてもよい。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム２１００にロードされ、コンピュータシステム２１００により実行される。そのようなソフトウェア又はコンピュータプログラムを記録したコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステム２１００においてコンピュータプログラムを使用することにより、ＳＰＲ方法を実行する有利な装置を実施することが好ましい。
【００４５】
一般にソフトウェア２１３３、２１７２は、ＨＤＤ２１１０、並びに／あるいはメモリ２１０６及び／又はメモリ２１７０に格納される。ソフトウェアは、コンピュータ可読媒体からコンピュータシステム２１００にロードされ、コンピュータシステム２１００により実行される。従って、例えばソフトウェア２１３３は、光ディスクドライブ２１１２により読み出される光学的に読み出し可能なディスク記憶媒体（例えば、ＣＤ−ＲＯＭ）２１２５上に格納されてもよい。そのようなソフトウェア又コンピュータプログラムを記録したコンピュータ可読媒体は、コンピュータプログラム製品である。コンピュータシステム２１００においてコンピュータプログラムを使用することにより、ＳＰＲ方法を実行する有利な装置を実施することが好ましい。
【００４６】
いくつかの例において、アプリケーションプログラム２１３３、２１７２は、１つ以上のＣＤ−ＲＯＭ２１２５上でユーザが符号化したものに供給されて対応するドライブ２１１２を介して読み出されてもよいか、あるいはユーザによりネットワーク１０４又は２１２２から読み出されてもよい。また、ソフトウェアは、他のコンピュータ可読媒体からコンピュータシステム２１００に更にロードされる。コンピュータ可読記憶媒体は、実行及び処理又はそのいずれかをするために記録された命令及びデータ又はそのいずれかをコンピュータシステム２１００に提供するあらゆる非一時的な有形記憶媒体を示す。そのような記憶媒体の例には、フロッピディスク、磁気テープ、ＣＤ−ＲＯＭ、ＤＶＤ、Ｂｌｕ−ｒａｙ(tm)  Ｄｉｓｃ、ハードディスクドライブ、ＲＯＭ又は集積回路、ＵＳＢメモリ、光磁気ディスク、あるいは例えばＰＣＭＣＩＡカード等のコンピュータ可読カードが含まれ、そのようなデバイスは、コンピュータモジュール１０１の内部又は外部にある。ソフトウェア、アプリケーションプログラム、命令及びデータ又はそのいずれかをコンピュータモジュール１０１に提供することに更に関係してもよい一時的又は非一時的なコンピュータ可読伝送媒体の例には、無線送信チャネル又は赤外線送信チャネル及び別のコンピュータ又はネットワーク化されたデバイスへのネットワーク接続、並びに電子メール送信及びウェブサイト上等に記録された情報を含むインターネット又はイントラネットが含まれる。
【００４７】
上述したアプリケーションプログラム２１３３、２１７２の第２の部分及び対応するコードモジュールは、ディスプレイ２１１４上にレンダリングされるかあるいは表される１つ以上のグラフィカルユーザインタフェース（ＧＵＩ）を実現するように実行されてもよい。一般にキーボード２１０２及びマウス２１０３を操作することにより、コンピュータシステム２１００及びアプリケーションのユーザは、ＧＵＩと関連付けられたアプリケーションに制御コマンド及び入力又はそのいずれかを提供するように機能的に適応可能な方法でインタフェースを操作してもよい。他の形式の機能的に適応可能なユーザインタフェース、例えばスピーカ２１１７を介して出力された音声プロンプト及びマイク２１８０を介して入力されたユーザボイスコマンドを利用するオーディオインタフェースが更に実現されてもよい。
【００４８】
図２１Ｂは、プロセッサ２１０５及び「メモリ」２１３４を示す詳細な概略ブロック図である。メモリ２１３４は、図２１Ａのコンピュータモジュール１０１がアクセス可能な全てのメモリモジュール（ＨＤＤ２１１０及び半導体メモリ２１０６を含む）の論理的な集約を示す。図２１Ｂに示した構造及び機能は、場合によってはいくつかの変更を加えてプリンタ１０５及びアプリケーションプログラム２１７２の動作にも適用される。
【００４９】
コンピュータモジュール１０１の電源が最初に投入される場合、電源投入時自己診断（ＰＯＳＴ）プログラム２１５０が実行される。一般にＰＯＳＴプログラム２１５０は、図２１Ａの半導体メモリ２１０６のＲＯＭ２１４９に格納される。ソフトウェアを格納するＲＯＭ２１４９等のハードウェアデバイスは、ファームウェアと呼ばれる場合もある。ＰＯＳＴプログラム２１５０は、コンピュータモジュール１０１内のハードウェアを調査して適切に機能することを保証し、一般に、正しく動作するために、一般にＲＯＭ２１４９に更に格納されたプロセッサ２１０５、メモリ２１３４（２１０９、２１０６）及び基本入出力システム（ＢＩＯＳ）ソフトウェアモジュール２１５１をチェックする。ＰＯＳＴプログラム２１５０が正常に実行したら、ＢＩＯＳ２１５１は図２１Ａのハードディスクドライブ２１１０を起動する。ハードディスクドライブ２１１０を起動することにより、ハードディスクドライブ２１１０上に常駐するブートストラップローダプログラム２１５２がプロセッサ２１０５を介して実行する。これにより、オペレーティングシステム２１５３は、ＲＡＭメモリ２１０６にロードされると動作を開始する。オペレーティングシステム２１５３は、プロセッサ２１０５により実行可能なシステムレベルのアプリケーションであり、プロセッサ管理、メモリ管理、デバイス管理、ストレージ管理、ソフトウェアアプリケーションインタフェース及び汎用ユーザインタフェースを含む種々のハイレベルな機能を遂行する。
【００５０】
オペレーティングシステム２１５３は、メモリ２１３４（２１０９、２１０６）を管理し、コンピュータモジュール１０１上で実行する処理又はアプリケーションの各々が別の処理に割り当てられたメモリと衝突することなく実行する十分なメモリを有することを保証する。また、図２１Ａのシステム２１００で使用可能な種々のメモリは、各処理が効率的に実行できるように適切に使用されなければならない。従って、集約メモリ２１３４は、メモリの特定の部分が割り当てられる方法を示すことを意図するのではなく（特に記載されない限り）、コンピュータシステム２１００によりアクセス可能なメモリの概略図及びそのようなメモリが使用される方法を提供する。
【００５１】
図２１Ｂに示されるように、プロセッサ２１０５は、制御ユニット２１３９、演算論理装置（ＡＬＵ）２１４０及びキャッシュメモリと呼ばれる場合もあるローカルメモリ又は内部メモリ２１４８を含む多数の機能モジュールを含む。一般にキャッシュメモリ２１４８は、レジスタ部に複数の記憶レジスタ２１４４〜２１４６を含む。１つ以上の内部バス２１４１は、これらの機能モジュールを機能的に相互接続する。一般にプロセッサ２１０５は、接続２１１８を使用してシステムバス２１０４を介して外部デバイスと通信する１つ以上のインタフェース２１４２を更に有する。メモリ２１３４は、接続２１１９を使用してバス２１０４に結合される。
【００５２】
アプリケーションプログラム２１３３は、条件付き分岐命令及びループ命令を含んでもよい一連の命令２１３１を含む。プログラム２１３３は、プログラム２１３３を実行するために使用されるデータ２１３２を更に含んでもよい。命令２１３１及びデータ２１３２は、それぞれ、記憶場所２１２８、２１２９、２１３０及び２１３５、２１３６、２１３７に格納される。命令２１３１及び記憶場所２１２８〜２１３０の相対的なサイズに依存して、特定の命令は、記憶場所２１３０に示された命令により示されたように単一の記憶場所に格納されてもよい。あるいは、命令は、記憶場所２１２８及び２１２９に示された命令部分により示されたように、各々が別個の記憶場所に格納される多数の部分にセグメント化されてもよい。
【００５３】
一般にプロセッサ２１０５は、そこで実行される命令の集合を与えられる。プロセッサ２１０５は、命令の別の集合を実行することにより自身が反応する後続の入力を待つ。各入力は、入力デバイス２１０２、２１０３の１つ以上により生成されたデータ、ネットワーク１０４、２１０２のうちの一方を介して外部ソースから受信したデータ、記憶装置２１０６、２１０９のうちの一方から検索したデータ又は対応する読み取り装置２１１２に挿入された記憶媒体２１２５から検索したデータを含む多数のソースのうちの１つ以上から提供されてもよく、その全てが図２１Ａに示される。いくつかの例において、命令の集合を実行した結果、データが出力される。実行することは、データ又は変数をメモリ２１３４に格納することを更に含んでもよい。
【００５４】
開示されるＳＰＲ構成は、対応する記憶場所２１５５、２１５６、２１５７においてメモリ２１３４に格納される入力変数２１５４を使用する。ＳＰＲ構成は、対応する記憶場所２１６２、２２６３、２１６４においてメモリ２１３４に格納される出力変数２１６１を生成する。中間変数２１５８は、記憶場所２１５９、２１６０、２１６６及び２１６７に格納されてもよい。
【００５５】
図２１Ｂのプロセッサ２１０５を参照すると、レジスタ２１４４、２１４５、２１４６、演算論理装置（ＡＬＵ）２１４０及び制御ユニット２１３９は、プログラム２１３３を構成する命令集合において命令毎に「取り込み、復号化及び実行」サイクルを実行するのに必要なマイクロ動作のシーケンスを実行するように共に動作する。取り込み、復号化及び実行サイクルの各々は、以下を含む。
【００５６】
（ａ）記憶場所２１２８、２１２９、２１３０からの命令２１３１を取り込むかあるいは読み取る取り込み動作
（ｂ）制御ユニット２１３９が取り込まれた命令を判定する復号化動作
（ｃ）制御ユニット２１３９及び／又はＡＬＵ２１４０が命令を実行する実行動作
その後、次の命令に対する更なる取り込み、復号化及び実行サイクルが実行されてもよい。同様に、制御ユニット２１３９が値を記憶場所２１３２に格納するかあるいは書き込むことにより、格納サイクルが実行されてもよい。
【００５７】
図６〜図８、図１１及び図１２、並びに図１８の処理におけるステップ又はサブ処理の各々は、プログラム２１３３に関連する場合にプログラム２１３３の示された部分に対して命令集合において命令毎に取り込み、復号化及び実行サイクルを実行するように共に動作するプロセッサ２１０５のレジスタ部２１４４、２１４５、２１４７、ＡＬＵ２１４０及び制御ユニット２１３９、並びに且つプログラム２１７２に関連する場合にプリンタ１０５の対応するレジスタ部分、ＡＬＵ、制御ユニット及びプロセッサにより、プログラム２１３３及びプログラム２１７２又はそのいずれかの１つ以上の部分と関連付けられて実行される。
【００５８】
ＳＰＲ方法は、ＳＰＲの機能又はサブ機能を実行する１つ以上のゲートアレイ及び集積回路又はそのいずれか等の専用ハードウェアで代わりに実現されてもよい。そのような専用ハードウェアは、グラフィックプロセッサ、デジタル信号プロセッサ又は１つ以上のマイクロプロセッサ及び連想メモリを更に備えてもよい。ゲートアレイが使用される場合、図６〜図８、図１１及び図１２、並びに図１８の処理フローチャートは、ハードウェア記述言語（ＨＤＬ）形式に変換される。このＨＤＬ記述は、ゲートウェイアレイにダウンロードされてＨＤＬ記述において指定された設計でプログラムを作成するファイルを生成するために配置配線（Ｐ＆Ｒ）ツールにより使用されるデバイスレベルネットリストに変換される。
【００５９】
ＳＰＲ構成は、可逆圧縮と非可逆圧縮との組合せを使用してラスタデータを圧縮する多くの圧縮アルゴリズムと、圧縮後メモリ回復戦略とを含む。開示された例において、ラスタデータは、タイル毎の順序で圧縮アルゴリズムに供給される。しかし、ラスタデータは、例えばストリップ毎の他の形式で提供可能である。
【００６０】
開示されたＳＰＲ構成の例は画像をタイルとして圧縮する。この構成のために、タイルはＮ画素×Ｍ画素のブロックを示すものとし、ページの幅にわたる多数のブロック及びページの長さの下の多数のブロックがある。タイルは、ばらばらであり、ページを範囲に含む。タイルは、ブロック４０２のような画素の８ブロック×８ブロックの整数から構成されることが好ましい。例えば、６００ｄｐｉのプリンタ解像度のＡ４ページの場合、タイルの寸法に対して最適な選択肢は、Ｍ＝Ｎ＝６４である。タイル内の画素（Ｘ、Ｙ）の位置は、タイルの左上の隅と相関関係があり、Ｘ及びＹは整数である。Ｙはタイルの行を指し示し、Ｘは、タイルの行に沿う画素のオフセットを指し示す。タイルの行は、タイルの幅にまたがる画素の集合から構成される。
【００６１】
例えば図４は、６４画素×６４画素を含むタイル４００を示し、最初のタイルの行の最初の画素４０１は画素位置（０、０）を占有し、最初のタイルの行の最後の画素４０３は画素位置（６３、０）を占有する。従って、最後のタイルの行の最後の画素４０４は、位置（６３、６３）を占有する。ラスタタイル順序は、最初のタイルの行から開始して最後の行で終了する連続した順序で、タイルを画素毎のタイルの行×タイルの行で処理することを示す。タイル内の画素値ＰＸ、Ｙは、位置（Ｘ、Ｙ）に配置された画素Ｐの色値を示す。ページの寸法がタイルの整数を含まない場合、ページは必要なサイズに埋め込まれることが好ましい。一般にタイルは、同時に処理されてもよいが１つずつ処理される。
【００６２】
図５は、ハイブリッド圧縮器及び伸張器５０２と、再圧縮マネージャ５０３と、圧縮メモリマネージャ５０４とを備えるＲＩＰ出力圧縮器２０４の機能ブロック図の一例を示す。
【００６３】
ＲＩＰ出力圧縮器２０４は、ＲＩＰ２０３からラスタデータ５０１を入力として受信する。データは、圧縮のためにハイブリッド圧縮器／伸張器５０２に渡される。ハイブリッド圧縮器／伸張器５０２は、適切な圧縮アルゴリズムを各種類の領域に適用できるように、最初にデータを領域にセグメント化し、次に各領域を可逆領域又は非可逆領域として分類することにより、データを圧縮する。指定された圧縮パラメータに従って動作する非可逆圧縮アルゴリズムは、漸進的な画質を維持するようにグループ化されるデータブロックに編成される圧縮メモリマネージャ５０４に渡される符号化ビットストリームを生成する。データブロックの各グループは、スペクトルパーティションを形成する。
【００６４】
全てのパーティションは、自身が示す情報の視覚的重要度に従ってランク付けされる。圧縮メモリマネージャ５０４は、メモリ目標を満たすためにパーティションを削除する必要があるかを更に判定する。圧縮メモリマネージャ５０４は、削除可能なパーティションの数を制限することで最低レベルの画質を維持する。ハイブリッド圧縮処理中、ハイブリッド圧縮器／伸張器５０２は、再圧縮マネージャ５０３により収集及び格納される圧縮データサイズ及び圧縮パラメータに関連するメタデータを更に送出する。
【００６５】
圧縮の初期段階の終了後、圧縮メモリマネージャ５０４は、必要メモリ（すなわち、メモリ容量）及びパーティション削除戦略の制限を与えられた圧縮データの量を削減するために更なる動作を行う必要があるかを判断する。
【００６６】
圧縮メモリマネージャ５０４は、符号化データを縮小するために再圧縮が必要であると判断する場合、最初に必要メモリを満たすためにメモリ使用量を削減する必要のあるメモリの量について再圧縮マネージャ５０３に通知することで再圧縮処理を開始する。再圧縮マネージャ５０３は、目標のメモリ使用量を達成できるように圧縮パラメータを最適に調整する方法を判定するために、自身が圧縮の初期段階から収集したメタデータを使用する。再圧縮マネージャ５０３は、圧縮メモリマネージャ５０４から符号化データを読み出し且つ調整された圧縮パラメータを使用して符号化データを再圧縮する伸張を実行するようにハイブリッド圧縮器／伸張器５０２に命令する。ＲＩＰ出力圧縮器２０４の出力は、必要メモリを満たす圧縮画像データ５０５である。
【００６７】
圧縮の流れ
図６は、ＲＩＰ出力圧縮器２０４を実現する圧縮処理６００の一例を示す概略的なフローチャートである。開示されたＲＩＰ出力圧縮器２０４の例は、６００に示すように、圧縮画像データ５０５の量が２段階処理を適用することで必要メモリを満たすことを保証する。処理の第１の段階は、ステップ６０１で画像データを読み出し、後続のステップ６０２で最初の圧縮を実行する。処理の第２の段階は、圧縮処理全体がステップ６０５で終了する前に、判断ステップ６０４により判定されたように、戦略的なメモリ削減を採用することでステップ６０３で必要に応じて符号化データを縮小する。符号化データの縮小がステップ６０４で判定されたように必要でない場合、処理６０４は「Ｙ」矢印に従ってステップ６０５に進む。
【００６８】
圧縮処理６０４の各段階を以下に更に詳細に説明する。
【００６９】
ハイブリッド圧縮器／伸張器
図７は、ステップ６０２の最初の画像圧縮及び必要に応じてステップ６０３の戦略的なメモリ削減の一部である画像再圧縮のために使用されるハイブリッド圧縮器／伸張器５０２の一例を示す。
【００７０】
入力画像データ５０１又は伸張画像データ７１０は、最初に画素ラン生成器７０１により処理され、同一の色を有する同一の走査線上の連続画素は、画素ラン７０２を形成するように結合される。画素ラン７０２はエッジ生成器７０３により処理され、逐次走査線上で隣接する（図１１に関して以下に更に詳細に説明するような８方向の連続性により）同一の色を有する画素ランは、エッジ対７０４を形成するように共に作成される。各エッジ対７０４は、図１２に関連して以下に更に詳細に説明するエッジ評価処理を使用してエッジ分類器７０５により評価される。認定されたエッジ対又は有効なエッジ対、すなわちエッジ評価基準を満たすエッジ対は、エッジメモリ７１４に保存される。他の（無効な）エッジ対は破棄される。エッジ分類器７０５は、再圧縮のために再圧縮マネージャ５０３により収集されるエッジメタデータを更に送出する。エッジメタデータは、有効なエッジ対及びエッジ評価処理において使用されたエッジ評価基準を説明する情報を含む。エッジメモリ７１４に保存された有効なエッジ対７０４は、可逆圧縮器７０６により圧縮される。無効なエッジは、エッジ分類器７０５により破棄される前にビットマスク生成器７０７に送出される。ビットマスクは、無効なエッジ上に作られ、非可逆圧縮のために選択された領域を示す。従って、非可逆領域は、破棄されたエッジ対により規定された領域である。非可逆領域が非可逆圧縮アルゴリズムに送出される前に、ビットマスクにより示された非可逆領域間の間隔は、非可逆圧縮器７０９により生成された視覚アーチファクトを最小限にするために、バックフィラー７０８により実行されたバックフィリングと呼ばれる処理において同様の色で塗りつぶされる。
【００７１】
可逆圧縮器７０６及び非可逆圧縮器７０９から結果として得られる圧縮データビットストリーム７１２、７１３は、それぞれ、視覚的重要度に従って品質パーティションに編成される圧縮メモリマネージャ５０４に渡される。パーティションは、漸進的な画質を維持するようにランク付けされる。
【００７２】
再圧縮マネージャ５０３と共に圧縮メモリマネージャ５０４は、ステップ６０３で戦略的なメモリ削減を実行する。それにより、必要メモリを満たさない場合に圧縮データを縮小するために、以下の３つの動作のうちの１つを実行する必要がある。
【００７３】
ａ）視覚的重要度が最も低いパーティションから開始する品質パーティションを削除する、あるいは、
ｂ）ハイブリッド圧縮器／伸張器５０２を使用してデータを再圧縮する前にエッジ分類器７０５パラメータを調整し、その後必要に応じて品質分割を削除する、あるいは、
ｃ）可逆圧縮器７０６をバイパスし且つ非可逆圧縮器７０９のみを用いてデータを再圧縮するように圧縮モードを変更し、その後必要に応じて品質パーティションを削除する。
【００７４】
図１８及び図１２をそれぞれ参照して、戦略的なメモリ削減処理６０３及びエッジ評価基準を以下に更に詳細に説明する。
【００７５】
画素ランの生成
生の画素データ５０１は、ＲＩＰ２０３により画素ラン生成器７０１に供給される。本明細書のために、画素データは、タイル毎にＲＩＰ２０３により供給され、タイル内の画素はラスタ順序で供給される。開示された構成において、画素値は、チャネル毎に８ビットの精度で（ビット深度としても既知である）赤色成分（Ｒ）、緑色成分（Ｇ）及び青色成分（Ｂ）（包括的にＲＧＢと呼ぶ）を示す３つのチャネルにより示される。１つのシアン色、１つのマゼンタ色、１つの黄色及び１つの黒色等の他の色表現は、他のビット深度と共に更に利用されてもよい。
【００７６】
タイル内の各画素値は、画素ラスタ順序で画素ラン生成器７０１により調査される。画素ラン生成器７０１の出力は画素ラン７０２である。本明細書のために、画素ランは、完全に１つのタイルの行に含まれ且つほぼ同一の色値を有する一連の連続画素から構成される。ランの色値は同一である、すなわち色間の許容はゼロであることが好ましい。図８を参照して、画素ラン生成の一例を以下に更に詳細に説明する。
【００７７】
図８は、画素ラン生成器７０１により実行された処理８００の一例を示す概略的なフローチャートである。画素ラン生成器７０１は、タイル毎に画素ランを生成する。画素ラン情報は、画素ランに対する少なくとも１つの色値及び画素ランの長さを格納する画素ランレングスカウンタを含む適切なデータ構造に格納される。
【００７８】
図８を参照すると、受信された入力画素は、次の画素取得ステップ８０１で１つずつ読み出される。後続の画素類似性判断ステップ８０２は、現在の画素の色値Ｐ［Ｘ、Ｙ］が前の画素の色値Ｐ［Ｘ−１、Ｙ］と同一又はほぼ同一（図８において記号「＝＝」で示されたように）であるかを判定する。現在の画素の色値Ｐ［Ｘ、Ｙ］が前の画素の色値Ｐ［Ｘ−１、Ｙ］と同一又はほぼ同一である場合、処理８００は、「Ｙ」矢印に従ってステップ８０２からステップ８０３に進む。「線の終了チェック」ステップ８０３において、タイル走査線（タイルの行）が終了したかを判定する。タイル走査線がまだ終了していない場合、処理８００は、「Ｎ」矢印に従ってステップ８０４に進む。画素ランレングスカウンタは「長さ増分」ステップ８０４で増分され、処理８００は、タイル走査線の次の画素が処理される画素取得ステップ８０１に戻る。
【００７９】
現在の画素の色値Ｐ［Ｘ、Ｙ］が前の画素の色値Ｐ［Ｘ−１、Ｙ］と同一ではないことが画素類似性ステップ８０２で判定されるか、あるいはタイル走査線が終了したことがステップ８０３で判定される場合、処理８００はステップ８０５に進む。画素ランは終了し、隣接画素とのコントラストは「コントラスト算出」ステップ８０５で算出される。
【００８０】
コントラストが算出された後、処理８００はステップ８０６に進む。「画素ラン送出」ステップ８０６において、画素ランはエッジ生成器７０３に送出される。これは、画素ラン生成器７０１がタイルの処理中のあらゆる所定の時間において１つの画素ランのみを格納すればよいことを意味する。
【００８１】
コントラスト算出ステップ８０５は、画素ランとその周囲の画素との色差の大きさを使用して画素ランのコントラストを判定する。
【００８２】
図９は、単一の画素Ｘ（図中符号９０１で示される）から構成される画素ランの一例を示す。コントラストは、色チャネル毎の画素ラン９０１とその全ての隣接画素９０２〜９０９との差の大きさの合計として判定可能である。あるいは、コントラストは、隣接画素の部分集合を使用して算出可能である。開示された構成において、コントラスト算出ステップ８０５は、コントラスト＿Ｌ及びコントラスト＿Ｒと呼ばれる２つのコントラスト値を算出する。コントラスト＿Ｌは、画素ラン９０１と画素９０９、すなわちそのすぐ左側の画素との色チャネル毎の色差の大きさの合計として判定される。コントラスト＿Ｒは、画素ラン９０１と画素９０５、すなわちそのすぐ右側の画素との色チャネル毎の色差の大きさの合計として判定される。
【００８３】
エッジ結合基準
図７を参照すると、エッジ生成器７０３は、タイル内にほぼ同一の色値を有する接続画素ランの領域を生成するために画素ラン７０２を受信する。エッジは、そのような接続画素ランの隣接領域間の境界を選抜する。各領域は、境界を完全に示すために１対のエッジを必要とする。「有効化」エッジは領域の左側の輪郭を描き、「無効化」エッジは領域の右側の輪郭を描く。本明細書のために、有効化エッジ及び無効化エッジは、「エッジ対」として既知である。
【００８４】
図１１を参照して以下に更に詳細に説明するエッジ生成器７０３により実行されるエッジ生成処理１１００は、上述したように同一（又はほぼ同一）の色の領域を形成する逐次走査線上で同一の色値の画素ランを互いにリンクする画素対７０４を作成する。新しいエッジ対は、作成時には、継続を妨げられるまでアクティブであると考えられる。現在の走査線上の画素ランがアクティブなエッジ対と重複し且つ結合の基準を満たす場合、エッジ対７０４は拡張される。画素ランがアクティブなエッジ対に結合するために、画素ランは、（ａ）アクティブなエッジ対が現在またがっているエリアと重複し（８方向の連続性を使用して）、（ｂ）エッジ対と関連付けられた色値と同一の色値を有さなければならない。図１０を参照して以下に更に詳細に説明するように、現在の走査線上の画素ランがあらゆる既存のアクティブなエッジ対に結合するか否かを判定しようとする場合、前の走査線上のアクティブなエッジ対を考慮するのが都合がよい。エッジ対７０４は他のエッジ対を交差することを許可されず、タイル内のエッジ対７０４により示される平坦な領域はばらばらである。エッジ対７０４は、２つの方法、すなわち（ｉ）アクティブなエッジが継続を妨げられるように、次のタイル走査線上の画素ランがアクティブなエッジ対にわたりまたがる方法又は（ｉｉ）タイルの最後の走査線が処理されてタイルが終了する方法のうちの１つで継続を妨げられる。万が一エッジの継続が妨げられる場合、「分解されたこと」及びフラグを立てられたことを非アクティブであると考える。
【００８５】
図１０は、結合基準を満たすエッジ対７０４の例１００１、１００２、１００３、１００４、１００５及び１００６を示す。各例において、現在の走査線上の画素ランの色値が前の走査線上のアクティブなエッジ対の色値とほぼ同一である場合、現在の走査線上の画素ランは、前の走査線上のアクティブなエッジ対に結合する。例１００１〜１００６は、アクティブなエッジ対が８方向の連続性の規則を使用して画素ランに接続されるシナリオを示す。
【００８６】
エッジの生成
図１１は、エッジ生成器７０３により実行された処理１１００の一例を示すフローチャートである。エッジ生成器７０３は、タイル全体が処理されるまで処理１１００を実行する。
【００８７】
処理１１００は、画素ラン生成器７０１からの次の画素ランが読み出される画素ラン読み出しステップ１１０１を開始する。画素ランがタイルの第１の走査線上で実行されることが後続の「第１の線チェック」ステップ１１０２で判定される場合、処理１１００は「Ｙ」矢印に従って「エッジ開始」ステップ１１０３に進み、新しいエッジ対が作成される。このエッジ対は、アクティブなものとしてマーク付けされる。エッジ開始ステップ１１０３に後続して、処理１１００は、ステップ１１１２に進んで終了する。
【００８８】
あるいは、画素ランがタイルの画素の後続の行で実行されることが第１の線チェックステップ１１０２で判定される場合、処理１１００は「Ｎ」矢印に従い、画素ランは後続の「連続性チェック」ステップ１１０４で調査され、画素ランがいずれかの既存のアクティブなエッジ対に結合できるか否かを判定する。画素ランが既存のアクティブなエッジ対のいずれにも接続できないことがステップ１１０４で判定される場合、エッジ生成器７０３は、「Ｎ」矢印に従って「エッジ開始」ステップ１１０５に進み、新しいエッジ対が作成されてアクティブに設定され、その後処理１１００は「分解チェック」ステップ１１１０に進む。あるいは、連続性チェックステップ１１０４で画素ランが重複するアクティブなエッジ対に結合できることが判定される場合、エッジ生成器７０３は、「Ｙ」矢印に従って「エッジ拡張」ステップ１１０６に進み、アクティブなエッジ対はその画素ランにより拡張される。エッジ拡張ステップ１１０６に後続して、エッジ生成器７０３は分解チェックステップ１１１０に進む。
【００８９】
分解チェックステップ１１１０において、画素ランがタイル内の過去の他のアクティブなエッジ対を拡張するかが判定されることにより、それらの継続を妨げる。拡張する場合、処理１１００は「Ｙ」矢印に従い、そのような影響を受けたエッジ対は「分解された」ものとしてマーク付けされる。すなわち、そのような影響を受けたエッジ対は、処理１１００がステップ１１１２に進んで終了する前に、後続の「エッジ分解」ステップ１１１１で非アクティブなものとして設定される。あるいは、ステップ１１００で画素ランがアクティブなエッジ対を全く分解しない場合、処理１１００はステップ１１１２に進んで終了する。
【００９０】
本明細書のために、エッジ生成器７０３により生成されたエッジ対７０４は、有効化エッジの開始位置によりｙの増加方向、次にｘの増加方向に順序付けされる。エッジ対７０４に隣接する領域は一様な色を有する。
【００９１】
エッジ評価
エッジ分類器７０５は、エッジ生成器７０３により生成された分解されたエッジ対７０４の視覚的重要度を評価し、エッジ対が有効か否かを判定する。視覚的に重要であると仮定されるエッジ対は有効であると考えられ、有効なエッジ対に隣接する領域は「平坦な」領域であると考えられる。平坦な領域は、領域が一様な色を有することを意味する。平坦な領域を示すエッジ対のみが保存され、可逆圧縮器７０６により可逆圧縮される。有効でないエッジ対により規定された領域は、ビットマスク生成器７０７により生成されたビットマスクによる非可逆領域としてマーク付けされる。有効でないエッジ対は破棄され、マスクされた非可逆領域は、バックフィラー７０８によりバックフィルされ、その後非可逆的圧縮のために非可逆圧縮器７０９に渡される。
【００９２】
説明したＳＰＲ構成において、エッジ分類器７０５は、エッジ対が有効であるか否かを判定するために２つの基準の組合せを使用する。これらの基準は以下の通りである。
【００９３】
（ｉ）エッジ対により規定された領域の最大幅及びエッジ対の長さ（エッジ対により規定された領域の長さ）、並びに
（ｉｉ）エッジ対の視覚的重要度を評価するエッジ対により規定された領域のコントラスト重要度
上述の基準を包括的にエッジ評価基準と呼ぶ。
【００９４】
エッジ対により規定された領域のエリア等の他のエッジ評価基準が更に使用されてもよい。
【００９５】
図１２は、エッジ分類器７０５及びビットマスク生成器７０７により実行されたエッジ評価処理及び後続のビットマスク処理の例１２００を示す概略的なフローチャートである。処理１２００は、エッジ生成器７０３により生成されたエッジ対を受信すると「エッジコントラストチェック」ステップ１２０３から開始し、コントラストによりエッジ対が重要であるかを判定する。開示された構成において、エッジ対に隣接する領域を構成する画素ランのうちの半分以上が、画素ラン生成器７０１により実行されたステップ８０５で算出された結果を使用して特定のコントラスト閾値ＣＴ＿Ｔｈｒｅｓｈｏｌｄに従って高コントラストだと判断される場合、コントラストによりエッジ対は重要であると考えられる。
【００９６】
ステップ１２０３でコントラストにより重要だと判断されたエッジ対は、処理１２００が「Ｙ」矢印に従うようにするため、後続のエッジ保存ステップ１２０４によりエッジメモリ７１４に保存される。エッジ対に保存されたエッジのメタデータは、後続のステップにおいて、処理１２００が「終了」ステップに進んで終了する前にステップ１２０５により格納される再圧縮マネージャ５０３に送出される。
【００９７】
保存されたエッジ対に対して、エッジメタデータは、可逆圧縮器７０６により実行される所定のエントロピー符号化方法を使用してエッジ対を符号化するのに必要なバイト数を判定するために使用可能である。エッジ対が可逆圧縮器７０６によりエントロピー符号化される前に、各エッジ対を符号化するのに必要なバイト数を正確に予測できる。エントロピー符号化方法及びエッジ対符号化サイズ予測を以下に詳細に説明する。
【００９８】
あるいは、エッジ対により規定された領域がコントラストにより重要でないと仮定される場合、処理１２００は、「Ｎ」矢印に従ってステップ１２０３から「サイズ重要度算出」ステップ１２０１に進み、領域サイズ重要度計測値Ｍがエッジ対評価のために算出される。処理１２００は、ｍａｘ＿ｗｉｄｔｈとしてエッジ対データ構造に格納されたエッジ対により規定された領域の最大幅と共に、ｅｄｇｅ＿ｌｅｎｇｔｈとしてエッジ対データ構造に格納されたｙ方向のエッジ対の長さ（エッジ対により規定された領域の長さ）を考慮する。これらの２つの値は、共に加算されてエッジ対に対する領域サイズ重要度計測値Ｍを形成する。一般に、受け入れられるエッジ対に対して、領域サイズ重要度計測値Ｍの値は、タイルの周囲の約８〜１０％を上回るべきである。例えば、６４画素×６４画素の寸法のタイルにおいて、計測値Ｍの受け入れ可能な閾値は２０（画素）となる。従って、後続の「サイズ重要度チェック」ステップ１２０２において、エッジ対に対する領域サイズ重要度計測値Ｍが領域サイズ閾値である特定のエッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄ以上であるかを判定する。エッジ対に対する領域サイズ重要度計測値ＭがＥＳ＿Ｔｈｒｅｓｈｏｌｄ以上であると判定される場合、エッジ対は、サイズにより重要であると仮定され、処理が「Ｙ」矢印に従ってステップ１２０２からステップ１２０４に進んだ後、後続の「エッジ保存」ステップ１２０４で保存される。その後、エッジのメタデータは、処理１２００が終了する前にステップ１２０５により格納される再圧縮マネージャ５０３に送出される。ＥＳ＿Ｔｈｒｅｓｈｏｌｄの候補値は、ＨＤＤ２１１０又はメモリ２１０６等のメモリから取得される。
【００９９】
エッジコントラストチェックステップ１２０３においてコントラストにより重要でなく且つステップ１２０２により評価されたようなＥＳ＿Ｔｈｒｅｓｈｏｌｄを下回る領域サイズ計測値Ｍを有するエッジ対は、視覚的に重要でないと考えられ、処理１２００が「Ｎ」矢印に従ってステップ１２０２からステップ１２０６に進んだ後にエッジマスク更新ステップ１２０６に与えられる。ビットマスク生成器７０７は、エッジマスク更新ステップ１２０６でタイルビットマスクを更新し、視覚的に重要でないエッジ対により取り囲まれた領域の画素位置を反映する。エッジ対データは、エッジ評価処理１２００が「終了」ステップに進んで終了する前に後続のエッジ破棄ステップ１２０８で破棄される。
【０１００】
エッジメタデータ
図１９に示されるように、エッジメタデータは、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄの値をその特定のＥＳ＿Ｔｈｒｅｓｈｏｌｄにおける全ての「有効な」エッジ対に対する符号化データサイズの合計にマッピングするために使用可能である。特に、エッジ対に隣接する領域のサイズがエッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄを上回るかが判定され、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄを上回る領域を構成するエッジ（エッジ対）を可逆符号化するデータ量を推定する。
【０１０１】
このように、所定のエントロピー符号化方法を使用するエッジ対の符号化データサイズは、エッジ対が可逆圧縮器７０６によりエントロピー符号化される前に判定可能である。エントロピー符号化方法を以下に更に詳細に説明する。
【０１０２】
エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄの種々の候補値と全ての「有効な」エッジの符号化データサイズとの間のマッピングは、再圧縮のためにＥＳ＿Ｔｈｒｅｓｈｏｌｄ値を調整する際に全ての可逆符号化エッジ対のメモリ使用量を正確に予測するために使用可能である。
【０１０３】
図１３ａは、再圧縮マネージャ５０３に格納されたエッジメタデータの一例を示し、テーブル１３００は、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄの可能な値の各々を全ての「有効な」エッジ、すなわちステップ１２０３でコントラストにより重要であると評価されるかあるいはステップ１２０２でサイズにより重要であると評価されるエッジを符号化するのに必要な総バイト数にマッピングするために使用される。テーブル１３００は、６４画素×６４画素の寸法のタイルに対する可能なＥＳ＿Ｔｈｒｅｓｈｏｌｄ値の例を示し、テーブルエントリ１３０１は、そのデフォルト値２０を上回るＥＳ＿Ｔｈｒｅｓｈｏｌｄの最小値を示し、テーブルエントリ１３０３は、ＥＳ＿Ｔｈｒｅｓｈｏｌｄの最大値を示す。
【０１０４】
テーブル１３００は、この例において格納されたＥＳ＿Ｔｈｒｅｓｈｏｌｄの全ての候補値を明示的に一覧表示しない。１つの中間ＥＳ＿Ｔｈｒｅｓｈｏｌｄ値をテーブルエントリ１３０２に更に示す。サイズ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄが上昇する時、全ての「有効な」エッジに対する合計の符号化サイズは、サイズ重要度エッジ対の総数の低下のために縮小する。尚、コントラストにより重要であるエッジ対がそれらのサイズ重要度計測値Ｍに関係なくエッジ評価処理１２００に保存されるため、コントラストが重要なエッジ対の数は、ＥＳ＿Ｔｈｒｅｓｈｏｌｄの値が変化する時に変化しない。
【０１０５】
図１３ｂは、テーブル１３００の代わりである再圧縮マネージャ５０３に格納されたエッジメタデータのテーブル１３９０を示す。テーブル１３９０において、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄの全ての可能な値の部分集合のみが選択される。選択されたＥＳ＿Ｔｈｒｅｓｈｏｌｄ値の各々は、その閾値に対応する全ての「有効な」エッジを符号化するのに必要な総バイト数にマッピングされる。エッジ重要度閾値の全ての可能な値の部分集合を選択することにより、再圧縮マネージャ５０３においてエッジメタデータを維持するために必要な記憶装置オーバヘッドは減少し、図１３ｂの例に示されるように、テーブル１３９０のテーブルエントリの数は、テーブル１３００のテーブルエントリの数と比較して減少する。
【０１０６】
可逆圧縮器
全てのエッジ対がエッジ分類器７０５により処理された後、可逆圧縮器７０６は、圧縮メモリマネージャ５０４（図７）に渡される可逆データビットストリーム７１２を作成する可逆圧縮方法を使用してエッジメモリ７１４に格納された視覚的に重要なエッジデータ（すなわち、有効なエッジ対に関する情報）を圧縮する。
【０１０７】
視覚的に重要なエッジ対データ項目の各々は、開示されたＳＰＲ構成において、生の色値、（Ｘ、Ｙ）開始位置、並びに有効化エッジ及び無効化エッジから構成される。各エッジ対に対応する生の色値は、エッジ対がタイルにおいて生成されたのと同一の順序で圧縮データメモリマネージャ５０４に書き込まれる。生の色値の数と視覚的に重要なエッジ対の数との間には、１対１の相関関係がある。
【０１０８】
エッジ対がタイルベースであるため、固定のビット数を、（Ｘ、Ｙ）開始位置を符号化するために使用可能である。同様に、固定のビット数を、エッジ対を構成する画素ランの数を示すｙ方向のエッジ対の長さを符号化するために使用可能である。例えば、６４画素×６４画素のタイルサイズにおいて、開始位置における各座標値およびエッジ対の長さを符号化するためにはそれぞれ６ビット必要である。
【０１０９】
エッジ対における有効化エッジの位置は、一連のｘオフセット値として符号化され、各ｘオフセット値は、前の走査線からの有効化エッジのｘ位置の変化を示す。無効化エッジは、有効化エッジと同一の方法で符号化される。オフセットデータは、ＤＣ係数を符号化するためにＪＰＥＧにより使用されたのと同様のエントロピーベース符号化方法を使用して符号化される。この方法において、各ｘオフセット値は、記号１及び記号２として示された記号対により示される。記号１はオフセット値のビット数を示す。記号２はオフセット値事態を示す。記号１は、所定の適切なハフマンテーブルから生成された可変長符号で符号化される。記号２は、ビットの長さが記号１により示される可変長整数として符号化される。ハフマン符号及び符号長は、外部で特定され、可逆圧縮器７０６及び伸張器７１１の双方に既知である。
【０１１０】
ｘオフセットのあらゆる値に対する記号１及び記号２のサイズが既知であるため、エッジ対の符号化サイズは、エッジ対の全てのｘオフセットに対する記号対のサイズを合計することでエッジ分類器７０５により算出可能である。符号化サイズは、ステップ１５０５で再圧縮マネージャ５０３に送出されたエッジメタデータの一部を形成する。
【０１１１】
タイルが視覚的に重要なエッジ対のみを含む場合、１つの平坦な領域の有効化エッジは、隣接する平坦な領域の無効化エッジとなる。従って、各エッジ対における有効化エッジのみが可逆圧縮器７０６により圧縮される必要があり、エッジ対の符号化サイズは、有効化エッジからのｘオフセットのサイズのみを含む。
【０１１２】
非可逆圧縮及び品質パーティション
各々が一様な色を有する平坦な領域がマスクアウト及びバックフィルされた後、エッジが可逆圧縮される平坦な領域以外のタイルの非可逆領域は、非可逆圧縮器７０９により実行された非可逆圧縮アルゴリズムを使用して圧縮される。ＪＰＥＧは、周波数領域符号化を使用するビットマップ画像の最も普及している非可逆符号化方法の１つである。
【０１１３】
図１４ａ及び図１４ｂは、この処理に関係する図を示す。特に、図１４ａは、非可逆符号化のために符号化ユニットに分割されている画像を示す概略図であり、図１４ｂは、８×８ＤＣＴブロックを示す概略図である。
【０１１４】
一般的なＪＰＥＧ圧縮処理中、ビットマップ画像１４０１は、最初に８画素×８画素の符号化ブロック１４１１に分割される。離散コサイン変換（ＤＣＴ）は、各符号化ブロックに適用されて周波数領域係数１４０５の８×８ブロックを生成し、ＤＣ係数１４１５が位置（０、０）に配置され、ＡＣ係数がジグザグの順序１４２５で配列される。ＡＣ係数の次数が高いほど、それらが符号化するエネルギーの周波数は高くなる。空間領域において、画像内の高周波数エネルギーは高速に変化する値を示し、低周波数エネルギーは低速に変化する勾配を示す。
【０１１５】
ＤＣＴ変換ステップから継続して、６４個のＤＣＴ係数は量子化テーブルを使用して量子化される。一般に量子化テーブルは、高次ＡＣ係数をより高い次数に量子化する。これは、それらが符号化するより高い周波数エネルギーを一般により小さいビット数で示すことができるためである。最後に、量子化ＤＣＴ係数はハフマン符号化される。
【０１１６】
図１５は、上述したようにＪＰＥＧアルゴリズムを実現する非可逆圧縮器７０９の一例を示す機能ブロック図である。最初に、色変換器１５０１は、必要に応じて入力画像データを適切な処理色空間、この場合はＲＧＢに変換する。あるいは、入力画像データはＹＣｂＣｒ色空間にも変換可能である。その後、ＤＣＴユニット１５０２は、ＤＣＴ係数を出力する８ブロック×８ブロックの単位でこれらのＲＧＢデータに対してＤＣＴを実行する。量子化器１５０３は、変更されたＪＰＥＧ量子化テーブル１５１２を使用してＤＣＴ係数の８ブロック×８ブロックを量子化することにより、量子化係数を出力する。量子化器１５０３は、図１４に示したジグザグの順序の走査に従って、低周波数成分から高周波数成分に量子化係数の８ブロック×８ブロックを６４個の１次元量子化係数に更に再配列する。
【０１１７】
量子化係数は、パーティションテーブル１５１４に従ってパーティション区分器１５０４により品質パーティションに分割され、パーティション区分器１５０４は、ハフマンテーブル１５１３及び標準的な既知のハフマン符号化技術を使用して品質パーティションにおける入力１次元データを符号化するハフマン符号器１５０５に品質パーティションを供給する。ハフマン符号器からの出力は、符号化データ、各符号化データの長さ（ビット数により示された「符号長」）及び対応する符号化データが割り当てられるパーティションを示す番号（以下において「パーティション番号」と呼ばれる）である。
【０１１８】
パーティション制御器１５１１は、圧縮メモリマネージャ５０４の一部であり、画像のＤＣＴ係数を破棄し、最高次数の係数から開始し且つ目標メモリを満たすと停止することにより、最後の符号化画像のサイズを制御する。これは、画像の視覚情報の大部分がＤＣ係数及びより低いＡＣ係数内で符号化されるためである。
【０１１９】
図１６ａ及び図１６ｂは、画像のスペクトルＪＰＥＧ符号化の方法を示す。ＤＣＴ符号化ブロック毎に、量子化係数は、低下する視覚品質のスペクトルバンド内に格納される。ＤＣＴ係数の増加次数は、画像の視覚品質に対する影響が減少することに直接関連する。従って、ＤＣＴ係数は、全体的な画質への適合性を低下させることでソートされるスペクトルパーティションにグループ化される。この構成において、より高いスペクトルパーティション及びそれらと関連付けられたＤＣＴ係数を削除することにより、画質は徐々に劣化する。
【０１２０】
図１６ａは、符号化ブロックに対するＤＣＴデータ１６１０のパーティショニングの例を示し、パーティション２及び３を１６１５及び１６２５として示す。
【０１２１】
図１６ｂは、例示的なパーティショニング方式を示すテーブルである。ＳＰＲ構成において、パーティション１は、エッジ対の可逆符号化データのために確保される。
【０１２２】
圧縮メモリマネージャ５０４により判定される「パーティション番号」に基づいて、パーティション制御器１５１１は、「パーティション番号」により示されたパーティションに対応する圧縮データをパーティション済メモリ１５９９に書き込む。このパーティション済メモリはパーティションに構成され（図２０参照）、符号化データの各々は、そのデータのパーティション番号に対応するパーティションに書き込まれる。
【０１２３】
エッジ評価及び領域分類の例
図１７は、ＳＰＲ構成に従ってハイブリッドに圧縮されるタイルの一例を示す。８画素×８画素のタイル１７００を示す。この例のために、ハイブリッド圧縮器／伸張器５０２は３のＥＳ＿Ｔｈｒｅｓｈｏｌｄ値を利用する。画素ラン生成器７０１は、第１の走査線に対して６個の画素ラン１７０１〜１７０６を生成する。エッジ生成処理１１００は、各画素ランを受信し、画素ラン毎に適応的にアクティブなエッジ対を生成する。全ての画素が依然としてアクティブであるため、エッジ対は第１の走査線の処理中に評価されない。簡略化するために、それぞれ、画素ラン１７０３及び１７０６に対するエッジ対１７１５及び１７１６のみを図１７に示す。
【０１２４】
第２の走査線において、画素ラン１７０７は、画素ラン１７０３により開始されたアクティブなエッジ対１７１５を拡張する。第２の走査線上のアクティブなエッジ対１７１５の有効化エッジ及び無効化エッジの双方に対するｘオフセット値は０である。第２の走査線上の画素ラン１７１８、１７１９、１７２０、１７２１及び１７０８は、第１の走査線からのエッジ対を拡張できないため、新しいアクティブなエッジを開始する。画素ラン１７０８がエッジ生成処理１１００により処理された後、画素ラン１７０１、１７０２、１７０４及び１７０５により形成されたエッジ対は、これ以上継続できないために全てエッジ生成処理１１００により分解される。これらの分解されたエッジの各々は、特定のコントラスト閾値ＣＴ＿Ｔｈｒｅｓｈｏｌｄに対して低いコントラスト及び２のサイズ重要度計測値Ｍを有する。従って、エッジ評価処理１１００において、画素ラン１７０１、１７０２、１７０４及び１７０５により形成された４つのエッジ対は破棄される。画素ラン１７０９は、画素ラン１７０６により開始されたエッジ対１７１６を拡張し、画素ラン１７０９を含む。第２の走査線上のエッジ対１７１６に対する有効化エッジ及び無効化エッジに対するｘオフセット値は、それぞれ＋１及び０である。
【０１２５】
エッジ生成処理１１００は、残りのタイルに対して継続する。エッジ対１７１６は、画素ラン１７１２、１７１３及び１７１４と共に拡張される。エッジ対１７１５は、画素ラン１７１１と共に拡張される。１７１７により示された残りの画素は、画像領域の一部であると判断され、それらの対応するエッジ対は破棄される。
【０１２６】
全てのエッジ対が分類された後、タイル１７００は、（ａ）エッジ対１７１５及び１７１６を圧縮する可逆圧縮器７０６、並びに（ｂ）画素１７０４、１７０５及び１７０８等の隣接画素の色でマスクアウト及びバックフィルされた平坦な領域を含む残りのタイルを圧縮する非可逆圧縮器７０９を使用して圧縮される。
【０１２７】
戦略的なメモリ削減
図５及び図６を参照して、ステップ６０２の圧縮の初期段階がハイブリッド圧縮器／伸張器５０２により実行された後、制御は圧縮メモリマネージャ５０４に渡され、メモリ目標を満たすために圧縮データを縮小するように更なる動作を行う必要があるかを判定するステップ６０４が実行される。更なる動作を行う必要がある場合、図１８の概略的なフローチャートに関して以下に更に詳細に説明される戦略的なメモリ削減ステップ６０３が実行される。
【０１２８】
図１８は、図６に示した戦略的なメモリ削減ステップを示す概略的なフローチャートである。戦略的なメモリ削減処理１８００は、圧縮データの量を削減するように圧縮メモリマネージャ５０４により行われた判断によりトリガされる。ステップ１８０１において、圧縮メモリマネージャ５０４は、非可逆圧縮画像データの品質パーティションのデータサイズを調査し、保存されたパーティションの数が所定の最低品質レベルを上回る場合の最少メモリ使用量を判定する。非可逆圧縮画像データの領域における顕著な視覚アーチファクトを回避するために、最低品質レベルを維持する必要がある。このステップは、図１２のエッジ評価処理（例えば、エッジコントラスト判定ステップ１２０３又は領域サイズ判定ステップ１２０１）の前に実行される。少なくとも最低品質レベルを維持するのに必要な品質パーティションの数を保存することで所定のメモリ目標に到達できる場合、処理１８００が「Ｙ」矢印に従ってステップ１８０１からステップ１８０２に進んだ後に以下のステップ１８０２が圧縮メモリマネージャ５０４により実行される。ステップ１８０２は、最も視覚的に重要でないデータを保持するパーティションから開始し、必要メモリを満たすまで、品質パーティションを１つずつ除去する。
【０１２９】
しかし、単に最も視覚的に重要でない品質パーティションのみを除去するだけでは、メモリ使用量を十分に削減できないだろう。すなわち、最低品質レベルは、目標メモリ制限の制約の下で実現不可能なこと場合もある。特に初期ハイブリッド圧縮処理においてデータの僅かな部分しか非可逆圧縮されず、且つデータの大部分が可逆圧縮される場合、このシナリオが発生するだろう。この場合、漸進的な品質パーティション削除は使用できない。メモリ使用量と画質との間の最適なバランスを維持するために、再圧縮の処理において可逆領域から非可逆領域にデータをシフトする戦略が採用される。
【０１３０】
圧縮メモリマネージャ５０４は、最低品質レベルを維持しつつ目標メモリを達成できないことをステップ１８０１で判定する場合、再圧縮マネージャ５０３に制御を渡して画像を再圧縮するように命令する。次に再圧縮マネージャ５０３は、処理１８００が「Ｎ」矢印に従ってステップ１８０１からステップ１８０３に進んだ後、後続のステップ１８０３で初期ハイブリッド圧縮段階中に自身がエッジ分類器７０５から収集したエッジメタデータに基づいて最良の再圧縮モードを判定する。再圧縮マネージャ５０３は、（ａ）より多くの画像データを可逆領域として分類できるように、より積極的なエッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄを含むハイブリッドモードの再圧縮か、（ｂ）エッジの生成及び分類処理をバイパスし、且つ非可逆圧縮器７０９のみを使用する完全な非可逆モードの再圧縮のいずれかを選択する。いずれかの場合においても、再圧縮により、可逆領域における圧縮データを縮小する。品質パーティションを漸進的に削減することで必要メモリを満たせるように、全てのデータ（完全な非可逆再圧縮の場合）又は画像データの十分な部分は非可逆圧縮される。
【０１３１】
データの再圧縮は多くの計算を必要とするため、結果として得られる圧縮データが最適な画質でワンパスで必要メモリを満たすことを保証する適切な再圧縮モードを判定することが有利である。それを実行するために、再圧縮マネージャ５０３は、可逆圧縮データのメモリ使用量を十分に削減することを保証するために、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄに対する適切な値をステップ１８０３で見つけられるかを判定する必要がある。そのような閾値がある場合、再圧縮マネージャ５０３は、処理１８００が「Ｙ」矢印に従ってステップ１８０３からステップ１８０４に進んだ後、後続のステップ１８０４でエッジ重要度閾値を調整して後続のステップ１８０５でハイブリッド再圧縮を開始する。そのような閾値がない場合、完全な非可逆再圧縮処理１８０６は、処理１８００が「Ｎ」矢印に従ってステップ１８０３からステップ１８０６に進んだ後に開始される。開示された構成において、非可逆圧縮アルゴリズムは、ハイブリッド圧縮の一部として使用された同一の非可逆アルゴリズムである。
【０１３２】
図１９を参照して、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄに対する複数の候補値から適切な値を選択する処理を以下に更に詳細に説明する。
【０１３３】
図１９は、エッジ評価基準を調整するために使用されたメタデータを表す例示的なヒストグラムを示す。ヒストグラム１９００は、再圧縮マネージャ５０３により収集された例示的なメタデータテーブル１３９０を示す別の図である。ヒストグラム１９００において、ｘ軸は、この特定の例に対する候補値を示す有効なＥＳ＿Ｔｈｒｅｓｈｏｌｄ（領域サイズ閾値）の範囲を示し、ｙ軸は、各ＥＳ＿Ｔｈｒｅｓｈｏｌｄを満たす全ての有効なエッジを可逆符号化するのに必要な総バイト数を示す。必要メモリの一例は、水平破線１９０５によりマーク付けされ、目標メモリのデータサイズを示す。最大可逆圧縮データサイズ１９０６を目標再圧縮サイズとも呼ぶ。必要メモリである最大可逆圧縮データサイズ１９０６は、所定の最低品質パーティションレベル１９０３で非可逆圧縮画像データを格納するメモリの量を所定の目標メモリサイズ（すなわち、メモリ容量）１９０５から減算することで判定される。
【０１３４】
この特定の例において、推定データ量（ＥＳ＿Ｔｈｒｅｓｈｏｌｄを満たす全ての有効なエッジを符号化する合計バイト）の各々は、必要メモリである最大可逆圧縮データサイズ１９０６と比較される。２６の値（すなわち、図中符号１９０１）でＥＳ＿Ｔｈｒｅｓｈｏｌｄを満たす全ての有効なエッジを符号化する合計バイトは、最低品質レベルで必要メモリを満たせないことが分かる。従って、次の適切と認められる値３２は、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄに対する新しい値として選択される。エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄに対して選択された値に対応する全ての有効なエッジを符号化する合計バイトは、必要メモリである最大可逆圧縮データサイズ１９０６に最近接し且つその範囲内にある。全ての有効なエッジを符号化する合計バイトが、最高の画質を維持し且つ最大可逆圧縮データサイズ１９０６を満たせるため、新しいＥＳ＿Ｔｈｒｅｓｈｏｌｄは、再圧縮処理を開始する前にステップ１８０４でエッジ分類器７０５に渡される。
【０１３５】
選択対象のＥＳ＿Ｔｈｒｅｓｈｏｌｄの適切な値がない場合、すなわち許可された最大可逆圧縮データサイズ１９０６が最大ＥＳ＿Ｔｈｒｅｓｈｏｌｄ値において可逆符号化サイズより小さい場合、完全な非可逆再圧縮ステップ１８０６は、ステップ１８０３で再圧縮マネージャ５０３により選択される。その結果、可逆データに対してゼロの符号化サイズが得られる。
【０１３６】
ここで図１８に戻ると、ステップ１８０５又はステップ１８０６で再圧縮処理が実行され、圧縮データが最初にタイル毎に伸張される。伸張器７１１によりデータの各タイルが伸張された後、再圧縮マネージャ５０３によりステップ１８０３で選択された圧縮モードを使用して、圧縮処理がタイルデータに対して実行される。ハイブリッド再圧縮モードが選択される場合、エッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄに対する新しい値がエッジを分類するために使用されるという点を除いて、圧縮処理は初期ハイブリッド圧縮６０２に類似する。特に、領域サイズ閾値の選択された値を満たす領域を構成するエッジは、可逆圧縮される。また、可逆圧縮される領域以外の領域の画像データは、非可逆圧縮される。完全な非可逆再圧縮が選択される場合、圧縮処理は簡略化される。すなわち、タイルデータを画素ラン生成器７０１に送出するのではなく、伸張されたタイルデータは、完全な非可逆圧縮のために非可逆圧縮器７０９に直接送出される。
【０１３７】
再圧縮処理の終了後、圧縮メモリマネージャ５０４は、後続のステップ１８０７で圧縮データサイズを必要メモリと比較する。圧縮データサイズが目標メモリ制限以下である場合、戦略的なメモリ削減処理は、処理１８００が「Ｙ」矢印に従って終了ステップに進んだ後に終了する。しかし、圧縮データサイズが必要な目標メモリ制限を上回る場合、圧縮メモリマネージャ５０４は、この事実の表示を受信し、処理１８００が「Ｎ」矢印に従ってステップ１８０７からステップ１８０２に進んだ後、ステップ１８０２で目標メモリ制限を満たすまで最も低い品質のパーティションから始まる品質パーティションを削除することでメモリを開放する。このように、最後の出力の画質は、目標メモリ制限を満たすように制御可能に劣化する。目標必要メモリ制限を満たすと、戦略的なメモリ削減処理は終了する。
【０１３８】
パーティション配列
図２０ａ及び図２０ｂは、更なるメモリ使用量削減が必要な場合に漸進的な品質低下が可能であるように、品質パーティション及びパーティション間で情報をシフトするために再圧縮を使用する方法の一例を示す。
【０１３９】
図２０ａは、初期圧縮処理６０２後のパーティション配列の一例を示す概略図である。図２０ｂは、ハイブリッド再圧縮１８０５が実行された戦略的なメモリ削減処理６０３中のパーティション配列の一例を示す概略図である。
【０１４０】
ＳＰＲ構成に従って、圧縮メモリマネージャ５０４は、圧縮画像を含むメモリを複数のヘッダ及びメモリチャンクに配列する。各メモリチャンクは、特定の品質パーティションヘッダに対応する。パーティションヘッダは、パーティション番号、パーティションの長さ（すなわち、サイズ）、連想メモリチャンクにアクセスする方法等のパーティション情報又は必要に応じて他の追加情報を格納する。本発明のために、「メモリチャンク」は、圧縮画像データを格納するために論理的に連続したメモリのチャンクを形成するように共にリンクされた必ずしも連続していなくてもよいメモリの１つ以上のブロックを示す。この例において、チャンク２００１はパーティション１のヘッダ２０９１に対応し、チャンク２００３はパーティション３のヘッダ２０９３に対応する。
【０１４１】
この例において、初期圧縮処理６０２中、可逆圧縮器７０６により生成された全ての可逆符号化エッジがパーティション１に属するメモリチャンクＢ１（すなわち、２００１）に格納され、且つ非可逆圧縮器７０９により生成された符号化ＤＣＴデータがパーティション２（すなわち、２００２）〜パーティション１１（すなわち、２０１１）のそれぞれのメモリチャンク内の各パーティションに格納されるように、圧縮メモリマネージャ５０４は品質パーティションを編成する。パーティション番号と対応するＤＣＴデータとの間の例示的なマッピングを図１６ｂに示す。
【０１４２】
図２０ｂは、ハイブリッド再圧縮ステップ１８０５の結果得られたパーティション配列を示す。ステップ１８０５によるハイブリッド再圧縮の間、圧縮メモリマネージャ５０４は、画像が伸張される時に２００１〜２０１１の全てのメモリチャンクを開放する。メモリは、再圧縮ステップ１８０５が進行するにつれて新しい符号化データを格納するように再び割り当てられる。ハイブリッド再圧縮の例の間、圧縮メモリマネージャ５０４は、可逆圧縮器７０６から新たに符号化されたエッジデータを格納するようにパーティション１に対するメモリチャンクＢ１'（すなわち、２０５１）を割り当てる。しかし、再圧縮エッジデータを格納するのに必要なメモリチャンクＢ１'のサイズは、初期ハイブリッド圧縮６０２から符号化されたエッジデータを格納するために使用されたメモリチャンクＢ１（すなわち、２００１）の元のサイズよりかなり小さい。これは、ハイブリッド再圧縮の前にステップ１８０４でエッジ重要度閾値ＥＳ＿Ｔｈｒｅｓｈｏｌｄが調整され、有効なエッジの数の削減につながり、削減された有効なエッジの数が調整された有効なエッジ又は調整された有効なエッジ対と呼ばれるためである。しかし、可逆符号化エッジの数を削減する結果、調整された無効のエッジ又は調整された無効のエッジ対と呼ばれる同様に増加した無効なエッジの数によって可逆圧縮器７０９から符号化されたＤＣＴデータを格納するパーティションは、潜在的に拡大する。この例において示されるように、可逆領域の符号化ＤＣ値を格納するために使用されるパーティション２に対して割り当てられたメモリチャンクＢ２'（すなわち、２０５２）は、この時点でハイブリッド再圧縮前のメモリチャンクＢ２（すなわち、２００２）の元のサイズより僅かに大きい。同様に、パーティション３〜パーティション１１の全ての非可逆パーティションは、非可逆領域の数の増加のために潜在的に僅かにより多くのメモリ使用量を得るだろう。可逆符号化によるメモリ使用量の削減は、非可逆符号化によるメモリ使用量の増加を上回ってよい。また、この例において示されるように、非可逆圧縮されるより多くのエッジをシフトすることにより、視覚的にあまり重要でないＤＣＴデータを含むパーティションを削除することでより多くのメモリを解放でき、可逆符号化エッジ及びより重要なＤＣＴデータをより低いパーティションに格納するために必要なメモリがより少ないため、画質を著しく低下させずに目標必要メモリ制限を達成できる。
【０１４３】
極端に制約されたメモリ条件下で、戦略的なメモリ削減処理６０３は、ステップ１８０６において完全な非可逆モードで画像を再圧縮することを選択する。この場合、パーティション１はゼロサイズを有し、全ての画像データは、必要メモリを満たすまでステップ１８０２で漸進的に削除可能なパーティション２〜パーティション１１において符号化される。
【０１４４】
説明した構成は、コンピュータ産業及びデータ処理産業に適用可能である。
【０１４５】
上記の記述は本発明のいくつかの実施形態のみを説明し、本発明の範囲及び趣旨から逸脱せずに、いくつかの実施形態に対して変形及び／又は変更を行なうことができる。実施形態は、限定するものではなく例示するものである。
【図１】
0005607779.tif 000002
【図２】
0005607779.tif 000003
【図３】
0005607779.tif 000004
【図４】
0005607779.tif 000005
【図５】
0005607779.tif 000006
【図６】
0005607779.tif 000007
【図７】
0005607779.tif 000008
【図８】
0005607779.tif 000009
【図９】
0005607779.tif 000010
【図１０】
0005607779.tif 000011
【図１１】
0005607779.tif 000012
【図１２】
0005607779.tif 000013
【図１３ａ】
0005607779.tif 000014
【図１３ｂ】
0005607779.tif 000015
【図１４Ａ】
0005607779.tif 000016
【図１４Ｂ】
0005607779.tif 000017
【図１５】
0005607779.tif 000018
【図１６ａ】
0005607779.tif 000019
【図１６ｂ】
0005607779.tif 000020
【図１７】
0005607779.tif 000021
【図１８】
0005607779.tif 000022
【図１９】
0005607779.tif 000023
【図２０ａ】
0005607779.tif 000024
【図２０ｂ】
0005607779.tif 000025
【図２１Ａ】
0005607779.tif 000026
【図２１Ｂ】
0005607779.tif 000027