(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-06-17
(45)【発行日】2024-06-25
(54)【発明の名称】復号化方法、復号化側機器、ビデオ復号化側機器、電子機器及びコンピューター可読記憶媒体
(51)【国際特許分類】
H04N 19/513 20140101AFI20240618BHJP
H04N 19/577 20140101ALI20240618BHJP
【FI】
H04N19/513
H04N19/577
(21)【出願番号】P 2023132535
(22)【出願日】2023-08-16
(62)【分割の表示】P 2021570237の分割
【原出願日】2020-06-17
【審査請求日】2023-08-16
(31)【優先権主張番号】201910544562.5
(32)【優先日】2019-06-21
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】519061479
【氏名又は名称】杭州海康威視数字技術股▲ふん▼有限公司
【氏名又は名称原語表記】Hangzhou Hikvision Digital Technology Co.,Ltd.
【住所又は居所原語表記】No.555 Qianmo Road,Binjiang District,Hangzhou,Zhejiang 310051,China
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】陳方棟
【審査官】岩井 健二
(56)【参考文献】
【文献】CHEN, Jianle et.al.,Algorithm description for Versatile Video Coding and Test Model 5 (VTM 5),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Gene,JVET-N1002 (version 2),ITU-T,2019年06月11日,<URL:http://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N1002-v2.zip>: JVET-N1002-
【文献】CHEN, Chun-Chia et al.,CE4-related: Reduction of interactions between bi-prediction coding tools,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Gene,JVET-N0086 (version 3),ITU-T,2019年03月19日,<URL:http://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0086-v3.zip>: JVET-N0086-
【文献】CHEN, Fangdong and WANG, Li,Non-CE9: Modified enabling condition for DMVR and BDOF,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 14th Meeting: Gene,JVET-N0162 (version 2),ITU-T,2019年03月19日,<URL:http://jvet-experts.org/doc_end_user/documents/14_Geneva/wg11/JVET-N0162-v2.zip>: JVET-N0162-
【文献】XIU, Xiaoyu et al.,Description of SDR, HDR, and 360° video coding technology proposal by InterDigital Communications a,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 10th Meeting: San,JVET-J0015 (version 3),ITU-T,2018年04月14日,<URL:http://jvet-experts.org/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0015-v3.zip>: JVET-J
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
復号化方法であって、
現在ブロックに対して双方向オプティカルフローモードを採用することを確定すると、前記現在ブロックに対して双方向オプティカルフローモードに基づく動き補償を行い、そのうち、前記現在ブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことは、
前記現在ブロックから区画されたいずれかのサブブロックに対して、前記サブブロックのSADの値と一つの閾値との関係によって、前記サブブロックが双方向オプティカルフローモードから脱退するか否かを判断し、前記サブブロックのSADの値が前記閾値未満の場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことから脱退し、前記サブブロックのSADの値が前記閾値以上である場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことを含み、
前記サブブロックのSADの値は、第1予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値と、第2予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値との差分絶対値和であり、
前記第1予測ブロックは、前記現在ブロックの第1動きベクトルによって、第1参照フレームから取得した前記サブブロックに対応する予測ブロックであり、前記第2予測ブロックは、前記現在ブロックの第2動きベクトルによって、第2参照フレームから取得した前記サブブロックに対応する予測ブロックであり、
前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことは、
前記サブブロックの各サブブロックに対して、前記サブブロックの第1初期予測値と第2初期予測値を確定することと、前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの水平方向速度を確定することと、前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの垂直方向速度を確定することと、前記水平方向速度と前記垂直方向速度とによって前記サブブロックの予測補償値を取得することと、前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって前記サブブロックの目標予測値を取得することと、前記サブブロックの各サブブロックの目標予測値に基づいて、前記サブブロックの目標予測値を確定することと、を含み、
前記復号化方法は、前記現在ブロックから区画された各サブブロックの目標予測値に基づいて前記現在ブロックの予測値を確定することを更に含む、
ことを特徴とする復号化方法。
【請求項2】
請求項1に記載の復号化方法において、
現在ブロックに対して双方向オプティカルフローモードを採用する場合、現在ブロックが同時に満たす条件は、
現在ブロックがサブブロック動き情報モードを採用していなく、且つ現在ブロックがCIIPモードを採用していなく、且つ現在ブロックがSMVDモードを採用していないことと、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームが異なる方向からのものであり、且つ現在ブロックに対応する2つの参照フレームのそれぞれと現在フレームとの距離が同じであることと、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの重みが同じであることと、
現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることと、を含む、
ことを特徴とする復号化方法。
【請求項3】
請求項2に記載の復号化方法において、
前記現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることは、
現在ブロックの幅の値が8以上であり、現在ブロックの高さの値が8以上であり、現在ブロックの幅と高さとの積が128以上であることを含む、
ことを特徴とする復号化方法。
【請求項4】
復号化側機器であって、
現在ブロックに対して双方向オプティカルフローモードを採用するかどうかを確定し、 現在ブロックに対して双方向オプティカルフローモードを採用する場合、現在ブロックから区画されたいずれかのサブブロックに対し、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うと、前記サブブロックの各サブブロックに対して、前記サブブロックの第1初期予測値と第2初期予測値を確定するための第1確定モジュールと、
前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの水平方向速度を確定し、前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの垂直方向速度を確定するための第2確定モジュールと、
前記水平方向速度と前記垂直方向速度とによって前記サブブロックの予測補償値を取得するための第1取得モジュールと、
前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって前記サブブロックの目標予測値を取得し、前記サブブロックの各サブブロックの目標予測値に基づいて前記サブブロックの目標予測値を確定し、前記現在ブロックから区画された各サブブロックの目標予測値に基づいて前記現在ブロックの予測値を確定するための第2取得モジュールと、を含み、
現在ブロックに対して双方向オプティカルフローモード採用する場合、前記現在ブロックから区画されたいずれかのサブブロックに対して、前記サブブロックのSADの値と一つの閾値との関係によって、前記サブブロックが双方向オプティカルフローモードから脱退するか否かを判断し、前記サブブロックのSADの値が前記閾値未満の場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことから脱退し、前記サブブロックのSADの値が前記閾値以上である場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことを含み、
前記サブブロックのSADの値は、第1予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値と、第2予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値との差分絶対値和であり、
前記第1予測ブロックは、前記現在ブロックの第1動きベクトルによって、第1参照フレームから取得した前記サブブロックに対応する予測ブロックであり、前記第2予測ブロックは、前記現在ブロックの第2動きベクトルによって、第2参照フレームから取得した前記サブブロックに対応する予測ブロックである、
ことを特徴とする復号化側機器。
【請求項5】
請求項4に記載の復号化側機器において、
現在ブロックに対して双方向オプティカルフローモードを採用する場合、現在ブロックが同時に満たす条件は、
現在ブロックがサブブロック動き情報モードを採用していなく、且つ現在ブロックがCIIPモードを採用していなく、且つ現在ブロックがSMVDモードを採用していないことと、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームが異なる方向からものであり、且つ現在ブロックに対応する2つの参照フレームのそれぞれと現在フレームとの距離が同じであることと、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの重みが同じであることと、
現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることと、を含む、
ことを特徴とする復号化側機器。
【請求項6】
請求項5に記載の復号化側機器において、
前記現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることは、
現在ブロックの幅の値が8以上であり、現在ブロックの高さの値が8以上であり、現在ブロックの幅と高さとの積が128以上であることを含む、
ことを特徴とする復号化側機器。
【請求項7】
プロセッサと、前記プロセッサによって実行可能なコンピューター実行可能コマンドを記憶しているコンピューター可読記憶媒体とを含むビデオ復号化側機器であって、
前記プロセッサは、コンピューター実行可能コマンドを実行することにより、
現在ブロックに対して双方向オプティカルフローモードを採用することを確定すると、前記現在ブロックに対して双方向オプティカルフローモードに基づく動き補償を行い、そのうち、前記現在ブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことは、前記現在ブロックから区画されたいずれかのサブブロックに対して、前記サブブロックのSADの値と一つの閾値との関係によって、前記サブブロックが双方向オプティカルフローモードから脱退するか否かを判断し、前記サブブロックのSADの値が前記閾値未満の場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことから脱退し、前記サブブロックのSADの値が前記閾値以上である場合、前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことを含み、前記サブブロックのSADの値は、第1予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値と、第2予測ブロックに対する垂直2倍のダウンサンプリングを行った後の予測値との差分絶対値和であり、前記第1予測ブロックは、前記現在ブロックの第1動きベクトルによって、第1参照フレームから取得した前記サブブロックに対応する予測ブロックであり、前記第2予測ブロックは、前記現在ブロックの第2動きベクトルによって、第2参照フレームから取得した前記サブブロックに対応する予測ブロックであるステップと、
前記サブブロックに対して双方向オプティカルフローモードに基づく動き補償を行うことは、前記サブブロックの各サブブロックに対して、前記サブブロックの第1初期予測値と第2初期予測値を確定することと、前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの水平方向速度を確定することと、前記第1初期予測値と前記第2初期予測値とによって前記サブブロックの垂直方向速度を確定することと、前記水平方向速度と前記垂直方向速度とによって前記サブブロックの予測補償値を取得することと、前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって前記サブブロックの目標予測値を取得することと、前記サブブロックの各サブブロックの目標予測値に基づいて、前記サブブロックの目標予測値を確定することと、を含むステップと、
前記現在ブロックから区画された各サブブロックの目標予測値に基づいて前記現在ブロックの予測値を確定するステップと、
を実行するように構成される、
ことを特徴とするビデオ復号化側機器。
【請求項8】
請求項7に記載のビデオ復号化側機器において、
現在ブロックに対して双方向オプティカルフローモードを採用する場合、現在ブロックが同時に満たす条件は、現在ブロックがサブブロック動き情報モードを採用していなく、且つ現在ブロックがCIIPモードを採用していなく、且つ現在ブロックがSMVDモードを採用していないことと、現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームが異なる方向からのものであり、且つ現在ブロックに対応する2つの参照フレームのそれぞれと現在フレームとの距離が同じであることと、現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの重みが同じであることと、現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることと、を含む、
ことを特徴とするビデオ復号化側機器。
【請求項9】
請求項8に記載のビデオ復号化側機器において、
前記現在ブロックの幅の値と、高さの値と、面積の値との何れも限定された範囲内にあることは、
現在ブロックの幅の値が8以上であり、現在ブロックの高さの値が8以上であり、現在ブロックの幅と高さとの積が128以上であることを含む、
ことを特徴とするビデオ復号化側機器。
【請求項10】
プロセッサと、プロセッサによって実行可能なコマンドを記憶するためのメモリと、を含む電子機器であって、
前記プロセッサは、請求項1から請求項3のいずれか1項に記載の復号化方法のステップを実行するように構成される、
ことを特徴とする電子機器。
【請求項11】
コマンドを記憶しているコンピューター可読記憶媒体であって、
前記コマンドがプロセッサによって実行されると、請求項1から請求項3のいずれか1項に記載の復号化方法のステップを実行する、
ことを特徴とするコンピューター可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本願はコーデック技術の分野に関し、特にコーデック方法、デバイス及びその機器に関する。
【背景技術】
【0002】
スペースを節約するために、ビデオ画像は符号化されてから伝送される。完全な映像符号化方法は予測と、変換と、量子化と、エントロピー符号化と、フィルタリング等のプロセスを含む。その中、予測符号化はフレーム内符号化とフレーム間符号化を含む。フレーム間符号化は、ビデオ時間領域の相関により、近接する符号化済みの画像の画素を使用して現在画像の画素を予測することで、ビデオ時間領域の冗長性を効率的に除去する目的を達成することである。
【0003】
フレーム間符号化では、現在フレームのビデオ画像の現在ブロックと参照フレームのビデオ画像の参照ブロックとの間の相対変位を動きベクトル(Motion Vector,MV)で表す。例えば、現在フレームのビデオ画像Aと参照フレームのビデオ画像Bには時間領域の相関が強い。ビデオ画像Aの画像ブロックA1(現在ブロック)を伝送する必要がある時、ビデオ画像Bにおいて動き探索を行い、画像ブロックA1に最も適合する画像ブロックB1(即ち参照ブロック)を探し出し、画像ブロックA1と画像ブロックB1との間の相対変位を確定することができる。つまり、当該相対変位は画像ブロックA1の動きベクトルである。
【0004】
符号化側では、動きベクトルを復号化側に送信するが、画像ブロックA1を復号化側に送信することではない。復号化側では、動きベクトルと画像ブロックB1によって画像ブロックA1を取得する。動きベクトルが占めるビット数は画像ブロックA1が占めるビット数よりはるかに少ないことは、明らかであるので、上記の形態は使用されるビットを大幅に減ずることができる。
【0005】
伝統的な方式において、現在ブロックが単方向ブロックであると、現在ブロックの動き情報を取得した後、当該動き情報によって符号化/復号を行うことにより、符号化性能を向上させる。しかし、現在ブロックが双方向ブロックであると、現在ブロックの双方向動き情報を取得した後、双方向動き情報によって2つの異なる方向の予測画像を取得するが、これら2つの異なる方向の予測画像は、通常、鏡面対称関係がある。従来の符号化フレームワークにおいて、冗長性を更に除去するように、この特性を十分に利用していない。つまり、双方向ブロックの適用シナリオに対して、現在、符号化性能の悪いなどの問題がある。
【発明の概要】
【発明が解決しようとする課題】
【0006】
本願はコーデック方法、デバイス及びその機器を提供し、符号化性能を向上することができる。
【課題を解決するための手段】
【0007】
本願は、コーデック方法を提供し、前記方法は、現在ブロックの特徴情報が特定条件を満たす場合、以下のステップを実行して前記現在ブロックまたは前記現在ブロックのサブブロックの目標予測値を取得することを含み、
前記ステップは、
前記現在ブロックの第1単方向動き情報によって第1初期予測値を確定し、前記現在ブ
ロックの第2単方向動き情報によって第2初期予測値を確定し、前記第1初期予測値と前記第2初期予測値とによって水平方向速度を確定することと、前記第1初期予測値と前記第2初期予測値とによって垂直方向速度を確定することと、
前記水平方向速度と前記垂直方向速度とによって予測補償値を取得することと、
前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって目標予測値を取得することと、を含む。
【0008】
本願は、現在ブロックの特徴情報が特定条件を満たす場合、前記現在ブロックまたは前記現在ブロックのサブブロックの目標予測値を取得するためのコーデックデバイスを提供し、前記コーデックデバイスは、
現在ブロックの特徴情報が特定条件を満たす場合、前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定するための第1確定モジュールと、
前記第1初期予測値と前記第2初期予測値とによって水平方向速度を確定し、前記第1初期予測値と前記第2初期予測値とによって垂直方向速度を確定するための第2確定モジュールと、
前記水平方向速度と前記垂直方向速度とによって予測補償値を取得するための第1取得モジュールと、
前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって目標予測値を取得するための第2取得モジュールと
を含む。
【0009】
本願は、符号化側機器を提供し、前記符号化側機器は、プロセッサとコンピューター可読記憶媒体とを含み、前記コンピューター可読記憶媒体に、前記プロセッサによって実行されるコンピューター実行可能命令を記憶しており、前記プロセッサは、現在ブロックの特徴情報が特定条件を満たす場合、以下のステップを実行して前記現在ブロック或いは前記現在ブロックのサブブロックの目標予測値を取得することを実現するように、コンピューター実行可能命令を実行し、前記ステップは、前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定することと、前記第1初期予測値と前記第2初期予測値とによって水平方向速度を確定することと、前記第1初期予測値と前記第2初期予測値とによって垂直方向速度を確定することと、前記水平方向速度と前記垂直方向速度とによって予測補償値を取得することと、前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって目標予測値を取得することと、を含む。
【0010】
本願は、復号化側機器を提供し、前記復号化側機器は、プロセッサとコンピューター可読記憶媒体とを含み、前記コンピューター可読記憶媒体に前記プロセッサによって実行されるコンピューター実行可能命令を記憶しており、前記プロセッサは、現在ブロックの特徴情報が特定条件を満たす場合、以下のステップを実行して前記現在ブロック或いは前記現在ブロックのサブブロックの目標予測値を取得することを実現するように、コンピューター実行可能命令を実行するために用いられ、前記ステップは、前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定することと、前記第1初期予測値と前記第2初期予測値とによって水平方向速度を確定することと、前記第1初期予測値と前記第2初期予測値とによって垂直方向速度を確定することと、前記水平方向速度と前記垂直方向速度とによって予測補償値を取得することと、前記第1初期予測値と、前記第2初期予測値と前記予測補償値とによって目標予測値を取得することと、を含む。
【発明の効果】
【0011】
以上の技術案から分かるように、本願実施例において、現在ブロックの第1単方向動き
情報によって第1初期予測値を確定し、現在ブロックの第2単方向動き情報によって第2初期予測値を確定し、第1初期予測値と第2初期予測値とによって水平方向速度と垂直方向速度を確定し、水平方向速度と垂直方向速度とによって予測補償値を取得し、予測補償値によって目標予測値を取得する。上記方式は、オプティカルフロー法に基づいて現在ブロック或いは現在ブロックのサブブロックの目標予測値を取得することができ、ハードウェア実装の利便性を向上させ、符号化性能を向上させる。
【図面の簡単な説明】
【0012】
以下、本願実施例の技術案をより明確に説明するために、本願実施例の説明に使用される図面を簡単に説明する。以下に説明される図面が、本願に記載される一部の実施例によるものにすぎず、当業者にとって、本願実施例のこれらの図面により他の図面を取得することができるのは、明らかである。
【0013】
【
図1A】
図1Aは、本願の一実施形態における補間の模式図である。
【
図1B】
図1Bは、本願の一実施形態における映像符号化フレームワークの模式図である。
【
図2】
図2は、本願の一実施形態におけるコーデック方法のフローチャートである。
【
図3】
図3は、本願の一実施形態におけるコーデック方法のフローチャートである。
【
図4】
図4は、本願の一実施形態における現在ブロックのサブブロックに対応する参照ブロックの模式図である。
【
図5】
図5は、本願の一実施形態におけるコーデックデバイスの構成図である。
【
図6】
図6は、本願の一実施形態における復号化側機器のハードウェア構成図である。
【
図7】
図7は、本願の一実施形態における符号化側機器のハードウェア構成図である。
【発明を実施するための形態】
【0014】
本願実施例に使用される用語は、本願を制限するものではなく、ただ特定の実施例を説明するためのものだけである。本願実施例及び請求の範囲に使用された単数形の「1種」や「前記」や「当該」という用語は、文脈で他の意味を明確に示さない限り、複数形を更に含むことも意図する。また、本明細書に使用される「及び/または」という用語は、1つまたは複数の関連する項目を含む任意またはすべての可能な組み合わせを含むことを指すことも理解されるべきである。本願の実施例において、「第1」、「第2」、「第3」などの用語を使用して様々な情報を説明し得るが、これらの情報はこれらの用語に限定されるべきではなく、これらの用語は、同じ種類の情報を互いに区別するためのものだけであると理解されるべきである。例えば、本願の範囲から逸脱しない場合、第1情報は第2情報とも呼ばれる。同様に、第2情報は第1情報とも呼ばれる。また、使用される「~ば」という用語は、「…時に」または「…場合」または「…を確定することに応答する」と解釈されるが、文脈に応じて決められる。
【0015】
本願実施例に提供されるコーデック方法、デバイス及びその機器は、以下の概念に関連する。
イントラ予測とインター予測(intra prediction and inter prediction)技術に関して、
イントラ予測とは、ビデオ空間領域の相関により、現在画像の符号化済みのブロックの画素を使用して現在の画素を予測することによって、ビデオ空間領域の冗長性を除去する目的を達成することを指す。インター予測とは、ビデオシーケンスに強い時間領域相関を含むため、ビデオ時間領域の相関により、近接する符号化済みの画像の画素を使用して現在画像の画素を予測することによって、ビデオ時間領域の冗長性を効率的に除去する目的を達成することを指す。映像符号化規格のインター予測の部分は基本的にブロックに基づく動き補償技術を採用する。その原理は、現在画像の各画素ブロックに対して、符号化済みの画像から最もマッチングするブロックを検索することである。このプロセスは動き推定(Motion Estimation,ME)と呼ばれる。
【0016】
動きベクトル(Motion Vector,MV)に関して、フレーム間符号化において、動きベクトルを使用して現在符号化ブロックとその参照画像における最もマッチングするブロックとの間の相対変位を表す。区画された各ブロックは、その対応する動きベクトルが復号化側に伝送される必要がある。各ブロックの動きベクトルに対して個別に符号化及び伝送を行う場合、特に小さなブロックに区画される場合、かなり多くのビット数が必要になる。動きベクトルを符号化するためのビット数を減らすために、隣接する画像ブロック間の空間的相関を利用して、隣接する符号化済みのブロックの動きベクトルによって、現在符号化対象ブロックの動きベクトルを予測し、そして、予測値の差分を符号化する。これにより、動きベクトルを表すビット数を効率的に減らすことができる。現在ブロックの動きベクトルを符号化するプロセスにおいて、まず、隣接する符号化済みのブロックの動きベクトルを使用して、現在ブロックの動きベクトルを予測し、そして、動きベクトルの予測値(MVP,Motion Vector Prediction)と動きベクトルの推定値との間の差分(MVD,Motion Vector Difference)を符号化することにより、MVの符号化ビット数を効率的に減らすことができる。
【0017】
動き情報(Motion Information)に関して、動きベクトルにより現在画像ブロックとある参照画像ブロックとの位置ズレを表すので、画像ブロックを指す情報を正確に取得するように、動きベクトルに加えて、どの参照フレーム画像を使用するかを示すための参照フレーム画像のインデックス情報も必要である。映像符号化技術において、通常、現在フレーム画像に対して1つの参照フレーム画像リストを作成する。参照フレーム画像のインデックス情報は、参照フレーム画像リストにおけるどの参照フレーム画像が現在の画像ブロックによって使用されるかを示す。また、多くの符号化技術では、複数の参照画像リストもサポートするため、1つのインデックス値により、どの参照画像リストを使用するかを示してもよい。このインデックス値は参照方向と呼ばれてもよい。映像符号化技術では、動きベクトルや、参照フレームのインデックスや、参照方向等の動きに関する情報を纏めて動き情報と呼ぶ。
【0018】
【0019】
動き補償に関して、動き補償のプロセスは、補間またはコピーにより現在ブロックの全ての予測画素値を取得することである。
【0020】
映像符号化フレームワークに関して、
図1Bに示すように、映像符号化フレームワークを使用して本願実施例の符号化側処理フローを実現できる。また、映像復号化フレームワークの模式図は
図1Bと類似しているため、ここでその説明を省略する。そして、映像復号化フレームワークを使用して本願実施例の復号化側処理フローを実現できる。具体的には、映像符号化フレームワークと映像復号化フレームワークにおいて、イントラ予測と、動き推定/動き補償と、参照画像バッファと、インループフィルタリングと、再構成と、変換と、量子化と、逆変換と、逆量子化と、エントロピー符号化デバイス等のモジュールを含む。符号化側では、これらのモジュールの協力により、符号化側処理フローを実現することができる一方、復号化側では、これらのモジュールの協力により、復号化側処理フローを実現することができる。
【0021】
伝統的な方式において、現在ブロックが双方向ブロック(即ち現在ブロックが双方向予測を採用するブロック)である場合、2つの異なる方向の予測画像には通常、鏡面対称の関係がある。従来の符号化フレームワークにおいて、冗長性を更に除去するように、この特性を十分に利用していない。そのため、符号化性能の悪い等の問題がある。上記の知見に対して、本願実施例において、現在ブロックが双方向ブロックであると、オプティカルフロー法に基づく予測信号調整方式を提案する。この予測信号調整方式は、初期動き情報に基づいて初期予測値を取得し、初期予測値に基づいて、オプティカルフロー方程式により現在ブロックの予測補償値を取得し、当該予測補償値と初期予測値とに基づいて現在ブロックの目標予測値を取得することができる。上記の方式は、オプティカルフロー法により現在ブロックの目標予測値を取得できる。これにより、ハードウェア実装の利便性を向上させ、符号化性能を向上させ、即ち符号化性能と符号化效率を向上させることができる。
【0022】
以下、いくつかの具体的な実施例を参照して、本願実施例のコーデック方法を詳しく説明する。
【0023】
(実施例1)
図2を参照すると、
図2は、コーデック方法のフロー模式図である。当該方法は復号化側または符号化側に適用される。当該方法は以下のステップを実行することにより現在ブロックまたは現在ブロックのサブブロックの目標予測値を取得する。現在ブロックに対して以下のステップを実行する場合、現在ブロックの目標予測値を取得する。現在ブロックが少なくとも1つのサブブロックに区画され、且つ現在ブロックの各サブブロックに対して以下のステップを実行する場合、現在ブロックのサブブロックの目標予測値を取得する。当該方法は以下のステップを含む。
【0024】
ステップ201では、現在ブロックの特徴情報が特定の条件を満たす場合、現在ブロックの第1単方向動き情報によって、第1初期予測値を確定し、現在ブロックの第2の単方向動き情報によって第2初期予測値を確定する。
【0025】
例示として、現在ブロックが双方向ブロック(即ち現在ブロックが両方向予測を採用するブロックである)でよい。つまり、現在ブロックに対応する動き情報は双方向動き情報であり、且つこの双方向動き情報は2つの異なる方向の動き情報を含む。この2つの異なる方向の動き情報は第1単方向動き情報と第2の単方向動き情報と呼ばれる。第1単方向動き情報は第1参照フレームに対応し、且つ当該第1参照フレームは、現在ブロックが所属する現在フレームの前に位置する。第2の単方向動き情報は第2参照フレームに対応し、且つ当該第2の参照フレームは、現在ブロックが所属する現在フレームの後ろに位置する。
【0026】
例示として、特徴情報は、動き情報属性、予測モード属性、サイズ情報、及びシーケン
スレベルスイッチ制御情報のうちの1つまたは複数を含むが、これに限定されない。勿論、上記のものはただいくつかの例示だけであり、これらに限定されない。
【0027】
特徴情報が動き情報属性を含み、且つ動き情報属性が以下の状況の少なくとも1つを満たす場合、動き情報属性が特定条件を満たすことを確定する。1、現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームが異なる方向にある;2、現在ブロックは複数のサブブロックを含み、複数のサブブロックの動き情報は何れも同じである;3、現在ブロックは双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの重みは同じである;4、現在ブロックは双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームと現在フレームとの距離が同じである;5、現在ブロックは双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの予測値の差分値は予めに設定した閾値より小さい。勿論、上記の状況はただいくつかの例示だけであり、これらに限定されない。
【0028】
状況5に対して、現在ブロックに対応する2つの参照フレームの予測値の差分値を取得する必要もある。当該差分値を取得するために、以下の方式を採用できる。現在ブロックの第1単方向動き情報によって、第1参照フレームから第1予測ブロックを取得するとともに、現在ブロックの第2単方向動き情報によって、第2参照フレームから第2予測ブロックを取得する;第1予測ブロックのダウンサンプリングされた後の予測値と第2予測ブロックのダウンサンプリングされた後の予測値のSADに基づいて、第1参照フレームと第2参照フレームの予測値の差分値を取得する。或いは、現在ブロックの第1単方向動き情報によって第1参照フレームから第1予測ブロックを取得するとともに、現在ブロックの第2単方向動き情報によって第2参照フレームから第2予測ブロックを取得する;第1予測ブロックの予測値と第2予測ブロックの予測値のSADに基づいて、第1参照フレームと第2参照フレームの予測値の差分値を取得する。
【0029】
特徴情報が予測モード属性を含み、且つ予測モード属性が、イントラ予測とインター予測との組合せに基づくマージモード、及び/または対称動きベクトル差分モードを採用しないことである場合、予測モード属性が特定条件を満たすことを確定する。
【0030】
特徴情報がシーケンスレベルスイッチ制御情報を含み、且つ当該シーケンスレベルスイッチ制御情報は、現在ブロックが双方向オプティカルフローモードを採用することを許可するものである場合、シーケンスレベルスイッチ制御情報が特定条件を満たすことを確定する。
【0031】
特徴情報がサイズ情報を含み、且つサイズ情報が幅の値、高さの値および面積の値のうちの少なくとも1つを含み、当該サイズ情報における幅の値、高さの値および面積の値のうちの少なくとも1つが対応する閾値条件を満たす場合、サイズ情報が特定条件を満たす。例示として、サイズ情報が以下の状況の少なくとも1つを満たす場合、サイズ情報が特定条件を満たすことを確定する。現在ブロックの幅の値が第1閾値以上であり、現在ブロックの幅の値が第2閾値以下である;現在ブロックの高さの値が第3閾値以上であり、現在ブロックの高さの値が第4閾値以下である;現在ブロックの面積の値が第5閾値以上であり、現在ブロックの面積の値が第6閾値以下である。勿論、上記の状況はただいくつかの例示だけであり、これらに限定されない。
【0032】
例示として、第1閾値が第2閾値より小さくてもよく、第1閾値と第2閾値とが何れも2の正の整数乗であるが、第1閾値と第2閾値について制限されない。例えば、第1閾値は8であり、第2閾値は128である。第3閾値が第4閾値より小さくてもよく、第3閾値と第4閾値とも何れも2の正の整数乗であるが、第3閾値と第4閾値について制限されない。例えば、第3閾値は8であり、第4閾値は128である。第5閾値が第6閾値より
小さくてもよく、第5閾値と第6閾値も何れも2の正の整数乗であるが、第5閾値と第6閾値について制限されない。例えば、第5閾値は64(即ち8*8)であり、第6閾値は16384(即ち128*128)である。勿論、上記閾値はただの例示だけであり、これらの閾値に制限されない。
【0033】
例示として、特徴情報は、動き情報属性、予測モード属性、サイズ情報、及びシーケンスレベルスイッチ制御情報のうちの1つまたは複数を含む。特徴情報が動き情報属性を含む場合、動き情報属性が特定条件を満たすと、特徴情報が特定条件を満たすことを示す;特徴情報が予測モード属性を含む場合、予測モード属性が特定条件を満たすと、特徴情報が特定条件を満たすことを示す;特徴情報がサイズ情報を含む場合、サイズ情報が特定条件満たすと、特徴情報が特定条件を満たすことをしめす;特徴情報がシーケンスレベルスイッチ制御情報を含む場合、シーケンスレベルスイッチ制御情報が特定条件を満たすと、特徴情報が特定条件を満たすことをしめす。
【0034】
特徴情報が動き情報属性、予測モード属性、サイズ情報、シーケンスレベルスイッチ制御情報のうちの少なくとも2つを含む場合、例えば、特徴情報が動き情報属性と予測モード属性とを含むことを例とすると、動き情報属性が特定条件を満たし、且つ予測モード属性が特定条件を満たす場合、特徴情報が特定条件を満たすことを示す。また、例えば、特徴情報が動き情報属性、サイズ情報、シーケンスレベルスイッチ制御情報を含むことを例とすると、動き情報属性が特定条件を満たし、且つサイズ情報が特定条件を満たし、且つシーケンスレベルスイッチ制御情報が特定条件を満たす場合、特徴情報が特定条件を満たすことを示す。勿論、上記のプロセスはただいくつかの例示だけであり、これらに限定されない。
【0035】
例示として、現在ブロックの第1単方向動き情報に基づいて第1初期予測値を確定するとともに、現在ブロックの第2単方向動き情報に基づいて第2初期予測値を確定することは、
現在ブロックの第1単方向動き情報に基づいて、第1参照フレームから第1参照ブロックを確定し、第1参照ブロックの第1初期予測値を確定し、第1参照ブロックの中央領域の第1初期予測値が第1参照フレームの画素値を補間することにより得られたものであり、第1参照ブロックのエッジ領域の第1初期予測値が第1参照フレームの画素値をコピーすることにより得られたものであることと、
現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから第2参照ブロックを確定し、第2参照ブロックの第2初期予測値を確定し、第2参照ブロックの中央領域の第2初期予測値が第2参照フレームの画素値を補間することにより得られたものであり、第2参照ブロックのエッジ領域の第2初期予測値が第2参照フレームの画素値をコピーすることにより得られたものであることと、
を含むが、これに限定されない。
【0036】
例えば、現在ブロックの第1単方向動き情報に基づいて、第1参照フレームから現在ブロックに対応する第1参照ブロックを確定する。仮に、現在ブロックのサイズがM*Mであり、第1参照ブロックのサイズがN*Nであり、NはMより大きくてよいとする。例えば、Mは4であり、Nは6である。第1参照ブロックを中央領域とエッジ領域とに区画してよい。第1参照ブロックの中央領域とは、第1参照ブロックの中心点を中心として、サイズがM*Mである領域を指す。第1参照ブロックのエッジ領域とは、第1参照ブロックにおける中央領域以外の他の領域を指す。第1参照ブロックの中央領域について、第1参照ブロックの中央領域の第1初期予測値は第1参照フレームの画素値を補間することにより得られたものであるが、第1参照ブロックのエッジ領域について、第1参照ブロックのエッジ領域の第1初期予測値は第1参照フレームの画素値をコピーすることにより得られたものである。
【0037】
現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから現在ブロックに対応する第2参照ブロックを確定する。仮に、現在ブロックのサイズがM*Mであり、第2参照ブロックのサイズがN*Nであり、NはMより大きくてよいとする。例えば、Mは4であり、Nは6である。第2参照ブロックを中央領域とエッジ領域とに区画してよい。第2参照ブロックの中央領域とは、第2参照ブロックの中心点を中心として、サイズがM*Mである領域を指す。第2参照ブロックのエッジ領域とは、第2参照ブロックにおける中央領域以外の他の領域を指す。第2参照ブロックの中央領域について、第2参照ブロックの中央領域の第2初期予測値は第2参照フレームの画素値を補間することにより得られたものであるが、第2参照ブロックのエッジ領域について、第2参照ブロックのエッジ領域の第2初期予測値は第2参照フレームの画素値をコピーすることにより得られたものである。
【0038】
例示として、現在ブロックの第1単方向動き情報に基づいて第1初期予測値を確定するとともに、現在ブロックの第2単方向動き情報に基づいて第2初期予測値を確定することは、現在ブロックの第1単方向動き情報に基づいて、第1参照フレームから第1参照ブロックを確定し、第1参照ブロックの第1初期予測値を確定し、前記第1初期予測値は第1参照フレームの画素値を補間することにより得られたものであることと、現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから第2参照ブロックを確定し、第2参照ブロックの第2初期予測値を確定し、前記第2初期予測値は第2参照フレームの画素値を補間することにより得られたものであることと、を含むが、これらに限定されない。例えば、現在ブロックの第1単方向動き情報に基づいて、第1参照フレームから現在ブロックに対応する第1参照ブロックを確定できる。仮に、現在ブロックのサイズがM*Mであるとすると、第1参照ブロックのサイズがM*Mでもよい。現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから現在ブロックに対応する第2参照ブロックを確定できる。仮に、現在ブロックのサイズがM*Mであるとすると、第2参照ブロックのサイズがM*Mでもよい。
【0039】
ステップ202では、第1初期予測値と第2初期予測値とに基づいて水平方向速度を確定する。
【0040】
例示として、水平方向速度とは、参照フレームにおける現在ブロックに対応するサブブロック(即ち参照フレームにある、現在ブロックに対応するサブブロック)の水平方向(即ちX方向)速度を指す。或いは、参照フレームにおける現在ブロックのサブブロックに対応するサブブロック(即ち参照フレームにある、現在ブロックのサブブロックに対応するサブブロック)の水平方向(即ちX方向)速度を指す。
【0041】
例示として、第1初期予測値と第2初期予測値とに基づいて水平方向速度を確定することは、以下の方式を含むが、これらに限定されない。
【0042】
方式1として、第1初期予測値と第2初期予測値とによって、水平方向勾配合計の自己相関係数S1と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3とを確定し、そして、自己相関係数S1と、速度閾値と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定する。
【0043】
方式2として、第1プリセット条件を満たす場合、第1初期予測値と第2初期予測値とによって、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定し、相互相関係数S2と、速度閾値と、相互相関係数S6と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定する。第1プリセット条件を満たさない場合、第1初期予測値と第2初期予測値
とによって、水平方向勾配合計の自己相関係数S1と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3とを確定し、自己相関係数S1と、速度閾値と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定する。
【0044】
例示として、第1プリセット条件は相互相関係数S2と、垂直方向勾配合計の自己相関係数S5とに基づいて確定される。
【0045】
方式3として、第2プリセット条件を満たす場合、第1初期予測値と第2初期予測値とによって、水平方向勾配合計の自己相関係数S1と、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計の相互相関係数S6とを確定し、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6と、速度閾値と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定する。第2プリセット条件を満たさない場合、第1初期予測値と第2初期予測値とによって、水平方向勾配合計の自己相関係数S1と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3とを確定し、自己相関係数S1と、速度閾値と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定する。
【0046】
例示として、第2プリセット条件は相互相関係数S2と、自己相関係数S5とに基づいて確定される。
【0047】
ステップ203では、第1初期予測値と第2初期予測値とに基づいて垂直方向速度を確定する。
【0048】
例示として、垂直方向速度とは、参照フレームにおける現在ブロックに対応するサブブロック(即ち参照フレームにある、現在ブロックに対応するサブブロック)の垂直方向(即ちY方向)速度を指す。或いは、参照フレームにおける現在ブロックのサブブロックに対応するサブブロック(即ち参照フレームにある、現在ブロックのサブブロックに対応するサブブロック)の垂直方向(即ちY方向)速度を指す。
【0049】
例示として、第1初期予測値と第2初期予測値とに基づいて垂直方向速度を確定することは、以下の方式を含むが、これらに限定されない。
【0050】
方式1として、第1初期予測値と第2初期予測値とによって、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定し、そして、相互相関係数S2と、自己相関係数S5と、相互相関係数S6と、速度閾値と、水平方向速度と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。
【0051】
方式2として、第1初期予測値と第2初期予測値とによって、トランケーション処理を行わないトランケーション未実行水平方向速度を確定し、前記トランケーション未実行水平方向速度によって垂直方向速度を確定する。
【0052】
例示として、第1初期予測値と第2初期予測値とによって、水平方向勾配合計の自己相関係数S1と、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定する。そして、自己相関係数S1と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって、トランケーション未実行水平方向速度を確定し、相互相関係数S2と、自己相関係数S5と、相互相関係数S6と、速度閾値と、トランケーション未実行水平方向速度と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。
【0053】
方式3として、第3プリセット条件を満たす場合、第1初期予測値と第2初期予測値とによって、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定し、そして、自己相関係数S5と、相互相関係数S6と、速度閾値と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。第3プリセット条件を満たさない場合、第1初期予測値と第2初期予測値とによって、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定し、そして、相互相関係数S2と、自己相関係数S5と、相互相関係数S6と、速度閾値と、水平方向速度と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。
【0054】
例示として、第3プリセット条件は、前記水平方向速度に基づいて確定される。
【0055】
ステップ202とステップ203において、第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とを確定し、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とによって、水平方向勾配合計の自己相関係数S1と、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定する。
【0056】
例示として、相互相関係数S2は、第1相互相関係数の閾値と第2相互相関係数の閾値との間に存在してよいが、相互相関係数S6は第3相互相関係数の閾値と第4相互相関係数の閾値との間に存在してよい。
【0057】
例えば、第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S2が、第1相互相関係数の閾値より小さい場合、相互相関係数S2を第1相互相関係数の閾値に更新する。第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S2が第2相互相関係数の閾値より大きい場合、相互相関係数S2を第2相互相関係数の閾値に更新する。第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S2が第1相互相関係数の閾値以上であり、第2相互相関係数の閾値以下である場合、相互相関係数S2を維持する。
【0058】
第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S6が第3相互相関係数の閾値より小さい場合、相互相関係数S6を第3相互相関係数の閾値に更新する。第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S6が第4相互相関係数の閾値より大きい場合、相互相関係数S6を第4相互相関係数の閾値に更新する。第1初期予測値と、第2初期予測値と、第1増幅因子と、第2増幅因子とによって得られた相互相関係数S6が第3相互相関係数の閾値以上であり、第4相互相関係数の閾値以下である場合、相互相関係数S6を維持する。
【0059】
例示として、第1増幅因子は、5と(BD-7)の小さい方でもよく、或いは、1と(BD-11)の大きい方でもよい。勿論、上記はただ第1増幅因子の例示だけであり、これらに限定されなく、経験に応じて設定できる。
【0060】
例示として、第2増幅因子は、8と(BD-4)の小さい方でもよく、或いは、4と(BD-8)の大きい方でもよい。勿論、上記はただ第2増幅因子の例示だけであり、これらに限定されなく、経験に応じて設定できる。
【0061】
例示として、速度閾値は、2のM乗でもよく、Mは13とBDの差分値、或いは、5と(BD-7)の大きい方である。勿論、上記はただ速度閾値の例示だけであり、これに限定されなく、経験に応じて設定できる。
【0062】
例示として、BD(bit depth)は、ビット深度であり、各色度または輝度の画素値に必要なビット幅として示される。
【0063】
ステップ204では、水平方向速度と垂直方向速度とによって予測補償値を取得する。
【0064】
例示として、水平方向速度と垂直方向速度とによって予測補償値を取得することは、第1初期予測値と、第2初期予測値と、勾配右シフトビット数とによって、水平方向勾配と垂直方向勾配を確定し、水平方向速度と、垂直方向速度と、水平方向勾配と、前記垂直方向勾配とによって、予測補償値を取得することを含むが、これに限定されない。
【0065】
例示として、勾配右シフトビット数は、2と(14-BD)の大きい方、或いは、6と(BD-6)の大きい方でもよい。勿論、上記はただ勾配右シフトビット数の例示だけであり、これに限定されない、経験に応じて設定できる。
【0066】
ステップ205では、第1初期予測値と、第2初期予測値と、予測補償値とによって目標予測値を取得する。
【0067】
例示として、上記方法が現在ブロックの目標予測値を取得するために用いられる場合、現在ブロックの特徴情報が特定条件を満たすと、現在ブロックの第1単方向動き情報によって前記現在ブロックに対応する第1初期予測値を確定し、現在ブロックの第2単方向動き情報によって前記現在ブロックに対応する第2初期予測値を確定する。第1初期予測値と第2初期予測値とによって前記現在ブロックに対応する水平方向速度を確定し、第1初期予測値と第2初期予測値とによって前記現在ブロックに対応する垂直方向速度を確定する。そして、水平方向速度と垂直方向速度とによって前記現在ブロックに対応する予測補償値を確定し、第1初期予測値と、第2初期予測値と、予測補償値とによって前記現在ブロックに対応する目標予測値を確定する。これまで、前記現在ブロックに対応する目標予測値を取得することに成功した。
【0068】
例示として、現在ブロックが少なくとも1つのサブブロックに区画され、且つ上記方法が現在ブロックの各サブブロックの目標予測値を取得するために用いられる場合、現在ブロックの特徴情報が特定条件を満たすと、前記現在ブロックの各サブブロックに対し、前記サブブロックの第1単方向動き情報(現在ブロックの第1単方向動き情報と同じ)によって前記サブブロックに対応する第1初期予測値を確定するとともに、前記サブブロックの第2単方向動き情報(現在ブロックの第2単方向動き情報と同じ)によって前記サブブロックに対応する第2初期予測値を確定する。第1初期予測値と第2初期予測値とによって前記サブブロックに対応する水平方向速度を確定するとともに、第1初期予測値と第2初期予測値とによって前記サブブロックに対応する垂直方向速度を確定する。そして、水平方向速度と垂直方向速度とによって前記サブブロックに対応する予測補償値を確定し、第1初期予測値と、第2初期予測値と、予測補償値とによって前記サブブロックに対応する目標予測値を確定する。
【0069】
これまで、前記サブブロックに対応する目標予測値を取得することに成功した。前記現
在ブロックの各サブブロックの目標予測値を取得した後、実際には、前記現在ブロックの目標予測値を取得した。
【0070】
以上の形態から分かるように、本願実施例において、現在ブロックの第1単方向動き情報によって第1初期予測値を確定し、現在ブロックの第2単方向動き情報によって第2初期予測値を確定し、第1初期予測値と第2初期予測値とによって水平方向速度と垂直方向速度とを確定し、水平方向速度と垂直方向速度とによって予測補償値を取得し、予測補償値によって目標予測値を取得する。上記形態はオプティカルフロー法により現在ブロックまたは現在ブロックのサブブロックの目標予測値を取得することができる。これにより、ハードウェア実装の利便性を向上させ、符号化性能を向上させる。
【0071】
(実施例2)
本願実施例は、復号化側または符号化側に適用されるコーデック方法を提供する。
図3を参照すると、
図3は、コーデック方法のフローの模式図である。例示として、現在ブロックの特徴情報は特定条件を満たす場合、現在ブロックの各サブブロックの目標予測値を取得するように、現在ブロックの各サブブロックに対して以下のステップを実行する。
【0072】
ステップ301では、現在ブロックの特徴情報が特定条件を満たす場合、現在ブロックの第1単方向動き情報(即ち現在ブロックのサブブロックの第1単方向動き情報)によってサブブロックの第1初期予測値を確定するとともに、現在ブロックの第2単方向動き情報(即ち現在ブロックのサブブロックの第2単方向動き情報)によってサブブロックの第2初期予測値を確定する。
【0073】
例示として、現在ブロックが双方向ブロック(即ち現在ブロックは双方向予測を採用するブロック)である場合、現在ブロックに対応する双方向動き情報を取得するが、この取得方式に限定されない。この双方向動き情報は2つの異なる方向の動き情報を含み、この2つの異なる方法の動き情報が第1単方向動き情報(例えば、第1動きベクトルと第1参照フレームインデックス)及び第2単方向動き情報(例えば、第2動きベクトルと第2参照フレームインデックス)と呼ばれる。第1単方向動き情報に基づいて第1参照フレーム(例えば、参照フレーム0)を確定し、且つ第1参照フレームが現在ブロックの所属する現在フレームの前に位置し;第2単方向動き情報に基づいて第2参照フレーム(例えば、参照フレーム1)を確定し、且つ第2参照フレームが現在ブロックの所属する現在フレームの後ろに位置する。
【0074】
例示として、現在ブロックの各サブブロックに対し、当該サブブロックの第1単方向動き情報と現在ブロックの第1単方向動き情報とは同じであり、当該サブブロックの第2単方向動き情報と現在ブロックの第2単方向動き情報とは同じである。
【0075】
例示として、特徴情報は、動き情報属性、予測モード属性、サイズ情報、シーケンスレベルスイッチ制御情報のうちの1つまたは複数を含む。特徴情報が特定条件を満たすことについて、ステップ201を参照し、ここでその説明を省略する。
【0076】
【0077】
ステップ302では、サブブロックの第1初期予測値と第2初期予測値とによって水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とを確定する。例えば、サブブロックの第1初期予測値と、サブブロックの第2初期予測値と、第1増幅因子と、第2増幅因子とによって、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とを確定する。
【0078】
ステップ303では、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とによって、水平方向勾配合計の自己相関係数S1(以後、自己相関係数S1と呼ばれる)と、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2(以後、相互相関係数S2と呼ばれる)と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3(以後、相互相関係数S3と呼ばれる)と、垂直方向勾配合計の自己相関係数S5(以後、自己相関係数S5と呼ばれる)と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6(以後、相互相関係数S6と呼ばれる)とを確定する。
【0079】
ステップ304では、自己相関係数S1、相互相関係数S2、相互相関係数S3、自己相関係数S5、及び相互相関係数S6のうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの水平方向速度を確定する。
【0080】
ステップ305では、自己相関係数S1、相互相関係数S2、相互相関係数S3、自己相関係数S5、及び相互相関係数S6のうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの垂直方向速度を確定する。
【0081】
ステップ306では、水平方向速度と垂直方向速度とによって現在ブロックのサブブロックの予測補償値を取得する。
【0082】
ステップ307では、現在ブロックのサブブロックの第1初期予測値と、現在ブロックのサブブロックの第2初期予測値と、現在ブロックのサブブロックの予測補償値とによって、現在ブロックのサブブロックの目標予測値を取得する。
【0083】
例示として、ステップ301~ステップ307のフローは、実施例1を参照し、ここでその説明を省略する。
【0084】
(実施例3)
符号化側/復号化側では、現在ブロックの特徴情報が特定条件を満たすかどうかを判断
する必要がある。YESである場合,本願実施例に係る技術案を採用して、現在ブロックまたは現在ブロックのサブブロックの目標予測値を取得する。この技術案は双方向オプティカルフローモードとも呼ばれる。NOである場合,本願の目標予測値を取得する方式を採用する必要はない。
【0085】
特徴情報が少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0086】
前記条件は、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からのものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレームの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は、限定された範囲内にあることと
を含む。
【0087】
(実施例4)
特徴情報が少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0088】
前記条件は、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレームの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は限定された範囲内にあることと、
現在ブロックが複数のサブブロックを含み、且つ複数のサブブロックの動き情報が何れも同じであり、つまり、現在ブロックの各サブブロックの動き情報が完全に同じでもよく、即ち現在ブロックがサブブロック動き情報モードを採用しないことと、
を含む。
【0089】
例示として、現在ブロックがサブブロック動き情報モードを採用しないことは、現在ブロックがAffineモードまたはSBTMVPモードを採用しないことと、Affineモードがアフィン動きモデルモードを採用し、SBTMVP(subblock-based temporal motion vector prediction)モードが時間領域でブロック全体の動き情報を取得するモードであることとを含んでよい。現在ブロックがAffineモードまたはSBTMVPモードを採用するとき、現在ブロック内部の各サブブロックの動き情報は、完全に同じではない確率が高い。したがって、現在ブロックはAffineモードまたはSBTMVPモード採用しなくてもよい。
【0090】
(実施例5)
特徴情報は少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0091】
前記条件は、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレー
ムの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は限定された範囲内にあることと、
現在ブロックが複数のサブブロックを含み、且つ複数のサブブロックの動き情報が何れも同じである。つまり、現在ブロックの各サブブロックの動き情報が完全に同じでもよく、即ち現在ブロックがサブブロック動き情報モードを採用しないことと、
現在ブロックが双方向予測を採用し、現在ブロックに対応する2つの参照フレームの重みが同じであることと
を含む。
【0092】
(実施例6)
特徴情報が少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0093】
前記条件は、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレームの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は限定された範囲内にあることと、
現在ブロックが複数のサブブロックを含み、且つ複数のサブブロックの動き情報が何れも同じであり、つまり、現在ブロックの各サブブロックの動き情報が完全に同じでもよく、即ち現在ブロックがサブブロック動き情報モードを採用しないことと、
現在ブロックが双方向予測を採用し、現在ブロックに対応する2つの参照フレームの重みが同じであることと、
現在ブロックがCIIPモード(イントラ予測とインター予測との組合せによるマージモード,combine intra inter prediction mode)を採用しないことと
を含む。
【0094】
(実施例7)
特徴情報が少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0095】
前記条件は、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレームの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は限定された範囲内にあることと、
現在ブロックが複数のサブブロックを含み、且つ複数のサブブロックの動き情報が何れも同じであり、つまり、現在ブロックの各サブブロックの動き情報が完全に同じでもよく、即ち現在ブロックがサブブロック動き情報モードを採用しないことと、
現在ブロックが双方向予測を採用し、現在ブロックに対応する2つの参照フレームの重みが同じであることと、
現在ブロックがSMVD(Symmetric Motion Vector Difference,対称動きベクトル差分)モードを採用しなく、SMVDモードにおける双方向動き情報の2つのMVDは対称であり、即ち、一方の動きベクトル差分MVDのみを符号化し、他方の動きベクトル差分を負のMVDにする必要があることと
を含む。
【0096】
(実施例8)
特徴情報が少なくとも以下の条件を同時に満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0097】
前記条件は、
シーケンスレベルスイッチ制御情報は現在ブロックが双方向オプティカルフローモードを採用することを許容するものであり、つまり、シーケンスレベル制御により、双方向オプティカルフローモードが使用されることができ、即ちシーケンスレベル制御スイッチがオンになり、現在ブロックが双方向オプティカルフローモードを採用することを許容することを示すことと、
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、つまり、現在ブロックに対応する一方の参照フレームが現在フレームの前に位置するが、現在ブロックに対応する他方の参照フレームが現在フレームの後ろに位置することと、
現在ブロックのサイズ情報(例えば、幅の値、高さの値、面積の値等)は限定された範囲内にあることと、
現在ブロックが複数のサブブロックを含み、且つ複数のサブブロックの動き情報が何れも同じであり、つまり、現在ブロックの各サブブロックの動き情報が完全に同じでもよく、即ち現在ブロックがサブブロック動き情報モードを採用しないことと、
現在ブロックが双方向予測を採用し、現在ブロックに対応する2つの参照フレームの重みが同じであることと
を含む。
【0098】
(実施例9)
上記実施例3~実施例8のいずれかに係る条件「現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり」を、「現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームは異なる方向からものであり、且つ現在ブロックに対応する2つの参照フレームのそれぞれと現在フレームとの距離は同じである」に変更する。
【0099】
例えば、現在フレームの表示配列番号がPOCであり、現在ブロックに対応する2つの参照フレームの表示配列番号がそれぞれPOC0とPOC1である場合、2つの参照フレームが異なる方向からものであることは、(POC-POC0)*(POC-POC1)<0に相当し、2つの参照フレームのそれぞれと現在フレームとの距離が同じであることは、(POC-POC0)の値が(POC1-POC)の値と等しいに相当する。
【0100】
(実施例10)
特徴情報が少なくとも以下の条件を満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0101】
シーケンスレベルスイッチ制御情報は、現在ブロックが双方向オプティカルフローモードを採用することを許容するものであり、つまり、シーケンスレベル制御により、双方向オプティカルフローモードが使用されることができ、即ちシーケンスレベル制御スイッチがオンになり、現在ブロックが双方向オプティカルフローモードを採用することを許容することを示す。
【0102】
(実施例11)
特徴情報が少なくとも以下の条件を満たす場合、現在ブロックの特徴情報が特定条件を満たすことを確定する。
【0103】
現在ブロックが双方向予測を採用し、且つ現在ブロックに対応する2つの参照フレームの予測値の差分値がプリセットされた閾値TH_SADより小さくてもよい。例示として、以下の形態を採用して、現在ブロックに対応する2つの参照フレームの予測値の差分値を取得する。
【0104】
方式1として、現在ブロックの第1単方向動き情報によって第1参照フレームから現在ブロックのサブブロックに対応する第1予測ブロックを取得し、現在ブロックの第2単方向動き情報によって第2参照フレームから現在ブロックのサブブロックに対応する第2予測ブロックを取得し、第1予測ブロックの予測値と第2予測ブロックの予測値のSAD(Sum of Absolute Difference,差分絶対値和)によって、第1参照フレームと第2参照フレームの予測値の差分値を取得する。
【0105】
【0106】
方式2として、現在ブロックの第1単方向動き情報によって第1参照フレームから現在ブロックのサブブロックに対応する第1予測ブロックを取得し、現在ブロックの第2単方向動き情報によって第2参照フレームから現在ブロックのサブブロックに対応する第2予測ブロックを取得し;第1予測ブロックのダウンサンプリングされた後の予測値(即ち第1予測ブロックの予測値をダウンサンプリングを行った後に得られた予測値)と第2予測ブロックのダウンサンプリングされた後の予測値(即ち第2予測ブロックの予測値をダウンサンプリングを行った後に得られた予測値)のSADによって、第1参照フレームと第2参照フレームの予測値の差分値を取得する。
【0107】
【0108】
(実施例12)
上記実施例において、現在ブロックのサイズ情報は限定された範囲内にあり、以下の状況の1つでもよい。
【0109】
状況1として、現在ブロックの幅の値が第1区間[Wmin,Wmax]の範囲にある;現在ブロックの高さの値が第2区間[Hmin,Hmax]の範囲にある;Wmin、Wmax、Hmin、Hmaxは何れも2の正の整数乗である;例えば、Wminが8であり、Wmaxが128であり、Hminが8であり、Hmaxが128である。
【0110】
現在ブロックの面積の値は第3区間[Smin,Smax]の範囲にある;Smin、Smaxは何れも2の正の整数乗である;例えば、Sminが64であり、Smaxが128*128=16384である。
【0111】
上記の実施例において、[a,b]がa以上、b以下であることを示す。
【0112】
状況2として、現在ブロックの幅の値は第1区間[Wmin,Wmax]の範囲にある;Wmin、Wmaxは何れも2の正の整数乗である;例えば、Wminが8で、Wmaxが128である。
【0113】
状況3、現在ブロックの高さの値は第2区間[Hmin,Hmax]の範囲内にある;Hmin、Hmaxは2の正の整数乗である;例えば、Hminが8であり、Hmaxが128である。
【0114】
例示として、以下のいずれかの条件を満たす場合、現在ブロックに対応する2つの参照フレームの重みは同じである。
条件1:現在ブロックは、異なる重みを許容する方法を採用しない。
条件2:現在ブロックは、異なる重みの方法(例えば、ブロックレベル重み付きの予測方法BCW(Bi-prediction with CU based weighting)を使用することができる)を採用することを許容し、且つ現在ブロックの2つの重みは完全に同じである。
条件3:現在ブロックが所属する現在フレームは異なる重みの方法を採用しない。
条件4:現在ブロックが所属する現在フレームは異なる重みの方法を採用することを許容し(例えば、フレームレベル重み付きの予測方法を使用することができる)、且つ現在フレームの2つの重みは完全に同じである。
【0115】
【0116】
【0117】
図4に示すように、仮にサブブロックのサイズが4*4であり、第1参照ブロックのサイズが6*6であるとすると、第1参照ブロックの中央領域とは、第1参照ブロックの中心点を中心として、サイズが4*4である領域を指す。第1参照ブロックの中央領域の第1初期予測値は第1参照フレームの画素値を補間することにより得られたものであり、ここでその説明を省略する。第1参照ブロックのエッジ領域とは、第1参照ブロックにおける中央領域以外の領域(即ち中央領域以外、上下各1行及び左右各1列の領域)を指す。第1参照ブロックのエッジ領域の第1初期予測値は第1参照フレームの画素値をコピーすることにより得られたものである。
図4において、第1参照フレームのピクセルの画素値を、第1参照ブロックのエッジ領域にコピーすることを示す。勿論、
図4はただ1つの例示だけであり、他のピクセルの画素値を利用してコピーすることもできる。
【0118】
上記方式において、第1参照ブロックのエッジ領域に対して、第1参照フレームで最も
近い整数画素値をコピーすることで取得でき、これにより余分な補間プロセスを回避し、余分な参照画素をアクセスすることを間接的に回避することができることは、明らかである。
【0119】
第2参照ブロックの中央領域の第2初期予測値と第2参照ブロックのエッジ領域の第2初期予測値とについて、第2初期予測値の取得プロセスは第1初期予測値の取得プロセスを参照できるため、ここでその説明を省略する。
【0120】
例えば、現在ブロックの第1単方向動き情報に基づいて、第1参照ブロックから第1参照ブロックを確定し、第1参照ブロックの第1初期予測値を確定する。第1参照ブロックの第1初期予測値は、第1参照ブロックにおける画素値を補間することにより得られたものである。現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから第2参照ブロックを確定し、第2参照ブロックの第2初期予測値を確定する。第2参照ブロックの第2初期予測値は第2参照ブロックの画素値を補間することにより得られたものである。例えば、仮にサブブロックのサイズが4*4であり、第1参照ブロックのサイズが4*4であり、第2参照ブロックのサイズが4*4であるとすると、第1参照ブロックの全ての領域の第1初期予測値は第1参照フレームの画素値を補間することにより得られたものであり、第2参照ブロックの全ての領域の第1初期予測値は第1参照フレームの画素値を補間することにより得られたものである。
【0121】
(実施例14)
サブブロックの第1初期予測値とサブブロックの第2初期予測値を得た後、符号化側/復号化側ではサブブロックの第1初期予測値と第2初期予測値とによって、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とを確定する。例えば、サブブロックの第1初期予測値と、サブブロックの第2初期予測値と、第1増幅因子と、第2増幅因子とによって、水平方向勾配合計と、垂直方向勾配合計と、時間領域予測値の差分値とを確定する。例えば、式(1)により水平方向勾配合計を確定し、式(2)により垂直方向勾配合計を確定し、式(3)により時間領域予測値の差分値を確定する。
【数7】
【0122】
【0123】
BD(bit depth)はビット深度でもよく、各色度または輝度画素値に必要なビット幅として示してもよい。例えば、BDは10または8でもよく、通常、BDは既知な値でもよい。
【0124】
【0125】
【0126】
(実施例16)
相互相関係数S2と相互相関係数S6を得た後に、相互相関係数S2を第1相互相関係数の閾値と第2相互相関係数の閾値との間に制限できる。例えば、相互相関係数S2が第1相互相関係数の閾値より小さい場合、相互相関係数S2を第1相互相関係数の閾値に更新し、相互相関係数S2が第2相互相関係数の閾値より大きい場合、相互相関係数S2を第2相互相関係数の閾値に更新する。相互相関係数S6を第3相互相関係数の閾値と第4相互相関係数の閾値との間に制限できる。例えば、相互相関係数S6が第3相互相関係数の閾値より小さい場合、相互相関係数S6を第3相互相関係数の閾値に更新し、相互相関係数S6が第4相互相関係数の閾値より大きい場合、相互相関係数S6を第4相互相関係数の閾値に更新する。第1相互相関係数の閾値が第2相互相関係数の閾値より小さくてもよい。第3相互相関係数の閾値は第4相互相関係数の閾値より小さくてもよい。
【0127】
【0128】
(実施例17)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの水平方向速度を確定できる。自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの垂直方向速度を確定できる。
【0129】
【0130】
【0131】
【0132】
【0133】
【0134】
【0135】
【0136】
(実施例18)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの水平方向速度を確定できる。自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの垂直方向速度を確定できる。
【0137】
例えば、自己相関係数S1と、速度閾値と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって、以下の式を参照し、それは上記パラメータに基づいて水平方向速度を確定する例示である。
【数20】
【0138】
【0139】
【0140】
(実施例19)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの水平方向速度を確定できる。
【0141】
例えば、第1プリセット条件を満たす場合、相互相関係数S2と、速度閾値と、相互相関係数S6と、第1増幅因子と、第2増幅因子とによって、水平方向速度を確定できる。第1プリセット条件を満たさない場合、自己相関係数S1と、速度閾値と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定できる。第1プリセット条件は相互相関係数S2と、自己相関係数S5とに基づいて確定される。以下の式を参照する。
【0142】
【0143】
【0144】
(実施例20)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちのの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの水平方向速度を確定できる。
【0145】
【0146】
(実施例21)
実施例19に対して、第1プリセット条件を満たさない場合、水平方向速度を確定する式は式(15)になる。実施例20に対して、第2プリセット条件を満たさない場合、水平方向速度を確定する式は式(15)になる。
【0147】
(実施例22)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの垂直方向速度を確定できる。
【0148】
例えば、自己相関係数S1と、相互相関係数S3と、第1増幅因子と、第2増幅因子とによってトランケーション未実行水平方向速度を確定し、相互相関係数S2と、自己相関係数S5と、相互相関係数S6と、速度閾値と、前記トランケーション未実行水平方向速度と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。
【0149】
【0150】
【0151】
(実施例23)
自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とを得た後に、自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6とのうちのの1つまたは複数によって、参照フレームにおける現在ブロックのサブブロックに対応するサブブロックの垂直方向速度を確定できる。
【0152】
例えば、第3プリセット条件を満たす場合、自己相関係数S5と、相互相関係数S6と、速度閾値と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。第3プリセット条件を満たさない場合、相互相関係数S2と、自己相関係数S5と、相互相関係数S6と、速度閾値と、水平方向速度と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定する。例示として、第3プリセット条件が前記水平方向速度に基づいて確定される。
【0153】
【0154】
【0155】
【0156】
(実施例24)
実施例23に対して、第3プリセット条件を満たさない場合、垂直方向速度を確定する式が式(16)に変更される。
【0157】
【0158】
【0159】
【0160】
【0161】
【0162】
【0163】
【0164】
勿論、上記方式はただサブブロックの目標予測値を取得する例示だけであり、これに限定されない。
【0165】
(実施例28)
現在ブロックが複数のサブブロックに区画されるときに、上記実施例を採用し、各サブブロックの目標予測値を確定することができる。即ち、現在ブロックの各サブブロック(例えば、4*4のサブブロック)に対して予測信号の調整を行って、それにより、各サブブロックの目標予測値を得る。本実施例において、目標条件を満たす場合、あるサブブロックの信号調整プロセスから早めに脱退することもできる。つまり、上記実施例の方式を採用しないで、サブブロックの目標予測値を確定する。
【0166】
例えば、現在ブロックがサブブロック1と、サブブロック2と、サブブロック3と、サブブロック4とに区画され、符号化側/復号化側では、まず上記実施例の方式を採用してサブブロック1の目標予測値を確定して、上記実施例の方式を採用してサブブロック2の目標予測値を確定する。仮に目標条件を満たすとすると、符号化側/復号化側では上記実施例の方式を採用しないでサブブロック3の目標予測値とサブブロック4の目標予測値とを確定する。即ち、サブブロック3とサブブロック4の信号調整プロセスから早めに脱退する。
【0167】
例示として、現在ブロックの2つのサブブロックの予測値の差分値がある閾値TH_SUB_SADより小さい時に、目標条件を満たすことを確定し、残りのサブブロックの信号調整プロセスから早めに脱退することができる。例えば、サブブロック1の予測値の差分値が閾値TH_SUB_SADより小さく、且つサブブロック2の予測値の差分値が閾値TH_SUB_SADより小さい場合、目標条件を満たすことを確定し、残りのサブブロック(即ち、サブブロック3とサブブロック4)の信号調整プロセスから早めに脱退する。
【0168】
また、例えば、現在ブロックが複数のサブブロックに区画され、各サブブロックについて、符号化側/復号化側で上記実施例の方式を採用して前記サブブロックの目標予測値を確定する前に、目標条件を満たすかどうかを判断する。目標条件を満たす場合、上記実施例の方式を採用しないで前記サブブロックの目標予測値を確定する。即ち、前記サブブロックの信号調整プロセスから早めに脱退する。目標条件を満たさない場合、上記実施例の方式を採用して前記サブブロックの目標予測値を確定することができる。
【0169】
例示として、前記サブブロックの予測値の差分値がある閾値TH_SUB_SADより小さい場合、目標条件を満たすことを確定し、前記サブブロックの信号調整プロセスから早めに脱退することができる。例えば、サブブロック1の予測値の差分値が閾値TH_SUB_SADより小さい場合、目標条件を満たすことを確定し、サブブロック1の信号調整プロセスから早めに脱退する。
【0170】
例示として、サブブロックの予測値の差分値を確定するために、以下の方式を採用して実現することができる。
【0171】
【0172】
【0173】
(実施例29)
上記方法と同様な発想に基づいて、本願実施例は、符号化側または復号化側に適用されるコーデックデバイスも提供する。前記デバイスは現在ブロックの特徴情報が特定条件を満たす場合、前記現在ブロックまたは前記現在ブロックのサブブロックの目標予測値するために用いられる。
図5に示すように、前記デバイスの構成図であり、前記デバイスは:
現在ブロックの特徴情報が特定条件を満たす場合、前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定するための第1確定モジュール51と、
前記第1初期予測値と前記第2初期予測値とによって水平方向速度を確定し、前記第1初期予測値と前記第2初期予測値とによって垂直方向速度を確定するための第2確定モジ
ュール52と、
前記水平方向速度と前記垂直方向速度とによって予測補償値を取得するための第1取得モジュール53と、
前記第1初期予測値と、前記第2初期予測値と、前記予測補償値とによって目標予測値を取得するための第2取得モジュール54とを含む。
【0174】
例示として、前記特徴情報は、動き情報属性と、予測モード属性と、サイズ情報と、シーケンスレベルスイッチ制御情報とのうちの一つまたは複数を含むが、これに限定されない。
【0175】
前記第1確定モジュール51は、更に、前記特徴情報が前記動き情報属性を含み、前記動き情報属性が以下の状況の少なくとも1つを満たす場合、前記動き情報属性が特定条件を満たすことを確定するために用いられる。
前記現在ブロックは双方向予測を採用し、且つ前記現在ブロックに対応する2つの参照フレームは異なる方向からのものである;
前記現在ブロックは複数のサブブロックを含み、前記複数のサブブロックの動き情報は何れも同じである;
前記現在ブロックは双方向予測を採用し、前記現在ブロックに対応する2つの参照フレームの重みが同じである;
前記現在ブロックは双方向予測を採用し、前記現在ブロックに対応する2つの参照フレームのそれぞれと現在フレームとの距離が同じである;
前記現在ブロックは双方向予測を採用し、現在ブロックに対応する2つの参照フレームの予測値の差分値がプリセット閾値より小さい。
【0176】
前記第1確定モジュール51は、更に、前記現在ブロックの第1単方向動き情報によって第1参照フレームから第1予測ブロックを取得し、前記現在ブロックの第2単方向動き情報によって第2参照フレームから第2予測ブロックを取得するために用いられる。
【0177】
前記第1予測ブロックのダウンサンプリングされた後の予測値と前記第2予測ブロックのダウンサンプリングされた後の予測値のSADによって、前記第1参照フレームと前記第2参照フレームの予測値の差分値を取得する。
【0178】
前記第1確定モジュール51は、更に、前記特徴情報が前記予測モード属性を含む場合、前記予測モード属性がイントラ予測とインター予測との組合せに基づくマージモード、及び/または、対称動きベクトル差分モードを採用しなく、前記予測モード属性が特定条件を満たすことを確定するために用いられる。
【0179】
前記第1確定モジュール51は、更に、前記特徴情報が前記シーケンスレベルスイッチ制御情報を含み、前記シーケンスレベルスイッチ制御情報は前記現在ブロックが双方向オプティカルフローモジュールを採用することを許容するものである場合、前記シーケンスレベルスイッチ制御情報が特定条件を満たすことを確定するために用いられる。
【0180】
前記第1確定モジュール51は、更に、前記特徴情報が前記サイズ情報を含む場合、前記サイズ情報が以下の状況の少なくとも1つを満たすと、前記サイズ情報が特定条件を満たすことを確定し、前記現在ブロックの幅の値は第1閾値以上であり、前記現在ブロックの幅の値は第2閾値以下である;前記現在ブロックの高さの値は第3閾値以上であり、前記現在ブロックの高さの値は第4閾値以下である;前記現在ブロックの面積の値は第5閾値以上であり、前記現在ブロックの面積の値は第6閾値以下である、ために用いられる。
【0181】
前記第1確定モジュール51は、前記現在ブロックの第1単方向動き情報によって第1
初期予測値を確定し、前記現在ブロックの第2単方向動き情報によって第2初期予測値を確定するとき、具体的に、
前記現在ブロックの第1単方向動き情報に基づいて、第1参照フレームから第1参照ブロック確定し、前記第1参照ブロックの第1初期予測値を確定し、前記第1参照ブロックの中央領域の第1初期予測値は第1参照フレームの画素値を補間することにより得られたものであり、前記第1参照ブロックのエッジ領域の第1初期予測値は第1参照フレームの画素値をコピーすることにより得られたものであることと、前記現在ブロックの第2単方向動き情報に基づいて、第2参照フレームから第2参照ブロック確定し、前記第2参照ブロックの第2初期予測値を確定し、前記第2参照ブロックの中央領域の第2初期予測値は第2参照フレームの画素値を補間することにより得られたものであり、前記第2参照ブロックのエッジ領域の第2初期予測値は第2参照フレームの画素値をコピーすることにより得られたものである、ために用いられる。
【0182】
前記第2確定モジュール52は、前記第1初期予測値と前記第2初期予測値によって水平方向速度を確定するとき、具体的に、第1プリセット条件を満たす場合、第1初期予測値と第2初期予測値によって水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定することと、相互相関係数S2と、速度閾値と、相互相関係数S6と、第1増幅因子と、第2増幅因子とによって水平方向速度を確定するために用いられ、第1プリセット条件は相互相関係数S2と垂直方向勾配合計の自己相関係数S5とに基づいて確定されたものである。
【0183】
前記第2確定モジュール52は、前記第1初期予測値と前記第2初期予測値によって水平方向速度を確定するとき、具体的に、第2プリセット条件を満たす場合、第1初期予測値と第2初期予測値によって水平方向勾配合計の自己相関係数S1と、水平方向勾配合計と垂直方向勾配合計との相互相関係数S2と、時間領域予測値の差分値と水平方向勾配合計との相互相関係数S3と、垂直方向勾配合計の自己相関係数S5と、時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6とを確定することと、前記自己相関係数S1と、相互相関係数S2と、相互相関係数S3と、自己相関係数S5と、相互相関係数S6と、速度閾値と、第1増幅因子と、第2増幅因子とによって、水平方向速度を確定するために用いられ、前記第2プリセット条件は前記相互相関係数S2と、前記自己相関係数S5とに基づいて確定されたものである。
【0184】
前記第2確定モジュール52は、前記第1初期予測値と前記第2初期予測値によって垂直方向速度を確定するとき、具体的に、前記第1初期予測値と前記第2初期予測値によって、トランケーションし処理を行わないトランケーション未実行水平方向速度を取得し、前記トランケーション未実行水平方向速度によって垂直方向速度を確定する、ために用いられる。
【0185】
前記第2確定モジュール52は、前記第1初期予測値と前記第2初期予測値によって垂直方向速度を確定するとき、具体的に、第3プリセット条件を満たす場合、前記第1初期予測値と前記第2初期予測値によって、垂直方向勾配合計の自己相関係数S5と時間領域予測値の差分値と垂直方向勾配合計との相互相関係数S6を確定することと、前記自己相関係数S5と、相互相関係数S6と、速度閾値と、第1増幅因子と、第2増幅因子とによって垂直方向速度を確定するために用いられ、前記第3プリセット条件は前記水平方向速度に基づいて確定されたものである。
前記相互相関係数S2が第1相互相関係数の閾値と第2相互相関係数の閾値との間にある。
前記相互相関係数S6が第3相互相関係数の閾値と第4相互相関係数の閾値との間にある。
第1増幅因子は5と(BD-7)のうちの小さい方、または、1と(BD-11)のう
ちの大きい方である;第2増幅因子は8と(BD-4)のうちの小さい方、または、4と(BD-8)のうちの大きい方である;速度閾値は2のM乗であり、Mは13とBDの差分値、または、5と(BD-7)のうちの大きい方である;その中、BDはビット深度である。
【0186】
前記第1取得モジュール53は、前記水平方向速度と前記垂直方向速度によって予測補償値を取得するとき、具体的に、前記第1初期予測値と、前記第2初期予測値と、勾配右シフトビット数とによって、水平方向勾配と垂直方向勾配を確定し、前記水平方向速度と、前記垂直方向速度と、前記水平方向勾配と、前記垂直方向勾配とによって、前記予測補償値を取得するために用いられ、前記勾配右シフトビット数は2と(14-BD)のうちの大きい方、または、6と(BD-6)のうちの大きい方であり、BDはビット深度である。
【0187】
本願実施例に提供される復号化側機器によって、ハードウェアレベルから見ると、そのハードウェアアーキテクチャ模式図は具体的に
図6を参照できる。プロセッサ61とコンピューター可読記憶媒体62を含み、前記コンピューター可読記憶媒体62に前記プロセッサ61によって実行されるコンピューター実行可能命令を記憶している;前記プロセッサ61はコンピューター実行可能命令を実行するために用いられ、それにより本願の上記例示に開示された方法を実現する。例えば、プロセッサは以下のステップを実現するように、コンピューター実行可能命令を実行するために用いられる。
【0188】
現在ブロックの特徴情報が特定条件を満たす場合、以下のステップを実行して前記現在ブロックまたは前記現在ブロックのサブブロックの目標予測値を取得する:前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定し、前記第1初期予測値と前記第2初期予測値によって水平方向速度を確定し、前記第1初期予測値と前記第2初期予測値によって垂直方向速度を確定し、前記水平方向速度と前記垂直方向速度によって予測補償値を取得し、前記第1初期予測値、前記第2初期予測値と前記予測補償値によって目標予測値を取得する。
【0189】
本願実施例に提供された復号化側機器によって、ハードウェアレベルから、そのハードウェアアーキテクチャ模式図は具体的に
図7を参照できる。プロセッサ71とコンピューター可読記憶媒体72を含み、前記コンピューター可読記憶媒体72に前記プロセッサ71が実行されるコンピューター実行可能命令を記憶しており;前記プロセッサ71は本願の上記例示に開示された方法を実現するように、コンピューター実行可能命令を実行するために用いられる。例えば、プロセッサは、以下のステップを実現するように、コンピューター実行可能命令を実行するために用いられる。
【0190】
現在ブロックの特徴情報が特定条件を満たす場合、以下のステップを実行して前記現在ブロックまたは前記現在ブロックのサブブロックの目標予測値を取得する;前記現在ブロックの第1単方向動き情報によってサブブロックの第1初期予測値を確定し、前記現在ブロックの第2単方向動き情報によってサブブロック第2初期予測値を確定し、前記第1初期予測値と前記第2初期予測値によって水平方向速度を確定し、前記第1初期予測値と前記第2初期予測値によって垂直方向速度を確定し、前記水平方向速度と前記垂直方向速度によって予測補償値を取得し、前記第1初期予測値、前記第2初期予測値、および前記予測補償値によって目標予測値を取得する。
【0191】
上記方法と同様な発想に基づいて、本願実施例はコンピューター可読記憶媒体も提供する。前記コンピューター可読記憶媒体にはいくつかのコンピューター命令を記憶しており、前記コンピューター命令はプロセッサに実行されたとき、本願の上記例示に公開された
コーデック方法を達成できる。その中、上記コンピューター可読記憶媒体は、任意の電子、磁性、光学または他の物理的な記憶装置でもよく、情報を含むとか記憶とかもできて、例えば、命令、データ等を実行することができる。例えば、コンピューター可読記憶媒体は:RAM(Radom Access Memory,ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリー、記憶ドライブ(例えば、ハードディスクドライブ)、ソリッドステートドライブ、任意種類のストレージディスク(例えば、光ディスク、dvd等)、或いは類似な記憶媒体、或いはそれらの組み合わせである。
【0192】
上記実施例に説明されるシステム、デバイス、モジュールまたはユニットは、コンピューターチップまたは実体により達成され、または特定機能を備える製品により達成されることができる。典型的な実現例の1つはコンピューターであり、コンピューターの様式はパーソナルコンピューター、ラップトップコンピューター、セルラーホン、カメラ付き携帯電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーション機器、電子メール送受信機器、タブレットコンピュータ、ウェアラブル機器、またはこれらの機器のいずれかの機器の組み合わせでもよい。
【0193】
説明の便利のために、以上のデバイスを説明するときに、機能で各種類ユニットに分けてそれぞれ説明する。勿論、本願を実施するときに、各ユニットの機能は同一または複数のソフトウェア及び/またはハードウェアに達成することができる。
【0194】
当業者は、本願の実施例が方法、システム、またはコンピュータープログラム製品を提供できることを理解すべきである。本願は、完全なハードウェア実施例、完全なソフトウェア実施例、またはソフトウェア側とハードウェア側の実施例を組み合わせる様式を採用してもよい。そして、本願実施例は、コンピューター使用可能なプログラムコードを含む1つまたは複数のコンピューター使用可能な記憶媒体(ディスクメモリ、CD-ROM、光学メモリ等を含むが、これに限定されない)に実施されるコンピュータープログラム製品様態を採用してもよい。
【0195】
本願は、本願実施例による方法、機器(システム)、およびコンピュータープログラム製品のフローチャート及び/またはブロック図を参照して説明されたものである。コンピュータープログラム命令によりフローチャート及び/またはブロック図における各フロー及び/またはブロック、及びフローチャート及び/またはブロック図におけるフロー及び/またはブロックの結合を達成する、ことを理解すべきである。機器を生成するために、これらのコンピュータープログラム命令を汎用コンピューター、専用コンピューター、組み込みプロセッサ、または他のプログラミング可能なデータ処理機器のプロセッサまでに提供する。そのため、コンピューターまたは他のプログラミング可能なデータ処理機器のプロセッサが実行する命令により、フローチャートの1つまたは複数のフロー、及び/またはブロック図の1つまたは複数のブロックに指定された機能を実現するためのデバイスを生成する。そして、これらのコンピュータープログラム命令は、コンピューターまたは他のプログラミング可能なデータ処理機器を特定の方式で動作させることができるコンピューター可読メモリに記憶する。そのため、当該コンピューター可読メモリに記憶する命令は、命令デバイスを含む製品を生成する。当該命令デバイスは、フローチャートの1つまたは複数のフロー、及び/またはブロック図の1つまたは複数のブロックに指定された機能を達成する。
【0196】
これらのコンピュータープログラム命令は、コンピューターまたは他のプログラミング可能なデータ処理機器に搭載できる。それにより、コンピューターの実現する処理を生成するために、コンピューターまたは他のプログラミング可能な機器に一連の動作ステップを実行する。そのため、コンピューターまたは他のプログラミング可能な機器に実行する命令は、フローチャートの1つまたは複数のフロー、及び/またはブロック図の1つまたは複数のブロックに指定された機能を実現するためのステップを提供する。以上はただ本願実施例であり、本願を制限することを意図しない。当業者に対して、本願は各種の変更と変化を備えることができる。本願の旨と原理の範囲で行われた変更、同等置換、改良などは、本願の請求項の範囲に含まれるべきである。