(57)【要約】【課題】インデックスバッファを含んだコンピュータグラフィックスモデルデータの圧縮率を向上させる新たな仕組みを提供する。【解決手段】インデックスバッファを含むコンピュータグラフィックスモデルデータを圧縮する情報処理装置であって、インデックスバッファに格納された頂点バッファインデックス値を差分値に変換する変換手段と、頂点バッファインデックス値が差分値に変換されたコンピュータグラフィックスモデルデータをエントロピー圧縮する圧縮手段と、を有する情報処理装置が提供される。【選択図】図５
2020160737.tif 000002
【特許請求の範囲】
【請求項１】
インデックスバッファを含むコンピュータグラフィックスモデルデータを圧縮する情報処理装置であって、
前記インデックスバッファに格納された頂点バッファインデックス値を差分値に変換する変換手段と、
前記頂点バッファインデックス値が差分値に変換された前記コンピュータグラフィックスモデルデータをエントロピー圧縮する圧縮手段と、
を有する情報処理装置。
【請求項２】
前記変換手段は、前記インデックスバッファに所定の順番で格納された頂点バッファインデックス値を、１つ前の順番の頂点バッファインデックス値との差分値に変換すること
を特徴とする請求項１記載の情報処理装置。
【請求項３】
前記変換手段により変換された前記差分値の全てに同一のオフセット値を加算し、負の値の前記差分値の数を減少させるオフセット手段、
を更に有する請求項１又は２記載の情報処理装置。
【請求項４】
インデックスバッファを含むコンピュータグラフィックスモデルデータを圧縮する情報処理装置が、
前記インデックスバッファに格納された頂点バッファインデックス値を差分値に変換する変換ステップと、
前記頂点バッファインデックス値が差分値に変換された前記コンピュータグラフィックスモデルデータをエントロピー圧縮する圧縮ステップと、
を有する情報処理方法。
【請求項５】
インデックスバッファを含むコンピュータグラフィックスモデルデータを圧縮する情報処理装置を、
前記インデックスバッファに格納された頂点バッファインデックス値を差分値に変換する変換手段、
前記頂点バッファインデックス値が差分値に変換された前記コンピュータグラフィックスモデルデータをエントロピー圧縮する圧縮手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、頂点バッファとインデックスバッファとを利用して立体的に描画を行う三次元の画像表示の技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１３７９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、三次元のコンピュータグラフィックス（３ＤＣＧ）モデルデータは、データ量が増加傾向にある。しかしながら、３ＤＣＧのデータ量の増加は、ネットワークからのダウンロード時間やメディアからの読み出し時間に影響を与える。このため、３ＤＣＧモデルデータのデータ量の削減が望まれていた。
【０００５】
本開示は、インデックスバッファを含んだコンピュータグラフィックスモデルデータの圧縮率を向上させる新たな仕組みを提供することを課題とする。
【課題を解決するための手段】
【０００６】
本開示の一の態様によれば、インデックスバッファを含むコンピュータグラフィックスモデルデータを圧縮する情報処理装置であって、前記インデックスバッファに格納された頂点バッファインデックス値を差分値に変換する変換手段と、前記頂点バッファインデックス値が差分値に変換された前記コンピュータグラフィックスモデルデータをエントロピー圧縮する圧縮手段と、を有する情報処理装置が提供される。
【発明の効果】
【０００７】
一の側面によれば、インデックスバッファを含んだコンピュータグラフィックスモデルデータの圧縮率を向上させる新たな仕組みを提供できる。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係る情報処理システムの一例を示す図である。
【図２】クライアントのハードウェア構成の一例を示す図である。
【図３】サーバのハードウェア構成の一例を示す図である。
【図４】クライアントの機能構成の一例を示す図である。
【図５】サーバの機能構成の一例を示す図である。
【図６】頂点バッファの一例の構成図である。
【図７】インデックスバッファの一例の構成図である。
【図８】インデックスバッファのインデックスバッファインデックス値の推移の一例について説明する図である。
【図９】差分値に変換された後の圧縮率の向上について説明する一例の図である。
【図１０】ＣＧモデルデータの圧縮処理手順の一例を示すフローチャートである。
【図１１】頂点バッファインデックス値が差分値に変換されたインデックスバッファの一例の構成図である。
【図１２】サーバの機能構成の一例を示す図である。
【図１３】ＣＧモデルデータの圧縮処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本開示を実施するための形態について図面を参照して説明する。
【００１０】
［情報処理システム］
まず、一実施形態に係る情報処理システム１０について図１を参照して説明する。情報処理システム１０は、クライアント２０とサーバ３０とがネットワーク４０を介して通信可能に接続された構成である。
【００１１】
クライアント２０はユーザが操作する情報処理装置の一例である。ユーザはクライアント２０を操作し、３ＤＣＧモデルデータに関する処理をサーバ３０に実行させる。クライアント２０はユーザからの操作をタッチパネル、コントローラ、マウス、キーボード等で受け付ける。情報処理装置は、スマートフォンなどの携帯電話機、携帯ゲーム機、パーソナルコンピュータ、タブレット端末、家庭用ゲーム装置、業務用ゲーム装置等である。
【００１２】
サーバ３０は、ユーザの操作に基づき、３ＤＣＧモデルデータに関する処理を実行する情報処理装置の一例である。なお、サーバ３０はクラウドコンピュータにより実現してもよい。また、図１に示したサーバ３０の個数は、１つに限定されるものではなく、２つ以上で分散処理してもよい。さらに、図１の情報処理システム１０の機能を一台のクライアント２０で実現するようにしてもよい。つまり、クライアント２０がユーザからの操作を受け付け、３ＤＣＧモデルデータに関する処理を実行するようにしてもよい。
【００１３】
図２は、クライアント２０のハードウェア構成の一例を示す図である。クライアント２０は、ＣＰＵ（Central Processing Unit）１２１、記憶装置１２２、通信装置１２３、入力装置１２４及び表示装置１２５を有する。ＣＰＵ１２１は、クライアント２０を制御する。記憶装置１２２は、例えばＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などのメモリ、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などのストレージである。
【００１４】
通信装置１２３は、通信を制御するネットワーク回路などの通信デバイスである。入力装置１２４は、タッチパッド、コントローラ、マウス、キーボード、カメラ、マイクなどの入力デバイスである。また、表示装置１２５はディスプレイ、スピーカなどの出力デバイスである。タッチパネルはタッチパッドとディスプレイとを組み合わせることで実現される。
【００１５】
図３は、サーバ３０のハードウェア構成の一例を示す図である。サーバ３０は、ＣＰＵ１３１、記憶装置１３２及び通信装置１３３を有する。ＣＰＵ１３１は、サーバ３０を制御する。記憶装置１３２は、例えばＲＯＭやＲＡＭなどのメモリ、ＨＤＤやＳＳＤなどのストレージである。通信装置１３３は、通信を制御するネットワークカードなどの通信デバイスである。
【００１６】
図４はクライアント２０の機能構成の一例を示す図である。クライアント２０は、記憶部２１、制御部２２、操作部２３、表示部２４及び端末側通信部２５を有する。記憶部２１は、ユーザからの操作を受け付け、３ＤＣＧモデルデータに関する処理をサーバ３０に実行させ、その結果を表示するプログラム、そのプログラムが利用するデータなどを記憶している。なお、記憶部２１は記憶装置１２２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００１７】
制御部２２はクライアント２０の全体の制御を行う。制御部２２はＣＰＵ１２１がプログラムに記載された処理を実行することにより実現される。操作部２３は入力装置１２４に対するプレイヤの各種操作を受け付ける。表示部２４は表示装置１２５にＵＩ画面などの画像を表示する。なお、操作部２３はＣＰＵ１２１が入力装置１２４を制御することで実現される。また、表示部２４は、ＣＰＵ１２１が表示装置１２５を制御することで実現される。
【００１８】
ここで入力装置１２４に対するプレイヤの各種操作とは、ＣＰＵ１２１に処理を実行させるため、ユーザが操作部２３を操る操作をいう。操作部２３はユーザから各種操作を受け付ける。制御部２２はユーザから受け付けた各種操作に基づき、３ＤＣＧモデルデータに関する処理をサーバ３０に実行させる。表示部２４は、例えばサーバ３０に実行させた３ＤＣＧモデルデータに関する処理の結果を表示する。端末側通信部２５は、サーバ３０と通信する。端末側通信部２５はＣＰＵ１２１がプログラムに従って通信装置１２３を制御することで実現される。
【００１９】
図５は、サーバ３０の機能構成の一例を示す図である。図５のサーバ３０は、記憶部３１、サーバ制御部３２及びサーバ側通信部３３を有する。記憶部３１は、３ＤＣＧプログラム５１、変換プログラム５２、圧縮プログラム５３などのプログラム、そのプログラムが利用するデータ、ＣＧモデルデータ５４などを記憶している。ＣＧモデルデータ５４は頂点バッファ５６及びインデックスバッファ５７を含む。記憶部３１は記憶装置１３２により実現されてもよいし、ネットワーク４０を介して接続された記憶装置により実現されてもよい。
【００２０】
サーバ制御部３２は、サーバ３０の全体の制御を行う。サーバ制御部３２は、ＣＰＵ１３１が３ＤＣＧプログラム５１、変換プログラム５２、及び圧縮プログラム５３などに記載された処理を実行することにより、ＣＧモデルデータ作成部６１、変換部６２、及び圧縮部６３を実現する。
【００２１】
ＣＧモデルデータ作成部６１は３ＤＣＧを制作する機能をユーザに提供し、制作された３ＤＣＧのＣＧモデルデータ５４を作成する処理を行う。変換部６２はＣＧモデルデータ５４に含まれるインデックスバッファ５７に格納された頂点バッファインデックス値を後述するような差分値に変換する。圧縮部６３は頂点バッファインデックス値が差分値に変換されたＣＧモデルデータ５４を、情報内容を保ったままデータ量を縮小する圧縮処理を行う。なお、圧縮部６３は、同じ値が連続するほど圧縮率が向上する圧縮方式で圧縮処理を行う。同じ値が連続するほど圧縮率が向上する圧縮方式には、例えばＺＩＰなどのエントロピー圧縮方式がある。
【００２２】
また、サーバ側通信部３３はクライアント２０と通信する。サーバ側通信部３３は、ＣＰＵ１３１がサーバプログラムを実行し、サーバプログラムに従って通信装置１３３を制御することで実現される。
【００２３】
サーバ３０の記憶部３１が記憶するＣＧモデルデータ５４の頂点バッファ５６及びインデックスバッファ５７は、例えば図６及び図７に示す構成である。図６は頂点バッファの一例の構成図である。図７はインデックスバッファの一例の構成図である。
【００２４】
図６に示すように頂点バッファ５６は、３ＤＣＧモデルのポリゴンを表現するための頂点座標と、その頂点座標のインデックスである頂点バッファインデックス値と、により構成されている。頂点バッファインデックス値は３ＤＣＧモデルの頂点座標に割り当てられた連続した一意の値である。したがって、頂点バッファインデックス値を表現する為に必要となるビット数は３ＤＣＧモデルの頂点の数が増えるほど、増加する。本実施形態では頂点バッファインデックス値を３２ビットで表現する例を説明する。
【００２５】
また、図７に示すインデックスバッファ５７は、３ＤＣＧモデルのポリゴンメッシュを作るための頂点の結びの順配列を表す頂点バッファインデックス値と、そのインデックスであるインデックスバッファインデックス値と、により構成されている。図７に示すようにインデックスバッファ５７は、図６の頂点バッファ５６の頂点バッファインデックス値を格納し、その頂点バッファインデックス値に割り当てられている頂点座標の結びの順配列によりポリゴンを表現している。
【００２６】
図６及び図７に示すように、３ＤＣＧモデルの頂点の数が増えるほど、頂点バッファインデックス値を表現する為に必要となるビット数、及び、頂点バッファインデックス値の数が増加し、ＣＧモデルデータ５４のデータ量が増加する。そこで、本実施形態ではＣＧモデルデータ５４の圧縮率の向上を図ることで、ＣＧモデルデータ５４のデータ量の削減を実現する。
【００２７】
図８はインデックスバッファ５７のインデックスバッファインデックス値の推移の一例について説明する図である。図８は縦軸が頂点バッファインデックス値を表す。図８のグラフ１０００は最適化を行った後のインデックスバッファ５７のインデックスバッファインデックス値の推移を表している。図８に示すように、最適化を行った後のインデックスバッファ５７のインデックスバッファインデックス値は、緩やかに増加していく傾向のある数列状のデータとなる。
【００２８】
本実施形態に係る圧縮部６３は、同じ値が連続するほど圧縮率が向上する圧縮方式の一例であるエントロピー圧縮方式で圧縮処理を行うため、圧縮処理の前に、圧縮率を向上させる数値処理を行う。具体的には、図７のインデックスバッファ５７に格納されている頂点バッファインデックス値を変換部６２により差分値に変換する。変換部６２により変換される差分値はインデックスバッファインデックス値が１つ前の順番の頂点バッファインデックス値との差分値である。
【００２９】
インデックスバッファインデックス値が１つ前の順番の頂点バッファインデックス値との差分値は、例えば図８のグラフ１００２のように、ほぼ２０００以内の値に収束しているため、グラフ１０００と比べると０近辺の値に収束していると言える。グラフ１０００の状態で圧縮部６３において圧縮処理を行った場合と比較して、グラフ１００２の状態で圧縮処理を行った場合は、例えば図９に示すように圧縮率が向上する。
【００３０】
図９は差分値に変換された後の圧縮率の向上について説明する一例の図である。図９に示した圧縮後（差分値変換なし）はグラフ１０００の状態で行った圧縮処理の結果を表している。また、圧縮後（差分値変換あり）はグラフ１００２の状態で行った圧縮処理の結果を表している。
【００３１】
図９に示すようにインデックスバッファサイズは、グラフ１０００の状態で行った圧縮処理の後のデータ量「236,399byte」と比べて、グラフ１００２の状態で行った圧縮処理後のデータ量「81,009byte」が削減している。
【００３２】
[ＣＧモデルデータ５４の圧縮処理]
サーバ３０では、例えば図１０に示すような手順でＣＧモデルデータ５４のデータ量を削減するための圧縮処理を行う。図１０はＣＧモデルデータ５４の圧縮処理手順の一例を示すフローチャートである。
【００３３】
ＣＧモデルデータ作成部６１により作成されたＣＧモデルデータ５４は記憶部３１に記憶されている。変換部６２は、記憶部３１に記憶されているＣＧモデルデータ５４のインデックスバッファ５７に数値処理を行い、インデックスバッファ５７に格納されている頂点バッファインデックス値を差分値に変換する（Ｓ１０）。
【００３４】
図１１は頂点バッファインデックス値が差分値に変換されたインデックスバッファ５７の一例の構成図である。図１１に示すように、インデックスバッファ５７に格納されている頂点バッファインデックス値は差分値に変換されている。
【００３５】
Ｓ１０の処理により変換された差分値は、前述したように０近辺の値に収束する。例えば３２ビットで表示される頂点バッファインデックス値は、大きい値よりも０近辺の値の方が、０が連続して出現する。Ｓ１０の処理により、インデックスバッファ５７に格納されている頂点バッファインデックス値は０が連続して出現する形に変換される。
【００３６】
圧縮部６３は、インデックスバッファ５７の頂点バッファインデックス値が差分値に変換済みのＣＧモデルデータ５４をエントロピー圧縮することによりＣＧモデルデータ５４のデータ量を削減する（Ｓ１２）。このように、本実施形態では圧縮処理の前に、圧縮率を向上させる数値処理を行うことができ、圧縮処理によるＣＧモデルデータ５４のデータ量の削減を実現できる。
【００３７】
［他の実施形態］
図１１に示したように、インデックスバッファ５７に格納されている頂点バッファインデックス値の差分値には０近辺の負の値が含まれている。０近辺の負の値は、補数で表現されるため、１が多く含まれる。そこで、差分値にオフセット値を加算し、負の値の差分値の数を減少させるようにしてもよい。
【００３８】
図１２は、サーバ３０の機能構成の一例を示す図である。図１２のサーバ３０は図５のサーバ３０の構成にオフセット部６４が追加されている。オフセット部６４は変換部６２により変換された差分値の全てに同一のオフセット値を加算し、負の値の差分値の数を減少させる。オフセット値は、必ずしも負の値の差分値の全てを正の値に変化させる値でなくてよく、ある程度の数の負の値の差分値が残るような値であってもよい。
【００３９】
サーバ３０では、例えば図１３に示すような手順でＣＧモデルデータ５４のデータ量を削減するための圧縮処理を行う。図１３はＣＧモデルデータ５４の圧縮処理手順の一例を示すフローチャートである。
【００４０】
ＣＧモデルデータ作成部６１により作成されたＣＧモデルデータ５４は記憶部３１に記憶されている。変換部６２は、記憶部３１に記憶されているＣＧモデルデータ５４のインデックスバッファ５７に数値処理を行い、インデックスバッファ５７に格納されている頂点バッファインデックス値を差分値に変換する（Ｓ２０）。
【００４１】
オフセット部６４は、Ｓ２０の処理により変換された差分値の全てに同一のオフセット値を加算することにより、負の値の差分値の少なくとも一部を正の値の差分値にする（Ｓ２２）。Ｓ２０及びＳ２２の処理により、変換された差分値は前述したように０近辺の値に収束する。
【００４２】
圧縮部６３は、インデックスバッファ５７の頂点バッファインデックス値が差分値に変換済みのＣＧモデルデータ５４をエントロピー圧縮することによりＣＧモデルデータ５４のデータ量を削減する（Ｓ２４）。このように、本実施形態では圧縮処理の前に、圧縮率を向上させる数値処理を行うことができ、圧縮処理によるＣＧモデルデータ５４のデータ量の削減を実現できる。
【００４３】
なお、上記実施形態では圧縮処理について説明した。伸張処理では、変換部６２と逆の処理を行う逆変換部の処理により、インデックスバッファ５７の頂点バッファインデックス値の差分値から元の頂点バッファインデックス値に戻される。
【００４４】
開示した一実施形態の情報処理システム１０、クライアント２０及びサーバ３０は例示であって制限的なものではないと考えられるべきである。上記の実施形態は添付の請求の範囲及びその主旨を逸脱することなく、様々な形態で変形及び改良が可能である。また、上記した複数の実施形態に記載された事項は、矛盾しない範囲で他の構成も取り得ることができ、また、矛盾しない範囲で組み合わせることができる。
【符号の説明】
【００４５】
１０    情報処理システム
２０    クライアント
２１    記憶部
２２    制御部
２３    操作部
２４    表示部
２５    端末側通信部
３０    サーバ
３１    記憶部
３２    サーバ制御部
３３    サーバ側通信部
４０    ネットワーク
５１    ３ＤＣＧプログラム
５２    変換プログラム
５３    圧縮プログラム
５４    ＣＧモデルデータ
５６    頂点バッファ
５７    インデックスバッファ
６１    ＣＧモデルデータ作成部
６２    変換部
６３    圧縮部
６４    オフセット部
【図１】
2020160737.tif 000003
【図２】
2020160737.tif 000004
【図３】
2020160737.tif 000005
【図４】
2020160737.tif 000006
【図５】
2020160737.tif 000007
【図６】
2020160737.tif 000008
【図７】
2020160737.tif 000009
【図８】
2020160737.tif 000010
【図９】
2020160737.tif 000011
【図１０】
2020160737.tif 000012
【図１１】
2020160737.tif 000013
【図１２】
2020160737.tif 000014
【図１３】
2020160737.tif 000015