(57)【要約】  本技術は、動画像の各フレームの画像の変形処理に必要なメモリ容量を削減することができるようにする画像処理装置、画像処理方法、及び、プログラムに関する。入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、記憶部に書き込まれた第１のフレーム画像の画素データを所定の読み出し順で読み出すことにより、第１のフレーム画像を変形した第２のフレーム画像が生成される。画素データの書き込みと画素データの読み出しが並行して行われ、第１のフレーム画像を２行×２列以上のブロックに分割し、各ブロックが各記憶領域に１つずつ書き込まれるとともに、直前に画素データを読み出すことにより空いた記憶領域に次の書き込み対象となるブロックが書き込まれる。本技術は、例えば、画像処理装置に適用できる。
2016047472.tif 000002
【特許請求の範囲】
【請求項１】
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込む書き込み制御部と、
前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する読み出し制御部と
を備え、
前記書き込み制御部と前記読み出し制御部は、前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記書き込み制御部は、前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記読み出し制御部により前記画素データが読み出されることにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
画像処理装置。
【請求項２】
前記書き込み順は、前記第１のフレーム画像の所定の第１の方向に沿った順序であり、
前記読み出し順は、前記第２のフレーム画像の前記第１の方向と同じ第２の方向に沿った順序である
請求項１に記載の画像処理装置。
【請求項３】
前記書き込み制御部は、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込み、
前記読み出し制御部は、前記第２のフレーム画像において前記第２の方向に並ぶ２以上のＭ個の前記ブロック単位で前記画素データを前記記憶部から読み出し、
前記書き込み制御部は、前記読み出し制御部により前記画素データが読み出されることによりＮ個以上の前記記憶領域が空く毎に、空いた前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
請求項２に記載の画像処理装置。
【請求項４】
Ｎ＝Ｍであり、
前記書き込み制御部は、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
請求項３に記載の画像処理装置。
【請求項５】
前記書き込み制御部が、ｉフレーム目（ｉ≧２）の前記第１のフレーム画像のｊ−１番目（ｊ≧２）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部が、ｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出し、
前記書き込み制御部は、前記読み出し制御部によりｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込む
請求項４に記載の画像処理装置。
【請求項６】
前記書き込み制御部は、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込み、
前記読み出し制御部は、直前に前記書き込み制御部により前記記憶部に書き込まれたＮ個の前記ブロックを読み出し、
前記書き込み制御部は、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
請求項２に記載の画像処理装置。
【請求項７】
前記書き込み制御部が、ｉフレーム目（ｉ≧１）の前記第１のフレーム画像のｊ−１番目（ｊ≧３）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部が、ｉフレーム目の前記第２のフレーム画像のｊ−２番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出し、
前記書き込み制御部は、前記読み出し制御部によりｉフレーム目の前記第２のフレーム画像のｊ−２番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込む
請求項６に記載の画像処理装置。
【請求項８】
前記第１のフレーム画像の変形は、回転、反転、拡大、及び、縮小のうちの少なくとも１つである
請求項１に記載の画像処理装置。
【請求項９】
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する画像処理装置が、
前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
画像処理方法。
【請求項１０】
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成するコンピュータに、
前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、画像処理装置、画像処理方法、及び、プログラムに関し、特に、動画像の各フレームの画像の変形を行う場合に用いて好適な画像処理装置、画像処理方法、及び、プログラムに関する。
【背景技術】
【０００２】
従来、動画像の各フレームの画像（以下、フレーム画像と称する）の回転処理の高速化や処理コストの削減が検討されている（例えば、特許文献１、２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−２４２２１２号公報
【特許文献２】特開２００５−１０２１６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動画像の各フレーム画像を回転する場合、例えば、１フレーム分のフレーム画像を全てメモリに書き込み、書き込み順と異なる順序で画素データを読み出すことにより、各フレーム画像の回転が行われる。また、回転処理を高速化する場合、書き込み処理と読み出し処理が並行して実行される。【０００５】
一方、回転処理の実行時に書き込み処理と読み出し処理を並行して実行する場合、読み出し対象となるフレーム画像、及び、書き込み対象となるフレーム画像の２フレーム分のフレーム画像を記憶するだけのメモリ容量が最低限必要になる。そのため、回転処理を行うＬＳＩ等のチップ上に大容量のメモリを設けたり、外部メモリを接続したりする必要が生じ、コストアップにつながっていた。【０００６】
そこで、本技術は、動画像の各フレームの画像の回転等の変形処理に必要なメモリ容量を削減できるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の画像処理装置は、入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込む書き込み制御部と、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する読み出し制御部とを備え、前記書き込み制御部と前記読み出し制御部は、前記画素データの書き込みと前記画素データの読み出しを並行して行い、前記書き込み制御部は、前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記読み出し制御部により前記画素データが読み出されることにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む。【０００８】
前記書き込み順を、前記第１のフレーム画像の所定の第１の方向に沿った順序とし、前記読み出し順を、前記第２のフレーム画像の前記第１の方向と同じ第２の方向に沿った順序とすることができる。【０００９】
前記書き込み制御部には、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込ませ、前記読み出し制御部には、前記第２のフレーム画像において前記第２の方向に並ぶ２以上のＭ個の前記ブロック単位で前記画素データを前記記憶部から読み出させ、前記書き込み制御部には、前記読み出し制御部により前記画素データが読み出されることによりＮ個以上の前記記憶領域が空く毎に、空いた前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込ませることができる。【００１０】
Ｎ＝Ｍとし、前記書き込み制御部には、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込ませることができる。【００１１】
前記書き込み制御部が、ｉフレーム目（ｉ≧２）の前記第１のフレーム画像のｊ−１番目（ｊ≧２）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部に、ｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出させ、前記書き込み制御部には、前記読み出し制御部によりｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込ませることができる。【００１２】
前記書き込み制御部には、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込ませ、前記読み出し制御部には、直前に前記書き込み制御部により前記記憶部に書き込まれたＮ個の前記ブロックを読み出させ、前記書き込み制御部には、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込ませることができる。【００１３】
前記書き込み制御部が、ｉフレーム目（ｉ≧１）の前記第１のフレーム画像のｊ−１番目（ｊ≧３）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部には、ｉフレーム目の前記第２のフレーム画像のｊ−２番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出させ、前記書き込み制御部には、前記読み出し制御部によりｉフレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込ませることができる。【００１４】
前記第１のフレーム画像の変形を、回転、反転、拡大、及び、縮小のうちの少なくとも１つとすることができる。【００１５】
本技術の一側面の画像処理方法は、入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する画像処理装置が、前記画素データの書き込みと前記画素データの読み出しを並行して行い、前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む。【００１６】
本技術の一側面のプログラムは、入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成するコンピュータに、前記画素データの書き込みと前記画素データの読み出しを並行して行い、前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む処理を実行させる。【００１７】
本技術の一側面においては、前記画素データの書き込みと前記画素データの読み出しが並行して行われ、前記第１のフレーム画像が２行×２列以上のブロックに分割され、前記ブロックが各前記記憶領域に１つずつ書き込まれるとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックが書き込まれる。
【発明の効果】
【００１８】
本技術の一側面によれば、動画像の各フレームの画像の変形処理に必要なメモリ容量を削減することができる。【００１９】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００２０】
【図１】本技術を適用した画像処理装置の一実施の形態を示すブロック図である。
【図２】フレーム画像の分割方法の例を示す図である。
【図３】タグレジスタの構成例を示す図である。
【図４】画像回転処理を説明するためのフローチャートである。
【図５】入力フレーム画像の例を示す図である。
【図６】出力フレーム画像の例を示す図である。
【図７】書き込み処理の詳細を説明するためのフローチャートである。
【図８】プライオリティエンコーダの入出力特性の例を示す表である。
【図９】入力フレーム画像の画素データの書き込み順の例を示す図である。
【図１０】ブロック内の画素データの書き込み順の例を示す図である。
【図１１】タグレジスタの値の例を示す図である。
【図１２】読み出し、書き込み処理の詳細を説明するためのフローチャートである。
【図１３】出力フレーム画像の画素データの読み出し順の例を示す図である。
【図１４】出力フレーム画像におけるブロックの配置の例を示す図である。
【図１５】ブロック内の画素データの読み出し順の例を示す図である。
【図１６】タグレジスタの値の例を示す図である。
【図１７】タグレジスタの値の例を示す図である。
【図１８】読み出し処理の詳細を説明するためのフローチャートである。
【図１９】画像拡大／縮小処理を説明するためのフローチャートである。
【図２０】画像拡大／縮小処理を説明するためのフローチャートである。
【図２１】タグレジスタの値の例を示す図である。
【図２２】フレーム画像の拡大時の画素データの読み出し順の例を示す図である。
【図２３】フレーム画像の縮小時の画素データの読み出し順の例を示す図である。
【図２４】タグレジスタの値の例を示す図である。
【図２５】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、本技術を実施するための形態（以下、実施の形態という）について説明する。なお、説明は以下の順序で行う。
１．実施の形態
２．変形例
【００２２】
＜１．実施の形態＞
｛画像処理装置１の構成例｝
図１は、本技術を適用した画像処理装置の一実施の形態である画像処理装置１の構成例を示している。
【００２３】
画像処理装置１は、外部から入力される動画像（以下、入力動画像と称する）の各フレーム画像の変形を行う。そして、画像処理装置１は、変形後の各フレーム画像からなる動画像（以下、出力動画像と称する）を出力する。画像処理装置１が行うフレーム画像の変形には、例えば、フレーム画像の回転、反転、拡大、縮小等が含まれる。
【００２４】
なお、以下、入力動画像のフレーム画像と出力動画像のフレーム画像を区別する場合、前者を入力フレーム画像と称し、後者を出力フレーム画像と称する。
【００２５】
画像処理装置１は、書き込み制御部１１、読み出し制御部１２、タグ制御部１３、タグレジスタ１４、及び、ＲＡＭ１５−１乃至１５−７２を含むように構成される。書き込み制御部１１、読み出し制御部１２、及び、ＲＡＭ１５−１乃至１５−７２は、バス１６を介して相互に接続されている。
【００２６】
なお、以下、ＲＡＭ１５−１乃至１５−７２を個々に区別する必要がない場合、単にＲＡＭ１５と称する。
【００２７】
書き込み制御部１１は、入力動画像の各入力フレーム画像のＲＡＭ１５への書き込みを制御する。より具体的には、書き込み制御部１１は、各入力フレーム画像を所定の大きさのブロックに分割し、ブロック単位で各ＲＡＭ１５に書き込む。すなわち、書き込み制御部１１は、各入力フレーム画像の各ブロックを各ＲＡＭ１５に１つずつ書き込むように制御する。
【００２８】
読み出し制御部１２は、出力動画像の各出力フレーム画像のＲＡＭ１５からの読み出しを制御する。また、読み出し制御部１２は、各ＲＡＭ１５からの各ブロックの画素データの読み出し順等を制御することにより、フレーム画像の変形を行う。そして、読み出し制御部１２は、変形したフレーム画像からなる出力動画像を出力する。
【００２９】
タグ制御部１３は、書き込み制御部１１によるフレーム画像の書き込み、及び、読み出し制御部１２によるフレーム画像の読み出しに連動して、タグレジスタ１４の更新を行う。また、タグ制御部１３は、タグレジスタ１４の内容を書き込み制御部１１及び読み出し制御部１２に通知する。
【００３０】
タグレジスタ１４は、各ＲＡＭ１５に対して１つずつ設けられ、図２を参照して後述するように、各ＲＡＭ１５の状態を表す。
【００３１】
ＲＡＭ１５−１乃至１５−７２には、上述したように各入力フレーム画像のブロックが書き込まれる記憶領域である。
【００３２】
なお、ＲＡＭ１５−１乃至１５−７２は、１つ又は複数のＲＡＭの領域を複数の小領域に分割することにより実現してもよいし、或いは、それぞれ物理的に異なるＲＡＭにより実現するようにしてもよい。
【００３３】
なお、以下、ＲＡＭ１５−１乃至１５−７２に、それぞれ１から７２の識別番号が割り当てられるものとする。例えば、ＲＡＭ１５−１には、番号１が割り当てられ、ＲＡＭ１５−７２には、番号７２が割り当てられる。
【００３４】
｛フレーム画像の分割方法の例｝
図２は、フレーム画像の分割方法の例が示されている。このフレーム画像においては、縦５４４行×横９６０列の画素が並んでいる。そして、フレーム画像が、縦８行×横８列の６４個の同じ大きさの矩形のブロックに分割されている。
【００３５】
なお、以下、図２に示されるようにフレーム画像を分割した場合の処理を具体例として挙げて説明する。また、左上隅のブロックに１番のブロック番号が割り当てられ、以下、左から右方向、及び、上から下方向の順に各ブロックにブロック番号が割り当てられるものとする。さらに、以下、各行のブロックのうち左端のブロックを各行の先頭のブロックとし、右端のブロックを各行の末尾のブロックとする。例えば、図２のフレーム画像の１行目において、左端のブロック１が先頭のブロックとなり、右端のブロック８が末尾のブロックとなる。
【００３６】
｛タグレジスタ１４の構成例｝
図３は、タグレジスタ１４の構成例を示している。タグレジスタ１４は、１０ビットのレジスタであり、上述したようにＲＡＭ１５毎に設けられる。
【００３７】
タグレジスタ１４の０から５ビット目までには、対象となるＲＡＭ１５に書き込まれている入力フレーム画像のブロックのブロック番号が設定される。
【００３８】
タグレジスタ１４の６から７ビット目には、１又は２のフレーム識別フラグが設定される。各ＲＡＭ１５には、連続する２つの入力フレーム画像のブロックが同時期に書き込まれるため、このフレーム識別フラグにより、各ブロックが属する入力フレーム画像が識別される。
【００３９】
タグレジスタ１４の８ビット目には、対応するＲＡＭ１５が書き込み可能であるか否かを示すフラグである書き込みレディが設定される。書き込みレディは、例えば、対応するＲＡＭ１５が書き込み不可である場合、０に設定され、対応するＲＡＭ１５が書き込み可能である場合、１に設定される。
【００４０】
タグレジスタ１４の９ビット目には、対応するＲＡＭ１５が読み出し可能であるか否かを示すフラグである読み出しレディが設定される。読み出しレディは、例えば、対応するＲＡＭ１５が読み出し不可である場合、０に設定され、対応するＲＡＭ１５が読み出し可能である場合、１に設定される。
【００４１】
｛画像回転処理｝
次に、図４のフローチャートを参照して、画像処理装置１により実行される画像回転処理について説明する。この処理では、入力動画像の各フレーム画像が右方向に９０度回転して出力される。例えば、図５に示されるフレーム画像が、図６に示されるように右方向に９０度回転して出力される。
【００４２】
ステップＳ１において、書き込み制御部１１及び読み出し制御部１２は、変数ｉに１を代入する。
【００４３】
ステップＳ２において、書き込み制御部１１は、書き込み処理を実行する。ここで、図７のフローチャートを参照して、書き込み処理の詳細について説明する。
【００４４】
ステップＳ５１において、書き込み制御部１１は、変数ｊに１を代入する。
【００４５】
ステップＳ５２において、書き込み制御部１１は、１フレーム目の入力フレーム画像のｊ行目のブロックの書き込みを行う。いまの場合、変数ｊの値が１に設定されているので、入力フレーム画像の１行目のブロック１乃至８がＲＡＭ１５に書き込まれる。
【００４６】
具体的には、書き込み制御部１１は、まず１フレーム目の入力フレーム画像の１行目の先頭のブロック１の書き込み位置を決定する。ここで、書き込み制御部１１は、図８に示される入出力特性を有する７２ビットのプライオリティエンコーダを備えている。なお、図８の入出力特性表のうちｘで示される欄は、０でも１でも構わないことを示している。
【００４７】
このプライオリティエンコーダは、７２ビットのデータが入力され、入力データの値が１のビットのうち最も下位のビットの位置を示すデータを出力する。例えば、プライオリティエンコーダは、最も下位の０ビット目が１に設定されたデータが入力された場合、１ビット目から７２ビット目までの値に関わらず、０ビット目のみが１に設定されたデータを出力する。また、例えば、プライオリティエンコーダは、最も下位の０ビット目が０に設定され、１ビット目が１に設定されたデータが入力された場合、２ビット目から７１ビット目までの値に関わらず、１ビット目のみが１に設定されたデータを出力する。
【００４８】
例えば、書き込み制御部１１は、タグ制御部１３を介して、各ＲＡＭ１５のタグレジスタ１４の書き込みレディの値を読み出す。そして、書き込み制御部１１は、各ＲＡＭ１５のタグレジスタ１４の書き込みレディの値からなる７２ビットのデータをプライオリティエンコーダに入力する。
【００４９】
この入力データにおいては、例えば、各ＲＡＭ１５の書き込みレディの値が、番号の若いＲＡＭ１５から順に下位ビットから上位ビットの方向に並べられる。例えば、ＲＡＭ１５−１の書き込みレディの値が入力データの０ビット目に設定され、ＲＡＭ１５−２の書き込みレディの値が入力データの１ビット目に設定され、ＲＡＭ１５−７２の書き込みレディの値が入力データの７１ビット目に設定される。
【００５０】
そして、書き込み制御部１１は、プライオリティエンコーダから出力されたデータにおいて値が１に設定されているビットに対応するＲＡＭ１５を、ブロック１の書き込み位置に決定する。これにより、書き込み可能なＲＡＭ１５のうち最も若い番号のＲＡＭ１５が、ブロック１の書き込み位置に決定される。いまの場合、いずれのＲＡＭ１５にもブロックが書き込まれていないので、ＲＡＭ１５−１がブロック１の書き込み位置に決定される。
【００５１】
次に、書き込み制御部１１は、ブロック１の画素データをＲＡＭ１５−１に書き込む。ここで、図９に示されるように、入力フレーム画像の各画素データは、いちばん上の行から順に左から右方向に向かうラスタ順にスキャンされ、ＲＡＭ１５に書き込まれる。そこで、書き込み制御部１１は、まずブロック１の１行目の画素データをＲＡＭ１５−１に書き込む。
【００５２】
次に、書き込み制御部１１は、ブロック１の場合と同様の方法により、ブロック２の書き込み位置をＲＡＭ１５−２に決定する。そして、書き込み制御部１１は、ブロック２の１行目の画素データをＲＡＭ１５−２に書き込む。
【００５３】
以下、同様にして、書き込み制御部１１は、ブロック３乃至８の書き込み位置をＲＡＭ１５−３乃至１５−８に決定し、ブロック３乃至８の１行目の画素データをＲＡＭ１５−３乃至１５−８に書き込む。
【００５４】
次に、書き込み制御部１１は、ブロック１乃至８の２行目の画素データをＲＡＭ１５−１乃至１５−８に書き込む。
【００５５】
以下同様にして、書き込み制御部１１は、ブロック１乃至８の３行目から６８行目までの画素データをＲＡＭ１５−１乃至１５−８に書き込む。
【００５６】
これにより、図１０に示されるように、ブロック１乃至８の画素データは、ラスタ順にＲＡＭ１５−１乃至１５−８にそれぞれ個別に書き込まれる。なお、１つのブロックのサイズは、縦６８行×横１２０列となる。
【００５７】
そして、書き込み制御部１１は、１フレーム目の入力フレーム画像のブロック１乃至８の書き込み完了をタグ制御部１３に通知する。タグ制御部１３は、ブロック１乃至８が書き込まれたＲＡＭ１５−１乃至１５−８のタグレジスタ１４の値を更新する。
【００５８】
図７に戻り、ステップＳ５３において、書き込み制御部１１は、変数ｊの値を１つインクリメントする。
【００５９】
ステップＳ５４において、書き込み制御部１１は、変数ｊが定数Ｎより大きいか否かを判定する。定数Ｎは、入力フレーム画像におけるブロックの行数であり、この例では、８に設定される。そして、変数ｊが定数Ｎ以下であると判定された場合、すなわち、１フレーム目の入力フレーム画像の全ての行のブロックの書き込みがまだ終了していない場合、処理はステップＳ５２に戻る。
【００６０】
その後、ステップＳ５４において、変数ｊが定数Ｎより大きいと判定されるまで、ステップＳ５２乃至Ｓ５４の処理が繰り返し実行される。これにより、１フレーム目の入力フレーム画像のブロックが、行方向に並ぶ８個単位でＲＡＭ１５−１乃至１５−６４に書き込まれる。また、ブロック１乃至６４が書き込まれたＲＡＭ１５−１乃至１５−６４のタグレジスタ１４の値が更新される。
【００６１】
図１１は、１フレーム目の入力フレーム画像の書き込み終了後の各ＲＡＭ１５のタグレジスタ１４の値の例が示されている。なお、この例においては、読み出しレディの値は示されていない。
【００６２】
例えば、ブロックの書き込みが行われたＲＡＭ１５−１乃至１５−６４のタグレジスタ１４のブロック番号は、１乃至６４に設定されている。書き込みレディは、書き込み不可を示す０に設定されている。フレーム識別フラグは、１に設定されている。
【００６３】
一方、ブロックの書き込みが行われていないＲＡＭ１５−６４乃至１５−７２のタグレジスタ１４のブロック番号は、初期値（例えば、０）に設定されている。書き込みレディは、書き込み可能を示す１に設定されている。フレーム識別フラグは、初期値（例えば、０）に設定されている。
【００６４】
一方、ステップＳ５４において、変数ｊが定数Ｎより大きいと判定された場合、すなわち、１フレーム目の入力フレーム画像の全ての行のブロックの書き込みが終了した場合、書き込み処理は終了する。
【００６５】
図４に戻り、ステップＳ３において、書き込み制御部１１は、次の入力フレーム画像があるか否かを判定する。まだ未処理の入力フレーム画像がある場合、次の入力フレーム画像があると判定され、処理はステップＳ４に進む。
【００６６】
ステップＳ４において、書き込み制御部１１及び読み出し制御部１２は、変数ｉの値を１つインクリメントする。
【００６７】
ステップＳ５において、画像処理装置１は、読み出し、書き込み処理を実行する。ここで、図１２のフローチャートを参照して、読み出し、書き込み処理の詳細について説明する。
【００６８】
ステップＳ１０１において、書き込み制御部１１及び読み出し制御部１２は、変数ｊに１を代入する。
【００６９】
ステップＳ１０２において、書き込み制御部１１は、図７のステップＳ５２と同様の処理により、ｉフレーム目の入力フレーム画像のｊ行目のブロックの書き込みを行う。例えば、最初のステップＳ１０２の処理では、２フレーム目の入力フレーム画像の１行目のブロック１乃至８が、ＲＡＭ１５−６５乃至１５−７２に書き込まれる。また、ブロック１乃至８が書き込まれたＲＡＭ１５−６５乃至１５−７２のタグレジスタ１４の値が更新される。
【００７０】
ステップＳ１０３において、読み出し制御部１２は、ｉ−１フレーム目の出力フレーム画像のｊ行目のブロックの読み出しを行う。例えば、最初のステップＳ１０３の処理では、１フレーム目の出力フレーム画像の１行目のブロックの読み出しが行われる。ここで、１フレーム目の出力フレーム画像の１行目のブロックを読み出す場合の処理について具体的に説明する。
【００７１】
例えば、図９に示される入力フレーム画像が入力され、ＲＡＭ１５に書き込まれた場合、読み出し制御部１２は、図９のフレーム画像を右方向に９０度回転した図１３の出力フレーム画像の各画素データをラスタ順に読み出す。
【００７２】
図１４は、図１３の出力フレーム画像におけるブロックの配置を示している。この図に示されるように、出力フレーム画像の１行目のブロックは、左から順にブロック５７、４９、４１、３３、２５、１７、９、１となり、この順に各ブロックの画素データが読み出される。
【００７３】
まず、読み出し制御部１２は、タグ制御部１３にブロック５７の書き込み位置の検索を依頼する。タグ制御部１３は、タグレジスタ１４を用いて、ブロック５７の書き込み位置を検索し、検索結果を読み出し制御部１２に通知する。上述した図１１に示されるように、ブロック５７は、ＲＡＭ１５−５７に書き込まれており、タグ制御部１３は、ＲＡＭ１５−５７を検索結果として、読み出し制御部１２に通知する。
【００７４】
そして、読み出し制御部１２は、出力フレーム画像におけるブロック５７の１行目の画素データをＲＡＭ１５−５７から読み出す。ここで、図１３に示されるように、出力フレーム画像の画素データの読み出し順は、図９の入力フレーム画像の画素データの書き込み順と異なっている。従って、各ブロックの画素データの読み出し順も、書き込み順とは異なる。具体的には、図１５に示されるように、ブロックの左端の列から順に下から上方向に画素データが読み出される。
【００７５】
従って、まず、読み出し制御部１２は、ブロック５７の左端の１列目の画素データを下から上方向にＲＡＭ１５−５７から読み出し、外部に出力する。
【００７６】
次に、読み出し制御部１２は、ブロック５７の場合と同様の方法により、ブロック４９の書き込み位置（ＲＡＭ１５−４９）をタグ制御部１３から取得する。そして、読み出し制御部１２は、ブロック４９の左端の１列目の画素データを下から上方向にＲＡＭ１５−４９から読み出し、外部に出力する。
【００７７】
以下同様にして、読み出し制御部１２は、ブロック４１、３３、２５、１７、９、１の左端の１列目の画素データを下から上方向にＲＡＭ１５−４１、１５−３３、１５−２５、１５−１７、１５−９、１５−１から順番に読み出し、出力する。
【００７８】
次に、読み出し制御部１２は、ブロック５７、４９、４１、３３、２５、１７、９、１の２列目の画素データを下から上方向にＲＡＭ１５−５７、１５−４９、１５−４１、１５−３３、１５−２５、１５−１７、１５−９、１５−１から順番に読み出し、出力する。
【００７９】
以下同様にして、読み出し制御部１２は、ブロック５７、４９、４１、３３、２５、１７、９、１の３列目から１２０列目までの画素データを下から上方向にＲＡＭ１５−５７、１５−４９、１５−４１、１５−３３、１５−２５、１５−１７、１５−９、１５−１から順番に読み出し、出力する。
【００８０】
これにより、図１３に示される出力フレーム画像の１行目から１２０行目までの画素データがラスタ順に読み出される。
【００８１】
そして、読み出し制御部１２は、１フレーム目の出力フレーム画像のブロック５７、４９、４１、３３、２５、１７、９、１の読み出し完了をタグ制御部１３に通知する。タグ制御部１３は、ブロック５７、４９、４１、３３、２５、１７、９、１が読み出されたＲＡＭ１５−５７、１５−４９、１５−４１、１５−３３、１５−２５、１５−１７、１５−９、１５−１のタグレジスタ１４の値を更新する。
【００８２】
図１６は、２フレーム目の入力フレーム画像の１行目のブロックがＲＡＭ１５に書き込まれ、１フレーム目の出力フレーム画像の１行目のブロックがＲＡＭ１５から読み出された後の各ＲＡＭ１５のタグレジスタ１４の値の例が示されている。なお、この例においては、読み出しレディの値は示されていない。
【００８３】
図１６を図１１と比較すると、２フレーム目の入力フレーム画像の１行目のブロック１乃至８が書き込まれたＲＡＭ１５−６５乃至１５−７２のタグレジスタ１４の値が変更されている。具体的には、ブロック番号が、１乃至８に設定されている。書き込みレディが、書き込み不可を示す０に設定されている。フレーム識別フラグが、１フレーム目の入力フレーム画像のブロックと区別するために２に設定されている。
【００８４】
また、１フレーム目の出力フレーム画像の１行目のブロック５７、４９、４１、３３、２５、１７、９、１が読み出されたＲＡＭ１５−５７、１５−４９、１５−４１、１５−３３、１５−２５、１５−１７、１５−９、１５−１のタグレジスタ１４の値が変更されている。具体的には、ブロック番号及びフレーム識別フラグがリセットされ、初期値に設定されている。書き込みレディが、書き込み可能を示す１に設定されている。
【００８５】
なお、ステップＳ１０２とステップＳ１０３の処理は並行して実行される。ただし、必ずしも、ステップＳ１０２とステップＳ１０３の処理をきっちり同時に行う必要はなく、例えば、ステップＳ１０２の処理とステップＳ１０３の処理の開始タイミングや終了タイミングに時間差があってもよい。
【００８６】
ステップＳ１０２及びＳ１０３の処理が終了した後、処理はステップＳ１０４に進む。
【００８７】
ステップＳ１０４において、書き込み制御部１１及び読み出し制御部１２は、変数ｊの値を１つインクリメントする。
【００８８】
ステップＳ１０５において、図７のステップＳ５４の処理と同様に、変数ｊが定数Ｎより大きいか否かが判定される。変数ｊが定数Ｎ以下であると判定された場合、すなわち、２フレーム目の入力フレーム画像の全ての行のブロックの書き込み、及び、１フレーム目の出力フレーム画像の全ての行のブロックの読み出しがまだ終了していない場合、処理はステップＳ１０２及びＳ１０３に戻る。
【００８９】
その後、ステップＳ１０５において、変数ｊが定数Ｎより大きいと判定されるまで、ステップＳ１０２乃至Ｓ１０５の処理が繰り返し実行される。
【００９０】
例えば、２回目のステップＳ１０２及びＳ１０３の処理において、２フレーム目の入力フレーム画像の２行目のブロック９乃至１６がＲＡＭ１５に書き込まれるとともに、１フレーム目の出力フレーム画像の２行目のブロック５８、５０、４２、３４、２６、１８、１０、２がＲＡＭ１５から読み出される。このとき、２フレーム目の入力フレーム画像の２行目のブロック９乃至１６は、直前に（１つ前のステップＳ１０３の処理で）１フレーム目の出力フレーム画像の１行目のブロックが読み出されることにより空いたＲＡＭ１５−１、１５−９、１５−１７、１５−２５、１５−３３、１５−４１、１５−４９、１５−５７に書き込まれる。
【００９１】
図１７は、２フレーム目の入力フレーム画像の２行目のブロックがＲＡＭ１５に書き込まれ、１フレーム目の出力フレーム画像の２行目のブロックがＲＡＭ１５から読み出された後の各ＲＡＭ１５のタグレジスタ１４の値の例が示されている。なお、この例においては、読み出しレディの値は示されていない。
【００９２】
図１７を図１６と比較すると、２フレーム目の入力フレーム画像の２行目のブロック９乃至１６が書き込まれたＲＡＭ１５−１、１５−９、１５−１７、１５−２５、１５−３３、１５−４１、１５−４９、１５−５７のタグレジスタ１４の値が変更されている。具体的には、ブロック番号が、９乃至１６に設定されている。書き込みレディが、書き込み不可を示す０に設定されている。フレーム識別フラグが、１フレーム目の入力フレーム画像のブロックと区別するために２に設定されている。
【００９３】
また、１フレーム目の出力フレーム画像の２行目のブロック５８、５０、４２、３４、２６、１８、１０、２が読み出されたＲＡＭ１５−５８、１５−５０、１５−４２、１５−３４、１５−２６、１５−１８、１５−１０、１５−２のタグレジスタ１４の値が変更されている。具体的には、ブロック番号及びフレーム識別フラグがリセットされ、初期値に設定されている。書き込みレディが、書き込み可能を示す１に設定されている。
【００９４】
以後、同様にして、２フレーム目の入力フレーム画像の３乃至８行目のブロックがＲＡＭ１５に書き込まれるととともに、１フレーム目の出力フレーム画像の３乃至８行目のブロックが読み出される。なお、２フレーム目の入力フレーム画像のｊ行目のブロックは、直前に（１つ前のステップＳ１０３の処理で）１フレーム目の出力フレーム画像のｊ−１行目のブロックが読み出されることにより空いたＲＡＭ１５に書き込まれる。
【００９５】
一方、ステップＳ１０５において、変数ｊが定数Ｎより大きいと判定された場合、すなわち、２フレーム目の入力フレーム画像の全ての行のブロックの書き込み、及び、１フレーム目の出力フレーム画像の全ての行のブロックの読み出しが終了した場合、読み出し、書き込み処理は終了する。
【００９６】
図４に戻り、読み出し、書き込み処理の後、処理はステップＳ３に戻る。その後、ステップＳ３において、次の入力フレーム画像がないと判定されるまで、ステップＳ３乃至Ｓ５の処理が繰り返し実行される。
【００９７】
これにより、フレーム順に入力フレーム画像を、行方向に並ぶ８個のブロック単位でＲＡＭ１５に１つずつ書き込みながら、書き込み中の入力フレーム画像より１つ前のフレームの出力フレーム画像を、行方向に並ぶ８個のブロック単位でＲＡＭ１５から読み出す処理が繰り返し実行される。また、ｉフレーム目の入力フレーム画像のｊ行目のブロックは、直前にｉ−１フレーム目の出力フレーム画像のｊ−１行目のブロック（或いは、ｉ−２フレーム目の出力フレーム画像のＮ行目のブロック）が読み出されることにより空いたＲＡＭ１５に書き込まれる。
【００９８】
一方、ステップＳ３において、入力動画像の最後の入力フレーム画像がＲＡＭ１５に書き込まれた場合、次の入力フレーム画像がないと判定され、処理はステップＳ６に進む。
【００９９】
ステップＳ６において、読み出し制御部１２は、読み出し処理を行い、画像回転処理は終了する。ここで、図１８のフローチャートを参照して、読み出し処理の詳細について説明する。
【０１００】
ステップＳ１５１において、読み出し制御部１２は、変数ｊに１を代入する。
【０１０１】
ステップＳ１５２において、上述した図１２のステップＳ１０３と同様の処理により、最後の出力フレーム画像のｊ行目のブロックの読み出しが行われる。
【０１０２】
ステップＳ１５３において、読み出し制御部１２は、変数ｊの値を１つインクリメントする。
【０１０３】
ステップＳ１５４において、上述した図７のステップＳ５４の処理と同様に、変数ｊが定数Ｎより大きいか否かが判定される。変数ｊが定数Ｎ以下であると判定された場合、処理はステップＳ１５２に戻る。
【０１０４】
その後、ステップＳ１５４において、変数ｊが定数Ｎより大きいと判定されるまで、ステップＳ１５２乃至Ｓ１５４の処理が繰り返し実行される。これにより、最後の出力フレーム画像の各行のブロックがＲＡＭ１５から読み出され、出力される。
【０１０５】
一方、ステップＳ１５４において、変数ｊが定数Ｎより大きいと判定された場合、読み出し処理が終了し、画像回転処理は終了する。
【０１０６】
以上のようにして、動画像の各フレーム画像を回転する場合に使用するＲＡＭ１５の容量を削減することができる。具体的には、必要なメモリ容量を、１フレーム分のフレーム画像と１行分のブロックの合計７２ブロックの画素データを書き込めるだけの容量に削減することができる。また、フレーム画像の書き込み処理と読み出し処理が並行して実行されるので、使用するメモリ容量を削減しても、回転処理の処理速度の低下を抑制することができる。
【０１０７】
なお、画素データの読み出し順を変更することにより、フレーム画像を１８０度回転したり、左方向に９０度回転したりすることも可能である。同様に、フレーム画像の読み出し順を変更することにより、フレーム画像を左右反転したり、上下反転したりすることも可能である。これらのいずれの画像変形処理も、１フレーム分のフレーム画像と１行分のブロックの画素データを書き込めるだけのメモリ容量で実現することができる。ただし、フレーム画像の左右反転については、後述するように、さらにメモリ容量を削減することが可能である。
【０１０８】
｛画像拡大／縮小処理｝
次に、図１９及び図２０のフローチャートを参照して、画像処理装置１により実行される画像拡大／縮小処理について説明する。この処理では、入力動画像の各フレーム画像が拡大又は縮小されて出力される。
【０１０９】
なお、以下、メモリ容量の削減効果を強調するために、ＲＡＭ１５−１乃至１５−７２のうちＲＡＭ１５−１乃至１５−１６のみを使用する場合を例に挙げて説明する。
【０１１０】
ステップＳ２０１において、書き込み制御部１１及び読み出し制御部１２は、変数ｉ及び変数ｊに１を代入する。
【０１１１】
ステップＳ２０２において、上述した図７のステップＳ５２と同様の処理により、１フレーム目の入力フレーム画像の１行目のブロックの書き込みが行われる。
【０１１２】
図２１は、１フレーム目の入力フレーム画像の１行目のブロックの書き込み終了後の各ＲＡＭ１５のタグレジスタ１４の値の例が示されている。なお、この例においては、読み出しレディの値は示されていない。
【０１１３】
例えば、ブロックの書き込みが行われたＲＡＭ１５−１乃至１５−８のタグレジスタ１４のブロック番号は、１乃至８に設定されている。書き込みレディは、書き込み不可を示す０に設定されている。フレーム識別フラグは、１に設定されている。
【０１１４】
一方、ブロックの書き込みが行われていないＲＡＭ１５−９乃至１５−１６のタグレジスタ１４のブロック番号は、初期値に設定されている。書き込みレディは、書き込み可能を示す１に設定されている。フレーム識別フラグは、初期値に設定されている。
【０１１５】
ステップＳ２０３において、変数ｊの値が１つインクリメントされる。
【０１１６】
ステップＳ２０４において、上述した図７のステップＳ５４の処理と同様に、変数ｊが定数Ｎより大きいか否かが判定される。変数ｊが定数Ｎ以下であると判定された場合、処理はステップＳ２０５及びＳ２０６に進む。
【０１１７】
ステップＳ２０５において、上述した図１２のステップＳ１０２の処理と同様に、ｉフレーム目の入力フレーム画像のｊ行目のブロックの書き込みが行われる。例えば、最初のステップＳ２０５の処理では、１フレーム目の入力フレーム画像の２行目のブロック８乃至１６が、ＲＡＭ１５−９乃至１５−１６に書き込まれる。
【０１１８】
ステップＳ２０６において、読み出し制御部１２は、ｉフレーム目の出力フレーム画像のｊ−１行目のブロックの読み出しを行う。例えば、最初のステップＳ２０６の処理では、１フレーム目の出力フレーム画像の１行目のブロックが読み出される。
【０１１９】
ここで、図２２及び図２３を参照して、ステップＳ２０６の処理の詳細について説明する。なお、図２２及び図２３の四角の各マスは入力フレーム画像の画素を示し、各丸は出力フレーム画像の各画素データの読み出し位置（サンプル位置）を示している。
【０１２０】
フレーム画像の拡大時も縮小時も、各画素データは、基本的に書き込み時と同じ順序で読み出される。従って、１フレーム目の出力フレーム画像の１行目のブロックは、ブロック１，２，３，４，５，６，７，８の順に、ＲＡＭ１５−１、１５−２、１５−３、１５−４、１５−１５、１５−６、１５−７、１５−８から読み出される。また、ブロック１乃至８の１行目の画素データが左から右方向に読み出され、ブロック１乃至８の２行目の画素データが左から右方向に読み出され、以後同様に、ブロック１乃至８の３乃至６８行目の画素データが左方向から右方向に読み出される。
【０１２１】
ただし、図２２に示されるように、フレーム画像の拡大時において、特にフィルタ処理を行わない場合、拡大率に応じて画素数が増やされるため、複数回読み出される画素データが存在する。例えば、図２２の例では、１行目の２列目の画素データは、２回読み出され、２行目の２列目の画素データは、４回読み出される。
【０１２２】
一方、図２３に示されるように、フレーム画像の縮小時において、特にフィルタ処理を行わない場合、縮小率に応じて画素データの間引きが行われるため、読み出されない画素データが存在する。例えば、図２３の例において、３列目の画素データや３行目の画素データは読み出されない。
【０１２３】
なお、これらの画素データの読み出し位置の重複及び間引きは、画素データの書き込み位置には影響するものではない。
【０１２４】
図２４は、１フレーム目の入力フレーム画像の２行目のブロックがＲＡＭ１５に書き込まれ、１フレーム目の出力フレーム画像の１行目のブロックがＲＡＭ１５から読み出された後の各ＲＡＭ１５のタグレジスタ１４の値の例が示されている。なお、この例においては、読み出しレディの値は示されていない。
【０１２５】
図２４を図２１と比較すると、１フレーム目の入力フレーム画像の２行目のブロック９乃至１６が書き込まれたＲＡＭ１５−９乃至１５−１６のタグレジスタ１４の値が変更されている。具体的には、ブロック番号が、９乃至１６に設定されている。書き込みレディが、書き込み不可を示す０に設定されている。フレーム識別フラグが、１に設定されている。
【０１２６】
また、１フレーム目の出力フレーム画像の１行目のブロック１乃至８が読み出されたＲＡＭ１５−１乃至１５−８のタグレジスタ１４の値が変更されている。具体的には、ブロック番号及びフレーム識別フラグがリセットされ、初期値に設定されている。書き込みレディが、書き込み可能を示す１に設定されている。
【０１２７】
なお、ステップＳ２０５とステップＳ２０６の処理は並行して実行される。ただし、必ずしも、ステップＳ２０５とステップＳ２０６の処理をきっちり同時に行う必要はなく、例えば、ステップＳ２０５の処理とステップＳ２０６の処理の開始タイミングや終了タイミングに時間差があってもよい。
【０１２８】
ステップＳ２０５及びＳ２０６の処理が終了した後、処理はステップＳ２０３に戻る。
【０１２９】
その後、ステップＳ２０４において、変数ｊが定数Ｎより大きいと判定されるまで、ステップＳ２０３乃至Ｓ２０６の処理が繰り返し実行される。
【０１３０】
これにより、１フレーム目の入力フレーム画像のｊ行目のブロックをＲＡＭ１５に書き込みながら、１フレーム目の出力フレーム画像のｊ−１行目のブロックを読み出す処理が、１フレーム目の入力フレーム画像のＮ行目（８行目）のブロックを読み出し、１フレーム目の出力フレームのＮ−１行目（７行目）のブロックを読み出すまで繰り返される。また、１フレーム目の入力フレーム画像のｊ行目のブロックは、直前に（１つ前のステップＳ２０６の処理で）１フレーム目の出力フレーム画像のｊ−２行目のブロックが読み出されることにより空いたＲＡＭ１５に書き込まれる。
【０１３１】
一方、ステップＳ２０４において、変数ｊが定数Ｎより大きいと判定された場合、処理はステップＳ２０７に進む。
【０１３２】
ステップＳ２０７において、上述した図４のステップＳ３の処理と同様に、次の入力フレーム画像があるか否かが判定される。次の入力フレーム画像があると判定された場合、処理はステップＳ２０８に進む。
【０１３３】
ステップＳ２０８において、書き込み制御部１１及び読み出し制御部１２は、変数ｉの値を１つインクリメントするとともに、変数ｊに１を代入する。
【０１３４】
ステップＳ２０９において、上述した図７のステップＳ５２の処理と同様に、ｉフレーム目の入力フレーム画像の１行目のブロックの書き込みが行われる。例えば、最初のステップＳ２０９の処理により、２フレーム目の入力フレーム画像の１行目のブロック１乃至８がＲＡＭ１５に書き込まれる。
【０１３５】
ステップＳ２１０において、上述したステップＳ２０６の処理と同様に、ｉ−１フレーム目の出力フレーム画像のＮ行目のブロックの読み出しが行われる。例えば、最初のステップＳ２１０の処理により、１フレーム目の出力フレーム画像のＮ行目（８行目）のブロック５７乃至６４がＲＡＭ１５から読み出される。
【０１３６】
なお、ステップＳ２０９とステップＳ２１０の処理は並行して実行される。ただし、必ずしも、ステップＳ２０９とステップＳ２１０の処理をきっちり同時に行う必要はなく、例えば、ステップＳ２０９の処理とステップＳ２１０の処理の開始タイミングや終了タイミングに時間差があってもよい。
【０１３７】
ステップＳ２０９及びＳ２１０の処理が終了した後、処理はステップＳ２０３に戻る。
【０１３８】
その後、ステップＳ２０７において、次の入力フレーム画像がないと判定されるまで、ステップＳ２０３乃至Ｓ２１０の処理が繰り返し実行される。
【０１３９】
これにより、ｉフレーム目の入力フレーム画像のｊ行目のブロックをＲＡＭ１５に書き込みながら、ｉフレーム目の出力フレーム画像のｊ−１行目（又は、ｉ−１フレーム目の出力フレーム画像のＮ行目）のブロックの読み出しを行う処理が繰り返し実行される。従って、各入力フレーム画像のブロックを、行方向に並ぶ８個単位でＲＡＭ１５に書き込みながら、その直前に書き込まれた８個のブロックがＲＡＭ１５から読み出される。また、ｉフレーム目の入力フレーム画像のｊ行目のブロックは、直前にｉフレーム目の出力フレーム画像のｊ−２行目（或いは、ｉ−１フレーム目の出力フレーム画像のＮ行目）のブロックが読み出されることにより空いたＲＡＭ１５に書き込まれる。
【０１４０】
一方、ステップＳ２０７において、次の入力フレーム画像がないと判定された場合、処理はステップＳ２１１に進む。
【０１４１】
ステップＳ２１１において、上述したステップＳ２０６の処理と同様に、最後の出力フレーム画像のＮ行目のブロックの読み出しが行われる。
【０１４２】
その後、画像拡大／縮小処理は終了する。
【０１４３】
以上のようにして、動画像の各フレーム画像を拡大又は縮小する場合に使用するＲＡＭ１５の容量を削減することができる。具体的には、必要なメモリ容量を、フレーム画像の２行分の１６ブロックの画素データを書き込めるだけの容量に削減することができる。また、フレーム画像の書き込み処理と読み出し処理が並行して実行されるので、使用するメモリ容量を削減しても、拡大又は縮小処理の処理速度の低下を抑制することができる。
【０１４４】
なお、この図１９及び図２０の処理は、入力フレーム画像の画素データを書き込む方向と、出力フレーム画像の画素データを読み出す方向が一致する変形処理を行う場合に適用することができる。また、この図１９及び図２０の処理は、入力フレーム画像の画素データを書き込む方向と、出力フレーム画像の画素データを読み出す方向が逆になる変形処理を行う場合に適用することができる。例えば、前者は、上述したフレーム画像の拡大又は縮小処理が該当し、後者は、例えば、フレーム画像の左右反転処理が該当する。
【０１４５】
＜２．変形例＞
以下、上述した本技術の実施の形態の変形例について説明する。
【０１４６】
｛画素データの書き込み順及び読み出し順に関する変形例｝
以上の説明では、入力フレーム画像におけるラスタ順に画素データを書き込み、出力フレーム画像におけるラスタ順に画素データを読み出す例を示したが、本技術は、他の書き込み順及び読み出し順の場合にも適用することができる。例えば、画素データの書き込み順及び読み出し順を、フレーム画像の行の右から左方向に設定したり、フレーム画像の上から下方向に設定したりした場合にも本技術は適用することができる。
【０１４７】
また、入力フレーム画像における書き込み順と、出力フレーム画像における読み出し順の方向は、必ずしも一致していなくてもよい。例えば、入力フレーム画像においてラスタ順に画素データを書き込み、出力フレーム画像において列の上から下方向に画素データを読み出すようにすることも可能である。
【０１４８】
｛フレーム画像の分割方法に関する変形例｝
また、図２に示したフレーム画像の分割方法は、その一例であり、２行×２列以上であれば、任意の数のブロックに分割することが可能である。
【０１４９】
また、行方向のブロック数Ｎと列方向のブロック数Ｍとは、必ずしも一致させる必要はない。ただし、行方向のブロック数Ｎと列方向のブロック数Ｍとが異なる場合、書き込みを行うブロックの単位数と読み出しを行うブロックの単位数とが一致しない場合がある。例えば、上述したように、フレーム画像を右方向に９０度回転させる場合、Ｎ個のブロック単位で画素データが書き込まれ、Ｍ個のブロック単位で画素データが読み出されることになる。
【０１５０】
ここで、例えば、Ｎ＞Ｍである場合、出力フレーム画像における１行分のＭ個のブロックを読み出しただけでは、入力フレーム画像における１行分のＮ個のブロックを書き込むだけのＲＡＭ１５を空けることができない。そこで、例えば、Ｎ個以上のＲＡＭ１５が空くまで、出力フレーム画像における複数行のブロックを読み出し、Ｎ個以上のＲＡＭ１５が空く毎に、入力フレーム画像のＮ個のブロックをＲＡＭ１５に書き込むようにすればよい。
【０１５１】
｛本技術の適用範囲｝
本技術は、動画像のフレーム画像の変形処理を行う各種の装置やシステムに適用することができる。それらのシステムや装置は、単独の装置であってもよいし、あるいはＬＳＩ等の装置内の部品であってもよいし、複数の装置からなるシステムであってもよい。
【０１５２】
｛コンピュータの構成例｝
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０１５３】
図２５は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。
【０１５４】
コンピュータにおいて、CPU（Central Processing Unit）２０１，ROM（Read Only Memory）２０２，RAM（Random Access Memory）２０３は、バス２０４により相互に接続されている。
【０１５５】
バス２０４には、さらに、入出力インタフェース２０５が接続されている。入出力インタフェース２０５には、入力部２０６、出力部２０７、記憶部２０８、通信部２０９、及びドライブ２１０が接続されている。
【０１５６】
入力部２０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部２０７は、ディスプレイ、スピーカなどよりなる。記憶部２０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部２０９は、ネットワークインタフェースなどよりなる。ドライブ２１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア２１１を駆動する。
【０１５７】
以上のように構成されるコンピュータでは、CPU２０１が、例えば、記憶部２０８に記憶されているプログラムを、入出力インタフェース２０５及びバス２０４を介して、RAM２０３にロードして実行することにより、上述した一連の処理が行われる。
【０１５８】
コンピュータ（CPU２０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア２１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０１５９】
コンピュータでは、プログラムは、リムーバブルメディア２１１をドライブ２１０に装着することにより、入出力インタフェース２０５を介して、記憶部２０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２０９で受信し、記憶部２０８にインストールすることができる。その他、プログラムは、ROM２０２や記憶部２０８に、あらかじめインストールしておくことができる。
【０１６０】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０１６１】
また、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０１６２】
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１６３】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０１６４】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１６５】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０１６６】
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【０１６７】
さらに、例えば、本技術は以下のような構成も取ることができる。
【０１６８】
（１）
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込む書き込み制御部と、
前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する読み出し制御部と
を備え、
前記書き込み制御部と前記読み出し制御部は、前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記書き込み制御部は、前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記読み出し制御部により前記画素データが読み出されることにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
画像処理装置。
（２）
前記書き込み順は、前記第１のフレーム画像の所定の第１の方向に沿った順序であり、
前記読み出し順は、前記第２のフレーム画像の前記第１の方向と同じ第２の方向に沿った順序である
前記（１）に記載の画像処理装置。
（３）
前記書き込み制御部は、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込み、
前記読み出し制御部は、前記第２のフレーム画像において前記第２の方向に並ぶ２以上のＭ個の前記ブロック単位で前記画素データを前記記憶部から読み出し、
前記書き込み制御部は、前記読み出し制御部により前記画素データが読み出されることによりＮ個以上の前記記憶領域が空く毎に、空いた前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
前記（２）に記載の画像処理装置。
（４）
Ｎ＝Ｍであり、
前記書き込み制御部は、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
前記（３）に記載の画像処理装置。
（５）
前記書き込み制御部が、ｉフレーム目（ｉ≧２）の前記第１のフレーム画像のｊ−１番目（ｊ≧２）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部が、ｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出し、
前記書き込み制御部は、前記読み出し制御部によりｉ−１フレーム目の前記第２のフレーム画像のｊ−１番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込む
前記（４）に記載の画像処理装置。
（６）
前記書き込み制御部は、前記第１のフレーム画像において前記第１の方向に並ぶ２以上のＮ個の前記ブロック単位で前記記憶部に前記画素データを書き込み、
前記読み出し制御部は、直前に前記書き込み制御部により前記記憶部に書き込まれたＮ個の前記ブロックを読み出し、
前記書き込み制御部は、直前に前記読み出し制御部によりＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に次の書き込み対象となるＮ個の前記ブロックを書き込む
前記（２）に記載の画像処理装置。
（７）
前記書き込み制御部が、ｉフレーム目（ｉ≧１）の前記第１のフレーム画像のｊ−１番目（ｊ≧３）の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込むのと並行して、前記読み出し制御部が、ｉフレーム目の前記第２のフレーム画像のｊ−２番目の前記第２の方向のラインに並ぶＮ個の前記ブロックを読み出し、
前記書き込み制御部は、前記読み出し制御部によりｉフレーム目の前記第２のフレーム画像のｊ−２番目の前記第２の方向のラインに並ぶＮ個の前記ブロックが読み出されることにより空いたＮ個の前記記憶領域に、ｉフレーム目の前記第１のフレーム画像のｊ番目の前記第１の方向のラインに並ぶＮ個の前記ブロックを書き込む
前記（６）に記載の画像処理装置。
（８）
前記第１のフレーム画像の変形は、回転、反転、拡大、及び、縮小のうちの少なくとも１つである
前記（１）乃至（７）のいずれかに記載の画像処理装置。
（９）
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成する画像処理装置が、
前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
画像処理方法。
（１０）
入力された動画像の各フレームの画像である第１のフレーム画像の画素データを所定の書き込み順で記憶部の所定の複数の記憶領域に書き込み、前記記憶部に書き込まれた前記第１のフレーム画像の前記画素データを所定の読み出し順で読み出すことにより、前記第１のフレーム画像を変形した第２のフレーム画像を生成するコンピュータに、
前記画素データの書き込みと前記画素データの読み出しを並行して行い、
前記第１のフレーム画像を２行×２列以上のブロックに分割し、前記ブロックを各前記記憶領域に１つずつ書き込むとともに、直前に前記画素データを読み出すことにより空いた前記記憶領域に次の書き込み対象となる前記ブロックを書き込む
処理を実行させるためのプログラム。
【符号の説明】
【０１６９】
１  画像処理装置，  １１  書き込み制御部，  １２  読み出し制御部，  １３  タグ制御部，  １４  タグレジスタ，  １５−１乃至１５−７２  ＲＡＭ
【図１】
2016047472.tif 000003
【図２】
2016047472.tif 000004
【図３】
2016047472.tif 000005
【図４】
2016047472.tif 000006
【図５】
2016047472.tif 000007
【図６】
2016047472.tif 000008
【図７】
2016047472.tif 000009
【図８】
2016047472.tif 000010
【図９】
2016047472.tif 000011
【図１０】
2016047472.tif 000012
【図１１】
2016047472.tif 000013
【図１２】
2016047472.tif 000014
【図１３】
2016047472.tif 000015
【図１４】
2016047472.tif 000016
【図１５】
2016047472.tif 000017
【図１６】
2016047472.tif 000018
【図１７】
2016047472.tif 000019
【図１８】
2016047472.tif 000020
【図１９】
2016047472.tif 000021
【図２０】
2016047472.tif 000022
【図２１】
2016047472.tif 000023
【図２２】
2016047472.tif 000024
【図２３】
2016047472.tif 000025
【図２４】
2016047472.tif 000026
【図２５】
2016047472.tif 000027
【国際調査報告】
2016047472.tif 000028
2016047472.tif 000029
2016047472.tif 000030
2016047472.tif 000031