JP2014521148A - ラインに従うテキストイメージのレンダリング - Google Patents

ラインに従うテキストイメージのレンダリング Download PDF

Info

Publication number
JP2014521148A
JP2014521148A JP2014519010A JP2014519010A JP2014521148A JP 2014521148 A JP2014521148 A JP 2014521148A JP 2014519010 A JP2014519010 A JP 2014519010A JP 2014519010 A JP2014519010 A JP 2014519010A JP 2014521148 A JP2014521148 A JP 2014521148A
Authority
JP
Japan
Prior art keywords
text
encoding data
character
image
characters
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
JP2014519010A
Other languages
English (en)
Other versions
JP5959637B2 (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.)
Google LLC
Original Assignee
Google LLC
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
Priority claimed from US13/174,283 external-priority patent/US8400453B2/en
Priority claimed from US13/174,403 external-priority patent/US8760451B2/en
Priority claimed from US13/174,378 external-priority patent/US20130002679A1/en
Application filed by Google LLC filed Critical Google LLC
Publication of JP2014521148A publication Critical patent/JP2014521148A/ja
Application granted granted Critical
Publication of JP5959637B2 publication Critical patent/JP5959637B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • G01C21/3667Display of a road map
    • G01C21/3673Labelling using text of road map data items, e.g. road names, POI names
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Automation & Control Theory (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)
  • Instructional Devices (AREA)
  • Image Generation (AREA)

Abstract

マップイメージレンダリングシステムのようなグラフィックス又はイメージレンダリングシステムは、道路、地理的境界などのような種々のイメージオブジェクトを定義するベクトルデータの形態のイメージデータベースからイメージデータ及び例えばイメージオブジェクトに関するラベルを提供するためにイメージ上に表示されるべきテキスト文字列を定義するテクスチャを受信する。イメージングレンダリングシステムは、テキスト文字列の個々の文字がマルチセグメント化された又は湾曲したラインに従ってイメージ上に配置されるようにイメージをレンダリングする。このレンダリングシステムは、テキスト文字列情報を格納するテクスチャを作成するときにそれに沿ってテキストが配置されることになるラインの湾曲の詳細を知ることなく、テキストが湾曲した又は角度がついた道路又は他のイメージ特徴のセンターラインに従うようにテキスト文字列がマップイメージ上に配置されることを可能にする。この特徴は、例えば道路の湾曲に従う道路内のどこかに道路名が配置されることを可能にするので、マップイメージ内の強化された視覚的特性を提供し、したがって、マップイメージ内の感じのよい視覚的効果を提供する。
【選択図】図8

Description

本開示は、電子地図表示システムのようなイメージレンダリングシステムに関し、より詳細には、マルチセグメント化されたラインのようなラインに従ってテキストイメージをレンダリングするイメージレンダリングエンジンに関する。
デジタルマップは、移動電話、カーナビゲーションシステム、ハンドヘルドGPSユニット、コンピュータ、及び多くのウェブサイトを含む多様なデバイスで見出され及びこれらによって表示される場合がある。デジタルマップは、エンドユーザの見地から見る及び使用するのが容易であるが、デジタルマップの作成は難しい作業であり、時間のかかるプロセスである可能性がある。特に、すべてのデジタルマップは、マップの一部として表示されるべき数百万の道及び交差点並びに他の特徴に対応する一組の生データをマップデータベースに格納することで始まる。マップデータベースに格納され及びデジタルマップイメージを生成するのに用いられる生マップデータは種々のソースから導出され、各ソースは典型的に異なる量及びタイプの情報を提供する。このマップデータは、したがって、マップ表示又はマップレンダリングアプリケーション及びハードウェアによってアクセスされる前に、マップデータベースにコンパイルされ及び格納されなければならない。
もちろん、マップデータベースに格納されたマップデータに基づいてマップイメージをデジタル方式でレンダリングする(デジタルマップイメージと呼ばれる)異なる様態が存在する。マップイメージをレンダリングする1つの方法は、マップイメージを多数のピクセルデータ点で構成されているラスタ又はピクセル化されたイメージの組としてマップデータベース内に格納することであり、各ピクセルデータ点は、イメージの中の特定のピクセルが電子ディスプレイ装置上にどのように表示されることになるかを定義する特性を含む。このタイプのマップデータは、作成し及び格納するのが比較的容易であるが、このデータを用いるマップレンダリング技術は、典型的に、広範なデジタルマップイメージのための大量の記憶スペースを必要とし、非常に多くの有用な様態でディスプレイ装置上に表示される場合のデジタルマップイメージを操作することは難しい。
イメージをレンダリングする別のより融通性のある方法は、伝統的にベクトルイメージデータと呼ばれるものを使用する。ベクトルイメージデータは、典型的に、ゲーミングシステム、特に三次元ゲーミングシステムに関連するもののような高解像度及び高速イメージングシステムで用いられる。一般的に言えば、ベクトルイメージデータ(又はベクトルデータ)は、イメージディスプレイ装置を介してイメージの一部として表示されるべき特異的なイメージオブジェクト又は要素(プリミティブとも呼ばれる)を定義するデータを含む。マップイメージとの関連において、こうしたイメージ要素又はプリミティブは、例えば、個々の道路又は道路セグメント、テキストラベル、エリア、テキストボックス、建造物、ポイント・オブ・インタレスト・マーカ、地形特徴、サイクリングロード、マップ又は道ラベルなどであってもよい。各イメージ要素は、一般に、一組の1つ又は複数の三角形(異なるサイズ、形状、色、フィルパターンなどの)として構成され又は描かれ、各三角形は、ラインによって相互接続される3つの頂点を含む。したがって、あらゆる特定のイメージ要素に関して、イメージデータベースは一組の頂点データ点を格納し、各頂点データ点は、イメージ要素を構成する三角形のうちの1つの特定の頂点を定義する。一般的に言えば、各頂点データ点は、頂点の二次元又は三次元位置(例えばX,Y、又はX,Y,Z座標系の)に関係するデータと、色特性、フィル特性、頂点から生じるラインのライン幅特性などのような頂点の特性を定義する種々の頂点属性とを含む。
イメージレンダリングプロセス中に、レンダリングされるべきイメージの種々のイメージ要素に関して定義される頂点が、1つ又は複数のイメージシェーダに提供され及びイメージシェーダにおいて処理され、イメージシェーダは、ディスプレイ画面上に二次元イメージをもたらすために、グラフィックスカード又はラスタライザのようなグラフィックス処理ユニット(GPU)と共同して動作する。一般的に言えば、イメージシェーダは、高い融通性をもった状態でグラフィックスハードウェアへのレンダリングエフェクトを計算するのに主に用いられるソフトウェア命令セットである。イメージシェーダは、当該技術分野では周知であり、種々のタイプのイメージシェーダを、特別なシェーディング機能を定義するために例えばOpenGL及びDirect3Dによって提供される種々のアプリケーションプログラミングインターフェース(API)で利用可能である。基本的に、イメージシェーダは、頂点又はピクセルのいずれかの特色を記述する又は判定する高レベルプログラミング言語の簡単なプログラムである。頂点シェーダは、例えば、頂点の特色(例えば、位置、テクスチャ座標、色など)を定義し、一方、ピクセル又はフラグメントシェーダは、ピクセルの特色(色、z深度、及びα値)を定義する。頂点シェーダは、頂点シェーダに入力される各頂点に対して頂点シェーダが1つの(更新された)頂点出力を生じるように、イメージ要素又はプリミティブにおける各頂点に対して呼び出される。頂点シェーダによる各頂点出力は、次いで、最終的にはディスプレイ画面に送られることになるメモリのブロック上への一連のピクセルとしてレンダリングされる。別の例として、フラグメントシェーダは、イメージをピクセル化するために、すなわち、作成されているイメージのピクセル色値を判定するために頂点シェーダによる頂点出力を用いる。フラグメントシェーダは、イメージオブジェクトの異なる頂点の頂点属性値間を補間することで頂点シェーダによって生成された頂点の頂点属性値に基づいてピクセルを埋めてもよい又はレンダリングしてもよい。他の場合には、フラグメントシェーダは、イメージオブジェクトの頂点によって定義される特定の領域を埋める又はピクセル化するために、ピクセル色マップの形態の予め定義されたテクスチャを使用してもよい。この場合、テクスチャは、レンダリングされるべき種々のイメージに関するピクセル値を定義し、一般に、画面上にテキスト又はイメージをレンダリングするのに用いられる。
イメージシェーダ技術のより詳細な例として、Direct3D及びOpenGLグラフィックライブラリは、頂点シェーダ、ジオメトリシェーダ、及びピクセルシェーダ又はフラグメントシェーダを含む3つの基本的なタイプのシェーダを使用する。頂点シェーダは、グラフィックスプロセッサに与えられる各頂点に対して1回走る。上記のように、頂点シェーダの目的は、仮想スペースにおける頂点の位置を、該頂点がディスプレイ画面上に現れる二次元座標(並びにグラフィックスプロセッサのzバッファに関する深度値)に変換することである。頂点シェーダは、頂点の頂点属性を設定することで位置、色、及びテクスチャ座標のような特性を操作することができるが、新しい頂点を作成することはできない。頂点シェーダの出力は、存在する場合にはジオメトリシェーダ又はラスタライザのいずれかである処理パイプラインの次のステージに提供される。ジオメトリシェーダは、頂点のメッシュの頂点を追加及び除去することができ、且つ、中央処理装置(CPU)上で処理するには費用がかかりすぎる可能性がある、手続きによりイメージジオメトリを生成すること又は既存のイメージにボリュームの詳細を追加することに用いることができる。ジオメトリシェーダが用いられている場合、出力はラスタライザに送られる。フラグメントシェーダとしても知られているピクセルシェーダは、イメージにおける個々のピクセルの色特性及び光特性を計算する。このステージへの入力はラスタライザから入来し、フラグメントシェーダは、グラフィックスパイプラインを通じて送られているポリゴンのピクセル値を埋めるように動作し、特定のイメージオブジェクト内のピクセル値を定義するのにテクスチャを使用することができる。フラグメントシェーダは、典型的に、シーン照明及び調色のような関連したエフェクトのために用いられる。フラグメントシェーダの呼び出しと画面上のピクセルの間に1対1の関係性は存在せず、これは、フラグメントシェーダが、イメージオブジェクトが閉塞されている場合であっても、対応する空間内にあるすべてのイメージ要素又はオブジェクトに対してそれらが呼び出されるので、1ピクセルにつきしばしば多数回呼び出されるためである。しかしながら、閉塞しているオブジェクトが最初に描かれる場合、他のオブジェクトの閉塞したピクセルは、一般に、フラグメントシェーダにおいて処理されないであろう。
ベクトルグラフィックスの使用は、イメージデータが、中央マップデータベースから通信ネットワーク(インターネット、無線通信ネットワークなどのような)を介して表示のための1つ又は複数のモバイル又はリモートデバイスに送られる、モバイルマップシステムにおいて特に有利である可能性がある。特に、ベクトルデータは、受信側デバイスに送られると、ピクセル化されたラスタイメージデータよりも容易にスケール変更する及び操作すること(例えば、回転させることなど)ができる。しかしながら、ベクトルデータの処理は、典型的に、はるかにより時間がかかり、データを受信するイメージレンダリングシステム上のプロセッサへの負荷が高い。さらに、マップに表示されるべきより高レベルの詳細又は情報を提供するベクトルイメージデータの使用は、この情報を格納するマップデータベースからマップレンダリングシステムに、より大量のベクトルデータ又は頂点が送られる必要性を生じさせ、いくつかの場合には、これは結果的に、より高い帯域幅の要件又はダウンロード時間を招くことがある。
さらに、ラスタライズされたマップイメージとベクトルデータにより生成されたイメージとの両方の場合に、例えばマップの道、道路、及び他の特徴にラベルを付けるのに用いられるテキストは、一般に所定のイメージとして格納される。こうしたイメージは、テキストの位置が変わるように操作するのが難しい。ピクセル化されたマップイメージでは、例えば、テキストは、他のマップ特徴に対して固定の位置にあり、したがって、テキストの向き又は位置を他のイメージオブジェクトに対して変化させることは、不可能でないとしても困難である。ベクトルデータを用いるときには、テキストは、典型的に、他のマップ特徴に結び付けられない固定のイメージ又は文字列として格納され、したがってマップ内の異なる場所に置くことができる。しかしながら、テキストイメージの文字がマルチセグメント化されたラインのようなライン、すなわち互いからいくつかの角度をなして延びる複数のラインセグメントを有するライン又は湾曲したラインに従うようにするのにテキスト内の個々の文字の互いに対する位置が変わるようにテキストイメージを操作することは依然として難しい。
ディスプレイ装置上のイメージをレンダリングするためのコンピュータで実施される方法は、コンピュータ装置を用いて、テキスト文字列(一組のピクセル化されたテキスト文字としてイメージルックアップテーブル内に格納されてもよい)をそれに沿ってレンダリングするイメージ内のラインを判定すること、ラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定すること、複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれが関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを形成することを含む。方法は、テキスト文字列のテキスト文字をレンダリングするテキストボックスのうちの1つを選択し、テキスト文字列からテキスト文字のうちの1つを選択し、テキスト文字のうちの1つの中央がイメージ上のテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となるかどうかを判定する。方法はその後、テキスト文字のうちの1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となる場合に、テキストボックスのうちの1つを用いてディスプレイ装置上のテキスト文字のうちの1つをレンダリングする。若しくは、方法は、例えば、テキスト文字のうちの1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内とならない場合に、ディスプレイ装置上のテキスト文字のうちの1つをレンダリングするのに用いられるテキストボックスのうちの1つとして複数のテキストボックスのうちの異なる1つを選択する。
一実施形態では、方法は、イメージルックアップテーブル内に格納されたテキスト文字列からテキスト文字のうちの各1つを順に選択することをさらに含み、且つ、テキスト文字のうちの選択された各1つに関して、テキスト文字のうちの選択された1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となるかどうかを判定するステップと、テキスト文字のうちの選択された1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となる場合に、テキストボックスのうちの1つを用いてディスプレイ装置上のテキスト文字のうちの選択された1つをレンダリングするステップと、範囲外となる場合に、ディスプレイ装置上のテキスト文字のうちの選択された1つをレンダリングするのに用いられるテキストボックスのうちの1つとして複数のテキストボックスのうちの異なる1つを選択するステップとを行う。さらに、テキスト文字のうちの1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となるかどうかを判定するときに、方法は、テキスト文字のうちの1つに関する一組のエンコーディングデータを読み出してもよく、エンコーディングデータは、少なくとも1つの方向のテキスト文字のうちの1つの中央を指定し、及び/又はテキスト文字のうちの1つの幅を指定する。
テキストボックスを形成するときに、方法は、テキストボックスが関連するラインセグメントの長さの方向に関連するラインセグメントの範囲よりも大きい長さを有するように、ラインセグメントのうちの関連する1つの長さに沿って配向されるテキストボックスのそれぞれを形成してもよい。1つの事例では、方法は、テキストボックスのそれぞれを、ラインセグメントの始まりの前に各テキストボックスの始まりが関連するラインセグメントの長さの方向に所定の距離だけ延びるように、且つテキストボックスの終わりがラインセグメントの方向にラインセグメントの終わりを越えて所定の距離だけ延びるように形成してもよい。所定の距離は、例えば、テキストボックスにおいて形成されるときのイメージルックアップテーブルに格納されたテキスト文字列のテキスト文字のうちの1つの幅の半分であってもよい。方法はまた、複数のラインセグメントのそれぞれに関するテキストボックスを、テキストボックスの高さが関連するラインセグメントの方向に直交して所定の距離だけ延びるように形成してもよい。この場合、テキストボックスの高さは、テキストボックスにおいて形成されるときのイメージルックアップテーブルに格納されたテキスト文字列のテキスト文字のうちの1つの高さであってもよい。
所望であれば、方法は、テキスト文字のうちの1つの中央がテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となるかどうかを判定するために、及びテキスト文字のうちの1つがテキストボックスのうちの1つにおいてレンダリングされるときにテキストボックスのうちの1つに関連するラインセグメントの範囲内となる場合にテキストボックスのうちの1つを用いてディスプレイ装置上のテキスト文字のうちの1つをレンダリングするためにフラグメントシェーダを用いてもよい。さらに、方法は、複数のラインセグメントに関するテキストボックスを形成するために頂点シェーダを用いてもよい。
別の実施形態によれば、イメージレンダリングエンジンは、通信ネットワークインターフェースと、プロセッサと、プロセッサに結合されるメモリと、プロセッサに結合されるディスプレイ装置と、メモリに格納され及びプロセッサ上で実行する多数のルーチンとを含む。第1のルーチンは、通信ネットワークインターフェースを介して、1つ又は複数のイメージオブジェクトを定義するデータを含む一組のベクトルデータと1つ又は複数のテキスト文字列ルックアップテーブルを受信し、テキスト文字列ルックアップテーブルのうちの1つは、少なくとも1つのテキスト文字列のテキスト文字を一組のピクセル化されたテキスト文字として格納し、且つテキスト文字列に関連する複数のテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを格納する。第2のルーチンは、それに沿ってテキスト文字列がレンダリングされることになるラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定する。第3のルーチンは、複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれが関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを判定する。第4のルーチンは、テキスト文字列のテキスト文字をレンダリングするテキストボックスのうちの1つを選択し、テキスト文字列のテキスト文字のうちの次の1つを選択し、テキスト文字のうちの選択された1つの中央がイメージ上のテキストボックスのうちの選択された1つにおいてレンダリングされるときにテキストボックスのうちの選択された1つに関連するラインセグメントの範囲内となるかどうかを判定し、テキスト文字のうちの選択された1つの中央がテキストボックスのうちの選択された1つにおいてレンダリングされるときにテキストボックスのうちの選択された1つに関連するラインセグメントの範囲内となる場合に、テキストボックスのうちの1つを用いてディスプレイ装置上のテキスト文字のうちの1つをレンダリングする。若しくは、第4のルーチンは、ディスプレイ装置上のテキスト文字のうちの選択された1つをレンダリングするのに用いられるテキストボックスのうちの選択された1つとして複数のテキストボックスのうちの異なる1つを選択する。
別の実施形態によれば、ディスプレイ装置上のレンダリングされているイメージ内のラインに沿ってテキストをレンダリングする方法は、コンピュータメモリにテキスト文字列ルックアップテーブルを格納することを含み、テキスト文字列ルックアップテーブルは、テキスト文字列に関連する様々なテキスト文字と、テキスト文字列に関連する様々なテキスト文字のそれぞれの中央位置を定義するエンコーディングデータとを含む。方法はまた、それに沿ってテキスト文字列がレンダリングされることになるイメージの中のラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定する。方法は、次いで、複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれがイメージの中の関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを形成する。テキスト文字列の中の各テキスト文字に関して、方法は、テキスト文字列のテキスト文字をレンダリングするテキストボックスのうちの1つを選択し、テキスト文字列ルックアップテーブルからエンコーディングデータを読み出し、テキスト文字の中央位置がテキストボックスのうちの選択された1つにおいてレンダリングされるときにテキストボックスのうちの選択された1つに関連するラインセグメントの範囲内となるかどうかを判定する。方法は、次いで、テキスト文字の中央位置がテキストボックスのうちの選択された1つにおいてレンダリングされるときにテキストボックスのうちの選択された1つに関連するラインセグメントの範囲内となる場合に、テキストボックスのうちの選択された1つを用いてディスプレイ装置上のイメージの中のテキスト文字をレンダリングする。若しくは、方法は、テキスト文字の中央位置がテキストボックスのうちの選択された1つにおいてレンダリングされるときにテキストボックスのうちの選択された1つに関連するラインセグメントの範囲内とならない場合に、テキストボックスのうちの選択された1つとして複数のテキストボックスのうちの異なる1つを選択する。
さらなる実施形態では、マップイメージレンダリングシステムは、マップデータベース及びマップイメージレンダリングシステムを含む。マップデータベースは、マップ関連のベクトルイメージデータを格納し、ベクトルイメージデータは、1つ又は複数のイメージオブジェクトを定義するデータと、1つ又は複数のテキスト文字列ルックアップテーブルとを含み、テキスト文字列ルックアップテーブルのうちの1つは、一組のピクセル化されたテキスト文字としてレンダリングされるべき少なくとも1つのテキスト文字列に関連するテキスト文字を格納し、且つテキスト文字列に関連する複数のテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを格納する。マップイメージレンダリング装置は、マップ関連のベクトルイメージデータを受信し及びマップ関連のベクトルイメージデータを用いてマップイメージをレンダリングするために、マップデータベースに通信可能に結合される。マップイメージレンダリング装置は、通信ネットワークインターフェースと、プロセッサと、プロセッサに結合されるメモリと、プロセッサに結合されるディスプレイ装置と、メモリ上に格納され及びプロセッサ上で実行する多数のルーチンとを含む。特に、通信ルーチンは、通信ネットワークインターフェースを介して、ディスプレイ装置上でレンダリングされるべきイメージに関するベクトルイメージデータを受信する。さらに、1つ又は複数のイメージシェーダルーチンが、それに沿ってテキスト文字列がレンダリングされることになるラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定し、複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれがイメージの中の関連するラインセグメントに沿った直立位置にテキストを描くように配向されており、且つ関連するラインセグメントの範囲によって定義される一組の範囲値を有するテキストボックスを形成する。テキスト文字列の中の各テキスト文字に関して、1つ又は複数のイメージシェーダルーチンは、テキスト文字列ルックアップテーブルからエンコーディングデータを読み出し、テキスト文字がイメージ上でレンダリングされるときにテキスト文字の中央位置が入ることになる範囲値を有するテキストボックスを判定し、テキストボックスのうちの判定された1つを用いてディスプレイ装置上のイメージの一部としてテキスト文字をレンダリングする。
サーバに格納されたマップデータベースと1つ又は複数のマップイメージレンダリング装置との間の通信を実装するマップイメージングシステムの高レベルブロック図である。 マップベクトルデータを用いてマップイメージをレンダリングするのに用いられるイメージレンダリングエンジンの高レベルブロック図である。 テキスト文字列及びイメージ内のマルチセグメント化されたラインに従ってテキスト文字列がレンダリングされることを可能にするエンコーディングストライプを有するエンコードされたテクスチャを描いた図である。 エンコーディングストライプをより詳細に例証する図3のエンコードされたテクスチャの一部を描いた図である。 マップイメージにおける道路の中央に従うマルチセグメント化されたラインを描いた図である。 図4のマルチセグメント化されたラインに従って図3のテクスチャから得られるテキスト文字をレンダリングするために作成された第1のラインセグメントに関連する第1のテキストボックスをグラフィカルに描いた図である。 図4のマルチセグメント化されたラインに従って図3のテクスチャから得られるテキスト文字をレンダリングするために作成された第2のラインセグメントに関連する第2のテキストボックスをグラフィカルに描いた図である。 図5及び図6のテキストボックス及び図3のエンコードされたテクスチャを用いてマップイメージ内のマルチセグメント化されたラインに従って一組のテキスト文字をレンダリングする例となる方法、ルーチン、又はプロセスの流れ図である。 図5及び図6のテキストボックス及び図3のエンコードされたテクスチャを用いてマップイメージ内のマルチセグメント化されたラインに従って一組のテキスト文字をレンダリングする例となる方法、ルーチン、又はプロセスの流れ図である。 多数のテキスト文字列のそれぞれに関する第2のエンコーディングラインの組が配置された第2のテクスチャを例証する図であり、第2のエンコーディングラインのそれぞれは第2のテクスチャに格納されたグリフを指す。 重なり合ったテキスト文字を有するテキスト文字列を例証する図である。 重なり合った文字がイメージ上のラインに従ってレンダリングされることを可能にするために図8のエンコーディング技術を用いる一組のテキスト文字列のそれぞれに関する複数のエンコーディングストライプを用いる第3のテクスチャを例証する図である。 重なり合った文字がイメージ上のラインに従ってレンダリングされることを可能にするために図3のエンコーディング技術を用いるテキスト文字列に関する複数のエンコーディングストライプを用いる第4のテクスチャを例証する図である。
マップイメージレンダリングシステムのようなグラフィックス又はイメージレンダリングシステムは、イメージデータベースから、又はイメージデータを生成するアプリケーションから、道路、境界などのような種々のイメージオブジェクトを定義するベクトルデータの形態のイメージデータ及び例えばイメージオブジェクトに関するラベルを提供するためにイメージ上に表示されるべきテキスト文字列を定義するテクスチャを受信する。イメージングレンダリングシステムは、テキスト文字列の個々の文字がマルチセグメント化されたライン、例えば、湾曲したラインに従ってイメージ上に配置されるようにイメージをレンダリングする。このレンダリングシステムは、例えば、テキストが湾曲した又は角度がついた道路又は他のイメージ特徴のセンターラインに従うようにテキスト文字列がマップイメージ上に配置されることを可能にする。このレンダリング技術は、この技術が、テキスト文字列情報を格納するテクスチャを作成するときにそれに沿ってテキストが配置されることになるラインの湾曲の詳細を知ることなくラインに従うようにテキストをレンダリングすることを可能にするので、イメージ内のテキストをレンダリングする際の大きな融通性を提供する。この特徴は、例えば道路の湾曲に従う道路内のどこかに道路名が配置されることを可能にするので、マップイメージ内の強化された視覚的特性を提供し、したがって、レンダリングされているマップイメージ内の感じのよい視覚的効果を提供する。
ここで図1を参照すると、マップ関連のイメージングシステム10は、例えば中央サイト又は種々の異なる離間されたサイトに位置するサーバ14又は複数のサーバに格納されるマップデータベース12を含み、且つまた、複数のマップクライアント装置16、18、20、及び22を含み、そのそれぞれは、マップレンダリング装置又はマップレンダリングエンジンを格納し及び実装する。マップクライアント装置16〜22は、例えばハードワイヤード又は無線LAN、MAN、又はWAN、インターネット、又はこれらのあらゆる組み合わせを含むあらゆるハードワイヤード又は無線通信ネットワーク25を介してサーバ14に接続されてもよい。マップクライアント装置16〜22は、例えば、移動電話デバイス(18)、ラップトップ、デスクトップ、又は他のタイプのコンピュータのようなコンピュータ(16、20)、又は自動車ナビゲーションシステムのコンポーネントのような他のイメージングシステムのコンポーネント(22)などであってもよい。さらに、クライアント装置16〜22は、電話及びケーブルハードウェアのようなハードワイヤードに基づく通信構造、及び/又は例えば無線LAN及びWAN、衛星及びセルラー電話通信システムなどを含む無線通信ネットワークのような無線通信構造を使用するものを含むあらゆる公的に利用可能な又は私設の通信ネットワークのようなあらゆる適切な通信システムを介してサーバ14に通信可能に接続されてもよい。
マップデータベース12は、ラスタイメージマップデータ及びベクトルイメージマップデータを含むあらゆる所望のタイプ又は種類のマップデータを格納してもよい。しかしながら、本明細書に記載のイメージレンダリングシステムは、表示されるべきイメージ内のイメージオブジェクト、要素、又はプリミティブの多数の組のそれぞれに関する一連の頂点又は頂点データ点を定義し又は含み、且つマップ上に表示されるべきテキスト文字列を定義するのにテクスチャを用いるベクトルイメージデータと共に用いるのに最適である。一般的に言えば、ベクトルデータによって定義されるイメージオブジェクトのそれぞれは、それに関連する複数の頂点を有することになり、これらの頂点は、クライアント装置16〜22のうちの1つ又は複数を介してユーザにマップ関連のイメージオブジェクトを表示するのに用いられるであろう。さらに、例えばテキストイメージ又はテキスト文字を定義する種々のテクスチャマップは、マップ上のラベル又は他のイメージをレンダリングするのに用いられるマップデータベース12に格納されてもよく、又はこれらのテクスチャマップは、クライアント装置16〜22内の1つ又は複数のアプリケーションにおいてテキスト文字から生成されてもよい。
同じく理解されることとなるように、クライアント装置16〜22のそれぞれは、関連するディスプレイ装置34上でグラフィックス(イメージ)を実装する又はレンダリングするように公知の様態で概してプログラムされ及び相互接続される、1つ又は複数のプロセッサ30、1つ又は複数のメモリ32、ディスプレイ装置34、及び多くの場合ラスタライザ又はグラフィックスカード36、を有するイメージレンダリングエンジンを含む。あらゆる特定のクライアント装置16〜22に関するディスプレイ装置34は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、プラズマディスプレイ、陰極線管(CRT)ディスプレイ、又はあらゆる他のタイプの公知の又は適切な電子ディスプレイのようないかなるタイプの電子ディスプレイ装置であってもよい。
一般的に言えば、図1のマップ関連のイメージングシステム10は、ユーザがクライアント装置16〜22のうちの1つでマップアプリケーション(図1には図示せず)を開く又は実行するように動作し、マップアプリケーションは、サーバ14を介してマップデータベース12と通信し、及びそこからマップ情報又はマップ関連のデータを取得して、受信したマップデータに基づいてマップイメージを表示する又はレンダリングするように動作する。マップアプリケーションは、マップデータベース12に格納されたマップデータの異なる地理的部分をユーザが見ること、特定の地理的場所をズームイン又はズームアウトすること、及び表示されているマップの二次元又は三次元視野角を回転させる、回す、又は変化させることなどを可能にすることができる。より具体的には、後述のシステムを用いてディスプレイ装置又はディスプレイ画面34上のマップイメージをレンダリングするときに、クライアント装置16〜22のそれぞれは、マップデータベース12からベクトルデータの形態のマップデータをダウンロードし、関連するディスプレイ装置34上のイメージをレンダリングするのに1つ又は複数のイメージシェーダを用いて該ベクトルデータを処理する。
ここで図2を参照すると、クライアント装置16〜22のうちの1つに関連する又はこれによって実装されるイメージ生成又はイメージレンダリング装置40がより詳細に例証される。図2のイメージレンダリングシステム40は、2つのプロセッサ30a及び30b、2つのメモリ32a及び32b、ユーザインターフェース34、及びラスタライザ36を含む。この場合、プロセッサ30b、メモリ32b、及びラスタライザ36は、別個のグラフィックスカード(水平ラインよりも下に示される)上に配置されるが、これはすべての実施形態においてそうである必要はない。例えば、他の実施形態では、代わりに単一のプロセッサが用いられてもよい。さらに、イメージレンダリングシステム40は、ネットワークインターフェース42と、通信及び格納ルーチン43と、メモリ32a上に格納されプロセッサ30a上で実行されてもよいマップ表示論理を有する1つ又は複数のマップアプリケーション48とを含む。同様に、例えば頂点シェーダ44及びフラグメントシェーダ46の形態の1つ又は複数のイメージシェーダが、メモリ32b上に格納され、プロセッサ30b上で実行される。メモリ32a及び32bは、揮発性メモリ及び不揮発性メモリのいずれか又は両方を含んでいてもよく、ルーチン及びシェーダは、後述の機能性を提供するためにプロセッサ30a及び30b上で実行される。ネットワークインターフェース42は、ユーザインターフェース又はディスプレイ装置34上にイメージ表示を作成するのに用いられるベクトルデータの形態のイメージデータを取得するためにハードワイヤード又は無線通信ネットワークを介して例えば図1のサーバ14と通信するように動作するあらゆる周知のソフトウェアコンポーネント及び/又はハードウェアコンポーネントを含む。イメージレンダリング装置40はまた、例えば、より詳細に説明されることとなるように、マップデータベース12から受信したあらゆる数の頂点データ点を含むベクトルデータ及び1つ又は複数のイメージテクスチャを格納する、メモリ32のバッファ又は揮発性メモリ部である場合があるデータメモリ49を含む。
作動中に、マップアプリケーション48のマップ論理は、例えばユーザ入力、GPS信号、予め格納された論理、又はプログラミングなどを用いて、ディスプレイ装置34を介してユーザに表示する必要がある特定のイメージデータを判定することをプロセッサ30上で実行する。アプリケーション48の表示又はマップ論理は、マップデータベース12から好ましくはベクトルデータ又は圧縮されたベクトルデータの形態のマップデータを取得するためにネットワークインターフェース42を通じてサーバ14と通信することによって通信ルーチン43を用いてマップデータベース12と対話する。このベクトルデータは、ネットワークインターフェース42を介して戻され、ルーチン43によって復元され及びデータメモリ49に格納されてもよい。特に、マップデータベース12からダウンロードされるデータは、用いられることになる最終ベクトルデータのコンパクトな、構造化された、又は他の方法で最適化されたバージョンであってもよく、マップアプリケーション48は、プロセッサ30aを用いてダウンロードしたベクトルデータを特異的な頂点データ点に変換するように動作してもよい。一実施形態では、サーバ14から送信されたイメージデータは、画面34上に表示されるべき多数の異なるイメージ要素又はイメージオブジェクトに関連する一組の頂点のそれぞれに関するデータを概して含む又は定義するベクトルデータを含み、且つ、イメージオブジェクトに対してイメージ上に表示されることになるテキスト文字列又は他のラベルを定義する又は含む1つ又は複数のイメージテクスチャを含む可能性がある。より具体的には、各イメージ要素又はイメージオブジェクトに関するベクトルデータは、イメージの特定の要素又はオブジェクトを構成する1つ又は複数の三角形に関連する複数の頂点を含んでいてもよい。こうした各三角形は、3つの頂点(頂点データ点によって定義される)を含み、各頂点データ点は、それらに関連する頂点データを有する。一実施形態では、各頂点データ点は、参照又は仮想空間における頂点の二次元又は三次元位置又は場所を定義する頂点場所データ、並びに一組の頂点属性値を指す又は定義する1つ又は複数の頂点属性値及び/又は属性参照を含む。各頂点データ点は、それに頂点データ点が関連付けられるイメージオブジェクトのタイプを識別するオブジェクトタイプ識別子のような他の情報を付加的に含んでいてもよい。同様に、本質的にテキストイメージ又はピクセルルックアップテーブルであるイメージテクスチャは、イメージ上でレンダリングされるべきテキスト文字、テキスト文字列、又はラベルを定義する。こうしたイメージテクスチャはクライアント装置16〜22にダウンロードされてもよいが、これらのイメージテクスチャはまた、クライアント装置16〜22に提供される又はクライアント装置16〜22で用いられるテキスト文字の文字列を用いてクライアント装置16〜22で生成されてもよい。
一般的に言えば、本明細書に記載のマップイメージ内のラインに沿ってテキストをレンダリングするためのイメージングシステムは、3つの役割を含む又はそれに関係している。第1に、イメージの中のレンダリングされるべきテキストがイメージテクスチャに(それに関連する経路又は特定の向きをもたずに)配置され、テキスト文字列内の各テキスト文字の或る特徴を定義するエンコーディングデータでエンコードされる。このステップは、クライアント装置内のマップアプリケーションによって行われてもよく、その場合、テキスト文字列エンコードされたテクスチャは、クライアント装置のメモリに格納される。このエンコーディングがサーバ14で行われる場合、このテクスチャ(イメージ又はテキスト文字列ルックアップテーブルとも呼ばれる)は、マップデータベース12に格納されてもよく、クライアント装置に格納し及びそこで使用するために、クライアント装置16〜22に送信されてもよい。第2に、レンダリングされるべきテキストがイメージ上で従うことになる、一組のラインセグメントが、好ましくは適切な頂点属性をもつ三角形として描かれ又は確立される。第3に、1つ又は複数のシェーダが、テクスチャに格納されるテキスト文字列のテキスト又は文字をラインセグメントに正しく従うようにどこに描くかを計算し、このときの個々の文字回転は、テキスト文字列のテキスト文字のそれぞれが、ラインセグメントによって形成されるラインに従って又はこれに対して正しく回転される向きをもってレンダリングされるように行われる。
上記のように、レンダリング技術は、回転されていないテキストをテクスチャ又はピクセルマップにレンダリングする。もちろん、このプロセスは、テキストをイメージテクスチャ又は他のタイプのルックアップテーブルにレンダリングするあらゆる所望のテキストレンダリングライブラリを用いて行うことができる。1つよりも多いテキスト文字列がテクスチャに配置されることになる場合、各テキスト文字列の場所が記録され、テクスチャの一部として格納され又は提供される。さらに、各テキスト文字列内のテキストの高さが、テクスチャに記録され及びエンコードされてもよく、又はテクスチャに関する属性データとして提供されてもよい。
テクスチャ内のテキスト文字列の回転されていないテキストをレンダリングすることに加えて、テクスチャのX方向に沿って、テキスト文字の中央に対するテキスト文字の各ピクセル列の相対位置を定義するために、コード化されたピクセルストライプのようなエンコーディングデータが、各テキスト文字列に関するテクスチャ内に提供される。エンコーディングデータはまた、テキスト文字列内のテキスト文字間の切れ目又は遷移を定義してもよい。エンコーディングデータは、あらゆる所望の様態でテクスチャと共に提供されてもよいが、エンコーディングデータは、エンコードされているテキスト文字列のピクセルの場所の最上部のすぐ上又は上付近のピクセルの行内のテクスチャ内に配置されてもよい。
図3は、道の名前「Freemont Ave」、「Aurora Ave」、及び「First St」の形態の3つのテキスト文字列が配置された、例となるテクスチャ50を例証する。理解されることとなるように、テクスチャ50は、テキスト文字列を形成するテキスト文字を構成するピクセルのそれぞれに関するピクセル色値を格納する。さらに、エンコーディングストライプ52の形態のエンコーディングデータが、テキスト文字列のそれぞれの上部よりも1ピクセル行上のような真上に提供される。一般的に言えば、エンコーディングストライプ52を構成するピクセルの行内のピクセル値は、各テキスト文字の中央ピクセル列及びテキスト文字の幅又はあらゆる特定のピクセル列位置から関連するテキスト文字の中央までの距離を反映するようにエンコードされる。エンコーディングストライプ52は、一定の色のピクセルのラインとして図3で例証されるが、エンコーディングストライプ52は、実際には、それらの異なるピクセル位置に対して異なる色又はピクセル値を含むことが理解されるであろう。さらに、例証のために、テキスト文字列のテキスト文字のそれぞれに関連する中央ピクセル列は、小さい垂直ラインでマークされることで図3のエンコーディングライン52内に示される。
エンコーディングストライプ52のうちの1つの一部が、図3Aでより詳細に例証される。特に、図3Aは、図3のテキスト文字列「Freemont Ave」のテキスト文字「Free」よりも上に配置されるエンコーディングストライプ52の一部を例証する。図3Aの種々のピクセル値の場所にわたるブロックリリーフにテキスト文字F、r、e、及びeが示されるが、これは、これらのテキスト文字に関連するテクスチャ50のピクセル行及び列を単に例証するために行われる。これらのピクセルの場所に格納されるピクセル値が、これらの特異的なテキスト文字の特異的なイメージ特徴を定義することになることが理解されるであろう。図3Aのエンコーディングストライプ52は、それにエンコーディングストライプ52が関連付けられるテキスト文字列の真上のテクスチャ50内の、例えば、関連するテキスト文字列のピクセルの最上行の真上のピクセルの行に位置する。この場合、エンコーディングストライプ52におけるピクセルのそれぞれの値は、エンコーディングストライプ52の真下のピクセルの列内に位置する特定のテキスト文字の中央に対して測定した場合のX方向に沿った位置又はピクセルの該列のテクスチャ50の幅を反映する又は指定する。一例では、テキスト文字の中央列でのピクセル値は、128の値に設定されてもよく、一方、中央ピクセルからオフセットされるピクセル値は、テキスト文字の中央ピクセル列から離れる各ピクセル列につき1つだけ(例えば左に)増分し又は(例えば右に)減分してもよい。例えば、テキスト文字列「Freemont Ave」におけるテキスト文字「F」よりも上のピクセル範囲は12個のピクセルを含み、このときの中央ピクセルは128の値を有し、中央ピクセルの右の5つのピクセルはそれぞれ127、126、125、124、及び123の値を有し、中央ピクセルの左の4つのピクセルはそれぞれ129、130、131、及び132の値を有する。エンコーディングストライプ52は、このエンコーディングを行うために各ピクセルの赤色の値を用いてもよいが、テキスト文字の中央及び幅をエンコーディングするためにピクセルの他の色値を代わりに又は加えて用いることができる可能性がある。エンコーディングストライプ52を定義するテクスチャ50内のピクセルの行において赤色ピクセル色値がエンコードされる例では、エンコーディングストライプ52における各ピクセルは、ピクセルの現在下である又は同じピクセル列内のテキスト文字の中央とのピクセル距離よりも0から255までのスケールで128大きい赤色の色値を有する。各テキスト文字に関するエンコーディングストライプ52内のピクセルの左及び右に1つの追加のピクセルを含めることができ、このときの左の追加のピクセルは例えば255の赤色値を有し、右のピクセルは現在のテキスト文字の終わりを示すために例えば0の赤色値を有する。もちろん、エンコーディングストライプ52は、エンコーディングストライプ52のすぐ下のテキスト文字列の中の各テキスト文字を同様にエンコードするのに用いられてもよい。さらにまた、エンコーディングストライプ52は、関連するテキスト文字列よりも上に位置するものとして例証されるが、エンコーディングストライプ52は、代替的に、同じテクスチャ内のテキスト文字列よりも下に位置することができる可能性があり、又は付加的な又は別個のテクスチャがそれに関連付けられるテキスト文字列をミラーリングする又はこれと相互に関連付けられる場所を有するような他の様態で提供することができる可能性がある。いずれにしても、エンコーディングストライプ52の列の位置は、関連するテキスト文字のピクセル列と位置で相互に関連付けられる。しかしながら、テキスト文字列の中の各テキスト文字の中央位置及び幅は、あらゆる他の望ましい又は有用な様態でエンコードされ又は提供されてもよい。
テクスチャにおける各テキスト文字列に関するエンコーディングストライプ52の形態で提供されてもよいエンコーディングデータを格納し及び用いる結果として、本明細書に記載のイメージレンダリングシステムは、これらのテキスト文字列の中のテキスト文字を、個々の文字がマルチセグメント化されたラインに沿って正しく配向されて描かれるようにレンダリングすることができる。特に、エンコーディングデータを用いて、イメージレンダリングシステムは、各テキスト文字のあらゆる特定の場所(すなわち、ピクセル列)でテクスチャのX座標に沿った関連するテキスト文字の中央との相対的距離を判定することができる。この情報を用いて、フラグメントシェーダ46のうちの1つのようなイメージシェーダは、後述のように文字の中心に切れ目のない、回転されたテキスト、すなわち湾曲したラインに沿ったテキストを正しく描くように動作してもよい。
本明細書に記載のテキストレンダリングプロセスの第2の一般的ステップは、エンコードされたテクスチャ内のテキスト文字列が従うことになるラインのラインセグメントを判定する。このステップは、マップイメージがレンダリングされている際に行われてもよく、もちろん、テキスト文字列が最終的にレンダリングされる様態は、レンダリングされるべきテキストが従うことになる特異的なラインに依存するであろう。もちろん、従うべきラインは、ベクトルに基づくイメージオブジェクト用いて作成される道路の中央に沿って横断するライン、境界に従うラインなどのようなあらゆる所望のタイプのラインであってもよい。こうしたラインは、一般に、道路又は他のイメージ特徴にラベルを付けるためにテキストをレンダリングするのに判定され及び用いられてもよい。もちろん、従うべきラインは、イメージ特徴の輪郭に従うライン又はあらゆる他の所望のラインのようなあらゆる他のタイプのラインであってもよい。用いられるべきラインは、イメージオブジェクトの頂点のような他のイメージ特徴から判定されてもよく、マップデータベース12に予め格納され及びマップデータベース12から提供されてもよく、ユーザによって指定されてもよく、又はあらゆる他の所望の様態で判定されてもよい。
それに沿ってテキストをレンダリングするラインを識別すると、ラインは、直線であるが接続されたラインセグメントに分かれ、各ラインセグメントは、近隣のラインセグメント(単数又は複数)に対して概して或る角度をなす。マルチセグメント化されたライン60の例が、多区間道路62の中央に沿って横断するラインとして図4の破線で例証される。セグメント化されたライン60は、相互接続されたラインセグメント60A、60B、60C、及び60Dを含む。もちろん、ライン60及び/又はその関連するラインセグメントは、あらゆる所望の様態で、例えば道路60のセグメントを画定する頂点に提供されるデータに基づいて判定されてもよい。
図5は、図4のラインセグメント60A及び60Bをより詳細に例証する。図5では、ラインセグメント60Aは、始点66で始まって終点68に延びるものとして例証され、一方、ラインセグメント60Bは、始点68から延びて終点70に延びるものとして例証される。さらに、図5のラインセグメント60Aは、(ラインが用いられることになるイメージに対する空間内で測定される場合の、例えばピクセル数で又はいくつかの他の距離数量詞に従って)35の長さを有する。図5の場合、ラインセグメント60Aは、0の(点66での)相対参照値で始まって、ラインセグメント60Aに平行に配置される図5のスケール72に沿って35の(点68での)相対参照値に延びるものとして示される。同様の様態で、ラインセグメント60Bは、70の長さ(相対的イメージ空間内)を有し、ラインセグメント60Bに平行に配置されるスケール74によって例証される場合の35の(点68での)相対参照値で始まって105の(点68での)相対参照値に延びる。
ライン60のラインセグメントのそれぞれ(例えば、60A及び60B)が識別され及びその長さが判定されると、各ラインセグメントは、テキストボックスとして本明細書で言及されることになる矩形を形成する一対の三角形として表わされてもよい。こうした矩形又はテキストボックス80Aは、ラインセグメント60Aに関する図5で例証される。一般的に言えば、矩形80Aは、ラインセグメント60Aに沿ってテキストをレンダリングするためにフラグメントシェーダによって用いられるテキストボックスの一組の頂点を定義するのに用いられるであろう。特に、矩形80Aの頂点は、(ラインセグメント60Aの長さに沿った方向に測定される場合の)ラインセグメント60Aの始まりの前に予め定義された又は特異的な距離(例えばライン60に沿ってレンダリングされるべきテキスト文字列の最も広い文字の幅の半分)で始まるイメージにおける位置からラインセグメント60Aの終わりの後の予め定義された又は特異的な距離(例えば、テキスト文字列内の最も広い文字の幅の半分)にわたるように選択される。図5の例では、所定の距離は、5(イメージの相対的空間内)として例証され、したがって、矩形80Aは、スケールマーカ72に沿って−5から40まで延びる。ラインセグメント60Aと直交する方向に、矩形80Aは、別の距離、例えばラインセグメント60Aと直交する方向のレンダリングされるべき最も高いテキスト文字の高さの半分からラインセグメント60Aと直交する他の方向の別の距離(例えば、レンダリングされるべき最も高いテキスト文字の高さの半分)にわたる。したがって、図5のスケール75によって例証されるように、矩形80Aは、−5から5にわたる(ラインに沿ってレンダリングされるべきテキスト文字列の高さが相対的イメージ空間内の10であるとみなす)。
ここで、本明細書でラインセグメント60Aの範囲として言及されることになる始点66から終点68までのラインセグメント60Aの全体の長さが計算され又は判定され、この範囲は、テキストボックス80Aの頂点のそれぞれに関する頂点属性の2つの成分として設定される(このときのこれらの頂点属性の値は、テキストボックス80Aを形成する三角形の頂点のそれぞれに関して同じである)。これにより、ラインセグメントの範囲は、ラインセグメントが配置されるテキストボックス80Aの範囲として用いられる又は言及されることになる。したがって、矩形80Aの範囲は、それに沿ってテキストがレンダリングされることになるラインセグメント60Aの範囲となるであろう。この範囲は、矩形80Aの一方の端から他方の端までの長さの線形補間が結果的にラインセグメント60Aの始まり、ラインセグメント60Aの終わり、及びこれらの間のすべての点で正しい長さをもたらすように矩形80Aの頂点に関する長さ値を計算するためにフラグメントシェーダにおいて補間するのに用いられるであろう。もちろん、この補間は、ラインセグメント60Aの始まりまでのラインセグメント60Aの長さから最も広い文字の幅の半分(すなわち、所定の距離)を差し引き、これをラインセグメント60Aの前の矩形の頂点に関して用い、最も広い文字の幅の半分(例えば、所定の距離)をラインセグメント60Aの終わりの長さに加え、これをラインセグメント60Aの後の矩形の頂点に関してを用いることによって行うことができる。さらに、ラインセグメントよりも上のテキストボックスの頂点は、0のYテクスチャ値を指定する頂点属性を割り当てられてもよく、ラインセグメントよりも下のテキストボックスの頂点は、イメージ内でレンダリングされる場合のテキストの高さに等しいYテクスチャ値を指定する頂点属性を割り当てられてもよい。図5の矩形80Aの外側頂点のX,Y座標は、したがって、ラインセグメント60Aの始点66を中央とし、且つラインセグメント60Aに平行に(X方向に)及び直交して(Y方向に)延びるイメージ空間における(−5,0)、(40,0)、(−5,10)、及び(40,10)として例証される。この座標空間の使用は、単に例証を簡略化するために提供され、イメージ自体に又は補間及びイメージレンダリングを行うシェーダで用いられる実際の座標空間ではなくてもよい可能性がある。しかしながら、イメージのX,Y座標空間に整合するように座標を回転及び平行移動させることによって一貫したイメージ空間への変換が達成されてもよい。
テキストボックス(例えばテキストボックス80A)においてレンダリングするテキスト文字列を指定するのに用いられている同じテクスチャに複数のテキスト文字列が提供される場合、テクスチャ内に格納される場合の当該テキスト文字列のYオフセット(すなわち、テキストボックスにおいてレンダリングされるべきテキスト文字列のYオフセット)を、テキストボックス内の正しいテキストイメージをレンダリングできるようにするために頂点属性として送信することが必要な場合もある。あらゆる特定の時点でレンダリングされるべきテキスト文字を突き止め、且つイメージ上のテキスト文字列をレンダリングするときに適正な補間を行うことができるように、特定のラインセグメント(例えばラインセグメント60A)に沿ってテクスチャ内に格納されるテキスト文字列をレンダリングするシェーダがテクスチャ座標を適正に計算するためにテクスチャ内のテキスト文字列のサイズ(例えば、高さ)を知ることが必要な場合もある。しかしながら、テクスチャにおける文字又はテキスト文字列のサイズ(例えば、高さ)は一様であってもよく、この値は、次いで、テキストボックスの頂点属性としてではなく一様な変数として設定することができる。
理解されることとなるように、従うべきライン60の他のラインセグメント60B、60C、60Dのそれぞれに関して矩形又はテキストボックスを形成することができる。例として、テキストボックス80Bが、ラインセグメント60Bに関して図6で例証される。テキストボックス80Bは、相対的イメージ空間(このときスケール74及び76によって定義される)内の(30,0)、(110,0)、(30,10)、及び(110,10)に頂点を有する。さらに、このテキストボックスの範囲は、ライン60の始まりから測定したその始点68からその終点70までのラインセグメント60Bの範囲であるので、35〜105となるであろう。
矩形又はテキストボックスのそれぞれに関する2つの三角形の頂点が、レンダリングされるべきテキストがそれに沿って従うことになるラインのラインセグメントのそれぞれに関して定義された後で、これらの頂点及びそれらの関連する属性(例えば、二次元の場所及び範囲及びテキスト文字列座標)は、従うべきラインのラインセグメントのそれぞれに関するテキストボックスをレンダリングするために頂点シェーダ44のうちの1つに送信されてもよい。これらのテキストボックスは、頂点シェーダ44によって定義されると、例えば後述の様態で図5のテクスチャに格納される場合のエンコードされたテキスト文字列のうちの1つを用いてこれらのテキストボックス内のテキストをレンダリングするためにフラグメントシェーダ46によって用いられることが可能である。
一般的に言えば、作動中に、フラグメントシェーダ46は、もしあれば、判定されたラインセグメントのそれぞれに関して定義されるテキストボックスにおける各ピクセルに関して、テキストイメージからのどのピクセルを描くかを判定する。より具体的には、マルチセグメント化されたラインに沿ってテキストをレンダリングするときに、マップアプリケーション48は、フラグメントシェーダ46を、種々のテキストボックスにおけるテキストイメージからのテキストを一度に1つのテキストボックスに入れるのに用いる。そうすることで、マップアプリケーション48は、それに沿って特定のテキスト文字列のレンダリングを始めることになるラインセグメントのうちの1つを選択し、該ラインセグメントに関して作成されるテキストボックスを用いる。第1の選択されたラインセグメント又はテキストボックスは、0の範囲値を有するラインセグメント又はテキストボックスであってもよい。このテキストボックスを用いて動作するときに、フラグメントシェーダ46は、適切なテクスチャからレンダリングされるべき第1のテキスト文字のピクセルにアクセスしてもよく、テクスチャ内のエンコードされたストライプ52を用いてテキスト文字の中央との相対的距離を参照し又は判定してもよい。この機能は、テクスチャ内に格納される場合のレンダリングされている文字の位置に関するテクスチャ座標を得るためにテクスチャの幅で割ったテクスチャへのX座標として補間された長さ値を用いることによって行うことができる。テクスチャへのY座標は、テクスチャにおけるピクセルの第1の行、又は複数の文字列がテクスチャに詰め込まれる場合にテクスチャのオフセット後の第1の行となるように計算することができる。レンダリングされているテキスト文字列の現在のテキスト文字を見つけると、フラグメントシェーダ46は、テキスト文字列のエンコーディングストライプ52から適切な色値を読み出し、文字の中央との距離を求めるために128を差し引く。補間された長さを加えることは、文字の中央までの長さを与える。文字の中央(イメージ空間に補間される場合の)がテキストボックスの範囲内に入る場合、フラグメントシェーダ46は、テキストボックス内のディスプレイ上にテキストイメージの1つ又は複数のピクセルを描く。しかしながら、テキスト文字の計算された中央が、テキストボックスに関して提供される範囲の第1の限界と及び第2の限界との間にない場合、現在のテキスト文字のピクセルは廃棄されるべきであり、何も描かれない。より具体的には、フラグメントシェーダ46は、テキスト文字の各ピクセルをピクセル毎にテキストボックスに入れるかどうかの判定を行い、したがって、テキストイメージのピクセルが、解析される個々の各ピクセルに関する現在レンダリングされているテキストボックスの範囲内に入る中心点を有するテキスト文字と関連付けられるかどうかの判定を行う。もちろん、所望であれば、フラグメントシェーダ46が、(テキストボックスの対応するピクセルを埋めることを試みるときに)テキストイメージの各ピクセル列に対してこの解析を行うことができる可能性があり、この場合、文字の中央がテキストボックスの範囲内に入るかどうかに応じて、テキストボックスの中に列のテキストイメージピクセルを描く又は描かないことになる。いずれにしても、いかなる特定のピクセル又はピクセル列も廃棄されないとき、フラグメントシェーダ46は、前と同じテクスチャX座標、及びテクスチャの高さで割った頂点属性(レンダリングされている列の特定の行に応じて)として渡される1つ又は複数の補間されたYテクスチャ座標を用いて、ピクセルの該列におけるテキストに関する色を参照することができる。これは、テキストよりも上の中央エンコーディングピクセルを補正するレンダリングされたテキストから対応するピクセルを与えるべきである。
もちろん、テキスト文字の中央がテキストボックスの範囲外であるためテキストボックスの中にテキスト文字のピクセルが描かれない場合、マップアプリケーション48は、次の又は後続のテキストボックス(ラインに沿った次の又は後続のラインセグメントに関連する)を処理する又はレンダリングするときに該テキスト文字を描くのにフラグメントシェーダ46を用いるであろう。フラグメントシェーダ46は、シェーダ46がテキストボックスを埋める、すなわちテキストボックスの終わりに達するまで、現在選択されたテキストボックスにおいてテキスト文字のピクセルがレンダリングされるべきかどうかを判定するプロセスを繰り返す。テキスト文字のピクセルが特定のテキストボックス内で又はこれを用いてレンダリングされると、フラグメントシェーダ46は、同じテキストボックス内の次のテキスト文字のピクセルをレンダリングすることを試み、テキストボックスの終わりに達するまでこのプロセスを繰り返す。理解されることとなるように、ラインセグメントに関して形成されるテキストボックスのサイズが小さい場合があり、(その中心点がテキストボックスの範囲外に延びるため)1つのテキストボックスにおいて1つの文字がレンダリングされない場合、該文字は後続するテキストボックス(すなわち、テキスト文字の中央が入るテキストボックス)においてレンダリングされることになるので、実際には文字のサイズよりも小さい場合がある。このプロセス中に、テキスト文字がレンダリングされないテキストボックスが作成される場合がある。
このプロセスの結果として、テキストイメージ内のテキスト文字のそれぞれが上下に(right side up)(すなわち、テキストボックスの向きに対し直立して)及びラインに従ってレンダリングされるが、この場合、各テキスト文字はマルチセグメント化されたラインに正しく従うようにラインに沿った向きに回転される。結果として、テキスト文字列を、回転されていない様態で予め計算し、テクスチャに格納することができ、異なる湾曲をもつ複数のラインに関して何度も用いることができる。
ここで図7A及び図7Bを参照すると、図3及び図3Aのようなエンコードされたテクスチャ又はテキスト文字列ルックアップテーブルを用いてイメージ内のラインに沿ってテキストをレンダリングするのに用いられてもよい方法、ルーチン、又はプロセス100のプロセス流れ図又はフローチャートがより詳細に例証される。単なる例として、ルーチン100は、レンダリングされるテキストが道路の種々のセグメントにわたって道路の中央にあるようにテキストをマルチセグメント化された道路に沿って又はその境界内で、より具体的には道路の中央に従うラインに沿ってレンダリングするために、図2のようなマップレンダリングエンジンで用いられてもよい。一般的に言えば、ルーチン又はプロセス100は、マップアプリケーション48の一部であるルーチン及び/又はプロセッサ30a及び30bにおいて実行される頂点シェーダ44及びフラグメントシェーダ46によって定義されるルーチンを含む、1つ又は複数のソフトウェアルーチン又はアプリケーションとして実装されてもよい。これらのルーチンは、Javascript(登録商標)、Cコードなどのようなあらゆる所望の言語で実装され又は書かれてもよく、プロセッサ30a及び30bのうちの一方又は両方で実行されてもよい。さらに、これらのルーチンは、ディスプレイ装置34上のイメージをレンダリングするのにラスタライザ36を用いてもよい。
いずれにしても、ルーチン100のブロック102は、それに沿ってテキスト文字が適用されることになる多区間道路のようなイメージ特徴を描く又は形成してもよい。このプロセスの一部として又はこのプロセスが完了した後で、ブロック104は、それに沿ってテキスト文字列がレンダリングされることになる多区間道路のようなイメージ特徴に従うマルチセグメント化されたラインを判定する。一例では、このマルチセグメント化されたラインは、図4で例証されるライン60のような多区間道路のセンターラインに従っていてもよい。次に、ブロック106は、マルチセグメント化されたラインの隣接する区間の各対の交差点でのマルチセグメント化されたラインに沿った点を見つけ出す又は突き止める。したがって、ブロック106は、それに沿ってテキストがレンダリングされることになるラインの各ラインセグメントの始点及び終点を見つけ出し、マルチセグメント化されたラインの各セグメントに固有の範囲を割り当ててもよい。割り当てられた範囲は、連続的に又は継ぎ目なくラインセグメントの境界を越えて延びるべきである。すなわち、ラインの範囲は、1つのラインセグメントの始まりで開始し、2つのラインセグメントが同じ範囲を有さず、且つ共通の終点だけを共有するように、該ラインセグメントを通して、次いで後のラインセグメントのそれぞれを通して連続的に延びてもよい。
次に、ブロック108は、図5及び図6に関して前述した様態で各ラインセグメントに関するテキストボックスを形成する。これらのテキストボックスの頂点は、例えばマップアプリケーション48内のルーチンで定義され又は計算されてもよく、次いで、ラスタライザ36を用いてレンダリングされているイメージの中にテキストボックスを形成するために図2の頂点シェーダ44のうちの1つに送信されてもよい。もちろん、テキストボックスの輪郭は、テキストボックス自体がレンダリングされているイメージの視覚的態様とならない可能性があるため(しかしそれらはそのように望まれるならそうなることができる可能性がある)、透明であるか又は色をもたないであろう。各テキストボックスの頂点は、イメージ内のテキストボックスの頂点の場所を指定することになり、属性として、テキストボックスに関連するラインセグメントの範囲と、必要であればテキストボックスにおいてレンダリングされることになるテクスチャのテキスト文字列への1つ又は複数の参照を含むであろう。すなわち、所望であれば、テキストボックスの頂点は、属性として、ラインに沿ってレンダリングされるべきテキスト文字列が位置するテクスチャ内の場所へのポインタを含んでいてもよい。
次に、ブロック110で、ルーチン又はプロセス100は、参照されたテキスト文字列のレンダリングをそれに沿って始めるテキストボックスのうちの最初の1つを選択する。このテキストボックスは、この範囲値がテクスチャ内に格納されるテキスト文字列のレンダリングをそれに沿って始める開始位置を示すので、一般にゼロ(0)の範囲値を有するテキストボックスであろう。しかしながら、これはそうである必要はなく、テキストは、判定されたラインに沿ったあらゆる所望の場所又は位置で始まるラインに沿ってレンダリングすることができる可能性がある。いずれにしても、ブロック112(図7B)は、ラインに沿った現在の場所としてテキストがそこでレンダリングされることになる現在の又は選択されたテキストボックスにおける開始点を突き止める。この開始点は、(第1のテキストボックス以外は)テキストボックスの始端又は前端となることがあり、一般にはそうなるであろう。ブロック114は、次いで、ラインに沿った現在の場所に関連する範囲値に対応するテクスチャ内に格納される場合のテキスト文字列内のテキスト文字の列に関連するピクセル又はピクセルの組を得る。
ブロック116は、次いで、テキスト文字全体がラインに沿った現在の場所で現在のテキストボックスに配置された又はそこでレンダリングされた場合に、(現在のテキストボックスの一部として指定されるサイズ内に適合するようにテキストサイズが補間されるときに)それらのピクセルが関連付けられるテキスト文字の中央が現在のテキストボックスの範囲内であるかどうかを判定する。ブロック116は、考慮されているテキスト文字のピクセルのすぐ上のテクスチャのエンコーディングストライプ52を読み出すことによってこのテストを行ってもよい。すなわち、ブロック116は、128の赤色の色値を有する現在のテキスト文字(すなわち、0又は255の値をもつピクセル場所を横断することなく)に関するエンコーディングストライプ52内のピクセル場所(テクスチャのX方向の)を判定するためにエンコーディングストライプ52を読み出し、次いで、この位置を、考慮されているテキスト文字の中央(テクスチャのX方向に沿った)として認識してもよい。代替的に又は加えて、ブロック116は、現在のテキスト文字の中央との距離を判定するためにエンコーディングストライプ52内の幅エンコーディングを用いてもよい。現在のテキストボックス内に配置されるように適正に補間されたときに、現在のテキスト文字の中央ピクセル場所が現在のテキストボックスの範囲内である場合、ブロック118は、ラインに沿った現在の場所で現在のテキストボックスにおけるテキスト文字の現在の列のピクセルのすべてを(適正に補間されたサイズで)レンダリングする。一方、現在のテキストボックス内に配置されるように適正に補間されたときに、テキスト文字の中央ピクセル場所が現在のテキストボックスの範囲内ではない場合、テキスト文字のピクセルの現在のピクセル又は現在の列がテキストボックスにおいてレンダリングされないように、ブロック118が(ブロック122によって)スキップされる。これらのプロシージャは、そのように望まれる場合にはフラグメントシェーダ46において行われてもよい。もちろん、フラグメントシェーダ46がテキストボックス内のテキスト文字をレンダリングしているときに、テキスト文字のピクセルは、テキスト文字がテキストボックスの向きによって定義される場合のラインに沿った直立位置においてレンダリングされることになるように、テキストボックスのX及びY配向に沿ってレンダリングされるであろう。さらに、作動時には、ルーチン100は、フラグメントシェーダがテクスチャの特定のピクセル列における各ピクセルに関して、該ピクセルが属するテキスト文字がテキストボックスの範囲内に入る中央位置を有するかどうかを別々に解析するように、ブロック116及び118を継続的にピクセル毎に行ってもよい。簡素さのために、しかしながら、図7A及び図7Bのフローチャートは、ピクセル毎の動作を示さないが、代わりに、ピクセル列毎のテキスト文字ピクセルの処理を示す。
いずれにしても、テクスチャの特定のピクセル列のピクセルのすべてが解析された後で、ブロック124は、ラインに沿った現在の場所を次の位置に増分し、ブロック126は、現在の場所が現在のテキストボックスの後端を越えるかどうかを判定する。越えない場合、制御は、次のピクセル(又はテクスチャのピクセル列におけるピクセルの組)を得るブロック114に戻り、これらのピクセルが現在のテキストボックス内でレンダリングされるべきかどうかを確認するためにテキスト文字におけるピクセルの次の列に対してブロック116〜126のステップが繰り返される。
しかしながら、ブロック126で、ラインの新しい場所が現在のテキストボックスの終わりの外又はこれを越えたところで見出される場合、ブロック130(ラインに沿ってテキストを描くアプリケーション48において走る場合がある)は、ラインに関するすべてのテキストボックスがレンダリングされているかどうかを判定する。レンダリングされていない場合、ブロック132は、レンダリングする次のテキストボックスを判定し、レンダリングのために該テキストボックスの詳細をフラグメントシェーダ46に提供する。制御は、次いで、112に提供され、112は新しいテキストボックスに関連するテキストイメージの開始点を、該点が新しいテキストボックスの始まりによって定義されるラインに沿った場所に対応すると判定し、この点をラインに沿った現在の場所として設定する。フラグメントシェーダ46は、次いで、次のテキストボックスに対してブロック114〜126を実施するように動作する。ブロック130が、最後のテキストボックスがレンダリングされていることを判定するときに、ラインに沿ってテキスト文字列をレンダリングするプロセスが、テクスチャにおける1つのテキスト文字列に関して完了するであろう。
理解されることとなるように、ルーチン100は、本質的に、各テキスト文字の中央が入ることになる選択された又は判定されたラインに沿ったテキストボックスを見つけ出し、該テキストボックスの中にテキスト文字全体を描くように動作する。互いに対するテキスト文字の位置を判定するのにラインの範囲が用いられ、この範囲が連続しており、隣接するテキストボックスの交差点で途切れないので、テキスト文字は、それらがレンダリングされるテキストボックスに対して正しい方向(直立)にそれぞれレンダリングされるであろう。しかしながら、各テキストボックスの終わりがテキストボックスの範囲を越えて延長されるので、ルーチンは、テキスト文字全体をただ1つのテキストボックス、すなわち、テキスト文字の中央が入る範囲値を有するテキストボックスの中でレンダリングすることができる及びそうなることを保証する。このシステムは、テキストボックスが、例えば連続的に湾曲するラインの場合などではテキスト文字が各テキストボックスにおいてレンダリングされない可能性がある非常に小さいサイズとなることを可能にする。したがって、この技術は、テキストがあらゆる湾曲したラインに沿って正しくレンダリングされることを可能にする。
図7A及び図7Bの異なるブロックによって指定される種々のアクションを他の様態又は順序で再配置する又は再順序付けする及び行うことができる可能性があることがもちろん理解されるであろう。さらに、本明細書に記載のテキストレンダリングが始まる前にテキストボックスが予め確立されている又は予め画定されているのではなく、レンダリングされるべきテキストが現在のテキストボックスの外に入ることが判定されるときに各テキストボックスが必要となるのに応じて、テキストボックスの決定又は確立を実行中に行うことができる可能性がある。
テクスチャにおけるテキスト文字列に関するエンコーディングストライプ52は、関連するテキスト文字列のすぐ上又は真上にあるものとして説明されるが、このエンコーディングストライプ52は、テキスト文字列よりも下のテクスチャにおいて提供することができる可能性があり、又はそのように望まれる場合には関連するテキスト文字列のピクセルと何らかの方法で相互に関連付けられ又は参照される様態で別のテクスチャ又はルックアップテーブルにおいてでさえも提供することができる可能性がある。さらに、テキスト文字列の中の各テキスト文字の中央の位置を、エンコーディングストライプ52を用いない様態を含む本明細書に記載された以外の他の様態でエンコードすることができる可能性がある。さらに、エンコーディングストライプが用いられる場合、エンコーディング技術は、例えば本明細書に記載の特異的なピクセル値を用いることに限定されない。したがって、エンコーディングストライプ52内のテキスト文字の中央を示すのに用いられるものとして本明細書に128の値が記載されるが、代わりに他の値を用いることができる可能性がある。同様に、本明細書に記載のエンコーディングストライプ52に関してピクセル行の赤色の色値が用いられるが、代わりに1つ又は複数の他のピクセル色値を用いることができる可能性がある。
さらに、上記のように、ラインに沿ってテキスト文字列をレンダリングしているフラグメントシェーダは、フラグメントシェーダがテキスト文字の中央がテキスト文字が現在レンダリングされているテキストボックスの範囲内又はテキストボックスの範囲外のいずれにあるかを判定できるように、各テキスト文字の中央がテクスチャ内のどこにあるかを判定できることが重要である。上記のように文字の中央を判定する1つの様態は、単一の文字列又はテキスト文字の群に対して単一のエンコーディングストライプが用いられる図3及び図3Aで例証されるようなテクスチャ又はイメージルックアップテーブル自体における文字の中央をエンコードすることであってもよい。
他のエンコーディング技術を用いて、しかしながら、レンダリングされるべき異なるテキスト文字を、テクスチャ内の一組のグリフとして種々の異なるテキスト文字列の一部として(又は同じテキスト文字列の一部として)格納することによって、テクスチャ又はテキスト文字列ルックアップテーブルのサイズを減らすことができる。さらに、こうしたさらなるエンコーディング技術は、テキスト文字列の各テキスト文字に関する中央及び/又は幅情報を含む各テキスト文字列に関する第1のエンコーディングデータと、テキスト文字列の各テキスト文字の場所でテキスト文字として用いられることになる特定のグリフを指す第2のエンコーディングデータを提供する必要がある。例えば、図8は、3つの異なるテキスト文字列に関するエンコーディング情報202、204、及び206を格納するテクスチャ200を例証し、これらのテキスト文字列は、例えば、マップタイルにおける異なる道路に関するラベル又は名前を定義してもよい。図8のテキストエンコーディング情報202、204、206の例となるラインは、例えばテキスト文字列「Freemont Ave」、「Aurora Ave」、及び「First St」を定義してもよい。エンコーディング情報202、204、及び206に関連するテキスト文字列のそれぞれは、例えば、マップイメージ内の異なるラインに沿ってレンダリングされるように提供されてもよい。この場合、エンコーディング情報202、204、206の組のそれぞれは、テキスト文字列の中の各テキスト文字の中央及び/又は各特定のピクセル列から関連するテキスト文字の中央までの距離を意味するピクセル値を有するエンコーディングストライプ202A、204A、206Aをそれぞれ含む。エンコーディングストライプ202A、204A、及び206Aは、図3及び図3Aのエンコーディングストライプ52と同様であるか又は同一である。また、単なる例証のために、テキスト文字列の各テキスト文字の中央は、エンコーディングストライプにおける小さい垂直ラインによって示される。しかしながら、エンコーディングストライプ202A、204A、及び206Aのそれぞれの真下のテクスチャにおけるテキスト文字を定義するピクセル値の実際の組を格納する代わりに、テキスト文字列エンコーディング情報202、204、及び206の組のそれぞれの内部に第2のエンコーディングラインが提供される。図8でエンコーディングライン202B、204B、及び206Bとして例証される、これらの第2のエンコーディングラインは、本質的に、テクスチャ200内に格納されるグリフのフィールド210内のいくつかの位置へのポインタの組である。グリフのフィールド210内のグリフのそれぞれは、テキスト文字列エンコーディング情報202、204、及び206によって定義されるテキスト文字列のうちの1つ又は複数において用いられる単一のテキスト文字であってもよい。この場合、グリフのフィールド210内のグリフのうちの1つ又は複数は、テキスト文字列エンコーディング情報202、204、206によって定義される同じ又は異なるテキスト文字列において1回以上用いられてもよい。
したがって、図8で例証されるエンコーディング技術では、テキスト文字列エンコーディング情報202、204、及び206の各ライン又は組は、関連するテキスト文字列内の各文字(又はグリフ)の幅、間隔、及び中央、並びに関連するテキスト文字列内の互いに対する異なるテキスト文字又はグリフの相対的間隔を示す一組のピクセル値202A、204A、及び206Aとして形成されるエンコーディングデータの第1の組を含む。さらに、テキスト文字列エンコーディング情報202、204、及び206の各ライン又は組は、関連するテキスト文字列内の該位置で用いるために特定のテキスト文字を定義するグリフのフィールド210に格納される場合のグリフの位置又は場所を定義するピクセル202B、204B、206Bの第2のライン又は組を含む。
第2の又はさらなるエンコーディングライン202B、204B、206Bは、第1のエンコーディングライン202A、204A、206Aに隣接する、例えばその下のテクスチャ200内のピクセルの別個のラインとして格納されてもよい。一実施形態では、エンコーディングデータ202B、20BB、206Bの第2のラインは、例えば、エンコーディングデータ202A、204A、206Aの第1のラインにおいて定義される場合の各テキスト文字の中央で始まるグリフポインタ値の別個の組を含んでいてもよい。例として、グリフポインタ値の各組は、グリフのフィールド210における特定のグリフの場所を一緒に指す4つのエンコードされたピクセル値を含んでいてもよい。単なる例として、グリフのフィールド210に格納される場合の参照されたグリフのX位置は、2つのピクセル値の第1の組(第1及び第2のピクセル値)に格納されてもよく、一方、グリフのフィールド210に格納される場合の参照されたグリフのY位置は、2つのピクセル値の第2の組(第3及び第4のピクセル値)に格納されてもよい。より詳細な例として、X座標は、第1のピクセル場所における256で割った参照されたグリフのX値を格納し、第2のピクセル場所における残り(256を法とするX)を格納することによって第1の及び第2のピクセル値に格納されてもよい。同様の様態で、参照されたグリフのY座標は、第3のピクセル場所における256で割った参照されたグリフのY値を格納し、第4のピクセル場所における残り(256を法とするY)を格納することによって第3の及び第4のピクセル値に格納されてもよい。もちろん、テクスチャ200内の他の位置(又はさらにはグリフが格納される異なるテクスチャ内の場所)を指す場所ポインタと共にピクセル値を提供する又はエンコーディングするあらゆる他の様態が、代わりに用いられてもよい。さらに、グリフポインタが参照する場所は、関連するグリフの中央、グリフの左上角、右下角、又はあらゆる他の予め定義された位置のようなグリフの場所の角とすることができる可能性がある。テクスチャ200に格納される場合のグリフは所定の又は予め定義されたサイズであってもよいが、それらのサイズも同様に変化する可能性がある。この後者の場合、エンコーディングライン202A、204A、206Aは、回復されるべきグリフの幅を定義するのに用いられてもよく、グリフの高さは固定されていてもよい。代替的に、テキスト文字列情報202、204、206の第2のエンコーディングライン202B、204B、206Bはまた、得られることになるグリフのサイズを含んでいてもよい。別の実施形態では、グリフ自体が、それらのサイズを定義する一組のピクセル値を有していてもよく、このピクセル値の組は、あらゆる特定のグリフと関連付けられるテクスチャ内の正確なピクセル場所を判定するために最初に回復されてもよい。
もちろん、2つ以上のエンコーディングストライプの使用は、図8の例で例証されるように、実際には、このグリフが同じ又は異なるテキストエンコーディングストライプによって多数回参照されることが可能であるので、テキスト文字列のうちの1つ又は複数の中のどこかで用いられる各テキスト文字又はグリフがテクスチャ200に一度だけ格納されることを可能にする。このデュアルエンコーディング技術は、テキストボックスの複数の組内で又は複数の異なるラインに沿ってテキストのレンダリングを行うのに用いられるテクスチャをダウンロードし及び格納するときに、又はこれらのテクスチャをデバイス40内のプロセッサ30a及び30b間で送信するときに、テクスチャに必要とされるスペース又はデータを節約する又は減らす。さらに、第2のデータエンコーディングライン202B、204B、206Bは、それぞれ関連する第1のエンコーディングデータライン202A、204、206Aのすぐ下又は僅かに下のピクセル行に配置されるものとして図8で例証されるが、第2のデータエンコーディングライン202B、204B、206Bは、他の場所、例えば第1のエンコーディングデータラインよりも上のテクスチャ200に、又はさらには第1のエンコーディングデータラインの異なるカラーフィールドに関する一組のピクセル値として格納することができる可能性がある。例えば、該ピクセルの行の赤色ピクセル値を用いて第1のエンコーディングデータラインがピクセル場所の行に格納される場合、第2のエンコーディングデータラインをピクセルのこの同じ行の青色又は緑色ピクセル値に格納することができる可能性がある。
いくつかの場合には、図9で例証されるように、重なり合った文字を有するテキスト文字列を作成する又はレンダリングすることが望ましい場合がある。図9の例では、「A」の一部(すなわち、ピクセル値の最も左側の列)が「r」のピクセル値の最も右側の列と同じX座標上に位置するので、「r」と「A」は重なり合っている。図3、図3A、及び図8に関して図示され及び説明されるエンコーディング技術は、テキスト文字列内のテキスト文字の位置が、単一のラインピクセルにおいて直列にすべて定義され、1つのテキスト文字の終わりと隣接する文字の始まりとの間の別個の遷移を必要とするので、単一のテキストエンコーディング文字列を用いてこうしたテキストをレンダリングすることができない。
共通のテキスト文字列内の重なり合ったテキスト文字又はグリフのレンダリングを可能にする又はできるようにするために、図3、図3A、及び図8に関して説明したエンコーディング技術は、各テキスト文字列に関するエンコーディングラインの複数の組を含むように修正されてもよい。こうした技術は、図10のテクスチャ250において例証される。この場合、単一のテキスト文字列252が、エンコーディングラインの2つの異なる組254及び256を含むものとして例証され、各エンコーディングラインは図8に関して説明した2つのエンコーディングストライプを含む。この場合、テキスト文字列情報252(テキスト文字列「Freemont Ave」を定義する可能性がある)の第1の文字260は、エンコーディングラインの上側の組254に位置し、テキスト文字の中央(X方向の)及び第1の文字の中央からの幅又は距離を定義するエンコーディングストライプ260Aを含み、さらに、第1のテキスト文字に関して用いられるグリフのフィールド210内のグリフの場所を指す第2のエンコーディングライン260Bを含む。このとき、しかしながら、テキスト文字列情報252の第2の文字262は、下側ライン256に位置し、第2のテキスト文字の中央(X方向の)及び第2の文字の中央からの幅又は距離を定義するエンコーディングストライプ262Aを含み、且つ第2のテキスト文字に関して用いられるグリフのフィールド210内のグリフの場所を指す第2のエンコーディングライン262Bを含む。図10で例証されるように、エンコーディングストライプ260A及び262Aはテクスチャ250の異なる行にあるので、イメージ上でレンダリングされるときに、それらは重なり合ったピクセル場所又はピクセル列を有することができる。したがって、図10で例証されるように、第1の文字260Aの最も右側のピクセル列は第2の文字262Aの最も左側のピクセル列と重なり合う。エンコーディングストライプ254及び256の組を読み出すフラグメントシェーダは、テキスト文字列252に関するレンダリングする次の文字を認識するのに両方のエンコーディングラインを読み出すことを単に必要とする。フラグメントシェーダは、例えば、エンコーディングライン254及び256の組の間で交互に次の文字を探してもよく、エンコーディングライン254及び256の両方の組を読み出し、次の検出された中央位置(どのエンコーディングラインの次の中央位置が見つけ出されるかに関係なく)などに基づいて次の文字を判定してもよい。もちろん、テキスト文字が重なり合わない場合に、2組のエンコーディングライン254及び256を用いることができ、この場合、(1)エンコーディングライン254又は256の組のうちの1つが情報を有さない可能性があり、したがって無視することができる、又は(2)2つのエンコーディングライン254及び256の隣接するテキスト文字に関するエンコーディングストライプが互いに重なり合わない可能性がある、のいずれかである。また、エンコードされたデータの組270及び280によって図10で例証されるように、それぞれがエンコーディングデータの複数の組を有するテキスト文字列エンコーディングデータの複数の組が、グリフのフィールド210と共にテクスチャ250に格納されてもよい。
図11は、テキスト文字ピクセルが中央及び幅エンコーディングストライプ52の近隣に位置する場合の単一のテキスト文字列に関する2つのエンコーディングラインを用いるテクスチャ290を例証する。特に、図11は、グリフを参照するエンコーディングデータを用いない図3のテクスチャにおける重なり合ったエンコーディングデータラインを適用する様態を例証する。特に、図11の例では、テキスト文字列「Freemont Ave.」の「F」及び「r」の重なり及びテキスト文字列の最後の2文字である「e」及び「.」の重なりを提供する2つのエンコーディングラインが用いられる。
もちろん、本明細書に記載のテキストレンダリング技術及びテクスチャエンコーディング技術は、湾曲した、例えば、マルチセグメント化されたラインに沿ってテキスト文字列内の個々のテキスト文字をレンダリングする能力をもつマップレンダリングシステムのようなイメージレンダリングシステムを提供するためにあらゆる数の様態で変更され又は変えられてもよい。
本明細書の全体を通して、単一のインスタンスとして説明されるコンポーネント、動作、又は構造を複数のインスタンスが実装してもよい。1つ又は複数の方法の個々の動作が別個の動作として例示され及び説明されるが、個々の動作のうちの1つ又は複数は、同時に行われてもよく、動作が例証される順に行われる必要はない。例となる構成で別個のコンポーネントとして提示される構造及び機能性は、組み合わされた構造又はコンポーネントとして実装されてもよい。同様に、単一のコンポーネントとして提示される構造及び機能性が別個のコンポーネントとして実装されてもよい。これらの及び他の変形、修正、追加、及び改良は、本明細書の主題の範囲内に入る。
例えば、ネットワーク25は、LAN、MAN、WAN、モバイル、配線又は無線ネットワーク、プライベートネットワーク、又は仮想プライベートネットワークのあらゆる組み合わせを含んでいてもよいがこれらに限定されない。さらに、説明を簡潔明瞭にするために4つのみのクライアント装置が図1で例証されるが、あらゆる数のクライアントコンピュータ又はディスプレイ装置がサポートされ、サーバ14と通信することができることが理解される。
さらに、或る実施形態は、論理又は多数のコンポーネント、モジュール、又は機構を含むものとして本明細書に記載されている。モジュールは、ソフトウェアモジュール(例えば、機械可読媒体上で又は伝送信号において具体化されるコード)又はハードウェアモジュールのいずれかを構成してもよい。ハードウェアモジュールは、或る動作を行うことができる有形のユニットであり、或る様態で構成され又は配置されてもよい。例となる実施形態では、1つ又は複数のコンピュータシステム(例えば、独立型のコンピュータシステム、クライアントコンピュータシステム、又はサーバコンピュータシステム)又はコンピュータシステムの1つ又は複数のハードウェアモジュール(例えば、プロセッサ又はプロセッサ群)は、ソフトウェア(例えば、アプリケーション又はアプリケーション部分)によって本明細書に記載の或る動作を行うように動作するハードウェアモジュールとして構成されてもよい。
種々の実施形態では、ハードウェアモジュールは、機械的に又は電子的に実装されてもよい。例えば、ハードウェアモジュールは、或る動作を行うように恒久的に構成される(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)又は特定用途向け集積回路(ASIC)のような特殊用途プロセッサとして)専用回路又は論理を備えていてもよい。ハードウェアモジュールはまた、或る動作を行うようにソフトウェアによって一時的に構成されるプログラム可能論理又は回路(例えば、汎用プロセッサ又は他のプログラム可能プロセッサ内に含まれる場合)を備えていてもよい。ハードウェアモジュールを機械的に専用回路及び恒久的に構成される回路に又は一時的に構成される回路に(例えば、ソフトウェアによって構成される)実装することの判断は、費用及び時間の考慮事項によって導き出される場合があることが理解されるであろう。
したがって、ハードウェアという用語は有形のエンティティを包含し、該エンティティは、本明細書に記載の或る様態で動作する又は或る動作を行うように物理的に構築される、恒久的に構成される(例えば、ハードワイヤード)、又は一時的に構成される(例えば、プログラムされる)と理解されるべきである。ハードウェアモジュールが一時的に構成される(例えば、プログラムされる)実施形態を考えると、ハードウェアモジュールのそれぞれは、あらゆる1つの時点で構成され又はインスタンス化される必要はない。例えば、ハードウェアモジュールがソフトウェアを用いて構成される汎用プロセッサを備える場合、汎用プロセッサは、異なる時点でそれぞれの異なるハードウェアモジュールとして構成されてもよい。ソフトウェアは、したがって、プロセッサを、例えば、1つの時点で特定のハードウェアモジュールを構成し、且つ異なる時点で異なるハードウェアモジュールを構成するように構成してもよい。
ハードウェアモジュール及びソフトウェアモジュールは、他のハードウェアモジュール及び/又はソフトウェアモジュールに情報を提供し、及びそこから情報を受信することができる。したがって、説明されたハードウェアモジュールは、通信可能に結合されるものとみなされてもよい。複数のこうしたハードウェアモジュール又はソフトウェアモジュールが同時に存在する場合、ハードウェアモジュール又はソフトウェアモジュールを接続する信号伝送を通じて(例えば、適切な回路及びバス上で)通信が達成されてもよい。複数のハードウェアモジュール又はソフトウェアが異なる時点で構成され又はインスタンス化されるいくつかの実施形態では、例えば、複数のハードウェアモジュール又はソフトウェアモジュールがそれへのアクセスを有するメモリ構造における情報の格納及び検索を通じて、こうしたハードウェアモジュール又はソフトウェアモジュール間の通信が達成されてもよい。例えば、1つのハードウェアモジュール又はソフトウェアモジュールが動作を行い、該動作の出力を、それに通信可能に結合されるメモリデバイスに格納してもよい。さらなるハードウェアモジュール又はソフトウェアモジュールが、次いで、後の時点で、格納された出力を検索し及び処理するためにメモリデバイスにアクセスしてもよい。ハードウェアモジュール及びソフトウェアモジュールはまた、入力デバイス又は出力デバイスとの通信を開始してもよく、リソース(例えば、情報のコレクション)上で動作することができる。
本明細書に記載の例となる方法の種々の動作は、該当する動作を行うように一時的に構成される(例えば、ソフトウェアによって)又は恒久的に構成される1つ又は複数のプロセッサによって少なくとも部分的に行われてもよい。一時的又は恒久的のいずれに構成されようとも、こうしたプロセッサは、1つ又は複数の動作又は機能を行うように動作する、プロセッサに実装されるモジュールを構成してもよい。本明細書で言及されるモジュールは、いくつかの例となる実施形態では、プロセッサに実装されるモジュールを含んでもよい。
同様に、本明細書に記載の方法又はルーチンは、少なくとも部分的にプロセッサに実装されていてもよい。例えば、方法の動作のうちの少なくともいくつかは、1つ又は複数のプロセッサ又はプロセッサに実装されるハードウェアモジュールによって行われてもよい。動作のうちのいくつかの性能は、1つ又は複数のプロセッサ間で分散されていてもよく、単一のマシン内だけに存在するのではなく多数のマシンにわたって展開される。いくつかの例となる実施形態では、1つ又は複数のプロセッサが、単一の場所(例えば、ホーム環境、オフィス環境、又はサーバファーム内)に位置してもよく、一方、他の実施形態では、プロセッサは、多数の場所にわたって分散されていてもよい。
1つ又は複数のプロセッサはまた、「クラウドコンピューティング」環境における該当する動作の性能をサポートするように、又は「ソフトウェア・アズ・ア・サービス」(SaaS)として動作してもよい。例えば、動作のうちの少なくともいくつかは、コンピュータの群(プロセッサを含むマシンの例として)によって行われてもよく、これらの動作は、ネットワーク(例えば、インターネット)を介して及び1つ又は複数の適切なインターフェース(例えば、アプリケーションプログラムインターフェース(API))を介してアクセス可能である。
動作のうちのいくつかの性能は、1つ又は複数のプロセッサ間で分散されていてもよく、単一のマシン内だけに存在するのではなく多数のマシンにわたって展開される。いくつかの例となる実施形態では、1つ又は複数のプロセッサ又はプロセッサに実装されるモジュールは、単一の地理的場所(例えば、ホーム環境、オフィス環境、又はサーバファーム内)に位置してもよい。他の例となる実施形態では、1つ又は複数のプロセッサ又はプロセッサに実装されるモジュールは、多数の地理的場所にわたって分散されていてもよい。
本明細書のいくつかの部分は、マシンメモリ(例えば、コンピュータメモリ)内にビット又は2進デジタル信号として格納されるデータに対する動作のアルゴリズム又は記号表現の観点で提示される。これらのアルゴリズム又は記号表現は、他の当業者に彼らの仕事の実質を伝えるためにデータ処理分野での当業者によって用いられる技術の例である。本明細書で用いられる場合の「アルゴリズム」又は「ルーチン」は、所望の結果につながる首尾一貫した一連の動作又は同様の処理である。この文脈において、アルゴリズム、ルーチン、及び動作は、物理量の物理的操作を含む。典型的に、必ずしもそうではないが、こうした量は、マシンによって格納される、アクセスされる、伝送される、組み合わされる、比較される、又は他の方法で操作されることが可能な電気信号、磁気信号、又は光信号の形態をとってもよい。主に共通使用のために、こうした信号を言及するのに「データ」、「コンテンツ」、「ビット」、「値」、「要素」、「記号」、「文字」、「用語」、「数」、「数値」などのような言葉を用いるのが時には便利である。これらの言葉は、しかしながら、単なる便利なラベルであり、適切な物理量と関連付けられる。
特にそれ以外の指定のない限り、「処理」、「コンピューティング」、「計算」、「判定」、「提示」、「表示」などのような言葉を用いる本明細書での説明は、情報を受信し、格納し、伝送し、又は表示する1つ又は複数のメモリ(例えば、揮発性メモリ、不揮発性メモリ、又はそれらの組み合わせ)、レジスタ、又は他のマシンコンポーネント内の物理(例えば、電子、磁気、又は光学)量として表わされるデータを操作する又は変換するマシン(例えば、コンピュータ)のアクション又はプロセスを指す可能性がある。
本明細書で用いられる場合の「一実施形態(「one embodiment」又は「an embodiment」)」へのあらゆる言及は、実施形態との関連で説明される特定の要素、特徴、構造、又は特性が少なくとも1つの実施形態に含まれることを意味する。本明細書の種々の場所での「一実施形態では」というフレーズの出現は、必ずしもすべて同じ実施形態を言及していない。
いくつかの実施形態は、それらの派生語と共に「結合される」及び「接続される」という表現を用いて説明される場合がある。例えば、いくつかの実施形態は、2つ以上の要素が物理的に又は電気的に直接接触していることを示すために「結合される」という用語を用いて説明される場合がある。「結合される」という用語は、しかしながら、2つ以上の要素が互いに直接接触しないが依然として互いに協働する又は相互作用することも意味する可能性がある。実施形態はこの文脈に限定されない。
本明細書で用いられる場合の「備える」、「備えている」、「含む」、「含んでいる」、「有する」、「有している」という用語、又はこれらのあらゆる他の変形は、非排他的包含をカバーすることを意図される。例えば、要素のリストを含むプロセス、方法、物品、又は装置は、必ずしもこれらの要素だけに限定されないが、明示されない又はこうしたプロセス、方法、物品、又は装置に固有の他の要素を含んでいてもよい。さらに、それと反対に明白に規定されない限り、「又は」は、包含的な又は(or)を指し、排他的な又は(or)を指さない。例えば、条件A又はBは、以下のいずれか1つによって満たされる。Aが真であり(又は存在する)且つBが偽である(又は存在しない)、Aが偽であり(又は存在しない)且つBが真である(又は存在する)、及びAとBとの両方が真である(又は存在する)。
さらに、「1つの(「a」又は「an)」」の使用は、本明細書の実施形態の要素及びコンポーネントを説明するために採用される。これは単に便宜上、説明の一般的意味を与えるためになされる。この説明は、1つ又は少なくとも1つを含むように読まれるべきであり、他の意味が意図されることが明らかである場合を除き、この単数形は複数形も含む。
さらにまた、図面は、マップレンダリングシステムの好ましい実施形態を単に例証する目的で描いている。当業者は、本明細書で例証される構造及び方法の代替的実施形態が本明細書に記載の原理から逸脱することなく採用されてもよいことを以下の説明からすぐに認識するであろう。
本開示を読めば、本明細書で開示された原理を用いてマップ又は他のタイプのイメージをレンダリングするシステム及びプロセスに関するさらに付加的な代替的な構造上及び機能上の設計を当業者は理解するであろう。したがって、特定の実施形態及び用途が例証され及び説明されているが、開示された実施形態は、本明細書で開示された正確な構成及びコンポーネントに限定されないことが理解される。添付の請求項で定義される精神及び範囲から逸脱することなく、本明細書で開示された方法及び装置の配置、動作、及び詳細に、当業者には明らかであろう種々の修正、変化、及び変形がなされてもよい。

Claims (116)

  1. ディスプレイ装置上のイメージをレンダリングするためのコンピュータで実施される方法であって、
    コンピュータ装置を用いて、一組のピクセル化されたテキスト文字としてイメージルックアップテーブル内に格納されたテキスト文字列をそれに沿ってレンダリングするイメージ内のラインを判定すること、
    前記コンピュータ装置を用いて、前記ラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定すること、
    前記コンピュータ装置を用いて、前記複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれが関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを形成すること、
    前記コンピュータ装置を用いて、前記テキスト文字列のテキスト文字をレンダリングする前記テキストボックスのうちの1つを選択すること、
    前記コンピュータ装置を用いて、一組のピクセル化されたテキスト文字として前記イメージルックアップテーブル内に格納された前記テキスト文字列から前記テキスト文字のうちの1つを選択すること、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの1つの中央が前記イメージ上の前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定すること、及び
    前記コンピュータ装置を用いて、前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となる場合に、前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの1つをレンダリングし、前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの1つをレンダリングしないこと、
    を含む、方法。
  2. 前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記ディスプレイ装置上の前記テキスト文字のうちの1つをレンダリングするのに用いられる前記テキストボックスのうちの1つとして前記複数のテキストボックスのうちの異なる1つを選択することをさらに含む、請求項1に記載のコンピュータで実施される方法。
  3. 前記イメージルックアップテーブル内に格納された前記テキスト文字列から前記テキスト文字のうちの各1つを順に選択することをさらに含み、且つ、前記テキスト文字のうちの選択された各1つに関して、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定するステップと、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となる場合に、前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの前記選択された1つをレンダリングするステップと、
    前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記ディスプレイ装置上の前記テキスト文字のうちの前記選択された1つをレンダリングするのに用いられる前記テキストボックスのうちの1つとして前記複数のテキストボックスのうちの異なる1つを選択するステップと、
    を行う、請求項1に記載のコンピュータで実施される方法。
  4. 前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定するステップが、前記テキスト文字のうちの1つに関する一組のエンコーディングデータを読み出すことを含み、前記エンコーディングデータが、少なくとも1つの方向の前記テキスト文字のうちの1つの中央を指定する、請求項1に記載のコンピュータで実施される方法。
  5. 前記テキスト文字のうちの1つに関する一組のエンコーディングデータを読み出すことが、前記テキスト文字のうちの1つの幅を指定するエンコーディングデータを読み出すことを含む、請求項3に記載のコンピュータで実施される方法。
  6. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記ラインセグメントのうちの関連する1つの長さに沿って配向される前記テキストボックスのそれぞれを形成することを含む、請求項1に記載のコンピュータで実施される方法。
  7. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記ラインセグメントのうちの関連する1つの長さに沿って配向され、且つ前記関連するラインセグメントの長さの方向に前記関連するラインセグメントの範囲よりも大きい長さを有する前記テキストボックスのそれぞれを形成することを含む、請求項1に記載のコンピュータで実施される方法。
  8. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記テキストボックスのそれぞれを、前記ラインセグメントの始まりの前に各テキストボックスの始まりが前記関連するラインセグメントの長さの方向に所定の距離だけ延びるように、且つ前記テキストボックスの終わりが前記ラインセグメントの方向に前記ラインセグメントの終わりを越えて所定の距離だけ延びるように形成することを含む、請求項7に記載のコンピュータで実施される方法。
  9. 前記所定の距離が、前記テキストボックスにおいて形成されるときの前記イメージルックアップテーブルに格納された前記テキスト文字列の前記テキスト文字のうちの1つの幅の半分である、請求項8に記載のコンピュータで実施される方法。
  10. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記テキストボックスのそれぞれを、前記テキストボックスの高さが関連するラインセグメントの方向に直交して所定の距離だけ延びるように形成することを含む、請求項7に記載のコンピュータで実施される方法。
  11. 前記テキストボックスの高さが、前記テキストボックスにおいて形成されるときの前記イメージルックアップテーブルに格納された前記テキスト文字列の前記テキスト文字のうちの1つの高さである、請求項10に記載のコンピュータで実施される方法。
  12. 前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定するために、及び前記テキスト文字のうちの1つが前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となる場合に前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの1つをレンダリングするために、コンピュータ装置内のフラグメントシェーダを用いることをさらに含む、請求項1に記載のコンピュータで実施される方法。
  13. イメージレンダリングエンジンであって、
    通信ネットワークインターフェースと、
    プロセッサと、
    前記プロセッサに結合されるメモリと、
    前記プロセッサに結合されるディスプレイ装置と、
    前記通信ネットワークインターフェースを介して1つ又は複数のイメージオブジェクトを定義するデータを含む一組のベクトルデータを受信し、且つ前記メモリから1つ又は複数のテキスト文字列ルックアップテーブルを取得するように前記プロセッサ上で実行する、前記メモリに格納される第1のルーチンであり、前記テキスト文字列ルックアップテーブルのうちの1つが、少なくとも1つのテキスト文字列のテキスト文字を、一組のピクセル化されたテキスト文字及び前記テキスト文字列に関連する複数のテキスト文字のそれぞれの中央位置を定義するエンコーディングデータとして格納する、第1のルーチンと、
    それに沿って前記テキスト文字列がレンダリングされることになるラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定するように前記プロセッサ上で実行する、前記メモリに格納される第2のルーチンと、
    前記複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれが関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを判定するように前記プロセッサ上で実行する、前記メモリに格納される第3のルーチンと、
    前記メモリに格納される第4のルーチンであり、
    前記テキスト文字列のテキスト文字をレンダリングする前記テキストボックスのうちの1つを選択し、
    前記テキスト文字列の前記テキスト文字のうちの次の1つの、1つ又は複数のピクセルを選択し、
    前記テキスト文字のうちの次の1つの中央が前記イメージ上の前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定し、
    前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となる場合に前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの1つのピクセルをレンダリングし、前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内とならない場合に前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの1つのピクセルをレンダリングしない、
    ようにプロセッサ上で実行する、第4のルーチンと、
    を備えるイメージレンダリングエンジン。
  14. 前記第3のルーチンが頂点シェーダを含む、請求項13に記載のイメージレンダリングエンジン。
  15. 前記第4のルーチンがフラグメントシェーダを用いるアプリケーションを含む、請求項13に記載のイメージレンダリングエンジン。
  16. 前記第4のルーチンが、前記イメージルックアップテーブル内に格納された前記テキスト文字列の前記テキスト文字のうちの各1つに関するピクセルを順に選択し、前記テキスト文字のうちの選択された各1つに関して、
    前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定し、
    前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となる場合に、前記テキストボックスのうちの1つを用いて前記ディスプレイ装置上の前記テキスト文字のうちの前記選択された1つをレンダリングし、
    前記テキスト文字のうちの前記選択された1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記ディスプレイ装置上の前記テキスト文字のうちの前記選択された1つをレンダリングするのに用いられる前記テキストボックスのうちの1つとして前記複数のテキストボックスのうちの異なる1つを選択する、
    請求項13に記載のイメージレンダリングエンジン。
  17. 前記第4のルーチンが、前記テキスト文字のうちの1つに関する一組のエンコーディングデータであり、少なくとも1つの方向の前記テキスト文字のうちの1つの中央を指定するエンコーディングデータを読み出し、前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定するのに前記テキスト文字のうちの1つの中央の場所を用いることによって、前記テキスト文字のうちの1つの中央が前記テキストボックスのうちの1つにおいてレンダリングされるときに前記テキストボックスのうちの1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定する、請求項13に記載のイメージレンダリングシステム。
  18. 前記第3のルーチンが、前記ラインセグメントのうちの関連する1つの長さに沿って配向されるテキストボックスを形成することによって、前記複数のラインセグメントのそれぞれに関するテキストボックスを形成する、請求項13に記載のイメージレンダリングシステム。
  19. 前記第4のルーチンが、前記テキストボックスのそれぞれが前記関連するラインセグメントの長さの方向に前記関連するラインセグメントの範囲よりも大きい長さを有するように、前記ラインセグメントのうちの関連する1つの長さに沿って配向される前記テキストボックスのそれぞれを形成する、請求項18に記載のイメージレンダリングシステム。
  20. テキストをディスプレイ装置上のレンダリングされているイメージ内のラインに沿ってレンダリングする方法であって、
    テキスト文字列に関連する様々なテキスト文字及び前記テキスト文字列に関連する様々なテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを含むテキスト文字列ルックアップテーブルを、コンピュータメモリに格納すること、
    それに沿ってテキスト文字列がレンダリングされることになるイメージの中のラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定すること、
    前記複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれが前記イメージの中の関連するラインセグメントに沿った直立位置にテキストを描くように配向されているテキストボックスを形成すること、及び
    前記テキスト文字列の中の各テキスト文字に関して、
    前記テキスト文字列の前記テキスト文字をレンダリングする前記テキストボックスのうちの1つを選択すること、
    前記テキスト文字列ルックアップテーブルから前記エンコーディングデータを読み出し、前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定すること、
    前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となる場合に、前記テキストボックスのうちの前記選択された1つを用いて前記ディスプレイ装置上の前記イメージの中の前記テキスト文字をレンダリングすること、若しくは、前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記テキストボックスのうちの前記選択された1つとして前記複数のテキストボックスのうちの異なる1つを選択すること、
    を含む、方法。
  21. 前記テキスト文字のうちの1つに関する前記テキスト文字列ルックアップテーブルから前記エンコーディングデータを読み出すことが、前記テキスト文字列の長さに沿った方向の前記テキスト文字のうちの1つの中央位置を指定するエンコーディングデータを読み出すことを含む、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  22. 前記テキスト文字のうちの1つに関する前記テキスト文字列ルックアップテーブルから前記エンコーディングデータを読み出すことが、前記テキスト文字列の長さに沿った前記テキスト文字のうちの1つの幅を指定するエンコーディングデータを読み出すことを含む、請求項21に記載のラインに沿ってテキストをレンダリングする方法。
  23. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記複数のラインセグメントのうちの関連する1つの長さに沿って配向される各テキストボックスを形成することを含む、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  24. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、前記ラインセグメントのうちの関連する1つの長さに沿って配向され、且つ前記関連するラインセグメントの長さの方向に前記関連するラインセグメントの範囲よりも大きい長さを有する各テキストボックスを形成することを含む、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  25. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、各テキストボックスを、前記ラインセグメントの始まりの前に前記各テキストボックスの始まりが前記関連するラインセグメントの長さの方向に所定の距離だけ延びるように、且つ前記各テキストボックスの終わりが前記ラインセグメントの方向に前記関連するラインセグメントの終わりを越えて所定の距離だけ延びるように形成することを含む、請求項24に記載のラインに沿ってテキストをレンダリングする方法。
  26. 前記所定の距離が、前記テキストボックスにおいて形成されるときの前記テキスト文字列に関連する前記様々なテキスト文字のうちの1つの幅の半分である、請求項25に記載のラインに沿ってテキストをレンダリングする方法。
  27. 前記複数のラインセグメントのそれぞれに関するテキストボックスを形成することが、各テキストボックスを、前記テキストボックスの高さが関連するラインセグメントの方向に直交して所定の距離だけ延びるように形成することを含む、請求項25に記載のラインに沿ってテキストをレンダリングする方法。
  28. 前記テキストボックスの高さが、前記テキストボックスにおいて形成されるときの前記テキスト文字列に関連する前記様々なテキスト文字のうちの1つの高さである、請求項27に記載のラインに沿ってテキストをレンダリングする方法。
  29. 前記テキスト文字列ルックアップテーブルをコンピュータメモリに格納することが、前記テキスト文字列に関連する前記様々なテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを前記テキスト文字列のピクセルの各列に関するピクセル値として格納することを含む、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  30. 前記テキスト文字列ルックアップテーブルをコンピュータメモリに格納することが、前記テキスト文字列に関連する前記様々なテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを前記テキスト文字列のピクセルの各列に関するピクセル値として格納することを含み、テキスト文字の中央位置を定義するのに特定のピクセル値が用いられ、テキスト文字の各ピクセル列での前記テキスト文字の中央位置との距離を示すのに前記特定のピクセル値から増分又は減分されるピクセル値が用いられる、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  31. 前記テキスト文字列ルックアップテーブルをコンピュータメモリに格納することが、前記テキスト文字列ルックアップテーブルにグリフのフィールド内の一組のグリフを格納すること、及び前記テキスト文字列内の各テキスト文字に関するさらなるエンコーディングデータを格納することを含み、前記さらなるエンコーディングデータが、前記テキスト文字列内の位置で前記テキスト文字として用いる前記グリフのうちの1つを参照する、請求項20に記載のラインに沿ってテキストをレンダリングする方法。
  32. 前記エンコーディングデータ及び前記さらなるエンコーディングデータを、前記テキスト文字列ルックアップテーブルの中の場所によって互いに関連付けられるものとして格納することを含む、請求項31に記載のラインに沿ってテキストをレンダリングする方法。
  33. マップイメージレンダリングシステムであって、
    マップ関連のベクトルイメージデータを格納するデータベースであり、前記ベクトルイメージデータが、1つ又は複数のイメージオブジェクトを定義するデータと、1つ又は複数のテキスト文字列ルックアップテーブルを含み、前記テキスト文字列ルックアップテーブルのうちの1つが、レンダリングされるべき少なくとも1つのテキスト文字列に関連するテキスト文字を、一組のピクセル化されたテキスト文字及び前記テキスト文字列に関連する複数のテキスト文字のそれぞれの中央位置を定義するエンコーディングデータとして格納する、データベースと、
    前記マップ関連のベクトルイメージデータを用いるために、及び前記マップ関連のベクトルイメージデータを用いてマップイメージをレンダリングするために前記データベースに通信可能に結合されるマップイメージレンダリング装置と、
    を備え、前記マップイメージレンダリング装置が、
    プロセッサと、
    前記プロセッサに結合されるメモリと、
    前記プロセッサに結合されるディスプレイ装置と、
    前記メモリ上に格納される1つ又は複数のアプリケーションと、
    を含み、前記アプリケーションが、前記プロセッサ上で実行されるときに、
    それに沿ってテキスト文字列がレンダリングされることになるラインに関連する複数のラインセグメント及び各ラインセグメントに関連する範囲を判定し、
    前記複数のラインセグメントのそれぞれに関するテキストボックスであり、それぞれがイメージの中の関連するラインセグメントに沿った直立位置にテキストを描くように配向されており、且つ前記関連するラインセグメントの範囲によって定義される一組の範囲値を有する、テキストボックスを形成し、
    前記テキスト文字列の中の各テキスト文字に関して、
    (1)前記テキスト文字列ルックアップテーブルからエンコーディングデータを読み出し、
    (2)前記テキスト文字が前記イメージ上でレンダリングされるときに前記テキスト文字の中央位置が入ることになる範囲値を有する前記テキストボックスを判定し、
    (3)前記テキストボックスのうちの判定された1つを用いて前記ディスプレイ装置上のイメージの一部として前記テキスト文字をレンダリングする、
    マップイメージレンダリングシステム。
  34. 前記エンコーディングデータがさらに、前記テキスト文字列に関連する前記テキスト文字のそれぞれの幅を定義する、請求項33に記載のマップイメージレンダリングシステム。
  35. 前記1つ又は複数のアプリケーションが、前記ラインセグメントのうちの関連する1つの長さに沿って配向され、且つ前記関連するラインセグメントの長さの方向に前記関連するラインセグメントの範囲よりも大きい長さを有する前記テキストボックスのそれぞれを形成することによって前記複数のラインセグメントのそれぞれに関するテキストボックスを形成する1つ又は複数のイメージシェーダを含む、請求項33に記載のマップイメージレンダリングシステム。
  36. 前記1つ又は複数のイメージシェーダが、前記複数のラインセグメントのそれぞれに関するテキストボックスを、前記ラインセグメントの始まりの前に前記各テキストボックスの始まりが前記関連するラインセグメントの長さの方向に所定の距離だけ延びるように、且つ前記テキストボックスの終わりが前記ラインセグメントの方向に前記ラインセグメントの終わりを越えて所定の距離だけ延びるように形成する、請求項35に記載のマップイメージレンダリングシステム。
  37. 前記テキスト文字列ルックアップテーブルのうちの1つが、前記テキスト文字列に関連する前記テキスト文字のそれぞれの中央位置を定義する前記エンコーディングデータを前記テキスト文字列のピクセルの各列に関するピクセル値として格納し、テキスト文字の中央位置を定義するのに特定のピクセル値が用いられ、テキスト文字の各ピクセル列での前記テキスト文字の中央位置との距離を示すために前記特定のピクセル値から他のピクセル値が増分又は減分される、請求項33に記載のマップイメージレンダリングシステム。
  38. 前記テキスト文字列ルックアップテーブルのうちの1つが、前記テキスト文字列ルックアップテーブルにグリフのフィールド内の一組のグリフをさらに格納し、前記テキスト文字列に関連する各テキスト文字に関するさらなるエンコーディングデータを格納し、前記さらなるエンコーディングデータが、前記テキスト文字列内の位置で前記テキスト文字として用いる前記グリフのうちの1つを参照する、請求項33に記載のマップイメージレンダリングシステム。
  39. 前記1つ又は複数のイメージシェーダが、
    前記テキスト文字列の前記テキスト文字をレンダリングする前記テキストボックスのうちの1つを選択し、
    前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となるかどうかを判定し、
    前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内となる場合に、前記テキストボックスのうちの前記選択された1つを用いて前記ディスプレイ装置上の前記イメージの中の前記テキスト文字をレンダリングし、若しくは、前記テキスト文字の中央位置が前記テキストボックスのうちの前記選択された1つにおいてレンダリングされるときに前記テキストボックスのうちの前記選択された1つに関連する前記ラインセグメントの前記範囲内とならない場合に、前記テキストボックスのうちの前記選択された1つとして前記複数のテキストボックスのうちの異なる1つを選択すること、
    によって、前記テキスト文字が前記イメージ上でレンダリングされるときに前記テキスト文字の中央位置が入ることになる範囲値を有する前記テキストボックスを判定する、請求項33に記載のマップイメージレンダリングシステム。
  40. ディスプレイ装置上のテキストイメージをレンダリングするためのコンピュータで実施される方法であって、
    コンピュータ装置を用いて、イメージにおいてレンダリングされるべきイメージルックアップテーブル内の一組のピクセル化されたテキスト文字として格納されるテキスト文字列を判定すること、
    前記コンピュータ装置を用いて、前記イメージ内の特定の位置でのレンダリングのために解析するのに前記イメージルックアップテーブル内に格納される場合の前記テキスト文字列のテキスト文字に関連する1つ又は複数の位置でピクセルを判定すること、
    前記コンピュータ装置を用いて、前記イメージルックアップテーブル内の前記テキスト文字の中央位置を判定するために前記テキスト文字列の前記テキスト文字に関連するエンコーディングデータを前記イメージルックアップテーブルから読み出すこと、
    前記コンピュータ装置を用いて、前記イメージルックアップテーブル内の前記テキスト文字の中央位置の場所に基づいて前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字内の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングすること、
    を含む、方法。
  41. 前記イメージルックアップテーブル内の前記テキスト文字の中央位置の場所に基づいて前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字内の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングすることが、前記テキスト文字の中央位置が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの範囲内となるかどうかを判定し、前記テキスト文字の中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲内となるときに前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字内の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングすることを含む、請求項40に記載のコンピュータで実施される方法。
  42. 前記テキスト文字の中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲外となるときに、前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字内の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングしないことをさらに含む、請求項40に記載のコンピュータで実施される方法。
  43. 前記テキスト文字に関連するエンコーディングデータを読み出すことが、前記テキスト文字の幅を指定するエンコーディングデータを読み出すことを含む、請求項40に記載のコンピュータで実施される方法。
  44. 前記テキスト文字に関連するエンコーディングデータを読み出すことが、前記テキスト文字のピクセルの特定の列に関して格納されたエンコーディングデータを読み出すことを含み、前記エンコーディングデータが、前記テキスト文字のピクセルの特定の列から前記テキスト文字の中央でのピクセルの列までの距離を指定する、請求項40に記載のコンピュータで実施される方法。
  45. 前記テキスト文字に関連するエンコーディングデータを読み出すことが、前記イメージルックアップテーブルに格納された前記テキスト文字列の前記テキスト文字のピクセルに隣接する位置での前記イメージルックアップテーブルに格納されたエンコーディングデータを読み出すことを含む、請求項40に記載のコンピュータで実施される方法。
  46. 前記テキスト文字列の前記テキスト文字が、前記イメージルックアップテーブルにピクセルのフィールドとして格納され、前記ピクセルのフィールドが、前記テキスト文字列の前記テキスト文字に関するピクセルの複数の行及びピクセルの複数の列を有し、前記エンコーディングデータが、前記ピクセルのフィールドに隣接するエンコーディングデータの行として格納され、前記イメージルックアップテーブル内のテキスト文字の中央位置を判定するために前記テキスト文字列の前記テキスト文字に関連する前記エンコーディングデータを読み出すことが、前記テキスト文字のピクセルの特定の列と同じ列にあるエンコーディングデータの行における位置から前記テキスト文字のピクセルの特定の列に関するエンコーディングデータを読み出すことを含む、請求項40に記載のコンピュータで実施される方法。
  47. 前記イメージルックアップテーブルが二次元テクスチャマップである、請求項40に記載のコンピュータで実施される方法。
  48. イメージレンダリングエンジンであって、
    プロセッサと、
    前記プロセッサに結合されるメモリと、
    前記プロセッサに結合されるディスプレイ装置と、
    一組のピクセル化されたテキスト文字として格納される少なくとも1つのテキスト文字列のテキスト文字を含み、且つ、前記テキスト文字列に関連する複数のテキスト文字のそれぞれの中央位置を定義するエンコーディングデータを含む、前記メモリに格納されるテキスト文字列ルックアップテーブルと、
    前記テキスト文字列ルックアップテーブルから前記テキスト文字列内の前記テキスト文字のうちの1つに関連する1つ又は複数のピクセルを読み出し、且つ前記テキスト文字列ルックアップテーブルから前記テキスト文字のうちの1つに関連する前記エンコーディングデータを読み出すように前記プロセッサ上で実行する、前記メモリに格納される第1のルーチンと、
    前記テキスト文字のうちの1つに関連する前記エンコーディングデータを用いて前記テキスト文字列ルックアップテーブル内に格納される場合の前記テキスト文字のうちの1つの中央を判定するように前記プロセッサ上で実行する、前記メモリに格納される第2のルーチンと、
    を備えるイメージレンダリングエンジン。
  49. 前記テキスト文字列ルックアップテーブル内の前記テキスト文字のうちの1つの中央位置の場所を定義するエンコーディングデータに基づく前記ディスプレイ装置上のイメージ内の特定の位置での前記テキスト文字列の前記テキスト文字のうちの1つの中の1つ又は複数の位置にあるピクセルをレンダリングするように前記プロセッサ上で実行する、前記メモリに格納される第3のルーチンをさらに含む、請求項48に記載のイメージレンダリングエンジン。
  50. 前記第3のルーチンが、前記テキスト文字のうちの1つの中央位置が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの範囲内となるかどうかを判定すること、及び前記テキスト文字のうちの1つの中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲内となるときに前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字のうちの1つの中の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングすることによって、前記テキスト文字列ルックアップテーブル内の前記テキスト文字のうちの1つの中央位置の場所に基づく前記イメージ内の特定の位置での前記テキスト文字列の前記テキスト文字のうちの1つの中の前記1つ又は複数の位置に位置する前記ピクセルをレンダリングする、請求項49に記載のイメージレンダリングエンジン。
  51. 前記各テキスト文字に関連する前記エンコーディングデータが、前記テキスト文字の幅を指定するエンコーディングデータを含む、請求項48に記載のイメージレンダリングエンジン。
  52. 前記各テキスト文字に関連する前記エンコーディングデータが、前記エンコーディングデータのピクセル列から関連するテキスト文字の中央ピクセル列までの距離を指定する前記各テキスト文字の一組の各ピクセル列でのエンコーディングデータを含む、請求項48に記載のイメージレンダリングエンジン。
  53. 前記テキスト文字ルックアップテーブルにおける各テキスト文字に関連する前記エンコーディングデータが、それに前記エンコーディングデータが関連付けられる前記テキスト文字のピクセルに隣接する前記テキスト文字列ルックアップテーブルの中の位置に格納されるエンコーディングデータを含む、請求項48に記載のイメージレンダリングエンジン。
  54. 前記テキスト文字ルックアップテーブルにおける各テキスト文字に関連する前記エンコーディングデータが、前記テキスト文字のピクセルの特定の列と同じ前記テキスト文字列ルックアップテーブルの列に格納された前記テキスト文字のピクセルの特定の列に関するエンコーディングデータを含む、請求項53に記載のイメージレンダリングエンジン。
  55. 前記テキスト文字が、前記テキスト文字列ルックアップテーブルにピクセルのフィールドとして格納され、前記ピクセルのフィールドが、前記テキスト文字列の前記テキスト文字に関するピクセルの複数の行及びピクセルの複数の列を有し、前記エンコーディングデータが、前記テキスト文字のピクセルの特定の列に関する前記エンコーディングデータが前記ピクセルの特定の列と同じピクセルの列に格納されるように、前記ピクセルのフィールドに隣接するエンコーディングデータの行として格納される、請求項48に記載のイメージレンダリングエンジン。
  56. 前記テキスト文字列ルックアップテーブルが、テキスト文字列としてレンダリングされるべき複数のテキスト文字を含み、各テキスト文字が、前記テキスト文字列ルックアップテーブルに、各テキスト文字に関するピクセルの複数の行及び複数の列を有するピクセルのフィールドとして格納され、エンコーディングデータが、前記特定のテキスト文字に関するピクセルのフィールドに隣接して前記特定のテキスト文字に関する前記テキスト文字列ルックアップテーブルに格納される、請求項48に記載のイメージレンダリングエンジン。
  57. 前記各テキスト文字に関する前記エンコーディングデータが、前記各テキスト文字に関するピクセルのフィールドよりも上の行に格納される、請求項56に記載のイメージレンダリングエンジン。
  58. 前記テキスト文字列の中の前記テキスト文字が、ピクセルのフィールドの単一のラインとして格納され、各テキスト文字に関するピクセルのフィールドが、前記テキスト文字列ルックアップテーブルにおける少なくとも1つの共通の行を共有するが、ピクセルのいかなる重なり合った列も有さない、請求項56に記載のイメージレンダリングエンジン。
  59. 前記テキスト文字列の中の前記テキスト文字が、ピクセルのフィールドの2つ以上のラインとして格納され、同じラインにおける各テキスト文字に関するピクセルのフィールドが、前記イメージルックアップテーブルにおける少なくとも1つの共通のピクセル行を共有するが、いかなる重なり合ったピクセル列も有さず、ピクセルのフィールドの異なるラインにおけるテキスト文字が、前記テキスト文字列ルックアップテーブルのいかなるピクセル行も共有しない、請求項56に記載のイメージレンダリングエンジン。
  60. 前記ピクセルのフィールドのラインのうちの第1のラインにおける少なくとも1つのテキスト文字に関するピクセルのフィールドが、前記ピクセルのフィールドのラインのうちの第2のラインにおける異なるテキスト文字に関するピクセル列と重なり合ったピクセル列を含む、請求項59に記載のイメージレンダリングエンジン。
  61. 前記少なくとも1つのテキスト文字と前記異なるテキスト文字が、前記テキスト文字列の中の隣接するテキスト文字である、請求項60に記載のイメージレンダリングエンジン。
  62. テキスト文字列ルックアップテーブルを作成する方法であって、
    各テキスト文字に関する複数のピクセルがメモリに格納されるように、テキスト文字列の一組のテキスト文字を一組のピクセル化されたテキスト文字として、テキスト文字列ルックアップテーブルを定義するメモリ位置でコンピュータメモリに格納すること、
    前記テキスト文字列の前記テキスト文字の組のそれぞれの中央位置を定義する各テキスト文字に関するエンコーディングデータを、前記テキスト文字列ルックアップテーブルを定義するメモリ位置で前記コンピュータメモリに格納すること、
    を含み、前記テキスト文字の組のそれぞれに関する前記エンコーディングデータが、それに前記エンコーディングデータが関連付けられる前記テキスト文字のピクセルと共に前記テキスト文字列ルックアップテーブルを定義するメモリ内の場所に調整されている、方法。
  63. 前記各テキスト文字に関するエンコーディングデータを格納することが、各テキスト文字の幅を指定するエンコーディングデータを格納することを含む、請求項62に記載の方法。
  64. 前記各テキスト文字に関するエンコーディングデータを格納することが、各テキスト文字の一組の異なる各ピクセル位置での前記テキスト文字の中央との距離を指定するエンコーディングデータを格納することを含む、請求項62に記載の方法。
  65. 前記各テキスト文字に関するエンコーディングデータを格納することが、前記エンコーディングデータのピクセル列から前記テキスト文字の中央ピクセル列までの距離を指定する各テキスト文字の一組の各ピクセル列でのエンコーディングデータを格納することを含む、請求項62に記載の方法。
  66. 前記各テキスト文字に関するエンコーディングデータを格納することが、前記テキスト文字列ルックアップテーブルを定義するメモリの中の位置に格納されるエンコーディングデータを、それに前記エンコーディングデータが関連付けられる前記テキスト文字のピクセルに隣接して格納することを含む、請求項62に記載の方法。
  67. 前記各テキスト文字に関するエンコーディングデータを前記テキスト文字列ルックアップテーブルを定義するメモリに格納することが、前記テキスト文字のピクセルの特定の列に関するエンコーディングデータを、前記テキスト文字のピクセルの特定の列と同じ前記テキスト文字列ルックアップテーブルを定義するメモリの列に格納することを含む、請求項66に記載の方法。
  68. 前記テキスト文字列のテキスト文字の組を一組のピクセル化されたテキスト文字として前記テキスト文字列ルックアップテーブルを定義するメモリに格納することが、前記テキスト文字を、前記テキスト文字列ルックアップテーブルを定義するメモリにピクセルのフィールドとして格納することを含み、前記ピクセルのフィールドが、前記テキスト文字列の前記テキスト文字に関するピクセルの複数の行及びピクセルの複数の列を有し、前記エンコーディングデータを格納することが、テキスト文字のピクセルの特定の列に関する前記エンコーディングデータが前記ピクセルの特定の列と同じピクセルの列に格納されるように、前記エンコーディングデータを前記ピクセルのフィールドに隣接するエンコーディングデータの行として格納することを含む、請求項62に記載の方法。
  69. 前記テキスト文字列が、前記テキスト文字列としてレンダリングされるべき複数のテキスト文字を含み、各テキスト文字が、前記テキスト文字列ルックアップテーブルを定義するメモリに、各テキスト文字に関するピクセルの複数の行及び複数の列を有するピクセルのフィールドとして格納され、エンコーディングデータが、前記特定のテキスト文字に関するピクセルのフィールドに隣接して前記特定のテキスト文字に関する前記テキスト文字列ルックアップテーブルに格納される、請求項62に記載の方法。
  70. 前記各テキスト文字に関する前記エンコーディングデータが、前記各テキスト文字に関するピクセルのフィールドよりも上の行に格納される、請求項69に記載の方法。
  71. 前記テキスト文字列の中の前記テキスト文字が、ピクセルのフィールドの単一のラインに格納され、各テキスト文字に関するピクセルのフィールドが、前記テキスト文字列ルックアップテーブルを定義するメモリにおける少なくとも1つの共通の行を共有するが、ピクセルのいかなる重なり合った列も有さない、請求項69に記載の方法。
  72. 前記テキスト文字列の中の前記テキスト文字が、ピクセルのフィールドの2つ以上のラインに格納され、同じラインにおける各テキスト文字に関するピクセルのフィールドが、前記イメージルックアップテーブルにおける少なくとも1つの共通のピクセル行を共有するが、いかなる重なり合ったピクセル列も有さず、ピクセルのフィールドの異なるラインにおけるテキスト文字が、前記テキスト文字列ルックアップテーブルのいかなるピクセル行も共有しない、請求項69に記載の方法。
  73. ピクセルのフィールドのラインのうちの1つにおける少なくとも1つのテキスト文字に関するピクセルのフィールドが、前記ピクセルのフィールドの別のラインにおける異なるテキスト文字に関するピクセル列と重なり合ったピクセル列を含む、請求項72に記載の方法。
  74. 前記少なくとも1つのテキスト文字と前記異なるテキスト文字が、前記テキスト文字列の中の隣接するテキスト文字である、請求項73に記載の方法。
  75. ディスプレイ装置上のテキストイメージをレンダリングするためのコンピュータで実施される方法であって、
    コンピュータ装置を用いて、イメージにおいてレンダリングされるべきテキスト文字列に関連する1つ又は複数のテキスト文字に関する一組のエンコードされたデータを有するイメージルックアップテーブルにアクセスすること、
    コンピュータ装置を用いて、前記テキスト文字列に関連する前記テキスト文字のうちの1つに関する第1の及び第2のエンコーディングデータであり、前記テキスト文字のうちの1つに関する第1のエンコーディングデータが、前記テキスト文字列の中の前記テキスト文字の位置に関する情報を定義し、前記テキスト文字のうちの1つに関する第2のエンコーディングデータが、前記テキスト文字のうちの1つに関するレンダリングされるべき前記イメージを定義する一組のピクセル値を格納する前記イメージルックアップテーブルにおけるピクセルのフィールドへの参照を定義する、第1の及び第2のエンコーディングデータを判定するために、前記イメージルックアップテーブルからエンコードされたデータの組を読み出すこと、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの1つに関するピクセルの参照されたフィールドから、前記イメージ内の特定の位置でのレンダリングのために解析するのに前記イメージルックアップテーブル内に格納される場合の前記テキスト文字のうちの1つに関するピクセル値を判定すること、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの1つに関する前記第1のエンコーディングデータに基づいて前記テキスト文字のうちの1つに関する前記第2のエンコーディングデータによって定義される前記ピクセルのフィールドに格納された前記テキスト文字のうちの1つの中央位置を判定すること、
    前記コンピュータ装置を用いて、前記テキスト文字のうちの1つの中央位置の場所に基づいて前記イメージ内の特定の位置で前記テキスト文字のうちの1つのピクセルをレンダリングすること、
    を含む、方法。
  76. 前記テキスト文字のうちの1つの中央位置の場所に基づいて前記イメージ内の特定の位置で前記テキスト文字のうちの1つのピクセルをレンダリングすることが、前記テキスト文字のうちの1つの中央位置が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの範囲内となるかどうかを判定すること、及び前記テキスト文字のうちの1つの中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲内となるときに前記イメージ内の特定の位置で前記テキスト文字のうちの1つのピクセルをレンダリングすることを含む、請求項75に記載のコンピュータで実施される方法。
  77. 前記テキスト文字のうちの1つの中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲外となるときに、前記イメージ内の特定の位置で前記テキスト文字のうちの1つのピクセルをレンダリングしないことをさらに含む、請求項75に記載のコンピュータで実施される方法。
  78. 前記エンコーディングデータの組を読み出すことが、前記テキスト文字の幅を指定する前記第1のエンコーディングデータを読み出すことを含む、請求項75に記載のコンピュータで実施される方法。
  79. 前記エンコーディングデータの組を読み出すことが、前記テキスト文字のうちの1つのピクセルの特定の列に関して格納された前記第1のエンコーディングデータを読み出すことを含み、前記第1のエンコーディングデータが、前記テキスト文字のうちの1つのピクセルの特定の列から前記テキスト文字のうちの1つの中央でのピクセルの列までの距離を指定する、請求項75に記載のコンピュータで実施される方法。
  80. 前記エンコーディングデータの組を読み出すことが、前記第2のエンコーディングデータに隣接する位置で前記イメージルックアップテーブルに格納された前記第1のエンコーディングデータを読み出すことを含む、請求項75に記載のコンピュータで実施される方法。
  81. 前記エンコーディングデータの組を読み出すことが、前記イメージルックアップテーブルの複数の列のそれぞれに関して、列の場所から前記テキスト文字のうちの1つの中央の列の場所までの距離を定義する第1のエンコーディングデータ情報を有する前記イメージルックアップテーブルの行に格納された前記第1のエンコーディングデータを読み出すことを含む、請求項75に記載のコンピュータで実施される方法。
  82. 前記エンコーディングデータの組を読み出すことが、前記第1のエンコーディングデータの行に関連する前記イメージルックアップテーブルの行から前記第2のエンコーディングデータを読み出すことを含み、前記第2のエンコーディングデータが、前記第1のエンコーディングデータの列のうちの1つに対して固定の場所を有する、請求項81に記載のコンピュータで実施される方法。
  83. 前記エンコーディングデータの組を読み出すことが、前記第1のエンコーディングデータの行に関連する前記イメージルックアップテーブルの行から前記第2のエンコーディングデータを読み出すことを含み、前記第2のエンコーディングデータが、前記第1のエンコーディングデータが前記テキスト文字の中央列を示す前記イメージルックアップテーブルの列で始まる、請求項81に記載のコンピュータで実施される方法。
  84. 前記テキスト文字のうちの1つに関する前記第1のエンコーディングデータが、前記イメージルックアップテーブルの複数の列にわたるエンコーディングデータの第1の行に格納され、前記テキスト文字のうちの1つに関する前記第2のエンコーディングデータが、前記第1のエンコーディングデータによって用いられる前記イメージルックアップテーブルの複数の列のサブセットを定義する前記テキストイメージルックアップテーブルの複数の列にわたるエンコーディングデータの第2の行に格納され、前記テキスト文字のうちの1つの中央位置を判定するために前記テキスト文字のうちの1つに関連する第1のエンコーディングデータを読み出すことが、前記テキスト文字のうちの1つの前記第2のエンコーディングデータによって定義されるピクセルのフィールドに位置する前記テキスト文字のうちの1つのピクセルの特定の列に関する第1のエンコーディングデータを読み出すことを含む、請求項75に記載のコンピュータで実施される方法。
  85. 前記イメージルックアップテーブルが二次元テクスチャマップである、請求項75に記載のコンピュータで実施される方法。
  86. イメージレンダリングエンジンであって、
    プロセッサと、
    前記プロセッサに結合されるメモリと、
    前記プロセッサに結合されるディスプレイ装置と、
    一組のグリフ及びエンコーディングデータの1つ又は複数のセクションを含む、前記メモリに格納されるテキスト文字列ルックアップテーブルであり、各グリフが、テキスト文字に関連する表示できるイメージを定義するピクセルのフィールドとして格納され、前記エンコーディングデータの各セクションが、イメージにおいてレンダリングされるべきテキスト文字列を定義し、前記エンコーディングデータの各セクションが、文字エンコーディングデータの1つ又は複数の組を含み、前記文字エンコーディングデータの各組が、前記テキスト文字列の中の特定のテキスト文字の位置に関する情報を定義する第1のエンコーディングデータと、前記テキスト文字列の中の特定のテキスト文字の識別情報を定義するために前記グリフのうちの1つへの参照を定義する第2のエンコーディングデータとを含む、テキスト文字列ルックアップテーブルと、
    イメージにおいてレンダリングされるべきテキスト文字列内のテキスト文字に関連するグリフと共に格納される1つ又は複数のピクセルの位置を判定するためにテキスト文字に関する文字エンコーディングデータの特定の組の前記第1の及び第2のエンコーディングデータを読み出すように前記プロセッサ上で実行する、前記メモリに格納されるルーチンと、
    を備える、イメージレンダリングエンジン。
  87. 前記ルーチンが、前記文字エンコーディングデータの特定の組に関連する前記第1のエンコーディングデータを用いて前記第2のエンコーディングデータによって参照される前記グリフのテキスト文字の中央を判定する、請求項86に記載のイメージレンダリングエンジン。
  88. 前記第2のエンコーディングデータによって参照される前記テキスト文字の中央位置の場所を定義する前記第1のエンコーディングデータに基づいて前記ディスプレイ装置上の前記イメージ内の特定の位置で前記グリフのうちの1つのピクセルのフィールド内の1つ又は複数の位置にあるピクセルをレンダリングするように前記プロセッサ上で実行する、前記メモリに格納されるさらなるルーチンを含む、請求項86に記載のイメージレンダリングエンジン。
  89. 前記さらなるルーチンが、前記テキスト文字の中央位置が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの範囲内となるかどうかを判定すること、及び前記テキスト文字の中央が前記イメージ上の前記テキストボックスにおいてレンダリングされるときに前記テキストボックスの前記範囲内となるときに前記イメージ内の特定の位置で前記グリフのうちの1つのピクセルのフィールド内の1つ又は複数の位置に位置する前記ピクセルをレンダリングすることによって、第1のエンコーディングデータに基づいて前記イメージ内の特定の位置で前記グリフのうちの1つのピクセルのフィールド内の1つ又は複数の位置に位置する前記ピクセルをレンダリングする、請求項88に記載のイメージレンダリングエンジン。
  90. 前記第1のエンコーディングデータが、グリフによって定義されるテキスト文字の幅を指定するエンコーディングデータを含む、請求項86に記載のイメージレンダリングエンジン。
  91. 特定のテキスト文字に関する前記第1のエンコーディングデータが、前記第1のエンコーディングデータのピクセル列から前記特定のテキスト文字に関する前記第2のエンコーディングデータによって参照される前記グリフによって定義される特定のテキスト文字の中央ピクセル列までの距離を指定する特定のテキスト文字に関する一組の各ピクセル列での第1のエンコーディングデータを含む、請求項86に記載のイメージレンダリングエンジン。
  92. 前記テキスト文字列の中の各テキスト文字の前記第1のエンコーディングデータが、前記各テキスト文字の前記第2のエンコーディングデータに隣接する前記テキスト文字列ルックアップテーブルの中の位置に格納される、請求項86に記載のイメージレンダリングエンジン。
  93. 前記エンコーディングデータの組のセクションのうちの1つの前記テキスト文字のうちの1つの前記第2のエンコーディングデータが、前記エンコーディングデータの組のセクションのうちの1つの異なる前記テキスト文字のうちの1つの前記第2のエンコーディングデータと同じグリフを指す、請求項86に記載のイメージレンダリングエンジン。
  94. 前記エンコーディングデータの組のセクションのうちの1つの前記テキスト文字のうちの1つの前記第2のエンコーディングデータが、前記エンコーディングデータの組のセクションの次の1つの前記テキスト文字のうちの1つの前記第2のエンコーディングデータと同じグリフを指す、請求項86に記載のイメージレンダリングエンジン。
  95. 前記エンコーディングデータのセクションの組のそれぞれが、前記テキスト文字列ルックアップテーブルの複数の列のそれぞれに関して、列の場所から前記第2のエンコーディングデータによって参照される前記テキスト文字のピクセル列の中央の列の場所までの前記距離を定義する前記テキスト文字列ルックアップテーブルの行に格納された前記第1のエンコーディングデータを含む、請求項86に記載のイメージレンダリングエンジン。
  96. 前記エンコーディングデータの組のセクションのそれぞれが、前記第1のエンコーディングデータの列のうちの1つに対して前記テキスト文字列ルックアップテーブルにおける固定の場所に格納される前記第2のエンコーディングデータを含む、請求項95に記載のイメージレンダリングエンジン。
  97. 前記第2のエンコーディングデータが、前記テキスト文字の中央位置となる前記第1のエンコーディングデータによって示される列で前記テキスト文字列ルックアップテーブルの列の場所で始まる格納される、請求項96に記載のイメージレンダリングエンジン。
  98. 前記テキスト文字のうちの1つに関する前記第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルの複数の列にわたるエンコーディングデータの第1の行に格納され、前記テキスト文字のうちの1つに関する前記第2のエンコーディングデータが、前記第1のエンコーディングデータによって用いられる前記文字列ルックアップテーブルの複数の列のサブセットを定義する前記テキスト文字列ルックアップテーブルの複数の列にわたるエンコーディングデータの第2の行に格納され、前記テキスト文字のうちの1つに関する前記第1のエンコーディングデータが、前記テキスト文字のうちの1つの前記第2のエンコーディングデータによって定義される前記グリフのピクセルのフィールドに位置する前記テキスト文字のうちの1つの中央位置を定義する、請求項86に記載のイメージレンダリングエンジン。
  99. 前記各テキスト文字に関する第1のエンコーディングデータが、前記各テキスト文字に関する第2のエンコーディングデータよりも上の前記テキスト文字列ルックアップテーブルの行に格納される、請求項86に記載のイメージレンダリングエンジン。
  100. 前記エンコーディングデータのセクションのうちの1つに関する文字エンコーディングデータの組が、文字エンコーディングデータの組の単一のラインとして格納され、前記エンコーディングデータのセクションのうちの1つの中の前記各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルにおける少なくとも1つの共通の行を共有するが、前記テキスト文字列ルックアップテーブルにおけるいかなる重なり合った列も有さない、請求項86に記載のイメージレンダリングエンジン。
  101. 前記エンコーディングデータのセクションのうちの1つに関する文字エンコーディングデータの組が、文字エンコーディングデータの組の2つ以上のラインとして格納され、前記文字エンコーディングデータの組の同じラインにおける前記各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルにおける少なくとも1つの共通の行を共有するが、前記テキスト文字列ルックアップテーブルにおけるいかなる重なり合った列も有さず、前記文字エンコーディングデータの組の異なるラインにおける各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルのいかなる行も共有しない、請求項86に記載のイメージレンダリングエンジン。
  102. 前記文字エンコーディングデータの組のラインのうちの第1のラインにおける少なくとも1つのテキスト文字に関する第1のエンコーディングデータが、前記文字エンコーディングデータの組のラインのうちの第2のラインにおける異なるテキスト文字の第1のエンコーディングデータの列と重なり合った列を含む、請求項101に記載のイメージレンダリングエンジン。
  103. 前記少なくとも1つのテキスト文字と前記異なるテキスト文字が、前記エンコーディングデータのセクションによって定義される前記テキスト文字列の中の隣接するテキスト文字である、請求項101に記載のイメージレンダリングエンジン。
  104. テキスト文字列ルックアップテーブルを作成する方法であって、
    一組のグリフを、前記テキスト文字列ルックアップテーブルを定義するメモリ位置でコンピュータメモリに格納することであり、複数のピクセルが各グリフに関するメモリに格納されるように、各グリフがテキスト文字に関連する表示できるイメージを定義するピクセルのフィールドとして格納され、
    エンコーディングデータの1つ又は複数のセクションを、前記テキスト文字列ルックアップテーブルを定義するメモリ位置で前記コンピュータメモリに格納すること、
    を含み、前記エンコーディングデータの各セクションが、イメージにおいてレンダリングされるべきテキスト文字列を定義し、前記エンコーディングデータの各セクションが文字エンコーディングデータの1つ又は複数の組を含み、文字エンコーディングデータの各組が前記テキスト文字列のテキスト文字を定義し、且つ前記テキスト文字列の中のテキスト文字の位置に関する情報を定義する第1のエンコーディングデータと、前記テキスト文字列の中のテキスト文字の識別情報を定義するために前記グリフのうちの1つへの参照を定義する第2のエンコーディングデータとを含む、
    方法。
  105. 前記各テキスト文字に関する第1のエンコーディングデータを格納することが、前記テキスト文字列のテキスト文字の中央位置を定義する第1のエンコーディングデータを格納することを含み、前記文字エンコーディングデータの組のそれぞれに関する前記第1のエンコーディングデータが、前記文字エンコーディングデータの同じ組の第2のエンコーディングデータと共に前記テキスト文字列ルックアップテーブルを定義するメモリ内の場所に調整されている、請求項104に記載の方法。
  106. 前記各テキスト文字に関する第1のエンコーディングデータを格納することが、各テキスト文字の一組の異なる各ピクセル位置での前記テキスト文字の中央との距離を指定する第1のエンコーディングデータを格納することを含む、請求項104に記載の方法。
  107. 前記各テキスト文字に関する第1のエンコーディングデータを格納することが、前記エンコーディングデータのピクセル列から前記特定のテキスト文字に関する前記第2のエンコーディングデータによって参照される前記グリフによって定義される特定のテキスト文字の中央ピクセル列までの距離を指定する特定のテキスト文字に関する一組の各ピクセル列でのエンコーディングデータを格納することを含む、請求項104に記載の方法。
  108. 前記各テキスト文字に関する第1のエンコーディングデータを格納することが、前記各テキスト文字の第2のエンコーディングデータに隣接する前記テキスト文字列ルックアップテーブルの中の位置に前記テキスト文字列の中の各テキスト文字の第1のエンコーディングデータを格納することを含む、請求項104に記載の方法。
  109. 前記エンコーディングデータの組のセクションのうちの1つの前記テキスト文字のうちの1つの第2のエンコーディングデータを格納することが、前記エンコーディングデータの組のセクションのうちの1つの異なる前記テキスト文字のうちの1つの前記第2のエンコーディングデータと同じグリフを指す、請求項104に記載の方法。
  110. 前記エンコーディングデータの組のセクションのうちの1つの前記テキスト文字のうちの1つの第2のエンコーディングデータを格納することが、前記エンコーディングデータの組のセクションの次の1つの前記テキスト文字のうちの1つの前記第2のエンコーディングデータと同じグリフを指す、請求項104に記載の方法。
  111. 前記エンコーディングデータのセクションの組のそれぞれを格納することが、前記テキスト文字列ルックアップテーブルの複数の列のそれぞれに関して、前記列の場所から前記第2のエンコーディングデータによって参照される前記テキスト文字のピクセル列の中央の列の場所までの前記距離を定義する前記第1のエンコーディングデータを、前記テキスト文字列ルックアップテーブルの行に格納することを含む、請求項104に記載の方法。
  112. 前記エンコーディングデータの組のセクションのそれぞれを格納することが、前記第2のエンコーディングデータを、前記第1のエンコーディングデータの列のうちの1つに対して前記テキスト文字列ルックアップテーブルにおける固定の場所に格納することを含む、請求項111に記載の方法。
  113. 前記テキスト文字のうちの1つに関する前記第1のエンコーディングデータを格納することが、前記第1のエンコーディングデータを前記テキスト文字列ルックアップテーブルの複数の列にわたるエンコーディングデータの第1の行に格納することを含み、前記テキスト文字のうちの1つに関する前記第2のエンコーディングデータを格納することが、前記第2のエンコーディングデータを、前記第1のエンコーディングデータによって用いられる前記文字列ルックアップテーブルの複数の列のサブセットを定義する前記テキスト文字列ルックアップテーブルの複数の列にわたるエンコーディングデータの第2の行に格納することを含む、請求項104に記載の方法。
  114. 前記エンコーディングデータのセクションのうちの1つに関する文字エンコーディングデータの組を文字エンコーディングデータの組の単一のラインとして格納することをさらに含み、前記エンコーディングデータのセクションのうちの1つの中の前記各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルにおける少なくとも1つの共通の行を共有するが、前記テキスト文字列ルックアップテーブルにおけるいかなる重なり合った列も有さない、請求項104に記載の方法。
  115. 前記エンコーディングデータのセクションのうちの1つに関する文字エンコーディングデータの組を文字エンコーディングデータの組の2つ以上のラインとして格納することをさらに含み、前記文字エンコーディングデータの組の同じラインにおける前記各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルにおける少なくとも1つの共通の行を共有するが、前記テキスト文字列ルックアップテーブルにおけるいかなる重なり合った列も有さず、前記文字エンコーディングデータの組の異なるラインにおける各テキスト文字に関する第1のエンコーディングデータが、前記テキスト文字列ルックアップテーブルのいかなる行も共有しない、請求項104に記載の方法。
  116. 文字エンコーディングデータの組のラインのうちの第1のラインにおける少なくとも1つのテキスト文字に関する第1のエンコーディングデータを、前記文字エンコーディングデータの組のラインのうちの第2のラインにおける異なるテキスト文字に関する列と重なり合った列に格納することを含む、請求項104に記載の方法。
JP2014519010A 2011-06-30 2012-06-28 ラインに従うテキストイメージのレンダリング Active JP5959637B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US13/174,283 US8400453B2 (en) 2011-06-30 2011-06-30 Rendering a text image following a line
US13/174,378 2011-06-30
US13/174,283 2011-06-30
US13/174,403 US8760451B2 (en) 2011-06-30 2011-06-30 Rendering a text image using texture map character center encoding with character reference encoding
US13/174,403 2011-06-30
US13/174,378 US20130002679A1 (en) 2011-06-30 2011-06-30 Rendering a text image using texture map character center encoding
PCT/US2012/044602 WO2013003567A2 (en) 2011-06-30 2012-06-28 Rendering a text image following a line

Publications (2)

Publication Number Publication Date
JP2014521148A true JP2014521148A (ja) 2014-08-25
JP5959637B2 JP5959637B2 (ja) 2016-08-02

Family

ID=47424793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519010A Active JP5959637B2 (ja) 2011-06-30 2012-06-28 ラインに従うテキストイメージのレンダリング

Country Status (6)

Country Link
EP (1) EP2727006B1 (ja)
JP (1) JP5959637B2 (ja)
KR (1) KR102001191B1 (ja)
CN (1) CN103765413B (ja)
DE (1) DE202012013465U1 (ja)
WO (1) WO2013003567A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017010732A1 (ko) * 2015-07-10 2017-01-19 김성일 휴대단말의 화면에 문자를 표시하는 방법 및 저장매체

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105808617B (zh) * 2014-12-31 2020-02-07 高德软件有限公司 一种电子地图的生成、显示方法和装置
US20170249292A1 (en) * 2016-02-29 2017-08-31 Microsoft Technology Licensing, Llc Conditional determination of lookups in glyph processing
CN107066109A (zh) * 2016-09-10 2017-08-18 上海触乐信息科技有限公司 动态文本即时输入的方法、系统和装置
KR101887086B1 (ko) * 2017-12-15 2018-08-09 세종대학교산학협력단 무브먼트 데이터를 다방향 벡터필드에서 시각화하는 방법 및 그 장치
US11131987B2 (en) * 2018-03-15 2021-09-28 Xinxin Wang Method and system for preventing and detecting hazardously misleading information on safety-critical display
EP3879391B1 (en) * 2018-12-07 2023-12-27 Mitsubishi Electric Corporation Input display control device, input display control method, and input display system
CN111489411B (zh) * 2019-01-29 2023-06-20 北京百度网讯科技有限公司 线条绘制方法、装置、图像处理器、显卡及车辆
CN109978968B (zh) * 2019-04-10 2023-06-20 广州虎牙信息科技有限公司 运动对象的视频绘制方法、装置、设备及存储介质
CN110309824B (zh) * 2019-07-02 2021-07-02 北京百度网讯科技有限公司 文字检测方法、装置以及终端
KR102142238B1 (ko) * 2020-02-25 2020-08-07 주식회사 엔디소프트 소정 이미지에 포함된 축약어, 손글씨, 비정형 단어 및 문장과 같은 텍스트 정보를 추출한 후 그 추출 결과를 소정 언어로 자동 번역하는 방법
CN112464739B (zh) * 2020-11-05 2023-05-23 福建天泉教育科技有限公司 一种文档文本易读性评测的方法及终端

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103496A (ja) * 1992-09-18 1994-04-15 Zanabui Infuomateikusu:Kk 車載ナビゲーションシステム
JPH07182493A (ja) * 1993-11-05 1995-07-21 Philips Electron Nv 表示システム
JP2001311625A (ja) * 2000-04-28 2001-11-09 Pioneer Electronic Corp ナビゲーション装置
JP2002351311A (ja) * 2001-05-25 2002-12-06 Zenrin Co Ltd 出力制御装置及びその方法並びにコンピュータプログラム
US6803913B1 (en) * 1999-12-01 2004-10-12 Microsoft Corporation Warping text along a curved path
JP2005115174A (ja) * 2003-10-09 2005-04-28 Navitime Japan Co Ltd 地図表示装置、地図表示方法および地図表示プログラム
US20100097399A1 (en) * 2008-10-20 2010-04-22 Research In Motion Limited Method and system for rendering of labels

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58112176A (ja) * 1981-12-26 1983-07-04 Toshiba Corp 光学的文字読取装置
US4864628A (en) * 1983-08-26 1989-09-05 Texas Instruments Incorporated Method of optical character recognition
US4847604A (en) * 1987-08-27 1989-07-11 Doyle Michael D Method and apparatus for identifying features of an image on a video display
US5134663A (en) * 1991-04-19 1992-07-28 Unisys Corporation Center line magnetic ink character recognition system
DE69231923T2 (de) * 1991-09-26 2002-04-04 Mitsubishi Electric Corp System mit Annäherungsmittel zur Erkennung von graphischen Elementen in einer Zeichnung
JP2634126B2 (ja) * 1992-07-27 1997-07-23 インターナショナル・ビジネス・マシーンズ・コーポレイション グラフィックス表示方法および装置
JP3108979B2 (ja) * 1994-07-28 2000-11-13 セイコーエプソン株式会社 画像処理方法および画像処理装置
JP3345224B2 (ja) * 1995-03-06 2002-11-18 富士通株式会社 パターン抽出装置、パターン再認識用テーブル作成装置及びパターン認識装置
US5684940A (en) * 1995-03-13 1997-11-04 Rutgers, The States University Of New Jersey Computer-implemented method and apparatus for automatically labeling area regions of maps using two-step label placing procedure and for curved labeling of point features
US5793936A (en) * 1996-09-27 1998-08-11 Texas Instruments Incorporated Center-line anti-aliasing for digital printing
US6141002A (en) * 1996-11-12 2000-10-31 Opentv, Inc. System and method for downloading and rendering glyphs in a set top box
US6504545B1 (en) * 1998-03-27 2003-01-07 Canon Kabushiki Kaisha Animated font characters
US6565610B1 (en) * 1999-02-11 2003-05-20 Navigation Technologies Corporation Method and system for text placement when forming maps
US6952215B1 (en) * 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
US7305617B2 (en) * 2000-02-12 2007-12-04 Adobe Systems Incorporated Method for aligning text to baseline grids and to CJK character grids
RU2216781C2 (ru) * 2001-06-29 2003-11-20 Самсунг Электроникс Ко., Лтд Основанные на изображениях способ представления и визуализации трехмерного объекта и способ представления и визуализации анимированного объекта
US7076505B2 (en) * 2002-07-11 2006-07-11 Metrobot Llc Method, apparatus, and computer program product for providing a graphical user interface with a linear map component
US7123261B2 (en) * 2002-12-26 2006-10-17 Adobe Systems Incorporated Coordinating grid tracking and mojikumi spacing of Japanese text
US7567252B2 (en) * 2003-12-09 2009-07-28 Microsoft Corporation Optimizing performance of a graphics processing unit for efficient execution of general matrix operations
US20050190970A1 (en) * 2004-02-27 2005-09-01 Research In Motion Limited Text input system for a mobile electronic device and methods thereof
US7787708B2 (en) * 2005-06-07 2010-08-31 Ids Scheer Aktiengesellschaft Systems and methods for rendering text within symbols
US20070211062A1 (en) * 2006-03-13 2007-09-13 International Business Machines Corporation Methods and systems for rendering complex text using glyph identifiers in a presentation data stream
US8271962B2 (en) * 2006-09-12 2012-09-18 Brian Muller Scripted interactive screen media
JP2008165264A (ja) * 2006-12-26 2008-07-17 Dynacomware Taiwan Inc ネットワークを利用して多様なフォントを用いたアジアWebページ文書を編集するためのシステム及び方法
US8023725B2 (en) * 2007-04-12 2011-09-20 Samsung Electronics Co., Ltd. Identification of a graphical symbol by identifying its constituent contiguous pixel groups as characters
US7791605B2 (en) * 2007-05-01 2010-09-07 Qualcomm Incorporated Universal rasterization of graphic primitives

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06103496A (ja) * 1992-09-18 1994-04-15 Zanabui Infuomateikusu:Kk 車載ナビゲーションシステム
JPH07182493A (ja) * 1993-11-05 1995-07-21 Philips Electron Nv 表示システム
US6803913B1 (en) * 1999-12-01 2004-10-12 Microsoft Corporation Warping text along a curved path
JP2001311625A (ja) * 2000-04-28 2001-11-09 Pioneer Electronic Corp ナビゲーション装置
JP2002351311A (ja) * 2001-05-25 2002-12-06 Zenrin Co Ltd 出力制御装置及びその方法並びにコンピュータプログラム
JP2005115174A (ja) * 2003-10-09 2005-04-28 Navitime Japan Co Ltd 地図表示装置、地図表示方法および地図表示プログラム
US20100097399A1 (en) * 2008-10-20 2010-04-22 Research In Motion Limited Method and system for rendering of labels

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
亀田貴之, 外1名: ""地図における点と辺に対するラベルの自動配置"", 第15回 回路とシステム(軽井沢)ワークショップ 論文集, JPN6016018839, 23 April 2002 (2002-04-23), JP, pages 471 - 476, ISSN: 0003321739 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017010732A1 (ko) * 2015-07-10 2017-01-19 김성일 휴대단말의 화면에 문자를 표시하는 방법 및 저장매체
KR101755807B1 (ko) * 2015-07-10 2017-07-10 김성일 휴대단말의 화면에 문자를 표시하는 방법 및 저장매체
US10706211B2 (en) 2015-07-10 2020-07-07 Sung IL Kim Method and storage medium for displaying text on screen of portable terminal

Also Published As

Publication number Publication date
CN103765413A (zh) 2014-04-30
KR20140073480A (ko) 2014-06-16
WO2013003567A2 (en) 2013-01-03
CN103765413B (zh) 2018-02-16
EP2727006B1 (en) 2018-10-31
KR102001191B1 (ko) 2019-10-01
EP2727006A2 (en) 2014-05-07
WO2013003567A3 (en) 2013-04-11
DE202012013465U1 (de) 2017-01-30
JP5959637B2 (ja) 2016-08-02
EP2727006A4 (en) 2014-12-10

Similar Documents

Publication Publication Date Title
JP5959637B2 (ja) ラインに従うテキストイメージのレンダリング
US8917276B2 (en) Rendering a text image following a line
US8803901B1 (en) Map rendering using interpolation of style parameters across zoom levels
EP2761584B1 (en) Label positioning technique to reduce crawling during zoom activities
US10102663B2 (en) Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
KR101140460B1 (ko) 그래픽 시스템, 꼭지점 데이터의 타일 기반 변환 방법 및 컴퓨터 판독가능한 저장 매체
US8730258B1 (en) Anti-aliasing of straight lines within a map image
US9430866B2 (en) Derivative-based selection of zones for banded map display
US8760451B2 (en) Rendering a text image using texture map character center encoding with character reference encoding
US7884825B2 (en) Drawing method, image generating device, and electronic information apparatus
US7348996B2 (en) Method of and system for pixel sampling
US20150054841A1 (en) Image shader using style attribute references
US9672656B1 (en) Variable level-of-detail map rendering
US9286712B2 (en) System and method for approximating cartographic projections by linear transformation
US20150332481A1 (en) Indexed uniform styles for stroke rendering
KR102443697B1 (ko) 경로 스트로크를 수행하는 방법 및 장치
US20160307294A1 (en) Systems and Methods for Displaying Patterns of Recurring Graphics on Digital Maps
US9092907B2 (en) Image shader using two-tiered lookup table for implementing style attribute references
US20130002679A1 (en) Rendering a text image using texture map character center encoding

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150619

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20151013

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20151016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160516

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: 20160523

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160621

R150 Certificate of patent or registration of utility model

Ref document number: 5959637

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250