JP5882367B2 - Runtime conversion of planar 3D to stereoscopic 3D - Google Patents

Runtime conversion of planar 3D to stereoscopic 3D Download PDF

Info

Publication number
JP5882367B2
JP5882367B2 JP2013558122A JP2013558122A JP5882367B2 JP 5882367 B2 JP5882367 B2 JP 5882367B2 JP 2013558122 A JP2013558122 A JP 2013558122A JP 2013558122 A JP2013558122 A JP 2013558122A JP 5882367 B2 JP5882367 B2 JP 5882367B2
Authority
JP
Japan
Prior art keywords
projection matrix
view
model view
view projection
content
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.)
Expired - Fee Related
Application number
JP2013558122A
Other languages
Japanese (ja)
Other versions
JP2014516427A (en
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014516427A publication Critical patent/JP2014516427A/en
Application granted granted Critical
Publication of JP5882367B2 publication Critical patent/JP5882367B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/122Improving the 3D impression of stereoscopic images by modifying image signal contents, e.g. by filtering or adding monoscopic depth cues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/30Clipping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/275Image signal generators from 3D object models, e.g. computer-generated stereoscopic image signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/286Image signal generators having separate monoscopic and stereoscopic modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/60Shadow generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/80Shading

Description

本開示は、グラフィックスデータ処理に関し、より詳細には、立体視ビューのためのグラフィックスデータ処理に関する。   The present disclosure relates to graphics data processing, and more particularly to graphics data processing for stereoscopic views.

立体視ビューは、3次元(3D)ボリュームを包含するように見える知覚画像を指す。立体視ビューを生成するために、機器が、表示器の2次元(2D)エリア上に2つの画像を表示する。これらの2つの画像は、実質的に同様のコンテンツを含むが、2つの画像中の1つ以上の対応する画素の水平軸に沿ったわずかな変位を伴う。2Dエリア上のこれらの2つの画像の同時視認は、2つの画像を表示している2D表示器から飛び出すか、又は2D表示器に押し込まれる画像を視聴者に知覚させる。このようにして、2つの画像が表示器の2Dエリア上に表示されるが、視聴者は、3Dボリュームを包含するように見える画像を知覚する。   A stereoscopic view refers to a perceptual image that appears to encompass a three-dimensional (3D) volume. To generate a stereoscopic view, the device displays two images on a two-dimensional (2D) area of the display. These two images contain substantially similar content, but with a slight displacement along the horizontal axis of one or more corresponding pixels in the two images. Simultaneous viewing of these two images on the 2D area causes the viewer to perceive an image that pops out of or is pushed into the 2D display displaying the two images. In this way, two images are displayed on the 2D area of the display, but the viewer perceives an image that appears to encompass a 3D volume.

立体視ビューの2つの画像は、それぞれ、左眼画像及び右眼画像と呼ばれる。左眼画像は視聴者の左眼によって視認可能であり、右眼画像は視聴者の左眼によって視認可能でない。同様に、右眼画像は視聴者の右眼によって視認可能であり、左眼画像は視聴者の右眼によって視認可能でない。例えば、視聴者は特殊な眼鏡を着用し得、その眼鏡の左レンズは右眼画像を遮断し、左眼画像を通過させ、その眼鏡の右レンズは左眼画像を遮断し、右眼画像を通過させる。   The two images of the stereoscopic view are called a left eye image and a right eye image, respectively. The left eye image is visible with the viewer's left eye, and the right eye image is not visible with the viewer's left eye. Similarly, the right eye image can be visually recognized by the viewer's right eye, and the left eye image cannot be visually recognized by the viewer's right eye. For example, the viewer can wear special glasses, the left lens of the glasses blocks the right eye image, passes the left eye image, the right lens of the glasses blocks the left eye image, and the right eye image Let it pass.

左眼画像と右眼画像とは、水平軸に沿ったわずかな変位をもつ実質的に同様のコンテンツを含むが、(例えば、特殊な眼鏡のために)視聴者の両眼によって同時に視認可能でないので、視聴者の脳は、2つの画像を混合する(commingle)ことによって、対応する画素間のわずかな変位を解決する。混合することにより、視聴者は、2つの画像を、3Dボリュームをもつ画像として知覚することになる。   The left-eye and right-eye images contain substantially similar content with slight displacement along the horizontal axis, but are not simultaneously visible by the viewer's eyes (eg, due to special glasses) Thus, the viewer's brain resolves slight displacements between corresponding pixels by communing the two images. By mixing, the viewer will perceive the two images as an image with a 3D volume.

本出願は、そのそれぞれの内容全体が参照により本明細書に組み込まれる、2011年3月14日に出願された米国仮出願第61/452,289号、及び2011年4月12日に出願された米国仮出願第61/474,638号の利益を主張する。   This application is filed on US Provisional Application No. 61 / 452,289, filed March 14, 2011, and April 12, 2011, each of which is incorporated herein by reference in its entirety. Claims the benefit of US Provisional Application No. 61 / 474,638.

本開示では、機器に、3次元(3D)グラフィックスコンテンツを立体視3Dにおいてレンダリングさせることができる方法で、アプリケーションプログラムインターフェース(API)呼を修正するための技法について説明する。本開示の技法は、API呼自体は修正されるが、API自体及びGPUハードウェアは修正されない方法で実施され得る。   This disclosure describes techniques for modifying application program interface (API) calls in a manner that allows a device to render three-dimensional (3D) graphics content in stereoscopic 3D. The techniques of this disclosure may be implemented in a way that the API call itself is modified, but the API itself and the GPU hardware are not modified.

一例では、非立体視3DコンテンツをS3Dコンテンツに変換する方法は、アプリケーションプログラムインターフェース(API)呼(application program interface (API) call)を横取りすることと、API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するためにモデルビュー射影行列を修正することと、修正モデルビュー射影行列に基づいて、左ビュークリッピング座標(left view clipping coordinates)を生成することと、修正モデルビュー射影行列に基づいて、右ビュークリッピング座標(right view clipping coordinates)を生成することと、左ビュークリッピング座標に基づいて、左ビューを生成することと、右ビュークリッピング座標に基づいて、右ビューを生成することと、左ビューと右ビューとに基づいて、S3D画像をレンダリングすることとを含む。   In one example, a method for converting non-stereoscopic 3D content to S3D content is for intercepting an application program interface (API) call and for non-stereoscopic 3D content from an API call. Determining the model view projection matrix of the image, modifying the model view projection matrix to generate a modified model view projection matrix, and left view clipping coordinates based on the modified model view projection matrix Generating a right view clipping coordinates based on the modified model view projection matrix, generating a left view based on the left view clipping coordinates, and right view clipping Generate right view based on coordinates and left view And rendering the S3D image based on the right view.

別の例では、機器は、命令を記憶するメモリと、グラフィックス処理ユニット(GPU)と、プロセッサとを含む。プロセッサは、命令の実行時に、アプリケーションプログラムインターフェース(API)呼を横取りすることと、API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するためにモデルビュー射影行列を修正することと、GPUに、修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成させることと、GPUに、修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成させることと、GPUに、左ビュークリッピング座標に基づいて左ビューを生成させることと、GPUに、右ビュークリッピング座標に基づいて右ビューを生成させることと、GPUに、左ビューと右ビューとに基づいてS3D画像をレンダリングさせることとを行うように動作可能である。   In another example, the device includes a memory that stores instructions, a graphics processing unit (GPU), and a processor. The processor intercepts an application program interface (API) call when executing instructions, determines a model view projection matrix for non-stereoscopic 3D content from the API call, and generates a modified model view projection matrix Modifying the model view projection matrix to cause the GPU to generate left view clipping coordinates based on the modified model view projection matrix, and allowing the GPU to generate right view clipping coordinates based on the modified model view projection matrix. Generating a left view based on the left view clipping coordinates, causing the GPU to generate a right view based on the right view clipping coordinates, and causing the GPU to generate a left view and a right view. Rendering an S3D image based on Sea urchin is operational.

別の例では、非立体視3Dコンテンツ(non-stereoscopic 3D content)をS3Dコンテンツに変換するための装置は、アプリケーションプログラムインターフェース(API)呼を横取りするための手段と、API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定するための手段と、修正モデルビュー射影行列を生成するためにモデルビュー射影行列を修正するための手段と、修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成するための手段と、修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成するための手段と、左ビュークリッピング座標に基づいて左ビューを生成するための手段と、右ビュークリッピング座標に基づいて右ビューを生成するための手段と、左ビューと右ビューとに基づいてS3D画像をレンダリングするための手段とを含む。   In another example, an apparatus for converting non-stereoscopic 3D content into S3D content comprises: means for intercepting an application program interface (API) call; and non-stereoscopic 3D content from an API call. Means for determining a model view projection matrix for 3D content; means for modifying the model view projection matrix to generate a modified model view projection matrix; and left view clipping based on the modified model view projection matrix Means for generating coordinates; means for generating right view clipping coordinates based on a modified model view projection matrix; means for generating a left view based on left view clipping coordinates; and right view clipping coordinates To generate a right view based on the left view and right view And means for rendering S3D image Zui.

別の例では、コンピュータ可読記憶媒体は、実行されたとき、1つ以上のプロセッサに、アプリケーションプログラムインターフェース(API)呼を横取りすることと、API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するためにモデルビュー射影行列を修正することと、修正モデルビュー射影行列に基づいて、左ビュークリッピング座標を生成することと、修正モデルビュー射影行列に基づいて、右ビュークリッピング座標を生成することと、左ビュークリッピング座標に基づいて、左ビューを生成することと、右ビュークリッピング座標に基づいて、右ビューを生成することと、左ビューと右ビューとに基づいて、S3D画像をレンダリングすることとを行わせる命令を記憶する。   In another example, a computer-readable storage medium, when executed, intercepts an application program interface (API) call to one or more processors and from the API call, a model view for non-stereoscopic 3D content. Determining a projection matrix, modifying the model view projection matrix to generate a modified model view projection matrix, generating a left view clipping coordinate based on the modified model view projection matrix, and a modified model view Generating a right view clipping coordinate based on the projection matrix, generating a left view based on the left view clipping coordinate, generating a right view based on the right view clipping coordinate, and a left view And rendering the S3D image based on the right view That stores instructions.

本開示の1つ以上の態様の詳細を添付の図面及び以下の説明に記載する。本開示の他の特徴、目的、及び利点は、これらの説明及び図面、ならびに特許請求の範囲から明らかになろう。   The details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.

本開示で説明する1つ以上の例示的な技法を実施し得る例示的なシステムの機能を示すブロック図。1 is a block diagram illustrating functions of an example system that may implement one or more example techniques described in this disclosure. FIG. 本開示で説明する1つ以上の例示的な技法を実施し得る機器の一例を示すブロック図。1 is a block diagram illustrating an example of an apparatus that may implement one or more exemplary techniques described in this disclosure. 本開示の技法を使用して生成されるS3D視認エリアの幾何学的表現を示す図。FIG. 3 shows a geometric representation of an S3D viewing area generated using the techniques of this disclosure. 本開示の技法に従って実行され得るビューポートシフトの幾何学的表現を示す図。FIG. 6 illustrates a geometric representation of a viewport shift that can be performed in accordance with the techniques of this disclosure. 図2の例示的な機器を更に詳細に示すブロック図。FIG. 3 is a block diagram illustrating the exemplary device of FIG. 2 in further detail. 本開示で説明する1つ以上の例示的な技法による例示的な動作を示すフローチャート。6 is a flowchart illustrating example operations in accordance with one or more example techniques described in this disclosure.

本開示で説明する例示的な技法は、実行中又はランタイム中に立体視3次元(S3D)グラフィックをレンダリングすることを対象とする。従来の3Dグラフィックスレンダリングでは、グラフィックス処理ユニット(GPU)が、単一の視点(例えば、モノビュー)から3Dグラフィックスを生成する。この単一の視点は、視聴者の右眼と左眼の両方によって視認可能である単一の画像を意味し得る。   The exemplary techniques described in this disclosure are directed to rendering stereoscopic 3D (S3D) graphics during execution or runtime. In conventional 3D graphics rendering, a graphics processing unit (GPU) generates 3D graphics from a single viewpoint (eg, a mono view). This single viewpoint may mean a single image that is visible by both the viewer's right and left eyes.

S3Dグラフィックスは、S3Dグラフィックスが立体視ビューを生成するという点で3Dグラフィックスとは異なる。立体視ビューという用語は、両眼視点から生成される画像を指す。両眼視点では、2つの画像があり得、1つの画像は、一方の眼によって視認可能であり、他方の眼によって視認可能でなく、その逆も同様である。例えば、視聴者が双眼鏡を着用したとき、双眼鏡の左レンズを通って入る光は、左眼によって視認可能であり、右眼によって視認可能でなく、その逆も同様である。両眼視点は立体視ビューと呼ばれることがある。   S3D graphics differ from 3D graphics in that S3D graphics generates a stereoscopic view. The term stereoscopic view refers to an image generated from a binocular viewpoint. In a binocular viewpoint, there can be two images, one image visible by one eye, not visible by the other eye, and vice versa. For example, when a viewer wears binoculars, light that enters through the left lens of the binoculars is visible with the left eye, not visible with the right eye, and vice versa. The binocular viewpoint is sometimes called a stereoscopic view.

例えば、S3Dグラフィックスでは、GPUは、左眼のための画像と右眼のための別の画像とを生成し得、即ち、立体視ビューを生成し得る。立体視ビューという用語は、表示器上にそれぞれ表示される2つの画像(例えば、左眼画像及び右眼画像)を指すが、モノビューは、表示器上に表示される単一の画像を指す。左眼画像と右眼画像との組合せは、視聴者にとっては、画像が、画像を表示している表示器から飛び出しているか、又は表示器に押し込まれているかのように見え得る。これにより、より現実的でよりリッチな視認経験を生じ得る。   For example, in S3D graphics, the GPU may generate an image for the left eye and another image for the right eye, i.e., generate a stereoscopic view. The term stereoscopic view refers to two images (eg, a left eye image and a right eye image) that are each displayed on a display, while a mono view refers to a single image that is displayed on a display. . The combination of the left eye image and the right eye image can appear to the viewer as if the image is popping out of the display displaying the image or being pushed into the display. This can result in a more realistic and richer viewing experience.

本開示では、S3D画像(例えば、立体視ビュー)及び3D画像(例えば、モノビュー)の概念は、混同されるべきでない。3D画像は、表示器の2次元(2D)エリアに制限される画像である。例えば、3D画像内の物体は、3D画像内の他の物体よりも遠く離れているか、又は近接しているように見え得る。しかしながら、これらの物体の全ては、表示器の2Dエリアに限定される。S3D画像は、視聴者の脳が右眼画像と左眼画像とを組み合わせることから生じる知覚画像である。得られた画像(即ち、S3D画像)は、表示器の2Dエリアに制限されないように見える。そうではなく、S3D画像は、画像が表示器から飛び出すか、表示器に押し込まれるように見える3Dボリュームを包含するように見える。例えば、S3D画像内の物体は、3Dボリューム内の他の物体よりも遠く離れているか、又は近接しているように見え、3D画像の場合のように2Dエリアでないように見える。   In the present disclosure, the concepts of S3D images (eg, stereoscopic views) and 3D images (eg, mono views) should not be confused. A 3D image is an image that is limited to a two-dimensional (2D) area of the display. For example, objects in a 3D image may appear farther away or closer than other objects in the 3D image. However, all of these objects are limited to the 2D area of the display. The S3D image is a perceptual image that results from the combination of the right eye image and the left eye image by the viewer's brain. The resulting image (ie, S3D image) appears not to be limited to the 2D area of the display. Instead, the S3D image appears to encompass a 3D volume where the image appears to jump out of the display or be pushed into the display. For example, objects in an S3D image appear farther away or closer than other objects in a 3D volume, and appear not to be 2D areas as in the case of 3D images.

S3D画像を互いに形成する右眼画像と左眼画像とは、3D画像であり得る。視聴者の脳が3D右眼画像と3D左眼画像とを組み合わせたとき、視聴者にS3D画像を知覚させるのは、その脳である。右眼画像と左眼画像とのコンテンツは、単一の3D画像のコンテンツと実質的に同様であり得る。本開示では、3DグラフィックスコンテンツをS3Dコンテンツに変換するための技法について説明する。本開示の技法を使用することによって、多くの既存の3Dグラフィックスコンテンツは、S3Dグラフィックスコンテンツに変換され、立体視表示器上に表示され得る。   The right eye image and the left eye image that form the S3D image with each other may be 3D images. When the viewer's brain combines the 3D right-eye image and the 3D left-eye image, it is the brain that causes the viewer to perceive the S3D image. The content of the right eye image and the left eye image can be substantially similar to the content of a single 3D image. This disclosure describes techniques for converting 3D graphics content to S3D content. By using the techniques of this disclosure, many existing 3D graphics content can be converted to S3D graphics content and displayed on a stereoscopic display.

本開示はまた、GPUに、説明する3D−S3D変換を実行させることができる方法で、アプリケーションプログラムインターフェース(API)呼を修正するための技法について説明する。本開示の技法は、API又はGPUが修正されるのとは反対に、API呼自体のみが修正される方法で実施され得る。   The present disclosure also describes techniques for modifying application program interface (API) calls in a manner that allows a GPU to perform the described 3D-S3D conversion. The techniques of this disclosure may be implemented in a way that only the API call itself is modified, as opposed to the API or GPU being modified.

天然3Dコンテンツ(native 3D content)からS3Dコンテンツを生成するために、本開示の技法は、3D−S3D変換のための技法を含む。本技法は、3Dアプリケーションから3DグラフィックスAPIへの選択されたAPI呼を横取り(インターセプト)するためのソフトウェアを含む。横取りされたAPI呼は、グラフィックを生成するためのシステムに、ランタイム中にS3D表示器上に表示され得る両眼ビューを作成させる方法で修正され得、それにより、レンダリングされたコンテンツを視認するユーザに対してS3D効果を作成し得る。2つの画像、即ち左眼画像と右眼画像とは、天然3Dコンテンツの分析に基づいて、同じグラフィックスパイプラインによってレンダリングされ得る。2つの画像は、視認する位置及び/又は方向について異なるセットアップを使用して生成され得る。本開示の技法を実施しているシステムは、モバイル機器において使用されるOpenGL ES APIなど、グラフィックスAPIの右上に配置され得、3DグラフィックスアプリケーションからのAPI呼が横取りされることを可能にする。幾つかの実施形態では、3D−S3D変換システムは、ソフトウェアを使用してのみ実施され得、GPUハードウェア、グラフィックスドライバコードに対する変更、又は3Dグラフィックスアプリケーションコンテンツに対する変更を必要とすることなしに実施され得る。本開示の技法は、OpenGL、OpenGL ES、及び他のグラフィックスAPIとともに適用され得る。   In order to generate S3D content from native 3D content, the techniques of this disclosure include techniques for 3D-S3D conversion. The technique includes software for intercepting a selected API call from a 3D application to a 3D graphics API. The intercepted API call can be modified in a way that causes the system for generating graphics to create a binocular view that can be displayed on the S3D display during runtime, thereby allowing the user to view the rendered content. Can create S3D effects. Two images, a left eye image and a right eye image, can be rendered by the same graphics pipeline based on an analysis of natural 3D content. The two images can be generated using different setups for viewing position and / or orientation. A system implementing the techniques of this disclosure may be placed in the upper right corner of a graphics API, such as the OpenGL ES API used in mobile devices, allowing API calls from 3D graphics applications to be intercepted. . In some embodiments, the 3D-S3D conversion system can only be implemented using software without requiring changes to GPU hardware, graphics driver code, or 3D graphics application content. Can be implemented. The techniques of this disclosure may be applied with OpenGL, OpenGL ES, and other graphics APIs.

天然3DコンテンツをS3Dコンテンツに変換するための技法は、現在、当技術分野に存在するが、これらの技法のうちの多くは、それらが、常に知られているとは限らない情報の知識をAPI呼に要求するので、適用例が限られているか、又はそれらが、常に正確であるとは限らないS3D視認空間に関する仮定を行うので、S3D画質が不十分になる。本開示では、幾つかの事例において、広く使用可能であり、及び良好な画質を生じる3D−S3D変換技法について説明する。   Techniques for converting natural 3D content to S3D content currently exist in the art, but many of these techniques require the knowledge of information that they are not always known to API. Since the call is requested, the application is limited, or they make assumptions about the S3D viewing space that are not always accurate, resulting in poor S3D image quality. This disclosure describes 3D-S3D conversion techniques that, in some cases, are widely available and produce good image quality.

図1は、本開示の技法を実施することができる例示的な3D−S3D変換システム100の機能図である。図1のシステム100は機能的概観を与えるものである。システム100は、3Dグラフィックスコンテンツ112と、3D−S3D変換を使用可能にするためのシステムコマンド116と、イネーブルS3Dモジュール120と、3D−S3D変換モジュール124と、API128と、頂点処理モジュール132と、左ビニングユニット136(left binning unit)と、右ビニングユニット(right binning unit)140と、画素処理モジュール144と、左フレームバッファ148と、右フレームバッファ152と、左画像156と、右画像160とを含む。システム100の部分について、より詳細に、追加のハードウェア及びソフトウェア構成要素に関して、本開示の後半で説明する。更に、以下でより詳細に説明するように、頂点処理モジュール132、左ビニングユニット136、右ビニングユニット140、及び画素処理モジュール144など、システム100の幾つかの部分がGPUの一部として実施され得る。   FIG. 1 is a functional diagram of an exemplary 3D-S3D conversion system 100 in which the techniques of this disclosure may be implemented. The system 100 of FIG. 1 provides a functional overview. The system 100 includes 3D graphics content 112, a system command 116 for enabling 3D-S3D conversion, an enable S3D module 120, a 3D-S3D conversion module 124, an API 128, a vertex processing module 132, A left binning unit 136, a right binning unit 140, a pixel processing module 144, a left frame buffer 148, a right frame buffer 152, a left image 156, and a right image 160. Including. Portions of system 100 are described in more detail later in this disclosure with respect to additional hardware and software components. Further, as will be described in more detail below, some parts of the system 100 may be implemented as part of the GPU, such as the vertex processing module 132, the left binning unit 136, the right binning unit 140, and the pixel processing module 144. .

3Dグラフィックスコンテンツ112及びシステムコマンド116は、コンピュータコードの形態でシステムメモリに記憶され得る。3Dグラフィックスコンテンツ112は、例えば、3D画像を生成するために使用されるグラフィックスコマンドを含むことができる。OpenGL ES APIを使用するときに、例えば、グラフィックスコマンドは、glDrawArrays()及びglDrawElements()などのglDrawコマンドを含むことができ、グラフィックスコマンドについては、以下でより詳細に説明する。   The 3D graphics content 112 and system commands 116 may be stored in system memory in the form of computer code. The 3D graphics content 112 can include, for example, graphics commands that are used to generate a 3D image. When using the OpenGL ES API, for example, graphics commands can include glDraw commands such as glDrawArrays () and glDrawElements (), which are described in more detail below.

3D−S3D変換は、システムコマンド116によって使用可能にされ得る。システムコマンド116は、例えば、ユーザ入力コマンドを表し得るか、又はアプリケーションプロセッサによって実行されているアプリケーション内に含まれているコマンドであり得る。3D−S3Dが使用可能にされないとき、3Dグラフィックスコンテンツ112は、3D画像を生成するための通常の方法で処理され得る。そのような場合、点線で示すシステム100の部分は、利用されないことがあるか、又は存在しないことがあるが、システム100の他の部分は、左画像と右画像とは反対に単一のモノビュー画像を処理する。3D−S3D変換が使用可能にされなかった(例えば、120のいいえを参照)とき、修正されていないAPI呼がAPI128に送られる。修正されていないAPI呼は、概して、それらの元の形態でAPI128に送られる、3Dグラフィックスコンテンツ112からのAPI呼を指す。   3D-S3D conversion may be enabled by system command 116. System command 116 may represent, for example, a user input command or may be a command included in an application being executed by an application processor. When 3D-S3D is not enabled, 3D graphics content 112 can be processed in the usual way to generate 3D images. In such a case, the portion of the system 100 shown as a dotted line may or may not be utilized, but other portions of the system 100 may be a single mono object as opposed to the left and right images. Process the view image. When 3D-S3D conversion is not enabled (see, for example, 120 no), an unmodified API call is sent to API 128. An unmodified API call generally refers to an API call from 3D graphics content 112 that is sent to API 128 in their original form.

3D−S3D変換が使用可能にされたとき(例えば、120のはいを参照)、3D−S3D変換モジュール124は、グラフィックスコンテンツ112のAPI呼を横取りし、それらに単一のモノビューとは反対に左眼ビューと右眼ビューとを生成させる方法でAPI呼を修正することができる。次いで、3D−S3D変換モジュール124によって生成された修正API呼は、GPUに左眼画像と右眼画像とをレンダリングさせるために、API128によって必要とされ得る。修正API呼は、左フレームバッファ148に記憶されるべき左眼画像と、右フレームバッファ152に記憶されるべき右眼画像とを生成するために、頂点処理モジュール132と、左ビニングユニット136と、右ビニングユニット140と、画素処理モジュール144とによって実行され得る。システム100の例では、3D−S3D変換モジュール124は、API呼を横取りし、それらのAPI呼への修正を実行するように構成された、アプリケーションプロセッサ上で動作するアプリケーションを表す。API呼への修正は、3Dグラフィックスコンテンツが、GPUによってS3Dグラフィックスコンテンツとしてレンダリングされることを可能にする。   When 3D-S3D conversion is enabled (see eg, 120 for yes), the 3D-S3D conversion module 124 intercepts the API calls for graphics content 112 and is opposed to them as a single mono view The API call can be modified in a way that causes the left eye view and right eye view to be generated. The modified API call generated by the 3D-S3D conversion module 124 may then be required by the API 128 to cause the GPU to render the left eye image and the right eye image. The modified API call generates a left eye image to be stored in the left frame buffer 148 and a right eye image to be stored in the right frame buffer 152, a vertex processing module 132, a left binning unit 136, It can be executed by the right binning unit 140 and the pixel processing module 144. In the example system 100, the 3D-S3D conversion module 124 represents an application running on an application processor that is configured to intercept API calls and perform modifications to those API calls. Modification to the API call allows 3D graphics content to be rendered as S3D graphics content by the GPU.

典型的な3Dグラフィックスパイプラインでは、3Dグラフィックスコンテンツは、第1に、幾何学的基本形(geometries primitives)を記述する基本形データの形態である。左画像と右画像の両方について、頂点処理ユニット132は、幾何学的基本形データに基づいて2D表示平面内の画素位置のセットを生成することができる。左ビニングユニット136は、タイルごとに左画像に関連する幾何学的基本形を組み立てることができ、タイルは左画像の一部分に対応する。同様に、右ビニングユニット140は、タイルごとに右画像に関連する幾何学的基本形を組み立てることができる。左画像のタイルと右画像のタイルとの各々について、画素処理ユニット144は、頂点処理ユニット132によって決定された画素についての属性を計算することができる。画素処理モジュール144は、左画像(例えば、左画像156)を左フレームバッファ148に出力することができ、右画像(例えば、右画像160)を右フレームバッファ152に出力することができる。左画像156と右画像160とは、S3D画像を生成するために、S3D表示器上に同時に表示され得る。このようにして、3Dグラフィックスコンテンツ112はS3Dグラフィックスコンテンツを含まないが、システム100の出力は、依然としてS3D画像であり得る。   In a typical 3D graphics pipeline, 3D graphics content is primarily in the form of basic data that describes geometric primitives. For both the left and right images, the vertex processing unit 132 can generate a set of pixel positions in the 2D display plane based on the geometric primitive data. The left binning unit 136 can assemble a geometric basis associated with the left image for each tile, with the tile corresponding to a portion of the left image. Similarly, the right binning unit 140 can assemble the geometric basis associated with the right image for each tile. For each of the left and right image tiles, the pixel processing unit 144 can calculate attributes for the pixels determined by the vertex processing unit 132. The pixel processing module 144 can output a left image (eg, the left image 156) to the left frame buffer 148 and can output a right image (eg, the right image 160) to the right frame buffer 152. The left image 156 and the right image 160 can be displayed simultaneously on the S3D display to generate an S3D image. In this way, 3D graphics content 112 does not include S3D graphics content, but the output of system 100 may still be an S3D image.

頂点処理モジュール132と、左ビニングユニット136と、右ビニングユニット140と、画素処理モジュール144とによって実行される機能は、図2に関して以下でより詳細に説明する。幾つかの構成では、システムは、右眼画像に専用の様々なハードウェア構成要素と、左眼画像に専用の様々なハードウェア構成要素とを含み得る。しかしながら、他の実施形態では、右眼画像と左眼画像の両方について、同じ構成要素が使用され得る。図1のシステム100では、例えば、頂点処理モジュール132と画素処理モジュール144とはソフトウェアで実施され得るが、左ビニングユニット136と、右ビニングユニット140と、左フレームバッファ148と、右フレームバッファ150とはハードウェアで実施される。しかしながら、他の構成では、頂点処理モジュール132と、画素処理モジュール144とはハードウェアで実施され得るか、又は左フレームバッファ148と右フレームバッファ152とは、左画像と右画像の両方を保持する単一のフレームバッファによって置き換えられ得る。更に、前述のように、システム100は、本開示の技法を実施することができるシステムの機能的概観を与えるものにすぎず、グラフィックスパイプラインの幾つかの態様は、説明のために簡略化又は省略されている。   The functions performed by the vertex processing module 132, the left binning unit 136, the right binning unit 140, and the pixel processing module 144 are described in more detail below with respect to FIG. In some configurations, the system may include various hardware components dedicated to the right eye image and various hardware components dedicated to the left eye image. However, in other embodiments, the same components can be used for both the right eye image and the left eye image. In the system 100 of FIG. 1, for example, the vertex processing module 132 and the pixel processing module 144 may be implemented in software, but the left binning unit 136, the right binning unit 140, the left frame buffer 148, and the right frame buffer 150 Is implemented in hardware. However, in other configurations, the vertex processing module 132 and the pixel processing module 144 may be implemented in hardware, or the left frame buffer 148 and the right frame buffer 152 hold both the left and right images. It can be replaced by a single frame buffer. Further, as described above, the system 100 only provides a functional overview of the system in which the techniques of this disclosure can be implemented, and some aspects of the graphics pipeline are simplified or described for purposes of illustration. It is omitted.

図2は、本開示で説明する1つ以上の例示的な技法を実施し得る機器の一例を示すブロック図である。例えば、図2は機器210を示す。機器210の例には、限定はしないが、モバイルワイヤレス電話、携帯情報端末(PDA)、ビデオ表示器を含むビデオゲーミングコンソール、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックスなどがある。図2に示すように、機器210は、アプリケーションプロセッサ212と、グラフィックス処理ユニット(GPU)220と、システムメモリ226とを含み得る。機器210は、図2に示す構成要素に加えて、構成要素を含み得る。本開示の部分では、概して、アプリケーションプロセッサとGPUの両方を利用するシステムに関する3D−S3D変換技法について説明するが、本開示で説明する技法は、必ずしもそのようなシステムに限定されるとは限らない。例えば、本開示の3D−S3D変換技法の一部は、幾つかの事例では、GPUなしにアプリケーションプロセッサによってのみ実行され得る。   FIG. 2 is a block diagram illustrating an example of an apparatus that may implement one or more exemplary techniques described in this disclosure. For example, FIG. Examples of equipment 210 include, but are not limited to, mobile wireless telephones, personal digital assistants (PDAs), video gaming consoles including video displays, mobile video conferencing units, laptop computers, desktop computers, television set top boxes, etc. There is. As shown in FIG. 2, the device 210 may include an application processor 212, a graphics processing unit (GPU) 220, and a system memory 226. The device 210 may include components in addition to the components shown in FIG. Although portions of this disclosure generally describe 3D-S3D conversion techniques for systems that utilize both an application processor and a GPU, the techniques described in this disclosure are not necessarily limited to such systems. . For example, some of the 3D-S3D conversion techniques of this disclosure may be performed only by an application processor without a GPU in some cases.

アプリケーションプロセッサ212は、機器210の中央処理ユニット(CPU)であり得る。GPU220は、表示器上のプレゼンテーションのためのグラフィックスデータを出力するように動作可能な処理ユニットであり得る。アプリケーションプロセッサ212及びGPU220の例には、限定はしないが、デジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又は個別論理回路(discrete logic circuitry.)がある。   Application processor 212 may be a central processing unit (CPU) of device 210. The GPU 220 may be a processing unit operable to output graphics data for presentation on a display. Examples of application processor 212 and GPU 220 include, but are not limited to, a digital signal processor (DSP), a general purpose microprocessor, an application specific integrated circuit (ASIC), a field programmable logic array (FPGA), or other equivalent integrated circuit. Or there are discrete logic circuitry.

システムメモリ226はコンピュータ可読記憶媒体の一例であり得る。例えば、システムメモリ226は、本開示では、アプリケーションプロセッサ212とGPU220とに、各々に起因する機能を実行させる命令を記憶し得る。このようにして、システムメモリ226は、1つ以上のプロセッサ、例えば、アプリケーションプロセッサ212又はGPU220に様々な機能を実行させる命令を備えるコンピュータ可読記憶媒体と見なされ得る。   System memory 226 can be an example of a computer-readable storage medium. For example, in the present disclosure, the system memory 226 may store instructions that cause the application processor 212 and the GPU 220 to execute functions attributable to each. In this manner, system memory 226 can be considered a computer-readable storage medium comprising instructions that cause one or more processors, eg, application processor 212 or GPU 220 to perform various functions.

システムメモリ226の例には、限定はしないが、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能ROM(EEPROM)、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ、又は命令若しくはデータ構造の形態の所望のプログラムコードを搬送又は記憶するために使用され得、コンピュータ又はプロセッサによってアクセスされ得る、任意の他の媒体がある。システムメモリ226は、幾つかの例では、非一時的記憶媒体と見なされ得る。「非一時的」という用語は、記憶媒体が、搬送波又は伝搬信号では実施されないことを示し得る。ただし、「非一時的」という用語は、システムメモリ226が非可動であることを意味するものと解釈されるべきでない。一例として、システムメモリ226は、機器210から取り外され、別の機器に移され得る。別の例として、システムメモリ226と実質的に同様の記憶装置機器が、機器210中に挿入され得る。幾つかの例では、非一時的記憶媒体は、時間経過に伴って変動し得るデータを(例えば、RAMに)記憶し得る。   Examples of system memory 226 include, but are not limited to, random access memory (RAM), read only memory (ROM), electrically erasable ROM (EEPROM), CD-ROM or other optical disk storage device, magnetic disk storage device. Or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and accessed by a computer or processor. System memory 226 may be considered a non-transitory storage medium in some examples. The term “non-transitory” may indicate that the storage medium is not implemented with a carrier wave or a propagated signal. However, the term “non-transitory” should not be construed to mean that the system memory 226 is non-movable. As an example, system memory 226 may be removed from device 210 and transferred to another device. As another example, a storage device that is substantially similar to the system memory 226 may be inserted into the device 210. In some examples, the non-transitory storage medium may store data (eg, in RAM) that may vary over time.

GPU220は、固定機能パイプラインをもつGPUの一例を示すが、本開示の技法はまた、プログラム可能な要素を含むGPUを使用して実施され得る。GPU220は、頂点プロセッサ222と画素プロセッサ224とを含む。頂点プロセッサ222は、頂点処理機能を実行するハードウェアユニットを含み得るが、画素プロセッサは、画素処理機能を実行するハードウェアユニットを含み得る。言い換えれば、頂点プロセッサ222と画素プロセッサ224とは、固定機能と最小機能的フレキシビリティとをもつハードウェアユニットを含み得る。しかしながら、前述のように、本開示の技法は、固定機能パイプラインをもつGPUに限定されるものではない。   Although GPU 220 illustrates an example of a GPU with a fixed function pipeline, the techniques of this disclosure may also be implemented using a GPU that includes programmable elements. The GPU 220 includes a vertex processor 222 and a pixel processor 224. The vertex processor 222 may include a hardware unit that performs vertex processing functions, while the pixel processor may include a hardware unit that performs pixel processing functions. In other words, the vertex processor 222 and the pixel processor 224 may include hardware units with fixed functions and minimal functional flexibility. However, as described above, the techniques of this disclosure are not limited to GPUs with fixed function pipelines.

本開示で説明する例示的な技法は、API呼を横取りし、修正API呼を生成するためにAPI呼を修正するためにアプリケーションプロセッサ212によって実行されるソフトウェアアプリケーションを利用し得る。このソフトウェアアプリケーションをグラフィックスドライバラッパー216として図2に示す。修正API呼を使用して、GPU220はS3Dグラフィックスをレンダリングすることができる。   The example techniques described in this disclosure may utilize a software application executed by application processor 212 to intercept an API call and modify the API call to generate a modified API call. This software application is shown as a graphics driver wrapper 216 in FIG. Using the modified API call, GPU 220 can render S3D graphics.

上記で説明したように、立体視ビューは、左眼画像と右眼画像とを含む。左眼画像と右眼画像とは、モノビュー画像として実質的に同様の画像コンテンツを含むが、しかしながら、左眼画像と右眼画像との1つ以上の対応する画素は、互いに対する水平軸上に沿って変位させられ得る。例えば、右眼画像が左眼画像の上に配置されることを考える。この場合、右眼画像中のコンテンツの全ては、左眼画像中の同等のコンテンツとともに完全に整列しないことがある。そうではなく、右眼における1つ以上の物体は、左眼画像中の同等の物体の左側又は右側にあり得る。   As described above, the stereoscopic view includes a left eye image and a right eye image. A left eye image and a right eye image include substantially similar image content as a monoview image, however, one or more corresponding pixels of the left eye image and the right eye image are on a horizontal axis relative to each other. Can be displaced along. For example, consider that the right eye image is placed on the left eye image. In this case, all of the content in the right eye image may not be perfectly aligned with the equivalent content in the left eye image. Rather, one or more objects in the right eye can be to the left or right of an equivalent object in the left eye image.

左眼画像は視聴者の左眼によって視認可能であり、右眼画像は視聴者の左眼から遮断される。右眼画像は視聴者の右眼によって視認可能であり、左眼画像は視聴者の右眼から遮断される。幾つかの例では、視聴者は、左眼画像が右眼によって視認可能であることを阻止し、右眼画像が左眼によって視認可能であることを阻止する特殊な眼鏡を着用し得る。しかしながら、本開示の態様は、必ずしも、視聴者に特殊な眼鏡を着用するように要求するとは限らない。例えば、幾つかの表示器は、立体視ビューを経験するために、視聴者に特殊な眼鏡を着用するように要求しない。本開示の技法は、そのような状況に拡張され得る。   The left eye image is visible by the viewer's left eye, and the right eye image is blocked from the viewer's left eye. The right eye image can be visually recognized by the viewer's right eye, and the left eye image is blocked from the viewer's right eye. In some examples, the viewer may wear special glasses that prevent the left eye image from being visible by the right eye and prevent the right eye image from being visible by the left eye. However, aspects of the present disclosure do not necessarily require viewers to wear special glasses. For example, some displays do not require the viewer to wear special glasses to experience a stereoscopic view. The techniques of this disclosure may be extended to such situations.

視聴者が左眼画像と右眼画像の両方を同時に視認するときに、視聴者の脳が、視聴者に、2つの画像を表示している表示器の中から飛び出すか、表示器に押し込まれる画像を知覚させる(例えば、表示器の前方に、又は表示器の後ろにあるように見える)ように、GPU220は、左眼画像と右眼画像とのためのグラフィックスデータを生成し得る。この飛び出すか、又は押し込まれることは、視聴者の脳が、実質的に同様のコンテンツをもつ立体視ビューの2つの画像中の水平方向不一致を解決することによる。   When the viewer views both the left-eye image and the right-eye image at the same time, the viewer's brain pops out of the display displaying the two images or is pushed into the display The GPU 220 may generate graphics data for the left eye image and the right eye image so that the image is perceived (eg, appears to be in front of or behind the display). This popping or being pushed is due to the viewer's brain resolving a horizontal discrepancy in the two images of the stereoscopic view with substantially similar content.

一例として、アプリケーションプロセッサ212は、システムメモリ226に記憶されたアプリケーション232など、1つ以上のアプリケーションを実行し得る。アプリケーション232の例には、限定はしないが、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、又は表示するための視認可能物体を生成する他のアプリケーションがある。例えば、アプリケーション232は、実行されたとき、表示器上に表示される3Dグラフィカルコンテンツを出力するビデオゲームであり得る。   As an example, application processor 212 may execute one or more applications, such as application 232 stored in system memory 226. Examples of application 232 include, but are not limited to, web browsers, email applications, spreadsheets, video games, or other applications that generate viewable objects for display. For example, application 232 may be a video game that, when executed, outputs 3D graphical content that is displayed on a display.

アプリケーション232は、モノビューのために開発者によって設計され得る。例えば、アプリケーション232は、実行されると、3Dグラフィックスコンテンツを生成し得、3Dグラフィックスコンテンツは、表示器の2Dエリアに制限される。アプリケーション232は、アプリケーションプロセッサ212上で実行されると、生成された3Dグラフィックスコンテンツを三角形、矩形、又は他のタイプの多角形などの基本形に分割し得る。これらの基本形の各々は、表示器上に表示されるべき画素をレンダリングするために使用され得る。アプリケーション232はまた、アプリケーションプロセッサ212上で実行されると、基本形の頂点の各々についての画素値をレンダリングし得る。例えば、その値は、頂点の3D座標と、頂点のカラー値と、頂点の透過性値とを含み得る。その値は、本開示のあらゆる態様において上記の例示的な構成要素の全てを含む必要はない。   Application 232 may be designed by a developer for mono view. For example, application 232 may generate 3D graphics content when executed, and 3D graphics content is limited to the 2D area of the display. Application 232, when executed on application processor 212, may divide the generated 3D graphics content into basic shapes such as triangles, rectangles, or other types of polygons. Each of these basic forms can be used to render the pixels to be displayed on the display. Application 232, when executed on application processor 212, may also render pixel values for each of the base shape vertices. For example, the values may include vertex 3D coordinates, vertex color values, and vertex transparency values. The value need not include all of the exemplary components described above in every aspect of the present disclosure.

次いで、アプリケーションプロセッサ212は、更なる処理のために、頂点についての画素値をGPU220に転送し得る。例えば、アプリケーションプロセッサ212は、アプリケーションプロセッサ212上で実行されるソフトウェアであり得るグラフィックスドライバ214を含み得る。グラフィックスドライバ214は、コマンドをGPU220に送信するように設計され得、それに応答して、GPU220は、受信したコマンドに従って機能を実行し得る。例えば、グラフィックスドライバ214は、GPU220とアプリケーションプロセッサ212との間のインターフェースとして機能する。アプリケーションプロセッサ212がコマンドをGPU220に発行するとき、GPU220がコマンドを受信するのは、グラフィックスドライバ214を通してである。例えば、アプリケーションプロセッサ212上で実行されるアプリケーション232は、GPU220に、特定のタスクを実行するように命令し得る。この場合、グラフィックスドライバ214は、アプリケーション232から特定のタスクのための命令を受信し得、その命令をGPU220に与え得る。それに応答して、GPU220はタスクを実行し得る。   Application processor 212 may then transfer the pixel values for the vertices to GPU 220 for further processing. For example, the application processor 212 may include a graphics driver 214 that may be software running on the application processor 212. Graphics driver 214 may be designed to send commands to GPU 220, and in response, GPU 220 may perform functions according to the received commands. For example, the graphics driver 214 functions as an interface between the GPU 220 and the application processor 212. When the application processor 212 issues a command to the GPU 220, the GPU 220 receives the command through the graphics driver 214. For example, an application 232 executing on the application processor 212 may instruct the GPU 220 to perform a specific task. In this case, graphics driver 214 may receive instructions for a particular task from application 232 and may provide the instructions to GPU 220. In response, GPU 220 may perform a task.

幾つかの例では、グラフィックスドライバ214は特定のAPIに従って設計され得る。例えば、グラフィックスドライバ214は、KhronosグループのAPIであるOpenGL又はOpenGL ES(組込みシステム)APIに従って設計され得、それらの仕様は公的に入手可能である。しかしながら、本開示の技法は、DirectX9、10、又は11など、マイクロソフトのDirectXシステム、又は他のグラフィックスシステム及びAPIに拡張可能であり得る。説明のために、本開示の技法について、APIがOpenGL EX 1.1 APIであるコンテキストにおいて説明する。しかしながら、本開示の態様は、そのように限定されず、他のAPI又はグラフィックスシステムに拡張され得る。   In some examples, graphics driver 214 may be designed according to a specific API. For example, the graphics driver 214 may be designed according to the OpenGL or OpenGL ES (Embedded Systems) API, which is an API of the Khronos group, and their specifications are publicly available. However, the techniques of this disclosure may be extensible to Microsoft's DirectX system, such as DirectX 9, 10, or 11, or other graphics systems and APIs. For purposes of explanation, the techniques of this disclosure will be described in the context where the API is an OpenGL EX 1.1 API. However, aspects of the present disclosure are not so limited and can be extended to other APIs or graphics systems.

アプリケーションプロセッサ212から受信した基本形をレンダリングするために、GPU220は、頂点プロセッサ222などの1つ以上の頂点プロセッサと、表示器の画素についての画素値を生成するための画素プロセッサ224などの1つ以上の画素プロセッサとを含み得る。GPU220はまた、図示していない他の要素を含み得る。本開示の技法は、特定のGPUアーキテクチャに限定されない。開発者は、頂点プロセッサ222と画素プロセッサ224との能力に応じて、及び説明のために本開示で使用されるOpenGL EX 1.1 APIなどのAPIに応じてグラフィックスアプリケーションを開発し得る。   In order to render the basic shape received from application processor 212, GPU 220 may include one or more vertex processors, such as vertex processor 222, and one or more, such as pixel processor 224, for generating pixel values for display pixels. Other pixel processors. The GPU 220 may also include other elements not shown. The techniques of this disclosure are not limited to a specific GPU architecture. Developers may develop graphics applications depending on the capabilities of vertex processor 222 and pixel processor 224 and on APIs such as the OpenGL EX 1.1 API used in this disclosure for purposes of illustration.

アプリケーション232は、基本形の頂点についての座標を生成し得る。これらの座標は、ワールド座標系と呼ばれることがあり、アプリケーション232に固有であり得る。言い換えれば、アプリケーション232によって定義された頂点の座標は、必ずしも、その上に基本形が表示される表示器の座標とは限らないことがあり、また場合によっては、可視領域の外部にある頂点についての座標であり得る。頂点プロセッサ222は、3Dであり得るワールド座標系を表示器の2D座標(例えば、表示座標)に変換するように設計され得る。この機能を実行するために、頂点プロセッサ222は、ワールド座標系を眼座標に変換し、次いでクリッピング座標に変換し得る。例えば、頂点プロセッサ222の出力は、実行されたとき、頂点のクリッピング座標であり得る。最終表示座標、例えば、表示器の座標は、その後画素プロセッサ224によって決定され得る。   Application 232 may generate coordinates for the vertices of the basic shape. These coordinates may be referred to as the world coordinate system and may be specific to the application 232. In other words, the coordinates of the vertices defined by the application 232 may not necessarily be the coordinates of the indicator on which the basic shape is displayed, and in some cases, for vertices outside the visible region. Can be coordinates. Vertex processor 222 may be designed to convert a world coordinate system, which may be 3D, to 2D coordinates (eg, display coordinates) of the display. To perform this function, vertex processor 222 may convert the world coordinate system to eye coordinates and then to clipping coordinates. For example, the output of vertex processor 222, when executed, may be the vertex clipping coordinates. Final display coordinates, eg, display coordinates, can then be determined by the pixel processor 224.

クリッピング座標は視野錐台(view frustum)を定義し得る。視野錐台は、3Dグラフィックスコンテンツの可視領域を定義し得る。GPU220は、視野錐台の外部に存在する画素を選別するために、視野錐台を利用し得る。例えば、(画素プロセス224などの)GPU220の固定機能ユニットは、アプリケーション232によって生成されたクリッピング座標によって定義された視野錐台の外部に存在する画素を選別し得る。   Clipping coordinates may define a view frustum. The view frustum may define the visible region of 3D graphics content. The GPU 220 may use the field frustum to select pixels that exist outside the field frustum. For example, a fixed functional unit of GPU 220 (such as pixel process 224) may screen pixels that exist outside the view frustum defined by the clipping coordinates generated by application 232.

ワールド座標系からクリッピング座標系を計算する式は、次の通りであり得る。

Figure 0005882367
The equation for calculating the clipping coordinate system from the world coordinate system may be as follows:
Figure 0005882367

上式で、Vclipは頂点クリップ座標系であり、Veyeは頂点眼座標であり、Vworldは、アプリケーション232によって与えられる頂点ワールド座標系であり、PRJは射影行列であり、MVTはモデルビュー変換行列(又はワールドビュー変換行列)である。幾つかの例では、PRJ行列とMVT行列とは、式1で上記に示したモデルビュー射影行列又はMVPと呼ばれることがある単一の行列に組み合わせられ得、MVP=PRJ*MVTである。 Where Vclip is the vertex clip coordinate system, Veye is the vertex eye coordinate, Vworld is the vertex world coordinate system given by the application 232, PRJ is the projection matrix, and MVT is the model view transformation matrix ( Or world view transformation matrix). In some examples, the PRJ and MVT matrices may be combined into a single matrix, sometimes referred to as the model view projection matrix or MVP shown above in Equation 1, where MVP = PRJ * MVT.

射影行列(PRJ)及びモデルビュー、又はワールドビュー、変換行列(MVT)は、APIによって定義され得る。モデルビュー及びワールドビューという用語は、互換的に使用され得る。Vclip、Veye、及びVworldは、4つの成分(例えば、x座標、y座標、z座標、及びw座標)を含み得る。例えば、Vclip、Veye、及びVworldは、次のように表され得る。

Figure 0005882367
Projection matrix (PRJ) and model view, or world view, transformation matrix (MVT) can be defined by API. The terms model view and world view may be used interchangeably. Vclip, Veye, and Vworld may include four components (eg, x coordinate, y coordinate, z coordinate, and w coordinate). For example, Vclip, Veye, and Vworld can be expressed as:
Figure 0005882367

OpenGL及びOpenGL ES APIは、次のようにPRJ行列を定義する。

Figure 0005882367
OpenGL and OpenGL ES API define a PRJ matrix as follows.
Figure 0005882367

上式で、L及びRは、左垂直クリッピング平面及び右垂直クリッピング平面についての座標を指定し、B及びTは、下部水平クリッピング平面及び上部水平クリッピング平面についての座標を指定し、znear及びzfarは、近い深度クリッピング平面及び遠い深度クリッピング平面までの距離を指定する。このようにして、L及びRはビューポートの幅を指定するが、B及びTはビューポートの高さを指定する。対称的ビューポートの場合、−LはRに等しくなることができ、−BはTに等しくなることができる。 Where L and R specify the coordinates for the left and right vertical clipping planes, B and T specify the coordinates for the lower and upper horizontal clipping planes, and z near and z far specifies the distance to the near and far depth clipping planes. Thus, L and R specify the width of the viewport, while B and T specify the height of the viewport. For a symmetric viewport, -L can be equal to R and -B can be equal to T.

幾つかの例では、クリッピング平面は対称的であり得る。例えば、−LはRに等しくなることができ、−BはTに等しくなることができる。これらの事例では、PRJ行列は次のように簡略化し得る。

Figure 0005882367
In some examples, the clipping plane can be symmetric. For example, -L can be equal to R and -B can be equal to T. In these cases, the PRJ matrix can be simplified as follows:
Figure 0005882367

OpenGL及びOpenGL ES APIは、次のようにMVT行列を定義する。

Figure 0005882367
OpenGL and OpenGL ES API define the MVT matrix as follows.
Figure 0005882367

PRJ行列とMVT行列との変数の全ては、アプリケーションプロセッサ212上で実行されるアプリケーション232によって定義され得、グラフィックスドライバ214は、これらの変数を頂点プロセッサ222に与え得る。式1、式4、及び式5からわかるように、これらの変数を用いて、頂点プロセッサ222は、頂点の各々についてVclip座標を決定し得る。GPU220は、表示のために画像をレンダリングするために、頂点についてのクリップ座標を利用し、更なる機能を実行し得る。このようにして、GPU220は、アプリケーション232によって生成された3Dグラフィックスコンテンツのためのモノビューを生成し得る。   All of the variables in the PRJ matrix and the MVT matrix may be defined by the application 232 running on the application processor 212, and the graphics driver 214 may provide these variables to the vertex processor 222. As can be seen from Equation 1, Equation 4, and Equation 5, using these variables, vertex processor 222 may determine the Vclip coordinates for each of the vertices. GPU 220 may utilize clip coordinates for vertices and perform additional functions to render the image for display. In this way, GPU 220 may generate a mono view for 3D graphics content generated by application 232.

本開示で説明する1つ以上の例示的な技法では、アプリケーションプロセッサ212上で実行されるソフトウェアであり得るグラフィックスドライバラッパー216は、立体視ビューについてのクリッピング座標(例えば、左眼画像についてのクリッピング座標及び右眼画像についてのクリッピング座標)を定義するために、モノビューについてのクリッピング座標を定義するAPI呼を修正し得る。また、グラフィックスドライバラッパー216は、クリッピング座標を定義するAPI呼を修正することに加えて、立体視ビューについてのビューポートを定義するために、モノビューについてのビューポートを定義するAPI呼を修正し得る。例えば、アプリケーション232は、画像を表示する表示器上の単一の画像(例えば、モノビュー)のサイズ及び位置を定義し得る。グラフィックスドライバラッパー216は、単一の画像のサイズ及び位置を定義するAPI呼を、左眼画像と右眼画像とのサイズ及び位置を定義する修正API呼(例えば、左眼画像についてのビューポートと右眼画像についてのビューポートとのための命令)に修正し得る。このようにして、グラフィックスドライバラッパー216は、モノビューのための単一のAPI呼を横取りし、左ビューと右ビューの両方のための修正API呼を生成し得る。   In one or more exemplary techniques described in this disclosure, graphics driver wrapper 216, which may be software running on application processor 212, provides clipping coordinates for a stereoscopic view (eg, clipping for a left eye image). The API call that defines the clipping coordinates for the mono view may be modified to define the coordinates and the clipping coordinates for the right eye image. In addition to modifying the API call that defines the clipping coordinates, the graphics driver wrapper 216 also modifies the API call that defines the viewport for the mono view to define the viewport for the stereoscopic view. Can do. For example, application 232 may define the size and position of a single image (eg, mono view) on a display that displays the image. The graphics driver wrapper 216 converts an API call that defines the size and position of a single image into a modified API call that defines the size and position of the left and right eye images (eg, a viewport for the left eye image). And instructions for the viewport for the right eye image). In this way, graphics driver wrapper 216 may intercept a single API call for mono view and generate a modified API call for both left view and right view.

グラフィックスドライバラッパー216がAPI呼を修正することができる方法の一例として、グラフィックスドライバラッパーは、上記で説明したPRJとMVTとについての変数をもつAPI呼を横取りすることができる。上記で説明したように、PRJとMVTとについての変数は、クリッピング座標Vclipをもつモノ3Dビューをレンダリングするために、GPU220によって使用され得る。グラフィックスドライバラッパー216は、クリッピング座標Vclipleft_eyeをもつ左画像とクリッピング座標Vclipright_eyeをもつ右画像とを生成するようにAPI呼を修正することができる。 As an example of how the graphics driver wrapper 216 can modify an API call, the graphics driver wrapper can intercept an API call with the variables for PRJ and MVT described above. As explained above, the variables for PRJ and MVT can be used by GPU 220 to render a mono 3D view with clipping coordinates Vclip. Graphics driver wrapper 216 can modify the API call so as to generate the right image with the left image and the clipping coordinates Vclip Right_eye with clipping coordinates Vclip left_eye.

上記で式(1)に示すように、Vclip=PRJ*Veye=PRJ*MVT*Vworldである。Vclipについての式は、左眼についてのクリッピング座標と右眼についてのクリッピング座標とを生成するように修正され得る。例えば、左眼と右眼とについてのクリッピング座標は、次の通りであり得る。

Figure 0005882367
Figure 0005882367
As shown above in equation (1), Vclip = PRJ * Veye = PRJ * MVT * Vworld. The equation for Vclip can be modified to generate clipping coordinates for the left eye and clipping coordinates for the right eye. For example, the clipping coordinates for the left eye and the right eye can be as follows:
Figure 0005882367
Figure 0005882367

VTleft_eye及びVTright_eyeは、モノビューからの左眼と右眼との仮定された距離に基づく4×4ビュー変換行列であり得る。例えば、モノビューの座標が(0,0,0)であると仮定される場合、左眼は、(−D,0,0)に位置すると見なされ得、右眼は、(D,0,0)に位置すると見なされ得る。言い換えれば、(0,0,0)位置は、視聴者の右眼と左眼との中間にあるものと見なされ得る。左眼が、右眼と左眼との中間から−Dだけ離れて位置すると見なされ、右眼が、右眼と左眼との中間から+Dだけ離れて位置すると見なされる場合、Dは、視聴者の右眼と左眼との間の距離の1/2を示す。 VT left_eye and VT right_eye may be 4 × 4 view transformation matrices based on the assumed distance between the left eye and the right eye from the mono view. For example, if the monoview coordinates are assumed to be (0,0,0), the left eye may be considered to be located at (−D, 0,0) and the right eye will be (D, 0,0). 0). In other words, the (0, 0, 0) position can be considered to be in the middle between the viewer's right eye and left eye. If the left eye is considered to be located −D away from the middle of the right and left eyes, and the right eye is considered to be located + D away from the middle of the right and left eyes, then D is viewed The half of the distance between a person's right eye and left eye is shown.

VTleft_eye及びVTright_eyeのためのビュー変換行列は、次のように定義され得る。

Figure 0005882367
Figure 0005882367
The view transformation matrix for VT left_eye and VT right_eye may be defined as follows:
Figure 0005882367
Figure 0005882367

VTleft_eye及びVTright_eyeは、2つの行列の和として書き直され得る。例えば、VTleft_eyeは、次のように書き直され得る。

Figure 0005882367
VT left_eye and VT right_eye can be rewritten as the sum of two matrices. For example, VT left_eye can be rewritten as follows.
Figure 0005882367

VTright_eyeは、次のように書き直され得る。

Figure 0005882367
VT right_eye can be rewritten as follows.
Figure 0005882367

VTleft_eye行列をVclipleft_eyeについての式(式6)に置換することによって、Vclipleft_eyeは、次の式に等しくなる。

Figure 0005882367
By replacing the VT left_eye matrix with the equation for Vclip left_eye (Equation 6), Vclip left_eye becomes equal to:
Figure 0005882367

VTright_eye行列をVclipright_eyeについての式(式7)に置換することによって、Vclipright_eyeは、次の式に等しくなる。

Figure 0005882367
By replacing the VT right_eye matrix with the equation for Vclip right_eye (Equation 7), Vclip right_eye is equal to:
Figure 0005882367

式10と式11の両方において、例えば、Vclipleft_eye及びVclipright_eyeについては次の通りである。

Figure 0005882367
In both Expression 10 and Expression 11, for example, Vclip left_eye and Vclip right_eye are as follows.
Figure 0005882367

式1で上述したように、PRJ*MVT*Vworldは、MVP*Vworldに等しい。したがって、Vclipleft_eye及びVclipright_eyeの式(例えば、それぞれ、式10及び式11)は、次のように書き直され得る。

Figure 0005882367
As described above in Equation 1, PRJ * MVT * Vworld is equal to MVP * Vworld. Thus, the expressions for Vclip left_eye and Vclip right_eye (eg, Expression 10 and Expression 11, respectively) can be rewritten as follows:
Figure 0005882367

及び

Figure 0005882367
as well as
Figure 0005882367

PRJ(式3又は式4)及びMVT(式5)のための行列を置換し、式10の行列乗算を実行することによって、Vclipleft_eyeについての式は、次のように簡略化し得る。

Figure 0005882367
By replacing the matrix for PRJ (Equation 3 or Equation 4) and MVT (Equation 5) and performing the matrix multiplication of Equation 10, the equation for Vclip left_eye can be simplified as follows:
Figure 0005882367

より詳細には、次の通りである。

Figure 0005882367
More details are as follows.
Figure 0005882367

Vclipleft_eyeについての置換と同様の置換を用いて、Vclipright_eyeの式は、次のように簡略化し得る。

Figure 0005882367
Using the same permutation and substitution for Vclip Left_eye, expression Vclip Right_eye may simplified as follows.
Figure 0005882367

上記で説明した左ビュー変換行列(VTleft_eye)を使用して、グラフィックスドライバラッパー216は、左眼3D画像を生成するために、3D画像のためのAPI呼を修正することができる。同様に、上記で説明した右ビュー変換行列(VTright_eye)を使用して、グラフィックスドライバラッパー216は、右眼3D画像を生成するために、3D画像のためのAPI呼を修正することができる。左眼3D画像と右眼3D画像とを同時に表示することによって、機器210は、S3D画像をレンダリングすることができる。 Using the left view transform matrix (VT left_eye ) described above, the graphics driver wrapper 216 can modify the API call for the 3D image to generate the left eye 3D image. Similarly, using the right view transformation matrix (VT right_eye ) described above, the graphics driver wrapper 216 can modify the API call for a 3D image to generate a right eye 3D image. . By simultaneously displaying the left eye 3D image and the right eye 3D image, the device 210 can render the S3D image.

式7〜式16に関して上記で説明した技法は、API呼を修正することによって、GPU220又はグラフィックスドライバ214への修正なしに実施され得る。式7〜式16に関して説明した技法は、錐台独立S3Dレンダリング近似(frustum-independent S3D rendering approximation)のために使用され得る。説明した技法は、それらが、glFrustum()呼中に含まれ得るパラメータなどの特定の錐台パラメータの知識を必要としないので、錐台独立であると見なされる。本開示の技法は、右ビューと左ビューとについて、それぞれ、D及びDだけ視認位置をシフトすることを除いて、Vclipleft_eyeとVclipright_eyeとを決定するときに、元のコンテンツによって定義された同じ視野錐台を使用することを含む。各眼について平行な視認方向を仮定した結果として、左ビュー変換と右ビュー変換の両方は、式8a及び式8bと、式9a及び式9bとに関して上記で説明したように、水平方向でのシフトをもつ単位行列に近いと仮定され得る。同じ射影行列(例えば、上記の式3又は式4のいずれかによって説明したPRJ)は、左眼と右眼の両方について決定及び使用され得る。本開示の技法に従ってS3D画像を作成するために、PRJ又はPRJについての実効値を決定するために使用されるパラメータを知ることは必要でない。同様に、本開示の技法によれば、MVT又はMVTについての実効値を決定するために使用されるパラメータを知ることは必要でない。PRJ及びMVTがどんなパラメータを含んでいるとしても、パラメータは、1つの行列、即ちMVPとして扱われ得る。S3D画像を作成するために、定数、即ち2*Znear*D/(R−L)は、MVP行列の第1の行及び第4の列における要素に加算されるか、又はそれから減算され得る。所与の3Dコンテンツについて、Znear/(R−L)の値は、定数であり得る。したがって、Znear/(R−L)をDと組み合わせることにより、更に定数を生じる。幾つかの実施形態では、異なる定数は、正しく快適なS3D効果を作成する定数を見つけるまで試みられ得る。MVPのみが修正されるので、本開示の技法は、PRJとMVTとについて別個の行列を受信して又は受信せずに動作することができる。 The techniques described above with respect to Equations 7-16 may be implemented without modification to GPU 220 or graphics driver 214 by modifying the API call. The techniques described with respect to Equations 7-16 may be used for frustum-independent S3D rendering approximation. The described techniques are considered frustum-independent because they do not require knowledge of specific frustum parameters, such as parameters that may be included in a glFrustum () call. The techniques of this disclosure are the same as defined by the original content when determining Vclip left_eye and Vclip right_eye for the right view and the left view, respectively, except shifting the viewing position by D and D, respectively. Including using a frustum of view. As a result of assuming a parallel viewing direction for each eye, both left and right view transformations are shifted in the horizontal direction as described above with respect to Equations 8a and 8b and Equations 9a and 9b. Can be assumed to be close to the identity matrix with The same projection matrix (eg, PRJ described by either Equation 3 or Equation 4 above) can be determined and used for both the left eye and the right eye. In order to create an S3D image according to the techniques of this disclosure, it is not necessary to know the parameters used to determine the effective value for PRJ or PRJ. Similarly, according to the techniques of this disclosure, it is not necessary to know the parameters used to determine MVT or the effective value for MVT. Whatever parameters PRJ and MVT contain, the parameters can be treated as a single matrix, ie MVP. To create an S3D image, a constant, ie 2 * Z near * D / (R−L), can be added to or subtracted from the elements in the first row and fourth column of the MVP matrix. . For a given 3D content, the value of Z near / (R−L) may be a constant. Thus, combining Z near / (R−L) with D produces more constants. In some embodiments, different constants may be tried until a constant is created that creates a correct and comfortable S3D effect. Since only MVP is modified, the techniques of this disclosure can operate with or without receiving separate matrices for PRJ and MVT.

図3Aに示すように、表示平面330上にレンダリングされるときに、左画像320の一部分と、右画像310の一部分とは最終S3D画像からクロップされ得る。明快のために、図3Aは、表示平面330のわずかに前の左画像320と、表示平面330のわずかに後ろの右画像310とを示す。しかしながら、これは、左画像320と右画像310とが表示平面330上に実際にレンダリングされるように図3Aを作成することにすぎない。同じ視野錐台が左画像320と右画像310とを生成するために使用されるように、S3D画像のゼロ視差平面(ZDP:zero disparity plane)は、表示平面330の前にあるように見えることがあり、視聴者に、飛び出し効果(popped out effect)を知覚させる。以下で更に詳細に説明するように、左眼画像と右眼画像とのビューポートオフセットをシフトすることによって、この効果は逆転させられ得る。   As shown in FIG. 3A, when rendered on the display plane 330, a portion of the left image 320 and a portion of the right image 310 may be cropped from the final S3D image. For clarity, FIG. 3A shows a left image 320 slightly in front of the display plane 330 and a right image 310 slightly behind the display plane 330. However, this only creates FIG. 3A such that the left image 320 and the right image 310 are actually rendered on the display plane 330. The zero disparity plane (ZDP) of the S3D image appears to be in front of the display plane 330 so that the same field frustum is used to generate the left image 320 and the right image 310 And make the viewer perceive a popped out effect. As described in more detail below, this effect can be reversed by shifting the viewport offset between the left eye image and the right eye image.

幾つかの実施形態では、左眼画像と右眼画像とのビューポートオフセットに適用されるシフトの量は、ユーザ入力パラメータに基づき得る。対称的射影行列(symmetrical projection matrix)と、平行な視認方向と、ビューポートオフセットのシフトとを使用することによって、S3D画像のための左眼ビューと右眼ビューとを生成することを含む本開示の技法は、幾つかの事例では、ランタイム環境において高品質S3D画像をレンダリングすることができ、表示器の2Dエリアによって制限された画像を視認することと比較して、よりリッチでより完全な経験であるS3D経験を視聴者に提供できる。   In some embodiments, the amount of shift applied to the viewport offset between the left eye image and the right eye image may be based on user input parameters. This disclosure includes generating a left eye view and a right eye view for an S3D image by using a symmetrical projection matrix, a parallel viewing direction, and a viewport offset shift. The technique can in some cases render a high quality S3D image in a runtime environment, a richer and more complete experience compared to viewing an image limited by the 2D area of the display. It is possible to provide the viewer with the S3D experience.

図3Bに、物体(物体A)が、本開示で説明する技法を使用してシフトされ得る方法の一例を示す。図3Bに、対応するビューポートシフトをもつZDP変化の図を示す。図3Bにおいて、ライン301A及び301Bは、ビューポートシフトより前の右眼ビューポートを表し、ライン303A及び303Bは、ビューポートシフトの後の右眼ビューポートを表す。ライン302A及び302Bは、ビューポートシフトの前の左眼ビューポートを表し、ライン304A及び304Bは、ビューポートシフトの後のビューポートを表す。ビューポートのシフトの深度変化の数学的関係は、次のように導出され得る。   FIG. 3B shows an example of how an object (object A) may be shifted using the techniques described in this disclosure. FIG. 3B shows a diagram of ZDP changes with corresponding viewport shifts. In FIG. 3B, lines 301A and 301B represent the right eye viewport before the viewport shift, and lines 303A and 303B represent the right eye viewport after the viewport shift. Lines 302A and 302B represent the left eye viewport before the viewport shift, and lines 304A and 304B represent the viewport after the viewport shift. The mathematical relationship of the viewport shift depth change can be derived as follows.

Δは、ポイントAに位置する物体の射影ビューポート距離の1/2を示し、
VPsは、ビューポートについてのビューポートシフト量を示し、
Eは、眼間隔の1/2の距離を示す。
Δ represents ½ of the projected viewport distance of the object located at point A;
VP s indicates the viewport shift amount for the viewport,
E indicates a distance of ½ of the eye interval.

第1に、点A、点A’ならびに左眼の位置及び右眼の位置の三角法に基づいて、次のようになる。

Figure 0005882367
Figure 0005882367
First, based on point A, point A ′ and the trigonometry of the left eye position and right eye position,
Figure 0005882367
Figure 0005882367

上記の式17と式18とを組み合わせて、ビューポートシフトの後の視聴者空間における物体距離は、次のように導出され得る。

Figure 0005882367
Combining Equation 17 and Equation 18 above, the object distance in the viewer space after the viewport shift can be derived as follows.
Figure 0005882367

上記の式19に基づいて、視聴者空間における新しいZDP位置を式20に基づいて得ることができる。

Figure 0005882367
Based on Equation 19 above, a new ZDP position in the viewer space can be obtained based on Equation 20.
Figure 0005882367

図4は、図2の例示的な機器を更に詳細に示すブロック図である。例えば、図4に、図2の機器210を更に詳細に示す。例えば、上記のように、機器210の例には、限定はしないが、モバイルワイヤレス電話、PDA、ビデオ表示器を含むビデオゲーミングコンソール、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックスなどがある。   FIG. 4 is a block diagram illustrating the exemplary device of FIG. 2 in more detail. For example, FIG. 4 shows the device 210 of FIG. 2 in more detail. For example, as described above, examples of device 210 include, but are not limited to, mobile wireless telephones, PDAs, video gaming consoles including video displays, mobile video conferencing units, laptop computers, desktop computers, television set tops There are boxes.

図4に示すように、機器210は、アプリケーションプロセッサ412と、GPU420と、フレームバッファ452を含むシステムメモリ426と、トランシーバモジュール456と、ユーザインターフェース458と、表示器460と、表示プロセッサ462とを含み得る。アプリケーションプロセッサ412、GPU、及びシステムメモリ426は、それぞれ、図2のアプリケーションプロセッサ212、GPU220、及びシステムメモリ226と実質的に同様であり得る。簡潔のために、図4に示したが図2に示されていない構成要素のみについて、詳細に説明する。   As shown in FIG. 4, the device 210 includes an application processor 412, a GPU 420, a system memory 426 including a frame buffer 452, a transceiver module 456, a user interface 458, a display 460, and a display processor 462. obtain. Application processor 412, GPU, and system memory 426 may be substantially similar to application processor 212, GPU 220, and system memory 226, respectively, of FIG. For brevity, only those components shown in FIG. 4 but not shown in FIG. 2 will be described in detail.

図4に示す機器210は、明快のために図4に示されていない追加のモジュール又はユニットを含み得る。例えば、機器210は、機器210がモバイルワイヤレス電話である例において電話通信を実現するために、そのいずれも図4に示されていないスピーカー及びマイクロフォン、又は機器210がメディアプレーヤであるスピーカーを含み得る。更に、機器210に示す様々なモジュール及びユニットは、機器210のあらゆる例において必要であるとは限らない。例えば、ユーザインターフェース458及び表示器460は、機器210がデスクトップコンピュータ、又は外部ユーザインターフェース又は表示器とインターフェースする能力がある他の機器である例において、機器210の外部にあり得る。   The device 210 shown in FIG. 4 may include additional modules or units not shown in FIG. 4 for clarity. For example, device 210 may include a speaker and microphone, both of which are not shown in FIG. 4, or a speaker where device 210 is a media player, in order to implement telephone communication in an example where device 210 is a mobile wireless phone. . Further, the various modules and units shown in device 210 may not be necessary in every example of device 210. For example, user interface 458 and display 460 may be external to device 210 in examples where device 210 is a desktop computer or other device capable of interfacing with an external user interface or display.

ユーザインターフェース458の例には、限定はしないが、トラックボール、マウス、キーボード、及び他のタイプの入力機器がある。ユーザインターフェース458はまた、タッチスクリーンであり得、表示器460の一部として組み込まれ得る。トランシーバモジュール456は、機器410と別の機器又はネットワークとの間のワイヤレス又はワイヤード通信を可能にするための回路を含み得る。トランシーバモジュール46は、ワイヤード又はワイヤレス通信のための変調器、復調器、増幅器及び他のそのような回路を含み得る。表示器460は、液晶表示器(LCD)、有機発光ダイオード表示器(OLED)、陰極線管(CRT)表示器、プラズマ表示器、分極表示器、又は別のタイプの表示器機器を備え得る。   Examples of user interface 458 include, but are not limited to, a trackball, a mouse, a keyboard, and other types of input devices. User interface 458 may also be a touch screen and may be incorporated as part of display 460. The transceiver module 456 may include circuitry for enabling wireless or wired communication between the device 410 and another device or network. The transceiver module 46 may include modulators, demodulators, amplifiers and other such circuits for wired or wireless communications. The display 460 may comprise a liquid crystal display (LCD), an organic light emitting diode display (OLED), a cathode ray tube (CRT) display, a plasma display, a polarization display, or another type of display device.

表示器プロセッサ462は、表示器460に立体視ビューを表示させるように構成され得る。表示器プロセッサ462が表示器460に立体視ビューを表示させるために利用し得る様々な技法があり得、本開示の態様は、これらの技法のいずれかを利用し得る。例えば、表示器プロセッサ462は、立体視ビューを与えるために、フレームバッファ452の左半分から左眼画像を取り出し、フレームバッファ452の右半分から右眼画像を取り出し、2つの画像を互いにインターリーブし得る。   Display processor 462 may be configured to cause display 460 to display a stereoscopic view. There may be various techniques that the display processor 462 may utilize to cause the display 460 to display a stereoscopic view, and aspects of the present disclosure may utilize any of these techniques. For example, the display processor 462 may retrieve the left eye image from the left half of the frame buffer 452 and the right eye image from the right half of the frame buffer 452 to interleave the two images together to provide a stereoscopic view. .

別の例として、表示器プロセッサ462は、表示器460のリフレッシュ速度を制御し得る。この例では、各リフレッシュサイクル中に、表示器プロセッサ462は、左眼画像と右眼画像との間で循環し得る。例えば、表示器プロセッサ462は、フレームバッファ452の左半分から左眼画像を取り出し、表示器460の全体に左眼画像を拡張し、1つのリフレッシュサイクルの間表示器460上に左眼画像を表示し得る。次いで、次のリフレッシュサイクルの間、表示器プロセッサ462は、フレームバッファ452の右半分に記憶された右眼画像がなければ、実質的に同様の機能を実行し得る。言い換えれば、表示器460は、左眼画像を表示し、次いで右眼画像を表示し、次いで左眼画像を表示し得、以下同様である。   As another example, display processor 462 may control the refresh rate of display 460. In this example, during each refresh cycle, the display processor 462 may cycle between the left eye image and the right eye image. For example, the display processor 462 retrieves the left eye image from the left half of the frame buffer 452, extends the left eye image to the entire display 460, and displays the left eye image on the display 460 for one refresh cycle. Can do. Then, during the next refresh cycle, display processor 462 may perform a substantially similar function if there is no right eye image stored in the right half of frame buffer 452. In other words, the display 460 may display a left eye image, then a right eye image, then a left eye image, and so on.

視聴者は、表示器プロセッサ462のリフレッシュ速度と同期する特殊な眼鏡を着用していることがある。例えば、表示器460が左眼画像を表示している間、特殊な眼鏡は、視聴者の左眼のみが左眼画像をキャプチャするように右レンズをシャッタークローズし得る。次いで、表示器460が右眼画像を表示している間、特殊な眼鏡は、視聴者の右眼のみが右眼画像をキャプチャするように左レンズをシャッタークローズし得、以下同様である。リフレッシュ速度が十分に速い場合、視聴者は、画像が表示器460から飛び出し3Dボリュームを包含する立体視ビューを知覚する。   The viewer may be wearing special glasses that synchronize with the refresh rate of the display processor 462. For example, while the display 460 is displaying the left eye image, special glasses may shutter close the right lens so that only the viewer's left eye captures the left eye image. Then, while the display 460 displays the right eye image, the special glasses can shutter close the left lens so that only the viewer's right eye captures the right eye image, and so on. If the refresh rate is fast enough, the viewer will perceive a stereoscopic view in which the image pops out of the display 460 and encompasses the 3D volume.

幾つかの例では、幾つかの従来の表示器プロセッサは、表示器460に立体視ビューを表示させるように構成されないことがある。これらの例では、視聴者は、機器210を、表示器に立体視ビューを提示させるように構成された、表示器プロセッサ462などの表示器プロセッサを含む表示器に結合し得る。例えば、視聴者は、機器210を、トランシーバモジュール456を介して立体視ビュー対応テレビジョンに結合し得る。例えば、視聴者は、トランシーバモジュール456を、高解像度マルチメディアインターフェース(HDMI(登録商標))ワイヤを介してテレビジョンに結合し得る。この例では、アプリケーションプロセッサ412又はGPU420は、トランシーバモジュール456に、フレームバッファ452に記憶された画素値をテレビジョンの表示器プロセッサに送信するように命令し得る。次いで、このテレビジョンの表示器プロセッサは、テレビジョンに、立体視ビューを形成するように左眼画像と右眼画像とを表示させ得る。   In some examples, some conventional display processors may not be configured to cause the display 460 to display a stereoscopic view. In these examples, the viewer may couple device 210 to a display that includes a display processor, such as display processor 462, configured to cause the display to present a stereoscopic view. For example, the viewer may couple the device 210 to a stereoscopic view enabled television via the transceiver module 456. For example, a viewer may couple the transceiver module 456 to a television via a high resolution multimedia interface (HDMI®) wire. In this example, the application processor 412 or GPU 420 may instruct the transceiver module 456 to transmit the pixel values stored in the frame buffer 452 to the television display processor. The television display processor may then cause the television to display a left eye image and a right eye image to form a stereoscopic view.

これらの例では、機器210の表示器が左眼画像と右眼画像とを表示することは、依然として可能であり得る。しかしながら、機器210の表示器プロセッサ462が、機器410の表示器460に立体視ビューを提示させることが可能でないことがあるので、この例では、表示器460は、左眼画像と右眼画像とを並列に表示し得る。例えば、表示器460の左半分は左眼画像を表示し得、表示器460の右半分は右眼画像を表示し得る。これは、上記で説明したビューポート変換のためであり得る。この場合、特殊な眼鏡を用いた場合でも、視聴者は、単に表示器460を視認することによって立体視ビューを経験し得ないが、立体視ビュー対応テレビジョンを視聴することによって立体視ビューを経験することになる。   In these examples, it may still be possible for the display of device 210 to display a left eye image and a right eye image. However, because the display processor 462 of the device 210 may not be able to cause the display 460 of the device 410 to present a stereoscopic view, in this example, the display 460 is configured to display the left eye image, the right eye image, and the right eye image. Can be displayed in parallel. For example, the left half of the display 460 may display a left eye image, and the right half of the display 460 may display a right eye image. This may be due to the viewport conversion described above. In this case, even when special glasses are used, the viewer cannot experience the stereoscopic view simply by visually recognizing the display 460, but can view the stereoscopic view by viewing the television corresponding to the stereoscopic view. Will experience.

図5は、本開示で説明する1つ以上の例示的な技法による例示的な3D−S3D変換動作を示すフローチャートである。上記で説明したように、図5の技法を含む、本開示で説明する3D−S3D変換技法は、上記で説明した図2及び図4の機器210など、GPUをもつシステムによって実行され得る。   FIG. 5 is a flowchart illustrating an exemplary 3D-S3D conversion operation in accordance with one or more exemplary techniques described in this disclosure. As described above, the 3D-S3D conversion techniques described in this disclosure, including the technique of FIG. 5, may be performed by a system with a GPU, such as the device 210 of FIGS. 2 and 4 described above.

図5の技法によれば、図2のグラフィックスドライバラッパー214などのグラフィックスドライバラッパーは、API呼を横取りする(510)。API呼は、例えば、3Dグラフィックスコンテンツ(即ち、非立体視3Dコンテンツ)を生成するように構成されたアプリケーションからであり得る。API呼から、グラフィックスドライバラッパー216は、3Dコンテンツのためのモデルビュー射影行列を決定する(520)。上記で説明したように、モデルビュー射影行列のエントリについての値は、それらの値を決定するために使用される個々のパラメータが特に知られていない場合でも決定され得る。幾つかの事例では、グラフィックスドライバラッパー216は、上記で説明したようにPRJ*MVTに基づいてモデルビュー射影行列を決定し得る。しかしながら、他の例では、PRJ及びMVTは、グラフィックスドライバラッパー216に知られていないことがある。グラフィックスドライバラッパー216は、修正モデルビュー射影行列を生成するためにモデルビュー射影行列を修正する(530)。   According to the technique of FIG. 5, a graphics driver wrapper, such as graphics driver wrapper 214 of FIG. 2, intercepts the API call (510). The API call can be, for example, from an application configured to generate 3D graphics content (ie, non-stereoscopic 3D content). From the API call, graphics driver wrapper 216 determines a model view projection matrix for 3D content (520). As explained above, the values for the entries in the model view projection matrix can be determined even if the individual parameters used to determine those values are not specifically known. In some cases, graphics driver wrapper 216 may determine the model view projection matrix based on PRJ * MVT as described above. However, in other examples, PRJ and MVT may not be known to graphics driver wrapper 216. Graphics driver wrapper 216 modifies the model view projection matrix to generate a modified model view projection matrix (530).

グラフィックスドライバラッパー216は、修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成する(540)。左ビュークリッピング座標は、例えば、上記で説明した式6に従って決定され得、ただし、PRJ*MVTはMVPに等しい。グラフィックスドライバラッパー216は、修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成する(550)。右ビュークリッピング座標は、例えば、上記で説明した式7に従って決定され得、ただし、PRJ*MVT=MVPである。GPU220は、左ビュークリッピング座標に基づいて左ビューを生成し(560)、GPU220は、右ビュークリッピング座標に基づいて右ビューを生成する(570)。GPU220は、左ビューと右ビューとに基づいてS3D画像をレンダリングする(580)。表示器上にレンダリングする前に、GPU220は、左ビューにビューポートシフトを適用し、右ビューにビューポートシフトを適用することができる。   Graphics driver wrapper 216 generates left view clipping coordinates based on the modified model view projection matrix (540). The left view clipping coordinate can be determined, for example, according to Equation 6 described above, where PRJ * MVT is equal to MVP. Graphics driver wrapper 216 generates right view clipping coordinates based on the modified model view projection matrix (550). The right view clipping coordinates can be determined, for example, according to Equation 7 described above, where PRJ * MVT = MVP. The GPU 220 generates a left view based on the left view clipping coordinates (560), and the GPU 220 generates a right view based on the right view clipping coordinates (570). The GPU 220 renders an S3D image based on the left view and the right view (580). Prior to rendering on the display, the GPU 220 can apply a viewport shift to the left view and a viewport shift to the right view.

1つ以上の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実施され得る。ソフトウェアで実施した場合、機能は、1つ以上の命令又はコードとしてコンピュータ可読媒体上に記憶され得る。コンピュータ可読媒体はコンピュータデータ記憶媒体を含み得る。データ記憶媒体は、本開示で説明した技法の実施のための命令、コード及び/又はデータ構造を取り出すために1つ以上のコンピュータあるいは1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく、例として、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置機器、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)及びブルーレイ(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。   In one or more examples, the functions described can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on a computer-readable medium as one or more instructions or code. The computer readable medium may include a computer data storage medium. A data storage medium is any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementation of the techniques described in this disclosure. possible. By way of example, and not limitation, such computer readable media can be random access memory (RAM), read only memory (ROM), EEPROM, CD-ROM or other optical disk storage device, magnetic disk storage device or other magnetic storage device. It may comprise device equipment or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. The disc and disc used in this specification are a compact disc (CD), a laser disc (registered trademark) (disc), an optical disc (disc), and a digital versatile disc (DVD). ), Floppy® disk and Blu-ray® disk, the disk normally reproducing data magnetically, and the disk using a laser Reproduce optically. Combinations of the above should also be included within the scope of computer-readable media.

コードは、1つ以上のデジタル信号プロセッサ(DSP)などの1つ以上のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、又は本明細書で説明した技法の実施に好適な他の構造のいずれかを指し得る。また、本技法は、1つ以上の回路又は論理要素中に十分に実施され得る。   The code may be one or more processors, such as one or more digital signal processors (DSPs), a general purpose microprocessor, an application specific integrated circuit (ASIC), a field programmable logic array (FPGA), or other equivalent integrated circuit or Can be implemented by discrete logic. Thus, as used herein, the term “processor” can refer to either the foregoing structure or other structure suitable for the implementation of the techniques described herein. Also, the techniques may be fully implemented in one or more circuits or logic elements.

本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置において実施され得る。本開示では、開示する技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットについて説明したが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明した1つ以上のプロセッサを含めて、ハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。   The techniques of this disclosure may be implemented in a wide variety of devices or apparatuses, including a wireless handset, an integrated circuit (IC), or a set of ICs (eg, a chip set). Although this disclosure has described various components, modules or units in order to highlight the functional aspects of an apparatus configured to perform the disclosed techniques, these components, modules or units may be It does not necessarily have to be realized by different hardware units. Rather, as described above, the various units can be combined in a hardware unit, including one or more processors described above, with suitable software and / or firmware, or interoperating hardware units. Can be given by a set of

様々な例について説明した。これら及び他の例は以下の特許請求の範囲内に入る。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] 非立体視3次元(3D)コンテンツを立体視3D(S3D)コンテンツに変換する方法であって、アプリケーションプログラムインターフェース(API)呼を横取りすることと、前記API呼から、前記非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正することと、前記修正モデルビュー射影行列に基づいて、左ビュークリッピング座標を生成することと、前記修正モデルビュー射影行列に基づいて、右ビュークリッピング座標を生成することと、前記左ビュークリッピング座標に基づいて、左ビューを生成することと、前記右ビュークリッピング座標に基づいて、右ビューを生成することと、前記左ビューと前記右ビューとに基づいて、S3D画像をレンダリングすることとを備える方法。
[2] 前記左ビューにビューポートシフトを適用することと、前記右ビューにビューポートシフトを適用することとを更に備える、請求項1に記載の方法。
[3] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項2に記載の方法。
[4] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項2に記載の方法。
[5] 前記修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正することが、前記モデルビュー射影行列に定数を加算することを備える、請求項1に記載の方法。
[6] 前記定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算される、請求項5に記載の方法。
[7] 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項1に記載の方法。
[8] システムコマンドを受信することを更に備え、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項1に記載の方法。
[9] 前記左ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値が、前記右ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値と同じである、請求項1に記載の方法。
[10] 命令を記憶するメモリと、グラフィックス処理ユニット(GPU)と、前記命令の実行時に、アプリケーションプログラムインターフェース(API)呼を横取りすることと、前記API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正することと、前記GPUに、前記修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成させることと、前記GPUに、前記修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成させることと、前記GPUに、前記左ビュークリッピング座標に基づいて左ビューを生成させることと、前記GPUに、前記右ビュークリッピング座標に基づいて右ビューを生成させることと、前記GPUに、前記左ビューと前記右ビューとに基づいてS3D画像をレンダリングさせることとを行うように動作可能なプロセッサとを備える装置。
[11] 前記プロセッサが、前記GPUに、前記左ビューにビューポートシフトを適用することと、前記右ビューにビューポートシフトを適用することとを行わせるように更に動作可能である、請求項10に記載の装置。
[12] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項11に記載の装置。
[13] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項11に記載の装置。
[14] 前記プロセッサが、前記モデルビュー射影行列に定数を加算することによって前記モデルビュー射影行列を修正する、請求項10に記載の装置。
[15] 前記定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算される、請求項14に記載の装置。
[16] 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項10に記載の装置。
[17] 前記プロセッサが、システムコマンドを受信することを行うように更に動作可能であり、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項10に記載の装置。
[18] 前記左ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値が、前記右ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値と同じである、請求項10に記載の装置。
[19] 非立体視3次元(3D)コンテンツを立体視3D(S3D)コンテンツに変換するための装置であって、アプリケーションプログラムインターフェース(API)呼を横取りするための手段と、前記API呼から、前記非立体視3Dコンテンツのためのモデルビュー射影行列を決定するための手段と、修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正するための手段と、前記修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成するための手段と、前記修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成するための手段と、前記左ビュークリッピング座標に基づいて左ビューを生成するための手段と、前記右ビュークリッピング座標に基づいて右ビューを生成するための手段と、前記左ビューと前記右ビューとに基づいてS3D画像をレンダリングするための手段とを備える装置。
[20] 前記左ビューにビューポートシフトを適用するための手段と、前記右ビューにビューポートシフトを適用するための手段とを更に備える、請求項19に記載の装置。
[21] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項20に記載の装置。
[22] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項20に記載の装置。
[23] 前記修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正するための手段が、前記モデルビュー射影行列に定数を加算するための手段を備える、請求項19に記載の装置。
[24] 前記定数を加算するための手段が、前記定数を、前記モデルビュー射影行列の第1の行、第4の列における要素に加算する、請求項23に記載の装置。
[25] 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項19に記載の装置。
[26] システムコマンドを受信するための手段を更に備え、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項19に記載の装置。
[27] 前記左ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値が、前記右ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値と同じである、請求項19に記載の装置。
[28] 実行されたとき、1つ以上のプロセッサに、アプリケーションプログラムインターフェース(API)呼を横取りすることと、前記API呼から、前記非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、修正モデルビュー射影行列を生成するために前記モデルビュー射影行列を修正することと、前記修正モデルビュー射影行列に基づいて、左ビュークリッピング座標を生成することと、前記修正モデルビュー射影行列に基づいて、右ビュークリッピング座標を生成することと、前記左ビュークリッピング座標に基づいて、左ビューを生成することと、前記右ビュークリッピング座標に基づいて、右ビューを生成することと、前記左ビューと前記右ビューとに基づいて、S3D画像をレンダリングすることとを行わせる命令を記憶したコンピュータ可読記憶媒体。
[29] 実行されたとき、前記1つ以上のプロセッサに、前記左ビューにビューポートシフトを適用することと、前記右ビューにビューポートシフトを適用することとを行わせる更なる命令を記憶した、請求項28に記載のコンピュータ可読記憶媒体。
[30] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項29に記載のコンピュータ可読記憶媒体。
[31] 前記左ビューへの前記ビューポートシフトについての量と、前記右ビューへの前記ビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項29に記載のコンピュータ可読記憶媒体。
[32] 前記1つ以上のプロセッサが、前記モデルビュー射影行列に定数を加算することによって前記モデルビュー射影行列を修正する、請求項28に記載のコンピュータ可読記憶媒体。
[33] 前記定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算される、請求項32に記載のコンピュータ可読記憶媒体。
[34] 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項28に記載のコンピュータ可読記憶媒体。
[35] 実行されたとき、前記1つ以上のプロセッサに、システムコマンドを受信することを行わせる更なる命令を記憶し、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項28に記載のコンピュータ可読記憶媒体。
[36] 前記左ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値が、前記右ビュークリッピング座標を生成するために使用される前記修正モデルビュー射影行列についての値と同じである、請求項28に記載のコンピュータ可読記憶媒体。
Various examples have been described. These and other examples are within the scope of the following claims.
The invention described in the scope of the claims at the beginning of the present application is added below.
[1] A method for converting non-stereoscopic three-dimensional (3D) content into stereoscopic 3D (S3D) content, in which an application program interface (API) call is intercepted and the non-stereoscopic view is obtained from the API call Determining a model view projection matrix for 3D content; modifying the model view projection matrix to generate a modified model view projection matrix; and based on the modified model view projection matrix, left view clipping coordinates Generating a right view clipping coordinate based on the modified model view projection matrix, generating a left view based on the left view clipping coordinate, and based on the right view clipping coordinate Generating the right view, the left view and the right view Rendering an S3D image based on.
[2] The method of claim 1, further comprising applying a viewport shift to the left view and applying a viewport shift to the right view.
[3] The amount of the viewport shift to the left view and the amount of the viewport shift to the right view are determined based on one or more user input parameters. The method described.
[4] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view determine the depth range for the scene of the previously generated image. The method of claim 2, wherein
[5] The method of claim 1, wherein modifying the model view projection matrix to generate the modified model view projection matrix comprises adding a constant to the model view projection matrix.
[6] The method of claim 5, wherein the constant is added to an element in a first row, a fourth column of the model view projection matrix.
[7] The method of claim 1, wherein the model view projection matrix is defined for the non-stereoscopic 3D content.
[8] The method of claim 1, further comprising receiving a system command, wherein the system command enables an operation mode in which 3D content is converted to S3D content.
[9] A value for the modified model view projection matrix used to generate the left view clipping coordinates is a value for the modified model view projection matrix used to generate the right view clipping coordinates; The method of claim 1, which is the same.
[10] Memory for storing instructions, a graphics processing unit (GPU), intercepting an application program interface (API) call when executing the instructions, and for non-stereoscopic 3D content from the API call Determining a model view projection matrix, modifying the model view projection matrix to generate a modified model view projection matrix, and providing the GPU with left view clipping coordinates based on the modified model view projection matrix. Generating a right view clipping coordinate based on the modified model view projection matrix; causing the GPU to generate a left view based on the left view clipping coordinate; and The right view based on the right view clipping coordinates And a processor operable to cause the GPU to render an S3D image based on the left view and the right view.
[11] The processor is further operable to cause the GPU to apply a viewport shift to the left view and to apply a viewport shift to the right view. The device described in 1.
[12] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view are determined based on one or more user input parameters. The device described.
[13] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view determine a depth range for the scene of the previously generated image. The apparatus of claim 11, wherein
[14] The apparatus of claim 10, wherein the processor modifies the model view projection matrix by adding a constant to the model view projection matrix.
[15] The apparatus of claim 14, wherein the constant is added to an element in a first row, a fourth column of the model view projection matrix.
[16] The apparatus of claim 10, wherein the model view projection matrix is defined for the non-stereoscopic 3D content.
[17] The method of claim 10, wherein the processor is further operable to perform receiving a system command, the system command enabling an operation mode in which 3D content is converted to S3D content. apparatus.
[18] A value for the modified model view projection matrix used to generate the left view clipping coordinates is a value for the modified model view projection matrix used to generate the right view clipping coordinates; The apparatus of claim 10, which is the same.
[19] An apparatus for converting non-stereoscopic three-dimensional (3D) content into stereoscopic 3D (S3D) content, means for intercepting an application program interface (API) call, and from the API call, Means for determining a model view projection matrix for the non-stereoscopic 3D content; means for modifying the model view projection matrix to generate a modified model view projection matrix; and the modified model view projection matrix Means for generating a left view clipping coordinate based on, a means for generating a right view clipping coordinate based on the modified model view projection matrix, and a left view based on the left view clipping coordinate And generating a right view based on the right view clipping coordinates. And means for rendering an S3D image based on the left view and the right view.
[20] The apparatus of claim 19, further comprising: means for applying a viewport shift to the left view; and means for applying a viewport shift to the right view.
[21] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view are determined based on one or more user input parameters. The device described.
[22] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view determine a depth range for the scene of the previously generated image. 21. The apparatus of claim 20, wherein:
[23] The apparatus of claim 19, wherein the means for modifying the model view projection matrix to generate the modified model view projection matrix comprises means for adding a constant to the model view projection matrix. .
[24] The apparatus of claim 23, wherein the means for adding the constant adds the constant to an element in a first row, a fourth column of the model view projection matrix.
[25] The apparatus of claim 19, wherein the model view projection matrix is defined for the non-stereoscopic 3D content.
[26] The apparatus of claim 19, further comprising means for receiving a system command, wherein the system command enables an operating mode in which 3D content is converted to S3D content.
[27] A value for the modified model view projection matrix used to generate the left view clipping coordinates is a value for the modified model view projection matrix used to generate the right view clipping coordinates; 20. The device according to claim 19, which is the same.
[28] When executed, intercepting an application program interface (API) call to one or more processors and determining a model view projection matrix for the non-stereoscopic 3D content from the API call. Modifying the model view projection matrix to generate a modified model view projection matrix, generating left view clipping coordinates based on the modified model view projection matrix, and adding the modified model view projection matrix to the modified model view projection matrix Generating a right view clipping coordinate, generating a left view based on the left view clipping coordinate, generating a right view based on the right view clipping coordinate, and the left view And rendering the S3D image based on the right view. A computer-readable storage medium storing instructions to be executed.
[29] Stored further instructions that when executed cause the one or more processors to apply a viewport shift to the left view and to apply a viewport shift to the right view A computer-readable storage medium according to claim 28.
[30] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view are determined based on one or more user input parameters. The computer-readable storage medium described.
[31] The amount for the viewport shift to the left view and the amount for the viewport shift to the right view determine the depth range for the scene of the previously generated image. 30. The computer readable storage medium of claim 29, determined as described above.
[32] The computer-readable storage medium of claim 28, wherein the one or more processors modify the model view projection matrix by adding a constant to the model view projection matrix.
[33] The computer-readable storage medium of claim 32, wherein the constant is added to an element in a first row, a fourth column of the model view projection matrix.
[34] The computer-readable storage medium of claim 28, wherein the model view projection matrix is defined for the non-stereoscopic 3D content.
[35] Stores further instructions that, when executed, cause the one or more processors to receive a system command, the system command allowing an operating mode in which 3D content is converted to S3D content 30. The computer readable storage medium of claim 28.
[36] A value for the modified model view projection matrix used to generate the left view clipping coordinates is a value for the modified model view projection matrix used to generate the right view clipping coordinates; 30. The computer readable storage medium of claim 28, which is the same.

Claims (28)

非立体視3次元(3D)コンテンツを立体視3D(S3D)コンテンツに変換する方法であって、
アプリケーションプログラムインターフェース(API)呼を横取りすることと、
前記API呼から、前記非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、
第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
第2の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
前記第1の修正モデルビュー射影行列に基づいて、左ビュークリッピング座標を生成することと、
前記第2の修正モデルビュー射影行列に基づいて、右ビュークリッピング座標を生成することと、
前記左ビュークリッピング座標に基づいて、左ビューを生成することと、
前記右ビュークリッピング座標に基づいて、右ビューを生成することと、ここで、前記左ビューの視認方向は、前記右ビューの視認方向と平行である、
前記左ビューと前記右ビューとに基づいて、S3D画像をレンダリングすることと、
前記左ビューに第1のビューポートシフトを適用することと、
前記右ビューに第2のビューポートシフトを適用することと
を備える方法。
A method of converting non-stereoscopic 3D (3D) content into stereoscopic 3D (S3D) content,
Intercepting application program interface (API) calls;
Determining from the API call a model view projection matrix for the non-stereoscopic 3D content;
Shifting the model view projection matrix to generate a first modified model view projection matrix;
Shifting the model view projection matrix to generate a second modified model view projection matrix;
Generating left view clipping coordinates based on the first modified model view projection matrix;
Generating right view clipping coordinates based on the second modified model view projection matrix;
Generating a left view based on the left view clipping coordinates;
Generating a right view based on the right view clipping coordinates, wherein a viewing direction of the left view is parallel to a viewing direction of the right view;
Rendering an S3D image based on the left view and the right view;
Applying a first viewport shift to the left view;
Applying a second viewport shift to the right view .
前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項に記載の方法。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view are determined based on one or more user input parameters. Item 2. The method according to Item 1 . 前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項に記載の方法。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view determine the depth range for the scene of the previously generated image. particular basis is determined, the method according to claim 1. 前記第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることが、前記モデルビュー射影行列に第1の定数を加算することを備え、前記第2の修正モデルビュー射影行列を生成するため前記モデルビュー射影行列をシフトすることは前記モデルビュー射影行列に第2の定数を加算することを備える、請求項1に記載の方法。   Shifting the model view projection matrix to generate the first modified model view projection matrix comprises adding a first constant to the model view projection matrix, the second modified model view projection. The method of claim 1, wherein shifting the model view projection matrix to generate a matrix comprises adding a second constant to the model view projection matrix. 前記第1の定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算され、前記第2の定数が、前記モデルビュー射影行列の第1の行、第4の列における前記要素に加算される、請求項に記載の方法。 The first constant is added to the elements in the first row and fourth column of the model view projection matrix, and the second constant is the first row and fourth column of the model view projection matrix. The method of claim 4 , wherein the method is added to the elements in. 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項1に記載の方法。   The method of claim 1, wherein the model view projection matrix is defined for the non-stereoscopic 3D content. システムコマンドを受信することを更に備え、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項1に記載の方法。   The method of claim 1, further comprising receiving a system command, wherein the system command enables an operation mode in which 3D content is converted to S3D content. 命令を記憶するメモリと、
グラフィックス処理ユニット(GPU)と、
前記命令の実行時に、
アプリケーションプログラムインターフェース(API)呼を横取りすることと、
前記API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、
第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
第2の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
前記GPUに、前記第1の修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成させることと、
前記GPUに、前記第2の修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成させることと、
前記GPUに、前記左ビュークリッピング座標に基づいて左ビューを生成させることと、
前記GPUに、前記右ビュークリッピング座標に基づいて右ビューを生成させることと、ここで、前記左ビューの視認方向は、前記右ビューの視認方向と平行である、
前記GPUに、前記左ビューと前記右ビューとに基づいて立体視3D(S3D画像をレンダリングさせることと
前記GPUに、前記左ビューに第1のビューポートシフトを適用することと、前記右ビューに第2のビューポートシフトを適用することと
を行うように動作可能なプロセッサと
を備える装置。
A memory for storing instructions;
A graphics processing unit (GPU);
When executing the instruction,
Intercepting application program interface (API) calls;
Determining a model view projection matrix for non-stereoscopic 3D content from the API call;
Shifting the model view projection matrix to generate a first modified model view projection matrix;
Shifting the model view projection matrix to generate a second modified model view projection matrix;
Causing the GPU to generate left view clipping coordinates based on the first modified model view projection matrix;
Causing the GPU to generate right view clipping coordinates based on the second modified model view projection matrix;
Causing the GPU to generate a left view based on the left view clipping coordinates;
Causing the GPU to generate a right view based on the right view clipping coordinates, wherein a viewing direction of the left view is parallel to a viewing direction of the right view;
Causing the GPU to render a stereoscopic 3D ( S3D ) image based on the left view and the right view ;
An apparatus comprising: a processor operable to apply a first viewport shift to the left view and a second viewport shift to the right view on the GPU .
前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項に記載の装置。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view are determined based on one or more user input parameters. Item 9. The apparatus according to Item 8 . 前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項に記載の装置。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view determine the depth range for the scene of the previously generated image. 9. The apparatus of claim 8 , wherein the apparatus is determined based on the above. 前記プロセッサが、前記モデルビュー射影行列に第1の定数を加算することによって前記第1の修正モデルビュー射影行列を生成するため前記モデルビュー射影行列をシフトし、前記プロセッサが、前記モデルビュー射影行列に第2の定数を加算することによって前記第2の修正モデルビュー射影行列を生成するため前記モデルビュー射影行列をシフトする、請求項に記載の装置。 The processor shifts the model view projection matrix to generate the first modified model view projection matrix by adding a first constant to the model view projection matrix, and the processor includes the model view projection matrix. 9. The apparatus of claim 8 , wherein the model view projection matrix is shifted to generate the second modified model view projection matrix by adding a second constant to the. 前記第1の定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算され、前記第2の定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算される、請求項11に記載の装置。 The first constant is added to the elements in the first row and fourth column of the model view projection matrix, and the second constant is the first row and fourth column of the model view projection matrix. The apparatus of claim 11 , wherein the apparatus is added to the elements in. 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項に記載の装置。 The apparatus of claim 8 , wherein the model view projection matrix is defined for the non-stereoscopic 3D content. 前記プロセッサが、
システムコマンドを受信することを行うように更に動作可能であり、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項に記載の装置。
The processor is
9. The apparatus of claim 8 , further operable to perform receiving a system command, wherein the system command enables an operation mode in which 3D content is converted to S3D content.
非立体視3次元(3D)コンテンツを立体視3D(S3D)コンテンツに変換するための装置であって、
アプリケーションプログラムインターフェース(API)呼を横取りするための手段と、
前記API呼から、前記非立体視3Dコンテンツのためのモデルビュー射影行列を決定するための手段と、
第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトするための手段と、
第2の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトするための手段と、
前記第1の修正モデルビュー射影行列に基づいて左ビュークリッピング座標を生成するための手段と、
前記第2の修正モデルビュー射影行列に基づいて右ビュークリッピング座標を生成するための手段と、
前記左ビュークリッピング座標に基づいて左ビューを生成するための手段と、
前記右ビュークリッピング座標に基づいて右ビューを生成するための手段と、ここで、前記左ビューの視認方向は、前記右ビューの視認方向と平行である、
前記左ビューと前記右ビューとに基づいてS3D画像をレンダリングするための手段と
前記左ビューに第1のビューポートシフトを適用するための手段と、
前記右ビューに第2のビューポートシフトを適用するための手段と
を備える装置。
An apparatus for converting non-stereoscopic 3D (3D) content into stereoscopic 3D (S3D) content,
Means for intercepting application program interface (API) calls;
Means for determining a model view projection matrix for the non-stereoscopic 3D content from the API call;
Means for shifting the model view projection matrix to generate a first modified model view projection matrix;
Means for shifting the model view projection matrix to generate a second modified model view projection matrix;
Means for generating left view clipping coordinates based on the first modified model view projection matrix;
Means for generating right view clipping coordinates based on the second modified model view projection matrix;
Means for generating a left view based on the left view clipping coordinates;
Means for generating a right view based on the right view clipping coordinates, wherein a viewing direction of the left view is parallel to a viewing direction of the right view;
Means for rendering an S3D image based on the left view and the right view;
Means for applying a first viewport shift to the left view;
Means for applying a second viewport shift to the right view .
前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項15に記載の装置。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view are determined based on one or more user input parameters. Item 15. The device according to Item 15 . 前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項15に記載の装置。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view determine the depth range for the scene of the previously generated image. 16. The apparatus of claim 15 , wherein the apparatus is determined based on the above. 前記第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトするための手段が、前記モデルビュー射影行列に第1の定数を加算するための手段を備え、前記第2の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトするための手段が、前記モデルビュー射影行列に第2の定数を加算するための手段を備える、請求項15に記載の装置。 Means for shifting the model view projection matrix to generate the first modified model view projection matrix comprises means for adding a first constant to the model view projection matrix; The apparatus of claim 15 , wherein means for shifting the model view projection matrix to generate a modified model view projection matrix comprises means for adding a second constant to the model view projection matrix. 前記第1の定数を加算するための手段が、前記第1の定数を、前記モデルビュー射影行列の第1の行、第4の列における要素に加算し、前記第2の定数を、前記モデルビュー射影行列の第1の行、第4の列における前記要素に加算する、請求項18に記載の装置。 The means for adding the first constant adds the first constant to an element in a first row and a fourth column of the model view projection matrix, and the second constant is added to the model. The apparatus of claim 18 , wherein the apparatus adds to the elements in the first row, fourth column of a view projection matrix. 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項15に記載の装置。 The apparatus of claim 15 , wherein the model view projection matrix is defined for the non-stereoscopic 3D content. システムコマンドを受信するための手段を更に備え、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項15に記載の装置。 16. The apparatus of claim 15 , further comprising means for receiving a system command, wherein the system command enables an operating mode in which 3D content is converted to S3D content. 実行されたとき、1つ以上のプロセッサに、
アプリケーションプログラムインターフェース(API)呼を横取りすることと、
前記API呼から、非立体視3Dコンテンツのためのモデルビュー射影行列を決定することと、
第1の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
第2の修正モデルビュー射影行列を生成するために前記モデルビュー射影行列をシフトすることと、
前記第1の修正モデルビュー射影行列に基づいて、左ビュークリッピング座標を生成することと、
前記第2の修正モデルビュー射影行列に基づいて、右ビュークリッピング座標を生成することと、
前記左ビュークリッピング座標に基づいて、左ビューを生成することと、
前記右ビュークリッピング座標に基づいて、右ビューを生成することと
記左ビューと前記右ビューとに基づいて、立体視3D(S3D画像をレンダリングすることと
前記左ビューに第1のビューポートシフトを適用することと、
前記右ビューに第2のビューポートシフトを適用することと
を行わせる命令を記憶したコンピュータ可読記憶媒体。
When executed, one or more processors
Intercepting application program interface (API) calls;
Determining a model view projection matrix for non-stereoscopic 3D content from the API call;
Shifting the model view projection matrix to generate a first modified model view projection matrix;
Shifting the model view projection matrix to generate a second modified model view projection matrix;
Generating left view clipping coordinates based on the first modified model view projection matrix;
Generating right view clipping coordinates based on the second modified model view projection matrix;
Generating a left view based on the left view clipping coordinates;
Generating a right view based on the right view clipping coordinates ;
Before based on said right view and Kihidari views, and rendering a stereoscopic 3D (S3D) image,
Applying a first viewport shift to the left view;
A computer readable storage medium storing instructions for applying a second viewport shift to the right view .
前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、1つ以上のユーザ入力パラメータに基づいて決定される、請求項22に記載のコンピュータ可読記憶媒体。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view are determined based on one or more user input parameters. Item 23. The computer-readable storage medium according to Item 22 . 前記左ビューへの前記第1のビューポートシフトについての量と、前記右ビューへの前記第2のビューポートシフトについての量とが、前に生成された画像のシーンについての深度範囲を決定することに基づいて決定される、請求項22に記載のコンピュータ可読記憶媒体。 The amount for the first viewport shift to the left view and the amount for the second viewport shift to the right view determine the depth range for the scene of the previously generated image. 23. The computer readable storage medium of claim 22 , wherein the computer readable storage medium is determined based on the above. 前記1つ以上のプロセッサが、前記モデルビュー射影行列に第1の定数を加算することによって前記モデルビュー射影行列をシフトし、前記モデルビュー射影行列に第2の定数を加算することによって前記モデルビュー射影行列をシフトする、請求項22に記載のコンピュータ可読記憶媒体。 The one or more processors shift the model view projection matrix by adding a first constant to the model view projection matrix and add a second constant to the model view projection matrix. 23. The computer readable storage medium of claim 22 , wherein the projection matrix is shifted. 前記第1の定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算され、前記第2の定数が、前記モデルビュー射影行列の第1の行、第4の列における要素に加算される、請求項25に記載のコンピュータ可読記憶媒体。 The first constant is added to the elements in the first row and fourth column of the model view projection matrix, and the second constant is the first row and fourth column of the model view projection matrix. 26. The computer readable storage medium of claim 25 , added to the elements in. 前記モデルビュー射影行列が前記非立体視3Dコンテンツについて定義される、請求項22に記載のコンピュータ可読記憶媒体。 23. The computer readable storage medium of claim 22 , wherein the model view projection matrix is defined for the non-stereoscopic 3D content. 実行されたとき、前記1つ以上のプロセッサに、
システムコマンドを受信することを行わせる更なる命令を記憶し、前記システムコマンドは、3DコンテンツがS3Dコンテンツに変換される動作モードを可能にする、請求項22に記載のコンピュータ可読記憶媒体。
When executed, the one or more processors include:
23. The computer-readable storage medium of claim 22 , storing further instructions that cause a system command to be received, wherein the system command enables an operating mode in which 3D content is converted to S3D content.
JP2013558122A 2011-03-14 2012-03-13 Runtime conversion of planar 3D to stereoscopic 3D Expired - Fee Related JP5882367B2 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161452289P 2011-03-14 2011-03-14
US61/452,289 2011-03-14
US201161474638P 2011-04-12 2011-04-12
US61/474,638 2011-04-12
US13/418,206 2012-03-12
US13/418,206 US9219902B2 (en) 2011-03-14 2012-03-12 3D to stereoscopic 3D conversion
PCT/US2012/028941 WO2012125648A1 (en) 2011-03-14 2012-03-13 Run -time conversion of native monoscopic 3d into stereoscopic 3d

Publications (2)

Publication Number Publication Date
JP2014516427A JP2014516427A (en) 2014-07-10
JP5882367B2 true JP5882367B2 (en) 2016-03-09

Family

ID=46828080

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013558086A Expired - Fee Related JP5694577B2 (en) 2011-03-14 2012-03-12 Stereoscopic conversion for shader-based graphics content
JP2013558122A Expired - Fee Related JP5882367B2 (en) 2011-03-14 2012-03-13 Runtime conversion of planar 3D to stereoscopic 3D

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2013558086A Expired - Fee Related JP5694577B2 (en) 2011-03-14 2012-03-12 Stereoscopic conversion for shader-based graphics content

Country Status (6)

Country Link
US (2) US9578299B2 (en)
EP (2) EP2686833B1 (en)
JP (2) JP5694577B2 (en)
KR (2) KR101556835B1 (en)
CN (2) CN103493102B (en)
WO (2) WO2012125545A1 (en)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010121945A2 (en) * 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
KR20130081569A (en) * 2012-01-09 2013-07-17 삼성전자주식회사 Apparatus and method for outputting 3d image
US9538164B2 (en) * 2013-01-10 2017-01-03 Qualcomm Incorporated Stereoscopic conversion with viewing orientation for shader based graphics content
CN105190562A (en) * 2013-03-13 2015-12-23 英特尔公司 Improved techniques for three-dimensional image editing
US20140375663A1 (en) * 2013-06-24 2014-12-25 Alexander Pfaffe Interleaved tiled rendering of stereoscopic scenes
US10134170B2 (en) * 2013-09-26 2018-11-20 Intel Corporation Stereoscopic rendering using vertix shader instancing
KR102082132B1 (en) * 2014-01-28 2020-02-28 한국전자통신연구원 Device and Method for new 3D Video Representation from 2D Video
US20150281679A1 (en) 2014-03-28 2015-10-01 Qualcomm Incorporated Pixel data generation for autostereoscopy images
CN104134231B (en) * 2014-07-11 2017-02-01 南京乐飞航空技术有限公司 Coastline constructing method based on image recognition
CN105635707A (en) * 2014-11-06 2016-06-01 福州瑞芯微电子股份有限公司 Image generation method and device
US9626733B2 (en) * 2014-11-24 2017-04-18 Industrial Technology Research Institute Data-processing apparatus and operation method thereof
CN104486611A (en) * 2014-12-29 2015-04-01 北京极维客科技有限公司 Method and device for converting image
GB2536964B (en) 2015-04-02 2019-12-25 Ge Aviat Systems Ltd Avionics display system
US10186008B2 (en) * 2015-05-28 2019-01-22 Qualcomm Incorporated Stereoscopic view processing
KR102459850B1 (en) 2015-12-03 2022-10-27 삼성전자주식회사 Method and apparatus for processing 3-dimension image, and graphic processing unit
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10884761B2 (en) 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10460513B2 (en) 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
WO2018140223A1 (en) * 2017-01-25 2018-08-02 Advanced Micro Devices, Inc. Stereo rendering
US20180211434A1 (en) * 2017-01-25 2018-07-26 Advanced Micro Devices, Inc. Stereo rendering
CN106993179A (en) * 2017-02-24 2017-07-28 杭州电子科技大学 A kind of method that 3D models turn three-dimensional double vision point view
US20240070959A1 (en) * 2022-08-25 2024-02-29 Acer Incorporated Method and computer device for 3d scene generation
CN115457200B (en) * 2022-08-31 2023-04-14 北京四维远见信息技术有限公司 Method, device, equipment and storage medium for automatic true stereo display of 2.5-dimensional image

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2532267B1 (en) 1982-08-31 1988-05-27 Lely Nv C Van Der TRACTOR COMPRISING A PLURALITY OF DRIVE WHEELS
US6496183B1 (en) 1998-06-30 2002-12-17 Koninklijke Philips Electronics N.V. Filter for transforming 3D data in a hardware accelerated rendering architecture
US6104405A (en) 1997-02-26 2000-08-15 Alternate Realities Corporation Systems, methods and computer program products for converting image data to nonplanar image data
US5982375A (en) 1997-06-20 1999-11-09 Sun Microsystems, Inc. Floating point processor for a three-dimensional graphics accelerator which includes single-pass stereo capability
GB2358980B (en) 2000-02-07 2004-09-01 British Broadcasting Corp Processing of images for 3D display
GB0010685D0 (en) 2000-05-03 2000-06-28 Koninkl Philips Electronics Nv Autostereoscopic display driver
US20020154214A1 (en) 2000-11-02 2002-10-24 Laurent Scallie Virtual reality game system using pseudo 3D display driver
US20040085310A1 (en) 2002-11-04 2004-05-06 Snuffer John T. System and method of extracting 3-D data generated for 2-D display applications for use in 3-D volumetric displays
AU2002952872A0 (en) 2002-11-25 2002-12-12 Dynamic Digital Depth Research Pty Ltd Image generation
US20040212612A1 (en) 2003-04-28 2004-10-28 Michael Epstein Method and apparatus for converting two-dimensional images into three-dimensional images
GB0410551D0 (en) 2004-05-12 2004-06-16 Ller Christian M 3d autostereoscopic display
US8004515B1 (en) * 2005-03-15 2011-08-23 Nvidia Corporation Stereoscopic vertex shader override
WO2007017834A2 (en) * 2005-08-09 2007-02-15 Koninklijke Philips Electronics N.V. Disparity value generator
JP4931038B2 (en) 2005-11-22 2012-05-16 シャープ株式会社 Stereoscopic image device, game device, stereoscopic image projection device, stereoscopic image data generation method, control program, and readable recording medium
US8284204B2 (en) * 2006-06-30 2012-10-09 Nokia Corporation Apparatus, method and a computer program product for providing a unified graphics pipeline for stereoscopic rendering
US8237739B2 (en) 2006-09-12 2012-08-07 Qualcomm Incorporated Method and device for performing user-defined clipping in object space
US8149242B2 (en) * 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US7982733B2 (en) 2007-01-05 2011-07-19 Qualcomm Incorporated Rendering 3D video images on a stereo-enabled display
JP4836814B2 (en) 2007-01-30 2011-12-14 株式会社東芝 CG image generating device for 3D display, CG image generating method for 3D display, and program
US7884823B2 (en) 2007-06-12 2011-02-08 Microsoft Corporation Three dimensional rendering of display information using viewer eye coordinates
JP4982862B2 (en) 2007-09-07 2012-07-25 株式会社バンダイナムコゲームス Program, information storage medium, and image generation system
JP2009064355A (en) 2007-09-07 2009-03-26 Cellius Inc Program, information storage medium, and image producing system
US7675513B2 (en) * 2008-03-14 2010-03-09 Evans & Sutherland Computer Corp. System and method for displaying stereo images
US8279222B2 (en) 2008-03-14 2012-10-02 Seiko Epson Corporation Processing graphics data for a stereoscopic display
US20110310982A1 (en) 2009-01-12 2011-12-22 Lg Electronics Inc. Video signal processing method and apparatus using depth information
US9001157B2 (en) 2009-03-25 2015-04-07 Nvidia Corporation Techniques for displaying a selection marquee in stereographic content
WO2010121945A2 (en) 2009-04-21 2010-10-28 International Business Machines Corporation Method and system for interaction with unmodified 3d graphics applications
GB2470759A (en) 2009-06-03 2010-12-08 Sony Comp Entertainment Europe Displaying videogame on 3D display by generating stereoscopic version of game without modifying source code
KR101716636B1 (en) 2009-07-27 2017-03-15 코닌클리케 필립스 엔.브이. Combining 3d video and auxiliary data
US8773449B2 (en) 2009-09-14 2014-07-08 International Business Machines Corporation Rendering of stereoscopic images with multithreaded rendering software pipeline
KR101631514B1 (en) 2009-11-19 2016-06-17 삼성전자주식회사 Apparatus and method for generating three demension content in electronic device
US20110157322A1 (en) 2009-12-31 2011-06-30 Broadcom Corporation Controlling a pixel array to support an adaptable light manipulator

Also Published As

Publication number Publication date
EP2686833B1 (en) 2018-06-20
KR101529812B1 (en) 2015-06-17
CN103493102A (en) 2014-01-01
CN103444190B (en) 2016-06-08
KR101556835B1 (en) 2015-10-01
JP2014512032A (en) 2014-05-19
EP2687018A1 (en) 2014-01-22
WO2012125545A1 (en) 2012-09-20
US9219902B2 (en) 2015-12-22
CN103493102B (en) 2016-11-09
US20120236002A1 (en) 2012-09-20
CN103444190A (en) 2013-12-11
US9578299B2 (en) 2017-02-21
US20120235999A1 (en) 2012-09-20
JP5694577B2 (en) 2015-04-01
KR20130136536A (en) 2013-12-12
WO2012125648A1 (en) 2012-09-20
JP2014516427A (en) 2014-07-10
KR20130131480A (en) 2013-12-03
EP2686833A1 (en) 2014-01-22

Similar Documents

Publication Publication Date Title
JP5882367B2 (en) Runtime conversion of planar 3D to stereoscopic 3D
JP6227668B2 (en) Stereoscopic transformation by gaze direction for shader-based graphics content
EP3304896B1 (en) Stereoscopic view processing
US20110273437A1 (en) Data Dependent Method of Configuring Stereoscopic Rendering Parameters
KR100939864B1 (en) Processing graphics data for a stereoscopic display
US20130293547A1 (en) Graphics rendering technique for autostereoscopic three dimensional display
JP2012244396A (en) Image processing apparatus, image processing method, and program
KR20120139054A (en) Apparatus for tranforming image
KR101227183B1 (en) Apparatus and method for stereoscopic rendering 3-dimension graphic model
US11887228B2 (en) Perspective correct vector graphics with foveated rendering
US20240070959A1 (en) Method and computer device for 3d scene generation
JP2022523020A (en) Interoperable 3D image content handling
TW202129599A (en) Methods and apparatus for multiple lens distortion correction

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150721

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151124

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20151202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160203

R150 Certificate of patent or registration of utility model

Ref document number: 5882367

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees