(58)【調査した分野】(Int.Cl.,DB名)
前記回路は、前記複数のオブジェクトのフォント線幅の和を前記複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算するように構成されている請求項3に記載の装置。
前記複数のオブジェクトのフォント線幅の和を前記複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算することを更に備える請求項8に記載の方法。
前記複数のオブジェクトのフォント線幅の和を前記複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算することを更に備える請求項14に記載の非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0006】
一実施の形態は、画像内のテキストの回転角を決定する装置であって、回路を備え、回路は、テキストに含まれる複数のオブジェクトの各オブジェクトに対して、最も近接するオブジェクトとの距離を計算し、最も近接するオブジェクトとの距離の平均距離を計算し、平均距離と、複数のオブジェクトの各々のフォント線幅の平均である平均フォント線幅との間の比を決定し、比と閾値とを比較することによってテキストの回転角を決定するように構成されている装置に注目する。
【0007】
一実施の形態において、回路は、各オブジェクトの外接矩形を決定するように更に構成され、外接矩形は、各オブジェクトを包囲するとともに各オブジェクトの最外部に接し、回路は、各外接矩形と最も近接する外接矩形との距離を計算することによって最も近接するオブジェクトとの距離を計算する。
【0008】
一実施の形態において、回路は、各オブジェクトに対して、画像内の各オブジェクトの印刷領域全体に対応するオブジェクト領域を決定し、各オブジェクトに対して、各オブジェクトの外周に対応するオブジェクト外周を決定し、かつ、オブジェクト領域をオブジェクト外周によって除算するとともに2を乗算することによって各オブジェクトのフォント線幅を計算するように更に構成されている。
【0009】
一実施の形態において、回路は、複数のオブジェクトのフォント線幅の和を複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算するように構成されている。
【0010】
一実施の形態において、回路は、各オブジェクトに対して最も近接するオブジェクトとの距離を計算する前に、画像内のテキストの一つ以上のテキストブロックを決定し、各テキストブロックは、複数のオブジェクトを含み、各テキストブロックに対して、テキストブロックが縦向きと横向きのいずれであるかを決定し、かつ、テキストブロックが縦向きであるという決定に応答して、テキストブロックの各オブジェクトに対して最も近接するオブジェクトとの距離を計算するように構成されている。
【0011】
一実施の形態は、画像内のテキストに含まれる複数のオブジェクトの各オブジェクトに対して、最も近接するオブジェクトとの距離を計算することと、最も近接するオブジェクトとの距離の平均距離を計算することと、平均距離と、複数のオブジェクトの各々のフォント線幅の平均である平均フォント線幅との間の比を決定することと、比と閾値とを比較することによって前記テキストの回転角を決定することと、を備える方法に注目する。
【0012】
一実施の形態において、方法は、各オブジェクトの外接矩形を決定することであって、外接矩形は、各オブジェクトを包囲するとともに各オブジェクトの最外部に接することを更に備え、最も近接するオブジェクトとの距離を計算することは、各外接矩形と最も近接するオブジェクトとの距離を計算することによって行われる。
【0013】
一実施の形態において、方法は、各オブジェクトに対して、画像内の各オブジェクトの印刷領域全体に対応するオブジェクト領域を決定することと、各オブジェクトに対して、各オブジェクトの外周に対応するオブジェクト外周を決定することと、オブジェクト領域をオブジェクト外周によって除算するとともに2を乗算することによって各オブジェクトのフォント線幅を計算することと、を更に備える。
【0014】
一実施の形態において、方法は、複数のオブジェクトのフォント線幅の和を複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算することを更に備える。
【0015】
一実施の形態において、方法は、各オブジェクトに対して最も近接するオブジェクトとの距離を計算する前に、画像内のテキストの一つ以上のテキストブロックを決定することであって、各テキストブロックは、複数のオブジェクトを含むことと、各テキストブロックに対して、テキストブロックが縦向きと横向きのいずれであるかを決定することと、テキストブロックが縦向きであるという決定に応答して、テキストブロックの各オブジェクトに対して最も近接するオブジェクトとの距離を計算することと、を更に備える。
【0016】
一実施の形態において、方法は、テキストの回転角を決定した後に光学文字認識(OCR)を行うことを更に備える。
【0017】
一実施の形態は、コンピュータで実行されるときに、画像内のテキストに含まれる複数のオブジェクトの各オブジェクトに対して、最も近接するオブジェクトとの距離を計算することと、最も近接するオブジェクトとの距離の平均距離を計算することと、平均距離と、複数のオブジェクトの各々のフォント線幅の平均である平均フォント線幅との間の比を決定することと、比と閾値とを比較することによってテキストの回転角を決定することと、を備える方法をコンピュータに実行させるコンピュータ実行可能命令を有する非一時的コンピュータ可読記憶媒体に注目する。
【0018】
一実施の形態において、非一時的コンピュータ可読記憶媒体は、各オブジェクトの外接矩形を決定することであって、外接矩形は、各オブジェクトを包囲するとともに各オブジェクトの最外部に接することを更に備え、最も近接するオブジェクトとの距離を計算することは、各外接矩形と最も近接するオブジェクトとの距離を計算することによって行われる。
【0019】
一実施の形態において、非一時的コンピュータ可読記憶媒体は、各オブジェクトに対して、前記画像内の各オブジェクトの印刷領域全体に対応するオブジェクト領域を決定することと、各オブジェクトに対して、各オブジェクトの外周に対応するオブジェクト外周を決定することと、オブジェクト領域をオブジェクト外周によって除算するとともに2を乗算することによって各オブジェクトのフォント線幅を計算することと、を更に備える。
【0020】
一実施の形態において、非一時的コンピュータ可読記憶媒体は、複数のオブジェクトのフォント線幅の和を複数のオブジェクトの総数によって除算することによって平均フォント線幅を計算することを更に備える。
【0021】
一実施の形態において、非一時的コンピュータ可読記憶媒体は、各オブジェクトに対して最も近接するオブジェクトとの距離を計算する前に、画像内のテキストの一つ以上のテキストブロックを決定することであって、各テキストブロックは、複数のオブジェクトを含むことと、各テキストブロックに対して、テキストブロックが縦向きと横向きのいずれであるかを決定することと、テキストブロックが縦向きであるという決定に応答して、テキストブロックの各オブジェクトに対して最も近接するオブジェクトとの距離を計算することと、を更に備える。
【0022】
一実施の形態において、非一時的コンピュータ可読記憶媒体は、テキストの回転角を決定した後に光学文字認識(OCR)を行うことを更に備える。
【0023】
本開示は、縦方向に流れるテキストブロックの画像内に文字(例えば、表意文字)が書かれた角度を迅速に推定又は決定する方法に注目する。このように書かれる角度を回転角と称する。回転及び向きを本開示全体に亘って区別しないで用いることがあることに留意されたい。
【0024】
図1に示すように、一実施の形態において、四つの異なる回転角が存在する。
図1Aは、0°の回転角の文字を示す。
図1Bは、90°の回転角の文字を示す。
図1Cは、180°の回転角の文字を示す。
図1Dは、270°の回転角の文字を示す。
【0025】
横方向ではなく縦方向に流れるテキストを縦向きテキストと称する。
図2は、縦向きテキストの四つの例を示す。
図2Aは、ラテン語から派生した言語のテキストが90°回転している例を示す。
図2Bは、ラテン語から派生した言語のテキストが270°回転している例を示す。
図2Cは、文字を回転させずに(0°の回転)縦向きに書かれたラテン語から派生した言語のテキストの例を示し、
図2Dは、文字を回転させずに縦向きに書かれた日本語テキストの例を示す。
【0026】
テキストが(画像の左から右までの)画像の横軸に関連して横向きであると見なすともにテキストが(画像の上から下までの)画像の縦軸に関連して縦向きであると見なしていることに留意されたい。横向きテキストの向き及び縦向きテキストの向きを
図1及び
図2に示す。縦向きテキストは、画像の縦軸に平行な画像の(上から下までの)列において分類され、それに対し、横向きテキストは、画像の横軸に平行な画像の(左から右までの)行において分類される。
【0027】
本開示は、文字の間隔の寸法及び書かれた文字の特性に基づく決定を行うことに注目する。
【0028】
回転を決定するために一つの文字ごとにOCRを行うのに所定の不都合がある。例えば、このプロセスは、低速であり、リアルタイムOCRアプリケーションに適さない。上述したように、既存の解決は、そのようなテキストの回転角を無視すること又はユーザに対して回転角を手動で指定するのを要求することである。
【0029】
上述したように、本実施の形態は、縦向きのテキストの回転角を迅速かつ自動的に推定する方法を説明する。本開示の実施の形態を、OCRプロセスを促進するために用いることができ、他のアプリケーションは、その精度をリアルタイムで向上させる。例えば、最初に、ここで説明する実施の形態を用い、その後、OCRは、(一つ以上の)文字を適切に認識するために結果を適用してもよい。換言すれば、最初に、テキストの回転角を、
図3及び
図4を参照しながら後に説明するようにして決定し、その後、OCRをテキストに適用してもよい。
【0030】
図3は、一実施の形態によるテキストブロックが縦向きであるか横向きであるかを決定するプロセスを示す。所定の画像(例えば、走査した文書の画像)が、例えば、縦向きに描かれた(書かれた)テキスト及び横向きに描かれた(書かれた)テキストを有することに留意されたい。そのような画像は、広告面、新聞面、チラシ面等又は他のタイプの面(page)/文書を表してもよい。
【0031】
したがって、一実施の形態において、先ず、ステップ100において、画像内のオブジェクト(例えば、文字(character or letter))を検出する。本開示において、オブジェクト及び文字を区別しないで用いてもよいことに留意されたい。次に、ステップ110において、オブジェクトをブロックに分割する。ブロックを、例えば、文字の任意のグループ(例えば、文、段落等)としてもよい。ブロックを、ブロック間の距離が予め決定された距離より大きいか否かに基づいて他のブロックと区別してもよい。例えば、二つの段落の間の距離は、一語の二つの文字の間の距離より著しく大きくなる。したがって、そのような距離を、ブロックのサイズを決定する際に用いる。一実施の形態において、各ブロックが異なるサイズとなってもよいことに留意されたい。一実施の形態において、(一つ以上の)一部のブロックを同一サイズにしながら(一つ以上の)他のブロックを(一つ以上の)異なるサイズにしてもよいことに留意されたい。
【0032】
一実施の形態において、ブロック間の最小距離を文字のサイズの2倍にするとともに文字の間の距離を文字のサイズの0.2倍以下にしてもよいことに留意されたい。これらの距離が画素であることに留意されたい。
【0033】
次に、ステップ120において、各ブロックに対して、角度(orientation angle)(すなわち、0°、90°、180°又は270°)を決定する。一実施の形態において、角度を、シュプリンガー(Springer−Verlag)の2010年1月16日に刊行されたBeusekom等による“Combined orientation and skew detection using geometric text−line modeling”で議論された方法を用いて決定してもよく、その全内容を参照によりここに組み込む。一実施の形態において、角度を、IEEEの2010年1月に刊行された2010 International Conference onPattern RecognitionからのIuliu Konya等による“Fast seamless skew and orientation detection in document images”で議論された方法を用いて決定してもよく、その全内容を参照によりここに組み込む。一実施の形態において、角度を、当業者に知られている(一つ以上の)他の方法によって決定してもよい。例えば、角度及び画像のスキュー角(skew angle)を検出することができる任意の方法を用いてもよい。
【0034】
簡潔に要約するために、Beusekom等で議論した方法(以下、Beusekom)は、走査した文書からテキスト行を抽出するために幾何学的整合(geometric matching)を用いる。一定のポイントに対するテキスト行モデルの整合の品質を与える品質関数が規定される。目的は、モデルに整合する境界ボックスの数を最大にするとともに最小二乗法のロバスト推定(robust least square sense)において基準値からの各基準点の距離を最小にする文書画像の各テキスト行のパラメータの集合を見つけることである。Beusekomの方法の極めて重要な考えは、モデリングディセンサー(modeling descenders)と同じようにアセンダーモデリング(ascender modeling)を用いることである。
【0035】
xライン(x,a,c等のようなアセンダーでない小文字(non−ascending lower case character)の上を通過するライン)を直線としてモデル化し、アセンダーラインを、xラインより上で所定の距離を置きながらxラインと平行となるラインとしてモデル化する。文書画像の連結部の境界ボックスの一番上のラインの真ん中をとることによって取得した基準点{y1、y2、...,yn}を考察する。テキスト行の検出の目的は、最大のセット幅を見つけることである。ラテン語から派生した言語において、スクリプトアセンダーはディセンダーより生じやすいので、構成要素は、ディセンダーラインよりアセンダーラインに整合しやすい。ディセンダー/アセンダーに整合する構成要素は、基準線/xラインに整合する構成要素に比べて少ないスコアを受け取る。したがって、一般的には、ディセンダーラインの総合的品質は、アセンダーラインの総合的品質より高くなる。この情報は、ページの上下方向を見つけるのに用いられる。
【0036】
Beusekomの方法において、ディセンダーモデルを用いてn個のベストライン(best line)の総合的品質を計算し、その後、アセンダーモデルを用いてn個のベストラインの総合的品質を計算する。アセンダーモデルの品質がディセンダーモデルの品質より高い場合、ページは、上下逆(180°回転)と報告される。正確な向きの所定のページ画像のアセンダーモデルを計算することは、180°回転したページのディセンダーモデルを計算することに相当する。したがって、任意の画像に対して、元の画像のディセンダーモデル及び180°回転した画像のディセンダーモデルのみを計算する。更に良いディセンダー品質となる画像は、正確な向きの画像として報告される。
【0037】
この概念は、検出される90°の向きのページ及び270°の向きのページに容易に拡張される。横向きテキストラインモデルは、縦向きテキストラインに十分に適合せず、したがって、上下関係の正しい縦長書式(right side up portrait page)に対して、縦向きのn個の最適ラインの総合的品質は、横向きのn個の最適ラインの総合的品質より著しく低くなる。したがって、ページを四つの全ての向きに回転させることによりディセンダー品質を計算することによって、ページの正確な向きを決定することができる。
【0038】
図3に戻ると、ステップ130において、角度の結果に基づいて、各ブロックを、縦向きと横向きの何れかに分類する。特に、ブロックの向きが90°又は270°のとき、ブロックは、縦向きであるものとして分類する。そうでない場合(すなわち、ブロックの向きが0°又は180°であるとき)、ブロックは、横向きであるものとして分類される。ブロックが横向きである場合、回転角が上述した角度(すなわち、例えば、Beusekomで議論した方法を用いて決定した角度)であるので、更なる処理を必要としない。
【0039】
ステップ140において、全てのブロックが分類されたか否かを決定する。まだ分類されていないブロックが存在する場合、処理は、ステップ120に戻り、全てのブロックが分類されるまで繰り返される。
【0040】
ブロックが縦向きであるものとして分類された場合、次に、(
図2Cに示すような)回転角度0°、(
図2Aに示すような)回転角度90°又は(
図2Bに示すような)回転角度270°を、
図4を参照しながら決定する。したがって、ステップ200において、テキストブロック内の各文字に対して、フォント線幅を、以下の式1を用いて計算する。
【0042】
図5は、一実施の形態による文字“L”(オブジェクト320)のオブジェクト領域300及びオブジェクト外周310を示す。オブジェクト領域300は文字320の印刷領域(すなわち、文字が黒色で描かれる場合には文字の黒色部分)を意味することに留意されたい。オブジェクト外周310は、文字320の外周(すなわち、文字/印刷領域の輪郭)を意味する。換言すれば、オブジェクト領域300は、フォアグラウンド画素の数に対応し、オブジェクト外周310は、外周輪郭に対応する。一例として、Calibiri 11のフォントサイズに対して、最大フォント線幅は、7画素である。
【0043】
次に、ステップ210において、ブロックの全ての文字320の平均フォント線幅を、以下の式2を用いて計算する。
【0045】
その後、ステップ220において、各オブジェクト320に対して、外接矩形330(すなわち、文字320を包囲するとともに文字の最外部に接するボックス)を計算する。オブジェクト“L”320の外接矩形330を
図5に示す。一実施の形態において、外接矩形330は文字320に接しないが文字320を包囲するとともに文字320から所定の距離(例えば、1画素)にあってもよいことに留意されたい。
【0046】
さらに、ステップ230において、各オブジェクト320に対して、最も近いオブジェクト320に対する間隔340の寸法を計算する(
図6参照)。一実施の形態において、この寸法を一つのオブジェクト320の外接矩形330から他の(隣接する)オブジェクト320の外接矩形330まで計算することに留意されたい。
図6に示すように、上述した間隔340は、最も近い隣接するオブジェクト320までのオブジェクト320の距離を表す。
図6がオブジェクト320(すなわち、“L”,“E”,“A”及び“D”の各々)が間隔340を有するテキストのブロックの一実施の形態を示すことに留意されたい。
【0047】
次に、ステップ240において、全てのオブジェクト間隔340の寸法の平均を計算する。ステップ250において、平均間隔寸法と平均フォント線幅との間の比を、以下の式3を用いて決定する。
【0049】
次に、ステップ260において、回転角を決定するために比を閾値Tと比較する。一実施の形態において、閾値Tを、特定の言語のほとんどの文字のフォントの太さに対応する予め決定された値としてもよい。例えば、一実施の形態において、Tを、ラテン語から派生した言語に対して3の値に設定してもよい。その理由は、(英語のような)ラテン語から派生した言語の文字が太いフォントで描かれるからである。値3がフォントの太さを構成する画素数を表すことに留意されたい。一実施の形態において、Tを、アジアの言語に対して5の値に設定してもよい。その理由は、(日本語のような)アジアの言語が(更に詳細に書くために)細いフォントで描かれるからである。
【0050】
上述した閾値Tを(太字及び/又はイタリック体のテキストを含む)全てのスタイルのテキストに適用可能である。さらに、一実施の形態において、閾値を、適用される特定のアプリケーションに基づいて変更してもよい。例えば、ベイジアンのような学習フレームワーク(training framework)を、特定のアプリケーションに適合する閾値の値を推定するのに用いてもよい。そのような推定を、
図8に示すシステムのようなシステムによって実行してもよい。
【0051】
したがって、決定された比がT以上(すなわち、比≧T)である場合、テキストブロックは、0°又は180度の回転角を有する文字を含む縦向きであると決定される。そうでない場合(すなわち、決定された比がT未満である(比<T)である場合)、テキストブロックは、
図3のステップ120で決定されるように、推定された回転角に等しい回転角を有する縦向きであると考えられる。
【0052】
本開示による一実施の形態を簡潔に要約するために、
図7に示す文字を含むシート/ページをスキャナ又は同様な装置を用いて走査すると仮定する。一実施の形態において、先ず、走査した画像内のオブジェクト(例えば、一つ以上の文字)を検出する。一旦これらの文字を検出すると、これらのオブジェクトをブロックに分割する。例えば、処理は、
図7の5個のブロック400〜440を決定する。
【0053】
次に、各ブロック400〜440が横向きであるか縦向きであるかを決定する。この決定が各ブロックに対して行われるが各ブロック内の各オブジェクト(文字)に対して行われないことに留意されたい。
図3に示す処理を実行する際に、ブロック400及び410が画像(走査したページ)に対して横向きである(すなわち、横向きテキストである)と決定され、ブロック420,430及び440が画像(走査したページ)に対して縦向きである(すなわち、縦向きテキストである)と決定される。
【0054】
次に、縦向きであると決定されたブロックに対して、
図4に示す処理が適用される。この処理において、上述したように、ブロック420,430及び440の各オブジェクト(文字)を分析する。
図4で述べた処理を行うことによって、ブロック420が90°の回転角を有すること、ブロック430が0°の回転角を有する(すなわち、テキストが縦向きに描かれているがブロック内の文字が回転していない)こと及びブロック440が270°の回転角を有することが決定される。
【0055】
次に、(一つ以上の)回転角を、精度を向上させるとともに認識する文字の計算時間を短縮するためにOCRプロセスによって用いてもよい。テキストの特定のブロックの回転角の知識を有することによって、OCRプロセスは、テキストの特定のレイアウト(例えば、
図2に示すレイアウトの一つ)を知り、文字が実際に回転したときに回転がないと仮定する文字の認識を試みる際に計算時間及び電力を浪費しない。これによって、計算時間の短縮及び節電が行われるとともに精度が向上するので上述した処理を実行する装置/マシンの性能を向上させる。
【0056】
さらに、文字を適切に認識する際にOCRを支援する及び/又は、例えば、テキストを含むシートが不適切に走査されたときに文字を回転させるために本開示の実施の形態を用いてもよいことに留意されたい。
【0057】
本開示の実施の形態は、従来技術との違いを多く提供する。例えば、文字認識(例えば、OCR)は、回転角を見つけるために用いられない。さらに、回転角を、テキストブロックごとに決定し、走査した画像全体に対して決定しない。換言すれば、一実施の形態によれば、処理は、
図7のブロック400が横向きであるので画像全体も横向きであると簡単に決定しない。それどころか、各ブロックの向きを正確に決定するために各ブロックを個別に調べる。テキストを回転すべき場合、テキストの各ブロックを、向きに基づいて個別に回転する。したがって、一実施の形態において、走査した画像全体を、検出したブロックの向きに基づいて回転させない。
【0058】
また、本開示の実施の形態をラテン語から派生した言語、アジアの言語等に適用してもよい。さらに、本開示の実施の形態を、任意のフォント及びサイズのテキストに適用してもよい。
【0059】
実施の形態で説明した機能/方法/処理の各々を、一つ以上の処理回路(又は回路)によって実現してもよい。例えば、
図3及び
図4に示す処理を、一つ以上の処理回路(又は回路)によって実現してもよい。処理回路は、回路を含むプロセッサのようなプログラムされたプロセッサ(例えば、
図8のプロセッサ1203)を含む。処理回路は、特定用途向け集積回路(ASIC)及び列挙した機能を実行するように配置された従来の回路部品のような装置も含む。
【0060】
図8は、本開示の(一つ以上の)実施の形態を実現することができるコンピュータシステム1201を示す。コンピュータシステム1201を、汎用コンピュータ又は特定の専用マシンとしてもよい。一実施の形態において、コンピュータシステム1201は、オブジェクト/テキストの回転角を決定するためにプロセッサ1203をプログラムするときに特定の専用マシンとなる。コンピュータシステム1201を、多機能周辺装置(MFP)、一体型のプリンタ、スキャナ等として(又はその一部として)実施してもよい。
【0061】
コンピュータシステム1201は、磁気ハードディスク1207及びリムーバブルメディアドライブ1208(例えば、フロッピーディスク(登録商標)ドライブ、読出し専用コンパクトディスクドライブ、読出し/書込みコンパクトディスクドライブ、コンパクトディスクジュークボックス、テープドライブ及びリムーバブル光磁気ドライブ)のような情報及び命令を格納する一つ以上の記憶装置を制御するためにバス1202に結合されたディスクコントローラ1206を含む。記憶装置を、適切なデバイスインタフェース(例えば、スモールコンピュータインタフェースシステム(SCSI)、集積電子機器(integrated device electronics)(IDE)、エンハンストIDE(E−IDE)、ダイレクトメモリアクセス(DMA)又はウルトラDMA)を用いてコンピュータシステム1201に追加してもよい。
【0062】
コンピュータシステム1201は、専用論理装置(例えば、ASIC)又はコンフィギュラブルロジックデバイス(例えば、シンプルプログラマブルロジックデバイス(SPLD)、コンプレックスプログラマブルロジックデバイス(CPLD)及びフィールドプログラマブルゲートアレイ(FPGA))も含んでもよい。
【0063】
コンピュータシステム1201は、コンピュータユーザに情報を表示する液晶ディスプレイ(LCD)とすることができるディスプレイ1210を制御するためにバス1202に結合されているディスプレイコントローラ1209も含んでもよい。ディスプレイ1210をタッチパネルディスプレイとしてもよいことに留意されたい。コンピュータシステムは、コンピュータユーザと情報をやりとりするとともに情報をプロセッサ1203に提供するキーボード1211及びポインティングデバイス1212のような入力装置を含む。ポインティングデバイス1212を、例えば、マウス、トラックボール、タッチスクリーンセンサに対する指、又は、指示情報及びコマンド選択をプロセッサ1203に送信するとともにディスプレイ1210の上のカーソル移動を制御するポインティングスティックとしてもよい。
【0064】
コンピュータシステム1201は、主記憶1204のようなメモリに含まれる一つ以上の命令の一つ以上の列を実行するプロセッサ1203に応答して本開示の処理ステップの一部又は全てを実行する。そのような命令を、ハードディスク1207又はリムーバブルメディアドライブ1208のような他のコンピュータ可読媒体から主記憶1204に読み出してもよい。多重処理配置(multi−processing arrangement)の一つ以上のプロセッサを、主記憶1204に含まれる命令列を実行するために用いてもよい。代替的な実施の形態において、配線回路を、ソフトウェア命令の代わりに又はソフトウェア命令と組み合わせて用いてもよい。したがって、実施の形態は、ハードウェア回路及びソフトウェアの任意の特定の組合せに限定されない。
【0065】
上述したように、コンピュータシステム1201は、本開示の教示に従ってプログラムされた命令を保持するとともにデータ構造、テーブル、記録又はここで説明した他のデータを含む少なくとも一つのコンピュータ可読媒体又はメモリを含む。コンピュータ可読媒体の例は、コンパクトディスク、ハードディスク、フロッピーディスク(登録商標)、テープ、光磁気ディスク、PROM(EPROM、EEPROM、フラッシュEPROM)、DRAM、SRAM、SDRAM、他の任意の磁気媒体若しくはコンパクトディスク(例えば、CD−ROM)、他の任意の光媒体、パンチカード、紙テープ、又は、孔のパターンを有する他の物理的な媒体である。
【0066】
本開示は、コンピュータシステム1201を制御し、発明を実現するために一つ以上の装置を駆動し、かつ、コンピュータシステム1201がユーザと情報をやりとりするのを可能にするソフトウェアを含み、ソフトウェアは、コンピュータ可読媒体のいずれか一つ又はその組合せに格納される。そのようなソフトウェアは、デバイスドライバ、オペレーティングシステム及びアプリケーションソフトウェアを含むがそれに限定されない。そのようなコンピュータ可読媒体は、発明を実現する際に実行される処理の全て又は(処理が分散される場合には)一部を実行するための本開示のコンピュータプログラム製品を更に有する。
【0067】
コンピュータコードデバイス(computer code device)を、スクリプト、解釈可能プログラム、ダイナミックリンクライブラリ(DLL)、Java(登録商標)のクラス及び完全な実行可能プログラムを含むがそれに限定されない任意の解釈可能又は実行可能コード機構としてもよい。さらに、本実施の形態の処理の一部を、更によい実行、信頼性及び/又はコストのために分散させてもよい。
【0068】
ここで用いる用語「コンピュータ可読媒体」は、実行のためのプロセッサ1203への命令の提供に関与する任意の非一時的媒体を意味する。コンピュータ可読媒体は、不揮発性媒体又は揮発性媒体を含むがそれに限定されない多数の形態をとってもよい。不揮発媒体は、例えば、ハードディスク1207又はリムーバブルメディアドライブ1208のような光ディスク、磁気ディスク及び光磁気ディスクを含む。揮発性媒体は、主記憶1204のようなダイナミックメモリを含む。それに対し、伝送媒体は、バス1202を構成するワイヤを含み、同軸ケーブル、銅線及び光ファイバを含む。伝送媒体は、電波通信及び赤外線データ通信中に生じるような音波又は光波の形態をとってもよい。
【0069】
コンピュータ可読媒体の種々の形態は、実行のためのプロセッサ1203への一つ以上の命令の一つ以上の列の実行に関してもよい。例えば、命令を、最初にリモートコンピュータの磁気ディスクで実行してもよい。リモートコンピュータは、本開示の全て又は一部をダイナミックメモリにおいて遠隔的に実現するための命令をロードするとともに命令をモデムにより電話線を通じて送信することができる。コンピュータシステム1210の近くのモデムは、電話線のデータを受信するとともにデータをバス1202に配置してもよい。バス1202は、主記憶1204にデータを送信し、プロセッサ1203は、主記憶1204から命令を読み出して実行する。主記憶1204によって受信した命令を、プロセッサ1203による実行前又は実行後に記憶装置1207に任意に格納してもよい。
【0070】
コンピュータシステム1201は、バス1202に結合されている通信インタフェース1203も含む。通信インタフェース1213は、例えば、ローカルエリアネットワーク(LAN)1215又はインターネットのような他の通信ネットワーク1216に接続されたネットワークリンク1214に結合する双方向データ通信を提供する。例えば、通信インタフェース1213を、任意のパケット交換LANに取り付けるネットワークインタフェースとしてもよい。他の例として、通信インタフェース1213を、サービス総合デジタル網(ISDN)カードとしてもよい。無線リンクを実現してもよい。そのような実現において、通信インタフェース1213は、種々のタイプの情報を表すデジタルデータストリームを送信する電気信号、電磁信号又は光信号を送受信する。
【0071】
ネットワークリンク1214は、典型的には、一つ以上のネットワークを通じた他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク1214は、ローカルネットワーク1215(例えば、LAN)を通じた又は通信ネットワーク1216を通じて通信サービスを提供するサービスプロバイダによって操作される装置を通じた他のコンピュータとの接続を提供してもよい。ローカルネットワーク1214及び通信ネットワーク1216は、例えば、デジタルデータストリームを送信する電気信号、電磁信号又は光信号と、関連の物理層(例えば、CAT5ケーブル、同軸ケーブル、光ファイバ等)と、を用いる。デジタルデータをコンピュータシステム1201に送信する及びデジタルデータをコンピュータシステム1201から送信する種々のネットワークを通じた信号及び通信インタフェース1213を通じるネットワークリンク1214の信号を、ベースバンド信号又は搬送波ベース信号(carrier wave based signal)で実現してもよい。ベースバンド信号は、デジタルデータビットのストリームを記述している非変調電気パルスのようなデジタルデータを搬送し、この場合、用語「ビット」を、シンボルを意味するものと広く解釈すべきであり、各シンボルは、少なくとも一つ又はそれ以上の情報ビットを搬送する。デジタルデータを、例えば、導電媒体を通じて伝播される又は電磁波として伝搬媒体を通じて送信される振幅、パルス及び/又は周波数シフトキード信号によって搬送波を変調するのに用いてもよい。したがって、デジタルデータを、非変調ベースバンドデータとして「配線」通信チャネルを通じて送信してもよい、及び/又は、搬送波を変調することによりベースバンドと異なる予め決定された周波数帯域内で送信してもよい。コンピュータシステム1201は、(一つ以上の)ネットワーク1215,1216、ネットワークリンク1214及び通信インタフェース1213を通じて、プログラムコードを含むデータを送受信することができる。さらに、ネットワークリンク1214は、LAN1215を通じた電子装置(例えば、モバイルデバイス)1217との接続を提供してもよい。
【0072】
ここで説明する種々の素子、形態及び処理を互いに独立して又は種々の方法で組み合わせて用いてもよい。全てのあり得る組合せ及び部分的組合せが本開示の範囲内にあることを意図する。さらに、本開示において、(別段の指示がない限り)任意の特定の形態、素子、構成要素、特性、ステップ、モジュール、方法、処理、タスク又はブロックが必須である又は不可欠であることを意味することを意図しない。ここで説明するシステム及び構成要素の例を、説明したのと異なるように構成してもよい。例えば、素子又は構成要素を、開示した例に追加、開示した例から除去又は再配置してもよい。
【0073】
ここで用いられるように、「一実施の形態」、「一部の実施の形態」又は「実施の形態」の言及は、実施の形態に関連して説明した特定の素子、形態、構造又は特性が少なくとも一つの実施の形態に含まれることを意味する。明細書の種々の場所での語句「一実施の形態の」の出現は、必ずしも全てが同一の実施の形態を言及するものではない。実施の形態の全てのあり得る組合せ及び部分的組合せが本開示の範囲内にあることを意味する。特に、「できる」、「してもよい」、「例えば」等のようなここで用いる条件付きの言葉は、特段の指示がない限り又は用いられる文脈内で理解されない限り、一般的には所定の実施の形態が所定の形態、素子及び/又はステップを含むのに対して他の実施の形態が所定の形態、素子及び/又はステップを含まないことを伝えることを意図する。さらに、本願及び添付した特許請求の範囲で用いられる「一つ」(articles “a” and “an”)を、特段の指示がない限り「一つ以上」又は「少なくとも一つ」を意味するものと解釈すべきである。