(57)【要約】【課題】  映像音声処理システムを複数のソフトウェアで実現する場合、各ソフトウェアの処理時間は変動する。そのため、入力処理ソフトウェア以降のソフトウェアはデータ入力時刻を予測することが出来ず、映像と音声の同期を取ることができない。【解決手段】  本発明では、時系列データ入力ミドルウェアが入力データリングバッファと転送開始時刻変数を備え、システム時刻レジスタとＤＭＡ転送制御装置の書き込みアドレス情報を用いて入力データリングバッファ内の各データの入力時刻を計算する。そして、時系列データ処理モジュールからのデータ要求５に応じて、入力データと入力時刻情報を返す。【選択図】  図３
2007110749.tif 000002
【特許請求の範囲】
【請求項１】
時系列信号を受け取り、時系列データを出力する時系列信号入力方法において、時系列データと、時系列信号を入力された時刻を表す情報とを対にして出力することを特徴とする時系列信号入力方法。
【請求項２】
時系列信号を受け取り、時系列データを出力する時系列信号入力装置において、時系列信号を入力された時刻を出力するインタフェースを備えることを特徴とする時系列信号入力装置。
【請求項３】
時系列データの入力処理する処理プログラムを格納する記録媒体において、時系列データと時系列信号を入力された時刻を表す情報とを対にして出力することを特徴とする処理プログラムを格納する記録媒体。
【請求項４】
請求項１に記載の時系列信号入力方法において、要求データの入力時刻情報を含んだデータ要求情報を受け取り、要求データの入力時刻に相当する入力データを出力することを特徴とする時系列信号入力方法。
【請求項５】
映像信号を受け取り、映像データを出力する映像信号入力方法において、映像データと、映像信号を入力された時刻を表す情報とを対にして出力することを特徴とする映像信号入力方法。
【請求項６】
映像信号を受け取り、映像データを出力する映像信号入力装置において、映像信号を入力された時刻を出力するインタフェースを備えることを特徴とする映像信号入力装置。
【請求項７】
映像データの入力処理する処理プログラムを格納する記録媒体において、映像データと映像信号を入力された時刻を表す情報とを対にして出力することを特徴とする処理プログラムを格納する記録媒体。
【請求項８】
請求項５に記載の映像信号入力方法において、要求データの入力時刻情報を含んだデータ要求情報を受け取り、要求データの入力時刻に相当する入力データを出力することを特徴とする映像信号入力方法。
【請求項９】
音声信号を受け取り、音声データを出力する音声信号入力方法において、音声データと、音声信号を入力された時刻を表す情報とを対にして出力することを特徴とする音声信号入力方法。
【請求項１０】
音声信号を受け取り、音声データを出力する音声信号入力装置において、音声信号を入力された時刻を出力するインタフェースを備えることを特徴とする音声信号入力装置。
【請求項１１】
音声データの入力処理する処理プログラムを格納する記録媒体において、音声データと音声信号を入力された時刻を表す情報とを対にして出力することを特徴とする処理プログラムを格納する記録媒体。
【請求項１２】
請求項９に記載の音声信号入力方法において、要求データの入力時刻情報を含んだデータ要求情報を受け取り、要求データの入力時刻に相当する入力データを出力することを特徴とする音声信号入力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
映像信号や音声信号などの時系列信号を受け取り、映像音声の圧縮符号化処理モジュールに、入力データをパケット化して出力するデータ入力装置に関する。
【背景技術】
【０００２】
デジタルビデオ録画装置やビデオ会議システム等のメディア処理システムにおける符号化処理装置では、カメラ等の映像入力機器から入力される映像信号を映像フレームデータに変換する映像入力装置と、マイク等の音声入力機器から入力される音声信号を一定の時間毎の音声データパケットに変換する音声信号入力装置と、映像フレームデータを受け取り符号化する映像符号化装置と、音声データパケットを受け取り符号化する音声符号化装置と、映像符号化データと音声符号化データを媒体に出力する出力装置とから構成される。
【０００３】
前述の各装置を、独立したハードウェアで構成する場合は、書く処理装置は並列に処理を行うことができる。また、各装置が処理する時間は、入力データに依存せず常に一定である。したがって、入力装置に入力されてから符号化装置から出力されるまでの遅延は、一定となる。よって、映像処理と音声処理の遅延を同じにすることで、容易に、映像処理と音声処理の同期を取ることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
前述の符号化処理装置が提供する機能を、汎用のプロセッサを用いて、プログラムで記述したソフトウェアで実現する場合、ソフトウェアを構成する各ソフトウェアモジュールは、ＯＳによるタスクスケジューリングに従って時分割で逐次的に処理を行うことになる。また、各モジュールが処理する時間は、入力された映像データや音声データに依存する。そのため、各符号化モジュールは、処理データの正確な入力時刻を、推測することが困難になる。
【０００５】
従って、処理データの正確な入力時刻を必要とする、映像符号化処理と音声符号化処理の実現が困難になる。また、映像処理と音声処理は同期を取る必要があるが、その実現も困難となる。正確な入力時刻を使用しないで符号化処理を行うと、復号装置の出力する映像信号と音声信号の同期がずれてしまい、不自然な映像と音声になってしまう。
【０００６】
本発明の目的は、各符号化処理モジュールに、正確な入力時刻を与えることと、その結果、映像と音声の同期がとれるようにすることにある。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、符号化処理モジュールのデータ要求に応じて入力データを出力する信号入力処理ミドルウェアにおいて、入力データとその入力データの正確な信号入力時刻とを対にして、出力するようにしたものである。
【発明の効果】
【０００８】
本発明の入力ミドルウェアを用いることで、時系列データ処理モジュールの処理時間の変動や、ＯＳによる各処理モジュールの時間割り当てに変動があっても、データの入力時刻を、本発明の入力ミドルウェアが時系列データ処理モジュールへ伝えるために、正しく時刻処理が出来る。そして、映像と音声を同時に使用するシステムでの映像と音声の同期がずれることなく処理できる。
【０００９】
たとえば、図１１の関数の形式の場合、第１引数interval0を０、第２引数interval1を０、第３引数min_dataを１、第４引数max_dataを２とすれば、連続した入力データを要求することになる。また第４引数max_dataを１より大きくすることで、図１１の関数の形式でのデータ要求の時間間隔が、１エントリ分のデータを入力する時間より一時的に大きくなっても、取りこぼすことはない。これは、映像圧縮符号化モジュールで、フレームの圧縮方式によっては、処理時間が１エントリ分のデータを入力する時間を超える場合に有効である。
【００１０】
また、第１引数interval0と第２引数interval1を０より大きくすることで、時系列データ処理モジュールは、データを間引いて処理することができる。これは、映像圧縮符号化モジュールで、フレームレートを落とすときに有効である。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施例を図１〜図１３を用いて説明する。
【００１２】
図２は、映像と音声のデータを圧縮し１つのビットストリームを生成する装置に、本発明を適用した場合の、システムのハードウェア構成である。また、図１は、映像と音声のデータを圧縮し１つのビットストリームを生成する装置に、本発明を適用した場合の、ソフトウェア構成とデータの流れを示したものである。
【００１３】
図２のシステムバス４００には、中央演算処理装置４０１と、主記憶装置４０２と、映像信号入力装置１０９と、音声信号入力装置２０９と、ＤＭＡ転送制御装置８とビットストリーム出力装置４０３が接続されている。主記憶装置４０２には、処理プログラムと各種データを格納する。主記憶装置４０２内の処理プログラムが中央演算処理装置４０１で実行される。ＤＭＡ転送制御装置８は、ビデオカメラ１１１が接続された映像信号入力装置１０９から、データ列を主記憶装置４０２に転送する。また、ＤＭＡ転送制御装置８は、同様に、マイク２１１が接続された音声信号入力装置２０９から、データ列を主記憶装置４０２に転送する。生成されたビットストリームは、ビットストリーム出力装置４０３から、記憶媒体または、通信媒体へ出力される。
【００１４】
図１の１０１と２０１がそれぞれ、本発明の入力ミドルウェアである。ビデオカメラ１１１からの映像信号１１２は、映像信号入力装置１０９を経て、映像データ列として、映像信号入力ミドルウェア１０１に入力される。そして、映像圧縮符号化処理モジュール１１０からの映像データ要求１０５に応じて、映像信号入力ミドルウェア１０１は、フレーム化映像データ１０３と映像データ入力時刻情報１０４を、映像圧縮符号化処理モジュール１１０へ返す。同様に、マイク２１１からの音声信号は、音声信号入力装置２０９を経て、音声データ列として、音声信号入力ミドルウェア２０１に入力される。そして、音声圧縮符号化モジュール２１０からの音声データ要求２０５に応じて、音声信号入力ミドルウェア２０１は、フレーム化音声データ２０３と、音声データ入力時刻情報２０４を、音声圧縮符号化モジュール２１０へ返す。この時、映像信号入力ミドルウェア１０１と、音声信号入力ミドルウェア２０１は、同じシステム時刻レジスタ９を参照する。
【００１５】
映像圧縮符号化処理モジュール１１０と音声圧縮符号化モジュール２１０で処理されたデータ１１３と２１３と、入力時刻情報１４と２１４は、多重符号化モジュール３００へ伝えられ、映像音声多重符号化データ３０１として出力される。
【００１６】
図３が、本発明の入力ミドルウェアの構成と動作を説明する図である。１が本発明の時系列データ入力ミドルウェアである。時系列データ入力装置７からの時系列データ２を蓄える入力データリングバッファ１０と、返送開始時刻情報を蓄える転送開始時刻変数１１と、時系列データ処理モジュール６からの要求で前回返信したデータの入力時刻情報を蓄える前回返信データの入力時刻変数１２と、各種初期設定を行なう初期設定処理１３と、入力時刻計算処理１４と、時系列データ処理モジュール６からの要求を処理するデータ要求処理１５からなる。
【００１７】
入力データリングバッファ１０の構成を、図４に示す。入力データリングバッファ１０は、主記憶４０２上に設けられ、ｅ個のエントリからなる。各エントリ１６は、ｓバイトの容量を持つ。ｅ個のバッファは、連続領域を使用する。バッファ先頭アドレスを、ＳＡとする。リングバッファなので、エントリ０からエントリｅ−１まで順に書き込まれた後は、再びエントリ０から書き込まれる。入力データリングバッファ１０へは、ＤＡＭ転送制御装置８を用いて、書き込まれる。ＤＡＭ転送制御装置８が現在書き込んでいるアドレス情報は、ＤＡＭ転送制御装置８のレジスタを読むことで、いつでも時系列データ入力ミドルウェア１が知ることができ、その書き込みアドレスをＷＡとする。
【００１８】
図５は、入力データリングバッファ１０の、NTSC映像入力データ用の具体例である。図６は、入力データリングバッファ１０の、音声入力データ用の具体例である。
【００１９】
図７は、システム全体で使用する時刻情報の構成図である。時刻情報は、32ビットの整数で表すことができる。単位の例としては、90kHzが上げられる。
【００２０】
以下、図３を用いて、時系列データ入力ミドルウェア１の動作を説明する。まず、時系列データ入力ミドルウェア１は、初期設定処理１３によって、ＤＭＡ転送設定情報８０でＤＭＡを初期設定する。ＤＭＡ転送設定情報８０は、転送元の装置の情報と、転送先のバッファのアドレス、サイズの情報からなる。次に、時系列データ入力装置７を、時系列データ入力装置制御信号７０を用いて初期設定する。時系列データ入力装置制御信号７０には、サンプリング速度などの入力モードや、ＤＭＡ転送のための情報、入力開始指示情報からなる。また、時系列データ入力装置７のレジスタを読むことにより、実際に入力が開始したかどうかを知ることができる。時系列データ入力ミドルウェア１の初期設定処理１３が、時系列データ入力装置７のレジスタを観測し、実際に入力が開始されたと感知すると、システム時刻レジスタ９を読み、その値を、転送開始時刻変数１１に、設定する。
【００２１】
次に、時系列データ処理モジュール６から、データ要求５が時系列データ入力ミドルウェア１へくる。このデータ要求５としては、Ｃ言語の関数プロトタイプ宣言として示すと、図１１から図１３に示す方法がある。図１３は、最後に得たデータの入力時刻を要求する関数を示す。この場合は、データ要求処理１５は、前回返信データの入力時刻変数１２の内容を入力時刻方法４として、関数の返り値として返す。
【００２２】
図１２は、時系列データ処理モジュール６が、特定の時刻の入力データを要求する場合のＣ言語の関数プロトタイプ宣言である。この場合、時系列データ処理モジュール６は、図８に示すように、入力データを格納してもらいたいバッファ６２を用意し、そのバッファへのポインタ６１を用意する。そして、図９に示すように、ポインタ６１とそのポインタが示すデータの入力時刻情報を格納してもらう時刻情報６０の領域を確保する。ポインタ６１と時刻情報６０の組を配列にした、入力受け渡しパケット配列６３を用意する。この構造をＣ言語で示すと、図１０のようになる。図１２の関数の場合は、配列のエントリ数は、１つあればよい。図１２の関数プロトタイプ宣言の第１引数は、時系列データ処理モジュール６が要求するデータの入力時刻情報である。
【００２３】
図１２の関数の形式で、要求５が、時系列データ入力ミドルウェア１へくると、データ要求処理１５は、次の処理を行なう。まず、入力時刻計算処理１４によって、入力データリングバッファ１０内の各エントリのデータ入力時刻を計算する。まず、現在時刻をシステム時刻レジスタ９から、現在のＤＭＡ書き込みアドレスをＤＭＡ転送制御装置８から、入力開始時刻を転送開始時刻変数１１からそれぞれ得る。そして式１によって、整数ｎを決定する。
【００２４】
【数１】
2007110749.tif 000003
【００２５】
そして、式２によって、入力データリングバッファ１０内の各エントリを、書き込み中エントリと、それよりも小さいエントリ番号のエントリ領域と、大きいエントリ番号のエントリ領域に分ける。
【００２６】
【数２】
2007110749.tif 000004
【００２７】
それから、式３を用いて、入力データリングバッファ１０内の各エントリのデータ入力時刻を計算する。
【００２８】
【数３】
2007110749.tif 000005
【００２９】
入力データリングバッファ１０内の各エントリのデータ入力時刻が計算できると、図１２の第１引数で指定された時刻のデータが、入力データリングバッファ１０内にあるかを判断する。なければ、関数の帰り値として０を返す。あれば、指定のエントリデータを、図１２の第２引数が示す入力データ受け渡しパケット配列６３の最初のエントリのポインタ６１が示す領域に、コピーすす。また、入力データ受け渡しパケット配列６３の最初のエントリの時刻情報６０に、データの入力時刻を書き込み、関数の返り値として、１を返す。そして、その入力時刻情報を、前回返信データの入力時刻情報変数１２へ格納する。
【００３０】
図１１は、時系列データ処理モジュール６が、前回入力のデータより後のデータのうち、前回入力のデータの入力時刻から第１引数interval0あとのデータを第２引数interval1の時間間隔のとびとびのデータを少なくとも第３引数min_data個のエントリ、最大第４引数max_data個のデータを要求する場合である。時系列データ処理モジュール６は、図１２の場合と同様に、入力データ受け渡しパケット配列６３を用意する。ただし、エントリ数は、少なくとも、第４引数で指定するmax_data個なければならない。
【００３１】
図１１の関数の形式で、要求５が、時系列データ入力ミドルウェア１へくると、データ要求処理１５は、次の処理を行なう。まず、入力時刻計算処理１４によって、入力データリングバッファ１０内の各エントリのデータ入力時刻を計算する。この計算方法は前記と同様であり、式１から式３を用いて計算する。
【００３２】
入力データリングバッファ１０内に要望のデータがあれば、第５引数で指定された入力データ受け渡しパケット配列６３の第1エントリから順に、ポインタ６１の示す領域にデータをコピーし、対応する入力時刻情報を時刻情報フィールド６０に書き込む。そして、その入力時刻情報を、前回返信データの入力時刻情報変数１２へ格納する。第４引数で指定されたmax_data個のデータを入力データ受け渡しパケット配列６３へコピーした場合は、max_dataを関数の返り値として返す。また、現在の入力データリングバッファ１０内のデータを用いて、第３引数min_data個以上のデータを入力データ受け渡しパケット配列６３へコピーした場合は、コピーしたエントリ数を、関数の返り値として返す。もし、現在の入力データリングバッファ１０内のデータを用いて、第３引数min_data個未満の処理しか出来なかった場合は、第３引数min_data個のデータをコピーするまで、上記の処理を行ないながら待つ。
【００３３】
また、第１引数interval0と第２引数interval1を０より大きくすることで、時系列データ処理モジュールは、データを間引いて処理することができる。これは、映像圧縮符号化モジュールで、フレームレートを落とすときに有効である。
【図面の簡単な説明】
【００３４】
【図１】本発明の時系列データ入力ミドルウェアを用いたシステムのソフトウェア構成と、データの流れを説明する図である。
【図２】本発明の時系列データ入力ミドルウェアを用いたシステムのハードウェア構成を説明する図である。
【図３】本発明の時系列データ入力ミドルウェアの実施例を説明する図である。
【図４】入力データリングバッファの構成を説明する図である。
【図５】NTSC映像を入力する場合の入力データリングバッファの構成の例を説明する図である。
【図６】音声データを入力する場合の入力データリングバッファの構成の例説明する図である。
【図７】時刻情報の構成例を説明する図である。
【図８】入力データ受け渡しパケットの構成を説明する図である。
【図９】入力データ受け渡しパケット配列を説明する図である。
【図１０】入力データ受け渡しパケットの構成をC言語の宣言をするプログラムの一部である。
【図１１】本発明の時系列データ入力ミドルウェアのインタフェースの１つの関数の、C言語のプロトタイプ宣言である。
【図１２】本発明の時系列データ入力ミドルウェアのインタフェースの１つの関数の、C言語のプロトタイプ宣言である。
【図１３】本発明の時系列データ入力ミドルウェアのインタフェースの１つの関数の、C言語のプロトタイプ宣言である。
【符号の説明】
【００３５】
１：時系列データ入力ミドルウェア
２：時系列データ
３：入力時系列データパケット
４：入力時刻情報
５：データ要求
６：時系列データ処理モジュール
７：時系列データ入力装置
８：DMA転送制御装置
９：システム時刻レジスタ
１０：時系列データ入力リングバッファ
１１：転送開始時刻情報変数
１２：前回返信データの入力時刻情報変数
１３：初期設定処理
１４：入力時刻計算処理
１５：データ要求処理
１６：時系列データ入力リングバッファ内の１エントリ
【図１】
2007110749.tif 000006
【図２】
2007110749.tif 000007
【図３】
2007110749.tif 000008
【図４】
2007110749.tif 000009
【図５】
2007110749.tif 000010
【図６】
2007110749.tif 000011
【図７】
2007110749.tif 000012
【図８】
2007110749.tif 000013
【図９】
2007110749.tif 000014
【図１０】
2007110749.tif 000015
【図１１】
2007110749.tif 000016
【図１２】
2007110749.tif 000017
【図１３】
2007110749.tif 000018