(57)【要約】【課題】データ伸張処理を行うデータ処理において、メモリの使用量を節約することが可能なプログラム、情報記憶媒体及びデータ処理装置を提供すること。【解決手段】元データを記憶可能な所定領域を、メモリ上に確保する処理を行い、所定領域に変換用データを読み込む処理を行い、変換用データに含まれる圧縮データと非圧縮データとを特定し、特定された圧縮データを所定領域に伸張する処理を行い、所定領域上の特定された非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行う。【選択図】図６
2010252109.tif 000002
【特許請求の範囲】
【請求項１】
変換用データを元データに変換するプログラムであって、
前記元データを記憶可能な所定領域を、メモリ上に確保する処理を行うメモリ管理部と、
前記所定領域に変換用データを読み込む処理を行う読み込み部と、
前記変換用データに含まれる圧縮データと非圧縮データとを特定し、当該圧縮データを前記所定領域に伸張する処理を行う伸張処理部として、コンピュータを機能させ、
前記伸張処理部が、
前記所定領域上の前記非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記読み込み部が、
前記所定領域の先頭アドレス側に前記変換用データを読み込み、
前記伸張処理部が、
前記所定領域の後方アドレス側に伸張データを格納させることを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記変換用データは、前記元データのサイズを含むヘッダ情報を含み、
前記メモリ管理部が、
ヘッダ情報に含まれる前記元データのサイズを参照して、前記元データのサイズを有する前記所定領域を、メモリ上に確保する処理を行い、
前記伸張処理部が、
前記所定領域の先頭アドレス側から前記非圧縮データ、前記圧縮データの順に、前記非圧縮データと前記圧縮データとを格納させた後に、前記圧縮データを後方から順次伸張する処理を行い、伸張データを前記所定領域の後方アドレス側から順次格納させることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記変換用データは、前記圧縮データのサイズと前記非圧縮データのサイズとを含むヘッダ情報を含み、
前記メモリ管理部が、
ヘッダ情報格納領域を、メモリ上に確保する処理を行い、
前記読み込み部が、
前記変換用データに含まれる前記ヘッダ情報を、前記ヘッダ情報格納領域に読み込み、
前記伸張処理部が、
前記ヘッダ情報のサイズと、前記圧縮データのサイズと前記非圧縮データのサイズとに基づいて、前記圧縮データと前記非圧縮データとを特定することを特徴とするプログラム。
【請求項５】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜４のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項６】
変換用データを元データに変換するデータ処理装置であって、
元データを記憶可能な所定領域を、メモリ上に確保する処理を行うメモリ管理部と、
前記所定領域に変換用データを読み込む処理を行う読み込み部と、
前記変換用データに含まれる圧縮データと非圧縮データとを特定し、当該圧縮データを前記所定領域に伸張する処理を行う伸張処理部とを含み、
前記伸張処理部が、
前記所定領域上の前記非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行うことを特徴とするデータ処理装置。
【請求項７】
変換用データが読み込まれたメモリ上の所定領域上で伸張処理を行うデータ処理装置のための変換用データを生成するプログラムであって、
所定条件に基づいて元データの一部を圧縮した圧縮データと、元データの残部の非圧縮データとを含むデータを、前記変換用データとして生成する処理を行う生成部として、コンピュータを機能させることを特徴とするプログラム。
【請求項８】
請求項７において、
元データを全て圧縮する処理を行う圧縮処理部と、
元データを全て圧縮した全圧縮データを、圧縮データの状況に応じた処理サイズ毎に順次伸張する処理を行う伸張処理部と、
第１の値に全圧縮データのサイズを設定し、第２の値に元データのサイズを設定し、前記伸張処理部において前記処理サイズ毎に伸張処理が行われる度に、当該第１の値から前記処理サイズを減算する処理と、前記処理サイズの圧縮データを伸張した伸張データのサイズを当該第２の値から減算する処理とを行い、前記第１の値と前記第２の値とを比較する処理を行う比較処理部と、
前記比較処理部による比較結果に基づいて、前記変換用データに含まれる前記圧縮データと前記非圧縮データとを決定する処理を行う決定部として、前記生成部を機能させることを特徴とするプログラム。
【請求項９】
請求項８において、
前記決定部が、
前記比較処理部において、前記第１の値が前記第２の値よりも大きいと判断される直前までの伸張処理が行われた圧縮データを、前記変換用データに含まれる圧縮データとして決定する処理を行い、全圧縮データのうち前記変換用データに含まれる圧縮データとして決定されなかったデータに対応する非圧縮データを、前記変換用データに含まれる非圧縮データとして決定することを特徴とするプログラム。
【請求項１０】
請求項７〜９のいずれかにおいて、
前記生成部が、
元データのサイズと、圧縮データのサイズ及び非圧縮データのサイズの少なくとも一方とを含むヘッダ情報を含む変換用データを生成する処理を行うことを特徴とするプログラム。
【請求項１１】
コンピュータ読み取り可能な情報記憶媒体であって、請求項７〜１０のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１２】
メモリ上の所定領域に読み込まれた変換用データを、当該所定領域上で伸張処理を行うための当該変換用データを生成するデータ処理装置であって、
所定条件に基づいて元データの一部を圧縮した圧縮データと、元データの残部の非圧縮データとを含むデータを、前記変換用データとして生成する処理を行う生成部とを含むデータ処理装置。
【請求項１３】
所定条件に基づいて元データの一部を圧縮した圧縮データと、元データの残部の非圧縮データとを含むデータを、変換用データとして生成する処理を行う生成部と、
前記変換用データを、前記元データに変換する処理を行う変換部として、コンピュータを機能させ、
前記変換部を、
元データを記憶可能な所定領域を、メモリ上に確保する処理を行うメモリ管理部と、
前記所定領域に変換用データを読み込む処理を行う読み込み部と、
前記変換用データに含まれる圧縮データと非圧縮データとを特定し、当該圧縮データを前記所定領域に伸張する処理を行う伸張処理部として機能させ、
前記伸張処理部が、
前記所定領域上の前記非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及びデータ処理装置に関する。
【背景技術】
【０００２】
従来から、圧縮データを伸張する処理を行う伸張処理装置が存在する。このような伸張処理装置では、一旦、圧縮データをワーク領域に格納して伸張処理を行い、伸張データをデータ格納領域に格納する処理を行っている（例えば、特許文献１（第２図参照））。
【０００３】
したがって、従来の伸張処理装置は、データ格納領域の他にワーク領域を確保しなければならなかったので、伸張時に多くのメモリを使用するという問題点があった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１３８５９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、データ伸張処理を行うデータ処理において、メモリの使用量を節約することが可能なプログラム、情報記憶媒体及びデータ処理装置を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、変換用データを元データに変換するプログラムであって、前記元データを記憶可能な所定領域を、メモリ上に確保する処理を行うメモリ管理部と、前記所定領域に変換用データを読み込む処理を行う読み込み部と、前記変換用データに含まれる圧縮データと非圧縮データとを特定し、当該圧縮データを前記所定領域に伸張する処理を行う伸張処理部として、コンピュータを機能させ、前記伸張処理部が、前記所定領域上の前記非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行うプログラムに関する。
【０００７】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含むデータ処理装置に関係する。
【０００８】
本発明によれば、伸張処理で使用するワーク領域を確保せずに所定領域上で伸張処理を行うことができる。したがって、本発明は、従来に比べてメモリ使用量を節約して伸張処理を行うことができる。
【０００９】
（２）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、前記読み込み部が、前記所定領域の先頭アドレス側に前記変換用データを読み込み、前記伸張処理部が、前記所定領域の後方アドレス側に伸張データを格納させるようにしてもよい。本発明によれば、所定領域上で非圧縮データが伸張データに上書きされないように伸張処理を行うことができる。
【００１０】
（３）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、前記変換用データは、前記元データのサイズを含むヘッダ情報を含み、前記メモリ管理部が、ヘッダ情報に含まれる前記元データのサイズを参照して、前記元データのサイズを有する前記所定領域を、メモリ上に確保する処理を行い、前記伸張処理部が、前記所定領域の先頭アドレス側から前記非圧縮データ、前記圧縮データの順に、前記非圧縮データと前記圧縮データとを格納させた後に、前記圧縮データを後方から順次伸張する処理を行い、伸張データを前記所定領域の後方アドレス側から順次格納させるようにしてもよい。本発明によれば、必要最小限の容量の所定領域で、確実に所定領域上で非圧縮データが伸張データに上書きされないようにすることができる。
【００１１】
（４）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、前記変換用データは、前記圧縮データのサイズと前記非圧縮データのサイズとを含むヘッダ情報を含み、前記メモリ管理部が、ヘッダ情報格納領域を、メモリ上に確保する処理を行い、前記読み込み部が、前記変換用データに含まれる前記ヘッダ情報を、前記ヘッダ情報格納領域に読み込み、前記伸張処理部が、前記ヘッダ情報のサイズと、前記圧縮データのサイズと前記非圧縮データのサイズとに基づいて、前記圧縮データと前記非圧縮データとを特定するようにしてもよい。本発明によれば、圧縮データと非圧縮データを確実に見極めながら伸張処理を行うことができる。
【００１２】
（５）また、本発明は、変換用データが読み込まれたメモリ上の所定領域上で伸張処理を行うデータ処理装置のための変換用データを生成するプログラムであって、所定条件に基づいて元データの一部を圧縮した圧縮データと、元データの残部の非圧縮データとを含むデータを、前記変換用データとして生成する処理を行う生成部として、コンピュータを機能させるプログラムに関する。
【００１３】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含むデータ処理装置に関係する。
【００１４】
本発明によれば、変換用データが読み込まれたメモリ上の所定領域上で伸張処理を行うデータ処理装置のための変換用データを生成することができる。つまり、本発明によれば、所定領域で圧縮データを伸張した伸張データが非圧縮データに上書きしないようにしながら伸張処理を行うことが可能な元データの一部の圧縮データと、元データの残部の非圧縮データとを含む変換用データを生成することができる。
【００１５】
（６）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、元データを全て圧縮する処理を行う圧縮処理部と、元データを全て圧縮した全圧縮データを、圧縮データの状況に応じた処理サイズ毎に順次伸張する処理を行う伸張処理部と、第１の値に全圧縮データのサイズを設定し、第２の値に元データのサイズを設定し、前記伸張処理部において前記処理サイズ毎に伸張処理が行われる度に、当該第１の値から前記処理サイズを減算する処理と、前記処理サイズの圧縮データを伸張した伸張データのサイズを当該第２の値から減算する処理とを行い、前記第１の値と前記第２の値とを比較する処理を行う比較処理部と、前記比較処理部による比較結果に基づいて、前記変換用データに含まれる前記圧縮データと前記非圧縮データとを決定する処理を行う決定部として、前記生成部を機能させるようにしてもよい。本発明によれば、元データのうち圧縮データ形式で決定されるデータと非圧縮データ形式で決定されるデータとの境目を適切に判断することができる。
【００１６】
（７）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、前記決定部が、前記比較処理部において、前記第１の値が前記第２の値よりも大きいと判断される直前までの伸張処理が行われた圧縮データを、前記変換用データに含まれる圧縮データとして決定する処理を行い、全圧縮データのうち前記変換用データに含まれる圧縮データとして決定されなかったデータに対応する非圧縮データを、前記変換用データに含まれる非圧縮データとして決定するようにしてもよい。本発明によれば、変換用データを復元する際に、圧縮データを伸張した伸張データが非圧縮データに上書きしないようにしながら伸張処理を行うことが可能な元データの一部の圧縮データと、元データの残部の非圧縮データとを含む変換用データを生成することができる。また、元データのサイズに対する変換用データのサイズの割合を最小限にすることができる。
【００１７】
（８）また、本発明のプログラム、情報記憶媒体、及びデータ処理装置は、前記生成部が、元データのサイズと、圧縮データのサイズ及び非圧縮データのサイズの少なくとも一方とを含むヘッダ情報を含む変換用データを生成する処理を行うようにしてもよい。
【００１８】
（９）また、本発明は、所定条件に基づいて元データの一部を圧縮した圧縮データと、元データの残部の非圧縮データとを含むデータを、変換用データとして生成する処理を行う生成部と、前記変換用データを、前記元データに変換する処理を行う変換部として、コンピュータを機能させ、前記変換部を、元データを記憶可能な所定領域を、メモリ上に確保する処理を行うメモリ管理部と、前記所定領域に変換用データを読み込む処理を行う読み込み部と、前記変換用データに含まれる圧縮データと非圧縮データとを特定し、当該圧縮データを前記所定領域に伸張する処理を行う伸張処理部として機能させ、前記伸張処理部が、前記所定領域上の前記非圧縮データが占める領域以外の領域に、伸張されたデータを格納させる処理を行うようにしてもよい。
【００１９】
また、本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関する。また、本発明は、上記各部を含むデータ処理装置に関係する。
【００２０】
本発明によれば、所定領域で変換用データの読み込みと変換用データに含まれる圧縮データの伸張処理を行うことが可能な、元データの一部の圧縮データと、元データの残部の非圧縮データとを含む変換用データを生成することができる。また、本発明によれば、伸張処理で使用するワーク領域を確保せずに所定領域上で伸張処理を行うことができる。したがって、本発明は、従来に比べてメモリ使用量を節約して伸張処理を行うことができる。
【図面の簡単な説明】
【００２１】
【図１】本実施形態の第１のデータ処理装置の機能ブロック図。
【図２】本実施形態の変換用データを元データに変換する処理の概要図。
【図３】図３（Ａ）〜（Ｃ）は、圧縮データと伸張データとが同じメモリ領域を共有する場合における問題点を説明するための図。
【図４】本実施形態の変換用データの説明図。
【図５】図５（Ａ）〜（Ｃ）は、変換用データを元データに変換する処理の説明図。
【図６】図６（Ａ）〜（Ｃ）は、変換用データを元データに変換する処理の説明図。
【図７】本実施形態の変換用データを元データに変換する処理のフローチャート。
【図８】本実施形態の第２のデータ処理装置の機能ブロック図。
【図９】図９（Ａ）、（Ｂ）は、変換用データを生成する処理の説明図。
【図１０】図１０（Ａ）〜（Ｃ）は、変換用データを生成する処理の説明図。
【図１１】本実施形態の変換用データを生成する処理のフローチャート。
【発明を実施するための形態】
【００２２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２３】
１．第１のデータ処理装置の説明
第１のデータ処理装置は、第２のデータ処理装置で生成された変換用データを、元データに変換するデータ処理を行うものである。すなわち、第１のデータ処理装置は、変換用データを元データに復元する処理を行うものである。
【００２４】
（１）第１のデータ処理装置の構成
図１に、本実施形態の第１のデータ処理装置（画像生成システム、ゲームシステム、伸張処理システム）の機能ブロック図の例を示す。なお本実施形態の第１のデータ処理装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２５】
入力部１６０は、プレーヤからの入力情報を入力するための機器であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、例えば、キーボード、マウス、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、加速度センサ、角速度センサ、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話などである。
【００２６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。記憶部１７０には、ＯＳの作業領域、音データ記憶領域、画像バッファ領域などの種々の領域がある。
【００２７】
本実施形態の所定領域１７１は、情報記憶媒体１８０に記憶されている変換用データ１８２の読み込み先（ロード先）のメモリ領域であり、かつ、変換用データ１８２が伸張される際の伸張データの記憶領域のメモリ領域でもある。
【００２８】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）、メモリカードなどにより実現できる。
【００２９】
処理部１００は、情報記憶媒体１８０に入力されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。
【００３０】
情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。また、情報記憶媒体１８０に、プレーヤの個人データやゲームのセーブデータなどを記憶してもよい。
【００３１】
本実施形態の情報記憶媒体１８０には、変換用データ１８２が記憶されている。変換用データ１８２は、ヘッダ情報、圧縮データ、非圧縮データとからなるデータ（ファイル）である。変換用データ１８２は他の情報を含んでいてもよい。なお、ヘッダ情報は、元データのサイズ、及び、変換用データ１８２に含まれる圧縮データのサイズ及び非圧縮データのサイズの少なくとも一方を含む。
【００３２】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３３】
通信部１９６は外部（例えばホスト装置や他のデータ処理装置）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３４】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）を、ネットワークを介してサーバからダウンロードし、記憶部１７０や、情報記憶媒体１８０に記憶するようにしてもよい。このようなサーバの記憶部に記憶されているプログラムも本発明の範囲内に含めることができる。
【００３５】
処理部１００（プロセッサ）は、記憶部１７０内の図示されていない主記憶部をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３６】
処理部１００は、変換部１１０、ゲーム処理部１１６、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３７】
変換部１１０は、変換用データ１８２を、元データに変換する処理を行う。変換部１１０は、メモリ管理部１１１、読み込み部１１２、伸張処理部１１４とを含む。
【００３８】
メモリ管理部１１１は、元データを記憶可能な所定領域１７１、ヘッダ情報格納領域１７２を、メモリ上に確保する処理を行う。具体的には、メモリ管理部１１１は、変換用データ１８２に含まれるヘッダ情報の元データのサイズを参照して、少なくとも元データのサイズを有する所定領域１７１を、メモリ上に確保する処理を行う。例えば、ヘッダ情報が１６バイトであると予め決められている場合には、１６バイトのサイズを有するヘッダ情報格納領域１７２を確保する処理を行う。
【００３９】
読み込み部１１２は、確保された所定領域１７１に、情報記憶媒体１８０に記憶されている変換用データ１８２を読み込む処理を行う。例えば、読み込み部１１２は、所定領域１７１の先頭アドレス側に変換用データ１８２を読み込む処理を行う。また、読み込み部１１２は、変換用データ１８２に含まれるヘッダ情報を、確保されたヘッダ情報格納領域１７２に読み込む処理を行う。例えば、ヘッダ情報が１６バイトであり、ヘッダ情報が変換用データの先頭に記録されていると予め決められている場合には、変換用データ１８２の先頭１６バイトを、ヘッダ情報格納領域１７２に読み込む処理を行う。
【００４０】
なお、伸張処理部１１４は、所与の圧縮アルゴリズムによって圧縮処理されたデータを、元の状態に復元する処理を行う所与の伸張アルゴリズムに基づいて、伸張処理を行う。
【００４１】
特に、本実施形態の伸張処理部１１４は、所定領域１７１に記憶されている変換用データ１８２の圧縮データと非圧縮データとを特定する処理を行い、圧縮データを伸張する処理を行う。その際に、伸張処理部１１４は、所定領域１７１上の非圧縮データが占める領域以外の領域に、伸張データを格納させる処理を行う。つまり、伸張処理部１１４は、非圧縮データ上に伸張データを上書きさせないように伸張処理を行う。
【００４２】
また、伸張処理部１１４は、所定領域１７１の先頭アドレス側から変換用データ１８２が読み込まれた場合には、伸張データを所定領域の後方アドレス側から順次格納させる処理を行う。例えば、伸張処理部１１４は、元データのサイズを有する所定領域が確保された場合には、所定領域１７１の先頭アドレス側から非圧縮データ、圧縮データの順に、非圧縮データと圧縮データとを記憶させた後に、圧縮データを後方から順次伸張する処理を行い、伸張データを所定領域の後方アドレス側から順次格納させる処理を行う。
【００４３】
なお、伸張処理部１１４は、ヘッダ情報のサイズ、ヘッダ情報に含まれる前記圧縮データのサイズと前記非圧縮データのサイズとに基づいて、圧縮データと非圧縮データとを特定する処理を行う。例えば、変換用データ１８２が、ヘッダ情報、非圧縮データ、圧縮データの順に、データを格納している場合であって、ヘッダ情報サイズが１６バイト、非圧縮データのサイズが１０２４バイト、圧縮データのサイズが２５６バイトであるとする。すると、読み込んだ変換用データ１８２の先頭アドレスから１６バイト分のデータをヘッダ情報として特定することができ、１７バイト目から１０２４バイト分のデータを、非圧縮データとして特定することができ、残りのデータ（残り２５６バイト分のデータ）を圧縮データとして特定することができる。
【００４４】
ゲーム処理部１１６は、入力部１６０からの入力データやプログラムなどに基づいて、ゲーム処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、オブジェクト（プレーヤオブジェクト、敵オブジェクトやマップなど）を配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４５】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００４６】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４７】
（２）変換用データを元データに変換する手法の概要
本実施形態では、図２に示すように、記憶部１７０に所定領域１７１を確保し、所定領域１７１において、変換用データ１８２を読み込む処理と、読み込んだ変換用データ１８２に含まれる圧縮データの伸張処理とを行うものである。つまり、本実施形態では、図２に示すように、変換用データ１８２の読み込み先のメモリ領域と、変換用データ１８２に含まれる圧縮データの伸張先のメモリ領域とが同じ領域となる。したがって、本実施形態では、従来よりも伸張処理を行うためのメモリ使用量を節約して伸張処理を行うことができる。
【００４８】
例えば、従来の伸張処理の方法は、変換用データを格納する領域と伸張データを格納する領域とを別々に確保している。しかし、本実施形態の方法は、変換用データを格納する領域と伸張データを格納する領域とが同じ領域となる。すなわち、本実施形態の方法は、変換用データを格納する領域と伸張データを格納する領域とが同じになるように、変換用データを元データに変換する処理を行う。したがって、本実施形態の方法は、従来の方法よりも伸張処理を行うためのメモリ使用量を節約することができる。
【００４９】
（３）変換用データの説明
まず、同一のメモリ領域で圧縮データの読み込みと、圧縮データの伸張処理行う際に、未だ伸張処理が施されていない圧縮データに伸張データを上書きしてしまう問題について、具体的に図３（Ａ）〜（Ｃ）を用いて説明する。なお、図３（Ａ）〜（Ｃ）それぞれは、説明を容易にするために、圧縮データが格納されているメモリ領域と、伸張データが格納されるメモリ領域とを分けて図示しているが、実際は、圧縮データと伸張データとは同じメモリ領域に配置されている。
【００５０】
まず、図３（Ａ）に示すように、メモリ領域に圧縮データが読み込まれているとする。そして、メモリ領域において、圧縮データの後方から圧縮データの状況に応じた処理サイズｉ毎に順次伸張処理を行い、同じメモリ領域の後方アドレス側から順次伸張データを格納する。
【００５１】
なお、処理サイズは、圧縮データの状況に応じたサイズであり、可変長のサイズであってもよい。例えば、処理サイズは、圧縮アルゴリズムによって決められる１単位あたりのサイズである。
【００５２】
このように、伸張処理を順次行うと、図３（Ｂ）に示すように、圧縮データを伸張した伸張データが、その圧縮データ上に上書きされるようになる。かかる場合には、上書きされる圧縮データは既に伸張処理が施されているので問題はない。
【００５３】
しかし、図３（Ｃ）に示すように、圧縮データを伸張した伸張データが、未だ伸張処理が施されていない圧縮データを上書きしてしまう事態が生じる場合がある。このような場合に、伸張データの上書きにより、未だ伸張処理が施されていない圧縮データが消失してしまうことになり、元データを復元できなくなってしまう。
【００５４】
そこで、本実施形態では、同一のメモリ領域を利用して伸張処理を行う際に、圧縮データの一部が消失することなく、全ての圧縮データの伸張処理を施すことができ、正確に元データを復元できるようにするために、圧縮データと非圧縮データとを含む変換用データ１８２を対象に、変換する処理を行う。
【００５５】
図４は、変換用データ１８２の説明図である。変換用データ１８２は、圧縮データ１１と、非圧縮データ１２と、ヘッダ情報１３とからなるデータである。本実施形態の変換用データ１８２は、変換用データ１８２の先頭から、ヘッダ情報１３、非圧縮データ１２、圧縮データ１１の順に記録されている。つまり、変換用データ１８２の終端側に圧縮データが格納されている。ヘッダ情報１３は、元データのサイズ（所定領域１７１のサイズ）ｘ、圧縮データ１１のサイズｙ、非圧縮データ１２のサイズｚとからなる。なお、ヘッダ情報のサイズは予め決められており、本実施形態では１６バイトである。
【００５６】
（４）変換用データを元データに変換する処理の詳細
本実施形態では、図５（Ａ）に示すように、まず、ヘッダ情報１３を記憶可能なヘッダ情報格納領域１７２を確保する処理を行い、変換用データ１８２の先頭部分に格納されているヘッダ情報１３（先頭１６バイト分のデータ）を、ヘッダ情報格納領域１７２に読み込む処理を行う。これは、ヘッダ情報１３が、伸張処理が行われている最中に消去（上書き消去）されないようにするためである。
【００５７】
次に、本実施形態では、変換用データ１８２のヘッダ部分に記憶されたヘッダ情報１３に含まれる元データのサイズ（所定領域１７１のサイズ）ｘを参照し、図５（Ａ）に示すように、元データのサイズｘ分の所定領域１７１をメモリ上に確保する。
【００５８】
そして、図５（Ｂ）に示すように、確保した所定領域１７１の先頭アドレス（アドレス０ｘＡ００００）に変換用データ１８２に含まれる圧縮データ１１、非圧縮データ１２を格納する。より詳しく説明すると、変換用データ１８２のうちヘッダ情報１３より後のデータ（例えば先頭１７バイト目）から終端までのデータを、所定領域１７１の先頭アドレス側から読み込む処理を行う。なお、変換用データ１８２そのもの（図４に示すように、ヘッダ情報１３、非圧縮データ１２、圧縮データ１１の順に配置されている変換用データ１８２そのもの）を、所定領域１７１の先頭アドレス側から読み込んでもよい。かかる場合において、元データの開始アドレスを所定領域１７１の開始アドレス（０ｘＡ００００）とする場合には、ヘッダ情報１３以外のデータ（非圧縮データ１２と圧縮データ１１とからなるデータ）を所定領域１７１の先頭アドレス側に配置し直す必要がある。
【００５９】
そして、図５（Ｃ）に示すように、確保した所定領域１７１において、圧縮データ１１の終端から圧縮データの状況に応じた処理サイズｉ毎に伸張する処理を行い、所定領域１７１の後方アドレス側（アドレス０ｘＡＥＦＦＦ）から順に伸張データを格納する処理を行う。
【００６０】
より具体的に、図６（Ａ）〜（Ｃ）を用いて、所定領域上において、伸張データを格納させる処理について詳しく説明する。なお、図６（Ａ）〜（Ｃ）それぞれは、説明を容易にするために、圧縮データが格納されているメモリ領域と、伸張データが格納されるメモリ領域とを分けて図示しているが、実際は、圧縮データと伸張データとは同じメモリ領域に配置されている。
【００６１】
本実施形態では、図６（Ａ）に示すように、圧縮データ１１の終端から圧縮データの状況に応じた処理サイズｉ毎に、圧縮データを順次伸張する処理を行い、伸張されたデータを所定領域１７１の後方アドレス側から順次格納させる処理を行う。
【００６２】
なお、本実施形態では、ヘッダ情報格納領域１７２に格納されているヘッダ情報１３の圧縮データ１１のサイズｙ、非圧縮データ１２のサイズｚを参照して、圧縮データを特定している。要するに、本実施形態では、所定領域１７１に、記憶されている圧縮データと非圧縮データの境目を判断するために、圧縮データ１１のサイズｙ、非圧縮データ１２のサイズｚを参照して、所定領域に格納されたヘッダ情報１３以外のデータのうち圧縮データ１１を特定する処理を行っている。
【００６３】
例えば、所定領域１７１の先頭アドレス（０ｘＡ００００）と非圧縮データのサイズｚとによって、圧縮データ１１の先頭アドレスを求めることができる。例えば、圧縮データ１１の先頭アドレスは、所定領域１７１の開始アドレス（０ｘＡ００００）＋ｚとなる。
【００６４】
また、所定領域１７１の先頭アドレス（０ｘＡ００００）と、圧縮データのサイズｙ、非圧縮データのサイズｚとによって、圧縮データ１１の最終アドレスを求めることができる。例えば、圧縮データ１１の最終アドレスは、所定領域１７１の開始アドレス（０ｘＡ００００）＋ｚ＋（ｙ−１）となる。
【００６５】
そして、本実施形態では、伸張処理を始める前に、ヘッダ情報１３に含まれる圧縮データ１１のサイズｙを取得し、圧縮データの状況に応じた処理サイズｉ毎に伸張する度に、ｙから圧縮データの状況に応じた処理サイズを減算する処理を行う。そして、ｙ＝０になった段階で、伸張処理を終了する。
【００６６】
したがって、図６（Ｂ）に示すように、最後に伸張処理を行った伸張データは、非圧縮データを上書きすることなく伸張データを所定領域上に格納することができる。また、図６（Ｃ）に示すように、伸張データと非圧縮データの連続性が担保される。つまり、本実施形態では、所定領域上で、伸張データと非圧縮データとを隙間なくデータが連続することを保障しなければならないが、予め元データサイズ分の所定領域上に、変換用データ１８２のうちヘッダ情報以後のデータをそのまま読み込むことによって、先頭アドレス側に非圧縮データが配置されることになる。そして、所定領域に格納された変換用データ１８２のうちヘッダ情報以外のデータを後方から順に伸張処理を行い、伸張データを順次後方から格納させるようにすれば、結果的に隙間なくデータが連続するように伸張データと非圧縮データとを格納させることができる。
【００６７】
以上のように、本実施形態では、所定領域１７１と、ヘッダ情報格納領域１７２とを確保することによって、従来必要となっていたワーク領域を確保せずに、変換用データを元データに変換することができる。つまり、本実施形態によれば、元データのサイズよりも、容量が縮小されている変換用データを用いながらも、変換用データを元データに復元する際は、メモリ使用量を節約しつつ元データに変換可能であるという効果がある。
【００６８】
さらに、本実施形態によれば、元データをメモリ上に格納する以外に必要となる予め確保すべき領域は、ヘッダ情報格納領域だけであり、このヘッダ情報格納領域のサイズは予め把握することができるので、プログラム設計を組み易いという利点もある。
【００６９】
すなわち、従来では、ワーク領域がどのくらい確保すべきか否かがプログラマーにとって不明確であったために、必要十分なワーク領域をメモリ上に確保することにより、結果的に無駄にワーク領域を確保することもあった。一方、本実施形態によれば、ワーク領域のように不明確なサイズの領域ではなく、予めサイズが決められているヘッダ情報のサイズ（例えば、１６バイト）分のヘッダ情報格納領域１７２をメモリ上に確保すればよいので、プログラマーにとってメモリの使用を考慮した設計が容易となるという利点がある。
【００７０】
（５）フローチャート
図７を用いて、本実施形態のデータ変換処理について説明する。
【００７１】
まず、ヘッダ情報格納領域を確保し、変換用データ１８２に含まれるヘッダ情報１３をヘッダ情報格納領域１７２に読み込む（ステップＳ１）。次に、ヘッダ情報１３に含まれる元データのサイズｘを参照し、元データのサイズｘ分の所定領域１７１をメモリ上に確保する（ステップＳ２）。変換用データに含まれるヘッダ情報以外のデータ（非圧縮データ及び圧縮データ）を、所定領域１７１の先頭アドレス側に読み込む処理を行う（ステップＳ３）。
【００７２】
そして、ヘッダ情報１３に含まれる圧縮データのサイズｙを参照し、ｙ＝０か否かを判断する（ステップＳ４）。ｙ＝０でない場合には（ステップＳ４のＮ）、所定領域に読み込んだデータの後方から処理サイズ分のデータを伸張する処理を行う（ステップＳ５）。なお、伸張処理は変換用データの後方から順に行う。そして、ｙから処理サイズを減算する処理を行い（ステップＳ６）、ステップＳ４に戻る。一方、ｙ＝０である場合には（ステップＳ４のＹ）、終了する処理を行う。以上で処理が終了する。
【００７３】
２．第２のデータ処理装置の説明
第２のデータ処理装置は、第１のデータ処理装置で用いられる変換用データを生成する処理を行うものである。
【００７４】
（１）第２のデータ処理装置の構成
図８に第２の本実施形態のデータ処理装置の機能ブロック図の例を示す。なお本実施形態の第２のデータ処理装置は図８の構成要素（各部）の一部を省略した構成としてもよい。
【００７５】
記憶部２７０は、処理部２００や通信部などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。記憶部２７０には、ＯＳの作業領域、音データ記憶領域、画像バッファ領域などの種々の領域がある。
【００７６】
本実施形態の記憶部には、第１のワーク領域２７１と、第２のワーク領域２７２があり、それぞれ本実施形態の生成部２１０で用いられる領域である。
【００７７】
情報記憶媒体２８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）、メモリカードなどにより実現できる。
【００７８】
処理部２００は、情報記憶媒体２８０に入力されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。
【００７９】
情報記憶媒体２８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００８０】
本実施形態の情報記憶媒体２８０には、元データ２８１が記憶されている。また、情報記憶媒体２８０は、生成部２１０によって生成された変換用データ１８２を記憶する。なお、この変換用データ１８２は、第１のデータ処理装置で読み込まれる変換用データ１８２となる。
【００８１】
なお、本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）を、ネットワークを介してサーバからダウンロードし、記憶部２７０や、情報記憶媒体２８０に記憶するようにしてもよい。このようなサーバの記憶部に記憶されているプログラムも本発明の範囲内に含めることができる。
【００８２】
処理部２００（プロセッサ）は、記憶部２７０内の主記憶部をワーク領域として各種処理を行う。処理部２００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００８３】
処理部２００は、生成部２１０を含み、生成部２１０は、圧縮処理部２１１、伸張処理部２１２、比較処理部２１３、決定部２１４とを含む。なおこれらの一部を省略する構成としてもよい。
【００８４】
生成部２１０は、所定条件に基づいて元データ２８１の一部を圧縮した圧縮データと、元データ２８１の残部の非圧縮データとを含むデータを、変換用データ１８２として生成する処理を行う。
【００８５】
圧縮処理部２１１は、データの容量（サイズ）を削減する処理を行う所与の圧縮アルゴリズムによって圧縮処理を行う。本実施形態の圧縮処理部２１１は、所与の可逆圧縮アルゴリズムに基づいて、ゲームプログラムなどの元データを圧縮する処理を行う。
【００８６】
圧縮処理部２１１は、元データ２８１を全て圧縮する処理を行う。本実施形態の圧縮処理部２１１は、元データ２８１の終端から先頭に向かって順次圧縮する処理を行う。そして、圧縮処理部２１１は、確保された第１のワーク領域２７１に、全圧縮データを格納させる処理を行う。
【００８７】
伸張処理部２１２は、所与の圧縮アルゴリズムによって圧縮処理されたデータを、元の状態に復元する処理を行う所与の伸張アルゴリズムに基づいて、伸張処理を行う。
【００８８】
特に、本実施形態の伸張処理部２１２は、元データ２８１を全て圧縮した全圧縮データを、圧縮データの状況に応じた処理サイズｉ毎に順次伸張する処理を行う。例えば、伸張処理部２１２は、元データ２８１のサイズｘを有する第２のワーク領域２７２を確保し、第１のワーク領域２７１において圧縮された全圧縮データを、終端から先頭に向かって圧縮データの状況に応じた処理サイズｉ毎に順次伸張する処理を行う。
【００８９】
比較処理部２１３は、伸張処理部２１２において第１の値に全圧縮データのサイズを設定し、第２の値に元データのサイズを設定し、伸張処理部２１２において圧縮データの状況に応じた処理サイズｉ毎に伸張処理が行われる度に、第１の値から前記処理サイズを減算する処理と、圧縮データの状況に応じた処理サイズｉの圧縮データを伸張した伸張データのサイズを第２の値から減算する処理とを行い、第１の値と第２の値とを比較する処理を行う。例えば、比較処理部２１３は、第１の値が第２の値よりも大きいか否かを判断する処理を行う。
【００９０】
決定部２１４は、比較処理部２１３による比較結果に基づいて、変換用データ１８２に含まれる圧縮データと非圧縮データとを決定する処理を行う。例えば、決定部２１４は、比較処理部２１３において第１の値が第２の値より大きいと判断される直前までの圧縮データを、変換用データ１８２に含まれる圧縮データ１１として決定する処理を行う。また、決定部２１４は、全圧縮データのうち変換用データ１８２に含まれる圧縮データ１１として決定されなかったデータに対応する元データを、変換用データに含まれる非圧縮データ１２として決定する処理を行う。つまり、決定部２１４は、比較処理部２１３において第１の値が第２の値より大きいと判断される直前までの未伸張分の圧縮データに対応する元データを、変換用データ１８２に含まれる非圧縮データ１２として決定する処理を行う。
【００９１】
なお、生成部２１０は、元データのサイズ（所定領域１７１のサイズ）ｘを含み、変換用データ１８２の圧縮データのサイズｙ及び非圧縮データのサイズｚを含むヘッダ情報を含む変換用データ１８２を生成する処理を行う。
【００９２】
（２）変換用データを生成する手法
本実施形態の変換用データの生成手法について、図９、図１０を用いて説明する。
【００９３】
まず、図９（Ａ）に示すように、元データのサイズｘを有する第２のワーク領域２７２を確保する。そして、元データを第２のワーク領域２７２に格納させる処理を行う。次に、第２のワーク領域２７２上にある元データを、終端から先頭に向けて順次圧縮し、図９（Ｂ）に示すように、圧縮されたデータを第１のワーク領域２７１の終端から格納する処理を行う。なお、第１のワーク領域２７１のサイズは限定されるものではないが、少なくとも圧縮データが格納できる領域であればよい。
【００９４】
次に、図１０（Ａ）に示すように、第１のワーク領域２７１に記憶されている圧縮データを、後方から圧縮データの状況に応じた処理サイズｉ毎に伸張する処理を行う。
【００９５】
なお、図９、図１０では、説明の便宜上、第２のワーク領域２７２のサイズを元データのサイズｘとして図示しているが、元データ２８１が記憶可能なサイズを有していればよい。
【００９６】
そして、図１０（Ａ）〜（Ｃ）に示すように、本実施形態では、圧縮データの状況に応じた処理サイズｉ毎に伸張処理を行う度に、全圧縮データのサイズＥから伸張処理済の圧縮データのサイズＣを減算した第１の値Ａと、元データのサイズｘから第２のワーク領域の使用済みサイズＤを減算した第２の値Ｂとを更新する処理を行い、第１の値Ａと第２の値Ｂとを比較する処理を行う。ここで、第１の値Ａは、未伸張データのサイズであり、第２の値Ｂは第２のワーク領域の未使用サイズである。要するに、第１の値Ａの領域の圧縮データを伸張したデータサイズは第２の値Ｂとなる関係である。
【００９７】
そして、本実施形態では、第１の値Ａと第２の値Ｂとの比較結果に基づいて、元データのうち圧縮データ形式で出力するデータと非圧縮データ形式で出力するデータとの境目を決定する処理を行っている。より具体的には、Ａ＞Ｂと判断される直前までの伸張処理の対象である圧縮データを、変換用データ１８２に含まれる圧縮データ１１として決定する処理を行い、Ａ＞Ｂと判断される直前までの未伸張データに対応する元データを、変換用データ１８２に含まれる非圧縮データ１２として決定する処理を行っている。
【００９８】
より詳細に、図１０（Ａ）〜（Ｃ）を用いて説明する。本実施形態では、初期値として、第１の値Ａ０に全圧縮データのサイズＥが設定され、第２の値Ｂ０に元データのサイズｘが設定され、伸張処理済の圧縮データのサイズＣ０に０が設定され、第２のワーク領域の使用済みサイズＤ０に０が設定される。
【００９９】
図１０（Ａ）は、１回目の処理の説明図である。まず、第１回目の処理では、Ａ０＞Ｂ０であるか否かを判断する。
【０１００】
第１回目においては、Ａ０＞Ｂ０でなく、Ａ０＜Ｂ０であるので、処理サイズｉの伸張処理を行う。すなわち、全圧縮データのうち終端から処理サイズｉ分の伸張処理を施す。そして、第１回目において、処理サイズ分ｉの圧縮データを、出力データとして出力する処理を行う。つまり、この出力データは最終的な変換用データ１８２を構成するデータの一部となる。
【０１０１】
そして、Ａ、Ｂ、Ｃ、Ｄを更新する。つまり、次回の処理で用いられるＡ１はＡ０−ｉが代入される。また、伸張処理によって処理サイズｉ分の圧縮データの伸張後のデータサイズｊが決まるので、次回の処理で用いられるＢ１はＢ０−ｊが代入される。なお、伸張処理済みの圧縮データのサイズＣ１はＣ０＋ｉが代入され、第２のワーク領域の使用済みサイズＤ１はＤ０＋ｊが代入される。
【０１０２】
本実施形態では、Ａ＞Ｂと判断されるまで、終端から先頭に向かって順次圧縮データを処理サイズｉ単位で伸張する処理を行い、圧縮データを出力データとして出力する処理を繰り返す。なお、伸張処理は、圧縮データの終端から先頭に向かって処理を行っているので、図１０（Ｂ）に示すように、出力する圧縮データも出力データの終端から先頭に向かってに出力する。
【０１０３】
図１０（Ｂ）は、ｎ−１回目（ｎ＞１）の処理の説明図である。まず、第ｎ−１回目の処理では、Ａｎ−１＞Ｂｎ−１であるか否かを判断する。
【０１０４】
第ｎ−１回目においては、Ａｎ−１＞Ｂｎ−１ではなく、Ａｎ−１≦Ｂｎ−１であるので、処理サイズｉの伸張処理を行う。そして、第ｎ−１回目において、処理サイズ分ｉの圧縮データを、出力データとして出力する処理を行う。
【０１０５】
そして、Ａ、Ｂ、Ｃ、Ｄを更新する。つまり、次回の処理で用いられるＡｎはＡｎ−１−ｉが代入される。また、伸張処理によって処理サイズｉ分の圧縮データの伸張後のデータサイズｊが決まるので、次回の処理で用いられるＢｎはＢｎ−１−ｊが代入される。なお、伸張処理済みの圧縮データのサイズＣｎはＣｎ−１＋ｉが代入され、第２のワーク領域の使用済みサイズＤｎはＤｎ−１＋ｊが代入される。
【０１０６】
図１０（Ｃ）は、ｎ回目の処理の説明図である。まず、第ｎ回目の処理では、Ａｎ＞Ｂｎであるか否かを判断する。
【０１０７】
第ｎ回目においては、Ａｎ＞Ｂｎであるので、伸張処理を施さずに、残りの元データを出力データとして出力する処理を行う。つまり、元データのうち圧縮データ形式として出力されていない分の残りデータを、非圧縮データ形式で出力する。要するに、図１０（Ｃ）に示すように、全圧縮データのうち伸張処理を行っていないデータに対応する元データ（サイズＢｎ分のデータ）を、変換用データ１８２に含まれる非圧縮データ１２として決定する処理を行う、
そして、元データのサイズｘ、出力データとして出力した圧縮データのサイズｙ（ｙ＝Ｃｎ）と、出力した非圧縮データのサイズｚ（ｚ＝Ｂｎ）とからなるヘッダ情報を出力する。
【０１０８】
なお、本実施形態では、出力データの出力先は、情報記憶媒体の所与の領域、或いはメモリ領域上であり、最終的な出力データが変換用データ１８２となる。
【０１０９】
以上のように、本実施形態では、変換用データ１８２を生成することができ、この変換用データ１８２は、第１のデータ処理装置において用いることができる。また、本実施形態によれば、可能な限り元データを圧縮データ形式で出力する処理を行うので、元データよりもデータ容量を削減した変換用データを生成することができる。
【０１１０】
（３）フローチャート
本実施形態において、変換用データを生成する処理の流れについて、図１１を用いて説明する。
【０１１１】
まず、元データ２８１を終端から先頭に向かって順次圧縮し、全データの圧縮処理を行う（ステップＳ１１）。
【０１１２】
次に、全圧縮データのサイズ≧元データのサイズｘであるか否かを判断する（ステップＳ１２）。そして、全圧縮データのサイズ≧元データのサイズｘである場合（ステップＳ１２のＹ）には、圧縮不要として処理を終了する。
【０１１３】
一方、全圧縮データのサイズ≧元データのサイズｘでない場合（ステップＳ１２のＮ）には、Ａに全圧縮データのサイズを代入し、Ｂに元データのサイズｘを代入し、Ｃに０を代入する処理を行う（ステップＳ１３）。そして、Ａ＞Ｂであるか否かを判断する処理を行う（ステップＳ１４）。
【０１１４】
Ａ＞Ｂでないと判断される場合（ステップＳ１４のＮ）には、全圧縮データ中の伸張処理の対象となる処理サイズｉ分を伸張する処理を行う（ステップＳ１５）。
【０１１５】
そして、処理サイズｉの圧縮データを出力する処理を行う（ステップＳ１６）。そして、Ａから処理サイズｉを減算する処理を行う（ステップＳ１７）。そして、Ｂから伸張処理の対象である処理サイズｉ分の圧縮データの伸張後のデータサイズｊを減算する処理を行う（ステップＳ１８）。そして、伸張処理済みの圧縮データのサイズＣに処理サイズｉを加算する処理を行う（ステップＳ１９）。そして、ステップＳ１４に戻る。
【０１１６】
一方、Ａ＞Ｂであると判断される場合（ステップＳ１４のＹ）には、元データのうち圧縮データとして出力されていない圧縮データに対応する元データ（非圧縮データ）を、非圧縮データ形式で出力する処理を行う（ステップＳ２０）。
【０１１７】
そして、元データ２８１のサイズｘ、出力した圧縮データのサイズｙ（ｙ＝Ｃ）と、出力した非圧縮データのサイズｚ（ｚ＝Ｂ）とからなるデータをヘッダ情報として、変換用データ１８２の先頭部分に出力する処理を行う（ステップＳ２１）。以上で処理が終了する。
【０１１８】
３．応用例
（１）変換用データの生成処理の応用例
本実施形態では、元データのうち所定の割合のデータ（例えば、５０％のデータ）を、圧縮データ形式で出力する処理を行い、残りのデータを非圧縮データ形式で出力するようにしてもよい。なお、所定の割合とは元データのうち元データの全サイズに対する圧縮対象データのサイズの割合である。
【０１１９】
つまり、変換用データの圧縮データ形式と非圧縮データ形式との境目を予め決めるようにしてもよい。例えば、第１のデータ処理装置において、変換用データを元データに変換する際に、変換用データに含まれる圧縮データを伸張したデータが、非圧縮データに上書きされないことを保証されていることが明らかな割合に所定の割合を設定すれば、比較処理を行わずに簡易に変換用データを生成することができる。
【０１２０】
また、本実施形態では、全圧縮データのサイズＥから既に伸張処理が行われた圧縮データのサイズＣを減算した第１の値Ａと、元データのサイズｘから既に伸張処理が行われた伸張データのサイズＤを減算した第２の値Ｂとが、Ａ＞Ｂと判断される直前ではなく、Ａ≦Ｂの関係である状態で圧縮データと非圧縮データとの境目を決定してもよい。このようにすれば、比較判断の回数を減らすことができ処理負荷を軽減できる。また、第１のデータ処理装置において、変換用データを元データに変換する際に、変換用データに含まれる圧縮データを伸張したデータが、非圧縮データに上書きされないことを保証することができる。
【０１２１】
（２）変換用データの応用例
本実施形態では、変換用データを生成する場合において、元データの先頭側の一部のデータを圧縮データ形式で出力し、終端側の残部のデータを非圧縮データ形式で出力するようにしてもよい。
【０１２２】
より具体的に説明すると、元データを先頭から終端に向けて順次圧縮する処理を行い、元データを全て圧縮した全圧縮データを、先頭から圧縮データの状況に応じた処理サイズｉ毎に順次伸張する処理を行う。そして、処理サイズｉ単位で伸張処理が行われる度に、全圧縮データのサイズから既に伸張処理が行われた圧縮データのサイズを減算した第１の値と、元データのサイズから既に伸張処理が行われた伸張データのサイズを減算した第２の値とを更新する処理を行い、第１の値が第２の値よりも大きいか否かを判断する処理を行う。
【０１２３】
そして、第１の値が第２の値より大きいと判断されるまで、処理サイズｉの圧縮データを、先頭から順次出力する処理を行い、第１の値が第２の値より大きいと判断した場合には、残りの元データを、出力する処理を行う。
【０１２４】
一方、第１のデータ処理装置において、先頭から順にヘッダ情報１３を、圧縮データ１１、非圧縮データ１２が記録されている変換用データを元データに変換する場合には、変換用データのうちヘッダ情報１３を除くデータを、所定領域の後方アドレス側に配置させて、圧縮データ１１のサイズｙ、非圧縮データ１２のサイズｚを参照しながら、圧縮データ１１を特定し、圧縮データ１１の先頭から順次伸張処理を行い、所定領域の先頭アドレスに伸張データを格納させる処理を行う。
【０１２５】
（３）本実施形態では、変換用データを元データに変換する処理と、変換用データを生
成する処理とを、それぞれ異なる第１、第２のデータ処理装置で行う手法について説明したが、同一のデータ処理装置で行うようにしてもよい。
【符号の説明】
【０１２６】
１００  処理部、１１０  変換部、
１１１  メモリ管理部、１１２  読み込み部、１１４  伸張処理部、
１１６  ゲーム処理部、１２０  描画部、１３０  音生成部、
１６０  入力部、１７０  記憶部、１７１  所定領域、１７２  ヘッダ情報格納領域、
１８０  情報記憶媒体、１８２  変換用データ、
１９０  表示部、１９２  音出力部、１９６  通信部
２００  処理部、２１０  生成部、２１１  圧縮処理部、２１２  伸張処理部、
２１３  比較処理部、２１４  決定部、
２７０  記憶部、２７１  第１のワーク領域、２７２  第２のワーク領域
２８０  情報記憶媒体、２８１  元データ
【図１】
2010252109.tif 000003
【図２】
2010252109.tif 000004
【図３】
2010252109.tif 000005
【図４】
2010252109.tif 000006
【図５】
2010252109.tif 000007
【図６】
2010252109.tif 000008
【図７】
2010252109.tif 000009
【図８】
2010252109.tif 000010
【図９】
2010252109.tif 000011
【図１０】
2010252109.tif 000012
【図１１】
2010252109.tif 000013