本願の目的、技術的解決手段及び利点をより明瞭にするために、以下、図面及び実施例を参照しながら本願を更に詳細に説明する。なお、ここで説明される具体的な実施例は単に本願を説明するためのものであり、本願を限定するものではない。
なお、本願に使用される用語「第1」、「第2」等は本明細書において各種の要素を説明することに用いられることができ、特に断らない限り、これらの要素はこれらの用語により制限されない。これらの用語は第1個の要素をほかの要素と区別するためのものに過ぎない。例えば、本願の範囲を逸脱しない場合、第1ベクトル変換係数を第2ベクトル変換係数と呼んでもよく、且つ、同様に、第2ベクトル変換係数を第1ベクトル変換係数と呼んでもよい。
図1は一実施例に係るビデオエンコーディング方法の応用環境図であり、図1に示すように、該応用環境では、端末110及びサーバ120を含む。
端末110又はサーバ120はエンコーダによってビデオエンコーディングを行い、又はデコーダによってビデオデコーディングを行うようにしてもよい。端末110又はサーバ120はプロセッサによってビデオエンコーディングプログラムを実行してビデオエンコーディングを行い、又はプロセッサによってビデオデコーディングプログラムを実行してビデオデコーディングを行うようにしてもよい。サーバ120は端末110から送信されるエンコーディングデータを入力インタフェースによって受信した後、直接プロセッサに伝送してデコーディングするようにしてもよく、データベースに記憶して後続のデコーディングを待つようにしてもよい。サーバ120は、プロセッサによって原ビデオフレームをエンコーディングしてエンコーディングデータを取得した後、直接出力インタフェースによって端末110に送信してもよく、エンコーディングデータをデータベースに記憶して後続の伝送を待つことができる。勿論、サーバ120は端末110から送信されたエンコーディングデータを取得した後、対応する受信端末に送信し、受信端末でデコーディングを行うようにしてもよい。
端末110とサーバ120はネットワークによって接続されてもよい。端末110はデスクトップ端末又はモバイル端末であってもよく、モバイル端末は携帯電話、タブレットPC及びノートパソコン等のうちの少なくとも1種を含んでもよいが、これらに限定されない。サーバ120は独立したサーバ、又は複数のサーバからなるサーバクラスターによって実現されてもよい。
図2は一実施例に係るビデオエンコーディング方法に対応するエンコーディングフレームワーク図であり、本願の実施例に係るビデオエンコーディング方法は、入力ビデオシーケンスの各入力ビデオフレームを取得してエンコーディングし、対応するエンコーディングデータを取得することができる。記憶送信ユニット222によってエンコーディングデータを記憶又は送信し、又はエンコーディングデータを記憶し且つ送信する。ここで、処理方式特定ユニット202では、入力ビデオフレームに対して処理方式決定を行い、入力ビデオフレームに対応するターゲット処理方式を取得するようにしてもよい。第1処理ユニット204では、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得するようにしてもよい。第1予測ユニット206では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームの各エンコーディングブロックをフレーム内予測又はフレーム間予測し、且つエンコーディングブロックに対応する参照ブロックの画像値に応じて予測値及び対応する動きベクトルを取得し、エンコーディングブロックの実際値と予測値を減算して予測残差を取得することができ、動きベクトルは参照ブロックに対するエンコーディングブロックの変位を示す。変換ユニット208では、空間領域中の予測残差及びベクトル情報を周波数領域に変換し、且つ変換係数をエンコーディングしてもよい。変換方法は離散フーリエ変換又は離散コサイン変換等であってもよく、ベクトル情報は変位を示す実際動きベクトル又は動きベクトル差分であってもよく、動きベクトル差分は実際動きベクトルと予測動きベクトルとの差分である。
量子化ユニット210では、変換後のデータを別の数値にマッピングし、例えば、変換後のデータを量子化ステップで除算して1つの比較的小さない値を取得するようにしてもよい。量子化パラメータは量子化ステップに対応する番号であり、量子化パラメータに応じて、対応する量子化ステップを検索できる。量子化パラメータが小さいと、画像フレームの大部分の細部がすべて保留され、対応するビットレートが高い。量子化パラメータが大きいと、対応するビットレートが低いが、画像歪みが比較的大きく、品質が高くない。量子化の原理は式で以下のように示され、FQ=round(y/Qstep)である。ここで、yは量子化前のビデオフレームに対応する値であり、Qstepは量子化ステップであり、FQはyを量子化して取得された量子化値である。round(x)関数とは、値を四捨五入して丸めることであり、すなわち四捨五入による丸めである。量子化パラメータと量子化ステップとの対応関係は具体的には、必要に応じて設定されてもよい。例えば、いくつかのビデオエンコーディング標準では、輝度エンコーディングの場合、量子化ステップは計52個の値を有し、0~51の整数であり、彩度エンコーディングの場合、量子化ステップの値は0~39の整数であり、且つ量子化ステップは量子化パラメータの増加に伴って増加し、量子化パラメータが6増加するごとに、量子化ステップは1倍増加する。
エントロピーエンコーディングユニット220はエントロピーエンコーディングを行うことに用いられ、エントロピーエンコーディングはエントロピー原理に応じてエンコーディングし、且つ何の情報損失もしないデータエンコーディング方式であり、比較的小さい文字で所定の情報を表現することができる。エントロピーエンコーディング方法は、例えばシャノンエンコーディング(shannon)又はハフマンエンコーディング(huffman)等であってもよい。
第1逆量子化ユニット212、第1逆変換ユニット214、第1再構成ユニット216及び第1参照情報適応ユニット218は再構成ルートに対応するユニットであり、再構成ルートの各ユニットを利用してフレームの再構成を行い、参照フレームを取得することで、エンコーディング及びデコーディング中の参照フレームの一致を維持することができる。ここで、第1逆量子化ユニット212によって行われるステップは量子化の逆過程を行うことであり、第1逆変換ユニット214によって行われるステップは変換ユニット208によって行われる変換の逆過程であり、第1再構成ユニット216は逆変換により取得された残差データと予測データを合わせて再構成参照フレームを取得することに用いられる。第1参照情報適応ユニット218は被エンコーディングフレームに対応する解像度情報に応じて、再構成して得た現在の参照フレーム、被エンコーディングフレームの各エンコーディングブロックに対応する位置情報、現在の参照フレームの各参照ブロックに対応する位置情報及び動きベクトル等の参照情報のうちの少なくとも1つを適応処理して、第1予測ユニット206に、適応処理後の参照情報に応じて予測させることに用いられる。
図3は一実施例に係るビデオデコーディング方法に対応するデコーディングフレームワーク図であり、本願の実施例に係るビデオデコーディング方法は、エンコーディングデータ取得ユニット300によって被デコーディングビデオシーケンスの各被デコーディングビデオフレームに対応するエンコーディングデータを取得するようにしてもよい。エントロピーデコーディングユニット302によってエントロピーデコーディングを行った後、エントロピーデコーディングデータを取得する。第2逆量子化ユニット304はエントロピーデコーディングデータを逆量子化し、逆量子化データを取得する。第2逆変換ユニット306は逆量子化データを逆変換し、逆変換したデータを取得し、該逆変換したデータは図2中の第1逆変換ユニット214によって逆変換されて取得したデータに一致してもよい。解像度情報取得ユニット308は被デコーディングビデオフレームに対応する解像度情報を取得することに用いられる。第2参照情報適応ユニット312は第2再構成ユニットによって再構成された現在の参照フレームを取得し、被デコーディングビデオフレームの解像度情報に応じて、現在の参照フレーム、被デコーディングビデオフレームの各被デコーディングブロックに対応する位置情報、現在の参照フレームの各参照ブロックに対応する位置情報及び動きベクトル等の参照情報のうちの少なくとも1つを適応処理し、適応処理後の情報に応じて予測を行うことに用いられる。第2予測ユニット314は適応後に取得された参照情報に応じて、被デコーディングブロックに対応する参照ブロックを取得し、参照ブロックの画像値に応じて、図2中の予測値に一致する予測値を取得する。第2再構成ユニット310は、予測値、及び逆変換されたデータ、すなわち予測残差に応じて再構成を行い、再構成ビデオフレームを取得する。第2処理ユニット316は被デコーディングビデオフレームに対応する解像度情報に応じて、再構成ビデオフレームを処理し、対応するデコーディングビデオフレームを取得する。再生記憶ユニット318はデコーディングビデオフレームに対して再生又は記憶を行い、又は再生及び記憶を行うようにしてもよい。
なお、上記エンコーディングフレームワーク図、デコーディングフレームワーク図は単に一例であり、本願の解決手段に適用されるエンコーディング、デコーディング方法を限定するものではなく、エンコーディングフレームワーク図及びデコーディングフレームワーク図は図示よりも多い又は少ないユニットを含み、又はいくつかのユニットを組み合わせ、又は異なる部材ユニットを有するようにしてもよい。例えば、さらに再構成ビデオフレームに対してループフィルタリングを行うことで、ビデオフレームのブロッキング効果を低減させ、それによりビデオ品質を向上させるようにしてもよい。
本願の実施例では、エンコーディングを実行する一方側をエンコーディング側と呼び、デコーディングを実行する他方側をデコーディング側と呼ぶ。エンコーディング側とデコーディング側は同一側又は異なる側であってもよく、上記コンピュータ機器、例えば端末又はサーバは、エンコーディング側であってもよく、デコーディング側であってもよい。
被エンコーディングフレームを複数のエンコーディングブロックに分割してもよく、エンコーディングブロックのサイズは必要に応じて設定され又は計算により取得されるようにしてもよい。例えば、エンコーディングブロックのサイズはいずれも8*8ピクセルであってもよい。又は、各種のエンコーディングブロックの分割方式に対応するレート歪みコストを計算することによって、レート歪みコストが小さい分割方式を選択してエンコーディングブロックの分割を行うようにしてもよい。図4に示すように、1つの64*64ピクセルの画像ブロックの分割模式図であり、1つのブロックは1つのエンコーディングブロックを示す。図4から明らかなように、エンコーディングブロックのサイズは32*32ピクセル、16*16ピクセル、8*8ピクセル及び4*4ピクセルを含みうる。勿論、エンコーディングブロックのサイズはほかのサイズであってもよく、例えば、32*16ピクセル又は64*64ピクセルであってもよい。なお、デコーディング時、エンコーディングブロックが被デコーディングブロックに一対一で対応するため、被デコーディングブロックのピクセルサイズは32*32ピクセル、16*16ピクセル、8*8ピクセル及び4*4ピクセル等を含みうる。
図5Aに示すように、一実施例では、ビデオエンコーディング方法を提案し、本実施例は主に、該方法を上記図1中の端末110又はサーバ120に適用することを例に説明する。以下のステップS502~S508を含む。
ステップS502では、入力ビデオフレームを取得する。
例示的には、ビデオフレームはビデオを構成する単位であり、1つのビデオシーケンスは複数の入力ビデオフレームを含みうる。入力ビデオフレームは、コンピュータ機器によってリアルタイムに収集されたビデオフレーム、例えば端末のカメラによってリアルタイムに取得されたビデオフレームであってもよく、記憶されたビデオシーケンスに対応するビデオフレームであってもよい。入力ビデオフレームは、エンコーディングアルゴリズムに応じて、対応するエンコーディングフレーム予測タイプを決定でき、エンコーディングフレーム予測タイプはIフレーム、Pフレーム又はBフレームを含みうる。ここで、Iフレームはフレーム内予測フレームであり、Pフレームは前方予測フレームであり、Bフレームは双方向予測フレームであり、PフレームとBフレームの各エンコーディングブロックはフレーム内予測方式を採用してエンコーディングしてもよく、フレーム間予測方式を採用してエンコーディングしてもよい。
ステップS504では、候補処理方式の中から入力ビデオフレームに対応するターゲット処理方式を決定し、候補処理方式はフル解像度処理方式及びダウンサンプリング処理方式を含む。
例示的には、入力ビデオフレームに対応するターゲット処理方式はコンピュータ機器によって候補処理方式の中から選択されるものであり、候補処理方式はフル解像度処理方式及びダウンサンプリング処理方式を含みうる。入力ビデオフレームに対応するターゲット処理方式を取得する方法は実際の必要に応じて設定されてもよい。例えば、入力ビデオフレームに対応する処理パラメータを取得し、処理パラメータに応じて、対応するターゲット処理方式を取得するようにしてもよい。処理パラメータは処理方式を決定するためのパラメータであり、採用される処理パラメータは必要に応じて設定されてもよい。例えば、処理パラメータは入力ビデオフレームに対応する現在のエンコーディング情報及び画像特徴情報のうちの1つ又は複数の情報を含みうる。一実施例では、入力ビデオフレームに対応するターゲット処理方式がダウンサンプリング処理方式を含む場合、コンピュータ機器はさらにダウンサンプリング比及びダウンサンプリング方法を取得してもよい。ここで、サンプリング比はサンプリング後の解像度をサンプリング前の解像度で除算して取得された比である。ダウンサンプリング方法は、直接平均化、フィルター、バイキュービック補間(bicubic interpolation)又はバイリニア補間(bilinear interpolation)等を採用してもよい。ダウンサンプリング比は、予め設定されたダウンサンプリング比であってもよく、柔軟に調整されたダウンサンプリング比であってもよい。例えば、ダウンサンプリング比をいずれも1/2に設定してもよい。入力ビデオシーケンスの第1個の入力ビデオフレームのダウンサンプリング比が1/2、第2個の入力ビデオフレームのダウンサンプリング比が1/4であってもよい。ビデオグループにおける入力ビデオフレームのエンコーディング位置に応じてダウンサンプリング比を取得してもよく、ここで、エンコーディング位置が後にあるほど、ダウンサンプリング比が小さい。ダウンサンプリング方向は垂直ダウンサンプリング、水平ダウンサンプリング、及び垂直・水平ダウンサンプリング組合せのうちの1種であってもよい。例えば、サンプリング前のビデオフレームの解像度が800*800ピクセルである場合、ダウンサンプリング比が1/2で且つ水平ダウンサンプリングを行うと、サンプリング後のビデオフレームの解像度が400*800ピクセルである。ダウンサンプリング比が1/2で且つ垂直ダウンサンプリングを行うと、サンプリング後のビデオフレームの解像度が800*400ピクセルである。
一実施例では、ダウンサンプリング比はビデオエンコーディング方法を実行する機器、例えば端末又はサーバのプロセッサ処理能力に応じて取得されてもよい。プロセッサ処理能力の強い機器に対応するダウンサンプリング比は大きく、プロセッサ処理能力の弱い機器に対応するダウンサンプリング比は小さい。プロセッサ処理能力とダウンサンプリング比との対応関係を設定してもよく、エンコーディングを行う必要がある時、プロセッサ処理能力を取得し、プロセッサ処理能力に応じて、対応するダウンサンプリング比を取得する。例えば、16ビットプロセッサに対応するダウンサンプリング比を1/8、32ビットプロセッサに対応するダウンサンプリング比を1/4に設定してもよい。
一実施例では、ダウンサンプリング比は、入力ビデオフレームを参照フレームとする頻度又は回数に応じて取得されてもよく、ダウンサンプリング比と入力ビデオフレームを参照フレームとする頻度又は回数との対応関係を設定してもよい。ここで、入力ビデオフレームを参照フレームとする頻度が高い又は回数が多いと、ダウンサンプリング比が大きい。入力ビデオフレームを参照フレームとする頻度が低く又は回数が少ないと、ダウンサンプリング比が小さい。例えば、Iフレームの場合、参照フレームとする頻度が高いと、対応するダウンサンプリング比が大きく、1/2であってもよい。Pフレームの場合、参照フレームとする頻度が低いと、対応するダウンサンプリング比が小さく、例えば、1/4であってもよい。入力ビデオフレームを参照フレームとする頻度又は回数に応じて、ダウンサンプリング比を取得し、入力ビデオフレームを参照フレームとする頻度が高い又は回数が多いと、画像品質が比較的良く、従って予測の正確性を向上させ、予測残差を減少させ、エンコーディング画像の品質を向上させることができる。
一実施例では、ダウンサンプリングの方法はビデオエンコーディング方法を実行する機器、例えば端末又はサーバのプロセッサ処理能力に応じて取得されてもよい。プロセッサ処理能力の強い機器に対応するダウンサンプリング方法の複雑度は高く、プロセッサ処理能力の弱い機器に対応するダウンサンプリング方法の複雑度は低い。プロセッサ処理能力とダウンサンプリング方法との対応関係を設定してもよく、エンコーディングを行う必要がある時、プロセッサ処理能力を取得し、プロセッサ処理能力に応じて、対応するダウンサンプリング方法を取得する。例えば、バイキュービック補間(bicubic interpolation)がバイリニア補間(bilinear interpolation)の複雑度よりも高く、従って、16ビットプロセッサに対応するダウンサンプリング方法をバイリニア補間、32ビットプロセッサに対応するダウンサンプリング方法をバイキュービック補間に設定してもよい。
本願の実施例では、入力ビデオフレームに対してダウンサンプリング処理方式を採用して処理を行う時、さらに異なるダウンサンプリング方法又はダウンサンプリング比に応じてダウンサンプリングを行うようにしてもよく、入力ビデオフレームを処理する方式がさらに柔軟である。
一実施例では、コンピュータ機器は入力ビデオフレームに対応する現在のエンコーディング情報及び画像特徴情報のうちの1種又は複数種情報に応じて、入力ビデオフレームに対応するターゲット処理方式を取得する。現在のエンコーディング情報とは、ビデオのエンコーディング時に取得されたビデオ圧縮パラメータ情報、例えばフレーム予測タイプ、動きベクトル、量子化パラメータ、ビデオ源、ビットレート、フレームレート及び解像度のうちの1種又は複数種を指す。画像特徴情報とは、画像コンテンツに関連する情報を指し、画像動き情報及び画像テクスチャ情報のうちの1種又は複数種、例えば、エッジ等を含む。現在のエンコーディング情報及び画像特徴情報はビデオフレームに対応するシーン、細部複雑度又は動き強度等を反映する。例えば、動きベクトル、量子化パラメータ又はビットレートのうちの1つ又は複数によって動きシーンを判断してもよく、量子化パラメータが大きいと、通常、動きが激しく、動きベクトルが大きいと、画像シーンが大動きシーンであることを示す。さらに、エンコーディングされたIフレーム及びPフレーム又はエンコーディングされたIフレーム及びBフレームのビットレート比に応じて判断してもよく、比が第1参照閾値を超えると、静止画像と判断し、比が第2参照閾値未満であると、動きの激しい画像と判断する。又は、直接画像コンテンツに応じてターゲットオブジェクトを追跡し、ターゲットオブジェクトの動き速度に応じて大動きシーンであるか否かを決定する。ビットレートが一定である場合、表現できる情報量が一定であり、動きの激しいシーンの場合、時間領域情報量が大きく、その分、空間領域情報の表現に使用できるビットレートが少なく、従って、低解像度で比較的良い画像品質効果を達成でき、さらにダウンサンプリングモードを選択してエンコーディングすることが好ましい。フレーム予測タイプによって画面切り替えシーンを決定してもよく、ほかのフレームに対するフレーム予測タイプの影響に応じて、好ましい処理方式を決定してもよい。例えば、Iフレームは通常、最初のフレームであり又は画面切り替えがあり、Iフレームの品質は後続のPフレーム又はBフレームの品質を左右するため、フレーム内予測フレームはフレーム間予測フレームよりも、フル解像度処理方式を選択することが好ましく、それによって画像品質を確保する。PフレームはBフレームの参照フレームとすることが可能であり、Pフレームの画像品質は後続のBフレームの画像品質を左右するため、Pフレームを採用してエンコーディングする場合は、Bフレームを採用してエンコーディングする場合よりも、フル解像度処理方式を選択することが好ましい。画像特徴情報、例えば、画像テクスチャ情報によって、被エンコーディングビデオフレームのテクスチャ複雑度を決定し、テクスチャが複雑で、含まれる細部が多い場合、画像の空間領域情報が多く、ダウンサンプリングを行うと、ダウンサンプリングによって比較的多い細部情報の損失を引き起こし、ビデオ品質を損なってしまい、従って、テクスチャの複雑な被エンコーディングビデオフレームは、テクスチャのシンプルな被エンコーディングビデオフレームよりも、フル解像度処理を選択することが好ましい。
一実施例では、コンピュータ機器は入力ビデオフレームに対応する現在の量子化パラメータと量子化パラメータ閾値の大小関係に応じて、入力ビデオフレームに対応するターゲット処理方式を取得するようにしてもよい。現在の量子化パラメータが量子化パラメータ閾値よりも大きいと、処理方式をダウンサンプリング方式と決定し、そうでない場合、処理方式をフル解像度処理方式と決定する。量子化パラメータ閾値は入力ビデオフレームの前の、エンコーディングされた前方エンコーディングビデオフレームのフレーム内エンコーディングブロックの比に応じて取得されてもよい。例示的には、フレーム内予測ブロック比と量子化パラメータ閾値の対応関係を設定してもよく、それにより、現在フレームのフレーム内予測ブロック比を決定した後、対応関係に応じて、現在フレームのフレーム内予測ブロック比に対応する量子化パラメータ閾値を決定することができる。固定量子化パラメータエンコーディングの場合、現在の量子化パラメータは対応する固定量子化パラメータ値であってもよい。固定ビットレートエンコーディングの場合、ビットレート制御モデルに応じて、入力ビデオフレームに対応する現在の量子化パラメータを算出してもよい。又は、参照フレームに対応する量子化パラメータを入力ビデオフレームに対応する現在の量子化パラメータとしてもよい。本願の実施例では、現在の量子化パラメータが大きいほど、通常、動きが激しく、動きの激しいシーンはダウンサンプリング処理方式を選択することが好ましい。
一実施例では、フレーム内予測ブロック比と量子化パラメータ閾値の関係は正相関関係である。例えば、経験に応じて、フレーム内予測ブロック比Intra0と量子化パラメータ閾値QPTHの対応関係を以下のように決定することができる。
一実施例では、候補処理方式はさらにアップサンプリング処理方式を含んでもよく、候補処理方式がアップサンプリング処理方式を含む場合、ターゲット処理方式がアップサンプリング処理方式であると、入力ビデオフレームをアップサンプリングする。例えば、解像度が所定解像度よりも低いいくつかの入力ビデオフレームの場合、入力ビデオフレームをアップサンプリング処理してもよく、それによりビデオフレームの再生品質を向上させる。
一実施例では、アップサンプリング処理の方法及びアップサンプリング比は必要に応じて設定されてもよく、アップサンプリングの方法及び比を柔軟に調整してもよい。例えば、プロセッサ処理能力の強いコンピュータ機器に対応するアップサンプリング方法の複雑度は高い。固定のアップサンプリング方法を設定して入力ビデオフレームをアップサンプリングするようにしてもよい。アップサンプリング比について、固定のアップサンプリング比を設定してもよく、再生品質に応じてアップサンプリング比を決定してもよく、通常、再生品質要件が高いと、アップサンプリング比が大きい。
ステップS506では、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得する。
例示的には、被エンコーディングフレームはコンピュータ機器がターゲット処理方式に応じて入力ビデオフレームを処理することで取得される。ターゲット処理方式がフル解像度処理方式である場合、コンピュータ機器は入力ビデオフレームを被エンコーディングフレームとし、すなわち、入力ビデオフレームの解像度が被エンコーディングフレームの解像度と同じである。処理方式がダウンサンプリング処理方式である場合、コンピュータ機器は入力ビデオフレームをダウンサンプリング処理して被エンコーディングフレームを取得し、すなわち、入力ビデオフレームの解像度が被エンコーディングフレームの解像度よりも小さい。例えば、入力ビデオフレームの解像度が800*800ピクセルであり、処理方式が水平及び垂直方向にともに1/2ダウンサンプリングを行うことである場合、ダウンサンプリングによって取得された被エンコーディングフレームの解像度が400*400ピクセルである。
ステップS508では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得する。
例示的には、解像度情報とは、解像度に関連する情報を指し、例えば、サンプリング比及び解像度のうちの1種又は複数種を含みうる。エンコーディングは予測、変換、量子化及びエントロピーエンコーディングのうちの1つ又は複数を含みうる。被エンコーディングフレームがIフレームである場合、コンピュータ機器は被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームに対してフレーム内予測を行う。被エンコーディングフレームがPフレーム及びBフレームである場合、コンピュータ機器は被エンコーディングフレームに対応する現在の参照フレームを取得し、現在の参照フレームに応じて予測して予測残差を取得し、且つ予測残差に対して変換、量子化及びエントロピーエンコーディングを行い、入力ビデオフレームに対応するエンコーディングデータを取得するようにしてもよい。ここで、エンコーディングデータを取得する過程では、コンピュータ機器は被エンコーディングフレームの解像度情報に応じて現在の参照フレーム、被エンコーディングフレームの各エンコーディングブロックに対応する位置情報、現在の参照フレームの各参照ブロックに対応する位置情報及び動きベクトルのうちの1つ又は複数を処理する。例えば、予測残差を計算する時、被エンコーディングフレームの解像度情報に応じて現在の参照フレームを処理し、ターゲット参照フレームを取得し、ターゲット参照フレームから被エンコーディングフレーム中の各エンコーディングブロックに対応するターゲット参照ブロックを取得し、ターゲット参照ブロックに応じて予測を行い、エンコーディングブロックに対応する予測値を取得し、さらにエンコーディングブロックの実際値と予測値との差分に応じて予測残差を取得することができる。ターゲット動きベクトルを計算する時、現在の参照フレームの解像度が被エンコーディングフレームの解像度と異なると、現在の参照フレーム及び被エンコーディングフレームの解像度情報に応じてエンコーディングブロックの位置情報又はデコーディングブロックの位置情報を変換してもよく、それによって被エンコーディングフレームに対応する位置情報と現在の参照フレームの位置情報を同一量子化スケールに位置させる。その後、さらに変換後の位置情報に応じてターゲット動きベクトルを取得し、それによってターゲット動きベクトルの値を減少させ、エンコーディングデータのデータ量を減少させる。ターゲット動きベクトルに対応する解像度情報が被エンコーディングフレームの解像度情報と異なる場合、被エンコーディングフレームのエンコーディングブロックに対応する第1動きベクトルを算出する時、被エンコーディングフレームの解像度情報及びターゲット動きベクトル単位解像度情報に応じて第1動きベクトルを変換し、ターゲット解像度でのターゲット動きベクトルを取得する。例えば、被エンコーディングフレームの解像度が400*800ピクセルであることを仮定すると、現在の参照フレームの解像度が800*1600ピクセルである。被エンコーディングフレームの解像度に応じて現在の参照フレームに対して1/2ダウンサンプリングを行い、ターゲット参照フレームの解像度を400*800ピクセルと取得し、さらにターゲット参照フレームに応じてビデオエンコーディングを行うようにしてもよい。
本願の実施例では、エンコーディングを行う時、入力ビデオフレームを取得し、候補処理方式の中から、入力ビデオフレームに対応するターゲット処理方式を決定し、候補処理方式はフル解像度処理方式及びダウンサンプリング処理方式を含み、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得する。被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得する。従って、ビデオフレームの処理方式を柔軟に選択し、入力ビデオフレームを処理し、入力ビデオフレームの解像度を適応的に調整することができ、帯域幅が制限されている条件では、ビデオエンコーディング品質を向上させ、且つ被エンコーディングフレームに対応する解像度情報に応じてエンコーディングすることで、正確なエンコーディングデータを取得することができる。
一実施例では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得した後、さらに、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップを含む。
例示的には、ターゲット処理方式情報は入力ビデオフレームに採用されるターゲット処理方式を記述することに用いられ、コンピュータ機器は、エンコーディングデータに処理方式を記述するフラグビットFrame_Resolution_Flagを追加し、すなわち、エンコーディングデータに処理方式情報を記述する文法要素を追加するようにしてもよい。各処理方式に対応するフラグビットの値は必要に応じて設定されてもよい。例えば、ターゲット処理方式がフル解像度処理方式である場合、対応するFrame_Resolution_Flagは0であってもよく、ターゲット処理方式がダウンサンプリング処理方式である場合、対応するFrame_Resolution_Flagは1であってもよい。一実施例では、ターゲット処理方式情報をエンコーディングデータに対応するフレームレベルヘッダ情報に追加し、例えば、フレームレベルヘッダ情報の参照位置に追加してもよい。フレームレベルヘッダ情報は、入力ビデオフレームのエンコーディングデータのヘッダ情報であり、シーケンスレベルヘッダ情報とはビデオシーケンスに対応するエンコーディングデータのヘッダ情報を指し、グループレベルヘッダ情報とはビデオグループ(GOP、Groups of Picture)に対応するエンコーディングデータのヘッダ情報を指す。1つのビデオフレームシーケンスは複数のビデオグループを含んでもよく、1つのビデオグループは複数のビデオフレームを含んでもよい。図5B中の破線で示されるブロックは各入力ビデオフレームに対応するエンコーディングデータのフレームレベルヘッダ情報を示し、frameはそれぞれ第1個、第2個及び第n個のビデオフレームに対応するエンコーディングデータを示す。ここで、図5Bでは、第1個の入力ビデオフレーム及び第2個の入力ビデオフレームに対応するターゲット処理方式はフル解像度処理方式であり、第3個の入力ビデオフレームに対応するターゲット処理方式はダウンサンプリング処理方式である。
一実施例では、コンピュータ機器はさらに、入力ビデオフレームをダウンサンプリングするダウンサンプリング処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加してもよく、それによって、デコーディング側はエンコーディングデータを取得すると、ダウンサンプリング処理方式情報に応じて、再構成ビデオフレームをアップサンプリングする対応する方法及びアップサンプリング比を取得することができる。ダウンサンプリング処理方式情報はダウンサンプリング方法情報及びダウンサンプリング比情報のうちの1種又は複数種の情報を含む。ダウンサンプリング方法情報のエンコーディングデータにおける追加位置は、対応するグループレベルヘッダ情報、シーケンスレベルヘッダ情報及びフレームレベルヘッダ情報のうちの1つであってもよく、ダウンサンプリング方法情報のエンコーディングデータにおける追加位置はダウンサンプリング方法に対応する作用範囲に応じて決定されてもよい。ダウンサンプリング比情報のエンコーディングデータにおける追加位置は、対応するグループレベルヘッダ情報、シーケンスレベルヘッダ情報及びフレームレベルヘッダ情報のうちのいずれかであってもよい。ダウンサンプリング比情報のエンコーディングデータにおける追加位置はダウンサンプリング比に対応する作用範囲に応じて決定されてもよく、作用範囲とは適用範囲を指す。例えば、ダウンサンプリング比の作用範囲が1つのビデオグループであると、該ビデオグループに対応するダウンサンプリング比情報を該ビデオグループに対応するヘッダ情報に追加してもよい。ダウンサンプリング比の作用範囲がビデオシーケンスであり、ダウンサンプリング比情報を該ビデオシーケンスに対応するシーケンスレベルヘッダ情報に追加すると、該ビデオシーケンスの各ビデオフレームがダウンサンプリング比情報に対応するダウンサンプリング比を採用してダウンサンプリング処理を行うことを示す。
一実施例では、候補処理方式の中から入力ビデオフレームに対応するターゲット処理方式を決定することは、入力ビデオフレームに対応する処理パラメータを取得し、処理パラメータに応じて、入力ビデオフレームに対応するターゲット処理方式を決定するステップを含み、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加することは、処理パラメータがデコーディング中に再現できない場合、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップを含む。
例示的には、処理パラメータは入力ビデオフレームに対応する画像エンコーディング情報及び画像特徴情報のうちの1つ又は複数の情報を含みうる。処理パラメータがデコーディング中に再現できないとは、デコーディング中に該処理パラメータを取得できない又は生成しないことを指す。例えば、処理パラメータが入力ビデオフレームの画像コンテンツに対応する情報であるが、エンコーディング中に画像情報損失がある場合、デコーディング側のデコーディングビデオフレームと入力ビデオフレームに差分がある。従って、デコーディング中に、入力ビデオフレームの画像コンテンツに対応する情報を取得できず、すなわち、画像コンテンツに対応する情報がデコーディング中に再現できない。エンコーディング中、レート歪みコストを計算する必要があるが、デコーディング中にレート歪みコストを計算しない場合、処理パラメータがレート歪みコストを含むと、該処理パラメータがデコーディング中に再現できない。エンコーディング中に取得された再構成ビデオフレームと入力ビデオフレームのPSNR(Peak Signal to Noise Ratio、ピーク信号対雑音比)情報がデコーディング中に取得できないため、PSNR情報がデコーディング中に再現できない。
一実施例では、処理パラメータがデコーディング側に再現できる場合、例えば、入力ビデオフレームに対応するフレーム内エンコーディングブロックの数及びフレーム間エンコーディングブロックの数等の処理パラメータは、デコーディング側に取得でき、すなわち再現できる。ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加してもよく、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加しなくてもよい。ここで、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加する場合、デコーディング側はエンコーディングデータの中からターゲット処理方式情報を読み取ることができ、また処理パラメータに応じてターゲット処理方式を取得する必要がなくなる。ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加しない場合、デコーディング機器は処理パラメータに応じて、エンコーディング側に一致する処理方式を決定し、それによりエンコーディングデータのデータ量を減少させることができる。
一実施例では、図6に示すように、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得するステップS508は、以下のステップS602~ステップS604を含む
ステップS602では、被エンコーディングフレームに対応する現在の参照フレームを取得する。
例示的には、現在の参照フレームは、被エンコーディングフレームのエンコーディング時に参照すべきビデオフレームであり、現在の参照フレームは、エンコーディングフレームの前の、エンコーディングされて得たデータを再構成することによって取得されたビデオフレームである。被エンコーディングフレームに対応する現在の参照フレームの数は1つ又は複数であってもよい。例えば、被エンコーディングフレームがPフレームであると、対応する参照フレームは1個であってもよい。被エンコーディングフレームがBフレームであると、対応する参照フレームは2個であってもよい。被エンコーディングフレームに対応する参照フレームは参照関係に応じて取得されてもよく、参照関係は各ビデオコーデック標準に応じて決定される。例えば、1つのビデオ画像グループ(GOP、Group OfPicture)中の第2個のビデオフレームがBフレームである場合、対応する参照フレームは該ビデオグループのIフレーム、及びビデオグループの第4フレームを対応的にエンコーディングした後、デコーディング再構成して取得されたビデオフレームであってもよい。
一実施例では、被エンコーディングフレームに対応する現在の参照フレームを取得することは、第1参照ルールを取得し、第1参照ルールは被エンコーディングフレームと現在の参照フレームの解像度の大小関係を含むステップと、第1参照ルールに応じて、被エンコーディングフレームに対応する現在の参照フレームを取得するステップと、を含む。
例示的には、第1参照ルールは被エンコーディングフレームと現在の参照フレームの解像度の大小関係を決定しており、解像度の大小関係は被エンコーディングフレームと現在の参照フレームの解像度が同じである又は異なることを含む。第1参照ルールは被エンコーディングフレームと現在の参照フレームの解像度が同じである場合、第1参照ルールはさらに被エンコーディングフレームと現在の参照フレームの解像度の処理方式参照ルールを含んでもよい。例えば、処理方式参照ルールは、フル解像度処理方式の被エンコーディングフレームがフル解像度処理方式の参照フレームを参照できること、及びダウンサンプリング処理方式の被エンコーディングフレームがダウンサンプリング処理方式の参照フレームを参照することのうちの1種又は2種を含んでもよい。第1参照ルールは被エンコーディングフレームと参照フレームの解像度が異なることを含む場合、第1参照ルールはさらに被エンコーディングフレームの解像度が参照フレームの解像度よりも大きいこと、又は被エンコーディングフレームの解像度が参照フレームの解像度よりも小さいことを含んでもよい。従って、一実施例では、第1参照ルールは、原解像度の被エンコーディングフレームがダウンサンプリング解像度の参照フレームを参照できること、ダウンサンプリング解像度の被エンコーディングフレームが原解像度の参照フレームを参照できること、原解像度の被エンコーディングフレームが原解像度の参照フレームを参照できること、及びダウンサンプリング解像度の被エンコーディングフレームがダウンサンプリング解像度の参照フレームを参照できることのうちの1種又は複数種を含んでもよい。ここで、原解像度の被エンコーディングフレームとは、該被エンコーディングフレームの解像度がそれに対応する入力ビデオフレームの解像度と同じであることを指し、原解像度の参照フレームとは、該参照フレームの解像度がそれに対応する入力ビデオフレームの解像度と同じであることを指す。ダウンサンプリング解像度の被エンコーディングフレームとは、該被エンコーディングフレームが対応する入力ビデオフレームをダウンサンプリング処理することによって取得される。ダウンサンプリング解像度の参照フレームとは、該参照フレームが対応する入力ビデオフレームをダウンサンプリング処理することによって取得される。第1参照ルールを取得した後、第1参照ルールに応じて、被エンコーディングフレームに対応する現在の参照フレームを取得し、取得された現在の参照フレームが第1参照ルールを満たすようにする。
一実施例では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得するステップS508の後、さらに、第1参照ルールに対応するルール情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップを含む。
例示的には、ルール情報は採用される参照ルールを記述することに用いられ、エンコーディングデータに、参照ルールを記述するフラグビットResolution_Referencer_Rulesを追加してもよい。フラグビットの値で示される参照ルールは必要に応じて設定されてもよい。エンコーディングデータにおけるルール情報の追加位置はグループレベルヘッダ情報、シーケンスレベルヘッダ情報及びフレームレベルヘッダ情報のうちの1つ又は複数であってもよく、ルール情報のエンコーディングデータにおける追加位置は第1処理参照ルールの作用範囲に応じて決定されてもよい。例えば、第1参照ルールは原解像度の被エンコーディングフレームがダウンサンプリング解像度の参照フレームを参照できることである場合、対応するResolution_Referencer_Rulesは1であってもよい。第1参照ルールはダウンサンプリング解像度の被エンコーディングフレームがダウンサンプリング解像度の参照フレームを参照できることである場合、対応するResolution_Referencer_Rulesは2であってもよい。ビデオシーケンスが同じ第1参照ルールを採用する場合、ルール情報のエンコーディングデータにおける追加位置はシーケンスレベルヘッダ情報であってもよい。第1参照ルールがそのうちの1つのビデオグループに採用される参照ルールである場合、ルール情報のエンコーディングデータにおける追加位置は、第1参照ルールを採用したビデオグループに対応するグループレベルヘッダ情報である。
ステップS604では、被エンコーディングフレームに対応する解像度情報及び現在の参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得する。
例示的には、コンピュータ機器は被エンコーディングフレームに対応する現在の参照フレームを取得し、現在の参照フレームに応じて予測を行い、予測残差を取得し、且つ予測残差に対して変換、量子化及びエントロピーエンコーディングを行い、入力ビデオフレームに対応するエンコーディングデータを取得するようにしてもよい。ここで、コンピュータ機器はエンコーディングデータを取得する過程では、被エンコーディングフレームの解像度に応じて、現在の参照フレーム、被エンコーディングフレームの各エンコーディングブロックに対応する位置情報、現在の参照フレームの各参照ブロックに対応する位置情報及び動きベクトルのうちの1つ又は複数を処理する。例えば、コンピュータ機器は現在の参照フレームを取得した後、現在の参照フレームの中から、被エンコーディングフレームのエンコーディングブロックに対応する参照ブロックを取得し、参照ブロックに応じてエンコーディングブロックをエンコーディングするようにしてもよい。被エンコーディングフレームの解像度に応じて現在の参照フレームを処理し、対応するターゲット参照フレームを取得し、ターゲット参照フレームの中から、被エンコーディングフレームのエンコーディングブロックに対応するターゲット参照ブロックを取得し、ターゲット参照ブロックに応じてエンコーディングブロックをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得するようにしてもよい。
一実施例では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得した後、さらに、被エンコーディングフレームのエンコーディング時に対応するエンコーディング方式を取得するステップと、エンコーディング方式に対応するエンコーディング方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップと、を含む。
例示的には、エンコーディング方式はエンコーディングに関する処理方式である。例えば、エンコーディング時、参照フレームをデコーディング再構成した後のビデオフレームに採用されるアップサンプリング方式、参照ルールに対応するルール、及び参照フレームをサンプリング処理するサンプリング方式、並びに動きベクトルに対応する解像度のうちの1つ又は複数を含んでもよい。エンコーディング方式に対応するエンコーディング方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加することで、デコーディング時、エンコーディング方式情報に応じて、被デコーディングビデオフレームに対応するエンコーディングデータをデコーディングすることができる。
一実施例では、コンピュータ機器は、エンコーディング方式に対応するエンコーディング方式情報を、エンコーディングデータに追加しないようにしてもよい。コーデック標準ではエンコーディング方式を設定し、デコーディング側では該エンコーディング方式に対応するデコーディング方式を設定する。又は、エンコーディング側及びデコーディング側は同一又は対応するアルゴリズムに応じて、マッチングするエンコーディング方式及びデコーディング方式を算出するようにしてもよい。例えば、コーデック標準ではエンコーディングを設定する場合、現在の参照フレームをアップサンプリングする方法はデコーディング時に現在の参照フレームをアップサンプリングする方法と同じである。
一実施例では、図7Aに示すように、被エンコーディングフレームに対応する解像度情報及び現在の参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得するステップS604は、以下のステップS702~S704を含む。
ステップS702では、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得する。
例示的には、ターゲット参照フレームは、現在の参照フレームをサンプリング処理した後に取得されたビデオフレームである。サンプリング処理は、被エンコーディングフレームの解像度情報によって現在の参照フレームをサンプリングし、取得されたターゲット参照フレームの解像度情報をマッチングさせる過程である。コンピュータ機器はサンプリング処理を行う時、まず、サンプリング方式を決定してもよく、サンプリング方式は直接サブピクセル補間方式及びンプリング後サブピクセル補間方式のうちの1種を含む。直接サブピクセル補間方式は、現在の参照フレームを直接サブピクセル補間処理し、サンプリング後サブピクセル補間方式は現在の参照フレームをサンプリング処理した後、さらにサブピクセル補間処理を行う。
サブピクセル補間は、現在の参照フレーム中の整数ピクセルの参照データ補間によってサブピクセルレベルの参照データを取得する過程である。例えば、図7B、7Cに示すように、一実施例における現在の参照フレームを補間する模式図である。図7Bに示すように、A1、A2、A3、B1、B2、B3等のピクセル点は現在の参照フレーム中の2*2整数ピクセル点であり、これらの整数ピクセル点の参照データに応じてサブピクセル点の参照データを算出する。例えば、A1、A2、A3の3個の整数ピクセル点の参照データの平均値に応じてサブピクセル点a23の参照データを算出し、A2、B2、C2の3個の整数ピクセル点の参照データの平均値に応じてサブピクセル点a21の参照データを算出し、さらにサブピクセル点a23、a21の参照データに応じてサブピクセル点a22の参照データを算出し、現在の参照フレームに対する1/2ピクセル精度補間を実現するようにしてもよい。図7Cに示すように、A1、A2、A3、B1、B2、B3等のピクセル点は現在の参照フレーム中の4*4整数ピクセル点であり、これらの整数ピクセル点の参照データに応じて15個のサブピクセル点の参照データを算出し、現在の参照フレームに対する1/4ピクセル精度補間を実現する。例えば、A2、B2整数ピクセル点の参照データに応じてサブピクセル点a8の参照データを算出し、A2、A3整数ピクセル点の参照データに応じてサブピクセル点a2の参照データを算出し、同様にa1~a15の計15個のサブピクセル点の参照データを算出し、整数ピクセル点A2に対する1/4ピクセル精度補間を実現する。被エンコーディングフレームをエンコーディングする過程では、現在の参照フレームにおいて動き検索技術を採用して、被エンコーディングフレーム中のエンコーディングブロックに対応する参照ブロックを見つける必要があり、エンコーディングブロックの参照ブロックに対する動き情報に応じて動きベクトルを算出し、動きベクトルをエンコーディングすることで、参照ブロックに対応する参照データの現在の参照フレームにおける位置をデコーディング側に通知する。したがって、現在の参照フレームをサブピクセル補間処理してターゲット参照フレームを取得することで、被エンコーディングフレームは解像度のより高いターゲット参照フレームに応じて動き推定を行うことができ、それにより動き推定の正確性を向上させ、エンコーディング品質向上させる。
一実施例では、エンコーディング側及びデコーディング側はそれぞれのコーデックルールでは、現在の参照フレームに応じて処理してターゲット参照フレームを取得する時に採用されるサンプリング方式を設定してもよく、採用されるサンプリング方式は一致すべきであり、エンコーディング、デコーディング時、設定に応じて、現在の参照フレームの処理に対応するサンプリング方式を決定する。
一実施例では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得した後、さらに、現在の参照フレームのサンプリング処理に対応するサンプリング方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップを含む。現在の参照フレームのサンプリング処理に対応するサンプリング方式情報のエンコーディングデータにおける追加位置は、対応するシーケンスレベルヘッダ情報、グループレベルヘッダ情報及びフレームレベルヘッダ情報のうちのいずれかであってもよく、サンプリング方式情報のエンコーディングデータにおける追加位置はサンプリング方式に対応する作用範囲に応じて決定されてもよい。コンピュータ機器はサンプリング方式情報を、入力ビデオフレームに対応するエンコーディングデータのフレームレベルヘッダ情報に追加してもよく、入力ビデオフレームのエンコーディング時、対応する現在の参照フレームがサンプリング方式情報に対応するサンプリング方式を採用してサブピクセル補間処理を行うことを示す。例えば、エンコーディングデータのフレームレベルヘッダ情報中の、サンプリング方式を決定するためのフラグビットPixel_Sourse_Interpolationが0である場合、入力ビデオフレームに対応する現在の参照フレームが直接サブピクセル補間処理を採用することを示す。Pixel_Sourse_Interpolationが1である場合、入力ビデオフレームに対応する現在の参照フレームがサンプリング処理後のサブピクセル補間処理を採用することを示す。デコーディング側はエンコーディングデータ中のフラグビットで示されるサンプリング方式に応じて現在の参照フレームをサンプリング処理してターゲット参照フレームを取得することでき、それによりターゲット参照フレームに応じてエンコーディングデータをデコーディングして再構成ビデオフレームを取得することができる。
一実施例では、コンピュータ機器は被エンコーディングフレームの解像度と現在の参照フレームの解像度との間の比関係に応じて、現在の参照フレームのサンプリング比を決定してもよい。例えば、入力ビデオフレームの解像度がいずれも2M*2Nであり、現在の入力ビデオフレームをフル解像度処理方式で処理し、すなわち直接現在の入力ビデオフレームを被エンコーディングフレームとする場合、被エンコーディングフレームの解像度が2M*2Nである。参照フレームとして使用できる入力ビデオフレームをダウンサンプリング処理方式で処理し、ダウンサンプリング後の現在の被エンコーディング参照フレームの解像度をM*2Nと取得する場合、再構成後に取得された対応する現在の参照フレームの解像度もM*2Nである。従って、現在の参照フレームに対して、幅2、高さ1のサンプリング比でアップサンプリング処理を行い、被エンコーディングフレームの解像度と同じフレームを取得すると決定する。現在の入力ビデオフレームをダウンサンプリング処理方式で処理すると、ダウンサンプリング後に取得された被エンコーディングフレームの解像度がM*Nである。参照フレームとして使用できる入力ビデオフレームをフル解像度処理方式で処理すると、再構成後に取得された現在の参照フレームの解像度が2M*2Nであり、この場合、現在の参照フレームを幅、高さがいずれも1/2のサンプリング比でダウンサンプリング処理し、被エンコーディングフレームの解像度と同じフレームを取得すると決定する。
一実施例では、入力ビデオフレームの解像度が通常同じであるため、入力ビデオフレームに応じてダウンサンプリングして、被エンコーディングフレームに対応するダウンサンプリング比を取得し、及び参照フレームとして使用できる入力ビデオフレームをダウンサンプリングして、被エンコーディング参照フレームに対応するダウンサンプリング比を取得し、現在の参照フレームのサンプリング比を決定するようにしてもよい。例えば、入力ビデオフレームを1/2のサンプリング比でダウンサンプリング処理して被エンコーディングフレームを取得し、参照フレームとして使用できる入力ビデオフレームを1/4のサンプリング比でダウンサンプリング処理して被エンコーディング参照フレームを取得する場合、被エンコーディング参照フレームのエンコーディングデータに応じて再構成して取得された現在の参照フレームに対応するダウンサンプリング比も1/4である。それらのダウンサンプリング比間の倍数関係に応じて、現在の参照フレームを2のサンプリング比でアップサンプリング処理して、被エンコーディングフレームの解像度と同じフレームを取得すると決定するようにしてもよい。
一実施例では、現在の参照フレームをサンプリングするサンプリング方法は入力ビデオフレームをダウンサンプリングして被エンコーディングフレームを取得するサンプリングアルゴリズムにマッチングし、すなわち、現在の参照フレームをダウンサンプリングする必要がある場合、ダウンサンプリングアルゴリズムは被エンコーディングビデオフレームをダウンサンプリングして被エンコーディングフレームを取得するダウンサンプリングアルゴリズムと同じである。現在の参照フレームをアップサンプリングする必要がある場合、アップサンプリングアルゴリズムは入力ビデオフレームをダウンサンプリングして現在の被エンコーディングフレームを取得するダウンサンプリングアルゴリズムにマッチングするサンプリングアルゴリズムとは逆のサンプリングアルゴリズムである。
本実施例では、現在の参照フレームをサンプリングするサンプリングアルゴリズムは、被エンコーディングビデオフレームをダウンサンプリングして現在のエンコーディングビデオフレームを取得するサンプリングアルゴリズムにマッチングし、それにより現在の参照フレームと現在のエンコーディングビデオフレームとの画像マッチング度を更に向上させ、フレーム間予測の正確性を更に向上させ、予測残差を減少させ、エンコーディング画像の品質を向上させる。
ステップS704では、ターゲット参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得する。
例示的には、コンピュータ機器はターゲット参照フレームを取得した後、ターゲット参照フレームからエンコーディングブロックと類似する画像ブロックを参照ブロックとして検索して取得し、エンコーディングブロックと参照ブロックのピクセル差分を計算して予測残差を取得する。エンコーディングブロック及び対応するターゲット参照ブロックの変位に応じて第1動きベクトルを取得する。第1動きベクトル及び予測残差に応じてエンコーディングデータを取得する。
一実施例では、コンピュータ機器はターゲット動きベクトル単位解像度情報に応じて第1動きベクトルを変換し、ターゲット解像度でのターゲット動きベクトルを取得し、ターゲット動きベクトル及び予測残差に応じてエンコーディングデータを生成するようにしてもよい。ここで、ターゲット動きベクトル単位解像度情報に応じて第1動きベクトルを変換し、ターゲット動きベクトルを取得する方法について、後で説明する。
一実施例では、コンピュータ機器はさらにターゲット動きベクトルと対応する予測動きベクトルとの間のベクトル差分を計算し、ベクトル差分をエンコーディングし、エンコーディングデータを取得し、更にエンコーディングデータ量を減少させるようにしてもよい。ベクトル差分を計算するステップは、現在のエンコーディングブロックに対応する初期予測動きベクトルを取得するステップと、初期予測動きベクトルに対応する現在の動きベクトル単位解像度情報及びターゲット動きベクトル単位解像度情報に応じて、第2ベクトル変換係数を取得するステップと、初期予測動きベクトル及び第2ベクトル変換係数に応じて、現在のエンコーディングブロックに対応するターゲット予測動きベクトルを取得するステップと、ターゲット動きベクトル及びターゲット予測動きベクトルに応じて動きベクトル差を取得するステップと、を含んでもよい。ここで、ターゲット予測動きベクトルは、ターゲット解像度での動きベクトルであり、ベクトル差分を計算する方法について、後で説明する。
一実施例では、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得するステップS702は、被エンコーディングフレームの解像度情報及び動き推定ピクセル精度に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得するステップを含む。
ここで、動き推定ピクセル精度は被エンコーディングフレーム中のエンコーディングブロックに対応する動きベクトルの単位長さである。コンピュータ機器は被エンコーディングフレーム中のエンコーディングブロックをエンコーディングする時、取得された動き推定ピクセル精度に応じて、エンコーディングブロックに対応する動きベクトルの単位長さを細分化してもよく、このように取得された動きベクトルがさらに精細かつ正確である。したがって、取得された動き推定ピクセル精度に応じて現在の参照フレームをサンプリング処理してターゲット参照フレームを取得し、さらにターゲット参照フレームに応じて被エンコーディングフレーム中の各エンコーディングブロックに対応する第1動きベクトルを計算し、該第1動きベクトルに基づいてエンコーディングして、被エンコーディングフレームに対応するエンコーディングデータを取得する必要がある。
例示的には、現在の参照フレームの解像度情報を取得し、被エンコーディングフレームに採用されるサンプリング方式、及び被エンコーディングフレームの解像度情報、現在の参照フレームの解像度情報、及び被エンコーディングフレームに対応する動き推定ピクセル精度に応じて、現在の参照フレームのサンプリング処理方法、サンプリング処理に対応するサンプリング比及びピクセル補間精度を決定するようにしてもよい。動き推定ピクセル精度の大きさは必要に応じて設定されてもよく、例えば、通常、1/2ピクセル精度、1/4ピクセル精度又は1/8ピクセル精度である。
一実施例では、コンピュータ機器は被エンコーディングフレームの画像特徴情報に応じて、該被エンコーディングフレームに対して、対応する動き推定ピクセル精度、画像特徴情報、例えば該被エンコーディングフレームのサイズ、テクスチャ情報及び動き速度のうちの1種又は複数種等を設定してもよく、複数種の画像特徴情報をまとめて、被エンコーディングフレームに対応する動き推定ピクセル精度を決定してもよい。被エンコーディングフレームに含まれる画像データが複雑であるほど、画像情報が豊かであり、対応する動き推定ピクセル精度が更に高い。例えば、Pフレームに対してフレーム間予測を行う時、比較的高い動き推定ピクセル精度を採用して、Pフレーム中の各エンコーディングブロックに対応する動きベクトルを計算してもよいが、Bフレームに対してフレーム間予測を行う時、比較的低い動き推定ピクセル精度を採用してBフレーム中の各エンコーディングブロックに対応する動きベクトルを計算してもよい。
一実施例では、被エンコーディングフレームの解像度情報及び動き推定ピクセル精度に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得することは、被エンコーディングフレームの解像度情報及び動き推定ピクセル精度に応じてピクセル補間精度を算出するステップと、ピクセル補間精度に応じて、現在の参照フレームを直接サブピクセル補間処理し、対応するターゲット参照フレームを取得するステップと、を含む。
例示的には、ピクセル補間精度は、現在の参照フレームのサブピクセル補間に対応するピクセル精度である。サブピクセル補間方式は直接サブピクセル補間方式であり、現在の参照フレームを直接サブピクセル補間処理してターゲット参照フレームを取得してもよいことを示す。従って、コンピュータ機器は被エンコーディングフレームの解像度情報及び動き推定ピクセル精度に応じてピクセル補間精度を算出するようにしてもよい。現在の参照フレームの解像度情報と被エンコーディングフレームの解像度情報との比を計算し、比及び動き推定ピクセル精度に応じてピクセル補間精度を取得するようにしてもよい。
一実施例では、現在の参照フレームの解像度が被エンコーディングフレームの解像度よりも大きい場合、現在の参照フレーム中の一部のサブピクセル点のデータを直接多重化でき、動き推定ピクセル精度に応じたサブピクセル点に対応するデータとして使用できる。例えば、被エンコーディングフレームの解像度がM*Nであり、現在の参照フレームの解像度が2M*2Nであり、動き推定ピクセル精度が1/2であり、ピクセル補間精度が1であると、現在の参照フレームが直接ターゲット参照フレームとして使用でき、動き推定ピクセル精度が1/4であると、ピクセル補間精度を1/2と算出し、現在の参照フレームを1/2ピクセル補間精度でサブピクセル補間処理して、ターゲット参照フレームを取得するようにしてもよい。
一実施例では、被エンコーディングフレームの解像度情報で示される解像度が現在の参照フレームの解像度と同じである場合、コンピュータ機器は動き推定ピクセル精度に応じて現在の参照フレームを直接サブピクセル補間処理し、対応するターゲット参照フレームを取得する。
例示的には、フル解像度処理方式で入力ビデオフレームを処理して被エンコーディングフレームを取得し、且つ現在の参照フレームの解像度も原解像度である場合、被エンコーディングフレームの解像度が現在の参照フレームの解像度と同じである。又は、ダウンサンプリング方式で入力ビデオフレームを処理して被エンコーディングフレームを取得し、且つ現在の参照フレームも同じサンプリング比のダウンサンプリング方式でエンコーディングして取得されたエンコーディングデータを再構成して取得される場合、被エンコーディングフレームの解像度が現在の参照フレームの解像度と同じである。このようにして、コンピュータ機器は直接動き推定ピクセル精度に基づいて現在の参照フレームを直接サブピクセル補間処理してターゲット参照フレームを取得でき、且つ、サブピクセル補間処理に対応するピクセル補間精度が動き推定ピクセル精度と同じである。
一実施例では、被エンコーディングフレームの解像度情報及び動き推定ピクセル精度に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得することは、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、中間参照フレームを取得するステップと、動き推定ピクセル精度に応じて中間参照フレームをサブピクセル補間処理し、ターゲット参照フレームを取得するステップと、を含む。
例示的には、被エンコーディングフレームに対応するサンプリング方式がサンプリング後サブピクセル補間方式である場合、まず、現在の参照フレームをサンプリング処理し、被エンコーディングフレームの解像度と同じ中間参照フレームを取得し、さらに中間参照フレームをサブピクセル補間処理して、対応するターゲット参照フレームを取得することを示す。
被エンコーディングフレームの解像度情報で示される解像度が現在の参照フレームの解像度よりも小さい場合、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをダウンサンプリング処理し、中間参照フレームを取得し、次に被エンコーディングフレームに対応する動き推定ピクセル精度に基づいて中間参照フレームをサブピクセル補間処理し、ターゲット参照フレームを取得する。例えば、解像度が2M*2Nの入力ビデオフレームをダウンサンプリング処理方式でダウンサンプリング処理して、解像度がM*Nの被エンコーディングフレームを取得し、現在の参照フレームの解像度が2M*2N(フル解像度処理方式)である場合、現在の参照フレームを1/2のサンプリング比でダウンサンプリング処理して、解像度がM*Nの中間参照フレームを取得する。取得された被エンコーディングフレームに対応する動き推定ピクセル精度が1/2であり、さらに中間参照フレームを、動き推定ピクセル精度と同じピクセル補間精度、すなわち1/2サブピクセル補間精度でサブピクセル補間処理し、ターゲット参照フレームを取得し、取得された被エンコーディングフレームに対応する動き推定ピクセル精度が1/4である場合、中間参照フレームを1/4サブピクセル補間精度でサブピクセル補間処理し、ターゲット参照フレームを取得する。
被エンコーディングフレームの解像度情報で示される解像度が現在の参照フレームの解像度よりも大きい場合、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをアップサンプリング処理し、中間参照フレームを取得し、次に被エンコーディングフレームに対応する動き推定ピクセル精度に基づいて、中間参照フレームをサブピクセル補間処理し、ターゲット参照フレームを取得する。例えば、被エンコーディングフレームの解像度が2M*2Nであり、現在の参照フレームの解像度が1/2M*1/2Nである場合、サンプリング比4で現在の参照フレームをアップサンプリング処理して、被エンコーディングフレームの解像度と同じ中間参照フレームを取得する必要がある。動き推定ピクセル精度が1/2である場合、引き続き、取得された中間参照フレームを1/2ピクセル補間精度でサブピクセル補間処理し、ターゲット参照フレームを取得し、動き推定ピクセル精度が1/4である場合、引き続き、取得された中間参照フレームを1/4ピクセル補間精度でサブピクセル補間処理し、ターゲット参照フレームを取得する。
図8Aに示すように、被エンコーディングフレームに対応する解像度情報及び現在の参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得するステップS604は、以下のステップS802~S804を含む。
ステップS802では、被エンコーディングフレームの解像度情報及び第1解像度情報に応じて、第1ベクトル変換パラメータを決定し、第1解像度情報は現在の参照フレームの解像度情報又は入力ビデオフレームに対応するターゲット動きベクトル単位解像度情報を含む。
例示的には、第1ベクトル変換パラメータは取得された動きベクトルの位置情報又は動きベクトルを変換することに用いられる。解像度情報は解像度に関連する情報であり、例えば、解像度自体又はダウンサンプリング比等であってもよい。第1ベクトル変換パラメータは被エンコーディングフレームの解像度情報と第1解像度情報との比であってもよい。例えば、現在の参照フレームのダウンサンプリング比が1/3、被エンコーディングフレームのダウンサンプリング比が1/6であることを仮定する。この場合、第1ベクトル変換パラメータとして、1/3を1/6で除算して2に等しいようにしてもよい。
ステップS804では、第1ベクトル変換パラメータに応じて、被エンコーディングフレーム中の各エンコーディングブロックに対応するターゲット動きベクトルを取得する。
例示的には、コンピュータ機器は第1ベクトル変換パラメータを取得した後、第1ベクトル変換パラメータに応じて、取得された動きベクトル又は動きベクトルに対応する位置情報を変換し、ターゲット動きベクトルを取得する。第1ベクトル変換パラメータを利用してターゲット動きベクトルを変換する時、ターゲット動きベクトルを、ターゲット動きベクトル単位解像度情報で示されるターゲット解像度での動きベクトルにする。ターゲット動きベクトル単位解像度情報とターゲット動きベクトルの単位に対応するターゲット解像度に対応する情報は、例えば、ターゲット解像度自体又はダウンサンプリング比であってもよい。第1ベクトル変換パラメータを利用して動きベクトルに対応する位置情報を変換する時、被エンコーディングフレームに対応する位置情報を、現在の参照フレームの位置情報と同じ量子化スケールにし、変換後の位置情報に応じて第2動きベクトルを取得し、第2動きベクトルをターゲット解像度でのターゲット動きベクトルに変換する。
一実施例では、被エンコーディングフレームの解像度情報及び第1解像度情報に応じて第1ベクトル変換パラメータを決定するステップS802は、被エンコーディングフレームの解像度情報及び現在の参照フレームの解像度情報に応じて第1ベクトル変換パラメータを決定するステップを含む。第1ベクトル変換パラメータに応じて、被エンコーディングフレーム中の各エンコーディングブロックに対応する動きベクトルを取得するステップS804は、現在のエンコーディングブロックに対応する第1位置情報を取得し、現在のエンコーディングブロックに対応するターゲット参照ブロックに対応する第2位置情報を取得するステップと、第1ベクトル変換パラメータ、第1位置情報及び第2位置情報に応じて、現在のエンコーディングブロックに対応するターゲット動きベクトルを算出するステップと、を含む。
例示的には、現在のエンコーディングブロックは入力ビデオフレーム中の、現在予測エンコーディングを必要とするエンコーディングブロックである。ターゲット参照ブロックは参照フレーム中の、現在のエンコーディングブロックを予測エンコーディングするための画像ブロックである。現在のエンコーディングブロックに対応する第1位置情報はピクセルの座標で示されてもよい。現在のエンコーディングブロックに対応する第1位置情報は現在のエンコーディングブロックのすべてのピクセルに対応する座標を含んでもよく、現在のエンコーディングブロックに対応する第1位置情報は現在のエンコーディングブロックの1つ又は複数のピクセルの座標を含んでもよい。ターゲット参照ブロックに対応する第2位置情報はターゲット参照ブロックのすべてのピクセルに対応する座標を含んでもよく、ターゲット参照ブロックに対応する第2位置情報はターゲット参照ブロックの1つ又は複数のピクセルの座標を含んでもよい。例えば、現在の画像ブロックの第1個のピクセル点の座標を現在のエンコーディングブロックの座標値とし、ターゲット参照ブロックの第1個のピクセル点の座標をターゲット参照ブロックの座標値とするようにしてもよい。
一実施例では、コンピュータ機器は第1ベクトル変換パラメータを利用して第1位置情報を変換し、対応する第1変換位置情報を取得し、第1変換位置情報と第2位置情報との差分に応じてターゲット動きベクトルを取得するようにしてもよい。又は、第1ベクトル変換パラメータを利用して第2位置情報を変換し、対応する第2変換位置情報を取得し、第1位置情報と第2位変換置情報との差分に応じてターゲット動きベクトルを取得するようにしてもよい。
一実施例では、第1ベクトル変換パラメータは被エンコーディングフレームの解像度及び現在の参照フレームの解像度情報のうち、大解像度情報を小解像度情報で除算して取得された比であり、ここで、大解像度情報に対応する解像度は小解像度に対応する解像度よりも大きい。第1ベクトル変換パラメータは被エンコーディングフレーム及び現在の参照フレームのうち小解像度情報のフレームの位置情報を変換することに用いられる。例えば、被エンコーディングフレームの解像度が1200*1200ピクセルであり、現在の参照フレームの解像度が600*600ピクセルである場合、大解像度が1200*1200ピクセルであり、小解像度が600*600ピクセルである。第1ベクトル変換パラメータは2であってもよい。第1位置情報を(6,8)、第2位置情報を(3,3)と仮定する。この場合、ターゲット動きベクトルは(6,8)-(3*2,3*2)=(0,2)である。本願の実施例では、小解像度情報のフレームに対応する位置情報を変換することで、ターゲット動きベクトルの値を低減させ、エンコーディングデータのデータ量を減少させることができる。
一実施例では、第1ベクトル変換パラメータは被エンコーディングフレームの解像度及び現在の参照フレームの解像度情報のうち、小解像度情報を大解像度情報で除算して取得された比であり、第1ベクトル変換パラメータは被エンコーディングフレーム及び現在の参照フレームのうち大解像度情報のフレームの位置情報を変換することに用いられる。例えば、被エンコーディングフレームの解像度が1200*1200ピクセルであり、現在の参照フレームの解像度が600*600ピクセルであり、第1ベクトル変換パラメータが1/2であってもよい。第1位置情報を(6,8)、第2位置情報を(3,3)と仮定する。この場合、ターゲット動きベクトルは(6*1/2,8*1/2)-(3,3)=(0,1)である。
本願の実施例では、第1ベクトル変換パラメータで位置情報を変換し、取得された位置情報を同じ量子化スケールにし、それによりターゲット動きベクトルの値を低減させ、エンコーディングデータのデータ量を減少させることができる。例えば、図8Bに示すように、現在の参照フレームの解像度は被エンコーディングフレームの解像度の2倍であり、現在のエンコーディングブロックはピクセル(1,1)、(1,2)、(2,1)及び(2,2)からなり、対応するターゲット参照ブロックはピクセル(4,2)、(4,3)、(5,2)及び(5,3)からなる。変換しないと、ターゲット動きベクトルは(-3,-1)であるが、ターゲット動きベクトルを計算する時、被エンコーディングフレーム中の対応する位置情報に2を乗算し、さらにターゲット動きベクトルを計算すると、ターゲット動きベクトルは(-2,0)であり、(-3,-1)よりも小さい。
一実施例では、被エンコーディングフレームの解像度情報及び第1解像度情報に応じて第1ベクトル変換パラメータを決定するステップS802は、ターゲット動きベクトル単位解像度情報を取得するステップと、被エンコーディングフレームの解像度情報及びターゲット動きベクトル単位解像度情報に応じて第1ベクトル変換パラメータを決定するステップと、を含む。第1ベクトル変換パラメータに応じて、被エンコーディングフレーム中の各エンコーディングブロックに対応するターゲット動きベクトルを取得するステップS804は、現在のエンコーディングブロック及び対応するターゲット参照ブロックの変位に応じて第1動きベクトルを取得するステップと、第1ベクトル変換パラメータ及び第1動きベクトルに応じて、現在のエンコーディングブロックに対応するターゲット動きベクトルを取得するステップと、を含む。
例示的には、ターゲット動きベクトル単位解像度情報とは、ターゲット動きベクトルの単位に対応するターゲット解像度に対応する情報を指し、例えば、ターゲット解像度又は対応するダウンサンプリング比であってもよい。ターゲット動きベクトルは該解像度でのベクトル単位を標準として計算されるものである。入力ビデオシーケンスの対応する各被エンコーディングフレームのいくつかの解像度が入力ビデオフレームの原解像度と同じであるが、残りの被エンコーディングフレームの解像度が入力ビデオフレームの原解像度よりも小さい可能性があり、すなわち、ビデオシーケンス中の異なる被エンコーディングフレームの解像度が異なることがあるため、ターゲット動きベクトルの単位に対応する解像度を決定する必要がある。ターゲット動きベクトルの単位に対応する解像度はエンコーディング前に設定されており、又はエンコーディング過程のパラメータに応じて取得されるようにしてもよく、必要に応じて設定されてもよい。
第1動きベクトルは現在のエンコーディングブロック及び対応するターゲット参照ブロックの変位に応じて取得されるものであり、ターゲット参照ブロックは現在の参照フレームから取得されてもよく、現在の参照フレームを処理して取得されたターゲット参照フレームから取得されてもよく、第1動きベクトルを取得した後、第1ベクトル変換パラメータと第1動きベクトルを乗算し、取得された積をターゲット動きベクトルとするようにしてもよい。例えば、ターゲット動きベクトル単位に対応する解像度が原解像度であり、被エンコーディングフレームに対応するダウンサンプリング比が1/2であることを仮定する。ターゲット動きベクトル単位が原解像度であるが、第1動きベクトルが被エンコーディングフレームの解像度で算出されるため、第1動きベクトルを変換する必要があり、第1ベクトル変換パラメータが2に等しく、取得された第1動きベクトルが(2,2)であると、ターゲット動きベクトルが(4,4)である。ターゲット動きベクトルを取得した後、コンピュータ機器はターゲット動きベクトルに応じてエンコーディングしてもよく、例えば、ターゲット動きベクトル及び現在のエンコーディングブロックに対応する予測残差をエンコーディングし、エンコーディングデータを取得するようにしてもよい。
一実施例では、ターゲット参照ブロックが現在の参照フレームから取得される場合、同一エンコーディングブロックに対して、第1動きベクトルは第2動きベクトルに等しくてもよいと理解できる。
一実施例では、ターゲット動きベクトルの単位に対応する解像度は入力ビデオフレームに対応する解像度、すなわち原解像度であってもよく、又は、ターゲット動きベクトルの単位に対応する解像度は被エンコーディングフレームに対応する解像度であってもよい。第1ベクトル変換パラメータはターゲット動きベクトル単位に対応する解像度情報と被エンコーディングフレームの解像度情報との比であってもよい。例えば、ターゲット動きベクトル単位に対応する解像度が原解像度であり、ターゲット動きベクトル単位に対応するサンプリング比が1であり、被エンコーディングフレームの解像度のサンプリング比が1/2である場合、第1ベクトル変換パラメータとして、1を1/2で除算して2に等しいようにしてもよい。又は、ターゲット動きベクトル単位に対応する解像度が原解像度、すなわち900*900ピクセルであり、被エンコーディングフレームの解像度のサンプリング比が450*600ピクセルであり、第1ベクトル変換パラメータは水平方向の第1ベクトル変換パラメータ及び垂直方向の第1ベクトル変換パラメータの2つを含んでもよいことを仮定する。この場合、水平方向の第1ベクトル変換パラメータが900/450=2であり、垂直方向の第1ベクトル変換パラメータが900/600=1.5である。
一実施例では、エンコーディングを行う機器の計算能力に応じて、ターゲット動きベクトル単位解像度情報を取得するようにしてもよい。例えば、エンコーディングを行う機器が整数のみを演算でき、又は数値が小数である時に演算時間が長い場合、ターゲット動きベクトル単位に対応する解像度は入力ビデオフレームに対応する原解像度であってもよい。エンコーディングを行う機器が小数の演算を高速に行うことができる場合、ターゲット動きベクトル単位に対応する解像度は被エンコーディングフレームに対応する解像度であってもよい。
一実施例では、被エンコーディングフレームの解像度情報がターゲット動きベクトル単位解像度情報に一致する場合、第1ベクトル変換パラメータは1であり、第1動きベクトルはターゲット動きベクトルと同じであり、従って、ステップS802をスキップして、第1動きベクトルをターゲット動きベクトルとするようにしてもよい。被エンコーディングフレームの解像度情報がターゲット動きベクトル単位解像度情報に一致しない場合、ステップS802を実行する。
本願の実施例では、ターゲット動きベクトルの単位に対応する解像度が入力ビデオフレームに対応する解像度、すなわち原解像度である場合、解像度を統一したビデオシーケンスに対して、各入力ビデオフレームに対応するターゲット解像度が一致し、ターゲット動きベクトルの統一性を維持することができる。ターゲット動きベクトルの単位に対応する解像度が被エンコーディングビデオフレームに対応する解像度である場合、被エンコーディングフレームの解像度情報がターゲット動きベクトル単位解像度情報に一致するため、第1動きベクトルを変換する必要がなく、計算時間を減少させることができる。
一実施例では、ターゲット動きベクトル単位解像度情報を示す識別情報を、エンコーディングデータに追加してもよく、それによって、デコーディング側はターゲット動きベクトルに対応するターゲット解像度を取得することができる。識別情報を含まないと、エンコーディング側とデコーディング側はターゲット動きベクトルに対応するターゲット解像度を約束してもよい。該識別情報はターゲット動きベクトルに対応する解像度情報を示すことに用いられる。識別情報のエンコーディングデータにおける追加位置はグループレベルヘッダ情報、シーケンスレベルヘッダ情報フレームレベルヘッダ情報及びブロックレベルヘッダ情報のうちの1つ又は複数であってもよく、ここで、ブロックレベルヘッダ情報とはエンコーディングブロックに対応するエンコーディングデータのヘッダ情報を指す。識別情報のエンコーディングデータにおける追加位置はターゲット動きベクトル単位解像度情報の作用範囲に応じて決定されてもよい。例えば、ビデオシーケンス中のベクトル単位に対応する解像度が一致すると、追加位置はシーケンスレベルヘッダ情報であってもよい。フラグビットの値で示される解像度情報は必要に応じて設定されてもよい。例えば、ターゲット動きベクトル単位解像度情報に対応する解像度が原解像度である場合、対応するフラグビットMV_Scale_Adaptiveは0であり、ターゲット動きベクトル単位解像度情報に対応する解像度が被エンコーディングフレームに対応する解像度である場合、対応するフラグビットMV_Scale_Adaptiveは1である。
一実施例では、図9に示すように、被エンコーディングフレームに対応する解像度情報及び現在の参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得することは、以下のステップS902~S908を含む。
ステップS902では、現在のエンコーディングブロックに対応する初期予測動きベクトルを取得する。
例示的には、現在のエンコーディングブロックの動きベクトルを予測し、予測値を取得し、ターゲット動きベクトルと予測値との差分を計算し、動きベクトル差分を取得し、動きベクトル差分をエンコーディングするようにしてもよく、それによりエンコーディングデータ用のビット数を低減させることができる。初期予測動きベクトルは現在のエンコーディングブロックの動きベクトルを予測することに用いられる。初期予測動きベクトルの数は1つ又は複数であってもよく、必要に応じて設定されてもよい。初期予測動きベクトルの取得ルールは、必要に応じて設定されてもよく、現在のエンコーディングブロックとそれと隣接するエンコーディングブロックには空間相関性があることが多いため、現在のエンコーディングブロックに対応する1つ又は複数の隣接するエンコーディング済みブロックの対応するターゲット動きベクトル値を初期予測動きベクトルとしてもよい。例えば、現在のエンコーディングブロック中の右上角及び左上角の隣接するエンコーディング済みブロックに対応する第1動きベクトル値を初期予測動きベクトルとしてもよい。又は、現在のエンコーディングブロックに対応するターゲット参照ブロックに対応するターゲット参照ブロックの動きベクトル値を初期予測動きベクトルとしてもよい。
ステップS904では、初期予測動きベクトルに対応する現在の動きベクトル単位解像度情報及びターゲット動きベクトル単位解像度情報に応じて、第2ベクトル変換係数を取得する。
例示的には、現在の動きベクトル単位解像度情報とは、初期予測動きベクトルの単位に対応する現在の解像度に対応する情報を指し、例えば、現在の解像度又はダウンサンプリング比であってもよい。初期予測動きベクトルの単位に対応する解像度とは、該初期予測動きベクトルの単位が現在の解像度でのベクトル単位を標準として計算されるもの、すなわち、現在の解像度での動きベクトルであることを指す。初期予測動きベクトルに対応する現在の動きベクトル単位解像度情報がターゲット動きベクトル単位解像度情報と異なる場合、初期予測動きベクトルに対応する現在の動きベクトル単位解像度情報及びターゲット動きベクトル単位解像度情報に応じて第2ベクトル変換係数を取得する必要がある。第2ベクトル変換パラメータは初期予測動きベクトルをターゲット解像度での動きベクトルに変換することに用いられ、第2ベクトル変換パラメータはターゲット動きベクトル単位に対応する解像度情報と現在の動きベクトル単位解像度情報との比であってもよい。例えば、ターゲット動きベクトル単位に対応する解像度を200*200ピクセル、現在の動きベクトル単位解像度情報を100*100ピクセルと仮定する場合、第1ベクトル変換パラメータは2であってもよい。
ステップS906では、初期予測動きベクトル及び第2ベクトル変換係数に応じて、現在のエンコーディングブロックに対応するターゲット予測動きベクトルを取得する。
例示的には、第2ベクトル変換パラメータを取得した後、初期予測動きベクトル及び第2ベクトル変換係数に応じて演算し、ターゲット予測動きベクトルを取得し、ターゲット予測動きベクトルはターゲット解像度での予測動きベクトルである。例えば、初期予測動きベクトルが1つである場合、初期予測動きベクトルと第2ベクトル変換係数との積をターゲット予測動きベクトルとしてもよい。初期予測動きベクトルが複数である場合、初期予測動きベクトルを計算し、計算結果を取得し、計算結果及び第2ベクトル変換係数に応じてターゲット動きベクトルを取得することができる。計算結果は初期予測動きベクトル中の最小値、平均値及び中央値のうちの1種又は複数種であってもよい。なお、初期予測動きベクトル及び第2ベクトル変換係数に応じてターゲット予測動きベクトルを取得するアルゴリズムはカスタマイズされてもよく、デコーディング側では、一致したカスタマイズされたアルゴリズムを利用して同じターゲット予測動きベクトルを算出することができる。
ステップS908では、ターゲット動きベクトル及びターゲット予測動きベクトルに応じて動きベクトル差を取得する。
例示的には、動きターゲットベクトルとターゲット予測動きベクトルとの差分を動きベクトル差とし、それにより動きベクトル差に応じてエンコーディングを行い、エンコーディングデータを取得し、エンコーディングデータのデータ量を減少させる。
本願の実施例では、初期予測動きベクトルを変換し、ターゲット解像度でのターゲット予測動きベクトルを取得し、ターゲット予測動きベクトル及びターゲット動きベクトルの単位を、マッチングした量子化スケールにし、従って取得された動きベクトル差分が小さく、エンコーディングデータのデータ量を減少させる。
一実施例では、候補処理方式の中から入力ビデオフレームに対応するターゲット処理方式を決定するステップS504は、入力ビデオフレームに対応する前方エンコーディングビデオフレームにおけるターゲット予測タイプエンコーディングブロックの比を計算するステップと、比に応じて、入力ビデオフレームに対応するターゲット処理方式を決定するステップと、を含む。
例示的には、予測タイプエンコーディングブロックはフレーム予測タイプに対応するエンコーディングブロックである。ターゲット予測タイプの比はフレーム内エンコーディングブロックに対応する比及びフレーム間エンコーディングブロックに対応する比のうちの1種又は2種であってもよい。入力ビデオフレームに対応する前方エンコーディングビデオフレームにおけるターゲット予測タイプエンコーディングブロックの比は該ターゲット予測タイプエンコーディングブロックとほかの予測タイプエンコーディングブロックとの比であってもよく、該タイプのエンコーディングブロックとエンコーディングブロック総数との比であってもよい。必要に応じて設定されてもよい。例えば、前方エンコーディングビデオフレーム中のフレーム内エンコーディングブロックの第1数量、前方エンコーディングビデオフレーム中のフレーム間エンコーディングブロックの第2数量を取得してもよい。第1数量及び第2数量に応じて、フレーム内エンコーディングブロックとフレーム間エンコーディングブロックとの比を算出し、又は前方エンコーディングビデオフレームのすべてのエンコーディングブロックの第3数量を統計し、第1数量及び第3数量に応じてフレーム内エンコーディングブロックと第3数量との比を算出する。さらに第2数量及び第3数量に応じてフレーム間エンコーディングブロックと第3数量との比を算出してもよい。
前方エンコーディングビデオフレームとは、入力ビデオフレームをエンコーディングする前にエンコーディングされたビデオフレームを指し、取得された前方エンコーディングビデオフレームの具体的な数量はカスタマイズされてもよい。例えば、前方エンコーディングビデオフレームは入力ビデオフレームの前の1個のエンコーディングされたエンコーディングビデオフレームであってもよく、前方エンコーディングビデオフレームは入力ビデオフレームの前の3個のエンコーディングされたエンコーディングビデオフレームであってもよい。ターゲット予測タイプエンコーディングブロックに対応する、前方エンコーディングビデオフレームにおける比を算出した後、算出された比に応じて、入力ビデオフレームに対応するターゲット処理方式を決定する。取得された前方エンコーディングビデオフレームの数量が複数である場合、異なるタイプエンコーディングブロックに対応する、各々の前方エンコーディングビデオフレームにおける比を算出し、各比に応じて加重計算して総比を取得し、さらに総比及び予め設定された閾値に応じて、入力ビデオフレームに対応するターゲット処理方式を決定するようにしてもよい。ここで、前方ビデオフレームに対応する重みは前方エンコーディングビデオフレームと入力ビデオフレームのエンコーディング距離と負相関関係であってもよい。
一実施例では、前方エンコーディングビデオフレーム中のフレーム内エンコーディングブロックの、前方エンコーディングビデオフレームにおける比を計算し、比がターゲット閾値よりも大きい場合、処理方式をダウンサンプリング処理方式と決定するようにしてもよい。
フレーム内エンコーディングブロックに対応する比について、該比がターゲット閾値よりも大きい場合、入力ビデオフレームに対応するターゲット処理方式をダウンサンプリング処理方式と決定し、そうでない場合、ビデオフレームに対応するターゲット処理方式をフル解像度処理方式と決定するようにしてもよい。例えば、比がターゲット閾値よりも大きい場合、入力ビデオフレームに対応するターゲット処理方式をダウンサンプリング処理方式と決定し、そうでない場合、ビデオフレームに対応するターゲット処理方式をフル解像度処理方式と決定する。
本願の実施例では、フレーム内エンコーディングブロックの比が大きいと、ビデオが比較的複雑で又はビデオフレーム間の相関性が比較的低いことを示し、従って、取得された予測残差が比較的大きく、従って、ダウンサンプリング処理方式を採用してエンコーディングすることが好ましく、それによりエンコーディングデータ量を減少させる。
ここで、ターゲット閾値は入力ビデオフレームに対応する参照フレームの処理方式に応じて決定されてもよい。入力ビデオフレームに対応する参照フレームの処理方式がダウンサンプリング方式である場合、第1参照閾値T1を取得し、第1参照閾値T1をターゲット閾値とする。同様に、入力ビデオフレームに対応する参照フレームの処理方式がフル解像度処理方式である場合、第2参照閾値T2を取得し、第2参照閾値T2をターゲット閾値とする。更に、入力ビデオフレームに対応する参照フレームの解像度情報に応じてターゲット閾値を取得した後、ターゲット閾値、及び前方エンコーディングビデオフレーム中のフレーム内エンコーディングブロックの、前方エンコーディングビデオフレームにおける比に応じて入力ビデオフレームの処理方式を決定する。ここで、前方エンコーディングビデオフレーム中のフレーム内エンコーディングブロックの、前方エンコーディングビデオフレームにおける比がターゲット閾値よりも大きい場合、入力ビデオフレームに対応するターゲット処理方式をダウンサンプリング処理方式と決定する。
一実施例では、第2参照閾値は第1参照閾値よりも大きく、このように、現在の参照フレームに対応するターゲット処理方式がフル解像度処理方式である場合、入力ビデオフレームはフル解像度処理方式を採用することが好ましく、現在の参照フレームがダウンサンプリング処理方式である場合、入力ビデオフレームはダウンサンプリング処理方式を採用することが好ましい。
一実施例では、図10に示すように、入力ビデオフレームを取得する前、ビデオエンコーディング方法はさらにステップS1002~S1006を含む。
ステップS1002では、入力ビデオフレームに対応する入力ビデオシーケンスを取得し、入力ビデオシーケンスに対応するターゲットビデオシーケンスエンコーディングモードを取得し、ここで、ターゲットビデオシーケンスエンコーディングモードは固定解像度エンコーディングモード又はハイブリッド解像度エンコーディングモードを含む。
例示的には、入力ビデオシーケンスは複数の入力ビデオフレームを含んでもよい。ターゲットビデオシーケンスエンコーディングモードが固定解像度エンコーディングモードである場合、入力ビデオシーケンス各入力ビデオフレームは同じ解像度、例えばフル解像度でエンコーディングされる。ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードである場合、コンピュータ機器は各入力ビデオフレームに対応するターゲット処理方式を取得し、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得する。被エンコーディングフレームをエンコーディングし、被エンコーディングフレームの解像度は入力ビデオフレームの解像度と同じであってもよく、入力ビデオフレームの解像度よりも小さくてもよく、従って、入力ビデオシーケンスに異なる解像度の被エンコーディングフレームが存在する場合がある。
一実施例では、入力ビデオシーケンスに対応するターゲットビデオシーケンスエンコーディングモードを取得することは、現在の環境情報を取得し、現在の環境情報は現在のエンコーディング環境情報、現在のデコーディング環境情報のうちの少なくとも1種の情報を含むステップと、現在の環境情報に応じて、入力ビデオシーケンスに対応するターゲットビデオシーケンスエンコーディングモードを決定するステップと、を含む。
例示的には、環境情報はビデオエンコーディング方法を実行する機器の処理能力、ビデオデコーディング方法を実行する機器の処理能力及び現在の応用シーン情報のうちの1種又は複数種を含んでもよい。処理能力は処理速度で示されてもよい。例えば、処理能力の強い機器の場合、処理速度が速いため、対応するターゲットビデオシーケンスエンコーディングモードがフル解像度エンコーディングモードである。現在の応用シーン情報に対応する現在の応用シーンがリアルタイム応用シーンである場合、ビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードである。現在の応用シーン情報に対応する現在の応用シーンが非リアルタイム応用シーンである場合、ビデオシーケンスエンコーディングモードが固定解像度エンコーディングモードである。現在の環境情報とビデオシーケンスエンコーディングモードとの対応関係を設定し、現在の環境情報を取得した後、現在の環境情報とビデオシーケンスエンコーディングモードとの対応関係に応じて入力ビデオシーケンスに対応するターゲットビデオシーケンスエンコーディングモードを取得するようにしてもよい。例えば、ビデオエンコーディング方法の機器の処理速度及びビデオデコーディング方法を実行する機器の処理速度の平均値とビデオシーケンスエンコーディングモードとの対応関係を設定してもよい。ビデオエンコーディング方法の機器の処理速度及びビデオデコーディング方法を実行する機器の処理速度を取得した後、平均値を計算し、平均値に応じてターゲットビデオシーケンスエンコーディングモードを取得する。現在の応用シーンがリアルタイム応用シーンであるか否かは必要に応じて設定されてもよい。例えば、ビデオ通話応用シーン、ゲーム応用シーンはリアルタイム応用シーンであり、ビデオウェブサイトにおけるビデオエンコーディング、オフラインビデオのエンコーディングに対応する応用シーンは非リアルタイム応用シーンであってもよい。
ステップS1004では、ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードであるか否かを判断する。
YESであると、ステップS502に進み、NOであると、ステップS1006に進む。
ステップS1006では、入力ビデオシーケンスの各入力ビデオフレームに対して固定解像度エンコーディングを行う。
例示的には、ビデオシーケンスエンコーディングモードが固定解像度エンコーディングモードである場合、コンピュータ機器は入力ビデオシーケンスの各入力ビデオフレームに対して固定解像度エンコーディングを行う。
一実施例では、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得することは、ターゲットビデオシーケンスエンコーディングモードに対応するターゲットビデオシーケンスエンコーディングモード情報をエンコーディングデータに追加するステップを含む。
例示的には、ターゲットビデオシーケンスエンコーディングモード情報は入力ビデオシーケンスに採用されるエンコーディングモードを記述することに用いられ、エンコーディングデータに、ビデオシーケンスエンコーディングモードを記述するフラグビットSequence_Mix_Resolution_Flagを追加することができ、フラグビットの値は必要に応じて設定されてもよい。ビデオシーケンスエンコーディングモード情報のエンコーディングデータにおける追加位置はシーケンスレベルヘッダ情報であってもよい。例えば、Sequence_Mix_Resolution_Flagが1である場合、対応するターゲットビデオシーケンスエンコーディングモードはハイブリッド解像度エンコーディングモードであってもよい。Sequence_Mix_Resolution_Flagが0である場合、対応するターゲットビデオシーケンスエンコーディングモードは固定解像度エンコーディングモードであってもよい。
一実施例では、ビデオエンコーディングフレームワークは図11に示されるとおりである。ビデオエンコーディングフレームワークは固定解像度エンコーディングフレームワーク及びハイブリッド解像度エンコーディングフレームワークを含み、ハイブリッド解像度エンコーディングフレームワークは図2中のエンコーディングフレームワークに対応してもよい。入力ビデオシーケンスを取得した後、ビデオシーケンスエンコーディングモード取得モジュールでビデオシーケンスエンコーディングモードを特定する。ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードである場合、ハイブリッド解像度エンコーディングフレームワークを採用してエンコーディングを行う。ターゲットビデオシーケンスエンコーディングモードが固定解像度エンコーディングモードである場合、図11の固定解像度エンコーディングフレームワークを利用して固定解像度エンコーディングを行う。ここで、固定解像度エンコーディングフレームワークは従来のHEVC(High Efficiency Video Coding、高効率ビデオエンコーディング)エンコーディングフレームワーク又はH.265エンコーディングフレームワーク等であってもよい。
以下、ビデオシーケンスAが3個の入力ビデオフレーム、すなわちa、b及びcを含むことを仮定し、ビデオエンコーディング方法について説明する。
1.ビデオシーケンスAに対応するターゲットビデオシーケンスエンコーディングモードを取得し、現在の環境がビデオ通話環境であるため、ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードである。
2.ハイブリッド解像度エンコーディングフレームワーク中の処理特定ユニットを利用して第1個の入力ビデオフレームaを特定し、ターゲット処理方式がダウンサンプリング方式であり、ダウンサンプリング比が1/2であることを取得する。aをダウンサンプリング処理し、ダウンサンプリング後のビデオフレームa1を取得し、a1をフレーム内エンコーディングして、a1に対応するエンコーディングデータd1を取得し、且つa1に対応するエンコーディングデータを再構成し、対応する再構成ビデオフレームa2を取得する。
3.ハイブリッド解像度エンコーディングフレームワーク中の処理特定ユニットを利用して第2個の入力ビデオフレームbを特定し、ターゲット処理方式がダウンサンプリング方式であり、サンプリング比が1/4であることを取得する。bをダウンサンプリングし、b1を取得し、b1をエンコーディングし、bに対応するエンコーディングデータを取得し、且つエンコーディングデータに、ダウンサンプリング比に対応するサンプリング比情報及びターゲット処理方式に対応するターゲット処理方式情報を含ませる。
ここで、エンコーディング過程は、bがフレーム間予測フレームであるため、a2を現在の参照フレームとする必要があり、b1とa2の解像度が異なるため、a2をサンプリング処理する必要があることを含む。a2のサンプリング方式を直接サブピクセル補間、動き推定精度を1/4と決定するため、ピクセル補間精度が1/4*2=1/2であり、ピクセル補間精度に応じてa2に対して1/2サブピクセル補間を行い、ターゲット参照フレームa3を取得する。b1中の現在のエンコーディングブロックとターゲット参照フレーム中のターゲット参照ブロックの第1動きベクトルMV1を計算し、予測残差がp1である。且つ、ターゲット解像度が原解像度であることを取得し、従って、ターゲット動きベクトルが4MV1である。初期予測ベクトルをMV2と算出し、初期予測ベクトルが1/4ダウンサンプリング比に対応する解像度で算出され、従って、ターゲット予測ベクトルが4MV2であり、従って、現在のエンコーディングブロックに対応する動きベクトル差MVD1が4MV1-4MV2に等しい。MVD1及びp1に対して変換、量子化及びエントロピーエンコーディングを行い、エンコーディングデータを取得する。
4.ハイブリッド解像度エンコーディングフレームワーク中の処理特定ユニットを利用して第3個の入力ビデオフレームcを特定し、処理方式がダウンサンプリング方式、サンプリング比が1/8であることを取得する。cをダウンサンプリングし、c1を取得し、c1をエンコーディングし、cに対応するエンコーディングデータd2を取得する。
ここで、エンコーディング過程は、cがフレーム間予測フレームであるため、対応する現在の参照フレームはbのエンコーディングデータを再構成して取得された再構成ビデオフレームb2であり、c1とb2の解像度が異なるため、b2をサンプリング処理する必要があることを含む。b2のサンプリング方式を直接サブピクセル補間、動き推定精度を1/4と決定し、従って、ピクセル補間精度が1/4*2=1/2であり、ピクセル補間精度に応じてb2に対して1/2サブピクセル補間を行い、ターゲット参照フレームb3を取得する。c1中の現在のエンコーディングブロックとターゲット参照フレーム中のターゲット参照ブロックの第1動きベクトルMV3を計算し、予測残差がp2である。ターゲット解像度が原解像度であることを取得し、従って、ターゲット動きベクトルが8MV3である。初期予測ベクトルがMV4であることを取得し、初期予測ベクトルが1/4ダウンサンプリング比に対応する解像度で算出され、従って、ターゲット予測ベクトルが4MV4であり、従って、現在のエンコーディングブロックに対応する動きベクトル差MVD2が8MV3-4MV4に等しい。MVD2及びp2に対して変換、量子化及びエントロピーエンコーディングを行い、エンコーディングデータd3を取得する。
5.d1、d2及びd3からエンコーディングデータパケットを形成し、ビデオシーケンスに対応するエンコーディングデータとして受信端末に送信し、ここで、ビデオシーケンスに対応するエンコーディングデータに、ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードであることを記述するフラグビットが含まれる。
図12に示すように、一実施例では、ビデオデコーディング方法を提案し、本実施例は主に、該方法が上記図1中の端末110又はサーバ120に適用されることを例に説明する。以下のステップS1202~S1208を含む。
ステップS1202では、被デコーディングビデオフレームに対応するエンコーディングデータを取得する。
例示的には、被デコーディングビデオフレームはデコーディングを必要とするビデオフレームである。1つの被デコーディングビデオシーケンスは複数の被デコーディングビデオフレームを含みうる。被デコーディングビデオフレームはリアルタイムに取得されたビデオフレームであってもよく、予め記憶された被デコーディングビデオシーケンスから取得されたビデオフレームであってもよい。
ステップS1204では、被デコーディングビデオフレームに対応する解像度情報を取得する。
例示的には、解像度情報は解像度に関連する情報であり、解像度自体であってもよく、ダウンサンプリング比であってもよい。被デコーディングビデオフレームに対応する解像度情報はエンコーディングデータに含まれてもよく、コンピュータ機器によって算出されて取得してもよい。
一実施例では、エンコーディングデータに、被デコーディングビデオフレームに対応する解像度情報が含まれてもよく、例えば、被デコーディングビデオフレームに対応する解像度又はダウンサンプリング比が含まれてもよい。
一実施例では、エンコーディングデータに、処理方式情報が含まれてもよく、コンピュータ機器はエンコーディングデータから処理方式情報を取得し、ターゲット処理方式情報に応じて、被デコーディングビデオフレームに対応する解像度情報を取得する。例えば、エンコーディングデータには、処理方式情報に対応するターゲット処理方式がダウンサンプリング処理方式であることが含まれてもよく、エンコーディング標準及びデコーディング標準には、ダウンサンプリング比がいずれも1/2であることが決定されており、又はエンコーディングデータには、対応するダウンサンプリング比が含まれる場合、取得された解像度情報はダウンサンプリング比が1/2である。
ステップS1206では、被デコーディングビデオフレームに対応する解像度情報に応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得する。
例示的には、再構成ビデオフレームはデコーディング再構成により取得されたビデオフレームである。なお、該再構成ビデオフレームに対応する解像度情報とエンコーディング過程における被エンコーディングフレームの解像度情報は対応する。エンコーディング過程で画像情報損失がないと、再構成ビデオフレームと被エンコーディングフレームが同じである。エンコーディング過程で画像情報損失があると、再構成ビデオフレームと被エンコーディングフレームとの差異が損失値に対応する。コンピュータ機器がエンコーディングデータをデコーディングすることは被デコーディングビデオフレームに対応する解像度情報で行われる。デコーディングは予測、逆変換、逆量子化及びエントロピーデコーディングのうちの少なくとも1つを含んでもよく、エンコーディングの過程に応じて決定されてもよい。デコーディング時、コンピュータ機器は被デコーディングビデオフレームの解像度情報に応じて、現在の参照フレーム、被デコーディングビデオフレームの各被デコーディングブロックに対応する位置情報、現在の参照フレームの各参照ブロックに対応する位置情報、及び動きベクトルのうちの1つ又は複数を処理し、ここでの処理方法はエンコーディング側でエンコーディングを行う時の処理方法にマッチングする。例えば、コンピュータ機器は被デコーディングビデオフレームに対応する現在の参照フレームを取得し、被デコーディングビデオフレームに対応する解像度情報に応じて、現在の参照フレームを処理し、ターゲット参照フレームを取得するようにしてもよい。含まれる動きベクトル情報に応じてターゲット参照ブロックを取得し、ターゲット参照ブロックに応じて被デコーディングブロックに対応する予測値を取得し、且つエンコーディングデータ中の予測残差及び予測値に応じて再構成ビデオフレームを取得するようにしてもよい。
一実施例では、エンコーディング側で位置情報を変換する場合、コンピュータ機器はデコーディング過程で対応する位置情報を取得する時、該位置情報に対して、対応する変換を行う必要があり、それによりエンコーディング側とデコーディング側で取得されたターゲット参照ブロックの一致性を維持する。
一実施例では、エンコーディングデータに含まれる動きベクトル情報がターゲット動きベクトルである場合、コンピュータ機器はターゲット動きベクトル単位解像度情報及び被デコーディングビデオフレームに対応する解像度情報に応じてターゲット動きベクトルを変換し、被デコーディングビデオフレームに対応する解像度情報での第1動きベクトルを取得し、第1動きベクトルに応じて、被デコーディングブロックに対応するターゲット参照ブロックを取得するようにしてもよい。
一実施例では、エンコーディングデータに含まれる動きベクトル情報が動きベクトル差分である場合、コンピュータ機器は現在の被デコーディングブロックに対応する初期予測動きベクトルを取得し、各被デコーディングブロックに対応する動きベクトル差分及び初期予測動きベクトルを同一解像度で処理し、対応する被デコーディングブロックに対応する、且つ被デコーディングビデオフレームの解像度での第1動きベクトルを取得し、第1動きベクトルに応じて、被デコーディングブロックに対応するターゲット参照ブロックを取得するようにしてもよい。
例示的には、コンピュータ機器は動きベクトル差分及び初期予測動きベクトルをすべて同一解像度での対応する動きベクトルに変換する。例えば、初期予測動きベクトルをターゲット解像度でのターゲット予測動きベクトルに変換し、ターゲット予測動きベクトル及び動きベクトル差分に応じてターゲット動きベクトルを取得し、さらにターゲット動きベクトルを被デコーディングビデオフレームの解像度での第1動きベクトルに変換するようにしてもよい。さらに、初期予測動きベクトルを被デコーディングビデオフレームの解像度での予測動きベクトルに変換し、動きベクトル差分を被デコーディングビデオフレームの解像度での動きベクトル差分に変換し、被デコーディングビデオフレームの解像度での動きベクトル差分及び被デコーディングビデオフレームの解像度での予測動きベクトルに応じて第1動きベクトルを取得するようにしてもよい。
ステップS1208では、被デコーディングビデオフレームに対応する解像度情報に応じて、再構成ビデオフレームを処理し、対応するデコーディングビデオフレームを取得する。
例示的には、コンピュータ機器が再構成ビデオフレームを処理することはサンプリング処理であってもよく、例えば、アップサンプリング処理である。再構成ビデオフレームを処理する方法はエンコーディング中に入力ビデオフレームを処理する方法に対応してもよい。例えば、入力ビデオフレームの処理方式がダウンサンプリング処理方式であり、且つ解像度情報が1/2ダウンサンプリング比である場合、再構成ビデオフレームをアップサンプリング処理し、アップサンプリング比が2であってもよい。
一実施例では、コンピュータ機器がエンコーディングデータのヘッダ情報の中からエンコーディングデータを決定することはダウンサンプリング処理方式でエンコーディングすることによって取得される場合、デコーディング側はヘッダ情報の中から、採用されるダウンサンプリング比情報又はダウンサンプリング方法情報を取得し、且つダウンサンプリング比情報又はダウンサンプリング方法情報にマッチングするアップサンプリング比、アップサンプリング方法を採用して、取得された再構成ビデオフレームをアップサンプリング処理し、デコーディングビデオフレームを取得するようにしてもよい。例えば、ダウンサンプリング比情報に対応するサンプリング比が1/2であると、デコーディング側はサンプリング比2及びダウンサンプリング方法情報にマッチングするアップサンプリング方法に応じて再構成ビデオフレームをアップサンプリング処理し、デコーディングビデオフレームを取得する必要がある。デコーディング側はシーケンスレベルヘッダ情報、グループレベルヘッダ情報及びフレームレベルヘッダ情報のうちのいずれかから、現在のエンコーディングデータに対応するダウンサンプリング比情報又はダウンサンプリング方法情報を取得してもよい。
一実施例では、被デコーディングビデオフレームに対応するターゲット処理方式がアップサンプリング処理方式であり、すなわち、被デコーディングビデオフレームに対応する入力ビデオフレームのエンコーディング側でのターゲット処理方式がアップサンプリング処理方式である場合、該再構成ビデオフレームをダウンサンプリング処理しないようにしてもよく、それによって再構成ビデオフレームの品質を維持する。
上記ビデオデコーディング方法は、被デコーディングビデオフレームに対応するエンコーディングデータを取得し、被デコーディングビデオフレームに対応する解像度情報を取得し、被デコーディングビデオフレームに対応する解像度情報に応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得し、被デコーディングビデオフレームに対応する解像度情報に応じて再構成ビデオフレームを処理し、対応するデコーディングビデオフレームを取得する。従って、デコーディングを行う時、被デコーディングビデオフレームに対応する解像度情報に応じて柔軟にデコーディングして、デコーディングビデオフレームを取得することができ、且つ、被デコーディングビデオフレームの解像度情報に応じてデコーディングすることで、正確なデコーディングビデオフレームを取得することができる。
一実施例では、被デコーディングビデオシーケンスの被デコーディングビデオフレームに対応する再構成ビデオフレームをすべて同じ解像度に処理し、例えば、再構成ビデオフレームを、入力ビデオフレームの原解像度と同じデコーディングビデオフレームに処理する。
一実施例では、図13に示すように、被デコーディングビデオフレームに対応する解像度情報に応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するステップS1206は、以下のステップS1302~S1304を含む。
ステップS1302では、被デコーディングビデオフレームに対応する現在の参照フレームを取得する。
例示的には、被デコーディングビデオフレームに対応する参照フレームの数は1つ又は複数であってもよい。例えば、被デコーディングビデオフレームがPフレームである場合、対応する参照フレームが1個であってもよい。被デコーディングビデオフレームがBフレームである場合、対応する参照フレームが2個であってもよい。被エンコーディングフレームに対応する参照フレームは参照関係に応じて取得されてもよく、参照関係は各ビデオコーデック標準によって異なってもよい。例えば、1つのビデオ画像グループ(Group Of Picture、GOP)中の第2個ビデオフレームがBフレームである場合、対応する被デコーディングビデオフレームは該ビデオグループのIフレーム及びビデオグループの第4フレームであってもよい。又は、被デコーディングビデオフレームに対応する現在の参照フレームはその前方のエンコーディングされたフレームのうちの上位1個又は2個である。なお、現在の参照フレームはエンコーディング過程の現在の参照フレームに一致する。
一実施例では、被デコーディングビデオフレームに対応する現在の参照フレームを取得することは、第2参照ルールを取得し、第2参照ルールは被デコーディングビデオフレームと現在の参照フレームの解像度の大小関係を含むステップと、第2参照ルールに応じて、被デコーディングビデオフレームに対応する現在の参照フレームを取得するステップと、を含む。
例示的には、第2参照ルールは被デコーディングビデオフレームと現在の参照フレームの解像度の大小関係を決定し、なお、第1参照ルールは第2参照ルールに一致し、それによりエンコーディング過程で取得された現在の参照フレームとデコーディング過程で取得された参照フレームとの一致性を確保する。第1参照ルール、第2参照ルールは、コーデック標準で設定されてもよい。又は、エンコーディングを行う時、エンコーディングの応用シーン、リアルタイム性要件等に応じて第1参照ルールを選択し、且つエンコーディングデータに参照ルール情報を含ませ、コンピュータ機器がエンコーディングデータ中の参照ルール情報に応じて第2参照ルールを取得するようにしてもよい。解像度の大小関係は、被デコーディングビデオフレームと参照フレームが同じである又は異なることを含む。第2参照ルールは被デコーディングビデオフレームと参照フレームの解像度が同じであることを含む場合、第2参照ルールはさらに、被デコーディングビデオフレームと現在の参照フレームの解像度の処理方式参照ルールを含んでもよい。例えば処理方式参照ルールは、フル解像度処理方式の被デコーディングビデオフレームがフル解像度処理方式の現在の参照フレームを参照できること、及びダウンサンプリング処理方式の被デコーディングビデオフレームがダウンサンプリング処理方式の現在の参照フレームを参照できることのうちの1種又は2種を含んでもよい。第2参照ルールは被デコーディングビデオフレームと参照フレームの解像度が異なることを含む場合、第2参照ルールはさらに、被デコーディングビデオフレームの解像度が現在の参照フレームの解像度よりも大きいこと、及び被デコーディングビデオフレームの解像度が現在の参照フレームの解像度よりも小さいことのうちの1種又は2種を含んでもよい。従って、第2参照ルールは、原解像度の被デコーディングビデオフレームがダウンサンプリング解像度の参照フレームを参照できること、ダウンサンプリング解像度の被デコーディングビデオフレームが原解像度の参照フレームを参照できること、原解像度の被デコーディングビデオフレームが原解像度の参照フレームを参照できること、及びダウンサンプリング解像度の被デコーディングビデオフレームがダウンサンプリング解像度の参照フレームを参照できることのうちの1種又は複数種を含んでもよい。ここで、原解像度の被デコーディングビデオフレームとは、該被デコーディングビデオフレームの解像度が対応する入力ビデオフレームの解像度と同じであることを指し、原解像度の参照フレームとは、該参照フレームの解像度がそれに対応する入力ビデオフレームの解像度と同じであることを指し。ダウンサンプリング解像度の被デコーディングビデオフレームとは、該被デコーディングビデオフレームに対応する解像度情報がダウンサンプリングであることを指す。ダウンサンプリング解像度の参照フレームとは、該参照フレームに対応する解像度情報がダウンサンプリングであることを指す。第2参照ルールを取得した後、第2参照ルールに応じて、被デコーディングビデオフレームに対応する現在の参照フレームを取得し、取得された現在の参照フレームが第2参照ルールを満たすようにする。
ステップS1304では、被デコーディングビデオフレームに対応する解像度情報及び現在の参照フレームに応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得する。
例示的には、コンピュータ機器は現在の参照フレームの中から、被デコーディングビデオフレームの被デコーディングブロックに対応する参照ブロックを取得し、参照ブロックに応じて被デコーディングブロックをデコーディングするようにしてもよい。さらに、被デコーディングビデオフレームの解像度情報に応じて、現在の参照フレームを処理し、対応するターゲット参照フレームを取得し、ターゲット参照フレームの中から、被デコーディングビデオフレームの被デコーディングブロックに対応するターゲット参照ブロックを取得し、ターゲット参照ブロックに応じてエンコーディングブロックをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するようにしてもよい。
一実施例では、被デコーディングビデオフレームに対応する解像度情報及び現在の参照フレームに応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するステップS1304は、被デコーディングビデオフレームに対応する解像度情報に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得するステップと、ターゲット参照フレームに応じて被デコーディングビデオフレームをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するステップと、を含む。
例示的には、コンピュータ機器は、含まれる動きベクトル情報に応じて、ターゲット参照フレームの中からターゲット参照ブロックを取得し、ターゲット参照ブロックに応じて、被デコーディングブロックに対応する予測値を取得し、エンコーディングデータ中の予測残差及び予測値に応じて再構成ビデオフレームを取得する。
一実施例では、被デコーディングビデオフレームに対応する解像度情報に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得することは、被デコーディングビデオフレームの解像度情報及び動き推定ピクセル精度に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得するステップを含む。
一実施例では、被デコーディングビデオフレームの解像度情報及び動き推定ピクセル精度に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得することは、被デコーディングビデオフレームの解像度情報及び動き推定ピクセル精度に応じて、ピクセル補間精度を算出するステップと、ピクセル補間精度に応じて、現在の参照フレームを直接サブピクセル補間処理し、対応するターゲット参照フレームを取得するステップと、を含む。
一実施例では、被デコーディングビデオフレームの解像度情報及び動き推定ピクセル精度に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得することは、被デコーディングビデオフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、中間参照フレームを取得するステップと、動き推定を行うピクセル精度に応じて、中間参照フレームをサブピクセル補間処理し、ターゲット参照フレームを取得するステップと、を含む。
例示的には、被デコーディングビデオフレームは被エンコーディングビデオフレームの解像度に一致し、取得されたターゲット参照フレームも一致し、従って、被デコーディングビデオフレームに対応する解像度情報に応じて、現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得する方法は、エンコーディング側では被エンコーディングフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得する方法に一致し、本願の実施例はここでは重複説明を省略する。
一実施例では、デコーディング側はさらに、エンコーディングデータのヘッダ情報の中から、被デコーディングビデオフレームに対応するサンプリング方式情報を取得してもよい。シーケンスレベルヘッダ情報、グループレベルヘッダ情報及びフレームレベルヘッダ情報のうちのいずれかから、被デコーディングビデオフレームに対応するサブピクセル補間方式情報を取得してもよい。例えば、エンコーディングデータのフレームレベルヘッダ情報中の、サンプリング方式を決定するためのフラグビットPixel_Sourse_Interpolationが0である場合、入力ビデオフレームに対応する現在の参照フレームに対して直接サブピクセル補間処理を行うことを採用することを示し、Pixel_Sourse_Interpolationが1である場合、入力ビデオフレームに対応する現在の参照フレームに対してサンプリング処理を行った後にサブピクセル補間処理を行うことを採用することを示す。デコーディング側は、エンコーディングデータ中のフラグビットで示されるサブピクセル補間方式と同じ方式に応じて、現在の参照フレームをサブピクセル補間処理して、ターゲット参照フレームを取得することができ、それによりターゲット参照フレームに応じて、エンコーディングデータをデコーディングして、再構成ビデオフレームを取得することができる。
一実施例では、図14に示すように、被デコーディングビデオフレームに対応する解像度情報及び現在の参照フレームに応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するステップS1304は、以下のステップS1402~S1408を含む。
ステップS1402では、被デコーディングビデオフレームに対応する解像度情報及び第1解像度情報に応じて、第3ベクトル変換パラメータを決定し、第1解像度情報はターゲット動きベクトル単位解像度情報又は現在の参照フレームの解像度情報を含む。
例示的には、第3ベクトル変換パラメータは取得された動きベクトルの位置情報又は動きベクトルを変換することに用いられる。第3ベクトル変換パラメータは第1解像度情報と被デコーディングビデオフレームの解像度情報との比であってもよく、第3ベクトル変換パラメータは第1ベクトル変換パラメータに対応する。第3ベクトル変換パラメータを利用してターゲット動きベクトルを変換する場合、ターゲット動きベクトルを、被デコーディングビデオフレームに対応する解像度での対応する動きベクトルに変換してもよく、このとき、第3ベクトル変換パラメータは第1ベクトル変換パラメータの逆数であってもよい。第3ベクトル変換パラメータを利用して動きベクトルに対応する位置情報を変換する場合、エンコーディング側では第1ベクトル変換パラメータが第1位置情報を変換することに用いられると、被デコーディングブロックがエンコーディングブロックの位置情報と同じであるため、第3ベクトル変換パラメータと第1ベクトル変換パラメータが同じである。エンコーディング側では第1ベクトル変換パラメータが第2位置情報を変換することに用いられると、ターゲット動きベクトル及び第1位置情報に応じて算出された位置値は、エンコーディング側では第1ベクトル変換パラメータに応じて第2位置情報を変換して取得された位置値であるため、第3ベクトル変換パラメータは第1ベクトル変換パラメータの逆数であってもよい。
ステップS1404では、エンコーディングデータに応じて被デコーディングビデオフレーム中の各被デコーディングブロックに対応するターゲット動きベクトルを取得する。
例示的には、エンコーディングデータにターゲット動きベクトルが含まれる場合、コンピュータ機器はエンコーディングデータの中からターゲット動きベクトルを読み取る。エンコーディングデータに動きベクトル差が含まれる場合、コンピュータ機器はターゲット予測動きベクトルを算出し、動きベクトル差及びターゲット予測動きベクトルに応じてターゲット動きベクトルを取得するようにしてもよい。
ステップS1406では、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて、被デコーディングビデオフレーム中の各被デコーディングブロックに対応するターゲット参照ブロックを取得する。
例示的には、第3ベクトル変換パラメータを取得した後、コンピュータ機器は第3ベクトル変換パラメータに応じて、取得された動きベクトル又は動きベクトルに対応する位置情報を変換し、ターゲット参照ブロックに対応する位置情報を取得し、それによりターゲット参照ブロックを取得する。
ステップS1408では、ターゲット参照ブロックに応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得する。
例示的には、ターゲット参照ブロックを取得した後、コンピュータ機器はターゲット参照ブロックのピクセル値及びエンコーディングデータに含まれる被デコーディングブロックの予測残差に応じて、再構成ビデオフレームの各画像ブロックのピクセル値を取得し、再構成ビデオフレームを取得する。
一実施例では、被デコーディングビデオフレームに対応する解像度情報及び第1解像度情報に応じて第3ベクトル変換パラメータを決定するステップS1402は、被デコーディングビデオフレームに対応する解像度情報及び現在の参照フレームの解像度情報に応じて第3ベクトル変換パラメータを決定するステップを含み、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて、被デコーディングビデオフレーム中の各被デコーディングブロックに対応するターゲット参照ブロックを取得するステップS1406は、現在の被デコーディングブロックに対応する第1位置情報を取得するステップと、第1位置情報、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて、現在の被デコーディングブロックに対応するターゲット参照ブロックを取得するステップと、を含む。
例示的には、コンピュータ機器は第1位置情報、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて、ターゲット参照ブロックに対応する第2位置情報を取得し、第2位置情報に応じてターゲット参照ブロックを取得するようにしてもよい。エンコーディングとデコーディングの対応性によって、エンコーディング側では第1ベクトル変換パラメータが第1位置情報を変換することに用いられると、被デコーディングブロックとエンコーディングブロックの位置情報が同じであるため、第3ベクトル変換パラメータは第1ベクトル変換パラメータと同じである。エンコーディング側では第1ベクトル変換パラメータが第2位置情報を変換することに用いられると、ターゲット動きベクトル及び第1位置情報に応じて算出された位置値はエンコーディング側では第1ベクトル変換パラメータに応じて第2位置情報を変換して取得された位置値であるため、第3ベクトル変換パラメータは第1ベクトル変換パラメータの逆数である。
例えば、被デコーディングビデオフレームの解像度は1200*1200ピクセルであり、現在の参照フレームの解像度は600*600ピクセルである。第1ベクトル変換パラメータは第2位置情報を変換することに用いられ、第1ベクトル変換パラメータは2であり、この場合、第3ベクトル変換パラメータは1/2である。第1位置情報を(6,8)、ターゲット動きベクトルを(0,2)と仮定すると、中間位置情報は(6,8)-(0,2)=(6,6)であり、ターゲット参照ブロックに対応する第2位置情報は(6*1/2,6*1/2)=(3,3)である。
例えば、被デコーディングビデオフレームの解像度は1200*1200ピクセルであり、現在の参照フレームの解像度は600*600ピクセルであり、第1ベクトル変換パラメータは第1位置情報を変換することに用いられ、第1ベクトル変換パラメータは1/2であり、この場合、第3ベクトル変換パラメータは1/2である。第1位置情報を(6,8)と仮定すると、ターゲット動きベクトルは(0,1)であり、第2位置情報は(6*1/2,8*1/2)-(0,1)=(3,3)である。
一実施例では、被デコーディングビデオフレームに対応する解像度情報及び第1解像度情報に応じて第3ベクトル変換パラメータを決定するステップS1402は、被デコーディングビデオフレームに対応する解像度情報及びターゲット動きベクトル単位解像度情報に応じて第3ベクトル変換パラメータを決定するステップを含み、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて、被デコーディングビデオフレーム中の各被デコーディングブロックに対応するターゲット参照ブロックを取得するステップS1404は、ターゲット動きベクトル及び第3ベクトル変換パラメータに応じて、第1動きベクトルを取得するステップと、第1動きベクトルに応じて、現在の被デコーディングブロックに対応するターゲット参照ブロックを取得するステップと、を含む。
例示的には、第3ベクトル変換パラメータは被デコーディングビデオフレームに対応する解像度情報及びターゲット動きベクトル単位解像度情報に応じて決定され、ターゲット動きベクトルを、被デコーディングフレームに対応する解像度での対応する第1動きベクトルに変換することに用いられる。第3ベクトル変換パラメータを取得した後、コンピュータ機器は第3ベクトル変換パラメータとターゲット動きベクトルを乗算し、取得された積を第1動きベクトルとする。なお、第3ベクトル変換パラメータ及びターゲット動きベクトルに応じて第1動きベクトルを取得するという過程は、第1ベクトル変換パラメータ及び第1動きベクトルに応じて現在のエンコーディングブロックに対応するターゲット動きベクトルを取得する過程の逆過程である。例えば、エンコーディング側では、該被デコーディングブロックに対応するエンコーディングブロック第1ベクトル変換パラメータは2に等しい。取得された第1動きベクトルは(2,2)であり、第1ベクトル変換パラメータと第1動きベクトル(2,2)との積に応じてターゲット動きベクトルを(4,4)と取得する。この場合、デコーディング過程では、第3ベクトル変換パラメータは1/2であり、取得されたターゲット動きベクトルは(4,4)であり、第3ベクトル変換パラメータ1/2とターゲット動きベクトル(4,4)との積に応じて第1動きベクトルを(2,2)と取得する。
一実施例では、エンコーディングデータに含まれるのが動きベクトル差である場合、エンコーディングデータに応じて被デコーディングビデオフレーム中の各被デコーディングブロックに対応するターゲット動きベクトルを取得することは、エンコーディングデータに応じて、被デコーディングビデオフレーム中の現在の被デコーディングブロックに対応する動きベクトル差を取得するステップと、現在の被デコーディングブロックに対応する初期予測動きベクトルを取得するステップと、初期予測動きベクトルに対応する現在の動きベクトル単位解像度情報及びターゲット動きベクトル単位解像度情報に応じて、第2ベクトル変換係数を取得するステップと、初期予測動きベクトル及び第2ベクトル変換係数に応じて、現在のデコーディングブロックに対応するターゲット予測動きベクトルを取得するステップと、ターゲット予測動きベクトル及び動きベクトル差に応じてターゲット動きベクトルを取得するステップと、を含む。
例示的には、デコーディング及びエンコーディング過程では被デコーディングブロックと被エンコーディングブロックが対応し、初期予測動きベクトル取得ルールが同じであるため、現在の被デコーディングブロックに対応する初期動き予測ベクトルは現在の被エンコーディングブロックに対応する初期予測動きベクトルに一致し、コンピュータ機器がターゲット予測動きベクトルを取得する方法は、エンコーディング過程における方法を参照すればよいため、詳細説明を省略する。ターゲット動きベクトルはターゲット予測動きベクトルと動きベクトル差との和である。
一実施例では、さらに、被デコーディングビデオフレームに対応する前方デコーディングビデオフレームにおけるターゲット予測タイプデコーディングブロックの比を計算し、比に応じて、被デコーディングビデオフレームに対応するターゲット処理方式を決定し、ターゲット処理方式に応じて、被デコーディングビデオフレームに対応する解像度情報を取得するようにしてもよい。
例示的には、被デコーディングビデオフレームに対応するターゲット処理方式はエンコーディング側における対応する入力ビデオフレームのターゲット処理方式に一致し、すなわち、被デコーディングビデオフレームに対応するターゲット処理方式とは、該デコーディングビデオフレームに対応する入力ビデオフレームのターゲット処理方式である。ターゲット予測タイプデコーディングブロックはターゲット予測タイプエンコーディングブロックに対応する。前方デコーディングビデオフレームは被デコーディングビデオフレームの前のデコーディングされたビデオフレームであり、前方デコーディングビデオフレームも前方エンコーディングビデオフレームに対応し、従って、エンコーディング側で取得されたターゲット予測タイプエンコーディングブロックの比とデコーディング側で取得されたターゲット予測タイプデコーディングブロックの比の計算方法及び結果も一致する。ターゲット予測タイプデコーディングブロックの比を取得する方法はターゲット予測タイプエンコーディングブロックの比を取得する方法を参照すればよいため、ここでは重複説明を省略する。ターゲット処理方式を取得した後、ターゲット処理方式がフル解像度処理方式である場合、対応する解像度情報が原解像度である。ターゲット処理方式がダウンサンプリング処理方式である場合、予め設定されたダウンサンプリング比を取得し、又はエンコーディングデータ中のヘッダ情報からダウンサンプリング比を取得する。
一実施例では、コンピュータ機器は前方デコーディングビデオフレーム中のフレーム内デコーディングブロックの、前方デコーディングビデオフレームにおける比を計算してもよい。比がターゲット閾値よりも大きい場合、ターゲット処理方式をダウンサンプリング処理方式と決定する。
フレーム内デコーディングブロックに対応する比について、該比がターゲット閾値よりも大きい場合、被デコーディングビデオフレームに対応するターゲット処理方式がダウンサンプリング処理方式であると決定し、そうでない場合、ビデオフレームに対応するターゲット処理方式がフル解像度処理方式であると決定するようにしてもよい。例えば、比がターゲット閾値よりも大きい場合、コンピュータ機器は、被デコーディングビデオフレームに対応するターゲット処理方式がダウンサンプリング処理方式であると決定し、そうでない場合、ビデオフレームに対応するターゲット処理方式がフル解像度処理方式であると決定する。
ここで、ターゲット閾値は被デコーディングビデオフレームに対応する参照フレームの処理方式に応じて決定されてもよい。被デコーディングビデオフレームに対応する参照フレームの処理方式がダウンサンプリング方式である場合、コンピュータ機器は第1参照閾値T1を取得し、第1参照閾値T1をターゲット閾値とする。同様に、被デコーディングビデオフレームに対応する参照フレームの処理方式がフル解像度処理方式である場合、コンピュータ機器は第2参照閾値T2を取得し、第2参照閾値T2をターゲット閾値とする。更に、被デコーディングビデオフレームに対応する参照フレームの解像度情報に応じてターゲット閾値を取得した後、ターゲット閾値、及び前方デコーディングビデオフレーム中のフレーム内デコーディングブロックの、前方デコーディングビデオフレームにおける比に応じて、被デコーディングビデオフレームの処理方式を決定する。ここで、前方デコーディングビデオフレーム中のフレーム内デコーディングブロックの、前方デコーディングビデオフレームにおける比がターゲット閾値よりも大きい場合、被デコーディングビデオフレームに対応するターゲット処理方式がダウンサンプリング処理方式であると決定する。
一実施例では、被デコーディングビデオフレームに対応するエンコーディングデータを取得する前、さらに、被デコーディングビデオフレームに対応する被デコーディングビデオシーケンスを取得し、被デコーディングビデオシーケンスに対応するビデオシーケンスデコーディングモードを取得するステップを含み、ここで、ビデオシーケンスデコーディングモードは固定解像度エンコーディングモード又はハイブリッド解像度エンコーディングモードを含み、ビデオシーケンスデコーディングモードがハイブリッド解像度エンコーディングモードである場合、被デコーディングビデオシーケンスの各被デコーディングビデオフレームに対してハイブリッド解像度デコーディング方法を実行し、ビデオシーケンスデコーディングモードが固定解像度エンコーディングモードである場合、被デコーディングビデオシーケンスに対して固定解像度デコーディングを行う。
例示的には、コンピュータ機器は、エンコーディングデータの中からビデオシーケンスエンコーディングモード情報を取得し、ビデオシーケンスエンコーディングモード情報に応じてビデオシーケンスデコーディングモードを取得するようにしてもよい。例えば、ビデオシーケンスエンコーディングモード情報に対応するビデオシーケンスエンコーディングモードが固定解像度エンコーディングモードである場合、対応するビデオシーケンスデコーディングモードが固定解像度デコーディングモードである。固定解像度デコーディングモードでは、ビデオシーケンスの各被デコーディングビデオフレームの解像度が一致する。ビデオシーケンスエンコーディングモード情報に対応するビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードである場合、対応するビデオシーケンスデコーディングモードがハイブリッド解像度デコーディングモードであり、すなわち、被デコーディングビデオシーケンス中の被デコーディングビデオフレームに解像度が異なる場合がある。
一実施例では、コンピュータ機器は、エンコーディングデータのヘッダ情報の中から、被デコーディングビデオフレームに対応するデコーディングフレームワークを決定するようにしてもよい。例示的には、コンピュータ機器は、エンコーディングデータに対応するシーケンスレベルヘッダ情報の中から、現在のエンコーディングデータに対応する入力ビデオフレームシーケンス中の各入力ビデオフレームのエンコーディング時に採用されるエンコーディングフレームワークを取得し、それによりそれにマッチングする被デコーディングビデオフレームのデコーディングフレームワークを決定するようにしてもよい。例えば、エンコーディングデータのシーケンスレベルヘッダ情報中の、採用されるエンコーディングフレームワークを決定するためのフラグビットSequence_Mix_Flagが0である場合、入力ビデオフレームシーケンス中の各入力ビデオフレームのエンコーディング時にともに固定解像度のエンコーディングフレームワークを採用することを示し、このとき、デコーディング側は固定解像度のデコーディングフレームワークを採用してエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得するようにしてもよく、Sequence_Mix_Flagが1である場合、入力ビデオフレームシーケンス中の各入力ビデオフレームのエンコーディング時にともにハイブリッド解像度のエンコーディングフレームワークを採用することを示し、この場合、デコーディング側はハイブリッド適用解像度のデコーディングフレームワークを採用してエンコーディングデータをデコーディングし、再構成ビデオフレームシーケンスを取得することができる。
一実施例では、被デコーディングビデオシーケンスに対応するビデオシーケンスデコーディングモードを取得することは、現在の環境情報を取得し、現在の環境情報は現在のエンコーディング環境情報、現在のデコーディング環境情報のうちの1種又は複数種情報を含むステップと、現在の環境情報に応じて、被デコーディングビデオシーケンスに対応するターゲットビデオシーケンスデコーディングモードを決定するステップと、を含んでもよい。
例示的には、コンピュータ機器はさらに、エンコーディング側でビデオシーケンスエンコーディングモードを計算する方法に応じて、対応するターゲットビデオシーケンスデコーディングモードを取得するようにしてもよく、従って、本願の実施例では、現在の環境情報に応じてターゲットビデオシーケンスデコーディングモードを決定することは現在の環境情報に応じてターゲットビデオシーケンスエンコーディングモードを決定することに一致し、ここでは重複説明を省略する。
一実施例では、現在の環境情報は被デコーディングビデオシーケンスに対応する応用シーンを含み、応用シーンに応じて、被デコーディングビデオシーケンスに対応するビデオシーケンスデコーディングモードを取得するようにしてもよい。
以下、ビデオシーケンスAに対応するエンコーディングデータをデコーディングすることを例に、ビデオデコーディング方法について説明する。ここで、ビデオシーケンスAのエンコーディングデータは上記ビデオエンコーディング方法における例の説明を参照すればよい。デコーディング側に対応する被デコーディングビデオフレームにおける入力ビデオフレームa、b、cの名称をそれぞれe、f及びgと仮定する。
1.受信端末はビデオシーケンスAに対応するエンコーディングデータを取得し、エンコーディングデータに対応するシーケンスヘッダ情報の中から、ターゲットビデオシーケンスエンコーディングモードがハイブリッド解像度エンコーディングモードであることを取得し、従って、ハイブリッド解像度デコーディングフレームワークを利用してエンコーディングデータをデコーディングする。
2.ハイブリッド解像度デコーディングフレームワークの解像度情報取得ユニットは第1個の被デコーディングビデオフレームeに対応する解像度情報を取得する。なお、eに対応するエンコーディングデータはa1をエンコーディングして取得されたデータである。eをフレーム内デコーディングし、再構成ビデオフレームe1を取得し、eに対応する解像度情報が1/2であるため、再構成ビデオフレームe1に対してサンプリング比が2のアップサンプリング処理を行い、デコーディングビデオフレームe2を取得するようにしてもよい。
3.ハイブリッド解像度デコーディングフレームワークの解像度情報取得ユニットは第2個の被デコーディングビデオフレームfに対応する解像度情報を取得する。なお、fに対応するエンコーディングデータはb1をエンコーディングして取得されたデータである。fをフレーム間デコーディングし、再構成ビデオフレームf1を取得し、fに対応する解像度情報としてダウンサンプリング比が1/4であるため、再構成ビデオフレームf1に対してサンプリング比が4のアップサンプリング処理を行い、デコーディングビデオフレームf2を取得するようにしてもよい。
デコーディング過程は以下の通りである。fがフレーム間予測フレームであるため、再構成ビデオフレームe1を現在の参照フレームとする必要があり、なお、e1がa2と同じであり、e1に対して、a2と同じサンプリング処理を行い、e3を取得し、ここでのe3はa3と同じで、ターゲット参照フレームである。エンコーディングデータの中から、現在の被デコーディングブロックに対応する動きベクトル差がMVD1であることを取得し、MVD1がターゲット解像度、すなわち原解像度であるため、MVD1を、fに対応する解像度に変換する必要があり、従って、MVD3がMVD1/4であることを取得してもよい。初期予測ベクトルがMV2であることを取得し、初期予測ベクトルが1/4ダウンサンプリング比に対応する解像度で算出されるものであり、fに対応する解像度と同じであるため、第1動きベクトルがMV1であり、MVD1/4+MV2に等しいことを取得してもよい。MV1に応じてターゲット参照ブロックを取得する。ターゲット参照ブロックに応じて、被デコーディングブロックに対応する予測値を取得し、予測残差p1と予測値を加算して再構成して、再構成ビデオフレームf1に対応する再構成ブロックを取得する。
4.ハイブリッド解像度デコーディングフレームワークの解像度情報取得ユニットは第3個の被デコーディングビデオフレームgに対応するエンコーディングデータを取得し、なお、gに対応するエンコーディングデータはc1をエンコーディングして取得されたデータである。gをフレーム間デコーディングし、再構成ビデオフレームg1を取得し、gに対応する解像度情報が1/8であるため、再構成ビデオフレームf1に対して、サンプリング比が8のアップサンプリング処理を行い、デコーディングビデオフレームg2を取得するようにしてもよい。
デコーディング過程は以下の通りである。gがフレーム間予測フレームであるため、再構成ビデオフレームf1を現在の参照フレームとする必要がある。なお、f1はb2と同じである。f1に対して、b2と同じサンプリング処理を行い、f3を取得する。ここでのf3はb3と同じで、ターゲット参照フレームである。エンコーディングデータの中から、現在の被デコーディングブロックに対応する動きベクトル差がMVD2であることを取得し、MVD2がターゲット解像度、すなわち原解像度であるため、MVD2を、gに対応する解像度に変換する必要があり、従って、MVD2がMVD1/8であることを取得してもよい。初期予測ベクトルがMV4であることを取得し、初期予測ベクトルが1/4ダウンサンプリング比に対応する解像度で算出されるため、fに対応する解像度に変換する必要があり、fに対応するダウンサンプリング比が1/8であるため、第1動きベクトルがMV3であり、MVD2/8+MV4/2に等しいことを取得してもよい。MV3に応じて、ターゲット参照ブロックを取得する。ターゲット参照ブロックに応じて、被デコーディングブロックに対応する予測値を取得し、予測残差p2と予測値を加算して再構成して、再構成ビデオフレームg1に対応する再構成ブロックを取得する。
5.受信端末はe2、f2及びg2を再生する。
図15に示すように、一実施例では、ビデオエンコーディング装置を提供し、該ビデオエンコーディング装置は上記サーバ120又は端末110に集積されてもよく、入力ビデオフレーム取得モジュール1502、処理方式取得モジュール1504、処理モジュール1506及びエンコーディングモジュール1508を含んでもよい。
入力ビデオフレーム取得モジュール1502は、入力ビデオフレームを取得することに用いられる。
処理方式取得モジュール1504は、候補処理方式の中から入力ビデオフレームに対応するターゲット処理方式を決定し、候補処理方式はフル解像度処理方式及びダウンサンプリング処理方式を含むことに用いられる。
処理モジュール1506は、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得することに用いられる。
エンコーディングモジュール1508は、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得することに用いられる。
その一実施例では、エンコーディングモジュール1508はさらに、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加することに用いられる。
その一実施例では、処理方式取得モジュール1504は、入力ビデオフレームに対応する処理パラメータを取得し、処理パラメータに応じて、入力ビデオフレームに対応するターゲット処理方式を決定することに用いられ、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加することは、処理パラメータがデコーディング中に再現できない場合、ターゲット処理方式に対応するターゲット処理方式情報を、入力ビデオフレームに対応するエンコーディングデータに追加するステップを含む。
その一実施例では、エンコーディングモジュール1508は、現在の参照フレーム取得ユニット、及びエンコーディングユニットを含む。
上記現在の参照フレーム取得ユニットは、被エンコーディングフレームに対応する現在の参照フレームを取得することに用いられる。
上記エンコーディングユニットは、被エンコーディングフレームに対応する解像度情報及び現在の参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得することに用いられる。
その一実施例では、エンコーディングユニットは、被エンコーディングフレームの解像度情報及び第1解像度情報に応じて、第1ベクトル変換パラメータを決定し、第1解像度情報は現在の参照フレームの解像度情報又は入力ビデオフレームに対応するターゲット動きベクトル単位解像度情報を含み、第1ベクトル変換パラメータに応じて、被エンコーディングフレーム中の各エンコーディングブロックに対応するターゲット動きベクトルを取得することに用いられる。
その一実施例では、エンコーディングモジュール1508は、被エンコーディングフレームの解像度情報に応じて現在の参照フレームをサンプリング処理し、対応するターゲット参照フレームを取得し、ターゲット参照フレームに応じて被エンコーディングフレームをエンコーディングし、入力ビデオフレームに対応するエンコーディングデータを取得することに用いられる。
図16に示すように、一実施例では、ビデオデコーディング装置を提供し、該ビデオデコーディング装置は上記サーバ120又は端末110に集積されてもよく、具体的には、エンコーディングデータ取得モジュール1602、解像度情報取得モジュール1604、再構成モジュール1606及びデコーディングビデオフレーム取得モジュール1608を含んでもよい。
エンコーディングデータ取得モジュール1602は、被デコーディングビデオフレームに対応するエンコーディングデータを取得することに用いられる。
解像度情報取得モジュール1604は、被デコーディングビデオフレームに対応する解像度情報を取得することに用いられる。
再構成モジュール1606は、被デコーディングビデオフレームに対応する解像度情報に応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得することに用いられる。
デコーディングビデオフレーム取得モジュール1608は、被デコーディングビデオフレームに対応する解像度情報に応じて、再構成ビデオフレームを処理し、対応するデコーディングビデオフレームを取得することに用いられる。
その一実施例では、解像度情報取得モジュール1604は、エンコーディングデータの中からターゲット処理方式情報を読み取り、ターゲット処理方式情報に応じて、被デコーディングビデオフレームに対応する解像度情報を取得することに用いられる。
その一実施例では、解像度情報取得モジュール1604は、被デコーディングビデオフレームに対応する前方デコーディングビデオフレームにおけるターゲット予測タイプデコーディングブロックの比を計算し、比に応じて、被デコーディングビデオフレームに対応するターゲット処理方式を決定し、ターゲット処理方式に応じて、被デコーディングビデオフレームに対応する解像度情報を取得することに用いられる。
その一実施例では、再構成モジュール1606は、被デコーディングビデオフレームに対応する現在の参照フレームを取得し、被デコーディングビデオフレームに対応する解像度情報及び現在の参照フレームに応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得することに用いられる。
なお、上記実施例に係る装置はその機能を実現する時、上記各機能モジュールの分割のみを例に説明したが、実際の応用では、必要に応じて、上記機能を、異なる機能モジュールに割り当てて完了し、すなわち、装置の内部構造を異なる機能モジュールに分割するようにしてもよく、それによって以上説明されたすべて又は一部の機能を完了する。また、上記実施例に係る装置は方法の実施例と同一発想に属し、その実現過程は具体的には方法の実施例を参照すればよいため、ここでは重複説明を省略する。
図17は一実施例におけるコンピュータ機器の内部構造図を示す。該コンピュータ機器は図1中の端末110であってもよい。図17に示すように、該コンピュータ機器はシステムバスによって接続されたプロセッサ、メモリ、ネットワークインタフェース、入力装置及びディスプレイスクリーンを含む。ここで、メモリは不揮発性記憶媒体及び内部メモリを含む。該コンピュータ機器の不揮発性記憶媒体はオペレーティングシステムが記憶されており、コンピュータプログラムがさらに記憶されてもよい。該コンピュータプログラムがプロセッサにより実行されると、プロセッサに、ビデオエンコーディング方法及びビデオデコーディング方法のうちの1種又は2種の方法を実現させることができる。該内部メモリはコンピュータプログラムがさらに記憶されてもよく、該コンピュータプログラムがプロセッサにより実行されると、プロセッサに、ビデオエンコーディング方法及びビデオデコーディング方法のうちの1種又は2種の方法を実行させることができる。コンピュータ機器のディスプレイスクリーンは液晶ディスプレイスクリーン又は電子インクディスプレイスクリーンであってもよい。コンピュータ機器の入力装置はディスプレイスクリーンに被覆されたタッチ層であってもよく、コンピュータ機器筐体に設置されたキー、トラックボール又はタッチパッドであってもよく、外部のキーボード、タッチパッド又はマウス等であってもよい。
図18は一実施例におけるコンピュータ機器の内部構造図を示す。該コンピュータ機器は図1中のサーバ120であってもよい。図18に示すように、該コンピュータ機器はシステムバスによって接続されたプロセッサ、メモリ及びネットワークインタフェースを含む。ここで、メモリは不揮発性記憶媒体及び内部メモリを含む。該コンピュータ機器の不揮発性記憶媒体はオペレーティングシステムが記憶されており、コンピュータプログラムがさらに記憶されてもよい。該コンピュータプログラムがプロセッサにより実行されると、プロセッサに、ビデオエンコーディング方法及びビデオデコーディング方法のうちの1種又は2種の方法を実現させることができる。該内部メモリはコンピュータプログラムがさらに記憶されてもよく、該コンピュータプログラムがプロセッサにより実行されると、プロセッサに、ビデオエンコーディング方法及びビデオデコーディング方法のうちの1種又は2種の方法を実行させることができる。
当業者であれば、図17及び図18に示される構造は、単に本願の解決手段に関連する部分構造のブロック図であり、且つ本願の解決手段を適用したコンピュータ機器を限定するものではなく、具体的には、コンピュータ機器は図示よりも多い又は少ない部材を含み、又はいくつかの部材を組み合わせ、又は異なる部材配置を有するようにしてもよいと理解できる。
一実施例では、本願に係るビデオエンコーディング装置は1種のコンピュータプログラムの形態として実現されてもよく、コンピュータプログラムは図17及び18に示されるコンピュータ機器上で実行されてもよい。コンピュータ機器のメモリに、該ビデオエンコーディング装置を構成する各プログラムモジュール、例えば、図15に示される入力ビデオフレーム取得モジュール1502、処理方式取得モジュール1504、処理モジュール1506及びエンコーディングモジュール1508が記憶されてもよい。各プログラムモジュールから構成されるコンピュータプログラムによって、プロセッサが本明細書に説明された本願の各実施例のビデオエンコーディング方法のステップを実行する。
例えば、図17及び18に示されるコンピュータ機器は、図15に示されるビデオエンコーディング装置における入力ビデオフレーム取得モジュール1502によって、入力ビデオフレームを取得し、処理方式取得モジュール1504によって、候補処理方式の中から入力ビデオフレームに対応するターゲット処理方式を決定し、候補処理方式はフル解像度処理方式及びダウンサンプリング処理方式を含み、処理モジュール1506によって、ターゲット処理方式に応じて入力ビデオフレームを処理し、被エンコーディングフレームを取得し、エンコーディングモジュール1508によって、被エンコーディングフレームに対応する解像度情報に応じて、被エンコーディングフレームをエンコーディングして、入力ビデオフレームに対応するエンコーディングデータを取得するようにしてもよい。
一実施例では、本願に係るビデオデコーディング装置は1種のコンピュータプログラムの形態として実現されてもよく、コンピュータプログラムは図17及び18に示されるコンピュータ機器上で実行されてもよい。コンピュータ機器のメモリに、該ビデオデコーディング装置を構成する各プログラムモジュール、例えば、図16に示されるエンコーディングデータ取得モジュール1602、解像度情報取得モジュール1604、再構成モジュール1606及びデコーディングビデオフレーム取得モジュール1608が記憶されてもよい。各プログラムモジュールから構成されるコンピュータプログラムによって、プロセッサが本明細書に説明された本願の各実施例のビデオエンコーディング方法のステップを実行する。
例えば、図17及び18に示されるコンピュータ機器は図16に示されるビデオデコーディング装置のエンコーディングデータ取得モジュール1602によって、被デコーディングビデオフレームに対応するエンコーディングデータを取得することに用いられ、解像度情報取得モジュール1604によって、被デコーディングビデオフレームに対応する解像度情報を取得することに用いられ、再構成モジュール1606によって、被デコーディングビデオフレームに対応する解像度情報に応じてエンコーディングデータをデコーディングし、被デコーディングビデオフレームに対応する再構成ビデオフレームを取得することに用いられ、デコーディングビデオフレーム取得モジュール1608によって、被デコーディングビデオフレームに対応する解像度情報に応じて、再構成ビデオフレームを処理し、対応するデコーディングビデオフレームを取得することに用いられる。
一実施例では、コンピュータ機器を提案し、コンピュータ機器はメモリ、プロセッサ、及びメモリに記憶され、且つプロセッサによって実行可能なコンピュータプログラムを含み、プロセッサはコンピュータプログラムを実行すると、上記ビデオエンコーディング方法のうちのいずれかの方法を実現する。
一実施例では、コンピュータ可読記憶媒体を提供し、コンピュータ可読記憶媒体にコンピュータプログラムが記憶されており、コンピュータプログラムがプロセッサにより実行されると、プロセッサにビデオエンコーディング方法のうちのいずれかの方法を実行させる。
一実施例では、コンピュータ機器を提案し、コンピュータ機器はメモリ、プロセッサ、及びメモリに記憶され、且つプロセッサによって実行可能なコンピュータプログラムを含み、プロセッサがコンピュータプログラムを実行すると、ビデオデコーディング方法のうちのいずれかの方法を実現する。
一実施例では、コンピュータ可読記憶媒体を提供し、コンピュータ可読記憶媒体にコンピュータプログラムが記憶されており、コンピュータプログラムがプロセッサにより実行されると、プロセッサにビデオデコーディング方法のうちのいずれかの方法を実行させる。
なお、本願の各実施例のフローチャート中の各ステップは矢印の指示に応じて順に表示されているが、これらのステップは必ずしも矢印で指示される順序で実行されるとは限らない。本明細書において明確に説明しない限り、これらのステップの実行は厳密な順序に限定されず、これらのステップはほかの順序で実行されてもよい。且つ、各実施例の少なくとも一部のステップは複数のサブステップ又は複数の段階を含んでもよく、これらのサブステップ又は段階は必ずしも同一時点で実行して完了されないが、異なる時点で実行されてもよく、これらのサブステップ又は段階の実行順序も必ずしも順に実行されないが、ほかのステップ又はほかのステップのサブステップ又は段階の少なくとも一部と順番又は交互に実行されてもよい。
当業者であれば、上記実施例の方法におけるすべて又は一部の手順を実現することは、コンピュータプログラムによって関連ハードウェアに命令を出すことで行われることができ、プログラムは1つの不揮発性コンピュータ可読記憶媒体に記憶されてもよく、該プログラムは実行時、上記各方法の実施例のプロセスを含んでもよいと理解できる。ここで、本願に係る各実施例に使用されるメモリ、記憶装置、データベース又はほかの媒体の任意の引用はともに、不揮発性及び/又は揮発性メモリを含んでもよい。不揮発性メモリは読み出し専用メモリ(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)等、複数種の形態として得られ得る。
以上の実施例の各技術的特徴を任意に組み合わせることができ、説明の簡潔さから、上記実施例における各技術的特徴のすべての可能な組み合わせを説明していないが、これらの技術的特徴の組み合わせは、矛盾しない限り、すべて本明細書に記載の範囲に属すると考えられる。
以上の実施例は本願のいくつかの実施形態のみを示し、比較的具体的かつ詳細に説明されたが、本願の特許範囲を限定するものではないと理解すべきである。なお、当業者は本願の発想を逸脱しない前提下で、種々の変形や改良を行うこともでき、これらの変形や改良はすべて本願の保護範囲に属する。従って、本願特許の保護範囲は添付特許請求の範囲に準じるべきである。