(57)【要約】  記憶領域設定部は、Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータの記憶のために（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を記憶装置に設定する。データ指定部は、Ｍ個のデータソースからのＭ個のデータの中からＬ個のデータを書込み対象データとして指定する。書込み先指定部は、（２Ｍ＋Ｌ）個の記憶領域のうち、Ｌ個の書込み対象データの書き込み中にデータの読み出しが行われる記憶領域と、各データソースからのデータが最後に書き込まれた記憶領域と、各データソースからのデータの読み出しが最後に行われた記憶領域とを除く記憶領域の中から、Ｌ個の書込み対象データの書込み先の記憶領域を指定する。書込み処理部は、指定された記憶領域にＬ個の書込み対象データを書き込む。
2017104084.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータの記憶のために（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を記憶装置に設定する記憶領域設定部と、
前記Ｍ個のデータソースからのＭ個のデータの中からＬ個のデータを書込み対象データとして指定するデータ指定部と、
前記（２Ｍ＋Ｌ）個の記憶領域のうち、Ｌ個の書込み対象データの書き込み中にデータの読み出しが行われる記憶領域と、各データソースからのデータが最後に書き込まれた記憶領域と、各データソースからのデータの読み出しが最後に行われた記憶領域とを除く記憶領域の中から、前記Ｌ個の書込み対象データの書込み先の記憶領域を指定する書込み先指定部と、
前記書込み先指定部により指定された記憶領域に、前記Ｌ個の書込み対象データを書き込む書込み処理部とを有するデータ処理装置。
【請求項２】
前記記憶領域設定部は、
個々の記憶領域のサイズが前記Ｍ個のデータのうちの最大のデータのデータサイズに相当する、前記（２Ｍ＋Ｌ）個の記憶領域を前記記憶装置に設定する請求項１に記載のデータ処理装置。
【請求項３】
前記記憶領域設定部は、
前記Ｍ個のデータソースからのＭ個のデータを記憶するための記憶領域として、データソースごとに該当データのデータサイズに相当するサイズの記憶領域が３個ずつ割り当てられる３Ｍ個の記憶領域と、前記（２Ｍ＋Ｌ）個の記憶領域とのいずれかを選択し、
前記（２Ｍ＋Ｌ）個の記憶領域を選択した場合に、前記（２Ｍ＋Ｌ）個の記憶領域を前記記憶装置に設定する請求項２に記載のデータ処理装置。
【請求項４】
前記記憶領域設定部は、
前記Ｍ個のデータのうちの前記最大のデータ以外のデータのデータサイズの総和を、前記最大のデータのデータサイズで除算して得られる除算値に基づき、前記３Ｍ個の記憶領域と、前記（２Ｍ＋Ｌ）個の記憶領域とのいずれかを選択する請求項３に記載のデータ処理装置。
【請求項５】
前記記憶領域設定部は、
前記除算値が｛（２Ｍ＋Ｌ−３）／３｝未満であれば、前記（２Ｍ＋Ｌ）個の記憶領域を選択する請求項４に記載のデータ処理装置。
【請求項６】
前記記憶領域設定部は、
前記Ｍ個のデータソースであるＭ個のカメラからのＭ個の映像データの記憶のために前記（２Ｍ＋Ｌ）個の記憶領域を前記記憶装置に設定する請求項１に記載のデータ処理装置。
【請求項７】
コンピュータが、Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータの記憶のために（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を記憶装置に設定し、
前記コンピュータが、前記Ｍ個のデータソースからのＭ個のデータの中からＬ個のデータを書込み対象データとして指定し、
前記（２Ｍ＋Ｌ）個の記憶領域のうち、Ｌ個の書込み対象データの書き込み中にデータの読み出しが行われる記憶領域と、各データソースからのデータが最後に書き込まれた記憶領域と、各データソースからのデータの読み出しが最後に行われた記憶領域とを除く記憶領域の中から、前記Ｌ個の書込み対象データの書込み先の記憶領域を指定し、
前記コンピュータが、書き込み先の記憶領域に、前記Ｌ個の書込み対象データを書き込むデータ処理方法。
【請求項８】
Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータの記憶のために（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を記憶装置に設定する記憶領域設定処理と、
前記Ｍ個のデータソースからのＭ個のデータの中からＬ個のデータを書込み対象データとして指定するデータ指定処理と、
前記（２Ｍ＋Ｌ）個の記憶領域のうち、Ｌ個の書込み対象データの書き込み中にデータの読み出しが行われる記憶領域と、各データソースからのデータが最後に書き込まれた記憶領域と、各データソースからのデータの読み出しが最後に行われた記憶領域とを除く記憶領域の中から、前記Ｌ個の書込み対象データの書込み先の記憶領域を指定する書込み先指定処理と、
前記書込み先指定処理により指定された記憶領域に、前記Ｌ個の書込み対象データを書き込む書込み処理とをコンピュータに実行させるデータ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶装置に格納する技術に関する。
以下では、一例として、カメラからの映像データ（カメラ映像ともいう）を記憶領域に格納する技術について説明する。
【背景技術】
【０００２】
特許文献１では、複数のバッファを用いて、ティアリングの発生を防止する技術が開示されている。
ティアリングとは、１つの画面に複数のフレームが表示されることにより、描画された画像が歪んだり、ちらついたりして見える現象のことである。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−０３７６９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、１つの映像データに対して３つ以上のバッファを用意し、１つの映像データの格納先のバッファを３つ以上のバッファの中から選択している。
つまり、特許文献１の方法では、映像データの供給元であるカメラの台数の３倍以上のバッファが必要であり、カメラの台数が多くなると非常に多くの記憶領域を確保しなければならないという課題がある。【０００５】
この発明は、上記のような課題を解決することを主な目的の一つとしており、少ない記憶領域で効率的にデータを格納することを主な目的とする。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、
Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータの記憶のために（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を記憶装置に設定する記憶領域設定部と、
前記Ｍ個のデータソースからのＭ個のデータの中からＬ個のデータを書込み対象データとして指定するデータ指定部と、
前記（２Ｍ＋Ｌ）個の記憶領域のうち、Ｌ個の書込み対象データの書き込み中にデータの読み出しが行われる記憶領域と、各データソースからのデータが最後に書き込まれた記憶領域と、各データソースからのデータの読み出しが最後に行われた記憶領域とを除く記憶領域の中から、前記Ｌ個の書込み対象データの書込み先の記憶領域を指定する書込み先指定部と、
前記書込み先指定部により指定された記憶領域に、前記Ｌ個の書込み対象データを書き込む書込み処理部とを有する。
【発明の効果】
【０００７】
本発明によれば、Ｍ個のデータを（２Ｍ＋Ｌ）個の記憶領域のみを用いて格納できるため、少ない記憶領域で効率的にデータを格納することができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１に係るデータ処理装置のハードウェア構成例を示す図。
【図２】実施の形態１に係るデータ処理装置の機能構成例を示す図。
【図３】実施の形態１に係る第１のバッファメモリ構成の例を示す図。
【図４】実施の形態１に係る第２のバッファメモリ構成の例を示す図。
【図５】実施の形態１に係る第２のバッファメモリ構成での書込み順序及び読出し順序を示す図。
【図６】実施の形態１に係るメイン処理の例を示すフローチャート図。
【図７】実施の形態１に係る映像書込み処理の例を示すフローチャート図。
【図８】実施の形態１に係る第１のバッファメモリ構成での書込み手順及び読出し手順を示す図。
【図９】実施の形態１に係る第２のバッファメモリ構成での書込み手順及び読出し手順を示す図。
【図１０】実施の形態１に係る第２のバッファメモリ構成での書込み手順及び読出し手順を示す図。
【図１１】実施の形態１に係る第２のバッファメモリ構成での書込み手順及び読出し手順を示す図。
【図１２】実施の形態１に係る第２のバッファメモリ構成での書込み手順及び読出し手順を示す図。
【発明を実施するための形態】
【０００９】
実施の形態１及び実施の形態２では、Ｍ個（Ｍ≧２であり、Ｍは整数）のデータソースからのＭ個のデータに対して、（２Ｍ＋Ｌ）個（Ｍ＞Ｌ≧１であり、Ｌは整数）の記憶領域を割り当てるデータ処理装置を説明する。
実施の形態１では、Ｍ＝２、Ｌ＝１の例を説明する。つまり、実施の形態１に係るデータ処理装置は、２個のデータに対して５個の記憶領域を割り当てる。そして、実施の形態１に係るデータ処理装置は、２個のデータの中から１つのデータを書込み対象データとして指定し、１つの書込み対象データの書込み先の記憶領域を５個の記憶領域の中から指定する。
実施の形態２では、Ｍ個のデータに対して（２Ｍ＋Ｌ）個の記憶領域を割り当てる例を説明する。実施の形態２に係るデータ処理装置は、Ｍ個のデータの中からＬ個のデータを書込み対象データとして指定し、Ｌ個の書込み対象データの書込み先の記憶領域を（２Ｍ＋Ｌ）個の記憶領域の中から指定する。
なお、実施の形態１及び実施の形態２では、データ処理装置は、データソースごとに記憶領域を３個ずつ割り当てることもできる。つまり、データ処理装置は、Ｍ個のデータソースからのＭ個のデータに対して、３Ｍ個の記憶領域を割り当てることもできる。
実施の形態１及び実施の形態２に係るデータ処理装置は、Ｍ個のデータのデータサイズを参酌して、（２Ｍ＋Ｌ）個の記憶領域の構成と、３Ｍ個の記憶領域の構成のうちのいずれかを選択する。
なお、実施の形態１及び実施の形態２では、Ｍ個のデータソースからのＭ個のデータの一例として、Ｍ個のカメラからのＭ個の映像データを説明する。
【００１０】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係るデータ処理装置１００のハードウェア構成例を示す。
本実施の形態に係るデータ処理装置１００は、コンピュータである。
データ処理装置１００は、ハードウェアとして、通信インタフェース１０１、メインプロセッサ１０２、映像処理用プロセッサ１０３、記憶装置１０４、ディスプレイ１０５を備える。
通信インタフェース１０１は、データソースであるカメラＡ３００ａ及びカメラＢ３００ｂからの映像データを通信路４００を介して受信する。なお、カメラＡ３００ａ及びカメラＢ３００ｂを区別する必要がない場合は両者を総称してカメラ３００と表記する。
メインプロセッサ１０２は、メインプログラムを実行する。
映像処理用プロセッサ１０３は、映像データの書込み及び読出し、グラフィックス描画を行う。
記憶装置１０４は、映像データの記憶領域として用いられる。すなわち、記憶装置１０４は、映像データを記憶するためのバッファメモリとして用いられる。また、記憶装置１０４は、画面フレームバッファとしても用いられる。更に、記憶装置１０４には、メインプロセッサ１０２及び映像処理用プロセッサ１０３で実行されるプログラムも記憶されている。
ディスプレイ１０５は、映像データを出力する。
【００１１】
図２は、本実施の形態に係るデータ処理装置１００の機能構成例を示す。
【００１２】
メインプロセッサ１０２では、メインプログラムであるシステム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３が実行される。
システム制御部２０１は、データ処理装置１００の動作を制御する。つまり、システム制御部２０１は、映像処理制御部２０２及びバッファメモリ管理部２０３を制御し、また、映像処理制御部２０２及びバッファメモリ管理部２０３の制御を通じてデジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８を制御する。
映像処理制御部２０２は、カメラからの映像データの受信制御及びグラフィックスエンジン２０８の制御を行う。映像処理制御部２０２は、データ指定部の例である。また、映像処理制御部２０２により行われる処理はデータ指定処理の例に相当する。
バッファメモリ管理部２０３は、表示映像にティアリングが発生しないようにするための制御を行う。バッファメモリ管理部２０３は、記憶領域設定部及び書込み先指定部の例に相当する。また、バッファメモリ管理部２０３により行われる処理は記憶領域設定処理及び書込み先指定処理の例に相当する。
【００１３】
映像処理用プロセッサ１０３では、カメラ映像処理部２０４とグラフィックスエンジン２０８が実行される。
カメラ映像処理部２０４は、映像処理制御部２０２からの指示に従って、カメラ３００からの映像データの受信制御を行い、更に、カメラ映像処理部２０４は、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６及び書込み処理部２０７の動作に関連する初期設定等を行う。
グラフィックスエンジン２０８は、グラフィックスの描画を行う。
カメラ映像処理部２０４には、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６及び書込み処理部２０７が含まれる。
デジタルカメラ受信処理部２０５は、通信インタフェース１０１からデジタル映像データを受信する。
アナログカメラ受信処理部２０６は、通信インタフェース１０１からアナログ映像データを受信する。
書込み処理部２０７は、デジタルカメラ受信処理部２０５で受信されたデジタル映像データ及びアナログカメラ受信処理部２０６で受信されたアナログ映像データを記憶装置１０４に書き込む。
【００１４】
このように本実施の形態に係るデータ処理装置１００では、デジタル映像データの受信及びアナログ映像データの受信を許容するが、何れか一方の映像データを複数チャンネル分受信するようにしてもよい。
【００１５】
グラフィックスエンジン２０８は、記憶装置１０４に書き込まれた映像データを読み出し、画像処理を施し、画像処理後の映像データを画面フレームバッファ２１０に格納する。
【００１６】
記憶装置１０４は、受信された映像データを一旦保持するためのバッファメモリ２０９と、ディスプレイ１０５に画像処理後の映像データを出力するための画面フレームバッファ２１０を備える。
【００１７】
図２に示す、システム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６及び書込み処理部２０７は、それぞれプログラムである。
これらプログラムは、記憶装置１０４に記憶されている。そして、メインプロセッサ１０２がシステム制御部２０１、映像処理制御部２０２及びバッファメモリ管理部２０３を実現するプログラムを実行して、後述するシステム制御部２０１、映像処理制御部２０２及びバッファメモリ管理部２０３の動作を行う。また、映像処理用プロセッサ１０３がカメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８を実現するプログラムを実行して、後述するカメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８の動作を行う。
図２では、メインプロセッサ１０２がシステム制御部２０１、映像処理制御部２０２及びバッファメモリ管理部２０３を実現するプログラムを実行している状態を模式的に表している。また、図２では、映像処理用プロセッサ１０３がカメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８を実現するプログラムを実行している状態を模式的に表している。
【００１８】
＊＊＊動作の説明＊＊＊
先ず、本実施の形態に係るデータ処理装置１００のバッファ構成を説明する。
【００１９】
カメラ映像の書き込みと読み出しがそれぞれ非同期で行なわれる環境において、それらの競合を回避するには、図３に示すように、複数のカメラ３００に対して、それぞれ３つずつのバッファメモリが必要である。つまり、使用するカメラ３００の数をＭ（Ｍ≧２）とした場合、計３Ｍ個のバッファメモリが必要となる。ここで、各バッファメモリは、カメラ映像１フレーム分のデータを格納する領域を示す。つまり、カメラＡ３００ａからの映像データ（カメラ映像Ａ）を格納するバッファメモリのサイズはカメラ映像Ａのデータサイズである。また、カメラＢ３００ｂからの映像データ（カメラ映像Ｂ）を格納するバッファメモリのサイズはカメラ映像Ｂのデータサイズである。なお、図３のバッファメモリ構成を第１のバッファメモリ構成という。
これに対し、図４に示すように、書込み処理部２０７が映像処理制御部２０２の指示に基づき、Ｍ個のカメラ３００からのＭ個の映像データのうち、バッファメモリ２０９に同時に書き込み可能な映像データ数を１つに制限する。つまり、映像処理制御部２０２が、Ｍ個のカメラ３００からのＭ個の映像データの中から１つの映像データを書込み対象データとして指定する。これにより、計（２Ｍ＋１）個のバッファメモリでＭ個の映像データを格納することができる。
また、図４の例では、バッファメモリ管理部２０３により、（２Ｍ＋１）個のバッファメモリが以下のように割り当てられる。Ｍ個のバッファメモリには読み出し対象のＭ個の映像データが格納され、別のＭ個のバッファメモリには直近に書き込まれたＭ個の映像データが格納され、そして、残りの１つのバッファメモリに、映像処理制御部２０２により指定された１つの書込み対象データが格納される。なお、図４のバッファメモリ構成を第２のバッファメモリ構成という。
【００２０】
図４は、カメラ数Ｍを２個とした場合の第２のバッファメモリ構成の例を示している。
つまり、カメラＡ３００ａからのカメラ映像ＡとカメラＢ３００ｂからのカメラ映像Ｂを５つのバッファメモリに格納する。
この場合、１種類のバッファメモリで２種類の映像データを格納するため、１つのバッファメモリのサイズは、２つの映像データのうちデータサイズが大きい映像データを格納できるサイズにする必要がある。図４では、各バッファメモリのサイズは、データサイズが大きいカメラ映像Ａのデータサイズである。
このため、図４に示す第２のバッファメモリ構成では、複数のカメラ映像間のサイズ比が小さいほど、メモリ容量を大きく削減することができる。また逆に、複数のカメラ映像間のサイズ比が大きくなると、使用しないメモリ領域が部分的に生じるため、図３に示す第１のバッファメモリ構成のほうが使用するメモリ総容量が小さくなり得る。
そこで、バッファメモリ管理部２０３が、使用するカメラの数、および、カメラ映像の１フレーム分のバッファサイズの情報を基に、図３の第１のバッファメモリ構成及び図４の第２のバッファメモリ構成のいずれでバッファメモリ２０９を構成するかを選択する。具体的には、Ｍ個のカメラの各バッファメモリのサイズをＳ［ｋ］（ｋ＝０〜Ｍ−１、並びは昇順）と表したとき、図４の第２のバッファメモリ構成を選択するための選択基準は、以下の式（１）で定義される。
【００２１】
【数１】
2017104084.tif 000003
【００２２】
図３及び図４の例では、式（１）のＳ［ｋ］は、Ｓ［０］及びＳ［１］である。Ｓ［０］は、図３のカメラ映像Ｂ用のバッファメモリのサイズである。Ｓ［１］は、図３のカメラ映像Ａ用のバッファメモリ（図４のカメラ映像Ａ／Ｂ用のバッファメモリ）のサイズである。
カメラを２つ使用する場合は、（Ｍ−１）＝１であり、Ｓ［Ｍ−２］＝Ｓ［０］であることから、式（１）の左辺は２／３であり、右辺はＳ［０］／Ｓ［１］である。
このため、カメラ映像Ａ用のバッファメモリのサイズ（つまり、カメラ映像Ａのデータサイズ）とカメラ映像Ｂ用のバッファメモリのサイズ（つまり、カメラ映像Ｂのデータサイズ）との比が３：２より小さくなるとき（右辺の除算値が２／３未満であるとき）、図４のバッファメモリ構成の方が図３のバッファメモリ構成よりもメモリ容量を少なくすることができる。このため、式（１）が成立する場合は、バッファメモリ管理部２０３は、図４の第２のバッファメモリ構成を選択する。そして、バッファメモリ管理部２０３は、記憶装置１０４に第２のバッファメモリ構成にてバッファメモリ２０９を設定する。
逆に、カメラ映像Ａ用のバッファメモリのサイズ（つまり、カメラ映像Ａのデータサイズ）とカメラ映像Ｂ用のバッファメモリのサイズ（つまり、カメラ映像Ｂのデータサイズ）との比が３：２より大きい場合は、図３のバッファメモリ構成の方が図４のバッファメモリ構成よりもメモリ容量を少なくすることができる。このため、式（１）が成立しない場合は、バッファメモリ管理部２０３は、図３の第１のバッファメモリ構成を選択する。そして、バッファメモリ管理部２０３は、記憶装置１０４に第１のバッファメモリ構成にてバッファメモリ２０９を設定する。
【００２３】
続いて、データ処理装置１００の動作例を詳細に説明する。
図６及び図７は、データ処理装置１００の動作例を示すフローチャートである。
図６は、メイン処理を示すフローチャートである。図７は、メイン処理とは別タスクとして動作させる映像書き込み処理を示すフローチャートである。
図６及び図７に示す動作手順は、データ処理方法及びデータ処理プログラムの例に相当する。
【００２４】
まず、システムの初期化処理として、システム制御部２０１が、カメラ３００に関する情報の登録やハードウェアの初期化等を実施する（ステップＳ６０１）。ここで登録される情報には、各カメラ３００のカメラ映像のデータサイズが含まれる。
【００２５】
次に、バッファメモリ管理部２０３が、ステップＳ６０１で登録された登録情報を基に、上記の式（１）に従って、バッファメモリ構成を選択する（ステップＳ６０２）。
そして、バッファメモリ管理部２０３は、記憶装置１０４に、選択した構成のバッファメモリ２０９を設定する。以下では、図４の構成でバッファメモリが設定されたものとして説明を行う。
【００２６】
次に、システム制御部２０１は、メイン処理とは別タスクとして、映像書き込み処理のタスクを起動する（ステップＳ６０３）。
なお、映像書込み処理の詳細は図７に示しており、以降では、先に図７を参照して映像書き込み処理について説明する。
【００２７】
まず、起動後の初期化処理（ステップＳ７０１）において、映像処理制御部２０２が、使用するカメラに合わせてカメラ映像処理部２０４の動作を制御する。具体的には、デジタルカメラが使用される場合は、システム制御部２０１は、デジタルカメラ受信処理部２０５の制御に関する設定を行い、アナログカメラが使用される場合はアナログカメラ受信処理部２０６の制御に関する設定を行う。
【００２８】
次に、映像処理制御部２０２は、書込み対象のカメラ映像を選択し（ステップＳ７０２）、カメラ映像の受信同期待ちになる（ステップＳ７０３）。
ここでは、映像処理制御部２０２は、書込み対象のカメラ映像を毎フレーム切り替え、複数のカメラ映像を順番に時分割で受信するよう制御する。これにより、図５に示すように、カメラ映像の同時受信チャンネル数を１つに限定したうえで、複数のカメラ映像の受信が可能になる。
【００２９】
次に、受信したカメラ映像がインタレース信号であれば（ステップＳ７０４でＹＥＳ）、アナログカメラ映像とデジタルカメラ映像のデータを一律のデータ構造として扱うため、書込み処理部２０７が、プログレッシブ映像への変換（ステップＳ７０５）や、映像信号の指定フォーマットへの変換（ステップＳ７０６）を実施する。書込み処理部２０７は、指定フォーマットへの変換として、ＹＵＶ４２２など予め定義したカラーフォーマットのデジタル映像データにカメラ映像を変換する。
【００３０】
次に、バッファメモリ管理部２０３が、書込み対象のカメラ映像の書き込み先のバッファメモリを指定する（ステップＳ７０７）。
バッファメモリ管理部２０３は、（２Ｍ＋１）個のバッファメモリの各々の割当て状況が示される割当て状況情報を管理しており、この割当て状況情報を参照して、書込み対象のカメラ映像の書込み先のバッファメモリを指定する。
具体的には、バッファメモリ管理部２０３は、（２Ｍ＋１）個のバッファメモリのうち、書込み対象のカメラ映像の書き込み中にカメラ映像の読み出しが行われるバッファメモリと、各データソースからのカメラ映像が最後に書き込まれたバッファメモリと、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリとを除くバッファメモリの中から、書込み対象のカメラ映像の書込み先のバッファメモリを指定する。
書込み対象のカメラ映像の書き込み中にカメラ映像の読み出しが行われるバッファメモリと、各データソースからのカメラ映像が最後に書き込まれたバッファメモリと、各データソースからのデータの読み出しが最後に行われたバッファメモリは一部が重複する。バッファメモリ管理部２０３は、これらバッファメモリの重複を排除した後のバッファメモリを除いて得られるバッファメモリの中から書込み先のバッファメモリを指定する。
バッファメモリ管理部２０３による書込み先のバッファメモリの指定については、具体例を用いて後述する。
【００３１】
次に、書込み処理部２０７が、バッファメモリ管理部２０３から、ステップＳ７０７で指定されたバッファメモリの番号を通知され、書込み処理部２０７は、該当するバッファメモリに、受信された書込み対象のカメラ映像を書き込む（ステップＳ７０８）。
【００３２】
データ処理装置１００では、システムの終了（ステップＳ７０９でＹＥＳ）まで、上記の処理が繰り返し行われ、複数のカメラ映像が随時バッファメモリ２０９に書き込まれる。
【００３３】
一方、再びメイン処理に戻り、グラフィックスエンジン２０８を活用したカメラ映像の描画処理について説明する。
【００３４】
まず、映像処理制御部２０２が、グラフィックスエンジン２０８の描画処理を起動するための設定処理を行い（ステップＳ６０４）、描画フレーム調整のため描画タイミングの同期を待つ（ステップＳ６０５）。
そして、描画タイミングになると、バッファメモリ管理部２０３が、描画対象の映像データを格納しているバッファメモリ番号を選択する（ステップＳ６０６）。ここでは、バッファメモリ管理部２０３は、書き込みが完了した各カメラ映像の最新フレームを割り当てたバッファメモリを選択する。具体的には、現在書き込み対象としていないカメラの場合は、バッファメモリ管理部２０３は、当該カメラのカメラ画像が前回書き込まれたバッファメモリを選択する。一方、現在書き込み対象であるカメラの場合は、バッファメモリ管理部２０３は、以下の方法により当該カメラのカメラ映像が前回書き込まれたバッファメモリを選択する。書き込み完了をメインプロセッサに通知する仕組みをグラフィックスエンジン２０８に予め構築しておく。そして、描画タイミングから一定期間が経過するまでにカメラ映像の書き込みが完了していれば、バッファメモリ管理部２０３は、カメラ映像の書込みが完了したバッファメモリを選択する。描画タイミングから一定期間を経過しても書き込みが完了していなければ、バッファメモリ管理部２０３は、当該カメラのカメラ画像が前回書き込まれたバッファメモリを選択する。このようにすることで、バッファメモリ管理部２０３は、カメラ映像の最新フレームを指定することができる。
【００３５】
次に、バッファメモリ管理部２０３は、ステップＳ６０６で選択したバッファメモリの番号をグラフィックスエンジン２０８に通知し、描画処理を起動する（Ｓステップ６０７）。
描画処理起動後は、グラフィックスエンジン２０８が、１画面分の描画処理を実施し、バッファメモリ管理部２０３から通知されたバッファメモリから映像データを読み出す。そして、グラフィックスエンジン２０８は、読み出した映像データに画像処理を行い、映像データの変形表示を実施する。
グラフィックスエンジン２０８は、例えば、テクスチャマッピング機能を活用し、映像データをテクスチャとして登録した後、テクスチャに対し、回転行列や拡大縮小行列などの行列演算を適用する。そして、グラフィックスエンジン２０８は、行列演算の結果を記憶装置１０４内の画面フレームバッファ２１０に格納する。これにより、カメラ映像が回転あるいは拡縮されて表示される。
【００３６】
システムの終了（ステップＳ６０８でＹＥＳ）まで、これらの処理が繰り返し行われて、複数のカメラ映像の変形表示が行われる。
【００３７】
図８は、第１のバッファメモリ構成での書込み手順及び読出し手順を示す。
また、図９は、第２のバッファメモリ構成での書込み手順及び読出し手順を示す。
図８及び図９では、カメラ数Ｍが２である。
また図８及び図９において、横方向が時間の経過を示す。また、時間の区分（実線で分けられた区分）はタイムロットを表す。
図８の第１のバッファメモリ構成では、カメラＡ３００ａのバッファメモリとしてバッファ（１）〜（３）を、カメラＢ３００ｂのバッファメモリとしてバッファ（４）〜（６）を割り当て、カメラごとにバッファメモリを分けてカメラ映像を格納する。なお、図８において、「Ｗ」はカメラ映像の書込みを表し、「Ｒ」はカメラ映像の読出しを表す。図９〜図１２においても同様に、「Ｗ」はカメラ映像の書込みを表し、「Ｒ」はカメラ映像の読出しを表す。
一方、図９の第２のバッファメモリ構成では、計５つのバッファメモリを、カメラＡ３００ａとカメラＢ３００ｂで共有する。更に、バッファメモリ管理部２０３が、カメラＡ３００ａからのカメラ映像と、カメラＢ３００ｂからのカメラ映像の書き込みが重複しないように制御する。
前述のように、第２のバッファメモリ構成では、バッファメモリ管理部２０３は、書込み対象のカメラ映像の書き込み中にカメラ映像の読み出しが行われるバッファメモリと、各データソースからのカメラ映像が最後に書き込まれたバッファメモリと、各データソースからのデータの読み出しが最後に行われたバッファメモリとを除くバッファメモリの中から、書込み対象のカメラ映像の書込み先のバッファメモリを指定する。
以下、図９のＡ：（３）のカメラ映像が書込み対象である場合に、Ａ：（３）のカメラ映像の書込み先のバッファメモリの選択方法を説明する。Ａ：（３）のカメラ映像の書込み中にカメラ映像の読み出しが行われるバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像が最後に書き込まれたバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリは、バッファ（４）とバッファ（５）である。バッファ（１）〜（５）のうち、これらバッファ（１）、バッファ（２）、バッファ（４）、バッファ（５）を除いた後のバッファ（３）がＡ：（３）のカメラ映像の書込み先のバッファメモリとして選択される。
【００３８】
また、第２のバッファメモリ構成において、カメラ映像の読出しの処理時間が長いケースを図１０に示す。
図１０のケースでも、図９のケースと同様に書込み先のバッファメモリの選択が行われる。
以下、図１０のＡ：（３）のカメラ映像が書込み対象である場合に、Ａ：（３）のカメラ映像の書込み先のバッファメモリの選択方法を説明する。Ａ：（３）のカメラ映像の書込み中にカメラ映像の読み出しが行われるバッファメモリは、バッファ（４）とバッファ（５）である。また、各データソースからのカメラ映像が最後に書き込まれたバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリは、バッファ（４）とバッファ（５）である。バッファ（１）〜（５）のうち、これらバッファ（１）、バッファ（２）、バッファ（４）、バッファ（５）を除いた後のバッファ（３）がＡ：（３）のカメラ映像の書込み先のバッファメモリとして選択される。
【００３９】
また、第２のバッファメモリ構成において、カメラ映像の書込みの処理時間が長いケースを図１１に示す。
図１１のケースでも、図９のケースと同様に書込み先のバッファメモリの選択が行われる。
以下、図１１のＡ：（３）のカメラ映像が書込み対象である場合に、Ａ：（３）のカメラ映像の書込み先のバッファメモリの選択方法を説明する。Ａ：（３）のカメラ映像の書込み中にカメラ映像の読み出しが行われるバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像が最後に書き込まれたバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリは、バッファ（１）とバッファ（２）である。バッファ（１）〜（５）のうち、これらバッファ（１）、バッファ（２）を除いた後のバッファ（３）〜（５）のうちからＡ：（３）のカメラ映像の書込み先のバッファメモリが選択される。図１１では、バッファ（３）がＡ：（３）のカメラ映像の書込み先のバッファメモリとして選択されている。
【００４０】
また、第２のバッファメモリ構成において、カメラ映像の受信タイミングにより各カメラ映像の書込みの処理時間が変動するケースを図１２に示す。
図１２のケースでも、図９のケースと同様に書込み先のバッファメモリの選択が行われる。
以下、図１２のＡ：（３）のカメラ映像が書込み対象である場合に、Ａ：（３）のカメラ映像の書込み先のバッファメモリの選択方法を説明する。Ａ：（３）のカメラ映像の書込み中にカメラ映像の読み出しが行われるバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像が最後に書き込まれたバッファメモリは、バッファ（１）とバッファ（２）である。また、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリは、バッファ（１）とバッファ（２）である。バッファ（１）〜（５）のうち、これらバッファ（１）、バッファ（２）を除いた後のバッファ（３）〜（５）のうちからＡ：（３）のカメラ映像の書込み先のバッファメモリが選択される。図１２では、バッファ（３）がＡ：（３）のカメラ映像の書込み先のバッファメモリとして選択されている。
【００４１】
このように、図９〜図１２のいずれのケースにおいても、同様の制御により、バッファメモリの書き込みと読み出しを非同期で競合なく管理することができる。
【００４２】
＊＊＊実施の形態の効果の説明＊＊＊
以上、本実施の形態によれば、Ｍ個のデータを（２Ｍ＋１）個の記憶領域のみを用いて格納できるため、少ない記憶領域で効率的にデータを格納することができる。
特に、複数のカメラ映像を拡縮、回転制御して表示するシステムにおいて、カメラ映像の書込み、読出しを非同期で行なった際に発生するティアリングを防止するとともに、映像データを保持するために必要なメモリ容量を削減することができる。
また、本実施の形態では、カメラの数や、解像度に依存するカメラ映像のバッファサイズ情報を基に、使用メモリ容量がより小さいバッファメモリ構成を選択することができる。
【００４３】
実施の形態２．
本実施の形態に係るデータ処理装置１００を説明する。
なお、本実施の形態に係るデータ処理装置１００の構成は図１及び図２に示す通りである。
また、本実施の形態に係るデータ処理装置１００の動作例は、図６及び図７に示す通りである。
以下では、主に実施の形態１との違いを説明する。以下で説明していない事項は実施の形態１と同じである。
【００４４】
実施の形態１では、第２のバッファメモリ構成例として、Ｍ個のカメラに対して（２Ｍ＋１）個のバッファメモリを配置することとし、書込み対象データを１つのカメラ映像としている。
本実施の形態では、第２のバッファメモリ構成として、Ｍ個のカメラに対して（２Ｍ＋Ｌ）個のバッファメモリを配置し、書込み対象データをＬ個のカメラ映像とする。なお、前述したように、Ｍ＞Ｌ≧１であり、Ｌは整数である。
つまり、本実施の形態では、映像処理制御部２０２が、Ｍ個のカメラ３００からのＭ個のカメラ映像の中からＬ個（Ｌ＝１〜（Ｍ−１））のカメラ映像を書込み対象データとして指定する。また、バッファメモリ管理部２０３が、Ｌ個の書込み対象データの書込み先のバッファメモリを（２Ｍ＋Ｌ）個のバッファメモリの中から指定する。そして、書込み処理部２０７が、バッファメモリ管理部２０３により指定されたＬ個のバッファメモリにＬ個の書込み対象データを書き込む。
また、本実施の形態でも、第１のバッファメモリ構成では、Ｍ個のカメラに対して３Ｍ個のバッファメモリが配置される。
【００４５】
バッファメモリ管理部２０３は、実施の形態１に示した基準と同様の基準で、第１のバッファメモリ構成及び第２のバッファメモリ構成のうちのいずれかを選択する。具体的には、本実施の形態では、バッファメモリ管理部２０３は、以下の式（２）を選択基準にして、第１のバッファメモリ構成及び第２のバッファメモリ構成のうちのいずれかを選択する。なお、式（２）に示す各記号は、式（１）について説明したものと同様であるため説明を省略する。
【００４６】
【数２】
2017104084.tif 000004
【００４７】
また、書込み対象のカメラ映像の書込み先のバッファメモリの指定方法も実施の形態１に示した方法とほぼ同様である。
つまり、バッファメモリ管理部２０３は、（２Ｍ＋Ｌ）個のバッファメモリのうち、Ｌ個の書込み対象のカメラ映像の書き込み中にカメラ映像の読み出しが行われるバッファメモリと、各データソースからのカメラ映像が最後に書き込まれたバッファメモリと、各データソースからのカメラ映像の読み出しが最後に行われたバッファメモリとを除くバッファメモリの中から、Ｌ個の書込み対象のカメラ映像の書込み先のバッファメモリを指定する。
そして、書込み処理部２０７は、バッファメモリ管理部２０３により指定されたバッファメモリに、Ｌ個の書込み対象のカメラ映像を書き込む。
【００４８】
以上、本実施の形態によれば、Ｍ個のデータを（２Ｍ＋Ｌ）個の記憶領域のみを用いて格納できるため、少ない記憶領域で効率的にデータを格納することができる。
また、一度にＬ個のデータを書き込むことができるため、書込み処理の高速化が図られる。
＊＊＊ハードウェア構成の説明＊＊＊
最後に、データ処理装置１００のハードウェア構成の補足説明を行う。
図１及び図２に示すメインプロセッサ１０２及び映像処理用プロセッサ１０３は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
メインプロセッサ１０２は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）であり、映像処理用プロセッサ１０３は、例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
記憶装置１０４は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
通信インタフェース１０１は、データを受信するレシーバー及びデータを送信するトランスミッターを含む。
通信インタフェース１０１は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
記憶装置１０４は、例えば、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）である。
【００４９】
また、記憶装置１０４には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がメインプロセッサ１０２及び映像処理用プロセッサ１０３により実行される。
メインプロセッサ１０２はＯＳの少なくとも一部を実行しながら、システム制御部２０１、映像処理制御部２０２及びバッファメモリ管理部２０３の機能を実現するプログラムを実行する。
また、映像処理用プロセッサ１０３もＯＳの少なくとも一部を実行しながら、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８の機能を実現するプログラムを実行する。
また、システム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８の処理の結果を示す情報やデータや信号値や変数値が、記憶装置１０４、又は、メインプロセッサ１０２又は映像処理用プロセッサ１０３内のレジスタ又はキャッシュメモリに記憶される。
また、システム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記憶媒体に記憶されてもよい。
【００５０】
また、システム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、データ処理装置１００は、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）といった電子回路により実現されてもよい。
この場合は、システム制御部２０１、映像処理制御部２０２、バッファメモリ管理部２０３、カメラ映像処理部２０４、デジタルカメラ受信処理部２０５、アナログカメラ受信処理部２０６、書込み処理部２０７及びグラフィックスエンジン２０８は、それぞれ電子回路の一部として実現される。
なお、プロセッサ及び上記の電子回路を総称してプロセッシングサーキットリーともいう。
【符号の説明】
【００５１】
１００  データ処理装置、１０１  通信インタフェース、１０２  メインプロセッサ、１０３  映像処理用プロセッサ、１０４  記憶装置、１０５  ディスプレイ、２０１  システム制御部、２０２  映像処理制御部、２０３  バッファメモリ管理部、２０４  カメラ映像処理部、２０５  デジタルカメラ受信処理部、２０６  アナログカメラ受信処理部、２０７  書込み処理部、２０８  グラフィックスエンジン、２０９  バッファメモリ、２１０  画面フレームバッファ、３００  カメラ、４００  通信路。
【図１】
2017104084.tif 000005
【図２】
2017104084.tif 000006
【図３】
2017104084.tif 000007
【図４】
2017104084.tif 000008
【図５】
2017104084.tif 000009
【図６】
2017104084.tif 000010
【図７】
2017104084.tif 000011
【図８】
2017104084.tif 000012
【図９】
2017104084.tif 000013
【図１０】
2017104084.tif 000014
【図１１】
2017104084.tif 000015
【図１２】
2017104084.tif 000016
【国際調査報告】
2017104084.tif 000017
2017104084.tif 000018