(57)【要約】【課題】  処理負荷が高くて映像フレームを全て生成できない状況でも、受信装置からのフレーム内符号化フレームの挿入要求を待つことなくフレーム内符号化フレームを挿入し、映像再生できない時間を低減すること。【解決手段】  映像処理装置は、撮像部によって撮像された映像データを取得する取得部と、一定の時間ごとに行うフレーム内符号化処理または時間内に複数回行うフレーム間符号化処理により映像データを符号化した映像フレームを生成する符号化処理部と、符号化された映像フレームを保存する記憶部と、記憶部に保存されている映像フレームと、記憶部に映像フレームが保存された後に符号化処理部によって符号化された映像フレームとのフレーム間の連続性を管理する映像管理部と、を有する。映像管理部は、フレーム間が不連続となる場合、符号化処理部にフレーム内符号化処理による映像フレームを生成させる。【選択図】  図１
2013157679.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段によって撮像された映像データを取得する取得手段と、
一定の時間ごとに行うフレーム内符号化処理または前記時間内に複数回行うフレーム間符号化処理により前記映像データを符号化した映像フレームを生成する符号化処理手段と、
符号化された映像フレームを保存する記憶手段と、
前記記憶手段に保存されている映像フレームと、前記記憶手段に前記映像フレームが保存された後に前記符号化処理手段によって符号化された映像フレームとのフレーム間の連続性を管理する映像管理手段と、を有し、
前記映像管理手段は、前記フレーム間が不連続となる場合、前記符号化処理手段に前記フレーム内符号化処理による映像フレームを生成させることを特徴する映像処理装置。
【請求項２】
前記映像フレームには、前記フレーム内符号化処理または前記フレーム間符号化処理により符号化された映像情報と、当該映像フレームのフレーム番号と、前記フレーム内符号化処理または前記フレーム間符号化処理による映像フレームであるかを識別するための識別情報が含まれ、
前記映像管理手段は、前記フレーム番号を比較して、前記フレーム間が不連続になるか否かを判定することを特徴とする請求項１に記載の映像処理装置。
【請求項３】
前記映像管理手段は、前記符号化処理手段の処理が予め定められた処理時間の間に完了するか否かを判定し、前記処理時間の間に前記符号化処理手段の処理が完了しない場合、前記フレーム間は不連続になると判定することを特徴とする請求項１に記載の映像処理装置。
【請求項４】
前記映像管理手段は、前記符号化処理手段からエラー通知を受信した場合、前記フレーム間は不連続になると判定することを特徴とする請求項１に記載の映像処理装置。
【請求項５】
前記フレーム間が不連続となり、かつ、前記フレーム内符号化処理を行う前記一定の時間が閾値時間以上に設定されている場合、前記映像管理手段は前記符号化処理手段に前記フレーム内符号化処理による映像フレームを前記フレーム内符号化処理による映像フレームが生成されてから前記一定の時間が経過する前に生成させ、
前記フレーム間が不連続となり、かつ、前記一定の時間が閾値時間未満に設定されている場合、前記映像管理手段は前記符号化処理手段に前記フレーム内符号化処理による映像フレームを前記フレーム内符号化処理による映像フレームが生成されてから前記一定の時間が経過した時に生成させる
ことを特徴とする請求項１乃至４のいずれか１項に記載の映像処理装置。
【請求項６】
前記映像管理手段は、前記フレーム内符号化処理による映像フレームが次に生成されるまでの生成時間を算出し、
前記フレーム間が不連続となり、かつ、前記生成時間が閾値時間以上となる場合、前記映像管理手段は前記符号化処理手段に前記フレーム内符号化処理による映像フレームを前記フレーム内符号化処理による映像フレームが生成されてから前記一定の時間が経過する前に生成させ、
前記フレーム間が不連続となり、かつ、前記生成時間が閾値時間未満となる場合、前記映像管理手段は前記符号化処理手段に前記フレーム内符号化処理による映像フレームを前記フレーム内符号化処理による映像フレームが生成されてから前記一定の時間が経過した時に生成させる
ことを特徴とする請求項１乃至４のいずれか１項に記載の映像処理装置。
【請求項７】
前記映像管理手段は、前記フレーム内符号化処理による映像フレームが生成された後の経過時間を算出し、
前記フレーム間が不連続となる場合、前記映像管理手段は前記フレーム内符号化処理による映像フレームが生成されてから閾値時間が経過した以降に前記符号化処理手段に前記フレーム内符号化処理による映像フレームを生成させる
ことを特徴とする請求項１乃至４のいずれか１項に記載の映像処理装置。
【請求項８】
映像処理装置における映像処理方法であって、
取得手段が、撮像手段によって撮像された映像データを取得する取得工程と、
符号化処理手段が、一定の時間ごとに行うフレーム内符号化処理または前記時間内に行うフレーム間符号化処理により前記映像データを符号化した映像フレームを生成する符号化処理工程と、
記憶手段が、符号化された映像フレームを保存する記憶工程と、
映像管理手段が、前記記憶手段に保存されている映像フレームと、前記記憶手段に前記映像フレームが保存された後に前記符号化処理工程で符号化された映像フレームとのフレーム間の連続性を管理する映像管理工程と、を有し、
前記映像管理工程は、前記フレーム間が不連続となる場合、前記符号化処理工程に前記フレーム内符号化処理による映像フレームを生成させることを特徴する映像処理方法。
【請求項９】
コンピュータを、請求項１乃至７のいずれか１項に記載の映像処理装置の各手段として記載させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像処理装置、映像処理方法およびプログラムに関する。特にフレーム間予測符号化を用いた動画データの映像処理技術に関する。
【背景技術】
【０００２】
近年、インターネットなどＩＰ(Internet Protocol)ネットワークを利用した映像配信システムが増加してきている。映像配信システムは、例えば、スキー場や動物園の状況を配信するインターネットサイトに採用されており、他にも店舗・ビル監視などにもネットワークを利用した映像配信システムが採用されている。
【０００３】
このような映像配信システムでは、Ｈ．２６４のようなフレーム間予測符号化を用いて高画質でデータ量の少ない映像を配信・蓄積するケースが増えている。フレーム間予測符号化では、完全な映像フレームを構成するのに必要な映像情報を有するフレーム内符号化フレーム（Ｉフレーム）と予測画像との差分の映像情報を有するフレーム間符号化フレーム（Ｐ、Ｂフレーム）とが用いられる。以下、フレーム内符号化フレームを独立フレームとし、フレーム間符号化フレームを従属フレームとして説明する。
【０００４】
一般的に従属フレームには元となる独立フレームが必要となり、映像データは１つの独立フレームに対して複数の従属フレームから構成される。独立フレームおよび従属フレームのグループはＧＯＰ（Ｇｒｏｕｐ Ｏｆ Ｐｉｃｔｕｒｅ）と呼ばれる。一般的に独立フレームは完全な映像情報を含むため従属フレームと比較してデータ量が多い。このため、画質を重視する場合は独立フレームの比率を高め、映像データの圧縮効率を重視する場合は従属フレームの比率が高められる。従来、Ｐフレームのような従属フレームが連続する場合は直前の従属フレームも必要となるため、途中の従属フレームが何等かの理由により生成できなかった場合は、次の独立フレームが生成されるまで再生できなかった。例えば、特許文献１では、データ受信装置がパケット落ちを検出すると、データ送信装置に独立フレームの挿入を要求する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００６−５０８５７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数の符号化処理を同時に行い、さらに多数の他装置に映像配信するネットワークカメラ等の装置においては、映像フレームを生成する段階で映像フレーム落ちが発生する。
【０００７】
しかしながら、上述の特許文献１に開示された従来技術では、受信装置からの独立フレームの挿入要求を待たなければ独立フレームを挿入できなかった。また、連続で独立フレームの要求が発生するような場合、データ量が多い独立フレームを連続で生成することになり、逆に送信処理の負荷や、ネットワークの負荷を高めることになっていた。
【０００８】
本発明は、処理負荷が高くて映像フレームを全て生成できない状況でも、受信装置からの独立フレームの挿入要求を待つことなく独立フレームを挿入し、映像再生できない時間を低減する映像処理技術を提供することを目的とする。
【０００９】
あるいは、本発明は、映像フレーム落ちが連続で発生する状況でも、連続で独立フレームを生成せずに、送信処理の負荷やネットワークの負荷を軽減することが可能な映像処理技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の目的を達成する本発明の一つの側面に係る映像処理装置は、
撮像手段によって撮像された映像データを取得する取得手段と、
一定の時間ごとに行うフレーム内符号化処理または前記時間内に複数回行うフレーム間符号化処理により前記映像データを符号化した映像フレームを生成する符号化処理手段と、
符号化された映像フレームを保存する記憶手段と、
前記記憶手段に保存されている映像フレームと、前記記憶手段に前記映像フレームが保存された後に前記符号化処理手段によって符号化された映像フレームとのフレーム間の連続性を管理する映像管理手段と、を有し、
前記映像管理手段は、前記フレーム間が不連続となる場合、前記符号化処理手段に前記フレーム内符号化処理による映像フレームを生成させることを特徴する。
【発明の効果】
【００１１】
本発明によれば、処理負荷が高くて映像フレームを全て生成できない状況でも、受信装置からの独立フレームの挿入要求を待つことなく独立フレームを挿入し、映像再生できない時間を低減することが可能になる。
【００１２】
あるいは、本発明によれば、映像フレーム落ちが連続で発生する状況でも、連続で独立フレームを生成せずに、送信処理の負荷やネットワークの負荷を軽減することが可能になる。
【図面の簡単な説明】
【００１３】
【図１】カメラサーバのソフトウェア構成を示す図。
【図２】実施形態に係る映像処理システムの構成を示す図。
【図３】カメラサーバのハードウェア構成を示す図。
【図４】フレーム落ちした映像フレームを例示的に示す図。
【図５】第１実施例に係る映像処理装置の処理の流れを示す図。
【図６】第２実施例に係る映像処理装置の処理の流れを示す図。
【図７】第３実施例に係る映像処理装置の処理の流れを示す図。
【図８】第４実施例に係る映像処理装置の処理の流れを示す図。
【発明を実施するための形態】
【００１４】
本発明の実施形態を、添付の図面に基づいて詳細に説明する。図２は本発明の実施形態に係る映像処理システムの構成を示す図である。カメラサーバ２００およびクライアント２２０がネットワーク２３０を介して相互に接続されている。カメラサーバ２００は撮像装置（カメラ）を備えており、カメラの撮影画角は可変もしくは固定されている。カメラサーバ２００はカメラによって撮影された画像データをネットワーク２３０を介して配信することが可能である。クライアント２２０はカメラサーバ２００にアクセスし、画像データを取得することが可能である。カメラサーバ２００の詳細については後述する。
【００１５】
なお、説明の簡略化のために映像処理システムを構成するカメラサーバは１台としているが、映像処理システムは複数台のカメラサーバを有してもよい。
【００１６】
また、クライアント２２０以外にもカメラサーバ２００にアクセスして画像データの受信や蓄積を行う他のクライアントがあっても構わない。
【００１７】
ネットワーク２３０はＥｔｈｅｒｎｅｔ(登録商標) 等の通信規格を満足する複数のルータ、スイッチ、ケーブル等から構成される。本発明の実施形態においては各サーバ・クライアント間の通信が支障なく行えるものであればその通信規格、規模、構成を問わない。ネットワーク２３０は、例えば、インターネットからＬＡＮ（Local Area Network）にまで適用可能である。
【００１８】
図３はカメラサーバ２００のハードウェア構成を示す図である。ＣＰＵ３００、１次記憶部３１０、２次記憶部３２０、画像キャプチャインタフェース（Ｉ/Ｆ）３３０、およびネットワークインタフェース（Ｉ/Ｆ）３６０は内部バス３０１を介して相互に接続されている。
【００１９】
１次記憶部３１０は、例えば、ＲＡＭに代表される書き込み可能な高速の記憶部で、ＯＳや各種プログラム及び各種データがロードされ、またＯＳや各種プログラムの作業領域としても使用される。２次記憶部３２０は、例えば、ＦＤＤやＨＤＤ、フラッシュメモリ、ＣＤ-ＲＯＭドライブ等に代表される不揮発性を持った記憶部である。２次記憶部３２０はＯＳや各種プログラム及び各種データの永続的な記憶領域として使用される他に、短期的な各種データの記憶領域としても使用される。カメラサーバ２００の１次記憶部３１０および２次記憶部３２０に記憶される各種プログラム等の詳細については後述する。
【００２０】
画像キャプチャインタフェース３３０にはカメラ３７０が接続され、画像キャプチャインタフェース３３０は、カメラ３７０によって撮像された映像データ（画像データ）を所定のフォーマットに変換・圧縮して１次記憶部３１０に転送する。ネットワークインタフェース３６０はネットワーク２３０と接続するためのインタフェースであり、Ｅｔｈｅｒｎｅｔ等の通信媒体を介してクライアント２２０等との通信を担う。
【００２１】
図１は、カメラサーバ２００のソフトウェアの構成を示す図である。１次記憶部３１０上に、ＯＳ１００、撮像処理プログラム１１０、符号化処理プログラム１１１、映像管理プログラム１１２、及び配信処理プログラム１１４がロードされる。図３に示すハードウェア構成の下に各プログラムを実行させることで、各プログラムの処理に対応した処理機能を有するカメラサーバ２００が構成される。
【００２２】
ＯＳ１００はカメラサーバ２００の全体を制御する基本プログラムである。撮像処理プログラム１１０はカメラ３７０で撮像された映像データを画像キャプチャインタフェース３３０経由で取得し、符号化処理プログラム１１１に送信する。符号化処理プログラム１１１は、撮像処理プログラム１１０から送信された映像データを受信して、予め指定されたフレーム間予測符号化設定に従い、映像フレーム（独立フレーム、または従属フレーム）を生成する。
【００２３】
符号化処理プログラム１１１は、フレーム間予測符号化設定に従い一定の時間ごとに行うフレーム内符号化処理または時間内に複数回行うフレーム間符号化処理により映像データを符号化した映像フレームを生成する。符号化処理プログラム１１１は、フレーム内符号化により完全な映像フレームを構成するのに必要な映像情報を有する独立フレーム（Ｉフレーム）、フレーム間符号化により予測画像との差分の映像情報を有する従属フレーム（Ｐ、Ｂフレーム）を生成する。このとき、映像管理プログラム１１２からの要求があった場合は独立フレームを生成する。生成された映像フレームは１次記憶部３１０に保存される。映像管理プログラム１１２は符号化処理プログラム１１１によって生成された映像フレーム間が連続かどうかを確認し、連続の場合は配信処理プログラム１１４に映像フレームの送信処理を要求する。映像フレーム間が連続でない場合、映像管理プログラム１１２は、符号化処理プログラム１１１に独立フレームを要求する。配信処理プログラム１１４は、クライアント２２０からのリクエスト（画像取得要求）に応じて、１次記憶部３１０に保存されている映像フレームを所定のフォーマットで配信する。この際、配信処理プログラム１１４はネットワークインタフェース３６０を制御して、ネットワーク２３０（通信媒体）を介して各種クライアントへ映像フレームを配信する。各プログラム同士の連携は、必要に応じてＯＳ１００が提供する機能を用いることとする。
【００２４】
図４は、フレーム落ちした映像フレームを例示的に示す図である。図４（ａ）は、独立フレームを挿入しなかった場合の映像フレームの例である。映像フレーム４００は独立フレーム（Ｉフレーム）を示し、次に生成された映像フレーム４０１は映像フレーム４００の従属フレーム（Ｐフレーム）であることを示している。映像フレーム４０２〜４０７は、それぞれが直前のフレームの従属フレーム（Ｐフレーム）であることを示している。
【００２５】
映像フレーム４０８は、独立フレーム（Ｉフレーム）であり、映像フレーム４０７の次の映像データが独立フレームとして符号化されたことを示している。映像フレーム４０９は映像フレーム４０８の従属フレーム（Ｐフレーム）であることを示している。図４（ａ）におけるＧＯＰは、映像フレーム４００〜４０７の８フレームである。また、図４（ａ）では、映像フレーム４０２が、処理能力不足等の何等か理由により生成できなかったことを示している。この場合、映像フレーム４０２に続く映像フレーム４０３〜４０７は映像フレーム４０２がないと再生できない。このため、期間Ｔ４１０は映像フレームの欠落がないため再生可能期間となり、期間Ｔ４１１は映像フレーム４０２の欠落により再生不可期間となる。映像フレーム４０８および映像フレーム４０９以降の映像フレームの期間Ｔ４１２は、映像フレームの欠落がないため再生可能期間となる。
【００２６】
図４（ａ）ではＧＯＰは８フレーム単位として説明したが、ＬｏｎｇＧＯＰと呼ばれるような１ＧＯＰに含まれるフレーム数が多くなるような状況では、再生できない期間はさらに長くなる。例えば、ＧＯＰ単位が３０ｆｐｓで５秒だと１５０フレーム、６０ｆｐｓで６０秒だと３６００フレームとなり、フレーム落ちするタイミングによってはかなりの長期間、再生できない時間帯ができてしまう。
【００２７】
図４（ｂ）は、独立フレームを挿入した場合の映像フレームの例である。映像フレーム４５０〜４５９は、図４（ａ）の映像フレーム４００〜４０９に相当している。また、映像フレーム４５２がフレーム落ちし、それを検出して映像フレーム４５４に独立フレーム（Ｉフレーム）を挿入したことを示している。図４（ａ）と同様に、期間Ｔ４６０は再生可能期間、期間Ｔ４６１は再生不可期間、期間Ｔ４６２は再生可能期間を示しており、再生不可期間は期間Ｔ４１１から期間Ｔ４６１へと短縮されていることが分かる。
【００２８】
（第１実施例）
本発明の第１実施例に係る映像処理装置（カメラサーバ２００）の処理の流れを図５のフローチャートを用いて説明する。映像管理プログラム１１２は、映像処理装置（カメラサーバ２００）の電源投入、またはクライアント２２０からの画像取得要求を受け付けた配信処理プログラム１１４より起動される。
【００２９】
ステップＳ５０１において、起動された映像管理プログラム１１２は、まず内部状態を独立フレーム待ちに設定する。
【００３０】
次に、ステップＳ５０２において、映像管理プログラム１１２は符号化処理プログラム１１１によって映像フレームが生成されるのを待つ。ここで、映像フレームには、符号化された映像情報と、映像フレームの連続性を判定するための情報として連続で増加するフレーム番号と、映像フレームが独立フレームなのか従属フレームなのかを識別するための情報（識別情報）とが含まれるものとする。
【００３１】
ステップＳ５０４において、符号化処理プログラム１１１によって映像フレームが生成されると、映像管理プログラム１１２は現在の内部状態の設定を判定する。内部状態の設定が次フレーム待ちの場合、処理をステップＳ５２０に進める。一方、内部状態の設定が独立フレーム待ちの場合、処理をステップＳ５１０に進める。
【００３２】
ステップＳ５１０において、映像管理プログラム１１２は符号化処理プログラム１１１によって生成された映像フレームが独立フレームかどうかを映像フレームに含まれる識別情報に基づいて判断する。生成された映像フレームが独立フレームの場合（Ｓ５１０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ５１１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ５１２）。そして、映像管理プログラム１１２は独立フレーム待ちの内部状態の設定を次フレーム待ち（従属フレーム待ち）の内部状態に設定して（ステップＳ５１３）、次の映像フレーム待ちの処理（ステップＳ５０２）に戻す。
【００３３】
一方、ステップＳ５１０の判定において、映像フレームが独立フレームではない場合（Ｓ５１０−Ｎｏ）、何もせずに次の映像フレーム待ちの処理（ステップＳ５０２）に戻す。
【００３４】
ステップＳ５０４の判定処理において、内部状態の設定が次フレーム待ちであった場合、映像管理プログラム１１２は処理をステップＳ５２０に進める。映像管理プログラム１１２は生成された映像フレームのフレーム番号が保存されているフレーム番号（Ｎ：自然数）の次の映像フレームを示すフレーム番号（Ｎ＋１）であるかどうかを両者の比較により判定する（ステップＳ５２０）。生成された映像フレームのフレーム番号が次の映像フレームを示すフレーム番号であった場合（Ｓ５２０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ５２１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ５２２）。
【００３５】
フレーム番号の連続性の判定処理（ステップＳ５２０）で、新たに生成された映像フレームのフレーム番号が既に保存されている映像フレームのフレーム番号に対して不連続となる場合、処理はステップＳ５２３に進められる。ここで、映像管理プログラム１１２は映像フレームの不連続を検出した場合、ユーザに通知して、符号化処理プログラム１１１に対して設定されているフレーム間予測符号化設定の変更を促すことも可能である。
【００３６】
ステップＳ５２３において、映像管理プログラム１１２は符号化処理プログラム１１１に設定されている、定期的にフレーム内符号化を行う間隔（独立フレームの間隔：ＧＯＰ間隔）が所定の閾値時間以上（例えば、１秒以上）かどうかを判定する。独立フレームの間隔（ＧＯＰ間隔）が閾値時間以上（１秒以上）の場合（Ｓ５２３−Ｙｅｓ）、映像管理プログラム１１２は符号化処理プログラム１１１に独立フレームの生成を要求する（ステップＳ５２４）。符号化処理プログラム１１１は、映像管理プログラム１１２からの要求に応じて、次に生成する映像フレームとして独立フレームを生成する。そして、ステップＳ５２５において、映像管理プログラム１１２は次フレーム待ちの内部状態の設定を独立フレーム待ちの内部状態に設定する。
【００３７】
一方、ステップＳ５２３の判定処理で、独立フレームの間隔（ＧＯＰ間隔）が閾値時間未満（例えば、１秒未満）の場合（Ｓ５２３−Ｎｏ）、何もせず映像フレーム待ちの処理に戻る（ステップＳ５０２）。すなわち、フレーム間が不連続となった場合でも、独立フレームの間隔（ＧＯＰ間隔）が閾値時間未満に設定されている場合、次の独立フレームを前の独立フレームが生成されてからＧＯＰ間隔が経過した時に生成させる。一方、ＧＯＰ間隔が閾値時間以上に設定されている場合、次の独立フレームを前の独立フレームが生成されてからＧＯＰ間隔が経過する前に生成させる。本実施例では、ステップＳ５２３における閾値時間を例示的に１秒としたが、本発明の趣旨はこの例に限定されるものではなく、閾値時間として任意の時間を設定することは可能である。一般的に独立フレームの間隔（ＧＯＰ間隔）は０．５秒程度から数十秒であることが多い。また、独立フレームの間隔（ＧＯＰ間隔）が常に閾値時間以上の値をとるような場合、ステップＳ５２３の判定処理を行わず、ステップＳ５２４の処理を直接行ってもよい。本実施例では、映像管理プログラム１１２が独立フレームの間隔（ＧＯＰ間隔）を判定したが、符号化処理プログラム１１１が独立フレームの挿入要求を受信した際に判定してもよい。
【００３８】
本実施例によれば、映像フレームに含まれるフレーム番号が非連続になったことを検出し、独立フレームを挿入することで、再生できない期間を短縮することができる。
【００３９】
（第２実施例）
本発明の第２実施例に係る映像処理装置（カメラサーバ２００）の処理の流れを図６のフローチャートを用いて説明する。映像管理プログラム１１２は、映像処理装置（カメラサーバ２００）の電源投入、またはクライアント２２０からの画像取得要求を受け付けた配信処理プログラム１１４より起動される。
【００４０】
起動された映像管理プログラム１１２は、まず内部状態を独立フレーム待ちに設定する（Ｓ６０１）。
【００４１】
次に、映像管理プログラム１１２は、映像フレームの生成処理が間に合わなかったと判断するためのタイムアウト時間（処理時間）を指定して、符号化処理プログラム１１１によって映像フレームが生成されるのを待つ（ステップＳ６０２）。映像管理プログラム１１２は、符号化処理プログラムの処理が指定されたタイムアウト時間（処理時間）の間に完了するか否かを判定し、符号化処理プログラムの処理が完了しない場合、フレーム間は不連続になると判定する。ここで、映像フレームには、符号化された映像情報と、映像フレームの連続性を判定するための情報として連続で増加するフレーム番号と、映像フレームが独立フレームなのか従属フレームなのかを識別するための情報（識別情報）とが含まれる。
【００４２】
ステップＳ６０３において、映像管理プログラム１１２は、先のステップＳ６０２の処理でタイムアウトとなったか、または符号化処理プログラム１１１からのエラー通知を受信していないかどうかを判定する。タイムアウト、またはエラー通知であった場合（Ｓ６０３−Ｙｅｓ）、映像管理プログラム１１２は、符号化処理プログラム１１１に独立フレームの生成を要求する（ステップＳ６３０）。符号化処理プログラム１１１は、映像管理プログラム１１２からの要求に応じて、次に生成する映像フレームとして独立フレームを生成する。
【００４３】
ステップＳ６３１において、映像管理プログラム１１２は内部状態の設定を独立フレーム待ちの内部状態に設定して、次の映像フレーム待ちの処理（ステップＳ６０２）に戻す。
【００４４】
一方、ステップＳ６０３の判定処理で、タイムアウトまたはエラー通知ではなく、映像フレームが生成された場合（Ｓ６０３−Ｎｏ）、映像管理プログラム１１２は現在の内部状態の設定を判定する（ステップＳ６０４）。内部状態の設定が次フレーム待ちの場合、処理をステップＳ６２０に進める。一方、内部状態の設定が独立フレーム待ちの場合、処理をステップＳ６１０に進める。
【００４５】
ステップＳ６１０において、映像管理プログラム１１２は符号化処理プログラム１１１によって生成された映像フレームが独立フレームかどうかを映像フレームに含まれる識別情報に基づいて判断する。生成された映像フレームが独立フレームの場合（Ｓ６１０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ６１１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ６１２）。そして、映像管理プログラム１１２は独立フレーム待ちの内部状態の設定を次フレーム待ちの内部状態に設定して（ステップＳ６１３）、映像フレーム待ちの処理（ステップＳ６０２）に戻す。
【００４６】
一方、ステップＳ６１０の判定において、映像フレームが独立フレームではない場合（Ｓ６１０−Ｎｏ）、何もせずに映像フレーム待ちの処理（ステップＳ６０２）に戻す。
【００４７】
ステップＳ６０４の判定処理において、内部状態の設定が次フレーム待ちであった場合、映像管理プログラム１１２は処理をステップＳ６２０に進める。映像管理プログラム１１２は生成された映像フレームのフレーム番号が、既に保存されているフレーム番号（Ｎ：自然数）の次の映像フレームを示すフレーム番号（Ｎ＋１）であるかどうかを判定する（ステップＳ６２０）。生成された映像フレームのフレーム番号が次の映像フレームを示すフレーム番号であった場合（Ｓ６２０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ６２１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ６２２）。
【００４８】
フレーム番号の連続性の判定処理（ステップＳ６２０）で、新たに生成された映像フレームのフレーム番号が既に保存されている映像フレームのフレーム番号に対して不連続となる場合、処理はステップＳ６２３に進められる。ここで、映像管理プログラム１１２は映像フレームの不連続を検出した場合、ユーザに通知して、符号化処理プログラム１１１に対して設定されているフレーム間予測符号化設定の変更を促すことも可能である。
【００４９】
ステップＳ６２３において、映像管理プログラム１１２は符号化処理プログラム１１１に独立フレームの生成を要求する。符号化処理プログラム１１１は、映像管理プログラム１１２からの要求に応じて、次に生成する映像フレームとして独立フレームを生成する。そして、ステップＳ６２４において、映像管理プログラム１１２は内部状態の設定を独立フレーム待ちに設定して、映像フレーム待ちの処理（ステップＳ６０２）に戻す。
【００５０】
本実施例では、第１実施例で説明した独立フレームの間隔のチェック処理（ステップＳ５２３）を省略しているが、ステップＳ５２３のチェック処理をステップＳ６２３の前、ステップＳ６３０の前に追加することも可能である。
【００５１】
一定時間映像フレームが生成されない場合、または符号化処理におけるエラーを検出することにより映像フレームが非連続になったことを検出し、独立フレームを挿入することで、再生できない期間を短縮することができる。
【００５２】
（第３実施例）
本発明の第３実施例に係る映像処理装置（カメラサーバ２００）の処理の流れを図７のフローチャートを用いて説明する。映像管理プログラム１１２は、映像処理装置（カメラサーバ２００）の電源投入、またはクライアント２２０からの画像取得要求を受け付けた配信処理プログラム１１４より起動される。
【００５３】
起動された映像管理プログラム１１２は、まず内部状態を独立フレーム待ちに設定する（Ｓ７０１）。
【００５４】
次に、映像管理プログラム１１２は、符号化処理プログラム１１１によって映像フレームが生成されるのを待つ（ステップＳ７０２）。ここで、映像フレームには、符号化された映像情報と、映像フレームの連続性を判定するための情報として連続で増加するフレーム番号と、映像フレームが独立フレームなのか従属フレームなのかを識別するための情報（識別情報）とが含まれる。
【００５５】
映像フレームが生成されると、映像管理プログラム１１２は現在の内部状態を判定する（ステップＳ７０４）。内部状態が次フレーム待ちの場合、処理をステップＳ７２０に進める。一方、内部状態が独立フレーム待ちの場合、処理をステップＳ７１０に進める。
【００５６】
ステップＳ７１０において、映像管理プログラム１１２は符号化処理プログラム１１１によって生成された映像フレームが独立フレームかどうかを映像フレームに含まれる識別情報に基づいて判断する。生成された映像フレームが独立フレームの場合（Ｓ７１０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ７１１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ７１２）。そして、映像管理プログラム１１２は独立フレーム待ちの内部状態の設定を次フレーム待ちの内部状態に設定する（ステップＳ７１３）。
【００５７】
一方、ステップＳ７１０の判定処理において、映像フレームが独立フレームではない場合（Ｓ７１０−Ｎｏ）、何もせずに処理をステップＳ７１４に進める。
【００５８】
映像管理プログラム１１２は生成された映像フレームが独立フレームであるかを判定し（ステップＳ７１４）、独立フレームの場合は独立フレームの間隔（ＧＯＰ間隔）の設定から次の独立フレームの番号を保存する（ステップＳ７１５）。ステップＳ７１５で保存する情報は次の独立フレームのフレーム番号としたが、次の独立フレームまでの間隔が分かる情報であれば、フレーム番号に限定されず、時刻情報等他の情報であっても構わない。
【００５９】
一方、ステップＳ７１４の判定処理で、独立フレームでない場合は何もせず、次の映像フレーム待ちの処理（ステップＳ７０２）に戻す。
【００６０】
ステップＳ７０４の判定処理において、内部状態の設定が次フレーム待ちであった場合、映像管理プログラム１１２は処理をステップＳ７２０に進める。映像管理プログラム１１２は生成された映像フレームのフレーム番号が、既に保存されているフレーム番号（Ｎ：自然数）の次の映像フレームを示すフレーム番号（Ｎ＋１）であるかどうかを判定する（ステップＳ７２０）。生成された映像フレームのフレーム番号が次の映像フレームを示すフレーム番号であった場合（Ｓ７２０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ７２１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ７２２）。
【００６１】
フレーム番号の連続性の判定処理（ステップＳ７２０）で、新たに生成された映像フレームのフレーム番号が既に保存されている映像フレームのフレーム番号に対して不連続となる場合、処理はステップＳ７２４に進められる。ここで、映像管理プログラム１１２は映像フレームの不連続を検出した場合、ユーザに通知して、符号化処理プログラム１１１に対して設定されているフレーム間予測符号化設定の変更を促すことも可能である。
【００６２】
ステップＳ７２４では、先のステップＳ７１５で保存された次の独立フレームのフレーム番号と、生成された映像フレームのフレーム番号とから次の独立フレームが生成されるまでの生成時間を算出する（ステップＳ７２４）。映像管理プログラム１１２は算出した生成時間が閾値時間以上（例えば、１秒以上）かどうかを判定する（ステップＳ７２５）。映像管理プログラム１１２は算出した生成時間が閾値時間以上（１秒以上）の場合、処理をステップＳ７２６に進める。本実施例では、ステップＳ７２５における閾値時間を例示的に１秒としたが、本発明の趣旨はこの例に限定されるものではなく、閾値時間として任意の時間を設定することは可能である。
【００６３】
ステップＳ７２６において、映像管理プログラム１１２は符号化処理プログラム１１１に独立フレームの生成を要求する。符号化処理プログラム１１１は、映像管理プログラム１１２からの要求に応じて独立フレームを生成する。そして、ステップＳ７２７において、映像管理プログラム１１２は内部状態の設定を独立フレーム待ちに設定して、処理をステップＳ７１４に進める。
【００６４】
一方、ステップＳ７２５の判定処理において、閾値時間未満（１秒未満）の場合（Ｓ７２５−Ｎｏ）、内部状態の設定を独立フレーム待ちに設定して（ステップＳ７２７）、処理をステップＳ７１４に進め、同様の処理を繰り返す。すなわち、フレーム間が不連続となった場合でも、次の独立フレームまでの生成時間が閾値時間未満となる場合、次の独立フレームを前の独立フレームが生成されてから一定の時間（ＧＯＰ間隔）が経過した時に生成させる。一方、次の独立フレームまでの生成時間が閾値時間以上となる場合、次の独立フレームを前の独立フレームが生成されてから一定の時間（ＧＯＰ間隔）が経過する前に生成させる。
【００６５】
本実施例では、第１実施例で説明した独立フレームの間隔のチェック処理（ステップＳ５２３）を省略しているが、ステップＳ５２３のチェック処理をステップＳ７２６の前に追加することも可能である。
【００６６】
映像フレームが非連続になっても次の独立フレームまでの時間が一定時間以上ある場合にだけ独立フレームを挿入することで、再生できない期間を短縮し、かつ独立フレームが連続しないように映像フレームを生成することができる。
【００６７】
（第４実施例）
本発明の第４実施例に係る映像処理装置（カメラサーバ２００）の処理の流れを図８のフローチャートを用いて説明する。映像管理プログラム１１２は、映像処理装置（カメラサーバ２００）の電源投入、またはクライアント２２０からの画像取得要求を受け付けた配信処理プログラム１１４より起動される。
【００６８】
起動された映像管理プログラム１１２は、まず内部状態を独立フレーム待ちに設定する（Ｓ８０１）。
【００６９】
次に、映像管理プログラム１１２は、符号化処理プログラム１１１によって映像フレームが生成されるのを待つ（ステップＳ８０２）。ここで、映像フレームには、符号化された映像情報と、映像フレームの連続性を判定するための情報として連続で増加するフレーム番号と、映像フレームが独立フレームなのか従属フレームなのかを識別するための情報（識別情報）とが含まれる。
【００７０】
映像フレームが生成されると、映像管理プログラム１１２は現在の内部状態を判定する（ステップＳ８０４）。内部状態が独立フレーム待ちの場合、処理はステップＳ８１０に進められる。
【００７１】
ステップＳ８１０において、映像管理プログラム１１２は符号化処理プログラム１１１によって生成された映像フレームが独立フレームかどうかを映像フレームに含まれる識別情報に基づいて判断する。
【００７２】
生成された映像フレームが独立フレームの場合（Ｓ８１０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ８１１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ８１２）。映像管理プログラム１１２は独立フレーム待ちの内部状態の設定を次フレーム待ちの内部状態に設定し（ステップＳ８１３）、保存した映像フレーム（フレーム番号）を独立フレーム（独立フレーム番号）として保存する（ステップＳ８１４）。そして、次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００７３】
一方、ステップＳ８１０の判定処理において、映像フレームが独立フレームではない場合（Ｓ８１０−Ｎｏ）、何もせずに処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００７４】
ステップＳ８０４の判定処理において、内部状態の設定が独立フレーム待ちでない場合、処理はステップＳ８１９に進められる。ステップＳ８１９において、映像管理プログラム１１２は現在の内部状態が、次フレーム待ちの設定であるか、一定時間待ちの設定であるかを判定する。現在の内部状態が次フレーム待ちの設定である場合、処理はステップＳ８２０に進められる。
【００７５】
映像管理プログラム１１２は生成された映像フレームのフレーム番号が、既に保存されているフレーム番号（Ｎ：自然数）の次の映像フレームを示すフレーム番号（Ｎ＋１）であるかどうかを判定する（ステップＳ８２０）。生成された映像フレームのフレーム番号が次の映像フレームを示すフレーム番号であった場合（Ｓ８２０−Ｙｅｓ）、映像管理プログラム１１２は配信処理プログラム１１４に映像配信を要求する（ステップＳ８２１）。映像管理プログラム１１２は生成された映像フレーム（映像情報、フレーム番号、映像フレームが独立フレームなのか従属フレームなのかを識別するための識別情報）を１次記憶部３１０に保存する（ステップＳ８２２）。
【００７６】
次に、映像管理プログラム１１２は生成された映像フレームが独立フレームかどうかを判定する（ステップＳ８２３）。独立フレームの場合（ステップＳ８２３―Ｙｅｓ）、映像管理プログラム１１２は保存した映像フレーム（フレーム番号）を独立フレーム（独立フレーム番号）として保存する（ステップＳ８２４）。ステップＳ８２３の判定処理で、独立フレームでない場合（Ｓ８２３−Ｎｏ）、何もせずに処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００７７】
フレーム番号の連続性の判定処理（ステップＳ８２０）で、新たに生成された映像フレームのフレーム番号が既に保存されている映像フレームのフレーム番号に対して不連続となる場合、処理はステップＳ８２５に進められる。ここで、映像管理プログラム１１２は映像フレームの不連続を検出した場合、ユーザに通知して、符号化処理プログラム１１１に対して設定されているフレーム間予測符号化設定の変更を促すことも可能である。
【００７８】
映像管理プログラム１１２は先のステップＳ８１４またはステップＳ８２４で保存された前の独立フレーム番号と、生成された映像フレームのフレーム番号とから前の独立フレーム生成からの経過時間を算出する（ステップＳ８２５）。そして、映像管理プログラム１１２は算出した経過時間が閾値時間以上（例えば、１秒以上）かどうかを判定する（ステップＳ８２６）。なお、本実施例では、独立フレームの間隔（ＧＯＰ間隔）は、この閾値時間（１秒）より長い時間、例えば、２秒である。
【００７９】
経過時間が閾値時間以上の場合、映像管理プログラム１１２は符号化処理プログラム１１１に独立フレームの生成を要求し（ステップＳ８２７）、次フレーム待ちの内部状態の設定を独立フレーム待ちに設定する（ステップＳ８２８）。そして、処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００８０】
ステップＳ８２６の判定処理において、経過時間が閾値時間未満（例えば、１秒未満）の場合、映像管理プログラム１１２は、次フレーム待ちの内部状態の設定を一定時間待ちに設定する（ステップＳ８２９）。そして、映像管理プログラム１１２は処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００８１】
一方、ステップＳ８１９の判定処理において、現在の内部状態が一定時間待ちの設定である場合、処理はステップＳ８３０に進められる。映像管理プログラム１１２は先のステップＳ８１４またはステップＳ８２４で保存された前の独立フレーム番号と、生成された映像フレームのフレーム番号とから前の独立フレーム生成からの経過時間を算出する（ステップＳ８３０）。
【００８２】
そして、映像管理プログラム１１２は算出した経過時間が閾値時間以上（例えば、１秒以上）かどうかを判定する（ステップＳ８３１）。
【００８３】
経過時間が閾値時間以上の場合、映像管理プログラム１１２は符号化処理プログラム１１１に独立フレームの生成を要求し（ステップＳ８３２）、次フレーム待ちの内部状態の設定を独立フレーム待ちに設定する（ステップＳ８３３）。そして、処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。すなわち、映像管理プログラム１１２は、前の独立フレームが生成されてから閾値時間が経過した以降に符号化処理プログラム１１１に独立フレームを生成させる。
【００８４】
ステップＳ８３１の判定処理において、経過時間が閾値時間未満（例えば、１秒未満）の場合（ステップＳ８３１−Ｎｏ）、映像管理プログラム１１２は、処理を次の映像フレーム待ちの処理（ステップＳ８０２）に戻す。
【００８５】
本実施例では、ステップＳ８２６およびステップＳ８３１における閾値時間を例示的に１秒としたが、本発明の趣旨はこの例に限定されるものではなく、閾値時間として任意の時間を設定することは可能である。
【００８６】
本実施例では、第１実施例で説明した独立フレームの間隔のチェック処理（ステップＳ５２３）を省略しているが、ステップＳ５２３のチェック処理をステップＳ８２７の前およびステップＳ８３２の前に追加することも可能である。
【００８７】
映像フレームに含まれるフレーム番号が非連続になっても直前の独立フレーム生成からの経過時間が一定時間以上である場合にだけ独立フレームを挿入する。一定時間以内である場合は一定時間経過してから独立フレームを挿入する。このように独立フレームを生成するタイミングを制御することで、再生できない期間を短縮し、かつ独立フレームが連続しない映像フレームを生成することができる。
【００８８】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2013157679.tif 000003
【図２】
2013157679.tif 000004
【図３】
2013157679.tif 000005
【図４】
2013157679.tif 000006
【図５】
2013157679.tif 000007
【図６】
2013157679.tif 000008
【図７】
2013157679.tif 000009
【図８】
2013157679.tif 000010