品質及びレート情報に基づいてマルチメディアコンテンツのサイズを変更するための方法及びシステム
【課題】品質及びレート情報に基づいてマルチメディアコンテンツのサイズを変更するための方法及びシステムを提供する。
【解決手段】符号器モジュールは、各々のデータセグメントを品質及びレート情報と関連づけ、少なくとも品質及びレート情報をマルチプレクスモジュールに送る。マルチプレクスモジュールは、符号器モジュールが現在のスーパーフレーム内に含めることを希望するデータセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まるかどうかを決定する。複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないとマルチプレクスモジュールが決定した場合、前記マルチプレクスモジュールは、前記品質及びレート情報に基づいてサイズが変更されるべき前記セグメントを選択する。
【解決手段】符号器モジュールは、各々のデータセグメントを品質及びレート情報と関連づけ、少なくとも品質及びレート情報をマルチプレクスモジュールに送る。マルチプレクスモジュールは、符号器モジュールが現在のスーパーフレーム内に含めることを希望するデータセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まるかどうかを決定する。複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないとマルチプレクスモジュールが決定した場合、前記マルチプレクスモジュールは、前記品質及びレート情報に基づいてサイズが変更されるべき前記セグメントを選択する。
【発明の詳細な説明】
【技術分野】
【0001】
この開示は、マルチメディアの符号化及び復号に関するものである。この開示は、より具体的には、効率的な統計的多重化のためのマルチメディアのサイズ変更に関するものである。
【背景技術】
【0002】
データネットワーク、例えば無線通信ネットワーク、は、単一の端末に関してカスタム化されたサービスと非常に多数の端末に提供されるサービスとの間でいずれかを犠牲にしなければならない。例えば、非常に多数の資源が制限されたポータブルデバイス(加入者)へのマルチメディアコンテンツの配信は、複雑な問題である。従って、ネットワーク管理者、コンテンツ小売業者、及びサービスプロバイダがコンテンツ及び/又はその他のネットワークサービスをネットワーク化されたデバイスにおいて提示することを目的として高速かつ効率的な方法で配信するための方法を有することが非常に重要である。
【0003】
コンテンツ配送/メディア配信システムは、リアルタイム及び非リアルタイムのサービスを送信フレーム内にパッキングすること及びそのフレームをネットワーク上のデバイスに配送することができる。例えば、通信ネットワークは、ネットワークサーバーと1つ以上のモバイルデバイスとの間において通信を提供するために直交周波数分割多重(OFDM)を利用することができる。この技術は、配信ネットワークを通じて配送及び送信する対象となるサービスがパッキングされたデータスロットを有する送信フレームを提供する。
【発明の概要】
【0004】
一般的には、この開示は、複数の符号器モジュールからのデータセグメントを向上された品質を有する状態で結合するために前記複数の符号器モジュールとマルチプレクスモジュールとの間で情報を交換するための技法を説明する。特に、前記符号器モジュールは、各々のデータセグメントを品質及びレート情報、例えば品質−レート曲線及び/又は品質−レートテーブル、と関連づける。前記符号器モジュールは、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を前記マルチプレクスモジュールに送る。
【0005】
前記マルチプレクスモジュールは、少なくとも前記品質及びレート情報を解析して前記符号器モジュールが送信することを希望するデータセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まる(fit)かどうかを決定する。前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないと前記マルチプレクスモジュールが決定した場合は、前記マルチプレクスモジュールは、前記符号器モジュールから受け取られた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記セグメントのうちの1つ以上を選択する。マルチプレクスモジュールは、前記選択されたデータセグメントと関連づけられた前記符号器モジュールが前記縮小されたビット割り当てに従って前記データセグメントのサイズを変更するように要求する。
【0006】
一側面においては、デジタルマルチメディアデータの流れを結合するための方法は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取ることと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択することと、前記複数のセグメントに関して前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求すること、とを備える。
【0007】
他の側面においては、デジタルマルチメディアデータの流れを結合するための装置は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るデータ収集モジュールと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定する割り当てモジュールと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求する選択モジュールと、を備える。
【0008】
さらなる側面においては、デジタルマルチメディアデータの流れを結合するための装置は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るための手段と、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するための手段と、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択するための手段と、前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求するための手段と、を備える。
【0009】
他の側面においては、デジタル映像データを処理するためのプロセッサは、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取り、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求するように適合化される。
【0010】
ここにおいて説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はその組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、これらの技法は、プロセッサによって実行されたときにここにおいて説明される方法のうちの1つ以上を実行する命令を備えるコンピュータによって読み取り可能な媒体によって全体又は一部を実現することができる。従って、この開示は、デジタル映像データを処理するためのコンピュータプログラム製品も企図し、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受信することを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備え、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求する。
【0011】
さらに他の側面においては、デジタルマルチメディアデータの流れを符号化するための方法は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけることと、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送信すること、とを備える。
【0012】
他の側面においては、デジタルマルチメディアデータの流れを符号化するための装置は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるコンテンツ分類モジュールと、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る符号化モジュールと、を備える。
【0013】
他の側面においては、デジタルマルチメディアデータの流れを符号化するための装置は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるための手段と、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るための手段と、を備える。
【0014】
他の側面においては、デジタル映像データを処理するためのプロセッサは、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけ及び前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るように適合化される。
【0015】
他の側面においては、デジタル映像データを処理するためのコンピュータプログラム製品は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけること及び前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ることを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える。
【0016】
1つ以上の側面の詳細が添付図面及び以下の説明において示される。その他の特徴、目的、及び利点が、これらの説明及び図面から、及び請求項から明らかになるであろう。
【図面の簡単な説明】
【0017】
【図1】典型的多重化システムを備えるネットワークを示した図である。
【図2】マルチプレクサシステムにおいて用いるための典型的サーバーを示した図である。
【図3】多重化システムにおいて用いるためのMLCのスロット割り当てを例示する典型的フレームを示した図である。
【図4】多重化システムにおいて用いるための様々なMLC割り当て形状を備える典型的フレームを示した図である。
【図5】選択されたMLC割り当てに関する送信モードパラメータと最大スロット高値との間の関係を示すテーブルである。
【図6】多重化システムにおいて用いるための異なるMLCスロット割り当てを例示する典型的フレームを示した図である。
【図7】多重化システムにおいて用いられる典型的割り当てアルゴリズムを提供する方法を示した図である。
【図8】多重化システムにおいて用いるための第1の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図9】多重化システムにおいて用いるための第2の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図10】余分の4つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図11】多重化システムにおいて用いるための第3の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図12】余分の3つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図13】多重化システムにおいて用いるための第4の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図14】余分の6つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図15】多重化システムにおいて用いるために2つのRTサービスを送信フレーム内にパッキングするための典型的割り当てアルゴリズムの動作を例示するフレームを示した図である。
【図16】未使用スロットが2つのエリア内にグループ分けされるような形でRTサービスをパッキングするための典型的割り当てアルゴリズムの動作を例示するフレームを示した図である。
【図17】多重化システムにおいて用いるためにRTサービス及びORTサービスに関する領域に分割される典型的フレームを示した図である。
【図18】ORTサービス領域が異なる高さのブロックに分割される典型的フレームを示した図である。
【図19】多重化システムにおいて用いるためのORTサービスにスロットを割り当てるための典型的方法を示した図である。
【図20】多重化システムにおいて用いるためのスロット割り当て、サイズ変更及び混雑の制御を提供するための典型的方法を示した図である。
【図21】多重化システムにおいて用いるためのリアルタイムサービスのサイズ変更を提供するための典型的方法を示した図である。
【図22】多重化システムにおいて用いるための混雑制御を提供するための典型的方法を示した図である。
【図23】典型的多重化システムを示した図である。
【図24】ここにおいて説明される技法によるマルチメディアデータを符号化する典型的マルチメディア符号化デバイスを例示するブロック図である。
【図25】ここにおいて説明される技法によるマルチメディアデータを符号化する典型的マルチメディア符号化デバイスを例示するブロック図である。
【図26】この開示の技法により機能する典型的符号器モジュールを例示するブロック図である。
【図27】この開示の技法によるビット割り当てを管理する典型的マルチプレックスモジュールを例示するブロック図である。
【図28】この開示の技法によるマルチメディアデータを符号化する符号器モジュールの典型的動作を例示する流れ図である。
【図29】この開示の技法によるビット割り当てを管理するマルチプレクスモジュールの典型的動作の流れ図である。
【図30】データセグメントと関連づけられた品質−レートテーブルを用いてサイズが変更されるべきデータセグメントを選択するマルチプレクスモジュールの典型的動作を例示する流れ図である。
【発明を実施するための形態】
【0018】
この開示の1つ以上の側面において、コンテンツ流をデータネットワークにおける送信のために多重化して送信フレームに入れるために動作する多重化システムが提供される。例えば、多重化されたコンテンツ流は、デバイスに送信するためのリアルタイム及び/又は非リアルタイムサービスの特定の配置、シーケンス、結合、及び/又は選択を備える。システムは、無線ネットワーク環境において用いるのに特に適するが、あらゆるタイプのネットワーク環境において用いることができ、限定されることなしに、通信ネットワーク、公共ネットワーク、例えばインターネット、プライベートネットワーク、例えば仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、又はその他のタイプのデータネットワークを含む。
【0019】
この説明の目的上、ここにおいては、多重化システムの1つ以上の側面が、ネットワークサーバーと1つ以上のモバイルデバイスとの間で通信を提供するために直交周波数分割多重(OFDM)を利用する通信ネットワークを参照しながら説明される。例えば、OFDMシステムにおいては、時分割多重(TDM)パイロット信号と、周波数分割多重(FDM)パイロット信号と、オーバーヘッド情報シンボル(OIS)と、データシンボルとを備えるスーパーフレームが定義される。データスロットは、1つのOFDMシンボル時間にわたって生じる一組のデータシンボルを含む。一例として、データスロットは、一組の500のデータシンボルを含むことができる。さらに、スーパーフレームにおけるOFDMシンボル時間は、複数のデータスロット、例えば7つのスロット、を搬送することができる。
【0020】
ここにおいては、多重化システムの1つ以上の側面を説明するために以下の定義が用いられる。
【0021】
流れ サービスの1つの要素であり、例えば、サービスは、2つの流れ−音声の流れ及び映像の流れ、を有することができる。
【0022】
サービス 1つ以上の流れを有することができるメディアコンテンツ
MLC データ又は制御情報に関して用いられるメディア論理チャネル(“チャネル”)
サイズ変更 送信のために要求される帯域幅を小さくするためにサービスのサイズが変更される手順
オーバーヘッド情報シンボル(OIS)
スーパーフレーム内における様々なMLCの位置に関する情報を搬送する該スーパーフレーム内のシンボル
スロット OFDMシンボルを通じてMLCに割り当てられる帯域幅の最小単位
図1は、マルチメディア符号化及び復号システム100を示す。システム100は、マルチメディア符号化デバイス、例えばサーバー104と、マルチメディア復号デバイス、例えばモバイルデバイス102と、データネットワーク106と、を備える。この説明の目的上、データネットワーク106は、OFDM技術を用いる1つ以上のポータブルデバイスと通信するために動作すると仮定されるが、マルチプレクサシステムは、その他の送信技術、例えば様々な無線アクセス技術、例えば、グローバル移動体通信システム(GSM(登録商標))、CDMA2000、広帯域CDMA(W−CDMA)、CDMA1xEV−DO、又は様々なIEEE801.11x基準によって定義される無線ネットワーク化を容易にするために開発された基準の広範な系統、とともに用いるのに適する。
【0023】
一側面においては、サーバー104は、ネットワーク106と通信中の1つ以上のデバイス、例えばモバイルデバイス102、に対してサービスを提供するために動作する。例えば、デバイスは、サーバー104によって提供されるサービスを受ける契約をすることができる。サーバー104は、通信リンク108を通じてネットワーク106に結合される。通信リンク108は、あらゆる適切な通信リンク、例えばサーバー104がネットワーク106と通信するのを可能にするために動作する有線及び/又は無線リンク、を備える。ネットワーク106は、サーバー104からネットワーク106と通信中のデバイス、例えばデバイス102、にサービスが配送されるのを可能にする有線及び/又は無線ネットワークの組み合わせを備える。
【0024】
ネットワーク106は、この開示の適用範囲内にあるあらゆる数の及び/又は型のポータブルデバイスと通信できることが注目されるべきである。単純化することを目的として図1には単一のマルチメディア復号デバイス18が示される。例えば、マルチプレクサシステムにおいて用いるのに適したその他のデバイスは、限定されることなしに、パーソナルデジタルアシスタント(PDA)と、電子メールデバイスと、ページャと、ノート型又はラップトップ型コンピュータと、デスクトップコンピュータデジタル音楽及び映像デバイス、例えばmp3プレーヤー及び商標“iPod”の名称で販売されるプレーヤーと、ラジオテレフォン、例えばセルラー、衛星又は地上に基づくラジオテレフォンと、を含む。無線リンク110は、OFDM技術に基づく無線通信リンクを備える。しかしながら、無線リンクは、デバイスがネットワーク106と通信するのを可能にするために動作するあらゆる適切な無線技術を備えることができる。
【0025】
図1に示されるデバイス102は、無線リンク110を通じてネットワーク106と通信する携帯電話を備える。幾つかの場合においては、デバイス102は、デバイス102がネットワーク106を通じてサービスを受け取る契約をするのを可能にするアクティブ化プロセスに参加する。アクティブ化プロセスは、サーバー104によって行うことができる。しかしながら、アクティブ化プロセスは、他のサーバー、サービスプロバイダ、コンテンツ小売業者、又はその他のネットワークエンティティによって行うこともできる。この説明の目的上、デバイス102は、サーバー104によるアクティブ化プロセスを行い、現在はサーバー104と契約してサービスを受け取ることが可能な状態にあると仮定される。図1に示される例は、サービス契約をする観点で説明される一方で、デバイス102は、加入契約を要求しないネットワーク106を介してサービスを受け取ることができる。
【0026】
サーバー104は、1つ以上のリアルタイム(RT)サービス112を含むコンテンツを備える又は該コンテンツへのアクセス権を有するリアルタイムメディアサーバー(RTMS)126と通信する。サーバー104は、1つ以上のリアルタイム以外の(ORT)又は非リアルタイムの(NRT)サービス120を備える又は該サービスへのアクセス権を有する非リアルタイムメディアサーバー(NRTMS)128と通信することもできる。例えば、サービス(112、120)は、ニュース、スポーツ、天候、金融情報、映画、及び/又はアプリケーション、番組、脚本、又はその他のあらゆるタイプの適切なコンテンツ又はサービスを含むマルチメディアコンテンツを備える。従って、サービス(112、120)は、あらゆる適切なフォーマットでフォーマット化された映像、音声又はその他の情報を備えることができる。サーバー104は、RT及び/又はORTサービスを備えるか又は該サービスへのアクセス権を有する1つ以上のその他のメディアサーバーと通信できることも注目されるべきである。サービス(112、120)は、帯域幅、品質及びレート情報、優先度、レーテンシー、サービスのタイプを含むがこれらに限定されない関連づけられた配送要求事項、及び/又はその他のあらゆるタイプの配送要求事項を有する。
【0027】
サーバー104は、配送要求事項に基づいてサービス(112、120)のうちの1つ以上を効率的に多重化して送信フレーム122に入れるために動作するマルチプレクサ(MUX)114も備える。サーバー104は、経路118によって示されるように、ネットワーク106を通じて送信フレームをデバイス102に送信する。MUX114のより詳細な説明がこの文書の他の箇所において示される。MUX104の動作の結果、サービス(112、120)は、最適な形で送信フレーム122内にパッキングされ、従って、サービス(112、120)の配送要求事項(帯域幅、優先度、レーテンシー、サービスのタイプ、等)が満たされ、送信フレーム122の送信帯域幅が効率的に利用され、受信デバイス102における電力が節約される。例えば、利用可能な帯域幅を効率的に利用することによって、モバイルデバイスは、送信されたサービスを短時間で受信し、それによって電池電力を節約することができる。
【0028】
MUX114は、RTサービス112及び/又はORTサービス120のサイズがどのように変更されるかを制御するために動作するサイズ変更コントローラ116を備えることができる。例えば、多重化して送信フレーム122に入れる対象として選択されたRTサービス112が送信フレーム122の利用可能な帯域幅内にぴったり納まらない場合は、サイズ変更コントローラ116が動作し、要求される帯域幅を縮小するためにこれらのサービスのサイズ変更(再符号化)方法を制御する。ここにおいて詳細に説明されるように、サイズ変更コントローラ116は、RTサービスと関連づけられた品質及びレート情報を解析していずれのRTサービスのサイズを変更すべきかを決定し、RTMS126と通信して選択されたRTサービスの選択されたサイズ変更を要求することができる。サイズ変更コントローラ116は、同様に動作し、NRTMS128と通信して選択されたORTサービス120のサイズ変更方法を制御する。サイズ変更コントローラ116の動作の結果、サイズが変更されたRT及びORTサービスは、送信フレーム122の利用可能な帯域幅内にぴったり納まる。サイズ変更コントローラ116のより詳細な説明がこの文書の他の箇所において示される。
【0029】
デバイス102は、送信フレーム122の多重化を解除して送信されたサービス(112、120)を得るために動作するデマルチプレクサ(DE−MUX)論理124を備えることができる。サービスは、効率的に多重化されて送信フレーム122内に入れられているため、ネットワーク帯域幅が節約され、デバイス102は、送信されたサービスを受信するためにより少ない電力を利用する。
【0030】
従って、多重化システムは、以下の機能のうちの1つ以上を実行してRT及びORTサービスを効率的に多重化して送信フレームに入れるために動作する。
【0031】
1.ネットワークを通じての送信のために1つ以上のRT及び/又はORTサービスを受信するか又は該サービスへのアクセス権を取得する
2.RT及び/又はORTサービスが送信フレームの利用可能な帯域幅内にぴったり納まるかどうか決定する。
【0032】
3.RT及び/又はORTサービスが送信フレーム内にぴったり納まらない場合は、1つ以上の選択されたRT及び/又はORTサービスのサイズを変更して帯域幅要求を軽減する
4.割り当てアルゴリズムを利用し、送信フレームを原及び/又はサイズが変更されたRTサービス、及び原及び/又はサイズが変更されたORTサービスとともに組み立て、そのフレームが効率的にパッキングされるようにする。
【0033】
5.ネットワークを通じて送信フレームを1つ以上の受信デバイスに送信する
従って、多重化システムは、1つ以上のRT及び/又はORTサービスを効率的に多重化してデータネットワーク上のデバイスに送信するために動作する。多重化システムは、図1を参照して説明される実装に制限されないこと及びその他の実装がこの開示の適用範囲内において可能であることが注目されるべきである。
【0034】
図2は、多重化システムにおいて用いるための典型的サーバー200を示す。例えば、サーバー200は、図1におけるサーバー104として用いることができる。サーバー200は、処理論理202と、メモリ204と、トランシーバ論理206と、を備え、すべてデータバス208に結合される。サーバー200は、マルチプレクサ(MUX)論理210と、サイズ変更コントローラ212とも備え、これらもデータバス208に結合される。サーバー200は、単なる1つの実装を表すこと及びその他の実装もこの開示の適用範囲内において可能であることが注目されるべきである。
【0035】
処理論理202は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、及び/又はハードウェアとソフトウェアの組み合わせを備えることができる。従って、処理論理202は、一般的には、機械によって読み取り可能な命令を実行し及びデータバス208を介してサーバー200の1つ以上のその他の機能的要素を制御するための論理を備える。
【0036】
トランシーバ論理206は、サーバー200が通信チャネル214を通じて遠隔デバイス又はシステムとデータ及び/又はその他の情報を送信及び受信するのを可能にするために動作するハードウェア及び/又はソフトウェアを備える。例えば、通信チャネル214は、サーバー200がその他のサーバーと直接又は1つ以上のデータネットワーク及び/又はこれらのデータネットワークに結合されたデバイスと通信するのを可能にするためのあらゆる適切な型の無線又は有線通信リンク、又はその組み合わせを備えることができる。
【0037】
メモリ204は、サーバー200が情報パラメータを格納するのを可能にするあらゆる適切な型の記憶デバイス又は要素を備える。例えば、メモリ204は、あらゆる型のランダムアクセスメモリ(RAM)、フラッシュメモリ、ハードディスク、又はその他の型の記憶デバイスを備えることができる。
【0038】
処理論理202は、トランシーバ論理206及びチャネル214を通じて1つ以上のコンテンツプロバイダと通信するために動作することができる。処理論理202は、RTサービス216を受信するためにRTMSと通信し、ORTサービス218を受信するためにNRTMSと通信する。例えば、RTサービス216及びORTサービス218は、ネットワーク上のデバイスに配送されるべき1つ以上のコンテンツ流を備える。さらに、RT216及びORT218サービスは、限定されることなしに、品質及びレート情報、帯域幅、優先度、レーテンシー、サービスのタイプを含む関連づけられた配送要求事項、及び/又はその他のタイプの配送要求事項を有する。この開示の一側面においては、処理論理202は、送信フレーム122内に含められるべきRTサービス216のサイズをモニタリングし及びサイズが変更されるべきRTサービス216のうちの1つ以上を選択するのを援助するためにRTサービス216と関連づけられた少なくとも品質及びレート情報を受け取る。さらに、処理論理202が送信フレーム内にORTサービス218を含めている場合は、処理論理202は、送信フレーム122内に含められるべきORTサービスのサイズをモニタリングするためにORTサービス218と関連づけられた配送要求事項、例えば優先度及びレーテンシー情報、を受け取ることができる。
【0039】
MUX論理210は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、ファームウェア及び/又はハードウェア、ソフトウェア及びファームウェアの組み合わせを備えることができる。MUX論理210は、トランシーバ論理206及びチャネル214を用いてデバイスに送信するために配送要求事項に基づいてRTサービス216及び/又はORTサービス218のうちの1つ以上を多重化して送信フレームに入れるために動作する。例えば、MUX論理210は、選択されたORTサービス218、RTサービス216、及びベストエフォートサービス(示されていない)が(配送要求事項に関して)送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定するために動作する。一側面においては、MUX論理210は、RTサービス216、ORTサービス218及びベストエフォートサービス(示されていない)と関連づけられた配送要求事項を解析してサービス216、218が送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定する。例えばRTサービス216に関して、MUX論理210は、RTサービス216の各々と関連づけられた少なくとも品質及びレート情報を解析してRTサービス216が送信フレームの利用可能な帯域幅内又は少なくとも送信フレームのうちのRT216を送信するための部分にぴったり納まるかどうかを決定することができる。同様に、ORTサービス218に関して、MUX論理210は、その他の配送要求事項、例えば優先度及びレーテンシー要求事項、を解析してRTサービス216が送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定することができる。例えば、ベストエフォートサービスは、送信する必要があるあらゆるタイプのデータ又は情報を備える。上記の流れが利用可能な帯域幅内にぴったり納まる場合は、MUX論理210は、ここにおいて説明される1つ以上の割り当てアルゴリズムに従ってこれらの流れを送信フレーム内にパッキングするために動作する。
【0040】
選択されたRTサービス216及び/又はORTサービス218が送信フレーム内にぴったり合わない場合は、MUX論理210は、サイズ変更コントローラ212にシグナリングする。サイズ変更コントローラ212は、これらのサービスが送信フレームの利用可能な帯域幅内にぴったり納まるためにどのようにサイズ変更されるかを制御するために動作する。この開示の一側面においては、サイズ変更コントローラ212は、サービスと関連づけられた配送要求事項を解析してサイズが変更されるべきサービス216、218のうちの1つ以上を選択する。例えば、サイズ変更コントローラ212は、RTサービス216と関連づけられた少なくとも品質及びレート情報及びORTサービス218と関連づけられた優先度及びレーテンシー要求事項を解析してサイズが変更されるべきサービスを選択することができる。この方法により、サイズ変更コントローラ212は、特定のサービスが送信帯域幅要求を軽減するためにどの程度の“サイズ変更”が必要であるかを決定するために動作する。サイズ変更コントローラ212は、そのサービスと関連づけられたメディアサーバーに送信されるサイズ変更要求を組み立てる。例えば、サイズ変更要求は、通信リンク214を用いてトランシーバ論理206によって送信される。これで、メディアサーバーが動作し、ここにおいて説明される技法により要求に応じてサービスのサイズを変更する。サービスのサイズが変更されて帯域幅要求が軽減された後は、MUX論理210は、原サービス及びサイズが変更されたサービスを送信フレーム内に効率的にパッキングすることができる。MUX論理210によって提供される割り当てアルゴリズムのより詳細な説明がこの文書の他の箇所において示される。
【0041】
サイズ変更コントローラ212は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、及び/又はハードウェアとソフトウェアの組み合わせを備えることができる。サイズ変更コントローラ212は、RTサービス216及びORTサービス218の流れのうちの1つ以上が送信フレームの利用可能な帯域幅内にぴったり納まるようにするためにサービスと関連づけられた配送要求事項に基づいてこれらの流れのサイズをどのように変更するかを制御するために動作する。従って、サイズ変更コントローラ212は、関連づけられた配送要求事項を調整するために1つ以上のサービスのサイズを変更するために動作する。例えば、サービスは、そのサービスを送信するための十分な帯域幅が存在しないときにはサイズを縮小して帯域幅要求が軽減されるようにし、余分の(excess)利用可能な帯域幅が存在するときにはサイズを拡大して帯域幅要求を大きくすることができる。サイズ変更コントローラ212は、MUX論理210の一部であることができる。サイズ変更コントローラ212のより詳細な説明がこの文書の他の箇所において示される。
【0042】
多重化システムは、コンピュータによって読み取り可能な媒体上に格納され、少なくとも1つのプロセッサ、例えば処理論理202、によって実行されたときにここにおいて説明される多重化システムの機能を提供する1つ以上のプログラム命令(“命令”)を有するコンピュータプログラムを備えることができる。例えば、命令は、コンピュータによって読み取り可能な媒体、例えばフロッピー(登録商標)ディスク、CDROM、メモリカード、FLASHメモリデバイス、RAM、ROM、又はサーバー200とインタフェースするその他の型のメモリデバイス又はコンピュータによって読み取り可能な媒体、からサーバー200内にローディングすることができる。代替として、これらの命令は、トランシーバ論理206を通じてサーバー200とインタフェースする外部デバイス又はネットワーク資源からサーバー200内にダウンロードすることができる。これらの命令は、処理論理202によって実行されときに、ここにおいて説明される多重化システムの1つ以上の側面を提供する。
【0043】
従って、サーバー200は、ネットワーク上のデバイスに送信するためにRTサービス216及びORTサービス218と関連づけられた流れを効率的に多重化して送信フレームに入れるために動作する。
【0044】
送信フレームスロット割り当てアルゴリズム
以下の説明は、多重化システムにおいて用いるためのスロット割り当てアルゴリズムを説明する。スロット割り当てアルゴリズムは、送信フレーム内のスロットを利用可能なRT及びORTサービスと関連づけられたコンテンツ流に割り当てるために動作することができる。割り当てアルゴリズムは、効率的な帯域幅の利用を達成しそれによって受信デバイスが電力を節約するのを可能にするために動作する。割り当てアルゴリズムは、MUX論理210によって及び/又はMUX論理210の制御下で実行することができる。
【0045】
この説明の目的上、送信フレームは、これ以降においてはスーパーフレームと呼ばれる。スーパーフレームは、単なる1つの実装であるにすぎないこと及び多重化システムはその他のタイプの送信フレーム実装とともに用いるのに適することが注目されるべきである。
【0046】
スーパーフレームは、例えば、帯域幅割り当てのために利用されるデータシンボル部分を備えることができる。スーパーフレームのデータシンボル部分は、これ以降においては“フレーム”と呼ばれる4つの等しい部分に分割することができる。送信されるサービスからのデータは、一側面においてはリード・ソロモン(RS)ブロック内にあり、4つのフレームにわたって均等に分散される。従って、スーパーフレーム全体におけるスロット割り当てアルゴリズムの動作は、フレーム全体におけるスロット割り当てアルゴリズムの動作の繰り返しである。従って、以下の説明は、フレーム全体におけるスロット割り当てを説明するが、スーパーフレーム全体に対しても等しく当てはまる。さらに、説明されるスロット割り当てアルゴリズムは、限定されることなしに、リアルタイムサービスと、非リアルタイムサービスと、IPデータキャストとを含むあらゆるタイプのデータに関してスロットを割り当てるために用いることができる。
【0047】
チャネル割り当て
1つ以上の側面において、メディア論理チャネル(MLC)は、同じサービスの1つ以上の流れを搬送する。従って、すべてのサービスは、OISにおいて記述されるフレーム内の位置に所在する1つ以上のMLCを有することができる。特定のMLCを受信することを希望するデバイスは、そのMLCの位置をOISから入手する。フレーム内におけるMLCの位置は、OISにおいては下記を用いて記述されている。
【0048】
−開始シンボル
−開始スロット
−最低スロット
−最高スロット
−総スロット
図3は、多重化システムにおいて用いるためのMLCのスロット割り当てを例示するフレーム300の例を示す。フレーム300は、7つのスロットの各々に関して“N”のOFDMシンボルを備える。MLCのスロット割り当ては、302において一般的に示される陰影付き領域である。スロット割り当てを記述するために2つの変数、すなわち、長さ及び高さ、が用いられる。単位は、長さがOFDMシンボルであり、高さがスロットである。
【0049】
割り当て形状
図4は、多重化システムにおいて用いるための様々なMLC割り当て形状を備えるフレーム400の例を示す。例えば、MLC割り当ては、402、404、406、及び408において一般的に示される陰影付き領域である。一例においては、割り当て形状は、固定された限られた数のデータフィールドを用いてフレーム400のOISにおいて記述することができるような割り当て形状が選択される。
【0050】
割り当ての高さ
図5は、選択されたMLC割り当てに関する送信モードパラメータと最大スロット高値との間の関係を例示するテーブル500を示す。受信デバイスにおけるターボ復号器のピーク出力レートが、単一のOFDMシンボルにおいて復号できるターボパケット数を制限する。その結果、MLC割り当ての高さを制約することができる。所定の送信モードに関するMLC割り当ての最大スロット高を表すために最大スロット高さと呼ばれる変数(“maxSlotHeight”)が用いられる。例えば、テーブル500から、(4)の送信モードは、(3)のmaxSlotHeightを有するMLC割り当てをサポートし、(1)の送信モードは(7)のmaxSlotHeightを有するMLC割り当てをサポートする。
【0051】
割り当てアルゴリズム
一側面においては、選択されたサービスの全MLCがグループに分けられ、このためその割り当てはフレーム内において一時的に隣接する。これは、受信デバイスがサービスの異なるMLCを受信するために“ウェークアップする”必要がある回数を少なくする。従って、受信デバイスの電力消費量が低減されるか又は節約される。
【0052】
受信デバイスの電力消費量に関して、MLC割り当ての高さはmaxSlotHeightであることが好ましい。これは、デバイスがそのMLCを受信する上で可能な“オンタイム”を最小にする。しかしながら、パッキングを容易にするため、サービスのすべてのグループ分けされたMLCに同じ高さが割り当てられる。従って、“サービスのmaxSlotHeight”の概念は、そのサービスに関してグループ分けされた全MLCのmaxSlotHeightパラメータの最低又は最小のパラメータであると定義される。この説明の残りの部分に関して、サービスの高さは、そのサービスのすべてのMLC割り当ての共通の高さを意味する。
【0053】
図6は、多重化システムにおいて用いるための異なるMLCスロット割り当てを例示するフレーム600の例を示す。フレーム600は、異なる高さのブロックを有するMLC割り当てに分割される。一例においては、ブロックの高さは、サービスがとることができる可能なmaxSlotHeightに対応する。図5に示されるテーブル500から、4つの可能なmaxSlotHeight(すなわち、3、4、6、又は7)が存在すると決定することができる。一例においては、スロット割り当てアルゴリズムは、maxSlotHeightパラメータに基づいてサービスを異なるブロック割り当てにパッキングするために動作する。例えば、可能なmaxSlotHeight(すなわち、3、4、6、又は7)に基づく割り当てが602、604、606、及び607においてそれぞれ示される。
【0054】
割り当てアルゴリズム動作
以下は、多重化システムにおいて用いるための典型的割り当てアルゴリズムの説明である。MUX論理210は、後述される機能を実行するために割り当てアルゴリズムを実装するために動作することができる。
【0055】
割り当てアルゴリズムへの入力は以下の通りである。
【0056】
1.サービスの各チャネルがフレームに関して有するデータスロット数。
【0057】
2.サービスの各チャネルのmaxSlotHeightであり、そのチャネルの送信モードによって決定される。
【0058】
アルゴリズムの出力は以下の通りである。
【0059】
1.パッキングが可能であるかどうかを示す決定。パッキングが可能である場合は、アルゴリズムは、MLC割り当ての位置を与える。
【0060】
2.パッキングが可能でない場合は、スロット割り当てアルゴリズムは、サービスのサイズ変更をサイズ変更コントローラ212に依頼する.一側面においては、サイズ変更コントローラ212は、いずれのサービスに関して及びどのようなレートでサイズを変更すべきかを決定する。サイズ変更コントローラ212の動作の説明がこの文書の他の箇所において示される。
【0061】
図7は、多重化システムにおいて用いるための割り当てアルゴリズムを提供するための典型的方法700を示す。例えば、方法700は、1つ以上のRTサービスにスロットを割り当てるために動作する。一側面においては、MUX論理210は、後述されるように方法700の機能を提供するために動作する。
【0062】
ブロック702において、多重化してフレームに入れるためにすべてのRTサービスによって要求される総スロット数が利用可能なスロット数よりも多いかどうかを決定するための試験が行われる。例えば、MUX論理210がこの決定を行う。一側面においては、利用可能なスロット数は、“フレーム当たりのスロット数”(numOfdmSymbolsPerFrm)の7倍の値を有する。要求されるスロット数が利用可能なスロットよりも多い場合は、方法はブロック718に進む。要求されるスロット数が利用可能なスロット数以下である場合は、方法はブロック704に進む。
【0063】
ブロック718において、パックの失敗が決定される。例えば、一側面においては、MUX論理210が、サービスをパックする上での十分な利用可能スロットが存在しないと決定し、方法がブロック716において終了する。
【0064】
ブロック704において、各RTサービスに関するmaxSlotHeightパラメータが計算される。例えば、一側面においては、MUX論理210が動作してこの計算を行う。maxSlotHeightは、各RTサービスに関して許容可能なシンボル当たりの最大スロット数を示す。
【0065】
ブロック706において、多重化されるべきRTサービスは、maxSlotHeightパラメータに基づいて、“3つのブロックサービス”(threeBlkSrvcs)、“4つのブロックサービス”(fourBlkSrvcs)、
“6つのブロックサービス”(sixBlkSrvcs)、及び“7つのブロックサービス”(sevenBlkSrvcs)にグループ分けされる。一側面においては、MUX論理210は、スロット要求事項によってサービスをグループ分けするために動作する。
【0066】
ブロック708において、各グループ内のRTサービスは、データスロット数の降順でソートされる。例えば、RTサービスは、要求されるデータスロットに関して最多から最少に向かって順にソートされる。
【0067】
ブロック710において、長さ変数L7、L6、L4及びL3が計算される。例えば、sevenBlkSrvcsの長さは“L7”であり、sixBlkSrvcsの長さは“L6”であり、fourBlkSrvcsの長さは“L4”であり、threeBlkSrvcsの長さは“L3”である。例えば、すべてのsevenBlkSrvcsの長さは以下のように定義される。
【0068】
L7=ceil(すべてのsevenBlkSrvcsの総データスロット数/7)
ここで、ceil(x)は、xよりも大きい最小の整数である。一側面においては、MUX論理210は、長さパラメータ(L7、L6、L4及びL3)を計算するために動作する。
【0069】
ブロック712において、1つ以上の不等式検査が行われる。例えば、以下の不等式が検査されて各々が真であるか又は偽であるかを決定する。
【0070】
L7+L3+L6≦numOfdmSymbolsPerFrm
(1)
L7+L4+L6≦numOfdmSymbolsPerFrm
(2)
上記の不等方程式の結果、4つの不等式条件が決定される。第1の不等式(1)は、以降においては(1T、1F)と呼ばれる真及び偽の結果を有する。第2の不等式(2)は、以降においては(2T、2F)と呼ばれる真及び偽の結果を有する。以上のように、上記の2つの不等式は、多重化システムの1つ以上の側面に従ってスロットを割り当てるために用いられる4つの不等式条件(すなわち、1T2T、1T2F、1F2T、1F2F)を提供する。
【0071】
ブロック714において、4つの不等式条件のうちの1つに基づいてRTサービスに対してスロットが割り当てられる。例えば、ブロック712において行われた不等式検査の結果は、RTサービスにスロットを割り当てるために用いられる。4つの条件の各々は、この文書の以下の節において説明される割り当て方法において説明されるように割り当てを決定する。
【0072】
方法700は、単なる1つの実装を表すにすぎず、方法700の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0073】
図8は、多重化システムにおいて用いるための第1の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法800を示す。例えば、方法800は、(1T2T)によって説明される第1の不等式条件と関連づけられたスロット割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法800の機能を提供するために動作する。
【0074】
ブロック802において、第1の不等式条件の状態が真(すなわち、1T)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Tでない場合は、方法はブロック804に進む。第1の不等式(1)の状態が1Tである場合は、方法はブロック806に進む。
【0075】
ブロック804において、方法は、第2の不等式条件の試験に進む。例えば、第1の不等式(1)の状態が1Tでないため、方法は、方法900に進んで第2の不等式条件(1T2F)を試験する。
【0076】
ブロック806において、第2の不等式(2)の状態が真(すなわち、2T)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Tでない場合は、方法はブロック804に進む。第2の不等式(2)の状態が2Tである場合は、方法はブロック808に進む。
【0077】
ブロック808において、方法は最終動作に進む。両方の状態(1T2T)が存在するため、方法は最終動作(後述)に進んでスロット割り当てを完了される。
【0078】
方法800は、単なる1つの実装を表すにすぎず、方法800の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0079】
図9は、多重化システムにおいて用いるための第2の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法900を示す。例えば、方法900は、(1T2F)によって説明される第2の不等式条件と関連づけられたスロット割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法900の機能を提供するために動作する。
【0080】
ブロック902において、第1の不等式(1)の状態が真(すなわち、1T)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Tでない場合は、方法はブロック904に進む。第1の不等式(1)の状態が1Tである場合は、方法はブロック906に進む。
【0081】
ブロック904において、方法は、第3の不等式条件の試験に進む。例えば、第1の不等式(1)の状態は1Tでないため、方法は方法1100に進んで第3の不等式条件(1F2T)を試験する。
【0082】
ブロック906において、第2の不等式(2)の状態が偽(すなわち、2F)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Fでない場合は、方法はブロック904に進む。第2の不等式(2)の状態が2Fである場合は、方法はブロック908に進み、4つのブロックサービスが処理される。
【0083】
図10は、余分の4つのブロックサービスを割り当てるための多重化システムの側面の動作を例示するフレーム1000を示す。例えば、割り当てブロックは、threeBlk1002と、fourBlk1004と、sixBlk1006と、sevenBlk1008と、を備える。割り当てブロックは、reg2Blk1010も含む。フレーム1000は、方法900が余分の4つのブロックサービス(fourBlkSrvc)1012をfourblk1004、threeblck1002及びreg2blk1010割り当てブロックに割り当てるためにどのように動作するかを示す。一側面においては、方法900は、図10に示されるフレーム1000にRTサービスを割り当てるために動作する。
【0084】
再度図9に関して、ブロック908において、4つのブロックサービスが処理される。例えば、一側面においては、MUX論理210は、図10に示されるフレーム1000を参照して後述されるように4つのブロックサービスを処理するために動作する。
【0085】
a. fourBlk1004が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるfourBlkSrvcを見つける。次に、余分のfourBlkSrvcsなしでfourBlkSrvc1004を更新する。
【0086】
b. 余分のfourBlkSrvcsをthreeBlk1002及びreg2Blk1010に移動させる。Reg2Blk1010は、 図10に示されるような高さ1のブロックである。
【0087】
c. 余分のfourBlkSrvcsを移動させる一方で、後続するサービスがfourBlk1004自体にぴったり納まることができるかどうも検査する。
【0088】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0089】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック910において、余分の4つのブロックサービスを上記のように移動できるかどうかを検査するための試験が行われる。ブロック908において条件付き不等式を満たすために余分のfourBlkSrvcsをthreeBlk1002又はreg2Blk1010のいずれにも移動させることができない場合は、方法はブロック914に進み、ブロック914において、パッキング失敗が決定されて方法が停止する。余分のfourBlkSrvcsを移動させることができる場合は、方法はブロック912に進む。
【0090】
ブロック912において、方法は最終動作に進む。余分のfourBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0091】
方法900は、単なる1つの実装を表すにすぎず、方法900の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0092】
図11は、多重化システムにおいて用いるための第3の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法1100を示す。例えば、方法1100は、第3の不等式条件(1F2T)が存在するときに割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法1100の機能を提供するために動作する。
【0093】
ブロック1102において、第1の不等式(1)の状態が偽(すなわち、1F)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Fでない場合は、方法はブロック1104に進む。第1の不等式(1)の状態が1Fである場合は、方法はブロック1106に進む。
【0094】
ブロック1104において、方法は、第4の不等式条件の処理に進む。例えば、第1の不等式(1)の状態が1Fでないため、方法は、方法1300に進み、第4の不等式条件(1F2F)が残っている唯一の条件であるため現在存在しなければならない第4の不等式条件(1F2F)を処理する。
【0095】
ブロック1106において、第2の不等式(2)の状態が真(すなわち、2T)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Tでない場合は、方法はブロック1104に進む。第2の不等式(2)の状態が2Tである場合は、方法はブロック1108に進む。
【0096】
図12は、余分の3つのブロックサービスを割り当てるための多重化システムの一側面の動作を例示するフレーム1200を示す。例えば、割り当てブロックは、threeBlk1202と、fourBlk1204と、sixBlk1206と、reg2Blk1208と、reg1Blk1210とを備える。フレーム1200は、方法1100が余分の3つのブロックサービス(threeBlkSrvcs)1212をthreeBlk1202、reg1Blk1210及びreg2Blk1208割り当てブロックに割り当てるためにどのように動作するかを示す。
【0097】
再度図11に関して、ブロック1108において、3つのブロックサービス(threeblkSrvcs)が処理される。例えば、一側面においては、MUX論理210は、threeblkSrvcsを以下のように処理するために動作する。
【0098】
a. threeBlk1202が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるthreeBlkSrvcを見つける。次に、余分のthreeBlkSrvcsなしでthreeBlk1202を更新する。
【0099】
b. 余分のthreeBlkSrvcsをreg1Blk1210及びreg2Blk1208に移動させる。Reg1Blk1210は、図12に示されるような高さ3のブロックである。
【0100】
c. 移動させる一方で、後続するサービスがthreeBlk1202自体にぴったり納まることができるかどうも検査する。
【0101】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0102】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック1110において、余分の3つのブロックサービスを移動できるかどうかを決定するための試験が行われる。ブロック1108において条件付き不等式を満たすために余分のthreeBlkSrvcsをreg1Blk1210又はreg2Blk1208のいずれにも移動させることができない場合は、方法はブロック1112に進み、ブロック1112において、パッキング失敗が決定され、方法が停止する。余分の3つのブロックサービスを移動させることができる場合は、方法はブロック1114に進む。
【0103】
ブロック1114において、方法は最終動作に進む。余分のthreeBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0104】
方法1100は、単なる1つの実装を表すにすぎず、方法1100の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0105】
図13は、多重化システムにおいて用いるための第4の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法1300を示す。方法1300は、第1、第2及び第3の不等式条件が存在しないときに割り当てを提供する。この場合は、不等方程式の状態は(1F2F)として記述することができる。一側面においては、MUX論理210は、後述されるように方法1300の機能を提供するために提供する。
【0106】
図14は、余分の6つのブロックサービスを割り当てるための多重化システムの一側面の動作を例示するフレーム1400を示す。例えば、フレーム1400は、threeBlk1402、fourBlk1404、reg2Blk1406、及びsixBlk1408割り当てブロックを備える。フレーム1400は、余分の6つのブロックサービス(sixBlkSrvcs)1410がどのように割り当てられるかを示す。
【0107】
再度図13に関して、ブロック1302において、6つのブロックサービスが処理される。例えば、一側面においては、MUX論理210は、6つのブロックサービスを以下のように処理するために動作する。
【0108】
a. fourBlk1404及びsixBlk1408が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるsixBlkSrvcを見つける。次に、余分のサービスなしでsixBlk1408を更新する。
【0109】
b. 余分のsixBlkSrvcsをthreeBlk1402、fourblk1404、及びreg2Blk1406に移動させる。
【0110】
c. 移動させる一方で、後続するサービスがsixBlk1408自体にぴったり納まることができるかどうも検査する。
【0111】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0112】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック1304において、余分の6つのブロックサービスを移動できるかどうかを決定するための試験が行われる。ブロック1302において条件付き不等式を満たすために余分の6つのブロックサービスをfourblk1404、threeblk1402、又はreg2Blk1406に移動させることができない場合は、方法はブロック1306に進み、ブロック1306において、パッキング失敗が決定され、方法が停止する。余分の6つのブロックサービスを移動させることができる場合は、方法はブロック1308に進む。
【0113】
ブロック1308において、方法は最終動作に進む。余分のsixBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0114】
方法1300は、単なる1つの実装を表すにすぎず、方法1300の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0115】
最終動作
上において行われた動作から、各RTサービスがいずれのブロックに割り当てられるかに関する情報が入手される。さらに、現在は、RTサービスの各チャネルがフレームに関して有するデータスロット数が既知である。この情報は、すべてのチャネル割り当ての位置に到達する上で十分である。一側面においては、スロットは、最大高さ制約を尊重しつつ隣接させてブロック内のチャネルに割り当てることができる。
【0116】
パッキング例
図15は、多重化システムにおいて用いるために2つのRTサービスを送信フレーム内にパッキングする割り当てアルゴリズムの側面の動作を例示するフレーム1500を示す。この例においては、2つのRTサービス、すなわちサービスA及びB、がフレーム1500のfourblk領域内にパッキングされる。説明の目的上、以前の動作では両方のRTサービスがfourBlk領域内に存在すると決定していると仮定される。さらに、これらのRTサービスの両方が2つのチャネル、すなわち1及び2、を有すると仮定される。各チャネルに関するデータスロット数は以下の通りであるとさらに仮定される。
【0117】
サービスAのチャネル1=9
サービスAのチャネル2=9
サービスBのチャネル1=8
サービスBのチャネル2=7
フレーム1500において例示されるように、RTサービスは、以下のパラメータに従ってfourblk領域内にパッキングされる。
【0118】
チャネル1サービスA(1502)
開始シンボル=5
開始スロット=6
最低スロット=4
最高スロット=7
総スロット=9
チャネル2サービスA(1504)
開始シンボル=7
開始スロット=7
最低スロット=4
最高スロット=7
総スロット=9
チャネル1サービスB(1506)
開始シンボル=10
開始スロット=4
最低スロット=4
最高スロット=7
総スロット=8
チャネル2サービスB(1508)
開始シンボル=12
開始スロット=4
最低スロット=4
最高スロット=7
総スロット=7
アルゴリズム概要
1つ以上の側面においては、割り当てアルゴリズムは、フレーム内への流れの効率的なパッキングを提供し、それにより受信デバイスの“ウェークアップ”頻度及び“オンタイム”を最小にする。例えば、サービスのチャネルをグループ分けすることは、ウェークアップ頻度を低減させ、maxSlotHeightにおいてサービスを送信することは、オンタイムを短くする。
【0119】
一側面においては、アルゴリズムによって提供されるスロット割り当てが4つの不等式条件のうちの1つに起因して失敗した場合は、アルゴリズムは、サービスのサイズがどのように変更されるかを制御するサイズ変更コントローラ212に指示(directive)を渡す。サイズ変更コントローラ212がこれらの指示に基づいてサービスのサイズを変更させる場合は、パッキング解決方法が保証される。
【0120】
図16は、未使用スロットが2つのエリアにおいてグループ分けされるような形でRTサービスをパッキングするための割り当てアルゴリズムの一側面の動作を例示するフレーム1600を示す。より少ないエリアにおいて未使用スロットを収集することは、割り当てアルゴリズムに入力されたサービスよりも優先度が低いサービスによるこれらのスロットのより良い利用を保証する。一側面においては、ORTサービスは、これらのエリア内にパッキングすることができる。例えば、フレーム1600においては、未使用スロットはエリア1602及び1604にグループ分けされる。
【0121】
リアルタイムサービスサイズ変更アルゴリズム
1つ以上の側面においては、サイズ変更コントローラ116は、サービスをフレーム内にパッキングできるようにするためにこれらのサービスがどのようにサイズ変更されるかを制御するために動作する。例えば、サービスは、関連づけられた配送要求事項を調整するためにサイズが変更される。一側面においては、1つ以上のサービスは、関連づけられた帯域幅要求を軽減するためにサイズが変更される。しかしながら、サイズ変更コントローラ116は、関連づけられた配送要求事項のうちのいずれかを調整するためにサービスのサイズを変更するために動作する。以下の説明は、RTサービスにおいて構成要素ストリームのサイズを変更するために動作するサイズ変更アルゴリズムを説明する。RTサービスのサイズ変更を生じさせる条件も提供される。一側面においては、サイズ変更コントローラ116は、サイズ変更パラメータを決定するサイズ変更アルゴリズムを実装するために動作する。これらのパラメータは、サイズ変更要求においてRTサービスと関連づけられたRTMSに送信される。次にRTMSが動作し、識別されたRTサービスをサイズ変更要求内のパラメータに従ってサイズ変更する。
【0122】
サイズ変更コントローラ116は、ORTサービスのサイズを変更するためにも動作することにも注目すべきである。例えば、サイズ変更コントローラ116は、1つ以上のORTサービスのサイズがどのようにして変更されるべきか及びNRTMSと通信して決定されたサイズ変更を実装することを決定するために動作可能である。その結果、それらのサービスと関連づけられた配送要求事項が調整される。例えば、サイズ変更コントローラ116は、NRTMSと通信してORTサービスの帯域幅要求を軽減し、それによって配送要求事項を調整することができる。以上のように、RTサービスのサイズ変更を参照してここにおいて説明される側面は、ORTサービスに対しても同様に当てはめることが可能である。
【0123】
図1に示されるように、MUX114は、コンテンツ流データ、及び関連づけられたシグナリングデータをRTMS126及びNRTMS128から受け取る。スーパーフレームごとに、MUX114は、すべてのアクティブなリアルタイムサービスに関してはRTMS126と、及びORTサービスに関してはNRTMS128と選択的に、データ帯域幅を交渉する。一側面においては、帯域幅交渉は、以下の動作順序を含む。
【0124】
a. MUX114が、スーパーフレームにおいて送信されるべきRTサービスに関するデータサイズを要求するためにGetDataSize.RequestメッセージをRTMS126に送る。
【0125】
b. RTMS126が、スーパーフレームにおいて送信されるべきRTサービスに関するデータサイズを指定するGetDataSize.ResponseメッセージをMUX114に送る。
【0126】
c. MUX114が、RTMS126からの及びその他のソースからのすべての受信されたデータサイズに基づいてコンテンツスケジューリング(割り当て)を行う。
【0127】
d. MUX114が、UpdateDataSize.Notificationメッセージの一部としてRTサービス流データに関する更新されたサイズをRTMS126に送る。
【0128】
一側面においては、MUX114は、上述されるスロット割り当てアルゴリズムの側面を備えるコンテンツスケジューリング機能を提供するために動作する。サイズ変更コントローラ116は、サイズ変更アルゴリズムの側面を提供する。スロット割り当てアルゴリズムは、スーパーフレーム内のすべてのメディアサービスに割り当てられたスロット(レート)をぴったり納める責任を有する。一定のシステム上の制約(例えば、デバイスのターボ復号器のピークスループットは、単一のOFDMシンボルにおいて特定のメディアサービスに割り当てることができるスロット数を制限する)は、割り当てられた総スロット数がスーパーフレームにおいて利用可能な総スロット数以下であるにもかかわらずスロット割り当て手順を失敗させる可能性がある。さらに、エアリンク資源要求の圧倒的割合を占めることが予想されるリアルタイムのサービス構成要素は、映像コンテンツである。このコンテンツは、ソースコーディングを用いて圧縮され、その結果可変性が非常に高いビートレート流になる。最後に、リアルタイムサービスの送信に関して利用可能なスーパーフレーム当たりの容量は、その他の同時並行するメディアサービスの要求事項に起因して変化する可能性がある。これらの要因は、以下の割り当て状態のうちの1つを生じさせる。
【0129】
1. RTサービスによって要求される全データの合計が利用可能な容量以下であり、スロット割り当てアルゴリズムが成功である。
【0130】
2. RTサービスによって要求される全データの合計が利用可能な容量以下であるが、スロット割り当てアルゴリズムは失敗である。
【0131】
3. RTサービスによって要求される全データの合計が利用可能な容量よりも大きい。
【0132】
割り当て状態2及び3は、結果的に、RTサービス流によって要求されるデータ量を割り当てることができない。これらのシナリオにおいては、MUX114は、サイズ変更コントローラ116を呼び出し、サイズ変更アルゴリズムを実行してRTサービスのサイズを変更する。次の節では、リアルタイムサービスに関する品質概念及びサイズ変更アルゴリズムの側面の目標を説明する。
【0133】
リアルタイムサービス品質及びサイズ変更アルゴリズムの目標
品質概念は、リアルタイムストリーミングメディアサービス内での映像流と関連づけられる。リアルタイムサービスの品質(Q)は、サービス流に割り当てられたビットレートの関数であり、以下のように表される品質関数によってモデル化される。
【0134】
Q=f(r)
(3)
スーパーフレームごとに、RTMS126は、MUX114がこの関数を評価するのを援助する情報を提供する。この情報は、GetDataSize.ResponseメッセージにおいてMUX114に送られる。以下の節において説明されるように、MUX114は、この情報をリアルタイムサービスの品質推定のために用いてサイズ変更手順を容易にする。選択された品質測定又は特徴も品質推定のためにMUX114によって使用可能であることも注目されるべきである。
【0135】
サイズ変更アルゴリズムは、スロット割り当てアルゴリズムが成功するように割り当てられた総レートがRTサービスに関して利用可能な容量以下であるような形でリアルタイムサービスにレートを割り当てる(単位は、物理層パケット(PLP))。従って、一側面においては、RTサービスに関するレート割り当ては、RTサービス映像流の品質関数が以下のように重みに比例するようにすべきである。
【0136】
(Qi/Qj)=(Wi/Wj)
(4)
ここで、Qi(Wi)及びQj(Wj)は、いずれかのRTサービスi、jに関する品質関数(流れ重み)である。品質関数は、上の方程式(3)を用いて推定される。流れと関連づけられた重み値は、その他のRT映像流間におけるその流れの相対的有意性の尺度である。一側面においては、MUX114は、サブスクリプション・アンド・プロビジョニング(Subscription and Provisioning)サブシステムからこれらの流れ重み値を入手し、該サブシステムは、配信ネットワークと関連づけられたサービス計画策定及び管理関数に関する責任を有することもできる。
【0137】
サイズ変更アルゴリズム
この節は、RTサービスサイズ変更アルゴリズムの側面を説明する。このアルゴリズムは、RTサービスにおける映像成分ストリーム(流れ)に関するレート割り当てに収斂する繰り返し手法を用いる。このアルゴリズムは、最初に、各映像ストリームによって要求されるPLP数(レート)から開始する。このアルゴリズムの繰り返しの各々は、レート引き下げに関する候補サービスを識別することを含む。候補ストリームは、レート引き下げの影響を最も受けにくく、その他のストリームと比較して不都合な品質低下を被らないストリームである。一側面においては、サイズ変更アルゴリズムの関数は、図2に示されるサイズ変更コントローラ212によって提供される。
【0138】
候補ストリームが識別された後は、そのストリームに割り当てられたレートが引き下げられる。例えば、レートは、2つのリード−ソロモン符号ブロックに対応する量だけ引き下げることができる。ネットワークは、1つのリード−ソロモンブロックに対応するPLP数によって定義される粒度で全サービスにレートを割り当てる。映像ストリームは、基本及び拡張映像成分を有するネットワークの層化送信モードのうちの1つを用いて送信されると仮定される。さらに、システムは、2つの映像成分内のデータが等しくなるように制約する。従って、2つのリード−ソロモンブロックがレート引き下げ単位として選択される。しかしながら、ストリームのレートをその他の選択された量だけ引き下げることは側面の適用範囲内にあることが注目されるべきである。
【0139】
定数
多重化システムの側面においてはサイズ変更関数を提供するために以下の定数パラメータが用いられる。
【0140】
rateReductionBnd
リアルタイム映像ストリームに関する分数的レート引き下げの上限。この限度は、ストリームによって要求されるレートを参照する。一側面においては、0.5の値が用いられる。
【0141】
sysMin
ストリームの品質に関する最低値。レート引き下げ限度に達しているストリームのレートがさらに引き下げられるのを防止するために用いられる。
【0142】
payloadPLP
PLPに関する有効ペイロードであり、約968ビットである。
【0143】
アルゴリズム入力
多重化システムの側面においてはサイズ変更関数を提供するために以下の入力が用いられる。
【0144】
maxRTSOFDMSym
リアルタイムサービスに関して利用可能なスーパーフレーム当たりのOFDMシンボル数を単位とする容量。
【0145】
numRTS
利用可能な容量を共有するリアルタイムサービス数
numVStreams
リアルタイムサービスにおける映像成分ストリーム総数。例えば、VStreamは、各リアルタイム映像成分ストリームを記述する構造のリストである。
【0146】
_weight
ストリームに関する相対的重み値を保有する。
【0147】
requestedPLPs
ストリームによって要求されるスーパーフレーム当たりのPLP数を保有する。要求される生ビット数をrequestedPLPsxpayloadPLP(968ビット)として推定することが可能である。
【0148】
rsCodeParameterK
リード・ソロモン(N,K)符号に関するパラメータK
変数
多重化システムの側面においてはサイズ変更関数を提供するために以下の変数が用いられる。
【0149】
reqPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、このストリームによって要求されるスーパーフレーム当たりのPLP数を保有し、VStream構造のrequestedPLPs数によって示される。
【0150】
assgnPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、このストリームに割り当てられたスーパーフレーム当たりのPLP数を保有する。
【0151】
tempPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、映像成分ストリームに割り当てられたスーパーフレーム当たりのPLP数を保有する。これは、アルゴリズムによって内部で用いられる一時的変数である。
【0152】
weight[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、VStream構造の_weight要素によって示されるストリームの相対的重み値を保有する。
【0153】
effQuality[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、リアルタイムサービスストリームに関する推定された品質を保有する。
【0154】
PLPsPerRSB1k[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、VStream構造のrsCodeParameterK要素によって示されるリード−ソロモン符号ブロック当たりのデータ数PLPを保有する。
【0155】
アルゴリズム出力
多重化システムの側面においてはサイズ変更関数を提供するために以下の出力が用いられる。
【0156】
successFlag
サイズ変更アルゴリズムが制約を満たすレート割り当てに収斂するのに成功した場合に1に設定されるフラグ。その他の場合は、successFlagは0に設定される。
【0157】
サイズ変更アルゴリズムによって呼び出される内部手順
以下は、多重化システムの側面においてサイズ変更アルゴリズムによって呼び出される内部手順である。
【0158】
reducePLP ( )
レート引き下げに関する映像ストリームを識別し、そのストリームに割り当てられたデータ量を低減させる手順。この手順は、主ルーチンに関して定義される変数スペースを共有する。
【0159】
再符号化アルゴリズムによって呼び出される外部アルゴリズム
以下は、多重化システムの側面においてサイズ変更アルゴリズムによって呼び出される外部手順である。
【0160】
slotAllocation
スロット割り当てアルゴリズムは、すべてのメディアサービスに割り当てられたスロットをスーパーフレーム内にぴったり納める責任を有する。サイズ変更アルゴリズムは、全メディアサービスに関する割り当てられたデータ(レート)を含む要求される入力引数を用いてスロット割り当てアルゴリズムを呼び出す。
【0161】
アルゴリズム
以下は、多重化システムの側面において用いるためのサイズ変更アルゴリズムの一側面の説明である。一側面においては、サイズ変更コントローラ212は、サイズ変更アルゴリズムを実装し、以下の機能のうちの1つ以上を実行する。
【0162】
a. VStream構造データを用いて、アレイreqPLPs[]、qualityIndex[]、PLPsPerRSBlk[]、及びweight[]にポピュレートする。
【0163】
b. reqPLPs[]内の対応する要素に合わせてアレイassgnPLPs[]の全要素を初期設定する。
【0164】
c. algorithmFlag=1、及びsuccessFlag=0を初期設定する。
【0165】
d. 以下の機能(functions)を実行する。
【0166】
while algorithm Flag==1
reducePLPs()
if reduction>0
call slotAllocation Algorithm
if slotAllocation Algorithm succeeds
algorithmFlag=0
success Flag=1
endif
else
/*この条件は、rateReductionBnd限度を尊重する一方でのサイズ変更の失敗を意味する。*/
endif
endwhile
以下の機能は、reducePLPs()手順の一部として実行される。
【0167】
fori=0 to numVStreams
tempPLPs[i]=assgnPLP[i]
tempPLPs[i]=tempPLPs[i]−2xPLPsPerRSBlk[i]
/*ストリームに割り当てられたPLPは、2つのリード−ソロモンブロックに対応する量だけ減らされる。一側面においては、基本成分及び拡張成分の両方から1つのRSブロックが除去される。システムは、基本映像成分及び拡張映像成分内のデータが等しくなるように制約する。*/
if tempPLPs[i]/reqPLPs[i]≧rateReductionBnd
effQuality[i]=f(tempPLPs[i]xpayloadPLP)/weight[i]
else
effQuality[i]=sysMin
endif
endfor
/*f()は、品質を評価するために用いることができる適切な関数である*/
e. アレイeffQuality[]によって与えられる最大有効品質を 有するサービスのインデックスを識別する。_indexパラメータをその値に設定する。
【0168】
f. 以下の機能を実行する。
【0169】
if effQuality[_index]==sysMin
/*この条件は、rateReductionBnd限度を尊重する一方でのサイズ変更の失敗を意味する。*/
reduction=−1
else
reduction=2xPLPsPerRSBlkLindex]
assgnPLPsLindex]=tempPLPsLindex]
endif
従って、サイズ変更コントローラ212は、多重化システムの側面においてサービスのサイズを変更するために上記の機能を提供するために動作する。例えば、上述される割り当てアルゴリズムの側面によって提供されるスーパーフレームの利用可能なスロットにサービスを割り当てることができるようにRTサービスのレートが引き下げられる。
【0170】
リアルタイム以外のサービス(ORTS)
様々な制約を考慮に入れ、及びOFDMシンボルにおいてサービスに関して送信されるターボパケット数をデバイスによって復号可能であるようにするスロット割り当てアルゴリズムの側面が上述される。デバイスはいずれかの時点においても1つのRTサービスのみを受信することが要求されるため、このアルゴリズムはRTサービスに関して好ましい。しかしながら、デバイスは、スーパーフレームにおいて複数のORTサービスを受信中である可能性がある。同じアルゴリズムが用いられる場合は、OFDMシンボルにおいてデバイスによって契約されたすべてのORTサービスに関する総パケット数は、デバイス限度よりも大きくなる可能性がある。これは、“ターボパケット衝突”と呼ばれる。ターボパケット衝突は、ORTサービスデータの損失に結び付く。損失の規模は、一般的には、ユーザーのサービス契約パターンに依存する。従って、ターボパケット衝突を完全に排除する、ORTサービスに関するスロット割り当てアルゴリズムの追加の側面が以下において提供されて説明される。
【0171】
図17は、多重化システムにおいて用いるためのRTサービス及びORTサービスに関する領域内に分割される典型的フレーム1700を示す。第1の領域1702は、RTサービスに関して提供され、第2の領域1704は、ORTサービスに関して提供される。フレームをこれらの領域にパーティショニングすることは、RTサービスとORTサービスとの間においてターボパケット衝突が存在しないようにする。RT1702とORT1704との間のパーティションは、“ソフト”パーティションである(すなわち、スーパーフレームごとに異なり、そのスーパーフレーム内における利用可能なRT及びORTサービスに依存する)。RTサービスは、上述されるスロット割り当てアルゴリズム及びサイズ変更アルゴリズムのうちの1つを用いてRTサービス領域1702において割り当てられる。ORTサービスは、後述されるORTサービスアルゴリズムのうちの1つを用いてORTサービス領域1704においてスロット割り当てされる。1つ以上の側面においては、ORTサービスも、利用可能な帯域幅内にぴったり納まるようにサイズが変更される。ORTサービスに対して適用されるサイズ変更のより詳細な説明が以下において提供される。
【0172】
ORTサービススロット割り当て
受信デバイスの電力消費量に関して、MLC割り当ての高さはmaxSlotHeightであることが好ましい。これは、デバイスがそのMLCを受信するための可能な“オンタイム”を最小にする。しかしながら、パッキングを容易にするために、サービスのすべてのグループ分けされたMLCに対して同じ高さが割り当てられる。従って、ORTサービスに関する場合においても、“サービスのmaxSlotHeight”の概念は、そのサービスに関してグループ分けされた全MLCのmaxSlotHeightパラメータの最低又は最小のパラメータであると定義される。この説明の残りの部分に関しては、サービスの高さは、そのサービスのすべてのMLC割り当ての共通の高さを意味する。
【0173】
サービスのチャネルがグループ分けされる
一側面においては、サービスの全チャネルがグループ分けされ、従ってそれらのチャネルの割り当てがフレーム内において一時的に隣接する。この手法は、デバイスがサービスの異なるチャネルを受信するために“ウェークアップ”する必要がある回数を減らし、従ってデバイスが電力消費量を低減させるのに役立つ。
【0174】
ORTS領域がブロックに分割される
図18は、ORTS領域が異なる高さのブロックに分割される典型的フレーム1800を示す。一側面においては、ブロックの高さは、サービスがとることができる可能なmaxSlotHeightに対応する。テーブル500から、4つのmaxSlotHeight(すなわち、3、4、6及び7)が存在することがわかる。従って、フレーム1800は、関連づけられたサービスを割り当てるために用いられるthreeBlk1802、fourBlk1804、sixBlk1806、及びsevenBlk1808を示す。これで、ORTサービススロット割り当てアルゴリズムが動作し、maxSlotHeightに基づいてサービスをパッキングして異なるブロック入れる。
【0175】
ブロックの上方に他のブロックが存在しない
一側面においては、ブロックは、ブロックの上方に他のブロックが存在しないような形でフレーム1800内に配置される。これは、いずれの2つのORTサービスもターボパケット衝突を有さないことを保証する。
【0176】
ORTサービススロットアルゴリズム
1つ以上の側面においては、以下のパラメータは、ORTサービススロット割り当てアルゴリズムへの入力を表す。
【0177】
a. サービスの各MLCがフレームに関して有するデータスロット数。
【0178】
b. サービスの各MLCのmaxSlotHeightであり、そのMLCの送信モードによって決定される。
【0179】
c. ORTサービスに関して利用可能な総シンボル数(numAvailOrtsSymPerFrm)。
【0180】
1つ以上の側面においては、以下のパラメータは、ORTサービススロット割り当てアルゴリズムからの出力を表す。
【0181】
a. パッキングが可能であるかどうかの決定
b. パッキングが成功である場合は、ORTサービスによって占められるシンボル数(numOccuOrtsSymPerFrm)。
【0182】
図19は、多重化システムにおいて用いるためのORTサービスにスロットを割り当てる典型的方法1900を示す。一側面においては、MUX論理210は、後述される方法1900の機能を提供するために動作する。
【0183】
ブロック1902において、各ORTサービスのmaxSlotHeightの計算が実行される。一側面においては、MUX論理210がこの計算を行う。
【0184】
ブロック1904において、ORTサービスが各サービスに関するmaxSlotHeightパラメータに基づいてブロックにグループ分けされる。例えば、一側面においては、サービスは、threeBlkSrvcs、fourBlkSrvcs、sixBlkSrvcs、及びsevenBlkSrvcsにグループ分けされる。一側面においては、MUX論理210がこの動作を実行する。
【0185】
ブロック1906において、長さ変数L7、L6、L4及びL3が計算される。例えば、L7=ceil(すべてのsevenBlkSrvcsの総スロット数/7)であり、ここで、ceil(x)は、xよりも大きい最小整数である。一側面においては、MUX210がこの動作を実行する。
【0186】
ブロック1908において、要求されるシンボル数が利用可能なシンボル数よりも多いかどうかを決定するための試験が行われる。例えば、以下の不等式が評価される。
【0187】
(L7+L6+L4+L3≦numAvailOrtsSymbolsPerFrm)
一側面においては、MUX論理210がこの動作を行う。上記の不等式が偽である場合は、方法はブロック1910に進む。上記の不等式が真である場合は、方法はブロック1912に進む。
【0188】
ブロック1910において、パッキングが失敗であることが決定され、方法がブロック1914において終了する。
【0189】
ブロック1912において、パッキングが成功であり、占有されるシンボル数が以下の方程式から決定される。
【0190】
numOccuOrtsSymPerFrm=L7+L6+L4+L3
一側面においては、MUX論理210がこの動作を行う。パッキングが成功した時点で、各サービスが属するブロックは既知であるため、すべてのMLC割り当ての位置に到達するのは容易である。
【0191】
方法1900は、単なる1つの実装を表すにすぎず、方法1900の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0192】
スロット割り当てとサイズ変更アルゴリズムとの間の相互関係
これまでの節においては、スロット割り当て及びサイズ変更アルゴリズムの側面が説明されている。以下の節は、多重化システムの側面において用いるためのこれらのアルゴリズムの全体的相互関係を説明する。
【0193】
図20は、多重化システムにおいて用いるためのスロット割り当て、サイズ変更、及び混雑制御を提供するための典型的方法2000を示す。例えば、サーバー200は、後述される機能を提供するために動作する。
【0194】
ブロック2002において、優先度が高及び中のORTサービスにスロットが割り当てられる。例えば、スーパーフレームごとに、MUX114は、GetDataSize.Response命令を用いて様々な流れデータ量及びその相対的優先度をコンテンツエンティティ、例えばRTMS126及びNRTMS128、から入手する。この情報を用いて、優先度が高及び中のORTサービスに関するスロット割り当てが行われる。例えば、一側面においては、MUX210は、上記のアルゴリズムによる高及び中優先度のORTサービスのスロット割り当てを行うために動作する。
【0195】
ブロック2004において、優先度が高及び中であるORTサービスのスロット割り当てが成功であったかどうかを決定するための試験が行われる。割り当てが成功であった場合は、方法はブロック2006に進む。割り当てが成功でなかった場合は、方法はブロック2018に進む。
【0196】
ブロック2018において、混雑制御が行われる。高及び中優先度のORTサービススロット割り当てが成功でなかった場合は、システムは、対処する必要がある混雑を経験する。一側面においては、MUX論理210は、図22を参照して説明される混雑制御アルゴリズムを実行する。混雑制御から戻った時点で、方法はブロック2028において停止する。
【0197】
ブロック2006において、ORTサービススロット割り当ての成功に基づき、RTサービスに関して利用可能なシンボル数が計算され、繰り返しパラメータがゼロに設定される。例えば、一側面においては、MUX論理210がこれらの機能を実行する。
【0198】
ブロック2008において、フレーム内の残りのシンボルを用いてRTサービスのスロット割り当てが行われる。例えば、上述されるスロット割り当てアルゴリズムの側面は、RTサービスにスロットを割り当てるために用いられる。
【0199】
ブロック2010において、RTサービスが成功裏に割り当てられたかどうかを決定するための試験が行われる。割り当てが成功でなかった場合は、方法はブロック2014に進む。割り当てが成功であった場合は、方法はブロック2012に進む。
【0200】
ブロック2012において、利用可能なシンボル数が減らされて繰り返しパラメータが増加される。例えば、一側面においては、MUX論理210がこれらの機能を実行する。次に、方法はブロック2008に進んでRTサービスにスロットを割り当てる。
【0201】
ブロック2014において、繰り返しパラメータがゼロよりも大きいかどうかを決定するための試験が行われる。例えば、一側面においては、MUX論理210がこれらの機能を実行する。繰り返しパラメータがゼロよりも大きい場合は、方法はブロック2016に進む。繰り返しパラメータがゼロよりも大きくない場合は、方法はブロック2020に進む。
【0202】
ブロック2016において、numRTSymbols+1を用いたRTサービススロット割り当てが行われる。例えば、MUX論理210は、増加されたnumRTSymbols値を用いてRTサービスに関するスロット割り当てを行う。方法はブロック2024に進む。
【0203】
ブロック2020において、選択されたRTのサイズが変更される。一側面においては、RTサービススロット割り当てが成功できるようにするためにサイズ変更アルゴリズムが用いられて1つ以上の流れのレートのサイズが変更される。例えば、サイズ変更コントローラ212が動作し、ここにおいて説明されるサイズ変更アルゴリズムのうちの1つを実行する。サイズ変更アルゴリズムから戻った時点で、方法はブロック2022に進む。
【0204】
ブロック2022において、RTサービスのサイズ変更が成功であったかどうかを決定するための試験が行われる。例えば、サイズ変更アルゴリズムが受け入れ可能な下限映像品質又は下限サイズ変更比でのスロット割り当てを達成できない状況が存在することがある。サイズ変更が成功であった場合は、方法はブロック2024に進む。サイズ変更が成功でなかった場合は、この状況は、システムが混雑していることを意味し、このため方法はブロック2018に進んで混雑制御を実行する。
【0205】
ブロック2024において、優先度の低いORTサービスに対して順位の昇順でスロットが割り当てられる。例えば、MUX論理210がこの機能を実行する。
【0206】
ブロック2026において、ベストエフォートORTサービス又はデータにスロットが割り当てられる。例えば、MUX論理210がこの機能を実行する。これで、方法2000が2028において終了する。
【0207】
従って、方法2000の完了時点において、MUX論理114は、現在のスーパーフレームにおいて送信することができる様々な流れの正確なデータサイズに関する情報を有する。この情報は、UpdateDataSize.Notificationメッセージを用いてRTMS126及びORTMS128に戻される。
【0208】
方法2000は、単なる1つの実装を表すにすぎず、方法2000の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0209】
図21は、多重化システムにおいて用いるためのサイズ変更を提供するための典型的方法2100を示す。例えば、方法2100は、図2000におけるブロック2020として用いるのに適する。一側面においては、サイズ変更コントローラ212が後述される機能を提供するために動作する。
【0210】
ブロック2102において、要求されるスロット数が評価されてパラメータnが計算される。一側面においては、nは、サービスに関して要求されるスロット数と利用可能なスロット数の比を表す。例えば、サイズ変更コントローラ212がこの計算を行う。
【0211】
ブロック2104において、サイズ変更されるべき流れの品質が評価される。例えば、各流れに関するMLCをnの符号ブロックだけ縮小後に品質評価が行われる。例えば、サービスの品質(Q)は、サービス流に割り当てられたビットレート(r)の関数であり、上記において表される品質関数によってモデル化される。例えば、サイズ変更コントローラ212がこの品質決定を行う。
【0212】
ブロック2106において、最高の結果的に得られた品質を有する流れが決定される(候補)。例えば、サイズ変更コントローラ212は、ブロック2104において符号ブロックの低減を行った結果得られる最高品質を有する流れを決定する。
【0213】
ブロック2108において、最高品質がシステムの最低品質要求よりも高いかどうかを決定するための試験が行われる。例えば、サイズ変更コントローラ212がこの試験の結果を決定する。最高品質がシステムの最低品質要求よりも高くない場合は、方法はブロック2116に進む。最高品質がシステムの最低品質要求よりも高い場合は、方法はブロック2110に進む。
【0214】
ブロック2110において、最高の品質を有する流れのサイズが変更されてスロット割り当てが行われる。例えば、最高の品質を有する流れがnの符号ブロックだけ縮小されてスロット割り当てが行われる。例えば、サイズ変更コントローラ212が流れのサイズを変更し及びスロット割り当てを行うようにMUX論理210に要求する。
【0215】
ブロック2112において、スロット割り当てが成功であったかどうかを決定するための試験が行われる。例えば、サイズ変更コントローラ212は、ブロック2110において行われたスロット割り当てが成功であったかどうかを示すインジケータをMUX論理114から受け取る。スロット割り当てが成功であった場合は、方法はブロック2114に進む。スロット割り当てが成功でなかった場合は、方法はブロック2102に進む。
【0216】
ブロック2114においては、サイズ変更が成功であることが決定され、ブロック2116においては、サイズ変更が失敗であったことが決定される。例えば、サイズ変更コントローラ212がこれらの決定を行う。方法はブロック2118に進み、ブロック2118において、方法は図2000のブロック2020に戻る。
【0217】
従って、方法2100は、多重化システムにおいて用いるためのサイズ変更を提供するために動作する。方法2100は、単なる1つの実装を表すにすぎず、方法2100の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0218】
図22は、多重化システムにおいて用いるための混雑制御を提供するための典型的方法2200を示す。例えば、方法2200は、図2000におけるブロック2018として用いるのに適する。一側面においては、MUX210が後述される機能を提供するために動作する。
【0219】
ブロック2202において、優先度の高いORTサービスにスロットが割り当てられる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。
【0220】
ブロック2204において、ブロック2202において行われた割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2208に進む。割り当てが成功でなかった場合は、方法はブロック2206に進む。
【0221】
ブロック2206において、優先度の高いORTサービスが順位の昇順で割り当てられる。例えば、MUX論理210は、ここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを実行する。これで、方法2200は2218において終了する。
【0222】
ブロック2208において、すべての可能なRTサービス流が選択された量だけ縮小され、これらの流れのスロット割り当てが行われる。例えば、サイズ変更コントローラ212及びMUX210がここにおいて説明される側面に従ってこれらの動作を行う。選択された量は、システムにとって既知のレート引き下げパラメータに基づく。
【0223】
ブロック2210において、ブロック2208におけるRTサービススロット割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2112に進む。割り当てが成功でなかった場合は、方法はブロック2214に進む。
【0224】
ブロック2212において、優先度が中であるORTサービスに順位の昇順でスロットが割り当てられる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。これで、方法2200は2218において終了する。
【0225】
ブロック2214において、順位が次に最も低いサービスを除外するRTサービススロット割り当てが行われる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。
【0226】
ブロック2216において、ブロック2214における割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2212に進む。割り当てが成功でなかった場合は、方法はブロック2214に戻って他のサービスを除外してスロット割り当てを再度試みる。
【0227】
従って、方法2200は、多重化システムにおいて用いるための混雑制御を提供するために動作する。方法2200は、単なる1つの実装を表すにすぎず、方法2200の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0228】
図23は、典型的多重化システム2300を示す。多重化システム2300は、データを受信するための手段(2302)と、帯域幅を決定するための手段(2304)と、データを割り当てるための手段(2306)と、データのサイズを変更するための手段(2308)と、を含む。一側面においては、手段(2302乃至2308)は、ここにおいて説明される多重化システムの側面を提供するためのコンピュータプログラムを実行する少なくとも1つのプロセッサによって提供される。
【0229】
図24は、ここにおいて説明される技法に従ってマルチメディアデータを符号化する他の典型的マルチメディア符号化デバイス2400を示すブロック図である。マルチメディア符号化デバイス2400は、マルチメディアデータの1つ以上のチャネルをブロードキャストするために用いられるブロードキャストネットワーク構成要素の一部を成すことができる。マルチメディア符号化デバイス2400は、例えば、符号化されたマルチメディアデータの1つ以上のチャネルを1つ以上の無線デバイス、例えばモバイルデバイス102(図1)、にブロードキャストするために用いられる無線基地局、サーバー、又はインフラストラクチャノードの一部を成すことができる。例えば、マルチメディア符号化デバイス2400は、図1のサーバー104を表すことができる。
【0230】
マルチメディア符号化デバイス2400は、マルチメディアデータの1つ以上の流れを含む複数のサービスを符号化し、符号化された流れを結合し、結合された流れを送信チャネル2402を介してマルチメディア復号デバイスに送信する。この開示の一側面においては、マルチメディア符号化デバイス2400は、ある期間にわたって受信されたデータの流れの一部分を符号化、結合及び送信する。一例として、マルチメディア符号化デバイス2400は、1秒ごとに流れに対して動作することができる。換言すると、マルチメディア符号化デバイス2400は、複数の流れのうちの1秒のデータセグメントを符号化し、1秒のデータセグメントを結合してデータのスーパーフレームを形成し、送信機2408を介して送信チャネル2402を通じてそのスーパーフレームを送信する。ここにおいて用いられる用語“スーパーフレーム”は、ある期間又はウィンドー、例えば1秒の期間又はウィンドー、にわたって収集されたデータセグメントのグループを指す。データセグメントは、1つ以上のデータフレームを含むことができる。この開示の技法は、1秒のデータセグメントに関して説明されるが、これらの技法は、その他のデータセグメントを結合及び送信するために、例えば固定された期間である場合とない場合がある異なる期間にわたって受信されたデータセグメントに関して、又は個々のデータフレーム又はデータフレームの組に関しても利用することができる。換言すると、スーパーフレームは、1秒の期間よりも長い又は短い時間間隔、又は時間が可変の間隔、を網羅するように定義することが可能である。
【0231】
送信チャネル2402は、あらゆる有線又は無線媒体、又はその組み合わせを備えることができる。一側面においては、送信チャネル2402は、固定された帯域幅のチャネルである。この場合は、マルチメディア符号化デバイス2400が送信チャネル2402を介して送信することができるデータビット数は、固定された帯域幅のチャネルのサイズに制限される。マルチメディア符号化デバイス2400は、目標となる品質レベルでデータ流の各々を出力することを試みる。ビットレートを決定するために用いられる目標品質レベルは、予め選択すること、ユーザーによって選択すること、自動プロセス又はユーザーからの又は他のプロセスからの入力を要求する半自動プロセスを通じて選択すること、又は予め決定された判定基準に基づいて符号化デバイス又はシステムによって動的に選択することができる。目標品質レベルは、例えば、符号化アプリケーションのタイプ、又はマルチメディアデータを受信するクライアントデバイスの型に基づいて選択することができる。データの流れの各々を目標品質レベルで出力するために必要なビット数が送信チャネル2402を通じて利用可能なビット数を超える場合は、マルチメディア符号化デバイス2400は、この開示の技法に従って複数の流れに関する最高の全体的品質を保持することを試みてデータ流間におけるビット割り当てを管理する。
【0232】
図24に示されるように、マルチメディア符号化デバイス2400は、符号器モジュール2404A乃至2404N(総称として“符号器モジュール2404”と呼ばれる)と、マルチプレクスモジュール2406と、送信機2408と、を含む。符号器モジュール2404は、1つ以上のソースからデジタルマルチメディアデータの流れを受け取る。符号器モジュール2404は、例えば、符号器モジュール2404に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータの流れを受け取る。マルチメディアデータの流れは、コーディングされてブロードキャストとして送信される対象となるライブのリアルタイム映像、音声、又は映像と音声の流れを備えることができ、又はコーディングされてブロードキャストとして又は要求に応じて送信される対象となる予め記録されて格納された映像、音声、又は映像と音声を備えることができる。この開示の技法は、非リアルタイムサービス又はリアルタイムサービスと非リアルタイムサービスの組み合わせに対しても適用することができる。換言すると、マルチメディア符号化デバイス2400は、ORTサービスを生成する1つ以上のORTモジュールを含むことができる。しかしながら、説明を単純化するため、図24は、符号器モジュール2404のみを例示する。
【0233】
符号器モジュール2404は、受信されたデータ流を少なくとも品質及びレート情報と関連づけることができる。より詳細に説明されるように、符号化モジュール2404は、流れのコンテンツを解析し、流れを、各々の品質及びレート情報、例えば品質−レート曲線、コンテンツ分類曲線又は品質−レートテーブルと関連づけることができる。品質及びレート情報は、特に、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望するデータセグメントに関して異なる品質レベルでデータセグメントのサイズを示すことができる。符号器モジュール2404は、データセグメントと関連づけられた少なくとも品質及びレート情報をマルチプレクスモジュール2406に送る。符号器モジュール2404は、制御チャネルを介して品質及びレート情報をマルチプレクスモジュール2406に送ることができる。例えば、符号器モジュール2404は、マルチプレクスモジュール2406から受け取られた要求に応答して制御チャネルを介して品質及びレート情報を送ることができる。マルチプレクスモジュール2406及び符号器モジュール2404は、幾つかの異なる通信プロトコルを用いて通信することができる。一側面においては、マルチプレクスモジュール2406は、メッセージトランスポート層(MTL)を基本的なトランスポート機構として利用するプロトコルを用いて通信することができる。
【0234】
マルチプレクスモジュール2406は、品質及びレート情報を受け取る。幾つかの場合においては、マルチプレクスモジュール2406は、配送要求事項、例えば1つ以上のORTサービスと関連づけられた優先度及びレーテンシーの要求事項を受け取ることもできる。マルチプレクスモジュール2406は、1つ以上の配送要求事項を解析し、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望するデータセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定する。マルチプレクスモジュール2406は、例えば、マルチメディア符号化デバイス2400の目標品質レベルとデータセグメントと関連づけられた各々の品質−レート曲線との間の交点に対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかについての最初の決定を行う。他の例として、マルチプレクスモジュール2406は、データセグメントと関連づけられた品質−レートテーブルにおいて指定される最高の品質レベルに対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかについての最初の決定を行うことができる。
【0235】
データセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定するために、マルチプレクスモジュール2406は、品質レベルのうちの選択された1つに対応するサイズでデータセグメントの各々を送るために必要な送信資源量を決定し、データセグメントを送るために必要な送信チャネル資源量を合計し、及び全データセグメントによって要求される送信チャネル資源の合計量を利用可能な送信チャネル資源量と比較してデータセグメントを送る上での十分な送信チャネル資源が存在するかどうかを決定することができる。無線に関しては、送信チャネル資源は、エアリンク又はエアインタフェース資源を備えることができる。一側面例においては、マルチプレクスモジュール2406は、十分な送信チャネル資源が存在するかどうかを決定するためのスロット割り当てアルゴリズム、例えば上述されるスロット割り当てアルゴリズムのうちの1つ、を実行することができる。上記においてより詳細に説明されるように、マルチプレクスモジュール2406は、全サービス/セグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するために符号器モジュール2404のデータセグメントと関連づけられた品質及びレート情報と連携してORTサービス配送要求事項を考慮に入れることもできる。
【0236】
複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないことをマルチプレクスモジュール2406が決定した場合、例えば、スロット割り当てアルゴリズムが失敗であるか又は必要な送信チャネル資源の合計が利用可能な送信チャネル資源を超える場合は、マルチプレクスモジュール2406は、符号器モジュール2404から受け取られた品質及びレート情報に基づいてサイズが変更されるべき1つ以上のセグメントを選択する。マルチプレクスモジュール2406は、対応する縮小されたサイズにおける品質上の影響が最も小さいサイズが変更されるべきデータセグメントを選択することを試みる。以下においてより詳細に説明されるように、マルチプレクスモジュール2406は、品質−レート情報を解析してセグメントに対して割り当てられたビット数の減少後における各々のデータセグメントへの品質上の影響を決定し、縮小されたサイズにおいて最高のレベルを有するデータセグメントのうちの1つ以上を選択する。この方法により、マルチプレクスモジュールは、符号器モジュール2404のリアルタイムサービス間で裁定することができる。しかしながら、幾つかの場合においては、マルチプレクスモジュール2406は、関連づけられた配送要求事項に基づいてサイズが変更されるべき1つ以上のORTサービスを選択し、符号器モジュール2404のリアルタイムサービス及びORTサービス間で帯域幅を割り当てることができる。繰り返すと、ここにおける技法は、典型例を目的としてリアルタイムサービスに関して説明される。マルチプレクスモジュール2406は、依然として、上述される技法に従ってORTサービスを解析及びサイズ変更することができる。以上のように、以下の図において説明される技法は、リアルタイムサービスのサイズ変更により適用可能である。
【0237】
マルチプレクスモジュール2406は、選択されたデータセグメントと関連づけられた符号器モジュール2404に対して、縮小されたビット割り当てに従ってデジタルマルチメディアデータの流れのサイズを変更するように要求する。幾つかの場合においては、マルチプレクスモジュール2406は、サービスを送信する上で十分な帯域幅が存在しないときに選択されたデータセグメントのサイズを縮小するように符号器モジュール2404に要求することができる。その他の場合においては、マルチプレクスモジュール2406は、余分の利用可能な帯域幅が存在するときに選択されたデータセグメントのサイズを拡大するように符号器モジュール2404に要求することができる。マルチプレクスモジュール2406は、選択されたセグメントと関連づけられた符号器モジュール2404に対して制御チャネルを介してサイズ変更要求を送ることができる。サイズ変更要求は、選択されたデータセグメントに関するサイズを、例えばビット単位で指定することができる。
【0238】
選択されたデータセグメントと関連づけられた符号器モジュール2404は、各々のデータセグメントと関連づけられたサイズ変更要求を受け取り、マルチメディアデータセグメントのサイズを変更する。符号器モジュール2404は、幾つかの異なる方法でデータセグメントのサイズを変更することができる。選択されたデータセグメントと関連づけられた符号器モジュール2404は、1つ以上の符号化変数を調整し、データセグメントのサイズをサイズ変更要求において指定される最大サイズ以下に縮小することができる。例えば、符号化モジュール2404は、より高い量子化パラメータ(QP)を用いてデータセグメントを再符号化することができる。他の例として、符号化モジュール2404は、引き下げられた符号化レートでデータセグメントを再符号化することができる。代替として又は追加で、符号化モジュール2404は、符号化されるべき情報量を減らし、それによってデータセグメントのサイズを縮小することができる。幾つかの場合においては、符号化モジュール2404は、1つ以上の符号化変数を調整し、サイズ変更要求において指定されるサイズとなるデータセグメントのサイズを拡大することができる。例えば、符号化モジュール2404は、より小さいQPを用いてデータセグメントを再符号化するか又は引き上げられた符号化レートでデータセグメントを再符号化することができる。
【0239】
マルチプレクスモジュール2406は、マルチプレクスモジュール2406が現在のスーパーフレームを生成する準備が完了しているときに符号化されたデータセグメントを収集する。マルチプレクスモジュール2406は、例えば、制御チャネルを介して符号化モジュール2404に転送要求を送ることができる。要求に応答して、符号化モジュール2404は、符号化されたマルチメディアデータセグメントをマルチプレクスモジュール2406に送る。マルチプレクスモジュール2406は、マルチメディアデータの流れを結合してスーパーフレームを形成し、送信チャネル2402を介して1つ以上の復号デバイスに送信するためにそのスーパーフレームを送信機2408に送る。この方法により、マルチプレクスモジュール2406は、複数のデータ流の最高の全体的品質を保持しながらすべてのデータセグメントを固定された帯域幅チャネル2402内に最も効率的に入れることができるように流れ間でのビット割り当てを管理する。
【0240】
マルチメディア符号化デバイス2400内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型例である。しかしながら、マルチメディア符号化デバイス2400は、希望される場合はその他の数多くの構成要素を含むことができる。さらに、この開示の技法は、図24のようなシステム又はブロードキャストシステムにおいて用いることには必ずしも限定されない。これらの技法は、制限された帯域幅を有する送信チャネルにおいて送信するために複数のマルチメディアデータ流を符号化するために符号化技法が用いられるあらゆるマルチメディア符号化環境において用途を見つけることができる。マルチメディア符号化デバイス2400の例示される構成要素は、符号器/復号器(CODEC)の一部として統合することができる。送信機2408は、符号器又はCODECとは異なる構成要素又はチップ上において形成することができる。
【0241】
マルチメディア符号化デバイス2400内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、マルチメディア符号化デバイス2400は、マルチメディアコーディング基準、例えば、ムービング・ピクチャ・エキスパーツ・グループ(MPEG−4)、国際電気通信連合標準化セクター(ITU−T)、例えばH.263又はH.264、又は他のコーディング基準、又はこれらの組み合わせに準拠することができる。特に、マルチプレクスモジュール2406と通信する各々の符号器モジュール2404は、裁定するためにマルチプレクスモジュール2404によって用いられる品質及びレート情報は各々の符号器モジュール2404に関して独立して生成できるという事実のおかげで異なるマルチメディアコーディング基準に準拠することができる。
【0242】
異なる特徴をモジュールとして描くことは、マルチメディア符号化デバイス2400の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、マルチメディア符号化デバイス2400の例に制限されるべきでない。
【0243】
図25は、複数の流れに関する最高の全体的品質を保持しながらこれらの複数の流れがスーパーフレーム内に最も効率的にぴったり納まるように試みてこれらの複数の流れ間でのビット割り当てを管理する他の典型的マルチメディア符号化デバイス2500を示すブロック図である。マルチメディア符号化デバイス2500は、図24のマルチメディア符号化デバイス2400に実質的に準拠するが、選択されたマルチメディアデータセグメントのサイズ変更は、選択されたデータセグメントと関連づけられたサイズ変更モジュール2502A乃至2502N(総称して“サイズ変更モジュール2502”)によって行われる。
【0244】
従って、図24の符号器モジュール2404の機能は、符号器モジュール2504とサイズ変更モジュール2502との間で分割される。換言すると、符号器モジュール2504は、利用可能な帯域幅をデータセグメントに割り当て、その割り当てが失敗したときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択する際に用いるために各々のデータセグメントと関連づけられた品質及びレート情報をマルチプレクスモジュール2506に提供する。サイズ変更モジュール2502は、データセグメントのサイズを変更する要求をマルチプレクスモジュール2506から受け取り、マルチプレクスモジュール2506から受け取られたサイズ変更に従ってデータセグメントのサイズを変更する。
【0245】
図26は、この開示の技法により機能する典型的符号器モジュール2600を例示するブロック図である。符号器モジュール2600は、例えば、図24の符号化デバイス2400の符号器モジュール2404のうちのいずれか1つを表すことができる。符号器モジュール2600は、マルチプレクスモジュールインタフェース2602と、コンテンツ分類モジュール2604と、品質−レート情報モジュール2606と、符号化モジュール2602と、を含む。符号化モジュール2608は、サイズ変更モジュール2612をさらに含む。サイズ変更モジュール2612は、図1のサイズ変更コントローラ116を表すことができる。
【0246】
符号化モジュール2600は、1つ以上のマルチメディアデータ流をソースから受け取る。符号器モジュール2600は、例えば、符号器モジュール2600に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータの流れを受け取る。マルチメディアデータの流れは、コーディングされてブロードキャストとして送信される対象となるライブのリアルタイム映像、音声又は映像と音声の流れを備えることができ、又はコーディングされてブロードキャストとして又は要求に応じて送信される対象となる予め記録されて保存された映像、音声、又は映像と音声の流れを備えることができる。この開示の技法は、非リアルタイムサービス又はリアルタイムサービスと非リアルタイムサービスの組み合わせに対しても適用することができる。
【0247】
上述されるように、符号器モジュール2600は、データのコンテンツにかかわらずデータ流に関する一定の認識品質評価基準を維持することを試みることができる。換言すると、符号器モジュール2600は、すべてのデータ流を目標品質レベルで出力するのを試みることができる。一定の又は同様の認識品質レベルを維持するために、符号器モジュール2600は、異なるコンテンツを有するデータセグメントに関して異なるビットレートを選択することができる。この目的のため、コンテンツ分類モジュール2604は、コンテンツに基づいてデータセグメントを分類する。コンテンツ分類モジュール2604は、データセグメントのデータの複雑さ(例えば、空間的複雑さ及び/又は時間的複雑さ)に基づいてデータセグメントを分類することができる。適切なコンテンツ分類方法が、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において説明されている。例えば、コンテンツ分類モジュール2604は、動き情報を(x軸における)“高”、“中”、及び“低”のカテゴリに分類し、テクスチャ情報を(y軸における)“高”、“中”、及び“低”のカテゴリに分類することができ、コンテンツ分類は、交差点において示される。この分類は、例えば特定の品質−レート曲線と関連づけることができる。
【0248】
コンテンツ分類モジュール2604は、分類に基づいてデータセグメントを品質及びレート情報と関連づける。一側面においては、コンテンツ分類モジュール2604は、データセグメントを各々の品質−レート曲線と関連づける。品質−レート曲線は、品質評価基準、例えばピーク信号対雑音比(PSNR)、をビットレートの関数としてモデル化する。品質−レート曲線は、例えば、以下の形の対数関数を用いてモデル化することができる。
【0249】
Q=a*ln(R)+b
ここで、Qは品質評価基準であり、Rはビットレートであり、a及びbは幾つかのサンプルデータポイントを用いて計算された定数である。符号器モジュール2600は、様々なコンテンツを有するデータの流れに関する品質−レート特性を表す複数の品質−レート曲線を維持することができる。一例として、符号器モジュール2600は、流れのコンテンツ内における様々なレベルの動き及びテクスチャと関連づけられた8つの異なるクラス、例えば様々なレベルの動き及びテクスチャ、に関する品質−レート曲線を維持することができる。一定のPSNRが必ずしも一定の認識品質を意味するものではないという事実を考慮して、符号器モジュール2600は、PSNR以外の品質評価基準、例えば平均意見点数(MOS)、を用いる品質−レート曲線を維持することができる。代替として、符号器モジュール2600は、一定のPSNRが必ずしも一定の認識品質を意味するものではないという事実を考慮して品質−レート曲線を調整することができる。例えば、符号器モジュール2600は、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において詳述されているように伝統的な品質−レート曲線をオフセットだけ調整することができる。
【0250】
代替として、符号器モジュール2600は、各コンテンツ曲線と関連づけられた目標品質レベルをオフセットだけ調整することができる。高い動き、高いテクスチャコンテンツを含むデータセグメントは、例えば、目標品質レベルに関してわずかにより低い品質で符号化することができ、低い動き、低いテクスチャコンテンツを含むデータセグメントは、例えば、目標品質レベルに関してわずかにより高い品質で符号化することができる。各コンテンツクラスは、全体的な目標品質レベルに関する自己の調整された品質レベルを有するため、符号器モジュール2600は、各コンテンツクラスに関する品質レベルを正規化して符号器モジュール2600における現在の品質レベルを測定することができる。符号器モジュール2600は、以下の線形方程式に従ってこの正規化を達成することができる。
【0251】
Qnorm=Qr−Qk (5)
ここで、Qnormは正規化された品質レベルであり、Qrは記録された品質レベルであり、Qkは曲線kに関する品質レベルの調整オフセットである。品質正規化が線形関数でない場合は、順位決定は品質正規化後に行わなければならない。
【0252】
この開示の他の側面においては、コンテンツ分類モジュール2604は、データセグメントを、これらのセグメントと関連づけられた1つ以上の品質レベル及び各々の品質レベルにおけるセグメントのサイズを示す予め計算された品質−レートテーブルと関連づけることができる。このために、コンテンツ分類モジュール2604は、データセグメントを、品質−レートテーブルのうちの特定の1つに対応する品質−レート曲線と関連づけることができる。品質−レート曲線、調整された品質−レート曲線、及び予め計算された品質−レートテーブルは、メモリ内において維持し(示されていない)、必要時にコンテンツ分類モジュール2604によってアクセスすることができる。
【0253】
幾つかの場合においては、符号器モジュール2600は、予め計算された品質−レート情報を格納しないか又は単に品質−レート情報の一部を予め計算するだけである。品質−レート情報生成モジュール2606は、例えば、コンテンツ分類において用いるために複数の品質−レート曲線及び調整された品質−レート曲線を予め計算することができる。品質−レート曲線及びコンテンツ分類曲線を生成するための1つの典型的技法が、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において説明されている。
【0254】
しかしながら、品質−レート情報生成モジュール2606は、データセグメントの各々に関する品質−レートテーブルを分類に基づいて各セグメントごとに生成することができる。例えば、品質−レート情報生成モジュール2606は、順位とサイズの対を記載するテーブルを生成することができる。これらの順位は、特定の品質レベルに対応する。各順位は、例えば、品質評価基準の特定の低下と対応することができる。PSNRを典型的な品質評価基準として用いることによって、各順位は、PSNRの0.05dBの低下に対応することができる。特に、0の順位は、ベストエフォート品質レベルに対応することができ、1の順位は、最高の品質レベルと対応し、2の順位は、前の品質レベルよりも0.05dBだけ低い品質レベルに対応し、以下同様である。一側面においては、最高の品質に対応する順位(例えば、順位1、2及び3)は、実際には、目標品質レベルよりも高い品質レベルに対応することができる。
【0255】
品質−レート情報生成モジュール2606は、以下においてさらに詳細に説明されるように、品質−レート曲線のうちの対応する1つを用いて順位を決定することができる。一側面においては、品質−レート情報生成モジュール2606は、複数の品質レベル及び対応する順位を計算し、対応する品質−レート曲線を用いて品質レベルの各々における各データセグメントのサイズを決定することができる。この開示の他の側面においては、品質−レート情報生成モジュール2606は、符号器モジュール2600が提供することができるデータセグメントのサイズを計算し、次にこれらのサイズの各々における品質レベル及び対応する順位を計算することができる。例えば、符号器モジュール2600は、固定された量だけ、例えば送信チャネルの最小送信単位サイズだけ、サイズを増分的に縮小し、以下の方程式を用いて希望されるサイズの各々に対応する順位を計算することができる。
【0256】
Rank=CEILING((Ak−S)/xk) (6)
ここで、RANKは、希望されるサイズに関する対応する順位値であり、Akはk番目の品質−レート曲線に関する調整された目標品質レベルであり、Sは希望されるサイズに対応する品質レベル(すなわち、希望されるサイズとk番目の品質−レート曲線の交点に対応する品質レベル)であり、xkは、順位当たりの増分的品質低下であり、CEILING(x)はx以上である最小整数値を出力する天井関数である。
【0257】
符号器モジュール2600は、マルチプレクスモジュール(2406、2506)が現在のスーパーフレームのサイズをモニタリングし及びデータセグメントのうちのいずれをサイズ変更すべきかを決定するのを援助するためにデータセグメントの各々と関連づけられた少なくとも品質及びレート情報をマルチプレクスモジュール(2406、2506)に送る。符号器モジュール2600は、例えば、現在のスーパーフレーム内に含められるべきデータセグメントと関連づけられた品質及びレート情報を送ることができる。符号器モジュール2600は、マルチプレクスモジュール(2406、2506)からの要求に応答して少なくとも品質及びレート情報をマルチプレクスモジュール(2406、2506)に送ることができる。符号器モジュール2600は、例えば、データセグメントと関連づけられた品質−レート曲線又は品質−レートテーブルを送ることができる。
【0258】
符号器モジュール2600と関連づけられたデータセグメントのうちのいずれかをサイズ変更する必要がある場合は、マルチプレクスモジュール(2406、2506)は、符号器モジュール2600にサイズ変更要求を送る。サイズ変更要求に応答して、サイズ変更モジュール2612は、マルチメディアデータセグメントのサイズを変更する。一例においては、サイズ変更モジュール2612は、データセグメントのサイズを大きくする、すなわち、データセグメントを拡大することができる。他の例においては、サイズ変更モジュール2612は、データセグメントのサイズを小さくする、すなわちデータセグメントを縮小する。データセグメントの縮小は、データセグメントの品質レベルを目標品質レベル以下に低下させる可能性がある。しかしながら、サイズが変更されたデータセグメントの品質レベルが最低品質レベルを下回る場合は、サイズ変更モジュール2612は、最低品質レベル以上であるサイズにデータセグメントのサイズを変更することしかできない。マルチプレクスモジュール(2406、2506)からのサイズ変更要求は、データセグメントに関するサイズ、例えば最大サイズ、を含むことができ、及びサイズ変更モジュール2612は、再符号化要求において指定されるサイズを達成するために1つ以上の符号化変数を調整することができる。サイズ変更モジュール2612は、例えば、データセグメントのサイズを変更するためにデータセグメントを調整されたビットレートで再符号化する、例えば、データセグメントがサイズ変更要求において指定される最大サイズ以下になるようにサイズ変更するためにデータセグメントを引き下げられたビットレートで再符号化することができる。他の例として、サイズ変更モジュール2612は、調整された量子化パラメータを用いてデータセグメントを再符号化することができる。
【0259】
符号器モジュール2600は、現在のスーパーフレーム内に含められるべき符号化されたデータセグメントを送る要求をマルチプレクスモジュール(2406、2506)から受け取る。マルチプレクスモジュール(2406、2506)からの要求に応答して、符号器モジュール2600は、符号化されたデータセグメントをマルチプレクスモジュール(2406、2506)に送る。上述されるように、符号器モジュール2600は、構成された目標品質でサイズ変更するために選択されなかったデータセグメントを送る。しかしながら、符号器モジュール2600は、低下された品質でサイズ変更するために選択されたデータセグメントを送る。
【0260】
符号器モジュール2600内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型である。しかしながら、符号器モジュール2600は、希望される場合はその他の数多くの構成要素を含むことができる。符号器モジュール2600内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、ASIC、FPGA、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、符号器モジュール2600は、MPEG−4、ITU−TH.263、ITU−TH.264、又は他のコーディング基準、等のマルチメディアコーディング基準に準拠することができる。異なる特徴をモジュールとして描くことは、符号化モジュール2600の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、符号化デバイス2600の例に制限されるべきでない。
【0261】
図27は、この開示の技法によりビット割り当てを管理する典型的マルチプレクスモジュール2700を例示するブロック図である。特に、マルチプレクスモジュール2700は、各々の符号器モジュール、例えば符号器モジュール2404(図24)、から複数のデータセグメントを受け取り、データセグメントを送るために必要なエアリンク資源が利用可能なエアリンク資源を超えないような形でデータセグメントのうちの1つ以上のサイズを変更するように要求する。マルチプレクスモジュール2700は、例えば、図24のマルチプレクスモジュール2406又は図25のマルチプレクスモジュール2506を表すことができる。マルチプレクスモジュール2700は、符号器モジュールインタフェース2702と、データ収集モジュール2086と、ビット管理モジュール2704と、を含む。ビット管理モジュール2704は、利用可能な帯域幅を割り当てる割り当てモジュール2708と、帯域幅割り当てが不成功であるときにデータセグメントのうちのいずれをサイズ変更すべきかを決定する選択モジュール2710と、を含む。
【0262】
上述されるように、マルチプレクスモジュール2700は、符号化されたデータセグメントを符号器モジュールインタフェース2702を介して符号器モジュール2404から受け取り、符号化されたデータセグメントを結合してスーパーフレーム内に入れ、そのスーパーフレームを1つ以上の復号デバイス、例えば図1のモバイルデバイス102、に送信する。この開示の技法は、1秒のデータスーパーフレームに関して説明されるが、これらの技法は、その他のデータセグメントを送信するために、例えば異なる期間にわたって受け取られるデータセグメントに関して又は個々のデータフレームに関して利用することもできる。
【0263】
ビット管理モジュール2704は、生成されたスーパーフレームの各々のスーパーフレームのサイズをモニタリングし、スーパーフレームを送るために必要な送信チャネル資源(例えば、エアリンク資源)が送信チャネル2402を通じての利用可能な送信チャネル資源を超過しないようにする。ビット管理モジュール2704がスーパーフレームのサイズをモニタリングするのを援助するため、データ収集モジュール2706は、各々の符号器モジュール2704から品質及びレート情報を受け取る。データ収集モジュール2706は、例えば、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望する各データセグメントと関連づけられた配送要求事項、例えば品質及びレート情報、を要求する要求を各々の符号器モジュール2404に送ることができる。品質及びレート情報は、データセグメントに関する少なくとも品質評価基準をビットレート又はデータサイズの関数として示す。例えば、データ収集モジュール2706は、PSNR等の品質評価基準をモデル化するセグメントに対応する品質−レート曲線を、各々のデータセグメントに関するビットレートの関数として受け取ることができる。他の例においては、データ収集モジュール2706は、データセグメントと関連づけられた品質−レートテーブルを受け取る。上述されるように、品質−レートテーブルは、様々な順位(又は品質レベル)及び異なる順位の各々と関連づけられたサイズを示すことができる。従って、品質及びレート情報は、特に、符号器モジュール2404が現在のスーパーフレームにおいて送信することを希望するデータセグメントに関する異なる品質レベルにおけるデータセグメントのサイズを記述する。
【0264】
ビット管理モジュール2704は、少なくとも品質及びレート情報を解析して複数のデータセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定することができる。ビット管理モジュール2704は、品質及びレート情報に加えてその他の配送要求事項を解析することができる。例えば、ビット管理モジュール2704は、ORTサービスと関連づけられた優先度及びレーテンシー要求事項を解析することができる。ビット管理モジュール2704は、データセグメント間で利用可能な帯域幅を割り当てることを試みる割り当てモジュール2708を含むことができる。割り当てモジュール2708は、例えば、上述される割り当てアルゴリズムのうちの1つを用いて利用可能な帯域幅を割り当てることを試みることができる。利用可能な帯域幅を割り当てる第1の試みにおいては、割り当てモジュール2708は、データセグメントと関連づけられた目標品質レベルと各々の品質−レート曲線との間の交点に対応するサイズを用いて帯域幅を割り当てることを試みることができる。他の例として、マルチプレクスモジュール2406は、データセグメントと関連づけられた品質−レートテーブルにおいて指定される最高の品質レベルに対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかに関する最初の決定を行うことができる。割り当てモジュール2708がデータセグメント間において帯域幅を割り当てることに成功した場合、例えば、データセグメントを送る上での十分な送信チャネル資源が存在し及び余分の送信チャネル資源が存在しない場合は、サイズ変更は必要ない。
【0265】
しかしながら、割り当てモジュール2708が目標品質レベル又は最高の品質レベルと関連づけられたサイズ情報を用いて利用可能な帯域幅を成功裏に割り当てることができない場合は、ビット管理モジュール2704は、サイズ変更されるべきデータセグメントのうちの1つ以上を選択する。例えば、ビット管理モジュール2704は、不十分な送信チャネル資源が存在するときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択することができる。他の例として、ビット管理モジュール2704は、余分の送信チャネル資源量がしきい値を超えるときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択することができる。特に、ビット管理モジュール2704は、符号器モジュール2404から受け取られた少なくとも品質及びレート情報を解析して1つ以上のデータセグメントをサイズ変更のために選択する選択モジュール2710を含む。選択モジュール2710がサイズ縮小のために1つ以上のデータセグメントを選択する場合おいては、選択モジュール2710は、解析に基づいて、対応する縮小されたサイズにおける品質への影響が最低である1つ以上のデーセグメントを選択することができる。データセグメントの品質(QV)は、データセグメントに割り当てられたビットレート(r)の関数であり、以下の品質関数によって与えられる。
【数1】
【0266】
ここで、kはマルチメディアセグメント特有の定数であり、符号器モジュール2404によって提供される。
【0267】
選択モジュール2710は、以下に示される最適化問題に従ってすべてのデータセグメントの全体的品質を最高にすることを試みる。
【数2】
【0268】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能帯域幅であり、QViはi番目のデータセグメントと関連づけられた品質であり、QV−miniはi番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【0269】
選択モジュール2710は、存在する場合において、データセグメントと関連づけられた結果的に得られる品質が割り当てられた優先度に比例するような形でビットレート、従ってサイズ、をデータセグメントに割り当てる。上記の最適化問題は、ラグランジュ乗数法及びクーン・タッカー条件を用いて解くことができる。最適化問題を標準形(最大化及び≦制約)に変換することによって以下を得る。
【数3】
【0270】
ラグランジュ関数は以下のように定義される。
【数4】
【0271】
以下は、クーン・タッカー条件の組である。
【数5】
【数6】
【0272】
リアルタイム映像流へのビットレートの望ましい割り当ては、方程式(10)乃至(15)を満たすべきである。選択モジュール2710は、標準的な非線形プログラミング技法のうちのいずれかを用いてこれらの方程式の組を解くことができる。
【0273】
以下は、2つのデータセグメント(すなわち、n=2)に関するレート及び以下のパラメータ値のスケジューリング例である。
【数7】
【0274】
上記のパラメータに基づき、選択モジュール2710は、4800kbpsのビットレートを第1のマルチメディアセグメントに割り当て、200kbpsのビットレートを第2のマルチメディアセグメントに割り当てる。1秒のデータセグメントの場合は、第1のデータセグメントの最大サイズは、4800キロビットで、第2のデータセグメントの最大サイズは200キロビットである。選択モジュール2710は、品質及びレート情報において示されるデータセグメントの推定サイズを計算された最大サイズと比較し、関連づけられた最大サイズを超えるいずれかのデータセグメントをサイズ変更されるべきセグメントとして選択する。
【0275】
他の例においては、マルチプレクスモジュール14は、符号器モジュール2404から受け取られた品質−レートテーブルを用いてサイズが変更されるべき1つ以上のデータセグメントを選択することができる。上述されるように、最初の帯域幅割り当て中に、割り当てモジュール2708は、最高の品質レベルと関連づけられた順位に対応するサイズ情報を用いて帯域幅を割り当てることを試みる。選択された順位のサイズにおけるデータセグメントへの帯域幅割り当てが不成功であるときには、選択モジュール2710は、次に最高の全体的品質を有するデータセグメントに関する順位の組み合わせを選択する。以下のテーブル1は、品質−レートテーブルのうちで流れ1乃至4と関連づけられた4つのデータセグメントに対応する部分を示す。特に、テーブル1は、現在の順位値、現在の順位におけるデータセグメントのサイズ、次の順位値、及び流れ1乃至4と関連づけられた4つのデータセグメントに関する次の順位におけるデータセグメントのサイズを示す。選択モジュール2710の選択プロセスを例示しやすくするためにテーブル1の参照が用いられる。
【表1】
【0276】
選択モジュール2710は、品質−レートテーブルを解析して最高の品質レベルと関連づけられた次の順位を有するデータセグメントのうちの1つ以上を識別する。テーブル1に示される事例においては、最小値を有する次の順位は、最高の品質レベルに対応する。テーブル1に関して、選択モジュール2710は、流れ1及び流れ3と関連づけられたセグメントを最小の次の順位を有するとして識別する。テーブル1に示されるように、流れ1及び流れ3と関連づけられたデータセグメントは、両方とも、次の順位値である5を有し、流れ2及び流れ4と関連づけられたデータセグメントは、最低の品質レベルに対応する、次の順位値6及び8をそれぞれ有する。この方法により、選択モジュール2710は、品質−レートテーブルを解析して次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別する。
選択モジュール2710は、サイズを変更すべき識別されたデータセグメントのうちの少なくとも1つを選択する。識別されたデータセグメントのうちで、選択モジュール2710は、現在の順位と関連づけられた最大サイズを有する識別されたデータセグメントを選択することができる。テーブル1に関して、選択モジュール2710は、流れ3と関連づけられたデータセグメントの現在のサイズが40,000バイトではなく45,000バイトであるためこのデータセグメントを選択する。代替として、選択モジュール2710は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。再度テーブル1に関して、選択モジュール2710は、流れ3と関連づけられたセグメントに関する5,000バイトの差とは対照的に10,000バイトの差を有する流れ1と関連づけられたデータセグメントを選択する。
【0277】
選択モジュール2710がデータセグメントのうちの1つ以上を選択後は、割り当てモジュール2708は、選択されたデータセグメントに関する引き下げられた順位又は品質と関連づけられたサイズを用いて利用可能な帯域幅を割り当てることを試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2710は、サイズが変更されるべき追加のデータセグメント又はさらに引き下げられたレベルにおいてサイズが変更されるべき同じセグメントを選択する。
【0278】
割り当てモジュール2708がデータセグメント間で利用可能な帯域幅を成功裏に割り当てた後は、ビット管理モジュール2704は、全データセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まるように各々の選択されたデータセグメントのサイズ変更を要求する。ビット管理モジュール2704は、例えば、選択されたマルチメディアデータセグメントと関連づけられた符号器モジュール2404にサイズ変更要求を送る。ビット管理モジュール2704は、データセグメントの最大の受け入れ可能なサイズを指定することができる。符号器モジュール2404は、上記において詳細に説明されるようにサイズ変更要求に含まれる情報に基づいてデータを再符号化する。
【0279】
割り当てモジュール2708及び選択モジュール2710は、データセグメントに関するビット割り当てを行い、同様の方法でサイズを拡大すべき1つ以上のデータセグメントを選択することができる。例えば、選択されたデータセグメントと関連づけられた品質−レートテーブルを用いて、割り当てモジュールは、最初に、目標品質レベルと関連づけられた順位に対応するサイズ情報を用いて帯域幅を割り当てることを試みることができる。目標品質レベルに対応するサイズにおけるデータセグメントへの帯域幅の割り当てが不成功である、すなわち、この場合においては余分の帯域幅量がしきい値を超えるときには、選択モジュール2710は、より良い全体的品質を有するデータセグメントに関する順位の新しい組み合わせを選択する。
【0280】
特に、選択モジュール2710は、品質−レートテーブルを解析して次に最高の品質レベルと関連づけられた次に最高の順位を有するデータセグメントのうちの1つ以上を識別することができる。選択モジュール2710は、サイズを拡大すべき識別されたデータセグメントのうちの少なくとも1つを選択する。識別されたデータセグメントのうちで、選択モジュール2710は、現在の順位に対応する最小サイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2710は、現在の順位におけるセグメントのサイズと次に最高の順位におけるセグメントのサイズの間の差が最小である識別されたデータセグメントを選択することができる。
【0281】
いずれの場合においても、データ収集モジュール2706は、データセグメントを結合してスーパーフレーム内に入れる準備が完了しているときにデータ要求を送出する。データ収集モジュール2706は、コマンドに応答して符号化されたデータセグメントを受け取る。マルチプレクスモジュール2700は、符号化されたマルチメディアデータセグメントを結合することによってスーパーフレームを組み立てる。マルチプレクスモジュール2700は、スーパーフレームを送信のために送信機2408(図24)に提供するか又は送信機2408がスーパーフレームを要求するまでスーパーフレームをバッファリングすることができる。
【0282】
マルチメディアマルチプレクスモジュール2700内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型例である。しかしながら、マルチプレクスモジュール2700は、希望される場合はその他の数多くの構成要素を含むことができる。マルチプレクスモジュール2700内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、ASIC、FPGA、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、マルチプレクスモジュール2700は、マルチメディアコーディング基準、例えば、MPEG−4、ITU−T H.263、ITU−T H.264、又は他のコーディング基準、に準拠することができる。異なる特徴をモジュールとして描くことは、マルチプレクスモジュール2700の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、マルチプレクスモジュール2700の例に制限されるべきでない。
【0283】
図28は、この開示の技法によりマルチメディアデータを符号化する符号器モジュール、例えば図26の符号器モジュール2600、の典型的動作を例示する流れ図である。符号器モジュール2600は、1つ以上のマルチメディアデータ流をソースから受け取る(2800)。符号器モジュール2600は、例えば、符号器モジュール2404に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータ流を受け取ることができる。マルチメディアデータ流は、ライブのリアルタイムコンテンツ、非リアルタイムコンテンツ、又はリアルタイムコンテンツと非リアルタイムコンテンツの組み合わせを備えることができる。
【0284】
符号器モジュール2600は、コンテンツに基づいてデータセグメントを分類する(2802)。コンテンツ分類モジュール2604(図26)は、例えば、セグメントのデータの複雑さ(例えば、空間的複雑さ及び/又は時間的複雑さ)に基づいて受信されたデータセグメントを分類することができる。
【0285】
コンテンツ分類モジュール2604は、分類に基づいてデータセグメントを品質及びレート情報と関連づける(2804)。一例として、コンテンツ分類モジュール2604は、データセグメントを複数の品質−レート曲線のうちの1つと関連づけることができる。上述されるように、品質−レート曲線は、予め計算してメモリ内に格納することができる。他の例として、コンテンツ分類モジュール2604は、データセグメントを複数の予め計算された品質−レートテーブルのうちの1つと関連づけることができる。
【0286】
符号器モジュール2600は、データセグメントに関する追加の品質及びレート情報を生成することができる(2806)。例えば、品質及びレート情報生成モジュール2606は、各々のデータセグメントに関する品質−レートテーブルを生成することができる。上述されるように、品質−レートテーブルは、データセグメントと関連づけられた1つ以上の品質レベル及び各々の品質レベルにおけるデータセグメントのサイズを示す。一例として、品質及びレート情報生成モジュール2606は、データセグメントと関連づけられた品質−レート曲線を用いて順位とサイズの対を記載するテーブルを生成することができる。
【0287】
符号器モジュール2600は、データセグメントと関連づけられた品質及びレート情報をマルチプレクスモジュールに送る(2808)。符号器モジュール2600は、例えば、マルチプレクスモジュールからの要求に応答してデータセグメントと関連づけられた品質及びレート情報を送ることができる。符号器モジュール2600は、例えば、データセグメントと関連づけられた品質−レート曲線及び/又は品質−レートテーブルを送ることができる。上記において詳細に説明されるように、マルチプレクスモジュールは、品質及びレート情報を用いて現在のスーパーフレームのサイズをモニタリングし及びマルチプレクスモジュールがデータセグメントのうちのいずれをサイズ変更する必要があるかを決定するのを援助する。
【0288】
符号器モジュール2600と関連づけられたデータセグメントのうちのいずれかのサイズを変更する必要がある場合は、符号器モジュール2600は、マルチプレクスモジュールからサイズ変更要求を受け取る(2810)。マルチプレクスモジュールからのサイズ変更要求は、データセグメントに関するサイズ、例えば単位がビットの最大サイズ、を含むことができる。サイズ変更要求に応答して、サイズ変更モジュール2612は、サイズ変更要求において指定されるサイズ制限を満たすように符号化されたデータセグメントのサイズを変更する(2812)。この開示の一側面においては、サイズ変更モジュール2612は、データセグメントのサイズを縮小するように1つ以上の符号化変数を調整する。サイズ変更モジュール2612は、例えば、引き下げられたビットレートで又は調整された、例えばより高い量子化パラメータを用いてデータセグメントを再符号化することができる。代替として又は追加で、サイズ変更モジュール2612は、符号化されるべき情報量を調整することができる。例えば、サイズ変更モジュール2612は、データセグメントのサイズを縮小するために動き情報を符号化するために用いられるビット数を減少させることができる。この開示の他の側面においては、サイズ変更モジュール2612は、データセグメントのサイズを拡大するように1つ以上の符号化変数を調整することができる。サイズ変更モジュール2612は、例えば、大きくされたビットレートで又はより小さい量子化パラメータを用いてデータセグメントを再符号化することができる。
【0289】
符号器モジュール2600は、現在のスーパーフレーム内に含められるべきデータセグメントの符号化されたコンテンツを送る要求をマルチプレクスモジュールから受け取る(2814)。マルチプレクスモジュールからの要求に応答して、符号器モジュール2600は、データセグメントの符号化されたコンテンツをマルチプレクスモジュールに送る(2816)。上述されるように、符号器モジュール2600は、サイズ変更のために選択されなかったデータセグメントを原サイズで送り、サイズ変更のために選択されたデータセグメントを縮小されたサイズで送る。
【0290】
図29は、この開示の技法に従ってビット割り当てを管理するマルチプレクスモジュール2800の典型的動作の流れ図である。データ収集モジュール2806は、少なくとも品質及びレート情報を符号器モジュール2404の各々のから受け取る(2900)。データ収集モジュール2806は、品質及びレート情報に加えて、符号器モジュール2404からのその他の配送要求情報を要求することができる。さらに、データ収集モジュール2806は、マルチプレクスモジュール2800が現在のスーパーフレーム内に含めるORTサービスと関連づけられた1つ以上の配送要求事項を要求することができる。データ収集モジュール2806は、符号器モジュール2404の各々が現在のスーパーフレーム内に含めることを希望するデータセグメントと関連づけられた少なくとも品質及びレート情報を受け取る(2902)。上述されるように、品質及びレート情報は、特に、データセグメントに関する品質評価基準をビットレート又はデータサイズの関数として示す。品質及びレート情報は、例えば、データセグメントと関連づけられた品質−レート曲線又はデータセグメントと関連づけられた品質−レートテーブルを含むことができる。上述されるように、データ収集モジュール2806は、データセグメントに関する品質及びレート情報以外の配送要求事項及びORTサービスと関連づけられた1つ以上の配送要求事項も受け取ることができる。
【0291】
割り当てモジュール2808は、利用可能な帯域幅をデータセグメント間で割り当てることを試みる(2904)。割り当てモジュール2808は、例えば、上述される割り当てアルゴリズムのうちの1つを用いて利用可能な帯域幅を割り当てることを試みることができる。利用可能な帯域幅を割り当てる第1の試みにおいては、割り当てモジュール2808は、データセグメントの最高の希望される品質と関連づけられたサイズを用いて帯域幅を割り当てるのを試みることができる。品質及びレート情報が例えば品質−レートテーブルを備える場合は、割り当てモジュール2808は、1の順位値と関連づけられたサイズを用いて帯域幅を割り当てることを試みる。品質及びレート情報が品質−レート曲線を備える場合は、割り当てモジュール2808は、目標品質レベルと各々の品質−レート曲線の交点に対応するサイズを用いて帯域幅を割り当てることを試みることができる。割り当てモジュール2808は、上記において詳細に説明されるようにデータセグメントとORTサービスとの間において利用可能な帯域幅をさらに割り当てることができる。
【0292】
割り当てモジュール2808は、利用可能な帯域幅の割り当てが成功であるかどうかを決定する(2906)。割り当てモジュール2808が帯域幅を成功裏に割り当てない場合は、選択モジュール2810は、データセグメントと関連づけられた品質及びレート情報に基づいてサイズが変更されるべきデータセグメントのうちの少なくとも1つを選択する(2908)。一側面においては、選択モジュール2810は、サービスを送信するための十分な帯域幅が存在しないときにサイズが縮小されるべき1つ以上のデータセグメントを選択することができる。特に、選択モジュール2810は、対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択する。例えば、選択モジュール2810は、次に最高の品質レベルに対応する次の順位を有する1つ以上のデータセグメントを識別することができる。2つ以上のデータセグメントが同じ次の順位を有する場合は、選択モジュール2810は、現在の順位と関連づけられた最大のサイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2810は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。他の側面においては、選択モジュール2810は、余分の利用可能な帯域幅量がしきい値を超えるときにサイズが拡大されるべき1つ以上のデータセグメントを選択することができる。幾つかの場合においては、選択モジュール2810は、サイズが変更されるべき1つ以上のORTサービスを選択することもできる。
【0293】
割り当てモジュール2808は、選択されたデータセグメントの縮小されたサイズを用いて利用可能な帯域幅を割り当てることを再度試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2810は、サイズが変更されるべき追加のデータセグメント又はさらに低下された品質でサイズが変更されるべき同じセグメントを選択する。
【0294】
割り当てモジュール2808が利用可能な帯域幅をデータセグメント間で成功裏に割り当てた後に、マルチプレクスモジュール2800は、複数のセグメントに関して利用可能な帯域幅を達成するために選択されたデータセグメントの各々のサイズ変更を要求する(2910)。マルチプレクスモジュール2800は、例えば、選択されたデータセグメントと関連づけられた符号器モジュール2404の各々にサイズ変更要求を送ることができる。サイズ変更要求は、データセグメントの最大の受け入れ可能なサイズ又は引き下げられたビットレートを指定することができる。符号器モジュール2404は、上記において詳細に説明されるようにサイズ変更要求に含まれる情報に基づいてデータのサイズを変更する。
【0295】
データ収集モジュール2806は、符号器モジュール2404からのデータセグメントの符号化されたコンテンツの転送を要求する(2912)。データ収集モジュール2806は、例えば、符号化モジュール2404がデータを結合してスーパーフレーム内に入れる準備が完了しているときに符号化モジュール2404にデータ要求を送ることができる。データ収集モジュール2806は、コマンドに応答して符号化されたデータセグメントを受け取る(2914)。マルチプレクスモジュール2800は、符号化されたマルチメディアデータセグメントを結合することによってスーパーフレームを組み立てる(2916)。マルチプレクスモジュール2800は、スーパーフレームを送信のために送信機2408に送ることができる(2918)。幾つかの場合においては、マルチプレクスモジュール2800は、送信機2408がスーパーフレームを要求するまでスーパーフレームをバッファリングすることができる。
【0296】
図30は、データセグメントと関連づけられた品質−レートテーブルを用いてサイズが変更されるべきデータセグメントを選択するマルチプレクスモジュール2800の典型的動作を例示する流れ図である。最初に、選択モジュール2810は、その他の可能な順位の組み合わせが存在するかどうかを決定する(3000)。選択モジュール2810は、品質−レートテーブルを解析して最低順位にないデータセグメントが存在するかどうかを決定することができる。上述される例においては、最低順位は、最も大きい番号が付された順位に相当することができる。その他の可能な順位の組み合わせが存在しない、すなわち、データセグメントの各々が最低順位にある場合は、選択モジュール2810は、スーパーフレームから取り除くべき1つ以上のデータセグメントを選択するのを開始する(3001)。選択モジュール2810は、例えば、上述される混雑制御アルゴリズムを用いてスーパーフレームから取り除かれるべき1つ以上のデータセグメントを選択することができる。
【0297】
その他の可能な順位の組み合わせが存在する場合は、選択モジュール2810は、次に最高の品質レベルに対応する次の順位を有する1つ以上のデータセグメントを識別する(3002)。例えば、選択モジュール2810は、品質−レートテーブルが上述されるように生成されたときに最小の次の順位を有するデータセグメントを識別することができる。この方法により、選択モジュール2810は、品質−レートテーブルを解析して次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のストリームを識別する。
【0298】
選択モジュール2810は、サイズが変更されるべき識別されたデータセグメントのうちの1つを選択する(3004)。1つのデータセグメントのみが最小の次の順位値を有する場合は、マルチプレクスモジュール2800はそのセグメントを選択する。2つ以上のデータセグメントが同じ次の順位を有する場合は、選択モジュール2810は、現在の順位と関連づけられた最大のサイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2810は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。
【0299】
選択モジュール2810は、選択されたデータセグメントと関連づけられた順位を次の順位に設定する(3006)。選択モジュール2810がデータセグメントのうちの1つ以上を選択後は、割り当てモジュール2808は、選択されたデータセグメントに関する引き下げられた順位と関連づけられたサイズを用いて利用可能な帯域幅を割り当てることを再度試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2810は、サイズが変更されるべき追加のデータセグメント又はさらに引き下げられたレベルにおいてサイズが変更されるべき同じセグメントを上述されるのと同様の方法で選択する。
【0300】
ここにおいて説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はその組み合わせにおいて実装することができる。ハードウェア内に実装される場合は、これらの技法は、デジタルハードウェア、アナログハードウェア又はその組み合わせを用いて実現することができる。これらの技法は、ソフトウェアにおいて実装される場合は、少なくとも部分的には、コンピュータによって読み取り可能な媒体上の1つ以上の格納された又は送信された命令又は符号によって実現することができる。コンピュータによって読み取り可能な媒体は、コンピュータ記憶媒体、通信媒体、又は両方を含むことができ、及び1つの場所から他の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含むことができる。記憶媒体は、コンピュータによってアクセス可能なあらゆる利用可能な媒体であることができる。
【0301】
一例として、及び制限することなしに、該コンピュータによって読み取り可能な媒体は、RAM、例えば同期ダイナミックランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、ROM、電気的消去可能ブログラマブル読み取り専用メモリ(EEPROM)、EEPROM、FLASHメモリ、CD−ROM又はその他の光学ディスク記憶装置、磁気ディスク記憶装置又はその他の磁気記憶デバイス、又は希望されるプログラムコードを命令又はデータ構造の形で搬送又は格納するために用いることができ及びコンピュータによってアクセスすることができるその他のあらゆる有形の媒体を備えることができる。
【0302】
あらゆる接続が、コンピュータによって読み取り可能な媒体と適切に呼ばれる。例えば、ソフトウェアが同軸ケーブル、光ファイバケーブル、より対線、データ加入者ライン(DSL)、又は無線技術、例えば赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバー、又はその他の遠隔ソースから送信される場合は、その同軸ケーブル、光ファイバケーブル、より対線、DSL、又は無線技術、例えば赤外線、無線、及びマイクロ波は、媒体の定義に含められる。ここにおいて用いられるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)と、レーザーディスク(登録商標)(disc)と、光学ディスク(disc)と、デジタルバーサタイルディスク(disc)(DVD)と、フロッピーディスク(disk)と、ブルーレイディスク(disc)とを備え、ディスク(disk)は通常は磁気的にデータを複製し、ディスク(disc)は例えばレーザーを用いて光学的にデータを複製する。上記の組み合わせもコンピュータによって読み取り可能な媒体の適用範囲内に含まれるべきである。
【0303】
ここにおいで開示されるコンピュータプログラム製品は、コンピュータによって読み取り可能な媒体と、コンピュータによって読み取り可能な媒体と関連するあらゆる材料とを含み、コンピュータによって読み取り可能な媒体がパッケージングされるパッケージング材料を含む。コンピュータプログラム製品のコンピュータによって読み取り可能な媒体のコードは、コンピュータによって、例えば1つ以上のプロセッサ、例えば1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、ASIC、FPGA、又はその他の同等の集積回路又は個別論理回路、によって実行することができる。幾つかの側面においては、ここにおいて説明される機能は、符号化及び復号のために構成される専用のソフトウェアモジュール又はハードウェアモジュール内において提供するか又は結合されたCODEC内に組み入れることができる。
【0304】
様々な側面が説明されている。これらの及びその他の側面は、以下の請求項の適用範囲内にある。
【技術分野】
【0001】
この開示は、マルチメディアの符号化及び復号に関するものである。この開示は、より具体的には、効率的な統計的多重化のためのマルチメディアのサイズ変更に関するものである。
【背景技術】
【0002】
データネットワーク、例えば無線通信ネットワーク、は、単一の端末に関してカスタム化されたサービスと非常に多数の端末に提供されるサービスとの間でいずれかを犠牲にしなければならない。例えば、非常に多数の資源が制限されたポータブルデバイス(加入者)へのマルチメディアコンテンツの配信は、複雑な問題である。従って、ネットワーク管理者、コンテンツ小売業者、及びサービスプロバイダがコンテンツ及び/又はその他のネットワークサービスをネットワーク化されたデバイスにおいて提示することを目的として高速かつ効率的な方法で配信するための方法を有することが非常に重要である。
【0003】
コンテンツ配送/メディア配信システムは、リアルタイム及び非リアルタイムのサービスを送信フレーム内にパッキングすること及びそのフレームをネットワーク上のデバイスに配送することができる。例えば、通信ネットワークは、ネットワークサーバーと1つ以上のモバイルデバイスとの間において通信を提供するために直交周波数分割多重(OFDM)を利用することができる。この技術は、配信ネットワークを通じて配送及び送信する対象となるサービスがパッキングされたデータスロットを有する送信フレームを提供する。
【発明の概要】
【0004】
一般的には、この開示は、複数の符号器モジュールからのデータセグメントを向上された品質を有する状態で結合するために前記複数の符号器モジュールとマルチプレクスモジュールとの間で情報を交換するための技法を説明する。特に、前記符号器モジュールは、各々のデータセグメントを品質及びレート情報、例えば品質−レート曲線及び/又は品質−レートテーブル、と関連づける。前記符号器モジュールは、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を前記マルチプレクスモジュールに送る。
【0005】
前記マルチプレクスモジュールは、少なくとも前記品質及びレート情報を解析して前記符号器モジュールが送信することを希望するデータセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まる(fit)かどうかを決定する。前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないと前記マルチプレクスモジュールが決定した場合は、前記マルチプレクスモジュールは、前記符号器モジュールから受け取られた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記セグメントのうちの1つ以上を選択する。マルチプレクスモジュールは、前記選択されたデータセグメントと関連づけられた前記符号器モジュールが前記縮小されたビット割り当てに従って前記データセグメントのサイズを変更するように要求する。
【0006】
一側面においては、デジタルマルチメディアデータの流れを結合するための方法は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取ることと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択することと、前記複数のセグメントに関して前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求すること、とを備える。
【0007】
他の側面においては、デジタルマルチメディアデータの流れを結合するための装置は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るデータ収集モジュールと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定する割り当てモジュールと、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求する選択モジュールと、を備える。
【0008】
さらなる側面においては、デジタルマルチメディアデータの流れを結合するための装置は、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るための手段と、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するための手段と、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択するための手段と、前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求するための手段と、を備える。
【0009】
他の側面においては、デジタル映像データを処理するためのプロセッサは、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取り、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたセグメントの各々のサイズ変更を要求するように適合化される。
【0010】
ここにおいて説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はその組み合わせにおいて実装することができる。ソフトウェアにおいて実装される場合は、これらの技法は、プロセッサによって実行されたときにここにおいて説明される方法のうちの1つ以上を実行する命令を備えるコンピュータによって読み取り可能な媒体によって全体又は一部を実現することができる。従って、この開示は、デジタル映像データを処理するためのコンピュータプログラム製品も企図し、前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受信することを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備え、前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求する。
【0011】
さらに他の側面においては、デジタルマルチメディアデータの流れを符号化するための方法は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけることと、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送信すること、とを備える。
【0012】
他の側面においては、デジタルマルチメディアデータの流れを符号化するための装置は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるコンテンツ分類モジュールと、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る符号化モジュールと、を備える。
【0013】
他の側面においては、デジタルマルチメディアデータの流れを符号化するための装置は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるための手段と、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るための手段と、を備える。
【0014】
他の側面においては、デジタル映像データを処理するためのプロセッサは、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけ及び前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るように適合化される。
【0015】
他の側面においては、デジタル映像データを処理するためのコンピュータプログラム製品は、前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけること及び前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ることを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える。
【0016】
1つ以上の側面の詳細が添付図面及び以下の説明において示される。その他の特徴、目的、及び利点が、これらの説明及び図面から、及び請求項から明らかになるであろう。
【図面の簡単な説明】
【0017】
【図1】典型的多重化システムを備えるネットワークを示した図である。
【図2】マルチプレクサシステムにおいて用いるための典型的サーバーを示した図である。
【図3】多重化システムにおいて用いるためのMLCのスロット割り当てを例示する典型的フレームを示した図である。
【図4】多重化システムにおいて用いるための様々なMLC割り当て形状を備える典型的フレームを示した図である。
【図5】選択されたMLC割り当てに関する送信モードパラメータと最大スロット高値との間の関係を示すテーブルである。
【図6】多重化システムにおいて用いるための異なるMLCスロット割り当てを例示する典型的フレームを示した図である。
【図7】多重化システムにおいて用いられる典型的割り当てアルゴリズムを提供する方法を示した図である。
【図8】多重化システムにおいて用いるための第1の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図9】多重化システムにおいて用いるための第2の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図10】余分の4つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図11】多重化システムにおいて用いるための第3の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図12】余分の3つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図13】多重化システムにおいて用いるための第4の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法を示した図である。
【図14】余分の6つのブロックサービスを割り当てるための典型的多重化システムの動作を例示するフレームを示した図である。
【図15】多重化システムにおいて用いるために2つのRTサービスを送信フレーム内にパッキングするための典型的割り当てアルゴリズムの動作を例示するフレームを示した図である。
【図16】未使用スロットが2つのエリア内にグループ分けされるような形でRTサービスをパッキングするための典型的割り当てアルゴリズムの動作を例示するフレームを示した図である。
【図17】多重化システムにおいて用いるためにRTサービス及びORTサービスに関する領域に分割される典型的フレームを示した図である。
【図18】ORTサービス領域が異なる高さのブロックに分割される典型的フレームを示した図である。
【図19】多重化システムにおいて用いるためのORTサービスにスロットを割り当てるための典型的方法を示した図である。
【図20】多重化システムにおいて用いるためのスロット割り当て、サイズ変更及び混雑の制御を提供するための典型的方法を示した図である。
【図21】多重化システムにおいて用いるためのリアルタイムサービスのサイズ変更を提供するための典型的方法を示した図である。
【図22】多重化システムにおいて用いるための混雑制御を提供するための典型的方法を示した図である。
【図23】典型的多重化システムを示した図である。
【図24】ここにおいて説明される技法によるマルチメディアデータを符号化する典型的マルチメディア符号化デバイスを例示するブロック図である。
【図25】ここにおいて説明される技法によるマルチメディアデータを符号化する典型的マルチメディア符号化デバイスを例示するブロック図である。
【図26】この開示の技法により機能する典型的符号器モジュールを例示するブロック図である。
【図27】この開示の技法によるビット割り当てを管理する典型的マルチプレックスモジュールを例示するブロック図である。
【図28】この開示の技法によるマルチメディアデータを符号化する符号器モジュールの典型的動作を例示する流れ図である。
【図29】この開示の技法によるビット割り当てを管理するマルチプレクスモジュールの典型的動作の流れ図である。
【図30】データセグメントと関連づけられた品質−レートテーブルを用いてサイズが変更されるべきデータセグメントを選択するマルチプレクスモジュールの典型的動作を例示する流れ図である。
【発明を実施するための形態】
【0018】
この開示の1つ以上の側面において、コンテンツ流をデータネットワークにおける送信のために多重化して送信フレームに入れるために動作する多重化システムが提供される。例えば、多重化されたコンテンツ流は、デバイスに送信するためのリアルタイム及び/又は非リアルタイムサービスの特定の配置、シーケンス、結合、及び/又は選択を備える。システムは、無線ネットワーク環境において用いるのに特に適するが、あらゆるタイプのネットワーク環境において用いることができ、限定されることなしに、通信ネットワーク、公共ネットワーク、例えばインターネット、プライベートネットワーク、例えば仮想プライベートネットワーク(VPN)、ローカルエリアネットワーク、ワイドエリアネットワーク、長距離ネットワーク、又はその他のタイプのデータネットワークを含む。
【0019】
この説明の目的上、ここにおいては、多重化システムの1つ以上の側面が、ネットワークサーバーと1つ以上のモバイルデバイスとの間で通信を提供するために直交周波数分割多重(OFDM)を利用する通信ネットワークを参照しながら説明される。例えば、OFDMシステムにおいては、時分割多重(TDM)パイロット信号と、周波数分割多重(FDM)パイロット信号と、オーバーヘッド情報シンボル(OIS)と、データシンボルとを備えるスーパーフレームが定義される。データスロットは、1つのOFDMシンボル時間にわたって生じる一組のデータシンボルを含む。一例として、データスロットは、一組の500のデータシンボルを含むことができる。さらに、スーパーフレームにおけるOFDMシンボル時間は、複数のデータスロット、例えば7つのスロット、を搬送することができる。
【0020】
ここにおいては、多重化システムの1つ以上の側面を説明するために以下の定義が用いられる。
【0021】
流れ サービスの1つの要素であり、例えば、サービスは、2つの流れ−音声の流れ及び映像の流れ、を有することができる。
【0022】
サービス 1つ以上の流れを有することができるメディアコンテンツ
MLC データ又は制御情報に関して用いられるメディア論理チャネル(“チャネル”)
サイズ変更 送信のために要求される帯域幅を小さくするためにサービスのサイズが変更される手順
オーバーヘッド情報シンボル(OIS)
スーパーフレーム内における様々なMLCの位置に関する情報を搬送する該スーパーフレーム内のシンボル
スロット OFDMシンボルを通じてMLCに割り当てられる帯域幅の最小単位
図1は、マルチメディア符号化及び復号システム100を示す。システム100は、マルチメディア符号化デバイス、例えばサーバー104と、マルチメディア復号デバイス、例えばモバイルデバイス102と、データネットワーク106と、を備える。この説明の目的上、データネットワーク106は、OFDM技術を用いる1つ以上のポータブルデバイスと通信するために動作すると仮定されるが、マルチプレクサシステムは、その他の送信技術、例えば様々な無線アクセス技術、例えば、グローバル移動体通信システム(GSM(登録商標))、CDMA2000、広帯域CDMA(W−CDMA)、CDMA1xEV−DO、又は様々なIEEE801.11x基準によって定義される無線ネットワーク化を容易にするために開発された基準の広範な系統、とともに用いるのに適する。
【0023】
一側面においては、サーバー104は、ネットワーク106と通信中の1つ以上のデバイス、例えばモバイルデバイス102、に対してサービスを提供するために動作する。例えば、デバイスは、サーバー104によって提供されるサービスを受ける契約をすることができる。サーバー104は、通信リンク108を通じてネットワーク106に結合される。通信リンク108は、あらゆる適切な通信リンク、例えばサーバー104がネットワーク106と通信するのを可能にするために動作する有線及び/又は無線リンク、を備える。ネットワーク106は、サーバー104からネットワーク106と通信中のデバイス、例えばデバイス102、にサービスが配送されるのを可能にする有線及び/又は無線ネットワークの組み合わせを備える。
【0024】
ネットワーク106は、この開示の適用範囲内にあるあらゆる数の及び/又は型のポータブルデバイスと通信できることが注目されるべきである。単純化することを目的として図1には単一のマルチメディア復号デバイス18が示される。例えば、マルチプレクサシステムにおいて用いるのに適したその他のデバイスは、限定されることなしに、パーソナルデジタルアシスタント(PDA)と、電子メールデバイスと、ページャと、ノート型又はラップトップ型コンピュータと、デスクトップコンピュータデジタル音楽及び映像デバイス、例えばmp3プレーヤー及び商標“iPod”の名称で販売されるプレーヤーと、ラジオテレフォン、例えばセルラー、衛星又は地上に基づくラジオテレフォンと、を含む。無線リンク110は、OFDM技術に基づく無線通信リンクを備える。しかしながら、無線リンクは、デバイスがネットワーク106と通信するのを可能にするために動作するあらゆる適切な無線技術を備えることができる。
【0025】
図1に示されるデバイス102は、無線リンク110を通じてネットワーク106と通信する携帯電話を備える。幾つかの場合においては、デバイス102は、デバイス102がネットワーク106を通じてサービスを受け取る契約をするのを可能にするアクティブ化プロセスに参加する。アクティブ化プロセスは、サーバー104によって行うことができる。しかしながら、アクティブ化プロセスは、他のサーバー、サービスプロバイダ、コンテンツ小売業者、又はその他のネットワークエンティティによって行うこともできる。この説明の目的上、デバイス102は、サーバー104によるアクティブ化プロセスを行い、現在はサーバー104と契約してサービスを受け取ることが可能な状態にあると仮定される。図1に示される例は、サービス契約をする観点で説明される一方で、デバイス102は、加入契約を要求しないネットワーク106を介してサービスを受け取ることができる。
【0026】
サーバー104は、1つ以上のリアルタイム(RT)サービス112を含むコンテンツを備える又は該コンテンツへのアクセス権を有するリアルタイムメディアサーバー(RTMS)126と通信する。サーバー104は、1つ以上のリアルタイム以外の(ORT)又は非リアルタイムの(NRT)サービス120を備える又は該サービスへのアクセス権を有する非リアルタイムメディアサーバー(NRTMS)128と通信することもできる。例えば、サービス(112、120)は、ニュース、スポーツ、天候、金融情報、映画、及び/又はアプリケーション、番組、脚本、又はその他のあらゆるタイプの適切なコンテンツ又はサービスを含むマルチメディアコンテンツを備える。従って、サービス(112、120)は、あらゆる適切なフォーマットでフォーマット化された映像、音声又はその他の情報を備えることができる。サーバー104は、RT及び/又はORTサービスを備えるか又は該サービスへのアクセス権を有する1つ以上のその他のメディアサーバーと通信できることも注目されるべきである。サービス(112、120)は、帯域幅、品質及びレート情報、優先度、レーテンシー、サービスのタイプを含むがこれらに限定されない関連づけられた配送要求事項、及び/又はその他のあらゆるタイプの配送要求事項を有する。
【0027】
サーバー104は、配送要求事項に基づいてサービス(112、120)のうちの1つ以上を効率的に多重化して送信フレーム122に入れるために動作するマルチプレクサ(MUX)114も備える。サーバー104は、経路118によって示されるように、ネットワーク106を通じて送信フレームをデバイス102に送信する。MUX114のより詳細な説明がこの文書の他の箇所において示される。MUX104の動作の結果、サービス(112、120)は、最適な形で送信フレーム122内にパッキングされ、従って、サービス(112、120)の配送要求事項(帯域幅、優先度、レーテンシー、サービスのタイプ、等)が満たされ、送信フレーム122の送信帯域幅が効率的に利用され、受信デバイス102における電力が節約される。例えば、利用可能な帯域幅を効率的に利用することによって、モバイルデバイスは、送信されたサービスを短時間で受信し、それによって電池電力を節約することができる。
【0028】
MUX114は、RTサービス112及び/又はORTサービス120のサイズがどのように変更されるかを制御するために動作するサイズ変更コントローラ116を備えることができる。例えば、多重化して送信フレーム122に入れる対象として選択されたRTサービス112が送信フレーム122の利用可能な帯域幅内にぴったり納まらない場合は、サイズ変更コントローラ116が動作し、要求される帯域幅を縮小するためにこれらのサービスのサイズ変更(再符号化)方法を制御する。ここにおいて詳細に説明されるように、サイズ変更コントローラ116は、RTサービスと関連づけられた品質及びレート情報を解析していずれのRTサービスのサイズを変更すべきかを決定し、RTMS126と通信して選択されたRTサービスの選択されたサイズ変更を要求することができる。サイズ変更コントローラ116は、同様に動作し、NRTMS128と通信して選択されたORTサービス120のサイズ変更方法を制御する。サイズ変更コントローラ116の動作の結果、サイズが変更されたRT及びORTサービスは、送信フレーム122の利用可能な帯域幅内にぴったり納まる。サイズ変更コントローラ116のより詳細な説明がこの文書の他の箇所において示される。
【0029】
デバイス102は、送信フレーム122の多重化を解除して送信されたサービス(112、120)を得るために動作するデマルチプレクサ(DE−MUX)論理124を備えることができる。サービスは、効率的に多重化されて送信フレーム122内に入れられているため、ネットワーク帯域幅が節約され、デバイス102は、送信されたサービスを受信するためにより少ない電力を利用する。
【0030】
従って、多重化システムは、以下の機能のうちの1つ以上を実行してRT及びORTサービスを効率的に多重化して送信フレームに入れるために動作する。
【0031】
1.ネットワークを通じての送信のために1つ以上のRT及び/又はORTサービスを受信するか又は該サービスへのアクセス権を取得する
2.RT及び/又はORTサービスが送信フレームの利用可能な帯域幅内にぴったり納まるかどうか決定する。
【0032】
3.RT及び/又はORTサービスが送信フレーム内にぴったり納まらない場合は、1つ以上の選択されたRT及び/又はORTサービスのサイズを変更して帯域幅要求を軽減する
4.割り当てアルゴリズムを利用し、送信フレームを原及び/又はサイズが変更されたRTサービス、及び原及び/又はサイズが変更されたORTサービスとともに組み立て、そのフレームが効率的にパッキングされるようにする。
【0033】
5.ネットワークを通じて送信フレームを1つ以上の受信デバイスに送信する
従って、多重化システムは、1つ以上のRT及び/又はORTサービスを効率的に多重化してデータネットワーク上のデバイスに送信するために動作する。多重化システムは、図1を参照して説明される実装に制限されないこと及びその他の実装がこの開示の適用範囲内において可能であることが注目されるべきである。
【0034】
図2は、多重化システムにおいて用いるための典型的サーバー200を示す。例えば、サーバー200は、図1におけるサーバー104として用いることができる。サーバー200は、処理論理202と、メモリ204と、トランシーバ論理206と、を備え、すべてデータバス208に結合される。サーバー200は、マルチプレクサ(MUX)論理210と、サイズ変更コントローラ212とも備え、これらもデータバス208に結合される。サーバー200は、単なる1つの実装を表すこと及びその他の実装もこの開示の適用範囲内において可能であることが注目されるべきである。
【0035】
処理論理202は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、及び/又はハードウェアとソフトウェアの組み合わせを備えることができる。従って、処理論理202は、一般的には、機械によって読み取り可能な命令を実行し及びデータバス208を介してサーバー200の1つ以上のその他の機能的要素を制御するための論理を備える。
【0036】
トランシーバ論理206は、サーバー200が通信チャネル214を通じて遠隔デバイス又はシステムとデータ及び/又はその他の情報を送信及び受信するのを可能にするために動作するハードウェア及び/又はソフトウェアを備える。例えば、通信チャネル214は、サーバー200がその他のサーバーと直接又は1つ以上のデータネットワーク及び/又はこれらのデータネットワークに結合されたデバイスと通信するのを可能にするためのあらゆる適切な型の無線又は有線通信リンク、又はその組み合わせを備えることができる。
【0037】
メモリ204は、サーバー200が情報パラメータを格納するのを可能にするあらゆる適切な型の記憶デバイス又は要素を備える。例えば、メモリ204は、あらゆる型のランダムアクセスメモリ(RAM)、フラッシュメモリ、ハードディスク、又はその他の型の記憶デバイスを備えることができる。
【0038】
処理論理202は、トランシーバ論理206及びチャネル214を通じて1つ以上のコンテンツプロバイダと通信するために動作することができる。処理論理202は、RTサービス216を受信するためにRTMSと通信し、ORTサービス218を受信するためにNRTMSと通信する。例えば、RTサービス216及びORTサービス218は、ネットワーク上のデバイスに配送されるべき1つ以上のコンテンツ流を備える。さらに、RT216及びORT218サービスは、限定されることなしに、品質及びレート情報、帯域幅、優先度、レーテンシー、サービスのタイプを含む関連づけられた配送要求事項、及び/又はその他のタイプの配送要求事項を有する。この開示の一側面においては、処理論理202は、送信フレーム122内に含められるべきRTサービス216のサイズをモニタリングし及びサイズが変更されるべきRTサービス216のうちの1つ以上を選択するのを援助するためにRTサービス216と関連づけられた少なくとも品質及びレート情報を受け取る。さらに、処理論理202が送信フレーム内にORTサービス218を含めている場合は、処理論理202は、送信フレーム122内に含められるべきORTサービスのサイズをモニタリングするためにORTサービス218と関連づけられた配送要求事項、例えば優先度及びレーテンシー情報、を受け取ることができる。
【0039】
MUX論理210は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、ファームウェア及び/又はハードウェア、ソフトウェア及びファームウェアの組み合わせを備えることができる。MUX論理210は、トランシーバ論理206及びチャネル214を用いてデバイスに送信するために配送要求事項に基づいてRTサービス216及び/又はORTサービス218のうちの1つ以上を多重化して送信フレームに入れるために動作する。例えば、MUX論理210は、選択されたORTサービス218、RTサービス216、及びベストエフォートサービス(示されていない)が(配送要求事項に関して)送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定するために動作する。一側面においては、MUX論理210は、RTサービス216、ORTサービス218及びベストエフォートサービス(示されていない)と関連づけられた配送要求事項を解析してサービス216、218が送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定する。例えばRTサービス216に関して、MUX論理210は、RTサービス216の各々と関連づけられた少なくとも品質及びレート情報を解析してRTサービス216が送信フレームの利用可能な帯域幅内又は少なくとも送信フレームのうちのRT216を送信するための部分にぴったり納まるかどうかを決定することができる。同様に、ORTサービス218に関して、MUX論理210は、その他の配送要求事項、例えば優先度及びレーテンシー要求事項、を解析してRTサービス216が送信フレームの利用可能な帯域幅内にぴったり納まるかどうかを決定することができる。例えば、ベストエフォートサービスは、送信する必要があるあらゆるタイプのデータ又は情報を備える。上記の流れが利用可能な帯域幅内にぴったり納まる場合は、MUX論理210は、ここにおいて説明される1つ以上の割り当てアルゴリズムに従ってこれらの流れを送信フレーム内にパッキングするために動作する。
【0040】
選択されたRTサービス216及び/又はORTサービス218が送信フレーム内にぴったり合わない場合は、MUX論理210は、サイズ変更コントローラ212にシグナリングする。サイズ変更コントローラ212は、これらのサービスが送信フレームの利用可能な帯域幅内にぴったり納まるためにどのようにサイズ変更されるかを制御するために動作する。この開示の一側面においては、サイズ変更コントローラ212は、サービスと関連づけられた配送要求事項を解析してサイズが変更されるべきサービス216、218のうちの1つ以上を選択する。例えば、サイズ変更コントローラ212は、RTサービス216と関連づけられた少なくとも品質及びレート情報及びORTサービス218と関連づけられた優先度及びレーテンシー要求事項を解析してサイズが変更されるべきサービスを選択することができる。この方法により、サイズ変更コントローラ212は、特定のサービスが送信帯域幅要求を軽減するためにどの程度の“サイズ変更”が必要であるかを決定するために動作する。サイズ変更コントローラ212は、そのサービスと関連づけられたメディアサーバーに送信されるサイズ変更要求を組み立てる。例えば、サイズ変更要求は、通信リンク214を用いてトランシーバ論理206によって送信される。これで、メディアサーバーが動作し、ここにおいて説明される技法により要求に応じてサービスのサイズを変更する。サービスのサイズが変更されて帯域幅要求が軽減された後は、MUX論理210は、原サービス及びサイズが変更されたサービスを送信フレーム内に効率的にパッキングすることができる。MUX論理210によって提供される割り当てアルゴリズムのより詳細な説明がこの文書の他の箇所において示される。
【0041】
サイズ変更コントローラ212は、CPU、プロセッサ、ゲートアレイ、ハードウェア論理、メモリ要素、仮想マシン、ソフトウェア、及び/又はハードウェアとソフトウェアの組み合わせを備えることができる。サイズ変更コントローラ212は、RTサービス216及びORTサービス218の流れのうちの1つ以上が送信フレームの利用可能な帯域幅内にぴったり納まるようにするためにサービスと関連づけられた配送要求事項に基づいてこれらの流れのサイズをどのように変更するかを制御するために動作する。従って、サイズ変更コントローラ212は、関連づけられた配送要求事項を調整するために1つ以上のサービスのサイズを変更するために動作する。例えば、サービスは、そのサービスを送信するための十分な帯域幅が存在しないときにはサイズを縮小して帯域幅要求が軽減されるようにし、余分の(excess)利用可能な帯域幅が存在するときにはサイズを拡大して帯域幅要求を大きくすることができる。サイズ変更コントローラ212は、MUX論理210の一部であることができる。サイズ変更コントローラ212のより詳細な説明がこの文書の他の箇所において示される。
【0042】
多重化システムは、コンピュータによって読み取り可能な媒体上に格納され、少なくとも1つのプロセッサ、例えば処理論理202、によって実行されたときにここにおいて説明される多重化システムの機能を提供する1つ以上のプログラム命令(“命令”)を有するコンピュータプログラムを備えることができる。例えば、命令は、コンピュータによって読み取り可能な媒体、例えばフロッピー(登録商標)ディスク、CDROM、メモリカード、FLASHメモリデバイス、RAM、ROM、又はサーバー200とインタフェースするその他の型のメモリデバイス又はコンピュータによって読み取り可能な媒体、からサーバー200内にローディングすることができる。代替として、これらの命令は、トランシーバ論理206を通じてサーバー200とインタフェースする外部デバイス又はネットワーク資源からサーバー200内にダウンロードすることができる。これらの命令は、処理論理202によって実行されときに、ここにおいて説明される多重化システムの1つ以上の側面を提供する。
【0043】
従って、サーバー200は、ネットワーク上のデバイスに送信するためにRTサービス216及びORTサービス218と関連づけられた流れを効率的に多重化して送信フレームに入れるために動作する。
【0044】
送信フレームスロット割り当てアルゴリズム
以下の説明は、多重化システムにおいて用いるためのスロット割り当てアルゴリズムを説明する。スロット割り当てアルゴリズムは、送信フレーム内のスロットを利用可能なRT及びORTサービスと関連づけられたコンテンツ流に割り当てるために動作することができる。割り当てアルゴリズムは、効率的な帯域幅の利用を達成しそれによって受信デバイスが電力を節約するのを可能にするために動作する。割り当てアルゴリズムは、MUX論理210によって及び/又はMUX論理210の制御下で実行することができる。
【0045】
この説明の目的上、送信フレームは、これ以降においてはスーパーフレームと呼ばれる。スーパーフレームは、単なる1つの実装であるにすぎないこと及び多重化システムはその他のタイプの送信フレーム実装とともに用いるのに適することが注目されるべきである。
【0046】
スーパーフレームは、例えば、帯域幅割り当てのために利用されるデータシンボル部分を備えることができる。スーパーフレームのデータシンボル部分は、これ以降においては“フレーム”と呼ばれる4つの等しい部分に分割することができる。送信されるサービスからのデータは、一側面においてはリード・ソロモン(RS)ブロック内にあり、4つのフレームにわたって均等に分散される。従って、スーパーフレーム全体におけるスロット割り当てアルゴリズムの動作は、フレーム全体におけるスロット割り当てアルゴリズムの動作の繰り返しである。従って、以下の説明は、フレーム全体におけるスロット割り当てを説明するが、スーパーフレーム全体に対しても等しく当てはまる。さらに、説明されるスロット割り当てアルゴリズムは、限定されることなしに、リアルタイムサービスと、非リアルタイムサービスと、IPデータキャストとを含むあらゆるタイプのデータに関してスロットを割り当てるために用いることができる。
【0047】
チャネル割り当て
1つ以上の側面において、メディア論理チャネル(MLC)は、同じサービスの1つ以上の流れを搬送する。従って、すべてのサービスは、OISにおいて記述されるフレーム内の位置に所在する1つ以上のMLCを有することができる。特定のMLCを受信することを希望するデバイスは、そのMLCの位置をOISから入手する。フレーム内におけるMLCの位置は、OISにおいては下記を用いて記述されている。
【0048】
−開始シンボル
−開始スロット
−最低スロット
−最高スロット
−総スロット
図3は、多重化システムにおいて用いるためのMLCのスロット割り当てを例示するフレーム300の例を示す。フレーム300は、7つのスロットの各々に関して“N”のOFDMシンボルを備える。MLCのスロット割り当ては、302において一般的に示される陰影付き領域である。スロット割り当てを記述するために2つの変数、すなわち、長さ及び高さ、が用いられる。単位は、長さがOFDMシンボルであり、高さがスロットである。
【0049】
割り当て形状
図4は、多重化システムにおいて用いるための様々なMLC割り当て形状を備えるフレーム400の例を示す。例えば、MLC割り当ては、402、404、406、及び408において一般的に示される陰影付き領域である。一例においては、割り当て形状は、固定された限られた数のデータフィールドを用いてフレーム400のOISにおいて記述することができるような割り当て形状が選択される。
【0050】
割り当ての高さ
図5は、選択されたMLC割り当てに関する送信モードパラメータと最大スロット高値との間の関係を例示するテーブル500を示す。受信デバイスにおけるターボ復号器のピーク出力レートが、単一のOFDMシンボルにおいて復号できるターボパケット数を制限する。その結果、MLC割り当ての高さを制約することができる。所定の送信モードに関するMLC割り当ての最大スロット高を表すために最大スロット高さと呼ばれる変数(“maxSlotHeight”)が用いられる。例えば、テーブル500から、(4)の送信モードは、(3)のmaxSlotHeightを有するMLC割り当てをサポートし、(1)の送信モードは(7)のmaxSlotHeightを有するMLC割り当てをサポートする。
【0051】
割り当てアルゴリズム
一側面においては、選択されたサービスの全MLCがグループに分けられ、このためその割り当てはフレーム内において一時的に隣接する。これは、受信デバイスがサービスの異なるMLCを受信するために“ウェークアップする”必要がある回数を少なくする。従って、受信デバイスの電力消費量が低減されるか又は節約される。
【0052】
受信デバイスの電力消費量に関して、MLC割り当ての高さはmaxSlotHeightであることが好ましい。これは、デバイスがそのMLCを受信する上で可能な“オンタイム”を最小にする。しかしながら、パッキングを容易にするため、サービスのすべてのグループ分けされたMLCに同じ高さが割り当てられる。従って、“サービスのmaxSlotHeight”の概念は、そのサービスに関してグループ分けされた全MLCのmaxSlotHeightパラメータの最低又は最小のパラメータであると定義される。この説明の残りの部分に関して、サービスの高さは、そのサービスのすべてのMLC割り当ての共通の高さを意味する。
【0053】
図6は、多重化システムにおいて用いるための異なるMLCスロット割り当てを例示するフレーム600の例を示す。フレーム600は、異なる高さのブロックを有するMLC割り当てに分割される。一例においては、ブロックの高さは、サービスがとることができる可能なmaxSlotHeightに対応する。図5に示されるテーブル500から、4つの可能なmaxSlotHeight(すなわち、3、4、6、又は7)が存在すると決定することができる。一例においては、スロット割り当てアルゴリズムは、maxSlotHeightパラメータに基づいてサービスを異なるブロック割り当てにパッキングするために動作する。例えば、可能なmaxSlotHeight(すなわち、3、4、6、又は7)に基づく割り当てが602、604、606、及び607においてそれぞれ示される。
【0054】
割り当てアルゴリズム動作
以下は、多重化システムにおいて用いるための典型的割り当てアルゴリズムの説明である。MUX論理210は、後述される機能を実行するために割り当てアルゴリズムを実装するために動作することができる。
【0055】
割り当てアルゴリズムへの入力は以下の通りである。
【0056】
1.サービスの各チャネルがフレームに関して有するデータスロット数。
【0057】
2.サービスの各チャネルのmaxSlotHeightであり、そのチャネルの送信モードによって決定される。
【0058】
アルゴリズムの出力は以下の通りである。
【0059】
1.パッキングが可能であるかどうかを示す決定。パッキングが可能である場合は、アルゴリズムは、MLC割り当ての位置を与える。
【0060】
2.パッキングが可能でない場合は、スロット割り当てアルゴリズムは、サービスのサイズ変更をサイズ変更コントローラ212に依頼する.一側面においては、サイズ変更コントローラ212は、いずれのサービスに関して及びどのようなレートでサイズを変更すべきかを決定する。サイズ変更コントローラ212の動作の説明がこの文書の他の箇所において示される。
【0061】
図7は、多重化システムにおいて用いるための割り当てアルゴリズムを提供するための典型的方法700を示す。例えば、方法700は、1つ以上のRTサービスにスロットを割り当てるために動作する。一側面においては、MUX論理210は、後述されるように方法700の機能を提供するために動作する。
【0062】
ブロック702において、多重化してフレームに入れるためにすべてのRTサービスによって要求される総スロット数が利用可能なスロット数よりも多いかどうかを決定するための試験が行われる。例えば、MUX論理210がこの決定を行う。一側面においては、利用可能なスロット数は、“フレーム当たりのスロット数”(numOfdmSymbolsPerFrm)の7倍の値を有する。要求されるスロット数が利用可能なスロットよりも多い場合は、方法はブロック718に進む。要求されるスロット数が利用可能なスロット数以下である場合は、方法はブロック704に進む。
【0063】
ブロック718において、パックの失敗が決定される。例えば、一側面においては、MUX論理210が、サービスをパックする上での十分な利用可能スロットが存在しないと決定し、方法がブロック716において終了する。
【0064】
ブロック704において、各RTサービスに関するmaxSlotHeightパラメータが計算される。例えば、一側面においては、MUX論理210が動作してこの計算を行う。maxSlotHeightは、各RTサービスに関して許容可能なシンボル当たりの最大スロット数を示す。
【0065】
ブロック706において、多重化されるべきRTサービスは、maxSlotHeightパラメータに基づいて、“3つのブロックサービス”(threeBlkSrvcs)、“4つのブロックサービス”(fourBlkSrvcs)、
“6つのブロックサービス”(sixBlkSrvcs)、及び“7つのブロックサービス”(sevenBlkSrvcs)にグループ分けされる。一側面においては、MUX論理210は、スロット要求事項によってサービスをグループ分けするために動作する。
【0066】
ブロック708において、各グループ内のRTサービスは、データスロット数の降順でソートされる。例えば、RTサービスは、要求されるデータスロットに関して最多から最少に向かって順にソートされる。
【0067】
ブロック710において、長さ変数L7、L6、L4及びL3が計算される。例えば、sevenBlkSrvcsの長さは“L7”であり、sixBlkSrvcsの長さは“L6”であり、fourBlkSrvcsの長さは“L4”であり、threeBlkSrvcsの長さは“L3”である。例えば、すべてのsevenBlkSrvcsの長さは以下のように定義される。
【0068】
L7=ceil(すべてのsevenBlkSrvcsの総データスロット数/7)
ここで、ceil(x)は、xよりも大きい最小の整数である。一側面においては、MUX論理210は、長さパラメータ(L7、L6、L4及びL3)を計算するために動作する。
【0069】
ブロック712において、1つ以上の不等式検査が行われる。例えば、以下の不等式が検査されて各々が真であるか又は偽であるかを決定する。
【0070】
L7+L3+L6≦numOfdmSymbolsPerFrm
(1)
L7+L4+L6≦numOfdmSymbolsPerFrm
(2)
上記の不等方程式の結果、4つの不等式条件が決定される。第1の不等式(1)は、以降においては(1T、1F)と呼ばれる真及び偽の結果を有する。第2の不等式(2)は、以降においては(2T、2F)と呼ばれる真及び偽の結果を有する。以上のように、上記の2つの不等式は、多重化システムの1つ以上の側面に従ってスロットを割り当てるために用いられる4つの不等式条件(すなわち、1T2T、1T2F、1F2T、1F2F)を提供する。
【0071】
ブロック714において、4つの不等式条件のうちの1つに基づいてRTサービスに対してスロットが割り当てられる。例えば、ブロック712において行われた不等式検査の結果は、RTサービスにスロットを割り当てるために用いられる。4つの条件の各々は、この文書の以下の節において説明される割り当て方法において説明されるように割り当てを決定する。
【0072】
方法700は、単なる1つの実装を表すにすぎず、方法700の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0073】
図8は、多重化システムにおいて用いるための第1の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法800を示す。例えば、方法800は、(1T2T)によって説明される第1の不等式条件と関連づけられたスロット割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法800の機能を提供するために動作する。
【0074】
ブロック802において、第1の不等式条件の状態が真(すなわち、1T)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Tでない場合は、方法はブロック804に進む。第1の不等式(1)の状態が1Tである場合は、方法はブロック806に進む。
【0075】
ブロック804において、方法は、第2の不等式条件の試験に進む。例えば、第1の不等式(1)の状態が1Tでないため、方法は、方法900に進んで第2の不等式条件(1T2F)を試験する。
【0076】
ブロック806において、第2の不等式(2)の状態が真(すなわち、2T)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Tでない場合は、方法はブロック804に進む。第2の不等式(2)の状態が2Tである場合は、方法はブロック808に進む。
【0077】
ブロック808において、方法は最終動作に進む。両方の状態(1T2T)が存在するため、方法は最終動作(後述)に進んでスロット割り当てを完了される。
【0078】
方法800は、単なる1つの実装を表すにすぎず、方法800の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0079】
図9は、多重化システムにおいて用いるための第2の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法900を示す。例えば、方法900は、(1T2F)によって説明される第2の不等式条件と関連づけられたスロット割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法900の機能を提供するために動作する。
【0080】
ブロック902において、第1の不等式(1)の状態が真(すなわち、1T)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Tでない場合は、方法はブロック904に進む。第1の不等式(1)の状態が1Tである場合は、方法はブロック906に進む。
【0081】
ブロック904において、方法は、第3の不等式条件の試験に進む。例えば、第1の不等式(1)の状態は1Tでないため、方法は方法1100に進んで第3の不等式条件(1F2T)を試験する。
【0082】
ブロック906において、第2の不等式(2)の状態が偽(すなわち、2F)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Fでない場合は、方法はブロック904に進む。第2の不等式(2)の状態が2Fである場合は、方法はブロック908に進み、4つのブロックサービスが処理される。
【0083】
図10は、余分の4つのブロックサービスを割り当てるための多重化システムの側面の動作を例示するフレーム1000を示す。例えば、割り当てブロックは、threeBlk1002と、fourBlk1004と、sixBlk1006と、sevenBlk1008と、を備える。割り当てブロックは、reg2Blk1010も含む。フレーム1000は、方法900が余分の4つのブロックサービス(fourBlkSrvc)1012をfourblk1004、threeblck1002及びreg2blk1010割り当てブロックに割り当てるためにどのように動作するかを示す。一側面においては、方法900は、図10に示されるフレーム1000にRTサービスを割り当てるために動作する。
【0084】
再度図9に関して、ブロック908において、4つのブロックサービスが処理される。例えば、一側面においては、MUX論理210は、図10に示されるフレーム1000を参照して後述されるように4つのブロックサービスを処理するために動作する。
【0085】
a. fourBlk1004が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるfourBlkSrvcを見つける。次に、余分のfourBlkSrvcsなしでfourBlkSrvc1004を更新する。
【0086】
b. 余分のfourBlkSrvcsをthreeBlk1002及びreg2Blk1010に移動させる。Reg2Blk1010は、 図10に示されるような高さ1のブロックである。
【0087】
c. 余分のfourBlkSrvcsを移動させる一方で、後続するサービスがfourBlk1004自体にぴったり納まることができるかどうも検査する。
【0088】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0089】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック910において、余分の4つのブロックサービスを上記のように移動できるかどうかを検査するための試験が行われる。ブロック908において条件付き不等式を満たすために余分のfourBlkSrvcsをthreeBlk1002又はreg2Blk1010のいずれにも移動させることができない場合は、方法はブロック914に進み、ブロック914において、パッキング失敗が決定されて方法が停止する。余分のfourBlkSrvcsを移動させることができる場合は、方法はブロック912に進む。
【0090】
ブロック912において、方法は最終動作に進む。余分のfourBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0091】
方法900は、単なる1つの実装を表すにすぎず、方法900の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0092】
図11は、多重化システムにおいて用いるための第3の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法1100を示す。例えば、方法1100は、第3の不等式条件(1F2T)が存在するときに割り当てを提供する。一側面においては、MUX論理210は、後述されるように方法1100の機能を提供するために動作する。
【0093】
ブロック1102において、第1の不等式(1)の状態が偽(すなわち、1F)であるかどうかを決定するための試験が行われる。第1の不等式(1)の状態が1Fでない場合は、方法はブロック1104に進む。第1の不等式(1)の状態が1Fである場合は、方法はブロック1106に進む。
【0094】
ブロック1104において、方法は、第4の不等式条件の処理に進む。例えば、第1の不等式(1)の状態が1Fでないため、方法は、方法1300に進み、第4の不等式条件(1F2F)が残っている唯一の条件であるため現在存在しなければならない第4の不等式条件(1F2F)を処理する。
【0095】
ブロック1106において、第2の不等式(2)の状態が真(すなわち、2T)であるかどうかを決定するための試験が行われる。第2の不等式(2)の状態が2Tでない場合は、方法はブロック1104に進む。第2の不等式(2)の状態が2Tである場合は、方法はブロック1108に進む。
【0096】
図12は、余分の3つのブロックサービスを割り当てるための多重化システムの一側面の動作を例示するフレーム1200を示す。例えば、割り当てブロックは、threeBlk1202と、fourBlk1204と、sixBlk1206と、reg2Blk1208と、reg1Blk1210とを備える。フレーム1200は、方法1100が余分の3つのブロックサービス(threeBlkSrvcs)1212をthreeBlk1202、reg1Blk1210及びreg2Blk1208割り当てブロックに割り当てるためにどのように動作するかを示す。
【0097】
再度図11に関して、ブロック1108において、3つのブロックサービス(threeblkSrvcs)が処理される。例えば、一側面においては、MUX論理210は、threeblkSrvcsを以下のように処理するために動作する。
【0098】
a. threeBlk1202が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるthreeBlkSrvcを見つける。次に、余分のthreeBlkSrvcsなしでthreeBlk1202を更新する。
【0099】
b. 余分のthreeBlkSrvcsをreg1Blk1210及びreg2Blk1208に移動させる。Reg1Blk1210は、図12に示されるような高さ3のブロックである。
【0100】
c. 移動させる一方で、後続するサービスがthreeBlk1202自体にぴったり納まることができるかどうも検査する。
【0101】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0102】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック1110において、余分の3つのブロックサービスを移動できるかどうかを決定するための試験が行われる。ブロック1108において条件付き不等式を満たすために余分のthreeBlkSrvcsをreg1Blk1210又はreg2Blk1208のいずれにも移動させることができない場合は、方法はブロック1112に進み、ブロック1112において、パッキング失敗が決定され、方法が停止する。余分の3つのブロックサービスを移動させることができる場合は、方法はブロック1114に進む。
【0103】
ブロック1114において、方法は最終動作に進む。余分のthreeBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0104】
方法1100は、単なる1つの実装を表すにすぎず、方法1100の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0105】
図13は、多重化システムにおいて用いるための第4の不等式条件に基づいてRTサービスにスロットを割り当てるための典型的方法1300を示す。方法1300は、第1、第2及び第3の不等式条件が存在しないときに割り当てを提供する。この場合は、不等方程式の状態は(1F2F)として記述することができる。一側面においては、MUX論理210は、後述されるように方法1300の機能を提供するために提供する。
【0106】
図14は、余分の6つのブロックサービスを割り当てるための多重化システムの一側面の動作を例示するフレーム1400を示す。例えば、フレーム1400は、threeBlk1402、fourBlk1404、reg2Blk1406、及びsixBlk1408割り当てブロックを備える。フレーム1400は、余分の6つのブロックサービス(sixBlkSrvcs)1410がどのように割り当てられるかを示す。
【0107】
再度図13に関して、ブロック1302において、6つのブロックサービスが処理される。例えば、一側面においては、MUX論理210は、6つのブロックサービスを以下のように処理するために動作する。
【0108】
a. fourBlk1404及びsixBlk1408が上の方法800を参照して説明される第1の不等式条件を満たすために保持することができるsixBlkSrvcを見つける。次に、余分のサービスなしでsixBlk1408を更新する。
【0109】
b. 余分のsixBlkSrvcsをthreeBlk1402、fourblk1404、及びreg2Blk1406に移動させる。
【0110】
c. 移動させる一方で、後続するサービスがsixBlk1408自体にぴったり納まることができるかどうも検査する。
【0111】
d. 以下の条件付き不等式が真である場合のみに移動を完了させる。
【0112】
((L7+L3+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+L6)≦numOfdmSymbolsPerFrm)&&
((L7+L4+Lreg2)≦numOfdmSymbolsPerFrm)
ブロック1304において、余分の6つのブロックサービスを移動できるかどうかを決定するための試験が行われる。ブロック1302において条件付き不等式を満たすために余分の6つのブロックサービスをfourblk1404、threeblk1402、又はreg2Blk1406に移動させることができない場合は、方法はブロック1306に進み、ブロック1306において、パッキング失敗が決定され、方法が停止する。余分の6つのブロックサービスを移動させることができる場合は、方法はブロック1308に進む。
【0113】
ブロック1308において、方法は最終動作に進む。余分のsixBlkSrvcsを成功裏に移動させることができたため、方法は最終動作に進んでスロット割り当てを完了させる。
【0114】
方法1300は、単なる1つの実装を表すにすぎず、方法1300の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0115】
最終動作
上において行われた動作から、各RTサービスがいずれのブロックに割り当てられるかに関する情報が入手される。さらに、現在は、RTサービスの各チャネルがフレームに関して有するデータスロット数が既知である。この情報は、すべてのチャネル割り当ての位置に到達する上で十分である。一側面においては、スロットは、最大高さ制約を尊重しつつ隣接させてブロック内のチャネルに割り当てることができる。
【0116】
パッキング例
図15は、多重化システムにおいて用いるために2つのRTサービスを送信フレーム内にパッキングする割り当てアルゴリズムの側面の動作を例示するフレーム1500を示す。この例においては、2つのRTサービス、すなわちサービスA及びB、がフレーム1500のfourblk領域内にパッキングされる。説明の目的上、以前の動作では両方のRTサービスがfourBlk領域内に存在すると決定していると仮定される。さらに、これらのRTサービスの両方が2つのチャネル、すなわち1及び2、を有すると仮定される。各チャネルに関するデータスロット数は以下の通りであるとさらに仮定される。
【0117】
サービスAのチャネル1=9
サービスAのチャネル2=9
サービスBのチャネル1=8
サービスBのチャネル2=7
フレーム1500において例示されるように、RTサービスは、以下のパラメータに従ってfourblk領域内にパッキングされる。
【0118】
チャネル1サービスA(1502)
開始シンボル=5
開始スロット=6
最低スロット=4
最高スロット=7
総スロット=9
チャネル2サービスA(1504)
開始シンボル=7
開始スロット=7
最低スロット=4
最高スロット=7
総スロット=9
チャネル1サービスB(1506)
開始シンボル=10
開始スロット=4
最低スロット=4
最高スロット=7
総スロット=8
チャネル2サービスB(1508)
開始シンボル=12
開始スロット=4
最低スロット=4
最高スロット=7
総スロット=7
アルゴリズム概要
1つ以上の側面においては、割り当てアルゴリズムは、フレーム内への流れの効率的なパッキングを提供し、それにより受信デバイスの“ウェークアップ”頻度及び“オンタイム”を最小にする。例えば、サービスのチャネルをグループ分けすることは、ウェークアップ頻度を低減させ、maxSlotHeightにおいてサービスを送信することは、オンタイムを短くする。
【0119】
一側面においては、アルゴリズムによって提供されるスロット割り当てが4つの不等式条件のうちの1つに起因して失敗した場合は、アルゴリズムは、サービスのサイズがどのように変更されるかを制御するサイズ変更コントローラ212に指示(directive)を渡す。サイズ変更コントローラ212がこれらの指示に基づいてサービスのサイズを変更させる場合は、パッキング解決方法が保証される。
【0120】
図16は、未使用スロットが2つのエリアにおいてグループ分けされるような形でRTサービスをパッキングするための割り当てアルゴリズムの一側面の動作を例示するフレーム1600を示す。より少ないエリアにおいて未使用スロットを収集することは、割り当てアルゴリズムに入力されたサービスよりも優先度が低いサービスによるこれらのスロットのより良い利用を保証する。一側面においては、ORTサービスは、これらのエリア内にパッキングすることができる。例えば、フレーム1600においては、未使用スロットはエリア1602及び1604にグループ分けされる。
【0121】
リアルタイムサービスサイズ変更アルゴリズム
1つ以上の側面においては、サイズ変更コントローラ116は、サービスをフレーム内にパッキングできるようにするためにこれらのサービスがどのようにサイズ変更されるかを制御するために動作する。例えば、サービスは、関連づけられた配送要求事項を調整するためにサイズが変更される。一側面においては、1つ以上のサービスは、関連づけられた帯域幅要求を軽減するためにサイズが変更される。しかしながら、サイズ変更コントローラ116は、関連づけられた配送要求事項のうちのいずれかを調整するためにサービスのサイズを変更するために動作する。以下の説明は、RTサービスにおいて構成要素ストリームのサイズを変更するために動作するサイズ変更アルゴリズムを説明する。RTサービスのサイズ変更を生じさせる条件も提供される。一側面においては、サイズ変更コントローラ116は、サイズ変更パラメータを決定するサイズ変更アルゴリズムを実装するために動作する。これらのパラメータは、サイズ変更要求においてRTサービスと関連づけられたRTMSに送信される。次にRTMSが動作し、識別されたRTサービスをサイズ変更要求内のパラメータに従ってサイズ変更する。
【0122】
サイズ変更コントローラ116は、ORTサービスのサイズを変更するためにも動作することにも注目すべきである。例えば、サイズ変更コントローラ116は、1つ以上のORTサービスのサイズがどのようにして変更されるべきか及びNRTMSと通信して決定されたサイズ変更を実装することを決定するために動作可能である。その結果、それらのサービスと関連づけられた配送要求事項が調整される。例えば、サイズ変更コントローラ116は、NRTMSと通信してORTサービスの帯域幅要求を軽減し、それによって配送要求事項を調整することができる。以上のように、RTサービスのサイズ変更を参照してここにおいて説明される側面は、ORTサービスに対しても同様に当てはめることが可能である。
【0123】
図1に示されるように、MUX114は、コンテンツ流データ、及び関連づけられたシグナリングデータをRTMS126及びNRTMS128から受け取る。スーパーフレームごとに、MUX114は、すべてのアクティブなリアルタイムサービスに関してはRTMS126と、及びORTサービスに関してはNRTMS128と選択的に、データ帯域幅を交渉する。一側面においては、帯域幅交渉は、以下の動作順序を含む。
【0124】
a. MUX114が、スーパーフレームにおいて送信されるべきRTサービスに関するデータサイズを要求するためにGetDataSize.RequestメッセージをRTMS126に送る。
【0125】
b. RTMS126が、スーパーフレームにおいて送信されるべきRTサービスに関するデータサイズを指定するGetDataSize.ResponseメッセージをMUX114に送る。
【0126】
c. MUX114が、RTMS126からの及びその他のソースからのすべての受信されたデータサイズに基づいてコンテンツスケジューリング(割り当て)を行う。
【0127】
d. MUX114が、UpdateDataSize.Notificationメッセージの一部としてRTサービス流データに関する更新されたサイズをRTMS126に送る。
【0128】
一側面においては、MUX114は、上述されるスロット割り当てアルゴリズムの側面を備えるコンテンツスケジューリング機能を提供するために動作する。サイズ変更コントローラ116は、サイズ変更アルゴリズムの側面を提供する。スロット割り当てアルゴリズムは、スーパーフレーム内のすべてのメディアサービスに割り当てられたスロット(レート)をぴったり納める責任を有する。一定のシステム上の制約(例えば、デバイスのターボ復号器のピークスループットは、単一のOFDMシンボルにおいて特定のメディアサービスに割り当てることができるスロット数を制限する)は、割り当てられた総スロット数がスーパーフレームにおいて利用可能な総スロット数以下であるにもかかわらずスロット割り当て手順を失敗させる可能性がある。さらに、エアリンク資源要求の圧倒的割合を占めることが予想されるリアルタイムのサービス構成要素は、映像コンテンツである。このコンテンツは、ソースコーディングを用いて圧縮され、その結果可変性が非常に高いビートレート流になる。最後に、リアルタイムサービスの送信に関して利用可能なスーパーフレーム当たりの容量は、その他の同時並行するメディアサービスの要求事項に起因して変化する可能性がある。これらの要因は、以下の割り当て状態のうちの1つを生じさせる。
【0129】
1. RTサービスによって要求される全データの合計が利用可能な容量以下であり、スロット割り当てアルゴリズムが成功である。
【0130】
2. RTサービスによって要求される全データの合計が利用可能な容量以下であるが、スロット割り当てアルゴリズムは失敗である。
【0131】
3. RTサービスによって要求される全データの合計が利用可能な容量よりも大きい。
【0132】
割り当て状態2及び3は、結果的に、RTサービス流によって要求されるデータ量を割り当てることができない。これらのシナリオにおいては、MUX114は、サイズ変更コントローラ116を呼び出し、サイズ変更アルゴリズムを実行してRTサービスのサイズを変更する。次の節では、リアルタイムサービスに関する品質概念及びサイズ変更アルゴリズムの側面の目標を説明する。
【0133】
リアルタイムサービス品質及びサイズ変更アルゴリズムの目標
品質概念は、リアルタイムストリーミングメディアサービス内での映像流と関連づけられる。リアルタイムサービスの品質(Q)は、サービス流に割り当てられたビットレートの関数であり、以下のように表される品質関数によってモデル化される。
【0134】
Q=f(r)
(3)
スーパーフレームごとに、RTMS126は、MUX114がこの関数を評価するのを援助する情報を提供する。この情報は、GetDataSize.ResponseメッセージにおいてMUX114に送られる。以下の節において説明されるように、MUX114は、この情報をリアルタイムサービスの品質推定のために用いてサイズ変更手順を容易にする。選択された品質測定又は特徴も品質推定のためにMUX114によって使用可能であることも注目されるべきである。
【0135】
サイズ変更アルゴリズムは、スロット割り当てアルゴリズムが成功するように割り当てられた総レートがRTサービスに関して利用可能な容量以下であるような形でリアルタイムサービスにレートを割り当てる(単位は、物理層パケット(PLP))。従って、一側面においては、RTサービスに関するレート割り当ては、RTサービス映像流の品質関数が以下のように重みに比例するようにすべきである。
【0136】
(Qi/Qj)=(Wi/Wj)
(4)
ここで、Qi(Wi)及びQj(Wj)は、いずれかのRTサービスi、jに関する品質関数(流れ重み)である。品質関数は、上の方程式(3)を用いて推定される。流れと関連づけられた重み値は、その他のRT映像流間におけるその流れの相対的有意性の尺度である。一側面においては、MUX114は、サブスクリプション・アンド・プロビジョニング(Subscription and Provisioning)サブシステムからこれらの流れ重み値を入手し、該サブシステムは、配信ネットワークと関連づけられたサービス計画策定及び管理関数に関する責任を有することもできる。
【0137】
サイズ変更アルゴリズム
この節は、RTサービスサイズ変更アルゴリズムの側面を説明する。このアルゴリズムは、RTサービスにおける映像成分ストリーム(流れ)に関するレート割り当てに収斂する繰り返し手法を用いる。このアルゴリズムは、最初に、各映像ストリームによって要求されるPLP数(レート)から開始する。このアルゴリズムの繰り返しの各々は、レート引き下げに関する候補サービスを識別することを含む。候補ストリームは、レート引き下げの影響を最も受けにくく、その他のストリームと比較して不都合な品質低下を被らないストリームである。一側面においては、サイズ変更アルゴリズムの関数は、図2に示されるサイズ変更コントローラ212によって提供される。
【0138】
候補ストリームが識別された後は、そのストリームに割り当てられたレートが引き下げられる。例えば、レートは、2つのリード−ソロモン符号ブロックに対応する量だけ引き下げることができる。ネットワークは、1つのリード−ソロモンブロックに対応するPLP数によって定義される粒度で全サービスにレートを割り当てる。映像ストリームは、基本及び拡張映像成分を有するネットワークの層化送信モードのうちの1つを用いて送信されると仮定される。さらに、システムは、2つの映像成分内のデータが等しくなるように制約する。従って、2つのリード−ソロモンブロックがレート引き下げ単位として選択される。しかしながら、ストリームのレートをその他の選択された量だけ引き下げることは側面の適用範囲内にあることが注目されるべきである。
【0139】
定数
多重化システムの側面においてはサイズ変更関数を提供するために以下の定数パラメータが用いられる。
【0140】
rateReductionBnd
リアルタイム映像ストリームに関する分数的レート引き下げの上限。この限度は、ストリームによって要求されるレートを参照する。一側面においては、0.5の値が用いられる。
【0141】
sysMin
ストリームの品質に関する最低値。レート引き下げ限度に達しているストリームのレートがさらに引き下げられるのを防止するために用いられる。
【0142】
payloadPLP
PLPに関する有効ペイロードであり、約968ビットである。
【0143】
アルゴリズム入力
多重化システムの側面においてはサイズ変更関数を提供するために以下の入力が用いられる。
【0144】
maxRTSOFDMSym
リアルタイムサービスに関して利用可能なスーパーフレーム当たりのOFDMシンボル数を単位とする容量。
【0145】
numRTS
利用可能な容量を共有するリアルタイムサービス数
numVStreams
リアルタイムサービスにおける映像成分ストリーム総数。例えば、VStreamは、各リアルタイム映像成分ストリームを記述する構造のリストである。
【0146】
_weight
ストリームに関する相対的重み値を保有する。
【0147】
requestedPLPs
ストリームによって要求されるスーパーフレーム当たりのPLP数を保有する。要求される生ビット数をrequestedPLPsxpayloadPLP(968ビット)として推定することが可能である。
【0148】
rsCodeParameterK
リード・ソロモン(N,K)符号に関するパラメータK
変数
多重化システムの側面においてはサイズ変更関数を提供するために以下の変数が用いられる。
【0149】
reqPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、このストリームによって要求されるスーパーフレーム当たりのPLP数を保有し、VStream構造のrequestedPLPs数によって示される。
【0150】
assgnPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、このストリームに割り当てられたスーパーフレーム当たりのPLP数を保有する。
【0151】
tempPLPs[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、映像成分ストリームに割り当てられたスーパーフレーム当たりのPLP数を保有する。これは、アルゴリズムによって内部で用いられる一時的変数である。
【0152】
weight[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、VStream構造の_weight要素によって示されるストリームの相対的重み値を保有する。
【0153】
effQuality[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、リアルタイムサービスストリームに関する推定された品質を保有する。
【0154】
PLPsPerRSB1k[numVStreams]
映像成分ストリームを識別する数字(0乃至numVStreams−1)によってインデキシングされたアレイ。アレイは、VStream構造のrsCodeParameterK要素によって示されるリード−ソロモン符号ブロック当たりのデータ数PLPを保有する。
【0155】
アルゴリズム出力
多重化システムの側面においてはサイズ変更関数を提供するために以下の出力が用いられる。
【0156】
successFlag
サイズ変更アルゴリズムが制約を満たすレート割り当てに収斂するのに成功した場合に1に設定されるフラグ。その他の場合は、successFlagは0に設定される。
【0157】
サイズ変更アルゴリズムによって呼び出される内部手順
以下は、多重化システムの側面においてサイズ変更アルゴリズムによって呼び出される内部手順である。
【0158】
reducePLP ( )
レート引き下げに関する映像ストリームを識別し、そのストリームに割り当てられたデータ量を低減させる手順。この手順は、主ルーチンに関して定義される変数スペースを共有する。
【0159】
再符号化アルゴリズムによって呼び出される外部アルゴリズム
以下は、多重化システムの側面においてサイズ変更アルゴリズムによって呼び出される外部手順である。
【0160】
slotAllocation
スロット割り当てアルゴリズムは、すべてのメディアサービスに割り当てられたスロットをスーパーフレーム内にぴったり納める責任を有する。サイズ変更アルゴリズムは、全メディアサービスに関する割り当てられたデータ(レート)を含む要求される入力引数を用いてスロット割り当てアルゴリズムを呼び出す。
【0161】
アルゴリズム
以下は、多重化システムの側面において用いるためのサイズ変更アルゴリズムの一側面の説明である。一側面においては、サイズ変更コントローラ212は、サイズ変更アルゴリズムを実装し、以下の機能のうちの1つ以上を実行する。
【0162】
a. VStream構造データを用いて、アレイreqPLPs[]、qualityIndex[]、PLPsPerRSBlk[]、及びweight[]にポピュレートする。
【0163】
b. reqPLPs[]内の対応する要素に合わせてアレイassgnPLPs[]の全要素を初期設定する。
【0164】
c. algorithmFlag=1、及びsuccessFlag=0を初期設定する。
【0165】
d. 以下の機能(functions)を実行する。
【0166】
while algorithm Flag==1
reducePLPs()
if reduction>0
call slotAllocation Algorithm
if slotAllocation Algorithm succeeds
algorithmFlag=0
success Flag=1
endif
else
/*この条件は、rateReductionBnd限度を尊重する一方でのサイズ変更の失敗を意味する。*/
endif
endwhile
以下の機能は、reducePLPs()手順の一部として実行される。
【0167】
fori=0 to numVStreams
tempPLPs[i]=assgnPLP[i]
tempPLPs[i]=tempPLPs[i]−2xPLPsPerRSBlk[i]
/*ストリームに割り当てられたPLPは、2つのリード−ソロモンブロックに対応する量だけ減らされる。一側面においては、基本成分及び拡張成分の両方から1つのRSブロックが除去される。システムは、基本映像成分及び拡張映像成分内のデータが等しくなるように制約する。*/
if tempPLPs[i]/reqPLPs[i]≧rateReductionBnd
effQuality[i]=f(tempPLPs[i]xpayloadPLP)/weight[i]
else
effQuality[i]=sysMin
endif
endfor
/*f()は、品質を評価するために用いることができる適切な関数である*/
e. アレイeffQuality[]によって与えられる最大有効品質を 有するサービスのインデックスを識別する。_indexパラメータをその値に設定する。
【0168】
f. 以下の機能を実行する。
【0169】
if effQuality[_index]==sysMin
/*この条件は、rateReductionBnd限度を尊重する一方でのサイズ変更の失敗を意味する。*/
reduction=−1
else
reduction=2xPLPsPerRSBlkLindex]
assgnPLPsLindex]=tempPLPsLindex]
endif
従って、サイズ変更コントローラ212は、多重化システムの側面においてサービスのサイズを変更するために上記の機能を提供するために動作する。例えば、上述される割り当てアルゴリズムの側面によって提供されるスーパーフレームの利用可能なスロットにサービスを割り当てることができるようにRTサービスのレートが引き下げられる。
【0170】
リアルタイム以外のサービス(ORTS)
様々な制約を考慮に入れ、及びOFDMシンボルにおいてサービスに関して送信されるターボパケット数をデバイスによって復号可能であるようにするスロット割り当てアルゴリズムの側面が上述される。デバイスはいずれかの時点においても1つのRTサービスのみを受信することが要求されるため、このアルゴリズムはRTサービスに関して好ましい。しかしながら、デバイスは、スーパーフレームにおいて複数のORTサービスを受信中である可能性がある。同じアルゴリズムが用いられる場合は、OFDMシンボルにおいてデバイスによって契約されたすべてのORTサービスに関する総パケット数は、デバイス限度よりも大きくなる可能性がある。これは、“ターボパケット衝突”と呼ばれる。ターボパケット衝突は、ORTサービスデータの損失に結び付く。損失の規模は、一般的には、ユーザーのサービス契約パターンに依存する。従って、ターボパケット衝突を完全に排除する、ORTサービスに関するスロット割り当てアルゴリズムの追加の側面が以下において提供されて説明される。
【0171】
図17は、多重化システムにおいて用いるためのRTサービス及びORTサービスに関する領域内に分割される典型的フレーム1700を示す。第1の領域1702は、RTサービスに関して提供され、第2の領域1704は、ORTサービスに関して提供される。フレームをこれらの領域にパーティショニングすることは、RTサービスとORTサービスとの間においてターボパケット衝突が存在しないようにする。RT1702とORT1704との間のパーティションは、“ソフト”パーティションである(すなわち、スーパーフレームごとに異なり、そのスーパーフレーム内における利用可能なRT及びORTサービスに依存する)。RTサービスは、上述されるスロット割り当てアルゴリズム及びサイズ変更アルゴリズムのうちの1つを用いてRTサービス領域1702において割り当てられる。ORTサービスは、後述されるORTサービスアルゴリズムのうちの1つを用いてORTサービス領域1704においてスロット割り当てされる。1つ以上の側面においては、ORTサービスも、利用可能な帯域幅内にぴったり納まるようにサイズが変更される。ORTサービスに対して適用されるサイズ変更のより詳細な説明が以下において提供される。
【0172】
ORTサービススロット割り当て
受信デバイスの電力消費量に関して、MLC割り当ての高さはmaxSlotHeightであることが好ましい。これは、デバイスがそのMLCを受信するための可能な“オンタイム”を最小にする。しかしながら、パッキングを容易にするために、サービスのすべてのグループ分けされたMLCに対して同じ高さが割り当てられる。従って、ORTサービスに関する場合においても、“サービスのmaxSlotHeight”の概念は、そのサービスに関してグループ分けされた全MLCのmaxSlotHeightパラメータの最低又は最小のパラメータであると定義される。この説明の残りの部分に関しては、サービスの高さは、そのサービスのすべてのMLC割り当ての共通の高さを意味する。
【0173】
サービスのチャネルがグループ分けされる
一側面においては、サービスの全チャネルがグループ分けされ、従ってそれらのチャネルの割り当てがフレーム内において一時的に隣接する。この手法は、デバイスがサービスの異なるチャネルを受信するために“ウェークアップ”する必要がある回数を減らし、従ってデバイスが電力消費量を低減させるのに役立つ。
【0174】
ORTS領域がブロックに分割される
図18は、ORTS領域が異なる高さのブロックに分割される典型的フレーム1800を示す。一側面においては、ブロックの高さは、サービスがとることができる可能なmaxSlotHeightに対応する。テーブル500から、4つのmaxSlotHeight(すなわち、3、4、6及び7)が存在することがわかる。従って、フレーム1800は、関連づけられたサービスを割り当てるために用いられるthreeBlk1802、fourBlk1804、sixBlk1806、及びsevenBlk1808を示す。これで、ORTサービススロット割り当てアルゴリズムが動作し、maxSlotHeightに基づいてサービスをパッキングして異なるブロック入れる。
【0175】
ブロックの上方に他のブロックが存在しない
一側面においては、ブロックは、ブロックの上方に他のブロックが存在しないような形でフレーム1800内に配置される。これは、いずれの2つのORTサービスもターボパケット衝突を有さないことを保証する。
【0176】
ORTサービススロットアルゴリズム
1つ以上の側面においては、以下のパラメータは、ORTサービススロット割り当てアルゴリズムへの入力を表す。
【0177】
a. サービスの各MLCがフレームに関して有するデータスロット数。
【0178】
b. サービスの各MLCのmaxSlotHeightであり、そのMLCの送信モードによって決定される。
【0179】
c. ORTサービスに関して利用可能な総シンボル数(numAvailOrtsSymPerFrm)。
【0180】
1つ以上の側面においては、以下のパラメータは、ORTサービススロット割り当てアルゴリズムからの出力を表す。
【0181】
a. パッキングが可能であるかどうかの決定
b. パッキングが成功である場合は、ORTサービスによって占められるシンボル数(numOccuOrtsSymPerFrm)。
【0182】
図19は、多重化システムにおいて用いるためのORTサービスにスロットを割り当てる典型的方法1900を示す。一側面においては、MUX論理210は、後述される方法1900の機能を提供するために動作する。
【0183】
ブロック1902において、各ORTサービスのmaxSlotHeightの計算が実行される。一側面においては、MUX論理210がこの計算を行う。
【0184】
ブロック1904において、ORTサービスが各サービスに関するmaxSlotHeightパラメータに基づいてブロックにグループ分けされる。例えば、一側面においては、サービスは、threeBlkSrvcs、fourBlkSrvcs、sixBlkSrvcs、及びsevenBlkSrvcsにグループ分けされる。一側面においては、MUX論理210がこの動作を実行する。
【0185】
ブロック1906において、長さ変数L7、L6、L4及びL3が計算される。例えば、L7=ceil(すべてのsevenBlkSrvcsの総スロット数/7)であり、ここで、ceil(x)は、xよりも大きい最小整数である。一側面においては、MUX210がこの動作を実行する。
【0186】
ブロック1908において、要求されるシンボル数が利用可能なシンボル数よりも多いかどうかを決定するための試験が行われる。例えば、以下の不等式が評価される。
【0187】
(L7+L6+L4+L3≦numAvailOrtsSymbolsPerFrm)
一側面においては、MUX論理210がこの動作を行う。上記の不等式が偽である場合は、方法はブロック1910に進む。上記の不等式が真である場合は、方法はブロック1912に進む。
【0188】
ブロック1910において、パッキングが失敗であることが決定され、方法がブロック1914において終了する。
【0189】
ブロック1912において、パッキングが成功であり、占有されるシンボル数が以下の方程式から決定される。
【0190】
numOccuOrtsSymPerFrm=L7+L6+L4+L3
一側面においては、MUX論理210がこの動作を行う。パッキングが成功した時点で、各サービスが属するブロックは既知であるため、すべてのMLC割り当ての位置に到達するのは容易である。
【0191】
方法1900は、単なる1つの実装を表すにすぎず、方法1900の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0192】
スロット割り当てとサイズ変更アルゴリズムとの間の相互関係
これまでの節においては、スロット割り当て及びサイズ変更アルゴリズムの側面が説明されている。以下の節は、多重化システムの側面において用いるためのこれらのアルゴリズムの全体的相互関係を説明する。
【0193】
図20は、多重化システムにおいて用いるためのスロット割り当て、サイズ変更、及び混雑制御を提供するための典型的方法2000を示す。例えば、サーバー200は、後述される機能を提供するために動作する。
【0194】
ブロック2002において、優先度が高及び中のORTサービスにスロットが割り当てられる。例えば、スーパーフレームごとに、MUX114は、GetDataSize.Response命令を用いて様々な流れデータ量及びその相対的優先度をコンテンツエンティティ、例えばRTMS126及びNRTMS128、から入手する。この情報を用いて、優先度が高及び中のORTサービスに関するスロット割り当てが行われる。例えば、一側面においては、MUX210は、上記のアルゴリズムによる高及び中優先度のORTサービスのスロット割り当てを行うために動作する。
【0195】
ブロック2004において、優先度が高及び中であるORTサービスのスロット割り当てが成功であったかどうかを決定するための試験が行われる。割り当てが成功であった場合は、方法はブロック2006に進む。割り当てが成功でなかった場合は、方法はブロック2018に進む。
【0196】
ブロック2018において、混雑制御が行われる。高及び中優先度のORTサービススロット割り当てが成功でなかった場合は、システムは、対処する必要がある混雑を経験する。一側面においては、MUX論理210は、図22を参照して説明される混雑制御アルゴリズムを実行する。混雑制御から戻った時点で、方法はブロック2028において停止する。
【0197】
ブロック2006において、ORTサービススロット割り当ての成功に基づき、RTサービスに関して利用可能なシンボル数が計算され、繰り返しパラメータがゼロに設定される。例えば、一側面においては、MUX論理210がこれらの機能を実行する。
【0198】
ブロック2008において、フレーム内の残りのシンボルを用いてRTサービスのスロット割り当てが行われる。例えば、上述されるスロット割り当てアルゴリズムの側面は、RTサービスにスロットを割り当てるために用いられる。
【0199】
ブロック2010において、RTサービスが成功裏に割り当てられたかどうかを決定するための試験が行われる。割り当てが成功でなかった場合は、方法はブロック2014に進む。割り当てが成功であった場合は、方法はブロック2012に進む。
【0200】
ブロック2012において、利用可能なシンボル数が減らされて繰り返しパラメータが増加される。例えば、一側面においては、MUX論理210がこれらの機能を実行する。次に、方法はブロック2008に進んでRTサービスにスロットを割り当てる。
【0201】
ブロック2014において、繰り返しパラメータがゼロよりも大きいかどうかを決定するための試験が行われる。例えば、一側面においては、MUX論理210がこれらの機能を実行する。繰り返しパラメータがゼロよりも大きい場合は、方法はブロック2016に進む。繰り返しパラメータがゼロよりも大きくない場合は、方法はブロック2020に進む。
【0202】
ブロック2016において、numRTSymbols+1を用いたRTサービススロット割り当てが行われる。例えば、MUX論理210は、増加されたnumRTSymbols値を用いてRTサービスに関するスロット割り当てを行う。方法はブロック2024に進む。
【0203】
ブロック2020において、選択されたRTのサイズが変更される。一側面においては、RTサービススロット割り当てが成功できるようにするためにサイズ変更アルゴリズムが用いられて1つ以上の流れのレートのサイズが変更される。例えば、サイズ変更コントローラ212が動作し、ここにおいて説明されるサイズ変更アルゴリズムのうちの1つを実行する。サイズ変更アルゴリズムから戻った時点で、方法はブロック2022に進む。
【0204】
ブロック2022において、RTサービスのサイズ変更が成功であったかどうかを決定するための試験が行われる。例えば、サイズ変更アルゴリズムが受け入れ可能な下限映像品質又は下限サイズ変更比でのスロット割り当てを達成できない状況が存在することがある。サイズ変更が成功であった場合は、方法はブロック2024に進む。サイズ変更が成功でなかった場合は、この状況は、システムが混雑していることを意味し、このため方法はブロック2018に進んで混雑制御を実行する。
【0205】
ブロック2024において、優先度の低いORTサービスに対して順位の昇順でスロットが割り当てられる。例えば、MUX論理210がこの機能を実行する。
【0206】
ブロック2026において、ベストエフォートORTサービス又はデータにスロットが割り当てられる。例えば、MUX論理210がこの機能を実行する。これで、方法2000が2028において終了する。
【0207】
従って、方法2000の完了時点において、MUX論理114は、現在のスーパーフレームにおいて送信することができる様々な流れの正確なデータサイズに関する情報を有する。この情報は、UpdateDataSize.Notificationメッセージを用いてRTMS126及びORTMS128に戻される。
【0208】
方法2000は、単なる1つの実装を表すにすぎず、方法2000の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0209】
図21は、多重化システムにおいて用いるためのサイズ変更を提供するための典型的方法2100を示す。例えば、方法2100は、図2000におけるブロック2020として用いるのに適する。一側面においては、サイズ変更コントローラ212が後述される機能を提供するために動作する。
【0210】
ブロック2102において、要求されるスロット数が評価されてパラメータnが計算される。一側面においては、nは、サービスに関して要求されるスロット数と利用可能なスロット数の比を表す。例えば、サイズ変更コントローラ212がこの計算を行う。
【0211】
ブロック2104において、サイズ変更されるべき流れの品質が評価される。例えば、各流れに関するMLCをnの符号ブロックだけ縮小後に品質評価が行われる。例えば、サービスの品質(Q)は、サービス流に割り当てられたビットレート(r)の関数であり、上記において表される品質関数によってモデル化される。例えば、サイズ変更コントローラ212がこの品質決定を行う。
【0212】
ブロック2106において、最高の結果的に得られた品質を有する流れが決定される(候補)。例えば、サイズ変更コントローラ212は、ブロック2104において符号ブロックの低減を行った結果得られる最高品質を有する流れを決定する。
【0213】
ブロック2108において、最高品質がシステムの最低品質要求よりも高いかどうかを決定するための試験が行われる。例えば、サイズ変更コントローラ212がこの試験の結果を決定する。最高品質がシステムの最低品質要求よりも高くない場合は、方法はブロック2116に進む。最高品質がシステムの最低品質要求よりも高い場合は、方法はブロック2110に進む。
【0214】
ブロック2110において、最高の品質を有する流れのサイズが変更されてスロット割り当てが行われる。例えば、最高の品質を有する流れがnの符号ブロックだけ縮小されてスロット割り当てが行われる。例えば、サイズ変更コントローラ212が流れのサイズを変更し及びスロット割り当てを行うようにMUX論理210に要求する。
【0215】
ブロック2112において、スロット割り当てが成功であったかどうかを決定するための試験が行われる。例えば、サイズ変更コントローラ212は、ブロック2110において行われたスロット割り当てが成功であったかどうかを示すインジケータをMUX論理114から受け取る。スロット割り当てが成功であった場合は、方法はブロック2114に進む。スロット割り当てが成功でなかった場合は、方法はブロック2102に進む。
【0216】
ブロック2114においては、サイズ変更が成功であることが決定され、ブロック2116においては、サイズ変更が失敗であったことが決定される。例えば、サイズ変更コントローラ212がこれらの決定を行う。方法はブロック2118に進み、ブロック2118において、方法は図2000のブロック2020に戻る。
【0217】
従って、方法2100は、多重化システムにおいて用いるためのサイズ変更を提供するために動作する。方法2100は、単なる1つの実装を表すにすぎず、方法2100の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0218】
図22は、多重化システムにおいて用いるための混雑制御を提供するための典型的方法2200を示す。例えば、方法2200は、図2000におけるブロック2018として用いるのに適する。一側面においては、MUX210が後述される機能を提供するために動作する。
【0219】
ブロック2202において、優先度の高いORTサービスにスロットが割り当てられる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。
【0220】
ブロック2204において、ブロック2202において行われた割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2208に進む。割り当てが成功でなかった場合は、方法はブロック2206に進む。
【0221】
ブロック2206において、優先度の高いORTサービスが順位の昇順で割り当てられる。例えば、MUX論理210は、ここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを実行する。これで、方法2200は2218において終了する。
【0222】
ブロック2208において、すべての可能なRTサービス流が選択された量だけ縮小され、これらの流れのスロット割り当てが行われる。例えば、サイズ変更コントローラ212及びMUX210がここにおいて説明される側面に従ってこれらの動作を行う。選択された量は、システムにとって既知のレート引き下げパラメータに基づく。
【0223】
ブロック2210において、ブロック2208におけるRTサービススロット割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2112に進む。割り当てが成功でなかった場合は、方法はブロック2214に進む。
【0224】
ブロック2212において、優先度が中であるORTサービスに順位の昇順でスロットが割り当てられる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。これで、方法2200は2218において終了する。
【0225】
ブロック2214において、順位が次に最も低いサービスを除外するRTサービススロット割り当てが行われる。例えば、MUX210がここにおいて説明される割り当てアルゴリズムの側面に従ってこの割り当てを行う。
【0226】
ブロック2216において、ブロック2214における割り当てが成功であったかどうかを決定するための試験が行われる。例えば、MUX210がこの機能を実行する。割り当てが成功であった場合は、方法はブロック2212に進む。割り当てが成功でなかった場合は、方法はブロック2214に戻って他のサービスを除外してスロット割り当てを再度試みる。
【0227】
従って、方法2200は、多重化システムにおいて用いるための混雑制御を提供するために動作する。方法2200は、単なる1つの実装を表すにすぎず、方法2200の変更、追加、削除、結合又はその他の修正もこの開示の適用範囲内において可能であることが注目されるべきである。
【0228】
図23は、典型的多重化システム2300を示す。多重化システム2300は、データを受信するための手段(2302)と、帯域幅を決定するための手段(2304)と、データを割り当てるための手段(2306)と、データのサイズを変更するための手段(2308)と、を含む。一側面においては、手段(2302乃至2308)は、ここにおいて説明される多重化システムの側面を提供するためのコンピュータプログラムを実行する少なくとも1つのプロセッサによって提供される。
【0229】
図24は、ここにおいて説明される技法に従ってマルチメディアデータを符号化する他の典型的マルチメディア符号化デバイス2400を示すブロック図である。マルチメディア符号化デバイス2400は、マルチメディアデータの1つ以上のチャネルをブロードキャストするために用いられるブロードキャストネットワーク構成要素の一部を成すことができる。マルチメディア符号化デバイス2400は、例えば、符号化されたマルチメディアデータの1つ以上のチャネルを1つ以上の無線デバイス、例えばモバイルデバイス102(図1)、にブロードキャストするために用いられる無線基地局、サーバー、又はインフラストラクチャノードの一部を成すことができる。例えば、マルチメディア符号化デバイス2400は、図1のサーバー104を表すことができる。
【0230】
マルチメディア符号化デバイス2400は、マルチメディアデータの1つ以上の流れを含む複数のサービスを符号化し、符号化された流れを結合し、結合された流れを送信チャネル2402を介してマルチメディア復号デバイスに送信する。この開示の一側面においては、マルチメディア符号化デバイス2400は、ある期間にわたって受信されたデータの流れの一部分を符号化、結合及び送信する。一例として、マルチメディア符号化デバイス2400は、1秒ごとに流れに対して動作することができる。換言すると、マルチメディア符号化デバイス2400は、複数の流れのうちの1秒のデータセグメントを符号化し、1秒のデータセグメントを結合してデータのスーパーフレームを形成し、送信機2408を介して送信チャネル2402を通じてそのスーパーフレームを送信する。ここにおいて用いられる用語“スーパーフレーム”は、ある期間又はウィンドー、例えば1秒の期間又はウィンドー、にわたって収集されたデータセグメントのグループを指す。データセグメントは、1つ以上のデータフレームを含むことができる。この開示の技法は、1秒のデータセグメントに関して説明されるが、これらの技法は、その他のデータセグメントを結合及び送信するために、例えば固定された期間である場合とない場合がある異なる期間にわたって受信されたデータセグメントに関して、又は個々のデータフレーム又はデータフレームの組に関しても利用することができる。換言すると、スーパーフレームは、1秒の期間よりも長い又は短い時間間隔、又は時間が可変の間隔、を網羅するように定義することが可能である。
【0231】
送信チャネル2402は、あらゆる有線又は無線媒体、又はその組み合わせを備えることができる。一側面においては、送信チャネル2402は、固定された帯域幅のチャネルである。この場合は、マルチメディア符号化デバイス2400が送信チャネル2402を介して送信することができるデータビット数は、固定された帯域幅のチャネルのサイズに制限される。マルチメディア符号化デバイス2400は、目標となる品質レベルでデータ流の各々を出力することを試みる。ビットレートを決定するために用いられる目標品質レベルは、予め選択すること、ユーザーによって選択すること、自動プロセス又はユーザーからの又は他のプロセスからの入力を要求する半自動プロセスを通じて選択すること、又は予め決定された判定基準に基づいて符号化デバイス又はシステムによって動的に選択することができる。目標品質レベルは、例えば、符号化アプリケーションのタイプ、又はマルチメディアデータを受信するクライアントデバイスの型に基づいて選択することができる。データの流れの各々を目標品質レベルで出力するために必要なビット数が送信チャネル2402を通じて利用可能なビット数を超える場合は、マルチメディア符号化デバイス2400は、この開示の技法に従って複数の流れに関する最高の全体的品質を保持することを試みてデータ流間におけるビット割り当てを管理する。
【0232】
図24に示されるように、マルチメディア符号化デバイス2400は、符号器モジュール2404A乃至2404N(総称として“符号器モジュール2404”と呼ばれる)と、マルチプレクスモジュール2406と、送信機2408と、を含む。符号器モジュール2404は、1つ以上のソースからデジタルマルチメディアデータの流れを受け取る。符号器モジュール2404は、例えば、符号器モジュール2404に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータの流れを受け取る。マルチメディアデータの流れは、コーディングされてブロードキャストとして送信される対象となるライブのリアルタイム映像、音声、又は映像と音声の流れを備えることができ、又はコーディングされてブロードキャストとして又は要求に応じて送信される対象となる予め記録されて格納された映像、音声、又は映像と音声を備えることができる。この開示の技法は、非リアルタイムサービス又はリアルタイムサービスと非リアルタイムサービスの組み合わせに対しても適用することができる。換言すると、マルチメディア符号化デバイス2400は、ORTサービスを生成する1つ以上のORTモジュールを含むことができる。しかしながら、説明を単純化するため、図24は、符号器モジュール2404のみを例示する。
【0233】
符号器モジュール2404は、受信されたデータ流を少なくとも品質及びレート情報と関連づけることができる。より詳細に説明されるように、符号化モジュール2404は、流れのコンテンツを解析し、流れを、各々の品質及びレート情報、例えば品質−レート曲線、コンテンツ分類曲線又は品質−レートテーブルと関連づけることができる。品質及びレート情報は、特に、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望するデータセグメントに関して異なる品質レベルでデータセグメントのサイズを示すことができる。符号器モジュール2404は、データセグメントと関連づけられた少なくとも品質及びレート情報をマルチプレクスモジュール2406に送る。符号器モジュール2404は、制御チャネルを介して品質及びレート情報をマルチプレクスモジュール2406に送ることができる。例えば、符号器モジュール2404は、マルチプレクスモジュール2406から受け取られた要求に応答して制御チャネルを介して品質及びレート情報を送ることができる。マルチプレクスモジュール2406及び符号器モジュール2404は、幾つかの異なる通信プロトコルを用いて通信することができる。一側面においては、マルチプレクスモジュール2406は、メッセージトランスポート層(MTL)を基本的なトランスポート機構として利用するプロトコルを用いて通信することができる。
【0234】
マルチプレクスモジュール2406は、品質及びレート情報を受け取る。幾つかの場合においては、マルチプレクスモジュール2406は、配送要求事項、例えば1つ以上のORTサービスと関連づけられた優先度及びレーテンシーの要求事項を受け取ることもできる。マルチプレクスモジュール2406は、1つ以上の配送要求事項を解析し、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望するデータセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定する。マルチプレクスモジュール2406は、例えば、マルチメディア符号化デバイス2400の目標品質レベルとデータセグメントと関連づけられた各々の品質−レート曲線との間の交点に対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかについての最初の決定を行う。他の例として、マルチプレクスモジュール2406は、データセグメントと関連づけられた品質−レートテーブルにおいて指定される最高の品質レベルに対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかについての最初の決定を行うことができる。
【0235】
データセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定するために、マルチプレクスモジュール2406は、品質レベルのうちの選択された1つに対応するサイズでデータセグメントの各々を送るために必要な送信資源量を決定し、データセグメントを送るために必要な送信チャネル資源量を合計し、及び全データセグメントによって要求される送信チャネル資源の合計量を利用可能な送信チャネル資源量と比較してデータセグメントを送る上での十分な送信チャネル資源が存在するかどうかを決定することができる。無線に関しては、送信チャネル資源は、エアリンク又はエアインタフェース資源を備えることができる。一側面例においては、マルチプレクスモジュール2406は、十分な送信チャネル資源が存在するかどうかを決定するためのスロット割り当てアルゴリズム、例えば上述されるスロット割り当てアルゴリズムのうちの1つ、を実行することができる。上記においてより詳細に説明されるように、マルチプレクスモジュール2406は、全サービス/セグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するために符号器モジュール2404のデータセグメントと関連づけられた品質及びレート情報と連携してORTサービス配送要求事項を考慮に入れることもできる。
【0236】
複数のデータセグメントが利用可能な帯域幅内にぴったり納まらないことをマルチプレクスモジュール2406が決定した場合、例えば、スロット割り当てアルゴリズムが失敗であるか又は必要な送信チャネル資源の合計が利用可能な送信チャネル資源を超える場合は、マルチプレクスモジュール2406は、符号器モジュール2404から受け取られた品質及びレート情報に基づいてサイズが変更されるべき1つ以上のセグメントを選択する。マルチプレクスモジュール2406は、対応する縮小されたサイズにおける品質上の影響が最も小さいサイズが変更されるべきデータセグメントを選択することを試みる。以下においてより詳細に説明されるように、マルチプレクスモジュール2406は、品質−レート情報を解析してセグメントに対して割り当てられたビット数の減少後における各々のデータセグメントへの品質上の影響を決定し、縮小されたサイズにおいて最高のレベルを有するデータセグメントのうちの1つ以上を選択する。この方法により、マルチプレクスモジュールは、符号器モジュール2404のリアルタイムサービス間で裁定することができる。しかしながら、幾つかの場合においては、マルチプレクスモジュール2406は、関連づけられた配送要求事項に基づいてサイズが変更されるべき1つ以上のORTサービスを選択し、符号器モジュール2404のリアルタイムサービス及びORTサービス間で帯域幅を割り当てることができる。繰り返すと、ここにおける技法は、典型例を目的としてリアルタイムサービスに関して説明される。マルチプレクスモジュール2406は、依然として、上述される技法に従ってORTサービスを解析及びサイズ変更することができる。以上のように、以下の図において説明される技法は、リアルタイムサービスのサイズ変更により適用可能である。
【0237】
マルチプレクスモジュール2406は、選択されたデータセグメントと関連づけられた符号器モジュール2404に対して、縮小されたビット割り当てに従ってデジタルマルチメディアデータの流れのサイズを変更するように要求する。幾つかの場合においては、マルチプレクスモジュール2406は、サービスを送信する上で十分な帯域幅が存在しないときに選択されたデータセグメントのサイズを縮小するように符号器モジュール2404に要求することができる。その他の場合においては、マルチプレクスモジュール2406は、余分の利用可能な帯域幅が存在するときに選択されたデータセグメントのサイズを拡大するように符号器モジュール2404に要求することができる。マルチプレクスモジュール2406は、選択されたセグメントと関連づけられた符号器モジュール2404に対して制御チャネルを介してサイズ変更要求を送ることができる。サイズ変更要求は、選択されたデータセグメントに関するサイズを、例えばビット単位で指定することができる。
【0238】
選択されたデータセグメントと関連づけられた符号器モジュール2404は、各々のデータセグメントと関連づけられたサイズ変更要求を受け取り、マルチメディアデータセグメントのサイズを変更する。符号器モジュール2404は、幾つかの異なる方法でデータセグメントのサイズを変更することができる。選択されたデータセグメントと関連づけられた符号器モジュール2404は、1つ以上の符号化変数を調整し、データセグメントのサイズをサイズ変更要求において指定される最大サイズ以下に縮小することができる。例えば、符号化モジュール2404は、より高い量子化パラメータ(QP)を用いてデータセグメントを再符号化することができる。他の例として、符号化モジュール2404は、引き下げられた符号化レートでデータセグメントを再符号化することができる。代替として又は追加で、符号化モジュール2404は、符号化されるべき情報量を減らし、それによってデータセグメントのサイズを縮小することができる。幾つかの場合においては、符号化モジュール2404は、1つ以上の符号化変数を調整し、サイズ変更要求において指定されるサイズとなるデータセグメントのサイズを拡大することができる。例えば、符号化モジュール2404は、より小さいQPを用いてデータセグメントを再符号化するか又は引き上げられた符号化レートでデータセグメントを再符号化することができる。
【0239】
マルチプレクスモジュール2406は、マルチプレクスモジュール2406が現在のスーパーフレームを生成する準備が完了しているときに符号化されたデータセグメントを収集する。マルチプレクスモジュール2406は、例えば、制御チャネルを介して符号化モジュール2404に転送要求を送ることができる。要求に応答して、符号化モジュール2404は、符号化されたマルチメディアデータセグメントをマルチプレクスモジュール2406に送る。マルチプレクスモジュール2406は、マルチメディアデータの流れを結合してスーパーフレームを形成し、送信チャネル2402を介して1つ以上の復号デバイスに送信するためにそのスーパーフレームを送信機2408に送る。この方法により、マルチプレクスモジュール2406は、複数のデータ流の最高の全体的品質を保持しながらすべてのデータセグメントを固定された帯域幅チャネル2402内に最も効率的に入れることができるように流れ間でのビット割り当てを管理する。
【0240】
マルチメディア符号化デバイス2400内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型例である。しかしながら、マルチメディア符号化デバイス2400は、希望される場合はその他の数多くの構成要素を含むことができる。さらに、この開示の技法は、図24のようなシステム又はブロードキャストシステムにおいて用いることには必ずしも限定されない。これらの技法は、制限された帯域幅を有する送信チャネルにおいて送信するために複数のマルチメディアデータ流を符号化するために符号化技法が用いられるあらゆるマルチメディア符号化環境において用途を見つけることができる。マルチメディア符号化デバイス2400の例示される構成要素は、符号器/復号器(CODEC)の一部として統合することができる。送信機2408は、符号器又はCODECとは異なる構成要素又はチップ上において形成することができる。
【0241】
マルチメディア符号化デバイス2400内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、マルチメディア符号化デバイス2400は、マルチメディアコーディング基準、例えば、ムービング・ピクチャ・エキスパーツ・グループ(MPEG−4)、国際電気通信連合標準化セクター(ITU−T)、例えばH.263又はH.264、又は他のコーディング基準、又はこれらの組み合わせに準拠することができる。特に、マルチプレクスモジュール2406と通信する各々の符号器モジュール2404は、裁定するためにマルチプレクスモジュール2404によって用いられる品質及びレート情報は各々の符号器モジュール2404に関して独立して生成できるという事実のおかげで異なるマルチメディアコーディング基準に準拠することができる。
【0242】
異なる特徴をモジュールとして描くことは、マルチメディア符号化デバイス2400の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、マルチメディア符号化デバイス2400の例に制限されるべきでない。
【0243】
図25は、複数の流れに関する最高の全体的品質を保持しながらこれらの複数の流れがスーパーフレーム内に最も効率的にぴったり納まるように試みてこれらの複数の流れ間でのビット割り当てを管理する他の典型的マルチメディア符号化デバイス2500を示すブロック図である。マルチメディア符号化デバイス2500は、図24のマルチメディア符号化デバイス2400に実質的に準拠するが、選択されたマルチメディアデータセグメントのサイズ変更は、選択されたデータセグメントと関連づけられたサイズ変更モジュール2502A乃至2502N(総称して“サイズ変更モジュール2502”)によって行われる。
【0244】
従って、図24の符号器モジュール2404の機能は、符号器モジュール2504とサイズ変更モジュール2502との間で分割される。換言すると、符号器モジュール2504は、利用可能な帯域幅をデータセグメントに割り当て、その割り当てが失敗したときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択する際に用いるために各々のデータセグメントと関連づけられた品質及びレート情報をマルチプレクスモジュール2506に提供する。サイズ変更モジュール2502は、データセグメントのサイズを変更する要求をマルチプレクスモジュール2506から受け取り、マルチプレクスモジュール2506から受け取られたサイズ変更に従ってデータセグメントのサイズを変更する。
【0245】
図26は、この開示の技法により機能する典型的符号器モジュール2600を例示するブロック図である。符号器モジュール2600は、例えば、図24の符号化デバイス2400の符号器モジュール2404のうちのいずれか1つを表すことができる。符号器モジュール2600は、マルチプレクスモジュールインタフェース2602と、コンテンツ分類モジュール2604と、品質−レート情報モジュール2606と、符号化モジュール2602と、を含む。符号化モジュール2608は、サイズ変更モジュール2612をさらに含む。サイズ変更モジュール2612は、図1のサイズ変更コントローラ116を表すことができる。
【0246】
符号化モジュール2600は、1つ以上のマルチメディアデータ流をソースから受け取る。符号器モジュール2600は、例えば、符号器モジュール2600に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータの流れを受け取る。マルチメディアデータの流れは、コーディングされてブロードキャストとして送信される対象となるライブのリアルタイム映像、音声又は映像と音声の流れを備えることができ、又はコーディングされてブロードキャストとして又は要求に応じて送信される対象となる予め記録されて保存された映像、音声、又は映像と音声の流れを備えることができる。この開示の技法は、非リアルタイムサービス又はリアルタイムサービスと非リアルタイムサービスの組み合わせに対しても適用することができる。
【0247】
上述されるように、符号器モジュール2600は、データのコンテンツにかかわらずデータ流に関する一定の認識品質評価基準を維持することを試みることができる。換言すると、符号器モジュール2600は、すべてのデータ流を目標品質レベルで出力するのを試みることができる。一定の又は同様の認識品質レベルを維持するために、符号器モジュール2600は、異なるコンテンツを有するデータセグメントに関して異なるビットレートを選択することができる。この目的のため、コンテンツ分類モジュール2604は、コンテンツに基づいてデータセグメントを分類する。コンテンツ分類モジュール2604は、データセグメントのデータの複雑さ(例えば、空間的複雑さ及び/又は時間的複雑さ)に基づいてデータセグメントを分類することができる。適切なコンテンツ分類方法が、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において説明されている。例えば、コンテンツ分類モジュール2604は、動き情報を(x軸における)“高”、“中”、及び“低”のカテゴリに分類し、テクスチャ情報を(y軸における)“高”、“中”、及び“低”のカテゴリに分類することができ、コンテンツ分類は、交差点において示される。この分類は、例えば特定の品質−レート曲線と関連づけることができる。
【0248】
コンテンツ分類モジュール2604は、分類に基づいてデータセグメントを品質及びレート情報と関連づける。一側面においては、コンテンツ分類モジュール2604は、データセグメントを各々の品質−レート曲線と関連づける。品質−レート曲線は、品質評価基準、例えばピーク信号対雑音比(PSNR)、をビットレートの関数としてモデル化する。品質−レート曲線は、例えば、以下の形の対数関数を用いてモデル化することができる。
【0249】
Q=a*ln(R)+b
ここで、Qは品質評価基準であり、Rはビットレートであり、a及びbは幾つかのサンプルデータポイントを用いて計算された定数である。符号器モジュール2600は、様々なコンテンツを有するデータの流れに関する品質−レート特性を表す複数の品質−レート曲線を維持することができる。一例として、符号器モジュール2600は、流れのコンテンツ内における様々なレベルの動き及びテクスチャと関連づけられた8つの異なるクラス、例えば様々なレベルの動き及びテクスチャ、に関する品質−レート曲線を維持することができる。一定のPSNRが必ずしも一定の認識品質を意味するものではないという事実を考慮して、符号器モジュール2600は、PSNR以外の品質評価基準、例えば平均意見点数(MOS)、を用いる品質−レート曲線を維持することができる。代替として、符号器モジュール2600は、一定のPSNRが必ずしも一定の認識品質を意味するものではないという事実を考慮して品質−レート曲線を調整することができる。例えば、符号器モジュール2600は、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において詳述されているように伝統的な品質−レート曲線をオフセットだけ調整することができる。
【0250】
代替として、符号器モジュール2600は、各コンテンツ曲線と関連づけられた目標品質レベルをオフセットだけ調整することができる。高い動き、高いテクスチャコンテンツを含むデータセグメントは、例えば、目標品質レベルに関してわずかにより低い品質で符号化することができ、低い動き、低いテクスチャコンテンツを含むデータセグメントは、例えば、目標品質レベルに関してわずかにより高い品質で符号化することができる。各コンテンツクラスは、全体的な目標品質レベルに関する自己の調整された品質レベルを有するため、符号器モジュール2600は、各コンテンツクラスに関する品質レベルを正規化して符号器モジュール2600における現在の品質レベルを測定することができる。符号器モジュール2600は、以下の線形方程式に従ってこの正規化を達成することができる。
【0251】
Qnorm=Qr−Qk (5)
ここで、Qnormは正規化された品質レベルであり、Qrは記録された品質レベルであり、Qkは曲線kに関する品質レベルの調整オフセットである。品質正規化が線形関数でない場合は、順位決定は品質正規化後に行わなければならない。
【0252】
この開示の他の側面においては、コンテンツ分類モジュール2604は、データセグメントを、これらのセグメントと関連づけられた1つ以上の品質レベル及び各々の品質レベルにおけるセグメントのサイズを示す予め計算された品質−レートテーブルと関連づけることができる。このために、コンテンツ分類モジュール2604は、データセグメントを、品質−レートテーブルのうちの特定の1つに対応する品質−レート曲線と関連づけることができる。品質−レート曲線、調整された品質−レート曲線、及び予め計算された品質−レートテーブルは、メモリ内において維持し(示されていない)、必要時にコンテンツ分類モジュール2604によってアクセスすることができる。
【0253】
幾つかの場合においては、符号器モジュール2600は、予め計算された品質−レート情報を格納しないか又は単に品質−レート情報の一部を予め計算するだけである。品質−レート情報生成モジュール2606は、例えば、コンテンツ分類において用いるために複数の品質−レート曲線及び調整された品質−レート曲線を予め計算することができる。品質−レート曲線及びコンテンツ分類曲線を生成するための1つの典型的技法が、“CONTENT CLASSIFICATION FOR MULTIMEDIA PROCESSING”(マルチメディア処理に関するコンテンツ分類)という題名を有し、その全内容が参照されることによってここにおいて組み入れられている、同時係属中であり共通して譲渡された米国特許出願一連番号11/373,577[Attorney Docket No.050253](出願日:2006年3月10日)において説明されている。
【0254】
しかしながら、品質−レート情報生成モジュール2606は、データセグメントの各々に関する品質−レートテーブルを分類に基づいて各セグメントごとに生成することができる。例えば、品質−レート情報生成モジュール2606は、順位とサイズの対を記載するテーブルを生成することができる。これらの順位は、特定の品質レベルに対応する。各順位は、例えば、品質評価基準の特定の低下と対応することができる。PSNRを典型的な品質評価基準として用いることによって、各順位は、PSNRの0.05dBの低下に対応することができる。特に、0の順位は、ベストエフォート品質レベルに対応することができ、1の順位は、最高の品質レベルと対応し、2の順位は、前の品質レベルよりも0.05dBだけ低い品質レベルに対応し、以下同様である。一側面においては、最高の品質に対応する順位(例えば、順位1、2及び3)は、実際には、目標品質レベルよりも高い品質レベルに対応することができる。
【0255】
品質−レート情報生成モジュール2606は、以下においてさらに詳細に説明されるように、品質−レート曲線のうちの対応する1つを用いて順位を決定することができる。一側面においては、品質−レート情報生成モジュール2606は、複数の品質レベル及び対応する順位を計算し、対応する品質−レート曲線を用いて品質レベルの各々における各データセグメントのサイズを決定することができる。この開示の他の側面においては、品質−レート情報生成モジュール2606は、符号器モジュール2600が提供することができるデータセグメントのサイズを計算し、次にこれらのサイズの各々における品質レベル及び対応する順位を計算することができる。例えば、符号器モジュール2600は、固定された量だけ、例えば送信チャネルの最小送信単位サイズだけ、サイズを増分的に縮小し、以下の方程式を用いて希望されるサイズの各々に対応する順位を計算することができる。
【0256】
Rank=CEILING((Ak−S)/xk) (6)
ここで、RANKは、希望されるサイズに関する対応する順位値であり、Akはk番目の品質−レート曲線に関する調整された目標品質レベルであり、Sは希望されるサイズに対応する品質レベル(すなわち、希望されるサイズとk番目の品質−レート曲線の交点に対応する品質レベル)であり、xkは、順位当たりの増分的品質低下であり、CEILING(x)はx以上である最小整数値を出力する天井関数である。
【0257】
符号器モジュール2600は、マルチプレクスモジュール(2406、2506)が現在のスーパーフレームのサイズをモニタリングし及びデータセグメントのうちのいずれをサイズ変更すべきかを決定するのを援助するためにデータセグメントの各々と関連づけられた少なくとも品質及びレート情報をマルチプレクスモジュール(2406、2506)に送る。符号器モジュール2600は、例えば、現在のスーパーフレーム内に含められるべきデータセグメントと関連づけられた品質及びレート情報を送ることができる。符号器モジュール2600は、マルチプレクスモジュール(2406、2506)からの要求に応答して少なくとも品質及びレート情報をマルチプレクスモジュール(2406、2506)に送ることができる。符号器モジュール2600は、例えば、データセグメントと関連づけられた品質−レート曲線又は品質−レートテーブルを送ることができる。
【0258】
符号器モジュール2600と関連づけられたデータセグメントのうちのいずれかをサイズ変更する必要がある場合は、マルチプレクスモジュール(2406、2506)は、符号器モジュール2600にサイズ変更要求を送る。サイズ変更要求に応答して、サイズ変更モジュール2612は、マルチメディアデータセグメントのサイズを変更する。一例においては、サイズ変更モジュール2612は、データセグメントのサイズを大きくする、すなわち、データセグメントを拡大することができる。他の例においては、サイズ変更モジュール2612は、データセグメントのサイズを小さくする、すなわちデータセグメントを縮小する。データセグメントの縮小は、データセグメントの品質レベルを目標品質レベル以下に低下させる可能性がある。しかしながら、サイズが変更されたデータセグメントの品質レベルが最低品質レベルを下回る場合は、サイズ変更モジュール2612は、最低品質レベル以上であるサイズにデータセグメントのサイズを変更することしかできない。マルチプレクスモジュール(2406、2506)からのサイズ変更要求は、データセグメントに関するサイズ、例えば最大サイズ、を含むことができ、及びサイズ変更モジュール2612は、再符号化要求において指定されるサイズを達成するために1つ以上の符号化変数を調整することができる。サイズ変更モジュール2612は、例えば、データセグメントのサイズを変更するためにデータセグメントを調整されたビットレートで再符号化する、例えば、データセグメントがサイズ変更要求において指定される最大サイズ以下になるようにサイズ変更するためにデータセグメントを引き下げられたビットレートで再符号化することができる。他の例として、サイズ変更モジュール2612は、調整された量子化パラメータを用いてデータセグメントを再符号化することができる。
【0259】
符号器モジュール2600は、現在のスーパーフレーム内に含められるべき符号化されたデータセグメントを送る要求をマルチプレクスモジュール(2406、2506)から受け取る。マルチプレクスモジュール(2406、2506)からの要求に応答して、符号器モジュール2600は、符号化されたデータセグメントをマルチプレクスモジュール(2406、2506)に送る。上述されるように、符号器モジュール2600は、構成された目標品質でサイズ変更するために選択されなかったデータセグメントを送る。しかしながら、符号器モジュール2600は、低下された品質でサイズ変更するために選択されたデータセグメントを送る。
【0260】
符号器モジュール2600内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型である。しかしながら、符号器モジュール2600は、希望される場合はその他の数多くの構成要素を含むことができる。符号器モジュール2600内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、ASIC、FPGA、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、符号器モジュール2600は、MPEG−4、ITU−TH.263、ITU−TH.264、又は他のコーディング基準、等のマルチメディアコーディング基準に準拠することができる。異なる特徴をモジュールとして描くことは、符号化モジュール2600の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、符号化デバイス2600の例に制限されるべきでない。
【0261】
図27は、この開示の技法によりビット割り当てを管理する典型的マルチプレクスモジュール2700を例示するブロック図である。特に、マルチプレクスモジュール2700は、各々の符号器モジュール、例えば符号器モジュール2404(図24)、から複数のデータセグメントを受け取り、データセグメントを送るために必要なエアリンク資源が利用可能なエアリンク資源を超えないような形でデータセグメントのうちの1つ以上のサイズを変更するように要求する。マルチプレクスモジュール2700は、例えば、図24のマルチプレクスモジュール2406又は図25のマルチプレクスモジュール2506を表すことができる。マルチプレクスモジュール2700は、符号器モジュールインタフェース2702と、データ収集モジュール2086と、ビット管理モジュール2704と、を含む。ビット管理モジュール2704は、利用可能な帯域幅を割り当てる割り当てモジュール2708と、帯域幅割り当てが不成功であるときにデータセグメントのうちのいずれをサイズ変更すべきかを決定する選択モジュール2710と、を含む。
【0262】
上述されるように、マルチプレクスモジュール2700は、符号化されたデータセグメントを符号器モジュールインタフェース2702を介して符号器モジュール2404から受け取り、符号化されたデータセグメントを結合してスーパーフレーム内に入れ、そのスーパーフレームを1つ以上の復号デバイス、例えば図1のモバイルデバイス102、に送信する。この開示の技法は、1秒のデータスーパーフレームに関して説明されるが、これらの技法は、その他のデータセグメントを送信するために、例えば異なる期間にわたって受け取られるデータセグメントに関して又は個々のデータフレームに関して利用することもできる。
【0263】
ビット管理モジュール2704は、生成されたスーパーフレームの各々のスーパーフレームのサイズをモニタリングし、スーパーフレームを送るために必要な送信チャネル資源(例えば、エアリンク資源)が送信チャネル2402を通じての利用可能な送信チャネル資源を超過しないようにする。ビット管理モジュール2704がスーパーフレームのサイズをモニタリングするのを援助するため、データ収集モジュール2706は、各々の符号器モジュール2704から品質及びレート情報を受け取る。データ収集モジュール2706は、例えば、符号器モジュール2404が現在のスーパーフレーム内に含めることを希望する各データセグメントと関連づけられた配送要求事項、例えば品質及びレート情報、を要求する要求を各々の符号器モジュール2404に送ることができる。品質及びレート情報は、データセグメントに関する少なくとも品質評価基準をビットレート又はデータサイズの関数として示す。例えば、データ収集モジュール2706は、PSNR等の品質評価基準をモデル化するセグメントに対応する品質−レート曲線を、各々のデータセグメントに関するビットレートの関数として受け取ることができる。他の例においては、データ収集モジュール2706は、データセグメントと関連づけられた品質−レートテーブルを受け取る。上述されるように、品質−レートテーブルは、様々な順位(又は品質レベル)及び異なる順位の各々と関連づけられたサイズを示すことができる。従って、品質及びレート情報は、特に、符号器モジュール2404が現在のスーパーフレームにおいて送信することを希望するデータセグメントに関する異なる品質レベルにおけるデータセグメントのサイズを記述する。
【0264】
ビット管理モジュール2704は、少なくとも品質及びレート情報を解析して複数のデータセグメントが送信チャネル2402の利用可能な帯域幅内にぴったり納まるかどうかを決定することができる。ビット管理モジュール2704は、品質及びレート情報に加えてその他の配送要求事項を解析することができる。例えば、ビット管理モジュール2704は、ORTサービスと関連づけられた優先度及びレーテンシー要求事項を解析することができる。ビット管理モジュール2704は、データセグメント間で利用可能な帯域幅を割り当てることを試みる割り当てモジュール2708を含むことができる。割り当てモジュール2708は、例えば、上述される割り当てアルゴリズムのうちの1つを用いて利用可能な帯域幅を割り当てることを試みることができる。利用可能な帯域幅を割り当てる第1の試みにおいては、割り当てモジュール2708は、データセグメントと関連づけられた目標品質レベルと各々の品質−レート曲線との間の交点に対応するサイズを用いて帯域幅を割り当てることを試みることができる。他の例として、マルチプレクスモジュール2406は、データセグメントと関連づけられた品質−レートテーブルにおいて指定される最高の品質レベルに対応するサイズを用いてデータセグメントが現在のスーパーフレーム内にぴったり納まるかどうかに関する最初の決定を行うことができる。割り当てモジュール2708がデータセグメント間において帯域幅を割り当てることに成功した場合、例えば、データセグメントを送る上での十分な送信チャネル資源が存在し及び余分の送信チャネル資源が存在しない場合は、サイズ変更は必要ない。
【0265】
しかしながら、割り当てモジュール2708が目標品質レベル又は最高の品質レベルと関連づけられたサイズ情報を用いて利用可能な帯域幅を成功裏に割り当てることができない場合は、ビット管理モジュール2704は、サイズ変更されるべきデータセグメントのうちの1つ以上を選択する。例えば、ビット管理モジュール2704は、不十分な送信チャネル資源が存在するときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択することができる。他の例として、ビット管理モジュール2704は、余分の送信チャネル資源量がしきい値を超えるときにサイズが変更されるべきデータセグメントのうちの1つ以上を選択することができる。特に、ビット管理モジュール2704は、符号器モジュール2404から受け取られた少なくとも品質及びレート情報を解析して1つ以上のデータセグメントをサイズ変更のために選択する選択モジュール2710を含む。選択モジュール2710がサイズ縮小のために1つ以上のデータセグメントを選択する場合おいては、選択モジュール2710は、解析に基づいて、対応する縮小されたサイズにおける品質への影響が最低である1つ以上のデーセグメントを選択することができる。データセグメントの品質(QV)は、データセグメントに割り当てられたビットレート(r)の関数であり、以下の品質関数によって与えられる。
【数1】
【0266】
ここで、kはマルチメディアセグメント特有の定数であり、符号器モジュール2404によって提供される。
【0267】
選択モジュール2710は、以下に示される最適化問題に従ってすべてのデータセグメントの全体的品質を最高にすることを試みる。
【数2】
【0268】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能帯域幅であり、QViはi番目のデータセグメントと関連づけられた品質であり、QV−miniはi番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【0269】
選択モジュール2710は、存在する場合において、データセグメントと関連づけられた結果的に得られる品質が割り当てられた優先度に比例するような形でビットレート、従ってサイズ、をデータセグメントに割り当てる。上記の最適化問題は、ラグランジュ乗数法及びクーン・タッカー条件を用いて解くことができる。最適化問題を標準形(最大化及び≦制約)に変換することによって以下を得る。
【数3】
【0270】
ラグランジュ関数は以下のように定義される。
【数4】
【0271】
以下は、クーン・タッカー条件の組である。
【数5】
【数6】
【0272】
リアルタイム映像流へのビットレートの望ましい割り当ては、方程式(10)乃至(15)を満たすべきである。選択モジュール2710は、標準的な非線形プログラミング技法のうちのいずれかを用いてこれらの方程式の組を解くことができる。
【0273】
以下は、2つのデータセグメント(すなわち、n=2)に関するレート及び以下のパラメータ値のスケジューリング例である。
【数7】
【0274】
上記のパラメータに基づき、選択モジュール2710は、4800kbpsのビットレートを第1のマルチメディアセグメントに割り当て、200kbpsのビットレートを第2のマルチメディアセグメントに割り当てる。1秒のデータセグメントの場合は、第1のデータセグメントの最大サイズは、4800キロビットで、第2のデータセグメントの最大サイズは200キロビットである。選択モジュール2710は、品質及びレート情報において示されるデータセグメントの推定サイズを計算された最大サイズと比較し、関連づけられた最大サイズを超えるいずれかのデータセグメントをサイズ変更されるべきセグメントとして選択する。
【0275】
他の例においては、マルチプレクスモジュール14は、符号器モジュール2404から受け取られた品質−レートテーブルを用いてサイズが変更されるべき1つ以上のデータセグメントを選択することができる。上述されるように、最初の帯域幅割り当て中に、割り当てモジュール2708は、最高の品質レベルと関連づけられた順位に対応するサイズ情報を用いて帯域幅を割り当てることを試みる。選択された順位のサイズにおけるデータセグメントへの帯域幅割り当てが不成功であるときには、選択モジュール2710は、次に最高の全体的品質を有するデータセグメントに関する順位の組み合わせを選択する。以下のテーブル1は、品質−レートテーブルのうちで流れ1乃至4と関連づけられた4つのデータセグメントに対応する部分を示す。特に、テーブル1は、現在の順位値、現在の順位におけるデータセグメントのサイズ、次の順位値、及び流れ1乃至4と関連づけられた4つのデータセグメントに関する次の順位におけるデータセグメントのサイズを示す。選択モジュール2710の選択プロセスを例示しやすくするためにテーブル1の参照が用いられる。
【表1】
【0276】
選択モジュール2710は、品質−レートテーブルを解析して最高の品質レベルと関連づけられた次の順位を有するデータセグメントのうちの1つ以上を識別する。テーブル1に示される事例においては、最小値を有する次の順位は、最高の品質レベルに対応する。テーブル1に関して、選択モジュール2710は、流れ1及び流れ3と関連づけられたセグメントを最小の次の順位を有するとして識別する。テーブル1に示されるように、流れ1及び流れ3と関連づけられたデータセグメントは、両方とも、次の順位値である5を有し、流れ2及び流れ4と関連づけられたデータセグメントは、最低の品質レベルに対応する、次の順位値6及び8をそれぞれ有する。この方法により、選択モジュール2710は、品質−レートテーブルを解析して次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別する。
選択モジュール2710は、サイズを変更すべき識別されたデータセグメントのうちの少なくとも1つを選択する。識別されたデータセグメントのうちで、選択モジュール2710は、現在の順位と関連づけられた最大サイズを有する識別されたデータセグメントを選択することができる。テーブル1に関して、選択モジュール2710は、流れ3と関連づけられたデータセグメントの現在のサイズが40,000バイトではなく45,000バイトであるためこのデータセグメントを選択する。代替として、選択モジュール2710は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。再度テーブル1に関して、選択モジュール2710は、流れ3と関連づけられたセグメントに関する5,000バイトの差とは対照的に10,000バイトの差を有する流れ1と関連づけられたデータセグメントを選択する。
【0277】
選択モジュール2710がデータセグメントのうちの1つ以上を選択後は、割り当てモジュール2708は、選択されたデータセグメントに関する引き下げられた順位又は品質と関連づけられたサイズを用いて利用可能な帯域幅を割り当てることを試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2710は、サイズが変更されるべき追加のデータセグメント又はさらに引き下げられたレベルにおいてサイズが変更されるべき同じセグメントを選択する。
【0278】
割り当てモジュール2708がデータセグメント間で利用可能な帯域幅を成功裏に割り当てた後は、ビット管理モジュール2704は、全データセグメントが送信チャネルの利用可能な帯域幅内にぴったり納まるように各々の選択されたデータセグメントのサイズ変更を要求する。ビット管理モジュール2704は、例えば、選択されたマルチメディアデータセグメントと関連づけられた符号器モジュール2404にサイズ変更要求を送る。ビット管理モジュール2704は、データセグメントの最大の受け入れ可能なサイズを指定することができる。符号器モジュール2404は、上記において詳細に説明されるようにサイズ変更要求に含まれる情報に基づいてデータを再符号化する。
【0279】
割り当てモジュール2708及び選択モジュール2710は、データセグメントに関するビット割り当てを行い、同様の方法でサイズを拡大すべき1つ以上のデータセグメントを選択することができる。例えば、選択されたデータセグメントと関連づけられた品質−レートテーブルを用いて、割り当てモジュールは、最初に、目標品質レベルと関連づけられた順位に対応するサイズ情報を用いて帯域幅を割り当てることを試みることができる。目標品質レベルに対応するサイズにおけるデータセグメントへの帯域幅の割り当てが不成功である、すなわち、この場合においては余分の帯域幅量がしきい値を超えるときには、選択モジュール2710は、より良い全体的品質を有するデータセグメントに関する順位の新しい組み合わせを選択する。
【0280】
特に、選択モジュール2710は、品質−レートテーブルを解析して次に最高の品質レベルと関連づけられた次に最高の順位を有するデータセグメントのうちの1つ以上を識別することができる。選択モジュール2710は、サイズを拡大すべき識別されたデータセグメントのうちの少なくとも1つを選択する。識別されたデータセグメントのうちで、選択モジュール2710は、現在の順位に対応する最小サイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2710は、現在の順位におけるセグメントのサイズと次に最高の順位におけるセグメントのサイズの間の差が最小である識別されたデータセグメントを選択することができる。
【0281】
いずれの場合においても、データ収集モジュール2706は、データセグメントを結合してスーパーフレーム内に入れる準備が完了しているときにデータ要求を送出する。データ収集モジュール2706は、コマンドに応答して符号化されたデータセグメントを受け取る。マルチプレクスモジュール2700は、符号化されたマルチメディアデータセグメントを結合することによってスーパーフレームを組み立てる。マルチプレクスモジュール2700は、スーパーフレームを送信のために送信機2408(図24)に提供するか又は送信機2408がスーパーフレームを要求するまでスーパーフレームをバッファリングすることができる。
【0282】
マルチメディアマルチプレクスモジュール2700内の構成要素は、ここにおいて説明される技法を実装するために適用可能な構成要素の典型例である。しかしながら、マルチプレクスモジュール2700は、希望される場合はその他の数多くの構成要素を含むことができる。マルチプレクスモジュール2700内の構成要素は、1つ以上のプロセッサ、デジタル信号プロセッサ、ASIC、FPGA、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はその組み合わせとして実装することができる。さらに、マルチプレクスモジュール2700は、マルチメディアコーディング基準、例えば、MPEG−4、ITU−T H.263、ITU−T H.264、又は他のコーディング基準、に準拠することができる。異なる特徴をモジュールとして描くことは、マルチプレクスモジュール2700の異なる機能上の側面を強調することが意図されており、該モジュールを別個のハードウェア又はソフトウェア構成要素によって実現しなければならないということは必ずしも意味しない。むしろ、1つ以上のモジュールと関連づけられた機能は、共通の又は別個のハードウェア又はソフトウェア構成要素内において統合することができる。従って、開示は、マルチプレクスモジュール2700の例に制限されるべきでない。
【0283】
図28は、この開示の技法によりマルチメディアデータを符号化する符号器モジュール、例えば図26の符号器モジュール2600、の典型的動作を例示する流れ図である。符号器モジュール2600は、1つ以上のマルチメディアデータ流をソースから受け取る(2800)。符号器モジュール2600は、例えば、符号器モジュール2404に結合されたメモリ又は画像キャプチャデバイスからマルチメディアデータ流を受け取ることができる。マルチメディアデータ流は、ライブのリアルタイムコンテンツ、非リアルタイムコンテンツ、又はリアルタイムコンテンツと非リアルタイムコンテンツの組み合わせを備えることができる。
【0284】
符号器モジュール2600は、コンテンツに基づいてデータセグメントを分類する(2802)。コンテンツ分類モジュール2604(図26)は、例えば、セグメントのデータの複雑さ(例えば、空間的複雑さ及び/又は時間的複雑さ)に基づいて受信されたデータセグメントを分類することができる。
【0285】
コンテンツ分類モジュール2604は、分類に基づいてデータセグメントを品質及びレート情報と関連づける(2804)。一例として、コンテンツ分類モジュール2604は、データセグメントを複数の品質−レート曲線のうちの1つと関連づけることができる。上述されるように、品質−レート曲線は、予め計算してメモリ内に格納することができる。他の例として、コンテンツ分類モジュール2604は、データセグメントを複数の予め計算された品質−レートテーブルのうちの1つと関連づけることができる。
【0286】
符号器モジュール2600は、データセグメントに関する追加の品質及びレート情報を生成することができる(2806)。例えば、品質及びレート情報生成モジュール2606は、各々のデータセグメントに関する品質−レートテーブルを生成することができる。上述されるように、品質−レートテーブルは、データセグメントと関連づけられた1つ以上の品質レベル及び各々の品質レベルにおけるデータセグメントのサイズを示す。一例として、品質及びレート情報生成モジュール2606は、データセグメントと関連づけられた品質−レート曲線を用いて順位とサイズの対を記載するテーブルを生成することができる。
【0287】
符号器モジュール2600は、データセグメントと関連づけられた品質及びレート情報をマルチプレクスモジュールに送る(2808)。符号器モジュール2600は、例えば、マルチプレクスモジュールからの要求に応答してデータセグメントと関連づけられた品質及びレート情報を送ることができる。符号器モジュール2600は、例えば、データセグメントと関連づけられた品質−レート曲線及び/又は品質−レートテーブルを送ることができる。上記において詳細に説明されるように、マルチプレクスモジュールは、品質及びレート情報を用いて現在のスーパーフレームのサイズをモニタリングし及びマルチプレクスモジュールがデータセグメントのうちのいずれをサイズ変更する必要があるかを決定するのを援助する。
【0288】
符号器モジュール2600と関連づけられたデータセグメントのうちのいずれかのサイズを変更する必要がある場合は、符号器モジュール2600は、マルチプレクスモジュールからサイズ変更要求を受け取る(2810)。マルチプレクスモジュールからのサイズ変更要求は、データセグメントに関するサイズ、例えば単位がビットの最大サイズ、を含むことができる。サイズ変更要求に応答して、サイズ変更モジュール2612は、サイズ変更要求において指定されるサイズ制限を満たすように符号化されたデータセグメントのサイズを変更する(2812)。この開示の一側面においては、サイズ変更モジュール2612は、データセグメントのサイズを縮小するように1つ以上の符号化変数を調整する。サイズ変更モジュール2612は、例えば、引き下げられたビットレートで又は調整された、例えばより高い量子化パラメータを用いてデータセグメントを再符号化することができる。代替として又は追加で、サイズ変更モジュール2612は、符号化されるべき情報量を調整することができる。例えば、サイズ変更モジュール2612は、データセグメントのサイズを縮小するために動き情報を符号化するために用いられるビット数を減少させることができる。この開示の他の側面においては、サイズ変更モジュール2612は、データセグメントのサイズを拡大するように1つ以上の符号化変数を調整することができる。サイズ変更モジュール2612は、例えば、大きくされたビットレートで又はより小さい量子化パラメータを用いてデータセグメントを再符号化することができる。
【0289】
符号器モジュール2600は、現在のスーパーフレーム内に含められるべきデータセグメントの符号化されたコンテンツを送る要求をマルチプレクスモジュールから受け取る(2814)。マルチプレクスモジュールからの要求に応答して、符号器モジュール2600は、データセグメントの符号化されたコンテンツをマルチプレクスモジュールに送る(2816)。上述されるように、符号器モジュール2600は、サイズ変更のために選択されなかったデータセグメントを原サイズで送り、サイズ変更のために選択されたデータセグメントを縮小されたサイズで送る。
【0290】
図29は、この開示の技法に従ってビット割り当てを管理するマルチプレクスモジュール2800の典型的動作の流れ図である。データ収集モジュール2806は、少なくとも品質及びレート情報を符号器モジュール2404の各々のから受け取る(2900)。データ収集モジュール2806は、品質及びレート情報に加えて、符号器モジュール2404からのその他の配送要求情報を要求することができる。さらに、データ収集モジュール2806は、マルチプレクスモジュール2800が現在のスーパーフレーム内に含めるORTサービスと関連づけられた1つ以上の配送要求事項を要求することができる。データ収集モジュール2806は、符号器モジュール2404の各々が現在のスーパーフレーム内に含めることを希望するデータセグメントと関連づけられた少なくとも品質及びレート情報を受け取る(2902)。上述されるように、品質及びレート情報は、特に、データセグメントに関する品質評価基準をビットレート又はデータサイズの関数として示す。品質及びレート情報は、例えば、データセグメントと関連づけられた品質−レート曲線又はデータセグメントと関連づけられた品質−レートテーブルを含むことができる。上述されるように、データ収集モジュール2806は、データセグメントに関する品質及びレート情報以外の配送要求事項及びORTサービスと関連づけられた1つ以上の配送要求事項も受け取ることができる。
【0291】
割り当てモジュール2808は、利用可能な帯域幅をデータセグメント間で割り当てることを試みる(2904)。割り当てモジュール2808は、例えば、上述される割り当てアルゴリズムのうちの1つを用いて利用可能な帯域幅を割り当てることを試みることができる。利用可能な帯域幅を割り当てる第1の試みにおいては、割り当てモジュール2808は、データセグメントの最高の希望される品質と関連づけられたサイズを用いて帯域幅を割り当てるのを試みることができる。品質及びレート情報が例えば品質−レートテーブルを備える場合は、割り当てモジュール2808は、1の順位値と関連づけられたサイズを用いて帯域幅を割り当てることを試みる。品質及びレート情報が品質−レート曲線を備える場合は、割り当てモジュール2808は、目標品質レベルと各々の品質−レート曲線の交点に対応するサイズを用いて帯域幅を割り当てることを試みることができる。割り当てモジュール2808は、上記において詳細に説明されるようにデータセグメントとORTサービスとの間において利用可能な帯域幅をさらに割り当てることができる。
【0292】
割り当てモジュール2808は、利用可能な帯域幅の割り当てが成功であるかどうかを決定する(2906)。割り当てモジュール2808が帯域幅を成功裏に割り当てない場合は、選択モジュール2810は、データセグメントと関連づけられた品質及びレート情報に基づいてサイズが変更されるべきデータセグメントのうちの少なくとも1つを選択する(2908)。一側面においては、選択モジュール2810は、サービスを送信するための十分な帯域幅が存在しないときにサイズが縮小されるべき1つ以上のデータセグメントを選択することができる。特に、選択モジュール2810は、対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択する。例えば、選択モジュール2810は、次に最高の品質レベルに対応する次の順位を有する1つ以上のデータセグメントを識別することができる。2つ以上のデータセグメントが同じ次の順位を有する場合は、選択モジュール2810は、現在の順位と関連づけられた最大のサイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2810は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。他の側面においては、選択モジュール2810は、余分の利用可能な帯域幅量がしきい値を超えるときにサイズが拡大されるべき1つ以上のデータセグメントを選択することができる。幾つかの場合においては、選択モジュール2810は、サイズが変更されるべき1つ以上のORTサービスを選択することもできる。
【0293】
割り当てモジュール2808は、選択されたデータセグメントの縮小されたサイズを用いて利用可能な帯域幅を割り当てることを再度試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2810は、サイズが変更されるべき追加のデータセグメント又はさらに低下された品質でサイズが変更されるべき同じセグメントを選択する。
【0294】
割り当てモジュール2808が利用可能な帯域幅をデータセグメント間で成功裏に割り当てた後に、マルチプレクスモジュール2800は、複数のセグメントに関して利用可能な帯域幅を達成するために選択されたデータセグメントの各々のサイズ変更を要求する(2910)。マルチプレクスモジュール2800は、例えば、選択されたデータセグメントと関連づけられた符号器モジュール2404の各々にサイズ変更要求を送ることができる。サイズ変更要求は、データセグメントの最大の受け入れ可能なサイズ又は引き下げられたビットレートを指定することができる。符号器モジュール2404は、上記において詳細に説明されるようにサイズ変更要求に含まれる情報に基づいてデータのサイズを変更する。
【0295】
データ収集モジュール2806は、符号器モジュール2404からのデータセグメントの符号化されたコンテンツの転送を要求する(2912)。データ収集モジュール2806は、例えば、符号化モジュール2404がデータを結合してスーパーフレーム内に入れる準備が完了しているときに符号化モジュール2404にデータ要求を送ることができる。データ収集モジュール2806は、コマンドに応答して符号化されたデータセグメントを受け取る(2914)。マルチプレクスモジュール2800は、符号化されたマルチメディアデータセグメントを結合することによってスーパーフレームを組み立てる(2916)。マルチプレクスモジュール2800は、スーパーフレームを送信のために送信機2408に送ることができる(2918)。幾つかの場合においては、マルチプレクスモジュール2800は、送信機2408がスーパーフレームを要求するまでスーパーフレームをバッファリングすることができる。
【0296】
図30は、データセグメントと関連づけられた品質−レートテーブルを用いてサイズが変更されるべきデータセグメントを選択するマルチプレクスモジュール2800の典型的動作を例示する流れ図である。最初に、選択モジュール2810は、その他の可能な順位の組み合わせが存在するかどうかを決定する(3000)。選択モジュール2810は、品質−レートテーブルを解析して最低順位にないデータセグメントが存在するかどうかを決定することができる。上述される例においては、最低順位は、最も大きい番号が付された順位に相当することができる。その他の可能な順位の組み合わせが存在しない、すなわち、データセグメントの各々が最低順位にある場合は、選択モジュール2810は、スーパーフレームから取り除くべき1つ以上のデータセグメントを選択するのを開始する(3001)。選択モジュール2810は、例えば、上述される混雑制御アルゴリズムを用いてスーパーフレームから取り除かれるべき1つ以上のデータセグメントを選択することができる。
【0297】
その他の可能な順位の組み合わせが存在する場合は、選択モジュール2810は、次に最高の品質レベルに対応する次の順位を有する1つ以上のデータセグメントを識別する(3002)。例えば、選択モジュール2810は、品質−レートテーブルが上述されるように生成されたときに最小の次の順位を有するデータセグメントを識別することができる。この方法により、選択モジュール2810は、品質−レートテーブルを解析して次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のストリームを識別する。
【0298】
選択モジュール2810は、サイズが変更されるべき識別されたデータセグメントのうちの1つを選択する(3004)。1つのデータセグメントのみが最小の次の順位値を有する場合は、マルチプレクスモジュール2800はそのセグメントを選択する。2つ以上のデータセグメントが同じ次の順位を有する場合は、選択モジュール2810は、現在の順位と関連づけられた最大のサイズを有する識別されたデータセグメントを選択することができる。代替として、選択モジュール2810は、現在の順位におけるセグメントのサイズと次の順位におけるセグメントのサイズとの間の差が最大である識別されたデータセグメントを選択することができる。
【0299】
選択モジュール2810は、選択されたデータセグメントと関連づけられた順位を次の順位に設定する(3006)。選択モジュール2810がデータセグメントのうちの1つ以上を選択後は、割り当てモジュール2808は、選択されたデータセグメントに関する引き下げられた順位と関連づけられたサイズを用いて利用可能な帯域幅を割り当てることを再度試みる。割り当てアルゴリズムが依然として不成功である場合は、選択モジュール2810は、サイズが変更されるべき追加のデータセグメント又はさらに引き下げられたレベルにおいてサイズが変更されるべき同じセグメントを上述されるのと同様の方法で選択する。
【0300】
ここにおいて説明される技法は、ハードウェア、ソフトウェア、ファームウェア、又はその組み合わせにおいて実装することができる。ハードウェア内に実装される場合は、これらの技法は、デジタルハードウェア、アナログハードウェア又はその組み合わせを用いて実現することができる。これらの技法は、ソフトウェアにおいて実装される場合は、少なくとも部分的には、コンピュータによって読み取り可能な媒体上の1つ以上の格納された又は送信された命令又は符号によって実現することができる。コンピュータによって読み取り可能な媒体は、コンピュータ記憶媒体、通信媒体、又は両方を含むことができ、及び1つの場所から他の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含むことができる。記憶媒体は、コンピュータによってアクセス可能なあらゆる利用可能な媒体であることができる。
【0301】
一例として、及び制限することなしに、該コンピュータによって読み取り可能な媒体は、RAM、例えば同期ダイナミックランダムアクセスメモリ(SDRAM)、読み取り専用メモリ(ROM)、非揮発性ランダムアクセスメモリ(NVRAM)、ROM、電気的消去可能ブログラマブル読み取り専用メモリ(EEPROM)、EEPROM、FLASHメモリ、CD−ROM又はその他の光学ディスク記憶装置、磁気ディスク記憶装置又はその他の磁気記憶デバイス、又は希望されるプログラムコードを命令又はデータ構造の形で搬送又は格納するために用いることができ及びコンピュータによってアクセスすることができるその他のあらゆる有形の媒体を備えることができる。
【0302】
あらゆる接続が、コンピュータによって読み取り可能な媒体と適切に呼ばれる。例えば、ソフトウェアが同軸ケーブル、光ファイバケーブル、より対線、データ加入者ライン(DSL)、又は無線技術、例えば赤外線、無線、及びマイクロ波、を用いてウェブサイト、サーバー、又はその他の遠隔ソースから送信される場合は、その同軸ケーブル、光ファイバケーブル、より対線、DSL、又は無線技術、例えば赤外線、無線、及びマイクロ波は、媒体の定義に含められる。ここにおいて用いられるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)と、レーザーディスク(登録商標)(disc)と、光学ディスク(disc)と、デジタルバーサタイルディスク(disc)(DVD)と、フロッピーディスク(disk)と、ブルーレイディスク(disc)とを備え、ディスク(disk)は通常は磁気的にデータを複製し、ディスク(disc)は例えばレーザーを用いて光学的にデータを複製する。上記の組み合わせもコンピュータによって読み取り可能な媒体の適用範囲内に含まれるべきである。
【0303】
ここにおいで開示されるコンピュータプログラム製品は、コンピュータによって読み取り可能な媒体と、コンピュータによって読み取り可能な媒体と関連するあらゆる材料とを含み、コンピュータによって読み取り可能な媒体がパッケージングされるパッケージング材料を含む。コンピュータプログラム製品のコンピュータによって読み取り可能な媒体のコードは、コンピュータによって、例えば1つ以上のプロセッサ、例えば1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、ASIC、FPGA、又はその他の同等の集積回路又は個別論理回路、によって実行することができる。幾つかの側面においては、ここにおいて説明される機能は、符号化及び復号のために構成される専用のソフトウェアモジュール又はハードウェアモジュール内において提供するか又は結合されたCODEC内に組み入れることができる。
【0304】
様々な側面が説明されている。これらの及びその他の側面は、以下の請求項の適用範囲内にある。
【特許請求の範囲】
【請求項1】
デジタルマルチメディアデータの流れを結合するための方法であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取ることと、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択することと、
前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求すること、とを備える、方法。
【請求項2】
少なくとも品質及びレート情報を受け取ることは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取ることを備える請求項1に記載の方法。
【請求項3】
少なくとも品質及びレート情報を受け取ることは、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取ることを備え、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項1に記載の方法。
【請求項4】
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することは、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定することと、
前記データセグメントを送るために必要な前記送信チャネル資源量を合計することと、
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定すること、とをさらに備える請求項3に記載の方法。
【請求項5】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のセグメントのうちの1つ以上を選択することを備える請求項4に記載の方法。
【請求項6】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択することを備える請求項4記載の方法。
【請求項7】
前記複数のセグメントのうちの1つ以上を選択することは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別することと、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定することと、
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択すること、とを備える請求項3に記載の方法。
【請求項8】
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択すること、とをさらに備える請求項7に記載の方法。
【請求項9】
前記複数のデータセグメントのうちの1つ以上を選択することは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別することと、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算することと、
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択すること、とを備える請求項3に記載の方法。
【請求項10】
前記データセグメントのうちの1つ以上を選択することは、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析することと、
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択すること、とを備える請求項1に記載の方法。
【請求項11】
前記対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択することは、方程式を最大化することを備える請求項10に記載の方法。
【数1】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項12】
前記選択されたデータセグメントのサイズ変更を要求することは、前記選択されたデータセグメントに関する少なくとも最大サイズを指定することを備える請求項1に記載の方法。
【請求項13】
ある期間にわたる前記データセグメントのマルチメディアデータを結合することをさらに備える請求項1に記載の方法。
【請求項14】
サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求することと、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求することと、
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取ること、とをさらに備える請求項1に記載の方法。
【請求項15】
デジタルマルチメディアデータの流れを結合するための装置であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るデータ収集モジュールと、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定する割り当てモジュールと、
前記複数のデータセグメントが前記利用可能な帯域内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求する選択モジュールと、を備える、装置。
【請求項16】
前記データ収集モジュールは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取る備える請求項15に記載の装置。
【請求項17】
前記データ収集モジュールは、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取り、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項15に記載の装置。
【請求項18】
前記割り当てモジュールは、前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、及び前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定する請求項17に記載の装置。
【請求項19】
前記選択モジュールは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択する請求項18に記載の装置。
【請求項20】
前記選択モジュールは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択する請求項18に記載の装置。
【請求項21】
前記選択モジュールは、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し及び前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項17に記載の装置。
【請求項22】
前記割り当てモジュールは、前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記選択モジュールは、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択する請求項21に記載の装置。
【請求項23】
前記選択モジュールは、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項17に記載の装置。
【請求項24】
前記選択モジュールは、前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し及び前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択する請求項15に記載の装置。
【請求項25】
前記選択は、方程式を最大化することによって前記1つ以上のデータセグメントを選択する請求項24に記載の装置。
【数2】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項26】
前記選択モジュールは、サイズ変更を要求時に前記選択されたデータセグメントに関する少なくとも最大サイズを指定する請求項15に記載の装置。
【請求項27】
前記データセグメントは、ある期間にわたる前記流れの一部分を備える請求項15に記載の装置。
【請求項28】
前記データ収集モジュールは、サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取る請求項15に記載の装置。
【請求項29】
デジタルマルチメディアデータの流れを結合するための装置であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るための手段と、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するための手段と、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択するための手段と、
前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求するための手段と、を備える、装置。
【請求項30】
前記受け取る手段は、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取る請求項29に記載の装置。
【請求項31】
前記受け取る手段は、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取り、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項29に記載の装置。
【請求項32】
前記決定する手段は、前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定する請求項31に記載の装置。
【請求項33】
前記選択する手段は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択する請求項32に記載の装置。
【請求項34】
前記選択する手段は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択する請求項32記載の装置。
【請求項35】
前記選択する手段は、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し及び前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項31に記載の装置。
【請求項36】
前記選択する手段は、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項31に記載の装置。
【請求項37】
前記選択する手段は、前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し及び方程式を最大化することによる品質上の影響が最も小さい前記1つ以上のデータセグメントを選択する請求項29に記載の装置。
【数3】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項38】
デジタル映像データを処理するためのプロセッサであって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する品質及びレート情報を受け取り、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び
前記複数のストリームに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求するように適合化される、プロセッサ。
【請求項39】
前記プロセッサは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取るように適合化される請求項38に記載のプロセッサ。
【請求項40】
前記プロセッサは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取るように適合化され、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項38に記載のプロセッサ。
【請求項41】
前記プロセッサは、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、
前記データセグメントを送るために必要な送信チャネル資源量を合計し、及び
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定するように適合化される請求項40に記載のプロセッサ。
【請求項42】
前記プロセッサは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択するように適合化される請求項41に記載のプロセッサ。
【請求項43】
前記プロセッサは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択するように適合化される請求項41記載のプロセッサ。
【請求項44】
前記プロセッサは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し、及び
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択するように適合化される請求項40に記載のプロセッサ。
【請求項45】
前記プロセッサは、
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、及び
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択するように適合化される請求項44に記載のプロセッサ。
【請求項46】
前記プロセッサは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択するように適合化される請求項40に記載のプロセッサ。
【請求項47】
前記プロセッサは、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し、及び
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択するように適合化される請求項38に記載のプロセッサ。
【請求項48】
前記プロセッサは、方程式を最大化するように適合化される請求項47に記載のプロセッサ。
【数4】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項49】
前記プロセッサは、前記選択されたデータセグメントに関する少なくとも最大サイズを指定するように適合化される請求項38に記載のプロセッサ。
【請求項50】
前記プロセッサは、ある期間にわたる前記データセグメントのマルチメディアデータを結合するように適合化される請求項38に記載のプロセッサ。
【請求項51】
前記プロセッサは、
サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取るように適合化される請求項38に記載のプロセッサ。
【請求項52】
デジタル映像データを処理するためのコンピュータプログラム製品であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する品質及びレート情報を受け取り、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び
前記複数のストリームに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求することを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品。
【請求項53】
少なくとも品質及びレート情報を受け取ることを前記コンピュータに行わせる前記命令は、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取ることを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項54】
少なくとも品質及びレート情報を受け取ることを前記コンピュータに行わせる前記命令は、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取ることを前記コンピュータに行わせる命令を備え、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項52に記載のコンピュータプログラム製品。
【請求項55】
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することを前記コンピュータに行わせる前記命令は、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、
前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、及び
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することを前記コンピュータに行わせる命令をさらに備える請求項54に記載のコンピュータプログラム製品。
【請求項56】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる前記命令は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令を備える請求項55に記載のコンピュータプログラム製品。
【請求項57】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる前記命令は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令を備える請求項55記載のコンピュータプログラム製品。
【請求項58】
前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し、及び
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択することを前記コンピュータに行わせる命令を備える請求項54に記載のコンピュータプログラム製品。
【請求項59】
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、及び
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択することを前記コンピュータに行わせる命令をさらに備える請求項58に記載のコンピュータプログラム製品。
【請求項60】
前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択することを前記コンピュータに行わせる命令を備える請求項54に記載のコンピュータプログラム製品。
【請求項61】
前記データセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し、及び
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択することを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項62】
前記対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択することを前記コンピュータに行わせる命令は、方程式を最大化することを前記コンピュータに行わせる命令を備える請求項61に記載のコンピュータプログラム製品。
【数5】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項63】
前記選択されたデータセグメントのサイズ変更を要求することを前記コンピュータに行わせる命令は、前記選択されたデータセグメントに関する少なくとも最大サイズを指定することを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項64】
ある期間にわたる前記データセグメントのうちのマルチメディアデータを結合することを前記コンピュータに行わせる命令をさらに備える請求項52に記載のコンピュータプログラム製品。
【請求項65】
サイズ変更のために選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取ることを前記コンピュータに行わせる命令をさらに備える請求項52に記載のコンピュータプログラム製品。
【請求項66】
デジタルマルチメディアデータの流れを符号化するための方法であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけることと、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ること、とを備える、方法。
【請求項67】
前記データセグメントのコンテンツを解析することと、
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけること、とをさらに備える請求項66に記載の方法。
【請求項68】
少なくとも前記品質及びレート情報を送ることは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送ることを備える請求項67に記載の方法。
【請求項69】
少なくとも前記品質及びレート情報を送ることは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送ることを備え、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項66に記載の方法。
【請求項70】
前記データセグメントのコンテンツを解析することと、
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択することと、
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成すること、とをさらに備える請求項69に記載の方法。
【請求項71】
前記品質−レートテーブルを生成することは、
前記データセグメントを符号化することができる前記サイズを計算することと、
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定することであって、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離されること、とを備える請求項70に記載の方法。
【請求項72】
前記品質−レートテーブルを生成することは、
前記データセグメントを符号化することができる複数の品質レベルを計算することであって、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離されることと、
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定すること、とを備える請求項70に記載の方法。
【請求項73】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取ることと、
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ること、とをさらに備える請求項66に記載の方法。
【請求項74】
前記データセグメントのサイズを変更する要求を受け取ることと、
前記要求に応答して前記データセグメントのサイズを変更すること、とをさらに備える請求項66に記載の方法。
【請求項75】
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取ることと、
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送ること、とをさらに備える請求項74に記載の方法。
【請求項76】
デジタルマルチメディアデータの流れを符号化するための装置であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるコンテンツ分類モジュールと、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る符号化モジュールと、を備える、装置。
【請求項77】
前記コンテンツ分類モジュールは、前記データセグメントのコンテンツを解析して前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づける請求項76に記載の装置。
【請求項78】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送る請求項77に記載の装置。
【請求項79】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送り、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項76に記載の装置。
【請求項80】
前記コンテンツ分類モジュールは、前記データセグメントのコンテンツを解析し及び前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
品質及びレート情報生成モジュールは、前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成することをさらに備える請求項79に記載の装置。
【請求項81】
前記品質及びレート情報生成モジュールは、前記データセグメントを符号化することができる前記サイズを計算し、前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項80に記載の装置。
【請求項82】
前記品質及びレート情報生成モジュールは、前記データセグメントを符号化することができる複数の品質レベルを計算し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離され、前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定する請求項80に記載の装置。
【請求項83】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る請求項76に記載の装置。
【請求項84】
前記データセグメントのサイズを変更する要求を受け取り及び前記要求に応答して前記データセグメントのサイズを変更するサイズ変更モジュールをさらに備える請求項76に記載の装置。
【請求項85】
前記符号化モジュールは、前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り及び前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送る請求項84に記載の装置。
【請求項86】
デジタルマルチメディアデータの流れを符号化するための装置であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるための手段と、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るための手段と、を備える、装置。
【請求項87】
関連づけるための前記手段は、前記データセグメントのコンテンツを解析し及び前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づける請求項86に記載の装置。
【請求項88】
前記送る手段は、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送る請求項87に記載の装置。
【請求項89】
前記送る手段は、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送り、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項86に記載の装置。
【請求項90】
関連づけるための前記手段は、前記データセグメントのコンテンツを解析し及び前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成するための手段をさらに備える請求項89に記載の装置。
【請求項91】
前記生成する手段は、前記データセグメントを符号化することができる前記サイズを計算し及び前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項90に記載の装置。
【請求項92】
前記生成する手段は、前記データセグメントを符号化することができる複数の品質レベルを計算し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離され及び前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定する請求項90に記載の装置。
【請求項93】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取るための手段をさらに備え、
前記送る手段は、前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る請求項86に記載の装置。
【請求項94】
前記データセグメントのサイズを変更する要求を受け取るための手段と、
前記要求に応答して前記データセグメントのサイズを変更するための手段と、をさらに備え、
前記送る手段は、前記サイズが変更されたデータセグメントに関するコンテンツを多重処理のために送る請求項86に記載の装置。
【請求項95】
デジタル映像データを処理するためのプロセッサであって、
前記流れのデータセグメントを品質及びレート情報と関連づけ、及び
前記データセグメントと関連づけられた前記品質及びレート情報をマルチプレクス装置に送るように適合化される、プロセッサ。
【請求項96】
前記プロセッサは、
前記データセグメントのコンテンツを解析し、及び
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけるように適合化される請求項95に記載のプロセッサ。
【請求項97】
前記プロセッサは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送るように適合化される請求項96に記載のプロセッサ。
【請求項98】
前記プロセッサは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送るように適合化され、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項95に記載のプロセッサ。
【請求項99】
前記プロセッサは、
前記データセグメントのコンテンツを解析し、及び
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成するように適合化される請求項98に記載のプロセッサ。
【請求項100】
前記プロセッサは、
前記データセグメントを符号化することができる前記サイズを計算し、及び
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定するように適合化され、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項99に記載のプロセッサ。
【請求項101】
前記プロセッサは、
前記データセグメントを符号化することができる複数の品質レベルを計算し、
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定するように適合化され、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項99に記載のプロセッサ。
【請求項102】
前記プロセッサは、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、及び
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るように適合化される請求項95に記載のプロセッサ。
【請求項103】
前記プロセッサは、
前記データセグメントのサイズを変更する要求を受け取り、及び
前記要求に応答して前記データセグメントのサイズを変更するように適合化される請求項95に記載のプロセッサ。
【請求項104】
前記プロセッサは、
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り、及び
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送るように適合化される請求項103に記載のプロセッサ。
【請求項105】
デジタル映像データを処理するためのコンピュータプログラム製品であって、
前記流れのデータセグメントを品質及びレート情報と関連づけ、及び
前記データセグメントと関連づけられた前記品質及びレート情報をマルチプレクス装置に送ることを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品。
【請求項106】
前記データセグメントのコンテンツを解析し、及び
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけることを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項107】
少なくとも前記品質及びレート情報を送ることを前記コンピュータに行わせる命令は、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送ることを前記コンピュータに行わせる命令を備える請求項106に記載のコンピュータプログラム製品。
【請求項108】
少なくとも前記品質及びレート情報を送ることを前記コンピュータに行わせる命令は、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送ることを前記コンピュータに行わせる命令を備え、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項105に記載のコンピュータプログラム製品。
【請求項109】
前記データセグメントのコンテンツを解析し、及び
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令をさらに備える請求項108に記載のコンピュータプログラム製品。
【請求項110】
前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令は、
前記データセグメントを符号化することができる前記サイズを計算し、及び
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定することを前記コンピュータに行わせる命令を備え、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項109に記載のコンピュータプログラム製品。
【請求項111】
前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令は、
前記データセグメントを符号化することができる複数の品質レベルを計算し、及び
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定することを前記コンピュータに行わせる命令を備え、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項109に記載のコンピュータプログラム製品。
【請求項112】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、及び
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ることを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項113】
前記データセグメントのサイズを変更する要求を受け取り、及び
前記要求に応答して前記データセグメントのサイズを変更することを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項114】
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り、及び
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送ることを前記コンピュータに行わせる命令をさらに備える請求項113に記載のコンピュータプログラム製品。
【請求項1】
デジタルマルチメディアデータの流れを結合するための方法であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取ることと、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択することと、
前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求すること、とを備える、方法。
【請求項2】
少なくとも品質及びレート情報を受け取ることは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取ることを備える請求項1に記載の方法。
【請求項3】
少なくとも品質及びレート情報を受け取ることは、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取ることを備え、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項1に記載の方法。
【請求項4】
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することは、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定することと、
前記データセグメントを送るために必要な前記送信チャネル資源量を合計することと、
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定すること、とをさらに備える請求項3に記載の方法。
【請求項5】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のセグメントのうちの1つ以上を選択することを備える請求項4に記載の方法。
【請求項6】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択することを備える請求項4記載の方法。
【請求項7】
前記複数のセグメントのうちの1つ以上を選択することは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別することと、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定することと、
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択すること、とを備える請求項3に記載の方法。
【請求項8】
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定することと、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択すること、とをさらに備える請求項7に記載の方法。
【請求項9】
前記複数のデータセグメントのうちの1つ以上を選択することは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別することと、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算することと、
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択すること、とを備える請求項3に記載の方法。
【請求項10】
前記データセグメントのうちの1つ以上を選択することは、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析することと、
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択すること、とを備える請求項1に記載の方法。
【請求項11】
前記対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択することは、方程式を最大化することを備える請求項10に記載の方法。
【数1】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項12】
前記選択されたデータセグメントのサイズ変更を要求することは、前記選択されたデータセグメントに関する少なくとも最大サイズを指定することを備える請求項1に記載の方法。
【請求項13】
ある期間にわたる前記データセグメントのマルチメディアデータを結合することをさらに備える請求項1に記載の方法。
【請求項14】
サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求することと、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求することと、
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取ること、とをさらに備える請求項1に記載の方法。
【請求項15】
デジタルマルチメディアデータの流れを結合するための装置であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るデータ収集モジュールと、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定する割り当てモジュールと、
前記複数のデータセグメントが前記利用可能な帯域内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた少なくとも前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し及び前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求する選択モジュールと、を備える、装置。
【請求項16】
前記データ収集モジュールは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取る備える請求項15に記載の装置。
【請求項17】
前記データ収集モジュールは、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取り、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項15に記載の装置。
【請求項18】
前記割り当てモジュールは、前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、及び前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定する請求項17に記載の装置。
【請求項19】
前記選択モジュールは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択する請求項18に記載の装置。
【請求項20】
前記選択モジュールは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択する請求項18に記載の装置。
【請求項21】
前記選択モジュールは、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し及び前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項17に記載の装置。
【請求項22】
前記割り当てモジュールは、前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記選択モジュールは、前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択する請求項21に記載の装置。
【請求項23】
前記選択モジュールは、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項17に記載の装置。
【請求項24】
前記選択モジュールは、前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し及び前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択する請求項15に記載の装置。
【請求項25】
前記選択は、方程式を最大化することによって前記1つ以上のデータセグメントを選択する請求項24に記載の装置。
【数2】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項26】
前記選択モジュールは、サイズ変更を要求時に前記選択されたデータセグメントに関する少なくとも最大サイズを指定する請求項15に記載の装置。
【請求項27】
前記データセグメントは、ある期間にわたる前記流れの一部分を備える請求項15に記載の装置。
【請求項28】
前記データ収集モジュールは、サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取る請求項15に記載の装置。
【請求項29】
デジタルマルチメディアデータの流れを結合するための装置であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する少なくとも品質及びレート情報を受け取るための手段と、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定するための手段と、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択するための手段と、
前記複数のセグメントに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求するための手段と、を備える、装置。
【請求項30】
前記受け取る手段は、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取る請求項29に記載の装置。
【請求項31】
前記受け取る手段は、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取り、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項29に記載の装置。
【請求項32】
前記決定する手段は、前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定する請求項31に記載の装置。
【請求項33】
前記選択する手段は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択する請求項32に記載の装置。
【請求項34】
前記選択する手段は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択する請求項32記載の装置。
【請求項35】
前記選択する手段は、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し及び前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項31に記載の装置。
【請求項36】
前記選択する手段は、前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択する請求項31に記載の装置。
【請求項37】
前記選択する手段は、前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し及び方程式を最大化することによる品質上の影響が最も小さい前記1つ以上のデータセグメントを選択する請求項29に記載の装置。
【数3】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項38】
デジタル映像データを処理するためのプロセッサであって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する品質及びレート情報を受け取り、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び
前記複数のストリームに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求するように適合化される、プロセッサ。
【請求項39】
前記プロセッサは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取るように適合化される請求項38に記載のプロセッサ。
【請求項40】
前記プロセッサは、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取るように適合化され、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項38に記載のプロセッサ。
【請求項41】
前記プロセッサは、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、
前記データセグメントを送るために必要な送信チャネル資源量を合計し、及び
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定するように適合化される請求項40に記載のプロセッサ。
【請求項42】
前記プロセッサは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択するように適合化される請求項41に記載のプロセッサ。
【請求項43】
前記プロセッサは、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択するように適合化される請求項41記載のプロセッサ。
【請求項44】
前記プロセッサは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し、及び
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択するように適合化される請求項40に記載のプロセッサ。
【請求項45】
前記プロセッサは、
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、及び
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択するように適合化される請求項44に記載のプロセッサ。
【請求項46】
前記プロセッサは、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択するように適合化される請求項40に記載のプロセッサ。
【請求項47】
前記プロセッサは、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し、及び
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択するように適合化される請求項38に記載のプロセッサ。
【請求項48】
前記プロセッサは、方程式を最大化するように適合化される請求項47に記載のプロセッサ。
【数4】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項49】
前記プロセッサは、前記選択されたデータセグメントに関する少なくとも最大サイズを指定するように適合化される請求項38に記載のプロセッサ。
【請求項50】
前記プロセッサは、ある期間にわたる前記データセグメントのマルチメディアデータを結合するように適合化される請求項38に記載のプロセッサ。
【請求項51】
前記プロセッサは、
サイズ変更に関して選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取るように適合化される請求項38に記載のプロセッサ。
【請求項52】
デジタル映像データを処理するためのコンピュータプログラム製品であって、
前記デジタルマルチメディアデータの流れと関連づけられた複数のデータセグメントに関する品質及びレート情報を受け取り、
前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき前記複数のデータセグメントのうちの1つ以上を選択し、及び
前記複数のストリームに関する前記利用可能な帯域幅を達成するために前記1つ以上の選択されたデータセグメントの各々のサイズ変更を要求することを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品。
【請求項53】
少なくとも品質及びレート情報を受け取ることを前記コンピュータに行わせる前記命令は、前記複数のデータセグメントと関連づけられた少なくとも品質−レート曲線を受け取ることを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項54】
少なくとも品質及びレート情報を受け取ることを前記コンピュータに行わせる前記命令は、前記複数のデータセグメントと関連づけられた少なくとも品質−レートテーブルを受け取ることを前記コンピュータに行わせる命令を備え、前記品質−レートテーブルの各々は、前記対応するデータセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項52に記載のコンピュータプログラム製品。
【請求項55】
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することを前記コンピュータに行わせる前記命令は、
前記品質レベルのうちの選択された1つに対応する前記サイズで前記データセグメントの各々を送るために必要な送信チャネル資源量を決定し、
前記データセグメントを送るために必要な前記送信チャネル資源量を合計し、及び
前記すべてのデータセグメントによって要求される送信チャネル資源の前記合計を利用可能な送信チャネル資源量と比較して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まるかどうかを決定することを前記コンピュータに行わせる命令をさらに備える請求項54に記載のコンピュータプログラム製品。
【請求項56】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる前記命令は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも大きいときにサイズが縮小されるべき前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令を備える請求項55に記載のコンピュータプログラム製品。
【請求項57】
サイズが変更されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる前記命令は、前記データセグメントを送るために必要な前記送信資源の前記合計が前記利用可能な帯域幅量よりも少ないときにサイズが拡大されるべき前記複数のセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令を備える請求項55記載のコンピュータプログラム製品。
【請求項58】
前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記品質−レートテーブルを解析して現在の品質レベルにおける前記識別されたデータセグメントのサイズを決定し、及び
前記現在の品質レベルにおいて最大の推定サイズを有する前記識別されたデータセグメントのうちの少なくとも1つを選択することを前記コンピュータに行わせる命令を備える請求項54に記載のコンピュータプログラム製品。
【請求項59】
前記後続品質レベルにおける前記選択されたデータセグメントの前記サイズを用いて前記複数のデータセグメントが利用可能な帯域幅内にぴったり納まるかどうかを決定し、及び
前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに前記複数のデータセグメントと関連づけられた前記品質及びレート情報に基づいてサイズが変更されるべき1つ以上の追加のデータセグメントを選択することを前記コンピュータに行わせる命令をさらに備える請求項58に記載のコンピュータプログラム製品。
【請求項60】
前記複数のデータセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記品質−レートテーブルを解析して前記複数のデータセグメントが前記利用可能な帯域幅内にぴったり納まらないときに次に最高の品質レベルに対応する後続品質レベルを有する1つ以上のデータセグメントを識別し、
前記データセグメントの各々に関して、現在の品質レベルにおける前記識別されたデータセグメントのサイズと前記後続品質レベルにおける前記識別されたデータセグメントのサイズとの間の差を計算し、及び
計算された差が最大である前記識別されたデータセグメントのうちの少なくとも1つを選択することを前記コンピュータに行わせる命令を備える請求項54に記載のコンピュータプログラム製品。
【請求項61】
前記データセグメントのうちの1つ以上を選択することを前記コンピュータに行わせる命令は、
前記複数のデータセグメントと関連づけられた前記品質及びレート情報を解析し、及び
前記解析に基づいて前記対応する縮小されたサイズにおける品質上の影響が最も小さい前記1つ以上のデータセグメントを選択することを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項62】
前記対応する縮小されたサイズにおける品質上の影響が最も小さい1つ以上のデータセグメントを選択することを前記コンピュータに行わせる命令は、方程式を最大化することを前記コンピュータに行わせる命令を備える請求項61に記載のコンピュータプログラム製品。
【数5】
ここで、nはデータセグメント総数であり、QTotalは全データセグメントの全体的品質であり、kiはi番目のデータセグメントと関連づけられた定数であり、riはi番目のデータセグメントと関連づけられたビットレートであり、Rは全体的な利用可能ビットレートであり、QViは、i番目のデータセグメントと関連づけられた品質であり、QV−miniは、i番目のデータセグメントと関連づけられた最低品質であり、wiはi番目のデータセグメントと関連づけられた優先度である。
【請求項63】
前記選択されたデータセグメントのサイズ変更を要求することを前記コンピュータに行わせる命令は、前記選択されたデータセグメントに関する少なくとも最大サイズを指定することを前記コンピュータに行わせる命令を備える請求項52に記載のコンピュータプログラム製品。
【請求項64】
ある期間にわたる前記データセグメントのうちのマルチメディアデータを結合することを前記コンピュータに行わせる命令をさらに備える請求項52に記載のコンピュータプログラム製品。
【請求項65】
サイズ変更のために選択された前記データセグメントに関する符号化されたコンテンツの転送を要求し、
前記複数のデータセグメントのうちの残りのデータセグメントに関する符号化されたコンテンツの転送を要求し、及び
前記要求に応答して前記複数のデータセグメントの各々に関する前記コンテンツを受け取ることを前記コンピュータに行わせる命令をさらに備える請求項52に記載のコンピュータプログラム製品。
【請求項66】
デジタルマルチメディアデータの流れを符号化するための方法であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけることと、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ること、とを備える、方法。
【請求項67】
前記データセグメントのコンテンツを解析することと、
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけること、とをさらに備える請求項66に記載の方法。
【請求項68】
少なくとも前記品質及びレート情報を送ることは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送ることを備える請求項67に記載の方法。
【請求項69】
少なくとも前記品質及びレート情報を送ることは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送ることを備え、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項66に記載の方法。
【請求項70】
前記データセグメントのコンテンツを解析することと、
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択することと、
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成すること、とをさらに備える請求項69に記載の方法。
【請求項71】
前記品質−レートテーブルを生成することは、
前記データセグメントを符号化することができる前記サイズを計算することと、
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定することであって、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離されること、とを備える請求項70に記載の方法。
【請求項72】
前記品質−レートテーブルを生成することは、
前記データセグメントを符号化することができる複数の品質レベルを計算することであって、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離されることと、
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定すること、とを備える請求項70に記載の方法。
【請求項73】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取ることと、
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ること、とをさらに備える請求項66に記載の方法。
【請求項74】
前記データセグメントのサイズを変更する要求を受け取ることと、
前記要求に応答して前記データセグメントのサイズを変更すること、とをさらに備える請求項66に記載の方法。
【請求項75】
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取ることと、
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送ること、とをさらに備える請求項74に記載の方法。
【請求項76】
デジタルマルチメディアデータの流れを符号化するための装置であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるコンテンツ分類モジュールと、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る符号化モジュールと、を備える、装置。
【請求項77】
前記コンテンツ分類モジュールは、前記データセグメントのコンテンツを解析して前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づける請求項76に記載の装置。
【請求項78】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送る請求項77に記載の装置。
【請求項79】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送り、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項76に記載の装置。
【請求項80】
前記コンテンツ分類モジュールは、前記データセグメントのコンテンツを解析し及び前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
品質及びレート情報生成モジュールは、前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成することをさらに備える請求項79に記載の装置。
【請求項81】
前記品質及びレート情報生成モジュールは、前記データセグメントを符号化することができる前記サイズを計算し、前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項80に記載の装置。
【請求項82】
前記品質及びレート情報生成モジュールは、前記データセグメントを符号化することができる複数の品質レベルを計算し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離され、前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定する請求項80に記載の装置。
【請求項83】
前記符号化モジュールは、前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る請求項76に記載の装置。
【請求項84】
前記データセグメントのサイズを変更する要求を受け取り及び前記要求に応答して前記データセグメントのサイズを変更するサイズ変更モジュールをさらに備える請求項76に記載の装置。
【請求項85】
前記符号化モジュールは、前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り及び前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送る請求項84に記載の装置。
【請求項86】
デジタルマルチメディアデータの流れを符号化するための装置であって、
前記流れのデータセグメントを少なくとも品質及びレート情報と関連づけるための手段と、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るための手段と、を備える、装置。
【請求項87】
関連づけるための前記手段は、前記データセグメントのコンテンツを解析し及び前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づける請求項86に記載の装置。
【請求項88】
前記送る手段は、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送る請求項87に記載の装置。
【請求項89】
前記送る手段は、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送り、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項86に記載の装置。
【請求項90】
関連づけるための前記手段は、前記データセグメントのコンテンツを解析し及び前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成するための手段をさらに備える請求項89に記載の装置。
【請求項91】
前記生成する手段は、前記データセグメントを符号化することができる前記サイズを計算し及び前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項90に記載の装置。
【請求項92】
前記生成する手段は、前記データセグメントを符号化することができる複数の品質レベルを計算し、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離され及び前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定する請求項90に記載の装置。
【請求項93】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取るための手段をさらに備え、
前記送る手段は、前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送る請求項86に記載の装置。
【請求項94】
前記データセグメントのサイズを変更する要求を受け取るための手段と、
前記要求に応答して前記データセグメントのサイズを変更するための手段と、をさらに備え、
前記送る手段は、前記サイズが変更されたデータセグメントに関するコンテンツを多重処理のために送る請求項86に記載の装置。
【請求項95】
デジタル映像データを処理するためのプロセッサであって、
前記流れのデータセグメントを品質及びレート情報と関連づけ、及び
前記データセグメントと関連づけられた前記品質及びレート情報をマルチプレクス装置に送るように適合化される、プロセッサ。
【請求項96】
前記プロセッサは、
前記データセグメントのコンテンツを解析し、及び
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけるように適合化される請求項95に記載のプロセッサ。
【請求項97】
前記プロセッサは、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送るように適合化される請求項96に記載のプロセッサ。
【請求項98】
前記プロセッサは、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送るように適合化され、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項95に記載のプロセッサ。
【請求項99】
前記プロセッサは、
前記データセグメントのコンテンツを解析し、及び
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成するように適合化される請求項98に記載のプロセッサ。
【請求項100】
前記プロセッサは、
前記データセグメントを符号化することができる前記サイズを計算し、及び
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定するように適合化され、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項99に記載のプロセッサ。
【請求項101】
前記プロセッサは、
前記データセグメントを符号化することができる複数の品質レベルを計算し、
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定するように適合化され、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項99に記載のプロセッサ。
【請求項102】
前記プロセッサは、
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、及び
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送るように適合化される請求項95に記載のプロセッサ。
【請求項103】
前記プロセッサは、
前記データセグメントのサイズを変更する要求を受け取り、及び
前記要求に応答して前記データセグメントのサイズを変更するように適合化される請求項95に記載のプロセッサ。
【請求項104】
前記プロセッサは、
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り、及び
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送るように適合化される請求項103に記載のプロセッサ。
【請求項105】
デジタル映像データを処理するためのコンピュータプログラム製品であって、
前記流れのデータセグメントを品質及びレート情報と関連づけ、及び
前記データセグメントと関連づけられた前記品質及びレート情報をマルチプレクス装置に送ることを少なくとも1つのコンピュータに行わせる命令を備えるコンピュータによって読み取り可能な媒体を備える、デジタル映像データを処理するためのコンピュータプログラム製品。
【請求項106】
前記データセグメントのコンテンツを解析し、及び
前記解析に基づいて前記データセグメントを複数の品質−レート曲線のうちの1つと関連づけることを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項107】
少なくとも前記品質及びレート情報を送ることを前記コンピュータに行わせる命令は、前記データセグメントと関連づけられた少なくとも前記品質−レート曲線を送ることを前記コンピュータに行わせる命令を備える請求項106に記載のコンピュータプログラム製品。
【請求項108】
少なくとも前記品質及びレート情報を送ることを前記コンピュータに行わせる命令は、前記データセグメントと関連づけられた少なくとも品質−レートテーブルを送ることを前記コンピュータに行わせる命令を備え、前記品質−レートテーブルは、前記データセグメントと関連づけられた少なくとも1つ以上の品質レベル及び前記品質レベルの各々における前記データセグメントのサイズを示す請求項105に記載のコンピュータプログラム製品。
【請求項109】
前記データセグメントのコンテンツを解析し、及び
前記コンテンツの前記解析に基づいて前記データセグメントに関する複数の品質−レート曲線のうちの1つを選択し、及び
前記選択された品質−レート曲線を用いて前記データセグメントと関連づけられた前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令をさらに備える請求項108に記載のコンピュータプログラム製品。
【請求項110】
前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令は、
前記データセグメントを符号化することができる前記サイズを計算し、及び
前記選択された品質−レート曲線を用いて前記サイズの各々と関連づけられた品質レベルを決定することを前記コンピュータに行わせる命令を備え、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項109に記載のコンピュータプログラム製品。
【請求項111】
前記品質−レートテーブルを生成することを前記コンピュータに行わせる命令は、
前記データセグメントを符号化することができる複数の品質レベルを計算し、及び
前記選択された品質−レート曲線を用いて前記品質レベルの各々における前記データセグメントの前記サイズを決定することを前記コンピュータに行わせる命令を備え、前記品質レベルの各々は、品質増分だけ隣接品質レベルから分離される請求項109に記載のコンピュータプログラム製品。
【請求項112】
前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を送る要求を受け取り、及び
前記要求に応答して前記データセグメントと関連づけられた少なくとも前記品質及びレート情報を多重処理のために送ることを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項113】
前記データセグメントのサイズを変更する要求を受け取り、及び
前記要求に応答して前記データセグメントのサイズを変更することを前記コンピュータに行わせる命令をさらに備える請求項105に記載のコンピュータプログラム製品。
【請求項114】
前記サイズが変更されたデータセグメントに関するコンテンツ転送要求を受け取り、及び
前記要求に応答して前記サイズが変更されたデータセグメントに関する前記コンテンツを多重処理のために送ることを前記コンピュータに行わせる命令をさらに備える請求項113に記載のコンピュータプログラム製品。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図28】
【図29】
【図30】
【公開番号】特開2013−59048(P2013−59048A)
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−227334(P2012−227334)
【出願日】平成24年10月12日(2012.10.12)
【分割の表示】特願2009−548423(P2009−548423)の分割
【原出願日】平成20年1月30日(2008.1.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
【公開日】平成25年3月28日(2013.3.28)
【国際特許分類】
【出願番号】特願2012−227334(P2012−227334)
【出願日】平成24年10月12日(2012.10.12)
【分割の表示】特願2009−548423(P2009−548423)の分割
【原出願日】平成20年1月30日(2008.1.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
【出願人】(595020643)クゥアルコム・インコーポレイテッド (7,166)
【氏名又は名称原語表記】QUALCOMM INCORPORATED
【Fターム(参考)】
[ Back to top ]