命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化する方法であって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、ことを特徴とするレジスタ配置最適化方法。前記変換テーブルに含まれる前記変数の使用頻度の情報は、変数の平均使用頻度及び過去の使用頻度の情報を含み、前記決定では、前記変換テーブルに含まれる前記変数の平均使用頻度の情報に基づいて、平均使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又は前記メモリに決定し、前記更新では、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の過去の使用頻度の情報を更新すると共に、前記変数の過去の使用頻度の情報に基づいて前記変換テーブルに含まれる前記変数の平均使用頻度の情報を更新する、ことを特徴とする請求項1記載のレジスタ配置最適化方法。前記変換テーブルは、複数の変換テーブルの中から、前記プロセッサが処理する入力データの特徴に応じて選択された変換テーブルである、ことを特徴とする請求項1又は2記載のレジスタ配置最適化方法。前記入力データは画像データであり、前記選択された変換テーブルは、前記画像データのフレーム内差分又はフレーム間差分に応じて選択された変換テーブルである、ことを特徴とする請求項3記載のレジスタ配置最適化方法。命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化するプログラムであって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、という処理をコンピュータに実行させるレジスタ配置最適化プログラム。命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化する装置であって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルと、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換する命令変換部と、を備え、前記命令変換部は、前記変換テーブルに含まれる前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、ことを特徴とするレジスタ配置最適化装置。上述のように、使用頻度の高い変数や再利用タイミングが時間的に近い変数をレジスタに割り当てる等して処理の最適化を行って高速化を図る技術においては、次のような課題がある。プログラムにおいて、例えば分岐処理等のように、入力データに応じて異なる処理が行われる関数では、入力データに応じて処理ルートが異なる。この場合、使用頻度の高い変数や再利用タイミングが時間的に近い変数も処理ルートによって異なることになる。そこで、上記の技術では、平均的な入力データに応じた処理ルート等に基づいて処理の最適化が行われている。しかしながら、これでは、入力データが変化して処理ルートが異なってしまうと、使用頻度の高い変数や再利用タイミングが時間的に近い変数も異なってしまうため、処理速度の高速化を図るどころか処理速度の低下を招く虞がある。本発明は、上記実情に鑑み、入力データが変化しても処理の高速化を図ることができる、レジスタ配置最適化方法、レジスタ配置最適化プログラム、及びレジスタ配置最適化装置を提供することを目的とする。方法の一観点によれば、命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、レジスタに配置される変数を最適化する方法が提供される。この方法では、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、その変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的にレジスタに配置されるように、変数の配置先をレジスタ又はメモリに決定する。決定された変数の配置先を、変換テーブルに含まれる変数の配置先の情報に反映する。変換テーブルに含まれる変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、プロセッサコアが実行可能な命令コードに変換する。変換された命令コードをプロセッサコアが実行する際に使用される変数に応じて、変換テーブルに含まれる変数の使用頻度の情報を更新する。プログラムの一観点によれば、命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、レジスタに配置される変数を最適化するプログラムが提供される。このプログラムは、次のような処理をコンピュータに実行させる。プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、その変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的にレジスタに配置されるように、変数の配置先をレジスタ又はメモリに決定する。決定された変数の配置先を、変換テーブルに含まれる変数の配置先の情報に反映する。変換テーブルに含まれる変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、プロセッサコアが実行可能な命令コードに変換する。変換された命令コードをプロセッサコアが実行する際に使用される変数に応じて、変換テーブルに含まれる変数の使用頻度の情報を更新する。装置の一観点によれば、命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、レジスタに配置される変数を最適化する装置が提供される。この装置は、変換テーブルと命令変換部とを含む。変換テーブルは、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む。命令変換部は、変換テーブルに含まれる変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、プロセッサコアが実行可能な命令コードに変換する。また、命令変換部は、変換テーブルに含まれる変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的にレジスタに配置されるように、変数の配置先をレジスタ又はメモリに決定する。また、決定された変数の配置先を、変換テーブルに含まれる変数の配置先の情報に反映する。また、変換された命令コードをプロセッサコアが実行する際に使用される変数に応じて、変換テーブルに含まれる変数の使用頻度の情報を更新する。開示の方法、プログラム、及び装置は、入力データが変化しても処理の高速化を図ることができる、という効果を奏する。<実施例1>図1は、データ処理装置の一例を示す図である。図1に示したデータ処理装置は、プロセッサCPUCentralProcessingUnit部110、メインメモリ部120、メモリコントローラ部130、周辺入出力I/FInterFace部140、通信I/FInterFace部150、及びシステムバス160を含む。プロセッサCPU部110は、プロセッサコア演算制御ユニット111、レジスタ112、命令キャッシュ113、データキャッシュ114、システムバスコントローラ115、及び内部メモリ116を含む。プロセッサコア111は、処理プログラム命令コードの実行を行う。レジスタ112は、プロセッサコア111がアクセスする高速レジスタである。命令キャッシュ113は、命令コード用のキャッシュメモリである。データキャシュ114は、データコード用のキャッシュメモリである。システムバスコントローラ115は、各部を接続するシステムバス160のコントローラである。内部メモリ116は、プロセッサCPU部110内で使用される小容量のメモリである。メインメモリ部120は、処理プログラム格納領域121、処理データ格納領域122、及び処理結果格納領域123を含む。メモリコントローラ部130は、メインメモリ部120のReadWrite制御を行う。周辺入出力I/F部140は、外部機器との間で入出力I/F処理を行う。通信I/F部150は、通信回線を介して外部機器との間でI/F処理を行う。システムバス160は、プロセッサCPU部110、メモリコントローラ部130、周辺入出力I/F部140、及び通信I/F部150等と接続されるアドレス/データバスである。図1に示したデータ処理装置において、処理対象データは、外部機器から周辺入出力I/F部140を介して又は通信回線から通信I/F部150を介して入力される。入力された処理対象データは、システムバス160及びメモリコントローラ部130を経由してメインメモリ部120の処理データ格納領域122に格納される。格納された処理対象データは、メインメモリ部120にロードされた処理プログラムがプロセッサCPU部110により実行されることによって処理される。処理プログラムは、例えば、フィルタリングや画像圧縮等の処理を行う画像処理プログラムである。処理プログラムにおいて、プロセッサCPU部110の処理内容を実現するための命令コードは、メインメモリ部120又は内部メモリ116に格納される。命令コードは、直接アセンブラ言語で記述されたものであるか、又は、C言語等の高級言語で記述された上でコンパイラにより変換されたものである。プロセッサCPU部110には、メモリアクセス高速化の為に、キャッシュメモリが設けられており、適宜プロセッサコア111で実行される命令コードが事前に命令キャッシュ113にコピーされる。また、プロセッサCPU部110には、演算対象データを格納又は一時的に記憶するために、レジスタ112が設けられている。プロセッサコア111により実行される演算命令は、レジスタ112やメモリ内部メモリ116又はメインメモリ部120のデータを演算対象オペランドとして実行される。演算結果は、システムバス160及びメモリコントローラ部130を介して、メインメモリ部120の処理結果格納領域123に格納される。最終結果は、必要に応じて、周辺入出力I/F部140を介して外部機器へ又は通信I/F部150を介して通信回線へ出力される。図2は、処理プログラムの構成例を模式的に示す図である。命令コードとして処理順序が記述されている処理プログラムは、図2に示したように、関数やサブルーチンモジュール例えば関数1~関数nに分割されており、これらを連携させて全体機能を実現する。各関数内で使用される変数は、レジスタ112又はメモリ内部メモリ116又はメインメモリ部120に配置され、演算命令のオペランドとして指定される。図2に示した例では、例えば関数1において、演算命令のオペランドとして指定される変数1~変数6は、レジスタレジスタ-1~レジスタ-5112に配置されることを示している。また、変数7及び変数8は、メモリ内部メモリ116又はメインメモリ部120に配置されることを示している。図3は、レジスタ112、内部メモリ116、及びメインメモリ部120でのアクセス速度の一例を模式的に示す図である。なお、ここでは、メインメモリ部120をDRAMDynamicRandomAccessMemoryとした場合の例を示す。図3に示したように、レジスタ112とメモリ内部メモリ116及びDRAMでは、アクセス速度が異なる。レジスタ112に対して、プロセッサCPU部110の外部に設けられるDRAMでは数十~数百倍のアクセス時間を要し、プロセッサCPU部110の内部メモリ116でも2~4倍のアクセス時間を要する。従って、関数内で使用される変数は可能な限りレジスタ112に配置した方が、より高速な処理が可能となる。しかしながら、使用できるレジスタ数には制限があるため、レジスタ112に配置しきれない変数については、メモリ内部メモリ116又はメインメモリ部120に配置されてしまう。なお、制限されるレジスタ数は、例えばプロセッサ毎に異なる。そこで、高速な動作が要求されるプログラムでは、目標性能を満足させるために、より使用頻度の高い変数や再利用タイミングが時間的に近い変数をレジスタに割り当てる等して処理の最適化を行い、処理の高速化を図っている。この場合、例えば、レジスタを使用して動作させるために命令コードの変換を行うことにより処理の高速化を図る技術がある以下技術例1という。また、例えば、アセンブラコードを読み込み、変数の存在区間の長さや変数の存在するループレベルの総和に基づいて変数の割付優先度を算出し、その結果に基づいて変数の配置先を変換することにより高速化を図る技術がある以下技術例2という。一方、変数の配置方法については、次のような課題がある。図4は、変数の配置方法についての課題の一例を示す図である。図4に示したように、変数の使用頻度や使用順は、関数内の何れの処理ルート処理ルートA~Cを通ったかにより異なる。これは、関数内では入力されるデータの特徴に応じた処理が行われるため、入力データが変化すると処理ルートが異なってしまうからである。従って、平均点なデータが入力される場合の処理ルート例えば処理ルートCで使用される変数をメインにレジスタに配置する等してレジスタ配置を最適化し、総合的に最適となるような変数の配置を行う必要がある。しかしながら、これでは、平均的でないデータが入力された場合の処理ルート171から読み出された命令コードが命令フェッチ部172において分別され、それが浮動小数点バイトコードである場合には、それがバイトコードアクセラレータ部173へ出力される。そして、そこでレジスタ間転送命令に変換され、それがセレクター174を介してデコード部DECc、DECf175へ出力される。技術例1では、このような動作により、処理の高速化を図っている。なお、デコード部175において、DECcは全ての命令をデコードし、DECfは浮動小数点命令を認識してデコードする。図6は、上記の技術例1の課題の一例を示す図である。技術例1では、上述のように、一部の命令コードに対して変換を行う方式である。そのため、図6に示したように、例えば、入力データAの場合は、浮動小数点演算が有りとなって配置先の変換が行われ、有効な方式となる。しかしながら、入力データが変化した入力データBの場合は、処理ルートが変更され浮動小数点演算が無しとなり、この場合は高速化の効果はない。このように、技術例1では、入力データによって浮動少数点演算の有無が固定的に決まるものであり、それを動的に変更することはできない。図7は、上記の技術例2における変数の配置動作の一例を示す図である。図7に示したように、技術例2では、プログラム変換装置において、次のような動作が行われる。まず、処理プログラムが読み込まれて解析され、変数の存在区間の長さや変数の存在するループレベルの総和が算出され、その算出結果に基づいて各変数の割付優先度が算出される。そして、その算出結果に基づいて変数の配置先が変換される。技術例2では、このような動作により、処理の高速化を図っている。図8は、上記の技術例2の課題の一例を示す図である。技術例2では、上述のように、処理プログラムアセンブラコードの解析が行われ、そのコード上での変数の存在区間の長さや変数の存在するループレベルの総和に基づいて配置が決定され、処理プログラムが実行される。そのため、図8に示したように、例えば、処理プログラムの中で最も多く使用されている変数が変数Xと判断され図8のA参照、変数Xの配置先がレジスタとされたとする。しかしながら、その後、入力データが変更され、その処理を行う実行ルートにおいて最も多く使用されている変数が、変数Xではなく変数Yになる場合がある。このように、入力データが変更され、処理プログラムの実行ルートが変更された場合に、技術例2では、使用される変数の存在区間やループ回数の変更に対応できない。図9は、上記の技術例1と技術例2とを組み合わせた場合の課題の一例を示す図である。図9に示したように、この場合には、処理プログラムが読み込まれて、その命令の種類や、変数の存在区間の長さや変数の存在するループレベルの総和に基づいて配置先の変換が行われる。しかしながら、この場合には、入力データに応じて変化する関数内の変数の使用頻度によってレジスタとメモリの割り振りを変更最適化することができない。そこで、上述した変数の配置方法に関する課題に鑑み、実施例1に係るレジスタ配置最適化装置を含むデータ処理装置は、以下のような構成を有する。図10は、本実施例に係るレジスタ配置最適化装置を含むデータ処理装置の一例を示す図である。なお、図10において、図1に示した要素と同一の要素については、同一の符号を付している。また、図10に示したデータ処理装置において、本実施例に係るレジスタ配置最適化装置は、命令変換ユニット117と変換マップテーブル118を含む。命令変換ユニット117は命令変換部の一例であり、変換マップテーブル118は変換テーブルの一例である。図10に示したデータ処理装置では、プロセッサCPU部110が、更に、命令変換ユニット117と変換マップテーブル118を含み、それらが命令キャッシュ113とシステムバスコントローラ115との間に設けられる。なお、変換マップテーブル118は、命令変換ユニット117の内部又は外部に設けることが可能であり、例えば、プロセッサCPU部110内の図示しない記憶部に記憶される。また、メインメモリ部120の処理プログラム格納領域121に格納される処理プログラム中の命令コードは、演算命令のオペランドが明示されていない演算命令のオペランドの配置先が指定されていない抽象化された擬似命令コードとなる。すなわち、擬似命令コードは、演算命令のオペランドがレジスタ112に配置されているのかメモリ内部メモリ116又はメインメモリ部120に配置されているのかが明示されていない。なお、このような擬似命令コードを含む処理プログラムは、予め生成されて、処理プログラム格納領域121に格納される。変換マップテーブル118は、詳しくは後述するように、処理プログラム内の各関数に定義されている各変数の配置先、平均使用頻度、及び過去の使用頻度等の情報を含む。命令変換ユニット117は、変換マップテーブル118に含まれる各変数の配置先の情報に基づいて、擬似命令コードを、プロセッサコア111が解釈可能な実行可能な命令コード以下通常の命令コードともいうに変換する。すなわち、演算命令のオペランドの配置先がレジスタ112であるのかメモリ内部メモリ116又はメインメモリ部120であるのかが明示されていない抽象化された擬似命令コードを、それが明示された通常の命令コードに変換する。そして、変換された命令コードを命令キャッシュ113にロードする。また、命令変換ユニット117は、詳しくは後述するように、変換マップテーブル118の更新等の処理も行う。図11は、擬似命令コードの変換例を示す図である。図11に示した例は、命令変換ユニット117が、変換マップテーブル118に含まれる各変数の配置先の情報に基づいて、擬似命令コードである加算命令ADDval0val1を、通常の命令コードである加算命令addr0r1又はaddr1に変換した例である。ここで、擬似命令コードである加算命令ADDval0val1は、変数1と変数2の加算命令を示している。このように、擬似命令コードは、演算命令のオペランドの配置先がレジスタ112であるのかメモリ内部メモリ116又はメインメモリ部120であるのかが明示されていない。一方、変換後の命令コードである加算命令addr0r1は、変数1がレジスタ0に配置され、変数2がレジスタ1に配置されている場合の変換例であり、レジスタ0に配置されている変数1とレジスタ1に配置されている変数2の加算命令を示している。なお、レジスタ0及びレジスタ1は、レジスタ112に含まれる領域である。また、変換後の命令コードである加算命令addr1は、変数1がメモリに配置され、変数2がレジスタ1に配置されている場合の変換例であり、メモリに配置されている変数1とレジスタ1に配置されている変数2の加算命令を示している。なお、メモリは、内部メモリ116又はメインメモリ部120に含まれる領域である。図12は、変換マップテーブル118の一例を示す図である。図12に示したように、変換マップテーブル118は、処理プログラム内の各関数に定義されている各変数の配置先、平均使用頻度、過去の使用頻度等の情報を含む。但し、図12では、過去の使用頻度の情報を省略して示している。変換マップテーブル118に含まれる情報は、処理プログラムの実行に伴って、次のようにして動的に更新変更される。まず、処理プログラム起動時において、各変数の配置先の情報は、例えば、処理プログラム中の各関数内での変数の定義順等によって優先度を設け、その優先度に応じてレジスタ112又はメモリ内部メモリ116又はメインメモリ部120に決定される。また、各変数の平均使用頻度及び過去の使用頻度の情報は0とされる。その後、処理プログラムの処理対象となるデータが入力され、処理プログラムの実行が開始されると、処理プログラム中の擬似命令コードは、命令変換ユニット117により変換されて命令キャッシュ113へロードされる。命令変換ユニット117による変換の際には、変換マップテーブル118が参照され、次のような変換オペランド変換ともいうが行われる。変換マップテーブル118において配置先がレジスタレジスタ-1~レジスタ-5112となっている変数は、命令コードのオペランドの配置先が該当するレジスタ112となるような命令列に変換される。一方、変換マップテーブル118において配置先がメモリ内部メモリ116又はメインメモリ部120となっている変数は、命令コードのオペランドの配置先が該当するメモリとなるような命令列に変換される。そして、このようにして変換された命令コードがプロセッサコア111に実行されて変数が使用されると、その変数毎に、変換マップテーブル118に含まれる過去の使用頻度の情報が更新されると共に、平均使用頻度の情報が更新される。例えば、図12に示した変換マップテーブル118において、関数1の変数2の平均使用頻度は50であることを示し、関数1に定義されている変数の中で平均使用頻度が最も高いことを示している。このような平均使用頻度の情報は、変数の配置先の変更に使用される。例えば、図12に示した変換マップテーブル118において、関数2の変数1は平均使用頻度が7であり、関数2の変数5は平均使用頻度が20であることを示している。この場合には、関数2において、メモリ内部メモリ116又はメインメモリ部120に配置されている変数5が、レジスタ112に配置されている変数1よりも平均使用頻度が高くなっている為、変換マップテーブル118において、変数の配置先の入れ替えが行われる。すなわち、変数5の配置先がレジスタ112となり、変数1の配置先がメモリ内部メモリ116又はメインメモリ部120となるように、変換マップテーブル118において、変数の配置先の入れ替えが行われる。このようにして変数の配置先の入れ替えが行われることにより、変数の配置先を動的に変更最適化することが可能となる。また、このようにして変数の配置先の入れ替えが行われた後の変換マップテーブル118に含まれる各変数の配置先の情報に基づいて命令変換ユニット117による変換が行われることにより、処理の高速化を図ることができる。なお、変換マップテーブル118において、プログラム起動時の各変数の配置先の情報は、例えば、それを予め内部メモリ116又はメインメモリ部120に格納しておき、プログラム起動時に読み出して変換マップテーブル118に格納するようにすることも可能である。この場合、プログラム起動時の各変数の配置先の情報は、例えば、処理プログラムの静的な解析結果に基づいて決定される。図13は、変換マップテーブル118に含まれる過去の使用頻度の情報の更新に係る動作の一例を示すフローチャートである。図13に示したように、図示しない命令キャッシュ113のコントローラによってリード要求命令コードのロード指示が行われるとS101、次のような動作が行われる。まず、このリード要求に応じて、プロセッサコア111が命令コードを実行するために必要な擬似命令コードがメインメモリ部120の処理プログラム格納領域121からリードされ、命令変換ユニット117へ転送されるS102。命令変換ユニット117では、変換マップテーブル118に含まれる各変数の配置先の情報に基づいて、オペランド変換により、転送された擬似命令コードが通常の命令コードに変換されるS103。また、変換された命令コードがプロセッサコア111により実行されて変数が使用されると、その変数についての過去の使用頻度がインクリメントされるように、変換マップテーブル118に含まれる過去の使用頻度の情報が更新されるS104。なお、変換マップテーブル118において、このようにしてインクリメントされた過去の使用頻度の情報は、詳しくは後述するように、平均使用頻度の情報を更新する際に使用される。図14は、処理プログラムの実行に伴って行われる変換マップテーブル118の更新手順の一例を説明する図である。処理プログラムの実行によって行われるデータ処理は、連続するデータ処理を含む場合がある。一般的に、連続するデータ処理では、一定の処理の区切りを1単位1処理ユニットとして、それを繰返し実行することで全体処理を実現する。例えば、動画像処理では1画面分の処理を1単位としてこれを繰り返し実行することで、物体認識処理や画像圧縮処理等といった画像処理を実現している。ここでは、そのような連続するデータ処理が行われる場合における変換マップテーブル118の更新手順の一例を説明する。図14に示したように、処理プログラムの実行中に行われる1処理ユニット毎の処理では、まず、再配置処理が行われるS201。この再配置処理では、詳しくは後述するように、変換マップテーブル118に含まれる各変数の平均使用頻度の情報に基づいて各変数の配置先が決定され、それを反映させるように、変換マップテーブル118に含まれる各変数の配置先の情報が更新変更される。次に、処理プログラムの1処理ユニットが実行されるS202。ここでは、上述のように、命令変換ユニット117によって変換マップテーブル118が参照され、擬似命令コードから通常の命令コードへの変換が行われ、変換された命令コードがプロセッサコア111によって実行される。次に、頻度平均更新処理が行われるS203。この頻度平均更新処理では、S202においてプロセッサコア111により命令コードが実行されたときに使用された変数の使用頻度の情報が、1処理ユニット分の過去の使用頻度の情報として、変換マップテーブル118に追加される。なお、変換マップテーブル118は、図14に示したように、過去の使用頻度の情報として、現在から過去所定数回N回分の各々の1処理ユニットの実行において使用された変数の使用頻度の情報を含むことができる。例えば、図14の過去データ1は、今回直近の1処理ユニットの実行において使用された変数の使用頻度の情報を示し、過去データNは、N-1処理ユニット前の処理ユニットの実行において使用された変数の使用頻度の情報を示す。このように、プロセッサコア111により命令コードが実行されたときに使用される変数に応じて、変換マップテーブル118に含まれる過去の使用頻度の情報が更新される。また、S203の頻度平均更新処理では、更に、変換マップテーブル118において、過去の使用頻度の情報に基づいて、各関数に定義されている各変数の使用頻度の平均値が求められ、平均使用頻度の情報が更新される。この場合、例えば、現在から過去M但し、M≦N回分の使用頻度の情報に基づいて、各関数に定義されている各変数の使用頻度の平均値が求められる。例えば、図14に示した変換マップテーブル118に含まれる関数2の変数3の平均使用頻度8網掛け部分参照の情報は、現在から過去6回分の使用頻度12、6、6、8、8、8の平均値から求められたものである。このようにして求められる平均使用頻度の情報を用いることにより、突発的一時的な使用頻度の変動による影響を軽減させることができる。図15は、上述の再配置処理S201の処理例を示すフローチャートである。図15に示した処理は、上述の再配置処理S201において、1処理ユニット内の各関数に対して行われる処理である。図15に示した処理において、Rmは、変数の再配置済レジスタを示す。Rn_maxは、関数内の変数を配置可能な最大レジスタ数を示す。VSiは、関数内の変数を平均使用頻度順に並べたときのi番目の変数を示す。図15に示したように、この処理では、まず、変換マップテーブル118に含まれる対象となる関数内に定義されている各変数の平均使用頻度の情報が参照されるS301。なお、本処理が、処理プログラムの起動後2回目以降の1処理ユニットで行われる場合には、S301で参照される情報は、前回の1処理ユニットにおけるS203で更新された平均使用頻度の情報となる。次に、対象となる関数内に定義されている各変数の平均使用頻度の情報に基づいて平均使用頻度が高い順に並べられた変数VSiの配置先が、順次レジスタ112に決定されるS302。そして、変数の配置先がレジスタ112に決定されたレジスタ数がRn_maxに達したらS303がYes、残りの変数VSiの配置先がメモリ内部メモリ116又はメインメモリ部120に決定されるS304。このような処理が、1処理ユニットに含まれる各関数に対して繰り返し行われる。これにより、変換マップテーブル118に含まれる各変数の平均使用頻度の情報に基づいて、平均使用頻度の高い変数を優先的にレジスタ112に再配置するように、変数の配置先を決定することができる。なお、静的なコンパイルにおいて、レジスタ割り付けを最適化する手法として、例えば、PolettoとSarkarのlinearscanallocationという手法が知られている以下手法1という。この手法1において、例えば、レジスタの使用期間に、上述の動的な情報変換マップテーブル118に含まれる情報を更に加味するようにすることで、より効率の良い変数の配置が可能となる以下手法2という。図16は、手法1による変数の配置例を示す図である。図16は、手法2による変数の配置例を示す図である。なお、図16に示した例は、変数Aのソースコード上の使用終了タイミングが全変数中で最長となっているものの、実際の実行時には判定文のfalse側の処理ルートで使用されておりtrue側の処理ルートでは使用されていない場合の例である。また、図16において、R0、R1は、レジスタに含まれる領域を示す。図16に示したように、動的な情報を加味しない手法1では、変数Aをレジスタからメモリへ追い出すspill動作が行われている。これに対し、図16に示したように、動的な情報を加味した手法2では、例えば、実行される処理ルートの予測が行われ、判定文で実行されない処理ルートが判断される。その結果、変数Aのspill動作は行われず、より最適な変数の配置とすることができる。次に、本実施例に係るレジスタ配置最適化装置を含むデータ処理装置の具体例として、本実施例に係るレジスタ配置最適化装置を画像符号化装置に適用した例を説明する。図17は、本実施例に係るレジスタ配置最適化装置を含む画像符号化装置の構成例を示す図である。なお、図17において、図10に示した要素と同一の要素については、同一の符号を付している。また、図17に示した画像符号化装置において、本実施例に係るレジスタ配置最適化装置は、図10に示したデータ処理装置の場合と同様に、命令変換ユニット117と変換マップテーブル118を含む。図17に示した画像符号化装置において、画像処理プロセッサ210の構成は、図10に示したプロセッサCPU部110と基本的に同じである。また、ビデオVideo入力I/FInterFace部220は、外部のカメラ等から入力されるデータの入力処理を行う。ビデオVideo出力I/FInterFace部230は、外部のディスプレイ等への出力処理を行う。その他の構成については、図10に示したデータ処理装置と基本的に同じである。続いて、図17に示した画像符号化装置の動作を、図18及び図19を用いて説明する。図18は、図17に示した画像符号化装置の処理の流れの概要を模式的に示す図である。図18に示したように、カメラ等からの入力画像データは、ビデオ入力I/F部220、システムバス160、及びメモリコントローラ部130を介して、メインメモリ部120の処理データ格納領域122に蓄積される図18の矢印A参照。蓄積された画像データは、処理画像単位に、メモリコントローラ部130、システムバス160、及びシステムバスコントローラ115を介してデータキャッシュ114に読み出される図18の矢印B参照。一方、メインメモリ部120の処理プログラム格納領域121に格納されている処理プログラム擬似命令コードを含むは、メモリコントローラ部130、システムバス160、及びシステムバスコントローラ115を介して命令変換ユニット117にロードされる図18の矢印C参照。命令変換ユニット117では、変換マップテーブル118が参照され図18の矢印D参照、その内容に基づいて擬似命令コードが通常の命令コードに変換されて命令キャッシュ113へ転送される図18の矢印E参照。転送された命令コードは、プロセッサコア111により読み出され図18の矢印F参照、その命令コードの実行が、例えばレジスタ112に配置されている変数が使用される等して行われる図18の矢印G参照。このようにして処理プログラムが実行されると、それにより出力データが作成される。そして、その出力データが、データキャッシュ114、システムバスコントローラ115、及びシステムバス160を経由した後、例えば、通信I/F部150又はビデオ出力I/F部230を介して出力される図18の矢印H参照。出力データは、例えば、画像圧縮データ等である。図19は、図17に示した画像符号化装置の動作シーケンスの一例を示す図である。図19に示したように、カメラ等からの入力画像データは、ビデオ入力I/F部220等を介して、メインメモリ部120の処理データ格納領域122に蓄積され、画像保存が行われるS401。次に、メインメモリ部120の処理プログラム格納領域121に格納されている処理プログラム擬似命令コードを含むが処理画像単位で起動しS402、命令変換ユニット117にロードされる。命令変換ユニット117では、変換マップテーブル118が参照されS403、処理プログラム内の各関数に定義されている各変数の配置先が決定されるS404。また、擬似命令コードが通常の命令コードに変換されるS405。変換された命令コードは命令キャッシュ113へ転送され、その後、プロセッサコア111により読み出されて、その命令コードの実行が行われるS406。一方、命令変換ユニット117では、プロセッサコア111により命令コードが実行されて変数が使用されると、その変数の使用頻度がインクリメントされるS407等して変換マップテーブル118に含まれる情報が更新される。そして、このようにして処理プログラムが実行され、それにより作成された出力データ画像データ等は、例えば、通信I/F部150又はビデオ出力I/F部230を介して、通信回線や外部のディスプレイ等に出力されるS408。以上のように、本実施例に係るレジスタ配置最適化装置によれば、プログラム内の関数に定義されている変数の使用頻度に基づいて、使用頻度の高い変数が優先的にレジスタに配置されるように変数の配置先を動的に決定することができる。従って、変数の配置先を動的に最適化することができ、処理の高速化を図ることができる。また、このような最適化を、例えば動作モードの指定等といったユーザの特別な操作無しに、行うことができる。また、プログラムの開発期間を、次のような理由により、短縮することもできる。図20は、従来の場合のプログラム開発期間と、本実施例に係るレジスタ配置最適化装置を採用した場合のプログラム開発期間との一例を示す図である。図20に示したように、例えば、従来の場合において、設計期間に1ヶ月、高速化のための修正期間チューニング作業に2ヶ月を要していたとする。この場合、本実施例に係るレジスタ配置最適化装置を採用した場合には、高速化のための修正期間が不要になるため、その分2ヶ月の開発期間の短縮を図ることができる。また、本実施例に係るレジスタ配置最適化装置を含む画像処理装置においては、例えば、複数フレームの画像が入力された場合に、その複数フレームの画像に対する画像処理に応じた高速化が可能になる。<実施例2>実施例2に係るレジスタ配置最適化装置は、入力データ特徴算出部を更に含むと共に、変換マップテーブル118として複数の変換マップテーブルを含むことが、実施例1に係るレジスタ配置最適化装置と異なる。なお、入力データ特徴算出部はテーブル選択部の一例である。本実施例に係るレジスタ配置最適化装置において、入力データ特徴算出部は、入力データの特徴を算出し、その算出結果に応じて、複数の変換マップテーブルの中から、対応する変換マップテーブルを選択する等の処理を行う。図21は、入力データ特徴算出部の処理例を示すフローチャートである。図21は、その基本的な処理例を示すフローチャートであり、図21は、その具体例を示すフローチャートである。図21に示したように、入力データ特徴算出部の基本的な処理は、次のようになる。まず、入力データが受信されるとS501、その入力データの差分が算出されるS502。次に、複数の変換マップテーブルから、その差分に応じた変換マップテーブルが選択されS503、その旨が命令変換ユニット117に通知されるS504。これにより、命令変換ユニット117では、入力データ特徴算出部により選択された変換マップテーブルを用いて擬似命令コードの変換が行われる。具体的には、例えば、図21に示したように、入力データ画像データが受信されるとS601、その入力データのフレーム内差分が算出されS602、そのフレーム内差分の値が所定値よりも大きいか否かが判定されるS603。ここで、その判定結果がYesの場合には、フレーム内処理用の変換マップテーブルが選択され、その旨が命令変換ユニット117に通知されるS604。これにより、命令変換ユニット117では、入力データ特徴算出部により選択されたフレーム内処理用の変換マップテーブルを用いて擬似命令コードの変換が行われる。一方、S603の判定結果がNoの場合には、変換マップテーブルを変更しない旨が命令変換ユニット117に通知されるS605。これにより、命令変換ユニット117では、デフォルトとして設定されている変換マップテーブルを用いて擬似命令コードの変換が行われる。或いは、例えば、図21に示したように、入力データ画像データが受信されるとS701、その入力データのフレーム間差分が算出されS702、そのフレーム間差分の値が所定値よりも大きいか否かが判定されるS703。ここで、その判定結果がYesの場合には、フレーム間処理用の変換マップテーブルが選択され、その旨が命令変換ユニット117に通知されるS704。これにより、命令変換ユニット117では、入力データ特徴算出部により選択されたフレーム間処理用の変換マップテーブルを用いて擬似命令コードの変換が行われる。一方、S703の判定結果がNoの場合には、変換マップテーブルを変更しない旨が命令変換ユニット117に通知されるS705。これにより、命令変換ユニット117では、デフォルトとして設定されている変換マップテーブルを用いて擬似命令コードの変換が行われる。このような図21又は図21に示した処理により、フレーム内差分又はフレーム間差分が大きい画像においては、変換マップテーブルが切り替えられ、その切り替えられた変換マップテーブルを用いて擬似命令コードの変換が行われる。このようにすることで、例えば、動画像におけるシーンチェンジ等において、画像データに揺らぎが発生したとしても変換マップテーブルに含まれる情報に影響を与えずに変数の配置先を切り替えることができる。次に、本実施例に係るレジスタ配置最適化装置を画像符号化装置に適用した例を説明する。図22は、本実施例に係るレジスタ配置最適化装置を含む画像符号化装置の構成例を示す図である。なお、図22において、図17に示した要素と同一の要素については、同一の符号を付している。また、図22に示した画像符号化装置において、本実施例に係るレジスタ配置最適化装置は、命令変換ユニット117と複数の変換マップテーブル118と入力画像特徴算出ユニット311を含む。図22に示した画像符号化装置において、画像処理プロセッサ210の構成は、入力画像特徴算出ユニット311を更に含むと共に、複数の変換マップテーブル118を含む以外は、図17に示した画像処理プロセッサ210と基本的に同じである。なお、入力画像特徴算出ユニット311は、上記の入力データ特徴算出部の一例である。その他の構成については、図17に示した画像符号化装置と基本的に同じである。続いて、図22に示した画像符号化装置の動作を、図23及び図24を用いて説明する。図23は、図22に示した画像符号化装置の処理の流れの概要を模式的に示す図である。図23に示したように、カメラ等からの入力画像データは、ビデオ入力I/F部220、システムバス160、及びメモリコントローラ部130を介して、メインメモリ部120の処理データ格納領域122に蓄積される図23の矢印A参照。蓄積された画像データは、処理画像単位に、メモリコントローラ部130、システムバス160、及びシステムバスコントローラ115を介してデータキャッシュ114に読み出される図23の矢印B参照。また、これと共に、それが入力画像特徴算出ユニット311に入力される図23の矢印C参照。入力画像特徴算出ユニット311では、入力された画像データのフレーム内差分又はフレーム間差分が算出される。そして、その算出結果に応じて、対応する変換マップテーブル118の選択又は変換マップテーブル118の変更無しの通知が、命令変換ユニット117に対して行われる図23の矢印D参照。一方、メインメモリ部120の処理プログラム格納領域121に格納されている処理プログラム擬似命令コードを含むは、メモリコントローラ部130、システムバス160、及びシステムバスコントローラ115を介して命令変換ユニット117にロードされる図23の矢印E参照。命令変換ユニット117では、入力画像特徴算出ユニット311からの通知に応じて、対応する変換マップテーブル118が選択、参照される図23の矢印F参照。そして、その変換マップテーブル118の内容に基づいて擬似命令コードが通常の命令コードに変換されて命令キャッシュ113へ転送される図23の矢印G参照。転送された命令コードは、プロセッサコア111により読み出され図23の矢印H参照、その命令コードの実行が、例えばレジスタ112に配置されている変数が使用される等して行われる図23の矢印I参照。このようにして処理プログラムが実行されると、それにより出力データが作成される。そして、その出力データが、データキャッシュ114、システムバスコントローラ115、及びシステムバス160を経由した後、例えば、通信I/F部150又はビデオ出力I/F部230を介して出力される図23の矢印J参照。出力データは、例えば、画像圧縮データ等である。図24は、図22に示した画像符号化装置の動作シーケンスの一例を示す図である。図24に示したように、カメラ等からの入力画像データは、ビデオ入力I/F部220等を介して、メインメモリ部120の処理データ格納領域122に蓄積され、画像保存が行われるS801。次に、メインメモリ部120の処理プログラム格納領域121に格納されている処理プログラム擬似命令コードを含むが処理画像単位で起動しS802、命令変換ユニット117にロードされる。入力画像特徴算出ユニット311では、入力画像データの差分フレーム内差分又はフレーム間差分が算出されるS803。また、その算出結果に応じて、対応する変換マップテーブル118の選択又は変換マップテーブル118の変更無しの通知が命令変換ユニット117に対して行われるS804。命令変換ユニット117では、入力画像特徴算出ユニット311からの通知に応じて、対応する変換マップテーブル118が選択、参照されS805、処理プログラム内の各関数に定義されている各変数の配置先が決定されるS806。また、擬似命令コードが通常の命令コードに変換されるS807。変換された命令コードは命令キャッシュ113へ転送され、その後、プロセッサコア111により読み出されて、その命令コードの実行が行われるS808。一方、命令変換ユニット117では、プロセッサコア111により命令コードが実行されて変数が使用されると、その変数の使用頻度がインクリメントされるS809等して変換マップテーブル118に含まれる情報が更新される。そして、このようにして処理プログラムが実行され、それにより作成された出力データ画像データ等は、例えば、通信I/F部150又はビデオ出力I/F部230を介して、通信回線や外部のディスプレイ等に出力されるS810。なお、入力画像特徴算出ユニット311が、選択した変換マップテーブル118を命令変換ユニット117に通知する方法としては、次のような方法がある。例えば、入力画像特徴算出ユニット311は、選択した変換マップテーブル118に対応する変換マップテーブル選択値の情報を命令変換ユニット117へ通知する。これを受けた命令変換ユニットは、その変換マップテーブル選択値の情報に基づいて、対応する変換マップテーブル118を選択する。なお、この場合、複数の変換マップテーブル118の各々には、対応する変換マップテーブル選択値の情報が含まれている。図25は、各々が変換マップテーブル選択値の情報を含む複数の変換マップテーブル118の例を示す図である。図25に示したように、複数の変換マップテーブル118の各々は、対応する変換マップテーブル選択値の情報を含む。例えば、変換マップテーブル118aは、変換マップテーブル選択値が1である情報を含み、変換マップテーブル118bは、変換マップテーブル選択値が2である情報を含む。なお、図25に示した変換マップテーブル118a、118bでは、過去の使用頻度の情報を省略して示している。以上のように、本実施例に係るレジスタ配置最適化装置によれば、命令変換ユニット117が使用する参照、更新する変換マップテーブル118を、入力データの特徴に応じた変換マップテーブル118とすることができる。従って、例えば、入力画像のシーンに応じて、適応的に変換マップテーブル118が使用されるようになるので、画像処理の高速化を図ることができる。また、上述の実施例1に係るレジスタ配置最適化装置と同様に、プログラムの開発期間を短縮することもできる。また、本実施例に係るレジスタ配置最適化装置を含む画像処理装置においては、例えば、複数フレームの画像が入力された場合に、その複数フレームの画像の特徴に応じた高速化が可能になる。なお、上述の実施例1及び2に係るレジスタ配置最適化装置では、プロセッサコア111により命令コードが実行されたときに使用された変数に応じて、変換マップテーブル118に含まれる、変数の過去の使用頻度及び平均使用頻度の情報が更新されるものであった。これを、例えば、命令変換ユニット117により擬似命令コードが変換された際に使用された変数に応じて、行うようにすることも可能である。また、上述の実施例1及び2に係るレジスタ配置最適化装置は、例えば、次のようなコンピュータシステムによって実現することも可能である。図26は、そのコンピュータシステムの構成例を示す図である。図26に示したように、このコンピュータシステムは、CPU401、ROM402、RAM403、通信インタフェース404、記憶装置405、入出力装置406、可搬型記憶媒体の読取り装置407、及び、これらの全てが接続されたバス408を含む。なお、ROMはReadOnlyMemoryである。記憶装置305としてはハードディスク、磁気ディスクなど様々な形式の記憶装置を使用することができる。例えば、実施例1に係るレジスタ配置最適化装置を本コンピュータシステムにより実現する場合には、記憶装置405、またはROM402に、命令変換ユニット117等が行う動作処理のためのプログラム等が格納される。また、RAM403には、変換マップテーブル118等が格納される。そして、そのプログラムがCPU401によって実行されることにより、実施例1に係るレジスタ配置最適化装置が実現される。また、例えば、実施例2に係るレジスタ配置最適化装置を本コンピュータシステムにより実現する場合には、記憶装置405、またはROM402に、命令変換ユニット117及び入力データ特徴算出部等が行う動作処理のためのプログラム等が格納される。また、RAM403には、複数の変換マップテーブル118等が格納される。そして、そのプログラムがCPU401によって実行されることにより、実施例2に係るレジスタ配置最適化装置が実現される。このようなプログラムは、プログラム提供者409からネットワーク410、および通信インタフェース404を介して、例えば記憶装置405に格納されて、CPU401によって実行されることも可能である。また、市販され、流通している可搬型記憶媒体411に格納され、読取り装置407にセットされて、CPU401によって実行されることも可能である。可搬型記憶媒体411としてはCD-ROM、フレキシブルディスク、光ディスク、光磁気ディスク、DVDディスク、USBメモリなど様々な形式の記憶媒体を使用することができる。なお、本コンピュータシステムにおいて、通信インターフェース404、記憶装置405、入出力装置406、及び読み取り装置407は無くても良い。以上、実施例を説明したが、本発明は、上述した実施例に限定されることなく、本発明の要旨を逸脱しない範囲内で種々の改良変更が可能である。以上の実施の形態に関し、更に以下の付記を開示する。付記1命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化する方法であって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、ことを特徴とするレジスタ配置最適化方法。付記2前記変換テーブルに含まれる前記変数の使用頻度の情報は、変数の平均使用頻度及び過去の使用頻度の情報を含み、前記決定では、前記変換テーブルに含まれる前記変数の平均使用頻度の情報に基づいて、平均使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又は前記メモリに決定し、前記更新では、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の過去の使用頻度の情報を更新すると共に、前記変数の過去の使用頻度の情報に基づいて前記変換テーブルに含まれる前記変数の平均使用頻度の情報を更新する、ことを特徴とする付記1記載のレジスタ配置最適化方法。付記3前記変換テーブルは、複数の変換テーブルの中から、前記プロセッサが処理する入力データの特徴に応じて選択された変換テーブルである、ことを特徴とする付記1又は2記載のレジスタ配置最適化方法。付記4前記入力データは画像データであり、前記選択された変換テーブルは、前記画像データのフレーム内差分又はフレーム間差分に応じて選択された変換テーブルである、ことを特徴とする付記3記載のレジスタ配置最適化方法。付記5命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化するプログラムであって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルを参照し、前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、という処理をコンピュータに実行させるレジスタ配置最適化プログラム。付記6前記変換テーブルに含まれる前記変数の使用頻度の情報は、変数の平均使用頻度及び過去の使用頻度の情報を含み、前記決定では、前記変換テーブルに含まれる前記変数の平均使用頻度の情報に基づいて、平均使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又は前記メモリに決定し、前記更新では、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の過去の使用頻度の情報を更新すると共に、前記変数の過去の使用頻度の情報に基づいて前記変換テーブルに含まれる前記変数の平均使用頻度の情報を更新する、ことを特徴とする付記5記載のレジスタ配置最適化プログラム。付記7前記変換テーブルは、複数の変換テーブルの中から、前記プロセッサが処理する入力データの特徴に応じて選択された変換テーブルである、ことを特徴とする付記5又は6記載のレジスタ配置最適化プログラム。付記8前記入力データは画像データであり、前記選択された変換テーブルは、前記画像データのフレーム内差分又はフレーム間差分に応じて選択された変換テーブルである、ことを特徴とする付記7記載のレジスタ配置最適化プログラム。付記9命令コードを実行するプロセッサコアとレジスタとを含むプロセッサにおいて、前記レジスタに配置される変数を最適化する装置であって、プログラム内の関数に定義されている変数の配置先及び使用頻度の情報を含む変換テーブルと、前記変換テーブルに含まれる前記変数の配置先の情報に基づいて、演算命令のオペランドの配置先が指定されていない擬似命令コードを、前記プロセッサコアが実行可能な命令コードに変換する命令変換部と、を備え、前記命令変換部は、前記変換テーブルに含まれる前記変数の使用頻度の情報に基づいて、使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又はメモリに決定し、前記決定された変数の配置先を、前記変換テーブルに含まれる前記変数の配置先の情報に反映し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の使用頻度の情報を更新する、ことを特徴とするレジスタ配置最適化装置。付記10前記変換テーブルに含まれる前記変数の使用頻度の情報は、変数の平均使用頻度及び過去の使用頻度の情報を含み、前記命令変換部は、前記変換テーブルに含まれる前記変数の平均使用頻度の情報に基づいて、平均使用頻度の高い変数が優先的に前記レジスタに配置されるように、変数の配置先を前記レジスタ又は前記メモリに決定し、前記変換された命令コードを前記プロセッサコアが実行する際に使用される変数に応じて、前記変換テーブルに含まれる前記変数の過去の使用頻度の情報を更新すると共に、前記変数の過去の使用頻度の情報に基づいて前記変換テーブルに含まれる前記変数の平均使用頻度の情報を更新する、ことを特徴とする付記9記載のレジスタ配置最適化装置。付記11複数の変換テーブルの中から、前記プロセッサが処理する入力データの特徴に応じた変換テーブルを選択するテーブル選択部を更に備え、前記命令変換部が参照、更新する変換テーブルは、前記テーブル選択部により選択された変換テーブルである、ことを特徴とする付記9又は10記載のレジスタ配置最適化装置。付記12前記入力データは画像データであり、前記テーブル選択部は、前記複数の変換テーブルの中から、前記プロセッサが処理する画像データのフレーム内差分又はフレーム間差分に応じた変換テーブルを選択する、ことを特徴とする付記11記載のレジスタ配置最適化装置。