(57)【要約】【課題】  ダブルバッファ構造を採用した場合においてバッファ選択判定を適切に行うことにより出力映像の破綻を防ぐ。【解決手段】  本発明の方法は、入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に第１および第２の記憶領域に交互に書き込み、書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出し、読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成し、前記読み出しを行う前に前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得し、前記読み出しを行う前に前記書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得し、前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記第１および第２の記憶領域のどちらから読み出させるかを判定する。【選択図】  図１
2007060388.tif 000002
【特許請求の範囲】
【請求項１】
第１および第２の記憶領域を有する映像記憶手段と、
入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に前記第１および第２の記憶領域に交互に書き込む書き込み手段と、
書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出す読み出し手段と、
読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成する生成手段と、
前記読み出し手段が読み出しを行う前に前記書き込み手段が前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得する書き込み先取得手段と、
前記読み出し手段が読み出しを行う前に前記書き込み手段が書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得する書き込み位置取得手段と、
前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記読み出し手段に前記第１および第２の記憶領域のどちらから読み出させるかを判定するバッファ判定手段と、
を備えた映像処理装置。
【請求項２】
前記書き込み手段は前記第１または第２の記憶領域上の書き込み開始位置から書き込み終了位置へ前記第１の映像信号を書き込み、
前記読み出し手段は前記第１または第２の記憶領域上の読み出し開始位置から読み出し終了位置まで前記第１の映像信号を読み出し、
前記バッファ判定手段は、前記読み出し手段が前記読み出し開始位置を読み出すときの前記書き込み手段の前記書き込み位置が、前記読み出し開始位置よりも前記読み出し終了位置側であるかどうか、を判定する、
ことを特徴とする請求項１記載の映像処理装置。
【請求項３】
前記書き込み手段は前記第１または第２の記憶領域上の書き込み開始位置から書き込み終了位置へ前記第１の映像信号を書き込み、
前記読み出し手段は前記第１または第２の記憶領域上の読み出し開始位置から読み出し終了位置まで前記第１の映像信号を読み出し、
前記バッファ判定手段は、前記読み出し手段が前記読み出し終了位置を読み出すときの前記書き込み手段の前記書き込み位置が、前記読み出し終了位置よりも前記読み出し開始位置側であるかどうか、を判定する、
ことを特徴とする請求項１記載の映像処理装置。
【請求項４】
第１および第２の記憶領域を有する映像記憶手段と、
入力映像フレームを表す第1の映像信号を前記第１および第２の記憶領域のいずれかに書き込む書き込み手段と、
書き込まれた前記第1の映像信号を出力映像フレーム毎に前記第１および第２の記憶領域から交互に読み出す読み出し手段と、
読み出された前記第1の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成する生成手段と、
前記書き込み手段が書き込みを行う前に前記読み出し手段が前記第１および第２の記憶領域のどちらから読み出しを行っているかを示す読み出し元情報を取得する読み出し元取得手段と、
前記書き込み手段が書き込みを行う前に前記読み出し手段が読み出している前記第1の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す読み出し位置情報を取得する読み出し位置取得手段と、
前記読み出し元情報と、前記読み出し位置情報と、を用いて、前記書き込み手段に前記第１および第２の記憶領域のどちらに書き込みを行わせるかを判定するバッファ判定手段と、
を備えた映像処理装置。
【請求項５】
前記書き込み手段は前記第１または第２の記憶領域上の書き込み開始位置から書き込み終了位置へ前記第１の映像信号を書き込み、
前記読み出し手段は前記第１または第２の記憶領域上の読み出し開始位置から読み出し終了位置まで前記第１の映像信号を読み出し、
前記バッファ判定手段は、前記書き込み手段が前記書き込み開始位置に書き込むときの前記読み出し手段の前記読み出し位置が、前記書き込み開始位置よりも前記書き込み終了位置側であるかどうか、を判定する、
ことを特徴とする請求項４記載の映像処理装置。
【請求項６】
前記書き込み手段は前記第１または第２の記憶領域上の書き込み開始位置から書き込み終了位置へ前記第１の映像信号を書き込み、
前記読み出し手段は前記第１または第２の記憶領域上の読み出し開始位置から読み出し終了位置まで前記第１の映像信号を読み出し、
前記バッファ判定手段は、前記書き込み手段が前記書き込み終了位置に書き込むときの前記読み出し手段の前記読み出し位置が、前記書き込み終了位置よりも前記書き込み開始位置側であるかどうか、を判定する、
ことを特徴とする請求項４記載の映像処理装置。
【請求項７】
入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に第１および第２の記憶領域に交互に書き込むステップと、
書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出すステップと、
読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成するステップと、
前記読み出しを行う前に前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得するステップと、
前記読み出しを行う前に前記書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得するステップと、
前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記第１および第２の記憶領域のどちらから読み出させるかを判定するステップと、
をコンピュータに実行させるためのプログラム。
【請求項８】
入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に第１および第２の記憶領域に交互に書き込み、
書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出し、
読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成し、
前記読み出しを行う前に前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得し、
前記読み出しを行う前に前記書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得し、
前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記第１および第２の記憶領域のどちらから読み出させるかを判定する、
映像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第１のタイミングで伝送される映像信号を入力し、その一部または全体を記憶媒体に記憶し、そこから読み出した情報を元に映像を生成して第２のタイミングで映像信号を出力するリアルタイムな映像処理装置、映像処理方法およびプログラムに関する。
【背景技術】
【０００２】
テレビ会議では、複数の端末同士でマイク音声やカメラ映像などでコミュニケーションを行ういわゆる多地点テレビ会議の場合、単純に互いの端末同士をフルメッシュで接続すると、通信や端末処理の面で負荷が大きい。そこで、通常はMCU（Multipoint Control Unit:多地点制御ユニット）を設ける手段がとられる。MCUはサーバの一種で、各端末と接続して各端末からの音声や映像を受信し、それらを合成し、合成したものを各端末に送信する機能を持つ。このMCUによって、各端末はMCUとのみ通信し、MCUからの単一の合成音声や合成映像を受信するだけで、全ての参加者からの音声や映像を得られるようになり、通信や端末処理の面で効率がよい。このように、MCUは多地点テレビ会議において重要な役割を持ち、ここでリアルタイムの映像処理技術が利用されている。
【０００３】
リアルタイムの映像処理技術のもう一つの応用として、監視カメラの画面分割ユニットがある。監視カメラは通常建物などに複数個設置されているため、それを別々のモニタで観察・録画すると設備が大掛かりになり、使い勝手が悪い。そこで、通常は画面分割ユニットを使用し、複数のカメラ映像を合成して一つの映像信号にし、それを単一のモニタで確認したり単一の録画機で録画できるようにする手段がとられる。
【０００４】
このように、映像処理技術はテレビ会議や監視カメラなどの分野で既によく利用され、それにかかわる発明も多数提案されている。例えばテレビ会議では特開平9-270954、特開平10-164566、特開平11-187372、特開平11-88854、監視カメラ等では特開平10-164566、特開平11-234654などが挙げられる。
【０００５】
このような映像処理技術は、基本的には入力映像をRAMなどのフレームバッファを用いながら所定の映像処理をして、出力映像を生成するという形態が一般的である。
【０００６】
ここで、映像フレームをRAMに順次書き込み、一方でそれを順次読み出す際、時間的に余裕がある場合はそれらを交互に行えば問題ない。しかし、前述したようなリアルタイム処理で書き込みも読み出しも間断なく逐次行われていて、さらに書き込み速度と読み出し速度が異なる場合などでは、何も対処をしないと書き込みが中途半端な状態で読み出しを行ってしまう可能性がある。例えば、読み出した映像フレームに書き込みによる新しい更新が反映された部分と、まだ反映されていない古い部分が混在してしまうなどがある。この場合、読み出した映像に一部１つ過去の映像フレームが混在してしまい、映像が破綻する。図１３（Ａ）はその様子を示したものである。
【０００７】
この書き込み側と読み出し側のアクセスの競合を防ぐため、一般にダブルバッファ処理と呼ばれる手法が用いられる。ダブルバッファ処理とは細かくは複数の意味があるが、ここでの意味は、RAM上のフレームバッファを2つ用意し、前述したアクセス競合を防ぐ方法のことである。例えば書き込み側がフレームを書き込む際、その2つバッファに交互に書き込む。それに対して読み出し側は、現在書き込みが行われていない方のバッファから読み出しを行う。つまり、書き込みを行うバッファと読み出しを行うバッファが交互に入れ替わるように動作する。こうすることによって、読み出しを行うバッファは常に書き込みが完了しているので、完全な状態であることが保証され映像の破綻を防ぐことが出来る。
【特許文献１】特開平9-270954公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来のダブルバッファ処理は、基本的には前述したように、書き込みと読み出しのうち片方を2つのバッファに交互にアクセスさせ、もう片方を他方がアクセスしていない方のバッファに常にアクセスさせる方法が一般的である。しかし、この方法では入力映像と出力映像のフレームが同期されていない場合は問題が発生する。例えば、先に例示したような映像処理装置で入力映像と出力映像のフレームの同期がとれていない場合を考える。
【０００９】
入力映像をRAMに書き込み、またそれを読み出し2倍の拡大処理をして出力する構成の映像処理装置があるとする。RAM上には図１３（Ｂ）の左図のようにダブルバッファが展開されている。書き込みは映像フレーム全体だが、読み出しはそのうち左図の斜線部の範囲のみで、右図のように出力映像フレームにはそれを2倍に拡大したものを配置するとする。ここで、読み出し部が右図の出力映像の実線矢印Ｙ２１の部分を処理しているとき、書き込み部は左図の実線矢印Ｙ２３のところを処理しているものとする。このとき、書き込み部側の実線矢印Ｙ２３はバッファ1にあるので、従来のダブルバッファ処理だと読み出し部は図のようにバッファ2から読み出すことになる。しかし、出力映像の処理が右図の点線矢印Ｙ２２のところまで移動してバッファ2からの読み出しを完了すると、そのとき書き込み部は同じ分だけ進み左図の点線矢印Ｙ２４のところに移動している。この位置は読み出し領域の下端を超えているので、途中で書き込み側が読み出し側を追い抜いたことを意味する。読み出した映像は、追い抜きが発生する時点以前はそれ以降より１つ古いフレームになり、異なるフレームの映像が混在して映像が破綻してしまう。
【００１０】
また、今度は入力映像を1/2に縮小してフレームバッファに書き込み、またそれを読み出しそのまま出力する場合を考える。今回は図１３（Ｃ）の左図のようにフレームバッファが1/2に縮小されている。書き込みは入力映像に同期して行われるので、書き込みアクセスの下方向に移動する速度も1/2になる。先と同様に読み出し部はこのうち斜線部のみを読み出して出力映像に配置する。ここで、読み出し部が右図の実線矢印Ｙ２５のところを処理しているとき書き込み部が左図の実線矢印Ｙ２７のところを処理していたとすると、従来の方法では図のように現在書き込み部がアクセスしていないバッファ1からデータを読み出すことになる。しかし、右図の矢印が終端である点線矢印Ｙ２６のところにきたときには、書き込み部のアクセス位置はその1/2の速度で左図のように点線矢印Ｙ２８のところに移動しており、バッファ2の斜線部の映像を更新し終わっている。よって、結果的にはバッファ2から読み込んだ方が、フレーム破綻の無くより新しいフレームを得られたことになる。
【００１１】
このように、従来の方法ではフレーム同期がとれていない場合などはアクセス競合を排除しきれず、また、場合によっては最新のフレームを読み出さない場合もある。特に映像合成装置などでは複数の映像を入力・出力したりするので、それらの間でフレーム同期をとるのはさまざまな理由で困難になる場合がある。さらに、テレビ会議などでは双方向によるコミュニケーションが要求されるので、映像のリアルタイム性は非常に重要になり、最新のフレームを読み出さないことは問題である。
【００１２】
関連技術として特開平5-212913があげられる。これはいずれのバッファにアクセスするかを所定の判定により決める手法が提案されている。しかし、この手法はプリンタに特化している点で上述の問題とは異なるものとなっている。
【００１３】
本発明は、ダブルバッファ構造を採用した場合においてバッファ選択判定を適切に行うことにより出力映像の破綻を防ぐようにした映像処理装置、映像処理方法およびプログラムを提供する。
【課題を解決するための手段】
【００１４】
本発明の一態様としての映像処理装置は、第１および第２の記憶領域を有する映像記憶手段と、入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に前記第１および第２の記憶領域に交互に書き込む書き込み手段と、書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出す読み出し手段と、読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成する生成手段と、前記読み出し手段が読み出しを行う前に前記書き込み手段が前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得する書き込み先取得手段と、前記読み出し手段が読み出しを行う前に前記書き込み手段が書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得する書き込み位置取得手段と、前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記読み出し手段に前記第１および第２の記憶領域のどちらから読み出させるかを判定するバッファ判定手段と、を備える。
【００１５】
本発明の一態様としてのプログラムは、入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に第１および第２の記憶領域に交互に書き込むステップと、書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出すステップと、読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成するステップと、前記読み出しを行う前に前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得するステップと、前記読み出しを行う前に前記書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得するステップと、前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記第１および第２の記憶領域のどちらから読み出させるかを判定するステップと、を備える。
【００１６】
本発明の一態様としての映像処理方法は、入力映像フレームを表す第1の映像信号を前記入力映像フレーム毎に第１および第２の記憶領域に交互に書き込み、書き込まれた前記第1の映像信号を前記第１および第２の記憶領域のいずれかから読み出し、読み出された前記第１の映像信号が表す映像を配置した出力映像フレームを表す第2の映像信号を生成し、前記読み出しを行う前に前記第１および第２の記憶領域のどちらに書き込みを行っているかを示す書き込み先情報を取得し、前記読み出しを行う前に前記書き込んでいる前記第１の映像信号が前記第１または第２の記憶領域上のどの位置にあたるかを示す書き込み位置情報を取得し、前記書き込み先情報と、前記書き込み位置情報と、を用いて、前記第１および第２の記憶領域のどちらから読み出させるかを判定する、ことを特徴とする。
【発明の効果】
【００１７】
本発明により、ダブルバッファ構造を採用した場合においてバッファ選択判定を適切に行うことができ、これにより出力映像の破綻を防ぐことができる。
【発明を実施するための最良の形態】
【００１８】
（第一の実施の形態）
本発明の第一の実施の形態の構成を図１に示す。これは入力映像信号を一旦RAM１１上のフレームバッファに書き込み、それを読み出して映像を生成して出力する映像処理装置である。RAM１１上にはダブルバッファ（第１および第２の記憶手段）が展開されている。映像信号は所定のデジタル信号として、ピクセルクロックとともに図１０に示すように映像フレームの画素値情報が座標の左上から右下まで送られる。ブランク部分ＢＬ１にはダミーの画素値が入る。
【００１９】
まず、解析部１２は入力映像信号を解析して現在の画素値情報の映像フレーム上の座標を求める。それを元に縮小部１３は映像フレームの縮小処理を行い、例えば縦横に1画素ずつ削除する形で1/2縮小を行う。書き込み部１４はそれを受けて調停部１５にフレームバッファへの書き込み要求を行う。一方、読み出し部１６は調停部１５に読み出し要求をし、生成部１７は読み出された画素値情報をもとに適宜ブランクや同期信号などを付加して映像信号を生成し、出力する。調停部１５は書き込み部１４と読み出し部１６のリクエストの調停を行い、時分割で実際にRAM１１にアクセスしてデータ転送を行う。読み出しバッファ判定部１８は、生成部１７からの現在処理しているライン情報から判定タイミングを得て、解析部１２からの現在処理しているライン情報（縦方向の座標）、および書き込み部１４からのダブルバッファにおける現在書き込みをしているバッファの情報等を元にいずれのバッファから読み出しを行うかの判定を行い、その結果を読み出し部１６に渡す。調停部１５より左を入力系、右を出力系と呼ぶことにする。
【００２０】
読み出しバッファ判定部１８は次のように判定を行う。図４は入力映像と出力映像の様子を示している。ＢＬ２、ＢＬ３は映像のブランク部分を表す。入力映像は前述したように1/2に縮小され、出力映像上の左上部に配置される。生成部１７が右図の実線矢印Ｙ１があるライン0の位置を処理しているとき解析部１２から得たライン情報をclとする。縮小処理が入っていることから、入力映像上のラインの移動速度が、入力側より出力側の方が速くなることがポイントである。まず出力系が読み出しを完了する時点、すなわち、右図の矢印Ｙ１が点線矢印Ｙ２に移動する時点では、現在よりBLANK_HEIGHT + (FRAME_HEIGHT - BLANK_HEIGHT) / 2だけ進んでいることになるから、そのとき入力系の処理しているラインは cl + BLANK_HEIGHT + (FRAME_HEIGHT - BLANK_HEIGHT) / 2と推定される。これがまだ現在のフレームに残っている場合、ダブルバッファのうち書き込みを行っているバッファから読み出すと追い抜きが発生するので、このときは、書き込んでいるバッファとは別のバッファを読み出しバッファとすべきである。その条件は次の通りである。
cl + BLANK_HEIGHT + (FRAME_HEIGHT - BLANK_HEIGHT) / 2 ≦ FRAME_HEIGHT
⇒ cl ≦ (FRAME_HEIGHT - BLANK_HEIGHT) / 2
【００２１】
以上のように、入力系が現在書き込みをしているバッファ情報と、入力系が現在処理している映像フレーム上の位置（本例の場合はcl）と、出力縮小映像の配置位置（本例の場合BLANK_HEIGHT + (FRAME_HEIGHT - BLANK_HEIGHT) / 2）とを用いて判定を行うことにより、読み出し側はつねに追い抜きによる映像破綻を回避することが出来る。
【００２２】
なお、入力系・出力系は複数あってもよい。出力映像上に複数の入力映像が配置される場合、例えばそれぞれの入力系について上記の判定を行うことになる。
【００２３】
また、以上では、フレーム上の処理位置をライン単位で説明したが、フレーム上の処理位置を、ラインでなく、例えば画素単位としてもよい。
【００２４】
（第二の実施の形態）
本発明の第二の実施の形態の構成を図２に示す。第一の実施の形態と同様に入力映像信号を一旦RAM１１上のフレームバッファに書き込み、それを読み出して映像を生成して出力する映像処理装置である。異なる点はレイアウトを自由に変更できる点で、入力映像のどの部分を切り取るかを読み出し部１６が受け、それをどれだけ縮小するかを縮小部１３が受け、さらに縮小した映像をどこに配置するかを生成部１７が受け、指示に従った処理を行う。さらに本実施の形態では、読み出しバッファ判定部１８もレイアウト情報を見て判定処理を行う。それ以外は、各機能部は先と同様に機能する。
【００２５】
図５は先と同様に入力映像と出力映像の様子を示している。今回は図のように入力映像の一部が切り取られ、それが例えば1/2縮小されて出力映像上に貼り付けられる。その際、入力映像上の切り取り範囲の下端の座標をoel（表示領域における。以下同）、出力映像上の貼り付け範囲の下端の座標をelとする。elは例えば終了位置に対応する。oelは,例えば上記終了位置に対応する入力映像フレーム上の位置に相当する。出力系が右図実線矢印Ｙ３があるライン0を処理しているとき入力系がラインclの処理をしているとすると、読み出しバッファ判定部１８は次のように判定を行う。
【００２６】
・oel ＞ elのとき
出力系が処理している位置が点線矢印Ｙ４のように貼り付け範囲の下端に達するとき、入力系が処理している位置はcl + el + BLANK_HEIGHTになる。これが入力映像上の切り取り範囲の下端より上にある場合、追い抜きが発生するか、あるいは、一つ前のフレームの方が新しくなるので、そちらから読み出すべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを読み出しバッファとする条件は次の通りである。
cl + el + BLANK_HEIGHT < oel + BLANK_HEIGHT
⇒ cl < oel - el
【００２７】
・oel ≦ elのとき
前式の右辺がマイナスになることからも分るように、前記の条件は常に偽になる。代わりに、出力系が処理している位置が貼り付け範囲の下端に達するとき、入力系はダブルバッファにおける次のフレームバッファに移動してさらにそのフレームバッファにて切り取り範囲の下端に達する場合がある。そのときは、より新しい映像を得るために次のフレームバッファから読み出すべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを読み出しバッファとする条件は次の通りである。
cl + el + BLANK_HEIGHT > oel + BLANK_HEIGHT + FRAME_HEIGHT
⇒ cl > FRAME_HEIGHT − (el − oel)
【００２８】
以上が判定条件である。次に判定を図６のように出力映像上の貼り付け範囲の上端（実線矢印Ｙ５参照）で行った場合を考える。出力映像上の貼り付け範囲の上端をslとすると、出力系が処理をしている位置が図の点線矢印Ｙ６のように貼り付け範囲下端に移動したとき、入力系が処理している位置はcl + (el - sl)まで移動しているので、先と同様にそれが入力映像の切り取り範囲の下端を超えていなければ別のフレームバッファを読み出しバッファとすることになる。すなわち次のようになる。
cl + (el - sl) < oel + BLANK_HEIGHT
⇒ cl < oel - el + sl + BLANK_HEIGHT
【００２９】
このように、判定を行うタイミングに合わせてレイアウト情報を適宜用いて判定条件を設定すれば、本発明によって出力映像の破綻を防ぎ、さらに入力映像に対する遅延を少なくすることが可能である。判定を行うタイミングは読み出しを実行する前であればいつでもよく、上式で言えばそれに合わせてslを設定することになる。
【００３０】
次に、映像信号が例えばITU-R(International Telecommunication Union-Radiocommunication) BT.656で定められているようなインタレースの信号であった場合を考える。この場合、入力映像と出力映像の様子は図７のように１つのフレームがフィールドAとフィールドBの2つのフィールドで構成される。この場合の判定はフィールドごとに行われる。より詳しくは次のようになる。
【００３１】
先と同じように出力系がフレームの先頭（ライン0、フィールドAの先頭）で判定する場合は同様に結果になるので省略し、今回は右図の実線矢印Ｙ７のようにフィールドBの先頭で判定する場合を考える。考え方は同じで、出力系が処理している位置が点線矢印Ｙ８に示されるように貼り付け範囲の最後に達するとき、入力系が処理している位置はcl + el + BLANK_HEIGHTになる。これがフィールドBの切り取り範囲の最後より上にある場合、追い抜きが発生するか、あるいは、一つ前のフレームの方が新しくなるので、そちらから読み出すべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを読み出しバッファとする条件は次の通りである。
cl + el + BLANK_HEIGHT < oel + BLANK_HEIGHT + FIELD_HEIGHT
⇒ cl < FIELD_HEIGHT − (el − oel)
【００３２】
このように、入力映像信号および出力映像信号が一定のタイミングで伝送されるならインタレース映像でもよく、適宜それに合わせて判定条件を設定すればよい。
【００３３】
（第三の実施の形態）
本発明の第三の実施の形態の構成を図３に示す。本実施の形態も第一、第二の実施の形態と同様に入力映像信号を一旦RAM１１上のフレームバッファに書き込み、それを読み出して映像を生成して出力する映像処理装置である。異なる点は、書き込み部１４の前段の縮小部が無くなり、変わりに読み出し部１６の後段に拡大部１９を備える点で、今度は切り取られた入力映像の一部が指示された拡大率で拡大されて出力映像上に貼り付けられる。この縮小と拡大の違いにより、先ほどとは逆に出力側が処理をしている入力映像フレーム上の位置の移動速度より入力側のそれの方が速くなるのがポイントである。それ以外は先と同様に動作する。
【００３４】
図８は先と同様に入力映像と出力映像の様子を示している。今回は図のように入力映像の一部が切り取られ、それが例えば2倍に拡大されて出力映像上に貼り付けられる。その際、入力映像上の切り取り範囲の上端の座標をosl、出力映像上の貼り付け範囲の上端の座標をslとする。slは例えば開始位置に対応する。oslは,例えば上記開始位置に対応する入力映像フレーム上の位置に相当する。出力系が右図実線矢印Ｙ９があるライン0を処理しているとき入力系がラインclの処理をしているとすると、読み出しバッファ判定部１８は次のように判定を行う。
【００３５】
・osl > slのとき
出力系が処理している位置が点線矢印Ｙ１０に示されるように貼り付け範囲の上端に達するとき、入力系が処理している位置はcl + sl + BLANK_HEIGHTになる。これが入力映像上の切り取り範囲の上端より上にある場合、これから追い抜きが発生するか、あるいは、一つ前のフレームの方が新しくなるので、そちらから読み出すべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを読み出しバッファとする条件は次の通りである。
cl + sl + BLANK_HEIGHT < osl + BLANK_HEIGHT
⇒ cl < osl - sl
【００３６】
・osl ≦ slのとき
前式の右辺がマイナスになることからも分るように、前記の条件は常に偽になる。代わりに、出力系が処理している位置が貼り付け範囲の上端に達するとき、入力系は次のフレームバッファに移動してさらにそのフレームバッファにて切り取り範囲の上端に達する場合がある。そのとき、次のフレームバッファから読み出した方がより新しい映像が得られるので、次のフレームバッファから読み出すべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを読み出しバッファとする条件は次の通りである。
(cl + sl + BLANK_HEIGHT) - FRAME_HEIGHT > osl + BLANK_HEIGHT
⇒ cl > FRAME_HEIGHT + osl - sl
【００３７】
以上が判定条件である。次に判定を図９のように出力映像上の貼り付け範囲の上端（実線矢印Ｙ１１参照）で行った場合を考える。この場合、この時点でclが入力映像の切り取り範囲の上端を超えていなければ別のフレームバッファを読み出しバッファとすることになる。すなわち次のようになる。
⇒ cl < osl + BLANK_HEIGHT
【００３８】
以上のように、拡大が行われる場合でも同様に判定条件を設定すれば同様に本発明の効果が得られる。インタレースの場合でも同様に条件を設定すればよい。
【００３９】
なお、第一〜第三の実施の形態で述べた縮小部や拡大部は一例に過ぎず、これらは本発明を制約するものではない。
【００４０】
（第四の実施の形態）
第一〜第三の実施の形態では、入力側がフレームバッファに交互に書き込みを行い、出力側がいずれのバッファに書き込むべきかの判定を行う場合を示した。しかしながら、本発明は、入力側がフレームバッファに書き込む場合にいずれのバッファに書き込むかの判定を行い、出力側が交互に読み出す場合にも有効である。以下ではこの場合の一例を説明する。ただし、本発明は以下の例に限定されず、第一〜第三の各実施の形態に相当する実施の形態も含んでよい。
【００４１】
本発明の第四の実施の形態の構成を図１１に示す。図２と異なる点は、入力側がフレームバッファに書き込む場合にいずれのバッファに書き込むかの判定を行い、出力側が交互に読み出す点である。それ以外は先と同様に動作する。便宜上、各要素の参照符号を振り直しているが、各要素の動作は、上記点を除き図２における同一名称の要素と同様である。
【００４２】
図１２は入力映像と出力映像の様子を示している。図５との違いはclが出力側にある点で、それ以外は同じである。入力側が左図実線矢印Ｙ１２のライン0を処理しているとき、出力系がラインclの処理をしているとすると、読み出しバッファ判定部２８は次のように判定を行う。
【００４３】
・oel ＜ elのとき
入力系が処理している位置が切り取り範囲の下端に達するとき、出力系が処理している位置はcl + oel + BLANK_HEIGHTになる。これが出力映像上の貼り付け範囲の下端より下にある場合、読み出し側の追い抜きが発生するか、あるいは、次のフレームの方が先に読み出されることになるので、そちらに書き込むべきである。よって、現在読み出しを行っているフレームバッファとは別のフレームバッファを書き込みバッファとする条件は次の通りである。
cl + oel + BLANK_HEIGHT > el + BLANK_HEIGHT
⇒ cl > el − oel
【００４４】
・oel ≧ elのとき
前式は常に真となるが、代わりに入力系が処理している位置が切り取り範囲の下端に達するとき、出力系は次のフレームバッファに移動してさらにそのフレームバッファにて貼り付け範囲の下端に達してしまう場合がある。そのときは、より新しい映像を出力側に読み出させるため、次の次のバッファである現在のバッファに書き込むべきである。よって、現在書き込みを行っているフレームバッファとは別のフレームバッファを書き込みバッファとする条件は、この場合を省いて次のようになる。
cl + oel + BLANK_HEIGHT < el + BLANK_HEIGHT + FRAME_HEIGHT
⇒ cl < FRAME_HEIGHT − (oel − el)
【００４５】
なお、以上の第四の実施の形態では、出力フレームの先頭（図１２のc1）で判定を行ったが前述した第二および第三の実施の形態と同様に他の位置（時点）で判定を行ってもよい。
【００４６】
以上に説明した第一〜第四の実施の形態の例として拡大または縮小処理を行う場合を挙げたが本発明はこれに限るものではなく、フレームバッファ上の書き込み側と読み出し側の移動速度が異なることが本質である。よって、単純に入力映像のレートと出力映像のレートが異なる場合などでも良く、その場合も本発明に従い同様の判定を行うことになる。
【００４７】
図１、図２、図３および図１１に示した各構成における各要素は、通常のプログラミング技法により生成したプログラムをコンピュータに実行させることによって得られる機能を表してもよいし、ハードウェアを表してもよいし、これらの組み合わせを表してもよい。
【００４８】
以上のように本発明の各実施の形態によれば、入力映像と出力映像が非同期で、さらに入力映像の切り取り位置、その出力映像上への貼り付け位置が任意の場合でも、ダブルバッファを行う際のバッファ選択判定を常に適切に行うことが可能となり、それによって出力映像の破綻を防ぎ、さらに、出力映像の入力映像に対する遅延を少なくすることが出来る。
【図面の簡単な説明】
【００４９】
【図１】本発明の第一の実施の形態の構成を示す図。
【図２】本発明の第二の実施の形態の構成を示す図。
【図３】本発明の第三の実施の形態の構成を示す図。
【図４】第一の実施の形態にいて入力映像と出力映像の様子を示す図。
【図５】第二の実施の形態において入力映像と出力映像の様子を示す図。
【図６】第二の実施の形態において判定を出力映像上の貼り付け範囲の上端で行う場合を説明する図。
【図７】１つのフレームが２つのフィールドで構成される場合における入力映像と出力映像の様子を示す図。
【図８】第三の実施の形態における入力映像と出力映像の様子を示す図。
【図９】第三の実施の形態において判定を出力映像上の貼り付け範囲の上端で行う場合を説明する図。
【図１０】映像フレームの画素値情報が座標の左上から右下まで送られる様子を示す図。
【図１１】本発明の第四の実施の形態の構成を示す図。
【図１２】第四の実施の形態における入力映像と出力映像の様子を示す図。
【図１３】従来技術の問題点を説明する図。
【符号の説明】
【００５０】
１１、２１：ＲＡＭ
１２、２２：解析部
１３、２３：縮小部
１４、２４：書き込み部
１５、２５：調停部
１６、２６：読み出し部
１７、２７：生成部
１８、２８：読み出しバッファ判定部
１９：拡大部
【図１】
2007060388.tif 000003
【図２】
2007060388.tif 000004
【図３】
2007060388.tif 000005
【図４】
2007060388.tif 000006
【図５】
2007060388.tif 000007
【図６】
2007060388.tif 000008
【図７】
2007060388.tif 000009
【図８】
2007060388.tif 000010
【図９】
2007060388.tif 000011
【図１０】
2007060388.tif 000012
【図１１】
2007060388.tif 000013
【図１２】
2007060388.tif 000014
【図１３】
2007060388.tif 000015