(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-04-05
(54)【発明の名称】CUに基づく補間フィルタ選択のシグナリング
(51)【国際特許分類】
H04N 19/102 20140101AFI20220329BHJP
H04N 19/136 20140101ALI20220329BHJP
H04N 19/156 20140101ALI20220329BHJP
H04N 19/46 20140101ALI20220329BHJP
H04N 19/176 20140101ALI20220329BHJP
【FI】
H04N19/102
H04N19/136
H04N19/156
H04N19/46
H04N19/176
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021548677
(86)(22)【出願日】2020-03-12
(85)【翻訳文提出日】2021-08-19
(86)【国際出願番号】 US2020022314
(87)【国際公開番号】W WO2020186016
(87)【国際公開日】2020-09-17
(32)【優先日】2019-03-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-03-11
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,シアオジョォン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リ,グォイチュン
(72)【発明者】
【氏名】リィウ,シャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159NN21
5C159RC12
5C159TA66
5C159TA69
5C159TB08
5C159TC25
5C159TC26
5C159TC30
5C159TC51
5C159TD12
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
【要約】
本開示の各態様は、動画符号化/復号化用方法及び装置を提供する。幾つかの例において、動画復号化装置は処理回路システムを含み、当該処理回路システムは、現在符号化されたピクチャにおける現在のブロックの予測情報を復号化し、当該現在符号化されたピクチャは符号化された動画シーケンスの一部である。予測情報は現在のブロックに関する分数動きベクトルを指示する。処理回路システムは、現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いかどうかを特定する。現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いと特定された場合に、処理回路システムは現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。処理回路システムは、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタから選択された一つに基づいて現在のブロックを構築する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
動画復号化方法であって、デコーダが、
現在のピクチャにおける現在のブロックの予測情報を復号化するステップであって、前記現在のピクチャは、符号化された動画シーケンスの一部であり、前記予測情報は、前記現在のブロックに関する分数動きベクトルを指示する、ステップと、
前記現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いか否かを特定するステップと、
前記現在のブロックのブロック幅とブロック高さのうちの一つが前記第1の閾値よりも低いと特定された場合に、前記現在のブロックに対して整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの1つを選択するステップであって、前記第1の補間フィルタは、ブロックサイズに関係する補間フィルタであり、前記第2の補間フィルタは、ブロックサイズに関係しない補間フィルタである、ステップと、
前記整数動きベクトル、前記第1の補間フィルタ及び前記第2の補間フィルタから選択した一つに基づいて、前記現在のブロックを再構築するステップと、を実行する方法。
【請求項2】
前記特定するステップは、前記現在のブロックのブロック幅とブロック高さの両方が前記第1の閾値よりも小さいか否かを特定するステップ、を含み、
前記選択するステップは、前記現在のブロックのブロック幅とブロック高さの両方が前記第1の閾値よりも低いと特定された場合に、前記現在のブロックに対して、前記整数動きベクトル、前記第1の補間フィルタ及び前記第2の補間フィルタのうちの一つを選択するステップ、を含む請求項1に記載の方法。
【請求項3】
前記特定するステップは、前記現在のブロックのブロック幅が前記第1の閾値よりも小さいか否かを特定し、前記現在のブロックのブロック高さが第2の閾値よりも小さいか否かを特定するステップ、を含み、
前記選択するステップは、前記現在のブロックのブロック幅が前記第1の閾値よりも小さいと特定されており、且つ前記現在のブロックのブロック高さが前記第2の閾値よりも小さいと特定された場合に、前記現在のブロックに対して、前記整数動きベクトル、前記第1の補間フィルタ及び前記第2の補間フィルタのうちの一つを選択するステップ、を含む請求項1に記載の方法。
【請求項4】
前記選択するステップは、前記現在のピクチャのピクチャ解像度に基づく請求項1~3の何れか1項に記載の方法。
【請求項5】
前記選択するステップは、ピクチャの幅、ピクチャの高さ、前記現在のピクチャの画素数、フレームレート及び前記現在のピクチャの充填率のうちの一つに基づく請求項1~3の何れか1項に記載の方法。
【請求項6】
前記選択するステップは、前記予測情報に含まれる1つ又は複数の制御フラグに基づく請求項1に記載の方法。
【請求項7】
前記1つ又は複数の制御フラグは、シーケンスレベル、ピクチャレベル、タイルレベル、スライスレベル及びブロックレベルのうちの少なくとも1つでシグナリングされる請求項6に記載の方法。
【請求項8】
前記選択するステップは、前記現在のピクチャにおいて復号化中である画素領域でのメモリ帯域幅の使用に基づく請求項1に記載の方法。
【請求項9】
前記メモリ帯域幅の使用が目標帯域幅に達する前に、前記現在のブロックに対して前記第2の補間フィルタを選択するステップと、
前記メモリ帯域幅の使用が前記目標帯域幅に達しており、且つ前記画素領域がまだ復号化中である場合、前記現在のブロックに対して前記整数動きベクトルと前記第1の補間フィルタのうちの一つを選択するステップと、をさらに含む請求項8に記載の方法。
【請求項10】
動画復号化装置であって、処理回路システムを含み、該処理回路システムが、請求項1~9の何れか1項に記載の動画復号化方法を実行する、動画復号化装置。
【請求項11】
コンピュータプログラムであって、非一時的なコンピュータ可読記憶媒体に記憶され、少なくとも1つのプロセッサに、請求項1~9の何れか1項に記載の動画復号化方法を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、2020年3月11日に提出された米国特許出願第16/815,354号「SIGNALING OF CU BASED INTERPOLATION FILTER SELECTION」の優先権を主張し、当該米国特許出願は、2019年3月12日にて提出された米国仮出願第62/817,507号「SIGNALING OF CU BASED INTERPOLATION FILTER SELECTION」の優先権を主張し、上記の各出願の全内容は本明細書に援用により組み込まれる。
【0002】
本開示の内容は、一般的に動画符号化に関する実施形態を記載する。
【背景技術】
【0003】
本明細書で提供された背景記載は、本開示の背景を総体的に体現することを目的とする。この背景技術に記載された範囲について、現在署名の発明者の作業、及び提出の際、別に従来技術の記載として限定されていない態様について、明確且つ暗黙的に本開示に対する従来技術として認められない。
【0004】
動き補償を有するインターピクチャ予測を使用して動画の符号化及び復号化を実行してもよい。非圧縮のデジタル動画は一連のピクチャを含み、各ピクチャは、例えば1920×1080の輝度サンプル及び関連付けられた色度サンプルの空間次元を有してもよい。当該一連のピクチャは、例えば、1秒当たり60ピクチャ又は60Hzの固定又は可変のピクチャレート(非正式にはフレームレートとも呼ばれる)を有してもよい。非圧縮の動画には、高いビットレート要件がある。例えば、1サンプルあたり8ビットにおける1080p60 4:2:0の動画(60Hzフレームレートでの1920×1080の輝度サンプルの解像度)は、約1.5Gbit/sに近い帯域幅が必要である。1時間のこのような動画は、600GBを超えるストレージスペースが必要である。
【0005】
動画符号化及び復号化は、圧縮により入力動画信号における冗長を減少させることを1つの目的とする。幾つかの場合、圧縮は、前記した帯域幅又はストレージスペースに対する要件を、2つ又はより多いオーダーだけ減少させることに寄与することができる。可逆圧縮、非可逆圧縮、及びその組み合わせを採用してもよい。可逆圧縮とは、圧縮された元の信号から元の信号の正確なコピーを再構築できる技術を指す。非可逆圧縮を使用する場合、再構築された信号は元の信号と異なる可能性があるが、元の信号と再構築された信号との間の歪みが十分に小さいから、再構築された信号は目的のアプリケーションに役立つ。動画の場合、非可逆圧縮は広く利用されている。許容される歪み量はアプリケーションに依存し、例えば、消費者ストリーミング媒体プリケーションのユーザがテレビ貢献アプリケーションのユーザよりも高い歪みを許容する。実現できる圧縮比は、許可/許容可能な歪みが高いほど、圧縮比が高くなることを反映している。
【0006】
動画エンコーダとデコーダは、例えば、動き補償、変換、量子化、エントロピー符号化などを含む、いくつかの幅広いカテゴリの技術を利用し得る。
【0007】
動画コーデック技術は、イントラ符号化と呼ばれる技術を含み得る。イントラ符号化の場合、サンプル値は、先に再構築された参照ピクチャからのサンプル、又は他のデータを参照せず示される。いくつかの動画コーデックでは、ピクチャは空間的にサンプルブロックに細分される。全てのサンプルブロックをイントラモードで符号化する場合、当該ピクチャはイントラピクチャであってもよい。イントラピクチャ及びその派生物、例えば、独立したデコーダリフレッシュピクチャは、デコーダの状態をリセットするために使用できるため、符号化された動画ビットストリームと動画セッションにおける第1のピクチャ、又は静止画像として使用されることができる。イントラブロックのサンプルを変換することができ、また、エントロピー符号化を行う前に、変換係数を量子化することができる。イントラ予測は、プレ変換ドメインにおいてサンプル値を最小化する技術であってもよい。幾つかの場合、変換されたDC値が小さくてAC係数が小さいほど、所定の量子化ステップサイズでエントロピー符号化されたブロックを表すために必要なビットが少なくなる。
【0008】
例えばMPEG-2世代の符号化技術から知られている従来のイントラ符号化は、イントラ予測を使用しない。しかしながら、いくつかの新動画圧縮技術は、例えば、空間的に隣接し且つ復号化順序で先行するデータブロックを符号化/復号化している期間に取得されたメタデータ及び/又は周辺のサンプルデータから試みる技術を含む。以降、このような技術は「イントラ予測」技術と呼ばれる。なお、少なくともいくつかの場合に、イントラ予測は、参照画像からの参照データを使用しなく、再構築中の現在ピクチャからの参照データのみを使用することに注意されたい。
【0009】
イントラ予測には多くの異なる形式があり得る。所定の動画符号化技術において1種以上のこのような技術を使用できる場合に、使用される技術はイントラ予測モードで符号化することができる。幾つかの場合に、モードは、サブモード及び/又はパラメータを有してもよく、これらのサブモード及び/又はパラメータは、個別に符号化されたり、モードコードワードに含まれたりしてもよい。所定のモード/サブモード/パラメータの組み合わせにどのコードワードを使用するかは、イントラ予測による符号化効率ゲインに影響を与えるため、コードワードをビットストリームに変換するためのエントロピー符号化技術に影響を与える。
【0010】
イントラ予測のあるモードはH.264から導入され、H.265において細分化され、例えば、共同探査モデル(JEM)、多用途動画符号化(VVC)、ベンチマークセット(BMS)などの新符号化技術では、さらに細分化される。既に使用可能なサンプルに属する隣接サンプル値を使用して予測器ブロックを形成してもよい。方向に応じて、隣接サンプルのサンプル値を予測器ブロックにコピーする。使用中の方向の参照は、ビットストリームに符号化されるか、またはその自身は予測されることができる。
【0011】
図1Aを参照し、右下に、H.265の35個の可能な予測器方向(35個のイントラモードの33個の角度モードに対応する)から知られている9つの予測器方向のサブセットが描画されている。矢印が集まる点(101)は、予測されるサンプルを表す。矢印は、サンプルを予測する方向を表す。例えば、矢印(102)は、右上における、水平と45度の角度をなす1つ又は複数のサンプルからサンプル(101)を予測することを指示する。同様に、矢印(103)は、サンプル(101)の左下における、水平と22.5度の角度をなす1つ又は複数のサンプルからサンプル(101)を予測することを指示する。
【0012】
引き続き
図1Aを参照し、左上に4×4サンプルの正方形ブロック(104)(太い破線で示される)が描画されている。正方形ブロック(104)は16サンプルを含む。各サンプルは、「S」、Y次元での位置(例えば、行インデックス)及びX次元での位置(例えば、列インデックス)がラベリングされる。例えば、サンプルS21は、Y次元での(上からの)2番目のサンプルと、X次元での(左側からの)1番目のサンプルである。同様に、サンプルS44は、ブロック(104)における、Y次元とX次元の両方での4番目のサンプルである。ブロックのサイズは4×4サンプルであるため、S44は、右下にある。さらに、同様の番号付けスキームに従う参照サンプルが示される。参照サンプルは、R、ブロック(104)に対するY位置(例えば、行インデックス)及びX位置(列インデックス)がラベリングされる。H.264とH.265の両方において、予測サンプルは、再構築中のブロックに隣接しているため、負の値を使用する必要がない。
【0013】
イントラピクチャ予測は、シグナリングされる予測方向に占有する隣接するサンプルから参照サンプル値をコピーすることで行われる。例えば、符号化された動画ビットストリームにシグナリングが含まれ、当該シグナリングは、このブロックに対して矢印(102)と一致する予測方向を指示する。つまり、右上における、水平と45度の角度をなす1つ又は複数の予測サンプルから予測することを想定する。この場合、同じ参照サンプルR05からサンプルS41、S32、S23及びS14を予測する。そして、参照サンプルR08からサンプルS44を予測する。
【0014】
いくつかの場合に、特に、方向が45度で均等に分割できない場合に、参照サンプルを計算するように、複数の参照サンプルの値を例えば補間によって組み合わせてもよい。
【0015】
動画符号化技術の開発に伴い、可能な方向の数も増えている。H.264(2003年)において、9つの異なる方向を表し得る。これは、H.265(2013年)において33個に増え、また開示時に、JEM/VVC/BMSは65個ほど多い方向をサポートすることができる。既に実験を行って最も可能性の高い方向を認識し、且つエントロピー符号化における特定の技術が、少ないビット数でそれらの可能な方向を表すために使用され、可能性の低い方向に対する特定のペナルティを受ける。また、隣接する復号化されたブロックで使用される隣接方向から方向自体を予測することがある。
【0016】
図1Bは、経時的に増加する予測方向の数を示すために、JEMによる67個のイントラ予測モードを描画する概略図(105)である。
【0017】
符号化された動画ビットストリームにおいて方向を表すイントラ予測方向ビットのマッピングは、動画符号化技術によって異なってもよい。そして、当該マッピングの範囲は、例えば、予測方向→イントラ予測モード→コードワードという単純な直接マッピングから、最確モード及び類似の技術に関する複雑な自己適応スキームへ変化してもよい。ただし、すべての場合に、他の方向よりも統計的に動画コンテンツで発生する可能性の低い特定の方向が存在する可能性がある。動画圧縮の目的は冗長性の削減であるため、良く機能する動画符号化技術において、それらの可能性の低い方向は、可能性の高い方向よりも多いビット数で表される。
【0018】
動き補償は非可逆圧縮技術であってもよく、そして、先に再構築されたピクチャ又はその一部(参照ピクチャ)からのサンプルデータブロックは、動きベクトル(以降、MVと呼ばれる)が指示する方向に空間的にシフトされた後、新しく再構築されたピクチャ又はピクチャの一部の予測に使用される技術を含み得る。いくつかの場合に、参照ピクチャは、現在に再構築されているピクチャと同じであってもよい。MVは、XとYの2つの次元を有してもよいし、3つの次元を有してもよく、3番目の次元は使用中の参照ピクチャに対する指示である(後者は間接的に時間次元になり得る)。
【0019】
いくつかの動画圧縮技術において、他のMVからサンプルデータの特定の領域に適用するMVを予測し、例えば、前記したそれらの再構築された領域に空間的に隣接するサンプルデータの別の領域に関し復号化順序で当該MVの前にあるMVから当該MVを予測してもよい。このようにすれば、MVを符号化するために必要なデータの量を大幅に減らすことができ、それによって冗長性がなくなり、圧縮率を向上させる。MV予測は効果的に機能することができ、例えば、これは、カメラから得られた入力動画信号(ナチュラル動画と呼ばれる)を符号化する場合に、単一のMVの適用可能な領域よりも大きい領域が、類似する方向に移動する統計的な可能性があるため、いくつかの場合に、隣接領域のMVから導出された類似する動きベクトルを使用して予測することができる。この結果、所定の領域に対して見つけたMVは周りのMVから予測されたMVと類似又は同じであり、また、エントロピー符号化後、MVを直接符号化する場合に使用されるビット数よりも少ないビット数で表してもよい。いくつかの場合に、MV予測は、元の信号(即ち、サンプルストリーム)から導出された信号(即ち、MV)の可逆圧縮の例であってもよい。他の場合に、MV予測自体は非可逆となり、それは、例えば、若干の周りのMVから予測器を算出する際の丸め誤差に繋がる。
【0020】
H.265/HEVC(ITU-T H.265提案書、「High
Efficiency Video Coding」、2016年12月)には、複数のMV予測メカニズムが記載されている。H.265で提供された複数のMV予測メカニズムのうち、本出願は、ハイレベル動きベクトル予測(AMVP)モードとマージモードが記載される。
【0021】
AMVPモードにおいて、現在のブロックの空間的及び時間的隣接ブロックの動き情報は、現在のブロックの動き情報を予測するとともに、予測残差をさらに符号化するために使用できる。
図1Cと
図1Dはそれぞれ空間的及び時間的隣接候補の例を示している。二つの候補動きベクトル予測器リストを形成する。第1の候補予測器は、
図1Cに示すように、現在のブロック(111)の左下隅における2つのブロックA0(112)、A1(113)の第1の利用可能な動きベクトルからのものである。第2の候補予測器は現在のブロック(111)の上における3つのブロックB0(114)、B1(115)及びB2(116)の第1の利用可能な動きベクトルからのものである。チェックした場所から有効な動きベクトルが見つからないと、リストに候補を埋めない。二つの利用可能な的候補が同じな動き情報を有すると、リストに1つの候補のみを保留する。
図1Dに示すように、リストがいっぱいでないと、即ち、リストに二つの異なる候補がなく、参照ピクチャの共同設置された(co-located)ブロック(121)の右下隅からのC0(122)の時間的共同設置された動きベクトル(スケーリング後)が別の候補として使用される。C0(122)位置での動き情報が利用できないと、代わりに、参照ピクチャにおける共同設置されたブロックの中心位置C1(123)を使用する。上記の導出では、まだ十分な動きベクトル予測器候補がない場合、ゼロ動きベクトルを使用してリストを埋める。ビットストリームにおいてmvp_10_flag及びmvp_11_flagの2つのフラグをシグナリングして、MV候補リストL0及びL1のAMVPインデックス(0又は1)をそれぞれ指示する。
【0022】
インターピクチャ予測に使用されるマージモードにおいて、マージフラグ(スキップフラグを含む)がTRUEとしてシグナリングされると、マージインデックスをシグナリングして、マージ候補リスト内のどの候補が現在のブロックの動きベクトルを指示するかを示す。デコーダにおいて、現在のブロックの空間的及び時間的隣接に基づいてマージ候補リストを構成する。
図1Cに示すように、五つの空間的隣接ブロック(A0からB2)から導出された最大4つのMVがマージ候補リストに追加される。また、
図1Dに示すように、参照ピクチャにおける2つの時間共同設置されたブロック(C0及びC1)からの最大1つのMVがリストに追加される。他のマージ候補は組み合わせた双方向予測候補とゼロ動きベクトル候補を含む。ブロックの動き情報をマージ候補と見なす前に、冗長チェックを実行して現在のマージ候補リストにおける要素と同じであるかどうかをチェックする。現在のマージ候補リストの各要素と異なる要素を、マージ候補としてマージ候補リストに追加する。MaxMergeCandsNumは、候補番号に関するマージ候補リストのサイズとして定義される。HEVCにおいて、MaxMergeCandsNumはビットストリームにシグナリングされる 。スキップモードを、残差がゼロである特別なマージモードと見なしてもよい。
【発明の概要】
【0023】
本開示の各態様は、動画符号化/復号化用方法及び装置を提供する。いくつかの例において、動画復号化装置は処理回路システムを含み、当該処理回路システムは、現在符号化されたピクチャにおける現在のブロックの予測情報を復号化し、当該現在符号化されたピクチャは符号化された動画シーケンスの一部である。予測情報は現在のブロックの分数(fractional)動きベクトルを指示する。処理回路システムは現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いかどうかを特定する。現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いと特定された場合に、処理回路システムは、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。第1の補間フィルタはブロックサイズに関係する補間フィルタであり、第2の補間フィルタはブロックサイズに関係しない補間フィルタである。処理回路システムは、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタから選択された一つに基づいて現在のブロックを構築する。
【0024】
実施形態において、処理回路システムは、現在のブロックのブロック幅とブロック高さの両方が第1の閾値よりも小さいかどうかを特定する。現在のブロックのブロック幅とブロック高さの両方が第1の閾値よりも小さいと特定された場合に、処理回路システムは、現在のブロックに対して整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0025】
実施形態において、処理回路システム現在のブロックのブロック幅が第1の閾値よりも小さいかどうかを特定し、現在のブロック的ブロック高さが第2の閾値よりも小さいかどうかを特定する。現在のブロックのブロック幅が第1の閾値よりも小さいと特定され、且つ現在のブロックのブロック高さが第2の閾値よりも小さいと特定された場合に、処理回路システムは、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0026】
本開示の各態様によれば、処理回路システムは、現在のピクチャのピクチャ解像度に基づいて、現在のブロックに対して整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0027】
実施形態において、処理回路システムは、ピクチャの幅、ピクチャの高さ、現在のピクチャの画素数、フレームレート及び現在のピクチャの充填率のうちの一つに基づいて、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0028】
本開示の各態様によれば、処理回路システムは、予測情報に含まれる1つ又は複数の制御フラグに基づいて、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0029】
実施形態において、1つ又は複数の制御フラグは、シーケンスレベル、ピクチャレベル、タイルレベル、スライスレベル及びブロックレベルのうちの少なくとも1つでシグナリングされる。
【0030】
本開示の各態様によれば、処理回路システムは、現在のピクチャにおける復号化中である画素領域でのメモリ帯域幅の使用に基づいて、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0031】
実施形態において、処理回路システムは、メモリ帯域幅の使用が目標帯域幅に達する前に、現在のブロックに対して第2の補間フィルタを選択する。メモリ帯域幅の使用が目標帯域幅に達した後、画素領域がまだ復号化中である場合、処理回路システムは、現在のブロックに対して整数動きベクトルと第1の補間フィルタのうちの一つを選択する。
【0032】
本開示の各態様は、命令が記憶されている非一時的なコンピュータ可読媒体をさらに提供し、当該命令は、動画復号化用のコンピュータによって実行されると、動画符号化用方法のいずれか又は組み合わせをコンピュータに実行させる。
【図面の簡単な説明】
【0033】
開示された主題のさらなる特徴、性質及び様々な利点は、以下の詳細な説明及び図面からより明確になる。図面において、
【
図1A】イントラ予測モードの例示的なサブセットの模式図である。
【
図1C】一例における現在のブロック及びその周りの空間マージ候補の模式図である。
【
図1D】一例における共同設置されたブロック及び時間マージ候補の模式図である。
【
図2】実施形態による通信システムの簡略化ブロック図の模式図である。
【
図3】実施形態による通信システムの簡略化ブロック図の模式図である。
【
図4】実施形態によるデコーダの簡略化ブロック図の模式図である。
【
図5】実施形態によるエンコーダの簡略化ブロック図の模式図である。
【
図6】他の実施形態によるエンコーダのブロック図を示す。
【
図7】他の実施形態によるデコーダのブロック図を示す。
【
図8】実施形態による現在のブロック及び現在のブロックの参照ブロックを示す。
【
図9】幾つかの実施形態の例示的なプロセスを概説するフローチャートを示す。
【
図10】実施形態によるコンピュータシステムの模式図を示す。
【発明を実施するための形態】
【0034】
図2は、本開示による通信システム(200)の簡略ブロック図を示す。通信システム(200)は、例えばネットワーク(250)を介して互いに通信する複数の端末装置を含む。例えば、通信システム(200)は、ネットワーク(250)を介して相互接続された第1対の端末装置(210)と(220)を含む。
図2に示す例において、第1対の端末装置(210)と(220)は一方向のデータ伝送を実行する。例えば、端末装置(210)は、動画データ(例えば、端末装置(210)によってキャプチャされた動画ピクチャストリーム)を符号化して、ネットワーク(250)を介して他の端末装置(220)に伝送してもよい。符号化された動画データは1つ又は複数の符号化された動画ビットストリームで伝送される。端末装置(220)は、ネットワーク(250)から符号化された動画データを受信し、符号化されたデータを復号化して、動画ピクチャを復元し、復元された動画データに基づいて、動画ピクチャを表示してもよい。一方向のデータ伝送は、媒体サービスアプリケーションなどでは一般的である。
【0035】
他の実施形態では、通信システム(200)は、符号化された動画データの双方向伝送を実行する、第2対の端末装置(230)と(240)とを含み、当該双方向伝送は、例えば動画会議中に発生する可能性がある。双方向データ伝送については、例において、端末装置(230)と(240)のそれぞれは、動画データ(例えば、端末装置によってキャプチャされた動画ピクチャストリーム)を符号化して、ネットワーク(250)を介して端末装置(230)と(240)のうちの他方の端末装置に伝送してもよい。端末装置(220)と(240)のそれぞれは、また、端末装置(230)と(240)のうちの他方の端末装置によって送信された符号化された動画データを受信し、符号化されたデータを復号化して動画ピクチャを復元し、復元された動画データに基づいて、動画画像をアクセス可能な表示デバイスに表示してもよい。
【0036】
図2に示す例において、端末装置(210)、(220)、(230)及び(240)は、サーバ、パーソナルコンピュータ及びスマートフォンとして示され得るが、本開示の原理はこれに限定されていない。本開示の実施形態はラップトップコンピュータ、タブレット、メディアプレイヤー及び/又は専用の動画会議機器に適用される。ネットワーク(250)は端末装置(210)、(220)、(230)及び(240)の間で符号化された動画データを伝送する任意の数のネットワークを示し、例えば、有線(結線される)及び/又は無線通信ネットワークを含む。通信ネットワーク(250)は、回線交換及び/又はパケット交換チャネルにおいてデータを交換し得る。代表的なネットワークは通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又はインターネットを含む。この検討を目的として、ネットワーク(250)のアーキテクチャとトポロジーは、以下に本明細書で説明されない限り、本開示の操作にとって重要ではない場合がある。
【0037】
開示された主題の適用例として、
図3は、ストリーミング環境における動画エンコーダとデコーダの配置を示し、開示された主題は、例えば、動画会議、デジタルテレビ、CD、DVD、メモリースティックなどを含むデジタルメデイアの圧縮動画の保存を含む動画をサポートする他のアプリケーションに同様に適用され得る。
【0038】
ストリーミングシステムはキャプチャサブシステム(313)を含んでもよく、当該キャプチャサブシステムは、例えば非圧縮の動画ピクチャストリーム(302)を構築する、例えばデジタルカメラなどの動画ソース(301)を含んでもよい。例において、動画ピクチャストリーム(302)はデジタルカメラによって撮影されたサンプルを含む。動画ピクチャストリーム(302)は、符号化された動画データ(304)(又は符号化された動画ビットストリーム)と比べて、データ量が多いことを強調するために太い線として描画され、当該動画ピクチャストリームは、動画ソース(301)に結合される動画エンコーダ(303)の電子機器(320)によって処理されてもよい。動画エンコーダ(303)は、以下でより詳細に説明する開示された主題の各態様を実現又は実施するために、ハードウェア、ソフトウェア、又はそれらの組み合わせを含んでもよい。符号化された動画データ(304)(符号化された動画ビットストリーム(304))は、動画ピクチャストリーム(302)と比べて、データ量が少ないことを強調するために細い線として描画され、符号化された動画データは、将来の使用のために、ストリーミングサーバ(305)に記憶され得る。1つ又は複数のストリーミングクライアントサブシステム、例えば、
図3におけるクライアントサブシステム(306)と(308)は、ストリーミングサーバ(305)にアクセスして、符号化された動画データ(304)のレプリカ(307)と(309)を検索し得る。クライアントサブシステム(306)は、例えば、電子機器(330)における動画デコーダ(310)を含んでもよい。動画デコーダ(310)は、符号化された動画データの着信レプリカ(307)を復号化し、ディスプレイ(312)(例えば、スクリーン)又は他のレンダリングデバイス(図示せず)でレンダリングできる発信動画ピクチャストリーム(311)を作成する。一部のストリーミングシステムにおいて、ある動画符号化/圧縮規格に基づいて、符号化された動画ビットストリーム(304)、(307)、(309)(例えば、動画ビットストリーム)を符号化してもよい。これらの規格の例には、ITU-T H.265提案書を含む。例において、開発中の動画符号化規格は非公式に多用途動画符号化又はVVCと呼ばれる。開示された主題は、VVCの背景に使用可能である。
【0039】
なお、電子機器(320)と(330)は、他の構成要素(図示せず)を含んでもよい。例えば、電子機器(320)は動画デコーダ(図示せず)を含んでもよく、電子機器(330)は動画エンコーダ(図示せず)を含んでもよい。
【0040】
図4は、本開示の実施形態による動画デコーダ(410)のブロック図を示す。動画デコーダ(410)は電子機器(430)に含まれてもよい。電子機器(430)は受信機(431)(例えば、受信回路システム)を含んでもよい。動画デコーダ(410)は
図3に示す例における動画デコーダ(310)の代わりに使用されてもよい。
【0041】
受信機(431)は、動画デコーダ(410)によって復号化される1つ又は複数の符号化された動画シーケンスを受信してもよく、同じ実施形態又は別の実施形態において、1回に1つの符号化された動画シーケンスを受信し、各符号化された動画シーケンスの復号化は他の符号化された動画シーケンスから独立している。チャネル(401)から符号化された動画シーケンスを受信することができ、当該チャネルは、符号化された動画データを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。受信機(431)は、他のデータを受信する際に符号化された動画データを受信することができ、他のデータは、例えば、符号化されたオーディオデータ及び/又は補助データストリームであり、前記他のデータは、それぞれの使用エンティティ(図示せず)に転送され得る。受信機(431)は、符号化された動画シーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、受信機(431)とエントロピーデコーダ/パーサ(420)(以降、「パーサ」と呼ばれる)との間にバッファメモリ(415)を結合し得る。いくつかの応用において、バッファメモリ(415)は動画デコーダ(410)の一部である。他の応用において、バッファメモリ(415)は動画デコーダ(410)(図示せず)の外部にあってもよい。他の応用において、動画デコーダ(410)の外部には、ネットワークジッタを防止するために、バッファメモリ(図示せず)があってもよく、さらに例えば動画デコーダ(410)の内部に、再生タイミングを処理するために、別のバッファメモリ(415)があり得る。受信機(431)が十分な帯域幅と制御可能性を有する記憶/転送デバイス、又は等同期ネットワークからデータを受信する場合に、バッファメモリ(415)は必要とされないか、又は小サイズであればよいといった可能性がある。ベストパケットネットワーク、例えばインターネットで使用するために、バッファメモリ(415)が必要である場合があり、当該バッファメモリは相対的に大きく、自己適応サイズを有利に有してもよい。そして、少なくとも部分的にオペレーティングシステム又は動画デコーダ(410)の外部における類似している構成要素(図示せず)で実現されてもよい。
【0042】
動画デコーダ(410)は、符号化された動画シーケンスに応じてシンボル(421)を再構築するパーサ(420)を含み得る。これらのシンボルのカテゴリには、動画デコーダ(410)の操作を管理するための情報と、レンダリングデバイス(412)(例えば表示スクリーン)のようなレンダリングデバイスを制御するための情報とを含んでもよく、当該レンダリングデバイスは、
図4に示すように、電子機器(430)の構成部分ではなく、電子機器(430)に結合され得る。レンダリングデバイスに使用される制御情報は、補助拡張情報(SEIメッセージ)又は動画ユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)形式であってもよい。パーサ(420)は、受信された符号化された動画シーケンスに対して解析/エントロピー復号化を行うことができる。符号化された動画シーケンスの符号化は、動画符号化技術又は規格に従って行われ、且つ可変長符号化、エルフマン符号化、文脈依存の有無に関わる算術符号化などを含む様々な原理に従って行われてよい。パーサ(420)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化された動画シーケンスから、動画デコーダにおける画素のサブグループのうちの少なくとも1つに対するサブグループパラメータセットを抽出してもよい。サブグループは、ピクチャのグループ(GOP)、ピクチャ、タイル、スライス、マクロブロック、符号化ユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)などを含んでもよい。パーサ(420)は、また、符号化された動画シーケンスから、例えば、変換係数、量子化器パラメータ値、動きベクトルなどの情報を抽出してもよい。
【0043】
パーサ(420)は、バッファメモリ(415)から受信された動画シーケンスに対してエントロピー復号化/解析操作を実行することで、シンボル(421)を構築することができる。
【0044】
シンボル(421)の再構築は、符号化された動画ピクチャ又は他の部分のタイプ(例えば、インターピクチャとイントラピクチャ、インターブロックとイントラブロック)及び他の要因に応じて、複数の異なるユニットに関し得る。どのユニットが関与し、どのように制御するかについて、パーサ(420)により符号化された動画シーケンスから解析したサブグループ制御情報によって制御されてもよい。簡潔のために、パーサ(420)と以下の複数のユニットとの間におけるサブグループ制御情報の流れについて説明しない。
【0045】
既に言及された機能ブロックに加えて、動画デコーダ(410)は概念的には、以下に説明する複数の機能ユニットに細分化することができる。商業的な制約の下で運行する実際の実現形態では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示された主題を説明する目的のために、概念的には、以下の機能ユニットに細分化されることは適切である。
【0046】
第1のユニットは、スケーラ/逆変換ユニット(451)である。当該スケーラ/逆変換ユニット(451)はパーサ(420)からシンボル(421)である量子化変換係数及び制御情報を受信し、使用する変換方法、ブロックサイズ、量子化係数、量子化スケーリングマトリックスなどを含む。スケーラ/逆変換ユニット(451)は、サンプル値を含むブロックを出力でき、前記サンプル値はアグリゲータ(455)に入力され得る。
【0047】
いくつかの場合に、スケーラ/逆変換ユニット(451)の出力サンプルは、イントラ符号化ブロック、即ち、事前に再構築されたピクチャからの予測情報を使用しないが、現在のピクチャの事前に再構築された部分からの予測情報を使用し得るブロックに属してもよい。このような予測情報は、イントラピクチャ予測ユニット(452)によって提供され得る。いくつかの場合に、イントラピクチャ予測ユニット(452)は現在のピクチャバッファ(458)から抽出された、周囲が既に再構築された情報を使用して、再構築しているブロックと同じサイズ及び形状のブロックを生成する。現在のピクチャバッファ(458)は、例えば、部分的に再構築された現在のピクチャ及び/又は完全に再構築された現在のピクチャをバッファリングする。いくつかの場合に、アグリゲータ(455)は各サンプルに基づいて、イントラ予測ユニット(452)によって生成される予測情報を、スケーラ/逆変換ユニット(451)から提供される出力サンプル情報に追加する。
【0048】
他の場合に、スケーラ/逆変換ユニット(451)の出力サンプルはインター符号化され且つ潜在動き補償であり得るブロックに属してもよい。このような場合に、動き補償予測ユニット(453)は、参照ピクチャメモリ(457)にアクセスして、予測のためのサンプルを取得してもよい。当該ブロックに属するシンボル(421)に応じて、取得されたサンプルに対して動き補償を行った後に、これらのサンプルは、アグリゲータ(455)によってスケーラ/逆変換ユニット(451)の出力(この場合に、残差サンプル又は残差信号と呼ばれる)に追加されることで、出力サンプル情報を生成することができる。動き補償ユニット(453)がサンプルを取得する参照ピクチャメモリ(457)におけるアドレスは、動きベクトルによって制御されてもよく、前記動きベクトルは、シンボル(421)の形式で動き補償ユニット(453)に使用され得、前記シンボルは、例えば、X、Y、及び参照ピクチャ成分を有してもよい。動き補償には、サブサンプルの正確な動きベクトルが使用されている際に参照ピクチャメモリ(457)から取得されたサンプル値の補間、動きベクトル予測メカニズムなどを含んでもよい。
【0049】
アグリゲータ(455)の出力サンプルは、ループフィルタユニット(456)において種々のループフィルタリング技術によって処理され得る。動画圧縮技術は、ループ内フィルタ技術を含んでもよく、当該ループ内フィルタ技術は、符号化された動画シーケンス(符号化された動画ビットストリームとも呼ばれる)に含まれ且つパーサ(420)からのシンボル(421)としてループフィルタユニット(456)に使用可能なパラメータによって制御されるが、符号化されたピクチャ又は符号化された動画シーケンスの(復号化順序で)前の部分を復号化している間に得られたメタ情報や事前に再構築されてループフィルタリング処理されたサンプル値に応答してもよい。
【0050】
ループフィルタユニット(456)の出力はサンプルストリームであってもよく、将来のインターピクチャ予測に使用されるために、レンダリングデバイス(412)に出力されて参照ピクチャメモリ(457)に記憶され得る。
【0051】
特定の符号化されたピクチャは、完全に再構築されると、参照ピクチャとして将来の予測に使用され得る。例えば、現在のピクチャに対応する符号化されたピクチャは完全に再構築され、且つ符号化されたピクチャが、例えばパーサ(420)によって、参照ピクチャとして識別されると、現在のピクチャバッファ(458)が参照ピクチャメモリ(457)の一部になり得、そして、その後の符号化されたピクチャの再構築を開始する前に、新しい現在のピクチャバッファを新たに配分してもよい。
【0052】
動画デコーダ(410)は、例えばITU-T H.265提案書における所定のビデ圧縮技術のような規格に応じて復号化操作を実行してもよい。符号化された動画シーケンスが動画圧縮技術又は規格の構文及び動画圧縮技術又は規格に記録されているプロファイルの両方に準拠する意味で、符号化された動画シーケンスは、使用されているビデ圧縮技術又は規格で指定される構文に準拠することができる。具体的に、プロファイルは、ビデ圧縮技術又は規格で利用可能な全てのツールから、幾つかのツールをプロファイルのみで使用され得るツールとして選択してもよい。コンプライアンスについて、符号化された動画シーケンスの複雑さがビデ圧縮技術又は規格のレベルで限定される範囲内にあることも要求される。いくつかの場合に、レベルは、最大ピクチャのサイズ、最大フレームレート、最大再構築サンプルレート(例えば1秒あたりのメガサンプルを単位として測定する)、最大参照ピクチャサイズなどを制限する。いくつかの場合に、レベルによって設定される制限は、仮想参照デコーダ(HRD)の仕様及び符号化された動画シーケンスにおけるシグナリングされるHRDバッファの管理するメタデータによってさらに制限されてもよい。
【0053】
実施形態において、受信機(431)は、符号化された動画とともに、追加の(冗長な)データを受信してもよい。追加のデータは符号化された動画シーケンスの一部として含まれてもよい。動画デコーダ(410)は、追加のデータを使用してデータを正確に復号化し、及び/又は元の動画データをより正確に再構築してもよい。追加のデータは、例えば、時間、空間、又は信号対雑音比(SNR)拡張層、冗長スライス、冗長ピクチャ、前方誤り訂正符号などの形式であってもよい。
【0054】
図5は、本開示の実施形態による動画エンコーダ(503)のブロック図を示す。動画エンコーダ(503)は電子機器(520)に含まれる。電子機器(520)はトランスミッタ(540)(例えば、伝送回路システム)を含む。動画エンコーダ(503)は
図3に示す例における動画エンコーダ(303)の代わりに使用されてもよい。
【0055】
動画エンコーダ(503)は、動画ソース(501)(
図5に示す例における電子機器(520)の一部ではない)から動画サンプルを受信してもよく、当該動画ソース(501)は、動画エンコーダ(503)によって符号化されようとする(1つ又は複数の)動画画像をキャプチャすることができる。別の例において、動画ソース(501)は、電子機器(520)の一部である。
【0056】
動画ソース(501)は、動画エンコーダ(503)によって符号化されようとするデジタル動画サンプルストリーム形式であるソース動画シーケンスを提供してもよく、当該デジタル動画サンプルストリームは、任意の適切なビット深さ(例えば、8ビット、10ビット、12ビット…)、任意の色空間(例えば、BT.601YCrCB、RGB…)及び任意の適切なサンプリング構成(例えば、YCrCb 4:2:0、YCrCb 4:4:4)を有してもよい。メディアサービスシステムでは、動画ソース(501)は、先に準備された動画を記憶する記憶装置であってもよい。動画会議システムでは、動画ソース(501)は、ローカル画像情報を動画シーケンスとしてキャプチャするカメラであってもよい。動画データは、順番に見る際に動きが付与される複数の個別のピクチャとして提供されてもよい。ピクチャ自体は空間画素アレイとして編成されてもよく、なお、使用されているサンプリング構成、色空間などに応じて、各画素は、1つ又は複数のサンプルを含んでもよい。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明では、サンプルを中心に説明する。
【0057】
実施形態によれば、動画エンコーダ(503)は、リアルタイムで、又はアプリケーションによって要求される他の任意の時間制約の下で、ソース動画シーケンスのピクチャを、符号化された動画シーケンス(543)に符号化して圧縮してもよい。適切な符号化速度で実行することはコントローラ(550)の機能の1つである。いくつかの実施形態において、コントローラ(550)は、以下で説明する他の機能ユニットを制御し、これらのユニットに機能的に結合される。明確のために、結合は図示されていない。コントローラ(550)によって設置されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のλ値…)、ピクチャサイズ、ピクチャグループ(GOP)レイアウト、最大動きベクトル検索範囲などを含んでもよい。コントローラ(550)は、特定のシステム設計に対して最適化された動画エンコーダ(503)に属する他の適切な機能を有するように配置されてもよい。
【0058】
幾つかの実施形態において、動画エンコーダ(503)は、符号化ループで動作するように配置されている。非常に簡略化した説明として、例において、符号化ループは、ソースエンコーダ(530)(例えば、符号化しようとする入力ピクチャ及び参照ピクチャに基づいてシンボルストリームのようなシンボルを作成することを担当する)と、動画エンコーダ(503)に組み込まれた(ローカルの)デコーダ(533)とを含んでもよい。デコーダ(533)は、(リモート)デコーダがサンプルデータを作成する方法と同様にサンプルを作成するために、シンボルを再構築する(シンボルと符号化された動画ビットストリームとの間の圧縮は開示された主題で考慮される動画圧縮技術では無損失であるため)。再構築されたサンプルストリーム(サンプルデータ)を参照ピクチャメモリ(534)に入力する。シンボルストリームの復号化によって、デコーダの位置(ローカル又はリモート)に関係がないビットが正確である結果が得られるため、参照ピクチャメモリ(534)のコンテンツもローカルエンコーダとリモートエンコーダとの間でビットが正確である。つまり、エンコーダの予測部分は、デコーダが復号化中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして見なす。 このような参照ピクチャの同期性の基本原理(及び、たとえばチャネルエラーのために同期性を維持できない場合は結果として生じるドリフト)は、一部の関連技術でも使用される。
【0059】
「ローカル」デコーダ(533)の動作は、「リモート」デコーダ、例えば動画デコーダ(410)の動作と同じであってもよく、以上で
図4を参照しながら詳細に説明した。しかしながら、さらに、簡単に
図4を参照し、シンボルは、利用可能であり、且つ、エントロピーエンコーダ(545)及びパーサ(420)はシンボルを、符号化された動画シーケンスに無損失で符号化/復号化できる場合に、バッファメモリ(415)及びパーサ(420)を含める動画デコーダ(510)のエントロピー復号化部分は、ローカルデコーダ(533)で完全に実現されない場合がある。
【0060】
この場合、デコーダに存在する解析/エントロピー復号化以外の任意のデコーダ技術も、必然的に基本的に同じ機能形式で対応するエンコーダに存在することが観察されることができる。そのため、開示された主題は、デコーダの動作に着目する。エンコーダ技術は包括的に説明されたデコーダ技術の逆であるため、エンコーダ技術の説明を簡略化することができる。より詳しい説明は、特定の領域のみで必要であり、以下で提供される。
【0061】
動作中に、いくつかの例において、ソースエンコーダ(530)は、動き補償の予測的符号化を実行してもよく、動画シーケンスからの「参照ピクチャ」として指定された1つ又は複数の以前に符号化されたピクチャを参照することで入力ピクチャに対して予測的符号化を行う。このようにして、符号化エンジン(532)は入力ピクチャの画素ブロックと参照ピクチャの画素ブロックとの間の差異を符号化してもよく、当該参照ピクチャは、入力ピクチャへの予測参照として選択され得る。
【0062】
ローカル動画デコーダ(533)は、ソースエンコーダ(530)によって作成されたシンボルに基づいて、参照ピクチャとして指定され得るピクチャの符号化された動画データを復号化してもよい。符号化エンジン(532)の動作は、有利には非可逆処理であり得る。符号化された動画データが動画デコーダ(
図5、図示せず)で復号化され得る場合に、再構築された動画シーケンスは、通常、多少の誤差を伴うソース動画シーケンスのレプリカであり得る。ローカル動画デコーダ(533)は、参照ピクチャに対して動画デコーダによって実行され得る復号化処理をコピーし、再構築された参照ピクチャを参照ピクチャメモリ(534)に記憶してもよい。このようにして、エンコーダ(503)は、再構築された参照ピクチャの共通の内容を有するレプリカを、リモート動画デコーダによって得られる再構築された参照ピクチャとしてローカルに記憶することができる(伝送誤差がない)。
【0063】
予測器(535)は、符号化エンジン(532)に対して予測検索を実行することができる。つまり、符号化されようとする新しいピクチャについて、予測器(535)は、参照ピクチャメモリ(534)において、新しいピクチャの適切な予測参照として使用され得るサンプルデータ(候補参照画素ブロックとする)又は、例えば、参照ピクチャの動きベクトル、ブロック形状などの特定のメタデータを検索してもよい。予測器(535)は、適切な予測参照が見つけられるように、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合に、例えば、予測器(535)によって得られた検索結果によって特定されるように、入力ピクチャは、参照ピクチャメモリ(534)に記憶された複数の参照ピクチャから得られた予測参照を有してもよい。
【0064】
コントローラ(550)は、例えば、動画データを符号化するためのパラメータとサブグループパラメータの設置を含むソースエンコーダ(530)の符号化動作を管理することができる。
【0065】
上記の全ての機能ユニットの出力はエントロピーエンコーダ(545)においてエントロピー符号化されてもよい。エントロピーエンコーダ(545)は、例えばハフマン符号化、可変長符号化、算術符号化などの当業者に知られている技術に基づいて、各機能ユニットによって生成されたシンボルに対して可逆圧縮を行うことによって、シンボルを、符号化された動画シーケンスに変換する。
【0066】
トランスミッタ(540)は、通信チャネル(560)を介した伝送の準備をするように、エントロピーエンコーダ(545)によって作成された符号化された動画シーケンスをバッファリングすることができ、前記通信チャネルは、符号化された動画データを記憶する記憶装置へのハードウェア/ソフトウェアリンクであってもよい。トランスミッタ(540)は、動画エンコーダ(503)からの符号化された動画データを、伝送しようとする他のデータ、例えば、符号化されたオーディオデータ及び/又は補助データストリーム(ソースは図示せず)とともにマージしてもよい。
【0067】
コントローラ(550)は、エンコーダ(503)の動作を管理することができる。コントローラ(550)は、符号化中に、各符号化されたピクチャに、対応するピクチャに適用され得る符号化技術に影響する可能性がある特定の符号化されたピクチャタイプを指定することができる。例えば、通常、ピクチャを、以下のピクチャタイプのいずれかとして割り当てられ得る。
【0068】
イントラピクチャ(Iピクチャ)は、シーケンス内の任意の他のピクチャを予測ソースとして使用せずに符号化及び復号化できるピクチャであってもよい。一部の動画コーデックは、例えば、独立デコーダリフレッシュ(「IDR」)ピクチャを含む異なるタイプのイントラピクチャを許容する。当業者は、Iピクチャのそれらの変形及び対応する適用と特徴を知っている。
【0069】
予測ピクチャ(Pピクチャ)は、イントラ予測又はインター予測を使用して符号化及び復号化を行うピクチャであってもよく、当該イントラ予測又はインター予測は、多くとも1つの動きベクトル及び参照インデックスを使用して各ブロックのサンプル値を予測する。
【0070】
双方向予測ピクチャ(Bピクチャ)は、イントラ予測又はインター予測を使用して符号化と復号化を行うピクチャであってもよく、当該イントラ予測又はインター予測は、多くとも2つの動きベクトルと参照インデックスを使用して各ブロックのサンプル値を予測する。同様に、複数の予測ピクチャは、2つを超える参照ピクチャと関連するメタデータを使用して単一のブロックを再構築することができる。
【0071】
ソースピクチャは、一般的に、空間的に複数のサンプルブロックに細分化され(例えば、それぞれ4×4、8×8、4×8又は16×16のサンプルブロックである)、ブロックごとに符号化されてもよい。ブロックは、ブロックに適用される相応するピクチャの符号化割り当てによって特定される他の(すでに符号化された)ブロックを参照して予測的に符号化されることができる。例えば、Iピクチャのブロックについて、非予測的に符号化してもよく、又は、同じピクチャの符号化されたブロックを参照して予測的に符号化してもよい(空間的予測又はイントラ予測)。Pピクチャの画素ブロックは、1つの以前に符号化された参照ピクチャを参照して空間的予測又は時間的予測を介して予測的に符号化されてもよい。Bピクチャのブロックは、1つ又は2つの以前に符号化された参照ピクチャを参照して空間的予測又は時間的予測を介して非予測的に符号化されてもよい。
【0072】
動画エンコーダ(503)は、例えばITU-T H.265提案書の所定の動画符号化技術又は規格に基づいて、符号化操作を実行することができる。動画エンコーダ(503)は、その動作中に、入力動画シーケンスにおける時間的及び空間的冗長性を利用した予測符号化動作を含む様々な圧縮動作を実行することができる。従って、符号化された動画データは、使用されている動画符号化技術又は規格によって指定された構文に準拠し得る。
【0073】
実施形態において、トランスミッタ(540)は、符号化された動画とともに、追加のデータを伝送してもよい。ソースエンコーダ(530)は、このようなデータを、符号化された動画シーケンスの一部として含んでもよい。追加のデータは、時間的/空間的/SNR拡張層、例えば冗長なピクチャ、スライスのような他の形式の冗長データ、SEIメッセージ、VUIパラメータセットフラグメントなどを含んでもよい。
【0074】
動画は、時系列で複数のソースピクチャ(動画ピクチャ)としてキャプチャされてもよい。イントラピクチャ予測(通常、イントラ予測と簡略化される)は、所定のピクチャにおける空間的関連性を利用し、インターピクチャ予測はピクチャ間の(時間的又は他の)関連性を利用する。例おいて、符号化/復号化中の現在のピクチャと呼ばれる特定のピクチャはブロックに分割される。現在のピクチャにおけるブロックは、動画における、以前に符号化されまだバッファリングされている参照ピクチャにおける参照ブロックと類似している場合に、動きベクトルと呼ばれるベクトルによって現在のピクチャにおけるブロックを符号化してもよい。動きベクトルは参照ピクチャにおける参照ブロックを指し、また、複数の参照ピクチャを使用する場合に、動きベクトルは、参照ピクチャを認識する第3の次元を有してもよい。
【0075】
幾つかの実施形態において、双方向予測技術は、インターピクチャ予測に使用されてもよい。双方向予測技術によれば、例えば、動画における現在のピクチャよりも復号化順序で先行する(ただし、それぞれ表示順序で過去及び将来にあり得る)第1の参照ピクチャ及び第2の参照ピクチャである2つの参照ピクチャを使用する。第1の参照ピクチャにおける第1の参照ブロックを指す第1の動きベクトル、第2の参照ピクチャにおける第2の参照ブロックを指す第2の動きベクトルによって、現在のピクチャにおけるブロックを符号化してもよい。第1の参照ブロックと第2の参照ブロックとの組み合わせによって当該ブロックを予測してもよい。
【0076】
また、マージモード技術は、符号化の効率を向上させるために、インターピクチャ予測に使用することができる。
【0077】
本開示の幾つかの実施形態によれば、例えばインターピクチャ予測及びイントラピクチャ予測のような予測はブロックごとに実行される。例えば、HEVC規格に応じて、動画ピクチャシーケンスにおけるピクチャは、圧縮のための符号化ツリーユニット(CTU)に分割され、ピクチャにおけるCTUは、例えば、64×64画素、32×32画素又は16×16画素などの同じサイズを持っている。一般に、CTUは、3つの符号化ツリーブロック(CTB)、即ち、1つの輝度CTBと2つの色度CTBを含む。各CTUは、1つ又は複数の符号化ユニット(CU)に再帰的に四分木で分割されてもよい。例えば、64×64画素のCTUを1つの64×64画素のCU、又は、4つの32×32画素のCU、又は16個の16×16画素のCUに分割してもよい。例において、各CUを分析して、当該CUに使用される予測タイプ、例えば、インター予測タイプ又はイントラ予測タイプを特定する。時間的及び/又は空間的予測可能性に依存し、CUは1つ又は複数の予測ユニット(PU)に分割される。通常、各PUは輝度予測ブロック(PB)及び2つの色度PBを含む。実施形態において、符号化(符号化/復号化)中の予測動作は予測ブロックごとに実行される。輝度予測ブロックを予測ブロックとして使用する例において、予測ブロックは画素値(例えば、輝度値)の行列、例えば、8×8画素、16×16画素、8×16画素、16×8画素などを含む。
【0078】
図6は、本開示の他の実施形態による動画エンコーダ(603)の図を示す。動画エンコーダ(603)は、動画ピクチャシーケンスにおける現在の動画ピクチャ内のサンプル値の処理ブロック(例えば、予測ブロック)を受信し、処理ブロックを符号化された動画シーケンスの一部である符号化されたピクチャに符号化するように配置されている。例において、動画エンコーダ(603)は、
図3に示す例における動画エンコーダ(303)の代わりに使用される。
【0079】
HEVCの例では、動画エンコーダ(603)は、例えば8×8サンプルの予測ブロックなどである処理ブロックに使用されるサンプル値の行列を受信する。動画エンコーダ(603)は、例えばレート歪み最適化を使用して、イントラモード、インターモード又は双方向予測モードを使用して最適に前記処理ブロックを符号化するかを特定する。イントラモードで処理ブロックを符号化する場合に、動画エンコーダ(603)は、イントラ予測技術を使用して、処理ブロックを、符号化されたピクチャに符号化してもよく、インターモード又は双方向予測モードで処理ブロックを符号化する場合に、動画エンコーダ(603)は、インター予測又は双方向予測技術をそれぞれ使用して、処理ブロックを符号化されたピクチャに符号化してもよい。いくつかの動画符号化技術では、マージモードはインターピクチャ予測サブモードであってもよく、なお、予測器の外部の符号化された動きベクトル成分を使用せずに、1つ又は複数の動きベクトル予測器から動きベクトルを取得する。いくつかの他の動画符号化技術では、主題ブロックに適用される動きベクトル成分が存在し得る。例において、動画エンコーダ(603)は、例えば、処理ブロックのモードを特定するためのモード特定モジュール(図示せず)などの他のコンポーネントを含む。
【0080】
図6に示す例において、動画エンコーダ(603)は、
図6に示すように、一体に結合されたインターエンコーダ(630)、イントラエンコーダ(622)、残差計算器(623)、スイッチ(626)、残差エンコーダ(624)、汎用コントローラ(621)及びエントロピーエンコーダ(625)を含む。
【0081】
インターエンコーダ(630)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、当該ブロックと参照ピクチャにおける1つ又は複数の参照ブロック(例えば、前のピクチャ及び後のピクチャにおけるブロック)とを比較し、インター予測情報(例えば、動きベクトル、マージモード情報、インター符号化技術による冗長情報の説明)を生成し、インター予測情報に基づいて、任意の適切な技術を使用してインター予測結果(例えば、予測ブロック)を算出するように配置されている。いくつかの例では、参照ピクチャは、符号化された動画情報に基づいて復号化された復号化済み参照ピクチャである。
【0082】
イントラエンコーダ(622)は、現在のブロック(例えば、処理ブロック)のサンプルを受信し、いくつかの場合に、当該ブロックと、同一ピクチャにおける既に符号化されたブロックとを比較し、変換後に量子化係数を生成し、いくつかの場合に、(例えば、1つ又は複数のイントラ符号化技術に基づくイントラ予測方向情報に応じて)イントラ予測情報も生成するように配置されている。例において、イントラエンコーダ(622)は、さらにイントラ予測情報と同一のピクチャにおける参照ブロックに基づいてイントラ予測結果(例えば、予測ブロック)を算出する。
【0083】
汎用コントローラ(621)は、汎用制御データを特定し、当該汎用制御データに基づいて、動画エンコーダ(603)の他のコンポーネントを制御するように配置されている。例において、汎用コントローラ(621)は、ブロックのモードを特定し、当該モードに基づいて制御信号をスイッチ(626)に提供する。例えば、モードがイントラモードである場合に、汎用コントローラ(621)は、残差計算器(623)に使用されるイントラモード結果を選択するようにスイッチ(626)を制御するとともに、イントラ予測情報を選択してイントラ予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御し、モードがインターモードである場合に、汎用コントローラ(621)は、残差計算器(623)に使用されるインター予測結果を選択するようにスイッチ(626)制御するとともに、インター予測情報を選択しインター予測情報をビットストリームに含めるようにエントロピーエンコーダ(625)を制御する。
【0084】
残差計算器(623)は、受信したブロックと、イントラエンコーダ(622)又はインターエンコーダ(630)から選択した予測結果との差(残差データ)を算出するように配置されている。残差エンコーダ(624)は、残差データに基づいて、残差データを符号化することで変換係数を生成するように動作するように配置されている。例において、残差エンコーダ(624)は、残差データを空間領域から周波数領域に変換し、変換係数を生成するように配置されている。次に、変換係数は、量子化処理されて、量子化された変換係数を取得する。各実施形態において、動画エンコーダ(603)は残差デコーダ(628)をさらに含む。残差デコーダ(628)は、逆変換を実行し、復号化された残差データを生成するように配置されている。復号化された残差データは、適宜にイントラエンコーダ(622)及びインターエンコーダ(630)によって使用されてもよい。例えば、インターエンコーダ(630)は、復号化された残差データとインター予測情報に基づいて、復号化されたブロックを生成してもよく、イントラエンコーダ(622)は、復号化された残差データとイントラ予測情報に基づいて、復号化されたブロックを生成してもよい。復号化されたブロックを適切に処理して、復号化されたピクチャを生成し、いくつかの例において、前記復号化されたピクチャは、メモリ回路(図示せず)にバッファリングし、参照ピクチャとして使用される。
【0085】
エントロピーエンコーダ(625)は、符号化されたブロックを含むようにビットストリームをフォーマットするように配置されている。エントロピーエンコーダ(625)は、例えばHEVC規格のような適切な規格に従う様々な情報を含むように配置されている。例において、エントロピーエンコーダ(625)は、汎用制御データ、選択された予測情報(例えば、イントラ予測情報又はインター予測情報)、残差情報及び他の適切な情報をビットストリームに含めるように配置されている。開示された主題によれば、インターモード又は双方向予測モードのマージサブモードでブロックを符号化する場合に残差情報がないことに留意されたい。
【0086】
図7は、本開示の他の実施形態による動画デコーダ(710)の図を示す。動画デコーダ(710)は、符号化された動画シーケンスの一部である符号化されたピクチャを受信し、符号化されたピクチャを復号化することで、再構築されたピクチャを生成するように配置されている。例において、動画デコーダ(710)は、
図3に示す例における動画デコーダ(310)の代わりに使用される。
【0087】
図7に示す例において、動画デコーダ(710)は、
図7に示すように、一体に結合されたエントロピーデコーダ(771)、インターデコーダ(780)、残差デコーダ(773)、再構築モジュール(774)及びイントラデコーダ(772)を含む。
【0088】
エントロピーデコーダ(771)は、符号化されたピクチャに基づいて、特定のシンボルを再構築するように配置されてもよく、これらのシンボルは、符号化されたピクチャを構成する構文要素を表す。そのようなシンボルは、例えば、ブロックを符号化するためのモード(例えば、イントラモード、インターモード、双方向予測モード、インターモードと双方向予測モードとのマージサブモード又は別のサブモード)、イントラデコーダ(772)又はインターデコーダ(780)の予測に使用される特定のサンプル又はメタデータとして認識され得る予測情報(例えば、イントラ予測情報又はインター予測情報)、例えば量子化変換係数の形である残差情報などを含んでもよい。例において、予測モードがインター又は双方向予測モードである場合に、インター予測情報をインターデコーダ(780)に提供し、予測タイプがイントラ予測タイプである場合に、イントラ予測情報をイントラデコーダ(772)に提供する。残差情報は逆量子化され、残差デコーダ(773)に提供されてもよい。
【0089】
インターデコーダ(780)は、インター予測情報を受信し、インター予測情報に基づいてインター予測結果を生成するように配置されている。
【0090】
イントラデコーダ(772)はイントラ予測情報を受信し、イントラ予測情報に基づいて予測結果を生成するように配置されている。
【0091】
残差デコーダ(773)は、逆量子化を実行して逆量子化された変換係数を抽出し、逆量子化された変換係数を処理して残差を周波数領域から空間領域に変換するように配置されている。残差デコーダ(773)は、特定の制御情報(量子化パラメータQPを含む)も必要とする場合があり、その情報はエントロピーデコーダ(771)から提供されてもよい(少量の制御情報に過ぎないため、データパスが図示されていない)。
【0092】
再構築モジュール(774)は、空間領域において、残差デコーダ(773)から出力された残差と予測結果(場合によってインター予測モジュール又はイントラ予測モジュールによって出力される)を組み合わせて、再構築されたブロックを形成するように配置され、再構築されたブロックは再構築されたピクチャの一部であってもよく、再構築されたピクチャは、再構築された動画の一部であってもよい。視覚的品質を改善するために、デブロッキング操作などの他の適切な操作を実行できることに留意されたい。
【0093】
任意の適切な技術を使用して動画エンコーダ(303)、動画エンコーダ(503)、動画エンコーダ(603)、及び動画デコーダ(310)、動画デコーダ(410)、動画デコーダ(710)を実現し得ることに留意されたい。実施形態において、1つ又は複数の集積回路を使用して動画エンコーダ(303)、動画エンコーダ(503)、動画エンコーダ(603)、及び動画デコーダ(310)、動画デコーダ(410)、動画デコーダ(710)を実現してもよい。他の実施形態において、ソフトウェア命令を実行する1つ又は複数のプロセッサを使用して動画エンコーダ(303)、動画エンコーダ(503)、動画エンコーダ(603)、及び動画デコーダ(310)、動画デコーダ(410)、動画デコーダ(710)を実現してもよい。
【0094】
インター予測において、参照ピクチャから現在のブロックの参照ブロックを取得する。特定のコーデックの実現では、参照ブロックのロードに時間がかかり、ハードウェア機能によって制限される場合がある。現在のブロックのMVがサブ画素精度(たとえば、分数MV)を持っている場合、現在のブロックを予測するために、コーデックのメモリに追加の画素をロードする必要がある場合がある。 例えば、
図8に示すように、8タップ補間フィルタを用いて現在のピクチャ(801)内の8x8輝度の現在のブロック(802)を予測するために、参照ピクチャ(803)内の15x15参照ブロック(804)をメモリにロードし、メモリから取得する必要がある場合がある。 また、双方向予測モードが適用されている場合及び/又は現在のピクチャに複数の小ブロックが含まれている場合、参照ブロックのロード及び/又は取得に使用されるメモリ帯域幅がさらに高くなる可能性がある。
【0095】
本開示の各態様は、小ブロックの参照ブロックをロード/取得するために使用されるメモリ帯域幅を削減するための改善技術を含む。
【0096】
本開示の各態様によれば、現在のブロックのブロック幅又はブロック高さが第1の閾値よりも小さい場合、ブロック幅とブロック高さの両方が第1の閾値よりも小さい場合、又はブロック幅が第1の閾値よりも小さく且つブロック高さが第2の閾値よりも小さい場合に、現在のブロックは「小ブロック」と見なされ得る。
【0097】
本開示の各態様によれば、現在のブロックが小ブロックと見なされ、現在のブロックが分数のMVを有する場合、分数のMVは、現在のブロックの予測に使用される前に整数MVに丸めることができる。一実施形態では、各方向(例えば、水平又は垂直)について、分数MVは、この方向に沿って最も近い整数MVに丸めることができる。たとえば、分数MV(4.6、3.2)は(5、3)に丸められる。別の実施形態では、各方向について、分数MVはゼロに向かって丸めることができる。 たとえば、分数MV(4.6、3.2)は(4、3)に丸められる。つまり、分数MV(4.6、3.2)の各方向は、それぞれの整数部分に切り捨てられる。
【0098】
幾つかの実施形態において、元の丸められていない分数MVをMVバッファに格納することができるので、それは、より高い精度で他のブロックの空間的又は時間的MV予測子として使用することができる。
【0099】
幾つかの実施形態において、上記の丸め操作は、ブロックサイズ及び色成分の特定の組み合わせ、例えば4x4輝度ブロック、4x8輝度ブロック、8x4輝度ブロック、2x2輝度ブロック、又は4x4輝度ブロックなどにのみ適用されることに留意されたい。
【0100】
本開示の各態様によれば、現在のブロックが小ブロックと見なされ且つ現在のブロックが分数のMVを有する場合、ブロックサイズに関係する補間フィルタは、現在のブロックの予測に使用することができる。 ブロックサイズに関係する補間フィルタの場合、フィルタタップはブロックサイズ(例えば、ブロック幅やブロック高さなど)に依存するため、タップの短いフィルタを小ブロックに使用できる。
【0101】
実施形態において、CUレベル(例えば、ブロックレベル)でブロックサイズに関係するフィルタを特定することができる。 たとえば、すべてのサブブロックは、サブブロックに基づくモード(たとえば、アフィンモード)でCUレベルで特定された同じフィルタを共有する。他の実施形態では、ブロックサイズに関係するフィルタは、非サブブロックモード(例えば、アフィンモードではない)に適用することができる。
【0102】
実施形態において、ブロックサイズに関係するフィルタは、輝度ブロックのブロック幅及びブロック高さの両方が閾値よりも小さい場合に、輝度ブロックに適用することができる。 例において、閾値は8であってもよい。
【0103】
実施形態において、ブロックサイズに関係するフィルタは、色度ブロックのブロック幅及びブロック高さの両方が閾値よりも小さい場合に、色度ブロックに適用することができる。 例において、閾値は4であってもよい。
【0104】
実施形態において、水平補間フィルタ及び垂直補間フィルタは、異なるフィルタタップを有することができる。例において、水平補間フィルタのフィルタタップはブロック幅によって特定でき、垂直補間フィルタのフィルタタップはブロック高さによって特定できる。
【0105】
実施形態において、水平補間フィルタ及び垂直補間フィルタは、同じフィルタタップ(又は長さ)を有することができる。フィルタタップは、現在のブロックのブロック幅とブロック高さの小さい方で特定できる。たとえば、4x8ブロックの場合、フィルタタップは、ブロックの高さ(8)ではなく、ブロックの幅(4)で特定できる。
【0106】
実施形態において、ブロックサイズに関係する補間フィルタは、一方向(例えば、垂直方向)にのみ適用することができる。一例では、垂直補間フィルタはブロックサイズに関係するが、水平補間フィルタはブロックサイズに関せず、垂直補間フィルタのフィルタタップはブロックの高さで特定できる。
【0107】
実施形態において、ブロック幅又はブロック高さが閾値Tよりも小さい場合、長さがN1の補間フィルタを使用することができる。それ以外の場合は、長さがN2の補間フィルタを使用できる。たとえば、T = 8、N1 = 4、及びN2 = 8である。
【0108】
実施形態において、ブロック幅又はブロック高さが第1の閾値T1よりも小さい場合、長さがN1の第1の補間フィルタを使用することができる。ブロック幅又はブロック高さが第2の閾値T2よりも小さく第1の閾値T1よりも大きい場合、長さがN2の第2の補間フィルタを使用することができる。それ以外の場合は、長さがN3の第3の補間フィルタを使用できる。たとえば、T1 = 4、T2 = 8、N1 = 2、N2 = 4、及びN3 = 8である。
【0109】
幾つかの実施形態において、N個のブロックサイズ閾値がある場合、垂直方向又は水平方向に(N + 1)個の補間フィルタ(N> 2)使用することができる。 実施形態において、3つのブロックサイズ閾値(T1 <T2 <T3)、すなわち、N = 3が存在する。 この場合、ブロック幅又はブロック高さがT1よりも小さい場合、長さがN1の第1の補間フィルタを垂直方向又は水平方向に使用することができる。ブロック幅又はブロック高さがT2よりも小さくT1よりも大きい場合、長さがN2の第2の補間フィルタを使用できる。ブロック幅又はブロック高さがT3よりも小さくT2よりも大きい場合、長さがN3の第3の補間フィルタを使用できる。 それ以外の場合は、長さがN4の第4の補間フィルタを使用できる。
【0110】
実施形態において、同じ規則を、輝度及び色度ブロックの補間フィルタに適用することができる。他の実施形態では、異なる規則を輝度ブロック及び色度ブロックの補間フィルタに適用することができる。 例では、色度ブロックの場合、水平及び垂直補間フィルタは異なるタップを使用できるが、輝度ブロックの水平及び垂直補間フィルタは同じタップを使用できる。
【0111】
本開示は、また、現在のブロックが小ブロックと見なされ且つ現在のブロックが分数のMVを有する場合に、整数MV、ブロックサイズに関係する補間フィルタ、及びブロックサイズに関係しない補間フィルタのうちの1つを選択する技術を提出する。ブロックサイズに関係しない補間フィルタのフィルタタップは、HEVC又はVVC規格で使用される補間フィルタなどのブロックサイズに依存しないことに留意されたい。
【0112】
実施形態において、整数MV、ブロックサイズに関係する補間フィルタ、又はブロックサイズに関係しない補間フィルタの選択は、現在のピクチャのピクチャ解像度に依存することができる。
【0113】
実施形態において、以下の条件の少なくとも1つが真である場合に、整数MV及び/又はブロックサイズに関する補間フィルタを選択して、現在のブロックを予測する:(1)現在のピクチャのピクチャ幅が閾値Twidth以下である、(2)現在のピクチャのピクチャ高さが閾値Theight以上である、(3)現在のピクチャの画素数が閾値Tarea以上である、(4)フレームレートが閾値Thz以上である、(5)充填率(たとえば、1秒あたりの画素数)が閾値Ttotalpixel以上である。それ以外の場合は、ブロックサイズに関係しない補間フィルタを選択して現在のブロックを予測する。
【0114】
実施形態において、整数MV、ブロックサイズに関する補間フィルタ、又はブロックサイズに関係しない補間フィルタの選択は、予測情報(例えば、高レベルの構文)に含まれる1つ又は複数の制御フラグに依存することができる。例えば、1つ又は複数の制御フラグは、シーケンスレベル(例えば、シーケンスパラメータセット(SPS))、ピクチャレベル(例えば、ピクチャパラメータセット(PPS))、タイルグループヘッダ、タイルヘッダ、スライスヘッダー、又はブロックレベルでシグナリングされてもよい。整数MV、ブロックサイズに関係する補間フィルタ、及びブロックサイズに関係しない補間フィルタのいずれかを、シグナリングされる制御フラグに従って現在のブロックに適用できる。たとえば、1つ又は複数の制御フラグがブロックサイズに関係しない補間フィルタを使用することを指示する場合、ブロックサイズに関係しない補間がシグナリングによって示される小ブロックに適用される。別の例では、1つ又は複数の制御フラグが、ブロックサイズに関係する補間フィルタを使用することを指示する場合、ブロックサイズに関係する補間フィルタが、シグナリングによって示される小ブロックに適用される。
【0115】
実施形態において、整数MV、ブロックサイズに関係する補間フィルタ、又はブロックサイズに関係しない補間フィルタの選択は、例えば、現在のピクチャで復号されている画素領域におけるメモリ帯域幅の使用量に依存することができる。たとえば、まず、ブロックサイズに関係しない補間フィルタを画素領域に適用し、カウンタを使用して、ブロックサイズに関係しない補間フィルタを使用して動き補償を行うことで消費されるメモリ帯域幅を計算できる。ブロックサイズに関係する補間フィルタを使用するかどうかは、カウンタに依存する可能性がある。カウンタによって計算された消費メモリ帯域幅が目標帯域幅に達し且つまだ画素領域で復号化プロセスを完了していない場合、ブロックサイズに関係する補間フィルタが、まだ復号化されている残りの画素領域に適用される。いくつかの実施形態では、カウンタは、新しい画素領域について、0にリセットされ得る。画素領域は、符号化ツリーユニット(CTU)、CTU行、タイル、タイルグループ、波面、及び一定数の画素などであり得る。予測情報において、画素領域の情報、例えば、SPS、PPSなどをシグナリングされてもよい。
【0116】
図9は、本開示の幾つかの実施形態による例示的なプロセス(900)を概説するフローチャートを示す。各実施形態において、プロセス(900)は、処理回路システムによって実行され、処理回路システムは、例えば、端末装置(210)、(220)、(230)及び(240)における処理回路システム、動画エンコーダ(303)の機能を実行する処理回路システム、動画デコーダ(310)の機能を実行する処理回路システム、動画デコーダ(410)の機能を実行する処理回路システム、イントラ予測モジュール(452)の機能を実行する処理回路システム、動画エンコーダ(503)の機能を実行する処理回路システム、予測器(535)の機能を実行する処理回路システム、イントラエンコーダ(622)の機能を実行する処理回路システム、イントラデコーダ(772)の機能を実行する処理回路システムなどである。いくつかの実施形態において、プロセス(900)はソフトウェア命令によって実現されるため、処理回路システムがソフトウェア命令を実行する場合、処理回路システムはプロセス(900)を実行する。
【0117】
プロセス(900)は、通常、ステップ(S901)から開始し、ステップ(S901)において、プロセス(900)は、現在のピクチャにおける現在のブロックの予測情報を復号化し、当該現在のピクチャは符号化された動画シーケンスの一部である。予測情報は、現在のブロックに関する分数動きベクトルを指示する。次に、プロセス(900)はステップ(S902)に進む。
【0118】
ステップ(S902)において、プロセス(900)は、現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いかどうかを特定する。現在のブロックのブロック幅とブロック高さのうちの一つが第1の閾値よりも低いと特定された場合に、プロセス(900)は、ステップ(S903)に進む。
【0119】
ステップ(S903)において、プロセス(900)は、現在のブロックに対して整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。第1の補間フィルタはブロックサイズに関係する補間フィルタであり、第2の補間フィルタはブロックサイズに関係しない補間フィルタである。次に、プロセス(900)はステップ(S904)に進む。
【0120】
ステップ(S904)において、プロセス(900)は、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタから選択された一つに基づいて現在のブロックを再構築する。現在のブロックを構築した後に、プロセス(900)は終了する。
【0121】
実施形態において、プロセス(900)は、現在のブロックのブロック幅とブロック高さの両方が第1の閾値よりも小さいかどうかを特定する。現在のブロックのブロック幅とブロック高さの両方が第1の閾値よりも小さいと特定された場合に、プロセス(900)は、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0122】
実施形態において、プロセス(900)は、現在のブロックのブロック幅が第1の閾値よりも小さいかどうかを特定し、現在のブロック的ブロック高さが第2の閾値よりも小さいかどうかを特定する。現在のブロックのブロック幅が第1の閾値よりも小さいと特定され現在のブロックのブロック高さが第2の閾値よりも小さいと特定された場合に、プロセス(900)は、現在のブロックに対して整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0123】
実施形態において、プロセス(900)は、現在のピクチャのピクチャ解像度に基づいて、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0124】
実施形態において、プロセス(900)は、ピクチャの幅、ピクチャの高さ、現在のピクチャの画素数、フレームレート及び現在のピクチャの充填率のうちの一つに基づいて、現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。
【0125】
実施形態において、プロセス(900)は、予測情報に含まれる1つ又は複数の制御フラグに基づいて現在のブロックに対して、整数動きベクトル、第1の補間フィルタ及び第2の補間フィルタのうちの一つを選択する。1つ又は複数の制御フラグは、シーケンスレベル、ピクチャレベル、タイルレベル、スライスレベル及びブロックレベルのうちの少なくとも1つでシグナリングされる。
【0126】
実施形態において、プロセス(900)は、現在の画像で復号されている画素領域のメモリ帯域幅使用量に基づいて、現在のブロックの整数動きベクトル、第1の補間フィルタ、及び第2の補間フィルタのうちの1つを選択する メモリ帯域幅の使用量が目標帯域幅に達する前に、プロセス(900)は、現在のブロックの第2の補間フィルタを選択する。メモリ帯域幅の使用量がターゲット帯域幅に到達し且つ画素領域がまだデコードされている後、プロセス(900)は、現在のブロックに対して、整数動きベクトルと第1の補間フィルタのうちの1つを選択する。
【0127】
上記の技術は、コンピュータ可読命令によってコンピュータソフトウェアとして実現され、1つ又は複数のコンピュータ可読媒体に物理的に記憶される。例えば、
図10は開示された主題のいくつかの実施形態を実現するのに適したコンピュータシステム(1000)を示す。
【0128】
任意の適切なマシンコード又はコンピュータ言語を使用してコンピュータソフトウェアを符号化することができ、機械コード又はコンピュータ言語がアセンブル、コンパイル、リンクなどのメカニズムを介して命令を含むコードを作成することができ、当該命令は、1つ又は複数のコンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって直接的に実行されるか、又は解釈、マイクロコード実行などによって実行されることができる。
【0129】
命令は、例えばパーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲーム機器、モノのインターネット機器などを含む、様々なタイプのコンピュータ又はそのコンポーネントで実行されることができる。
【0130】
図10に示すコンピュータシステム(1000)に関するコンポーネントは本質的に例示であり、本開示の実施形態を実現するためのコンピュータソフトウェアの使用範囲又は機能に制限を加えることを意図するものではない。コンポーネントの配置はコンピュータシステム(1000)の例示的な実施例に示されるコンポーネントのいずれか又はそれらの組み合わせに関する依存性又は要件を有するものとして解釈されるべきではない。
【0131】
コンピュータシステム(1000)は、いくつかのヒューマンマシンインターフェース入力デバイスを含み得る。このようなヒューマンマシンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの移動)、オーディオ入力(例えば、音声、拍手)、視覚入力(例えば、姿勢)、嗅覚入力(図示せず)による1つ又は複数の人間のユーザの入力に応答してもよい。ヒューマンマシンインターフェースデバイスは、例えば、オーディオ(例えば、音声、音楽、環境音)、ピクチャ(例えば、スキャンした画像、静的画像撮影装置から取得された写真画像)、動画(例えば、2次元動画、ステレオ動画を含む3次元動画)などの、人間の意識的な入力に必ずしも直接関連しない特定のメディアをキャプチャするために使用されてもよい。
【0132】
ヒューマンマシンインターフェース入力デバイスには、キーボード(1001)、マウス(1002)、トラックパッド(1003)、タッチスクリーン(1010)、データグローブ(図示せず)、ジョイスティック(1005)、マイク(1006)、スキャナー(1007)、カメラ(1008)のうちの1つ又は複数(それぞれが1つのみ図示される)を含んでもよい。
【0133】
コンピュータシステム(1000)はさらに、いくつかのヒューマンマシンインターフェース出力デバイスを含んでもよい。このようなヒューマンマシンインターフェース出力デバイスは、例えば、触覚出力、音、光、及び嗅覚/味覚を通じて、1つ又は複数の人間のユーザの感覚を刺激することができる。このようなヒューマンマシンインターフェース出力デバイスには、触覚出力デバイス(例えば、タッチパネル(1010)、データグローブ(図示せず)、又はジョイスティック(1005)による触覚フィードバックデバイスであり、入力デバイスとして機能しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカー(1009)、ヘッドフォン(図示せず))、視覚出力デバイス(例えば、スクリーン(1010)であり、CRTスクリーン、LCDスクリーン、プラズマスクリーン、OLEDスクリーンを含み、各スクリーンはタッチスクリーン入力機能がある場合とない場合、触覚フィードバック機能がある場合とない場合があり、そのうちのいくつかは、例えば、ステレオ画像出力、仮想現実眼鏡(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)により2次元の視覚出力又は3次元以上の出力、及びプリンター(図示せず)を出力できる場合がある。これらの視覚出力デバイス(スクリーン(1010)など)は、グラフィックアダプタ(1050)を介してシステムバス(1048)に接続することができる。
【0134】
コンピュータシステム1000は、さらに、人間ユーザがアクセス可能な記憶装置及びそれらの関連する媒体を含んでもよく、例えば、CD/DVDを有する又は媒体(1021)に類似するCD/DVD ROM/RW(1020)の光学媒体、サムドライブ(1022)、リムーバブルハードドライブ又はソリッドステートドライブ(1023)、例えば、磁気テープやフロッピーディスク(図示せず)のようなレガシー磁気媒体、例えば、セキュリティドングル(図示せず))のような専用ROM/ASIC/PLDに基づくデバイスなどを含んでもよい。
【0135】
当業者はまた、ここで開示される主題に関連して使用される「コンピュータ可読媒体」という用語は、伝送媒体、搬送波、又は他の一時的な信号が含まれていないことを理解すべきである。
【0136】
コンピュータシステム(1000)はまた、1つ又は複数の通信ネットワーク(1055)へのネットワークインターフェース(1054)を含むことができる。 1つ又は複数の通信ネットワーク(1055)は、例えば、無線、有線、光であり得る。1つ又は複数の通信ネットワーク(1055)は、さらに、ローカル、広域、メトロポリタン、車両及び工業、リアルタイム、遅延耐性などであり得る。1つ又は複数の通信ネットワーク(1055)の例には、例えば、イーサネットのローカルエリアネットワーク、無線LAN、GSM、3G、4G、5G、LTEなどのセルラーネットワーク、ケーブルテレビ、衛星TV、及び地上放送TVを含む有線又は無線広域デジタルネットワーク、CANBusを含む車両及び工業ネットワークなどを含む。 特定のネットワークは、通常、特定の汎用データポート又はペリフェラルバス(1049)の外部ネットワークインターフェースアダプタ(たとえば、コンピュータシステムのUSBポート)に接続された必要がある。 他のネットワークは、通常、以下に説明するようにシステムバスに接続することによってコンピュータシステム(1000)のコアに統合される(例えば、PCコンピュータシステムへのイーサネットインターフェース又はスマートフォンコンピュータシステムへのセルラーネットワークインターフェース)。これらのネットワークのいずれかを使用して、コンピュータシステム(1000)は他のエンティティと通信できる。このような通信は、単方向、受信のみ(たとえば、テレビ放送)、単方向の送信のみ(たとえば、CANbusから特定のCANbusデバイスへ)、又は双方向、たとえば、ローカル又はワイドエリアデジタルネットワークを使用して他のコンピュータシステムまでである。上記のようにこれらのネットワークとネットワークインターフェースのそれぞれで特定のプロトコルとプロトコルスタックを使用できる。
【0137】
上記のヒューマンマシンインターフェースデバイス、ヒューマンアクセス可能な記憶装置、及びネットワークインターフェースは、コンピュータシステム(1000)のコア(1040)に取り付けることができる。
【0138】
コア(1040)には、1つ又は複数の中央処理装置(CPU)(1041)、グラフィックス処理ユニット(GPU)(1042)、フィールドプログラマブルゲートアレイ(FPGA)(1043)の形の専用なプログラマブル処理ユニット、特定のタスクに使用されるハードウェアアクセラレータ(1044)などを含んでもよい。これらのデバイス、読み取り専用メモリ(ROM)(1045)、ランダムアクセスメモリ(RAM)(1046)、例えばユーザがアクセスできない内部ハードドライブ、SSDなどの内部大容量ストレージ(1047)はシステムバス(1048)を介して接続されてもよい。一部のコンピュータシステムにおいて、システムバス(1048)に1つ又は複数の物理プラグの形でアクセスして、追加のCPU、GPUなどにより拡張を実現することができる。周辺機器は、コアのシステムバス(1048)に直接的、又は周辺バス(1049)を介して接続することができる。周辺バスのアーキテクチャは、PCI、USBなどを含む。
【0139】
CPU(1041)、GPU(1042)、FPGA(1043)、及びアクセラレータ(1044)は、組み合わせて上記のコンピュータコードを構成することができる特定の命令を実行してもよい。当該コンピュータコードは、ROM(1045)又はRAM(1046)に記憶されてもよい。一時的なデータもRAM(1046)に記憶されてもよく、永続的なデータは、例えば内部大容量記憶装置(1047)に記憶されてもよい。バッファメモリにより、記憶装置のうちのいずれかへの高速ストレージと検索を実現することができ、当該バッファメモリは、1つ又は複数のCPU(1041)、GPU(1042)、大容量記憶装置(1047)、ROM(1045)、RAM(1046)などと密接に関連することができる。
【0140】
コンピュータ可読媒体は、コンピュータが実現する様々な動作を実行するためのコンピュータコードをその上に有してもよい。媒体とコンピュータコードとは、本開示の目的のために、特別に設計及び構築される媒体とコンピュータコードであってもよいし、又はそれらは、コンピュータソフトウェアの当業者によって知られ且つ利用可能なタイプのものであってもよい。
【0141】
例として限定ではなく、アーキテクチャを有するコンピュータシステム(1000)、特にコア(1040)は、プロセッサ(CPU、GPU、FPGA、アクセラレータなどを含む)が1つ又は複数の有形コンピュータ可読媒体に実施されるソフトウェアを実行する結果として提供される機能を提供することができる。このようなコンピュータ可読媒体は、以上に前記したユーザがアクセス可能な大容量記憶装置、及びコア(1040)のいくつかの非一時的な性質を有するストレージ例えばコア内部大容量記憶装置(1047)又はROM(1045)に関連する媒体であってもよい。本開示の様々な実施形態を実現するソフトウェアはこのようなデバイスに記憶され、コア(1040)によって実行されてもよい。特定のニーズに応じて、コンピュータ可読媒体には1つ又は複数のメモリ又はチップが含まれてもよい。ソフトウェアは、コア(1040)、特にそのうちのプロセッサ(CPU、GPU、FPGAなどを含む)に、本明細書で説明される特定のプロセス又は特定のプロセスの特定の部分を実行させ、ソフトウェアによって定義されたプロセスによりRAM(1046)に記憶されるデータ構造を定義し、このようなデータ構造を修正することを含む。さらに又は代わりとして、コンピュータシステムは、ロジックハードワイヤードによって提供される、又は、他の方式で回路(例えば、アクセラレータ(1044)に具現化される機能を提供することができ、当該回路は、ソフトウェアの代わりとして、又はソフトウェアとともに運行することで、本明細書で説明される特定のプロセス又は特定のプロセスの特定部分を実行できる。適切な場合、ソフトウェアに対する言及にはロジックが含まれ、逆に、ロジックに対する言及にはソフトウェアが含まれてもよい。コンピュータ可読媒体への言及は、必要に応じて、実行のためのソフトウェアを格納する回路(例えば、集積回路(IC)など)、実行のための論理を実施する回路、又はその両方を包含することができる。本開示は、ハードウェアとソフトウェアとの任意の適切な組み合わせを包含する。
【0142】
この開示は、いくつかの例示的な実施例を説明したが、本開示の範囲内に含まれる変更、置換、及び様々な代替均等物が存在する。従って、本明細書では明示的に示されていないか、又は記載されていないが、本開示の原理を具現化し、従って本開示の精神及び範囲内にある多数のシステム及び方法を当業者が考案できることが認識される。
付録A:頭字語
AMVP:高度動きベクトル予測
ASIC:特定用途向け集積回路
BMS:ベンチマークセット
BS:境界強度
BV:ブロックベクトル
CANBus:コントローラエリアネットワークバス
CD:コンパクトディスク
CPR:現在のピクチャ参照
CPU:中央処理ユニット
CRT:陰極線管
CTB:符号化ツリーブロック
CTU:符号化ツリーユニット
CU:符号化ユニット
DPB:デコーダピクチャバッファ
DVD:デジタル動画ディスク
FPGA:フィールドプログラマブルゲートアレイ
GOP:ピクチャグループ
GPU:グラフィックス処理ユニット
GSM:モバイル通信のグローバルシステム
HDR:ハイダイナミックレンジ
HEVC:高効率動画符号化
HRD:仮想参照デコーダ
IBC:イントラブロックコピー
IC:集積回路
JEM:共同探査モデル
LAN:ローカルネットワーク
LCD:液晶ディスプレイ
LIC:ローカル照明補償
LTE:長期的な進化
MR-SAD:平均-削除絶対差の合計
MR-SATD:平均-削除絶対変換差の合計
MV:動きベクトル
OLED:有機発光ダイオード
PB:予測ブロック
PCI:周辺コンポーネント相互接続
PLD:プログラマブルロジックデバイス
PPS:ピクチャパラメータセット
PU:予測ユニット
RAM:ランダムアクセスメモリ
ROM:読み取り専用メモリ
SCC:スクリーンコンテンツ符号化
SDR:標準動的範囲
SEI:補助拡張情報
SMVP:空間動きベクトル予測器
SNR:信号対雑音比
SPS:シーケンスパラメータ集
SSD:ソリッドステートドライブ
TMVP:時間動きベクトル予測器
TU:変換ユニット
USB:ユニバーサルシリアルバス
VUI:動画ユーザビリティ情報
VVC:多用途動画符号化
【国際調査報告】