JP2013206094A - Information processor and car navigation device - Google Patents

Information processor and car navigation device Download PDF

Info

Publication number
JP2013206094A
JP2013206094A JP2012073967A JP2012073967A JP2013206094A JP 2013206094 A JP2013206094 A JP 2013206094A JP 2012073967 A JP2012073967 A JP 2012073967A JP 2012073967 A JP2012073967 A JP 2012073967A JP 2013206094 A JP2013206094 A JP 2013206094A
Authority
JP
Japan
Prior art keywords
texture
storage
unit
target
management information
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.)
Pending
Application number
JP2012073967A
Other languages
Japanese (ja)
Inventor
Masahiro Kaneko
政弘 金子
Taisuke Inoue
泰佑 井上
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.)
Panasonic Corp
Original Assignee
Panasonic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp filed Critical Panasonic Corp
Priority to JP2012073967A priority Critical patent/JP2013206094A/en
Publication of JP2013206094A publication Critical patent/JP2013206094A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System (AREA)
  • Navigation (AREA)
  • Image Generation (AREA)

Abstract

PROBLEM TO BE SOLVED: To create a texture atlas with a low load at a high speed.SOLUTION: A texture cache 31 is a memory for integrating plural textures for temporary storage. A texture storage unit 15 reads plural textures sequentially from a main memory 20 and stores them in a texture cache 31. A texture division unit 16 can divide a texture to be stored in the texture storage unit 15 according to the storage state in the texture cache 31.

Description

本発明は、テクスチャアトラスを用いて描画する情報処理装置、カーナビゲーション装置に関する。   The present invention relates to an information processing apparatus and a car navigation apparatus that draw using a texture atlas.

従来のテクスチャマッピング技術としてハードウェア処理するものが知られている(例えば、特許文献1参照)。一般的に、ハードウェア処理はソフトウェア処理より消費電力が高く、コスト高となる。   A conventional texture mapping technique that performs hardware processing is known (for example, see Patent Document 1). In general, hardware processing consumes more power and costs than software processing.

グラフィクスハードウェアのAPI(Application Programming Interface)の代表的なものにOpenGL(登録商標)、OpenGL−ES(登録商標)、DirectX(登録商標)がある。これらで使用される描画高速化手法にテクスチャアトラスがある。テクスチャアトラスとは複数のテクスチャをまとめて一つのテクスチャとするものである。テクスチャアトラスの作成はCPUおよびGPUの負荷を大きくするため、事前に作成されたテクスチャアトラスを使用するか、任意のシーンAからシーンBへ遷移する間に作成するのが一般的である。   Representative examples of graphics hardware API (Application Programming Interface) include OpenGL (registered trademark), OpenGL-ES (registered trademark), and DirectX (registered trademark). There is a texture atlas as a drawing speed-up method used in these. A texture atlas is a combination of a plurality of textures into a single texture. Since the creation of the texture atlas increases the load on the CPU and GPU, it is common to use a texture atlas created in advance or during transition from any scene A to scene B.

特開平10−091801号Japanese Patent Laid-Open No. 10-091801

カーナビゲーションシステムのような低スペックな組み込みシステムの場合、テクスチャを必要なタイミングでリアルタイムに効率よく読み込む必要がある。   In the case of a low-spec embedded system such as a car navigation system, it is necessary to efficiently read a texture in real time at a necessary timing.

本発明はこうした状況に鑑みなされたものであり、その目的は、テクスチャアトラスを低負荷で高速に作成する技術を提供することにある。   The present invention has been made in view of such circumstances, and an object thereof is to provide a technique for creating a texture atlas at a high speed with a low load.

上記課題を解決するために、本発明のある態様の情報処理装置は、複数のテクスチャを統合して一時格納するためのテクスチャキャッシュメモリに、メインメモリから複数のテクスチャを順次読み出して格納するテクスチャ格納部と、前記テクスチャキャッシュメモリ内の格納状態に応じて、前記テクスチャ格納部によって格納されるべきテクスチャを分割するテクスチャ分割部と、を備える。   In order to solve the above-described problem, an information processing apparatus according to an aspect of the present invention includes a texture storage that sequentially reads and stores a plurality of textures from a main memory in a texture cache memory for integrating and temporarily storing a plurality of textures. And a texture dividing unit that divides the texture to be stored by the texture storage unit according to the storage state in the texture cache memory.

なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。   It should be noted that any combination of the above-described constituent elements and a conversion of the expression of the present invention between a method, an apparatus, a system, a recording medium, a computer program, etc. are also effective as an aspect of the present invention.

本発明によれば、テクスチャアトラスを低負荷で高速に作成できる。   According to the present invention, a texture atlas can be created at a high speed with a low load.

図1(a)−(b)は、APIを用いた複数テクスチャの描画について説明するための図である。FIGS. 1A to 1B are diagrams for describing drawing of a plurality of textures using an API. 図2(a)−(b)は、テクスチャアトラスの作成方法を示す図である。FIGS. 2A to 2B are diagrams illustrating a method for creating a texture atlas. 本発明の実施の形態に係るカーナビゲーション装置のハードウェア機能ブロック図である。It is a hardware functional block diagram of the car navigation device concerning an embodiment of the invention. 本発明の実施の形態に係る情報処理装置のソフトウェア機能ブロック図である。It is a software functional block diagram of the information processing apparatus which concerns on embodiment of this invention. 図5(a)−(c)は、本実施の形態に係るテクスチャ格納アルゴリズムを説明するための具体例1を示す図である。FIGS. 5A to 5C are diagrams showing a specific example 1 for explaining the texture storage algorithm according to the present embodiment. 図6(a)−(d)は、本実施の形態に係るテクスチャ格納アルゴリズムを説明するための具体例2を示す図である。FIGS. 6A to 6D are diagrams showing a specific example 2 for explaining the texture storing algorithm according to the present embodiment. ブロック分割されたテクスチャアトラス領域を説明するための図である。It is a figure for demonstrating the texture atlas area | region divided into blocks. テクスチャ格納処理の全体動作を示すフローチャートである。It is a flowchart which shows the whole operation | movement of a texture storing process. 格納位置決定処理を示すフローチャートである。It is a flowchart which shows a storage position determination process. 狭義のテクスチャ格納処理を示すフローチャートである。It is a flowchart which shows the texture storing process of a narrow sense. 格納管理情報更新処理を示すフローチャートである。It is a flowchart which shows a storage management information update process. テクスチャの描画処理を示すフローチャートである。It is a flowchart which shows the drawing process of a texture.

まず本発明の実施の形態を詳細に説明する前にテクスチャアトラスについて説明する。図1(a)−(b)は、APIを用いた複数テクスチャの描画について説明するための図である。図1(a)はテクスチャアトラスを用いない場合を示し、図1(b)はテクスチャアトラスを用いる場合を示す。APIの呼び出しにはオーバーヘッドがかかるため、その呼び出し回数が少ないほうが処理速度が速くなる。   First, the texture atlas will be described before the embodiment of the present invention is described in detail. FIGS. 1A to 1B are diagrams for describing drawing of a plurality of textures using an API. FIG. 1A shows a case where a texture atlas is not used, and FIG. 1B shows a case where a texture atlas is used. Since API calls require overhead, the smaller the number of calls, the faster the processing speed.

図1(a)は9つのテクスチャをそれぞれ別のファイルで管理している場合を示している。その内の4つのテクスチャを描画する場合、アプリケーションは、描画すべきテクスチャを有効にするためのバインド命令と、テクスチャを描画するための描画命令をそれぞれ4回コールする必要があるため、合計8回のコールが必要となる。   FIG. 1A shows a case where nine textures are managed by different files. When drawing four of the textures, the application needs to call the bind command for enabling the texture to be drawn and the draw command for drawing the texture four times, so that a total of eight times. Call is required.

図1(b)は9つのテクスチャを1つのテクスチャにまとめて、テクスチャアトラスとして1つのファイルで管理している場合を示している。図1(a)と同様に4つのテクスチャを描画する場合、アプリケーションは、描画すべきテクスチャアトラスを有効にするためのバインド命令と、テクスチャアトラス内のテクスチャを描画するための描画命令をそれぞれ1回コールすれば足りるため、合計2回のコールで足りる。   FIG. 1B shows a case where nine textures are combined into one texture and managed as one texture atlas with one file. When drawing four textures as in FIG. 1A, the application executes a bind command for enabling the texture atlas to be drawn and a drawing command for drawing the texture in the texture atlas once. A total of two calls will suffice, since it is enough to make a call.

このようにテクスチャアトラスを用いることにより、APIの呼び出し回数が減り処理速度が速くなる。このテクスチャアトラスは、CPUおよびGPUの負荷が非常に高いためアプリケーションのシーンとシーンの間に準備するのが一般的である。即ち同一シーンの描画中は、キャッシュメモリへのテクスチャ読み込み、テクスチャアトラスの生成は行わない。   By using the texture atlas in this way, the number of API calls is reduced and the processing speed is increased. This texture atlas is generally prepared between scenes of an application because the load on the CPU and the GPU is very high. That is, during drawing of the same scene, the texture is not read into the cache memory and the texture atlas is not generated.

なおゲームのように次のシーンで使用されるテクスチャが予め分かっている場合は、現シーンの描画中に次のシーンのテクスチャをキャッシュメモリにプリフェッチし、テクスチャアトラスを生成することができる。しかしながら、カーナビゲーションシステムのように次のシーンで使用されるテクスチャの予測が困難な場合は、テクスチャのプリフェッチは困難である。   If the texture used in the next scene is known in advance as in the game, the texture of the next scene can be prefetched into the cache memory during drawing of the current scene, and a texture atlas can be generated. However, when it is difficult to predict the texture to be used in the next scene as in a car navigation system, it is difficult to prefetch the texture.

またカーナビゲーション装置が設置される車両内は屋内と比較し温度環境が厳しくなる傾向がある。例えば屋内に設置されるTVなどは−10℃〜40℃程度の温度環境を想定して製造されることが一般的であるが、ダッシュボードに設置されるカーナビゲーション装置は−30℃〜80℃程度の温度環境を想定して製造されることが一般的である。例えば真夏の炎天下には、ダッシュボードの温度が80℃に到達することもしばしば起きる。したがってカーナビゲーション装置には、発熱が大きくなる高スペックのCPUおよびGPUの搭載に制限がある。   Also, the temperature environment tends to be severer in the vehicle where the car navigation device is installed than in an indoor environment. For example, TVs installed indoors are generally manufactured assuming a temperature environment of about −10 ° C. to 40 ° C., but car navigation devices installed on dashboards are −30 ° C. to 80 ° C. In general, it is manufactured assuming a certain temperature environment. For example, the dashboard temperature often reaches 80 ° C. under hot summer weather. Therefore, the car navigation device has a limitation in mounting a high-spec CPU and GPU that generate a large amount of heat.

またカーナビゲーション装置に限らず、コスト削減の観点から低スペックなCPU、GPUおよびメモリを搭載している組み込みシステムも多い。このような低スペックなハードウェア資源でプリフェッチせずにテクスチャを高速に描画するには効率的にテクスチャアトラスを作成することが求められる。   In addition to car navigation devices, many embedded systems are equipped with a low-spec CPU, GPU, and memory from the viewpoint of cost reduction. In order to draw a texture at high speed without prefetching with such low-spec hardware resources, it is required to efficiently create a texture atlas.

図2(a)−(b)は、テクスチャアトラスの作成方法を示す図である。図2(a)は一般的な手法により作成されたテクスチャアトラスを示す。図2(b)は本発明の実施の形態に係る手法により作成されたテクスチャアトラスを示す。本発明の実施の形態に係る手法ではテクスチャの分割を許容する。図2(a)と図2(b)を比較すると分かるように後者のほうが、同じサイズのテクスチャアトラスに多くのテクスチャを格納でき、無駄な空き領域が少ないことが分かる。   FIGS. 2A to 2B are diagrams illustrating a method for creating a texture atlas. FIG. 2A shows a texture atlas created by a general method. FIG. 2B shows a texture atlas created by the method according to the embodiment of the present invention. The method according to the embodiment of the present invention allows texture division. As can be seen by comparing FIG. 2 (a) and FIG. 2 (b), it can be seen that the latter can store more textures in the texture atlas of the same size and has less wasted free space.

図3は、本発明の実施の形態に係るカーナビゲーション装置1000のハードウェア機能ブロック図である。カーナビゲーション装置1000は、情報処理装置100、外部記憶装置200およびユーザインタフェース300を備える。   FIG. 3 is a hardware functional block diagram of the car navigation apparatus 1000 according to the embodiment of the present invention. The car navigation apparatus 1000 includes an information processing apparatus 100, an external storage device 200, and a user interface 300.

情報処理装置100は、CPU10a、GPU10b、メインメモリ20およびビデオメモリ30を備える。CPU10a、GPU10bおよびメインメモリ20は同一のバス40にそれぞれ接続される。   The information processing apparatus 100 includes a CPU 10a, a GPU 10b, a main memory 20, and a video memory 30. The CPU 10a, GPU 10b, and main memory 20 are connected to the same bus 40, respectively.

CPU10aはメインメモリ20からプログラムを読み込み、そのプログラムにしたがい各種の処理を実行し、本カーナビゲーション装置1000全体を統括的に制御する。GPU10bは、CPU10aの処理量を低減するためCPU10aに代わり画像処理を実行する。例えば、ジオメトリ、レンダリング等を実行する。   The CPU 10a reads a program from the main memory 20, executes various processes according to the program, and controls the entire car navigation apparatus 1000 in an integrated manner. The GPU 10b executes image processing instead of the CPU 10a in order to reduce the processing amount of the CPU 10a. For example, geometry, rendering, etc. are executed.

メインメモリ20はROMおよびRAMを備え、各種プログラムおよびデータを格納する一次記憶装置である。ビデオメモリ30はVRAMで構成され、テクスチャキャッシュ31およびフレームバッファ32を含む。なお図2ではGPU10bとビデオメモリ30を別のブロックで描いているが、GPU10bとビデオメモリ30は1つのダイに混載されることが多い。   The main memory 20 includes a ROM and a RAM, and is a primary storage device that stores various programs and data. The video memory 30 is composed of a VRAM and includes a texture cache 31 and a frame buffer 32. In FIG. 2, the GPU 10b and the video memory 30 are drawn as separate blocks, but the GPU 10b and the video memory 30 are often mounted together on one die.

テクスチャキャッシュ31は、描画すべきテクスチャを一時保持するためのバッファである。本実施の形態では、テクスチャキャッシュ31は複数のテクスチャが統合されたテクスチャアトラスを一時保持する。フレームバッファ32はGPU10bによりレンダリングされた画像をフレーム単位で一時保持するバッファである。なおビデオメモリ30には、ポリゴンの頂点データを一時保持するための頂点キャッシュが設けられてもよい。   The texture cache 31 is a buffer for temporarily storing a texture to be drawn. In the present embodiment, the texture cache 31 temporarily holds a texture atlas in which a plurality of textures are integrated. The frame buffer 32 is a buffer that temporarily holds an image rendered by the GPU 10b in units of frames. The video memory 30 may be provided with a vertex cache for temporarily storing vertex data of polygons.

外部記憶装置200は、ハードディスクおよびフラッシュメモリの少なくとも一方を備える。また、リムーバブルメディアである光ディスク(例えば、DVD、Blu-ray Disc(登録商標))が装着される光ディスクドライブを備えてもよいし、メモリカードが挿入されるメモリカードスロットを備えてもよい。外部記憶装置200は、各種プログラムおよびデータを格納する二次記憶装置である。外部記憶装置200に記憶されるプログラムおよびデータは、メインメモリ20に読み込まれて使用される。   The external storage device 200 includes at least one of a hard disk and a flash memory. In addition, an optical disk drive to which an optical disk as a removable medium (for example, DVD, Blu-ray Disc (registered trademark)) is mounted may be provided, or a memory card slot into which a memory card is inserted may be provided. The external storage device 200 is a secondary storage device that stores various programs and data. Programs and data stored in the external storage device 200 are read into the main memory 20 and used.

ユーザインタフェース300は、ユーザ操作を受け付け情報処理装置100に入力するとともに、情報処理装置100に生成された画像および音声をユーザに出力する。ユーザインタフェース300は、ディスプレイ310およびタッチパネル320を備える。ディスプレイ310は情報処理装置100に生成された画像を表示する。タッチパネル320はユーザによりタッチされた位置を示す位置信号を生成し、情報処理装置100に出力する。なおディスプレイ310とタッチパネル320は一体型であってもよい。ディスプレイ310とタッチパネル320はユーザインタフェース300の一例であり、ユーザインタフェース300は様々な形態が可能である。   The user interface 300 receives a user operation and inputs it to the information processing apparatus 100, and outputs an image and a sound generated by the information processing apparatus 100 to the user. The user interface 300 includes a display 310 and a touch panel 320. The display 310 displays the generated image on the information processing apparatus 100. The touch panel 320 generates a position signal indicating the position touched by the user and outputs the position signal to the information processing apparatus 100. The display 310 and the touch panel 320 may be integrated. The display 310 and the touch panel 320 are examples of the user interface 300, and the user interface 300 can take various forms.

図4は、本発明の実施の形態に係る情報処理装置100のソフトウェア機能ブロック図である。処理部10はCPU10aまたはGPU10bにより実行される処理機能を示す。処理部10は、操作指示受付部11、アプリケーション実行部12、画面管理部13、格納位置決定部14、テクスチャ格納部15、テクスチャ分割部16およびテクスチャ描画部17を備える。   FIG. 4 is a software function block diagram of the information processing apparatus 100 according to the embodiment of the present invention. The processing unit 10 indicates processing functions executed by the CPU 10a or the GPU 10b. The processing unit 10 includes an operation instruction reception unit 11, an application execution unit 12, a screen management unit 13, a storage position determination unit 14, a texture storage unit 15, a texture division unit 16, and a texture drawing unit 17.

メインメモリ20には画像データ保持部21、格納管理情報保持部22およびテクスチャ管理情報保持部23が構築される。画像データ保持部21は、ポリゴンの頂点データおよびテクスチャを含む、コンピュータグラフィックス画像を生成するためのデータを保持する領域である。格納管理情報保持部22は、テクスチャキャッシュ31内のテクスチャ格納状態を示す格納管理情報を保持する領域である。テクスチャ管理情報保持部23は、テクスチャキャッシュ31に格納されたテクスチャの格納位置を示すテクスチャ管理情報を保持する領域である。   In the main memory 20, an image data holding unit 21, a storage management information holding unit 22, and a texture management information holding unit 23 are constructed. The image data holding unit 21 is an area for holding data for generating a computer graphics image including polygon vertex data and textures. The storage management information holding unit 22 is an area for holding storage management information indicating the texture storage state in the texture cache 31. The texture management information holding unit 23 is an area for holding texture management information indicating the storage position of the texture stored in the texture cache 31.

操作指示受付部11は、タッチパネル320から出力される位置信号に応じてユーザの指示を解読する。アプリケーション実行部12はユーザの指示に応じた機能を実行するためのアプリケーションプログラムをメインメモリ20から読み出して実行する。画面管理部13は、アプリケーション実行部12により実行されるアプリケーションおよびタッチパネル320から出力される位置信号に応じて、次に遷移すべき画面を決定する。画面管理部13は、遷移後の画面に必要な画像データをメインメモリ20の画像データ保持部21から読み出す。   The operation instruction receiving unit 11 decodes the user instruction according to the position signal output from the touch panel 320. The application execution unit 12 reads an application program for executing a function according to a user instruction from the main memory 20 and executes it. The screen management unit 13 determines the next screen to be transitioned according to the application executed by the application execution unit 12 and the position signal output from the touch panel 320. The screen management unit 13 reads image data necessary for the screen after the transition from the image data holding unit 21 of the main memory 20.

この際、テクスチャ格納部15は画像データ保持部21から、遷移後の画面に必要な画像データのうち、テクスチャを順次読み出してテクスチャキャッシュ31に格納する。テクスチャ分割部16は、テクスチャキャッシュ31内の格納状態に応じて、テクスチャ格納部15によって格納されるべきテクスチャを分割することができる。   At this time, the texture storage unit 15 sequentially reads textures from the image data holding unit 21 and stores them in the texture cache 31 among the image data necessary for the screen after the transition. The texture dividing unit 16 can divide the texture to be stored by the texture storage unit 15 according to the storage state in the texture cache 31.

格納位置決定部14は、格納管理情報保持部22に保持される格納管理情報を参照して、テクスチャ格納部15によって格納されるべきテクスチャの格納位置を決定する。テクスチャキャッシュ31はテクスチャアトラスを格納するための二次元領域(以下、テクスチャアトラス領域という)を含む。格納位置決定部14は、当該テクスチャアトラス領域の水平方向および垂直方向の一方を主走査方向および他方を副走査方向とし、原則として順次走査方式にしたがい各テクスチャの格納位置を決定する。   The storage position determination unit 14 refers to the storage management information held in the storage management information holding unit 22 and determines the storage position of the texture to be stored by the texture storage unit 15. The texture cache 31 includes a two-dimensional area (hereinafter referred to as a texture atlas area) for storing a texture atlas. The storage position determination unit 14 determines the storage position of each texture according to the sequential scanning method in principle, with one of the horizontal direction and the vertical direction of the texture atlas region as the main scanning direction and the other as the sub scanning direction.

以下、本実施の形態では水平方向を主走査方向とし垂直方向を副走査方向とする。また画面の左上隅から右下隅に向けて、原則として飛び越しをせずに順次走査方式にしたがい各テクスチャの格納位置を決定する。   Hereinafter, in this embodiment, the horizontal direction is the main scanning direction, and the vertical direction is the sub-scanning direction. In addition, the storage position of each texture is determined from the upper left corner to the lower right corner of the screen according to the sequential scanning method without skipping in principle.

格納位置決定部14は、格納されるべき対象テクスチャの格納位置を決定する際、対象テクスチャと主走査方向に隣接する隣接テクスチャとの接触状態を判定する。対象テクスチャの隣接テクスチャ側の辺に、隣接テクスチャと非接触の部分がある場合、格納位置決定部14は対象テクスチャの格納位置を副走査方向に一単位移動させる。その状態で順次走査方式にしたがい対象テクスチャの次の格納候補位置を決定する。隣接テクスチャと非接触の部分がない場合、現在の格納候補位置を対象テクスチャの格納位置に最終決定する。なお後述するが、対象テクスチャがテクスチャアトラス領域をはみ出す場合、この限りでない。   When determining the storage position of the target texture to be stored, the storage position determination unit 14 determines the contact state between the target texture and the adjacent texture adjacent in the main scanning direction. If there is a portion that is not in contact with the adjacent texture on the adjacent texture side of the target texture, the storage position determination unit 14 moves the storage position of the target texture by one unit in the sub-scanning direction. In this state, the next storage candidate position of the target texture is determined according to the sequential scanning method. If there is no non-contact portion with the adjacent texture, the current storage candidate position is finally determined as the storage position of the target texture. As will be described later, this is not the case when the target texture extends beyond the texture atlas region.

次の格納候補位置でも対象テクスチャの隣接テクスチャ側の辺に、隣接テクスチャと非接触の部分がある場合、格納位置決定部14は対象テクスチャの格納候補位置を副走査方向にさらに一単位移動させる。その状態で順次走査方式にしたがい対象テクスチャの次の格納候補位置を決定する。この処理を格納位置が最終決定されるまで繰り返す。   If there is a non-contact portion with the adjacent texture on the adjacent texture side of the target texture even at the next storage candidate position, the storage position determination unit 14 further moves the storage candidate position of the target texture one unit in the sub-scanning direction. In this state, the next storage candidate position of the target texture is determined according to the sequential scanning method. This process is repeated until the storage position is finally determined.

本実施の形態では格納位置決定部14は対象テクスチャの左辺と、隣接テクスチャの右辺との接触状態を判定する。なお対象テクスチャの次の格納候補位置がテクスチャアトラス領域の左端である場合、この判定はスキップされる。対象テクスチャの左辺が隣接テクスチャの右辺と非接触の部分がある場合、格納位置決定部14は対象テクスチャの格納候補位置を下方向に一単位移動させる。   In the present embodiment, the storage position determination unit 14 determines the contact state between the left side of the target texture and the right side of the adjacent texture. If the next storage candidate position of the target texture is the left end of the texture atlas region, this determination is skipped. When the left side of the target texture has a non-contact portion with the right side of the adjacent texture, the storage position determination unit 14 moves the storage candidate position of the target texture downward by one unit.

格納位置決定部14は、順次走査方式にしたがい対象テクスチャの格納位置を決定する際、対象テクスチャの一部が主走査方向にテクスチャアトラス領域をはみ出す場合、対象テクスチャの格納候補位置を副走査方向に一単位移動させる。また対象テクスチャの一部が副走査方向にはみ出す場合、対象テクスチャがはみ出さなくなるように対象テクスチャをテクスチャ分割部16に分割させる。   When determining the storage position of the target texture according to the sequential scanning method, the storage position determination unit 14 sets the storage candidate position of the target texture in the sub-scanning direction when a part of the target texture protrudes from the texture atlas region in the main scanning direction. Move one unit. When a part of the target texture protrudes in the sub-scanning direction, the target texture is divided by the texture dividing unit 16 so that the target texture does not protrude.

本実施の形態では格納候補位置において対象テクスチャの一部がテクスチャアトラス領域の右側にはみ出す場合、格納位置決定部14は対象テクスチャの格納候補位置を下方向に一単位移動させる。また格納候補位置において対象テクスチャの一部がテクスチャアトラス領域の下側にはみ出す場合、格納位置決定部14は対象テクスチャをテクスチャ分割部16に分割させる。   In this embodiment, when a part of the target texture protrudes to the right side of the texture atlas region at the storage candidate position, the storage position determination unit 14 moves the storage candidate position of the target texture downward by one unit. When a part of the target texture protrudes below the texture atlas region at the storage candidate position, the storage position determination unit 14 causes the texture dividing unit 16 to divide the target texture.

格納位置決定部14は対象テクスチャの格納位置を最終決定すると、格納管理情報保持部22内に保持される格納管理情報およびテクスチャ管理情報保持部23に保持されるテクスチャ管理情報を更新する。   When the storage position determination unit 14 finally determines the storage position of the target texture, the storage management information held in the storage management information holding unit 22 and the texture management information held in the texture management information holding unit 23 are updated.

対象テクスチャが分割されてテクスチャキャッシュ31に格納される場合、格納位置決定部14は分割後のテクスチャ(以下、分割テクスチャと表記する)の配置座標および分割前のテクスチャのテクスチャIDをテクスチャ管理情報としてテクスチャ管理情報保持部23に登録する。対象テクスチャが分割されずにテクスチャキャッシュ31に格納される場合、格納位置決定部14は、非分割のテクスチャの配置座標、およびそのテクスチャIDをテクスチャ管理情報としてテクスチャ管理情報保持部23に登録する。   When the target texture is divided and stored in the texture cache 31, the storage position determination unit 14 uses the arrangement coordinates of the texture after division (hereinafter referred to as divided texture) and the texture ID of the texture before division as texture management information. It is registered in the texture management information holding unit 23. When the target texture is stored in the texture cache 31 without being divided, the storage position determination unit 14 registers the arrangement coordinates of the non-divided texture and the texture ID in the texture management information holding unit 23 as texture management information.

分割テクスチャおよび非分割のテクスチャが矩形形状で規定される場合、配置座標として頂点座標を登録することができる。さらに分割テクスチャおよび非分割のテクスチャが正方形または長方形の形状で規定される場合、左上頂点座標と幅、高さで登録できる。   When the divided texture and the non-divided texture are defined by rectangular shapes, vertex coordinates can be registered as arrangement coordinates. Furthermore, when the divided texture and the non-divided texture are defined by a square or rectangular shape, they can be registered with the upper left vertex coordinates, width, and height.

図5(a)−(c)は、本実施の形態に係るテクスチャ格納アルゴリズムを説明するための具体例1を示す図である。上述したように、テクスチャアトラス領域にテクスチャを左上から上優先して詰めていく。ただし、格納候補位置において対象テクスチャの左側が平らでない場合、平らになるまで格納候補位置を下にシフトする。平らであるとは、対象テクスチャの左辺と接する部分全体が直線であることをいう。なお、この直線は複数のテクスチャで形成されたものであってもよい。また格納候補位置がテクスチャアトラス領域の左端の場合、対象テクスチャの左側は平らである。   FIGS. 5A to 5C are diagrams showing a specific example 1 for explaining the texture storage algorithm according to the present embodiment. As described above, textures are packed in the texture atlas area with priority given from the upper left. However, if the left side of the target texture is not flat at the storage candidate position, the storage candidate position is shifted downward until it becomes flat. “Flat” means that the entire portion in contact with the left side of the target texture is a straight line. The straight line may be formed by a plurality of textures. When the storage candidate position is the left end of the texture atlas region, the left side of the target texture is flat.

格納候補位置において対象テクスチャの左側に対象テクスチャより高さが低い隣接テクスチャが存在し対象テクスチャの左側が段差となる場合、対象テクスチャの左側が平らでないため、その格納候補位置はNGである。   When an adjacent texture having a lower height than the target texture exists on the left side of the target texture at the storage candidate position and the left side of the target texture has a step, the storage candidate position is NG because the left side of the target texture is not flat.

図5(a)にて第1テクスチャt1がテクスチャアトラス領域の左上に格納される。図5(b)にて第2テクスチャt2の最初の格納候補位置は第1テクスチャt1の右隣である。ただし第2テクスチャt2の高さが第1テクスチャt1の高さより高いため、第2テクスチャt2の左側が平らにならない。したがって最初の格納候補位置はNGである。図5(c)にて第2テクスチャt2の次の格納候補位置は第1テクスチャt1の下である。この格納候補位置では第2テクスチャt2の左側が平らであるため、この格納候補位置はOKである。   In FIG. 5A, the first texture t1 is stored at the upper left of the texture atlas region. In FIG. 5B, the first storage candidate position of the second texture t2 is right next to the first texture t1. However, since the height of the second texture t2 is higher than the height of the first texture t1, the left side of the second texture t2 is not flat. Therefore, the first storage candidate position is NG. In FIG. 5C, the next storage candidate position of the second texture t2 is below the first texture t1. Since the left side of the second texture t2 is flat at this storage candidate position, this storage candidate position is OK.

図6(a)−(d)は、本実施の形態に係るテクスチャ格納アルゴリズムを説明するための具体例2を示す図である。具体例1で説明したルールにしたがい対象テクスチャの格納候補位置を決定していくと対象テクスチャの下部がテクスチャアトラス領域を下方向にはみ出す場合がある。この場合、テクスチャアトラス領域をはみ出さないなよう対象テクスチャを水平方向に複数に分割する。その格納候補位置に格納されない残りの分割テクスチャは非分割のテクスチャと同様に扱い、テクスチャアトラス領域の空き領域に当該分割テクスチャを左上から上優先して詰めていく。   FIGS. 6A to 6D are diagrams showing a specific example 2 for explaining the texture storing algorithm according to the present embodiment. If the target texture storage candidate position is determined according to the rule described in the first specific example, the lower portion of the target texture may protrude the texture atlas region downward. In this case, the target texture is divided into a plurality in the horizontal direction so as not to protrude the texture atlas region. The remaining divided textures that are not stored at the storage candidate positions are handled in the same manner as non-divided textures, and the divided textures are packed in the empty area of the texture atlas area with priority from the top left.

図6(a)にて、まず第1テクスチャt1がテクスチャアトラス領域の左上に格納される。第2テクスチャt2の高さが第1テクスチャt1の高さより高いため、第2テクスチャt2は第1テクスチャt1の右隣に格納されず第1テクスチャt1の下に格納される。第3テクスチャt3の左辺は第1テクスチャt1の右辺と接触できないため、最初の格納候補位置である第1テクスチャの右隣はNGである。   In FIG. 6A, first the first texture t1 is first stored in the upper left of the texture atlas region. Since the height of the second texture t2 is higher than the height of the first texture t1, the second texture t2 is not stored right next to the first texture t1, but is stored below the first texture t1. Since the left side of the third texture t3 cannot contact the right side of the first texture t1, the right adjacent to the first texture that is the first storage candidate position is NG.

図6(b)にて第3テクスチャt3の次の格納候補位置は第2テクスチャt2の右隣である。ただし第3テクスチャt3の高さが第2テクスチャt2の高さよりが高いため、第3テクスチャt3の左側が平らにならない。したがってこの格納候補位置もNGである。   In FIG. 6B, the next storage candidate position of the third texture t3 is right next to the second texture t2. However, since the height of the third texture t3 is higher than the height of the second texture t2, the left side of the third texture t3 is not flat. Therefore, this storage candidate position is also NG.

図6(c)にて第3テクスチャt3の次の格納候補位置は第2テクスチャt2の下である。この格納候補位置では第3テクスチャt3の下側がテクスチャアトラス領域からはみ出す。したがってこの格納候補位置にそのまま格納することはできない。   In FIG. 6C, the next storage candidate position of the third texture t3 is below the second texture t2. At the storage candidate position, the lower side of the third texture t3 protrudes from the texture atlas region. Therefore, it cannot be stored as it is in this storage candidate position.

図6(d)にて第3テクスチャt3は第1分割テクスチャt3aと第2分割テクスチャt3bに分割される。第1分割テクスチャt3aは第2テクスチャt2の下に格納される。第2分割テクスチャt3bは、その最初の格納候補位置である第1テクスチャt1の右隣に格納される。   In FIG. 6D, the third texture t3 is divided into a first divided texture t3a and a second divided texture t3b. The first divided texture t3a is stored under the second texture t2. The second divided texture t3b is stored on the right side of the first texture t1, which is the first storage candidate position.

ここまで対象テクスチャの格納候補位置の検索を1ピクセル単位で実行する例を説明したが、以下、ブロック単位で実行する例を説明する。ブロック単位で実行することにより検索時間を短縮できる。この例ではテクスチャアトラス領域は主走査方向を長手方向および副走査方向を短手方向とするスライス状に、複数のブロックに分割される。格納位置決定部14は、順走査方式にしたがい対象テクスチャの格納候補位置を副走査方向に移動させる際、ブロック単位で移動させる。   The example in which the search for the storage candidate position of the target texture has been executed in units of one pixel has been described so far. Hereinafter, an example in which the search is performed in units of blocks will be described. Search time can be shortened by executing in blocks. In this example, the texture atlas region is divided into a plurality of blocks in a slice shape in which the main scanning direction is the longitudinal direction and the sub-scanning direction is the short direction. The storage position determination unit 14 moves the storage candidate position of the target texture in the sub-scanning direction according to the forward scanning method in units of blocks.

図7は、ブロック分割されたテクスチャアトラス領域を説明するための図である。図7に示すテクスチャアトラス領域は水平方向に8分割されており、本実施の形態ではそれぞれの領域をブロックと呼ぶ。ブロックの高さBHは設計者が設定変更可能なパラメータである。例えば、ブロックの高さBHには、画像データ保持部21に保持されるテクスチャのうち高さが最も低いテクスチャの高さを用いることができる。   FIG. 7 is a diagram for explaining a texture atlas region divided into blocks. The texture atlas region shown in FIG. 7 is divided into eight in the horizontal direction, and each region is called a block in the present embodiment. The block height BH is a parameter whose setting can be changed by the designer. For example, the height of the texture having the lowest height among the textures held in the image data holding unit 21 can be used as the block height BH.

ブロックの高さBHを大きくするほど格納位置の検索時間は短縮するがテクスチャアトラス領域内に隙間ができやすくなる。一方、この高さBHを小さくするほど格納位置の検索時間は長くなるがテクスチャアトラス領域内に隙間ができにくくなる。即ち処理時間とテクスチャアトラス領域の格納効率のトレードオフ関係となる。   As the block height BH is increased, the retrieval time of the storage position is shortened, but a gap is easily formed in the texture atlas region. On the other hand, as the height BH is reduced, the retrieval time for the storage position becomes longer, but it becomes difficult to form a gap in the texture atlas region. That is, there is a trade-off relationship between the processing time and the storage efficiency of the texture atlas region.

テクスチャは単一または連続する複数のブロックに左上から上優先で格納されるため、各ブロックは左側から徐々に空き領域が狭まる。本実施の形態では各ブロックのテクスチャが存在しない矩形領域(格納されたテクスチャの下側の空き領域を除く)を残り領域と呼び、その幅を残り幅RWと呼ぶ。各ブロックの残り幅RWは上のブロックから順に、格納管理情報保持部22に定義される配列に格納され管理される。   Since the texture is stored in a single or a plurality of continuous blocks with top priority from the upper left, each block gradually decreases in free space from the left. In the present embodiment, a rectangular area where the texture of each block does not exist (excluding the empty area below the stored texture) is called a remaining area, and its width is called a remaining width RW. The remaining width RW of each block is stored and managed in an array defined in the storage management information holding unit 22 in order from the upper block.

テクスチャを分割してテクスチャアトラス領域に格納する場合、各分割テクスチャの高さがブロックの高さBHの倍数になる位置でテクスチャは分割される。   When the texture is divided and stored in the texture atlas area, the texture is divided at a position where the height of each divided texture is a multiple of the block height BH.

テクスチャの格納位置を検索する際、テクスチャアトラス領域内の上のブロックから順番に格納可能か否か判定する。判定対象のブロックに格納できない場合、テクスチャの左側面の段差が存在する位置の次のブロック以降を判定対象とする。一番下のブロックで格納不能と判定された場合、テクスチャを分割する。格納可能であると判定された場合、その時点で判定を終了する。格納されたテクスチャ(分割テクスチャを含む)の位置は、テクスチャの左上頂点の座標(図7では点で描かれている)、並びにテクスチャの幅および高さによって定義され、テクスチャ管理情報保持部23に登録される。なお、テクスチャの高さがブロックの高さBH以下の場合、テクスチャの左側が平らでなくても格納できるとする。   When searching for the storage position of the texture, it is determined whether or not the texture can be stored in order from the upper block in the texture atlas area. When the block cannot be stored in the determination target block, the subsequent block after the position where the step on the left side of the texture exists is determined as the determination target. If it is determined that the lowermost block cannot be stored, the texture is divided. If it is determined that the data can be stored, the determination ends at that time. The position of the stored texture (including the divided texture) is defined by the coordinates of the upper left vertex of the texture (drawn as a dot in FIG. 7) and the width and height of the texture, and is stored in the texture management information holding unit 23. be registered. If the texture height is equal to or less than the block height BH, the texture can be stored even if the left side of the texture is not flat.

図7に示す例では、まず第1テクスチャt1がブロックB0の左端に格納される。次に第2テクスチャt2が第1テクスチャt1の右隣に格納される。次に第3テクスチャt3は第2テクスチャt2の右隣に格納できないため、第1テクスチャt1の下に格納される。この例ではテクスチャの上辺がブロックの上辺に接するよう格納されるため、第3テクスチャt3の左上頂点がブロックB3の左上隅に位置するように格納される。   In the example shown in FIG. 7, the first texture t1 is first stored at the left end of the block B0. Next, the second texture t2 is stored on the right side of the first texture t1. Next, since the third texture t3 cannot be stored to the right of the second texture t2, it is stored under the first texture t1. In this example, the texture is stored such that the upper side of the texture is in contact with the upper side of the block, so that the upper left vertex of the third texture t3 is stored at the upper left corner of the block B3.

第4テクスチャt4は第1テクスチャt1、第2テクスチャt2および第3テクスチャt3の右隣に格納できないため、第3テクスチャt3の下のブロックB6が格納位置候補となる。しかしながらそのままでは格納できないため分割される。第4テクスチャt4はブロックの高さBHの2倍の位置で分割される。第1分割テクスチャt4aはブロックB6、B7の左端に格納される。残りの第2分割テクスチャt4bは第3テクスチャt3の右隣に格納される。   Since the fourth texture t4 cannot be stored to the right of the first texture t1, the second texture t2, and the third texture t3, the block B6 below the third texture t3 is a storage location candidate. However, since it cannot be stored as it is, it is divided. The fourth texture t4 is divided at a position twice the block height BH. The first divided texture t4a is stored at the left end of the blocks B6 and B7. The remaining second divided texture t4b is stored on the right side of the third texture t3.

図4に戻る。テクスチャ描画部17は、テクスチャ管理情報保持部23に保持されるテクスチャ管理情報を参照して、テクスチャキャッシュ31に格納されたテクスチャをポリゴンにマッピングしてフレームバッファ32に書き込む。フレームバッファ32に書き込まれた画像データは、所定の表示タイミングでディスプレイ310に出力される。   Returning to FIG. The texture drawing unit 17 refers to the texture management information held in the texture management information holding unit 23, maps the texture stored in the texture cache 31 to the polygon, and writes it in the frame buffer 32. The image data written in the frame buffer 32 is output to the display 310 at a predetermined display timing.

以下、本発明の実施の形態に係る情報処理装置100の動作について説明する。まずテクスチャキャッシュ31へのテクスチャ格納処理について説明し、次いでテクスチャキャッシュ31に格納されたテクスチャの描画処理について説明する。   Hereinafter, the operation of the information processing apparatus 100 according to the embodiment of the present invention will be described. First, the texture storing process in the texture cache 31 will be described, and then the drawing process of the texture stored in the texture cache 31 will be described.

図8は、テクスチャ格納処理の全体動作を示すフローチャートである。テクスチャ格納処理は、格納位置決定処理(S10)、狭義のテクスチャ格納処理(S30)および管理情報更新処理(S40)の3段階に分類される。   FIG. 8 is a flowchart showing the overall operation of the texture storing process. The texture storage process is classified into three stages: a storage position determination process (S10), a narrow-sense texture storage process (S30), and a management information update process (S40).

図9は、格納位置決定処理を示すフローチャートである。まず、格納位置決定部14は対象テクスチャのテクスチャID、幅、高さを取得する(S11)。 格納位置決定部14は格納管理情報保持部22から格納管理情報を取得する(S12)。格納管理情報にはテクスチャアトラス領域を構成する複数のブロックの残り幅RWの配列データが含まれている。   FIG. 9 is a flowchart showing the storage position determination process. First, the storage position determination unit 14 acquires the texture ID, width, and height of the target texture (S11). The storage location determination unit 14 acquires storage management information from the storage management information holding unit 22 (S12). The storage management information includes array data of the remaining width RW of a plurality of blocks constituting the texture atlas area.

格納位置決定部14は格納管理情報を参照し、テクスチャアトラス領域に対象テクスチャを分割せずに格納可能な領域が存在するか否か判定する(S13)。存在する場合(S13のY)、格納位置決定部14は格納可能な領域のうち、上述のルールにしたがい対象テクスチャの格納位置を決定する(S14)。格納位置決定部14はテクスチャIDとその格納位置の座標をテクスチャ管理情報保持部23に登録する(S15)。なお対象テクスチャの幅および高さも登録してもよい。格納位置決定部14はパラメータnに1を代入し(S16)、格納位置決定処理を終了する。   The storage position determination unit 14 refers to the storage management information and determines whether there is an area that can be stored without dividing the target texture in the texture atlas area (S13). If it exists (Y in S13), the storage position determination unit 14 determines the storage position of the target texture in the storable area according to the above-described rules (S14). The storage position determination unit 14 registers the texture ID and the coordinates of the storage position in the texture management information holding unit 23 (S15). Note that the width and height of the target texture may also be registered. The storage position determination unit 14 substitutes 1 for the parameter n (S16), and ends the storage position determination process.

パラメータn(0以上の整数)はテクスチャの分割数を示すパラメータである。パラメータnの値は次のように定義される。0はテクスチャアトラス領域に格納不可、1は分割なし、2以上は分割テクスチャの数をそれぞれ示す。   Parameter n (an integer greater than or equal to 0) is a parameter indicating the number of texture divisions. The value of parameter n is defined as follows. 0 cannot be stored in the texture atlas area, 1 is not divided, and 2 or more indicates the number of divided textures.

ステップS13にて分割せずに対象テクスチャを格納できない場合(S13のN)、対象テクスチャをブロックの高さBHで短冊状に区分し、その分割数をパラメータj(jは2以上の整数)に代入する(S17)。格納位置決定部14は初期値設定としてパラメータnに0を代入し、パラメータiに0を代入する(S18)。パラメータi(iは0以上j未満の整数)は短冊のインデックスとして使用される。   If the target texture cannot be stored without being divided in step S13 (N in S13), the target texture is divided into strips by the block height BH, and the number of divisions is set to parameter j (j is an integer of 2 or more). Substitute (S17). The storage position determination unit 14 substitutes 0 for the parameter n as the initial value setting, and substitutes 0 for the parameter i (S18). The parameter i (i is an integer from 0 to less than j) is used as a strip index.

格納位置決定部14は各ブロックの残り幅RWを参照して、短冊(i)がいずれかのブロックに格納可能か否か判定する(S19)。格納可能な場合(S19のY)、格納位置決定部14は格納可能な領域のうち、上述のルールにしたがい短冊(i)の格納位置を決定する(S20)。格納位置決定部14はオリジナルテクスチャのテクスチャIDと、その格納位置の座標をテクスチャ管理情報保持部23に登録する(S21)。なお短冊の幅および高さも登録してもよい。なお複数の短冊を、幅が揃った状態で連続して複数のブロックに格納できる場合、その複数の短冊の格納位置をまとめて登録してもよい。例えば一番上の短冊の格納位置を示す座標と連続する短冊数を登録してもよい。格納位置決定部14はパラメータnおよびパラメータiをそれぞれインクリメントする(S22)。   The storage position determination unit 14 refers to the remaining width RW of each block and determines whether the strip (i) can be stored in any block (S19). If it is storable (Y in S19), the storage position determination unit 14 determines the storage position of the strip (i) in the storable area according to the rules described above (S20). The storage position determination unit 14 registers the texture ID of the original texture and the coordinates of the storage position in the texture management information holding unit 23 (S21). The width and height of the strip may be registered. Note that when a plurality of strips can be stored in a plurality of blocks continuously with the same width, the storage positions of the plurality of strips may be registered together. For example, the number of strips continuous with the coordinates indicating the storage position of the top strip may be registered. The storage position determination unit 14 increments the parameter n and the parameter i, respectively (S22).

格納位置決定部14はパラメータjとパラメータiを比較する(S23)。両者が一致しない場合(S23のN)、ステップS19に遷移し、一致する場合(S23のY)、格納位置決定処理を終了する。   The storage position determination unit 14 compares the parameter j with the parameter i (S23). If they do not match (N in S23), the process proceeds to step S19. If they match (Y in S23), the storage position determination process ends.

ステップS19にて短冊(i)がいずれのブロックにも格納できない場合(S19のN)、格納位置決定部14は、これまで登録された対象テクスチャのテクスチャIDおよびその座標をテクスチャ管理情報保持部23から破棄する(S24)。格納位置決定部14はパラメータnに0を代入し(S25)、格納位置決定処理を終了する。対象テクスチャが区分された複数の短冊の一つでもテクスチャアトラス領域に格納できない場合、対象テクスチャ全体が格納不可となる。   If the strip (i) cannot be stored in any block in step S19 (N in S19), the storage position determination unit 14 stores the texture ID of the target texture registered so far and its coordinates in the texture management information holding unit 23. (S24). The storage position determination unit 14 substitutes 0 for the parameter n (S25), and ends the storage position determination process. If even one of the plurality of strips into which the target texture is divided cannot be stored in the texture atlas area, the entire target texture cannot be stored.

図10は、狭義のテクスチャ格納処理を示すフローチャートである。まず、テクスチャ格納部15はパラメータnを参照する(S31)。パラメータnが1の場合(S31のY)、テクスチャ格納部15は画像データ保持部21から読み出された対象テクスチャをテクスチャ管理情報保持部23に登録された格納位置に格納する(S32)。当該格納位置はテクスチャIDをキーとして検索される。   FIG. 10 is a flowchart showing the texture storing process in a narrow sense. First, the texture storage unit 15 refers to the parameter n (S31). When the parameter n is 1 (Y in S31), the texture storage unit 15 stores the target texture read from the image data holding unit 21 in the storage position registered in the texture management information holding unit 23 (S32). The storage position is searched using the texture ID as a key.

ステップS31にてパラメータnが1以外の場合(S31のN)、テクスチャ分割部16は画像データ保持部21から読み出された対象テクスチャをブロックの高さBH単位でn分割する(S33)。テクスチャ格納部15は分割された各短冊をテクスチャ管理情報保持部23に登録された各格納位置に格納する(S34)。   When the parameter n is other than 1 in step S31 (N in S31), the texture dividing unit 16 divides the target texture read from the image data holding unit 21 into n blocks by block height BH (S33). The texture storage unit 15 stores the divided strips in the storage positions registered in the texture management information holding unit 23 (S34).

図11は、格納管理情報更新処理を示すフローチャートである。格納位置決定部14は対象テクスチャまたは各短冊の格納位置を決定すると、格納されるブロックの残り幅RWから対象テクスチャの幅を減算して当該ブロックの残り幅RWを更新する(S41)。   FIG. 11 is a flowchart showing storage management information update processing. When the storage position determination unit 14 determines the storage position of the target texture or each strip, the storage position determination unit 14 updates the remaining width RW of the block by subtracting the width of the target texture from the remaining width RW of the stored block (S41).

図12は、テクスチャの描画処理を示すフローチャートである。テクスチャ描画部17は描画すべき対象テクスチャのテクスチャIDをキーとして、テクスチャ管理情報保持部23から対象テクスチャのテクスチャ管理情報を取得する(S50)。テクスチャ描画部17は当該テクスチャ管理情報を参照してテクスチャキャッシュ31から対象テクスチャを読み出す(S51)。対象テクスチャが分割されて格納されている場合、各短冊を読み出してオリジナルテクスチャを復元する。テクスチャ描画部17は読み出した対象テクスチャをフレームバッファ32の指定位置に出力する。   FIG. 12 is a flowchart showing a texture drawing process. The texture drawing unit 17 acquires the texture management information of the target texture from the texture management information holding unit 23 using the texture ID of the target texture to be drawn as a key (S50). The texture drawing unit 17 reads the target texture from the texture cache 31 with reference to the texture management information (S51). When the target texture is divided and stored, each strip is read to restore the original texture. The texture drawing unit 17 outputs the read target texture to a designated position in the frame buffer 32.

以上説明したように本実施の形態によれば、テクスチャアトラスを作成する際、テクスチャの分割を許容することにより、テクスチャアトラスを低負荷で高速に作成できる。テクスチャアトラスが作成されるテクスチャキャッシュに、新たなテクスチャが格納できなくなると、格納されているテクスチャを全て描画した後、テクスチャキャッシュ内のテクスチャアトラスを破棄して、新たなテクスチャを再生成する必要がある。本実施の形態に係るテクスチャの分割を許容するアルゴリズムでは、従来の分割を許容しないアルゴリズムと比較してテクスチャキャッシュに新たなテクスチャが格納できなくなるまでの時間が長くなる。したがって前者は後者よりテクスチャアトラスの破棄および再作成の回数を減らすことができ、前者は後者よりテクスチャアトラスを低負荷で高速に作成できる。   As described above, according to the present embodiment, when a texture atlas is created, the texture atlas can be created at low speed and with high load by allowing the texture to be divided. If a new texture cannot be stored in the texture cache where the texture atlas is created, after drawing all the stored textures, it is necessary to discard the texture atlas in the texture cache and regenerate a new texture. is there. In the algorithm that allows texture division according to the present embodiment, the time until a new texture cannot be stored in the texture cache is longer than in the conventional algorithm that does not allow division. Therefore, the former can reduce the number of times of discarding and recreating the texture atlas than the latter, and the former can create the texture atlas at a lower load and faster than the latter.

またテクスチャアトラス領域を複数のブロックに分割し、ブロック単位でテクスチャまたは分割テクスチャの格納位置を探索することにより、格納位置を決定するまでの時間を短縮できる。したがってテクスチャアトラス領域を複数のブロックに分割することにより、テクスチャアトラスをさらに低負荷で高速に作成できる。   Further, by dividing the texture atlas region into a plurality of blocks and searching for the storage position of the texture or the divided texture in units of blocks, the time until the storage position is determined can be shortened. Therefore, by dividing the texture atlas region into a plurality of blocks, the texture atlas can be created at a lower load and at a higher speed.

本実施の形態に係るテクスチャアトラスの作成および描画方法は、カーナビゲーションシステムのような低スペックな組み込みシステムに適している。特にカーナビゲーションシステムでは、シームレスな画面遷移が望まれる、ハードウェア資源(例えばCPU、GPU、メモリ)のスペックに制約がある、次にどの機能(例えばメニュー、ナビ、オーディオ、デジタルTV、路車間通信)の画面を表示するのか予測が困難、画面意匠が多くメモリ上に全てのテクスチャアトラスを格納するのが困難、等の性質から、テクスチャをリアルタイムに効率よく読み込む必要性が高い。本実施の形態に係るテクスチャアトラスの作成および描画方法をカーナビゲーションシステムに適用すれば、テクスチャアトラスをリアルタイムで高速に作成可能となる。したがって高スペックなハードウェア資源を用いずにシームレスな画面遷移が実現可能なカーナビゲーションシステムを構築できる。   The texture atlas creation and drawing method according to the present embodiment is suitable for a low-spec embedded system such as a car navigation system. Especially in car navigation systems, seamless screen transitions are desired, and there are restrictions on the specifications of hardware resources (for example, CPU, GPU, memory), which function (for example, menu, navigation, audio, digital TV, road-to-vehicle communication) ), It is difficult to predict whether to display a screen, and there are many screen designs, and it is difficult to store all texture atlases in memory. If the texture atlas creation and drawing method according to the present embodiment is applied to a car navigation system, the texture atlas can be created in real time at high speed. Therefore, it is possible to construct a car navigation system capable of seamless screen transition without using high-spec hardware resources.

以上、本発明をいくつかの実施の形態をもとに説明した。これらの実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   The present invention has been described based on some embodiments. It is understood by those skilled in the art that these embodiments are exemplifications, and that various modifications can be made to combinations of the respective constituent elements and processing processes, and such modifications are also within the scope of the present invention. By the way.

例えば上述の実施の形態ではテクスチャを水平方向に分割したが、垂直方向に分割してもよいし、両方向に分割できるようにしてもよい。またブロックの高さBHをアプリケーションごとに、そのアプリケーションで使用されるテクスチャの特性に合わせて切り替え可能にしてもよい。例えばアプリケーションごとにそのアプリケーションで使用されるテクスチャの最小の高さに、切り替えてもよい。   For example, in the above-described embodiment, the texture is divided in the horizontal direction, but may be divided in the vertical direction or may be divided in both directions. The block height BH may be switched for each application in accordance with the characteristics of the texture used in the application. For example, each application may be switched to the minimum height of the texture used in the application.

1000 カーナビゲーション装置、 100 情報処理装置、 10 処理部、 10a CPU、 10b GPU、 11 操作指示受付部、 12 アプリケーション実行部、 13 画面管理部、 14 格納位置決定部、 15 テクスチャ格納部、 16 テクスチャ分割部、 17 テクスチャ描画部、 20 メインメモリ、 21 画像データ保持部、 22 格納管理情報保持部、 23 テクスチャ管理情報保持部、 30 ビデオメモリ、 31 テクスチャキャッシュ、 32 フレームバッファ、 40 バス、 200 外部記憶装置、 300 ユーザインタフェース、 310 ディスプレイ、 320 タッチパネル。   1000 car navigation device, 100 information processing device, 10 processing unit, 10a CPU, 10b GPU, 11 operation instruction receiving unit, 12 application execution unit, 13 screen management unit, 14 storage location determination unit, 15 texture storage unit, 16 texture division Unit, 17 texture drawing unit, 20 main memory, 21 image data holding unit, 22 storage management information holding unit, 23 texture management information holding unit, 30 video memory, 31 texture cache, 32 frame buffer, 40 bus, 200 external storage device , 300 user interface, 310 display, 320 touch panel.

Claims (7)

複数のテクスチャを統合して一時格納するためのテクスチャキャッシュメモリに、メインメモリから複数のテクスチャを順次読み出して格納するテクスチャ格納部と、
前記テクスチャキャッシュメモリ内の格納状態に応じて、前記テクスチャ格納部によって格納されるべきテクスチャを分割するテクスチャ分割部と、
を備えることを特徴とする情報処理装置。
A texture storage unit that sequentially reads and stores a plurality of textures from a main memory in a texture cache memory for integrating and temporarily storing a plurality of textures;
A texture dividing unit that divides a texture to be stored by the texture storage unit according to a storage state in the texture cache memory;
An information processing apparatus comprising:
前記テクスチャキャッシュメモリ内のテクスチャ格納状態を示す格納管理情報を保持する格納管理情報保持部と、
前記格納管理情報保持部に保持される格納管理情報を参照して、前記テクスチャ格納部によって格納されるべきテクスチャの格納位置を決定する格納位置決定部と、をさらに備え、
前記テクスチャキャッシュメモリは、前記テクスチャを格納する二次元領域を有し、
前記格納位置決定部は、前記二次元領域の水平方向および垂直方向の一方を主走査方向および他方を副走査方向とし、順次走査方式にしたがい前記テクスチャの格納位置を決定し、
前記格納位置決定部は、対象テクスチャの格納位置を決定する際、前記対象テクスチャと主走査方向に隣接する隣接テクスチャとの接触状態を判定し、前記対象テクスチャの前記隣接テクスチャ側の辺に、前記隣接テクスチャと非接触の部分がある場合、前記対象テクスチャの格納候補位置を副走査方向に一単位移動させた状態で順次走査方式にしたがい前記対象テクスチャの次の格納候補位置を決定することを特徴とする請求項1に記載の情報処理装置。
A storage management information holding unit for holding storage management information indicating a texture storage state in the texture cache memory;
A storage position determination unit that determines a storage position of a texture to be stored by the texture storage unit with reference to the storage management information held in the storage management information holding unit;
The texture cache memory has a two-dimensional area for storing the texture;
The storage position determining unit determines one of the horizontal direction and the vertical direction of the two-dimensional region as a main scanning direction and the other as a sub-scanning direction, determines a storage position of the texture according to a sequential scanning method,
When determining the storage position of the target texture, the storage position determination unit determines a contact state between the target texture and an adjacent texture adjacent in the main scanning direction, and the side of the target texture on the side of the adjacent texture When there is a non-contact portion with an adjacent texture, the next storage candidate position of the target texture is determined according to a sequential scanning method with the storage candidate position of the target texture moved by one unit in the sub-scanning direction. The information processing apparatus according to claim 1.
前記格納位置決定部は、順次走査方式にしたがい前記対象テクスチャの格納位置を決定する際、前記対象テクスチャの一部が主走査方向に前記二次元領域をはみ出す場合、前記対象テクスチャの格納候補位置を副走査方向に一単位移動させ、副走査方向にはみ出す場合、前記対象テクスチャを前記テクスチャ分割部に分割させることを特徴とする請求項2に記載の情報処理装置。   When the storage position determination unit determines the storage position of the target texture according to the sequential scanning method, if a part of the target texture protrudes from the two-dimensional region in the main scanning direction, the storage position determination target position of the target texture is determined. The information processing apparatus according to claim 2, wherein the target texture is divided by the texture dividing unit when the unit is moved by one unit in the sub scanning direction and protrudes in the sub scanning direction. 前記二次元領域は前記主走査方向を長手方向とするスライス状に、複数のブロックに分割されており、
前記格納位置決定部は、順次走査方式にしたがい前記対象テクスチャの格納候補位置を副走査方向に移動させる際、前記ブロック単位で移動させることを特徴とする請求項2または3に記載の情報処理装置。
The two-dimensional region is divided into a plurality of blocks in a slice shape with the main scanning direction as a longitudinal direction,
The information processing apparatus according to claim 2, wherein the storage position determination unit moves the storage candidate position of the target texture in the sub-scanning direction according to a sequential scanning method, in units of blocks. .
前記テクスチャキャッシュメモリに格納されたテクスチャの格納位置を示すテクスチャ管理情報を保持するテクスチャ管理情報保持部と、
前記テクスチャ管理情報保持部に保持されるテクスチャ管理情報を参照して、前記テクスチャキャッシュメモリに格納されたテクスチャを描画するテクスチャ描画部と、
をさらに備えることを特徴とする請求項1から4のいずれかに記載の情報処理装置。
A texture management information holding unit for holding texture management information indicating a storage position of the texture stored in the texture cache memory;
A texture drawing unit that draws the texture stored in the texture cache memory with reference to the texture management information held in the texture management information holding unit;
The information processing apparatus according to claim 1, further comprising:
前記テクスチャが分割されて前記テクスチャキャッシュメモリに格納される場合、前記テクスチャ管理情報保持部には、分割されたテクスチャの配置座標、および分割前のテクスチャの識別情報が登録されることを特徴とする請求項5に記載の情報処理装置。   When the texture is divided and stored in the texture cache memory, the texture management information holding unit registers the arrangement coordinates of the divided texture and the identification information of the texture before the division. The information processing apparatus according to claim 5. 請求項1から6のいずれかに記載の情報処理装置と、
前記情報処理装置により生成された画像を表示するユーザインタフェースと、
を備えることを特徴とするカーナビゲーション装置。
An information processing apparatus according to any one of claims 1 to 6,
A user interface for displaying an image generated by the information processing apparatus;
A car navigation device comprising:
JP2012073967A 2012-03-28 2012-03-28 Information processor and car navigation device Pending JP2013206094A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012073967A JP2013206094A (en) 2012-03-28 2012-03-28 Information processor and car navigation device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012073967A JP2013206094A (en) 2012-03-28 2012-03-28 Information processor and car navigation device

Publications (1)

Publication Number Publication Date
JP2013206094A true JP2013206094A (en) 2013-10-07

Family

ID=49525120

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012073967A Pending JP2013206094A (en) 2012-03-28 2012-03-28 Information processor and car navigation device

Country Status (1)

Country Link
JP (1) JP2013206094A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015146517A1 (en) * 2014-03-27 2015-10-01 株式会社ジオ技術研究所 Image display system
WO2016046890A1 (en) * 2014-09-22 2016-03-31 三菱電機株式会社 Information display control system and texture atlas creation method
WO2017158734A1 (en) * 2016-03-15 2017-09-21 三菱電機株式会社 Texture mapping device and texture mapping program
GB2593206A (en) * 2020-03-19 2021-09-22 Samsung Electronics Co Ltd Method, apparatus and computer program for generating or updating a texture atlas

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015146517A1 (en) * 2014-03-27 2015-10-01 株式会社ジオ技術研究所 Image display system
JP2015187795A (en) * 2014-03-27 2015-10-29 株式会社ジオ技術研究所 image display system
WO2016046890A1 (en) * 2014-09-22 2016-03-31 三菱電機株式会社 Information display control system and texture atlas creation method
JPWO2016046890A1 (en) * 2014-09-22 2017-04-27 三菱電機株式会社 Information display control system and atlas image creation method
US10109261B2 (en) 2014-09-22 2018-10-23 Mitsubishi Electric Corporation Information display control system and method of mapping elemental images into a texture atlas
WO2017158734A1 (en) * 2016-03-15 2017-09-21 三菱電機株式会社 Texture mapping device and texture mapping program
JP6271107B1 (en) * 2016-03-15 2018-01-31 三菱電機株式会社 Texture mapping apparatus and texture mapping program
DE112016006387T5 (en) 2016-03-15 2018-10-18 Mitsubishi Electric Corporation TEXTURE-TRAINING DEVICE AND TEXTURE-TRAINING PROGRAM
GB2593206A (en) * 2020-03-19 2021-09-22 Samsung Electronics Co Ltd Method, apparatus and computer program for generating or updating a texture atlas
US11514619B2 (en) 2020-03-19 2022-11-29 Samsung Electronics Co., Ltd. Method, apparatus and computer program for generating or updating a texture atlas
GB2593206B (en) * 2020-03-19 2023-04-26 Samsung Electronics Co Ltd Method, apparatus and computer program for generating or updating a texture atlas

Similar Documents

Publication Publication Date Title
KR102419745B1 (en) Game rendering method, and game resource file creation method, apparatus, and device
US8724914B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
US9373308B2 (en) Multi-viewport display of multi-resolution hierarchical image
JP6709038B2 (en) Method and computing device for performing a graphics pipeline
US8571338B2 (en) Image file generation device, image processing device, image file generation method, and image processing method
JP5634104B2 (en) Tile-based rendering apparatus and method
US8345064B2 (en) Method and system for tile binning using half-plane edge function
CN105247478B (en) For storing the method and relevant apparatus of order
KR20180056316A (en) Method and apparatus for performing tile-based rendering
JP2018522307A (en) Adaptive memory address scanning based on surface format for graphics processing
JP5320334B2 (en) Image processing apparatus and program
JP6170690B2 (en) Rendering apparatus and method thereof
JP2013206094A (en) Information processor and car navigation device
CN105190701A (en) Primitive-based composition
KR20200067222A (en) Compression and decompression of indexes in the graphics pipeline
CN103218135B (en) Screenshotss method on mobile terminal and device, mobile terminal
CN102959947B (en) Image synthesizing device and picture synthesis method
US20130113799A1 (en) Apparatus and method for tile binning
KR102248787B1 (en) Method and apparatus for power control for GPU resources
CN105100862A (en) Grid movement display processing method and grid movement display processing system
US10373286B2 (en) Method and apparatus for performing tile-based rendering
CN116529775A (en) Method and apparatus for ray tracing merge function call
US20150242988A1 (en) Methods of eliminating redundant rendering of frames
CN102446362B (en) Two-dimensional object packing
JP2017005544A (en) Image information processing method