二次元画像の透視変換
【課題】埋め込まれたデバイスで透視変換を行なう。
【解決手段】埋め込まれたデバイスは、目的画像選択機構と、変換機構とを含む。変換機構は、目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる。
【解決手段】埋め込まれたデバイスは、目的画像選択機構と、変換機構とを含む。変換機構は、目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる。
【発明の詳細な説明】
【優先権の主張】
【0001】
本特許出願は、2004年9月28日に出願され、本発明の譲受人に譲渡され、本明細書において参照によって明示的に取り入れられている米国仮出願第60/614,216号(“Perspective Transformation for Two-Dimensional Images”)に対して優先権を主張している。
【技術分野】
【0002】
本開示の態様は、ディジタル画像の操作に関する。他の態様は、画像処理特徴をもつ移動電話に関する。
【背景技術】
【0003】
ディジタル画像の操作とは、ディジタル画像に対して行われ得る多くの種々のタイプの修正および変換を示す。画像操作の実施の例は、透視変換、回転、拡大、ピンチング、ラッピング、エッジ検出、およびフィルタリングを含む。
【0004】
透視縮約(perspective foreshortening)の技術は、画家が、対象物の三次元の奥行きおよび距離を二次元の面上でシミュレートするのに使用される。例えば、より近い物体をより大きい物体として、より遠い物体をより小さい物体として塗る、または描くことによって、および物体の線および角度を慎重に描画することによって、画家は、二次元空間において、三次元性の錯覚を作り出すことができる。数学用語において、透視図(perspective view)とは、三次元の空間を二次元の平面へ投影したものである。
【発明の概要】
【0005】
開示の1つの態様は、埋め込まれたデバイス(embedded device)に関する。埋め込まれたデバイスは、目的画像選択機構と、変換機構とを含む。変換機構は、目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる。
【図面の簡単な説明】
【0006】
【図1】画像に対して変換を行うことができる例示的な埋め込まれたデバイスのブロック図。
【図2】画像の透視変換のためのマッピング機能の特性を示す画像の模式図。
【図3a】示されている方法を使用する変換前の元のサイズの520×390画素の画像を示す図。
【図3b】示されている実施形態にしたがう方法によって、変換のための種々のパラメータを使用して、図3aの画像を変換した画像を示す図。
【図4】画像に対して変換を行うことができる整数マイクロプロセッサを備えた例示的な埋め込まれたデバイスのブロック図。
【図5】画像に対して変換を行うことができる浮動小数点マイクロプロセッサを備えた例示的な埋め込まれたデバイスのブロック図。
【図6】変換方法の実施に関与するタスクを示す概略的なフローチャート。
【図7】ポータブルデバイスにおける変換方法の使用を示す、ディジタルカメラを備えた移動電話を示す図。
【図8a】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8b】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8c】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8d】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図9a】消失点がカメラから遠いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図9b】消失点がカメラから遠いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図10a】消失点が中心から外れて、カメラの近いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図10b】消失点が中心から外れて、カメラの近いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【発明を実施するための形態】
【0007】
実施形態は、添付の図面を参照して記載される。これらの図面において、同じ参照符号は、図面全体において同じ要素を表わす。
【0008】
図1は、例示的な埋め込まれたデバイス10のブロック図であり、これは、示されている実施形態において、無線移動通信デバイスを含む。示されている埋め込まれたデバイス10は、システムバス14と、システムバス14を介して埋め込まれたデバイス10の他の部分に接続され、それらによってアクセス可能であるデバイスメモリ16(示されているデバイス10内のメインメモリ)と、システムバス14に接続されたハードウェアエンティティ18とを含む。ハードウェアエンティティ18の少なくとも幾つかは、メインメモリ16へのアクセスおよびその使用に関与する動作を行う。ハードウェアエンティティ18は、マイクロプロセッサ、ASIC、および他のハードウェアを含み得る。
【0009】
グラフィックスエンティティ20は、システムバス14に接続されている。グラフィックスエンティティ20は、より大きい統合システムのコアまたは一部分(例えば、システム オンチップ(system on a chip, SoC))を含むか、グラフィックスアクセラレータ(graphics accelerator)のようなグラフィックスチップを含み得る。示されている実施形態において、グラフィックスエンティティ20は、グラフィックスパイプライン(図示されていない)、グラフィックスクロック23、緩衝器22、およびグラフィックスエンティティ20をシステムバス14に連結させるバスインターフェース19を含む。
【0010】
緩衝器22は、グラフィックスエンティティ20による画素ごとの処理に使用されるデータを保持する。緩衝器22は、メインメモリ16内の緩衝器(図示されていない)からの、画素情報のような、画素に関係するデータの局部記憶装置を与える。
【0011】
示されている実施形態において、グラフィックスエンティティ20は、画像の透視変換を行うことができる。その目的のために、グラフィックスエンティティ20は、表示するため、およびユーザが変換される画像を選択できるようにするための目的画像選択機構(image of interest selecting mechanism, IIS mechanism)24と、画像変換を行うための変換デバイス26とをさらに含む。図示されているように、目的画像選択機構24は、埋め込まれたデバイス10のユーザインターフェース28に連結されている。埋め込まれたデバイス10によって行われ得る画像変換は、さらに詳しく別途記載される。埋め込まれたデバイス10が操作する画像は、埋め込まれたデバイス10のメインメモリ16、埋め込まれたデバイスの緩衝器22、または埋め込まれたデバイスと相互運用可能な機械読み出し可能媒体に記憶され得る。さらに加えて、示されている実施形態では、グラフィックスエンティティ20は、変換機能を行うが、他の実施形態では、それらの機能は他のハードウェア18によって行われ得る。
【0012】
図2は、画像50の模式図である。画像50は、示されている変換機構によって変換される。変換機構は、透視変換関数を画像50に適用する。参照番号56において、結果の一点透視画像(one-point perspective image)が、概略的に示されている。一点透視画像56は、画像50の前景の視点における、より大きい幅から、画像50の消失点58へ向かって、より小さい幅へ変化する。本明細書において使用されているように、“消失点(vanishing point)”という用語は、一点透視画像56の全ての平行線が収束する点を指す。
【0013】
図2に示されているように、画像50は、幅(width, W)および高さ(height, H)をもつ。幅Wおよび高さHは、画素の単位で表現されているが、他の測定単位が使用されてもよい。画像50の高さHは、図2のy軸52に沿って伸び、画像の幅Wは、x軸54に沿って伸びている。図示されているように、図2において、画像50の幅の座標は、0からW−1まで伸び、高さの座標は、0からH−1まで伸びている。
【0014】
図2に示されているように、一点透視画像56は、上端の幅D、高さH、および下端の幅Wをもつ。下端の幅W、高さH、および上端の幅Dは、画素の単位で表現されているが、他の測定単位が使用されてもよい。
【0015】
画像50は、最初に、ディジタル写真撮影、ディジタル化に続くフィルム写真撮影、非写真源からのディジタル化、きれいなディジタルのイラストレーション/レンダリングを含む多くのやり方で生成され得る。特定のタイプの画像に対する本明細書において提示されている画像変換方法の個々の実施、および特定のプラットフォームまたはコンピューティングシステムは、さらに詳しく別途記載される。
【0016】
ほとんどの画像変換は、数式の組によって表わされる数学的変換関数の組として示されることができ、これらの式は、変換が実施される個々のプラットフォームに関係なく、画像に対して行われる演算を表わす。示されている実施形態のための透視変換関数の1つの例示的な組を示す数式は、式(1)および(2)として、次に与えられる。画像50内の各画素において、次の式が成立する。
【数1】
【0017】
式(1)ないし(6)において、(xin,yin)は、入力画素の位置であり、(xout,yout)は、出力画素の位置であり、xshiftは、一点透視画像56の上端の幅の左端点のx座標である。Wは、画像50の幅であり、これは、画像56の下端の幅でもある。Hは、画像50および画像56の両者の高さである。Dは、画像56における2本の平行エッジの短い方の長さである。消失点が画像より上にあるので、この場合は、短い方の平行エッジは、上端のエッジである。消失点が、元の画像50の左側、右側、または下側にあるとき、結果の透視画像56は、左側、右側、または下側へ向かって先細になる。このような場合は、短い方の平行エッジは、画像の左側、右側、または下側にある。
【0018】
式(6)において、定数a、b、c、およびdは、経験的に判断され、任意のサイズのあらゆる画像に使用されることができる。これらの定数は、一点透視画像56における透視縮約効果の量および滑らかさを決める。例えば、(a,b,c,d)に対する1組の可能な値は、(0.00402,−1.87736,0.50697,0.87585)である。
【0019】
式(2)および(6)は、透視画像における拡張および圧縮量を決める。式(2)の因数kは、透視画像における拡張および圧縮の量およびバリエーションを制御する。式(6)によって示されているように、因数kは、カメラ(すなわち、視点)と、消失点58との間の距離によって決まる。したがって、因数kは、一点透視画像56の高さH、上端の幅D、および下端の幅Wの関数として変化する。応用において、目的画像は、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化する。
【0020】
幅の比(D/W)は、0ないし1の間で変化し、消失点の位置によって決まる。小さい比率は、消失点がカメラに近いことを示す。大きい比率は、消失点がカメラから遠いことを示す。例えば、1に等しい幅の比は、消失点が無限遠にあることを示す。
【0021】
y座標の値は、カメラと画像内の点との間の距離を表わす。小さいy座標は、点がカメラに近いことを示す。その代わりに、大きいy座標は、点がカメラから遠いことを表わす。
【0022】
応用において、消失点が無限遠にあるとき、式(1)ないし(6)を使用して、520×390画素の画像を透視変換すると、図3aに示されている画像が生成され、これは、元の画像に相当する。さらに加えて、k=1、W=520画素、H=390画素、D=260画素、およびxshift=130画素であるとき、式(1)ないし(6)を使用して、520×390画素の画像を透視変換すると、図3bに示されている画像が生成される。なお、画像の下端は、カメラに近く、画像の上端は、カメラから遠い。
【0023】
上述の式の具体的な使用例として、図3bの画像を一例として使用すると、k=1、D=260画素、およびxshift=130画素であるとき、式(2)は、次の式に約される。
【数2】
【0024】
図3bに示されているように、元の画像の領域が、カメラにより近くなるほど、透視画像において、その領域はより拡張される。この透視縮約効果を得るために、y座標の値を1対2でマッピングすることが望ましい。例えば、yin=1であり、結果が整数に丸められるとき、式(7)は、次のようになる。
【数3】
【0025】
同様に、yin=2であるときは、次のようになる。
【数4】
【0026】
結果によって示されているように、yin=1に対するyoutの値とyin=2に対するyoutの値の間にはギャップがある。このギャップは、事実上、yout=2において、出力画素が生成されず、したがって、その位置における最初の出力画像には、出力画素が存在しないことを意味する。しかしながら、最初の出力画像内の空の画素の位置は、存在している画素を使用して、画素を補間および複製することによって埋められ、yinの画素値の望ましい1対2のマッピングで、最終的な出力画像を生成することができる。
【0027】
図3bに示されているように、元の画像の領域が、カメラからより遠くなるほど、透視画像において、その領域はより圧縮される。この透視縮約効果を得るために、入力画素と出力画素との2対1のマッピングが望ましい。例えば、yin=H−3=387であり、結果が整数に丸められるとき、式(7)は、次のようになる。
【数5】
【0028】
同様に、yin=H−2=388であるときは、次のようになる。
【数6】
【0029】
結果によって示されているように、youtの値間には、差異はなく、したがって、望ましい2対1のマッピングになる。他の実施形態において、異なる度合いの透視縮約が望まれるときは、式(6)における定数a、b、c、およびdを調節して、希望の透視効果を生むkの種々の値を得ることができる。
【0030】
変換方法は、整数マイクロプロセッサのような、限定された能力をもつコンピューティングシステム上で実行されるように実施され得る。幾つかの整数マイクロプロセッサは、浮動小数点(すなわち、10進法)の数学エミュレータを含むが、エミュレータを使用することは、より時間がかかり、計算のコストが高くなり得る。変換は、整数演算を使用して実施され得る。
【0031】
整数マイクロプロセッサ上で、式(1)ないし(6)のような変換式を実施するとき、2つの考慮すべき事柄が生じる。すなわち、整数演算のみを使用して、これらの式における冪関数を計算することと、整数のオーバーフロー(すなわち、計算される数が、マイクロプロセッサが処理できる最大整数を超える状態)を避けるように、演算を順序付けることとである。
【0032】
図4は、整数演算を使用して、上述の変換を行う例示的な埋め込まれたデバイス60のブロック図である。埋め込まれたデバイス60は、システムバス14に接続されたメインメモリ16、インターフェース19によってシステムバス14に接続されたグラフィックスエンティティ66、およびシステムバス14に接続された整数マイクロプロセッサ61を含んでいる。埋め込まれたデバイス60は、マイクロプロセッサに接続された変換演算ファシリテータ(transformation operations facilitator)62を含んでいる。変換演算ファシリテータ62の中には、整数演算ファシリテータ(integer operations facilitator)64が含まれている。
【0033】
変換演算ファシリテータ62は、式(6)における冪関数を計算し、マイクロプロセッサ61と互換性のあるやり方で、他の変換演算を行う。整数演算ファシリテータ64は、式(1)ないし(6)における必要な計算の全てが、整数演算を使用して、整数マイクロプロセッサ61における整数のオーバーフローを避ける計算順で行われることを保証する。(両者の構成要素62、64の機能、および行われる計算は、さらに詳しく別途記載される)。デバイス60のような埋め込まれたデバイスの長所は、浮動小数点エミュレータが使用されないことであり、これは、整数マイクロプロセッサ61上での変換をより効率的にする。変換演算ファシリテータ62および整数演算ファシリテータ64は、ハードウェアにおいて、ソフトウェアにおいて、ハードウェアとソフトウェアとのある組合せにおいて、あるいはマイクロプロセッサ61と互換性のある何か他のやり方で実施され得る。
【0034】
示されている実施形態において、式(6)における冪関数を計算するために、関数のテイラー級数の展開が使用される。任意の冪関数において、テイラー級数の展開は、式(8)によって与えられる。
【数7】
【0035】
任意のテイラー級数におけるように、加えられる項が、より多くなるのにしたがって、近似値は、より正確になる。しかしながら、使用されるテイラー級数の項が、より多くなるのにしたがって、処理は、計算のコストがより高くなる。さらに加えて、テイラー級数の連続する項が、最終的な結果に加える精度の量は、次第に小さくなる。したがって、冪関数を計算するのに使用されるテイラー級数の項の数は、希望の精度と、使用可能な計算能力とによって決まる。別途さらに詳しく記載される1つの実施において、テイラー級数の最初の4つの項が、極端な計算能力を要求することなく、十分な精度を与えることが分かった。a=2として、テイラー級数の最初の4つの項を使用すると、式(8)は、式(9)に約される。
【数8】
【0036】
式(9)は、厳密には整数項を含んでいないが、計算を行うために、非整数の項を整数に変換することができる。例えば、2の自然対数に210を乗算し(すなわち、左に10ビットシフトをし)、最も近い整数に丸め、710にすることができる。中間の算術演算は、2の自然対数に対するこの整数表現を使用して、計算され得る。中間の算術演算の全てを計算した後で、210で除算する(すなわち、右に10ビットシフトする)ことによって、最終的な結果を得ることができる。通常は、大きい整数の因数を使用し、したがって、多数の有効桁を使用して、可能な限り高い精度を保つことができる。しかしながら、より低い精度が望ましいときは、より小さい整数の因数を使用することができる。さらに加えて、浮動小数点数を整数に変換するとき、任意の大きい因数を使用することができるが、示されている実施形態では、2の冪が使用されており、比較的に遅い乗算の演算を、比較的に速いビットシフトの動作に代えることができる。
【0037】
透視の操作のために、式(9)の4つの項のテイラー級数の近似値と、216の整数変換の乗数とを使用する32ビットの整数マイクロプロセッサのための実施コードのサンプルを次に与える。
【表1】
【0038】
上述のコードの断片において、65536は、1×216であり、演算は、32ビットのマイクロプロセッサ上での整数のオーバーフローを避けるように順序付けられている。テイラー級数の値は、中間の変数c1、c2、およびc3で記憶される。最後のシフティングの動作は、216の乗数の影響を取り除く。
【0039】
上述のコードの断片は、32ビットの整数マイクロプロセッサに対して実時間の結果を与えることが分かっている。この記載されている実施形態は、Cでコード化され、32ビットのマイクロプロセッサ上で実施されているが、他の実施形態では、C、C++、Java(登録商標)、およびアセンブラを含む任意のプログラミング言語でコード化され、64ビットのマイクロプロセッサおよび128ビットのマイクロプロセッサを含む任意の能力をもつマイクロプロセッサ上で実施され得る。その実施では、整数のみの演算を使用する必要も、オーバーフローを避けるように順序付ける必要もない。これらの方法は、整数マイクロプロセッサ上で実施されると、ディジタルカメラを備えた移動電話またはポータブル電子デバイスにおける画像処理機能として与えられ得る。これらの方法は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの任意の組合せにおいて、マイクロプロセッサ、ASIC、またはそれらを実施するのに十分な計算能力をもつ任意の他のプラットフォーム上で実施され得ることも理解されるはずである。
【0040】
図5は、浮動小数点演算を使用して、上述の変換を行う例示的な埋め込まれたデバイス70のブロック図である。埋め込まれたデバイス70の構成要素は、埋め込まれたデバイス60の構成要素に概ね似ており、したがって、同様の構成要素に対しては、上述の記述で十分であるだろう。埋め込まれたデバイス60とは異なり、埋め込まれたデバイス70は、浮動小数点マイクロプロセッサ72を含んでいる。埋め込まれたデバイス70は、浮動小数点マイクロプロセッサ72に連結された変換演算ファシリテータ74をさらに含んでいるが、変換演算ファシリテータ74は、整数演算ファシリテータをもっていない。埋め込まれたデバイス70では、計算は、浮動小数点数を使用して行われ、例えば、式(1)ないし(6)の項を整数へ変換するタスクを省いている。示されている変換方法の整数のみの実施は、埋め込まれたデバイス70上で行なわれるとき、正しく機能するであろうが、マイクロプロセッサ72の浮動小数点の能力を使用することが好都合である。
【0041】
図6は、画像に透視変換を適用する方法100を示すより一般的なフローチャートである。方法100は、必要な計算を行うことができる任意のプラットフォーム上で実施され得る。
【0042】
方法100は、動作(act)102から始まり、制御は、動作104へ進む。動作104において、ユーザは、目的の入力画像を選択する。目的画像が選択されると、方法100は、続いて動作106へ進み、動作106において、入力画像の画素が選択される。動作106の後で、方法100は、続いて動作108へ進む。動作108において、画素は、上述の演算を行うことによって変換され、出力画像の結果の出力画素が生成される。次に、制御は動作109、すなわち、入力画像内に他の画素が残っているかどうかが判断される決定タスクへ進む。画像内に他の画素が残っている(参照番号109に対してイエスである)ときは、方法100の制御は、参照番号106へ戻る。画像内に他の画素が残っていない(参照番号109に対してノーである)ときは、制御は参照番号110へ進む。動作110において、完全な透視画像を生成するのに必要なこととして、出力画像内の欠けている画素の補間または複製が行なわれ得る。(最も単純な場合において、必要な画素の複製は、最も近い隣り合う画素の複写によって行われ得る)。完全な可視画像を生成するのに必要とされる他のタスク、例えば、出力画像ファイルに対するヘッダ情報の書き込みも、動作110において行われ得る。動作110が完了すると、方法100は終了し、動作112において、戻る。
【0043】
上述の一部において、変換される画像は、RGB(red-green-blue)フォーマットであると仮定されており、各画像の画素は、その画素の赤の内容の値、緑の内容の値、および青の内容の値をもつ。しかしながら、示されている変換方法は、最初にRGBへ変換することなく、他の画像形式に対して直接に使用できる。RGBフォーマットの画像は、比較的に変換し易いので、これは好都合であるが、圧縮するのがより難しく、一般に、より大きい記憶空間を消費する。
【0044】
2つの他の一般的な画像フォーマットは、YCbCrとYCrCbとである。RGB画像では、各画素について、赤、緑、および青の色の値に関して、データが記憶されるが、YCbCrおよびYCrCbのフォーマットでは、各画素について、ルミナンス(Y)の値およびクロミナンス(Cb、Cr)の値を記録することによって、画像データを記憶する。YCbCrおよびYCrCbのフォーマットは、それらが共通のJPEGの画像ファイルフォーマットにおいて使用されているので、一般的である。
【0045】
画像変換が、ディジタルカメラのようなポータブルデバイス上で実施されるとき、RGB、YCbCr、およびYCrCbの3つのフォーマットの全てが、ディジタルカメラにおいて使用され得るので、これらのフォーマットの画像に対して操作できることは好都合である。それは、ディジタル画像の生成および処理のやり方のためである。
【0046】
例えば、ほとんどのディジタルカメラの画像センサは、全3色の光ではなく、赤、緑、または青の光の1つのみに対して感知可能な個々のセンサセルから構成されている。したがって、個々のセルは、一般に、バイエルパターン(Bayer pattern)と呼ばれるパターンで配置されており、緑に対して感知可能なセルは、赤に対して感知可能なセルと、青に対して感知可能なセルとの間に、交互に分散させられている。人間の視覚系は、緑に対してより敏感であり、より多くの緑のセルを含むことは、知覚される画像品質を高める傾向があるので、消費者製品では、緑のセルが、通常、支配的(predominate)である。1つの典型的なバイエルパターンにおいて、16個のセルの配列は、8個の緑のセル、4個の赤のセル、および4個の青のセルを含み、これらは、ほぼチェス盤のパターンで配置され得る。画像が、バイエルパターン内の1色のセルを使用するディジタルデバイスによって得られるとき、生の画像は、通常、各画素が赤の値、緑の値、および青の値をもつように補間され、少なくとも処理の中間段階において、RGB画像として記憶される。画像は、圧縮および記憶のために、YCbCrまたはYCrCbにさらに変換され得る。
【0047】
YCbCrおよびYCrCbのフォーマットの画像は、上述の変換を適用することによって、直接的に処理され得るが、追加のタスクが、例えば、副標本をとられたYCbCrおよびYCrCb画像を用いて行われ得る幾つかの環境がある。副標本をとられた画像において、幾つかのクロミナンス値は、ファイルのサイズを低減するために、捨てられるか、または、副標本をとられる。例えば、一般的なH2V1のYCbCrの4:2:2のフォーマットでは、画素の列は、副標本をとられるが、画素の行は、影響されない。この副標本をとる方式において、列に、0から番号を付けるとき、偶数列のみが、Cb成分をもち、奇数列のみが、Cr成分をもつ。別の副標本をとるフォーマットは、YCbCrの4:2:0のフォーマットであり、各2×2の画素配列は、1つのCb値および1つのCr値を共有する。YCrCbフォーマットは、概ね、YCbCrと同じであるが、Cb成分とCr成分の順序が逆にされる。
【0048】
上述の変換方法は、副標本をとられたYCbCrおよびYCrCbフォーマットに直接的に適用され得るが、そうすると、Cb成分とCr成分とを正確に交互にしたとき、目的の画像にならないことがある。この問題を克服するために、副標本をとられた画像から、隣り合う画素の対を考慮して、適切なCb値およびCr値を複製し、各画素がCb値とCr値とをもつようにすることによって、仮の副標本をとられていない画像(YCbCr 4:4:4またはYCrCb 4:4:4)を生成し得る。変換後に、記憶するために、余分なCb値およびCr値は捨てられ得る。発明者によって行われた試験では、RGB画像の処理結果と、YCbCrおよびYCrCbフォーマットにおける同じ画像の処理結果との間に、視覚的に知覚可能な差は示されなかった。
【0049】
図7は、ディジタルカメラ202を備えた移動電話200の実施形態を示している。移動電話200およびそのディジタルカメラ202は、図1の目的画像選択機構24と、変換デバイス26、または本明細書に記載されている画像変換を行うための他の機構とを含んでいる。使用において、ユーザは、移動電話200のディジタルカメラ202を使用して、ディジタル写真を撮り、次に、移動電話200の処理能力を使用して、変換を行う。図7に示されているように、ディジタル画像204は、移動電話200のディスプレイスクリーン206上に表示される。ディスプレイスクリーン206は、グラフィックスエンティティ20によって駆動される比較的に小型の液晶ディスプレイであり得る。他のタイプのディスプレイスクリーン206も使用され得る。図示されているように、画像204は、眺望しているように、一点透視画へ変換されている。画像204に一時的に重ねられたオーバーレイまたはプルダウンメニュー214は、透視変換の大きさおよび方向の変更命令を与え得る。ユーザは、数字/文字キー212の幾つかの組合せを使用して、画像204上の透視縮約効果を変更するように指示され得る。実施によって、ユーザは、上述のように、変換関数のパラメータの値を直接的に変更できるときと、できないときがある。例えば、ユーザは、“透視因数”のような設定を簡単に変更でき、その値は、個々のパラメータ値にマップされる。
【0050】
実施によって、例えば、変換が、常に、同じ所定のマッピング値で透視変換されるように、変換パラメータは、ハードコード化されるか、またはデバイスへプリセットされてもよい。
【0051】
次の記述では、上述の実施形態にしたがう、記憶された画像の透視変換の実時間の応用を示す幾つかの例の結果を与える。各示されている事例は、幅の比、開始座標、および方向の種々の組合せを使用した、変換画像の透視図を与えている。
【0052】
図8は、幅の比、開始座標、および方向の4つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図8aは、消失点が視点に近いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=520、D/W=0.25、H=390、xshift=195、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0053】
図8bは、消失点が視点に近いときの、処理された520×390の画像の、下に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=520、D/W=0.25、H=390、xshift=195、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0054】
図8cは、消失点が視点に近いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=390、D/W=0.333、H=520、xshift=130、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0055】
図8dは、消失点が視点に近いときの、処理された520×390の画像の、右に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=390、D/W=0.333、H=520、xshift=130、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0056】
図9は、幅の比、開始座標、および方向の2つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図9aは、消失点が視点から遠いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=450、W=520、D/W=0.865、H=390、xshift=35、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0057】
図9bは、消失点が視点から遠いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=338、W=390、D/W=0.867、H=520、xshift=26、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0058】
図10は、幅の比、開始座標、および方向の2つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図10aは、消失点が中心から外れて、視点に近いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=65、W=520、D/W=0.125、H=390、xshift=0、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)の画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0059】
図10bは、消失点が中心から外れて、視点に近いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=65、W=390、D/W=0.167、H=520、xshift=0、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)の画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0060】
ある特定の示された実施形態が記載されているが、本明細書に使用されている文章(words)は、制限の文章ではなく、説明の文章である。例えば、請求項の範囲内で、変更が行われ得る。
【優先権の主張】
【0001】
本特許出願は、2004年9月28日に出願され、本発明の譲受人に譲渡され、本明細書において参照によって明示的に取り入れられている米国仮出願第60/614,216号(“Perspective Transformation for Two-Dimensional Images”)に対して優先権を主張している。
【技術分野】
【0002】
本開示の態様は、ディジタル画像の操作に関する。他の態様は、画像処理特徴をもつ移動電話に関する。
【背景技術】
【0003】
ディジタル画像の操作とは、ディジタル画像に対して行われ得る多くの種々のタイプの修正および変換を示す。画像操作の実施の例は、透視変換、回転、拡大、ピンチング、ラッピング、エッジ検出、およびフィルタリングを含む。
【0004】
透視縮約(perspective foreshortening)の技術は、画家が、対象物の三次元の奥行きおよび距離を二次元の面上でシミュレートするのに使用される。例えば、より近い物体をより大きい物体として、より遠い物体をより小さい物体として塗る、または描くことによって、および物体の線および角度を慎重に描画することによって、画家は、二次元空間において、三次元性の錯覚を作り出すことができる。数学用語において、透視図(perspective view)とは、三次元の空間を二次元の平面へ投影したものである。
【発明の概要】
【0005】
開示の1つの態様は、埋め込まれたデバイス(embedded device)に関する。埋め込まれたデバイスは、目的画像選択機構と、変換機構とを含む。変換機構は、目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる。
【図面の簡単な説明】
【0006】
【図1】画像に対して変換を行うことができる例示的な埋め込まれたデバイスのブロック図。
【図2】画像の透視変換のためのマッピング機能の特性を示す画像の模式図。
【図3a】示されている方法を使用する変換前の元のサイズの520×390画素の画像を示す図。
【図3b】示されている実施形態にしたがう方法によって、変換のための種々のパラメータを使用して、図3aの画像を変換した画像を示す図。
【図4】画像に対して変換を行うことができる整数マイクロプロセッサを備えた例示的な埋め込まれたデバイスのブロック図。
【図5】画像に対して変換を行うことができる浮動小数点マイクロプロセッサを備えた例示的な埋め込まれたデバイスのブロック図。
【図6】変換方法の実施に関与するタスクを示す概略的なフローチャート。
【図7】ポータブルデバイスにおける変換方法の使用を示す、ディジタルカメラを備えた移動電話を示す図。
【図8a】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8b】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8c】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図8d】消失点がカメラに近いときの、4つの異なる方向の中の1つの方向における画像の透視図を生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図9a】消失点がカメラから遠いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図9b】消失点がカメラから遠いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図10a】消失点が中心から外れて、カメラの近いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【図10b】消失点が中心から外れて、カメラの近いときの、画像の異なる透視図の1つを生成するために、種々のパラメータを使用して、示されている実施形態にしたがう方法によって変換された図3aの画像を示す図。
【発明を実施するための形態】
【0007】
実施形態は、添付の図面を参照して記載される。これらの図面において、同じ参照符号は、図面全体において同じ要素を表わす。
【0008】
図1は、例示的な埋め込まれたデバイス10のブロック図であり、これは、示されている実施形態において、無線移動通信デバイスを含む。示されている埋め込まれたデバイス10は、システムバス14と、システムバス14を介して埋め込まれたデバイス10の他の部分に接続され、それらによってアクセス可能であるデバイスメモリ16(示されているデバイス10内のメインメモリ)と、システムバス14に接続されたハードウェアエンティティ18とを含む。ハードウェアエンティティ18の少なくとも幾つかは、メインメモリ16へのアクセスおよびその使用に関与する動作を行う。ハードウェアエンティティ18は、マイクロプロセッサ、ASIC、および他のハードウェアを含み得る。
【0009】
グラフィックスエンティティ20は、システムバス14に接続されている。グラフィックスエンティティ20は、より大きい統合システムのコアまたは一部分(例えば、システム オンチップ(system on a chip, SoC))を含むか、グラフィックスアクセラレータ(graphics accelerator)のようなグラフィックスチップを含み得る。示されている実施形態において、グラフィックスエンティティ20は、グラフィックスパイプライン(図示されていない)、グラフィックスクロック23、緩衝器22、およびグラフィックスエンティティ20をシステムバス14に連結させるバスインターフェース19を含む。
【0010】
緩衝器22は、グラフィックスエンティティ20による画素ごとの処理に使用されるデータを保持する。緩衝器22は、メインメモリ16内の緩衝器(図示されていない)からの、画素情報のような、画素に関係するデータの局部記憶装置を与える。
【0011】
示されている実施形態において、グラフィックスエンティティ20は、画像の透視変換を行うことができる。その目的のために、グラフィックスエンティティ20は、表示するため、およびユーザが変換される画像を選択できるようにするための目的画像選択機構(image of interest selecting mechanism, IIS mechanism)24と、画像変換を行うための変換デバイス26とをさらに含む。図示されているように、目的画像選択機構24は、埋め込まれたデバイス10のユーザインターフェース28に連結されている。埋め込まれたデバイス10によって行われ得る画像変換は、さらに詳しく別途記載される。埋め込まれたデバイス10が操作する画像は、埋め込まれたデバイス10のメインメモリ16、埋め込まれたデバイスの緩衝器22、または埋め込まれたデバイスと相互運用可能な機械読み出し可能媒体に記憶され得る。さらに加えて、示されている実施形態では、グラフィックスエンティティ20は、変換機能を行うが、他の実施形態では、それらの機能は他のハードウェア18によって行われ得る。
【0012】
図2は、画像50の模式図である。画像50は、示されている変換機構によって変換される。変換機構は、透視変換関数を画像50に適用する。参照番号56において、結果の一点透視画像(one-point perspective image)が、概略的に示されている。一点透視画像56は、画像50の前景の視点における、より大きい幅から、画像50の消失点58へ向かって、より小さい幅へ変化する。本明細書において使用されているように、“消失点(vanishing point)”という用語は、一点透視画像56の全ての平行線が収束する点を指す。
【0013】
図2に示されているように、画像50は、幅(width, W)および高さ(height, H)をもつ。幅Wおよび高さHは、画素の単位で表現されているが、他の測定単位が使用されてもよい。画像50の高さHは、図2のy軸52に沿って伸び、画像の幅Wは、x軸54に沿って伸びている。図示されているように、図2において、画像50の幅の座標は、0からW−1まで伸び、高さの座標は、0からH−1まで伸びている。
【0014】
図2に示されているように、一点透視画像56は、上端の幅D、高さH、および下端の幅Wをもつ。下端の幅W、高さH、および上端の幅Dは、画素の単位で表現されているが、他の測定単位が使用されてもよい。
【0015】
画像50は、最初に、ディジタル写真撮影、ディジタル化に続くフィルム写真撮影、非写真源からのディジタル化、きれいなディジタルのイラストレーション/レンダリングを含む多くのやり方で生成され得る。特定のタイプの画像に対する本明細書において提示されている画像変換方法の個々の実施、および特定のプラットフォームまたはコンピューティングシステムは、さらに詳しく別途記載される。
【0016】
ほとんどの画像変換は、数式の組によって表わされる数学的変換関数の組として示されることができ、これらの式は、変換が実施される個々のプラットフォームに関係なく、画像に対して行われる演算を表わす。示されている実施形態のための透視変換関数の1つの例示的な組を示す数式は、式(1)および(2)として、次に与えられる。画像50内の各画素において、次の式が成立する。
【数1】
【0017】
式(1)ないし(6)において、(xin,yin)は、入力画素の位置であり、(xout,yout)は、出力画素の位置であり、xshiftは、一点透視画像56の上端の幅の左端点のx座標である。Wは、画像50の幅であり、これは、画像56の下端の幅でもある。Hは、画像50および画像56の両者の高さである。Dは、画像56における2本の平行エッジの短い方の長さである。消失点が画像より上にあるので、この場合は、短い方の平行エッジは、上端のエッジである。消失点が、元の画像50の左側、右側、または下側にあるとき、結果の透視画像56は、左側、右側、または下側へ向かって先細になる。このような場合は、短い方の平行エッジは、画像の左側、右側、または下側にある。
【0018】
式(6)において、定数a、b、c、およびdは、経験的に判断され、任意のサイズのあらゆる画像に使用されることができる。これらの定数は、一点透視画像56における透視縮約効果の量および滑らかさを決める。例えば、(a,b,c,d)に対する1組の可能な値は、(0.00402,−1.87736,0.50697,0.87585)である。
【0019】
式(2)および(6)は、透視画像における拡張および圧縮量を決める。式(2)の因数kは、透視画像における拡張および圧縮の量およびバリエーションを制御する。式(6)によって示されているように、因数kは、カメラ(すなわち、視点)と、消失点58との間の距離によって決まる。したがって、因数kは、一点透視画像56の高さH、上端の幅D、および下端の幅Wの関数として変化する。応用において、目的画像は、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化する。
【0020】
幅の比(D/W)は、0ないし1の間で変化し、消失点の位置によって決まる。小さい比率は、消失点がカメラに近いことを示す。大きい比率は、消失点がカメラから遠いことを示す。例えば、1に等しい幅の比は、消失点が無限遠にあることを示す。
【0021】
y座標の値は、カメラと画像内の点との間の距離を表わす。小さいy座標は、点がカメラに近いことを示す。その代わりに、大きいy座標は、点がカメラから遠いことを表わす。
【0022】
応用において、消失点が無限遠にあるとき、式(1)ないし(6)を使用して、520×390画素の画像を透視変換すると、図3aに示されている画像が生成され、これは、元の画像に相当する。さらに加えて、k=1、W=520画素、H=390画素、D=260画素、およびxshift=130画素であるとき、式(1)ないし(6)を使用して、520×390画素の画像を透視変換すると、図3bに示されている画像が生成される。なお、画像の下端は、カメラに近く、画像の上端は、カメラから遠い。
【0023】
上述の式の具体的な使用例として、図3bの画像を一例として使用すると、k=1、D=260画素、およびxshift=130画素であるとき、式(2)は、次の式に約される。
【数2】
【0024】
図3bに示されているように、元の画像の領域が、カメラにより近くなるほど、透視画像において、その領域はより拡張される。この透視縮約効果を得るために、y座標の値を1対2でマッピングすることが望ましい。例えば、yin=1であり、結果が整数に丸められるとき、式(7)は、次のようになる。
【数3】
【0025】
同様に、yin=2であるときは、次のようになる。
【数4】
【0026】
結果によって示されているように、yin=1に対するyoutの値とyin=2に対するyoutの値の間にはギャップがある。このギャップは、事実上、yout=2において、出力画素が生成されず、したがって、その位置における最初の出力画像には、出力画素が存在しないことを意味する。しかしながら、最初の出力画像内の空の画素の位置は、存在している画素を使用して、画素を補間および複製することによって埋められ、yinの画素値の望ましい1対2のマッピングで、最終的な出力画像を生成することができる。
【0027】
図3bに示されているように、元の画像の領域が、カメラからより遠くなるほど、透視画像において、その領域はより圧縮される。この透視縮約効果を得るために、入力画素と出力画素との2対1のマッピングが望ましい。例えば、yin=H−3=387であり、結果が整数に丸められるとき、式(7)は、次のようになる。
【数5】
【0028】
同様に、yin=H−2=388であるときは、次のようになる。
【数6】
【0029】
結果によって示されているように、youtの値間には、差異はなく、したがって、望ましい2対1のマッピングになる。他の実施形態において、異なる度合いの透視縮約が望まれるときは、式(6)における定数a、b、c、およびdを調節して、希望の透視効果を生むkの種々の値を得ることができる。
【0030】
変換方法は、整数マイクロプロセッサのような、限定された能力をもつコンピューティングシステム上で実行されるように実施され得る。幾つかの整数マイクロプロセッサは、浮動小数点(すなわち、10進法)の数学エミュレータを含むが、エミュレータを使用することは、より時間がかかり、計算のコストが高くなり得る。変換は、整数演算を使用して実施され得る。
【0031】
整数マイクロプロセッサ上で、式(1)ないし(6)のような変換式を実施するとき、2つの考慮すべき事柄が生じる。すなわち、整数演算のみを使用して、これらの式における冪関数を計算することと、整数のオーバーフロー(すなわち、計算される数が、マイクロプロセッサが処理できる最大整数を超える状態)を避けるように、演算を順序付けることとである。
【0032】
図4は、整数演算を使用して、上述の変換を行う例示的な埋め込まれたデバイス60のブロック図である。埋め込まれたデバイス60は、システムバス14に接続されたメインメモリ16、インターフェース19によってシステムバス14に接続されたグラフィックスエンティティ66、およびシステムバス14に接続された整数マイクロプロセッサ61を含んでいる。埋め込まれたデバイス60は、マイクロプロセッサに接続された変換演算ファシリテータ(transformation operations facilitator)62を含んでいる。変換演算ファシリテータ62の中には、整数演算ファシリテータ(integer operations facilitator)64が含まれている。
【0033】
変換演算ファシリテータ62は、式(6)における冪関数を計算し、マイクロプロセッサ61と互換性のあるやり方で、他の変換演算を行う。整数演算ファシリテータ64は、式(1)ないし(6)における必要な計算の全てが、整数演算を使用して、整数マイクロプロセッサ61における整数のオーバーフローを避ける計算順で行われることを保証する。(両者の構成要素62、64の機能、および行われる計算は、さらに詳しく別途記載される)。デバイス60のような埋め込まれたデバイスの長所は、浮動小数点エミュレータが使用されないことであり、これは、整数マイクロプロセッサ61上での変換をより効率的にする。変換演算ファシリテータ62および整数演算ファシリテータ64は、ハードウェアにおいて、ソフトウェアにおいて、ハードウェアとソフトウェアとのある組合せにおいて、あるいはマイクロプロセッサ61と互換性のある何か他のやり方で実施され得る。
【0034】
示されている実施形態において、式(6)における冪関数を計算するために、関数のテイラー級数の展開が使用される。任意の冪関数において、テイラー級数の展開は、式(8)によって与えられる。
【数7】
【0035】
任意のテイラー級数におけるように、加えられる項が、より多くなるのにしたがって、近似値は、より正確になる。しかしながら、使用されるテイラー級数の項が、より多くなるのにしたがって、処理は、計算のコストがより高くなる。さらに加えて、テイラー級数の連続する項が、最終的な結果に加える精度の量は、次第に小さくなる。したがって、冪関数を計算するのに使用されるテイラー級数の項の数は、希望の精度と、使用可能な計算能力とによって決まる。別途さらに詳しく記載される1つの実施において、テイラー級数の最初の4つの項が、極端な計算能力を要求することなく、十分な精度を与えることが分かった。a=2として、テイラー級数の最初の4つの項を使用すると、式(8)は、式(9)に約される。
【数8】
【0036】
式(9)は、厳密には整数項を含んでいないが、計算を行うために、非整数の項を整数に変換することができる。例えば、2の自然対数に210を乗算し(すなわち、左に10ビットシフトをし)、最も近い整数に丸め、710にすることができる。中間の算術演算は、2の自然対数に対するこの整数表現を使用して、計算され得る。中間の算術演算の全てを計算した後で、210で除算する(すなわち、右に10ビットシフトする)ことによって、最終的な結果を得ることができる。通常は、大きい整数の因数を使用し、したがって、多数の有効桁を使用して、可能な限り高い精度を保つことができる。しかしながら、より低い精度が望ましいときは、より小さい整数の因数を使用することができる。さらに加えて、浮動小数点数を整数に変換するとき、任意の大きい因数を使用することができるが、示されている実施形態では、2の冪が使用されており、比較的に遅い乗算の演算を、比較的に速いビットシフトの動作に代えることができる。
【0037】
透視の操作のために、式(9)の4つの項のテイラー級数の近似値と、216の整数変換の乗数とを使用する32ビットの整数マイクロプロセッサのための実施コードのサンプルを次に与える。
【表1】
【0038】
上述のコードの断片において、65536は、1×216であり、演算は、32ビットのマイクロプロセッサ上での整数のオーバーフローを避けるように順序付けられている。テイラー級数の値は、中間の変数c1、c2、およびc3で記憶される。最後のシフティングの動作は、216の乗数の影響を取り除く。
【0039】
上述のコードの断片は、32ビットの整数マイクロプロセッサに対して実時間の結果を与えることが分かっている。この記載されている実施形態は、Cでコード化され、32ビットのマイクロプロセッサ上で実施されているが、他の実施形態では、C、C++、Java(登録商標)、およびアセンブラを含む任意のプログラミング言語でコード化され、64ビットのマイクロプロセッサおよび128ビットのマイクロプロセッサを含む任意の能力をもつマイクロプロセッサ上で実施され得る。その実施では、整数のみの演算を使用する必要も、オーバーフローを避けるように順序付ける必要もない。これらの方法は、整数マイクロプロセッサ上で実施されると、ディジタルカメラを備えた移動電話またはポータブル電子デバイスにおける画像処理機能として与えられ得る。これらの方法は、ソフトウェア、ハードウェア、またはソフトウェアとハードウェアとの任意の組合せにおいて、マイクロプロセッサ、ASIC、またはそれらを実施するのに十分な計算能力をもつ任意の他のプラットフォーム上で実施され得ることも理解されるはずである。
【0040】
図5は、浮動小数点演算を使用して、上述の変換を行う例示的な埋め込まれたデバイス70のブロック図である。埋め込まれたデバイス70の構成要素は、埋め込まれたデバイス60の構成要素に概ね似ており、したがって、同様の構成要素に対しては、上述の記述で十分であるだろう。埋め込まれたデバイス60とは異なり、埋め込まれたデバイス70は、浮動小数点マイクロプロセッサ72を含んでいる。埋め込まれたデバイス70は、浮動小数点マイクロプロセッサ72に連結された変換演算ファシリテータ74をさらに含んでいるが、変換演算ファシリテータ74は、整数演算ファシリテータをもっていない。埋め込まれたデバイス70では、計算は、浮動小数点数を使用して行われ、例えば、式(1)ないし(6)の項を整数へ変換するタスクを省いている。示されている変換方法の整数のみの実施は、埋め込まれたデバイス70上で行なわれるとき、正しく機能するであろうが、マイクロプロセッサ72の浮動小数点の能力を使用することが好都合である。
【0041】
図6は、画像に透視変換を適用する方法100を示すより一般的なフローチャートである。方法100は、必要な計算を行うことができる任意のプラットフォーム上で実施され得る。
【0042】
方法100は、動作(act)102から始まり、制御は、動作104へ進む。動作104において、ユーザは、目的の入力画像を選択する。目的画像が選択されると、方法100は、続いて動作106へ進み、動作106において、入力画像の画素が選択される。動作106の後で、方法100は、続いて動作108へ進む。動作108において、画素は、上述の演算を行うことによって変換され、出力画像の結果の出力画素が生成される。次に、制御は動作109、すなわち、入力画像内に他の画素が残っているかどうかが判断される決定タスクへ進む。画像内に他の画素が残っている(参照番号109に対してイエスである)ときは、方法100の制御は、参照番号106へ戻る。画像内に他の画素が残っていない(参照番号109に対してノーである)ときは、制御は参照番号110へ進む。動作110において、完全な透視画像を生成するのに必要なこととして、出力画像内の欠けている画素の補間または複製が行なわれ得る。(最も単純な場合において、必要な画素の複製は、最も近い隣り合う画素の複写によって行われ得る)。完全な可視画像を生成するのに必要とされる他のタスク、例えば、出力画像ファイルに対するヘッダ情報の書き込みも、動作110において行われ得る。動作110が完了すると、方法100は終了し、動作112において、戻る。
【0043】
上述の一部において、変換される画像は、RGB(red-green-blue)フォーマットであると仮定されており、各画像の画素は、その画素の赤の内容の値、緑の内容の値、および青の内容の値をもつ。しかしながら、示されている変換方法は、最初にRGBへ変換することなく、他の画像形式に対して直接に使用できる。RGBフォーマットの画像は、比較的に変換し易いので、これは好都合であるが、圧縮するのがより難しく、一般に、より大きい記憶空間を消費する。
【0044】
2つの他の一般的な画像フォーマットは、YCbCrとYCrCbとである。RGB画像では、各画素について、赤、緑、および青の色の値に関して、データが記憶されるが、YCbCrおよびYCrCbのフォーマットでは、各画素について、ルミナンス(Y)の値およびクロミナンス(Cb、Cr)の値を記録することによって、画像データを記憶する。YCbCrおよびYCrCbのフォーマットは、それらが共通のJPEGの画像ファイルフォーマットにおいて使用されているので、一般的である。
【0045】
画像変換が、ディジタルカメラのようなポータブルデバイス上で実施されるとき、RGB、YCbCr、およびYCrCbの3つのフォーマットの全てが、ディジタルカメラにおいて使用され得るので、これらのフォーマットの画像に対して操作できることは好都合である。それは、ディジタル画像の生成および処理のやり方のためである。
【0046】
例えば、ほとんどのディジタルカメラの画像センサは、全3色の光ではなく、赤、緑、または青の光の1つのみに対して感知可能な個々のセンサセルから構成されている。したがって、個々のセルは、一般に、バイエルパターン(Bayer pattern)と呼ばれるパターンで配置されており、緑に対して感知可能なセルは、赤に対して感知可能なセルと、青に対して感知可能なセルとの間に、交互に分散させられている。人間の視覚系は、緑に対してより敏感であり、より多くの緑のセルを含むことは、知覚される画像品質を高める傾向があるので、消費者製品では、緑のセルが、通常、支配的(predominate)である。1つの典型的なバイエルパターンにおいて、16個のセルの配列は、8個の緑のセル、4個の赤のセル、および4個の青のセルを含み、これらは、ほぼチェス盤のパターンで配置され得る。画像が、バイエルパターン内の1色のセルを使用するディジタルデバイスによって得られるとき、生の画像は、通常、各画素が赤の値、緑の値、および青の値をもつように補間され、少なくとも処理の中間段階において、RGB画像として記憶される。画像は、圧縮および記憶のために、YCbCrまたはYCrCbにさらに変換され得る。
【0047】
YCbCrおよびYCrCbのフォーマットの画像は、上述の変換を適用することによって、直接的に処理され得るが、追加のタスクが、例えば、副標本をとられたYCbCrおよびYCrCb画像を用いて行われ得る幾つかの環境がある。副標本をとられた画像において、幾つかのクロミナンス値は、ファイルのサイズを低減するために、捨てられるか、または、副標本をとられる。例えば、一般的なH2V1のYCbCrの4:2:2のフォーマットでは、画素の列は、副標本をとられるが、画素の行は、影響されない。この副標本をとる方式において、列に、0から番号を付けるとき、偶数列のみが、Cb成分をもち、奇数列のみが、Cr成分をもつ。別の副標本をとるフォーマットは、YCbCrの4:2:0のフォーマットであり、各2×2の画素配列は、1つのCb値および1つのCr値を共有する。YCrCbフォーマットは、概ね、YCbCrと同じであるが、Cb成分とCr成分の順序が逆にされる。
【0048】
上述の変換方法は、副標本をとられたYCbCrおよびYCrCbフォーマットに直接的に適用され得るが、そうすると、Cb成分とCr成分とを正確に交互にしたとき、目的の画像にならないことがある。この問題を克服するために、副標本をとられた画像から、隣り合う画素の対を考慮して、適切なCb値およびCr値を複製し、各画素がCb値とCr値とをもつようにすることによって、仮の副標本をとられていない画像(YCbCr 4:4:4またはYCrCb 4:4:4)を生成し得る。変換後に、記憶するために、余分なCb値およびCr値は捨てられ得る。発明者によって行われた試験では、RGB画像の処理結果と、YCbCrおよびYCrCbフォーマットにおける同じ画像の処理結果との間に、視覚的に知覚可能な差は示されなかった。
【0049】
図7は、ディジタルカメラ202を備えた移動電話200の実施形態を示している。移動電話200およびそのディジタルカメラ202は、図1の目的画像選択機構24と、変換デバイス26、または本明細書に記載されている画像変換を行うための他の機構とを含んでいる。使用において、ユーザは、移動電話200のディジタルカメラ202を使用して、ディジタル写真を撮り、次に、移動電話200の処理能力を使用して、変換を行う。図7に示されているように、ディジタル画像204は、移動電話200のディスプレイスクリーン206上に表示される。ディスプレイスクリーン206は、グラフィックスエンティティ20によって駆動される比較的に小型の液晶ディスプレイであり得る。他のタイプのディスプレイスクリーン206も使用され得る。図示されているように、画像204は、眺望しているように、一点透視画へ変換されている。画像204に一時的に重ねられたオーバーレイまたはプルダウンメニュー214は、透視変換の大きさおよび方向の変更命令を与え得る。ユーザは、数字/文字キー212の幾つかの組合せを使用して、画像204上の透視縮約効果を変更するように指示され得る。実施によって、ユーザは、上述のように、変換関数のパラメータの値を直接的に変更できるときと、できないときがある。例えば、ユーザは、“透視因数”のような設定を簡単に変更でき、その値は、個々のパラメータ値にマップされる。
【0050】
実施によって、例えば、変換が、常に、同じ所定のマッピング値で透視変換されるように、変換パラメータは、ハードコード化されるか、またはデバイスへプリセットされてもよい。
【0051】
次の記述では、上述の実施形態にしたがう、記憶された画像の透視変換の実時間の応用を示す幾つかの例の結果を与える。各示されている事例は、幅の比、開始座標、および方向の種々の組合せを使用した、変換画像の透視図を与えている。
【0052】
図8は、幅の比、開始座標、および方向の4つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図8aは、消失点が視点に近いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=520、D/W=0.25、H=390、xshift=195、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0053】
図8bは、消失点が視点に近いときの、処理された520×390の画像の、下に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=520、D/W=0.25、H=390、xshift=195、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0054】
図8cは、消失点が視点に近いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=390、D/W=0.333、H=520、xshift=130、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0055】
図8dは、消失点が視点に近いときの、処理された520×390の画像の、右に方向を定められた透視図を示している。式(1)ないし(6)は、D=130、W=390、D/W=0.333、H=520、xshift=130、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0056】
図9は、幅の比、開始座標、および方向の2つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図9aは、消失点が視点から遠いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=450、W=520、D/W=0.865、H=390、xshift=35、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0057】
図9bは、消失点が視点から遠いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=338、W=390、D/W=0.867、H=520、xshift=26、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)をもつ画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0058】
図10は、幅の比、開始座標、および方向の2つの異なる組合せを使用して、520×390の画像に対する透視変換方法の応用を示している。図10aは、消失点が中心から外れて、視点に近いときの、処理された520×390の画像の、上に方向を定められた透視図を示している。式(1)ないし(6)は、D=65、W=520、D/W=0.125、H=390、xshift=0、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)の画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0059】
図10bは、消失点が中心から外れて、視点に近いときの、処理された520×390の画像の、左に方向を定められた透視図を示している。式(1)ないし(6)は、D=65、W=390、D/W=0.167、H=520、xshift=0、および(a,b,c,d)=(0.00402,−1.87736,0.50697,0.87585)の画像に適用される。なお、全ての測定値は、画素の単位で表現されている。
【0060】
ある特定の示された実施形態が記載されているが、本明細書に使用されている文章(words)は、制限の文章ではなく、説明の文章である。例えば、請求項の範囲内で、変更が行われ得る。
【特許請求の範囲】
【請求項1】
目的画像選択機構と、
目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かってより小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる変換機構とを含む埋め込まれたデバイス。
【請求項2】
目的画像選択機構を制御するユーザインターフェースをさらに含む請求項1記載の埋め込まれたデバイス。
【請求項3】
グラフィックスエンティティをさらに含み、目的画像選択機構および変換機構が、グラフィックスエンティティに連結されている請求項1記載の埋め込まれたデバイス。
【請求項4】
システムバスと、
メインメモリと、
グラフィックスエンティティに連結されたディスプレイスクリーンとをさらに含み、 メインメモリおよびグラフィックスエンティティが、システムバスに連結されている請求項3記載の埋め込まれたデバイス。
【請求項5】
埋め込まれたデバイスが、移動電話である請求項1記載の埋め込まれたデバイス。
【請求項6】
移動電話が、ディジタルカメラを含んでいる請求項5記載の埋め込まれたデバイス。
【請求項7】
透視変換機構が、整数演算ファシリテータおよび整数プロセッサを含み、整数演算のみを使用して、透視変換を行う請求項1記載の埋め込まれたデバイス。
【請求項8】
ユーザインターフェースが、ユーザが透視変換のためのパラメータを選択できるようにするオプションを含む請求項1記載の埋め込まれたデバイス。
【請求項9】
透視変換が、長さDおよびWの2本の平行エッジをもつ出力画像を生成し、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、変換機構は、次の式(1)および(2)を実行し、
【数1】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項1記載の埋め込まれたデバイス。
【請求項10】
整数演算ファシリテータが、オーバーフローを避けるように、変換の計算を順序付ける計算順序付け機構を含む請求項7記載の埋め込まれたデバイス。
【請求項11】
変換機構が、実時間で透視変換を行う請求項1記載の埋め込まれたデバイス。
【請求項12】
グラフィックスエンティティが、変換された目的画像をディスプレイスクリーン上に表示するディスプレイ機構を含む請求項4記載の埋め込まれたデバイス。
【請求項13】
データでコード化される機械読み出し可能媒体であって、コード化されたデータが、 目的画像を選択することと、
目的画像に透視変換を適用し、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させることとを行う機械と相互運用可能である機械読み出し可能媒体。
【請求項14】
コード化されたデータが、適用が整数演算のみで行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項15】
コード化されたデータが、ユーザが透視変換のためのパラメータを選択できるようする機械と相互運用可能である請求項14記載の機械読み出し可能媒体。
【請求項16】
コード化されたデータが、変換された目的画像が台形の形であるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項17】
コード化されたデータが、長さDおよびWの2本の平行エッジをもつ出力画像を生成する透視変換を行う機械と相互運用可能であり、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、コード化されたデータは、透視変換が次の式(1)および(2)にしたがって行われるようにし、
【数2】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項13記載の機械読み出し可能媒体。
【請求項18】
コード化されたデータが、変換機構に、オーバーフローを避けるように、所定の計算順序で計算を行わせる機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項19】
コード化されたデータが、透視変換が実時間で行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項20】
コード化されたデータが、埋め込まれたデバイスにおいて透視変換が行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項21】
コード化されたデータが、移動電話において透視変換が行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項22】
移動電話が、ディジタルカメラを含んでいる請求項21記載の機械読み出し可能媒体。
【請求項23】
コード化されたデータが、整数マイクロプロセッサを使用して、透視変換が行われるようにする機械と相互運用可能である請求項22記載の機械読み出し可能媒体。
【請求項24】
受信機/送信機組立体と、
マイクロプロセッサと、
マイクロプロセッサに連結された目的画像選択機構と、
マイクロプロセッサに連結されていて、目的画像に透視変換関数を適用し、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる変換機構とを含む移動電話。
【請求項25】
マイクロプロセッサが、整数マイクロプロセッサである請求項24記載の移動電話。
【請求項26】
変換機構が、整数演算のみを使用して、透視変換を適用する請求項24記載の移動電話。
【請求項27】
目的画像を選択する手段と、
透視変換を目的画像に適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させる手段とを含む装置。
【請求項28】
適用手段が、整数演算のみを使用して、透視変換を行う手段を含む請求項27記載の装置。
【請求項29】
ユーザが目的画像を選択できるようにする手段をさらに含む請求項27記載の装置。
【請求項30】
変換された目的画像が、台形の形である請求項28記載の装置。
【請求項31】
透視変換が、長さDおよびWの2本の平行エッジをもつ出力画像を生成し、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、透視変換は、次の式(1)および(2)によって表わされ、
【数3】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項27記載の装置。
【請求項1】
目的画像選択機構と、
目的画像に透視変換関数を適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かってより小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる変換機構とを含む埋め込まれたデバイス。
【請求項2】
目的画像選択機構を制御するユーザインターフェースをさらに含む請求項1記載の埋め込まれたデバイス。
【請求項3】
グラフィックスエンティティをさらに含み、目的画像選択機構および変換機構が、グラフィックスエンティティに連結されている請求項1記載の埋め込まれたデバイス。
【請求項4】
システムバスと、
メインメモリと、
グラフィックスエンティティに連結されたディスプレイスクリーンとをさらに含み、 メインメモリおよびグラフィックスエンティティが、システムバスに連結されている請求項3記載の埋め込まれたデバイス。
【請求項5】
埋め込まれたデバイスが、移動電話である請求項1記載の埋め込まれたデバイス。
【請求項6】
移動電話が、ディジタルカメラを含んでいる請求項5記載の埋め込まれたデバイス。
【請求項7】
透視変換機構が、整数演算ファシリテータおよび整数プロセッサを含み、整数演算のみを使用して、透視変換を行う請求項1記載の埋め込まれたデバイス。
【請求項8】
ユーザインターフェースが、ユーザが透視変換のためのパラメータを選択できるようにするオプションを含む請求項1記載の埋め込まれたデバイス。
【請求項9】
透視変換が、長さDおよびWの2本の平行エッジをもつ出力画像を生成し、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、変換機構は、次の式(1)および(2)を実行し、
【数1】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項1記載の埋め込まれたデバイス。
【請求項10】
整数演算ファシリテータが、オーバーフローを避けるように、変換の計算を順序付ける計算順序付け機構を含む請求項7記載の埋め込まれたデバイス。
【請求項11】
変換機構が、実時間で透視変換を行う請求項1記載の埋め込まれたデバイス。
【請求項12】
グラフィックスエンティティが、変換された目的画像をディスプレイスクリーン上に表示するディスプレイ機構を含む請求項4記載の埋め込まれたデバイス。
【請求項13】
データでコード化される機械読み出し可能媒体であって、コード化されたデータが、 目的画像を選択することと、
目的画像に透視変換を適用し、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させることとを行う機械と相互運用可能である機械読み出し可能媒体。
【請求項14】
コード化されたデータが、適用が整数演算のみで行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項15】
コード化されたデータが、ユーザが透視変換のためのパラメータを選択できるようする機械と相互運用可能である請求項14記載の機械読み出し可能媒体。
【請求項16】
コード化されたデータが、変換された目的画像が台形の形であるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項17】
コード化されたデータが、長さDおよびWの2本の平行エッジをもつ出力画像を生成する透視変換を行う機械と相互運用可能であり、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、コード化されたデータは、透視変換が次の式(1)および(2)にしたがって行われるようにし、
【数2】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項13記載の機械読み出し可能媒体。
【請求項18】
コード化されたデータが、変換機構に、オーバーフローを避けるように、所定の計算順序で計算を行わせる機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項19】
コード化されたデータが、透視変換が実時間で行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項20】
コード化されたデータが、埋め込まれたデバイスにおいて透視変換が行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項21】
コード化されたデータが、移動電話において透視変換が行われるようにする機械と相互運用可能である請求項13記載の機械読み出し可能媒体。
【請求項22】
移動電話が、ディジタルカメラを含んでいる請求項21記載の機械読み出し可能媒体。
【請求項23】
コード化されたデータが、整数マイクロプロセッサを使用して、透視変換が行われるようにする機械と相互運用可能である請求項22記載の機械読み出し可能媒体。
【請求項24】
受信機/送信機組立体と、
マイクロプロセッサと、
マイクロプロセッサに連結された目的画像選択機構と、
マイクロプロセッサに連結されていて、目的画像に透視変換関数を適用し、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させ、かつ目的画像を、目的画像の前景の視点における、より大きい拡張量およびより小さい圧縮量から、目的画像の消失点へ向かって、より小さい拡張量およびより大きい圧縮量へ変化させる変換機構とを含む移動電話。
【請求項25】
マイクロプロセッサが、整数マイクロプロセッサである請求項24記載の移動電話。
【請求項26】
変換機構が、整数演算のみを使用して、透視変換を適用する請求項24記載の移動電話。
【請求項27】
目的画像を選択する手段と、
透視変換を目的画像に適用して、目的画像を、目的画像の前景の視点における、より大きい幅から、目的画像の消失点へ向かって、より小さい幅へ変化させる手段とを含む装置。
【請求項28】
適用手段が、整数演算のみを使用して、透視変換を行う手段を含む請求項27記載の装置。
【請求項29】
ユーザが目的画像を選択できるようにする手段をさらに含む請求項27記載の装置。
【請求項30】
変換された目的画像が、台形の形である請求項28記載の装置。
【請求項31】
透視変換が、長さDおよびWの2本の平行エッジをもつ出力画像を生成し、Dは、短い方のエッジの長さであり、短い方のエッジは、x座標xstartから始まり、透視変換は、次の式(1)および(2)によって表わされ、
【数3】
kは、透視画像における拡張および圧縮の量および滑らかさを示す定数であり、Wは、画素における目的画像の幅であり、Hは、画素における目的画像の高さであり、xinおよびyinは、画素における目的画像の入力画素の座標であり、xoutおよびyoutは、画素における出力画素の座標である請求項27記載の装置。
【図1】
【図2】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図8c】
【図8d】
【図9a】
【図9b】
【図10a】
【図10b】
【図2】
【図3a】
【図3b】
【図4】
【図5】
【図6】
【図7】
【図8a】
【図8b】
【図8c】
【図8d】
【図9a】
【図9b】
【図10a】
【図10b】
【公開番号】特開2012−104114(P2012−104114A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−243674(P2011−243674)
【出願日】平成23年11月7日(2011.11.7)
【分割の表示】特願2007−534818(P2007−534818)の分割
【原出願日】平成17年9月28日(2005.9.28)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2011−243674(P2011−243674)
【出願日】平成23年11月7日(2011.11.7)
【分割の表示】特願2007−534818(P2007−534818)の分割
【原出願日】平成17年9月28日(2005.9.28)
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]