本明細書において方法とシステムの例を記述する。さらに他の例示的な実施形態又は特徴を利用してもよく、また本明細書において提示されている主題の範囲から逸脱することなく、その他の変更がなされてもよい。以下の詳細な説明において、本明細書の一部を構成する添付図面を参照する。
本明細書において記載されている例示的な実施形態は限定することを意図するものではない。従って、本明細書において全般的に記載され、そして図面に示されているように、本開示の諸態様は、様々に異なる構成に配置し、置き換え、結合し、分離し、および設計することが可能である、そしてそれらの全てが本明細書において明瞭に熟慮されている。
[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.5×11インチ用紙、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は、電子文書を物理的媒体(例えば、1枚以上の用紙)に印刷してもよい。
スキャン〜ホストデータパス306もまた、スキャナ部302およびコンピューティング・デバイス300によりサポートされてもよい。スキャン〜ホストデータパス306は、例えば、ユーザが物理的文書のスキャンを印刷デバイス100に指示する場合に利用してもよい。ユーザは、また、得られた電子文書の表現をコンピューティング・デバイス300に送信するように印刷デバイス100に指示してもよいし、又は、印刷デバイス100を電子文書をコンピューティング・デバイス300に自動的に送信するように、予め構成してもよい。よって、この指示に従い、スキャナ部302は、物理的文書を電子文書にスキャンし、得られた電子文書をスキャン〜ホストデータパス306を介して、コンピューティング・デバイス300に送信してもよい。スキャン〜ホストデータパス306の使用には、印刷デバイス100のデータ記憶部内の電子文書のいくつか、又は全ての、少なくとも一時的な格納(おそらく圧縮された形式で)と、得られた電子文書の表現の、コンピューティング・デバイス300への送信を含んでもよい。
ホスト〜印刷データパス308は、コンピューティング・デバイス300および印刷部304によりサポートされてもよい。ホスト〜印刷データパス308は、例えば、ユーザが電子文書の印刷デバイス100での印刷を、コンピューティング・デバイス300に指示する場合、利用してもよい。この指示に従い、コンピューティング・デバイス300は、電子文書の表現を印刷部304に送信してもよい。印刷デバイス100は、印刷部304を介して、電子文書を物理的媒体に印刷してもよい。電子文書のいくつか、又は全ては、電子文書の印刷前および/または間に、印刷デバイス100のデータ記憶部に(おそらく圧縮された形式で)格納してもよい。
おそらく印刷デバイス100によりサポートされた他のデータパスと同様、上述のデータパスの少なくとも1つに対して、電子文書がネットワーク、又はケーブルを通じて、格納および/または送信を要求してもよいのは明らかだ。電子文書の格納および送信両方の効率は、これらの格納および/または送信用の電子文書の圧縮により、向上させることができる。例えば、電子文書を平均して元のサイズの4分の1に圧縮できれば、約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)として表現され、各プレーンは0から予め定義された最大値(例えば、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プレーン・タプル(C、M、Y、K)として表され、各プレーンは0から予め定義された最大値まで変化することができる。
CMYKカラーモデルを使用することで、CMYモデルと同一の色がサポートされるが、K着色剤はC、M、Y着色剤の混合物に置き換えることができるため、一般的にインクの利用が減少する。しかしながら、例えば、異なるC、M、Y、およびKの組合せの混合が同一の色となり得るように、K着色剤の追加により余剰が加わるため、CMYKカラーモデルは他のカラーモデルへ、または他のカラーモデルから、常に都合良く変換できるわけではないかもしれない。実施形態によっては、1以上のカラーテーブルは、画素をCMYモデルからCMYKモデルへ、および/または他のカラーモデルのペア間で変換するために利用されてもよい。
追加のカラーモデルはグレーで、グレースケールとも呼ばれ、白黒画像の表現に利用してもよい。RGBおよびCMY/CMYKカラーモデルと異なり、グレーカラーモデルの各画素は、画素の強度を符号化するシングルプレーン(K)を使用して表される。グレープレーンにより利用される値は、黒を表す0から、白を表す予め定義された最大値(例えば、255)まで変化させることができる。実施形態によっては、印刷デバイス100によりサポートされたデータパスの1以上は、グレーカラーモデルを使用して画像を符号化できてもよい。
もう1つのカラーモデルはYCbCrである。実装によっては、このカラーモデルは、画像の代替表現として利用してもよい。具体的に言えば、Yプレーンは画素の明度を表し、Cb、Crプレーンはそれぞれブルー・イエロークロミナンスおよびレッド・グリーンクロミナンスを表すかもしれない。YCbCrカラーモデルは、RGBおよびCMYカラーモデルと、明確に定義された関係を有し、比較的容易にこれらのカラーモデルのいずれかへ、またはいずれかから変換できる。
YCbCrカラーモデルの追加的な利点は、YCbCrカラーモデルを使用して符号化された画像の圧縮は、RGB又はCMY/CMYKカラーモデルで符号化された画像の圧縮より効率的な傾向にあることである。具体的に言えば、人間の眼は、画像の高周波(例えば、急変する)クロミナンス情報を検出することが苦手である。従って、YCbCrカラーモデルを使用して符号化された画像は、Cb、Crプレーンの高周波成分を無視することにより、この情報を利用することができる。そのため、特定のカラーモデルで符号化された画像は、圧縮パフォーマンスを向上するため、圧縮前にYCbCrカラーモデルに変換してもよい。
[5.属性プレーンの例]
カラープレーンに加え、画像は属性プレーンを使用して、デジタル処理で表示してもよい。属性プレーンの値は画像に明白に現れないかもしれないが、属性プレーンは画像圧縮への指示、および操作の処理に利用してもよい。
例として、画像の各画素は、属性を表すビットの配列(例えば、8ビット、又は16ビット)に関連付けられてもよい。これらの属性のいくつかは、画素が他の材料上のオーバーレイとして利用されているかどうか、又は印刷又はコピー機能の一部として利用されているかどうかを示してもよい。他の属性は、中性色保存技術の参照、カラーモデル間の画素変換の際に使用する色変換テーブル、および/または画素の印刷の際に使用するハーフトーン・スクリーンの参照を含んでもよい。
属性プレーンの配列は、関連付けられている画素が表すオブジェクトタイプを識別するために、利用してもよい。これらの識別されたオブジェクトタイプは、例えば、グラフィカル画像、ベクトルグラフィックス、又はテキストを含んでもよい。オブジェクトタイプタグは、属性配列のような、1以上のビットであってもよい。
例示の属性配列500は、図5に示される。属性配列500は、オーバーレイビット502、2つの中性色保存ビット504、506、2つのカラーテーブルビット508、510、コピー又は印刷ビット512、および2つのハーフトーンビット514、516を含む。
オーバーレイビット502は、関連付けられている画素が他の材料に重なるかどうかを示すかもしれない。例えば、印刷デバイスによっては、いくつかの印刷ジョブへの1以上の背景画像又はパターンの適用をサポートしてもよい。これらの画像又はパターンは、ロゴマーク又は境界のような、静的なもの、又は自動ページ番号付け(例えば、文書の各ページの下部の「ページ1/3」のような語句の表示)のような動的なものでもよい。
例えば、自動ページ番号付けの場合、ページ番号を付与するため、ユーザが印刷デバイスに指示してもよい。ユーザは、自動ページ番号付けを特定するため、印刷デバイスのユーザインターフェースでオプションを選択してもよい。代わりに、電子文書を印刷デバイスに送信するコンピュータのプリンタドライバーが、自動ページ番号付けを特定してもよい。別の場合では、印刷デバイスは、画素が前景画素(例えば、ページのテキスト)か、背景画素(例えば、ページの白色背景)かを検知し、前景画素が重なっていることを示すかもしれない。
中性色保存ビット504、506は、画素が白、黒、又はグレーのような「中性」色か、非中性色かを示してもよい。例えば、中性色保存ビット504、506は、白に「00」、黒に「01」、他の中性のグレーに「10」、又は非中性色に「11」の値を取ってもよい。
中性色保存の実行は、CMYカラーモデルからCMYKカラーモデルへの色変換処理、および/または他のカラーモデル間の色変換処理を向上させるかもしれない。プリンタは、ブラックトナーのみの使用の結果、Kカラーチャンネルを使用して中性色を全体的に表せるように、この変換を行なってもよい。従って、白い画素を白のまま、黒い画素を黒のまま、グレーの画素をCMYKカラーモデルで(0、0、0、K)として表すのが望ましい。しかしながら、本明細書における非可逆圧縮・解凍技術では、中性の画素を非中性色として表すことができる。
CMYカラーモデルでは、3つの全チャンネルが同一の値を取る場合、色は中性のグレーであり、このような中性色は(0、0、0、K)というCMYKカラーモデルに変換することができる。例として、グレーのCMY画素(73、73、73)は、非可逆圧縮/解凍技術により、非グレーの画素(73、74、72)に変更してもよい。従って、この画素の色の中性は失われ、この画素の印刷にはカラートナーが利用される。この欠点を克服するため、中性色保存ビット504、506は、解凍されたCMY画素を中性の状態に戻すために利用することができる。これを行う1つの可能な方法は、C、M、Y画素の平均値を取り、その値を最も近い整数に丸め、得られた値を3つの全カラーチャンネルに使用することである。
一方、場合によっては、画素の値は中性である(例えば、C、M、Y画素は全て同一の値を取る)と示しているかもしれない。しかし、中性色保存ビットは「11」という値を取ってもよい。この場合、カラープレーンの1つの最下位ビットは、画素を非中性色に変更するため、反転(0から1、又は1から0)してもよい。
加えて、純白のCMY画素は(0、0、0)の値を取り、関連付けられている中性色保存ビットは「00」となるかもしれない。圧縮および解凍後、画素は(0、2、1)のような、非純白の値を取るかもしれない。この場合、中性色保存ビットは検討され、画素は純白であるべきだと決定されてもよい。従って、画素の値はその純白の特性を保存するため、(0、0、0)に変更されてもよい。
同じく、純黒のCMY画素は(255、255、255)の値を取り、関連付けられている中性色保存ビットは「01」となるかもしれない。圧縮および解凍後、画素は(255、253、253)のような、非純黒の値を取るかもしれない。この場合、中性色保存ビットは検討され、画素は純黒であるべきだと決定されてもよい。従って、画素の値はその純黒の特性を保存するため、(255、255、255)に変更されてもよい。
本明細書において、(0、0、0)の値を持つ純白画素、および(255、255、255)の値を持つ純黒画素は、「純極」値を持つ画素と呼んでもよい。色値を表すために、8ビットより多くのビットが利用される場合、(0、0、0)および(255、255、255)以外のそれぞれの画素値が純白および純黒を表してもよい。「純極」値を持つ画素は、(255、0、0)および(0、255、0)のような任意の組合せの「純極」値を有する画素を含むようにしてもよい。
カラーテーブルビット508、510は、可能性のある一例として、CMYおよびCMYKカラーモデル間のカラープレーン値のマッピングを含むカラーテーブルを示してもよい。上で述べたように、画素のオブジェクトタイプ(例えば、画像グラフィックス、ベクトルグラフィックス、又はテキスト)は、画素が取り出された電子文書のPDL表現から決定してもよい。画素のオブジェクトタイプに基づいて、異なった色変換テーブルが適用されてもよい。例えば、カラーテーブルビット508、510は、画素がテキスト・オブジェクトの一部の場合「00」を、画素がベクトルグラフィックス・オブジェクトの一部の場合「01」を、画素が画像グラフィックス・オブジェクトの一部の場合「11」の値を取ってもよい。カラーテーブルビット508、510の値に基づいて、複数の色変換テーブルの1つが選択され、画素に適用されてもよい。
コピー又は印刷ビット512は、関連付けられている画素が、コピーされる(スキャンされて、印刷される)、又は従来通り印刷される(例えば、PDL文書からローカルに格納される、又は他のデバイスから受信される)かを示してもよい。このビットの値は、8つまでのハーフトーン・スクリーン(下記ハーフトーニングの考察を参照)の1つを選択するため、ハーフトーンビット514、516の値と結合されてもよい。場合によっては、スキャン後、印刷される電子文書は、特定のタイプのハーフトーン・スクリーンを使用してもよく、従来通り印刷される電子文書は、他のタイプのハーフトーン・スクリーンを使用してもよい。
ハーフトーンビット514、516は、ハーフトーン・スクリーンが印刷時に画像に適用されるかどうか、また、どのハーフトーン・スクリーンが適用されるかを、示してもよい。ハーフトーニングは、サイズ、形状、又は間隔が異なるドットを利用して、勾配をシミュレーションする技術である。ハーフトーニングは、さまざまな色の多数の色調を含む画像を、一連の重ね合ったハーフトーン・スクリーンに分解することができ、各スクリーンは単一(2値)の色合いの特定の色を含む。重ね合ったハーフトーン・スクリーンにより、ドットが滑らかな階調に混合された外観が作成される。
カラーテーブルビット508、510と同様、ハーフトーンビット514、516は、画素が表すオブジェクトのタイプに基づいた値を取ってもよい。従って、ハーフトーンビット514、516は、画素が画像グラフィックス・オブジェクトの一部場合「00」を、画素がベクトルグラフィックス・オブジェクトの一部の場合「01」を、画素がテキスト・オブジェクトの一部の場合「11」の値を取ってもよい。ハーフトーンビット514、516の値に基づいて、複数のハーフトーン・スクリーンの1つが選択され、画素に適用されてもよい。
同一の3つのオブジェクトタイプに基づくにもかかわらず、カラーテーブルビット508、510はハーフトーンビット514、516と異なるかもしれない。これら2つの情報の異なるセットを保持する1つの考えられる理由は、いくつかのPDLで混合するオブジェクト画素のオーバーラップを考慮することである。例えば、テキスト画素がラスター画像画素と混合する場合、カラーテーブルビット508、510はラスター画像を示し、ハーフトーンビット514、516はテキストを示してもよい。この特徴により、オーバーラップし、混合されたオブジェクトの画像品質が維持される。
例示の属性配列500は、1画素当たり8ビット(1バイト)を含む。従って、このスタイルの属性配列を使用すると、属性プレーンの大きさは画像の画素数と共に、直線的に増加する。画像の画素に関連付けられている属性配列の範囲を、その画像に対する属性プレーンと呼んでもよい。
属性プレーンはAプレーンと呼んでもよい。従って、属性プレーンが1以上のカラープレーンと結合される場合、結合された属性およびカラープレーンは、利用されるカラーモデルによって、KA、CMYA、CMYKA、RGBA、又はYCbCrAと呼んでもよい。本明細書において、これらの結合された属性およびカラープレーンの例を、属性プレーンがそれ自体、実際、色を表していないにも拘わらず、「カラーモデル」 と呼んでもよい。
[6.イメージング・パイプラインの例]
例示のイメージング・パイプラインの高レベルな概観は、図6に示される。このイメージング・パイプラインはフローチャート600の形式を取り、多数の圧縮および解凍のステップを含む。フローチャート600は、電子文書の受信、格納、および印刷のため、印刷デバイスによって実行される一連のステップを表してもよい。
図6のブロック602では、電子文書はKA又はCMYAカラーモデルに従ってフォーマットされた1以上の画像として表してもよい。しかしながら、これらのカラーモデルはイラスト用に選択され、他のカラーモデルが利用されてもよい。KA又はCMYA画素は、電子文書のPDL表現から取り出されてもよい。
代わりに、ブロック602では、電子文書は、ビットマップ、JPEG、GIFなどのような、画像フォーマットによって表され、例えば、KA又はCMYAカラーモデルに変換されてもよい。
ブロック604では、セルベース圧縮(以下で詳細に説明)が電子文書の各プレーンの画素に適用されてもよい。従って、KA電子文書用に、セルベース圧縮がグレープレーンおよび属性プレーンに適用されてもよい。CMYA電子文書用には、セルベース圧縮がC、M、Y、Aプレーン毎に別々に、又は合成して、適用されてもよい。よって、場合によっては、セルベース圧縮は、同一の論理演算において、2つ以上のプレーンの対応するセルを圧縮してもよい。ブロック604の結果は、電子文書の圧縮バージョンを表すビットストリームであってもよい。
ブロック606では、この圧縮バージョンはストレージ出力媒体に格納されてもよい。概して、このストレージは、1枚以上のページの圧縮表現を格納する印刷デバイスのメモリであってもよい。本明細書において説明されている圧縮技術によれば、これらの文書を元のビットマップサイズの少なくとも3分の1、又は4分の1に圧縮できるかもしれないため、ストレージのメモリサイズの要求は従って、縮小されるかもしれない。結果として、本明細書における実施形態を組み込んだ印刷デバイスは、安価に製造されるかもしれない。
ブロック608では、セルベース解凍が電子文書の各プレーンに適用されてもよい。これにより、電子文書のKA又はCMYA表現が再現されるかもしれない。しかしながら、セルベース圧縮技術が非可逆圧縮を使用する場合、ブロック608の解凍から得られる電子文書は、ブロック604の圧縮により圧縮された電子文書とは異なるかもしれない。それでも、これらの電子文書のバージョン間の差異はほんのわずかであり、人間により容易には認識されないかもしれない。
ブロック610では、電子文書の解凍バージョンがさらに処理されてもよい。例えば、電子文書にさまざまな変換が適用されてもよい。電子文書に1以上のこれらの変換が行われた後、電子文書はブロック604で再び圧縮され、ブロック606でストレージに格納されてもよい。ブロック610のアプリケーションはオプションで、全ての電子文書がこの処理の対象となるわけではない。
ブロック612では、電子文書の解凍バージョンも、さらに処理されてもよい。ブロック614では、セルベース圧縮が電子文書の各プレーンに適用されてもよい。この圧縮手順は、ブロック604の手順と同一でもよいし、異なってもよい。例えば、ブロック614で適用された圧縮は、ブロック604の圧縮よりも高い、又は低い圧縮比を得られるように構成されてもよい。
ブロック616では、この圧縮バージョンはストレージに格納されてもよい。ブロック606のストレージのように、このストレージは1枚以上のページの圧縮表現を格納する印刷デバイスのメモリでもよい。これらのページ表現は圧縮されるため、ストレージのメモリ要求および費用は縮小する。
ブロック618では、セルベース解凍が電子文書の各プレーンに適用されてもよい。これにより、電子文書のKA、CMYA、又はCMYKA表現が再現されてもよい。ブロック608のケースのように、セルベース圧縮技術が非可逆圧縮を使用する場合、ブロック618の解凍から得られた電子文書は、ブロック604および/またはブロック614の圧縮により圧縮された電子文書のバージョンとは異なるかもしれない。
ブロック620では、電子文書にさらに処理が適用されてもよい。ブロック620の後、電子文書は印刷準備が整う、又は追加の処理が適用されるかもしれない。
ブロック604および614のセルベース圧縮手順は、同一でもよいし、異なってもよい。例えば、これらの手順は、異なる圧縮アルゴリズムを使用してもよい、又は、同一又は異なる設定で同一の圧縮アルゴリズムを使用してもよ。同様に、ブロック608および618のセルベース解凍手順は、同一でもよいし、異なってもよい。
実施形態によっては、1画素当たり利用される属性プレーンビットの数は、フローチャート600で圧縮が行われるポイントに基づいて変化してもよい。例えば、属性配列500の全ビットが、ブロック604で圧縮されてもよい。色変換、中性色保存、オーバーレイ処理、およびハーフトーニングはブロック604の後で起こるため、属性配列500の各ビットは、保存されるべきである。
しかしながら、ブロック612の後、オーバーレイビット502、中性色保存ビット504、506、およびカラーテーブルビット508、510はもはや必要ではないかもしれない。さらに、いくつかのタイプの印刷デバイスはコピー機能を持たない。従って、これらの印刷デバイスに対しては、コピー又は印刷ビット512はフローチャート600のいずれのポイントでも利用されない可能性があり、ブロック604およびブロック614の圧縮から省略できる。
いずれにしても、さまざまな実施形態において、属性配列500の0から6までのビットのどこでも、セルベース圧縮手順から省略されてもよい。その結果、1セル当たり圧縮されるビットの総数は減少し、代わりに属性プレーンのセルの達成可能な圧縮比が上昇するかもしれない。
本明細書における説明では、画像の属性およびカラープレーンに適用されるセルベース圧縮の単一インスタンスに焦点を当てている。画像は、1枚以上のページを含む電子文書の単一ページの表現でもよい。とはいえ、このセルベース圧縮の多数のインスタンスは、パイプライン600又はいくつかの他の配置に従って、画像などのセルに適用されてもよい。この方法により、画像全体が効率的に圧縮されるかもしれない。
さらに、セルベース解凍技術も、本明細書において説明されているセルベース圧縮技術を反転させることにより、画像に適用されてもよい。
[7.セル・コンフィギュレーションの例]
セルベース圧縮の1局面は、電子文書の各カラープレーンおよび属性プレーンを1以上のm×nセルに分割し、その後、各セルを部分的に独立した、又は完全に独立した方法で圧縮してもよいということである。例えば、mは8、nは4かもしれない。代わりに、mが8、nが8、又は同様に、mが16、nが16かもしれない。mおよびnの他の値を利用してもよい。
各セルは、どのタイプの圧縮技術が、そのセルのデータの圧縮に最も効率的かを判定するために評価されてもよい。例えば、セルが全て同一の色の画素から成る場合、セルのデータはその色およびおそらくいくつかのオーバーヘッドデータの表現に非常に効率よく圧縮されるかもしれない。しかしながら、セルがフォトリアリスティック画像の一部を含む場合、セルのデータはそのように高い圧縮比では圧縮できないかもしれない。
図7は、セルベース圧縮で利用され得るセル構造の一例を示す。便宜上、セルは、pCellおよびqCellを単位として考える。pCellは、画像のカラープレーン又は属性プレーンのm×n構成要素ブロックでよい。従って、カラープレーン用に、pCell構成要素が画素、属性プレーン用に、pCell構成要素が属性配列であってよい。qCellは、画像のカラープレーン又は属性プレーンのa×b構成要素ブロックでよい。各qCellは、いくつかの数の非オーバーラップpCellから構成されてもよい。コンテキストによって、「pCell」および「qCell」という言葉は、単一の属性又はカラープレーン、又は複数の属性およびカラープレーンの構成要素に言及することもあり得る。
例として、図7はそれぞれが特定プレーン用の64の属性又は画素値を含む、4つの8×8・pCell・700、702、704、706を示す。各属性又は画素値は、例えば、0乃至255の範囲の数によって表され、従って、バイトとして表されてもよい。しかしながら、他の可能性も存在する。単純化するため、pCell・700は、いくつかの代表値の位置のみを示す。
図7に示される4つのpCellの2×2配置は、qCellと呼んでもよい。従って、図7のqCell・710は16×16で、特定のプレーンの256の属性又は画素値を含んでもよい。とはいえ、qCellは、異なる数のpCell(例えば、3×2、2×3、又は3×3ブロックのpCell)を含むこともあり得る。
図7は、上方左手のpCellを「a」pCellと、上方右手のpCellを「b」pCellと、下方左手のpCellを「c」pCellと、および下方右手のpCellを「d」pCellと呼ぶ。これらの名称はpCell・IDと呼んでもよく、単にqCell内のpCellの位置を区別するための便利な方法であり、以下のインターリービングの考察で利用される。
本明細書において説明されているセルベース圧縮技術は、pCellおよびqCellで動作してもよい。単純化のため、8×8・pCellおよび16×16・qCellが利用されると仮定する。しかしながら、この仮定は、異なったサイズのpCellおよびqCellを代わりに利用してもよいという了解のもとにある。
さらに、プレーンのpCell又はqCellは、単一プレーンの構成要素に言及してもよい一方、合成pCell又はqCellは、複数のプレーンにまたがる、対応する構成要素に言及してもよい。例えば、CMYAカラーモデルが利用される場合、プレーンのpCellがC、M、Y、Aプレーンの1つの構成要素を含んでもよい一方、合成pCellはC、M、Y、Aプレーンの2つ以上の構成要素含んでもよい。
[8.セルベース圧縮の例]
次の複数のサブセクションでは、さまざまなセルベース圧縮技術について、詳細に説明する。これらの各技術は、pCell、qCell、又は両方で動作する。これらの圧縮技術の概要は、表1に提供される。
[a.D1およびD1D圧縮]
D1圧縮は、任意のpCellの全ての属性又は画素が同一の場合に利用してもよい。例えば、pCellの各属性又は画素が0乃至255の値を取ると仮定する。全ての値が74の場合、ただ1つの例として、D1圧縮をこのセルに適用してもよい。この方法により、pCellを表すために必要とされるデータの量を著しく縮小することができる。
D1D圧縮と呼んでもよい、D1圧縮の変形は、色値がデフォルトの色の場合に利用してもよい。例えば、YCbCr色空間のYプレーン、グレー色空間、および全CMYK色空間において、デフォルト値は0および255でよい。YCbCr色空間のCbおよびCrプレーンにおいては、デフォルト値は128および255でよい。D1D圧縮は、D1圧縮より多少効率的に符号化する。色空間には限られた数のデフォルト値(例えば、2)のみしかないため、これらのデフォルト色値は少数のビット(例えば、1)で表すことができる。結果的に、D1D圧縮は1・pCell当たり、D1圧縮より少ないビットしか要求しないかもしれない。
属性プレーンに対して、D1Dデフォルト値は予め決められていてもよいし(例えば、0又は128)、又はユーザにより手動で設定されてもよい。
場合によっては、全ての属性又は画素に対して、同一の値を持つ複数の隣接するpCell(例えば、1行又は1列のpCell)は、D1又はD1D符号化を使用して表してもよい。これが起こり得る、2つの考えられる方法がある。D1およびD1Dの両圧縮は、ランレングスの符号化を可能にする。ランレングスは、合計どのくらいのpCellについても、D1圧縮を使用して圧縮されたかを表す。D1圧縮も、後続のpCellの符号化で利用されるための、事前の利用(キャッシュされた属性又は画素値)を可能にする。
表2はD1およびD1D圧縮用の2進符号化の例を提供する。D1圧縮に対しては、pCellの圧縮表現はオペコード001から始まる。V’ビットが1の場合、D1符号化も1バイト値の引数(pCellの全ての属性又は画素に対して同一)を含む。V’ビットが0の場合、値引数は符号化から省略され、最新のD1符号化の値(例えば、キャッシュされた値)がpCellの全ての属性又は画素に利用される。長さ引数は2ビットでよく、1乃至4つのpCellのqCell内のランレングスをサポートする。値引数は、属性値と同様、画素値に適用する。従って、値引数は、カラープレーンのpCellを圧縮する場合、8ビットでよい。しかしながら、上で述べたように、8未満のビットは属性プレーン値を表すために利用され、値フィールドのサイズは適宜減少されるかもしれない。
D1D圧縮に対しては、pCellの圧縮表現はオペコード000から始まる。Vビットは2つのデフォルト値のどちらが利用されるか(例えば、Vが0の場合、1つの値が利用され、Vが1の場合、他の値が利用される)を示す。長さ引数は、D1圧縮で利用されたのと同一の方法で利用してもよい。
[b.P2およびP2D圧縮]
P2圧縮は、任意のpCellの各属性又は画素が2つの値の1つを使用して表すことができる場合に利用してもよい。例えば、セルの属性又は画素が0と255間の値を取ることができるが、全ての値が76又は125のどちらかの場合、P2圧縮はpCellで利用してもよい。P2圧縮が利用される場合、pCellの属性又は画素のビットマップと同様、2つの値は符号化されてもよい。ビットマップは、どの値がpCellの各属性又は画素に関連付けられているかを示す。D1およびD1D圧縮と同様、P2圧縮は直前に利用された値のペアのキャッシングを使用してもよい。
P2D圧縮と呼んでもよいP2圧縮技術の変形は、セルに2つのデフォルト色値のみが現れる場合に利用してもよい。上で述べたように、YCbCr色空間のYプレーン、グレー色空間、および全CMYK色空間において、デフォルト値は0および255でよい。YCbCr色空間のCbおよびCrプレーンにおいては、デフォルト値は128および255でよい。従って、P2D圧縮はpCellの属性又は画素のビットマップを符号化してもよいが、デフォルト値が利用されるため、属性又は画素の値の符号化を明示的に行う必要はない。
属性プレーンに対しては、1つ又は両方のP2Dデフォルト値が予め決定されていてもよいし(例えば、0および128)、ユーザにより手動で設定されてもよい。
表3は、P2およびP2D圧縮用の2進符号化の例を提供する。P2圧縮に対しては、pCellの圧縮表現はオペコード011から始まる。V’ビットが1の場合、P2符号化もpCellの属性又は画素により利用される値のペア(値1および値2)を示す2バイトを含む。V’ビットが0の場合、これらの値は符号化から省略され、最新のP2符号化の値(例えば、キャッシュされた値)がpCellの属性又は画素に利用される。
P2D圧縮に対しては、pCellの圧縮表現はオペコード010から始まる。P2およびP2D圧縮の両方に対し、Pオプションが1の場合、線図引数が提示され、ビットマップの8ラインのどれがまた提示されているかを示す。Pオプションが0の場合、ビットマップのいずれの線図引数又はラインも提示されない。その代わりに、P2又はP2Dで圧縮された最新のpCellからキャッシュされたビットマップを利用してもよい。
線図の各ビットは、ビットマップの対応するラインフィールドの存在を示す。線図が提示されると、少なくとも1つのラインもビットマップに提示されると仮定してもよい。従って、線図は、ビットマップの2列目から8列目のラインに渡って符号化を行うため、7ビットのみを使用してもよい。線図の各ビットに対し、0は対応するラインがないため、前のラインを繰り返すことを示す。一方、1は対応するラインがあることを示す。
[c.P4圧縮]
P4圧縮は、任意のセルの全ての画素が3つ又は4つの色値を使用して表すことができる場合に利用してもよい。P4圧縮が利用される場合、pCellの属性又は画素のビットマップと同様、3つ又は4つの値は符号化されてもよい。ビットマップはどの値がpCellの各属性又は画素に関連付けられているかを示す。
表4は、P4圧縮用の2進符号化の例を提供する。P4圧縮に対して、pCellの圧縮表現はオペコード100から始まる。7ビットの線図は、P2ビットマップの圧縮と同様に、ビットマップがどのように圧縮されるかを定義する。線図の各ビットに対し、0は対応するラインがないため、前のラインを繰り返すことを示す。一方、1は対応するラインがあることを示す。
4つの値引数は、pCellに見られる構成要素の値を表す8ビットフィールドである。これらの値を区別するため、ビットマップの各ライン(もしあれば)は16ビットの長さでよい。P4圧縮により3つの値のみ符号化される場合、「値4」の引数は存在しても、無視して構わない。
[d.DCTP圧縮]
DCTP圧縮は、pCellを圧縮するための離散コサイン変換(DCT)技術の使用に言及する。実施形態によっては、D1、D1D、P2、P2D、およびP4圧縮がカラープレーンの特定のpCellに適さない場合、DCTP圧縮を利用してもよい。DCTP圧縮は非可逆で、属性プレーンに対しては可逆で圧縮するのが望ましいため、DCTP圧縮は属性プレーンには利用されないかもしれない。DCTP圧縮は、DCT変換、スケーリング、量子化、2次元係数配列から1次データへの並べ換え、およびハフマン・エントロピー符号化を含んでもよい。
表5は、DCTP圧縮用の2進符号化の例を提供する。DCTP圧縮に対して、pCellの圧縮表現はオペコード11から始まり、表現の残りの部分はDCT符号化である。実施形態によっては、DCT符号化は、ジョイント・フォトグラフィック・エキスパート・グループ(JPEG)規格のサブセットに従って、ハフマン符号化でパッケージ化された、量子化されたDCT係数の集合でよい。
[e.DCTQ圧縮]
DCTQ圧縮は、qCellを全体でpCellのサイズにダウンサンプリングすることにより圧縮するDCT技術の使用、続いて得られたpCellへのDCTP符号化の適用に言及する。実施形態によっては、D1、D1D、P2、P2D、およびP4圧縮がカラープレーンの1以上の特定のpCellに適さない場合、DCTQ圧縮を利用してもよい。DCTベース圧縮は非可逆で、属性プレーンに対しては可逆で圧縮するのが望ましいため、DCTQ圧縮は属性プレーンには利用されないかもしれない。
例として、16×16・qCellは、8×8・pCellにダウンサンプリングしてもよい。ダウンサンプリング手順は、16×16・qCellの64の非オーバーラップ2×2ブロックへの分割、および各ブロックの、それぞれのブロックにおける画素値の平均である単一画素値への置き換えを含んでもよい。得られた64の平均値は、8×8セルを形成する。とりわけ、このダウンサンプリングは初期の4:1圧縮比を提供し、続いて、DCTP符号化がその上に追加の圧縮を提供する。
表6は、DCTQ圧縮用の2進符号化の例を提供する。DCTQ圧縮に対して、qCellの圧縮表現はオペコード101から始まり、表現の残りの部分はDCT符号化である。DCTPのケースと同様、DCT符号化は、JPEG規格のサブセットに従って、ハフマン符号化でパッケージ化された量子化されたDCT係数の集合でよい。
[f.D1CおよびD1E圧縮]
D1CおよびD1E圧縮は、D1又はD1D圧縮候補の連続したセルの実行の効率的な符号化を促進する。これらの実行の符号化は、無地(例えば、白色背景)を示すセクションの画像において、圧縮パフォーマンスを著しく上昇させるかもしれない。D1又はD1Dの2つのタイプの実行がサポートされてもよい。つまり、(1)qCellを横断するD1又はD1D候補のpCellのインターqCellの実行、および(2)qCell内のD1又はD1D候補のpCellのイントラqCellの実行、である。
インターqCell・D1又はD1D実行は、2つ以上のqCellに及ぶD1又はD1D実行の符号化を行う。qCellの2つの右端のpCell(「b」および「d」pCell)が、D1圧縮を使用して符号化された一定の画素値の8×16配列を含む場合、これはD1又はD1D実行の開始を意味し、符号化モードを通常の符号化モードからD1又はD1D実行符号化モードへ変更する。この符号化モードはプレーン毎に、およびqCellの境界で追跡される。従って、特定のプレーンに対し、D1又はD1D実行符号化モードへのモードの変更は、qCellの境界の端部で行われる。
D1又はD1D実行符号化モードでは、D1C(継続)およびD1E(終了)の2つのコードのみが定義され、それぞれシングルビットを使用して符号化される。後続のqCellが、実行を開始する2つのD1又はD1D候補のpCellと同一の16×16画素値を含む限り、1ビットのD1Cオペコードは放出され、D1又はD1D実行符号化モードが継続する。後続のqCellが実行の開始にマッチングするベタ値以外の何かを含む場合、実行は終了する。この場合、1ビットのD1Eコードが放出され、通常の符号化モードが再入力される。また、その時点のqCellに対する任意の残りのD1、P2、P4、DCTP、又はDCTQ符号化は放出される。
イントラqCell・D1又はD1D実行は、qCell内でD1又はD1D実行の符号化を行う。例えば、2ビットのランレングスは、qCell内の1乃至4つのpCellに広がっているD1およびD1D実行の符号化を行うために利用されてもよい。このような実行は、表示されたD1(n)およびD1D(n)であり、nは値1、2、3、又は4を取る。
表7は、D1CおよびD1E圧縮用の2進符号化の例を提供する。D1C圧縮に対して、1はD1又はD1D実行の連続を示し、任意のqCellの全4つのpCellは現在の実行のD1又はD1Dセルに対応する。D1E圧縮に対しては、0はD1又はD1D実行の端部を示す。
[g.D64圧縮]
D64圧縮は、D1、D1D、P2、P2D、およびP4圧縮が適さない属性プレーンのpCellの符号化を行うために利用される可逆技術である。例えば、pCellが5つ以上の異なる値を含む場合、D64圧縮を利用してもよい。
D64圧縮は、8×8属性pCellの全64の値を符号化し、8×8属性pCellのヘッダに含まれる場合、結果として、圧縮よりむしろ非常にわずかな拡張となる。しかしながら、属性プレーンは可逆で圧縮するのが望ましいため、D64圧縮が場合によっては必要となるかもしれない。
とはいえ、セルベース圧縮が圧縮パイプライン600で起きているかどうかにより、pCellの属性値の全8ビットは符号化されないかもしれない。その代わりに、これらの値の2乃至8ビットはまとめられ、符号化されてもよい。これにより、D64圧縮が改良される。
表8は、D64圧縮用の2進符号化の例を提供する。D64・pCellの圧縮表現はオペコード11から始まり、属性毎に2乃至8ビットを使用して符号化された、pCellの64の属性配列も含む。属性配列毎のビットの数は、上述のように、属性プレーンの圧縮の際、どのくらいの数の属性ビットが省略できたかに基づく。ここで留意すべきは、DCTPおよびD64圧縮が同一のオペコードを共有することである。しかしながら、DCTPはカラープレーンにのみ利用され、D64は属性プレーンにのみ利用されるため、これらの符号化は、圧縮されるpCellのプレーンに基づいて識別することができる。
[h.エンドオブファイル(EOF)]
EOFはそれ自体圧縮技術ではないが、その代わりに、圧縮ストリームの終了を知らせるために定義される。コンプレッサでは、全入力データが圧縮され、最終のqCellの最終コードが放出されると、EOFシーケンスを放出することができる。EOFは属性プレーンコードとして放出される。
属性プレーンがD1又はD1D実行符号化モードの場合、D1Eは、EOFが放出される前に、通常の符号化モードに戻すために放出されてもよい。加えて、EOFは、属性プレーン以外の任意プレーンで、任意のアクティブなインターqCell・D1又はD1D実行を自動的に終了させる。
表9は、EOF用の2進符号化の例を提供する。001のオペコードの後、2進値「10000000000」が放出される。EOFはD1圧縮とオペコードを共有するため、この値はpCellのD1符号化からEOFを識別するために利用できる。
[9.決定木の例]
pCellおよびqCellの符号化は、1以上の決定木に基づいてもよい。各決定木は、pCell又はqCellが符号化される前に、さまざまな要因を検討する処理を示す。属性プレーンおよびカラープレーンに分かれた決定木であってもよい。例えば、属性プレーンの圧縮の際、いずれの情報も失われないのが望ましい。従って、属性プレーンはさまざまな可逆圧縮技術を使用して圧縮してもよい。一方、カラープレーンのある部分(例えば、ベクトルグラフィックスおよびテキスト部分)は可逆で圧縮するのが望ましいが、カラープレーンの他の部分(例えば、画像グラフィックス部分)は非可逆で圧縮することが望ましい。この方法により、元の画像の詳細は所望の際に保存できるが、なお高い圧縮比を達成することができる。
[a.カラープレーン決定木]
図8は、例示の実施形態に係るカラープレーン決定木800を示す。この決定木は、qCellが4つの非オーバーラップpCellで構成されるという了解のもとで、qCellの特性を検討する。このようなqCellおよびこれに従属するpCellのサイズは、それぞれ16×16および8×8でよい。しかしながら、代わりに他のサイズを利用してもよい。
qCellの各画素は、テキスト、ベクトル(例えば、線画)、又はラスター(例えば、画像)など、画素が属するオブジェクトのタイプの指示によってタグ付けされると仮定する。これらのタグは、qCellの属性プレーンに属してもよい。
さらに、決定木800は1200dpiおよび/または600dpiの画像に利用されてもよい。しかしながら、場合によっては、600dpiの画像の処理の際、300dpiへのダウンサンプリングを避けるため、DCTQ方法が省略されてもよい。例えば、600dpiの画像向けの決定木は、図8のブロック804、806、および808のみを含んでもよい。
各決定ブロック802、804、810、812、816、818、820、822において、決定のタイプは括弧で示される。プレーンベースで決定される場合、括弧付きPが存在する。合成ベースで決定される場合、括弧付きCが存在する。しかしながら、各圧縮技術はプレーン毎に適用される。
プレーンは、各カラープレーンのqCellおよび/またはpCellを別々に検討して、決定する。従って、例えば、プレーンの決定では、単一のqCellおよび/またはpCellに関連付けられている色特性および/または属性が検討されてもよい。しかしながら、合成の決定では、qCellにより定義された画像の位置の全カラープレーンに対する、qCellおよびpCellの特性、および関連付けられている属性が検討されてもよい。
単純化のため、D1DおよびP2D圧縮は、決定木800では明示的に言及しない。しかしながら、D1又はP2圧縮が検討、又は利用されるところで、D1DおよびP2D圧縮も同様に、検討、又は利用されてもよい。従って、ブロック804、806はD1DおよびP2D圧縮を検討および使用する一方、ブロック824はD1D圧縮を適用してもよい。連続したD1又はD1D符号化の実行も、決定木800で明示的に検討されないが、それでも利用して構わない。
ブロック802、810、816、820はそれぞれ、qCellに基づいた合成の決定を表している。これらの各決定に対して、qCellの全カラープレーンの値の範囲は、qCellによって表されるオブジェクトタイプの数のように、検討される。範囲が広いか狭いかを判定するために、各プレーンの値の範囲を決定してもよい(よって、例えば、3つのカラープレーンがある場合、3つの範囲が決定される)。各範囲は、そのプレーンのqCellの最高画素値の差を取って、およびそのプレーンのqCellの最低画素値を減ずることにより、算出してもよい。これらの範囲のいずれかが所定の閾値を越える場合、範囲が広いと分類される。そうでない場合は、範囲が狭いと分類される。所定の閾値は、4、8、16、32、又は別の値でもよい。
さらに、タグの混合は、2つ以上のオブジェクトがqCellに集まっていることを示し、従ってqCellはエッジを含んでもよい。画像の鮮鋭度を保持するため、エッジを保存するのが望ましい。qCellの全256のタグの値が同一の場合、qCellにエッジがあるとは考えにくい。
広い範囲は保存するに値する詳細を示す一方、狭い範囲はダウンサンプリングに適したqCell候補を示している。広い範囲および混合タグは、総合すれば、エッジを持ったqCellの証拠となるかもしれない。この場合、ブロック802にあるように、ダウンサンプリングは避けるべきである。ブロック802の質問が肯定された場合、次にブロック804が検討される。
ブロック804では、qCellは保存するべきエッジ・ディティールを有してもよく、各プレーンはこのディティールを最良で保存するため、pCell毎に符号化される。pCellが1、2、又は4色を有する場合、それぞれD1、P2、又はP4での符号化が適している。D1、P2、又はP4圧縮の1つが選択された場合、この技術はブロック806で適用してもよい。そうでない場合、DCTP圧縮はブロック808で適用してもよい。実施形態によっては、ブロック804は、各カラープレーンの各pCellのm×n画素のそれぞれの色値が、dは少なくとも2である、少なくともd色を含んでいるかどうか決定する、一般的な処理を含んでもよい。
一方、qCellが広い範囲および同一タグを全般にわたって提示する場合、ブロック810の質問は肯定され、次にブロック812が検討される。合成ベースでは、qCellに5つ以上の色があるかどうか決定され、全てのタグはラスターを示す。この条件が真の場合、qCellは画像データのみを含むので、ブロック814ではDCTQ技術を使用して圧縮されてもよい。この条件が真でない場合、qCellはダウンサンプリングするべきではないテキスト又は線画のどちらかを含む、又は非常に少数の値を持つ画像データ含む。いずれにせよ、D1、P2、P4、又はDCTP圧縮は、qCellの情報の保存に優れていてもよく、又は優れた圧縮比を提供してもよい。従って、qCellはブロック804でさらに検討され、ブロック806又はブロック808のどちらかで圧縮されてもよい。
代わって、qCellが狭い範囲および混合タグを提示する場合、わずかな情報はこの処理で失われるべきなので、qCellはダウンサンプリングの候補としてよい。しかしながら、qCellに4つ以下の色がある場合、D1、P2、又はP4圧縮の1つが、DCTベース圧縮より優れた圧縮比を提供するかもしれない。
従って、ブロック816の質問が肯定された場合、ブロック818に到達する。ブロック818では、合成ベースで、qCellが5つ以上の色を含むかどうかが決定される。5つ以上の色を含む場合、qCellは概ね画像データを含む可能性が高く、ブロック814でDCTQ技術を使用して圧縮されてもよい。5つ以上の色を含まない場合、qCellはブロック804でさらに検討され、ブロック806で圧縮されてもよい。qCellは4つ以下の色を有するため、D1、P2、又はP4圧縮の1つが適用でき、ブロック808にはこのシナリオでは到達しないかもしれない。
qCellが狭い範囲および同一タグを全般にわたって提示する場合、これはqCellにエッジがない強力な証拠である。ブロック820の質問が肯定された場合、次にブロック822を検討してもよい。ブロック822では、qCellの各プレーンの全画素が同一の値を有するかどうか、決定されてもよい。同一の値を有する場合、D1圧縮の使用が、DCTベース圧縮より効率的だろう。従って、qCellのプレーンは、ブロック824でpCell毎のベースで圧縮されてもよい。そうでない場合、ブロック814で、DCTQがqCellのプレーンに適用される。
図8は、1つの考えられるカラープレーン決定木を示す。他のこのような決定木も可能である。例えば、600dpi画像を圧縮する場合、ブロック804、806、808のみが利用されてもよい。
[b.属性プレーン決定木]
図9は、例示の実施形態に係る属性プレーン決定木900を示す。この決定木は属性プレーンのpCellの特性を検討するが、この属性プレーンpCellの各構成要素は、1以上の対応するカラープレーンpCellの画素値と、1対1で関連付けられているという了解の下にある。これらのpCellのサイズは8×8でよいが、他のサイズが代わりに利用されてもよい。属性プレーンは1つのみで、決定木900の全決定はプレーンベースでなされることも仮定される。しかしながら、代替の実施形態では異なるアプローチを取ることもあり得る。
決定木800と同様、D1DおよびP2D圧縮は決定木900で明示的に言及されない。しかしながら、D1又はP2圧縮が検討、又は利用されるところで、D1DおよびP2D圧縮が同様に検討、又は利用されてもよい。従って、ブロック902、904、906、908は、D1DおよびP2D圧縮を検討および/または使用してもよい。連続したD1又はD1D符号化の実行も、決定木900で明示的に検討されないが、それでも利用して構わない。
ブロック902では、属性プレーンpCellがD1圧縮に適しているかどうか決定される。D1圧縮に適している場合、ブロック904でD1圧縮が適用される。そうでない場合、ブロック906で、pCellがP2圧縮に適しているかどうか決定される。P2圧縮に適している場合、ブロック908でP2圧縮が適用されてもよい。
pCellがD1又はP2圧縮のどちらも適さない場合、ブロック910で、pCellがP4圧縮に適しているかどうか決定してもよい。P4圧縮に適している場合、ブロック912でP4圧縮が適用されてもよい。そうでない場合、ブロック914でD64圧縮が適用されてもよい。
図9は、1つの考えられる属性プレーン決定木を示す。他のこのような決定木も可能である。
[c.フォールバックモード]
場合によっては、図6のパイプラインのような、印刷デバイスのパイプラインの動きは、さまざまな達成目標に基づいて、動的に修正されてもよい。具体的に言えば、印刷デバイスは、その圧縮比又はその解凍速度のいずれかが予め決められた閾値を満たしていない場合、フォールバックモードに入るように構成することができる。
上述のように、ブロック616のストレージが少数のページ(例えば、2つの1200dpiのA3のCMYKAページ)を格納するように設計してもよいため、圧縮サイズを目標としてもよい。ブロック618のセルベース解凍は、印刷デバイスが解凍データを印刷できる速度よりも遅く作動するべきではないため、解凍速度も目標としてもよい。
従って、印刷デバイスは、圧縮バッファーのオーバーフローおよび/または解凍速度のアンダーランを検知するように構成してもよい。圧縮バッファーのオーバーフローは、達成された圧縮比では不十分であることを示す、メモリ(例えば、ブロック616のストレージ)に書き込まれたバイト数が所定の閾値を越える場合に発生する。解凍速度のアンダーランは、ページの一部又は全て毎のqCellのDCT符号化数が所定の閾値を超える場合に発生する。
圧縮バッファーのオーバーフローの検出後、図8および/または図9の決定木は、常時少なくとも4:1圧縮を実現する圧縮技術が利用されるように修正されてもよい。例えば、カラープレーンでは、通常P4圧縮で符号化されるpCellに対して、同一のqCellの残りのpCellと同様、P4圧縮の使用が除外され、DCTQ圧縮に置き換えられてもよい。同様の方法で、DCTP圧縮もDCTQ圧縮に置き換えられてもよい。属性プレーンでは、属性構成要素につき1又は2ビットのみ保持される場合、P4圧縮はD64圧縮に置き換えてもよい。
解凍速度のアンダーランの検出後、図8のカラープレーン決定木は、tが1、2、又は3である、qCellのt程度のDCT操作を強制するように修正されてもよい。
[10.インターリーブ符号化]
セルベース圧縮の符号化されたアウトプットはインターリーブされてもよい。場合によって、インターリーブ符号化は非インターリーブ符号化よりも優れているかもしれない。
このインターリービングは、(1)qCellにまたがるpCellおよびプレーンの順序付け、(2)ダウンサンプリングがプレーン又は合成の決定かどうか、および(3)圧縮パフォーマンスを検討してもよい。後者の検討に対しては、DCT圧縮およびパターン(非DCT)圧縮で別々のプロセッサが利用されてもよい。DCT圧縮プロセッサはパターンプロセッサと平行に稼働すること、およびDCTプロセッサは、おそらくパターンプロセッサの8分の1の速度で、ゆっくり稼働してもよいことが仮定される。このように、インターリーブ形式は、DCTおよびパターンpCellのさまざまな混合において、DCTプロセッサの高い利用度の維持をサポートしてもよい。
これらの検討に基づいて、属性プレーンおよびカラープレーンのqCellおよびpCellは、インターリーブ方法で出力媒体(例えば、ブロック606のストレージおよび/またはブロック616のストレージ)に書き込まれてもよい。例として、カラーモデルがCMYAの場合、符号化されたpCellの順序付けは、属性pCell、続いてシアンpCell、続いてマゼンタpCell、続いてイエローpCell、続いて他の属性pCell、続いて他のシアンpCell、続いて他のマゼンタpCell、続いて他のイエローpCell、などとしてよい。
このような操作の疑似コード表現1000は、図10に示される。疑似コード表現1000のライン1では、入力画像の各合成(複数プレーン)qCellが検討される。ライン3では、合成qCellは、属性プレーンが1番目、シアンプレーンが2番目、マゼンタプレーンが3番目、イエロープレーンが4番目、そしてKプレーン(もしあれば)が5番目となるように、プレーンの順にソートされる。
ライン4およびライン5では、各pCellの各プレーンが検討される。ライン7では、プレーンqCellがサブサンプリング(ダウンサンプリング)されるべきかを決定する。もしするべきであれば、ライン8乃至11で、プレーンqCell全体に対する単一のpCellが符号化され、放出される(例えば、出力媒体に書き込まれる)。プレーンqCellがダウンサンプリングされない場合、ライン13で、(非DCT技術を使用して符号化された)そのプレーンpCellの各々が放出される。
このようなインターリービング操作の一例は、図11Aおよび図11Bに示される。図11Aは、属性、シアン、マゼンタ、およびイエローの各プレーンに対する一連の4つqCellを示す。qCell内の各pCellは、それぞれのpCell・ID(例えば、a、b、c、又はd)に関連付けられ、ボックスとして示される。ボックスは、qCell番号およびpCell・IDと同様、各個別のpCellを圧縮するために利用される圧縮技術を含む。例えば、属性プレーンの1番目(左端)のpCellはP2圧縮を使用して圧縮され、それはpCell・1aからとなる。
4つのqCell全般にわたって、属性プレーンは一貫してP2圧縮を使用して符号化され、シアンプレーンはP4圧縮を使用して符号化され、イエロープレーンはDCTP圧縮を使用して符号化される。マゼンタプレーンは、しかしながら、P2およびD1圧縮を混合して使用し、符号化される。とりわけ、マゼンタプレーンの13の連続した、同一のpCellは、D1圧縮の実行で符号化される。
図11Bは、図11AのpCellおよびqCellのインターリーブ符号化を示す。色および属性の各プレーンは、実行がより効率的な方法で符号化される場合以外、1つずつインターリーブされる。例えば、符号化は第1・qCellのpCellから始まる。最初は属性プレーンの1a・pCell、続いてシアンプレーンの1a・pCell、マゼンタプレーンの1a・pCell、イエロープレーンの1a・pCell、属性プレーンの1b・pCell、シアンプレーンの1b・pCell、などである。
D1圧縮を使用した13のマゼンタセルの実行に関して、出力シーケンスの7番目のpCellは、D1実行が始まることを示す。特に、このpCellは1番目のqCellからのD1実行の3つのpCellの内の1つである。従って、このpCellはD1圧縮を使用して符号化され、3つの連続した、同一のD1・pCellを表すことを示すため、3の値を持った長さフィールドを含んでもよい。従って、1b、1c、1dマゼンタpCellは単一のpCellとして符号化され、1c、1dマゼンタpCellは出力シーケンスから省略される。
2番目のqCellに関して、その中の1番目のマゼンタpCellは、出力シーケンスの17番目の位置に現れる。しかしながら、D1C符号化は、マゼンタD1・pCellの実行がこのqCellを通じて継続することを示すために利用される。同じく、3番目のqCellに関して、その中の1番目のマゼンタpCellは、出力シーケンスの30番目の位置に現れる。ここでも、D1C符号化は、マゼンタD1・pCellの実行がこのqCellを通じて継続することを示すために利用される。2番目、3番目のqCellの他のマゼンタpCellは、この符号化で省略される。
4番目のqCellで、マゼンタD1・pCellの実行は2つ以上のpCellで継続し、その後終了する。従って、出力シーケンスの43番目の位置では、D1E符号化がD1実行の終了を示すために利用される。しかし、実際、実行に2つの残りの連続した、同一のマゼンタD1・pCellがあるため、第2のD1実行は符号化される。出力シーケンスの44番目の位置では、マゼンタpCellがD1圧縮を使用して符号化されても構わない。このpCellは、2つの連続した、同一のD1・pCellを表すことを示すため、2の値を持った長さフィールドを含んでもよい。従って、4bマゼンタpCellは符号化から省略されるが、4c、4dマゼンタpCellは含まれる。
57番目の出力位置での、最終的な符号化は、圧縮表現のこのセクションの終了を示すために利用される、エンドオブファイル(EOF)である。
インターリービング操作の他の例は、図12Aおよび図12Bに示される。図12Aは、属性、シアン、マゼンタ、およびイエローの各プレーンに対する一連の4つのqCellを示す。しかしながら、図11A、図11Bの例とは異なり、図12Aの例は潜在的D1実行と同様に、DCTQ符号化を含む。
図12Bは、図12AのpCellおよびqCellのインターリーブ符号化を示す。色および属性の各プレーンは、実行がより効率的な方法で符号化される場合以外、1つずつインターリーブされる。DCTQ符号化に関して、このような符号化は4つの実際のpCellを包含するため、qCell当たり、1つのDCTQ符号化のみを利用してもよい。従って、図12Bにおいて、シアンDCTQ符号化はそれぞれ、2番目、13番目、23番目、および33番目の出力位置に現れる。
図11Bのように、13のマゼンタD1・pCellの実行は、図12Bで2つの論理実行に圧縮される。しかしながら、6つの連続した、同一の属性D1・pCellの実行は、わずかに異なる方法で符号化される。実行はqCellのbおよびd・pCellから始まるため、実行の開始は潜在的に検討される。従って、これら2つのpCellはそれぞれ、予想通り、26番目および30番目の出力位置で符号化される。しかしながら、32番目の出力位置では、4番目のqCellにある、この実行の4つD1セルに対して、D1C符号化が利用される。そして、42番目の出力位置では、D1E符号化が実行の終了を示すために利用され、43番目の出力位置では、EOF符号化が圧縮表現のこのセクションの終了を示すために利用される。
図11A、図11B、図12A、および図12Bは、説明のために提供される。他の符号化が本明細書の実施形態によりサポートされてもよく、実施形態の要旨を逸脱しない範囲で、これらの符号化に変形がなされてもよい。
[11.セルベース解凍の例]
一旦、例えば、上述したような圧縮方法および符号化を使用して、多数のpCellおよび/またはqCellが圧縮されれば、これらは効率的に格納、および/またはケーブル又はネットワークを通して送信されてもよい。とはいえ、ある時点で、pCellおよび/またはqCellは、元の画像又は元の画像に近似しているものに解凍されてもよい。本明細書において説明されているセルベース圧縮技術は非可逆になり得るため、解凍された画像は、元の画像とは、少なくともある程度、異なるかもしれない。しかしながら、多数のシナリオにおいて、この差異は人間により認識される可能性が低い、又は元の画像の許容範囲のバージョンであると見なされるであろう。
上述のような圧縮符号化で符号化されたpCellおよび/またはqCellは、以下のように複合および解凍することができる。特定のpCell又はqCell符号化に対し、オペコードが読み取られる。オペコードの値に基づいて、任意の適用可能なオプション、引数、ビットマップなどが、オペコードに続くビットから決定され得る。これらのパラメータから、pCell又はqCellの解凍バージョンが再構築され得る。そして、画像が再構築されるまで、次のオペコードが読み取られたりする。
例えば、オペコードが001の場合、D1符号化を示し、V’ビットおよび引数フィールドは、圧縮された構成要素の値を決定するために読み取られてもよい。長さビットもまた、ランレングスが存在するかどうか決定するために読み取られてもよい。そして、ランレングスと等しい多数のセルが、符号化の値フィールドにより、又は値フィールドのキャッシュされたバージョンに示された値を提示する各セルの全画素で作成される。
オペコードが000の場合、D1D符号化を示し、Vビットは圧縮された構成要素の値を決定するために読み取られ、長さビットはランレングスが存在するかどうか決定するために読み取られてもよい。そして、ランレングスに等しい多数のセルが、Vビットにより示されたデフォルト値を提示する各セルの全画素で作成される。
オペコードが011の場合、P2符号化を示し、オプション、引数、およびビットマップが読み取られてもよい。V’ビットが1の場合、セルの2つの値が決定されてもよい。そして、セルは、線図およびビットマップに従った2つの値の内の1つを取る各画素で作成されてもよい。線図が存在しない場合、その前のP2セルの線図およびビットマップが利用される。
オペコードが010の場合、P2D圧縮を示し、セルは線図およびビットマップに従った2つの値の内の1つを取る各画素で作成されてもよい。線図が存在しない場合、その前のP2セルの線図およびビットマップが利用される。
オペコードが100の場合、P4圧縮を示し、線図および値引数がビットマップと同様に読み取られてもよい。そして、セルは線図およびビットマップに従った4つの色値の内の1つを取る各画素で作成されてもよい。
オペコードが11の場合、DCTP圧縮を示し、DCTP圧縮方法のビットマップが読み取られ、セルはこのDCTP符号化に従って作成されてもよい。
オペコードが101の場合、DCTQ圧縮を示し、DCTQ圧縮方法のビットマップが読み取られ、pCellはこのDCTQ符号化に従って作成されてもよい。そして、pCellの各構成要素は、同一の値の構成要素の2×2ブロックにより置き換えられてもよい。結果、DCTQダウンサンプリング処理の近似反転であるqCellとなる。
オペコードが1の場合、D1C圧縮を示し、最新のD1又はD1Dセルがコピーされる。オペコードが0の場合、D1E圧縮を示し、この時点のD1又はD1D実行が終了したものとみなされる。
オペコードが11の場合、D64圧縮を示し、属性当たりのビット数が決定され、それに応じて属性フィールドが複号化される。属性当たりのビット数は、印刷デバイスのタイプ、および解凍が起こっているパイプラインの場所次第であってよい。
[12.パフォーマンス結果の例]
本明細書において開示されたセルベース圧縮(CBC)技術の圧縮パフォーマンスは、JPEGベースの圧縮、および分割ランレングス符号化(SRLE)ベースの圧縮(可逆技術)の圧縮パフォーマンスと比較された。テストスイートは、さまざまな量のテキスト、線画、および画像内容を含む408ページで構成された。
表10は、600dpiおよび1200dpiの画像両方に対する、CBC、JPEG、およびSRLEにより達成された圧縮比を提供する。これらの結果には、各技術で達成された、最大、最小、平均、および中央値の圧縮比が含まれる。
本明細書において開示されたCBC技術は、600dpiおよび1200dpiの両画像に対して、大幅に優れた最大圧縮比を提供する。CBC技術は、1200dpiの画像に対して、優れた最小圧縮比も提供するが、600dpiの画像に対しては、JPEG技術がわずかに良い最小圧縮比を提供する。
何より、本明細書において開示されたCBC技術は、JPEGおよびSRLEより極めて良い平均および中央値の圧縮比を提供する一方、JPEGの画質よりも優れた画質を提供する。結果として、CBC技術は印刷および印刷デバイス技術において、著しい改良となる。
[13.操作の例]
図13、図14、および図15は、例示の実施形態のフローチャートである。これらのフローチャートにより説明されるステップは、印刷デバイス100のような1以上の印刷デバイス、および/またはコンピューティング・デバイス300のようなコンピューティング・デバイスによって実行してもよい。さらに、各個別のステップの局面は、多数のコンピューティング又は印刷デバイス間で分布してもよい。
本明細書において利用される用語に関して、m×n属性セルは属性プレーンのプレーンpCellに言及し、m×n画素セルはカラープレーンのプレーンpCellに言及してもよい。さらに、a×b属性セルは属性プレーンのプレーンqCellに言及し、a×b画素セルはカラープレーンのプレーンqCellに言及してもよい。全般にわたって、aはmよりも大きく、bはnよりも大きいことが仮定されている。
図13は、属性プレーンのセル、および1以上のカラープレーンのセルのインターリーブ圧縮に関するステップを一般的に示す。しかしながら、これらステップは追加の目的で同様に利用されてもよい。図5乃至図12Bに関連して説明されている操作は、このフローチャートで明示的に又は暗黙的に言及されてもよい。例えば、図13のステップは、図6のブロック604および/または614で、印刷デバイスのパイプラインの他の場所で、又はホストコンピュータにより、行われるかもしれない。
ステップ1300では、入力画像からm×n画素セルが得られてもよい。入力画像はm×n画素より多くの画素を含んでもよく、m×n画素セルのm×n画素の各々は少なくとも1つの色値に関連付けられてもよい。
ステップ1302では、おそらくm×n画素セルに基づいて、m×n属性セルが得られてもよい。m×n属性セルの構成要素は、1対1でm×n画素セルのそれぞれの画素と関連付けられていてもよいし、構成要素はこれらの関連付けられている画素に関連するそれぞれの制御データを識別してもよい。属性セルの構成要素は、属性配列および/または属性バイトでもよい。
ステップ1304では、m×n画素セルが非可逆で圧縮され、m×n属性セルが可逆で圧縮されてもよい。非可逆圧縮はDCTベースの圧縮で、可逆圧縮は本明細書において説明されている他の圧縮技術のいずれかでよい。m×n画素セルの圧縮は、m×n属性セルの少なくとも一部に基づいてもよい(例えば、圧縮は、m×n属性セルにより符号化されるように、m×n画素セルが表すオブジェクトのタイプによってもよい)。ステップ1306では、圧縮されたm×n画素セルおよび圧縮されたm×n属性セルのインターリーブ表現が、出力媒体に書き込まれてもよい。このインターリーブ表現は、図11A、図11B、図12A、および図12Bの本開示に従ったフォーム、又は他のフォームを取ってもよい。
実施形態によっては、制御データのユニットは、m×n画素セルの特定の画素に関連付けられてもよい。制御データは、特定の画素が画像オブジェクトタイプ、ベクトル・オブジェクトタイプ、又はテキスト・オブジェクトタイプを表すかどうかを示す、1以上のビットであってよい。圧縮されたm×n画素セルおよび圧縮されたm×n属性セルは解凍され、ハーフトーン・スクリーンが1以上のビットに基づいて選択されてもよい。m×n画素セルは特定の画素に適用される、選択されたハーフトーン・スクリーンに(おそらく入力画像の残りと一緒に)印刷されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の画素が印刷手順又はスキャン手順の一部として形成されたかどうかを示す、1以上のビットを含んでもよい。圧縮されたm×n画素セルおよび圧縮されたm×n属性セルは解凍され、ハーフトーン・スクリーンが1以上のビットに基づいて選択されてもよい。m×n画素セルは、特定の画素に適用される、選択されたハーフトーン・スクリーンに(おそらく入力画像の残りと一緒に)印刷されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の画素が圧縮前に中性色値を取ったことを示す、1以上のビットを含んでもよい。圧縮されたm×n画素セルおよび圧縮されたm×n属性セルは、解凍されてもよい。おそらく、特定の画素が圧縮前に中性色値を取ったことを示す1以上のビットを受けて、特定の画素の色値が同一でないことが決定され、少なくとも色値の1つは、色値が同一になるように変更されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の画素が圧縮前に非中性色値を取ったことを示す、1以上のビットを含んでもよい。圧縮されたm×n画素セルおよび圧縮されたm×n属性セルは、解凍されてもよい。おそらく、特定の画素が圧縮前に非中性色値を取ったことを示す1以上のビットを受けて、特定の画素の色値が同一であると決定され、少なくとも色値の1つは、色値が同一とならないように変更されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の画素が圧縮前に同一の純粋で極端な色値(ピュアエクストリーム色値)を取ったことを示す1以上のビットを含んでもよい。圧縮されたm×n画素セルおよび圧縮されたm×n属性セルは、解凍されてもよい。おそらく、特定の画素が圧縮前に同一の純粋で極端な色値を取ったことを示す1以上のビットを受けて、特定の画素の色値が同一の純粋で極端な色値でないことが決定され、少なくとも色値の1つは、色値が同一の純粋で極端な色値となるように変更されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の画素がデジタルオブジェクトに重なり合うかどうかを示す、1以上のビットを含んでもよい。m×n画素セルの非可逆での圧縮には、(1)特定の画素、又は(2)デジタルオブジェクトからの交換画素、のどちらかの選択、および選択された画素の圧縮を含んでもよい。選択は1以上のビットに基づいてもよい。場合によっては、1以上のビットはm×n属性セルの可逆圧縮から省略されてもよい。
代わりに、又は加えて、m×n画素セルの特定の画素に関連付けられている制御データは、特定の色変換が特定の画素に適用されるかどうかを示す、1以上のビットを含んでもよい。m×n画素セルの非可逆での圧縮の前に、特定の画素は、特定の色変換に基づいて、1つのカラーモデルから他のカラーモデルに変換されてもよい。場合によっては、1以上のビットはm×n属性セルの可逆圧縮から省略されてもよい。
m×n属性セルの可逆での圧縮には、m×n属性セルの各構成要素が同一の値を取ることの決定、およびおそらくこの決定に基づく、(例えば、D1又はD1D圧縮を使用した)単一値のオペコード、および同一の値の指示を使用した、m×n属性セルの符号化を含んでもよい。代わりに、m×n属性セルの可逆での圧縮には、m×n属性セルの各構成要素が2つの異なる値の1つを取ることの決定、およびおそらくこの決定に基づく、(例えば、P2又はP2D圧縮を使用した)2値のオペコード、2つの異なる値の指示、およびどの構成要素が2つの異なる値の各々を取るかを示すビットマップを使用したm×n属性セルの符号化を含んでもよい。
さらに他の局面では、m×n属性セルの可逆での圧縮には、m×n属性セルの各構成要素が3つ又は4つの異なる値の1つを取ることの決定、およびおそらくこの決定に基づく、(例えば、P4圧縮を使用した)4値のオペコード、3つ又は4つの異なる値の指示、およびどの構成要素が3つ又は4つの異なる値の各々を取るかを示すビットマップを使用したm×n属性セルの符号化を含んでもよい。他の代替手段では、m×n属性セルの可逆での圧縮には、m×n属性セルの構成要素が少なくとも5つの異なる値を取ることの決定、およびおそらくこの決定に基づく、(例えば、D64圧縮を使用した)多値のオペコード、およびm×n属性セルの各構成要素により取得された値の指示を使用したm×n属性セルの符号化を含んでもよい。
図14は、カラープレーンのセルの圧縮に関するステップを一般的に示す。しかしながら、これらのステップは、追加の目的で同様に利用されてもよい。図5乃至図12Bに関連して説明されている操作は、このフローチャートで明示的に又は暗黙的に言及されてもよい。例えば、図14のステップは、図6のブロック604および/または614で、印刷デバイスのパイプラインの他の場所で、又はホストコンピュータにより、行われるかもしれない。
このフローチャートは単一のカラープレーンの圧縮を含むため、(カラープレーン決定木800の決定のような)決定は、プレーンベースで行われる。とはいえ、図14のステップは、多数のカラープレーンを同時に検討する合成操作の一部として行われる可能性がある。
ステップ1400では、入力画像からa×b画素マクロセルを得てもよい。a×b画素マクロセルは、4つの非オーバーラップm×n画素セルを含んでもよい。a×b画素マクロセルのa×b画素はそれぞれの色値を有し、各オブジェクトタイプタグに関連付けられてもよい。これらのオブジェクトタイプタグはそれぞれ、例えば、属性配列の1以上のビットでもよい。
ステップ1402では、おそらく各色値および各オブジェクトタイプタグに基づいて、圧縮技術は(1)a×b画素マクロセル全体で圧縮する、又は(2)4つの非オーバーラップm×n画素セルの各々を別々に圧縮することにより、a×b画素マクロセルを圧縮する、のどちらかが選択されてもよい。
ステップ1404では、a×b画素マクロセルは、選択された圧縮技術に従って圧縮されてもよい。ステップ1406では、圧縮されたa×b画素マクロセルの表現が、コンピュータ読み取り可能な出力媒体に書き込まれてもよい。
実施形態によっては、選択された圧縮技術は、a×b画素マクロセルを全体で圧縮する。この処理は、a×b画素マクロセルのダウンサンプリングされたm×n画素セルへのダウンサンプリング、およびダウンサンプリングされたm×n画素セルの(例えば、DCTQ圧縮を使用した)非可逆での圧縮を含んでもよい。
a×b画素マクロセルが全体で圧縮される場合、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値を超えることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素がそれぞれ同一のオブジェクトタイプを表すことを示すことの決定、(3)a×b画素の各色値が、dは少なくとも2である、少なくともd色を含むことの決定、および(4)a×b画素マクロセルを全体で圧縮するための選択を含んでもよい。
代わりに、a×b画素マクロセルが全体で圧縮される場合、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値以内であることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素のいくつかが異なるオブジェクトタイプを表すことを示すことの決定、(3)a×b画素の各色値が、dは少なくとも2である、少なくともd色を含むことの決定、および(4)a×b画素マクロセルを全体で圧縮するための選択を含んでもよい。
他の代替手段では、a×b画素マクロセルが全体で圧縮される場合、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値以内であることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素がそれぞれ同一のオブジェクトタイプを表すことを示すことの決定、(3)a×b画素の各色値が複数の色を含んでいることの決定、および(4)a×b画素マクロセルを全体で圧縮するための選択を含んでもよい。
追加の実施形態では、選択された圧縮技術は、4つの非オーバーラップm×n画素セルの各々を別々に、(例えば、D1、D1D、P2、P2D、又はP4圧縮を使用して)可逆で圧縮する。
4つの非オーバーラップm×n画素セルが可逆で別々に圧縮される場合、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値を超えることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素はそれぞれ同一のオブジェクトタイプを表すことを示すことの決定、(3)1以上のm×n画素セルの各々に対する各色値が、dは少なくとも2である、d未満の色を含むことの決定、および(4)1以上のm×n画素セルの各々を可逆で別々に圧縮するための選択を含んでもよい。
代わりに、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値以内であることの決定、(2)a×b画素に対する各オブジェクトタイプタグがa×b画素のいくつかが異なるオブジェクトタイプを表すことを示すことの決定、(3)1以上のm×n画素セルの各々に対する各色値が、dは少なくとも2である、d未満の色を含むことの決定、および(4)1以上のm×n画素セルの各々を可逆で別々に圧縮するための選択を含んでもよい。
他の代替手段では、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値を超えることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素のいくつかが異なるオブジェクトタイプを表すことを示すことの決定、(3)1以上のm×n画素セルの各々に対する各色値が、dは少なくとも2である、d未満の色を含むことの決定、および(4)1以上のm×n画素セルの各々を可逆で別々に圧縮するための選択を含んでもよい。
さらに他の代替手段では、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値以内であることの決定、(2)a×b画素に対する各オブジェクトタイプタグが、a×b画素が同一のオブジェクトタイプを表すことを示すことの決定、(3)a×b画素の各色値がそれぞれ、同一の色値を表すことの決定、および(4)4つの非オーバーラップm×n画素セルの各々を可逆で別々に圧縮するための選択を含んでもよい 。
実施形態によっては、選択された圧縮技術は、4つの非オーバーラップm×n画素セルの1以上のm×n画素セルを非可逆(例えば、DCTP圧縮)で別々に圧縮してもよい。
4つの非オーバーラップm×n画素セルが非可逆で別々に圧縮される場合、圧縮技術の選択には、(1)a×b画素の各色値の範囲が所定の非ゼロ閾値を超える、又はa×b画素に対する各オブジェクトタイプタグが、a×b画素のいくつかが異なるオブジェクトタイプを表すことを示すことの決定、(2)a×b画素に対する各色値が、5未満の色を含むことの決定、(3)1以上のm×n画素セルの各々に対する各色値が、dは少なくとも2である、少なくともd色を含むことの決定、および(4)1以上のm×n画素セルの各々を非可逆で別々に圧縮するための選択を含んでもよい。
圧縮されたa×b画素マクロセルは、a×b画素マクロセルを圧縮するために利用された圧縮技術を反転することにより、解凍してもよい。従って、圧縮されたa×b画素マクロセルの解凍は、第2のa×b画素マクロセルをもたらしてもよく、第2のa×b画素マクロセルの画素値は、a×b画素マクロセルの画素値と同一又は近似のどちらかでよい。
実施形態によっては、第2のa×b画素マクロセルおよび第3のa×b画素マクロセルは、入力画像から取得してもよい。第2および第3のa×b画素マクロセルは、それぞれ4つの非オーバーラップm×n画素セルを含み、第2および第3のa×b画素マクロセルの各々の画素はそれぞれ色値も有してもよいし、各オブジェクトタイプタグに関連付けられてもよい。これらの実施形態において、圧縮技術は、第2のa×b画素マクロセルの4つの非オーバーラップm×n画素セル、および第3のa×b画素マクロセルの4つの非オーバーラップm×n画素セルの各々を互いに別々に、そしてa×b画素マクロセルの4つの非オーバーラップm×n画素セルから圧縮することにより、第2および第3のa×b画素マクロセルの各々を圧縮するために選択されてもよい。従って、第2のa×b画素マクロセルの4つの非オーバーラップm×n画素セルおよび第3のa×b画素マクロセルの4つの非オーバーラップm×n画素セルの各々は、互いに別々に、そしてa×b画素マクロセルの4つの非オーバーラップm×n画素セルから圧縮されてもよい。圧縮された第2のa×b画素マクロセルおよび圧縮された第3のa×b画素マクロセルの表現は、コンピュータ読み取り可能な出力媒体に書き込んでもよい。
図15は、属性プレーンおよび1以上のカラープレーンのセルの圧縮表現をインターリービングするためのステップを一般的に示す。しかしながら、これらのステップは追加の目的で同様に利用されてもよい。図5乃至図12Bに関連して説明されている操作は、このフローチャートに明示的に又は暗黙的に言及されてもよい。例えば、図15のステップは、図6のブロック604および/または614で、印刷デバイスのパイプラインの他の場所で、又はホストコンピュータにより行われるかもしれない。
ステップ1500では、a×b画素マクロセルは、1以上のカラープレーンを持つ入力画像から取得してもよい。a×b属性マクロセルも取得してもよい。a×b画素マクロセルは4つの非オーバーラップm×n画素セルを含み、a×b属性マクロセルは4つの非オーバーラップm×n属性セルを含んでもよい。a×b画素マクロセルのa×b画素は各色値に関連付けられ、a×b属性マクロセルの構成要素は1対1でa×b画素マクロセルの各画素に関連付けられてもよい。
ステップ1502では、4つの非オーバーラップm×n属性セルにそれぞれ関連付けられている、4つの属性プレーン出力値が決定されてもよい。ステップ1504では、非オーバーラップm×n画素セルに対する1乃至4つのカラープレーン出力値が決定されてもよい。ステップ1506では、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現が、コンピュータ読み取り可能な出力媒体に書き込まれてもよい。このインターリーブ表現は、図11A、図11B、図12A、および/または図12Bの本開示に従ったフォーム、又は他のフォームを取ってもよい。
さらに、第2のa×b画素マクロセルも、入力画像から得られてもよい。第2のa×b画素マクロセルは、4つの非オーバーラップm×n画素セルの第2のセットを含んでもよく、第2のa×b画素マクロセルのa×b画素も、各色値に関連付けられおり、a×b属性マクロセルの構成要素は、1対1で第2のa×b画素マクロセルの各画素に関連付けられている。第3のa×b画素マクロセルも、入力画像から得られてもよい。第3のa×b画素マクロセルは、4つの非オーバーラップm×n画素セルの第3のセットを含んでもよく、第3のa×b画素マクロセルのa×b画素も、各色値に関連付けられており、a×b属性マクロセルの構成要素は、1対1で第3のa×b画素マクロセルの各画素に関連付けられている。操作はさらに、4つの非オーバーラップm×n画素セルの第2のセットに対する、1乃至4つのカラープレーン出力値の第2のセットの決定、および4つの非オーバーラップm×n画素セルの第3のセットに対する、1乃至4つのカラープレーン出力値の第3のセットの決定を含んでもよい。インターリーブ表現も、決定された1乃至4つのカラープレーン出力値の第2のセット、および決定された1乃至4つのカラープレーン出力値の第3のセットを含んでもよい。
実施形態によっては、属性プレーン出力値およびカラープレーン出力値の各々は、それぞれオペコードおよびデータを含む。さらに、4つの属性プレーン出力値は、それぞれ4つの非オーバーラップm×n属性セルの(例えば、D1、D1D、P2、P2D、P4、又はD64圧縮を使用した)可逆圧縮に基づいて決定されてもよい。
場合によって、非オーバーラップm×n画素セルに対するカラープレーン出力値の決定には、4つの非オーバーラップm×n画素セルの各々が(例えば、D1、D1D、P2、P2D、P4、又はDCTP圧縮を使用して)非可逆又は可逆で別々に圧縮されることの決定、および4つのカラープレーン出力値、つまり4つの非オーバーラップm×n画素セルの各々に対する1つのカラープレーン出力値の決定を含んでもよい。代わりに、非オーバーラップm×n画素セルに対するカラープレーン出力値の決定には、a×b画素マクロセルがダウンサンプリングされ、(例えば、DCTQ圧縮を使用して)非可逆で圧縮されることの決定、およびダウンサンプリングされ、圧縮されたa×b画素マクロセルに対する1つの出力値の決定を含んでもよい。
実施形態によっては、少なくとも2つのカラープレーン出力値が(例えば、D1、D1D、P2、又はP2D圧縮を使用して)決定される。4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、カラープレーン出力値の第1のカラープレーン出力値および第2のカラープレーン出力値が同一の方法により可逆で圧縮されることの決定、およびオペコード、キャッシュミスインディケータ、およびデータフィールドを有する第1のカラープレーン出力値による表現、およびオペコードおよびキャッシュヒットインディケータを有する第2のカラープレーン出力値による表現を含んでもよい。キャッシュヒットインディケータは、第2のカラープレーン出力値が第1のカラープレーン出力値のデータフィールドを使用することを示してもよい。
代わりに、又は加えて、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、カラープレーン出力値のうち特定のカラープレーン出力値が、(1)n−1ビット線図、(2)第1のmビットライン、および(3)1の値を取るn−1ビット線図の各ビット当たりの、別の各mビットライン、を使用して、可逆で圧縮されることの決定を含んでもよい。そして、特定のカラープレーン出力値は、オペコード、少なくとも2つの異なる画素値、n−1ビット線図、第1のmビットライン、および各mビットラインで(例えば、P2圧縮を使用して)表されてもよい。
別の場合、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、カラープレーン出力値のうち特定のカラープレーン出力値が、(1)n−1ビット線図、(2)第1の2mビットライン、および(3)1の値を取るn−1ビット線図の各ビット当たりの、別の各2mビットライン、を使用して、可逆で圧縮されることの決定を含んでもよい。そして、特定のカラープレーン出力値は、オペコード、少なくとも4つの異なる画素値、n−1ビット線図、第1の2mビットライン、および各2mビットラインで(例えば、P4圧縮を使用して)表されてもよい。
実施形態によっては、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、第1の出力値および第2の出力値がコンピュータ読み取り可能な出力媒体で表され、第1の出力値および第2の出力値に関連付けられているm×nセルが(例えば、キャッシングを伴うP2圧縮を使用して)同一のビットマップで表されることの決定を含んでもよい。そして、第2の出力値は、第2の出力値が専用のビットマップを含まない場合、オペコード、2つ以上の色値、および第1の出力値の第1のビットマップへの参照で表されてもよい。
さらに、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、pが1、2、3、又は4である、(1)4つの非オーバーラップm×n画素セルのうちのpが、同一の方法により可逆で圧縮されること、および(2)色値を互いに同一の場所で含むことの決定を含んでもよい(例えば、qCell内のD1・pCellの実行)。そして、決定されたカラープレーン出力値は、少なくともオペコードおよびpの値として表されてもよい。
場合によって、4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、4つの非オーバーラップm×n画素セルが、相互に同一の方法で、および同一のカラープレーンの予め書き込まれたm×n画素セルで、可逆で圧縮されることの決定を含んでもよい。そして、決定されたカラープレーン出力値は、決定されたカラープレーン出力値が(例えば、D1C圧縮を使用した)同一の符号化の実行であることを示すオペコードとして表されてもよい。4つの属性プレーン出力値および決定されたカラープレーン出力値のインターリーブ表現の書き込みには、さらに、pが0、1、2、又は3である、4つの非オーバーラップm×n画素セルのうちのpは、(1)前のm×n画素セルが同一の符号化の実行として表された場合、コンピュータ読み取り可能な出力媒体に書き込まれた、前のm×n画素セルとして同一の方法により可逆で圧縮されること、および(2)任意の残りの4−p非オーバーラップm×n画素セルより前に、コンピュータ読み取り可能な出力媒体に書き込まれること、の決定を含んでもよい。そして、決定されたカラープレーン出力値は、(1)(例えば、D1E符号化を使用した)同一の符号化の実行の終了を示す第1のオペコード、および(2)pが0よりも大きい場合、第2のオペコードおよびpの値(例えば、qCell内のD1・pCellの実行)として表されてもよい。
[14.結論]
本出願において記述されている具体的な実施形態に関して、本開示は限定されるべきではなく、それらはいろいろな態様の実例として意図されている。当業者にとって明白であるように、本開示の主旨と範囲から逸脱することなく多くの変更および変形をすることが可能である。本記載に列挙されていることに加え、本開示の範囲内の機能的に等価な方法および装置は前述の記載から明白であろう。そのような変更および変形は、添付された請求項の範囲内に入るように意図されている。
図面における、任意のすなわち全てのラダー図、シナリオ、およびフローチャートに関しておよび本記載で述べられたように、各ブロックおよび/または通信は、例示の実施形態に従って情報を処理しおよび/または情報を送信することを表してもよい。他の実施形態もそのような例示の実施形態の範囲に含まれてもよい。さらに、より多くの又はより少ないブロックおよび/または機能が、本記載に記述されているどのラダー図、シナリオ、およびフローチャートと共に使用されてもよいし、また当該ラダー図、シナリオ、およびフローチャートは、部分的に又は全体的にお互いに結合されてもよい。
情報の処理を表すステップ又はブロックは、本記載の方法又は技術の具体的な論理機能を実行するように構成することが可能な回路に相当してもよい。それに代えてまたはさらに、情報の処理を表すステップ又はブロックは、モジュール、セグメント、又はプログラムコードの一部分(関連するデータを含めて)に相当してもよい。プログラムコードは、方法又は技術における具体的な論理機能又は動作を実行するための、処理部により実行可能な一つ以上の命令を含んでもよい。プログラムコードおよび/または関連するデータは、ディスクドライブ、ハードドライブ、又はその他の記憶媒体を含む記憶装置等の任意の種類のコンピュータ読み取り可能な媒体に格納してもよい。
コンピュータ読み取り可能な媒体は、また、レジスタメモリ、プロセッサキャッシュ、および/またはランダムアクセスメモリ(RAM)のような短期間データを格納するコンピュータ読み取り可能な媒体等の、非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、例えば、リードオンリーメモリー(ROM)、光学又は磁気ディスク、および/またはコンパクトディスク・リードオンリーメモリー(CD―ROM)のような、二次的又は持続的長期記憶装置等、より長期間プログラムコードおよび/またはデータを格納する非一時的でコンピュータ読み取り可能な媒体を含んでもよい。コンピュータ読み取り可能な媒体は、また、他の揮発性又は不揮発性記憶システムでもあってもよい。コンピュータ読み取り可能な媒体は、例えば、コンピュータ読み取り可能な記憶媒体および/または有形の記憶デバイスと考えてもよい。
加えて、本明細書、図面、請求項内のいずれの構成要素、ブロック、又はステップの列挙も、明確さを目的としたものである。従って、このような列挙は、これらの構成要素、ブロック、又はステップが特定の配置にこだわる、又は特定の順序で実行されることを要求又は意味すると解釈すべきではない。
本記載においてさまざまな態様および実施形態が開示されてきたが、他の態様および実施形態も当業者にとって明白であろう。本記載において開示されたさまざまな態様および実施形態は、例示目的であって限定することを意図するものではなく、真の範囲と主旨は以下の請求項により示されている。