(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-21
(45)【発行日】2024-11-29
(54)【発明の名称】インター予測方法及び装置、電子機器並びにコンピュータプログラム
(51)【国際特許分類】
H04N 19/105 20140101AFI20241122BHJP
H04N 19/159 20140101ALI20241122BHJP
H04N 19/176 20140101ALI20241122BHJP
【FI】
H04N19/105
H04N19/159
H04N19/176
(21)【出願番号】P 2023518518
(86)(22)【出願日】2021-12-17
(86)【国際出願番号】 CN2021139051
(87)【国際公開番号】W WO2022143215
(87)【国際公開日】2022-07-07
【審査請求日】2023-03-22
(31)【優先権主張番号】202011629460.2
(32)【優先日】2020-12-31
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
【氏名又は名称原語表記】TENCENT TECHNOLOGY (SHENZHEN) COMPANY LIMITED
【住所又は居所原語表記】35/F,Tencent Building,Kejizhongyi Road,Midwest District of Hi-tech Park,Nanshan District, Shenzhen,Guangdong 518057,CHINA
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】▲張▼ 宏▲順▼
【審査官】坂東 大五郎
(56)【参考文献】
【文献】特開2017-098601(JP,A)
【文献】特表2010-509850(JP,A)
【文献】特開2003-284091(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
電子機器が実行する、インター予測方法であって、
現在予測ブロックの現在予測モードが予め設定された予測モードである場合、前記現在予測ブロックに対応する履歴予測モードを決定するステップであって、
前記予め設定された予測モードはNEWMVの単一参照フレームモードまたはNEWMVを含む組み合わせ参照フレームモードであり、前記履歴予測モードは、前記予め設定された予測モードの前に予測を完了した予測モードであるステップと、
前記現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び前記履歴予測モードにおける前記現在予測ブロックの履歴最適参照フレームタイプを取得するステップであって、
前記隣接ブロック情報は、前記隣接ブロックの動きベクトル、前記隣接ブロックの参照フレームタイプ、前記隣接ブロックの数を含み、前記サブ予測ブロック情報は、前記サブ予測ブロックの参照フレームタイプ、前記サブ予測ブロックの数を含み、前記サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、前記現在予測ブロックをパーティショニングして得られたものであるステップと、
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数に従って定められた参照フレームタイプ及び履歴最適参照フレームタイプの和集合を、前記現在予測ブロックの初期テンプレートとして決定するステップと、
前記隣接ブロックの動きベクトルに従って、各候補参照フレームタイプを利用して予測するときの誤差を計算し、各候補参照フレームタイプをフォワード参照フレーム、バックワード参照フレームと長期参照フレームの3つのタイプに分けて、前記3つのタイプのそれぞれにおいて最小の前記誤差を与える候補参照フレームタイプを、前記現在予測ブロックに対応するマスタテンプレートとして決定するステップと、
前記現在予測ブロックのフレームタイプから拡張閾値を決定し、前記隣接ブロックの数と前記サブ予測ブロックの数の合計が前記拡張閾値以下の場合には、予め設定された参照フレームタイプを拡張テンプレートとて決定するステップと、
前記初期テンプレート、前記マスタテンプレートと前記拡張テンプレートの和集合として、前記現在予測ブロックに対応する参照フレームテンプレートを生成するステップと、
前記参照フレームテンプレート
に含まれる参照フレームタイプに対応する参照フレームを利用して、前記現在予測ブロックに対してインター予測を実行して、前記現在予測ブロックに対応する予測値を取得するステップと、
を含む、インター予測方法。
【請求項2】
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数に従って定められた参照フレームタイプ及び履歴最適参照フレームタイプの和集合を、前記現在予測ブロックに対応する初期テンプレート
として決定する前記ステップは、
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数に従って定められる第1初期テンプレートを決定するステップと、
前記履歴最適参照フレームタイプを、第2初期テンプレートとして使用するステップと、
前記第1初期テンプレートと前記第2初期テンプレート
の和集合として、前記現在予測ブロックに対応する前記初期テンプレートを決定するステップと、
を含む、
請求項
1に記載のインター予測方法。
【請求項3】
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数に従って定められる第1初期テンプレートを決定する前記ステップは、
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプ
の和集合として、少なくとも1つの履歴被選択参照フレームタイプを決定するステップと、
前記少なくとも1つの履歴被選択参照フレームタイプ内の各履歴被選択参照フレームタイプの前記被選択回数を統計するステップと、
前記被選択回数
が最大の前記各履歴被選択参照フレームタイプ
を第1初期テンプレート
として選別するステップと、
を含む、
請求項
2に記載のインター予測方法。
【請求項4】
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数
に従って定められる第1初期テンプレートを
決定する前記ステップは、
各履歴被選択参照フレームタイプの被選択回数から、最大被選択回数を選別するステップと、
前記各履歴被選択参照フレームタイプの被選択回数を拡大して、拡大された被選択回数を取得するステップと、
前記拡大された被選択回数を前記最大被選択回数と比較して、前記各履歴被選択参照フレームタイプに対応する比較結果を取得するステップであって、前記比較結果は、前記拡大された被選択回数が前記最大被選択回数以上であるか否かを表すステップと、
前記比較結果が前記拡大された被選択回数が前記最大被選択回数以上であることを表す履歴被選択参照フレームタイプを、前記第1初期テンプレートとして決定するステップと、
を含む、
請求項
2に記載のインター予測方法。
【請求項5】
前記初期テンプレートは、空きであり、前記第1初期テンプレートと前記第2初期テンプレート
の和集合として、前記現在予測ブロックに対応する前記初期テンプレートを決定した後、前記インター予測方法は、
少なくとも1つの予め設定された参照フレームタイプを前記初期テンプレートに追加して、較正された初期テンプレートを取得するステップを更に含み、
前記初期テンプレート、前記マスタテンプレートと前記拡張テンプレート
の和集合として、前記現在予測ブロックに対応する前記参照フレームテンプレートを生成するステップは、
前記較正された初期テンプレート、前記マスタテンプレートと前記拡張テンプレート
の和集合として、前記現在予測ブロックに対応する前記参照フレームテンプレートを生成するステップを含む、
請求項
2ないし
4のいずれか一項に記載のインター予測方法。
【請求項6】
前記現在予測ブロックの隣接ブロックの隣接ブロック情報
及びサブ予測ブロックのサブ予測ブロック情報を取得するステップは、
前記隣接ブロックの最適予測モードを判断して、第1判断結果を取得し、前記サブ予測ブロックの最適予測モードを判断して、第2判断結果を取得するステップであって、前記第1判断結果は、前記隣接ブロックの最適予測モードが第1予め設定されたモードであるか否かを表し、
前記第1予め設定されたモードは、NEARESTMVモードまたはNEARMVモードであって、前記第2判断結果は、前記サブ予測ブロックの最適予測モードが第2予め設定されたモードであるか否かを表
し、前記第2予め設定されたモードは、NEARESTMVモードまたはNEARMVモードであるステップと、
前記第1判断結果が、前記隣接ブロックの最適予測モードが前記第1予め設定されたモードであることを表す場合、前記隣接ブロックの参照フレームタイプを取得するステップと、
前記第2判断結果が、前記サブ予測ブロックの最適予測モードが前記第2予め設定されたモードであることを表す場合、前記サブ予測ブロックの参照フレームタイプを取得するステップと、
を含む、
請求項1に記載のインター予測方法。
【請求項7】
前記隣接ブロックの動きベクトルに従って、
各候補参照フレームタイプを利用して予測するときの誤差を計算し、各候補参照フレームタイプをフォワード参照フレーム、バックワード参照フレームと長期参照フレームの3つのタイプに分けて、前記3つのタイプのそれぞれにおいて最小の前記誤差を与える候補参照フレームタイプを、前記現在予測ブロックに対応するマスタテンプレート
として生成するステップは、
前記隣接ブロックの動きベクトルを利用して、全量候補参照フレームタイプ内の各候補参照フレームタイプのために選択パラメータを計算するステップであって、前記全量候補参照フレームタイプは、インター予測時の使用可能なすべての候補参照フレームタイプを表し、前記選択パラメータは、前記隣接ブロックの入力値と予測値との差を表すステップと、
前記全量候補参照フレームタイプはそれぞれ、候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプと候補長期参照フレームタイプに分割されるステップと、
前記候補フォワード参照フレームタイプに対応する選択パラメータ、前記候補バックワード参照フレームタイプに対応する選択パラメータ、及び前記候補長期参照フレームタイプに対応する選択パラメータを利用して、
前記候補フォワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプをフォワード参照フレームタイプ
とし、
前記候補バックワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプをバックワード参照フレームタイプと
し、前記候補長期参照フレームタイプ内における選択パラメータが前記フォワード参照フレームタイプに対応する選択パラメータと前記バックワード参照フレームタイプに対応する選択パラメータとの合計より小さい候補参照フレームタイプを長期参照フレームタイプ
として選択するステップと、
前記フォワード参照フレームタイプ、前記バックワード参照フレームタイプと前記長期参照フレームタイプ
の和集合として、前記現在予測ブロックに対応する前記マスタテンプレートを
生成するステップと、
を含む、
請求項
1に記載のインター予測方法。
【請求項8】
前記隣接ブロックの動きベクトルを利用して、全量候補参照フレームタイプ内の各候補参照フレームタイプのために選択パラメータを計算するステップは、
前記全量候補参照フレームタイプ内の前記各候補参照フレームタイプを前記隣接ブロックの動きベクトルにマッチングして、マッチング結果を取得するステップであって、
前記隣接ブロックの参照フレームタイプが前記各候補参照フレームタイプと同じであるか否かを判断し、前記マッチング結果は、前記各候補参照フレームタイプに、一致する動きベクトルが存在するか否かを表すステップと、
前記マッチング結果が、前記各候補参照フレームタイプに、一致する動きベクトルが存在しないことを表す場合、予め設定済みの数値を前記各候補参照フレームタイプの選択パラメータとして使用するステップと、
前記マッチング結果が、前記各候補参照フレームタイプに、一致する動きベクトルが存在することを表す場合、前記隣接ブロックが前記隣接ブロックの動きベクトルに基づいて予測するときの予測値と入力値を利用して、前記各候補参照フレームタイプの選択パラメータを計算するステップと、
を含む、
請求項
7に記載のインター予測方法。
【請求項9】
複数の前記一致する動きベクトルは、複数のサブベクトル
を構成し、前記予測値は、複数のサブ予測値を含み、前記複数のサブベクトルと複数のサブ予測値は相互に対応し、前記隣接ブロックが前記隣接ブロックの動きベクトルに基づいて予測するときの予測値と入力値を利用して、前記各候補参照フレームタイプの選択パラメータを計算するステップは、
前記複数のサブベクトルの各サブベクトルに対応するサブ予測値の画素と、前記隣接ブロックの入力値の画素との差を計算して、前記各サブベクトルに対応する画素差分値を取得するステップと、
前記各サブベクトルに対応する画素差分値の絶対値を累積して、前記各サブベクトルに対応する一時選択パラメータを取得するステップと、
前記各サブベクトルの一時選択パラメータのうちの最も小さい一時選択パラメータを、前記各候補参照フレームタイプに対応する選択パラメータとして使用するステップと、
を含む、
請求項
8に記載のインター予測方法。
【請求項10】
インター予測装置であって
現在予測ブロックの現在予測モードが予め設定された予測モードである場合、前記現在予測ブロックに対応する履歴予測モードを決定するように構成されるモード決定モジュールであって、
前記予め設定された予測モードはNEWMVの単一参照フレームモードまたはNEWMVを含む組み合わせ参照フレームモードであり、前記履歴予測モードは、前記予め設定された予測モードの前に予測を完了した予測モードである、モード決定モジュールと、
前記現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び前記履歴予測モードにおける前記現在予測ブロックの履歴最適参照フレームタイプを取得するように構成される情報取得モジュールであって、
前記隣接ブロック情報は、前記隣接ブロックの動きベクトル、前記隣接ブロックの参照フレームタイプ、前記隣接ブロックの数を含み、前記サブ予測ブロック情報は、前記サブ予測ブロックの参照フレームタイプ、前記サブ予測ブロックの数を含み、前記サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、前記現在予測ブロックをパーティショニングして得られたものである、情報取得モジュールと、
テンプレート生成モジュール
であって、
前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプの被選択回数に従って定められた参照フレームタイプ及び履歴最適参照フレームタイプの和集合を、前記現在予測ブロックの初期テンプレートとして決定するステップと、
前記隣接ブロックの動きベクトルに従って、各候補参照フレームタイプを利用して予測するときの誤差を計算し、各候補参照フレームタイプをフォワード参照フレーム、バックワード参照フレームと長期参照フレームの3つのタイプに分けて、前記3つのタイプのそれぞれにおいて最小の前記誤差を与える候補参照フレームタイプを、前記現在予測ブロックに対応するマスタテンプレートとして決定するステップと、
前記現在予測ブロックのフレームタイプから拡張閾値を決定し、前記隣接ブロックの数と前記サブ予測ブロックの数の合計が前記拡張閾値以下の場合には、予め設定された参照フレームタイプを拡張テンプレートとて決定するステップと、
前記初期テンプレート、前記マスタテンプレートと前記拡張テンプレートの和集合として、前記現在予測ブロックに対応する参照フレームテンプレートを生成するステップと、を含むプロセスを実行するように構成されるテンプレート生成モジュールと、
前記参照フレームテンプレート
に含まれる参照フレームタイプに対応する参照フレームを利用して、前記現在予測ブロックに対してインター予測を実行して、前記現在予測ブロックに対応する予測値を取得するように構成される、情報予測モジュールと、 を備える、インター予測装置。
【請求項11】
インター予測のための電子機器であって、
実行可能な命令を記憶するメモリと、
前記メモリに記憶された実行可能な命令を実行するとき、請求項1ないし
9のいずれか一項に記載のインター予測方法を実現するプロセッサと、
を備える、電子機器。
【請求項12】
コンピュータプログラム又は命令を含み、前記コンピュータプログラム又は命令がプロセッサによって実行されるとき、請求項1ないし
9のいずれか一項に記載のインター予測方法を実現する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願への相互参照)
本願は、2020年12月31日に中国特許局に提出された、出願番号が202011629460.2である中国特許出願に基づいて提出されるものであり、当該中国特許出願の優先権を主張し、当該中国特許出願の全ての内容が参照によって本願に組み込まれる。
【0002】
本願は、ビデオ符号化技術に関し、インター予測方法及び装置、電子機器、コンピュータ可読記憶媒体並びにコンピュータプログラム製品に関するものである。
【背景技術】
【0003】
ビデオ符号化は、ビデオ伝送に幅広く適用され、将来ビデオは、ハイビジョン、高フレームレート、高圧縮率の発展傾向を有する。インター予測(「インターフレーム予測」とも呼ばれる)を利用してビデオフレームを符号化する場合、ビデオフレームを個々の符号化ユニット(CU:Coding Unit)に分割する必要があり、CUがインター予測を利用して予測値を計算する場合、CUが予測モードのために適切な参照フレームを選択してからこそ、予測を開始し、予測値を取得することができる。
【0004】
適切な参照フレームを選択する場合、まず、重要ではないと考えられるいくつかの参照フレームモードを強制的に削除し、そして、予測モードを残りの参照フレームモードと組み合わせ、各モード組み合わせに対して高複雑度の優先選択過程を経過した後に、適切な参照フレームモードを取得することができる。しかし、優先選択過程の計算が複雑であり、ビデオ符号化の効率が低くなってしまう。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本願実施例は、ビデオ符号化の効率を向上させる、インター予測方法及び装置、電子機器、コンピュータ可読記憶媒体並びにコンピュータプログラム製品を提供する。
【課題を解決するための手段】
【0006】
本願実施例の技術的解決策は、以下のように実現される。
【0007】
本願実施例は、インター予測方法を提供し、前記方法は、
現在予測ブロックの現在予測モードが予め設定された予測モードである場合、前記現在予測ブロックに対応する履歴予測モードを決定するステップであって、前記履歴予測モードは、前記予め設定された予測モードの前に予測を完了した予測モードであるステップと、
前記現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び前記履歴予測モードにおける前記現在予測ブロックの履歴最適参照フレームタイプを取得するステップであって、前記サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、前記現在予測ブロックをパーティショニングして得られたものであるステップと、
前記履歴最適参照フレームタイプ、前記隣接ブロック情報、前記サブ予測ブロック情報、及び前記現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレートを生成するステップと、
前記参照フレームテンプレートを利用して、前記予め設定された予測モードの参照フレームを決定し、前記参照フレームを利用して、前記現在予測ブロックに対してインター予測を実行して、前記現在予測ブロックに対応する予測値を取得するステップと、を含む。
【0008】
本願実施例は、インター予測装置を提供し、前記装置は、
現在予測ブロックの現在予測モードが予め設定された予測モードである場合、前記現在予測ブロックに対応する履歴予測モードを決定するように構成されるモード決定モジュールであって、前記履歴予測モードは、前記予め設定された予測モードの前に予測を完了した予測モードである、モード決定モジュールと、
前記現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び前記履歴予測モードにおける前記現在予測ブロックの履歴最適参照フレームタイプを取得するように構成される情報取得モジュールであって、前記サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、前記現在予測ブロックをパーティショニングして得られたものである、情報取得モジュールと、
前記履歴最適参照フレームタイプ、前記隣接ブロック情報、前記サブ予測ブロック情報、及び前記現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレートを生成するように構成される、テンプレート生成モジュールと、
前記参照フレームテンプレートを利用して、前記予め設定された予測モードの参照フレームを決定し、前記参照フレームを利用して、前記現在予測ブロックに対してインター予測を実行して、前記現在予測ブロックに対応する予測値を取得するように構成される、情報予測モジュールと、を備える。
【0009】
本願実施例は、インター予測のための電子機器を提供し、前記電子機器は、
実行可能な命令を記憶するメモリと、
前記メモリに記憶された実行可能な命令を実行するとき、本願実施例によるインター予測方法を実現するプロセッサと、を備える。
本願実施例は、実行可能な命令が記憶され、プロセッサによって実行される際に、本願実施例によるインター予測方法を実現する、コンピュータ可読記憶媒体を提供する。
【0010】
本願実施例は、コンピュータプログラム又は命令を含み、前記コンピュータプログラム又は命令がプロセッサによって実行されるとき、本願実施例によるインター予測方法を実現する、コンピュータプログラム製品を提供する。
【発明の効果】
【0011】
本願実施例は、以下の有益な効果を有する:現在予測モードが予め設定済みの予測モードである場合、現在予め設定された予測モードに対応する履歴予測モードを決定し、その後、履歴予測モードにおける現在予測ブロックの履歴最適参照フレームタイプ、履歴予測モードにおける現在予測ブロックの隣接ブロックの情報、履歴予測モードにおける現在予測ブロックがパーティショニングによって得られたサブ予測ブロックに対応するサブ予測ブロック情報を取得して、これにより、現在予測ブロックが、予め設定された予測モードの前に既に実行された履歴予測モードに対応する各種情報を直接に継承し、その後、予め設定された予測モードのとき、現在予測ブロックに対して参照フレームテンプレートを適応的に生成し、このようにして、ビデオ符号化における予め設定された予測モードの特性を十分に考慮して、いくつかの既存の情報を直接に利用して参照フレームテンプレートを生成し、計算の複雑性を大幅に減少させ、それにより、ビデオ符号化の効率を向上させる。
【図面の簡単な説明】
【0012】
【
図1】AV1の符号化フレームワークの概略図である。
【
図3】異なる単一参照フレームモードのMVP選択の概略図である。
【
図4】最も適切なモード組み合わせを優先的に選択する過程の概略図である。
【
図5】本願実施例によるビデオ符号化システムの選択的なアーキテクチャの概略図である。
【
図6】本願実施例によるインター予測のための電子機器の例示的な構成図である。
【
図7】本願実施例によるインター予測方法の選択的なフローチャート1である。
【
図8】本願実施例による現在予測ブロックと隣接ブロックとの位置関係の概略図である。
【
図9】本願実施例による10種類の異なるサブブロック分割タイプのシーケンスの概略図である。
【
図10】本願実施例によるインター予測方法の選択的なフローチャート2である。
【
図11】本願実施例によるIフレーム、Pフレーム、Bフレーム、bフレームと非参照Bフレーム間の参照関係の概略図である。
【
図12】本願実施例によるGOP16の参照関係の概略図である。
【
図13】本願実施例によるNEWMVモードのために参照フレームテンプレートを生成する過程の概略図である。
【
図14】初期化テンプレートを生成する過程の概略
図1である。
【
図15】初期化テンプレートを生成する過程の概略
図2である。
【
図16】本願実施例によるNEWMVモードの参照フレームテンプレートの適用過程の概略図である。
【発明を実施するための形態】
【0013】
本願の目的、技術的解決策及び利点をより明確にするために、以下では、図面を参照して本願を更に詳細に説明し、説明される実施例は、本願に対する制限と見なすべきではなく、創造的な努力なしに当業者によって取得される他のすべての実施例は、本願の保護範囲に含まれるものとする。
【0014】
以下の説明では、「いくつかの実施例」という用語は、すべての可能な実施例のサブセットを指し、理解できることとして、「いくつかの実施例」という用語は、すべての可能な実施例の同じサブセット又は異なるサブセットであり得、これらは、競合することなく互いに組み合わせることができる。
【0015】
以下の説明では、関する用語「第1/第2」は、類似する対象を区別するためのものに過ぎず、対象に対する特定のソートを表しなく、当然のことながら、許可される場合に「第1/第2」は、特定の順序又は優先順位を互いに交換して、ここで説明される本願実施例が、図面で示され説明される以外の順序で実施できるようにすることができることに留意されたい。
【0016】
特に定義しない限り、本明細書で使用されるすべての技術及び科学的用語は、当業者が通常理解している意味と同じである。本明細書で使用される用語は、本願実施例の目的を説明するために過ぎず、本願を限定することを目的とするものではない。
【0017】
本願実施例をさらに詳細に説明する前に、本願実施例に関する名詞及び用語を説明し、本願実施例に関する名詞及び用語は、以下の説明に適用可能である。
【0018】
1)イントラ符号化とは、ビデオ画像の1つのビデオフレーム内の隣接画素間に存在する関連性を利用して、隣接画素間の空間冗長を減少する符号化方式である。
【0019】
2)インター符号化とは、ビデオ画像における隣接フレーム間の類似性を利用して、隣接フレーム間の時間冗長を排除し、それにより、ビデオ符号化効率を向上させる符号化方式である。
【0020】
3)動きベクトル(MV:Motion Vector)とは、インター予測を実行するとき、現在ブロックと参照ブロックとの位置関係をマークする1つのベクトルである。インター符号化において、隣接フレーム内の画像コンテンツに特定の関連性が存在するため、フレーム画像をいくつかのブロックに分け、隣接ずるビデオフレームにおける各ブロックの位置を検索し、両者間の空間位置の相対オフセット量を計算し、取得された相対オフセット量が動きベクトルである。
【0021】
4)動き推定(ME:Motion Estimation)とは、動きベクトルを推定する過程を指す。
【0022】
5)動きベクトル予測値(MVP:Motion Vector Prediction)とは、現在ブロックの隣接ブロックに従って導出されたMVの初期位置を指す。
【0023】
6)動きベクトル差(MVD:Motion Vector Difference)とは、MVとMVPとの差分値を指し、つまり、MVD=MV-MVPである。使用中に、更に、MV予測値と実の値の差分値(MVD)を符号化して、ビット数の消費を削減することができる。
【0024】
7)レート歪みコスト(RDCost:Rate Distortion Cost)は、複数の符号化モードを優先的に選択するために使用される。RDCostの計算式は、以下の式(1)に示す通りである:
【数1】
ここで、distは、歪み、つまり、画素ブロックの原画素と予測画素との残差信号であり、bitは、情報の最小単位であり、λは、ラグランジュ乗数である。
【0025】
8)絶対誤差の和(SAD:Sum of Absolute Difference)は、残差信号の時間ドメインの差を反映しており、ビットストリームのサイズは効果的に反映できない。
【0026】
9)絶対変換差の和(SATD:Sum of Absolute Transformed Difference)は、歪みを計算する方式の一種であり、残差信号に対してHadamard変換を実行した後、各要素絶対値の合計を計算して得られるものである。SADに対して、SATDの計算量がより大きいが、計算精度がより高い。
【0027】
10)誤差二乗和(SSE:Sum of the Squared Errors)は、歪みを計算する別の方式であり、原画素と再構築画素との誤差の二乗の和である。SSEを計算するには、残差信号に対して、変換、量子化、逆量子化と逆変換を実行する過程が必要であり、計算の複雑性が大きいが、推定されたコードワードは実符号化と同じであり、選ばれた符号化モードでコードワードを最も節約する。
【0028】
ビデオ符号化は、ビデオ伝送に幅広く適用され、将来のビデオは、ハイビジョン、高フレームレート、高圧縮率の発展傾向を有し、これにより、ビデオ符号化の圧縮効率は継続的に向上する必要がある。第1世代ビデオ符号化規格(AV1)は登場以来、大きな関心を集めている。
【0029】
高効率ビデオ符号化(HEVC:High Efficiency Video Codinh)と先進ビデオ符号化(AVC:Advance Video Coding)などの他のビデオ符号化技術に対して、AV1はより高い圧縮率を有し、伝送品質が同じである場合、占有する帯域幅を30%減らすことができ、更に、ストリーミングメディアでもピクチャでも、AV1を利用して符号化伝送を実行することができ、スクリーン共有とビデオゲームストリーミングに幅広く使用できる。
【0030】
図1は、AV1の符号化フレームワークの概略図であり、
図1に示すように、電子機器はまず、電子機器内に送信された現在ビデオフレーム1-1を複数の128×128の符号化ツリーユニット(CTU:Coding Tree Unit)に分割し、その後、異なる10種類の分割ルールに応じて、各CTUを長方形の符号化ユニット(CU:Coding Unit)に分割し、各CUは、複数の予測モードと変換ユニット(TU:Transform Unit)とを含む。電子機器は、各CUに対してインター予測1-2又はイントラ予測1-3を実行して、予測値を取得する。ここで、インター予測1-2は、動き推定(ME:Motion Estimation)1-21と動き補償(MC:Motion Compensation)1-22とを含み、参照フレーム1-12を必要とし;イントラ予測1-3は、予測モード選択1-31と予測1-32とを含む。電子機器は、予測値から各CUの入力値を減算して、残差分値を取得し、その後、残差分値に対して、変換1-4、量子化1-5を実行して、残差係数を取得し、そして、残差係数に対してエントロピ符号化1-6を実行して、出力されたビットストリームを取得する。その同時に、電子機器は更に、残差係数に対して、逆量子化1-7、逆変換1-8を実行し、それにより、再構築画像の残差分値を取得し、電子機器は再構築画像の残差分値を予測値と加算して、再構築画像を取得することができ、再構築画像にしたがってイントラ予測モード選択1-31を実行して、イントラの予測1-32を実行する。電子機器は更に、再構築画像にフィルタリング1-9を実行し、フィルタリングされた再構築画像が即ち現在ビデオフレーム1-1に対応する再構成フレーム1-11であり、再構成フレーム1-11は、次のビデオフレームの参照フレームとして参照フレームキューに入り、それにより、順次後方に符号化する。
【0031】
更に、CUの分割ルールは、1つに限られず、
図2は、CUの分割ルールの概略図であり、
図2に示すように、CUは、10種類の分割ルールを有し、それぞれ、分割なし(NONE)2-1、4等分(SPLIT)2-2、水平2等分(HORZ)2-3、垂直2等分(VERT)2-4、水平4等分(HORZ_4)2-5、第1水平3等分(HORZ_A)2-6、第2水平3等分(HORZ_B)2-7、第1垂直3等分(VERT_A)2-8、第2垂直3等分(VERT_B)2-9、垂直4等分(VERT_4)2-10である。この10種類の分割ルールは、22種類のブロックサイズに対応し、それぞれ、4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、64×64、64×128、128×64、128×128、4×16、16×4、8×32、32×8、16×64、64×16である。
【0032】
予測の際、各CUは、複数の予測モードを含み、つまり、各CUはいずれも、イントラ予測モードとインター予測モードとを含む。電子機器はまず、同じ予測タイプ内で、異なる予測モード間で比較して、最適な予測モードを取得し、その後、イントラ予測モードをインター予測モードと比較して、各CUの最適予測モードを見つける。同時に、各CUが複数のTUを含むため、電子機器は、各CUに含まれる複数のTUから最適なTUを選択し、その後、現在ビデオフレームを個々のCUに分ける必要がある。
【0033】
イントラ予測モードは、上方と左方の参照画素に基づく平均値予測(DC_PRED)、水平と垂直差分値複合予測(SMOOTH_PRED)、垂直補間予測(SMOOTH_V_PRED)、水平補間予測(SMOOTH_H_PRED)、勾配最小方向予測(PEATH_PRED)及び異なる8つの主方向予測を含み、この異なる8つの主方向予測はそれぞれ、垂直方向予測(V_PRED)、水平方向予測(H_PRED)、45度角度方向予測(D45_PRED)、67度角度方向予測(D67_PRED)、113度角度方向予測(D113_PRED)、135度角度方向予測(D135_PRED)、157度角度方向予測(D157_PRED)、203度角度方向予測(D203_PRED)である。各主方向は更に、6つの角度オフセットを含み、それぞれ、プラスマイナス3度、プラスマイナス6度、プラスマイナス9度である。いくつかの場合において、イントラ予測モードは更に、パレット予測モードとイントラ(intra)ブロックコピー予測とを含み得る。
【0034】
インター予測は、4つの単一参照フレームモード及び8つの組み合わせ参照フレームモードがある。ここで、4つの単一参照フレームモードは、単一の参照フレームを利用して予測することを指し、4つの単一参照フレームモードは、NEARESTMV、NEARMV、GLOBALMV及びNEWMVであり得;8つの組み合わせ参照フレームモードは、組み合わせた参照フレームを利用して予測することを指し、それは、NEAREST_NEARESTMV、NEAR_NEARMV、NEAREST_NEWMV、NEW_NEARESTMV、NEAR_NEWMV、NEW_NEARMV、GLOBAL_GLOBALMV及びNEW_NEWMVを含む。ここで、NEARESTMV及びNEARMVは、MVDを伝送する必要なく、予測ブロックのMVが周囲のブロック情報に基づいて導出されることを指し、NEWMVは、伝送されたMVDに基づいて取得されることを指し、GLOBALMVは、予測ブロックのMV情報を全局の動きに基づいて導出されることを指す。これから分かるように、NEARESTMV、NEARMV及びNEWMVはすべて、MVPの導出に依存し、与えられた参照フレームについて、AV1は、MVPの導出ルールに応じて4つのMVPを算出する。MVPの導出ルールは以下の通りである:
【0035】
電子機器が、特定の方式で現在ブロックの左1、3、5列と上1、3、5行のブロック情報をジャンプしてスキャンし、まず、現在ブロックと同じ参照フレームを使用するブロックを選んで、MVに対して重複排除を実行し、重複排除後のMVの数が8未満である場合、同じ方向の参照フレームを選択して、MVを追加し続け;MVの数が依然として8未満である場合、8つのMVを選ぶまで、全局の動きベクトルを利用して充填する。次に、電子機器は、選択された8つのMVに対して並べ替え、並べ替えた結果に従って最も重要な4つのMVを選択する。そして、電子機器は、この4つのMVから、NEARESTMV、NEARMV及びNEWMVの3つの単一参照フレームモードのために対応するMVPを選択する。
図3は、異なる単一参照フレームモードのMVP選択の概略図であり、
図3を参照すると、単一参照フレームリストには複数の参照フレームがあり、それぞれ、ref1、ref2、ref3、……である。電子機器は、ref1参照フレームを使用するブロックを選択し、8つのMVを選んだ後、最も重要な4つのMV1(MV2、MV3はそれぞれ、ref2及びref3のMVである)を選択し、その後、0番目のMV1を、NEARESTMVに対応するMVPとして使用し、1~3番目のうちの1つのMV1をNEARMVのMVPとして使用し、0~2番目のうちの1つのMV1をNEWMVのMVPとして使用する。同時に、電子機器は更に、ZEROMVを{0,0}として決定することができる。
【0036】
インター予測モードの4種類の単一参照フレームモードにおける各単一参照フレームモードの場合、すべて、7つの異なる参照フレームタイプに対応し、この7つの参照フレームタイプ及びその意味は表1に示すとおりである:
【表1】
【0037】
インター予測モードの8種類の組み合わせ参照フレームモードにおける各組み合わせ参照フレームモードの場合、すべて、{LAST_FRAME,ALTREF_FRAME}、{LAST2_FRAME,ALTREF_FRAME},{LAST3_FRAME,ALTREF_FRAME}、{GOLDEN_FRAME,ALTREF_FRAME},{LAST_FRAME,BWDREF_FRAME}、{LAST2_FRAME,BWDREF_FRAME}、{LAST3_FRAME,BWDREF_FRAME}、{GOLDEN_FRAME,BWDREF_FRAME}、{LAST_FRAME,ALTREF2_FRAME}、{LAST2_FRAME,ALTREF2_FRAME}、{LAST3_FRAME,ALTREF2_FRAME}、{GOLDEN_FRAME,ALTREF2_FRAME}、{LAST_FRAME,LAST2_FRAME}、{LAST_FRAME,LAST3_FRAME}、{LAST_FRAME,GOLDEN_FRAME}、{BWDREF_FRAME,ALTREF_FRAME}を有する。
【0038】
これから分かるように、インター予測モードにとって、合計156種(即ち、7×4+16×8)のモード組み合わせ(即ち、予測モードと参照フレームモードによって構成された組み合わせ)があり、各モード組み合わせにとって、すべて、最大3種類のMVPに対応し、そして、現在MVPに対して動き推定(予測モードがNEWMVモードを含む場合にのみ、動き推定を実行する)、inter_inter優先選択、補間方式の優先選択及び動きモードの優先選択の4つの過程を実行し、それにより、最適切なモード組み合わせを選択する。
【0039】
例示的に、
図4は、最も適切なモード組み合わせを優先的に選択する過程の概略図であり、
図4を参照すると、最適切なモード組み合わせを選択する過程は、以下のステップを含み得る。
【0040】
ステップS1において、スタートする。
【0041】
ステップS2において、MVPの総数ref_setを取得し、n=0にする。
【0042】
ここで、nは、現在MVPの番号である。
【0043】
ステップS3において、nがref_setより小さいか否かを判断し、小さい場合S4を実行し、そうでない場合S5を実行する。
【0044】
ステップS4において、MVPを取得し、nに1を自動増加する。
【0045】
ステップS5において、終了する。
【0046】
ステップS6において、現在予測モードがNEWMVを含むか否かを判断し、含まない場合S7を実行し、含む場合S8を実行し、つまり、動き推定を実行する。
【0047】
これは、動き推定の計算量が大きく、速度が遅いためであり、すべての予測モードが動き推定を実行する必要があることではなく、予測モードがNEWMVを含む場合にのみ、動き推定する必要がある。
【0048】
ステップS7において、二重参照フレームであるか否かを判断し、そうでない場合S9を実行し、層である場合S10を実行する。
【0049】
ステップS8において、動き推定を実行する。
【0050】
ステップS9において、迅速に終了する。
【0051】
S9の後、すぐにS11を実行する。
【0052】
ステップS10において、内部(inter_inter)選択を実行する。
【0053】
ステップS11において、最適動きベクトルの下で補間方向に優先的に選択する。
【0054】
ステップS12において、動きモードを優先的に選択する。
【0055】
動きモードの優先選択の後、最適切な参照フレームモードを選択するまで、S3に戻って循環する。
【0056】
上記の分析から分かるように、各モード組み合わせの優先選択過程の計算はすべて非常に複雑であり、特に、NEWMVモードを含むモード組み合わせは、動き推定を更に実行する必要があり、それにより、符号化の速度を遅くし、ビデオ符号化効率を低下させる。いくつかの参照フレームモードを強制的に削除することにより、モード組み合わせの数を減らすと、予測モード本体の特徴に対する考慮だけでなく、ビデオシナリオの特徴に対する考慮も減少し、予測シナリオに対する適応程度が低くなるため、参照フレームテンプレートの適応能力を低下させ、且つ符号化損失が符号化時間の増加につれて増加され、取得されたビットストリーム品質が悪くなる可能性がある。
【0057】
本願実施例は、ビデオ符号化の効率を向上させることができる、インター予測方法及び装置、電子機器、コンピュータ可読記憶媒体並びにコンピュータプログラム製品を提供し、以下は、本願実施例による、インター予測のための電子機器の例示的な適用について説明し、本願実施例による電子機器は、端末として実施してもよく、サーバとして実施してもよい。ここで、独立した物理サーバであってもよいし、複数の物理サーバによって構成されたサーバクラスタ又は分散型システムであってもよいし、クラウドサービス、クラウドデータベース、クラウドコンピューティング、クラウド関数、クラウドストレージ、ネットワークサービス、クラウド通信、ミドルウェアサービス、ドメインネームサービス、セキュリティサービス、CDN、ビッグデータ及び人工知能プラットフォームなどの基礎的クラウドコンピューティングサービスを提供するクラウドサーバであってもよく;端末は、スマトフォン、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、スマートスピーカ、スマート腕時計、スマート家電、車載端末などであってもよいが、これらに限定されない。端末及びサーバは有線又は無線通信方式により直接的又は間接的に接続でき、本願はここで限定しない。以下は、電子機器の例示的な適用について説明する。
【0058】
図5を参照すると、
図5は、本願実施例によるビデオ符号化システムの選択的なアーキテクチャの概略図であり、1つのインター予測適用のサポートを実現するために、ビデオ符号化システム100において、電子機器400で符号化待ちのビデオフレーム200を読み取り、その後、ビデオフレーム200を複数の画像ブロックに分割し、それらから1つを選択して現在予測ブロック300として使用する。電子機器400はまず、現在予測ブロック300の現在予測モードを決定し、現在予測ブロックの現在予測モードが予め設定された予測モードである場合、現在予測ブロックに対応する履歴予測モードを決定し、つまり、現在予測ブロックが予め設定された予測モードの前に予測を完了した予測モードを決定する。電子機器400は、現在予測ブロック300の隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び履歴予測モードにおける現在予測ブロックの履歴最適参照フレームタイプを取得し、ここで、サブ予測ブロックは、現在サブブロック分割タイプの前のサブブロック分割タイプを利用して、現在予測ブロックをパーティショニングして得られたものである。電子機器400は、履歴最適参照フレームタイプ、隣接ブロック情報、サブ予測ブロック情報、及び現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレート500を生成する。その後、電子機器400は、参照フレームテンプレート500を利用して、予め設定された予測モードに対応する参照フレームを決定し、参照フレームを利用して、現在予測ブロックに対してインター予測を実行して、現在予測ブロックに対応する予測値を取得する。電子機器400は予測値を取得した後、予測値に対応する残差を計算し、更に、残差に対して、変換、量子化及びエントロピ符号化を実行することにより、最終的なビットストリームを取得する。
【0059】
図6を参照すると、
図6は、本願実施例による、インター予測のための電子機器の例示的な構成図であり、
図6に示す電子機器400は、少なくとも1つのプロセッサ410、メモリ450、少なくとも1つのネットワークインターフェース420及びユーザインターフェース430を備える。電子機器内400の各コンポーネントは、バスシステム440を介して結合される。理解できることとして、バスシステム440は、これらのコンポーネント間の接続通信を実現するために使用される。データバスに加えて、バスシステム440は、電力バス、制御バス及びステータス信号バスを含む。しかしながら、説明を明確にするために、
図6には様々なバスをバスシステム440として表記している。
【0060】
プロセッサ410は、汎用プロセッサ、デジタル信号プロセッサ(DSP:Digital Signal Processor)、又は他のプログラマブルロジックデバイス、ディスクリートゲート又はトランジスタロジックデバイス、ディスクリートハードウェアコンポーネントなど、信号処理の機能を有する集積回路チップであってもよく、ここで、汎用プロセッサは、マイクロプロセッサ又は任意の従来のプロセッサなどであってもよい。
【0061】
ユーザインターフェース430は、メディアコンテンツを表現できるようにする1つ又は複数の出力装置431を備え、前記出力装置431は、1つ又は複数のスピーカ、及び/又は、1つ又は複数の視覚ディスプレイスクリーンを備える。ユーザインターフェース430は更に、1つ又は複数の入力装置432を備え、前記入力装置432は、キーボード、マウス、マイクロフォン、タッチスクリーンディスプレイスクリーン、カメラ、他の入力ボタンとコントロールなど、ユーザの入力に役立つユーザインターフェース部品を備える。
【0062】
メモリ450は、取り外し可能、取り外し不可能又はそれらの組み合わせであってもよい。例示的なハードウェア機器は、固体メモリ、ハードディスクドライバ、光ディスクドライバなどを含む。メモリ450は、物理的位置においてプロセッサ410から離れた1つ又は複数の記憶機器を選択的に含む。
【0063】
メモリ450は、揮発性メモリ又は不揮発性メモリを含み、揮発性及び不揮発性メモリの両方を含んでもよい。不揮発性メモリは、読み取り専用メモリ(ROM:Read Only Memory)であってもよく、揮発性メモリは、ランダムアクセスメモリ(RAM:Random Access Memory)であってもよい。本願実施例で説明されるメモリ450は、任意の適切なタイプのメモリを含むことを意図する。
【0064】
いくつかの実施例において、メモリ450は、データを記憶して様々な操作をサポートすることができ、これらのデータの例は、プログラム、モジュール及びデータ構造又はそのサブセット又はスーパーセットを含み、以下で例示的に説明する。
【0065】
オペレーティングシステム451は、フレームワーク層、コアライブラリ層、ドライバ層などの、様々な基本的なシステムサービスを処理し、ハードウェアに関するタスクを実行するためのシステムプログラムを含み、様々な基本的なサービスを実現し、ハードウェアベースのタスクを処理するために使用される。
【0066】
ネットワーク通信モジュール452は、1つ又は複数の(有線又は無線)ネットワークインターフェース420を経由して他のコンピュータ機器に到達するために使用され、例示的なネットワークインターフェース420は、Bluetooth(登録商標)技術、ワイヤレス・フィディリティ(Wi-Fi)、及び汎用シリアルバス(USB、Universal Serial Bus)などを含む。
【0067】
表現モジュール453は、ユーザインターフェース430に関連付けられる1つ又は複数の出力装置431(例えば、ディスプレイスクリーン、スピーカなど)を経由して情報を表現できるようにするために使用される(例えば、周辺機器を操作し、コンテンツと情報を表示するためのユーザインターフェース)。
【0068】
入力処理モジュール454は、1つ又は複数の入力装置432のうちの1つからの1つ又は複数のユーザの入力又は相互作用を検出し、検出された入力又は相互作用を翻訳するために使用される。
【0069】
いくつかの実施例において、本願実施例によるインター予測装置はソフトウェア方式を採用して実現することができ、
図6は、メモリ450に記憶されたインター予測装置455を示し、それは、プログラムとプラグインなどの形のソフトウェアであってもよく、モード決定モジュール4551、情報取得モジュール4552、テンプレート生成モジュール4553及び情報予測モジュール4554のようなソフトウェアモジュールを含み、これらのモジュールは論理的なものであるため、実現機能に基づいて任意の組み合わせ又は更なる分割を実行することができる。以下では各モジュールの機能について説明する。
【0070】
他のいくつかの実施例において、本願実施例によるインター予測装置は、ハードウェア方式を採用して実現することができ、一例として、本願実施例によるインター予測装置は、ハードウェア復号化プロセッサの形を採用するプロセッサであってもよく、それは、本願実施例によるインター予測方法を実行するためにプログラミングされ、例えば、ハードウェア復号化プロセッサの形のプロセッサは、1つ又は複数の特定用途向け集積回路(ASIC:Application Specific Integrated Circuit)、DSP、プログラマブルロジックデバイス(PLD:Programmable Logic Device)、複合プログラマブルロジックデバイス(CPLD:Complex Programmable Logic Device)、フィールドプログラマブルゲートアレイ(FPGA:Field-Programmable Gate Array)又は他の電子素子を採用することができる。
【0071】
例示的に、本願実施例は、インター予測のための電子機器を提供し、前記電子機器は、
実行可能な命令を記憶するメモリと、
前記メモリに記憶された実行可能な命令を実行するとき、本願実施例によるインター予測方法を実現するプロセッサと、を備える。
以下、本願実施例による電子機器の例示的な適用和実施を参照して、本願実施例によるインター予測方法について説明する。なお、本願実施例は、クラウド技術により実現することができる。ここで、クラウド技術とは、ワイドエリアネットワーク又はローカルエリアネットワークでハードウェア、ソフトウェア、ネットワークなどの一連のリソースを統一して、データのコンピューティング、記憶、処理及び共有を実現するホスティング技術を意味する。
【0072】
図7を参照すると、
図7は、本願実施例によるインター予測方法の選択的なフローチャート1であり、
図7に示すステップと組み合わせて説明する。
【0073】
ステップS101において、現在予測ブロックの現在予測モードが予め設定された予測モードである場合、現在予測ブロックに対応する履歴予測モードを決定する。
【0074】
本願実施例は、ビデオを符号化するシナリオで実現される。電子機器はまず、入力されたビデオフレームを複数の画像ブロックに分割し、現在予測ブロックは、複数の画像ブロックのうち、現在時刻で予測されている画像ブロックである。電子機器は、毎回異なる参照フレームモードを利用して現在予測ブロックを予測し、現在予測モードは、現在時刻で現在予測ブロックを予測するための参照フレームモードである。電子機器が、現在予測モードが予め設定された予測モードであることを判断した場合、それは、予め設定された予測モードの前に完了(対応する参照フレームテンプレートを決定)した予測モードを収集し、これらの予測モードを履歴予測モードとして決定する。つまり、履歴予測モードは、予め設定された予測モードの前に予測を完了した予測モードである。
【0075】
なお、本願実施例において、予め設定された予測モードは、NEWMVという単一参照フレームモードであってもよいし、NEWMVを含む組み合わせ参照フレームモードであってもよく、本願実施例はここで限定しない。
【0076】
理解できることとして、インター予測の4種類の単一参照フレームモードの予測に特定の優先順位があるため、例えば、NEWMVモード予測の前に、NEAEESTMV、NEARMV、GLOBALMVは予測を完了し、よって、本願実施例における履歴予測モードは、NEAEESTMV、NEARMV、GLOBALMVモードのうちの任意の1つであってもよいし、NEAEESTMV、NEARMV、GLOBALMVのうちの複数によって構成された組み合わせであってもよい。
【0077】
ステップS102において、現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び履歴予測モードにおける現在予測ブロックの履歴最適参照フレームタイプを取得する。
現在予測ブロックは、既に履歴予測モードを利用して予測されており、履歴予測モードを利用して予測した後、履歴予測モードにおける現在予測ブロックの履歴最適参照フレームタイプを決定するため、電子機器は履歴最適参照フレームタイプを直接に取得することができる。同時に、現在予測ブロックについて、複数の異なるサブブロック分割方式があり、サブ予測ブロックとは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、現在予測ブロックをパーティショニングして得られたものであるため、サブ予測ブロックからは知られており、及びサブ予測ブロックの情報はすべて知られており、同様に、隣接ブロックに対応する隣接ブロック情報も知られている。したがって、本願実施例において、電子機器は、サブ予測ブロック情報と隣接ブロック情報を直接に取得することができる。
【0078】
なお、隣接ブロック情報は、隣接ブロックの動きベクトルと、隣接ブロックに対応する参照フレームタイプ、即ち隣接参照フレームタイプとを含んでもよいし、隣接ブロックの数などを含んでもよく、本願はここで限定しない。
【0079】
サブ予測ブロック情報は、サブ予測ブロックの参照フレームタイプ、即ち履歴サブ参照フレームタイプを含んでもよいし、サブ予測ブロックの数などを含んでもよく、本願はここで限定しない。
【0080】
理解できることとして、隣接ブロックは、現在予測ブロックの左側、左上、上、右上の画像ブロックを指してもよいし、現在予測ブロックの左側に位置する1、3、5列目の画像ブロック、及び現在予測ブロックの上に位置する1、3、5行目の画像ブロックを指してもよく、本願はここで限定しない。
【0081】
例示的に、本願実施例は、現在予測ブロックと隣接ブロックとの位置関係の概略図を提供し、
図8を参照すると、画像ブロックEは現在予測ブロックであり、画像ブロックA、画像ブロックB、画像ブロックC及び画像ブロックDは、すべて現在予測ブロックの隣接ブロックである。
【0082】
ステップS103において、履歴最適参照フレームタイプ、隣接ブロック情報、サブ予測ブロック情報、及び現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレートを生成する。
【0083】
同じ画像ブロックの異なる予測モードで選択された最適参照フレームタイプは、すべて同じ参照フレームタイプである可能性があるため、計算の複雑性を減少するために、履歴最適参照フレームタイプを直接に継承して、参照フレームテンプレートの一部として使用することができる。更に、隣接ブロックが現在予測ブロックと近いと、そのコンテンツも類似する可能性があり、よって、隣接ブロックの参照フレームタイプ、動きベクトルなどの情報に基づいて、現在予測ブロックのために部分的な参照フレームテンプレートを生成することができる。同時に、サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して決定されるものであり、現在予測ブロックと密接に関連しているため、サブ予測ブロック情報を直接に利用して、部分的な参照フレームテンプレートを生成することができる。
【0084】
例示的に、現在予測ブロックは10種類の異なるサブブロック分割タイプを有することができ、それぞれ、NONE分割予測、HORZ分割予測、VERT分割予測、SPLIT分割予測、HORZ_4分割予測、HORZ_A分割予測、HORZ_B分割予測、VERT_A分割予測、VERT_B分割予測及びVERT_4分割予測である。この10種類のサブブロック分割タイプの順序は固定せず、複数の順序の組み合わせが存在する。本願実施例は、10種類の異なるサブブロック分割タイプの1つのシーケンスの概略図を提供し、
図9を参照すると、この10種類のサブブロック分割タイプは、NONE分割予測9-1、HORZ分割予測9-2、VERT分割予測9-3、SPLIT分割予測9-4、HORZ_A分割予測9-5、HORZ_B分割予測9-6、VERT_A分割予測9-7、VERT_B分割予測9-8、HORZ_4分割予測9-9及びVERT_4分割予測9-10の順序に従って実行でき、現在のサブブロック分割タイプがHORZ_A分割予測9-5である場合、電子機器は、NONE分割予測9-1、HORZ分割予測9-2、VERT分割予測9-3、SPLIT分割予測9-4であるいくつかのサブブロック分割タイプに対応するサブ予測ブロックのサブ予測ブロック情報を直接に取得することができる。
【0085】
ステップS104において、参照フレームテンプレートを利用して、予め設定された予測モードの参照フレームを決定し、参照フレームを利用して現在予測ブロックに対してインター予測を実行して、現在予測ブロックに対応する予測値を取得する。
【0086】
電子機器は、参照フレームテンプレートを決定した後、候補参照フレームタイプを参照フレームテンプレートと一貫性の比較を実行し、候補参照フレームタイプが参照フレームテンプレートと一致する場合、候補参照フレームタイプを現在予測ブロックの参照フレームとして使用し、その後、すべての候補参照フレームタイプの循環を完了するまで、参照フレームに従って、現在予測ブロックに対してインター予測を実行し、それにより、現在予測ブロックに対応する予測値を取得する。それにより、参照フレームテンプレートの適用を完了する。
【0087】
本願実施例において、現在予測モードが予め設定済みの予測モードである場合、現在予測予め設定されたモードに対応する履歴予測モードを決定し、その後、履歴予測モードにおける現在予測ブロックの履歴最適参照フレームタイプ、履歴予測モードにおける現在予測ブロックの隣接ブロックの情報、履歴予測モードにおける現在予測ブロックがパーティショニングによって得られたサブ予測ブロックに対応するサブ予測ブロック情報を取得して、これにより、現在予測ブロックが、予め設定済みの予測モードの前に既に実行された履歴予測モードに対応する各種情報を直接に継承し、その後、予め設定された予測モードのとき、現在予測ブロックに対して参照フレームテンプレートを適応的に生成し、このようにして、ビデオ符号化における予め設定済みの予測モードの特性を十分に考慮して、いくつかの既存の情報を直接に利用して参照フレームテンプレートを生成し、計算の複雑性を大幅に減少させ、それにより、ビデオ符号化の効率を向上させる。
【0088】
本願のいくつかの実施例において、隣接ブロック情報は、隣接ブロックの動きベクトル、隣接ブロックの参照フレームタイプ、隣接ブロックの数を含み、サブ予測ブロック情報は、サブ予測ブロックの参照フレームタイプ、サブ予測ブロックの数を含む。この場合、
図10を参照すると、
図10は、本願実施例によるインター予測方法の選択的なフローチャート2であり、履歴最適参照フレームタイプ、隣接ブロック情報、サブ予測ブロック情報、及び現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレートを生成するステップ、即ち、S103の具体的な実現過程は、ステップS1031~S1034を含み得る。
【0089】
ステップS1031において、履歴最適参照フレームタイプ、サブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプに基づいて、現在予測ブロックに対応する初期テンプレートを決定する。
【0090】
候補参照フレームタイプの範囲は限られており、電子機器はまず、サブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプを利用して、各候補参照フレームタイプが選択された回数を判断し、その後、選択された回数に基づいて、各候補参照フレームタイプから、予め設定済みの予測モードにおける現在予測ブロックの適切な参照フレームタイプを選択する。同時に、異なる予測モードにおける現在予測ブロックの最適切な参照フレームタイプは同じである可能性があるため、電子機器は更に、履歴最適参照フレームタイプ、即ち、履歴予測モードにおける現在予測ブロックの最も一致する参照フレームタイプを直接に継承することができる。電子機器は、選択された適切な参照フレームタイプ、及び継承された履歴最適参照フレームタイプを、現在予測ブロックの初期テンプレートとして決定する。
【0091】
ステップS1032において、隣接ブロックの動きベクトルに従って、現在予測ブロックに対応するマスタテンプレートを生成する。
【0092】
電子機器は、隣接ブロックの動きベクトルに従って、各候補参照フレームタイプを利用して予測するときの誤差状況を構築し、そして、当該誤差状況に従って、各候補参照フレームタイプから、現在予測ブロックを予測するとき、生成された小さい誤差の候補参照フレームタイプを決定し、当該候補参照フレームタイプを、現在予測ブロックに対応するマスタテンプレートとして使用する。
【0093】
理解できることとして、本願のいくつかの実施例において、電子機器は更に、各候補参照フレームタイプに対してカテゴリ分割を実行することができ、例えば、フォワード参照カテゴリ、バックワード参照カテゴリと長期参照タイプに分割し、その後、各参照カテゴリから、最適切な候補参照フレームタイプを選択し、選択された候補参照フレームタイプを利用して、現在予測ブロックに対応するマスタテンプレートを生成する。
【0094】
ステップS1033において、現在予測ブロックのフレームタイプ、隣接ブロック数とサブ予測ブロックの数を利用して、現在予測ブロックに対応する拡張テンプレートを決定する。
【0095】
初期テンプレートとマスタテンプレートを決定すること以外、電子機器は更に、現在予測ブロックのために拡張テンプレートを決定し、それにより、初期テンプレートとマスタテンプレートとの両方の効果が良くない場合、拡張テンプレートを利用できるようにして、最終的に決定された参照フレームテンプレートの品質を保証する必要がある。電子機器は、まず、現在予測ブロックのフレームタイプを利用して、1つの閾値を決定し、その後、隣接ブロック数とサブ予測ブロック数を利用してインター予測ブロックの数を計算し、当該インター予測ブロックの数を決定された閾値と比較し、それにより、いくつかの候補参照フレームタイプを、拡張テンプレートとして使用するか否かを決定する。このように、電子機器で拡張テンプレートの生成を完了する。
【0096】
ステップS1034において、初期テンプレート、マスタテンプレートと拡張テンプレートを利用して、現在予測ブロックに対応する参照フレームテンプレートを生成する。
【0097】
いくつかの実施例において、電子機器で初期テンプレート、マスタテンプレートと拡張テンプレートを取得した後、初期テンプレート、マスタテンプレートと拡張テンプレートを1つのセットに統合し、このセットは、予め設定済みの予測モードにおける現在予測ブロックの参照フレームテンプレートを構成する。
【0098】
例示的に、初期テンプレートをmask_initで示し、マスタテンプレートをmask_mainで示し、拡張テンプレートをmask_addで示す場合、参照フレームテンプレートは、mask_newmv=mask_init|mask_main|mask_add(|は、和集合を示す)で示すことができる。
【0099】
他のいくつかの実施例において、電子機器は更に、初期テンプレート、マスタテンプレートと拡張テンプレートを融合して、現在予測ブロックに対応する参照フレームテンプレートを取得することができる。
【0100】
本願実施例において、電子は、継承された情報、パラメータを利用して、現在予測ブロックのために、マスタテンプレート、初期テンプレート及び拡張テンプレートをそれぞれ生成し、その後、この3つのテンプレートを統合して、現在予測ブロックに対応する参照フレームテンプレートを取得して、後続で参照フレームテンプレートを利用して参照フレームを決定することを容易にすることができる。
【0101】
本願のいくつかの実施例において、履歴最適参照フレームタイプ、サブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプに基づいて、現在予測ブロックに対応する初期テンプレートを決定するステップ、即ち、S1031の具体的な実現過程は、ステップS1031a~S1031cを含み得る。
【0102】
ステップS1031aにおいて、サブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプに従って、第1初期テンプレートを決定する。
【0103】
説明すべきこととして、電子機器は、サブ予測ブロックの参照フレームタイプ、及び隣接ブロックの参照フレームタイプに従って、すべての候補参照フレームタイプから、サブ予測ブロックと隣接ブロックとして選択された候補参照フレームタイプがどのようなものがあるかを決定し、その後、選択された候補参照フレームタイプの被選択回数に従って、選択された候補参照フレームタイプを決定して、第1初期テンプレートが選択された参照フレームタイプであるか、アイドルテンプレートであるかを決定することができる。
【0104】
ステップS1031bにおいて、履歴最適参照フレームタイプを、第2初期テンプレートとして使用する。
【0105】
電子機器は、履歴最適参照フレームタイプを直接に継承し、最適参照フレームタイプを第2初期テンプレートとして使用する。理解できることとして、履歴予測モードがNEARESTMVモード、NEARMVモードとGLOBALMVモードである場合、電子機器は、この3つのモードの最適参照フレームタイプの値(最適参照フレームタイプはすべて表1に示す7個の参照フレームタイプに属する)を順次に0と比較し、あるモードの最適参照フレームタイプの値が0より大きい場合、当該モードの最適参照フレームタイプを第2初期テンプレートに追加することができる。
【0106】
例示的に、NEARESTMVモードに対応する最適参照フレームタイプの値が0より大きい場合、NEARESTモードにおける最適参照フレームタイプを第2初期テンプレートに追加する。
【0107】
ステップS1031cにおいて、第1初期テンプレートと第2初期テンプレートを利用して、現在予測ブロックに対応する初期テンプレートを決定する。
【0108】
いくつかの実施例において、電子機器は、第1初期テンプレートと第2初期テンプレートを取得した後、第1初期テンプレートと第2初期テンプレートを集約し、取得されたセットが現在予測ブロックの初期テンプレートである。
【0109】
例示的に、第1初期テンプレートをmask_init1で示し、第2初期テンプレートをmask_init2で示す場合、初期テンプレートは、mask_init=mask_init1|mask_init2に示すことができる。
【0110】
他のいくつかの実施例において、電子機器は更に、第1初期テンプレートを第2初期テンプレートと加重して、現在予測ブロックに対応する初期テンプレートを取得することができる。
【0111】
本願の他の実施例において、電子機器は、まずサブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプを利用して、初期テンプレートの一部を決定し、その後、履歴最適参照テンプレートを、初期テンプレートの他の一部として使用することができ、この2つの部分を統合することにより、初期テンプレートの決定過程を実現する。
【0112】
本願実施例において、前記サブ予測ブロックの参照フレームタイプと前記隣接ブロックの参照フレームタイプに従って、第1初期テンプレートを決定し、履歴最適参照フレームタイプを、第2初期テンプレートとして継承し、その後、第1初期テンプレートと第2初期テンプレートを初期テンプレートに統合することにより、電子機器で初期テンプレートの決定過程を実現することができる。
【0113】
本願のいくつかの実施例において、サブ予測ブロックの参照フレームタイプと隣接ブロックの参照フレームタイプに従って、第1初期テンプレートを決定するステップ、即ち、S1031aの具体的な実現過程は、ステップS201~S203を含み得る。
【0114】
ステップS201において、隣接ブロックの参照フレームタイプとサブ予測ブロックの参照フレームタイプを利用して、少なくとも1つの履歴被選択参照フレームタイプを決定する。
【0115】
隣接ブロックの参照フレームタイプとサブ予測ブロックの参照フレームタイプは、実際には、すべての候補参照フレームタイプから決定されたものであるため、電子機器は、隣接ブロックの参照フレームタイプをサブ予測ブロックの参照フレームタイプと合併して、すべての候補参照フレームタイプにおいて、どのような候補参照フレームタイプが履歴予測モードで選択されたかを明確にすることができ、それにより、履歴予測モード時に選択された候補参照フレームタイプを、履歴被選択参照フレームタイプに決定することができる。選択された候補参照フレームタイプが1つに限られていない可能性があるため、電子機器は少なくとも1つの履歴被選択参照フレームタイプを取得することができる。
【0116】
ステップS202において、少なくとも1つの履歴被選択参照フレームタイプ内の各履歴被選択参照フレームタイプの被選択回数を統計する。
【0117】
電子機器は、少なくとも1つの履歴被選択参照フレームタイプを取得した後、履歴予測モードにおける各履歴被選択参照フレームタイプの被選択回数を統計し、それにより、各履歴被選択参照フレームタイプの被選択回数を取得する。
【0118】
いくつかの実施例において、履歴被選択参照フレームの被選択回数を統計するとき、電子機器は、各履歴被選択参照フレームがサブ予測ブロックの参照フレームタイプとして使用される回数をそれぞれ統計し、各履歴被選択参照参照フレームが隣接ブロックの参照フレームタイプとして使用される回数を統計し、その後、各履歴被選択参照フレームタイプに対して、この2つの回数を加算して、各履歴被選択参照フレームタイプの被選択回数を取得する。
【0119】
例示的に、LAST_FRAMEは1つの履歴被選択参照フレームタイプであり、ここで、LAST_FRAMEは、サブ予測ブロックによって3回選択され、隣接ブロックによって2回選択され、そうすると、LAST_FRAMEの被選択回数は5回となる。
【0120】
他のいくつかの実施例において、履歴被選択参照フレームの被選択回数を統計するとき、電子機器は、各履歴被選択参照フレームがサブ予測ブロックの参照フレームタイプとして使用される回数を統計し、各履歴被選択参照参照フレームが隣接ブロックの参照フレームタイプとして使用される回数を統計して平均値を計算して、各履歴被選択参照フレームタイプの被選択回数を取得する。
【0121】
ステップS203において、被選択回数を利用して、各履歴被選択参照フレームタイプから、第1初期テンプレートを選別する。
【0122】
電子機器は、各履歴被選択参照フレームタイプの被選択回数をサイズで並べ替え、それにより、各履歴被選択参照フレームタイプの被選択回数の順序を決定し、その後、1つの最も大きい被選択回数に対応する履歴被選択参照フレームタイプを選択して、第1初期テンプレートとして使用する。電子機器は更に、各履歴被選択参照フレームタイプの被選択回数をすべて、設定された閾値と比較し、被選択回数が設定された閾値より大きい履歴被選択参照フレームタイプを、第1初期テンプレートとして使用することができる。
【0123】
本願実施例において、電子機器はまず、少なくとも1つの履歴被選択参照フレームタイプを決定し、その後、各履歴参照フレームタイプの被選択回数に従って、各履歴被選択参照フレームタイプから、第1初期テンプレートを選択することができ、それにより、ほとんどの隣接ブロック、サブ予測ブロックによって選択された履歴被選択参照フレームタイプを、第1初期テンプレートとして使用して、第1初期テンプレートをより正確にする。
【0124】
本願のいくつかの実施例において、被選択回数を利用して、各履歴被選択参照フレームタイプから、第1初期テンプレートを選別するステップ、即ち、S203の具体的な実現過程は、ステップS2031~S2034を含み得る。
【0125】
ステップS2031において、各履歴被選択参照フレームタイプの被選択回数から、最大被選択回数を選別する。
【0126】
ステップS2032において、各履歴被選択参照フレームタイプの被選択回数を拡大して、拡大された被選択回数を取得する。
【0127】
理解できることとして、電子機器は、予め設定された倍数に従って被選択回数を拡大することができ、ランダムの倍数に従って被選択回数を拡大することもできる。
【0128】
なお、被選択回数を予め設定された倍数に従って拡大することにより、各履歴被選択参照フレームタイプから、できるだけ多くの参照フレームを選択することができ、つまり、ある履歴被選択参照フレームタイプの選択された回数がある程度に達すると、参照フレームテンプレートとして使用される可能性があり、それは、予め設定された倍数に従って拡大する方法により、第1初期テンプレートとして選択され、それにより、参照フレームテンプレートに加入することができる。
【0129】
理解できることとして、予め設定された倍数は、4に設定してもよいし、6に設定してもよいし、必要に応じて他の値に設定してもよく、本願はここで限定しない。
【0130】
ステップS2033において、拡大された被選択回数を最大被選択回数と比較して、各履歴被選択参照フレームタイプに対応する比較結果を取得する。
【0131】
ここで、比較結果は、拡大された被選択回数が最大被選択回数以上であるか否かを表す。
【0132】
ステップS2034において、比較結果が拡大された被選択回数が最大被選択回数以上であることを表す履歴被選択参照フレームタイプを、第1初期テンプレートとして使用する。
【0133】
電子機器は、拡大された被選択回数を選択された最大被選択回数と比較することにより、各履歴被選択参照フレームタイプの拡大された被選択回数と、すべての履歴被選択参照フレームタイプの最も大きい1つの被選択回数とのサイズ関係を判断し、拡大された被選択回数が最大の被選択回数以上である履歴被選択参照フレームタイプを、第1初期テンプレートとして使用する。
【0134】
例示的に、各履歴被選択参照フレームタイプの被選択回数はref_num[i]で示すことができ、最大被選択回数はref_num[0]で示すことができ(サイズの並べ替えの後1位に並んでいる)、予め設定された倍数が4である場合、ref_num[i]*4≧ref_num[0]である場合、mask_init1|=(1<<i)である(即ち、条件を満たす履歴被選択参照フレームのフレーム番号iを、第1初期テンプレートを記録するための番号文字列に格納する)。
【0135】
本願実施例において、電子機器は、各履歴被選択参照フレームタイプの被選択回数を拡大した後、最も大きい1つの被選択回数と比較し、それにより、各履歴被選択参照フレームタイプから、第1初期テンプレートを選択して、後続の初期テンプレートの生成を容易にすることができる。
【0136】
本願のいくつかの実施例において、収集できないサブ予測情報と隣接ブロック情報が存在する場合(つまり、サブ予測情報と隣接ブロック情報がアイドル情報である)があり、それにより、サブ予測ブロックの参照フレームタイプ及び隣接ブロックの参照フレームタイプの両方がアイドルであるため、第1初期テンプレートがアイドルになり、履歴最適参照フレームタイプを収集していない場合(例えば、NEWMVモードの前にNEARESTMV、NEARMV及びGLOBALMVモードを予測していない)、第2初期テンプレートもアイドルになり、この場合、初期テンプレートはアイドルであり、このような場合には、第1初期テンプレート及び第2初期テンプレートを利用して、現在予測ブロックの初期テンプレートを構成した後、即ち、ステップS1031cの後、当該方法は、ステップS1031dを更に含み得る。
【0137】
ステップS1031dにおいて、初期テンプレートに、少なくとも1つの予め設定された参照フレームタイプを追加して、較正された初期テンプレートを取得する。
【0138】
初期テンプレートがアイドルである場合、電子機器は、最終的な参照フレームテンプレートの有効性を保証するために、初期テンプレートを矯正、補完する。このとき、電子機器は、設定された少なくとも1つの予め設定された参照フレームタイプを、アイドルの初期テンプレートに追加し、それにより、少なくとも1つの予め設定された参照フレームタイプを追加した初期テンプレートを、較正された初期テンプレートとする。この場合、初期テンプレート、マスタテンプレート及び拡張テンプレートを利用して、現在予測ブロックに対応する参照フレームテンプレートを生成するステップ、即ち、S1034の実現過程は、較正された初期テンプレート、マスタテンプレート及び拡張テンプレートを利用して、現在予測ブロックに対応する参照フレームテンプレートを生成するステップに変更される。
【0139】
なお、少なくとも1つの予め設定された参照フレームタイプは、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAMEなど、選択された候補参照フレームタイプであってもよいし、最初のビデオフレームなど、ビデオフレームから選択されたあるビデオフレームであってもよく、本願はここで限定しない。
【0140】
理解できることとして、少なくとも1つの予め設定された参照フレームタイプは、LAST_FRAMEのみを含むように、1つのみの予め設定された参照フレームタイプを含んでもよいし、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAMEを含むように、3つの予め設定された参照フレームタイプを含んでもよく、本願はここで限定しない。
【0141】
本願実施例において、電子機器は更に、初期テンプレートがアイドルである場合、初期テンプレートに少なくとも1つの予め設定された参照フレームタイプを追加することにより、初期テンプレートの較正、補完を実現して、最終的な参照フレームテンプレートの有効性を保証することができる。
【0142】
本願のいくつかの実施例において、隣接ブロック情報は、隣接ブロックの参照フレームタイプを含み、サブ予測ブロック情報は、サブ予測ブロックの参照フレームタイプを含み;現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報を取得するステップ、即ち、S102の具体的な実現過程は、ステップS1021~S1023を含み得る。
【0143】
ステップS1021において、隣接ブロックの最適予測モードを判断して、第1判断結果を取得し、サブ予測ブロックの最適予測モードを判断して、第2判断結果を取得する。
【0144】
説明すべきこととして、第1判断結果は、隣接ブロックの最適予測モードが第1予め設定されたモードであるか否かを表し、第2判断結果は、サブ予測ブロックの最適予測モードが第2予め設定されたモードであるか否かを表す。
【0145】
ステップS1022において、第1判断結果が、隣接ブロックの最適予測モードが第1予め設定されたモードであることを表す場合、隣接ブロックの参照フレームタイプを取得する。
【0146】
ステップS1023において、第2判断結果が、サブ予測ブロックの最適予測モードが第2予め設定されたモードであることを表す場合、サブ予測ブロックの参照フレームタイプを取得する。
【0147】
電子機器は、隣接ブロックに対応する隣接ブロック情報を取得するとき、まず、隣接ブロックの最適予測モードを判断し、隣接ブロックの最適予測モードが第1予め設定されたモードであることを判断した場合にのみ、隣接フレームの参照フレームタイプを記録する。同様に、電子機器は、サブ予測ブロックの最適予測モードが第2予め設定されたモードであることを判断した場合にのみ、サブ予測ブロックの参照フレームタイプを記録し、それにより、このような方式により隣接ブロック情報とサブ予測ブロック情報を取得する。隣接ブロックの最適予測モードが第1予め設定されたモードではない場合、隣接フレームの参照フレームタイプはアイドルであり、サブ予測ブロックの最適予測モードが第2予め設定されたモードではない場合、サブ予測ブロックの参照フレームタイプはアイドルである。
【0148】
なお、第1予め設定されたモードは、NEARMVモードであってもよいし、NEARESTMVモードであってもよく、第2予め設定されたモードは、NEARESTMVモードであってもよいし、NEARMVモードであってもよく、本願はここで限定しない。
【0149】
例示的に、隣接ブロックが
図8に示す4つの隣接ブロックである場合、各隣接ブロックの最適予測モードがinterモードである場合、電子機器は、隣接ブロックの参照フレームタイプを記録して、ref_nb[4]={ref_A、ref_B、ref_C、ref_D}を取得し、それにより、隣接ブロック情報を取得することができる。
【0150】
本願実施例において、電子機器は、隣接ブロックとサブ予測ブロックの最適予測モードが条件を満たす場合にのみ、隣接ブロックの参照フレームタイプとサブ予測ブロックの参照フレームタイプを取得し、それにより、隣接ブロック情報とサブ予測ブロック情報の取得過程を実現する。
【0151】
本願のいくつかの実施例において、隣接ブロックの動きベクトルに従って、現在予測ブロックに対応するマスタテンプレートを生成するステップ、即ち、S1032の具体的な実現過程は、ステップS1032a~S1032dを含み得る。
【0152】
ステップS1032aにおいて、隣接ブロックの動きベクトルを利用して、全量候補参照フレームタイプ内の各候補参照フレームタイプのために選択パラメータを計算する。
【0153】
なお、全量候補参照フレームタイプは、インター予測のときのすべての使用可能な参照フレームタイプを表し、本願のいくつかの実施例において、全量候補参照フレームタイプは、表1に示す7個の参照フレームタイプであってもよいし、この7個の参照フレームタイプから選択されたいくつかの参照フレームタイプであってもよい。選択パラメータは、隣接ブロックの入力値と予測値との差を表し、このような差は、SAD又はSATDを利用して計算されることができる。SATDの精度がより高いが、計算の複雑性も対応的により大きい。
【0154】
ステップS1032bにおいて、全量候補参照フレームタイプはそれぞれ、候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプと候補長期参照フレームタイプに分割される。
【0155】
電子機器は、各候補参照フレームタイプの参照方向に従って、全量候補参照フレームタイプを、候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプと候補長期参照フレームタイプの3つのグループに分割して、後続でこの3つのグループに対して、参照フレームタイプの選択過程を実行することを容易にし、つまり、この3つのグループから、それぞれフォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択する。
【0156】
例示的に、全量候補参照フレームタイプが表1による7個の候補参照フレームタイプである場合、電子機器は、各候補参照フレームタイプの参照方向に従って、LAST_FRAME、LAST_FRAME2とLAST3_FRAMEを候補フォワード参照フレームタイプに分割し、BWDREF_FRAME、ALTREF2_FRAMEとALTREF_FRAMEを候補バックワード参照フレームタイプに分割し、GOLDEN_FRAMEを候補長期参照フレームタイプに分割する。
【0157】
ステップS1032cにおいて、候補フォワード参照フレームタイプに対応する選択パラメータ、候補バックワード参照フレームタイプに対応する選択パラメータ、及び候補長期参照フレームタイプに対応する選択パラメータを利用して、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択する。
【0158】
ステップS1032dにおいて、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを利用して、現在予測ブロックに対応するマスタテンプレートを統合する。
【0159】
電子機器は、各グループ内の候補参照フレームタイプの選択パラメータに対してサイズの比較を実行し、比較結果に従って、候補フォワード参照フレームタイプからフォワード参照フレームタイプを選択し、候補バックワード参照フレームタイプから、バックワード参照フレームタイプを選択し、候補長期参照フレームタイプから、長期参照フレームタイプを選択する。そして、電子機器は、選択されたフォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを1つのセットに集め、取得されたセットが、マスタテンプレートである。
【0160】
他のいくつかの実施例において、電子機器は更に、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプに対して加重融合を実行して、現在予測ブロックのマスタテンプレートを種特区することができる。
【0161】
例示的に、現在向参照フレームタイプをref_list0で示し、バックワード参照フレームタイプをref_list1で示し、長期参照フレームタイプがGOLDEN_FRAMEである場合、マスタテンプレートはmask_main=ref_list0|ref_list1|GOLDEN_FRAMEである。
【0162】
本願実施例において、電子機器は、隣接ブロックの動きベクトルに従って、各候補参照フレームタイプのために選択パラメータを計算し、その後、選択パラメータに従って、参照方向に従って全量候補参照フレームタイプを分割して得られた候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプと候補長期参照フレームタイプから、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択し、それにより、選択されたこれらの参照フレームタイプを集約して、マスタテンプレートとすることができる。
【0163】
本願のいくつかの実施例において、候補フォワード参照フレームタイプに対応する選択パラメータ、候補バックワード参照フレームタイプに対応する選択パラメータ、及び候補長期参照フレームタイプに対応する選択パラメータを利用して、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択するステップ、即ち、S1032cの具体的な実現過程は、ステップS301~S303を含み得る。
【0164】
ステップS301において、候補フォワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプを、フォワード参照フレームタイプとして使用する。
【0165】
電子機器は、候補フォワード参照フレームタイプにおける各候補参照フレームタイプの選択パラメータを互いに比較し、これから最も小さい1つの選択パラメータを選択し、その後、最も小さい選択パラメータに対応する候補参照フレームタイプを、フォワード参照フレームタイプとして使用する。
【0166】
ステップS302において、候補バックワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプを、バックワード参照フレームタイプとして使用する。
【0167】
電子機器は、候補バックワード参照フレームタイプにおける各候補参照フレームタイプの選択パラメータを互いに比較し、これから最も小さい1つの選択パラメータを選択し、候補バックワード参照フレームタイプの最も小さい選択パラメータに対応する候補参照フレームタイプを、バックワード参照フレームタイプとして使用する。
【0168】
なお、本願において、S301を先に実行してもS302を先に実行しても、フォワード参照フレームタイプとバックワード参照フレームタイプの選択に影響を及ばなく、よって、いくつかの実施例において、電子機器は、S302を先に実行してから、S301を実行してもよく、又はS301とS302とを同時に実行してもよい。
【0169】
ステップS303において、候補長期参照フレームタイプ内の、選択パラメータがフォワード参照フレームタイプに対応する選択パラメータとバックワード参照フレームタイプに対応する選択パラメータとの合計より小さい候補参照フレームタイプを、長期参照フレームタイプとして使用する。
【0170】
電子機器は、前に選択されたフォワード参照フレームタイプの選択パラメータを候補参照フレームタイプの選択パラメータと加算して、合計結果を取得し、そして、候補長期参照フレームタイプにおける各候補参照フレームタイプの選択パラメータを、合計結果とサイズの比較を実行し、それにより、候補長期参照フレームタイプの選択パラメータが合計結果より小さい候補参照フレームタイプを選択して、長期参照フレームタイプとして使用する。
【0171】
例示的に、フォワード参照フレームタイプの選択パラメータをsad_list0で示し、バックワード参照フレームタイプに対応する選択パラメータをsad_list1で示し、候補長期参照フレームタイプに1つの候補参照フレームタイプGLODEN_FRAMEだけある場合、GLODEN_FRAMEの選択パラメータがsad_list0+sad_list1より小さい場合、GLODEN_FRAMEを長期参照フレームタイプとして使用する。
【0172】
本願実施例において、電子機器は、候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプの最も小さい選択パラメータをそれぞれ見つけ、それにより、フォワード参照フレームタイプとバックワード参照フレームタイプを決定し、その後、フォワード参照フレームタイプの選択パラメータとバックワード参照フレームタイプに対応する選択パラメータとの和に従って、候補長期参照フレームタイプから、長期参照フレームタイプを選択することができ、このようにして、電子機器は、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択することができる。
【0173】
本願のいくつかの実施例において、隣接ブロックの動きベクトルを利用して、全量候補参照フレームタイプ内の各候補参照フレームタイプのために選択パラメータを計算するステップ、即ち、S1032aの具体的な実現過程は、ステップS401~S403を含み得る。
【0174】
ステップS401において、全量候補参照フレームタイプにおける各候補参照フレームタイプを隣接ブロックの動きベクトルにマッチングして、マッチング結果を取得する。
【0175】
ここで、マッチング結果は、各候補参照フレームタイプに、一致する動きベクトルが存在するか否かを表す。
【0176】
隣接ブロックの動きベクトルと隣接ブロックの参照フレームタイプとの間に対応関係が存在し、電子機器は、ある候補参照フレームタイプを判断して、隣接ブロックの参照フレームタイプにマッチングし、それにより、隣接ブロックの参照フレームタイプが当該候補参照フレームタイプと同じであるか否かを判断する。同じである場合、電子機器は、当該候補参照フレームタイプが隣接ブロックの動きベクトルにマッチングすると、即ち、一致する動きベクトルが存在すると見なす。当該過程に従って、電子機器は、隣接ブロックの動きベクトルを各候補参照フレームタイプの下に分割し、それにより、各候補参照フレームタイプのマッチング結果を取得する。
【0177】
説明すべきこととして、マッチングの後、いくつかの候補参照フレームタイプは、一致する動きベクトルを有し、いくつかの候補参照フレームタイプは一致する動きベクトルがない可能性があるため、これらの状況を記録するための1つのマッチング結果を必要とする。
【0178】
ステップS402において、マッチング結果が、各候補参照フレームタイプに、一致する動きベクトルが存在しないことを表す場合、予め設定済みの数値を各候補参照フレームタイプの選択パラメータとして使用する。
【0179】
マッチング結果が、ある候補参照フレームタイプに、一致する動きベクトルが存在しないことを表す場合、電子機器は、当該候補参照フレームタイプの選択パラメータを初期化し、つまり、予め設定済みの数値を各候補参照フレームタイプの選択パラメータとして使用する。
【0180】
理解できることとして、予め設定済みの数値は、INT32_MAX、即ち、32ビットの最大数であってもよいし、50000のバイナリ現表であってもよく、本願はここで限定しない。
【0181】
ステップS403において、マッチング結果が、各候補参照フレームタイプに、一致する動きベクトルが存在することを表す場合、隣接ブロックが隣接ブロックの動きベクトルに基づいて予測するときの予測値と入力値を利用して、各候補参照フレームタイプの選択パラメータを計算する。
【0182】
ある候補参照フレームタイプのマッチング結果が、当該候補参照フレームタイプに、一致動きベクトルが存在することを表す場合、電子機器は、隣接ブロックが隣接ブロックの動きベクトルを利用して予測して得られた予測値、及び隣接ブロック自体の入力値を利用して、各候補参照フレームタイプに対して、選択パラメータを計算する。
【0183】
本願のいくつかの実施例において、一致する動きベクトルは複数があり得、この場合、これらの一致する動きベクトルはすべてサブベクトルと見なすことができ、一致する動きベクトルを1つの総称とすることにより、一致する動きベクトルは複数のサブベクトルを含む。更に、各サブベクトルは1つの予測値に対応し、各サブベクトルに対応する予測値をサブ予測値とし、それにより、予測値は複数のサブ予測値を含み、且つ複数のサブベクトルは複数のサブ予測値と相互に対応する。この場合、隣接ブロックが隣接ブロックの動きベクトルに基づいて予測するときの予測値と入力値を利用して、各候補参照フレームタイプの選択パラメータを計算するステップ、即ち、S403の具体的な実現過程は、ステップS4031~S4033を含み得る。
【0184】
ステップS4031において、複数のサブベクトルにおける各サブベクトルに対応するサブ予測値の画素と、隣接ブロックの入力値の画素との差を計算して、各サブベクトルに対応する画素差分値を取得する。
【0185】
ステップS4032において、各サブベクトルに対応する画素差分値の絶対値を累積して、各サブベクトルに対応する一時選択パラメータを取得する。
【0186】
例示的に、本願実施例は、一時選択パラメータを計算する方式を提供し、式(2)を参照されたい。
【数2】
ここで、(i,j)は、画素であり、(m,n)は、隣接ブロックのサイズであり、dst(i,j)は、候補参照フレームタイプが特定のサブベクトルを利用して予測するときの予測値であり、src(i,j)は、隣接ブロックの入力値であり、sadは、計算された一時選択パラメータである。
【0187】
ステップS4033において、各サブベクトルの一時選択パラメータのうちの最も小さい一時選択パラメータを、各候補参照フレームタイプに対応する選択パラメータとして使用する。
【0188】
電子機器は、各候補参照フレームタイプに対して、各サブベクトルにおける一時選択パラメータから、最も小さい1つの一時選択パラメータを選択し、最も小さい一時選択パラメータを最終的な選択パラメータとして使用し、このようにして、電子機器は、各候補参照フレームタイプの選択パラメータを計算する。
【0189】
本願のいくつかの実施例において、全量候補参照フレームタイプにおける各候補参照フレームタイプを隣接ブロックの動きベクトルにマッチングして、マッチング結果を取得するステップ、即ち、S401の具体的な実現過程は、ステップS4011を含み得る。
【0190】
ステップS4011において、隣接ブロックが利用可能である場合、隣接ブロックの最適予測モードは第2予め設定されたモードであり、隣接ブロックの参照フレームタイプが各候補参照フレームタイプと同じである場合、各参照フレームタイプに、一致する動きベクトルが存在することを決定する。
【0191】
電子機器は、各候補参照フレームタイプを隣接ブロックの動きベクトルにマッチングするとき、まず、隣接ブロックが利用可能であるか否かを判断し、隣接ブロックが利用可能である場合、隣接ブロックの最適予測モードが第2予め設定されたモードであるか否かを判断し、隣接ブロックの参照フレームタイプが各候補参照フレームタイプと同じであるか否かを判断する。隣接ブロックの動きベクトルと隣接ブロックの参照フレームタイプとの間に対応関係が存在するため、電子機器が、各当隣接ブロックの最適予測モードが確かに第2予め設定されたモードであり、隣接ブロックの参照フレームタイプが各候補参照フレームタイプと同じであることを判断した場合、電子機器は、当該隣接ブロックの参照フレームタイプに対応する隣接ブロックの動きベクトルが、各候補参照フレームタイプにマッチングし、よって、各候補参照フレームタイプに、一致する動きベクトルが存在すると見なす。
【0192】
本願実施例において、電子機器は、まず隣接ブロックの動きベクトルを各候補参照フレームタイプにマッチングし、各候補参照フレームタイプに、一致する動きベクトルが存在するか否かに従って、各候補参照フレームタイプのために選択パラメータを計算することができ、このようにして、電子機器は、各候補参照フレームタイプに対応する選択パラメータを取得することができる。
【0193】
本願のいくつかの実施例において、現在予測ブロックのフレームタイプ、隣接ブロック数とサブ予測ブロックの数を利用して、現在予測ブロックに対応する拡張テンプレートを決定するステップ、即ち、S1033の具体的な実現過程は、ステップS1033a~S1033dを含み得る。
【0194】
ステップS1033aにおいて、現在予測ブロックのフレームタイプと予め設定済みのフレームタイプ重みとの対応関係に従って、現在予測ブロックに対応するフレームタイプ重みを決定する。
【0195】
現在予測ブロックが属するビデオフレームは決定されているが、各ビデオフレームのフレームタイプは、予測する前に既に決定されている。異なるフレームタイプの、参照関係は異なるため、重要性も異なる。多いビデオフレームによって参照されるビデオフレームの重要性は、少ないビデオフレームによって参照されるビデオフレームの重要性より高い。電子機器は、現在予測ブロックに対応するビデオフレームフレームタイプに従って、重要性を決定し、そして、重要性に従って対応するフレームタイプ重みを決定することができる。
【0196】
例示的に、
図11は、本願実施例によるIフレーム、Pフレーム、Bフレーム、bフレームと非参照Bフレーム間の参照関係の概略図であり、
図11から分かるように、参照関係に従って、これらのフレームタイプのために決定された重要性順序は:Iフレーム>Pフレーム>Bフレーム>bフレーム>非参照Bフレームである。
【0197】
いくつかの実施例において、重要性は、画面グループ(GOP)の構造にも関係する。
図12は、本願実施例によるGOP16の参照関係の概略図であり、
図12から分かるように、POC16は、POC0を参照し;POC8は、POC0とPOC16を参照し;POC4は、POC0とPOC8を参照し;POC2は、POC0とPOC4を参照し;残りのPOCはいずれも参照されていない。これにより、表2に示す重みレベルを決定することができ、表2を参照されたい。
【表2】
【0198】
よって、GOP16における各ビデオフレームの重みの並べ替えは:POC0>POC16>POC8>POC4>POC2>POC1である。
【0199】
よって、電子機器は、フレームタイプに従ってフレームタイプ重みを選択することができる。
【0200】
ステップS1033bにおいて、フレームタイプ重みに従って、拡張閾値を生成する。
【0201】
電子機器は、一定のビデオフレームを選択し、そして、選択されたビデオフレームのフレームタイプ重みを、拡張閾値として使用することができ、更に、まず、異なるフレームタイプ重みのために異なる閾値パラメータを設定し、そして、選択されたビデオフレームのフレームタイプ重みに対応する閾値パラメータを、拡張閾値として使用することができる。
【0202】
例示的に、本願実施例は、拡張閾値を生成する式を提供し、式(3)を参照されたい。
【数3】
ここで、paramは、閾値パラメータであり、paramの値はカスタマイズすることができ、例えば、param[6]={5、5、5、5、4、4}であり得、thrは、生成された拡張閾値であり、slice_levelは、フレームタイプ重みであり、このように、テーブルを検索方式で、拡張閾値を生成することができる。
【0203】
ステップS1033cにおいて、隣接ブロックの数とサブ予測ブロックの数を加算して、合計結果を取得する。
【0204】
ステップS1033dにおいて、合計結果が拡張閾値以下である場合、少なくとも1つの予め設定された参照フレームタイプを、現在予測ブロックに対応する拡張テンプレートとして使用する。
【0205】
電子機器は、隣接ブロックの数をサブ予測ブロックの数と加算して、合計結果を取得し、そして、合計結果を拡張閾値とサイズの比較を実行する。電子機器が、合計結果が当該拡張閾値以下であることを発見した場合、少なくとも1つの予め設定された参照フレームタイプを取得し、そして、少なくとも1つの予め設定された参照フレームタイプを、拡張テンプレートとして使用する。このようにして、電子機器は、拡張テンプレートの生成過程を完了する。
【0206】
なお、少なくとも1つの予め設定された参照フレームタイプは、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAMEであってもよいし、LAST_FRAME、BWDREF_FRAME、GOLDEN_FRAMEであってもよく、本願はここで限定しない。
【0207】
本願実施例において、電子機器は、まず現在予測ブロックのフレームタイプに従ってフレームタイプ重みを決定し、その後、フレームタイプ重みに従って拡張閾値を生成することにより、隣接ブロックの数とサブ予測ブロックの数との和と、生成された拡張閾値間のサイズ関係に従って、少なくとも1つの予め設定された参照フレームタイプを拡張テンプレートに追加するか否かを選択し、それにより、最終的に生成された参照フレームテンプレートの有効性を保証することができる。
【0208】
以下、本願実施例の実際の適用シナリオにおける例示的な適用について説明する。
【0209】
本願実施例は、エンコーダ(電子機器)がNEWMVモード(予め設定された予測モード)のために参照フレームテンプレートを生成するシナリオで実現される。当該過程の精神は、NEWMVモード予測の前に、NEARSETMV、NEARMVとGLOBAALMVは決定されており、これらのモードの最適参照フレームを継承し、隣接ブロック、予測された異なるCU分割の情報を継承すること;各参照フレーム隣接MVに従って、各MVに対応するSADを計算し、その後、最小SADを当該参照フレームのSADとして使用し、参照フレームを、フォワード参照、バックワード参照と長期参照の3グループに分け、各グループはから、グループ内の最小SADに対応する参照フレームを再グループ化した参照フレームの代表として選択し、NEWMVモードのマスタテンプレートを形成すること;更に、収集された情報と組み合わせて、最終的なNEWMVモードの参照フレームテンプレートを統合することである。
図13は、本願実施例による、NEWMVモードのために参照フレームテンプレートを生成する過程の概略図であり、
図13を参照すると、当該過程は、以下のステップを含み得る。
【0210】
ステップS501において、各参照フレーム(候補参照フレームタイプ)のsad(選択パラメータ)を決定する。
【0211】
ステップS502において、隣接ブロック及び異なるCU分割における(サブ予測ブロックを取得)参照フレーム情報を取得する。
【0212】
ステップS503において、NEWMVモードの参照フレームテンプレートを生成する。
【0213】
ステップS504において、参照フレームテンプレートを適用する。
【0214】
以下、各ステップについて解説する。
【0215】
S501において、エンコーダは、各参照フレームに対応するSADをINT32_MAX(予め設定済みの数値)に初期化し、ここで、INT32_MAXは、32ビットの最大数である。ステップS501は3つの部分に分けられる:
ステップS5011において、隣接ブロック動きベクトル候補リストを取得する。
【0216】
現在ブロック(現在予測ブロック)と隣接ブロックとの位置関係は
図8に示す通りであり得る。電子機器は、各隣接ブロックの位置を順次に判断し、現在の隣接ブロック位置が両可能であり、且つ最適モードがインター予測であり、参照フレームが現在の参照フレーム(各候補参照フレームタイプ)と同じである場合、現在MVを記録する。現在の隣接ブロックの参照フレームの下に複数のMVがあってもよいし、MVが全くなくてもよい(各候補参照フレームタイプのために一致する動きベクトルを決定し、1つの候補参照フレームタイプに一致する動きベクトルは複数のサブベクトルがあり得る)。
【0217】
ステップS5012において、各MV(サブベクトル)に対応するSAD(一時選択パラメータ)を順次に計算する。
【0218】
エンコーダは、式(2)に従ってSADを計算することができる。ここで、各MVにおけるSATDを計算することであってもよい。SATDがより正確であるが、計算の複雑性は比較的に大きい。
【0219】
ステップS5013において、各参照フレームに対応する最小SAD(最も小さい一時選択パラメータ)を選択する。
【0220】
現在参照フレーム下に複数のMVがある可能性があるため、複数のSADを取得し、最も小さいSADを現在の参照フレームのSADとして取り;現在参照フレーム下にMVが全くない可能性があり、この場合、現在参照フレームのSADは、INT32_MAXである(各候補参照フレームタイプに、一致する動きベクトルが存在しない場合、予め設定済みの数値を、各候補参照フレームタイプの選択パラメータとして使用する)。
【0221】
ステップS502は3つの部分に分けられ、それぞれ以下の通りである。
【0222】
ステップS5021において、隣接ブロック参照フレーム情報を取得する。
【0223】
現在ブロックと隣接ブロックとの位置関係は
図8に示すとおりである。隣接ブロックが存在し、且つ最適モードがinterモード(第1予め設定されたモード)である場合、隣接ブロックの参照フレーム情報を記録する(隣接ブロックの参照フレームタイプを取得し、即ち、隣接ブロック情報を取得する)。
【0224】
ステップS5022において、異なるCU分割タイプにおける参照フレーム情報を取得する。
【0225】
現在ブロックのCU分割タイプは10種類あり、その分割は
図9に示すとおりであり、符号化予測過程は、順番に実行されるため、現在の分割タイプ(現在のサブブロック分割タイプ)を実行するとき、他のCU分割タイプ(前のサブブロック分割タイプ)は既に実行された可能性があり、例えば、現在の分割タイプがHORZ_Aである場合、前にNONE分割タイプを実行しており、よって、NONE分割タイプの分割情報は使用できる。
【0226】
決定された各CU分割タイプにおける各サブブロック(サブ予測ブロック)の参照フレーム情報(サブ予測ブロック情報)を取得する。当該過程の判断方法は隣接ブロックと類似し、サブブロック位置が存在し、且つ最適モードがinterモード(第2予め設定されたモード)である場合、各サブブロックの参照フレーム情報を記録する。
【0227】
ステップS5023において、データを整理する。
【0228】
隣接ブロックと異なるCUに従って分割されたインター予測ブロックの数(隣接ブロックの数とサブ予測ブロックの数との合計結果)を統計し、inter_total_numとする。収集された参照フレーム(履歴被選択参照フレームタイプ)及び各参照フレームが選択された数(被選択回数)を統計し、参照フレームを被選択数に従って、大きいものから小さいものへと配列する。
【0229】
S503で生成された参照フレームテンプレートをmask_newmvとし、初期化テンプレート、マスタテンプレートと拡張テンプレートの3つの部分、即ち、mask_newmv=mask_init|mask_main|mask_addによって構成される。
【0230】
ステップS503は、以下のいくつかのステップを含む:
ステップS5031において、初期化テンプレート(初期テンプレート)を生成する。
【0231】
mask_initとし、収集された参照フレーム情報に従って生成されたものである(即ち、隣接ブロックの参照フレームタイプとサブ予測ブロックの参照フレームタイプ)。生成過程は主に、以下のステップを含む。
【0232】
ステップS50311において、隣接ブロックと異なるCU分割タイプにおける参照フレーム情報に従って、現在参照フレームを初期化テンプレートに追加するか否かを決定する。
図14は、初期化テンプレートを生成する過程の概略
図1を提供し、
図14を参照すると、当該過程は、以下のステップを含む。
【0233】
ステップS601において、スタートする。
【0234】
ステップS602において、選択された参照フレーム番号を取得する。
【0235】
ステップS603において、番号が参照フレーム種類の数以下であるか否かを判断する。参照フレーム種類の数とは、収集された参照フレーム情報における参照フレームタイプの種類の数を指す。
【0236】
以下である場合、ステップS604を実行し、そうでない場合、ステップS607を実行する。
【0237】
ステップS604において、被選択数の4倍(拡大された被選択回数)が最大の被選択数(最大の被選択回数)以上であるか否かを判断する。
【0238】
以下である場合、ステップS605を実行し、そうでない場合、ステップS606を実行する。
【0239】
ステップS605において、選択された参照フレームの番号を記録する。
【0240】
ステップS606において、番号に1を自動増加し、再びS602に進む。
【0241】
ステップS607において、終了する。
【0242】
説明すべきこととして、ここでの選択された参照フレームの番号は、参照フレームが被選択数に従って大きいものから小さいものへと配列して決定されたものであり、よって、被選択数が小さいほど、参照価値も小さくなり、すべて初期化テンプレートに追加すると、必要ない参照フレームを増やし、符号化の速度を低下させる。
【0243】
ここまで、ステップS50311の過程を完了し、ステップS50312の過程に進む。
【0244】
ステップS50312において、予測されていたモードの参照フレーム情報に従って、初期化テンプレートを生成する。
【0245】
図15は、初期化テンプレートを生成する過程の概略
図2であり、
図15を参照すると、当該過程は、以下のステップを含む。
【0246】
ステップS701において、スタートする。
【0247】
ステップS702において、NEARESTMVモードの最適参照フレーム(履歴最適参照フレームタイプ)を収集したか否かを判断する。
【0248】
収集した場合、ステップS703を実行し、そうでない場合、ステップS704を実行する。
【0249】
ステップS703において、NEARESTMVモードの最適参照フレームを初期化テンプレートに追加する。
【0250】
ステップS704において、NEARMVモードの最適参照フレーム(履歴最適参照フレームタイプ)を収集したか否かを判断する。
【0251】
収集した場合、ステップS705を実行し、そうでない場合、ステップS706を実行する。
【0252】
ステップS705において、NEARMVモードの最適参照フレームを初期化テンプレートに追加する。
【0253】
ステップS706において、GLOBALMVモードの最適参照フレーム(履歴最適参照フレームタイプ)を収集したか否かを判断する。
【0254】
収集した場合、ステップS707を実行し、そうでない場合、ステップS708を実行する。
【0255】
ステップS707において、GLOBALMVモードの最適参照フレームを初期化テンプレートに追加する。
【0256】
ステップS708において、終了する。
【0257】
ここまで、ステップS50312の過程を完了し、ステップS50313の過程に進む。
【0258】
ステップS50313において、矯正、補完する。
【0259】
ステップS50311とステップS50312の後、mask_initが0である(初期テンプレートがアイドルである)場合があり、この場合、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAME(少なくとも1つの予め設定された参照フレームタイプ)に対応する値を、mask_initに書き込み(例えば、mask_initを、左にLAST_FRAMEビット移動することにより、mask_initにLAST_FRAMEの値を記録することができる)、それにより、これらのフレームを初期化テンプレートに追加することができる。
【0260】
なお、mask_initが0であることは、参照フレーム情報を収集されず、且つ、他の単一参照フレームモードから最適モードを選択していないためである可能性があり、この場合、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAMEに強制的に追加する必要がある。
【0261】
ここまで、初期化テンプレートの生成過程を完了し、ステップS5032、即ち、マスタテンプレートを生成する過程に進む必要がある。
【0262】
ステップS5032において、マスタテンプレートを生成する。
【0263】
mask_mainとし、0に初期化され、SADに従って生成される。
【0264】
表1における7個の参照フレーム(全量候補参照フレームタイプ)を、フォワード参照フレーム、バックワード参照フレームと長期参照フレームの3つのタイプに分け、フォワード参照フレームは、LAST_FRAME、LAST2_FRAME及びLAST3_FRAME(これらが候補フォワード参照フレームタイプである)を含み、バックワード参照フレームは、BWDREF_FRAME、ALTREF2_FRAME及びALTREF_FRAME(これらが候補バックワード参照フレームタイプである)を含み、長期参照フレームは、GOLDEN_FRAME(即ち、候補長期参照フレームタイプである)を含む。そして、各タイプSADの最も小さい参照フレームを見つける。
【0265】
具体的なプロセスは以下の通りである:
Step1:フォワード参照フレーム(フォワード参照フレームタイプ)を見つける。
【0266】
LAST_FRAME、LAST2_FRAMEとLAST3_FRAMEに対応するSADを比較し、最小SADであり且つINT32_MAXではない参照フレームを見つけて、ref_list0とし、フォワード最小SADを記録して、sad_list0とする。
【0267】
Step2:バックワード参照フレーム(バックワード参照フレームタイプ)を見つける。
【0268】
BWDREF_FRAME、ALTREF2_FRAMEとALTREF_FRAMEに対応するSADを比較し、最小SADであり且つINT32_MAXではない参照フレームを見つけて、ref_list1とし、バック最小SADを記録して、sad_list1とする。
【0269】
Step3:長期参照フレーム(長期参照フレームタイプ)を見つける。
【0270】
参照フレームGOLDEN_FRAMEに対応するSADがINT32_MAXではなく、且つsad_list0+sad_list1より小さい場合、長期参照フレームはGOLDEN_FRAMEである。
【0271】
上記の過程において、現在参照フレームに満足するMVがない場合、このような現在参照フレームに対応するSADは、INT32_MAXであり、当該参照フレームは重要ではなく、直接にスキップすることができることを示す。
【0272】
ここまで、マスタテンプレートの生成過程を完了し、ステップS5033、即ち、拡張テンプレートの生成過程に進む必要がある。
【0273】
ステップS5033において、拡張テンプレートを生成する。
【0274】
mask_addとし、0に初期化され、フレームタイプ重みと収集されたinterブロック数に関係がある。
【0275】
まず、現在フレームタイプ重みに従って、閾値thrを生成する。ここで、現在フレームタイプは、予測の前に既に決定されたため、現在フレームタイプ重みも決定されることができ、slice_levelとし、そして、式(3)に従って閾値を生成することができる。
【0276】
inter_total_num<=thrである場合、LAST_FRAME、BWDREF_FRAME、ALTREF_FRAMEの値をmask_addに書き込む(mask_addを左に移動することにより完了する)。
【0277】
ここまで、NEWMVモードの参照フレームテンプレートの生成を完了し、参照フレームテンプレートの適用過程に進む必要がある。
【0278】
ステップS504において、参照フレームテンプレートを適用する。
【0279】
すべての参照フレームを循環し、現在参照フレームが参照フレームテンプレートと一致するか否かを比較し、例えば、参照フレームテンプレートmask_newmvのビットである第1ビットと第4ビットがすべて1であり、現在参照フレームが1又は4であると、現在参照フレームを予測のために使用されることができ、そうでない場合、続けて次の参照フレームを判断する。
図16は、本願実施例によるNEWMVモードの参照フレームテンプレートに適用した過程概略図であり、
図16を参照すると、当該過程は、以下のステップを含み得る。
【0280】
ステップS801において、スタートする。
【0281】
ステップS802において、現在参照フレームの番号を取得する。
【0282】
ステップS803において、現在参照フレームの番号が7以下であるか否かを判断する。
【0283】
以下である場合、ステップS804を実行し、そうでない場合、ステップS807を実行する。
【0284】
ステップS804において、現在参照フレームが参照フレームテンプレートと一致するか否かを判断する。
【0285】
一致する場合、ステップS805を実行し、一致しない場合、ステップS806を実行する。
【0286】
ステップS805において、現在参照フレームを予測する。
【0287】
ステップS806において、現在参照フレームの番号に1を自動増加し、再びS802の過程に進む。
【0288】
ステップS807において、終了する。
【0289】
上記の方式により、エンコーダは新しい計算を導入せず、NEWMVモードの特性を十分に考慮し、収集された情報を直接に利用して参照フレームテンプレートを生成し、関連技術における符号化速度と比較して、65フレームのビデオフレームを符号化する際に、15%という非常に高い高速化率を実現する。更に、取得された参照フレームテンプレートは、高い適応能力を有し、生成過程において、参照フレームを削除する必要がないため、ビットストリームの品質も保証される。
【0290】
以下、続いて本願実施例による、ソフトウェアモジュールとして実施されるインター予測装置455の例示的な構造について説明し、いくつかの実施例において、
図6に示すように、メモリ450に記憶されたインター予測装置455におけるソフトウェアモジュールは、
現在予測ブロックの現在予測モードが予め設定された予測モードである場合、前記現在予測ブロックに対応する履歴予測モードを決定するように構成されるモード決定モジュール4551であって、前記履歴予測モードは、前記予め設定された予測モードの前に予測を完了した予測モードである、モード決定モジュール4551と、
前記現在予測ブロックの隣接ブロックの隣接ブロック情報、サブ予測ブロックのサブ予測ブロック情報、及び前記履歴予測モードにおける前記現在予測ブロックの履歴最適参照フレームタイプを取得するように構成される情報取得モジュール4552であって、前記サブ予測ブロックは、現在のサブブロック分割タイプの前のサブブロック分割タイプを利用して、前記現在予測ブロックをパーティショニングして得られたものである、情報取得モジュール4552と、
前記履歴最適参照フレームタイプ、前記隣接ブロック情報、前記サブ予測ブロック情報、及び前記現在予測ブロックに対応するフレームタイプに基づいて、参照フレームテンプレートを生成するように構成される、テンプレート生成モジュール4553と、
前記参照フレームテンプレートを利用して、前記予め設定された予測モードの参照フレームを決定し、前記参照フレームを利用して、前記現在予測ブロックに対してインター予測を実行して、前記現在予測ブロックに対応する予測値を取得するように構成される、情報予測モジュール4554と、を備える。
【0291】
本願のいくつかの実施例において、前記隣接ブロック情報は、前記隣接ブロックの動きベクトル、前記隣接ブロックの参照フレームタイプ、前記隣接ブロックの数を含み、前記サブ予測ブロック情報は、前記サブ予測ブロックの参照フレームタイプ、前記サブ予測ブロックの数を含む。
【0292】
前記テンプレート生成モジュール4553は更に、前記履歴最適参照フレームタイプ、前記サブ予測ブロックの参照フレームタイプと前記隣接ブロックの参照フレームタイプに基づいて、前記現在予測ブロックに対応する初期テンプレートを決定し;前記隣接ブロックの動きベクトルに従って、前記現在予測ブロックに対応するマスタテンプレートを生成し;前記現在予測ブロックのフレームタイプ、前記隣接ブロックの数と前記サブ予測ブロックの数を利用して、前記現在予測ブロックに対応する拡張テンプレートを決定し;前記初期テンプレート、前記マスタテンプレートと前記拡張テンプレートを利用して、前記現在予測ブロックに対応する前記参照フレームテンプレートを生成するように構成される。
【0293】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記サブ予測ブロックの参照フレームタイプと前記隣接ブロックの参照フレームタイプに従って、第1初期テンプレートを決定し;前記履歴最適参照フレームタイプを、第2初期テンプレートとして使用し;前記第1初期テンプレートと前記第2初期テンプレートを利用して、前記現在予測ブロックに対応する前記初期テンプレートを決定するように構成される。
【0294】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記隣接ブロックの参照フレームタイプと前記サブ予測ブロックの参照フレームタイプを利用して、少なくとも1つの履歴被選択参照フレームタイプを決定し;前記少なくとも1つの履歴被選択参照フレームタイプ内の各履歴被選択参照フレームタイプの被選択回数を統計し;前記被選択回数を利用して、前記各履歴被選択参照フレームタイプから、第1初期テンプレートを選別するように構成される。
【0295】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記各履歴被選択参照フレームタイプの被選択回数から、最大被選択回数を選別し;前記各履歴被選択参照フレームタイプの被選択回数を拡大して、拡大された被選択回数を取得し;前記拡大された被選択回数を前記最大被選択回数と比較して、前記各履歴被選択参照フレームタイプに対応する比較結果を取得し;前記比較結果は、前記拡大された被選択回数が前記最大被選択回数以上であるか否かを表し;前記比較結果が前記拡大された被選択回数が前記最大被選択回数以上であることを表す履歴被選択参照フレームタイプを、前記第1初期テンプレートとして決定するように構成される。
【0296】
本願のいくつかの実施例において、前記初期テンプレートはアイドルであり、前記テンプレート生成モジュール4553は更に、前記初期テンプレートに、少なくとも1つの予め設定された参照フレームタイプを追加して、較正された初期テンプレートを取得するように構成され;
前記テンプレート生成モジュール4553は更に、前記較正された初期テンプレート、前記マスタテンプレートと前記拡張テンプレートを利用して、前記現在予測ブロックに対応する前記参照フレームテンプレートを生成するように構成される。
【0297】
本願のいくつかの実施例において、前記隣接ブロック情報は、前記隣接ブロックの参照フレームタイプを含み、前記サブ予測ブロック情報は、前記サブ予測ブロックの参照フレームタイプを含み、前記テンプレート生成モジュール4553は更に、前記隣接ブロックの最適予測モードを判断して、第1判断結果を取得し、前記サブ予測ブロックの最適予測モードを判断して、第2判断結果を取得し;前記第1判断結果は、前記隣接ブロックの最適予測モードが第1予め設定されたモードであるか否かを表し、前記第2判断結果は、前記サブ予測ブロックの最適予測モードが第2予め設定されたモードであるか否かを表し;前記第1判断結果が、前記隣接ブロックの最適予測モードが前記第1予め設定されたモードであることを表す場合、前記隣接ブロックの参照フレームタイプを取得し;前記第2判断結果が、前記サブ予測ブロックの最適予測モードが前記第2予め設定されたモードであることを表す場合、前記サブ予測ブロックの参照フレームタイプを取得するように構成される。
【0298】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記隣接ブロックの動きベクトルを利用して、全量候補参照フレームタイプ内の各候補参照フレームタイプのために選択パラメータを計算し;前記全量候補参照フレームタイプは、インター予測時の使用可能なすべての候補参照フレームタイプを表し、前記選択パラメータは、前記隣接ブロックの入力値と予測値との差を表し;前記全量候補参照フレームタイプはそれぞれ、候補フォワード参照フレームタイプ、候補バックワード参照フレームタイプと候補長期参照フレームタイプに分割され;前記候補フォワード参照フレームタイプに対応する選択パラメータ、前記候補バックワード参照フレームタイプに対応する選択パラメータ、及び前記候補長期参照フレームタイプに対応する選択パラメータを利用して、フォワード参照フレームタイプ、バックワード参照フレームタイプと長期参照フレームタイプを選択し;前記フォワード参照フレームタイプ、前記バックワード参照フレームタイプと前記長期参照フレームタイプを利用して、前記現在予測ブロックに対応する前記マスタテンプレートを統合するように構成される。
【0299】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記候補フォワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプを、前記フォワード参照フレームタイプとして使用し;前記候補バックワード参照フレームタイプ内の最も小さい選択パラメータを有する候補参照フレームタイプを、前記バックワード参照フレームタイプとして使用し;前記候補長期参照フレームタイプにおける選択パラメータが前記フォワード参照フレームタイプに対応する選択パラメータとバックワード参照フレームタイプに対応する選択パラメータとの合計より小さい候補参照フレームタイプを、前記長期参照フレームタイプとして使用するように構成される。
【0300】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記全量候補参照フレームタイプ内の前記各候補参照フレームタイプを前記隣接ブロックの動きベクトルにマッチングして、マッチング結果を取得し;前記マッチング結果は、前記各候補参照フレームタイプに、一致する動きベクトルが存在するか否かを表し;前記マッチング結果が、前記各候補参照フレームタイプに、一致する動きベクトルが存在しないことを表す場合、予め設定済みの数値を、前記各候補参照フレームタイプの選択パラメータとして使用し;前記マッチング結果が前記各候補参照フレームタイプに、一致する動きベクトルが存在することを表す場合、前記隣接ブロックが前記隣接ブロックの動きベクトルに基づいて予測するときの予測値と入力値を利用して、前記各候補参照フレームタイプの選択パラメータを計算するように構成される。
【0301】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記複数のサブベクトルにおける各サブベクトルに対応するサブ予測値の画素と、前記隣接ブロックの入力値の画素との差を計算して、前記各サブベクトルに対応する画素差分値を取得し;前記各サブベクトルに対応する画素差分値の絶対値を累積して、前記各サブベクトルに対応する一時選択パラメータを取得し;前記各サブベクトルの一時選択パラメータのうちの最も小さい一時選択パラメータを、前記各候補参照フレームタイプに対応する選択パラメータとして使用するように構成される。
【0302】
本願のいくつかの実施例において、前記テンプレート生成モジュール4553は更に、前記現在予測ブロックのフレームタイプと予め設定済みのフレームタイプ重みとの対応関係に従って、前記現在予測ブロックに対応するフレームタイプ重みを決定し;前記フレームタイプ重みに従って、拡張閾値を生成し;前記隣接ブロックの数と前記サブ予測ブロックの数を加算して、合計結果を取得し;前記合計結果が前記拡張閾値以下である場合、少なくとも1つの予め設定された参照フレームタイプを、前記現在予測ブロックに対応する拡張テンプレートとして使用するように構成される。
【0303】
など、本願実施例によるインター予測装置の説明は、本願実施例によるインター予測方法の説明と類似し、類似する有益な効果を有する。
【0304】
本願実施例は、コンピュータ可読記憶媒体に記憶されたコンピュータ命令を含む、コンピュータプログラム製品又はコンピュータプログラムを提供する。コンピュータ機器(インター予測のための電子機器)のプロセッサは、コンピュータ可読記憶媒体から当該コンピュータ命令を読み取り、プロセッサが当該コンピュータ命令を実行して、当該コンピュータ機器を本願実施例に記載のインター予測方法を実行させる。
【0305】
本願実施例は、実行可能な命令が記憶されたコンピュータ可読記憶媒体を提供し、実行可能な命令がプロセッサによって実行されるとき、プロセッサを本願実施例によるインター予測方法、例えば、
図7に示す方法を実行させる。
【0306】
いくつかの実施例において、コンピュータ可読記憶媒体は、FRAM、ROM、PROM、EPROM、EEPROM、フラッシュメモリ、磁気表面メモリ、光ディスク、又はCD-ROMなどのメモリであってもよいし、上記のメモリのうちの1つを含むか、任意に組み合わされた様々な機器であってもよい。
【0307】
いくつかの実施例において、実行可能な命令は、プログラム、ソフトウェア、ソフトウェアモジュール、脚本又はコードの形を採用し、任意の形のプログラミング言語(コンパイル又は解析された言語、あるいは宣言型言語又は手続き型言語を含む)で記述され、独立したプログラムとして展開されるか又はモジュール、コンポーネント、サブルーチン又はコンピューティング環境での使用に適した他のユニットとして展開されるなど、任意の形で展開されてもよい。
【0308】
一例として、実行可能な命令は、ファイルシステム内のファイルに対応してもよいが必ずしもそうではなく、他のプログラム又はデータを保存するファイルの一部に記憶されることができ、例えば、ハイパーテキストマークアップ言語(HTML:Hyper Text Markup Language)文書内の1つ又は複数の脚本に記憶され、議論中のプログラムの単一のファイルに記憶されるか、又は、複数の共同ファイル(例えば、1つ又は複数のモジュール、サブプログラム又はコード部分を記憶するファイル)に記憶されてもよい。
【0309】
一例として、実行可能な命令は、1つのコンピュータ機器で実行されるように展開されてもよいし、又は同じ場所にある複数のコンピュータ機器で実行されるように展開されてもよいし、又は、複数の場所に分散し且つ通信ネットワークによって相互接続された複数のコンピュータ機器で実行されるように展開されてもよい。
【0310】
上記は、本願実施例に過ぎず、本願の保護範囲を限定することを意図するものではない。本願の精神及び範囲内で行われるあらゆる修正、同等の置換、改善などは、すべて本願の保護範囲に含まれる。