(57)【特許請求の範囲】
【請求項１】
エンコーディングアルゴリズムによりエンコードされたデータパケットを有するストリーミングデータをエンコーダからデコーダに転送する方法であって、
各前記データパケットはパケットヘッダおよび１つまたは複数のフレームを含み、
前記エンコーダにより、
前記エンコーディングアルゴリズムを使用して、前記ストリーミングデータを複数のデータパケットに形成するステップと、
各前記フレームと隣接し、およびそれに先行する所定の一意のビットシーケンスであって、前記エンコーディングアルゴリズムにおいて前記ストリーミングデータをエンコードするために使用されない所定の一意のビットシーケンスであって、隣接する２つのフレームの間の区切りを示し、前記デコーダにより破損のフレームの検出のために使用されるビットシーケンスを形成するステップと、
１つの前記フレームのフラグメントと、当該１つのフレームのフラグメントと隣接し、およびその後に続く前記所定の一意のビットシーケンスのフラグメントとの組合せを検査するステップと、
前記組合せが、前記所定の一意のビットシーケンスと同じビットシーケンスを含む場合、スタッフィングビットを１つの前記フレームの前記フラグメントに入れるステップであって、それにより前記組合せは、前記所定の一意のビットシーケンスと同じビットシーケンスを含まない、前記フラグメントに入れるステップと、
前記デコーダにより、
隣接の所定の一意のビットシーケンスが破損しているか否かをチェックすることにより破損のフレームを検出するステップと
を含むことを特徴とする方法。
【請求項２】
１つまたは複数のスタッフィングビットをその末端部に入れる前記ステップにおいて、各バイトに各前記フレームを整列させるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
各前記データパケットの前記パケットヘッダを、前記１つまたは複数のフレームのうち最初のフレームに先行する前記所定の一意のビットシーケンスと隣接するように形成するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記パケットヘッダは、それぞれ他の前記データパケットに対するパケットシーケンス番号からなることを特徴とする請求項３に記載の方法。
【請求項５】
コンピュータに、請求項１に記載のエンコーダのステップを実行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項６】
Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）コーデックによりエンコードされたデータパケットを有するオーディオストリーミングデータをエンコーダからデコーダに転送する方法であって、
各前記データパケットはパケットヘッダおよび１つまたは複数のフレームを含み、
前記エンコーダにより、
ＷＭＡコーデックにより、複数のデータパケットを前記オーディオストリーミングデータから形成するステップと、
各前記フレームと隣接し、およびそれに先行して、ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されないビットストリングであって、隣接する２つのフレームの間の区切りを示し、前記デコーダにより破損のフレームの検出するために使用されるビットストリングを形成するステップと、
各前記フレームは、隣接した１４個のゼロのビットストリングの間にあり、１つの前記フレームのフラグメント、および、隣接した１４個のゼロのビットストリングのフラグメントの組合せを検査するステップと、
前記組合せが１４個のゼロのビットストリングを含む場合、ゼロでないスタッフィングビットを前記１つのフレームのフラグメントに入れるステップであって、それにより前記組合せは１４個のゼロのビットストリングを含まないステップと、
前記デコーダにより、
隣接の所定の一意のビットストリングが破損しているか否かをチェックすることにより破損のフレームを検出するステップと、
当該検出されたエラーのフレームを廃棄するステップと
を含むことを特徴とする方法。
【請求項７】
１つまたは複数のゼロのスタッフィングビットをその末端部に入れる前記ステップにおいて、各バイトに各前記フレームを整列させるステップをさらに含み、
それにより各前記フレームがバイト整列させられることを特徴とする請求項６に記載の方法。
【請求項８】
各前記データパケットのパケットヘッダを、前記１つまたは複数のフレームのうち最初のフレームに先行する１４個のゼロのビットストリングと隣接するように形成するステップをさらに含むことを特徴とする請求項６に記載の方法。
【請求項９】
前記パケットヘッダは、それぞれ他の前記データパケットに対するパケットシーケンス番号からなることを特徴とする請求項８に記載の方法。
【請求項１０】
コンピュータに請求項６に記載のエンコーダのステップを実行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項１１】
エンコーディングアルゴリズムにより、ストリーミングデータをデータパケットにエンコードする方法であって、
各前記データパケットはパケットヘッダおよび１つまたは複数のフレームを含み、
前記エンコーディングアルゴリズムを使用して、前記ストリーミングデータを複数のデータパケットに形成するステップと、
各前記フレームと隣接し、およびそれに先行して、前記エンコーディングアルゴリズムにおいて前記ストリーミングデータをエンコードするために使用されない所定の一意のビットシーケンスを形成するステップと、
各前記データパケットの前記パケットヘッダを、前記１つまたは複数のフレームのうち最初の前記フレームの前記所定の一意のビットシーケンスと連続するように形成するステップと、
１つまたは複数のスタッフィングビットをその末端部に入れることによって、各バイトに各前記フレームを整列させるステップと、
１つの前記フレームのフラグメントと、１つの前記フレームの前記フラグメントと隣接し、およびその後に続く前記所定の一意のビットシーケンスのフラグメントとの組合せを検査するステップと、
前記組合せが、前記所定の一意のビットシーケンスと同じビットシーケンスを含む場合、スタッフィングビットを前記１つのフレームのフラグメントに入れるステップとを含み、それにより前記組合せは、前記所定の一意のビットシーケンスと同じビットシーケンスを含まず、前記所定の一意のビットシーケンスは隣接する２つのフレームの間の区切りを示し、エンコードされた前記ストリーミングデータをデコードするときに、破損のフレームを検出するために使用されることを特徴とする方法。
【請求項１２】
前記パケットヘッダは、それぞれ他の前記データパケットに対するパケットシーケンス番号からなることを特徴とする請求項１１に記載の方法。
【請求項１３】
コンピュータに請求項１１に記載のステップを実行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項１４】
ＷＭＡコーデックにより、オーディオストリーミングデータをデータパケットにエンコードする方法であって、
各前記データパケットはパケットヘッダおよび１つまたは複数のフレームを含み、
前記オーディオストリーミングデータを複数のデータパケットに形成するステップと、
各前記フレームと隣接し、およびそれに先行する１４個のゼロのビットストリングを形成するステップと、
各前記データパケットの前記パケットヘッダを、それぞれ他の前記データパケットに対するパケットシーケンス番号からなるように、および前記１つまたは複数のフレームのうち最初の前記フレームの前記１４個のゼロのビットストリングと連続するように形成するステップと、
１つまたは複数のゼロのスタッフィングビットをその末端部に入れることによって、各バイトに各前記フレームを整列させるステップと、
各前記フレームのフラグメント、および、隣接して後に続く前記１４個のゼロのビットストリングのフラグメントの組合せを検査するステップと、
前記１４個のゼロのビットストリングを含む各前記組合せについて、スタッフィングビットを前記各フレームの前記フラグメントに入れるステップであって、それにより前記組合せは１４個のゼロのビットストリングを含まないステップとを含み、
前記１４個のゼロのビットストリングは隣接する２つのフレームの間の区切りを示し、エンコードされた前記オーディオストリーミングデータをデコードするときに、破損のフレームを検出するために使用されることを特徴とする方法。
【請求項１５】
コンピュータに請求項１４に記載のステップを実行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項１６】
１つまたは複数のデータパケットを含むパケットエリアをそれぞれ含むストリームパケットを使用して、ストリーミングデータを記録するためのデータエリアを有する情報媒体上に情報を記録する方法であって、
各データパケットはヘッダおよび１つまたは複数のフレームを含み、
前記ストリーミングデータを前記ストリームパケットにおける前記データパケットエリアに分散させて、エンコーディングアルゴリズムを使用して、前記分散されたストリーミングデータが前記データパケットエリアに記録されるようにするステップを含み、
各前記フレームが、前記エンコーディングアルゴリズムによって前記ストリーミングデータをエンコードするために使用されない所定の一意のビットシーケンスであって、隣接する２つのフレームの間の区切りを示し、エンコードされた前記ストリーミングデータをデコードするときに、破損のフレームを検出するために使用されるビットシーケンスを有する同期マークによって先行され、およびそれと連続するように、情報の記録が実行され、
１つの前記フレームの前記同期マークのフラグメント、および、各前の前記フレームの隣接したフラグメントの組合せを検査するステップと、
前記組合せが、前記所定の一意のビットシーケンスと同じビットシーケンスを含む場合、スタッフィングビットを各前のフレームの隣接したフラグメントに入れるステップであって、それにより前記組合せは、前記所定の一意のビットシーケンスと同じビットシーケンスを含まないステップと
をさらに含むことを特徴とする方法。
【請求項１７】
１つまたは複数のスタッフィングビットをその末端部に入れることによって、各前記フレームを各バイトに整列させるステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
コンピュータに請求項１６に記載のステップを実
行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項１９】
１つまたは複数のデータパケットを含むパケットエリアをそれぞれ含むストリームパケットを使用して、オーディオストリーミングデータを記録するためのデータエリアを有する情報媒体上に、オーディオデータストリームからのＷＭＡデータストリームを記録する方法であって、
各データパケットはヘッダおよび１つまたは複数のフレームを含み、
前記オーディオストリーミングデータを前記ストリームパケットにおける前記データパケットエリアに記録して、前記記録されたオーディオストリーミングデータがＷＭＡコーデックによって前記データパケットエリアにおいてＷＭＡデータとしてエンコードされるようにするステップを含み、
各前記フレームが、ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されないビットストリングであって、隣接する２つのフレームの間の区切りを示し、エンコードされた前記オーディオストリーミングデータをデコードするときに、破損のフレームを検出するために使用されるビットストリングを含む同期マークによって先行され、およびそれと隣接するように、前記オーディオストリーミングデータの記録が実行され、
１つの前記フレームの前記同期マークのフラグメント、および、各前の前記フレームの隣接したフラグメントの組合せを検査するステップと、
前記組合せが、ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されないビットストリングを含む場合、スタッフィングビットを前記各前の前記フレームの隣接したフラグメントに入れるステップであって、それにより前記組合せは、
ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されるビットストリングを含むステップと
をさらに含むことを特徴とする方法。
【請求項２０】
１つまたは複数のゼロのスタッフィングビットをその末端部に入れることによって、各前記フレームを各バイトに整列させるステップをさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
コンピュータに請求項１９に記載のステップを実行させるプログラムを記録したことを特徴とする、コンピュータ可読記録媒体。
【請求項２２】
ＷＭＡデータストリームを記録するためのデータエリアと、
その中に分散された前記ＷＭＡデータストリームを有する複数のストリームパックとを含み、
各前記ストリームパックは、１つまたは複数のデータパケットを含むパケットエリアを含み、
各前記データパケットは、ＷＭＡストリーミングデータのヘッダおよび１つまたは複数のフレームを含み、さらに、
隣接して各前記フレームに先行し、および、ＷＭＡエンコーダによってＷＭＡデータス
トリームをエンコードするために使用されないビットストリングであって、隣接する２つのフレームの間の区切りを示し、エンコードされた前記オーディオストリーミングデータをデコードするときに、破損のフレームを検出するために使用されるビットストリングを含む同期マークを含み、
前記同期マークは１４個のゼロを含み、
１つの前記フレームのフラグメントと、
隣接した前記同期マークのフラグメントとの組合せにおいて「１」のスタッフィングビットをさらに含み、
前記「１」のスタッフィングビットを除いて、前記組合せは１４個のゼロのビットストリングを含むＷＭＡデータ構造を有するデータを記録したことを特徴とするコンピュータ可読記録媒体。
【請求項２３】
前記パケットヘッダは、それぞれ他の前記データパケットに対するパケットシーケンス番号からなることを特徴とする請求項２２に記載のコンピュータ可読記録媒体。
【請求項２４】
１つまたは複数のゼロのスタッフィングビットを各前記フレームの末端部においてさらに含み、それにより各前記フレームが各バイトに整列されることを特徴とする請求項２２に記載のコンピュータ可読記録媒体。
【請求項２５】
請求項２２に記載のコンピュータ可読記録媒体のデータ構造を使用するＷＭＡコーデックのデコーダであって、
各前記フレームの前記同期マークを位置付けること、および  前記ＷＭＡデータストリームからそれぞれその中においてオーディオレンダリングすることを特徴とするデコーダ。
【請求項２６】
前記デコーダが１つの前記フレームにおいてビットエラーに遭遇するとき、前記デコーダは、前記対応するデータパケットにおける他の前記フレームのすべてを廃棄することなく、前記１つのフレームを廃棄することを特徴とする請求項２５に記載のデコーダ。
【請求項２７】
ネットワークに結合されたクライアントコンピュータと、
前記ネットワークを介して、複数の格納されたＷＭＡオーディオデータストリームを前記クライアントコンピュータに伝送するために結合されたサーバコンピュータとを含み、各前記ＷＭＡオーディオデータストリームは複数のデータパケットを有し、該複数のデータパケットは
それぞれが他の前記データパケットに対するパケットシーケンス番号から
なるパケットヘッダと、
エンコードされたＷＭＡデータの１つまたは複数のフレームと、
各前記フレームに先行し、ＷＭＡエンコーダによってオーディオデータストリームをエンコードするために使用されないビットストリングを含む同期マークとをそれぞれ含み、
前記クライアントコンピュータはＷＭＡコーデックを含み、該ＷＭＡコーデックは、各前記フレームの前記同期マークを位置付け、および前記エンコードされたＷＭＡデータストリームからそれぞれその中においてオーディオレンダリングするためのデコーダを含み、
前記デコーダが１つの前記フレームにおいて前記同期マーク中のビットエラーに遭遇するとき、前記デコーダは、前記対応するデータパケットにおける他の前記フレームのすべてを廃棄することなく、前記ビットエラーを有する同期マークに対応するフレームを廃棄し、
前記サーバコンピュータは、
オーディオストリーミングデータを受信するための入力デバイスと、
ＷＭＡコーデックとを含み、
該ＷＭＡコーデックは、
前記オーディオストリーミングデータから複数のデータパケットを形成し、および各前記フレームと隣接し、およびそれに先行して、ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されないビットストリングを形成するためのエンコーダを含み、
ＷＭＡエンコーダによってＷＭＡデータストリームをエンコードするために使用されない前記ビットストリングは、１４個のゼロのビットストリングであり、
前記エンコーダは、
１つの前記フレームのフラグメント、および、１４個のゼロのビットストリングの隣接したフラグメントの組合せを検査し、
前記組合せが１４個のゼロのビットストリングを含む場合、ゼロでないスタッフィングビットを１つの前記フレームのフラグメントに入れ、それにより前記組合せは１４個のゼロのビットストリングを含まず、
１つまたは複数のゼロのスタッフィングビットをその末端部に入れることによって、各バイトに各前記フレームを整列させ、それにより各前記フレームがバイト整列させられ、および各前記データパケットの前記パケットヘッダを、前記１つまたは複数のフレームのうち最初のフレームに先行する前記同期マークと隣接するように形成することを特徴とするシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットなど、ネットワークを介してメディア（たとえば、オーディオ）をストリーミングするためのシステムおよび方法に関する。
【０００２】
【従来の技術】
２．５Ｇ（ＧＰＲＳ）および第３世代（３Ｇ）（ＣＤＭＡ２０００およびＷＣＤＭＡ）ワイヤレス技術が新たに生じたことにより、ワイヤレスチャネルを介してハイファイオーディオをストリーミングすることが現実となってきた。オーディオデータストリームはサンプル値のシーケンスを含み、これらがピッチおよびボリュームに変換されて、連続的に変化する音が生成される。インターネットプロトコル（ＩＰ）ベースのアーキテクチャは、次世代ワイヤレスサービスのための機会を提供するために有望であり、これらのサービスは、すべてのＩＰネットワーク上でストリーミングする音声、高速データ、インターネットアクセス、および、オーディオおよびビデオなどである。しかし、ＧＰＲＳおよび３Ｇでは、ワイヤレスネットワークはよいエラー制御機能を有しているが、まだ残余ビットエラーがオーディオコーダ−デコーダ（コーデック）のデコーダにある。そういうものとして、ワイヤレスネットワークを介したオーディオデータストリームの伝送はなお、パケット損失およびランダムビットエラーを含む、制限された可変帯域幅および時変的なエラーを起こしやすい環境に起因する課題を残している。したがって、オーディオデコーダがランダムビットエラーを処理する機能を有するようになることが望ましい。
【０００３】
ワイヤレスネットワークにおいて制限された帯域幅を考慮すると、伝送エラーに対する感度を犠牲にして効率的な圧縮技術をオーディオ信号に適用することができる。ビットエラーは通常、受信されたストリームの伸長に厳しい影響を与え、適切に処理されない場合、デコーダをクラッシュさせる可能性さえある。ワイヤレスネットワーク上でエラーに対処するために、エラー耐性（ＥＲ）技術を使用することができる。ソースデコーディングレベルでのエラー耐性技術は、エラーを検出しおよび見つけ出し、再同期化をサポートし、情報全体の損失を防止することができる。エラー耐性ツールの支援により、許容可能なオーディオ品質を、１０−５のようなより低いビットエラーレートで得ることができる。しかし、ワイヤレスチャネルにおけるビットエラーレートがはるかにより高くなる可能性があり、この結果として、エラー耐性ツールでは、不十分に再構築された品質のみが生じる。したがって、ワイヤレスネットワークにおけるエラーに対処するため、エラー保護技術など、ＥＲ技術以外の技術も、ロバストなオーディオ伝送を増すために有用である。
【０００４】
オーディオおよびビデオの特徴は異なる。そういうものとして、ビデオコーディングのエラー耐性の課題は、オーディオコーディングのものとは異なる。伝送において破損されたデータを回復するために活用することができる隣接のビデオフレームの間には強力な相互関係があるが、時間領域における隣接のオーディオフレームの間にはほとんど相互関係がない。さらに、破損フレームによって引き起こされたオーディオコーディングのアーチファクトは、人の耳にとっては美的には不満足なものである。したがって、ビデオコーディングのためのエラー耐性スキームを直接オーディオコーディングに適用することはできない。
【０００５】
Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）コーデック（コーダ−デコーダ）は、米国ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって提供されているが、これは音声および音楽の両方向けに最適化された高品質のオーディオコーデックである。ＷＭＡコーデックは低い範囲から高い範囲のビットレートを使用し、従来のオーディオコーデックよりも小さいファイルを生成し、より高速にエンコード（符号化）およびデコード（復号化）を行う。ＷＭＡオーディオコーデックによりエンコードされたファイルは、匹敵するファイルより高速にダウンロードすることができ、より少ない空間に格納することができる。ＷＭＡコーデック自身はＣＤ品質に近い音を、従来のコーデックによって必要とされた帯域幅より少ない帯域幅で提供する。ＷＭＡコーデックは、ＷＭＡファイルを使用した、異なるネットワーク帯域幅についての様々なモノおよびステレオのオーディオフォーマットに対して有用である。ＷＭＡコーデックは、低帯域幅の８キロヘルツ（ｋＨｚ）の音声から４８ｋＨｚのステレオ音楽まで、複数のタイプのオーディオコンテンツを処理するように設計される。ＷＭＡコーデックはインタフレームメモリを使用しないので、パケット損失による劣化に耐える。これは、ストリーミングコンテンツと共に使用するために望ましい許容性を有する。ＷＭＡファイルは通常「．ｗｍａ」というファイル名の拡張子を有し、ＷＭＡコーデックによりエンコードされたオーディオコンテンツと共に使用するためのアドバンストストリーミングフォーマット（ＡＳＦ）ファイルの特殊なタイプである。図１を見るとわかるように、Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏファイルはデータパケットからなり、各データパケットはパケットヘッダおよび複数のフレームを有する。パケットヘッダに含まれるものは、パケットシーケンス番号、フレームカウント数および残りビット数である。
【０００６】
ＷＭＡコーデックは、従来のコーデックに勝る前述の利点を提供するが、ビットエラーはなおデコーダにとって問題となる可能性がある。いくつかの手法を使用してＷＭＡストリーミングのエラー耐性に対処することができ、これには、ヘッダ拡張コード（ＨＥＣ）の使用、リバーシブル可変長コード（ＲＶＬＣ）の使用およびデータパーティショニングの使用が含まれる。ＨＥＣを使用して、デコーダがオーディオビットストリームをデコード（復号化）できるようにする必要のある最も重要な情報の感度を減らすことができる。ＨＥＣを使用するため、各パケットにおいて、追加の１ビットフィールドが導入される。このビットが設定される場合、オーディオフレームを記述する重要なヘッダ情報がオーディオパケットにおいて繰り返される。ＷＭＡでは、各フレームが前のフレームに相互関連させられるだけであり、他のフレームとは無関係である。したがって、ＷＭＡデコーダによって各フレームについて識別することができるような重要なヘッダ情報はないという点で、ＨＥＣはエラー耐性のために最低限に使用される。
【０００７】
【発明が解決しようとする課題】
ＲＶＬＣは、それらの接尾語および接頭語のプロパティを使用して順方向および逆方向からのデコーディングのために使用することができる、特殊な可変長コードである。しかし、ＲＶＬＣは著しい量のメモリを必要とし、長い時間遅延を引き起こす可能性がある。したがって、ＲＶＬＣをモバイルデバイスにおけるリアルタイムのデコーディングにおいて使用することは好ましくない。
【０００８】
データパーティショニングを使用して、データのパーティショニングによって、異なるデータセグメントの間のエラー伝搬を制限することができる。オーディオビットストリームはいくつかのデータセグメントからなり、この中には固定長コード（ＣＬＣ）および可変長コード（ＶＬＣ）がある。ＶＬＣにおけるエラーは、予防措置が取られない場合、ＣＬＣ部分に伝搬する可能性がある。ＷＭＡでは、データパケットは通常少数のフレームからなる。各フレームは１つまたは多数のサブフレームからなる。各サブフレームはヘッダおよびペイロードを含む。サブフレームヘッダは多数のＣＬＣ、および可能な２つのタイプのＶＬＣを含むが、サブフレームペイロードはランレベルのＶＬＣおよび符号ビットからなる。これらの異なるデータセグメントが共にインタリーブされる。データセグメントのいずれかが廃棄されるとき、残りのデータセグメントは無用である。したがって、データパーティショニングをＷＭＡに適用することは非常に困難である。
【０００９】
ＷＭＡコーデックのデコーダがビットエラーに遭遇するとき、デコーダはデータパケット全体またはデータパケットの残りのみを廃棄する。エラー耐性オーディオコーディング技術を提供してこれらの問題のあるエラーに対処することは、当技術分野における進歩となるであろう。したがって、このような機能を提供することができる、改善された方法、コンピュータ可読媒体、データ構造およびシステムの必要性がある。
【００１０】
【発明が解決しようとする課題】
本発明は、インターネットまたはワイヤレスネットワークを介するなど、チャネルを介したオーディオストリーミングのためのエラー耐性スキームを提案する。
【００１１】
【課題を解決するための手段】
このスキームは、一意の同期マークをＷｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏビットストリームのデータパケットにおける各フレームの開始に加えることによって、エラー耐性を達成する。Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ  Ａｕｄｉｏファイルのデータパケットにおけるフレームが破損されたとき、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）コーデック（コーダ−デコーダ）は、次のフレームの開始で次の同期マークを探索することによって、継続して次のフレームをデコードすることができる。ＷＭＡコーデック自身はエラーをフレームレベルで各データパケットについて処理することができる。したがって、エラー伝搬が単一のフレームに限定され、デコーダは、受信されたオーディオビットストリームを伸長するとき、同時にビットエラーおよびパケット消去を処理することができる。
【００１２】
発明の方法は、エンコーディングアルゴリズムにより、ストリーミングデータをデータパケットにエンコードする。各データパケットは、パケットヘッダおよび１つまたは複数のフレームを含み、各フレームは、エンコーディングアルゴリズムにおいてストリーミングデータをエンコードするために使用されない所定の一意のビットシーケンスと隣接し、およびそれが先に位置する。
【００１３】
【発明の実施の形態】
図２は、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）コーデック（コーダ−デコーダ）によって使用することができるファイルのためのパケット構造を示す。図２を見るとわかるように、同期マークがＷＭＡファイルのデータパケットにおける各フレームの開始に挿入される。ＷＭＡコーデックはそれにより、データパケットにおける次のフレームの開始で同期マークを探索することによって、エラーをフレームレベルで処理するためにエラー耐性である。図２のパケットヘッダは、図１のものより短い。具体的には、図１のパケットヘッダは、データパケットについてのパケットシーケンス番号、フレームカウント数および残りビット数を含む。逆に、図２のパケットヘッダはパケットシーケンス番号を含むが、他のフィールドは省略する。フレームカウント数および残りビット数フィールドを図２のパケットヘッダから省略することができる。その理由は、これらのフィールドを、データパケットにおいてそれぞれ各フレームの先に位置する同期マークから予測することができるからである。
【００１４】
ＷＭＡファイルのためのデータパケットのフォーマットが後方互換性を有するようにするために、同期マークをコーディングモードにおいて追加することが望ましい。また、ＷＭＡデコーダが同期マークを、オプショナルの機能として追加することができるエラー耐性ビットとして維持することも望ましい。
【００１５】
同期マークは、各フレームの周囲の連続した境界としての機能を果たし、排他的ビットパターンを有することが好ましい。ＷＭＡコーデックは無効なコードをＶＬＣコードツリーにおいて有していないが、同期マークを一意にすることができ、これは、データパケットのビットストリームにおいて排他的となる特殊なビットパターンを使用することによって行う。例として、限定としてではなく、同期マークのための特殊なビットパターンをすべてゼロのビットストリングにすることができ、これをゼロコードによって示すことができる。
【００１６】
ゼロコード同期マークをＷＭＡコーデックについて一意にするために、同期マークの長さは、すべての可変長コードにおける連続したゼロの数より大きくなることが好ましい。すべてのハフマンＶＬＣテーブルのプロパティが以下の表において与えられる。
【００１７】
【表１】
0004745602.tif 000002
【００１８】
この表では、最初の３列は、開始において連続したゼロの最大数、開始でも終了でもなく中間において連続したゼロの最大数、および、各ＶＬＣテーブルにおける可変長コードの終了をそれぞれ提示する。この表の４列目は、各ＶＬＣテーブルにおけるゼロコードの長さを提示する。最後の２列は、各ＶＬＣテーブルの最小および最大コード長をそれぞれ提示する。この表の最初の３列から、すべての可変長コードにおける連続したゼロの最大数が１３であることがわかる。さらに、ＷＭＡコーデックにおける固定長コード（ＣＬＣ）の最大長も１３である。したがって、同期マークを一意にするために選択することができる１つの特殊なビットパターンは、１４個のゼロのストリングである。ＷＭＡコーデックのデコーダがデータパケットにおける同期マークを探索することができる一実施例のプロシージャが、付録のパートＡにおける擬似コードにおいて見られる。
【００１９】
単一のコードにおいて１４個の連続したゼロの文字はないが、多数のコードが共に連結されるとき、１４個の連続したゼロはなお起こる可能性がある。したがって、エンコーディングプロセスにおいて１４個のゼロのストリングからなる同期マークの一意性を保持することが望ましい。そうするために、他の文字をコードに追加することができる。例として、限定としてではなく、ＷＭＡコーデックのコーダはエンコーディングプロセスにおいて「１」の文字の単一の発生を複数のコードの間に追加して、同期マークの一意性を保証することができ、これを本明細書では「ビットスタッフィング（ｂｉｔ  ｓｔｕｆｆｉｎｇ）」と称する。一実施例のスタッフィングプロシージャが、付録のパートＢおよびＣにおける擬似コードにおいて見られる。
【００２０】
ビットスタッフィングを実行するために、最初に、現在のエンコードされたビットストリームの終了における連続したゼロの数のカウントが行われ、これを付録のパートＢおよびＣにおいてcZeroBitsEndによって示す。次いで別の、次に来るコードの開始における連続したゼロの最大数のカウントが行われ、これをcMaxZeroBitsBeginによって示す。次に来るコードが固定長コード（ＣＬＣ）である場合、cMaxZeroBitsInBeginは、次に来るコードの長さである。そうでない場合、cMaxZeroBitsInBeginは、ＶＬＣテーブルの開始におけるすべての可変長コードの開始における連続したゼロの最大数であり、これをこの表の最初の列に示す。cZeroBitsEndおよびcMaxZeroBitsBeginの和が少なくとも１４である場合、「１」のスタッフィングビット（ｓｔｕｆｆｉｎｇ  “１”  ｂｉｔ）が追加される。デコーダがコードを読む前に、デコーダはあらかじめ、「１」のスタッフィングビットがあるかどうかを確かめるためにチェックするべきである。そうであった場合、デコーダはビットストリームから１つのビットを読み取る。しかし、前述のビットスタッフィングプロシージャは統計的にまれであることとしてのみ起こり、したがってほとんどオーバーヘッドを受けないことが企図される。
【００２１】
ＷＭＡコーデックのためのエラー耐性技術は、以下のように記載する追加のエラー検出機能を提供することができる。上で示し、および図２を見るとわかるように、同期マークはデータパケットにおける各フレームの開始を設定する。そういうものとして、データパケットにおける最後のフレームを除いて、各フレームが１ペアの同期マークによって境界を付けられ、制限される。したがって、ＷＭＡデコーダは２つの同期マークの間のデータを「完全」なフレームと呼ぶことができる。したがって、データパケットのフレームにおいてエラーがある場合、このエラーは次のフレームに伝搬することができない。
【００２２】
ＷＭＡコーデックのデコーダは迅速に機能することが望ましい。同期マークの探索におけるデコーダ時間を節約するために、ＷＭＡコーデックのコーダが同期マークをバイト整列させることが望ましい。したがって、フレームもバイト整列される。そういうものとして、ビットスタッフィングプロシージャは、データパケットにおける各フレームの終了で望ましい可能性がある。いくつかのビットを各フレームの終了でスタッフィングして、追加されたビットが次の同期マークを次のバイトの開始に配置するようにすることができる。例として、限定ではなく、最初にスタッフィングされたビットが「１」の文字であり、および他のスタッフィングされたビットがゼロであるような方法で、スタッフィングビットを追加することができる。したがって、ＷＭＡコーデックのデコーダは、ビットエラーを検出できるようになる。
【００２３】
ＷＭＡコーデックのデコーダはエラー検出において他より優れていることが望ましい。そうするために、デコーダは、上述のスタッフィングされた「１」の文字など、デコーダによってスタッフィングされた文字を検出することによってエラーを検出することができる。
【００２４】
ＷＭＡコーデックのデコーダによって採用されたビットエラーを処理するためのプロシージャは以下の通りである。ビットエラーが検出されるとき、デコーダはデータパケットの現在フレームを廃棄し、次の同期マークを探索することによって次のフレームへ進行する。データパケットにおけるフレームは、サンプルの数についての２つのパラメータを除いて、互いに無関係である。現在フレームが破損された場合、その代わりにそれらのデフォルト値が次のフレームについて使用される。前述を考えると、最悪の場合のシナリオでは、最大２つのフレームがデコーダによって廃棄される。しかし、２つのフレームの廃棄が統計的にほとんどまれであると想定されている。
【００２５】
要約すると、ＷＭＡコーデックのコーダは同期マークをデータパケットにおける各フレームの開始に挿入して、ランダムビットエラーが起こるとき、デコーダが同期マークを使用して次の使用可能なデコーディング単位を発見できるようにすることができる。したがって、デコーダはエラー伝搬を複数のデコーディング単位の間で制限することができる。ＷＭＡビットストリームが多数のフレームからなることにおいて、同期マークは、エラー伝搬が複数のフレームにわたって限定されることを保証する。フレームが破損されるとき、デコーダは、対応する同期マークを探索することによって、継続して次のフレームをデコードすることができる。従来のＷＭＡコーデックはエラーをパケットレベルで処理するが、本発明のＷＭＡコーデックはエラーをフレームレベルで処理する。そういうものとして、エラー耐性が実施され、その結果休止またはアーチファクトが一般の視聴者には認知不可能となる傾向のあるように、オーディオがレンダリングされる。
【００２６】
一般的なネットワーク構造
図３は、本発明によるクライアント／サーバネットワークシステムおよび環境を示す。一般に、このシステムは、１つまたは複数（ｍ台）のネットワークサーバコンピュータ１０２、および１つまたは複数（ｎ台）のネットワーククライアントコンピュータ１０４を含む。これらのコンピュータはデータ通信ネットワークを介して互いに通信し、これは図１ではワイヤレスネットワーク１０６を含む。データ通信ネットワークはまた、インターネットまたはローカルエリアネットワーク、および専用の広域ネットワークも含む可能性がある。サーバコンピュータ１０２およびクライアントコンピュータ１０４は、幅広い種類の既知のプロトコルのいずれかを介して互いに通信し、これは伝送制御プロトコル（ＴＣＰ）またはユーザデータグラムプロトコル（ＵＤＰ）などである。
【００２７】
マルチメディアサーバ１０２は、異なるメディアストリームの形式におけるストリーミングメディアコンテンツへのアクセスを有する。これらのメディアストリームを個々のメディアストリーム（たとえば、オーディオ、ビデオ、グラフィカルなど）にすることができ、あるいは代わりに、多数のこのような個々のストリームを含む複合メディアストリームにすることができる。いくつかのメディアストリームをファイル１０８としてデータベースまたは他のファイル格納システムに格納することができ、他のメディアストリーム１１０をサーバに「ライブ」のベースで、他のデータソースコンポーネントから、専用通信チャネルを通じて、あるいはインターネット自体を通じて供給することができる。
【００２８】
サーバ１０２から受信したメディアストリームがクライアントコンピュータ１０４でマルチメディアプレゼンテーションとしてレンダリングされ、これは１つまたは複数のサーバ１０２からのメディアストリームを含むことができる。これらの異なるメディアストリームは、同じあるいは異なるタイプのメディアストリームのうち１つまたは複数を含むことができる。たとえば、マルチメディアプレゼンテーションは、２つのビデオストリーム、１つのオーディオストリーム、およびグラフィカルイメージの１つのストリームを含むことができる。クライアントコンピュータ１０４でのユーザインターフェイス（ＵＩ）により、ユーザに様々なコントロールを可能にすることができ、これは、メディアプレゼンテーションがレンダリングされる速度の加速または減速をユーザができるようにすることなどである。
【００２９】
例示的コンピュータ環境
以下の説明では、本発明を一般に、プログラムモジュールなど、１つまたは複数の従来のパーソナルコンピュータによって実行されるコンピュータ実行可能命令に関連して記載する。一般に、プログラムモジュールには、特定のタスクを実行するか、あるいは特定の抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらに、本発明を他のコンピュータシステム構成と共に実施することができ、これにはハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルなコンシューマエレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどが含まれることは、当業者には理解されよう。分散コンピュータ環境では、プログラムモジュールはローカルおよびリモートのメモリ記憶装置に位置することができる。代わりに、本発明を、ハードウェア、または、ハードウェア、ソフトウェアおよび／またはファームウェアの組合せにおいて実施することができる。たとえば、１つまたは複数の特定用途向け集積回路（ＡＳＩＣ）を、本発明を実行するようにプログラムすることができる。
【００３０】
図３のように、本発明によるネットワークシステムはネットワークサーバ１０２を含み、これから複数のメディアストリームが入手可能である。いくつかの場合、メディアストリームが実際にはサーバ１０２によって格納される。他の場合、サーバ１０２はメディアストリームを他のネットワークソースまたはデバイスから得る。このシステムはまた、ネットワーククライアント１０４も含む。一般に、ネットワーククライアント１０４は、選択されたマルチメディアコンテンツに対応するメディアストリームをリクエストするためのユーザ入力に応答する。マルチメディアコンテンツに対応するメディアストリームのためのリクエストに応答して、サーバ１０２は、リクエストされたメディアストリームをネットワーククライアント１０４へストリーミングし、これは、ＷＭＡフォーマットなど、アドバンストストリーミングフォーマット（ＡＳＦ）に従って行う。クライアントはデータストリームをレンダリングして、マルチメディアコンテンツを生成する。
【００３１】
図４は、本発明の一実施形態による、サーバ上でのＷＭＡフォーマットにおけるオーディオデータの入力および格納、またサーバとクライアントの間の通信をも例示する。参照すると、サーバはオーディオデータストリームの入力を受信する。サーバは、サーバのＷＭＡコーデックのエンコーダを使用して、オーディオデータストリームをエンコードする。次いで、ＷＭＡフォーマットされたデータストリームがサーバによって格納される。その後、クライアントは対応するオーディオデータストリームをサーバからリクエストする。サーバは、サーバが先にＷＭＡフォーマットにおいて格納している、対応するオーディオストリームを検索し、クライアントに伝送する。クライアントは、クライアントのＷＭＡコーデックのデコーダを使用して、クライアントがサーバから受信しているＷＭＡオーディオストリームをデコードして、オーディオレンダリングを実行するようにする。
【００３２】
図４では、ブロック４０２〜４２８の間のデータの流れが示されている。ブロック４０２で、入力デバイス１０５がサーバ１０２に、オーディオストリーミングデータを含む入力を供給する。例として、オーディオストリーミングデータをサーバ１０２へ「ライブ」のベースで入力デバイス１０５によって、専用通信チャネルを介して、あるいはインターネットを介して供給することができる。ブロック４０４で、オーディオストリーミングデータがＷＭＡコーデックのコーダに、データのフレームをデータパケットに入れるために供給される。ブロック４０６で、パケットシーケンス番号が、コーダによってデータパケットにパケットヘッダとして追加される。
【００３３】
ブロック４０８で、データパケットにおける各フレームは連続的に先行する１４個のゼロのビットの同期マーク（たとえば、「00000000000000」）をエンコーダから受信する。好ましくは、コーダは、同期マークにビットが埋め込まれるように構成して、同期マークおよびフレームがバイト整列されるようにする。多数のコードが共に連結されるとき、１４個の連続したゼロが発生する場合、ＷＭＡコーデックのコーダは「１」の文字の単一の発生を複数のコードの間にスタッフィングして、同期マークの一意性を確立する。次いで、ブロック４１０で、そのように構成されたＷＭＡデータストリームが、図３のストリーミングデータファイル１０８などに格納される。
【００３４】
ブロック４１２で、クライアント１０４は、オーディオデータストリームのためのリクエストを作成し、これがサーバ１０２へ、図４の矢印４１４のように送信される。ブロック４１６で、サーバ１０２はこのリクエストを受信し、ブロック４１８〜４２０のように、対応するＷＭＡデータストリームを送信する。ブロック４２２で、ＷＭＡデータストリームがクライアント１０４によって受信される。ブロック４２４で、各データパケットについて、クライアント１０４におけるＷＭＡコーデックのデコーダは各同期マークでの各フレームを累積する。デコーダによって受信された各破損フレームについて、デフォルト値がデコーダによって、このフレームにおける２つのパラメータの代わりに使用され、これらが次のフレームによって必要とされる。ブロック４２６で、デコーダは破損フレームを廃棄することができる。ブロック４２８で、デコーダは、伸長されたオーディオデータストリームをオーディオレンダリングする。
【００３５】
図５は、本発明により使用することができるコンピュータ１４２の一般的な実施例を示す。コンピュータ１４２を、図３のクライアントコンピュータ１０２またはサーバコンピュータ１０４のいずれかの機能を実行することができるコンピュータの一実施例として示す。コンピュータ１４２は、１つまたは複数のプロセッサまたは処理装置１４４、システムメモリ１４６、および、システムメモリ１４６を含む様々なシステムコンポーネントをプロセッサ１４４に結合するシステムバス１４８を含む。
【００３６】
バス１４８は、いくつかのタイプのバス構造のいずれかの１つまたは複数を表し、これには、様々なバスアーキテクチャのいずれかを使用する、メモリバスまたはメモリコントローラ、周辺バス、アクセラレーテッドグラフィックスポート、およびプロセッサ、またはローカルバスが含まれる。システムメモリは、読み取り専用メモリ（ＲＯＭ）１５０およびランダムアクセスメモリ（ＲＡＭ）１５２を含む。基本入力／出力システム（ＢＩＯＳ）１５４は、起動中など、コンピュータ１４２内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、これがＲＯＭ１５０に格納される。コンピュータ１４２はさらに、ハードディスク（図示せず）との読み書きを行うためのハードディスクドライブ１５６、取外し可能磁気ディスク１６０との読み書きを行うための磁気ディスクドライブ１５８、および、ＣＤ−ＲＯＭまたは他の光媒体などの取外し可能光ディスク１６４との読み書きを行うための光ディスクドライブ１６２を含む。
【００３７】
ハードディスク（図示せず）、磁気ディスクドライブ１５８、光ディスクドライブ１６２または取外し可能光ディスク１６４のいずれも、その上に情報を記録している情報媒体にすることができる。情報媒体は、１つまたは複数のデータパケットを含むパケットエリアをそれぞれ含むストリームパケットを使用して、ストリーミングデータを記録するためのデータエリアを有する。各データパケットはヘッダおよび１つまたは複数のフレームを含む。例として、各データパケットが、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）コーデックなど、処理装置１４４において実行するコーデックによってエンコードおよびデコードされる。そういうものとして、エンコーダはストリームデータをストリームパケットにおけるデータパケットエリアに分散させて、ＷＭＡエンコーダによって使用されるものなど、エンコーディングアルゴリズムを使用して、分散されたストリームデータがデータパケットエリアに記録されるようにする。各フレームが、エンコーディングアルゴリズムによってストリームデータをエンコードするために使用されない所定の一意のビットシーケンスを有する同期マークによって先行され、およびそれと連続するように、エンコーダは情報の記録を実行することが好ましい。
【００３８】
ハードディスクドライブ１５６、磁気ディスクドライブ１５８および光ディスクドライブ１６２がシステムバス１４８に、ＳＣＳＩインターフェイス１６６またはある他の適切なインターフェイスによって接続される。これらのドライブおよびそれらの関連付けられたコンピュータ可読媒体は、コンピュータ１４２のためのコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの不揮発性記憶を提供する。本明細書に記載した例示的環境は、ハードディスク、取外し可能磁気ディスク１６０および取外し可能光ディスク１６４を使用するが、コンピュータによってアクセス可能であるデータを格納することができる他のタイプのコンピュータ可読媒体もまた例示的動作環境において使用することができ、これは磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）などであることを、当業者には理解されたい。
【００３９】
いくつかのプログラムモジュールをハードディスク、磁気ディスク１６０、光ディスク１６４、ＲＯＭ１５０またはＲＡＭ１５２に格納することができ、これらのプログラムモジュールにはオペレーティングシステム１７０、１つまたは複数のアプリケーションプログラム１７２、他のプログラムモジュール１７４およびプログラムデータ１７６が含まれる。ユーザはコマンドおよび情報をコンピュータ１４２へ、キーボード１７８およびポインティングデバイス１８０などの入力デバイスを通じて入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなどが含まれる可能性がある。これらおよび他の入力デバイスが処理装置１４４へ、システムバスに結合されるインターフェイス１８２を通じて接続される。モニタ１８４または他のタイプの表示デバイスもまたシステムバス１４８へ、ビデオアダプタ１８６などのインターフェイスを介して接続される。モニタに加えて、パーソナルコンピュータは通常、スピーカおよびプリンタなど、他の周辺出力デバイス（図示せず）を含む。
【００４０】
コンピュータ１４２はネットワーク化環境において、リモートコンピュータ１８８など、１つまたは複数のリモートコンピュータへの論理接続を使用して動作する。リモートコンピュータ１８８を、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の共通ネットワークノードにすることができ、これは通常、コンピュータ１４２に関して上に記載した要素の多数またはすべてを含むが、メモリ記憶装置１９０のみを図５に例示した。図５に示す論理接続には、ローカルエリアネットワーク（ＬＡＮ）１９２および広域ネットワーク（ＷＡＮ）１９４が含まれる。このようなネットワーキング環境は、オフィス、企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。記載した本発明の実施例では、リモートコンピュータ１８８はインターネットＷｅｂブラウザプログラムを実行し、これは、ワシントン州レドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって製作および配布されたＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）Ｗｅｂブラウザなどである。
【００４１】
ＬＡＮネットワーキング環境において使用されるとき、コンピュータ１４２がローカルネットワーク１９２に、ネットワークインターフェイスまたはアダプタ１９６を通じて接続される。ＷＡＮネットワーキング環境において使用されるとき、コンピュータ１４２は通常、モデム１９８、または、インターネットなどの広域ネットワーク１９４を介して通信を確立するための他の手段を含む。モデム１９８は内部または外部に設置することができ、これがシステムバス１４８へ、シリアルポートインターフェイス１６８を介して接続される。ネットワーク化環境において、パーソナルコンピュータ１４２に関して示したプログラムモジュールまたはその一部を、リモートのメモリ記憶装置に格納することができる。図示のネットワーク接続は例示的であり、通信リンクを複数のコンピュータの間で確立する他の手段を使用できることは理解されよう。
【００４２】
一般に、コンピュータ１４２のデータプロセッサは、コンピュータの様々なコンピュータ可読記憶媒体において異なるときに格納された命令を用いてプログラムされる。プログラムおよびオペレーティングシステムは通常、たとえばフロッピー（登録商標）ディスクまたはＣＤ−ＲＯＭにおいて配布される。そこから、プログラムおよびオペレーティングシステムがコンピュータの補助記憶装置にインストールまたはロードされる。実行時に、プログラムおよびオペレーティングシステムが少なくとも部分的にはコンピュータの主電子記憶装置にロードされる。本明細書に記載する本発明は、マイクロプロセッサまたは他のデータプロセッサと共に以下に記載するステップを実施するための命令またはプログラムを、これらおよび他の様々なタイプのコンピュータ可読記憶媒体が含む場合、これらの媒体を含む。本発明はまた、以下に記載する方法および技術によってコンピュータ自体がプログラムされるとき、これも含む。さらに、コンピュータのあるサブコンポーネントを、以下に記載する機能およびステップを実行するようにプログラムすることができる。本発明は、このようなサブコンポーネントが記載するようにプログラムされるとき、これらを含む。加えて、本明細書に記載する本発明は、以下に記載するデータ構造を、様々なタイプの記憶媒体上で実施されるものとして含む。
【００４３】
例示のため、オペレーティングシステムなど、プログラムおよび他の実行可能プログラムコンポーネントを本明細書で離散ブロックとして例示するが、このようなプログラムおよびコンポーネントは様々なときにコンピュータの異なる記憶コンポーネントにおいて存在し、コンピュータのデータプロセッサによって実行されることは理解されよう。
【００４４】
本発明を、その精神または本質的な特徴から逸脱することなく、他の特定の形態において実施することができる。記載した実施形態は、すべての点で限定的ではなく例示的としてのみ見なされるべきである。したがって、本発明の範囲は、前述の記載によってではなく、特許請求の範囲によって示される。特許請求の範囲の同等物の意味および範囲内に入るすべての変更が、それらの本発明の範囲内に包含されるべきである。
【００４５】
0004745602.tif 000003
0004745602.tif 000004
【図面の簡単な説明】
【図１】記録可能／再生可能コンパクトディスク（ＣＤ）など、様々な情報媒体のいずれかにおける従来のＭｉｃｒｏｓｏｆｔ（登録商標）Ｗｉｎｄｏｗｓ（登録商標）  Ｍｅｄｉａ（商標）Ａｕｄｉｏ（ＷＭＡ）データストリームのデータパケット構造を説明するための概観図である。
【図２】本発明の一実施形態による、記録可能／再生可能コンパクトディスク（ＣＤ）など、様々な情報媒体のいずれかにおけるＷＭＡデータストリームのデータパケット構造を説明するための概観図である。
【図３】本発明の一実施形態による、ネットワーク化されたクライアント／サーバシステムのブロック図である。
【図４】本発明の一実施形態による、本発明によるクライアントとサーバの間の通信を例示するブロック図であり、サーバがクライアントに、クライアントがオーディオレンダリングすることができるリクエストされたＷＭＡビットストリームを供給する図である。
【図５】本発明の一実施形態による、サーバまたはクライアントを実施するために使用することができる、ネットワーク化コンピュータのブロック図である。
【符号の説明】
１０２  ネットワークサーバコンピュータ
１０４  ネットワーククライアントコンピュータ
１０５  入力デバイス
１０６  ワイヤレスネットワーク
１０８  ストリーミングデータファイル
１１０  メディアストリーム
【図１】
0004745602.tif 000005
【図２】
0004745602.tif 000006
【図３】
0004745602.tif 000007
【図４】
0004745602.tif 000008
【図５】
0004745602.tif 000009