(57)【要約】【課題】  不規則なデータ長を有するデータ単位からなる符号化データに対して合成を行なうことが可能なビデオ符号化データ合成装置を提供することである。【解決手段】  本発明のビデオ符号化データ合成装置３０は、ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定部３１と、前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成部３２と、再構成された複数の符号化データから合成画面を生成する合成部３３と、を備える。【選択図】図１
2005252898.tif 000002
【特許請求の範囲】
【請求項１】
画面合成処理で用いられるに先立って、符号化データを再構成する処理をコンピュータに実現させるためのプログラムにおいて、
ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定処理と、
前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成処理と、
を前記コンピュータに実行させることを特徴とする符号化データの再構成プログラム。
【請求項２】
前記判定処理において、前記符号化データのデータ単位の位置情報と、前記コンピュータの記憶手段に格納された画面サイズとに基づいて、データ単位が画面の境界を跨ぐか否かが判定されることを特徴とする請求項１記載の符号化データの再構成プログラム。
【請求項３】
前記再構成処理は、更に、前記画面サイズ内において結合可能なものを結合する処理を含むことを特徴とする請求項１記載の符号化データの再構成プログラム。
【請求項４】
ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定部と、
前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成部と、
再構成された複数の符号化データから合成画面を生成する合成部と、を備えることを特徴とするビデオ符号化データ合成装置。
【請求項５】
前記合成部は周期的なタイミングにより起動され、
所定の合成タイミングにおいて、前記合成部は、全ての地点からのビデオ符号化データが揃わない場合に、その揃わない地点に対して、一つ前のフレームの繰り返しであることを示す情報を１フレーム分挿入して合成を行なうことを特徴とする請求項４記載のビデオ符号化データ合成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面合成処理で用いられるに先立って、符号化データを再構成する符号化データの再構成プログラムに関する。
【背景技術】
【０００２】
従来、ネットワークを介してビデオ会議端末と多地点制御装置（Multipoint Control Unit：以下、ＭＣＵという）とが接続されて構成されるビデオ会議システムがある。
ビデオ映像がネットワークを介して送受信されることにより、このような会議システムを用いたテレビ会議が可能となる。
【０００３】
近年では、各企業において、会議・出張費用の削減が推進されており、そのような背景からも、テレビ会議システムの一層の普及が見込まれている。
ＭＣＵは、各地点から送られてくる会議の参加者のビデオ映像を合成し、合成後のビデオ映像を各地点に配信する機能を有する。このＭＣＵの表示画面を参照すれば、各地点から会議に参加する参加者の様子が確認できる。
【０００４】
このＭＣＵにおいては、ビデオ会議システムを用いた会議における会話の不自然さを解消する等の理由から、ビデオ処理に低遅延かつ高品質が要求される。
このようなビデオ会議システムにおいて通常行なわれるように、通信データ量削減のために、各地点のビデオ会議端末において、動画像符号化方式に基づく符号化が行なわれて、その符号化データは、ＭＣＵ宛てに送信される。符号化データを受信したＭＣＵでは、そのビデオ符号化データを復号してから、拡大縮小などの画像サイズ変更処理を必要に応じて行い、それらのサイズ変更された、または、サイズ変更されない画像を必要な地点数分合成して、その合成された画像に対して符号化処理を行って、各地点に配信する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したＭＣＵ側での符号化データの復号から再符号化までの一連の処理は低遅延で実行することが要求される。しかし、符号化処理に高い計算能力を必要とする関係から、ＭＣＵ側に専用ハードウェア（ハードウェアコーデック）を搭載することが必須となり、コストアップの一因となっている。
【０００６】
そこで、この問題を解決するために、他の処理方式を採用することも行なわれている。例えば、ＩＴＵ−Ｔで策定された動画像符号化方式Ｈ．２６１では、ＧＯＢ（Group Of Blocks）をデータ単位に用いている。ＧＯＢでは、各フレームにおいて画面右端から左端に跨ぐデータを持たないため、別のビデオデータと合成することが可能である。
【０００７】
下記特許文献１には、図１６に示すように、Ｈ．２６１の符号化方式において、ＧＯＢをデータ単位として構成される４地点分のフレーム画像、すなわち、画像＃０、＃１、＃２、＃３を１つの画像に合成する例が示されている。このような合成方法は、データ単位（例えば、ＧＯＢ）が示す矩形領域と画面矩形との整合性が確保される符号化形式（例えば、Ｈ．２６１）に対しては適用可能である。
【０００８】
しかし、圧縮効率がＨ．２６１と比較して優れている等の理由により、近年、利用が広がっているＭＰＥＧ４方式などのように、データ単位（ビデオパケット）が画面矩形に対して整合性を有してない場合には、上記合成方法は適用できない。
【０００９】
なお、下記特許文献１には、ＭＣＵにおいて、ビデオデータが全ての地点分揃わなくても合成処理を開始できる手法も開示されている。すなわち、所定のタイミングで、各地点の画像の合成指示が行われた場合に、１フレーム分のデータが揃っていない地点に対して、その地点のデータをＰピクチャとして扱い、前回のデータからの変化がないことを示すダミーデータ（ＧＯＢ０）を挿入している。
【００１０】
しかし、ＧＯＢ内の動きベクトルは、隣りのＧＯＢ内のマクロブロックを指し示すことがある。このような場合に、上記したダミーデータを挿入する方法を適用した場合、フレーム内符号化データ（Ｉピクチャ）によって、そのマクロブロックデータがリフレッシュされるまでは、受信側の端末において画像が乱れてしまう。
【特許文献１】特開平７−２２２１３１号公報「多地点会議用画面合成システムおよび方法」
【００１１】
本発明の課題は、不規則なデータ長を有するデータ単位からなる符号化データに対して合成を行なうことが可能なようにビデオ符号化データのデータ単位を再構成するビデオ符号化データの再構成プログラムを提供することである。
【００１２】
本発明の別の課題は、不規則なデータ長を有するデータ単位からなる符号化データに対して合成を行なうことが可能なビデオ符号化データ合成装置を提供することである。
【課題を解決するための手段】
【００１３】
本発明の一態様の符号化データの再構成プログラムは、画面合成処理で用いられるに先立って、符号化データを再構成する処理をコンピュータに実現させるためのプログラムにおいて、ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定処理と、前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成処理と、を前記コンピュータに実行させることを特徴とする符号化データの再構成プログラムである。
【００１４】
ビデオ符号化データのデータ単位は不規則なデータ長を有している場合があるので、場合によっては画面境界を跨ぐ。本発明の符号化データの再構成プログラムを用いて、データ単位を画面境界を跨がないように再構成する。これにより、合成する側では、画面境界に揃えられた固定長のデータ単位を扱っているように合成することが可能となる。
【発明の効果】
【００１５】
本発明の符号化データの再構成プログラムでは、データ単位を画面境界を跨がないように再構成する。これにより、合成する側では、画面境界に揃えられた固定長のデータ単位を扱っているように合成することが可能となる。
【００１６】
また、本発明においては、ストリーム合成方式を採用しているため、「復号、合成、再符号化」を行なわずに済み、装置の処理負荷が非常に軽く、ソフトウェア的に処理することが容易である。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を、図面を参照しながら詳細に説明する。
なお、本実施形態では、ＭＰＥＧ−４の符号化方式を用いて、ビデオ会議端末側でＭＣＵへ送信される画像データの符号化が行われる。このＭＰＥＧ−４においては、図１に示すように、マクロブロック（横１６ピクセル×縦１６ピクセル：Macro Block、以下、ＭＢという）をデータの基本単位とする。そして、ＭＢを画面の幅だけ横一列に並べたラインをマクロブロックライン（Macro Block Line：以下、ＭＢＬ）と呼ぶ。
【００１８】
符号化データをストリーム形式で扱う際のデータ単位は、ビデオパケット（Video Packet：以下、ＶＰ）と呼ばれている。ＭＰＥＧ−４においては、ＶＰに含まれるＭＢの数は決まっておらず、例えば、図１に示されるように、ＭＢＬを数ライン分含むものや、または、場合によっては、１ＭＢＬに満たないものもある。そして、この関係から、ＶＰの境界とＭＢＬの境界とは、通常、一致していない。
【００１９】
図２は、本実施形態のビデオ符号化データ合成システムの構成を示すブロック図である。
図２において、ビデオ符号化データ合成システム１０は、ビデオ会議端末２０1〜２０Nとビデオ符号化データ合成装置３０とがネットワークを介して接続されることで構成される。
【００２０】
各ビデオ会議端末は、符号化部２１1〜２１Nを備える。各符号化部は、ビデオ会議端末から取り込まれた画像に対して、符号化処理を行う。
ビデオ会議端末の符号化部によって符号化された画像データは、ネットワークを介してビデオ符号化データ合成装置３０に送信される。ビデオ符号化データ合成装置３０内の判定部３１は、受信したビデオパケットを解析して、そのビデオパケットがマクロブロックラインを跨いでいるか判定する。
【００２１】
パケット再構成部３２は、ビデオパケットがマクロブロックラインを跨いでいる場合に、そのマクロブロックラインの境界でそのビデオパケットを分割する。これによって、図３に示すように、再構成後のビデオパケットには、マクロブロックラインを跨ぐものがなくなる。
【００２２】
なお、図３からは定かでないが、上記分割処理後においても、２つ以上のビデオパケットに分割されているマクロブロックラインが残っている場合がある。判定部３１は、好ましくは、そのような２つ以上のビデオパケットに分割されているマクロブロックラインに対して、そのマクロブロックライン内のビデオパケットが統合可能であるか判定する。
【００２３】
統合可能である場合、パケット再構成部３２は、マクロブロックライン内のそれらビデオパケットについて統合処理を行う。
各地点からの符号化データ（ビデオパケット）は、それぞれ上述のようなプロセスを経て、再構成された後、図２のパケット合成部３３に入力される。
【００２４】
パケット合成部３３では、必要な合成処理が行われ、この合成後の符号化データ（ビデオパケット）は、所定の地点に送られる。
５地点でビデオ会議を行っていて、各地点には、自地点以外の画像が受信され表示される場合、上記パケット合成部３４では、例えば、自地点以外の４地点を、左上、右上、左下、右下に配置して合成する。
【００２５】
図４は、図２の符号化部によって符号化されたビデオパケットの概要構成図である。
図４に示すように、ビデオパケットはヘッダ部内にマクロブロックナンバー（Macro Block Number：以下、MBnum）を保持している。このMBnumはフレーム内でのそのビデオパケットの位置情報を示している。
【００２６】
図５は、図２の判定部とパケット再構成部との連携によって行われるビデオパケットの再構成処理を示すフローチャートである。
図５において、まず、ステップＳ１０１でビデオパケットのパケット長を示す変数lenVPおよびlenRestが０に初期化される。
【００２７】
ステップＳ１０２では、ビデオパケットの取得が行われる。この取得結果は変数vpに設定される。ステップＳ１０３では、ステップＳ１０２の取得処理の結果として、変数vpにビデオパケットが設定されたかが判定される。変数vpにビデオパケットが設定されていなければ、一連の処理を終了する。
【００２８】
変数vpにビデオパケットが設定されていれば、ステップＳ１０４に進む。ステップＳ１０４では、変数vpに設定されたビデオパケットの長さが上記変数lenVPに設定される。ステップＳ１０５では、変数lenRestを参照して、変数restにビデオパケットが設定されているかが判定される。
【００２９】
変数restにビデオパケットが設定されていない場合、ステップＳ１０６に進む。ステップＳ１０６では、変数lenVPが、マクロブロックラインの長さを示すMBL LEN以上であるかが判定される。
【００３０】
ステップＳ１０６において、LenVP≧MBL LENである場合は、ステップＳ１０７に進む。ステップＳ１０７では、MBL LENの長さで変数VPのビデオパケットを分割し、残りのビデオパケットを変数restに設定する。また、変数restに設定されたビデオパケットの長さを変数lenRestに設定する。そして、ステップＳ１０８において、変数restに設定された残りのビデオパケットについて、ヘッダ情報等を修正して出力する。
【００３１】
その後、ステップＳ１０９に進む。ステップＳ１０９では、lenRest ≧MBL LENであるかが判定される。lenRest ≧MBL LENである場合は、ステップＳ１１０において、変数restに設定されるビデオパケットを変数vpに設定し直すと共に、変数lenRest＝０に設定する。そして、ステップＳ１０４に戻る。
【００３２】
一方、ステップＳ１０９においてlenRest ＜MBL LENである場合は、ステップＳ１０２に戻り、新たなビデオパケットを取得する。新たに取得されたビデオパケットは、変数vpに設定される。
【００３３】
いずれの場合でも、この変数vpのビデオパケットに対してステップＳ１０４の処理が行われる。そして、再び、ステップＳ１０５において、変数restにビデオパケットが設定されているかが判定される。
【００３４】
ステップＳ１０６において、LenVP＜MBL LENである場合は、ステップＳ１１３に進み、そこで、変数vpに設定されるビデオパケットを、変数restに設定し直す。また、そのビデオパケットの長さを変数lenRestに設定する。そして、ステップＳ１０２に戻る。
【００３５】
一方、ステップＳ１０５において、変数restにビデオパケットが設定されている場合は、ステップＳ１１１に進み、そこで、変数vpに設定されるビデオパケットと変数restに設定されるビデオパケットとが結合可能であるかが判定される。
【００３６】
ステップＳ１１１において結合可能であると判定された場合には、ステップＳ１１２に進み、そこで、変数vpに設定されるビデオパケットと、変数restに設定されるビデオパケットとを結合し、その結合したビデオパケットを変数vpに設定し直す。そして、ステップＳ１０４に戻る。
【００３７】
一方、ステップＳ１１１において結合可能でないと判定された場合には、変数restに設定されるビデオパケットについては、再構成化が完了したことになるので、ステップＳ１１４に進み、その変数restに設定されるビデオパケットを出力する。
【００３８】
そして、ステップＳ１１５において、変数lenRestと変数lenVPとの和がMBL LENより大きいかが判定される。
ステップＳ１１５において、変数lenRestと変数lenVPとの和がMBL LENより大きい、すなわち、lenRest＋lenVP＞MBL LENと判定された場合は、ステップＳ１１６に進む。
【００３９】
ステップＳ１１６では、変数vpに設定されるビデオパケットを、（MBL LEN−lenRest）で分割し、その分割されたビデオパケットの前半部分のヘッダ情報等を修正して出力する。その分割されたビデオパケットの後半部分は、ヘッダ情報等が修正され、変数restに設定される。この後半部分のパケット長は、変数lenRestに設定される。そして、ステップＳ１０９に進む。
【００４０】
ステップＳ１１５において、変数lenRestと変数lenVPとの和がMBL LEN以下である、すなわち、lenRest＋lenVP≦MBL LENと判定された場合は、ステップＳ１１７に進む。
ステップＳ１１７では、変数vpに設定されるビデオパケットを、変数restに設定し直す。変数lenRestには、このビデオパケットのパケット長が設定される。その後、ステップＳ１０２に戻る。
【００４１】
例えば、図６の左側に示されるビデオパケットは、以上のような一連の処理によって、図６の右側に示されるビデオパケットに再構成される。つまり、このような再構成処理を行うことによって、マクロブロックラインを跨ぐビデオパケットがなくなると共に、パケット長は、最長で１マクロブロックラインの長さに制限される。
【００４２】
以下では、２つのビデオパケットが結合可能であるか否かを判定する処理について、より詳細に説明する。この処理は、図５のステップＳ１１１の判定処理に相当する。
なお、本実施形態においては、上記の結合可否の判定は、ビデオパケットに格納される量子化値に基づいて行われる。ここで、量子化値とは、ＭＰＥＧ方式において通常行われるように、各マクロブロックに対して離散コサイン変換（ＤＣＴ）を施して得られた係数に対して、除算を行なう際に用いられる符号化のパラメータである。この除算の結果として量子化されたＤＣＴ係数が求められる。量子化を行うことで、符号化量を減らすことができる。
【００４３】
各ビデオパケットでは、量子化値は、以下のように格納されている。すなわち、そのビデオパケットのヘッダ部に、そのビデオパケット内の各マクロブロックの量子化値に対する基準値が格納されている。各マクロブロックでは、その量子化値は、一つ前のマクロブロックの量子化値からの差分情報として格納されている。
【００４４】
本実施形態においては、上記基準値として、先頭のマクロブロックの量子化値を用いている。この関係から、先頭のマクロブロックに格納される差分情報は、本来、“０”となるが、圧縮効率をさらに高めるために、「差分“０”のマクロブロックに対しては、差分情報を格納しない」ようにしている。そして、１つのビデオパケット内では、連続するマクロブロックの量子化値の差を所定の範囲（ここでは、±２の範囲）に収まるようにすることで、全てのマクロブロックに対して絶対値を格納する場合と比較して圧縮効率を高めることが可能となる。
【００４５】
より具体的には、あるフレームにおいて、ｍ番目のビデオパケット内のｎ番目のマクロブロックの量子化値をＱ(m,n)とする。ｍ番目のビデオパケットのヘッダ部には、そのｍ番目のビデオパケットに対する上記量子化値の基準値、例えば、最初のマクロブロックの量子化値、がパラメータquant scaleに格納されている。そして、各マクロブロックには、一つ前のマクロブロックの量子化値との差分を示すパラメータdquantが格納されている。つまり、ｍ番目のビデオパケット内の最初のマクロブロックの量子化値は下記（１）式で与えられる。
【００４６】
Ｑ(m,1)＝quant scale  ・・・  （１）
また、以降のマクロブロックの量子化値は下記（２）式で与えられる。
Ｑ(m,n)＋dquant＝Ｑ(m,n+1)  ・・・  （２）
ここで、dquant＝｛−２，−１，１，２｝である。
【００４７】
上記（２）式により、ｍ番目のビデオパケットとｍ＋１番目のビデオパケットとが結合可能なためには、ｍ番目のビデオパケットの最後のマクロブロックの量子化値と、ｍ＋１番目のビデオパケットの最初のマクロブロックの量子化値との差が所定の範囲（ここでは、±２の範囲）に収まっていなくてはならない。つまり、ｍ番目のビデオパケットがlast個のマクロブロックで構成されていた場合、下記（３）の条件式、
｜Ｑ(m,last)−Ｑ(m+1,1)｜≦２  ・・・  （３）
が成り立てば、ｍ番目のビデオパケットとｍ＋１番目のビデオパケットとは結合可能である。
【００４８】
なお、本実施形態においては、上記したように圧縮効率を高める観点から、dquant＝０に対応する場合、すなわち、連続する２つのマクロブロックにおいて、後続のマクロブロックの量子化値が１つ前のマクロブロックの量子化値と一致し、したがって、差分が０である場合には、その後続のマクロブロックには、差分情報を格納しないようにしている。しかし、このことは、本発明における差分情報の表現を限定するものではない。例えば、上記の場合において、差分情報＝０の場合も、「０」という情報を各マクロブロックに格納させることも可能である。また、ヘッダ部に格納された基準値からの差分情報が各マクロブロックに格納されてもよい。つまり、上記したヘッダ部に格納された基準値に基づいて、各マクロブロックの量子化値が差分情報によって表現される任意の場合に対応可能である。この場合、結合判定処理では、１マクロブロックライン内に存在する連続するビデオパケット内の各マクロブロックにおいて上記ヘッダ部の基準値に基づく差分情報による表現が可能な場合に、それらビデオパケットを結合する。
【００４９】
図７は、結合判定処理のフローチャートである。この判定処理は、図２の判定部によって行われ、図５のステップＳ１１１の判定処理に対するより詳細なフローチャートである。
【００５０】
まず、図５のステップＳ１０９で変数restにビデオパケットが設定されていると判定された場合、図７のステップＳ２０１において、その変数restに設定されるビデオパケット内の各マクロブロックがスキャンされ、各マクロブロックにおける量子化値が順次、算出される。すなわち、上記（１）式により、例えば、先頭のマクロブロックに対する量子化値が与えられ、以降のマクロブロックについては、上記（２）式を繰り返し用いることで、量子化値が順次求められる。そして、ステップＳ２０２において、ステップＳ２０１で求められている、変数restに設定されるビデオパケットの最後のマクロブロックの量子化値を、変数MBlastに格納する。
【００５１】
なお、ステップＳ２０１に制御が移った状態では、変数vpには、変数restに設定されるビデオパケットの直後のビデオパケットが設定されている。そこで、続く、ステップＳ２０３では、この変数vpに設定されるビデオパケットの最初のマクロブロックの量子化値が変数MBnewに格納される。
【００５２】
そして、ステップＳ２０４において、変数restに設定されるビデオパケットと、変数vpに設定されるビデオパケットとが結合可能であるかが判定される。｜MBlast−MBnew｜≦２の場合、結合可能と判定され、図５のステップＳ１１２に進む。また、｜MBlast−MBnew｜＞２の場合、結合不可と判定され、図５のステップＳ１１３に進む。
【００５３】
図８は、図７のフローチャートにおいて、結合不可と判定される場合を説明する図である。
図８において、ビデオパケットＶＰ＃１の最初のマクロブロックの量子化値Ｑ（１，１）＝１０であること、また、２番目のマクロブロックについては、dquant＝−２であることから、その量子化値Ｑ（１，２）＝Ｑ（１，１）＋dquant＝１０＋（−２）＝８であること、また、３番目のマクロブロックについては、dquant＝−１であることから、その量子化値Ｑ（１，３）＝Ｑ（１，２）＋dquant＝８＋（−１）＝７であること、が示されている。また、ビデオパケットＶＰ＃１の最後の（ｎ番目の）マクロブロックについては、その量子化値Ｑ（１，ｎ）＝Ｑ（１，ｎ−１）＋dquant＝１２であることが示されている。
【００５４】
一方、ビデオパケットＶＰ＃１の後続のビデオパケットＶＰ＃２の最初のマクロブロックの量子化値Ｑ（２，１）＝１５であることが示されている。
図８の例では、｜Ｑ（１，ｎ）−Ｑ（２，１）｜＝｜１２−１５｜＝３＞２、となるため、ビデオパケットＶＰ＃１とビデオパケットＶＰ＃２は結合不可と判定される。
【００５５】
図９は、図７のフローチャートにおいて、結合可能と判定される場合を説明する図である。
図９において、ビデオパケットＶＰ＃１の最初のマクロブロックの量子化値Ｑ（１，１）＝１０であること、また、ビデオパケットＶＰ＃１の最後の（ｎ番目の）マクロブロックについては、その量子化値Ｑ（１，ｎ）＝Ｑ（１，ｎ−１）＋dquant＝１２であることが示されている。
【００５６】
一方、ビデオパケットＶＰ＃１の後続のビデオパケットＶＰ＃２の最初のマクロブロックの量子化値Ｑ（２，１）＝１１であることが示されている。
図９の例では、｜Ｑ（１，ｎ）−Ｑ（２，１）｜＝｜１２−１１｜＝１≦２、となるため、ビデオパケットＶＰ＃１とビデオパケットＶＰ＃２は結合可能と判定される。
【００５７】
なお、図９の下半分は、結合後のビデオパケットを示している。後続のビデオパケットＶＰ＃２の最初のマクロブロックの量子化値（＝１１）は、結合前はＶＰ＃２のヘッダ部の基準値からの差分情報として表現されていたが、結合後は、ビデオパケットＶＰ＃１の最後のマクロブロックの量子化値（＝１２）からの差分情報（＝−１）として表現されている。
【００５８】
なお、以上の説明では、量子化値は基準値からの差分情報に基づいて表現され、その差分表現が可能であるか否かに基づいて、１マクロブロックライン内に含まれる複数のビデオパケットを結合するか否かを決めていたが、量子化値は必ずしも差分情報により表現される必要はなく、例えば、各量子化値を絶対値にて表現することも可能である。その場合には、１マクロブロックライン内に含まれる複数のビデオパケットについては上述の結合判定処理を介することなく結合されることとなる。
【００５９】
図１０および図１１は、図６に示された例に対して、マクロブロックナンバーを具体的に記載した図である。図１０は再構成前のデータ例を示し、図１１は再構成後のデータ例を示す。
【００６０】
図１０では、画像サイズは、横１１×縦９マクロブロックとなっている。この画像は、ＶＰ＃１、ＶＰ＃２、ＶＰ＃３、ＶＰ＃４、ＶＰ＃５、ＶＰ＃６の６つのビデオパケットからなる。ＶＰ＃１は、MBnum=０からMBnum=８までの９個のマクロブロックにより構成される。ＶＰ＃２は、MBnum=９からMBnum=２６までの１８個のマクロブロックにより構成される。ＶＰ＃３は、MBnum=２７からMBnum=５１までの２５個のマクロブロックにより構成される。ＶＰ＃４は、MBnum=５２からMBnum=５８までの７個のマクロブロックにより構成される。ＶＰ＃５は、MBnum=５９からMBnum=７１までの１３個のマクロブロックにより構成される。ＶＰ＃６は、MBnum=７２からMBnum=９８までの２７個のマクロブロックにより構成される。
【００６１】
以下の表１は、これら各ビデオパケットＶＰ＃１〜ＶＰ＃６の最初および最後のマクロブロックに対する量子化値（の一例）を示している。
【００６２】
【表１】
2005252898.tif 000003
【００６３】
表１を参照すると、ＶＰ＃１の最後のマクロブロック（MBnum=８）とＶＰ＃２の最初のマクロブロック（MBnum=９）の量子化値の差は、｜１１−８｜＝３で与えられ、上記（３）の条件を満たさないので、結合不可となる。同様にして、ＶＰ＃２とＶＰ＃３では、量子化値の差は、｜１０−１１｜＝１で与えられるので結合可、ＶＰ＃３とＶＰ＃４では、量子化値の差は、｜１０−１２｜＝２で与えられるので結合可、ＶＰ＃４とＶＰ＃５では、量子化値の差は、｜９−８｜＝１で与えられるので結合可、ＶＰ＃５とＶＰ＃６では、量子化値の差は、｜８−１２｜＝４で与えられるので結合不可、である。
【００６４】
以下、図１０の再構成前のデータ例に対して、図５または図７のフローチャートに示す処理を施すことで、図１１に示す再構成後のデータが得られることの概要を示す。
まず、ステップＳ１０２で、ビデオパケットＶＰ＃１が取得される。この取得結果は変数vpに設定される。そして、ステップＳ１０４において、変数vpに設定されたビデオパケット（ＶＰ＃１）の長さ＝９が上記変数lenVPに設定される。この場合、変数restにはビデオパケットが設定されていないので、ステップＳ１０４からステップＳ１０６の判定処理に進む。この場合、LenVP（＝９）＜MBL LEN（＝１１） であるので、ステップＳ１０６の判定ステップからステップＳ１１３に進む。
【００６５】
ステップＳ１１３では、変数vpに設定されるビデオパケットを変数restに設定し直すと共に、変数lenRestにもそのビデオパケットＶＰ＃１のパケット長（＝９）を設定する。そして、ステップＳ１０２に戻る。ステップＳ１０２では、次のビデオパケットＶＰ＃２が取得され、変数vpに設定される。また、ステップＳ１０４において、変数vpに設定されたビデオパケット（ＶＰ＃２）の長さ＝１８が上記変数lenVPに設定される。
【００６６】
この場合、変数restにビデオパケットが設定されているので、ステップＳ１０５の判定ステップからステップＳ１１１の判定ステップへ進む。上記表１を参照すると、ビデオパケットＶＰ＃１とＶＰ＃２の境界では、量子化値の差が｜１１−８｜＝３あるので、ステップＳ１１１では、結合不可と判定され、ステップＳ１１４に進む。そして、ステップＳ１１４において、変数restに設定されるビデオパケットを出力する。この出力されたビデオパケットがＶＰ＃１（再構成後）となる。
【００６７】
この場合、lenRest＋lenVP＝９＋１８＞MBL LEN＝１１であるので、ステップＳ１１５からステップＳ１１６に進み、そこで、変数vpに設定されるビデオパケットをMBL LEN−lenRest＝１１−８＝３で分割する。この結果、変数vpに設定されていたビデオパケットの先頭から３つのマクロブロックに対してヘッダ情報等が修正され出力される。この出力されたビデオパケットがＶＰ＃２（再構成後）となる。
【００６８】
分割されたビデオパケットの後半部分は、ヘッダ情報等が修正され、変数restに設定される。この後半部分のパケット長１８−３＝１５は、変数lenRestに設定される。そして、ステップＳ１０９に進む。
【００６９】
この場合、lenRest＝１５≧MBL LEN＝１１であるので、ステップＳ１０９からステップＳ１１０に進み、そこで、変数restに設定されるビデオパケットを変数vpに設定し直すと共に、変数lenRest＝０に設定する。そして、ステップＳ１０４に戻り、変数vpに設定されるビデオパケットの長さ＝１５をlenVPに設定する。
【００７０】
ステップＳ１１０で変数lenRest＝０に設定したことから、「restなし」となるので、ステップＳ１０５からステップＳ１０６に進む。そして、lenVP＝１５≧MBL LEN＝１１であることからステップＳ１０７に進む。ステップＳ１０７では、変数vpに設定されるビデオパケットの内のMBL LEN＝１１分を出力する。この出力されたビデオパケットがＶＰ＃３（再構成後）となる。残りのビデオパケットについては、変数restに設定する。この残りのビデオパケットの長さ＝１５−１１＝４は、変数lenRestに設定される。そして、ステップＳ１０８で、変数restに設定されるビデオパケットについて、ヘッダ修正等が行なわれる。そして、ステップＳ１０９に進む。
【００７１】
この場合、lenRest＝４＜MBL LEN＝１１であるので、ステップＳ１０９からステップＳ１０２に戻り、そこで、新たなビデオパケットＶＰ＃３が取得され変数vpに設定される。そして、ステップＳ１０４において、変数lenVPに変数vpに設定されるビデオパケット長＝２５が格納される。
【００７２】
このような処理が続いて行なわれることによって、図１１に示すように、ビデオパケットＶＰ＃１（再構成後）〜ＶＰ＃１１（再構成後）が順次、出力される。
以上のようにして、パケットに対して再構成処理が行われると、続いて、ビデオ合成部において、再構成されたパケットを基に合成処理が行われる。
【００７３】
図１２は、この合成処理を説明する図である。
図１２では、４画面（フレーム）を合成して１つの合成画面を得る場合のように、合成画面上で横に２画面が並んでいる場合が想定されている。
【００７４】
図１２において、右上には、フレーム（その１）が示されている。また、左上には、フレーム（その２）が示されている。いずれのフレームも再構成処理が既に施されている。
合成画面を受信する側の端末において、その合成画面を正しく復号するために、左上を起点とし、左上→右上→左下→右下の順で、右下に至るまで、連番となるように、各ビデオパケットのマクロブロックナンバーを振り直している。すなわち、この場合では、１マクロブロックラインごとに２画面が多重化されるように各ビデオパケット内のマクロブロックナンバーを書き換える。
【００７５】
このように、本実施形態においては、パケット再構成部によって、マクロブロックラインの境界がビデオパケットの境界と揃えられているので、復号処理を行うことなく、ヘッダ解析とマクロブロックナンバーの書き換えによるビデオパケット単位の多重化により、合成部による画面合成が可能となっている。
【００７６】
このようなマクロブロックナンバーの振り直しが行われた合成画面は、端末側において受信される。そして、復号部において復号され再生される。
図１３は、画面を合成する合成タイミングを説明する図である。
【００７７】
図１３では、各地点の端末から届く、ビデオ符号化データのフレームレートより早い周期を合成タイミングとして設定して合成を行なっている。
ある合成タイミングにおいて、全ての地点からのデータが揃わない場合は、その揃わない地点については、前フレームの画像の繰り返しを意味する符号化データを挿入する。また、全ての地点からのデータが揃っている場合は、それらのデータを用いて合成を行なう。
【００７８】
図１３の例では、各地点から毎秒５フレーム分、送信されるデータが入力され、毎秒７回の割合で合成が行なわれている。すなわち、フレームを５Ｈｚ間隔で受信し、合成を７Ｈｚ間隔で行なっている。
【００７９】
合成タイミングt1では、４地点分のデータが揃っているので、これらのデータを用いて画像を合成する。一方、時刻t1から１／７秒経過した時刻t2では、地点２と４については、次の符号化データの受信が完了しているが、地点１と３については、次の符号化データの受信が完了していない。このような場合は、地点１と３については、一つ前の時刻t1の画像を繰り返し用いる。すなわち、地点１と３については、前の画像からの変化がないことを示す符号化データを生成して用いる。
【００８０】
これにより、各地点からのデータの到着タイミングが同期していない場合でも、各地点のデータの合成が可能となる。
なお、以上の説明では、判定部、パケット再構成部はビデオ符号化データ合成装置側に設けられていたが、これら判定部、パケット再構成部をビデオ会議端末側に設けるようにしてもよい。この場合、ビデオ会議端末側で、取り込んだ画像を符号化した後に、図５や図７のフローチャートの処理が行われて、ビデオパケットが端末側で再構成される。その場合、合成装置側では、再構成処理を省くことができ、処理負荷が軽減する。
【００８１】
また、以上の説明では、パケット再構成処理を符号化処理の後に行なうようにしていたが、これらパケット再構成処理と符号化処理とが端末側で並行に行なわれるようにしてもよい。この場合、例えば、図５に示すパケット再構成処理が符号化処理と並行して実行される。このようにすれば、符号化されたデータ中に含まれるビデオパケットは画面の境界を跨ぐことがなくなる。この場合も、合成装置側では、再構成処理を省くことができ、処理負荷が軽減する。なお、そのような再構成処理・符号化処理を行なう再構成・符号化ユニットは、取り込んだ画像からマクロブロックのデータを生成するマクロブロック生成部と、前記生成されたマクロブロックを連結する連結部と、前記連結されたマクロブロックの長さが、画面サイズを構成するマクロブロック数を超えるかを判定する判定部と、超えると判定された場合に、その画面サイズのマクロブロック数からビデオパケットを生成するビデオパケット生成部と、前記生成された複数のビデオパケットから符号化データを生成する符号化データ生成部と、によって構成される。
【００８２】
なお、ビデオ会議端末の符号化部において、所定のプロファイル、例えば、シンプルプロファイル（Simple Profile）に基づいて、各ＭＢの動きベクトルが、フレーム（画面）の内側のみを指し示すように符号化を実行してもよい。すなわち、動き検出処理において、動きベクトルが参照画像フレームの外を指し示す場合には、次の候補を探し、フレーム内を向くベクトルを選択するようにしてもよい。このようにすれば、ビデオ符号化データ合成装置３０内のパケット合成部３３での処理負荷を大幅に軽減することができると共に、上記したようなフレーム内符号化データ（Ｉピクチャ）によって、マクロブロックデータがリフレッシュされるまで画像が乱れることを回避することができる。
【００８３】
なお、ビデオ会議においては、会議参加者の背景に対応する画像部分には、動きが殆どない（多くの場合静止している）ことを考慮すると、符号化処理において、動きベクトルに画面の内側を向かせる、という上記制約を取り除くことも考えられる。
【００８４】
図１４は、ビデオ符号化データ合成システムの一構成例である。このシステムにおいては、Ｎ地点に画像を合成して送ることができるビデオ符号化データ合成装置が備えられている。また、この例では、各地点には、他地点からの画像に混じって自地点の画像も表示されるようになっている。
【００８５】
上記した本発明の判定処理やパケット再構成処理は、ハードウェアとして実現可能であると共に、ソフトウェアとしても実現可能である。ソフトウェアとして実現される場合には、記憶媒体から本体内メモリにロードされて実行される。
【００８６】
図１５は、本実施形態の判定処理やパケット結合処理を行うプログラムが格納される記憶媒体例を示す図である。
図１５に示されるように、上記記憶媒体には、ＣＤ−ＲＯＭ、フレキシブルディスク（あるいはＭＯ、ＤＶＤ、リムーバブルハードディスク等であってもよい）等の媒体駆動装置４７に脱着可能な可搬記憶媒体４６や、ネットワーク回線４３経由で送信される外部の装置（サーバ等）内の記憶手段（データベース等）４２、あるいは情報処理装置４１の本体４４内のメモリ（ＲＡＭ又はハードディスク等）４５等が含まれる。
【００８７】
本実施形態のプログラムは、上記記憶媒体から本体４４内のメモリ４５にロードされ実行される。
本発明は下記構成でもよい。
【００８８】
（付記１）  画面合成処理で用いられるに先立って、符号化データを再構成する処理をコンピュータに実現させるためのプログラムにおいて、
ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定処理と、
前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成処理と、
を前記コンピュータに実行させることを特徴とする符号化データの再構成プログラム。
【００８９】
（付記２）  前記ビデオ符号化データは、動きベクトルが、画面の内側のみを指し示すように符号化されていることを特徴とする付記１記載の符号化データの再構成プログラム。
【００９０】
（付記３）  前記判定処理において、前記符号化データのデータ単位の位置情報と、前記コンピュータの記憶手段に格納された画面サイズとに基づいて、データ単位が画面の境界を跨ぐか否かが判定されることを特徴とする付記１記載の符号化データの再構成プログラム。
【００９１】
（付記４）  前記再構成処理は、更に、前記画面サイズ内において結合可能なものを結合する処理を含むことを特徴とする付記１記載の符号化データの再構成プログラム。
（付記５）  前記再構成処理は、更に、前記画面サイズ内に存在する複数のデータ単位を結合する処理を含むことを特徴とする付記１記載の符号化データの再構成プログラム。
【００９２】
（付記６）  前記データ単位は、ヘッダ部と複数の基本単位とを含み、前記ヘッダ部には、符号化のパラメータ値の基準値が格納され、各基本単位における符号化のパラメータ値は、前記基準値に基づいて決定される差分情報によって表現され、
前記再構成処理は、前記画面サイズ内に複数のデータ単位が存在する場合に、それらデータ単位の境界において、それらデータ単位が結合可能であるか判定する結合判定処理をさらに備え、
該結合判定処理は、前記画面サイズ内に存在する連続するデータ単位内の各基本単位において前記ヘッダ部の基準値に基づく差分情報による表現が可能な場合に、それらデータ単位を結合することを特徴とする付記３記載の符号化データの再構成プログラム。
【００９３】
（付記７）  前記基準値に基づいて決定される各基本単位の符号化のパラメータ値は、各基本単位において、１つ前の基本単位の符号化のパラメータ値からの差分情報として表現され、
前記結合判定処理は、前記画面サイズ内に存在する連続するデータ単位において、後続のデータ単位の最初の基本単位の符号化のパラメータ値が、一つ前のデータ単位の最後の基本単位の符号化のパラメータ値からの差分情報として表現可能な場合に、それらデータ単位を結合することを特徴とする付記６記載の符号化データの再構成プログラム。
【００９４】
（付記８）  前記データ単位はビデオパケットであることを特徴とする付記１記載の符号化データの再構成プログラム。
（付記９）  前記データ単位はビデオパケットであり、前記基本単位はマクロブロックであることを特徴とする付記６記載の符号化データの再構成プログラム。
【００９５】
（付記１０）  画面合成処理で用いられるに先立って、画像データを符号化し、かつ、再構成する処理をコンピュータに実現させるためのプログラムにおいて、
取り込んだ画像から基本単位のデータを生成する処理と、
前記生成された基本単位を連結する処理と、
前記連結された基本単位の長さが、前記コンピュータの記憶手段に格納される画面サイズを構成する基本単位数を超えるかを判定する処理と、
超えると判定された場合に、その画面サイズの基本単位数からデータ単位を生成する処理と、
前記生成された複数のデータ単位から符号化データを生成する処理と、
を前記コンピュータに実行させることを特徴とする画像データの符号化・再構成プログラム。
【００９６】
（付記１１）  ビデオ符号化データのデータ単位を解析して画面の境界を跨ぐか否かを判定する判定部と、
前記データ単位が前記画面境界を跨ぐと判定された場合に、該境界を跨ぐことがないように、前記データ単位を再構成する再構成部と、
再構成された複数の符号化データから合成画面を生成する合成部と、を備えることを特徴とするビデオ符号化データ合成装置。
【００９７】
（付記１２）  前記合成部は周期的なタイミングにより起動され、
所定の合成タイミングにおいて、前記合成部は、全ての地点からのビデオ符号化データが揃わない場合に、その揃わない地点に対して、一つ前のフレームの繰り返しであることを示す情報を１フレーム分挿入して合成を行なうことを特徴とする付記８記載のビデオ符号化データ合成装置。
【００９８】
（付記１３）  ビデオ符号化データ合成装置にビデオ符号化データを送信する端末内に設けられた符号化・再構成ユニットにおいて、
取り込んだ画像から基本単位のデータを生成する基本単位生成部と、
前記生成された基本単位を連結する連結部と、
前記連結された基本単位の長さが、画面サイズを構成する基本単位数を超えるかを判定する判定部と、
超えると判定された場合に、その画面サイズの基本単位数からデータ単位を生成するデータ単位生成部と、
前記生成された複数のデータ単位から符号化データを生成する符号化データ生成部と、
を備えることを特徴とする符号化・再構成ユニット。
【産業上の利用可能性】
【００９９】
本発明は、ビデオ符号化データ合成装置側で復号／符号化処理を行わないストリーム合成方式に適用可能である。
【図面の簡単な説明】
【０１００】
【図１】符号化データをストリーム形式で扱う際のデータ単位を説明する図である。
【図２】本実施形態のビデオ符号化データ合成システムの構成を示すブロック図である。
【図３】ビデオパケットの境界が再構成される様子を説明する図である
【図４】ビデオパケットの構造を示す図である。
【図５】ビデオパケットの再構成処理を示すフローチャートである。
【図６】再構成処理の前後でのデータ例を示す図である。
【図７】結合判定処理のフローチャートである。
【図８】図７のフローチャートにおいて、結合不可と判定される場合を説明する図である。
【図９】図７のフローチャートにおいて、結合可能と判定される場合を説明する図である。
【図１０】図６に示された再構成前のデータに対して、マクロブロックナンバーを具体的に記載した図である。
【図１１】図６に示された再構成後のデータに対して、マクロブロックナンバーを具体的に記載した図である。
【図１２】合成処理を説明する図である。
【図１３】画面を合成する合成タイミングを説明する図である。
【図１４】ビデオ符号化データ合成システムの一構成例である。
【図１５】記憶媒体例を示す図である。
【図１６】従来の画面合成を説明する図である。
【符号の説明】
【０１０１】
１０  ビデオ符号化データ合成システム
２０  ビデオ会議端末
２１  符号化部
３０  ビデオ符号化データ合成装置
３１  判定部
３２  パケット再構成部
３３  パケット合成部
４１  情報処理装置
４２  記憶手段
４３  ネットワーク
４４  装置本体
４５  メモリ
４６  可搬記憶媒体
４７  媒体駆動装置
【図１】
2005252898.tif 000004
【図２】
2005252898.tif 000005
【図３】
2005252898.tif 000006
【図４】
2005252898.tif 000007
【図５】
2005252898.tif 000008
【図６】
2005252898.tif 000009
【図７】
2005252898.tif 000010
【図８】
2005252898.tif 000011
【図９】
2005252898.tif 000012
【図１０】
2005252898.tif 000013
【図１１】
2005252898.tif 000014
【図１２】
2005252898.tif 000015
【図１３】
2005252898.tif 000016
【図１４】
2005252898.tif 000017
【図１５】
2005252898.tif 000018
【図１６】
2005252898.tif 000019