(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-11-04
(54)【発明の名称】映像信号の行列加重イントラ予測
(51)【国際特許分類】
H04N 19/11 20140101AFI20221027BHJP
H04N 19/157 20140101ALI20221027BHJP
H04N 19/176 20140101ALI20221027BHJP
【FI】
H04N19/11
H04N19/157
H04N19/176
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2021577272
(86)(22)【出願日】2020-07-28
(85)【翻訳文提出日】2022-02-24
(86)【国際出願番号】 US2020043839
(87)【国際公開番号】W WO2021040941
(87)【国際公開日】2021-03-04
(32)【優先日】2019-08-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】リ,シンウェイ
(72)【発明者】
【氏名】リャオ,ル-リン
(72)【発明者】
【氏名】チェン,ヤメイ
(72)【発明者】
【氏名】チェン,ジエ
(72)【発明者】
【氏名】イエ,ヤン
(72)【発明者】
【氏名】ルオ,ジャンコン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159TA31
5C159TB08
5C159TC26
5C159TC42
5C159TD12
5C159UA02
5C159UA05
(57)【要約】
本開示は、単純化された行列加重イントラ予測を行うための方法を提供する。この方法は、標的ブロックの分類を決定することと、その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することとを含み得、標的ブロックの分類を決定することは、標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定することを含む。
【特許請求の範囲】
【請求項1】
映像コンテンツを処理するためのコンピュータ実施方法であって、
標的ブロックの分類を決定することと、
前記分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を含み、前記標的ブロックの前記分類を決定することは、
前記標的ブロックが4×4のサイズを有することに応じて、前記標的ブロックが第1のクラスに属すると決定すること、又は
前記標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、前記標的ブロックが第2のクラスに属すると決定すること
を含む、コンピュータ実施方法。
【請求項2】
前記MIP信号を生成することは、
入力ベクトル、行列、及び前記標的ブロックの前記分類に基づいて、前記標的ブロックのための第1のイントラ予測信号を生成することと、
前記MIP信号を生成するために、前記第1のイントラ予測信号を使用して前記標的ブロックに対してバイリニア補間を行うことと
を含む、請求項1に記載の方法。
【請求項3】
入力ベクトルを生成するために、前記標的ブロックの前記分類に従って前記標的ブロックの隣接する再構築されたサンプルを平均化することを更に含む、請求項1に記載の方法。
【請求項4】
前記入力ベクトルは、前記標的ブロックが前記第1のクラスに属する場合には4×1のサイズを有し、又は前記標的ブロックが前記第2のブロックに属する場合には8×1のサイズを有する、請求項2に記載の方法。
【請求項5】
前記行列は、前記標的ブロックの前記分類及びMIPモードインデックスに従って行列の組から選択される、請求項2に記載の方法。
【請求項6】
前記第1のイントラ予測信号は、前記行列及び前記入力ベクトルに対して行列ベクトル乗算を行うことによって生成される、請求項5に記載の方法。
【請求項7】
前記第1のイントラ予測信号は、前記行列に関連する1つ又は複数のオフセットに基づいて生成される、請求項6に記載の方法。
【請求項8】
前記1つ又は複数のオフセットは、参照表内の前記行列のインデックスに基づいて決定される、請求項7に記載の方法。
【請求項9】
前記標的ブロックの前記分類を決定することは、
前記標的ブロックが4×4、8×8、4×N、及びN×4以外のサイズを有することに応じて、前記標的ブロックが第3のクラスに属すると決定すること
を更に含む、請求項1に記載の方法。
【請求項10】
前記標的ブロックのための前記第1のイントラ予測信号を生成することは、
前記標的ブロックが前記第1のクラス又は前記第2のクラスに属することに応じて、前記第1のイントラ予測信号が4×4のサイズを有すると決定することと、
前記標的ブロックが前記第3のクラスに属することに応じて、前記第1のイントラ予測信号が8×8のサイズを有すると決定することと
を含む、請求項9に記載の方法。
【請求項11】
前記Nは、8、16、32、又は64に等しい、請求項1に記載の方法。
【請求項12】
映像コンテンツを処理するためのシステムであって、
1組の命令を記憶するためのメモリと、
少なくとも1つのプロセッサとを含み、前記少なくとも1つのプロセッサは、前記システムに、
標的ブロックの分類を決定することと、
前記分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を行わせるように、前記1組の命令を実行するように構成されており、
前記標的ブロックの前記分類を決定することにおいて、前記少なくとも1つのプロセッサは、前記システムに、
前記標的ブロックが4×4のサイズを有することに応じて、前記標的ブロックが第1のクラスに属すると決定すること、又は
前記標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、前記標的ブロックが第2のクラスに属すると決定すること
を更に行わせるように、前記1組の命令を実行するように更に構成される、システム。
【請求項13】
前記MIP信号を生成することにおいて、前記少なくとも1つのプロセッサは、前記システムに、
入力ベクトル、行列、及び前記標的ブロックの前記分類に基づいて、前記標的ブロックのための第1のイントラ予測信号を生成することと、
前記MIP信号を生成するために、前記第1のイントラ予測信号を使用して前記標的ブロックに対してバイリニア補間を行うことと
を更に行わせるように、前記1組の命令を実行するように更に構成される、請求項12に記載のシステム。
【請求項14】
前記少なくとも1つのプロセッサは、前記システムに、
入力ベクトルを生成するために、前記標的ブロックの前記分類に従って前記標的ブロックの隣接する再構築されたサンプルを平均化すること
を更に行わせるように、前記1組の命令を実行するように更に構成される、請求項12に記載のシステム。
【請求項15】
前記入力ベクトルは、前記標的ブロックが前記第1のクラスに属する場合には4×1のサイズを有し、又は前記標的ブロックが前記第2のブロックに属する場合には8×1のサイズを有する、請求項13に記載のシステム。
【請求項16】
前記行列は、前記標的ブロックの前記分類及びMIPモードインデックスに従って行列の組から選択される、請求項11に記載のシステム。
【請求項17】
前記第1のイントラ予測信号は、前記行列及び前記入力ベクトルに対して行列ベクトル乗算を行うことによって生成される、請求項16に記載のシステム。
【請求項18】
前記第1のイントラ予測信号は、前記行列に関連する1つ又は複数のオフセットに基づいて生成される、請求項17に記載のシステム。
【請求項19】
前記1つ又は複数のオフセットは、参照表内の前記行列のインデックスに基づいて決定される、請求項18に記載のシステム。
【請求項20】
1組の命令を記憶する非一時的コンピュータ可読媒体であって、前記1組の命令は、映像コンテンツを処理するための方法をコンピュータシステムに行わせるために、前記コンピュータシステムの少なくとも1つのプロセッサによって実行可能であり、前記方法は、
標的ブロックの分類を決定することと、
前記分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を含み、前記標的ブロックの前記分類を決定することは、
前記標的ブロックが4×4のサイズを有することに応じて、前記標的ブロックが第1のクラスに属すると決定すること、又は
前記標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、4よりも大きい)のサイズを有することに応じて、前記標的ブロックが第2のクラスに属すると決定すること
を含む、非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[001] 本開示は、参照によりその全体が本明細書に援用される、2019年8月30日に出願された米国仮特許出願第62/894,489号に対する優先権の利益を主張する。
【0002】
技術分野
[002] 本開示は、概して、映像処理に関し、より詳細には、映像信号の単純化された行列加重イントラ予測を行うための方法及びシステムに関する。
【背景技術】
【0003】
背景
[003] 映像は、視覚情報を捕捉する静的ピクチャ(又は「フレーム」)の組である。記憶メモリ及び伝送帯域幅を減らすために、映像は、記憶又は伝送前に圧縮し、表示前に解凍することができる。圧縮プロセスは、通常、符号化と呼ばれ、解凍プロセスは、通常、復号と呼ばれる。最も一般的には、予測、変換、量子化、エントロピーコード化及びインループフィルタリングに基づく規格化された映像コード化技術を使用する様々な映像コード化形式がある。特定の映像コード化形式を指定するHigh Efficiency Video Coding(HEVC/H.265)規格、Versatile Video Coding(VVC/H.266)規格、AVS規格等の映像コード化規格が規格化組織によって策定されている。一層進化した映像コード化技術が映像規格に採用されるにつれて、新たな映像コード化規格のコード化効率が一層高くなる。
【発明の概要】
【課題を解決するための手段】
【0004】
開示の概要
[004] 本開示の実施形態は、単純化された行列加重イントラ予測を行うための方法を提供する。この方法は、標的ブロックの分類を決定することと、その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することとを含み得、標的ブロックの分類を決定することは、標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定することを含む。
【0005】
[005] 本開示の実施形態は、単純化された行列加重イントラ予測を行うためのシステムも提供する。このシステムは、1組の命令を記憶するためのメモリと、少なくとも1つのプロセッサとを含み得、少なくとも1つのプロセッサは、システムに、標的ブロックの分類を決定することと、その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することとを行わせるように、1組の命令を実行するように構成され、標的ブロックの分類を決定することは、標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定することを含む。
【0006】
[006] 本開示の実施形態は、1組の命令を記憶する非一時的コンピュータ可読媒体を提供し、1組の命令は、映像コンテンツを処理するための方法をコンピュータシステムに行わせるために、コンピュータシステムの少なくとも1つのプロセッサによって実行可能である。その方法は、標的ブロックの分類を決定することと、その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することとを含み得、標的ブロックの分類を決定することは、標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は標的ブロックが8×8、4×N、若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定することを含む。
【0007】
図面の簡単な説明
[007] 本開示の実施形態及び様々な態様を以下の詳細な説明及び添付図面に示す。図中に示す様々な特徴は、縮尺通りに描かれていない。
【図面の簡単な説明】
【0008】
【
図1】[008]本開示の実施形態と合致する、例示的な映像シーケンスの構造を示す。
【
図2A】[009]本開示の実施形態と合致する、ハイブリッド映像コード化システムによって行われる例示的な符号化プロセスの概略図を示す。
【
図2B】[010]本開示の実施形態と合致する、ハイブリッド映像コード化システムによって行われる別の例示的な符号化プロセスの概略図を示す。
【
図3A】[011]本開示の実施形態と合致する、ハイブリッド映像コード化システムによって行われる例示的な復号プロセスの概略図を示す。
【
図3B】[012]本開示の実施形態と合致する、ハイブリッド映像コード化システムによって行われる別の例示的な復号プロセスの概略図を示す。
【
図4】[013]本開示の実施形態と合致する、映像を符号化又は復号するための例示的な機器のブロック図である。
【
図5】[014]本開示の実施形態と合致する、行列加重イントラ予測の例示的な概略図を示す。
【
図6】[015]本開示の実施形態と合致する、行列加重イントラ予測に使用される3つの例示的なクラスを含む表を示す。
【
図7】[016]本開示の実施形態と合致する、オフセット「sO」を決定するための例示的な参照表を示す。
【
図8】[017]本開示の実施形態と合致する、シフト「sW」を決定するための例示的な参照表を示す。
【
図9】[018]本開示の実施形態と合致する、例示的な除外演算を示す例示的な行列を示す。
【
図10】[019]本開示の実施形態と合致する、別の例示的な除外演算を示す別の例示的な行列を示す。
【
図11】[020]本開示の実施形態と合致する、映像コンテンツを処理するための例示的方法のフローチャートである。
【発明を実施するための形態】
【0009】
詳細な説明
[021] ここで、その例が添付図面に示される例示的実施形態を詳細に参照する。以下の説明は、添付図面を参照し、添付図面では、他に指示がない限り、異なる図中の同じ数字が同じ又は同様の要素を表す。例示的実施形態についての以下の説明に記載される実装形態は、本発明と合致する全ての実装形態を表すわけではない。むしろ、それらは、添付の特許請求の範囲で列挙する本発明に関係する態様と合致する機器及び方法の例に過ぎない。別段の定めがない限り、「又は」という語は、実行不可能な場合を除いて、あり得る全ての組み合わせを包含する。例えば、ある構成要素がA又はBを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、その構成要素は、A若しくはB又はA及びBを含むことができる。第2の例として、ある構成要素がA、B又はCを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、その構成要素は、A、若しくはB、若しくはC、又はA及びB、又はA及びC、又はB及びC、又はA、及びB、及びCを含むことができる。
【0010】
[022] 映像コード化システムは、デジタル映像信号を圧縮するために、例えば消費される記憶空間を減らすか、又はかかる信号に関連する伝送帯域幅の消費量を減らすために多くの場合に使用される。オンライン映像ストリーミング、テレビ会議、又は映像監視等の映像圧縮の様々な応用において、(例えば、1920×1080ピクセルの解像度を有する)高精細度(HD)映像の人気が高まるにつれて、映像データの圧縮効率を高めることができる映像コード化ツールを開発することが継続的に求められている。
【0011】
[023] 例えば、映像監視の応用は、多くの応用シナリオ(例えば、セキュリティ、交通、環境のモニタリング等)において一層且つ広範に使用されており、監視装置の数及び解像度が急激に増加している。多くの映像監視の応用シナリオは、より多くの情報を捕捉するためにHD映像をユーザに提供することを選択し、HD映像は、かかる情報を捕捉するために、1フレーム当たりでより多くのピクセルを有する。しかし、HD映像ビットストリームは、伝送のための高帯域幅及び記憶のための大きい空間を要求する高ビットレートを有し得る。例えば、平均的な1920×1080の解像度を有する監視映像ストリームは、リアルタイム伝送のために4Mbpsもの帯域幅を必要とし得る。更に、映像監視は、一般に、常時監視を行い、それは、映像データを記憶する場合に記憶システムにとって大きい課題となり得る。従って、HD映像の高帯域幅及び大きい記憶域に対する需要は、映像監視におけるHD映像の大規模な展開に対する主な制限になっている。
【0012】
[024] 映像とは、視覚的情報を記憶するために時系列順に配置される静止ピクチャ(又は「フレーム」)の組である。それらのピクチャを時系列順に捕捉し、記憶するために、映像捕捉装置(例えば、カメラ)を使用することができ、かかるピクチャを時系列順に表示するために、映像再生装置(例えば、テレビ、コンピュータ、スマートフォン、タブレットコンピュータ、ビデオプレーヤ又は表示機能を有する任意のエンドユーザ端末)を使用することができる。更に、一部の応用では、監視、会議、又は生放送等のために、映像捕捉装置が捕捉映像を映像再生装置(例えば、モニタを有するコンピュータ)にリアルタイムで伝送することができる。
【0013】
[025] かかる応用が必要とする記憶空間及び伝送帯域幅を減らすために、映像を記憶及び伝送前に圧縮し、表示前に解凍することができる。この圧縮及び解凍は、プロセッサ(例えば、汎用コンピュータのプロセッサ)又は専用ハードウェアによって実行されるソフトウェアによって実装され得る。圧縮のためのモジュールを一般に「符号器」と呼び、解凍のためのモジュールを一般に「復号器」と呼ぶ。符号器及び復号器は、まとめて「コーデック」と呼ぶことができる。符号器及び復号器は、様々な適切なハードウェア、ソフトウェア、又はその組み合わせとして実装することができる。例えば、符号器及び復号器のハードウェア実装は、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、書換可能ゲートアレイ(FPGA)、ディスクリートロジック、又はその任意の組み合わせ等の回路を含み得る。符号器及び復号器のソフトウェア実装は、プログラムコード、コンピュータ実行可能命令、ファームウェア、又はコンピュータ可読媒体内に固定される任意の適切なコンピュータによって実装されるアルゴリズム若しくはプロセスを含み得る。映像の圧縮及び解凍は、MPEG-1、MPEG-2、MPEG-4、H.26xシリーズ等の様々なアルゴリズム又は規格によって実装され得る。一部の応用では、コーデックが第1のコード化規格から映像を解凍し、第2のコード化規格を使用して、解凍された映像を再圧縮することができ、その場合、コーデックを「トランスコーダ」と呼ぶことができる。
【0014】
[026] 映像符号化プロセスは、ピクチャを再構築するために使用可能な有用な情報を識別し、保つことができ、再構築に重要でない情報を無視することができる。無視された重要でない情報を完全に再構築できない場合、かかる符号化プロセスは、「非可逆」と呼ぶことができる。さもなければ、かかる符号化プロセスは、「可逆」と呼ぶことができる。殆どの符号化プロセスは、非可逆であり、これは、必要な記憶空間及び伝送帯域幅を減らすためのトレードオフである。
【0015】
[027] 符号化されているピクチャ(「現ピクチャ」と呼ぶ)の有用な情報は、参照ピクチャ(例えば、過去に符号化され、再構築されたピクチャ)に対する変化を含む。かかる変化は、ピクセルの位置変化、光度変化、又は色変化を含むことができ、そのうちの位置変化が最も関係している。オブジェクトを表すピクセル群の位置変化は、参照ピクチャと現ピクチャとの間のオブジェクトの動きを反映し得る。
【0016】
[028] 参照ピクチャが現ピクチャ自体であるか又は他のピクチャであるかに応じて、現ピクチャの符号化を「インター予測」及び「イントラ予測」として分類することができる。イントラ予測は、既にコード化されたピクセルから外挿によって予測値を計算することにより、空間的冗長性(例えば、1つのフレーム内のピクセル間の相関)を活用することができる。インター予測は、隣接フレーム(例えば、参照フレーム及び標的フレーム)間の時間差(例えば、動きベクトル)を活用し、標的フレームのコーデックを可能にし得る。本開示は、イントラ予測に使用される技法に関する。
【0017】
[029] 本開示は、映像信号の単純化された行列加重イントラ予測を行うための方法、機器、及びシステムを提供する。MIP予測プロセス内の行列の余分な除外演算を除去することにより、異なるサイズを有するブロックの予測プロセスを統一することができ、計算プロセスも単純化することができる。
【0018】
[030]
図1は、本開示の実施形態に合致する、映像シーケンス100の一例の構造を示す。映像シーケンス100は、生中継映像、又は捕捉され、アーカイブされている映像であり得る。映像100は、現実の映像、コンピュータによって生成される映像(例えば、コンピュータゲーム映像)、又はその組み合わせ(例えば、拡張現実効果を有する現実の映像)であり得る。映像シーケンス100は、映像捕捉装置(例えば、カメラ)、過去に捕捉された映像を含む映像アーカイブ(例えば、記憶装置内に記憶される映像ファイル)、又は映像コンテンツプロバイダから映像を受信するための映像フィードインタフェース(例えば、映像ブロードキャストトランシーバ)から入力され得る。
【0019】
[031]
図1に示すように、映像シーケンス100は、ピクチャ102、104、106及び108を含む、タイムラインに沿って時間的に配置される一連のピクチャを含み得る。ピクチャ102~106は、連続的であり、ピクチャ106とピクチャ108との間に更に多くのピクチャがある。
図1では、ピクチャ102は、Iピクチャであり、その参照ピクチャは、ピクチャ102自体である。ピクチャ104は、Pピクチャであり、矢印によって示すように、その参照ピクチャは、ピクチャ102である。ピクチャ106は、Bピクチャであり、矢印によって示すように、その参照ピクチャは、ピクチャ104及び108である。一部の実施形態では、ピクチャ(例えば、ピクチャ104)の参照ピクチャは、そのピクチャの直前又は直後になくてもよい。例えば、ピクチャ104の参照ピクチャは、ピクチャ102に先行するピクチャであり得る。ピクチャ102~106の参照ピクチャは、例に過ぎず、本開示は、参照ピクチャの実施形態を、
図1に示す例として限定しないことに留意すべきである。
【0020】
[032] 典型的には、映像コーデックは、全ピクチャを一度に符号化又は復号せず、それは、かかるタスクが計算的に複雑であるためである。むしろ、映像コーデックは、ピクチャを基本セグメントに分割し、ピクチャをセグメントごとに符号化又は復号することができる。本開示では、そのような基本セグメントを基本処理単位(「BPU」)と呼ぶ。例えば、
図1の構造110は、映像シーケンス100のピクチャ(例えば、ピクチャ102~108の何れか)の構造の一例を示す。構造110では、ピクチャが4×4の基本処理単位に分けられており、その境界が破線で示されている。一部の実施形態では、基本処理単位は、一部の映像コード化規格(例えば、MPEGファミリ、H.261、H.263又はH.264/AVC)内の「マクロブロック」と呼ぶことができ、他の一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)内の「コード化ツリー単位」(「CTU」)と呼ぶことができる。128×128、64×64、32×32、16×16、4×8、16×32又はピクセルのあらゆる任意の形状及びサイズ等、基本処理単位は、ピクチャ内で可変サイズを有することができる。基本処理単位のサイズ及び形状は、コード化の効率及び基本処理単位内で保とうとする詳細度のバランスに基づいてピクチャについて選択することができる。
【0021】
[033] 基本処理単位は、コンピュータメモリ内(例えば、映像フレームバッファ内)に記憶される様々な種類の映像データ群を含み得る論理単位であり得る。例えば、カラーピクチャの基本処理単位は、無彩色の輝度情報を表すルマ成分(Y)、色情報を表す1つ又は複数のクロマ成分(例えば、Cb及びCr)、並びにルマ成分及びクロマ成分が同じサイズを有し得る基本処理単位の関連構文要素を含むことができる。一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)では、ルマ成分及びクロマ成分が「コード化ツリーブロック」(「CTB」)と呼ばれ得る。基本処理単位に対して行われるいかなる操作も、そのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。
【0022】
[034] 映像のコード化は、複数の操作段階を有し、その例を
図2A~
図2B及び
図3A~
図3Bで詳述する。それぞれの段階について、基本処理単位のサイズは、依然として処理するのに大き過ぎる場合があり、従って本開示で「基本処理副単位」と呼ぶセグメントに更に分けることができる。一部の実施形態では、基本処理副単位は、一部の映像コード化規格(例えば、MPEGファミリ、H.261、H.263又はH.264/AVC)内の「ブロック」と呼ぶことができるか、又は他の一部の映像コード化規格(例えば、H.265/HEVC又はH.266/VVC)内の「コード化単位」(「CU」)と呼ぶことができる。基本処理副単位は、基本処理単位と同じ又はそれよりも小さいサイズを有し得る。基本処理単位と同様に、基本処理副単位もコンピュータメモリ内(例えば、映像フレームバッファ内)に記憶される様々な種類の映像データ群(例えば、Y、Cb、Cr及び関連構文要素)を含み得る論理単位である。基本処理副単位に対して行われるいかなる操作も、そのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。処理の必要性に応じて、かかる分割は、更なるレベルに対して行われ得ることに留意すべきである。様々な段階が様々な方式を使用して基本処理単位を分割できることにも留意すべきである。
【0023】
[035] 例えば、(その一例を
図2Bで詳述する)モード決定段階において、基本処理単位に対して何れの予測モード(例えば、イントラピクチャ予測又はインターピクチャ予測)を使用するかを符号器が決定することができ、基本処理単位は、かかる決定を下すには大き過ぎる場合がある。符号器は、基本処理単位を複数の基本処理副単位(例えば、H.265/HEVC又はH.266/VVCにあるCU)に分け、個々の基本処理副単位ごとに予測の種類を決定することができる。
【0024】
[036] 別の例として、(その一例を
図2Aに詳述する)予測段階において、符号器は、基本処理副単位(例えば、CU)のレベルにおいて予測操作を行うことができる。しかし、一部の事例では、処理するのに基本処理副単位が依然として大き過ぎる場合がある。符号器は、基本処理副単位をより小さいセグメント(例えば、H.265/HEVC又はH.266/VVC内で「予測ブロック」又は「PB」と呼ばれる)に更に分けることができ、そのレベルにおいて予測操作を行うことができる。
【0025】
[037] 別の例として、(その一例を
図2Aに詳述する)変換段階において、符号器は、残差基本処理副単位(例えば、CU)に対する変換操作を行うことができる。しかし、一部の事例では、処理するのに基本処理副単位が依然として大き過ぎる場合がある。符号器は、基本処理副単位をより小さいセグメント(例えば、H.265/HEVC又はH.266/VVC内で「変換ブロック」又は「TB」と呼ばれる)に更に分けることができ、そのレベルにおいて変換操作を行うことができる。同じ基本処理副単位の分割方式は、予測段階と変換段階とで異なり得ることに留意すべきである。例えば、H.265/HEVC又はH.266/VVCでは、同じCUの予測ブロック及び変換ブロックは、異なるサイズ及び数を有し得る。
【0026】
[038]
図1の構造110では、基本処理単位112が3×3の基本処理副単位に更に分けられており、その境界が点線で示されている。同じピクチャの異なる基本処理単位を異なる方式で基本処理副単位に分けることができる。
【0027】
[039] 一部の実装形態では、映像の符号化及び復号に並列処理及び誤り耐性の機能を与えるために、ピクチャを処理のための領域に分けることができ、それにより、ピクチャの領域について、符号化又は復号プロセスがピクチャの他の任意の領域の情報に依存しないようにすることができる。換言すれば、ピクチャの各領域を独立に処理することができる。そうすることで、コーデックは、ピクチャの異なる領域を並列に処理し、従ってコード化の効率を高めることができる。更に、領域のデータが処理内で破損するか又はネットワーク伝送内で失われる場合、コーデックは、破損するか又は失われたデータに依存することなく、同じピクチャの他の領域を正しく符号化又は復号することができ、従って誤り耐性の機能を提供する。一部の映像コード化規格では、ピクチャを異なる種類の領域に分割することができる。例えば、H.265/HEVC及びH.266/VVCは、「スライス」及び「タイル」という2種類の領域を提供する。映像シーケンス100の様々なピクチャは、ピクチャを領域に分けるための様々な分割方式を有し得ることにも留意すべきである。
【0028】
[040] 例えば、
図1では、構造110が3つの領域114、116及び118に分けられており、その境界が構造110内の実線として示されている。領域114は、4個の基本処理単位を含む。領域116及び118のそれぞれは、6個の基本処理単位を含む。
図1の構造110の基本処理単位、基本処理副単位、及び領域は、例に過ぎず、本開示は、その実施形態を限定しないことに留意すべきである。
【0029】
[041]
図2Aは、本開示の実施形態と合致する、符号化プロセス200Aの一例の概略図を示す。符号器は、プロセス200Aに従って映像シーケンス202を映像ビットストリーム228に符号化することができる。
図1の映像シーケンス100と同様に、映像シーケンス202は、時系列順に配置されるピクチャ(「元のピクチャ」と呼ぶ)の組を含み得る。
図1の構造110と同様に、映像シーケンス202のそれぞれの元のピクチャは、符号器によって基本処理単位、基本処理副単位、又は処理のための領域に分けられ得る。一部の実施形態では、符号器は、映像シーケンス202のそれぞれの元のピクチャに関する基本処理単位のレベルにおいてプロセス200Aを実行することができる。例えば、符号器は、プロセス200Aを反復的な方法で実行することができ、符号器は、プロセス200Aの1回の反復において基本処理単位を符号化することができる。一部の実施形態では、符号器は、映像シーケンス202のそれぞれの元のピクチャの領域(例えば、領域114~118)についてプロセス200Aを並列に実行することができる。
【0030】
[042]
図2Aでは、符号器は、映像シーケンス202の元のピクチャの基本処理単位(「元のBPU」と呼ぶ)を予測段階204にフィードして、予測データ206及び予測されたBPU208を生成することができる。符号器は、元のBPUから、予測されたBPU208を減算して、残差BPU210を生成することができる。符号器は、残差BPU210を変換段階212及び量子化段階214にフィードして、量子化された変換係数216を生成することができる。符号器は、予測データ206及び量子化された変換係数216をバイナリコード化段階226にフィードして、映像ビットストリーム228を生成することができる。構成要素202、204、206、208、210、212、214、216、226、及び228は、「順方向経路」と呼ぶことができる。プロセス200A中、符号器は、量子化段階214後、量子化された変換係数216を逆量子化段階218及び逆変換段階220にフィードして、再構築された残差BPU222を生成することができる。符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、プロセス200Aの次の反復の予測段階204に使用される予測基準224を生成することができる。プロセス200Aの構成要素218、220、222、及び224は、「再構築経路」と呼ぶことができる。再構築経路は、符号器及び復号器の両方が予測に同じ参照データを使用することを確実にするために使用され得る。
【0031】
[043] 符号器は、プロセス200Aを反復的に実行して、(順方向経路内で)元のピクチャのそれぞれの元のBPUを符号化し、(再構築経路内で)元のピクチャの次の元のBPUを符号化するための予測された基準224を生成することができる。元のピクチャの全ての元のBPUを符号化した後、符号器は、映像シーケンス202内の次のピクチャの符号化に進むことができる。
【0032】
[044] プロセス200Aを参照すると、符号器は、映像捕捉装置(例えば、カメラ)によって生成される映像シーケンス202を受信することができる。本明細書で使用する「受信(する)」という用語は、データを入力するための、受信すること、入力すること、取得すること、取り出すこと、得ること、読み出すこと、アクセスすること、又は任意の方法の任意のアクションを指すことができる。
【0033】
[045] 予測段階204では、現在の反復において、符号器が元のBPU及び予測基準224を受信し、予測操作を行って予測データ206及び予測されたBPU208を生成することができる。予測基準224は、プロセス200A前の反復の再構築経路から生成され得る。予測段階204の目的は、予測データ206及び予測基準224から予測されたBPU208として元のBPUを再構築するために使用され得る予測データ206を抽出することにより、情報の冗長性を減らすことである。
【0034】
[046] 理想的には、予測されたBPU208は、元のBPUと同一であり得る。しかし、理想的でない予測及び再構築操作により、予測されたBPU208は、概して、元のBPUと僅かに異なる。そのような差を記録するために、符号器は、予測されたBPU208を生成した後、それを元のBPUから減算して残差BPU210を生成することができる。例えば、符号器は、予測されたBPU208のピクセルの値(例えば、グレースケール値又はRGB値)を元のBPUの対応するピクセルの値から減算することができる。元のBPUの対応するピクセルと、予測されたBPU208との間のかかる減算の結果、残差BPU210の各ピクセルは、残差値を有し得る。元のBPUと比較して、予測データ206及び残差BPU210は、より少ないビットを有し得るが、品質を著しく損なうことなく元のBPUを再構築するためにそれらを使用することができる。
【0035】
[047] 残差BPU210を更に圧縮するために、変換段階212において、符号器は、残差BPU210を2次元「基底パターン」の組に分解することにより、残差BPU210の空間的冗長性を低減することができ、各基底パターンは、「変換係数」に関連する。基底パターンは、同じサイズ(例えば、残差BPU210のサイズ)を有することができる。それぞれの基底パターンは、残差BPU210の変動周波数(例えば、輝度変動周波数)成分を表すことができる。基底パターンの何れも、他の任意の基底パターンの任意の組み合わせ(例えば、線形結合)から再現することができない。換言すれば、分解は、残差BPU210の変動を周波数領域内に分解することができる。かかる分解は、関数の離散フーリエ変換に類似し、基底パターンは、離散フーリエ変換の基底関数(例えば、三角関数)に類似し、変換係数は、基底関数に関連する係数に類似する。
【0036】
[048] 様々な変換アルゴリズムが様々な基底パターンを使用することができる。例えば、離散コサイン変換、離散サイン変換等、変換段階212では、様々な変換アルゴリズムを使用することができる。変換段階212における変換は、可逆的である。即ち、符号器は、変換の逆操作(「逆変換」と呼ぶ)によって残差BPU210を復元することができる。例えば、残差BPU210のピクセルを復元するために、逆変換は、基底パターンの対応するピクセルの値を、関連するそれぞれの係数で乗算し、積を加算して加重和をもたらすことであり得る。映像コード化規格では、符号器及び復号器の両方が同じ変換アルゴリズム(従って同じ基底パターン)を使用することができる。従って、符号器は、変換係数のみを記録することができ、復号器は、符号器から基底パターンを受信することなく、変換係数から残差BPU210を再構築することができる。残差BPU210と比較して、変換係数の方が少ないビットを有し得るが、それらの変換係数は、品質を著しく損なうことなく残差BPU210を再構築するために使用され得る。従って、残差BPU210が更に圧縮される。
【0037】
[049] 符号器は、量子化段階214において変換係数を更に圧縮することができる。変換プロセスでは、様々な基底パターンが様々な変動周波数(例えば、輝度変動周波数)を表すことができる。人間の目は、概して、低周波変動を認識することが得意であるため、符号器は、復号の際の著しい品質劣化を引き起こすことなく高周波変動の情報を無視することができる。例えば、量子化段階214において、符号器は、各変換係数を整数値(「量子化パラメータ」と呼ぶ)で除算し、商をその最近隣数に丸めることにより、量子化された変換係数216を生成することができる。かかる操作後、高周波基底パターンの一部の変換係数をゼロに変換することができ、低周波基底パターンの変換係数をより小さい整数に変換することができる。符号器は、ゼロ値の量子化された変換係数216を無視することができ、それにより変換係数が更に圧縮される。量子化プロセスも可逆的(invertible)であり、量子化された変換係数216は、量子化の逆操作(「逆量子化」と呼ぶ)内で変換係数に再構築することができる。
【0038】
[050] 符号器は、丸め操作内でかかる除算の剰余を無視するため、量子化段階214は、非可逆であり得る。典型的には、量子化段階214は、プロセス200A内で最大の情報損失に寄与し得る。情報損失が大きいほど、量子化された変換係数216が必要とし得るビットが少なくなる。情報損失の様々なレベルを得るために、符号器は、量子化パラメータの様々な値又は量子化プロセスの他の任意のパラメータを使用することができる。
【0039】
[051] バイナリコード化段階226において、符号器は、例えば、エントロピーコード化、可変長コード化、算術コード化、ハフマンコード化、コンテキスト適応バイナリ算術コード化、又は他の任意の可逆若しくは非可逆圧縮アルゴリズム等のバイナリコード化技法を使用し、予測データ206及び量子化された変換係数216を符号化することができる。一部の実施形態では、予測データ206及び量子化された変換係数216に加えて、符号器は、例えば、予測段階204で使用される予測モード、予測操作のパラメータ、変換段階212の変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)等の他の情報をバイナリコード化段階226において符号化することができる。符号器は、バイナリコード化段階226の出力データを使用して映像ビットストリーム228を生成することができる。一部の実施形態では、映像ビットストリーム228をネットワーク伝送のために更にパケット化することができる。
【0040】
[052] プロセス200Aの再構築経路を参照すると、逆量子化段階218では、符号器は、量子化された変換係数216に対して逆量子化を行って、再構築された変換係数を生成することができる。逆変換段階220では、符号器は、再構築された変換係数に基づいて、再構築された残差BPU222を生成することができる。符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、プロセス200Aの次の反復内で使用される予測基準224を生成することができる。
【0041】
[053] 映像シーケンス202を符号化するためにプロセス200Aの他のバリエーションを使用できることに留意すべきである。一部の実施形態では、符号器がプロセス200Aの段階を異なる順序で実行することができる。一部の実施形態では、プロセス200Aの1つ又は複数の段階を単一の段階に組み合わせることができる。一部の実施形態では、プロセス200Aの単一の段階を複数の段階に分けることができる。例えば、変換段階212と量子化段階214とを単一の段階に組み合わせることができる。一部の実施形態では、プロセス200Aは、追加の段階を含み得る。一部の実施形態では、プロセス200Aは、
図2A内の1つ又は複数の段階を省くことができる。
【0042】
[054]
図2Bは、本開示の実施形態に合致する、符号化プロセスの別の例200Bの概略図を示す。プロセス200Bは、プロセス200Aから修正され得る。例えば、プロセス200Bは、ハイブリッド映像コード化規格(例えば、H.26xシリーズ)に準拠する符号器によって使用され得る。プロセス200Aと比較して、プロセス200Bの順方向経路は、モード決定段階230を更に含み、予測段階204を空間的予測段階2042及び時間的予測段階2044に分ける。プロセス200Bの再構築経路は、ループフィルタ段階232及びバッファ234を追加で含む。
【0043】
[055] 概して、予測技法は、空間的予測及び時間的予測の2つの種類に分類することができる。空間的予測(例えば、イントラピクチャ予測又は「イントラ予測」)は、現BPUを予測するために、同じピクチャ内の既にコード化された1つ又は複数の隣接BPUのピクセルを使用することができる。即ち、空間的予測における予測基準224は、隣接BPUを含み得る。空間的予測は、ピクチャの固有の空間的冗長性を減らすことができる。時間的予測(例えば、インターピクチャ予測又は「インター予測」)は、現BPUを予測するために、既にコード化された1つ又は複数のピクチャの領域を使用することができる。即ち、時間的予測における予測基準224は、コード化されたピクチャを含み得る。時間的予測は、ピクチャの固有の時間的冗長性を減らすことができる。
【0044】
[056] プロセス200Bを参照すると、順方向経路において、符号器は、空間的予測段階2042及び時間的予測段階2044で予測操作を行う。例えば、空間的予測段階2042では、符号器は、イントラ予測を行うことができる。符号化されているピクチャの元のBPUに関して、予測基準224は、同じピクチャ内の(順方向経路内で)符号化され、(再構築経路内で)再構築されている1つ又は複数の隣接BPUを含み得る。符号器は、隣接BPUを外挿することにより、予測されたBPU208を生成することができる。外挿技法は、例えば、線形外挿又は線形補間、多項式外挿又は多項式補間等を含み得る。一部の実施形態では、予測されたBPU208のピクセルごとに対応するピクセルの値を外挿することによって等、符号器がピクセルレベルで外挿を行うことができる。外挿に使用される隣接BPUは、垂直方向(例えば、元のBPUの上)、水平方向(例えば、元のBPUの左)、対角線方向(例えば、元のBPUの左下、右下、左上又は右上)、又は使用される映像コード化規格内で規定される任意の方向等、様々な方向から元のBPUに対して位置し得る。イントラ予測では、予測データ206は、例えば、使用される隣接BPUの位置(例えば、座標)、使用される隣接BPUのサイズ、外挿のパラメータ、元のBPUに対する使用される隣接BPUの方向等を含み得る。
【0045】
[057] 別の例として、時間的予測段階2044では、符号器は、インター予測を行うことができる。現ピクチャの元のBPUに関して、予測基準224は、(順方向経路内で)符号化され、(再構築経路内で)再構築されている1つ又は複数のピクチャ(「参照ピクチャ」と呼ぶ)を含み得る。一部の実施形態では、参照ピクチャがBPUごとに符号化され再構築され得る。例えば、符号器は、再構築された残差BPU222を、予測されたBPU208に加えて、再構築されたBPUを生成することができる。同じピクチャの全ての再構築されたBPUが生成されると、符号器は、参照ピクチャとして再構築されたピクチャを生成することができる。符号器は、参照ピクチャの範囲(「探索窓」と呼ぶ)内の一致領域を探すために「動き推定」の操作を行うことができる。参照ピクチャ内の探索窓の位置は、現ピクチャ内の元のBPUの位置に基づいて決定することができる。例えば、探索窓は、現ピクチャ内の元のBPUと参照ピクチャ内で同じ座標を有する位置に中心を置くことができ、所定の距離にわたって広げることができる。符号器が探索窓内で元のBPUと同様の領域を(例えば、pel再帰アルゴリズム、ブロックマッチングアルゴリズム等を使用することによって)識別すると、符号器は、その領域を一致領域として決定することができる。一致領域は、元のBPUと異なる(例えば、それよりも小さい、等しい、大きい又は異なる形状の)寸法を有し得る。参照ピクチャ及び現ピクチャは、(例えば、
図1に示すように)タイムライン内で時間的に隔てられているため、時間が経つにつれて一致領域が元のBPUの位置に「移動する」と見なすことができる。符号器は、かかる動きの方向及び距離を「動きベクトル」として記録することができる。(例えば、
図1のピクチャ106のような)複数の参照ピクチャが使用される場合、符号器は、参照ピクチャごとに一致領域を探し、その関連する動きベクトルを求めることができる。一部の実施形態では、符号器は、個々の一致する参照ピクチャの一致領域のピクセル値に重みを割り当てることができる。
【0046】
[058] 動き推定は、例えば、平行移動、回転、拡大縮小等の様々な種類の動きを識別するために使用することができる。インター予測では、予測データ206は、例えば、一致領域の位置(例えば、座標)、一致領域に関連する動きベクトル、参照ピクチャの数、参照ピクチャに関連する重み等を含み得る。
【0047】
[059] 予測されたBPU208を生成するために、符号器は、「動き補償」の操作を行うことができる。動き補償は、予測データ206(例えば、動きベクトル)及び予測基準224に基づいて、予測されたBPU208を再構築するために使用することができる。例えば、符号器は、動きベクトルに従って参照ピクチャの一致領域を動かすことができ、その中では、符号器は、現ピクチャの元のBPUを予測することができる。(例えば、
図1のピクチャ106のような)複数の参照ピクチャが使用される場合、符号器は、個々の動きベクトルに従って参照ピクチャの一致領域を動かし、一致領域のピクセル値を平均することができる。一部の実施形態では、符号器が、個々の一致する参照ピクチャの一致領域のピクセル値に重みを割り当てた場合、符号器は、動かした一致領域のピクセル値の加重和を加えることができる。
【0048】
[060] 一部の実施形態では、インター予測は、単方向又は双方向であり得る。単方向のインター予測は、現ピクチャに対して同じ時間的方向にある1つ又は複数の参照ピクチャを使用することができる。例えば、
図1のピクチャ104は、参照ピクチャ(即ちピクチャ102)がピクチャ104に先行する単方向のインター予測ピクチャである。双方向のインター予測は、現ピクチャに対して両方の時間的方向にある1つ又は複数の参照ピクチャを使用することができる。例えば、
図1のピクチャ106は、参照ピクチャ(即ちピクチャ104及び108)がピクチャ104に対して両方の時間的方向にある双方向のインター予測ピクチャである。
【0049】
[061] プロセス200Bの順方向経路を引き続き参照すると、空間的予測段階2042及び時間的予測段階2044後、モード決定段階230において、符号器は、プロセス200Bの現在の反復のための予測モード(例えば、イントラ予測又はインター予測の1つ)を選択することができる。例えば、符号器は、レート歪み最適化技法を実行することができ、かかる技法では、符号器は、候補予測モードのビットレート及び候補予測モード下の再構築された参照ピクチャの歪みに応じて、コスト関数の値を最小化するための予測モードを選択することができる。選択される予測モードに応じて、符号器は、対応する予測されたBPU208及び予測されたデータ206を生成することができる。
【0050】
[062] プロセス200Bの再構築経路において、順方向経路内でイントラ予測モードが選択されている場合、予測基準224(例えば、現ピクチャ内で符号化され再構築されている現BPU)を生成した後、符号器は、後に使用するために(例えば、現ピクチャの次のBPUを外挿するために)空間的予測段階2042に予測基準224を直接フィードすることができる。順方向経路内でインター予測モードが選択されている場合、予測基準224(例えば、全てのBPUが符号化され再構築されている現ピクチャ)を生成した後、符号器は、ループフィルタ段階232に予測基準224をフィードすることができ、ループフィルタ段階232では、符号器は、予測基準224にループフィルタを適用して、インター予測によって引き起こされる歪み(例えば、ブロッキングアーティファクト)を減らすか又はなくすことができる。例えば、デブロッキング、サンプル適応オフセット、適応ループフィルタ等、符号器は、ループフィルタ段階232で様々なループフィルタ技法を適用することができる。ループフィルタされた参照ピクチャは、後に使用するために(例えば、映像シーケンス202の将来のピクチャのためのインター予測参照ピクチャとして使用するために)バッファ234(又は「復号されたピクチャバッファ」)内に記憶することができる。符号器は、時間的予測段階2044で使用するために1つ又は複数の参照ピクチャをバッファ234内に記憶することができる。一部の実施形態では、符号器は、量子化された変換係数216、予測データ206及び他の情報と共にループフィルタのパラメータ(例えば、ループフィルタの強度)をバイナリコード化段階226で符号化することができる。
【0051】
[063]
図3Aは、本開示の実施形態に合致する、復号プロセス300Aの一例の概略図を示す。プロセス300Aは、
図2Aの圧縮プロセス200Aに対応する解凍プロセスであり得る。一部の実施形態では、プロセス300Aは、プロセス200Aの再構築経路と同様であり得る。復号器は、プロセス300Aに従って映像ビットストリーム228を映像ストリーム304に復号することができる。映像ストリーム304は、映像シーケンス202と非常に類似し得る。しかし、圧縮及び解凍プロセス(例えば、
図2A~
図2Bの量子化段階214)における情報損失により、概して、映像ストリーム304は、映像シーケンス202と同一ではない。
図2A~
図2Bのプロセス200A及び200Bと同様に、復号器は、映像ビットストリーム228内に符号化される各ピクチャについて、基本処理単位(BPU)のレベルにおいてプロセス300Aを実行することができる。例えば、復号器は、プロセス300Aを反復的な方法で実行することができ、復号器は、プロセス300Aの1回の反復において基本処理単位を復号することができる。一部の実施形態では、復号器は、映像ビットストリーム228内に符号化される各ピクチャの領域(例えば、領域114~118)についてプロセス300Aを並列に実行することができる。
【0052】
[064]
図3Aでは、復号器は、符号化されたピクチャの基本処理単位(「符号化されたBPU」と呼ぶ)に関連する映像ビットストリーム228の一部をバイナリ復号段階302にフィードすることができる。バイナリ復号段階302では、復号器は、その一部を予測データ206及び量子化された変換係数216に復号することができる。復号器は、量子化された変換係数216を逆量子化段階218及び逆変換段階220にフィードして、再構築された残差BPU222を生成することができる。復号器は、予測データ206を予測段階204にフィードして、予測されたBPU208を生成することができる。復号器は、再構築された残差BPU222を、予測されたBPU208に加えて、予測された基準224を生成することができる。一部の実施形態では、予測された基準224がバッファ(例えば、コンピュータメモリ内の復号されたピクチャバッファ)内に記憶され得る。復号器は、プロセス300Aの次の反復内で予測操作を行うための予測された基準224を予測段階204にフィードすることができる。
【0053】
[065] 復号器は、プロセス300Aを反復的に実行して、符号化されたピクチャの各符号化されたBPUを復号し、符号化されたピクチャの次の符号化されたBPUを符号化するための予測された基準224を生成することができる。符号化されたピクチャの全ての符号化されたBPUを復号した後、復号器は、表示するためにピクチャを映像ストリーム304に出力し、映像ビットストリーム228内の次の符号化されたピクチャの復号に進むことができる。
【0054】
[066] バイナリ復号段階302では、復号器は、符号器が使用したバイナリコード化技法(例えば、エントロピーコード化、可変長コード化、算術コード化、ハフマンコード化、コンテキスト適応バイナリ算術コード化又は他の任意の可逆圧縮アルゴリズム)の逆操作を行うことができる。一部の実施形態では、予測データ206及び量子化された変換係数216に加えて、復号器は、例えば、予測モード、予測操作のパラメータ、変換の種類、量子化プロセスのパラメータ(例えば、量子化パラメータ)、符号器制御パラメータ(例えば、ビットレート制御パラメータ)等の他の情報をバイナリ復号段階302において復号することができる。一部の実施形態では、映像ビットストリーム228がネットワーク上においてパケット単位で伝送される場合、復号器は、映像ビットストリーム228をパケット化解除してからそれをバイナリ復号段階302にフィードすることができる。
【0055】
[067]
図3Bは、本開示の実施形態に合致する、復号プロセスの別の例300Bの概略図を示す。プロセス300Bは、プロセス300Aから修正され得る。例えば、プロセス300Bは、ハイブリッド映像コード化規格(例えば、H.26xシリーズ)に準拠する復号器によって使用され得る。プロセス300Aと比較して、プロセス300Bは、予測段階204を空間的予測段階2042及び時間的予測段階2044に更に分け、ループフィルタ段階232及びバッファ234を追加で含む。
【0056】
[068] プロセス300Bでは、復号されている符号化されたピクチャ(「現ピクチャ」と呼ぶ)の符号化された基本処理単位(「現BPU」と呼ぶ)に関して、復号器によってバイナリ復号段階302から復号される予測データ206は、現BPUを符号化するために何れの予測モードが符号器によって使用されたかに応じて様々な種類のデータを含み得る。例えば、現BPUを符号化するためにイントラ予測が符号器によって使用された場合、予測データ206は、イントラ予測、イントラ予測操作のパラメータ等を示す予測モードインジケータ(例えば、フラグ値)を含み得る。イントラ予測操作のパラメータは、例えば、基準として使用される1つ又は複数の隣接BPUの位置(例えば、座標)、隣接BPUのサイズ、外挿のパラメータ、元のBPUに対する隣接BPUの方向等を含み得る。別の例では、現BPUを符号化するためにインター予測が符号器によって使用された場合、予測データ206は、インター予測、インター予測操作のパラメータ等を示す予測モードインジケータ(例えば、フラグ値)を含み得る。インター予測操作のパラメータは、例えば、現BPUに関連する参照ピクチャの数、参照ピクチャにそれぞれ関連する重み、それぞれの参照ピクチャ内の1つ又は複数の一致領域の位置(例えば、座標)、一致領域にそれぞれ関連する1つ又は複数の動きベクトル等を含み得る。
【0057】
[069] 予測モードインジケータに基づき、復号器は、空間的予測段階2042で空間的予測(例えば、イントラ予測)を行うか、又は時間的予測段階2044で時間的予測(例えば、インター予測)を行うかを決めることができる。かかる空間的予測又は時間的予測の実行の詳細は、
図2Bに示されており、以下で繰り返さない。かかる空間的予測又は時間的予測を行った後、復号器は、予測されたBPU208を生成することができる。
図3Aに記載したように、復号器は、予測されたBPU208と、再構築された残差BPU222とを加えて、予測基準224を生成することができる。
【0058】
[070] プロセス300Bでは、復号器は、プロセス300Bの次の反復内で予測操作を行うための予測された基準224を空間的予測段階2042又は時間的予測段階2044にフィードすることができる。例えば、現BPUが空間的予測段階2042においてイントラ予測を使用して復号される場合、予測基準224(例えば、復号された現BPU)を生成した後、復号器は、後に使用するために(例えば、現ピクチャの次のBPUを外挿するために)空間的予測段階2042に予測基準224を直接フィードすることができる。現BPUが時間的予測段階2044においてインター予測を使用して復号される場合、予測基準224(例えば、全てのBPUが復号されている参照ピクチャ)を生成した後、符号器は、ループフィルタ段階232に予測基準224をフィードして歪み(例えば、ブロッキングアーティファクト)を減らすか又はなくすことができる。復号器は、
図2Bに記載した方法で予測基準224にループフィルタを適用することができる。ループフィルタされた参照ピクチャは、後に使用するために(例えば、映像ビットストリーム228の将来の符号化ピクチャのためのインター予測参照ピクチャとして使用するために)バッファ234(例えば、コンピュータメモリ内の復号されたピクチャバッファ)内に記憶することができる。復号器は、時間的予測段階2044で使用するために1つ又は複数の参照ピクチャをバッファ234内に記憶することができる。一部の実施形態では、現BPUを符号化するためにインター予測が使用されたことを予測データ206の予測モードインジケータが示す場合、予測データは、ループフィルタのパラメータ(例えば、ループフィルタの強度)を更に含むことができる。
【0059】
[071]
図4は、本開示の実施形態に合致する、映像を符号化又は復号するための機器400の一例のブロック図である。
図4に示すように、機器400は、プロセッサ402を含み得る。プロセッサ402が本明細書に記載の命令を実行するとき、機器400は、映像を符号化又は復号するための専用マシンになり得る。プロセッサ402は、情報を操作又は処理することができる任意の種類の回路であり得る。例えば、プロセッサ402は、任意の数の中央処理装置(「CPU」)、グラフィックス処理装置(「GPU」)、ニューラル処理ユニット(「NPU」)、マイクロコントローラユニット(「MCU」)、光プロセッサ、プログラム可能論理コントローラ、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、知的財産(IP)コア、プログラム可能論理アレイ(PLA)、プログラム可能アレイ論理(PAL)、汎用アレイ論理(GAL)、複合プログラム可能論理装置(CPLD)、書換可能ゲートアレイ(FPGA)、システムオンチップ(SoC)、特定用途向け集積回路(ASIC)等の任意の組み合わせを含み得る。一部の実施形態では、プロセッサ402は、単一の論理構成要素としてグループ化されるプロセッサの組であり得る。例えば、
図4に示すように、プロセッサ402は、プロセッサ402a、プロセッサ402b及びプロセッサ402nを含む複数のプロセッサを含み得る。
【0060】
[072] 機器400は、データ(例えば、命令、コンピュータコード、中間データ等の組)を記憶するように構成されるメモリ404も含み得る。例えば、
図4に示すように、記憶データは、プログラム命令(例えば、プロセス200A、200B、300A又は300B内の段階を実装するためのプログラム命令)及び処理用データ(例えば、映像シーケンス202、映像ビットストリーム228又は映像ストリーム304)を含み得る。プロセッサ402は、プログラム命令及び処理用データに(例えば、バス410を介して)アクセスし、プログラム命令を実行して処理用データに対する操作又は処理を行うことができる。メモリ404は、高速ランダムアクセス記憶装置又は不揮発性記憶装置を含み得る。一部の実施形態では、メモリ404は、任意の数のランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、光学ディスク、磁気ディスク、ハードドライブ、ソリッドステートドライブ、フラッシュドライブ、セキュリティデジタル(SD)カード、メモリスティック、コンパクトフラッシュ(登録商標)(CF)カード等の任意の組み合わせを含み得る。メモリ404は、単一の論理構成要素としてグループ化される(
図4には不図示の)メモリ群でもあり得る。
【0061】
[073] 内蔵バス(例えば、CPUメモリバス)、外部バス(例えば、ユニバーサルシリアルバスポート、周辺機器コンポーネント相互接続エクスプレスポート)等のバス410は、機器400内の構成要素間でデータを転送する通信装置であり得る。
【0062】
[074] 曖昧さを招くことなく説明を簡単にするために、本開示では、プロセッサ402及び他のデータ処理回路をまとめて「データ処理回路」と呼ぶ。データ処理回路は、完全にハードウェアとして又はソフトウェア、ハードウェア若しくはファームウェアの組み合わせとして実装することができる。加えて、データ処理回路は、単一の独立したモジュールであり得るか、又は機器400の他の任意の構成要素内に完全に若しくは部分的に組み合わされ得る。
【0063】
[075] 機器400は、ネットワーク(例えば、インターネット、イントラネット、ローカルエリアネットワーク、モバイル通信ネットワーク等)との有線通信又は無線通信を提供するためのネットワークインタフェース406を更に含み得る。一部の実施形態では、ネットワークインタフェース406は、任意の数のネットワークインタフェースコントローラ(NIC)、無線周波数(RF)モジュール、トランスポンダ、トランシーバ、モデム、ルータ、ゲートウェイ、有線ネットワークアダプタ、無線ネットワークアダプタ、Bluetoothアダプタ、赤外線アダプタ、近距離無線通信(「NFC」)アダプタ、セルラネットワークチップ等の任意の組み合わせを含み得る。
【0064】
[076] 一部の実施形態では、1つ又は複数の周辺装置への接続を提供するための周辺装置インタフェース408を任意選択的に機器400が更に含み得る。
図4に示すように、周辺装置は、これのみに限定されないが、カーソル制御装置(例えば、マウス、タッチパッド又はタッチスクリーン)、キーボード、ディスプレイ(例えば、ブラウン管ディスプレイ、液晶ディスプレイ又は発光ダイオードディスプレイ)、映像入力装置(例えば、映像アーカイブに結合されるカメラ又は入力インタフェース)等を含み得る。
【0065】
[077] 映像コーデック(例えば、プロセス200A、200B、300A又は300Bを実行するコーデック)は、機器400内の任意のソフトウェア又はハードウェアモジュールの任意の組み合わせとして実装できることに留意すべきである。例えば、プロセス200A、200B、300A又は300Bの一部の又は全ての段階は、メモリ404内にロード可能なプログラム命令等の機器400の1つ又は複数のソフトウェアモジュールとして実装され得る。別の例では、プロセス200A、200B、300A又は300Bの一部の又は全ての段階は、専用データ処理回路(例えば、FPGA、ASIC、NPU等)等の機器400の1つ又は複数のハードウェアモジュールとして実装され得る。
【0066】
[078] 本開示は、行列加重イントラ予測(MIP)を単純化するために符号器及び/又は復号器によって実行可能な方法を提供する。MIP方法は、VVCにおいて新たに追加されたイントラ予測技法である。MIPモードは、そのアスペクト比max(幅,高さ)/min(幅,高さ)が4以下であるブロックに適用される。更に、MIPモードは、ルマ成分のみに適用される。イントラサブ分割モード、マルチ参照ラインイントラ予測モード又は最確モードと並行してMIPフラグが信号化される。
【0067】
[079] ブロックがMIPモードを使用してコード化される場合、従来のイントラ予測モードと同様に、ブロックの左側にある再構築された隣接境界サンプルの1つのライン及びブロックの上部にある再構築された隣接境界サンプルの1つのラインは、ブロックを予測するための入力として使用される。再構築された隣接境界サンプルを利用できない場合、従来のイントラ予測と同様にそれらを生成することができる。ルマサンプルを予測するために、再構築された隣接境界サンプルをまず平均化して、低減境界ベクトルneighbor
redを生成し、neighbor
red[0]は、低減境界ベクトルの最初の要素を表す。次いで、行列ベクトル乗算プロセスのために、低減境界ベクトルneighbor
redを使用して入力ベクトルinput
redが生成され、低減予測信号pred
redを得ることができる。最後に、低減予測信号pred
redにバイリニア補間を適用して、MIP予測信号の出力predを生成する。MIP予測プロセスの説明図を
図5に示す。
【0068】
[080] MIPブロックは、ブロックの幅(W)及び高さ(H)に従って3つのクラスに分類される:
Class0:W=H=4(即ち4×4のブロック)の場合、
Class1:max{W,H}=8(即ち4×8、8×4、8×8のブロック)の場合、及び
Class2:max{W,H}>8の場合。
【0069】
[081]
図6の表6に示すように、3つのクラスの違いは、モードの数、行列の数、行列のサイズ、入力ベクトルinput
red(行列ベクトル乗算プロセスの入力)のサイズ及び低減予測信号pred
red(行列ベクトル乗算プロセスの出力)のサイズである。
【0070】
[082] 以下の説明では、Class0、Class1及びClass2をS
0、S
1及びS
2としてそれぞれ示す。N
iは、行列セットS
i(i=0,1,2)内の行列の数を表す。MIPモードkでは、行列乗算プロセス内で行列
【数1】
が使用され、
【数2】
は、行列セットS
i内のj番目の行列を表し、jは、以下の式(1)を使用して導出される。
【数3】
【0071】
[083] MIPモードkがN
i以上である場合、低減境界ベクトルneighbor
red及び低減予測信号pred
redをそれぞれ生成するステップにおいて、スワップ演算及び転置演算が実行される。これらの2つの演算の詳細については、上記で説明されている。加えて、以下の式(2)及び(3)は、スワップ演算又は転置演算が必要であるかどうかを決定するために使用される。
【数4】
【0072】
[084] 先に述べたように、現ブロックの出力予測信号predの生成は、平均化、行列ベクトル乗算及び線形補間である以下の3つのステップに基づく。これらのステップの詳細を以下に記載する。
【0073】
[085] 境界サンプルから、Class0の4つのサンプル並びにClass1及びClass2の8つのサンプルが平均化によって抽出される。例えば、低減境界ベクトルneighborredは、再構築された隣接境界サンプルを以下の規則に従って平均化することによって生成することができる。
【0074】
[086] Class0:サンプルを2つおきに平均化する。低減境界ベクトルneighborredのサイズは、4×1である。
【0075】
[087] Class1及びClass2:現ブロックの上にある再構築された隣接境界サンプルについて、サンプルをW/4おきに平均化する。現ブロックの左側にある再構築された隣接境界サンプルについて、サンプルをH/4おきに平均化する。低減境界ベクトルneighborredのサイズは、8×1である。
【0076】
[088] 低減境界ベクトルneighbor
redは、現ブロックの上にある再構築された隣接境界サンプルを平均化することによって得られるベクトル
【数5】
と、現ブロックの左側にある再構築された隣接境界サンプルを平均化することによって得られるベクトル
【数6】
との連結である。上記で説明したように、N
i以上のMIPモードkでは、スワップ演算が行われる。例えば、以下の式(4)に示すように、2つのベクトル
【数7】
及び
【数8】
を連結する順序をスワップすることができる。
【数9】
【0077】
[089] 次いで、行列ベクトル乗算のための入力ベクトルinputredを下記の通り生成する。
【0078】
[090] Class0及びClass1について、
inputred[0]=neighborred[0]-(1<<(bitDepth-1))
inputred[j]=neighborred[j]-neighborred[0], j=1,…,size(neighborred)-1 式(5)
である。
【0079】
[091] Class2について、
inputred[j]=neighborred[j+1]-neighborred[0], j=0,…,size(neighborred)-2 式(6)
である。
【0080】
[092] 上記の式(5)及び(6)では、neighborred[0]がベクトルneighborredの最初の要素を表す。式(5)及び(6)によれば、Class0、Class1及びClass2のinputredのサイズinSizeは、それぞれ4、8及び7である。
【0081】
[093] ベクトルinput
redを入力として行列ベクトル乗算を実行する。その結果は、現ブロック内のサブサンプリングされたサンプルの組に基づく低減予測信号pred
redである。例えば、低減入力ベクトルinput
redから、幅W
red及び高さH
redのダウンサンプリングされたブロックに基づく信号である低減予測信号pred
redを生成することができる。ここで、W
red及びH
redを以下の式(7)及び(8)として定める。
【数10】
【0082】
[094] 先に述べたように、変数「isTransposed」が1に等しい場合、低減予測信号pred
redを転置する。最終的な低減予測信号pred
redのサイズがW
red×H
redであると仮定して、転置されていない
【数11】
のサイズW’
red×H’
redは、以下の式(9)及び(10)として導出される。
【数12】
【0083】
[095] 以下の式(11)に従って行列ベクトル積を計算することにより、低減予測信号pred’redのベクトルが計算される。
pred’red=M・inputred+neighborred[0] 式(11)
【0084】
[096] 次いで、ラスタ走査順序に従い、サイズ4×4、4×8、8×4及び8×8の行列pred
red内にベクトルpred’
redを配置する。サイズ4×4の行列pred
red内にサイズ16×1のベクトルpred’
redを配置する一例を下記の通り示す。
pred’
red=[A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P]
T
【数13】
【0085】
[097] 換言すれば、x=0...W’
red-1及びy=0...H’
red-1である場合、行列pred
redは、式(12)を使用して下記の通り計算することができる。
【数14】
【0086】
[098] 上記の式(12)では、変数「inSize」は、上記で説明したように入力ベクトルinputredのサイズであり、低減予測信号predredを生成するために使用される行列Mは、ブロックサイズ分類及びMIPモードkに従って3つの行列セットS0、S1、S2の1つから得られる。
【0087】
[099] 変数oW及びsWは、行列ベクトル乗算に何れの行列が使用されるかに応じた2つの既定値である。変数oWは、行列内の各要素の精度を7ビットに制限するために使用され、全ての要素が0以上であるように使用される。例えば、因子oWは、以下の式(13)として定めることができる。
【数15】
【0088】
[100] 上記の式(13)では、sOがオフセットであり、参照表から導出される。例えば、
図7の表7は、開示する一部の実施形態によるsOのための例示的な参照表を示す。
【0089】
[101] 更に、変数「sW」が別の参照表を使用して導出される。
図8の表8は、開示する一部の実施形態によるsWのための例示的な参照表を示す。
【0090】
[102] 式では、4×16及び16×4のブロックに関して行列の行の半分を除外するために使用される2つの変数「inch」及び「incW」を以下の式(14)及び(15)として定める。
【数16】
【0091】
[103] 上記の式(15)では、変数predCは、W’
red×H’
redの行列内に低減予測信号pred
redを配置するために使用され、以下の式(16)として定められる。
【数17】
【0092】
[104] 7に等しいサイズinSizeを有する入力ベクトルinput
red並びに64行及び7列の行列がClass2に属するブロックに使用され、64要素ベクトルが生成される。しかし、以下の式により、4×16及び16×4のブロックについて、32の要素のみが必要である。
【数18】
これは、Class2の低減予測信号pred
redが、4×16又は16×4のブロックの短い側を上回る8×8内に配置され得るからである。従って、除外演算が行われる。
【0093】
[105]
図9は、開示する一部の実施形態による例示的な除外演算を示す。
図9に示すように、isTransposed=0である4×16のブロック及びisTransposed=1である16×4のブロックについて、2行おきに2番目の行が行列から除外されている。従って、低減予測信号pred
redは、32の要素を含み、それらの要素が4×8のサイズ内に配置される。
【0094】
[106]
図10は、開示する一部の実施形態による例示的な除外演算を示す。
図10に示すように、isTransposed=0である16×4のブロック及びisTransposed=1である4×16のブロックについて、16行おきに後半の8行が行列から除外されている。従って、低減予測信号pred
redは、32の要素を含み、それらの要素が8×4のサイズ内に配置される。
【0095】
[107] 残りの位置における出力予測信号は、サブサンプリングされた組に基づく低減予測信号predredから線形補間によって生成され、線形補間は、それぞれの方向における単一ステップ線形補間である。
【0096】
[108] 上記で説明したように、隣接再構築されたサンプルの平均化、行列ベクトル乗算及びバイリニア補間を含む3つのステップを使用してMIPモードの予測を生成する。MIPモードの予測プロセスは、従来のイントラ予測モードのプロセスと異なる。MIPモードは、コード化効率を改善するが、その設計は、以下の2つの側面において複雑であり得る。
【0097】
[109] 第1の側面に関して、行列ベクトル乗算プロセスにおける4×16及び16×4のブロックのための除外演算は、以下の3つの理由から問題があり得る。第1に、除外演算は、余分な演算を追加するだけでなく、16×4及び4×16のブロックのみに適用されるため、予測プロセスを不均一にもする。第2に、16×4及び4×16のブロックについて、低減予測信号pred
redのサイズが転置の前後で異なり得る。従って、転置されていない低減予測信号のサイズ(例えば、W’
red及びH’
red)に関する更なる導出が必要である。第3に、以下の式(17)に示すように、低減予測信号pred
redのサイズは、16×4及び4×16のブロックに関して異なり得る。
【数19】
【0098】
[110] 第2の側面に関して、行列内の各要素の精度を7ビットに制限し、全ての要素が非負であることを保証するために、行列乗算プロセス内でオフセットsOが低減予測信号に加えられる。しかし、これは、以下の3つの理由から不要であり、複雑である可能性がある。第1に、オフセットsOの表を記憶するのに余分なメモリが必要である。表は、そのそれぞれが7ビットである合計34の要素を含む。従って、合計238ビットのメモリが必要である。第2に、クラスインデックス及び行列番号を使用してsOの値を決定するには、参照表の演算が必要である。第3に、低減予測信号predredを生成するには、追加の乗算演算及び加算演算が必要である。行列Mと入力ベクトルinputredとの間の行列ベクトル乗算を計算することに加えて、sOと入力ベクトルinputredとの間の乗算が更に行われる。4×4のブロックについて、予測信号を生成するのに必要なサンプル当たりの乗算の総数は、5に増加する。
【0099】
[111] 本開示は、ビットレートに影響を及ぼすことなく、これらの問題を解決する方法を提供する。一部の例示的な方法では、行列を記憶するために、7ビットではなく、8ビットを使用する。その後、式を以下の式(18)として表し直すことができる。
【数20】
【0100】
[112] 上記の式(18)では、行列内の全ての要素からオフセットsOが減算される。上述の行列ベクトル積の記憶及び計算の方法は、ビットアイデンティカルな結果をもたらすことができる。しかし、行列を記憶するためのビット数は、4882(即ち5120×1-34×7)ビット増加し、乗算演算のためのビット幅は、8ビットに拡大する。
【0101】
[113] 除外演算及びsOのための参照表を除去するための方法を以下に記載する。
【0102】
[114] MIP予測プロセス内の行列の余分な除外演算を除去するために、2つの方法を提供する。除外演算を除去するための第1の方法によれば、4×16及び16×4のブロックをClass2からClass1に移動することで、従来のMIP方法における不合理な分類方法を修正することができ、そのため、生成される低減予測信号predredは、短い側の制限を上回らない。
【0103】
[115] 例示的実施形態では、MIP分類の規則を下記の通り修正する。
Class0:4×4
Class1:4×N、8×8及びN×4、ここで、Nは、8~64の整数である
Class2:その他。
【0104】
[116] この修正により、8×8、4×8、4×16、4×32、4×64、8×4、16×4、32×4又は64×4のサイズを有するブロックをClass2からClass1に移動することができる。従って、8×8、4×8、4×16、4×32、4×64、8×4、16×4、32×4又は64×4のサイズを有するブロックは、そのそれぞれが16行及び8列有する組S1内の行列を行列乗算プロセス内で使用することができる。このようにして、4×4の低減予測信号predredを形成するために16の要素のみが生成され、そのため、除外演算を除去することができる。この修正は、以下のように表すことができ、変更箇所を二重取消線又はイタリック体で強調表示してある:
cbWidth及びcbHeightの両方が4に等しい場合、MipSizeId[x][y]が0に等しく設定される。
さもなければ、cbWidth*cbHeightが64以下である場合、MipSizeId[x][y]が1に等しく設定される。
さもなければ、MipSizeId[x][y]は、2に等しく設定される。
【0105】
[117] この解決策には、少なくとも3つの利点がある。
【0106】
[118] 第1に、行列乗算プロセスが単純化され、統一される。サイズ4×16又は16×4のブロックについて、除外演算が除去される。従って、除外演算を行うかどうかを確認すること並びに2つの変数「inch」及び「incW」を削除することができる。更に、全てのブロックは、行列ベクトル乗算プロセス中、行列に対する追加の演算を必要としない。従って、行列乗算プロセスが統一される。
【0107】
[119] 第2に、行列乗算プロセス内の4×16及び16×4のブロックの乗算数及び加算数が低減される。一部の実施形態では、サイズ4×16又は16×4のブロックに関して、行列ベクトル乗算を行うために32×7の行列が使用され得る一方、提供する実施形態では16×8の行列が使用され得る。従って、4×16又は16×4のブロックの乗算数及び加算数を減らすことができる。
【0108】
[120] 第3に、pred
redの導出が単純化され、統一される。全てのブロックに関して、低減予測信号pred
redのサイズが転置の前後で一貫する。そのため、W’
red及びH’
redに関する追加の導出が除去される。例えば、pred
redのサイズの導出を以下の式(19)及び(20)として単純化することができる。
【数21】
【0109】
[121] 低減予測信号pred
redのサイズは、以下の式(21)によって統一される。
【数22】
【0110】
[122] 除外演算を除去するための第2に方法によれば、MIP分類の規則が下記の通り修正される。
Class0:4×4
Class1:4×8、8×4、4×16及び16×4
Class2:その他。
【0111】
[123] (上記の修正されたMIP分類ではイタリック体の)4×16及び16×4のブロックがClass1に移動され、8×8のブロックがClass2に移動される。この修正により、除外演算が除去され、MIP分類の規則が更に単純化される。一部の実施形態では、この修正を以下のように表すことができ、変更箇所を二重取消線又はイタリック体で強調表示してある。
cbWidth及びcbHeightの両方が4に等しい場合、MipSizeId[x][y]が0に等しく設定される。
さもなければ、Min(cbWidth, cbHeight)が4に等しい場合、MipSizeId[x][y]が1に等しく設定される。
さもなければ、MipSizeId[x][y]は、2に等しく設定される。
【0112】
[124] オフセットsOの表を除去するために、本開示の実施形態は、参照表なしに行列M及びオフセットsOの値を修正するための方法を提供する。
【0113】
[125] 第1の例示的実施形態では、オフセットsOは、Class0について、行列
【数23】
内の最初の要素と置換され、Class1について、行列
【数24】
内の最初の要素と置換され、Class2について、行列
【数25】
内の7番目の要素と置換される。行列内のi番目の要素は、ラスタ走査順序内の及び行列の左上角から開始してi番目の数のカウントを表す。これを行うことにより、
図7の表7に示すクラスインデックス及び行列番号に依存するオフセットsOの参照表を除去することができる。従って、238ビットのメモリ空間を節約することができる。
【0114】
[126] 第2の例示的実施形態では、全てのクラスについて、オフセットsOが各行列内の最初の要素と置換される。加えて、Class2に使用される行列
【数26】
の最初の要素は、
図7の表7内の対応するsO
iと相対的に大きい差を有するため、x=0...6, y=0...63の場合、以下の式(22)を使用して最初の要素以外の要素を修正する。
【数27】
【0115】
[127] 修正された行列が元の行列の代わりに記憶され、符号化及び復号プロセス中に更なる演算が追加されない。以下のように少なくとも2つの利点がある。第1に、クラスインデックス及び行列番号に依存するオフセットsOの表を除去することができ、それにより238ビットのメモリ空間を節約することができる。第2に、行列からオフセットを抽出するプロセスが全てのクラスについて統一される。
【0116】
[128] 第3の例示的実施形態では、
図7の表7に従って各行列の最初の要素が対応するオフセットsOと置換される。また、従って、sOの表を除去することができる。行列ベクトル乗算を行うとき、オフセットが各行列の最初の要素から導出される。修正された行列が元の行列の代わりに記憶され、符号化及び復号プロセス中に更なる演算が追加されない。
【0117】
[129] 第4の例示的実施形態では、オフセットsOを固定値と置換する。そのため、オフセットに関するいかなる導出プロセスもなしに参照表を除去することができる。一例では、固定値が66であり、これは、全ての行列の中の最小値である。全ての行列が下記の通り修正される。
M’=M-sO+66 式(23)
【0118】
[130] 上記の式(23)では、sOが表7(
図7)から導出される。その後、式(12)の行列ベクトル乗算プロセスを下記の通り修正することができる。
【数28】
【0119】
[131] 修正された行列M’が元の行列の代わりに記憶され、符号化及び復号プロセス中に更なる演算が追加されない。
【0120】
[132] 別の例として、固定値は、64である。全ての行列が下記の通り修正される。
M’=M-sO+64 式(25)
【0121】
[133] 上記の式(25)では、sOが表7から導出される。その後、行列ベクトル乗算プロセスを下記の通り修正することができる。
【数29】
【0122】
[134] 加えて、修正された行列内の負数を0に修正する必要がある。本開示の実施形態を実装する場合、1つの値のみが-2から0に変更される。修正された行列M’が元の行列の代わりに記憶され、符号化及び復号プロセス中に更なる演算が追加されない。64倍される演算は、シフト演算で置換することができる。従って、sOと入力ベクトルinputredとの間の乗算は、左シフト演算で置換することができる。4×4のブロックについて、予測信号を生成するのに必要なサンプル当たりの乗算の総数は、5から4に減少する。
【0123】
[135] 第3の例では、固定値は、128である。全ての行列が下記の通り修正される。
M’=M-sO+128 式(27)
【0124】
[136] 上記の式(27)では、sOが表7から導出される。その後、行列ベクトル乗算プロセスを下記の通り修正することができる。
【数30】
【0125】
[137] 修正された行列M’が元の行列の代わりに記憶され、符号化及び復号プロセス中に更なる演算が追加されない。参照表は、除去され、オフセットと入力ベクトルとの間の乗算は、左シフト演算で置換される。4×4のブロックについて、予測信号を生成するのに必要なサンプル当たりの乗算の総数は、4に減少する。加えて、コード化の性能は、不変である。
【0126】
[138]
図11は、本開示の実施形態と合致する、映像コンテンツを処理するための例示的方法1100のフローチャートである。方法1100は、コーデック(例えば、
図2A~
図2Bの符号化プロセス200A及び200Bを使用する符号器又は
図3A~
図3Bの復号プロセス300A及び300Bを使用する復号器)によって実行され得る。例えば、コーデックは、映像シーケンスを符号化するか又は別のコードに変換するための機器(例えば、機器400)の1つ又は複数のソフトウェア又はハードウェア構成要素として実装することができる。一部の実施形態では、映像シーケンスは、非圧縮映像シーケンス(例えば、映像シーケンス202)又は復号される圧縮映像シーケンス(例えば、映像ストリーム304)であり得る。一部の実施形態では、映像シーケンスは、機器のプロセッサ(例えば、プロセッサ402)に関連する監視装置(例えば、
図4の映像入力装置)によって捕捉され得る監視映像シーケンスであり得る。映像シーケンスは、複数のピクチャを含み得る。機器は、ピクチャのレベルで方法1100を実行することができる。例えば、機器は、方法1100内でピクチャを1つずつ処理することができる。別の例では、機器は、方法1100内で1度に複数のピクチャを処理することができる。方法1100は、以下のステップを含み得る。
【0127】
[139] ステップ1102では、標的ブロックの分類を決定することができる。一部の実施形態では、分類は、第1のクラス(例えば、Class0)、第2のクラス(例えば、Class1)及び第3のクラス(例えば、Class2)を含み得る。所与のブロックに関して、所与のブロックの分類は、所与のブロックのサイズに基づいて決定することができる。例えば、第1のクラスは、4×4のサイズのブロックに関連し得、第2のクラスは、8×8、4×N又はN×4のサイズのブロックに関連し得、Nは、8~64の整数であり得る。例えば、Nは、8、16、32又は64に等しい。即ち、第2のクラスは、8×8、4×8、4×16、4×32、4×64、8×4、16×4、32×4又は64×4のサイズのブロックを含むことができる。また、第3のクラスは、残りのブロックに関連し得る。
【0128】
[140] 一部の実施形態では、標的ブロックが4×4、8×8、4×N又はN×4以外のサイズを有することに応じて、標的ブロックが第3のクラスに属すると決定することができる。
【0129】
[141] ステップ1104では、分類に基づいて行列加重イントラ予測(MIP)信号を生成することができる。一部の実施形態では、入力ベクトル、行列及び標的ブロックの分類に基づいて、標的ブロックのための第1のイントラ予測信号を生成することができ、第1のイントラ予測信号を使用して標的ブロックに対してバイリニア補間を行って、MIP信号を生成することができる。
【0130】
[142] 例えば、入力ベクトルを生成するために、標的ブロックの分類に従って標的ブロックの隣接する再構築されたサンプルを平均化することができる。上記で論じたように、第1のクラスのブロックについて、入力ベクトルとして低減境界ベクトルを生成するために、ブロックの隣接する再構築されたサンプルを2つおきに平均化することができる。例えば、入力ベクトルのサイズは、第1のクラスでは4×1、第2のクラスでは8×1及び第3のクラスでは7×1であり得る。また、第2のクラス又は第3のクラスの(例えば、M×Nのサイズを有する)ブロックについて、ブロックの上にあるM/4おきの隣接する再構築されたサンプル及びブロックの左側にあるN/4おきの隣接する再構築されたサンプルを平均化することができる。
【0131】
[143] 入力ベクトルと異なり、行列は、標的ブロックの分類及びMIPモードインデックスに従って行列の組(例えば、行列セットS0、S1又はS2)から選択することができる。
【0132】
[144] 次いで、行列及び入力ベクトルに対して行列ベクトル乗算を行うことにより、第1のイントラ予測信号を生成することができる。一部の実施形態では、第1のイントラ予測信号は、第1のオフセット及び第2のオフセットに更に関連する。例えば、式(12)で論じたように、低減予測信号は、第1のオフセット(例えば、oW)及び第2のオフセット(例えば、oS)によって更にバイアスをかけることができる。一部の実施形態では、第1のオフセット及び第2のオフセットは、行列の組内の行列インデックスに基づいて決定され得る。例えば、第1のオフセット及び第2のオフセットは、表7及び表8を参照することによってそれぞれ決定することができる。
【0133】
[145] 標的ブロックの分類は、第1のイントラ予測信号のサイズにも関係する。例えば、標的ブロックが第1のクラス又は第2のクラスに属することに応じて、第1のイントラ予測信号が4×4のサイズを有すると決定し、及び標的ブロックが第3のクラスに属することに応じて、第1のイントラ予測信号が8×8のサイズを有すると決定する。
【0134】
[146] 一部の実施形態では、命令を含む非一時的コンピュータ可読記憶媒体も提供され、命令は、上記の方法を実行するための装置(開示した符号器及び復号器等)によって実行され得る。一般的な非一時的媒体は、例えば、フロッピ(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ若しくは他の任意の磁気データ記憶媒体、CD-ROM、他の任意の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM及びEPROM、フラッシュEPROM若しくは他の任意のフラッシュメモリ、NVRAM、キャッシュ、レジスタ、他の任意のメモリチップ若しくはカートリッジ及びそれらのもののネットワーク化されたバージョンを含む。装置は、1つ又は複数のプロセッサ(CPU)、入力/出力インタフェース、ネットワークインタフェース及び/又はメモリを含み得る。
【0135】
[147] 実施形態は、以下の条項を使用して更に記載することができる。
1.映像コンテンツを処理するためのコンピュータ実施方法であって、
標的ブロックの分類を決定することと、
その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を含み、標的ブロックの分類を決定することは、
標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は
標的ブロックが8×8、4×N若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定すること
を含む、コンピュータ実施方法。
2.MIP信号を生成することは、
入力ベクトル、行列及び標的ブロックの分類に基づいて、標的ブロックのための第1のイントラ予測信号を生成することと、
MIP信号を生成するために、第1のイントラ予測信号を使用して標的ブロックに対してバイリニア補間を行うことと
を含む、条項1に記載の方法。
3.入力ベクトルを生成するために、標的ブロックの分類に従って標的ブロックの隣接する再構築されたサンプルを平均化することを更に含む、条項1又は2に記載の方法。
4.入力ベクトルは、標的ブロックが第1のクラスに属する場合には4×1のサイズを有し、又は標的ブロックが第2のブロックに属する場合には8×1のサイズを有する、条項2又は3に記載の方法。
5.行列は、標的ブロックの分類及びMIPモードインデックスに従って行列の組から選択される、条項2~4の何れか一項に記載の方法。
6.第1のイントラ予測信号は、行列及び入力ベクトルに対して行列ベクトル乗算を行うことによって生成される、条項5に記載の方法。
7.第1のイントラ予測信号は、行列に関連する1つ又は複数のオフセットに基づいて生成される、条項6に記載の方法。
8.1つ又は複数のオフセットは、参照表内の行列のインデックスに基づいて決定される、条項7に記載の方法。
9.標的ブロックの分類を決定することは、
標的ブロックが4×4、8×N、4×N及びN×4以外のサイズを有することに応じて、標的ブロックが第3のクラスに属すると決定すること
を更に含む、条項1~8の何れか一項に記載の方法。
10.標的ブロックのための第1のイントラ予測信号を生成することは、
標的ブロックが第1のクラス又は第2のクラスに属することに応じて、第1のイントラ予測信号が4×4のサイズを有すると決定することと、
標的ブロックが第3のクラスに属することに応じて、第1のイントラ予測信号が8×8のサイズを有すると決定することと
を含む、条項9に記載の方法。
11.Nは、8、16、32又は64に等しい、条項1~10の何れか一項に記載の方法。
12.映像コンテンツを処理するためのシステムであって、
1組の命令を記憶するためのメモリと、
少なくとも1つのプロセッサとを含み、少なくとも1つのプロセッサは、システムに、
標的ブロックの分類を決定することと、
その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を行わせるように、1組の命令を実行するように構成されており、
標的ブロックの分類を決定することにおいて、少なくとも1つのプロセッサは、システムに、
標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は
標的ブロックが8×8、4×N若しくはN×4(ここで、Nは、4よりも大きい)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定すること
を更に行わせるように、1組の命令を実行するように更に構成される、システム。
13.MIP信号を生成することにおいて、少なくとも1つのプロセッサは、システムに、
入力ベクトル、行列及び標的ブロックの分類に基づいて、標的ブロックのための第1のイントラ予測信号を生成することと、
MIP信号を生成するために、第1のイントラ予測信号を使用して標的ブロックに対してバイリニア補間を行うことと
を更に行わせるように、1組の命令を実行するように更に構成される、条項12に記載のシステム。
14.少なくとも1つのプロセッサは、システムに、
入力ベクトルを生成するために、標的ブロックの分類に従って標的ブロックの隣接する再構築されたサンプルを平均化すること
を更に行わせるように、1組の命令を実行するように更に構成される、条項12又は13に記載のシステム。
15.入力ベクトルは、標的ブロックが第1のクラスに属する場合には4×1のサイズを有し、又は標的ブロックが第2のブロックに属する場合には8×1のサイズを有する、条項13又は14に記載のシステム。
16.行列は、標的ブロックの分類及びMIPモードインデックスに従って行列の組から選択される、条項13~15の何れか一項に記載のシステム。
17.第1のイントラ予測信号は、行列及び入力ベクトルに対して行列ベクトル乗算を行うことによって生成される、条項16に記載のシステム。
18.第1のイントラ予測信号は、行列に関連する1つ又は複数のオフセットに基づいて生成される、条項17に記載のシステム。
19.1つ又は複数のオフセットは、参照表内の行列のインデックスに基づいて決定される、条項18に記載のシステム。
20.映像コンテンツを処理するための方法をコンピュータシステムに行わせるために、コンピュータシステムの少なくとも1つのプロセッサによって実行可能な1組の命令を記憶する非一時的コンピュータ可読媒体であって、その方法は、
標的ブロックの分類を決定することと、
その分類に基づいて、行列加重イントラ予測(MIP)信号を生成することと
を含み、標的ブロックの分類を決定することは、
標的ブロックが4×4のサイズを有することに応じて、標的ブロックが第1のクラスに属すると決定すること、又は
標的ブロックが8×8、4×N若しくはN×4(ここで、Nは、8~64の整数である)のサイズを有することに応じて、標的ブロックが第2のクラスに属すると決定すること
を含む、非一時的コンピュータ可読媒体。
【0136】
[148] 本明細書の「第1の」及び「第2の」等の関係語は、あるエンティティ又は操作を別のエンティティ又は操作と区別するために使用されるに過ぎず、それらのエンティティ又は操作間のいかなる実際の関係又は順序も必要としないか又は含意しないことに留意すべきである。更に、「含む」、「有する」、「含有する」及び「包含する」並びに他の同様の形式の用語は、意味の点で均等であることを意図し、これらの用語の何れか1つの後に続くアイテムがかかるアイテムの網羅的列挙であることを意図していないか、又は列挙するアイテムのみに限定されることを意図していない点で非限定的であることを意図する。
【0137】
[149] 本明細書で使用するとき、別段の定めがない限り、「又は」という語は、実行不可能な場合を除いて、あり得る全ての組み合わせを包含する。例えば、あるデータベースがA又はBを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、そのデータベースは、A若しくはB又はA及びBを含むことができる。第2の例として、あるデータベースがA、B又はCを含み得ると述べた場合、別段の定めがない限り又は実行不可能でない限り、そのデータベースは、A、若しくはB、若しくはC、又はA及びB、又はA及びC、又はB及びC、又はA、及びB、及びCを含むことができる。
【0138】
[150] 上記で説明した実施形態は、ハードウェア若しくはソフトウェア(プログラムコード)又はハードウェアとソフトウェアとの組み合わせによって実装できることが理解されるであろう。ソフトウェアによって実装される場合、ソフトウェアは、上記のコンピュータ可読媒体に記憶することができる。ソフトウェアは、プロセッサによって実行されるとき、開示した方法を実行することができる。本開示で説明した計算ユニット及び他の機能ユニットは、ハードウェア若しくはソフトウェア又はハードウェアとソフトウェアとの組み合わせによって実装することができる。上記のモジュール/ユニットの複数を1つのモジュール/ユニットとして組み合わせることができ、上記のモジュール/ユニットのそれぞれを複数のサブモジュール/サブユニットに更に分割できることも当業者であれば理解するであろう。
【0139】
[151] 上記の本明細書では、実装形態ごとに変わり得る多数の具体的な詳細に関して実施形態を説明してきた。記載した実施形態に対する一定の適応形態及び修正形態がなされ得る。本明細書を検討し、本明細書で開示した本発明を実践することで他の実施形態が当業者に明らかになり得る。本明細書及び例は、専ら例示として検討され、本開示の真の範囲及び趣旨は、添付の特許請求の範囲によって示されることを意図する。図中に示すステップの順序は、例示目的に過ぎず、特定のステップの順序に限定されることを意図しない。そのため、それらのステップは、同じ方法を実装しながら異なる順序で実行できることを当業者であれば理解することができる。
【0140】
[152] 図面及び本明細書で例示的実施形態を開示してきた。しかし、それらの実施形態に対する多くの改変形態及び修正形態がなされ得る。従って、特定の用語を使用したが、それらの用語は、限定目的ではなく、全般的及び説明的な意味で使用されたものに過ぎない。
【国際調査報告】