(57)【要約】【課題】融合デバイスは、異なるタイプのサービスを同時に処理することができる必要がある。【解決手段】本発明に係る方法は、プロセッサベースの方法であって、符号化ビデオデータ及び付随する符号化音声データの少なくとも一部を第１のバッファに書き込むことであって、前記第１のバッファは第１のデータグラムのペイロードを蓄積すること、前記第１のバッファに取引データを書き込むこと、前記書き込むことと同時にタイマを実行すること、前記第１のデータグラムのペイロードが所定サイズを満たす時、又は所定時間後の前記タイマの満了のうちの早い方の時点で前記第１のバッファに取引データを書き込むことを終了すること、その後前記第１のデータグラムをネットワーク上に送信することとを含む。【選択図】図１
2006228212.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサベースの方法であって、
符号化ビデオデータ及び付随する符号化音声データの少なくとも一部を第１のバッファ（３４）に書き込むことであって、前記第１のバッファ（３４）は第１のデータグラムのペイロードを蓄積すること、
前記第１のバッファ（３４）に取引データを書き込むこと、
前記書き込むことと同時にタイマ（３８）を実行すること、
前記第１のデータグラムのペイロードが所定サイズを満たす時、又は所定時間後の前記タイマの満了のうちの早い方の時点で前記第１のバッファ（３４）に取引データを書き込むことを終了すること、その後
前記第１のデータグラムをネットワーク上に送信することと
を含むプロセッサベースの方法。
【請求項２】
符号化ビデオデータを書き込むことは、
少なくとも部分的にフレームを更新するために十分な符号化ビデオデータを書き込むこと
をさらに含む請求項１に記載のプロセッサベースの方法。
【請求項３】
伝送レイヤプロトコルとしてユニバーサルデータグラムプロトコル（ＵＤＰ）を使用して前記符号化ビデオデータを前記第１のバッファ（３４）に書き込むこと
をさらに含む請求項１又は２に記載のプロセッサベースの方法。
【請求項４】
伝送レイヤプロトコルとしてユニバーサルデータグラムプロトコル（ＵＤＰ）を使用して前記符号化音声データを前記第１のバッファ（３４）に書き込むこと
をさらに含む請求項１〜３のいずれか１項に記載のプロセッサベースの方法。
【請求項５】
低優先の非同期データを第２のバッファ（３６）に書き込むことであって、前記第２のバッファ（３６）は、第２のデータグラムのペイロードを蓄積すること、
前記第２のデータグラムのペイロードが所定サイズを満たす時、前記第１のデータグラムペイロード及び前記第２のデータグラムペイロードの合計が所定サイズを満たす時、又は前記所定時間の満了のうちの早い方の時点で前記第２のバッファ（３６）に書き込むことを終了することと
をさらに含む請求項１に記載のプロセッサベースの方法。
【請求項６】
前記第１のバッファ（３４）及び前記第２のバッファ（３６）の合計容量を追跡すること、
前記バッファ（３４、３６）の前記合計容量の利用率がおよそ９５％以上に達した場合、前記第２のバッファ（３６）に低優先の非同期データを書き込まないようにし、前記第１のバッファ（３４）に取引データを書き込まないようにすることと
をさらに含む請求項５に記載のプロセッサベースの方法。
【請求項７】
前記第１のバッファ（３４）の容量を追跡すること、
前記第１のバッファ（３４）の前記容量が第１の所定閾値に達した場合、さらなるデータグラムに対して低優先の非同期データを第２のバッファ（３６）に書き込むことを終了すること、
さらなるデータグラムに対し符号化ビデオデータ及び符号化音声データを前記第２のバッファ（３６）に書き込むことと
をさらに含む請求項１に記載のプロセッサベースの方法。
【請求項８】
ポータブルコンピューティングデバイスであって、
プロセッサ（１０）、
前記プロセッサ（１０）に結合されたメモリ（１２）であって、前記メモリの第１の部分は、高優先バッファ（３４）として指定され、第２の部分は、低優先バッファ（３６）として指定されるメモリ（１２）と
を具備し、
前記プロセッサ（１０）は、
プログラムを実行して、高優先データグラムのペイロードが所定サイズを満たすか又は所定時間の満了のうちの早い方の時点まで、前記高優先データグラムのペイロードを前記高優先バッファ（３４）に蓄積し、
前記プロセッサ（１０）は、
プログラムを実行して、前記高優先データグラムが前記所定サイズを満たすが前記所定時間がまだ満了していない場合に、低優先データグラムのペイロードを前記低優先バッファ（３６）に蓄積し、前記低優先データグラムのペイロードが所定サイズを満たし、前記所定時間が満了し、又は前記高優先データグラム及び前記低優先データグラムを含む総ペイロードサイズが所定の最大値に達するまで、前記低優先データグラムのペイロードを蓄積し続ける
ポータブルコンピューティングデバイス。
【請求項９】
前記プロセッサに動作可能に結合されたレジスタ（３８）であって、タイマ部と高優先バッファ容量値部とを含むレジスタ（３８）
をさらに具備し、
前記プロセッサ（１０）は、
プログラムを実行して、前記タイマ部における前記所定時間の状態と、前記高優先バッファ値部における前記高優先バッファの容量とを追跡する
請求項８に記載のポータブルコンピューティングデバイス。
【請求項１０】
前記プロセッサ（１０）は、
プログラムを実行して、前記高優先バッファ（３４）の容量が第１の所定閾値に達した場合、さらに前記低優先データグラムを前記低優先バッファ（３６）に書き込まないようにし、前記高優先データグラムを前記低優先バッファ（３６）に書き込む
請求項９に記載のポータブルコンピューティングデバイス。
【請求項１１】
前記レジスタ（３８）は、
低優先バッファ容量値部をさらに備え、前記低優先バッファ値部における前記低優先バッファ（３６）の容量を追跡し、
前記プロセッサ（１０）は、
プログラムを実行して、前記第１のバッファ（３４）及び前記第２のバッファ（３６）の合計容量が第２の所定閾値に達した場合、前記高優先データグラムの前記ペイロードの一部に書き込まないようにする
請求項１０に記載のポータブルコンピューティングデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上における、ビデオデータ及び音声データの送信に関する。
【背景技術】
【０００２】
近年、携帯電話、携帯情報端末（ＰＤＡ）並びにスチルビデオカメラ及びモーションビデオカメラの間におけるように、機能の融合（convergence）がなされてきた。融合デバイスにより、コンピュータネットワーク伝送に関連するサービス品質要件が異なるいくつかのタイプのデータサービスがもたらされる。たとえば、モーションビデオストリーム及び対応する音声ストリームは、伝送中に置換なしでパケット損失を許容することができるが、長いデータ伝送遅延により深刻な影響を受ける。金融データストリーム（たとえばオンラインバンキング、オンライン決済及びオンライン購入）は、伝送中のパケット損失に対して耐性がある（置換あり）が、伝送遅延の影響は受けない。最後に、電子メールメッセージ及びウェブサービス等のデータストリームは、パケット損失（置換あり）と長い遅延との両方に対して耐性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
このように、融合デバイスは、これらの異なるタイプのサービスを同時に処理することができる必要がある。
【０００４】
本発明の例示的な実施形態を詳細に説明するために、ここで添付図面を参照する。
【発明を実施するための最良の形態】
【０００５】
［表記及び命名法］
以下の説明及び特許請求の範囲を通して、特定のシステムコンポーネントを指すためにいくつかの用語を使用する。当業者は理解するように、コンピュータ会社は、１つのコンポーネントを異なる名称で呼ぶ場合がある。この文書は、名称は異なるが機能は異ならないコンポーネントを識別することを意図していない。
【０００６】
以下の考察において且つ特許請求の範囲において、「含む、有する（including）」及び「具備する、備える（comprising）」という用語は、限定的でない（open-ended）ように使用され、そのため、「含むが、それに限定されない」を意味するように解釈されるべきである。また、「結合する（couple）」という用語は、間接的な電気接続又は直接的な電気接続のいずれをも意味するように意図される。このため、第１のデバイスが第２のデバイスに結合する場合、その接続は、直接的な電気接続によってもよく、又は他のデバイス及び接続を介した電気接続によってもよい。
【０００７】
さらに、以下の考察及び特許請求の範囲において、「同時に」という用語は、同時に、又は実質的に同時に、を意味する。
【０００８】
［詳細な説明］
以下の考察は、本発明のさまざまな実施形態に関する。これらの実施形態のうちの１つ又は複数が好ましい場合があるが、開示する実施形態を、本開示の範囲を限定するものとして解釈又は使用するべきではない。さらに、当業者は、以下の説明を広く適用することができ、いずれの実施形態の考察も単にその実施形態を例示するものであるように意図されており、本開示の範囲がその実施形態に限定されることをほのめかすようには意図されていない、ということを理解するであろう。
【０００９】
図１は、本発明の少なくともいくつかの実施形態によるポータブルコンピューティングデバイス１００を示す。ポータブルコンピューティングデバイス１００は、携帯電話、携帯情報端末（ＰＤＡ）並びにスチルビデオカメラ及び／又はモーションビデオカメラのうちの１つ又は複数の機能を単一デバイスに組み込む。この機能を実施するために、ポータブルコンピューティングデバイス１００は、メインメモリアレイ１２に結合されたプロセッサ１０を備える。メインメモリアレイ１２は、１つ又は複数のランダムアクセスメモリ（ＲＡＭ）デバイスを含む。メインメモリアレイ１２は、プロセッサ１０のために動作するメモリであり、そのため、プロセッサ１０が利用するプログラム及びデータを格納する。さまざまなタイプの機能を提供するために、プロセッサ１０は、メインメモリアレイ１２に永久的に又は半永久的に格納してもよい１つ又は複数のプログラムを実行する。
【００１０】
ＰＤＡタイプの機能を提供するために、ポータブルコンピューティングデバイス１００はまた、プロセッサ１０に結合されたディスプレイ１４も備える。ディスプレイ１４は、液晶ディスプレイ（ＬＣＤ）等、ユーザに対してテキスト及び／又はデータを表示することができる任意の適当なデバイスである。ポータブルコンピューティングデバイス１００は、プロセッサ１０に結合されたユーザインタフェース１６をさらに備える。実施形態によっては、ユーザインタフェース１６は、フルサイズ又は縮小サイズのキーボードである。代替実施形態では、ユーザインタフェース１６は、少なくとも１０個の数字を含むキーパッドである。さらに別の代替実施形態では、ユーザインタフェースは、ディスプレイ１４に重なるデジタイザパネルであり、それによりユーザは、筆記用スタイラス（writing stylus）を使用してプロセッサのプログラムにインターフェイス接続する（interface）ことができる。さらに他の実施形態では、ユーザインタフェースは、説明するさまざまなタイプのインタフェースのうちの２つ以上の組合せであってもよい。このように、プロセッサ１０は、プログラムを実行して、カレンダ、タスクスケジューリング並びに電話及びアドレスブックサービス等のサービスを、ポータブルコンピューティングデバイス１００のユーザに提供してもよい。
【００１１】
さらに図１を参照すると、ポータブルコンピューティングデバイス１００はさらに、電話機能を提供し、そのため、アナログ／デジタル変換器２０を介してプロセッサ１０に結合されたマイクロフォン１８を備える。同様に、スピーカ２２が、デジタル／アナログ変換器２４を介してプロセッサ１０に結合する。発話音声がマイクロフォン１８によって検出され、アナログ／デジタル変換器２０によってデジタル形式に変換される。プロセッサ１０は、プログラムを実行して、符号励振線形予測（Code Excited Linear Prediction）（ＣＥＬＰ）等の任意の適当な符号化方式を使用して、検出された音声データを符号化する。同様に、プロセッサ１０は、符号化された音声データを受け取り、その符号化された音声データを符号化されていないデジタルフォーマットに変換し、その符号化されていないデジタルフォーマットの音声データをデジタル／アナログ変換器２４に与えることにより、スピーカ２２によって音声を再生する。プロセッサ１０、アナログ／デジタル変換器２０及びデジタル・アナログ変換器２４は、互いに結合されてさまざまなタスクを実行する個々のコンポーネントであってもよく、又は、プロセッサ、アナログ／デジタル変換器及びデジタル／アナログ変換器の機能を、破線２６によって示すように専用デジタル信号プロセッサ等の単一デバイスに含めてもよい。
【００１２】
ポータブルコンピューティングデバイス１００は、プロセッサ１０に結合された無線送受信機２８をさらに備えてもよい。無線送受信機２８は、データの無線通信に関与する。実施形態によっては、無線送受信機２８は、携帯電話無線送信機であり、携帯電話ネットワークにおけるアナログ通信及び／又はデジタル通信が可能である。本発明の代替実施形態では、無線送受信機２８は、電気電子学会（ＩＥＥＥ）８０２．１１無線通信プロトコル等の無線ネットワーキングプロトコルを実施する。これらの実施形態では、ポータブルコンピューティングデバイス１００は、ネットワークレイヤプロトコルとしてインターネットプロトコル（ＩＰ）を使用して音声通信を伝送することができ、これを、ボイスオーバＩＰ（ＶｏＩＰ；Voice over IP）と呼ぶ場合もある。
【００１３】
さらに図１を参照すると、ポータブルコンピューティングデバイス１００はさらに、デジタルカメラ機能を提供し、そのため、プロセッサ１０に結合された電荷結合素子（ＣＣＤ）アレイを備える。プロセッサ１０は、プログラムを実行して、ＣＣＤアレイ３０を利用して静止画像及び／又はモーションビデオを取り込むための一連の静止画像を取り込む。さらに、プロセッサ１０はまた、マイクロフォン１８を使用して、ＣＣＤアレイ３０を使用して取り込んだモーションビデオに付随する音声を取り込んでもよい。
【００１４】
最後に、ポータブルコンピューティングデバイス１００はまた、ポータブルコンピューティングデバイス１００内のすべてのデバイスに結合され且つそれらに電力を供給するバッテリ３２も備える。代替実施形態では、外部ソースから電力を供給してもよい。
【００１５】
ポータブルコンピューティングデバイス１００のさまざまなデバイス及び機能によりいくつかのタイプのデータがもたらされる。たとえば、ＣＣＤアレイ３０によって取り込まれたフルモーションビデオは、ビデオ会議機能のため等、ユーザが他のデバイスに送信したい可能性のあるビデオデータストリームを生成する。同様に、マイクロフォン１８は、アナログ／デジタル変換器２０及びプロセッサ１０と結合して、ＣＣＤアレイ３０によって取り込まれたビデオデータのストリームに付随してもよい音声データストリームを作成し、それによりマルチメディアデータストリームを提供する。後にさらに考察するように、音声データストリーム及びビデオデータストリーム、又はまとめてマルチメディアデータストリームは、さまざまな実施形態において高優先の（high priority）データストリームである。音声データストリーム及び／又はビデオデータストリームの作成と幾分か同時に、ポータブルコンピューティングデバイス１００のユーザは、オンライン取引（たとえば、オンラインバンキング、オンライン決算又はオンライン購入）を実行してもよく、本明細書では、オンライン取引に関連するデータのタイプを、「取引データ」と呼ぶ。取引データが、マルチメディアデータストリームと実質的に同時に生成され得る限り、状況によっては、取引データをマルチメディアデータストリームとともに同時に受信側コンピューティングデバイスに送信することが望ましい。これらの状況では、取引データは、高優先データストリームであるように見える。しかしながら、他の状況では、取引データは、音声データストリーム及び／又はビデオデータストリームに付随せず、そのため、取引データは、低優先データストリームであるように見える。最後に、ポータブルコンピューティングデバイス１００のユーザはまた、電子メールメッセージ及びウェブサービスに対する要求等、比較的、低優先のデータストリーム(低優先データストリーム)を生成してもよい。この低優先データストリームを、マルチメディアデータストリーム及び／又は取引データと同時に送信する必要のない限り、「非同期データストリーム」と呼んでもよい。このタイプのデータの各々には、受信端末（receiving end）におけるサービス品質に影響する異なるネットワーク伝送制約がある。
【００１６】
モーションビデオを考えると、フレームが１秒間に少なくとも２５回以上変化する場合、人間の目は連続した動きを知覚する。このため、受信端末においてビデオが連続しているように見えるためには、少なくとも１／２５秒毎（４０ミリ秒毎）に画面更新が送信されることが好ましい。ビデオフレームの偶発的（occasional）損失は、受信端末におけるサービス品質に深刻な影響を与えないが、過度なネットワーク伝送遅延、たとえばフレーム更新が４０ミリ秒毎より低い頻度で送信される場合、受信端末における深刻なサービス品質の問題がもたらされる可能性がある。ビデオデータストリームに関して、宛先において各フレーム到着を確実にすることより伝送の到着回数（frequency）の方が重大な問題であるため、本発明の実施形態によれば、ビデオデータストリームを、伝送レイヤプロトコルとしてユニバーサルデータグラムプロトコル（ＵＤＰ；Universal Datagram Protocol）を使用してデジタルで送信する。ＵＤＰは、本質的に、各パケットの配信の保証を提供するものではなく（データパケット受信の肯定応答がなく、若しくはデータパケットの自動的又はトリガされた再送信がない）、したがって、このような能力を必要としないビデオデータストリームに対するネットワークオーバヘッド全体を低下させる。本発明の少なくともいくつかの実施形態によれば、ビデオデータストリームを、ネットワーク伝送の前に、ムービングピクチャエキスパートグループ（ＭＰＥＧ；Moving Pictures Expert Group）ＩＩ符号化方式を使用して符号化する。この符号化方式を使用して伝送する１つの方法は、主な画面リフレッシュフレーム（Ｉフレーム）と２つの更新フレーム（Ｂフレーム及びＰフレーム）とを伝送するというものであり、受信デバイスは、Ｉフレーム、Ｂフレーム及びＰフレームを使用して、モーションビデオにおいて次のフレーム全体を復元する。他の現在利用可能なビデオ符号化方式又は後に開発されるビデオ符号化方式を、画面更新を伝送する他の方法とともに同様に使用してもよい。
【００１７】
重要な第２のデータストリームは音声データストリームであり、それはビデオデータストリームと同時に作成され、したがってビデオデータストリームに付随してもよい。ビデオデータストリームと同様に、受信端末における音声データストリームのサービス品質は、偶発的なパケット損失により深刻な影響を受けないが、音声データストリームパケットのネットワーク伝送における過度の遅延が、受信端末におけるサービス品質に深刻な影響を与える可能性がある。この理由で、本発明の実施形態によるポータブルコンピューティングデバイス１００は、伝送レイヤプロトコルとしてＵＤＰを使用して符号化音声データストリームを送信する。また、実施形態によっては、音声データを、符号化メカニズムとしてＣＥＬＰを使用して符号化するが、任意の現在利用可能な符号化方式又は後に開発される符号化方式を同様に使用してもよい。
【００１８】
上述したように、取引データを、マルチメディアデータストリームと同時に作成してもよい。ネットワーク伝送遅延は、ほとんどの場合取引データに関してサービス品質問題に影響を与えないが、取引データがマルチメディアデータストリームと同時に作成される場合、取引データに大幅なネットワーク伝送遅延がないことが望ましい。本発明の実施形態によれば、ほとんどの場合、ネットワーク伝送のために取引データをマルチメディアデータストリームと結合する。このタイプのデータに対するサービス品質は、データパケットの損失により深刻な影響を受けるため、本発明の実施形態によれば、伝送レイヤプロトコルとして伝送制御プロトコル（ＴＣＰ）を使用して取引データを伝送する。ＴＣＰインプリメンテーションにより、受信側肯定応答、タイムアウト時の自動再送信及び受信側がトリガするデータの再送信（伝送中にデータ破損が発生する場合等）を使用して配信が保証される。
【００１９】
例示的なポータブルコンピューティングデバイス１００によって作成されるデータの最後のタイプは、非同期データである。ネットワーク伝送遅延はサービス品質に深刻な影響を与えないが、パケット損失は影響を与えるため、取引データと同様に、伝送レイヤプロトコルとしてＴＣＰを使用して非同期データを受信端末に伝送する。
【００２０】
続ける前に要約すると、本発明の実施形態によるポータブルコンピューティングデバイス１００は、少なくとも４つのタイプのデータを作成する。ビデオデータストリーム及び音声データストリーム、合せてマルチメディアデータストリームは、伝送レイヤプロトコルとしてＵＤＰを使用する。マルチメディアデータストリームは、ネットワーク伝送遅延に基づくサービス品質問題の影響を受けやすい。伝送レイヤプロトコルとしてＴＣＰを使用する取引データは、本質的に、ネットワーク伝送遅延に基づくサービス品質問題の影響を受けにくいが、取引データをマルチメディアデータストリームと実質的に同時に伝送することが望ましい場合がある。最後に、伝送レイヤプロトコルとしてＴＣＰを使用して伝送される非同期データは、ネットワーク伝送遅延に基づくサービス品質問題の影響を特に受けやすくはない。
【００２１】
本発明のさまざまな実施形態は、帯域幅及び伝送ネットワーク輻輳に基づくあり得る程度まで、データストリームの各々が受信端末におけるサービス品質問題を低減するために十分な到着回数で送信されることを保証するように、さまざまなデータストリーム及びデータのネットワーク伝送に優先順位を付す、プロセッサベースの方法及び関連するシステムに関する。具体的には（in particular）、ビデオデータ及び音声データを含むマルチメディアデータストリームに最高優先順位を与え、本発明の実施形態によっては、少なくとも４０ミリ秒毎程度の頻度で伝送する。時間及びバッファ空間が許す程度まで、取引データをマルチメディアデータとインタリーブする。通信ネットワークの時間、バッファ空間及び帯域幅が許す程度まで、非同期データもまた同じ例示的な４０ミリ秒期間内に送信する。
【００２２】
具体的には、本発明の実施形態によれば、ポータブルコンピューティングデバイス１００は、ネットワークレイヤプロトコルとしてインターネットプロトコル（ＩＰ）を使用して、さまざまなタイプのデータを受信デバイスに伝送する。さまざまなデータのタイプの各々からのパケットメッセージは、「データグラム」としても知られる各ＩＰメッセージのペイロードを形成する。言い換えれば、ＵＤＰベースのビデオデータパケット、ＵＤＰベースの音声データパケット、ＴＣＰベースの取引データパケット及びＴＣＰベースの非同期データパケットを、ＩＰネットワークレイヤパケットとして「梱包し（wrap）」、受信デバイスに送信する。受信端末では、各メッセージをその伝送レイヤプロトコルに従って処理する。
【００２３】
再び図１を参照すると、メインメモリアレイ１２は、高優先バッファ３４と低優先バッファ３６とを備える。高優先バッファ３４を使用して、ビデオデータストリーム、音声データストリーム及び場合によっては取引データを含むＩＰデータグラムに対するペイロードを蓄積する。４０ミリ秒タイマが満了するか又はデータグラムのペイロードが一杯になる早い方の時点で、ＩＰヘッダのさまざまな部分、たとえば宛先、全長及びヘッダチェックサムを充填することにより、ＩＰデータグラムを完成する。ＩＰヘッダを完成するプロセスを、別法として、ＩＰデータグラムを「シールする（seal）」と言ってもよい。ＩＰデータグラムは、シールされると、伝送の用意ができる。同様に、時間及び帯域幅が許す場合、低優先バッファは、非同期データに対する別のＩＰデータグラム（高優先バッファのＩＰデータグラムとは異なる）に対するペイロードを蓄積する。時間が満了した時、低優先バッファのＩＰデータグラムのペイロードが一杯になった時、又は伝送ネットワーク帯域幅を完全に利用するために十分なバイトが収集された時、低優先バッファのＩＰデータグラムをシールし、ネットワーク伝送の用意ができた状態にする。合せて考慮する高優先バッファ及び低優先バッファが一杯になると、低優先バッファは、ほかの（otherwise）高優先データストリームを含むＩＰデータグラムに対するペイロードを蓄積する。この状況では、非同期データに対するＩＰデータグラムの作成及び送信をストールする（stall）。
【００２４】
さまざまなシールされたＩＰデータグラムを伝送するには、それらデータグラムをメインメモリアレイ１２のバッファから無線送受信機２８等のネットワークインタフェースデバイス（デバイスドライバ）にコピーする必要のある場合がある。しかしながら、ネットワーク輻輳及び／又はネットワーク接続の速度が、無線送受信機２８が伝送のためにＩＰデータグラムを消費することができる速度を制限する可能性があり、そのため、メインメモリアレイ１２のバッファが、ネットワーク伝送のためにいくつかのＩＰデータグラムのセットを蓄積する可能性がある。タイマメカニズムを実施するとともにバッファ３４及び３６の利用率を追跡するために、本発明のさまざまな実施形態は、レジスタ又はレジスタのセット、たとえばプロセッサ１０のレジスタ３８を利用する。実施形態によっては、レジスタ３８は、タイマ機能を実施する部分、たとえば８ビットを含み、２つの３２ビット部分を含む７２ビットレジスタであってもよく、２つの３２ビット部分の各々は、そのそれぞれのバッファの容量全体のどれくらいが使用されているかを示す値を格納する。バッファ３４、３６にデータが蓄積されると、レジスタ３８の対応する部分が更新される。同様に、ＩＰデータグラムが伝送されるために無線送受信機２８に移動すると、空間が解放され、そのため、利用率値が調整される。
【００２５】
図２（図２Ａ及び図２Ｂから成る）は、本発明の実施形態によるネットワーク伝送のためにデータグラムを作成する方法を示す。図２において、又は明細書の図の任意の部分において、すべて本発明の範囲及び精神から逸脱することなく、さまざまな例示的なステップの順序を変更してもよく、例示的なステップのうちのいくつかを結合してもよく、他のいくつかのステップを分離してもよい。プロセスは開始し（ブロック２００）、総バッファ利用率（高優先バッファと低優先バッファとをともに考慮する）が所定閾値を下回るか否かの判断に進む（ブロック２０２）。実施形態によっては、所定閾値はおよそ９５％利用率であるが、この閾値は、特定のシステム設計考慮事項に基づいて変化してもよい。総バッファ利用率が所定閾値を下回る場合、高優先バッファ利用率が所定閾値利用率を下回るか否かを判断する（ブロック２０４）。高優先バッファ利用率が所定閾値を下回る場合、新たなデータグラムに対するＩＰヘッダを高優先バッファに書き込む（ブロック２０６）。
【００２６】
例示的なＩＰヘッダは、さまざまな情報を含んでもよく、ヘッダが最初に書き込まれる時に既知となる可能性のあるものもあるが、プロセスの後の方まで既知とならない可能性のあるもの、たとえば全長及びヘッダチェックサムもある。ＩＰヘッダを書き込んだ後、データグラムペイロードに符号化ビデオデータ及び符号化音声データを書き込む（ブロック２０８）。符号化方式がＭＰＥＧＩＩである実施形態によれば、符号化ビデオデータを書き込むことには、Ｉフレームと２つの更新フレーム（Ｂフレーム及びＰフレーム）とを書き込むことが含まれる。符号化音声データを符号化ビデオデータとインタリーブする。その後、プロセッサ１０のレジスタ３８の一部を読み出すことによる等、所定時間が満了したか否かを判断する（ブロック２１０）。
【００２７】
図２の例示的な方法において、時間が満了したか否かの判断を何回も行い、各場合において、この判断を、タイマ値を格納するプロセッサ１０内のレジスタ３８の一部を読み出すことによって行ってもよい。タイマ値を保持するレジスタ３８の一部は、ゼロで開始してカウントアップしてもよく、その場合、タイマが所定数に達した時に時間が「満了する」。別法として、タイマ値を保持するレジスタ３８の部分は、所定数で開始してカウントダウンしてもよく、その場合、タイマがゼロに達した時に時間が「満了する」。タイマ値のインクリメント及び／又はデクリメントを、たとえば周期的な割込みプログラムを使用して行ってもよい。代替実施形態では、プロセッサ外部のレジスタ（メモリレジスタのような）を使用して、タイマ値及び／又はバッファ利用率値を格納してもよく、これらの実施形態では、専用ハードウェアによってタイマをインクリメント及び／又はデクリメントしてもよい。他の等価な方法及びシステムを使用してもよい。
【００２８】
本発明のさまざまな実施形態は、音声データ及びビデオデータを少なくとも４０ミリ秒毎に伝送しようと試みることにより、ネットワーク伝送遅延に基づき且つ音声データストリーム及びビデオデータストリームに関連するサービス品質問題を制限する。このため、新たなデータグラムに対するＩＰヘッダを書き込むこと（ブロック２０６）、及びデータグラムペイロードに符号化ビデオデータ及び音声データを書き込むこと（ブロック２０８）に、例示的な４０ミリ秒近くの時間がかかった場合、さらなるデータをインタリーブするために十分な時間がない可能性がある。この場合、例示的な方法の実施形態は、データグラムをシールし、送信の用意ができているものとしてマークする（ブロック２４４）。データグラムをシールするには、ＩＰヘッダの一部を完成させる必要があり、その部分の値は、ＩＰヘッダが高優先バッファに最初に書き込まれた時（ブロック２０６）には既知ではない。データグラムをシールすること（ブロック２４４）が所定時間の満了に基づいたものとし、バッファ利用率を更新する（ブロック２４６）。言い換えれば、新たに書き込まれたヘッダ及びペイロードは、高優先バッファ３４の一定数のセルを占有し、この使用は、プロセッサ１０のレジスタ３８の高優先バッファ利用率値を増大させること等により記される。タイマをリセットし（ブロック２４８）、プロセスは終了する（ブロック２５０）。しかしながら、ほとんどの場合、図２の例示的な方法は即時に再開する。
【００２９】
符号化ビデオデータ及び符号化音声データをデータグラムペイロードに書き込んだ（ブロック２０８）後、所定時間が満了したか否かの判断（ブロック２１０）に戻ると、所定時間が満了しなかったとすると、取引データをデータグラムペイロードに書き込む（ブロック２１２）。本発明の少なくともいくつかの実施形態によれば、取引データは伝送レイヤプロトコルとしてＴＣＰを使用し、ビデオデータ及び音声データは、伝送レイヤプロトコルとしてＵＤＰを使用する。このため、ＩＰデータグラムは、ペイロードとして、ＵＤＰ伝送レイヤプロトコルベースのメッセージとＴＣＰ伝送レイヤプロトコルベースのメッセージとをともに有する。取引データを書き込んだ後、所定時間が満了したか否かを再び判断する（ブロック２１４）。所定時間が満了した場合、例示的なプロセスの実施形態は、データグラムをシールし（ブロック２４４）、バッファ利用率値を更新し（ブロック２４６）、タイマをリセットする（ブロック２４８）。一方、所定時間がまだ満了していない場合（再びブロック２１４）、ＩＰデータグラムペイロードが一杯であるか否かを判断する（ブロック２１６）。ＩＰデータグラムペイロードが一杯でない場合、例示的なプロセスは、データグラムペイロードにさらなる取引データを書き込むこと（ブロック２１２）に戻る。ペイロードが一杯である場合、ＩＰデータグラムをシールし、送信する用意ができているものとしてマークする（ブロック２１８）。
【００３０】
ＩＰデータグラムの最大サイズは６４キロバイトであることが多い。図１の例示的なポータブルコンピューティングデバイス１００が結合するネットワークの帯域幅が比較的広い場合、６４キロバイトの最大ＩＰデータグラムサイズを利用することができる。しかしながら、例示的なポータブルコンピューティングデバイスが結合するネットワークの帯域幅が比較的狭い場合、大きいＩＰデータグラムに関連するネットワーク伝送時間は、４０ミリ秒毎に少なくとも１つのデータグラムを送信することができるためには長すぎる可能性がある。これらの場合、「一杯になる」ペイロードサイズを縮小してもよい。
【００３１】
さらに図２を参照すると、例示的なプロセスのこの時点で、高優先バッファのＩＰデータグラムは一杯であり、シールされ送信する用意ができているものとしてマークされている。しかしながら、所定時間には依然として時間が残っており（ブロック２１４でテストしたように）、このため例示的なプロセスには、低優先の非同期データを送信するためにデータグラムを作成する時間がある。このため、例示的なプロセスの実施形態は、低優先バッファに新たなデータグラムに対するＩＰヘッダを書き込む（ブロック２２０）。この後、低優先バッファのデータグラムのペイロードに非同期データを書き込む（ブロック２２２）。ペイロードデータを書き込んだ後、所定時間が満了したか否かを判断する（ブロック２２４）。所定時間が満了した場合、例示的なプロセスの実施形態は、低優先バッファのデータグラムをシールし、送信する用意ができているものとしてマークする（ブロック２３０）。バッファ利用率値を更新し（ブロック２４６）、タイマをリセットし（ブロック２４８）、例示的なプロセスは終了する（ブロック２５０）。
【００３２】
データグラムペイロードに非同期データを書き込んだ（ブロック２２２）後に時間がまだ満了していなかった場合（ブロック２２４）、データグラムの合計サイズ（同じ所定期間に作成された、高優先バッファのＩＰデータグラム及び低優先バッファのＩＰデータグラムのサイズの合計）が帯域幅閾値に近づいているか否かを判断する（ブロック２２６）。すなわち、上述したように、例示的なポータブルコンピューティングデバイス１００が結合するネットワークの帯域幅は、任意の所定時間、たとえば４０ミリ秒内に限られたバイト数しか伝送することができないようなものである場合があり、そのため、ＩＰデータグラムの合計サイズを制限する必要がある場合がある。合計サイズが帯域幅閾値に近づいていない場合（ブロック２２６）、低優先バッファのＩＰデータグラムのペイロードが一杯であるか否かを判断する（ブロック２２８）。一杯でない場合、例示的なプロセスは、データグラムペイロードにさらなる非同期データを書き込むことに戻る。所定時間が満了すると（ブロック２２４）、合計サイズが帯域幅制限に近づく（ブロック２２６）又はペイロードが一杯である場合（ブロック２２８）、低優先バッファのＩＰデータグラムをシールし送信する用意ができているものとしてマークし（ブロック２３０）、バッファ利用率を更新し（ブロック２４６）、タイマをリセットし（ブロック２４８）、プロセスは終了する（ブロック２５０）。
【００３３】
ここまで考察した例示的な方法の態様は、総バッファ利用率が所定閾値、たとえばおよそ９５％利用率を下回り（ブロック２０２）、且つ高優先バッファ利用率が所定閾値、たとえばおよそ９５％（又は合計バッファ閾値に対して使用するものとは異なる他の何らかの値）を下回る（ブロック２０４）場合に使用する。しかしながら、高優先バッファ利用率が所定閾値を上回る場合（再びブロック２０４）、例示的なプロセスは、少なくとも符号化ビデオデータ及び符号化音声データを含むＩＰデータグラムを生成し続けるが、この場合、低優先バッファにおいてデータグラムを新たに作成する。特に、この場合、新たなデータグラムに対するＩＰヘッダを、低優先バッファに書き込む（ブロック２３２）。その後、データグラムペイロードに、符号化ビデオデータ及び符号化音声データを書き込む（ブロック２３４）。高優先バッファにＩＰデータグラムを構築することに関して考察した例示的なプロセスと同様に、符号化ビデオデータ及び符号化音声データを書き込んだ後、所定時間が満了したか否かを判断する（ブロック２３６）。所定時間が満了した場合、プロセスの実施形態はデータグラムをシールし、送信する用意ができているものとしてマークする（ブロック２４４）。一方、所定時間がまだ満了していなかった場合、ＩＰデータグラムに取引データも投入する（populate）（ブロック２３８）。取引データを書き込んだ後、所定時間が満了したか否かを再び判断する（ブロック２４０）。所定時間が満了した場合、データグラムをシールする（ブロック２４４）。所定時間がまだ満了していなかった場合、低優先順位バッファのＩＰデータグラムのペイロードが一杯であるか否かを判断する（ブロック２４２）。ペイロードが一杯でない場合、例示的なプロセスの実施形態は、データグラムペイロードにさらなる取引データを書き込むことに戻る（再びブロック２３８）。ペイロードが一杯である場合、ＩＰデータグラムをシールし（ブロック２４４）、バッファ利用率値を更新し（ブロック２４６）、タイマをリセットし（ブロック２４８）、プロセスは終了する（ブロック２５０）。このように、高優先バッファ利用率が所定閾値を上回る場合にＩＰデータグラムをビデオデータ及び音声データで構築する場合、低優先バッファにビデオデータ及び音声データを含むＩＰデータグラムを作成し、時間が許せば、それに取引データを含めてもよい。しかしながら、この例示的な場合、低優先の非同期データを送信するためのＩＰデータグラムを作成するようには試みない。
【００３４】
さらに図２（特に図２Ａ）を参照すると、総バッファ利用率（高優先バッファ及び低優先バッファの合計利用率）が所定閾値、たとえばおよそ９５％を上回る場合（ブロック２０２）、例示的なプロセスの実施形態は依然として、符号化音声データ及び符号化ビデオデータを含むＩＰデータグラムを作成するが、ＩＰデータグラムは取引データを含まず、非同期データのためにＩＰデータグラムを作成するように試みない。このため、この場合、新たなデータグラムに対するＩＰヘッダを低優先バッファに書き込み（ブロック２５２）、符号化ビデオデータ及び符号化音声データをデータグラムペイロードに書き込む（ブロック２５４）。その後、データグラムをシールし（ブロック２４４）、バッファ利用率値を更新し（ブロック２４６）、タイマをリセットし（ブロック２４８）、例示的なプロセスは終了する（ブロック２５０）。
【００３５】
このように、バッファ利用率が増大するに従い、作成されるＩＰデータグラムの数は低減し、また各ＩＰデータグラムが有するデータの量も低減する。受信端末におけるサービス品質が伝送遅延によって最も影響を受けるデータのクラスに対し、最高優先順位を与える。言い換えれば、いくつかのＩＰデータグラムが作成された可能性があっても、帯域幅制限及び／又はネットワーク障害のために、バッファ３４及び３６にいくつかのシールされたＩＰデータグラムが残っている場合がある。このため、バッファ利用率が増大するに従い、バッファをオーバフローさせないように、且つ最高優先のデータストリームを移動し続けさせるようにして、ＩＰデータグラムの数、その後はサイズを低減する。
【００３６】
図３は、シールされたＩＰデータグラムを送信しバッファ利用率値を更新するために実施してもよい例示的な方法である。具体的には、プロセスが開始し（ブロック３００）、ネットワークインタフェース、たとえば無線送受信機２８がさらなるＩＰデータグラムを受け入れることができるか否かの判断に進む（ブロック３０２）。無線送受信機がＩＰデータグラムを受け入れることができない場合、プロセスは終了する（ブロック３０８）。一方、無線送受信機がネットワーク伝送のためにさらなるＩＰデータグラムを受け入れることができる場合、例示的な方法は、送受信機に対応するデータグラムを書き込む（ブロック３０４）。すなわち、例示的な方法の実施形態は、符号化ビデオデータ及び符号化音声データを含むシールされたＩＰデータグラムを、バッファのうちの１つから無線送受信機２８に移動させる。符号化ビデオデータ及び符号化音声データを含むＩＰデータグラムが高優先バッファ３４に存在する場合、例示的な方法の実施形態はまた、低優先バッファからの非同期データ（同じ所定時間内に作成された場合）を含む対応するデータグラムを書き込んでもよい。一方、符号化ビデオデータ及び符号化音声データを含む次のＩＰデータグラムが低優先バッファ３６に存在する場合、非同期データを含む対応するＩＰデータグラムは作成されていない。その後、例示的な方法の実施形態はバッファ利用率値を更新する（ブロック３０６）。たとえば、例示的な方法の実施形態は、プロセッサ１０のレジスタ３８の適当な部分から送受信機にコピーされた１つ又は複数のＩＰデータグラムのバイトの数を減じてもよい。その後、プロセスは終了する（ブロック３０８）。
【００３７】
本明細書の説明から、当業者は容易に、説明したように作成されたソフトウェアを適当な汎用コンピュータハードウェア又は専用コンピュータハードウェアと結合することにより、本発明の態様を実施する（embody）コンピュータシステム及び／又はコンピュータサブコンポーネントを作成し、本発明の方法実施形態を実施するコンピュータシステム及び／又はコンピュータサブコンポーネントを作成し、且つ／又はさまざまな実施形態の方法態様を実施するソフトウェアプログラムを格納するコンピュータ読取可能媒体を作成することができる。さらに、例示的な方法の実施形態を、単一プログラム（さまざまなサブルーチンを含む）で合せて実施することができ、又はプロセッサで実行される２つ以上のプログラムに分割することも可能である。このように、特許請求の範囲で「プロセッサは、プログラムを実行して」という複数の場合に言及する場合、それは、複数のサブルーチンを含む単一プログラム、２つ以上の独立したプログラム又はそれらの組合せを指す。
【図面の簡単な説明】
【００３８】
【図１】本発明の実施形態によるポータブルコンピューティングシステムを示す図である。
【図２Ａ】本発明の実施形態による方法を示す図である。
【図２Ｂ】本発明の実施形態による方法を示す図である。
【図３】本発明の実施形態による方法を示す図である。
【符号の説明】
【００３９】
１００・・・ポータブルコンピューティングデバイス
１０・・・プロセッサ
１２・・・メインメモリアレイ
１４・・・ディスプレイ
１６・・・ユーザインタフェース
１８・・・マイクロフォン
２０・・・アナログ／デジタル変換器
２２・・・スピーカ
２４・・・デジタル／アナログ変換器
２８・・・無線送受信機
３０・・・ＣＣＤアレイ
３２・・・バッテリ
【図１】
2006228212.tif 000003
【図２Ａ】
2006228212.tif 000004
【図２Ｂ】
2006228212.tif 000005
【図３】
2006228212.tif 000006