(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-18
(45)【発行日】2023-04-26
(54)【発明の名称】低遅延ビデオ符号化のための効率的な量子化パラメータ予測方法
(51)【国際特許分類】
H04N 19/126 20140101AFI20230419BHJP
H04N 19/14 20140101ALI20230419BHJP
H04N 19/172 20140101ALI20230419BHJP
【FI】
H04N19/126
H04N19/14
H04N19/172
(21)【出願番号】P 2021520135
(86)(22)【出願日】2019-06-25
(86)【国際出願番号】 IB2019055357
(87)【国際公開番号】W WO2020089701
(87)【国際公開日】2020-05-07
【審査請求日】2021-06-04
(32)【優先日】2018-10-31
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】508301087
【氏名又は名称】エーティーアイ・テクノロジーズ・ユーエルシー
【氏名又は名称原語表記】ATI TECHNOLOGIES ULC
【住所又は居所原語表記】One Commerce Valley Drive East, Markham, Ontario, L3T 7X6 Canada
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】デニス リュウ
(72)【発明者】
【氏名】ジャオ ワン
(72)【発明者】
【氏名】レイ ジャン
(72)【発明者】
【氏名】エドワード エイ. ハロルド
【審査官】田中 純一
(56)【参考文献】
【文献】特開2003-230151(JP,A)
【文献】特開平07-075095(JP,A)
【文献】特開平06-046411(JP,A)
【文献】米国特許出願公開第2003/0185299(US,A1)
【文献】特開2007-089035(JP,A)
【文献】米国特許出願公開第2007/0071094(US,A1)
【文献】Yun Gu Lee, et al.,An Intra-Frame Rate Control Algorithm for Ultralow Delay H.264/Advanced Video Coding (AVC),IEEE Transactions on Circuits and Systems for Video Technology,IEEE,2009年03月16日,Volume: 19, Issue: 5, May 2009,pp.747-752,<URL:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4801629>,<DOI:10.1109/TCSV.2009.2017413>
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
ビデオストリームのビデオフレームを符号化するように構成されたエンコーダと、
前記エンコーダに結合された制御ロジックと、を備え、
前記制御ロジックは、
以前のビデオフレームを符号化することの難易度を表す複雑度指標を計算すること
であって、前記複雑度指標は、前記以前のビデオフレームの計算された実際の複雑度値と前記以前のビデオフレームの計算された推定複雑度値とに少なくとも部分的に基づいて計算される、ことと、
前記複雑度指標と、符号化されるビデオフレームの
決定されたサイズと、に基づいて量子化パラメータ(QP)値を計算することと、
を行うように構成されており、
前記エンコーダは、
QPを、前記制御ロジックによって計算されたQP値に設定することによって、現在のビデオフレームを表す符号化されたビデオフレームを生成することと、
前記符号化されたビデオフレームをデコーダに伝送して表示させることと、
を行うように構成されている、
システム。
【請求項2】
前記
推定複雑度
値は、前記以前のビデオフレームに関連する第1のパラメータに少なくとも部分的に基づいており、分散、イントラ予測係数及びインター対イントラ比のうち1つ以上に対応する、
請求項1のシステム。
【請求項3】
前記イントラ予測係数は、所定のQPでの前記以前のビデオフレームに対するイントラ予測の有効度を表す、
請求項2のシステム。
【請求項4】
前記インター対イントラ比は、所定のQPでの前記以前のビデオフレームのインター符号化ビットとイントラ符号化ビットとの比率を表す、
請求項2のシステム。
【請求項5】
前記
実際の複雑度値は、前記以前のビデオフレームの量子化パラメータに少なくとも部分的に基づいており、前記推定複雑度値は、前記以前のビデオフレームの計算された分散に少なくとも部分的に基づいている、
請求項1のシステム。
【請求項6】
前記
分散は、前記以前のビデオフレームにおけるブロックの分散の和に基づいて計算される、
請求項
5のシステム。
【請求項7】
前記制御ロジックは、次のビデオフレームを符号化するための次の複雑度指標を生成する場合に用いるために、前記現在のビデオフレームに基づいて、1つ以上のパラメータを生成するように構成されている、
請求項1のシステム。
【請求項8】
制御ロジックが、以前のビデオフレームを符号化することの難易度に基づいて複雑度指標を計算すること
であって、前記複雑度指標は、前記以前のビデオフレームの計算された実際の複雑度値と前記以前のビデオフレームの計算された推定複雑度値とに少なくとも部分的に基づいて計算される、ことと、
前記制御ロジックが、前記複雑度指標と、符号化されるビデオフレームの
決定されたサイズと、に基づいて量子化パラメータ(QP)値を計算することと、
エンコーダが、QPを、前記制御ロジックによって計算されたQP値に設定することによって、現在のビデオフレームを表す符号化されたビデオフレームを生成することと、
前記エンコーダが、前記符号化されたビデオフレームをデコーダに伝送して表示させることと、を含む、
方法。
【請求項9】
前記
推定複雑度
値は、前記以前のビデオフレームに関連する第1のパラメータに少なくとも部分的に基づいており、分散、イントラ予測係数及びインター対イントラ比のうち1つ以上に対応する、
請求項8の方法。
【請求項10】
前記イントラ予測係数は、所定のQPでの前記以前のビデオフレームに対するイントラ予測の有効度を表す、
請求項9の方法。
【請求項11】
前記インター対イントラ比は、所定のQPでの前記以前のビデオフレームのインター符号化ビットとイントラ符号化ビットとの比率を表す、
請求項9の方法。
【請求項12】
前記以前のビデオフレームの量子化パラメータに少なくとも部分的に基づいて前記実際の複雑度値を計算することと、
前記以前のビデオフレームの計算された分散に少なくとも部分的に基づいて前記推定複雑度値を計算することと、を含む、
請求項8の方法。
【請求項13】
前記以前のビデオフレームにおけるブロックの分散の和に基づいて前記分散を計算することを含む、
請求項
12の方法。
【請求項14】
次のビデオフレームを符号化するための次の複雑度指標を生成する場合に用いるために、前記現在のビデオフレームに基づいて、1つ以上のパラメータを生成することを含む、
請求項8の方法。
【請求項15】
メモリと、
前記メモリに結合されたエンコーダと、
前記エンコーダに結合された制御ロジックと、を備え、
前記制御ロジックは、
以前のビデオフレームを符号化することの難易度に基づいて複雑度指標を計算すること
であって、前記複雑度指標は、前記以前のビデオフレームの計算された実際の複雑度値と前記以前のビデオフレームの計算された推定複雑度値とに少なくとも部分的に基づいて計算される、ことと、
前記複雑度指標と、符号化されるビデオフレームの
決定されたサイズと、に基づいて量子化パラメータ(QP)値を計算することと、
を行うように構成されており、
前記エンコーダは、
QPを、前記制御ロジックによって計算されたQP値に設定することによって、現在のビデオフレームを表す符号化されたビデオフレームを生成することと、
前記符号化されたビデオフレームをデコーダに伝送して表示させることと、
を行うように構成されている、
装置。
【請求項16】
前記
推定複雑度
値は、前記以前のビデオフレームに関連する第1のパラメータに少なくとも部分的に基づいており、分散、イントラ予測係数及びインター対イントラ比のうち1つ以上に対応する、
請求項15の装置。
【請求項17】
前記イントラ予測係数は、所定のQPでの前記以前のビデオフレームに対するイントラ予測の有効度を表す、
請求項16の装置。
【請求項18】
前記インター対イントラ比は、所定のQPでの前記以前のビデオフレームのインター符号化ビットとイントラ符号化ビットとの比率を表す、
請求項16の装置。
【請求項19】
前記
実際の複雑度値は、前記以前のビデオフレームの量子化パラメータに少なくとも部分的に基づいており、前記推定複雑度値は、前記以前のビデオフレームの計算された分散に少なくとも部分的に基づいている、
請求項15の装置。
【請求項20】
前記
分散は、前記以前のビデオフレームにおけるブロックの分散の和に基づいて計算される、
請求項
19の装置。
【発明の詳細な説明】
【背景技術】
【0001】
(関連技術の説明)
様々なアプリケーションが、画像又はビデオコンテンツの符号化及び復号化を実行する。例えば、ビデオトランスコーディング、デスクトップ共有、クラウドゲーム、ゲーム観戦は、コンテンツの符号化及び復号化のサポートを含むアプリケーションの一部である。コンテンツの符号化方法を決定するパラメータの1つに、量子化パラメータ(QP)がある。H.264規格に準拠する方式等のように、様々なブロックベースのビデオ符号化方式では、QPが、符号化処理中に保持されるディテール(detail)を調整する。ビデオフレーム毎又はフレームのブロック毎に選択されるQPは、符号化されたビデオフレームのサイズ又は符号化されたブロックのサイズと直接関連する。QP値を小さく選択すると、多くのディテールが保持されるが、符号化後に得られるサイズが大きくなる。QP値を大きく選択すると、多くのディテールが失われるが、符号化後に生成されるサイズが小さくなる。「量子化パラメータ」という用語は、より一般的には「量子化強度」とも呼ばれることに留意されたい。
【0002】
添付図面と併せて以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点をより良く理解することができる。
【図面の簡単な説明】
【0003】
【
図1】コンテンツを符号化及び復号化するシステムの一実施形態のブロック図である。
【
図2】ビデオのフレームを符号化するサーバのソフトウェア構成要素の一実施形態のブロック図である。
【
図3】一実施形態による、ビデオフレームを符号化するための量子化パラメータ(QP)を計算する式を示す図である。
【
図4】一実施形態による、フレームの符号化に関連するパラメータを計算するための式を示す図である。
【
図5】ビデオフレームを符号化する際に用いる量子化パラメータ(QP)を求める方法の一実施形態を示す一般化されたフロー図である。
【
図6】符号化されるフレームの推定サイズを複雑度指標に基づいて計算する方法の別の実施形態を示す一般化されたフロー図である。
【
図7】ビデオフレームを符号化する際に用いるQPを求める方法の一実施形態を示す一般化されたフロー図である。
【
図8】符号化されるフレームの推定サイズを複雑度指標に基づいて計算する方法の一実施形態を示す一般化されたフロー図である。
【発明を実施するための形態】
【0004】
以下の説明では、本明細書に提示される方法及びメカニズムの十分な理解を提供するために、多数の具体的な詳細が記載される。しかしながら、当業者は、様々な実施形態がこれらの具体的な詳細無しに実施され得ることを認識すべきである。場合によっては、本明細書に記載されるアプローチを曖昧にすることを回避するために、周知の構造、構成要素、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明確にするために、図面に示される要素が必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されている場合がある。
【0005】
所定のビットバジェットを満たすようにビデオフレームを符号化するための量子化パラメータ(QP)を計算するシステム、装置及び方法が本明細書に開示されている。一実施形態では、システムは、エンコーダと、制御ロジックと、エンコーダ及び制御ロジックに結合されたメモリと、を少なくとも含む。制御ロジックは、以前のビデオフレーム及び/又は現在のビデオフレームの第1の符号化パスに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。一般的に、複雑度指標は、所定のフレームを符号化することの難易度を表す。一実施形態では、第1のパラメータは、分散である。別の実施形態では、第1のパラメータは、イントラ予測係数(intra-prediction factor)である。さらなる実施形態では、第1のパラメータは、インター対イントラ比(inter-to-intra ratio)である。他の実施形態では、第1のパラメータは、これらのパラメータのうち複数、及び/又は、1つ以上の他のパラメータを含む。いくつかの実施形態では、制御ロジックは、2つ以上の以前のビデオフレームに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。次に、制御ロジックは、複雑度指標を用いて、所定のビットバジェットを満たすように現在のビデオフレームを符号化するのに使用する好ましいQPを計算する。複雑度指標に基づいて生成された好ましいQPを使用することによって、エンコーダは、フレーム中のQP調整を少なくすることができる。これは、結果として得られる符号化ビデオビットストリームの表示品質を向上させるのに役立つ。
【0006】
図1を参照すると、コンテンツの符号化及び復号化を行うシステム100の一実施形態のブロック図が示されている。システム100は、サーバ105と、ネットワーク110と、クライアント115と、ディスプレイ120と、を含む。他の実施形態では、システム100は、ネットワーク110を介してサーバ105に接続された複数のクライアントを含み、複数のクライアントは、サーバ105によって生成された同じビットストリーム又は異なるビットストリームを受信する。また、システム100は、複数のクライアントのために複数のビットストリームを生成する2つ以上のサーバ105を含むことができる。
【0007】
一実施形態では、システム100は、ビデオコンテンツの符号化及び復号化を実施する。様々な実施形態では、ビデオゲームアプリケーション、クラウドゲーミングアプリケーション、仮想デスクトップインフラストラクチャアプリケーション又は画面共有アプリケーション等の様々なアプリケーションが、システム100によって実施される。他の実施形態では、システム100は、他のタイプのアプリケーションを実行する。一実施形態では、サーバ105は、ビデオ又は画像のフレームをレンダリングし、レンダリングしたフレームをビットストリームに符号化し、次いで、符号化したビットストリームを、ネットワーク110を介してクライアント115に伝送する。クライアント115は、符号化されたビットストリームを復号化し、ビデオ又は画像のフレームを生成して、ディスプレイ120又はディスプレイコンポジタに送る。
【0008】
ネットワーク110は、無線接続、直接ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域エリアネットワーク(WAN)、イントラネット、インターネット、ケーブルネットワーク、パケット交換網、光ファイバネットワーク、ルータ、ストレージエリアネットワーク、若しくは、他のタイプのネットワークを含む、任意のタイプのネットワーク又はネットワークの組み合わせを表す。LANの例は、イーサネット(登録商標)ネットワーク、光ファイバ分散データインタフェース(FDDI)ネットワーク及びトークンリングネットワークを含む。様々な実施形態では、ネットワーク110は、リモートダイレクトメモリアクセス(RDMA)ハードウェア及び/若しくはソフトウェア、伝送制御プロトコル/インターネットプロトコル(TCP/IP)ハードウェア及び/若しくはソフトウェア、ルータ、リピータ、スイッチ、グリッド、並びに/又は、他の構成要素を含む。
【0009】
サーバ105は、ビデオ/画像フレームをレンダリングし、フレームをビットストリームに符号化するためのソフトウェア及び/又はハードウェアの任意の組み合わせを含む。一実施形態では、サーバ105は、1つ以上のサーバの1つ以上のプロセッサで実行される1つ以上のソフトウェアアプリケーションを含む。また、サーバ105は、ネットワーク通信機能、1つ以上の入出力装置、及び/又は、他の構成要素を含む。サーバ105のプロセッサ(複数可)は、任意の数及びタイプのプロセッサ(例えば、グラフィックスプロセッシングユニット(GPU)、中央演算処理装置(CPU)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)等)を含む。プロセッサ(複数可)は、プロセッサ(複数可)によって実行可能なプログラム命令を記憶する1つ以上のメモリデバイスに結合されている。同様に、クライアント115は、ビットストリームを復号化し、フレームをディスプレイ120に送るためのソフトウェア及び/又はハードウェアの任意の組み合わせを含む。一実施形態では、クライアント115は、1つ以上のコンピューティングデバイスの1つ以上のプロセッサで実行される1つ以上のソフトウェアアプリケーションを含む。様々な実施形態では、クライアント115は、コンピューティングデバイス、ゲームコンソール、モバイルデバイス、ストリーミングメディアプレーヤ、又は、他のタイプのデバイスである。
【0010】
図2を参照すると、ビデオのフレームを符号化するためのサーバ200のソフトウェア構成要素の一実施形態のブロック図が示されている。他の実施形態では、サーバ200は、他の構成要素を含むこと、及び/又は、
図2に示す以外の他の適切な方法で構成されることに留意されたい。ビデオの新しいフレーム205が、サーバ200によって受信され、制御ロジック220及びエンコーダ230に提供される。制御ロジック220及びエンコーダ230の各々は、ハードウェア及び/又はソフトウェアの任意の適切な組み合わせを使用して実装される。制御ロジック220は、新しいフレーム205を符号化する際にエンコーダ230によって使用される量子化パラメータ(QP)225を生成する。一実施形態では、制御ロジック220は、以前のフレーム(複数可)のパラメータ210、及び/又は、新しいフレーム205の第1のパスの符号化からのパラメータに基づいて、QP225を生成する。様々な実施形態では、これらのパラメータは、分散、イントラ予測係数、インター対イントラ比のうち1つ以上、及び/又は、1つ以上の他のパラメータを含む。一実施形態では、制御ロジック220は、新しいフレーム205の分析中、及び/又は、第1のパスの符号化中に生成された統計値に基づいて、新しいフレームパラメータ215を生成する。制御ロジック220は、新しいフレームパラメータ215をメモリ240に記憶し、新しいフレームパラメータ215は、新しいフレーム205の第2のパス、及び/又は、ビデオストリームの後続のフレームを符号化するために使用される。メモリ240は、符号化プロセスに関連するデータ及び/又は命令を記憶するための任意の数及びタイプのメモリ又はキャッシュデバイス(複数可)を表す。
【0011】
エンコーダ230は、新しいフレーム205を受信し、制御ロジック220によって生成されたQP225と等しいQP値を用いて、新しいフレーム205を符号化する。一実施形態では、エンコーダ230は、新しいフレーム205の符号化を開始すると、開始QP値を、制御ロジック220によって計算されたQP225と等しくなるように設定する。エンコーダ230の出力は、符号化されたフレーム235であり、この符号化されたフレーム235は、1つ以上のクライアント(例えば、
図1のクライアント115)に伝送され、及び/又は、メモリに記憶される。一実施形態では、制御ロジック220は、新しいフレーム205の第1のパスの符号化を実行し、エンコーダ230は、新しいフレーム205の第2のパスの符号化を実行する。別の実施形態では、エンコーダ230は、新しいフレーム205の第1のパスの符号化及び第2のパスの符号化を実行する。さらなる実施形態では、新しいフレーム205のシングルパスの符号化のみがエンコーダ230によって実行される。
【0012】
一実施形態では、制御ロジック220は、以前のフレーム(複数可)のパラメータ210及び/又は新しいフレーム205の第1のパスの符号化からのパラメータに基づいて、複雑度指標を生成する。次に、複雑度指標を用いて、結果として得られる符号化ビットストリームに対して選択されたビットレートに基づいて、新しいフレーム205を符号化するための開始QP値225が生成される。エンコーダ230は、適切な開始QP値225を選択することによって、通常、新しいフレーム205の符号化中のQP調整を少なくすることができる。これは、結果として得られる符号化されたフレーム235の表示品質を向上させるのに役立つ。
【0013】
図3を参照すると、ビデオフレームを符号化するための量子化パラメータ(QP)を計算する式が示されている。圧縮されたフレームのサイズは、式305に示す式に従って計算される。圧縮されたフレームのビットサイズは、複雑度指標を、2のQP/α乗の値で除算したものに等しい。複雑度指標は、エンコーダがフレームを圧縮することの難しさを表す値である。QP値の範囲は、アドバンスドビデオコーディング(AVC)及び高効率ビデオコーディング(HEVC)のビデオ圧縮規格の場合、0~51である。VP9規格の場合、QP値の範囲は0~255である。α値は、特定のエンコーダで実験的に導出された定数値である。式310は、QPについて式305を解くことによって生成される。
【0014】
一実施形態では、所定のフレームについての複雑度指標を導出するために、以下のパラメータが求められる。最初に、フレームiの分散、すなわちvariance(i)が求められる。また、QPiでのフレームiに対するイントラ予測の有効度を表す値、すなわちintra_pred_factor(i,QPi)が求められる。ここで、「intra_pred_factor(i,QPi)」は、本明細書では「イントラ予測係数」とも呼ばれることに留意されたい。さらに、QPiでのフレームiのインタービット(inter bits)とイントラビット(intra bits)との比率、すなわちinter_intra_ratio(i,QPi)が求められる。ここで、「inter_intra_ratio(i,QPi)」は、本明細書では「インター対イントラ比」とも呼ばれることに留意されたい。これらのパラメータについて、一実施形態では、「i」は、以前に符号化されたフレームの番号である。別の実施形態では、「i」は、現在符号化中のフレームの第1のパスの番号である。同様に、一実施形態では、「QPi」は、以前に符号化されたフレームに使用されるQP値であり、別の実施形態では、「QPi」は、現在符号化中のフレームの第1のパスに使用されるQP値である。シングルパスエンコーダでは、3つのパラメータ(variance(i)、intra_pred_factor(i,QPi)、inter_intra_ratio(i,QPi))は、以前に符号化されたフレームから累積される。2パスエンコーダでは、これら3つのパラメータは、第1のパスで累積される。
【0015】
一実施形態では、「complex」値の構成要素の1つは、フレームに含まれる情報の分量(measure)である。一実施形態では、フレームに含まれる情報を測定するために使用される値は、アクティビティ(activity)である。一実施形態では、アクティビティは、隣接するピクセル間の絶対差の和を加算することによって計算される。別の実施形態では、分散は、フレームに含まれる情報を測定するために使用される。この実施形態では、フレームの分散は、次の式、すなわち、variance(i)=Σbblock_variance(b)によって求められる。この式において、「b」はフレーム内のブロック番号であり、ブロックのサイズは16x16ピクセル、32x32ピクセル、64x64ピクセル又は他のサイズである。また、この式において、block_variance(b)は、ブロック「b」におけるピクセル値の分散である。
【0016】
図4を参照すると、フレームの符号化に関連するパラメータを計算するための式が示されている。intra_pred_factor(i,QP
i)値は、フレームに対するイントラ予測の有効度を表す。本明細書で使用される「イントラ予測」は、所定のフレーム内のピクセル値を、同じ所定のフレーム内の他のピクセル値に基づいて予測することを指す。フレームを符号化する間、エンコーダは、イントラブロックを(QP
iで)符号化するのに必要なビット数を供給する。この値はintraBits(b)と呼ばれ、intraBits(b)は、エンコーダのレート歪み最適化(RDO)プロセスで使用される統計値の1つである。一実施形態では、intra_pred_factor(i,QP
i)は、式405を使用して導出される。
【0017】
フレーム間では、inter_intra_ratio(i,QPi)値は、(QPiで)必要なイントラビットに対する必要なインタービットの比である。本明細書で使用される「インタービット」という用語は、インターフレーム符号化のみを使用してフレームを符号化するの必要なビット数を指す。「インターフレーム符号化」という用語は、フレームの符号化を、フレームの前及び/又は後の1つ以上の他のフレームからの情報を使用して行い、フレーム内の他のピクセルからの情報を使用しないで行うこととして定義される。また、「イントラビット」という用語は、イントラフレーム符号化(すなわち、イントラ予測)のみを使用してフレームを符号化するのに必要なビット数を指す。interBits(b)値は、intraBits(b)値と同様にエンコーダによって供給される。一実施形態では、inter_intra_ratio(i,QPi)値は、式410から導出される。
【0018】
所定のフレームの符号化が完了すると、フレームiに対して次のパラメータ、すなわち、variance(i)、intra_pred_factor(i,QPi)、inter_intra_ratio(i,QPi)及びsize(i,QPi)を使用することができる。size(i,QPi)パラメータは、符号化されたフレームiのビット単位のサイズを表す。一実施形態では、実際のフレーム複雑度値(actual_complexity)が、式415を使用して導出される。一実施形態では、イントラフレームの推定複雑度値(estimated_complexity)が、式420、すなわち、estimated_complexity=variance(i)×intra_pred_factor(i,QPi)を使用して導出される。一実施形態では、インターフレームの推定複雑度値が、式425、すなわち、estimated_complexity=variance(i)×intra_pred_factor(i,QPi)×inter_intra_ratio(i,QPi)を使用して導出される。
【0019】
一実施形態では、圧縮されたフレームの好ましいサイズ(又は、SIZE)が既知である場合には、size(i,QPi)<SIZEである場合に、重み係数が、式430に示す次の式、すなわち、weight=size(i,QPi)/SIZEを使用して計算される。また、size(i,QPi)≧SIZEの場合、重み係数が、式435に示す次の式、すなわち、weight=SIZE/size(i,QPi)を使用して計算される。一実施形態では、好ましいQP(又は、QPpreferred)が既知である場合には、QPi<QPpreferredの場合に、重み係数が、式440に示す次の式、すなわち、weight=QPi/QPpreferredを使用して計算される。また、QPi≧QPpreferredの場合に、重み係数が、式445に示す次の式、すなわち、weight=QPpreferred/QPiを使用して計算される。一実施形態では、複雑度指標は、式450に示す次の式、すなわち、complex=(weight×actual_complexity)+((1-weight)×estimated_complexity)を使用して計算される。複雑度指標が計算されると、SIZE又はQPの値が、それぞれ式305又は式310を使用して導出される。
【0020】
図5を参照すると、ビデオフレームを符号化する際に用いる量子化パラメータ(QP)を求める方法500の一実施形態が示されている。説明のために、本実施形態のステップ及び
図6~
図8のステップを順に示す。ただし、記載する方法の様々な実施形態では、記載された要素のうち1つ以上が、同時に行われてもよいし、図示した順序と異なる順序で行われてもよいし、完全に省略されてもよいことに留意されたい。他の追加の要素も、必要に応じて実行される。本明細書に記載される様々なシステム又は装置の何れも、方法500を実施するように構成されている。
【0021】
エンコーダに接続された制御ロジックは、以前のビデオフレームに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。上述したように、複雑度指標は、以前のビデオフレームを符号化することの難易度を表す(ブロック505)。一実施形態では、第1のパラメータは、分散である。別の実施形態では、第1のパラメータは、イントラ予測係数である。さらなる実施形態では、第1のパラメータは、インター対イントラ比である。他の実施形態では、第1のパラメータは、これらのパラメータのうち複数、及び/又は、1つ以上の他のパラメータを含む。いくつかの実施形態では、制御ロジックは、2つ以上の以前のビデオフレームに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。
【0022】
次に、制御ロジックは、複雑度指標に基づいて、及び、符号化されるビデオフレームの好ましいサイズに基づいて、量子化パラメータ(QP)値を計算する(ブロック510)。一実施形態では、QP値は、(
図3の)式310を使用して計算される。一実施形態では、符号化されるビデオフレームの好ましいサイズは、符号化されるビデオストリームを伝送するための好ましいビットレートに基づいて決定される。例えば、一実施形態では、好ましいビットレートはビット/秒で指定され(例えば、3メガビット/秒(Mbps))、ビデオシーケンスのフレームレートはフレーム/秒(fps)で指定される(例えば、60fps、24fps)。この実施形態では、制御ロジックは、好ましいビットレートをフレームレートで除算して、符号化されるビデオフレームの好ましいサイズを計算する。次に、エンコーダは、現在のビデオフレームを符号化するためのQPを、制御ロジックによって計算されたQP値に設定する(ブロック515)。次に、エンコーダは、計算されたQP値で現在のビデオフレームを符号化し、符号化した現在のビデオフレームをデコーダに伝送する(ブロック520)。ブロック520の後に、方法500は終了する。
【0023】
図6を参照すると、符号化されるフレームの推定サイズを、複雑度指標に基づいて計算する方法600の一実施形態が示されている。エンコーダに接続された又はエンコーダ内に組み込まれた制御ロジックは、以前のビデオフレームに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。ここで、複雑度指標は、以前のビデオフレームを符号化することの難易度を表す(ブロック605)。次に、制御ロジックは、複雑度指標に基づいて、及び、ビデオフレームの符号化に使用される所定のQPに基づいて、符号化されるビデオフレームの推定サイズを計算する(ブロック610)。ブロック610の後に、方法600は終了する。
【0024】
図7を参照すると、ビデオフレームを符号化する際に用いるQPを求める方法700の一実施形態が示されている。エンコーダに関連する制御ロジックは、所定のビデオフレームを符号化する第1のパスに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。ここで、複雑度指標は、所定のビデオフレームの第1のパスの符号化における難易度を表す(ブロック705)。次に、制御ロジックは、複雑度指標に基づいて、及び、最終的に符号化される所定のビデオフレームの好ましいサイズに基づいて、量子化パラメータ(QP)値を計算する(ブロック710)。最終的に符号化される所定のビデオフレームは、所定のビデオフレームの第2のパスの符号化の出力を指す。次に、エンコーダは、所定のビデオフレームの第2のパスの符号化のためのQPを、制御ロジックによって計算されたQP値に設定する(ブロック715)。ブロック715の後に、方法700は終了する。
【0025】
図8を参照すると、符号化されるフレームの推定サイズを、複雑度指標に基づいて計算する方法800の一実施形態が示されている。エンコーダに結合された制御ロジックは、所定のビデオフレームを符号化する第1のパスに関連する第1のパラメータに少なくとも基づいて、複雑度指標を計算する。ここで、複雑度指標は、所定のビデオフレームの第1のパスの符号化における難易度を表す(ブロック805)。次に、制御ロジックは、複雑度指標に基づいて、及び、所定のビデオフレームの第1のパスの符号化に使用される所定のQPに基づいて、最終的に符号化される所定のビデオフレームの推定サイズを計算する(ブロック810)。ブロック810の後に、方法800は終了する。
【0026】
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に記載された方法及び/又はメカニズムを実施する。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態において、そのようなプログラム命令は、高水準プログラミング言語によって表すことができる。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ、中間又は他の形式にコンパイルされてもよい。或いは、ハードウェアの動作又は設計を記述するプログラム命令を書き込むことができる。このようなプログラム命令を、C等の高水準のプログラミング言語によって表すことができる。或いは、Verilog等のハードウェア設計言語(HDL)を使用することができる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、このようなコンピューティングシステムは、少なくとも1つのメモリと、プログラム命令を実行することができる1つ以上のプロセッサと、を含む。
【0027】
上記の実施形態は、実施形態の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に認識されると、当業者には多数の変形及び修正が明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図されている。