(57)【特許請求の範囲】
【請求項１】
入力した動画像信号から少なくとも１枚のフレームを符号化して符号化フレームを生成する処理を可変のフレームレートで行う動画像符号化方法において、
現在のフレームが、フレーム内符号化すべきフレームであることを示す符号化境界条件を満たすか否かを判定するステップと、
直前に符号化されたフレームの時刻又は直前に符号化されたタイムスタンプの時刻から前記現在のフレームまでの経過時間を算出するステップと、
前記経過時間が所定の時間を超えたか否かを判定するステップと、
前記経過時間が所定の時間を超えた場合に、符号化されたタイムスタンプを含み且つ符号化データを伴わないヘッダデータを出力するステップと、
前記経過時間が所定の時間を超えていない場合に、前記現在のフレームが符号化境界条件を満たすか否かに応じて前記現在のフレームの符号化タイプをフレーム内符号化とフレーム間符号化のいずれかに設定するステップと、
前記符号化タイプに従って前記現在のフレームを符号化することにより符号化データを生成するステップと、
前記符号化データのスキップ判定を行うステップと、
前記スキップ判定の結果に従って、前記符号化データを出力するか、又は該符号化データの出力をスキップするステップとを具備することを特徴とする動画像符号化方法。
【請求項２】
前記符号化データのスキップ判定を行うステップは、
仮想受信バッファの占有量を計算するステップと、
前記占有量から前記仮想受信バッファのアンダーフローの有無を判定するステップとを含むことを特徴とする請求項１に記載の動画像符号化方法。
【請求項３】
請求項１又は２に記載の動画像符号化方法に従い符号化された動画像の符号化データと当該動画像に関係する音声の符号化データとを多重化して多重化データを出力する動画像音声多重化方法において、
前記動画像符号化データのヘッダデータに基づいてタイムスタンプを生成するステップと、
前記動画像の符号化データ及び前記音声の符号化データをそれぞれパケット化するステップと、
パケット化された前記動画像の符号化データ及び音声の符号化データのそれぞれのヘッダデータに前記タイムスタンプをセットすると共に多重化するステップとを具備することを特徴とする動画像音声多重化方法。
【請求項４】
入力した動画像信号から少なくとも１枚のフレームを符号化して符号化フレームを生成する処理を可変のフレームレートで行う動画像符号化プログラムであって、
コンピュータに、
現在のフレームが、フレーム内符号化すべきフレームであることを示す符号化境界条件を満たすか否かを判定する手順と、
直前に符号化されたフレームの時刻又は直前に符号化されたタイムスタンプの時刻から前記現在のフレームまでの経過時間を算出する手順と、
前記経過時間が所定の時間を超えたか否かを判定する手順と、
前記経過時間が所定の時間を超えた場合に、符号化されたタイムスタンプを含み且つ符号化データを伴わないヘッダデータを出力する手順と、
前記経過時間が所定の時間を超えていない場合に、前記現在のフレームが符号化境界条件を満たすか否かに応じて前記現在のフレームの符号化タイプをフレーム内符号化とフレーム間符号化のいずれかに設定する手順と、
前記符号化タイプに従って前記現在のフレームを符号化することにより符号化データを生成する手順と、
前記符号化データのスキップ判定を行う手順と、
前記スキップ判定の結果に従って、前記符号化データを出力するか、又は該符号化データの出力をスキップする手順とを実行させる動画像符号化プログラム。
【請求項５】
入力した動画像信号から少なくとも１枚のフレームを符号化して符号化フレームを生成する処理を可変のフレームレートで行う動画像符号化装置において、
現在のフレームが、フレーム内符号化すべきフレームであることを示す符号化境界条件を満たすか否かを判定する手段と、
直前に符号化されたフレームの時刻又は直前に符号化されたタイムスタンプの時刻から前記現在のフレームまでの経過時間を算出する手段と、
前記経過時間が所定の時間を超えたか否かを判定する手段と、
前記経過時間が所定の時間を超えた場合に、符号化されたタイムスタンプを含み且つ符号化データを伴わないヘッダデータを出力する手段と、
前記経過時間が所定の時間を超えていない場合に、前記現在のフレームが符号化境界条件を満たすか否かに応じて前記現在のフレームの符号化タイプをフレーム内符号化とフレーム間符号化のいずれかに設定する手段と、
前記符号化タイプに従って前記現在のフレームを符号化することにより符号化データを生成する手段と、
前記符号化データのスキップ判定を行う手段と、
前記スキップ判定の結果に従って、前記符号化データを出力するか、又は該符号化データの出力をスキップする手段とを具備することを特徴とする動画像符号化装置。
【請求項６】
請求項５に記載の動画像符号化装置により符号化された動画像の符号化データと当該動画像に関係する音声の符号化データとを多重化して多重化データを出力する動画像音声多重化装置において、
前記動画像符号化データのヘッダデータに基づいてタイムスタンプを生成する生成手段と、
前記動画像の符号化データ及び前記音声の符号化データをそれぞれパケット化するパケット化手段と、
パケット化された前記動画像の符号化データ及び音声の符号化データのそれぞれのヘッダデータに前記タイムスタンプをセットすると共に多重化する多重化手段とを具備することを特徴とする動画像音声多重化装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、任意の可変フレームレートで符号化を行う動画像符号化及び動画像音声多重化に関する。
【０００２】
【従来の技術】
インターネットや第三世代携帯電話での映像配信等で用いられる動画像符号化の国際標準規格としてＭＰＥＧ４（ＩＳＯ／ＩＥＣ１４４９６−２）が知られている。ＭＰＥＧ４は、低ビットレートでの符号化効率に優れ、また誤り耐性の強化等の多彩なオプションが盛り込まれており、次世代の動画像符号化方式として注目されている。ＭＰＥＧ４動画像符号化では、任意の可変フレームレートでの符号化を行うことが可能であり、伝送ビットレートや画像の性質に応じて、フレームレートを動的に制御することで、画質を向上させることが可能である。フレームレートの制御については、例えば特開平０９−１３０７８７号公報に記載の方法などが知られている。
【０００３】
ＭＰＥＧ４規格において、フレーム単位の符号量の時間変動は、仮想受信バッファＶＢＶ（Ｖｉｄｅｏ  Ｂｕｆｆｅｒｉｎｇ  Ｖｅｒｉｆｉｅｒ）の範囲内で吸収できる範囲に制限されている。つまり、エンコーダ（符号化器）では、ＶＢＶバッファがアンダーフロー及びオーバーフローしないように、発生符号量を動的に制御する必要がある。ＭＰＥＧ４エンコーダでは、通常、量子化ステップの制御とフレームスキップの制御により発生符号量の制御を行っている。固定ビットレートの符号化においては、ＶＢＶバッファのオーバーフローについては、通常、スタッフィング処理により回避される。また、可変ビットレートの符号化においては、ＶＢＶバッファのオーバーフローは、ＶＢＶモデル上発生せず、スタッフィングは不要となっている。
【０００４】
一方、ＶＢＶバッファのアンダーフローについては、固定ビットレートまたは可変ビットレートの如何を問わず、エンコーダでの適切な符号量制御によって発生を防がなければならない。ＶＢＶバッファのアンダーフローを防ぐ具体的な方法については、規格上は規定されておらず、エンコーダ独自の制御の実装が必要とされている。通常、ＶＢＶバッファのアンダーフローを防ぐためには、ＶＢＶバッファの占有量が低下したとき、フレームスキップを予め多く発生させたり、或いは量子化制御を急激に変化させて発生符号量を抑える処理などが行われるが、その結果、符号化画像の画質劣化を招く場合がある。
【０００５】
ＭＰＥＧ４規格に沿って符号化された動画像符号化データは、関連する音声データと共にパケット多重化されることが一般的である。例えば、データ放送規格であるＡＲＩＢ  ＳＴＤ−Ｂ２４（（社）電波産業会）などでは、ＭＰＥＧ４動画像符号化データをＭＰＥＧ２−ＴＳ（トランスポートストリーム）（ＩＳＯ／ＩＥＣ１３８１８−１）により、パケット多重化する方式が採用されている。このＭＰＥＧ２−ＴＳでは、アクセスユニットと呼ばれる単位毎にタイムスタンプを付与して多重化を行うことで、再生側での同期を保証する。このようなＭＰＥＧ２−ＴＳの規格においては、アクセスユニットのタイムスタンプのインターバルは、０．７秒（７００ｍｓｅｃ）以内にすることが規定されている。なお、動画像では符号化フレームがアクセスユニットの単位となる。
【０００６】
上述したようなＶＢＶの破綻を防ぐためのフレームスキップ制御を行うにあたり、連続するフレームの間隔が０．７秒を超えてしまうと、ＭＰＥＧ２−ＴＳ多重化規格での規格違反を発生させてしまう場合がある。逆に、上記最大フレーム間隔の制限の下、フレームレートの制御が制約を受けると、特に低ビットレート符号化時に画質劣化を引き起こす場合がある。
【０００７】
【発明が解決しようとする課題】
上述したように、従来、ＭＰＥＧ４エンコーダ等において、ＶＢＶバッファのアンダーフローを防ぐための量子化制御及びフレームレート制御により、画質劣化を引き起こすという問題点がある。また、ＭＰＥＧ４の動画像データをＭＰＥＧ２−ＴＳに従い多重化する場合、最大アクセスユニットインターバルの制限から任意のフレームスキップ制御が困難になり、特に低ビットレート符号化時において画質劣化を招くという問題点がある。
【０００８】
本発明は、このような事情を考慮してなされたものであり、最大フレーム間隔に制限がある場合においても、画質劣化を伴わず、且つＶＢＶの制限を確実に満たすことが可能な、高画質で高能率な動画像符号化及び動画像音声多重化を実現することを目的とする。
【０００９】
【課題を解決するための手段】
上記課題を解決し目的を達成するために本発明は次のように構成されている。
【００１０】
本発明の請求項１に係る動画像符号化方法は、入力した動画像信号から少なくとも１枚のフレームを符号化して符号化フレームを生成する処理を可変のフレームレートで行う動画像符号化方法において、直前に符号化されたフレームから現在のフレームまでの経過時間を算出するステップと、前記経過時間が所定の時間を超えたか否かを判定するステップと、前記経過時間が所定の時間を超えた場合に、符号化データを伴わないヘッダデータを出力するステップと、前記経過時間が所定の時間を超えない場合に、前記フレームレートの変更のために前記符号化フレームの生成処理をスキップするステップとを具備することを特徴とする。
【００１１】
本発明の請求項４に係る動画像音声多重化方法は、上記動画像符号化方法に従い符号化された動画像の符号化データと当該動画像に関係する音声の符号化データとを多重化して多重化データを出力する動画像音声多重化方法において、前記動画像符号化データのヘッダデータに基づいてタイムスタンプを生成するステップと、前記動画像の符号化データ及び前記音声の符号化データをそれぞれパケット化するステップと、パケット化された前記動画像の符号化データ及び音声の符号化データのそれぞれのヘッダデータに前記タイムスタンプをセットすると共に多重化するステップとを具備することを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態を説明する。
【００１３】
図１は、本発明の第一の実施形態に係わる動画像符号化の処理の流れを示すフローチャートである。第一の実施形態に係わる動画像符号化の処理では、動画像信号を１フレームづつ順次入力する。そして、入力した当該フレームについて、ＭＰＥＧ４などの符号化方式に従い符号化して符号化データを出力するか、あるいはこれを符号化せずにスキップし、次の入力フレームを待つ。この２つの動作のうちのいずれかを入力フレーム毎に繰り返し行う。後述する実施形態を含め、本発明に係わる動画像符号化の処理は、論理回路等から成る動画像符号化装置として、あるいはコンピュータに当該処理を実行させる動画像符号化プログラムとして実現される。
【００１４】
ＭＰＥＧ４の規格では、フレームスキップを実現するため、符号化された動画像フレーム毎に挿入されるＶＯＰ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｐｌａｎｅ）ヘッダに、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔとｖｏｐ＿ｃｏｄｅｄというフラグが含まれている。前者は、直前に符号化されたフレームからの時間間隔を表し、また、後者の値が０の場合、ヘッダのみで符号化データが存在しないことを示すものである。ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔに大きな値を設定すれば、その間のフレームがスキップしたことを示し、また、ｖｏｐ＿ｃｏｄｅｄが０であればそのフレームがスキップされてヘッダのみを送出したことを示す。ＭＰＥＧ４のフレームスキップは、上記何れかの方法で実現される。ただし、後者の方法では、フレームスキップ時においてもＶＯＰヘッダが送出される分、オーバーヘッドが発生することになる。本発明の実施形態では、このオーバーヘッドによる不効率を解消する。
【００１５】
図１を参照するに、符号化が開始されると、最初に入力される動画像フレームのタイムスタンプＴＳ０を取得する（ステップＳ１）。次に、符号化すべき動画像フレームのタイムスタンプＴＳ１を取得する（ステップＳ２）。最初のフレームでは、ＴＳ０とＴＳ１は同一である。
【００１６】
次に、ＴＳ１とＴＳ０を比較し、その差が０．７秒以上であるか否かを判定する（ステップＳ３）。ここで、ＴＳ１とＴＳ０との差が０．７秒以上であった場合、ヘッダデータの生成及び出力を行う（ステップＳ４）。ここで、ＭＰＥＧ４の符号化方式に従う本実施形態の場合、フレームデータに対しＶＯＰヘッダを生成、挿入し、かつＶＯＰヘッダ内のｖｏｐ＿ｃｏｄｅｄフラグを０とする。さらに、ＶＯＰヘッダ内に含まれ、そのフレームの時刻情報を表すデータエレメントであるｍｏｄｕｌｏ＿ｔｉｍｅ＿ｂａｓｅおよびｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔについては、ＴＳ０からの差分が０．７秒を超えないようにＴＳ１より前の時刻に相当する値を設定する。
【００１７】
ＭＰＥＧ４の規格においては、ｖｏｐ＿ｃｏｄｅｄフラグが１である場合、ＶＯＰヘッダ以下に１フレーム分の符号化データが続くことを示す。一方、ｖｏｐ＿ｃｏｄｅｄフラグが０の場合はＶＯＰヘッダのみが存在することを示し、そのフレームの符号化データは送信されず、受信側では直前に復号したフレームを表示すると規定されている。これにより、ｖｏｐ＿ｃｏｄｅｄフラグを０とすることで、１フレーム分のダミーの符号化データとして、ヘッダデータのみを送ることが可能である。
【００１８】
次に、現在の入力フレーム（タイムスタンプがＴＳ１のフレーム）について、これを符号化するべきか、それとも符号化をスキップするべきかの判断を行う（ステップＳ５）。フレームスキップ決定の具体的な実施形態については後述する。ステップＳ５において、入力フレームを符号化せずにスキップすると判断した場合、当該入力フレームを破棄し、次の入力フレームに対してステップＳ２からの処理を継続する。一方、ステップＳ５において入力フレームを符号化すると判断した場合は、現在の入力フレーム（タイムスタンプがＴＳ１のフレーム）に対するＶＯＰヘッダを、ｖｏｐ＿ｃｏｄｅｄを１として生成及び出力する（ステップＳ６）。続いて、現在の入力フレームの符号化を行い、符号化データを生成及び出力する（ステップＳ７）。そして、現在の入力フレームのタイムスタンプＴＳ１をＴＳ０として保存し（ステップＳ８）、次の入力フレームに対してステップＳ２からの処理を継続する。
【００１９】
ＭＰＥＧ２−ＴＳの多重化規格では、アクセスユニットのデコード時刻ＤＴＳ（Ｄｅｃｏｄｉｎｇ  Ｔｉｍｅ  Ｓｔａｍｐ）、および表示時刻を示すタイムスタンプＰＴＳ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）が定義されている。動画像の場合、１フレームが１アクセスユニットに相当する。タイムスタンプ間の最大インターバルは０．７秒と規定されている。そして本実施形態は、例えば、フレームレート可変の符号化が可能なＭＰＥＧ４動画像符号化データを、ＭＰＥＧ２−ＴＳのようなアクセスユニットの最大インターバル制限の下で多重化する場合に有効である。
【００２０】
本実施形態は、アクセスユニットのインターバルが所定時間を下回っている場合、ヘッダデータすら生成せずに、全く符号化データが発生しないフレームスキップを行う。一方、インターバルが０．７秒を超えた場合は、ダミーのヘッダのみを出力する。このような構成とすることで、オーバーヘッドの符号量（つまり、ここではヘッダデータが相当する）を最小限に抑え、アクセスユニットの最大インターバルの制限の下、実質的に任意の符号化フレームレートでの動画像符号化を実現する。
【００２１】
動的且つ任意にフレームレートを制御することが可能になれば、入力画像の性質にあわせてフレームレートを適切に制御することが可能となる。これは、固定フレームレートでの符号化と比べて、安定且つ高画質な符号化画像を得ることが可能になることを意味する。特に、低ビットレートで符号化を行うにあたり、入力画像の解像度が高い、あるいは動きが激しい場合等に、所定の符号化ビットレートおよび画質を維持するためフレームレートを下げる必要が生じても、ＭＰＥＧ２−ＴＳでの多重化での制約を容易に満たすことが可能となる。なお、本発明は、ＭＰＥＧ４動画像符号化や、ＭＰＥＧ２−ＴＳ多重化に限定されるものではなく、フレームレート可変の符号化が可能な任意の符号化方式において、システム上の制約でタイムスタンプの最大インターバルが制限された動画像符号化において有効である。
【００２２】
ここで、本発明の実施形態に適用されるフレームスキップの制御について、図２乃至図７を参照し、三例ほど説明する。
【００２３】
図２および図３は、第一のフレームスキップ制御を説明する図およびその処理の流れを示すフローチャートである。図２は、ＭＰＥＧ動画像符号化規格で規定されるＶＢＶバッファの動作を、固定ビットレート符号化を行っている場合について示している。縦軸はＶＢＶバッファの占有量、横軸は時刻である。図中の１０，１１，１２，１３は、各動画像フレームの発生符号量を示しており、各フレームのデコード時刻において、各フレームの符号化データ量に相当するバイト数がＶＢＶバッファから瞬時に抜き取られるというモデルである。また、各フレームのデコード時刻から、次のフレームのデコード時刻までの間は、固定のビットレートでＶＢＶバッファの占有量が増加する。このＶＢＶモデルの挙動は、ＭＰＥＧ１、ＭＰＥＧ２、ＭＰＥＧ４の動画像符号化規格でそれぞれ規定されている。
【００２４】
本発明の実施形態に係わる動画像符号化では、符号化と同時にＶＢＶバッファ占有量を逐次計算し、フレームスキップの制御を行う。図２および図３を参照して具体的な処理の流れを説明する。まず、図２におけるフレーム１１の符号化開始時点におけるＶＢＶの占有量は、図中のＴ１１である。フレーム１１の符号化が完了すると、フレーム１１の発生符号量をＴ１１から減じ、ＶＢＶバッファ占有量は図中のＢ１１の点になる。次に、フレーム１１から次の入力フレーム１２までの間、固定のビットレートで、図中Ｔ１２の点までＶＢＶバッファ占有量を増加させる。
【００２５】
ここで、次の入力フレーム１２に対する入力フレームのアクティビティを計算する（図３のフローチャートにおけるＳ１１）。アクティビティは、フレーム内符号化画像の場合は画像信号のフレーム内の分散等を用い、また、フレーム間符号化の場合は、フレーム間差分信号に対する分散等を用いる。次に、ステップＳ１１で求めたアクティビティと、直前に符号化したフレーム（ここではフレーム１１）のアクティビティと発生符号量と用いて、フレーム１２の発生符号量を予測する（ステップＳ１２）。次に示す式１は、発生符号量予測の例を示している。
Ｅ（ｎ＋１）  ＝  Ｇ（ｎ）×Ａ（ｎ＋１）／Ａ（ｎ）．．．（式１）
ここで、Ｇ（ｎ）はｎ番目の符号化フレームの発生符号量、Ａ（ｎ），Ａ（ｎ＋１）はｎ番目およびｎ＋１番目のフレームのアクティビティ、Ｅ（ｎ＋１）はｎ＋１番目のフレームの発生符号量予測値である。
【００２６】
次に、ステップＳ１２で得られたフレーム１２の発生符号量予測値を図２のＴ１２のＶＢＶ占有量から減じたＢ１２を計算し（ステップＳ１３）、ＶＢＶバッファでアンダーフローが発生するかどうかの予測を行う（ステップＳ１４）。図２の例では、１２で示した点線がフレーム１２の予測符号量を示しており、Ｂ１２においてＶＢＶ占有量が負となり、ＶＢＶバッファのアンダーフローが予測されたこととなる。ステップＳ１４においてＶＢＶバッファのアンダーフローが予測された場合、そのフレーム（ここではフレーム１２）をスキップとして符号化せずに破棄する。そして、次の入力フレーム（ここではフレーム１３）までの期間分だけ固定ビットレートでＶＢＶバッファの占有量を増加させ（図３のステップ１７）、フレーム１３について、ステップＳ１１からの処理を継続する。
【００２７】
一方、ステップ１４においてＶＢＶバッファのアンダーフローが予測されなかった場合には、入力フレームを通常どおり符号化及び出力し（ステップＳ１５）、その発生符号量をＶＢＶバッファから減じる（ステップＳ１６）。さらに、次の入力フレームまでの期間分だけ固定ビットレートでＶＢＶバッファの占有量を増加させ（ステップ１７）、次の入力フレームについて、ステップＳ１１からの処理を継続する。
【００２８】
以上のような第一のフレームスキップ制御によれば、入力フレームを符号化する前に、入力フレームのアクティビティから発生符号量予測を行うので、これに基づいてＶＢＶのアンダーフローを予測できる。したがって、未然にＶＢＶアンダーフローを抑制し、スムーズなフレームスキップ制御を実現することが可能となる。
【００２９】
図４および図５は、本発明の実施形態に係わる第二のフレームスキップ制御を説明する図およびその処理の流れを示すフローチャートである。図４は、図２と同様にＶＢＶバッファの変化例を示している。第二のフレームスキップ制御では、入力フレームのアクティビティに基づいたＶＢＶアンダーフローの予測は行わず、１フレーム符号化後にＶＢＶアンダーフローチェックを行い、このときにＶＢＶアンダーフローが発生した場合には、その１フレーム分の符号化データを破棄するというものである。図４において、入力フレーム２２の符号化直前のＶＢＶ占有量がＴ２２であり、まずフレーム２２の符号化を行う。これは、図５におけるステップＳ２１に対応する。次に、フレーム２２を符号化した発生符号量をＴ２２から減じてＶＢＶ占有量Ｂ２２を求める（ステップＳ２２）。次に、１フレーム符号化後のＶＢＶアンダーフローのチェックを行い（ステップＳ２３）、ＶＢＶ占有量が負の値になった場合、その１フレーム分（ここではフレーム２２）の符号化データをすべて破棄し（ステップＳ２４）、破棄したフレーム発生符号量分だけＶＢＶ占有量を加算して（ステップＳ２４）、破棄されたフレームの符号化直前のＶＢＶ占有量まで戻し（ここではＴ２２）、そこから次の入力フレーム（ここではフレーム２３）までの期間分だけＶＢＶバッファ占有量を固定ビットレートで増加させる（図５のステップＳ２６）。そのＶＢＶ占有量（ここではＴ２３）から、次のフレームの符号化を継続する。一方、ステップＳ２３においてＶＢＶアンダーフローが発生しない旨が判定された場合は、ステップＳ２１の符号化データを有効データとして出力し、次の入力フレームまでの期間分だけＶＢＶバッファ占有量を固定ビットレートで増加させ（ステップＳ２６）、次の入力フレームの符号化を継続する。
【００３０】
以上のような第二のフレームスキップ制御によれば、入力フレームを符号化した結果、ＶＢＶアンダーフローが発生してしまった場合でも、１フレーム分の符号化データを破棄することにより、ＶＢＶアンダーフローの発生をキャンセルすることが可能となり、ＶＢＶ規格に則った確実な処理を実現できる。
【００３１】
図６および図７は、第三のフレームスキップ制御を説明する図およびその処理の流れを示すフローチャートである。図６は、図２および図４と同様にＶＢＶバッファの変化例を示している。第三のフレームスキップ制御は、上述した第一のフレームスキップ制御を行い、しかる後に続けて第二のフレームスキップ制御を行う構成とするものである。すなわち、入力フレームの符号化前に、入力フレームのアクティビティを計算し（図７のステップＳ３１）、入力フレームの発生符号量を予測する（ステップＳ３２）。図６において、３２ａが入力フレーム３２に対する予測符号量を示している。予測符号量に基づいて予測したＶＢＶ占有量（ステップＳ３３）から、ＶＢＶアンダーフローが予測される場合（ステップＳ３４）、そのフレームをスキップする。ＶＢＶアンダーフローが予測されない場合は、そのフレームの符号化を行う（ステップＳ３５）。符号化を行った結果の発生符号量から、ＶＢＶ占有量を更新し（ステップＳ３６）、ＶＢＶのアンダーフローチェックを行い（ステップＳ３７）、ＶＢＶアンダーフローが発生した場合は、その１フレーム分の符号化データを破棄し（ステップＳ３８）、ＶＢＶ占有量を符号化直前のレベルに戻し（ステップＳ３９）、次の入力フレームまでの期間分、固定ビットレートでＶＢＶバッファ占有量を増加させる（ステップＳ４０）。また、１フレーム符号化後にＶＢＶバッファアンダーフローが発生しなかった場合は、１フレーム分の符号化データを有効データとして出力し、次の入力フレームまでの期間分、固定ビットレートでＶＢＶバッファ占有量を増加させる（ステップＳ４０）。
【００３２】
以上のような第三のフレームスキップ制御によれば、第一のフレームスキップ制御により未然にＶＢＶアンダーフローを抑制してスムーズなフレームスキップ制御を実現することが可能となり、さらに第二のフレームスキップ制御により、第一のフレームスキップ制御の予測符号量と実際の発生符号量とに誤差が生じて１フレーム符号化後にＶＢＶバッファがアンダーフローしてしまった場合でも、１フレーム分の符号化データを破棄することでＶＢＶアンダーフローの発生をキャンセルすることが可能となり、ＶＢＶ規格により確実に則った処理を実現できる。
【００３３】
（第二の実施形態）
図８は本発明の第二の実施形態に係わる動画像符号化モジュールの概略構成を示すブロック図である。この動画像符号化モジュールはハードウェア、ソフトウェア、又は両者の組み合わせのいずれかにより実現される。図８において、４０は動画像を符号化する主たる処理を担うコアモジュール、４１はフレームスキップ及び符号化ビットレートの制御を行うレート制御モジュール、４２は全体の符号化制御を行うコントロールモジュールを示している。図９は本発明の第二の実施形態に係わる動画像符号化モジュールにおいて実現される動画像符号化の制御の流れを示すフローチャートである。
【００３４】
コントロールモジュール４２からの指令により符号化が開始されると、まず各制御変数を初期化し（ステップＳ５０）、時刻変数ｔｓに最も近い入力フレームのタイムスタンプＴＳを得る（ステップＳ５１）。時刻変数ｔｓは、任意の時刻を表現するが、タイムスタンプＴＳは、入力フレームのフレーム周期で丸められた値となる。次に、符号化境界点の条件を満たすかどうかの判断を行う（ステップＳ５２）。符号化境界点の条件は、最初の符号化フレーム、所定のインターバル経過、あるいはシーンチェンジ検出などである。シーンチェンジを境界点条件とする場合は、入力動画像信号のシーンチェンジ検出も併せて行う。
【００３５】
符号化境界点条件を満たす場合は境界フラグＣｌｆｌａｇを有効（ｔｒｕｅ）にし（ステップＳ５３）、満たさない場合はフラグは変更しない。次に、ステップＳ５１で求めたタイムスタンプＴＳと直前に符号化されたフレームのタイムスタンプＰｒｅｖＣｏｄｅｄＴＳとの差が０．７秒を超えるかどうかの判断を行う（ステップＳ５４）。
【００３６】
この差が０．７秒を超える場合は、ｖｏｐ＿ｃｏｄｅを０とし、かつタイムスタンプを、直前にスキップされたフレームのタイムスタンプＰｒｅｖＳｋｉｐｐｅｄＴＳ（これは後述するステップＳ６９で設定される）としてＶＯＰヘッダを生成し（ステップＳ７１）、このＶＯＰヘッダデータを出力する（ステップＳ７２）。動画像符号化コアモジュール４０がローカルデコード画像の表示を行う場合は、直前に符号化されたフレームのローカルデコード画像の出力を行う（ステップＳ７３）。そして、タイムスタンプＰｒｅｖＣｏｄｅｄＴＳを、直前にスキップされたフレームのタイムスタンプＰｒｅｖＳｋｉｐｐｅｄＴＳに置き換え（ステップＳ７４）、また、次に符号化するフレームの時刻変数ｔｓとして、ＰｒｅｖＳｋｉｐｐｅｄＴＳに１フレーム加算したものを設定し（ステップＳ７５）、ステップＳ５１へ戻る。
【００３７】
一方、ステップＳ５４の条件を満たさない場合は、レート制御モジュール４１に符号化フレームのタイムスタンプＴＳを通知し（ステップＳ５５）、境界フラグＣｌｆｌａｇが有効か否かの判断を行う（ステップＳ５６）。この境界フラグＣｌｆｌａｇが有効の場合はランダムアクセスを実現するためのヘッダデータの生成を行い（ステップＳ５７）、現在の入力フレームの符号化タイプをＩ−ＶＯＰ（フレーム内符号化）に設定する（ステップＳ５８）。一方、境界フラグＣｌｆｌａｇが無効の場合は、現在の入力フレームの符号化タイプをＰ−ＶＯＰ（フレーム間符号化）に設定する（ステップＳ５９）。
【００３８】
次に、決定された符号化タイプをレート制御モジュール４１に通知し（ステップＳ６０）、動画像符号化コアモジュール４０に対し、現在の入力フレームに関する上記の符号化タイプとタイムスタンプＴＳとを通知するとともに符号化の実行を指示する（ステップＳ６１）。
【００３９】
符号化の終了後は、ＶＢＶのアンダーフローが発生したかどうかの判断を行う（ステップＳ６２）。アンダーフローが発生していない場合は、符号化した１フレーム分のデータを出力し（ステップＳ６３）する。動画像符号化コアモジュール４０がローカルデコード画像の表示を行う場合は、現在のフレームに対するローカルデコード画像を生成して出力する（ステップＳ６４）。次に、境界フラグＣｌｆｌａｇを無効に変更し（ステップＳ６５）、タイムスタンプＰｒｅｖＣｏｄｅｄＴＳの更新を行う（ステップＳ６６）。そして、次に符号化するフレームの時刻変数ｔｓをレート制御モジュール４１から取得し（ステップＳ７０）、ステップＳ５１へ戻る。ここで、時刻変数ｔｓは、次の入力フレームのアクティビティに応じて、ＶＢＶアンダーフロー予測を行い、次に符号化すべきフレームの時刻変数ｔｓを決定するものである。
【００４０】
一方、ステップＳ６２においてＶＢＶアンダーフローの発生が検出された場合は、境界フラグＣｌｆｌａｇが有効か否かの判断を行う（ステップＳ６７）。同フラグが有効の場合はステップＳ５７で生成したランダムアクセスを実現するためのヘッダデータをすべて破棄し（ステップＳ６８）、ＶＢＶアンダーフローによりスキップされたフレームのタイムスタンプＰｒｅｖＳｋｉｐｐｅｄＴＳの更新を行う（ステップＳ６９）。次に、ＶＢＶアンダーフローが発生しなかった場合と同様に、次に符号化するフレームの時刻変数ｔｓをレート制御モジュール４１から取得（ステップＳ７０）した後、ステップＳ５１へ戻る。
【００４１】
以上説明した第二の実施形態の構成は、上述した本発明の第一の実施形態を基礎としており、さらに具体的な実現に向けて、フレーム内符号化フレームとフレーム間符号化フレームとの切り替え制御処理、およびランダムアクセスのためのヘッダ挿入処理が追加された構成である。このような第二の実施形態においても、本発明の第一の実施形態と同様の作用効果を奏する。
【００４２】
（第三の実施形態）
次に、本発明の第三の実施形態に係わる動画像音声多重化装置を説明する。図１０は、同第三の実施形態に係わる動画像音声多重化装置の概略構成および同装置における信号処理の流れを示すブロック図である。この装置は、動画像信号および音声信号を入力し、それぞれの符号化を行い、符号化された動画像データおよび音声データを多重化して出力するものである。
【００４３】
動画像信号１００は、動画像符号化部１０１により１フレームづつ符号化され、符号化データ１０２として出力される。動画像符号化部１０１は、上述した第一の実施形態あるいは第二の実施形態に従って構成される。ヘッダ解析部１０３は、符号化された動画像データ１０２のヘッダに含まれるタイムスタンプ情報を解釈する。タイムスタンプ生成部１０４は、ヘッダ解析部１０３による解釈結果をもとに多重化レイヤで用いられるタイムスタンプＰＴＳまたはＤＴＳの生成を行う。
【００４４】
また、符号化された動画像データ１０２は、タイムスタンプ生成部１０４において生成された多重化レイヤのタイムスタンプとともにパケット化部１０５によりパケット化される。パケット化された動画像データは、同様に符号化およびパケット化された音声データとともに多重化部１０６により多重化され、動画像音声データ１０７として出力される。
【００４５】
ここで、動画像符号化部１０１は、たとえばＭＰＥＧ４動画像符号化規格に基づくものとし、また、音声符号化部１１１は、たとえばＭＰＥＧ音声符号化規格に基づくものとする。また、多重化部１０６は、ＭＰＥＧ２−ＴＳ規格の基づくものであるとする。既に説明した通り、ＭＰＥＧ２−ＴＳは、０．７秒以内のタイムスタンプのインターバルを保証する必要がある。
【００４６】
このような本発明の第三の実施形態によると、動画像符号化部１０１は、上述した本発明の第一の実施形態あるいは第二の実施形態に基づいて構成されている。したがって、ＭＰＥＧ２−ＴＳの条件を満たしつつ効率的に、かつ、フレームレートを可変としながら高画質の符号化を実現することができる。
【００４７】
なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。例えば、直前に符号化された入力動画像フレームと現在のフレームとの時間間隔（インターバル）について、実施形態ではＭＰＥＧ２−ＴＳ規格を例にあげて０．７秒を守ることとして説明したが、本発明はこの０．７秒（７００ｍｓｅｃ）に限定されないことは言うまでもない。
【００４８】
以上説明した本発明の実施形態によれば、任意のフレームレートでの符号化が可能な動画像符号化において、アクティビティを用いた事前のフレームスキップの決定及び１フレーム符号化後の１フレーム符号化データの破棄によるＶＢＶアンダーフロー回避により、安定したフレームレートの制御とＶＢＶの制限との両立が可能となる。また、フレームスキップの間隔が一定時間を超える場合にのみフレームのヘッダを送出するようにしているので、任意のフレームレート制御と、多重化等の制約から要求されるタイムスタンプ最大間隔の制限に対処する処理とを両立させることができ、オーバーヘッドを最小化できる。従って、フレームレートの動的且つ適切な制御が可能となり、また符号化オーバーヘッドの削減により、符号化ビットレートを増加させることなく、安定して高画質かつ高能率な動画像符号化を実現できる。
【００４９】
【発明の効果】
以上説明したように、本発明によれば、最大フレーム間隔に制限がある場合においても、画質劣化を伴わず、且つＶＢＶの制限を確実に満たすことが可能な、高画質で高能率な動画像符号化の方法、装置及びプログラム、並びに動画像音声多重化の方法、装置及びプログラムを提供できる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態に係わる動画像符号化の処理の流れを示すフローチャート
【図２】第一の実施形態に係わる第一のフレームスキップ制御を説明する図
【図３】第一の実施形態に係わる第一のフレームスキップ制御の流れを示すフローチャート
【図４】第一の実施形態に係わる第二のフレームスキップ制御を説明する図
【図５】第一の実施形態に係わる第二のフレームスキップ制御の流れを示すフローチャート
【図６】第一の実施形態に係わる第三のフレームスキップ制御を説明する図
【図７】第一の実施形態に係わる第三のフレームスキップ制御の流れを示すフローチャート
【図８】本発明の第二の実施形態に係わる動画像符号化モジュールの概略構成を示すブロック図
【図９】本発明の第二の実施形態に係わる動画像符号化モジュールにおいて実現される動画像符号化の制御の流れを示すフローチャート
【図１０】本発明の第三の実施形態に係わる動画像音声多重化装置の概略構成および同装置における信号の流れを示すブロック図
【符号の説明】
Ｓ１…初期タイムスタンプ取得ステップ
Ｓ２…タイムスタンプ取得ステップ
Ｓ３…タイムスタンプ比較ステップ
Ｓ４…ＶＯＰヘッダ生成ステップ
Ｓ５…フレームスキップ判定ステップ
Ｓ６…ＶＯＰヘッダ生成ステップ
Ｓ７…１フレーム符号化ステップ
Ｓ８…タイムスタンプ更新ステップ
１００…動画像信号
１０１…動画像符号化部
１００…音声信号
１０１…音声符号化部
１０３，１１３…ヘッダ解析部
１０４…タイムスタンプ生成部
１０５，１１５…パケット化部
１０６…多重化部
【図１】
0003836701.tif 000002
【図２】
0003836701.tif 000003
【図３】
0003836701.tif 000004
【図４】
0003836701.tif 000005
【図５】
0003836701.tif 000006
【図６】
0003836701.tif 000007
【図７】
0003836701.tif 000008
【図８】
0003836701.tif 000009
【図９】
0003836701.tif 000010
【図１０】
0003836701.tif 000011