【文献】
ZHANG, Kui and KITTLER, Josef,Proposed Amendments for Annex U on Enhanced Reference Picture Selection,ITU - Telecommunications Standardization Sector STUDY GROUP 16 Video Coding Experts Group (Question 15) Eighth Meeting: Berlin, 03-06 August, 1999, [Q15-H-09],1999年 8月,pp. 1-5
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
本願の実施例の技術案をより明確に説明するために、以下に実施例の記述において必要な図面を用いて簡単に説明を行うが、当然ながら、以下に記載する図面は単に本願の実施例の一例であって、当業者であれば、創造的な労力を要することなく、これらの図面に基づいて他の図面に想到しうる。
【0012】
本願の目的、技術案及び利点をより明確にするために、以下に図面を参照しながら実施例によって本願を更に詳しく説明する。ここで説明される具体的な実施例は本願を解釈するためのものであり、本願を制限するためのものではないと理解すべきである。
【0013】
図1は一実施例におけるビデオの符号化処理方法の応用環境を示す図である。
図1に示すように、該応用環境にはネットワーク経由で接続される第1端末110及び第2端末120が含まれる。第1端末110及び第2端末120がビデオ符号化・復号機能を有する。一実施例では、第1端末110及び第2端末120にはビデオ通話アプリケーションプログラムがインストールされてもよい。第1端末110及び第2端末120がデスクトップパソコン又はモバイル端末であってもよく、モバイル端末は携帯電話、タブレットPC、パーソナルデジタルアシスタント及びウェアラブルデバイス等のうちの少なくとも1つを含んでもよい。
【0014】
一実施例では、第1端末110及び第2端末120がビデオ通話アプリケーションプログラムによってビデオ通話をリアルタイムに行う。第1端末110は前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することができる。第1端末110は占める割合に基づいて現在のビデオシーンが変化したかどうかを確定し、変化したことを確定する場合、占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することができる。第1端末110はターゲットビットレートに基づいてフレーム内符号化フレームを符号化することができる。更に、第1端末110は符号化して得られた符号化ビデオストリームを第2端末120(すなわち、ビデオ通話相手側)に送信することができ、第2端末120が受信された符号化ビデオストリームを復号再生する。
【0015】
多者ビデオ通話を実現することができるため、第2端末120が少なくとも1つであってもよいと理解される。
【0016】
説明すべきことは、
図1に示される応用環境を示す図は本願に係るビデオの符号化処理方法の一実施例に過ぎない。他の実施例では、第1端末110は更にサーバによって第2端末120とネットワーク接続を実現することができ、つまり、第1端末110は符号化後の符号化ビデオストリームをサーバに送信して、サーバによって該符号化ビデオストリームを第2端末120に転送することができる。
【0017】
本願に係るビデオの符号化処理方法はビデオリアルタイム通話シーンに適用されるだけでなく、ビデオオンライン生放送応用環境にも適用され、該応用環境は第3端末、サーバ及び第4端末を含むと理解される。第3端末は収集されたビデオフレームをサーバに送信することに用いられ、サーバはビデオフレームを符号化して符号化後の符号化ビデオストリームを第4端末にプッシュすることに用いられ、第4端末はサーバがプッシュした符号化ビデオストリームを復号して再生することに用いられる。そうすると、本願に係るビデオの符号化処理方法は該ビデオオンライン生放送応用環境におけるサーバに適用され、該応用環境におけるサーバが本願に係るビデオの符号化処理方法でフレーム内符号化フレームを符号化することにより、生放送ビデオストリームの符号化を実現し、符号化後の符号化ビデオストリームを第4端末に送信して復号再生する。
【0018】
ここで、「第1」「第2」「第3」及び「第4」は区分説明するためのものであって、他の従属、権限及び順序等の面で制限するためのものではないと理解される。
【0019】
図2は一実施例におけるビデオの符号化処理方法のフローチャートである。本実施例は主に該ビデオの符号化処理方法がコンピュータ機器に適用される場合を例として説明し、該コンピュータ機器が
図1における第1端末110又は第2端末120であってもよいし、上記ビデオオンライン生放送応用環境におけるサーバであってもよい。
図2に示すように、該方法は具体的に以下のステップを含む。
【0020】
S202、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得する。
【0021】
フレーム間予測フレームはビデオ画像インターの関連性を利用して他のビデオフレームを参照して符号化するビデオフレームである。フレーム間予測フレームはPフレーム(前方フレーム間予測フレーム、Predictive−codedPicture)及び/又はBフレーム(双方向フレーム間予測フレーム、Bidirectionally predicted picture)を含む。
【0022】
1組のビデオフレームシーケンス(GOP:Group of Picture)はフレーム内符号化フレーム(Iフレーム、Intra−coded picture)を開始フレームとする、フレーム間予測フレームを含む1組のビデオフレームシーケンスである。前の1グループのビデオフレームシーケンスは現在グループのビデオフレームシーケンスに最も接近する前の1組のビデオフレームシーケンスである。現在グループのビデオフレームシーケンスは現在の符号化対象のビデオフレームシーケンスである。
【0023】
具体的に、コンピュータ機器は前の1グループのビデオフレームシーケンス内の全部又は一部のフレーム間予測フレームを選択してもよい。一実施例では、コンピュータ機器は前の1グループのビデオフレームシーケンス内の現在グループのビデオフレームシーケンスに最も接近する1つのフレーム間予測フレームを選択してもよい。コンピュータ機器は更に前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定し、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから数が該総数より小さい複数の連続したフレーム間予測フレームを選択してもよい。例えば、前の1グループのビデオフレームシーケンスが(I
pre,P1,P2,B1,P3,P4)である場合、コンピュータ機器は最も接近する1つのP4フレームを選択してもよいし、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから数が前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数5より小さい複数の連続したフレーム間予測フレームを選択してもよい。例えば、3つの最も接近する連続したフレーム間予測フレームP4、P3及びB1を選択する。
【0024】
コンピュータ機器は前の1グループのビデオフレームシーケンス内の完全に連続しないフレーム間予測フレームを選択してもよいと理解される。例えば、コンピュータ機器はP1、B1、P3及びP4を選択してもよく、P1がB1に連続しない。
【0025】
フレーム内予測ブロック(Intraブロック)は1フレームにフレーム内符号化モードで符号化するブロックである。フレーム内予測ブロックは隣接する画素の関連性を利用して、画素ブロックの左側及び上側の画素によって予測し、実際値と予測値との差値のみを符号化するブロックである。
【0026】
1フレームのフレーム間予測フレームは複数のブロックで構成され、フレーム間予測フレームを構成するこの複数のブロックにはフレーム内予測ブロック及びフレーム間予測ブロックが含まれると理解される。フレーム間予測ブロック(Interブロック)は1フレームにインター符号化モードで符号化するブロックである。
【0027】
フレーム内予測ブロックの占める割合は同じフレーム間予測フレームを構成するすべてのブロックにおいて、フレーム内予測ブロックが占有した比率である。例えば、30個のブロックが1つのフレーム間予測フレームを構成し、フレーム内予測ブロックが10個ある場合、フレーム内予測ブロックの占める割合が10/30=1/3である。
【0028】
ステップS202において選択されたのが複数のフレーム間予測フレームである場合、それぞれ各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得する必要があると理解される。
【0029】
S204、占める割合に基づいて現在のビデオシーンが変化したかどうかを確定し、変化したことを確定する場合、占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定する。
【0030】
ビットレート、すなわちビデオビットレートはデータ伝送時に単位時間内に伝送するデータビット数である。
【0031】
現在のビデオシーンは現在のビデオシーンである。ビデオシーンはビデオ画像全体で展示する。ビデオシーンが変化したとは、現在のビデオ画像の安定性又は密集度が変化したことを意味し、例えば、現在のビデオシーンが静止状態から運動状態に変える場合、現在のビデオ画像の安定性が変化したと説明され、現在のビデオシーンが変化し、更に、又は、現在のビデオシーンの背景が簡単から複雑になる場合、現在のビデオ画像の密集度が変化したと説明され、現在のビデオシーンが変化した。
【0032】
一実施例では、コンピュータ機器はフレーム内予測ブロックの占める割合に基づいて現在のビデオシーンが変化したかどうかを判断することができる。具体的に、コンピュータ機器は取得されたフレーム内予測ブロックの占める割合を予め設定されたフレーム内予測ブロックの占める割合閾値と直接比較し、比較結果に基づき、現在のビデオシーンが変化したかどうかを判断することができる。
【0033】
一実施例では、選択されたフレーム間予測フレームが複数の連続したフレーム間予測フレームである場合、占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の最大値と最小値を確定することと、複数の予め設定された、フレーム内予測ブロックの占める割合閾値を取得することと、最大値と最小値との間に少なくとも1つのフレーム内予測ブロックの占める割合閾値が存在する場合、現在のビデオシーンが変化したことを判断することと、を含む。
【0034】
一実施例では、複数の予め設定された、フレーム内予測ブロックの占める割合閾値は、
【0036】
であってもよく、Threがフレーム内予測ブロックの占める割合閾値を示す。
【0037】
以下、上記複数の予め設定された、フレーム内予測ブロックの占める割合閾値と組み合わせてどのように現在のビデオシーンが変化したことを判断するかを説明する。例えば、各占める割合の最大値と最小値がそれぞれ15%と8%であり、最大値15%と最小値8%との間に1つのフレーム内予測ブロックの占める割合閾値10%(Thre
3)がある場合、現在のビデオシーンが変化したことを判断する。
【0038】
一実施例では、占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、更に、最大値と最小値が隣接する2つのフレーム内予測ブロックの占める割合閾値の間にあるかどうかを判断することと、最大値と最小値が隣接する2つのフレーム内予測ブロックの占める割合閾値の間にある場合、現在のビデオシーンが変化していないことを判断することと、を含む。
【0039】
同様に上記複数の予め設定された、フレーム内予測ブロックの占める割合閾値と組み合わせて例を挙げて説明する。例えば、各占める割合の最大値と最小値がそれぞれ8%と6%であり、最大値8%と最小値6%が隣接する2つのフレーム内予測ブロックの占める割合閾値5%(Thre
2)と10%(Thre
3)との間にある場合、現在のビデオシーンが変化していないことを判断する。
【0040】
選択されたフレーム間予測フレームが1つである場合、取得されたフレーム内予測ブロックの占める割合が1つであると理解される。具体的に、コンピュータ機器は該フレーム間予測フレームにおける各フレーム内予測ブロックの分布位置及び分布傾向、並びにフレーム内予測ブロックの占める割合の大きさに基づき、現在のビデオシーンが変化したかどうかを直接判断することができる。
【0041】
具体的に、占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、コンピュータ機器は占める割合そのものに基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することができる。
【0042】
一実施例では、選択されたフレーム間予測フレームが1つである場合、取得されたフレーム内予測ブロックの占める割合が1つしかない。コンピュータ機器は占める割合と予め設定されたビットレートとのマッピング関係に基づき、該占める割合に対応してマッピングする予め設定されたビットレートを現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとして取得することができる。
【0043】
他の実施例では、選択されたフレーム間予測フレームが複数である場合、取得されたフレーム内予測ブロックの占める割合も複数ある。コンピュータ機器は該複数の占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することができる。コンピュータ機器は該複数の占める割合から一部の占める割合を選択し、該選択された一部の占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することもできる。一実施例では、コンピュータ機器は更に現在グループのビデオフレームシーケンスに最も接近するフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を選択し、該占める割合に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することができる。
【0044】
S206、ターゲットビットレートに基づいてフレーム内符号化フレームを符号化する。
【0045】
具体的に、コンピュータ機器は確定された現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートに基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームを符号化することができる。
【0046】
上記実施例では、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームを符号化するとき、選択された前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合によって、現在のビデオシーンが変化したかどうかを判断する。現在のビデオシーンが変化したことを確定する場合、フレーム内予測ブロックの占める割合に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定する。フレーム内予測ブロックの占める割合は画像同士の関連性の強さを示すことができ、画像同士の関連性の強さを示すことのできるフレーム内予測ブロックの占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートの割り当てを確定することにより、現在のビデオシーンが変化したとき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートの割り当てをより正確にし、それにより適応符号化機能を向上させる。
【0047】
一実施例では、選択されたフレーム間予測フレームが複数の連続したフレーム間予測フレームである。変化したことを確定する場合、占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することは、占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値を確定することと、占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することと、を含み、ターゲットビットレートが占める割合の平均値と負相関する。
【0048】
占める割合の平均値が算術平均値であってもよいし、加重平均値であってもよい。一実施例では、コンピュータ機器は選択された各フレーム間予測フレームと現在グループのビデオフレームシーケンスとの距離の大きさに基づき、各フレーム間予測フレームに対応する重みを割り当てることができる。重みが現在グループのビデオフレームシーケンスの距離と逆相関し、現在グループのビデオフレームシーケンスとの距離が小さければ小さいほど(つまり、近ければ近いほど)、対応する重みが大きくなり、現在グループのビデオフレームシーケンスとの距離が大きければ大きいほど(つまり、遠くければ遠いほど)、対応する重みが小さくなる。
【0049】
一実施例では、コンピュータ機器は占める割合の平均値と予め設定されたビットレートとのマッピング関係に基づき、確定された占める割合の平均値にマッピングする予め設定されたビットレートを現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとして取得することができる。ターゲットビットレートが占める割合の平均値と負相関する。
【0050】
他の実施例では、コンピュータ機器は占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定し、該比率が占める割合の平均値と負相関し、シングルフレームの平均ビットレートを取得し、シングルフレームの平均ビットレート及び比率に基づき、フレーム内符号化フレームのターゲットビットレートを取得することもできる。
【0051】
シングルフレームの平均ビットレートは1フレームの平均ビットレートである。一実施例では、コンピュータ機器にはエンコーダが設置されてもよく、エンコーダによってビデオフレームを符号化する。エンコーダにはいずれも符号化パラメータが予め設定され、該符号化パラメータは1秒当たりのターゲットビットレート及びフレームレートを含み、該符号化パラメータは更にシングルフレームの平均ビットレートを含んでもよい。一実施例では、エンコーダにはシングルフレームの平均ビットレートを予め設定してもよく、コンピュータ機器は予め設定されたシングルフレームの平均ビットレートを取得することができる。他の実施例では、エンコーダには1秒当たりのターゲットビットレート及びフレームレートを予め設定してもよく、コンピュータ機器は予め設定された1秒当たりのターゲットビットレート及びフレームレートを取得し、1秒当たりのターゲットビットレートをフレームレートで割って、シングルフレームの平均ビットレートを取得することができる。
【0052】
一実施例では、コンピュータ機器は占める割合の平均値と予め設定された比率とのマッピング関係に基づき、占める割合の平均値にマッピングする予め設定された比率を前組のビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率として取得することができる。該比率が占める割合の平均値と負相関する。コンピュータ機器は該比率と取得されたシングルフレームの平均ビットレートとの積に基づき、前組のビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得することができる。
【0053】
上記実施例では、占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値に基づく。占める割合の平均値は画像同士の関連性の強さを示すことができ、占める割合の平均値がより小さい場合、静止シーンである場合が多く、画像同士の関連性がより強く、占める割合の平均値がより大きい場合、運動シーンである場合が多く、画像同士の関連性がより弱い。占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定し、ターゲットビットレートが占める割合の平均値と負相関する。占める割合の平均値がより小さく、画像同士の関連性がより強い場合、フレーム間予測フレームに必要なビットレートがより低く、この時、ビデオ全体の圧縮効率を向上させるために、フレーム内符号化フレームのビットレートを増加させてもよいと理解される。占める割合の平均値がより大きく、画像同士の関連性がより弱い場合、フレーム間予測フレームに必要なビットレートがより高く、この時、フレーム内符号化フレームのビットレートを減少させてもよい。
【0054】
一実施例では、ステップS202は、選択のターゲット数を取得することと、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから、選択のターゲット数を満たす連続したフレーム間予測フレームを選択することと、選択されたフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することと、を含む。
【0055】
選択のターゲット数はフレーム間予測フレームを選択すべきターゲット数である。一実施例では、選択のターゲット数は予め設定された選択数であってもよい。
【0056】
他の実施例では、選択のターゲット数を取得することは、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定することと、予め設定された選択数を取得することと、予め設定された選択総数及び確定された数のうちのより小さい値を選択のターゲット数とすることと、を含む。
【0057】
前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数は前の1グループのビデオフレームシーケンス内のすべてのフレーム間予測フレームの数の総和である。予め設定された選択数は予め設定された選択すべきフレーム間予測フレームの数である。
【0058】
具体的に、コンピュータ機器は予め設定された選択総数及び確定された数のうちのより小さい値を確定し、確定されたより小さい値を選択のターゲット数とすることができる。該実施例におけるより小さい値の選択方式によって、現在グループのビデオフレームシーケンス内のフレーム間予測フレームの総数が予め設定された選択数より小さい場合の選択誤りという問題を防止することができ、システムの柔軟性と安定性を強化すると理解される。
【0059】
上記実施例では、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから、選択のターゲット数を満たす連続したフレーム間予測フレームを選択することにより、選択されたフレーム間予測フレームの状態と現在グループのビデオフレームシーケンスのフレーム内符号化フレームとの関連性を強化し、現在のビデオシーンにおけるフレーム内符号化フレームに必要なターゲットビットレートをより正確に示すことができる。
【0060】
一実施例では、占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定することは、逓減の予め設定された区分関数における、占める割合の平均値に対応する区分を確定することと、確定された区分に対応する予め設定された比率を取得することと、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることと、を含む。
【0061】
区分関数は、独立変数の値の異なる区間に対して異なる対応法則がある関数である。対応法則は独立変数と従属変数との依存関係を示すことに用いられ、例えば、y=f(x)は変数yが変数xの関数であることを示し、fが変数yと変数xとの対応法則を示す。区分関数の独立変数は同じ値区間内に同じ対応法則を有し、異なる値区間の独立変数はそれぞれ異なる対応法則がある。区分関数は複数の限られた区分を含むことを理解することができる。区分関数の各区分は独立変数の値区間に基づいて分けられ、独立変数の同じ値区間が1つの区分に対応する。
【0062】
逓減の予め設定された区分関数は予め設定された逓減の区分関数である。区分関数における独立変数の異なる値区間を比較し、比較結果がより大きな独立変数値区間の逓減の区分関数における対応区分に対応する関数値はより小さい。区分関数に対して、より大きな値区間における独立変数の任意値がより小さな値区間における独立変数の値より大きく、例えば、値区間1が0以上5%未満、値区間2が5%以上10%未満である場合、値区間2が値区間1より大きく、値区間2における任意値がいずれも値区間1における独立変数の値より大きいと理解される。
【0063】
具体的に、コンピュータ機器は予め設定された占める割合の平均値と予め設定された区分関数における各区分とのマッピング関数に基づき、予め設定された区分関数における、該占める割合の平均値に対応する区分を確定することができる。例えば、占める割合の平均値が8%である場合、予め設定された区分関数における第2区分に対応する。
【0064】
更に、コンピュータ機器は確定された区分に対応する予め設定された比率を取得し、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることができる。一実施例では、コンピュータ機器は予め設定された区分と予め設定された比率との対応関係を取得し、該区分に対応する予め設定された比率を取得することができる。例えば、第2区分に対応する予め設定された比率が5:1である。
【0065】
他の実施例では、区分関数が区分的定数関数である。区分的定数関数の関数値が複数の定数であり、同じ値区間の独立変数が同じ定数関数値に対応し、異なる値区間の独立変数が異なる定数関数値に対応する。区分関数における独立変数の異なる値区間を比較し、比較結果がより大きな独立変数値区間の逓減の区分的定数関数における対応区分に対応する定数関数値はより小さいと理解される。本実施例では、区分的定数関数の各区分における定数関数値が該区分に対応する予め設定された比率である。
【0066】
上記実施例では、ターゲットビットレートを迅速に確定するために、逓減の予め設定された区分関数における、占める割合の平均値に対応する区分を確定し、確定された区分に対応する予め設定された比率を取得し、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることにより、複雑な計算をせずに、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を迅速且つ正確に確定することができ、それによりビデオ符号化効率を向上させる。
【0067】
図3に示すように、一実施例では、逓減の予め設定された区分関数における、占める割合の平均値に対応する区分を確定する(区分確定ステップと略称される)ことは、具体的に以下のステップを含む。
【0068】
S302、複数の予め設定されたビットレート割当の占める割合閾値を取得する。
【0069】
ビットレート割当の占める割合閾値は予め設定された、ビットレート割り当てを実現するための占める割合閾値である。説明すべきことは、ビットレート割当の占める割合閾値はフレーム内予測ブロックの占める割合閾値と同じ値を設定してもよいし、異なる値を設定してもよい。
【0070】
一実施例では、複数の予め設定されたビットレート割当の占める割合閾値は、
【0072】
であってもよく、THがビットレート割当の占める割合閾値を示す。
【0073】
S304、占める割合の平均値を複数の予め設定されたビットレート割当の占める割合閾値とそれぞれ比較して、占める割合の平均値の所在するビットレート割当の占める割合閾値区間を確定する。
【0074】
ビットレート割当の占める割合閾値区間は2つごとの大きさが隣接するビットレート割当の占める割合閾値で構成される区間である。異なるビットレート割当の占める割合閾値区間に含まれるビットレート割当の占める割合閾値が重複しないと理解される。1つの臨界位置にあるビットレート割当の占める割合閾値が1つのみのビットレート割当の占める割合閾値区間に含まれ、現在の1つのビットレート割当の占める割合閾値区間には該臨界位置にあるビットレート割当の占める割合閾値が含まれる場合、次のビットレート割当の占める割合閾値区間には該臨界位置にあるビットレート割当の占める割合閾値が含まれない。
【0075】
例えば、5%(TH
2)が1つの臨界位置にあるビットレート割当の占める割合閾値であり、ビットレート割当の占める割合閾値区間1が0以上5%未満である場合、ビットレート割当の占める割合閾値区間2は5%のビットレート割当の占める割合閾値を含み、ビットレート割当の占める割合閾値区間2が5以上15%未満である。
【0076】
以下、ステップS302における一実施例に示されるビットレート割当の占める割合閾値を例として占める割合の平均値の所在するビットレート割当の占める割合閾値区間を説明する。占める割合の平均値が30%、ビットレート割当の占める割合閾値区間がそれぞれ0以上5%未満、5%以上15%未満、15%以上40%未満、40%以上100%未満であると仮定する場合、占める割合の平均値30%が15%以上40%未満のビットレート割当の占める割合閾値区間にある。
【0077】
S306、複数のビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数から、該ビットレート割当の占める割合閾値区間に対応する区分を確定する。
【0078】
区分関数の関数のジャンプ点は区分関数を区分に分ける点である。大きさが隣接する2つの関数のジャンプ点の間は区分関数の1つの区分に対応する。
【0079】
2つごとの大きさが隣接するビットレート割当の占める割合閾値で構成されたビットレート割当の占める割合閾値区間は複数のビットレート割当の占める割合閾値を関数のジャンプ点とする予め設定された区分関数に対応する各区分に対応し、つまり、予め設定された区分関数では1つのビットレート割当の占める割合閾値区間は対応する区分があると理解される。
【0080】
一実施例では、2つごとの大きさが隣接するビットレート割当の占める割合閾値で構成されたビットレート割当の占める割合閾値区間は該区間を構成するビットレート割当の占める割合閾値を関数のジャンプ点として構成された区分に対応する。
【0081】
具体的に、コンピュータ機器は複数の予め設定されたビットレート割当の占める割合閾値を関数のジャンプ点とする予め設定された区分関数を予め設定することができ、該予め設定された区分関数が逓減の区分関数である。コンピュータ機器は該ビットレート割当の占める割合閾値区間を構成するビットレート割当の占める割合閾値を取得し、取得されたビットレート割当の占める割合閾値を関数のジャンプ点として構成された区分を確定し、該ビットレート割当の占める割合閾値区間に対応する区分を取得することができる。
【0082】
一実施例では、複数のビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数は、
【0084】
であり、Xが独立変数であり、Yが関数の従属変数であり、THがビットレート割当の占める割合閾値を示す。
【0085】
以下、ステップS302における一実施例に示されるビットレート割当の占める割合閾値を例としてどのように区分を確定するかを説明する。確定された占める割合の平均値15%の位置するビットレート割当の占める割合閾値区間が15%以上40%未満であると仮定する場合、該ビットレート割当の占める割合閾値区間に対応する区分が第3区分であり、該第3区分に対応する予め設定された比率(すなわち、関数値)が3である場合、予め設定された比率3を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とする。
【0086】
上記実施例では、複数のビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数を設定し、実際に計算するとき、ターゲットビットレートを迅速に取得するために、占める割合の平均値を複数のビットレート割当の占める割合閾値と比較すれば、対応するビットレート割当の占める割合閾値区間を確定でき、該区間に基づいて予め設定された区分関数における、対応する区分を迅速に確定することができ、更に現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を迅速に確定することができ、それによりビデオ符号化効率を向上させる。
【0087】
一実施例では、該方法は、更に、占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータを取得することと、平均量子化パラメータ及び予め設定された量子化パラメータのオフセット量に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータを確定することと、量子化パラメータに基づき、フレーム内符号化フレームを符号化することと、を含む。
【0088】
量子化パラメータ(Quantization parameter)は空間詳細圧縮状況を示し、QPがより小さい場合、多くの詳細が保存され、QPが大きくなる場合、いくつかの詳細が紛失し、ビットレートが減少し、画像歪みが増加して品質が低下する。フレーム間予測フレームの平均量子化パラメータは前の1グループのビデオフレームシーケンス内の各フレーム間予測フレームの量子化パラメータの平均値を求めて取得した平均量子化パラメータである。量子化パラメータのオフセット量は量子化パラメータをオフセットすべき量である。
【0089】
具体的に、コンピュータ機器は平均量子化パラメータから予め設定された量子化パラメータのオフセット量を引いて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータを取得することができる。コンピュータ機器は該量子化パラメータに基づいてフレーム内符号化フレームを符号化することができる。
【0090】
上記実施例では、現在のビデオシーンが変化していない場合、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータがより正確な参照となり、従って、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータ及び量子化パラメータのオフセット量に基づいて確定した現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータは現在のビデオビットレートのニーズを満たすことができ、それにより量子化パラメータに基づいてフレーム内符号化フレームを符号化し、ビデオ符号化品質を確保する。
【0091】
図4に示すように、一実施例では、該方法は更にターゲットビットレートの確定ステップを含み、具体的に以下のステップを含む。
【0092】
S402、占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレートと、含まれるフレーム間予測フレームの平均ビットレートとの第1比率を確定する。
【0093】
現在グループのビデオフレームシーケンスを符号化するとき、前の1グループのビデオフレームシーケンスの各ビデオフレームの符号化が既に完了し、符号化ビットレートが既に確定されたと理解される。コンピュータ機器は前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレート及び前の1グループのビデオフレームシーケンスに含まれるフレーム間予測フレームの平均ビットレートを取得し、含まれるフレーム内符号化フレームのビットレートを含まれるフレーム間予測フレームの平均ビットレートで割って第1比率を取得することができる。
【0094】
S404、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得する。
【0095】
量子化は圧縮すべき画像のデータに対して一定の変換マッピングを行う過程である。量子化ステップサイズは入力された画像を量子化・逆量子化処理する際に関わる1つの要素である。量子化ステップサイズの大きさが量子化前の入力画像と量子化及び逆量子化後の出力画像との差分と正相関する。量子化ステップサイズが小さければ小さいほど、量子化及び逆量子化後の出力画像が量子化前の入力画像に接近する。つまり、量子化ステップサイズがビデオの圧縮品質に影響を与える。
【0096】
現在グループのビデオフレームシーケンスを符号化するとき、前の1グループのビデオフレームシーケンスの各ビデオフレームの符号化が既に完了する場合、前の1グループのビデオフレームシーケンス内の各フレームの量子化ステップサイズが既に確定されたと理解される。コンピュータ機器は前の1グループのビデオフレームシーケンスに含まれるフレーム間予測フレームの量子化ステップサイズを取得して、各フレーム間予測フレームの平均量子化ステップサイズを求めることができる。コンピュータ機器は前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを取得し、含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得することができる。
【0097】
S406、第1比率と第2比率との積に基づき、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得する。
【0098】
具体的に、コンピュータ機器は直接第1比率と第2比率との積を現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと現在グループのビデオフレームシーケンスに含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率とすることができる。コンピュータ機器は第1比率と第2比率との積を対応するビットレート比率調整係数に乗じて、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと現在グループのビデオフレームシーケンスに含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得することもできる。
【0099】
S408、現在グループのビデオフレームシーケンスの総ターゲットビットレートを取得する。
【0100】
コンピュータ機器に符号化パラメータが予め設定され、該符号化パラメータには1組のビデオフレームシーケンスの総ビットレートが含まれると理解される。コンピュータ機器は予め設定された総ビットレートを現在グループのビデオフレームシーケンスの総ターゲットビットレートとして取得することができる。
【0101】
S410、総ターゲットビットレート及びビットレート比率に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得する。
【0102】
ビットレート比率は現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと含まれるフレーム間予測フレームの平均ターゲットビットレートとの比率であると理解される。
【0103】
具体的に、コンピュータ機器は現在グループのビデオフレームシーケンス内のフレーム間予測フレームの数を取得し、該数、総ターゲットビットレート及びビットレート比率に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得することができる。
【0104】
総ターゲットビットレートは現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと含まれる各フレーム間予測フレームのターゲットビットレートとの和であると理解される。
【0107】
公式に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得することができ、
C
Tが現在グループのビデオフレームシーケンスの総ターゲットビットレートであり、C
Iが現在グループのビデオフレームシーケンスのフレーム内符号化フレームのターゲットビットレートであり、CJ
iが現在グループのビデオフレームシーケンスの各フレーム間予測フレームのターゲットビットレートであり、nが現在グループのビデオフレームシーケンス内のフレーム間予測フレームの数であり、Rが現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率である。
【0108】
コンピュータ機器は取得された現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートに基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームを符号化することができると理解される。
【0109】
上記実施例では、現在のビデオシーンが変化していない場合、前の1グループのビデオフレームシーケンス内の各フレームのビットレート及び量子化ステップサイズがより正確な参照となり、従って、前の1グループのビデオフレームシーケンス内の各フレームのビットレート及び量子化ステップサイズに基づいて取得した現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートがより正確であり、それによりビデオ符号化品質を確保する。
【0110】
一実施例では、現在グループのビデオフレームシーケンスはビデオ通話アプリケーションにより取得されたビデオフレームシーケンスである。該方法は、更に、ビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信して復号再生することを含む。
【0111】
ビデオリアルタイム通話を実現するために、コンピュータ機器にビデオ通話アプリケーションがインストールされると理解される。ビデオリアルタイム通話過程において、コンピュータ機器はビデオストリーム送信側として、ビデオ通話アプリケーションによってビデオフレームシーケンスをリアルタイムに収集して、収集されたビデオフレームシーケンスを符号化することができる。確定されたターゲットビットレートに基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームを符号化した後、コンピュータ機器はビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信することができる。ビデオ通話相手側は少なくとも1つである。符号化ビデオストリームを受信したビデオ通話相手側は符号化ビデオストリームを復号して、復号後のビデオストリームを再生することができる。
【0112】
上記実施例では、コンピュータ機器はビデオ通話アプリケーションによって現在グループのビデオフレームシーケンスを取得して、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームのフレーム内予測ブロックの占める割合によって現在グループのビデオフレームシーケンスのターゲットビットレートを確定して、これに応じて符号化する。コンピュータ機器はビデオ通話アプリケーションによって上記方法で符号化した符号化ビデオストリームをビデオ通話相手側に送信して復号再生することにより、ビデオリアルタイム通話の適応符号化機能を強化し、ビデオリアルタイム通話品質を向上させる。
【0113】
図5に示すように、一実施例では、他のビデオの符号化処理方法を提供し、該方法は具体的に以下のステップを含む。
【0114】
S502、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定し、予め設定された選択数を取得する。
【0115】
S504、予め設定された選択数及び確定された総数のうちのより小さい値を選択のターゲット数とする。
【0116】
S506、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから、選択のターゲット数を満たす連続したフレーム間予測フレームを選択する。
【0117】
現在グループのビデオフレームシーケンスはビデオ通話アプリケーションにより取得されたビデオフレームシーケンスである。
【0118】
S508、フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得し、各占める割合の最大値と最小値を確定する。
【0119】
S510、複数の予め設定された、フレーム内予測ブロックの占める割合閾値を取得する。
【0120】
S512、最大値と最小値との間に少なくとも1つのフレーム内予測ブロックの占める割合閾値が存在する場合、現在のビデオシーンが変化したことを判断し、ステップS516に入る。
【0121】
S514、最大値と最小値が隣接する2つのフレーム内予測ブロックの占める割合閾値の間にある場合、現在のビデオシーンが変化していないことを判断し、ステップS526に入る。
【0122】
S516、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値を確定し、複数の予め設定されたビットレート割当の占める割合閾値を取得する。
【0123】
S518、占める割合の平均値を複数の予め設定されたビットレート割当の占める割合閾値とそれぞれ比較して、占める割合の平均値の所在するビットレート割当の占める割合閾値区間を確定する。
【0124】
S520、複数のビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数から、ビットレート割当の占める割合閾値区間に対応する区分を確定する。
【0125】
S522、確定された区分に対応する予め設定された比率を取得し、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とする。
比率が占める割合の平均値と負相関する。
【0126】
S524、シングルフレームの平均ビットレートを取得し、シングルフレームの平均ビットレート及び比率に基づき、フレーム内符号化フレームのターゲットビットレートを取得する。
【0127】
シングルフレームの平均ビットレートを取得することは、予め設定された1秒当たりのターゲットビットレートを取得することと、予め設定されたフレームレートを取得することと、1秒当たりのターゲットビットレートをフレームレートで割って、シングルフレームの平均ビットレートを取得することと、を含む。
【0128】
S526、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレートと、含まれるフレーム間予測フレームの平均ビットレートとの第1比率を確定する。
【0129】
S528、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得する。
【0130】
S530、第1比率と第2比率との積に基づき、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得する。
【0131】
S532、現在グループのビデオフレームシーケンスの総ターゲットビットレートを取得し、総ターゲットビットレート及びビットレート比率に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得する。
【0132】
S534、ターゲットビットレートに基づいてフレーム内符号化フレームを符号化し、ビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信して復号再生する。
【0133】
上記ビデオの符号化処理方法において、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームを符号化するとき、選択された前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合によって、現在のビデオシーンが変化したかどうかを判断する。現在のビデオシーンが変化したことを確定する場合、フレーム内予測ブロックの占める割合に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定する。フレーム内予測ブロックの占める割合は画像同士の関連性の強さを示すことができ、画像同士の関連性の強さを示すことのできるフレーム内予測ブロックの占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートの割り当てを確定することにより、現在のビデオシーンが変化したとき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートの割り当てをより正確にし、それにより適応符号化機能を向上させる。
【0134】
次に、占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値に基づく。占める割合の平均値は画像同士の関連性の強さを示すことができ、占める割合の平均値がより小さい場合、静止シーンである場合が多く、画像同士の関連性がより強く、占める割合の平均値がより大きい場合、運動シーンである場合が多く、画像同士の関連性がより弱い。占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定し、ターゲットビットレートが占める割合の平均値と負相関する。占める割合の平均値がより小さく、画像同士の関連性がより強い場合、フレーム間予測フレームに必要なビットレートがより低く、この時、ビデオ全体の圧縮効率を向上させるために、フレーム内符号化フレームのビットレートを増加させてもよいと理解される。占める割合の平均値がより大きく、画像同士の関連性がより弱い場合、フレーム間予測フレームに必要なビットレートがより高く、この時、フレーム内符号化フレームのビットレートを減少させてもよい。
【0135】
ついでに、ターゲットビットレートを迅速に確定するために、逓減の予め設定された区分関数における、占める割合の平均値に対応する区分を確定し、確定された区分に対応する予め設定された比率を取得し、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることにより、複雑な計算をせずに、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を迅速且つ正確に確定することができ、それによりビデオ符号化効率を向上させる。
【0136】
最後に、ビデオ通話アプリケーションによって現在グループのビデオフレームシーケンスを取得して、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームのフレーム内予測ブロックの占める割合によって、現在グループのビデオフレームシーケンスのターゲットビットレートを確定して、これに応じて符号化する。コンピュータ機器はビデオ通話アプリケーションによって上記方法で符号化した符号化ビデオストリームをビデオ通話相手側に送信して復号再生することにより、ビデオリアルタイム通話の適応符号化機能を強化し、ビデオリアルタイム通話品質を向上させる。
【0137】
図6は一実施例におけるビデオの符号化処理方法の原理模式図である。
図6に示すように、現在グループのGOP(すなわち、現在グループのビデオフレームシーケンス)及び前の1グループのGOP(前の1グループのビデオフレームシーケンス)がいずれもIフレーム(すなわち、フレーム内符号化フレーム)及びP/Bフレーム(P/BフレームがPフレーム及び/又はBフレームを示し、Pフレーム及びBフレームがいずれもフレーム間予測フレームであると理解される)で構成されたビデオフレームシーケンスである。
【0138】
コンピュータ機器は現在グループのGOPに近い順で、前の1グループのGOPからフレーム間予測フレームを選択し、
図6に示すように、最も接近する2つのPフレームを選択してもよい。各PフレームはIntraブロック(フレーム内予測ブロック)及びInterブロック(フレーム間予測ブロック)を含む。コンピュータ機器はそれぞれ選択された各PフレームにおけるIntraブロックの占める割合を確定し、Intraブロックの占める割合1及びIntraブロックの占める割合2を取得することができる。コンピュータ機器はIntraブロックの占める割合1及びIntraブロックの占める割合2をそれぞれ予め設定された複数のThre(すなわち、Intraブロックの占める割合閾値)と比較することができる。比較結果が
図6における第(1)状況であり、つまり、Intraブロックの占める割合1とIntraブロックの占める割合2との間にThre4がある場合、現在のビデオシーンが変化したことを判断する。比較結果が
図6における第(2)状況であり、つまり、Intraブロックの占める割合1及びIntraブロックの占める割合2が隣接するThre4とThre5との間にある場合、現在のビデオシーンが変化していないことを判断する。
【0139】
現在のビデオシーンが変化した状況に対して、コンピュータ機器はIntraブロックの占める割合1とIntraブロックの占める割合2との平均値を確定して、該平均値を予め設定された複数のTH(すなわち、ビットレート割当の占める割合閾値)と比較することにより、該平均値の該複数のTHをジャンプ点とする、逓減の予め設定された区分関数Yにおける、対応する区分を確定することができる。大きさが隣接する2つのTHは該予め設定された区分関数の1つの区分に対応するため、平均値を予め設定された複数のTHと比較することにより、予め設定された区分関数における、該平均値に対応する区分を確定することができ、予め設定された区分関数における各区分はいずれも1つの対応する予め設定された比率があると理解される。
図6に示すように、該平均値に対応するのがTH4以上TH5未満の区分である場合、コンピュータ機器はTH4以上TH5未満の区分に対応する予め設定された比率2を取得し、該予め設定された比率2を現在グループのGOPのIフレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることができる。コンピュータ機器はシングルフレームの平均ビットレートを取得し、該比率と組み合わせて、現在グループのGOPのIフレームのターゲットビットレートを取得することができる。
【0140】
現在のビデオシーンが変化していない状況に対して、コンピュータ機器は前の1グループのGOPのIフレームのビットレートをP/Bフレームの平均ビットレートで割って、第1比率を取得して、前の1グループのGOPのIフレームの量子化ステップサイズをP/Bフレームの平均量子化ステップサイズで割って、第2比率を取得し、第1比率及び第2比率に基づき、現在グループのGOPのIフレームのターゲットビットレートとP/Bフレームのターゲットビットレートとの比率を取得することができる。コンピュータ機器は現在グループのGOPの総ターゲットビットレートを取得して、現在グループのGOPのIフレームのターゲットビットレートとP/Bフレームのターゲットビットレートとの比率と組み合わせて、現在グループのGOPのIフレームのターゲットビットレートを取得することができる。
【0141】
コンピュータ機器は取得された現在グループのGOPのIフレームのターゲットビットレートに基づき、現在グループのGOPのIフレームを符号化することができる。
【0142】
一実施例では、コンピュータ機器を提供し、該コンピュータ機器の内部構造は
図10に示されてもよく、該コンピュータ機器はビデオの符号化処理装置を備え、ビデオの符号化処理装置には各モジュールが含まれ、各モジュールは全部又は一部がソフトウェア、ハードウェア又はそれらの組み合わせで実現されてもよい。
【0143】
図7に示すように、一実施例では、ビデオの符号化処理装置700を提供し、該装置700は占める割合取得モジュール702、ビデオシーン検出モジュール704、ターゲットビットレート確定モジュール706及び符号化モジュール708を備え、
占める割合取得モジュール702は、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することに用いられる。
【0144】
ビデオシーン検出モジュール704は、占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することに用いられる。
【0145】
ターゲットビットレート確定モジュール706は、ビデオシーン検出モジュール704が、現在のビデオシーンが変化したことを確定する場合、占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することに用いられる。
【0146】
符号化モジュール708は、ターゲットビットレートに基づいてフレーム内符号化フレームを符号化することに用いられる。
【0147】
一実施例では、選択されたフレーム間予測フレームは複数の連続したフレーム間予測フレームである。ターゲットビットレート確定モジュール706は、更に、占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値を確定し、占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することに用いられ、ターゲットビットレートが占める割合の平均値と負相関する。
【0148】
図8に示すように、一実施例では、占める割合取得モジュール702は、
選択のターゲット数を取得し、現在グループのビデオフレームシーケンスに近い順で、前の1グループのビデオフレームシーケンスから、選択のターゲット数を満たす連続したフレーム間予測フレームを選択するためのフレーム間予測フレーム選択モジュール702aと、
フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得するための予測ブロック占める割合確定モジュール702bと、を備える。
【0149】
一実施例では、フレーム間予測フレーム選択モジュール702aは、更に、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定し、予め設定された選択数を取得し、予め設定された選択数及び確定された総数のうちのより小さい値を選択のターゲット数とすることに用いられる。
【0150】
一実施例では、選択されたフレーム間予測フレームは複数の連続したフレーム間予測フレームである。ビデオシーン検出モジュール704は、更に、各フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の最大値と最小値を確定し、複数の予め設定された、フレーム内予測ブロックの占める割合閾値を取得し、最大値と最小値との間に少なくとも1つのフレーム内予測ブロックの占める割合閾値が存在する場合、現在のビデオシーンが変化したことを判断することに用いられる。
【0151】
一実施例では、ビデオシーン検出モジュール704は、更に、最大値と最小値が隣接する2つのフレーム内予測ブロックの占める割合閾値の間にあるかどうかを判断し、最大値と最小値が隣接する2つのフレーム内予測ブロックの占める割合閾値の間にある場合、現在のビデオシーンが変化していないことを判断することに用いられる。
【0152】
一実施例では、ターゲットビットレート確定モジュール706は、更に、占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定し、比率が占める割合の平均値と負相関し、シングルフレームの平均ビットレートを取得し、シングルフレームの平均ビットレート及び比率に基づき、フレーム内符号化フレームのターゲットビットレートを取得することに用いられる。
【0153】
一実施例では、ターゲットビットレート確定モジュール706は、更に、逓減の予め設定された区分関数における、占める割合の平均値に対応する区分を確定し、確定された区分に対応する予め設定された比率を取得し、取得された予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることに用いられる。
【0154】
一実施例では、ターゲットビットレート確定モジュール706は、更に、複数の予め設定されたビットレート割当の占める割合閾値を取得し、占める割合の平均値を複数の予め設定されたビットレート割当の占める割合閾値とそれぞれ比較して、占める割合の平均値の所在するビットレート割当の占める割合閾値区間を確定し、複数のビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数から、ビットレート割当の占める割合閾値区間に対応する区分を確定することに用いられる。
【0155】
一実施例では、ターゲットビットレート確定モジュール706は、更に、予め設定された1秒当たりのターゲットビットレートを取得し、予め設定されたフレームレートを取得し、1秒当たりのターゲットビットレートをフレームレートで割って、シングルフレームの平均ビットレートを取得することに用いられる。
【0156】
一実施例では、ターゲットビットレート確定モジュール706は、更に、占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータを取得し、平均量子化パラメータ及び予め設定された量子化パラメータのオフセット量に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータを確定し、量子化パラメータに基づき、フレーム内符号化フレームを符号化することに用いられる。
【0157】
一実施例では、ターゲットビットレート確定モジュール706は、更に、占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレートと、含まれるフレーム間予測フレームの平均ビットレートとの第1比率を確定し、前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得し、第1比率と第2比率との積に基づき、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得し、現在グループのビデオフレームシーケンスの総ターゲットビットレートを取得し、総ターゲットビットレート及びビットレート比率に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得することに用いられる。
【0158】
図9に示すように、一実施例では、現在グループのビデオフレームシーケンスはビデオ通話アプリケーションにより取得されたビデオフレームシーケンスである。該装置は、更に、
ビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信して復号再生するためのビデオストリーム送信モジュール710を備える。
【0159】
図10は一実施例におけるコンピュータ機器のブロック図である。
図10に示すように、該コンピュータ機器は
図1に示される第1端末110又は第2端末120であってもよい。該コンピュータ機器はシステムバスにより接続されるプロセッサ、メモリ、ネットワークインターフェース、ディスプレイ及び入力装置を備える。メモリは不揮発性記憶媒体及び内部メモリを含む。不揮発性記憶媒体は不揮発性可読記憶媒体であってもよい。該コンピュータ機器の不揮発性記憶媒体にオペレーティングシステム及びコンピュータ可読命令が記憶されてもよく、該コンピュータ可読命令が実行されるとき、プロセッサがビデオの符号化処理方法を実行する。該コンピュータ機器のプロセッサは計算及び制御能力を提供し、コンピュータ機器全体の動作をサポートすることに用いられる。該内部メモリにコンピュータ可読命令が記憶されてもよく、該コンピュータ可読命令がプロセッサにより実行されるとき、プロセッサがビデオの符号化処理方法を実行する。コンピュータ機器のネットワークインターフェースはネットワーク通信を行うことに用いられる。コンピュータ機器のディスプレイは液晶ディスプレイ又は電子インクディスプレイ等であってもよく、コンピュータ機器の入力装置はディスプレイに覆われるタッチ層であってもよいし、端末のハウジングに設置されるボタン、トラックボール又はタッチパッドであってもよく、更に外接されるキーボード、タッチパッド又はマウス等であってもよい。該コンピュータ機器はパーソナルコンピュータ、モバイル端末又は車載装置であってもよく、モバイル端末は携帯電話、タブレットPC、パーソナルデジタルアシスタント又はウェアラブルデバイス等のうちの少なくとも1つを含む。
【0160】
当業者であれば、
図10に示される構造は本願案に関連する構造の一部のブロック図であって、本願案を用いたコンピュータ機器を制限するためのものではなく、具体的なコンピュータ機器は図中より多く又は少ない部材を備え、又はいくつかの部材を組み合わせ、又は異なる部材配置を有してもよいと理解される。
【0161】
一実施例では、本願に係るビデオの符号化処理装置はコンピュータ可読命令の形式で実現されてもよく、前記コンピュータ可読命令は
図10に示されるコンピュータ機器において実行されてもよく、前記コンピュータ機器の不揮発性記憶媒体には該ビデオの符号化処理装置を構成する各プログラムモジュール、例えば、
図7に示される占める割合取得モジュール702、ビデオシーン検出モジュール704、ターゲットビットレート確定モジュール706及び符号化モジュール708が記憶されてもよい。各プログラムモジュールで構成されたコンピュータ可読命令は該コンピュータ機器に本明細書に説明される本願の各実施例のビデオの符号化処理方法におけるステップを実行させることに用いられ、例えば、コンピュータ機器は
図7に示されるビデオの符号化処理装置700における占める割合取得モジュール702によって前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することができる。コンピュータ機器はビデオシーン検出モジュール704によって占める割合に基づいて現在のビデオシーンが変化したかどうかを確定して、ターゲットビットレート確定モジュール706によって現在のビデオシーンが変化したことを確定する場合、占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することができる。コンピュータ機器は符号化モジュール708によってターゲットビットレートに基づいてフレーム内符号化フレームを符号化することができる。
【0162】
一実施例では、コンピュータ機器を提供し、メモリ及びプロセッサを備え、前記メモリにコンピュータ可読命令が記憶され、前記コンピュータ可読命令がプロセッサにより実行されるとき、前記プロセッサは、
前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得し、
前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定し、変化したことを確定する場合、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定し、
前記ターゲットビットレートに基づいて前記フレーム内符号化フレームを符号化するステップを実行する。
【0163】
一実施例では、選択された前記フレーム間予測フレームが複数の連続したフレーム間予測フレームであり、変化したことを確定する場合、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することは、
前記占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、
各前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値を確定することと、
前記占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することと、を含み、前記ターゲットビットレートが前記占める割合の平均値と負相関する。
【0164】
一実施例では、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することは、
選択のターゲット数を取得することと、
現在グループのビデオフレームシーケンスに近い順で、前記前の1グループのビデオフレームシーケンスから、前記選択のターゲット数を満たす連続したフレーム間予測フレームを選択することと、
前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することと、を含む。
【0165】
一実施例では、選択のターゲット数を取得することは、
前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定することと、
予め設定された選択数を取得することと、
前記予め設定された選択数及び確定された前記総数のうちのより小さい値を選択のターゲット数とすることと、を含む。
【0166】
一実施例では、選択された前記フレーム間予測フレームが複数の連続したフレーム間予測フレームであり、前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、
各前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の最大値と最小値を確定することと、
複数の予め設定された、フレーム内予測ブロックの占める割合閾値を取得することと、
前記最大値と前記最小値との間に少なくとも1つの前記フレーム内予測ブロックの占める割合閾値が存在する場合、現在のビデオシーンが変化したことを判断することと、を含む。
【0167】
一実施例では、前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、更に、
前記最大値と前記最小値が隣接する2つの前記フレーム内予測ブロックの占める割合閾値の間にあるかどうかを判断することと、
前記最大値と前記最小値が隣接する2つの前記フレーム内予測ブロックの占める割合閾値の間にある場合、現在のビデオシーンが変化していないことを判断することと、を含む。
【0168】
一実施例では、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することは、
前記占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定し、前記比率が前記占める割合の平均値と負相関することと、
シングルフレームの平均ビットレートを取得することと、
前記シングルフレームの平均ビットレート及び前記比率に基づき、前記フレーム内符号化フレームのターゲットビットレートを取得することと、を含む。
【0169】
一実施例では、前記占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定することは、
逓減の予め設定された区分関数における、前記占める割合の平均値に対応する区分を確定することと、
確定された前記区分に対応する予め設定された比率を取得することと、
取得された前記予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることと、を含む。
【0170】
一実施例では、逓減の予め設定された区分関数における、前記占める割合の平均値に対応する区分を確定することは、
複数の予め設定されたビットレート割当の占める割合閾値を取得することと、
前記占める割合の平均値を複数の予め設定されたビットレート割当の占める割合閾値とそれぞれ比較して、前記占める割合の平均値の所在するビットレート割当の占める割合閾値区間を確定することと、
複数の前記ビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数から、前記ビットレート割当の占める割合閾値区間に対応する区分を確定することと、を含む。
【0171】
一実施例では、シングルフレームの平均ビットレートを取得することは、
予め設定された1秒当たりのターゲットビットレートを取得することと、
予め設定されたフレームレートを取得することと、
前記1秒当たりのターゲットビットレートを前記フレームレートで割って、シングルフレームの平均ビットレートを取得することと、を含む。
【0172】
一実施例では、前記コンピュータ可読命令によって、プロセッサは、更に、
前記占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、
前記前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータを取得し、
前記平均量子化パラメータ及び予め設定された量子化パラメータのオフセット量に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータを確定し、
前記量子化パラメータに基づき、前記フレーム内符号化フレームを符号化するステップを実行する。
【0173】
一実施例では、前記コンピュータ可読命令によって、プロセッサは、更に、
前記占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、
前記前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレートと、含まれるフレーム間予測フレームの平均ビットレートとの第1比率を確定し、
前記前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得し、
前記第1比率と前記第2比率との積に基づき、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得し、
前記現在グループのビデオフレームシーケンスの総ターゲットビットレートを取得し、
前記総ターゲットビットレート及び前記ビットレート比率に基づき、前記現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得するステップを実行する。
【0174】
一実施例では、前記現在グループのビデオフレームシーケンスがビデオ通話アプリケーションにより取得されたビデオフレームシーケンスであり、
前記コンピュータ可読命令によって、プロセッサは、更に、前記ビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信して復号再生するステップを実行する。
【0175】
一実施例では、コンピュータ可読命令が記憶される記憶媒体を提供し、前記コンピュータ可読命令が1つ又は複数のプロセッサにより実行されるとき、1つ又は複数のプロセッサは、
前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得し、
前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定し、変化したことを確定する場合、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定し、
前記ターゲットビットレートに基づいて前記フレーム内符号化フレームを符号化するステップを実行する。
【0176】
一実施例では、選択された前記フレーム間予測フレームが複数の連続したフレーム間予測フレームであり、変化したことを確定する場合、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することは、
前記占める割合に基づいて現在のビデオシーンが変化したことを確定する場合、
各前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の平均値を確定することと、
前記占める割合の平均値に基づいて、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することと、を含み、前記ターゲットビットレートが前記占める割合の平均値と負相関する。
【0177】
一実施例では、前の1グループのビデオフレームシーケンス内のフレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することは、
選択のターゲット数を取得することと、
現在グループのビデオフレームシーケンスに近い順で、前記前の1グループのビデオフレームシーケンスから、前記選択のターゲット数を満たす連続したフレーム間予測フレームを選択することと、
前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合を取得することと、を含む。
【0178】
一実施例では、選択のターゲット数を取得することは、
前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの総数を確定することと、
予め設定された選択数を取得することと、
前記予め設定された選択数及び確定された前記総数のうちのより小さい値を選択のターゲット数とすることと、を含む。
【0179】
一実施例では、選択された前記フレーム間予測フレームが複数の連続したフレーム間予測フレームであり、前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、
各前記フレーム間予測フレームにおけるフレーム内予測ブロックの占める割合の最大値と最小値を確定することと、
複数の予め設定された、フレーム内予測ブロックの占める割合閾値を取得することと、
前記最大値と前記最小値との間に少なくとも1つの前記フレーム内予測ブロックの占める割合閾値が存在する場合、現在のビデオシーンが変化したことを判断することと、を含む。
【0180】
一実施例では、前記占める割合に基づいて現在のビデオシーンが変化したかどうかを確定することは、更に、
前記最大値と前記最小値が隣接する2つの前記フレーム内予測ブロックの占める割合閾値の間にあるかどうかを判断することと、
前記最大値と前記最小値が隣接する2つの前記フレーム内予測ブロックの占める割合閾値の間にある場合、現在のビデオシーンが変化していないことを判断することと、を含む。
【0181】
一実施例では、前記占める割合に基づいて現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを確定することは、
前記占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定し、前記比率が前記占める割合の平均値と負相関することと、
シングルフレームの平均ビットレートを取得することと、
前記シングルフレームの平均ビットレート及び前記比率に基づき、前記フレーム内符号化フレームのターゲットビットレートを取得することと、を含む。
【0182】
一実施例では、前記占める割合の平均値に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率を確定することは、
逓減の予め設定された区分関数における、前記占める割合の平均値に対応する区分を確定することと、
確定された前記区分に対応する予め設定された比率を取得することと、
取得された前記予め設定された比率を現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートとシングルフレームの平均ビットレートとの比率とすることと、を含む。
【0183】
一実施例では、逓減の予め設定された区分関数における、前記占める割合の平均値に対応する区分を確定することは、
複数の予め設定されたビットレート割当の占める割合閾値を取得することと、
前記占める割合の平均値を複数の予め設定されたビットレート割当の占める割合閾値とそれぞれ比較して、前記占める割合の平均値の所在するビットレート割当の占める割合閾値区間を確定することと、
複数の前記ビットレート割当の占める割合閾値を関数のジャンプ点とする、逓減の予め設定された区分関数から、前記ビットレート割当の占める割合閾値区間に対応する区分を確定することと、を含む。
【0184】
一実施例では、シングルフレームの平均ビットレートを取得することは、
予め設定された1秒当たりのターゲットビットレートを取得することと、
予め設定されたフレームレートを取得することと、
前記1秒当たりのターゲットビットレートを前記フレームレートで割って、シングルフレームの平均ビットレートを取得することと、を含む。
【0185】
一実施例では、前記コンピュータ可読命令によって、プロセッサは、更に、
前記占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、
前記前の1グループのビデオフレームシーケンス内のフレーム間予測フレームの平均量子化パラメータを取得し、
前記平均量子化パラメータ及び予め設定された量子化パラメータのオフセット量に基づき、現在グループのビデオフレームシーケンス内のフレーム内符号化フレームの量子化パラメータを確定し、
前記量子化パラメータに基づき、前記フレーム内符号化フレームを符号化するステップを実行する。
【0186】
一実施例では、前記コンピュータ可読命令によって、プロセッサは、更に、
前記占める割合に基づいて現在のビデオシーンが変化していないことを確定する場合、
前記前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのビットレートと、含まれるフレーム間予測フレームの平均ビットレートとの第1比率を確定し、
前記前の1グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームの量子化ステップサイズを、含まれるフレーム間予測フレームの平均量子化ステップサイズで割って、第2比率を取得し、
前記第1比率と前記第2比率との積に基づき、現在グループのビデオフレームシーケンスに含まれるフレーム内符号化フレームのターゲットビットレートと、含まれるフレーム間予測フレームの平均ターゲットビットレートとのビットレート比率を取得し、
前記現在グループのビデオフレームシーケンスの総ターゲットビットレートを取得し、
前記総ターゲットビットレート及び前記ビットレート比率に基づき、前記現在グループのビデオフレームシーケンス内のフレーム内符号化フレームのターゲットビットレートを取得するステップを実行する。
【0187】
一実施例では、前記現在グループのビデオフレームシーケンスがビデオ通話アプリケーションにより取得されたビデオフレームシーケンスであり、
前記コンピュータ可読命令によって、プロセッサは、更に、前記ビデオ通話アプリケーションによって符号化して得られた符号化ビデオストリームをビデオ通話相手側に送信して復号再生するステップを実行する。
【0188】
本願の各実施例における各ステップは必ずステップの番号で示す順序に応じて順に実行されるわけではないと理解すべきである。本明細書に明確に説明しない限り、これらのステップの実行順序が制限されず、これらのステップが他の順序で実行されてもよい。且つ、各実施例では、少なくとも一部のステップは複数のサブステップ又は複数のステップを含んでもよく、これらのサブステップ又はステップが必ず同じ時刻に実行して完了するわけではなく、異なる時刻に実行されてもよく、これらのサブステップ又はステップの実行順序が必ず順に行われるわけではなく、他のステップ又は他のステップのサブステップ又はステップの少なくとも一部と順番又は交互に実行されてもよい。
【0189】
当業者であれば、上記実施例の方法における全部又は一部のプロセスの実現はコンピュータ可読命令が関連するハードウェアを命令することで完了してもよく、前記プログラムが不揮発性コンピュータ可読記憶媒体に記憶されてもよく、該プログラムは実行時、上記各方法の実施例のプロセスを含んでもよいと理解される。本願に係る各実施例に使用されるメモリ、記憶、データベース又は他の媒体のいかなる引用はいずれも不揮発性メモリ及び/又は揮発性メモリを含んでもよい。不揮発性メモリは読み出し専用メモリ(ROM)、プログラム可能ROM(PROM)、消去可能プログラム可能ROM(EPROM)、電気的消去可能プログラム可能ROM(EEPROM)又はフラッシュメモリを含んでもよい。揮発性メモリはランダムアクセスメモリ(RAM)又は外部キャッシュメモリを含んでもよい。制限的ではなく、説明として、RAMは多くの形式で得られるものであり、例えばスタティックRAM(SRAM)、ダイナミックRAM(DRAM)、シンクロナスDRAM(SDRAM)、ダブルデータレートSDRAM(DDRSDRAM)、拡張型SDRAM(ESDRAM)、シンクリンク(Synchlink)DRAM(SLDRAM)、ラムバス(Rambus)ダイレクトRAM(RDRAM)、ダイレクトラムバスダイナミックRAM(DRDRAM)及びラムバスダイナミックRAM(RDRAM)等が挙げられる。
【0190】
以上の実施例の各技術的特徴を任意に組み合わせることができ、説明を簡潔にするために、上記実施例の各技術的特徴のすべての可能な組み合わせを説明しないが、これらの技術的特徴の組み合わせは矛盾しない限り、いずれも本明細書に記載する範囲に含まれるべきである。
【0191】
以上の実施例は本願のいくつかの実施形態を説明したが、その説明はより具体的且つ詳細であるが、本発明の保護範囲を制限するためのものではない。ただし、当業者であれば、本願の構想を逸脱せずに、更にいくつかの変形や改良を行うことができ、これらの変形や改良はいずれも本願の保護範囲に属すべきである。従って、本願の保護範囲は添付の特許請求の範囲に準じるべきである。