(57)【要約】  ゲームシステムは、コーデック抽象化層（ＣＡＬ）を使用して、ゲームシステムが、ゲームアプリケーションコードの変更の必要なく、新しい、かつ／または変更されたコーデックに対応できるようにする。ＣＡＬは、アプリケーションプログラミングインターフェイス（ＡＰＩ）として機能し、メディアソースとゲームアプリケーションとの間で動作する。ゲームアプリケーションは、ＣＡＬと対話し、コーデックとは対話しない。コーデック間の差は、ゲームアプリケーションには気付かれない。新しいコーデックは、既存のアプリケーションコードを変更することなく、既存のアプリケーションによって導入され、使用され得る。ＣＡＬは、メモリ、ファイル、ｈｔｔｐソース、キュー、カスタムソース、外部ドライブ、ゲームメディアソース（ＸＭｅｄｉａなど）など様々なソースからのメディアを処理する。ＣＡＬは、メディアのソース、受信されるメディアのタイプ（音声、画像、動画、ゲームなど）、およびメディアの圧縮に使用されるコーデックを決定する。ＣＡＬは、復号されたメディアをゲームアプリケーションに提供する。
2008542855.tif 000002
【特許請求の範囲】
【請求項１】
メディアをメディアプレーヤに提供する方法であって、
所定の数の符号化技術のうちの少なくとも１つに従って符号化されたメディアを複数のメディアソースのうちの少なくとも１つから受信するステップと、
前記符号化されたメディアをそれぞれの所定の復号技術に従って復号するステップと、
複数のメディアプレーヤのうちの少なくとも１つを介して、前記復号されたメディアをレンダリングするステップであって、前記複数のメディアプレーヤは、少なくとも１つのゲームメディアプレーヤを含み、前記符号化および復号の技術のうちの少なくとも１つの変更は、前記ゲームメディアプレーヤの変更を必要としない、レンダリングするステップと、
を含むことを特徴とする方法。
【請求項２】
前記受信された符号化されたメディアを所定のフォーマットに従ってフォーマットするステップと、
前記フォーマットされた符号化されたメディアを復号するために提供するステップと、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記複数のメディアソースは、ファイル、メモリ、ｈｔｔｐソース、キュー、カスタムソース、ネットワーク、およびゲームメディアソースのうちの少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記符号化されたメディアは、符号化された音声メディア、符号化された映像メディア、符号化された画像メディア、符号化された動画メディア、および符号化されたゲームメディアのうちの少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記メディアは、ＷＡＶ、ＭＰ３、ＡＡＣ、ＭＰ４、ＷＭＡ、ＰＡＣ、ＤＰＣＭ、ＡＤＰＣＭ、ＪＰＥＧ、ＴＩＦＦ、およびＢＭＰのうちの少なくとも１つに従ってフォーマットされることを特徴とする請求項１に記載の方法。
【請求項６】
メディアをメディアプレーヤに提供するシステムであって、
符号化されたメディアを複数のメディアソースのうちの少なくとも１つから受信し、
所定の数の符号化技術のうちの少なくとも１つに従って符号化される前記符号化されたメディアを所定のフォーマットで提供する
受信機と、
前記フォーマットされたメディアを受信し、
所定の数の復号技術のうちの前記少なくとも１つに従って前記フォーマットされたメディアをそれぞれ復号する
デコーダと、
前記復号されたメディアを受信し、
複数のメディアプレーヤのうちの少なくとも１つを介して前記復号されたメディアをレンダリングし、前記複数のメディアプレーヤは、少なくとも１つのゲームメディアプレーヤを含み、前記符号化および復号の技術のうちの少なくとも１つの変更は、前記ゲームメディアプレーヤの変更を必要としない
レンダラと、
を含むことを特徴とするシステム。
【請求項７】
それぞれが
前記所定の数の復号技術のうちのそれぞれ１つに従って復号された復号メディアを受信し、
前記復号されたメディアを前記レンダラに提供する、
少なくとも１つのメモリキューをさらに含むことを特徴とする請求項６に記載のシステム。
【請求項８】
前記複数のメディアソースは、ファイル、メモリ、ｈｔｔｐソース、キュー、カスタムソース、ネットワーク、およびゲームメディアソースのうちの少なくとも１つを含むことを特徴とする請求項６に記載のシステム。
【請求項９】
前記符号化されたメディアは、符号化された音声メディア、符号化された映像メディア、符号化された画像メディア、符号化された動画メディア、および符号化されたゲームメディアのうちの少なくとも１つを含むことを特徴とする請求項６に記載のシステム。
【請求項１０】
前記メディアは、ＷＡＶ、ＭＰ３、ＡＡＣ、ＭＰ４、ＷＭＡ、ＰＡＣ、ＤＰＣＭ、ＡＤＰＣＭ、ＪＰＥＧ、ＴＩＦＦ、およびＢＭＰのうちの少なくとも１つに従ってフォーマットされることを特徴とする請求項６に記載のシステム。
【請求項１１】
前記レンダリングされるメディアは、音声メディア、映像メディア、画像メディア、映画メディア、およびゲームメディアのうちの少なくとも１つを含むことを特徴とする請求項６に記載のシステム。
【請求項１２】
前記メディアプレーヤは、音声メディアプレーヤ、映像メディアプレーヤ、動画映像メディアプレーヤ、ＤＶＤ、ＣＤ、およびゲームメディアプレーヤのうちの少なくとも１つを含むことを特徴とする請求項６に記載のシステム。
【請求項１３】
メディアをメディアプレーヤに提供するアプリケーションプログラミングインターフェイス（ＡＰＩ）であって、
符号化されたメディアを複数のメディアソースのうちの少なくとも１つから受信し、所定の数の符号化技術のうちの少なくとも１つに従って符号化される前記符号化されたメディアを所定のフォーマットで提供するストリームオブジェクトと、
前記フォーマットされたメディアを受信し、所定の数の復号技術のうちの前記少なくとも１つに従って前記フォーマットされたメディアを、それぞれ復号するデコーダオブジェクトと、
前記復号されたメディアを受信し、少なくとも１つのゲームメディアプレーヤを含む複数のメディアプレーヤのうちの少なくとも１つを介して、前記復号されたメディアをレンダリングするレンダラオブジェクトと
を含むことを特徴とするＡＰＩ。
【請求項１４】
符号化技術は、前記ＡＰＩにインターフェイス接続されるアプリケーションを変更することなく前記所定の数の符号化技術内で拡張可能であることを特徴とする請求項１３に記載のＡＰＩ。
【請求項１５】
復号技術は、前記ＡＰＩにインターフェイス接続されるアプリケーションを変更することなく前記所定の数の復号技術内で拡張可能であることを特徴とする請求項１３に記載のＡＰＩ。
【請求項１６】
それぞれが、
前記所定の数の復号技術のうちのそれぞれ１つに従って復号された、復号メディアを受信し、
前記復号されたメディアを前記レンダラに提供する、
少なくとも１つのメモリキューをさらに含むことを特徴とする請求項１３に記載のＡＰＩ。
【請求項１７】
前記複数のメディアソースは、ファイル、メモリ、ｈｔｔｐソース、キュー、カスタムソース、ネットワーク、およびゲームメディアソースのうちの少なくとも１つを含むことを特徴とする請求項１３に記載のＡＰＩ。
【請求項１８】
前記符号化されたメディアは、符号化された音声メディア、符号化された映像メディア、符号化された画像メディア、符号化された動画メディア、および符号化されたゲームメディアのうちの少なくとも１つを含むことを特徴とする請求項１３に記載のＡＰＩ。
【請求項１９】
前記メディアは、ＷＡＶ、ＭＰ３、ＡＡＣ、ＭＰ４、ＷＭＡ、ＰＡＣ、ＤＰＣＭ、ＡＤＰＣＭ、ＪＰＥＧ、ＴＩＦＦ、およびＢＭＰのうちの少なくとも１つに従ってフォーマットされることを特徴とする請求項５に記載のＡＰＩ。
【請求項２０】
前記レンダリングされたメディアは、音声メディア、映像メディア、画像メディア、映画メディア、およびゲームメディアのうちの少なくとも１つを含むことを特徴とする請求項１３に記載のＡＰＩ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にゲームシステムに関し、より詳細には、ゲームシステムアプリケーションを様々なコーデックにインターフェイス接続するアプリケーションプログラミングインターフェイス（ＡＰＩ）に関する。
【背景技術】
【０００２】
当分野では、いくつかのゲームシステムが知られている。ゲームシステムの例には、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＸｂｏｘ（登録商標）やＸｅｎｏｎゲームシステムなどがある。絶え間なく変化する動的なマルチメディア業界は、ゲームシステムに影響を与えている。さらに、ユーザの好みは変化する。今日人気があったものが明日には人気がないかもしれない。新しい、改良されたマルチメディアフォーマットおよび圧縮方式が絶え間なく市場に出されている。例えば、新しい／改良されたコーデックが頻繁に開発され、実装される。コーデックは、圧縮／復元アルゴリズム（compression and decompression algorithm）であり、ソフトウェア、ハードウェア、またはその組み合わせに実装することができる。一般に、コーデックは、メディア（映像、音声、画像、ゲームなど）を、その格納されたまたは送信された圧縮形式と、レンダリングされた非圧縮形式との間で変換するために使用される。一般に、新しいコーデックが実装されるとき、新しいコーデックとインターフェイス接続するアプリケーションは、新しいコーデックと互換性があるように変更されなければならない。これは、時間がかかり、煩わしく、費用がかかる可能性がある。これは特に、ゲームシステムにおいてそうである。というのは、すでにユーザの手にあるゲームシステムは、容易に変更できないからである。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
新しいコーデックが開発されるとき、既存のコーデックが変更されるとき、またはユーザの好みが変わるとき、ゲームアプリケーションの変更の必要なく、ゲームシステムが新しい／変更されたコーデックと互換性があることが有利である。したがって、ゲームアプリケーションコードへの変更の必要なく、新しい、かつ／または変更されたコーデックの実装を可能にするゲームシステムが求められている。
【課題を解決するための手段】
【０００４】
本発明の一実施形態例では、メディアソースとゲームアプリケーションとの間にコーデック抽象化層（codecs abstraction layer）が実装される。コーデック抽象化層（ＣＡＬ）は、１つまたは複数のコンピュータプログラムの形で実装され、一実施形態例では、アプリケーションプログラミングインターフェイス（ＡＰＩ）として実装される。ＣＡＬは、様々なコーテックに従って符号化された、様々なソースからのメディアを処理することができる。また、ＣＡＬは、適切なコーデックに従って、符号化されたメディアを復号することもできる。ＣＡＬは、復号されたメディアをゲームアプリケーションに提供する。ＣＡＬは、メディアのソース、受信されるメディアのタイプ、およびメディアの圧縮に使用されるコーデックを決定する。メディアソースには、メモリ、ファイル、ｈｔｔｐソース、キュー、カスタムソース、外部ドライブ、またはゲームメディアソース（ＸＭｅｄｉａなど）などがある。メディアタイプには、例えば、音声メディア、映像メディア、画像メディア、動画、ゲームメディア、またはその組み合わせなどがある。ＣＡＬは、メディアがメディアソースから適切に取得され、フォーマットされること、および符号化されたメディアがゲームメディアプレーヤを介してレンダリングするために適切に復号されることを確実にする。ゲームアプリケーションは、ＣＡＬと対話し、コーデックとは対話しない。コーデック間の差は、ゲームアプリケーションには関係ない。新しいコーデックは、既存のアプリケーションコードを変更することなく、既存のアプリケーションによって導入され、使用され得る。
【発明を実施するための最良の形態】
【０００５】
技術が向上し、ユーザの要求が高まるにつれて、新しいコーデックが開発され、既存のコーデックが変更される。したがって、ゲーム開発者にとって、新しいコーデックおよび変更されたコーデックに対応することができるゲームシステムを開発することが有利である。本発明の一実施形態例によるゲームシステムは、ゲームアプリケーションへの変更を必要とすることなく、新しいコーデック、および変更されたコーデックに対応することができる。これは、拡張可能なコーデック抽象化層（ＣＡＬ）を実装することによって達成される。ＣＡＬは、ゲームアプリケーションが特定のコーデックとではなく、ＣＡＬと対話するように、異なるコーデックおよびメディアフォーマットを管理する。
【０００６】
コーデックは、圧縮および復元の略語である。メディアは、メディア情報のサイズまたは量を低減するために圧縮される。圧縮されたメディアは、元のメディア、または元のメディアに近いものを得るために復元される。一般に、圧縮技術は損失が多く、これは、冗長な、またはユーザに知覚できない情報が破棄され、取り出すことができないことを意味する。圧縮および復元は、一般に、その名前が暗示するよりも、より高度である。メディアの圧縮は、高度な信号処理技術に従ってメディアを符号化することを伴い、圧縮されたメディアの復元は、同じコーデックの高度な信号処理技術に従ってメディアを復号することを伴う。
【０００７】
現在多くのタイプのコーデックが存在しており、多くの既存のコーデックは、様々なフォーマットと共に使用される。例えば、パルス符号変調（ＰＣＭ）は、圧縮されていないメディアを送信し、格納するために使用される。ＰＣＭは、例えばＣＤやデジタルオーディオテープ（ＤＡＴ）など、多くのアプリケーションおよび装置によって使用される汎用アルゴリズムである。ＰＣＭの変形には、差分パルス符号変調（ＤＰＣＭ）および適応的差分パルス符号変調（ＡＤＰＣＭ）などがある。ＤＰＣＭは、メディアの連続するサンプル間の差を使用する、非可逆圧縮技術（lossy compression technique）である。ＡＤＰＣＭは、サンプル間の差を表すために使用されるビットの数がメディア信号の特徴に応じて変わることを除いて、ＤＰＣＭとほぼ同じである。ＰＣＭおよびその変形体は、通常、ＷＡＶファイルに使用される。ＷＡＶファイルは、ＷＩＮＤＯＷＳ（登録商標）のＰＣにおいて使用されるデフォルトのフォーマットである。ＷＡＶファイルは、ＭＰ３フォーマットで符号化することもできる。ＭＰ３は、ＭＰＥＧ（ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅ  ｅｘｐｅｒｔｓ  ｇｒｏｕｐ）Ｌａｙｅｒ−ＩＩＩフォーマットである。ＭＰ３は、相対的に高レベルの圧縮を提供し、したがって、通常、インターネットを介してメディアを提供して、制限された記憶容量を有する装置およびポータブルプレーヤにメディアを格納するために使用される。ＡＡＣ（Ａｄｖａｎｃｅｄ  Ａｕｄｉｏ  Ｃｏｄｉｎｇ）は、ＭＰ４とも呼ばれ、ＭＰ３より低いビットレートでより良質のメディアを提供する符号化／復号技術である。μ−ｌａｗ圧縮として知られている別のフォーマットは、ＷＡＶファイルで使用することができる損失が多いフォーマットである。さらに、Ｍｉｃｒｏｓｏｆｔ（登録商標）社は、ＷＭＡ（Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ａｕｄｉｏ）フォーマットに従ってフォーマットされるメディアと共に使用するためのコーデックを開発している。
【０００８】
図１は、本発明の一実施形態例によるメディアプレーヤにメディアを提供するシステム１０のブロック図である。システム１０は、受信機部１４、デコーダ部１６、メモリ部１８、およびレンダラ部２０を含む。メディアは、メディアソース１２によって提供され、メディアプレーヤ２２を介してレンダリングされる。本明細書に記載されているように、システム１０の実施形態例は、メディアをゲームメディアプレーヤ（Ｘｅｎｏｎなど）に提供するが、システム１０はこれだけに限定されない。システム１０は、例えばＤＶＤプレーヤ、ＣＤプレーヤ、モニタ、および音声プレーヤなど、他の適切なタイプのメディアプレーヤに適用可能である。
【０００９】
メディアは、メディアソース１２を介してシステム１０に提供される。メディアソース１２は、単一のメディアソースまたは複数のメディアソースを含み得る。メディアソースの例には、ファイル、キュー、メモリ（半導体メモリ、レジスタなど）、ＨＴＴＰソース、ゲームソース（Ｘｍｅｄｉａなど）、外部ドライブ（ハードディスクドライブ、ＤＶＤプレーヤ、ＣＤプレーヤ、メモリスティックなど）、カスタムメディアソース、ネットワーク、またはその組み合わせなどがある。システム１０に提供されるメディアは、次のフォーマット、ＷＡＶ、ＭＰ３、ＡＡＣ（ＭＰ４）、ＷＭＡ、ＰＣＭ、ＤＰＣＭ、およびＡＤＰＣＭの任意の組み合わせに従うことができる。システム１０は、少なくとも前述のメディアフォーマットに対応することができる。システム１０に提供されたメディアは、複数のタイプのメディアの任意の組み合わせを含み得る。メディアのタイプの例には、音声メディア、映像メディア、画像メディア（ＪＰＥＧフォーマット、ＢＭＰフォーマット、ＴＩＦＦフォーマットなど）、ゲームメディア（Ｘｍｅｄｉａなど）、動画メディア、映画メディア、マルチメディア、またはその組み合わせなどがある。以下でより詳細に説明されるように、メディアソース１２によってシステム１０に提供されたメディアは、生でもよく、フォーマットまたは符号化されてもよく、またはその組み合わせでもよい。
【００１０】
メディアは、受信機部１４に提供される。受信機部１４は、メディアソース１２からメディアを受信することができる任意の適切な受信機を含み得る。本発明の一実施形態例では、受信機１４は、受信されたメディアをストリーミングメディアにフォーマットする。当分野で知られているように、ストリーミングメディアは、絶え間ない流れで提供される。絶え間ないメディアの流れが達成可能であるため、ストリーミングメディアは、多くのタイプのメディアと共に使用するのに有利である。ユーザは、ゲームプレイ中に間隙または中断を経験したくないため、ストリーミングメディアは、特にゲームメディアに適切である。受信機部１４によって提供されたメディアは、ストリーミングメディアとして示されているが、それだけに限定されない。受信機部１４によって提供されたメディアは、（ダウンロードされるなど）別々のエンティティで提供することができる。
【００１１】
デコーダ部１６は、受信機部１４からメディアを受信する。メディアが符号化された場合、デコーダ部１６は、適切なデコーダに従ってメディアを復号する。デコーダ部１６は、上述した復号技術のいずれかに従ってメディアを復号する。
【００１２】
メモリ部１８は、デコーダ部１６から復号されたメディアを受信する。メモリ部１８は、任意の適切なメモリを含み得る。適切なメモリの例には、半導体メモリ、磁気メモリ、静的メモリ、揮発性メモリ、光メモリ、レジスタ、またはその組み合わせなどがある。本発明の一実施形態例では、メモリ部１６は、メモリキューとして実装される。デコーダ部１６は、復号されたメディアをそれぞれのメモリキューに提供する。すなわち、コーデックタイプごとに、復号されたメディアは、個別の専用メモリキューに提供される。復号されたメディアのタイプごとに専用の個別のメモリキューによって、メディアの迅速な処理が容易になる。
【００１３】
復号されたメディアは、メモリ部１８を介してレンダラ２０に提供される。レンダラ２０は、メディアプレーヤ２２用にメディアを処理し、かつ／またはフォーマットする。システム１０は、１つまたは複数のメディアプレーヤ２２を備え得る。レンダラ２０は、実装されている各メディアプレーヤ２２用にメディアを適切にレンダリングする。例えば、メディアプレーヤ２２がＤＶＤプレーヤを備えている場合、レンダラ２０は、メディアを、ＤＶＤプレーヤによってレンダリングできるように処理し、フォーマットする。メディアプレーヤ２２がゲームメディアプレーヤ（Ｘｅｎｏｎなど）である場合、レンダラは、音声、映像、および／または動画のメディアを、ゲームメディアプレーヤによって適切にレンダリングできるように処理し、フォーマットする。
【００１４】
図２は、本発明の一実施形態例によるＣＡＬの単一のインスタンスの図である。ＣＡＬは、ストリームオブジェクト２４、デコーダオブジェクト２６、メモリキュー２８、およびレンダラオブジェクト３０を含む。メディアプレーヤオブジェクト３２は、制御信号３４、３６、および３８を介して、それぞれデコーダオブジェクト２６、メモリキュー２８、およびレンダラオブジェクト３０を制御する。制御オブジェクト３２によって提供された制御のタイプの例には、いくつか挙げただけでも、ストリームの再生、停止、巻き戻し、シーク、中止、および選択などがある。
【００１５】
ストリームオブジェクト２４は、所与のメディアソース（ファイル、キュー、メモリ（半導体メモリ、レジスタなど）、ＨＴＴＰソース、ゲームソース（Ｘｍｅｄｉａなど）、外部ドライブ（ハードディスクドライブ、ＤＶＤプレーヤ、ＣＤプレーヤ、メモリスティックなど）、カスタムメディアソース、ネットワークなど）からメディアをロードし、それを他のオブジェクトに公開するために使用される。デコーダオブジェクト２６は、符号化されたメディアストリームを取得し、適切なコーデックを使用してそれを復号する。後述するように、ゲームシステム（Ｘｅｎｏｎなど）によって使用されるように想定されたコーデックごとにデコーダクラスがある。レンダラオブジェクト３０は、デコーダオブジェクト２６から出力され、メモリキュー２８を介して提供されたストリームを取得し、中間のプレーヤオブジェクト３２によって制御されるように復号されたメディアを（音声出力、映像出力などを介して）レンダリングする。デコーダのベースクラスごとに１つのレンダラクラスが実装される。例えば、すべての音声デコーダが導出されるベースクラスのデコーダがあり、対応する音声レンダラクラスがある。プレーヤオブジェクト３２は、例えば音声の再生、映像の再生、ＤＶＤ映画の再生など、特定のタスクのために設計された他のクラスのクライアントである。メディアプレーヤオブジェクトは、それぞれ制御信号３４、３６、および３８を介して、デコーダオブジェクト２６、メモリキュー２８、およびレンダラオブジェクト３０を制御する。
【００１６】
図３は、本発明の一実施形態例による複数のメディアソース１２1〜１２K、複数のデコーダオブジェクト２６1〜２６N、複数のメモリキュー２８1〜２８N、および複数のレンダラオブジェクト３０1〜３０Nを示すＣＡＬの図である。メディアソース１２1から１２Kまでは、ＣＡＬによって対応することができる所定の数のメディアソースを表す。ストリームオブジェクト２４は、メディアソース１２1〜１２Kによって提供された符号化されたメディアをストリーミングメディアにフォーマットする。ストリームオブジェクト２４は、符号化され、フォーマットされたメディアをデコーダオブジェクト２６1から２６Nまでに提供する。下付文字１からＮまでは、ＣＡＬによって対応することができる所定の数の複数のコーデックを表す。所定の数Ｋは、必ずしも所定の数Ｎに等しい必要はないことに留意されたい。特定の符号化技術で符号化された各メディアストリームは、そのそれぞれのデコーダオブジェクトに提供される。例えば、メディアソース１２1から受信されたＷＭＡメディアを、ストリームオブジェクト２４によってストリームメディアにフォーマットし、復号するためにデコーダオブジェクト２６1に提供することができ、メディアソース１２2から受信されたＭＰ３メディアを、ストリームオブジェクト２４によってストリームメディアにフォーマットし、復号するためにデコーダオブジェクト２６2に提供することができる。各デコーダオブジェクト２６1から２６Nまでは、復号されたストリームメディアを、それぞれのメモリキュー２８1から２８Nまでを介してそれぞれのレンダラオブジェクト３０1から３０Nまでに提供する。したがって、メディアソースが追加される、削除される、または変更されるとき、メディアフォーマットが追加される、削除される、または変更されるとき、あるいはコーデックが追加される、削除される、または変更されるとき、ＣＡＬは、処理チェーン（processing chain）のそれぞれのインスタンスを通すようにメディアを導く。
【００１７】
図４は、本発明の一実施形態例によるベースクラスを示すＣＡＬのクラス階層図である。ＣＡＬは、すべての特定のＣＡＬクラスが派生する２〜３のベースクラスを含む。図４に示されているベースクラスには、ＣＡＬベースクラス４０、メディア情報ベースクラス４２、レンダラベースクラス４４、映画デコーダベースクラス４６、映画プレーヤベースクラス４８、ストリームベースクラス５０、プレーヤベースクラス５２、およびデコーダベースクラス５４などがある。メディア情報ベースクラス４２、レンダラベースクラス４４、映画デコーダベースクラス４６、映画プレーヤベースクラス４８、ストリームベースクラス５０、プレーヤベースクラス５２、およびデコーダベースクラス５４は、ＣＡＬベースクラス４０に応答する。メディア情報ベースクラス４２は、メディアソースに関連づけられているオブジェクトの変数およびメソッドを定義する。ストリームベースクラス５０は、ストリームオブジェクト２４の変数およびメソッドを定義する。デコーダベースクラス５４および映画デコーダベースクラス４６は、デコーダオブジェクト２６の変数およびメソッドを定義する。レンダラベースクラス４４は、レンダラオブジェクト３０の変数およびメソッドを定義する。プレーヤベースクラス５２および映画プレーヤベースクラス４８は、中間のプレーヤオブジェクト３２の変数およびメソッドを定義する。各ベースクラス４２、４４、４６、４８、５０、５２、および５４は、それぞれそれに応答するそれ自体のサブクラスを含む。ベースクラスは、より特定の導出クラスに共通の機能を提供するために使用される。例えば、音声デコーダおよび映像デコーダは、データのタイプに関係なく、データをある形式から別の形式に変換するため、いくつかの類似性を有する。コードを統合するために、この共通の機能は、音声および映像のデコーダが派生するデコーダのベースクラスに移る。
【００１８】
図５は、本発明の一実施形態例によるベースクラス４２、４４、４６、４８、５０、５２、および５４のそれぞれのサブクラスを示すＣＡＬのより詳細なクラス階層図である。メディア情報ベースクラス４２には、それに応答する以下のサブクラス、音声情報クラス、映像情報クラス、および画像情報クラスがある。レンダラベースクラス４４には、それに応答する以下のサブクラス、音声レンダラクラス、映像レンダラクラス、サブレンダラクラス、および画像レンダラクラスがある。サブレンダラクラスは、メインの映像ストリームの上に字幕などの２次映像ストリームをレンダリングするために使用される。映画デコーダベースクラス４６には、それに応答する以下のサブクラス、ＷＭＶ（Ｗｉｎｄｏｗｓ  Ｍｅｄｉａ  Ｖｉｄｅｏ）デコーダクラスおよびＭＰ２デコーダクラスがある。映画プレーヤベースクラス４８には、それに応答するＤＶＤプレーヤクラスがある。ストリームベースクラス５０には、それに応答する以下のサブクラス、ファイルストリームクラス、ＨＴＴＰストリームクラス、カスタムストリームクラス、メモリストリームクラス、およびメモリキュークラスがある。プレーヤベースクラス５２には、それに応答する以下のサブクラス、音声プレーヤクラス、映像プレーヤクラス、および画像プレーヤクラスがある。デコーダベースクラス５４には、それに応答する以下のサブクラス、音声デコーダクラス、映像デコーダクラス、サブデコーダクラス、および画像デコーダクラスがある。音声デコーダクラスには、それに応答するＰＣＭデコーダクラス、ＷＡＶデコーダクラス、ＭＰ３デコーダクラス、ＷＭＡデコーダクラス、およびＡＡＣデコーダクラスがある。映像デコーダクラスには、それに応答するＲＣＶデコーダクラスがある。画像デコーダクラスには、それに応答するＢＭＰデコーダクラス、ＪＰＥＧデコーダ、およびＴＩＦＦデコーダがある。
【００１９】
本発明の説明は、複数のコーデックに対応することができるゲームシステム例との関連で説明してきたが、本発明は、複数のコーデックに対応できるより一般的なコンピューティング環境にも適用できる。図６は、本発明の一実施形態例を実施できる適したコンピューティングシステム環境６００の一例を示している。コンピューティングシステム環境６００は、適したコンピューティング環境の一例にすぎず、本発明の使用または機能の範囲に関する限定を示唆するものではない。また、コンピューティング環境６００を、動作環境６００の例に示した構成要素のいずれか１つ、またはその組み合わせに関連する任意の依存性または必要条件を有しているものと解釈すべきではない。
【００２０】
本発明は、他の多くの汎用または専用コンピューティングシステム環境または構成で動作可能である。本発明との使用に適したよく知られているコンピューティングシステム、環境、および／または構成の例には、それだけには限定されないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップ装置、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能家庭用電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記の任意のシステムまたは装置を含む分散コンピューティング環境などがある。
【００２１】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的な関連で説明することができる。一般にプログラムモジュールは、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。また、本発明は、タスクが通信ネットワークまたは他のデータ通信媒体によってリンクされているリモート処理装置によって実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールおよび他のデータを、メモリ記憶装置を含むローカルおよびリモートのコンピュータ記憶媒体に置くことができる。
【００２２】
図６を参照すると、本発明を実施するシステムの例は、汎用コンピューティング装置をコンピュータ６１０の形で含んでいる。本発明の一実施形態例では、コンピュータ６１０は、ゲームコンソールを含む。コンピュータ６１０の構成要素は、それだけには限定されないが、処理ユニット６２０、システムメモリ６３０、およびシステムメモリを含む様々なシステム構成要素を処理ユニット６２１に結合するシステムバス６２０を含み得る。システムバス６２１は、様々なバスアーキテクチャのうちの任意のものを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含むいくつかのタイプのバス構造のうちどんなものでもよい。こうしたアーキテクチャには、それだけには限定されないが一例として、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカルバス、および（メザニンバスとしても知られている）周辺部品相互接続（ＰＣＩ）バスなどがある。
【００２３】
コンピュータ６１０は、一般に様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ６１０からアクセスできる使用可能な任意の媒体とすることができ、揮発性および不揮発性媒体、取外式および固定式媒体を含む。コンピュータ可読媒体は、それだけには限定されないが一例として、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報を記憶するための任意の方法または技術で実施される揮発性および不揮発性の取外式および固定式媒体がある。コンピュータ記憶媒体には、それだけには限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、または所望の情報の格納に使用でき、コンピュータ６１０からアクセスできる他の任意の媒体などがある。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを搬送波または他の搬送機構などの変調されたデータ信号に組み込む。これには任意の情報配送媒体がある。「変調されたデータ信号」という用語は、信号に情報を符号化するように１つまたは複数のその特性が設定または変更された信号を意味する。通信媒体には、それだけには限定されないが一例として、有線ネットワーク、または直接配線された接続などの有線媒体、および、音響、ＲＦ、赤外線、およびその他の無線媒体などの無線媒体がある。また、上記のどんな組み合わせでもコンピュータ可読媒体の範囲内に含まれるものとする。
【００２４】
システムメモリ６３０は、ＲＯＭ６３１やＲＡＭ６３２など、揮発性および／または不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム６３３（ＢＩＯＳ）は、例えば起動中など、コンピュータ６１０内の要素間での情報の転送を助ける基本ルーチンを含み、一般にＲＯＭ６３１に格納されている。ＲＡＭ６３２は一般に、処理ユニット６２０から直接アクセス可能な、および／または処理ユニット６２０が現在処理しているデータおよび／またはプログラムモジュールを含む。図６は、それだけには限定されないが一例として、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６、およびプログラムデータ６３７を示している。
【００２５】
コンピュータ６１０は、他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体を含むこともできる。一例にすぎないが、図６は、固定式不揮発性磁気媒体から読み取り、あるいはそこに書き込むハードディスクドライブ６４１、取外式不揮発性磁気ディスク６５２から読み取り、あるいはそこに書き込む磁気ディスクドライブ６５１、およびＣＤ−ＲＯＭや他の光媒体など、取外式不揮発性光ディスク６５６から読み取り、あるいはそこに書き込む光ディスクドライブ６５５を示している。動作環境の例で使用できる他の取外式／固定式、揮発性／不揮発性コンピュータ記憶媒体には、それだけには限定されないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体ＲＡＭ、半導体ＲＯＭなどがある。ハードディスクドライブ６４１は一般に、インターフェイス６４０などの固定式メモリインターフェイスを介してシステムバス６２１に接続され、磁気ディスクドライブ６５１および光ディスクドライブ６５５は一般に、インターフェイス６５０などの取外式メモリインターフェイスによってシステムバス６２１に接続される。
【００２６】
ドライブおよびその関連のコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ６１０の他のデータの記憶域を提供する。図６では例えば、ハードディスクドライブ６４１は、オペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６、およびプログラムデータ６４７を記憶するものとして示されている。これらの構成要素は、オペレーティングシステム６３４、アプリケーションプログラム６３５、他のプログラムモジュール６３６、およびプログラムデータ６３７と同じであっても、異なっていてもよいことに留意されたい。オペレーティングシステム６４４、アプリケーションプログラム６４５、他のプログラムモジュール６４６、およびプログラムデータ６４７は少なくとも異なるコピーであることを示すために、ここではそれらに異なる番号を付している。
【００２７】
ユーザは、キーボード６６２、および一般にマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス６６１などの入力装置を介してコマンドおよび情報をコンピュータ６１０に入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどがある。これらおよび他の入力装置は、しばしばシステムバスに結合されているユーザ入力インターフェイス６６０を介して処理ユニット６２０に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス（ＵＳＢ）など他のインターフェイスおよびバス構造で接続してもよい。
【００２８】
モニタ６９１または他のタイプの表示装置もまた、グラフィック処理ユニット（ＧＰＵ）およびビデオメモリ６９０を含み得る、ビデオインターフェイスなどのインターフェイスを介してシステムバス６２１に接続される。モニタに加えて、コンピュータは、出力周辺インターフェイス６９５を介して接続できるスピーカ６９７、プリンタ６９６などの他の周辺出力装置を含むこともできる。
【００２９】
コンピュータ６１０は、リモートコンピュータ６８０など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク式環境で動作することができる。リモートコンピュータ６８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置、または他の一般のネットワークノードでよく、一般にコンピュータ６１０に関連して上述した多くまたはすべての要素を含むが、図６にはメモリ記憶装置６８１のみを示している。示された論理接続は、ＬＡＮ６７１およびＷＡＮ６７３を含んでいるが、他のネットワークを含むこともできる。こうしたネットワーキング環境は、オフィス、全社規模のコンピュータネットワーク、イントラネット、およびインターネットではごく一般的である。
【００３０】
ＬＡＮネットワーキング環境で使用する場合、コンピュータ６１０は、ネットワークインターフェイスまたはアダプタ６７０を介してＬＡＮ６７１に接続される。ＷＡＮネットワーキング環境で使用する場合、コンピュータ６１０は一般に、モデム６７２、またはインターネットなどＷＡＮ６７３を介して通信を確立する他の手段を含む。モデム６７２は、内蔵のものでも外付けのものでもよく、ユーザ入力インターフェイス６６０または他の適切な機構を介してシステムバス６２１に接続することができる。ネットワーク式環境では、コンピュータ６１０に関連して示したプログラムモジュール、またはその一部をリモートメモリ記憶装置に格納することができる。図６は、それだけには限定されないが一例として、リモートアプリケーションプログラム６８５をメモリ装置６８１上に存在するものとして示している。図示したネットワーク接続は例であり、コンピュータ間の通信リンクを確立する他の手段を使用することができることは理解されよう。
【００３１】
上述したように、本発明の実施形態例を、様々なコンピューティング装置との関連で説明してきたが、基礎を成す概念を、新しい、かつ／または変更されたコーデックを介して処理されたメディアを使用してアプリケーションコードを変更することを必要とせずに、新しい、かつ／または変更されたコーデックに対応することが求められる、任意のコンピューティング装置またはシステムに適用することができる。
【００３２】
本明細書に記載した様々な技術を、ハードウェア、ソフトウェア、または必要に応じてその組み合わせと共に実装することができる。したがって、本発明の方法および装置、またはそのいくつかの態様または一部は、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン可読記憶媒体など、有形の媒体に組み込まれるプログラムコード（すなわち命令）の形をとることができ、プログラムコードがコンピュータなどのマシンにロードされ、それによって実行されると、そのマシンは本発明を実施する装置となる。プログラム可能コンピュータ上でプログラムコードを実行する場合、コンピューティング装置は一般に、プロセッサ、プロセッサによって読み取り可能な記憶媒体（揮発性および不揮発性メモリおよび／または記憶要素を含む）、少なくとも１つの入力装置、および少なくとも１つの出力装置を含む。必要に応じて、プログラムは、アセンブリ言語またはマシン言語で実施することができる。どんな場合でも、言語はコンパイル型またはインタプリタ型言語とすることができ、ハードウェア実装と組み合わせることができる。
【００３３】
本発明の方法および装置は、電子配線またはケーブルなどを介して、光ファイバを介して、または他の任意の送信形式を介してなど、何らかの送信媒体を介して送信されるプログラムコードの形式で組み込まれる通信を介して実施することもでき、プログラムコードは、ＥＰＲＯＭ、ゲートアレイ、プログラム可能論理装置（ＰＬＤ）、クライアントコンピュータなど、マシンによって受信され、そこにロードされ、それによって実行されると、そのマシンは本発明を実施する装置になる。汎用プロセッサ上に実装されるとき、プログラムコードは、プロセッサと組み合わされて、本発明の機能を呼び出すように動作する一意の装置を提供する。さらに、本発明との関連で使用される任意の記憶技術は、常にハードウェアとソフトウェアとの組み合わせとすることができる。
【００３４】
本発明の一実施形態例によるＣＡＬは、統合された簡単なインターフェイスを、異なるソースから来る複数のコーデックに提供する。新しいコーデックの追加の複雑さが低減される。低レベルのコーデックライブラリは、クライアントアプリケーションコードを修正する必要なく、いつでも交換することができる。開発時間は、コードの再利用の能力により短縮される。ＣＡＬは、任意のコーデックがＸＭｅｄｉａライブラリＡＰＩを介してゲーム開発者に公開される簡単で統合された機構を提供する。ＣＡＬオブジェクトからの入力および出力は、メモリ、ファイル、ネットワーク、キュー、ユーザ定義の入力など、ほぼすべてのストリームクラスを介して抽象化される。ＣＡＬの実装により、データをストリームとの間でやり取りすることによってシステムテストが改善され、個々の構成要素が正しく働いているかを容易に確認することができる。
【００３５】
本発明を様々な図の好ましい実施形態と共に説明してきたが、本発明から逸脱することなく本発明の同じ機能を実行するために、他の同様の実施形態を使用し、または変更および追加を記載した実施形態に加えることができることを理解されたい。例えば、本発明の一実施形態例は、例えば図１に示されているように、メディアソースとストリームオブジェクトの間に実装されるメディアソース抽出層（ＭＳＡＬ）を含んでいてもよい。ストリームオブジェクトは、ＭＳＡＬと対話し、メディアソースとは対話しない。メディアソース間の差は、ストリームオブジェクトには関係ない。新しいメディアソースは、ストリームオブジェクトを変更することなく、ストリームオブジェクトによって導入され、使用され得る。したがって、本発明は、任意の単一の実施形態に限定されるべきではなく、むしろ添付の特許請求の範囲による幅および範囲で解釈すべきである。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態例によるメディアプレーヤにメディアを提供するシステムを示すブロック図である。
【図２】本発明の一実施形態例によるコーデック抽象化層（ＣＡＬ）の単一のインスタンスを示す図である。
【図３】本発明の一実施形態例による複数のメディアソース、複数のデコーダオブジェクト、複数のメモリキュー、および複数のレンダラオブジェクトを示すＣＡＬの図である。
【図４】本発明の一実施形態例によるＣＡＬのクラス階層図である。
【図５】本発明の一実施形態例によるサブクラスを示すＣＡＬのより詳細なクラス階層図である。
【図６】本発明の態様が実装され得るコンピューティング環境例を示すブロック図である。
【図１】
2008542855.tif 000003
【図２】
2008542855.tif 000004
【図３】
2008542855.tif 000005
【図４】
2008542855.tif 000006
【図５】
2008542855.tif 000007
【図６】
2008542855.tif 000008
【国際調査報告】
2008542855.tif 000009