本明細書において方法とシステムの例を記述する。さらに他の例示的な実施形態もしくは特徴を利用することは可能であり、また本明細書において提示されている主題の範囲から逸脱することなく、その他の変更をすることは可能である。以下の詳細な説明において、本明細書の一部を構成する添付図面を参照する。
本明細書において記載されている例示的な実施形態は限定することを意図するものではない。したがって、本明細書において全般的に記載され、そして図面に示されているように、本開示の諸態様は、様々に異なる構成に配置し、置き換え、結合し、分割し、および設計することができ、そしてそれらの全てが本明細書において明瞭に熟慮されている。
1.概要
印刷技術は、白黒画像のみを生成する簡単なドットマトリクスベースの出力デバイスから高解像度のカラー画像を生成することができる今日の進歩したレーザーベースの印刷デバイスへと過去30年以上にわたって発展してきた。それと共に、最近の印刷デバイスは、また、複写機、スキャナ、およびファックス機として機能することも可能である。そうするため、印刷デバイスは、印刷しもしくはファックスするために待ち行列に入れられ、またはスキャンされた多くの電子文書を格納することができる場合がある。従って、多くの印刷デバイスは、例えば、一つ以上の処理部、データ記憶部、および入出力インターフェースを含むことが可能なコンピューティング・デバイスの特殊な形態である。
住宅、企業もしくは別の種類の場所で使用されるかどうかにかかわらず、印刷デバイスは、他のいろいろなコンピューティング・デバイスと通信可能に接続可能な共有のリソースであり得る。従って、状況によっては、多くのコンピューティング・デバイスが印刷のために電子文書を印刷デバイスに送信する場合があるので、印刷デバイスに対する格納の要求はかなり高い場合がある。一般的には、印刷デバイスは、早着順に一度に一つの電子文書を印刷、コピー、ファックス、および/またはスキャンすることがよくある。従って、印刷デバイスは、ともすれば、処理されるのを待っている多数の電子文書を格納する場合がある。さらに、背景画像もしくはロゴを含むオーバーレイ文書等、電子文書によっては、いつまでも印刷デバイスに格納される場合がある。というのは、当該電子文書は、複数の印刷ジョブに利用される可能性があるためである。
データの記憶装置(例えば、ランダム・アクセス・メモリ(RAM)、固体メモリ、ハードドライブメモリ、および/またはフラッシュメモリなどのメモリ)のコストは高価である可能性があるので、印刷デバイスのデータ記憶の要求量を低減するために、格納された電子文書を圧縮することは有益であろう。それと共に、電子文書によっては、印刷デバイスからコンピューティング・デバイスへ、および/またはコンピューティング・デバイスから印刷デバイスへ転送される場合があるので、当該電子文書を圧縮することにより、より早く転送することができ、しかもネットワーク容量の使用をより少なくすることができる。
さらに、印刷ジョブは多量な場合がある(例えば、印刷ジョブは、何百ページも含む一つ以上の電子文書を含む場合がある)ので、順番を待っている印刷ジョブを圧縮することにより、各ジョブが印刷される前の短期格納スペースを節約する。これに加えて、ユーザは、後日印刷するために印刷ジョブを長期の記憶装置に保管したい場合がある。従って、印刷ジョブを圧縮することにより、より多くの印刷ジョブを保管できる可能性がある。さらに、大量の印刷ジョブを長期の記憶装置に格納したり検索する動作は手間がかかる可能性があるが、前記印刷ジョブを圧縮して大きさを小さくすることにより早めることが可能である。
2.印刷デバイスの例
図1は例示の印刷デバイス100を示す。印刷デバイス100は、部分的におよび/または全体的に格納されている電子文書を各種の物理的出力媒体に印刷するよう構成することができる。当該出力媒体は、いろいろな大きさと種類の紙、オーバーヘッドプロジェクタ用透明フィルムなどを含むが、これらに限定はされない。印刷デバイス100は、同義的に「プリンター」と呼んでもよい。
印刷デバイス100は、パーソナルコンピュータ、サーバーデバイス、プリンタサーバー等のコンピューティング・デバイスに対するローカル周辺装置としての働きをする場合がある。この場合、印刷デバイス100は、シリアルポートケーブル、パラレルポートケーブル、ユニバーサルシリアルバス(USB)ケーブル、ファイヤーワイヤー(IEEE1394)ケーブル、もしくは高解像度マルチメディアインターフェース(HDMI)ケーブル等のケーブルによって前記コンピューティング・デバイスに接続することができる。こうして、前記コンピューティング・デバイスは、印刷デバイス100に対して電子文書の供給源としての働きをすることができる。
一方、印刷デバイス100は、イーサネットもしくは802.11(Wifi)インターフェース等の有線もしくは無線のネットワークインターフェースを含み得る。そのように配置されて、印刷デバイス100は、ネットワークを介して印刷デバイス100と通信可能な任意の数のコンピューティング・デバイスに対する印刷デバイスとしての働きをすることができる。実施形態によっては、印刷デバイス100は、ローカル周辺装置およびネットワーク接続されたプリンターの両方としての働きを同時にすることが可能である。印刷デバイス100を使用するために、コンピューティング・デバイスは、一つ以上のプリンタードライバーを組み込む場合がある。当該プリンタードライバーは、印刷される電子文書を、コンピューティング・デバイスに格納された各種のローカル表現から印刷デバイス100によりサポートされる一つ以上の表現に変換するソフトウェアコンポーネントを含み得る。
それでも、印刷デバイス100は、非ジェネリック型のコンピューティング・デバイスとみなすことができ、印刷関連および非印刷関連のタスクの両方を実行することが可能である。
たとえば、印刷デバイス100は、また、複写機、ファックス機、およびスキャナ機能を含み得る。実施形態によっては、印刷デバイス100は、複写機および/またはファックス機の機能を促進するためスキャナ部を用いることが可能である。例えば、印刷デバイス100は、物理的文書をスキャンして電子フォーマットにし、次に得られた電子文書を印刷してコピーを提供し、および/または電話インターフェースを介して得られた電子文書を送信してファックス動作を提供してもよい。さらに、印刷デバイス100は、電話インターフェースを介してファックスされた電子文書を受信し、次に当該電子文書の表現を圧縮して格納することができる。
各種機能に対応するために、印刷デバイス100は、原稿の給紙/排紙トレイ102、用紙保管部104、ユーザーインターフェース106、スキャニング要素108、および筐体110を含むようにしてもよい。印刷デバイスはさまざまな形態を採り得ることを理解されるべきである。従って、印刷デバイス100は、図1に示された構成要素よりも多いもしくは少ない構成要素、および/または図1に示された構成要素にくらべて異なった仕方で配置された構成要素を含む可能性がある。
原稿の給紙/排紙トレイ102は、スキャンされ、コピーされ、もしくはファックスされる物理的文書(例えば、一枚以上の紙の積み重ねた山)を保持することができる。有利なことには、原稿の給紙/排紙トレイ102は、印刷デバイス100による処理のために、印刷デバイス100が、人手を介することなく、複数枚の物理的文書を自動的に送り出すことを可能にする。
原稿の給紙/排紙トレイ102は、また、印刷デバイス100によって処理された物理的文書を保持するための一つ以上の分離した排紙トレイを含み得る。これらには、印刷デバイス100によりスキャンされ、コピーされもしくはファックスされた物理的文書と共に、例えば、印刷デバイス100のファックスおよび/または複写機能により生成された物理的文書も含まれ得る。
用紙保管部104は、各種の物理的媒体のためのトレイおよび/または給紙要素を含み得る。例えば、用紙保管部104は、8.5x11インチ用紙、A4用紙、レターヘッドのある用紙、封筒等のための別個のトレイを含み得る。物理的媒体を出力する(例えば、印刷、コピー、および/またはファックスの受信)ことに係わる印刷デバイス100のあらゆる機能のために、用紙保管部104は、前記物理的媒体を供給することが可能である。
ユーザーインターフェース106は、ユーザからの入力を受け取ることおよびユーザに出力を提供すること等、印刷デバイス100と人もしくは人以外のユーザとの情報交換を促進することが可能である。したがって、ユーザーインターフェース106は、キーパッド、キーボード、タッチパネルもしくは存在感知パネル、ジョイスティック、マイクロホン、静止カメラおよび/またはビデオカメラ等、入力構成要素を含み得る。ユーザーインターフェース106は、また、(例えば、存在感知パネルと組み合わせることが可能である)表示画面、陰極線管(CRT)、液晶ディスプレイ(LCD)、発光ダイオード(LED)ベースのディスプレイ、デジタル光処理(DLP(登録商標))技術を使用したディスプレイ、電球、および/または既知もしくは今後開発される一つ以上の類似なデバイス等、一つ以上の出力構成要素を含み得る。ユーザーインターフェース106は、また、スピーカー、スピーカージャック、オーディオ出力ポート、オーディオ出力デバイス、イヤホンおよび/または既知もしくは今後開発される他の類似のデバイスを介して可聴出力を生成することができるように構成することが可能である。
スキャニング要素108は、その下で、可動光源がガラスパネルの上に置かれた物理的媒体をスキャンするよう動作するガラスパネルであり得る。あるいは、ガラスパネルの下のデジタルカメラが、物理的媒体の写真を撮ることにより、ガラスパネルの上に置かれた物理的媒体を「スキャンする」ことが可能である。スキャンされた物理的媒体の画像は、印刷デバイス100に関連付けられたデータ記憶部に格納され得る。
筐体110は、原稿の給紙/排紙トレイ102、用紙保管部104、ユーザーインターフェース106、およびスキャニング要素108等印刷デバイス100の各種構成要素を収容しおよび/または相互に接続する物理的ハウジングを含み得る。それと共に、筐体110は、図1に示されていない他の構成要素を収容することができる。例えば、筐体110は、一つ以上のトナーカートリッジ、液体インクジェット、ベルト、ローラー、および/または電源部を収容することが可能である。さらに、筐体110は、有線および/または無線ネットワークインターフェース、電話インターフェース(例えば、RJ45ジャック)、USBインターフェース、BLUETOOTH(登録商標)インターフェース、カードリーダーのポート等の通信インターフェースを含み得る。
さらに、印刷デバイス100は、汎用のおよび/または特別に設計されたコンピューティング・デバイス構成要素を搭載する場合があるので、筐体110は、また、当該構成要素のいくつかもしくは全てを収容する場合がある。その点に対して、図2は、印刷デバイス100に含まれ得るコンピューティング・デバイス構成要素(例えば、コンピューティング・デバイスの機能要素)の例示の実施形態200を示す。
コンピューティング・デバイス構成要素200は、処理部202、記憶部204、および入出力部206を含み、それらの全てはシステムバス208もしくは同様なメカニズムにより接続することができる。処理部202は、一つ以上の汎用プロセッサー等の一つ以上の中央処理装置(CPU)および/または一つ以上の専用プロセッサー(例えば、特定用途向け集積回路(ASIC)もしくはデジタル信号プロセッサー(DSP)等)を含み得る。
記憶部204は、次に、揮発性および/または不揮発性データ記憶部を含むことが可能で、処理部202に全体的にもしくは部分的に統合され得る。記憶部204は、処理部202により実行可能なプログラム指示、および本明細書に記載されている各種の方法、プロセス、もしくは機能を実行するために当該指示によって操作されるデータを格納することが可能である。一方、当該方法、プロセス、もしくは動作は、ハードウェア、ファームウェア、および/またはハードウェア、ファームウェア、およびソフトウェアの任意の組み合わせによって規定することができる。従って、記憶部204は、一つ以上のプロセッサーによって実行時、本明細書もしくは添付図面に開示された任意の方法、プロセスあるいは機能を印刷デバイス100に実行させるプログラム指示を格納している、有形で非一時的でコンピュータ読み取り可能な媒体を含み得る。
記憶部204は、また、後で処理する(例えば、印刷する)ことができる圧縮されたおよび圧縮されていない電子文書を格納するように構成することが可能である。したがって、記憶部204は、当該電子文書に対する出力媒体としての働きをする。
入出力部206は、ユーザーインターフェース106に関連して記載した任意の動作および/または要素を含み得る。したがって、入出力部206は、処理部202の動作を構成しおよび/または制御する役割を果たすことが可能である。入出力部206は、また、処理部202により実行される動作に基づいて出力を提供することが可能である。
これらの印刷デバイスの例は例示の目的で提供されている。上記の例に加えておよび/またはそれに代えて、その他の可能性の中で、本明細書の実施の形態の範囲から逸脱することなく、その他のプリンターとコンピュータ技術の組み合わせおよび/または部分的組み合わせもまた存在し得る。
図3は、印刷デバイス100により処理された電子文書の表現が通過できるいくつかの実行可能なデータ経路を示す。図3で、印刷デバイス100は、スキャナ部302および印刷部304を含み得ると想定している。当該部のそれぞれの制御は、ハードウェア、ファームウェア、ソフトウェア、もしくはハードウェア、ファームウェア、および/またはソフトウェアの任意の組合せにおいて実行され得る。さらに、スキャナ部302および印刷部304のそれぞれは、コンピューティング・デバイス300と、およびおそらくその他のコンピューティング・デバイスともまた通信することが可能である。場合によっては、印刷デバイス100によりサポートされるデータ経路は、「パイプライン」と称される場合がある。
スキャナ部から印刷部へのデータ経路310は、スキャナ部302および印刷部304によりサポートされ得る。スキャナ部から印刷部へのデータ経路310は、たとえば、ユーザが印刷デバイス100に物理的文書をコピーするように指示する場合に使用することができる。当該指示に応じて、スキャナ部302は、前記物理的文書を電子文書にスキャンして、スキャナ部から印刷部へのデータ経路310を介して、前記電子文書を印刷部304に送信することができる。スキャナ部から印刷部へのデータ経路310を使用すると、前記電子文書(おそらく圧縮された形式で)の一部もしくは全てを印刷デバイス100のデータ記憶部に少なくとも一時的に格納することが含まれ得る。そして、印刷部304は、前記電子文書を物理的媒体(たとえば、一枚以上の用紙)に印刷することが可能となる。
スキャナ部からホストへのデータ経路306は、また、スキャナ部302とコンピューティング・デバイス300によりサポートされ得る。スキャナ部からホストへのデータ経路306は、たとえば、ユーザが印刷デバイス100に物理的文書をスキャンするように指示する場合に使用することができる。前記ユーザはまた、印刷デバイス100に、得られた電子文書の表現をコンピューティング・デバイス300に送信するよう指示することができる、もしくは印刷デバイス100は、前記電子文書を自動的にコンピューティング・デバイス300に送信するよう予め構成されていてもよい。このようにして、当該指示に応じて、スキャナ部302は、物理的文書をスキャンして電子文書にし、そして前記得られた電子文書をスキャナ部からホストへのデータ経路306を介してコンピューティング・デバイス300に送信することができる。スキャナ部からホストへのデータ経路306を使用すると、前記電子文書の一部もしくは全てを印刷デバイス100のデータ記憶部に少なくとも一時的に(おそらく圧縮された形式で)格納し、および前記得られた電子文書の表現をコンピューティング・デバイス300に送信し得る。
ホストから印刷部へのデータ経路308は、コンピューティング・デバイス300と印刷部304によりサポートされ得る。ホストから印刷部へのデータ経路308は、たとえば、ユーザがコンピューティング・デバイス300に印刷デバイス100の電子文書を印刷するように指示する場合に使用することができる。当該指示に応じて、コンピューティング・デバイス300は、前記電子文書の表現を印刷部304に送信することができる。印刷デバイス100は、印刷部304を介して、前記電子文書を物理的媒体に印刷することができる。前記電子文書の一部もしくは全ては、前記電子文書の印刷前および/または印刷中に、印刷デバイス100のデータ記憶部に(おそらく圧縮された形式で)格納され得る。
上記の少なくとも一つのデータ経路に対して、並びに印刷デバイス100によりサポートされているおそらく他のデータ経路に対して、明らかに、電子文書は、ネットワークもしくはケーブルを介して格納および/または送信する必要があるであろう。電子文書を格納および/または送信のために圧縮することにより、当該電子文書の格納と送信両方に関する効率性を向上することができる。たとえば、電子文書を、平均して元の大きさの4分の一に圧縮できた場合、約4倍多くの電子文書を既定の容量のデータ記憶部に格納することができる。さらに、当該圧縮された電子文書を、ネットワークもしくはケーブルを介して送信すると、圧縮されていない電子文書を送信するより約4倍速く送信することができる。
従来、一部のデータ経路には不可逆圧縮が使用されてきた可能性がある一方、その他のデータ経路には可逆圧縮が使用されてきた可能性がある。(不可逆圧縮技法は、データの一部を廃棄して圧縮するが、一方可逆圧縮技法は全く廃棄しないでデータを圧縮する。)たとえば、ある実装例では、ホストから印刷部へのデータ経路308は、電子文書の印刷バージョンにおけるテキストおよび線画のシャープエッジを維持するために可逆圧縮を利用する場合がある。その一方で、スキャナ部からホストへのデータ経路306およびスキャナ部から印刷部へのデータ経路310は、スキャンされたグラフィック画像を含む物理的文書を効率よく格納および送信するために不可逆圧縮を利用する場合がある。印刷デバイス100は、自身のデータ経路の少なくとも一部およびおそらく全てに対して、同じもしくは類似の圧縮技法を使用することによってより効率化され、またソフトウェアおよび/またはハードウェアの実装が簡易化され得る。
このように、可逆圧縮および不可逆圧縮の両方に対応する圧縮技法が好ましい。また、可逆圧縮および不可逆圧縮の両方が、同じ文書内で適用できることが好ましい。その点に対して、画像がどのように表されるかを理解することが有用であろう。
3.画像の例
画像は、画像形式および色モデルに従って符号化された画素のマトリックスであるといってもよい。図4は、印刷デバイス100によって取扱われる物理的もしくは電子文書上あるいはその内部に含まれ得る画像400を示す。画像400は、白と黒で表示されているが、同様の特性を持つカラー画像もまた、印刷デバイス100で取り扱うことが可能である。画像400は、他の例の中で、600ドット/インチ(dpi)もしくは1200dpi等、さまざまな解像度を用いて形成され得る。
図4で見ることができるように、画像400は、様々な種類の内容を含む。例えば、画像400は、シャープエッジを持つテキストと線画の両方を含む。さらに、画像400は、また、連続階調を含む部分(例えば、画像400の上方左手の角)、並びに写実的なデータを含む部分(例えば、画像400の下方右手および上方右手の角)を含む。テキストが、画像400のいろいろな部分に重ね合わさっている。このように、画像400は、業務用の印刷、例えば、カタログのページ、雑誌、ちらし、あるいは広告において使用される一般的な種類の画像を示している。
いくつかの実行可能な実施の形態においては、例示の画像400等、画像におけるそれぞれの画素は、3つの異なるオブジェクトタイプ―すなわち、画像グラフィックス、ベクターグラフィックス、あるいはテキスト―の1つとして分類することができる。画像グラフィックスは、写真の画像等、写実的な画像を含む。画像400の下方右手角および上方右手角の写実的なデータは、画像グラフィックスに該当し得る。画像400全体にわたる非テキストのラインは、ベクターグラフィックスに該当し、テキスト文字(例えば、「E」および「R」)がテキストに該当し得る。
特定の画素のオブジェクトタイプは、印刷デバイスのスキャナ部もしくは電子文書のページ記述言語(PDL)の表現によって判定してもよい。PDLは、印刷されたもしくは表示されたページの外観を、ページの実際の画素より高級レベルで記述する言語、文法、もしくはフォーマットである。ページの画素表現は、PDLから得ることができる。
このように、電子文書は、PDL文書により表現される1枚以上のページを含み得る。これらのページのそれぞれは、PDL文書の一部もしくはすべて、および/または画像により表現され得る。PDLには多くの例があり、その中のポータブル・ドキュメント・フォーマット(PDF)はその1つである。
画像400を含む電子文書の必要メモリを低減するために依然として不可逆圧縮を使用しながらも、統合圧縮技法は、画像400のシャープエッジおよびラインを正確に表現することができるであろう。特に、テキスト、基本的な幾何学的形状、および線画等、特定の要素の正確な特性を維持することが好ましい、なぜならば、これらの要素に軽微な歪みがあっても人の目には不快に見える場合があるからである。従って、これらの要素は、ベクターグラフィックスもしくはテキストとして分類され、可逆的方式での圧縮の対象とされる可能性がある。
その一方で、写実的な画像およびグラデーションがある複雑なグラフィックスは、そのような正確さ無しで見ることができる。従って、これらの要素は、画像グラフィックスとして分類され、不可逆的方式での圧縮の対象とされる可能性がある。たとえば、画像グラフィックスは、人の目に対して、個別の圧縮されていないバージョンと視覚的に同じかもしくは類似に見えるように圧縮することができる。
さらに、画素のオブジェクトタイプ(例えば、画像グラフィックス、ベクターグラフィックス、もしくはテキスト)は、前記画素に適用された色変換、並びに前記画素に適用されたハーフトーンスクリーンの種類に影響を及ぼす可能性がある。これらの課題は、以下でより詳細に説明する。
ある場合には、ベクターグラフィックスおよびテキストオブジェクトは、類似の特性を有するように見えるかもしれない。実際、これら2つのカテゴリーは、実施の形態によっては結合され、また同じ方式で処理され得る。しかしながら、薄く色づけられたライン等、ベクターグラフィックスの特定の種類は、テキストとは異なるように処理された場合、よりよく見える。たとえば、薄く色付けられたラインが、テキストと同じ方式で処理された場合、それらのラインの中には識別するのが困難になるものがあり得る。従って、ベクターグラフィックスに対して異なる色変換および/または異なるハーフトーンスクリーンを適用すると、これらのラインを維持および/または向上する可能性がある。例えば、ベクターグラフィックス画素に対してハーフトーンスクリーンを特別に選択すると、当該画素が印刷された場合、より多くのトナーが塗布される結果が得られる可能性がある。
4.画像の色モデルの例
電子文書は、多くの色モデルを用いて表現することができる。従って、ロバストな圧縮技法は、それらのモデルの一部またはすべてに影響を与えることができるであろう。さらに、圧縮技法は、個々の色モデルに対して特有な前処理を含む場合がある。
例えば、赤‐緑‐青(RGB)色モデルは、テレビ、モニター、およびコンピュータ画面等、電子出力デバイスの画像の表示に使用することができる。RGBは、加法色モデルで、赤、緑、および青の光がさまざまな方法で足し合わされて色のスペクトラムを生成する。例えば、シアンは、緑と青を混ぜ合わせて作ることができ、イエローは、赤と緑を混ぜ合わせて作ることができ、マゼンタは、赤と青を混ぜ合わせて作ることができ、白は赤、緑、および青を混ぜ合わせて作ることができる。
RGB画像の特定の画素は、3面タプル(R、G、B)として表すことができ、各面は、ゼロから所定の最大値(例えば、255)まで変化し得る。すべての面が0の場合、結果は黒色になるであろう。すべての面が最大値の場合は、結果は最も明るく表現可能な白となるであろう。(本明細書に記載する色平面は、また、カラーチャネルと称することがある)
RGB出力は、異なる出力デバイスは異なる方式で同じRGB画像を表示する可能性があるという点で、一般的にデバイス依存である。従って、場合によっては、これらの差異は人によって知覚される場合がある。実施の形態によっては、スキャナ部からホストへのデータ経路306を用いて印刷デバイス100にスキャンされた物理的文書は、RGB色モデルを用いて符号化される場合がある。
シアン‐マゼンタ‐イエロー(CMY)色モデルは、印刷デバイスによるカラー画像の印刷に使用され得る。CMYは、減法色モデルで、シアン、イエロー、およびマゼンタがさまざまな方法で白い表面に塗布されて色のスペクトラムを再生する。例えば、赤はマゼンタとイエローを混ぜ合わせて作られ、青はシアンとマゼンタを混ぜ合わせて作られ、緑はシアンとイエローを混ぜ合わせて作られ得る。このように、CMY色モデルは、RGB色モデルの補完とみなすことができる。
CMY画像の特定の画素は、3面タプル(C、M、Y)として表すことができ、各面は、0から所定の最大値まで変化し得る。すべての面が0の場合、結果は白色であろう。すべての面が最大値の場合、結果は黒色であろう。
RGB出力のように、異なる印刷デバイスについて、同じCMY画像の印刷された出力が異なって見え得る点で、CMY出力は、一般的にデバイス依存である。場合によっては、これらの差異は人によって知覚される場合がある。実施の形態によっては、ホストから印刷部へのデータ経路308および/またはスキャナ部から印刷部へのデータ経路310を用いて印刷デバイス100によって印刷された電子文書は、CMY色モデルを用いて符号化される場合がある。
実施の形態によっては、4面CMYK色モデルもまた使用され得る。当該CMYKの4面モデルは、キー(ブラック)面もまた使用されることを除いて、CMY色モデルと類似もしくは同じであり得る。できる限りシアン、マゼンタ、およびイエローを混ぜ合わせて黒色を作ることに加えて、別個のキー(ブラック)インクソースが黒色を作るために使用され得る。このように、CMYK画像の特定の画素は、4面タプル(CMYK)として表され、各面は、ゼロから所定の最大値まで変化し得る。
CMYK色モデルを用いると、CMYモデルと同じ色がサポートされ、しかもK着色剤が、C、M、およびY着色剤の混合物に取って代わることができるので、一般的にインクの使用量が低減する。しかしながら、CMYK色モデルは、常に他の色モデルにおよび他の色モデルから都合よく変換できるということではない、なぜならばK着色剤を追加したことが冗長性を増す―例えば、異なるC、M、Y、およびKの組み合わせを混ぜ合わせた結果が同じ色であり得る―ためである。実施の形態によっては、画素をCMYモデルからCMYKモデルに、および/または他の色モデルの組の間で変換するために、一つ以上のカラーテーブルが使用され得る。
更なる色モデルはグレーで、グレースケールとも称され、黒色と白色の画像の表現に対して使用され得る。RGBおよびCMY/CMYK色モデルと異なり、グレー色モデルの各画素は、画素の明度を符号化する単一の平面(K)を用いて表される。グレー平面で使用される値は、黒色に対するゼロから、白色に対する所定の最大値(例えば、255)まで変化し得る。実施の形態によっては、印刷デバイス100によってサポートされている一つ以上のデータ経路が、グレー色モデルを用いて画像を符号化できる場合がある。
さらなる色モデルはYCbCrである。実装例によっては、当該色モデルは、画像の代替表現として使用され得る。特に、Y平面は、画素の明度を表し、CbおよびCr平面は、それぞれ、青‐黄クロミナンス、および赤‐緑クロミナンスを表し得る。Y平面は輝度を表しているにもかかわらず、CbおよびCr平面のように「色平面」と称される場合がある。YCbCr色モデルは、RGBおよびCMY色モデルと明確に定義された関係を有し、これらの色モデルのいずれにも、もしくはいずれからも比較的容易に変換することができる。YCbCr色モデルのグレースケールバージョンは、Y色モデルと称される場合がある。
YCbCr色モデルのさらなる有利な点は、YCbCr色モデルを用いて符号化された画像の圧縮がRGBもしくはCMY/CMYK色モデルで符号化された画像の圧縮よりもより効率的である傾向にあるということである。特に、人の目は、画像の高周波の(例えば、急激に変化する)クロミナンス情報をあまり検出できない。従って、YCbCr色モデルを用いて符号化された画像は、CbおよびCr平面の高周波成分を無視することにより当該知見を利用することができる。そのため、特定の色モデルで符号化された画像は、圧縮性能を向上するために圧縮する前にYCbCr色モデルに変換される場合がある。
5.属性平面の例
色平面に加え、画像は、属性平面を用いてデジタル的に表現することができる。属性平面の値は、画像に目に見えて表れないかもしれないが、属性平面は、画像の圧縮と処理動作に対してガイダンスを与えるために利用することができる。
例として、画像の各画素は、属性を表すビット配列(例えば、8ビットもしくは16ビット)に関連付けることができる。当該属性の中には、画素が他の題材の上にあるオーバーレイとして使用されているか、前記画像のエッジの一部として使用されているか、あるいは印刷もしくはコピーの特徴の一部として用いられているかどうかを示す場合があり得る。他の属性として、画素を色モデル間で変換する時に使用する色変換テーブルに対する基準および/または画素を印刷する時に使用するハーフトーンスクリーンに対する基準が含まれる場合がある。各画素の関連付けられた属性配列の中のビットは、印刷デバイスのスキャナ部により、もしくは電子文書のPDLから決定され得る。
属性平面の配列は、関連付けられた画素が表すオブジェクトタイプを特定するために使用される場合がある。当該特定されたオブジェクトタイプは、例えば、グラフィック画像、ベクターグラフィックス、もしくはテキストを含み得る。オブジェクトタイプのタグは、そのような属性配列の一つ以上のビットであり得る。
例示の属性配列500を図5に示す。属性配列500は、オーバーレイビット502、未使用ビット504、エッジビット506、2つのカラーテーブルビット508、510、コピーもしくは印刷ビット512、および2つのハーフトーンビット514、516を含む。
オーバーレイビット502は、関連付けられた画素が他の題材にオーバーレイするかどうかを示す。たとえば、印刷デバイスの中には、いくつかの印刷ジョブに対して一つ以上の背景画像もしくはパターンの適用をサポートするものがある。これらの画像あるいはパターンは、ロゴもしくは縁飾り等、静的であるかもしれないし、もしくは自動ページ付け(例えば、文書の各ページの底部に「3分の1ページ」等のフレーズを表示すること)等、動的であるかもしれない。
たとえば、自動ページ付けの場合、印刷デバイスは、ユーザによりページ番号を付けるように指示されるであろう。ユーザは、印刷デバイスのユーザーインターフェースのオプションを選択して自動ページ付けを指定することができる。それに代わり、電子文書を印刷デバイスに送信するコンピュータのプリンタードライバーが自動ページ付けを指定する場合がある。その他の場合において、印刷デバイスは、どの画素が背景の画素(ページの白色の背景)等に対して前景の画素(ページのテキスト等)であるかを検出し、前景の画素がオーバーレイされていることを表示する場合がある。
エッジビット506は、関連付けられた画素が画像のエッジの一部であるかどうかを示し得る。例えば、エッジビット506は、そうである場合1の値を取り、そうでない場合0の値を取り得る。エッジビット506は、スキャナ部(例えば、スキャナ部302)によって設定され、薄く色づけられた輪郭にも隣接した濃く色づけられた輪郭のエッジ近くの画素をマークすることができる。例えば、エッジビットは、薄い背景のテキスト文字の境界を表わす画素に対して、1に設定され得る。エッジビット506は、以下に述べるように、インテリジェントダウンサンプリングの使用を通して画像のエッジを強調するために使用することができる。
カラーテーブルビット508、510は、1つの適切な例として、CMYとCMYK色モデル間の色平面の値のマッピングを含むカラーテーブルを示し得る。上述したように、画素のオブジェクトタイプ(例えば、画像グラフィックス、ベクターグラフィックス、もしくはテキスト)は、前記画素が得られた電子文書のPDL表現から、もしくはスキャナ部により決定され得る。
前記画素の前記オブジェクトタイプに基づき、異なる色変換テーブルを適用することが出来る。例えば、カラーテーブルビット508、510は、前記画素がテキストオブジェクトの一部である場合「00」の値を取り、前記画素がベクターグラフィックスオブジェクトの一部である場合「01」の値を取り、前記画素が画像グラフィックスオブジェクトの一部である場合「11」の値を取る場合がある。カラーテーブルビット508、510の値に基づき、いくつかの色変換テーブルうちの1つが選択され、前記画素に適用され得る。
コピーもしくは印刷ビット512は、前記関連付けられた画素がコピーされる(スキャンされ、次に印刷される)かもしくは(例えば、ローカルに格納されたPDL文書からもしくは別のデバイスから受信して)従来通り印刷されるかどうかを示すことができる。当該ビットの値は、ハーフトーンビット514、516の値と結合され、最大8つのハーフトーンスクリーン(ハーフトーン処理の説明については下記を参照のこと)のうちの1つを選択し得る。場合によっては、スキャンされ、次に印刷される電子文書は、特定の種類のハーフトーンスクリーンを使用し、一方従来通り印刷される電子文書は、他の種類のハーフトーンスクリーンを使用する場合がある。
ハーフトーンビット514、516は、画像が印刷されるときに、前記画像にハーフトーンスクリーンが適用されるかどうか、そしてどのハーフトーンスクリーンを適用するかを示すことができる。ハーフトーン処理は、大きさ、形状、および間隔が異なるドットの使用を通して勾配をシュミレートする技法である。ハーフトーン処理は、各種の色の複数の濃淡を含む画像を、各スクリーンは特定の色の単一の(2値の)濃淡を含みながら、一連のオーバーレイされたハーフトーンスクリーンに分解することができる。オーバーレイされたハーフトーンスクリーンは、前記ドットが滑らかな階調に混和される外観を作り出す。
カラーテーブルビット508、510と同様に、ハーフトーンビット514、516は、前記画素が表わすオブジェクトのタイプに基づき値を取ることができる。例えば、ハーフトーンビット514、516は、前記画素が画像グラフィックスオブジェクトの一部である場合、「00」の値を取り、前記画素がベクターグラフィックスオブジェクトの一部である場合、「01」の値を取り、前記画素がテキストオブジェクトの一部である場合、「11」の値を取ることができる。ハーフトーンビット514、516の値に基づき、いくつかのハーフトーンスクリーンの一つが選択され、前記画素に適用され得る。
同じ3つのオブジェクトタイプに基づいているが、カラーテーブルビット508、510は、ハーフトーンビット514、516とは異なる場合がある。当該2つの異なる情報の組を保持する1つの考えられる理由は、いくつかのPDLで混ざり合うオブジェクト画素の重なりに対応するためである。例えば、テキスト画素がラスター画像の画素と混ぜ合わされている場合、カラーテーブルビット508、510はラスター画像を表示し、ハーフトーンビット514、516はテキストを表示することができる。この機能により、重なり合って混ぜ合わされているオブジェクトの画像品質を維持している。
例示の属性配列500は、画素当り8ビット(1バイト)を含んでいる。したがって、このスタイルの属性配列を用いることにより、属性平面の大きさは、画像内の画素の数と直線的に増大する。画像内の画素に関連付けられている属性配列の範囲は、当該画像に対する属性平面と称される場合がある。
属性平面は、A平面と称せられる場合がある。したがって、属性平面が一つ以上の色平面と組み合わされた場合、前記属性と色平面の組み合わせは、用いられる色モデルによって、KA、CMYA、CMYKA、RGBA、YA、もしくはYCbCrAと称される場合がある。ここで、属性平面は実際には色それ自体を表現していないけれども、これらの属性と色平面の組み合わせの例は、「色モデル」と称される場合がある。
6.画像パイプラインの例
例示の画像パイプラインの高いレベルの全体像を図6に示す。当該画像パイプラインは、フローチャート600の形を取り、複数の圧縮および解凍のステップを含む。フローチャート600は、電子文書を受信し、格納し、および印刷するために印刷デバイスによって実行される一連のステップを表すことができる。
図6のブロック602で、前記電子文書は、YAもしくはYCbCrA色モデルに従ってフォーマットされた一つ以上の画像として表現され得る。しかしながら、これらの色モデルは、例示の目的で選択されており、その他の色モデルも使用することができる。YAもしくはYCbCrA画素は、元の紙の文書もしくは他の対象物のスキャンプロセスから得ることができる。それに代えて、ブロック602で、前記電子文書は、例えば、ビットマップ、JPEG、GIF等の画像フォーマットにより表現され、そしてYAもしくはYCbCrA色モデルに変換されてもよい。
ブロック604で、セルベースの圧縮(下記で詳細に説明される)が前記電子文書の各平面の画素に適用され得る。例えば、YA電子文書に対して、セルベースの圧縮がグレー平面および属性平面に適用され得る。YCbCrA電子文書に対して、Y、Cb、Cr、およびA平面のそれぞれに対して別々にもしくは複合方式でセルベースの圧縮が適用され得る。従って、場合によっては、セルベースの圧縮は、二つ以上の平面の対応するセルを同じ論理的操作で圧縮する場合がある。ブロック604の結果は、前記電子文書の圧縮バージョンを表わすビットストリームであり得る。
ブロック606で、当該圧縮バージョンは、記憶出力媒体に格納され得る。一般に、当該記憶装置は、1枚以上のページの圧縮表現を格納する印刷デバイスの記憶部であってもよい。本明細書に記載された圧縮技法は、これらの文書を元のビットマップサイズの少なくとも3分の1もしくは4分の1に圧縮できるので、当該記憶装置の必要なメモリの大きさはそれに応じて低減することができる。その結果、本明細書の実施形態を採りいれている印刷デバイスは、よい安価に製造することができる。
ブロック606における記憶装置に属する圧縮されたページは、印刷デバイスにより印刷されるかもしれないし、されないかもしれない。場合によっては、これらのページは、ブロック6060の記憶装置から可搬型ストレージ(例えば、USBストレージ、セキュア・デジタル(SDカード)等)に送信され、もしくはパーソナルコンピュータのホストに送信される場合がある。ページは、ユーザもしくはプログラムが、これらのページについて印刷、あるいは何か他のことをすると決定するまで、ブロック606の記憶装置に何日間、何週間等、保持される場合がある。
ブロック608で、セルベースの解凍が前記電子文書の各平面に適用され得る。これにより、前記電子文書のYAもしくはYCbCrA表現の再現結果を得ることができる。しかしながら、前記セルベースの圧縮技法が不可逆圧縮を用いた場合、ブロック608の解凍から得られる電子文書は、ブロック604の圧縮により圧縮された前記電子文書とは異なる場合がある。しかしながら、前記電子文書のこれらのバージョン間の差異はわずかであり、従って人によって容易に知覚されないかもしれない。
ブロック610で、前記電子文書の前記解凍バージョンはさらに処理され得る。例えば、さまざまな変換が前記電子文書に適用され得る。これらの変換のうち一つ以上の変換が前記電子文書に実行された後、前記電子文書は、再びブロック604で圧縮され、ブロック606で記憶装置に格納され得る。ブロック610の適用は随意であり、すべての電子文書が当該処理の対象とはならないであろう。
ブロック612で、前記電子文書の前記解凍バージョンはまた、さらに処理され得る。ブロック614で、セルベースの圧縮が前記電子文書の各平面に適用され得る。当該圧縮処理手続きは、ブロック604の処理手続きと同じであるか、もしくは異なる場合がある。例えば、ブロック614で適用される圧縮は、ブロック604の圧縮比率よりも高いかもしくは低い圧縮比率を得るように構成してもよい。
ブロック616で、当該圧縮バージョンは、記憶装置に格納され得る。ブロック606の格納装置のように、当該格納装置は、1枚以上のページの圧縮表現を格納する印刷デバイスの記憶部であってもよい。これらのページ表現は圧縮されているので、記憶装置の必要メモリとコストは低減される。
ブロック618で、セルベースの解凍が、前記電子文書の各平面に適用され得る。これにより、ブロック614で圧縮された前記電子文書の表現の再現結果を得ることができる。ブロック608の場合と同様に、前記セルベースの圧縮技法が不可逆圧縮を用いた場合、ブロック618の解凍から得られる前記電子文書は、ブロック604および/またはブロック614の圧縮により圧縮された前記電子文書のバージョンとは異なる場合がある。
ブロック620で、前記電子文書の解凍バージョンに対してさらなる処理が適用され得る。ブロック620の後、前記電子文書は印刷の準備ができているであろう、もしくは更なる処理が適用されてもよい。
ブロック604および614のセルベースの圧縮の処理手続きは同じであるか、もしくは異なる場合がある。例えば、これらの処理手続きは、異なる圧縮アルゴリズムを使用するか、あるいは同じもしくは異なる設定で同じ圧縮アルゴリズムを使用してもよい。同様に、ブロック608と618のセルベースの解凍の処理手続きもまた、同じかもしくは異なる場合がある。
実施の形態によっては、画素当り使用される属性平面ビットの数は、フローチャート600において圧縮が行われる場所に基づいて変わる可能性がある。例えば、属性配列500の全てのビット(未使用ビット504を除く可能性はある)がブロック604で圧縮されるかもしれない。
しかしながら、ブロック612の後、オーバーレイビット502、未使用ビット504、エッジビット506、およびカラーテーブルビット508、510は、もはや必要でないかもしれない。さらに、印刷装置の中には、複写機能を有していないものがある。したがって、これらの印刷デバイスに対しては、コピーもしくは印刷ビット512は、フローチャート600のどの場所でも使用されないであろう、そしてブロック604およびブロック614の圧縮から除外してもよい。
それでも、さまざまな実施の形態において、属性配列500のゼロから6ビットのどこででもセルベースの圧縮処理手続きから除外される可能性がある。その結果、セル当り圧縮される全体のビットの数は低減され、その結果として、前記属性平面のセルの達成可能な圧縮比率を向上する可能性がある。
本明細書の前記説明は、画像の属性と色平面に適用されるセルベースの圧縮の単一のインスタンスに焦点を合わせている。前記画像は、1枚以上のページを含む電子文書からの1枚のページの表現でもよい。しかしながら、パイプライン600もしくはその他の配置に従って、当該セルベースの圧縮の複数のインスタンスはそのような画像のセルに適用することができる。このようにして、画像全体が効率的な方式で圧縮され得る。
さらに、セルベースの解凍技法は、また、本明細書に記載のセルベースの圧縮技法を逆転することによって前記画像に適用することができる。
7.セルの構成の例
セルベースの圧縮の1つの態様は、電子文書の各色平面および属性平面を一つ以上のmxnセルに分割し、次に各セルを部分的に独立したもしくは完全に独立した方式で圧縮することができるというものである。例えば、mが8かつnが4でもよい。あるいは、同様に、mが8かつnも8、もしくはmが16かつnも16でもよい。その他のmおよびnの値を用いてもよい。
各セルは、当該セル内のデータを圧縮するためにどの種類の圧縮技法が最も効率的かを判定するために評価され得る。例えば、セルが、同じ色の画素で全面的に構成される場合、前記セルの中のデータは、前記色の表現に大変効率よく圧縮されるであろう、またたぶん一部のオーバーヘッドデータも大変効率よく圧縮されるであろう。しかしながら、セルが、写実的な画像の一部を含む場合、前記セルの中のデータは、そのような高い圧縮比率で圧縮することはできないであろう。
図7は、セルベースの圧縮で使用できる例示のセル構造を示す。便宜上、セルはpセルとqセルという用語で考える。pセルは、画像の色平面もしくは属性平面のmxnエレメントブロックであり得る。したがって、色平面に対して、pセルエレメントは画素であり得る一方、属性平面に対しては、pセルエレメントは属性配列であり得る。qセルは、画像の色平面もしくは属性平面のaxbエレメントブロックであり得る。各qセルは、非オーバーラップpセルのいくつかの数から構成され得る。文脈によって、「pセル」および「qセル」という用語は、単一の属性もしくは単一の色平面のエレメント、あるいは複数の属性および複数の色平面のエレメントを指す場合がある。
例として、図7は、それぞれが特定の平面に対して64の属性もしくは画素値を含む4つの8x8pセル700、702、704、706を示す。各属性もしくは画素値は、例えば、0乃至255の範囲の数字によって表わすことができ、したがってバイトとして表すことができる。しかしながら、他の可能性も存在する。簡単にするために、pセル700は、ある代表値の場所を示すのみとする。
図7に示すように4つのpセルの2x2配列は、qセルと称する場合がある。したがって、図7のqセル710は16x16であり、特定の平面に対して256の属性もしくは画素値を含む可能性がある。しかしながら、qセルは異なる数のpセル(例えば、3x2、2x3、もしくは3x3ブロックのpセル)を含み得る。
図7で、上方左手のpセルを「a」pセル、上方右手のpセルを「b」pセル、下方左手のpセルを「c」pセル、および下方右手のpセルを「d」pセルと称する。これらの呼称は、pセル識別情報と呼んでもよい、そしてqセル内のpセルの位置を識別するための単なる便利な方法に過ぎず、下記のインターリービングの説明で使用されるであろう。
本明細書に記載のセルベースの圧縮技法は、pセルおよびqセルに作用し得る。簡単にするために、8x8pセルおよび16x16qセルが使用されるものとする。しかしながら、当該前提は、異なる大きさのpセルおよびqセルが代わりに使用できることを理解の上でなされる。
さらに、プレーナpセルもしくはqセルは単一の平面のエレメントを指し、一方複合pセルもしくはqセルは複数の平面間にわたって対応するエレメントを指す場合がある。例えば、CMYA色モデルが使用される場合、プレーナpセルは、C、M、Y、もしくはA平面のうちの1つの平面のエレメントを含む可能性があるが、一方複合pセルは、C、M、Y、およびA平面のうちの2つ以上の平面のエレメントを含む可能性がある。
8.セルベースの圧縮の例
次のいくつかのサブセクションは、さまざまなセルベースの圧縮の技法を詳細に説明する。それぞれのこれらの技法は、pセル、qセル、もしくは両方を用いて動作する。表1にこれらの圧縮技法の概要を提供する。
属性平面のみに使用される圧縮技法をより一般的な用語で以下に説明することができる、なぜならば、システムによっては、特定の実施の形態に対して、色平面にも使用される場合があるからである。例えば、本明細書に記載のセルベースの圧縮が、パイプライン600のブロック604で使用されるとする。異なる圧縮スイートがパイプライン600のブロック614で使用され得る。従って、D1、D1D、P2、P2D、P4、D1C、D1E、およびD64圧縮を全般的に説明する。
a.D1およびD1D圧縮
D1圧縮は、所与のpセルの属性もしくは画素の全てが同じである場合に使用することができる。例えば、前記pセルの各属性もしくは画素が0から255の値を取るとする。単なる一つの例として、全ての値が74とすると、D1圧縮を当該セルに適用することができる。このようにして、前記pセルを表わすために必要とされるデータ量は大幅に低減することができる。
D1D圧縮と称され得るD1圧縮のバリエーションは、色値がデフォルトの色である場合に使用することができる。例えば、YCbCr色空間のY平面、グレー色空間、およびすべてのCMYK色空間において、デフォルトの値は0および255であり得る。YCbCr色空間のCbおよびCr平面においては、デフォルトの値は128および255であり得る。D1D圧縮は、D1圧縮よりも幾分より効率的な符号化を備えている。色空間においては、限られた数のデフォルト値(例えば、2)があるのみなので、これらのデフォルトの色値は、少ない数のビット(例えば、1)で表すことができる。その結果、D1D圧縮は、必要とするpセル当りのビット数はD1圧縮よりも少なくてもよい。
属性平面に対して、前記D1Dデフォルト値は、予め定めることができる(例えば、0もしくは128)かあるいはユーザによって手動で設定することができる。
場合によっては、すべての属性もしくは画素に対して同じ値を持つ複数の隣接したpセル(例えば、行内もしくは列内のpセル)は、D1もしくはD1D符号化を用いて表現することができる。これが起こり得る可能性のある2つの方法がある。D1およびD1D圧縮の両方とも、ランレングスが符号化されることを可能とする。前記ランレングスは、D1圧縮を用いて合計いくつのpセルもまた圧縮されたかを表す。D1圧縮は、また、前に使用された(キャッシュされた)属性もしくは画素値を後続のpセルの符号化において使用することを可能とする。
表2は、D1およびD1D圧縮に対する2進コード化の例を提供する。D1圧縮に対して、pセルの圧縮表現はオペコード001で始まる。V’ビットが1である場合、D1符号化は、また、1バイトの値引数(これはpセルのすべての属性もしくは画素に対して同じである)を含む。V’ビットが0である場合、値引数は符号化から除外され、最新のD1符号化における値(例えば、キャッシュされた値)が前記pセルのすべての属性もしくは画素に対して用いられる。レングス引数は2ビットであり得る、そして1乃至4pセルのqセル内のランレングスに対応している。前記値引数は画素値並びに属性値に該当する。従って、前記値引数は、色平面のpセルを圧縮する場合8ビットであり得る。しかしながら、上記のように、8ビット以下のビット数を用いて属性平面の値を表す場合があり、値フィールドの大きさが適切に低減される場合がある。
D1D圧縮に対して、pセルの圧縮表現は、オペコード000で始まる。Vビットは、2つのデフォルト値のうちどちらを用いるかを示す(例えば、Vが0の場合、1つの値が用いられ、またVが1の場合、もう片方の値が用いられるであろう)。前記レングス引数は、D1圧縮に対して用いた方式と同じ方式で用いることができる。
b.P2およびP2D圧縮
P2圧縮は、所与のpセルの属性もしくは画素のそれぞれが2つの値のうち1つを用いて表わすことができる場合に使用することができる。例えば、セルの属性もしくは画素が0と255の間の値を取り得るが、すべての値が76もしくは125のいずれかである場合、P2圧縮を前記pセルに用いることができる。P2圧縮が用いられる場合、前記2つの値、並びに前記pセルの属性もしくは画素のビットマップが符号化され得る。前記ビットマップは、どの値が前記pセルの各属性もしくは画素に関連付けられているかを示す。D1およびD1D圧縮と同様に、P2圧縮は最後に使用された値の組のキャッシングを用いることができる。
P2D圧縮と称されることがあるP2圧縮技法のバリエーションは、2つのデフォルトの色値のみがセルに現れる場合に用いることができる。上記のように、YCbCr色空間のY平面、グレー色空間、およびすべてのCMYK色空間において、デフォルトの値は0および255であり得る。YCbCr色空間のCbおよびCr平面においては、デフォルトの値は128および255であり得る。従って、P2D圧縮は、前記pセルの属性もしくは画素の前記ビットマップを符号化し得るが、明示的に前記属性もしくは画素の値を符号化する必要はない、なぜならば、前記デフォルトの値が用いられるからである。
前記属性平面に対して、1つもしくは両方のP2Dデフォルト値は予め設定できる(例えば、0および128)あるいはユーザによって手動で設定することができる。
表3は、P2およびP2D圧縮に対する2進コード化の例を提供する。P2圧縮に対して、pセルの圧縮表現はオペコード011で始まる。V’ビットが1である場合、P2符号化は、また、前記pセルの属性もしくは画素によって用いられる値の組(値1および値2)を示す2バイトを含む。V’ビットが0である場合、これらの値は符号化から除外され、最新のP2符号化における値(例えば、キャッシュされた値)が前記pセルの属性もしくは画素に対して用いられる。
P2D圧縮に対して、pセルの圧縮表現は、オペコード010で始まる。P2およびP2D圧縮の両方に対して、Pオプションが1の場合、ラインマップ引数が存在し、前記ビットマップの中の8ラインのどれがまた存在するかを示す。Pオプションが0の場合、ラインマップ引数もあるいは前記ビットマップの中のラインも存在しない。その代わりに、P2もしくはP2Dで圧縮された最新のpセルからキャッシュされたビットマップを使用することができる。
ラインマップの各ビットは、前記ビットマップの中に対応するラインフィールドが存在することを示す。前記ラインマップが存在する場合、前記ビットマップの中に少なくとも1本のラインがまた存在すると想定することができる。従って、前記ラインマップは、前記ビットマップの中の2番目から8番目のラインまでを符号化するために7ビットを使用するのみでよい。前記ラインマップの各ビットに対して、0は対応するラインが無く、前のラインが繰り返すことを示し、一方、1は、対応するラインが存在することを示す。
c.P4圧縮
P4圧縮は、所与のセルのすべての画素が、3つもしくは4つの色値を用いて表わすことができる場合に使用され得る。P4圧縮が使用される場合、3つもしくは4つの値、並びに前記pセルの属性もしくは画素のビットマップを符号化することができる。前記ビットマップは、どの値が前記pセルの各属性もしくは画素と関連付けられているかを示す。
表4は、P4圧縮に対する2進コード化の例を提供する。P4圧縮に対して、pセルの圧縮表現はオペコード100で始まる。P2ビットマップのラインマップと同様に、7ビットのラインマップは、前記ビットマップがどのように圧縮されているかを明確にする。前記ラインマップの各ビットに対して、0は対応するラインが無く、前のラインが繰り返すことを示し、一方、1は、対応するラインが存在することを示す。
前記4つの値引数は、pセルの中で検出されたエレメントの値を表す8ビットフィールドである。これらの値の間を識別するために、前記ビットマップの各ライン(存在する場合)は16ビット長であろう。P4圧縮によって3つの値のみが符号化された場合、「値4」の引数は存在し得るが無視される。
d.D1CおよびD1E圧縮
D1CおよびD1E圧縮は、D1もしくはD1D圧縮の候補である連続したセルのランの効率的な符号化を促進する。これらのランを符号化すると、ソリッドカラー(例えば、白色の背景)を示す部分を有する画像についての圧縮性能を大幅に高めることができる。2種類のD1もしくはD1Dラン―すなわち、(1)qセルを横断するD1もしくはD1D候補のpセルのqセル間ラン、(2)qセル内のD1もしくはD1D候補のpセルのqセル内ラン―がサポートされ得る。
qセル間D1もしくはD1Dランは、2つ以上のqセルにわたるD1もしくはD1Dランを符号化する。qセル内の2つの右端のpセル(前記「b」および「d」pセル)が、D1圧縮を用いて符号化される8×16配列の一定の画素値を含む場合、D1もしくはD1Dランの開始を意味し、そして符号化モードをノーマル符号化モードからD1もしくはD1Dラン符号化モードに変えさせる。当該符号化モードは、平面毎に追跡され、またqセル境界上で追跡される。従って、特定の平面に対して、D1もしくはD1Dラン符号化モードへのモード変化がセル境界の端部で起きる。
D1もしくはD1Dラン符号化モードにおいて、2つのコードのみ―すなわち、D1C(続行)およびD1E(終了)―が定義され、それらはそれぞれ単一ビットを用いて符号化される。後続のqセルが、前記ランを開始した2つのD1もしくはD1D候補pセルと同じ16×16画素値を含む限り、1ビットのD1Cオペコードが送出され、D1もしくはD1Dラン符号化モードが続行する。後続のqセルが、前記ランの開始に適合する同じ色調の値以外の値を含む場合、前記ランは終了する。かかる場合には、1ビットのD1Eコードが送出され、ノーマル符号化モードに再度入る。また、現在のqセルに対する任意の残りのD1、P2、P4、もしくはD64符号化が送出される。
qセル内のD1もしくはD1Dランは、qセル内でD1もしくはD1Dランを符号化する。例えば、qセル内の1つから4つのpセルに及ぶD1もしくはD1Dランを符号化するために、2ビットのランレングスが使用され得る。そのようなランはD1(n)およびD1D(n)と表される、ここで、nは値1、2、3、もしくは4を取る。
表5は、D1CおよびD1E圧縮に対する2進コード化の例を提供する。D1C圧縮に対して、1はD1もしくはD1Dランの続行を示し、所与のqセルの中の4つの全てのpセルは、現在のランのD1もしくはD1Dセルと一致する。D1E圧縮に対して、0はD1もしくはD1Dランの終了を示す。
e.D64圧縮
D64圧縮は、D1、D1D、P2、P2D、およびP4圧縮が適切でない属性平面のpセルを符号化するために使用される可逆技法である。例えば、pセルが5つ以上の異なる値を含む場合、D64圧縮を使用することができる。
D64圧縮は、8x8属性pセルの64個の値すべてを符号化し、ヘッダーを含む場合は、圧縮というよりは極小さく伸張する結果となる。しかしながら、属性平面は可逆方式で圧縮するのが好ましいので、場合によってはD64圧縮が必要になる場合がある。
しかしながら、セルベースの圧縮が圧縮のパイプライン600のどこで行われるかによって、pセルの属性値の8ビット全ては符号化されないかもしれない。その代わりに、これらの値の2乃至8ビットが圧縮および符号化され得る。これにより、D64圧縮が向上する結果となる。
表6は、D64圧縮に対する2進コード化の例を提供する。D64pセルの圧縮表現はオペコード11で始まり、また、属性当り2乃至8ビットを用いて符号化された、前記pセルの中の64の属性配列を含む。属性配列当りのビット数は、上記のように、属性平面を圧縮する場合にどれだけの数の属性ビットを除外できるかによる。
f.ファイルの終わり(EOF)
EOFは、それ自体圧縮技法ではないが、その代わりに、圧縮ストリームの最後を合図することと定義される。圧縮プログラムにて、すべての入力データが圧縮され、最後のqセルの最後のコードが送出された後、EOFシーケンスが送出され得る。前記EOFは、属性平面のコードとして送出される。
前記属性平面がD1もしくはD1Dラン符号化モードにある場合、前記EOFが送出される前に、D1Eが送出されてノーマル符号化モードに戻る場合がある。さらに、EOFは、前記属性平面以外のすべての平面での、すべてのアクティブなqセル間D1もしくはD1Dランを自動的に終了させる。
表7は、EOFに対する2進コード化の例を提供する。オペコード001の後、2進値「10000000000」が送出される。前記EOFは、D1圧縮とオペコードを共有するので、当該値は、EOFをpセルのD1符号化から区別するために使用することができる。
g.DCT4:2:0もしくはDCT Y圧縮
DCT4:2:0圧縮は、離散コサイン変換(DCT)技法を使用して、CbおよびCr色平面の解像度が水平方向と鉛直方向の両方向に2分の1に低減されるようにダウンサンプリングされたqセルを圧縮することを指す。
複合モード操作として、DCT4:2:0圧縮は、CbおよびCr平面をそれぞれ1つのpセルにダウンサンプリングおよび圧縮する一方、pセルごとに1つのDCT操作(合計4つのY平面DCT操作のために)を用いてY平面を圧縮することが可能である。DCT4:2:0圧縮は、また、DCT変換、拡大縮小、量子化、二次元の係数配列から一次元のデータへの並べ替え、およびハフマンエントロピー符号化を含み得る。
CbおよびCr平面に対して、当該技法は、最初にqセルをpセルの大きさにダウンサンプリングし、次に前記得られたpセルに対してDCT符号化を適用する。例として、16x16qセルは、8x8pセルにダウンサンプリングされ得る。前記ダウンサンプリング処理手続きは、前記16x16qセルを64の非オーバーラップ2x2ブロックに分割し、そして各ブロックを前記各ブロックの画素値の平均である(これらの2x2ブロックが任意のエッジを表すかどうかは考慮されない)単一の画素値に置き換えることを含み得る。前記得られた64の平均値は、8x8セルを構成する。特に、当該ダウンサンプリングは、最初の4:1圧縮率をもたらす、そして次にDCT符号化がさらに追加して圧縮をもたらす。
DCT Y圧縮は、グレースケール画像(すなわち、CbもしくはCr平面が存在しない)のY平面の前記4つのpセルのそれぞれにDCT符号化を行うことを指す。従って、DCT Yは、実際にはプレーナモード操作であるが、1つだけ色平面があるので、名目上の複合モード操作と考えることができる。
表8は、DCT4:2:0およびDCT Y圧縮に対する2進コード化の例を提供する。DCT圧縮は、オペコードを含まない―その代り、表8で定義されているように、DCT圧縮pセルの6つのフィールドから成り得る。前記属性平面でのインターリービングのために(下記のインターリービングの説明を参照のこと)、これらの圧縮されたpセルは、圧縮された属性pセルによって互いに分割することができ、DCT4:2:0圧縮のためのオペコードに対する必要性を無くしている。しかしながら、DCT4:2:0圧縮の一部の表現は、一つ以上のオペコードを含み得る。DCT4:2:0符号化のように、DCT Y符号化は、通常オペコードは使用しない。
実施の形態によっては、各DCT符号化は、ハフマン符号化を用いる、ジョイント・フォトグラフィック・エキスパート・グループ(JPEG)規格のサブセットに従ってひとまとめにされた量子化DCT係数の収集であり得る。
h.インテリジェントダウンサンプリングを用いるDCT4:2:0圧縮
インテリジェントダウンサンプリングを用いるDCT4:2:0圧縮は、ダウンサンプリング処理手続きが、エッジを表さない画素よりもエッジを表す画素に重み付けすることを除いて、上記のDCT4:2:0圧縮と同一である。
ダウンサンプリングは、全般的に画像品質が低下するのを回避しながら圧縮率を高めることができるので有利である。このことは、画像内容に関して特にCbおよびCr平面に当てはまる、なぜならばこれらの平面は、ダウンサンプリングにより発生しうるアーチファクトへの耐性が本来的にあるからである。その一方で、テキストおよびベクターオブジェクトは当該耐性を有していない。テキストおよびベクターオブジェクトをダウンサンプリングすると、細部および鮮鋭さが低下するおそれがあり、また色ずれなどのアーチファクトが発生するおそれがある。
インテリジェントダウンサンプリング技法は、属性平面のエッジビットを利用して基本的なダウンサンプリングを改善するものである。これらのエッジビットは、テキストおよびベクターオブジェクトにおいて鮮鋭さを維持し、それにより圧縮画像の品質を高めるようにダウンサンプリングを調整するために用いられる。
特に、単一のダウンサンプリングされた画素値に置き換えられる各2x2ブロック(4画素)において、前記属性平面のエッジビットに関連付けられる画素の数が数えられる。当該合計が0もしくは4の場合、4画素の画素値は平均化され、ダウンサンプリングされた画素値に書き込まれる。しかしながら、4画素の1乃至3がエッジビットに関連付けられる場合、エッジビットに関連付けられる画素の値のみが平均化され、ダウンサンプリングされた画素値に書き込まれる。
例として、2x2ブロックが以下のCbもしくはCr平面の画素値―すなわち、0、72、76、および1―を含むとする。さらに、72および76の値を有する画素はエッジビットに関連づけられており、0および1の値を有する画素はエッジビットに関連づけられていないとする。そうすると、72および76の値を有する画素は平均化され、得られた画素値の74がダウンサンプリングされた画素値に書き込まれ得る。その結果、72および76の値を有する画素により表わされるエッジが強調され得る。
インテリジェントダウンサンプリングを用いるDCT4:2:0圧縮は、表8に規定されている符号化を用いることができる。
i.DCTL圧縮
DCTL圧縮は、また、CbおよびCr平面だけでなくすべての色平面をダウンサンプリングし、かつ圧縮することを除き、DCT4:2:0圧縮と同様である。DCTL圧縮は、Y平面上で小さい範囲の輝度値を有するqセルに適用することが可能である。
表9は、DCTL圧縮に対する2進コード化の例を提供する。DCTL圧縮に対して、qセルの平面の圧縮表現は、オペコード1で始まる、そして表現の残りの部分はDCT符号化である。DCT4:2:0の場合と同様に、DCT符号化は、ハフマン符号化を用いる、JPEG規格のサブセットに従って圧縮された量子化DCT係数の集合でありうる。
j.QD1およびQD1D圧縮
QD1圧縮は、所与のqセルのすべての画素が同じかもしくは値が近い場合に使用され得る。
QD1圧縮は、qセル全体を同じ画素値で符号化する。前記qセルの画素値がお互いに十分近いかどうかは、前記qセルの各pセル内の画素値の範囲、および各pセルの平均値間の差異を調べることにより判定することができる。例えば、前記各pセル内の画素値の範囲がセルレベルの閾値以下であり、および前記pセルの平均値が、すべてお互いのマクロセルレベル閾値以内である場合、QD1圧縮を用いることができる。実施の形態によっては、たとえば、セルレベルの閾値は2と16の間で、一方、マクロセルレベル閾値は1と8の間である場合がある。
QD1D圧縮は、D1D圧縮に類似している。したがって、QD1D圧縮は、qセルの画素値がY、Cb、もしくはCrに対するデフォルト値に一致する場合に使用することができる。
QD1およびQD1D圧縮は、それぞれ、ともにD1およびD1D圧縮についての不可逆のバリエーションである。QD1およびQD1D圧縮に伴う限定された損失量を認めることにより、DCTベースの圧縮の圧縮率と比較して大幅に圧縮率を高めることができる。さらに、D1およびD1D圧縮のように、QD1およびQD1D圧縮はランを可能にし、それによりさらに圧縮率を高める。
その点に応じて、同じ画素値を有する複数の隣接するqセル(例えば、行もしくは列内のqセル)には、QD1もしくはQD1D符号化を用いることが可能である。各QD1およびQD1D符号化は、それぞれ、暗に、QD1もしくはQD1Dセルのランの開始を示す。同じ色平面の中に2つ以上のQD1もしくはQD1Dセルのランが存在する場合、ランの2番目および任意の後続のQD1もしくはQD1Dセルは、QD1C符号化(下記参照)により表わされ得る。ランはQD1E符号化(下記参照)で終了し得る。
表10は、QD1およびQD1D圧縮に対する2進コード化の例を提供する。QD1圧縮に対して、qセルの圧縮表現は、オペコード01で始まる。V’ビットが1である場合、前記QD1符号化は、また、1バイト画素の値引数(前記qセルのすべての画素に対して同じである)を含む。V’ビットが0である場合、前記値引数は符号化から除外され、最新のQD1符号化の値が、前記qセルのすべての画素に対して用いられる。
QD1D圧縮に対して、pセルの圧縮表現は、オペコード00で始まる。前記Vビットは、2つのデフォルト値のうちどれを用いるかを示す(例えば、Vが0である場合、一つの値が用いられ、Vが1である場合、もう一方の値が用いられるであろう)
k.QD1CおよびQD1E圧縮
上記のように、特定の色平面内のランの非先頭セルを符号化する場合、2つのコードのみ―すなわち、QD1C(続行)およびQD1E(終了)―が定義され、それらは、それぞれ、単一ビットを用いて符号化される。後続のqセルが、ランを開始した前記qセルと同じ画素値を含む限り、1ビットのQD1Cオペコードが送出され、そしてQD1もしくはQD1Dラン符号化モードが続行する。後続のqセルが、前記ランの開始に対応する同じ色調の値以外の値を含む場合、前記ランは終了する。かかる場合には、1ビットのQD1Eコードが送出され、ノーマル符号化モードに再度入る。
表11は、QD1CおよびQD1E圧縮に対する2進コード化の例を提供する。QD1C圧縮に対して、1はQD1もしくはQD1Dランの続行を示す。QD1E圧縮に対して、0はQD1もしくはQD1Dランの終了を示す
l.複合およびプレーナモード
上記のように、qセルは、プレーナモード(各平面が独立して圧縮される)もしくは複合モード(2つ以上の平面が、関連する方式で圧縮される)のいすれかで圧縮することができる。実施の形態によっては、属性平面はプレーナモードを用いて圧縮されるのみかもしれないが、色平面は、その特性に基づいて、いずれかのモードを用いて圧縮され得る。
圧縮ビットストリームにおいて、特定のqセルに対して用いられているモードを示すために、各qセルの圧縮表現の初めに特別のqオペコードが送出され得る。qセルが複合モードを用いて圧縮される場合、前記qオペコードは1であり得る、一方qセルがプレーナモードを用いて圧縮される場合は0であり得る。
表12は、複合モードおよびプレーナモードが用いられた場合を規定する。たとえば、qセルに対して(インテリジェントダウンサンプリングを用いるもしくは用いない)DCT4:2:0圧縮もしくはDCT Y圧縮が用いられる場合、当該qセルは、1のqオペコードで始まるが、qセル内の各色平面の符号化に対してオペコードは存在しない。
その他の圧縮技法がqセルに対して用いられる場合、当該qセルは、0のqオペコードが前書きされ、用いられる圧縮技法がそのオペコードで示される。また、ノーマルモードとランモードの間の区別はプレーナモードにおいてのみ存在する。例えば、QD1、QD1D、もしくはDCTL圧縮を用いる任意のqセル符号化はノーマルモードにおいて実行され、一方QD1CもしくはQD1E圧縮を用いる任意のqセル符号化はランモードにおいて実行される。プレーナモードから複合モードに切り替えると、暗黙的にすべてのランが終了する。
複合の符号化は属性平面の符号化を含まないことに留意されたい。属性平面は、別々に符号化されると考えられる。
下記のインターリービングの説明で、複合モードおよびプレーナモード符号化の更なる例を提供する。
9.決定木の例
pセルおよびqセルの符号化は一つ以上の決定木に基づく場合がある。各決定木は、pセルもしくはqセルが符号化される前にさまざまな要因が考慮されるプロセスを示す。属性平面、色平面、およびグレースケール平面に対して別個の決定木があり得る。例えば、属性平面を圧縮する場合、いかなる情報も損失しないことが好ましい。従って、属性平面は、さまざまな可逆圧縮技法を用いて圧縮される可能性がある。その一方で、色平面のある部分(例えば、ベクターグラフィックスおよびテキスト部分)およびグレースケールは、画素の特性評価に基づき様々な程度の損失を伴って圧縮することが好ましい。このようにして、元の画像の細部を必要に応じ維持することができ、しかも高い圧縮率を達成することができる。
a.色平面決定木
図8は、例示の実施形態に従って、色平面の決定木800を示す。当該決定木は、qセルが4つの非オーバーラップpセルから成ることを理解した上で、qセルの特性を考慮する。そのようなqセルおよびqセルに従属するpセルの大きさは、それぞれ、16x16および8x8であり得る。しかしながら、その代わりに他の大きさも使用する場合がある。
前記qセルの各画素は、前記画素が入力画像におけるエッジの一部であるかどうかという表示でタグ付けされている。これらのタグは、前記qセルに対する属性平面に存在する場合がある。
各決定ブロック802、806、810において、決定の種類がかっこに入れて示されている。前記決定がプレーナ基準でされる場合、括弧付きのPが存在する。前記決定が複合基準でされる場合、括弧付きのCが存在する。
プレーナ決定は、各色平面の前記qセルおよび/またはpセルを別個に考慮してなされる。したがって、例えば、プレーナ決定は、単一のqセルおよび/またはpセルに関連付けられた色の特性および/または属性を考慮する場合がある。しかしながら、複合決定は、qセルによって規定された画像の場所のすべての色平面に対する前記qセルとpセルの特性および関連付けられた属性を考慮する場合がある。
簡単にするために、QD1D圧縮は決定木800において明示的には参照されない。しかしながら、QD1が考慮されるあるいは用いられる場合は必ず、QD1D圧縮もまた考慮されあるいは用いられ得る。したがって、ブロック814はQD1D圧縮を用いる場合がある。連続するQD1もしくはQD1D符号化のランは、また、決定木800で明示的に考慮されていないが、それでも使用される場合がある。
ブロック802で、エッジビットが前記qセルの任意の属性バイトに対して設定されているかどうかを判定する。設定されている場合、インテリジェントダウンサンプリングを用いるDCT4:2:0圧縮がブロック804で適用される。適用する場合、前記画像のエッジの鮮鋭さは維持されおよび/または向上され得る。
そうでない場合、ブロック806で、任意の色平面の任意のpセルが所定の閾値より大きい画素範囲を示すかどうか判定される。示す場合、インテリジェントダウンサンプリングを用いないDCT4:2:0圧縮が、ブロック808で適用され得る。pセルの画素範囲は、前記pセルの最も高い画素値から前記pセルの最も低い画素値を差し引くことにより判定され得る。所定の閾値は、8、16、32等の値を取り得る。
そうでない場合は、ブロック810で、条件Aが各色平面に対して別個に審査される。条件Aに適合するためには、(1)各pセルの画素範囲は所定のセルレベル閾値以下であること、および(2)pセルの平均画素値の範囲が所定のマクロセルレベル閾値より小さいことが必要である。前記所定のセルレベル閾値は、4、8、16等の値を取り、前記所定のマクロセルレベル閾値は、2、4、8等の値を取り得る。実施の形態によっては、前記所定のマクロセルレベル閾値は前記所定のセルレベル閾値より小さく、また前記所定のセルレベル閾値は前記所定の閾値より小さい。
条件Aが当てはまる場合、当該平面の前記qセルの画素は狭い範囲の画素値を有しており、QD1圧縮がブロック814で適用される。条件Aが当てはまらない場合は、DCTL圧縮がブロック812で適用される。
図8は、1つの可能性のある色平面の決定木を示す。その他のこのような決定木も可能である。
b.グレースケール平面決定木
図9は、例示の実施形態に従って、グレースケール平面の決定木900を示す。当該決定木は、qセルが4つの非オーバーラップpセルから成ることを理解した上で、qセルの特性を考慮する。そのようなqセルおよびqセルに従属するpセルの大きさは、それぞれ、16x16および8x8であり得る。しかしながら、その代わりに他の大きさも使用する場合がある。グレースケール画像は、輝度(Y)もしくはキー(K)平面のみを含む、そのためこれらの画像のqセルは、プレーナ方式で圧縮することができる。
色平面の決定木と同様、前記qセルの各画素は、前記画素が入力画像におけるエッジの一部であるかどうかという表示でタグ付けされている。これらのタグは、前記qセルに対する属性平面に存在し得る。
各決定ブロック902、906、910において、決定の種類がかっこに入れて示されている。グレースケール画像は単一の色平面を有するので、そのような決定のすべてがプレーナである。したがって、これらの決定は、単一のqセルおよび/またはpセルに関連付けられた特性および/または属性を考慮する。
簡単にするために、QD1D圧縮は決定木900において明示的に参照されない。しかしながら、QD1が考慮されるあるいは用いられる場合は必ず、QD1D圧縮もまた考慮されあるいは用いられ得る。したがって、ブロック914はQD1D圧縮を用いる可能性がある。連続するQD1もしくはQD1D符号化のランは、また、決定木900で明示的に考慮されていないが、それでも使用され得る。
ブロック902で、エッジビットが前記qセルの任意の属性バイトに対して設定されているかどうかを判定する。設定されている場合、DCT Y圧縮がブロック904で適用される。そうでない場合、ブロック906で、前記画素平面の任意のpセルが所定の閾値より大きい画素範囲を示すかどうか判定される。示す場合、DCT Y圧縮がブロック908で適用され得る。pセルの前記画素範囲は、前記pセルの最も高い画素値から前記pセルの最も低い画素値を差し引くことにより判定され得る。前記所定の閾値は、8、16、32等の値を取り得る。
DCT Y圧縮は、qセルの中のpセルのそれぞれにDCTベースの圧縮を実行する。例えば、16x16qセルは、4つの8x8pセルに分割され得る、そしてDCTベースの圧縮が各8x8pセルに適用され得る。
そうでない場合は、ブロック910で、条件Aが審査される。条件A適合するためには、(1)各pセル画素の範囲は所定のセルレベル閾値以下であること、および(2)pセルの平均画素値の範囲が所定のマクロセルレベル閾値より小さいことが必要である。前記所定のセルレベル閾値は、4、8、16等の値を取り、前記所定のマクロセルレベル閾値は、2、4、8等の値を取り得る。実施の形態によっては、前記所定のマクロセルレベル閾値は前記所定のセルレベル閾値より小さく、また前記所定のセルレベル閾値は前記所定の閾値より小さい。
条件Aが当てはまる場合、前記qセルの画素は狭い範囲の画素値を有しており、QD1圧縮がブロック914で適用される。条件Aが当てはまらない場合は、DCTL圧縮がブロック912で適用される。
図9は、1つの可能性のあるグレースケール平面の決定木を示す。その他のこのような決定木も可能である。
c.属性平面決定木
図10は、例示の実施形態に従って、属性平面の決定木1000を示す。当該決定木は、当該属性平面のpセルの各要素が、一対一方式で一つ以上の対応する色平面のpセルの画素値と関連づけられていることを理解した上で、属性平面のpセルの特性を考慮する。これらのpセルの大きさは8x8であり得るが、代わりにその他の大きさを用いてもよい。また、属性平面は1つしかないと想定され、そのため決定木1000におけるすべての決定はプレーナベースでなされる。しかしながら、別の実施の形態では、異なる手法を取るかもしれない。
決定木800および900と同様に、D1DおよびP2D圧縮は明示的に決定木1000で参照されない。しかしながら、D1もしくはP2圧縮が考慮されもしくは用いられる場合は必ず、D1DおよびP2D圧縮もまた考慮されもしくは用いられ得る。したがって、ブロック1002、1004、1006、および1008は、D1DおよびP2D圧縮を考慮および/または用いる可能性がある。連続するD1もしくはD1D符号化のランは、また、決定木1000で明示的に考慮されていないが、それでも使用され得る。
ブロック1002で、前記属性平面のpセルがD1圧縮に適している(すなわち、前記pセルのすべての属性配列が同一である)かどうか判定される。適している場合、D1圧縮がブロック1004で適用される。そうでない場合は、ブロック1006で、前記pセルがP2圧縮に適している(すなわち、前記pセルのすべての属性配列が2つの値のうちの1つを有している)かどうか判定される。適している場合、P2圧縮がブロック1008で適用され得る。
前記pセルがD1もしくはP2圧縮いずれにも適していない場合、ブロック1010で、前記pセルがP4圧縮に適している(すなわち、前記pセルのすべての属性配列が4つの値のうちの1つを有している)かどうか判定され得る。適している場合、P4圧縮がブロック1012で適用され得る。そうでない場合、D64圧縮がブロック1014で適用され得る。
図10は、1つの可能性がある属性平面の決定木を示す。他のそのような決定木も可能である。
10.インターリーブ符号化
セルベース圧縮の符号化出力はインターリーブされる可能性がある。場合によっては、インターリーブされた符号化は非インターリーブ符号化よりすぐれている場合がある。
当該インターリーブは、(1)pセルの配列およびqセル全体の平面、(2)ダウンサンプリングがプレーナ決定かもしくは複合決定か、(3)圧縮性能を考慮する場合がある。最後の考慮に対して、別個のDCT圧縮プロセッサーおよびパターン(非DCT)圧縮プロセッサーが用いられる場合がある。前記DCT圧縮プロセッサーは、前記パターンプロセッサーと並行して実行し、また前記DCT圧縮プロセッサーはずっと実行が遅い―おそらく前記パターンプロセッサーの8分の1の速さ―と想定される。従って、インターリーブの形式は、DCTとパターンpセルのさまざまな組合せにおいて、前記DCTプロセッサーの高い使用率を維持することをサポートし得る。
これらの考慮に基づき、前記属性平面および色平面の前記qセルおよびpセルは、インターリーブ方式で出力媒体(例えば、ブロック606の記憶装置および/またはブロック616の記憶装置)に書き込まれ得る。例として、色モデルがYCbCrAである場合、符号化セルの配列は、属性セル、次に輝度(Y)セル、次にCbセル、次にCrセル、次に別の属性セル、次に別の輝度(Y)セル、次に別のCbセル、次に別のCrセル等になるであろう。
このようなインターリーブ操作の例は図11Aおよび11Bに示されている。図11Aは、属性平面、Y平面、Cb平面、およびCr平面のそれぞれに対する一連の4つのqセルを示す。qセル内の各pセルは、各pセルID(例えば、a、b、c、もしくはd)に関連付けられていて、ボックスとして示されている。前記ボックスは、各pセルを圧縮するために使用された圧縮技法、並びにqセルの番号およびpセルIDを含む。例えば、前記属性平面の第1(左端)のpセルは、P2圧縮を用いて圧縮され、前記pセル1aからのものである。
4つのqセル全体を通して、前記属性平面は一貫してP2圧縮を用いて符号化され、Y平面はDCTもしくはDCTL圧縮を用いて符号化され、Cb平面はDCT(すなわち、DCT4:2:0)もしくはQD1圧縮を用いて符号化され、そしてCr平面はDCT(すなわち、DCT4:2:0)、QD1、もしくはDCTL圧縮を用いて符号化されている。
図11Bは、図11Aのpセルおよびqセルのインターリーブ符号化を示す。色平面と属性平面のそれぞれは、ランがより効率的な方式で符号化される場合を除いて、一対一対一対一にインターリーブされている。例えば、符号化は、複合モード(CM)がアクティブであるという表示を伴って、一番目の出力位置において始まる。次に第1のqセルのpセルが続く。第1のqセルはDCT4:2:0を用いて符号化されているので、第1のqセルに対しては、複合モードが用いられている
前記符号化において、第1のpセルは、前記属性平面の1apセル、次にY平面の1apセル、Cb平面の1apセル、Cr平面の1apセル、前記属性平面の1bpセル、Y平面の1bpセル、等である。複合モードにおいては、Y、Cb、およびCr符号化に対してオペコードが除外されることに留意されたい。
第2のqセルに対して、12番目の出力位置において、プレーナモードに入っている、なぜならば、色チャネルがDCTLおよびQD1圧縮を用いて符号化されているからである。CbおよびCr色チャネルに対するQD1符号化のそれぞれは、暗黙的にQD1ランを始める。符号化されたpセルのそれぞれに対して、オペコードが存在することに留意されたい。
第3のqセルに対して、20番目の出力位置において、またプレーナモードが表示されている、なぜならば色チャネルが、再びDCTLおよびQD1圧縮を用いて符号化されているからである。Cb平面におけるQD1ランが続行するので、QD1C符号化が当該平面に対して用いられる。しかしながら、前記QD1ランはCr平面に対して続行しない。従って、QD1E符号化がQD1ランの終了を示すために用いられ、25番目の出力位置において、Cr平面のpセルを表すためにDCTL符号化が用いられる。
第4のqセルに対して、複合モードが再び用いられる。複合モードインジケータ(29番目の出力位置のCM符号化)は、暗黙的にCb平面におけるQD1符号化のランを終了する。第4のqセルの符号化の後、インターリーブ表現の当該部分を終了するために、別の複合モードインジケータおよび次にエンド・オブ・ファイル(EOF)が符号化される。
インターリーブ操作の別の例を図12Aおよび12Bに示す。図12Aは、前記属性平面、Y平面、Cb平面、Cr平面のそれぞれに対する一連の4つのqセルを示す。しかしながら、図11Aおよび11Bの例と異なり、図12Aの例は、前記属性平面でのD1ランを含む。
図12Bは、図12Aのpセルおよびqセルのインターリーブ符号化を示す。前記色平面と前記属性平面のそれぞれは、ランがより効率的な方式で符号化される場合を除いて、一対一対一対一にインターリーブされている。特に、6番目と10番目の出力位置における2つのD1符号化により表されるように、属性平面のD1ランは暗黙的に第1のqセルで始まる。Cb平面の前記QD1ランは、図11Aおよび11BのQD1ランと同じである。
第2のqセルにおいて、前記D1ランは、13番目の出力位置における単一のD1C符号化によって表される。しかしながら、前記D1ランは第3のqセルで終了する。従って、D1E符号化が18番目の出力位置に現れて、前記D1ランの終了を示す。そして、第3のqセルの4つの属性のpセルが個別に符号化される。
第4のqセルは、qセル内のD1ランを含む。従って、28番目の出力位置において、これらの4つのpセルは、4つのラン(D1R(4))を示す単一のD1符号化で表される。図11Bの例と同じく、圧縮表現の当該部分を終了するために、別の複合モードインジケータおよび次にエンド・オブ・ファイル(EOF)が符号化される。しかしながら、プレーナモードから複合モードに切り替わっても当該の例の属性平面のランを暗黙的に終了させない。その結果、当該機能を実行するためにD1E符号化が36番目の出力位置に現れる。
図11A、11B、12A、および12Bは、例示の目的で提供されている。その他の符号化も本明細書の実施形態によって対応することができ、また実施形態の範囲を逸脱することなくこれらの符号化に対する変形例を実施することは可能である。
11.セルベース解凍の例
一旦、多くのpセルおよび/またはqセルが、例えば、上記の圧縮方法および符号化を用いて圧縮されると、それらは、効率よく格納されおよび/またはケーブルもしくはネットワークを介して送信され得る。しかしながら、どこかの時点で、前記pセルおよび/またはqセルは、元の画像もしくは元の画像の近似画像に解凍される場合がある。本明細書に記載のセルベースの圧縮技法は非可逆の場合もあるので、解凍された画像は、少なくともある程度、元の画像と異なる場合がある。しかしながら、多くのシナリオにおいて、当該差異は人によって知覚されそうにない、もしくは元の画像の許容可能なバージョンであると見なされるかのいずれかであろう。
上記の圧縮符号化で符号化された前記pセルおよび/またはqセルは、以下のように復号しおよび解凍することができる。特定のqセル符号化に対して、前記qセルが、複合モードもしくはプレーナモードを用いて符号化されたかどうかを判定するために前記qオペコードが読み取られる。当該モードに基づき、一つ以上のオペコードが読み取られる。各オペコードの値に基づき、任意の適用可能なオプション、引数、ビットマップ等が、オペコードに続くビットから判定され得る。これらのパラメータから、前記pセルもしくは前記qセルの解凍バージョンが復元され得る。そして、前記画像が復元されるまで次のオペコードが読み取られる等々である。
a.属性平面の解凍
前記属性平面上で、オペコードが001で、D1符号化を示す場合、前記V’ビットおよび前記引数フィールドが読み取られて、圧縮されたエレメントの値が判定され得る。前記レングスビットもまた読み取られて、ランレングスが存在するかどうか判定され得る。そして、各セルのすべての画素が、符号化における値フィールド、もしくは値フィールドのキャッシュされたバージョンにおける値フィールドによって示される値を示し、前記ランレングスと等しい多くのセルが生成される。
前記オペコードが000で、D1D符号化を示す場合、前記Vビットが読み取られて、圧縮されたエレメントの値が判定され、そして前記レングスビットが読み取られて、ランレングスが存在するかどうか判定され得る。そして、各セルのすべての画素が、前記Vビットにより示されるデフォルトの値を示して、前記ランレングスと等しい多くのセルが生成される。
前記オペコードが011で、P2符号化を示す場合、前記オプション、前記引数、および前記ビットマップが読み取られ得る。前記V’ビットが1の場合、前記セルの前記2つの値が判定され得る。そして、各画素が、前記ラインマップおよびビットマップに従って前記2つの値のうち1つを取って、セルが生成され得る。前記ラインマップが存在しない場合、以前のP2セルからのラインマップおよびビットマップが使用される。
前記オペコードが010で、P2D圧縮を示す場合、各画素が、前記ラインマップおよび前記ビットマップに従って前記2つの値のうち1つを取って、セルが生成され得る。前記ラインマップが存在しない場合、以前のP2セルからのラインマップおよびビットマップが使用される。
前記オペコードが100で、P4圧縮を示す場合、前記ラインマップと前記値引数、並びに前記ビットマップが読み取られ得る。そして、各画素が、前記ラインマップおよび前記ビットマップに従って前記4つの色値のうち1つを取って、セルが生成され得る。
前記オペコードが1で、D1C圧縮を示す場合、最新のD1もしくはD1Dセルがコピーされる。前記オペコードが0で、D1E圧縮を示す場合、現在のD1もしくはD1Dランが終了してしまったと見なされる。
前記オペコードが11で、D64圧縮を示す場合、属性当りのビット数が判定され、それに応じて、前記属性フィールドが復号される。属性当りのビット数は、印刷デバイスの種類、および前記解凍が前記パイプラインのどこで行われているかによる場合がある。
b.色平面およびグレースケール平面の解凍
色平面の解凍は、複合モードかあるいはプレーナモードが用いられているかによって変わる。プレーナモードが用いられている場合、前記解凍は、また、ノーマルモードあるいはランモードがアクティブであるかによって変わる。グレースケール平面の解凍は、プレーナモードを用いるのみである。
複合モードが用いられる場合、前記画像がカラーかグレースケールかによって、1のqオペコードに続き、DCT4:2:0もしくはDCT Y符号化のいずれかが行われる。プレーナモードが用いられる場合、0のqオペコードに、次に現れる符号化の種類を示すオペコードが続く。
例えば、ノーマルモードにおいて、オペコード01はQD1符号化を示し、オペコード00はQD1D符号化を示し、およびオペコード1はDCTL符号化を示す。ランモードにおいては、オペコード1はQD1C符号化を示し、オペコード0はQD1E符号化を示す。
インテリジェントダウンサンプリングを用いるDCT4:2:0を用いて圧縮されたpセルを解凍するには、関連付けられた属性配列のエッジビットを用いる場合がある。前記エッジビットは、元の(ダウンサンプリングされていない)エッジビットを表わすので、元の画像のエッジの場所がわかる。さらに、DCT4:2:0圧縮により、前記画素について対応するY平面の値(画素の輝度)もまたわかる。
解凍する場合、ダウンサンプリングされたpセルは、qセルにアップサンプリングされる。従って、例えば、前記pセルの各画素は、前記qセルの中に2x2画素ブロックにアップサンプリングされる。前記ダウンサンプリングされた画素の値をfとする。次に、当該画素がエッジを表す場合、前記2x2ブロックの各画素c(x、y)、c(x+1、y)、c(x、y+1)、およびc(x+1、y+1)はfに設定される。エッジでない各画素のY平面の値は閾値と比較される。前記Y平面の値が前記閾値を超えると、前記エッジでない画素は128(中間色)に設定され、そうでない場合、前記エッジでない画素はfに設定される。エッジが無い場合、4つの画素すべてはfに設定される。前記閾値は任意の値でよく、例えば、220もしくはそれより大きな値でもよい。
実施の形態によっては、代わりに128以外の中間色の値を使用することができる。一般に、この技法は、アップサンプリングしている間エッジを保持する、なぜならば、前記スキャナ部は、エッジを規定する2つの画素のうちの1つが白色か白色に近い場合、画素に対して単にエッジビットを設定するように構成される場合があるからである。
12.パフォーマンス結果の例
本明細書に記載のセルベースの圧縮技法は、JPEG圧縮の2つのバリエーション―JPEGQ90およびJPEGQ95―と比較された。JPEGQ90およびJPEGQ95は、DCT係数に対してJPEGで用いられる共通の量子化テーブルを参照する。JPEGQ90は高い品質をもたらす、そしてJPEGQ95はさらに高い品質をもたらす。26ページの代表的かつ難易度が高いページが、本明細書に記載のセルベースの圧縮技法、並びにJPEGQ90およびJPEGQ95により圧縮された。Flat7量子化テーブルが、DCT係数に対してセルベースの圧縮技法において使用された。
これらの比較についての結果は以下のとおりである。セルベースの圧縮技法は、26ページすべてに対してJPEGQ95より良い圧縮率をもたらした。平均して、JPEGQ95はセルベースの圧縮技法より約85%悪い圧縮率をもたらした。また、セルベースの圧縮技法は、5ページを除くすべてのページに対してJPEGQ90より良い圧縮率をもたらした。当該5ページについて、JPEGQ90は、セルベースの圧縮技法と比較して最大で8%の改善をもたらした。しかし、平均すると、JPEGQ90は、セルベースの圧縮技法より約19%悪い圧縮率をもたらした。
意義深いことに、セルベースの圧縮技法は、2つのJPEGセッティングより、主観的により良い画像品質をもたらした。
13.動作の例
図13、14、および15は、例示の実施形態のフローチャートを示す。これらのフローチャートにより示されるステップは、印刷デバイス100等の1台以上の印刷デバイス、および/またはコンピューティング・デバイス300等のコンピューティング・デバイスにより実行され得る。さらに、各個別のステップの態様は、複数のコンピューティング・デバイスもしくは印刷デバイス間で利用に供することができる。
本明細書で使用される用語に関して、mxn属性セルは、属性平面のプレーナpセルを指し、mxn画素セルは、色平面のプレーナpセルを指し得る。さらに、axb属性セルは、属性平面のプレーナqセルを指し、axb画素セルは、色平面のプレーナqセルを指し得る。全体を通して、aはmより大きく、またbはnより大きい。
図13は、入力画像の色平面のセルベースの圧縮についてのステップを全般的に示す。しかしながら、これらのステップはその他の目的に対しても使用される場合がある。図5乃至12Bに関連して説明された動作は、明示的または暗黙的に当該フローチャートにおいて参照される場合がある。例えば、図13のステップは、印刷デバイスのパイプラインの他の場所においてあるいはホストコンピュータによって、図6のブロック604で行われるであろう。
ステップ1300で、入力画像の輝度平面、第1の色平面、および第2の色平面のそれぞれに対するaxb画素マクロセルが取得され得る。前記axb画素マクロセルは、それぞれ4つの非オーバーラップmxn画素セルを含み、前記axb画素マクロセルの画素は、それぞれの画素値を有し得る。
ステップ1302で、少なくとも前記axb画素マクロセルのe画素が前記入力画像のエッジを表すかどうか判定され得る。eの値は少なくとも1であるとしてもよい。
ステップ1304で、おそらく、少なくとも前記axb画素マクロセルのe画素が前記入力画像のエッジを表しているかどうかに基づき、前記axb画素マクロセルの第1の符号化もしくは第2の符号化のいずれかが選択され得る。前記第1の符号化は、前記入力画像のエッジを表す一部の画素を前記入力画像のエッジを表さない画素より重み付けし、前記第2の符号化は、画素が前記入力画像のエッジを表すかどうかを考慮しない場合がある。
ステップ1306で、前記選択された符号化が実行され得る。ステップ1308で、前記選択された符号化の表現が、実行されたとおり、コンピュータ読み取り可能な出力媒体に書き込まれ得るであろう。
前記第1および第2符号化は圧縮符号化であり得る。従って、今後のステップは、前記axb画素マクロセルについての前記選択された符号化の表現を解凍すること、および、解凍されたaxb画素マクロセルを含めて、前記入力画像を印刷することに関係するであろう。
前記第1の符号化が選択された符号化である場合がある。そのような実施の形態では、前記選択された符号化を実行する場合、第1の色平面と第2の色平面の前記axb画素マクロセルの画素のブロックをダウンサンプリングし、第1の色平面に対する第1のダウンサンプリングされたmxn画素セルと第2の色平面に対する第2のダウンサンプリングされたmxn画素セルを形成し得る。前記ダウンサンプリングは、前記入力画像のエッジを表す画素を前記入力画像のエッジを表さない画素より重み付けし(例えば、インテリジェントダウンサンプリングを使用して)。前記選択された符号化を実行する場合、さらに、前記輝度平面の前記4つの非オーバーラップmxn画素セル、前記第1のダウンサンプリングされたmxn画素セル、および前記第2のダウンサンプリングされたmxn画素セルの変換を符号化し得る。前記変換は、DCT4:2:0等の離散コサイン変換に基づいてもよい。
一方、前記第2の符号化が選択された符号化となる場合がある。そのような実施の形態では、前記選択された符号化を実行する場合、(1)任意の前記axb画素マクロセルの前記4つの非オーバーラップmxn画素セルの少なくとも1つにおける画素値の範囲が閾値より大きいことを判定し、(2)前記第1の色平面および前記第2の色平面の前記axb画素マクロセルの画素のブロックをダウンサンプリングし、前記第1の色平面に対する第1のダウンサンプリングされたmxn画素セルと前記第2の色平面に対する第2のダウンサンプリングされたmxn画素セルを形成し、(3)前記輝度平面の前記4つの非オーバーラップmxn画素セル、前記第1のダウンサンプリングされたmxn画素セル、および前記第2のダウンサンプリングされたmxn画素セルの変換を符号化し得る。前記ダウンサンプリングは、画素が前記入力画像のエッジを表すかどうかを考慮しない場合がある。前記変換は、DCT4:2:0等の離散コサイン変換に基づいてもよい。
さらにべつの代替案では、前記第2の符号化が前記選択された符号化となる場合があり、前記選択された符号化を実行する場合、(1)前記axb画素マクロセルのそれぞれに対する前記4つの非オーバーラップmxn画素セルのそれぞれにおける画素値の範囲が閾値以下であることを判定し、(2)特定の1つの前記axb画素マクロセルに対する前記4つの非オーバーラップmxn画素セルのそれぞれに対するそれぞれの平均画素値を判定し、(3)(a)少なくとも1つの画素値の範囲がセルレベル閾値より大きいか、もしくは(b)前記それぞれの平均画素値の範囲がマクロセルレベル閾値以上であるかのいずれかを判定し、(4)特定の1つの前記axb画素マクロセルにおける画素のブロックをダウンサンプリングしてダウンサンプリングされたmxn画素セルにし、そして(5)前記ダウンサンプリングされたmxn画素セルの変換を(例えば、DCTL圧縮を用いて)符号化し得る。前記ダウンサンプリングは、特定の1つの前記axb画素マクロセルの画素が入力画像のエッジを表すかどうかを考慮しない場合がある。前記閾値は、前記セルレベル閾値および前記マクロセルレベル閾値の両方より大きい場合がある。
さらにべつの代替案では、前記第2の符号化が前記選択された符号化となる場合があり、前記選択された符号化を実行する場合、(1)特定の1つの前記axb画素マクロセルに対する前記4つの非オーバーラップmxn画素セルのそれぞれに対するそれぞれの平均画素値を判定し、(2)前記特定の1つのaxb画素マクロセルに対する前記4つの非オーバーラップmxn画素セルのそれぞれにおける画素値の範囲がすべて、セルレベル閾値以下であることを判定し、(3)前記それぞれの平均画素値の範囲がマクロセルレベル閾値より小さいことを判定し、(4)前記特定の1つの前記axb画素マクロセルを単一の画素値を用いて(例えば、QD1圧縮を用いて)符号化し得る。
図14は、色平面のセルベースの圧縮についてのステップを全般的に示す。しかしながら、これらのステップはその他の目的にも使用される場合がある。図5乃至12Bに関連して説明された動作は、明示的または暗黙的に当該フローチャートにおいて参照される場合がある。例えば、図14のステップは、印刷デバイスのパイプラインの他の場所においてあるいはホストコンピュータによって、図6のブロック604で行われるであろう。
ステップ1400で、入力画像のaxb画素マクロセルが取得され得る。前記axb画素マクロセルの画素はそれぞれの画素値を有し、そしてそれぞれのタグに関連付けられ得る。これらタグは、それぞれ関連付けられた属性配列のエッジビットである場合がある。
ステップ1402で、少なくとも前記それぞれのタグのeが、タグが関連付けられている画素が前記入力画像のエッジを表すことを示すかどうか判定され得る。eの値は少なくとも1であるとしてもよい。
ステップ1404で、おそらく、少なくとも前記それぞれのタグのeが、タグが関連付けられている画素が前記入力画像のエッジを表すことを示すかどうかに基づき、前記axb画素マクロセルの第1の符号化もしくは第2の符号化のいずれかが選択され得る。前記第1の符号化は、前記入力画像のエッジを表す画素を前記入力画像のエッジを表さない画素より重み付けする。前記第2の符号化は、画素が前記入力画像のエッジを表すかどうかを考慮しない場合がある。
ステップ1406で、前記選択された符号化が実行され得る。ステップ1408で、前記選択された符号化の表現が、実行されたとおり、コンピュータ読み取り可能な出力媒体に書き込まれ得る。
実施の形態によっては、前記第1の符号化が選択された符号化である場合があり、前記選択された符号化を実行する場合、(1)前記タグに基づき、前記axb画素マクロセルの第1の2x2画素ブロックが前記入力画像のエッジを表すg画素を含むことを判定し、(2)そしてダウンサンプリングされたmxn画素セルの第1の画素を前記g画素の平均値で符号化し得る(例えば、インテリジェントダウンサンプリングを用いるDCT4:2:0圧縮)。gの値は1、2、もしくは3であってもよい。これらの実施の形態において、前記選択された符号化を実行する場合、さらに、(1)前記タグに基づき、前記axb画素マクロセルの第2の2x2画素ブロックが前記入力画像のエッジを表す画素を含まないことを判定し、(2)そして前記ダウンサンプリングされたmxn画素セルの第2の画素を、前記第2の2x2画素ブロックのすべての画素の平均値で符号化し得る。前記すべての画素の平均値は、画素がエッジを表すかどうかを考慮しない場合がある。
別の実施の形態において、前記axb画素マクロセルは、4つの非オーバーラップmxn画素セルを含む場合がある。前記第2の符号化が選択された符号化である場合があり、前記選択された符号化を実行する場合、(1)少なくとも1つの前記4つの非オーバーラップmxn画素セルにおける画素値の範囲が所定の非ゼロ閾値を超えることを判定し、そして(2)ダウンサンプリングされたmxn画素セルの特定の画素を、前記axb画素マクロセルの特定の2x2画素ブロックの全ての画素の平均値で符号化し得る(例えば、インテリジェントダウンサンプリングを用いないDCT4:2:0圧縮)。前記すべての画素の平均値は、画素がエッジを表すかどうかを考慮しない場合がある。
さらなる実施の形態において、前記axb画素マクロセルは、また、4つの非オーバーラップmxn画素セルを含む場合がある。前記第2の符号化が選択された符号化である場合があり、前記選択された符号化を実行する場合、(1)前記4つの非オーバーラップmxn画素セルのそれぞれにおける画素値の範囲が閾値以下であることを判定し、(2)前記4つの非オーバーラップmxn画素セルのそれぞれに対するそれぞれの平均画素値を判定し、(3)(a)少なくとも1つの前記画素値の範囲がセルレベル閾値より大きいか、もしくは(b)前記それぞれの平均画素値の範囲がマクロセルレベル閾値以上であるかのいずれかを判定し、(4)前記axb画素マクロセルの画素のブロックをダウンサンプリングしてダウンサンプリングされたmxn画素セルとし、そして(5)前記ダウンサンプリングされたmxn画素セルの変換を符号化し得る(例えば、DCTL圧縮を使用して)。前記閾値は、前記セルレベル閾値およびマクロセルレベル閾値の両方より大きい場合がある。前記ダウンサンプリングは、前記axb画素マクロセルの画素が前記入力画像のエッジを表すかどうかを考慮しない場合がある。
さらなる実施の形態において、前記axb画素マクロセルは、また、4つの非オーバーラップmxn画素セルを含む場合がある。前記第2の符号化が選択された符号化である場合があり、そして前記選択された符号化を実行する場合、(1)前記4つの非オーバーラップmxn画素セルのそれぞれに対するそれぞれの平均画素値を判定し、(2)前記4つの非オーバーラップmxn画素セルのそれぞれの画素値の範囲がすべてセルレベル閾値以下であることを判定し、(3)それぞれの平均画素値の範囲がマクロセルレベル閾値より小さいことを判定し、そして(4)前記axb画素マクロセルを単一の画素値で符号化し得る(例えば、QD1圧縮を使用して)。
図15は、属性平面および一つ以上の色平面のセルのインターリーブ圧縮表現についてのステップを全般的に示す。しかしながら、これらのステップはその他の目的にも使用される場合がある。図5乃至12Bに関連して説明された動作は、明示的または暗黙的に当該フローチャートにおいて参照される場合がある。例えば、図15のステップは、印刷デバイスのパイプラインの他の場所においてあるいはホストコンピュータによって、図6のブロック604で行われるであろう。
ステップ1500で、(1)axb属性マクロセル、および(2)入力画像の輝度平面、第1の色平面、および第2の色平面のそれぞれに対するaxb画素マクロセルを取得し得る。前記axb画素マクロセルは、それぞれ、4つの非オーバーラップmxn画素セルを含み得る。前記axb画素マクロセルのaxb画素は、それぞれの画素値を有し得る、そして前記axb属性マクロセルの要素は、一対一方式で、前記axb画素マクロセルのそれぞれにおけるそれぞれの画素に関連付けられ得る。
ステップ1502で、それぞれ4つの非オーバーラップmxn属性セルを表す4つの属性平面出力値が判定され得る。ステップ1504で、少なくとも前記axb画素マクロセルのe画素が入力画像のエッジを表すことを、前記axb属性マクロセルが示すかどうかに、おそらく少なくとも部分的に基づいて、前記輝度平面の前記axb画素マクロセルを表す1乃至4つの輝度平面出力値が判定され得る。eの値は少なくとも1であるとしてもよい。
ステップ1506で、前記第1の色平面の前記axb画素マクロセルを表わすための第1の色平面出力値および前記第2の色平面の前記axb画素マクロセルを表わすための第2の色平面出力値が判定され得る。ステップ1508で、前記4つの属性平面出力値、前記1乃至4つの輝度平面出力値、前記第1の色平面出力値および前記第2の色平面出力値のインターリーブ表現が、コンピュータ読み取り可能な出力媒体に書き込まれ得る。前記第1の色平面出力値はaxbバイト未満で表され、そして前記第2の色平面出力値もaxbバイト未満で表され得る。
実施の形態によっては、前記1乃至4つの輝度平面出力値を判定する場合、(1)少なくとも前記axb画素マクロセルのe画素が前記入力画像のエッジを表すことを、前記axb属性マクロセルが示すことを判定し、そして(2)前記輝度平面の前記axb画素マクロセルの前記非オーバーラップmxn画素セルのそれぞれを別々に表す4つの輝度平面出力値を判定し得る。前記第1の色平面出力値および前記第2の色平面出力値は、それぞれ、前記第1の色平面および前記第2の色平面の前記axb画素マクロセルのダウンサンプリングバージョンであり得る、そして前記入力画像のエッジを表す画素を前記入力画像のエッジを表さない画素よりも重み付けする。
一方、前記1乃至4つの輝度平面出力値を判定する場合、(1)(a)前記axb画素マクロセルのe画素より少ない画素が前記入力画像のエッジを表すことを前記axb属性マクロセルが示すこと、および(b)前記axb画素マクロセルの前記4つの非オーバーラップmxn画素セルのうちの少なくとも1つの画素値の範囲が閾値より大きいことを判定し、そして(2)前記輝度平面の前記axb画素マクロセルの前記非オーバーラップmxn画素セルのそれぞれを別々に表す4つの輝度平面出力値を判定し得る。前記第1の色平面出力値および前記第2の色平面出力値は、それぞれ、前記第1の色平面および前記第2の色平面の前記axb画素マクロセルのダウンサンプリングバージョンであり得る、そしてここで、前記ダウンサンプリングは、画素が前記入力画像のエッジを表すかどうかを考慮しない。
他の実施の形態において、前記1乃至4つの輝度平面出力値を判定する場合、(1)(a)前記axb画素マクロセルのe画素より少ない画素が前記入力画像のエッジを表すことを前記axb属性マクロセルが示すこと、および(b)前記axb画素マクロセルのそれぞれに対する前記4つの非オーバーラップmxn画素セルのそれぞれの画素値の範囲が閾値以下であることを判定し、そして(2)前記輝度平面の前記axb画素マクロセルを表す1つの輝度平面出力値を判定し得る。
それに代わってもしくはさらに、4つの輝度平面出力値が判定された場合、前記インターリーブ表現は複合モードインジケータによって始まり、前記インターリーブ表現の前記1乃至4つの輝度平面出力値、前記第1の色平面出力値、および前記第2の色平面出力値のそれぞれに対してオペコードは除外され得る。その一方で、1つの輝度平面出力値が判定された場合、前記インターリーブ表現がプレーナモードインジケータによって始まり、そしてオペコードが、前記インターリーブ表現の前記1乃至4つの輝度平面出力値、前記第1の色平面出力値、および前記第2の色平面出力値のそれぞれに対して含まれ得る。
場合によっては、前記第1の色平面出力値は、前記第1の色平面に対する同一の出力値のランの続行もしくは終了を示す場合がある。同様に、前記第2の色平面出力値は、前記第2の色平面に対する同一の出力値のランの続行もしくは終了を示す場合がある。
14.結論
本出願において記述されている具体的な実施形態に関して、本開示は限定されるべきではなく、それらはいろいろな態様の実例として意図されている。
当業者にとって明白であるように、本開示の主旨と範囲から逸脱することなく多くの変更および変形をすることが可能である。本記載に列挙されていることに加え、本開示の範囲内の機能的に等価な方法および装置は前述の記載から明白であろう。そのような変更および変形は、添付された請求項の範囲内に入るように意図されている。
図面における、任意のすなわち全てのラダー図、シナリオ、およびフローチャートに関しておよび本記載で述べられたように、各ブロックおよび/または通信は、例示の実施形態に従って情報を処理しおよび/または情報を送信することを表し得る。他の実施形態もそのような例示の実施形態の範囲に含まれ得る。さらに、より多くのもしくはより少ないブロックおよび/または機能が、本記載に記述されているどのラダー図、シナリオ、およびフローチャートと共に使用されてもよいし、また当該ラダー図、シナリオ、およびフローチャートは、部分的にもしくは全体的にお互いに結合されてもよい。
情報の処理を表すステップもしくはブロックは、本記載の方法もしくは技法の具体的な論理機能を実行するように構成することが可能な回路に相当し得る。それに代えてまたはさらに、情報の処理を表すステップもしくはブロックは、モジュール、セグメント、もしくはプログラムコードの一部分(関連するデータを含めて)に相当し得る。前記プログラムコードは、前記方法もしくは技法における具体的な論理機能もしくは動作を実行するための、処理部により実行可能な一つ以上の指示を含み得る。前記プログラムコードおよび/または関連するデータは、ディスクドライブ、ハードドライブ、もしくはその他の記憶媒体を含む記憶装置等の任意の種類のコンピュータ読み取り可能な媒体に格納することが可能である。
コンピュータ読み取り可能な媒体は、また、レジスタメモリ、プロセッサーキャッシュ、および/またはランダムアクセスメモリ(RAM)のような短期間データを格納するコンピュータ読み取り可能な媒体等の、非一時的でコンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体は、また、例えば、リードオンリーメモリー(ROM)、光学もしくは磁気ディスク、および/またはコンパクトディスク・リードオンリーメモリー(CD―ROM)のような、二次的もしくは持続的長期記憶装置等、より長期間プログラムコードおよび/またはデータを格納する非一時的でコンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体は、また、他の揮発性もしくは不揮発性記憶システムでもあり得る。コンピュータ読み取り可能な媒体は、また、例えば、コンピュータ読み取り可能な記憶媒体および/または有形の記憶デバイスと考えることができる。
さらに、本明細書における要素、ブロックもしくはステップのあらゆる列挙、図面、あるいは請求項は明確にする目的のためである。したがって、このように列挙されていても、これらの要素、ブロック、もしくはステップが特定の配置に固執したり、あるいは特定の順序で実行されることを必要とするあるいは意味するものと解釈されるべきではない。
本記載においてさまざまな態様および実施形態が開示されてきたが、他の態様および実施形態も当業者にとって明白であろう。本記載において開示されたさまざまな態様および実施形態は、例示目的であって限定することを意図するものではなく、真の範囲と主旨は以下の請求項により示されている。