特許第6862633号(P6862633)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスゼット ディージェイアイ テクノロジー カンパニー リミテッドの特許一覧

<>
  • 特許6862633-レート制御方法及びレート制御装置 図000002
  • 特許6862633-レート制御方法及びレート制御装置 図000003
  • 特許6862633-レート制御方法及びレート制御装置 図000004
  • 特許6862633-レート制御方法及びレート制御装置 図000005
  • 特許6862633-レート制御方法及びレート制御装置 図000006
  • 特許6862633-レート制御方法及びレート制御装置 図000007
  • 特許6862633-レート制御方法及びレート制御装置 図000008
  • 特許6862633-レート制御方法及びレート制御装置 図000009
  • 特許6862633-レート制御方法及びレート制御装置 図000010
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6862633
(24)【登録日】2021年4月5日
(45)【発行日】2021年4月21日
(54)【発明の名称】レート制御方法及びレート制御装置
(51)【国際特許分類】
   H04N 19/115 20140101AFI20210412BHJP
   H04N 19/124 20140101ALI20210412BHJP
   H04N 19/172 20140101ALI20210412BHJP
   H04N 19/146 20140101ALI20210412BHJP
   H04N 19/149 20140101ALI20210412BHJP
   H04N 19/192 20140101ALI20210412BHJP
   H04N 19/196 20140101ALI20210412BHJP
【FI】
   H04N19/115
   H04N19/124
   H04N19/172
   H04N19/146
   H04N19/149
   H04N19/192
   H04N19/196
【請求項の数】15
【全頁数】29
(21)【出願番号】特願2019-537365(P2019-537365)
(86)(22)【出願日】2018年1月12日
(65)【公表番号】特表2020-505830(P2020-505830A)
(43)【公表日】2020年2月20日
(86)【国際出願番号】CN2018072444
(87)【国際公開番号】WO2018133734
(87)【国際公開日】20180726
【審査請求日】2019年7月25日
(31)【優先権主張番号】PCT/CN2017/071491
(32)【優先日】2017年1月18日
(33)【優先権主張国】CN
(73)【特許権者】
【識別番号】513068816
【氏名又は名称】エスゼット ディージェイアイ テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】SZ DJI TECHNOLOGY CO.,LTD
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】チュウ、レイ
【審査官】 鉢呂 健
(56)【参考文献】
【文献】 特表2001−524270(JP,A)
【文献】 特開平07−264582(JP,A)
【文献】 特開2010−252083(JP,A)
【文献】 特開平06−292180(JP,A)
【文献】 特開平07−212757(JP,A)
【文献】 特開2008−283560(JP,A)
【文献】 米国特許出願公開第2016/0227219(US,A1)
【文献】 米国特許出願公開第2010/0061448(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00−19/98
(57)【特許請求の範囲】
【請求項1】
レート制御方法であって、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームであって、それぞれが前記第1の複数の符号化パラメータ値符号化パラメータを用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値ビットレートを有する第1の複数の符号化されたデータストリームを生成するステップと、
前記第1の複数の符号化されたデータストリームにそれぞれ対応する前記第1の複数の符号化パラメータ値および前記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
前記更新されたレート制御モデル及び第2の入力フレームに対する予想ビットレートに基づいて第2の複数の符号化パラメータ値を決定し、前記第2の複数の符号化パラメータ値を用いて前記第2の入力フレームを符号化するステップと、含み、
前記第1の複数の符号化パラメータ値は、前記第1の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、前記レート制御モデルによって提供され、
前記第1の複数の符号化パラメータ値は、
前記レート制御モデルに従って前記第1の入力フレームに対する予想ビットレート値から計算された主符号化パラメータ値を含み、
前記レート制御モデルを更新することは、前記第1の入力フレームに対する前記予想ビットレート値と、前記主符号化パラメータ値を用いて前記第1の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、前記第1の入力フレームを用いて前記レート制御モデルのパラメータを反復的に更新することを含む、方法。
【請求項2】
前記第1の複数の符号化パラメータ値のうちの1つが、前記第1の入力フレームに対する前記予想ビットレートに基づいて、前記レート制御モデルによって提供され、前記第1の複数の符号化パラメータ値のうちの他のものが、一定の符号化パラメータ間隔で前記第1の複数の符号化パラメータ値のうちの前記1つから徐々に逸脱される請求項に記載の方法。
【請求項3】
前記第1の複数の符号化パラメータ値のうちの1つが、前記第1の入力フレームに対する前記予想ビットレートに基づいて、前記レート制御モデルによって提供され、前記第1の複数の符号化パラメータ値のうちの他のものが、可変の符号化パラメータ間隔で前記第1の複数の符号化パラメータ値のうちの前記1つから徐々に逸脱される請求項に記載の方法。
【請求項4】
前記第1の入力フレームを符号化することは、複数の別々の符号化プロセスを前記第1の入力フレーム上で実行して、前記第1の複数の符号化されたデータストリームを生成することを含み、前記複数の別々の符号化プロセスがそれぞれ、前記第1の複数の符号化パラメータ値のうちの1つを用いて前記第1の入力フレームを符号化して、前記第1の複数の符号化されたデータストリームのうちの対応する1つを生成することを含む請求項1から請求項の何れか1項に記載の方法。
【請求項5】
前記第1の入力フレームを符号化することは、前記第1の入力フレーム上で少なくとも1つの共通のプロセスを含む前記複数の別々の符号化プロセスを実行することを含む請求項に記載の方法。
【請求項6】
前記第2の入力フレームに対する前記第2の複数の符号化パラメータ値を決定することは、
前記更新されたレート制御モデルに従って、前記第2の入力フレームに対する予想ビットレートに基づいて、前記第2の入力フレームに対する前記第2の複数の符号化パラメータ値のうちの1つを決定し、
前記第2の複数の符号化パラメータ値のうちの他のものを一定の符号化パラメータ間隔で前記第2の複数の符号化パラメータ値のうちの前記1つから徐々に逸脱させること
を含む請求項1から5の何れか1つに記載の方法。
【請求項7】
前記第2の入力フレームに対する前記第2の複数の符号化パラメータ値を決定することは、
前記更新されたレート制御モデルに従って、前記第2の入力フレームに対する予想ビットレートに基づいて、前記第2の入力フレームに対する前記第2の複数の符号化パラメータ値のうちの1つを決定し、
前記第2の複数の符号化パラメータ値のうちの他のものを可変の符号化パラメータ間隔で前記第2の複数の符号化パラメータ値のうちの前記1つから徐々に逸脱させること
を含む請求項1から5の何れか1つに記載の方法。
【請求項8】
前記第1の入力フレームに対する予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも1つに基づいて、第1の複数の符号化されたデータストリームから、符号化されたデータストリームを、前記第1の入力フレームに対する出力データストリームとして選択することをさらに含み、
前記出力データストリームは、
前記第1の複数の符号化されたデータストリームの1つであって、前記第1の複数のビットレート値のうちの、前記予想ビットレート値に最も近いものに相当するビットレートを有する1つ、
前記第1の複数の符号化されたデータストリームの1つであって、前記第1の複数のビットレート値のうちの、前記予想ビットレート値以下で、前記予想ビットレート値に最も近いものに相当するビットレートを有する1つ、
前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、事前に設定された範囲内で前記予想ビットレート値との差異を有するものに相当するビットレートを有する1つ、
前記第1の複数の符号化されたデータストリームのうちの、前記チャネル帯域幅に合っている1つ、
前記第1の複数の符号化されたデータストリームのうちの1つであって、前記チャネル帯域幅の下での前記伝送レイテンシが目標レイテンシに最も近い1つ、
前記第1の複数の符号化されたデータストリームのうちの1つであって、前記チャネル帯域幅の下での前記伝送レイテンシが目標レイテンシ以下で、前記目標レイテンシに最も近い1つ、または、
前記第1の複数の符号化されたデータストリームのうちの、前記チャネル帯域幅、目標レイテンシ、前記符号化の品質、及び目標ビットレートに従って決定される費用関数の値が最も小さい1つである、
請求項1から請求項の何れか1項に記載の方法。
【請求項9】
第1の複数の符号化されたデータストリームから、符号化されたデータストリームを、前記第1の入力フレームに対する出力データストリームとして選択することをさらに含み、
前記第1の複数の符号化パラメータ値は、前記レート制御モデルに従って前記第1の入力フレームに対する前記予想ビットレート値から計算された主符号化パラメータ値を含み、
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第1の入力フレームを符号化することによって得られた前記第1の複数の符号化されたデータストリームのうちの前記主符号化パラメータ値を用いて得られた1つのデータストリームを前記出力データストリームとして選択することを含む請求項1から7の何れか1項に記載の方法。
【請求項10】
前記符号化されたデータストリームを前記出力データストリームとして選択すること、前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、前記第1の入力フレームに対する前記予想ビットレート値に最も近いものに相当するビットレートを有する1つを、前記出力データストリームとして選択することを含む、請求項に記載の方法。
【請求項11】
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、前記第1の入力フレームに対する前記予想ビットレート値以下でありかつそれに最も近いものに相当するビットレートを有する1つを、前記出力データストリームとして選択することを含む請求項に記載の方法。
【請求項12】
前記符号化されたデータストリームを前記出力データストリームとして選択することは、前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、事前に設定された範囲内で前記第1の入力フレームに対する前記予想ビットレート値との差異を有するものに相当するビットレートを有する1つを、前記出力データストリームとして選択することを含む請求項に記載の方法。
【請求項13】
レート制御方法であって、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームであって、それぞれが前記第1の複数の符号化パラメータ値の符号化パラメータを用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値のビットレートを有する第1の複数の符号化されたデータストリームを生成するステップと、
前記第1の複数の符号化されたデータストリームにそれぞれ対応する前記第1の複数の符号化パラメータ値および前記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
前記更新されたレート制御モデル及び第2の入力フレームに対する予想ビットレートに基づいて第2の複数の符号化パラメータ値を決定し、前記第2の複数の符号化パラメータ値を用いて前記第2の入力フレームを符号化するステップと、
前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、事前に設定された範囲内で前記第1の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する1つを、前記第1の入力フレームに対する出力データストリームとして選択するステップと
を含む、方法。
【請求項14】
データ符号化におけるレート制御装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された1つまたは複数のメモリであって、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化させて、第1の複数の符号化されたデータストリームであって、それぞれが前記第1の複数の符号化パラメータ値符号化パラメータを用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値ビットレートを有する第1の複数の符号化されたデータストリームを生成させ、
前記第1の複数の符号化されたデータストリームにそれぞれ対応する前記第1の複数の符号化パラメータ値および前記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
前記更新されたレート制御モデル及び第2の入力フレームに対する予想ビットレートに基づいて第2の複数の符号化パラメータ値を決定し、前記第2の複数の符号化パラメータ値を用いて前記第2の入力フレームを符号化させる命令を格納するものと
を備え
前記第1の複数の符号化パラメータ値は、前記第1の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、前記レート制御モデルによって提供され、
前記第1の複数の符号化パラメータ値は、
前記レート制御モデルに従って前記第1の入力フレームに対する予想ビットレート値から計算された主符号化パラメータ値を含み、
前記レート制御モデルを更新させることは、前記第1の入力フレームに対する前記予想ビットレート値と、前記主符号化パラメータ値を用いて前記第1の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、前記第1の入力フレームを用いて前記レート制御モデルのパラメータを反復的に更新させることを含む、装置。
【請求項15】
データ符号化におけるレート制御装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに結合された1つまたは複数のメモリであって、
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化させて、第1の複数の符号化されたデータストリームであって、それぞれが前記第1の複数の符号化パラメータ値の符号化パラメータを用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値のビットレートを有する第1の複数の符号化されたデータストリームを生成させ、
前記第1の複数の符号化されたデータストリームにそれぞれ対応する前記第1の複数の符号化パラメータ値および前記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
前記更新されたレート制御モデル及び第2の入力フレームに対する予想ビットレートに基づいて第2の複数の符号化パラメータ値を決定し、前記第2の複数の符号化パラメータ値を用いて前記第2の入力フレームを符号化させ、
前記第1の複数の符号化されたデータストリームのうちの1つであって、前記第1の複数のビットレート値のうちの、事前に設定された範囲内で前記第1の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する1つを、前記第1の入力フレームに対する出力データストリームとして選択させる命令を格納するものとを備える装置。
【発明の詳細な説明】
【技術分野】
【0001】
著作権表示
この特許文書の開示の一部は、著作権保護の対象となる資料を含んでいる。著作権所有者は、この特許文書または特許開示の何者による複写複製に対して、特許庁の特許ファイルまたはレコードに表示される通りであれば異議を唱えないが、それ以外の場合、一切の著作権を留保する。
【0002】
本開示は、データ符号化に関し、より詳細には、レート制御の方法および装置、マルチレート符号化装置、ならびに送信端末に関する。
【背景技術】
【0003】
ローレイテンシのビデオ/画像伝送システムにおける1つの課題は、チャネル帯域幅などのチャネルの状態が、特にワイヤレスチャンネルに関しては、時間とともに変化することである。受信端末と送信端末との間の物理的距離、相対位置、および障害物/遮蔽物、直接の電磁干渉などのような、ワイヤレスチャネルに影響を及ぼす要因が多数存在する。さらに、伝送のデータソースもまた時間とともに変化する。ソースの時間的変化およびチャネルの時間的変化は互いに独立しており、予測が困難であるため、ソース符号化をチャネル帯域幅にリアルタイムに適応させることが困難になっている。例えば、チャネルが安定しているとき、カメラの突然の動きまたはカメラの視界内の対象物の大きな動きは、符号化されるデータストリームのサイズの突然の変化につながる。データストリームのサイズが2倍になれば、伝送レイテンシ/遅延はそれに応じて2倍になる。ソースが安定しているとき、データストリームのサイズは一定したままであるが、突然のチャネルの変化は、やはり伝送ジッタ(時間とともに変化する伝送レイテンシ)を引き起こす可能性がある。チャネル帯域幅が半分だけ減少すれば、伝送レイテンシはそれに応じて2倍分増加する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
信頼できないチャネル上で円滑な伝送を確実に行うために、符号化レートをチャネル帯域幅にリアルタイムで適応させるレート制御技術が、ワイヤレスビデオ伝送用途において広く用いられてきた。従来のレート制御技術は、フレームの群(例えば、複数のフレーム)の全体的な平均ビットレートを制御するだけである。2つの要素、例えば、符号化パラメータ値および対応するビットレート値を含む1つのサンプル点のみがフレームごとに生成されるので、レート制御モデルのパラメータを推定するために所与の期間にわたって複数のフレームからいくつかのサンプル点を生成することを必要とする。そのため、従来のレート制御技術は、所与の期間(例えば、複数のフレーム)にわたって平均ビットレートを予想ビットレートで安定化させて、複数のフレームまたはある期間にわたって平均化される全体的なジッタが確実に小さくなるようにする。しかしながら、ローレイテンシのビデオ伝送には、再生が受信端末で頻繁に停止する原因となる大きな伝送ジッタを回避するために、ある範囲内でフレームごとにビットレートを安定化させることを必要とする。
【課題を解決するための手段】
【0005】
本開示によれば、レート制御方法が提供される。この方法は、第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して第1の複数の符号化されたデータストリームを生成し、前記第1の複数の符号化されたデータストリームのそれぞれが第1の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成され、かつ、前記第1の複数の符号化されたデータストリームのそれぞれが第1の複数のビットレート値に対応するビットレートを有し、第1の複数の符号化されたデータストリームにそれぞれ対応する第1の複数の符号化パラメータ値および第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新し、そして更新されたレート制御モデルに基づいて第2の入力フレームを符号化することを含む。
【0006】
また本開示によれば、レート制御装置が提供される。このレート制御装置は、命令を格納する1つまたは複数のメモリと、この1つまたは複数のメモリに結合された1つまたは複数のプロセッサと、を含む。この1つまたは複数のプロセッサは、第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームであって、それぞれが第1の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値に対応するビットレートを有する第1の複数の符号化されたデータストリームを生成し、第1の複数の符号化されたデータストリームにそれぞれ対応する第1の複数の符号化パラメータ値および第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新し、更新されたレート制御モデルに基づいて第2の入力フレームを符号化するように構成される。
【図面の簡単な説明】
【0007】
図1】本開示の例示的な実施形態による送信端末を示す概略図である。
図2】本開示の例示的な一実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
図3】本開示の例示的な実施形態によるシングルレートエンコーダを示す概略的なブロック図である。
図4】本開示の別の例示的な実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
図5】本開示の別の例示的な実施形態によるマルチレート符号化装置を示す概略的なブロック図である。
図6】本開示の例示的な実施形態による、フレームごとにレート制御モデルを更新するプロセスを図示する概略図である。
図7】本開示の例示的な実施形態による、レート制御方法のフローチャートである。
図8】本開示の例示的な実施形態による、レート制御モデルを反復的に更新するプロセスを示すフローチャートである。
図9】本開示の例示的な実施形態による、フレーム間のビットレート対量子化パラメータ(QP:Quantization Parameter)曲線(R−Q曲線)の変化を概略的に示す。
【発明を実施するための形態】
【0008】
以下、本開示と一致する実施形態について図面を参照しながら説明するが、これらの図面は単に例示目的のための例にすぎず、本開示の範囲を限定することを意図するものではない。可能な限り、同じまたは類似の部分を指すために、図面全体を通して同じ参考番号が用いられる。
【0009】
図1は、本開示と一致する例示的な送信端末100を示す概略図である。送信端末100は、画像を取り込み、かつ、複数の符号化パラメータ値に従って画像を符号化して、複数の符号化されたデータストリームとも呼ばれる複数の符号化されたデータストリームを生成するように構成される。画像は、写真などの静止画像、および/またはビデオなどの動画であってもよい。以下、「画像」という用語は、静止画像または動画のいずれかを指すために使用される。符号化パラメータとは、量子化パラメータ(QP)、符号化モード選択、パケットサイズなどのような、符号化プロセスに関連するパラメータを指す。複数の符号化されたデータストリームはそれぞれ、複数の符号化パラメータ値のうちの対応する1つを用いて生成され、複数のビットレート値のうちの1つに対応する。送信端末100は、伝送チャネル上で伝送するための出力データストリームとして、複数の符号化されたデータストリームのうちの1つを選択するようにさらに構成される。
【0010】
いくつかの実施形態では、送信端末100は、無人飛行機(UAV:Unmanned Aerial Vehicle)、無人自動車、移動ロボット、無人ボート、潜水艦、宇宙船、衛星などのような、移動体に組み込むことができる。他のいくつかの実施形態では、送信端末100は、移動体によって運ばれるホスト型ペイロードであってもよい。ホスト型ペイロードは、移動物体から独立して動作するが、移動物体の動力源を共有することができる。
【0011】
伝送チャネルは、インターネット接続、ケーブルテレビ接続、電話接続、ワイヤレス接続または画像の伝送をサポートすることが可能な別の接続など、任意の形態の通信接続を用いることができる。例えば、送信端末100がUAVに組み込まれている場合には、伝送チャネルはワイヤレスチャネルとすることが可能である。伝送チャネルは、ケーブル(例えば、ツイストペア線ケーブルおよび光ファイバケーブル)、空気、水、空間などの任意のタイプの物理的伝送媒体、または上記媒体の任意の組み合わせを用いることができる。例えば、送信端末100がUAVに組み込まれている場合には、符号化されたデータストリームの複数のチャネルのうちの1つまたは複数は、空気を媒体とすること可能である。送信端末100が商業衛星によって運ばれるホスト型ペイロードである場合には、符号化されたデータストリームの複数のチャネルのうちの1つまたは複数は、空間および空気を媒体とすることが可能である。送信端末100が潜水艦によって運ばれるホスト型ペイロードである場合には、符号化されたデータストリームの複数のチャネルのうちの1つまたは複数は、水を媒体とすることが可能である。
【0012】
図1に示されるように、送信端末100は、撮像デバイス110と、撮像デバイス110に結合されたマルチレート符号化装置130と、マルチレート符号化装置130に結合された送受信機150と、を含む。
【0013】
撮像デバイス110は、イメージセンサと、レンズまたはレンズセットとを含み、画像を取り込むように構成される。イメージセンサは、例えば、電荷結合デバイス(CCD:Charge−Coupled Device)センサ、相補型金属酸化膜半導体(CMOS:Complementary Metal−Oxide−Semiconductor)センサなどのような、光電子センサであってもよい。撮像デバイス110は、符号化するために取り込んだ画像をマルチレート符号化装置130に送信するようにさらに構成される。いくつかの実施形態では、撮像デバイス110は、取り込んだ画像を一時的にまたは永続的に格納するためのメモリを含むことができる。
【0014】
マルチレート符号化装置130は、撮像デバイス110によって取り込まれた画像を受信し、かつ、複数の符号化パラメータ値に従って画像を符号化して、複数の符号化されたデータストリームを生成するように構成される。複数の符号化されたデータストリームはそれぞれ、複数の符号化パラメータ値のうちの対応する1つを用いて生成され、複数のビットレート値のうちの1つに対応する。図1に示されるように、マルチレート符号化装置130は、相互に結合されたマルチレートエンコーダ1301と、レートコントローラ1303と、レートセレクタ1305と、を含む。さらに、マルチレートエンコーダ1301は、撮像デバイス110に結合される。レートセレクタ1305は、送受信機150に結合される。
【0015】
マルチレートエンコーダ1301は、ウィンドウズ(登録商標)・メディア・ビデオ(WMV)規格、エスエムピーティーイー(SMPTE:Society of Motion Picture and Television Engineers)の421−M規格、エムペグ(MPEG:Moving Picture Experts Group)の規格、例えば、MPEG−1、MPEG−2、もしくはMPEG−4、H.26x規格、例えば、H.261、H.262、H.263、もしくはH.264、または別の規格などの、ビデオ圧縮規格とも呼ばれる、任意の適切なビデオ符号化規格に従って、撮像デバイス110によって取り込まれた画像を受信し、符号化することができる。
【0016】
いくつかの実施形態では、ビデオ符号化規格は、デコーダによってサポートされるビデオ符号化規格、チャネル状態、画質要件などに従って選択することができる。例えば、MPEG規格を用いて符号化された画像は、適切なMPEG規格をサポートするように適応された、対応するデコーダによって復号する必要がある。可逆的圧縮フォーマットを用いて高画質要件を達成してもよいし、非可逆的圧縮フォーマットを用いて限られた伝送チャネル帯域幅に適応させてもよい。
【0017】
いくつかの実施形態では、マルチレートエンコーダ1301は、1つまたは複数の異なるコーデックアルゴリズムを実装することができる。コーデックアルゴリズムの選択は、符号化の複雑さ、符号化速度、符号化率、符号化効率などに基づくことができる。例えば、高速コーデックアルゴリズムをローエンドのハードウェア上で、リアルタイムで実行することができる。帯域幅が小さい伝送チャネルには、符号化率が高いアルゴリズムが望ましい場合がある。
【0018】
いくつかの他の実施形態では、マルチレートエンコーダ1301はさらに、暗号化、エラー訂正符号化、フォーマット変換などのうちの少なくとも1つを実行することができる。例えば、撮像デバイス110によって取り込まれた画像が、機密情報を含んでいる場合には、機密性を保護するために、伝送または格納前に暗号化を実行することができる。
【0019】
図2は、本開示と一致するマルチレート符号化装置130の一例を示す概略的なブロック図である。図2に示されるように、マルチレートエンコーダ1301は、複数の符号化されたデータストリームを生成するための複数のシングルレートエンコーダを含む。シングルレートエンコーダはそれぞれ、複数の符号化パラメータ値のうちの1つに従って、複数のビットレートのうちの対応する1つを有する複数の符号化されたデータストリームのうちの1つを生成することが可能である。いくつかの実施形態では、複数のシングルレートエンコーダは、1つまたは複数の共通の回路を共有する別々の部分、または部分的に別々の部分であってもよい。
【0020】
図3は、本開示と一致する例示的なシングルレートエンコーダを示す概略的なブロック図である。図3に示されるように、シングルレートエンコーダは、図中で実線矢印によって接続される「順方向経路」と、破線矢印によって接続される「逆方向経路」と、を含む。「順方向経路」は、画像フレーム全体または画像フレームのブロック、例えば、マクロブロック(MB)に対して符号化プロセスを行うことを含み、「逆方向経路」は、再構成プロセスを実施することを含む。この再構成プロセスは、次の画像フレームまたは次の画像フレームの次のブロックを予測するためのコンテキスト301を生成する。画像フレームとは、完全な画像を指す。以下、「フレーム」、「画像」および「画像フレーム」という用語は、互換可能に用いられる。
【0021】
画像フレームのブロックのサイズおよびタイプは、採用される符号化規格に従って決定することができる。例えば、16×16画素をカバーする固定サイズのMBは、H.264規格において採用される基本的なシンタックスおよびプロセス単位である。H.264はまた、動き補償予測のために、4×4画素のサイズまで、MBをより小さいサブブロックに細分することも可能にする。MBは、4つのやり方、すなわち、16×16、16×8、8×16、または8×8のうちの1つでサブブロックに分割することができる。8×8サブブロックは、さらに4つのやり方、すなわち、8×8、8×4、4×8、または4×4のうちの1つで分割することができる。したがって、H.264規格が用いられる場合、画像フレームのブロックのサイズは、16×16から4×4の範囲であってもよく、上述したように、2つの間には多くの選択肢がある。
【0022】
いくつかの実施形態では、図3に示されるように、「順方向経路」は、予測プロセス302と、変換プロセス303と、量子化プロセス304と、エントロピー符号化プロセス305と、を含む。予測プロセス302では、予測モードに従って予測されたブロックを生成することができる。予測モードは、採用されるビデオ符号化規格によってサポートされる、複数のイントラ予測モードおよび/または複数のインター予測モードから選択することができる。H.264を一例にとれば、H.264は、輝度4×4および8×8ブロックのための9つのイントラ予測モードをサポートするが、これは、8つの指向性モードと、無指向性モードであるイントラ直接成分(DC)モード1つと、を含む。輝度16×16ブロックの場合、H.264は、4つのイントラ予測モード、すなわち、垂直モード、水平モード、DCモード、および平面モードをサポートする。さらに、H.264は、フレーム間動き推定、異なるフレーム間動き推定モード(すなわち、整数、2分の1または4分の1のピクセル動き推定の使用)、複数の参照フレームにおいて用いられる可変ブロックサイズ(すなわち、16×16、16×8、8×16、8×8、8×4、4×8、4×4)のような、インター予測モードのあらゆる可能な組み合わせをサポートする。
【0023】
複数のイントラ予測モードでは、予測されたブロックは、現在のフレームから以前に符号化されたブロックを用いて作成される。複数のインター予測モードでは、過去または未来のフレーム(隣接フレーム)から以前に符号化されたブロックは、コンテキスト301に格納され、参照としてインター予測のために使用される。いくつかの実施形態では、1つまたは複数の過去のフレーム、および/または1つまたは複数の未来のフレームからの、2つ以上の以前に符号化されたブロックの重み付けされた合計をインター予測のためにコンテキスト301に格納することができる。
【0024】
いくつかの実施形態では、予測プロセス302は、予測モード選択プロセス(図示せず)もまた含むことができる。いくつかの実施形態では、予測モード選択プロセスは、ブロックにイントラ予測を適用するのか、またはインター予測を適用するのかを決定することを含むことができる。いくつかの実施形態では、ブロックの位置に従ってイントラ予測またはインター予測のどちらをブロックに適用するかを決定することができる。例えば、ブロックがビデオの第1の画像フレーム内、またはビデオのランダムアクセスポイントのうちの1つの画像フレーム内にある場合には、ブロックはイントラ符号化することができる。一方、ブロックがビデオの残りのフレーム、すなわち第1の画像フレーム以外の画像フレームのうちの1つ、または2つのランダムアクセスポイント間の画像フレーム内にある場合には、ブロックはインター符号化することができる。アクセスポイントとは、例えば、ビデオの符号化または伝送がそこから開始されるか、または、ビデオの符号化または伝送がそこから再開されるビデオのストリーム内の点を指すことができる。いくつかの他の実施形態では、イントラ予測またはインター予測のどちらをブロックに採用するかは、伝送エラー、チャネル状態の突然の変化などに従って決定することができる。例えば、ブロック生成時に伝送エラーが発生するか、またはチャネル状態の突然の変化が発生した場合、ブロックはイントラ予測することができる。
【0025】
いくつかの実施形態では、予測モード選択プロセスは、イントラ予測を採用することが決定されると、そのブロックに対して、複数のイントラ予測モードからイントラ予測モードを選択し、インター予測を採用することが決定されると、複数のインター予測モードからインター予測モードを選択することをさらに含むことができる。ここでは、任意の適切な予測モード選択技法を用いることができる。例えば、H.264は、レート歪み最適化(RDO:Rate−Distortion Optimization)技法を用いて、ブロックのレート歪み(RD:Rate−Distortion)コストが最小であるイントラ予測モードまたはインター予測モードを選択する。
【0026】
予測されたブロックをブロックから減算して、残差ブロックを生成する。
【0027】
変換プロセス303では、残差ブロックは、(空間スペクトル領域とも呼ばれる)空間周波数領域における表現に変換され、この領域では、残差ブロックは、複数の空間周波数領域成分、例えば、X方向およびy方向における空間単位当たりのサイクル数によって表すことができる。空間周波数領域表現における空間周波数領域成分に関連する係数は、変換係数とも呼ばれる。ここでは、離散コサイン変換(DCT:Discrete Cosine Transform)、ウェーブレット変換などのような、任意の適切な変換法を用いることができる。H.264を一例にとれば、残差ブロックは、DCTから導出された4×4または8×8の整数変換を用いて変換される。
【0028】
量子化プロセス304では、変換された係数を量子化ステップの有限集合と関連付けするための量子化ステップサイズ(Qstep)で、変換係数を除算することにより、量子化された変換係数を得ることができる。いくつかの実施形態では、QPを用いてQstepを決定することができる。QPの値とQstepとの間の関係は、様々な符号化規格に従って線形である場合もあれば、指数関数的である場合もある。H.263を一例にとれば、QPの値とQstepとの間の関係は、Qstep=2×QPである。H.264を別の例にとれば、QPの値とQstepとの間の関係は、Qstep=2QP/6である。
【0029】
いくつかの実施形態では、予想ビットレートは、符号化パラメータの値、例えば、QPの値を調整することによって達成することができる。QPの値が小さい方が、より正確に残差ブロックの空間周波数スペクトルに近似させること、すなわち、より多くの空間的細部を保持することができるが、符号化されたデータストリームのビット数が大きくなり、ビットレートが高くなるという犠牲を払う。大きな値のQPは、残差ブロックの空間的細部の大部分をわずか数個の量子化された変換係数によって取り込むことができるように、残差ブロックの空間周波数スペクトルに大まかに近似する大きなステップサイズを表す。すなわち、QPの値が増加するにつれて、ビットレートが低下するようにいくつかの空間的細部が集約されるが、品質の低下という代償を払う。例えば、H.264は、0、1、2、...、51の合計52種類のQPの値を取り得る。また、QPを1単位増やすごとに、Qstepが12%ずつ長くなり、ビットレートがおよそ12%低減する。
【0030】
エントロピー符号化プロセス305では、量子化された変換係数がエントロピー符号化される。いくつかの実施形態では、量子化された変換係数は、エントロピー符号化の前に並べ替えすることができる(図示せず)。エントロピー符号化は、シンボルをバイナリコード、例えば、データストリームまたはビットストリームに変換することができ、このバイナリコードは、容易に格納および伝送することができる。例えば、コンテキスト適応可変長符号化(CAVLC:Context−Adaptive Variable−Length Coding)をH.264規格で用いて、データストリームを生成する。エントロピー符号化の対象となるシンボルは、量子化された変換係数、デコーダが予測を再現できるようにするための情報(例えば、選択された予測モード、分割サイズなど)、データストリームの構造に関する情報、完全なシーケンスに関する情報(例えば、MBヘッダ)などを含むが、これらに限定されない。
【0031】
いくつかの実施形態では、図3に示されるように、「逆方向経路」は、逆量子化プロセス306と、逆変換プロセス307と、再構成プロセス308と、を含む。量子化された変換係数を逆量子化および逆変換して、再構成された残差ブロックを生成する。逆量子化は、再スケーリングプロセスとも呼ばれ、再スケーリングプロセスでは、量子化された変換係数にQstepを乗算して、それぞれ再スケーリングされた係数を得る。再スケーリングされた係数を逆変換して、再構成された残差ブロックを生成する。ここでは、変換プロセス303で用いられる変換法に対応する逆変換法を用いることができる。例えば、変換プロセス303で整数DCTを用いているのであれば、逆変換プロセス307で逆整数DCTを用いることができる。再構成された残差ブロックは、再構成プロセス308において予測ブロックに追加されて、再構成されたブロックを作成し、この再構成されたブロックは次のブロックの予測のための参照としてコンテキスト301に格納される。
【0032】
いくつかの実施形態では、シングルレートエンコーダは、コーデックであってもよい。すなわち、シングルレートエンコーダは、デコーダ(図示せず)を含んでもまたよい。デコーダは、概念的には逆に動作し、エントロピーデコーダ(図示せず)と、再構成プロセス内で定義された、図3の「逆方向経路」によって示される要素プロセッサと、を含む。その詳細な説明は本明細書では省略する。
【0033】
図4は、本開示と一致するマルチレート符号化装置130の別の例を示す概略的なブロック図である。図4に示されるように、マルチレートエンコーダ1301は、複数のシングルレートエンコーダを含む。複数のシングルレートエンコーダは、共通の回路310を共有し、ビットレートが異なる複数の符号化されたデータストリームを生成する別々の処理回路330を有する。図3を再び参照すると、処理回路330は、変換プロセス303、量子化プロセス304、エントロピー符号化プロセス305、逆量子化プロセス306、逆変換プロセス307、および再構成プロセス308を実行することができる。共通の回路310は、予測プロセス302を実行することができる。予測プロセスの計算の複雑さおよび計算リソース消費量は、シングルレートエンコーダの計算全体の約70%を占める場合もある。そのため、図4に示すような、上述した構造を有するマルチレートエンコーダ1301は、リソース消費量を低減することができる。
【0034】
図2および図4を再び参照すると、レートコントローラ1303は、マルチレートエンコーダ1301の複数の符号化パラメータ値を調整して、レート制御モデルに従ってマルチレートエンコーダ1301によって生成された複数の符号化されたデータストリームの複数のビットレート値を制御するように構成される。レート制御モデルは、符号化パラメータとビットレートとの間の対応を特徴付けする。いくつかの実施形態では、レートコントローラ1303は、後述する例示的なレート制御方法のうちの1つなどの、本開示と一致するレート制御方法を実行することができる。
【0035】
いくつかの実施形態では、図2および図4に示されるように、マルチレートエンコーダ1301が複数のシングルレートエンコーダを含む場合、レートコントローラ1303は、複数のシングルレートエンコーダに結合させることができるとともに、各シングルレートエンコーダの符号化パラメータ値を調整して、レート制御モデルに従って、各シングルレートエンコーダによって生成された符号化されたデータストリームのビットレート値を制御するように構成することができる。
【0036】
レートセレクタ1305は、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、複数の符号化されたデータストリームのうちの1つを出力データストリームとして選択し、伝送するためにこの出力データストリームを送受信機150に送信するように構成される。いくつかの実施形態では、レートセレクタ1305は、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどを含むフィードバック情報を送受信機150から取得するように構成することもまた可能である。
【0037】
いくつかの実施形態では、図2および図4に示されるように、マルチレートエンコーダ1301が複数のシングルレートエンコーダを含む場合、レートセレクタ1305は、複数のシングルレートエンコーダに結合させることができるとともに、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、対応するシングルレートエンコーダから、複数の符号化されたデータストリームのうちの1つを、出力データストリームとして選択するように構成することができる。
【0038】
図1を再び参照すると、送受信機150は、レートセレクタ1305から出力データストリームを得て、伝送チャネルを通じてこの出力データストリームを伝送するように構成される。いくつかの実施形態では、送受信機150は、伝送チャネルを通じて受信端末から、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどを含むフィードバック情報を受信し、このフィードバック情報をレートセレクタ1305に送るようにさらに構成される。
【0039】
送受信機150は、送信機および受信機を含むことができるとともに、双方向通信能力を有するように、すなわち、データの伝送および受信の両方が可能であるように構成することができる。いくつかの実施形態では、送信機および受信機は、共通の回路を共有することができる。いくつかの他の実施形態では、送信機および受信機は、単一のハウジングを共有する別々の部分であってもよい。送受信機150は、任意の適切な周波数帯、例えば、マイクロ波帯、ミリメートル波帯、センチメートル波帯、光波帯などで動作することができる。
【0040】
本開示によれば、撮像デバイス110、マルチレート符号化装置130、および送受信機150は、別々のデバイスであってもよいし、これらのうちのいずれか2つ、またはこれらをすべて1つのデバイスに組み込むこともできる。いくつかの実施形態では、撮像デバイス110、マルチレート符号化装置130、および送受信機150は、別々のデバイスであり、有線手段または無線手段を介して相互に接続または結合することができる。例えば、撮像デバイス110は、カメラ、カムコーダ、またはカメラ機能を有するスマートフォンであってもよい。図5は、本開示と一致するマルチレート符号化装置130の別の例を示す概略的なブロック図である。図5に示されるように、マルチレート符号化装置130は、1つまたは複数のプロセッサ130−1と、1つまたは複数のメモリ130−2と、を含む。1つまたは複数のプロセッサ130−1は、マイクロプロセッサ、マイクロコントローラ、中央処理装置(CPU)、ネットワークプロセッサ(NP)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、または別のプログラム可能論理デバイス、ディスクリートなゲートもしくはトランジスタ論理デバイス、ディスクリートハードウェアコンポーネントなどの任意の適切なハードウェアプロセッサを含むことができる。1つまたは複数のメモリ130−2は、コンピュータプログラムコードを格納する。コンピュータプログラムコードは、1つまたは複数のプロセッサによって実行されると、本開示と一致するレート制御方法、例えば、後述する例示的なレート制御方法のうちの1つ、および本開示と一致する方法の符号化機能を実行するように、1つまたは複数のプロセッサを制御する。1つまたは複数のメモリは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ、フラッシュメモリ、揮発性メモリ、ハードディスク記憶装置、または光媒体などの非一時的なコンピュータ可読記憶媒体を含むことができる。送受信機150は、送信機および受信機を単一のパッケージにまとめた、独立したデバイスであってもよい。
【0041】
いくつかの他の実施形態では、撮像デバイス110、マルチレート符号化装置130、および送受信機150が、同じ電子デバイスに組み込まれている。例えば、撮像デバイス110は、イメージセンサと、電子デバイスのレンズまたはレンズセットと、を含むことができる。マルチレート符号化装置113は、1つまたは複数のシングルチップエンコーダ、1つまたは複数のシングルチップコーデック、1つまたは複数の画像プロセッサ、1つまたは複数の画像処理エンジンなどにより実装することができ、それらは電子デバイスに組み込まれている。送受信機150は、電子デバイスに組み込まれた集積回路、チップ、またはチップセットにより実装することができる。例えば、電子デバイスは、内蔵カメラと、マルチレート符号化装置130および送受信機150を一体化したマザーボードと、を有するスマートフォンであってもよい。
【0042】
いくつかの他の実施形態では、撮像デバイス110、マルチレート符号化装置130、および送受信機150のうちのいずれか2つが、同じ電子デバイスに組み込まれている。例えば、撮像デバイス110は、マルチレート符号化装置130および送受信機150を一体化したマザーボードを有する電子デバイスに結合されたカメラまたはカムコーダであってもよい。
【0043】
本開示と一致する例示的なレート制御方法について、以下でより詳細に説明することにする。本開示と一致するレート制御方法は、本開示と一致するマルチレート符号化装置内で実行することができる。マルチレート符号化装置は、送信端末の一部として構成することができる。マルチレート符号化装置および送信端末は、例えば、上述したマルチレート符号化装置130および送信端末100であってもよい。
【0044】
上述したように、符号化されたデータストリームのビットレートは、画像フレームを符号化するために用いられる量子化パラメータなどの符号化パラメータを制御することによって、制御することができる。所望のビットレート(「予想ビットレート」とも呼ばれる)を有する符号化されたデータストリームを得るために、符号化パラメータとビットレートとの間の対応について記述するレート制御モデルに従って、符号化パラメータを選択することができる。レート制御モデルは、符号化プロセスの間の計算/符号化結果に基づいて、符号化プロセスの間に更新することもまた可能である。いくつかの実施形態では、レート制御モデルは、1つのフレームの符号化プロセスに基づいて更新することもできるし、複数のフレームの符号化プロセスに基づいて更新することもできる。
【0045】
図6は、本開示と一致する、フレームごとにレート制御モデルを更新するプロセスを概略的に図示する。図6に示されるように、フレーム610は、(図6で文字CP、CP、...、およびCPを用いて表示された)複数の符号化パラメータ値を用いて符号化されて、(図6で文字R、R、...、およびRを用いて表示された)複数のビットレート値を有する複数の符号化されたデータストリーム630を生成する。複数の符号化パラメータ値CPはそれぞれ、複数のビットレート値R(i=1、2、...、N)のうちの1つに対応する。例えば、CPは、Rに対応し、CPは、Rに対応し、CPは、Rに対応する、等々である。複数の(CP,R)ペアが、複数のサンプル点650を形成する。複数のサンプル点は次に、例えば、フィッティング法に従って、レート制御モデル670のパラメータを決定/更新するためのレート制御モデル670に適用することができる。
【0046】
図6に示されるプロセスによれば、レート制御モデルのパラメータは、フレームごとに更新または推定することができる。したがって、フレームごとにビットレートを予想ビットレートで安定させることが可能な、フレームレベルのレート制御を実現することができる。フレームレベルのレート制御により、大きな伝送ジッタが原因で、受信端末で再生が頻繁に停止するのを回避することができる。ビデオの全体的な知覚品質を高めることができるとともに、ユーザ体験を向上させることができる。
【0047】
図7は、本開示と一致する例示的なレート制御方法700のフローチャートである。レート制御方法700に従って、上述したマルチレート符号化装置130のレートコントローラ1303のようなレートコントローラは、上述したマルチレート符号化装置130のマルチレートエンコーダ1301のようなマルチレートエンコーダの複数の符号化パラメータ値を制御することができ、これに従って、マルチレートエンコーダによって、対応する複数のビットレート値を有する複数の符号化されたデータストリームを生成することができる。上述したマルチレート符号化装置130のレートセレクタ1305のようなレートセレクタは、例えば、現在のチャネル容量、現在のチャネル帯域幅、伝送レイテンシなどに基づいて、複数の符号化されたデータストリームのうちの1つを、出力データストリームとして選択することができる。
【0048】
図7に示されるように、701において、第1の複数の符号化パラメータ値が得られる。第1の複数の符号化パラメータ値は、第1の入力フレームを符号化するための複数の符号化パラメータ値を含むことができる。いくつかの実施形態では、第1の入力フレームは、撮像デバイスによって取り込まれ、符号化するためにマルチレートエンコーダに送られる画像フレームのうちの第1のものであってもよい。撮像デバイスは、例えば、上述した撮像デバイス110であってもよい。マルチレートエンコーダは、例えば、上述したマルチレート符号化装置130のマルチレートエンコーダ1301であってもよい。いくつかの他の実施形態では、第1の入力フレームは、ビデオのストリーム内の画像フレームとすることができ、ビデオの符号化または伝送がそこから開始されるか、または、ビデオの符号化または伝送がそこから再開される。いくつかの他の実施形態では、第1の入力フレームは、撮像デバイスによって取り込まれた画像フレーム、またはビデオのストリーム内の任意の画像フレームのうちのいずれか1つであってもよい。
【0049】
いくつかの実施形態では、第1の複数の符号化パラメータ値は、第1の入力フレームに対する予想ビットレート(「第1の予想ビットレート」とも呼ばれる)に少なくとも部分的に基づいて、レート制御モデルによって提供される。すなわち、第1の複数の符号化パラメータ値のうちの1つが、第1の入力フレームに対する予想ビットレートに基づいて、レート制御モデルによって提供されるが、これは、「第1の主符号化パラメータ値」とも呼ぶことができる。第1の複数の符号化パラメータ値のうちの残りのもの、すなわち、第1の複数の符号化パラメータ値のうちの第1の主符号化パラメータ値以外のものは、第1の補助符号化パラメータ値と呼ぶことができる。
【0050】
ここでは、任意の適切なレート制御モデルを用いることができる。例えば、レート制御モデルは、ビットレートとQPとの間の関係を特徴付けする、量子化器領域(Q領域)レート制御モデル(レート量子化(R−Q)モデルとも呼ばれる)、ビットレートとパラメータρ(量子化された変換係数間のゼロのパーセンテージ)との間の関係を特徴付けする、ロー領域(ρ領域)レート制御モデル、または、ビットレートと、各フレームのQPに対応するラグランジュ乗数(Lagrange multiplier)λとの間の関係を特徴付けする、ラムダ領域(λ領域)レート制御モデル(レート−ラムダ(R−λ)モデルとも呼ばれる)を含むことができる。
【0051】
いくつかの実施形態では、レート制御モデルは、上述したマルチレート符号化装置130のレートコントローラ1303のようなレートコントローラに事前に格納される初期パラメータを有することができる。レート制御モデルに従って得られた第1の入力フレームに対する予想ビットレート値に対応する符号化パラメータ値は、第1の主符号化パラメータ値として設定することができる。R−Qモデルを一例にとれば、符号化パラメータはQPとすることができ、R−Qモデルは、2次多項式の指数関数として表現することができる。すなわち、
R(Q)=exp(a・Q+b・Q+c)
式中、Rはビットレートの値を表し、QはQPの値を表す。また、a、bおよびcは、パラメータを表す。第1の入力フレームに対する予想ビットレート値に対応する符号化パラメータ値は、初期のa、bおよびcの値を有する上記の2次多項式の指数関数から計算することができる。
【0052】
いくつかの実施形態では、第1の入力フレームに対する予想ビットレートは、事前に設定されたビットレートであってもよい。いくつかの実施形態では、第1の入力フレームに対する予想ビットレートは、ユーザ入力から得ることができる。いくつかの他の実施形態では、第1の入力フレームに対する予想ビットレートは、例えば、チャネル容量、チャネル帯域幅、伝送レイテンシなどに基づいて決定することができる。
【0053】
いくつかの実施形態では、第1の補助符号化パラメータ値は、符号化パラメータ間隔で第1の主符号化パラメータ値から徐々に逸脱させることができる。例えば、第1の補助符号化パラメータ値は、第1の主符号化パラメータ値から徐々にステップダウンまたはステップアップして、符号化パラメータ間隔で配置することができる。別の例として、第1の補助符号化パラメータ値のうちの1つまたはいくつかは、第1の主符号化パラメータ値から徐々に段階的に減少させることによって得ることができ、第1の補助符号化パラメータ値のうちの1つまたはいくつかは、第1の主符号化パラメータ値から徐々にステップアップさせることによって得ることができる。
【0054】
いくつかの実施形態では、事前に設定される符号化パラメータ間隔の決定は、計算の複雑さと、レート制御モデルのパラメータの推定精度との間のトレードオフとすることができる。例えば、符号化パラメータの間隔が大きいと、符号化パラメータ値の数が少なくなることにより、計算上の負担を減らすことができるが、レート制御モデルのパラメータの推定エラーを増加させる可能性がある。一方、符号化パラメータの間隔が細かいと、ある一定の範囲にわたって稠密に分布した複数の符号化パラメータ値を生成することができ、それはレート制御モデルのパラメータの推定エラーを減らすことができるが、計算上の負担を増加させる可能性がある。
【0055】
いくつかの実施形態では、符号化パラメータ間隔は、一定間隔とすることができる。すなわち、隣接する符号化パラメータ値のそれぞれのペア間の間隔が同じである。いくつかの他の実施形態では、符号化パラメータ間隔は、可変間隔とすることができる。すなわち、隣接する符号化パラメータ値のそれぞれのペア間の間隔は、ペアごとに異なっていてもよい。または、隣接する符号化パラメータ値のいくつかのペアの間では同じであるが、いくつかの他のペアの間では異なっていてもよい。符号化パラメータ間隔が可変である実施形態では、間隔は、例えば、符号化パラメータ対ビットレートの曲線の曲率に応じて変えることができる。例えば、大きな間隔は、曲率が比較的小さい曲線の一部に位置する第1の補助符号化パラメータ値のうちの1つまたはいくつかに対して用いることができる。また、細かい間隔は、曲率が比較的大きな曲線の一部に位置する第1の補助符号化パラメータ値のうちの1つまたはいくつかに対して用いることができる。
【0056】
上述した実施形態では、第1の補助符号化パラメータ値は、最初に第1の主符号化パラメータ値を得て、次に、事前に設定された間隔に従って第1の補助符号化パラメータ値を計算することによって得られる。いくつかの他の実施形態では、第1の補助符号化パラメータ値は、第1の入力フレームに対して選択されたビットレートに基づいて得ることができる。第1の入力フレームに対して選択されたそのようなビットレートは、「第1の補助のビットレート値」とも呼ばれる。例えば、第1の補助のビットレート値は、ビットレート間隔で第1の入力フレームに対する予想ビットレートから徐々に逸脱させることができる。符号化パラメータ間隔と同様に、ビットレート間隔もまた一定または可変とすることができ、符号化パラメータ間隔を決定するのと同様のやり方で決定することができる。例えば、第1の補助のビットレート値は、第1の入力フレームに対する予想ビットレートから徐々にステップダウンおよび/またはステップアップさせ、ビットレート間隔で配置することによって得ることができる。第1の補助のビットレート値に対応する第1の補助符号化パラメータ値は、レート制御モデルに従って計算することができる。
【0057】
703において、第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームを生成する。第1の複数の符号化されたデータストリームがそれぞれ、第1の複数の符号化パラメータ値のうちの対応する1つを用いて生成されるとともに、第1の複数のビットレート値のうちの対応する1つを有する。
【0058】
いくつかの実施形態では、第1の入力フレームは、第1の複数の符号化パラメータ値を用いてイントラ符号化して、第1の複数の符号化されたデータストリームを生成することができる。いくつかの実施形態では、第1の複数の符号化パラメータ値のうちの1つを用いて第1の入力フレームを符号化することは、予測プロセスと、変換プロセスと、量子化プロセスと、エントロピー符号化プロセスと、を含むことができる。
【0059】
いくつかの実施形態では、第1の複数の符号化パラメータ値を用いた第1の入力フレームの符号化プロセスは、別々のプロセスとすることができ、並行して実装することができる。例えば、図2に示されるように、マルチレート符号化装置130は、複数の別々のシングルレートエンコーダを含むことができ、各シングルレートエンコーダは、第1の複数の符号化パラメータ値のうちの1つを用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームのうちの対応する1つを生成するために用いることができる。
【0060】
いくつかの他の実施形態では、第1の複数の符号化パラメータ値を用いた第1の入力フレームの符号化プロセスは、少なくとも1つの共通のプロセスを含むことができる。例えば、図3および図4に示されるように、第1の複数の符号化パラメータ値を用いた第1の入力フレームの符号化プロセスは、共通の回路310内で共通の予測プロセスを共有し、別々の処理回路330−1、330−2、...、330−Nにおいて別々の変換プロセス、別々の量子化プロセス、および別々のエントロピー符号化プロセスを用いて、第1の複数の符号化されたデータストリームを生成することができる。計算の複雑さおよび計算リソース消費量は、共通の予測回路310を共有することにより低減させることができる。
【0061】
705において、レート制御モデルは、第1の複数の符号化されたデータストリームにそれぞれ対応する、第1の複数の符号化パラメータ値および第1の複数のビットレート値に基づいて更新することができる。すなわち、レート制御モデルの更新されたパラメータは、第1の複数の符号化されたデータストリームにそれぞれ対応する、第1の複数の符号化パラメータ値および第1の複数のビットレート値に基づいて得ることができる。したがって、更新されたレート制御モデルは、更新されたパラメータを用いて生成することができる。上述したR−Qモデルを一例にとれば、更新されたR−Q曲線は、第1の複数の符号化されたデータストリームにそれぞれ対応する第1の複数の符号化パラメータ値および第1の複数のビットレート値に基づいて、上述した2次多項式の指数関数の最小2乗フィッティングによってモデル化することで、a、bおよびcの更新された値を得ることができるようになっている。
【0062】
上述した実施形態では、レート制御モデルは、1つの入力フレームを用いて1回更新され、次いで、次の入力フレームを符号化するために用いられる。いくつかのシナリオでは、1回の更新は、符号化パラメータとビットレートとの間の実際の対応関係を厳密にモデル化する更新されたレート制御モデルを作成するのに十分ではない場合がある。更新されたレート制御モデルと、符号化パラメータとビットレートとの間の実際の対応関係との間の近似の程度は、第1の実際のビットレート値と予想ビットレート値との間の差異によって決定することができる。第1の実際のビットレート値とは、第1の主符号化パラメータ値を用いて第1の入力フレームを符号化することによって得られたビットレート値を指す。したがって、いくつかの他の実施形態では、レート制御モデルは、第1の実際のビットレート値と予想ビットレート値との間の差異が、事前に設定された範囲内に、例えば、事前設定値よりも小さくなるまで、第1の入力フレームを用いて反復的に更新することができる。
【0063】
707において、第1の複数の符号化されたデータストリームのうちの1つが、第1の入力フレームに対する出力データストリームとして選択される。第1の複数の符号化されたデータストリームのうちの1つの選択は、例えば、第1の入力フレーム、チャネル容量、チャネル帯域幅、伝送レイテンシなどに対する予想ビットレート値に基づくことができる。
【0064】
いくつかの実施形態では、第1の入力フレームに対する出力データストリームは、第1の入力フレームに対する予想ビットレート値に従って、第1の複数の符号化されたストリームから選択することができる。例えば、第1の主符号化パラメータ値(「第1の主符号化されたデータストリーム」とも呼ばれる)を用いて、第1の入力フレームを符号化することによって得られた第1の複数の符号化されたストリームのうちの1つは、出力データストリームとして直接選択することができる。いくつかのシナリオでは、第1の主符号化されたデータストリームのビットレートは、第1の入力フレームに対する予想ビットレートとは、比較的大きな値の差で異なっている場合がある。これらのシナリオでは、第1の入力フレームに対する予想ビットレートは、第1の入力フレームを符号化するための新たな符号化パラメータ値を得るために、再び更新されたレート制御モデルにかけられ、得られた符号化されたデータストリームは、第1の入力フレームに対する出力データストリームとして出力することができる。
【0065】
別の例として、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、第1の複数のビットレート値のうちの、第1の入力フレームに対する予想ビットレート値に最も近いものに相当するビットレートを有する1つであってもよい。
【0066】
別の例として、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、第1の複数のビットレート値のうちの、第1の入力フレームに対する予想ビットレート値以下で、それに最も近いものに相当するビットレートを有する1つであってもよい。
【0067】
別の例として、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、第1の複数のビットレート値のうちの、事前に設定された範囲内で第1の入力フレームに対する予想ビットレート値との差異を有するものに相当するビットレートを有する1つであってもよい。
【0068】
いくつかの実施形態では、第1の入力フレームに対する出力データストリームは、現在のチャネル帯域幅に従って、第1の複数の符号化されたストリームから選択することができる。例えば、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの、現在のチャネル帯域幅に合っている1つであってもよい。そのため、出力データストリームは、時間とともに変化するチャネル帯域幅にリアルタイムで適応させることができる。すなわち、チャネル帯域幅が時間とともに変化すると、出力データストリームは、リアルタイムでチャネル帯域幅に合わせることができる。
【0069】
いくつかの他の実施形態では、第1の入力フレームに対する出力データストリームは、現在のチャネル帯域幅および目標レイテンシに従って選択することができる。目標レイテンシは、レイテンシの制御目標とも呼ばれる場合があり、予想される伝送レイテンシを表す。
【0070】
例えば、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、現在のチャネル帯域幅の下での伝送レイテンシが目標レイテンシに最も近い1つであってもよい。
【0071】
別の例として、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、現在のチャネル帯域幅の下での伝送レイテンシが目標レイテンシ以下で、それに最も近い1つであってもよい。
【0072】
さらなる例として、第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたストリームのうちの1つであって、第1の複数の符号化されたストリームの間でビットレートが最も高く、現在のチャネル帯域幅の下での目標レイテンシと伝送レイテンシとの差異が、事前に設定された範囲内にある1つであってもよい。ビットレートが高くなると、概して符号化の品質も相応して高くなるので、この手法により、目標レイテンシが満たされると、符号化の品質が最も高い符号化されたデータを確実に選択することができる。
【0073】
いくつかの実施形態では、第1の入力フレームに対する出力データストリームは、チャネル帯域幅、目標レイテンシ、および符号化の品質に従って選択することができる。すなわち、第1の入力フレームに対する出力データストリームの選択は、チャネル帯域幅、目標レイテンシ、および符号化の品質の要件の組み合わせに基づくことができる。
【0074】
いくつかの実施形態では、費用関数は、チャネル帯域幅、目標レイテンシ、符号化の品質、および目標ビットレートに従って決定することができる。第1の入力フレームに対する出力データストリームは、第1の複数の符号化されたデータのうちの、費用関数の値が最も小さい1つであってもよい。
【0075】
例えば、費用関数は、以下の通りであってもよい。すなわち、
コスト=A×|ビットレート/帯域幅−目標レイテンシ|+B×符号化の品質
であり、式中、コストは、費用を表し、AおよびBは、重みを表す。
【0076】
様々な用途のシナリオの要件に従って、AおよびBの値を調整して、符号化の品質の要件、またはレイテンシ制御の要件に向けて偏らせることができる。例えば、Costの計算時にAおよびBの値を調整して、符号化の品質の要件に対する重み付け、またはレイテンシ制御の要件に対する重み付けを大きくすることができる。
【0077】
いくつかの実施形態では、第1の入力フレームに対する出力データストリームから得られた、再構成されたフレームは、第2の入力フレームのコンテキストとして用いることができる。すなわち、第1の入力フレームに対する出力データストリームから得られた、再構成されたフレームは、第2の入力フレームの予測のための参照として用いることができる。
【0078】
709において、第2の入力フレームが、更新されたレート制御モデルに基づいて符号化される。例えば、第2の入力フレームを符号化するための第2の複数の符号化パラメータ値は、更新されたレート制御モデルに基づいて決定することができる。また、第2の入力フレームは、第2の複数の符号化パラメータ値を用いて符号化することができる。
【0079】
いくつかの実施形態では、第2の入力フレームを符号化するための第2の複数の符号化パラメータ値は、更新されたレート制御モデルおよび第2の入力フレームに対する予想ビットレート(「第2の予想ビットレート」とも呼ばれる)に基づいて、決定することができる。例えば、第2の複数の符号化パラメータ値のうちの1つは、更新されたレート制御モデル、および第2の入力フレームに対する予想ビットレートに基づいて決定することができるが、このパラメータ値は、第2の主符号化パラメータ値と呼ぶことができる。第2の複数の符号化パラメータ値のうちの残りのもの、すなわち、第2の複数の符号化パラメータ値のうちの第2の主符号化パラメータ値以外の符号化パラメータ値は、第2の補助符号化パラメータ値と呼ぶことができる。上述したR−Qモデルを一例にとれば、パラメータa、bおよびcが更新された2次多項式の指数関数から計算された第2の入力フレームに対する予想ビットレートに対応する符号化パラメータ値は、第2の主符号化パラメータ値として設定することができる。
【0080】
いくつかの実施形態では、第2の主符号化パラメータ値および第1の主符号化パラメータ値は、同じ符号化チャネルに対するものである。同じ符号化チャネルとは、例えば、図2に示されるようなマルチレートエンコーダに含まれる同じシングルレートエンコーダ、または図4に示されるようなマルチレートエンコーダに含まれる同じ処理回路を指す。
【0081】
いくつかの実施形態では、第1の補助符号化パラメータ値と同様に、第2の補助符号化パラメータ値は、符号化パラメータ間隔で第2の主符号化パラメータ値から徐々に逸脱させることができる。例えば、第2の補助符号化パラメータ値は、第2の主符号化パラメータ値から徐々にステップアップおよび/またはステップダウンさせることによって得ることができ、符号化パラメータ間隔で配置することができる。第2の補助符号化パラメータ値に対する符号化パラメータ間隔は、一定間隔または可変間隔とすることができる。第2の補助符号化パラメータ値に対する符号化パラメータ間隔は、第1の補助符号化パラメータ値に対する符号化パラメータ間隔を決定するためのやり方と同様のやり方で決定することができる。したがって、その詳細な説明は省略する。
【0082】
いくつかの他の実施形態では、第2の補助符号化パラメータ値は、第2の入力画像に対して選択されたビットレートに基づいて得ることができ、このパラメータ値は「第2の補助のビットレート値」とも呼ばれる。第1の補助のビットレート値と同様に、第2の補助のビットレート値は、ビットレート間隔で第2の入力フレームに対する予想ビットレートから徐々に逸脱させることができる。第2の補助のビットレート値に対応する第2の補助符号化パラメータ値は、レート制御モデルに基づいて計算することができる。例えば、第2の補助のビットレート値は、第2の入力画像に対する予想ビットレートから徐々に段階的に増大および/または段階的に減少させることによって、得ることができる。第2の補助のビットレート値に対するビットレート間隔は、一定間隔または可変間隔とすることができる。第2の補助のビットレート値に対するビットレート間隔は、第1の補助のビットレート値に対するビットレート間隔を決定するためのやり方と同様のやり方で決定することができる。したがって、その詳細な説明は省略する。
【0083】
いくつかの実施形態では、第2の入力フレームは、第2の複数の符号化パラメータ値を用いてインター符号化および/またはイントラ符号化して、第2の複数の符号化されたデータストリームを生成することができる。いくつかの実施形態では、第2の複数の符号化パラメータ値のうちの1つを用いて第2の入力フレームを符号化することは、予測プロセスと、変換プロセスと、量子化プロセスと、エントロピー符号化プロセスと、を含むことができる。
【0084】
第2の複数の符号化されたデータストリームのうちの1つは、第2の入力フレームに対応する出力データストリームとして選択することができる。第2の入力フレームに対応する出力データストリームの選択は、第1の入力フレームに対応する出力データストリームの選択に類似したものとすることができる。したがって、その詳細な説明は省略する。
【0085】
いくつかの実施形態では、レート制御モデルは、画像フレーム間で変化してもまたよい。すなわち、第1の入力フレームに基づいて得られた更新されたレート制御モデルは、第2の入力フレーム内の符号化パラメータとビットレートとの間の対応関係を正確に反映していない場合がある。これらの実施形態では、レート制御モデルは、第2の複数の符号化されたデータストリームにそれぞれ対応する、第2の複数の符号化パラメータ値および第2の複数のビットレート値に基づいてさらに更新することができる。これを行うために、第2の実際のビットレートと第2の入力フレームに対する予想ビットレート値との間の差異が、事前に設定された範囲内にあるまで、第2の主符号化パラメータ値を反復的に調整することができる。第2の実際のビットレート値とは、第2の主符号化パラメータ値を用いて第2の入力フレームを符号化することによって得られたビットレート値を指す。
【0086】
図8は、本開示と一致する、レート制御モデルを反復的に更新するプロセスを示すフローチャートである。図8に示されるように、上述した手法(705)に従って得られた、第1の複数の符号化されたデータストリームにそれぞれ対応する、第1の複数の符号化パラメータ値および第1の複数のビットレート値[文字(CP、R)として表示される]に基づいて、レート制御モデルを最初に更新することができる。第2の複数の符号化パラメータ値(CPとして表示される)は、上述したような更新されたレート制御モデルおよび第2の入力フレームに対する予想ビットレートに基づいて決定することができる。上述したように、更新されたレート制御モデルを用いて第2の入力フレームに対する予想ビットレートから計算された符号化パラメータ値が、第2の主符号化パラメータ値である。CPを用いて第2のフレームを符号化して、第2の複数のデータストリームを生成することができる。この第2の複数のデータストリームは、複数の実際のビットレート(Rとして表示される)を有し、第2の主符号化パラメータ値を用いて第2のフレームを符号化することによって生成された第2の実際のビットレート値を有するデータストリームを含む。第2の実際のビットレート値と第2の入力フレームに対する予想ビットレート値との間の差異が事前に設定された範囲外にある場合には、レート制御モデルは、(CP,R)ペアに従って更新される。第2の主符号化パラメータ値は、さらに更新されたレート制御モデルから計算された、第2の入力フレームに対する予想ビットレート値に対応する符号化パラメータに更新することができる。一方、第2の実際のビットレート値と、第2の入力フレームに対する予想ビットレート値との間の上記の差異が、事前に設定された範囲内にある場合には、反復的な調整プロセスを停止することができ、図8に示されるように、第2の複数のデータストリームのうちの1つが出力データストリームとして出力される。
【0087】
図9は、フレーム間のビットレート対QP曲線(R−Q曲線またはR−Qモデル、すなわちレート制御モデルの一例)の変化を概略的に示す。図9では、曲線1は、第1の入力フレームに基づいて取得/更新されたR−Qモデル、すなわち、第1の複数の符号化されたデータストリームにそれぞれ対応する第1の複数の符号化パラメータ値および第1の複数のビットレート値をフィッティングすることによって作成された曲線を表す。図9に示されるように、例えば、第1の入力フレームおよび第2の入力フレームの複雑さが異なるとき、R−Qモデルは、曲線1から曲線2に移動し得る。曲線2は、第2の入力フレームに対応する実際のR−Q曲線であり、これはまだ知られていない。図9に示されるように、第2の入力フレームに対する予想ビットレートRが所望される場合、曲線1から、対応する第2の主符号化パラメータ値QPが得られる。しかしながら、第2の入力フレームを符号化するためにQPを用いると、得られる符号化されたデータストリームの実際のビットレートは、曲線2に従ってRとなり、それは、第2の入力フレームに対する予想ビットレートRとは異なる。例えば、図8に関連して上述した方法に従って、曲線1を反復的に更新して、曲線2、または曲線2に近い曲線を得ることができる。その後、得られた曲線2、または得られた曲線2に近い曲線に従って、第2の入力フレームに対する予想ビットレートRが得られる第2の主符号化パラメータ値QPe1を得ることができる。
【0088】
いくつかの実施形態では、(701において)第1の複数の符号化パラメータ値を得ることは、実際のビットレートと第1の入力フレームに対する予想ビットレート値との間の差異が、事前に設定された範囲内にあるまで、第1の主符号化パラメータ値を反復的に調整することをさらに含むことができる。実際のビットレート値とは、第1の主符号化パラメータ値を用いて第1の入力フレームを符号化することによって得られたビットレート値を指す。
【0089】
本開示の他の実施形態は、本明細書の考察および本明細書に開示された実施形態の実施から、当業者に明らかになるであろう。詳細な説明および例は単に例示的なものにすぎず、本開示の範囲を限定しないものであるとして考慮され、本発明の真の範囲および趣旨は、以下の特許請求の範囲によって示されることが意図される。
[項目1]
レート制御方法であって、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化して、第1の複数の符号化されたデータストリームであって、それぞれが上記第1の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値に対応するビットレートを有する第1の複数の符号化されたデータストリームを生成するステップと、
上記第1の複数の符号化されたデータストリームにそれぞれ対応する上記第1の複数の符号化パラメータ値および上記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新するステップと、
上記更新されたレート制御モデルに基づいて第2の入力フレームを符号化するステップと、含む方法。
[項目2]
上記第1の複数の符号化パラメータ値は、上記第1の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、上記レート制御モデルによって提供される項目1に記載の方法。
[項目3]
上記第1の複数の符号化パラメータ値のうちの1つが、上記第1の入力フレームに対する上記予想ビットレートに基づいて、上記レート制御モデルによって提供され、上記第1の複数の符号化パラメータ値のうちの他のものが、一定間隔で上記第1の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱される項目2に記載の方法。
[項目4]
上記第1の複数の符号化パラメータ値のうちの1つが、上記第1の入力フレームに対する上記予想ビットレートに基づいて、上記レート制御モデルによって提供され、上記第1の複数の符号化パラメータ値のうちの他のものが、可変間隔で上記第1の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱される項目2に記載の方法。
[項目5]
上記第1の複数の符号化パラメータ値は、
上記レート制御モデルに従って上記第1の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記レート制御モデルを更新することは、上記第1の入力フレームに対する上記予想ビットレート値と、上記主符号化パラメータ値を用いて上記第1の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、上記第1の入力フレームを用いて上記レート制御モデルを反復的に更新することを含む項目2に記載の方法。
[項目6]
上記第1の入力フレームを符号化することは、複数の別々の符号化プロセスを上記第1の入力フレーム上で実行して、上記第1の複数の符号化されたデータストリームを生成することを含み、上記複数の別々の符号化プロセスがそれぞれ、上記第1の複数の符号化パラメータ値のうちの1つを用いて上記第1の入力フレームを符号化して、上記第1の複数の符号化されたデータストリームのうちの対応する1つを生成することを含む項目1に記載の方法。
[項目7]
上記第1の入力フレームを符号化することは、上記第1の入力フレーム上で少なくとも1つの共通のプロセスを含む上記複数の別々の符号化プロセスを実行することを含む項目6に記載の方法。
[項目8]
上記第2の入力フレームを符号化することは、上記更新されたレート制御モデルおよび上記第2の入力フレームに対する予想ビットレートに基づいて上記第2の入力フレームに対する符号化パラメータ値を決定することを含む項目1に記載の方法。
[項目9]
上記更新されたレート制御モデルに少なくとも部分的に基づいて、上記第2の入力フレームを符号化するための第2の複数の符号化パラメータ値を決定し、
上記第2の複数の符号化パラメータ値を用いて上記第2の入力フレームを符号化することをさらに含む項目1に記載の方法。
[項目10]
上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値を決定することは、
上記更新されたレート制御モデルに従って、上記第2の入力フレームに対する予想ビットレートに基づいて、上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値のうちの1つを決定し、
上記第2の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第2の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させること
を含む項目9に記載の方法。
[項目11]
上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値を決定することは、
上記更新されたレート制御モデルに従って、上記第2の入力フレームに対する予想ビットレートに基づいて、上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値のうちの1つを決定し、
上記第2の複数の符号化パラメータ値のうちの他のものを可変間隔で上記第2の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させること
を含む項目9に記載の方法。
[項目12]
上記第1の入力フレームに対する上記予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも1つに基づいて、第1の複数の符号化されたデータストリームから、符号化されたデータストリームを、上記第1の入力フレームに対する出力データストリームとして選択することをさらに含む、項目1に記載の方法。
[項目13]
上記第1の複数の符号化パラメータ値は、上記レート制御モデルに従って上記第1の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記主符号化パラメータ値を用いて、上記第1の入力フレームを符号化することによって得られた上記第1の複数の符号化されたデータストリームのうちの1つを上記出力データストリームとして選択することを含む項目12に記載の方法。
[項目14]
上記符号化されたデータストリームを上記出力データストリームとして選択することが、上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、上記第1の入力フレームに対する上記予想ビットレート値に最も近いものに相当するビットレートを有する1つを、上記出力データストリームとして選択することを含む、項目12に記載の方法。
[項目15]
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、上記第1の入力フレームに対する上記予想ビットレート値以下でありかつそれに最も近いものに相当するビットレートを有する1つを、上記出力データストリームとして選択することを含む項目14に記載の方法。
[項目16]
上記符号化されたデータストリームを上記出力データストリームとして選択することは、上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、事前に設定された範囲内で上記第1の入力フレームに対する上記予想ビットレート値との差異を有するものに相当するビットレートを有する1つを、上記出力データストリームとして選択することを含む項目15に記載の方法。
[項目17]
データ符号化におけるレート制御装置であって、
1つまたは複数のプロセッサと、
上記1つまたは複数のプロセッサに結合された1つまたは複数のメモリであって、
上記1つまたは複数のプロセッサによって実行されると、上記1つまたは複数のプロセッサに、
第1の複数の符号化パラメータ値を用いて第1の入力フレームを符号化させて、第1の複数の符号化されたデータストリームであって、それぞれが上記第1の複数の符号化パラメータ値に対応する符号化パラメータ値を用いて生成される第1の複数の符号化されたデータストリームであり、かつ、それぞれが第1の複数のビットレート値に対応するビットレートを有する第1の複数の符号化されたデータストリームを生成させ、
上記第1の複数の符号化されたデータストリームにそれぞれ対応する上記第1の複数の符号化パラメータ値および上記第1の複数のビットレート値に基づいて、符号化パラメータとビットレートとの間の対応を表すレート制御モデルを更新させ、かつ、
上記更新されたレート制御モデルに基づいて第2の入力フレームを符号化させる命令を格納するものと
を備える装置。
[項目18]
上記命令が、上記1つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第1の入力フレームに対する予想ビットレートに少なくとも部分的に基づいて、上記第1の複数の符号化パラメータ値を提供させる項目17に記載の装置。
[項目19]
上記命令が、上記1つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第1の入力フレームに対する上記予想ビットレートに基づいて、上記第1の複数の符号化パラメータ値のうちの1つを提供させ、上記第1の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第1の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させる項目18に記載の装置。
[項目20]
上記命令が、上記1つまたは複数のプロセッサにさらに、上記レート制御モデルによって、上記第1の入力フレームに対する上記予想ビットレートに基づいて、上記第1の複数の符号化パラメータ値のうちの1つを提供させ、上記第1の複数の符号化パラメータ値のうちの上記他のものを可変間隔で上記第1の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させる項目18に記載の装置。
[項目21]
上記第1の複数の符号化パラメータ値が、上記レート制御モデルに従って上記第1の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記第1の入力フレームを用いて、上記第1の入力フレームに対する上記予想ビットレート値と、主符号化パラメータ値を用いて上記第1の入力フレームを符号化することによって得られた実際のビットレート値との間の差異が、事前に設定された範囲内にあるまで、上記レート制御モデルを反復的に更新させる項目18に記載の装置。
[項目22]
上記命令が、上記1つまたは複数のプロセッサにさらに、
複数の別々の符号化プロセスであって、それぞれが、上記第1の複数の符号化パラメータ値のうちの1つを用いて上記第1の入力フレームを符号化して、上記第1の複数の符号化されたデータストリームのうちの対応する1つを生成することを含む複数の別々の符号化プロセスを上記第1の入力フレーム上で実行させて、上記第1の複数の符号化されたデータストリームを生成させる項目17に記載の装置。
[項目23]
上記命令が、上記1つまたは複数のプロセッサにさらに、
少なくとも1つの共通のプロセスを含む上記複数の別々の符号化プロセスを上記第1の入力フレーム上で実行させる項目22に記載の装置。
[項目24]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルおよび上記第2の入力フレームに対する予想ビットレートに基づいて、上記第2の入力フレームに対する符号化パラメータ値を決定させる項目17に記載の装置。
[項目25]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに少なくとも部分的に基づいて、上記第2の入力フレームを符号化するための第2の複数の符号化パラメータ値を決定させ、
上記第2の複数の符号化パラメータ値を用いて、上記第2の入力フレームを符号化させる項目17に記載の装置。
[項目26]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに従って、上記第2の入力フレームに対する予想ビットレートに基づいて、上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値のうちの1つを決定させ、
上記第2の複数の符号化パラメータ値のうちの他のものを一定間隔で上記第2の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させる項目25に記載の装置。
[項目27]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記更新されたレート制御モデルに従って、上記第2の入力フレームに対する予想ビットレートに基づいて、上記第2の入力フレームに対する上記第2の複数の符号化パラメータ値のうちの1つを決定させ、
上記第2の複数の符号化パラメータ値のうちの他のものを可変間隔で上記第2の複数の符号化パラメータ値のうちの上記1つから徐々に逸脱させる項目25に記載の装置。
[項目28]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記第1の入力フレームに対する上記予想ビットレート値、チャネル帯域幅、伝送レイテンシ、または符号化の品質のうちの少なくとも1つに基づいて、上記第1の複数の符号化されたデータストリームから、符号化されたデータストリームを、上記第1の入力フレームに対する出力データストリームとして選択させる項目17に記載の装置。
[項目29]
上記第1の複数の符号化パラメータ値が、上記レート制御モデルに従って上記第1の入力フレームに対する上記予想ビットレート値から計算された主符号化パラメータ値を含み、
上記命令が、上記1つまたは複数のプロセッサにさらに、上記第1の入力フレームに対する上記予想ビットレート値に対応する符号化パラメータ値を用いて、上記第1の入力フレームを符号化することによって得られた上記第1の複数の符号化されたデータストリームのうちの上記1つを、上記出力データストリームとして選択させる項目28に記載の装置。
[項目30]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、上記第1の入力フレームに対する上記予想ビットレート値に最も近いものに相当するビットレートを有する1つを、上記出力データストリームとして選択させる項目28に記載の装置。
[項目31]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、上記第1の入力フレームに対する上記予想ビットレート値以下で、それに最も近いものに相当するビットレートを有する1つを、上記出力データストリームとして選択させる項目30に記載の装置。
[項目32]
上記命令が、上記1つまたは複数のプロセッサにさらに、
上記第1の複数の符号化されたデータストリームのうちの1つであって、上記第1の複数のビットレート値のうちの、事前に設定された範囲内で上記第1の入力フレームに対する上記予想ビットレート値との差異を有するものに相当するビットレートを有する1つを、上記出力データストリームとして選択させる項目31に記載の装置。
図1
図2
図3
図4
図5
図6
図7
図8
図9