(57)【要約】【課題】  画像符号化に際して、各オブジェクトを好適に符号化及び伝送することができる画像符号化装置、画像符号化方法、プログラム及び記録媒体を提供することを課題とする。【解決手段】  複数の画像データを入力する入力手段と、複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう画像符号化手段と、画像符号化手段が複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように制御する符号化モード制御手段と、画像符号化手段によって符号化された複数の画像データを多重化して伝送する伝送手段とを有することを特徴とする画像符号化装置が提供される。【選択図】図６
2005136728.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像データを入力する入力手段と、
前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう画像符号化手段と、
前記画像符号化手段が前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように制御する符号化モード制御手段と、
前記画像符号化手段によって符号化された前記複数の画像データを多重化して伝送する伝送手段と
を有することを特徴とする画像符号化装置。
【請求項２】
前記符号化モード制御手段は、前記画像符号化手段のフレーム内符号化のフレームを一定間隔で発生するように制御することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記符号化モード制御手段は、前記画像符号化手段のフレーム内符号化のフレームが互いに素の周期で発生するように制御することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記符号化モード制御手段は、前記画像符号化手段に対して前記複数の画像データの優先順位を設定して制御することを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
前記符号化モード制御手段は、最初のフレームを除いて、前記画像符号化手段が前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように制御することを特徴とする請求項１に記載の画像符号化装置。
【請求項６】
前記符号化モード制御手段は、前記画像符号化手段が最初の２つのフレーム内符号化を行なうフレーム間隔が前記複数の画像データ間で異なることを特徴とする請求項１に記載の画像符号化装置。
【請求項７】
前記符号化モード制御手段は、前記画像符号化手段が前記最初の２つのフレーム内符号化よりも後のフレーム内符号化間のフレーム間隔が前記複数の画像データ間で同一であることを特徴とする請求項６に記載の画像符号化装置。
【請求項８】
前記符号化モード制御手段は、前記画像符号化手段が一の画像データのフレームをフレーム間符号化したときの符号長が閾値以上であるときにはそのときの他の画像データのフレームをフレーム内符号化せずにフレーム間符号化することを特徴とする請求項１又は７に記載の画像符号化装置。
【請求項９】
複数の画像データを入力する入力ステップと、
前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、
前記符号化された複数の画像データを多重化して伝送する伝送ステップと
を有することを特徴とする画像符号化方法。
【請求項１０】
前記符号化ステップは、最初のフレームを除いて、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化することを特徴とする請求項９に記載の画像符号化方法。
【請求項１１】
複数の画像データを入力する入力ステップと、
前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、
前記符号化された複数の画像データを多重化して伝送する伝送ステップと
をコンピュータに実行させるためのプログラム。
【請求項１２】
前記符号化ステップは、最初のフレームを除いて、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化することを特徴とする請求項１１に記載のプログラム。
【請求項１３】
複数の画像データを入力する入力ステップと、
前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、
前記符号化された複数の画像データを多重化して伝送する伝送ステップと、
をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１４】
前記符号化ステップは、最初のフレームを除いて、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化することを特徴とする請求項１３に記載の記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像符号化装置、画像符号化方法、プログラム及び記録媒体に関し、特に複数の画像データの符号化に関するものである。
【背景技術】
【０００２】
近年、動画像の新しい符号化手段として、ＭＰＥＧ−４の標準化が進められている。これは従来のＭＰＥＧ−２に代表される動画像符号化ではフレームあるいはフィールドを単位としていた。これに対して、コンテンツの再利用や編集を実現するために、ＭＰＥＧ−４では映像データやオーディオ・データをオブジェクト（物体）として扱う。さらに映像データに含まれる物体も独立して符号化され、夫々もオブジェクトとして扱うことができる。その詳細は下記の非特許文献１等に記載されている。
【０００３】
実際の画像データからオブジェクトを切り出す手法に関しても開発が進んでおり、下記の特許文献１のように動画像からオブジェクトを抽出する方法が開示されている。
【０００４】
このＭＰＥＧ−４の標準化により、オブジェクトを別々に作成し、その配置やタイミングを調整して組み合わせることにより、様々なシーケンスを作成することが出来るようになった。これらを１つのストリームにまとめて配信を行なうことになる。例えば、ＩＳＯ１４４９６−１（0章Ｉｎｄｒｏｄｕｃｔｉｏｎ）には複数のオブジェクトデータを復号・再生する方法が記載されている。
【０００５】
複数のオブジェクトを符号化しながら伝送する場合に、一定のビットレートで効率よく符号化・伝送することが必要となる。一般に、ＭＰＥＧ−１，２，４のような符号化ではフレーム内符号化モードとフレーム間符号化モードを採用して符号化を行なっている。一般に、フレーム内符号化モードで符号化された符号化データの符号長はフレーム間符号化されたそれに比べて非常に長いものになる。複数のオブジェクトの符号化と多重化に関して、下記の特許文献２では夫々を個別に符号化する装置が記載されている。この特許文献２では請求項２にＧＯＰに一定数の画像を含めることが開示されていて、各チャンネルで同じ枚数でＧＯＰを構成する様子(下記の特許文献２の図５)が示されている。
【０００６】
例えば、図１４のように背景となるオブジェクト１０００、及び人のオブジェクト１００１、１００２といっしょに符号化する場合、オブジェクト１０００、オブジェクト１００１、オブジェクト１００２を夫々、図１５に示すようにカメラ１０１０、１０１１、１０１２で撮像し、オブジェクト１００１、１００２についてはオブジェクト抽出器１０１４、１０１５でオブジェクトとして切り出しを行ない、オブジェクト１０００、１００１、１００２を符号化器１０１６、１０１７、１０１８で符号化し、多重化器１０１９で多重化して１つのストリームにして出力する。
【０００７】
しかしながら、このような構成では必ず同じタイミングで符号長の長いフレーム内符号化を行なうことになり、固定された容量の伝送路では遅延が生じたり、処理が間に合わず復号が間に合わなくなったりするなどの問題が生じる。図１７は各オブジェクトの各フレームの符号化の様子をあらわしており、斜線（灰色）で表されたフレームがフレーム内符号化を行なうフレームである。すなわち、フレーム内符号化を行なった符号化データが続くと、フレーム間符号化を行なった次の符号化データが復号手段に入力されるまでに非常に多くの時間を要してしまうためである。図１６にそのビットストリームの様子を示す。斜線（灰色）部分がフレーム内符号化された符号である。このような符号化を行なうとフレーム内符号化のデータが集中し、単位時間内に多くの符号を伝送・処理する必要があるため、通信路に負担が大きい。
【０００８】
【非特許文献１】日経エレクトロニクス1997.9.22号p.147〜p.168「国際標準規格ＭＰＥＧ４の概要決まる」
【特許文献１】特開平１０−２１４０８号公報
【特許文献２】特開平１０−３４１４３３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、画像符号化に際して、各オブジェクトを好適に符号化及び伝送することができる画像符号化装置、画像符号化方法、プログラム及び記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明の画像符号化装置は、複数の画像データを入力する入力手段と、前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう画像符号化手段と、前記画像符号化手段が前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように制御する符号化モード制御手段と、前記画像符号化手段によって符号化された前記複数の画像データを多重化して伝送する伝送手段とを有することを特徴とする。
また、本発明の画像符号化方法は、複数の画像データを入力する入力ステップと、前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、前記符号化された複数の画像データを多重化して伝送する伝送ステップとを有することを特徴とする。
また、本発明のプログラムは、複数の画像データを入力する入力ステップと、前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、前記符号化された複数の画像データを多重化して伝送する伝送ステップとをコンピュータに実行させるためのプログラムである。
また、本発明の記録媒体は、複数の画像データを入力する入力ステップと、前記複数の画像データを夫々フレーム内符号化又はフレーム間符号化を選択的に行なう際に、前記複数の画像データ間においてフレーム内符号化を行なうフレームが同時に発生しないように符号化する符号化ステップと、前記符号化された複数の画像データを多重化して伝送する伝送ステップとをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体である。
【発明の効果】
【００１１】
複数の画像データを同時に符号化する際に、一般的に符号長の長いフレーム内符号化が重ならないように、符号化することによって、ビットストリーム内のフレーム内符号化フレームを分散させることができ、バッファ等の負担を低減し、効率的な伝送等が可能になる。また、記憶装置においても読み出しスピードを一定にすることができ、効率が向上する。
【発明を実施するための最良の形態】
【００１２】
〈第１の実施形態〉
以下、本発明の第１の実施形態を、図面を用いて詳細に説明する。
図１は本発明の第１の実施形態に係る画像符号化装置の構成を示すブロック図である。
【００１３】
図１において、１、２、３は画像を撮像し、フレーム単位で出力するカメラである。４は1フレーム分の画像データを蓄積するフレームメモリである。５、６はオブジェクト抽出器であり任意形状のオブジェクトを抽出する。７、８、９は画像を符号化する符号化器である。符号化器７は本実施形態ではＭＰＥＧ−４符号化方式のＳｉｍｐｌｅ Ｐｒｏｆｉｌｅの符号化を行なうものとするがこれに限定されない。符号化器８、９はＭＰＥＧ−４符号化方式で任意形状符号化を扱うＣｏｒｅ Ｐｒｏｆｉｌｅの符号化を行なうものとするがこれに限定されない。
【００１４】
１０はフレーム内符号化を行なうフレームの間隔を設定するＩフレーム間隔設定器である。１１、１２、１３はＩフレーム間隔設定器１０の出力から符号化器５、６、７のフレーム符号化モードを設定する符号化モード設定器である。１４は符号化器７、８、９で生成された符号化データを多重化する多重化器である。
【００１５】
ここでは図１４のオブジェクト１０００の画像をカメラ１で、オブジェクト１００１をカメラ２で、オブジェクト１００２をカメラ３で撮影する。
【００１６】
上記のように構成された画像符号化装置での符号化動作を以下で説明する。
処理に先立ち、各部を初期化する。フレームメモリ４はクリアされる。符号化器７、８、９はＭＰＥＧ−４符号化方式に従って、各フレームの符号化データの先立って付与されるヘッダデータを生成する。生成されたヘッダデータは多重化器１４で多重化されて出力される。多重化器１４の出力は不図示のネットワーク等の伝送路に接続されている。
【００１７】
続いて、Ｉフレーム間隔設定器１０が動作する。Ｉフレーム間隔設定器１０は各オブジェクトに対するフレーム内符号化を行なう間隔のフレーム数を決定する。Ｉフレーム間隔設定器１０の詳細を図２に示す。
【００１８】
図２において、５１は入力されるフレームの数をカウントするフレームカウンタである。５２はＧＯＶフレーム数設定器である。フレーム内符号化を行なうフレームの出現間隔としてフレーム数Ｎを決定する。これはビットレート等から算出でき、ビットレートが高いときには小さく、ビットレートが低いときに大きく通常設定される。ここではこの間隔をＧＯＶとして扱い、フレーム数ＮをＧＯＶフレーム数と呼称する。但し、通常、ＧＯＶの中にフレーム内符号化フレームを含むことができるがここでは含まないものとする。含む場合はその間隔を扱うこととする。５３はＧＯＶフレーム数の初期値を算出するＧＯＶフレーム数初期値算出器である。５４、５５、５６はセレクタであり、２つの入力から１つを選択して出力する。この切り替えは後述するセレクタ制御信号によって行なう。５７、５８、５９はセレクタ５４、５５、５６から出力されたＧＯＶフレーム数を格納しておくためのＧＯＶフレーム数ラッチである。６０、６１、６２はＧＯＶフレーム数ラッチ５７、５８、５９の出力とフレームカウンタ５１の出力を夫々比較する比較器である。各比較器はフレームカウンタ５１の出力をＧＯＶフレーム数ラッチの内容で除算したときの剰余が０であれば、１を、そうでなければ０を出力する。
【００１９】
この値が１の時、図１に示した符号化モード設定器１１、１２、１３は符号化器７、８、９がフレーム内符号化を行なうようにモードを設定するのである。また、０の時、フレーム間符号化を行なうように設定する。比較器６０の出力は符号化モード設定器１１に、比較器６１の出力は符号化モード設定器１２に、比較器６２の出力は符号化モード設定器１３に入力される。
【００２０】
各比較器の出力は初期化によって最初は１に設定されている。各比較器の出力はセレクタ制御信号として各セレクタに入力される。各セレクタは初期化によって最初はＧＯＶフレーム数初期値算出器５３の出力を選択する。その後、各セレクタ制御信号が０から１に変化した後はＧＯＶフレーム数設定器５２の出力を選択する。
【００２１】
上記のように構成されたＩフレーム間隔設定器１０の動作を以下で説明する。
初期化によって、セレクタ５４、５５、５６はＧＯＶフレーム数初期値設定器５３からの出力を選択する。また、比較器６０、６１、６２は１を出力する。フレームカウンタ５１は０にセットされる。
【００２２】
ＧＯＶフレーム数設定器５２はビットレート等の情報からＧＯＶフレーム数Ｎを設定する。ここでは説明を容易にするため５とする。この値はＧＯＶフレーム数初期値設定器５３と各セレクタに入力される。ＧＯＶフレーム数初期値設定器５３はＧＯＶフレーム数Ｎとオブジェクト数から各オブジェクトの符号化時のフレーム内符号化のフレーム間隔の初期値を算出する。ここでは説明のため、オブジェクト１０００の初期値をＮ−１、オブジェクト１００１の初期値をＮ、オブジェクト１００２の初期値をＮ＋１とする。但し、これに限定されない。
【００２３】
最初のフレームが符号化されるとき、各比較器は１を出力しているので、各オブジェクトの先頭のフレームはフレーム内符号化される。その後、フレームカウンタ５１が１つカウントアップされる。以降、１フレームを処理するごとにフレームカウンタ５１は１ずつ増加する。
【００２４】
各比較器はフレームカウンタ５１の出力と各ＧＯＶフレーム数ラッチの出力を比較し、フレームカウンタ５１の出力をＧＯＶフレーム数で除算したときの剰余が０以外であれば０を出力する。剰余が０から１になった場合、それに対応するセレクタは入力先をＧＯＶフレーム数初期値算出器５３からＧＯＶフレーム数設定器５２の出力に切り替え、固定する。このように動作することで、各オブジェクトの最初のＧＯＶのフレーム数が異なるが、それ以降は同じ間隔Ｎになる。
【００２５】
図１に戻って、Ｉフレーム間隔設定器１０の比較器６０、６１、６２からの出力は符号化モード設定器１１、１２、１３に夫々入力される。各符号化モード設定器は入力が１であれば対応する各符号化器をフレーム内符号化モードで符号化するように制御する。また、０であればフレーム間符号化モードで符号化するように制御する。符号化器７、８、９の出力は多重化器１４に入力され、多重化されて１つのストリームとして出力される。
【００２６】
以後、この順で最後まで符号化を行ない、全てのフレームの処理が終われば全体の処理を終了する。このようにして符号化された各オブジェクトのフレームの様子を図１０に示す。先頭のフレーム以外はフレーム内符号化を行なうフレームが同時に発生しないことが示されている。
【００２７】
以上、符号化データの蓄積までの処理の簡単な流れを、図６を用いて説明する。
まずステップＳ１０１にて、基本となるＧＯＶフレーム数Ｎを設定する。ステップＳ１０２にて、各オブジェクトの最初のＧＯＶのフレーム数を算出し、設定する。これはＧＯＶフレーム数初期値設定器５３で設定するような各オブジェクトで異なっている値を示す。ステップＳ１０３にて、各オブジェクトの最初のフレームをフレーム内符号化で符号化し、ステップＳ１０４にて、ストリームのヘッダ及びＧＯＶヘッダ、フレーム内符号化データを多重化して出力する。ステップＳ１０５にて、処理の終了判断を行なう。ステップＳ１０６にて、全てのオブジェクトのフレームについて処理を行なったか否かの終了判定を行なう。もし、終了していなければステップＳ１０７に進み、終了していれば、次のフレームに進むためにステップＳ１０５に進む。ステップＳ１０７にて、各符号化器で前回フレーム内符号化したフレームからＧＯＶフレーム数が経過しているか否かを判断する。ＧＯＶフレーム数だけ処理を行なっていなければステップＳ１０８に進む。行なっていればステップＳ１０９に進む。ステップＳ１０８にて、該当するフレームをフレーム間符号化して出力する。ステップＳ１０９にて、該当するフレームをフレーム内符号化する。ステップＳ１１０にて、処理するオブジェクトについて２枚目のフレーム内符号化か否かを判定する。２枚目のフレーム内符号化であれば、ステップＳ１１１に進みそうでなければステップＳ１１２に進む。ステップＳ１１１にて、該当するオブジェクトの符号化でＧＯＶフレーム数の値を基本値Ｎと変更する。ステップＳ１１２にて、ＧＯＶヘッダとフレーム内符号化データを多重化して出力しステップＳ１０６に戻る。ステップＳ１０６で、各オブジェクトのフレームの符号化処理が終了すれば、ステップＳ１０５に戻り、次のフレームの処理を行なう。ステップＳ１０５で全てのオブジェクトの全てのフレームの処理が終了したと判断されたら、全体の処理を終了する。
【００２８】
このような一連の選択動作により、符号長の長いフレーム内符号化モードのフレームが同時に発生することを最初のフレーム以外はなくすことができるため、送出する符号に偏りがないようにすることができるようになる。図１２にそのビットストリームの様子を示す。四角は各フレームの符号化データを表し、斜線（灰色）部分がフレーム内符号化されたフレームの符号化データで、斜線なし（白色）部分はフレーム間符号化されたフレームの符号化データである。図１６に比べ、フレーム内符号化のデータが分散し、単位時間内に伝送・処理する符号が分散されるため、通信路やバッファでの負担が軽減される。
【００２９】
なお、本実施形態においては動画像の符号化方式をＭＰＥＧ−４としたがこれに限定されず、他の符号化方式、たとえば、Ｈ．２６１、ＭＰＥＧ−１、ＭＰＥＧ−２でももちろんかまわない。また、出力先も伝送路に限定されず、記憶装置等に記録してももちろん構わない。
【００３０】
また、本実施形態の各部または全部の機能をソフトウエアで記述し、ＣＰＵ等の演算装置によって処理をさせてももちろんかまわない。
【００３１】
さらに、本実施形態ではオブジェクトが３つの場合について説明したが、これに限定されない。
【００３２】
また、ＧＯＶフレーム数の初期値もこれに限定されない。例えば、ＧＯＶフレーム数Ｎに対してＮ、Ｎ−２、Ｎ＋２や、ＧＯＶフレーム数の中に等間隔で発生するようにしても良い。このようにして符号化された各オブジェクトのフレームの様子を図１１に示す。斜線（灰色）部分がフレーム内符号化されたフレームの符号化データで、斜線なし（白色）部分はフレーム間符号化されたフレームの符号化データである。同様にフレーム内符号化を行なうフレームが同時に発生せず、より分散していることが理解できる。
【００３３】
〈第２の実施形態〉
図３は本発明の第２の実施形態としての符号化装置の構成を示す図である。なお、前述の実施形態の図１と同様の構成要素については同一番号を付してその詳細な説明は省略する。
【００３４】
図３において、１０１は優先順位設定器である。１０７、１０８、１０９は符号化器であり、図１の符号化器７、８、９と同様に動作するが、フレーム毎に生成された符号の符号化モードと符号長を出力する点と優先順位設定器１０１の出力を入力する点が第１の実施形態と異なる。１１０はＩフレーム間隔設定器であり、図１のＩフレーム間隔設定器１０と符号長を入力する点が異なる。
【００３５】
上記のように構成された画像符号化装置における画像の符号化動作を以下で説明する。
処理に先立ち、第１の実施形態と同様に各部を初期化する。Ｉフレーム間隔設定器１１０も第１の実施形態のＩフレーム間隔設定器１０と同様に初期化される。さらに、優先順位設定器１０１は各オブジェクトに優先順位を設定する。本実施形態ではオブジェクトの大きさの順とするが、これに限定されない。従って、背景となるオブジェクト１０００が第１優先であり、オブジェクト１００１、１００２の優先順位を２、３とする。各優先順位は符号化器１０７、１０８、１０９に入力される。
【００３６】
続いて、Ｉフレーム間隔設定器１１０が動作する。Ｉフレーム間隔設定器１１０の詳細を図４に示す。なお、前述の実施形態の図２と同様の構成要素については同一番号を付してその詳細な説明は省略する。
【００３７】
図４において、１５０は各オブジェクトの符号化結果の符号長と符号化モードを入力し、符号長を判定する符号長判定器である。１５１、１５２、１５３はフレームカウンタであり、フレーム数をカウントする。但し、符号長判定器１５０の出力によって動作が変更されることがある。
【００３８】
上記のように構成されたＩフレーム間隔設定器１１０の動作を以下で説明する。
第１の実施形態と同様に、セレクタ５４、５５、５６、比較器６０、６１、６２が初期化される。また、フレームカウンタ１５１、１５２、１５３は０にリセットされる。
【００３９】
ＧＯＶフレーム数設定器５２はビットレート等の情報からＧＯＶフレーム数Ｎを設定する。
【００４０】
最初のフレームが符号化されるとき、各比較器は１を出力しているので、各オブジェクトの先頭のフレームはフレーム内符号化される。その後、フレームカウンタ５１が１つカウントアップされる。これに合せてフレームカウンタ１５１、１５２、１５３も１ずつ増加する。
【００４１】
次に図３に示された符号化器１０７、１０８，１０９が優先順位に従って順番に符号化を行なう。符号長判定器１５０は各オブジェクトの各フレームが符号化されるたびに動作する。該当するフレームで他のオブジェクトがフレーム間符号化されていれば、その時の符号化済みの各符号長を所定の閾値Ｔと比較する。閾値Ｔは伝送路に負担になるほどの大きさか否かを判定する値であり、例えばフレーム内符号化で発生すると予測される符号長の２／３とする。但し、これは限定されない。
【００４２】
閾値Ｔ以下であれば、各比較器の結果に従った符号化モードで符号化を行う。この時の閾値Ｔを超えるようなフレーム間符号化を行なったフレームが生じた場合、それより優先順位が低いオブジェクトのフレームは必ずフレーム間符号化処理を行なうこととする。
【００４３】
閾値Ｔを超えるフレームがいずれかのオブジェクトで発生したときには各フレームカウンタは更新されない。そうでなければ、対応するフレームカウンタを１つずつ増加させる。
【００４４】
各比較器は各フレームカウンタの出力と各ＧＯＶフレーム数ラッチの出力を比較し、フレームカウンタの出力をＧＯＶフレーム数で除算したときの剰余が０以外であれば０を出力する。剰余が０になったら１を出力する。この出力が０から１になった初めてなったら、それに対応するセレクタは入力先をＧＯＶフレーム数初期値算出器５３からＧＯＶフレーム数設定器５２の出力に切り替え、固定する。
【００４５】
このように動作することで、各オブジェクトの最初のＧＯＶのフレーム数が異なり、さらにフレーム間符号化を行なったフレームで符号長が大きい場合は優先順位の低いオブジェクトのフレームはフレーム内符号化されない。このような場合は全体的にフレーム内符号化を行なう周期が伸びることになる。
【００４６】
図３に戻って、最初に符号化器１０７、１０８、１０９の順に動作させて最初のフレーム内符号化を行い、多重化器１４で多重化して出力する。
【００４７】
続いて、優先順位設定器１０１の設定した順、すなわち、符号化器１０７、１０８、１０９の順に符号化を行なう。まず、符号化器１０７がフレームメモリ４の内容を、ＧＯＶフレーム数に達していなければフレーム間符号化を、達していればフレーム内符号化を行ない、多重化器１４に出力する。この時の符号化モードと符号長は図４の符号長判定器１５０に入力される。
【００４８】
次に優先順位の高い符号化器１０８を動作させる。符号化器１０７はフレーム間符号化を行なっていれば、符号長と閾値Ｔを比較する。閾値Ｔよりも小さければそのままオブジェクトのフレームの符号化を行ない、多重化器１４に出力する。閾値Ｔよりも大きかった場合、オブジェクトのフレームはフレーム間符号化され、多重化器１４に出力する。
【００４９】
最後に優先順位の低い符号化器１０９を動作させる。符号化器１０７、１０８がフレーム間符号化を行なっていれば、夫々の符号長と閾値Ｔを比較する。どちらも閾値Ｔよりも小さければそのままオブジェクトのフレームの符号化を行ない、多重化器１４に出力する。
【００５０】
いずれかが閾値Ｔよりも大きかった場合、オブジェクトのフレームの符号化はフレーム間符号化を行なう。
【００５１】
各フレームの処理が終了したとき、いずれかが閾値Ｔよりも大きかった場合は、図４のフレームカウンタ１５１、１５２、１５３は増加しない。いずれも小さかった場合に図４のフレームカウンタ１５１、１５２、１５３は１つ増加する。
【００５２】
以後、この順で最後まで符号化を行ない、全てのフレームの処理が終われば全体の処理を終了する。このようにして符号化されたビットストリームの様子を図１３に示す。太枠がフレーム間符号化されたフレームで符号長が長かったものを表している。図１２と同様に同時にフレーム内符号化が生じないことに加えて符号長が長いフレームが生じたときにフレーム内符号化が生じないようにビットストリームが構成されている。
【００５３】
以上、符号化データの蓄積までの処理の簡単な流れを、図７を用いて説明する。
まずステップＳ２０１にて、基本となるＧＯＶフレーム数Ｎを設定する。続いて、ステップＳ２０２にて、オブジェクトの優先順位を決定する。ステップＳ２０３にて、第１の実施形態と同様に、オブジェクトの数等から各オブジェクトの最初のＧＯＶのフレーム数を算出し、設定する。ステップＳ２０４にて、各オブジェクトの最初のフレームをフレーム内符号化で符号化し、ステップＳ２０５にて、ストリームのヘッダ及びＧＯＶヘッダ、フレーム内符号化データを多重化して出力する。ステップＳ２０６にて、処理の終了判断を行なう。ステップＳ２０７にて、全てのオブジェクトのフレームについて処理をおこなったか否かの終了判定を行なう。もし、終了していなければステップＳ２０８に進み、終了していれば、次のフレームに進むためにステップＳ２１５に進む。ステップＳ２０８にて、優先順位の高いオブジェクトのフレームを選択する。ステップＳ２０９にて、選択されたオブジェクトより高い優先順位のオブジェクトでフレーム間符号化されたもので符号長が閾値Ｔより大きかったか否かの判定を行なう。閾値Ｔより大きかった場合にはステップＳ２１０に進み、そうでなければステップＳ２１１に進む。ステップＳ２１０にて、選択されたオブジェクトのフレームがフレーム間符号化されて出力され、ステップＳ２１４に進む。また、ステップＳ２１１にて、各符号化器で前回フレーム内符号化したフレームからＧＯＶフレーム数が経過したか否かを判断するため、フレームカウンタの値を比較する。ＧＯＶフレーム数だけ処理を行なっておらず、値が一致していなければステップＳ２１０に進む。ＧＯＶフレーム数の処理を行なっていて、値が一致していればステップＳ２１２に進む。ステップＳ２１２にて、選択されたオブジェクトのフレームをフレーム内符号化する。ステップＳ２１３にて、該当するフレームカウンタを０にリセットする。ステップＳ２１４にて、ＧＯＶヘッダと生成された符号化データを多重化して出力し、ステップＳ２０７に戻る。
【００５４】
ステップＳ２０７で、各オブジェクトのフレームの符号化処理が終了すれば、ステップＳ２１５に進む。ステップＳ２１５にて、全オブジェクトでフレーム間符号化されたもので符号長が閾値Ｔより大きかったフレームが存在したか否かの判定を行なう。存在していなければ、ステップＳ２１６に進む。存在していれば、ステップＳ２０６に戻り、次のフレームの処理を行なう。ステップＳ２１６にて、全フレームのフレームカウンタの値を１つ増加させ、ステップＳ２０６に戻る。ステップＳ２０６で全てのオブジェクトの全てのフレームの処理が終了したと判断されたら、全体の処理を終了する。
【００５５】
このような一連の選択動作により、符号長の長いフレーム内符号化モードのフレームが同時に発生することを最初のフレーム以外はなくすことができるため、送出する符号に偏りがないようにすることができるようになる。また、シーンチェンジ等で大きな符号量のフレームがあった場合にもフレーム内符号化が同時に起こらないように制御することで、偏りを減らすことができる。図１３にそのビットストリームの様子を示す。太線の符号化データはフレーム間符号化を行なった結果、符号長が長いと判断されたフレームである。図１６に比べ、フレーム内符号化のデータが分散し、単位時間内に伝送・処理する符号が分散されるため、通信路に負担が軽減される。
【００５６】
なお、本実施形態においては動画像の符号化方式をＭＰＥＧ−４としたがこれに限定されず、他の符号化方式、たとえば、Ｈ．２６１、ＭＰＥＧ−１、ＭＰＥＧ−２でももちろんかまわない。また、出力先も伝送路に限定されず、記憶装置等に記録してももちろん構わない。
【００５７】
また、本実施形態の各部または全部の機能をソフトウエアで記述し、ＣＰＵ等の演算装置によって処理をさせてももちろんかまわない。
【００５８】
さらに、本実施形態ではオブジェクトが３つの場合について説明したが、これに限定されない。
【００５９】
さらに、閾値Ｔを超えるフレームが発生したとき、全てのフレームカウンタについてそのままの値としたが、閾値Ｔを超えるフレームを発生させたオブジェクトのフレームカウンタのみを１つ増加させても構わない。この場合は、符号長判定器１５０は他のオブジェクトでフレーム内符号化を行なったことを判別し、ＧＯＶフレーム数に達していてもフレーム間符号化を行ない、該当するフレームカウンタもそのままの値としておく。
【００６０】
〈第３の実施形態〉
図５は、本発明の第３の実施形態に係る画像符号化装置の構成を示すブロック図である。図５において、３００は装置全体の制御、及び種々の処理を行なう中央演算装置（ＣＰＵ）、３０１は本装置の制御に必要なオペレーティングシステム（ＯＳ）、ソフトウェア、演算に必要な記憶領域を提供するメモリである。
【００６１】
３０２は種々の装置をつなぎ、データ、制御信号をやり取りするバスである。３０３は装置の起動、各種条件の設定、符号化の指示を行なうための端末である。３０４はソフトウェアを蓄積する記憶装置である。３０５は画像データを蓄積する記憶装置、３０６、３０７は画像を撮像するカメラである。記憶装置３０４および、３０５はシステムから切り離して移動できるメディアで構成することもできる。３０８は画像を表示するモニタであり、３０９は通信回路であり、ＬＡＮ、公衆回線、無線回線、放送電波等で構成されている。３１０は通信回路３０９を介して画像データを送受信する通信インターフェースである。
【００６２】
このような構成において、画像データの符号化処理について説明する。ここでは、カメラ３０６で撮像された画像データをＭＰＥＧ−２符号化方式で符号化し、カメラ３０７で撮像された画像データをＭＰＥＧ−４符号化方式で符号化する。本実施形態では図１４のオブジェクト１０００をカメラ３０６で、オブジェクト１００１をカメラ３０７で撮影するものとして説明を行なう。生成された符号化データを多重化し、通信インターフェース３１０から送信する例をもって説明する。
【００６３】
処理に先立ち、端末３０３から装置全体に対して起動が指示され、各部が初期化される。すると記憶装置３０４に格納されているソフトウェアがバス３０２を介してメモリ３０１に展開され、ソフトウェアが起動される。
【００６４】
メモリ３０１のメモリの使用、格納状況を図９に示す。
メモリ３０１には装置全体を制御し、各種ソフトウェアを動作させるためのＯＳ、ＭＰＥＧ−２符号化方式およびＭＰＥＧ−４符号化方式で符号化を行なうソフトウェア、オブジェクトを抽出するソフトウェア、符号化モードを制御するソフトウェア、多重化を行なうソフトウェア、データを送受信する通信ソフトウェアが格納されている。
【００６５】
また、符号化の際に画像を格納する画像エリア画像データを格納する画像エリア、生成したり読み出した符号化データを格納したりする符号エリア、各種演算や各フレームの符号長等のパラメータ等を格納しておくワーキングエリアが存在する。
【００６６】
このような構成において、処理に先立ち、端末３０３から動画像の入力をカメラ３０６、３０７からと指示する。
【００６７】
次に、ＣＰＵ３００による動画像データの符号化動作を図８に示すフローチャートに従って説明する。
【００６８】
まず、ステップＳ３０１にて、符号化に先立ち、オブジェクト数を設定する。本実施形態ではカメラが２台で２つのオブジェクトを対象とする。ステップＳ３０２にて、メモリ３０１に格納されている符号化モード制御ソフトウェアを起動し、基準となるオブジェクトのＧＯＶのフレーム数Ｎｆを設定する。本実施形態では説明のため、１５とし、メモリ３０１のワーキングエリアに格納する。ステップＳ３０３にて、他のオブジェクトのＧＯＶのフレーム数を設定する。本実施形態では残りは１つのオブジェクトであり、このオブジェクトのＧＯＶのフレーム数Ｎ１をＮｆとは素の関係の値から、設定する。本実施形態ではＮ１を１６と設定し、メモリ３０１のワーキングエリアに格納する。
【００６９】
ＣＰＵ３００はメモリ３０１のＭＰＥＧ−２符号化ソフトウェアとＭＰＥＧ−４符号化ソフトウェアを起動する。カメラ３０６から入力された画像とカメラ３０７から入力された画像はメモリ３０１上の画像エリア１、画像エリア２に格納される。ＣＰＵ３００はメモリ３０１のオブジェクト抽出ソフトウェアを起動しておき、画像エリア２の画像からオブジェクトを抽出して、画像エリア２に格納する。ステップＳ３０４にて、画像エリア１のフレームをＭＰＥＧ−２符号化方式のフレーム内符号化で符号化し、画像エリア２のフレームをＭＰＥＧ−４符号化方式のフレーム内符号化で符号化し、夫々の符号をメモリ３０１上の符号エリアに格納する。ステップＳ３０５にて、ＣＰＵ３００はメモリ３０１上の通信ソフトウェアを起動し、これらの符号化データを多重化して出力する。ステップＳ３０６にて、処理の終了判断を行なう。
【００７０】
最初に、カメラ３０６から入力された画像について処理を行なう。カメラ３０６で撮影された画像のフレームデータがメモリ３０１上の画像エリア１に格納されている。ステップＳ３０７にて、符号化モード制御ソフトウェアは前回フレーム内符号化したフレームからＧＯＶフレーム数Ｎｆだけ経過しているか否かを判断する。ＧＯＶフレーム数Ｎｆだけ処理を行なっていなければステップＳ３０９に進む。行なっていればステップＳ３０８に進む。ステップＳ３０９にて、ＭＰＥＧ−２符号化ソフトウェアが該当するフレームをフレーム間符号化し、メモリ３０１上の符号エリアに格納する。一方、ステップＳ３０８にて、該当するフレームをフレーム内符号化し、メモリ３０１上の符号エリアに格納する。
【００７１】
続いて、カメラ３０７で撮影された画像のフレームデータがメモリ３０１上の画像エリア２に格納されている。ステップＳ３１０にて、オブジェクト抽出ソフトウェアを起動してオブジェクトを抽出し、画像エリア２に格納する。但し、任意形状のオブジェクトでない場合はこの処理は行なわれない。ステップＳ３１１にて、符号化モード制御ソフトウェアは他のオブジェクトの符号化モードがフレーム内符号化モードであったか否かを判定する。本実施形態ではオブジェクトは２つであり、この場合はオブジェクト１０００の符号化モードがフレーム内符号化モードであった場合はステップＳ３１４に、そうでなければステップＳ３１２に進む。ステップＳ３１４にて、ＭＰＥＧ−４符号化ソフトウェアは該当するフレームをフレーム間符号化し、メモリ３０１上の符号エリアに格納する。その後、ステップＳ３１５へ進む。ステップＳ３１２にて、符号化モード制御ソフトウェアは前回フレーム内符号化したフレームからＧＯＶフレーム数Ｎ１以上経過しているか否かを判断する。ＧＯＶフレーム数Ｎ１に至らなければステップＳ３１４に進む。至っていればステップＳ３１３に進む。ステップＳ３１３にて、ＭＰＥＧ−４符号化ソフトウェアは該当するフレームをフレーム内符号化し、メモリ３０１上の符号エリアに格納する。ステップＳ３１５にて、通信ソフトウェアはこれらの符号化データを多重化して出力して、次のフレームの処理を行なうためステップＳ３０６に戻る。
【００７２】
ステップＳ３０６で全ての処理が終了したと判断されたら、ＣＰＵ３００は各ソフトウェアを停止させ、処理を終了する。
【００７３】
このような一連の選択動作により、フレーム内符号化を行なう間隔を互いに素の数とすることで、簡単な制御でフレーム内符号化が同時に起こる頻度を下げることができる。また、最小公倍数でフレーム内符号化が重なることが考えられので、同時に符号化するフレームで他のオブジェクトがフレーム内符号化であればこれを行なわず、結果的に次のフレームでフレーム内符号化を行なうことによってフレーム内符号化が同時に発生するのを防止することができる。これにより、符号長の長いフレーム内符号化モードのフレームが同時に発生することを最初のフレーム以外はなくすことができるため、送出する符号に偏りがないようにすることができる、そのため、本実施例では符号エリアの大きさを抑制することができ、一般的には伝送路やバッファに負担をかけることが少なくなる。処理の順番はオブジェクトの優先順位を表すことと同義である。
【００７４】
なお、本実施形態においては動画像の符号化方式をＭＰＥＧ−２、ＭＰＥＧ−４としたがこれに限定されず、他の符号化方式、たとえば、Ｈ．２６１、Ｈ．２６３，Ｈ．２６４、ＭＰＥＧ−１でももちろんかまわない。また、出力先も伝送路に限定されず、記憶装置等に記録してももちろん構わない。多重化されたビットストリームを記憶装置３０５に蓄積してももちろんかまわない。
【００７５】
また、本実施形態の各部または全部の機能をハードウェアで実現してももちろんかまわない。
【００７６】
さらに、本実施形態ではオブジェクトが２つの場合について説明したが、これに限定されない。ステップＳ３１０からステップＳ３１４の処理をオブジェクトの数に合せて追加することで任意の数のオブジェクトに対応できることは明らかである。
【００７７】
以上のように、上記実施形態では、画像の符号化に際して、複数のオブジェクトを同時に符号化する際に、符号長の長いフレーム内符号化が重ならないように、符号化することによって、ビットストリーム内のフレーム内符号化フレームを分散させることができ、バッファ等の負担を低減し、効率的な伝送等が可能になる。また、記憶装置においても読み出しスピードを一定にすることができ、効率が向上する。
【００７８】
本実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したＣＤ−ＲＯＭ等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７９】
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の第１の実施形態にかかる画像符号化装置の構成を示すブロック図である。
【図２】Ｉフレーム間隔設定器１０の詳細な構成を示すブロック図である。
【図３】本発明の第２の実施形態にかかる画像符号化装置の構成を示すブロック図である。
【図４】Ｉフレーム間隔設定器１１０の詳細な構成を示すブロック図である。
【図５】本発明の第３の実施形態にかかる画像符号化装置の構成を示すブロック図である。
【図６】本発明の第１の実施形態における符号化動作を示すフローチャート図である。
【図７】本発明の第２の実施形態における符号化動作を示すフローチャート図である。
【図８】本発明の第３の実施形態における符号化動作を示すフローチャート図である。
【図９】メモリ３０１のメモリの使用、格納状況を表す図である。
【図１０】第１の実施形態における各オブジェクトの符号化モードの様子を表す図である。
【図１１】第１の実施形態における各オブジェクトの符号化モードの他の場合の様子を表す図である。
【図１２】第１の実施形態における出力されたビットストリームの様子を表す図である。
【図１３】第２の実施形態における出力されたビットストリームの様子を表す図である。
【図１４】オブジェクトの様子を表す図である。
【図１５】従来の画像符号化装置の構成を示すブロック図である。
【図１６】従来の画像符号化装置で生成したビットストリームの様子を表す図である。
【図１７】従来の画像符号化装置で処理した各オブジェクトの符号化モードの様子を表す図である。
【符号の説明】
【００８１】
１、２、３、３０６、３０７、１０１０、１０１１、１０１２  カメラ
４、１０１３  フレームメモリ
５、６、１０１４、１０１５  オブジェクト抽出器
７、８、９、１０７、１０８、１０９、１０１６、１０１７、１０１８  符号化器
１０、１１０  Ｉフレーム間隔設定器
１１、１２、１３  符号化モード設定器
１４、１０１９  多重化器
５１、１５１、１５２、１５３  フレームカウンタ
５２  ＧＯＶフレーム数設定器
５３  ＧＯＶフレーム数初期値算出器
５４、５５、５６  セレクタ
５７、５８、５９  ＧＯＶフレーム数ラッチ
６０、６１、６２  比較器
１０１  優先順位設定器
１５０  符号長判定器
３００  ＣＰＵ
３０１  メモリ
３０２  バス
３０３  端末
３０４、３０５  記憶装置
３０９  通信回線
３１０  通信インターフェース
１０００、１００１，１００２  オブジェクト
【図１】
2005136728.tif 000003
【図２】
2005136728.tif 000004
【図３】
2005136728.tif 000005
【図４】
2005136728.tif 000006
【図５】
2005136728.tif 000007
【図６】
2005136728.tif 000008
【図７】
2005136728.tif 000009
【図８】
2005136728.tif 000010
【図９】
2005136728.tif 000011
【図１４】
2005136728.tif 000012
【図１５】
2005136728.tif 000013
【図１０】
2005136728.tif 000014
【図１１】
2005136728.tif 000015
【図１２】
2005136728.tif 000016
【図１３】
2005136728.tif 000017
【図１６】
2005136728.tif 000018
【図１７】
2005136728.tif 000019