(57)【特許請求の範囲】
【請求項１】
レート制御方法であって、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームであって、それぞれが前記第１の複数の符号化パラメータ値の符号化パラメータを用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値のビットレートを有する第１の複数の符号化されたデータストリームを生成するステップと、
前記第１の複数の符号化されたデータストリームにそれぞれ対応する前記第１の複数の符号化パラメータ値および前記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
前記更新されたレート制御モデル及び第２の入力フレームに対する予想ビットレートに基づいて第２の複数の符号化パラメータ値を決定し、前記第２の複数の符号化パラメータ値を用いて前記第２の入力フレームを符号化するステップと、含み、
前記第１の複数の符号化パラメータ値は、前記第１の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、前記レート制御モデルによって提供され、
前記第１の複数の符号化パラメータ値は、
前記レート制御モデルに従って前記第１の入力フレームに対する予想ビットレート値から計算された主符号化パラメータ値を含み、
前記レート制御モデルを更新することは、前記第１の入力フレームに対する前記予想ビットレート値と、前記主符号化パラメータ値を用いて前記第１の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、前記第１の入力フレームを用いて前記レート制御モデルのパラメータを反復的に更新することを含む、方法。
【請求項２】
前記第１の複数の符号化パラメータ値のうちの１つが、前記第１の入力フレームに対する前記予想ビットレートに基づいて、前記レート制御モデルによって提供され、前記第１の複数の符号化パラメータ値のうちの他のものが、一定の符号化パラメータ間隔で前記第１の複数の符号化パラメータ値のうちの前記１つから徐々に逸脱される請求項１に記載の方法。
【請求項３】
前記第１の複数の符号化パラメータ値のうちの１つが、前記第１の入力フレームに対する前記予想ビットレートに基づいて、前記レート制御モデルによって提供され、前記第１の複数の符号化パラメータ値のうちの他のものが、可変の符号化パラメータ間隔で前記第１の複数の符号化パラメータ値のうちの前記１つから徐々に逸脱される請求項１に記載の方法。
【請求項４】
前記第１の入力フレームを符号化することは、複数の別々の符号化プロセスを前記第１の入力フレーム上で実行して、前記第１の複数の符号化されたデータストリームを生成することを含み、前記複数の別々の符号化プロセスがそれぞれ、前記第１の複数の符号化パラメータ値のうちの１つを用いて前記第１の入力フレームを符号化して、前記第１の複数の符号化されたデータストリームのうちの対応する１つを生成することを含む請求項１から請求項３の何れか１項に記載の方法。
【請求項５】
前記第１の入力フレームを符号化することは、前記第１の入力フレーム上で少なくとも１つの共通のプロセスを含む前記複数の別々の符号化プロセスを実行することを含む請求項４に記載の方法。
【請求項６】
前記第２の入力フレームに対する前記第２の複数の符号化パラメータ値を決定することは、
前記更新されたレート制御モデルに従って、前記第２の入力フレームに対する予想ビットレートに基づいて、前記第２の入力フレームに対する前記第２の複数の符号化パラメータ値のうちの１つを決定し、
前記第２の複数の符号化パラメータ値のうちの他のものを一定の符号化パラメータ間隔で前記第２の複数の符号化パラメータ値のうちの前記１つから徐々に逸脱させること
を含む請求項１から５の何れか１つに記載の方法。
【請求項７】
前記第２の入力フレームに対する前記第２の複数の符号化パラメータ値を決定することは、
前記更新されたレート制御モデルに従って、前記第２の入力フレームに対する予想ビットレートに基づいて、前記第２の入力フレームに対する前記第２の複数の符号化パラメータ値のうちの１つを決定し、
前記第２の複数の符号化パラメータ値のうちの他のものを可変の符号化パラメータ間隔で前記第２の複数の符号化パラメータ値のうちの前記１つから徐々に逸脱させること
を含む請求項１から５の何れか１つに記載の方法。
【請求項８】
前記第１の入力フレームに対する予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも１つに基づいて、第１の複数の符号化されたデータストリームから、符号化されたデータストリームを、前記第１の入力フレームに対する出力データストリームとして選択することをさらに含み、
前記出力データストリームは、
前記第１の複数の符号化されたデータストリームの１つであって、前記第１の複数のビットレート値のうちの、前記予想ビットレート値に最も近いものに相当するビットレートを有する１つ、
前記第１の複数の符号化されたデータストリームの１つであって、前記第１の複数のビットレート値のうちの、前記予想ビットレート値以下で、前記予想ビットレート値に最も近いものに相当するビットレートを有する１つ、
前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、事前に設定された範囲内で前記予想ビットレート値との差異を有するものに相当するビットレートを有する１つ、
前記第１の複数の符号化されたデータストリームのうちの、前記チャネル帯域幅に合っている１つ、
前記第１の複数の符号化されたデータストリームのうちの１つであって、前記チャネル帯域幅の下での前記伝送レイテンシが目標レイテンシに最も近い１つ、
前記第１の複数の符号化されたデータストリームのうちの１つであって、前記チャネル帯域幅の下での前記伝送レイテンシが目標レイテンシ以下で、前記目標レイテンシに最も近い１つ、または、
前記第１の複数の符号化されたデータストリームのうちの、前記チャネル帯域幅、目標レイテンシ、前記符号化の品質、及び目標ビットレートに従って決定される費用関数の値が最も小さい１つである、
請求項１から請求項７の何れか１項に記載の方法。
【請求項９】
第１の複数の符号化されたデータストリームから、符号化されたデータストリームを、前記第１の入力フレームに対する出力データストリームとして選択することをさらに含み、
前記第１の複数の符号化パラメータ値は、前記レート制御モデルに従って前記第１の入力フレームに対する前記予想ビットレート値から計算された主符号化パラメータ値を含み、
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第１の入力フレームを符号化することによって得られた前記第１の複数の符号化されたデータストリームのうちの前記主符号化パラメータ値を用いて得られた１つのデータストリームを前記出力データストリームとして選択することを含む請求項１から７の何れか１項に記載の方法。
【請求項１０】
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、前記第１の入力フレームに対する前記予想ビットレート値に最も近いものに相当するビットレートを有する１つを、前記出力データストリームとして選択することを含む、請求項８に記載の方法。
【請求項１１】
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、前記第１の入力フレームに対する前記予想ビットレート値以下でありかつそれに最も近いものに相当するビットレートを有する１つを、前記出力データストリームとして選択することを含む請求項８に記載の方法。
【請求項１２】
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、事前に設定された範囲内で前記第１の入力フレームに対する前記予想ビットレート値との差異を有するものに相当するビットレートを有する１つを、前記出力データストリームとして選択することを含む請求項８に記載の方法。
【請求項１３】
レート制御方法であって、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームであって、それぞれが前記第１の複数の符号化パラメータ値の符号化パラメータを用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値のビットレートを有する第１の複数の符号化されたデータストリームを生成するステップと、
前記第１の複数の符号化されたデータストリームにそれぞれ対応する前記第１の複数の符号化パラメータ値および前記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
前記更新されたレート制御モデル及び第２の入力フレームに対する予想ビットレートに基づいて第２の複数の符号化パラメータ値を決定し、前記第２の複数の符号化パラメータ値を用いて前記第２の入力フレームを符号化するステップと、
前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、事前に設定された範囲内で前記第１の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する１つを、前記第１の入力フレームに対する出力データストリームとして選択するステップと
を含む、方法。
【請求項１４】
データ符号化におけるレート制御装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに結合された１つまたは複数のメモリであって、
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化させて、第１の複数の符号化されたデータストリームであって、それぞれが前記第１の複数の符号化パラメータ値の符号化パラメータを用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値のビットレートを有する第１の複数の符号化されたデータストリームを生成させ、
前記第１の複数の符号化されたデータストリームにそれぞれ対応する前記第１の複数の符号化パラメータ値および前記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
前記更新されたレート制御モデル及び第２の入力フレームに対する予想ビットレートに基づいて第２の複数の符号化パラメータ値を決定し、前記第２の複数の符号化パラメータ値を用いて前記第２の入力フレームを符号化させる命令を格納するものと
を備え、
前記第１の複数の符号化パラメータ値は、前記第１の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、前記レート制御モデルによって提供され、
前記第１の複数の符号化パラメータ値は、
前記レート制御モデルに従って前記第１の入力フレームに対する予想ビットレート値から計算された主符号化パラメータ値を含み、
前記レート制御モデルを更新させることは、前記第１の入力フレームに対する前記予想ビットレート値と、前記主符号化パラメータ値を用いて前記第１の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、前記第１の入力フレームを用いて前記レート制御モデルのパラメータを反復的に更新させることを含む、装置。
【請求項１５】
データ符号化におけるレート制御装置であって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに結合された１つまたは複数のメモリであって、
前記１つまたは複数のプロセッサによって実行されると、前記１つまたは複数のプロセッサに、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化させて、第１の複数の符号化されたデータストリームであって、それぞれが前記第１の複数の符号化パラメータ値の符号化パラメータを用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値のビットレートを有する第１の複数の符号化されたデータストリームを生成させ、
前記第１の複数の符号化されたデータストリームにそれぞれ対応する前記第１の複数の符号化パラメータ値および前記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
前記更新されたレート制御モデル及び第２の入力フレームに対する予想ビットレートに基づいて第２の複数の符号化パラメータ値を決定し、前記第２の複数の符号化パラメータ値を用いて前記第２の入力フレームを符号化させ、
前記第１の複数の符号化されたデータストリームのうちの１つであって、前記第１の複数のビットレート値のうちの、事前に設定された範囲内で前記第１の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する１つを、前記第１の入力フレームに対する出力データストリームとして選択させる命令を格納するものとを備える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となる資料を含んでいる。著作権所有者は、この特許文書または特許開示の何者による複写複製に対して、特許庁の特許ファイルまたはレコードに表示される通りであれば異議を唱えないが、それ以外の場合、一切の著作権を留保する。
【０００２】
本開示は、データ符号化に関し、より詳細には、レート制御の方法および装置、マルチレート符号化装置、ならびに送信端末に関する。
【背景技術】
【０００３】
ローレイテンシのビデオ／画像伝送システムにおける１つの課題は、チャネル帯域幅などのチャネルの状態が、特にワイヤレスチャンネルに関しては、時間とともに変化することである。受信端末と送信端末との間の物理的距離、相対位置、および障害物／遮蔽物、直接の電磁干渉などのような、ワイヤレスチャネルに影響を及ぼす要因が多数存在する。さらに、伝送のデータソースもまた時間とともに変化する。ソースの時間的変化およびチャネルの時間的変化は互いに独立しており、予測が困難であるため、ソース符号化をチャネル帯域幅にリアルタイムに適応させることが困難になっている。例えば、チャネルが安定しているとき、カメラの突然の動きまたはカメラの視界内の対象物の大きな動きは、符号化されるデータストリームのサイズの突然の変化につながる。データストリームのサイズが２倍になれば、伝送レイテンシ／遅延はそれに応じて２倍になる。ソースが安定しているとき、データストリームのサイズは一定したままであるが、突然のチャネルの変化は、やはり伝送ジッタ（時間とともに変化する伝送レイテンシ）を引き起こす可能性がある。チャネル帯域幅が半分だけ減少すれば、伝送レイテンシはそれに応じて２倍分増加する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
信頼できないチャネル上で円滑な伝送を確実に行うために、符号化レートをチャネル帯域幅にリアルタイムで適応させるレート制御技術が、ワイヤレスビデオ伝送用途において広く用いられてきた。従来のレート制御技術は、フレームの群（例えば、複数のフレーム）の全体的な平均ビットレートを制御するだけである。２つの要素、例えば、符号化パラメータ値および対応するビットレート値を含む１つのサンプル点のみがフレームごとに生成されるので、レート制御モデルのパラメータを推定するために所与の期間にわたって複数のフレームからいくつかのサンプル点を生成することを必要とする。そのため、従来のレート制御技術は、所与の期間（例えば、複数のフレーム）にわたって平均ビットレートを予想ビットレートで安定化させて、複数のフレームまたはある期間にわたって平均化される全体的なジッタが確実に小さくなるようにする。しかしながら、ローレイテンシのビデオ伝送には、再生が受信端末で頻繁に停止する原因となる大きな伝送ジッタを回避するために、ある範囲内でフレームごとにビットレートを安定化させることを必要とする。
【課題を解決するための手段】
【０００５】
本開示によれば、レート制御方法が提供される。この方法は、第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して第１の複数の符号化されたデータストリームを生成し、前記第１の複数の符号化されたデータストリームのそれぞれが第１の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成され、かつ、前記第１の複数の符号化されたデータストリームのそれぞれが第１の複数のビットレート値に対応するビットレートを有し、第１の複数の符号化されたデータストリームにそれぞれ対応する第１の複数の符号化パラメータ値および第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新し、そして更新されたレート制御モデルに基づいて第２の入力フレームを符号化することを含む。
【０００６】
また本開示によれば、レート制御装置が提供される。このレート制御装置は、命令を格納する１つまたは複数のメモリと、この１つまたは複数のメモリに結合された１つまたは複数のプロセッサと、を含む。この１つまたは複数のプロセッサは、第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームであって、それぞれが第１の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値に対応するビットレートを有する第１の複数の符号化されたデータストリームを生成し、第１の複数の符号化されたデータストリームにそれぞれ対応する第１の複数の符号化パラメータ値および第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新し、更新されたレート制御モデルに基づいて第２の入力フレームを符号化するように構成される。
【図面の簡単な説明】
【０００７】
【図１】本開示の例示的な実施形態による送信端末を示す概略図である。
【図２】本開示の例示的な一実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
【図３】本開示の例示的な実施形態によるシングルレートエンコーダを示す概略的なブロック図である。
【図４】本開示の別の例示的な実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
【図５】本開示の別の例示的な実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
【図６】本開示の例示的な実施形態による、フレームごとにレート制御モデルを更新するプロセスを図示する概略図である。
【図７】本開示の例示的な実施形態による、レート制御方法のフローチャートである。
【図８】本開示の例示的な実施形態による、レート制御モデルを反復的に更新するプロセスを示すフローチャートである。
【図９】本開示の例示的な実施形態による、フレーム間のビットレート対量子化パラメータ（ＱＰ：Ｑｕａｎｔｉｚａｔｉｏｎ  Ｐａｒａｍｅｔｅｒ）曲線（Ｒ−Ｑ曲線）の変化を概略的に示す。
【発明を実施するための形態】
【０００８】
以下、本開示と一致する実施形態について図面を参照しながら説明するが、これらの図面は単に例示目的のための例にすぎず、本開示の範囲を限定することを意図するものではない。可能な限り、同じまたは類似の部分を指すために、図面全体を通して同じ参考番号が用いられる。
【０００９】
図１は、本開示と一致する例示的な送信端末１００を示す概略図である。送信端末１００は、画像を取り込み、かつ、複数の符号化パラメータ値に従って画像を符号化して、複数の符号化されたデータストリームとも呼ばれる複数の符号化されたデータストリームを生成するように構成される。画像は、写真などの静止画像、および／またはビデオなどの動画であってもよい。以下、「画像」という用語は、静止画像または動画のいずれかを指すために使用される。符号化パラメータとは、量子化パラメータ（ＱＰ）、符号化モード選択、パケットサイズなどのような、符号化プロセスに関連するパラメータを指す。複数の符号化されたデータストリームはそれぞれ、複数の符号化パラメータ値のうちの対応する１つを用いて生成され、複数のビットレート値のうちの１つに対応する。送信端末１００は、伝送チャネル上で伝送するための出力データストリームとして、複数の符号化されたデータストリームのうちの１つを選択するようにさらに構成される。
【００１０】
いくつかの実施形態では、送信端末１００は、無人飛行機（ＵＡＶ：Ｕｎｍａｎｎｅｄ  Ａｅｒｉａｌ  Ｖｅｈｉｃｌｅ）、無人自動車、移動ロボット、無人ボート、潜水艦、宇宙船、衛星などのような、移動体に組み込むことができる。他のいくつかの実施形態では、送信端末１００は、移動体によって運ばれるホスト型ペイロードであってもよい。ホスト型ペイロードは、移動物体から独立して動作するが、移動物体の動力源を共有することができる。
【００１１】
伝送チャネルは、インターネット接続、ケーブルテレビ接続、電話接続、ワイヤレス接続または画像の伝送をサポートすることが可能な別の接続など、任意の形態の通信接続を用いることができる。例えば、送信端末１００がＵＡＶに組み込まれている場合には、伝送チャネルはワイヤレスチャネルとすることが可能である。伝送チャネルは、ケーブル（例えば、ツイストペア線ケーブルおよび光ファイバケーブル）、空気、水、空間などの任意のタイプの物理的伝送媒体、または上記媒体の任意の組み合わせを用いることができる。例えば、送信端末１００がＵＡＶに組み込まれている場合には、符号化されたデータストリームの複数のチャネルのうちの１つまたは複数は、空気を媒体とすること可能である。送信端末１００が商業衛星によって運ばれるホスト型ペイロードである場合には、符号化されたデータストリームの複数のチャネルのうちの１つまたは複数は、空間および空気を媒体とすることが可能である。送信端末１００が潜水艦によって運ばれるホスト型ペイロードである場合には、符号化されたデータストリームの複数のチャネルのうちの１つまたは複数は、水を媒体とすることが可能である。
【００１２】
図１に示されるように、送信端末１００は、撮像デバイス１１０と、撮像デバイス１１０に結合されたマルチレート符号化装置１３０と、マルチレート符号化装置１３０に結合された送受信機１５０と、を含む。
【００１３】
撮像デバイス１１０は、イメージセンサと、レンズまたはレンズセットとを含み、画像を取り込むように構成される。イメージセンサは、例えば、電荷結合デバイス（ＣＣＤ：Ｃｈａｒｇｅ−Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサ、相補型金属酸化膜半導体（ＣＭＯＳ：Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサなどのような、光電子センサであってもよい。撮像デバイス１１０は、符号化するために取り込んだ画像をマルチレート符号化装置１３０に送信するようにさらに構成される。いくつかの実施形態では、撮像デバイス１１０は、取り込んだ画像を一時的にまたは永続的に格納するためのメモリを含むことができる。
【００１４】
マルチレート符号化装置１３０は、撮像デバイス１１０によって取り込まれた画像を受信し、かつ、複数の符号化パラメータ値に従って画像を符号化して、複数の符号化されたデータストリームを生成するように構成される。複数の符号化されたデータストリームはそれぞれ、複数の符号化パラメータ値のうちの対応する１つを用いて生成され、複数のビットレート値のうちの１つに対応する。図１に示されるように、マルチレート符号化装置１３０は、相互に結合されたマルチレートエンコーダ１３０１と、レートコントローラ１３０３と、レートセレクタ１３０５と、を含む。さらに、マルチレートエンコーダ１３０１は、撮像デバイス１１０に結合される。レートセレクタ１３０５は、送受信機１５０に結合される。
【００１５】
マルチレートエンコーダ１３０１は、ウィンドウズ（登録商標）・メディア・ビデオ（ＷＭＶ）規格、エスエムピーティーイー（ＳＭＰＴＥ：Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）の４２１−Ｍ規格、エムペグ（ＭＰＥＧ：Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）の規格、例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、もしくはＭＰＥＧ−４、Ｈ．２６ｘ規格、例えば、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、もしくはＨ．２６４、または別の規格などの、ビデオ圧縮規格とも呼ばれる、任意の適切なビデオ符号化規格に従って、撮像デバイス１１０によって取り込まれた画像を受信し、符号化することができる。
【００１６】
いくつかの実施形態では、ビデオ符号化規格は、デコーダによってサポートされるビデオ符号化規格、チャネル状態、画質要件などに従って選択することができる。例えば、ＭＰＥＧ規格を用いて符号化された画像は、適切なＭＰＥＧ規格をサポートするように適応された、対応するデコーダによって復号する必要がある。可逆的圧縮フォーマットを用いて高画質要件を達成してもよいし、非可逆的圧縮フォーマットを用いて限られた伝送チャネル帯域幅に適応させてもよい。
【００１７】
いくつかの実施形態では、マルチレートエンコーダ１３０１は、１つまたは複数の異なるコーデックアルゴリズムを実装することができる。コーデックアルゴリズムの選択は、符号化の複雑さ、符号化速度、符号化率、符号化効率などに基づくことができる。例えば、高速コーデックアルゴリズムをローエンドのハードウェア上で、リアルタイムで実行することができる。帯域幅が小さい伝送チャネルには、符号化率が高いアルゴリズムが望ましい場合がある。
【００１８】
いくつかの他の実施形態では、マルチレートエンコーダ１３０１はさらに、暗号化、エラー訂正符号化、フォーマット変換などのうちの少なくとも１つを実行することができる。例えば、撮像デバイス１１０によって取り込まれた画像が、機密情報を含んでいる場合には、機密性を保護するために、伝送または格納前に暗号化を実行することができる。
【００１９】
図２は、本開示と一致するマルチレート符号化装置１３０の一例を示す概略的なブロック図である。図２に示されるように、マルチレートエンコーダ１３０１は、複数の符号化されたデータストリームを生成するための複数のシングルレートエンコーダを含む。シングルレートエンコーダはそれぞれ、複数の符号化パラメータ値のうちの１つに従って、複数のビットレートのうちの対応する１つを有する複数の符号化されたデータストリームのうちの１つを生成することが可能である。いくつかの実施形態では、複数のシングルレートエンコーダは、１つまたは複数の共通の回路を共有する別々の部分、または部分的に別々の部分であってもよい。
【００２０】
図３は、本開示と一致する例示的なシングルレートエンコーダを示す概略的なブロック図である。図３に示されるように、シングルレートエンコーダは、図中で実線矢印によって接続される「順方向経路」と、破線矢印によって接続される「逆方向経路」と、を含む。「順方向経路」は、画像フレーム全体または画像フレームのブロック、例えば、マクロブロック（ＭＢ）に対して符号化プロセスを行うことを含み、「逆方向経路」は、再構成プロセスを実施することを含む。この再構成プロセスは、次の画像フレームまたは次の画像フレームの次のブロックを予測するためのコンテキスト３０１を生成する。画像フレームとは、完全な画像を指す。以下、「フレーム」、「画像」および「画像フレーム」という用語は、互換可能に用いられる。
【００２１】
画像フレームのブロックのサイズおよびタイプは、採用される符号化規格に従って決定することができる。例えば、１６×１６画素をカバーする固定サイズのＭＢは、Ｈ．２６４規格において採用される基本的なシンタックスおよびプロセス単位である。Ｈ．２６４はまた、動き補償予測のために、４×４画素のサイズまで、ＭＢをより小さいサブブロックに細分することも可能にする。ＭＢは、４つのやり方、すなわち、１６×１６、１６×８、８×１６、または８×８のうちの１つでサブブロックに分割することができる。８×８サブブロックは、さらに４つのやり方、すなわち、８×８、８×４、４×８、または４×４のうちの１つで分割することができる。したがって、Ｈ．２６４規格が用いられる場合、画像フレームのブロックのサイズは、１６×１６から４×４の範囲であってもよく、上述したように、２つの間には多くの選択肢がある。
【００２２】
いくつかの実施形態では、図３に示されるように、「順方向経路」は、予測プロセス３０２と、変換プロセス３０３と、量子化プロセス３０４と、エントロピー符号化プロセス３０５と、を含む。予測プロセス３０２では、予測モードに従って予測されたブロックを生成することができる。予測モードは、採用されるビデオ符号化規格によってサポートされる、複数のイントラ予測モードおよび／または複数のインター予測モードから選択することができる。Ｈ．２６４を一例にとれば、Ｈ．２６４は、輝度４×４および８×８ブロックのための９つのイントラ予測モードをサポートするが、これは、８つの指向性モードと、無指向性モードであるイントラ直接成分（ＤＣ）モード１つと、を含む。輝度１６×１６ブロックの場合、Ｈ．２６４は、４つのイントラ予測モード、すなわち、垂直モード、水平モード、ＤＣモード、および平面モードをサポートする。さらに、Ｈ．２６４は、フレーム間動き推定、異なるフレーム間動き推定モード（すなわち、整数、２分の１または４分の１のピクセル動き推定の使用）、複数の参照フレームにおいて用いられる可変ブロックサイズ（すなわち、１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４）のような、インター予測モードのあらゆる可能な組み合わせをサポートする。
【００２３】
複数のイントラ予測モードでは、予測されたブロックは、現在のフレームから以前に符号化されたブロックを用いて作成される。複数のインター予測モードでは、過去または未来のフレーム（隣接フレーム）から以前に符号化されたブロックは、コンテキスト３０１に格納され、参照としてインター予測のために使用される。いくつかの実施形態では、１つまたは複数の過去のフレーム、および／または１つまたは複数の未来のフレームからの、２つ以上の以前に符号化されたブロックの重み付けされた合計をインター予測のためにコンテキスト３０１に格納することができる。
【００２４】
いくつかの実施形態では、予測プロセス３０２は、予測モード選択プロセス（図示せず）もまた含むことができる。いくつかの実施形態では、予測モード選択プロセスは、ブロックにイントラ予測を適用するのか、またはインター予測を適用するのかを決定することを含むことができる。いくつかの実施形態では、ブロックの位置に従ってイントラ予測またはインター予測のどちらをブロックに適用するかを決定することができる。例えば、ブロックがビデオの第１の画像フレーム内、またはビデオのランダムアクセスポイントのうちの１つの画像フレーム内にある場合には、ブロックはイントラ符号化することができる。一方、ブロックがビデオの残りのフレーム、すなわち第１の画像フレーム以外の画像フレームのうちの１つ、または２つのランダムアクセスポイント間の画像フレーム内にある場合には、ブロックはインター符号化することができる。アクセスポイントとは、例えば、ビデオの符号化または伝送がそこから開始されるか、または、ビデオの符号化または伝送がそこから再開されるビデオのストリーム内の点を指すことができる。いくつかの他の実施形態では、イントラ予測またはインター予測のどちらをブロックに採用するかは、伝送エラー、チャネル状態の突然の変化などに従って決定することができる。例えば、ブロック生成時に伝送エラーが発生するか、またはチャネル状態の突然の変化が発生した場合、ブロックはイントラ予測することができる。
【００２５】
いくつかの実施形態では、予測モード選択プロセスは、イントラ予測を採用することが決定されると、そのブロックに対して、複数のイントラ予測モードからイントラ予測モードを選択し、インター予測を採用することが決定されると、複数のインター予測モードからインター予測モードを選択することをさらに含むことができる。ここでは、任意の適切な予測モード選択技法を用いることができる。例えば、Ｈ．２６４は、レート歪み最適化（ＲＤＯ：Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ  Ｏｐｔｉｍｉｚａｔｉｏｎ）技法を用いて、ブロックのレート歪み（ＲＤ：Ｒａｔｅ−Ｄｉｓｔｏｒｔｉｏｎ）コストが最小であるイントラ予測モードまたはインター予測モードを選択する。
【００２６】
予測されたブロックをブロックから減算して、残差ブロックを生成する。
【００２７】
変換プロセス３０３では、残差ブロックは、（空間スペクトル領域とも呼ばれる）空間周波数領域における表現に変換され、この領域では、残差ブロックは、複数の空間周波数領域成分、例えば、Ｘ方向およびｙ方向における空間単位当たりのサイクル数によって表すことができる。空間周波数領域表現における空間周波数領域成分に関連する係数は、変換係数とも呼ばれる。ここでは、離散コサイン変換（ＤＣＴ：Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ）、ウェーブレット変換などのような、任意の適切な変換法を用いることができる。Ｈ．２６４を一例にとれば、残差ブロックは、ＤＣＴから導出された４×４または８×８の整数変換を用いて変換される。
【００２８】
量子化プロセス３０４では、変換された係数を量子化ステップの有限集合と関連付けするための量子化ステップサイズ（Ｑｓｔｅｐ）で、変換係数を除算することにより、量子化された変換係数を得ることができる。いくつかの実施形態では、ＱＰを用いてＱｓｔｅｐを決定することができる。ＱＰの値とＱｓｔｅｐとの間の関係は、様々な符号化規格に従って線形である場合もあれば、指数関数的である場合もある。Ｈ．２６３を一例にとれば、ＱＰの値とＱｓｔｅｐとの間の関係は、Ｑｓｔｅｐ＝２×ＱＰである。Ｈ．２６４を別の例にとれば、ＱＰの値とＱｓｔｅｐとの間の関係は、Ｑｓｔｅｐ＝２ＱＰ／６である。
【００２９】
いくつかの実施形態では、予想ビットレートは、符号化パラメータの値、例えば、ＱＰの値を調整することによって達成することができる。ＱＰの値が小さい方が、より正確に残差ブロックの空間周波数スペクトルに近似させること、すなわち、より多くの空間的細部を保持することができるが、符号化されたデータストリームのビット数が大きくなり、ビットレートが高くなるという犠牲を払う。大きな値のＱＰは、残差ブロックの空間的細部の大部分をわずか数個の量子化された変換係数によって取り込むことができるように、残差ブロックの空間周波数スペクトルに大まかに近似する大きなステップサイズを表す。すなわち、ＱＰの値が増加するにつれて、ビットレートが低下するようにいくつかの空間的細部が集約されるが、品質の低下という代償を払う。例えば、Ｈ．２６４は、０、１、２、...、５１の合計５２種類のＱＰの値を取り得る。また、ＱＰを１単位増やすごとに、Ｑｓｔｅｐが１２％ずつ長くなり、ビットレートがおよそ１２％低減する。
【００３０】
エントロピー符号化プロセス３０５では、量子化された変換係数がエントロピー符号化される。いくつかの実施形態では、量子化された変換係数は、エントロピー符号化の前に並べ替えすることができる（図示せず）。エントロピー符号化は、シンボルをバイナリコード、例えば、データストリームまたはビットストリームに変換することができ、このバイナリコードは、容易に格納および伝送することができる。例えば、コンテキスト適応可変長符号化（ＣＡＶＬＣ：Ｃｏｎｔｅｘｔ−Ａｄａｐｔｉｖｅ  Ｖａｒｉａｂｌｅ−Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）をＨ．２６４規格で用いて、データストリームを生成する。エントロピー符号化の対象となるシンボルは、量子化された変換係数、デコーダが予測を再現できるようにするための情報（例えば、選択された予測モード、分割サイズなど）、データストリームの構造に関する情報、完全なシーケンスに関する情報（例えば、ＭＢヘッダ）などを含むが、これらに限定されない。
【００３１】
いくつかの実施形態では、図３に示されるように、「逆方向経路」は、逆量子化プロセス３０６と、逆変換プロセス３０７と、再構成プロセス３０８と、を含む。量子化された変換係数を逆量子化および逆変換して、再構成された残差ブロックを生成する。逆量子化は、再スケーリングプロセスとも呼ばれ、再スケーリングプロセスでは、量子化された変換係数にＱｓｔｅｐを乗算して、それぞれ再スケーリングされた係数を得る。再スケーリングされた係数を逆変換して、再構成された残差ブロックを生成する。ここでは、変換プロセス３０３で用いられる変換法に対応する逆変換法を用いることができる。例えば、変換プロセス３０３で整数ＤＣＴを用いているのであれば、逆変換プロセス３０７で逆整数ＤＣＴを用いることができる。再構成された残差ブロックは、再構成プロセス３０８において予測ブロックに追加されて、再構成されたブロックを作成し、この再構成されたブロックは次のブロックの予測のための参照としてコンテキスト３０１に格納される。
【００３２】
いくつかの実施形態では、シングルレートエンコーダは、コーデックであってもよい。すなわち、シングルレートエンコーダは、デコーダ（図示せず）を含んでもまたよい。デコーダは、概念的には逆に動作し、エントロピーデコーダ（図示せず）と、再構成プロセス内で定義された、図３の「逆方向経路」によって示される要素プロセッサと、を含む。その詳細な説明は本明細書では省略する。
【００３３】
図４は、本開示と一致するマルチレート符号化装置１３０の別の例を示す概略的なブロック図である。図４に示されるように、マルチレートエンコーダ１３０１は、複数のシングルレートエンコーダを含む。複数のシングルレートエンコーダは、共通の回路３１０を共有し、ビットレートが異なる複数の符号化されたデータストリームを生成する別々の処理回路３３０を有する。図３を再び参照すると、処理回路３３０は、変換プロセス３０３、量子化プロセス３０４、エントロピー符号化プロセス３０５、逆量子化プロセス３０６、逆変換プロセス３０７、および再構成プロセス３０８を実行することができる。共通の回路３１０は、予測プロセス３０２を実行することができる。予測プロセスの計算の複雑さおよび計算リソース消費量は、シングルレートエンコーダの計算全体の約７０％を占める場合もある。そのため、図４に示すような、上述した構造を有するマルチレートエンコーダ１３０１は、リソース消費量を低減することができる。
【００３４】
図２および図４を再び参照すると、レートコントローラ１３０３は、マルチレートエンコーダ１３０１の複数の符号化パラメータ値を調整して、レート制御モデルに従ってマルチレートエンコーダ１３０１によって生成された複数の符号化されたデータストリームの複数のビットレート値を制御するように構成される。レート制御モデルは、符号化パラメータとビットレートとの間の対応を特徴付けする。いくつかの実施形態では、レートコントローラ１３０３は、後述する例示的なレート制御方法のうちの１つなどの、本開示と一致するレート制御方法を実行することができる。
【００３５】
いくつかの実施形態では、図２および図４に示されるように、マルチレートエンコーダ１３０１が複数のシングルレートエンコーダを含む場合、レートコントローラ１３０３は、複数のシングルレートエンコーダに結合させることができるとともに、各シングルレートエンコーダの符号化パラメータ値を調整して、レート制御モデルに従って、各シングルレートエンコーダによって生成された符号化されたデータストリームのビットレート値を制御するように構成することができる。
【００３６】
レートセレクタ１３０５は、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、複数の符号化されたデータストリームのうちの１つを出力データストリームとして選択し、伝送するためにこの出力データストリームを送受信機１５０に送信するように構成される。いくつかの実施形態では、レートセレクタ１３０５は、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどを含むフィードバック情報を送受信機１５０から取得するように構成することもまた可能である。
【００３７】
いくつかの実施形態では、図２および図４に示されるように、マルチレートエンコーダ１３０１が複数のシングルレートエンコーダを含む場合、レートセレクタ１３０５は、複数のシングルレートエンコーダに結合させることができるとともに、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、対応するシングルレートエンコーダから、複数の符号化されたデータストリームのうちの１つを、出力データストリームとして選択するように構成することができる。
【００３８】
図１を再び参照すると、送受信機１５０は、レートセレクタ１３０５から出力データストリームを得て、伝送チャネルを通じてこの出力データストリームを伝送するように構成される。いくつかの実施形態では、送受信機１５０は、伝送チャネルを通じて受信端末から、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどを含むフィードバック情報を受信し、このフィードバック情報をレートセレクタ１３０５に送るようにさらに構成される。
【００３９】
送受信機１５０は、送信機および受信機を含むことができるとともに、双方向通信能力を有するように、すなわち、データの伝送および受信の両方が可能であるように構成することができる。いくつかの実施形態では、送信機および受信機は、共通の回路を共有することができる。いくつかの他の実施形態では、送信機および受信機は、単一のハウジングを共有する別々の部分であってもよい。送受信機１５０は、任意の適切な周波数帯、例えば、マイクロ波帯、ミリメートル波帯、センチメートル波帯、光波帯などで動作することができる。
【００４０】
本開示によれば、撮像デバイス１１０、マルチレート符号化装置１３０、および送受信機１５０は、別々のデバイスであってもよいし、これらのうちのいずれか２つ、またはこれらをすべて１つのデバイスに組み込むこともできる。いくつかの実施形態では、撮像デバイス１１０、マルチレート符号化装置１３０、および送受信機１５０は、別々のデバイスであり、有線手段または無線手段を介して相互に接続または結合することができる。例えば、撮像デバイス１１０は、カメラ、カムコーダ、またはカメラ機能を有するスマートフォンであってもよい。図５は、本開示と一致するマルチレート符号化装置１３０の別の例を示す概略的なブロック図である。図５に示されるように、マルチレート符号化装置１３０は、１つまたは複数のプロセッサ１３０−１と、１つまたは複数のメモリ１３０−２と、を含む。１つまたは複数のプロセッサ１３０−１は、マイクロプロセッサ、マイクロコントローラ、中央処理装置（ＣＰＵ）、ネットワークプロセッサ（ＮＰ）、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または別のプログラム可能論理デバイス、ディスクリートなゲートもしくはトランジスタ論理デバイス、ディスクリートハードウェアコンポーネントなどの任意の適切なハードウェアプロセッサを含むことができる。１つまたは複数のメモリ１３０−２は、コンピュータプログラムコードを格納する。コンピュータプログラムコードは、１つまたは複数のプロセッサによって実行されると、本開示と一致するレート制御方法、例えば、後述する例示的なレート制御方法のうちの１つ、および本開示と一致する方法の符号化機能を実行するように、１つまたは複数のプロセッサを制御する。１つまたは複数のメモリは、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ、フラッシュメモリ、揮発性メモリ、ハードディスク記憶装置、または光媒体などの非一時的なコンピュータ可読記憶媒体を含むことができる。送受信機１５０は、送信機および受信機を単一のパッケージにまとめた、独立したデバイスであってもよい。
【００４１】
いくつかの他の実施形態では、撮像デバイス１１０、マルチレート符号化装置１３０、および送受信機１５０が、同じ電子デバイスに組み込まれている。例えば、撮像デバイス１１０は、イメージセンサと、電子デバイスのレンズまたはレンズセットと、を含むことができる。マルチレート符号化装置１１３は、１つまたは複数のシングルチップエンコーダ、１つまたは複数のシングルチップコーデック、１つまたは複数の画像プロセッサ、１つまたは複数の画像処理エンジンなどにより実装することができ、それらは電子デバイスに組み込まれている。送受信機１５０は、電子デバイスに組み込まれた集積回路、チップ、またはチップセットにより実装することができる。例えば、電子デバイスは、内蔵カメラと、マルチレート符号化装置１３０および送受信機１５０を一体化したマザーボードと、を有するスマートフォンであってもよい。
【００４２】
いくつかの他の実施形態では、撮像デバイス１１０、マルチレート符号化装置１３０、および送受信機１５０のうちのいずれか２つが、同じ電子デバイスに組み込まれている。例えば、撮像デバイス１１０は、マルチレート符号化装置１３０および送受信機１５０を一体化したマザーボードを有する電子デバイスに結合されたカメラまたはカムコーダであってもよい。
【００４３】
本開示と一致する例示的なレート制御方法について、以下でより詳細に説明することにする。本開示と一致するレート制御方法は、本開示と一致するマルチレート符号化装置内で実行することができる。マルチレート符号化装置は、送信端末の一部として構成することができる。マルチレート符号化装置および送信端末は、例えば、上述したマルチレート符号化装置１３０および送信端末１００であってもよい。
【００４４】
上述したように、符号化されたデータストリームのビットレートは、画像フレームを符号化するために用いられる量子化パラメータなどの符号化パラメータを制御することによって、制御することができる。所望のビットレート（「予想ビットレート」とも呼ばれる）を有する符号化されたデータストリームを得るために、符号化パラメータとビットレートとの間の対応について記述するレート制御モデルに従って、符号化パラメータを選択することができる。レート制御モデルは、符号化プロセスの間の計算／符号化結果に基づいて、符号化プロセスの間に更新することもまた可能である。いくつかの実施形態では、レート制御モデルは、１つのフレームの符号化プロセスに基づいて更新することもできるし、複数のフレームの符号化プロセスに基づいて更新することもできる。
【００４５】
図６は、本開示と一致する、フレームごとにレート制御モデルを更新するプロセスを概略的に図示する。図６に示されるように、フレーム６１０は、（図６で文字ＣＰ１、ＣＰ２、...、およびＣＰＮを用いて表示された）複数の符号化パラメータ値を用いて符号化されて、（図６で文字Ｒ１、Ｒ２、...、およびＲＮを用いて表示された）複数のビットレート値を有する複数の符号化されたデータストリーム６３０を生成する。複数の符号化パラメータ値ＣＰｉはそれぞれ、複数のビットレート値Ｒｉ（ｉ＝１、２、...、Ｎ）のうちの１つに対応する。例えば、ＣＰ１は、Ｒ１に対応し、ＣＰ２は、Ｒ２に対応し、ＣＰＮは、ＲＮに対応する、等々である。複数の（ＣＰｉ，Ｒｉ）ペアが、複数のサンプル点６５０を形成する。複数のサンプル点は次に、例えば、フィッティング法に従って、レート制御モデル６７０のパラメータを決定／更新するためのレート制御モデル６７０に適用することができる。
【００４６】
図６に示されるプロセスによれば、レート制御モデルのパラメータは、フレームごとに更新または推定することができる。したがって、フレームごとにビットレートを予想ビットレートで安定させることが可能な、フレームレベルのレート制御を実現することができる。フレームレベルのレート制御により、大きな伝送ジッタが原因で、受信端末で再生が頻繁に停止するのを回避することができる。ビデオの全体的な知覚品質を高めることができるとともに、ユーザ体験を向上させることができる。
【００４７】
図７は、本開示と一致する例示的なレート制御方法７００のフローチャートである。レート制御方法７００に従って、上述したマルチレート符号化装置１３０のレートコントローラ１３０３のようなレートコントローラは、上述したマルチレート符号化装置１３０のマルチレートエンコーダ１３０１のようなマルチレートエンコーダの複数の符号化パラメータ値を制御することができ、これに従って、マルチレートエンコーダによって、対応する複数のビットレート値を有する複数の符号化されたデータストリームを生成することができる。上述したマルチレート符号化装置１３０のレートセレクタ１３０５のようなレートセレクタは、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、複数の符号化されたデータストリームのうちの１つを、出力データストリームとして選択することができる。
【００４８】
図７に示されるように、７０１において、第１の複数の符号化パラメータ値が得られる。第１の複数の符号化パラメータ値は、第１の入力フレームを符号化するための複数の符号化パラメータ値を含むことができる。いくつかの実施形態では、第１の入力フレームは、撮像デバイスによって取り込まれ、符号化するためにマルチレートエンコーダに送られる画像フレームのうちの第１のものであってもよい。撮像デバイスは、例えば、上述した撮像デバイス１１０であってもよい。マルチレートエンコーダは、例えば、上述したマルチレート符号化装置１３０のマルチレートエンコーダ１３０１であってもよい。いくつかの他の実施形態では、第１の入力フレームは、ビデオのストリーム内の画像フレームとすることができ、ビデオの符号化または伝送がそこから開始されるか、または、ビデオの符号化または伝送がそこから再開される。いくつかの他の実施形態では、第１の入力フレームは、撮像デバイスによって取り込まれた画像フレーム、またはビデオのストリーム内の任意の画像フレームのうちのいずれか１つであってもよい。
【００４９】
いくつかの実施形態では、第１の複数の符号化パラメータ値は、第１の入力フレームに対する予想ビットレート（「第１の予想ビットレート」とも呼ばれる）に少なくとも部分的に基づいて、レート制御モデルによって提供される。すなわち、第１の複数の符号化パラメータ値のうちの１つが、第１の入力フレームに対する予想ビットレートに基づいて、レート制御モデルによって提供されるが、これは、「第１の主符号化パラメータ値」とも呼ぶことができる。第１の複数の符号化パラメータ値のうちの残りのもの、すなわち、第１の複数の符号化パラメータ値のうちの第１の主符号化パラメータ値以外のものは、第１の補助符号化パラメータ値と呼ぶことができる。
【００５０】
ここでは、任意の適切なレート制御モデルを用いることができる。例えば、レート制御モデルは、ビットレートとＱＰとの間の関係を特徴付けする、量子化器領域（Ｑ領域）レート制御モデル（レート量子化（Ｒ−Ｑ）モデルとも呼ばれる）、ビットレートとパラメータρ（量子化された変換係数間のゼロのパーセンテージ）との間の関係を特徴付けする、ロー領域（ρ領域）レート制御モデル、または、ビットレートと、各フレームのＱＰに対応するラグランジュ乗数（Ｌａｇｒａｎｇｅ  ｍｕｌｔｉｐｌｉｅｒ）λとの間の関係を特徴付けする、ラムダ領域（λ領域）レート制御モデル（レート−ラムダ（Ｒ−λ）モデルとも呼ばれる）を含むことができる。
【００５１】
いくつかの実施形態では、レート制御モデルは、上述したマルチレート符号化装置１３０のレートコントローラ１３０３のようなレートコントローラに事前に格納される初期パラメータを有することができる。レート制御モデルに従って得られた第１の入力フレームに対する予想ビットレート値に対応する符号化パラメータ値は、第１の主符号化パラメータ値として設定することができる。Ｒ−Ｑモデルを一例にとれば、符号化パラメータはＱＰとすることができ、Ｒ−Ｑモデルは、２次多項式の指数関数として表現することができる。すなわち、
Ｒ（Ｑ）＝ｅｘｐ（ａ・Ｑ２＋ｂ・Ｑ＋ｃ）
式中、Ｒはビットレートの値を表し、ＱはＱＰの値を表す。また、ａ、ｂおよびｃは、パラメータを表す。第１の入力フレームに対する予想ビットレート値に対応する符号化パラメータ値は、初期のａ、ｂおよびｃの値を有する上記の２次多項式の指数関数から計算することができる。
【００５２】
いくつかの実施形態では、第１の入力フレームに対する予想ビットレートは、事前に設定されたビットレートであってもよい。いくつかの実施形態では、第１の入力フレームに対する予想ビットレートは、ユーザ入力から得ることができる。いくつかの他の実施形態では、第１の入力フレームに対する予想ビットレートは、例えば、チャネル容量、チャネル帯域幅、伝送レイテンシなどに基づいて決定することができる。
【００５３】
いくつかの実施形態では、第１の補助符号化パラメータ値は、符号化パラメータ間隔で第１の主符号化パラメータ値から徐々に逸脱させることができる。例えば、第１の補助符号化パラメータ値は、第１の主符号化パラメータ値から徐々にステップダウンまたはステップアップして、符号化パラメータ間隔で配置することができる。別の例として、第１の補助符号化パラメータ値のうちの１つまたはいくつかは、第１の主符号化パラメータ値から徐々に段階的に減少させることによって得ることができ、第１の補助符号化パラメータ値のうちの１つまたはいくつかは、第１の主符号化パラメータ値から徐々にステップアップさせることによって得ることができる。
【００５４】
いくつかの実施形態では、事前に設定される符号化パラメータ間隔の決定は、計算の複雑さと、レート制御モデルのパラメータの推定精度との間のトレードオフとすることができる。例えば、符号化パラメータの間隔が大きいと、符号化パラメータ値の数が少なくなることにより、計算上の負担を減らすことができるが、レート制御モデルのパラメータの推定エラーを増加させる可能性がある。一方、符号化パラメータの間隔が細かいと、ある一定の範囲にわたって稠密に分布した複数の符号化パラメータ値を生成することができ、それはレート制御モデルのパラメータの推定エラーを減らすことができるが、計算上の負担を増加させる可能性がある。
【００５５】
いくつかの実施形態では、符号化パラメータ間隔は、一定間隔とすることができる。すなわち、隣接する符号化パラメータ値のそれぞれのペア間の間隔が同じである。いくつかの他の実施形態では、符号化パラメータ間隔は、可変間隔とすることができる。すなわち、隣接する符号化パラメータ値のそれぞれのペア間の間隔は、ペアごとに異なっていてもよい。または、隣接する符号化パラメータ値のいくつかのペアの間では同じであるが、いくつかの他のペアの間では異なっていてもよい。符号化パラメータ間隔が可変である実施形態では、間隔は、例えば、符号化パラメータ対ビットレートの曲線の曲率に応じて変えることができる。例えば、大きな間隔は、曲率が比較的小さい曲線の一部に位置する第１の補助符号化パラメータ値のうちの１つまたはいくつかに対して用いることができる。また、細かい間隔は、曲率が比較的大きな曲線の一部に位置する第１の補助符号化パラメータ値のうちの１つまたはいくつかに対して用いることができる。
【００５６】
上述した実施形態では、第１の補助符号化パラメータ値は、最初に第１の主符号化パラメータ値を得て、次に、事前に設定された間隔に従って第１の補助符号化パラメータ値を計算することによって得られる。いくつかの他の実施形態では、第１の補助符号化パラメータ値は、第１の入力フレームに対して選択されたビットレートに基づいて得ることができる。第１の入力フレームに対して選択されたそのようなビットレートは、「第１の補助のビットレート値」とも呼ばれる。例えば、第１の補助のビットレート値は、ビットレート間隔で第１の入力フレームに対する予想ビットレートから徐々に逸脱させることができる。符号化パラメータ間隔と同様に、ビットレート間隔もまた一定または可変とすることができ、符号化パラメータ間隔を決定するのと同様のやり方で決定することができる。例えば、第１の補助のビットレート値は、第１の入力フレームに対する予想ビットレートから徐々にステップダウンおよび／またはステップアップさせ、ビットレート間隔で配置することによって得ることができる。第１の補助のビットレート値に対応する第１の補助符号化パラメータ値は、レート制御モデルに従って計算することができる。
【００５７】
７０３において、第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームを生成する。第１の複数の符号化されたデータストリームがそれぞれ、第１の複数の符号化パラメータ値のうちの対応する１つを用いて生成されるとともに、第１の複数のビットレート値のうちの対応する１つを有する。
【００５８】
いくつかの実施形態では、第１の入力フレームは、第１の複数の符号化パラメータ値を用いてイントラ符号化して、第１の複数の符号化されたデータストリームを生成することができる。いくつかの実施形態では、第１の複数の符号化パラメータ値のうちの１つを用いて第１の入力フレームを符号化することは、予測プロセスと、変換プロセスと、量子化プロセスと、エントロピー符号化プロセスと、を含むことができる。
【００５９】
いくつかの実施形態では、第１の複数の符号化パラメータ値を用いた第１の入力フレームの符号化プロセスは、別々のプロセスとすることができ、並行して実装することができる。例えば、図２に示されるように、マルチレート符号化装置１３０は、複数の別々のシングルレートエンコーダを含むことができ、各シングルレートエンコーダは、第１の複数の符号化パラメータ値のうちの１つを用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームのうちの対応する１つを生成するために用いることができる。
【００６０】
いくつかの他の実施形態では、第１の複数の符号化パラメータ値を用いた第１の入力フレームの符号化プロセスは、少なくとも１つの共通のプロセスを含むことができる。例えば、図３および図４に示されるように、第１の複数の符号化パラメータ値を用いた第１の入力フレームの符号化プロセスは、共通の回路３１０内で共通の予測プロセスを共有し、別々の処理回路３３０−１、３３０−２、...、３３０−Ｎにおいて別々の変換プロセス、別々の量子化プロセス、および別々のエントロピー符号化プロセスを用いて、第１の複数の符号化されたデータストリームを生成することができる。計算の複雑さおよび計算リソース消費量は、共通の予測回路３１０を共有することにより低減させることができる。
【００６１】
７０５において、レート制御モデルは、第１の複数の符号化されたデータストリームにそれぞれ対応する、第１の複数の符号化パラメータ値および第１の複数のビットレート値に基づいて更新することができる。すなわち、レート制御モデルの更新されたパラメータは、第１の複数の符号化されたデータストリームにそれぞれ対応する、第１の複数の符号化パラメータ値および第１の複数のビットレート値に基づいて得ることができる。したがって、更新されたレート制御モデルは、更新されたパラメータを用いて生成することができる。上述したＲ−Ｑモデルを一例にとれば、更新されたＲ−Ｑ曲線は、第１の複数の符号化されたデータストリームにそれぞれ対応する第１の複数の符号化パラメータ値および第１の複数のビットレート値に基づいて、上述した２次多項式の指数関数の最小２乗フィッティングによってモデル化することで、ａ、ｂおよびｃの更新された値を得ることができるようになっている。
【００６２】
上述した実施形態では、レート制御モデルは、１つの入力フレームを用いて１回更新され、次いで、次の入力フレームを符号化するために用いられる。いくつかのシナリオでは、１回の更新は、符号化パラメータとビットレートとの間の実際の対応関係を厳密にモデル化する更新されたレート制御モデルを作成するのに十分ではない場合がある。更新されたレート制御モデルと、符号化パラメータとビットレートとの間の実際の対応関係との間の近似の程度は、第１の実際のビットレート値と予想ビットレート値との間の差異によって決定することができる。第１の実際のビットレート値とは、第１の主符号化パラメータ値を用いて第１の入力フレームを符号化することによって得られたビットレート値を指す。したがって、いくつかの他の実施形態では、レート制御モデルは、第１の実際のビットレート値と予想ビットレート値との間の差異が、事前に設定された範囲内に、例えば、事前設定値よりも小さくなるまで、第１の入力フレームを用いて反復的に更新することができる。
【００６３】
７０７において、第１の複数の符号化されたデータストリームのうちの１つが、第１の入力フレームに対する出力データストリームとして選択される。第１の複数の符号化されたデータストリームのうちの１つの選択は、例えば、第１の入力フレーム、チャネル容量、チャネル帯域幅、伝送レイテンシなどに対する予想ビットレート値に基づくことができる。
【００６４】
いくつかの実施形態では、第１の入力フレームに対する出力データストリームは、第１の入力フレームに対する予想ビットレート値に従って、第１の複数の符号化されたストリームから選択することができる。例えば、第１の主符号化パラメータ値（「第１の主符号化されたデータストリーム」とも呼ばれる）を用いて、第１の入力フレームを符号化することによって得られた第１の複数の符号化されたストリームのうちの１つは、出力データストリームとして直接選択することができる。いくつかのシナリオでは、第１の主符号化されたデータストリームのビットレートは、第１の入力フレームに対する予想ビットレートとは、比較的大きな値の差で異なっている場合がある。これらのシナリオでは、第１の入力フレームに対する予想ビットレートは、第１の入力フレームを符号化するための新たな符号化パラメータ値を得るために、再び更新されたレート制御モデルにかけられ、得られた符号化されたデータストリームは、第１の入力フレームに対する出力データストリームとして出力することができる。
【００６５】
別の例として、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、第１の複数のビットレート値のうちの、第１の入力フレームに対する予想ビットレート値に最も近いものに相当するビットレートを有する１つであってもよい。
【００６６】
別の例として、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、第１の複数のビットレート値のうちの、第１の入力フレームに対する予想ビットレート値以下で、それに最も近いものに相当するビットレートを有する１つであってもよい。
【００６７】
別の例として、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、第１の複数のビットレート値のうちの、事前に設定された範囲内で第１の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する１つであってもよい。
【００６８】
いくつかの実施形態では、第１の入力フレームに対する出力データストリームは、現在のチャネル帯域幅に従って、第１の複数の符号化されたストリームから選択することができる。例えば、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの、現在のチャネル帯域幅に合っている１つであってもよい。そのため、出力データストリームは、時間とともに変化するチャネル帯域幅にリアルタイムで適応させることができる。すなわち、チャネル帯域幅が時間とともに変化すると、出力データストリームは、リアルタイムでチャネル帯域幅に合わせることができる。
【００６９】
いくつかの他の実施形態では、第１の入力フレームに対する出力データストリームは、現在のチャネル帯域幅および目標レイテンシに従って選択することができる。目標レイテンシは、レイテンシの制御目標とも呼ばれる場合があり、予想される伝送レイテンシを表す。
【００７０】
例えば、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、現在のチャネル帯域幅の下での伝送レイテンシが目標レイテンシに最も近い１つであってもよい。
【００７１】
別の例として、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、現在のチャネル帯域幅の下での伝送レイテンシが目標レイテンシ以下で、それに最も近い１つであってもよい。
【００７２】
さらなる例として、第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたストリームのうちの１つであって、第１の複数の符号化されたストリームの間でビットレートが最も高く、現在のチャネル帯域幅の下での目標レイテンシと伝送レイテンシとの差異が、事前に設定された範囲内にある１つであってもよい。ビットレートが高くなると、概して符号化の品質も相応して高くなるので、この手法により、目標レイテンシが満たされると、符号化の品質が最も高い符号化されたデータを確実に選択することができる。
【００７３】
いくつかの実施形態では、第１の入力フレームに対する出力データストリームは、チャネル帯域幅、目標レイテンシ、および符号化の品質に従って選択することができる。すなわち、第１の入力フレームに対する出力データストリームの選択は、チャネル帯域幅、目標レイテンシ、および符号化の品質の要件の組み合わせに基づくことができる。
【００７４】
いくつかの実施形態では、費用関数は、チャネル帯域幅、目標レイテンシ、符号化の品質、および目標ビットレートに従って決定することができる。第１の入力フレームに対する出力データストリームは、第１の複数の符号化されたデータのうちの、費用関数の値が最も小さい１つであってもよい。
【００７５】
例えば、費用関数は、以下の通りであってもよい。すなわち、
コスト＝Ａ×｜ビットレート／帯域幅−目標レイテンシ｜＋Ｂ×符号化の品質
であり、式中、コストは、費用を表し、ＡおよびＢは、重みを表す。
【００７６】
様々な用途のシナリオの要件に従って、ＡおよびＢの値を調整して、符号化の品質の要件、またはレイテンシ制御の要件に向けて偏らせることができる。例えば、Ｃｏｓｔの計算時にＡおよびＢの値を調整して、符号化の品質の要件に対する重み付け、またはレイテンシ制御の要件に対する重み付けを大きくすることができる。
【００７７】
いくつかの実施形態では、第１の入力フレームに対する出力データストリームから得られた、再構成されたフレームは、第２の入力フレームのコンテキストとして用いることができる。すなわち、第１の入力フレームに対する出力データストリームから得られた、再構成されたフレームは、第２の入力フレームの予測のための参照として用いることができる。
【００７８】
７０９において、第２の入力フレームが、更新されたレート制御モデルに基づいて符号化される。例えば、第２の入力フレームを符号化するための第２の複数の符号化パラメータ値は、更新されたレート制御モデルに基づいて決定することができる。また、第２の入力フレームは、第２の複数の符号化パラメータ値を用いて符号化することができる。
【００７９】
いくつかの実施形態では、第２の入力フレームを符号化するための第２の複数の符号化パラメータ値は、更新されたレート制御モデルおよび第２の入力フレームに対する予想ビットレート（「第２の予想ビットレート」とも呼ばれる）に基づいて、決定することができる。例えば、第２の複数の符号化パラメータ値のうちの１つは、更新されたレート制御モデル、および第２の入力フレームに対する予想ビットレートに基づいて決定することができるが、このパラメータ値は、第２の主符号化パラメータ値と呼ぶことができる。第２の複数の符号化パラメータ値のうちの残りのもの、すなわち、第２の複数の符号化パラメータ値のうちの第２の主符号化パラメータ値以外の符号化パラメータ値は、第２の補助符号化パラメータ値と呼ぶことができる。上述したＲ−Ｑモデルを一例にとれば、パラメータａ、ｂおよびｃが更新された２次多項式の指数関数から計算された第２の入力フレームに対する予想ビットレートに対応する符号化パラメータ値は、第２の主符号化パラメータ値として設定することができる。
【００８０】
いくつかの実施形態では、第２の主符号化パラメータ値および第１の主符号化パラメータ値は、同じ符号化チャネルに対するものである。同じ符号化チャネルとは、例えば、図２に示されるようなマルチレートエンコーダに含まれる同じシングルレートエンコーダ、または図４に示されるようなマルチレートエンコーダに含まれる同じ処理回路を指す。
【００８１】
いくつかの実施形態では、第１の補助符号化パラメータ値と同様に、第２の補助符号化パラメータ値は、符号化パラメータ間隔で第２の主符号化パラメータ値から徐々に逸脱させることができる。例えば、第２の補助符号化パラメータ値は、第２の主符号化パラメータ値から徐々にステップアップおよび／またはステップダウンさせることによって得ることができ、符号化パラメータ間隔で配置することができる。第２の補助符号化パラメータ値に対する符号化パラメータ間隔は、一定間隔または可変間隔とすることができる。第２の補助符号化パラメータ値に対する符号化パラメータ間隔は、第１の補助符号化パラメータ値に対する符号化パラメータ間隔を決定するためのやり方と同様のやり方で決定することができる。したがって、その詳細な説明は省略する。
【００８２】
いくつかの他の実施形態では、第２の補助符号化パラメータ値は、第２の入力画像に対して選択されたビットレートに基づいて得ることができ、このパラメータ値は「第２の補助のビットレート値」とも呼ばれる。第１の補助のビットレート値と同様に、第２の補助のビットレート値は、ビットレート間隔で第２の入力フレームに対する予想ビットレートから徐々に逸脱させることができる。第２の補助のビットレート値に対応する第２の補助符号化パラメータ値は、レート制御モデルに基づいて計算することができる。例えば、第２の補助のビットレート値は、第２の入力画像に対する予想ビットレートから徐々に段階的に増大および／または段階的に減少させることによって、得ることができる。第２の補助のビットレート値に対するビットレート間隔は、一定間隔または可変間隔とすることができる。第２の補助のビットレート値に対するビットレート間隔は、第１の補助のビットレート値に対するビットレート間隔を決定するためのやり方と同様のやり方で決定することができる。したがって、その詳細な説明は省略する。
【００８３】
いくつかの実施形態では、第２の入力フレームは、第２の複数の符号化パラメータ値を用いてインター符号化および／またはイントラ符号化して、第２の複数の符号化されたデータストリームを生成することができる。いくつかの実施形態では、第２の複数の符号化パラメータ値のうちの１つを用いて第２の入力フレームを符号化することは、予測プロセスと、変換プロセスと、量子化プロセスと、エントロピー符号化プロセスと、を含むことができる。
【００８４】
第２の複数の符号化されたデータストリームのうちの１つは、第２の入力フレームに対応する出力データストリームとして選択することができる。第２の入力フレームに対応する出力データストリームの選択は、第１の入力フレームに対応する出力データストリームの選択に類似したものとすることができる。したがって、その詳細な説明は省略する。
【００８５】
いくつかの実施形態では、レート制御モデルは、画像フレーム間で変化してもまたよい。すなわち、第１の入力フレームに基づいて得られた更新されたレート制御モデルは、第２の入力フレーム内の符号化パラメータとビットレートとの間の対応関係を正確に反映していない場合がある。これらの実施形態では、レート制御モデルは、第２の複数の符号化されたデータストリームにそれぞれ対応する、第２の複数の符号化パラメータ値および第２の複数のビットレート値に基づいてさらに更新することができる。これを行うために、第２の実際のビットレートと第２の入力フレームに対する予想ビットレート値との間の差異が、事前に設定された範囲内にあるまで、第２の主符号化パラメータ値を反復的に調整することができる。第２の実際のビットレート値とは、第２の主符号化パラメータ値を用いて第２の入力フレームを符号化することによって得られたビットレート値を指す。
【００８６】
図８は、本開示と一致する、レート制御モデルを反復的に更新するプロセスを示すフローチャートである。図８に示されるように、上述した手法（７０５）に従って得られた、第１の複数の符号化されたデータストリームにそれぞれ対応する、第１の複数の符号化パラメータ値および第１の複数のビットレート値［文字（ＣＰ１ｉ、Ｒ１ｉ）として表示される］に基づいて、レート制御モデルを最初に更新することができる。第２の複数の符号化パラメータ値（ＣＰ２ｉとして表示される）は、上述したような更新されたレート制御モデルおよび第２の入力フレームに対する予想ビットレートに基づいて決定することができる。上述したように、更新されたレート制御モデルを用いて第２の入力フレームに対する予想ビットレートから計算された符号化パラメータ値が、第２の主符号化パラメータ値である。ＣＰ２ｉを用いて第２のフレームを符号化して、第２の複数のデータストリームを生成することができる。この第２の複数のデータストリームは、複数の実際のビットレート（Ｒ２ｉとして表示される）を有し、第２の主符号化パラメータ値を用いて第２のフレームを符号化することによって生成された第２の実際のビットレート値を有するデータストリームを含む。第２の実際のビットレート値と第２の入力フレームに対する予想ビットレート値との間の差異が事前に設定された範囲外にある場合には、レート制御モデルは、（ＣＰ２ｉ，Ｒ２ｉ）ペアに従って更新される。第２の主符号化パラメータ値は、さらに更新されたレート制御モデルから計算された、第２の入力フレームに対する予想ビットレート値に対応する符号化パラメータに更新することができる。一方、第２の実際のビットレート値と、第２の入力フレームに対する予想ビットレート値との間の上記の差異が、事前に設定された範囲内にある場合には、反復的な調整プロセスを停止することができ、図８に示されるように、第２の複数のデータストリームのうちの１つが出力データストリームとして出力される。
【００８７】
図９は、フレーム間のビットレート対ＱＰ曲線（Ｒ−Ｑ曲線またはＲ−Ｑモデル、すなわちレート制御モデルの一例）の変化を概略的に示す。図９では、曲線１は、第１の入力フレームに基づいて取得／更新されたＲ−Ｑモデル、すなわち、第１の複数の符号化されたデータストリームにそれぞれ対応する第１の複数の符号化パラメータ値および第１の複数のビットレート値をフィッティングすることによって作成された曲線を表す。図９に示されるように、例えば、第１の入力フレームおよび第２の入力フレームの複雑さが異なるとき、Ｒ−Ｑモデルは、曲線１から曲線２に移動し得る。曲線２は、第２の入力フレームに対応する実際のＲ−Ｑ曲線であり、これはまだ知られていない。図９に示されるように、第２の入力フレームに対する予想ビットレートＲｅが所望される場合、曲線１から、対応する第２の主符号化パラメータ値ＱＰｅが得られる。しかしながら、第２の入力フレームを符号化するためにＱＰｅを用いると、得られる符号化されたデータストリームの実際のビットレートは、曲線２に従ってＲｃとなり、それは、第２の入力フレームに対する予想ビットレートＲｅとは異なる。例えば、図８に関連して上述した方法に従って、曲線１を反復的に更新して、曲線２、または曲線２に近い曲線を得ることができる。その後、得られた曲線２、または得られた曲線２に近い曲線に従って、第２の入力フレームに対する予想ビットレートＲｅが得られる第２の主符号化パラメータ値ＱＰｅ１を得ることができる。
【００８８】
いくつかの実施形態では、（７０１において）第１の複数の符号化パラメータ値を得ることは、実際のビットレートと第１の入力フレームに対する予想ビットレート値との間の差異が、事前に設定された範囲内にあるまで、第１の主符号化パラメータ値を反復的に調整することをさらに含むことができる。実際のビットレート値とは、第１の主符号化パラメータ値を用いて第１の入力フレームを符号化することによって得られたビットレート値を指す。
【００８９】
本開示の他の実施形態は、本明細書の考察および本明細書に開示された実施形態の実施から、当業者に明らかになるであろう。詳細な説明および例は単に例示的なものにすぎず、本開示の範囲を限定しないものであるとして考慮され、本発明の真の範囲および趣旨は、以下の特許請求の範囲によって示されることが意図される。
［項目１］
レート制御方法であって、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化して、第１の複数の符号化されたデータストリームであって、それぞれが上記第１の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値に対応するビットレートを有する第１の複数の符号化されたデータストリームを生成するステップと、
上記第１の複数の符号化されたデータストリームにそれぞれ対応する上記第１の複数の符号化パラメータ値および上記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
上記更新されたレート制御モデルに基づいて第２の入力フレームを符号化するステップと、含む方法。
［項目２］
上記第１の複数の符号化パラメータ値は、上記第１の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、上記レート制御モデルによって提供される項目１に記載の方法。
［項目３］
上記第１の複数の符号化パラメータ値のうちの１つが、上記第１の入力フレームに対する上記予想ビットレートに基づいて、上記レート制御モデルによって提供され、上記第１の複数の符号化パラメータ値のうちの他のものが、一定間隔で上記第１の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱される項目２に記載の方法。
［項目４］
上記第１の複数の符号化パラメータ値のうちの１つが、上記第１の入力フレームに対する上記予想ビットレートに基づいて、上記レート制御モデルによって提供され、上記第１の複数の符号化パラメータ値のうちの他のものが、可変間隔で上記第１の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱される項目２に記載の方法。
［項目５］
上記第１の複数の符号化パラメータ値は、
上記レート制御モデルに従って上記第１の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記レート制御モデルを更新することは、上記第１の入力フレームに対する上記予想ビットレート値と、上記主符号化パラメータ値を用いて上記第１の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、上記第１の入力フレームを用いて上記レート制御モデルを反復的に更新することを含む項目２に記載の方法。
［項目６］
上記第１の入力フレームを符号化することは、複数の別々の符号化プロセスを上記第１の入力フレーム上で実行して、上記第１の複数の符号化されたデータストリームを生成することを含み、上記複数の別々の符号化プロセスがそれぞれ、上記第１の複数の符号化パラメータ値のうちの１つを用いて上記第１の入力フレームを符号化して、上記第１の複数の符号化されたデータストリームのうちの対応する１つを生成することを含む項目１に記載の方法。
［項目７］
上記第１の入力フレームを符号化することは、上記第１の入力フレーム上で少なくとも１つの共通のプロセスを含む上記複数の別々の符号化プロセスを実行することを含む項目６に記載の方法。
［項目８］
上記第２の入力フレームを符号化することは、上記更新されたレート制御モデルおよび上記第２の入力フレームに対する予想ビットレートに基づいて上記第２の入力フレームに対する符号化パラメータ値を決定することを含む項目１に記載の方法。
［項目９］
上記更新されたレート制御モデルに少なくとも部分的に基づいて、上記第２の入力フレームを符号化するための第２の複数の符号化パラメータ値を決定し、
上記第２の複数の符号化パラメータ値を用いて上記第２の入力フレームを符号化することをさらに含む項目１に記載の方法。
［項目１０］
上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値を決定することは、
上記更新されたレート制御モデルに従って、上記第２の入力フレームに対する予想ビットレートに基づいて、上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値のうちの１つを決定し、
上記第２の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第２の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させること
を含む項目９に記載の方法。
［項目１１］
上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値を決定することは、
上記更新されたレート制御モデルに従って、上記第２の入力フレームに対する予想ビットレートに基づいて、上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値のうちの１つを決定し、
上記第２の複数の符号化パラメータ値のうちの他のものを可変間隔で上記第２の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させること
を含む項目９に記載の方法。
［項目１２］
上記第１の入力フレームに対する上記予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも１つに基づいて、第１の複数の符号化されたデータストリームから、符号化されたデータストリームを、上記第１の入力フレームに対する出力データストリームとして選択することをさらに含む、項目１に記載の方法。
［項目１３］
上記第１の複数の符号化パラメータ値は、上記レート制御モデルに従って上記第１の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記主符号化パラメータ値を用いて、上記第１の入力フレームを符号化することによって得られた上記第１の複数の符号化されたデータストリームのうちの１つを上記出力データストリームとして選択することを含む項目１２に記載の方法。
［項目１４］
上記符号化されたデータストリームを上記出力データストリームとして選択することが、上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、上記第１の入力フレームに対する上記予想ビットレート値に最も近いものに相当するビットレートを有する１つを、上記出力データストリームとして選択することを含む、項目１２に記載の方法。
［項目１５］
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、上記第１の入力フレームに対する上記予想ビットレート値以下でありかつそれに最も近いものに相当するビットレートを有する１つを、上記出力データストリームとして選択することを含む項目１４に記載の方法。
［項目１６］
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、事前に設定された範囲内で上記第１の入力フレームに対する上記予想ビットレート値との差異を有するものに相当するビットレートを有する１つを、上記出力データストリームとして選択することを含む項目１５に記載の方法。
［項目１７］
データ符号化におけるレート制御装置であって、
１つまたは複数のプロセッサと、
上記１つまたは複数のプロセッサに結合された１つまたは複数のメモリであって、
上記１つまたは複数のプロセッサによって実行されると、上記１つまたは複数のプロセッサに、
第１の複数の符号化パラメータ値を用いて第１の入力フレームを符号化させて、第１の複数の符号化されたデータストリームであって、それぞれが上記第１の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第１の複数の符号化されたデータストリームであり、かつ、それぞれが第１の複数のビットレート値に対応するビットレートを有する第１の複数の符号化されたデータストリームを生成させ、
上記第１の複数の符号化されたデータストリームにそれぞれ対応する上記第１の複数の符号化パラメータ値および上記第１の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
上記更新されたレート制御モデルに基づいて第２の入力フレームを符号化させる命令を格納するものと
を備える装置。
［項目１８］
上記命令が、上記１つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第１の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、上記第１の複数の符号化パラメータ値を提供させる項目１７に記載の装置。
［項目１９］
上記命令が、上記１つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第１の入力フレームに対する上記予想ビットレートに基づいて、上記第１の複数の符号化パラメータ値のうちの１つを提供させ、上記第１の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第１の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させる項目１８に記載の装置。
［項目２０］
上記命令が、上記１つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第１の入力フレームに対する上記予想ビットレートに基づいて、上記第１の複数の符号化パラメータ値のうちの１つを提供させ、上記第１の複数の符号化パラメータ値のうちの上記他のものを可変間隔で上記第１の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させる項目１８に記載の装置。
［項目２１］
上記第１の複数の符号化パラメータ値が、上記レート制御モデルに従って上記第１の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記第１の入力フレームを用いて、上記第１の入力フレームに対する上記予想ビットレート値と、主符号化パラメータ値を用いて上記第１の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、上記レート制御モデルを反復的に更新させる項目１８に記載の装置。
［項目２２］
上記命令が、上記１つまたは複数のプロセッサにさらに、
複数の別々の符号化プロセスであって、それぞれが、上記第１の複数の符号化パラメータ値のうちの１つを用いて上記第１の入力フレームを符号化して、上記第１の複数の符号化されたデータストリームのうちの対応する１つを生成することを含む複数の別々の符号化プロセスを上記第１の入力フレーム上で実行させて、上記第１の複数の符号化されたデータストリームを生成させる項目１７に記載の装置。
［項目２３］
上記命令が、上記１つまたは複数のプロセッサにさらに、
少なくとも１つの共通のプロセスを含む上記複数の別々の符号化プロセスを上記第１の入力フレーム上で実行させる項目２２に記載の装置。
［項目２４］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルおよび上記第２の入力フレームに対する予想ビットレートに基づいて、上記第２の入力フレームに対する符号化パラメータ値を決定させる項目１７に記載の装置。
［項目２５］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに少なくとも部分的に基づいて、上記第２の入力フレームを符号化するための第２の複数の符号化パラメータ値を決定させ、
上記第２の複数の符号化パラメータ値を用いて、上記第２の入力フレームを符号化させる項目１７に記載の装置。
［項目２６］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに従って、上記第２の入力フレームに対する予想ビットレートに基づいて、上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値のうちの１つを決定させ、
上記第２の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第２の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させる項目２５に記載の装置。
［項目２７］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに従って、上記第２の入力フレームに対する予想ビットレートに基づいて、上記第２の入力フレームに対する上記第２の複数の符号化パラメータ値のうちの１つを決定させ、
上記第２の複数の符号化パラメータ値のうちの他のものを可変間隔で上記第２の複数の符号化パラメータ値のうちの上記１つから徐々に逸脱させる項目２５に記載の装置。
［項目２８］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記第１の入力フレームに対する上記予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも１つに基づいて、上記第１の複数の符号化されたデータストリームから、符号化されたデータストリームを、上記第１の入力フレームに対する出力データストリームとして選択させる項目１７に記載の装置。
［項目２９］
上記第１の複数の符号化パラメータ値が、上記レート制御モデルに従って上記第１の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記命令が、上記１つまたは複数のプロセッサにさらに、上記第１の入力フレームに対する上記予想ビットレート値に対応する符号化パラメータ値を用いて、上記第１の入力フレームを符号化することによって得られた上記第１の複数の符号化されたデータストリームのうちの上記１つを、上記出力データストリームとして選択させる項目２８に記載の装置。
［項目３０］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、上記第１の入力フレームに対する上記予想ビットレート値に最も近いものに相当するビットレートを有する１つを、上記出力データストリームとして選択させる項目２８に記載の装置。
［項目３１］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、上記第１の入力フレームに対する上記予想ビットレート値以下で、それに最も近いものに相当するビットレートを有する１つを、上記出力データストリームとして選択させる項目３０に記載の装置。
［項目３２］
上記命令が、上記１つまたは複数のプロセッサにさらに、
上記第１の複数の符号化されたデータストリームのうちの１つであって、上記第１の複数のビットレート値のうちの、事前に設定された範囲内で上記第１の入力フレームに対する上記予想ビットレート値との差異を有するものに相当するビットレートを有する１つを、上記出力データストリームとして選択させる項目３１に記載の装置。
【図１】
0006862633.tif 000002
【図２】
0006862633.tif 000003
【図３】
0006862633.tif 000004
【図４】
0006862633.tif 000005
【図５】
0006862633.tif 000006
【図６】
0006862633.tif 000007
【図７】
0006862633.tif 000008
【図８】
0006862633.tif 000009
【図９】
0006862633.tif 000010