JP2008527416A - ボールド化されたアンチエイリアシング・ビットマップを生成するための入力の白黒ビットマップの使用 - Google Patents

ボールド化されたアンチエイリアシング・ビットマップを生成するための入力の白黒ビットマップの使用 Download PDF

Info

Publication number
JP2008527416A
JP2008527416A JP2007549491A JP2007549491A JP2008527416A JP 2008527416 A JP2008527416 A JP 2008527416A JP 2007549491 A JP2007549491 A JP 2007549491A JP 2007549491 A JP2007549491 A JP 2007549491A JP 2008527416 A JP2008527416 A JP 2008527416A
Authority
JP
Japan
Prior art keywords
bitmap
pixel
black
bolding
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007549491A
Other languages
English (en)
Other versions
JP5490360B2 (ja
JP2008527416A5 (ja
Inventor
マスケウィッチ ターニャ
ガバル エル−ガンマル モハメッド
エル.キルグロウ デビッド
ワン ジィエン
ウー ジィアン
チェン リヨン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2008527416A publication Critical patent/JP2008527416A/ja
Publication of JP2008527416A5 publication Critical patent/JP2008527416A5/ja
Application granted granted Critical
Publication of JP5490360B2 publication Critical patent/JP5490360B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1827Accessing generic data, e.g. fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1844Anti-aliasing raster data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/34Smoothing or thinning of the pattern; Morphological operations; Skeletonisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Dot-Matrix Printers And Others (AREA)

Abstract

入力白黒ビットマップ(9A)をボールド化して、ボールド化されたアンチエイリアシング・ビットマップ(9B)を生成するための、コンピュータ実施のシミュレート化ボールド化機構。シミュレート化ボールド化処理は、周囲のピクセルに関するコンテキスト的情報を考慮に入れて、ボールド化の方向におけるピクセルの輝度を調整する。ボールド化は、白黒出力ビットマップだけには限定されず、またそのようなコンテキスト的情報を考慮に入れるので、結果として生ずるボールド化キャラクタの判読可能性および読取り可能性が、高められる。

Description

本発明は、レンダリング技術に関し、より詳細には、フォント・キャラクタのアルゴリズム的なシミュレート化ボールド化処理(algorithmic simulated emboldening)を実施するための機構に関する。
コンピューティング技術は、多種多様なアプリケーションを可能にする。これらのアプリケーションの一部は、例えばマウス、キーボード、マイクロフォン、カメラなどを介して人間ユーザからの入力を受け取ることにより、あるいは例えばスピーカ、ディスプレイまたはプリンタを介して人間ユーザに出力を供給することによって、人間とインターフェースする。とりわけ、視覚は、とても有力な人間の感覚機能であるので、人間ユーザは、計算結果を解釈し、かつ/またはアプリケーションとインターフェースするのに、ある種のプリンタまたはディスプレイに、通常、依存する。
表示されるものの一つは、キャラクタである。キャラクタの組は、(それがテキストであるか、そうでないかにかかわらず)論理的に、全体としてグループ化することができる。フォントは、キャラクタの論理的なグルーピングの一例を表す。とりわけ、フォントは、特定のスタイルおよびサイズで、印刷可能な、または表示可能な、キャラクタの一つの組である。フォントのキャラクタは、多くの場合に、「グリフ(glyph)」と名付けられる。
フォントのキャラクタ(グリフ)は、アウトライン(outline)または埋め込みビットマップ(embedded bitmap)によって記述することができる。アウトラインは、キャラクタ形状の輪郭を記述することによってキャラクタを記述する。そのようなアウトラインは、より簡単に拡大縮小することができる。ラスタ化(rasterization)プロセス中に、ソフトウェアは、所定の要求されたポイントサイズ、またはエム当たりのピクセル(Pixels Per EM)(ppem)の表示用の適切なビットマップに、アウトラインを変換することができる。
埋め込みビットマップは通常、特定のppemに対応する、手作業であらかじめデザインされたビットマップ画像である。埋め込みビットマップは通常、低いppemおよび中間のppemに対して、およびヒント情報のないアウトラインのラスタ化に由来するppemよりも高い画像品質を通常必要とするこれらのppemに対してのみ存在する。ヒンティング(hinting)は、低いppemに対してのレンダリングされた結果の品質を改善する(ビットマップを埋め込むことに比べられた)別の方法を表すアウトラインの条件付き修正である。
伝統的に、(ラテンなど)比較的少数のキャラクタと比較的単純なキャラクタ形状を有するフォントのキャラクタは、ヒント情報付きのアウトラインによって記述される。他方、(以降でEAとも称される東アジア(East Asia)のフォントなどの)多数のキャラクタと比較的複雑なキャラクタ形状を有するフォントのキャラクタは、ヒント情報のないアウトラインによって記述され、また通常(以降でBWとも称される)一連の埋め込み白黒ビットマップによって記述される。これらの、より複雑なフォントは、通常、幾つかの、ただし必ずしもすべてがそうではないが、低いppemおよび中間のppemの埋め込みビットマップを有する。さらに、この埋め込みビットマップは、必ずしもそのフォントにおけるキャラクタの全範囲(full repertoire)をカバーするとは限らない。非常にまれに、フォントは、アンチエイリアシング(以降ではAAとも称される)埋め込みビットマップを含んでいる。非常に少ないが、(以降でCTとも称される)CLEARTYPE(登録商標)フォーマットの埋め込みビットマップを含んでいるフォントもある。
一部の状況においては、キャラクタを「ボールドにする(bold)」ことが望ましいことがある。ボールドにされたキャラクタは、より重い視覚または印刷上の重みを有する傾向がある。ボールドにされたキャラクタは、しばしばそれらの対応するレギュラー重みキャラクタの代わりに提供される。キャラクタをボールドにすることが望ましいこともあるいくつかの場合が存在する。例えば、キャラクタは、しばしばキャラクタによって伝えられる意味を強調するためにボールドにされることがある。
フォントが、真のボールド・バージョン(bold version)を有する場合がある。その場合は、より重い重みを表すフォント・キャラクタの別個のデザインがあり、これらのデザインが、元のフォントに関連するものとしてレンダリング・ソフトウェアによって認識可能な方法で記憶されている。フォントのキャラクタに関連付けられた真のボールド・デザインは、元のレギュラー重みフォントのキャラクタに関して、一様なボールドにする変換(uniform bolding transformation)に必ずしも従うとは限らない。キャラクタの異なる要素は、キャラクタの固有の形態が与えられると、それぞれに見合った異なる方法でボールド化(embolden)される。多くの場合に、より正式な高品質のボールドにされた外観に寄与する、多くの主観的美的判断を考慮に入れるために、ボールド化フォントのカスタム・デザインには人間が関与させられる。
伝統的に、(ラテン・フォントなど)より少数のキャラクタと比較的単純なキャラクタ形状を有する最も一般的に使用されるフォントは、関連する真のボールド・バージョンを有する。しかし、フォントのカスタム・デザインに関連する時間とコストに起因して、より複雑なキャラクタと、より多数のキャラクタを有する、ほとんどのより大きなフォントは、関連する真のボールド・バージョンを有さない。さらに、これらの複雑なキャラクタ・セットについてのそのような真のボールド・フォントのデザインは、法外に高くつく可能性がある。結果として、ユーザがボールド・オプション(bold option)を選択する場合、シミュレート化ボールド化処理(simulated emboldening)が、レンダリング・エンジン(rendering engine)によって実行される。
シミュレート化ボールド化処理は、レギュラー・フォントからのデータに基づいてレンダリング・エンジンによって実施される自動的なアルゴリズム的プロシージャである。現在適用されるシミュレート化ボールド化処理は、必ずしも元のデザインの意図を配慮したり、あるいはボールド化フォント・データの品質および外観を改善する非常に多くの主観的判断を配慮したりするとは限らない、一様なアルゴリズムによって実施される。
シミュレート化ボールド化処理についての現在適用されるアルゴリズムは、より単純なキャラクタを有するフォントについては非常に判読しやすい結果をもたらすが、そのようなアルゴリズムは通常、より複雑で密度の高いキャラクタを有するフォントについては判読しやすい結果をもたらすことができない。
簡略化されたビューにおいては、レンダリング・プロセスは、3つのステージに分割することができる。第1のステージにおいては、フォント・ファイルからの情報がアクセスされ、また必要に応じてラスタライザ読取り可能(rasterizer-readable)フォーマットに変換される。第2のステージにおいて、ラスタライザ読取り可能フォント・フォーマットがビットマップと呼ばれる値の2次元アレイに変換されるラスタ化プロセスが行われる。ビットマップは、「単純ビットマップ(simple bitmap)」ではピクセル当たりに1つの値を有し、CLEARTYPE(登録商標)ビットマップの場合におけるような「オーバースケールビットマップ(overscaled bitmap)」では、ピクセル当たりに複数の値を有することになる。値は、白黒(BW)ビットマップでは、単なる2進値(例えば、0または1)とし、AAビットマップでは、値の範囲(例えば、0から16まで)とすることができる。第3のステージでは、ディスプレイのピクセル(またはピクセル・サブ・コンポーネント)に対するビットマップ値の実際のマッピングが行われ、表示されるキャラクタがもたらされる。
シミュレート化ボールド化処理は、ラスタ化プロセス中の第2のステージにおいて行われる。ビットマップ値をディスプレイに対してマッピングする第3のステージは、特定のボールド化アルゴリズムの選択、および/またはあるアルゴリズムが選択された後のパラメータをチューニングすることに影響を及ぼし得るが、特定の種類のマッピングは、本発明の基本的な原理および実施形態を説明する際に、明確にするために説明から省略することができる。シミュレート化ボールド化処理のアルゴリズムが、ラスタ化プロセスの第2のステージ中に行われるので、第2のステージの処理は、本明細書中で論じられる主要なステージになる。
現在では、3つの主要なレンダリング・モード、すなわち白黒(BW)、アンチエイリアシング(AA)およびCLEARTYPE(登録商標)(CT)が存在する。従来、ラスタ化ステージにおいて、レンダリング・モードは、ビットマップの最終フォーマットと、特にボールド化が適用される場合には、ボールド化されたビットマップの出力フォーマットを定義する。
レンダリング・モードの選択に影響を及ぼし得る様々なファクタが存在する。そのようなファクタは、例えばデバイスの特性および設定、要求されるppem、フォント・データ(例えば、埋め込みビットマップの存在、(オープンタイプ(OPENTYPE)(登録商標)/TrueTypeフォントのファイルにおけるような)「gasp」テーブルの存在および内容)、要求される任意の幾何学的変形の存在および種類を含むことができる。他のファクタが、レンダリング・モードの選択に影響を及ぼす可能性がある。例えば、フォントの「複雑さ」は、レンダリング・モードを選択する際に考慮することができる。例えば、BWレンダリング・モードを適用し、比較的複雑なフォントについて埋め込みBWビットマップを使用し、CTレンダリング・モードを適用し、比較的複雑でないフォントについて埋め込みBWビットマップを完全に無視することを決定することができる。
レンダリング・モードの選択は、必ずしもディスプレイ・デバイスのすべての可能性を十分に実現するとは限らない。多くの状況において、選択は、ソフトウェアによって行われ、異なる条件下で人間の目にとって読みやすさや読みにくさがある個々のレンダリング・モードについての一般的な体験に基づいている。例えば、低いppemにおいて、AAレンダリング・モードは通常、特にフォントがBW埋め込みビットマップを含む場合には、BWモードよりも低品質のレンダリング結果をもたらす。したがって、「gasp」テーブル中のフラグは、たとえディスプレイ・デバイスの大部分がグレーの濃淡(shade)を表示することができるとしても、低いppemのキャラクタをレンダリングするときに、適用すべきBWレンダリング・モードを強制することができる。CLEARTYPE(登録商標)に関しても同じことが当てはまる。例えば、たとえディスプレイ・デバイスが、CTモードでレンダリングする機能を有するとしても、埋め込みBWビットマップがフォント中に存在する場合のより低いppemでの比較的複雑なフォントについて、BWレンダリング・モードを適用することを決定することができる。選択されたレンダリング・モードは、最良のユーザ体験をもたらすべきであり、別のレンダリング・モードが、より良いレンダリング結果をもたらすように見える場合には、変更することができる。
現在では、レギュラー重みキャラクタとボールド重みキャラクタは一般的に、他のすべての条件が同じであることを仮定すると同じレンダリング・モードでレンダリングされる。しかし、この決定は、どのような内部要件も反映せず、別のアプローチが、より良いレンダリング結果をもたらすことが示されることになる場合には、上書きすることができる。
ビットマップ・ボールド化処理のための現行のアルゴリズムは一般に、入力および出力について同じタイプのビットマップを使用し、これは、ボールド化アルゴリズムについてレンダリング・モードが、入力タイプも出力タイプも、一般に暗黙のうちに設定することを意味する。しかし、この依存性は、一般的に必須ではない。
ラスタ化プロセスは、レギュラー重み、およびシミュレートされるボールド重みについて同じ主要なステップを通過する。1つの違いは、シミュレート化ボールド化処理の形態が適用される場合、追加のボールド化ステップが、ラスタ化プロセス中において使用されることである。このボールド化ステップは、それがレギュラー重みについて実施されることになるときにラスタ化のフローを途中で横取りし(intecept)、必要なボールド化オペレーションを実施し、次いでラスタ化のフローをレギュラー重みの場合におけるように正確に継続させる。したがって、ボールド化ステップが、その適切なラスタ化のコンテキストで理解することができるように、レギュラー重み用のラスタ化処理のある一般的なバックグラウンドの説明が今や存在することになる。
ラスタライザは、フォントの特定の特性(characteristics)に、または要求されている異なるレンダリング条件に、関連した多数の異なるパラメータを受け入れることができる。シミュレート化ボールド化処理の従来のモデルを説明する目的のために、本発明者等は、ラスタライザに与えられる、以下の入力情報に焦点を合わせることにする。
・要求されているキャラクタの識別に関する情報(例えば、ユニコード・キャラクタ・コード)。
・サイズ(ppem)、異なる幾何学的変換(non-identical geometrical transformation)の存在、シミュレート化ボールド化処理についての要求などのレンダリング条件に関する情報。シミュレート化ボールド化処理が要求される場合に、「重さ(heaviness)」(ボールド化の量)およびボールド化の方向を識別する幾つかの追加パラメータが、ラスタライザに渡されることになる(より詳細に以下で説明される)。
・フォント・ファイルに由来する情報:埋め込みビットマップが、同じ条件についての特定のキャラクタまたはキャラクタの和について存在するかどうか、特定のキャラクタについての埋め込みビットマップまたは/およびアウトライン・データの記述に対するアクセス、特定のppemについての好ましいレンダリング・モードなど、デザイナによって指定される情報など。
・レンダリング・モードに関する情報(これらは、結果として生ずるビットマップのフォーマットを定義する):レンダリング・モードBW、AA、またはCTの仕様、および追加の要求される任意の情報(例えば、AAボールド化の場合には−要求されたグレー・レベル数)。
ラスタライザは、入力情報に基づいて適切なラスタ化を実施することになり、結果として生ずるビットマップのサイズおよび位置決めに関連したメトリック情報(metric information)と一緒に、要求されたレンダリング・モードに対応するフォーマットで、結果として生ずるビットマップを供給することになる。
以下の好ましい実施形態の節の詳細な説明に述べられるボールド化シミュレーションの新しいアルゴリズムは、メトリック情報を必ずしも修正することを意図していないので、従来のラスタ化プロセスのビットマップ出力が、次に説明される。
従来のBWレンダリングのためのラスタ化プロセスは、特定の例に関して、また図1に関して次に説明される。BWレンダリング・モードにおいて、ラスタライザは通常、もし存在するなら、埋め込みBWビットマップを使用することになる。図1の例において、ユニコード「ギリシャ語大文字MU(GREEK CAPITAL LETTER MU)」がレンダリングされるべきであるものと仮定する。キャラクタおよび要求された条件のBWビットマップが存在する場合(図1におけるブランチ「(BW:埋め込みBW単純ビットマップ(Embedded BW Simple Bitmap))」)、次ぎに埋め込みBWビットマップが、ラスタ化のために使用される。次ぎに、ラスタライザからのBW値は、ラスタライザの外部のソフトウェアによって実際の(複数の)ピクセル・カラーにマッピングされる。
キャラクタおよび要求された条件のBWビットマップが存在しない場合(図1におけるブランチ「(BW:アウトラインから単純ビットマップ(Outline to Simply Bitmap))」)、次いで単純ビットマップは、スキャン変換アルゴリズムをアウトラインに対して適用することにより、フォント中に存在するアウトライン情報を使用してレンダリングされる。埋め込みビットマップが、もし存在するなら使用される理由は、ヒント情報のないフォントでは、アウトラインのレンダリングによって生成されるビットマップは通常、埋め込みビットマップよりも低品質を有するからである。
どちらのアプローチが使用されているとしても、最終出力は、同じフォーマット、すなわち単純BWビットマップである。このラスタ化プロセスの重要な特性は、このラスタ化プロセスが、最終的な出力ビットマップの計算の任意の中間ステップにおいて、オーバー・スケーリングされたビットマップを使用しないことである。計算のすべてのステージにおいて、ピクセル当たりに1つの値しか存在しない。
従来のAAレンダリングのラスタ化プロセスは、次に特定の例に関して、また図2Aおよび2Bに関して説明されることになる。AAレンダリング・モードにおいて、ラスタライザは通常、レンダリングすべきフォント中において、もし存在するなら埋め込みAAビットマップ(図2Aにおけるブランチ「(AA:埋め込みAA単純ビットマップ(Embedded AA Simple Bitmap))」)を使用する。ほとんどのフォントが埋め込みAAビットマップを有さないので、ブランチ「(AA:埋め込みAA単純ビットマップ)は、ほとんどの場合決して実行されない。
他方、埋め込みビットマップが、キャラクタおよび要求された条件について存在しない場合には、単純AAビットマップが、フォント(図2Bにおけるブランチ「(AA:オーバー・スケーリングされたビットマップから単純ビットマップ(Overscaled to Simple Bitmap))」に続く図2Aにおけるブランチ「(AA:アウトラインからオーバー・スケーリングされたビットマップ(Outline to Overscaled Bitmap))」)中に存在するアウトライン情報を使用してレンダリングされる。ラスタ化が、アウトライン情報から出発するときに、ラスタ化は、2つの独立したステージ:(AA:アウトラインからオーバー・スケーリングされたビットマップ)および(AA:オーバー・スケーリングされたビットマップから単純ビットマップ)を通過する。ステージ(AA:アウトラインからオーバー・スケーリングされたビットマップ)中に使用されるアウトライン・データに基づいたオーバー・スケーリングされたビットマップの計算のためのアルゴリズムと、ステージ(AA:オーバー・スケーリングされたビットマップから単純ビットマップ)中の単純AAビットマップの最終値の計算のためのアルゴリズムは、互いに依存してはおらず、これらが必要とされる入力フォーマットおよび出力フォーマットを用いて動作する限り、独立に修正することができる。
どちらのアプローチが使用されているにしても、最終出力は、同じフォーマット、すなわち単純AAビットマップを有する。このラスタ化プロセスの重要な特性は、埋め込みAAビットマップが存在しないときに、ラスタ化プロセスは、オーバー・スケーリングされたビットマップを最終出力ビットマップの計算の中間結果として使用することである。
ラスタ化プロセスが、BWレンダリング・モードおよびAAレンダリング・モードのおのおのについて、一般に説明されたので、説明は、従来のBWボールド化アルゴリズムおよびAAボールド化アルゴリズムへと進む。入力のタイプに応じて、ボールド化シミュレーションのアルゴリズムは、2つの大きなグループ、すなわち「ビットマップ・ボールド化」と「アウトライン・ボールド化」とに再分割される。様々なボールド化パラメータに加えて、ビットマップ・ボールド化アルゴリズムは、ビットマップを入力として受け入れるが、アウトライン・ボールド化アルゴリズムは、アウトラインをその入力として受け入れる。ビットマップ・ボールド化は、ビットマップをその出力として戻すが、アウトライン・ボールド化は、修正されたアウトラインを戻し、この修正されたアウトラインは、後でスキャン変換されて、ビットマップを生成することになる。
ビットマップ・ボールド化アルゴリズムとアウトライン・ボールド化アルゴリズムは、ラスタ化プロセスの異なるステージにおいて適用される。アウトライン・ボールド化は、それがレギュラー重みについて実施されることになるので、ラスタ化プロセスの第1のステップの前に常に適用されることになる。アウトライン・ボールド化が実施された後に、ラスタ化は、それがレギュラー重みの場合にまさにそうなるように継続することになる。
現在では、アウトライン・ボールド化は、ほとんどの場合決して適用されない。ビットマップ・ボールド化は、ささいでない幾何学的変形がテキストに適用されるまれな場合を除いて、ほとんどの状況においてほとんどのアプリケーションによって実施される。ビットマップ・ボールド化を適用する機能は、埋め込みビットマップを有するキャラクタに依存しない。したがって、ビットマップ・ボールド化は、埋め込みビットマップを有するか、あるいは有さないキャラクタに適用することができる。キャラクタが要求された条件の埋め込みビットマップを有さない場合、アウトライン情報に基づいたスキャン変換の結果は、ビットマップ・ボールド化アルゴリズムのための入力としての役割を果たすことになる。本発明の原理は、より多くをビットマップ・ボールド化に適用しており、したがっていくつかの従来のビットマップ・ボールド化アルゴリズムが、次に説明されることになる。
定義によって、ビットマップ・ボールド化アルゴリズムは、ビットマップをそれらの入力として受け入れ、ビットマップをそれらの出力として戻す。ビットマップそれ自体に加えて、ビットマップ・ボールド化アルゴリズムは通常、ボールド化の重さおよび方向に関する情報を受け入れる。この情報は、それぞれ水平方向および垂直方向の一対の「ボールド化シフト」によって表現することができる。ボールド化シフトは、(ピクセルで表現された)どれだけの量だけ、ボールド化されたビットマップが、視覚的に元のビットマップよりも重くなるべきであるかを明らかにし、シフトの符号は、ボールド化の(右/左および上/下への)方向を示している。ほとんどの現在のアプリケーションは、ピクセルの総数だけに対応するボールド化シフトを用いて動作する。さらに、低/中間ppemにおいて、また高ppemの低い側の範囲においてさえ(例えば、約50ppemまで)、右へ1ピクセルの(また垂直方向に0ピクセルの)シミュレート化ボールド化処理が通常、適用される。
入力ビットマップは、(埋め込みビットマップやグリフのアウトラインなど)異なるデータからのものとすることが可能であり、異なった方法で計算することができる。入力ビットマップが計算される特定の方法は、ビットマップに適用されるボールド化アルゴリズムとは無関係である。重要なことは、入力ビットマップのどのフォーマットがボールド化アルゴリズムによって予想されるかと、アルゴリズムがどのフォーマットの出力ビットマップを生成することになるかである。したがって、様々なボールド化アルゴリズムは、入力ビットマップおよび出力ビットマップのフォーマットに基づいて区別されることになる。
ラスタ化プロセスの異なるステップが、異なるフォーマットのビットマップを用いて動作するので、異なる種類のビットマップ・ボールド化アルゴリズムは、ラスタ化プロセスの異なるステップにおいて適用することができる。しかし、現在適用されるビットマップ・ボールド化アルゴリズムは、多くの場合に(BWフォーマット、AAフォーマットまたはCTフォーマットの)単純ビットマップと共に開始され、それらの入力と同じフォーマットの単純ビットマップを生成する。
ほとんどの現在適用されるビットマップ・ボールド化アルゴリズムは、オーバー・スケーリングされたビットマップの計算を伴うラスタ化プロセス中でさえ、入力としても出力としても、単純ビットマップを用いて動作する。オーバー・スケーリングされたビットマップが計算される場合に、ボールド化処理は、オーバー・スケーリングされたビットマップが、単純ビットマップに変換された後に適用される。
さらに、ほとんどの現在適用されるビットマップ・ボールド化アルゴリズムは、入力ビットマップ・フォーマットと全く同じ出力ビットマップ・フォーマットを有する。
さらに、これらのアルゴリズムは、しばしば入力ビットマップにおいてオフであり、またはより明るかった諸ピクセルの一部を、オンにし、またはもっと暗くすることもあり、またしばしば諸ピクセルをオフにせず、またはそれらをもっと明るくしないこともある。
従来のアルゴリズムはまた、一般的に、ボールド化の方向における(低い/中間のppemについての)1つ、または複数の隣接したピクセルなど、入力ビットマップの局所的な特性に基づいて特定のピクセルの値を修正すべきかどうかを決定する。現在使用されているアルゴリズムは、ボールド化と直角な方向における隣接したピクセルの情報を使用してはいない。
さらに、従来のアルゴリズムは、(水平ボールド化の場合には)行ごとに、また(垂直ボールド化の場合には)列ごとに動作し、それ故に、これらのアルゴリズムは、一度に一方向(水平または垂直のどちらか)だけを解析する。換言すれば、結果として生ずるピクセル値は、行だけ、または列だけのいずれかにおける隣接ピクセルに依存し、2次元の近傍を考慮には入れてはいない。
現在適用されているビットマップ・ボールド化アルゴリズムは、水平方向または垂直方向に適用することができる。水平方向および垂直方向についてのこれらのアルゴリズムは、方向性が変化するだけで本質的に対称である。一般に、水平ボールド化と垂直ボールド化についてのこれらのアルゴリズムは、混在しない。換言すれば、ボールド化が両方の方向に適用されるべき場合、その場合にはボールド化は、まず一方向で適用されることになり、次いで第1の方向におけるボールド化の結果に対して別の方向で適用される。
さらに、入力ビットマップを含む長方形のピクセル区域に加えて、諸アルゴリズムは通常、パラメータとして受け入れたボールド化シフトの値に応じて、その長方形区域に隣接した1つまたは複数の行、および/または1つまたは複数の列に影響を及ぼす。
低い/中間のppem(すなわち、約50ppemまで)では、これらのアルゴリズムは通常、水平方向に右に1ピクセルだけボールド化を適用する。低い/中間のppemは、レンダリングされたその画像の品質が特に解決されるべき課題で、また既存のアルゴリズムの改善が特に必要とされる、エリアであることに注意すべきである。
図3Aによって示されるように、BWレンダリング・モードにおいては、従来のボールド化アルゴリズムは、BW単純ビットマップを入力として受け入れ、BW単純ビットマップを出力として生成する。ボールド化アルゴリズムは、それがレギュラー重みの場合に適用されることになるのでレンダリング・プロセスの終わりに実施される(例えば、この説明については図1を参照されたい)。
特に、要求された条件用の埋め込みビットマップがフォント中に存在する場合(図3AにおけるYES)、以降で「(BW:ビットマップ単純レギュラーからビットマップ単純ボールド(Bitmap Simple Regular to Bitmap Simple Bold))」とも呼ばれるBWボールド化アルゴリズムは、以降で「(BW:埋め込みBW単純ビットマップ(Embedded BW Simple Bitmap))」(図1の左半分を参照)と呼ばれるステップの出力ビットマップに適用される。代わりに、要求された条件の埋め込みビットマップがフォント中に存在しない場合(図3AにおけるNO)には、ステップ(BW:ビットマップ単純レギュラーからビットマップ単純ボールド)は、以降で、ラスタ化がアウトライン・データに基づいている場合に「(BW:アウトラインから単純ビットマップ(Outline to Simple Bitmap))」(図1の右半分を参照)と呼ばれるステップの後に実施される。
入力ビットマップも出力ビットマップもBW単純ビットマップになるための(BW:ビットマップ単純レギュラーからビットマップ単純ボールド)における要件は、全く柔軟性がない。これらの制約条件に従って、ボールド化アルゴリズムは、入力ビットマップ中においてオフにされていた(値0を有した)ピクセルの一部を、出力ビットマップ中でオンにする(すなわち、値1を割り当てる)ことができるだけである。
例えば、ビットマップが水平方向に右に1ピクセルだけボールド化されるべき場合には、本明細書中において、「<BW:Alg規格>」と呼ばれる一般的に使用されるアルゴリズムは、以降のように動作する。元のビットマップ中の行ごとに、すぐ左に隣接する「黒」の(すなわち、オンにされた)ピクセルを有するすべてのピクセルをオンにする。
このアルゴリズムの適用の一例が、図3Bにも図3Cにも示されており、これらの図においては、ラスタライザの外部のソフトウェアによる白黒カラーへのマッピングの後のそのアルゴリズムの入力と出力が示されている。図3Bから分かるように、アルゴリズム<BW:Alg規格>は、制約条件を考慮して完全に妥当なオペレーションを実施する。しかし、図3C中のキャラクタは、同じボールド化アルゴリズムを使用してレンダリングされる。図3Cから明らかなように、キャラクタが比較的複雑な場合には、ボールド化アルゴリズムは、出力キャラクタを認識できないようにしてしまう。
図4Aによって示されるように、AAレンダリング・モードにおいては、従来のボールド化アルゴリズムは、AA単純ビットマップを入力として受け入れ、AA単純ビットマップを出力として生成する。ボールド化アルゴリズムは、それがレギュラー重みの場合に適用されることになるのでレンダリング・プロセスの終わりまで待つ。特に、要求された条件のAAビットマップを有するキャラクタのレンダリング(図4AにおけるYES)では、単純AAビットマップは、ステップ(AA:埋め込みAA単純ビットマップ)(図2Aの左半分を参照)に示されるように埋め込みAAビットマップデータに基づいて生成される。他方、要求された条件についてAAビットマップを有さないキャラクタのレンダリング(図4AにおけるNO)では、単純AAビットマップは、キャラクタのアウトラインに基づいて、ステップ(AA:アウトラインからオーバー・スケーリングされたビットマップ)および(AA:オーバー・スケーリングされたビットマップから単純ビットマップ)(図2Aの右半分を参照)を使用して生成される。どちらの場合にも、以降で「(AA:ビットマップ単純レギュラーからビットマップ単純ボールド)」と呼ばれるAAボールド化ステップが、出力ビットマップに対して適用される。
以降で「<AA:Alg規格>」と呼ばれる従来のAAボールド化アルゴリズムは、単純AAビットマップ上で動作し、この単純AAビットマップは、ピクセルごとに、オーバースケールビットマップ中のオンにされたサブ・ピクセル数を表す。このアルゴリズムは、簡単な「付加的な」原理に従って動作し、隣接するピクセルについてのオンにされたサブ・ピクセル数を累積する。このアルゴリズムは、ピクセル内のサブ・ピクセルの正確な位置を用いて動作するのではなくて、むしろピクセル内のオンにされたサブ・ピクセル数に関する累積情報を用いて動作する。
このアルゴリズムは、これらの累積値だけを用いて動作するが、それらの結果は、オーバー・スケーリングされたビットマップ上で直接に動作することになる最も単純なアルゴリズムと非常に類似しており、ピクセル中のサブ・ピクセル数により、オーバー・スケーリングされたビットマップを一様にボールド化し、これは、従来のアルゴリズムについて妥当な根拠を提供する。しかし、この問題は、より複雑なキャラクタに対して、現行のアルゴリズムは、判読可能な結果を生成しないことである。
右に1ピクセルだけのボールド化では、従来のAAボールド化アルゴリズム<AA:Alg規格>は、以下のようになる。
1)元のビットマップ中の行ごとに、右から左へと進む。
2)ピクセルごとに、
2a)ピクセルそれ自体の値にすぐ左隣のピクセルの値を追加する。
2b)結果として生ずる値が、特定のフォーマットにおいて許容される最大値を超過する場合、ピクセルの最大値を割り当てる。
このアルゴリズムの適用の一例が、図4Bに示されている。この例は、レギュラー重みについてのAAモードにおけるレンダリングに関連した、上述で(図2Aおよび2Bで)与えられた「ウェーブ(wave)」キャラクタに関連した例を継続するものである。
したがって、有利になるのは、複雑なキャラクタの場合でさえ、ボールド化されたキャラクタが、より判読可能で、読取り可能となるBWおよびAAのシミュレート化ボールド化機構である。
本発明の原理は、入力白黒ビットマップをボールド化するための機構および方法に関する。入力白黒ビットマップにアクセスした後に、シミュレート化ボールド化処理は、入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成し、それによって従来のシミュレート化ボールド化技法に比べてボールド化されたキャラクタの外観および読取り可能性を改善している。
本発明の追加の実施形態は、以下に続く記述で説明されることになり、部分的にその説明から明らかになり、あるいは本発明の実行により学習することができる。本発明の実施形態は、特許請求の範囲において特に指摘される機器および組合せを用いて実現し、取得することができる。本発明のこれらの実施形態および他の実施形態は、以降の説明および添付の特許請求の範囲から、より十分に明らかになり、あるいは以降で記述される本発明の実行により学習することができる。
本特許または出願のファイルは、カラーで実行される少なくとも1枚の図面を含んでいる。1枚(または複数枚)のカラー図面を有する本特許または特許出願公開のコピーは、要求および必要な料金の支払いに応じて、米国特許商標庁によって提供されることになる。
本発明の、以上に列挙の、または他の利点および特徴を得ることができる方法について説明するために、以上で簡潔に説明された本発明のより詳細な説明が、添付の図面に示されるその特定の実施形態に関して表現されることになる。これらの図面は、本発明の典型的な実施形態だけを示しており、したがってその範囲を限定するものとは考えられていないことを理解して、本発明は、添付図面の使用によって、さらなる特定性および詳細を伴って記述され説明されることになる。
本発明の原理は、改善されシミュレート化ボールド化機構に関し、これは、たとえややこしく複雑なキャラクタおよび/または小さなポイントサイズで表示されたキャラクタの場合でさえ、ボールド化されたキャラクタについての判読可能性および読取り可能性をかなり改善する。シミュレート化ボールド化法は、単純BWビットマップから始まり、単純AAボールド化ビットマップをもたらす。
本発明の詳細を説明するのに先立って、本発明の原理を実施するために使用することができる適切なコンピューティング・アーキテクチャが、まず図5に関して説明されている。以降に続く説明においては、本発明の実施形態は、他に示されていなければ、1台または複数台のコンピュータによって実施される動作、およびオペレーションのシンボリック表現に関して説明される。したがって、時にコンピュータ実行されていると称されるそのような動作およびオペレーションは、構造化形式におけるデータを表現する電気信号のコンピュータの処理ユニットによる操作を含んでいることが理解されよう。この操作は、データを変換し、あるいはコンピュータのメモリ・システム中のロケーションにそれらを保持し、これは、当業者によってよく理解されるようにコンピュータのオペレーションを再構成し、あるいは変更する。データが保持されるデータ構造は、データのフォーマットによって定義される特定のプロパティを有するメモリの物理ロケーションである。しかし、本発明の原理は前述の場合について説明されているが、当業者なら、以降で説明される動作およびオペレーションのいくつかがハードウェアで実施することもできることを理解するように、限定することを意味してはいない。
図面に戻ると、本発明の原理は、適切なコンピューティング環境中において実施されるものとして示されており、図面中で、同様な参照番号は、同様な要素を意味している。以降の説明は、本発明の例示の実施形態に基づいており、本明細書中で明示的に説明されていない代替実施形態に関して、本発明を限定するものとは解釈すべきではない。
図5は、これらのデバイスのために使用可能な一例のコンピュータアーキテクチャの概略図を示している。説明の目的のために、描かれたアーキテクチャは、適切な環境の一例にすぎず、本発明の用途または機能の範囲についてどのような限定を暗示することも意図してはいない。コンピューティング・システムは、図5に示されるコンポーネントの任意の1つまたは組合せに関連したどのような依存性または要件を有するものとも解釈されるべきではない。
本発明の原理は、非常に多くの他の汎用または専用のコンピューティングまたは通信の環境またはコンフィギュレーション(システム構成)を用いて動作可能である。本発明と共に使用するのに適したよく知られたコンピューティングのシステム、環境、およびコンフィギュレーションの例は、それだけには限定されないが、モバイル電話、ポケット・コンピュータ、パーソナル・コンピュータ、サーバ、マルチプロセッサ・システム、マイクロプロセッサ・ベースのシステム、ミニ・コンピュータ、メインフレーム・コンピュータ、および以上のシステムまたはデバイスのうちのどれかを含む分散コンピューティング環境を含む。
その最も基本的なコンフィギュレーションにおいては、コンピューティング・システム500は、一般的に少なくとも1つの処理ユニット502およびメモリ504を含んでいる。メモリ504は、(RAMなどの)揮発性であっても、(ROM、フラッシュ・メモリなどの)不揮発性であっても、あるいはこれら2つの何らかの組合せであってもよい。この最も基本的なコンフィギュレーションが、図5中に破線506によって示される。この説明および特許請求の範囲において、「コンピューティング・システム」は、ソフトウェア、ファームウェア、またはマイクロコードを実行して、ファンクションを実施することができる任意のハードウェア・コンポーネントまたはハードウェア・コンポーネントの組合せとして定義される。コンピューティング・システムは、分散されたファンクションを遂行するために分散することさえできる。
ストレージ媒体デバイスは、追加の特徴および機能を有することができる。例えば、これらは、それだけには限定されないが、PCMCIAカード、磁気ディスクおよび光ディスク、および磁気テープを含めて追加のストレージ(取外し可能および取外し不能)を含むことができる。そのような追加のストレージは、図5中において取外し可能ストレージ508および取外し不能ストレージ510によって示される。コンピュータ・ストレージ媒体は、コンピュータ読取り可能命令、データ構造、プログラムモジュール、他のデータなどの情報の記憶のための任意の方法または技術で実施される揮発性および不揮発性の、取外し可能および取外し不能な媒体を含んでいる。メモリ504、取外し可能ストレージ508、および取外し不能ストレージ510はすべて、コンピュータ・ストレージ媒体の例である。コンピュータ・ストレージ媒体は、それだけには限定されないが、所望の情報を記憶するために使用することができ、コンピューティング・システムによってアクセスすることができるRAM、ROM、EEPROM、フラッシュ・メモリ、他のメモリ技術、CD−ROM、デジタル多用途ディスク、他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ、他の磁気ストレージ・デバイス、および他の任意の媒体を含む。
本明細書中で使用されるように、用語「モジュール」または「コンポーネント」は、コンピューティング・システム上で実行されるソフトウェア・オブジェクトまたはルーチンを意味することができる。本明細書中で説明される異なるコンポーネント、モジュール、エンジン、およびサービスは、(例えば、別個のスレッドとして)コンピューティング・システム上で実行されるオブジェクトまたはプロセスとして実施することができる。本明細書中で説明されるシステムおよび方法は、ソフトウェアで実施されることが好ましいが、ソフトウェアおよびハードウェア、またはハードウェアにおける実施形態もまた可能であり、企図されている。
コンピューティング・システム500は、ホストが、例えばネットワーク520上で他のシステムおよびデバイスと通信することができるようにする通信チャネル512を含むこともできる。通信チャネル512は、通信媒体の例である。通信媒体は、一般的に搬送波や他の輸送機構などの被変調データ信号の形でコンピュータ読取り可能命令、データ構造、プログラムモジュール、または他のデータを実施し、任意の情報配信媒体を含んでいる。例として限定するものではないが、通信媒体は、有線ネットワークや直接配線接続などの有線媒体と、音響媒体、無線媒体、赤外線媒体、他の無線媒体などの無線媒体とを含んでいる。本明細書中で使用されるような用語、コンピュータ読取り可能媒体は、ストレージ媒体も通信媒体も含んでいる。
コンピューティング・システム500は、キーボード、マウス、ペン、音声入力コンポーネント、タッチ入力デバイスなどの入力コンポーネント514も有することができる。出力コンポーネント516は、スクリーンディスプレイ、スピーカ、プリンタなどと、それらを駆動するための(しばしば「アダプタ」と呼ばれることもある)レンダリング・モジュールとを含んでいる。コンピューティング・システム500は、出力コンポーネント516と以下で説明されるボールド化技法のうちのどれかによって生成されるボールド化キャラクタをレンダリングするための関連するアダプタとを使用することができる。コンピューティング・システム500は、電源518を有する。
本発明の原理を使用することができる適切なコンピューティング環境について説明してきており、本発明の原理によるシミュレート化ボールド化処理法について、次に説明する。シミュレート化ボールド化処理は一般に、例えば上記の(<BW:Alg規格>)の方法など、入力として単純BWビットマップを使用する従来のボールド化アルゴリズムに比べてボールド化キャラクタの品質を改善する。以降で説明されるシミュレート化ボールド化処理法は、埋め込みビットマップが存在するか否かにかかわらずフォントに対して正常に適用することができる。さらに、以降で説明されるシミュレート化ボールド化処理法の出力画像中の要求されるグレー・レベルの特定の数は、包括的であり、グレー・レベルの任意の要求される数に適合することができるが、以下に示されるほとんどの例は、0、1、2、...16に対応する17個のグレー・レベルに対応することになる。
シミュレート化ボールド化処理法は、いくつかの一般的な原理の下で動作することができる。本明細書中で<Gen:1>と称される第1の一般的原理によれば、それらの方法は、入力として単純BWレギュラー・ビットマップから開始され、(BWではなくて)AAフォーマットの単純ビットマップとしてボールド化アルゴリズムの出力を作成する。したがって、ボールド化法の入力および出力は、従来のシミュレート化ボールド化処理法とは違って、異なるフォーマットを有することができる。出力ビットマップは、ピクセル当たりに2つの2進値だけには限定されないので、この柔軟性により、ボールド化法の出力は、より判読可能および読取り可能になることができる。
例えば、BWビットマップが、出力ビットマップもまたBWビットマップであるという従来の制約条件に従ってボールド化されることになる図6Aを考察する。図6Aの入力ビットマップは、互いに1ピクセル離れたいくつかの垂直の平行なストロークを有する。次に1ピクセルだけ右にキャラクタをボールド化する要求が存在するものと仮定する。従来の「BWからBW」ボールド化法は、各垂直ストローク中におけるあらゆる黒ピクセルの右に黒ピクセルを追加することができ、図6BのBWビットマップをもたらすことができる。図6Bから分かるように、すべての垂直ストロークが視覚的に分離されずにマージされるので、これは、キャラクタの元のデザインをあいまいにしてしまう。代わりに従来の「BWからBW」ボールド化法は、垂直ストロークの間のピクセルを白のままに残すこともでき、図6CのBWビットマップをもたらすこともできる。これは、垂直ストロークを視覚的に損なわれないままに残すが、ボールド化ビットマップをレギュラー重みのビットマップのビットマップと非常に類似した視覚的外観を有するままに残し、それによってボールド化の目的を駄目にしてしまう。
<Gen:1>原理は、ピクセルの濃淡付けの選択(shading choices for a pixel)の可能性を拡張し、これは、入力ビットマップの要素間に十分なスペースが存在しない状況において有利である。この原理は、ボールド化ビットマップが、元のデザインを保持しながら、レギュラー・ビットマップよりもかなり重く見える適切なバランスを可能にする。
「出力」の観点から、<Gen:1>原理は、(この場合には全体のラスタ化プロセスの出力でもある)ボールド化シミュレーションのAA出力が、出発点としてのAAビットマップを起源としている必要がなくてもよいことを可能にする。以前に示されたように、比較的少ないフォントしか、埋め込みAAビットマップを含んでいない。さらに、レギュラー重み且つ低い/中間のppemでは、AAモードにおけるレンダリングの結果は、BWモードにおけるレンダリングの結果よりもかなり低い品質を有する。したがって、原理<Gen:1>は、ボールド化シミュレーション法は、「AAからAA」のボールド化法において現在使用されているよりもずっと良い品質の入力ビットマップから出発することができることを意味する。かなりの数の高密度の/複雑なキャラクタを有するEAフォントおよび大多数の他のフォントは通常、少なくとも低い/中間のppemにおける(ほぼ10〜22ppemの範囲における)最も複雑なキャラクタについて埋め込みBWビットマップを含むので、BWビットマップから出発することは、可能なときはいつでも(アウトラインからレンダリングするのではなくて)手で調整したビットマップ・デザインを使用することができる、直接的で非常に重要な利点をもたらす。
本明細書中で<Gen:2>と呼ばれる第2の一般的原理は、入力BWビットマップの要素間の白スペースの完全なブロッキング(blocking)が、しばしば上記されるようにボールド化キャラクタの判読可能性の損失をもたらすことがあるので、このような完全なブロッキングを回避すべきである、ということである。少なくとも部分的に入力ビットマップの黒ピクセルの間のピクセルに対して、より明るいグレー・レベル値を割り当てることが問題を解決する。入力ビットマップの黒ピクセルの間に新しい黒ピクセルを割り当てることは、複雑な/高密度のキャラクタについての元のデザインの損失を(全体的または局所的に)もたらす可能性がある。対照的に、その代わりにグレー値を割り当てることは、入力ビットマップの諸要素の間の視覚的な分離を可能にし、デザインが完全に失われてしまわないようにする。
グレー・レベルを割り当てることにより、入力ビットマップの諸要素の間の視覚的な分離を保持することについては、図7に関して説明される。AAレンダリング・モードにおいては、オーバー・スケーリングされたビットマップから単純AAビットマップへの従来の変換は、ピクセルごとに黒サブ・ピクセルをカウントすることにより行われる。換言すれば、特定のピクセルでは、グレー・レベルは、オーバー・スケーリングされたビットマップ中における黒であるピクセルの分数から得られる。例えば、図7から分かるように水平方向にも垂直方向にもオーバー・スケール・ファクタ4の場合には、ピクセル当たりに16個のサブ・ピクセルが存在する。図7に示される黒サブ・ピクセルのコンフィギュレーションにおいては、黒サブ・ピクセルの数は、9である。したがって、ピクセルに割り当てられたグレー・レベルは9/16となる。
視覚的分離を保持するボールド化アルゴリズムのデザインにおいて、ピクセルは、概念的にいくつかのサブ・ピクセルに再分割することができる。次いでデザイナは、入力単純ビットマップの既存の諸要素の間の視覚的な分離を保持するために「サブ・ピクセル」ビットマップがどのように見えるべきかを想像することができる。次いで、グレー・レベルを割り当てて、ピクセルの概念的なサブ・ピクセル・コンフィギュレーションを反映させることができる。
例えば、各サブ・ピクセルに17個のグレーレベル(0から16まで)のうちの1つが割り当てられているものと仮定する。次に、図8Aに示される単純BW入力ビットマップのピクセル・コンフィギュレーションが、1ピクセルだけ右にボールド化されるべきことを仮定する。図8Bは、図8Aの3つの強調表示されたピクセルを拡大し、中央のピクセルを複数のサブ・ピクセルに再分割している。より重い重みをデザインするために、一部の黒またはグレーのピクセルが、入力ビットマップの黒ピクセルの右に追加されるべきである。図8Aの3つの強調表示されたピクセルについて、ピクセルの右隣から3/8の「距離を保持」して、入力ビットマップのストロークが衝突するように見えないようにすることにより、視覚的な分離が、保持されるべきことを仮定する。本発明者等は、白の強調表示されたピクセル(図8Bの中央ピクセルを参照)を概念的に再分割し、視覚的な諸要素の間の距離を保つことがどのようにしてオーバー・スケーリングされたビットマップ中で見えることになるかを想像することができる。この場合には、中央ピクセルの5/8が黒になるべきであり、これが16の最大グレー・レベルでは、割り当てられた10に等しいグレー・レベル値をもたらすことになる。
以下の例は、原理<Gen:2>に従う単純ボールド化アルゴリズムが、どのようにしてレンダリング結果の品質を改善することができるかを示している。一例のボールド化アルゴリズムは、以降のように右へ1ピクセルのボールド化シフトが実施されるべきであることを仮定している。
1)黒の左隣を有する入力ビットマップの白ピクセルごとに、
1a)ピクセルの右隣が白である場合に、(黒色に対応する)最大グレー・レベルを割り当て、
1b)ピクセルの右隣が黒である場合には、「中間の」グレー・レベルを割り当てる(元のビットマップの2つの黒ピクセルの間のスペースの完全な黒化を防止する)。
これは、本発明者等が白ピクセルによって分離された入力ビットマップの任意の2つの黒ピクセルの間に「約1/2のピクセルの視覚的距離を保持」していることを意味する。図9Aから9Cは、アルゴリズムの適用を示すものである。特に、図9Aは、ボールド化すべき入力BWビットマップを表す。図9Bは、ちょうど説明されたばかりのアルゴリズムを使用したボールド化AAビットマップを表す。図9Bを参照すると、結果として生ずるボールド化AAビットマップは、完全ではない。例えば、図9Bのボールド化AAビットマップは、ストローク(1)の上部部分に「偽のセリフ(false serif)」を含み、ストローク(2)の非常に一様でない外観をもたらす。それにもかかわらず、この結果は、視覚的距離を保持しない図9Cに示される<BW:Alg規格>によって作成される結果よりもずっと良好である。
図10は、実際のサイズにおけるいくつかの複雑なキャラクタについてのレンダリング結果を示している。第1の(最上部の)ラインは、レギュラー重みビットマップを表し、第2のラインは、従来の<BW:Alg規格>の方法によるボールド化の結果を表し、第3の(最下部の)ラインはちょうど説明されたばかりのボールド化法の結果を表す。第3のラインは、第1のラインよりも重い視覚的外観を有し(したがってボールド化を実現し)、第3のラインは、元のデザインが、デザイン要素の視覚的分離を介して大いに保持されるので第2のラインよりもずっと判別しやすい。
ボールド化法についての第3の一般的原理は、<Gen:3>と称されることになる。原理<Gen:3>は、アルゴリズムによって割り当てられるピクセルのグレー・スケール値が、異なるピクセルについては異なる可能性があり、任意の種類の「コンテキスト的」情報に基づいて計算することができ、ここで、「コンテキスト」は、ボールド化の方向におけるすぐ近傍、または他の任意の種類の局所的な近傍に基づいた情報だけに限定される必要はない。入力ビットマップの可変特性に調整することにより、次にキャラクタのデザインの要素を保持し、キャラクタに特有のバランス化された「重さ」を(局所的にまた全体的に)保持することにより、結果として生ずるビットマップの品質を改善することができるようになる。
原理<Gen:2>に関連して以上で説明されたアルゴリズムは、それがそれらのすぐ右隣に応じて諸ピクセルに異なるグレー値を割り当てるので、実際に単純な「コンテキスト的」アルゴリズムである。しかし、このアルゴリズムは、ボールド化の方向に向かってのみデータを解析する(水平方向におけるボールド化では、すぐ左隣および右隣のみが、白ピクセルについての「コンテキスト」として考慮されることになる)。
2次元の「コンテキスト」(すなわち、ボールド化の方向と垂直の方向の両方におけるピクセルの近傍)を考慮に入れた1つのアルゴリズムは、ピクセルの4つの近隣(左、右、上、下)を考慮する。1ピクセルのボールド化シフトを伴う水平方向に右へのボールド化では、アルゴリズムは、以降の計算を適用して、ピクセルについての新しい値を割り当てることができる。
1)黒の左隣を有する白ピクセルでは、
1a)ピクセルの右隣が白である場合、
最大グレー値を割り当てる(すなわち、ピクセルを黒に色づけする)。
1b)そうでない場合には(すなわち、ピクセルの右隣が黒である場合には)、
割り当てられた最大値を1/4だけ減少させ、
ピクセルの上隣が黒である場合、さらなる3/16だけ割り当てられた最大値を減少させ、
ピクセルの下隣が黒である場合、さらなる3/16だけ割り当てられた最大値を減少させる。
このアルゴリズムは、水平方向だけでなく垂直方向にも同様に視覚的分離を可能にする。図11Aおよび11Bは、3×3のピクセルアレイのコンテキストにおける単一のピクセル(中央ピクセル)に対するこのアルゴリズムの基本的な適用を示している。図11Aは、入力BWビットマップの入力BWピクセル・コンフィギュレーションを示している。図11Bは、中間のオーバー・スケーリングされたピクセル・コンフィギュレーションを示している。本発明者等は概念的に、図11Bの中央ピクセルに示されるように、ピクセルを4×4のサブ・ピクセルに再分割することができる。ピクセルが黒の右隣を有する場合、本発明者等は、サブ・ピクセルの最後の(最も右の)列を白に保持したいと思う。さらに、ピクセルが、黒の上隣または下隣を有する場合には、本発明者等は、サブ・ピクセルの上側または下側の行を白に保持することになる。図11Bに示されるコンフィギュレーションにおいては、中央の白ピクセルには、(最大グレー・レベル値が16であることを仮定して)値9が割り当てられることになる。
このアルゴリズムに従ってグレー・レベル値を割り当てる一例が、図12Aから12Dに示される。図12Aは、入力ビットマップに対応する。図12Bは、ちょうど説明されたばかりのボールド化アルゴリズムを使用したボールド化の結果を示している。図12Cは、それが入力ビットマップ中において黒であったピクセルを強調表示する点だけを違いとして図12Bと同じである。図12C中の閉じられた領域の両端(図12D中のピクセル(1a)および(1b))におけるコントラストのより高いレベルと、入力ビットマップにおけるすべての黒の隣を有するピクセル(2)についてのより高くさえあるコントラストレベルとに注意すべきである。垂直ストローク(3)に対する右隣の白ピクセルのどちらも黒の右隣を有さないこと、したがってこれらのすべてのピクセルが黒に色づけされることにも注意すべきである。
ある「コンテキスト」に従って値をサブ・ピクセルに割り当てるシミュレート化ボールド化処理法は、必ずしもピクセルのあらかじめ定義された局所的近傍だけを考慮することによって限定されるべきであるとは限らない。例えば、シミュレート化ボールド化処理法は、レギュラー・ビットマップ画像中の垂直ストローク(または、より一般的にはボールド化の方向に垂直なストローク)の長さを考慮に入れることができ、かつ/または両側からの2本のストロークによって拘束された白領域の長さなどを考慮することができる。入力ビットマップのより広い領域に関連した情報を使用する一部のコンテキスト的アルゴリズムが、<Gen:4A>および<Gen:4B>と称される2つの部分原理を一括して表す、本明細書中で<Gen:4>と称される第4の一般的原理に関連して説明されることになる。
第4の一般的原理の第1の部分原理<Gen:4A>においては、「ボールド化の方向に垂直なパス」または「パス」が、一般的に、ボールド化の方向に垂直な方向に(ただし、必然的に一致して、または連続して)存在するピクセルのシーケンスとして定義される。第2の部分原理<Gen:4B>は、「パス」に沿った方向における平均化または平滑化を使用する。
より正確には、「パス」は、(その値が修正されようとしている複数のピクセルではなくて)ボールド化の結果として他の1つ(または複数)のピクセルの値を修正されるようにすることを引き起こすピクセルのシーケンスである。もちろん、この定義は、説明の便宜のためだけに導入されるにすぎず、本発明の原理から逸脱することなく、変更することができる。
例えば、図13の入力ビットマップにおけるピクセルのコンフィギュレーション(および水平方向に右へのボールド化)では、強調表示されたピクセル(図13の左列における3つのピクセル)は、「パス」を表すことができ、その「パス」の右のピクセルの値は、修正されようとしている値である。
この一般的な概念および原理に従うアルゴリズムは、2つのステップ、すなわち1)ボールド化の初期量の計算、および2)平均化、から成る。第1のステップは、ピクセルについて計算されたグレー・レベル値で表現されたボールド化の量をもたらす。第1のステップにおけるボールド化の量の計算は、以上の<Gen:2>および<Gen:3>に関連して説明されたコンテキスト的アルゴリズムを含めて適切な任意のアルゴリズムによって実施することができる。
ピクセルについてのボールド化の初期量の計算は通常、ピクセルの比較的限られた近傍に依存するので、ボールド化の方向に垂直な方向における突然の望ましくない急激な変化が観察されことがある。例えば、以上の一般的原理<Gen:2>および<Gen:3>に関連して説明されたボールド化法の結果として生ずるビットマップを参照されたい。これらの変化を平滑化し、ボールド化によって引き起こされる望ましくない視覚的効果を回避するために、平均化についての第2のステップが適用される。キャラクタの元のデザインを保存するために、入力ビットマップの各構造要素に適用されるボールド化をほぼ一様な値に維持することが有利である。したがって、平均化する「パス」が、何らかの構造要素に一般に従うことが有利ということになる。しかし、「構造要素」を構成するものについての解釈は、広く変化してもよい。さらに、レンダリングされた結果は、非常に小さなサイズで表示されるので、個別要素についてのある視覚的混合および視覚的調節が、とにかく我々の目によって行われ、その結果、その「構造要素」を定義するためのより念入りに作られたアルゴリズムは、より単純なアルゴリズムよりもレンダリングされた結果に区別可能な良好な品質をもたらさないこともあり得る。
「パス」の一部の例が、図14Bから14Eに与えられ、これらの図においては、様々な「パス」が強調表示されている。これらの例においては、ボールド化が右に向かって行われるものと仮定される。図14Aは、入力ビットマップを表すのに対して、図14Bから14Eは、様々な「パス」定義から導き出すことができるパスのいくつかの強調表示された例を表す。それらの例は、第2列で行われ得るパスを示すにすぎない。図14Bにおいては、単一「パス」が、全体の列中のすべて黒のピクセルとして定義される(この「パス」は、不連続であることができる)。したがって、図14Bのビットマップの第2の列の黒ピクセルのすべてが強調表示され、それによって1つの不連続なパスを表している。図14Cにおいては、「パス」は、複数の黒ピクセルからなる連続した垂直シーケンスとして定義される。したがって、図14Cにおいては、第2の列には2つのパスが存在し、各パスは、複数の黒ピクセルからなる連続した各垂直シーケンスに対応する。図14Dにおいては、「パス」は、白い右隣を有する黒ピクセルの連続した垂直シーケンスとして定義され、それによって第2の列中において4つのパスを定義している。図14Eにおいては、パスが、3以上の黒ピクセルの連続した水平シーケンス(水平ストローク)と交わらない限り、「パス」は、黒ピクセルの連続した垂直シーケンスとして定義される。この結果、図14Eの第2の列中には3つの異なるパスがもたらされる。
「パス」は、必ずしもピクセルの一方向のシーケンスとして定義されるべきであるとは限らない。入力ビットマップの「構造要素」の任意の解釈を「パス」の定義として使用することができる。例えば、図15Aを入力ビットマップとして解釈して、「ほとんど垂直のストローク」の認識アルゴリズムは、図15中における2つの強調表示されたピクセルパスによって表されるような入力ビットマップについての2つの「パス」をもたらすことができる。
前述のように、一般的原理<Gen:4B>に従うボールド化法の第2のステップは、ちょうど説明されたばかりの一般的原理<Gen:4A>によって定義されるパスごとにパスに沿った平均化を伴う。そのような平均化は、それらの値が、ある与えられたパスのボールド化に起因して修正されようとしているすべてのピクセルが、何らかの平均化アルゴリズムを受けることになることを意味する。1つのピクセルのボールド化シフトと共に水平方向に右に向かってのボールド化では、これは、「パス」ごとに平均化が、入力ビットマップ中において白であった、またパスを形成するピクセルのすぐ右隣にあるすべてのピクセルに対して適用されることになることを意味する。例えば、図16の入力ビットマップの第2の列中において強調表示される上側のパスでは、平均化は、第3の列中の「点が描かれた」ピクセルのすべてに対して適用されることになる。
平均化それ自体は、任意の平均化アルゴリズムに従って実施することができる。そのような平均化アルゴリズムの例は、一様な平均化、または異なる重みを用いた平均化を含んでいる。平均化は、全体の「パス」に沿って行われてもよく、あるいはあるピクセルのいくつかの近隣についてのみ行われてもよい。平均化は、平均化されるピクセルのシーケンス中の不連続性を考慮に入れる、あるいは入れない、などとすることもできる。
以下の例においては、図17Aは、入力ビットマップに対応する。図17Bは、第1のステージからもたらされ、<Gen:3>に関連して説明されたアルゴリズムによって計算される初期グレー・レベル値を示している。図17Cは、入力画像が強調表示された、図17Bとまさしく同じ結果を表す。垂直ストローク(1)の最上部における「偽のセリフ」と、ストローク(2)のボールド化後の不均一な外観に注意すべきである。図17Dおよび17Eは、平均化の結果を示している。両方の場合において、「パス」は、黒ピクセルの連続した任意の垂直シーケンスとして定義される。図17Dは、パスに沿った一様な平均化に対応しており、平均化の結果として、キャラクタのデザインは、平均化が使用されないときよりも、ボールド化ビットマップ中においてより良好に表されることに注意されたい。図17Eは、別の平均化アプローチに対応しており、これは、ピクセルのグレー・レベル値を、そのピクセルと、異なる重みを有するその2つの上方および2つの下方の近隣の初期グレー・レベルの平均化に基づいて計算する、この平均化は、より暗い区域内における何らかのコントラストを保持しながら、図17Bに表される結果よりも全体的にずっと滑らかな結果をもたらす。
シミュレート化ボールド化処理法は、単純BWビットマップを入力として使用するので、それらの方法は、単純BWビットマップが(レギュラー重みについての)BWモードのラスタ化の標準プロセスの終わりに使用可能になった後に(例えば、図18中の(BWからAA:ビットマップ単純レギュラーからビットマップ単純ボールド)ステップを参照)、ラスタ化プロセス中において実施される。ラスタ化プロセスの他のステップに対する(重要な)修正は、必要とされない。しかし、ラスタ化の特定の実施形態によっては、ボールド化アルゴリズムの出力のAAフォーマットをサポートするために一部の小変更が必要とされることもあり得る。例えば、ラスタ化は、単なるBW2進ビットではなくて完全なグレー・レベル値を戻すことができるようにするためにより多くのメモリ割付けを必要とすることもある。
BWモード中の現在適用されているボールド化からの重要な違いは、新しいアルゴリズムが、(<Gen:1>による)BWフォーマットではなくてAAフォーマットで出力ビットマップを生成することである。ボールド化は、ラスタ化プロセスの最後のステージにおいて実施されるので、出力フォーマットは、ラスタライザそれ自体については問題にならない。しかし、レンダリング・エンジンは、ラスタライザによって生成された結果として生ずるビットマップのAAフォーマットについて知っているべきであり、その結果、レンダリング・エンジンは、ビットマップを正しく解釈し、グレーの対応する濃淡へのビットマップ値のマッピングを実施することになる。
一般的な概念および原理<Gen:1>、<Gen:2>、<Gen:3>、<Gen:4>に従うアルゴリズムの特定のパラメータのファミリ<F1>について、次に説明する。一部の概念をより具体的にするのに加えて、このアルゴリズムのファミリは、オペレーションの特定の順序を記述する。このアルゴリズムのファミリについてのパラメータの可能な選択(すなわち、ファミリからの特定のアルゴリズム)について次に説明し、新しいアルゴリズムと現在一般的に適用されているアルゴリズムとの間の比較が行われる。
パラメータのファミリは、以降のパラメータの組と以降のオペレーションの順序によって定義される。
<F1:ステップ:1>と称される第1のステップにおいては、任意の種類の前処理アルゴリズム(pre-processing algorithm)が、入力ビットマップに対して適用される(前処理アルゴリズムが適用されないことも、有効な選択である)。前処理アルゴリズムの選択は、ファミリからの特定のアルゴリズムを識別するために定義されるべき第1のパラメータ<F1:Par:1>である。アルゴリズムの現行のファミリでは、明確にするために、本発明者等は、前処理アルゴリズムは、(もしあるなら)単純BWビットマップをもたらすことを仮定することにする。
<F1:ステップ:2>と称される第2のステップにおいては、ボールド化の初期量が計算される。<F1>は、ピクセルの「4つの近隣」の近傍に基づいてボールド化の初期量を計算する以降のコンテキスト的アルゴリズム(<Gen:3>参照)を使用する。このアルゴリズムは、<Gen:3>に関連して説明されるアルゴリズムに類似している。もう一度、本発明者等は、1ピクセルのボールド化シフトを伴う水平方向における右に向かってのボールド化を仮定する。その値が修正されるべきピクセルでは(すなわち、黒の左隣を有するピクセルでは)、「反発力(repulsive power)」を計算して、初期入力ビットマップの構造要素間の視覚的距離を保持する。「反発力(repulsive power)」の値は、最大の(すなわち、最も暗い)グレー・レベルに関してボールド化ピクセルの暗さを(パーセントで、または絶対グレー・レベルで)どれだけ減少させるべきか(すなわち、明るさをどれだけ増大させるべきか)を定義することになる。「反発力」の計算についての特定の式の選択は、パラメータのファミリのうちの第2のパラメータ:<F1:Par:2>を表す。
<F1:ステップ:3>と称される第3のステップにおいては、平均化「パス」が定義され、平均化アルゴリズムが、あらゆる平均化「パス」に沿って適用される(<Gen:4>参照)。平均化「パス」の特定の定義と平均化アルゴリズムの特定の選択は、それぞれパラメータのファミリのうちの第3のパラメータ<F1:Par:3>および第4の<F1:Par:4>を定義する。「平均化なし」は、<F1:Par:4>についての有効な選択であることに注意すべきである。
<F1:ステップ:4>と称される第4のステップにおいては、平均化「パス」ごとに、「パス」に沿ったすべてのピクセルについての結果として生ずる平均値が、割り当てられる。
<F1:ステップ:5>と称される第5のステップにおいては、任意の後処理アルゴリズム(post-processing algorithm)が、結果として生ずるAAビットマップに適用される。<F1:ステップ:5>において適用すべき後処理アルゴリズムを選択しないことは、有効である。特定の後処理アルゴリズムの選択は、パラメータのファミリの第5のパラメータ<F1:Par:5>を定義する。
アルゴリズムのファミリ<F1>からの特定のアルゴリズムの一例について次に説明する。以下に説明される特定のアルゴリズムのパラメータは、適用される異なるパラメータと共に上記されるアルゴリズムのファミリからのアルゴリズムの出力結果の視覚的な比較の後に選択された。目標の1つは、結果の品質と、適用されるアルゴリズムの複雑さとの間のバランスを達成することであった。パラメータの特定の選択について以下で説明する。
第1のアルゴリズムのパラメータ<F1:Par:1>(すなわち、前処理ステップ)では、「キャップ補正(cap-correction)」アルゴリズムが、適用される(以下の説明を参照)。
第2のアルゴリズムのパラメータ<F1:Par:2>(すなわち、「反発力」についての特定の式の定義)では、その定義は、以降のようになる。すなわち、その値がボールド化中に修正されるべき任意のピクセルに対して、そのピクセルが、ボールド化の方向に黒の隣接ピクセルを有する場合に、最大グレー値の4/16だけ割り当てられた最大グレー値を減少させ、またボールド化の方向に垂直な方向における黒の隣接ピクセル一つごとに、最大グレー値のさらなる3/16だけ割り当てられた最大グレー値を減少させる。
1ピクセルのボールド化シフトを伴う水平方向における右に向かってのボールド化では、結果として生ずる初期ボールド化アルゴリズムは、以下のように要約することができる。
ピクセルが白であり、その左隣が黒である場合、

その右隣が白である場合には、

反発力を適用しない。

そうでない場合には、

4/16の反発力を適用し、
上隣が黒である場合には、さらなる3/16の反発力を適用し、
下隣が黒である場合には、さらなる3/16の反発力を適用する。

最初に白のピクセルに対する上記の例のアルゴリズムの結果として生ずる割り当てられた値が、図19の6つの異なるピクセル・コンフィギュレーションについて示される。図19の例は、17個のグレーレベル(0...16)を仮定している。上記の式によるボールド化の初期量の計算の結果が、図20Aおよび20Bに示され、ここで図20Aは、入力ビットマップを表し、図20Bは、平均化する前のボールド化の結果に対応する。
第3のアルゴリズムのパラメータ<F1:Par:3>(すなわち、平均化「パス」の定義)では、「パス」は、ボールド化の方向に垂直な方向における黒ピクセルの連続したシーケンスとして定義される。
第4のアルゴリズムのパラメータ<F1:Par:4>(すなわち、平均化アルゴリズムの定義)では、割り当てられたグレー・レベル値の一様な平均化が、ボールド化の方向におけるパスのサイドに沿って白ピクセルに適用される。1ピクセルのボールド化シフトを伴う水平方向における右に向かってのボールド化では、平均化アルゴリズムは、以降のように定義することができる。すなわち
「パス」中のピクセルからすぐ右にある(入力ビットマップ中の)白ピクセルの数を計算し、この数をNumWhiteとする。
「パス」に沿った(入力ビットマップ中の)すべての白ピクセルについての「反発力」の総和として総「反発力」を計算し、この総和をNegTotalとする。
平均値LevelMax−(LevelMax*(NegTotal/NumWhite))を計算し、ここでLevelMaxは、グレー・レベルの最大値である。
「パス」に沿ったすべての白ピクセルにこの平均値を割り当てる。
図21Aの元のビットマップに対する初期ボールド化およびこの平均化の適用の結果は、(「キャップ補正」の前処理が適用されずに)図21Bに示される。
第5のアルゴリズムのパラメータ<F1:Par:5>(すなわち、後処理の識別)は、後処理が適用されないことを識別する。
ちょうど上記されたばかりの特定のアルゴリズムのレンダリング結果は、かなりの数の複雑な高密度のキャラクタを含むフォントについての現在一般的に適用されているBWボールド化アルゴリズムの結果よりもずっと判読しやすい。例えば、図22Aは、入力ビットマップを示している。現在一般的に適用されているBWボールド化アルゴリズムによるボールド化の結果が、図22Bに示されている。著しい対照をなして、特定の例の<F1>アルゴリズムによるボールド化の結果が、図22Cに示されている。明らかに、図22Cのボールドにされたキャラクタは、図22Bよりも、図22A中のキャラクタのずっと認識しやすいボールド化画像になっている。
「キャップ補正」の前処理ステップについて次に説明する。「キャップ補正」アルゴリズムのための理由は、傾斜したストロークの間の接続箇所における狭い「キャップ」を取り除くことであり、取り除かない場合は、ボールド化の後に接続されたストロークの視覚的な不連続性を引き起こすことになる。以降の説明および例は、1ピクセルだけ右に水平ボールド化するための「キャップ補正」を示している。「キャップ検出」と「キャップ補正」に対する同じ基本的なアルゴリズム的アプローチは、ボールド化の他の方向に対しても適用することができる。例えば、図23Aの入力ビットマップは、1ピクセル右にボールド化されるものと仮定する。図23Aのレギュラー画像に適用される、「キャップ補正」のない(ファミリ<F1>からの)一例のビットマップ・ボールド化アルゴリズムは、図23Bのボールド化されたビットマップをもたらすことになる。図23Bのビットマップは、(右の長い、および左の短い)2つの別個のストロークから成るように見えるが、これらのストロークは、レギュラー・ビットマップにおいては接続されていた。(この視覚的不連続性を有する)図23Bのボールド化されたビットマップ画像は、図23Aのレギュラー重みビットマップ中で表されるキャラクタ以外の全く異なる(意味的に異なる)キャラクタとして誤って解釈される(誤って読み取られる)可能性がある。「キャップ補正」アルゴリズムは、傾斜した接続されたストロークの間の狭い接続箇所を識別し、ボールド化画像中の視覚的不連続性を防止する。「キャップ補正」を用いて適用された新しいボールド化アルゴリズムは、図23Cのビットマップをもたらすことになる。
「キャップ補正」アルゴリズムを説明するために、本発明者等は、いくつかの定義を使用する。「チューブ(tube)」は、黒ピクセルに左側も右側も接している、入力ビットマップ中の連続した1列幅の白ピクセルの垂直シーケンスである。図24のピクセル・コンフィギュレーション中に示されるチューブは、黒ピクセルによって最上部が閉じられ、最下部がオープンになったチューブを示している。所与の列Cについての行Rは、行Rおよび列Cにおけるピクセルが白であり、その左隣と右隣の両方が黒である場合に「チューブ・トリプレット(tube triplet)」に対応する。「チューブ・トリプレット」に対応する行の例が、図25に示されている。
さらに「オープニング(opening)」について次に説明する。チューブのそれぞれ左側および右側に沿って走る黒ピクセル(左および右)の2つのチェーンが存在する。左チェーンの黒ピクセルは、チューブの一端から延び、それが垂直に(または左に対角線状に)接続する別の黒ピクセルが存在する限り、垂直に続いている。右チェーンの黒ピクセルは、チューブの一端から延び、それが垂直に(または右に対角線状に)接続する別の黒ピクセルが存在する限り、左チューブと同じ方向に垂直に続いている。「オープニング」は、左チェーンと右チェーンに、これから先もなお依然として接しているチューブの外側の区域である。左チェーンも右チェーンもチューブのオープン・エンドからカウントして少なくともL個のピクセルを含んでいる場合、オープニングは、(少なくとも)長さLであると言われる。特定の行におけるオープニングの幅は、その特定の行の右チェーンと左チェーンとの間の白ピクセル数である。オープニングの例が、図26に示される。この例においては、オープニングは、長さ3を有し、これは、長さ2のチューブの開口部から延びている。オープニングは、最上部から第3の行において2の幅を有し、最上部から第2の行において3の幅を有し、第1の(最上部)行において4の幅を有する。
「キャップ」は、「オープニング」を付随する「チューブ」である。キャップ補正アルゴリズムは、以降の判断基準が満たされる場合に、キャップを検出することになる。最初に、垂直の一端で閉じられた長さ1または2のチューブが見出される。チューブの他端におけるオープニングが見出され、オープニングは、そのチューブの開放端からカウントしてその第1の行において少なくとも2ピクセル幅である。チューブまたはオープニングを規定する黒ピクセルに(丁度対角線状に)接触するオープニングの内側には、黒ピクセルは見出されない。図27は、長さ1のチューブを有する最上部に向かって開かれたすべての可能なキャップを示している。図28は、長さ2のチューブを有する最上部に向かって開かれたすべての可能なキャップを示している。
「キャップ補正」アルゴリズムは、以下のように動作する。
1)元のレギュラー・ビットマップにおいて、(ボールド化の方向に対応する)すべての「キャップ」を検出する。
2)「キャップ」ごとに、あらかじめ定義されたグレーの暗い濃淡(shade)(本実施形態においては黒)を用いてその「チューブ」を塗りつぶす。
したがって、ちょうど説明されたばかりのシミュレートされたボールド化法は、元のBWビットマップのボールド化ビットマップを生成するための改善された方法を提供する。本発明は、その趣旨または本質的な特徴を逸脱することなく他の特定の形態で実施することもできる。説明されている実施形態は、すべての点において例示的にすぎず、限定的ではないと考えられるべきである。それ故に、本発明の範囲は、前述の説明によってではなく、特許請求の範囲によって示される。特許請求の範囲と等価な意味および範囲内に含まれるすべての変更は、特許請求の範囲内に包含されるべきものである。
白黒レンダリングのための従来のラスタ化プロセスのフローチャートを示す図である。 アンチエイリアシング・レンダリングのための従来のラスタ化プロセスのフローチャートを示す図である。 アンチエイリアシング・レンダリングのための従来のラスタ化プロセスのフローチャートを示す図である。 従来の白黒のシミュレート化ボールド化処理法についてのコンテキストを示すフローチャートを示す図である。 単純なキャラクタがボールド化される、従来のシミュレート化白黒ボールド化処理の第1の例を示す図である。 複雑なキャラクタがボールド化される、従来のシミュレート化白黒のボールド化処理の第2の例を示す図である。 従来のシミュレート化アンチエイリアシングボールド化処理法についてのコンテキストを示すフローチャートを示す図である。 単純なキャラクタがボールド化される従来のシミュレート化アンチエイリアシングボールド化処理の一例を示す図である。 本発明の原理を実行することができる一例のコンピューティング環境を示す図である。 ボールド化すべきサンプルの白黒入力ビットマップを示す図である。 黒の左隣のピクセルを有するすべての白ピクセルが黒に変化させられる従来の白黒のシミュレート化ボールド化処理法によってボールド化される出力の白黒入力ビットマップを示す図である。 ピクセルが黒の右隣のピクセルも有さなければ、黒の左隣のピクセルを有するすべての白ピクセルが黒に変化させられる従来の白黒のシミュレート化ボールド化処理法によってボールド化される出力の白黒入力ビットマップを示す図である。 概念的に16セクションに再分割された単一ピクセルを示す図である。 3つのピクセルが強調表示された、サンプルの入力白黒ビットマップを示す図である。 中央のピクセルが、概念的に64個のコンポーネントに再分割された、拡大図の形の図8Aの3つの強調表示されたピクセルを示す図である。 サンプルの入力白黒ビットマップを示す図である。 本発明の原理による、図9Aの入力白黒ビットマップに対するシミュレート化ボールド化処理法の適用からもたらされるボールド化されたアンチエイリアシング出力ビットマップを示す図である。 従来のシミュレート化白黒ボールド化処理の原理による、図9Aの入力白黒ビットマップに対するシミュレート化ボールド化処理法の適用からもたらされるボールド化された白黒出力ビットマップを示す図である。 本発明の原理によるボールド化の実際の結果を従来のシミュレート化ボールド化処理と比較して示す図である。 入力の3×3の白黒入力ビットマップを示す図である。 垂直のコンテキスト的情報がボールド化において考慮に入れられ、中央のピクセルが16個の区域を使用して表される、本発明の原理によるシミュレート化ボールド化処理法からもたらされる、結果として生ずる出力アンチエイリアシング・ビットマップを示す図である。 一例の入力白黒ビットマップを示す図である。 本発明の原理による、垂直のコンテキスト的情報が考慮に入れられるシミュレート化ボールド化処理法を図12Aの入力ビットマップに対して適用することを示す図である。 入力ビットマップの黒ピクセルが強調されることを除いて、図12Bと同じものを示す図である。 いくつかの特徴が指摘された図12Aの入力ビットマップを示す図である。 「パス」が最左列中に(強調表示されて)示された、一例の入力白黒ビットマップを示す図である。 一例の入力白黒ビットマップを示す図である。 用語「パス」の一定義の下で定義されるようなパスに属するピクセルが強調表示された、図14Aの入力白黒ビットマップを示す図である。 用語「パス」の別の定義の下で定義されるようないくつかのパスに属するピクセルが強調表示された、図14Aの入力白黒ビットマップを示す図である。 用語「パス」の第3の定義の下で定義されるようないくつかのパスに属するピクセルが強調表示された、図14Aの入力白黒ビットマップを示す図である。 用語「パス」の第4の定義の下で定義されるようないくつかのパスに属するピクセルが強調表示された、図14Aの入力白黒ビットマップを示す図である。 一例の入力白黒ビットマップを示す図である。 おのおのが、パスとしての役割を果たす2つの垂直な「足(leg)」を有する図15Aの例の入力白黒ビットマップを示す図である。 パス平均化の適用について強調表示された2つの別個の「パス」を有する図14Aの白黒入力ビットマップを示す図である。 一例の入力白黒ビットマップを示す図である。 第1のステージからもたらされ、図17Aの入力白黒ビットマップに適用されるシミュレート化ボールド化処理アルゴリズムによって計算された初期グレー・レベル値を示す図である。 入力画像が強調表示された図17Bとまさしく同じ結果を提示する図である。 第1の平均化法の適用の後である以外は、図17Cのビットマップと同じである出力ビットマップを示す図である。 第2の平均化法の適用の後である以外は、図17Cのビットマップと同じである出力ビットマップを示す図である。 シミュレート化ボールド化処理についてのコンテキストを示すフローチャートである。 コンテキスト的情報に基づいて中間グレー・レベルを割り当てるためのコンテキスト的方法の適用を示す図である。 一例の入力白黒ビットマップを示す図である。 図20Aの入力白黒ビットマップに対するボールド化の初期量の計算の結果を示す図である。 一例の入力白黒ビットマップを示す図である。 本発明の原理による、図21Aの入力白黒ビットマップに対する平均化の後のボールド化の結果を示す図である。 一例の入力白黒ビットマップを示す図である。 図22Aの入力白黒ビットマップに対する従来のシミュレート化ボールド化処理の適用を示す図である。 図22Aの白黒ビットマップに対する本発明の原理によるシミュレート化ボールド化処理の適用を示す図である。 一例の入力白黒ビットマップを示す図である。 「キャップ補正」の適用がないだけの、図23Aの白黒ビットマップに対する本発明の原理によるシミュレート化ボールド化処理の適用を示す図である。 図23Aの白黒ビットマップに対する本発明の原理による、「キャップ補正」を伴うシミュレート化ボールド化処理の適用を示す図である。 「チューブ」を有し、そのチューブの端点が識別された、一例の入力白黒ビットマップ・セグメントを示す図である。 チューブ・トリプレットを有する、一例の入力白黒ビットマップを示す図である。 「オープニング」を有し、そのオープニングの部分が識別された、一例の入力白黒ビットマップを示す図である。 用語「キャップ」の定義に従って長さ1のチューブを有する上部に対して開かれたすべての可能なキャップを示す図である。 用語「キャップ」の定義に従って長さ2のチューブを有する上部に対して開いているすべての可能なキャップを示す図である。

Claims (20)

  1. 入力白黒ビットマップをボールド化するためのコンピュータ実施方法であって、
    前記入力白黒ビットマップにアクセスする動作と、
    前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する動作と
    を含むことを特徴とするコンピュータ実施方法。
  2. 前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、対応する入力ピクセルが白である出力ピクセルのうちの少なくとも1つについて、
    前記対応する入力ピクセルの左隣の入力ピクセルが黒であることを決定する動作と、
    前記対応する入力ピクセルの右隣の入力ピクセルが黒であることを決定する動作と、
    前記それぞれの決定する動作に応じて前記出力ピクセルに中間グレー・レベルを割り当てる動作と
    を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  3. 前記中間グレー・レベルは、
    前記対応する入力ピクセルの上隣の入力ピクセルが白であるか、黒であるかを決定する動作と、
    前記対応する入力ピクセルの上隣の入力ピクセルが黒であると決定される場合に、上隣の入力ピクセルが白であると決定された場合に割り当てられることになるよりも明るい中間グレー・レベルを割り当てる動作と
    を実施することにより割り当てられることを特徴とする請求項2に記載のコンピュータ実施方法。
  4. 前記中間グレー・レベルは、
    前記対応する入力ピクセルの下隣の入力ピクセルが白であるか、黒であるかを決定する動作と、
    前記対応する入力ピクセルの下隣の入力ピクセルが黒であると決定される場合に、下隣の入力ピクセルが白であると決定された場合に割り当てられることになるよりも明るい中間グレー・レベルを割り当てる動作と
    を実施することにより割り当てられることを特徴とする請求項3に記載のコンピュータ実施方法。
  5. 前記中間グレー・レベルは、
    前記対応する入力ピクセルの下隣の入力ピクセルが白であるか、黒であるかを決定する動作と、
    前記対応する入力ピクセルについての下隣の入力ピクセルが黒であると決定される場合に、下隣の入力ピクセルが白であると決定された場合に割り当てられることになるよりも明るい中間グレー・レベルを割り当てる動作と
    をさらに実施することにより割り当てられることを特徴とする請求項2に記載のコンピュータ実施方法。
  6. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、前記出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項5に記載のコンピュータ実施方法。
  7. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項4に記載のコンピュータ実施方法。
  8. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項3に記載のコンピュータ実施方法。
  9. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項2に記載のコンピュータ実施方法。
  10. 前記ボールド化されたアンチエイリアシング・ビットマップをディスプレイ上に表示する動作を
    さらに含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  11. 前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    前記入力ビットマップ中の傾斜した複数のストロークの間の接続箇所におけるボールド化の方向に対応する少なくとも1つの狭いキャップの存在を決定する動作と、
    前記少なくとも1つの狭いキャップのおのおののチューブを構成する入力ピクセルに黒の値を割り当てる動作と
    を含むことを特徴とする請求項1に記載のコンピュータ実施方法。
  12. コンピューティング・システムの1つまたは複数のプロセッサによって実行されるときに、前記コンピューティング・システムに入力白黒ビットマップをボールド化するための方法を実施させるコンピュータ実行可能命令をその上に有する1つまたは複数のコンピュータ読取り可能媒体を備えるコンピュータ・プログラム製品であって、前記方法は、
    前記入力白黒ビットマップにアクセスする動作と、
    前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する動作と
    を含むことを特徴とするコンピュータ・プログラム製品。
  13. 前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、対応する入力ピクセルが白である出力ピクセルのうちの少なくとも1つについて、
    前記対応する入力ピクセルの左隣の入力ピクセルが黒であることを決定する動作と、
    前記対応する入力ピクセルの右隣の入力ピクセルが黒であることを決定する動作と、
    前記それぞれの決定する動作に応じて前記出力ピクセルに中間グレー・レベルを割り当てる動作と
    を含むことを特徴とする請求項12に記載のコンピュータ・プログラム製品。
  14. 前記中間グレー・レベルは、
    前記対応する入力ピクセルの上隣の入力ピクセルが白であるか、黒であるかを決定する動作と、
    前記対応する入力ピクセルの上隣の入力ピクセルが黒であると決定される場合に、上隣の入力ピクセルが白であると決定された場合に割り当てられることになるよりも明るい中間グレー・レベルを割り当てる動作と
    を実施することにより割り当てられることを特徴とする請求項13に記載のコンピュータ・プログラム製品。
  15. 前記中間グレー・レベルは、
    前記対応する入力ピクセルの下隣の入力ピクセルが白であるか、黒であるかを決定する動作と、
    前記対応する入力ピクセルの下隣の入力ピクセルが黒であると決定される場合に、下隣の入力ピクセルが白であると決定された場合に割り当てられることになるよりも明るい中間グレー・レベルを割り当てる動作と
    を実施することにより割り当てられることを特徴とする請求項14に記載のコンピュータ・プログラム製品。
  16. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、前記出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項15に記載のコンピュータ・プログラム製品。
  17. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項14に記載のコンピュータ・プログラム製品。
  18. 前記白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    対応する出力ピクセルに中間グレー・レベルを適用する前記動作の実施によって、出力ピクセルを含む他のピクセルの値をボールド化されるようにするボールド化の方向に全体的に垂直な方向におけるピクセルのシーケンスのパスを識別する動作と、
    前記対応する出力ピクセルに割り当てられた前記中間グレー・レベルの平均化を適用して、前記対応する出力ピクセルに対する最終的な中間グレー・レベルを生成する動作と
    をさらに含むことを特徴とする請求項13に記載のコンピュータ・プログラム製品。
  19. 前記方法は、
    前記ボールド化されたアンチエイリアシング・ビットマップをディスプレイ上に表示する動作を
    さらに含むことを特徴とする請求項12に記載のコンピュータ・プログラム製品。
  20. 前記入力白黒ビットマップを使用して、ボールド化されたアンチエイリアシング・ビットマップを生成する前記動作は、
    前記入力ビットマップ中の傾斜した複数のストロークの間の接続箇所におけるボールド化の方向に対応する少なくとも1つの狭いキャップの存在を決定する動作と、
    前記少なくとも1つの狭いキャップのおのおののチューブを構成する入力ピクセルに黒の値を割り当てる動作と
    を含むことを特徴とする請求項12に記載のコンピュータ・プログラム製品。
JP2007549491A 2004-12-30 2005-12-20 ボールド化されたアンチエイリアシング・ビットマップを生成するための方法および記録媒体 Expired - Fee Related JP5490360B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US64086804P 2004-12-30 2004-12-30
US60/640,868 2004-12-30
US11/158,503 2005-06-22
US11/158,503 US7286269B2 (en) 2004-12-30 2005-06-22 Use of an input black and white bitmap to generate emboldened anti-aliasing bitmap
PCT/US2005/046540 WO2006073858A2 (en) 2004-12-30 2005-12-20 Use of an input black and white bitmap to generate emboldened anti-aliasing bitmap

Publications (3)

Publication Number Publication Date
JP2008527416A true JP2008527416A (ja) 2008-07-24
JP2008527416A5 JP2008527416A5 (ja) 2009-02-12
JP5490360B2 JP5490360B2 (ja) 2014-05-14

Family

ID=36640056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007549491A Expired - Fee Related JP5490360B2 (ja) 2004-12-30 2005-12-20 ボールド化されたアンチエイリアシング・ビットマップを生成するための方法および記録媒体

Country Status (4)

Country Link
US (1) US7286269B2 (ja)
JP (1) JP5490360B2 (ja)
KR (1) KR101159387B1 (ja)
WO (1) WO2006073858A2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080181531A1 (en) * 2007-01-25 2008-07-31 Monotype Imaging Inc. Emboldening glyphs without causing conglutination
JP5158752B2 (ja) * 2007-05-10 2013-03-06 シャープ株式会社 表示制御装置、表示装置、表示制御プログラム、コンピュータ読み取り可能な記録媒体、および表示制御方法
US8965135B2 (en) * 2008-03-19 2015-02-24 Conexant Systems, Inc. Flexible cadence follower for film in video
US10140268B2 (en) * 2015-08-27 2018-11-27 Qualcomm Innovation Center, Inc. Efficient browser composition for tiled-rendering graphics processing units

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001100725A (ja) * 1999-02-01 2001-04-13 Sharp Corp 文字表示装置、文字表示方法および記録媒体
JP2003076357A (ja) * 2001-09-06 2003-03-14 Ricoh Co Ltd 文字処理装置、文字処理方法、およびそのプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438273B1 (en) * 1998-12-23 2002-08-20 Xerox Corporation Method and apparatus for using rotatable templates within look-up tables to enhance image reproduction
EP1026659A3 (en) 1999-02-01 2002-01-30 Sharp Kabushiki Kaisha Character display apparatus, character display method, and recording medium
US7136541B2 (en) 2002-10-18 2006-11-14 Sony Corporation Method of performing sub-pixel based edge-directed image interpolation
US7342585B2 (en) 2004-12-30 2008-03-11 Microsoft Corporation Use of an input overscaled bitmap to generate emboldened overscaled bitmap

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001100725A (ja) * 1999-02-01 2001-04-13 Sharp Corp 文字表示装置、文字表示方法および記録媒体
JP2003076357A (ja) * 2001-09-06 2003-03-14 Ricoh Co Ltd 文字処理装置、文字処理方法、およびそのプログラム

Also Published As

Publication number Publication date
US20060146370A1 (en) 2006-07-06
KR101159387B1 (ko) 2012-07-09
US7286269B2 (en) 2007-10-23
WO2006073858A2 (en) 2006-07-13
JP5490360B2 (ja) 2014-05-14
WO2006073858A3 (en) 2007-03-22
KR20070093431A (ko) 2007-09-18

Similar Documents

Publication Publication Date Title
US7945114B2 (en) Image transform method for obtaining expanded image data, image processing apparatus and image display device therefore
US6781600B2 (en) Shape processor
US7342585B2 (en) Use of an input overscaled bitmap to generate emboldened overscaled bitmap
US6914615B2 (en) Graphic display apparatus, character display apparatus, display method, recording medium, and program
KR20030005277A (ko) 형상 프로세서
US20040004618A1 (en) Automatic optimization of the position of stems of text characters
CN105138317A (zh) 用于终端设备的窗口显示处理方法及装置
JP2002215126A (ja) 文字表示装置、文字表示方法および記録媒体
US5559530A (en) Image data processing apparatus
JP5490360B2 (ja) ボールド化されたアンチエイリアシング・ビットマップを生成するための方法および記録媒体
CN111427573A (zh) 一种模式生成方法、计算设备及存储介质
JP2014016688A (ja) 顕著性マップを利用した非写実変換プログラム、装置及び方法
US9311896B2 (en) Glyph rendering
US7292253B2 (en) Display apparatus, information display method, information display program, readable recording medium, and information apparatus
CN114138215A (zh) 一种显示方法及相关设备
US7969441B2 (en) Adaptive contextual filtering based on typographical characteristics
JP2021167084A (ja) 画像処理装置、画像処理方法ならびにプログラム
JP4756436B2 (ja) パターン認識装置とそのパターン認識方法、及びパターン認識プログラム
KR20140099183A (ko) 이미지 처리 장치, 이미지 처리 방법, 컴퓨터 판독가능 기록매체 및 화상형성장치
JP2010028429A (ja) 画像処理装置、画像処理方法およびプログラム
US8497874B2 (en) Pixel snapping for anti-aliased rendering
JP2005024987A (ja) 文字表示装置、文字表示方法、文字表示プログラムおよび可読記録媒体
US20060119897A1 (en) Output apparatus and program thereof
JP7313879B2 (ja) 画像処理装置、画像処理方法ならびにプログラム
JP4265363B2 (ja) 画像処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081218

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121026

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130128

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20130712

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20130719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140226

R150 Certificate of patent or registration of utility model

Ref document number: 5490360

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees