(57)【特許請求の範囲】
【請求項１】
ビデオ・ストリームのフレーム・タイプ検出装置であって、
現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得モジュールであって、前記現在のビデオ・フレームは前記ビデオ・ストリームの第１のビデオ・フレームの後に位置するフレーム・サイズ取得モジュールと、
前記現在のビデオ・フレームのサイズと前記現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズの差分値の絶対値を前記現在のビデオ・フレームの変更フィーチャ値として使用し、
前記過去の第１のビデオ・フレームのサイズと前記過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズの差分値の絶対値を前記過去の第１のビデオ・フレームの変更フィーチャ値として使用する、
ように構成されたフィーチャ抽出モジュールと、
前記現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って前記現在のビデオ・フレームのＩフレーム閾値を取得するように構成された閾値取得モジュールと、
前記現在のビデオ・フレームの前記変更フィーチャ値、前記過去の第１のビデオ・フレームの前記変更フィーチャ値、前記現在のビデオ・フレームの前記Ｉフレーム閾値、前記現在のビデオ・フレームのサイズ、前記過去の第１のビデオ・フレームのサイズ、および前記過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、前記過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成されたタイプ決定モジュールと、
を備える、ビデオ・ストリームのフレーム・タイプ検出装置。
【請求項２】
前記フレーム・サイズ取得モジュールは、
前記現在のビデオ・フレームでパケット紛失が生じないと判定された場合に、前記現在のビデオ・フレーム内の各リアルタイム伝送プロトコルＲＴＰパケットのペイロードを取得し、
前記現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して前記現在のビデオ・フレームのサイズを取得する
ように構成された、請求項１に記載の装置。
【請求項３】
前記フレーム・サイズ取得モジュールは、
パケット紛失が前記現在のビデオ・フレームで発生しフレーム全体が紛失していないと判定された場合に、前記現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、前記現在のビデオ・フレーム内の各受信ＲＴＰパケットの前記ペイロードを累積して前記現在のビデオ・フレーム内の前記受信ＲＴＰパケットの合計サイズを取得するように構成された受信サイズ取得ユニットと、
各紛失ＲＴＰパケットのペイロードと前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を、全ての受信ＲＴＰパケットのうち前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと前記紛失ＲＴＰパケットの次の隣接ＲＴＰパケットに従って推定し、前記現在のビデオ・フレーム内の前記紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得するように構成された紛失サイズ取得ユニットと、
前記受信ＲＴＰパケットの前記合計サイズと前記現在のビデオ・フレーム内の前記紛失ＲＴＰパケットの前記合計サイズを加算して前記現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得ユニットと、
を備える、請求項１に記載の装置。
【請求項４】
前記紛失サイズ取得ユニットは、
前記過去の隣接ＲＴＰパケットのペイロードと前記次の隣接ＲＴＰパケットのペイロードを取得し、
前記過去の隣接ＲＴＰパケットのペイロードと前記次の隣接ＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定する、
ように構成された、請求項３に記載の装置。
【請求項５】
前記紛失サイズ取得ユニットは、
前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットのタイムスタンプに従って、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットの両方が前記現在のビデオ・フレームに属すると判定された場合、または、
前記過去の隣接ＲＴＰパケットのマーカ・ビット、前記過去の隣接ＲＴＰパケットのタイムスタンプ、および前記次の隣接ＲＴＰパケットのタイムスタンプに従って、前記過去の隣接ＲＴＰパケットが前記過去の第１のビデオ・フレームに属し、前記次の隣接ＲＴＰパケットが前記現在のビデオ・フレームに属し、前記過去の隣接ＲＴＰパケットが前記過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、
前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットのシーケンス番号に従って取得し、
前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsであると判定する、
ようにさらに構成される、請求項３に記載の装置。
【請求項６】
前記紛失サイズ取得ユニットは、
前記過去の隣接ＲＴＰパケットのマーカ・ビット、前記過去の隣接ＲＴＰパケットのタイムスタンプ、および前記次の隣接ＲＴＰパケットのタイムスタンプに従って、前記過去の隣接ＲＴＰパケットが前記現在のビデオ・フレームに属し、前記次の隣接ＲＴＰパケットが前記現在のビデオ・フレームに隣接する次のビデオ・フレームに属し、前記過去の隣接ＲＴＰパケットが前記現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットのシーケンス番号に従って取得し、
前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であると判定する、
ようにさらに構成され、
ｉｎｔ（  ）は丸めを表し、％はモジュラ演算を表す、請求項３に記載の装置。
【請求項７】
前記紛失サイズ取得ユニットは、
前記過去の隣接ＲＴＰパケットのマーカ・ビット、前記過去の隣接ＲＴＰパケットのタイムスタンプ、および前記次の隣接ＲＴＰパケットのタイムスタンプに従って、前記過去の隣接ＲＴＰパケットが属するビデオ・フレームと前記現在のビデオ・フレームが不連続であり、前記次の隣接ＲＴＰパケットが前記現在のビデオ・フレームに属し、前記過去の隣接ＲＴＰパケットが前記過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットの間で紛失したパケットの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにシーケンス番号およびタイムスタンプに従って取得し、
前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPackets％V_lostFramesであると判定する
ようにさらに構成され、
％はモジュラ演算を表す、請求項３に記載の装置。
【請求項８】
前記紛失サイズ取得ユニットは、
前記過去の隣接ＲＴＰパケットのマーカ・ビット、前記過去の隣接ＲＴＰパケットのタイムスタンプ、および前記次の隣接ＲＴＰパケットのタイムスタンプに従って、前記過去の隣接ＲＴＰパケットが前記現在のビデオ・フレームに属し、前記次の隣接ＲＴＰパケットが属するビデオ・フレームおよび前記現在のビデオ・フレームが不連続であり、前記過去の隣接ＲＴＰパケットが前記現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、前記現在のビデオ・フレーム内の紛失ＲＴＰパケットの数は１であると判定する
ようにさらに構成される、請求項３に記載の装置。
【請求項９】
前記フレーム・サイズ取得モジュールは、
前記現在のビデオ・フレーム全体が紛失したと判定された場合に、全ての受信ＲＴＰパケットのうち前記現在のビデオ・フレームの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードを推定し、前記過去の隣接ＲＴＰパケットが属するビデオ・フレームと前記次の隣接ＲＴＰパケットが属するビデオ・フレームの間で紛失したビデオ・フレームの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、前記過去の隣接ＲＴＰパケットと前記次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにタイムスタンプおよびシーケンス番号に従って取得し、
前記過去の隣接ＲＴＰパケットのマーカ・ビットに従って、前記過去の隣接ＲＴＰパケットが前記過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、前記現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、前記現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であると判定し、
前記現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードとに従って、前記現在のビデオ・フレームのサイズを取得する
ように構成され、
ｉｎｔ（  ）は丸めを表す、請求項１に記載の装置。
【請求項１０】
前記閾値取得モジュールは、前記ビデオ・フレーム・レートと前記現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って、前記現在のビデオ・フレームの前記Ｉフレーム閾値を取得するように構成された、請求項１乃至９の何れか１項に記載の装置。
【請求項１１】
前記閾値取得モジュールは、前記過去の第２のビデオ・フレームが前記過去の直近Ｉフレームである場合には、前記現在のビデオ・フレームの前記Ｉフレーム閾値は前記過去の直近Ｉフレームのサイズと第１の定数の積であると判定するように構成され、前記第１の定数の値範囲は（０、１］であり、（０、１］はゼロより大きく１以下であることを表す、請求項１０に記載の装置。
【請求項１２】
前記閾値取得モジュールは、
前記過去の第２のビデオ・フレームが前記過去の直近Ｉフレームでない場合に、前記現在のビデオ・フレームと前記過去の直近Ｉフレームの距離が前記ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、前記過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を前記現在のビデオ・フレームの前記Ｉフレーム閾値として決定し、大きくない場合には、前記過去の第１のビデオ・フレームの前記Ｉフレーム閾値と第２の換算係数の積を前記現在のビデオ・フレームの前記Ｉフレーム閾値として決定するように構成され、前記第１の換算係数と前記第２の換算係数の値範囲は両方とも（０、１］であり、前記第１の換算係数は前記第２の換算係数より大きく、（０、１］はゼロより大きく１以下であることを表す、
請求項１０に記載の装置。
【請求項１３】
前記タイプ決定モジュールは、
前記過去の第１のビデオ・フレームのサイズの前記過去の第２のビデオ・フレームのサイズに対する比または前記過去の第１のビデオ・フレームのサイズの前記現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、前記現在のビデオ・フレームの前記変更フィーチャ値が前記現在のビデオ・フレームの前記Ｉフレーム閾値より大きく、かつ、前記過去の第１のビデオ・フレームの前記変更フィーチャ値が前記現在のビデオ・フレームの前記Ｉフレーム閾値より大きい場合には、前記過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、前記過去の第１のビデオ・フレームがＩフレームでないと判定する
ように構成された、請求項１乃至１２の何れか１項に記載の装置。
【請求項１４】
前記タイプ決定モジュールは、前記現在のビデオ・フレームが前記ビデオ・ストリームの前記第２のビデオ・フレームである場合には、前記過去の第１のビデオ・フレームがＩフレームであると判定するように構成された、請求項１３に記載の装置。
【請求項１５】
前記過去の第１のビデオ・フレームがＩフレームであると前記タイプ決定モジュールが判定した後に、各Ｉフレームの平均サイズを計算するように構成された平均値計算モジュールをさらに備える、請求項１３または１４に記載の装置。
【請求項１６】
前記現在のビデオ・フレームが前記ビデオ・ストリームにおける最後のビデオ・フレームである場合に、前記タイプ決定モジュールはさらに、
前記現在のビデオ・フレームのサイズの各Ｉフレームの前記平均サイズに対する比が第３の定数より大きい場合に、前記現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、前記現在のビデオ・フレームがＩフレームでないと判定するように構成され、前記第３の定数は０より大きい、請求項１５に記載の装置。
【請求項１７】
前記フレーム・サイズ取得モジュールはさらに、前記第１のビデオ・フレームのサイズを取得するように構成され、前記フィーチャ抽出モジュールはさらに、前記第１のビデオ・フレームの変更フィーチャ値は前記第１のビデオ・フレームのサイズと第４の定数の積であると判定するように構成され、前記第４の定数の値範囲は（０、１］であり、前記閾値取得モジュールはさらに、前記第１のビデオ・フレームのＩフレーム閾値が前記第１のビデオ・フレームの前記変更フィーチャ値に等しいと判定するように構成され、（０、１］はゼロより大きく１以下であることを表す、請求項１乃至１６の何れか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の諸態様は、マルチメディア技術に関し、特に、ビデオ・ストリームのフレーム・タイプ検出方法および装置ならびにフレーム・サイズ検出方法および装置に関する。
【背景技術】
【０００２】
ネットワーク媒体の急速な発展により、ビデオ・オン・デマンド、ウェブＴＶ、およびビデオ電話のようなサービスは既にブロードバンド・ネットワークや無線ネットワークの主要なサービスとなっており、運営者は送信されたビデオのサービス品質を監視し、対応する対策をタイムリーに講じてユーザのメディア・サービスに対するエクスペリエンスの要求を保証する必要がある。ネットワーク・ビデオの品質評価は、ネットワーク・ビデオのアプリケーションにおける基本的な技術である。
【０００３】
どれだけ多くのオリジナルのリファレンス・ビデオが必要であるかに従って、目的のビデオ品質評価方法を通常３つのタイプ、即ち、フル・リファレンス、部分リファレンス、およびゼロ・リファレンスの目的のビデオ品質評価に分類することができる。チャネル帯域幅の制限により、ビデオ受信側は通常、所望のオリジナルのリファレンス・ビデオのシーケンスを取得することができず、したがって、ゼロ・リファレンスのビデオ品質評価方法を使用して、ネットワークで送信されるビデオ・ストリームを評価する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
フレーム・タイプのパラメータに基づく既存のゼロ・リファレンスのビデオ品質評価方法では、先ずビデオ・フレームのタイプを検出する必要がある。しかし、十分かつ有効なフレーム・タイプの検出方法は先行技術では利用できない。
【０００５】
さらに、既存のフレーム・サイズ検出方法は、パケット紛失のないフレームにのみ適用可能であり、パケット紛失のあるフレームのサイズを検出する有効な解決策は利用できない。
【課題を解決するための手段】
【０００６】
本発明の諸実施形態では、十分かつ有効なフレーム・タイプ検出方法を提供するための、ビデオ・ストリームのフレーム・タイプ検出方法および装置を提供する。
【０００７】
本発明の第１の態様では、現在のビデオ・フレームのサイズを取得するステップであって、当該現在のフレームはビデオ・ストリームの第１のビデオ・フレームの後に位置するステップと、現在のビデオ・フレームのサイズと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するステップと、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するステップと、現在のビデオ・フレームの変更フィーチャ値、過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するステップとを含む、ビデオ・ストリームのフレーム・タイプ検出方法を提供する。
【０００８】
本発明の第２の態様では、現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得モジュールであって、当該現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置するフレーム・サイズ取得モジュールと、現在のビデオ・フレームのサイズと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するように構成されたフィーチャ抽出モジュールと、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成された閾値取得モジュールと、現在のビデオ・フレームの変更フィーチャ値、過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成されたタイプ決定モジュールとを備えた、ビデオ・ストリームのフレーム・タイプ検出装置を提供する。
【０００９】
本発明の第３の態様では、現在のビデオ・フレームのサイズを取得するステップであって、当該現在のビデオ・フレームは当該ビデオ・ストリームの第１のビデオ・フレームの後に位置するステップと、現在のビデオ・フレームのサイズと少なくとも２つの過去のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するステップと、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するステップと、現在のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、および当該少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するステップとを含む、ビデオ・ストリームのフレーム・タイプ検出方法を提供する。
【００１０】
本発明の第４の態様では、現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得モジュールであって、当該現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置するフレーム・サイズ取得モジュールと、現在のビデオ・フレームのサイズと少なくとも２つの過去のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するように構成されたフィーチャ抽出モジュールと、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成された閾値取得モジュールと、現在のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、および当該少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成されたタイプ決定モジュールとを備えた、ビデオ・ストリームのフレーム・タイプ検出装置を提供する。
【００１１】
以上の幾つかの技術的解決策の１つには、少なくとも以下の有利な効果または利点がある。即ち、本発明の諸実施形態では、現在のビデオ・フレームの変更フィーチャ値が、現在のビデオ・フレームと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って取得され、現在のビデオ・フレームのＩフレーム閾値が現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って取得され、過去の第１のビデオ・フレームがＩフレームかどうかが、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、および現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第２のビデオ・フレームのサイズに従って判定される。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、過去の第１のビデオ・フレームのフレーム・タイプの検出中に、過去の第１のビデオ・フレームより前の１つのビデオ・フレームのみ、即ち、過去の第２のビデオ・フレームのみが考慮される。これにより、既存のビデオ・フレーム・タイプ検出における複数の過去のビデオ・フレームに基づく計算に起因する高い複雑度と長い遅延の問題が解決され、ビデオ・フレーム・レートの影響が十分に考慮され、検出の結果がより正確になる。
【００１２】
本発明の諸実施形態ではさらに、パケットが紛失したフレームのサイズを検出する有効な解決策を提供するためのフレーム・サイズ検出方法を提供する。
【００１３】
本発明の第５の態様では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各受信ＲＴＰパケットのペイロードを取得し、各受信ＲＴＰパケットのペイロードに従って各紛失ＲＴＰパケットのペイロードを推定するステップと、当該２つのＲＴＰパケットのシーケンス番号に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得するステップと、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って推定するステップと、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズを取得するステップとを含む、フレーム・サイズ検出方法を提供する。
【００１４】
本発明の第６の態様では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各受信ＲＴＰパケットのペイロードを取得し、各紛失ＲＴＰパケットのペイロードを各受信ＲＴＰパケットのペイロードに従って推定するように構成されたペイロード推定モジュールと、２つのＲＴＰパケットのシーケンス番号に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得するように構成された総損失数取得モジュールと、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を推定するように構成された各紛失数推定モジュールと、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズを取得するように構成されたフレーム・サイズ検出モジュールとを備えた、フレーム・サイズ検出装置を提供する。
【００１５】
以上の幾つかの技術的解決策の１つには、少なくとも以下の有利な効果または利点がある。即ち、本発明の諸実施形態では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各紛失ＲＴＰパケットのペイロードが各受信ＲＴＰパケットのペイロードに従って推定され、２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数が当該２つのＲＴＰパケットのシーケンス番号に従って取得され、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数が推定される。その結果、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズが得られる。これにより、パケットが紛失したフレームのサイズを検出する有効な解決策がもたらされる。
【００１６】
本発明の諸実施形態または先行技術における技術的解決策をより明確に説明するため、以下では当該諸実施形態または先行技術を説明するのに必要な添付図面を簡単に説明する。明らかに、以下の説明における添付図面は本発明の諸実施形態の一部を示すにすぎず、当業者は創造的作業なしにこれらの添付図面から他の図面を導出することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の１実施形態に従う、ビデオ・ストリームのフレーム・タイプ検出方法の略流れ図である。
【図２Ａ】本発明の１実施形態に従うパケット紛失の例１の略図である。
【図２Ｂ】本発明の１実施形態に従うパケット紛失の例２の略図である。
【図２Ｃ】本発明の１実施形態に従うパケット紛失の例３の略図である。
【図２Ｄ】本発明の１実施形態に従うパケット紛失の例４の略図である。
【図２Ｅ】本発明の１実施形態に従うパケット紛失の例５の略図である。
【図２Ｆ】本発明の１実施形態に従うパケット紛失の例６の略図である。
【図２Ｇ】本発明の１実施形態に従うパケット紛失の例７の略図である。
【図２Ｈ】本発明の１実施形態に従うパケット紛失の例８の略図である。
【図２Ｉ】本発明の１実施形態に従うパケット紛失の例９の略図である。
【図３】本発明の１実施形態に従うビデオ・ストリームの別のフレーム・タイプ検出方法の略流れ図である。
【図４】本発明の１実施形態に従うフレーム・サイズ検出方法の略流れ図である。
【図５】本発明の１実施形態に従うビデオ・ストリームのフレーム・タイプ検出装置の略構造図である。
【図６】本発明の１実施形態に従うビデオ・ストリームの別のフレーム・タイプ検出装置の略構造図である。
【図７】本発明の１実施形態に従うフレーム・サイズ検出装置の略構造図である。
【図８】本発明の１実施形態に従う別のビデオ・ストリームのフレーム・タイプ検出装置の略構造図である。
【図９】本発明の１実施形態に従うさらに別のビデオ・ストリームのフレーム・タイプ検出装置の略構造図である。
【図１０】本発明の１実施形態に従う別のフレーム・サイズ検出装置の略構造図である。
【発明を実施するための形態】
【００１８】
本発明の目的、技術的解決策、および利点をより分かり易くするために、以下では本発明の諸実施形態の添付図面を参照して本発明の諸実施形態の技術的解決策を明確かつ十分に説明する。明らかに、説明する諸実施形態は本発明の諸実施形態の一部にすぎず全部ではない。
【００１９】
図１は、本発明の１実施形態で提供するビデオ・ストリームのフレーム・タイプ検出方法の略流れ図である。図１に示すように、当該方法は以下を含む。
【００２０】
１０１では、現在のビデオ・フレームのサイズを取得する。当該現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置する。
【００２１】
例えば、本発明の当該実施形態で提供するビデオ・ストリームのフレーム・タイプ検出装置は現在のビデオ・フレームのサイズを決定する。当該ビデオ・フレーム・タイプ検出装置をネットワーク装置または試験装置の中に配置してもよい。特に、当該ビデオ・フレーム・タイプ検出装置はビデオ・ストリームを受信する。当該ビデオ・ストリームを、ユーザ・データグラム・プロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ、略してＵＤＰ）もしくは伝送制御プロトコル（Ｔｒａｎｓｐｏｒｔ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ、略してＴＣＰ）プロトコルを用いて送信してもよく、または、リアルタイム伝送プロトコル（Ｒｅａｌｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ、略してＲＴＰ）、トランスポート・ストリーム（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ、略してＴＳ）、およびハイパーテキスト伝送プロトコル（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ、略してＨＴＴＰ）のような他の伝送プロトコルを用いて送信してもよい。以下の説明では、ビデオ・ストリームがＲＴＰ伝送プロトコルを用いて送信される例を用いる。ビデオ・ストリームがＲＴＰを用いて送信されるときには、当該ビデオ・ストリーム内の各ビデオ・フレームは少なくとも１つのＲＴＰパケットを含む。図１は、ＲＴＰパケットのフォーマットの略図である。図１に示すように、ＲＴＰパケットはＲＴＰパケット・ヘッダ層とＲＴＰペイロードで形成される。当該ＲＴＰパケット・ヘッダ層は、例えば、マーカ（ｍａｒｋｅｒ）ビット、タイムスタンプ、シーケンス番号等を含む。
【００２２】
連続するビデオ・フレーム内のＲＴＰパケットはインクリメンタルなシーケンス番号を有し、シーケンス番号の値は０から６５５３５の範囲（６５５３５を含む）であり、シーケンス番号が６５５３５を超えるたびに０から増分が続く。したがって、パケット紛失が発生したかどうかと紛失ＲＴパケットの数を、受信したＲＴＰパケットのシーケンス番号を用いて決定することができる。２つの連続して受信されたＲＴＰパケットのシーケンス番号に関して、後者のシーケンス番号は前者のシーケンス番号より大きく、２つの連続して受信されたＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを、式（１）を用いて計算することができる。
V_lostPackets＝後者のシーケンス番号−前者のシーケンス番号    （１）
後者のシーケンス番号が前者のシーケンス番号より１だけ大きい場合には、V_lostPackets＝０であり、パケット紛失は発生しない。
【００２３】
２つの連続して受信されたＲＴＰパケットのシーケンス番号に関して、後者のシーケンス番号が前者のシーケンス番号より大きくない場合には、２つの連続して受信されたＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを、式（２）を用いて計算することができる。
V_lostPackets＝後者のシーケンス番号＋６５５３６−前者のシーケンス番号−１    （２）
後者のシーケンス番号が前者のシーケンス番号より６５５３５だけ小さく、タイムスタンプが同じである場合には、V_lostPackets＝０であり、パケット紛失は発生しない。
【００２４】
さらに、連続して受信されたＲＴＰパケットにおいて、受信されたＲＴＰパケットは、ＲＴＰパケット・ヘッダのマーカ・ビットおよび／またはタイムスタンプを用いて別々のビデオのビデオ・フレームに分類される。同一のビデオ・フレームにおいては、当該ビデオ・フレームの最後のＲＴＰパケット・ヘッダのマーカ・ビットは１であり、その他のＲＴＰパケットのマーカ・ビットは０である。さらに、当該ビデオ・フレームの全てのＲＴＰパケット・ヘッダは同一のタイムスタンプを有し、これは隣接するビデオ・フレームのタイムスタンプとは異なる。さらに、連続して受信されたＲＴＰパケットの間にパケット紛失が発生したと判定されたとき、ＲＴＰパケット・ヘッダ内のタイムスタンプに従って、当該連続して受信されたＲＴＰパケットの間にビデオ・フレームの紛失が発生したかどうか、即ち、１つのビデオ・フレーム内の全てのＲＴＰパケットが紛失したかを判定してもよく、紛失したビデオ・フレームの数V_lostFramesを、次式（３）を用いて計算してもよい。
【００２５】
【数１】
0005994193.tif 000002
【００２６】
ここで、V_TStは、２つの連続して受信されたＲＴＰパケットにおける後者のＲＴＰパケットのタイムスタンプであり、V_TSt−１は前者のＲＴＰのタイムスタンプであり、videoFrameRateは現在のビデオ・フレームのビデオ・フレーム・レートであり、V_CRはＲＴＰパケットのクロック速度（Ｃｌｏｃｋ  Ｒａｔｅ）である。
【００２７】
当該ビデオ・ストリームがＨ．２６４である場合には、V_CRの値は９００００でなければならない。当該ビデオ・ストリームがＭＰＥＧ４である場合には、V_CRの推奨値は９００００である。さらに、当該値を、以下の２つの方法を用いて取得してもよい。
【００２８】
（１）セッション記述プロトコル（Ｓｅｓｓｉｏｎ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｐｒｏｔｏｃｏｌ、略してＳＤＰ）が存在する場合には、当該値をＳＤＰから取得してもよい。
（２）ＳＤＰが存在せず、videoFrameRateが既知である場合には、当該値は式（４）を用いて得られる。
【００２９】
【数２】
0005994193.tif 000003
【００３０】
さらに、videoFrameRateは既知情報であるか、または、事前設定した位置から読み取られる。当該事前設定された位置は、事前設定されたファイル位置または事前設定された格納位置を含む。videoFrameRateを、２つの連続して受信されたビデオ・フレームのＲＴＰパケット・ヘッダのタイムスタンプの差分値を用いて計算してもよい。或るビデオ・フレーム全体が紛失したケースは、２つの連続して受信されたビデオ・フレームの間で発生してはならない。即ち、videoFrameRateは式（５）を用いて計算される。
【００３１】
【数３】
0005994193.tif 000004
【００３２】
ここで、V_TSmは、２つの連続するビデオ・フレームのＲＴＰパケット・ヘッダのタイムスタンプの差分値である。
【００３３】
ＲＴＰパケットが紛失したかどうか、および、ビデオ・フレームが紛失したかどうかを判定する上述の方法に基づいて、パケット紛失が現在のビデオ・フレームで発生したかどうか、および、現在のビデオ・フレーム全体が紛失したかどうかを判定してもよい。
【００３４】
パケット紛失が現在のビデオ・フレームで発生しない、即ち、現在のビデオ・フレーム内の全てのＲＴＰパケットが受信されたと判定された場合に、受信した現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードが決定される。現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して、現在のビデオ・フレームのサイズを取得する。
【００３５】
具体的には、図１に示すように、
ＲＴＰパケットのペイロード＝ＲＴＰパケットのサイズ−ＲＴＰパケット・ヘッダ層のサイズ
であり、ＲＴＰパケットのサイズを、当該ＲＴＰパケットをカプセル化するための上位層プロトコルに関する情報から取得し、ＲＴＰパケット・ヘッダ層のサイズを、当該ＲＴＰパケットを受信し当該パケット・ヘッダ層を解析することによって決定してもよい。
【００３６】
パケット紛失が現在のビデオ・フレームで発生し、フレーム全体が紛失していないと判定された場合には、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを累積して現在のビデオ・フレーム内の受信されたＲＴＰパケットの合計サイズを取得する。
【００３７】
全ての受信ＲＴＰパケットのうち、現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を推定し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得する。
【００３８】
受信されたＲＴＰパケットの合計サイズと現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを加算して、現在のビデオ・フレームのサイズを取得する。
【００３９】
各紛失ＲＴＰパケットが、受信した過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットであってもよい。
【００４０】
具体的には、各紛失ＲＴＰパケットのペイロードV_lostBytesを、式（６）を参照して、過去の隣接するＲＴＰのペイロード・パケットと次の隣接ＲＴＰパケットのペイロードの平均値に従って推定してもよい。
【００４１】
【数４】
0005994193.tif 000005
【００４２】
ここで、V_receivedBytesｔは、受信されたＲＴＰパケット内の紛失ＲＴＰパケットの次の隣接ＲＴＰパケットのペイロードであり、V_receivedBytesｔ−１は受信されたＲＴＰパケット内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットのペイロードである。連続するパケットが紛失した場合、即ち、連続して紛失したＲＴＰパケットの数が１より大きい場合には、各紛失ＲＴＰパケットのペイロードV_lostBytesが等しいと推定される。例えば、シーケンス番号がそれぞれ３と５であるＲＴＰパケットが連続して受信され、シーケンス番号が４であるＲＴＰパケットが紛失したと判定された場合、上述の式に従い、シーケンス番号が４であるＲＴＰパケットのペイロードが、シーケンス番号がそれぞれ３と５であるＲＴＰパケットのペイロードの平均値であると推定される。別の例として、シーケンス番号がそれぞれ３および７であるＲＴＰパケットが連続して受信され、シーケンス番号がそれぞれ４、５、および６であるＲＴＰパケットが紛失したと判定された場合、上述の式に従って、シーケンス番号がそれぞれ４、５、および６であるＲＴＰパケットの各々のペイロードが、シーケンス番号がそれぞれ３および７であるＲＴＰパケットのペイロードの平均値であると推定される。
【００４３】
さらに、各紛失ＲＴＰパケットのペイロードを、紛失ＲＴＰパケットの前に受信された複数のＲＴＰパケットのペイロードの平均値、例えば、当該紛失ＲＴＰパケットの前に受信した全てのＲＴＰパケットのペイロードの平均値、または、当該紛失ＲＴＰパケットのスライディング・ウィンドウ内部で受信したＲＴＰパケットのペイロードの平均値に従って推定してもよい。
【００４４】
さらに、パケット紛失が現在のビデオ・フレームで発生したがフレーム全体は失われていない以下の５つのケースがある。
【００４５】
第１のケースでは、２つの連続して受信されたＲＴＰパケットのシーケンス番号に従って、パケット紛失が当該２つのＲＴＰパケットの間で発生したと判定され、当該２つのＲＴＰパケットのタイムスタンプに従って、両方のＲＴＰパケットが現在のビデオ・フレームに属すると判定される。即ち、前者の隣接ＲＴＰパケットと後者の隣接ＲＴＰパケットのタイムスタンプに従って、前者の隣接ＲＴＰパケットと後者の隣接ＲＴＰパケットが両方とも現在のビデオ・フレームに属すると判定される。このケースでは、当該２つのＲＴＰパケットの間の全ての紛失ＲＴＰパケットが現在のビデオ・フレームに割り当てられる。具体的には、式（１）または（２）に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsが決定され、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsに等しいと判定される。
【００４６】
第１のケースの例、即ち、パケット紛失の例１を以下で提供する。図２Ａは、本発明の１実施形態に従うパケット紛失の例１の略図である。図２Ａに示すように、シーケンス番号（V_SN）が５であるＲＴＰパケットは紛失しており、シーケンス番号が４および６であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり、紛失ＲＴＰパケットの総数は１である。現在のビデオ・フレーム（t_frame）に割り当てられた紛失ＲＴＰパケットの数（V_lostPt_frame）は１である。
【００４７】
第２のケースでは、２つの連続して受信されたＲＴＰパケットのシーケンス番号に従って、パケット紛失が当該２つのＲＴＰパケットの間で発生したと判定し、当該２つのＲＴＰパケットのタイムスタンプに従って、前者のＲＴＰパケットが現在のビデオ・フレームの過去の第１のビデオ・フレームに属し後者のＲＴＰパケットが現在のビデオ・フレームに属すると判定し、当該前者のＲＴＰパケットのマーカ・ビットに従って、当該前者のＲＴＰパケットが過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定する。即ち、前者の隣接ＲＴＰパケットおよび後者の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、前者の隣接ＲＴＰパケットが過去の第１のビデオ・フレームに属し、後者の隣接ＲＴＰパケットが現在のビデオ・フレームに属すると判定する。前者の隣接ＲＴＰパケットは、過去の第１のビデオ・フレーム内の最後のＲＴＰパケットである。このケースでは、当該２つのＲＴＰパケットの間の全ての紛失ＲＴＰパケットが現在のビデオ・フレームに割り当てられる。具体的には、式（１）または（２）に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsが得られ、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsに等しいと判定する。
【００４８】
第２のケースの例、即ち、パケット紛失の例２を以下で提供する。図２Ｂは、本発明の１実施形態に従うパケット紛失の例２の略図である。図２Ｂに示すように、シーケンス番号（V_SN）が３であるＲＴＰパケットは紛失しており、シーケンス番号が２および４であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり、シーケンス番号が２であるＲＴＰパケットは過去の第１のビデオ・フレーム（t-1_frame）内の最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１であり、シーケンス番号が４であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）内の最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数は１である。現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostPt_frame）は１である。
【００４９】
第３のケースでは、２つの連続して受信されたＲＴＰパケットのシーケンス番号に従って、パケット紛失が当該２つのＲＴＰパケットの間で発生したと判定し、当該２つのＲＴＰパケットのタイムスタンプに従って、前者のＲＴＰパケットが現在のビデオ・フレームに属し、後者のＲＴＰパケットが現在のビデオ・フレームの次の隣接するビデオ・フレームに属すると判定し、当該前者のＲＴＰパケットのマーカ・ビットに従って、当該前者のＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定する。即ち、前者の隣接ＲＴＰパケットおよび後者の隣接ＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、前者の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、後者の隣接ＲＴＰパケットが現在のビデオ・フレームの次の隣接するビデオ・フレームに属し、前者の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定する。このケースでは、２つの連続して受信されたＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを先ず式（１）または（２）に従って取得し、V_lostPackets個のＲＴＰパケットを現在のビデオ・フレームと次のビデオ・フレームに均等に割り当て、均等な割当ての後に、残りの紛失ＲＴＰパケットが現在のビデオ・フレームに割り当てられる。即ち、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２である。ここで、intは丸めを表し、％はモジュラ演算を表す。即ち、％２は２で割った余りを表す。
【００５０】
第３のケースの３つの例、即ち、パケット紛失の例３、４、および５を以下で提供する。図２Ｃ乃至図２Ｅはそれぞれ、本発明の諸実施形態に従うパケット紛失の例３、４、および５の略図である。
【００５１】
図２Ｃに示すように、パケット紛失の例３では、シーケンス番号が５であるＲＴＰパケットは紛失しており、シーケンス番号が４および６であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり、シーケンス番号が４であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）内で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１ではなく、シーケンス番号が６であるＲＴＰパケットは現在のビデオ・フレームの次の隣接するビデオ・フレーム（t+1_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは１である。したがって、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）はint(1/2)＋１％２＝１であり、次のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t+1_frame）はint(1/2)＝０である。
【００５２】
図２Ｄに示すように、パケット紛失の例４では、シーケンス番号（V_SN）が５および６であるＲＴＰパケットは紛失しており、シーケンス番号が４および７であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり、シーケンス番号が４であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１ではなく、シーケンス番号が７であるＲＴＰパケットは現在のビデオ・フレームの次の隣接するビデオ・フレーム（t+1_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは２である。したがって、現在のビデオ・フレーム（t_frame）に割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）はint（２／２）＋２％２＝１で、次のビデオ・フレーム（t+1_frame）に割り当てられた紛失ＲＴＰパケットの数（V_lostP_t+1_frame）はint（２／２）＝１である。
【００５３】
図２Ｅに示すように、パケット紛失の例５では、シーケンス番号（V_SN）が４、５、および６であるＲＴＰパケットは紛失しており、シーケンス番号が３および７であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり、シーケンス番号が３であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１ではなく、シーケンス番号が７であるＲＴＰパケットは現在のビデオ・フレームの次の隣接するビデオ・フレーム（t+1_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは３である。したがって、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）はint（３／２）＋３％２＝２であり、次のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t+1_frame）はint（３／２）＝１である。
【００５４】
第４のケースでは、２つの連続して受信されたＲＴＰパケットのシーケンス番号に従って、パケット紛失が当該２つのＲＴＰパケットの間で発生したと判定され、当該２つのＲＴＰパケットのタイムスタンプに従って、前者のＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、後者のＲＴＰパケットが現在のビデオ・フレームに属すると判定し、当該前者のＲＴＰパケットのマーカ・ビットに従って、当該前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定する。即ち、前者の隣接ＲＴＰパケットおよび後者の隣接ＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、前者の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、後者の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、前者の隣接ＲＴＰパケットが、当該前者の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定する。即ち、２つの連続して受信されたＲＴＰパケットの間のビデオ・フレーム全体は失われていない。このケースでは、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを最初に式（１）または（２）に従って取得し、紛失ビデオ・フレームの数V_lostFramesを式（３）に従って取得し、紛失ＲＴＰパケットが各紛失ビデオ・フレームに均等に割り当てられ、最終的に、均等な割当ての後に残りの紛失ＲＴＰパケットが現在のビデオ・フレームに割り当てられる。即ち、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はV_lostPackets％V_lostFramesである。
【００５５】
第４のケースの２つの例、即ち、パケット紛失の例６および７を以下で提供する。図２Ｆおよび図２Ｇはそれぞれ、本発明の１実施形態に従うパケット紛失の例６および７の略図である。
【００５６】
図２Ｆに示すように、パケット紛失の例６では、シーケンス番号（V_SN）が３、４、５、および６であるＲＴＰパケットは紛失しており、シーケンス番号が２および７であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり不連続のタイムスタンプを有し、シーケンス番号が２であるＲＴＰパケットは受信した過去のビデオ・フレーム（t-3_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１であり、シーケンス番号が７であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは４である。式（３）に従って得られた紛失したビデオ・フレーム全体の数V_lostFramesが２である場合には、各紛失ビデオ・フレーム、即ち、過去の第２のビデオ・フレーム（t-2_frame）または過去の第１のビデオ・フレーム（t-1_frame）に割り当てられた紛失ＲＴＰパケットの数（V_lostP_lost_frame）はint（V_lostPackets／V_lostFrames）＝int（４／２）＝２であり、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）はV_lostPackets％V_lostFrames＝４％２＝０である。現在のビデオ・フレームの前のフレーム全体が紛失しているので、受信した過去のビデオ・フレーム（t-3_frame）は実際の過去のビデオ・フレーム（t-1_frame）ではないことに留意されたい。
【００５７】
図２Ｇに示すように、パケット紛失の例７では、シーケンス番号（V_SN）が３、４、５、６、および７であるＲＴＰパケットは紛失しており、シーケンス番号が２および８であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり不連続のタイムスタンプを有し、シーケンス番号が２であるＲＴＰパケットは受信した過去のビデオ・フレーム（t-3_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１であり、シーケンス番号が８であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは５である。式（３）に従って得られた紛失ビデオ・フレームの数V_lostFramesが２である場合には、各紛失ビデオ・フレーム、即ち、過去の第２のビデオ・フレーム（t-2_frame）または過去の第１のビデオ・フレーム（t-1_frame）の何れかに割り当てられた紛失ＲＴＰパケットの数（V_lostP_lost_frame）はint（V_lostPackets／V_lostFrames）＝int（５／２）＝２であり、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）はV_lostPackets％V_lostFrames＝５％２＝１である。
【００５８】
第５のケースでは、２つの連続して受信されたＲＴＰパケットのシーケンス番号に従って、パケット紛失が当該２つのＲＴＰパケットの間で発生したと判定し、当該２つのＲＴＰパケットのタイムスタンプに従って、前者のＲＴＰパケットが現在のビデオ・フレームに属し、後者のＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であると判定し、当該前者のＲＴＰパケットのマーカ・ビットに従って、当該前者のＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定する。即ち、前者の隣接ＲＴＰパケットおよび後者の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、前者の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、後者の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、前者の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定する。このケースでは、紛失ビデオ・フレームの数V_lostFramesが最初に式（３）に従って取得され、１つの紛失ＲＴＰパケットが最初に現在のビデオ・フレームに割り当てられ、残りの紛失ＲＴＰパケットが均等に紛失ビデオ・フレームに割り当てられ、均等な割当ての後に当該残りの紛失ＲＴＰパケットが、当該後者のＲＴＰパケットが属するビデオ・フレーム、即ち、受信した次のビデオ・フレームに割り当てられる。これは、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数が１であることと均等である。
【００５９】
第５のケースの２つの例、即ち、パケット紛失の例８および９を以下で提供する。図２Ｈおよび図２Ｉはそれぞれ、本発明の諸実施形態に従うパケット紛失の例８および９の略図である。
【００６０】
図２Ｈに示すように、パケット紛失の例８では、パケットシーケンス番号（V_SN）が２、３、４、５、および６であるＲＴＰパケットは紛失しており、シーケンス番号が１および７であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり不連続のタイムスタンプを有し、シーケンス番号が１であるＲＴＰパケットは、現在のビデオ・フレーム（t_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１ではなく、シーケンス番号が７であるＲＴＰパケットは受信した次のビデオ・フレーム（t+3_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは５である。式（３）に従って得られた紛失ビデオ・フレームの数V_lostFramesが２である場合には、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）は１であり、各紛失ビデオ・フレーム、即ち、現在のビデオ・フレームの次の隣接するビデオ・フレーム（t+1_frame）または次のビデオ・フレームに隣接する第２の次のビデオ・フレーム（t+2_frame）の何れかに割り当てられた紛失ＲＴＰパケットの数（V_lostP_lost_frame）はint（（V_lostPackets−１）／V_lostFrames）＝int（４／２）＝２であり、受信した次のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t+3_frame）は（V_lostPackets−１）％V_lostFrames＝４％２＝０である。現在のビデオ・フレームの後のフレーム全体が紛失しているので、受信した次のビデオ・フレーム（t+3_frame）は現在のビデオ・フレームに隣接する実際の次のビデオ・フレーム（t+1_frame）ではないことに留意されたい。
【００６１】
図２Ｉに示すように、パケット紛失の例では、パケットシーケンス番号（V_SN）が２、３、４、５、６、および７であるＲＴＰパケットは紛失しており、シーケンス番号が１および８であるＲＴＰパケットは連続して受信されたＲＴＰパケットであり不連続のタイムスタンプを有し、シーケンス番号が１であるＲＴＰパケットは現在のビデオ・フレーム（t_frame）で最後に受信したＲＴＰパケットであり、マーカ・ビット（V_MB）は１ではなく、シーケンス番号が８であるＲＴＰパケットは受信した次のビデオ・フレーム（t+3_frame）で最初に受信したＲＴＰパケットであり、紛失ＲＴＰパケットの総数V_lostPacketsは６である。式（３）に従って得られた紛失ビデオ・フレームの数V_lostFramesが２である場合には、現在のビデオ・フレームに割り当てられた紛失ＲＴＰパケットの数（V_lostP_t_frame）は１であり、各紛失したビデオ・フレーム全体、即ち、現在のビデオ・フレームに隣接する次のビデオ・フレーム（t+1_frame）または次のビデオ・フレームに隣接する第２の次のビデオ・フレーム（t+2_frame）の何れかに割り当てられた紛失ＲＴＰパケットの数（V_lostP_lost_frame）はint（（V_lostPackets−１）／V_lostFrames）＝int（５／２）＝２であり、受信した次のビデオ・フレーム（V_lostP_t+3_frame）に割り当てられた紛失ＲＴＰパケットの数は（V_lostPackets−１）％V_lostFrames＝５％２＝１である。
【００６２】
さらに、以上の第４のケースと第５のケースを参照すると、現在のビデオ・フレーム全体が紛失したと判定された場合に、各紛失ＲＴＰパケットのペイロードが、全ての受信されたＲＴＰパケットのうち、現在のビデオ・フレーム内の過去の隣接ＲＴＰパケットおよび次の隣接ＲＴＰパケットに従って推定され、当該過去の隣接ＲＴＰパケットが属するビデオ・フレームと次の隣接ＲＴＰパケットが属するビデオ・フレームの間の紛失したビデオ全体のビデオ・フレームの数V_lostFramesと紛失ＲＴＰパケットの総数V_lostPacketsとが、ビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびに当該過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプおよびシーケンス番号に従って得られる。
【００６３】
当該過去の隣接ＲＴＰパケットのマーカ・ビットに従って、当該過去の隣接ＲＴＰパケットが当該過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であると判定する。
【００６４】
現在のビデオ・フレームのサイズは、現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って得られる。
【００６５】
さらに、第１のビデオ・フレームを除く各ビデオ・フレームのサイズを、上述の方法を参照して取得してもよい。
【００６６】
１０２では、現在のビデオ・フレームのサイズと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得する。
【００６７】
具体的には、計算の複雑性を減らすため、先行する１つのビデオ・フレームのみ、即ち、過去の第１のビデオ・フレームのみを考慮するとき、現在のビデオ・フレームのサイズと過去の第１のビデオ・フレームのサイズの差分値の絶対値を現在のビデオ・フレームの変更フィーチャ値として使用してもよい。このケースでは、当該変更フィーチャ値は勾配と等価であり、次式で表される。
V_FGt_frame＝（abs）（t_frame_size-t-1_frame_size）    （７）
ここで、V_FGt_frameは現在のビデオ・フレームの変更フィーチャ値であり、t_frame_sizeは現在のビデオ・フレームのサイズであり、t-1_frame_sizeは過去の第１のビデオ・フレームのサイズであり、absは絶対値を表す。
【００６８】
さらに、第１のビデオ・フレーム以外の各ビデオ・フレームの変更フィーチャ値、即ち、当該第１のビデオ・フレーム以外の過去の第１のビデオ・フレームの変更フィーチャ値を、上述の方法を参照して取得してもよい。
【００６９】
１０３では、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って現在のビデオ・フレームのＩフレーム閾値を取得する。
【００７０】
具体的には、１０３で、現在のビデオ・フレームのＩフレーム閾値を、ビデオ・フレーム・レートと現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って取得してもよい。ここで、現在のビデオ・フレームと過去の直近Ｉフレームの距離は、現在のビデオ・フレームと過去の直近Ｉフレームの間のビデオ・フレームの数である。換言すれば、本発明の当該実施形態における距離は、或るビデオ・フレームと別のビデオ・フレームの間のビデオ・フレームの数である。例えば、過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームが過去の直近Ｉフレームである場合には、現在のビデオ・フレームと過去の直近Ｉフレームの距離は２である。本発明の当該実施形態におけるＩフレームはフレーム間符号化フレームのことをいうことに留意されたい。
【００７１】
さらに、過去の第２のビデオ・フレームが過去の直近Ｉフレームである、即ち、現在のビデオ・フレームと過去の直近Ｉフレームの距離が２である場合には、現在のビデオ・フレームのＩフレーム閾値は過去の直近Ｉフレームのサイズと第１の定数の積であると判定する。当該第１の定数の値範囲は（０、１］である。（０、１］は、値範囲がゼロより大きく１以下であることを表す。
【００７２】
ここでの第１の定数がデフォルトの固定値、例えば、２／３であってもよく、または、当該第１の定数をビデオ・フレーム・レートと符号化率に従って決定してもよい。特に、現在のビデオ・フレームのサイズを符号化率として使用してもよく、または、現在のビデオ・フレームのサイズの平均値および少なくとも１つの過去のビデオ・フレームのサイズを符号化率として使用してもよい。さらに、全ての検出されたＩフレームの平均サイズと当該第１の定数の積を現在のビデオ・フレームのＩフレーム閾値として使用してもよい。
【００７３】
過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合に、現在のビデオ・フレームと過去の直近Ｉフレームの距離が当該ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定し、大きくない場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第２の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定する。当該第１の換算係数と当該第２の換算係数の値範囲は（０、１］であり、当該第１の換算係数は当該第２の換算係数より大きい。それに応じて、当該プロセスはアルゴリズムを用いて以下のように表される。
IF (V_FDI <= (int)videoFrameRate ) THEN
V_IThresht_frame = V_IThresht-1_frame x ScaledFactor2
ELSE
V_IThresht_frame = V_IThresht-1_frame x ScaledFactor1
ここで、V_FDIは現在のビデオ・フレームと過去の直近Ｉフレームの距離であり、videoFrameRateは当該ビデオ・ストリームのビデオ・フレーム・レートであり、V_IThresht_frameは現在のビデオ・フレームのＩフレーム閾値であり、V_IThresht-1_frameは過去の第１のビデオ・フレームのＩフレーム閾値であり、ScaledFactor1は第１の換算係数であり、ScaledFactor2は第２の換算係数である。例えば、ScaledFactor1は０．９９５であり、ScaledFactor2は０．９８５である。
【００７４】
さらに、V_FDIがvideoFrameRateより極めて大きいときに換算係数を設定してもよい。例えば、V_FDI＞2×videoFrameRateであるときに当該換算係数を１に設定する。即ち、V_IThresht_frame＝V_IThresht-1_frameである。
【００７５】
あるいは、V_FDIがvideoFrameRateより大きいとき、V_IThresht_frameを、閾値を下回らないように、即ち、V_IThresht_frame＝max（V_IThresht-1_frameｘScaledFactor1、MIN_VALUE）であるように設定してもよい。ここで、MIN_VALUEは事前設定された閾値、例えば５００であり、または、符号化率とビデオ・フレーム・レートに従って得られる値である。即ち、MIN_VALUEを適合的に調整してもよい。
【００７６】
現在のビデオ・フレームがビデオ・ストリームの第２のビデオ・フレームである場合には、現在のビデオ・フレームの過去の第２のビデオ・フレームは存在しないことに留意されたい。これは、現在のビデオ・フレームの過去の第２のビデオ・フレームが過去の直近Ｉフレームでないケースである。
【００７７】
さらに、現在のビデオ・フレームの過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合には、過去の第１のビデオ・フレームのＩフレーム閾値に、当該ビデオ・フレーム・レートに関する定数を乗じた結果を現在のビデオ・フレームのＩフレーム閾値として使用してもよい。
【００７８】
さらに、第１のビデオ・フレームを除いた各ビデオ・フレームのＩフレーム閾値を、上述の方法を参照して取得してもよい。
【００７９】
１０４では、現在のビデオ・フレームの変更フィーチャ値、過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定する。
【００８０】
具体的には、過去の第１のビデオ・フレームのサイズの過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合には、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定する。
【００８１】
第２の定数がデフォルトの固定値、例えば、１．５であってもよい。場合によっては、当該第２の定数は、現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決まる。即ち、当該第２の定数を適合的に調整してもよい。
【００８２】
現在のビデオ・フレームがビデオ・ストリームの第２のビデオ・フレームである、即ち、過去の第１のビデオ・フレームが第１のビデオ・フレームである場合には、過去の第１のビデオ・フレームがＩフレームであると判定することに留意されたい。即ち、当該第１のビデオ・フレームはデフォルトでＩフレームである。
【００８３】
さらに、過去の第１のビデオ・フレームがＩフレームであると判定した後に、当該方法がさらに、各Ｉフレームの平均サイズを計算するステップを含んでもよい。特に、１つのＩフレームを検出するたびに、各Ｉフレームの平均サイズが更新される。
【００８４】
さらに、第２のビデオ・フレームである現在のビデオ・フレームから最後のビデオ・フレームである現在のビデオ・フレームまで、上述の方法を使用して、現在のビデオ・フレームの過去の第１のビデオ・フレームがＩフレームであるかどうかを判定する。さらに、現在のビデオ・フレームがビデオ・ストリームの最後のビデオ・フレームである場合には、当該方法はさらに、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するステップであって、当該第３の定数は０より大きいステップを含む。
【００８５】
具体的には、現在のビデオ・フレームが最後のビデオ・フレームであるかどうかを、ビデオ・ストリームの後続のビデオ・フレームが受信されたかどうかにより判定してもよく、または、ビデオ・フレームの終了表示を用いて判定してもよい。当該第３の定数がデフォルトの固定値、例えば、０．７５であってもよく、または、場合によっては、当該第３の定数をさらに現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決定してもよい。即ち、当該第３の定数を適合的に調整してもよい。
【００８６】
さらに、１０１の前に、当該方法はさらに、第１のビデオ・フレームのサイズを取得するステップと、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定するステップであって、当該第４の定数の値範囲は（０、１］であるステップと、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するステップとを含む。
【００８７】
具体的には、第１のビデオ・フレームは受信順に決定されるので、ビデオ・ストリームの受信した第１のビデオ・フレームが当該第１のビデオ・フレームである。したがって、当該第１のビデオ・フレームに関して、フレーム全体が紛失するケースは存在せず、第１のＲＴＰパケットを受信する前のパケット紛失は通常は考慮されない。したがって、１０１で、パケット紛失がないケースや、パケット紛失に関する第１のケース、第３のケース、および第５のケースを参照して、当該第１のビデオ・フレームのサイズを決定することができる。当該第４の定数が、例えば、２／３であってもよい。現在のビデオ・フレームと過去の第１のビデオ・フレームでは特に、２つの隣接するビデオ・フレームの順序を参照しており、実際の時間順での現在のビデオ・フレームおよび過去の第１のビデオ・フレームには限定されず、上述の方法は、変更フィーチャ値の取得、Ｉフレーム閾値の取得、任意の２つの隣接するビデオ・フレームに対するフレーム・タイプの決定に適用可能であることにさらに留意されたい。換言すれば、関連する処理ステップ、即ち、変更フィーチャ値の取得、Ｉフレーム閾値の取得、およびフレーム・タイプの決定を、ランダムな時間点の前の２つの隣接するビデオ・フレームに関するランダムな時間点で、または、ランダムな時間点の後の２つの隣接するビデオ・フレームに関するランダムな時間点で、または、ランダムな時間点での２つの隣接するビデオ・フレームに関するランダムな時間点で、開始してもよい。
【００８８】
本発明の当該実施形態は、ビデオ・ストリームが他のＩＰプロトコルを用いて送信されるシナリオにも適用可能であることに留意されたい。
【００８９】
本発明の当該実施形態では、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームと過去の第１のビデオ・フレームのサイズに従って得られ、現在のビデオ・フレームのＩフレーム閾値が、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って得られ、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、および現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかが判定される。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、過去の第１のビデオ・フレームのフレーム・タイプの検出中に、過去の第１のビデオ・フレームより前の１つのビデオ・フレームのみ、即ち、過去の第２のビデオ・フレームのみが考慮される。これにより既存のビデオ・フレーム・タイプ検出における複数の過去のビデオ・フレームに基づく計算に起因する高い複雑度と長い遅延の問題が解決され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【００９０】
図３は、本発明の１実施形態で提供するビデオ・ストリームの別のフレーム・タイプ検出方法の略流れ図である。図３に示すように、当該方法は以下を含む。
【００９１】
３０１では、現在のビデオ・フレームのサイズを取得する。現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置する。３０１の具体的な実装については、上述の実施形態における１０１を参照されたい。
【００９２】
３０２では、現在のビデオ・フレームのサイズと少なくとも２つの過去のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得する。
【００９３】
具体的には、現在のビデオ・フレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の平均値の絶対値または現在のフレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の絶対値の平均値を、現在のビデオ・フレームの変更フィーチャ値として使用してもよい。
【００９４】
３０３では、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って現在のビデオ・フレームのＩフレーム閾値を取得する。３０３の具体的な実装については、上述の実施形態における１０３を参照されたい。
【００９５】
３０４では、現在のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、および少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定する。
【００９６】
具体的には、過去の第１のビデオ・フレームのサイズの過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合には、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定する。または、過去の第１のビデオ・フレームのサイズの過去の第１のビデオ・フレームより前の少なくとも２つの過去のビデオ・フレームのサイズの平均値に対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合には、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定する。
【００９７】
当該第２の定数が、デフォルトの固定値、例えば、１．５であっもよい。場合によっては、当該第２の定数は、現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決まる。即ち、当該第２の定数を適合的に調整してもよい。
【００９８】
現在のビデオ・フレームが、ビデオ・ストリームのフレーム・タイプ検出を開始した後に受信したビデオ・ストリーム内の第２のビデオ・フレームである場合、即ち、過去の第１のビデオ・フレームが第１のビデオ・フレームである場合に、過去の第１のビデオ・フレームがＩフレームであると判定されることに留意されたい。即ち、当該第１のビデオ・フレームはデフォルトでＩフレームである。
【００９９】
さらに、過去の第１のビデオ・フレームがＩフレームであると判定した後に、当該方法がさらに、各Ｉフレームの平均サイズを計算するステップを含んでもよい。特に、１つのＩフレームを検出するたびに、各Ｉフレームの平均サイズが更新される。
【０１００】
さらに、第２のビデオ・フレームである現在のビデオ・フレームから最後のビデオ・フレームである現在のビデオ・フレームまで、上述の方法を使用して、現在のビデオ・フレームの過去の第１のビデオ・フレームがＩフレームであるかどうかを判定する。さらに、現在のビデオ・フレームがビデオ・ストリームの最後のビデオ・フレームである場合には、当該方法はさらに、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するステップであって、当該第３の定数は０より大きいステップを含む。
【０１０１】
具体的には、現在のビデオ・フレームが最後のビデオ・フレームであるかどうかを、ビデオ・ストリームの後続のビデオ・フレームが受信されたかどうかにより判定してもよく、または、ビデオ・フレームの終了表示を用いて判定してもよい。当該第３の定数はデフォルトの固定値、例えば、０．７５であってもよく、または、場合によっては、当該第３の定数を現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決定してもよい。即ち、当該第３の定数を適合的に調整してもよい。
【０１０２】
さらに、３０１の前に、当該方法がさらに、第１のビデオ・フレームのサイズを取得するステップと、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定するステップであって、当該第４の定数の値範囲は（０、１］であるステップと、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するステップと、を含んでもよい。
【０１０３】
具体的には、当該第１のビデオ・フレームが受信順に決定されるので、当該ビデオ・ストリームの受信した第１のビデオ・フレームが当該第１のビデオ・フレームである。したがって、当該第１のビデオ・フレームに関して、フレーム全体が紛失するケースは存在せず、第１のＲＴＰパケットを受信する前のパケット紛失は通常は考慮されない。したがって、１０１で、パケット紛失がないケースや、パケット紛失に関する第１のケース、第３のケース、および第５のケースを参照して、当該第１のビデオ・フレームのサイズを決定することができる。当該第４の定数は、例えば、２／３であってもよい。
【０１０４】
本発明の当該実施形態では、現在のビデオ・フレームの変更フィーチャ値が、現在のビデオ・フレームと少なくとも２つの過去のビデオ・フレームのサイズに従って取得され、現在のビデオ・フレームのＩフレーム閾値が、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って取得され、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームおよび少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定する。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【０１０５】
本発明の１実施形態で提供するビデオ・ストリームのフレーム・タイプ検出方法を実装する疑似コードの例は以下の通りである。ここで、V_TNFはビデオ・フレームの総数が、紛失し受信されたビデオ・フレームの番号を含むことを示す。例えば、１は第１のビデオ・フレームを示し、２は第２のビデオ・フレームを示す。疑似コードを以下に示す。
【０１０６】
int t_frame_size = 0, t_frame_sizeは現在のビデオ・フレームのサイズ;
int t-1_frame_size = 0, t-1_frame_sizeは過去の第１のビデオ・フレームのサイズ;
int t-2_frame_size = 0, t-2_frame_sizeは過去の第２のビデオ・フレームのサイズ;
//==== 入力モジュール ====//
IF (V_TNF = = 1) THEN
//現在のビデオ・フレームは第１のビデオ・フレームである
t_frame_size = VFBytest_frame
t-1_frame_size = t_frame_size
t-2_frame_size = t-1_frame_size
ELSEIF (V_TNF = = 2) THEN
//現在のビデオ・フレームは第２のビデオ・フレームである
t_frame_size = VFBytest_frame
t-1_frame_size = VFBytest-1_frame
t-2_frame_size = t-1_frame_size
ELSE
//現在のビデオ・フレームは後続のビデオ・フレームである
t_frame_size = VFBytest_frame
t-1_frame_size = VFBytest-1_frame
t-2_frame_size = VFBytest-2_frame
ENDIF
//==== 入力モジュール ====//
//==== ビデオ・フレーム・フィーチャ抽出計算モジュール ====//
IF (V_TNF == 1) THEN
//現在のビデオ・フレームが第１のビデオ・フレームである場合には、V_FGは現在のビデオ・フレームのサイズの２／３に等しい
V_FGt_frame = (int)( t_frame_size * 2.0/3.0)
ELSE
//後続のビデオ・フレーム。V_FGは、現在のビデオ・フレームのサイズと次のビデオ・フレームのサイズの差分値の絶対値に等しい
V_FGt_frame = (abs)( t_frame_size - t-1_frame_size )
ENDIF
//==== ビデオ・フレーム勾配計算モジュール ====//
//==== Ｉフレーム閾値計算モジュール ====//
IF (V_TNF == 1) THEN
//現在のビデオ・フレームが第１のビデオ・フレームである場合には、Ｉフレーム閾値はV_FGに等しい
V_IThresht_frame = V_FGt_frame
ELSE
//後続の ビデオ・フレーム
IF (V_FTt-2_frame == I_FRAME) THEN
//現在のビデオ・フレームが過去の第２のビデオ・フレームのＩフレームである場合には、Ｉフレーム閾値を再計算し、V_FDIをリセット
V_FDI = 2  //現在のビデオ・フレームと１つの過去の最も近いＩフレームの距離V_FDIを２にリセット
V_IThresht_frame = (int)( t-2_frame_size * 2.0/3.0)  //Ｉフレーム閾値を再計算。これは、過去の第２のビデオ・フレームのサイズの２／３に等しい
ELSE
//現在のビデオ・フレームの位置とビデオ・フレーム・レートに従って閾値を更新する
IF (V_FDI <= (int)VideoFrameRate ) THEN
V_IThresht_frame = V_IThresht-1_frame * 0.985  //閾値を更新                           V_FDI += 1  //現在のビデオ・フレームからの距離を計算
ELSE
V_IThresht_frame = max( V_IThresht-1_frame * 0.995, 500)  
//閾値を更新。最小値は５００である。
V_FDI += 1
//現在のビデオ・フレームと１つの過去の最も近いＩフレームの距離を計算
ENDIF//IF (V_FDI <= (int)VideoFrameRate )
ENDIF//(V_FTt-2_frame == I_FRAME)
ENDIF//IF (V_TNF == 1)
//==== Ｉフレーム閾値計算モジュール ====//
//==== Output module ====//
IF( V_TNF == 1) THEN
//第１のフレーム
//第１のビデオ・フレームは計算されない
return
ELSE
IF(V_FGt_frame > V_IThresht_frame && V_FGt-1_frame > V_IThresht_frame
&& (t-1_frame_size/t-2_frame_size > 1.5 || t-1_frame_size/t_frame_size > 1.5)) THEN
V_FTt-1_frame = I_FRAME               //Ｉフレーム
V_ NIF += 1                     //Ｉフレーム品質カウント値
V_TIFBytes += t-1_frame_size       //Ｉフレーム・サイズ累積値
ELSE
IF( V_TNF - 1 = = 1) THEN
//過去の第１のビデオ・フレームが第１のビデオ・フレームである場合
V_FTt-1_frame = I_FRAME          //Ｉフレーム
V_ NIF += 1                 //Ｉフレーム品質カウント値
V_TIFBytes += t-1_frame_size  //Ｉフレーム・サイズ累積値
ELSE
VFTt-1_frame = NON_I_FRAME      //非Ｉフレーム
ENDIF
ENDIF
ENDIF
IF (ビデオ・ストリームの最後のビデオ・フレーム) THEN
//最後のフレーム
//最後のビデオ・フレーム
V_AIFBytes = V_TIFBytes/V_TNFI     //各Ｉフレームの平均サイズを最後のビデオ・フレームまで
IF ( t_frame_size/V_AIFBytes > 0.75 ) THEN
V_FTt_frame = I_FRAME             //Ｉフレーム
V_ NIF += 1                   //Ｉフレーム品質カウント値
V_TIFBytes += t_frame_size      //Ｉフレームサイズ累積値
V_AIFBytes = V_TIFBytes/V_NIF  //各Ｉフレームの平均サイズを更新
ELSE
V_FTt_frame = NON_I_FRAME             //非Ｉフレーム
ENDIF
ENDIF
//==== 出力モジュール ====//
【０１０７】
図４は、本発明の１実施形態で提供するフレーム・サイズ検出方法の略流れ図である。図４に示すように、当該方法は以下を含む。
【０１０８】
４０１では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各受信ＲＴＰパケットのペイロードを取得し、各受信ＲＴＰパケットのペイロードに従って各紛失ＲＴＰパケットのペイロードを推定する。
【０１０９】
具体的には、本発明の当該実施形態で提供するフレーム・サイズ検出装置はフレームのサイズを検出する。当該フレーム・サイズ検出装置をネットワーク装置または試験装置に配置してもよい。当該フレーム・サイズ検出装置がメディア・ストリームを受信してもよい。当該メディア・ストリームは、ビデオ・フレームおよび／またはオーディオ・フレームを含む。当該実施形態を使用して、ビデオ・フレームまたはオーディオ・フレームのサイズを検出してもよい。ビデオ・フレームは少なくとも１つのビデオＲＴＰパケットを含み、オーディオフレームは少なくとも１つのオーディオＲＴＰパケットを含む。ＲＴＰパケットのフォーマットを図１に示す。ビデオＲＴＰパケットとオーディオＲＴＰパケットを、ＲＴＰパケット・ヘッダ層のロード・タイプ（ペイロード・タイプ）および／またはＲＴＰパケットをカプセル化するためのユーザ・データグラム・プロトコル（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ、略してＵＤＰ）層の宛先ポート（ｄｅｓｔｉｎａｔｉｏｎ  ｐｏｒｔ）を用いて区別してもよい。
【０１１０】
具体的には、図１に示すように、
ＲＴＰパケットのペイロード＝ＲＴＰパケットのサイズ−ＲＴＰパケット・ヘッダ層のサイズ
である。ここで、ＲＴＰパケットのサイズを、当該ＲＴＰパケットをカプセル化するための上位層プロトコル（即ち、ＵＤＰ層）に関する情報から取得してもよく、ＲＴＰパケット・ヘッダ層ののサイズを、ＲＴＰパケットを受信し当該パケットを解析することにより決定してもよい。
【０１１１】
具体的には、各紛失ＲＴＰパケットのペイロードV_lostBytesを、式（６）を参照して過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードの平均値に従って推定してもよい。さらに、各紛失ＲＴＰパケットのペイロードをさらに、紛失ＲＴＰパケットの前に受信した複数のＲＴＰパケットのペイロードの平均値、例えば、紛失ＲＴＰパケットの前に受信した全てのＲＴＰパケットのペイロードの平均値、または、紛失ＲＴＰパケットの前のスライディング・ウィンドウにおいて受信したＲＴＰパケットのペイロードの平均値に従って推定してもよい。
【０１１２】
４０２では、当該２つのＲＴＰパケットのシーケンス番号に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得する。特に、式（１）または（２）を参照してV_lostPacketsを取得してもよい。
【０１１３】
４０３では、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を推定する。
【０１１４】
具体的には、パケット紛失が２つの連続して受信されたＲＴＰパケットの間に発生する以下の５つのケースが存在する。
【０１１５】
第１のケースでは、当該２つのＲＴＰパケットのタイムスタンプに従って当該２つのＲＴＰパケットが同一のフレームに属すると判定する。その結果、当該２つのＲＴＰパケットが属するフレームでパケット紛失が発生したがフレーム全体は失われておらず、当該２つのＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数は紛失ＲＴＰパケットの総数V_lostPacketsに等しいと判定する。詳細については、図２Ａを参照されたい。
【０１１６】
第２のケースでは、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定する。その結果、パケット紛失が後者のＲＴＰパケットが属するフレームで発生したがフレーム全体は失われておらず、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が紛失ＲＴＰパケットの総数V_lostPacketsに等しいと判定する。詳細については、図２Ｂを参照されたい。
【０１１７】
第３のケースでは、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定する。その結果、パケット紛失が当該前者のＲＴＰパケットが属するフレームと当該前者のＲＴＰパケットが属するフレームの両方で発生したがフレーム全体は失われておらず、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であり、当該後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）であると判定する。詳細については、図２Ｃ乃至図２Ｅを参照されたい。
【０１１８】
第４のケースでは、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定する。その結果、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesが、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って得られる。当該２つのＲＴＰパケットが属するフレームの間のV_lostFrames個のフレームでパケット紛失が発生し、フレーム全体が紛失し、パケット紛失が当該後者のＲＴＰパケットが属するフレームで発生したがフレーム全体は失われていないと判定し、各紛失フレーム全体における紛失ＲＴＰパケットの数はint（V_lostPackets／V_lostFrames）であり、当該後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はV_lostPackets％V_lostFramesであると判定する。詳細については、図２Ｆおよび図２Ｇを参照されたい。
【０１１９】
第５のケースでは、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定する。その結果、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesが、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って得られる。当該２つのＲＴＰパケットが属するフレームの間のV_lostFrames個のフレームでパケット紛失が発生し、フレーム全体が紛失し、当該２つのＲＴＰパケットが属するフレームでパケット紛失が発生したがフレーム全体は失われていないと判定し、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が１であり、各紛失フレーム全体における紛失ＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であり、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が（V_lostPackets−１）％V_lostFramesであると判定する。詳細については、図２Ｈおよび図２Ｉを参照されたい。
【０１２０】
４０３の具体的な実装については、本発明の上述の実施形態で提供するフレーム・タイプ検出方法の１０１を参照されたい。
【０１２１】
４０４では、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズを取得する。
【０１２２】
具体的には、パケット紛失が発生したがフレーム全体は失われていないフレームに関して、当該フレーム内の紛失ＲＴＰパケットの合計サイズを、当該フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って取得する。また、当該フレーム内の各受信ＲＴＰパケットのペイロードを取得し、各受信ＲＴＰパケットのペイロードを累積して当該フレーム内の受信されたＲＴＰパケットの合計サイズを得る。当該フレーム内の紛失ＲＴＰパケットの合計サイズと受信ＲＴＰパケットの合計サイズを加算して当該フレームのサイズを取得する。
【０１２３】
紛失フレーム全体に関して、フレームのサイズを、当該フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って直接決定する。
【０１２４】
本発明の当該実施形態では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各紛失ＲＴＰパケットのペイロードが各受信ＲＴＰパケットのペイロードに従って推定され、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数が当該２つのＲＴＰパケットのシーケンス番号に従って取得され、次いでパケットが紛失した各フレーム内の紛失ＲＴＰパケットの数が、紛失ＲＴＰパケットの総数V_lostPackets、および当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って推定される。その結果、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズが得られる。これにより、パケットが紛失したフレームのサイズを検出する有効な解決策がもたらされる。
【０１２５】
本発明の諸実施形態に従う方法のステップの全部または一部を、関連するハードウェアに指示するプログラムにより実装してもよいことは当業者には理解される。当該プログラムをコンピュータ可読記憶媒体に格納してもよい。当該プログラムを実行したとき、本発明の諸実施形態に従う方法の諸ステップが実施される。当該記憶媒体は、ＲＯＭ、ＲＡＭ、磁気ディスク、および光ディスクのような、プログラム・コードを格納できる任意の媒体であってもよい。
【０１２６】
図５は、本発明の１実施形態で提供するビデオ・ストリームのフレーム・タイプ検出装置の略構造図である。図５に示すように、当該装置は、現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得モジュール５１であって、現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置するフレーム・サイズ取得モジュール５１と、現在のビデオ・フレームのサイズと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するように構成されたフィーチャ抽出モジュール５２と、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成された閾値取得モジュール５３と、現在のビデオ・フレームの変更フィーチャ値、過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成されたタイプ決定モジュール５４と、を備える。
【０１２７】
場合によっては、フレーム・サイズ取得モジュール５１は特に、現在のビデオ・フレームでパケット紛失が生じないと判定された場合に、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して現在のビデオ・フレームのサイズを取得するように構成される。
【０１２８】
場合によっては、フレーム・サイズ取得モジュール５１は特に、パケット紛失が現在のビデオ・フレームで発生しフレーム全体が紛失していないと判定された場合に、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを累積して現在のビデオ・フレーム内の受信されたＲＴＰパケットの合計サイズを取得するように構成された受信サイズ取得ユニットと、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を、全ての受信ＲＴＰパケットのうち現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと当該紛失ＲＴＰパケットの次の隣接ＲＴＰパケットに従って推定し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得するように構成された紛失サイズ取得ユニットと、受信されたＲＴＰパケットの合計サイズと現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを加算して現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得ユニットと、を備える。
【０１２９】
さらに、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードを取得し、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０１３０】
さらに、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプに従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの両方が現在のビデオ・フレームに属すると判定された場合、または、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsであると判定するようにさらに構成される。
【０１３１】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに隣接する次のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であると判定するようにさらに構成される。
【０１３２】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間で紛失したパケットの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにシーケンス番号およびタイムスタンプに従って取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPackets％V_lostFramesであると判定するようにさらに構成される。
【０１３３】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数は１であると判定するようにさらに構成される。
【０１３４】
場合によっては、フレーム・サイズ取得モジュール５４は特に、現在のビデオ・フレーム全体が失われたと判定された場合に、全ての受信ＲＴＰパケットのうち現在のビデオ・フレームの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードを推定し、過去の隣接ＲＴＰパケットが属するビデオ・フレームと次の隣接ＲＴＰパケットが属するビデオ・フレームの間で紛失したビデオ・フレームの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにタイムスタンプおよびシーケンス番号に従って取得し、過去の隣接ＲＴＰパケットのマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets-１）／V_lostFrames）であると判定し、現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードとに従って、現在のビデオ・フレームのサイズを決定するように構成される。
【０１３５】
さらに、フィーチャ抽出モジュール５２は特に、現在のビデオ・フレームのサイズと過去の第１のビデオ・フレームのサイズの差分値の絶対値を、現在のビデオ・フレームの変更フィーチャ値として使用するように構成される。
【０１３６】
さらに、閾値取得モジュール５３は特に、当該ビデオ・フレーム・レートと現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成される。
【０１３７】
さらに、閾値取得モジュール５３は特に、過去の第２のビデオ・フレームが過去の直近Ｉフレームである場合には、現在のビデオ・フレームのＩフレーム閾値は過去の直近Ｉフレームのサイズと第１の定数の積であると判定するように構成される。当該第１の定数の値範囲は（０、１］である。
【０１３８】
場合によっては、閾値取得モジュール５３は特に、過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合に、現在のビデオ・フレームと過去の直近Ｉフレームの距離が当該ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定し、大きくない場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第２の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定するように構成される。当該第１の換算係数と当該第２の換算係数の値範囲は両方とも（０、１］であり、当該第１の換算係数は当該第２の換算係数より大きい。
【０１３９】
さらに、タイプ決定モジュール５４は特に、過去の第１のビデオ・フレームのサイズの過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合には、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するように構成される。
【０１４０】
さらに、タイプ決定モジュール５４は特に、現在のビデオ・フレームが第２のビデオ・フレームである場合には、過去の第１のビデオ・フレームがＩフレームであると判定するように構成される。
【０１４１】
場合によっては、当該第２の定数が、現在のビデオ・フレームの符号化率、フレーム・レート、および位置に従って計算される。
【０１４２】
さらに、当該装置は、過去の第１のビデオ・フレームがＩフレームであるとタイプ決定モジュール５４が判定した後に、各Ｉフレームの平均サイズを計算するように構成された平均値計算モジュールをさらに備える。
【０１４３】
さらに、現在のビデオ・フレームがビデオ・ストリームにおける最後のビデオ・フレームである場合に、タイプ決定モジュール５４はさらに、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するように構成される。当該第３の定数は０より大きい。
【０１４４】
さらに、フレーム・サイズ取得モジュール５１は、当該第１のビデオ・フレームのサイズを取得するようにさらに構成される。
【０１４５】
フィーチャ抽出モジュール５２はさらに、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定するように構成される。当該第４の定数の値範囲は（０、１］である。
【０１４６】
閾値取得モジュール５３はさらに、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するように構成される。
【０１４７】
当該実施形態の具体的な実装については、本発明の上述の実施形態で提供したビデオ・フレーム・タイプ検出方法を参照されたい。本発明の当該実施形態では、現在のビデオ・フレームと過去の第１のビデオ・フレームのサイズに従って現在のビデオ・フレームの変更フィーチャ値が取得され、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って現在のビデオ・フレームのＩフレーム閾値が取得され、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、および現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかが判定される。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、過去の第１のビデオ・フレームの前の１つのビデオ・フレーム、即ち、過去の第２のビデオ・フレームのみを、過去の第１のビデオ・フレームのフレーム・タイプの検出中に考慮するようにすることが可能である。これにより既存のビデオ・フレーム・タイプ検出における複数の過去のビデオ・フレームに基づく計算に起因する高い複雑度と長い遅延の問題が解決され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【０１４８】
図６は、本発明の１実施形態が提供するビデオ・ストリームの別のフレーム・タイプ検出装置の略構造図である。図６に示すように、当該装置は、現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得モジュール６１であって、現在のビデオ・フレームはビデオ・ストリームの第１のビデオ・フレームの後に位置するフレーム・サイズ取得モジュール６１と、現在のビデオ・フレームのサイズと少なくとも２つの過去のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得するように構成されたフィーチャ抽出モジュール６２と、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成された閾値取得モジュール６３と、現在のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、および当該少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成されたタイプ決定モジュール６４と、を備える。
【０１４９】
場合によっては、フレーム・サイズ取得モジュール６１は特に、現在のビデオ・フレームでパケット紛失が生じないと判定された場合に、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して現在のビデオ・フレームのサイズを取得するように構成される。
【０１５０】
場合によっては、フレーム・サイズ取得モジュール６１は特に、パケット紛失が現在のビデオ・フレームで発生しフレーム全体が紛失していないと判定された場合に、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを累積して現在のビデオ・フレーム内の受信されたＲＴＰパケットの合計サイズを取得するように構成された受信サイズ取得ユニットと、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を、全ての受信ＲＴＰパケットのうち現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと当該紛失ＲＴＰパケットの次の隣接ＲＴＰパケットに従って推定し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得するように構成された紛失サイズ取得ユニットと、受信されたＲＴＰパケットの合計サイズと現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを加算して現在のビデオ・フレームのサイズを取得するように構成されたフレーム・サイズ取得ユニットと、を備える。
【０１５１】
さらに、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードを取得し、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０１５２】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプに従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの両方が現在のビデオ・フレームに属すると判定された場合、または、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsであると判定するようにさらに構成される。
【０１５３】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに隣接する次のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であると判定するようにさらに構成される。
【０１５４】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにシーケンス番号およびタイムスタンプに従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間で紛失したパケットの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPackets％V_lostFramesであると判定するようにさらに構成される。
【０１５５】
場合によっては、当該紛失サイズ取得ユニットは特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数は１であると判定するようにさらに構成される。
【０１５６】
場合によっては、フレーム・サイズ取得モジュール６１は特に、現在のビデオ・フレーム全体が紛失したと判定された場合に、全ての受信ＲＴＰパケットのうち現在のビデオ・フレームの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードを推定し、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにタイムスタンプおよびシーケンス番号に従って、過去の隣接ＲＴＰパケットが属するビデオ・フレームと次の隣接ＲＴＰパケットが属するビデオ・フレームの間で紛失したビデオ・フレームの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを取得し、過去の隣接ＲＴＰパケットのマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であると判定し、現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードとに従って、現在のビデオ・フレームのサイズを取得するように構成される。
【０１５７】
さらに、フィーチャ抽出モジュール６２は特に、現在のビデオ・フレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の平均値の絶対値または現在のフレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の絶対値の平均値を、現在のビデオ・フレームの変更フィーチャ値として使用するように構成される。
【０１５８】
さらに、閾値取得モジュール６３は特に、当該ビデオ・フレーム・レートと現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って、現在のビデオ・フレームのＩフレーム閾値を取得するように構成される。
【０１５９】
場合によっては、閾値取得モジュール６３は特に、過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームが過去の直近Ｉフレームである場合に、現在のビデオ・フレームのＩフレーム閾値は過去の直近Ｉフレームのサイズと第１の定数の積であると判定するように構成される。当該第１の定数の値範囲は（０、１］である。
【０１６０】
場合によっては、閾値取得モジュール６３は特に、過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合に、現在のビデオ・フレームと過去の直近Ｉフレームの距離が当該ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定し、大きくない場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第２の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定するように構成される。当該第１の換算係数と当該第２の換算係数の値範囲は両方とも（０、１］であり、当該第１の換算係数は当該第２の換算係数より大きい。
【０１６１】
さらに、タイプ決定モジュール６４は特に、過去の第１のビデオ・フレームのサイズの過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合に、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するか、または、過去の第１のビデオ・フレームのサイズの過去の第１のビデオ・フレームより前の少なくとも２つの過去のビデオ・フレームのサイズの平均値に対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合に、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するように構成される。
【０１６２】
さらに、タイプ決定モジュール６４は特に、現在のビデオ・フレームがビデオ・ストリームの第２のビデオ・フレームである場合には、過去の第１のビデオ・フレームがＩフレームであると判定するようにさらに構成される。
【０１６３】
場合によっては、当該第２の定数が、現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決定される。
【０１６４】
さらに、当該装置は、過去の第１のビデオ・フレームがＩフレームであるとタイプ決定モジュール６４が判定した後に、各Ｉフレームの平均サイズを計算するように構成された平均値計算モジュールをさらに備える。
【０１６５】
さらに、現在のビデオ・フレームが当該ビデオ・ストリームにおける最後のビデオ・フレームである場合に、タイプ決定モジュール６４はさらに、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するように構成される。当該第３の定数は０より大きい。
【０１６６】
場合によっては、フレーム・サイズ取得モジュール６１はさらに、当該第１のビデオ・フレームのサイズを取得するように構成され、フィーチャ抽出モジュール６２はさらに、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定するように構成される。当該第４の定数の値範囲は（０、１］である。閾値取得モジュール６３はさらに、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するように構成される。
【０１６７】
本発明の当該実施形態では、現在のビデオ・フレームと少なくとも２つの過去のビデオ・フレームのサイズに従って現在のビデオ・フレームの変更フィーチャ値を取得し、現在のビデオ・フレームのＩフレーム閾値を現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って取得し、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームと少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定する。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【０１６８】
図７は、本発明の１実施形態で提供するフレーム・サイズ検出装置の略構造図である。図７に示すように、当該装置は、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各受信ＲＴＰパケットのペイロードを取得し、各紛失ＲＴＰパケットのペイロードを各受信ＲＴＰパケットのペイロードに従って推定するように構成されたペイロード推定モジュール７１と、当該２つのＲＴＰパケットのシーケンス番号に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得するように構成された総損失数取得モジュール７２と、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を推定するように構成された各紛失数推定モジュール７３と、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズを取得するように構成されたフレーム・サイズ検出モジュール７４と、を備える。
【０１６９】
さらに、ペイロード推定モジュール７１は特に、当該２つのＲＴＰパケットのペイロードの平均値に従って各紛失ＲＴＰパケットのペイロードを推定するか、または、紛失ＲＴＰパケットより前に受信した複数のＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０１７０】
さらに、各紛失数推定モジュール７３は特に、当該２つのＲＴＰパケットのタイムスタンプに従って当該２つのＲＴＰパケットが同一のフレームに属すると判定された場合、または、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定された場合に、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数は紛失ＲＴＰパケットの総数V_lostPacketsに等しいと判定するように構成される。
【０１７１】
場合によっては、各紛失数推定モジュール７３は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定された場合に、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であり、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数がint（V_lostPackets／２）であると判定するように構成される。
【０１７２】
場合によっては、各紛失数推定モジュール７３は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し、当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定された場合に、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesを、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って決定し、各紛失フレーム全体における紛失ＲＴＰパケットの数はint（V_lostPackets／V_lostFrames）であり、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はV_lostPackets％V_lostFramesであると判定するように構成される。
【０１７３】
場合によっては、各紛失数推定モジュール７３は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し、当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定された場合に、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesを、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って決定し、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が１であり、各紛失フレーム全体における紛失ＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であり、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が（V_lostPackets−１）％V_lostFramesであると判定するように構成される。
【０１７４】
当該実施形態の具体的な実装については、本発明の上述の実施形態で提供したフレーム・サイズ検出方法を参照されたい。本発明の当該実施形態では、２つの受信されたＲＴＰパケットの間でパケット紛失が発生したと判定された場合に、各紛失ＲＴＰパケットのペイロードが各受信ＲＴＰパケットのペイロードに従って推定され、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数が当該２つのＲＴＰパケットのシーケンス番号に従って取得され、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数が推定される。その結果、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズが得られる。これにより、パケットが紛失したフレームのサイズを検出する有効な解決策がもたらされる。
【０１７５】
図８は、本発明の１実施形態で提供するビデオ・ストリームの別のフレーム・タイプ検出装置の略構造図である。図８に示すように、装置８００は、命令を格納するように構成されたメモリ８１と、当該メモリに接続され、メモリ８１に格納された命令を実行するように構成されたプロセッサ８２を備える。プロセッサ８２は、ビデオ・ストリームの第１のビデオ・フレームの後に位置する現在のビデオ・フレームのサイズを取得し、現在のビデオ・フレームのサイズと現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得し、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得し、現在のビデオ・フレームの変更フィーチャ値、過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成される。
【０１７６】
場合によっては、プロセッサ８２は特に、現在のビデオ・フレームでパケット紛失が生じないと判定された場合に、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して現在のビデオ・フレームのサイズを取得するように構成される。
【０１７７】
場合によっては、プロセッサ８２は特に、パケット紛失が現在のビデオ・フレームで発生しフレーム全体が紛失していないと判定された場合に、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを累積して現在のビデオ・フレーム内の受信されたＲＴＰパケットの合計サイズを取得し、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を、全ての受信ＲＴＰパケットのうち現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと当該紛失ＲＴＰパケットの次の隣接ＲＴＰパケットに従って推定し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得し、受信されたＲＴＰパケットの合計サイズと現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを加算して現在のビデオ・フレームのサイズを取得するように構成される。
【０１７８】
さらに、プロセッサ８２は特に、全ての受信されたＲＴＰパケットのうち、現在のビデオ・フレーム内の、過去の隣接ＲＴＰパケットのペイロードと各紛失ＲＴＰパケットの次の隣接ＲＴＰパケットのペイロードを取得し、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０１７９】
さらに、プロセッサ８２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプに従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの両方が現在のビデオ・フレームに属すると判定された場合、または、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsであると判定するようにさらに構成される。
【０１８０】
場合によっては、プロセッサ８２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに隣接する次のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であると判定するようにさらに構成される。
【０１８１】
場合によっては、プロセッサ８２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間で紛失したパケットの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにシーケンス番号およびタイムスタンプに従って取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPackets％V_lostFramesであると判定するようにさらに構成される。
【０１８２】
場合によっては、プロセッサ８２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数は１であると判定するようにさらに構成される。
【０１８３】
場合によっては、プロセッサ８２は特に、現在のビデオ・フレーム全体が紛失したと判定された場合に、全ての受信ＲＴＰパケットのうち現在のビデオ・フレームの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードを推定し、過去の隣接ＲＴＰパケットが属するビデオ・フレームと次の隣接ＲＴＰパケットが属するビデオ・フレームの間で紛失したビデオ・フレームの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにタイムスタンプおよびシーケンス番号に従って取得し、過去の隣接ＲＴＰパケットのマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であると判定し、現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードとに従って、現在のビデオ・フレームのサイズを決定するように構成される。
【０１８４】
さらに、プロセッサ８２は特に、現在のビデオ・フレームのサイズと過去の第１のビデオ・フレームのサイズの差分値の絶対値を、現在のビデオ・フレームの変更フィーチャ値として使用するようにさらに構成される。
【０１８５】
さらに、プロセッサ８２は特に、現在のビデオ・フレームのＩフレーム閾値を、当該ビデオ・フレーム・レートと現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って取得するようにさらに構成される。
【０１８６】
さらに、プロセッサ８２は特に、過去の第２のビデオ・フレームが過去の直近Ｉフレームである場合には、現在のビデオ・フレームのＩフレーム閾値が過去の直近Ｉフレームのサイズと第１の定数の積であると判定するように構成される。当該第１の定数の値範囲は（０、１］である。
【０１８７】
場合によっては、プロセッサ８２は特に、過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合に、現在のビデオ・フレームと過去の直近Ｉフレームの距離が当該ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定し、大きくない場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第２の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定するように構成される。当該第１の換算係数と当該第２の換算係数の値範囲は両方とも（０、１］であり、当該第１の換算係数は当該第２の換算係数より大きい。
【０１８８】
さらに、プロセッサ８２は特に、過去の第１のビデオ・フレームのサイズの過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合に、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するようにさらに構成される。
【０１８９】
さらに、プロセッサ８２は特に、現在のビデオ・フレームが第２のビデオ・フレームである場合に、過去の第１のビデオ・フレームがＩフレームであると判定するように構成される。
【０１９０】
場合によっては、当該第２の定数を、現在のビデオ・フレームの符号化率、フレーム・レート、および位置に従って決定する。
【０１９１】
さらに、プロセッサ８２は、過去の第１のビデオ・フレームがＩフレームであると判定した後に、各Ｉフレームの平均サイズを計算するようにさらに構成される。
【０１９２】
さらに、現在のビデオ・フレームが当該ビデオ・ストリームにおける最後のビデオ・フレームである場合に、プロセッサ８２はさらに、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するように構成される。当該第３の定数は０より大きい。
【０１９３】
さらに、プロセッサ８２は、当該第１のビデオ・フレームのサイズを取得し、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定し、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するようにさらに構成される。当該第４の定数の値範囲は（０、１］である。
【０１９４】
当該実施形態の具体的な実装については、本発明の上述の実施形態で提供したビデオ・フレーム・タイプ検出方法を参照されたい。本発明の当該実施形態では、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームと過去の第１のビデオ・フレームのサイズに従って取得され、現在のビデオ・フレームのＩフレーム閾値が現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って取得され、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、および現在のビデオ・フレームのサイズ、過去の第１のビデオ・フレームのサイズ、および過去の第２のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定する。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、過去の第１のビデオ・フレームのフレーム・タイプの検出中に、過去の第１のビデオ・フレームより前の１つのビデオ・フレームのみ、即ち、過去の第２のビデオ・フレームのみが考慮される。これにより既存のビデオ・フレーム・タイプ検出における複数の過去のビデオ・フレームに基づく計算に起因する高い複雑度と長い遅延の問題が解決され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【０１９５】
図９は、本発明の１実施形態で提供するビデオ・ストリームのさらに別のフレーム・タイプ検出装置の略構造図である。図９に示すように、装置９００は、命令を格納するように構成されたメモリ９１と、当該メモリに接続され、メモリ９１に格納された命令を実行するように構成されたプロセッサ９２を備える。プロセッサ９２は、ビデオ・ストリームの第１のビデオ・フレームの後に位置する現在のビデオ・フレームのサイズを取得し、現在のビデオ・フレームのサイズと少なくとも２つの過去のビデオ・フレームのサイズに従って、現在のビデオ・フレームの変更フィーチャ値を取得し、現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って、現在のビデオ・フレームのＩフレーム閾値を取得し、現在のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームに隣接する過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、現在のビデオ・フレームのサイズ、および当該少なくとも２つの過去のビデオ・フレームのサイズに従って、過去の第１のビデオ・フレームがＩフレームかどうかを判定するように構成される。
【０１９６】
場合によっては、プロセッサ９２は特に、現在のビデオ・フレームでパケット紛失が生じないと判定された場合に、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各ＲＴＰパケットのペイロードを累積して現在のビデオ・フレームのサイズを取得するように構成される。
【０１９７】
場合によっては、プロセッサ９２は特に、パケット紛失が現在のビデオ・フレームで発生しフレーム全体が紛失していないと判定された場合に、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを取得し、現在のビデオ・フレーム内の各受信ＲＴＰパケットのペイロードを累積して現在のビデオ・フレーム内の受信されたＲＴＰパケットの合計サイズを取得し、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数を、全ての受信ＲＴＰパケットのうち現在のビデオ・フレーム内の紛失ＲＴＰパケットの過去の隣接ＲＴＰパケットと当該紛失ＲＴＰパケットの次の隣接ＲＴＰパケットに従って推定し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを、各紛失ＲＴＰパケットのペイロードと現在のビデオ・フレーム内の紛失ＲＴＰパケットの数に従って取得し、受信されたＲＴＰパケットの合計サイズと現在のビデオ・フレーム内の紛失ＲＴＰパケットの合計サイズを加算して現在のビデオ・フレームのサイズを取得するように構成される。
【０１９８】
さらに、プロセッサ９２は特に、全ての受信されたＲＴＰパケットのうち、現在のビデオ・フレームにおける、過去の隣接ＲＴＰパケットのペイロードと紛失ＲＴＰパケットの次の隣接ＲＴＰパケットのペイロードを取得し、過去の隣接ＲＴＰパケットのペイロードと次の隣接ＲＴＰパケットのペイロードの平均値に従って、各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０１９９】
場合によっては、プロセッサ９２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプに従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの両方が現在のビデオ・フレームに属すると判定された場合、または、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の第１のビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPacketsであると判定するようにさらに構成される。
【０２００】
場合によっては、プロセッサ９２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが現在のビデオ・フレームに隣接する次のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのシーケンス番号に従って、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であると判定するようにさらに構成される。
【０２０１】
場合によっては、プロセッサ９２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、次の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットの間で紛失したパケットの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにシーケンス番号およびタイムスタンプに従って取得し、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数がV_lostPackets％V_lostFramesであると判定するようにさらに構成される。
【０２０２】
場合によっては、プロセッサ９２は特に、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、過去の隣接ＲＴＰパケットが現在のビデオ・フレームに属し、次の隣接ＲＴＰパケットが属するビデオ・フレームと現在のビデオ・フレームが不連続であり、過去の隣接ＲＴＰパケットが現在のビデオ・フレーム内の最後のＲＴＰパケットでないと判定された場合に、現在のビデオ・フレーム内の紛失ＲＴＰパケットの数は１であると判定するようにさらに構成される。
【０２０３】
場合によっては、プロセッサ９２は特に、現在のビデオ・フレーム全体が紛失したと判定された場合に、全ての受信ＲＴＰパケットのうち現在のビデオ・フレームの過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットに従って、各紛失ＲＴＰパケットのペイロードを推定し、過去の隣接ＲＴＰパケットが属するビデオ・フレームと次の隣接ＲＴＰパケットが属するビデオ・フレームの間で紛失したビデオ・フレームの数V_lostFramesおよび紛失ＲＴＰパケットの総数V_lostPacketsを、過去の隣接ＲＴＰパケットと次の隣接ＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、ならびにタイムスタンプおよびシーケンス番号に従って取得し、過去の隣接ＲＴＰパケットのマーカ・ビットに従って、過去の隣接ＲＴＰパケットが過去の隣接ＲＴＰパケットが属するビデオ・フレーム内の最後のＲＴＰパケットであると判定された場合に、現在のビデオ・フレーム内のＲＴＰパケットの数がint（V_lostPackets／V_lostFrames）であると判定し、そうでない場合には、現在のビデオ・フレーム内のＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であると判定し、現在のビデオ・フレーム内のＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードとに従って、現在のビデオ・フレームのサイズを取得するように構成される。
【０２０４】
さらに、プロセッサ９２は特に、現在のビデオ・フレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の平均値の絶対値または現在のフレームのサイズと当該少なくとも２つの過去のビデオ・フレームのサイズの差分値の絶対値の平均値を、現在のビデオ・フレームの変更フィーチャ値として使用するようにさらに構成される。
【０２０５】
さらに、プロセッサ９２は特に、現在のビデオ・フレームのＩフレーム閾値を、当該ビデオ・フレーム・レートと現在のビデオ・フレームおよび過去の直近Ｉフレームの距離とに従って取得するようにさらに構成される。
【０２０６】
場合によっては、プロセッサ９２は特に、過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームが過去の直近Ｉフレームである場合に、現在のビデオ・フレームのＩフレーム閾値は過去の直近Ｉフレームのサイズと第１の定数の積であると判定するように構成される。当該第１の定数の値範囲は（０、１］である。
【０２０７】
場合によっては、プロセッサ９２は特に、過去の第１のビデオ・フレームに隣接する過去の第２のビデオ・フレームが過去の直近Ｉフレームでない場合に、現在のビデオ・フレームと過去の直近Ｉフレームの距離が当該ビデオ・フレーム・レートより大きいかどうかを判定し、大きい場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第１の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定し、大きくない場合には、過去の第１のビデオ・フレームのＩフレーム閾値と第２の換算係数の積を現在のビデオ・フレームのＩフレーム閾値として決定するように構成される。当該第１の換算係数と当該第２の換算係数の値範囲は両方とも（０、１］であり、当該第１の換算係数は当該第２の換算係数より大きい。
【０２０８】
さらに、プロセッサ９２は特に、過去の第１のビデオ・フレームのサイズの過去の第２のビデオ・フレームのサイズに対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合に、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するか、または、過去の第１のビデオ・フレームのサイズの過去の第１のビデオ・フレームより前の少なくとも２つの過去のビデオ・フレームのサイズの平均値に対する比または過去の第１のビデオ・フレームのサイズの現在のビデオ・フレームのサイズに対する比が第２の定数より大きく、現在のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きく、過去の第１のビデオ・フレームの変更フィーチャ値が現在のビデオ・フレームのＩフレーム閾値より大きい場合に、過去の第１のビデオ・フレームがＩフレームであると判定し、そうでない場合には、過去の第１のビデオ・フレームがＩフレームでないと判定するようにさらに構成される。
【０２０９】
さらに、プロセッサ９２は、特に、現在のビデオ・フレームがビデオ・ストリームの第２のビデオ・フレームである場合には、過去の第１のビデオ・フレームがＩフレームであると判定するようにさらに構成される。
【０２１０】
場合によっては、当該第２の定数は、現在のビデオ・フレームの符号化率、ビデオ・フレーム・レート、および位置に従って決定される。
【０２１１】
さらに、プロセッサ９２はさらに、過去の第１のビデオ・フレームがＩフレームであると判定した後に、各Ｉフレームの平均サイズを計算するように構成される。
【０２１２】
さらに、現在のビデオ・フレームが当該ビデオ・ストリームにおける最後のビデオ・フレームである場合に、プロセッサ９２は特に、現在のビデオ・フレームのサイズの各Ｉフレームの平均サイズに対する比が第３の定数より大きい場合に、現在のビデオ・フレームがＩフレームであると判定し、そうでない場合には、現在のビデオ・フレームがＩフレームでないと判定するようにさらに構成される。当該第３の定数は０より大きい。
【０２１３】
場合によっては、プロセッサ９２はさらに、当該第１のビデオ・フレームのサイズを取得し、当該第１のビデオ・フレームの変更フィーチャ値が当該第１のビデオ・フレームのサイズと第４の定数の積であると判定し、当該第１のビデオ・フレームのＩフレーム閾値が当該第１のビデオ・フレームの変更フィーチャ値に等しいと判定するように構成される。当該第４の定数の値範囲は（０、１］である。
【０２１４】
本発明の当該実施形態では、現在のビデオ・フレームの変更フィーチャ値を現在のビデオ・フレームと少なくとも２つの過去のビデオ・フレームのサイズに従って取得し、現在のビデオ・フレームのＩフレーム閾値を現在のビデオ・フレームのビデオ・フレーム・レートと位置に従って取得し、現在のビデオ・フレームの変更フィーチャ値および過去の第１のビデオ・フレームの変更フィーチャ値、現在のビデオ・フレームのＩフレーム閾値、および現在のビデオ・フレームと少なくとも２つの過去のビデオ・フレームのサイズに従って過去の第１のビデオ・フレームがＩフレームかどうかを判定する。これにより、十分かつ有効なフレーム・タイプ検出方法が提供され、ビデオ・フレーム・レートの影響が完全に考慮され、検出の結果がより正確になる。
【０２１５】
図１０は、本発明の別の１実施形態で提供するフレーム・サイズ検出装置の略構造図である。図１０に示すように、装置１０００は、命令を格納するように構成されたメモリ１１と、当該メモリに接続されメモリ１１に格納された命令を実行するように構成されたプロセッサ１２を備える。プロセッサ１２は、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各受信ＲＴＰパケットのペイロードを取得し、各受信ＲＴＰパケットのペイロードに従って各紛失ＲＴＰパケットのペイロードを推定し、当該２つのＲＴＰパケットのシーケンス番号に従って、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数V_lostPacketsを取得し、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を推定し、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズを取得するように構成される。
【０２１６】
さらに、プロセッサ１２は特に、当該２つのＲＴＰパケットの当該ペイロードの平均値に従って各紛失ＲＴＰパケットのペイロードを推定するか、または、紛失ＲＴＰパケットより前に受信した複数のＲＴＰパケットのペイロードの平均値に従って各紛失ＲＴＰパケットのペイロードを推定するように構成される。
【０２１７】
さらに、プロセッサ１２は特に、当該２つのＲＴＰパケットのタイムスタンプに従って、当該２つのＲＴＰパケットが同一のフレームに属すると判定された場合、または、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定された場合に、当該後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数は紛失ＲＴＰパケットの総数V_lostPacketsに等しいと判定するようにさらに構成される。
【０２１８】
場合によっては、プロセッサ１２は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが２つの連続するフレームに別々に属し前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定された場合に、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）＋V_lostPackets％２であり、当該後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はint（V_lostPackets／２）であると判定するようにさらに構成される。
【０２１９】
場合によっては、プロセッサ１２は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し、当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットは当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットであると判定された場合に、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesを決定し、各紛失フレーム全体における紛失ＲＴＰパケットの数はint（V_lostPackets／V_lostFrames）であり、当該後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数はV_lostPackets％V_lostFramesであると判定するようにさらに構成される。
【０２２０】
場合によっては、プロセッサ１２は特に、当該２つのＲＴＰパケットのタイムスタンプとマーカ・ビットに従って、当該２つのＲＴＰパケットが異なるフレームに属し、当該２つのＲＴＰパケットが属するフレームが不連続であり、前者のＲＴＰパケットが当該前者のＲＴＰパケットが属するフレーム内の最後のＲＴＰパケットではないと判定された場合に、当該２つのＲＴＰパケットのビデオ・フレーム・レート、ＲＴＰパケットのクロック速度、およびタイムスタンプに従って、当該２つのＲＴＰパケットが属するフレームの間の紛失フレーム全体の数V_lostFramesを決定し、当該前者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が１であり、各紛失フレーム全体における紛失ＲＴＰパケットの数がint（（V_lostPackets−１）／V_lostFrames）であり、後者のＲＴＰパケットが属するフレーム内の紛失ＲＴＰパケットの数が（V_lostPackets−１）％V_lostFramesであると判定するようにさらに構成される。
【０２２１】
当該実施形態の具体的な実装については、本発明の上述の実施形態で提供したフレーム・サイズ検出方法を参照されたい。本発明の当該実施形態では、２つの受信されたＲＴＰパケットの間にパケット紛失が発生したと判定された場合に、各紛失ＲＴＰパケットのペイロードを各受信ＲＴＰパケットのペイロードに従って推定し、当該２つのＲＴＰパケットの間の紛失ＲＴＰパケットの総数を当該２つのＲＴＰパケットのシーケンス番号に従って取得し、紛失ＲＴＰパケットの総数V_lostPackets、ならびに当該２つのＲＴＰパケットのタイムスタンプおよびマーカ・ビットに従って、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数を推定する。その結果、パケットが紛失した各フレーム内の紛失ＲＴＰパケットの数と各紛失ＲＴＰパケットのペイロードに従って、パケットが紛失した各フレームのサイズが得られる。これにより、パケットが紛失したフレームのサイズを検出する有効な解決策がもたらされる。
【０２２２】
最後に、以上の諸実施形態は本発明の技術的解決策を説明するためのものにすぎず、本発明を限定するものではないことに留意されたい。本発明を以上の諸実施形態を参照して詳細に説明したが、本発明の諸実施形態の技術的解決策の趣旨と範囲から逸脱することなく、当業者が以上の諸実施形態で説明した技術的解決策に修正を加え、本発明の幾つかの技術的特徴に均等な置換えを行うことができることは当業者には理解される。
【符号の説明】
【０２２３】
１１  メモリ
１２  プロセッサ
５１  フレーム・サイズ取得モジュール
５２  フィーチャ抽出モジュール
５３  閾値取得モジュール
５４  タイプ決定モジュール
６１  フレーム・サイズ取得モジュール
６２  フィーチャ抽出モジュール
６３  閾値取得モジュール
６４  タイプ決定モジュール
７１  ペイロード推定モジュール
７２  総損失数取得モジュール
７３  各紛失数推定モジュール
７４  フレーム・サイズ検出モジュール
８１  メモリ
８２  プロセッサ
９１  メモリ
９２  プロセッサ
【図１】
0005994193.tif 000006
【図３】
0005994193.tif 000007
【図４】
0005994193.tif 000008
【図５】
0005994193.tif 000009
【図６】
0005994193.tif 000010
【図７】
0005994193.tif 000011
【図８】
0005994193.tif 000012
【図９】
0005994193.tif 000013
【図１０】
0005994193.tif 000014
【図２Ａ】
0005994193.tif 000015
【図２Ｂ】
0005994193.tif 000016
【図２Ｃ】
0005994193.tif 000017
【図２Ｄ】
0005994193.tif 000018
【図２Ｅ】
0005994193.tif 000019
【図２Ｆ】
0005994193.tif 000020
【図２Ｇ】
0005994193.tif 000021
【図２Ｈ】
0005994193.tif 000022
【図２Ｉ】
0005994193.tif 000023