(57)【要約】【課題】  ＦＧＳ／ＰＦＧＳ符号化ビデオビットストリームをパケット化し、その結果生じるデータパケット間の従属性が最小となるような方法を提供する。【解決手段】  ビデオ符号化システムは、各符号化ビットストリームセグメントに関連付けられたひずみ削減に対する推定された全寄与に基づいて、パケット化のために符号化ビットストリームセグメントを選択することによって、ＦＧＳ／ＰＦＧＳ符号化ビデオビットストリームのパケット化を実行する。選択されたビットストリームセグメントは、その後、パケット間の従属性を最小にするパケット独立型パケット化戦略に従ってパケット化される。【選択図】  図１０
2004274773.tif 000002
【特許請求の範囲】
【請求項１】
コード体系をビデオストリームに適用することによって、複数の符号化ビットストリームセグメントを生成すること、
前記複数の符号化ビットストリームセグメントから多重ビットストリームセグメントを選択すること、および
データパケット間の従属性が最小となるように、前記多重ビットストリームセグメントを前記データパケットにパケット化することを含むことを特徴とする方法。
【請求項２】
前記コード体系はファイン・グラニュラリティ・スケーラブルコード体系を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コード体系はプログレッシブ・ファイン・グラニュラリティ・スケーラブルコード体系を含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記プログレッシブ・ファイン・グラニュラリティ・スケーラブルコード体系はフレームベースであることを特徴とする請求項３に記載の方法。
【請求項５】
前記プログレッシブ・ファイン・グラニュラリティ・スケーラブルコード体系はマクロブロックベースであることを特徴とする請求項３に記載の方法。
【請求項６】
前記選択することは、
使用可能な帯域幅に基づいて、前記複数の符号化ビットストリームセグメントから前記多重ビットストリームセグメントを選択することを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記選択することは、
前記符号化ビットストリームセグメントの個々に関連付けられたひずみ削減に対する寄与に基づいて、前記多重ビットストリームセグメントを選択することを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記選択することは、
前記符号化ビットストリームセグメントの個々に関連ビットレートを決定すること、
前記符号化ビットストリームセグメントの個々に関連付けられたひずみ削減に対する寄与を推定すること、
使用可能な帯域幅を決定すること、
伝送されるいくつかのフレームを決定すること、および
選択された各ビットストリームセグメントについて、前記関連ビットレートは前記使用可能な帯域幅によってサポートされ、前記関連付けられたひずみ削減に対する寄与は、選択されていない前記多重ビットストリームセグメントのうちの少なくとも１つに関連付けられたひずみ削減に対する寄与よりも大きいかまたは等しくなるように、前記多重ビットストリームセグメントを選択することを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記パケット化することは、
多重データパケットを生成することを含み、その結果、第１のデータパケットは第１のマクロブロックの多重のビットプレーンに関連付けられたビットストリームセグメントを含むようになり、前記多重データパケットのうちの他のいずれの１つも前記第１のマクロブロックに関連付けられたビットストリームセグメントを含まないようになることを特徴とする請求項１に記載の方法。
【請求項１０】
前記第１のデータパケットは、第２のマクロブロックの多重のビットプレーンに関連付けられたビットストリームセグメントも含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記パケット化することは、
フレームに関連付けられた多重のエンハンスメント層をバイナリツリーとして表すことを含み、前記ツリーの各ノードはビットストリームセグメントを表し、前記バイナリツリーの各子ノードは親ノードの端部と位置合わせされるものであって、
さらに前記パケット化することは、各データパケットが前記子ノードに関連付けられた親ノードも含む子ノードを含むように、多重データパケットを生成することを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
複数の符号化ビットストリームセグメントのそれぞれについて、必要なビットレートを決定することおよびひずみ削減に対する寄与を推定すること、ならびに
前記複数の符号化ビットストリームセグメントからパケット化するビットストリームセグメントを選択することを含む方法であって、その結果、選択された前記ビットストリームセグメントが、使用可能な帯域幅によってサポートされる関連ビットレートを有すること、および選択されていない前記複数の符号化ビットストリームセグメントの個々の１つよりもひずみ削減へのより少ない寄与を有することになることを特徴とする方法。
【請求項１３】
前記選択されたビットストリームセグメントを１つまたは多重データパケットにパケット化することをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
パケット化される複数の符号化ビデオビットストリームセグメントを識別すること、
前記ビットストリームセグメントをフレームのエンハンスメント層を表すバイナリツリーに従って配置構成すること、および
各データパケットが前記バイナリツリーの親ノードおよび子ノードを含むように、前記バイナリツリーに従って前記ビットストリームセグメントをデータパケットにパケット化することを含むことを特徴とする方法。
【請求項１５】
ひずみ削減寄与しきい値に従って個々のビットストリームセグメントを除去するために、前記バイナリツリーを枝刈りすることをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
パケット化される複数の符号化ビデオビットストリームセグメントを識別すること、および
特定のマクロブロックに関連付けられた前記ビットストリームセグメントがすべて同じデータパケットに含まれるように、前記ビットストリームセグメントをデータパケットにパケット化することを含むことを特徴とする方法。
【請求項１７】
前記パケット化することは、
各ビットストリームセグメントのひずみ削減寄与に従って、データパケット内の前記ビットストリームセグメントをラスタスキャンに順序付けすることをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
符号化ビットストリームセグメントを生成するように構成されたエンコーダと、
パケット化のために前記符号化ビットストリームセグメントのセットを選択するように構成されたビットストリームセレクタと、
パケット間の従属性を最小にするパケット化戦略にしたがって、前記符号化ビットストリームセグメントのセットをパケット化するように構成されたパケットジェネレータとを含むことを特徴とするシステム。
【請求項１９】
前記エンコーダは、ファイン・グラニュラリティ・スケーラブルエンコーダとして実施されることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記エンコーダは、プログレッシブ・ファイン・グラニュラリティ・スケーラブルエンコーダとして実施されることを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記エンコーダは、フレームベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブルエンコーダとして実施されることを特徴とする請求項１８に記載のシステム。
【請求項２２】
前記エンコーダは、マクロブロックベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブルエンコーダとして実施されることを特徴とする請求項１８に記載のシステム。
【請求項２３】
さらに前記エンコーダは、符号化ビットストリームセグメントに関連付けられた位置、必要なビットレート、およびひずみ削減に対する寄与を記載したデータを集めるように構成されることを特徴とする請求項１８に記載のシステム。
【請求項２４】
さらに前記パケットジェネレータは、パケット間の従属性を最小にするバイナリツリーパケット化戦略に従って、前記符号化ビットストリームセグメントのセットをパケット化するように構成されることを特徴とする請求項１８に記載のシステム。
【請求項２５】
さらに前記パケットジェネレータは、パケット間の従属性を消去するパケット独立型パケット化戦略に従って、前記符号化ビットストリームセグメントのセットをパケット化するように構成されることを特徴とする請求項１８に記載のシステム。
【請求項２６】
ストリーミングビデオデータを符号化するための手段と、
ひずみ削減に対する寄与に基づいて、符号化ビットストリームセグメントのセットを選択するための手段と、
パケット化されたビットストリームセグメントがデータパケットの個々の間の従属性を削減するように配置構成されるように、前記符号化ビットストリームセグメントのセットを含むデータパケットを生成するための手段とを含むことを特徴とするシステム。
【請求項２７】
前記生成する手段は、
前記ビットストリームセグメントの個々に関連付けられたひずみ削減に対する寄与に基づいて、データパケット内のビットストリームセグメントを編成するための手段をさらに含むことを特徴とする請求項２６に記載のシステム。
【請求項２８】
前記生成する手段は、
前記ビットストリームセグメントの個々に関連付けられたひずみ削減に対する寄与に基づいて、データパケット内のビットストリームセグメントを減少順に編成するための手段をさらに含むことを特徴とする請求項２６に記載のシステム。
【請求項２９】
前記符号化ビットストリームセグメントの個々に関連付けられたひずみ削減に対する寄与を推定するための手段をさらに含むことを特徴とする請求項２６に記載のシステム。
【請求項３０】
使用可能な帯域幅に基づいて前記符号化ビットストリームセグメントのセットを選択するための手段をさらに含むことを特徴とする請求項２６に記載のシステム。
【請求項３１】
１つまたは複数のコンピュータ読取り可能媒体であって、実行されると、
複数の符号化ビデオビットストリームセグメントのそれぞれに関連付けられたひずみ削減に対する寄与を計算すること、
前記ひずみ削減に対する寄与の比較に基づいて、前記複数の符号化ビデオビットストリームセグメントのサブセットを決定すること、および
前記選択されたビデオビットストリームセグメントのサブセットを含むデータパケットを生成することを、コンピューティングシステムに指示するコンピュータ実行可能命令を含むことを特徴とする１つまたは複数のコンピュータ読取り可能媒体。
【請求項３２】
実行されると、前記ひずみ削減に対する寄与を、式
ΔＤ（ｆ，ｌ，ｉ）＝ΔＤ０（ｆ，ｌ，ｉ）＋ΔＤｄｒ（ｆ，ｌ，ｉ）
に従って計算することを、コンピューティングシステムに指示するコンピュータ実行可能命令をさらに含み、上式で
ΔＤ０（ｆ，ｌ，ｉ）は、ｆ番目のフレーム、ｌ番目のビットプレーン、およびｉ番目のマクロブロックに関連付けられたビットストリームセグメントのひずみ削減を表し、
ΔＤｄｒ（ｆ，ｌ，ｉ）は、ｆ番目のフレーム、ｌ番目のビットプレーン、およびｉ番目のマクロブロックに関連付けられたビットストリームセグメントのドリフティング抑制を表すことを特徴とする請求項３１に記載の１つまたは複数のコンピュータ読取り可能媒体。
【請求項３３】
実行されると、前記ドリフティング抑制を、式
【数１】
2004274773.tif 000014
に従って計算することを、コンピューティングシステムに指示するコンピュータ実行可能命令をさらに含み、上式で
ΔＤ０（ｆ，ｌ，ｉ）は、ｆ番目のフレーム、ｌ番目のビットプレーン、およびｉ番目のマクロブロックに関連付けられたビットストリームセグメントのひずみ削減を表し、
ＲＨＨ（ｆ）は、ｆ番目のフレーム内での高予測高基準（ＨＰＨＲ）モードの割合を表し、
ＲＨＬ（ｆ）は、ｆ番目のフレーム内での高予測低基準（ＨＰＬＲ）モードの割合を表し、
Ｎはドリフティング推定に使用されるフレーム数であることを特徴とする請求項３２に記載の１つまたは複数のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータのパケット化に関し、具体的に言えばファイン・グラニュラリティ・スケーラブル（fine  granularity  scalable：微細分性スケーラブル）（ＦＧＳ）およびプログレッシブ・ファイン・グラニュラリティ・スケーラブル（progressive  fine  granularity  scalable:漸進的新微細分性スケラーブル）（ＰＦＧＳ）なビットストリームのパケット化に関する。
【背景技術】
【０００２】
インターネットなどのネットワークを介したマルチメディアストリーミングの普及が進むにつれて、ストリーミング性能が重要な問題になっている。通常、ストリーミング性能に影響を及ぼす要因は２つある。第１に、使用可能なネットワーク帯域幅が、ネットワークのトラフィック量に応じて経時的に変化する可能性があるという事実である。第２に、現在のインターネットのベストエフォート性（一定の回線速度や保持点検などが保証されない性質）により、現在の配送プロセスにはエラーがつきものであるという事実である。その結果、時として伝送中にデータパケットが失われてしまうことになる。一般的なビデオ符号化方法の性質により、１つのデータパケット内にあるデータは前のデータパケットに含まれているデータに従属するのが一般的であり、したがって、データパケットが受け取られなければストリーミングビデオの性能は悪化する。
【０００３】
使用可能な帯域幅が変化するという第１の問題に対処するには、様々なビデオ符号化方法が実施可能である。このような方法には、ファイン・グラニュラリティ・スケーラブル（ＦＧＳ）コード体系（coding scheme;コード構成ともいう）、フレームベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）コード体系、およびマクロブロックベースのＰＦＧＳコード体系が含まれ、これらはそれぞれ、後に記載したものほど、使用可能な帯域幅の変化への適応に関して改善されている。ＦＧＳ／ＰＦＧＳ符号化方法は、帯域幅が変化するネットワークを介したストリーミングビデオの性能を効率的に上げることが可能であるが、データパケットが失われることによって生じる性能低下には対処していない。
【０００４】
ネットワークを介したデータパケットの配送を改善する方法にも、独自の開発努力が注がれた。この研究により、性能の向上はパケット間の従属性に反比例することがわかった。すなわち、互いに従属しないデータパケットのストリームは、互いに大きく従属するデータパケットのストリームよりも高い性能となる。
【０００５】
【特許文献１】米国特許第５，５３３，０２１号明細書
【特許文献２】米国特許第５，５３７，４０８号明細書
【特許文献３】米国特許第５，９４６，３１８号明細書
【特許文献４】米国特許第６，０２１，４４０号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、ＦＧＳ／ＰＦＧＳ符号化ビデオビットストリームをパケット化し、その結果生じるデータパケット間の従属性が最小となるような方法の確立が必要とされている。
【課題を解決するための手段】
【０００７】
パケット間の従属性を最小限にするためのＦＧＳ／ＰＦＧＳビデオビットストリームのパケット化について記載する。ビデオ符号化システムは、ＦＧＳ／ＰＦＧＳコード体系に従ってビデオストリームを符号化し、その結果、符号化ビットストリームセグメントが生じる。次に、ひずみ削減に対する各ビットストリームセグメントの全寄与（total contribution）に基づいて、および使用可能帯域幅に基づいて、符号化ビットストリームセグメントのセットが選択される。次に、パケット間従属性が最小となるように、選択されたビットストリームセグメントがデータパケットにパケット化される。
【発明を実施するための最良の形態】
【０００８】
全図面を通して、同じ機能および構成要素を参照するには同じ番号が使用される。  
以下の論述は、帯域幅変動および配送プロセスエラーの両方の影響を最小限にするための、ファイン・グラニュラリティ・スケーラブル（ＦＧＳ）およびプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）のビデオビットストリームのパケット化を対象とするものである。ＦＧＳおよびＰＦＧＳコード体系は、帯域幅変動の悪影響に対処するものであり、最適な配送メカニズムは、配送プロセス中に導入されるエラーを最小限にすることによってストリーミング性能を向上させることに焦点を合わせたものである。パケット間の従属性が低いビットストリームは、パケット間の従属性が高いビットストリームに比べて、結果的に配送エラーの伝播を少なくする。したがって、パケット間の従属性を減らすためにＦＧＳ／ＰＦＧＳ符号化ビットストリームのパケット化を最適化することによって、帯域幅の適合および最適な配送を相乗作用的に統合することができる。
【０００９】
例示的なシステムアーキテクチャおよび方法
図１は、ビデオビットストリームの符号化およびパケット化に使用可能な、ストリーミングビデオシステム１００の例を示す図である。ストリーミングビデオシステム１００は、ビデオ符号化コンピュータシステム１０２と、ネットワーク１０６によってコンピュータシステム１０２に接続された１つまたは複数のクライアントデバイス１０４を含む。ビデオ符号化コンピュータシステム１０２は、ビデオストリームをＦＧＳまたはＰＦＧＳコード体系に従って符号化し、符号化されたビデオストリームを、パケット間の従属性を最小限にするためにパケット化方式に従ってパケット化する。その後、符号化ビデオストリームを含むデータパケット１０８は、ネットワーク１０６を介してクライアントデバイス１０４に伝送される。
【００１０】
ビデオ符号化コンピュータシステム１０２は、プロセッサ１１０、ネットワークインターフェース１１２、およびメモリ１１４を含む。ネットワークインターフェース１１２は、ビデオ符号化コンピュータシステム１０２がネットワーク１０６を介してクライアントデバイス１０４と通信できるようにするためのメカニズムを提供する。ＦＧＳ／ＰＦＧＳエンコーダ１１６、ビットストリームセレクタ１１８、およびパケットジェネレータ１２０はメモリ１１４に格納され、ストリーミングビデオの符号化およびパケット化を容易にするためにプロセッサ１１０上で実行される。
【００１１】
ＦＧＳ／ＰＦＧＳエンコーダ１１６は、受け取ったビデオストリームをＦＧＳまたはＰＦＧＳコード体系に従って符号化する。実施例では、ＦＧＳ／ＰＦＧＳエンコーダ１１６はマクロブロックベースのＰＦＧＳエンコーダとして実施される。あるいはＦＧＳ／ＰＦＧＳエンコーダ１１６は、フレームベースのＰＦＧＳエンコーダとしてまたはＦＧＳエンコーダとして実施することができる。ビットストリームセレクタ１１８は、ネットワーク１０６に関連付けられた使用可能帯域幅を決定し、符号化ビットストリームセグメントの好ましいセットを、各ビットストリームの位置（フレーム、ビットプレーン、およびマクロブロック）、必要なビットレート、およびひずみ削減に対する全寄与に基づいて選択する。パケットジェネレータ１２０は、パケット化戦略（ストラテジ）に従って選択された符号化ビットストリームセグメントのセットをパケット化し、それによってパケット間従属性が最小のデータパケットを生成する。
【００１２】
クライアントデバイス１０４は、ビデオ符号化コンピュータシステム１０２によって生成および伝送されたデータパケットを受け取って復号するように構成される。クライアントデバイス１０４は、プロセッサ１２２、ネットワークインターフェース１２４、およびメモリ１２６を含む。ネットワークインターフェース１２４は、ネットワーク１０６からのデータパケット１０８の受取りを容易にするものである。
【００１３】
ＦＧＳ／ＰＦＧＳデコーダ１２８ならびに他のアプリケーション１３０はメモリ１２６に格納され、プロセッサ１２２上で実行される。ＦＧＳ／ＰＦＧＳデコーダ１２８は、受け取った符号化データパケット１０８を、ＦＧＳ／ＰＦＧＳエンコーダ１１６によって実施される同じＦＧＳ／ＰＦＧＳコード体系に従って復号するように構成される。他のアプリケーション１３０は、ディスプレイデバイス（図示せず）を使用して、復号済みビデオストリームを表示するかまたはそうでなければレンダリングするためのアプリケーションを含むことができる。
【００１４】
ストリーミングビデオの符号化方法
図２〜４は、ビデオビットストリームを符号化するための３つの例示的方法を示す図である。ファイン・グラニュラリティ・スケーラブル（ＦＧＳ）コード体系は、結果として、低品質基層および高品質エンハンスメント（enhancement;拡張）層の、２つのビットストリームを生じさせる。ＦＧＳ符号化フレームは、前のフレームの基層から予測することができる。例示的なＦＧＳコード体系について、図２を参照しながら以下でより詳細に述べる。
【００１５】
フレームベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）コード体系も、結果として低品質基層および高品質エンハンスメント層を生じさせる。ＰＦＧＳ符号化ビットストリームでは、フレームの基層は前のフレーム（基準フレームと呼ばれる）の基層から予測可能であり、フレームのエンハンスメント層は基準フレームのエンハンスメント層から予測可能である。高品質の基準ビットストリームが失われるかまたは伝送されないことによって生じる可能性のあるエラーの伝播を最小限にするために、別法として高品質基準を前の低品質基準から再構築することも可能である。フレームベースのＰＦＧＳコード体系の例について、図３を参照しながら以下でより詳細に述べる。
【００１６】
マクロブロックベースのＰＦＧＳコード体系は、各エンハンスメント層マクロブロックに使用される符号化モードを選択するために、３つの符号化モードおよび意思決定メカニズムを使用することによって、前述のフレームベースのＰＦＧＳコード体系をさらに改善したものである。マクロブロックベースのＰＦＧＳコード体系の例については、図４を参照しながら以下でより詳細に述べる。
【００１７】
ファイン・グラニュラリティ・スケーラブル（ＦＧＳ）コード体系
図２は、ＦＧＳコード体系のアーキテクチャ例を示す図である。ＦＧＳは、使用可能帯域幅に基づいて任意に切り捨てることのできるビットストリームを結果として生じさせ、そのビットストリームの各切り捨てバージョンは依然として完全に復号可能であるような、コード体系である。図２に示されるように、ＦＧＳエンコーダは、基層（ブロック２０２（１）、２０２（２）、２０２（３）、２０２（４）、・・・で表示）およびエンハンスメント層（ブロック２０４（１）、２０４（２）、２０４（３）、２０４（４）、．．．、２０６（１）、２０６（２）、２０６（３）、２０６（４）、．．．、２０８（１）、２０８（２）、２０８（３）、２０８（４）、．．．で表示）の、２つのビットストリームを生成する。
【００１８】
基層２０２は、他の積層符号化技法で一般的な、従来の動き補償（motion  compensated）離散コサイン変換（ＤＣＴ）によって符号化される。基層２０２は、典型的には低品質であり、非常に狭い帯域幅の中にでも確実に収まるように非常に薄い。オリジナルのＤＣＴ係数と量子化解除された基層ＤＣＴ係数との間の剰余がエンハンスメントビットストリーム（２０４、２０６、２０８、．．．）を形成し、これがビットプレーン符号化技術を使用して符号化され、埋込みビットストリームを生み出す。ＦＧＳ符号化ビットストリームでは、基層および予測フレーム内のすべてのエンハンスメント層は、基準フレームの最低品質基層の再構築バージョンから符号化される。
【００１９】
フレームベースＰＦＧＳコード体系
図３は、２つの基準を備えたフレームベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）コード体系の例示的アーキテクチャを示す図である。ＰＦＧＳは、基準フレームの基層からのフレームの基層の予測を続行しながら、基準フレームのエンハンスメント層からフレームのエンハンスメント層を予測することによって、ＦＧＳをさらに改善したコード体系である。たとえば、図３に示されるように、第２のフレームの基層３０２（２）は第１のフレームの基層３０２（１）から予測され、第２のフレームのエンハンスメント層３０４（２）、３０６（２）、３０８（２）、．．．は第１のフレームのエンハンスメント層３０８（１）から予測される。同様に、第３のフレームの基層３０２（３）は第２のフレームの基層３０２（２）から予測され、第３のフレームのエンハンスメント層３０４（３）、３０６（３）、３０８（３）、．．．は第２のフレームのエンハンスメント層３０６（２）から予測される。フレームの品質は、基層よりもエンハンスメント層でより高いため、フレームベースのＰＦＧＳコード体系は、ＦＧＳ方式よりも動き予測がより正確であり、したがって符号化効率が良い。
【００２０】
ただし、ＰＦＧＳ符号化ビットストリームを伝送する場合、将来のフレームを予測するための高品質エンハンスメント層基準は、使用可能帯域幅の減少によって引き起こされる切り捨てによって、一部または全部が失われる可能性がある。こうしたシナリオでは、デコーダは、破損した高品質基準または低品質基層基準を使用して、その後のフレームを予測しなければならない。エンコーダがその後のフレームを予測するために高品質基準を使用したため、ドリフティング（drifting:浮動，浮標）エラーが導入される可能性がある。ドリフティングエラーを減らすために、ＰＦＧＳコード体系は、前の高品質基準が使用できないイベントで、代わりに前の低品質基準から高品質基準を再構築する基本ドリフティング制御方法を組み込むこともできる。たとえば、図３に示されるように、エンハンスメント層３０８（２）が伝送中に破損または失われた場合、代わりにフレーム１の基層３０２（１）およびエンハンスメント層３０８（１）から、新しい高品質基準３０６（２）が再構築される。
【００２１】
マクロブロックベースのＰＦＧＳコード体系
マクロブロックベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）符号化は、３つの符号化モード、および各エンハンスメント層マクロブロックに適用する符号化モードを選択するための意思決定メカニズムを使用することによって、フレームベースのＰＦＧＳをさらに改善したコード体系である。３つのモードとは、低予測低再構築（ＬＰＬＲ）、高予測低再構築（ＨＰＬＲ）、および高予測高再構築（ＨＰＨＲ）である。符号化する各マクロブロックについて適切なモードを選択的に選択することにより、ＦＧＳおよびフレームベースＰＦＧＳのコード体系に比べて、ドリフティングエラーは低ビットレートで削減され、符号化効率は中および高ビットレートで改善される。
【００２２】
図４は、マクロブロックベースＰＦＧＳコード体系のＬＰＬＲ、ＨＰＬＲ、およびＨＰＨＲモードを示す図である。マクロブロック４０４はＬＰＬＲモードを使用して符号化され、マクロブロック４０６はＨＰＬＲモードを使用して符号化され、およびマクロブロック４０８はＨＰＨＲモードを使用して符号化される。図４では、予測は中実の矢印で表され、再構築は中空の矢印で表される。
【００２３】
マクロブロックベースＰＦＧＳコード体系のＬＰＬＲモードに従って、エンハンスメント層マクロブロックは、前の低品質基準から予測および再構築のどちらも行われる。これは、マクロブロック４０２（基準）とマクロブロック４０４（符号化されるマクロブロック）との間の関係で示されている。基層４０４（１）およびエンハンスメント層４０４（２）、４０４（３）、４０４（４）、．．．、はすべて、低品質基準である基層４０２（１）から予測される。さらに、エンハンスメント層４０４（３）は、その後のマクロブロックの基準として使用するために、基層４０２（１）から再構築もされる（中空矢印で表示）。
【００２４】
マクロブロックベースＰＦＧＳコード体系のＨＰＬＲモードに従って、エンハンスメント層マクロブロックは、前の高品質基準から予測され、前の低品質基準から再構築される。これは、マクロブロック４０４（基準）とマクロブロック４０６（符号化されるマクロブロック）との間の関係で示されている。基層４０６（１）は低品質基準である基層４０４（１）から予測され、エンハンスメント層４０６（２）、４０６（３）、４０６（４）、．．．、は高品質基準であるエンハンスメント層４０４（３）から予測される。エンハンスメント層４０６（３）は、その後のマクロブロックの基準として使用するために、基層４０４（１）から再構築される（中空矢印で表示）。
【００２５】
マクロブロックベースＰＦＧＳコード体系のＨＰＨＲモードに従って、エンハンスメント層マクロブロックは、前の高品質基準から予測および再構築のどちらも行われる。これは、マクロブロック４０６（基準）とマクロブロック４０８（符号化されるマクロブロック）との間の関係で示されている。ＬＰＬＲおよびＨＰＬＲのどちらのモードとも同じように、基層４０８（１）は基層４０６（１）から予測される。エンハンスメント層４０８（２）、４０８（３）、４０８（４）、．．．、は、高品質基準であるエンハンスメント層４０６（３）から予測される。さらにエンハンスメント層４０８（３）は、その後のマクロブロックの基準として使用するために、エンハンスメント層４０６（３）から再構築される（中空矢印で表示）。
【００２６】
基線パケット化戦略
前述のように、ＦＧＳ、フレームベースＰＦＧＳ、およびマクロブロックベースＰＦＧＳは、帯域幅変動の悪影響に対処するコード体系である。ただし、これまでに記述されたコード体系は、配送中のパケット損失によって生じるエラーの影響を最小限にするための手段は提供していない。
【００２７】
図５は、ＦＧＳ／ＰＦＧＳビットプレーン（bit plane）間の従属性を示す図である。図５に示された従属性によれば、ビットストリームセグメントは、その祖先（すなわち、同じマクロブロックに属するが低位のビットプレーン内にあるビットストリームセグメント）がすべて受け取られ、首尾よく復号された場合にのみ、復号可能である。たとえば、ビットストリーム５０４は、ビットストリーム５０２が受け取られ、首尾よく復号された場合にのみ復号可能である。同様に、ビットストリーム５０８は、ビットストリーム５０２、５０４、および５０６が受け取られ、首尾よく復号された場合にのみ復号可能である。
【００２８】
図６は、結果として有意なパケット従属性を発生させる、基線パケット化戦略に従った２つのフレームのパケット化を示す図である。図示された基線パケット化戦略は、最上位ビットプレーンから最下位ビットプレーンへ、および各ビットプレーン内の左から右へ、ラスタスキャン順にＦＧＳ／ＰＦＧＳ符号化ビットストリームセグメントをスキャンおよびグループ化することによって、パケットを生成する。所定のパケット長さに達すると必ずパケットが形成され、ビットストリームの残りの部分があれば新しいパケットにパケット化される。
【００２９】
その結果、図６に示されるように、パケットＰ１、Ｐ３、Ｐ４、Ｐ６、Ｐ７、Ｐ１０、Ｐ１１、Ｐ１２、およびＰ１３はすべて、フレーム１に関連付けられたデータを含む。同様に、パケットＰ１、Ｐ２、Ｐ４、Ｐ５、Ｐ７、Ｐ８、Ｐ９、Ｐ１３、Ｐ１４、Ｐ１５、およびＰ１６はすべて、フレーム２に関連付けられたデータを含む。さらに、パケットＰ１、Ｐ４、Ｐ７、およびＰ１３はすべて、フレーム１に関連付けられたデータとフレーム２とに関連付けられたデータの両方を含む。
【００３０】
図５に示されたように、ＦＧＳ／ＰＦＧＳビットプレーン間の従属性を考えると、パケットＰ３内のデータおよびパケットＰ４内のデータのうちの少なくとも一部は、パケットＰ１が首尾よく受信および復号されなかった場合には無用であると結論付けることができる。同様に、パケットＰ６およびＰ７に含まれるデータは、パケットＰ１、Ｐ３、および／またはＰ４が首尾よく受信および復号されなかった場合には無用である。これにより、パケットＰ１が失われた場合に、パケットＰ１に従属しているパケットＰ３、Ｐ６、Ｐ１０、Ｐ１１、およびＰ１２は、たとえ首尾よく受信されたとしても復号できないことがさらに推定できる。失われたパケットはパケットＰ４も汚染するが、これはデコーダの実施に応じて部分的に復号可能である場合とない場合がある。パケットＰ４の汚染は、パケットＰ７、Ｐ８、Ｐ９、Ｐ１３、Ｐ１４、Ｐ１５、およびＰ１６にも伝播する。その結果、パケットＰ１の損失により、パケットＰ２およびＰ５を除く他のすべてのパケットが無用となる可能性がある。
【００３１】
前述の基線パケット化戦略に従って生成されるパケット間の有意従属性は、一部には、パケットを位置合わせするためのメカニズムがないという事実によって生じるものである。そこで次に、符号化ビットストリームの性能を表すための数学的モデルを開発し、その後、パケットが生成されたときにそれらを位置合わせすることによってパケット間の従属性を減らすために、２つの例示的なパケット化戦略を確立するための基礎として使用する。
【００３２】
ＦＧＳ／ＰＦＧＳビットストリームの性能測定基準
ネットワーク（たとえばインターネット）を介したストリーミングＦＧＳ／ＰＦＧＳビットストリームの性能測定基準は、結果として性能を向上させることになるパケット化戦略を決定するために、代替のビットストリームパケット化戦略を比較するためのメカニズムを提供する。
【００３３】
前述のように、ＦＧＳおよびＰＦＧＳのどちらの符号化においても、エンハンスメント層はビットプレーン符号化技術を使用して符号化される。各８×８ＤＣＴブロックでは、６４の絶対値が１つのアレイにジグザグに順序付けられる。ブロックのビットプレーンは、同じ有意位置にあるＤＣＴ係数の各絶対値からの、６４ビットのアレイとして定義される。各マクロブロックの各ビットプレーンについて、（ＲＵＮ、ビットプレーン終了（ＥＯＰ））記号が形成され、出力ビットストリームを生成するために、符号ビットと共に可変長符号化（ＶＬＣ）が適用される。ビットプレーン符号化の後、エンハンスメント層ビットストリームが生成される。これらのエンハンスメントビットストリームは、それぞれがマクロブロックの１ビットプレーンのビットストリームを含む、多くのビットストリームセグメントに分離することが可能である。本論述の以下の部分では、最小処理単位がこうしたビットストリームセグメントとなる。ビットプレーン符号化がエンハンスメント層ビットストリームの生成に使用されることにより、同じマクロブロックに関連付けられたビットストリームセグメント間の従属性は非常に強いが、異なるマクロブロックに関連付けられたビットストリームセグメント間には従属性はない。（前述のように、ＦＧＳ／ＰＦＧＳビットプレーン間の従属性は、図５に示されている。）
【００３４】
特定のビットストリームセグメントが復号可能であるという数学的確率は、この情報に基づいて決定することができる。ｉ番目のビットプレーンにあるビットストリームセグメントＳｉを首尾よく復号するためには、Ｓｉがエラーなしで受け取られなければならず、Ｓｉ−１（すなわち、同じマクロブロックに属するが、より低位の（ｉ−１）番目のビットプレーンにあるビットストリームセグメント）も復号可能でなければならない。さらに、ビットストリームセグメントＳｉ−１が復号可能であるためには、Ｓｉ−１が受け取られ、Ｓｉ−２も復号可能でなければならない、という具合になる。これは、数学表現（mathematical terms）では、以下のように表すことができる。  
ｐ（Ｓｉ復号可能）
＝ｐ（Ｓｉ受信済み、Ｓｉ−１復号可能）
＝ｐ（Ｓｉ受信済み、Ｓｉ−１受信済み、Ｓｉ−２受信済み、．．．、Ｓ０受信済み）（１）
【００３５】
たとえば、すべて同じマクロブロックに属するが、それぞれ０番目、１番目、および２番目のビットプレーンにある、３つのビットストリームセグメント、Ｓ０、Ｓ１、およびＳ２が復号可能な確率は、以下のように表すことができる。  
ｐ（Ｓ０復号可能）＝ｐ（Ｓ０受信済み）
ｐ（Ｓ１復号可能）＝ｐ（Ｓ１受信済み、Ｓ０復号可能）
＝ｐ（Ｓ１受信済み、Ｓ０受信済み）
ｐ（Ｓ２復号可能）＝ｐ（Ｓ２受信済み、Ｓ１復号可能）
＝ｐ（Ｓ２受信済み、Ｓ１受信済み、Ｓ０受信済み）
【００３６】
上記の復号可能な確率を簡略化するために、複合確率（joint  probability）ｐ（Ｓｘ受信済み、Ｓｙ受信済み）が分析される。ビットストリームセグメントＳｘおよびＳｙが同じパケット、パケットｋにパケット化された場合、複合確率は以下のように表すことができる。
ｐ（Ｓｘ受信済み、Ｓｙ受信済み）
＝ｐ（Ｓｘ受信済み）＝ｐ（Ｓｙ受信済み）＝ｐ（パケットｋ受信済み）
【００３７】
ただし、ビットストリームセグメントＳｘおよびＳｙが異なるパケット、パケットｊおよびパケットｋにパケット化された場合、複合確率は以下のように表すことができる。
ｐ（Ｓｘ受信済み、Ｓｙ受信済み）
＝ｐ（Ｓｘ受信済み）×ｐ（Ｓｙ受信済み）
＝ｐ（パケットｊ受信済み）×ｐ（パケットｋ受信済み）
【００３８】
したがって、ビットストリームセグメントが復号可能な確率は、その祖先ビットストリームセグメントがどのようにパケット化されているかに大きく従属する。さらに簡略化するために、受信済みビットストリームセグメントｍを復号するためにパケットｍが受信されなければならない従属性を表すように、ビットストリームセグメント対パケットマッピング
【００３９】
【数１】
2004274773.tif 000003
【００４０】
が定義され、ここでパケットｍはＳの祖先ビットストリームセグメントを含むが、Ｓ自体は含まない。したがって、Ｓ０、Ｓ１、およびＳ２が復号可能な確率は、以下のように表すことができる。
【００４１】
【数２】
2004274773.tif 000004
【００４２】
異なるビットストリームセグメントは、異なる復号可能確率に加えて、ひずみ削減に対する異なる寄与を有する可能性もある。ストリーミングシステムでは、全体性能は終端間の全ひずみ削減とみなすことができるが、ただし、帯域幅制約（経時変化する場合がある）に合致していることを条件とする。したがって、復号可能な確率に加えて、各ビットストリームセグメントのひずみ削減も考慮すべきである。したがって、パケット消去ネットワークを介したストリーミングＦＧＳ／ＰＦＧＳビットストリームの性能測定基準は、以下のように定義することが可能であり、
【００４３】
【数３】
2004274773.tif 000005
【００４４】
上式で、項（ｆ，ｌ，ｉ）は、ｆ番目のフレーム、ｌ番目のビットプレーン、およびｉ番目のマクロブロックに関連付けられたビットストリームセグメントを示す。ΔＤ（ｆ，ｌ，ｉ）は、（ｆ，ｌ，ｉ）が首尾よく復号された場合に達成されるひずみ削減を表す。ｐｅ（ｍ）およびｐｅ（ｆ，ｌ，ｉ）はそれぞれ、ｍ番目のパケットおよびビットストリームセグメント（ｆ，ｌ，ｉ）を含むパケットのパケット損失確率である。
【００４５】
【数４】
2004274773.tif 000006
【００４６】
は、前述のようなビットストリームセグメント対パケットマッピングを示す。選択されたビットストリームセグメントセットＩは、（帯域幅調整間隔に対応する）現在の時間スロット内で伝送されることになる、すべてのエンハンスメント層ビットストリームセグメントを表す。Ｉの伝送レートは、以下を満たすものでなければならず、
【００４７】
【数５】
2004274773.tif 000007
【００４８】
上式で、ΔＲ（ｆ，ｌ，ｉ）は、ビットストリームセグメント（ｆ，ｌ，ｉ）のレートである。Ｂは現在の推定帯域幅、τは時間スロット長さ、Ｂ・τは推定使用可能レートである。ＲＢＬは基層ビットストリームのビットレートである。ＲＡＲＱおよびＲＦＥＣは、それぞれ、基層およびエンハンスメント層のパケットを含むすべてのパケットに関する、再送およびエラー保護の全レートである。結果として最小のパケット間従属性を生じさせるパケット化方式（packetization scheme）は、
【００４９】
【数６】
2004274773.tif 000008
【００５０】
が最大のときに生成される。
【００５１】
数式（２）は、エンハンスメント層ビットストリーム内のビットプレーン間の従属性、基層とエンハンスメント層のビットストリーム間の従属性、およびエンハンスメント層パケット上でのエラー保護（error protection）を考慮した、全般的な性能測定基準（パフォーマンス・メトリックス）を提供する。エラー保護の影響は、ｐｅ（）を介して反映される。不均一なエラー保護（ＵＥＰ）が採用された場合、ｐｅは、エンハンスメント層パケットによって異なることになる。他方で、均一なエラー保護（ＥＥＰ）が採用されるかまたはエラー保護が採用されない場合、ｐｅはすべてのエンハンスメント層パケットについて同じになる。エンハンスメント層ビットストリームは、通常は非常に薄い基層ビットストリームに従属するため、基層ビットストリームは正しく伝送されることが想定される。さらに簡易にするために、エンハンスメント層パケットには何のエラー保護も適用されていない。
【００５２】
したがって、上記で定義された性能測定基準は、パケット化システムを選択する場合に考慮すべき２つの要素を示す。第１に、使用可能帯域幅に最大のひずみ削減を提供するビットストリームセグメントセットＩを選択しなければならない。（この選択は使用可能帯域幅に基づくものであるため、ビットストリームセグメントセットＩの選択は、レート割振りの点から説明することができる。）第２に、（パケット間の従属性を最小にすることによって）パケット損失の影響を最小限にするパケット化戦略を選択しなければならない。
【００５３】
レート割振り
各符号化ビットストリームセグメントについて、ひずみ削減のレートおよび寄与がわかっている場合、ビットストリームセグメントセットＩの選択は、標準的なラグランジュ最小化問題に変換可能であり、勾配の等しい引数（equal−slope  argument）を適用することによって好ましい解決策を見つけることができる。各ＦＧＳまたはＰＦＧＳのエンハンスメント層ビットストリームセグメントでは、対応するレートは明示的であり、ひずみ削減に対するその寄与は、特にＰＦＧＳビットストリームの場合にそれほど明らかではない。
【００５４】
ＦＧＳビットストリームの場合、一定のエンハンスメントビットストリームセグメントの寄与は、現在のフレームに関して結果的に生じたひずみ削減のみからなるものであって、ＤＣＴドメイン内の剰余ビットプレーンのｌの数を使用して、以下のように（離散コサイン変換（ＤＣＴ）の単位のプロパティ（属性）に基づいて）精密に計算することが可能であり、
【００５５】
【数７】
2004274773.tif 000009
【００５６】
上式で、ｎはｌ番目のビットプレーン内の現在のｉ番目のＭＢのｌの数であり、ｌ＝０、１、２、．．．であり、Ｌ−１はビットプレーンのインデックスを示し（ｌ＝０は最上位ビットプレーンを示し、ｌ−Ｌ−１は最下位ビットプレーンを示す）、Ｌはｆ番目のフレーム内のビットプレーンの最大数である。
【００５７】
ＰＦＧＳエンハンスメント層はその後のフレームの高品質基準として使用可能であるため、現在のフレームの品質損失（ＦＧＳエンハンスメント層の場合と同様）を発生させる可能性があり、さらに後続のフレームにドリフティングを発生させる可能性もある。したがって、特定のＰＦＧＳビットストリームセグメントのひずみ削減に対する寄与は、（ＦＧＳビットストリームセグメントに関してと同様に）現在のフレームに関するひずみ削減と、後続のフレームに関するドリフティング抑制という、２つの部分に基づくものである。ＰＦＧＳビットストリームセグメントのひずみ削減に対する寄与は、以下のように表すことが可能であり、
【００５８】
【数８】
2004274773.tif 000010
【００５９】
上式で、項ΔＤ０（ｆ，ｌ，ｉ）およびΔＤｄｒ（ｆ，ｌ，ｉ）はそれぞれ、ビットストリームセグメント（ｆ，ｌ，ｉ）のひずみ削減およびドリフティング抑制を示す。
【００６０】
ドリフティング抑制（ΔＤｄｒ（ｆ，ｌ，ｉ））は直接計算すると非常に複雑な計算になるため、実際のシステムでは非現実的であり、したがって推定しなければならない。こうした推定は、ＰＦＧＳコード体系に関連付けられたエラー伝播パターンに基づいて決定することになる。前述のように、マクロブロックベースのＰＦＧＳコード体系は、結果としてフレームベースのＰＦＧＳコード体系よりも性能が良くなる。したがって、推定されるドリフティング抑制は、マクロブロックベースのＰＦＧＳコード体系に基づいて決定される。
【００６１】
図３および４を参照しながら上記で述べたように、ＰＦＧＳコード体系によれば、エンハンスメント層での高品質基準が予測に使用される。その結果、より正確な予測が得られ、ＦＧＳコード体系に比べてより良い符号化効率が達成される。他方で、デコーダが高品質基準ビットストリームを受信しない（すなわち、エンコーダおよびデコーダが同期化を失う）と、ドリフティングエラーが導入される。ドリフティングエラーを抑制するために、フレームベースＰＦＧＳコード体系は、エンコーダおよびデコーダの両方で、基層ビットストリームから再構築された低品質基準を定期的に参照することによって、最大のエラー伝播を制限する。この方法では、エンコーダおよびデコーダが適切に同期化され、ドリフティングエラー伝播が適切に制御される。ただし、マクロブロックベースのＰＦＧＳコード体系は、エンコーダとデコーダとの間での定期的な再同期化を保証するためのメカニズムを含まず、その結果、ドリフティングエラーが引き続き伝播される可能性がある。ドリフティングエラーの伝播は、マクロブロックベースのＰＦＧＳコード体系が３つのコード体系、すなわち、ＬＰＬＲ、ＨＰＬＲ、およびＨＰＨＲを実施するという事実によって、いっそう複雑になる。ドリフティングエラーは、予測および再構築がどちらも低品質の基層基準に基づいていることから、ＬＰＬＲモードでは伝播されない。ＨＰＬＲモードでは予測エラーが伝播される可能性があるが、再構築が低品質の基層基準に基づいているため、予測エラーはそれ以上伝播されることがない。ＨＰＨＲモードでは、予測および再構築のどちらも高品質エンハンスメント層基準に基づいているため、予測エラーはさらにその後のフレームにも伝播される可能性がある。
【００６２】
特定ビットストリームセグメントについてのドリフティング抑制を推定するために、現在のフレームの各ピクセルでは、次のフレームの符号化モードＬＰＬＲ、ＨＰＨＲ、またはＨＰＬＲの選択はランダムであることが想定される。ＲＨＨ（ｆ）およびＲＨＬ（ｆ）はそれぞれ、ｆ番目のフレームでのＨＰＨＲモードおよびＨＰＬＲモードのパーセンテージを表す。したがって、（ｆ＋１）番目のフレームによって参照されるｆ番目のフレーム内の任意のピクセルでは、ＨＰＨＲモードで参照される確率はＲＨＨ（ｆ＋１）であり、ＨＰＬＲモードで参照される確率はＲＨＬ（ｆ＋１）である。そこで、予測エラーが確率ＲＨＨ（ｆ＋１）＋ＲＨＬ（ｆ＋１）で（ｆ＋１）番目のフレームに伝播されることになり、エラーのＲＨＨ（ｆ＋１）部分は引き続き伝播されることになる。
【００６３】
図７は、前述の仮定に基づいて、各ビットストリームセグメントのドリフティング抑制を推定するための、エラー伝播モデルを示す図である。たとえば、ｆ番目のフレームがひずみ削減ｅ０（ｆ）と共に受け取られない場合、（ｆ＋１）番目のフレームに生じるドリフティングはおよそｅ０（ｆ）×ＲＨＨ（ｆ＋１）およびｅ０（ｆ）×ＲＨＬ（ｆ＋１）であり、それぞれｅ１（ｆ＋１）およびｅ２（ｆ＋１）と示される。さらに、ｅ１（ｆ＋１）が同じ方法で（ｆ＋２）番目のフレームに伝播されることになる、と言う具合である。
【００６４】
したがって、特定のエンハンスメント層基準ビットストリームセグメント（ｆ，ｌ，ｉ）に帰するドリフティング抑制は、以下のように表すことが可能であり、
【００６５】
【数９】
2004274773.tif 000011
【００６６】
上式で、Ｎはドリフティング推定に使用されるフレーム数である。
数式（５）および（６）に従って、ビットストリームセグメント（ｆ，ｌ，ｉ）の全寄与は以下のようになる。
【００６７】
【数１０】
2004274773.tif 000012
【００６８】
各エンハンスメント層ビットストリームセグメントに関するレートおよび全寄与が得られた後、使用可能帯域幅の制約内でのビットストリームセグメントセットの選択は、標準的なラグランジュ最小化問題に変換可能であり、勾配の等しい引数を適用することによって好ましい解決策を見つけることができる。
【００６９】
パケット損失の影響を最小限にするためのパケット化戦略
前述のように、上記数式（２）で定義された性能測定基準は、パケット化システムを選択する際に考慮すべき２つの要素を示す。第１に、使用可能帯域幅に最大ひずみ削減を提供するビットストリームセグメントセットＩを選択しなければならず、第２に、パケット損失の影響を最小限にするパケット化戦略を選択しなければならない。ビットストリームセグメントセットＩの選択について上記で論じたが、以下では、パケット化戦略の選択について論述する。
【００７０】
数式（２）は、ストリーミング性能がパケット間の従属性の影響を受けやすいことを示す。したがって、結果的にパケット間従属性が少なくなるパケット化戦略は、より良い性能を生じさせることになる。以下の論述では、（図６を参照しながら上記で述べた）基線パケット化戦略の代替として考えることができる２つのパケット化戦略について述べる。前述のように、基線パケット化戦略は単純明快であるが、パケット間にかなりの従属性を導入するものである。以下の論述では、パケット間の従属性を大幅に削減するバイナリツリーパケット化戦略、およびパケット間の従属性を消去するパケット独立型（packet−independence）のパケット化戦略について述べる。
【００７１】
バイナリツリーパケット化戦略
図８は、図６を参照しながら上記で説明した基線パケット化戦略に基づくものよりもパケット従属性が大幅に少なくなる、バイナリツリーパケット化戦略に従った２つのフレームのパケット化を示す図である。ＦＧＳエンハンスメントビットプレーンのビットストリームセグメントのサイズは、典型的にはほぼ指数関数的に増加する傾向にある。したがって、当然のごとく（naturlly）フレームのエンハンスメント層は、各ノードがビットストリームのセグメントを表し、その端部が従属性を表す、バイナリツリーによって表すことができる。うまく位置合わせされたバイナリツリー構造は、左の子をその親の左に位置合わせすること、および右の子をその親の右に位置合わせすることによって、トップダウン方式で構築される。
【００７２】
図８に示されるように、パケット間の従属性は大幅に削減される。たとえば、パケットＰ１が失われた場合、パケットＰ３、Ｐ４、Ｐ５、およびＰ６も影響を受けるが、パケットＰ２、Ｐ７、Ｐ８、Ｐ９、およびＰ１０は完全に復号可能なままである。バイナリツリーパケット化戦略のマイナス面は、パケットサイズがノードごとに異なることである。
【００７３】
バイナリツリーの各ノードは、（レート、ひずみ）の組に関連付けられる。使用可能なビットレートに従って、バイナリツリーは、ノードを選択するためにレート−ひずみ（Ｒ−Ｄ）判断基準を使用して刈り込まれ、その結果、所定のビットレートに対して最大のひずみ削減が生じる。たとえば、図８に示されたフレームの場合、第４のビットプレーンではいくつかのビットストリームセグメントが省かれている。一実施では、好ましい移送パケット長さ（たとえば５キロビット）は、親ノードと２つの子ノードを１つの移送パケット内にグループ化できるようにすることであると定義される。
【００７４】
パケット独立型パケット化戦略
図９は、パケット間の従属性を消去するパケット独立型パケット化戦略に従った、多重のマクロブロックのパケット化を示す図である。前述のように、ＦＧＳおよびＰＦＧＳの両方のコード体系で使用されるビットプレーン符号化により、同じマクロブロックのエンハンスメント層ビットストリームセグメント間には強い従属性があるが、異なるマクロブロックのビットストリームセグメント間には従属性がない。したがって、パケット独立型パケット化戦略では、同じマクロブロックのすべてのビットプレーンからのビットストリームセグメントを、同じパケットにパケット化する。そのため、数式（２）によって定義された性能測定基準（パフォーマンス・メトリックス）は、次のように縮めることが可能であり、
【００７５】
【数１１】
2004274773.tif 000013
【００７６】
上式で、レート制約は変更されないままである。
【００７７】
前述のように、ΔＤ（ｆ，ｌ，ｉ）項は、（ｆ，ｌ，ｉ）が首尾よく復号された場合に達成されるひずみ削減を表す。マクロブロックを最小単位として使用するＲ−Ｄベースの選択戦略が、マクロブロックレベルで適用される。マクロブロックの各層は、（レート、ひずみ）の組で表され、所定のターゲットビットレートでは、ラグランジュの目的関数Ｄ＋λＲが最小になるように、どのマクロブロック、および各マクロブロックのどの層を選択すべきであるかを判別するために、ラグランジュ最小化問題の勾配の等しい引数が使用される。言い換えれば、ビットストリームセグメントがどの層およびどのマクロブロックからのものであるかに関わらず、帯域幅制約を注視しながら、最も有意なひずみ削減となるビットストリームセグメントのみが選択される。図９に示されるように、異なるマクロブロックそれぞれについて、異なる数の層を選択することができる。たとえば、マクロブロック１０は３つの層しか含まないが、マクロブロック０、３、６、および７はそれぞれ５つの層を含む。
【００７８】
ビットストリーム選択後、パケット従属性を消去するように、同じマクロブロックの選択されたすべてのビットプレーンが同じパケットにパケット化されるような方法で、パケットが生成される。所定のパケット長さに達するとパケットが形成され、他のマクロブロックから選択された残りのビットストリームがあれば新しいパケットにパケット化される。所定のマクロブロックから選択されたすべてのビットストリームセグメントが同じパケットにパケット化されるものとすれば、複数のマクロブロックからのビットストリームセグメントを同じパケットにパケット化することができる。
【００７９】
図９に矢印で示されるように、ビットストリームセグメントを同じパケットにパッキングするのを容易にするために、ラスタスキャン順序付けが使用される。ラスタスキャン順序付けにより、ビットストリームセグメントは結果的に、最も重要なビットストリームセグメントから最も重要でないビットストリームセグメントまで、それらのＲ−Ｄ寄与に応じた順序でパックされる。
【００８０】
ＦＧＳ／ＰＦＧＳビデオビットストリームのパケット化方法
ビデオ符号化コンピュータシステム１０２によって実行されるようなＦＧＳ／ＰＦＧＳビデオビットストリームのパケット化については、コンピュータによって実行される、アプリケーションモジュールなどのコンピュータ実行可能命令の一般的なコンテキストで説明することができる。一般に、アプリケーションモジュールには、特定のタスクを実施するかまたは特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などが含まれる。ＦＧＳ／ＰＦＧＳビデオビットストリームのパケット化システムは、任意数のプログラミング技法を使用して実施可能であり、ローカルコンピューティング環境で、あるいは、任意数の通信プロトコルに基づいて様々な通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される、分散コンピューティング環境で実施可能である。こうした分散コンピューティング環境では、アプリケーションモジュールを、メモリ記憶デバイスを含むローカルおよびリモート両方のコンピュータ記憶媒体に配置することができる。
【００８１】
図１０は、ビデオストリームを符号化およびパケット化するための例示的な方法を示す図である。例示のために、図１に示された構成要素を参照しながら図１０について説明する。
【００８２】
ブロック１００２では、ビデオストリームはＦＧＳ／ＰＦＧＳコード体系に従って符号化される。たとえば、ビデオ符号化コンピュータシステム１０２のＦＧＳ／ＰＦＧＳエンコーダ１１６は、符号化されるビデオストリームを受け取り、マクロブロックベースのＰＦＧＳコード体系を適用して、結果として（図４を参照して説明したような）符号化されたビデオビットストリームセグメントのセットが生じる。
【００８３】
ブロック１００４では、ビデオ符号化コンピュータシステム１０２が、各符号化ビットストリームセグメントについて、位置、必要なビットレート、およびひずみ削減に対する全寄与に関連付けられたデータを集める。一実施では、データは（ブロック１００２を参照して説明した）符号化プロセスの一部として集められる。あるいはデータは、ビットストリームセグメントが符号化された後の別のプロセス中に集められる場合がある。ＦＧＳ／ＰＦＧＳ符号化プロセス中にデータを集めるための例示的な方法については、図１１を参照して以下でより詳細に説明する。
【００８４】
ブロック１００６では、ビットストリームセレクタ１１８が、パケット化用のビットストリームセグメントセットを決定する。記載された実施では、ビットストリームセグメントのセットは、各ビットストリームの位置（フレーム、ビットプレーン、およびマクロブロック）、必要なビットレート、およびひずみ削減に対する全寄与に基づいて選択される。ビットストリームセグメントのセットを選択するための例示的な方法については、図１２を参照して以下でより詳細に説明する。
【００８５】
ブロック１００８では、パケットジェネレータ１２０が、パケット間の従属性を最小限にするために、パケット化戦略に従ってビットストリームセグメントの選択されたセットをパケット化する。一実施は記載されたバイナリツリーパケット化戦略を使用するが、代替の実施は記載されたパケット独立型パケット化戦略を使用する。一実施では、ラスタスキャン順序付けが使用され、その結果、選択されたビットストリームセグメントが、ひずみ削減に対するそれらの寄与に従って、最も重要なビットストリームセグメントから最も重要でないビットストリームセグメントまでパケット内で順序付けされる。
【００８６】
図１１は、各符号化ビットストリームセグメントについて、位置、必要なビットレート、およびひずみ削減に対する全寄与に関連付けられたデータを集めるための例示的な方法１００４を示す図である。
【００８７】
ブロック１１０２では、ＦＧＳ／ＰＦＧＳエンコーダ１１６が、各符号化ビットストリームセグメントについて、（どのフレーム、どのビットプレーン、およびどのマクロブロックかを含む）位置データを集める。位置は、符号化プロセス中にエンコーダが容易に使用できるものであり、容易に記録できるものである。
【００８８】
ブロック１１０４では、ＦＧＳ／ＰＦＧＳエンコーダ１１６が、現在のフレーム内の各エンハンスメント層ビットストリームセグメントについて、ＨＰＨＲモードおよびＨＰＬＲモードの割合を決定する。（ＦＧＳコード体系に基づいて符号化する場合、これらの値はどちらもゼロに等しい。）
【００８９】
ブロック１１０６では、ＦＧＳ／ＰＦＧＳエンコーダ１１６が、各符号化エンハンスメント層ビットストリームセグメントについて、必要なビットレートおよびひずみ削減に対する全寄与を計算する。記載された実施では、ドリフティング抑制は、高品質基準として使用されない各ビットストリームセグメントの場合、ドリフティングひずみがその後のフレームに伝播されることがないため、ゼロに初期化される。このデータは、その後のドリフティング推定値の決定に使用するために、バッファに保存される。
【００９０】
その後、高品質基準として使用される各エンハンスメント層ビットストリームセグメントについて、推定されるドリフティング寄与が計算される。比較的少数のフレームを使用して、フレーム間の距離が増加するにつれてドリフティングは減衰するという事実によるドリフティング抑制を推定することができる。記載された実施では、Ｎ個のフレーム（たとえば１０）のグループを使用して、推定ドリフティング抑制を計算することができる。これまでのあらゆるフレーム（Ｎ個のフレームの距離内にある）について、フレームに関連付けられたドリフティング抑制が推定され、現在のフレーム内のＨＰＨＲモードおよびＨＰＬＲモードの割合に基づいて更新される。その後ドリフティング抑制は、全寄与に累算される。
【００９１】
ブロック１１０８では、ドリフティング抑制のＮ個すべてのフレームが推定されており、集められたデータはサイド情報ファイルに出力され、パケット化のためにビットストリームセグメントのセットを選択する際に使用される。
【００９２】
図１２は、パケット化されるビットストリームセグメントのセットを選択するための例示的な方法を示す図である。
【００９３】
ブロック１２０２では、ビットストリームセレクタ１１８が、特定の時間スロットについてネットワーク１０６に関連付けられた使用可能な帯域幅を推定する。
【００９４】
ブロック１２０４では、ビットストリームセレクタ１１８が、ビデオストリームの固有の特徴であるフレームレートに基づいて伝送されるフレームの数（Ｍ）を決定する。
【００９５】
ブロック１２０６では、ビットストリームセレクタ１１８が、サイド情報ファイルに格納されたデータをロードする。（これには、各符号化ビットストリームセグメントについての位置、必要なビットレート、およびひずみ削減に対する全寄与が含まれる。）
【００９６】
ブロック１２０８では、ビットストリームセレクタ１１８が、Ｒ−Ｄ曲線が凸形であることを検証するために、同じマクロブロックの異なるビットプレーンについてレートおよびひずみ削減に対する寄与を検査し、これによって以前に定義されたラグランジュ最小化問題の解決策を確実に得ることができる。
【００９７】
ブロック１２１０では、ビットストリームセレクタ１１８が、標準的なラグランジュ最小化問題の勾配の等しい引数に基づいて、各マクロブロックについてビットストリームセグメントのセットを選択する。
【００９８】
結論
以上、本発明に係わるシステムおよび方法について、構造的特徴および／または方法論的ステップ特有の言語で記載してきたが、特許請求の範囲で定義された本発明は、本実施形態の欄で記載された特定の特徴またはステップに必ずしも限定されるものではない。むしろ、その特定の特徴およびステップは、特許請求された本発明を実施する好ましい一形態として開示されているものである。
【図面の簡単な説明】
【００９９】
【図１】ＦＧＳ／ＰＦＧＳビデオストリームのパケット化が実施可能なビデオ符号化システムの例を示す図である。
【図２】ファイン・グラニュラリティ・スケーラブル（ＦＧＳ）コード体系の例示的アーキテクチャを示す図である。
【図３】フレームベースのプログレッシブ・ファイン・グラニュラリティ・スケーラブル（ＰＦＧＳ）コード体系の例示的アーキテクチャを示す図である。
【図４】マクロブロックベースのＰＦＧＳコード体系の例示的アーキテクチャを示す図である。
【図５】ＦＧＳまたはＰＦＧＳコード体系によって生成されるビットプレーン間の従属性を示す図である。
【図６】基線パケット化戦略に従った２つのフレームのパケット化を示す図である。
【図７】ＰＦＧＳビットストリームセグメントに関連付けられたドリフティング抑制を推定するためのエラー伝播モデルを示す図である。
【図８】バイナリツリーパケット化戦略に従った２つのフレームのパケット化を示す図である。
【図９】マクロブロックベースのパケット化戦略に従ったいくつかのフレームのパケット化を示す図である。
【図１０】ビデオビットストリームを符号化およびパケット化するための例示的な方法を示す図である。
【図１１】パケット化されるビットストリームセグメントセットの選択をサポートするために符号化されたビデオストリームに関連付けられたデータを集めるための例示的な方法を示す図である。
【図１２】パケット化されるビットストリームセグメントセットを選択するための例示的な方法を示す図である。
【符号の説明】
【０１００】
１０２  ビデオ符号化コンピュータシステム
１０４  クライアントデバイス
１０６  ネットワーク
１０８  データパケット
１１０  プロセッサ
１１２  ネットワークインターフェース
１１４  メモリ
１１６  ＦＧＳ／ＰＦＧＳエンコーダ
１１８  ビットストリームセレクタ
１２０  パケットジェネレータ１２０
１２２  プロセッサ
１２４  ネットワークインターフェース
１２６  メモリ
１２８  ＦＧＳ／ＰＦＧＳデコーダ
１３０  他のアプリケーション
【図１】
2004274773.tif 000015
【図２】
2004274773.tif 000016
【図３】
2004274773.tif 000017
【図４】
2004274773.tif 000018
【図５】
2004274773.tif 000019
【図６】
2004274773.tif 000020
【図７】
2004274773.tif 000021
【図８】
2004274773.tif 000022
【図９】
2004274773.tif 000023
【図１０】
2004274773.tif 000024
【図１１】
2004274773.tif 000025
【図１２】
2004274773.tif 000026