JP4878054B2 - 映像解析装置,映像解析方法および映像解析プログラム - Google Patents

映像解析装置,映像解析方法および映像解析プログラム Download PDF

Info

Publication number
JP4878054B2
JP4878054B2 JP2009048949A JP2009048949A JP4878054B2 JP 4878054 B2 JP4878054 B2 JP 4878054B2 JP 2009048949 A JP2009048949 A JP 2009048949A JP 2009048949 A JP2009048949 A JP 2009048949A JP 4878054 B2 JP4878054 B2 JP 4878054B2
Authority
JP
Japan
Prior art keywords
video analysis
frame
unit
video
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009048949A
Other languages
English (en)
Other versions
JP2010204892A (ja
Inventor
泰彦 宮崎
明 小島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009048949A priority Critical patent/JP4878054B2/ja
Publication of JP2010204892A publication Critical patent/JP2010204892A/ja
Application granted granted Critical
Publication of JP4878054B2 publication Critical patent/JP4878054B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)
  • Image Processing (AREA)

Description

本発明は,映像データから各種特徴量を解析する映像解析装置,映像解析方法およびそのプログラムに関するものである。
映像データを解析して,その映像の特徴的な区間やそれに付随する値(以下「特徴量」という)を自動的に出力する方式に関しては,従来から各種の技術が存在しており,例えば映像データ列から映像カット点を検出する技術(“CUT映像解析”と呼ぶこととする),画像データ列(映像データと同義)からカメラパラメータを推定する技術(“CAM映像解析”と呼ぶこととする) ,フレーム画像の中から文字部分を画素連結領域として抽出する文字領域抽出技術(“TLP映像解析”と呼ぶこととする) ,映像から動物体アップフレーム画像(アップショットともいう)を検出する技術(“UPS映像解析”と呼ぶこととする)などの種々の技術がある。
これらの技術に共通することは,映像を,連続する画像データ(フレームと呼ばれる)と捉え,時間的に近接する複数のフレームを入力データとして,それぞれ,カット,カメラワーク,テロップ,動物体アップショットなどの特微量を算出して出力することにある。そのため,単一のフレームデータ取得部(映像をフレーム画像データとして取得する機能)と,これらの技術とを組み合わせ,単一の映像データに対して,様々な特徴量を同時に出力する映像解析装置あるいは映像解析プログラムを構成することは可能であった。
実際に,映像からフレーム画像データを取得する処理は,CPUやメモリといったコンピュータ上のリソースを多く消費するため,一度のデコード処理で複数の特徴量を抽出することのメリットは大きい。
コンピュータ上のプログラムの実行にあたっては,CPUで実行する複数の処理単位からなるアプリケーションの処理を,各処理単位ごとに並列に非同期に実行するためのマルチスレッドという技術が従来から知られている。また,マルチスレッドプログラムにおいては,各スレッドの優先度を調整することにより,特定のスレッドに対して優先的にCPUを割り当てることができる。このようなマルチスレッド処理やスレッドに対する優先度の調整は,多くのオペレーティングシステム(OS)によりサポートされている。
また,近年のコンピュータにおいては,1つのコンピュータにCPUを複数搭載していたり(マルチCPUと呼ぶ) ,1つのCPUに複数の処理機構が組み込まれていたり(マルチコアと呼ぶ) することが一般化してきている。マルチコア,マルチCPU構成のコンピュータでは,マルチスレッドの非同期プログラム実行が,実際に複数のコアあるいはCPUで同時に行われるため,トータル処理時間を短縮することが可能となる。
さらに,各フレームデータに対する繰り返し処理を行う場合,フレームごとに異なる処理時間を平準化する方法としては,一般にバッファリングを行うことが知られている。例えば,特許文献1の段落0004などに,バッファリング技術が記載されている。
特開平9−214958号公報
一般に映像処理をコンピュータ上のプログラムとして実行する場合,膨大な計算量処理のために,CPUネックとなることが多い。しかしながら,単純な従来技術の組み合わせでは,十分な処理時間短縮効果が得られない。
図7は,本発明の課題を説明するための図であり,個別の特徴量抽出の技術を組み合わせて,様々な特徴量を同時に出力する装置の構成例を示す図である。図8は,図7に示す装置の動作シーケンスを示す図である。
従来技術の個別の特徴量抽出を実現する映像解析装置を組み合わせて,様々な特徴量を同時に出力する装置を考えた場合,例えば図7に示すような装置構成になると考えられる。
図7において,CUT映像解析部101は,映像のカット点の検出を行うものであり,その検出結果であるカット点に関する特徴量の出力機能を持つCUT特徴量出力部102を有する。CAM映像解析部111は,カメラパラメータの推定を行うものであり,その推定結果であるカメラワークに関する特徴量の出力機能を持つCAM特徴量出力部112を有する。TLP映像解析部121は,映像中のテロップの検出を行うものであり,その検出結果であるテロップに関する特徴量の出力機能を持つTLP特徴量出力部122を有する。UPS映像解析部131は,動物体アップフレーム画像の検出を行うものであり,その検出結果である動物体アップフレーム画像に関する特徴量の出力機能を持つUPS特徴量出力部132を有する。
フレームデータ取得部150は,圧縮符号化された映像データを,フレーム画像にデコードし,デコード結果のフレームデータを,制御部140の制御の下に,適当なタイミングで,CUT映像解析部101,CAM映像解析部111,TLP映像解析部121,UPS映像解析部131に渡す。制御部140は,これらの各部に映像を解析させる制御を行う。
例えば,図7に示すような装置構成を採用し,フレームデータ取得部150により取得されたフレームデータを,制御部140の制御の下に複数の映像解析部101〜131に渡し,これらの映像解析部101〜131がマルチスレッド構成により同時に実行されたとしても,以下に述べる理由により,次のフレームデータ処理に際して待ち状態が発生しやすくなる。このため,十分な処理時間短縮効果が得られないという問題が残る。
その理由は,以下のとおりである。各映像解析部101〜131は,それぞれ映像コンテンツに応じて必要な計算量がフレームによって異なる。例えば,画面にほとんど動きがない(カット,カメラワークといった特徴量がほとんどない)が,文字らしいものが映っているシーンの場合,テロップ特徴量抽出のみがCPU処理量が増大する。その後,文字が消えて,カメラの前をスキーヤーが通過するシーンになった場合,動物体アップショット特徴量抽出のみがCPU処理量が増大する。
図8はその状態を示しており,[k,k+1]フレームにおいては,前者の文字シーン,[k+2,k+3]フレームにおいては,後者のスキーシーンである。なお,高々2フレーム程度でシーンが別になることはあり得ないが,ここでは説明のために簡素化している(実際には,それぞれ長く連続する) 。
このように,フレームデータ取得部150から全映像解析部101〜131へフレームデータを渡すところで,もっとも処理時間がかかる映像解析部に対して待ちが発生してしまい,全体としてCPU使用率を高めることができなくなるため,トータル処理時間の短縮効果が小さくなる。
処理時間の平準化効果を利用してこの問題を回避するために,バッファリングの方法を応用することは可能である。バッファ領域を複数フレーム分設け,入力データを一時的にそこに溜める方法である。しかし,この方法を採用した場合には,ハードウェア資源であるバッファメモリの必要量が増大するという新たな問題が生じる。
図9に,図7に示す装置の問題をバッファリング技術によって回避することを考えた場合の装置の構成例を示す。図10は,その動作シーケンスを示す図である。図9の装置では,バッファリングの方法を応用して処理時間の平準化を図るために,フレームデータ取得部250と各映像解析部201〜231との間に,それぞれフレームバッファ部203〜233を設けている。
この場合,フレームデータ取得部250は,取得したデータを各フレームバッファ部203〜233のバッファ領域におくだけで,個々の映像解析部201〜231の処理終了に依存せずに次のフレームデータ取得を行うことができる。このため,図10に示すように,フレームデータの各映像解析部201〜231への受け渡しを一定の時間内で済ませることができ,トータル処理時間の短縮を図ることができる。
しかしながら,この場合,各映像解析部201〜231ごとにバッファ領域を設ける必要がある。一般に映像データの場合,デコードされたフレームデータは大きなメモリ領域が必要となるため,各映像解析部201〜231ごとに複数フレーム分のバッファ領域を設けることは非常に多くのメモリを必要とする。また,メモリへのコピー動作も必要となることから,その動作のために処理時間短縮効果が小さくなるという課題もある。
本発明は,上記問題点の解決を図り,必要なメモリ量を不必要に増大させることなく,トータルの処理時間を短縮することができるようにすることを目的とする。
上記課題を解決するため,本発明においては,共通的なバッファを1つだけ設け,そのバッファの動作状況をM×Nのテーブル(Mは全バッファ容量を1フレームデータ分のサイズで割った値,Nは映像解析部の個数)などによって監視する管理機能をもった制御部により管理を行い,マルチスレッド処理で映像解析を行う。
すなわち,本発明は,複数種類の要素技術を並列して用いて映像データから複数種類の特徴量を抽出する際に,処理に必要なメモリ量を抑制しつつ,処理時間の短縮を図る。このため,本発明は,要素技術が共通して用いる共通バッファ(図1のフレームバッファ部13)に処理対象となるフレーム情報を書き込み,各要素技術の映像解析部は,共通バッファに記録されているフレームに対する解析処理を実施する。制御部のフレームバッファ管理部は,動作状況テーブルにより解析処理の状況等を管理し,共通バッファ内に処理完了フレームがある場合に,フレームデータ取得部に新規フレームの共通バッファへの書き込みを行わせる。
この処理によって,要素技術ごとの専用バッファなしに,要素技術ごとの専用バッファがある場合と同様に,全要素技術の処理完了を待つことなく,要素技術ごとに独立してフレームの解析処理を実施できるようになる。
詳しくは,本発明は,映像からその映像の特徴的な区間やそれに付随する値である複数種類の特徴量を抽出して出力する映像解析装置であって,映像をフレームごとの画像データとして取得するフレームデータ取得部と,前記フレームデータ取得部により取得された画像データを一時的に蓄積する,1フレーム分の容量を持つバッファ領域をM個(M≧2)有するフレームバッファ部と,前記フレームバッファ部からフレームごとの画像データを入力して解析することによって,前記特徴量を個別に抽出するN個(N≧2)の映像解析部と,前記フレームバッファ部における前記M個の各バッファ領域ごとに,少なくとも前記各バッファ領域に格納された画像データに対する前記N個の各映像解析部の処理が完了しているか処理中であるかを示す動作状況情報を記憶する動作状況記憶部と,前記動作状況記憶部に記憶された動作状況を示す情報に基づき,前記フレームデータ取得部および前記N個の各映像解析部を非同期に実行させる制御を行い,前記フレームデータ取得部による前記バッファ領域への画像データの格納を,そのバッファ領域に対する前記N個の各映像解析部の処理が完了していることを確認してから行わせる制御部とを備えることを特徴とする。
また,上記発明において,前記制御部が,前記動作状況記憶部の動作状況を示す情報を参照し,前記N個の映像解析部のうち前記フレームバッファ部に格納されている画像データの処理が遅れている映像解析部の処理の実行優先度が高くなるように調整する手段を有することを特徴とする。
本発明により,必要なメモリ量を不必要に増大させることなく,N個の映像解析部が並列に特徴量抽出処理を実行する際のトータルの処理時間の短縮が可能となる。
本発明の実施形態に係る映像解析装置の構成例を示す図である。 本実施形態で用いる動作状況テーブルおよび管理用メモリ域の例を示す図である。 バッファ格納時の処理フローチャートである。 バッファ参照時の処理フローチャートである。 動作状況テーブルの具体的な使用例を示す図である。 非同期実行制御部および優先度調整部の処理フローチャートである。 本発明の課題を説明するための第1の構成例を示す図である。 図7の構成例の動作シーケンス図である。 本発明の課題を説明するための第2の構成例を示す図である。 図9の構成例の動作シーケンス図である。
以下では主に,本発明の各部を,CPUやメモリなどのハードウェアとソフトウェアプログラムを用いて実施する場合を例として述べる。
図1は,本発明の実施形態に係る映像解析装置の構成例を示す。映像解析装置1は,映像データからそれぞれ異なる特徴量を抽出するN個(N≧2)の映像解析部10[0],10[1],10[2],…(以下,符号を単に10と表記する場合もある)と,解析対象の映像をフレームごとの画像データとして取得するフレームデータ取得部12と,これらの実行を制御する制御部14とを備える。また,メモリ領域を利用した記憶手段として,フレームデータ取得部12により取得された画像データを一時的に蓄積するフレームバッファ部13と,フレームバッファ部13に格納された画像データに対する各映像解析部10の処理がどこまで進んでいるかを示す動作状況情報を記憶する動作状況テーブル20を備える。
フレームバッファ部13は,1フレーム分の容量を持つバッファ領域を少なくともM個(M≧2)有する。動作状況テーブル20は,このM個の各バッファ領域ごとに,各映像解析部10の動作状況を示す情報を管理する。
映像解析部10[0],10[1],10[2],…は,フレームバッファ部13に格納された画像データから抽出した特徴量を出力する特徴量出力部11[0],11[1],11[2],…(以下,符号を11と簡略表記する)を持つ。これらの特徴量出力部11自体は,それぞれ従来技術と同様なものでよい。
制御部14は,フレームバッファ部13を管理する機能を持つフレームバッファ管理部15,フレームデータ取得部12と各映像解析部10とを非同期に実行させる機能を持つ非同期実行制御部16,各映像解析部10の処理の実行優先度を調整する優先度調整部17を備える。
この例では,説明をわかりやすくするために,フレームデータ取得部12,制御部14,映像解析部10は,単一のコンピュータ上で実行されるソフトウェアモジュールによって構成されるものであり,各構成要素間の動作は,そのソフトウェアの関数コールの形式で実行されるものとして説明する。もちろん,本発明の実施は,必ずしも上記各部が単一のコンピュータ上で実行されるソフトウェアモジュールによって構成されるものに限定されるわけではなく,また,各部のインタフェースとして関数コールの形式を用いなくても実施できることは明らかである。
フレームデータ取得部12は,MPEGなどの形式で符号化・圧縮化等の処理がなされたファイルを入力し,フレーム画像にデコードする機能を有するソフトウェアによって実現される。このようなソフトウェアは数多く出回っており,デコード方法などの詳細な説明は省略するが,その基本的な動作は,初期化時に指定された(実際の指定方法は,コマンドラインにおける入力パラメータとして指定したり,初期化時にファイルオープンダイアログボックス等を画面に表示して利用者が選択したり,といった実施方法がある)MPEG等のファイルをオープンし,逐次,映像を構成する瞬間瞬間の画像データ(フレームデータと呼ばれる)を1フレームずつ取り出すことである。取り出されたフレームデータは,制御部14の制御の下にフレームバッファ部13内の領域に置かれる(詳しい動作は後述) 。ファイルの最後に到達し,これ以上フレームデータを取得できなくなった場合には,ファイルをクローズして処理を終了させる。
映像解析部10は,以下のような既存の技術を用いて実施することができる。例えば,映像解析部10が,映像データ列から映像カット点を検出し,時間的にゆっくりとしたシーン変化を含むカット点(カット区間)を出力するCUT映像解析を行う場合の実現方法としては,特許第2839132号に記載の方法がある。
また,他の特徴量抽出の例として,映像解析部10が,画像データ列(映像データと同じ意味で記載されている)からカメラパラメータを推定し,映像データから,パン,チルトなどと呼ばれるカメラ動作がある区間について,そのパラメータ値と共に出力するCAM映像解析を行う場合の実現方法としては,特許第3408117号に記載の方法がある。
また,映像解析部10が,フレーム画像の中から文字部分を画素連結領域として抽出する文字領域を抽出し,この方法を映像データのフレーム画像に適用することにより,映像データから,一般にテロップと呼ばれている文字領域が含まれる映像区間と,そのテロップ位置情報を出力するTLP映像解析を行う場合の実現方法としては,特許第3467195号に記載の方法がある。
また,映像解析部10が,映像から動物体アップフレーム画像を検出し,動物体がクローズアップされ比較的大きく写っている映像フレーム区間を出力するUPS映像解析を行う場合の実現方法としては,特開2006−244074号公報に記載の方法がある。
もちろん,これらに限定されず,フレームデータを逐次入力することにより,特徴量を解析して,ファイル等へ出力できる従来技術であれば,本発明の1機能として構成することは可能である。さらに,今後開発される技術に対しても,同様にフレームデータを逐次入力することにより,特徴量を解析して,ファイル等へ出力できるものであれば,適用することも可能である。
本発明における映像解析部10としては,制御部14の制御によりフレームバッファ部13からフレームデータを参照して入力とすることが必要となる。その動作については,制御部14を説明する際に詳述する。
なお,N個の映像解析部10は,0,1,2,…,N−1という番号を付与して管理する。
フレームバッファ部13は,最大M個のフレームデータを格納するために,M個に区切られた必要なメモリ領域として構成される。これらのメモリ領域(バッファ領域ともいう)は,0,1,2,…,M−1という番号を付与して管理する。
処理の詳細を説明するに先立ち,本実施形態の制御部14において,フレームバッファ管理部15がフレームバッファ部13の管理に用いる動作状況テーブル20と,その他の管理用メモリ域の内容を,図2に従って説明する。
動作状況テーブル20は,図2(A)に示すように,バッファ番号(図2ではバッファ#0,#1,…,#M−1と表記)ごとに,各映像解析部10[0],10[1],…,10[N−1]の動作状況を示すフラグF[i,j](i=0,1,…,M−1;j=0,1,…,N−1)を保持する。
この動作状況フラグF[i,j]の値は,図2(B)に示すように遷移する。初期値は,すべて「処理完」である。フレームデータ取得部12がフレームバッファ部13のバッファに画像データを書き込む準備ができたときに,F[i,j]の値は「デコード中」に遷移し,画像データの書き込みが終了すると「デコード完」となる。続いて,各映像解析部10がバッファ内の画像データを読み出して解析している間,F[i,j]の値は「解析中」に設定され,解析が終了してバッファ内の画像データが不要になると,「処理完」の状態に戻される。
フレームデータ取得部12が画像データを格納すべきバッファ番号を格納するメモリ域として,図2(C)に示す書き込み用バッファ番号格納メモリBdec が用いられる。また,図2(D)に示すように,各映像解析部10[j](j=0,1,…,N−1)が画像データを参照すべきバッファ番号を格納するメモリ域として参照用バッファ番号格納メモリB[j]が用いられる。Bdec およびB[j]の初期値は,すべて0とする。
なお,図2に示すメモリ域(動作状況テーブル20を含む)は,単にフラグや番号を格納するに過ぎないので,必要とするメモリの容量としては,フレームデータと比較して非常に小さい。
図3は,フレームバッファ部13への画像データの格納時のフレームデータ取得部12とフレームバッファ管理部15の処理フローを示している。
フレームバッファ管理部15は,前述した図2(A)に示す動作状況テーブル20によって,フレームバッファ部13のバッファ領域に対するフレームデータ取得部12および各映像解析部10の動作状況を管理する。フレームバッファ部13に対する映像解析装置1の動作は,基本的に「フレームデータ取得部12によるバッファへの書き込み」,「すべての映像解析部10によるバッファの参照」を繰り返すことである。そのため,動作状況テーブル20の各動作状況フラグF[i,j]によりその動作順を保証している。
フレームデータ取得部12は,制御部14の制御のもとに,フレームバッファ部13にデータを書き込む際に,まず指定された映像ファイルから1フレーム分のデータを取得する(ステップS10)。このステップS10は,最初にMPEG等の映像ファイルをオープンし,その映像ファイルから,逐次,1フレーム分のデータを呼び出してくる処理である。このような処理は,映像データに対するデコーダと呼ばれる機能であり,各種フォーマットの映像ファイルに対して,多くのデコーダがソフトウェアライブラリの形式で利用できるようになっているため,それを使うことで実施可能である。
フレームデータ取得部12は,1フレーム分のデータを取得すると,フレームバッファ管理部15の格納開始処理を呼び出す(ステップS11)。格納開始処理は,例えば制御部14が提供する関数として呼び出される。なお,後述するフレームバッファ管理部15の他の処理機能も同様の方法により呼び出されるが,サブルーチンあるいはマクロ命令機能を用いた呼び出し方法などを用いてもよい。
フレームバッファ管理部15では,動作状況テーブル20からBdec で示されるバッファのフラグ値,すなわち,F[Bdec ,0],F[Bdec ,1],…,F[Bdec ,N−1]を取得する(ステップS20)。次に,取得したN個のフラグ値がすべて「処理完」かどうかを調べる(ステップS21)。フラグ値がすべて「処理完」になっていなければ,あらかじめ定められたTwait秒間待った後(ステップS22),再度,ステップS20の処理を繰り返す。
すべてのフラグ値が「処理完」である場合には,動作状況テーブル20におけるF[Bdec ,0],F[Bdec ,1],…,F[Bdec ,N−1]のフラグ値を,すべて「デコード中」にセットする(ステップS23)。その後,フレームデータ取得部12に制御を戻す。
格納開始処理が終了すると,フレームデータ取得部12は,フレームバッファ部13におけるBdec 番目のバッファに,1フレーム分のデータをデコードして格納する(ステップS12)。デコードが終わったならば,フレームバッファ管理部15の格納終了処理を呼び出す(ステップS13)。
フレームバッファ管理部15では,動作状況テーブル20のBdec で示される動作状況フラグF[Bdec ,0],F[Bdec ,1],…,F[Bdec ,N−1]をすべて「デコード完」にセットする(ステップS30)。次に,書き込み用バッファ番号格納メモリBdec の値をカウントアップする(ステップS31)。すなわち,「Bdec =(Bdec +1) mod M」とする。ここで「mod M」は,Mによる剰余計算を表す。その後,フレームデータ取得部12に制御を戻す。
フレームデータ取得部12は,映像ファイルのデータが終了するまで,以上のステップS10〜S13を同様に繰り返す(ステップS14)。
図4は,フレームバッファ部13に格納された画像データの参照時の各映像解析部10[i]とフレームバッファ管理部15の処理フローを示している。
映像解析部10[i]は,画像データから特徴量を抽出するにあたって,解析対象となる画像データが格納されたバッファ領域を特定するために,まず,フレームバッファ管理部15の参照開始処理を呼び出す(ステップS40)。
フレームバッファ管理部15では,動作状況テーブル20からB[i]で示されるバッファの映像解析部10[i]の動作状況を示すフラグ値F[B[i],i]を取得する(ステップS50)。次に,取得したF[B[i],i]が「デコード完」になっているかどうかを調べる(ステップS51)。「デコード完」になっていなければ,あらかじめ定められたTwait秒間待った後(ステップS52),再度,ステップS50の処理を繰り返す。
F[B[i],i]が「デコード完」になっていれば,動作状況テーブル20におけるB[i]番目のバッファに対する映像解析部10[i]のフラグ値F[B[i],i]を,「デコード完」から「解析中」に更新する(ステップS53)。その後,B[i]で示されるバッファ領域情報を戻り値として,映像解析部10[i]に制御を戻す(ステップS54)。
映像解析部10[i]は,B[i]で示されるバッファ領域から画像データを読み込み,特徴量解析処理を行う(ステップS41)。読み込んだ画像データを解析することにより,特徴量が取得できた場合には,特徴量出力部11[i]によりその特徴量の出力処理を行う(ステップS42)。その後,フレームバッファ管理部15の参照終了処理を呼び出す(ステップS43)。
フレームバッファ管理部15では,動作状況テーブル20におけるB[i]番目のバッファに対する映像解析部10[i]のフラグ値F[B[i],i]を,「解析中」から「処理完」に更新する(ステップS60)。次に,映像解析部10[i]の参照用バッファ番号格納メモリB[i]の値をカウントアップする(ステップS61)。すなわち,「B[i]=(B[i]+1) mod M」とする。その後,映像解析部10[i]に制御を戻す。
映像解析部10[i]は,解析対象のすべての画像データの処理が終了するまで,以上のステップS40〜S43を同様に繰り返す(ステップS44)。
図3および図4の処理フローには,フレームデータの書き込みや参照において,所望する状態(動作状況テーブル20のフラグによって管理される状態)にない場合,「Twait秒間待つ」という処理(S22,S52)が入っている。Twait秒間待たずに繰り返しフラグ状態を見ることも可能であるが,実際にはそのフラグ状態確認のためのCPU処理負荷が高くなるため,Twaitとして,0.01〜0.1秒程度の待ちを入れるほうが実用的な実施例となる。ここでは,図3,図4ともに,同じ値で記載しているが,それぞれ異なる値としてもよい。
また,実際の発明実施にあたっては,フラグチェック中に別スレッドによる動作状況テーブル20の書き換えを防ぐ必要があるが,これについてはOSの機能により容易に対処可能であるので,詳しい説明は省く。
図5は,動作状況テーブル20の具体例を示している。この例では,1フレーム分の容量のバッファ領域が10個あり,映像解析部10が4個ある。フレームデータ取得部12は,現在,バッファ#9へのデータの書き込みを行っており,この書き込みが終了すると,バッファ#9の動作状況フラグはすべて「デコード完」になる。続いて,バッファ#0の動作状況フラグがすべて「処理完」であるので,フレームバッファ管理部15によってこのフラグを「デコード中」に更新し,フレームデータ取得部12は,バッファ#0に対して次のフレームのデータの書き込みを続けることになる。
映像解析部10[0]は,現在,バッファ#8のデータを解析中であり,この解析が終了すると,フレームバッファ管理部15によってこのフラグを「処理完」にセットし,続くバッファ#9が「デコード完」になるのを待って,次のフレームの解析を行うことになる。他の映像解析部10[1],10[2],10[3]についても同様に,それぞれバッファ#2,#5,#7のデータを解析中であり,その解析が終了すると,「デコード完」になっている次のバッファに格納された1フレーム分の画像データの解析を続けることになる。
次に,制御部14における非同期実行制御部16および優先度調整部17の処理フローについて,図6に従って説明する。
現在のオペレーティングシステム(OS)は,スレッドの生成,スレッドに対するプログラムコードの割り当て,スレッド優先度の設定,といった機能をアプリケーションインタフェース(API)として提供している。これらの機能の実施にあたっては,このようなOSのAPIを利用することにより,実施可能である。生成されたスレッドに対して,プログラムコードを割り当てると,そのプログラムにより実装された機能が,個別のスレッドとして,非同期に実行される。
図6のうち,Tcheck 秒は,全体の動作状況管理のための周期であり,実施時においては,1秒などと固定すればよい。この場合,1秒ごとに,終了したかどうかを確認し,優先度の変更がなされる。
この時間ごとに,動作状況テーブル20を調べる。動作状況テーブル20は,動作時には,例えば図5のようになっており,この動作状況テーブル20から各映像解析部10の処理の進捗状況を把握することができる。すなわち,フレームデータ取得部12が取得したフレームに対して,処理が遅れている映像解析部10は,「デコード完」フラグとなっているバッファ数が多くなるので,その数を調べることにより,優先的にCPUを割り当てるべき映像解析スレッドが分かる。図5の動作状況テーブル20の例では,各映像解析部10の動作状況フラグのうち「デコード完」になっているフラグの数が一番多いのは映像解析部10[1]であるので,この映像解析部10[1]の処理が遅れていることが分かる。そこで,この場合には,優先度調整部17は,映像解析部10[1]のスレッドの実行優先度を上げて,他のスレッドの実行優先度よりも高くする。
非同期実行制御部16,優先度調整部17は,詳しくは以下の処理を行う。非同期実行制御部16は,映像の解析にあたって,最初にフレームデータ取得部12のスレッドを起動し,フレームデータ取得部12の処理機能を実現するプログラムコードを,スレッドに割り当てる(ステップS70)。次に,映像解析部10がN個必要となる場合には,i=0,1,…,N−1まで,ステップS72の処理を繰り返す(ステップS71)。ステップS72では,映像解析部10[i]のスレッドを起動し,映像解析部10[i]の処理機能を実現するプログラムコードを,スレッドに割り当てる。
その後,Tcheck 秒ごとに,ステップS74,S80,S81の処理を繰り返す(ステップS73)。Tcheck 秒経過したならば,フレームデータ取得部12がファイル終了により終了したかを判定する(ステップS74)。フレームデータ取得部12が終了した場合には,全映像解析部10のスレッドに対して終了を通知し(ステップS75),処理を終了する。各映像解析部10では,終了通知を受けると,フレームバッファ部13に残っているデータをすべて解析した後,処理を終了する。
フレームデータ取得部12が終了していない場合,優先度調整部17は,動作状況テーブル20から各映像解析部10[i]ごとに,動作状況フラグが「デコード完」になっている割合を計算する(ステップS80)。次に,計算した割合が大きい映像解析部10[i]のスレッドに対して,より高いスレッド優先度を割り当てる(ステップS81)。これにより,処理が遅れている映像解析部10[i]のスレッドに対するCPU割り当て時間が増え,処理の遅れが解消されやすくなる。
以上の映像解析装置が行う処理は,コンピュータとソフトウェアプログラムとによって実現することができ,そのプログラムをコンピュータ読み取り可能な記録媒体に記録することも,ネットワークを通して提供することも可能である。
1 映像解析装置
10 映像解析部
11 特徴量出力部
12 フレームデータ取得部
13 フレームバッファ部
14 制御部
15 フレームバッファ管理部
16 非同期実行制御部
17 優先度調整部
20 動作状況テーブル

Claims (5)

  1. 映像からその映像の特徴的な区間やそれに付随する値である複数種類の特徴量を抽出して出力する映像解析装置であって,
    映像をフレームごとの画像データとして取得するフレームデータ取得部と,
    前記フレームデータ取得部により取得された画像データを一時的に蓄積する,1フレーム分の容量を持つバッファ領域をM個(M≧2)有するフレームバッファ部と,
    前記フレームバッファ部からフレームごとの画像データを入力して解析することによって,前記特徴量を個別に抽出するN個(N≧2)の映像解析部と,
    前記フレームバッファ部における前記M個の各バッファ領域ごとに,少なくとも前記各バッファ領域に格納された画像データに対する前記N個の各映像解析部の処理が完了しているか処理中であるかを示す動作状況情報を記憶する動作状況記憶部と,
    前記動作状況記憶部に記憶された動作状況を示す情報に基づき,前記フレームデータ取得部および前記N個の各映像解析部を非同期に実行させる制御を行い,前記フレームデータ取得部による前記バッファ領域への画像データの格納を,そのバッファ領域に対する前記N個の各映像解析部の処理が完了していることを確認してから行わせる制御部と,
    を備えることを特徴とする映像解析装置。
  2. 請求項1記載の映像解析装置において,
    前記制御部は,前記動作状況記憶部の動作状況を示す情報を参照し,前記N個の映像解析部のうち前記フレームバッファ部に格納されている画像データの処理が遅れている映像解析部の処理の実行優先度が高くなるように調整する手段を有する
    ことを特徴とする映像解析装置。
  3. 映像からその映像の特徴的な区間やそれに付随する値である複数種類の特徴量を,それぞれ個別に抽出するN個(N≧2)の映像解析部を備える映像解析装置が実行する映像解析方法であって,
    映像をフレームごとの画像データとして取得し,1フレーム分の容量を持つバッファ領域をM個(M≧2)有するフレームバッファ部のバッファ領域に格納するフレームデータ取得過程と,
    前記N個の映像解析部が,前記フレームバッファ部からフレームごとの画像データを入力して解析することによって,前記特徴量を抽出する処理を並列に実行する映像解析過程と,
    前記フレームバッファ部における前記M個の各バッファ領域ごとに,少なくとも前記各バッファ領域に格納された画像データに対する前記N個の各映像解析部の処理が完了しているか処理中であるかを示す動作状況情報を動作状況記憶部によって管理し,該動作状況記憶部に記憶された動作状況を示す情報に基づき,前記フレームデータ取得過程および前記映像解析過程を非同期に実行する制御を行い,前記フレームデータ取得過程による前記バッファ領域への画像データの格納を,そのバッファ領域に対する前記映像解析過程の処理がすべて完了していることを確認してから行わせる制御過程と,
    を有することを特徴とする映像解析方法。
  4. 請求項3記載の映像解析方法において,
    前記制御過程では,前記動作状況記憶部の動作状況を示す情報を参照し,前記N個の映像解析部のうち前記フレームバッファ部に格納されている画像データの処理が遅れている映像解析部の処理の実行優先度が高くなるように調整する
    ことを特徴とする映像解析方法。
  5. 請求項3または請求項4記載の映像解析方法を,コンピュータに実行させるための映像解析プログラム。
JP2009048949A 2009-03-03 2009-03-03 映像解析装置,映像解析方法および映像解析プログラム Expired - Fee Related JP4878054B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009048949A JP4878054B2 (ja) 2009-03-03 2009-03-03 映像解析装置,映像解析方法および映像解析プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009048949A JP4878054B2 (ja) 2009-03-03 2009-03-03 映像解析装置,映像解析方法および映像解析プログラム

Publications (2)

Publication Number Publication Date
JP2010204892A JP2010204892A (ja) 2010-09-16
JP4878054B2 true JP4878054B2 (ja) 2012-02-15

Family

ID=42966318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009048949A Expired - Fee Related JP4878054B2 (ja) 2009-03-03 2009-03-03 映像解析装置,映像解析方法および映像解析プログラム

Country Status (1)

Country Link
JP (1) JP4878054B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5882883B2 (ja) * 2012-12-03 2016-03-09 日本電信電話株式会社 テロップ検出装置、テロップ検出方法及びテロップ検出プログラム
WO2014091667A1 (ja) * 2012-12-10 2014-06-19 日本電気株式会社 解析制御システム
WO2014097530A1 (ja) * 2012-12-19 2014-06-26 日本電気株式会社 解析処理制御システム
JP7331769B2 (ja) * 2020-04-30 2023-08-23 トヨタ自動車株式会社 位置推定システム、及び位置推定方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2311882B (en) * 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
JP3840045B2 (ja) * 2000-08-04 2006-11-01 株式会社東芝 データ処理方法及びデータ処理装置
JP4519082B2 (ja) * 2006-02-15 2010-08-04 株式会社ソニー・コンピュータエンタテインメント 情報処理方法、動画サムネイル表示方法、復号化装置、および情報処理装置

Also Published As

Publication number Publication date
JP2010204892A (ja) 2010-09-16

Similar Documents

Publication Publication Date Title
US8036474B2 (en) Information processing apparatus enabling an efficient parallel processing
JP5332773B2 (ja) 画像処理装置および方法
EP3357253B1 (en) Gapless video looping
CN110324706B (zh) 一种视频封面的生成方法、装置及计算机存储介质
EP3866481A1 (en) Audio/video switching method and apparatus, and computer device and readable storage medium
JP4878054B2 (ja) 映像解析装置,映像解析方法および映像解析プログラム
CN109327698B (zh) 动态预览图的生成方法、系统、介质和电子设备
US11983796B2 (en) Systems and methods to process electronic images to provide improved visualization and rendering of histopathology slides
CN114071226A (zh) 视频预览图的生成方法及装置、存储介质及电子设备
US9769234B2 (en) Algorithmic transcoding
US20120151065A1 (en) Resource allocation for video playback
CN107613302B (zh) 解码方法及装置、存储介质、处理器
CN108062336A (zh) 媒体信息处理方法及装置
WO2017162015A1 (zh) 一种数据处理方法及装置、存储介质
CN113923472B (zh) 视频内容分析方法、装置、电子设备及存储介质
US20170163555A1 (en) Video file buffering method and system
CN109739607B (zh) 动态图像加载方法、装置、设备及存储介质
CN113923507B (zh) Android端的低延迟视频渲染方法及装置
US11375203B2 (en) Video processing method, system, device and computer-readable storage medium
KR101970787B1 (ko) 안드로이드 플랫폼 기반 듀얼 메모리를 이용한 비디오 디코딩 장치 및 방법
CN107277650B (zh) 视频文件切割方法及装置
US9100717B2 (en) Methods and systems for file based content verification using multicore architecture
US10950274B2 (en) Image recording apparatus, method for controlling same, and non-transitory computer-readable storage medium
JP5012626B2 (ja) 情報処理装置および方法、並びにプログラム
US20140079139A1 (en) Moving image processing apparatus that processes a plurality of moving image data sets

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111122

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111124

R150 Certificate of patent or registration of utility model

Ref document number: 4878054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20141209

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees