(57)【要約】  本願ではマルチレイヤレート制御に関する技術及び思想が説明される。本願により開示される技術的思想によれば、ビデオサーバは、ビデオデータを取得し、ビデオデータをマルチレイヤビデオストリームにエンコードする。ビデオストリームのレイヤは、複数の出力バッファとすることが可能であり、それらのバッファはビット利用度を決定するために監視されることが可能である。レートコントローラは、エンコードされるビデオストリームのレイヤ各々についてビット利用フィードバックを取得し、そのビット利用フィードバックに基づいて、エンコードされるビデオストリームの各レイヤに関連する量子化パラメータを決定することが可能である。量子化パラメータを決定する際に、レートコントローラは、符号化されるビデオストリームの全体的なビットレートだけでなく、エンコードされるビデオストリームの各レイヤに関連するビットレート及びビット利用フィードバックをも考慮することが可能である。更に、エンコードする処理はビデオストリームにより決定される量子化パラメータに基づくことも可能である。
2015510355.tif 000002
【特許請求の範囲】
【請求項１】
ビデオ伝送用のマルチレイヤレート制御を行うためにコンピュータが実行する方法であって、
ビデオデータをデータストレージ装置から取得する処理と、
符号化ビデオストリームに含まれるべき複数のレイヤに関する複数の量子化パラメータを決定する処理と、
ビデオサーバにおいて、前記量子化パラメータに従って前記ビデオデータを符号化し、前記符号化ビデオストリームを取得する処理と、
前記符号化ビデオストリームを出力する処理と
を実行する方法。
【請求項２】
前記複数の量子化パラメータを決定する前記処理が、
前記符号化ビデオストリームのベースレイヤを選択する処理と、
前記ベースレイヤに関するビット利用フィードバックとエンハンスメントレイヤに関する別のビット利用フィードバックとを有するビット利用情報を取得する処理と、
前記ベースレイヤに関する第１のバッファと前記エンハンスメントレイヤに関する第２のバッファとに前記ビット利用フィードバックを加える処理と、
前記別のビット利用フィードバックを前記第２のバッファに加える処理と、
前記ベースレイヤに関する複数の量子化パラメータのうち最初のものと前記エンハンスメントレイヤに関する複数の量子化パラメータのうち第２のものとを決定する処理と
を有する、請求項１に記載の方法。
【請求項３】
前記符号化ビデオストリームが、分析されるべき別のレイヤを含んでいるか否かを判断する処理と、
前記符号化ビデオストリームは、分析されるべき別のレイヤを含んでいないことが確認されたことに応じて、前記複数の量子化パラメータを出力する処理と、
前記符号化ビデオストリームは、分析されるべき別のレイヤを含んでいることが確認されたことに応じて、前記符号化ビデオストリームの次のエンハンスメントレイヤを選択する処理と
を実行する請求項２に記載の方法。
【請求項４】
前記符号化ビデオストリームを出力する前記処理が、前記符号化ビデオストリームを前記ビデオサーバと通信するクライアント装置にストリーミングする処理を有する、請求項１に記載の方法。
【請求項５】
前記符号化ビデオストリームを出力する前記処理が、前記符号化ビデオストリームを複数のバッファに出力する処理を有する、請求項１に記載の方法。
【請求項６】
前記複数のバッファが、前記符号化ビデオストリームのベースレイヤに関する第１のバッファと、前記符号化ビデオストリームの第１のエンハンスメントレイヤに関する第２のバッファと、前記符号化ビデオストリームの第２のエンハンスメントレイヤに関する第３のバッファとを有する、請求項５に記載の方法。
【請求項７】
当該方法がビット利用情報を取得する処理を実行し、前記ビット利用情報は、前記ベースレイヤに関する第１のビット利用フィードバックと、前記第１のエンハンスメントレイヤに関する第２のビット利用フィードバックと、前記第２のエンハンスメントレイヤに関する第３のビット利用フィードバックとを有する、請求項６に記載の方法。
【請求項８】
前記第１のバッファ、前記第２のバッファ及び前記第３のバッファに前記第１のビット利用フィードバックを加える処理と、
前記第２のバッファ及び前記第３のバッファに前記第２のビット利用フィードバックを加える処理と、
前記第３のバッファに前記第３のビット利用フィードバックを加える処理と、
前記第１のバッファ、前記第２のバッファ及び前記第３のバッファに基づいて前記複数の量子化パラメータのうちの第１のものを決定し、前記第２のバッファ及び前記第３のバッファに基づいて前記複数の量子化パラメータのうちの第２のものを決定し、前記第３のバッファに基づいて前記複数の量子化パラメータのうちの第３のものを決定する処理と
を実行する請求項７に記載の方法。
【請求項９】
前記符号化ビデオストリームを出力する前記処理が、前記符号化ビデオストリームをブロードキャストする処理を有する、請求項１に記載の方法。
【請求項１０】
コンピュータ可読命令を有するコンピュータ記憶媒体であって、前記コンピュータ可読命令は、コンピュータに処理を実行させ、前記処理は、
ビデオデータをデータストレージ装置から取得する処理と、
前記コンピュータにおいて、前記ビデオデータを符号化し、符号化ビデオストリームを取得する処理と、
前記符号化ビデオストリームをバッファに出力する処理と
前記符号化ビデオストリームのベースレイヤを選択する処理と、
前記ベースレイヤに関する第１のビット利用情報と前記符号化ビデオストリームのエンハンスメントレイヤに関する第２のビット利用情報とを有するビット利用フィードバックを取得する処理と、
前記ベースレイヤに関する第１のバッファと前記エンハンスメントレイヤに関する第２のバッファとに前記第１のビット利用情報を加える処理と、
第２のビット利用フィードバックを前記第２のバッファに加える処理と、
前記第１のバッファ及び前記第２のバッファに基づいて、前記ベースレイヤの第１の量子化パラメータを決定し、前記第２のバッファに基づいて、第１のエンハンスメントレイヤの第２の量子化パラメータを決定する処理と、
前記コンピュータにおいて、量子化パラメータに従って前記ビデオデータを符号化する処理と
を有するコンピュータ記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示される実施形態はコンピュータにより実行される方法及び記憶媒体等に関連する。
【背景技術】
【０００２】
エンコードされるビデオデータのビットレートを変えることは、様々なビデオ配信及びストレージの手段に対する問題を引き起こす。例えば、ビットレートが利用可能な帯域幅を超える場合、ビデオは中断するかもしれない。また、ビデオのストリーミングや伝送の最中にビットレートが低減すると、より低いビットレートに対処するために、何らかのビデオの詳細が欠落又は除外されてしまい、それは視聴者にとって顕著であるかもしれない。このような変動に起因するいくつかの問題に対処するため、あるシステムは、ビットレート制御手段を利用して、エンコードされるビデオデータのビットレートを制御し及び/又は伝送中のビットレートを管理する。そのような方法は、ビットストリームを分析すること、及びビットストリーム全体に対して維持できるビットレートを決定することを含む。この方法は或る種のスケーラブルでないビットストリームには実用的であるかもしれない。  
しかしながらスケーラブルなビデオビットストリームの場合、ビットレート変動及び/又はビットレートを制御するその方法は、パフォーマンス及びユーザにとっての体感品質にも影響を及ぼすおそれがある。例えば、スケーラブルビデオのレート制御のための或る方法は、上記のビデオストリーム全体に対して使用されるのと同じ方法を利用して、ビデオのレイヤ各々をエンコードする。この方法も理想的なユーザ体感をもたらすことができそうにない。特に、スケーラブルビデオがしばしば転送されることに起因して、ビデオデータ中の或るレイヤは他のレイヤよりも多かったり少なかったりする。従って、変動を減らしつつ、階層化されたビットストリーム全体に単独のレート制御方式を適用することは、エンコードされるビデオコンテンツの個々のレイヤに不釣り合いな影響を及ぼすおそれがある。例えば、階層化されたビデオデータにおける大部分の情報をベースレイヤが含んでいる場合、ビデオのベースレイヤは、階層化されたビデオストリーム全体に対するビットレート制御を適用することにより最も大きな影響を受ける。更に、個々に決定された帯域幅条件に応じて各々のレイヤが単にエンコードされる場合、その方法は様々なレイヤの品質を最大化しそうにない。そのような劣化は、ビットレート制御手段を提供することにより削減又は軽減される変動よりも、ユーザの体感品質に悪影響を及ぼすおそれがある。
【０００３】
更に、スケーラブルビデオは、異なるクラスの装置に対するテレビ会議及び/又はその他のアプリケーションにしばしば使用され、異なるクラスの装置は、様々なダウンリンク及び/又はアップリンク帯域幅の能力又は性能を有する。従って、従来のレート制御手段を利用することは、受信機の帯域幅の制約に対処するために、様々なビットストリームの品質劣化を招き、ひいてはユーザ全員の品質劣化を招いてしまう。例えば、ビデオサーバが2つの受信機にビデオを提供する場合において、一方が300Kbpsの帯域幅を有し、他方が500Kbpsの帯域幅を有している場合、ビデオサーバは、300Kbpsでエンコードされるベースレイヤと200Kbpsでエンコードされるエンハンスメントレイヤとをスケーラブルビデオストリームが有するように、ビデオをエンコードする。ベースレイヤが目標の300Kbps未満でエンコードされる場合、ビデオサーバに関連するレートコントローラは不十分又は不完全であるので、全体的なストリームの品質劣化を招き、第2の受信機に利用可能な帯域幅を最大化することが困難になってしまう。この例の場合、ベースレイヤが280kbpsを下回る場合、第2の装置で受信可能な最大ストリームは480Kbpsとなり、これは利用可能な帯域幅を使い切っておらす、理想的なユーザの体感品質に及ばないことが懸念される。従って、スケーラブルビデオに対して従来のレート制御手段を適用すること、及び/又はマルチレイヤビデオストリームの各レイヤにレート制御手段を別々に適用することは、様々なビットストリームに不利に影響し、ビデオストリームの品質を劣化させてしまうおそれがある。
上記及び他の検討事項に関し、実施の形態を説明する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第2008-0056352号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本願により説明される技術的思想はマルチレイヤレート制御に関連している。本願において、「レイヤ」は階層等と言及されてもよい。本願により開示される技術的思想では、ビデオサーバは、ビデオデータのマルチレイヤ依存性を考慮及び維持しつつ、マルチレイヤのエンコードされるビデオデータにレート制御手段を適用する。様々な実施形態において、ビット利用フィードバック情報が、ビデオサーバで動作するレートコントローラにより取得される。本願において、混乱のおそれの限り、エンコードは符号化と同義的に使用され、デコードは復号化と同義的に使用される。ビット利用フィードバック情報は、符号化ビデオストリームの符号化ビデオコンテンツのマルチレイヤ各々に関連するフィードバックインジケータを含む。一実施形態では、ビット利用フィードバック情報は、処理対象ビデオデータ(raw  video  data)をエンコードし、エンコードされたビデオを出力するエンコーダから取得されてもよいし、ビット利用フィードバック情報は、エンコードされたビデオストリームを監視することにより取得されてもよいし、及び/又はビット利用フィードバック情報はリアル又は仮想バッファから取得されてもよく、マルチレイヤ符号化ビデオコンテンツは、エンコードされたビデオの送信又はストリーミングの前又は最中に、リアル又は仮想バッファからエンコーダにより出力される。一実施形態において、バッファの機能は、リーキーバケット仮想バッファ(leaky  bucket  virtual  buffer)により提供される。
【０００６】
レートコントローラは、フィードバックインジケータを取得し、フィードバックインジケータの各々をビデオコンテンツのレイヤ各々に関連付ける。レートコントローラは、特定のレイヤより上位の何らかのレイヤを考慮する場合に、その特定のレイヤに関連するフィードバックを考慮することが可能である。例えば、レートコントローラがベースレイヤに関連するビット利用フィードバックを取得しているならば、エンハンスメントレイヤのビット利用を考慮する場合にもそのビット利用フィードバックを考慮することが可能である。従って、本願において説明されるマルチレイヤレート制御手段を適用すると、符号化ビデオの様々なレイヤ間の依存性を考慮することが可能である。
【課題を解決するための手段】
【０００７】
一実施形態によれば、レートコントローラは、レイヤのビットレートがどのように制御されるべきかを示す量子化パラメータを生成するように形成されることが可能である。特に、レートコントローラは複数の量子化パラメータを決定することが可能であり、複数の量子化パラメータの各々は、ビデオストリームのレイヤ各々について生成され、ビデオストリームの上位レイヤを処理する際に考慮に入れられる。ビデオストリームの複数のレイヤ間の依存性を考慮に入れて処理しながら量子化パラメータを決定することも可能である。レートコントローラは、量子化パラメータをエンコーダに出力するように形成されることが可能であり、エンコーダは量子化パラメータに基づいて様々なレイヤのビットレートを調整することが可能である。ビットストリームの各レイヤの依存性を考慮しつつビットストリームのレイヤ各々のビットレートを制御することにより、或いは代替的又は追加的に、レイヤに関連するビットレートを独立に制御することにより、或いはビデオストリーム全体に関連するビットレートを制御することにより、ビデオサーバはマルチレイヤレート制御機能を提供することが可能である。
【０００８】
一実施形態によるビデオサーバはローカル又はリモートのデータストレージ装置からビデオデータを取得する。ビデオサーバは、ビデオデータをまつりレイヤビデオストリームにエンコードするように形成されたエンコーダを動作させる。エンコーダは、ビデオストリームをバッファに出力し、バッファは、符号化ビデオストリームを受信するクライアントに送信されていないビット量又はビット数に対応するビット利用フィードバックを追跡又は出力する。従って、ビット利用フィードバックは、利用可能なネットワークリソース(量)を超えるビット量又はビット数に対応することが可能である。ビデオサーバで動作するレートコントローラは、バッファを監視又はモニタし、及び/又は符号化ビデオストリームのレイヤ各々に対するビット利用フィードバックを取得する。
【０００９】
別の形態によるレートコントローラは、ビット利用フィードバックに基づいて、符号化ビデオストリームの各レイヤに関連する量子化パラメータを決定することが可能である。量子化パラメータを決定する場合において、レートコントローラは、符号化ビデオストリームの全体的なビットレートだけでなく、符号化ビデオストリームの各レイヤに関連するビットレート及びビット利用フィードバックをも考慮することが可能である。更に、レートコントローラは、符号化ビデオストリームの特定のレイヤに関するビット利用フィードバックを考慮し、そのレイヤより上位の各レイヤを分析し、これによりビデオの下位レイヤに対する上位レイヤの依存性を考慮するように形成されることが可能である。従って、本願において開示される技術的思想は、帯域幅が上位のエンハンスメントレイヤに利用される前に、ベースレイヤ及び最下位のエンハンスメントレイヤにビットレートを最大化するために使用可能である。更に、本願により開示される技術的思想の一実施形態は、特定のレイヤに関連する残留ビットバジェット(不完全なレート制御に起因する残留ビットバジェット)を、考察対象のレイヤ各々の次の上位レイヤに移動させることにより、特定のレイヤのビットレートを最大化するために使用可能である。
【００１０】
上記の説明内容は、コンピュータにより制御される装置、コンピュータプロセス、コンピュータシステムとして実施されてもよいし、或いはコンピュータにより読み取ることが可能な記憶媒体のような製品として実施されてもよい。上記及び他の様々な特徴は、以下の詳細な説明及び添付図面を参照することにより更に明らかになるであろう。
【００１１】
この「課題を解決するための手段」の欄は「発明の詳細な説明」の欄で以下において説明される内容の簡易な概念を紹介するために設けられている。この欄は、特許請求の範囲に記載された事項の基本的な特徴や本質的な特徴を特定するようには意図されておらず、この欄は特許請求の範囲に記載された事項の範囲を限定するために使用されることも意図されていない。更に、特許請求の範囲に記載された事項は、本開示の何処かで言及される如何なる欠点も又は全ての欠点を解決する実施形態には限定されない。
【００１２】
図1は本願で開示される様々な実施形態に関する例示的な動作環境を示すシステム図である。
【００１３】
図2はマルチレイヤレート制御を行う例示的な実施形態による方法例を示すフローチャートである。
【００１４】
図3は量子化パラメータを決定する例示的な実施形態による方法例を示すフローチャートである。
図4は本願において説明される実施形態を実現することが可能なコンピュータシステムに関する例示的なコンピュータハードウェア及びソフトウェアアーキテクチャを示すコンピュータアーキテクチャ図である。
【図面の簡単な説明】
【００１５】
【図１】本願で開示される様々な実施形態に関する例示的な動作環境を示すシステム図。
【図２】マルチレイヤレート制御を行う例示的な実施形態による方法例を示すフローチャート。
【図３】量子化パラメータを決定する例示的な実施形態による方法例を示すフローチャート。
【図４】本願において説明される実施形態を実現することが可能なコンピュータシステムに関する例示的なコンピュータハードウェア及びソフトウェアアーキテクチャを示すコンピュータアーキテクチャ図。
【発明を実施するための形態】
【００１６】
以下の詳細な説明はマルチレイヤレート制御のための技術的思想に関連している。本願により説明される技術的思想によれば、ビデオサーバはデータストレージ装置からビデオデータを取得する。ビデオサーバはエンコーダのホストとなることが可能である、或いはエンコーダの機能を実行することが可能である。エンコーダはビデオデータをマルチレイヤビデオストリームにエンコードするように形成されることが可能である。エンコーダはビデオストリームを複数のバッファに出力することが可能である。特に、ビデオストリームのレイヤの各々は、バッファに通され、ビットの利用の仕方を決定するためにストリーミングや送信の間モニタされることが可能である。「モニタ」は「監視」等と言及されてもよい。バッファ又は他の手段は、符号化ビデオストリームとともに送信されるビット量又はビット数に対応するビット利用フィードバックを追跡又は出力することが可能である。一実施形態では、ビット利用フィードバックは、利用可能なネットワークリソースを符号化ビデオストリームがどの程度超えているかの度合いに対応している。
【００１７】
レートコントローラは、バッファをモニタし、及び/又は符号化ビデオストリームのレイヤ各々についてビット利用フィードバックを取得し、ビット利用フィードバックに基づいて、符号化ビデオストリームの各レイヤに関連する量子化パラメータを決定することが可能である。量子化パラメータを決定する際に、レートコントローラは、符号化ビデオストリーム全体のビットレートだけでなく、符号化ビデオストリームの各レイヤに関連するビットレート及びビット利用フィードバックをも考慮することが可能である。更に、レートコントローラは、符号化ビデオストリームの特定のレイヤより上位のレイヤ各々を分析する場合に、符号化ビデオストリームのその特定のレイヤに関連するビット利用フィードバックを考慮するように形成できる。従って、本願で開示される技術的思想の実施形態は、上位のエンハンスメントレイヤに帯域幅が使用される前に、ベースレイヤ及び最下位エンハンスメントレイヤのビットレートを最大化するために使用可能である。更に、本願で開示される技術的思想の実施形態は、特定のレイヤに関する残留ビットバジェット(不完全なレート制御に起因する残留ビットバジェット)を、考察対象の各レイヤの次の上位レイヤに移動させることで、その特定のレイヤのビットレートを最大化するために使用可能である。
【００１８】
本願で説明されている内容は、オペレーティングシステムの動作に関連して実行されるプログラムモジュールや、コンピュータシステムにおけるアプリケーションプログラム等の観点から一般的に説明されているが、当業者は、他の実現手段が他のタイプのプログラムモジュールとの組み合わせにより実行されてよいことを認めるであろう。一般に、プログラムモジュールは、ルーチン、プログラム、コンポーネント、データ構造、その他のタイプの構造(特定のタスクを実行する構造、或いは特定のアブストラクトデータタイプを実行する構造)を含んでもよい。更に、携帯装置、マルチプロセッサシステム、マイクロプロセッサ方式の又はプログラム可能な消費者電子装置、ミニコンピュータ、メインフレームコンピュータ等を含んでよい他のコンピュータシステムとともに、本願で説明される内容が実施されてよいことを、当業者は認めるであろう。
【００１９】
以下の詳細な説明において、本願の一部を形成する添付図面に関して参照要素(参照符号、参照番号等を含む)が付されており、図面は具体的な実施形態や具体例の一例を示している。図中、同様な参照要素は同様な要素を表現し、コンピュータシステム、コンピュータで読み取ることが可能な記憶媒体、コンピュータで使用される方法等の内の一形態がマルチレイヤレート制御に関して説明される。
【００２０】
図1を参照すると、本願で説明される様々な実施形態に関する動作環境の一形態100が示されている。図1に示されている動作環境100はビデオサーバ102を含む。一実施形態において、ビデオサーバ102は、通信ネットワーク(ネットワーク)104の一部として動作してもよいし、通信ネットワーク104と通信するように動作してもよいが、何れも必須ではない。様々な実施形態に関し、ビデオサーバ102の機能は、サーバコンピュータ；デスクトップ、タブレット、又はタップトップコンピュータ等のようなパーソナルコンピュータ(PC)；携帯用コンピュータ；内蔵されたコンピュータシステム；又はその他のコンピュータ装置により提供されてもよい。すなわち、ビデオサーバ102の機能は本願においてはサーバコンピュータにより提供されるように説明されているが、これらの実施形態は例示的であり、如何なる方法によっても限定であるように解釈されてはならないことが、理解されるべきである。ビデオサーバ102のコンピュータアーキテクチャの一例は、図4を参照しながら以下において更に図示及び説明される。
【００２１】
ビデオサーバ102は、例えば、レートコントローラ108、エンコーダ110、及び/又はその他のソフトウェアモジュール等のような1つ以上のソフトウェアモジュール及びオペレーティングシステム106を動作させるように形成されてもよい。レートコントローラ108及びエンコーダ110はビデオサーバ102に存在するように図1では示されているが、この点は必須でないことを理解すべきである。特に、レートコントローラ108及び/又はエンコーダ110は、望まれるならば、ビデオサーバ102と通信する別個の装置又はモジュールとして実現可能である。従って、図示の実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２２】
オペレーティングシステム106はビデオサーバ102の動作を制御するコンピュータプログラムである。ソフトウェアモジュールは、オペレーティングシステム上で動作するように形成された実行可能なプログラムであり、マルチレイヤレート制御の機能を提供するために本願で説明される様々な機能を提供する。追加的及び/又は代替的なソフトウェア、アプリケーションプログラム、モジュール、及び/又は他のコンポーネントは、ビデオサーバ102により実行可能であるので、図示の実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２３】
エンコーダ110は、ビデオフレーム、処理対象ビデオデータ(raw  video  data)又は他のビデオ情報等のようなビデオデータ112を受信するように形成される。一実施形態において、ビデオデータ112は、ネットワーク104及び/又はビデオサーバ102と通信する際にデータストレージ114から受信又は抽出される。すなわち、データストレージ114の機能は1つ以上のデータストレージ装置により提供可能であり、データストレージ装置は、データベース、ネットワークデータストレージ装置、ハードドライブ、メモリ装置、その他の実際の又は仮想的なデータストレージ装置等を含むがこれらに限定されない。他の実施形態において、データストレージ114はビデオサーバ102に関連するメモリ装置又は他のデータストレージを含む。従って、図1はデータストレージ114がビデオサーバ102から遠隔して存在するように描かれているが、図示の実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２４】
様々な実施形態に関し、エンコーダ110は、ビデオデータ112をエンコード又は符号化して2つ以上のレイヤのビデオ情報を取得するように形成される。ビデオ情報のレイヤは、エンコーダ110により出力されることが可能であり、符号化ビデオデータストリーム(エンコードされたビデオストリーム)116としてビデオサーバ102により送信又はストリーミングされることが可能である。図示されているように、符号化ビデオストリーム116は複数のビデオレイヤL1...LN(以下、まとめて及び/又は一般的に「レイヤL」として言及される場合がある)を含むことが可能である。一般に理解されるように、第1レイヤL1は符号化ビデオストリーム116のベースレイヤに対応し、それに続く各々のレイヤLは符号化ビデオストリーム116のエンハンスメントレイヤに対応することが可能である。
【００２５】
符号化ビデオストリーム116は、クライアント装置118により受信又はアクセスされることが可能であり、符号化ビデオストリーム116の少なくともベースレイヤL1は視聴可能である。符号化ビデオストリーム116の複数のレイヤLの各々を受信することが可能なネットワーク接続を設定及び/又は維持するクライアント装置118の能力に依存して、符号化ビデオストリーム116のベースレイヤL1は、1つ以上のエンハンスメントレイヤL2(図2では図示せず)ないしLNにより提供される詳細情報とともにクライアント装置118で視聴可能である。従って、符号化ビデオストリーム116の複数のレイヤLを受信するネットワーク帯域幅を設定及び/又は維持するクライアント装置118の能力に応じて、クライアント装置118は、様々なレイヤからの詳細情報とともに符号化ビデオストリーム116を受信及び視聴することが可能である。図示の実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２６】
本願で開示される技術的思想の様々な実施形態によれば、レートコントローラ108は、(図1に示すように)エンコーダ110から、或いはエンコーダ110から出力された符号化ビデオストリーム116を監視することにより、ビット利用フィードバックデータ(ビット利用フィードバック(bit  usage  feedback))を取得するように形成される。他の実施形態では、レートコントローラ108は、後述するバッファ122のようなビデオサーバ102に関連する又は組み込まれる他の報告手段から、ビット利用フィードバック120を示すデータを監視又は受信するように形成される。レートコントローラ108は、クライアント装置118のような加入したクライアント各々から、ダウンリンク帯域幅BWDだけでなくアップリンク帯域幅BWUの情報にアクセスする、それを受信する又は決定するように形成可能であり、それら双方の帯域幅はレートコントローラ108に入力されることが可能である。ダウンリンク帯域幅BWD及びアップリンク帯域幅BWUは、符号化ビデオストリーム116の「サブストリーム」各々のターゲットビットレートを決定するために使用可能であり、従ってレートコントローラ108に対する入力と考えることが可能である。本願で使用されているように、「サブストリーム」という用語は、符号化ビデオストリーム116のベースレイヤL1及びそれにつづく複数のエンハンスメントレイヤLを含む及び包含することが可能である。一実施形態によれば、ビデオサーバ102は、ダウンリンク帯域幅BWDに少なくとも部分的に基づいて、符号化ビデオストリーム116に関するターゲットビットレートを決定する。一実施形態によれば、ビデオサーバ102は、(a)符号化ビデオストリーム116の如何なるサブストリームの最大ターゲットビットレートも、ビデオサーバ102に関するアップリンク帯域幅BWUを超えることはできないという制限、及び(b)符号化ビデオストリーム116の如何なるサブストリームのターゲットビットレートも、サブストリームを使用するクライアント(例えばクライアント装置118)に関連するダウンリンク帯域幅BWDを超えることはできないという制限を課す。これらの実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２７】
ビット利用フィードバック120は、符号化ビデオストリーム116の受信側に送信されていないビット量又はビット数を示すことが可能である。すなわち、ビット利用フィードバック120を分析し、何らかの特定の時点で送信又はストリーミングしている際に、符号化ビデオストリーム116としてエンコードされたビデオデータ112のうちどの程度が、止められ、欠落し、欠如しているかを突き止めることが可能である。従って、ビデオサーバ102は、ビット利用フィードバック120を、符号化ビデオストリーム116をストリーミングするのに使用される帯域幅又は他の形態の伝送媒体に関するインジケータとして解釈することができる。
【００２８】
図1に示されているように、ビット利用フィードバック120は、多数のフィードバックインジケータFB1．．．FBN(一般的に「フィードバックインジケータFB」のように言及されてもよいし、及び/又はまとめて「ビット利用フィードバック120」のように言及されてもよい)を示すデータを含むことが可能である。複数のフィードバックインジケータFBは、上記の複数のレイヤLにそれぞれ対応することが可能である。すなわち、例えば、フィードバックパラメータFB1は、符号化ビデオストリーム116のベースレイヤL1に関連するビット利用フィードバックインジケータに対応することが可能である。これらの実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００２９】
レートコントローラ108は、上記のビット利用フィードバック(bit  usage  feedback)120を複数のリーキーバケットバッファ(leaky  bucket  buffer)B1...BN(一般的に「バッファB」のように言及されてもよいし、及び/又はまとめて「バッファ122」のように言及されてもよい)にロードするように形成することが可能である。説明されている実施形態において、レートコントローラ108はビット利用フィードバック120をバッファB1...BNにロードし、バッファB1...BNは複数のレイヤL及び/又は複数のフィードバックパラメータFBにそれぞれ対応していてもよい。以下において詳細に説明されるように(特に、図2、図3を参照ながら説明されるように)、レートコントローラ108は、ビット利用フィードバック120を取得し、複数のレイヤLに関連するフィードバックパラメータFBをバッファ122にロード又は提供し、各々のレイヤLについて、対応する量子化パラメータQP1．．．QPNを決定するように形成されることが可能である。レートコントローラ108は、量子化パラメータ124をエンコーダ110に出力するように形成されることが可能であり、エンコーダ110はビデオデータ112をエンコード又は符号化する際に量子化パラメータ124を利用することが可能である。
【００３０】
本願で開示される技術的思想による様々な実施形態によれば、ビデオサーバ102は、レートコントローラ108及びエンコーダ110を動作させ、複数のレイヤL間の依存性を考慮に入れつつ、符号化ビデオストリーム116の各レイヤLのビットレートを制御することが可能である。すなわち、例えば、符号化ビデオストリーム116のベースレイヤL1に関するビット利用レート情報が、ビット利用フィードバック120において確認(又は特定又は識別)され、対応するバッファB1に加えられることが可能である。このビット利用レート情報は符号化ビデオストリーム116の他の任意のレイヤLに関する何らかのバッファBに加えられてもよく、これにより、エンハンスメントレイヤL2．．．LNの個々のビット利用レートを考察する前に、符号化ビデオストリーム116に適用される何らかのビットレート制御方式が、ベースレイヤL1に関するビット利用レート情報を少なくとも考慮することを補償することが可能である。
【００３１】
一実施形態において、ビデオは3つのレイヤLを含む。ベースレイヤL1に関するフィードバックインジケータFB1のようなビット利用レート情報は、バッファB1、B2、B3に加えられることが可能である。従って、第1のエンハンスメントレイヤL2に関するフィードバックインジケータFB2を考察する際に、ビデオサーバ102は、第1のエンハンスメントレイやL2及びベースレイヤL1に関連するビットレートフィードバックインジケータFB1を考慮することが可能である。従って、ビデオのレイヤLが考察又は処理される場合に、エンハンスメントレイヤLのビットレートは、ベースレイヤL1及び下位のエンハンスメントレイヤLのビットレートに依存することが可能である。この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００３２】
一実施形態によれば、ビデオサーバ102はビデオデータ112を受信し、そのビデオデータ112をエンコーダ110が符号化する。符号化されたビデオデータ112は、符号化ビデオストリーム116としてエンコーダ110から出力されることが可能である。一実施形態によれば、符号化ビデオストリーム116はバッファ122を通る又はバッファ122に入る。様々な実施形態によれば、符号化ビデオストリーム116のレイヤの各々は、バッファ122の一部として含まれている個々のバッファBを経由することが可能である。
【００３３】
一実施形態において、バッファ122は、レートコントローラ108又は他のモジュール、装置若しくはソフトウェアにより監視され或いは自己報告(self-report)し、上記のビット利用フィードバック120を決定する。上述したように、ビット利用フィードバック120は複数のフィードバックインジケータFBを含み、複数のフィードバックインジケータFBはバッファ122内に含まれる複数のバッファBに対応することが可能である。レートコントローラ108は、ビット利用フィードバック120を分析し、ビット利用フィードバック120に基づいて量子化パラメータを生成するように形成されることが可能である。様々な実施形態に関し、量子化パラメータ124は個々の量子化パラメータQP1．．．QPNを含み、個々の量子化パラメータQP1．．．QPNは、符号化ビデオストリーム116の複数のレイヤLの各々について決定されることが可能であり、かつバッファBに関して上述したレイヤL感の依存性を考慮することが可能である。
【００３４】
レートコントローラ108は量子化パラメータ124をエンコーダ110に出力することが可能であり、エンコーダ110は量子化パラメータ124に従ってビデオデータ112をエンコード又は符号化することが可能である。従って、ビデオサーバ102は、符号化ビデオストリーム116の複数のレイヤLに関連する複数のバッファBを監視(モニタ)し、レイヤLの各々について量子化パラメータ124を決定し、決定された量子化パラメータ124に基づいてビデオデータ112の符号化(の仕方)を制御できることが、認められるであろう。本願で開示される技術的思想による実施形態は、レイヤに関するビットレートを独立に制御すること、或るいは符号化ビデオストリーム116の出力全体に関連するビットレートを制御することに加えて又は代替的に、レート制御方式を適用する場合に、符号化ビデオストリーム116のレイヤL間の依存性を考慮しながら、符号化ビデオストリーム116のレイヤL各々に対するビットレート利用情報を使用することが可能である。
【００３５】
このように、本願で開示される技術的思想による実施形態は、符号化ビデオストリーム116のレイヤL各々のビットレートを制御する処理を含むことが可能である。一実施形態において、これは、エンハンスメントレイヤLを符号化する前に、符号化ビデオストリーム116の下位レベルLが最大レートで符号化されることを保証することにより、ビデオサーバ102のパフォーマンスを改善し及び/又はユーザの体感品質を改善する。一実施形態において、ビデオサーバ102は、アップリンク帯域幅BWU及び/又はダウンリンク帯域幅BWDに基づいて最大ビットレートを決定するように形成される。更に、複数のレイヤと、複数のレイヤL同士の間の依存性とを考察(又は処理又は使用)する場合に、ビデオサーバ102は、例えば不完全なレート制御に起因する残留ビットバジェット(residual  bit  budget)のような特定のレイヤLNに関する残留ビットバジェットを、考察対象のレイヤ各々の次の上位レイヤLN+1に移すことにより、特定のレイヤLN+1のビットレートを最大化するように形成されることが可能である。マルチレイヤレート制御に関して本願で開示される技術的思想に関する上記及び他の形態は、図2ないし図4を参照しながら詳細に説明される。
【００３６】
図1は1つのビデオサーバ102、1つのネットワーク104及び1つのクライアント装置118を示している。しかしながら、動作環境100の実施形態は複数のビデオサーバ102、複数のネットワーク104及び複数のクライアント装置118を含んでいてもよいし、クライアント装置118を1つも含んでいなくてもよいことが、理解されるべきである。図示の実施形態は、例示であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００３７】
図2を参照しながら、マルチレイヤレート制御を行う例示的な実施形態による方法200を説明する。本願で開示される方法の動作例は、必ずしも何らかの特定の順序でなされる必要はないこと、及び全部又は一部の処理が代替的な順序で実行されることも可能であり本願の範囲内にあることが、理解されるべきである。動作例は説明及び図示の簡明化の観点から例示的な順序で示されている。個々の処理は、添付の特許請求の範囲から逸脱することなく、付加されてもよいし、削除されてもよいし、及び/又は同時に実行されてもよい。
【００３８】
説明される方法は何時でも終了できること及び必ずしも全体的に実行される必要はないことも理解されるべきである。本願で開示さえる方法の全部又は一部、及び/又は実質的に均等な処理は、本願で説明されているようなコンピュータ記憶媒体に記憶されているコンピュータで読み取ることが可能な命令を実行することにより行うことが可能である。明細書及び特許請求の範囲で使用される可能性がある「コンピュータで読み取ることが可能な命令(コンピュータ可読命令)」及びその派生語は広義な意味で使用されており、ルーチン、アプリケーション、アプリケーションモジュール、プログラムモジュール、プログラム、コンポーネント、データ構造、アルゴリズム等を含む。コンピュータ可読命令は様々なシステム構成で実現可能であり、システム構成は例えば単独のプロセッサシステム、マルチプロセッサシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、携帯用コンピュータ装置、マイクロプロセッサ方式の装置、プログラム可能な消費者電子装置、及びそれらの組み合わせ等を包む。
【００３９】
従って、本願で説明される論理的な処理は、(1)コンピュータで実行される一連の処理又はコンピュータシステムで動作するプログラムモジュールとして、及び/又は(2)相互に接続されたマシン論理回路群又はコンピュータシステム内の回路モジュール群として実現される。実現手段は、コンピュータシステムのパフォーマンス及びその他の条件に依存して選択可能である。従って、本願で説明される論理処理は、状態、動作、構造装置、処理又はモジュール等のように様々に言及される。これらの動作、構造装置、処理及びモジュールは、ソフトウェア、ファームウェア、専用ディジタル論理装置、及びそれらの任意の組み合わせにより実現されてもよい。
【００４０】
本願の開示による概念を説明及び図示するために、本願で説明される方法は、レートコントローラ108及び/又はエンコーダ110を動作させるビデオサーバ102により実行されるように説明される。これらの実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。特に、追加的又は代替的な装置は、コントローラ108及び/又はエンコーダ110に加えて又はそれに代えて、様々なソフトウェアモジュールを実行することにより、本願で説明される方法に関する機能を提供することが可能である。
【００４１】
方法200は処理202から始まり、ビデオサーバ102は、図1を参照しながら説明したビデオデータ112のようなビデオデータを受信する。上述したように、ビデオデータ112は、ビデオサーバ102に保存されることが可能であり、或いはデータストレージ114のようなリモートデータストレージ装置に保存されることが可能である。従って、処理202は、ローカル又はリモートのデータストレージ装置からビデオデータを抽出(又は取得)する処理を含むことが可能である。
【００４２】
処理202に続いて、方法200は処理204に進み、ビデオサーバ102は、ビデオサーバ102により生成されたビデオ出力のレイヤに関する量子化パラメータ124を決定する。図1に示されているように、様々な実施形態において、ビデオ出力は、符号化ビデオストリーム116と符号化ビデオストリーム116の複数のレイヤLとに対応することが可能である。すなわち、処理204は符号化ビデオストリーム116の各レイヤLの各自の量子化パラメータQPを決定する処理を含むことが可能である。量子化パラメータ124を決定するための更なる詳細な処理については図3を参照しながら説明される。
【００４３】
方法200は、符号化ビデオストリーム116のストリーミングの最中に、ビデオサーバ102により何度も反復されることが可能であることが、理解されるべきである。従って、方法200の反復の最初ではデフォルトの量子化パラメータ124を利用してビデオデータ112をエンコード又は符号化するが、その理由は図3に示されている処理がビデオサーバ102により未だ実行されていないからである。本方法200の以後の反復では、処理204で決定された量子化パラメータ124を当てにすることができ、この点については図3を参照しながら詳細に説明される。従って、図2に示されている方法200の実施形態は、ビデオサーバ102からのビデオコンテンツのストリーミングの最中における方法200の特定の反復に対応しているかもしれないし、していないかもしれない。従って、説明されている実施形態は如何なる方法によっても限定であるように解釈されるべきでない。
【００４４】
処理204に続いて、方法200は処理206に進み、ビデオサーバ102はビデオデータ112をエンコードする。様々な実施形態に関し、ビデオサーバ102は、処理204で決定した量子化パラメータに従ってビデオデータ112をエンコードする。図1を参照しながら説明したように、ビデオサーバ102は、マルチレイヤレート制御を行うように、量子化パラメータ124を用いてビデオデータ112をエンコード又は符号化する。特に、符号化ビデオストリーム116の各レイヤLに関するビット利用フィードバック情報は、レイヤL及び任意の上位レイヤLに関するバッファ122のようなリーキーバケットバッファを満たすように使用されることが可能である。例えば、第1のエンハンスメントレイヤL2に関するビットは、関連付けられているバッファB2の充填度と、他の任意のエンハンスメントレイヤL3．．．LNに関連する全てのバッファB3．．．BNの充填度とに寄与する。充填度(fullness)は占有度又は蓄積度等と言及されてもよい。この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００４５】
従って、本願で開示される技術的思想による実施形態は、符号化ビデオストリーム116のレイヤLの各々に関連するビットレートを制御することが可能である。本願で説明されるマルチレイヤレート制御を行う場合に、一実施形態におけるビデオサーバ102は、全体的なビットレートだけでなく、個々のレイヤLのビットレート、レイヤL同士の間の依存性をも考慮することが可能である。従って、符号化ビデオストリーム116のエンハンスメントレイヤLは、符号化ビデオストリーム116のベースレイヤLが考察又は処理されるまで分析されないかもしれないので、エンハンスメントレイヤLとベースレイヤLとの間の依存性を強制している。この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００４６】
処理206に続いて、方法200は処理208に進み、ビデオサーバ102は符号化ビデオストリーム116を出力する。符号化ビデオストリーム116は、処理202で受信されたビデオデータ112であって、処理204で決定された量子化パラメータ124に応じて処理206で符号化されたビデオデータ112に対応することが可能である。ビデオサーバ102は、符号化ビデオストリーム116をクライアント装置118や他のビデオサーバにストリーミングし、及び/又は符号化ビデオストリーム116をブロードキャストするように形成されることが可能である。従って、処理208は様々な装置又はネットワーク接続に符号化ビデオストリーム116を出力する処理を含むことが可能であり、出力先は第1図及び第4図に示されているような要素を含んでよいが、これらに限定されない。処理208に続いて、方法200は処理210に進む。方法200は処理210において終了する。
【００４７】
図3を参照しながら、量子化パラメータ124を決定するための一実施形態による方法300を詳細に説明する。特に、図2を参照しながら上述したように、図3は方法200に関する更なる詳細事項を示し、上記の処理204を実行する際に実行することが可能である。図3に関して説明されている機能は他の時点で実行されてもよいので、この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００４８】
本方法は処理302から始まり、ビデオサーバ102は符号化ビデオストリーム116のベースレイヤL1を選択する。一般に理解されているように、符号化ビデオストリーム116は複数のレイヤLを含むことが可能であり、ベースレイヤL1は符号化ビデオストリーム116の最初のレイヤに対応させることが可能である。様々な実施形態に関し、ベースレイヤL1は、必須ではないが、符号化ビデオストリーム116に関連するビデオデータ112の大部分、及び/又は符号化ビデオストリーム116の他のレイヤLに含まれているビデオデータ112の部分より量が多いビデオデータ112の不均等な量の部分を含むことが可能である。一実施形態によれば、ビデオサーバ102は、量子化パラメータ124を決定するための開始点として、ベースレイヤL1を選択するが、これは全てのケースに該当するわけではない。従って、説明される実施形態は考えられる実施形態のうちの一例として理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００４９】
処理302に続いて、方法300は処理304に進み、ビデオサーバ102は、選択されたレイヤに関連するビット利用情報を示すビット利用フィードバック120又は他のデータを取得する。処理304の最初の反復の場合、ビット利用情報は、ベースレイヤL1に関連するフィードバックパラメータFB1を含むことが可能である。処理304の以後の反復では、上述したように、ビット利用情報は、選択されたレイヤLNに関連するフィードバックパラメータFBNを含むことが可能である。これらの実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００５０】
図1を参照しながら上述したように、ビット利用情報はビット利用フィードバック120に含まれることが可能である。上述したように、一実施形態では、ビット利用フィードバック120はレートコントローラ108によりエンコーダ110から受信される。他の実施形態では、レートコントローラ108が符号化ビデオストリーム116又はバッファ122を監視し、ビット利用フィードバック120を決定する。更に別の実施形態では、レートコントローラ108が、ビット利用度を示すビット利用フィードバック120又は他のデータを、符号化ビデオストリーム116又はバッファ122を監視するように形成された他の装置又はモジュールから受信する。従って、処理304は、ビット利用フィードバック120を取得する処理、ビット利用フィードバック120を受信する処理、及び/又は他の情報を受信する処理に加えて、ビデオサーバ102により分析される特定レベルLに関連するビット利用フィードバック120の中でビット利用情報を特定する処理を含むことが可能である。
【００５１】
処理304に続いて、方法300は処理306に進み、ビデオサーバ102は、分析される特定レベルLNに関するビット利用フィードバックを、特定レベルLN及び上位の全てのレベルLに関連する任意のバッファ122に加える。方法300の最初の反復の際、例えば、ベースレイヤL1が分析されつつある場合、ベースレイヤL1に関連するフィードバックパラメータFB1が、バッファ122の全てに加えられ、それらはベースレイヤL1に関するバッファB1とエンハンスメントレイヤL2...LNに関するバッファB2...BNに対応する。従って、ベースレイヤL1に関連するビット利用情報が考慮(又は処理)され、符号化ビデオストリーム116の各レイヤに関連するバッファBに加えられることが可能であることが認められるであろう。
【００５２】
方法300における以後の反復では、ビデオサーバ102は、分析されたレイヤLの(からの)ビット利用情報を、関連するバッファB及び任意の上位バッファB122に加えることが可能である。従って、第1のエンハンスメントレイヤL2の場合、レイヤL2に関連するフィードバック情報は、レイヤL2に関連するバッファB2と、任意の上位のエンハンスメントレイヤL3...LNに関連するバッファB3．．．BNとに加えられることが可能である。しかしながら、一実施形態において、ビデオサーバ102は、レイヤL2に関するフィードバック情報を、ベースレイヤL1に関連するバッファB1に加えないことが可能である。すなわち、一実施形態によるビデオサーバ102は、下位のレイヤには関連するが上位のレイヤには関連しないレイヤ依存性を使用してもよい。この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００５３】
処理306に続いて、方法300は処理308に進み、ビデオサーバ102は、選択されたレイヤLに関する量子化パラメータ124を決定する。従って、例えば方法300の最初の反復では、ビデオサーバ102は、処理308において、ベースレイヤL1に対する量子化パラメータ124を決定することが可能である。方法300の以後の反復では、ビデオサーバ102は、符号化ビデオストリーム116の分析されたレイヤL各々の量子化パラメータ124を決定することが可能である。量子化パラメータ124は、符号化ビデオストリーム116のレイヤL各々をエンコーダ110がどのようにエンコードすべきかを示すことが可能である点、及び処理306で蓄積された様々なバッファBと処理306で蓄積されたバッファBのビット利用フィードバックとに基づくことが可能である点が、理解されるべきである。従って、例えば、処理308は、分析されたレイヤLだけでなく任意の上位レイヤLについても関連するバッファBのビット利用フィードバックを検査する処理を含むことが可能である。従って、ビデオサーバ102により決定される量子化パラメータ124は、レイヤLに関する上記の依存性に基づくことが可能である。
【００５４】
処理308に続いて、方法300は処理310に進み、ビデオサーバ102は、符号化ビデオストリーム116が分析されるべき更なるレイヤを含んでいるか否かを判断する。処理310において、符号化ビデオストリーム116は分析されるべき更なるレイヤを含んでいる、とビデオサーバ102が判断すると、方法300は処理312に進み、ビデオサーバ102は符号化ビデオストリーム116の次のエンハンスメントレイヤLを選択する。様々な実施形態に関し、ビデオサーバ102は第1のエンハンスメントレイヤL2から始まる順序でエンハンスメントレイヤLを選択し、最後のエンハンスメントレイヤLNが考慮(処理)されるまで続く。レイヤLは他の順序で処理されることも可能であるので、この実施形態は例示的であるように理解されるべきであり、如何なる方法によっても限定であるように解釈されるべきでない。
【００５５】
処理312に続いて、方法300は処理304に戻る。ビデオサーバ102が、何らかの反復の処理310において、符号化ビデオストリーム116のうち分析のための更なるレイヤLは残っていない、とビデオサーバ102が判断するまで、処理304-310はビデオサーバ102により反復されることが可能である。別の実施形態において、利用可能な帯域幅が何らかの時点で消尽した場合に、ビデオサーバ102は方法300を反復することを止めてもよい。何らかの処理の反復310において、更なるレイヤLは符号化ビデオストリーム116に含まれていない、とビデオサーバ102が判断した場合、方法300は処理314に進む。
【００５６】
処理314において、ビデオサーバ102は処理308で決定した量子化パラメータ124をエンコーダ110に出力する。第2図に関連して上述したように、エンコーダ110は量子化パラメータ124に応じてビデオデータ112のエンコードの仕方を変更することが可能である。すなわち、方法200及び300はマルチレイヤレート制御を行うようにビデオサーバ102により実行されることが可能である。処理314に続いて、方法300は処理316に進む。方法300は処理316において終了する。
【００５７】
図4はマルチレイヤレート制御を行うためにソフトウェアコンポーネントを実行することが可能な本願で説明されるコンピュータアーキテクチャ400を例示する。図4に示されているコンピュータアーキテクチャ400は、サーバコンピュータ、移動電話、PDA、スマートフォン、デスクトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、ラップトップコンピュータ、又はその他のコンピュータ装置に関するアーキテクチャを示す。コンピュータアーキテクチャ400は本願で説明される任意の形態のソフトウェアコンポーネントを実行するために使用されてよい。
【００５８】
図4に示されているコンピュータアーキテクチャ400は、中央処理ユニット402(CPU)と、システムメモリ404[ランダムアクセスメモリ406(RAM)及びリードオンリメモリ(ROM)408を含む]と、メモリ404をCPU402に結合するシステムバス410とを含む。起動時のような場合にコンピュータアーキテクチャ400内の要素間で情報を転送することを促す基本ルーチンを含むベーシック入力/出力システムは、ROM408に保存されている。コンピュータアーキテクチャ400は更に大容量ストレージ装置412を含み、大容量ストレージ装置412は、オペレーティングシステム106、レートコントローラ108、エンコーダ110、及びバッファ122を含む。図4には図示されていないが、必要に応じて、大容量ストレージ装置412は、ビデオデータ112、符号化ビデオストリーム116に対応するデータ、最適化パラメータ124、及び/又はその他のデータを保存するように形成されることが可能である。
【００５９】
大容量ストレージ装置412は、バス410に接続された大容量ストレージコントローラ(図示せず)によりCPU402に接続される。大容量ストレージ装置412及び関連するコンピュータ可読媒体(コンピュータで読み取ることが可能な媒体)は、コンピュータアーキテクチャ400に関する不揮発性ストレージを提供する。コンピュータ可読媒体に関する本願での説明は、ハードディスク又はCD-ROMドライブ等のような大容量ストレージに言及しているが、コンピュータ可読媒体はコンピュータアーキテクチャ400によりアクセス可能な利用可能な如何なるコンピュータ記憶媒体又は通信媒体とすることが可能である点は、当業者に認められるべきである。
【００６０】
通信媒体は、コンピュータ可読命令(コンピュータで読み取ることが可能な命令)、データ構造、プログラムモジュール、その他のデータ(搬送波、キャリア波、又はその他の伝送手段等のような変調されたデータ信号におけるもの)を含み、任意の伝送媒体を含む。「変調されたデータ信号」という用語は、情報を信号にエンコードする仕方に応じて設定又は変更される1つ以上の性質を有する信号を意味する。非限定的な一例として、通信媒体は、有線ネットワーク又は直接的に接続されたコネクション等のような有線媒体と、音響、RF、赤外線及びその他のワイヤレス媒体等のような無線媒体とを含む。上記の列挙したものの任意の組み合わせもコンピュータ可読媒体の範囲内に含まれるべきである。
【００６１】
非限定的な一例として、コンピュータ記憶媒体は、揮発性及び不揮発性、着脱可能及び着脱不可能な媒体であって、コンピュータ可読命令、データ構造、プログラムモジュール又はその他のデータ等のような情報を保存する何らかの方法又は技術で実現された媒体を含んでよい。例えば、コンピュータ記憶媒体は、RAM、ROM、EPROM、EEPROM、フラッシュメモリ、又は他のソリッドステートメモリ技術、CD-ROM、ディジタル多用途ディスク(DVD)、HD-DVD、ブルーレイ(BLU-RAY(登録商標))、その他の光学的ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、その他の磁気ストレージ装置又はその他の任意の媒体(所望の情報を保存するのに使用可能であり、かつコンピュータアーキテクチャ400によりアクセス可能な媒体)を含むが、これらに限定されない。特許請求の範囲に関し、「コンピュータ記憶媒体」及びその派生語は、電波、信号及び/又はその他の一時的及び/又は無形の通信媒体をそれ自体含まない。
【００６２】
様々な実施形態に関し、コンピュータアーキテクチャ400は、ネットワーク104等のようなネットワークを介してリモートコンピュータとの論理コネクションを利用して、ネットワーク化された環境で動作してもよい。コンピュータアーキテクチャ400は、バス410に接続されたネットワークインタフェース414を介してネットワーク104に接続してもよい。ネットワークインタフェース414は他のタイプのネットワーク及びリモートコンピュータシステム(例えば、クライアント装置118)に接続するために使用されてよいことが、理解されるべきである。コンピュータアーキテクチャ400は、
キーボード、マウス又は電子スタイラス(図4では図示せず)を含む多数の他の装置からの入力を受信及び処理する入力/出力コントローラ416を含む。同様に、入力/出力コントローラ416は、表示画面、ディスプレイスクリーン、プリンタ又はその他のタイプの出力装置(図4では図示せず)に出力を提供してもよい。
【００６３】
本願で説明さえるソフトウェアコンポーネントは、CPU402にロードされて実行される場合に、CPU402及び全体的なコンピュータアーキテクチャ400を、汎用的なコンピュータシステムから、本願で説明された機能を実行するように特化された専用コンピュータシステムに変換してもよいことが、理解されるべきである。CPU402は、任意の数のトランジスタ又はその他の個別回路素子から形成されてもよく、それらは個々に又は全体的に任意の状態数を有してよい。より具体的には、CPU402は、本願で開示されたソフトウェアモジュールに含まれる実行可能命令に応じた有限状態マシンとして動作してよい。これらのコンピュータ実行可能命令は、CPU402がそのようにして状態を遷移するかを指定することによりCPU402を変換してもよく、これによりCPU402を形成するトランジスタ又はその他の個別ハードウェア要素を変換してもよい。
【００６４】
ソフトウェアをエンコード又は符号化することにより、本願で説明されたコンピュータ可読媒体の物理構造が変更されてもよい。物理構造の具体的な変更は、本明細書における様々な実施形態における様々な要因に依存してもよい。そのような要因の具体例は、限定ではないが、コンピュータ可読媒体を実現するために使用される技術や、コンピュータ可読媒体がプライマリ又はセカンダリストレージとして特徴付けられているか否か等を含んでもよい。例えば、コンピュータ可読媒体が半導体メモリとして実現される場合、本願で開示されるソフトウェアは、半導体メモリの物理状態を変更することにより、コンピュータ可読媒体にエンコードされてもよい。例えば、ソフトウェアは、トランジスタの状態、キャパシタの状態、又は半導体メモリを形成する他の個別回路素子の状態を変更してもよい。ソフトウェアはデータを保存するためにそのような素子の物理状態を変更してもよい。
【００６５】
別の例として、本願で開示されるコンピュータ可読媒体は、磁気又は光学的な技術を利用して実施されてもよい。そのような実施形態の場合、本願で説明されるソフトウェアは、ソフトウェアがエンコードされる場合に、磁気的又は光学的な媒体の物理状態を変更してもよい。これらの変更又は変換は、所与の磁気媒体中の特定の場所の磁気的特性を変更することを含んでよい。これらの変更は、所与の光学媒体中の特定の場所の物理特性又は性質を変更し、それらの場所の光学的特性を変えることを含む。本願の範囲及び精神から逸脱することなく、本説明を促すためにしか提供されていない上記の具体例とともに、物理媒体の他の変更も可能である。
【００６６】
上記の観点から、多くのタイプの物理的な変換がコンピュータアーキテクチャ400で行われ、本願で説明されたソフトウェアコンポーネントを保存及び実行してよいことが、理解されるべきである。コンピュータアーキテクチャ400は、携帯用コンピュータ、内蔵コンピュータシステム、パーソナルディジタルアシスタント、及び当業者に知られている他のタイプのコンピュータ装置等を含む他のタイプのコンピュータ装置を含んでもよいことが、理解されるべきである。コンピュータアーキテクチャ400は図4に示されている全ての要素を含まなくてもよい点、コンピュータアーキテクチャ400は図4に明示的には示めされていない他の要素を含んでもよい点、また、コンピュータアーキテクチャ400は図4に示されているものとは完全に異なるアーキテクチャを利用してもよい等の点についても本願では想定されている。
【００６７】
以上の説明に基づいて、マルチレイヤレート制御に関する技術は開示されたことが認められるべきである。本願で説明された内容はコンピュータ構造の特徴、方法及び変換処理、特有のコンピュータ技術、及びコンピュータ可読媒体の観点からの言葉により説明されているが、添付の特許請求の範囲において規定される発明は、具体的な特徴、具体的な処理、具体的な媒体等のような本願で説明された形態に限定される必要はない点が、理解されるべきである。むしろ、具体的な特徴、処理及び媒体は特許請求の範囲に記載された内容の実現手段の一形態として開示されている。
【００６８】
上記の説明事項は単なる例示的な方法によりなされているに過ぎず、限定として解釈されるべきではない。様々な変形例及び修正例は、上記の例示的な実施形態、図示及び説明された応用例によらず、上記の説明事項に適用されてもよく、それらは特許請求の範囲に記載された本発明の精神及び範囲内に属する。
【図１】
2015510355.tif 000003
【図２】
2015510355.tif 000004
【図３】
2015510355.tif 000005
【図４】
2015510355.tif 000006
【国際調査報告】
2015510355.tif 000007
2015510355.tif 000008