(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6191886
(24)【登録日】2017年8月18日
(45)【発行日】2017年9月6日
(54)【発明の名称】同期予測ビデオフレームの動的な挿入
(51)【国際特許分類】
H04N 19/105 20140101AFI20170828BHJP
H04N 19/164 20140101ALI20170828BHJP
H04N 19/176 20140101ALI20170828BHJP
H04N 19/30 20140101ALI20170828BHJP
【FI】
H04N19/105
H04N19/164
H04N19/176
H04N19/30
【請求項の数】12
【全頁数】17
(21)【出願番号】特願2014-559911(P2014-559911)
(86)(22)【出願日】2013年2月13日
(65)【公表番号】特表2015-512219(P2015-512219A)
(43)【公表日】2015年4月23日
(86)【国際出願番号】US2013025800
(87)【国際公開番号】WO2013130263
(87)【国際公開日】20130906
【審査請求日】2016年1月18日
(31)【優先権主張番号】13/407,759
(32)【優先日】2012年2月29日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】314015767
【氏名又は名称】マイクロソフト テクノロジー ライセンシング,エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ルー,メイ−シュアン
(72)【発明者】
【氏名】リー,ミーン−チェ
【審査官】
岩井 健二
(56)【参考文献】
【文献】
特表2009−512317(JP,A)
【文献】
特開2006−191599(JP,A)
【文献】
特開2004−254195(JP,A)
【文献】
特開2002−010265(JP,A)
【文献】
特開平11−317946(JP,A)
【文献】
特開平10−079949(JP,A)
【文献】
特開平09−149421(JP,A)
【文献】
米国特許出願公開第2011/0249729(US,A1)
【文献】
米国特許出願公開第2010/0177776(US,A1)
【文献】
米国特許出願公開第2010/0111197(US,A1)
【文献】
富田靖浩 他,上り信号を利用するリアルタイムエラー耐性画像通信方式,電子情報通信学会技術研究報告,電子情報通信学会,1996年12月,第96巻,第433号,pp.21 - 28
【文献】
Heiko Schwarz et al.,Overview of the Scalable Video Coding Extension of the H.264/AVC Standard,IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY,IEEE,2007年 9月,VOL. 17, NO. 9,pp.1103-1120
【文献】
G. Cote et al.,H.263+: video coding at low bit rates,EEE Transactions on Circuits and Systems for Video Technology,IEEE,1998年11月,Vol.8, No.7,pp.849 - 866
【文献】
S. Fukunaga et al.,Error resilient video coding by dynamic replacing of reference pictures,Global Telecommunications Conference (GLOBECOM '96),IEEE,1996年11月,pp.1503 - 1508
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 − 19/98
(57)【特許請求の範囲】
【請求項1】
コンピュータにより実施される方法であって、
符号化コンピュータシステムを介して、ビデオビットストリームを符号化し、コンピュータネットワークを介して復号コンピュータシステムへ送信するステップであって、前記ビットストリームは、前記符号化コンピュータシステムが前記ビットストリームからの損失データを通知されていないときは標準予測構造に従う、ステップと、
前記符号化コンピュータシステムを介して前記ビットストリームの損失データの通知を受信するステップであって、前記損失データは、前記ビットストリームの参照フレームの損失拡張レイヤの少なくとも一部を備える、ステップと、
前記通知に応答して、前記符号化コンピュータシステムを介して、アンカ予測フレームの少なくとも一部を動的に符号化するステップであって、前記アンカ予測フレームを有する予測構造は、前記アンカ予測フレームのベースレイヤを参照する拡張レイヤを備え、前記アンカ予測フレームは、前記ビットストリーム内の1つ又は複数の他の前に送信されたフレームを参照し、前記損失拡張レイヤを参照することは避ける予測を備える、ステップと、
前記符号化コンピュータシステムを介して、前記アンカ予測フレームを前記ビットストリーム内の位置に挿入するステップであって、該位置は、前記標準予測構造に従うと前記損失拡張レイヤを参照することになる予測により異なる予測フレームを挿入することを、前記標準予測構造が指示したであろう位置である、ステップと
を含む、方法。
【請求項2】
前記アンカ予測フレームの前記拡張レイヤは、前記ビットストリーム内の他のフレームを直接参照することを避け、
前記異なる予測フレームの拡張レイヤは、前記損失拡張レイヤを参照することになる、請求項1に記載の方法。
【請求項3】
前記アンカ予測フレームの前記ベースレイヤの予測は、前記損失拡張レイヤを含む前記参照フレームの前記ベースレイヤを参照する、
請求項1に記載の方法。
【請求項4】
前記アンカ予測フレームの前記ベースレイヤは、前記損失拡張レイヤを含む前記参照フレームの前記ベースレイヤを参照する、
請求項3に記載の方法。
【請求項5】
前記アンカ予測フレームを挿入するステップは、前記ビットストリームのフレームの順番で、前記損失拡張レイヤを含む前記参照フレームの後に前記アンカ予測フレームを挿入することを含み、前記ビットストリームのフレームの順番は、前記アンカ予測フレームと、前記損失拡張レイヤを含む前記参照フレームとを含む、
請求項1に記載の方法。
【請求項6】
コンピュータシステムであって、
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
ビデオビットストリームを符号化し、コンピュータネットワークを介して復号コンピュータシステムへ送信するステップであって、前記ビットストリームは、当該コンピュータシステムが前記ビットストリームからの損失データを通知されていないときは標準予測構造に従う、ステップと、
前記ビットストリーム内の損失データの通知を受信するステップであって、前記損失データは、前記ビットストリームの参照フレームの損失拡張レイヤの少なくとも一部を備える、ステップと、
前記通知に応答して、アンカ予測フレームの少なくとも一部を動的に符号化するステップであって、前記アンカ予測フレームを有する予測構造は、前記アンカ予測フレームのベースレイヤを参照する拡張レイヤを備え、前記アンカ予測フレームは、前記ビットストリーム内の1つ又は複数の他の前に送信されたフレームを参照し、前記損失拡張レイヤを参照することは避ける予測を備える、ステップと、
前記アンカ予測フレームを前記ビットストリーム内の位置に挿入するステップであって、該位置は、前記標準予測構造に従うと前記損失拡張レイヤを参照することになる予測により異なる予測フレームを挿入することを、前記標準予測構造が指示したであろう位置である、ステップと
を含む動作を実行させる命令を備えるメモリと、
を備える、コンピュータシステム。
【請求項7】
前記アンカ予測フレームの前記拡張レイヤは、品質拡張レイヤ又は空間拡張レイヤである、
請求項6に記載のコンピュータシステム。
【請求項8】
前記アンカ予測フレームの前記拡張レイヤは、前記ビットストリーム内の他のフレームを直接参照することを避け、
前記異なる予測フレームの拡張レイヤは、前記損失拡張レイヤを参照することになる、
請求項6に記載のコンピュータシステム。
【請求項9】
前記アンカ予測フレームの前記ベースレイヤの予測は、前記損失拡張レイヤを含む前記参照フレームの前記ベースレイヤを参照する、
請求項6に記載のコンピュータシステム。
【請求項10】
前記アンカ予測フレームの前記ベースレイヤは、前記損失拡張レイヤを含む前記参照フレームの前記ベースレイヤを参照する、
請求項9に記載のコンピュータシステム。
【請求項11】
前記アンカ予測フレームを挿入するステップは、前記ビットストリームのフレームの順番で、前記損失拡張レイヤを含む前記参照フレームの後に前記アンカ予測フレームを挿入することを含み、前記ビットストリームのフレームの順番は、前記アンカ予測フレームと、前記損失拡張レイヤを含む前記参照フレームとを含む、
請求項6に記載のコンピュータシステム。
【請求項12】
符号化コンピュータシステムの少なくとも1つのプロセッサによって実行されると、該少なくとも1つのプロセッサに、
ビデオビットストリームを符号化し、コンピュータネットワークを介して復号コンピュータシステムへ送信するステップであって、前記ビットストリームは、当該符号化コンピュータシステムが前記ビットストリームからの損失データを通知されていないときは標準予測構造に従う、ステップと、
前記ビットストリーム内の損失データの通知を受信するステップであって、前記損失データは、前記ビットストリームの参照フレームの損失拡張レイヤの少なくとも一部を備える、ステップと、
前記通知に応答して、アンカ予測フレームの少なくとも一部を動的に符号化するステップであって、前記アンカ予測フレームを有する予測構造は、前記アンカ予測フレームのベースレイヤを参照する拡張レイヤを備え、前記アンカ予測フレームは、前記ビットストリーム内の1つ又は複数の他の前に送信されたフレームを参照し、前記損失拡張レイヤを参照することは避ける予測を備える、ステップと、
前記アンカ予測フレームを前記ビットストリーム内の位置に挿入するステップであって、該位置は、前記標準予測構造に従うと前記損失拡張レイヤを参照することになる予測により異なる予測フレームを挿入することを前記標準予測構造が指示したであろう位置である、ステップと、
を含む動作を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、同期予測ビデオフレームの動的な挿入に関する。
【背景技術】
【0002】
ビデオデータの予測符号化は、符号化効率を向上させることができる。しかしながら、予測符号化は、伝送中に一部のビデオデータが失われるとき(全ては到着しないか、あるいは到達するのが遅すぎること等により)「ドリフト」生じる可能性がある。「ドリフト」とは、後続フレームにおける欠損データによるエラー伝播を指す。例えば第1のビデオフレーム(ピクチャとも呼ばれることがある)が失われるとき、第1のフレームに続く第2のフレームは、第1のフレームを参照する予測を使用して符号化されることがある。したがって、復号化コンピュータシステムは、第2のフレームを正しく復号することができないことがある。また、第3のフレームが第2のフレームを参照する予測を使用して符号化されることもある。実際、損失フレーム(すなわち、そのフレームのデータの少なくとも一部が失われたフレーム)によるエラーは、予測符号化の損失フレームに対する依拠に起因して、後続フレームを復号化するときにより悪化する可能性がある。会議システムでは、このドリフト問題に対処するため、イントラ符号化されたフレームがビットストリームに挿入されることがある。例えばイントラ符号化されたフレームを、周期的にビットストリームに挿入することがある。別の例として、符号化コンピュータシステムは、ビットストリームからデータが失われたことを通知されると、イントラ符号化されたフレームを動的に挿入することがある。
【発明の概要】
【0003】
本開示は、同期予測ビデオフレームを動的に挿入することに関する。本明細書において使用されるとき、動的に挿入される同期ビデオフレームは、動的に挿入され、かつ損失データのような指定のデータに依拠する予測を行うことを避ける、ビデオフレームである。これらの動的に挿入されるフレームは、前のフレームを参照して予測的に符号化されるので、これらのフレームは、同等のイントラ符号化フレームよりも効率的であり得る。しかしながら、同期予測ビデオフレームは、損失データを参照する予測を避けることによって、ドリフトをなくした同期を可能にすることができる。
【0004】
一実施形態において、ツール及び方法は、符号化コンピュータシステムが、ビデオストリームを符号化し、コンピュータネットワークを介して復号化コンピュータシステムへ送信することを含むことができる。符号化コンピュータシステムがビットストリームからの損失データを通知されていないとき、ビットストリームは標準予測構造(regular prediction structure)に従うことができる。符号化コンピュータシステムは、ビットストリームにおける損失データの通知を受信することができる。損失データは、ビットストリームの参照フレームの少なくとも一部を含み得る。また、符号化コンピュータシステムは、ビットストリーム内の1つ又は複数の他の前に送信されたフレームを参照し、かつ損失データは参照しない予測を用いて、同期予想されるフレームを動的に符号化することによって、通知に応答することができる。符号化コンピュータシステムは、同期予測フレームをビットストリーム内の位置に挿入することができるが、このビットストリーム内の位置は、標準予測構造が、該標準予測構造に従うと損失データを参照することになる予測に係る、異なる予測フレームの挿入を指示したであろう位置である。
【0005】
この「発明の概要」の記載は、以下の「発明を実施するための形態」において更に説明される概念の選択を簡単な形で紹介するのに提供される。この「発明の概要」の記載は、特許請求に係る主題の主要な特徴又は本質的特徴を特定するようには意図されておらず、また特許請求に係る主題の範囲を限定するのに用いられるようにも意図されていない。同様に、本発明は、「背景技術」、「発明を実施するための形態」又は図面において検討される特定の方法、ツール、環境、欠点又は利点に対処する実装に限定されない。
【図面の簡単な説明】
【0006】
【
図1】説明される実施形態の1つ又は複数を実装することができる適切なコンピューティング環境のブロック図である。
【
図3】周期的なキーフレームを有する標準予測構造(上)と動的なキーフレームを有する対応の予測構造(下)の例を示す概略図である。
【
図4】周期的なキーフレームを有する標準予測構造(上)と動的な長期予測キーフレームを有する対応の予測構造(下)の例を示す概略図である。
【
図5】周期的なキーフレームを有する標準予測構造(上)と動的なアンカ予測フレームを有する対応の予測構造(下)の例を示す概略図である。
【
図6】同期予測ビデオフレームの動的な挿入の方法のフローチャートである。
【
図7】同期予測ビデオフレームの動的な挿入の別の方法のフローチャートである。
【
図8】同期予測ビデオフレームの動的な挿入の更に別の方法のフローチャートである。
【発明を実施するための形態】
【0007】
本明細書で説明される実施形態は、符号化コンピュータシステムが、ブットストリームからデータが失われたことを通知されたときのビットストリームの符号化の改善のための方法又はツールを対象とする。そのような改善は、様々な方法及びツールを別個に又は組み合わせて使用することで得られることがある。
【0008】
そのような方法及び技術は、異なるタイプの標準予測構造について、異なるタイプの同期予測ビデオフレームを動的に挿入することを含み得る。例えば他のキーフレームを参照するものに限定して予測を行う周期的なキーフレームを有するビットストリームでは、符号化コンピュータシステムがビットストリームからの損失データを通知されると、キーフレームを動的に挿入することができる。別の例として、周期的キーフレームを有さないが、長期参照キーフレームを許容するビットストリームでは、符号化コンピュータシステムがビットストリームからの損失データについて通知されると、長期参照キーフレームを動的に挿入することができる。長期参照キーフレームは、標準フレームより長い間アクティブなフレーム枠(デコーダフレームバッファ内で保持されるべきフレームの枠)で保持されるキーフレームである。例えば長期参照キーフレームは、符号化コンピューティングシステムが、アクティブなフレームの枠からキーフレームを除去するという明示的な通知を送るまで、アクティブなフレーム内に保持され得る。別の例として、ベースレイヤ及び拡張レイヤを有するビットストリームでは、フレームのベースレイヤは、前のフレームのベースレイヤを参照するが、前のフレームの拡張レイヤは参照しない予測を使用して符号化され、フレームの拡張レイヤは、前のフレームの拡張レイヤは参照するが、前のフレームのベースレイヤは参照しない予測を使用して符号化され得る。この標準予測構造では、符号化コンピュータシステムが、フレームの拡張レイヤからのデータは失われたが、そのフレームのベースレイヤからのデータは失われていないということを通知されると、符号化コンピューティングシステムは動的にアンカフレームを挿入することができる。本明細書で使用されるとき、アンカフレームとは、ベースレイヤが、前のフレームのベースレイヤを参照する予測を用いて予測的に符号化され、拡張レイヤが、参照フレーム内の他のレイヤ(例えばベースレイヤ)のみを参照するようにイントラ符号化されるフレームである。
【0009】
したがって、本明細書で説明されるツール及び方法から1つ又は複数の利点が実現される。例えば同期予測ビデオフレームの動的な挿入は、予測が前のフレームからのデータを参照する何らかの予測符号化を使用することによる効率を保ちつつ、ドリフトをなくした同期を可能にすることができる。
【0010】
添付の特許請求の範囲において定義される主題は、必ずしも本明細書で説明される利点に限定されない。本発明の特定の実装は、本明細書で説明される利点の全て又は一部を提供することもあり、また提供しないこともある。様々な方法に関する動作は、本明細書において説明の目的で特定の逐次的順序で説明されているが、この説明法は、特定の順序付けが必要とされない限り、動作の順序における再配置を包含することを理解されたい。例えば逐次的に説明される動作を、一部の場合において再配置するか同時に実行してもよい。さらに、簡略化の目的で、フローチャートでは、特定の技法を他の技法とともに使用することができる様々な方法を示していないことがある。
【0011】
本明細書で説明される技術は、本明細書で説明されるシステムの1つ若しくは複数を用いて、及び/又は1つ若しくは複数の他のシステムを用いて使用され得る。例えば本明細書で説明される様々なプロシージャは、ハードウェア又はソフトウェアとともに、あるいはその双方の組み合わせで実装され得る。例えば特定用途向け集積回路、プログラマグル論理アレイ及び他のハードウェアデバイスのような専用のハードウェア実装を、本明細書で説明される技術の1つ又は複数の少なくとも一部を実装するように構築することができる。様々な実施形態の装置及びシステムを含み得る適用は、様々な電気的及びコンピュータシステムを広く含むことができる。諸技術は、モジュール間及びモジュール中を通信され得る制御及びデータ信号に関連する、2つ又はそれ以上の固有の相互接続されるハードウェアモジュール及びデバイスを使用して、あるいは特定用途向け集積回路の一部として実装され得る。例として、諸実装は、分散処理、コンポーネント/オブジェクト分散処理及び並行処理を含むことができる。さらに、仮想コンピュータシステム処理が、本明細書で説明される技術又は機能の1つ又は複数を実装するように構築される可能性がある。
【0012】
I. 例示的なコンピューティング環境
図1は、説明される実施形態の1つ又は複数が実装され得る適切なコンピューティング環境(100)の一般的な例を図示している。例えば1つ又は複数のこのようなコンピューティング環境を、符号化コンピューティング環境として、復号化コンピューティング環境として、並びに/あるいは符号化コンピュータシステムと1つ又は複数の復号化コンピュータシステムとの間のビデオビットストリームの伝送を容易にするサーバとして使用することができる。一般に、様々な異なる汎用又は専用のコンピューティングシステム構成を使用することができる。本明細書で説明されるツール及び方法とともに使用するのに適した周知のコンピューティングシステム構成の例には、これらに限定されないが、サーバファーム及びサーバクラスタ、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、スレートデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記システム又はデバイスのいずれかを含む分散コンピューティング環境等が含まれる。
【0013】
本発明は、多様な汎用又は専用のコンピューティング環境において実装され得るので、コンピューティング環境(100)は、本発明の使用又は機能の範囲に関していかなる限定をも示唆するように意図されていない。
【0014】
図1を参照すると、コンピューティング環境(100)は、少なくとも1つの処理ユニット又はプロセッサ(110)と、メモリ(120)とを含む。
図1では、この最も基本的な構成(130)が破線内に含まれている。処理ユニット(110)は、コンピュータ実行可能命令を実行し、実際の又は仮想プロセッサとすることができる。マルチ処理システムにおいて、複数の処理ユニットがコンピュータ実行可能命令を実行して、処理能力を向上させる。メモリ(120)は、揮発性メモリ(例えばレジスタ、キャッシュ、RAM)、非揮発性メモリ(例えばROM、EEPROM、フラッシュメモリ)又はこれらの2つの何らかの組み合わせとすることができる。メモリ(120)は、同期予測ビデオフレームの動的な挿入を実装するソフトウェア(180)を格納する。
【0015】
図1の様々なブロックは、明確性のために線で示されているが、実際には、様々なコンポーネントの線引きはこのように明確ではなく、比喩的に言うと、
図1及び以下で検討される他の図面の線は、より正確には、グレーで不鮮明なものであろう。例えばディスプレイデバイスのようなプレゼンテーションコンポーネントを、I/Oコンポーネントと考えてもよい。またプロセッサがメモリを有する。本発明者らは、そのようなことが技術的性質であることを認識しており、
図1の図形は単に、本発明の1つ又は複数の実施形態との関連で使用され得る例示のコンピューティングデバイスの例にすぎないことを繰り返し述べておく。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」等のようなカテゴリ間に区別はなく、これら及び「コンピュータ」、「コンピューティング環境」若しくは「コンピューティングデバイス」への言及は全て
図1の範囲内に含まれる。
【0016】
コンピューティング環境(100)は、付加的な機能を有することがある。
図1において、コンピューティング環境(100)は、ストレージ(140)と、1つ又は複数の入力デバイス(150)と、1つ又は複数の出力デバイス(160)と、1つ又は複数の通信接続部(170)を含む。バス、コントローラ又はネットワークのような相互接続機構(図示せず)が、コンピューティング環境(100)のコンポーネントを相互に接続する。典型的に、オペレーティングシステムソフトウェア(図示せず)は、コンピューティング環境(100)内で動作する他のソフトウェアの動作環境を提供し、コンピューティング環境(100)のコンポーネントのアクティビティを調整する。
【0017】
ストレージ(140)は、取外し可能であっても取外し不可能であってもよく、コンピュータ読取可能記憶媒体を含み得る。コンピュータ読取可能記憶媒体は、磁気ディスク、磁気テープ又はカセット、CD−ROM、CD−RW、DVD、あるいは情報を格納するのに使用することができ、コンピューティング環境(100)内でアクセス可能な任意の他の媒体等である。ストレージ(140)は、ソフトウェア(180)用の命令を格納する。
【0018】
入力デバイス(150)は、キーボード、マウス、ペン又はトラックボールのようなタッチ入力デバイス、音声入力デバイス、スキャンデバイス、ネットワークアダプタ、CD/DVDリーダ、あるいは入力をコンピューティング環境(100)に提供する別のデバイスとすることができる。出力デバイス(160)は、ディスプレイ、プリンタ、スピーカ、CD/DVDライタ、ネットワークアダプタ、あるいは出力をコンピューティング環境(100)から提供する別のデバイスとすることができる。
【0019】
通信接続部(170)は、通信媒体を介して別のコンピューティングエンティティとの通信を可能にする。したがって、コンピューティング環境(100)は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス若しくは別の一般的なネットワークノードのような1つ又は複数のリモートコンピューティングデバイスとの論理接続を使用するネットワーク環境で動作してもよい。通信媒体は、データ又はコンピュータ実行可能命令のような情報や要求を、変調データ信号で伝達する。変調データ信号は、信号内に情報を符号化する方法により設定又は変更された特性の1つ又は複数を有する信号である。限定ではなく例として、通信媒体は、電気、光、RF、赤外線、音響又は他の担体により実装される有線又は無線の技術を含む。
【0020】
ツール及び方法を、コンピュータ読取可能媒体の一般的なコンテキストで説明することができる。コンピュータ読取可能媒体は、記憶媒体又は通信媒体とすることができる。コンピュータ読取可能記憶媒体は、コンピューティング環境内でアクセス可能な任意の記憶媒体とすることができるが、コンピュータ読取可能記憶媒体という用語は伝播信号を指すことはなく、その反対もそうである。限定ではなく例として、コンピューティング環境(100)では、コンピュータ読取可能記憶媒体は、メモリ(120)、ストレージ(140)及びこれらの組み合わせを含む。
【0021】
ツール及び方法を、コンピュータ実行可能命令の一般的なコンテキストで説明することができる。コンピュータ実行可能命令は、プログラムモジュール等に含まれ、コンピューティング環境内で、対象となる実際のプロセッサ又は仮想プロセッサ上で実行される。一般に、プログラムモジュールは、特定のタスクを実行するか特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造等を含む。プログラムモジュールの機能は、様々な実施形態に応じて、プログラムモジュール間で組み合わせてもよく、分割してもよい。プログラムモジュールのコンピュータ実行可能命令は、ローカル又は分散コンピューティング環境において実行され得る。分散コンピューティング環境では、プログラムモジュールを、ローカルとリモート双方のコンピュータ記憶媒体に配置してもよい。
【0022】
説明の目的で、詳細な説明では、「決定する」、「選択する」、「調整する」、「動作する」等の用語を使用して、コンピューティング環境におけるコンピュータの動作を説明している。これら及び他の類似の用語は、コンピュータによって実行される動作の高レベルの抽象化であり、人間(ユーザのような)による動作の実行が明示的に記載されていない限り、人間によって実行される動作と混同されるべきではない。これらの用語に対応する実際のコンピュータの動作は、実装に応じて変化する。
【0023】
II. 同期予測ビデオフレームの動的な挿入
A. システム及び環境
図2は、ビデオ伝送環境(200)の概略図であり、このビデオ伝送環境とともに、説明される実施形態の1つ又は複数が実装され得る。環境(200)は符号化コンピュータシステム(210)を含むことができる。符号化コンピュータシステム(210)は、規格又はプロトコルに従ってビデオデータを符号化し、該ビデオデータをビットストリーム(220)で1つ又は複数の復号化コンピュータシステム(230)に伝送する。これは、様々な異なる符号化の規格及び技術のいずれかを使用して行うことができる。例えばスケーラブルビデオ規格を使用してもよい。そのようなスケーラブルビデオ符号化規格の例は、ITU−T 勧告 H.264(2011年6月)において説明されるようなH.264 SVC(scalable video coding)であるが、本明細書で説明される技術を、他の規格で用いてもよい。ビットストリーム(220)は、コンピュータネットワーク(240)を介して伝送されることが可能であり、コンピュータネットワーク(240)は、グローバルコンピュータネットワーク(例えばインターネット)及び/又は1つ若しくは複数の他のネットワーク(例えばエクストラネット、ローカルエリアネットワーク、ワイドエリアネットワーク等)を含み得る。この伝送は伝送サーバ(250)にも補助され得る。例えば伝送サーバ(250)は、符号化コンピュータシステム(210)と復号化コンピュータシステム(230)との間のインタミディアリとして機能することができる。また符号化コンピュータシステム(210)は、自身のビットストリームを符号化して、これらを復号化コンピュータシステム(230)のような他のコンピュータシステムに送信することができ、復号化コンピュータシステム(230)はビデオビットストリームを受信して復号化することができる。一例において、コンピュータシステム(210及び230)は、ビデオ会議のようなリアルタイムのオーディオビジュアルイベントに参加していることがあり、この場合、ビデオビットストリームは複数のコンピュータシステム間で送信される。
【0024】
ビットストリーム(220)内のデータは、復号化コンピュータシステム(230)への伝送中に失われる可能性がある。例えば損失データは遅れることがあるので、データが復号化コンピューティングシステムに届くのが、使用には遅すぎることがあり、あるいはデータが復号化コンピュータシステムに届かないこともある。いずれにしても、そのデータは失われたと考えられる。復号化コンピュータシステム(230)及び/又は伝送サーバ(250)は、1つ又は複数の損失通知(loss notice)を符号化コンピュータシステム(210)に送信して、損失したデータを識別する(例えばどのフレーム及び/又はフレームレイヤが損失データの全体又は一部を含んでいたかを識別する)。損失通知(260)は、ビットストリーム(220)と同じプロトコルを使用する伝送で送信されるか、1つ又は複数の帯域外通信で送信され得る。そのような損失通知(260)を受信すると、符号化コンピュータシステム(210)は、同期予測ビデオフレーム(270)を符号化してビットストリーム(220)内に挿入する。同期予測ビデオフレーム(270)は、予測を使用して符号化されるが、この場合、この予測は、損失通知(260)で識別されるデータを、直接的にも間接的にも参照しない(予測は、損失通知(260)内で識別されるデータを参照せず、損失通知(260)内で識別されるデータを参照するデータも参照しない等)。そのようなビデオフレーム(270)を使用して、損失データに起因して同期されていなかった復号化コンピュータシステム(230)を符号化コンピュータシステム(210)と同期させることができる。
【0025】
したがって、ビデオフレーム(270)は、損失データに起因して生じるドリフトをなくすことができる。同期予測ビデオフレーム(270)は、損失データを含むフレームの後にある次のフレームであるか、又は何らかの後方のフレームであり得る。例えば符号化コンピュータシステム(210)は、該符号化コンピュータシステム(210)がビットストリーム(220)内の1つ又は複数の後続フレームを符号化して送信するまで、損失通知(260)を受信しないことがある。損失データを含むフレームと、同期予測ビデオフレーム(270)との間のインターリーブするフレームについて、復号化コンピュータシステム(230)は、これらのインターリーブするフレームを落とすか隠すこと等によって、損失データへの依拠による悪影響を避ける低減する手段を講じることができる。
【0026】
B. 同期予測ビデオフレームの動的な挿入の例
符号化コンピュータシステム(210)は、異なる技術及び/又は異なるタイプの挿入された同期予測ビデオフレーム(270)を使用して同期を可能にする。H.264 SVCのようなスケーラブルな符号化されたビデオについて、(データ損失の通知と該データ損失の位置(例えばどのフレーム及び/又はどのレイヤか)を受信することにより)損失の位置を分析すること、及びレイヤ間の依存性と予測符号化構造に基づいて適切な同期情報を挿入することにより、性能が改善され得る。以下の説明では、動的な同期ビデオフレームの挿入が、例としてH.264 SVCからの一部の予測符号化構造との関連で説明されるが、ツール及び方法は他の規格にも適用可能である。そのような方法及びツールの一部の例を、次に
図3〜
図5を参照して検討する。
【0027】
ここで
図3を参照すると、周期的なキーフレームを有する標準予測構造(300)の例が図示されている。各フレームは、ベースレイヤ(302)と拡張レイヤ(304)(又は図示していないが複数の拡張レイヤ)とを含むことができ、予測の参照が、同じフレーム内又は異なるフレームのレイヤ間の矢印で示されている。ビデオは、拡張レイヤを追加するかフレームから省くことによってスケーリングされ得る。例えば拡張レイヤは、追加の品質特徴(例えばより小さな量子化ステップサイズ)及び/又はより高い空間解像度を追加することがある。例えば予測構造(300)は、周期的なキーフレームを有するH.264の中粒度のスケーラビリティ(MGS:medium grain scalability)のビットストリームの予測構造とすることができる。図示される標準予測構造(300)は、逐次順に0から10まで番号が付けられたフレームを示しており、
図3〜
図5の他の予測構造内のフレームについても同様の順番が示されている。
【0028】
標準予測構造(300)は、瞬時復号化リフレッシュ(IDR:instantaneous decoding refresh)型のキーフレーム(310)(フレーム0)で開始することができるが、このフレームは、イントラ符号化されたキーフレームである。本明細書で使用されるとき、キーフレームは、インターフレーム予測を行わないもの、又は他のキーフレームを参照するインターフレーム予測のみを行うものに限定されるフレームである。IDR型のキーフレーム(310)は、イントラフレーム予測を行うことができ、該イントラフレーム予測では、(品質拡張レイヤのような)拡張レイヤ(304)は、そのフレームのベースレイヤ及び潜在的にはそのフレームの低い拡張レイヤを(直接又は間接的に)参照する予測により符号化される。加えて、IDR型のキーフレーム(310)は、後続フレームが、IDR型のキーフレーム(310)に先行するフレームへの予測参照を含むべきでないことを伝えることができる。
【0029】
IDR型のキーフレーム(310)の後に、標準予測フレーム(330)(フレーム1、2、3、4、6、7、8及び9)が続く。標準予測フレーム(330)はそれぞれ、ベースレイヤ(302)と拡張レイヤ(304)とを含むことができる。標準予測フレーム(330)の各ベースレイヤ(302)は、前のフレームの最も高い拡張レイヤを参照する予測を用いて符号化され得る。標準予測フレーム(330)の各拡張レイヤ(304)は、同様に前のフレームの最も高い拡張レイヤを参照し、かつベースレイヤ(302)及び/又は同じフレームの1つ又は複数の低い拡張レイヤを参照する予測を用いて符号化され得る。
【0030】
図3の標準予測構造(300)は、予測キーフレーム(320)(フレーム5及び10)の周期的な挿入を含むことができる。各予測キーフレーム(320)は、他のキーフレーム(320及び/又は310)を参照するが、標準予測フレームは参照しない予測を含むことができる。したがって、予測キーフレーム(320)は、前のキーフレームが失われていない限りにおいて、符号化コンピュータシステムと復号化コンピュータシステムとの間の同期を可能にすることができる。したがって、標準予測フレーム(330)に使用される保護と比べて、予測キーフレーム(320)について、損失に対する追加の保護を用いてもよい。キーフレーム(310又は320)が失われる場合、次いで符号化コンピュータシステムは、その損失の通知があると、IDR型のキーフレーム(320)を挿入することができる。
【0031】
引き続き
図3を参照して、動的な予測キーフレームを有する予測構造(350)について検討する。予測構造(350)は、符号化コンピュータシステムが損失データ(360)の通知を受け取ることを除いて、上述の標準予測構造(300)と同じものとすることができ、損失データ(360)を含むレイヤは、
図3〜
図5において黒く塗りつぶされている。フレーム6において、損失データ(360)が拡張レイヤ(304)にあるが、ベースレイヤ(302)は失われていない。標準予測構造(300)に従った場合、次の標準予測フレーム(330)(フレーム7)は、損失のある拡張レイヤ(すなわち、損失データを有する拡張レイヤ)を参照する予測を行っていたであろう。しかしながら、符号化コンピュータシステムは、損失データの通知を受信し、予測キーフレーム(320)を符号化してフレーム7として挿入することができる。この予測キーフレーム(320)は、前のキーフレーム(フレーム5)を参照するが、損失データ(360)を有する標準予測フレーム(330)は参照しない予測を含むことができる(予測キーフレーム(320)は、そのような標準予測フレーム(330)を参照しないものに限られるためである)。したがって、フレーム7として挿入される予測キーフレーム(320)は、同期予測ビデオフレームとして機能して、フレーム6の拡張レイヤ(304)内の損失データ(360)から生じ得るドリフトをなくすことができる。
【0032】
引き続き
図3を参照すると、フレーム9では、損失データ(360)がフレーム9のベースレイヤ(302)にある。ベースレイヤ(302)内のデータが失われ、フレーム9の拡張レイヤ(304)は、ベースレイヤ(302)を参照する予測を含むので、(フレーム9の拡張レイヤ(304)の周囲を破線で示しているように)拡張レイヤ(304)を正しく復号化することができない。したがって、フレーム9の拡張レイヤ(304)を参照する予測を用いる後続フレームを正しく復号化することができないことになり、その結果、これらの後続フレームにおいてドリフトが生じる。しかしながら、符号化コンピュータシステムは、フレーム9内の損失データ(360)の通知を受信し、予測キーフレーム(320)を符号化してビットストリーム内にフレーム10として挿入することによって応答することができ、その結果、フレーム10は、フレーム7として符号化されて挿入された予測キーフレーム(320)のように、同期予測ビデオフレームとして機能することができる。予測キーフレーム(320)は、何らかのインターフレーム予測を使用するので、これらの予測キーフレームは、IDR型のキーフレームのようなイントラ符号化されるフレームよりも、より効率的に符号化されることが可能であり、同期及び損失データからドリフトをなくすことも可能にすることができる。
【0033】
次に
図4を参照して、同期予測ビデオフレームの動的な挿入の使用の別の例を検討する。例えばこれは、H264 SVC規格によるMGS構造とともに用いられてもよい。周期的なキーフレームを有さない標準予測構造(400)が
図4の上部に図示されている。標準予測構造(400)は、図示されるように標準IDR型のキーフレーム(410)で、あるいはLIDR型のキーフレーム(412)(
図4の下部を参照されたい)で開始することができる。LIDR型のキーフレーム(412)は、長期フレームが、長期フレームでないフレーム(例えば標準IDR型のキーフレーム)を用いて行われるものよりも長いアクティブフレーム枠で保持され得ることを除いて、上述のIDR型のキーフレーム(410)と同様であり得る。IDRフレーム(410)の後に、標準予測フレーム(430)が続くことができる。この標準予測フレーム(430)は、上述の標準予測フレーム(330)と同じものとすることができる。フレーム(410及び430)はそれぞれ、上述のようにベースレイヤ(402)と1つ又は複数の拡張レイヤ(404)を有することができる。
【0034】
図4の下部に予測構造(450)を図示しており、予測構造(450)は、その開始部にLIDR型のキーフレーム(412)を有し、その後方に動的な予測キーフレームを有する。図示されるように、フレーム6の拡張レイヤ(404)及びフレーム9のベースレイヤ(402)は、損失データ(460)を含む。これらの場合において、符号化コンピュータシステムは、長期予測キーフレーム(420)を符号化してビットストリームに挿入することによって、損失データの各通知に対して応答することができる。そのようなフレームは、LIDR型キーフレーム(412)に関連して上述したように、標準フレームよりも長く保持され得る。したがって、最新のキーフレームは、少なくとも別のキーフレームが符号化されて送信されるまで、復号化バッファに保持され得る。また、長期予測キーフレーム(420)は、他のキーフレームを参照することができる予測を含むことができるが、標準予測フレーム(430)を参照しないものに限られる。したがって、各長期予測キーフレーム(420)は、データを損失した後に、結果して生じるドリフトをなくすことができる、符号化コンピュータシステムと復号化コンピュータシステムとの同期を可能する同期予測フレームとして機能することができる。
【0035】
次に
図5を参照して、異なる予測構造を有する同期予測ビデオフレームの使用の別の例を検討する。予測キーフレームを有しない標準予測構造(500)が
図5の上部に図示されている。標準予測構造(500)は、上述の標準予測構造(400)と同様のものとすることができる。しかしながら、それぞれの標準予測フレーム(530)は、前のフレームの拡張レイヤ(504)を参照するのではなく、前のフレームのベースレイヤ(502)を参照する予測を含むベースレイヤを有することができる。例として、標準予測構造(500)は、H.264 SVC規格の下で粗粒にスケーラブルな(CGS:coarse grain scalable)ビットストリーム又は空間的にスケーラブルなビットストリームに従って構造化され得る。
【0036】
図5の下部に、動的なアンカ予測フレームを有する予測構造(550)を図示している。
図5に示されるように、フレーム6の拡張レイヤ(504)とフレーム9のベースレイヤ(502)は損失データ(560)を含む。フレーム6の拡張レイヤ(504)における損失データ(560)の通知を受信したことに応答して、符号化コンピュータシステムは、アンカ予測フレームを符号化してフレーム7として挿入することができる。アンカ予測フレームは、フレーム6のベースレイヤ(502)を参照する予測を用いるベースレイヤ(502)を含むことができる。アンカ予測フレーム(520)のベースレイヤ(502)を、標準予測フレーム(520)として符号化することができ、フレーム7の拡張レイヤ(504)は、イントラフレーム参照を含むもののみに限られる予測を含むことができる。したがって、アンカ予測フレームは、前のフレームのベースレイヤ(502)を参照するイントラフレーム予測を含んで、符号化効率を向上させることができるが、損失データ(560)を含むフレーム6の拡張レイヤ(504)を参照するインターフレーム予測を避けることができる。
【0037】
フレーム9のベースレイヤ(502)における損失データ(560)の通知を受信したことに応答して、符号化コンピュータシステムは、IDR型のキーフレーム(510)を符号化してフレーム10として挿入し、フレーム9内の損失データ(560)からのドリフトをなくすことができる。
【0038】
上記のタイプの同期予測フレームの組み合わせを使用することも可能であることに留意されたい。例えばアンカ予測フレーム(520)と長期予測キーフレーム(420)との組み合わせを使用して、同じビットストリーム(例えばH.264 CGSビットストリーム)の損失に対処することも可能である。
【0039】
III.同期予測ビデオフレームの動的な挿入の方法
同期予測ビデオフレームの動的な挿入のための幾つかの方法を以下で検討する。これらの方法の各々は、コンピューティング環境で実行され得る。例えば各方法は、少なくとも1つのプロセッサと、(メモリが命令(例えばオブジェクト、コード)を格納し、プロセッサがこれらの命令を実行し、プロセッサがこの方法を行うとき)少なくとも1つのプロセッサによって実行されると少なくとも1つのプロセッサに方法を実行させる命令を含むメモリとを含むコンピュータシステムにおいて実行され得る。同様に、1つ又は複数のコンピュータ読取可能記憶媒体は、そのコンピュータ読取可能記憶媒体上に具現化され、少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサに本方法を実行させる、コンピュータ実行可能な命令を有する。
【0040】
図6を参照して、動的予測ビデオフレームの動的な挿入の方法を説明する。この方法は、符号化システムがビットストリームを符号化し(605)、コンピュータネットワークを介して復号化コンピュータシステムに送信すること(610)を含むことができる。ビデオビットストリームは、符号化コンピュータシステムが、ビットストリームからの損失データを通知されていないとき、標準予測構造に従うことができる。符号化コンピュータシステムは、ビットストリームにおける損失データの通知を受信することができる(620)。損失データは、ビットストリームの参照フレームの少なくとも一部を含むことができる。この通知に応答して、符号化コンピュータシステムは、損失データを参照することなく、ビットストリームの1つ又は複数の他の前に送信されたフレームを参照する予測を用いる同期予測フレームを、動的に符号化することができる(630)。符号化コンピュータシステムは、標準予測構造によると損失データを参照したであろう予測に係る異なる予測フレームを挿入するように、標準予測構造が指示したであろうビットストリーム内の位置に、同期予測フレームを挿入することができる。
【0041】
同期予測フレームは、予測キーフレームを含むことができ、該予測キーフレームの予測は、参照フレームに先行する1つ又は複数の他のキーフレームを参照するものに限られる。予測キーフレームの予測は、1つ又は複数のイントラ符号化されたキーフレーム(例えばIDRフレーム)及び/又は1つ又は複数の予測キーフレームを参照することができる。
【0042】
同期予測フレームは、長期予測キーフレームとすることができ、該長期予測キーフレームの予測は、損失データに先行する1つ又は複数の他のキーフレームを参照するものに限られる。長期予測キーフレームは、1つ又は複数の他の長期キーフレームを参照することができる。
【0043】
標準構造の下で符号化されて送信されていた異なる予測フレームは、参照フレームの拡張レイヤを参照していたフレームである可能性もある。同期予測フレームは、損失フレームに先行する1つ又は複数のキーフレームを参照する予測によるキーフレームとすることができる。損失データは、参照フレームの拡張レイヤの少なくとも一部、及び/又は参照フレームのベースレイヤの少なくとも一部を含むことがある。ベースレイヤは、拡張レイヤの予測によって参照される可能性がある。
【0044】
損失データは、損失した拡張レイヤの少なくとも一部を含むことがあり、同期予測フレームは、該同期予測フレームのベースレイヤを参照する拡張レイヤを含むことがある。同期予測フレームの拡張レイヤの予測は、損失した拡張レイヤを参照するのを避けることができる。加えて、異なる予測フレームの拡張レイヤは、損失データの少なくとも一部を有する拡張レイヤを参照していたフレームである可能性がある。同期予測フレームのベースレイヤの予測は、損失データの少なくとも一部を含むフレームのベースレイヤを参照し得る。
【0045】
次に
図7を参照して、同期予測ビデオフレームの動的な挿入の方法を説明する。本方法は、ビデオビットストリームを符号化して(705)、コンピュータネットワークを介して復号化コンピュータシステムへ送信すること(710)を含むことができる。ビデオビットストリームは、符号化コンピュータシステムが、ビットストリームからの損失データについて通知されていないとき、標準予測構造に従うことができる。ビットストリームにおける損失データの通知が受信され得る(720)。ここで、損失データは、ビットストリームの参照フレームの少なくとも一部を含み得る。通知に応答して、標準予測構造は、損失データを参照しない予測により同期予測フレームを符号化し、ビットストリームに挿入することによって動的に修正され得る(730)。
【0046】
同期予測フレームを挿入することは、同期予測フレームをビットストリーム内の位置に挿入することを含むことができ、このビットストリーム内の位置は、標準予測構造によると損失データを参照することになる予測に係る異なる予測フレームを挿入するように、標準予測構造が指示したであろう位置である。異なるフレームは、参照フレームの拡張レイヤを参照したであろうフレームとすることができる。例えば参照フレームの拡張レイヤは、品質拡張レイヤ又は空間拡張レイヤであってよい。損失データは、拡張レイヤの少なくとも一部を含んでもよく、同期予測フレームの予測は、拡張レイヤを参照せず、拡張レイヤの下のベースレイヤを参照することができる。同期予測フレームは、ビットストリーム内の損失データに先行する1つ又は複数のキーフレームを参照する予測を用いるキーフレームを含むことができる。
【0047】
次に
図8を参照して、同期予測ビデオフレームの動的な挿入の更に別の方法を説明する。本方法は、符号化コンピュータシステムが、リアルタイムビデオビットストリームを符号化して(805)、コンピュータネットワークを介して伝送サーバ経由で復号化コンピュータシステムへと送信すること(810)を含むことができる。ビデオビットストリームは、符号化コンピュータシステムが、ビットストリームからの損失データについて通知されていないとき、フレーム間の標準予測構造に従うことができる。符号化コンピュータシステムは、ビットストリーム内の損失データの通知を受信することができる(820)。損失データは、ビットストリームの参照フレームの少なくとも一部を含むことができる。通知に応答して、符号化コンピュータシステムは、予測キーフレームを動的に符号化すること(830)ができ、この予測キーフレームの予測は、参照フレームに先行するビットストリーム内の1つ又は複数の他のキーフレームを参照するが、参照フレームは参照しない。予測キーフレームは、標準予測構造が、該標準予測構造によると損失データを参照することになる予測に係る異なる予測フレームを挿入するように指示したであろうビットストリーム内の位置に挿入され得る。
【0048】
本主題を、構造的特徴及び/又は方法的動作に特有の言語で説明してきたが、特許請求の範囲において定義される主題は、必ずしも上述の具体的な特徴又は動作に限定されないことを理解されたい。むしろ、上述の具体的な特徴又は動作は、請求項を実装する例示的な形式として開示される。