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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7053947ビデオシーケンスを復号する方法、装置及びコンピュータプログラム
<>
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図1A
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図1B
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図1C
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図1D
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図1E
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図2
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図3
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図4
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図5
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図6
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図7
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図8
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図9
  • 特許-ビデオシーケンスを復号する方法、装置及びコンピュータプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-04
(45)【発行日】2022-04-12
(54)【発明の名称】ビデオシーケンスを復号する方法、装置及びコンピュータプログラム
(51)【国際特許分類】
   H04N 19/119 20140101AFI20220405BHJP
   H04N 19/136 20140101ALI20220405BHJP
   H04N 19/176 20140101ALI20220405BHJP
   H04N 19/186 20140101ALI20220405BHJP
【FI】
H04N19/119
H04N19/136
H04N19/176
H04N19/186
【請求項の数】 13
(21)【出願番号】P 2021505629
(86)(22)【出願日】2019-04-15
(65)【公表番号】
(43)【公表日】2021-08-05
(86)【国際出願番号】 US2019027465
(87)【国際公開番号】W WO2019209563
(87)【国際公開日】2019-10-31
【審査請求日】2020-10-14
(31)【優先権主張番号】62/663,179
(32)【優先日】2018-04-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/212,094
(32)【優先日】2018-12-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
(72)【発明者】
【氏名】ジャオ,リアン
【審査官】古市 徹
(56)【参考文献】
【文献】国際公開第2018/092868(WO,A1)
【文献】特表2015-502722(JP,A)
【文献】米国特許出願公開第2018/0109812(US,A1)
【文献】特開2014-045434(JP,A)
【文献】国際公開第2017/142085(WO,A1)
【文献】米国特許第09674530(US,B1)
【文献】米国特許出願公開第2013/0064292(US,A1)
【文献】Kei Kawamura, et al.,Asymmetric Partitioning with Non-power-of-two Transform for Intra Coding,2012 Picture Coding Symposium,2012年05月07日,pp.429-432
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサが実行するビデオシーケンス復号の方法であって、
前記プロセッサが、
符号化ユニットの幅または高さが2の累乗であるかどうかを決定するステップと、
前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、前記符号化ユニットを複数のサブブロックに分割するステップであって、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有する、ステップと、
前記符号化ユニットが分割される前記複数のサブブロックにフレーム内および/またはフレーム間予測を適用するステップと、
を含み、
前記符号化ユニットを複数のサブブロックに分割するステップは、
信号、前記複数のサブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、前記複数のサブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックのルーマまたはクロマ成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、前記符号化ユニットが分割される前記複数のサブブロックの空間的順序を決定するステップ
を含む、ことを特徴とする方法。
【請求項2】
少なくとも1つのプロセッサが実行するビデオシーケンス復号の方法であって、
前記プロセッサが、
符号化ユニットの幅または高さが2の累乗であるかどうかを決定するステップと、
前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、前記符号化ユニットを複数のサブブロックに分割するステップであって、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有する、ステップと、
前記符号化ユニットが分割される前記複数のサブブロックにフレーム内および/またはフレーム間予測を適用するステップと、
を含み、
前記符号化ユニットを複数のサブブロックに分割するステップは、
前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、
信号、前記複数のサブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、前記複数のサブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックのルーマまたはクロマ成分、各サブブロックの幅または高さ、および複数の符号化ユニットをそれぞれ分割するための複数の所定パターンのいずれか1つまたは任意の組み合わせに基づいて、前記符号化ユニットが分割される前記複数のサブブロックの数を決定するステップと、
決定した前記複数のサブブロックの数にさらに基づいて、前記符号化ユニットを前記複数のサブブロックに分割するステップと、
を含む、ことを特徴とする方法。
【請求項3】
少なくとも1つのプロセッサが実行するビデオシーケンス復号の方法であって、
前記プロセッサが、
符号化ユニットの幅または高さが2の累乗であるかどうかを決定するステップと、
前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、前記符号化ユニットを複数のサブブロックに分割するステップであって、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有する、ステップと、
前記符号化ユニットが分割される前記複数のサブブロックにフレーム内および/またはフレーム間予測を適用するステップと、
を含み、
前記方法は、
前記プロセッサが、信号、前記複数のサブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、前記複数のサブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックのルーマまたはクロマ成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、前記複数のサブブロックが復号される順序を決定するステップ
をさらに含む、ことを特徴とする方法。
【請求項4】
前記符号化ユニットを複数のサブブロックに分割するステップは、
前記符号化ユニットの幅または高さが6、12、20、24、28、36、40、44、48、52、56または60であると決定したことに基づいて、前記符号化ユニットを、4+2、8+4、16+4、16+8、16+8+4、32+4、32+8、32+8+4、32+16、32+16+4、32+16+8または32+16+8+4の幅または高さを有する前記複数のサブブロックにそれぞれ分割するステップ
を含む、ことを特徴とする請求項に記載の方法。
【請求項5】
前記プロセッサが、
前記符号化ユニットのための、前記符号化ユニットに対して非ゼロ係数があるかどうかを示す第1の符号化ブロックフラグ(CBF)を設定するステップと、
各サブブロックのための、前記複数のサブブロックの各々に対して非ゼロ係数があるかどうかを示す第2のCBFを設定するステップと、
をさらに含む、ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項6】
前記プロセッサが、前記符号化ユニットのための第1のCBFが1に設定され、かつ、符号化順序で前記複数のサブブロックの最後の1つのサブブロックに先行する前記複数のサブブロックのうちの先行するもののための第2のCBFが0に設定されることに基づいて、前記複数のサブブロックの最後の1つのサブブロックのための第2のCBFを1に設定するステップ
をさらに含む、ことを特徴とする請求項に記載の方法。
【請求項7】
前記プロセッサが、前記複数のサブブロックのうちの1つのサブブロックのサイズに基づいて、前記複数のサブブロックのうちの前記1つのサブブロックに変換を適用するステップ
をさらに含み、
前記複数のサブブロックのうちの前記1つのサブブロックのサイズは、前記複数のサブブロックのうちの前記1つのサブブロックの幅、高さ、面積、および高さに対する幅の比率のいずれか1つまたは任意の組み合わせを含む、
ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項8】
前記プロセッサが、
前記符号化ユニットにおける前記複数のサブブロックのうちの1つのサブブロックの位置に基づいて、複数の変換のうちの1つの変換を選択するステップと、
選択した前記複数の変換のうちの前記1つの変換を前記複数のサブブロックのうちの前記1つのサブブロックに適用するステップと、
をさらに含む、ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項9】
前記プロセッサが、前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、前記符号化ユニットにフレーム間予測のみを適用するステップ
をさらに含む、ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項10】
前記プロセッサが、前記符号化ユニットの幅と高さのそれぞれが2の累乗であると決定したことに基づいて、
前記符号化ユニットを複数のパーティションに分割するステップと、
前記複数のパーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗であるかどうかを決定するステップと、
前記複数のパーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗ではないと決定したことに基づいて、前記符号化ユニットに変換を適用するステップと、
をさらに含む、ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項11】
前記プロセッサが、前記符号化ユニットの幅または高さが2の累乗ではないと決定したことに基づいて、
前記符号化ユニットのための、前記符号化ユニットに対して非ゼロ係数があるかどうかを示す第1の符号化ブロックフラグ(CBF)を0に設定するステップ、または、
前記符号化ユニットを、予測ブロックの予測値を示すDC値に関連付けるステップ
をさらに含む、ことを特徴とする請求項1~のいずれか一項に記載の方法。
【請求項12】
ビデオシーケンスを復号する装置であって、
プログラムを記憶している少なくとも1つのメモリと、
前記メモリに接続されるプロセッサと、
を含み、
前記プロセッサは、前記プログラムを実行して、請求項1~1のいずれか一項に記載のビデオシーケンス復号の方法を実現するように構成される、ことを特徴とする装置。
【請求項13】
コンピュータに、請求項1~1のいずれか一項に記載のビデオシーケンス復号の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本開示は、2018年4月26日に米国特許&商標庁に提出された米国仮出願第62/663,179からの優先権および2018年12月6日に米国特許&商標庁に提出された米国出願第16/212,094号からの優先権を主張し、その全体が参照により本明細書に組み込まれる。
[技術分野]
本開示は、ビデオ符号化および復号技術に関し、特に、ビデオシーケンスを復号する方法および装置に関する。
【背景技術】
【0002】
高効率ビデオ符号化(HEVC:High Efficiency Video Coding)では、符号化ツリーユニット(CTU:coding tree unit)は、様々なローカル特性に適応するために、符号化ツリーとして示される四分木構造を使用することによって、符号化ユニット(CU:Coding Unit)に分割される。フレーム間画像(時間的)予測またはフレーム内画像(空間的)予測を使用して画像領域を符号化するかどうかは、CUレベルで決定される。各CUは、さらに、予測ユニット(PU:Prediction Unit)の分割タイプに従って、1つ、2つまたは4つのPUに分割されることができる。1つのPU内で、同じ予測処理が適用され、また、関連情報がPUベースでデコーダに送信される。PUの分割タイプに基づいて、予測処理を適用することにより残差ブロックを取得した後、CUは、CUの符号化ツリーに類似する別の四分木構造に従って、変換ユニット(TU:Transform Unit)に分割されることができる。HEVC構造の1つの特徴は、CU、PUおよびTUを含む複数分割の概念を有することである。HEVCでは、フレーム間予測ブロックについて、CUまたはTUは正方形のみであるが、PUは正方形または長方形であってもよい。HEVCの後期段階では、長方形のPUをフレーム内予測および変換に使用することを許可するように提案されたものはいくつかがある。これらの提案は、HEVCには採用されていないが、共同探索モデル(JEM:Joint Exploration Model)で使用するように拡張されている。
【0003】
画像の境界では、HEVCは、サイズが画像の境界に敵合するまで、ブロックが四分木分割を維持するように、暗黙的な四分木分割を課す。
【0004】
四分木プラス二分木(QTBT:Quadtree Plus Binary Tree)構造は、複数の分割タイプの概念を取り除き、すなわち、Cu、PUおよびTUの概念の分離を取り除き、CUの分割形状のより多くの柔軟性をサポートする。QTBT構造では、CUは、正方形または長方形を有することができる。
【0005】
図1Aは、QTBT構造の図である。
【0006】
図1Aを参照すると、まず、CTUは、四分木構造によって分割される。さらに、四分木のリーフノードは、二分木構造によって分割される。二分木分割では、対称水平分割と対称垂直分割の2つの分割タイプがある。二分木のリーフノードは、符号化ユニット(CU)と呼ばれ、この分割が、さらなる分割なしで、予測および変換処理に用いられる。これは、QTBT符号化ブロック構造では、CU、PUとTUが同じブロックサイズを有する、ということを意味する。JEMでは、CUは、異なる色成分の符号化ブロック(CB:Coding Block)から構成される場合があり、例えば、4:2:0色度フォーマットのPおよびBスライスの場合、1つのCUが1つの輝度(Luma)CBと2つの色度(Chroma)CBを含み、このCUが単一成分のCBから構成される場合があり、例えば、Iスライスの場合、1つのCUが1つの輝度CBのみまたはちょうど2つの色度CBを含む。
【0007】
QTBTの分割スキームに対して、以下のパラメータが定義された。
【0008】
CTUサイズは、四分木のルートノードサイズであり、HEVCにおける同じ概念である。
【0009】
MinQTSizeは、許可された最小の四分木のリーフノードのサイズである。
【0010】
MaxBTSizeは、許可された最大の二分木のルートノードのサイズである。
【0011】
MaxBTDepthは、許可された最大の二分木の深さである。
【0012】
MinBTSizeは、許可された最小の二分木のリーフノードのサイズである。
【0013】
QTBT分割構造の例では、CTUサイズを色度サンプルの対応する2つの64×64ブロックを有する128×128輝度サンプルとして設定し、MinQTSizeを16×16に設定し、MaxBTSizeを64×64に設定し、MinBTSize(幅と高さの両方)を4×4に設定し、MaxBTDepthを4に設定する。まず、四分木分割をCTUに適用して四分木のリーフノードを生成する。四分木のリーフノードのそれぞれは、16×16(即ち、MinQTSize)から128×128(即ち、CTUサイズ)までのサイズを有することができる。四分木のリーフノードは128×128のサイズである場合、MaxBTSize(即ち、64×64)を超えるため、二分木によって更に分割されない。そうでなければ、四分木のリーフノードは、二分木によって更に分割されることができる。したがって、四分木のリーフノードも、二分木のルートノードであり、また、それが、二分木の深さ「0」を有する。二分木の深さがMaxBTDepth(即ち、4)に達する場合、さらなる分割は考慮されていない。二分木のノードがMinBTSize(即ち、4)に等しい幅を有する場合、さらなる水平分割は考慮されていない。同様に、二分木のノードがMinBTSizeに等しい高さを有する場合、さらなる垂直分割は考慮されていない。任意の更なる分割を行わないで、さらに、二分木のリーフノードを予測および変換処理によって処理する。JEMでは、最大のCTUサイズは256×256個の輝度サンプルである。
【0014】
図1Aの部分(a)は、QTBTを使用することによるブロック分割の例を示し、図1Aの部分(b)は、対応するツリー表現を示す。実線は、四分木分割を示し、点線は、二分木分割を示す。二分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)を使用するかを示す1つのフラグが信号で通知され、ここで、0は水平分割を示し、1は垂直分割を示す。四分木分割については、分割タイプを示す必要はなく、これは、四分木分割が常にブロックを水平と垂直の両方に分割して、等しいサイズを有する4つのサブブロックを生成するためである。
【0015】
また、QTBTスキームは、輝度と色度が個別のQTBT構造を有する能力をサポートしている。現在、PおよびBスライスについて、1つのCTUにおける輝度CTBおよび色度CTBは、同じQTBT構造を共有する。しかしながら、Iスライスについて、輝度CTBをQTBT構造に従ってCUに分割し、色度CTBを別のQTBT構造に従って色度CUに分割する。これは、IスライスにおけるCUが、輝度成分の符号化ブロックまたは2つの色度成分の符号化ブロックから構成され、PスライスまたはBスライスにおけるCUが、3つの色成分の符号化ブロックのすべてから構成される、ということを意味する。
【0016】
HEVCでは、動き補償のメモリアクセスを低減するために、小さいブロックのフレーム間予測を制限し、これにより、4×8と8×4のブロックは、双方向予測をサポートしていないし、4×4のブロックは、フレーム間予測をサポートしていない。JEMで実装されているQTBTでは、これらの制限は削除された。
【0017】
ブロック分割構造は、三分木(TT:Ternary Tree)を使用することができる。詳細には、マルチタイプツリー(MTT:Multi-type Tree)は、QTBTよりも柔軟なツリー構造である。MTTでは、図1Bの部分(a)および(b)に示されるように、四分木および二分木以外に、水平および垂直の中心側の三分木も導入されている。
【0018】
図1Bは、垂直中心側の三分木分割および水平中心側の三分木分割の図である。
【0019】
図1Bを参照すると、部分(a)は、垂直中心側の三分木分割を示し、部分(b)は、水平中心側の三分木分割を示す。
【0020】
三分木分割の主な利点は、以下の通りである。即ち、
三分木分割は、四分木分割と二分木分割を補完することであり、ブロックの中心にあるオブジェクトを捕捉することができ、四分木と二分木では、常に、ブロックの中心に沿って分割が実行される。
【0021】
提案された三分木分割の幅と高さは、常に2の累乗であるため、付加的な変換は必要なくなる。
【0022】
2つレベルのツリーの設計は、主に複雑さの低減によって動機付けられる。理論的には、ツリーのトラバースの複雑さは
であり、ここで、
は、分割タイプの数を示し、
は、ツリーの深さを示す。
【0023】
図1Cおよび1Dは、2の整数累乗を示すブロックサイズについてサポートされる分割の図である。
【0024】
一般化された二値分割またはシフトを伴う二分木(BTS:Binary Tree With Shifting)が提案された。各ブロックは分割されないか、または2つの長方形ブロック(水平方向または垂直方向のいずれか)に分割される。得られたCUの幅と高さ(輝度サンプルで)は、いずれも4の整数倍を示す必要がある。dimは、分割されるブロックの輝度サンプルでの幅(垂直分割の場合)または高さ(水平分割の場合)を示す。2つの分割方向について、以下の分割がサポートされている(図1Cおよび1Dの図を参照)。
【0025】
1/2分割(図1Cの1行目):この分割は、
の場合にサポートされる。これは、JEMにおけるQTBTのための二値分割に似ている。
【0026】
1/4分割および3/4分割(図1Cの2行目):これらの分割は、dimが2の整数累乗(
)を示し、かつ、
の場合にサポートされる。
【0027】
3/8分割および5/8分割(図1Cの3行目):これらの分割は、dimが2の整数累乗(
)を示し、かつ、
の場合にサポートされる。
【0028】
1/3分割および2/3分割(図1Dの1行目):これらの分割は、
、かつ、
の場合にサポートされる。
【0029】
1/5分割、2/5分割、3/5分割および2/3分割(図1Dの2行目および3行目):これらの分割は、
、かつ、
の場合にサポートされる。
【0030】
ここでは、次のような慣例が用いられている。n/m水平分割は、1つの分割を指定し、この分割に対して、第1結果ブロック(上部ブロック)の高さと、分割されるブロックの高さとの比率がn/mに等しい。同様に、n/m垂直分割は、1つの分割を指定し、この分割に対して、第1結果ブロック(左側ブロック)の幅と、分割されるブロックの幅との比率がn/mに等しい。分割される辺のサイズが
に等しくない場合、
または
のいずれかに等しくなる。
【0031】
二値分割は、その分割方向とその分割比によって一意に決定される。二値分割の方向は、以前の分割に応じて符号化され、つまり、水平または垂直分割として信号で通知される代わりに、縦または平行分割に信号で通知され、しかしながら、鉛直または平行分割が、常に、水平または垂直分割に変換されることができる。ルートレベルでは、以前の分割は信号で通知されず、第1縦分割は水平分割であり、第1平行分割は垂直分割である。二値フラグperpend_split_flagは、2つの可能な方向(縦と平行)を区別する。そして、分割比率は、分割する場所を記述し(図1Cおよび1Dを参照)、二値決定木を使用して符号化される。何の制限もなく、シフトを伴う二値分割のための完全なシグナリングツリーが図1Dに示されている。分割方向および分割比率の両方は、コンテキストベースの適応算術符号化(CBAAC:Context-Based Adaptive Arithmetic Coding)を使用して符号化される。二分木深さのカウントは、縦の1/2分割ではない第1分割から開始される。
【0032】
図1Eは、非対称な二分木(ABT:Asymmetric Binary Tree)ブロック分割(パーティション)構造における分割(スプリット)モード(ツリータイプ)の図である。
【0033】
ABTブロック分割構造も提案された。図1Eに示されるように、ブロックは、1:3または3:1の分割を使用して分割されることができ、例えば、HOR_UP、HOR_DOWN、VER_LEFT、VER_RIGHTである。BTSとABTの両方について、分割の幅や高さは、2の累乗以外にすることができる。
【0034】
既にHEVCで使用されている離散コサイン変換(DCT:Discrete Cosine Transform)―IIおよび4×4離散サイン変換(DST:Discrete Sine Transform)―VIIに加えて、適応多重変換(AMT:Adaptive Multiple Transform)または拡張多重変換(EMT:Enhanced Multiple Transform)スキームは、フレーム間及びフレーム内の両方の符号化されたブロックのための残差符号化に使用される。AMTスキームは、DCT/DSTファミリーから選択された、HEVCにおける現在の変換以外の複数の変換を使用する。新たに導入された変換行列は、DST―VII、DCT―VIII、DST―I、DCT―Vである。表1は、選択されたDST/DCTの基本関数を示している。
【0035】
【表1】
変換行列の直交性を維持するために、変換行列は、HEVCでの8ビット表現の代わりに10ビット表現で、HEVCにおける変換行列よりも正確に量子化されることができる。変換係数の中間値を16ビットの範囲に維持するために、水平および垂直変換後、現在のHEVC変換で使用されている右シフトと比較して、すべての係数がさらに2ビット右シフトされる。
【0036】
AMTは、幅および高さの両方が64以下であるCUに適用され、AMTが適用されるかどうかは、CUレベルフラグによって制御される。CUレベルフラグが0に等しい場合、DCT-IIは、残差を符号化するためにCUで適用される。AMTを有効にするCU内の輝度符号化ブロックに対して、2つの付加的なフラグは、使用される水平及び垂直変換を識別するために信号で通知される。HEVCの場合と同じように、ブロックの残差は、JEMで変換スキップモードを使用して符号化されることができる。シンタックス符号化の冗長性を避けるために、変換レベルスキップフラグは、CUレベルAMTフラグがゼロに等しくない場合、信号で通知されない。
【0037】
フレーム内残差符号化については、異なるフレーム内予測モードの異なる残差統計のため、モード依存の変換候補選択プロセスが使用される。表2に示すように3つの変換サブセットが定義されており、表2に規定されるように、フレーム内予測モードに基づいて変換サブセットが選択される。
【0038】
【表2】
サブセットの概念では、変換サブセットは、1に等しいCUレベルAMTフラグを有するCUのフレーム内予測モードを使用して、表2に基づいて識別される。その後、水平および垂直変換のそれぞれについて、識別された変換サブセットにおける2つの変換候補のうちの1つは、表3に従って、フラグを使用して明示的に信号で通知されたことに基づいて選択される。
【0039】
【表3】
しかしながら、フレーム間予測残差に対して、DST-VIIとDCT-VIIIからなる1つの変換セットのみが、すべてのフレーム間モードと、水平および垂直変換との両方に使用される。
【0040】
AMTの複雑さは、エンコーダ側で比較的高くなり、これは、ブルートフォース検索が使われる場合、残差ブロックごとにレート歪みコストを使用して合計5つの異なる変換候補(DCT-IIおよび4つの多重変換候補)を評価する必要があるからである。エンコーダでのこの複雑さ問題を軽減するために、JEMにおけるアルゴリズム加速のために、いくつかの最適化方法が設計されている。
【0041】
BTSおよびABTの両方について、パーティションの幅または高さは、2の累乗ではなく、例えば、6、12、20、24であり得る。これにより、2の累乗ではない変換の使用が必然的に導入され、これは、変換コアを増加させ、2の累乗ではない変換を処理するために個別の機能/モジュールを必要とする。さらに、パーティションの幅または高さが2の累乗ではない場合、例えば平面モード、DCモードおよび強力なフレーム内平滑化など、より多くのパーティション動作が存在する場合がある。
【発明の概要】
【課題を解決するための手段】
【0042】
一実施形態によれば、ビデオシーケンスを復号する方法であって、少なくとも1つのプロセッサによって実行され、前記方法は、符号化ユニットの幅または高さが2の累乗であるかどうかを決定するステップと、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、前記符号化ユニットを複数のサブブロックに分割するステップであって、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有するステップ、とを含む。この方法は、前記符号化ユニットが分割されるサブブロックにフレーム内および/またはフレーム間予測を適用するステップ、をさらに含む。
【0043】
一実施形態によれば、ビデオシーケンスを復号する装置であって、前記装置は、コンピュータプログラムコードを記憶するように構成される少なくとも1つのメモリと、少なくとも1つのメモリにアクセスし、コンピュータプログラムコードに従って動作するように構成される少なくとも1つのプロセッサとを含む。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに、符号化ユニットの幅または高さが2の累乗であるかどうかを決定させるように構成される第1の決定コードと、前記少なくとも1つのプロセッサに、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、前記符号化ユニットを複数のサブブロックに分割させるように構成される分割コードであって、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有する分割コードと、を含む。前記コンピュータプログラムコードは、前記少なくとも1つのプロセッサに、前記符号化ユニットが分割されるサブブロックにフレーム内および/またはフレーム間予測を適用させるように構成される第1適用コード、をさらに含む。
【0044】
一実施形態によれば、命令が記憶されている非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに、符号化ユニットの幅または高さが2の累乗であるかどうかを決定させ、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、前記符号化ユニットを複数のサブブロックに分割させ、ここで、前記複数のサブブロックの数が最小化されるように、各サブブロックは2の累乗であって最大化される幅または高さを有する。前記命令は、前記プロセッサに、前記符号化ユニットが分割されるサブブロックにフレーム内および/またはフレーム間予測を適用させる。
【図面の簡単な説明】
【0045】
図1A】QTBT構造を示す図である。
図1B】垂直中心側の三分木分割および水平中心側の三分木分割の図である。
図1C】2の整数累乗を示すブロックサイズについてサポートされる分割の図である。
図1D】2の整数累乗を示すブロックサイズについてサポートされる分割の図である。
図1E】ABTブロック分割構造における分割モード(ツリータイプ)の図である。
図2】一実施形態に係る通信システムの簡略ブロック図である。
図3】一実施形態に係るストリーミング環境におけるビデオエンコーダ及びビデオデコーダの配置の図である。
図4】一実施形態に係るビデオデコーダの機能ブロック図である。
図5】一実施形態に係るビデオエンコーダの機能ブロック図である。
図6】一実施形態に係る2の累乗ではないブロックの分割を示す図である。
図7】別の実施形態に係る2の累乗ではないブロックの分割を示す図である。
図8】一実施形態に係るビデオシーケンスの復号のためのフレーム内および/またはフレーム間予測を制御する方法を示すフローチャートである。
図9】一実施形態に係るビデオシーケンスの復号のためのフレーム内および/またはフレーム間予測を制御する装置の簡略ブロック図である。
図10】実施形態を実施するのに適したコンピュータシステムの概略図である。
【発明を実施するための形態】
【0046】
実施形態は、例えば、汎用ビデオ符号化(VVC:Versatile Video Coding)のような、HEVCを超える次世代のビデオ符号化技術に関するものである。より具体的には、2の累乗ではない幅または高さを有するブロックの変換スキームが説明され、そして、符号化ブロックよりも小さい変換ブロックの変換スキームも説明する。
【0047】
本明細書に記載されている方法は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。さらに、この方法は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現されることができる。一例では、1つまたは複数のプロセッサが、非一時的なコンピュータ読み取り可能な媒体に記憶されているプログラムを実行する。
【0048】
本明細書では、2の累乗ではないブロックは、幅および/または高さが2の累乗ではないブロックを示す。
【0049】
図2は、一実施形態による通信システム(200)の簡略化されたブロック図である。通信システム(200)は、ネットワーク(250)を介して相互接続された、少なくとも2つの端末(210、220)を含むことができる。データの単方向伝送について、第1端末(210)は、ネットワーク(250)を介して他の端末(220)に送信するために、ローカル位置でビデオデータを符号化することができる。第2端末(220)は、ネットワーク(250)から他の端末の符号化されたビデオデータを受信し、符号化されたデータを復号して、復元されたビデオデータを表示することができる。単方向データ伝送は、メディアサービングアプリケーションなどでは一般的である。
【0050】
図2は、例えば、ビデオ会議中に発生する可能性がある、符号化されたビデオの双方向伝送をサポートする第2ペアの端末(230、240)を示す。データの双方向伝送の場合、各端末(230、240)は、ネットワーク(250)を介して他の端末に送信するために、ローカル位置で捕捉されたビデオデータを符号化することができる。各端末(230、240)は、他の端末によって送信された、符号化されたビデオデータを受信することもでき、符号化されたデータを復号することができ、また復元されたビデオデータをローカルの表示デバイスに表示することもできる。
【0051】
図2において、端末(210~240)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されてもよいが、実施形態の原理は、これに限定されていない。実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用のビデオ会議機器を有するアプリケーションを見つける。ネットワーク(250)は、符号化されたビデオデータを端末(210~240)で送信する任意の数のネットワークを表し、例えば、有線および/または無線の通信ネットワークを含む。通信ネットワーク(250)は、回線交換および/またはパケット交換のチャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(250)のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、実施形態の動作にとって重要ではない場合がある。
【0052】
図3は、実施形態による、ストリーミング環境におけるビデオエンコーダおよびビデオデコーダの配置の図である。開示された主題は、例えば、光ディスク(CD:Compect Disc)、高密度デジタルビデオディスク(DVD:Digital Video Disc)、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
【0053】
ストリーミングシステムは、捕捉サブシステム(313)を含むことができ、この捕捉サブシステムが、例えばデジタルカメラなどのビデオソース(301)を含むことができ、例えば圧縮されていないビデオサンプルストリーム(302)を作成することができる。符号化されたビデオビットストリームと比較する際に、高いデータボリュームを強調するために太い線で描かれたサンプルストリーム(302)は、カメラ(301)に結合されたエンコーダ(303)によって処理されることができる。エンコーダ(303)は、以下で詳細に説明するように、開示された主題の様々な態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較する際により低いデータボリュームを強調するために細い線で描かれた、符号化されたビデオビットストリーム(304)は、将来の使用のためにストリーミングサーバ(305)に記憶されることができる。1つ以上のストリーミングクライアント(306、308)は、ストリーミングサーバ(305)にアクセスして、符号化されたビデオビットストリーム(304)のコピー(307、309)を検索することができる。クライアント(306)は、ビデオデコーダ(310)を含むことができ、このビデオデコーダ(310)は、伝入される、符号化されたビデオビットストリーム(307)のコピーを復号して、伝出される、ビデオサンプルストリーム(311)を作成することができ、このビデオサンプルストリーム(311)が、ディスプレイ(312)または他のレンダリングデバイス(図示せず)に表示されることができる。一部のストリーミングシステムでは、ビデオビットストリーム(304、307、309)は、特定のビデオ不符号化/圧縮規格に基づいて符号化されることができる。これらの規格の例には、ITU-T勧告H.265が含まれる。開発中のビデオ符号化規格は、多機能ビデオ符号化(VVC:Versatile Video Coding)として非公式に知られている。開示された主題は、VVCのコンテキストで使用されてもよい。
【0054】
図4は、一実施形態によるビデオデコーダ(210)の機能ブロック図である。
【0055】
受信機(410)は、ビデオデコーダ(310)によって復号される1つ以上のコーデックビデオシーケンスを受信することができ、同じまたはある実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、ここで、各符号化されたビデオシーケンスの復号が、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(412)から受信されることができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機(410)は、それぞれの使用エンティティ(図示せず)に転送されることができる、例えば符号化されたオーディオデータおよび/または補助のデータストリームなどの他のデータとともに、符号化されたビデオデータを受信することができる。受信機(410)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(415)は、受信機(410)とエントロピーデコーダ/解析器(Parser)(420)(以後の「解析器」)との間に結合されることができる。受信機(410)が十分な帯域幅および制御可能性を有するストア/フォワードデバイスからまたは等時性同期ネットワークからデータを受信する場合、バッファメモリ(415)は、必要ではないかまたは小さくでもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(415)は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができる。
【0056】
ビデオデコーダ(310)は、エントロピー符号化されたビデオシーケンスからシンボル(421)を再構築するための解析器(420)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(310)の動作を管理するために使用される情報と、デコーダの不可欠な部分ではないが、図4に示すように、そのデコーダに結合されることができるディスプレイ(212)などのレンダリングデバイスを制御するための潜在的な情報とが含まれる。レンダリングデバイスの制御情報は、補助拡張情報(SEI:Supplemental Enhancement Information)メッセージまたはビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形であってもよい。解析器(420)は、受信された、符号化されたビデオシーケンスに対して解析/エントロピー復号を行うことができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができて、当業者に知られている原理に従うことができ、可変長符号化、ハフマン符号化(Huffman coding)、コンテキスト感度を有するかまたは有しないかの算術符号化などを含む。解析器(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのためのサブグループパラメータのセットを、抽出することができる。サブグループは、画像のグループ(GOP:Group of Picture)、画像、タイル、スライス、マクロブロック、符号化ユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Trans form Unit)、予測ユニット(PU:Prection Unit)などを含むことができる。エントロピーデコーダ/解析器は、変換係数、量子化器パラメータ値(QP:Quantizer Parameter)、動きベクトルなどの情報を符号化されたビデオシーケンスから抽出することもできる。
【0057】
解析器(420)は、シンボル(421)を生成するために、バッファメモリ(415)から受信されたビデオシーケンスに対してエントロピー復号/解析動作を実行することができる。解析器(420)は、符号化されたデータを受信し、特定のシンボル(421)を選択的に復号することができる。さらに、解析器(420)は、特定のシンボル(421)が動き補償予測ユニット(453)、スケーラ/逆変換ユニット(451)、フレーム内予測ユニット(452)、またはループフィルタユニット(454)に供給されるかどうかを決定することができる。
【0058】
シンボル(421)の再構築は、符号化されたビデオ画像またはその一部(例えば、レーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプ、および他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、およびどのように関連するかは、解析器(420)によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。解析器(420)と以下の複数のユニットの間との間のそのようなサブグループ制御情報のフローは明確にするために説明されていない。
【0059】
既に言及された機能ブロックに加えて、ビデオデコーダ(310)は、以下に説明するように、いくつかの機能ユニットに概念的に細分化されることができる。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分が適切である。
【0060】
第1ユニットは、スケーラ/逆変換ユニット(451)である。スケーラ/逆変換ユニット(451)は、量子化された変換係数と、どのような変換を使用するか、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、シンボル(421)として解析器(420)から受信する。スケーラ/逆変換ユニット(451)は、アグリゲータ(455)に入力できるサンプル値を含むブロックを出力することができる。
【0061】
いくつかの場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、フレーム内符号化されたブロックに属することができ、即ち、このフレーム内符号化ブロックは、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックである。このような予測情報は、フレーム内画像予測ユニット(452)によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット(452)は、現在の(部分的に再構築された)画像(456)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ(455)は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット(452)によって生成された予測情報を、スケーラ/逆変換ユニット(451)によって提供される出力サンプル情報に追加する。
【0062】
他の場合では、スケーラ/逆変換ユニット(451)の出力サンプルは、フレーム間符号化されたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット(453)は、参照画像メモリ(457)にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルが、ブロックに関連するシンボル(421)に従って動き補償された後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(455)によってスケーラ/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償ユニットが予測サンプルを抽出するときの参照画像メモリ内のアドレスは、例えば、X、Yおよび参照画像成分を有することができるシンボル(421)の形で、動き補償ユニットに利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプルの正確な運動ベクトルが使用中であるときに、参照画像メモリから抽出されたサンプル値の補間、運動ベクトル予測メカニズムなどを含むこともできる。
【0063】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(454)において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、符号化されたビデオビットストリームに含まれ、解析器(420)からのシンボル(421)としてループフィルタユニット(454)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含みことができ、また、符号化された画像または符号化されたビデオシーケンスの前の部分(復号順序で)を復号する期間で得られたメタ情報に応答し、および、以前に再構築されてループフィルタされたサンプル値に応答することもできる。
【0064】
ループフィルタユニット(454)の出力は、レンダリングデバイス(212)に出力することができ、および、将来のフレーム間画像予測で使用するために参照画像メモリ(457)に記憶することができるサンプルストリームとすることができる。
【0065】
特定の符号化された画像は、一旦完全に再構築されると、将来の予測のための参考画像として使用されることができる。例えば、符号化された画像が一旦完全に再構築され、かつ、符号化された画像が(例えば、解析器(420)によって)参照画像として識別されると、現在の参照画像(456)は、参照画像バッファ(457)の一部となることができ、また、後続の符号化された画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0066】
ビデオデコーダ(310)は、例えばITU―T REC. H.265などの規格における所定のビデオ圧縮技術に従って復号動作を実行することができる。符号化されたビデオシーケンスは、ビデオ圧縮技術ドキュメントまたは規格において、特に、それらのプロファイルドキュメントにおいて指定されたビデオ圧縮技術または規格の構文に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあることもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒メガ(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypthetical Reference Decoder)仕様と、符号化されたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のメタデータとによって、さらに限定されることができる。
【0067】
一実施形態では、受信機(410)は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、符号化されたビデオシーケンスの一部として含まれることができる。付加的なデータは、データを適切に復号し、および/または、元のビデオデータをより正確に再構築するために、ビデオデコーダ(310)によって使用されることができる。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal-to-noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
【0068】
図5は、一実施形態によるビデオエンコーダ(303)の機能ブロック図である。
【0069】
エンコーダ(303)は、エンコーダ(303)によって符号化されるビデオ画像を捕捉することができるビデオソース(301)(それはエンコーダの一部ではない)から、ビデオサンプルを受信することができる。
【0070】
ビデオソース(301)は、エンコーダ(303)によって符号化されるソースビデオシーケンスをデジタルビデオサンプルストリームの形で提供することができ、前記タルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース(301)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(301)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであってもよい。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供されることができる。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0071】
一実施形態によれば、エンコーダ(303)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を符号化して圧縮し、符号化されたビデオシーケンス(543)にすることができる。適切な符号化速度を実施することは、コントローラ(550)の1つの機能である。コントローラは、以下で説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明瞭にするために図示されていない。コントローラによって設定されたパラメータは、レート制御関連パラメータ(画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値)、画像サイズ、画像グループ(GOP:group of pictures)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ(550)の他の機能を容易に識別することができ、これらの機能が、特定のシステム設計のために最適化されたビデオエンコーダ(303)に関係するからである。
【0072】
いくつかのビデオエンコーダは、当業者が容易に認識する符号化ループで動作する。過度に簡単化された説明として、符号化ループは、ソースコーダ(530)(以下、「ソースコーダ」)の符号化部分(符号化される入力画像と、参照画像とに基づいてシンボルを作成することを担当)と、エンコーダ(303)に埋め込まれた(ローカル)デコーダ(533)とによって構成されることができ、前記デコーダ(433)は、(リモート)デコーダによってサンプルデータを作成するようにシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が無損失であるため)。再構築されたサンプルストリームは、参照画像メモリ(534)に入力される。シンボルストリームの復号により、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像バッファのコンテンツは、ローカルエンコーダとリモートエンコーダとの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性を維持できない場合に生じるドリフト)は、当業者によく知られている。
【0073】
「ローカル」デコーダ(533)の動作は、既に図4に関連して以上で詳細に説明された、「リモート」デコーダ(310)の動作と同じであってもよい。しかし、図5をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ(545)および解析器(420)によって符号化されたビデオシーケンスへのシンボルの符号化/復号が無損失であることができるため、(チャネル(412)、受信機(410)、バッファ(415)および解析器(420)を含む)デコーダ(310)のエントロピー復号部分は、ローカルデコーダ(533)で完全に実行されていない可能性がある。
【0074】
この時点で、デコーダに存在する解析/エントロピー復号以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが観察されている。エンコーダ技術の説明は、包括的に説明されたデコーダ技術の逆であるため、省略できる。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
【0075】
その動作の一部として、ソースコーダ(530)は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照フレーム」として指定された1つ以上の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する。このようにして、符号化エンジン(532)は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択されることができる参照フレームの画素ブロックとの間の差分を符号化する。
【0076】
ローカルビデオデコーダ(533)は、ソースコーダ(530)によって作成されたシンボルに基づいて、参照フレームとして指定されることができるフレームの符号化されたビデオデータを復号することができる。符号化エンジン(532)の動作は、有利には損失性のプロセスであってもよい。符号化されたビデオデータがビデオデコーダ(図4に示されない)で復号されることができる場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(533)は、参照フレームに対してビデオデコーダによって実行されることができる復号プロセスを複製して、再構築された参照フレームを参照画像キャッシュ(534)に記憶させることができる。このようにして、エンコーダ(303)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照フレームと共通のコンテンツを有する再構築された参照フレームのコピーを、ローカルに記憶することができる。
【0077】
予測器(535)は、符号化エンジン(532)に対して予測検索を実行することができる。すなわち、符号化される新しいフレームについて、予測器(535)は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状などについて、参照画像メモリ(534)を検索することができる。予測器(535)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(535)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(534)に記憶された複数の参照画像から引き出された予測参照を有することができる。
【0078】
コントローラ(550)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ソースコーダ(530)の符号化動作を管理することができる。
【0079】
上述のすべての機能ユニットの出力は、エントロピーコーダ(545)においてエントロピー符号化されることができる。エントロピーコーダは、ハフマン符号化、可変長符号化、算術符号化などのような、当業者に知られている技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0080】
送信機(540)は、符号化されたビデオデータを記憶できる記憶デバイスへのハードウェア/ソフトウェアリンクであることができる通信チャネル(560)を介した送信に備えるために、エントロピーコーダ(545)によって作成された、符号化されたビデオシーケンスをバッファリングすることができる。送信機(540)は、ソースコーダ(530)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0081】
コントローラ(550)は、ビデオエンコーダ(303)の動作を管理することができる。符号化する期間、コントローラ(550)は、各符号化された画像に、特定の符号化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、以下のフレームタイプのいずれかとして割り当てられることが多い。
【0082】
フレーム内画像(I画像)は、シーケンス内の任意の他のフレームを予測ソースとして使用せずに、符号化および復号されることができるものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR:Independent Decoder Refresh)画像などの異なるタイプのフレーム内画像を許容する。当業者は、I画像の変種およびそれらのそれぞれのアプリケーションおよび特徴を理解している。
【0083】
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を、使用して符号化および復号され得るものであってもよい。
【0084】
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して、符号化および復号され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に2つ以上の参照画像および関連されたメタデータを使用することができる。
【0085】
ソース画像は、一般的に、複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8、または16x16個のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化されることができる。これらのブロックは、ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)データブロックを参照して予測的に符号化されることができる。例えば、I画像のブロックは、非予測的に符号化されてもよく、またはそれらが同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符号化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。B画像のブロックは、1つまたは2つ前に符号化された参照画像を参照して、空間予測または時間領域予測を介して予測的に符号化されてもい。
【0086】
ビデオコーダ(303)は、例えばITU―T REC.H.265などのような所定のビデオ符号化技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオコーダ(303)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されるビデオ符号化技術または規格によって指定された構文に従うことができる。
【0087】
一実施形態では、送信機(540)は、符号化されたビデオとともに、付加的なデータを送信することができる。ソースコーダ(530)は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどの他の形式の冗長データ、補足拡張情報(SEI:Supplementary Enhancement Information)メッセージ、視覚ユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメントなどを含むことができる。
【0088】
図6は、一実施形態による、2の累乗ではないブロックの分割を示す図である。
【0089】
2の累乗ではないブロックについて、このブロックは、幅または高さが2の累乗である複数のサブブロックに水平または垂直に分割され、主変換は、各サブブロックで実行される。
【0090】
一実施形態では、幅または高さの値を有するブロックは、複数のサブブロックに分割され、各サブブロックが2の累乗である幅または高さを有し、分割は、サブブロックの数を最小化するか、または各サブブロックの幅または高さを最大化するように行われる。
【0091】
一例では、幅または高さが6、12、20、24、28、36、40、44、48、52、56または60である場合、ブロックは、それぞれ、4+2、8+4、16+4、16+8、16+8+4、32+4、32+8、32+8+4、32+16、32+16+4、32+16+8および32+16+8+4のサブブロッに水平または垂直に分割されることができ、ここで、M+N+K+Jは、ブロックが4つのサブブロックに水平または垂直に分割され、幅または高さがそれぞれM、N、KおよびJである、ということを意味する。
【0092】
図6の部分(a)および(b)を参照すると、2の累乗ではない、12であるブロック幅を有するブロック610は、8および4である幅を有するサブブロック620および630に分割されることができる。
【0093】
一実施形態では、幅または高さの値を有するブロックは、2の累乗である幅または高さを有する複数のサブブロックに分割されることができ、これらのサブブロックをどのように配置するかについての空間的順序は、信号で通知されまたは暗黙的に導出されてもよい。空間的順序は、これらのサブブロックの相対的な位置を指定する。例えば、12x8のブロックを左から右に1つの8x8のブロックと1つの4x8のブロックに分割されてもよく、または、左から右に1つの4x8のブロックと1つの8x8ブロックに分割されてもよい。
【0094】
図6の部分(a)および(c)を参照すると、2の累乗ではない12であるブロック幅を有するブロック610は、シグナルまたは復号された情報(隣接するブロックの分割サイズ、CTU内の相対位置、親ブロック(すなわち、1つ前の四分木レベル)の分割タイプ、輝度または色度成分、および各サブブロックの分割サイズが含まれるが、これらに限定されない)に基づいて、それぞれ8および4の幅を有する2つのサブブロック620および630に分割されてもよく、またはそれぞれ4および8の幅を有する2つのサブブロック640および650に分割されてもよい。
【0095】
図7は、別の実施形態による、2の累乗ではないブロックの分割を示す図である。
【0096】
一実施形態では、幅または高さ値を有するブロックは、2の累乗である幅または高さを有する複数のサブブロックに分割されることができ、これらのサブブロックの数および空間的順序は、信号で通知されまたは暗黙的に導出されてもよい。一例では、12である幅または高さを有するブロックについては、このブロックは、2つの8+4のサブブロック、2つの4+8のサブブロック、または3つの4+4+4のサブブロックに分割されることができる。
【0097】
図7の部分(a)および(b)を参照すると、2の累乗ではない12であるブロック幅を有するブロック710は、3つのサブブロック720、730、740に分割されることができ、各サブブロックの幅は4である。
【0098】
一例では、全てのサブブロック分割パターンの使用は、ロックサイズごとに予め定義されている。
【0099】
一実施形態では、幅または高さの値を有するブロックは、2の累乗である幅または高さを有する複数のサブブロックに分割され、これらのサブブロックの符号化順序は、信号で通知されるか、または上記の復号情報に基づいて暗黙的に導出されてもよい。
【0100】
一実施形態では、いくつかのブロックサイズについて、各サブブロックで変換を行う代わりに、選択されたブロックのみに対して変換が実行され、残りのブロックの再構築されたサンプルは、隣接するブロックの再構築されたサンプルを補間することによって導出される。
【0101】
一例では、50x64のブロックに対して、このブロックは、32x64、4x64、および16x64の3つのサブブロックに水平に分割される。32x64および16x64のサブブロックは、まず符号化され、そして、中央の4x64のブロックの再構築されたサンプルは、左側の32x64のブロックおよび右側の16x64のブロックの再構築されたサンプルを補間することによって導出される。
【0102】
一実施形態では、1つの符号化されたブロックフラグ(CBF:Coded Block Flag)は、ブロック全体に対して信号で通知され、サブブロックCBFは、関連付けられたサブブロックに対して少なくとも1つの非ゼロ係数が存在するかどうかを示すために、さらに各サブブロックに対して信号で通知されることができる。
【0103】
ブロック全体のCBFが1であり、かつ、符号化順序における最後のサブブロックの先行する全てのサブブロックのサブブロックCBFが0である場合、最後のサブブロックのCBFは、信号で通知されず、1としいて導出される。
【0104】
一実施形態では、いくつかのブロックサイズについては、各サブブロックで変換を行う代わりに、選択されたブロックのみに対し変換が実行され、残りのブロックに対して変換スキップが適用される。
【0105】
一例では、ブロックが複数のサブブロックに分割される場合、あるサイズより大きいサブブロックに対して、変換が適用され、そうではない場合、変換スキップが適用される。ブロックサイズは、ブロック幅、ブロック高さ、ブロック領域のサイズ、またはブロックの幅と高さの比率で測定される。
【0106】
一実施形態では、信号で通知された主変換インデックス(例えば、AMTインデックス)および/または二次変換インデックスによって示されるように、サブブロックは、同じタイプの主変換および/または二次変換を共有する。
【0107】
別の実施形態では、サブブロックは、異なるタイプの主変換および/または二次変換を使用し、選択は、現在ブロック内のサブブロックの相対的な位置に依存する。
【0108】
2の累乗ではないブロック幅の値Mまたは高さの値Nに対して、最も近いが、2の累乗ではない値より大きいブロック幅または高さに達成するように、ブロックは、水平または垂直方向に充填(パディング)される。
【0109】
一実施形態では、幅または高さがNであるブロックについて、ブロックの幅または高さが
に充填され、例えば、Nが6、12、20、24、28、36、40、44、48、52、56、または60である場合、ブロックの幅または高さは、それぞれ8、16、32、32、32、64、64、64、64、64、64または64に充填される。
【0110】
一実施形態では、サンプルをどこに充填するか(すなわち、左または右、上または下)は、信号で通知されるか、固定されるか、または暗黙的に導出される。
【0111】
一実施形態では、充填された値は、固定値(例えば、0または1<<(bitDepth-1))であり得て、ここtで、bitDepthは、画像サンプルのビット深さである。
【0112】
一実施形態では、充填された値は、残差サンプルを使用して導出されることができる。
【0113】
一例では、充填された値は、すべての残差サンプルの平均値である。
【0114】
別の例では、充填された値は、同じ行または列にある残差サンプルの平均値である。
【0115】
別の例では、充填された値は、例えば同じ行または列に位置する残差サンプルなどのような残差サンプルを外挿することによって生成される。
【0116】
別の例では、充填された値は、変換ドメイン内の変換係数の左上のMxNの領域を超えて位置する変換エネルギーを最小化することによって導出される。
【0117】
一実施形態では、充填後、充填前のブロックの幅または高さよりも大きい、2の累乗変換が行われ、すべての変換係数が信号で通知され、再構築された残差サンプルまたは逆量子化された変換係数が、サンプルを充填する方法に基づいてさらに調整される。
【0118】
一例では、充填された残差サンプルの値が各行(列)の平均値として導出される場合、逆量子化後、変換ドメインにおいて、逆量子化された変換係数値は、1つの量子化ステップ内で調整され、これにより、充填された位置での再構築された残差サンプルと、現在ブロックの再構築されたサンプルの各行(列)の平均値との絶対差が最小化される。
【0119】
一例では、左上の低周波数係数のみが調整され、低周波数係数は、左上のMxNの係数であってもよく、ここで、MおよびNは、各ブロックの幅と高さに対して予め定義された整数である。あるいは、低周波数係数は、DC係数のみであってもよく、左上のAC係数のみであってもよいし、または所予め定義された閾値より大きい係数であってもよい。
【0120】
一実施形態では、充填後、充填前のブロックの幅または高さよりも大きい、2の累乗変換が実行され、ゼロアウト処理が実行され、これにより、左上のMxNを超えて位置する全ての変換係数が除去され、ここで、MとNは、充填前のブロック幅とブロック高さである。
【0121】
一実施形態では、2の累乗ではないブロックが、フレーム内符号化が実行されず、フレーム間符号化のみが実行される、ということは制限される。
【0122】
Aで示されるブロックを分割するとき、このブロックA(その高さと幅はそれぞれ2の累乗である)がさらに複数のサブブロック(a0、a1…で示される)として分割され、かつ、少なくとも1つの分割a0、a1…が2の累乗ではない場合、オーバーラップ変換がブロックAの全体で実行されるということは制限され、これは、この変換が複数のサブブロック(すなわち、a0、a1…)とオーバーラップする、ということを意味する。このようにして、ブロックAの全体に対して1つの変換が行われるため、変換は、常に2の累乗に基づいて行われる。ここで、オーバーラップ変換は、それらのサブブロックパーティションにはオーバーラップ領域がないにもかかわらず、複数のサブブロック分割をカバーする単一の変換を意味する。
【0123】
一実施形態では、2の累乗ではないブロックがゼロCBFまたはDC値のみのいずれかに関連付けられなければならない、ということは制限されている。
【0124】
複数のN×2のサイズの変換がサポートされ、ここで、MとNは整数であり、かつ、Nは2の累乗ではない。
【0125】
一例では、Nは3であり、これによって、3ポイント、6ポイント、12ポイント…変換がサポートされている。
【0126】
一実施形態では、N×2の変換がサポートされるので、より多くの変換サイズがサポートされ、N×2は、サブブロックの数をさら削減するように適用されることができる。例えば、3×2の変換がサポートされている場合、幅または高さが6、12、20、24、28、36、40、44、48、52、56または60であるブロックについて、このブロックは、6、12、16+4、16+8、16+12、32+4、32+8、32+12、32+16、48+4、48+8および48+12のサブブロックに水平または垂直に分割される。
【0127】
変換幅の数は、それが有効なCu幅または高さの数よりも小さくなるように制約され、ここで、CU幅は、最大変換サイズ以下であり、CU高さは、最大変換サイズ以下である。
【0128】
一実施形態では、ある変換サイズは許可されない。
【0129】
一例では、変換サイズが、2つの数字(それぞれ2の累乗である)の合計として表現されることができない場合、この変換サイズは許可されず、例えば、28は、この制約によって許可されない。この場合、このような幅または高さを有するブロックは、2つ以上のサブ変換を使用する必要がある。
【0130】
別の例では、N×2のサイズを有する変換が必要であり、ここで、MとNは整数であり、Nは2の累乗ではない。変換の回数を減らすためには、例えば変換サイズ6、24または48などのような、奇数のMのみが許可される。変換サイズが必要であるが許可されていない場合(例えば12である場合)、変換は、許可されたより小さい変換に分割される。
【0131】
図8は、一実施形態による、ビデオシーケンスの復号のためのフレーム内および/またはフレーム間予測を制御する方法(800)のフローチャートである。いくつかの実現では、図8の1つ以上の処理ブロックは、デコーダ(310)によって実行されることができる。いくつかの実現では、図8の1つ以上の処理ブロックは、別のデバイスによって実行されてもよく、あるいは、デコーダ(310)と分離されるまたはデコーダ(310)を含むデバイスのグループ(例えばエンコーダ(303))によって実行されてもよい。
【0132】
図8を参照すると、第1ブロック(810)では、方法(800)は、符号化ユニットの幅または高さが2の累乗であるかどうかを決定することを含む。
【0133】
第2ブロック(820)では、方法(800)は、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットを複数のサブブロックに分割することを含み、ここで、各サブブロックの幅または高さは2の累乗であって最大化されるため、サブブロックの数は最小化される。
【0134】
前記分割は、6、12、20、24、28、36、40、44、48、52、56または60であると決定される符号化ユニットの幅または高さがに基づいて、符号化ユニットを、それぞれ、4+2、8+4、16+4、16+8、16+8+4、32+4、32+8、32+8+4、32+16、32+16+4、32+16+8または32+16+8+4の幅または高さを有するサブブロックに分割することを含み得て、ここで、M+N+K+Jは、ぞれぞれ、前記サブブロックの幅または高さを示す。
【0135】
この方法(800)は、信号、サブブロックの1つい以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、符号化ユニットが分割されるサブブロックの空間的順序を決定することをさらに含み得る。
【0136】
符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、前記分割は、信号、サブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、各サブブロックの幅または高さ、および複数の符号化ユニットをそれぞれ分割するための複数の所定パターンのいずれか1つまたは任意の組み合わせに基づいて、符号化ユニットが分割されるサブブロックの数を決定することと、決定されたサブブロックの数にさらに基づいて、符号化ユニットを複数のサブブロックに分割することと、を含み得る。
【0137】
第3ブロック(830)では、方法(800)は、符号化ユニットが分割されるサブブロックでフレーム内および/またはフレーム間予測を適用することを含む。
【0138】
この方法(800)、信号、サブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、サブブロックが符号化される順序を決定することを、さらに含み得る。
【0139】
この方法(800)は、符号化ユニットのための、符号化ユニットに対して非ゼロ係数があるかどうかを示す第1のCBFを設定することと、各サブブロックのための、サブブロックの各々に対して非ゼロ係数があるかどうかを示す第2のCBFを設定することとを、さらに含み得る。
【0140】
この方法(800)は、符号化ユニットのための第1のCBFが1に設定され、かつ、符号化順序でサブブロックの最後の1つのサブブロックに先行するサブブロックのうちの先行するもののための第2のCBFが0に設定されたことに基づいて、サブブロックの最後の1つのサブブロックのための第2のCBFを1に設定すること、をさらに含み得る。
【0141】
この方法(800)は、サブブロックのうちの1つのサイズに基づいて、サブブロックのうちの1つのサブブロックに変換を適用することを、さらに含み得る。サブブロックのうちの1つのサイズは、サブブロックのうちの1つの幅、高さ、面積、および高さに対する幅の比率のいずれか1つまたは任意の組み合わせを含み得る。
【0142】
この方法(800)は、符号化ユニットにおけるサブブロックのうちの1位置に基づいて、複数の変換のうちの1つの変換を選択し、選択された複数の変換のうちの1つの変換をサブブロックのうちの1つのサブブロックに適用することを、さらに含み得る。
【0143】
この方法(800)は、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットでフレーム間予測のみを適用することを、さらに含み得る。
【0144】
この方法(800)は、符号化ユニットの幅および高さが2の累乗であると決定されたことに基づいて、符号化ユニットを複数のパーティションに分割し、前記パーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗であるかどうかを決定し、前記パーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットに変換を適用することを、さらに含み得る。
【0145】
この方法(800)は、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットのための、符号化ユニットに対して非ゼロ係数があるかどうかを示す第1のCBFを0に設定すること、または、符号化ユニットを予測ブロックの予測値を示すDC値に関連付けることを、さらに含み得る。
【0146】
図8は、方法(800)の例示的なブロックを示すが、いくつかの実現では、方法(800)は、図8に示されるものと比べて、より多くのブロック、より少ないブロック、異なるブロック、または異なって配置されたブロックを含むことができる。さらに、または代わりに、方法(800)の2つ以上のブロックは、並列に実行されることができる。
【0147】
さらに、提案された方法は、処理回路(例えば、1つ以上のプロセッサまたは1つ以上の集積回路)によって実現されることができる。一例では、1つ以上のプロセッサは、1つ以上の提案された方法を実行するために、非一時的なコンピュータ読み取り可能な媒体に記憶されているプログラムを実行する。
【0148】
図9は、一実施形態による、ビデオシーケンスの復号のためのフレーム内および/またはフレーム間予測を制御するための装置(900)の簡略化されたブロック図である。
【0149】
図9を参照すると、装置(900)は、決定コード(910)(第1決定コード)、分割コード(920)、および適用コード(930)(第1適用コード)を含む。
【0150】
決定コード(910)は、符号化ユニットの幅または高さが2の累乗であるかどうかを決定するように構成される。
【0151】
分割コード(920)は、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットを複数のサブブロックに分割するように構成され、各サブブロックの幅または高さは2の累乗であって最大化されるため、前記サブブロックの数は最小化される。
【0152】
分割コード(920)は、さらに、符号化ユニットの幅または高さが6、12、20、24、28、36、40、44、48、52、56または60であると決定されたことに基づいて、符号化ユニットを、4+2、8+4、16+4、16+8、16+8+4、32+4、32+8、32+8+4、32+16、32+16+4、32+16+8または32+16+8+4の幅または高さを有するサブブロックにそれぞれ分割するように構成され、ここで、M+N+K+Jは、前記サブブロックの幅または高さをそれぞれ示す。
【0153】
分割コード(920)は、さらに、信号、サブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、符号化ユニットが分割されるサブブロックの空間的順序を決定するように構成される。
【0154】
分割コード(920)は、さらに、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、信号、前記サブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置、サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、各サブブロックの幅または高さ、および符号化ユニットの分割サイズのためにそれぞれ使用される所定パターンのいずれか1つまたは任意の組み合わせに基づいて、符号化ユニットが分割されるサブブロックの数を決定し、さらに、決定されたサブブロックの数に基づいて、符号化ユニットを複数のサブブロックに分割するように構成される。
【0155】
適用コード(930)は、符号化ユニットが分割されるサブブロックでフレーム内および/またはフレーム間予測を適用するように構成される。
【0156】
この装置は、信号、サブブロックの1つ以上の隣接するブロックのサイズ、符号化ツリーユニットにおける各サブブロックの位置サブブロックの1つ以上の親ブロックの分割タイプ、各サブブロックの輝度または色度成分、および各サブブロックの幅または高さのいずれか1つまたは任意の組み合わせに基づいて、サブブロックが符号化される順序を決定するように構成される第2決定コードを、さらに含むことができる。
【0157】
この装置は、符号化ユニットのための、符号化ユニットに対して非ゼロ係数があるかどうかを示す第1のCBFを設定し、また、各サブブロックのための、サブブロックの各々に対して非ゼロ係数があるかどうかを示す第2のCBFを設定するように構成される設定コードを、さらに含むことができる。
【0158】
設定コードは、さらに、符号化ユニットのための第1のCBFが1に設定され、符号化順序でサブブロックの最後の1つのサブブロックに先行するサブブロックのうちの先行するもののための第2のCBFがに0に設定されたことに基づいて、サブブロックの最後の1つのための第2のCBFを1に設定するように構成されるようにしてよい。
【0159】
この装置は、少なくとも1つのプロセッサに、サブブロックのうちの1つのサイズに基づいて、サブブロックのうちの1つのサブブロックに変換を適用させるように構成される第2適用コードをさらに含むようにしてよい。サブブロックのうちの1つのサイズは、サブブロックのうちの1つのサブブロックの幅、高さ、面積、および高さに対する幅の比率のいずれか1つまたは任意の組み合わせを含み得る。
【0160】
この装置は、符号化ユニットにおけるサブブロックのうちの1つの位置に基づいて、複数の変換のうちの1つの変換を選択し、選択された複数の変換のうちの1つの変換をサブブロックのうちの1つのサブブロックに適用するように構成される第2適用コードをさらに含み得る。
【0161】
適用コード(930)は、さらに、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットでフレーム間予測のみを適用するように構成されるようにしてよい。
【0162】
分割コード(920)は、さらに、符号化ユニットの幅および高さが2の累乗であると決定されたことに基づいて、符号化ユニットを複数のパーティションに分割するように構成されるようにしてよい。決定コード(910)は、さらに、前記パーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗であるかどうかを決定するように構成されるようにしてよい。この装置は、前記パーティションのいずれか1つまたは任意の組み合わせの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットに変換を適用するように構成される第2適用コードをさらに含むようにしてよい。
【0163】
この装置は、符号化ユニットの幅または高さが2の累乗ではないと決定されたことに基づいて、符号化ユニットのための、符号化ユニットに対して非ゼロ係数があるかどうかを示す第1のCBFを0に設定すること、または、符号化ユニットを予測ブロックの予測値を示すDC値に関連付けるように構成される設定コードをさらに含むようにしてよい。
【0164】
上述の技術は、コンピュータ読み取り可能な命令を使用するコンピュータソフトウェアとして実現され、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶され得る。
【0165】
図10は、実施形態を実現するのに適したコンピュータシステム(1000)の図である。
【0166】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用して符号化されてもよく、アセンブリ、コンパイル、リンクなどのメカニズムによって命令を含むコードを作成してもよいし、この命令は、コンピュータ中央処理ユニット(CPU:computer central processing unit)、グラフィック処理ユニット(GPU:Graphics Processing Unit)などによって直接的に実行されてもよく、または解釈、マイクロコードなどによって実行されてもよい。
【0167】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0168】
図10に示されるコンピュータシステム1000のコンポーネントは、本質的に例示的なものであり、実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム1000の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0169】
コンピュータシステム1000は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェース入力デバイスは、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連しているとは限らない、特定のメディアを捕捉するために使用されることもできる。
【0170】
ヒューマンインターフェース入力デバイスは、キーボード1001、マウス1002、トラックパッド1003、タッチスクリーン1010、データグローブ、ジョイスティック1005、マイクロホン1006、スキャナ1007、カメラ1008のうちの1つまたは複数を含むことができる(そのうちの1つだけが図示された)。
【0171】
コンピュータシステム1000はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン1010、データグローブ、ジョイスティック1005による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ1009、ヘッドホン(図示せず))、視覚出力デバイス(例えば、ブラウン管(CRT:cathode ray tube)スクリーン、液晶ディスプレイ(LCD:liquid-crystal display)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED:organic light-emitting diode)スクリーンを含むスクリーン1010であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよく、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0172】
コンピュータシステム1000は、例えば、CD/DVDを有するCD/DVD ROM/RW 1020を含む光学媒体または類似の媒体1021、サムドライブ1022、リムーバブルハードドライブまたはソリッドステートドライブ1023、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0173】
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0174】
コンピュータシステム1000はまた、1つ以上の通信ネットワークへのインターフェースを含むことができる。ネットワークは、例えば、無線、有線、光学的であってもよい。ネットワークはさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク(モバイル通信のグローバルシステム(GSM:global systems for mobile communications)、第3世代(3G:third generation)、第4世代(4G:fourth generation)、第5世代(5G:fifth generation)、長期進化(LTE:Long-Term Evolution)などを含む)などのLAN、有線テレビまたは無線広域デジタルネットワーク(テレビケーブル、衛星テレビ、地上放送テレビを含む)、車両用ネットワークおよび産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(1049)(例えば、コンピュータシステム1000のユニバーサルシリアルバス(USB:universal serial bus)ポート)に接続された外部ネットワークインターフェースアダプタが必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステム1000のコアに統合される(例えば、イーサネットインターフェースからPCコンピュータシステムへ、またはセルラーネットワークインターフェースからスマートフォンコンピュータシステムへ)。これらのネットワークのいずれかを使用して、コンピュータシステム1000は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANバスから特定のCANバスデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上記のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェースのそれぞれで使用されることができる。
【0175】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム1000のコア1040に接続されることができる。
【0176】
コア1040は、1つ以上の中央処理ユニット(CPU)1041、画像処理ユニット(GPU)1042、フィールドプログラマブルゲートエリア(FPGA)1043の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器1044などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM)1045、ランダムアクセスメモリ(RAM)1046、例えば内部の非ユーザアクセスハードドライブ、ソリッドステートドライブ(SSD:solid-state drives)などの内部大容量ストレージ1047などとともに、システムバス1248を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス1248は、付加的なCPU、GPUなどによって拡張を可能にするために、1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス1248に直接に接続されてもよく、または周辺バス1049を介して接続されてもよい。周辺バスのアーキテクチャは、外部コントローラインターフェース(PCI:peripheral component interconnect)、汎用シリアルバス(USB)などを含む。
【0177】
CPU 1041、GPU 1042、FPGA 1043、および加速器1044は、いくつかの命令を実行することができ、これらの命令を組み合わせて上記のコンピュータコードを構成することができる。そのコンピュータコードは、ROM 1045またはRAM 1046に記憶されることができる。また、一時的なデータは、RAM 1046に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ1047に記憶されることができる。1つ以上のCPU 1041、GPU 1042、大容量ストレージ1047、ROM 1045、RAM 1046などと密接に関連することができる、高速ストレージを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
【0178】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、実施形態の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
【0179】
限定ではなく例として、アーキテクチャ1000、特にコア1040を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサの結果として機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上述したようにユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ1047またはROM 1045などの、不揮発性コア1040を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア1040によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア1040、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM 1046に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤまたは他の方式で、回路(例えば、加速器1044)で具体化された結果としての機能を提供することができ、この回路は、ソフトウェアの代わりに動作しまたはソフトウェアと一緒に動作して、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行してもよい。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行のソフトウェアを記憶する回路(例えば、集積回路(IC)など)、実行のロジックを具体化する回路、またはその両方を兼ね備えることができる。実施形態は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0180】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、置換、および様々な均等置換が存在している。したがって、当業者は、本明細書では明示的に示されていないか、または説明されていないが、本開示の原則を具体化しているので、本開示の精神および範囲内ある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
図1A
図1B
図1C
図1D
図1E
図2
図3
図4
図5
図6
図7
図8
図9
図10