IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 杭州海康威視数字技術股▲フン▼有限公司の特許一覧

特開2024-45191符号化及び復号方法、装置及びデバイス
<>
  • 特開-符号化及び復号方法、装置及びデバイス 図1A
  • 特開-符号化及び復号方法、装置及びデバイス 図1B
  • 特開-符号化及び復号方法、装置及びデバイス 図2
  • 特開-符号化及び復号方法、装置及びデバイス 図3
  • 特開-符号化及び復号方法、装置及びデバイス 図4
  • 特開-符号化及び復号方法、装置及びデバイス 図5
  • 特開-符号化及び復号方法、装置及びデバイス 図6A
  • 特開-符号化及び復号方法、装置及びデバイス 図6B
  • 特開-符号化及び復号方法、装置及びデバイス 図6C
  • 特開-符号化及び復号方法、装置及びデバイス 図6D
  • 特開-符号化及び復号方法、装置及びデバイス 図6E
  • 特開-符号化及び復号方法、装置及びデバイス 図7
  • 特開-符号化及び復号方法、装置及びデバイス 図8
  • 特開-符号化及び復号方法、装置及びデバイス 図9A
  • 特開-符号化及び復号方法、装置及びデバイス 図9B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024045191
(43)【公開日】2024-04-02
(54)【発明の名称】符号化及び復号方法、装置及びデバイス
(51)【国際特許分類】
   H04N 19/513 20140101AFI20240326BHJP
   H04N 19/577 20140101ALI20240326BHJP
【FI】
H04N19/513
H04N19/577
【審査請求】有
【請求項の数】24
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024001379
(22)【出願日】2024-01-09
(62)【分割の表示】P 2022520622の分割
【原出願日】2020-10-28
(31)【優先権主張番号】201911115040.X
(32)【優先日】2019-11-14
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】508219313
【氏名又は名称】杭州海康威視数字技術股▲フン▼有限公司
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】▲陳▼ 方▲棟▼
(57)【要約】      (修正有)
【課題】ハードウェア実現容易さを向上させ、符号化性能を向上させ、符号化性能及び符号化効率を向上させる。
【解決手段】符号化方法は、現在ブロックが双方向予測値補償モードを用いることを許可し、並進動きモデルを用いて、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件で、現在ブロックの予測値を2つの参照ピクチャからの参照ブロックを重み付けて取得し、2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、他方の参照ピクチャが現在ピクチャの後にあり、2つの参照ピクチャから現在ピクチャまでの距離が同じであるということ、等の条件が満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定し、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに対して動き補償を行う。
【選択図】図2
【特許請求の範囲】
【請求項1】
符号化及び復号方法であって、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、前記2つの参照ピクチャのうちの他方の参照ピクチャが前記現在ピクチャの後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップと、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップと
を含む、ことを特徴とする符号化及び復号方法。
【請求項2】
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、前記2つの参照ピクチャのうちの他方の参照ピクチャが前記現在ピクチャの後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件
のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定するステップをさらに含む、ことを特徴とする請求項1に記載の方法。
【請求項3】
前記制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することは、ピクチャレベル制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することを含む、ことを特徴とする請求項1又は2に記載の方法。
【請求項4】
現在ブロックの幅、高さ及び面積が全て限定範囲内にあることは、
幅が第1の閾値以上、高さが第2の閾値以上、面積が第3の閾値以上であることを含む、ことを特徴とする請求項1又は2に記載の方法。
【請求項5】
前記第1の閾値は8、前記第2の閾値は8、前記第3の閾値は128である、ことを特徴とする請求項4に記載の方法。
【請求項6】
前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップは、
前記現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向レート及び垂直方向レートを決定するステップと、
前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得するステップと、
各サブブロックのターゲット予測値に基づいて前記現在ブロックの予測値を決定するステップと
を含む、ことを特徴とする請求項1~5のいずれか1項に記載の方法。
【請求項7】
前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するステップは、
前記サブブロックに対応するユニットブロックを決定するステップであって、前記現在ブロックは、前記ユニットブロックを含み、前記ユニットブロックは、前記サブブロックを含む、ステップと、
前記ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、前記第1の参照ブロックを拡張し、第2の参照ブロックを得、前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定するステップと、
前記ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャから第3の参照ブロックを決定し、前記第3の参照ブロックを拡張し、第4の参照ブロックを得、前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定するステップと
を含む、ことを特徴とする請求項6に記載の方法。
【請求項8】
前記第1の参照ブロックを拡張し、第2の参照ブロックを得るステップは、
前記第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第2の参照ブロックを得るステップを含み、
前記第3の参照ブロックを拡張し、第4の参照ブロックを得るステップは、
前記第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第4の参照ブロックを得るステップを含み、
Nは0又は正整数である、ことを特徴とする請求項7に記載の方法。
【請求項9】
前記第2の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第1の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第1の参照ブロックにおける近傍画素点の画素値をコピーして得られるものであり、
前記第4の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第2の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第3の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである、ことを特徴とする請求項8に記載の方法。
【請求項10】
前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得するステップは、
前記第1のオリジナル予測値に基づいて第1の水平方向勾配及び第1の垂直方向勾配を決定するステップと、
前記第2のオリジナル予測値に基づいて第2の水平方向勾配及び第2の垂直方向勾配を決定するステップと、
前記水平方向レート、前記第1の水平方向勾配、前記第2の水平方向勾配、前記垂直方向レート、前記第1の垂直方向勾配及び前記第2の垂直方向勾配に基づいて、前記サブブロックの予測補償値を取得するステップと
を含む、ことを特徴とする請求項6に記載の方法。
【請求項11】
符号化及び復号方法であって、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、前記2つの参照ピクチャのうちの他方の参照ピクチャが前記現在ピクチャの後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うという条件
が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップを含む、ことを特徴とする符号化及び復号方法。
【請求項12】
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、前記2つの参照ピクチャのうちの他方の参照ピクチャが前記現在ピクチャの後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件
が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するための決定モジュールと、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うための動き補償モジュールとを含む、ことを特徴とする符号化及び復号装置。
【請求項13】
前記決定モジュールは、さらに、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャのうちの一方の参照ピクチャが現在ピクチャの前にあり、前記2つの参照ピクチャのうちの他方の参照ピクチャが前記現在ピクチャの後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件
のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定するために用いられる、ことを特徴とする請求項12に記載の装置。
【請求項14】
前記制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することは、ピクチャレベル制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することを含む、ことを特徴とする請求項12又は13に記載の装置。
【請求項15】
現在ブロックの幅、高さ及び面積が全て限定範囲内にあることは、
幅が第1の閾値以上、高さが第2の閾値以上、面積が第3の閾値以上であることを含む、ことを特徴とする請求項12又は13に記載の装置。
【請求項16】
前記第1の閾値は8、前記第2の閾値は8、前記第3の閾値は128である、ことを特徴とする請求項15に記載の装置。
【請求項17】
前記動き補償モジュールは、具体的には、前記現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向レート及び垂直方向レートを決定し、
前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得し、
各サブブロックのターゲット予測値に基づいて前記現在ブロックの予測値を決定するために用いられる、ことを特徴とする請求項12~16のいずれか1項に記載の装置。
【請求項18】
前記動き補償モジュールは、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するとき、具体的には、
前記サブブロックに対応するユニットブロックを決定し、前記現在ブロックが前記ユニットブロックを含み、前記ユニットブロックが前記サブブロックを含み、
前記ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、前記第1の参照ブロックを拡張し、第2の参照ブロックを得、前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定し、
前記ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャから第3の参照ブロックを決定し、前記第3の参照ブロックを拡張し、第4の参照ブロックを得、前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定するために用いられる、ことを特徴とする請求項17に記載の装置。
【請求項19】
前記動き補償モジュールは、前記第1の参照ブロックを拡張し、第2の参照ブロックを得るとき、具体的には、
前記第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第2の参照ブロックを得るために用いられ、
前記動き補償モジュールは、前記第3の参照ブロックを拡張し、第4の参照ブロックを得るとき、
前記第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第4の参照ブロックを得るために用いられ、
Nは0又は正整数である、ことを特徴とする請求項18に記載の装置。
【請求項20】
前記第2の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第1の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第1の参照ブロックにおける近傍画素点の画素値をコピーして得られるものであり、
前記第4の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第2の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第3の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである、ことを特徴とする請求項19に記載の装置。
【請求項21】
前記動き補償モジュールは、前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得するとき、
前記第1のオリジナル予測値に基づいて第1の水平方向勾配及び第1の垂直方向勾配を決定し、
前記第2のオリジナル予測値に基づいて第2の水平方向勾配及び第2の垂直方向勾配を決定し、
前記水平方向レート、前記第1の水平方向勾配、前記第2の水平方向勾配、前記垂直方向レート、前記第1の垂直方向勾配及び前記第2の垂直方向勾配に基づいて、前記サブブロックの予測補償値を取得するために用いられる、ことを特徴とする請求項17に記載の装置。
【請求項22】
復号デバイスであって、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、請求項1~請求項11のいずれか1項に記載の符号化及び復号方法を実施するために用いられる、ことを特徴とする復号デバイス。
【請求項23】
符号化デバイスであって、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、請求項1~請求項11のいずれか1項に記載の符号化及び復号方法を実施するために用いられる、ことを特徴とする符号化デバイス。
【請求項24】
カメラであって、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、請求項1~請求項11のいずれか1項に記載の符号化及び復号方法を実施するために用いられる、ことを特徴とするカメラ。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は符号化及び復号技術分野に関し、特に符号化及び復号方法、装置及びデバイスに関する。
【背景技術】
【0002】
空間を節約する目的を達成するために、ビデオ画像は全て符号化されてから伝送され、完全なビデオ符号化方法は、予測、変換、量子化、エントロピー符号化、フィルタリングなどのプロセスを含むことができる。予測符号化は、イントラ符号化及びインター符号化を含み、インター符号化は、ビデオ時間域の関連性を利用して、近傍した符号化された画像の画素を用いて現在の画像の画素を予測し、ビデオの時間領域の冗長性を効果的に除去する目的を達成する。インター符号化では、動きベクトル(Motion Vector、MV)を用いて、現在ピクチャの現在ブロックと参照ピクチャの参照ブロックとの間の相対変位を表すことができる。例えば、現在ピクチャのビデオ画像Aと参照ピクチャのビデオ画像Bとの時間領域関連性が高く、ビデオ画像Aの画像ブロックA1(現在ブロック)を伝送する必要があると、ビデオ画像Bにおいて動き探索を行い、画像ブロックA1と最もマッチングする画像ブロックB1(すなわち、参照ブロック)を探索し、画像ブロックA1と画像ブロックB1との間の相対変位を決定し、該相対変位は画像ブロックA1の動きベクトルでもある。
【0003】
従来の方法では、現在ブロックが単方向ブロックである場合、現在ブロックの単方向動き情報を取得した後、該単方向動き情報に基づいて符号化/復号することができ、それにより、符号化性能を向上させる。一方、現在ブロックが双方向ブロックである場合、現在ブロックの双方向の動き情報を取得した後、該双方向の動き情報に基づいて2つの異なる方向からの予測画像を取得することができ、2つの異なる方向からの予測画像がミラー対称の関係を有することが多く、現在の符号化フレームワークでは、この特性を活用して冗長性をさらに除去していない。つまり、双方向のブロックの適用シーンには、現在、符号化性能が低いなどの問題がある。
【発明の概要】
【0004】
本発明は、符号化及び復号方法、装置及びデバイスを提供し、符号化性能を向上させることができる。
【課題を解決するための手段】
【0005】
本発明は符号化及び復号方法を提供し、前記方法は、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップと、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップとを含む。
【0006】
本発明は符号化及び復号方法を提供し、前記方法は、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップと、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップとを含む。
【0007】
本発明は符号化及び復号装置を提供し、前記装置は、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するための決定モジュールと、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うための動き補償モジュールとを含む。
【0008】
本発明は、復号デバイスを提供し、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【0009】
本発明は、符号化デバイスを提供し、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【0010】
本発明は、カメラを提供し、前記カメラは、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【発明の効果】
【0011】
以上技術的解決手段から分かるように、本発明の実施例では、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うことができ、それにより、高くない予測品質や予測誤差などの問題を解決し、ハードウェア実現容易さを向上させ、符号化性能を向上させ、符号化性能及び符号化効率を向上させることができる。
【図面の簡単な説明】
【0012】
本願の実施の形態の技術的態様をより明確に説明するために、以下、本願の実施の形態の説明において必要とされる図面について簡単に説明するが、以下に説明する図面は、本願に記載された幾つかの実施の形態にすぎず、当業者にとっては、また、本発明の実施形態のこれらの図面に基づいて、他の図面を得ることもできる。
図1A】本発明の一実施の形態における補間の概略図である。
図1B】本発明の一実施の形態におけるビデオ符号化フレームワークの概略図である。
図2】本発明の一実施の形態における符号化及び復号方法のフローチャートである。
図3】本発明の別の実施の形態における符号化及び復号方法のフローチャートである。
図4】本発明の別の実施の形態における符号化及び復号方法のフローチャートである。
図5】本発明の別の実施の形態における符号化及び復号方法のフローチャートである。
図6A】本発明の一実施の形態における参照ブロックを充填する概略図である。
図6B】本発明の一実施の形態における参照ブロックを充填する概略図である。
図6C】本発明の一実施の形態における参照ブロックを充填する概略図である。
図6D】本発明の一実施の形態における参照ブロックを充填する概略図である。
図6E】本発明の一実施の形態における参照ブロックを充填する概略図である。
図7】本発明の一実施の形態におけるターゲット参照ブロックの概略図である。
図8】本発明の一実施の形態における符号化及び復号装置の構造図である。
図9A】本発明の一実施の形態における復号デバイスのハードウェアアーキテクチャ図である。
図9B】本発明の一実施の形態における符号化デバイスのハードウェアアーキテクチャ図である。
【発明を実施するための形態】
【0013】
本発明の実施形態において使用される用語は、本発明の実施形態を限定するものではなく、特定を説明する目的でのみ使用されるものである。本願の実施形態及び特許請求の範囲において使用される単数形の「1つ」、「記載」及び「この」は、文脈が他の意味を明確に示さない限り、複数形を含むことも意図される。本明細書で使用される用語の「及び/または」は、関連してリストされた1つまたは複数のアイテムを含む任意のまたは全ての可能な組合せを意味することも理解されたい。本発明の実施形態では、用語の第1、第2、第3を適用して多様な情報を説明する可能性があるが、これらの情報はこれらに限定されるべきではないことを理解されたい。これらの用語は、同一類型の情報を相互に区別するためにのみ使用される。例えば、本願の範囲から逸脱することなく、第1の情報は第2の情報と称されてもよく、同様に、第2の情報は第1の情報と称されてもよい。文脈によって、なお、使用される言葉の「若し」は、「…するとき」又は「…する場合」又は「…に応えて」として解釈することができる。
【0014】
本発明の実施例では、符号化及び復号方法、装置及びデバイスを提供し、以下の概念に関する。
【0015】
イントラ予測及びインター予測(intra prediction and inter prediction)技術:イントラ(フレーム内)予測とは、ビデオの空間領域の関連性を利用して、現在の画像の符号化されたブロックの画素を用いて現在の画素を予測することによって、ビデオの空間領域の冗長性を除去する目的を達成することである。インター(フレーム間)予測とは、ビデオの時間領域の関連性を利用し、ビデオシーケンスが通常より高い時間領域関連性を持っているため、近傍した符号化された画像画素を用いて現在の画像の画素を予測することによって、ビデオの時間領域の冗長性を効果的に除去するという目的を達成することである。主なビデオ符号化標準のインター予測部分は、ブロックに基づいた動き補償技術を用い、主な原理は、現在の画像の各画素ブロックが前の符号化された画像のうち、1つの最適マッチングブロックを探索することであり、該プロセスは動き推定と呼ばれる。
【0016】
動きベクトル(Motion Vector、MV):インター符号化において、動きベクトルを用いて、現在ブロックとその参照ピクチャにおける最適マッチングブロックとの間の相対変位を表す。分割されたブロックはそれぞれに対応する動きベクトルが復号側に伝送され、各ブロックの動きベクトルを独立して符号化して伝送し、特に小サイズのブロックに分割すると、非常に多くのビットを消費する必要がある。動きベクトルを符号化するビット数を低減させるために、近傍する画像ブロック間の空間関連性を用いて、近傍した符号化されたブロックの動きベクトルに基づいて現在ブロックの動きベクトルを予測し、次に予測差分を符号化し、それにより、動きベクトルを表すビット数を効果的に低減させる。現在ブロックの動きベクトルを符号化するとき、近傍した符号化されたブロックの動きベクトルを用いて現在ブロックの動きベクトルを予測し、動きベクトルの予測値(MVP、Motion Vector Prediction)と動きベクトルの実際値との差分(MVD、MotionVector Difference)を符号化し、符号化ビット数を効果的に低減させる。
【0017】
動き情報(Motion Information):動きベクトルは現在ブロックとある参照ブロックとの位置オフセットを表し、従って、向いている画像ブロックの情報を正確に取得するために、動きベクトルのほか、どの参照ピクチャを用いるかを示すには参照ピクチャのインデックス情報が必要とされる。現在ピクチャに対して、参照ピクチャリストを作成し、参照ピクチャインデックス情報は、現在ブロックが参照ピクチャ画像リストにおける何番目の参照ピクチャを用いるかを示す。多くの符号化技術は、さらに、複数の参照ピクチャリストをサポートし、従って、参照方向と呼ばれる1つのインデックス値を利用して、どの参照ピクチャリストを用いるかを表すことができる。動きベクトル、参照ピクチャインデックス、参照方向など、動きに関連する情報は動き情報と呼ばれる。
【0018】
補間(Interpolation):現在の動きベクトルが非整数画素精度であれば、直接現在ブロックに対応する参照ピクチャから既存の画素値をコピーすることができず、現在ブロックの所要画素値は、補間により取得するしかできない。図1Aに示すように、オフセットが1/2画素の画素値Y1/2を取得する必要があれば、周りの既存の画素値Xを補間して取得することができる。例示的には、タップ数がNの補間フィルタを用いれば、周りのN個の整数画素を補間して取得する必要がある。
【0019】
例えば、タップ数が8であると、
【数1】
となり、aは、フィルタ係数すなわち重み付け係数である。
【0020】
動き補償:動き補償とは、補間又はコピーすることで、現在ブロックの全ての画素値を取得するプロセスである。
【0021】
融合モード(Merge mode):普通融合モード(すなわち、Normal Mergeモード、regular Mergeモードとも呼ばれる)、サブブロックモード(サブブロック動き情報を用いた融合モード、Subblock融合モードとも呼ばれる)、MMVDモード(動き差分を符号化する融合モード、merge with MVDモードとも呼ばれる)、CIIPモード(インターイントラ予測を組み合わせて新しい予測値を生成する融合モード、combine inter intra prediciton modeとも呼ばれる)、TPMモード(三角予測用の融合モード、triangular prediction modeとも呼ばれる)、GEOモード(任意の幾何学的分割形状に基づく融合モード、Geometrical Partitioningとも呼ばれる)を含む。
【0022】
スキップモード(skip mode):スキップモードは特殊な融合モードであり、スキップモードの融合モードとの相違点は、スキップモードでは残差分を符号化する必要がないことである。現在ブロックがスキップモードである場合、CIIPモードはデフォルトでオフであるが、普通融合モード、サブブロックモード、MMVDモード、TPMモード、GEOモードは依然として適用可能である。
【0023】
例示的には、普通融合モード、サブブロックモード、MMVDモード、CIIPモード、TPMモード、GEOモードなどに基づいて、如何に予測値を生成するかを決定する。予測値を生成した後、融合モードでは、予測値及び残差分を利用して再構築値を取得することができる。スキップモードでは、残差分は存在せず、予測値を直接利用して再構築値を取得する。
【0024】
シーケンスパラメータセット(SPS、sequence parameter set):シーケンスパラメータセットには、全シーケンスおいてあるツールのイネーブル・ディセーブルが許可されているかどうかを決定するフラグがある。フラグの値が1であれば、ビデオシーケンスにおいて、該フラグに対応するツールをイネーブルにすることが許可され、フラグの値が0であれば、ビデオシーケンスにおいて、該フラグに対応するツールを符号化プロセスにおいてイネーブルにすることが許可されない。
【0025】
普通融合モード:候補動き情報リストから1つの動き情報を選択し、該動き情報に基づいて現在ブロックの予測値を生成し、当該候補動き情報リストは、空間領域が近傍するブロック候補動き情報、時間領域が近傍するブロック候補動き情報、空間領域が近傍しないブロック候補動き情報、既存の動き情報に基づいて組み合わせて取得する動き情報、デフォルト動き情報などを含む。
【0026】
MMVDモード:普通融合モードの候補動き情報リストに基づいて、普通融合モードの候補動き情報リストから1つの動き情報を基準動き情報として選択し、テーブルルックアップ方法により動き情報差分を取得する。基準動き情報及び動き情報差分に基づいて最終的な動き情報を取得し、該最終的な動き情報に基づいて現在ブロックの予測値を生成する。
【0027】
CIIPモード:イントラ予測値とインター予測値とを組み合わせて現在ブロックの新しい予測値を取得する。
【0028】
サブブロックモード:サブブロックモードは、Affine融合モード及びサブブロックTMVPモードを含む。
【0029】
Affine(アフィン)融合モードは、普通融合モードに同様であり、候補動き情報リストから1つの動き情報を選択し、該動き情報に基づいて現在ブロックの予測値を生成する。普通融合モードとの相違点は、普通融合モードの候補動き情報リストにおける動き情報が2パラメータの並進動きベクトルであるが、Affine融合モードの候補動き情報リストにおける動き情報が4パラメータのAffine動き情報であるか、又は、6パラメータのAffine動き情報であることである。
【0030】
サブブロックTMVP(subblock-based temporal motion vector prediction)モードは、時間領域参照ピクチャにおいて、現在ブロックの予測値を生成するために、参照ブロックの動き情報を直接再使用し、該ブロック内の各サブブロックの動き情報は同じではなくてもよい。
【0031】
TPMモード:1つのブロックを2つの三角形サブブロック(45度及び135度の2つの三角形サブブロックがある)に分割し、この2つの三角形サブブロックは異なる単方向動き情報を有し、TPMモードは予測プロセスにのみ用いられ、後続の変換、量子化プロセスに影響を及ぼさず、ここの単方向動き情報も候補動き情報リストから直接取得されたものである。
【0032】
GEOモード:GEOモードはTPMモードと類似であるが、分割形状が異なる。GEOモードでは、1つの四角形ブロックを任意の形状の2つのサブブロック(TPMの2つの三角形サブブロックの形状を除く任意の他の形状、例えば、1つの三角形サブブロックと1つの五角形サブブロック、又は、1つの三角形サブブロックと1つの四角形サブブロック、又は、2つの台形サブブロックなど)に分割し、この分割形状は限定されない。GEOモードで分割されるこの2つのサブブロックは異なる単方向動き情報を有する。
【0033】
以上の例から分かるように、本実施例に係る融合モード及びスキップモードとは、候補動き情報リストから1つの動き情報を直接選択し、現在ブロックの予測値を生成する予測モードであり、これらの予測モードは符号化側で動き探索プロセスを行う必要がなく、MMVDモード以外の他のモードは、動き情報差分を符号化する必要がない。
【0034】
SMVD(Symmetric Motion Vector Difference、対称動きベクトル差分)モード:SMVDモードでの双方向の動き情報の2つのMVDは、対称的であり、すなわち、一方のMVDのみ符号化すればよく、他方のMVDは負のMVDである。SMVDモードとは、双方向の予測モードのある方向の動きベクトル差分を符号化することなく、直接別の方向の動きベクトル差分から推定して取得することを意味する。例示的には、シンプルな推定方法としては、直接ある方向の動きベクトル差分をスケーリングして取得し、スケーリング係数は、2つの参照ピクチャから現在ピクチャまでの距離に関連している。
【0035】
並進動きモデル:動きモデルは、2パラメータの動きモデル(例えば、2パラメータの動きベクトル)、4パラメータの動きモデル(例えば、4パラメータのアフィンモデル)、6パラメータの動きモデル(例えば、6パラメータのアフィンモデル)、8パラメータの動きモデル(例えば、投影モデル)などを含むことができるがこれに限られない。並進動きモデルは、2パラメータの動きモデルを意味し、並進は、同じ平面内において、1つの画像の全ての点をある直線方向に同じ距離移動することを意味し、このような画像動きは画像の並進動きと呼ばれ、並進と略称される。
【0036】
ビデオ符号化フレームワーク:図1Bに示すように、本発明の実施例の符号化側の処理プロセスはビデオ符号化フレームワークを用いて実現することができ、また、ビデオ復号フレームワークの概略図は図1Bと同様であり、ここでは省略する。本発明の実施例の復号側の処理プロセスは、ビデオ復号フレームワークを用いて実現することができる。具体的には、ビデオ符号化フレームワーク及びビデオ復号フレームワークは、イントラ予測、動き推定/動き補償、参照ピクチャバッファ、ループフィルタリング、再構築、変換、量子化、逆変換、逆量子化、エントロピーエンコーダなどのモジュールを含む。符号化側では、これらのモジュール間の連携により、符号化側の処理プロセスを実現することができ、復号側では、これらのモジュール間の連携により、復号側の処理プロセスを実現することができる。
【0037】
関連技術において、現在ブロックが双方向のブロックである(すなわち、現在ブロックが双方向の予測を用いたブロックである)場合、2つの異なる方向からの予測画像がミラー対称の関係を有することが多いが、現在の符号化フレームワークでは、この特性を活用して冗長性をさらに除去していないため、符号化性能が低いなどの問題がある。上記の発見については、本発明の実施例では、現在ブロックが双方向ブロックである場合、現在ブロックに対して双方向予測値補償モード(すなわち、双方向オプティカルフローモード)を起動すると決定すると、現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うことができ、それにより、高くない予測品質や予測誤差などの問題を解決し、ハードウェア実現容易さを向上させ、符号化性能を向上させ、符号化性能及び符号化効率を向上させることができる。例示的には、現在ブロックが双方向の予測を用いたブロックであることとは、現在ブロックの動き情報が双方向の動き情報であり、双方向の動き情報が第1の単方向動き情報及び第2の単方向動き情報と呼ばれる2つの異なる方向の動き情報を含むことである。第1の単方向動き情報は、第1の参照ピクチャに対応し、第1の参照ピクチャは、現在ブロックのある現在ピクチャの前にあってもよい。第2の単方向動き情報は、第2の参照ピクチャに対応し、第2の参照ピクチャは、現在ブロックのある現在ピクチャの後にあってもよい。
【0038】
以下、いくつかの特定の実施例を併せて、本発明の実施例の符号化及び復号方法について詳細に説明する。
【0039】
実施例1:図2に示すように、本発明の実施例において提供された符号化及び復号方法のフローチャートであり、該符号化及び復号方法は、復号側又は符号化側に適用することができ、該符号化及び復号方法は、ステップ201及びステップ202を含むことができる。
【0040】
ステップ201において、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定する。
【0041】
1つの可能な実施の形態では、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、
現在ブロックに対して輝度成分予測値補償を行うという条件のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定する。
【0042】
上記実施例では、9つの条件が与えられ、前記9つの条件が同時に満たされるか否かに応じて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定する。
【0043】
実際の応用では、さらに9つの条件のうち一部の条件を選択し、選択した一部の条件に基づいて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよい。例えば、9つの条件のうち5つの条件を選択し、この選択方式は制限されず、任意の5つの条件であってもよい。選択した5つの条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定し、選択した5つの条件のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定する。もちろん、9つの条件のうち他の数の条件を選択してもよいが、これについては限定しない。
【0044】
上記実施例では、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得されることは、現在ブロックが双方向の予測モードを用い、すなわち、現在ブロックの予測値が2つの参照ピクチャからの参照ブロック(予測ブロック)を重み付けて取得されることを意味する。現在ブロックは、第1の動き情報(すなわち第1の単方向動き情報)及び第2の動き情報(すなわち第2の単方向動き情報)とされた2つのリストの動き情報に対応するものであり、第1の動き情報は、第1の参照ピクチャ及び第1のオリジナル動きベクトルを含み、第2の動き情報は、第2の参照ピクチャ及び第2のオリジナル動きベクトルを含む。上記2つの参照ピクチャは、第1の参照ピクチャ及び第2の参照ピクチャであってもよい。2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあることは、第1の参照ピクチャが現在ブロックのある現在ピクチャの前にあり、第2の参照ピクチャが現在ピクチャの後にあることを意味する。第1の参照ピクチャは、第1のリスト(例えば、list0)にある前方向参照ピクチャとも呼ばれ、第2の参照ピクチャは、第2のリスト(例えば、list1)にある後方向参照ピクチャとも呼ばれる。
【0045】
上記実施例では、現在ブロックの幅、高さ及び面積が全て限定範囲内にあることは、幅が第1の閾値以上であり、高さが第2の閾値以上であり、面積が第3の閾値以上であること、又は、幅が第1の閾値以上であり、高さが第2の閾値以上であり、面積が第4の閾値よりも大きいことを含むことができるがこれらに限られない。例示的には、該第3の閾値は該第4の閾値よりも大きくてもよい。例えば、第1の閾値は8であってもよく、第2の閾値は8であってもよく、第3の閾値は128であってもよく、第4の閾値は64であってもよい。もちろん、上記数値はいくつかの例にすぎず、これについては限定しない。
【0046】
上記実施例では、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することは、シーケンスレベル制御情報(例えば、マルチピクチャの画像の制御情報)として、現在ブロックが双方向予測値補償モードを用いることを許可すること、及び/又は、ピクチャレベル制御情報(例えば、1ピクチャの画像の制御情報)として、現在ブロックが双方向予測値補償モードを用いることを許可することを含むことができるがこれに限られない。
【0047】
ステップ202において、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに対して双方向予測値補償モードに基づく動き補償を行う。
【0048】
1つの可能な実施の形態では、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、該サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、第1のオリジナル予測値及び第2のオリジナル予測値に基づいて該サブブロックの水平方向レート及び垂直方向レートを決定する。水平方向レート及び垂直方向レートに基づいて該サブブロックの予測補償値を取得し、第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいて該サブブロックのターゲット予測値を取得する。各サブブロックのターゲット予測値に基づいて現在ブロックの予測値を決定する。
【0049】
例示的には、該サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するステップは、該サブブロックに対応するユニットブロックを決定するステップであって、現在ブロックは、該ユニットブロックを含むことができ、該ユニットブロックは、該サブブロックを含むことができる、ステップと、該ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、第1の参照ブロックを拡張し、第2の参照ブロックを得、第2の参照ブロックから該サブブロックに対応する第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいて該サブブロックの第1のオリジナル予測値を決定するステップと、該ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャから第3の参照ブロックを決定し、第3の参照ブロックを拡張し、第4の参照ブロックを得、第4の参照ブロックから該サブブロックに対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいて該サブブロックの第2のオリジナル予測値を決定するステップとを含むことができるがこれらに限られない。
【0050】
例示的には、第1の参照ブロックを拡張し、第2の参照ブロックを得るステップは、第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第2の参照ブロックを得るステップを含むことができる。Nは0又は正整数である。第2の参照ブロックに充填されたN行の整数画素点の画素値及び充填されたN列の整数画素点の画素値は、第1の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、第2の参照ブロックに充填されたN行の整数画素点の画素値及び充填されたN列の整数画素点の画素値は、第1の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである。
【0051】
例示的には、第3の参照ブロックを拡張し、第4の参照ブロックを得るステップは、第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第4の参照ブロックを得るステップを含むことができる。Nは0又は正整数である。第4の参照ブロックに充填されたN行の整数画素点の画素値及び充填されたN列の整数画素点の画素値は、第2の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、第4の参照ブロックに充填されたN行の整数画素点の画素値及び充填されたN列の整数画素点の画素値は、第3の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである。
【0052】
1つの可能な実施の形態では、第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの水平方向レートを決定するステップは、第1のオリジナル予測値及び第2のオリジナル予測値に基づいて係数S1及び係数S3を決定するステップと、係数S1、係数S3及びレート閾値に基づいて該サブブロックの水平方向レートを決定するステップとを含むことができる。
【0053】
第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの垂直方向レートを決定するステップは、第1のオリジナル予測値及び第2のオリジナル予測値に基づいて係数S2、係数S5及び係数S6を決定するステップと、係数S2、係数S5、係数S6、レート閾値及び該サブブロックの水平方向レートに基づいて、該サブブロックの垂直方向レートを決定するステップとを含むことができる。
【0054】
例示的には、係数S1、係数S3、係数S2、係数S5及び係数S6の決定方式及び関連定義については、後の実施形態を参照することができ、ここでは省略する。
【0055】
例示的には、サブブロックの水平方向レートとは、該サブブロックの、参照ピクチャにおける対応する参照ブロック(すなわち、参照ピクチャに位置し該サブブロックに対応する参照ブロック)の水平方向(すなわちX方向)レートを意味する。
【0056】
例示的には、サブブロックの垂直方向レートは、該サブブロックの、参照ピクチャにおける対応する参照ブロック(すなわち、参照ピクチャに位置し該サブブロックに対応する参照ブロック)の垂直方向(すなわちY方向)レートを意味する。
【0057】
1つの可能な実施の形態では、該水平方向レート及び該垂直方向レートに基づいてサブブロックの予測補償値を取得するステップは、第1のオリジナル予測値に基づいて第1の水平方向勾配及び第1の垂直方向勾配を決定するステップと、第2のオリジナル予測値に基づいて第2の水平方向勾配及び第2の垂直方向勾配を決定するステップと、次に、該水平方向レート、該第1の水平方向勾配、該第2の水平方向勾配、該垂直方向レート、該第1の垂直方向勾配及び該第2の垂直方向勾配に基づいて、該サブブロックの予測補償値を取得するステップを含むことができるがこれに限られない。
【0058】
例示的には、該サブブロックの各画素位置については、第1の水平方向勾配は、該画素位置の、第1の参照ピクチャにおける対応する水平方向勾配、第1の垂直方向勾配は、該画素位置の、第1の参照ピクチャにおける対応する垂直方向勾配、第2の水平方向勾配は、該画素位置の、第2の参照ピクチャにおける対応する水平方向勾配、第2の垂直方向勾配は、該画素位置の、第2の参照ピクチャにおける対応する垂直方向勾配である。水平方向レートは、該サブブロックの水平方向レートであり(すなわち、該サブブロック内の各画素位置が同じ水平方向レートに対応)、垂直方向レートは、該サブブロックの垂直方向レートである(すなわち、該サブブロック内の各画素位置が同じ垂直方向レートに対応)。
【0059】
以上のように、該サブブロックの各画素位置については、該画素位置に対応する第1の水平方向勾配、第2の水平方向勾配、水平方向レート、垂直方向レート、第1の垂直方向勾配及び第2の垂直方向勾配に基づいて、該画素位置の予測補償値を決定する。次に、該画素位置に対応する第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいて、該画素位置のターゲット予測値を取得する。
【0060】
例示的には、各サブブロックについては、該サブブロックの各画素位置のターゲット予測値を得た後、これらの画素位置のターゲット予測値を該サブブロックのターゲット予測値として構成する。現在ブロックについては、現在ブロックの各サブブロックのターゲット予測値を得た後、これらのサブブロックのターゲット予測値を現在ブロックの予測値として構成する。
【0061】
以上の技術的解決手段からわかるように、本発明の実施例では、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うことができ、それにより、高くない予測品質や予測誤差などの問題を解決し、ハードウェア実現容易さを向上させ、符号化性能を向上させ、符号化性能及び符号化効率を向上させることができる。
【0062】
実施例2:上記の方法と同様の発想に基づいて、図3に示すように、本発明の実施例において提供された別の符号化及び復号方法のフローチャートであり、該方法は、復号側に適用することができ、該方法は、ステップ301~ステップ307を含むことができる。
【0063】
ステップ301において、符号化側は現在ブロックに対して双方向予測値補償モードを起動するか否かを決定する。そうである場合、ステップ302を行い、そうではない場合、本発明において提供された双方向予測値補償モードを用いる必要がなく、この場合の処理は限定されない。
【0064】
例示的には、符号化側が現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、動き情報に基づいて得られた予測値が十分に正確ではないことが示されるため、現在ブロックに対して双方向予測値補償モードを起動し(すなわち、本発明の技術の解決手段)、ステップ302を行う。復号側が現在ブロックに対して双方向予測値補償モードを起動しないと決定する場合、動き情報に基づいて得られた予測値が十分に正確あることが示されるため、現在ブロックに対して双方向予測値補償モードを起動しない。
【0065】
例示的には、復号側はコードストリームを受信し、コードストリームにおける復号化された情報(該復号化された情報に基づいて実施例1の関連条件が満たされるか否かを取得する)に基づいて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定する。
【0066】
ステップ302において、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、復号側は、該サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定する。
【0067】
例示的には、現在ブロックを少なくとも1つのユニットブロックに分割してもよく、例えば、現在ブロックは、1つのユニットブロック(すなわち、該ユニットブロックが現在ブロックである)を含んでもよく、又は、現在ブロックは、少なくとも2つのユニットブロックを含んでもよい。例えば、ユニットブロックの幅はdx、高さはdy、現在ブロックの幅はW、高さはHである。Wがaよりも大きいと、dxはaであり、Wがa以下であると、dxはWである。Hがaよりも大きいと、dyはaであり、Hがa以下であると、dyはHである。aの値は、経験的に設定することができ、例えば、4、8、16、32などであってもよい。説明の便利上のために、以下、a=16を例として説明する。例えば、現在ブロックのサイズが8*16であると、現在ブロックは、サイズが8*16の1つのユニットブロックのみを含む。また例えば、現在ブロックのサイズが8*32であると、現在ブロックは、サイズがともに8*16のユニットブロック1及びユニットブロック2を含む。また例えば、現在ブロックのサイズが16*32であると、現在ブロックは、サイズがともに16*16のユニットブロック1及びユニットブロック2を含む。もちろん、上記はいくつかの例にすぎず、これについては限定しない。説明の便利上のために、以下、現在ブロックをサイズがともに16*16のユニットブロック1及びユニットブロック2に分割することを例として説明する。
【0068】
各ユニットブロックについては、該ユニットブロックを少なくとも1つのサブブロックに分割してもよく、例えば、サブブロックのサイズが4*4であると、ユニットブロック1を16個のサブブロックに分割してもよく、ユニットブロック2を16個のサブブロックに分割してもよい。また例えば、サブブロックのサイズが8*8であると、ユニットブロック1を4つのサブブロックに分割してもよく、ユニットブロック2を4つのサブブロックに分割してもよい。また例えば、サブブロックのサイズが16*16であると、ユニットブロック1を1つのサブブロックに分割してもよく、ユニットブロック2を1つのサブブロックに分割してもよい。もちろん、上記はいくつかの例にすぎず、これについては限定しない。説明の便利上のために、以下、ユニットブロック1を16個のサブブロックに分割し、ユニットブロック2を16個のサブブロックに分割することを例として説明する。
【0069】
各ユニットブロック(以下、ユニットブロック1を例とする)については、ユニットブロック1の第1の単方向動き情報に基づいて、第1の参照ピクチャから、第1の参照ブロックを決定し、ユニットブロック1のサイズが16*16であり、第1の参照ブロックのサイズが16*16である。次に、第1の参照ブロックを拡張し、第2の参照ブロックを得、例えば、第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第2の参照ブロックを得る。Nを1とする場合、第2の参照ブロックのサイズは18*18であり、Nを2とする場合、第2の参照ブロックのサイズは20*20であり、他も同様であり、以下、第2の参照ブロックのサイズが18*18であることを例として説明する。ユニットブロック1の第2の単方向動き情報に基づいて第2の参照ピクチャから、サイズが16*16の第3の参照ブロックを決定する。次に、第3の参照ブロックを拡張し、第4の参照ブロックを得、例えば、第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第4の参照ブロックを得る。Nを1とする場合、第4の参照ブロックのサイズは18*18であり、Nを2とする場合、第4の参照ブロックのサイズは20*20であり、他も同様であり、以下、第4の参照ブロックのサイズが18*18であることを例として説明する。
【0070】
例示的には、現在ブロックが双方向のブロックであると(すなわち、現在ブロックが双方向の予測を用いたブロックである)、現在ブロックに対応する双方向の動き情報を取得することができ、この取得方式は限定されない。この双方向の動き情報は、第1の単方向動き情報(例えば、第1の動きベクトル及び第1の参照ピクチャインデックス)及び第2の単方向動き情報(例えば、第2の動きベクトル及び第2の参照ピクチャインデックス)と呼ばれる2つの異なる方向の動き情報を含む。第1の単方向動き情報に基づいて、現在ブロックのある現在ピクチャの前にある第1の参照ピクチャ(例えば、参照ピクチャ0)を決定することができ、第2の単方向動き情報に基づいて、現在ブロックのある現在ピクチャの後にある第2の参照ピクチャ(例えば、参照ピクチャ1)を決定することができる。
【0071】
例示的には、現在ブロックの各ユニットブロックに対して、該ユニットブロックの第1の単方向動き情報は現在ブロックの第1の単方向動き情報と同じであり、該ユニットブロックの第2の単方向動き情報は現在ブロックの第2の単方向動き情報と同じである。
【0072】
ユニットブロック1の各サブブロック(以下、サブブロック11を例として説明する)については、サイズが18*18の第2の参照ブロックからサブブロック11に対応する第1のターゲット参照ブロックを選択し、サブブロック11のサイズは4*4であってもよく、第1のターゲット参照ブロックのサイズは6*6であってもよく、第1のターゲット参照ブロックの画素値に基づいてサブブロック11の第1のオリジナル予測値を決定する。サイズが18*18の第4の参照ブロックからサブブロック11に対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックのサイズは6*6であってもよく、第2のターゲット参照ブロックの画素値に基づいてサブブロック11の第2のオリジナル予測値を決定する。
【0073】
ステップ303において、復号側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの水平方向レートを決定する。
【0074】
例えば、復号側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいて係数S1及び係数S3を決定し、係数S1、係数S3及びレート閾値に基づいて該サブブロックの水平方向レートを決定する。
【0075】
ステップ304において、復号側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの垂直方向レートを決定する。
【0076】
例えば、復号側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいて係数S2、係数S5及び係数S6を決定し、該係数S2、該係数S5、該係数S6、レート閾値及び該サブブロックの水平方向レートに基づいて、該サブブロックの垂直方向レートを決定する。
【0077】
ステップ305において、復号側は水平方向レート及び垂直方向レートに基づいて該サブブロックの予測補償値を取得する。
【0078】
ステップ306において、復号側は第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいて該サブブロックのターゲット予測値を取得する。
【0079】
例示的には、ステップ305及びステップ306において、該サブブロックの各画素位置については、該画素位置の、第1の参照ピクチャにおける対応する第1の水平方向勾配及び第1の垂直方向勾配を決定し、該画素位置の、第2の参照ピクチャにおける対応する第2の水平方向勾配及び第2の垂直方向勾配を決定することができる。
【0080】
次に、該画素位置に対応する第1の水平方向勾配、第2の水平方向勾配、第1の垂直方向勾配、第2の垂直方向勾配、水平方向レート(すなわち、サブブロックの水平方向レートであり、サブブロック内の各画素位置が同じ水平方向レートに対応)、垂直方向レート(すなわち、サブブロックの垂直方向レートであり、サブブロック内の各画素位置が同じ垂直方向レートに対応)に基づいて、該画素位置の予測補償値を決定する。次に、該画素位置に対応する第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいて、該画素位置のターゲット予測値を取得する。
【0081】
例示的には、各サブブロックについては、該サブブロックの各画素位置のターゲット予測値を得た後、これらの画素位置のターゲット予測値を該サブブロックのターゲット予測値として構成することができる。
【0082】
ステップ307において、復号側は各サブブロックのターゲット予測値に基づいて現在ブロックの予測値を決定する。
【0083】
実施例3:上記方法と同様の発想に基づいて、図4に示すように、本発明の実施例において提供された別の符号化及び復号方法のフローチャートであり、該方法は符号化側に適用することができ、該方法は、ステップ401~ステップ407を含むことができる。
【0084】
ステップ401において、符号化側は、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定する。そうである場合、ステップ402を行い、そうではない場合、本発明において提供された双方向予測値補償モードを用いる必要がなく、この場合の処理は限定されない。
【0085】
例示的には、符号化側が現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、動き情報に基づいて得られた予測値が十分に正確であることが示されるため、現在ブロックに対して双方向予測値補償モードを起動し(すなわち、本発明の技術の解決手段)、ステップ402を行う。符号化側が現在ブロックに対して双方向予測値補償モードを起動しないと決定する場合、動き情報に基づいて得られた予測値が十分に正確であることが示されるため、現在ブロックに対して双方向予測値補償モードを起動しない。
【0086】
ステップ402において、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、符号化側は、現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、該サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定する。
【0087】
ステップ403において、符号化側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの水平方向レートを決定する。
【0088】
ステップ404において、符号化側は第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの垂直方向レートを決定する。
【0089】
ステップ405において、符号化側は水平方向レート及び垂直方向レートに基づいて該サブブロックの予測補償値を取得する。
【0090】
ステップ406において、符号化側は第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいて該サブブロックのターゲット予測値を取得する。
【0091】
ステップ407において、符号化側は各サブブロックのターゲット予測値に基づいて現在ブロックの予測値を決定する。
【0092】
例示的には、ステップ401~ステップ407は、ステップ301~ステップ307を参照することができ、ここでは省略される。
【0093】
実施例4:実施例1~実施例3は、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定することに関する。以下、実施例4を併せて、双方向予測値補償モードの起動プロセスを説明する。1つの可能な実施の形態では、以下の起動条件を与えることができる。もちろん、以下のこれらの起動条件は、本発明の1つの例にすぎず、実際の応用では、以下のこれらの起動条件を任意に組み合わせることができ、これについては限定しない。
【0094】
例示的には、以下の起動条件のうちの全ての起動条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定することができる。以下の起動条件のうちのいずれか又は複数の起動条件が満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定することができる。
【0095】
1、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可する。
【0096】
例示的には、該制御情報は、シーケンスレベル制御情報及び/又はピクチャレベル制御情報を含むことができるがこれに限られない。
【0097】
1つの可能な実施の形態では、シーケンスレベル(例えば、マルチフレーム画像)制御情報は、制御フラグ(例えば、sps_cur_tool_enabled_flag)を含むことができるがこれらに限られず、ピクチャレベル(例えば、1フレームの画像)制御情報は、制御フラグ(例えば、pic_cur_tool_disabled_flag)を含むことができるがこれらに限られない。sps_cur_tool_enabled_flagが第1の値であり、pic_cur_tool_disabled_flagが第2の値であるであると、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0098】
sps_cur_tool_enabled_flagは、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可するか否かを示す。pic_cur_tool_disabled_flagは、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可しないか否かを示す。
【0099】
例えば、sps_cur_tool_enabled_flagが第1の値であると、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可することが示される。pic_cur_tool_disabled_flagが第2の値であると、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可することが示される。また例えば、sps_cur_tool_enabled_flagが第2の値である及び/又はpic_cur_tool_disabled_flagが第1の値であると、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示され、すなわち、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可しない。
【0100】
別の可能な実施の形態では、シーケンスレベル(例えば、マルチフレーム画像)制御情報は、制御フラグ(例えば、sps_cur_tool_disabled_flag)を含むことができるがこれらに限られず、ピクチャレベル(例えば、1フレームの画像)制御情報は、制御フラグ(例えば、pic_cur_tool_disabled_flag)を含むことができるがこれらに限られない。sps_cur_tool_disabled_flagが第2の値であり、pic_cur_tool_disabled_flagが第2の値であると、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0101】
sps_cur_tool_disabled_flagは、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可しないか否かを示す。pic_cur_tool_disabled_flagは、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可しないか否かを示す。
【0102】
例えば、sps_cur_tool_disabled_flagが第2の値であると、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可することが示される。pic_cur_tool_disabled_flagが第2の値であると、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可することが示される。また例えば、sps_cur_tool_disabled_flagが第1の値である及び/又はpic_cur_tool_disabled_flagが第1の値であると、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示され、すなわち、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可しない。
【0103】
別の可能な実施の形態では、シーケンスレベル(例えば、マルチフレーム画像)制御情報は制御フラグ(例えば、sps_cur_tool_enabled_flag)を含むことができるがこれらに限られず、ピクチャレベル(例えば、1フレームの画像)制御情報は、制御フラグ(例えば、pic_cur_tool_enabled_flag)を含むことができるがこれらに限られない。sps_cur_tool_enabled_flagが第1の値であり、pic_cur_tool_enabled_flagが第1の値であると、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0104】
sps_cur_tool_enabled_flagは、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可するか否かを示す。pic_cur_tool_enabled_flagは、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可するか否かを示す。
【0105】
例えば、sps_cur_tool_enabled_flagが第1の値であると、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可することが示される。pic_cur_tool_enabled_flagが第1の値であると、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可することが示される。また例えば、sps_cur_tool_enabled_flagが第2の値である及び/又はpic_cur_tool_enabled_flagが第2の値であると、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示され、すなわち、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可しない。
【0106】
別の可能な実施の形態では、シーケンスレベル(例えば、マルチフレーム画像)制御情報は、制御フラグ(例えば、sps_cur_tool_disabled_flag)を含むことができるがこれらに限られず、ピクチャレベル(例えば、1フレームの画像)制御情報は、制御フラグ(例えば、pic_cur_tool_enabled_flag)を含むことができるがこれらに限られない。sps_cur_tool_disabled_flagが第2の値であり、pic_cur_tool_enabled_flagが第1の値であると、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0107】
sps_cur_tool_disabled_flagは、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可しないか否かを示す。pic_cur_tool_enabled_flagは、ことを許可するか否かを示す現在の画像内の各ブロックが双方向予測値補償モードを用いる。
【0108】
例えば、sps_cur_tool_disabled_flagが第2の値であると、シーケンスにおける全ての画像が双方向予測値補償モードを用いることを許可することが示される。pic_cur_tool_enabled_flagが第1の値であると、現在の画像内の各ブロックが双方向予測値補償モードを用いることを許可することが示される。また例えば、sps_cur_tool_disabled_flagが第1の値である及び/又はpic_cur_tool_enabled_flagが第2の値であると、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示され、すなわち、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可しない。
【0109】
上記実施例では、第1の値は1であってもよく、第2の値は0であってもよく、又は、第1の値は0であってもよく、第2の値は1であってもよく、もちろん、上記は本願の2つの例にすぎず、これについては限定しない。
【0110】
例示的には、本明細書のフレーム又はピクチャは画像に相当し、例えば、現在ピクチャは現在の画像を表し、参照ピクチャは参照画像を表す。
【0111】
2、現在ブロックが並進動きモデルを用いる。
【0112】
例示的には、現在ブロックは並進動きモデルを用い、すなわち、現在ブロックの動きモデルインデックスMotionModelIdcは0であり、該動きモデルインデックスは、並進動きモデル(すなわち、2パラメータの動きモデル)の動きモデルインデックスを意味する。
【0113】
例示的には、現在ブロックが並進動きモデルを用いることとは、現在ブロックが非並進動きモデルを用いないことを意味する。1つの可能な実施の形態では、非並進動きモデルは、4パラメータ又は6パラメータのaffine動きモデルを含むことができるがこれに限られない。
【0114】
例示的には、現在ブロックが並進動きモデルを用いないと、起動条件2が満たされないことが示される。又は、現在ブロックの動きモデルインデックスMotionModelIdcが0ではないと、起動条件2が満たされないことが示される。又は、現在ブロックが非並進動きモデル(例えば、4パラメータ又は6パラメータのaffine動きモデル)を用いると、起動条件2が満たされないことが示される。
【0115】
3、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもない。
【0116】
例示的には、現在ブロックの予測モードがサブブロックモードを用いず(例えば、現在ブロックのmerge_subblock_flagが0である)、現在ブロックの予測モードがSMVDモードを用いず(例えば、現在ブロックのsym_mvd_flagが0である)、現在ブロックの予測モードがCIIPモードを用いない(例えば、現在ブロックのciip_flagが0である)と、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0117】
例えば、現在ブロックの予測モード(例えば、インター予測モード)が融合モード又はスキップモードであり、現在ブロックの予測モードが普通融合モードであると、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないことが示される。例えば、現在ブロックの予測モードが融合モード又はスキップモードであり、現在ブロックの予測モードがMMVDモードであると、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないことが示される。例えば、現在ブロックの予測モードが融合モード又はスキップモードであり、現在ブロックの予測モードがTPMモードであると、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないことが示される。例えば、現在ブロックの予測モードが融合モード又はスキップモードであり、現在ブロックの予測モードがGEOモードであると、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないことが示される。もちろん、上記はいくつかの例にすぎず、これについては限定しない。
【0118】
例示的には、現在ブロックの予測モードがサブブロックモードであると、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件3が満たされないことが示される。又は、現在ブロックの予測モードがSMVDモードであると、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件3が満たされないことが示される。又は、現在ブロックの予測モードがCIIPモードであると、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件3が満たされないことが示される。
【0119】
4、現在ブロックの予測値が2つの参照ピクチャからの参照ブロック(すなわち、予測ブロック)の重み付けによって取得され、2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、2つの参照ピクチャから現在ピクチャまでの距離が同じである。
【0120】
例示的には、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得されることとは、現在ブロックが双方向の予測を用い、すなわち、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得されることを意味する。
【0121】
例示的には、現在ブロックは、第1の動き情報及び第2の動き情報とされた2つのリストの動き情報に対応するものであってもよく、第1の動き情報は、第1の参照ピクチャ及び第1のオリジナル動きベクトルを含み、第2の動き情報は、第2の参照ピクチャ及び第2のオリジナル動きベクトルを含む。2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあることとは、第1の参照ピクチャが現在ブロックのある現在ピクチャの前にあり、第2の参照ピクチャが現在ピクチャの後に位置することを意味する。
【0122】
1つの可能な実施の形態では、現在ブロックに2つのリスト(例えば、list0及びlist1)の動き情報(例えば、2つの参照ピクチャ及び2つの動きベクトル)があり、2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、2つの参照ピクチャから現在ピクチャのまでの距離が同じである場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0123】
2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、2つの参照ピクチャから現在ピクチャのまでの距離が同じである場合、現在ピクチャの表示順序番号POC_Curと、list0の参照ピクチャの表示順序番号POC_0と、list1の参照ピクチャの表示順序番号POC_1との相対関係で示すことができる。即ち、(POC_1-POC_Cur)が(POC_Cur-POC_0)に完全に等しい。
【0124】
例示的には、現在ブロックは双方向の予測を用い、現在ブロックに対応する2つの参照ピクチャは異なる方向からのものであり、つまり、現在ブロックに対応する一方の参照ピクチャは現在ピクチャの前にあり、現在ブロックに対応する他方の参照ピクチャは現在ピクチャの後にある。
【0125】
例示的には、現在ブロックに1つの参照ピクチャしかない場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件4が満たされないことが示される。又は、現在ブロックに2つの参照ピクチャがあるが、2つの参照ピクチャの表示順序がともに現在ピクチャの前にある場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件4が満たされないことが示される。又は、現在ブロックに2つの参照ピクチャがあるが、2つの参照ピクチャの表示順序がともに現在ピクチャの後にある場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件4が満たされないことが示される。又は、現在ブロックに2つの参照ピクチャがあり、2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあるが、2つの参照ピクチャから現在ピクチャまでの距離が異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件4が満たされないことが示される。
【0126】
5、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じである。
【0127】
1つの可能な実施の形態では、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じである場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。例示的には、2つの参照ピクチャのピクチャレベルの重み付けウェイトが同じであり、例えば、参照ピクチャrefIdxL0の輝度重み付けウェイト(luma_weight_l0_flag[refIdxL0])が参照ピクチャrefIdxL1の輝度重み付けウェイト(luma_weight_l1_flag[refIdxL1])に等しい場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであることが示される。又は、2つの参照ピクチャのブロックレベルの重み付けウェイトが同じであり、例えば、現在ブロックのブロックレベル重み付け値のインデックスBcwIdx[xCb][yCb]が0である場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであることが示される。又は、2つの参照ピクチャのピクチャレベルの重み付けウェイトが同じであり、2つの参照ピクチャのブロックレベルの重み付けウェイトが同じである場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであることが示される。
【0128】
例示的には、現在ブロックの2つの参照ピクチャの重み付けウェイトが異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件5が満たされないことが示される。例えば、2つの参照ピクチャのピクチャレベルの重み付けウェイトが異なる場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが異なることが示される。又は、2つの参照ピクチャのブロックレベルの重み付けウェイトが異なる場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが異なることが示される。又は、2つの参照ピクチャのピクチャレベルの重み付けウェイトが異なり、2つの参照ピクチャのブロックレベルの重み付けウェイトが異なる場合、現在ブロックの2つの参照ピクチャの重み付けウェイトが異なることが示される。
【0129】
例示的には、現在ブロックの2つの参照ピクチャの重み付けウェイトは、双方向の重み付け補償のときに用いられるウェイトである。例えば、現在ブロックの各サブブロックに対して、該各サブブロックの2つの予測値を取得した後(取得プロセスは、後続の実施例を参照)、この2つの予測値を重み付けし、該サブブロックの最終予測値を得る必要がある。この2つの予測値を重み付けするとき、この2つの予測値に対応するウェイトは、現在ブロックの2つの参照ピクチャの重み付けウェイトであり、すなわち、この2つの予測値に対応するウェイトは同じである。
【0130】
6、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャである。又は、現在ブロックの2つの参照ピクチャがともに長期参照ピクチャではない。
【0131】
1つの可能な実施の形態では、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャである場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。短期参照ピクチャは、現在ピクチャに近い参照ピクチャを意味し、一般に実際の画像フレームである。
【0132】
例示的には、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャではない場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件6が満たされないことが示される。又は、現在ブロックの1つの参照ピクチャが短期参照ピクチャではない場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件6が満たされないことが示される。又は、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャではない場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件6が満たされないことが示される。
【0133】
別の可能な実施の形態では、現在ブロックの2つの参照ピクチャがともに長期参照ピクチャではない場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。長期参照ピクチャの表示番号POCには実際の意味がなく(条件4が無効になってしまう)、長期参照ピクチャは、現在ピクチャから離れる参照ピクチャ、又は、数フレームの実際の画像を合成した画像フレームを意味する。
【0134】
例示的には、現在ブロックの1つの参照ピクチャが長期参照ピクチャである場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件6が満たされないことが示される。又は、現在ブロックの2つの参照ピクチャがともに長期参照ピクチャである場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件6が満たされないことが示される。
【0135】
7、現在ブロックの幅、高さ及び面積が全て限定範囲内にある。
【0136】
1つの可能な実施の形態では、現在ブロックの幅cbWidthが第1の閾値(例えば8)以上であり、現在ブロックの高さcbHeightが第2の閾値(例えば8)以上であり、現在ブロックの面積(cbHeight*cbWidth)が第3の閾値(例えば、128)以上である場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0137】
例示的には、現在ブロックの幅cbWidthが第1の閾値未満である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。又は、現在ブロックの高さcbHeightが第2の閾値未満である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。又は、現在ブロックの面積が第3の閾値未満である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。
【0138】
別の可能な実施の形態では、現在ブロックの幅cbWidthが第1の閾値(例えば8)以上であり、現在ブロックの高さcbHeightが第2の閾値(例えば8)以上であり、現在ブロックの面積(cbHeight*cbWidth)が第4の閾値(例えば64)よりも大きい場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0139】
例示的には、現在ブロックの幅cbWidthが第1の閾値未満である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。又は、現在ブロックの高さcbHeightが第2の閾値未満である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。又は、現在ブロックの面積が第4の閾値以下である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件7が満たされないことが示される。
【0140】
8、現在ブロックの2つの参照ピクチャのサイズが現在ピクチャのサイズと同じである(長さも幅も同じである)。
【0141】
1つの可能な実施の形態では、list0の参照ピクチャのサイズが現在ピクチャのサイズと同じであり、例えば、list0の参照ピクチャの幅が現在ピクチャの幅と同じであり、list0の参照ピクチャの高さが現在ピクチャの高さと同じであり、list1の参照ピクチャのサイズが現在ピクチャのサイズと同じであり、例えば、list1の参照ピクチャの幅が現在ピクチャの幅と同じであり、list1の参照ピクチャの高さが現在ピクチャの高さと同じである場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0142】
例示的には、現在ブロックの2つの参照ピクチャのうちの少なくとも1つの参照ピクチャのサイズが現在ピクチャのサイズが異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件8が満たされないことが示される。例えば、list0の参照ピクチャの幅が現在ピクチャの幅と異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示される。又は、list0の参照ピクチャの高さが現在ピクチャの高さと異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示される。又は、list1の参照ピクチャの幅が現在ピクチャの幅と異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示される。又は、list1の参照ピクチャの高さが現在ピクチャの高さと異なる場合、現在ブロックが双方向予測値補償モードを用いることを許可しないことが示される。
【0143】
9、現在ブロックに対して輝度成分予測値補償を行い、すなわち、予測値補償を必要とするのが輝度成分である。
【0144】
例示的には、現在ブロックの各画素位置の画素値は、輝度成分及び2つのクロマ成分を含むことができ、現在ブロックの各画素位置の画素値に対して双方向予測値補償モードに基づく動き補償を行うとき、該画素値の輝度成分に対して動き補償を行う場合、すなわち、現在の成分が輝度成分である場合、現在ブロックが双方向予測値補償モードを用いることを許可することが示される。
【0145】
例示的には、現在ブロックの各画素位置の画素値に対して動き補償を行うとき、該画素値のクロマ成分に対して動き補償を行う場合、すなわち、現在の成分がクロマ成分である場合、現在ブロックが双方向予測値補償モードを用いることを許可せず、すなわち、起動条件9が満たされないことが示される。
【0146】
実施例5:図5に示すように、本発明の実施例において提供された符号化及び復号方法のフローチャートであり、該符号化及び復号方法は復号側又は符号化側に適用することができ、該符号化及び復号方法は、ステップ501及びステップ502を含むことができる。
【0147】
ステップ501において、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定する。
【0148】
1つの可能な実施の形態では、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、
現在ブロックが並進動きモデルを用いるという条件、
現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、
現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、
現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、
現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、
現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、
現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定する。
【0149】
上記実施例では、8つの条件が与えられ、前記8つの条件が同時に満たされるか否かに応じて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定する。
【0150】
実際の応用では、さらに8つの条件のうち一部の条件を選択し、選択した一部の条件に基づいて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよい。例えば、8つの条件のうち5つの条件を選択し、この選択方式は制限されず、任意の5つの条件であってもよい。選択した5つの条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定し、選択した5つの条件のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定する。もちろん、さらに8つの条件のうち他の数の条件を選択してもよいが、これについては限定しない。
【0151】
ステップ502において、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、現在ブロックに対して双方向予測値補償モードに基づく動き補償を行い、具体的な実現プロセスについては、ステップ202を参照することができ、ここで詳しく説明しない。
【0152】
実施例5の実現プロセスについては、実施例1~実施例4を参照することができ、相違点は、双方向予測値補償モードの起動条件が「現在ブロックに対して輝度成分予測値補償を行う」という条件を含まないことであり、ここで詳しく説明しない。
【0153】
例示的には、双方向予測値補償モードを用いて現在ブロックのクロマ成分に対して予測値補償を行う効果が高いと、現在ブロックに対してクロマ成分予測値補償を行ってもよく、すなわち、「現在ブロックに対して輝度成分予測値補償を行う」という起動条件を用いる必要がなく、現在ブロックに対して輝度成分及びクロマ成分の予測値補償を行うことを許可する。
【0154】
実施例6:以下、具体的な適用シーンを併せて、符号化及び復号方法を説明し、該符号化及び復号方法は、ステップa1~ステップa8を含むことができる。
【0155】
ステップa1において、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定し、そうである場合、ステップa2を行う。
【0156】
例示的には、実施例1の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよく、又は、実施例5の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定するし、又は、実施例4の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよい。この決定方式について詳しく説明しない。
【0157】
ステップa2において、現在ブロックを少なくとも1つのユニットブロックに分割し、ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、第1の参照ブロックを拡張し、第2の参照ブロックを得る。ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャから第3の参照ブロックを決定し、第3の参照ブロックを拡張し、第4の参照ブロックを得る。
【0158】
例示的には、現在ブロックは、1つのユニットブロック(すなわち、該ユニットブロックが現在ブロックである)を含んでもよいし、少なくとも2つのユニットブロックを含んでもよい。例えば、ユニットブロックの幅がdx、高さがdy、現在ブロックの幅がW、高さがHであると、dx=W>a?a:W、dy=H>a? a:Hである。例えば、Wがaよりも大きいと、dxはaである。Wがa以下であると、dxはWである。Hがaよりも大きいと、dyはaである。Hがa以下であると、dyはHである。aの値は、経験的に設定することができ、例えば、4、8、16、32などであり、説明の便利上のために、以下、a=16を例として説明する。例えば、現在ブロックのサイズが8*16であると、現在ブロックは、サイズが8*16の1つのユニットブロックのみを含む。また例えば、現在ブロックのサイズが8*32であると、現在ブロックは、サイズがともに8*16のユニットブロック1及びユニットブロック2を含む。また例えば、現在ブロックのサイズが16*32であると、現在ブロックは、サイズがともに16*16のユニットブロック1及びユニットブロック2を含む。もちろん、上記はいくつかの例にすぎず、これについては限定しない。説明の便利上のために、以下、現在ブロックをサイズがともに16*16のユニットブロック1及びユニットブロック2に分割することを例として説明する。
【0159】
例示的には、現在ブロックが双方向のブロックであると(すなわち、現在ブロックが双方向の予測を用いたブロックである)、現在ブロックに対応する双方向の動き情報を取得することができ、この取得方式は限定されない。この双方向の動き情報は、第1の単方向動き情報(例えば、第1の動きベクトル及び第1の参照ピクチャインデックス)及び第2の単方向動き情報(例えば、第2の動きベクトル及び第2の参照ピクチャインデックス)と呼ばれる2つの異なる方向の動き情報を含む。現在ブロックの各ユニットブロックについては、該ユニットブロックの第1の単方向動き情報は現在ブロックの第1の単方向動き情報と同じであり、該ユニットブロックの第2の単方向動き情報は現在ブロックの第2の単方向動き情報と同じである。該第1の単方向動き情報に基づいて、現在ブロックのある現在ピクチャの前にある第1の参照ピクチャ(例えば、参照ピクチャ0)を決定することができ、該第2の単方向動き情報に基づいて、現在ブロックのある現在ピクチャの後にある第2の参照ピクチャ(例えば、参照ピクチャ1)を決定することができる。
【0160】
各ユニットブロック(以下、ユニットブロック1を例とする)については、ユニットブロック1の第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、ユニットブロック1のサイズがdx*dy(例えば、16*16)、第1の参照ブロックのサイズが16*16である。次に、第1の参照ブロックを拡張し、第2の参照ブロックを得、例えば、第1の参照ブロックの上下左右にそれぞれNの充填を行い(Nは0、1、2、3、4などであってもよく、Nが0であると、充填しない)、例えば、第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、サイズが(16+2N)*(16+2N)の第2の参照ブロックを得る。
【0161】
1つの可能な実施の形態では、N行/N列の整数画素点の充填方法は、第1の参照ピクチャにおける近傍する整数画素領域からコピーすることであってもよい。例えば、第2の参照ブロックにおけるN行の整数画素点の画素値及びN列の整数画素点の画素値は、第1の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものである。
【0162】
例えば、Nを1とする場合、第1の参照ブロックの上縁に1行の整数画素点を充填し、第1の参照ブロックの下縁に1行の整数画素点を充填し、第1の参照ブロックの左縁に1列の整数画素点を充填し、第1の参照ブロックの右縁に1列の整数画素点を充填し、サイズが18*18の第2の参照ブロックを得る。
【0163】
例示的には、画素位置の勾配値の水平成分を決定するとき、該画素位置の左側画素位置の画素値及び該画素位置の右側画素位置の画素値を用いる必要があり、画素位置の勾配値の垂直成分を決定するとき、該画素位置の上方画素位置の画素値及び該画素位置の下方画素位置の画素値を用いる必要があることを配慮すると、第1の参照ブロックの縁の画素位置は、少なくとも一側の画素位置がない。例えば、第1の参照ブロックの上縁の画素位置は、該第1の参照ブロック内に上方の画素位置がない。第1の参照ブロックの左縁の画素位置は、該第1の参照ブロック内に左側の画素位置がない。従って、各画素位置の勾配値を決定するために、第1の参照ブロックの上下左右縁にそれぞれN行/N列の整数画素位置(画素は整数である)を充填する必要がある。
【0164】
例示的には、帯域幅の増加を減少させるために、充填する行/列の整数画素位置の画素値は、直接第1の参照ピクチャにおける近傍する整数画素位置の画素値からコピーして得られるものであってもよい。例えば、第1の参照ピクチャにおける、第1の参照ブロックに最も近い同サイズの整数画素ブロック(整数画素位置からなるブロック)を決定し、次に、該整数画素ブロックの周りの最近傍のN行/列の整数画素位置の画素値のそれぞれを第1の参照ブロックの上下左右縁の充填値とする。
【0165】
例示的には、第1の参照ブロックの上下左右縁にそれぞれN行/N列の整数画素位置を充填することは、整数画素ブロックの真上、真下、真左及び真右のN行/N列の整数画素位置にそれぞれ充填することを含むことができる。
【0166】
例えば、第1の参照ブロックの上下左右縁にN行/N列の整数画素位置を充填した後、幅及び高さが元より2N増大したブロックを得、該ブロックにおける各画素位置の画素値に基づいて、元の第1の参照ブロックにおける各画素位置の勾配値を計算するとき、該ブロックの外側のN層の画素位置のうちの各層の画素位置の角点を使用しないことを配慮するので、充填作業量を減少させ、充填効率を向上させるために、第1の参照ブロックの上下左右縁にそれぞれN行/N列の整数画素位置を充填するとき、第1の参照ピクチャにおける、該第1の参照ブロックに最も近い等サイズの整数画素ブロックの真上、真下、真左及び真右のN行/N列の整数画素位置にそれぞれ充填する。
【0167】
N=1の場合、第1の参照ブロックの上下左右縁にそれぞれN行/N列の整数画素位置を充填することは、以下のことを含むことができる。
【0168】
図6Aに示すように、第1の参照ブロックにおける画素位置の予測値の小数画素の水平成分及び垂直成分がともに半画素以上の場合、第1の参照ブロックの上縁に上方の最近傍の整数画素位置を充填し、第1の参照ブロックの下縁に下方の次最近傍の整数画素位置を充填し、第1の参照ブロックの左縁に左側の最近傍の整数画素位置を充填し、第1の参照ブロックの右縁に右側の次最近傍の整数画素位置を充填する。
【0169】
図6Bに示すように、第1の参照ブロックにおける画素位置の予測値の小数画素の水平成分が半画素以上、垂直成分が半画素未満の場合、第1の参照ブロックの上縁に上方の次最近傍の整数画素位置を充填し、第1の参照ブロックの下縁に下方の最近傍の整数画素位置を充填し、第1の参照ブロックの左縁に左側の最近傍の整数画素位置を充填し、第1の参照ブロックの右縁に右側の次最近傍の整数画素位置を充填する。
【0170】
図6Cに示すように、第1の参照ブロックにおける画素位置の予測値の小数画素の水平成分が半画素未満、垂直成分が半画素以上の場合、第1の参照ブロックの上縁に上方の最近傍の整数画素位置を充填し、第1の参照ブロックの下縁に下方の次最近傍の整数画素位置を充填し、第1の参照ブロックの左縁に左側の次最近傍の整数画素位置を充填し、第1の参照ブロックの右縁に右側の最近傍の整数画素位置を充填する。
【0171】
図6Dに示すように、第1の参照ブロックにおける画素位置の予測値の小数画素の水平成分及び垂直成分がともに半画素未満の場合、第1の参照ブロックの上縁に上方の次最近傍の整数画素位置を充填し、第1の参照ブロックの下縁に下方の最近傍の整数画素位置を充填し、第1の参照ブロックの左縁に左側の次最近傍の整数画素位置を充填し、第1の参照ブロックの右縁に右側の最近傍の整数画素位置を充填する。
【0172】
例示的には、図6A~6Dにおいて、三角形は第1の参照ブロックの各画素位置の予測値、円形は参照ピクチャにおける整数画素位置の再構築値、シャドウ付き円形は充填するために選択された参照ピクチャにおける整数画素位置の再構築値である。
【0173】
図6A~6Dにおいて、第1の参照ブロックのサイズが4*4であることを例とすると、第1の参照ブロックを充填した後、6*6の第2の参照ブロックを得る。第1の参照ブロックのサイズが16*16であると、第1の参照ブロックを充填した後、18*18の第2の参照ブロックを得る。具体的な充填方式は、図6A~6Dに示すとおりであり、ここで詳しく説明しない。
【0174】
別の可能な実施の形態では、N行/N列の整数画素点の充填方法は、第1の参照ブロックにおける最近傍画素値を直接コピーすることであってもよく、すなわち、第2の参照ブロックにおけるN行の整数画素点の画素値及びN列の整数画素点の画素値は、第1の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである。
【0175】
図6Eに示すように、第1の参照ブロックにおける近傍画素点の画素値をコピーして、第2の参照ブロックを得る。例えば、第1の参照ブロックの上下左右縁にそれぞれN行/N列の整数画素位置を充填するとき、第1の参照ブロックにおける近傍画素点の画素値を直接コピーする。図6Eに示すように、第1の参照ブロックにおける画素位置の画素値を第1の参照ブロックの縁領域にコピーし、第2の参照ブロックを得る。
【0176】
図6Eにおいて、第1の参照ブロックのサイズが4*4であることを例として、第1の参照ブロックを充填した後、6*6の第2の参照ブロックを得る。第1の参照ブロックのサイズが16*16であると、第1の参照ブロックを充填した後、18*18の第2の参照ブロックを得る。具体的な充填方式は、図6Eに示すとおりであり、ここで詳しく説明しない。
【0177】
上記実施例を参照すると、N行/N列の整数画素点の充填方法は、以下の通りであってもよい。第1の参照ピクチャにおける近傍する整数画素領域からコピーするか(図6A~6D)、又は、第1の参照ブロックにおける最近傍画素値をコピーし(図6E)、つまり、複数の画素値を補間し、補間した画素値を用いてN行/N列の整数画素点を充填するのではなく、直接既存の画素値を用いてN行/N列の整数画素点を充填し、このように、さらなる補間プロセスを回避し、さらなる参照画素にアクセスすることを間接的に回避する(補間方式を用いると、さらなる参照画素にアクセスする必要がある)。
【0178】
各ユニットブロック(以下、ユニットブロック1を例とする)については、サイズがdx*dy(例えば、16*16)のユニットブロック1の第2の単方向動き情報に基づいて第2の参照ピクチャから、サイズが16*16の第3の参照ブロックを決定する。次に、第3の参照ブロックを拡張し、第4の参照ブロックを得、例えば、第3の参照ブロックの上下左右にそれぞれNの充填を行い(Nは0、1、2、3、4などであってもよく、Nが0であると、充填しない)、例えば、第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、サイズが(16+2N)*(16+2N)の第4の参照ブロックを得る。
【0179】
例示的には、N行/N列の整数画素点の充填方法は、第2の参照ピクチャにおける近傍する整数画素領域からコピーすること、又は、第3の参照ブロックにおける最近傍画素値を直接コピーすることである。例えば、第4の参照ブロックにおけるN行の整数画素点の画素値及びN列の整数画素点の画素値は、第2の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるもの、又は、第3の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである。
【0180】
具体的な充填方式については、第1の参照ブロックの充填方式を参照することができ、ここで詳しく説明しない。
【0181】
ステップa3において、ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、該ユニットブロックに対応する第2の参照ブロックから該サブブロックに対応する第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいて該サブブロックの第1のオリジナル予測値を決定し、該ユニットブロックに対応する第4の参照ブロックから該サブブロックに対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいて該サブブロックの第2のオリジナル予測値を決定する。
【0182】
例えば、現在ブロックの各ユニットブロックについては、該ユニットブロックを少なくとも1つのサブブロックに分割してもよく、例えば、サブブロックのサイズが4*4、ユニットブロックのサイズが16*16であると、ユニットブロックを16個のサブブロックに分割してもよい。また例えば、サブブロックのサイズが8*8であると、ユニットブロックを4つのサブブロックに分割してもよい。また例えば、サブブロックのサイズが16*16であると、ユニットブロックを1つのサブブロックに分割してもよい。もちろん、上記はいくつかの例にすぎず、これについては限定しない。説明の便利上のために、以下、ユニットブロックを16個のサブブロックに分割することを例として説明する。
【0183】
各dx*dy(例えば、16*16)のユニットブロック(以下、ユニットブロック1を例とする)の各サブブロック(以下、サブブロック11を例として説明する)については、ユニットブロック1に対応する第2の参照ブロック(サイズが18*18)から、サイズが4*4のサブブロック11に対応したサイズが6*6の第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいてサブブロック11の第1のオリジナル予測値を決定する。ユニットブロック1に対応する第4の参照ブロック(サイズが18*18)からサブブロック11に対応したサイズが6*6の第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいてサブブロック11の第2のオリジナル予測値を決定する。
【0184】
例えば、図7に示すように、各dx*dy(例えば、16*16)のユニットブロックについては、該ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャ(例えば、参照ピクチャ0)からサイズが16*16の第1の参照ブロックを決定し、第1の参照ブロックを拡張し、サイズが18*18の第2の参照ブロックを得る。該ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャ(例えば、参照ピクチャ1)からサイズが16*16の第3の参照ブロックを決定し、第3の参照ブロックを拡張し、サイズが18*18の第4の参照ブロックを得る。次に、該ユニットブロックの各サブブロック(例えば、b*bであり、bは4、8、16などであってもよく、以下、b=4を例とし、すなわち、サブブロックのサイズは4*4であってもよい)については、後続プロセスにおいて、サブブロックに対応するターゲット参照ブロックの勾配を決定する必要があり、従って、サイズが6*6のターゲット参照ブロックを決定する必要がある。例えば、該ユニットブロックに対応する第2の参照ブロックから該サブブロックに対応する第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいて該サブブロックの第1のオリジナル予測値を決定し、該ユニットブロックに対応する第4の参照ブロックから該サブブロックに対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいて該サブブロックの第2のオリジナル予測値を決定する。
【0185】
図7に示すように、サブブロックの画素位置はx=xSb、xSb+1、xSb+2又はxSb+3、y=ySb、ySb+1、ySb+2又はySb+3であり、サブブロックに対応するターゲット参照ブロック(例えば、第1のターゲット参照ブロック及び第2のターゲット参照ブロックなど)の画素位置はx=xSb、xSb+1、xSb+2、xSb+3、xSb+4又はxSb+5、y=ySb、ySb+1、ySb+2、ySb+3、ySb+4又はySb+5である。以上から分かるように、サブブロックの画素位置(x,y)は、ターゲット参照ブロックの画素位置(x+1,y+1)に対応する。例示的には、xSb及びySbは、それぞれサブブロックの開始画素位置であり、例えば、xSb=0、4、8…dx/4*4-4、ySb=0、4、8…dy/4*4-4などである。dx=16とすると、サブブロックの開始画素位置は、0、4、8又は12であってもよい。例示的には、ターゲット参照ブロックの水平画素位置の範囲は[0,dx+1]であってもよく、垂直画素位置の範囲は[0,dy+1]であってもよい。
【0186】
例示的には、サブブロックの第1のオリジナル予測値をI(0)(x,y)サブブロックの第2のオリジナル予測値をI(1)(x,y)とし、第1のオリジナル予測値及び第2のオリジナル予測値は、ともに6*6大きさのオリジナル予測値である。
【0187】
ステップa4において、サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値に基づいて該サブブロックの水平方向レートを決定し、すなわち、第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの、第1の参照ピクチャにおける画素の水平方向(x方向)レートvを決定する。例示的には、該サブブロックの、第2の参照ピクチャにおける画素の水平方向レートと、該サブブロックの、第1の参照ピクチャにおける画素の水平方向レートとは逆である。該サブブロックの各画素位置の画素値(例えば、輝度値)については、これらの画素位置の画素値(例えば、輝度値)の水平方向レートは同じであり、いずれも、ステップa4において決定された水平方向レートである。
【0188】
ステップa5において、サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値に基づいて該サブブロックの垂直方向レートを決定し、すなわち、第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの、第1の参照ピクチャにおける画素の垂直方向(y方向)レートvを決定する。例示的には、該サブブロックの第2の参照ピクチャにおける画素の垂直方向レートと、該サブブロックの第1の参照ピクチャにおける画素の垂直方向レートとは逆である。該サブブロックの各画素位置の画素値(例えば、輝度値)については、これらの画素位置の画素値(例えば、輝度値)の垂直方向レートは同じであり、いずれも、ステップa5において決定された垂直方向レートである。
【0189】
ステップa4及びステップa5に関しては、サブブロックの第1のオリジナル予測値及びサブブロックの第2のオリジナル予測値を得た後、サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値に基づいて水平方向勾配和、垂直方向勾配和、及び2つの参照ブロックの輝度差分(すなわち、2つのターゲット参照ブロックの輝度差分であり、時間領域予測値の差分とも呼ばれる)を決定する。例えば、式(1)により水平方向勾配和を決定し、式(2)により垂直方向勾配和を決定し、式(3)により2つの参照ブロックの輝度差分を決定する。
【数2】
【0190】
水平方向勾配和
【数3】
、垂直方向勾配和
【数4】
、及び2つの参照ブロックの輝度差分θ(i,j)を得た後、以下の式を用いて係数S1、係数S2、係数S3、係数S5及び係数S6を取得してもよい。もちろん、ここでは一例にすぎず、各係数の取得方式は限定されない。例示的には、式(4)を参照すると、係数S1は水平方向勾配和の絶対値の和であってもよく、例えば、まず水平方向勾配和
【数5】
の絶対値
【数6】
を決定し、次に絶対値の和を求める。式(5)を参照すると、係数S2は「水平方向勾配和」と「垂直方向勾配和の符号ビット」との積の和であってもよく、例えば、まず垂直方向勾配和の符号ビット
【数7】
を決定し、次に、水平方向勾配和
【数8】
と前記符号ビット
【数9】
との積を決定し、次に、両者の積の和を求める。式(6)を参照すると、係数S3は「2つの参照ブロックの輝度差分」と「水平方向勾配和の符号ビット」との積の和であってもよく、例えば、まず水平方向勾配和の符号ビット
【数10】
を決定し、次に、2つの参照ブロックの輝度差分θ(i,j)と前記符号ビット
【数11】
との積を決定し、次に、両者の積の和を求める。式(7)を参照すると、係数S5は垂直方向勾配和の絶対値の和あってもよく、例えば、まず垂直方向勾配和
【数12】
の絶対値
【数13】
を決定し、次に該絶対値の和を求める。式(8)を参照すると、係数S6は「2つの参照ブロックの輝度差分」と「垂直方向勾配和の符号ビット」との積の和であってもよく、例えば、まず垂直方向勾配和の符号ビット
【数14】
を決定し、次に、2つの参照ブロックの輝度差分θ(i,j)と前記符号ビット
【数15】
との積を決定し、次に、両者の積の和を求める。
【数16】
【0191】
式(4)~式(8)において、Ωは、サブブロックに対応する6*6のターゲット参照ブロック、すなわち上記例の第1のターゲット参照ブロック及び第2のターゲット参照ブロックであり、第1のターゲット参照ブロックの画素値はサブブロックの第1のオリジナル予測値であり、第2のターゲット参照ブロックの画素値はサブブロックの第2のオリジナル予測値である。i=xSb…xSb+5、j=ySb…ySb+5である。Sign[x]は、xの符号ビットを求めることを表し、すなわち、xが0未満であると、-1となり、xが0よりも大きいと、1となり、xが0に等しいと、0となる。abs[x]は、xの絶対値を求めることを表す。
【数17】
は水平方向勾配和、
【数18】
は垂直方向勾配和、θ(i,j)は2つの参照ブロックの輝度差分を表す。
【0192】
式(1)~式(3)において、shift2は、4などの固定値であってもよいし、BDに関連する整数値であってもよい。shift3は、1などの固定値であってもよいし、BDに関連する整数値であってもよい。もちろん、ここでは一例にすぎず、このshift2及びshift3の値は限定されない。
【数19】
は、それぞれ第1のターゲット参照ブロック及び第2のターゲット参照ブロックの水平方向勾配を表し、
【数20】
はそれぞれ第1のターゲット参照ブロック及び第2のターゲット参照ブロックの垂直方向勾配を表す。
【0193】
(0)(i,j)は第1のターゲット参照ブロックにおける画素位置(i,j)の画素値(例えば、輝度値)、P(1)(i,j)は第2のターゲット参照ブロックにおける画素位置(i,j)の画素値(例えば、輝度値)を表す。例示的には、水平方向勾配は、式9により決定されてもよく、垂直方向勾配は、式10により決定されてもよい。
【数21】
【0194】
式(9)及び式(10)において、shift1は6などの固定整数値であってもよいし、BDに関連する整数値であってもよい。もちろん、ここでは一例にすぎず、このshift1の値は限定されない。P(k)(x,y)はターゲット参照ブロックにおける画素位置(x,y)の画素値、例えば、P(0)(x,y)は第1のターゲット参照ブロックにおける画素位置(x,y)の画素値(例えば、輝度値)、P(1)(x,y)は第2のターゲット参照ブロックにおける画素位置(x,y)の画素値(例えば、輝度値)を表す。
【0195】
上記各式において、≫は、右へ移動することを表し、kだけ右へ移動すると、2で割ることに相当する。BD(bit depth)はビット深度、すなわち輝度値に必要なビット幅を表し、一般的に8、10、12である。もちろん、8、10、12は、例に過ぎず、このビット深度は限定されない。
【0196】
ターゲット参照ブロックにおける画素位置(x,y)の画素値に関しては、参照画素がサブブロックの縁にちょうど位置すると、画素位置の周りには、勾配を形成するための画素が十分ではなく、従って、これらの画素位置の勾配は、近傍する画素位置の勾配をコピーすることで取得される。例えば、x=0、又はx=dx+1、又はy=0、又はy=dy+1の場合、
【数22】
,hx = Clip3( 1,dx,x ), hy = Clip3( 1,dy,y )である。A=Clip3(min,max,x)はAの値を[min,max]範囲内に制限することを表し、すなわち、xがmin未満であると、A=minであり、xがmaxよりも大きいと、A=maxである。
【0197】
1つの可能な実施の形態では、係数S1及び係数S3を得た後、係数S1、係数S3及びレート閾値に基づいて該サブブロックの水平方向レートを決定してもよい。例えば、以下の式により水平方向レートvを決定してもよい。
【数23】
【0198】
もちろん、式11は一例にすぎず、これについては限定しない。式11において、
【数24】
はレート閾値であり、
【数25】
は切り下げであり、
【数26】
は、7、15、31、63、127などの固定整数であってもよく、例えば、好ましくは15であり、213-BD-1など、BDに関連する整数であってもよい。もちろん、上記は、
【数27】
の例にすぎず、これについては限定しない。
【数28】
は、水平方向レートv
【数29】

【数30】
との間に制限するためのものであり、すなわち、水平方向レートv
【数31】
以上であり、水平方向レートv
【数32】
以下である。式11において、S1>0が成立すれば、
【数33】
となり、S1>0が成立しなければ、vx = 0となる。Clip3の意味については、上記実施例を参照する。
【0199】
係数S2、係数S5及び係数S6を得た後、係数S2、係数S5、係数S6、レート閾値及び水平方向レートに基づいて、該サブブロックの垂直方向レートを決定してもよい。例えば、以下の式により垂直方向レートvを決定してもよい。
【数34】
【0200】
もちろん、式12は一例にすぎず、これについては限定しない。式12において、
【数35】
はレート閾値であり、
【数36】
は切り下げであり、
【数37】
は、7、15、31、63、127などの固定整数であってもよく、好ましくは15であり、213-BD-11など、BDに関連する整数であってもよい。
【数38】
は、垂直方向レートv
【数39】

【数40】
との間に制限するためのものであり、すなわち、垂直方向レートv
【数41】
以上であり、垂直方向レートv
【数42】
以下である。式12において、S5 > 0が成立すれば、
【数43】
となり、S5 > 0が成立しなければ、vy = 0となる。Clip3の意味については、上記実施例を参照し、vは水平方向レートであってもよい。
【0201】
別の可能な実施の形態では、以下の式により垂直方向レートvを決定してもよい。
【数44】
【0202】
式13において、S2,m = S2 ≫ 12、S2,m = S2 & (212-1)であり、≪は、左へ移動することを表し、kだけ左へ移動すると、2を乗算することに相当する。
【0203】
ステップa6において、水平方向レート及び垂直方向レートに基づいて該サブブロックの予測補償値を取得する。例えば、サブブロックの各画素位置に対して、該サブブロックの水平方向レート及び垂直方向レートに基づいて該画素位置の予測補償値を取得する。
【0204】
1つの可能な実施の形態では、第1のオリジナル予測値に基づいて第1の水平方向勾配及び第1の垂直方向勾配を決定し、第2のオリジナル予測値に基づいて第2の水平方向勾配及び第2の垂直方向勾配を決定する。次に、水平方向レート、該第1の水平方向勾配、該第2の水平方向勾配、垂直方向レート、該第1の垂直方向勾配及び該第2の垂直方向勾配に基づいて、該サブブロックの各画素位置の予測補償値を取得する。
【0205】
例えば、以下の式を用いて該サブブロックの各画素位置の予測補償値b(x,y)を取得してもよい。
【数45】
【0206】
もちろん、式14は一例にすぎず、これについては限定しない。式14において、
【数46】
はそれぞれ第1のターゲット参照ブロックの水平方向勾配(すなわち第1の水平方向勾配)及び第2のターゲット参照ブロックの水平方向勾配(すなわち第2の水平方向勾配)を表し、
【数47】
はそれぞれ第1のターゲット参照ブロックの垂直方向勾配(すなわち第1の垂直方向勾配)及び第2のターゲット参照ブロックの垂直方向勾配(すなわち第2の垂直方向勾配)を表す。第1の水平方向勾配及び第2の水平方向勾配は、式9により決定されてもよく、第1の垂直方向勾配及び第2の垂直方向勾配は、式10により決定されてもよい。式9及び式10の関連内容については、上記実施例を参照する。
【0207】
ステップa7において、第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいてサブブロックのターゲット予測値を取得する。例えば、該サブブロックの各画素位置については、第1のオリジナル予測値、第2のオリジナル予測値及び該画素位置の予測補償値に基づいて、該画素位置のターゲット予測値を取得し、すなわち、各画素位置が1つのターゲット予測値に対応する。
【0208】
例えば、以下の式を用いて該サブブロックの各画素位置のターゲット予測値predBDOF(x,y)を取得してもよく、該ターゲット予測値predBDOF(x,y)は、4*4サブブロックの各画素位置の輝度値の最終予測値である。
【数48】
【0209】
上記式において、P(0)(x,y)は第1のターゲット参照ブロックにおける画素位置(x,y)の画素値(例えば、輝度値)、P(1)(x,y)は第2のターゲット参照ブロックにおける画素位置(x,y)の画素値(例えば、輝度値)を表す。shift4は5などの固定整数値であってもよいし、Max( 3, 15 - BD)など、BDに関連する整数値であってもよく、このshift4の値は限定されない。offset4 = 2shift4-1であり、もちろん、ここで、offset4の例にすぎず、このoffset4の値は限定されない。
【0210】
ステップa8において、各サブブロックのターゲット予測値に基づいて現在ブロックの予測値を決定する。
【0211】
実施例7:以下、特定の適用シーンを併せて、符号化及び復号方法について説明し、該符号化及び復号方法は、ステップb1~ステップb5を含むことができる。
【0212】
ステップb1において、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定し、そうである場合、ステップb2を行う。
【0213】
例示的には、実施例1の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよく、又は、実施例5の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよく、又は、実施例4の方式を用いて、現在ブロックに対して双方向予測値補償モードを起動するか否かを決定してもよいが、この決定方式について詳しく説明しない。
【0214】
ステップb2において、オリジナル動き情報(2つの動きベクトル及び参照ピクチャインデックス、すなわち上記第1の単方向動き情報及び第2のユニット動き情報)に基づいて、第1の参照ピクチャ及び第2の参照ピクチャにおけるオリジナル予測値I(0)(x,y)及びI(1)(x,y)をそれぞれ取得する。
【0215】
ステップb3において、現在ブロックの各サブブロックに対して、オリジナル予測値I(0)(x,y)及びI(1)(x,y)に基づいて第1の参照ピクチャにおける画素の水平方向(x方向)レートv及び垂直方向(y方向)レートvを取得してもよい。
【0216】
例えば、以下の式で勾配の自己相関及び相互関連係数S1、2、3、及びSを取得してもよい。
【数49】
【0217】
例示的には、上記式における
【数50】

【数51】
及びθ(i,j)は、以下の式で取得されてもよい。
【数52】
【0218】
上記式において、Ωは、4*4サブブロックの周りの6*6のターゲット参照ブロック、n及びnはそれぞれmin(5,BD-7)及びmin(8,BD-4)である。
【0219】
次に、S1、2、3、及びSに基づいて、以下の式により動きベクトル差分(v,v)を決定してもよい。
【数53】
【0220】
上記式において、
【数54】
であり、
【数55】
は切り下げであり、Clip3(a,b,x)は、xがa未満であると、x=aであり、xがbよりも大きいと、x=bであり、そうでない場合は、xが変わらないことを表す。
【0221】
ステップb4において、サブブロックの各画素位置に対して、該サブブロックの水平方向レート及び垂直方向レートに基づいて該画素位置の予測補償値を取得し、例えば、以下の式により(v,v)に基づいて補償値b(v,v)を取得する。
【数56】
【0222】
rndはround丸め演算であり、
【数57】
はそれぞれ水平方向及び垂直方向の勾配を表す。
【数58】
【0223】
例示的には、≫は、右へ移動することを表し、I(k)(i,j)はリストkの参照ピクチャの、画素位置(i,j)における画素値を表し、shift1=max(2,14-BD)であり、BDはビット深度、すなわち輝度値に必要なビット幅を表し、一般的に10又は8である。
【0224】
ステップb5において、補償値b(x,y)及びオリジナル予測値に基づいて、最終的な予測値predBDOF(x,y)を取得する。
【数59】
【0225】
例示的には、
【数60】
である。
【0226】
実施例8:
実施例1~実施例7をベースにして、現在ブロックの各ユニットブロックに対して、動きベクトル調整モードに基づいた動き補償を行ってもよい。例えば、該ユニットブロックの第1のオリジナル動きベクトル(例えば、第1のオリジナル動きベクトル及び第1の参照ピクチャを含む上記実施例の第1の単方向動き情報)に基づいて、該ユニットブロックに対応する参照ブロック1を決定し、該ユニットブロックの第2のオリジナル動きベクトル(例えば、第2のオリジナル動きベクトル及び第2の参照ピクチャを含む上記実施例の第2の単方向動き情報)に基づいて、該ユニットブロックに対応する参照ブロック2を決定する。参照ブロック1の画素値及び参照ブロック2の画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得る。
【0227】
次に、第1のターゲット動きベクトルに基づいて第1の参照ピクチャから該ユニットブロックに対応する参照ブロック3を決定し、第2のターゲット動きベクトルに基づいて第2の参照ピクチャから該ユニットブロックに対応する参照ブロック4を決定する。例示的には、ユニットブロックに対応する参照ブロック3及び参照ブロック4を得るプロセスについては、動きベクトル調整モードを参照することができ、ここで詳しく説明しない。
【0228】
上記実施例を参照し、該参照ブロック3は該ユニットブロックに対応する第1の参照ブロック、該参照ブロック4は該ユニットブロックに対応する第3の参照ブロックである。ユニットブロックに対応する第1の参照ブロック及び第3の参照ブロックを得た後、本発明の実施例の双方向予測値補償モードを用いることができ、具体的な実現プロセスは実施例1~実施例7を参照する。
【0229】
例えば、動きベクトル調整モードの動き補償プロセスによって第1の参照ブロック及び第3の参照ブロックを得た後、第1の参照ブロック及び第3の参照ブロックをベースとして、双方向予測値補償モードに基づいた動き補償を行うことができる。例えば、第1の参照ブロックを拡張し、該ユニットブロックに対応する第2の参照ブロックを得、具体的な拡張形態については、上記実施例を参照する。第3の参照ブロックを拡張し、該ユニットブロックに対応する第4の参照ブロックを得、具体的な拡張形態については、上記実施例を参照する。
【0230】
次に、該ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、該ユニットブロックに対応する第2の参照ブロックから該サブブロックに対応する第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいて該サブブロックの第1のオリジナル予測値を決定する。該ユニットブロックに対応する第4の参照ブロックから該サブブロックに対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいて該サブブロックの第2のオリジナル予測値を決定する。第1のオリジナル予測値及び第2のオリジナル予測値に基づいてサブブロックの水平方向レート及び垂直方向レートを決定し、水平方向レート及び垂直方向レートに基づいてサブブロックの予測補償値を取得し、第1のオリジナル予測値、第2のオリジナル予測値及び予測補償値に基づいてサブブロックのターゲット予測値を取得する。
【0231】
1つの可能な実施の形態では、現在ブロックに対して動きベクトル調整モードを起動するが、現在ブロックに対して双方向予測値補償モードを起動しないと、現在ブロックの各ユニットブロックに対して、該ユニットブロックの第1のオリジナル動きベクトルに基づいて該ユニットブロックに対応する参照ブロック1を決定し、該ユニットブロックの第2のオリジナル動きベクトルに基づいて該ユニットブロックに対応する参照ブロック2を決定する。参照ブロック1の画素値及び参照ブロック2の画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得る。次に、第1のターゲット動きベクトルに基づいて第1の参照ピクチャから該ユニットブロックに対応する参照ブロック3を決定し、第2のターゲット動きベクトルに基づいて第2の参照ピクチャから該ユニットブロックに対応する参照ブロック4を決定する。参照ブロック3の画素値及び参照ブロック4の画素値を重み付けし、該ユニットブロックの予測値を得る。
【0232】
別の可能な実施の形態では、現在ブロックに対して双方向予測値補償モードを起動するが、現在ブロックに対して動きベクトル調整モードを起動すしないと、実現プロセスは実施例1~実施例7を参照し、ここで詳しく説明しない。
【0233】
別の可能な実施の形態では、現在ブロックに対して双方向予測値補償モードを起動し、現在ブロックに対して動きベクトル調整モードを起動し、すなわち、双方向予測値補償モード及び動きベクトル調整モードを起動すると、以下の方法を用いる。
【0234】
サイズがdx*dyのあるユニットブロックについては、動きベクトル調整モードの最小SAD値dmvrSad[xSbIdx][ySbIdxy]が予め設定された閾値(経験的に設定されてもよいが、これについては限定しない。例えば、予め設定された閾値は2*dx*dyであってもよい)未満であると、該ユニットブロックに対して双方向予測値補償プロセスを行わずに、直接該ユニットブロックの第1のターゲット動きベクトルによって第1の参照ピクチャから該ユニットブロックに対応する参照ブロック3を決定し、第2のターゲット動きベクトルに基づいて第2の参照ピクチャから該ユニットブロックに対応する参照ブロック4を決定する。参照ブロック3の画素値及び参照ブロック4の画素値を重み付けし、各画素位置の予測値を得る。例えば、各画素位置の最終予測値は、pbSamples[x][y]=Clip3(0,2BD-1,(P[x+1][y+1]+P[x+1][y+1]+offset4)>>shift4)である。
【0235】
サイズがdx*dyのあるユニットブロックについては、動きベクトル調整モードの最小SAD (sum of abstract distortion)値dmvrSad[xSbIdx][ySbIdxy]が予め設定された閾値(経験的に設定されてもよいが、これについては限定しない。例えば、予め設定された閾値は2*dx*dyであってもよい)以上であると、該ユニットブロックに対して双方向予測値補償プロセスを行い、すなわち、該ユニットブロックに対して動きベクトル調整プロセス及び双方向予測値補償プロセスを行う。例えば、該ユニットブロックの第1のターゲット動きベクトルによって第1の参照ピクチャから該ユニットブロックに対応する参照ブロック3を決定し、第2のターゲット動きベクトルに基づいて第2の参照ピクチャから該ユニットブロックに対応する参照ブロック4を決定する。参照ブロック3(すなわち上記実施例における第1の参照ブロック)を拡張し、該ユニットブロックに対応する第2の参照ブロックを得、参照ブロック4(すなわち上記実施例における第3の参照ブロック)を拡張し、該ユニットブロックに対応する第4の参照ブロックを得る。次に、該ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、該ユニットブロックに対応する第2の参照ブロックから該サブブロックに対応する第1のターゲット参照ブロックを選択し、第1のターゲット参照ブロックの画素値に基づいて該サブブロックの第1のオリジナル予測値を決定する。該ユニットブロックに対応する第4の参照ブロックから該サブブロックに対応する第2のターゲット参照ブロックを選択し、第2のターゲット参照ブロックの画素値に基づいて該サブブロックの第2のオリジナル予測値を決定する。次に、第1のオリジナル予測値及び第2のオリジナル予測値に基づいて水平方向レート及び垂直方向レートを決定し、水平方向レート及び垂直方向レートに基づいて予測補償値を決定し、予測補償値に基づいて各画素位置の予測値を得る。例えば、各画素位置の最終予測値は、pbSamples[x][y]=Clip3(0,2BD-1,(P[x+1][y+1]+P[x+1][y+1]+b(x、y)+offset4) >> shift4)であってもよい。
【0236】
上記実施例では、動きベクトル調整モードの最小SAD値は、参照ブロック3及び参照ブロック4のSADであってもよい。例えば、参照ブロック3の画素値と参照ブロック4の画素値との間のダウンサンプリングSADを決定するとき、ダウンサンプリングのパラメータNは、経験的に設定され、0以上の整数であり、Nが0であると、ダウンサンプリングを行わないことが示される。
【0237】
1つの可能な実施の形態では、上記実施例は、単独で実施してもよいし、任意に組み合わせて実施してもよく、これについては限定しない。例えば、実施例4は、実施例1と組み合わせて実施してもよいし、実施例4は、実施例2と組み合わせて実施してもよいし、実施例4は、実施例3と組み合わせて実施してもよいし、実施例4は、実施例5と組み合わせて実施してもよいし、実施例4は、実施例6と組み合わせて実施してもよいし、実施例4は、実施例7と組み合わせて実施してもよい。実施例2は、実施例1と組み合わせて実施してもよいし、実施例2は、実施例5と組み合わせて実施してもよい。実施例3は、実施例1と組み合わせて実施してもよいし、実施例3は、実施例5と組み合わせて実施してもよい。実施例1は、単独で実施してもよく、実施例2は、単独で実施してもよく、実施例3は、単独で実施してもよく、実施例5は、単独で実施してもよく、実施例6は、単独で実施してもよく、実施例7は、単独で実施してもよいし。実施例8は、実施例1~実施例7の任意の実施例と組み合わせて実施してもよい。もちろん、上記は、本発明のいくつかの例にすぎず、これについては限定しない、本発明に係る全ての実施例は、単独で実施してもよいし、組み合わせて実施してもよく、これについては詳述しない。
【0238】
上記方法と同様の発明構想に基づいて、本発明の実施例は、符号化側又は復号側に適用される符号化及び復号装置をさらに提供し、図8に示すように、前記装置の構造図であり、前記装置は、
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するための決定モジュール81と、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うための動き補償モジュール82とを含む。
【0239】
前記決定モジュール81は、さらに、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件のうちのいずれかが満たされなければ、現在ブロックに対して双方向予測値補償モードを起動しないと決定するために用いられる。
【0240】
前記制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することは、シーケンスレベル制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可すること、及び/又は、ピクチャレベル制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可することを含む。
【0241】
現在ブロックの幅、高さ及び面積が全て限定範囲内にあることは、幅が第1の閾値以上、高さが第2の閾値以上、面積が第3の閾値以上であること、又は、幅が第1の閾値以上、高さが第2の閾値以上、面積が第4の閾値よりも大きいことを含み、前記第3の閾値は前記第4の閾値よりも大きい。
【0242】
前記第1の閾値は8、前記第2の閾値は8、前記第3の閾値は128、前記第4の閾値は64である。
【0243】
前記動き補償モジュール82は、具体的には、前記現在ブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向レート及び垂直方向レートを決定し、
前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得し、
各サブブロックのターゲット予測値に基づいて前記現在ブロックの予測値を決定するために用いられる。
【0244】
前記動き補償モジュール82は、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するとき、具体的には、
前記サブブロックに対応するユニットブロックを決定し、前記現在ブロックが前記ユニットブロックを含み、前記ユニットブロックが前記サブブロックを含み、前記ユニットブロックの第1の単方向動き情報に基づいて第1の参照ピクチャから第1の参照ブロックを決定し、前記第1の参照ブロックを拡張し、第2の参照ブロックを得、前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定し、
前記ユニットブロックの第2の単方向動き情報に基づいて第2の参照ピクチャから第3の参照ブロックを決定し、前記第3の参照ブロックを拡張し、第4の参照ブロックを得、前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定するために用いられる。
【0245】
前記動き補償モジュール82は前記第1の参照ブロックを拡張し、第2の参照ブロックを得るとき、具体的には、前記第1の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第1の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第2の参照ブロックを得るために用いられ、
前記動き補償モジュール82は前記第3の参照ブロックを拡張し、第4の参照ブロックを得るとき、具体的には、前記第3の参照ブロックの上縁及び下縁にそれぞれN行の整数画素点を充填し、前記第3の参照ブロックの左縁及び右縁にそれぞれN列の整数画素点を充填し、第4の参照ブロックを得るために用いられ、
例示的には、Nは、0又は正整数である。
【0246】
前記第2の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第1の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第1の参照ブロックにおける近傍画素点の画素値をコピーして得られるものであり、
前記第4の参照ブロックに充填された前記N行の整数画素点の画素値及び充填された前記N列の整数画素点の画素値は、前記第2の参照ピクチャにおける近傍する整数画素位置の画素値をコピーして得られるものであるか、又は、前記第3の参照ブロックにおける近傍画素点の画素値をコピーして得られるものである。
【0247】
前記動き補償モジュール82は前記水平方向レート及び前記垂直方向レートに基づいて前記サブブロックの予測補償値を取得するとき、具体的には、前記第1のオリジナル予測値に基づいて第1の水平方向勾配及び第1の垂直方向勾配を決定し、前記第2のオリジナル予測値に基づいて第2の水平方向勾配及び第2の垂直方向勾配を決定し、前記水平方向レート、前記第1の水平方向勾配、前記第2の水平方向勾配、前記垂直方向レート、前記第1の垂直方向勾配及び前記第2の垂直方向勾配に基づいて、前記サブブロックの予測補償値を取得するために用いられる。
【0248】
上記方法と同様の発明構想に基づいて、本発明の実施例は、符号化側又は復号側に適用される符号化及び復号装置をさらに提供し、前記装置は、制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するための決定モジュールと、現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うための動き補償モジュールとを含む。
【0249】
ハードウェアの観点から、本発明の実施例に係る復号デバイスのハードウェアアーキテクチャの概略図は、具体的には、図9Aを参照することができる。プロセッサ911及び機械読み取り可能な記憶媒体912を含み、前記機械読み取り可能な記憶媒体912には、前記プロセッサ911により実行可能な機械実行可能命令が記憶され、前記プロセッサ911は、機械実行可能命令を実行することで、本発明の上記例に開示されている方法を実施するために用いられる。例えば、プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
【0250】
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【0251】
ハードウェアの観点から、本発明の実施例に係る符号化デバイスのハードウェアアーキテクチャの概略図は、具体的には、図9Bを参照することができる。プロセッサ921及び機械読み取り可能な記憶媒体922を含み、前記機械読み取り可能な記憶媒体922には、前記プロセッサ921により実行可能な機械実行可能命令が記憶され、前記プロセッサ921は、機械実行可能命令を実行することで、本発明の上記例に開示されている方法を実施するために用いられる。例えば、プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
【0252】
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【0253】
上記方法と同様の発明構想に基づいて、本発明の実施例は、カメラをさらに提供し、前記カメラは、プロセッサ及び機械読み取り可能な記憶媒体を含み、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、前記プロセッサは、機械実行可能命令を実行することで、本発明の上記例に開示されている方法を実施する。例えば、プロセッサは、機械実行可能命令を実行することで、以下のステップを実現するために用いられる。
【0254】
制御情報として、現在ブロックが双方向予測値補償モードを用いることを許可するという条件、現在ブロックが並進動きモデルを用いるという条件、現在ブロックの予測モードがサブブロックモードでもなく、SMVDモードでもなく、CIIPモードでもないという条件、現在ブロックの予測値が2つの参照ピクチャからの参照ブロックを重み付けて取得され、前記2つの参照ピクチャの表示順序がそれぞれ現在ピクチャの前と後にあり、前記2つの参照ピクチャから現在ピクチャまでの距離が同じであるという条件、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであるという条件、現在ブロックの2つの参照ピクチャがともに短期参照ピクチャであるという条件、現在ブロックの幅、高さ及び面積が全て限定範囲内にあるという条件、現在ブロックの2つの参照ピクチャのサイズがともに現在ピクチャのサイズと同じであるという条件、現在ブロックに対して輝度成分予測値補償を行うという条件が全て満たされれば、現在ブロックに対して双方向予測値補償モードを起動すると決定するステップ、
現在ブロックに対して双方向予測値補償モードを起動すると決定する場合、前記現在ブロックに対して双方向予測値補償モードに基づく動き補償を行うステップ。
【0255】
上記方法と同様の発明構想に基づいて、本発明の実施例は、複数のコンピュータ命令が記憶される機械読み取り可能な記憶媒体をさらに提供し、前記コンピュータ命令がプロセッサによって実行されると、本発明の上記例に開示されている符号化及び復号方法を実施することができる。上記機械読み取り可能な記憶媒体は任意の電子、磁性、光学又は他の物理的記憶装置であってもよく、実行可能なコマンド、データ等の情報を含むか又は記憶することができる。例えば、機械読み取り可能な記憶媒体は、RAM(Radom Access Memory、ランダムアクセスメモリ)、揮発性メモリ、不揮発性メモリ、フラッシュメモリ、記憶ドライブ(例えばハードディスクドライブ)、ソリッドステートドライブ、任意のタイプの記憶ディスク(例えば光ディスク、dvd等)、又は類似の記憶媒体、又はそれらの組み合わせであってもよい。
【0256】
上記方法と同様の発明構想に基づいて、本発明の実施例は、コンピュータ命令を含むコンピュータプログラム製品をさらに提供し、前記コンピュータ命令がプロセッサにより実行されると、本発明の上記例に開示されている符号化及び復号方法を実施することができる。
【0257】
上記方法と同様の発明構想に基づいて、本発明の実施例は、プロセッサ及び機械読み取り可能な記憶媒体を含む符号化及び復号システムをさらに提供し、前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶される。前記機械実行可能命令がプロセッサにより実行されると、本発明の上記例に開示されている符号化及び復号方法を実施することができる。
【0258】
上記実施例に説明されたシステム、装置、モジュール又はユニットは、コンピュータチップ又はエンティティにより実現されてもよく、又はある機能を有する製品により実現されてもよい。従来の実現はコンピュータであり、コンピュータの形態はパーソナルコンピュータ、ラップトップコンピュータ、携帯電話、カメラ電話、スマートフォン、パーソナルデジタルアシスタント、メディアプレーヤ、ナビゲーション装置、電子メール送受信装置、タブレットコンピュータ、ウェアラブル装置又はこれらの装置のうちの任意の複数種の装置の組み合わせであってもよい。
【0259】
説明しやすいために、以上の装置を説明する時に機能で様々なユニットに分けてそれぞれ説明する。当然のことながら、本発明を実施する時に各ユニットの機能を同一又は複数のソフトウェア及び/又はハードウェアで実現することができる。
【0260】
当業者に理解されるように、本発明の実施例は方法、システム、又はコンピュータプログラム製品として提供することができる。本発明は完全なハードウェア実施例、完全なソフトウェア実施例、又はソフトウェアとハードウェアを組み合わせる実施例の形を採用することができる。本発明の実施例は、コンピュータ使用可能なプログラムコードを含む1つ又は複数のコンピュータ使用可能な記憶媒体(ディスクメモリ、CD-ROM、光学メモリ等を含むがこれらに限定されない)で実施されたコンピュータプログラム製品の形式を採用することができる。
【0261】
本願は、本願の実施例に係る方法、デバイス(システム)、及びコンピュータプログラム製品のフローチャート及び/又はブロック図を参照して説明される。コンピュータプログラム命令によりフローチャート及び/又はブロック図における各フロー及び/又はブロック、及びフローチャート及び/又はブロック図におけるフロー及び/又はブロックの組み合わせを実現できることを理解すべきである。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、組み込みプロセッサ又は他のプログラム可能なデータ処理装置のプロセッサに提供してマシンを生成することができ、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサにより実行された命令によって、フローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックにおいて指定された機能を実現するための装置を生成する。これらのコンピュータプログラム命令は、コンピュータ又は他のプログラマブルデータ処理機器が特定の方式で動作するようにガイドできるコンピュータ読み取り可能なメモリに記憶されてもよく、それにより、該コンピュータ読み取り可能なメモリに記憶された命令は命令装置を含む製品を生成し、該命令装置はフローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックにおいて指定された機能を実現する。
【0262】
これらのコンピュータプログラム命令はコンピュータ又は他のプログラム可能なデータ処理装置にロードされてもよく、それによりコンピュータ又は他のプログラム可能な機器で一連の操作ステップを実行してコンピュータにより実現された処理を生成し、それによりコンピュータ又は他のプログラム可能な機器で実行された命令はフローチャートの1つのフロー又は複数のフロー及び/又はブロック図の1つのブロック又は複数のブロックにおいて指定された機能を実現するためのステップを提供する。以上は、本願の実施例に過ぎず、本願を限定するものではない。当業者にとって、本発明は様々な変更及び変更が可能である。本発明の精神と原理の範囲内で行われたいかなる修正、同等置換、改善などは、本発明の請求項請求の範囲に含まれるべきである。
【符号の説明】
【0263】
81 決定モジュール
82 補償モジュール
911 プロセッサ
912 記憶媒体
921 プロセッサ
922 記憶媒体
図1A
図1B
図2
図3
図4
図5
図6A
図6B
図6C
図6D
図6E
図7
図8
図9A
図9B
【手続補正書】
【提出日】2024-02-02
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
復号方法であって、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定する場合、前記現在ブロックに対して動き補償を行い、前記現在ブロックの予測値を取得するステップを含み、前記ステップは、
前記現在ブロックにおけるサイズがdx*dyのユニットブロックについて、現在ブロックが動きベクトル調整モードを用いるときに前記ユニットブロックの最小SAD値が予め設定された閾値2*dx*dy以上であることと、現在ブロックに対して双方向オプティカルフロー予測モードを用いることとを決定する場合、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するステップと、
前記現在ブロックの各ユニットブロックの予測値に基づいて前記現在ブロックの予測値を決定するステップと、
を含み、
前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するステップは、
前記ユニットブロックの第1のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第5の参照ブロックを決定し、前記ユニットブロックの第2のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第6の参照ブロックを決定するステップと、
第5の参照ブロックの画素値及び第6の参照ブロックの画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得るステップと、
前記第1のターゲット動きベクトルに基づいて前記現在ブロックの第1の参照ピクチャから前記ユニットブロックに対応する第1の参照ブロックを決定し、前記第2のターゲット動きベクトルに基づいて前記現在ブロックの第2の参照ピクチャから前記ユニットブロックに対応する第3の参照ブロックを決定するステップと、
前記ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向の動きオフセット及び垂直方向の動きオフセットを決定するステップと、
前記水平方向の動きオフセット及び前記垂直方向の動きオフセットに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得するステップと、
前記ユニットブロックに含まれる各サブブロックのターゲット予測値に基づいて前記ユニットブロックの予測値を決定するステップと、
を含み、
ここで、現在ブロックの予測値が、双方向の予測に用いられる2つの参照ピクチャの参照ブロックを重み付けて取得され、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであり、2つの参照ピクチャの方向が異なり、一方の参照ピクチャが現在ピクチャの前にあり、他方の参照ピクチャが現在ピクチャの後にあり、前記2つの参照ピクチャから前記現在ピクチャまでの距離が同じであり、
前記2つの参照ピクチャがともに短期参照ピクチャであり、前記2つの参照ピクチャのサイズがともに前記現在ピクチャのサイズと同じである、ことを特徴とする復号方法。
【請求項2】
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定することは、
前記第1の参照ブロックを拡張し、第2の参照ブロックを得ることと、
前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定することと、
前記第3の参照ブロックを拡張し、第4の参照ブロックを得ることと、
前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定することと、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件が満たされる場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いるステップを更に含む、ことを特徴とする請求項1に記載の方法。
【請求項4】
前記重み付けウェイトが同じであることは、ピクチャレベルの重み付けウェイトが同じであること、及びブロックレベルの重み付けウェイトが同じであることを含み、
前記ピクチャレベルの重み付けウェイトが同じであることは、ピクチャレベルの輝度重み付けウェイトが同じであることを含むことを特徴とする請求項3に記載の方法。
【請求項5】
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件のうちのいずれかが満たされない場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いないステップを更に含む、ことを特徴とする請求項1に記載の方法。
【請求項6】
符号化方法であって、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定する場合、前記現在ブロックに対して動き補償を行い、前記現在ブロックの予測値を取得するステップを含み、前記ステップは、
前記現在ブロックにおけるサイズがdx*dyのユニットブロックについて、現在ブロックが動きベクトル調整モードを用いるときに前記ユニットブロックの最小SAD値が予め設定された閾値2*dx*dy以上であることと、現在ブロックに対して双方向オプティカルフロー予測モードを用いることとを決定する場合、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するステップと、
前記現在ブロックの各ユニットブロックの予測値に基づいて前記現在ブロックの予測値を決定するステップと、
を含み、
前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するステップは、
前記ユニットブロックの第1のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第5の参照ブロックを決定し、前記ユニットブロックの第2のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第6の参照ブロックを決定するステップと、
第5の参照ブロックの画素値及び第6の参照ブロックの画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得るステップと、
前記第1のターゲット動きベクトルに基づいて前記現在ブロックの第1の参照ピクチャから前記ユニットブロックに対応する第1の参照ブロックを決定し、前記第2のターゲット動きベクトルに基づいて前記現在ブロックの第2の参照ピクチャから前記ユニットブロックに対応する第3の参照ブロックを決定するステップと、
前記ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向の動きオフセット及び垂直方向の動きオフセットを決定するステップと、
前記水平方向の動きオフセット及び前記垂直方向の動きオフセットに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得するステップと、
前記ユニットブロックに含まれる各サブブロックのターゲット予測値に基づいて前記ユニットブロックの予測値を決定するステップと、
を含み、
ここで、現在ブロックの予測値が、双方向の予測に用いられる2つの参照ピクチャの参照ブロックを重み付けて取得され、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであり、2つの参照ピクチャの方向が異なり、一方の参照ピクチャが現在ピクチャの前にあり、他方の参照ピクチャが現在ピクチャの後にあり、前記2つの参照ピクチャから前記現在ピクチャまでの距離が同じであり、
前記2つの参照ピクチャがともに短期参照ピクチャであり、前記2つの参照ピクチャのサイズがともに前記現在ピクチャのサイズと同じである、
ことを特徴とする符号化方法。
【請求項7】
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定することは、
前記第1の参照ブロックを拡張し、第2の参照ブロックを得ることと、
前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定することと、
前記第3の参照ブロックを拡張し、第4の参照ブロックを得ることと、
前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定することと、
を含むことを特徴とする請求項6に記載の方法。
【請求項8】
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件が満たされる場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いるステップを更に含む、ことを特徴とする請求項6に記載の方法。
【請求項9】
前記重み付けウェイトが同じであることは、ピクチャレベルの重み付けウェイトが同じであること、及びブロックレベルの重み付けウェイトが同じであることを含み、
前記ピクチャレベルの重み付けウェイトが同じであることは、ピクチャレベルの輝度重み付けウェイトが同じであることを含むことを特徴とする請求項8に記載の方法。
【請求項10】
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件のうちのいずれかが満たされない場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いないステップを更に含む、ことを特徴とする請求項6に記載の方法。
【請求項11】
復号装置であって、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定するための決定モジュールと、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定する場合、前記現在ブロックに対して動き補償を行い、前記現在ブロックの予測値を取得する動き補償モジュールと、を備え、
前記動き補償モジュールは、
前記現在ブロックにおけるサイズがdx*dyのユニットブロックについて、現在ブロックが動きベクトル調整モードを用いるときに前記ユニットブロックの最小SAD値が予め設定された閾値2*dx*dy以上であることと、現在ブロックに対して双方向オプティカルフロー予測モードを用いることとを決定する場合、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得し、
前記現在ブロックの各ユニットブロックの予測値に基づいて前記現在ブロックの予測値を決定するために使用され、
前記動き補償モジュールは、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するとき、
前記ユニットブロックの第1のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第5の参照ブロックを決定し、前記ユニットブロックの第2のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第6の参照ブロックを決定し、
第5の参照ブロックの画素値及び第6の参照ブロックの画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得、
前記第1のターゲット動きベクトルに基づいて前記現在ブロックの第1の参照ピクチャから前記ユニットブロックに対応する第1の参照ブロックを決定し、前記第2のターゲット動きベクトルに基づいて前記現在ブロックの第2の参照ピクチャから前記ユニットブロックに対応する第3の参照ブロックを決定し、
前記ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向の動きオフセット及び垂直方向の動きオフセットを決定し、
前記水平方向の動きオフセット及び前記垂直方向の動きオフセットに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得し、
前記ユニットブロックに含まれる各サブブロックのターゲット予測値に基づいて前記ユニットブロックの予測値を決定するために使用され
ここで、現在ブロックの予測値が、双方向の予測に用いられる2つの参照ピクチャの参照ブロックを重み付けて取得され、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであり、2つの参照ピクチャの方向が異なり、一方の参照ピクチャが現在ピクチャの前にあり、他方の参照ピクチャが現在ピクチャの後にあり、前記2つの参照ピクチャから前記現在ピクチャまでの距離が同じであり、
前記2つの参照ピクチャがともに短期参照ピクチャであり、前記2つの参照ピクチャのサイズがともに前記現在ピクチャのサイズと同じである、
ことを特徴とする復号装置。
【請求項12】
前記動き補償モジュールは、前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するとき、
前記第1の参照ブロックを拡張し、第2の参照ブロックを得、
前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定し、
前記第3の参照ブロックを拡張し、第4の参照ブロックを得、
前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定するために使用されることを特徴とする請求項11に記載の装置。
【請求項13】
前記動き補償モジュールは、更に、
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件が満たされる場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いるために使用される、ことを特徴とする請求項11に記載の装置。
【請求項14】
前記重み付けウェイトが同じであることは、ピクチャレベルの重み付けウェイトが同じであること、及びブロックレベルの重み付けウェイトが同じであることを含み、
前記ピクチャレベルの重み付けウェイトが同じであることは、ピクチャレベルの輝度重み付けウェイトが同じであることを含むことを特徴とする請求項13に記載の装置。
【請求項15】
前記動き補償モジュールは、更に、
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件のうちのいずれかが満たされない場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いないために使用される、ことを特徴とする請求項11に記載の装置。
【請求項16】
符号化装置であって、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定するための決定モジュールと、
現在ブロックに対して双方向オプティカルフロー予測モードを用いると決定する場合、前記現在ブロックに対して動き補償を行い、前記現在ブロックの予測値を取得する動き補償モジュールと、
を備え、
前記動き補償モジュールは、
前記現在ブロックにおけるサイズがdx*dyのユニットブロックについて、現在ブロックが動きベクトル調整モードを用いるときに前記ユニットブロックの最小SAD値が予め設定された閾値2*dx*dy以上であることと、現在ブロックに対して双方向オプティカルフロー予測モードを用いることとを決定する場合、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得し、
前記現在ブロックの各ユニットブロックの予測値に基づいて前記現在ブロックの予測値を決定するために使用され、
前記動き補償モジュールは、前記ユニットブロックに対して動き補償を行い、前記ユニットブロックの予測値を取得するとき、
前記ユニットブロックの第1のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第5の参照ブロックを決定し、前記ユニットブロックの第2のオリジナル動きベクトルに基づいて前記ユニットブロックに対応する第6の参照ブロックを決定し、
第5の参照ブロックの画素値及び第6の参照ブロックの画素値に基づいて、第1のオリジナル動きベクトル及び第2のオリジナル動きベクトルを調整し、第1のオリジナル動きベクトルに対応する第1のターゲット動きベクトル及び第2のオリジナル動きベクトルに対応する第2のターゲット動きベクトルを得、
前記第1のターゲット動きベクトルに基づいて前記現在ブロックの第1の参照ピクチャから前記ユニットブロックに対応する第1の参照ブロックを決定し、前記第2のターゲット動きベクトルに基づいて前記現在ブロックの第2の参照ピクチャから前記ユニットブロックに対応する第3の参照ブロックを決定し、
前記ユニットブロックに含まれる少なくとも1つのサブブロックのうちの各サブブロックに対して、
前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定し、前記第1のオリジナル予測値及び前記第2のオリジナル予測値に基づいて前記サブブロックの水平方向の動きオフセット及び垂直方向の動きオフセットを決定し、
前記水平方向の動きオフセット及び前記垂直方向の動きオフセットに基づいて前記サブブロックの予測補償値を取得し、前記第1のオリジナル予測値、前記第2のオリジナル予測値及び前記予測補償値に基づいて前記サブブロックのターゲット予測値を取得し、
前記ユニットブロックに含まれる各サブブロックのターゲット予測値に基づいて前記ユニットブロックの予測値を決定するために使用され
ここで、現在ブロックの予測値が、双方向の予測に用いられる2つの参照ピクチャの参照ブロックを重み付けて取得され、現在ブロックの2つの参照ピクチャの重み付けウェイトが同じであり、2つの参照ピクチャの方向が異なり、一方の参照ピクチャが現在ピクチャの前にあり、他方の参照ピクチャが現在ピクチャの後にあり、前記2つの参照ピクチャから前記現在ピクチャまでの距離が同じであり、
前記2つの参照ピクチャがともに短期参照ピクチャであり、前記2つの参照ピクチャのサイズがともに前記現在ピクチャのサイズと同じである、
ことを特徴とする符号化装置。
【請求項17】
前記動き補償モジュールは、前記第1の参照ブロック及び前記第3の参照ブロックに基づいて、前記サブブロックの第1のオリジナル予測値及び第2のオリジナル予測値を決定するとき、
前記第1の参照ブロックを拡張し、第2の参照ブロックを得、
前記第2の参照ブロックから前記サブブロックに対応する第1のターゲット参照ブロックを選択し、前記第1のターゲット参照ブロックの画素値に基づいて前記サブブロックの第1のオリジナル予測値を決定し、
前記第3の参照ブロックを拡張し、第4の参照ブロックを得、
前記第4の参照ブロックから前記サブブロックに対応する第2のターゲット参照ブロックを選択し、前記第2のターゲット参照ブロックの画素値に基づいて前記サブブロックの第2のオリジナル予測値を決定するために使用されることを特徴とする請求項16に記載の装置。
【請求項18】
前記動き補償モジュールは、更に、
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件が満たされる場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いるために使用される、ことを特徴とする請求項16に記載の装置。
【請求項19】
前記重み付けウェイトが同じであることは、ピクチャレベルの重み付けウェイトが同じであること、及びブロックレベルの重み付けウェイトが同じであることを含み、
前記ピクチャレベルの重み付けウェイトが同じであることは、ピクチャレベルの輝度重み付けウェイトが同じであることを含むことを特徴とする請求項18に記載の装置。
【請求項20】
前記動き補償モジュールは、更に、
ピクチャレベル制御情報が、現在ブロックが双方向オプティカルフロー予測モードをイネーブルすることを示すように構成されること、
現在ブロックがインターイントラ予測の組合せ(CIIP)モードを用いなく、対称動きベクトル差分(SMVD)モードを用いなく、サブブロック(Subblock)融合モードを用いないこと、
現在ブロックが並進動きモデルを用いること、
現在ブロックが双方向の予測を用いること、
ここで、現在ブロックのサイズが、幅が8以上、高さが8以上、面積が128以上であること、
現在ブロックが輝度成分の予測のみを行うこと、
を含む条件のうちのいずれかが満たされない場合、現在ブロックに対して双方向オプティカルフロー予測モードを用いないために使用される、
ことを特徴とする請求項16に記載の装置。
【請求項21】
復号デバイスであって、プロセッサ及び機械読み取り可能な記憶媒体を含み、
前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、請求項1から請求項6のいずれか一項に記載の復号方法を実施するために用いられることを特徴とする復号デバイス。
【請求項22】
符号化デバイスであって、プロセッサ及び機械読み取り可能な記憶媒体を含み、
前記機械読み取り可能な記憶媒体には、前記プロセッサにより実行可能な機械実行可能命令が記憶され、
前記プロセッサは、機械実行可能命令を実行することで、請求項7から請求項12のいずれか一項に記載の符号化方法を実施するために用いられることを特徴とする符号化デバイス。
【請求項23】
コンピュータ命令が記憶されている非一時的記憶媒体であって、
前記コンピュータ命令がプロセッサによって実行されるとき、請求項1から請求項5のいずれか一項に記載の復号方法が実施されることを特徴とする非一時的記憶媒体。
【請求項24】
コンピュータ命令が記憶されている非一時的記憶媒体であって、
前記コンピュータ命令がプロセッサによって実行されるとき、請求項6から請求項10のいずれか一項に記載の符号化方法が実施されることを特徴とする非一時的記憶媒体。
【外国語明細書】