(57)【要約】  ビデオフレームの並べ替えに起因する待ち時間を制限することにより、及びビデオフレームの符号化データに伴う１又は複数のシンタックスエレメントでフレーム並べ替え待ち時間の制約を示すことにより、ビデオ符号化及び復号化の際の待ち時間を低減する技術及びツールを提供する。例えば、ビデオエンコーダを有するリアルタイム通信ツールは、フレーム並べ替え待ち時間の制約を示すシンタックスエレメントを設定し、次にシンタックスエレメントを出力する。このフレーム並べ替え待ち時間の制約は、ビデオシーケンスの複数のフレーム間のフレーム間依存性と一致する。ビデオデコーダを有する対応するリアルタイム通信ツールは、フレーム並べ替え待ち時間の制約を示すシンタックスエレメントを受信し、該シンタックスエレメントに基づきフレーム並べ替え待ち時間の制約を決定し、フレーム並べ替え待ち時間の制約を用いて、（出力順序の観点から）再構成フレームの出力準備ができたときを決定する。
2014523693.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデコーダを備えるコンピューティングシステムにおいて、
待ち時間の制約を示す１又は複数のシンタックスエレメントを受信し解析するステップと、
ビデオシーケンスの複数のフレームの符号化データを受信するステップと、
前記ビデオデコーダで、前記複数のフレームのうちの１つを再構成するために、前記符号化データの少なくとも一部を復号化するステップと、
前記の再構成されたフレームを出力するステップと、
を有する方法。
【請求項２】
前記待ち時間の制約は、フレーム並べ替え待ち時間の制約であり、前記方法は、
前記１又は複数のシンタックスエレメントを解析するステップと、
前記１又は複数のシンタックスエレメントに基づき、前記フレーム並べ替え待ち時間の制約を決定するステップと、
前記フレーム並べ替え待ち時間の制約を用いて、前記ビデオシーケンスの前記複数のフレームの出力順序の観点から、前記再構成されたフレームの出力準備ができたときを決定するステップと、
を更に有する請求項１に記載の方法。
【請求項３】
前記ビデオシーケンスの前記複数のフレームは、時間的階層構造に従って編成され、異なるシンタックスエレメントは、前記時間的階層構造の異なる時間レイヤについてのフレーム並べ替え待ち時間の異なる制約を示し、前記方法は、前記出力の時間分解能に依存して、前記フレーム並べ替え待ち時間の異なる制約のうちの１つを選択するステップ、を更に有する請求項２に記載の方法。
【請求項４】
前記待ち時間の制約は、フレーム並べ替え待ち時間の制約であり、前記フレーム並べ替え待ち時間の制約は、前記ビデオシーケンス内の任意のフレームについて許容される並べ替え待ち時間である、請求項１に記載の方法。
【請求項５】
前記１又は複数のシンタックスエレメント及び前記符号化データは、符号化ビデオビットストリームのシンタックスの一部として伝達され、前記方法は、
復号化ピクチャバッファの最大サイズを示すバッファサイズシンタックスエレメント及び並べ替えのためのフレームメモリの最大サイズを示すフレームメモリシンタックスエレメントを受信及び解析するステップであって、前記バッファサイズシンタックスエレメント及び前記フレームメモリシンタックスエレメントは、前記待ち時間の制約を示す前記１又は複数のシンタックスエレメントと異なる、ステップ、
を更に有する請求項１に記載の方法。
【請求項６】
前記１又は複数のシンタックスエレメントは、シーケンスパラメータセット、ピクチャパラメータセット、前記符号化データも含むメディア格納ファイルのシンタックス、前記符号化データも含むメディア送信ストリームのシンタックス、メディア特性交渉プロトコル、前記符号化データと共に多重化されたメディアシステム情報、又は前記符号化データに関連するメディアメタデータの一部として伝達される、請求項１に記載の方法。
【請求項７】
前記１又は複数のシンタックスエレメントの１つの可能な値は、前記待ち時間の制約が不定である又は既定値を有すると示し、前記１又は複数のシンタックスエレメントの他のの可能な値は、前記待ち時間の制約に値する整数を示し、又は
前記１又は複数のシンタックスエレメントの値は、並べ替えのためのフレームメモリの最大サイズに対する前記待ち時間の制約に値する整数を示し、前記並べ替えのためのフレームメモリの最大サイズは、異なるシンタックスエレメントで示される、請求項１に記載の方法。
【請求項８】
コンピューティングシステムにおいて、
ビデオシーケンスの複数のフレーム間のフレーム間依存性と一致する待ち時間の制約を示す１又は複数のシンタックスエレメントを設定するステップと、
前記１又は複数のシンタックスエレメントを出力するステップであって、それにより、前記複数のフレームの出力順序の観点から、再構成フレームの出力準備ができたときの決定を実現する、ステップと、
を有する方法。
【請求項９】
前記待ち時間の制約は、フレーム並べ替え待ち時間の制約であり、前記コンピューティングシステムはビデオエンコーダを備え、前記方法は、
ビデオシーケンスの複数のフレームを受信するステップと、
前記ビデオエンコーダで、符号化データを生成するために前記複数のフレームを符号化するステップであって、前記符号化するステップは、前記フレーム並べ替え待ち時間の制約と一致する前記フレーム間依存性を用いる、ステップと、
格納又は送信のために前記符号化データを出力するステップと、
を更に有する請求項８に記載の方法。
【請求項１０】
プロセッサとメモリと記憶装置とを有するコンピューティングシステムであって、前記コンピューティングシステムは、
フレーム並べ替え待ち時間の制約を示す１又は複数のシンタックスエレメントを受信し解析するステップと、
前記１又は複数のシンタックスエレメントに基づき前記フレーム並べ替え待ち時間の制約を決定するステップであって、前記フレーム並べ替え待ち時間の制約は、出力順序で所与のフレームに先行でき符号化順序で該所与のフレームの後に続くことができるフレームの最大数の観点で表される、ステップと、
ビデオシーケンスの複数のフレームの符号化データを受信するステップと、
ビデオデコーダで、前記複数のフレームのうちの１つを再構成するために、前記符号化データの少なくとも一部を復号化するステップと、
前記の再構成されたフレームを出力するステップであって、前記ビデオシーケンスの前記複数のフレームの出力順序の観点から、前記再構成されたフレームの出力準備ができたときを決定するために前記フレーム並べ替え待ち時間の制約を用いるステップを含む、ステップと、
を有する方法を実行するようにされたコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化及び復号化における待ち時間の低減に関する。
【背景技術】
【０００２】
技術者は、デジタルビデオのビットレートを低減するために圧縮（ソースコーディング又はソースエンコーディングとも呼ばれる）を用いる。圧縮は、情報をより低いビットレート形式に変換することにより、ビデオ情報を格納及び送信するコストを低減する。伸張（デコーディングとも呼ばれる）は、圧縮形式から元の情報のバージョンを再構成する。「コーデック」は、エンコーダ／デコーダシステムである。
【０００３】
過去２０年間に亘り、様々なビデオコーデック規格が採用されてきた。このような規格は、Ｈ．２６１、Ｈ．２６２（ＭＰＥＧ−２又はＩＳＯ／ＩＥＣ１３８１８−２）、Ｈ．２６３及びＨ２６４（ＡＶＣ又はＩＳＯ／ＩＥＣ１４４９６−１０）規格、並びにＭＰＥＧ−１（ＩＳＯ／ＩＥＣ１１１７２−２）、ＭＰＥＧ−４  Ｖｉｓｕａｌ（ＩＳＯ／ＩＥＣ１４４９６−２）及びＳＭＰＴＥ４２１Ｍ規格を含む。更に最近は、ＨＥＶＣ規格を策定中である。ビデオコーデック規格は、通常、符号化ビデオビットストリームのシンタックスのオプションを定め、符号化及び復号化の際に特定の機能が用いられるとき、ビットストリーム内のパラメータを詳細に記述する。多くの場合、ビデオコーデック規格は、デコーダが復号化する際に正しい結果を達成するために実行すべき復号化動作に関する詳細も提供する。
【０００４】
圧縮の基本的目標は、良好なレート歪み性能を提供することである。したがって、特定のビットレートで、エンコーダは、最高品質のビデオを提供しようとする。或いは、特定レベルの品質／元のビデオに対する忠実さで、エンコーダは、最低ビットレートの符号化ビデオを提供しようとする。実際には、使用シナリオに依存して、符号化時間、符号化の複雑さ、符号化リソース、復号化時間、復号化の複雑さ、復号化リソース、全体の遅延、及び／又は再生の滑らかさも、符号化及び復号化中に行われる決定に影響を与える。
【０００５】
例えば、記憶装置からのビデオ再生、ネットワーク接続を介してストリーミングされる符号化データからのビデオ再生、及び（あるビットレートから別のビットレートへの、又はある規格から別の規格への）ビデオのトランスコーディングのような使用シナリオを検討する。エンコーダ側では、このような用途は、全く時間に依存しないオフライン符号化を可能にする。したがって、エンコーダは、ビデオを圧縮する最も効率的な方法を見付けるために、符号化時間を増大し、符号化中に使用されるリソースを増大でき、それによりレート歪み性能を向上できる。デコーダ側で少量の遅延が許容可能な場合、エンコーダは、例えばシーケンスの遙か前方にあるピクチャからのピクチャ間依存性を利用することにより、レート歪み性能を更に向上できる。
【０００６】
また、遠隔デスクトップ会議、監視ビデオ、ビデオ電話、及び他のリアルタイム通信シナリオのような使用シナリオを検討する。このような用途は、時間に依存する。入力ピクチャの記録と出力ピクチャの再生との間の短い待ち時間が、性能の主要な要因である。非リアルタイム通信に適用される符号化／復号化ツールがリアルタイム通信シナリオに適用されるとき、全体の待ち時間は、許容できない程長くなる場合が多い。これらのツールが符号化及び復号化中に導入する遅延は、通常のビデオ再生の性能を向上し得るが、それらはリアルタイム通信を台無しにしてしまう。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
纏めると、ビデオ符号化及び復号化において待ち時間を減少させる技術及びツールを提示する。この技術及びツールは、待ち時間を低減し、リアルタイム通信における反応を向上する。例えば、技術及びツールは、ビデオフレームの並べ替えに起因する待ち時間を制限することにより、及びビデオフレームの符号化データに伴う１又は複数のシンタックスエレメントでフレーム並べ替え待ち時間の制約を示すことにより、全体の待ち時間を低減する。
【課題を解決するための手段】
【０００８】
本願明細書に記載の技術及びツールの一態様によると、ビデオエンコーダのようなツール、ビデオエンコーダを有するリアルタイム通信ツール、又は他のツールは、待ち時間の制約（例えば、ビデオシーケンスの複数のフレーム間のフレーム間依存性と一致するフレーム並べ替え待ち時間の制約）を示す１又は複数のシンタックスエレメントを設定する。ツールは、シンタックスエレメントを出力し、それにより、フレームの出力順序の観点から、再構成フレームが出力準備ができたときの決定をより簡単且つ迅速に実現する。
【０００９】
本願明細書に記載の技術及びツールの別の態様によると、ビデオデコーダのようなツール、ビデオデコーダを有するリアルタイム通信ツール、又は他のツールは、待ち時間の制約（例えば、フレーム並べ替え待ち時間の制約）を示す１又は複数のシンタックスエレメントを受信し解析する。ツールは、ビデオシーケンスの複数のフレームの符号化データも受信する。符号化データの少なくとも一部は、フレームのうちの１つを再構成するために復号化される。ツールは、シンタックスエレメントに基づき制約を決定でき、次に待ち時間の制約を用いて、（出力順序の観点から）再構成フレームの出力準備ができたときを決定できる。ツールは、再構成フレームを出力する。
【００１０】
本発明の前述の及び他の目的、特徴及び利点は、添付の図面を参照して進められる以下の詳細な説明から一層明らかになるだろう。
【図面の簡単な説明】
【００１１】
【図１】幾つかの記載の実施形態が実装され得る例示的なコンピューティングシステムの図である。
【図２Ａ】幾つかの記載の実施形態が実装され得る例示的なネットワーク環境の図である。
【図２Ｂ】幾つかの記載の実施形態が実装され得る例示的なネットワーク環境の図である。
【図３】幾つかの記載の実施形態が実装され得る関連する例示的なエンコーダシステム図である。
【図４】幾つかの記載の実施形態が実装され得る関連する例示的なデコーダシステム図である。
【図５Ａ】例示的なシリーズにおけるフレームの符号化順序及び出力順序を示す図である。
【図５Ｂ】例示的なシリーズにおけるフレームの符号化順序及び出力順序を示す図である。
【図５Ｃ】例示的なシリーズにおけるフレームの符号化順序及び出力順序を示す図である。
【図５Ｄ】例示的なシリーズにおけるフレームの符号化順序及び出力順序を示す図である。
【図５Ｅ】例示的なシリーズにおけるフレームの符号化順序及び出力順序を示す図である。
【図６】待ち時間の制約を示す１又は複数のシンタックスエレメントを設定し出力する例示的な技術を示すフローチャートである。
【図７】待ち時間の減少した復号化のための例示的な技術を示すフローチャートである。
【発明を実施するための形態】
【００１２】
詳細な説明は、ビデオ符号化及び復号化において待ち時間を減少させる技術及びツールを提示する。この技術及びツールは、待ち時間を減少するのを助け、リアルタイム通信における反応を向上する。
【００１３】
ビデオ符号化／復号化シナリオでは、入力ビデオフレームが受信されたときとフレームが再生されるときとの間の特定の遅延は避けられない。フレームは、エンコーダにより符号化され、デコーダへ配信され、デコーダにより復号化される。そして、特定量の待ち時間が、符号化リソース、復号化リソース及び／又はネットワーク帯域についての実際的制限により引き起こされる。しかしながら、他の待ち時間は回避できる。例えば、待ち時間は、レート歪み性能を向上するために（例えばシーケンスの遙か前方にあるピクチャからのフレーム間依存性を利用するために）、エンコーダ及びデコーダにより導入される可能性がある。このような待ち時間は、レート歪み性能、プロセッサ稼働率又は再生の滑らかさの点で不利益があるかも知れないが、低減できる。
【００１４】
ここに記載される技術及びツールにより、待ち時間を抑制することにより（したがって、フレーム間依存性の時間範囲を制限することにより）及び待ち時間の制約をデコーダに示すことにより、待ち時間は減少される。例えば、待ち時間の制約は、フレーム並べ替え待ち時間の制約である。代替で、待ち時間の制約は、秒、ミリ秒、又は別の時間量の観点からの制約である。次に、デコーダは、待ち時間の制約を決定し、どのフレームが出力する準備ができているかを決定するときに該制約を使用できる。このように、遅延は、遠隔デスクトップ会議、ビデオ電話、監視ビデオ、ウェブカメラビデオ及び他のリアルタイム通信アプリケーションの場合に減少できる。
【００１５】
ここに記載する幾つかの技術革新は、Ｈ．２６４及び／又はＨＥＶＣ規格に特有のシンタックスエレメント及び動作を参照して説明される。これらの技術革新は、他の規格又はフォーマットでも実施できる。
【００１６】
より一般的には、本願明細書に記載する例に対して種々の代替が可能である。フローチャート図を参照して説明する特定の技術は、フローチャートに示す段階の順序を変更することにより、特定の段階を分割し、繰り返し、又は省略する等により変更できる。ビデオ符号化及び復号化の待ち時間を減少する種々の態様は、組みあわせて又は別個に用いることができる。異なる実施形態は、１又は複数の記載の技術及びツールを用いる。ここに記載する技術及びツールの幾つかは、背景で述べた１又は複数の問題を解決する。通常、所与の技術／ツールは、これらの全ての問題を解決しない。
【００１７】
＜Ｉ．  例示的なコンピューティングシステム＞
図１は、幾つかの記載の技術及びツールが実施され得る適切なコンピューティングシステム（１００）の汎用的な例を示す。技術及びツールは多様な汎用又は特定目的コンピューティングシステムで実施できるので、コンピューティングシステム（１００）は使用又は機能の範囲に関する如何なる限定も示唆しない。
【００１８】
図１を参照すると、コンピューティングシステム（１００）は、１又は複数の処理ユニット（１１０、１１５）及びメモリ（１２０、１２５）を有する。図１では、この最も基本的な構成（１３０）は破線で囲まれる。処理ユニット（１１０、１１５）は、コンピュータ実行可能命令を実行する。処理ユニットは、汎用中央演算処理装置（ＣＰＵ）、ＡＳＩＣ（application-specific  integrated  circuit）のプロセッサ又は任意の他の種類のプロセッサであり得る。マルチプロセッシングシステムでは、処理能力を増大するために複数の処理ユニットがコンピュータ実行可能命令を実行する。例えば、図１は、中央処理ユニット（１１０）と共にグラフィック処理ユニット又はコプロセッシングユニット（１１５）も示す。有形メモリ（１２０、１２５）は、処理ユニットによりアクセス可能な、揮発性メモリ（例えば、レジスタ、キャッシュ、ＲＡＭ）、不揮発性メモリ（例えば、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等）、又は２つの組みあわせであっても良い。メモリ（１２０、１２５）は、処理ユニットによる実行に適するコンピュータ実行可能命令の形式で、ビデオ符号化及び復号化の待ち時間を減少する１又は複数の技術革新を実施するソフトウェア（１８０）を格納する。
【００１９】
コンピュータシステムは、追加機能を有しても良い。例えば、コンピューティングシステム（１００）は、記憶装置（１４０）、１又は複数の入力装置（１５０）、１又は複数の出力装置（１６０）、１又は複数の通信接続（１７０）を有する。バス、制御部又はネットワークのような相互接続メカニズム（図示しない）は、コンピューティングシステム（１００）のコンポーネントを相互接続する。通常、オペレーティングシステムソフトウェア（図示しない）は、コンピューティングシステム（１００）において実行する他のソフトウェアのために動作環境を提供し、コンピューティングシステム（１００）のコンポーネントの活動を調整する。
【００２０】
有形記憶装置（１４０）は、取り外し可能又は取り外し不可能であっても良く、磁気ディスク、磁気テープ若しくはカセット、ＣＤ−ＲＯＭ、ＤＶＤ、又は非一時的方法で情報を格納するために使用可能な且つコンピューティングシステム（１００）内でアクセス可能な任意の他の媒体を含む。記憶装置（１４０）は、ビデオ符号化及び復号化の待ち時間を減少する１又は複数の技術革新を実施するソフトウェア（１８０）のための命令を格納する。
【００２１】
入力装置（１５０）は、キーボード、マウス、ペン又はトラックボールのようなタッチ入力装置、音声入力装置、スキャン装置、又はコンピューティングシステム（１００）に入力を供給する別の装置であっても良い。ビデオ符号化では、入力装置（１５０）は、カメラ、ビデオカード、ＴＶチューナカード、又はアナログ若しくはデジタル形式でビデオ入力を受け付ける同様の装置、又はビデオサンプルをコンピューティングシステム（１００）に読み込むＣＤ−ＲＯＭ若しくはＣＤ−ＲＷであっても良い。出力装置（１６０）は、ディスプレイ、プリンタ、スピーカ、ＣＤライタ、又はコンピューティングシステム（１００）から出力を供給する別の装置であっても良い。
【００２２】
通信接続（１７０）は、通信媒体を介して他のコンピューティングエンティティとの通信を可能にする。通信媒体は、コンピュータ実行可能命令、オーディオ又はビデオ入力又は出力、又は変調データ信号内の他のデータのような情報を伝達する。変調データ信号は、１又は複数の特性セットを有する信号であるか、又は信号内の情報をエンコードするために変更されても良い。例として、限定ではなく、通信媒体は、電気的、光学的、ＲＦ又は他のキャリアを使用できる。
【００２３】
技術及びツールは、コンピュータ可読媒体の一般的概念で記載され得る。コンピュータ可読媒体は、コンピューティング環境内でアクセス可能な任意の利用可能な有形媒体である。例として、限定ではなく、コンピューティングシステム（１００）と共に、コンピュータ可読媒体は、メモリ（１２０、１２５）、記憶装置（１４０）及びそれらの任意の組みあわせを有する。
【００２４】
技術及びツールは、対象の実際の又は仮想のプロセッサ上のコンピューティングシステムで実行される、プログラムモジュールに含まれるようなコンピュータ実行可能命令の一般的概念で記載され得る。概して、プログラムモジュールは、特定のタスクを実行し又は特定の抽象データ型を実装する、ルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造、等を含む。プログラムモジュールの機能は、種々の実施形態で必要に応じて結合され又はプログラムモジュール間で分割されても良い。プログラムモジュールのためのコンピュータ実行可能命令は、ローカル又は分散型コンピューティングシステム内で実行されても良い。
【００２５】
用語「システム」及び「装置」は本願明細書では同義的に用いられる。文脈上特に断らない限り、いずれの用語も、コンピューティングシステム又はコンピューティング装置の種類に関して如何なる限定も示唆しない。概して、コンピューティングシステム又はコンピューティング装置は、ローカル又は分散型であり、特定目的ハードウェア及び／又は汎用ハードウェアと本願明細書に記載の機能を実施するソフトウェアとの任意の組合せを含み得る。
【００２６】
提示のために、詳細な説明は、コンピューティングシステム内のコンピュータ動作を記載するために「決定する」及び「使用する」のような用語を用いる。これらの用語は、コンピュータにより実行される動作の高レベルの抽象化であり、人間により行われる動作と混同されるべきではない。これらの用語に対応する実際のコンピュータ動作は、実装に依存して変化する。
【００２７】
＜ＩＩ．  例示的なネットワーク環境＞
図２Ａ及び２Ｂは、ビデオエンコーダ（２２０）及びビデオデコーダ（２７０）を有する例示的なネットワーク環境（２０１、２０２）を示す。エンコーダ（２２０）及びデコーダ（２７０）は、適切な通信プロトコルを用いて、ネットワーク（２５０）を介して接続される。ネットワーク（２５０）は、インターネット又は他のコンピュータネットワークを含み得る。
【００２８】
図２Ａに示すネットワーク環境（２０１）では、各リアルタイム通信（ＲＴＣ）ツール（２１０）は、双方向通信のためにエンコーダ（２２０）及びデコーダ（２７０）の両方を含む。所与のエンコーダ（２２０）は、エンコーダ（２２０）からの符号化データを受け付ける対応するデコーダ（２７０）と共に、ＳＭＰＴＥ４２１Ｍ規格、ＩＳＯ−ＩＥＣ１４４９６−１０規格（Ｈ．２６４又はＡＶＣとしても知られる）、ＨＥＶＣ規格、別の規格、又は独自フォーマットに従う出力を生成できる。双方向通信は、ビデオ会議、ビデオ電話、又は他の２者間通信シナリオの一部であり得る。ず  ２Ａのネットワーク環境（２０１）は２つのリアルタイム通信ツール（２１０）を有するが、代わりに、ネットワーク環境（２０１）は、多者通信に参加する３以上のリアルタイム通信ツール（２１０）を有することも可能である。
【００２９】
リアルタイム通信ツール（２１０）は、エンコーダ（２２０）による符号化を管理する。図３は、リアルタイム通信ツール（２１０）に含まれ得る例示的なエンコーダシステム（３００）を示す。代替で、リアルタイム通信ツール（２１０）は、別のエンコーダシステムを用いる。リアルタイム通信ツール（２１０）は、デコーダ（２７０）による復号化も管理する。図４は、リアルタイム通信ツール（２１０）に含まれ得る例示的なデコーダシステム（４００）を示す。代替で、リアルタイム通信ツール（２１０）は、別のデコーダシステムを用いる。
【００３０】
図２Ｂに示すネットワーク環境（２０２）では、符号化ツール（２１２）は、デコーダ（２７０）を含む複数の再生ツール（２１４）に配信するためにビデオを符号化するエンコーダ（２２０）を有する。一方向通信は、ビデオ監視システム、ウェブカメラ監視システム、遠隔デスクトップ会議プレゼンテーション、又はビデオが符号化されある場所から１又は複数の他の場所へ送信される他のシナリオのために提供され得る。図２Ｂのネットワーク環境（２０２）は２つの再生ツール（２１４）を有するが、ネットワーク環境（２０２）は、より多くの又はより少ない再生ツール（２１４）を有することも可能である。概して、再生ツール（２１４）は、符号化ツール（２１２）と通信し、受信すべき再生ツール（２１４）のビデオストリームを決定する。再生ツール（２１４）は、このストリームを受信し、受信符号化データを適切な期間の間バッファリングし、復号化及び再生を始める。
【００３１】
図３は、符号化ツール（２１２）に含まれ得る例示的なエンコーダシステム（３００）を示す。代替で、符号化ツール（２１２）は、別のエンコーダシステムを用いる。符号化ツール（２１２）は、１又は複数の再生ツール（２１４）との接続を管理するサーバ側制御ロジックも有し得る。図４は、再生ツール（２１４）に含まれ得る例示的なデコーダシステム（４００）を示す。代替で、再生ツール（２１４）は、別のデコーダシステムを用いる。再生ツール（２１４）は、符号化ツール（２１２）との接続を管理するクライアント側制御ロジックも有し得る。
【００３２】
幾つかの場合には、待ち時間（例えば、フレーム並べ替え待ち時間）を示すためのシンタックスエレメントの使用は、特定の規格又はフォーマットに固有である。例えば、符号化データは、規格又はフォーマットに従って定められる基本符号化ビデオビットストリームのシンタックスの一部として、又は符号化データに関連する定められたメディアメタデータとして、待ち時間の制約を示す１又は複数のシンタックスエレメントを含み得る。このような場合には、リアルタイム通信ツール（２１０）、符号化ツール（２１２）及び／又は待ち時間の減少した再生ツール（２１４）は、コーデックに依存する。ここで、これらのツールが行う決定は、特定の規格又はフォーマットのビットストリームシンタックスに依存し得る。
【００３３】
他の場合には、待ち時間（例えば、フレーム並べ替え待ち時間）の制約を示すためのシンタックスエレメントの使用は、特定の規格又はフォーマットの範囲外である。例えば、待ち時間の制約を示すシンタックスエレメントは、メディア送信ストリームのシンタックス、メディア記憶ファイル、又はより一般的にはメディアシステム多重プロトコル若しくは転送プロトコルの一部として伝達され得る。或いは、待ち時間を示すシンタックスエレメントは、メディア特性交渉プロトコルに従って、リアルタイム通信ツール（２１０）、符号化ツール（２１２）及び／又は再生ツール（２１４）の間で交渉され得る。このような場合には、リアルタイム通信ツール（２１０）、符号化ツール（２１２）及び／又は待ち時間の減少した再生ツール（２１４）は、コーデックに依存しない。ここで、これらのツールは、符号化中に設定されたフレーム間依存性に対する制御レベルを条件に、任意の利用可能なビデオエンコーダ及びデコーダと共に動作し得る。
【００３４】
＜ＩＩＩ．  例示的なエンコーダシステム＞
図３は、幾つかの記載の実施形態が実装され得る関連する例示的なエンコーダシステム（３００）の図である。エンコーダシステム（３００）は、リアルタイム通信のための短待ち時間符号化モード、トランスコーディングモード、及びファイル若しくはストリームからのメディア再生のための通常符号化モードのような複数の符号化モードのうちの任意のモードで動作可能な汎用符号化ツールであり得る。或いは、エンコーダシステム（３００）は、前述の符号化モードのうちの１つに適応される特定目的符号化ツールであり得る。エンコーダシステム（３００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又は独立型アプリケーションとして実装できる。概して、エンコーダシステム（３００）は、ビデオソース（３１０）からソースビデオフレームシーケンス（３１１）を受信し、チャネル（３９０）への出力として符号化データを生成する。チャネルへ出力される符号化データは、待ち時間の減少した復号化を実現するために、待ち時間（例えば、フレーム並べ替え待ち時間）についての制約を示す１又は複数のシンタックスエレメントを含み得る。
【００３５】
ビデオソース（３１０）は、カメラ、チューナカード、記憶媒体、又は他のデジタルビデオソースであり得る。ビデオソース（３１０）は、例えば３０フレーム毎秒のフレームレートでビデオフレームシーケンスを生成する。本願明細書で用いられるように、用語「フレーム」は、概して、ソース、符号化又は再構成画像データを表す。プログレッシブビデオでは、フレームはプログレッシブビデオフレームである。例示的な実施形態では、インタレースビデオでは、インタレースビデオフレームは符号化の前にデインタレースされる。代替で、２つの相補的インタレースビデオフィールドは、インタレースビデオフレーム又は別個のフィールドとして符号化される。プログレッシブビデオフレームを示すこととは別に、用語「フレーム」は、単一のペアリングされていないビデオフィールド、ビデオフィールドの相補的ペア、所与の時間のビデオオブジェクトを表すビデオブジェクトプレーン、又は大きな画像内の関心領域を示し得る。ビデオオブジェクトプレーン又は領域は、シーンの複数のオブジェクト又は領域を含む大きな画像の一部であり得る。
【００３６】
到来するソースフレーム（３１１）は、複数のフレームバッファ記憶領域（３２１、３２２、．．．、３２ｎ）を含むソースフレーム一時記憶記憶領域（３２０）に格納される。フレームバッファ（３２１、３２２、等）は、ソースフレーム記憶領域（３２０）に１つのソースフレームを保持する。１又は複数のソースフレーム（３１１）がフレームバッファ（３２１、３２２、等）に格納された後、フレームセレクタ（３３０）は、ソースフレーム記憶領域（３２０）から個々のソースフレームを周期的に選択する。エンコーダ（３４０）への入力のためにフレームがフレームセレクタ（３３０）により選択される順序は、フレームがビデオソース（３１０）により生成される順序と異なっても良い。例えば、フレームは、時間的後方予測を実現するために順序の前の方にあっても良い。エンコーダ（３４０）の前に、エンコーダシステム（３００）は、選択されたフレーム（３３１）を符号化する前に前処理（例えば、フィルタリング）を実行するプリプロセッサ（図示しない）を有し得る。
【００３７】
エンコーダ（３４０）は、選択されたフレーム（３３１）を符号化し、符号化フレーム（３４１）を生成し、メモリ管理制御信号（３４２）も生成する。現在フレームが符号化された最初のフレームではない場合、符号化処理を実行するとき、エンコーダ（３４０）は、復号化フレーム一時記憶記憶領域（３６０）に格納されている１又は複数の前に符号化／復号化したフレーム（３６９）を用いても良い。このような格納された復号化フレーム（３６９）は、現在ソースフレーム（３３１）のコンテンツのインターフレーム予測のための参照フレームとして用いられる。概して、エンコーダ（３４０）は、動き推定及び補償、周波数変換、量子化及びエントロピ符号化のような符号化タスクを実行する複数の符号化モジュールを有する。エンコーダ（３４０）により実行される正確な動作は、圧縮フォーマットに依存して変化し得る。出力符号化データのフォーマットは、Windows(登録商標)  Media  Videoフォーマット、ＶＣ−１フォーマット、ＭＰＥＧ−ｘフォーマット（例えば、MPEG-１、MPEG-２又はMPEG-４）、Ｈ．２６ｘフォーマット（例えば、H.２６１、H.２６２、H.２６３、H.２６４）、ＨＥＶＣフォーマット又は他のフォーマットであり得る。
【００３８】
符号化フレーム（３４１）及びメモリ管理制御信号（３４２）は、復号化処理エミュレータ（３５０）により処理される。復号化処理エミュレータ（３５０）は、デコーダの機能の一部、例えば、動き推定及び補償でエンコーダ（３４０）により用いられる参照フレームを再構成するための復号化タスクを実施する。復号化処理エミュレータ（３５０）は、メモリ管理制御信号（３４２）を用いて、所与の符号化フレーム（３４１）が、符号化されるべき後続フレームのインターフレーム予測で参照フレームとして用いるために、再構成され及び格納される必要があるか否かを決定する。制御信号（３４２）が符号化フレーム（３４１）は格納される必要があると示す場合、復号化処理エミュレータ（３５０）は、符号化フレーム８３４１）を受信し対応する復号化フレーム（３５１）を生成するデコーダにより行われる復号化処理をモデル化する。こうするとき、エンコーダ（３４０）が復号化フレーム記憶領域（３６０）に格納された復号化フレーム（３６９）を用いているとき、復号化処理エミュレータ（３５０）も、復号化処理の一部として記憶領域（３６０）からの復号化フレーム（３６９）を用いる。
【００３９】
復号化フレーム一時記憶記憶領域（３６０）は、複数のフレームバッファ記憶領域（３６１、３６２、．．．、３６ｎ）を有する。復号化処理エミュレータ（３５０）が、参照フレームとしての使用のためにエンコーダ（３４０）によりもはや必要とされないフレームを有するフレームバッファ（３６１、３６２、．．．、３６ｎ）を識別するために、メモリ管理制御信号（３４２）を用いて、記憶領域（３６０）のコンテンツを管理する。復号化処理をモデル化した後に、復号化処理エミュレータ（３５０）は、この方法で識別されたフレームバッファ（３６１、３６２等）に新たな復号化フレーム（３５１）を格納する。
【００４０】
符号化フレーム（３４１）及びメモリ管理制御信号（３４２）も、一時符号化データ領域（３７０）にバッファリングされる。符号化データ領域（３７０）に集められた符号化データは、基本符号化ビデオビットストリームのシンタックスの一部として、待ち時間の制約を示す１又は複数のシンタックスエレメントを有し得る。或いは、符号化データ領域（３７０）に集められた符号化データは、符号化ビデオデータに関連するメディアメタデータの一部として（例えば、１又は複数の相補的拡張情報（supplemental  enhancement  information：ＳＥＩ）メッセージ又はビデオ使用性情報（video  usability  information：ＶＵＩ）メッセージ内の１又は複数のパラメータとして）、待ち時間の制約を示すシンタックスエレメントを有し得る。
【００４１】
一時符号化データ領域（３７０）から集められたデータ（３７１）は、チャネルエンコーダ（３８０）により処理される。チャネルエンコーダ（３８０）は、メディアストリームとして送信するために集められたデータをパケット化し得る。この場合、チャネルエンコーダ（３８０）は、メディア送信ストリームのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを追加できる。或いは、チャネルエンコーダ（３８０）は、ファイルとして格納するために集められたデータを編成し得る。この場合、チャネルエンコーダ（３８０）は、メディア格納ファイルのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを追加できる。或いは、更に一般的には、チャネルエンコーダ（３８０）は、１又は複数のメディアシステム多重化プロトコル又は転送プロトコルを実装できる。この場合、チャネルエンコーダ（３８０）は、プロトコルのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを追加できる。チャネルエンコーダ（３８０）は、格納、通信接続又は出力のための別のチャネルを表すチャネル（３９０）に出力を提供する。
【００４２】
＜ＩＶ．  例示的なデコーダシステム＞
図４は、幾つかの記載の実施形態が実装され得る関連する例示的なデコーダシステム（４００）の図である。デコーダシステム（４００）は、リアルタイム通信のための短待ち時間復号化モード、及びファイル若しくはストリームからのメディア再生のための通常復号化モードのような複数の復号化モードのうちの任意のモードで動作可能な汎用復号化ツールであり得る。或いは、デコーダシステム（４００）は、前述の復号化モードのうちの１つに適応される特定目的復号化ツールであり得る。デコーダシステム（４００）は、オペレーティングシステムモジュールとして、アプリケーションライブラリの一部として、又は独立型アプリケーションとして実装できる。概して、デコーダシステム（４００）は、符号化データをチャネル（４１０）から受信し、出力先（４９０）への出力として再構成フレームを生成する。符号化データは、待ち時間の減少した復号化を実現するために、待ち時間（例えば、フレーム並べ替え待ち時間）についての制約を示す１又は複数のシンタックスエレメントを含み得る。
【００４３】
デコーダシステム（４００）は、格納、通信接続又は符号化データのための別のチャネルを表すチャネル（４１０）を入力として有する。チャネル（４１０）は、チャネル符号化された符号化データを生成する。チャネルデコーダ（４２０）は、符号化データを処理できる。例えば、チャネルデコーダ（４２０）は、メディアストリームとして送信するために集められたデータをデパケット化し得る。この場合、チャネルデコーダ（４２０）は、メディア送信ストリームのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを解析（パース、parse）できる。或いは、チャネルデコーダ（４２０）は、ファイルとして格納するために集められた符号化ビデオデータを分離する。この場合、チャネルデコーダ（４２０）は、メディア格納ファイルのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを解析（パース、parse）できる。或いは、更に一般的には、チャネルデコーダ（４２０）は、１又は複数のメディアシステム逆多重化プロトコル又は転送プロトコルを実装できる。この場合、チャネルデコーダ（４２０）は、プロトコルのシンタックスの一部として、待ち時間の制約を示すシンタックスエレメントを解析できる。
【００４４】
チャネルデコーダ（４２０）から出力される符号化データ（４２１）は、十分な量のデータが受信されるまで、一時符号化データ領域（４３０）に格納される。符号化データ（４２１）は、符号化フレーム（４３１）及びメモリ管理制御信号（４３２）を有する。符号化データ領域（４３０）内の符号化データ（４２１）は、基本符号化ビデオビットストリームのシンタックスの一部として、待ち時間の制約を示す１又は複数のシンタックスエレメントを有し得る。或いは、符号化データ領域（４３０）内の符号化データ（４２１）は、符号化ビデオデータに関連するメディアメタデータの一部として（例えば、１又は複数のＳＥIメッセージ又はＶＵＩメッセージ内の１又は複数のパラメータとして）、待ち時間の制約を示すシンタックスエレメントを有し得る。概して、符号化データ領域（４３０）は、符号化データ（４２１）がデコーダ（４５０）により使用されるまで、符号化データ（４２１）を一時的に格納する。この点で、符号化フレーム（４３１）及びメモリ管理制御信号（４３２）の符号化データは、符号化データ領域（４３０）からデコーダ（４５０）へ送られる。復号化が続くにつれ、新しい符号化データが符号化データ領域（４３０）に追加され、符号化データ領域（４３０）に残っている古い符号化データはデコーダ（４５０）へ送られる。
【００４５】
デコーダ（４５０）は、符号化フレーム（４３１）を周期的に復号化して対応する復号化フレーム（４５１）を生成する。適切な場合、復号化処理を実行するとき、デコーダ（４５０）は、１又は複数の以前復号化フレーム（４６９）をインターフレーム予測の参照フレームとして用いても良い。デコーダ（４５０）は、このような以前復号化フレーム（４６９）を復号化フレーム一時記憶記憶領域（４６０）から読み出す。概して、デコーダ（４５０）は、エントロピ復号化、逆量子化、逆周波数変換、及び動き補償のような復号化タスクを実行する複数の復号化モジュールを有する。デコーダ（４５０）により実行される正確な動作は、圧縮フォーマットに依存して変化し得る。
【００４６】
復号化フレーム一時記憶記憶領域（４６０）は、複数のフレームバッファ記憶領域（４６１、４６２、．．．、４６ｎ）を有する。復号化フレーム記憶領域（４６０）は、復号化ピクチャバッファの一例である。デコーダ（４５０）は、メモリ管理制御信号（４３２）を用いて、復号化フレーム（４５１）を格納できるフレームバッファ（４６１、４６２等）を識別する。デコーダ（４５０）は、そのフレームバッファに復号化フレーム（４５１）を格納する。
【００４７】
出力シーケンサ（４８０）は、メモリ管理制御信号（４３２）を用いて、出力順序で生成されるべき次のフレームが復号化フレーム記憶領域（４６０）内で利用できるときを識別する。符号化−復号化システムの待ち時間を低減するために、出力シーケンサ（４８０）は、待ち時間の制約を示すシンタックスエレメントを用いて、出力順序で生成されるべきフレームの識別を迅速に処理する。出力順序で生成されるべき次のフレーム（４８１）が復号化フレーム記憶領域（４６０）内で利用可能なとき、該フレームは、出力シーケンサ（４８０）により読み出され、出力先（４９０）（例えば、ディスプレイ）に出力される。概して、フレームが復号化フレーム記憶領域（４６０）から出力シーケンサ（４８０）により出力される順序は、フレームがデコーダ（４５０）により復号化される順序と異なっても良い。
【００４８】
＜Ｖ．  待ち時間の低減した符号化及び復号化を実現するシンタックスエレメント＞
大部分のビデオコーデックシステムでは、符号化順序（復号化順序又はビットストリーム順序とも称される）は、ビデオフレームがビットストリーム内の復号化データ内に現れる、したがって復号化中に処理される順序である。符号化順序は、符号化前にフレームがカメラによりキャプチャされる順序と異なっても良く、復号化フレームが復号化後に表示、格納又はその他の場合には出力される順序（出力順序又は表示順序）と異なっても良い。出力順序に対するフレームの並べ替えは、（主に圧縮性能の観点で）有利であるが、符号化及び復号化処理のエンドエンド間の待ち時間を増大してしまう。
【００４９】
本願明細書に記載の技術及びツールは、ビデオフレームの並べ替えに起因する待ち時間を低減し、また、並べ替え待ち時間の制約に関する情報をデコーダシステムに提供することにより、デコーダシステムによる待ち時間の低減も実現する。このような待ち時間の低減は、多くの目的で有用である。例えば、待ち時間の低減は、ビデオ会議システムを用いた双方向ビデオ通信で生じるタイムラグを低減するために用いることができ、遠隔にいる参加者間の会話の流れ及び通信の双方向性がより素早く且つ自然になる。
【００５０】
Ａ．出力タイミング及び出力順序のためのアプローチ
Ｈ．２６４規格によると、デコーダは、復号化フレームの出力準備ができたときを決定するために２つのアプローチを用いることができる。デコーダは、（例えば、ピクチャタイミングＳＥＩメッセージ内で伝達されるとき）復号化タイムスタンプ及び出力タイムスタンプの形式のタイミング情報を用いることができる。或いは、デコーダは、復号化フレームが出力準備ができたときを決定するために種々のシンタックスエレメントで伝達されるバッファリング性能限界を用いることができる。
【００５１】
タイミング情報は、各復号化フレームに関連付けることができる。デコーダは、復号化フレームが出力できるときを決定するためにタイミング情報を用いることができる。しかしながら、実際には、このようなタイミング情報は、デコーダには利用可能でないかも知れない。さらに、タイミング情報が利用可能なときでも、幾つかのデコーダは、（デコーダがタイミング情報が利用可能か否かに拘わらず動作するよう設計されているために）実際にはこの情報を用いない。
【００５２】
バッファリング性能限界は、シンタックスエレメントmax_dec_frame_buffering、シンタックスエレメントnum_reorder_frames、相対順序情報（「ピクチャ順番（picture  order  count）」と称される）及びビットストリーム内で伝達される他のメモリ管理制御情報を含む、Ｈ．２６４規格（及びＨＥＶＣ規格のドラフトバージョン）に従う幾つかのシンタックスエレメントで示される。シンタックスエレメントmax_dec_frame_buffering（又はMaxDpbFramesとして指定される導出された変数）は、フレームバッファのユニット内の復号化ピクチャバッファ（decoded  picture  buffer：DPB）の所要サイズを指定する。したがって、シンタックスエレメントmax_dec_frame_bufferingは、符号化ビデオシーケンスに用いられるトップレベルのメモリ容量を表し、デコーダに正しい順序でピクチャを出力させる。シンタックスエレメントnum_reorder_frames（又はmax_num_reorder_frames）は、符号化順序で任意のフレーム（又は相補的フィールドペア、又は非ペアフィールド）に先行する及び出力順序で後続するフレーム（又は相補的フィールドペア、又は非ペアフィールド）の最大数を示す。言い換えると、num_reorder_framesは、ピクチャ並べ替えに必要なメモリ容量についての制約を指定する。シンタックスエレメントmax_num_ref_framesは、シーケンス内の任意のピクチャのインター予測のために復号化処理により用いられ得る短期及び長期参照フレーム（又は相補的参照フィールドペア、又は非ペア参照フィールド）の最大数を指定する。シンタックスエレメントmax_num_ref_framesは、復号化参照ピクチャのマーク付けのためにスライディングウインドウの大きさも決定する。num_reorder_framesと同様に、max_num_ref_framesは必要メモリ容量についての制約を指定する。
【００５３】
デコーダは、max_dec_frame_buffering（又はMaxDpbFrames）及びnum_reorder_framesシンタックスエレメントを用いて、バッファリング性能限界を超えたときを決定する。これは、例えば、新しい復号化フレームがＤＰＢに格納する必要があるが、ＤＰＢ内に利用可能な残り領域がないときに生じる。この状況では、デコーダは、ピクチャ順番情報を用いて、復号化されたピクチャの中からどれが出力順序で最も早いかを識別する。次に、出力順序で最も早いピクチャが出力される。このような処理は、格納する必要のある新しいピクチャの到着によりピクチャがＤＰＢの「外にはじき出される」ので、「バンピング」と呼ばれることが多い。
【００５４】
デコーダは、max_dec_frame_buffering（又はMaxDpbFrames）及びnum_reorder_framesシンタックスエレメントで示される情報は、デコーダで必要なメモリ容量を決定するのに十分である。しかしながら、ピクチャを出力するための「バンピング」処理を制御するために用いられるとき、このような情報の使用は、望ましくない待ち時間を導入し得る。Ｈ．２６４規格で定められるように、max_dec_frame_buffering及びnum_reorder_framesシンタックスエレメントは、任意の特定のピクチャに適用され得る並べ替えの量についての限界を定めず、したがってエンドエンド間待ち時間についての限界を定めない。これらのシンタックスエレメントの値に関係なく、特定のピクチャは出力前の任意の長い時間の間、ＤＰＢ内に保持され得る。この長い時間は、エンコーダによるソースピクチャの事前バッファリングにより追加される実質的待ち時間に対応する。
【００５５】
Ｂ．フレーム並べ替え待ち時間の制約を示すシンタックスエレメント
本願明細書に記載の技術及びツールは、ビデオ通信システムにおける待ち時間を低減する。符号化ツール、リアルタイム通信ツール又は他のツールは、符号化ビデオシーケンス内の任意のフレームに適用できる並べ替え範囲についての限界を設定する。例えば、この限界は、出力順序において符号化ビデオシーケンス内の任意の所与のフレームに先行できるフレーム及び符号化順序において後続できるフレームの数として表される。この限界は、シーケンス内の任意の特定のフレームについて許容される並べ替え待ち時間を制限する。言い方を変えると、この限界は、任意の特定のフレームに適用できる符号化順序と出力順序との間の並べ替えの時間範囲を（フレームの観点で）制限する。並べ替え順序の制限は、エンドエンド間遅延を低減するのに役立つ。また、このような限界の設定は、待ち時間の低減が重要な使用シナリオのためのリアルタイムシステムの交渉プロトコル又はアプリケーション仕様で有用であり得る。
【００５６】
１又は複数のシンタックスエレメントは、フレーム並べ替え待ち時間についての制約を示す。フレーム並べ替え待ち時間についての制約を伝達することは、双方向リアルタイム通信又は他の使用シナリオでのシステムレベルの交渉を可能にする。これは、フレーム並べ替え待ち時間についての制約を直接表しメディアストリーム又はセッションの特性を特徴付ける方法を提供する。
【００５７】
ビデオデコーダは、復号化ビデオフレームの出力の待ち時間を低減させるために、フレーム並べ替え待ち時間についての示された制約を用いることができる。特に、フレーム「バンピング」処理と比べて、フレーム並べ替え待ち時間についての制約を伝達することは、デコーダが、出力準備のできているＤＰＢ内のフレームをより簡単に且つ素早く識別することを可能にする。例えば、デコーダは、フレームの符号化順序と出力順序との間の差を計算することにより、ＤＰＢ内のフレームの待ち時間状態を決定できる。フレームの待ち時間状態をフレーム並べ替え待ち時間についての制約と比較することにより、デコーダは、フレーム並べ替え待ち時間についての制約に達したときを決定できる。デコーダは、この限界に達したフレームを直ちに出力できる。これは、種々のシンタックスエレメント及び追跡構造を用いる「バンピング」処理と比べて、デコーダが出力準備のできているフレームをより迅速に識別するのを助ける。このように、デコーダは、復号化フレームが出力できるときを迅速に（且つ早く）決定できる。フレームが出力できるときをデコーダがより迅速に（及び早く）識別できるほど、デコーダは、ディスプレイ又は後続の処理段階により迅速に（及び早く）ビデオを出力できる。
【００５８】
したがって、フレーム並べ替え待ち時間についての制約を用いて、デコーダは、復号化フレーム記憶領域が一杯になる前に、復号化フレーム記憶領域からフレームを出力し始めることができるが、依然として適合した復号化を提供できる（つまり、フレームが別の従来の方式を用いて復号化されたフレームとビットレベルで正確に一致するように、全てのフレームを復号化する）。これは、待ち時間シンタックスエレメントにより示される（フレーム）遅延が復号化フレーム記憶領域の（フレーム単位の）サイズより遙かに小さいとき、遅延を有意に低減する。
【００５９】
図５Ａ−５Ｅは、異なるフレーム間依存性を有するフレームのシリーズ（５０１−５０５）を示す。シリーズは、（１）ピクチャ並べ替えに必要なメモリ容量についての制約（つまり、例えばシンタックスエレメントnum_reorder_framesで示されるような、並べ替えの目的で参照フレームを格納するために用いられるフレームバッファの数）、及び（２）例えば、変数MaxLatencyFramesにより指定されるようなフレーム並べ替え待ち時間についての制約、の異なる値により特徴付けられる。図５Ａ−５Ｅでは、所与のフレームＦｊｋについて、下付文字ｊは出力順序内のフレームの位置を示し、上付文字ｋは符号化順序内のフレームの位置を示す。フレームは、出力順序で示され、出力順序では下付文字の値は左から右へ増大する。矢印は、動き補償のためのフレーム間依存性を示す。これにより、符号化順序において先行するフレームは、符号化順序において後続のフレームの予測に用いられる。簡単のため、図５Ａ−５Ｅは、（参照フレームが変わり得るマクロブロック、ブロック等のレベルではなく）フレームレベルでのフレーム間依存性を示す。図５Ａ−５Ｅは、所与のフレームのための参照フレームとして最大２フレームを示す。実際には、幾つかの実装では、所与のフレーム内の異なるマクロブロック、ブロック等が、異なる参照フレームを用いることができ、２以上の参照フレームを所与のフレームのために用いることができる。
【００６０】
図５Ａでは、シリーズ（５０１）は９個のフレームを有する。出力順序における最後のフレームＦ８１は、最初のフレームＦ００を参照フレームとして用いる。シリーズ（５０１）内の他のフレームは、最後のフレームＦ８１及び最初のフレームＦ００の両方を参照フレームとして用いる。これは、フレームＦ００が最初に復号化され、次にフレームＦ８１が続き、次にフレームＦ１２が続く、等である。図５Ａに示すシリーズ（５０１）では、num_reorder_framesの値は１である。デコーダシステムの処理の任意の時点で、図５Ａに示すフレームのうち、並べ替え目的で復号化フレーム記憶領域に格納されるフレームは１個のみ（Ｆ８１）である。（最初のフレームも、参照フレームＦ００として用いられ格納されるが、並べ替え目的では格納されない。最初のフレームＦ００の出力順序は中間フレームの出力順序より小さいので、最初のフレームＦ００はnum_reorder_framesの目的でカウントされない。）num_reorder_framesが低い値にもかかわらず、シリーズ（５０１）は比較的長い待ち時間を有する。MaxLatencyFramesの値は７である。最初のフレームＦ００を符号化した後、エンコーダは、次のフレームＦ１２がシリーズ（５０１）の最後のフレームＦ８１に依存するので、出力順序で次のフレームＦ１２を符号化する前に、８以上のソースフレームをバッファリングするまで待つ。MaxLatencyFramesの値は、事実上、任意の特定の符号化フレームについて下付文字の値と上付文字の値との間の最大許容差である。
【００６１】
図５Ｂで、図５Ａのシリーズ（５０１）のように、シリーズ（５０２）は９個のフレームを有するが、フレーム間依存性は異なる。フレームの時間的並べ替えは、短い範囲に渡って生じる。その結果、シリーズ（５０２）は非常に小さい待ち時間を有し、MaxLatencyFramesの値は１である。num_reorder_framesの値は依然として１である。
【００６２】
図５Ｃでは、シリーズ（５０３）は１０個のフレームを有する。最長フレーム間依存性は、図５の最長フレーム間依存性よりも（時間的範囲の点で）短いが、図５Ｂの最長フレーム間依存性よりも長い。シリーズ（５０３）は、num_reorder_framesの同じく低い値１を有するが、MaxLatencyFramesの比較的低い値２を有する。したがって、シリーズ（５０３）は、図５Ａのシリーズ（５０１）よりも小さいエンドエンド間待ち時間を可能にするが、図５Ｂのシリーズ（５０２）の許容可能待ち時間ほど小さくはない。
【００６３】
図５Ｄで、シリーズ（５０４）は、フレーム間依存性に従う３つの時間レイヤを有する時間的階層構造に編成されるフレームを有する。最下位の時間分解能レイヤは、最初のフレームＦ００及び最後のフレームＦ８１を有する。次の時間分解能レイヤは、最初のフレームＦ４２を追加し、最初のフレームＦ００及び最後のフレームＦ８１に依存する。最上位の時間分解能レイヤは、残りのフレームを追加する。図５Ｄに示すシリーズ（５０４）は、少なくとも最上位の時間分解能レイヤで、最後のフレームＦ８１の符号化順序と出力順序との間の差により、num_reorder_framesの比較的低い値２を有するが、MaxLatencyFramesの比較的高い値７を有する。中間の時間分解能レイヤ又は最下位の時間分解能レイヤのみが復号化される場合、フレーム並べ替え遅延についての制約は、（中間レイヤでは）１又は（最下位レイヤでは）０まで低減できる。種々の時間分解能で待ち時間の低減した復号化を実現するために、シンタックスエレメントは、時間的階層構造内の異なるレイヤについてフレーム並べ替え待ち時間の制約を示すことができる。
【００６４】
図５Ｅで、シリーズ（５０５）は、異なるフレーム間依存性に従う３つの時間レイヤを有する時間的階層構造に編成されるフレームを有する。最下位の時間分解能レイヤは、最初のフレームＦ００、中間フレームＦ４１及び最後のフレームＦ８５を有する。次の時間分解能レイヤは、（最初のフレームＦ００及び中間フレームＦ４１に依存する）フレームＦ２２と（中間フレームＦ４１及び最後のフレームＦ８５に依存する）フレームＦ６６を追加する。最上位の時間分解能レイヤは、残りのフレームを追加する。図５Ｄのシリーズ（５０４）と比べると、図５Ｅのシリーズ（５０５）は、少なくとも最上位の時間分解能レイヤで、中間フレームＦ４１及び最後のフレームＦ８５の符号化順序と出力順序との間の差により、num_reorder_framesの比較的低い値２を有するが、MaxLatencyFramesの比較的低い値３を有する。中間の時間分解能レイヤ又は最下位の時間分解能レイヤのみが復号化される場合、フレーム並べ替え遅延についての制約は、（中間レイヤでは）１又は（最下位レイヤでは）０まで低減できる。
【００６５】
図５Ａ−５Ｅに示す例では、MaxLatencyFramesの値が分かる場合、デコーダは、出力順序で先行するフレームを受信すると、中間出力のために準備の出来ている特定のフレームを識別できる。所与のフレームで、フレームの出力順序の値からフレームの符号化順序の値を差し引いたものは、MaxLatencyFramesの値に等しくても良い。この場合、所与のフレームは、出力順序で先行するフレームが受信されると直ぐに出力のために準備される。（これに対し、このようなフレームは、追加フレームが受信されるまで又はシーケンスの終わりに達するまで、num_reorder_framesだけを用いて出力の準備ができていると識別できなかった。）特に、デコーダは、MaxLatencyFramesの値を用いて以下のフレームの早期の出力を可能にすることができる。
【００６６】
・図５Ａのシリーズ（５０１）中、フレームＦ８１
・図５Ｂのシリーズ（５０２）中、フレームＦ２１、Ｆ４３、Ｆ６５、Ｆ８７
・図５Ｃのシリーズ（５０３）中、フレームＦ３１、Ｆ６４、Ｆ９７
・図５Ｄのシリーズ（５０４）中、フレームＦ８１
・図５Ｅのシリーズ（５０５）中、フレームＦ４１、Ｆ８５
さらに、システムレベルでのMaxLatencyFramesの値の宣言又は交渉は、num_reorder_framesを用いた並べ替え記憶容量の測定及び該容量の指示によっては使用できない方法で、ビットストリーム又はセッションの待ち時間特性の要約表現を提供できる。
【００６７】
Ｃ．例示的な実装
フレーム並べ替え待ち時間の制約を示すシンタックスエレメントは、実装に依存して種々の方法で伝達できる。シンタックスエレメントは、シーケンスパラメータセット（sequence  parameter  set：ＳＰＳ）、ピクチャパラメータセット（picture  parameter  set：ＰＰＳ）又はビットストリームの他の要素の一部として伝達され、ＳＥＩメッセージ、ＶＵＩメッセージ又は他のメタデータの一部として伝達され、又は特定の他の方法で伝達され得る。任意の実装において、制約値を示すシンタックスエレメントは、符号無し指数ゴロム符号化、特定の他の形式のエントロピ符号化、又は固定長符号化を用いることにより符号化され、次に伝達できる。デコーダは、シンタックスエレメントを受信した後に、対応する復号化を実行する。
【００６８】
第１の実装では、フラグmax_latency_limitation_flagが伝達される。このフラグが第１の２進値（例えば０）を有する場合、フレーム並べ替え待ち時間について如何なる制約も課せられない。この場合、max_latency_framesシンタックスエレメントの値は、伝達されないか無視される。その他の場合（フラグが１のような第２の２進値を有する場合）、max_latency_framesシンタックスエレメントの値は、フレーム並べ替え待ち時間の制約を示すために伝達される。例えば、この場合、max_latency_framesシンタックスエレメントの伝達された値は、任意の非負整数値であり得る。
【００６９】
第２の実装では、シンタックスエレメントmax_latency_frames_plus１は、フレーム並べ替え待ち時間の制約を示すために伝達される。max_latency_frames_plus１が第１の２進値（例えば０）を有する場合、フレーム並べ替え待ち時間について如何なる制約も課せられない。他の値（例えば、非ゼロ値）では、フレーム並べ替え待ち時間についての制約の値は、max_latency_frames_plus１−１に設定される。例えば、max_latency_frames_plus１の値は、包括的に０乃至２３２−２の範囲内である。
【００７０】
同様に、第３の実装では、シンタックスエレメントmax_latency_framesは、フレーム並べ替え待ち時間の制約を示すために伝達される。max_latency_framesが第１の値（例えば最大値）を有する場合、フレーム並べ替え待ち時間について如何なる制約も課せられない。他の値（例えば、最大値より小さい値）では、フレーム並べ替え待ち時間についての制約の値は、max_latency_framesに設定される。
【００７１】
第４の実装では、フレーム並べ替え待ち時間についての制約は、フレームメモリの最大サイズに関連して示される。例えば、待ち時間の制約は、num_reorder_framesシンタックスエレメントに対する増大として伝達される。通常、（フレームの観点の）フレーム並べ替え待ち時間についての制約は、num_reorder_framesより大きいか又はそれに等しい。待ち時間の制約を伝達する際にビットを節約するために、（例えば、符号無し指数ゴロム符号化、特定の他の形式のエントロピ符号化を用いて）待ち時間の制約とnum_reorder_framesとの間の差が符号化され、そして伝達される。シンタックスエレメントmax_latency_increase_plus１は、フレーム並べ替え待ち時間の制約を示すために伝達される。max_latency_increase_plus１が第１の値（例えば０）を有する場合、フレーム並べ替え待ち時間について如何なる制約も課せられない。他の値（例えば、非ゼロ値）では、フレーム並べ替え待ち時間についての制約の値は、num_reorder_frames＋max_latency_increase_plus１−１に設定される。例えば、max_latency_increase_plus１の値は、包括的に０乃至２３２−２の範囲内である。
【００７２】
代替で、フレーム並べ替え待ち時間についての制約を示す１又は複数のシンタックスエレメントは、他の特定の方法で伝達される。
【００７３】
Ｄ．待ち時間の制約を示す他の方法
前述の例の多くでは、待ち時間の制約は、フレーム数の観点で表されるフレーム並べ替え待ち時間についての制約である。より一般的には、待ち時間の制約は、フレーム数の観点から表される、又は秒、ミリ秒若しくは別の時間指標の観点から表される遅延についての制約である。例えば、待ち時間の制約は、１秒又は０．５秒のような絶対時間指標として表すことができる。エンコーダは、このような時間指標を（ビデオのフレームレートを考慮して）フレーム数に変換し、次にビデオシーケンスの複数のフレーム間のフレーム間依存性がフレーム数と一致するようにビデオを符号化する。或いは、フレーム並べ替え及びフレーム間依存性に関係なく、エンコーダは、時間指標を用いて、符号化ビデオのビットレート、符号化の複雑さ、ネットワーク帯域幅などの短期間変動を平滑化するために遅延が用いられる範囲を制限できる。デコーダは、この時間指標を用いて、フレームが復号化ピクチャバッファから出力され得るときを決定できる。
【００７４】
待ち時間の制約は、送信側と受信側との間で交渉され、符号化ビデオのビットレートの短期的変動を平滑化する能力、符号化の複雑さの短期的変動を平滑化する能力、ネットワーク帯域幅の短期的変動を平滑化する能力、及び／又は増大する遅延から利益を享受する別の要因で、応答をトレードオフする（遅延がない）。このような交渉では、フレームレートと独立した方法で待ち時間の制約を定め特徴付けることが有用であり得る。次に、制約は、ビデオのフレームレートを考慮して、符号化及び復号化中に適用できる。或いは、制約は、ビデオのフレームレートに関係なく、符号化及び復号化中に適用できる。
【００７５】
Ｅ．シンタックスエレメントを設定及び出力する一般的な技術
図６は、待ち時間の低減した復号化を実現するシンタックスエレメントを設定及び出力する例示的な技術（６００）を示す。例えば、図２Ａ及び２Ｂを参照して説明したリアルタイム通信ツール又は符号化ツールは、技術（６００）を実行する。或いは、別のツールが技術（６００）を実行する。
【００７６】
始めに、ツールは、ビデオシーケンスの複数のフレーム間のフレーム間依存性に一致する待ち時間（例えば、フレーム並べ替え待ち時間、時間指標の観点からの待ち時間）についての制約を示す１又は複数のシンタックスエレメントを設定する（６１０）。ツールがビデオエンコーダを有するとき、同一のツールがフレームを受信し、フレームを符号化して（フレーム並べ替え待ち時間の制約と一致するフレーム間依存性を用いて）符号化データを生成し、そして格納又は送信のために符号化データを出力し得る。
【００７７】
通常、フレーム並べ替え待ち時間の制約は、ビデオシーケンス内の任意のフレームに対して許容される並べ替え待ち時間である。制約は、種々の方法で表すことができるが、種々の他の意味を有する。例えば、制約は、出力順序で所与のフレームに先行できるが符号化順序で所与のフレームに続くことができるフレームの最大数の観点で表現できる。或いは、制約は、ビデオシーケンス内の任意のフレームについて、符号化順序と出力順序との間の最大差として表すことができる。或いは、個々のフレームに焦点を当てると、制約は、ビデオシーケンス内の所与の特定のフレームに関連する並べ替え待ち時間として表すことができる。或いは、フレームのグループに焦点を当てると、制約は、ビデオシーケンス内のフレームのグループに関連する並べ替え待ち時間として表すことができる。或いは、制約は特定の他の方法で表すことができる。
【００７８】
次に、ツールは、シンタックスエレメントを出力する（６２０）。これは、複数のフレームの出力順序の観点から、再構成フレームが出力準備ができたときの決定を実現する。シンタックスエレメントは、基本符号化ビデオストリーム内のシーケンスパラメータセット又はピクチャパラメータセットの一部として、フレームの符号化データも含むメディア格納ファイル又はメディア送信ストリームのシンタックスの一部として、（例えば、システムレベルの交渉の際のストリーム又はセッションパラメータ値の交換中に）メディア特性交渉プロトコルの一部として、フレームの符号化データと共に多重化されたメディアシステム情報の一部として、又は（例えば、ＳＥＩメッセージ又はＶＵＩメッセージ内の）フレームの符号化データに関連するメディアメタデータの一部として、出力できる。異なるシンタックスエレメントが、メモリ容量要件を示すために出力され得る。例えば、（max_dec_frame_bufferingのような）バッファサイズシンタックスエレメントはＤＰＢの最大サイズを示すことができ、（num_reorder_framesのような）フレームメモリシンタックスエレメントは並べ替えのためのフレームメモリの最大サイズを示すことができる。
【００７９】
待ち時間の制約の値は、Ｖ．Ｃ章で記載したような種々の方法で表すことができる。例えば、ツールは、シンタックスエレメントの存在又は不在を示すフラグを出力する。フラグがシンタックスエレメントは不在であると示す場合、待ち時間の制約は、不定であるか、又は既定値を有する。その他の場合、シンタックスエレメントは、待ち時間の制約に従い、待ち時間の制約を示す。或いは、シンタックスエレメントの１つの値が、待ち時間の制約は不定又は既定値であると示し、シンタックスエレメントの他の可能な値が、待ち時間の制約に値する整数を示す。或いは、待ち時間の制約がフレーム並べ替え待ち時間の制約である場合には、シンタックスエレメントの所与の値は、並べ替えのためのフレームメモリの最大サイズに対するフレーム並べ替え待ち時間の制約に値する整数を示す。これは、num_reorder_framesのような異なるシンタックスエレメントで示される。或いは、待ち時間の制約は特定の他の方法で表される。
【００８０】
幾つかの実装では、ビデオシーケンスのフレームは、時間的階層構造に従って編成される。この場合、異なるシンタックスエレメントは、時間的階層構造の異なる時間レイヤについてのフレーム並べ替え待ち時間の異なる制約を示し得る。
【００８１】
Ｆ．シンタックスエレメントを受信及び使用する一般的な技術
図７は、待ち時間の低減した復号化を実現するシンタックスエレメントを受信及び使用する例示的な技術（７００）を示す。例えば、図２Ａ及び２Ｂを参照して説明したリアルタイム通信ツール又は再生ツールは、技術（７００）を実行する。或いは、別のツールが技術（７００）を実行する。
【００８２】
始めに、ツールは、待ち時間（例えば、フレーム並べ替え待ち時間、時間指標の観点からの待ち時間）についての制約を示す１又は複数のシンタックスエレメントを受信し解析する（７１０）。例えば、解析は、待ち時間の制約を示す１又は複数のシンタックスエレメントをビットストリームから読み出すことを含む。ツールは、ビデオシーケンスの複数のフレームの符号化データも受信する（７２０）。ツールは、シンタックスエレメントを解析し、シンタックスエレメントに基づき待ち時間の制約を決定できる。通常、フレーム並べ替え待ち時間の制約は、ビデオシーケンス内の任意のフレームに対して許容される並べ替え待ち時間である。前の章で述べたように、制約は、種々の方法で表すことができるが、種々の他の意味を有する。シンタックスエレメントは、基本符号化ビデオストリーム内のシーケンスパラメータセット又はピクチャパラメータセットの一部として、メディア格納ファイル又はメディア送信ストリームのシンタックスの一部として、メディア特性交渉プロトコルの一部として、符号化データと共に多重化されたメディアシステム情報の一部として、又は符号化データに関連するメディアメタデータの一部として、伝達できる。ツールは、メモリ容量要件を示す異なるシンタックスエレメント、例えばmax_dec_frame_bufferingのようなバッファサイズシンタックスエレメント及びnum_reorder_framesのようなフレームメモリシンタックスエレメントを受信し解析できる。
【００８３】
待ち時間の制約の値は、Ｖ．Ｃ章で記載したような種々の方法で表すことができる。例えば、ツールは、シンタックスエレメントの存在又は不在を示すフラグを受信する。フラグがシンタックスエレメントは不在であると示す場合、待ち時間の制約は、不定であるか、又は既定値を有する。その他の場合、シンタックスエレメントは、待ち時間の制約に従い、待ち時間の制約を示す。或いは、シンタックスエレメントの１つの値が、待ち時間の制約は不定又は既定値であると示し、シンタックスエレメントの他の可能な値が、待ち時間の制約に値する整数を示す。或いは、待ち時間の制約がフレーム並べ替え待ち時間の制約である場合には、シンタックスエレメントの所与の値は、並べ替えのためのフレームメモリの最大サイズに対するフレーム並べ替え待ち時間の制約に値する整数を示す。これは、num_reorder_framesのような異なるシンタックスエレメントで示される。或いは、待ち時間の制約は特定の他の方法で伝達される。
【００８４】
図７に戻り、ツールは、フレームのうちの１つを再構成するために符号化データの少なくとも一部を復号化する（７３０）。ツールは、再構成フレームを出力する（７４０）。これを行う際、ツールは、例えば、ビデオシーケンスのフレームの出力順序の観点で、再構成フレームの出力準備ができるときを決定するために、待ち時間の制約を用いることができる。
【００８５】
幾つかの実装では、ビデオシーケンスのフレームは、時間的階層構造に従って編成される。この場合、異なるシンタックスエレメントは、時間的階層構造の異なる時間レイヤについてのフレーム並べ替え待ち時間の異なる制約を示し得る。ツールは、出力の時間分解能に依存して、フレーム並べ替え待ち時間の異なる制約のうちの１つを選択できる。
【００８６】
開示の発明の原理を適用できる多くの可能な実施形態に照らし、図示の実施形態は本発明の単なる好適な例であり、本発明を限定するものと考えられるべきではないことが理解される。むしろ、本発明の範囲は添付の請求の範囲によって定められる。したがって、出願人は、添付の請求の範囲の範囲及び精神の範囲内に包含される全てを出願人の発明として請求する。
【図１】
2014523693.tif 000003
【図２Ａ】
2014523693.tif 000004
【図２Ｂ】
2014523693.tif 000005
【図３】
2014523693.tif 000006
【図４】
2014523693.tif 000007
【図５ａ】
2014523693.tif 000008
【図５ｂ】
2014523693.tif 000009
【図５ｃ】
2014523693.tif 000010
【図５ｄ】
2014523693.tif 000011
【図５ｅ】
2014523693.tif 000012
【図６】
2014523693.tif 000013
【図７】
2014523693.tif 000014
【国際調査報告】
2014523693.tif 000015
2014523693.tif 000016