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

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

▶ キヤノン株式会社の特許一覧

特許7514345ビデオ符号化の動きベクトル予測子インデックス符号化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-02
(45)【発行日】2024-07-10
(54)【発明の名称】ビデオ符号化の動きベクトル予測子インデックス符号化
(51)【国際特許分類】
   H04N 19/52 20140101AFI20240703BHJP
   H04N 19/91 20140101ALI20240703BHJP
【FI】
H04N19/52
H04N19/91
【請求項の数】 17
(21)【出願番号】P 2023020238
(22)【出願日】2023-02-13
(62)【分割の表示】P 2021507481の分割
【原出願日】2019-09-19
(65)【公開番号】P2023053273
(43)【公開日】2023-04-12
【審査請求日】2023-02-13
(31)【優先権主張番号】1815443.5
(32)【優先日】2018-09-21
(33)【優先権主張国・地域又は機関】GB
(31)【優先権主張番号】1815564.8
(32)【優先日】2018-09-24
(33)【優先権主張国・地域又は機関】GB
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ラロシュ, ギローム
(72)【発明者】
【氏名】ジスケ, クリストフ
(72)【発明者】
【氏名】オンノ, パトリス
(72)【発明者】
【氏名】タケ, ジョナサン
【審査官】田中 純一
(56)【参考文献】
【文献】国際公開第2013/018369(WO,A1)
【文献】米国特許出願公開第2015/0264390(US,A1)
【文献】特表2019-519980(JP,A)
【文献】米国特許出願公開第2017/0332095(US,A1)
【文献】Jianle Chen, et.al.,Algorithm Description of Joint Exploration Test Model 7 (JEM 7) [online], JVET-G JVET-G1001-v1,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/7_Torino/wg11/JVET-G1001-v1.zip><JVET-G1001-v1.docx>,2017年08月19日,pp.i-iv, pp.1-44
【文献】Haitao Yang, et.al.,Description of CE4: Inter prediction and motion vector coding [online], JVET-J JVET-J1024,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/10_San%20Diego/wg11/JVET-J1024-v1.zip><JVET-J1024.docx>,2018年04月20日,pp.1-44
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
サブブロックコロケーテッド時間的予測のための候補と、サブブロックアフィン予測のための候補とを含むことが可能な複数の動きベクトル予測子候補のリストを生成することと、
CABAC復号を用いて、動きベクトル予測子インデックスを復号することと、
当該動きベクトル予測子インデックスを用いて、前記リスト内の前記複数の動きベクトル予測子候補のうちの1つを特定することと、を有し、
記動きベクトル予測子インデックスの最初のビットはコンテキスト変数を用いたCABAC復号により復号され、前記動きベクトル予測子インデックスの前記最初のビットを除く前記動きベクトル予測子インデックスの全てのビットはバイパス復号され、
前記リストに含まれることが可能な動きベクトル予測子候補の最大候補数は、前記サブブロックアフィン予測が有効化されているかに依存する、
ことを特徴とする方法。
【請求項2】
前記サブブロックコロケーテッド時間的予測は、画像中の現在のブロックと同一位置の他の画像中のブロックにおける複数のサブブロックの各々の動き情報を用いることが可能である、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記他の画像中のブロックにおける前記複数のサブブロックは、当該他の画像中の当該ブロックを4分割することで得られる複数のサブブロックである、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記サブブロックアフィン予測は、2つまたは3つの動き情報を用いて、現在のブロックにおける複数のサブブロックの各々の動き情報を導出することが可能である、
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記サブブロックアフィン予測で動き情報が導出される複数のサブブロックの各々は4×4のサイズである、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記サブブロックアフィン予測は、現在のブロックの左上位置に対応する動き情報と、当該現在のブロックの右上位置に対応する動き情報と、を用いて、当該現在のブロックにおける複数のサブブロックの各々の動き情報を導出することが可能である、
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記リストに含まれることが可能な動きベクトル予測子候補の最大候補数は、更に、SPSレベルで前記サブブロックコロケーテッド時間的予測が有効化されているかに依存する、
ことを特徴とする請求項1に記載の方法。
【請求項8】
前記複数の動きベクトル予測子候補はマージ候補であり、前記動きベクトル予測子インデックスはマージインデックスである、
ことを特徴とする請求項1に記載の方法。
【請求項9】
サブブロックコロケーテッド時間的予測のための候補と、サブブロックアフィン予測のための候補とを含むことが可能な複数の動きベクトル予測子候補を含むリストを生成する生成手段と、
CABAC復号を用いて、動きベクトル予測子インデックスを復号する復号手段と、
当該動きベクトル予測子インデックスを用いて、前記リスト内の複数の動きベクトル予測子候補のうちの1つを特定する特定手段と、を有し、
記動きベクトル予測子インデックスの最初のビットはコンテキスト変数を用いたCABAC復号により復号され、前記動きベクトル予測子インデックスの前記最初のビットを除く前記動きベクトル予測子インデックスの全てのビットはバイパス復号され、
前記リストに含まれることが可能な動きベクトル予測子候補の最大候補数は、前記サブブロックアフィン予測が有効化されているかに依存する、
ことを特徴とする復号装置。
【請求項10】
前記サブブロックコロケーテッド時間的予測は、画像中の現在のブロックと同一位置の他の画像中のブロックにおける複数のサブブロックの各々の動き情報を用いることが可能である、
ことを特徴とする請求項9に記載の復号装置。
【請求項11】
前記他の画像中のブロックにおける前記複数のサブブロックは、当該他の画像中の当該ブロックを4分割することで得られる複数のサブブロックである、
ことを特徴とする請求項10に記載の復号装置。
【請求項12】
前記サブブロックアフィン予測は、2つまたは3つの動き情報を用いて、現在のブロックにおける複数のサブブロックの各々の動き情報を導出することが可能である、
ことを特徴とする請求項9に記載の復号装置。
【請求項13】
前記サブブロックアフィン予測で動き情報が導出される複数のサブブロックの各々は4×4のサイズである、
ことを特徴とする請求項12に記載の復号装置。
【請求項14】
前記サブブロックアフィン予測は、現在のブロックの左上位置に対応する動き情報と、当該現在のブロックの右上位置に対応する動き情報と、を用いて、当該現在のブロックにおける複数のサブブロックの各々の動き情報を導出することが可能である、
ことを特徴とする請求項9に記載の復号装置。
【請求項15】
前記リストに含まれることが可能な動きベクトル予測子候補の最大候補数は、更に、SPSレベルで前記サブブロックコロケーテッド時間的予測が有効化されているかに依存する、
ことを特徴とする請求項9に記載の復号装置。
【請求項16】
前記複数の動きベクトル予測子候補はマージ候補であり、前記動きベクトル予測子インデックスはマージインデックスである、
ことを特徴とする請求項9に記載の復号装置。
【請求項17】
コンピュータ又はプロセッサに
請求項1乃至8のいずれか1項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオ符号化及び復号化に関する。
【背景技術】
【0002】
最近、共同ビデオ専門家チーム(JVET)は、すなわちMPEGとITU-Tスタディグループ16のVCEGによって形成された共同チーム、多用途ビデオ符号化(VVC)と呼ばれる新しいビデオ符号化規格の研究を開始した。VVCの目標は、既存のHEVC規格(すなわち、典型的には以前の2倍)を超える圧縮性能の著しい改良を提供すること、及び2020年に完了することである。主な対象アプリケーション及びサービスは360度及びハイダイナミックレンジ(HDR)ビデオを含むが、これに限定されない。全体的に、JVETは、独立した試験所により実施された正式な主観的試験を用いて、32団体からの応答を評価した。いくつかの提案は、HEVCを使用する場合と比較して、典型的には40%以上の圧縮効率ゲインを実証した。特定の有効性が、超高精細(UHD)ビデオの試験材料に関して示された。したがって、我々は、最終的な規格の目標とする50%をはるかに超える圧縮効率ゲインを予想することができる。
【0003】
JVET探索モデル(JEM)は、全てのHEVCツールを使用する。HEVCには存在しない更なるツールは、動き補償を適用する時に、「アフィン動きモード」を使用することである。HEVCにおける動き補償は、平行移動に限定されるが、現実的には例えばズームイン/アウト、回転、遠近感の運動、及び他の不規則な動作のような多くの種類の動きがある。アフィン動きモードを利用する場合、そのような動きの形態をより正確に予測しようとするために、より複雑な変換がブロックに適用される。
【0004】
HEVCに存在しない別のツールは、オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP)を使用することである。オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP)は、特定の動き補償である。経時的基準フレームからの現在のブロックについて1つの動き情報のみを考慮する代わりに、それぞれ配置されたブロックの各動き情報が考慮される。したがって、この時間的動きベクトル予測は、各サブブロックの関連する動き情報を有する現在のブロックの分割を与える。現在のVTM参照ソフトウェアでは、ATMVPがマージ候補のリストに挿入されたマージ候補として伝達される。ATMVPが、SPSレベルで有効化されると、マージ候補の最大個数は1だけ増加される。従って、このモードが無効化される場合、6個の候補が5個の代わりに考慮される。
【発明の概要】
【0005】
これら、及び後述する他のツールは、マージ候補のリストの中からどのマージ候補が選択されるかを信号伝達するために使用されるマージインデックスの符号化の符号化効率及び複雑さに関する問題を引き起こしている。したがって、上記の問題の少なくとも1つの解決方法が望ましい。
【0006】
本発明の第1の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、ATMVP候補を含む動きベクトル予測子候補のリストを生成することと、前記リスト内の動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックス(マージインデックス)を生成することと、前記動きベクトル予測子インデックスの1つ以上のビットが、バイパスCABAC符号化されることを含む、ことを特徴とする方法が提供される。
【0007】
一実施形態では、前記動きベクトル予測子インデックスの第1番目のビットを除く全てのビットは、バイパスCABAC符号化される。
【0008】
本発明の第2の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、
ATMVP候補を含む動きベクトル予測子候補のリストを生成することと、
CABAC復号化を使用して前記動きベクトル予測子インデックスを復号化することと、動きベクトル予測子インデックスの1つ以上のビットが、バイパスCABAC復号化され、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0009】
一実施形態では、前記動きベクトル予測子インデックスの第1番目のビットを除く全てのビットが、バイパスCABAC復号化される。
【0010】
本発明の第3の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、ATMVP候補を含む動きベクトル予測子候補のリストを生成する手段と、前記リスト内の動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックス(マージインデックス)を生成する手段と、前記動きベクトル予測子インデックスの1つ以上のビットが、バイパスCABAC符号化されることを含む、ことを特徴とする装置が提供される。
【0011】
本発明の第4の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、ATMVP候補を含む動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、前記動きベクトル予測子インデックスの1つ以上のビットは、バイパスCABAC復号化され、リスト内の前記動きベクトル予測子のうちの1つを識別するために、前記復号化された動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0012】
本発明の第5の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することを含み、前記動きベクトル予測子インデックスの2以上のビットは同じコンテキストを共有する、ことを特徴とする方法が提供される。
【0013】
一実施形態では、前記動きベクトル予測子インデックスの全てのビットは、前記同じコンテキストを共有する。
【0014】
本発明の第6の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、前記動きベクトル予測子インデックスの2以上のビットは同じコンテキストを共有することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0015】
一実施形態では、前記動きベクトル予測子インデックスの全てのビットは、前記同じコンテキストを共有する。
【0016】
本発明の第7の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段を含み、前記動きベクトル予測子インデックスの2以上のビットは同じコンテキストを共有する、ことを特徴とする装置が提供される。
【0017】
本発明の第8の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、前記動きベクトル予測子インデックスの2以上のビットは同じコンテキストを共有し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0018】
本発明の第9の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することを含み、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックに隣接する少なくとも1つの動きベクトル予測子インデックスに依存する、ことを特徴とする方法が提供される。
【0019】
一実施形態では、前記動きベクトル予測子インデックスの少なくとも1つの前記コンテキスト変数は、少なくとも2つの隣接するブロックの前記それぞれの動きベクトル予測子インデックスに依存する。
【0020】
別の実施形態では、動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、現在のブロックの左にある左隣接ブロックの動きベクトル予測子インデックスと、現在のブロックの上にある上隣接ブロックの動きベクトル予測子インデックスに依存する。
【0021】
別の実施形態では、左隣接ブロックはA2であり、上隣接ブロックはB3である。
【0022】
別の実施形態では、左隣接ブロックはA1であり、上隣接ブロックはB1である。
【0023】
別の実施形態では、コンテキスト変数は、3つの異なる可能な値を有する。
【0024】
別の実施形態は、少なくとも1つの隣接ブロックの動きベクトル予測子インデックスと、現在のブロックの動きベクトル予測子インデックスのインデックス値を比較することと、比較結果に基づいて前記コンテキスト変数を設定することを含む。
【0025】
別の実施形態は、少なくとも1つの隣接ブロックの動きベクトル予測子インデックスと、現在のブロックの動きベクトル予測子インデックス内の1つ又は前記ビットのビット位置を表すパラメータと比較することと、比較結果に基づいて前記コンテキスト変数を設定することを含む。
【0026】
さらに別の実施形態は、第1の比較を行うことと、第1の隣接ブロックの動きベクトル予測子インデックスを、現在のブロックの動きベクトル予測子インデックス内の1つ又は前記ビットのビット位置を表すパラメータと比較することと、第2の比較を行うことと、第2の隣接ブロックの動きベクトル予測子インデックスを前記パラメータと比較することと、第1及び第2の比較の結果に依存して前記コンテキスト変数を設定することを含む。
【0027】
本発明の第10の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックに隣接する少なくとも1つのブロックの動きベクトル予測子インデックスに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0028】
一実施形態では、動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が少なくとも2つの隣接ブロックのそれぞれの動きベクトル予測子インデックスに依存する。
【0029】
別の実施形態では、動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、現在のブロックの左の左隣接ブロックの動きベクトル予測子インデックスと、現在のブロックの上側の隣接ブロックの動きベクトル予測子インデックスに依存する。
【0030】
別の実施形態では、左隣接ブロックはA2であり、上隣接ブロックはB3である。別の実施形態では、左隣接ブロックはA1であり、上隣接ブロックはB1である。別の実施形態では、コンテキスト変数が3つの異なる可能な値を有する。
【0031】
別の実施形態は、少なくとも1つの隣接ブロックの動きベクトル予測子インデックスを現在のブロックの動きベクトル予測子インデックスのインデックス値と比較することと、比較結果に依存して前記コンテキスト変数を設定することを含む。
【0032】
別の実施形態は、少なくとも1つの隣接ブロックの動きベクトル予測子インデックスを現在のブロックの動きベクトル予測子インデックス内の1つ又は前記ビットのビット位置を表すパラメータと比較することと、比較結果に依存して前記コンテキスト変数を設定することを含む。
【0033】
さらに別の実施形態は、第1の比較を行うことと、第1の隣接ブロックの動きベクトル予測子インデックスを、現在のブロックの動きベクトル予測子インデックス内の1つ又は前記ビットのビット位置を表すパラメータと比較することと、第2の比較を行うことと、第2の隣接ブロックの動きベクトル予測子インデックスを前記パラメータと比較することと、第1及び第2の比較の結果に依存して前記コンテキスト変数を設定することを含む。
【0034】
本発明の第11の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックに隣接する少なくとも1つのブロックの動きベクトル予測子インデックスに依存することを特徴とする装置が提供される。
【0035】
本発明の第12の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックに隣接する少なくとも1つのブロックの動きベクトル予測子インデックスに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0036】
本発明の第13の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグに依存する、ことを特徴とする方法が提供される。
【0037】
本発明の第14の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記動きベクトル予測子インデックスの復号化の前に利用可能である前記現在のブロックのシンタックス要素に依存する、ことを特徴とする方法が提供される。
【0038】
本発明の第15の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記現在のブロックの複雑度の指標である前記現在のブロックのシンタックス要素に依存する、ことを特徴とする方法が提供される。
【0039】
本発明の第16の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC符号化を使用して、前記動きベクトル予測子インデックスを符号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0040】
本発明の第17の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC符号化を使用して、前記動きベクトル予測子インデックスを符号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記動きベクトル予測子インデックスの復号化の前に利用可能である前記現在のブロックのシンタックス要素に依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0041】
本発明の第18の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC符号化を使用して、前記動きベクトル予測子インデックスを符号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記現在のブロックの複雑度の指標である前記現在のブロックのシンタックス要素に依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0042】
本発明の第19の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグに依存する、ことを特徴とする装置が提供される。
【0043】
本発明の第20の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記動きベクトル予測子インデックスの復号化の前に利用可能である前記現在のブロックのシンタックス要素に依存する、ことを特徴とする装置が提供される。
【0044】
本発明の第21の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記現在のブロックの複雑度の指標である前記現在のブロックのシンタックス要素に依存する、ことを特徴とする装置が提供される。
【0045】
本発明の第22の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC符号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0046】
本発明の第23の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC符号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記動きベクトル予測子インデックスの復号化の前に利用可能である前記現在のブロックのシンタックス要素に依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0047】
本発明の第24の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC符号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、別のパラメータ又は前記現在のブロックの複雑度の指標である前記現在のブロックのシンタックス要素に依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0048】
本発明の第25の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することを含み、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記リスト内にアフィン動きベクトル予測子候補があれば依存する、ことを特徴とする方法が提供される。
【0049】
一実施形態では、コンテキスト変数が第1のアフィン動きベクトル予測子候補の前記リスト内の位置に依存する。
【0050】
本発明の第26の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記リスト内にアフィン動きベクトル予測子候補があれば依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0051】
一実施形態では、コンテキスト変数が第1のアフィン動きベクトル予測子候補の前記リスト内の位置に依存する。
【0052】
本発明の第27の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記リスト内のアフィン動きベクトル予測子候補があれば依存する、ことを特徴とする装置が提供される。
【0053】
本発明の第28の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記リスト内にアフィン動きベクトル予測子候補があれば依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0054】
本発明の第29の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックの及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存する、ことを特徴とする方法が提供される。
【0055】
本発明の第30の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックの及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0056】
本発明の第31の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックの及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存する、ことを特徴とする装置が提供される。
【0057】
本発明の第32の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックの及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0058】
本発明の第33の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグとアフィンフラグの少なくとも1つのコンテキスト変数から導出される、ことを特徴とする方法が提供される。
【0059】
本発明の第34の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックのスキップフラグとアフィンフラグの少なくとも1つのコンテキスト変数から導出され、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0060】
本発明の第35の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、前記現在のブロックのスキップフラグとアフィンフラグの少なくとも1つのコンテキスト変数から導出される、ことを特徴とする装置が提供される。
【0061】
本発明の第36の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックのスキップフラグとアフィンフラグの少なくとも1つのコンテキスト変数から導出され、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0062】
本発明の第37の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、2つのことなる可能な値のみを有する、ことを特徴とする方法が提供される。
【0063】
本発明の第38の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、前記現在のブロックのスキップフラグとアフィンフラグの少なくとも1つのコンテキスト変数から導出され、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0064】
本発明の第39の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数が、2つの異なる可能な値のみを有する、ことを特徴とする装置が提供される。
【0065】
本発明の第40の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスの少なくとも1つのビットのコンテキスト変数は、2つの異なる可能な値のみを有し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0066】
本発明の第41の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスが、前記リスト内のアフィン動きベクトル予測子候補があれば依存する、ことを特徴とする方法が提供される。
【0067】
一実施形態では、動きベクトル予測子インデックスはマージインデックスである。
【0068】
本発明の第42の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスは、前記リスト内のアフィン動きベクトル予測子候補があれば依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0069】
一実施形態では、動きベクトル予測子インデックスはマージインデックスである。
【0070】
本発明の第43の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスが、前記リスト内のアフィン動きベクトル予測子候補があれば依存する、ことを特徴とする装置が提供される。
【0071】
本発明の第44の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスは、前記リスト内のアフィン動きベクトル予測子候補があれば依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0072】
本発明の第45の態様によれば、動きベクトル予測子インデックスを符号化する方法であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成することと、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択することと、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成することと、現在のブロックの前記動きベクトル予測子インデックスが、前記現在のブロック及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存する、ことを特徴とする方法が提供される。
【0073】
一実施形態では、動きベクトル予測子インデックスはマージインデックスである。
【0074】
本発明の第46の態様によれば、動きベクトル予測子インデックスを復号化する方法であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成することと、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化することと、現在のブロックの前記動きベクトル予測子インデックスは、前記現在のブロック及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用することを含む、ことを特徴とする方法が提供される。
【0075】
一実施形態では、動きベクトル予測子インデックスはマージインデックスである。
【0076】
本発明の第47の態様によれば、動きベクトル予測子インデックスを符号化する装置であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成する手段と、前記リスト内の前記動きベクトル予測子候補のうちの1つを選択する手段と、CABAC符号化を使用して、選択された前記動きベクトル予測子候補の動きベクトル予測子インデックスを生成する手段と、現在のブロックの前記動きベクトル予測子インデックスが、前記現在のブロック及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存する、ことを特徴とする装置が提供される。
【0077】
本発明の第48の態様によれば、動きベクトル予測子インデックスを復号化する装置であって、アフィン動きベクトル予測子候補を含む動きベクトル予測子候補のリストを生成する手段と、CABAC復号化を使用して、前記動きベクトル予測子インデックスを復号化する手段と、現在のブロックの前記動きベクトル予測子インデックスは、前記現在のブロック及び/又は前記現在のブロックに隣接する少なくとも1つのブロックのアフィンフラグに依存し、前記リスト内の前記動きベクトル予測子候補のうちの1つを識別するために、復号化された前記動きベクトル予測子インデックスを使用する手段を含む、ことを特徴とする装置が提供される。
【0078】
本発明のさらに別の態様は、コンピュータ又はプロセッサによって実行されると、コンピュータ又はプロセッサに前述の態様の方法のいずれかを実行させるプログラムに関する。プログラムは、それ自体で提供されてもよく、又は搬送媒体上で、搬送媒体によって、又は搬送媒体内で搬送されてもよい。搬送媒体は非一時的であってもよく、例えば、記憶媒体、特にコンピュータ可読記憶媒体であってもよい。搬送媒体はまた、一時的なものであってよく、例えば、信号又は他の伝送媒体であってもよい。信号は、インターネットを含む任意の適切なネットワークを介して送信されてもよい。
【0079】
本発明のさらに別の態様は、前述のデバイス態様のいずれかによるデバイスを備えるカメラに関する。一実施形態では、カメラがズーム手段をさらに備える。一実施形態では、カメラは、前記ズーム手段が動作可能である時を示し、ズーム手段が動作中であるという前記指示に依存してアフィンモードを伝達するように適合される。別の実施形態では、カメラがパン手段をさらに備える。別の実施形態では、カメラは、前記パン手段が動作可能である時を示し、パン手段が動作中であることを前記表示に依存してアフィンモードを送信するように適合される。
【0080】
本発明のさらに別の態様によれば、上記のカメラ態様のいずれかを具現化するカメラを備えるモバイル装置が提供される。一実施形態では、モバイル装置がモバイル装置の向きの変化を感知するように適合された少なくとも1つの位置センサをさらに備える。一実施形態では、モバイル装置は、モバイル装置の向きにおける変化を前記検知に依存してアフィンモードを伝達するよう適合されている。本発明のさらなる特徴は、他の独立及び従属請求項によって特徴付けられる。
【0081】
本発明の一態様における任意の特徴は、任意の適切な組み合わせで、本発明の他の態様に適用されてもよい。特に、方法の態様は、装置の態様に適用されてもよく、逆もまた同様である。さらに、ハードウェアで実装される特徴は、ソフトウェアで実装されてもよく、逆もまた同様である。本明細書におけるソフトウェア及びハードウェアの特徴へのいかなる基準も、それに応じて解釈されるべきである。本明細書に記載されるような任意の装置特徴は、方法特徴として提供されてもよく、逆もまた同様である。本明細書で使用されるように、手段プラス機能の特徴は、適切にプログラムされたプロセッサ及び関連するメモリのような、それらの対応する構造に関して代替的に表現されてもよい。また、本発明の任意の態様において説明され、定義された様々な特徴の特定の組合せは、独立して実装及び/又は供給及び/又は使用されることができることを理解されたい。
【図面の簡単な説明】
【0082】
例として、以下の図面を参照して説明する。
【0083】
図1図1は、HEVCで使用される符号化構造を説明するための図である。
図2図2は、本発明の1つ以上の実施形態が実装されるデータ通信システムを模式的に示すブロック図である。
図3図3は、本発明の1つ以上の実施形態が実装される処理装置の構成要素を示すブロック図である。
図4図4は、本発明の実施形態による符号化方法のステップを示すフローチャートである。
図5図5は、本発明の実施形態による復号化方法のステップを示すフローチャートである。
図6a図6(a)は、動きベクトル予測子を生成するために使用され得る空間的及び時間的ブロックを示す。
図6b図6(b)は、動きベクトル予測子を生成するために使用され得る空間的及び時間的ブロックを示す。
図7図7は、AMVP予測子設定導出のプロセスの簡略化ステップを示す。
図8図8は、マージモードの動きベクトル導出プロセスの模式図である。
図9図9は、現在のブロックの分割及び時間的動きベクトル予測を示す。
図10図10(a)は、HEVCに対する、又はATMVPがSPSレベルで有効化されていない時のマージインデックスの符号化を示す。図10(b)は、ATMVPがSPSレベルで有効化される時のマージインデックスの符号化を示す。
図11図11(a)は、単純なアフィン動き場を示す。図11(b)は、より複雑なアフィン動き場を示す。
図12図12は、符号化モードに関連するいくつかのシンタックス要素の部分的な復号化処理のフローチャートである。
図13図13は、マージ候補導出を示すフローチャートである。
図14図14は、本発明の第1の実施形態を示すフローチャートである。
図15図15は、本発明の第12の実施形態における符号化モードに関連するいくつかのシンタックス要素の部分的な復号化処理のフローチャートである。
図16図16は、本発明の第12の実施形態におけるマージ候補のリストの生成を示すフローチャートである。
図17図17は、本発明の実施形態で使用するのに適したCABAC符号化部を説明する際に使用するためのブロック図である。
図18図18は、本発明の1つ以上の実施形態を実施するためのコンピューティングデバイスの模式的なブロック図である。
図19図19は、コンピューティングデバイスの模式的ブロック図である。
図20図20は、ネットワークカメラシステムを示す図である。
図21図21は、スマートフォンを示す図である。
【発明を実施するための形態】
【0084】
以下で説明する本発明の実施形態は、CABACを使用してインデックスの符号化及び復号化を改善することに関する。実施形態を説明する前に、ビデオ符号化及び復号化技術、ならびに関連する符号化部及び復号化部について説明する。図1は、高効率ビデオ符号化(HEVC)ビデオ規格で使用される符号化構造に関する。ビデオシーケンス1は、一連のデジタル画像iから構成される。このような各デジタル画像は、1つ以上のマトリクスによって表される。マトリクス係数はピクセルを表す。シーケンスの画像2はスライス3に分割され得る。スライスは、いくつかの例では画像全体を構成することができる。これらのスライスは、非重複の符号化ツリーユニット(CTU)に分割される。符号化ツリーユニット(CTU)は、高効率ビデオ符号化(HEVC)ビデオ規格の基本的な処理ユニットであり、概念的には、いくつかの以前のビデオ規格で使用されたマクロブロックユニットに構造内で対応する。CTUは時々、最大符号化ユニット(LCU)とも呼ばれる。CTUは輝度及び彩度の構成要素部分を有し、構成要素部分の各々は、符号化ツリーブロック(CTB)と呼ばれる。これらの異なる色成分は、図1には示されていない。
【0085】
CTUは一般的に、HEVC用のサイズ64ピクセルx64ピクセルであるが、VVC用にはこのサイズが128ピクセルx128ピクセルであり得る。各CTUは順次、四分木分解を使用して、より小さい可変サイズ符号化ユニット(CU)5に反復的に分割されてもよい。符号化ユニットは、基本符号化要素であり、予測ユニット(Prediction Unit)と変換ユニット(Transform Unit)と呼ばれる2種類のサブユニットによって構成される。PU又はTUの最大サイズは、CUサイズに等しい。予測ユニットは、ピクセル値の予測のためのCUの仕切りに対応する。4つの正方形PUへの仕切りと、2つの長方形PUへの2つの異なる仕切りを含む、606によって示されるように、PUへのCUの様々な異なる仕切りが可能である。変換ユニットは、DCTを使用して空間変換の対象となる基本ユニットである。CUは、四分木表現607に基づいてTUに分割され得る。
【0086】
各スライスは、1つのネットワーク抽象化層(NAL)ユニットに埋め込まれる。さらに、ビデオシーケンスの符号化パラメータは、パラメータセットと呼ばれる専用NALユニットに記憶される。HEVC及びH.264/AVCでは、2種類のパラメータセットNALユニット、すなわち、第1に、ビデオシーケンス全体の間に変更されない全てのパラメータを収集するシーケンスパラメータセット(SPS)NALユニットが使用される。典型的には、それは符号化プロファイル、ビデオフレームのサイズ、及び他のパラメータを処理する。第2に、ピクチャパラメータセット(PPS)NALユニットは、シーケンスの1つの画像(又はフレーム)から別に変更することができるパラメータを含む。HEVCは、ビットストリームの全体的な構造を記述するパラメータを含むビデオパラメータセット(VPS)NALユニットも含む。VPSは、HEVCで定義された新しいタイプのパラメータセットであり、ビットストリームの全てのレイヤに適用する。レイヤは、複数の時間的サブレイヤを含めることができ、全てのバージョン1のビットストリームは、単一のレイヤに制限される。HEVCは、拡張性とマルチビューのための特定の層拡張を有し、これらは複数の層が後方互換性バージョン1基本レイヤを備えることを可能にする。
【0087】
図2は、本発明の1つ以上の実施形態が実装され得るデータ通信システムを示す。データ通信システムは、データ通信ネットワーク200を介して、データストリームのデータパケットを受信装置、この場合はクライアント端末202に送信するように動作可能な送信装置、この場合はサーバ201を含む。データ通信ネットワーク200は、ワイドエリアネットワーク(WAN)又はローカルエリアネットワーク(LAN)であってもよい。このようなネットワークは例えば、無線ネットワーク(Wifi/802.11a又はb又はg)、イーサネットネットワーク、インターネットネットワーク、又は複数の異なるネットワークから構成される混合ネットワークであってもよい。本発明の特定の実施形態では、データ通信システムは、サーバ201が同じデータコンテンツを複数のクライアントに送信するデジタルテレビ放送システムであってもよい。
【0088】
サーバ201によって提供されるデータストリーム204は、ビデオ及びオーディオデータを表すマルチメディアデータから構成されてもよい。オーディオ及びビデオデータストリームは、本発明のいくつかの実施形態では、それぞれマイクロフォン及びカメラを使用してサーバ201によってキャプチャされ得る。いくつかの実施形態において、データストリームは、サーバ201上に記憶されてもよく、あるいは別のデータプロバイダからサーバ201によって受信されてもよく、あるいはサーバ201で生成されてもよい。サーバ201は特に、符号化部への入力として提示されるデータのよりコンパクトな表現である送信用の圧縮ビットストリームを提供するために、ビデオ及びオーディオストリームを符号化するための符号化部を備える。送信データの品質対送信データの量のより良好な比を得るために、ビデオデータの圧縮は例えば、HEVCフォーマット又はH.264/AVCフォーマットに従ってもよい。
【0089】
クライアント202は、表示装置上のビデオ画像と拡声器による音声データを再生するために、送信されたビットストリームを受信し、再構成されたビットストリームを復号化する。図2の例ではストリーミングシナリオが考慮されているが、本発明のいくつかの実施形態では符号化部と復号化部との間のデータ通信が例えば、光ディスクなどの媒体記憶装置を使用して実行され得ることが理解される。本発明の1つ以上の実施形態では、ビデオ画像は、画像の再構成されたピクセルへの適用について、最終画像内のフィルタリングされたピクセルを提供するために、補償オフセットを表すデータと共に送信される。
【0090】
図3は、本発明の少なくとも1つの実施形態を実施するように構成された処理装置300を模式的に示す。処理装置300は、マイクロコンピュータ、ワークステーション、又はライトポータブルデバイスなどの装置であってもよい。装置300は、以下に接続された通信バス313を含む、すなわち、CPUで示されるマイクロプロセッサなどの中央演算処理装置311、本発明を実施するためのコンピュータプログラムを記憶するためのROMと表記される読み出し専用メモリ306、本発明の実施形態の方法の実行コード及びディグのシーケンスを符号化する方法を実行するために必要な変数及びパラメータを記録するよう適合されたレジスタを記憶するためのRAMと表記されたランダムアクセスメモリ312、処理されるデジタルデータが送信又は受信される通信ネットワーク303に接続された通信インターフェース302。
【0091】
任意で、装置300は、以下の構成要素を含むこともできる、すなわち、本発明の1つ以上の実施形態の方法を実施するためのコンピュータプログラム、及び本発明の1つ以上の実施形態の実施中に使用又は生成されるデータを記憶するための、ハードディスクなどのデータ記憶手段304、ディスク306のためのディスクドライブ305、ディスク306からデータを読み取るか、又は前記ディスクにデータを書き込むように構成されるディスクドライブ、キーボード310又は他の任意の指示手段によって、データを表示及び/又はグラフィカルユーザインタフェースをユーザに提供するための画面309。装置300は例えば、デジタルカメラ320又はマイクロフォン308のような種々の周辺機器に接続されてよく、それぞれはマルチメディアデータを装置300に供給するための、入力/出力カード(図示せず)に接続される。
【0092】
通信バスは、装置300に含まれる、又はそれに接続される種々の要素間の通信及び相互運用性を提供する。バスの表現は限定されず、特に、中央演算装置は直接的に、又は装置300の別の要素の手段によって、装置300の任意の要素に命令を通信するように動作可能である。ディスク306は、マイクロコンピュータ又はマイクロプロセッサによって読み取られ得る情報記憶手段によって、例えばコンパクトディスク(CD-ROM)、書き換え可能又はそうではない、ZIPディスク又はメモリカード及び一般的な用語において等の任意の情報媒体に置き換えられてよく、装置に統合され又はそうではない、可能であればリムーバブルであり、実行がデジタル画像のシーケンスを符号化する方法及び/又は本発明によるビットストリームの復号方法を可能にするよう1つ以上のプログラムを記憶するように適合され得る。
【0093】
実行可能コードは、読み出し専用メモリ306、ハードディスク304又は先に説明したような例えばディスク306のようなリムーバブルデジタル媒体のいずれかに格納され得る。変形例によれば、プログラムの実行可能コードは、ハードディスク304のような実行される前に装置300の記憶手段の1つに記憶されるために、インターフェース302を介して、通信ネットワーク303の手段によって受信され得る。中央演算処理装置311は、命令又はプログラムのソフトウェアコードの一部又は本発明に記載のプログラム、前述の記憶手段のうち1つに記憶される命令の実行を制御及び指示するよう適合されている。電源オン時に、例えばハードディスク304又は読み出し専用メモリ306上の不揮発性メモリに記憶されるプログラム又はプログラムは、ランダムアクセスメモリ312に転送され、それは次にプログラム又はプログラムの実行可能コードと、本発明を実施するために必要な変数及びパラメータを記憶するためのレジスタを含む。
【0094】
この実施形態では、装置が本発明を実施するためのソフトウェアを使用するプログラマブル装置である。しかしながら、代替的に、本発明はハードウェア(例えば、特定用途向け集積回路又はASICの形態で)において実施されてもよい。図4は、本発明の少なくとも1つの実施形態による符号化部のブロック図を示す。符号化部は、接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU311によって実行されるべきプログラム命令の形態で、本発明の1つ以上の実施形態による画像シーケンスの画像を符号化する少なくとも1つの実施形態を実施する方法の少なくとも1つの対応するステップを実施するように適合される。デジタル画像i0からin401のオリジナルシーケンスは、符号化部400によって入力として受信される。各デジタル画像は、ピクセルとして知られるサンプルのセットによって表される。
【0095】
ビットストリーム410は、符号化処理の実装後の符号化部400による出力である。ビットストリーム410は、複数の符号化ユニット又はスライスを備え、各スライスは符号化されたビデオデータを備えるスライスとスライス本体を符号化するために使用される符号化パラメータの符号化値を送信するためのスライスヘッダを備える。入力デジタル画像i0からin401は、モジュール402によってピクセルのブロックに分割される。ブロックは画像部分に対応し、可変サイズであってもよい(例えば、4×4、8×8、16×16、32×32、64×64、128×128ピクセル、及びいくつかの矩形ブロックサイズが考慮されてもよい)。符号化モードは、各入力ブロックに対して選択される。符号化モードの2つのファミリーが提供される、つまり、空間的予測符号化(イントラ予測)に基づく符号化モードと、時間的予測(インター符号化、マージ、スキップ)に基づく符号化モード。可能な符号化モードがテストされる。
【0096】
モジュール403は、符号化されるべき所定のブロックが、符号化されるべき前記ブロックの近傍の画素から計算された予測子によって予測されるイントラ予測処理を実施する。選択されたイントラ予測子の指示及び所定のブロックとそれの予測子との間の差分は、イントラ符号化が選択される場合に残差を提供するために符号化される。時間的予測は、動き推定モジュール404及び動き補償モジュール405によって実施される。最初に、基準画像416のセットの中から基準画像が選択され、符号化されるべき所定のブロックに最も近い領域である基準領域又は画像部分とも呼ばれる基準画像の部分が、動き推定モジュール404によって選択される。次いで、動き補償モジュール405は、選択された領域を使用して、符号化されるべきブロックを予測する。残差ブロックとも呼ばれる、選択された基準領域と所定のブロックとの間の差分は、動き補償モジュール405によって計算される。選択された基準領域は、動きベクトルによって示される。
【0097】
このように、両方の場合(空間的及び時間的予測)、残差は元のブロックから予測を減算することによって計算される。モジュール403によって実施されるイントラ予測では、予測方向が符号化される。時間的予測では、少なくとも1つの動きベクトルが符号化される。インター予測が選択される場合、動きベクトル及び残差ブロックに対する情報が符号化される。ビットレートをさらに低減するために、動きが同種であると仮定すると、動きベクトルは、動きベクトル予測子に対する差分によって符号化される。動き情報予測子セットの動きベクトル予測子は、動きベクトル予測と符号化モジュール417によって動きベクトル場418から得られる。符号化部400はさらに、レート歪み基準などの符号化コスト基準を適用することによって、符号化モード選択のための選択モジュール406を備える。冗長性をさらに低減するために、変換モジュール407によって変換(DCTなど)が残差ブロックに適用され、得られた変換データは、量子化モジュール408によって量子化され、エントロピー符号化モジュール409によってエントロピー符号化される。最後に、符号化されている現在のブロックの符号化された残差ブロックは、ビットストリーム410に挿入される。
【0098】
また、符号化部400は後続の画像の動き推定のための参照画像を生成するために、符号化された画像の復号化を行う。これは、ビットストリームを受信する符号化部及び複合化部が同じ参照フレームを有することを可能にする。逆量子化モジュール411は、量子化データの逆量子化を行い、逆変換モジュール412による逆変換が続く。逆方向イントラ予測モジュール413は、所定のブロックにどの予測子を使用するかを判定するために予測情報を使用し、逆方向動き補償モジュール414は、モジュール412によって取得された残差を、参照画像416のセットから取得された参照領域に実際に加える。次いで、ポストフィルタリングは、再構成された画素のフレームをフィルタリングするために、モジュール415によって適用される。本発明の実施形態では、補償オフセットが再構成画像の再構成画素の画素値に付加される、SAOループフィルタが使用される。
【0099】
図5は、本発明の一実施形態による、符号化部からデータを受信するために使用され得る復号化部60のブロック図を示す。復号化部は、接続されたモジュールによって表され、各モジュールは例えば、デバイス300のCPU311によって実行されるプログラム命令の形式で、復号化部60によって実施される方法の対応するステップを実施するように適合される。復号化部60は符号化ユニットを含むビットストリーム61を受信し、それぞれは符号化パラメータに関する情報を含むヘッダと、符号化されたビデオデータを含む本体から構成される。図4に関して説明したように、符号化されたビデオデータはエントロピー符号化され、動きベクトル予測子のインデックスは、所定のブロックに対して、予め定めたビット数で符号化される。受信された符号化ビデオデータは、モジュール62によってエントロピー復号化される。次いで、残差データはモジュール63によって逆量子化され、次いで、画素値を得るために逆変換がモジュール64によって適用される。
【0100】
符号化モードを示すモードデータはまた、エントロピー復号化され、モードに基づいて、イントラ型復号化又はインター型復号化が画像データの符号化ブロック上に実行される。イントラモードの場合、イントラ予測子は、ビットストリームで指定されたイントラ予測モードに基づいて、イントラ逆予測モジュール65によって判定される。モードがインターである場合、符号化部によって使用される参照領域を見つけるために、動き予測情報がビットストリームから抽出される。動き予測情報は、参照フレームインデックスと動きベクトル残差から構成される。動きベクトル復号モジュール70によって動きベクトルを得るために、動きベクトル予測子が動きベクトル残差に加えられる。
【0101】
動きベクトル復号化モジュール70は、動き予測によって符号化された現在のブロックごとに対して動きベクトル復号化を適用する。現在のブロックについて、動きベクトル予測子のインデックスは、復号され得る現在のブロックに関連する動きベクトルの実際の値がいったん取得されると、モジュール66によって逆方向動き補償を適用するために使用される。復号化された動きベクトルによって示される参照画像部分は、逆方向動き補償66を適用するために、参照画像68から抽出される。動きベクトル場データ71は後続の復号化された動きベクトルの逆予測に使用するために、復号化された動きベクトルで更新される。最後に、復号されたブロックが得られる。ポストフィルタリングは、ポストフィルタリングモジュール67によって適用される。復号化されたビデオ信号69は、最終的に復号化部60によって提供される。
【0102】
(CABAC)
HEVCは、コンテキスト適応型バイナリ算術符号化(CABAC)、ゴロムライス符号、又は固定長符号化と呼ばれる単純なバイナリ表現など、複数種類のエントロピー符号化を使用する。ほとんどの場合、異なるシンタックス要素を表現するために、バイナリ符号化処理が実行される。このバイナリ符号化処理はまた、非常に具体的であり、異なる構文要素に依存する。算術符号化は、それらの現在の確率に従ってシンタックス要素を表す。CABACは、コンテキスト変数によって定義される「コンテキスト」に応じてシンタックス要素の確率を分離する算術符号化の拡張である。これは条件付き確率に相当する。コンテキスト変数は、すでに符号化されている左上のブロック(以下により詳細に説明するように、図6bのA2)及び左上のブロック(図6bのB3)の現在のシンタックス値から導き出され得る。
【0103】
CABACは、H.264/AVC及びH.265/HEVC規格の基準部分として採用されている。H.264/AVCでは、それはエントロピー符号化の2つの代替方法のうちの1つである。H.264/AVCに指定された他の方法は、可変長符号のコンテキスト適応的切り替えセット、いわゆるコンテキスト適応型可変長符号化(CAVLC)の使用に基づく、低複雑性エントロピー符号化技術である。CABACと比較して、CAVLCは、より低い圧縮効率を犠牲にして、低減された実装コストを提供する。標準又は高精細解像度のTV信号について、CABACは一般的に、同じ目的ビデオ品質でCAVLCに対し、10から20%のビットレート節約を提供する。HEVCでは、CABACが唯一のエントロピー符号化方法である。図17は、CABAC符号化部の主要ブロックを示す。
【0104】
非バイナリ値である入力シンタックス要素は、バイナライザ1701によって2値化される。CABACの符号化戦略は、動きベクトル差又は変換係数レベル値の構成要素のような、ハイブリッドブロックベースのビデオコーダにおけるシンタックス要素値の非常に効率的な符号化がコンテキストモデリング及びバイナリ算術符号化の後続ステージのための一種の前処理ユニットとして2値化方式を使用することによって達成され得るという探索に基づいている。一般に、2値化スキームは、シンタックス要素値の一意のマッピングをバイナリ決定のシーケンス、バイナリコードツリーの面でも解釈され得る、いわゆるビンへ定義する。CABACにおける2値化方式の設計は、構造が簡単なオンライン計算を可能にし、いくつかの適切なモデル確率分布に適応される少数の初歩的プロトタイプに基づいている。
【0105】
各ビンは、スイッチ1702の設定に従って、2つの基本的な方法のうちの1つで処理され得る。スイッチが「正規」設定にある場合、ビンはコンテキストモデラ1703及び正規符号化エンジン1704に供給される。スイッチが「バイパス」設定にある場合、コンテキストモデラはバイパスされ、ビンはバイパス符号化エンジン1705に供給される。符号化エンジン1704及び1705のうちの適用可能な1つによって符号化されたビンは、CABAC符号化部の出力としてビットストリームを形成することができるように、別のスイッチ1706はスイッチ1702と同様の「正規」及び「バイパス」設定を有する。
【0106】
各シンタックス要素値をビンのシーケンスに分解することによって、CABACにおける各ビン値のさらなる処理は、通常又はバイパスモードのいずれかとして選択され得る、関連する符号化モード決定に依存する。後者は、符号情報に関連するビン、又は一様に分布していると仮定され、結果的に、全ての正規のバイナリ算術符号化処理が単にバイパスされる、下位の有意なビンのために選択される。通常の符号化モードでは、各ビン値は、関連する確率モデルは任意のコンテキストモデリングなしに固定選択、又は関連するコンテキストモデルに応じて適応的に選択されるかのいずれかによって判定される、通常のバイナリ算術符号化エンジンを使用することによって符号化される。重要な設計決定として、後者の場合は一般に、最も頻繁に観測されるビンのみに適用され、一方、他は通常、頻繁に観測されないビンは、結合、典型的には0次確率モデルを使用して処理される。このように、CABACはサブシンボルレベルでの選択的なコンテキストモデリングを可能にし、これにより、全体的なモデリング又は学習コストを大幅に低減したシンボル間冗長性を利用するための効率的な手段を提供する。コンテキストモデルの特定の選択に対して、4つの基本設計タイプは、それらのうちの2つは変換係数レベルのみの符号化に適用される、CABACで使用される。これらの4つのプロトタイプの設計は、モデル化されるソースデータの典型的な特性に関する先験的な知識に基づいており、それは不必要なモデル化コストのオーバヘッドを回避することと、統計的依存性を大幅に利用することとの相容れない目的との間の良好な妥協点を見つける目的を反映している。
【0107】
CABACにおける最低レベルの処理では、各ビン値は、通常又はバイパス符号化モードのいずれかで、バイナリ算術符号化部に入る。後者について、相当複雑さが低減された符号化エンジンの高速分岐が使用される、一方、前者の符号化モードについて、所定のビン値の符号化は、ビン値と共にMコーダに渡される関連する適応確率モデルの実際の状態(CABACにおけるテーブルベースのバイナリ算術符号化エンジンのために選択された用語)に依存する。
【0108】
HEVCは、3つの異なるインターモード、すなわち、インターモード、マージモード、及びマージスキップモードを使用する。これらのモード間の主な違いは、ビットストリームにおけるデータ伝達である。動きベクトル符号化について、現在のHEVC規格は、規格の先のバージョンには存在しなかった動きベクトル予測のための競合ベースの方式を含む。インター又はマージモードのそれぞれについて最良の動きベクトル予測子又は最良の動き情報を見つけるために、いくつかの候補が符号化部側で歪みレート基準と競合していることを意味する。最良の予測子又は動き情報の最良の候補に対応するインデックスが、ビットストリームに挿入される。復号化部は、予測子又は候補の同じセットを導出することができ、複合化されたインデックスに従って最良の1つを使用する。HEVCの画面コンテンツ拡張では、イントラブロックコピーと呼ばれる新しい符号化ツールが、それらの3つのインターモードのいずれかとして伝達され、IBCと同等のインターモードとの間の差分は、基準フレームが現在の1つであるかどうかをチェックすることによって行われる。これは、例えば、リストL0の参照インデックスをチェックすることと、これがそのリスト内の最後のフレームである場合、これがイントラブロックコピーであると推定することによって実施され得る。実施するための別の方法は、現在のピクチャオーダカウントと参照フレームを比較している、すなわち、等しい場合、これはイントラブロックコピーである。
【0109】
予測子及び候補の導出の設計は、複雑さに不均衡な影響を与えることなく、最良の符号化効率を達成する上で重要である。HEVCでは、2つの動きベクトル導出が使用される、すなわち、インターモード用の1つ(高度動きベクトル予測(AMVP))及び、マージモード用の1つ(マージ導出処理)。以下、これらの処理を説明する。図6a及び図6bは、HEVC符号化及び復号化システムの高度動きベクトル予測(AMVP)及びマージモードにおける動きベクトル予測子を生成するために使用され得る空間的及び時間的ブロックを示し、図7は、AMVP予測子セット導出のプロセスの簡略化されたステップを示す。
【0110】
2つの予測子、すなわちAMVPモードの2つの空間動きベクトルは、上の角部のブロック(ブロックB2)及び左角部のブロック(ブロックA0)を含む上ブロック(文字「B」によって示される)及び左ブロック(文字「A」によって示される)の中から選択され、1つの予測子が図6aに示されるように、配置されたブロックの右下ブロック(H)及び中央ブロック(中央)の中から選択される。以下の表1は、図6a及び6bに示されるように、現在のブロックに対する用語でブロックを参照するときに使用される命名法の概要を示す。この命名法は、簡略標記として使用されるが、特に将来の規格のバージョンでは他のラベル付けシステムが使用されてもよいことを理解されたい。
【0111】
【表1】
【0112】
「現在のブロック」は、サイズが例えば4x4、16x16、32x32、64x64、128x128、又はその間の任意のサイズなど、可変であってよいことに注意されるべきである。ブロックの次元は、これは、バイナリ符号化を使用する場合、ビットのより効率的な使用をもたらすように、好ましくは2のファクタ(すなわち2^n×2^m、ここでn及びmは正の整数である)である。現在のブロックは正方形である必要はないが、これはしばしば、符号化の複雑さのための好ましい実施形態である。図7を参照すると、第1のステップは左下のブロックA0及びA1の中から、空間位置が図6に示されている第1の空間予測子(候補1、706)を選択することを目的としている。そのために、これらのブロックは所定の順序で次々に選択され(700、702)、選択されたブロックごとに、所定の順序で以下の条件が評価され(704)、条件が満たされる第1のブロックは、予測子として設定される、すなわち、同じ参照リストと同じ参照画像からの動きベクトルと、他の参照リストと同じ参照画像からの動きベクトルと、同じ参照リストと異なる参照画像からのスケーリングされた動きベクトル又は他の参照リストと異なる参照画像からのスケーリングされた動きベクトル。
【0113】
値が見つからない場合、左の予測子は使用不可と見なされる。この場合、それは関連ブロックがイントラ符号化されているか、又はそれらのブロックが存在しないことを示す。次のステップは、空間的位置が図6に示されている右上ブロックB0、上ブロックB1、及び左上ブロックB2の中から第2の空間予測子(候補2、716)を選択することを目的とする。そのために、これらのブロックは次々に、所定の順序で選択され(708、710、712)、そして選択されたブロックごとに、上記の条件が所定の順序で評価され(714)、上記の条件が満たされる第1のブロックは、予測子として設定される。
【0114】
再び、値が見つからない場合、上の予測子は利用不可能であると見なされる。この場合、関連ブロックがイントラ符号化されているか、又はそれらのブロックが存在しないことを示す。次のステップ(718)において、2つの予測子は両方が利用可能である場合、それらが等しい場合(すなわち、同じ動きベクトル値、同じ参照リスト、同じ参照インデックス、及び同じ方向タイプ)、それらのうちの1つを除去するために、互いに比較される。1つの空間的予測子のみが利用可能である場合、アルゴリズムは、次のステップにおいて時間的予測子を探している。時間的動き予測子(候補3、726)は、次のように導出される、すなわち、前のフレームにおいて配置されたブロックの右下(H、720)位置がまず、利用可能性チェックモジュール722において考慮される。それが存在しない場合、又は動きベクトル予測子が利用可能でない場合、配置されたブロックの中央(中央、724)がチェックされるように選択される。これらの時間的位置(中央及びH)は図6に示されている。いずれの場合も、拡大縮小723は現在のフレームと第1のフレームとの間の時間的距離が参照リストであることに一致するように、それらの候補に適用される。
【0115】
次に、動き予測子値が予測子のセットに追加される。次に、予測子の数(Nb_Cand)が、予測子の最大個数(Max_Cand)と比較される(728)。上述のとおり、AMVPの導出処理が生成する必要がある動きベクトル予測子の最大予測子数(Max_Cand)は、HEVC規格の現在のバージョンでは2である。この最大数に達する場合、AMVP予測子の最終リスト又はセット(732)が構築される。そうでない場合、ゼロ予測子がリストに追加される(730)。ゼロ予測子は、(0,0)に等しい動きベクトルである。図7に示すように、AMVP予測子の最終リスト又はセット(732)は、空間的動き予測子のサブセット(700~712)及び時間的動き予測子のサブセット(720、724)から構築される。
【0116】
上述のように、マージモード又はマージスキップモードの動き予測子候補は、方向、リスト、参照フレームインデックス及び動きベクトルという全ての必要な動き情報を表す。複数の候補のインデックス付きリストは、マージ導出処理によって生成される。現在のHEVC設計では、両方のマージモードの候補の最大個数は5に等しい(4つの空間的候補及び1つの時間的候補)。図8は、マージモードの動きベクトル導出処理の概略図である。導出処理の第1のステップでは、5つのブロック位置が考慮される(800~808)。これらの位置は、基準A1、B1、B0、A0、及びB2で図3に示される空間的位置である。次のステップでは、空間的動きベクトルの利用可能性がチェックされ、多くても5つの動きベクトルが選択される(810)。それが存在する場合及びブロックがイントラ符号化されていない場合、予測子は利用可能であると見なされる。したがって、5つのブロックに対応する動きベクトルを候補として選択することは、以下の条件に従って行われる、すなわち、
【0117】
「左」のA1動きベクトル(800)が利用可能である場合(810)、すなわち、それが存在する場合及びこのブロックがイントラ符号化されていない場合、「左」のブロックの動きベクトルが選択され、候補リスト内の第1の候補として使用され(814)、「上」のB1動きベクトル(802)が利用可能である場合(810)、候補「上」のブロック動きベクトルは、存在する場合、「左」のA1動きベクトルと比較される(812)。B1動きベクトルがA1動きベクトルに等しい場合、B1は空間的候補のリストに追加されない(814)。逆に、B1動きベクトルがA1動きベクトルに等しくない場合、B1が空間的候補のリストに追加され(814)、「右上」のB0動きベクトル(804)が利用可能である場合(810)、「右上」の動きベクトルがB1動きベクトルと比較される(812)。B0動きベクトルがB1動きベクトルに等しい場合、B0動きベクトルは空間的候補のリストに追加されない(814)。逆に、B0動きベクトルがB1動きベクトルに等しくない場合、B0動きベクトルが空間的候補のリストに追加され(814)、
【0118】
「左下」のA0動きベクトル(806)が利用可能である場合(810)、「左下」の動きベクトルがA1動きベクトルと比較される(812)。A0動きベクトルがA1動きベクトルに等しい場合、A0動きベクトルは空間的候補のリストに追加されない(814)。逆に、A0動きベクトルがA1動きベクトルと等しくない場合、A0動きベクトルが空間的候補のリストに追加され(814)、空間的候補のリストが4つの候補を含まない場合、「左上」のB2動きベクトル(808)の利用可能性がチェックされる(810)。利用可能であれば、それはA1動きベクトル及びB1動きベクトルと比較される。B2動きベクトルがA1動きベクトル又はB1動きベクトルに等しい場合、B2動きベクトルは空間的候補のリストに追加されない(814)。逆に、B2動きベクトルがA1動きベクトル又はB1動きベクトルに等しくない場合、B2動きベクトルが空間的候補のリストに追加される(814)。
【0119】
この段階の最後に、空間的候補のリストは、4つまでの候補を含む。時間的候補について、2つの位置は使用され得る、すなわち、配置されたブロックの右下の位置(図6においてHで示される816)及び配置されたブロックの中心(818)。これらの位置は図6に示される。AMVP動きベクトル導出処理について、第1のステップは、H位置におけるブロックの可用性をチェックすること(820)を目的とする。次に、それが利用可能でない場合、中心位置におけるブロックの利用可能性がチェックされる(820)。これらの位置の少なくとも1つの動きベクトルが利用可能である場合、時間的動きベクトルは、マージ動きベクトル予測子候補のリストに追加される時間的候補(824)を作成するために、必要であれば、リストL0及びL1の両方について、インデックス0を有する参照フレームにスケーリングされ得る(822)。それは、リスト内の空間的候補の後に配置される。リストL0及びL1は、ゼロ、1つ以上の参照フレームを含む2つの参照フレームリストである。
【0120】
候補の数(Nb_Cand)が候補の最大数より厳密に少ない場合(826)(値は、ビットストリームスライスヘッダにおいて伝達され、現在のHEVC設計において5に等しいMax_Cand)、及び現在のフレームがBタイプである場合、結合された候補が生成される(828)。結合された候補は、マージ動きベクトル予測子候補のリストの利用可能な候補に基づいて生成される。それは主に、リストL0の1つの候補の動きベクトルをリストL1の1つの候補の動きベクトルと組み合わせることからなる。候補数(Nb_Cand)が最大候補数(Max_Cand)よりも厳密に少ないままの(830)場合、マージ動きベクトル予測子候補リストの候補数が最大候補数に達するまで、ゼロ動き候補が生成される(832)。
【0121】
この処理の終わりに、マージ動きベクトル予測子候補のリスト又はセットが構築される(834)。図8に示すように、マージ動きベクトル予測子候補のリスト又はセットは、空間的候補のサブセット(800~808)及び時間的候補のサブセット(816、818)から構築される(834)。
【0122】
(オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP))
オルタナティブ・テンポラル・モーション・ベクタ・プレディクション(ATMVP)は、特定の動き補償である。時間的基準フレームからの現在のブロックについて1つの動き情報のみを考慮する代わりに、それぞれ配置されたブロックの各動き情報が考慮される。したがって、この時間的動きベクトル予測は図9に示すように、各サブブロックの関連する動き情報と一緒に、現在のブロックの分割を与える。現在のVTM参照ソフトウェアでは、ATMVPがマージ候補のリストに挿入されたマージ候補として伝達される。SPSレベルでATMVPが有効化されると、最大マージ候補数は1つ増加される。したがって、このモードが無効化されている場合、5の代わりに6の候補が考慮される。
【0123】
さらに、この予測がSPSレベルで有効化されると、マージインデックスの全てのビンは、CABACによって符号化されたコンテキストになる。HEVC内にある間、又はATMVPがSPSレベルで有効化されていない場合、第1のビンのみが符号化されたコンテキストであり、残りのビンはバイパス符号化コンテキストである。図10(a)は、HEVCに対する、又はATMVPがSPSレベルで有効化されていない場合のマージインデックスの符号化を示す。これは、単項最大符号化に対応する。さらに、第1番目のビットはCABAC符号化され、他のビットはバイパスCABAC符号化される。図10(b)は、ATMVPがSPSレベルで有効化される時のマージインデックスの符号化を示す。さらに、全てのビットがCABAC符号化される(第1から第5ビットまで)。各インデックスはそれ自体のコンテキストを有し、言い換えれば、それらの確率は分離されることに留意されたい。
【0124】
(アフィンモード)
HEVCでは、動き補償予測(MCP)のために並進運動モデルのみが適用される。一方、現実世界では、例えばズームイン/ズームアウト、回転、遠近運動、及び他の不規則な動きなど、多くの種類の運動がある。JEMでは、簡易アフィン変換動き補償予測が適用され、2017年7月13~21日にトリノのJVET会議で発表された文書JVET-G1001の抽出に基づいて、アフィンモードの一般原理を以下に述べる。この文書全体は、それはJEMで使用される他のアルゴリズムを記述するので、ここに参照により組み込まれる。図11(a)に示すように、ブロックのアフィン動き場は、2つの制御点動きベクトルによって記述される。ブロックの動きベクトル場(MVF)は、以下の式によって記述される。
【0125】
【数1】
【0126】
ここで、(v0x、v0y)は左上角部の制御点の動きベクトルであり、(v1x、v1y)は右上角部の制御点の動きベクトルである。動き補償予測をさらに単純化するために、サブブロックベースのアフィン変換予測が適用される。サブブロックサイズは数式2のように導出され、ここで、MvPreは動きベクトル分数精度(JEMでは1/16)であり、(v2x,v2y)は数式1に従って計算された左下制御点の動きベクトルである。
【0127】
【数2】
【0128】
数式2によって導出された後、M及びNは必要であれば、それぞれw及びhの除数になるように下方に調整されてもよい。各M×Nサブブロックの動きベクトルを導出するために、図6aに示されるように、各サブブロックの中央サンプルの動きベクトルは、式1に従って計算され、1/16分数精度に切り上げられる。次に、動き補償補間フィルタは、導出した動きベクトルを有する各サブブロックの予測を生成するために、適用される。アフィンモードは、インターモード(AMVP、マージ、マージスキップ)としての動き補償モードである。それの原理は、2つ又は3つの隣接する動き情報に従って画素毎に1つの動き情報を生成することである。現在のVTM参照ソフトウェアでは、図11(a)に示すように、アフィンモードは4x4ブロックごとに1つの動き情報を導き出す。このモードはAMVP用に使用可能であり、両方のマージモードはフラグによって有効化される。このフラグはCABAC符号化される。一実施形態では、コンテキストは左ブロック(図6bの位置A2)及び左上ブロック(図6bの位置B3)のアフィンフラグの合計に依存する。
【0129】
したがって、JEMでは、以下の式で与えられるアフィンフラグに対して3つのコンテキスト変数(0、1又は2)を取り得る。
Ctx = IsAffine(A2) + IsAffine(B3)
ここで、IsAffine(block)はブロックがアフィンブロックでない場合に0を、ブロックがアフィンである場合に1を返す関数である。
【0130】
(アフィンマージ候補導出)
JEMでは、アフィンマージモード(マージ又はマージスキップ)は位置A1、B1、B0、A0、B2のブロック間でアフィンである第1の隣接ブロックから導出される。これらの位置は、図6a及び6bに示される。しかしながら、どのようにアフィンパラメータが導出されるかは、完全には定義されておらず、本発明は、少なくともこの点を改善することを目的とする。
【0131】
(アフィンマージ伝達)
図12は、符号化モードに関連するいくつかのシンタックス要素の部分復号化処理のフローチャートである。この図では、スキップフラグ(1201)、予測モード(1211)、マージフラグ(1203)、マージインデックス(1208)、及びアフィンフラグ(1207)が復号化され得る。インタースライス内の全てのCUについて、スキップフラグが復号化される(1201)。CUがスキップでない場合(1202)、プレドモード(予測モード)が復号される(1211)。このシンタックス要素は、現在のCUがインター又はイントラモードであるかを示す。CUがスキップ(1202)である場合、それの現在のモードはインターモードであることに留意されたい。CU(1212)の場合、CUはAMVP内又はマージモード内で符号化される。CUがインター(1212)である場合、マージフラグが復号化される(1203)。CUがマージである場合(1204)又はCUがスキップである場合(1202)、アフィンフラグ(1206)が復号化される必要があるかが検証される(1205)。現在のCUが、現在のVVCにおいてCUの高さ及び幅が等しくならなければならないことを意味する、2N×2NCUである場合、このフラグは復号化される。
【0132】
さらに、少なくとも1つの隣接するCU A1又はB1又はB0又はA0又はB2は、アフィンモード(マージ又はAMVP)で符号化されなければならない。最終的に、現在のCUは4x4 CUであってはならず、デフォルトによりCU 4x4はVTM参照ソフトウェアにおいて無効化される。この条件(1205)が偽である場合、現在のCUが古典的マージモード又はマージスキップモードで符号化され、マージインデックスが復号化されることが確実である(1208)。アフィンフラグ(1206)が1に等しく設定される場合(1207)、CUはマージアフィンCU又はマージスキップアフィンCUであり、マージインデックス(1208)は復号される必要はない。そうでない場合、現在のCUは古典的な(基本的な)マージ又はマージスキップCUであり、マージインデックス候補(1208)は復号される。そうでない場合、現在のCUは古典的な(基本的な)マージ又はマージスキップCUであり、マージインデックス候補(1208)は復号される。この明細書では、「伝達」がモード他の情報の有効化又は無効化を表す1つ以上のシンタックス要素への挿入又はビットストリームからの抽出を参照することができる。
【0133】
(マージ候補導出)
図13は、マージ候補導出を示すフローチャートである。この導出は図8に示されるHEVCのマージリスト導出の上に構築されている。HEVCと比較した主な変更は、ATMVP候補(1319、1321、1323)の追加、候補の完全な重複チェック(1320、1325)、及び候補の新しい順序である。ATMVP予測は、それは現在のCUのいくつかの動き情報を表すので、特別な候補として設定される。第1のサブブロック(左上)の値は時間的候補と比較され、時間的候補はそれらが等しい場合、マージリストに追加されない(1320)。ATMVP候補は、他の空間的候補とは比較されない。リスト内に既にある各空間的候補と比較される時間的候補とは反対に(1325)、それが重複候補である場合、マージ候補リスト内に追加されない。
【0134】
空間的候補がリスト内に追加される場合、それは、HEVCの最終バージョンの場合ではないリスト内の他の空間的候補と比較される(1310)。現在のVTMバージョンでは、マージ候補のリストが、それは符号化テスト条件にわたって最良の結果を提供するよう判定されるので、以下の順序として設定される。
・A1
・B1
・B0
・A0
・ATMVP
・B2
・時間的
・組み合わせ
・Zero_MV
【0135】
空間的候補B2は、ATMVP候補の後に設定されることに留意することが重要である。さらに、ATMVPがスライスレベルで有効化される場合、候補リストの最大数は5ではなく6である。実施形態は特に明記しない限り組み合わされてもよく、例えば、実施形態の特定の組合せは増加した複雑さにおいて符号化効率を改善することができ、これは特定の使用形態において許容され得ることに留意されたい。
【0136】
(第1実施形態)
上述のように、現在のVTM参照ソフトウェアでは、ATMVPがマージ候補のリストに挿入されたマージ候補として伝達される。ATMVPは、(SPSレベルで)シーケンス全体に対して有効化又は無効化され得る。ATMVPが無効化される場合、最大マージ候補数は5である。ATMVPが有効化される場合、最大マージ候補数は、5から6に1つだけ増加される。符号化部では、マージ候補リストは、図13の方法を使用して生成される。1つのマージ候補が、例えばレート歪み基準に基づいてマージ候補のリストから選択される。
【0137】
現在のVTM参照ソフトウェアでは、ATMVPが有効又は無効に応じて、マージインデックスの符号化方法は異なる。図10(a)は、ATMVPがSPSレベルで有効化されない場合のマージインデックスの符号化を示す。5つのマージ候補、すなわち、候補0、候補1、候補2、候補3、及び候補4は、それぞれ、0、10、110、1110、及び1111に符号化される。これは、単項最大符号化に対応する。さらに、第1番目のビットは、単一のコンテキストを使用してCABACによって符号化され、他のビットはバイパス符号化される。図10(b)は、ATMVPが有効化される場合のマージインデックスの符号化を示す。6つのマージ候補、すなわち、Cand0、Cand1、Cand2、Cand3、Cand4、及びCand5は、それぞれ、0、10、110、1110、11110、及び11111に符号化される。この場合では、マージインデックスの全てのビット(第1番目から第5番目のビットまで)がCABACによってコンテキスト符号化される。各ビットはそれ自体のコンテキストを有し、異なるビットに対して別々の確率モデルが存在する。
【0138】
本発明の第1実施形態では、図14に示すように、マージ候補のリストにマージ候補としてATMVPが含まれている場合(例えば、SPSレベルでATMVPが有効化される場合)、マージインデックスの符号化は、マージインデックスの第1番目のビットのみが単一のコンテキストを使用してCABACによって符号化されるように修正される。コンテキストは、ATMVPがSPSレベルで有効化されていない場合、現在のVTM参照ソフトウェアにおいて同じ方法で設定される。他のビット(第2番目から第5番目のビットまで)はバイパス符号化される。マージ候補リストにマージ候補としてATMVPが含まれていない場合(例えば、SPSレベルでATMVPが有効化されていない場合)、5つのマージ候補が存在する。マージインデックスの第1番目のビットのみが、単一のコンテキストを使用してCABACによって符号化される。コンテキストは、ATMVPがSPSレベルで有効化されていない場合、現在のVTM参照ソフトウェアにおいて同じ方法で設定される。他のビット(第2から第4ビットまで)はバイパス符号化される。
【0139】
復号化部は、符号化部と同じマージ候補リストを生成する。これは、図13の方法を使用することによって達成され得る。ATMVPがマージ候補のリストにマージ候補として含まれていない場合(例えば、ATMVPがSPSレベルで有効化されていない場合)、5つのマージ候補がある。マージインデックスの第1番目のビットのみが、単一のコンテキストを使用してCABACによって復号化される。他のビット(第2番目から第4番目のビットまでのビット)は、バイパス符号化される。現在の参照ソフトウェアとは反対に、ATMVPがマージ候補リストにマージ候補として含まれる場合(例えば、ATMVPがSPSレベルで有効化される場合)、マージインデックスの復号化において単一のコンテキストを使用して、マージインデックスの第1番目のビットのみがCABACによって復号化される。他のビット(第2番目から第5番目のビットまで)は、バイパス符号化される。復号化されたマージインデックスは、マージ候補リストの中から符号化部によって選択されたマージ候補を識別するために使用される。
【0140】
VTM2.0参照ソフトウェアと比較したこの実施形態の利点は、符号化効率に影響を与えることなく、マージインデックス復号化及び復号化部設計(及び符号化部設計)の複雑さ低減である。実際、この実施形態とともに、現在のVTMマージインデックス符号化/復号化のために5ではなく、1つのCABAC状態のみがマージインデックスのために必要とされる。さらに、他のビットは符号化する全てのビットをCABACと比較して演算数を減らすバイパスCABAC符号化されるので、それは最悪の場合の複雑さを減らす。
【0141】
(第2実施形態)
第2実施形態ではマージインデックスの全てのビットは、CABAC符号化されるが、それらは全て同じコンテキストを共有する。この場合、ビット間で共有される、第1の実施形態のような単一のコンテキストが存在してもよい。その結果、マージ候補リストにマージ候補としてATMVPが含まれている場合(例えば、SPSレベルでATMVPが有効化されている場合)、VTM2.0参照ソフトウェアで5と比較される、1つのコンテキストのみが使用される。VTM2.0参照ソフトウェアと比較したこの実施形態の利点は、符号化効率に影響を与えることなく、マージインデックス復号化及び復号化部設計(及び符号化部設計)の複雑さ低減である。あるいは、以下に第3から第15の実施形態に関連して説明するように、コンテキスト変数は2つ以上のコンテキストが利用可能であるが、現在のコンテキストがビットによって共有されるように、ビット間で共有されてもよい。
【0142】
ATMVPが無効化される場合、同じコンテキストが全てのビットに対して依然として使用される。ATMVPが利用可能なモードでないか、又は無効化されている場合であっても、この実施形態及び以降の全ての実施形態は適用され得る。第2実施形態の変形例では、マージインデックスの任意の2つ以上のビットがCABAC符号化され、同じコンテキストを共有する。マージインデックスの他のビットは、バイパス符号化される。例えば、マージインデックスの最初のNビットは、CABAC符号化されてもよく、ここで、Nは2以上である。
【0143】
(第3実施形態)
第1実施形態では、マージインデックスの第1番目のビットが単一のコンテキストを使用してCABAC符号化された。第3実施形態では、マージインデックスのビットのコンテキスト変数が隣接ブロックのマージインデックスの値に依存する。これは、コンテキスト変数の異なる値に対応する各コンテキストとともに、ターゲットビットのために1つ以上のコンテキストを見積もる。それのマージインデックスは、現在のブロックが復号されている時間により復号部に利用可能であるように、隣接ブロックは既に復号されている任意のブロックであってもよい。例えば、隣接ブロックは、図6bに示されるブロックA0、A1、A2、B0、B1、B2、及びB3のいずれかであってもよい。
【0144】
第1の変形例では、第1番目のビットだけがこのコンテキスト変数を使用してCABAC符号化される。第2の変形例では、マージインデックスの最初のNビットは、ここでNは2以上である、CABAC符号化され、コンテキスト変数はそれらのNビット間で共有される。第3の変形例では、マージインデックスの任意のNビットは、ここでNは2以上である、CABAC符号化され、コンテキスト変数がそれらのNビット間で共有される。第4の変形例では、マージインデックスの最初のNビットは、ここでNは2以上である、CABAC符号化され、Nのコンテキスト変数がそれらのNビットのために使用される。コンテキスト変数がKの値を有すると仮定すると、KxNのCABAC状態が使用される。例えば、本実施形態では、1つの隣接ブロックを用いて、コンテキスト変数は2つの値、例えば、0及び1を都合よく有することができる。すなわち、2NのCABAC状態が使用される。第5の変形例では、マージインデックスの任意のNビットは、ここでNは2以上である、適応的PM符号化され、Nのコンテキスト変数がそれらのNビットのために使用される。同様の変形例は、以下に説明する第4から第16の実施形態に適用可能である。
【0145】
(第4実施形態)
第4実施形態では、マージインデックスのビットのためにコンテキスト変数が、2つ以上の隣接ブロックのマージインデックスのそれぞれの値に依存する。例えば、第1の隣接ブロックは、左ブロックA0、A1又はA2であってよく、第2の隣接ブロックは上部ブロックB0、B1、B2又はB3であってもよい。2つ以上のマージインデックス値を組み合わせる方法は、特に限定されない。例を以下に示す。コンテキスト変数は都合よく、2つの隣接するブロックが存在するので、この場合、3つの異なる値、例えば、0、1、及び2を有することができる。したがって、第3実施形態に関連して説明した第4の変形例が、3つの異なる値を有するこの実施形態に適用される場合、Kは2ではなく3である。すなわち、3NのCABAC状態が使用される。
【0146】
(第5実施形態)
第5実施形態では、マージインデックスのビットのコンテキスト変数が隣接ブロックA2及びB3のマージインデックスのそれぞれの値に依存する。
【0147】
(第6実施形態)
第6実施形態では、マージインデックスのビットのコンテキスト変数が、隣接ブロックA1及びB1のマージインデックスのそれぞれの値に依存する。この変形例の利点は、マージ候補導出との位置合わせである。
【0148】
(第7実施形態)
第7実施形態では、現在のブロックのマージインデックスにおけるビット位置idx_numを有するビットのためのコンテキスト変数が以下の式に従って得られる、すなわち、
ctxIdx =(Merge_index_left == idx_num)+(Merge_index_up == idx_num)、ここで、Merge_index_leftは左ブロックのマージインデックスであり、Merge_index_upは上位ブロックのマージインデックスであり、シンボル==は等価シンボルである。6つのマージ候補がある場合、例えば、0 <= idx_num <= 5である。左ブロックはブロックA1であってもよく、上部ブロックはブロックB1であってよい(第6実施形態のように)。あるいは、左ブロックがブロックA2であってもよく、上部ブロックがブロックB3であってもよい(第5実施形態のように)。左ブロックのマージインデックスがidx_numと等しい場合、式(Merge_index_left == idx_num)は1に等しくなる。以下の表2は、この式の結果を示す(Merge_index_left == idx_num)。
【0149】
【表2】
【0150】
もちろん、式(Merge_index_up == idx_num)の表は同じである。以下の表3に、各マージインデックス値の単項最大符号と、各ビットの相対的なビット位置を与える。この表3は、図10(b)に対応する。
【0151】
【表3】
【0152】
左ブロックがマージブロック又はアフィンマージブロックでない場合、左ブロックは利用可能でないと見なされる。同様の条件が、上ブロックについて適用される。例えば、第1番目のビットのみがCABAC符号化される場合、コンテキスト変数ctxIdxは、以下に等しく設定される、すなわち、左及び上ブロックがマージインデックスを有しない場合、又は左ブロックマージインデックスが第1のインデックスでない(すなわち0でない)場合、及び上位ブロックマージインデックスが第1のインデックスでない(すなわち0でない)場合に0、左及び上ブロックの一方ではなく他方が第1のインデックスに等しいそれのマージインデックスを有する場合に1、及び左及び上ブロックのそれぞれについてマージインデックスが第1のインデックスに等しい場合に2。より一般的には、CABAC符号化される位置idx_numにおけるターゲットビットについて、コンテキスト変数ctxIdxは以下のように設定される、すなわち、左及び上ブロックがマージインデックスを有していない場合、又は左ブロックマージインデックスがi番目インデックスでない場合(ここで、i = idx_num)、及び上ブロックマージインデックスがi番目インデックスでない場合に0、左及び上ブロックの一方ではなく他方が、i番目インデックスと等しいマージインデックスを有する場合に1、左及び上ブロックのそれぞれについてマージインデックスがi番目インデックスと等しい場合に2。ここで、i番目インデックスは、i = 0の場合は第1のインデックス、i = 1の場合は第2のインデックス等を意味する。
【0153】
(第8実施形態)
第8実施形態では、現在のブロックのマージインデックスにおけるビット位置idx_numを有するビットのコンテキスト変数が以下の式に従って得られる、すなわち、
Ctx =(Merge_index_left > idx_num)+(Merge_index_up > idx_num)、ここで、Merge_index_leftは左ブロックのためのマージインデックスであり、Merge_index_upは上ブロックのためのマージインデックスであり、記号>は「より大きい」ことを意味する。6つのマージ候補がある場合、例えば、0 <= idx_num <= 5である。左ブロックはブロックA1であってよく、上ブロックはブロックB1であってよい(第5実施形態のように)。あるいは、左ブロックがブロックA2であってよく、上ブロックがブロックB3であってもよい(第6実施形態のように)。左ブロックのマージインデックスがidx_numより大きい場合、式(Merge_index_left > idx_num)は1に等しくなる。左ブロックがマージブロック又はアフィンマージブロックでない場合、左ブロックは利用可能でないと見なされる。同様の条件が、上ブロックについて適用される。以下の表4は、この式の結果を与える(Merge_index_left > idx_num)。
【0154】
【表4】
【0155】
例えば、第1番目のビットのみがCABAC符号化される場合、コンテキスト変数ctxIdxは、以下に等しく設定される、すなわち、左及び上ブロックがマージインデックスを有する場合、又は左ブロックマージインデックスが第1のインデックス以下又は等しい(すなわち0でない)場合、及び上ブロックマージインデックスが第1のインデックスより小さい又は等しい(すなわち0でない)場合に0、左及び上ブロックの一方ではなく他方が第1のインデックスより大きいマージインデックスを有する場合に1、左及び上ブロックのそれぞれについてマージインデックスが第1のインデックスより大きい場合に2。より一般的には、CABAC符号化される位置idx_numにおけるターゲットビットについて、コンテキスト変数ctxIdxは以下と等しく設定される、すなわち、左及び上ブロックはマージインデックスを有さない場合、又は左ブロックマージインデックスがi番目インデックスより小さい場合(ここでi = idx_num)、及び上ブロックマージインデックスがi番目インデックスより小さい又は等しい場合に0、左及び上ブロックの一方ではなく他方が、i番目インデックスより大きいそれのマージインデックスを有する場合に1、左及び上ブロックのそれぞれについてマージインデックスがi番目インデックスより大きい場合に2。第8実施形態は、第7実施形態よりもさらに符号化効率を向上することを提供する。
【0156】
(第9の実施形態)
第4から第8実施形態では、現在のブロックのマージインデックスのビットのコンテキスト変数が2つ以上の隣接ブロックのマージインデックスのそれぞれの値に依存した。第9実施形態では、現在のブロックのマージインデックスのビットのコンテキスト変数が2つ以上の隣接ブロックのそれぞれのマージフラグに依存する。例えば、第1の隣接ブロックは左ブロックA0、A1又はA2であってよく、第2の隣接ブロックは上ブロックB0、B1、B2又はB3であってもよい。マージフラグは、ブロックがマージモードを使用して符号化される場合に1に設定され、スキップモード又はアフィンマージモード等の別のモードの場合に0に設定される。VMT2.0では、アフィンマージが基本又は「古典的」マージモードとは別のモードであることに留意されたい。アフィンマージモードは、専用のアフィンフラグを使用して伝達され得る。あるいは、マージ候補リストがアフィンマージ候補を含んでもよく、その場合、アフィンマージモードが選択され、かつ、マージインデックスを使用して伝達されてもよい。
【0157】
その後、コンテキスト変数は以下のように設定される、すなわち、左と上の隣接ブロックのどちらも、1に設定されたそれのマージフラグを有さない場合に0、左及び右に隣接するブロックの一方ではなく他方が1に設定されたマージフラグを有する場合に1、左及び上の隣接ブロックの各々が1に設定されたそれのマージフラグを有する場合に2。この単純な手段は、VTM2.0よりも符号化効率の改善を達成する。他の利点は、第7及び第8実施形態と比較して、隣接ブロックのマージインデックスではなくマージフラグのみがチェックされる必要があるので、より低い複雑さとなる。変形例では、現在のブロックのマージインデックスのビットのコンテキスト変数が単一の隣接ブロックのマージフラグに依存する。
【0158】
(第10実施形態)
第3から第9実施形態では、現在のブロックのマージインデックスのビットのコンテキスト変数が1つ以上の隣接ブロックのマージインデックス値又はマージフラグに依存した。第10実施形態では、現在のブロックのマージインデックスのビットのためのコンテキスト変数が現在のブロック(現在の符号化ユニット、又はCU)のためのスキップフラグの値に依存する。スキップフラグは、現在のブロックがマージスキップモードを使用する場合に1に等しく、そうでない場合に0に等しくなる。スキップフラグは、現在のブロックに対して既に復号化又は解析されている別の変数又はシンタックス要素の第1の例である。この他の変数又はシンタックス要素は、好ましくは現在のブロックにおける動き情報の複雑さの指標である。マージインデックス値の発生は、動き情報の複雑さに依存するので、スキップフラグのような変数又はシンタックス要素は一般にマージインデックス値と相関する。
【0159】
より具体的には、マージスキップモードが一般に、静的シーン又は一定の動きを伴うシーンに対して選択される。その結果、マージインデックス値は一般に、ブロック残差を含むインター予測を符号化するために使用される古典的なマージモードよりもマージスキップモードの方が低い。これは、一般に、より複雑な動きに対して生じる。しかしながら、これらのモード間の選択は、しばしば量子化及び/又はRD基準にも関連する。この単純な手段は、VTM2.0よりも符号化効率を向上させることを提供する。それは隣接するブロック又はマージインデックス値をチェックすることを伴わないので、それはまた実施するのが非常に簡単である。第1の変形例では、現在のブロックのマージインデックスのビットのコンテキスト変数が、簡単に現在のブロックのスキップフラグに等しく設定される。ビットは、第1ビットのみであってもよい。他のビットは、第1実施形態のようにバイパス符号化される。第2の変形例では、マージインデックスの全てのビットがCABAC符号化され、それらの各々はマージフラグに応じてそれ自体のコンテキスト変数を有する。これは、(6つのマージ候補に対応する)マージインデックス内に5つのCABAC符号化ビットがある場合に10の確率状態を必要とする。
【0160】
第3の変形例では、状態の数を制限するために、マージインデックスのNビットのみがCABAC符号化され、ここでNは2以上、例えば最初のNビットである。これは、2Nの状態を必要とする。例えば、最初の2ビットがCABAC符号化される場合、4つの状態が必要とされる。一般に、スキップフラグの代わりに、現在のブロックに対して既に復号又は解析されていて、現在のブロックにおける動き情報の複雑さの指標である任意の他の変数又はシンタックス要素を使用することが可能である。
【0161】
(第11実施形態)
第11実施形態は、図11(a)、図11(b)及び図12を参照して前述したアフィンマージ伝達に関する。第11実施形態では、現在のブロック(現在のCU)のマージインデックスのCABAC符号化ビットのコンテキスト変数がもしあれば、マージ候補のリスト内のアフィンマージ候補に依存する。このビットはマージインデックスの第1番目のビットのみ又は最初のNビットであってよく、ここでNは2以上又は任意のNビットである。他のビットはバイパス符号化される。アフィン予測は複雑な動きを補償するために設計されている。したがって、複雑な動きに対するマージインデックスは一般に、それほど複雑でない動きよりも高い値を有する。第1のアフィンマージ候補がリストからはるかに下にある場合、又はアフィンマージ候補が全くない場合、現在のCUのマージインデックスは、小さい値を有する可能性があることになる。したがって、コンテキスト変数は、リスト内の少なくとも1つのアフィンマージ候補の存在及び/又は位置に依存することが効果的である。
【0162】
例えば、コンテキスト変数は、以下のように設定されてもよい、すなわち、
A1がアフィンである場合に1
B1がアフィンである場合に2
B0がアフィンである場合に3
A0がアフィンである場合に4
B2がアフィンである場合に5
隣接ブロックがアフィンでない場合に0
現在のブロックのマージインデックスが復号又は解析される場合、これらの位置におけるマージ候補のアフィンフラグは、既にチェックされている。したがって、現在のブロックのマージインデックスのコンテキストを導出するために、さらなるメモリアクセスは必要とされない。この実施形態は、VTM2.0よりも符号化効率を向上させることを提供する。ステップ1205は既に隣接するCUアフィンモードをチェックすることを含むので、追加のメモリアクセスは必要とされない。
【0163】
第1の変形例では、状態の数を制限するために、コンテキスト変数は以下のように設定されてもよい、すなわち、
隣接ブロックがアフィンでない場合、又はA1又はB1がアフィンである場合に0、
B0、A0又はB2がアフィンである場合に1。
第2の変形例では、状態の数を制限するために、コンテキスト変数は以下のように設定されてもよい、すなわち、
隣接ブロックがアフィンでない場合に0、
A1又はB1がアフィンである場合に1、
B0、A0又はB2がアフィンである場合に2。
第3の変形例では、コンテキスト変数は以下と等しく設定されてもよい、すなわち、
A1がアフィンである場合に1、
B1がアフィンである場合に2、
B0がアフィンである場合に3、
A0又はB2がアフィンである場合に4、
隣接ブロックがアフィンでない場合に0。
【0164】
これらの位置は、アフィンフラグ復号化がこれらの位置に依存するので、マージインデックスが復号又は構文解析される場合に既にチェックされていることに留意されたい。従って、アフィンフラグの後に符号化されるマージインデックスコンテキストを導出するために、追加のメモリアクセスを必要としない。
【0165】
(第12実施形態)
第12実施形態では、アフィンモードを伝達することは、アフィンモードを候補動き予測子として挿入することを含むアフィンモードを含む。第12実施形態の一例では、アフィンマージ(及びマージスキップ)はマージ候補として伝達される。その場合、図12のモジュール1205、1206、1207は除去される。加えて、マージモードの符号化効率に影響を与えないように、マージ候補の最大可能数はインクリメントされる。例えば、現在のVTMバージョンでは、この値は6に等しく設定され、したがって、この実施形態をVTMの現在のバージョンに適用する場合、値は7になる。利点は、シンタックス要素は復号される必要が少ないため、マージモードのシンタックス要素の設計簡素化となる。状況によっては、符号化効率は観察され得る。
【0166】
この例を実施するための2つの可能性はここで説明する、すなわち、アフィンマージインデックスは、他のマージMVの値が何であれ、リスト内で常に同じ位置を有する。候補動き予測子の位置は選択されるそれの確信度を示し、それがリストのより上に置かれた場合(より低いインデックス値)、動きベクトル予測子が選択される可能性が高くなる。第1の例では、アフィンマージインデックスがマージ候補のリスト内で常に同じ位置を有する。これは、固定されたマージidx値を有することを意味する。例えば、アフィンマージモードが最も確率の高いコンテンツではない複雑な動きを表すべきであるので、この値は5に等しく設定されてよい。この実施形態の追加の利点は、現在のブロックが構文解析される場合(シンタックス要素の復号化/読み出しだけであり、データ自体を復号化しない)、現在のブロックはアフィンブロックとして設定されてもよい、ことである。したがって、値は、AMVPに使用されるアフィンフラグのCABACコンテキストを判定するために使用されてよい。したがって、条件付き確率はこのアフィンフラグについて改善されるべきであり、符号化効率は、より良好であるべきである。
【0167】
第2の例では、アフィンマージ候補が他のマージ候補と共に導出される。この例では、新しいアフィンマージ候補がマージ候補のリストに追加される。図18はこの例を示す。図13と比較すると、アフィン候補は、第1のアフィン隣接ブロックA1、B1、B0、A0、B2(1917)である。図12の1205と同じ条件が有効である場合(1927)、アフィンパラメータを用いて生成された動きベクトル場が、アフィン候補を得るために生成される(1929)。初期候補のリストは、ATMVP、時間的、及びアフィン候補の使用に従って、4、5、6、又は7つの候補を有することができる。全てのこれらの候補の間の順序は、より可能性の高い候補はそれらが動きベクトル候補のカットを行う可能性がより高いことを保証するために、最初に処理されるべきであるため、重要であり、好ましい順序は、以下の通りである、すなわち、
A1
B1
B0
A0
アフィンマージ
ATMVP
B2
時間的
組み合わせ
Zero_MV
【0168】
アフィンマージはATMVPモードの前であるが、4つの主要な隣接ブロックの後にあることに留意することが重要である。ATMVP候補の前にアフィンマージを設定する利点は、ATMVP及び時間的予測子の後にそれを設定することと比較すると、符号化効率向上である。この符号化効率向上は、GOP(ピクチャグループ)構造と、GOP内の各ピクチャの量子化パラメータ(QP)設定とに依存する。しかし、最も使用されるGOP及びQP設定について、この順序は符号化効率に増加を与える。このソリューションのさらなる利点は、シンタックス及び導出の両方のためのマージ及びマージスキップのきれいな設計である。さらに、アフィン候補マージインデックスは、リスト内の以前の候補の可用性又は値(重複チェック)に従って変更することができる。したがって、効率的な信号化が得られる。さらなる例では、アフィンマージインデックスは、1つ又はいくつかの条件に従って可変である。
【0169】
例えば、アフィン候補に関連付けられたリスト内のマージインデックス又は位置は、基準に応じて変化する。原理は、アフィンマージが選択される高い確率を有する場合、アフィンマージに対応するマージインデックスに低い値を(選択される低い確率が存在する場合、高い値を)設定することである。第12の実施形態では、アフィンマージ候補がマージインデックス値を有する。マージインデックスの符号化効率を改善するために、マージインデックスのビットのコンテキスト変数を、隣接ブロック及び/又は現在のブロックのアフィンフラグに依存させることが有効である。例えば、コンテキスト変数は、以下の式を使用して決定されてよい。
ctxIdx = IsAffine(A1)+ IsAffine(B1)+ IsAffine(B0)+ IsAffine(A0)+ IsAffine(B2)
生じるコンテキスト値は、値0、1、2、3、又は4を有することができる。アフィンフラグは、符号化効率を高める。
【0170】
第1の変形例では、より少ない隣接ブロックを含むために、ctxIdx = IsAffine(A1)+ IsAffine(B1)である。生じるコンテキスト値は、値0、1、又は2を有することができる。第2の変形例ではまた、より少ない隣接ブロック、ctxIdx = IsAffine(A2)+ IsAffine(B3)を含む。再び、生じるコンテキスト値は、値0、1、又は2を有することができる。第3の変形例では、隣接ブロック、ctxIdx = IsAffine(現在のブロック)を含まない。生じるコンテキスト値は、値0又は1を有することができる。図16は、第3の変形例を有する符号化モードに関連するいくつかのシンタックス要素の部分符号化処理のフローチャートである。この図では、スキップフラグ(1601)、予測モード(1611)、マージフラグ(1603)、マージインデックス(1608)、及びアフィンフラグ(1606)が復号されてよい。このフローチャートは、先に説明した図12のそれと同様であり、よって詳細な説明は省略される。違いは、VTM2.0の場合ではない、アフィンマージフラグに対するマージインデックスが存在することである。VTM2.0では、現在のブロックのアフィンフラグが、それが常に同じ値「0」を有するので、マージインデックスのコンテキストを取得するために使用され得ない。
【0171】
(第13実施形態)
第10の実施形態では、現在のブロックのマージインデックスのビットに対するコンテキスト変数が、現在のブロック(現在の符号化ユニット、又はCU)に対するスキップフラグの値に依存した。第13の実施形態ではマージインデックスのターゲットビットのためのコンテキスト変数を導出するためにスキップフラグ値を直接使用する代わりに、ターゲットビットのためのコンテキスト値は現在のCUのスキップフラグのためのコンテキスト変数から導出される。これは、スキップフラグ自体がCABAC符号化され、したがってコンテキスト変数を有するために可能となる。好ましくは、現在のCUのマージインデックスのターゲットビットに対するコンテキスト変数が、現在のCUのスキップフラグに対するコンテキスト変数(からコピーされる)に等しく設定される。ターゲットビットは、第1番目のビットのみであってよい。他のビットは、第1の実施形態のようにバイパス符号化される。
【0172】
現在のCUのスキップフラグのコンテキスト変数は、VTM2.0に規定された方法で導出される。VTM2.0参照ソフトウェアと比較したこの実施形態の利点は、符号化効率に影響を与えることなく、マージインデックス復号化及び復号化部設計(及び符号化部設計)の複雑さ低減である。実際、この実施形態では、最低で、現在のVTMマージインデックス符号化/復号化のために5ではなく、1のCABAC状態のみがマージインデックスのために必要とされる。さらに、他のビットは、CABACで全てのビットを符号化することと比較して操作数を減らすバイパスCABAC符号化されるので、それは最悪の場合の複雑さを減らす。
【0173】
(第14実施形態)
第13の実施形態では、ターゲットビットのコンテキスト値が現在のCUのスキップフラグのコンテキスト変数から導出された。第14の実施形態では、ターゲットビットのコンテキスト値が現在のCUのアフィンフラグのコンテキスト変数から導出される。これは、アフィンフラグ自体がCABAC符号化され、したがってコンテキスト変数を有するために可能である。好ましくは、現在のCUのマージインデックスのターゲットビットに対するコンテキスト変数が、現在のCUのアフィンフラグに対するコンテキスト変数(からコピーされる)に等しく設定される。ターゲットビットは、第1番目のビットのみであってよい。他のビットは、第1の実施形態のようにバイパス符号化される。現在のCUのアフィンフラグのコンテキスト変数は、VTM2.0に規定された方法で導出される。VTM2.0参照ソフトウェアと比較したこの実施形態の利点は、符号化効率に影響を与えることなく、マージインデックス復号及び復号化部設計(及び符号化部設計)の複雑さ低減である。実際、この実施形態では、最低で、現在のVTMマージインデックス符号化/復号化のために5ではなく、1のCABAC状態のみがマージインデックスのために必要とされる。さらに、他のビットは、CABACで全てのビットを符号化することと比較して操作数を減らす、CABACバイパス符号化されるので、それは最悪の場合の複雑さを減らす。
【0174】
(第15実施形態)
前述の実施形態のいくつかでは、コンテキスト変数が2を超える値、例えば、3つの値0、1、及び2を有していた。しかしながら、複雑さを低減するため、及び、処理される状態の数を低減するために、許可されるコンテキスト変数値の数を2、例えば、0及び1に制限することが可能である。これは、例えば、値2を有する任意の初期コンテキスト変数を1に変更することによって達成され得る。実際には、この単純化が符号化効率に影響を及ぼさないか、又は限定された影響しか有さない。
【0175】
(実施形態の組合せ)
前述の実施形態のうちの任意の2つ以上が組み合わされてもよい。前述の説明は、マージインデックスの符号化及び復号化に焦点を当ててきた。例えば、第1の実施形態はATMVP候補を含むマージ候補のリストを生成することと、リスト内のマージ候補のうちの1つを選択することと、CABAC符号化を使用して、選択されたマージ候補のためのマージインデックスを生成することとを含み、マージインデックスの1つ以上のビットは、バイパスCABAC符号化される。原則として、本発明は動きベクトル予測子(MVP)候補のリストを生成すること、リスト内のMVP候補のうちの1つを選択することと、選択されたMVP候補に対するインデックスを生成することを含むマージモード以外のモードに適用され得る。したがって、本発明はマージモードに限定されず、符号又は復号されるインデックスはマージインデックスに限定されない。例えば、VVCの開発において、前述の実施形態の技術は、HEVCのAMVPモード又はVVCにおけるそれの同等のモードのような、マージモード以外のモードに拡張されるように適用され得ることが考えられる。それにより、添付の特許請求の範囲は、解釈されるべきである。
【0176】
(本発明の実施形態の実装)
図20は、本発明の1つ以上の実施形態を実装するためのコンピューティングデバイス2000の模式的なブロック図である。コンピューティングデバイス2000は、マイクロコンピュータ、ワークステーション、又はライトポータブルデバイスなどのデバイスであってよい。コンピューティングデバイス2000は、以下に接続された通信バスを備える、マイクロプロセッサなどの中央処理装置(CPU)2001、本発明の実施形態の方法の実行可能コードを記憶するためのランダムアクセスメモリ(RAM)2002及び本発明の実施形態に係る画像の少なくとも一部を符号化又は復号化するための方法を実現するために必要な変数及びパラメータを記録するために適合されたレジスタ、それらのメモリ容量は例えば、拡張ポートに接続されたオプションのRAMによって拡張されてもよく、本発明の実施形態を実現するためのコンピュータプログラムを記憶するための読み出し専用メモリ(ROM)2003、ネットワークインターフェース(NET)2004は処理されるデジタルデータが送信又は受信される通信ネットワークに典型的に接続される。ネットワークインターフェース(NET)2004は単一のネットワークインターフェースであってもよいし、異なるネットワークインターフェース(例えば、有線及び無線インターフェース、又は異なる種類の有線又は無線インターフェース)のセットで構成されてもよい。
【0177】
データパケットは送信のためにネットワークインターフェースに書き込まれるか、又はCPU2001で実行するソフトウェアアプリケーションの制御の下で受信用のネットワークインターフェースから読み出される、ユーザインターフェース(UI)2005がユーザからの入力を受信するため又はユーザに情報を表示するために使用されてもよい、ハードディスク(HD)2006は大容量記憶装置として提供されてもよい、入力/出力モジュール(IO)2007が、ビデオソース又はディスプレイなどの外部装置から/までデータを受信/送信するために使用されてもよい。実行可能符号は、ROM2003、HD2006、又は例えばディスクのようなリムーバブルデジタル媒体のいずれかに格納されてもよい。変形例によれば、プログラムの実行可能符号は実行される前に、HD2006などの通信装置2000の記憶手段の1つに記憶されるために、NET2004を介して、通信ネットワークの手段によって受信され得る。CPU2001は、命令が前述の記憶手段の1つに格納される、本発明の実施形態によるプログラム又はプログラムのソフトウェアコードの命令又は部分の実行を制御し、指示するように適合される。電源オン後、CPU2001は例えば、プログラムROM2003又はHD2006からこれらの命令がロードされた後に、メインRAMメモリ2002から、ソフトウェアアプリケーションに関する命令を実行することができる。このようなソフトウェアアプリケーションは、CPU2001によって実行されると、本発明による方法のステップを実行させる。
【0178】
また、本発明の他の実施形態によれば、コンピュータ、携帯電話(携帯電話)、タブレット、又はユーザにコンテンツを提供/表示することができる他の任意の種類のデバイス(例えば、ディスプレイ装置)などのユーザ端末に、前述の実施形態による復号化部が提供されることも理解される。さらに別の実施形態によれば、前述の実施形態による符号化部は、符号化部が符号化するためのコンテンツをキャプチャ及び提供するカメラ、ビデオカメラ、又はネットワークカメラ(例えば、閉回路テレビ又はビデオ監視カメラ)も備える画像キャプチャ装置において提供される。2つのこのような例は、図20及び21を参照して以下に提供される。
【0179】
図20は、ネットワークカメラ2102及びクライアント装置2104を含むネットワークカメラシステム2100を示す図である。ネットワークカメラ2102は、撮像部2106と、符号化部2108と、通信部2110と、制御部2112とを含む。ネットワークカメラ2102とクライアント装置2104は、ネットワーク200を介して相互に通信可能なように相互接続されている。撮像部2106は、レンズ及び撮像素子(例えば、電荷結合素子(CCD)又は相補型金属酸化膜半導体(CMOS))を含み、被写体の画像を撮像し、その画像に基づいて画像データを生成する。この画像は静止画像又はビデオ画像であってもよい。また、撮像部は、(光学的又はデジタル的のいずれかで)ズーム又はパンするように適合されるズーム手段及び/又はパン手段をそれぞれ備えてもよい。符号化部2108は、第1から第5実施形態で説明された前記符号化方法を用いて画像データを符号化する。符号化部2108は、第1から第5の実施形態で説明された符号化方法の少なくとも1つを使用する。他の例について、符号化部2108は、第1から第5の実施形態で説明された符号化方法の組み合わせを使用することができる。
【0180】
ネットワークカメラ2102の通信部2110は、符号化部2108で符号化された符号化画像データをクライアント装置2104に送信する。さらに、通信部2110は、クライアント装置2104からのコマンドを受信する。コマンドは、符号化部2108の符号化のためのパラメータを設定するためのコマンドを含む。制御部2112は、通信部2110によって受信されたコマンドに従って、ネットワークカメラ2102内の他の部を制御する。クライアント装置2104は、通信部2114、復号化部2116、及び制御部2118を有する。クライアント装置2104の通信部2118は、ネットワークカメラ2102にコマンドを送信する。さらに、クライアント装置2104の通信部2118は、ネットワークカメラ2102から符号化画像データを受信する。復号化部2116は、第1から第5の実施形態のいずれかで説明された前記復号化方法を用いることにより、符号化画像データを復号する。別の例として、復号化部2116は、第1から第5の実施形態で説明された復号化方法の組み合わせを使用することができる。
【0181】
クライアント装置2104の制御部2118は、通信部2114が受信したユーザ操作又はコマンドに従って、クライアント装置2104内の他の部を制御する。クライアント装置2104の制御部2118は、復号化部2116で復号された画像を表示するために表示装置2120を制御する。また、クライアント装置2104の制御部2118は、符号化部2108の符号化のためのパラメータを含むネットワークカメラ2102のパラメータの値を指定するGUI(グラフィカルユーザインタフェース)を表示するために表示装置2120を制御する。また、クライアント装置2104の制御部2118は、表示装置2120により表示されるGUIへのユーザ操作入力に応じて、クライアント装置2104内の他の部を制御する。クライアント装置2104の制御部2118は、表示装置2120により表示されるGUIへのユーザ操作入力に応じて、ネットワークカメラ2102のパラメータの値を指定するコマンドをネットワークカメラ2102に送信するために、クライアント装置2104の通信部2114を制御する。ネットワークカメラシステム2100は、ビデオの記録中にカメラ2102がズーム又はパンを利用するかどうかを判定することができ、このような情報は、ビデオストリームをズーム又はパンとして符号化する場合、撮影がズーム、回転、及び/又は伸張(特にレンズが「魚眼」レンズである場合、パンの副作用になり得る)などの複雑な動きを符号化するのによく適したアフィンモードの使用から利益を得ることができる間に、使用されてもよい。
【0182】
図21は、スマートフォン2200を示す図である。スマートフォン2200は、通信部2202と、復号化/符号化部2204、制御部2206及び表示部2208を含む。通信部2202は、符号化された画像データをネットワーク経由で受信する。復号化部2204は、通信部2202により受信された符号化画像データを復号する。復号化部2204は第1から第5の実施形態で説明された前記復号方法を用いることにより、符号化画像データを復号する。復号化部2204は、第1から第5の実施形態で説明された復号化方法の少なくとも1つを使用することができる。例えば、符号化部2202は、第1から第5の実施形態で説明された復号化方法の組み合わせを使用することができる。制御部2206は、通信部2202により受信されたユーザ操作又はコマンドに応じて、スマートフォン2200内の他の部を制御する。
【0183】
例えば、制御部2206は、復号化部2204により復号された画像を表示するために表示装置2208を制御する。スマートフォンは画像又はビデオを記録するための画像記録装置2210(例えば、回路に関連付けられたデジタルカメラ)をさらに備えることができる。このような記録された画像又はビデオは、制御部2206の指示の下、復号化/符号化部2204によって符号化されてもよい。スマートフォンはさらに、モバイル装置の向きを感知するように適合されたセンサ2212を備えてもよい。このようなセンサは、加速度計、ジャイロスコープ、コンパス、全地球測位(GPS)ユニット又は同様の位置センサを含むことができる。そのようなセンサ2212は、スマートフォンが向きを変えるかどうかを判定することができ、そのような情報は、撮影が回転のような複雑な動きを符号化によく適したアフィンモードの使用から利益を得ることができる間に、ビデオストリームを向きにおける変化として符号化する場合に、使用されてもよい。
【0184】
(代替例及び修正例)
本発明の目的はアフィンモードが最も効率的な方法で利用されることを保証することであり、上述の特定の例は、アフィンモードが有用であると知覚される可能性に依存して、アフィンモードの使用を伝達することに関することが理解されるであろう。これのさらなる例は複雑な動き(アフィン変換が特に効率的である)が符号化されていることが知られている場合に、符号化部に適用され得る。このような場合の例には以下を含む。
a)カメラズームイン/ズームアウト
b)撮影(すなわち、回転運動)中に向きを変えるポータブルカメラ(例えば、携帯電話)
c)「魚眼」レンズカメラのパン(例えば、画像の一部の伸張/歪曲)
そのようなものとして、アフィンモードがスライス、フレームシーケンス、又は実際のビデオストリーム全体のために使用される可能性が高く与えられるように、記録プロセス中に複雑な動きの表示は上げられてよい。さらなる例では、アフィンモードがビデオを記録するために使用されるデバイスの特徴又は機能性に応じて、使用される高い可能性が与えられてよい。例えば、モバイル装置は、固定監視カメラ(と言う)よりも向きを変える可能性が高いので、アフィンモードは前者からのビデオを符号化するためにより適切であってよい。特徴又は機能の例は、ズーム手段の存在/使用、位置センサの存在/使用、パン手段の存在/使用、デバイスが携帯型であるか否か、又はデバイス上のユーザ選択を含む。
【0185】
本発明は実施形態を参照して説明されたが、本発明は開示された実施形態に限定されないことを理解されたい。添付の特許請求の範囲に定義されるように、本発明の範囲から逸脱することなく、様々な変更及び修正は行われることは、当業者には理解される。本明細書に開示された全ての特徴(添付の特許請求の範囲、要約及び図面を含む)、及び/又はそのように開示された任意の方法又は処理の全てのステップはそのような特徴及び/又はステップの少なくとも一部が相互に排他的である組み合わせを除き、任意の組み合わせで組み合わせられてよい。本明細書に開示される各特徴(添付の特許請求の範囲、要約及び図面を含む)は別段の記載がない限り、同一の、同等の、又は類似の目的を果たす代替的特徴に置き換えられてよい。したがって、別段の記載がない限り、開示される各特徴は、同等又は同様の特徴の一般的なシリーズの一例にすぎない。
【0186】
また、示されるか、又は判定/推論された結果は例えば、復号化処理中に、比較、判定、評価、選択、実行、実施、又は考慮を実際に実行する代わりに、処理において使用され得るように、上述の比較、判定、評価、選択、実行、実施、又は考慮の任意の結果、例えば、符号化又はフィルタ処理中に行われる選択はビットストリーム内のデータから、例えば、結果を示すフラグ又はデータに示され、又は判定可能/推論可能であってもよい、ことを理解されたい。特許請求の範囲において、単語「有する」は他の要素又はステップを排除するものではなく、不定冠詞「a」又は「an」は複数を排除するものではない。異なる特徴が相互に異なる従属請求項に記載されているという単なる事実は、これらの特徴の組合せが有利に使用され得ないことを示すものではない。特許請求の範囲に現れる参照符号は説明としてのみであり、特許請求の範囲に限定的な影響を及ぼさない。
【0187】
前述の実施形態では、説明された機能がハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実施される場合、機能は、1つ以上の命令又はコードとして、コンピュータ可読媒体上に記憶され、又は送信され、ハードウェアベースの処理ユニットによって実行されてもよい。コンピュータ可読媒体はデータ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、又は例えば通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、又は(2)信号又は搬送波などの通信媒体に対応することができる。データ記憶媒体は本開示に記載される技術の実施のための命令、コード及び/又はデータ構造を検索するために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされ得る任意の利用可能な媒体であってもよい。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
【0188】
限定ではなく、一例として、このようなコンピュータ可読記憶媒体はRAM、ROM、EEPROM、CD-ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置、又は他の磁気記憶装置、フラッシュメモリ、又は命令又はデータ構造の形成で所望のプログラムコードを記憶するために使用されてよく、かつ、コンピュータによってアクセスされ得る任意の他の媒体を含むことができる。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。例えば、命令が同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的な媒体を含まず、代わりに非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク及びディスクはコンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、及びブルーレイディスクを含み、ここで、ディスクは通常、磁気的にデータを再生するが、ディスクは、レーザで光学的にデータを再生する。上記の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。
【0189】
命令は、1つ以上のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の同等の集積又は離散的論理回路など、1つ以上のプロセッサによって実行されてよい。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれか、又は本明細書で説明される技法の実装に適した他の任意の構造を指すことがある。さらに、いくつかの態様では本明細書に記載される機能性が符号化及び復号化のために構成された専用のハードウェア及び/又はソフトウェアモジュール内で提供されてもよく、又は結合されたコーデックに組み込まれてもよい。また、本技術は、1つ以上の回路又は論理素子で完全に実装され得る。
図1
図2
図3
図4
図5
図6a
図6b
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21