(57)【特許請求の範囲】
【請求項１】
映像ストリームで複数の映像フレームのピクチャグループ構造、GoP、のタイプを、それらのフレームタイプを推定することにより推定するための、装置によって実行される方法であって、
a)フレームサイズの配列を取得するために、前記映像ストリームを搬送するトランスポート層の特徴を活用することにより、最初のイントラフレーム、Iフレームに対して後続のあらゆる映像フレームのバイト単位のフレームサイズを捕捉するステップ、
b)いくつかのフレームの後で、ステップa)で取得されたフレームサイズの前記配列を、0および1の配列に変換するステップであって、0が、双方向フレーム、Bフレーム、と推測されるような、小さなフレームサイズを表し、1が、予測フレーム、Pフレーム、と推測されるような、大きなフレームサイズを表すステップ、
c)分析されるべき前記GoP構造に特徴的である、特定の反復される短い基本的なバイナリパターンを包含する、ステップb)で取得されたフレームサイズの前記バイナリ化した配列を、いくつかの既定の短い基本的なバイナリパターンとマッチングするステップであって、バイナリの前記既定のパターンは、考慮されるべきすべてのGoP構造を表わすステップ、
d)ステップc)での前記マッチングの結果を、単一のスコア値を形成するために変換するステップ、ならびに、
e)既定のメトリックによって、最良のスコア値を有する、バイナリの前記いくつかの既定のパターンの具体的なパターンを決定するステップ
を含む方法。
【請求項２】
ステップa)で、前記ビットストリームでの映像フレームの境界が、前記トランスポート層のある決まったタイムスタンプの変化を察知することによって、および、新しいフレームを合図し、イントラフレームを他のフレームから判断するために使用される、ヘッダ構造でのある決まったビットによってのいずれかで検出される、請求項1に記載の方法。
【請求項３】
ステップb)で、前記いくつかのフレームが、次のIフレームまでのすべてのフレームを含む、請求項1または2に記載の方法。
【請求項４】
ステップb)で、前記連続的なフレームサイズのバイナリへの前記変換が、参照値を使用する処理を含み、
前記参照値が、フレームサイズの現在の配列における複数の配列要素の値に依存する、請求項1から3のいずれかに記載の方法。
【請求項５】
前記参照値が、さらに、フレームサイズの前に捕捉された配列における複数の配列要素の値に依存する、請求項4に記載の方法。
【請求項６】
前記既定の短い基本的なバイナリパターンが、フレームベースの符号化、フィールドベースの符号化、オープンGoPの符号化、またはクローズドGoPの符号化での、異なる数の連続するBフレームに対して可能なGoP構造を表わす、請求項1から5のいずれかに記載の方法。
【請求項７】
ステップc)での前記マッチングに対して、前記既定の短い基本的なバイナリパターンが、最後の基本的なパターンの可能な打切りを伴って反復され、最終的に、前記一連の反復された基本的なパターンが、フレームサイズの前記配列から取得される前記一連のバイナリ化したフレームサイズと同じ長さを有する、請求項1から6のいずれかに記載の方法。
【請求項８】
ステップc)で、前記マッチングが、要素に関する排他的norにより、または要素に関する排他的or演算により実行され、ステップd)で、あらゆる排他的norまたは排他的orの結果が、前記スコア値を形成するために合計され、ステップe)で、前記スコア値メトリックが、それぞれ最大値または最小値に対応する、請求項1から7のいずれかに記載の方法。
【請求項９】
ステップe)で、前記最良のスコア値を有する前記パターンに対して、関連するGoPパターン、フィールド/フレーム状態、およびオープンGoP/クローズドGoP状態が、現在の一連の分析されたフレームの前記GoP構造に対する推定結果として選択される、請求項1から8のいずれかに記載の方法。
【請求項１０】
後続のGoPの前記GoP構造の推定のために、フレームサイズの新しい配列が前記後続のGoPの各々に対して捕捉されるか、フレームサイズの現在および前の配列の要素の任意の種類の平均が使用されているかのいずれかである、請求項1から9のいずれかに記載の方法。
【請求項１１】
前記GoPパターンの前記推定の後で、さらなるフレームタイプの分類が実行され、2つのPフレーム間の連続するBフレームのあらゆる部分集合が、非参照Bフレームを包含するのみであり得る要素に対する、参照Bフレームを包含し得る前記部分集合での要素に関する、ステップa)の出力によるフレームサイズの関係が、参照Bフレームは非参照Bフレームより平均して大きいと推測されるので、1より十分に大きいしきい値より大きいかどうかに関してさらに検査され、これが、フレームサイズの前記配列でのBフレームの、統計的に有意な数の前記部分集合に対して事実であるならば、前記フレームは、参照Bフレームであると推測され、前記推定されたGoP構造は、いわゆる階層符号化シーケンスのGoP構造であると推測される、請求項1から10のいずれかに記載の方法。
【請求項１２】
前記推定されたGoP構造を、後に続くGoP構造に対する推定物として使用するステップ、および、この推定されたGoP構造を、パケット損失による映像フレーム損失を検出するための、または、失われた、もしくは存在するフレームをそれらの特定のフレームタイプでラベル付けすることに対しての助力として使用するステップをさらに含む、請求項8に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
映像ストリームで複数の映像フレームのピクチャグループ構造のタイプを推定するための方法に関する。
【背景技術】
【０００２】
数多くのTV配信サービスの中で、IPTV(インターネットプロトコルTV)は、ますます重要になりつつあり、アナログまたは非パケットベースの伝送方法をますます置換しつつある。コンテンツプロバイダおよび顧客の両方に対するブロードキャストプロバイダの主要な責務は、そのサービスの品質を維持することである。大きなIPTVネットワークでは、悪化された音声および/または映像の品質の発生の場合に警報を発する、完全に自動化された品質監視プローブのみが、この要件を充足し得る。これらの監視プローブは、エンドユーザが知覚することになる主観品質を推定可能であるべきである。映像ビットストリームからの客観的な測定結果を、いわゆる「平均オピニオン評点(mean opinion score)」(MOS)値に変換するいくつかのモデルが、存在する、または開発中である。このMOS値を生じさせるために使用され得る客観的な測定カテゴリは、例えば、監視される映像のビットレートおよびフレームレートを含むことになる。
【０００３】
(ほとんどの場合、ネットワーク内のある点での一時性の過負荷によって)IPパケットが失われる可能性があることは、IPネットワークの固有の特性である。これらの損失の一部は、顧客にはほとんど不可視であり得る一方で、他のものは、映像品質の重度の悪化を引き起こす場合がある。これらの損失に備えた手段が、IPTV配信システムの部分である場合でも、これらの手段は、100%の有効性を決して保証し得ない。例えば、再送要求が非常に長い時間がかかる場合があり、または、再送されるパケット自体が失われる可能性がある。
【０００４】
このように、断片的なビットストリームがエンドユーザのデバイスに伝送される、非ゼロの確率が常に存在する。その結果、これらは、再構成された映像または音声で、可視または可聴の悪化を引き起こす場合がある。したがって、測定カテゴリは、損失に対する確率を表わすための値をさらに含み得る。そのような値は、「パケット損失レート」および「損失イベントのバースト(burstiness of loss events)」を表わすものを含み得る。
【０００５】
パケット損失が、不可視となるか、それとも反対に、長期間の時間の間でさえ強く可視となるかを推定可能であるために、監視されるビットストリームのより多くの特性を捕捉することが必要となる。これらの追加的な特性の最も重要なものが、すべてのフレーム、およびとりわけ損失により影響を受けたフレームの「フレームタイプ」である。「フレームタイプ」特性に対する可能な値には、(下記でIフレームと呼ばれる)「イントラフレーム」もしくは「キーフレーム」、(下記でPフレームと呼ばれる)「予測フレーム」、ならびに(下記でBフレームと呼ばれる)「双方向フレーム」がある。Iフレームのみが、いかなる前のフレームの知識がなくとも復号化され得ることはよく知られている。反対に、Pフレームは、「参照フレーム」と呼ばれる1つまたは複数の先行するものに常に依存する、というのは、Pフレームのために伝送される情報は主に、それが描出する映像フレームとその参照との間の差分からなるためである。したがって、Iフレームまたはその連続するPフレーム内のパケット損失は、あらゆる後続のフレームに搬送される、というのは、損失がもたらされるIフレームおよびPフレームは一般に、後続のフレームに対して参照として働くからである。したがって、これらのフレームは、それら自体が少しも損失を包含しない場合でも悪化される。
【０００６】
この機構によって、単一のパケット損失エラーが、次のエラーのないIフレームが発生するまで、映像シーケンスの長い部分の間じゅう残り続ける場合がある。したがって、Pフレームでの、およびとりわけIフレームでのエラーは、非常に高い可視性を有し得る。
【０００７】
同じ参照フレーム機構はBフレームにも当てはまるが、Bフレームは一般に、それら自体は参照として働かないので、Bフレームでのエラーは、この単一のフレームで可視となるのみであり、したがって、IフレームまたはPフレームでの損失によるエラーと比較して、はるかに可視ではないことになる。
【０００８】
Iフレームはいかなる前の参照にも依存しないので、それらは、映像プレーヤまたはセットトップボックスが映像と同期し得る、ビットストリームでの唯一の点を表す。さらに、(損失のない)Iフレームは、パケット損失によるいかなる悪化も一掃する、時間的な唯一の点である。2つのIフレーム間の映像フレームのシーケンスは、「ピクチャグループ(Group of Pictures)」(GoP)と呼ばれる。大部分の場合では、GoPでのPフレームおよびBフレームは、MPEG2から知られている典型的なGoPパターン、「I、B、B、P、B、B、P…」のような、程度の差はあれ厳格なパターンにしたがう。このパターンが知られているならば、フレームタイプ自体が、パケット損失または暗号化によってビットストリームから読み出され得ない場合でも、ビットストリームでの任意のピクチャのフレームタイプの、信頼性の高い演えき的な推定が可能である。
【０００９】
上記および他の測定値に対する良好な推定を得ることは、非常に過酷であることが多い。これは主に、2つの独立した理由による。
1.不正アクセスを防止するために、ビットストリームが暗号化される場合があり、重要なビットストリーム特性が、測定場所で、可読でない場合がある。
2.上記のようなパケット損失によって、情報の重要な小片がビットストリームから除去されている場合がある。
【００１０】
国際公開第2009/02297号および国際公開第2009/012302号では、GoPの「パターン」は単に、非常に大きなサイズ(Iフレーム)、中間のサイズ(Pフレーム)、および小さなサイズ(Bフレーム)の映像フレーム間で弁別する適応性のしきい値の助力によって、あらゆる個別の映像フレームのフレームタイプを独立して推定することにより決定される。Iフレームは、PフレームまたはBフレームの2倍から5倍の数のビットを平均して包含するので、IフレームをPフレームおよびBフレームから鑑別することは容易である。ただし、PフレームをBフレームから鑑別することは、かなり信頼性が低い。Bフレームは、平均してPフレームより小さいが、サイズの差は、PフレームおよびBフレームのサイズのサイズ分散がそうである代わりに大きくはない。一般に、サイズの平均差は、検査される映像シーケンスを圧縮するために使用される特定のエンコーダに、およびこのシーケンスの特定の特性にもまた、大いに依存する。これは、Bフレームの一部が他のBフレームに対して参照としてさらに働く、「階層符号化」と呼ばれるH.264エンコーダの新しい符号化戦略に対しては、なお一層の事実である。
【００１１】
欧州特許出願公開第2077672号は、符号化された映像信号のフレームタイプを推定することなどの、トランスポートストリームを分析することに関する。第1の実施形態では、GoPの「パターン」は、小さな数の連続する映像フレームの局所的なサイズ最大値を決定することにより決定され、そのように算出された小/大の関係が、既定の「決定フレームパターン」とマッチングするならば、最大サイズである映像フレームが、Pフレームとみなされる。他のすべてのフレームは、Bフレームとみなされる。
【００１２】
第2の実施形態では、フレームは、それらが、いくつかの前のフレームの平均に、より大きなものの係数(例えば1.2)を乗算したものとして算出されたしきい値を超えるならば、Pフレームと推定される。オープンGoPのB、B、Pパターンを検出するはずである、この第1の算出が失敗するならば、他のGoPパターンを表わしている、同様のしきい値ベースの試験が行われる。これらの試験は順次実行され、第1の成功が最終結果として取り上げられるので、試験の連鎖の始まりでのミスマッチは、後に続く試験により指摘され得ない。
【００１３】
前者の技術のすべてのフレームタイプの推定は、Pフレームは常に、シーケンスの時間的に取り囲むBフレームより十分に大きなサイズを有するという仮定に基づく。現実には、これは常に事実であるとは限らない。フレームタイプのサイズの平均値のみが、この仮定と高い信頼性で調和する。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】国際公開第2009/02297号パンフレット
【特許文献２】国際公開第2009/012302号パンフレット
【特許文献３】欧州特許出願公開第2077672号明細書
【発明の概要】
【発明が解決しようとする課題】
【００１５】
したがって、本発明で行われるように、フレームタイプのそれらのサイズによる弁別が、信頼性が低い、またはあいまいである場合に、統計的な手段により全体的なGoP構造を検出し、この知識を個別のフレームに適用することが好都合である。
【課題を解決するための手段】
【００１６】
本発明は、暗号化された映像ストリームで、または、フレームタイプに関する情報(スライスヘッダ)を包含するビットストリーム特性が、パケット損失によって欠損した場合において、映像フレームのフレームタイプを推定するための方法を提案する。
【００１７】
具体的には、本発明は、フレームタイプの、それらのサイズに基づくだけではない推定のための方法を提示する。その代わりに、検査される映像ビットストリームのGoPパターンが、各GoPでの遭遇するフレームのサイズの、典型的な既定のGoPパターンとのパターンマッチングにより推定される。この推定されたGoPパターンの知識を用いて、あらゆる後続のフレームのタイプが推定され得る。
【００１８】
本発明は、特許請求の範囲において定義される。
【００１９】
第1の態様によれば、本発明は、請求項1による、映像ストリームで複数の映像フレームのピクチャグループ構造、GoP、のタイプを推定するための方法を提供する。
【００２０】
ステップa)で、ビットストリームでの映像フレームの境界が、トランスポート層のある決まったタイムスタンプの変化を察知することによって、または、新しいフレームを合図し、イントラフレームを他のフレームから判断するために使用される、ヘッダ構造でのある決まったビットによってのいずれかで検出され得る。
【００２１】
ステップa)で、1つの測定期間の間捕捉されるいくつかのフレームは、次のIフレームまでのすべてのフレームを含むことが好ましい。
【００２２】
ステップb)で、好ましくは、連続的な(continues)フレームサイズのバイナリへの変換が、一定の、もしくはゆるやかに上下する特徴に依存的である参照値、または、好ましくは、前に捕捉されたフレームサイズおよび/もしくは他の動的な特徴の値に依存的である、動的適応性の参照値の使用を含む。
【００２３】
バイナリの既定の基本的なパターンは、フレームベースの符号化、フィールドベースの符号化、オープンGoPの符号化、またはクローズドGoPの符号化での、異なる数の連続するBフレームに対して可能なGoP構造を表わす。
【００２４】
ステップc)で、短い既定の基本的なパターンが、最後の基本的なパターンの可能な打切りを伴って反復され、最終的に、一連の反復された基本的なパターンが、フレームサイズの配列での一連のバイナリ化したフレームサイズと同じ長さを有することが好ましい。
【００２５】
さらに、ステップc)で、マッチングは、要素に関する排他的nor演算により実行される場合があり、ステップd)で、あらゆる排他的norの結果が、スコア値を形成するために合計され、ステップe)で、スコア値メトリックが、最大値に対応する。
【００２６】
実施形態によれば、ステップe)で、最良のスコア値を有するパターンに対して、関連するGoP構造、フィールド/フレーム状態、およびオープンGoP/クローズドGoP状態が、現在のGoPのGoPパターンに対する推定結果として選択される。
【００２７】
好ましくは、後続のGoPのために、新しい一連のフレームサイズが捕捉されるか、任意の種類のGoP平均が、フレームサイズの前および現在の配列のフレームサイズを平均することにより使用されているかのいずれかである。
【００２８】
請求項11によって、GoPパターンの推定の後で、さらなるフレームタイプの分類が、検出されたピクチャグループ構造内の参照Bフレームの存在を検出するために実行される。
【００２９】
第2の態様によれば、本発明は、請求項12による、映像ストリームで複数の映像フレームのピクチャグループ、GoP、構造のタイプを推定するための代替方法を提供する。
【００３０】
ステップa)で、1つの測定期間の間捕捉されるいくつかのフレームnは、次のイントラフレームまでのすべてのフレームを含むことが好ましい。
【００３１】
ステップc)で、あらゆる配列に対して、2つの関係値が、下記で説明されるように、すなわち、
i)検査される映像ストリームが、オープンGoPの符号化を含むならば、配列BPの各々が表す基本的なパターンの推測されるPフレームは、前記配列BPの最後の要素に位置することになり、前記配列の他のすべての要素は、Bフレームにより占有されることになり、それによって、オープンGoPの符号化ストリームに対する関係が、最後の配列要素を他のすべての配列要素の平均で除算したものとして算出される、または、
ii)検査される映像ストリームが、クローズドGoPの符号化を含むならば、配列BPの各々が表す基本的なパターンの推測されるPフレームは、前記配列BPの第1の要素に位置することになり、前記配列の他のすべての要素は、Bフレームにより占有されることになり、それによって、クローズドGoPの符号化ストリームに対する関係が、第1の配列要素を他のすべての配列要素の平均で除算したものとして算出される
ように生じる。
【００３２】
好ましくは、GoPパターンの推定の後で、さらなるフレームタイプの分類が実行され、ステップc)による推定されたGoP構造を表す配列内のBフレームの部分集合が、参照Bフレームを包含し得る前記配列内の要素に対する、ステップb)の結果による平均されたフレームサイズが、前記配列内のBフレームを包含する他のすべての要素より有意に大きいかどうかに関して検査され、これが事実であるならば、前記フレームは、参照Bフレームであると推測され、推定されたGoP構造は、いわゆる階層符号化シーケンスのGoP構造であると推測される。
【００３３】
推定されたGoP構造は、後に続くGoP構造に対する推定物として働き、この推定されたGoP構造は、パケット損失による映像フレーム損失を検出するための、または、失われた、もしくは存在するフレームをそれらの特定のフレームタイプでラベル付けすることに対しての助力として働く。
【発明を実施するための形態】
【００３４】
第1のステップでは、各映像フレームに対するバイトの数が、推定または算出される。異なる方法が、このタスクを実行するのに適切であり得る。例えば、トランスポート層でのある決まったタイムスタンプの変化が、新しいフレームの始まりを検出するために活用され得る、または、新しいフレームを合図するために使用されるヘッダ構造内のある決まったビットが利用され得る。一般に、これらのビットストリーム特性は、暗号化されたビットストリームでさえ利用可能である。したがって、フレームサイズは、バイトの正確性で算出され得るか、以下のステップを実行するのに十分に良好に推定され得るかのいずれかである。
【００３５】
第2のステップでは、映像ビットストリームが、次のGoPの開始を表す、次のIフレームが探し出されるまでスキャンされる。
【００３６】
暗号化されないストリームでは、(フレームタイプのすべてのように)次のIフレームは、映像フレームヘッダを探索することにより探し出され得る。暗号化されたストリームでは、または、フレーム境界が、どこかペイロード内の未知の点に出現するならば、Iフレームを「ランダムアクセスポイント」としてマーキングする、ある決まったフラグが、代わりにアクセスされ得る。何らかの理由で、これらのフラグが出現しないならば、さらに、遭遇するフレームのサイズの分析が、Iフレームを検出するために使用され得る、というのは、それらのサイズは、一般に、PフレームおよびBフレームのものよりはるかに大きいからである。
【００３７】
第3のステップでは、次のIフレームまでのすべての後続の映像フレームのバイト単位のサイズが、次のIフレームに遭遇するまで、したがってGoPが完全なものになるまで、ある決まった配列に捕捉されることになる。
【００３８】
第4のステップでは、これらの配列は、典型的なGoP構造を表すいくつかの既定のパターンとマッチングされることになる。最良のマッチが、後のステップで、後に続くGoPに対するプロトタイプとして役立つことになり、したがって、入来するフレームのフレームタイプの容易で演えき的な推定を可能にし得る特定のGoP構造に関連付けられる。
【００３９】
後続のGoPに対して、フレームサイズの配列は、現在のGoPのデータのみが使用されるようにリセットされ得る、または、ある決まった数の前のGoPのフレームサイズが、平均値を取得するために合計され得る。後者の場合では、追加的な配列が、配列の要素に合計されるフレームサイズ値の数を記すために必要とされ得る。好ましくは、移動平均が、次のコードを適用することにより算出され得る。
for(現在のGoP内のすべてのフレームn)
FrameSizeArray[n]=(M-1)/M*FrameSizeArray[n]+1/M*FrameSize[n]
ただしMは、平均されるべきGoPの数である。
【００４０】
異なる重み付けスキームが、本発明によって使用され得る。
【００４１】
可能なGoPパターン
上述のように、GoPは、通常、GoPの境界をマーキングする2つのIフレーム間の、ある決まったシーケンスのPフレームおよびBフレームから構成される特定の構造を有する。典型的なGoP構造に対する例は、次の通りである。
I、b、b、P、b、b、P、b、b、P…(MPEG2から知られている「古典的な」GoP構造)
I、b、B、b、P、b、B、b、P、b、B、b、P(B=参照Bフレーム、b=非参照Bフレームを用いた、階層符号化に対する可能なGoP構造)
【００４２】
インターレース映像は、1つの映像フレームに対して2つの独立したフィールドを含む「フィールドシーケンス」として符号化されることが多いことを考慮しなければならない。その場合、上記の構造は、次のようになる。
I/P、b/b、b/b、P/P、b/b、b/b、P/P…
I/P、b/b、B/B、b/b、P/P、b/b、B/B、b/b、P/P…
これらは、正しく検出されるならば、暗号化されたストリームでさえ、フレーム符号化とフィールド符号化との間での判断を可能にする、別々のパターンを形成する。ここで、フィールドシーケンスでは、キーフレームの第1のフィールドのみが、イントラフィールドとして実際に符号化されることが多いことに留意されたい。キーフレームの第2のフィールドは、予測されるフィールドであり得る。上記の表記では、これは、I/Pフレームということになる。P/Iフレームさえも可能である。
【００４３】
上記のパターンは、「表示順序」で視覚化される。実際は、フレームは、異なる順序、いわゆる「ビットストリーム順序」または「復号化順序」で伝送される。Bフレームは、過去および将来での参照を行うので、これらの将来の参照は、あらかじめ伝送されなければならず、結果として、下記に示されるようなビットストリーム順序となる。
I0、P1、b2、b3、P4、b5、b6、P7、b8、b9…ビットストリーム順序
I0、b2、b3、P1、b5、b6、P4、b8、b9、P7…(ビットストリーム順序インデックスを伴う)表示順序
I0、P1、B2、b3、b4、P5、B6、b7、b8、…ビットストリーム順序
I0、b3、B2、b4、P1、b7、B6、b8、P5、…(ビットストリーム順序インデックスを伴う)表示順序
【００４４】
同じGoP構造に対してさえ、異なるパターンが可能である。これは、「クローズドGoP伝送」および「オープンGoP伝送」の技法が存在するからである。
【００４５】
クローズドGoPでは、異なるGoPのコンテンツの伝送は、決してオーバーラップしない。オープンGoP構造では、最初のIフレームが、表示順序ではそれより前にあるBフレーム(前のGoPを閉じているもの)の前に伝送される。上記の例は、クローズドGoP方式で示された。オープンGoP方式での同じ例は、次のようになる。
【００４６】
【数１】
0005964828.tif 000002
【００４７】
最初の2つ(3つ)のBフレーム(ここでは、ボールド体の文字で示される)は、前のGoPに属し、それらは、現在のGoPのIフレームの後で伝送される。
【００４８】
容易にわかるように、ビットストリーム順序、および、したがって、結果としてのGoPパターンは、正しく検出されるならば、クローズドGoPシーケンスとオープンGoPシーケンスとの間での判断を可能にする、別々の様式で異なる。
【００４９】
他の可能なパターンは、次のものである。
I、P、P、P、P…(テレビ会議および他の低遅延の用途で使用されるような、Bフレームを用いないGoP構造)
I、b、P、b、P、…(ただ1つのBフレームを用いるGoPパターン)
【００５０】
任意の分析された映像ストリームのGoP構造を、それが、完全に可読である、暗号化されている、またはパケット損失により破損した場合でも推定することは、本発明の範囲内である。この目的を実現するために必要な唯一の情報は、あらゆる遭遇する映像フレームのバイト単位のサイズ、および、フレームのどれがIフレームのタイプのものであるかの知識である。
【００５１】
フレームサイズの算出/推定
本発明は、映像シーケンスでのすべてのフレームのバイトサイズの分析に基づくので、これらのサイズは、あらゆるフレームに対してビットストリームから抽出されなければならない。このタスクを実行するために異なる処置を必要とし得る、多くの異なるトランスポートスキームが存在する。しかしながら、IPベースのネットワークに関して飛びぬけて重要なトランスポートスキームは、「リアルタイムプロトコル」(RTP)である。したがってここでは、フレームサイズの抽出は、RTPのみに対して説明されるが、他のトランスポートスキームに対しても同様に働くことになる。当業者であれば、自分が使用する任意の異なるトランスポートスキームに対して本発明を容易に採用することが可能であろう。
【００５２】
RTPによって映像コンテンツを伝送するための2つの主要な手法が存在する。
・映像が、RTPパケットのペイロードとして直接搬送される。この場合、音声および他の可能な情報(「システム」情報)は、異なるポート番号を有する異なるRTPストリームで搬送される。したがって、ビットストリームの映像部分は、パケットの残りから容易に分離され得る。
一般に、1つの映像フレームは、各々がタイムスタンプを搬送しているいくつかのRTPパケットのペイロードからなることになる。映像の場合では、これらのRTPタイムスタンプは、それらが搬送する映像フレームの相対的な復号化時間に設定される。RTPパケットは、各々でサイズが異なる場合があるので、映像フレームは、一般に、いくつかの完全なRTPパケットにあることになる。この場合に映像フレームのサイズを算出するために、同じタイムスタンプを伴うすべてのRTPパケットのペイロードサイズのみが合計されなければならない。
フレーム境界が単一のRTPペイロード内に出現する場合でも、フレームサイズは、上記の値により非常に良好に推定され得る。暗号化されている可能性がある、ペイロード自体にアクセスしないことが必要である。
RTPヘッダの部分であるRTPシーケンス番号が、RTPパケット損失を検出するためにアクセスされ得る。失われたパケットのサイズは知られ得ないので、それは推定される必要がある。これは、過去のパケットの何らかの平均サイズのようなものにより行われ得る。
・映像がRTPによって搬送されるが、ペイロードは、「トランスポートストリーム」(TS)である。TSでは、映像、音声および他の情報が、単一のストリームに多重化される。多重パケットの各々は、小さなTSヘッダを含む、188バイトのサイズを有する。1つのRTPパケットは、いわゆる「プログラムID」(PID)により特定のサブストリームに属するとマーキングされる、これらのTSパケットの7つを搬送する。これらのサブストリームの1つが、分析されるべき映像である。暗号化されたストリームでさえ、TSヘッダは、一般には暗号化されず、したがってアクセスされ得る。それらは、フレームサイズの正確な測定に備えるものである。RTPパケット損失の場合には、TSヘッダ内のいわゆる「巡回カウンタ」が、個々のRTP損失に対し、各サブストリームに対して別個に、失われたサブストリームパケットの数を算出するために利用され得る。TSパケットは、RTPパケットよりはるかに小さく、(スタッフィングのまれな場合でなければ)同じペイロードサイズを有するので、失われたバイトの数は、より精密に推定され得る。TSヘッダでの述べられた巡回カウンタは、わずか4ビットを有する。したがって、最高で16の欠損したTSパケットが検出され得る。欠損したRTPパケットの知られた数、および、容易に算出され得る、RTPパケットあたりのTSサブストリームパケットの平均数に対する値とともに、16より大きい失われたTSパケットに対する精密な推定が推定され得る。
RTPタイムスタンプは、それらが搬送する映像フレームの相対的な復号化時間に同期されるので、完全な欠損したフレームさえ検出され得る、というのは、そのような場合、RTPタイムスタンプは、連続しているフレーム間の1つの時間差を超える分だけ増分されることになるからである。
【００５３】
Iフレームの検出
分析を開始するために、ビットストリームは、新しいGoPの始まりをマーキングする、次のIフレームの始まりを探し出すためにスキャンされる。Iフレームは、異なる手段により検出され得る。暗号化されないストリームの場合、エレメンタリストリームのフレームヘッダが、すべての映像フレームに対して容易にアクセスされ得る。映像フレームヘッダは、フレームタイプを明示的に包含する。
【００５４】
映像が、RTPペイロードとして直接搬送されるならば、フレームヘッダは、RTPヘッダのMビットが1に設定されたRTPパケットの後に来る、あらゆるRTPパケットのペイロードでの第1のバイトとともに常に出現するはずである。フレームヘッダが、RTPパケットのペイロード内で同様に出現し得るならば、それらは、一意的なバイトシーケンスを包含するので、それらは、容易に検索され得る。
【００５５】
RTPに対してTSが使用される場合では、TSヘッダのアダプテーションフィールド内のいわゆる「random_access_flag」が活用され得る。それは、来るフレームがIフレームとして符号化されたことを合図する。暗号化されたストリームでさえ、TSヘッダの部分としてのアダプテーションフィールドは、通常は暗号化されない。
【００５６】
フレーム境界が知られると、Iフレームがやはり経験的に検出され得る。それらの平均サイズは、通常、PフレームおよびBフレームのものよりはるかに大きい。
【００５７】
Iフレームの始まりが探し出されると、次のGoPの始まりがさらに探し出される。その点から続けて、すべての後続のフレームのサイズが、いくつかの可能な方法で集められる。以下の説明において、この集める処理は、完全なGoPに対して、集められたデータの分析が開始されるまで継続される。本発明の他の実施形態では、収集期間は、異なる長さを有し得る。
【００５８】
データ収集およびパターンマッチングの第1の実施形態
フレームサイズの1つの長い配列
現在のGoPの最初のIフレームに遭遇した後、すべての後続のフレームのフレームサイズが、配列の要素に記憶され、配列のインデックスは、前記Iフレームを時間的に過ぎたフレームの数に等しい。これは、好ましくは、分析されるべき第1のGoPの末端を合図する、次のIフレームが検出されるまで行われる。フレームサイズのそのように構成された配列は、この配列を典型的なパターンの集合と比較し、推定されるGoPパターン、および適用可能な場合は他のデータを出力する、パターンマッチング処理への入力である。
【００５９】
分析されるビットストリームが暗号化されないならば、したがって、フレームタイプがアルゴリズムに知られるならば、現実のフレームサイズは、非参照Bフレームに対して「1」、参照Bフレームに対して「2」、およびPフレームに対して「4」のような標準化された値により置換され得るものであり、それらは、現実のフレームサイズと同じ目的に役立つが、少しも統計的不確実性をもたらさない。
【００６０】
パターンマッチング
本発明の実施形態では、フレームサイズの配列は、Bフレームに対して「0」、およびPフレームに対して「1」であるバイナリパターンとマッチングされることになる。したがって、上記の一例のGoP構造は、次のようなパターンとマッチングされることになる。
0、0、1、0、0、1…(オープンGoPを用いたI、b、b、P、b、b、P構造)
1、0、0、1、0、0…(クローズドGoPを用いたI、b、b、P、b、b、P構造)
0、0、0、1、0、0、0、1…(オープンGoPを用いたI、b、B、b、P、b、B、b、P構造)
1、0、0、0、1、0、0、0…(クローズドGoPを用いたI、b、B、b、P、b、B、b、P構造)
【００６１】
したがって、本発明のこの実施形態では、「フレームサイズの配列」がさらに、バイナリ配列に変換されることになる。最も容易な場合では、単一の参照値が、前記配列のあらゆる要素の値を、「小さなサイズのフレーム」に対して「0」に、および「大きなフレーム」に対して「1」に置換するために使用されることになる。「大きい」と「小さい」との間で判断するための参照値は、単に、すべての要素の平均に>1の係数を乗算したものであり得る。代替実施形態では、しきい値は、すべての配列要素の中央値、または要素の最小値および最大値の重み付き組み合わせ、または配列要素の他の組み合わせであり得る。さらに、しきい値は、小さな数のフレームサイズ値に関して採用され得る。これは、説明されたしきい値の1つを、係数もしくは付加的な項により変動させることにより、または、現在値のある決まった近傍でのフレームサイズ値からのみでしきい値を算出することにより達成され得る。
【００６２】
一般に、Iフレームの直後に、PフレームおよびBフレームは変則的に小さなサイズを有することが多いので、配列内の最初の数個の値を使用しないことが合理的である場合がある。
【００６３】
マッチング処理
一般に、GoPの長さは、あらかじめ知られていない。典型的な値は、1または2秒ごとに1つのIフレームであり、その結果、例えば、25フレーム/秒の典型的なフレームレートに対しては、25から50フレーム(または、「フィールド符号化」モードに対しては50から100フィールド)のGoPの長さとなる。通常、エンコーダは、シーンカット検出を有し、あらゆるシーンカット位置にIフレームを配置する。したがって、シーンカットに遭遇する場合、GoPは、2または1フレームにさえも減った任意のサイズを有し得る。
【００６４】
全体的な長さとは違い、可能なGoP構造のそれぞれの基本的なパターンは、一定であり短い(例えば、I、b、b、P、…の例に対しては、0、0、1)。完全なGoPの要素とのマッチングの目的で、これらの単純な基本的なパターンは、実際のGoPサイズに達するまで反復されなければならない。
【００６５】
バイナリマッチングのみが適用される本発明の実施形態では、マッチング処理自体は、フレームサイズの変換された配列のあらゆる要素に関する、連結された基本的なパターン要素を用いた、単純な「排他的nor」演算であり得る。次いで、これらの「排他的nor」演算の結果が、使用されるパターンに対するマッチングスコアに合計される。これが、すべての利用可能な既定のパターンを用いて行われる。
【００６６】
最高スコア数を得る特定のパターンが、最良のマッチとみなされ、次いで、その関連するGoP構造、フレーム/フィールド状態、オープン/クローズド状態が、さらなる分析のために採用される。
【００６７】
階層符号化と従来のBフレーム符号化との間での区別
3つ以上の連続するBフレームが、最良のマッチングのGoPパターンで推定される場合では、フレームのシーケンスが、上述のような参照Bフレームを用いた「階層符号化」方法を用いて符号化されていた可能性がある。これが事実であるならば、これらの参照Bフレームは、(上記でbフレームと名付けられた)非参照Bフレームより大きな、バイト単位のフレームサイズを有する可能性がある。
【００６８】
使用されているのが階層符号化であるか、それとも非階層符号化であるかの信頼性の高い推定を得るために、(2つのPフレーム間の)連続するBフレームのあらゆる部分集合が、参照Bフレームを表す部分集合内の要素に対するフレームサイズが、前記部分集合でのBフレームを表す他のすべての要素より有意に大きいかどうかについて検査され得る。3つの連続するBフレームの場合、これは、第1の部分集合要素であり、5つの連続するBフレームの場合、これらは、第1および第2の部分集合要素である。7つの連続するBフレームの場合、これらは、(復号化順に)第1、第2および第3の部分集合要素である。他の組み合わせは、階層符号化に対して可能性は非常に低い。この条件が、連続するBフレームの集合の大きさに当てはまるならば、GoP、階層符号化が推測され得る。
【００６９】
階層符号化を用いずに4つ以上のBフレームが連続しているということは、きわめて可能性が低いので、4つ以上のBフレームを伴うパターンに対しては、階層符号化が、説明された試験なしでも推測され得る。
【００７０】
結果として得られる推定されたGoP構造を、後に続くGoPのフレームに適用することにより、シーケンスが暗号化されている、またはフレームヘッダがパケット損失によって欠損している場合に、これらのフレームのフレームタイプの信頼性の高い推定がもたらされる。
【００７１】
データ集めおよびパターンマッチングの第2の実施形態
多数の平均されたフレームサイズの短い配列
可能な基本的なパターンの数BPは限られているので、本発明は、上記で説明されたような単一の配列の代わりに、可能な基本的なパターンごとにまさに1つの配列が存在することになるように修正され得る。これらの配列は、それらの基本的なパターンの短いサイズを有することになる。例えば、GoP構造「I、b、b、P」に対する配列は、そのパターンが、オープンGoPの符号化に対して0、0、1、またはクローズドGoPの符号化に対して1、0、0であり、3のサイズを有することになる。
【００７２】
nを、最初のIフレームを時間的に過ぎたフレームの数とする。あらゆる遭遇したフレームnのバイトサイズを、各Array[BP]の第n%ArraySize[BP]の要素に合計し(n%ArraySize[BP]は、n/ArraySize[BP]の余りを意味する)、要素ごとにそれらの数を計数することにより、平均フレームサイズ値が、各配列の要素で生成され得る。
【００７３】
真のGoP構造に関連する1つの特定の配列のみにおいてであるが、Pフレームは排他的にPフレームと合計されており、Bフレームは排他的にBフレームと合計されている。したがって、まさにこの配列のみにおいて、PフレームとBフレームとの間の真の平均関係が、その要素に反映される。他のすべての配列の要素は、PフレームおよびBフレームのサイズの混合を包含する。その結果、それらの間の関係は、はるかに有意でないことになる。
【００７４】
以下の擬似コードは、最初のIフレームの後のフレームnのフレームサイズが、前記配列の要素にどのように加算されるかを明確にする。
for(測定期間内のあらゆるフレームn)
for(あらゆる考慮される基本的なパターンBP)
{
Array[BP][n%ArraySize[BP]]+=Framesize[n]
ArrayCount[BP][n%ArraySize[BP]]+=1
}
【００７５】
考慮されるGoPパターンは、フレームベースの符号化およびフィールドベースの符号化に対するパターンを含み得るものであり、後者のものは、2倍の数の要素を有する。
【００７６】
パターンマッチング
例えば1つのGoPのすべてのフレームサイズが配列で合計された後、それらは検査される。第1のステップでは、各配列の各要素での平均フレームサイズが、各配列のすべての要素を、それが包含する項目の数で除算することにより算出される。
for(あらゆる考慮される基本的なパターンBP)
for(Array[BP]でのあらゆる要素i)
ArraySize[BP][i]=ArraySize[BP][i]/ArrayCount[BP]
【００７７】
マッチングの目的のために、上記で説明されたような「オープンGoPの符号化」および「クローズドGoPの符号化」の2つの場合は、区別されなければならない。「クローズドGoPの符号化」に対しては、真のGoPパターンを反映する配列の第1の要素が、すべての平均されたPフレームのサイズを包含することになり、一方「オープンGoPの符号化」では、最後の要素が、すべての平均されたPフレームのサイズを包含する。以下の擬似コードは、あらゆる可能なGoPパターンに対して、および「オープンGoPの符号化」(OG)/「クローズドGoPの符号化」(CG)に対して、関係がどのように取得されるかを要約する。
for(あらゆる考慮される基本的なパターンBP)
{
CG_Relation[BP]=Array[BP][0]/(ΣArray[BP][i]/[ArraySize[BP]-1])
ただしi=1…ArraySize[BP]-1
OG_Relation[BP]=Array[BP][ArraySize[BP]-1]/(ΣArray[BP][i]/[ArraySize[BP]-1])
ただしi=0…ArraySize[BP]-2
}
【００７８】
さらなるステップでは、OG_Relation[]およびCG_Relation[]でのすべての要素の最大値が検索される。次いで、この最大値に対応するパターンBPが、最良のマッチとみなされ、その関連するGoP構造が、分析された映像シーケンスの真のGoP構造であるとみなされる。さらに、そのフィールド/フレーム、およびオープン/クローズド状態が、シーケンスの真の状態であるとみなされる。
【００７９】
本発明のこの実施形態の利点は、参照値として働き得る、または任意の他の目的のための、任意の既定の、あらかじめ算出された、または「オンザフライで算出される」変数が存在しないことである。したがって、追加的な統計的不確実性は、アルゴリズムのこの第2の実施形態にはもたらされない。
【００８０】
階層符号化と従来のBフレーム符号化との間での区別
3つ以上の連続するBフレームが、最良のマッチングのGoPパターンで推定される場合では、フレームのシーケンスが、上述のような参照Bフレームを用いた「階層符号化」ツールを用いて符号化されていた可能性がある。これが事実であるならば、これらの参照Bフレームは、(上記でさらにbフレームとラベル付けされた)非参照Bフレームより大きな、バイト単位のフレームサイズを有する可能性がある。
【００８１】
使用されているのが階層符号化であるか、それとも非階層符号化であるかの信頼性の高い推定を得るために、平均された非参照bフレームを表す最良のマッチング配列の要素が、平均された参照Bフレームを表す配列要素と比較されなければならない。後者の要素は、平均された非参照Bフレームを表す要素より有意に大きいはずである。3つのBフレームを用いた例では、対応する配列は、次のようになる。
オープンGoP:[B]、[b]、[b]、[P]
クローズドGoP:[P]、[B]、[b]、[b]
【００８２】
そのように推定されたGoP構造を、後に続くGoPのフレームに適用することにより、シーケンスが暗号化されている、またはフレームヘッダがパケット損失によって欠損している場合に、これらのフレームの信頼性の高い推定がもたらされる。
【００８３】
本発明は、図面および前述の説明において詳細に例示かつ説明されたが、そのような例示および説明は、例示的または一例としてのものであり、限定的ではないとみなされるべきである。変更および修正が、以下の特許請求の範囲の範囲内で、当業者により行われ得ることが理解されよう。具体的には、本発明は、上記および下記で説明される異なる実施形態からの特徴の任意の組み合わせを用いた、さらなる実施形態を網羅する。
【００８４】
さらに、特許請求の範囲では、単語「備える、含む」は、他の要素またはステップを排除せず、不定冠詞「a」または「an」は、複数を排除しない。単一のユニットが、特許請求の範囲に記載されるいくつかの特徴の機能を充足する場合がある。具体的には属性または値に関連する用語「本質的に」、「約」、「近似的に」などが、それぞれ、属性を正確に、または値を正確に、さらに定義する。特許請求の範囲でのいかなる参照符号も、範囲を限定すると解釈されるべきではない。
【符号の説明】
【００８５】
IPTV  インターネットプロトコルTV